<?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>29121</bug_id>
          
          <creation_ts>2009-09-10 04:59:57 -0700</creation_ts>
          <short_desc>XMLHttpRequest::getAllResponseHeaders throws INVALID_STATE_ERR when called in state HEADERS_RECEIVED</short_desc>
          <delta_ts>2009-10-01 10:47:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carol Szabo">carol</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>146166</commentid>
    <comment_count>0</comment_count>
    <who name="Carol Szabo">carol</who>
    <bug_when>2009-09-10 04:59:57 -0700</bug_when>
    <thetext>Despite http://dev.w3.org/2006/webapi/XMLHttpRequest-2/#the-getallresponseheaders-method mentioning explicitely and with an example that XMLHttpRequest::getAllResponseHeaders should return the headers in readyState HEADERS_RECEIVED. The Webkit implementation still throws an exception in this scenario.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146168</commentid>
    <comment_count>1</comment_count>
      <attachid>39341</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2009-09-10 05:04:27 -0700</bug_when>
    <thetext>Created attachment 39341
Example test case

This is an example that reproduces the problem. just unzip the archive in any virtual directory of an http server and access the included garhs.htm from a Webkit browser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146198</commentid>
    <comment_count>2</comment_count>
      <attachid>39349</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2009-09-10 08:00:44 -0700</bug_when>
    <thetext>Created attachment 39349
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146232</commentid>
    <comment_count>3</comment_count>
      <attachid>39349</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-10 09:50:55 -0700</bug_when>
    <thetext>Comment on attachment 39349
Proposed patch

Rejecting patch 39349 from commit-queue.

carol.szabo@nokia.com does not have committer permissions according to http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/modules/committers.py.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146242</commentid>
    <comment_count>4</comment_count>
      <attachid>39349</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-09-10 10:05:49 -0700</bug_when>
    <thetext>Comment on attachment 39349
Proposed patch

This should really also fix getResponseHeader which has the same bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146243</commentid>
    <comment_count>5</comment_count>
      <attachid>39349</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-10 10:07:51 -0700</bug_when>
    <thetext>Comment on attachment 39349
Proposed patch

Rejecting patch 39349 from commit-queue.

This patch will require manual commit. [&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--quiet&apos;, &apos;--exit-after-n-failures=1&apos;] failed with exit code 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146272</commentid>
    <comment_count>6</comment_count>
      <attachid>39362</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2009-09-10 11:49:27 -0700</bug_when>
    <thetext>Created attachment 39362
New Patch proposal to address sam&apos;s concerns

Despite the fact that this bug does not cover the similar problem with getResponseHeader, in the interest of saving time and satisfying reviewers, I fixed both bugs here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146297</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-10 12:41:13 -0700</bug_when>
    <thetext>fast/xmlhttprequest/xmlhttprequest-getallheaders.html -&gt; failed
was the test that failed when trying to land attachment 39349.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146564</commentid>
    <comment_count>8</comment_count>
    <who name="Carol Szabo">carol</who>
    <bug_when>2009-09-11 08:09:25 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; fast/xmlhttprequest/xmlhttprequest-getallheaders.html -&gt; failed
&gt; was the test that failed when trying to land attachment 39349 [details].

Eric, can you attach the actual output from the failed tests to the bug so that I can improve the tests. I know the tests have some weaknesses regarding portability, but I&apos;d like to see what exactly went wrong in your environment.
Thanks,
Carol</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146579</commentid>
    <comment_count>9</comment_count>
      <attachid>39437</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2009-09-11 08:54:45 -0700</bug_when>
    <thetext>Created attachment 39437
Modified tests to make them more portable

My previous patch had at least one of the new tests fail according to Eric. I have modified the tests to make them less dependent on the environment.
Eric,
Can you see if these tests work for you and can you add this patch to the commit queue?
Thanks,
Carol</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146597</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-11 09:23:27 -0700</bug_when>
    <thetext>These were the difffs from the commit-queue&apos;s failure:
--- /tmp/layout-test-results/fast/xmlhttprequest/xmlhttprequest-getallheaders-expected.txt      2009-09-10 10:07:46.000000000 -0700
+++ /tmp/layout-test-results/fast/xmlhttprequest/xmlhttprequest-getallheaders-actual.txt        2009-09-10 10:07:46.000000000 -0700
@@ -8,5 +8,4 @@
  Header name and Header value is separated by COLON and SPACE.
  Set-Cookie and Set-Cookie2 Headers with any ASCII case-insensitive match NOT displayed.
 SUCCEEDED: getAllResponseHeaders returned:
-Cache-Control: no-cache</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146613</commentid>
    <comment_count>11</comment_count>
    <who name="Carol Szabo">carol</who>
    <bug_when>2009-09-11 09:44:15 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; These were the difffs from the commit-queue&apos;s failure:
&gt; ---
&gt; /tmp/layout-test-results/fast/xmlhttprequest/xmlhttprequest-getallheaders-expected.txt
&gt;      2009-09-10 10:07:46.000000000 -0700
&gt; +++
&gt; /tmp/layout-test-results/fast/xmlhttprequest/xmlhttprequest-getallheaders-actual.txt
&gt;        2009-09-10 10:07:46.000000000 -0700
&gt; @@ -8,5 +8,4 @@
&gt;   Header name and Header value is separated by COLON and SPACE.
&gt;   Set-Cookie and Set-Cookie2 Headers with any ASCII case-insensitive match NOT
&gt; displayed.
&gt;  SUCCEEDED: getAllResponseHeaders returned:
&gt; -Cache-Control: no-cache

As I expected, the difference is in the headers that get returned.
In your environment, there are no headers returned for the &quot;file&quot; scheme, where as in mine there is one header.
I fixed this problem, by not displaying the headers if the test is ran with DumpRenderTree, just analyze them for problems. The scope of these tests is anyway just to make sure that no INVALID_STATE exception is thrown.
Please verify my new patch which only differs in the test area from the previous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146631</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-09-11 10:32:54 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Despite
&gt; http://dev.w3.org/2006/webapi/XMLHttpRequest-2/#the-getallresponseheaders-method
&gt; mentioning explicitely and with an example that
&gt; XMLHttpRequest::getAllResponseHeaders should return the headers in readyState
&gt; HEADERS_RECEIVED. The Webkit implementation still throws an exception in this
&gt; scenario.

Have you tested IE and Firefox? Please do.

&gt; In your environment, there are no headers returned for the &quot;file&quot; scheme, where
&gt; as in mine there is one header.

I suggest making these HTTP tests. Asking for HTTP response headers of a file:/// resource doesn&apos;t make much sense, and there is no specification for XHR operating on such.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146636</commentid>
    <comment_count>13</comment_count>
      <attachid>39437</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-11 10:42:41 -0700</bug_when>
    <thetext>Comment on attachment 39437
Modified tests to make them more portable

Marking cq=? w/o marking r=? makes little sense.  Also, ap seems to have objections to this patch, so removing cq?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146709</commentid>
    <comment_count>14</comment_count>
    <who name="Carol Szabo">carol</who>
    <bug_when>2009-09-11 12:31:46 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #0)
&gt; &gt; Despite
&gt; &gt; http://dev.w3.org/2006/webapi/XMLHttpRequest-2/#the-getallresponseheaders-method
&gt; &gt; mentioning explicitely and with an example that
&gt; &gt; XMLHttpRequest::getAllResponseHeaders should return the headers in readyState
&gt; &gt; HEADERS_RECEIVED. The Webkit implementation still throws an exception in this
&gt; &gt; scenario.
&gt; 
&gt; Have you tested IE and Firefox? Please do.

Firefox 3.0.8 works per the standard in this regard.
IE 6 does not have the concept of readyState
IE 7 and IE 8 have a concept of readyState, but it is not the same as the one specified in the standard, and thus IE has a different behavior than WebKit regardless of whether I put my change in or not. IE only gives access to headers when the whole load finished, which is not what WebKit did before my fix.


&gt; I suggest making these HTTP tests. Asking for HTTP response headers of a
&gt; file:/// resource doesn&apos;t make much sense, and there is no specification for
&gt; XHR operating on such.

I agree, I will do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146726</commentid>
    <comment_count>15</comment_count>
      <attachid>39471</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2009-09-11 13:27:09 -0700</bug_when>
    <thetext>Created attachment 39471
Proposed patch. Moved tests to http/tests/xmlhttprequest from fast/xmlhttprequest

Also I have addressed ap&apos;s concerns.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146762</commentid>
    <comment_count>16</comment_count>
      <attachid>39471</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-09-11 15:22:45 -0700</bug_when>
    <thetext>Comment on attachment 39471
Proposed patch. Moved tests to http/tests/xmlhttprequest from fast/xmlhttprequest

FWIW, our current behavior is based on research summarized in bug 15356 comment 7.

+If the test succeeds one should see below the ruller the text &quot;SUCCEEDED: getAllResponseHeaders returned: &quot; followed by a conforming list of headers.

This text looks outdated. Same issue in another test.

We have a lot of data files in xmlhttprequest/resources already, do the new files really need to be added?

Looks good to me, r- to update the tests. It would also be great if you could review the discussion in bug 15356, just in case it has some important details about other browsers&apos; behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146773</commentid>
    <comment_count>17</comment_count>
      <attachid>39471</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2009-09-11 15:45:55 -0700</bug_when>
    <thetext>Comment on attachment 39471
Proposed patch. Moved tests to http/tests/xmlhttprequest from fast/xmlhttprequest

Alexei,
The text your are mentioning is intentionally left that way. If the test is run interactively, that is in a regular browser, not with DumpRenderTree the list of headers and the the value of the header respectively are still displayed. Also regardless of the user agent the very next paragraph after the one you mentioned explains that the header list and the header value respectively are omitted for DumpRenderTree to prevent the failure of the unattended tests.
I have read the discussion that you mentioned. I believe that my change which leads to an exception not being thrown, not to extra exceptions being thrown, increases (a little bit, not very much) the likelihood that a webpage will look as intended, as opposed to the change discussed in bug 15356, apparently would create a more restrictive behavior not a more lenient one. The risk with my change is that pages may be created that work only on Mozilla and WebKit or only on WebKit which is not that bad.
I know that somebody may rely on an exception being thrown instead of the header value being returned, but I think that that use case may be discounted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146780</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-09-11 16:00:52 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; The text your are mentioning is intentionally left that way. If the test is run
&gt; interactively, that is in a regular browser, not with DumpRenderTree the list
&gt; of headers and the the value of the header respectively are still displayed.

I like that the headers are fully dumped when the test is run in Safari, it can be very helpful.

But this text is confusing nonetheless. There is no reason to leave it in this state - it&apos;s easy to have different output for DRT. In fact, we often do the following for DRT-only tests:

if (!window.layoutTestController)
    document.write(&quot;&lt;p&gt;This test only works in run-webkit-tests&lt;/p&gt;&quot;);

Since this code has a long history of changes, it is particularly important not to leave any confusing comments around it.

&gt; I have read the discussion that you mentioned. I believe that my change which
&gt; leads to an exception not being thrown, not to extra exceptions being thrown,

Yes, that&apos;s correct. I just wanted to give some additional context, as it appears that at least some browsers&apos; behavior has changed since 2007.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147066</commentid>
    <comment_count>19</comment_count>
      <attachid>39547</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2009-09-14 09:18:21 -0700</bug_when>
    <thetext>Created attachment 39547
Improved text in the tests per ap&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147113</commentid>
    <comment_count>20</comment_count>
      <attachid>39547</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-09-14 10:59:16 -0700</bug_when>
    <thetext>Comment on attachment 39547
Improved text in the tests per ap&apos;s comments.

This still includes old test results, so a committer will need to regenerate them - or you could submit a new patch to simplify committer&apos;s job.

+    &lt;p&gt;If the test succeeds one should see below the ruller the text

A typo, there is one &quot;l&quot; in &quot;ruler&quot;.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147137</commentid>
    <comment_count>21</comment_count>
      <attachid>39564</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2009-09-14 12:37:00 -0700</bug_when>
    <thetext>Created attachment 39564
Fixed a few minor issues with the tests and some regretable mistakes in the test results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147381</commentid>
    <comment_count>22</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-09-15 14:18:05 -0700</bug_when>
    <thetext>I tried to land this, but tests don&apos;t pass on Mac OS X Leopard:

file:///tmp/layout-test-results/http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getAllRequestHeaders-diffs.txt
-PASSED (INVALID_STATE_ERR: DOM Exception 11 ) 2
+FAILED ( header :Date: Tue, 15 Sep 2009 21:12:19 GMT

file:///tmp/layout-test-results/http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getRequestHeader-diffs.txt
-PASSED (INVALID_STATE_ERR: DOM Exception 11 ) 2
+FAILED ( header :text/html)2

When running the test manually, it also looks wrong:

SUCCEEDED: getResponseHeader returned: null</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147410</commentid>
    <comment_count>23</comment_count>
      <attachid>39621</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2009-09-15 16:19:01 -0700</bug_when>
    <thetext>Created attachment 39621
New patch that fixes problems with failing old http tests

This patch includes renaming of the test and expected results files. I believe it will be hard to read please advise on a better way to submit it if this method is not acceptable.
Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147541</commentid>
    <comment_count>24</comment_count>
      <attachid>39621</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-09-16 09:14:37 -0700</bug_when>
    <thetext>Comment on attachment 39621
New patch that fixes problems with failing old http tests

&gt; This patch includes renaming of the test and expected results files. I believe
&gt; it will be hard to read please advise on a better way to submit it if this
&gt; method is not acceptable.

It&apos;s actually fine, we do get a diff from old to new in such patches.

r=me, and let&apos;s see if the bot manages to land this...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147604</commentid>
    <comment_count>25</comment_count>
      <attachid>39621</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-16 13:36:53 -0700</bug_when>
    <thetext>Comment on attachment 39621
New patch that fixes problems with failing old http tests

Clearing flags on attachment: 39621

Committed r48433: &lt;http://trac.webkit.org/changeset/48433&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147605</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-16 13:36:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>39341</attachid>
            <date>2009-09-10 05:04:27 -0700</date>
            <delta_ts>2009-09-10 05:04:27 -0700</delta_ts>
            <desc>Example test case</desc>
            <filename>tests.zip</filename>
            <type>application/zip</type>
            <size>1198</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">N3q8ryccAAKXccueawQAAAAAAAAjAAAAAAAAABBQDIEABoLHMgTH/R2aDK3GrMbs79F0TFUdruy0
h7rzHJxgHYvNj1dy4Fv1PMrGo6QN3Mqm6ARHCFuOTc6M7+O8bj6TpgH73TZ+jugHCL5oAthl4Wjj
GWP1OTXkbNoWpQKiu0C4inLNfjSPcW6fKHX2Zveb8sU8PUl//lF9OQAvRXvp0qs0p8TzBagLBs1t
t8J764QVxNfcvtLKiucD15SZqYETX0XskeqfWHaZCOhhjKp8Ultvbs3B/q9AnzrOY9xowu9iSTsl
wr6GoZLNtSn80RkApUeja89fLsvojHY3P98h7L/4Y2sci7NL60NJR9uYzWGACj8+4Aicwnoy0pva
Dv+Qiy7cL0o9h7MF4G2xqa7GShrWcVEkCRtSbCbd5GOBzCjktTeW+xjIVGLqJaM/DKgcctrhmhIv
SYg3CTidjYyeADTqb4lr38zUrfZNzajY/r8FwVdgwZ99y1/BTZXvCuyr1Duc74PQURqyvRQWTuWB
jOMYmsQWiQAjdVrcmL/dM8RS0EdGC7HByZhayvCp4R8xvV4+lPNcIrx8Ar23aSEysmwxZG7B7Daf
hWKqMy4iEevEdpKUhNRAXt6iSkmrbHyrs0BZjmJNlJ5Y2dYfBl5c+s9XfYRk9Ha4K1rU1ofhjHTO
BDL3FW+Sv8QqD4KRxBxLC3FixbBfNh4/F4SHaN9DJwEywqkC4YCLiwR9iCRiK5L4sS+CN4mc0OMD
3541VKPsIEV1sAj7kUy0tBSkcwzboSRyUkgjW/8x8rve6AghM5C4pJ9rxySuoA1jpuoKEVc4A1VZ
3i7tMNAo/1GAcYtkDCyklSYJvJuyY1CxiFYcL1TJGvI5GlGIfJtZAShHr8uI9DrD19Owek9TbbBt
YA3xg6OeqBwalOCNituL1LCOgVFHIxolD4WrbcwFS/Eb5HIwLlSyUAOD2eXKqctOVk6E0u4rVHLX
9Qyykll3lmxREX9LRBwic8GgP6deIbP0TvJbqnwl5HRkX5kgsZ5F6NFmB77cixqOf6bO5UiXiClt
xPtF8VERXEhwLuVjpmMRBJFBCg927kAyLaccDerObR5oNB0jwpi90s2STmNnMM25YsdEDhABy+/F
tqFhLCe1q/2dR52t9Vx1dO3LfxUiwcCjjEcPOihuXykYVU4wKqwrrb4a15VdrqgsL/0QX9lGQLCv
TfTCFIGoPnw3pTN2wMw+IZQOag/tSgAF+SMPlqWk1gpB7cNBtwQsEOC+ozz5/DEq9/gFycPhNkbV
i9wogp6FZJZPUwKPJIpDxKGamQZdHIGWc+8ithX9X0LbRMVtXqUvB7D9guGghFBm2zWPAiYAAACB
MweuD9VSw9zXJNP+s34viZK+vj0KsZCVCpnQ0NkTcRv6Wn8i6f8n31DVSfPIcealkm71GB3y4qMM
ET0pftHeOER4tUsX5ARm94b+0NIEAQEpfsnjLPu7T7Pfayppxro/MdtkxSlclYnV+rLDWa+5Cu2v
WxIB66a9pg06uS/rp2ePJdmVxacfnwAXBoPfAQmAjAAHCwEAASMDAQEFXQAEAAAMgMAKAXm6IF4A
AA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39349</attachid>
            <date>2009-09-10 08:00:44 -0700</date>
            <delta_ts>2009-09-10 11:49:27 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patchFor29121.txt</filename>
            <type>text/plain</type>
            <size>5738</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODI1MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMDktMDktMTAgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEluY29ycmVjdCBiZWhhdmlvciBvZiBYbWxIdHRwUmVxdWVzdDo6Z2V0QWxsSGVhZGVycyBpbiB0
aGUKKyAgICAgICAgSEVBREVSU19SRUNFSVZFRCByZWFkeVN0YXRlLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkxMjEKKworICAgICAgICBUZXN0OiBm
YXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWdldGFsbGhlYWRlcnMuaHRtbAorCisg
ICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0
dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMpOgorICAgICAgICBDaGFuZ2VkIHRoZSBt
aW5pbXVtIHZhbGlkIHN0YXRlIGZyb20gTE9BRElORyB0byBIRUFERVJTX1JFQ0VJVkVELgorCiAy
MDA5LTA5LTA5ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KSW5kZXg6IFdlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5j
cHAJKHJldmlzaW9uIDQ4MjUwKQorKysgV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03MTksNyArNzE5LDcgQEAgU3RyaW5nIFhNTEh0dHBSZXF1ZXN0Ojpn
ZXRSZXF1ZXN0SGVhZGVyKAogCiBTdHJpbmcgWE1MSHR0cFJlcXVlc3Q6OmdldEFsbFJlc3BvbnNl
SGVhZGVycyhFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKLSAgICBpZiAobV9zdGF0ZSA8IExP
QURJTkcpIHsKKyAgICBpZiAobV9zdGF0ZSA8IEhFQURFUlNfUkVDRUlWRUQpIHsKICAgICAgICAg
ZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuICIiOwogICAgIH0KSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDQ4MjUzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMDktMTAgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3ph
Ym9Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEluY29ycmVjdCBiZWhhdmlvciBvZiBYbWxIdHRwUmVxdWVzdDo6Z2V0QWxsSGVhZGVy
cyBpbiB0aGUKKyAgICAgICAgSEVBREVSU19SRUNFSVZFRCByZWFkeVN0YXRlLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkxMjEKKworICAgICAgICAq
IGZhc3QveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LWdldGFsbGhlYWRl
cnMtZGF0YS50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0
cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgMSBuZXcgdGVzdCB0byBleHBvc2UgdGhlIGVycm9yIGFuZCB2ZXJpZnkgdGhl
IGZpeC4KKwogMjAwOS0wOS0wOSAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsuCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWdldGFsbGhlYWRlcnMtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3Qv
eG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWdldGFsbGhl
YWRlcnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACitUaGlzIHRl
c3QgY2hlY2tzIHRvIHNlZSBpZiB0aGUgImdldEFsbEhlYWRlcnMiIG1ldGhvZCBvZiB4bWxIdHRw
cmVxdWVzdCB3b3JrcyBpbiByZWFkeSBzdGF0ZSBIRUFERVJTX1JFQ0VJVkVELgorCitJZiBUaGUg
dGVzdCBzdWNjZWVkcyBvbmUgc2hvdWxkIHNlZSBiZWxvdyB0aGUgcnVsbGVyIHRoZSB0ZXh0ICJT
VUNDRUVERUQ6IGdldEFsbFJlc3BvbnNlSGVhZGVycyByZXR1cm5lZDogIiBmb2xsb3dlZCBieSBj
b25mb3JtaW5nIGxpc3Qgb2YgaGVhZGVycy4KKworQSBjb25mb3JtaW5nIGxpc3Qgb2YgaGVhZGVy
czoKKworIGNvbnRhaW5zIG9uZSBoZWFkZXIgcGVyIGxpbmUuCisgSGVhZGVyIG5hbWUgYW5kIEhl
YWRlciB2YWx1ZSBpcyBzZXBhcmF0ZWQgYnkgQ09MT04gYW5kIFNQQUNFLgorIFNldC1Db29raWUg
YW5kIFNldC1Db29raWUyIEhlYWRlcnMgd2l0aCBhbnkgQVNDSUkgY2FzZS1pbnNlbnNpdGl2ZSBt
YXRjaCBOT1QgZGlzcGxheWVkLgorU1VDQ0VFREVEOiBnZXRBbGxSZXNwb25zZUhlYWRlcnMgcmV0
dXJuZWQ6CitDYWNoZS1Db250cm9sOiBuby1jYWNoZQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWdldGFsbGhlYWRlcnMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWdl
dGFsbGhlYWRlcnMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QveG1saHR0
cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDUxIEBACis8aHRtbD48aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250
ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDtjaGFyc2V0PXV0Zi04Ij4KKyAgICA8dGl0bGU+
R2V0QWxsUmVzcG9uc2VIZWFkZXJzPC90aXRsZT4KKyAgICA8IS0tIEFzc2VydGlvbjogSW52b2tl
IGdldEFsbFJlc3BvbnNlSGVhZGVycyBtZXRob2Qgd2hlbiByZWFkeVN0YXRlID0gMgorICAgIChI
RUFERVJTX1JFQ0VJVkVEKS4gLS0+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gcHJp
bnQobWVzc2FnZSkgeworICAgICAgICAgICAgdmFyIHBhcmFncmFwaCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImxpIik7CisgICAgICAgICAgICBwYXJhZ3JhcGguaW5uZXJIVE1MPW1lc3NhZ2U7
CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENo
aWxkKHBhcmFncmFwaCk7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gaGFuZGxlcigpIHsK
KwkJICAgICAgICBpZiAoKHRoaXMucmVhZHlTdGF0ZSA9PSAyKSkgeworICAgICAgICAgICAgICAg
IHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBzdHIgPSB0aGlzLmdldEFsbFJlc3BvbnNl
SGVhZGVycygpOworICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICAg
ICAgICBwcmludCgiRkFJTEVEOiBnZXRBbGxSZXNwb25zZUhlYWRlcnMgdGhyZXcgZXhjZXB0aW9u
OiIgKyBlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHJpbnQoIlNVQ0NF
RURFRDogZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIHJldHVybmVkOjxicj4iICsgc3RyLnJlcGxhY2Uo
L1xyXG4vZ2ltLCI8YnI+IikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZ1
bmN0aW9uIHRlc3QoKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgICAgICAgICAgIHZhciBjbGllbnQgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsgCisgICAgICAg
ICAgICBjbGllbnQub25yZWFkeXN0YXRlY2hhbmdlID0gaGFuZGxlcjsKKyAgICAgICAgICAgIHRy
eSB7CisgICAgICAgICAgICAgICAgY2xpZW50Lm9wZW4oIkdFVCIsICJyZXNvdXJjZXMveG1saHR0
cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy1kYXRhLnR4dCIsIHRydWUpOworICAgICAgICAgICAgICAg
IGNsaWVudC5zZW5kKCk7CisgICAgICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAg
ICBwcmludCgiRkFJTEVEOiBFeGNlcHRpb24gdGhyb3duOiIgKyAgZSk7CisJIAkKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0
ZXN0KCkiPgorICAgIDxwPlRoaXMgdGVzdCBjaGVja3MgdG8gc2VlIGlmIHRoZSAiZ2V0QWxsSGVh
ZGVycyIgbWV0aG9kIG9mCit4bWxIdHRwcmVxdWVzdCB3b3JrcyBpbiByZWFkeSBzdGF0ZSBIRUFE
RVJTX1JFQ0VJVkVELjwvcD4KKyAgICA8cD5JZiBUaGUgdGVzdCBzdWNjZWVkcyBvbmUgc2hvdWxk
IHNlZSBiZWxvdyB0aGUgcnVsbGVyIHRoZSB0ZXh0CisiU1VDQ0VFREVEOiBnZXRBbGxSZXNwb25z
ZUhlYWRlcnMgcmV0dXJuZWQ6ICIgZm9sbG93ZWQgYnkgY29uZm9ybWluZyBsaXN0IG9mCitoZWFk
ZXJzLjwvcD4KKyAgICA8cD5BIGNvbmZvcm1pbmcgbGlzdCBvZiBoZWFkZXJzOjwvcD4KKyAgICAg
ICAgPGxpPiBjb250YWlucyBvbmUgaGVhZGVyIHBlciBsaW5lLjwvbGk+CisgICAgICAgIDxsaT4g
SGVhZGVyIG5hbWUgYW5kIEhlYWRlciB2YWx1ZSBpcyBzZXBhcmF0ZWQgYnkgQ09MT04gYW5kCitT
UEFDRS48L2xpPgorICAgICAgICA8bGk+IFNldC1Db29raWUgYW5kIFNldC1Db29raWUyIEhlYWRl
cnMgd2l0aCBhbnkgQVNDSUkKK2Nhc2UtaW5zZW5zaXRpdmUgbWF0Y2ggTk9UIGRpc3BsYXllZC48
L2xpPgorICAgIDxocj4KKyAgICA8cD48b2wgaWQ9Y29uc29sZT48L29sPjwvcD4KKzwvYm9keT48
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy94
bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLWRhdGEudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LWdldGFs
bGhlYWRlcnMtZGF0YS50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3htbGh0
dHByZXF1ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLWRhdGEudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACitTVUNDRVNTCgo=
</data>
<flag name="review"
          id="20434"
          type_id="1"
          status="-"
          setter="sam"
    />
    <flag name="commit-queue"
          id="20435"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39362</attachid>
            <date>2009-09-10 11:49:27 -0700</date>
            <delta_ts>2009-09-11 08:54:45 -0700</delta_ts>
            <desc>New Patch proposal to address sam&apos;s concerns</desc>
            <filename>patchFor29121-2.txt</filename>
            <type>text/plain</type>
            <size>10017</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODI1MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDktMDktMTAgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEluY29ycmVjdCBiZWhhdmlvciBvZiBYTUxIdHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWFk
ZXJzIGFuZAorICAgICAgICBYTUxIdHRwUmVxdWVzdDo6Z2V0UmVzcG9uc2VIZWFkZXIgaW4gdGhl
CisgICAgICAgIEhFQURFUlNfUkVDRUlWRUQgcmVhZHlTdGF0ZS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MTIxCisKKyAgICAgICAgVGVzdDogZmFz
dC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLmh0bWwKKyAgICAg
ICAgVGVzdDogZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXIuaHRt
bAorCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyKToKKyAgICAgICAgQ2hhbmdlZCB0
aGUgbWluaW11bSB2YWxpZCBzdGF0ZSBmcm9tIExPQURJTkcgdG8gSEVBREVSU19SRUNFSVZFRC4K
KwogMjAwOS0wOS0wOSAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsuCkluZGV4OiBXZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuY3BwCShyZXZpc2lvbiA0ODI1MCkKKysrIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzE5LDcgKzcxOSw3IEBAIFN0cmluZyBYTUxIdHRwUmVxdWVz
dDo6Z2V0UmVxdWVzdEhlYWRlcigKIAogU3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNw
b25zZUhlYWRlcnMoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7Ci0gICAgaWYgKG1fc3RhdGUg
PCBMT0FESU5HKSB7CisgICAgaWYgKG1fc3RhdGUgPCBIRUFERVJTX1JFQ0VJVkVEKSB7CiAgICAg
ICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybiAiIjsKICAgICB9CkBA
IC03NTMsNyArNzUzLDcgQEAgU3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhl
YQogCiBTdHJpbmcgWE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7Ci0gICAgaWYgKG1fc3Rh
dGUgPCBMT0FESU5HKSB7CisgICAgaWYgKG1fc3RhdGUgPCBIRUFERVJTX1JFQ0VJVkVEKSB7CiAg
ICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybiAiIjsKICAgICB9
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA0ODI1MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDA5LTA5LTEwICBDYXJvbCBTemFibyAgPGNh
cm9sLnN6YWJvQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbmNvcnJlY3QgYmVoYXZpb3Igb2YgWE1MSHR0cFJlcXVlc3Q6OmdldEFs
bFJlc3BvbnNlSGVhZGVycyBhbmQgWE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyIGlu
IHRoZQorICAgICAgICBIRUFERVJTX1JFQ0VJVkVEIHJlYWR5U3RhdGUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTEyMQorCisgICAgICAgICogZmFz
dC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMveG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy1k
YXRhLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVx
dWVzdC1nZXRhbGxoZWFkZXJzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC94
bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LWdl
dGhlYWRlci1kYXRhLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC94bWxodHRwcmVxdWVzdC94
bWxodHRwcmVxdWVzdC1nZXRoZWFkZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWdldGhlYWRlci5odG1sOiBBZGRlZC4K
KyAgICAgICAgMiBuZXcgdGVzdHMgdG8gZXhwb3NlIHRoZSBlcnJvciBhbmQgdmVyaWZ5IHRoZSBm
aXguCisKIDIwMDktMDktMDkgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFrLgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3ht
bGh0dHByZXF1ZXN0LWdldGFsbGhlYWRlcnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFk
ZXJzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBAQAorVGhpcyB0ZXN0
IGNoZWNrcyB0byBzZWUgaWYgdGhlICJnZXRBbGxSZXNwb25zZUhlYWRlcnMiIG1ldGhvZCBvZiB4
bWxIdHRwcmVxdWVzdCB3b3JrcyBpbiByZWFkeVN0YXRlIEhFQURFUlNfUkVDRUlWRUQuCisKK0lm
IHRoZSB0ZXN0IHN1Y2NlZWRzIG9uZSBzaG91bGQgc2VlIGJlbG93IHRoZSBydWxsZXIgdGhlIHRl
eHQgIlNVQ0NFRURFRDogZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIHJldHVybmVkOiAiIGZvbGxvd2Vk
IGJ5IGEgY29uZm9ybWluZyBsaXN0IG9mIGhlYWRlcnMuCisKK0EgY29uZm9ybWluZyBsaXN0IG9m
IGhlYWRlcnM6CisKKyBjb250YWlucyBvbmUgaGVhZGVyIHBlciBsaW5lLgorIGhhcyBoZWFkZXIg
bmFtZXMgYW5kIGhlYWRlciB2YWx1ZXMgc2VwYXJhdGVkIGJ5IGEgQ09MT04gYW5kIGEgU1BBQ0Uu
CisgZG9lcyBub3QgY29udGFpbiBhbnkgaGVhZGVycyB0aGF0IG1hdGNoIChjYXNlLWluc2Vuc2l0
aXZlbHkpIFNldC1Db29raWUgb3IgU2V0LUNvb2tpZTIKK1NVQ0NFRURFRDogZ2V0QWxsUmVzcG9u
c2VIZWFkZXJzIHJldHVybmVkOgorQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUKKwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJz
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxo
dHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWdldGFsbGhlYWRlcnMuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MyBAQAorPGh0bWw+PGhlYWQ+CisgICAgPG1ldGEgaHR0
cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCI+
CisgICAgPHRpdGxlPkdldEFsbFJlc3BvbnNlSGVhZGVyczwvdGl0bGU+CisgICAgPCEtLSBBc3Nl
cnRpb246IEludm9raW5nIGdldEFsbFJlc3BvbnNlSGVhZGVycyBtZXRob2Qgd2hlbiByZWFkeVN0
YXRlID0gMgorICAgIChIRUFERVJTX1JFQ0VJVkVEKSBzaG91bGQgcmV0dXJuIGEgY29uZm9ybWlu
ZyBsaXN0IG9mIGhlYWRlcnMuIC0tPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIHBy
aW50KG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJsaSIpOworICAgICAgICAgICAgcGFyYWdyYXBoLmlubmVySFRNTD1tZXNzYWdl
OworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRD
aGlsZChwYXJhZ3JhcGgpOworICAgICAgICB9CisgICAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoKSB7
CisJCSAgICAgICAgaWYgKCh0aGlzLnJlYWR5U3RhdGUgPT0gMikpIHsKKyAgICAgICAgICAgICAg
ICB0cnkgeworICAgICAgICAgICAgICAgICAgICB2YXIgc3RyID0gdGhpcy5nZXRBbGxSZXNwb25z
ZUhlYWRlcnMoKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAg
ICAgICAgcHJpbnQoIkZBSUxFRDogZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIHRocmV3IGV4Y2VwdGlv
bjoiICsgZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKC9eU2V0LUNv
b2tpZTp8XlNldC1Db29raWUyOi9pbS50ZXN0KHN0cikpCisgICAgICAgICAgICAgICAgICAgIHBy
aW50KCJGQUlMRUQ6IC9eU2V0LUNvb2tpZTp8XlNldC1Db29raWUyOi8gbWF0Y2hlcy4gZ2V0QWxs
UmVzcG9uc2VIZWFkZXJzIHJldHVybmVkOjxicj4iICsgc3RyLnJlcGxhY2UoL1xyXG4vZ2ltLCI8
YnI+IikpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQo
IlNVQ0NFRURFRDogZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIHJldHVybmVkOjxicj4iICsgc3RyLnJl
cGxhY2UoL1xyXG4vZ2ltLCI8YnI+IikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICAgIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgICAgICAgIHZhciBjbGllbnQgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsgCisg
ICAgICAgICAgICBjbGllbnQub25yZWFkeXN0YXRlY2hhbmdlID0gaGFuZGxlcjsKKyAgICAgICAg
ICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY2xpZW50Lm9wZW4oIkdFVCIsICJyZXNvdXJjZXMv
eG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy1kYXRhLnR4dCIsIHRydWUpOworICAgICAgICAg
ICAgICAgIGNsaWVudC5zZW5kKCk7CisgICAgICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAg
ICAgICAgICBwcmludCgiRkFJTEVEOiBFeGNlcHRpb24gdGhyb3duOiIgKyAgZSk7CisJIAkKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJ0ZXN0KCkiPgorICAgIDxwPlRoaXMgdGVzdCBjaGVja3MgdG8gc2VlIGlmIHRoZSAiZ2V0
QWxsUmVzcG9uc2VIZWFkZXJzIiBtZXRob2Qgb2YKK3htbEh0dHByZXF1ZXN0IHdvcmtzIGluIHJl
YWR5U3RhdGUgSEVBREVSU19SRUNFSVZFRC48L3A+CisgICAgPHA+SWYgdGhlIHRlc3Qgc3VjY2Vl
ZHMgb25lIHNob3VsZCBzZWUgYmVsb3cgdGhlIHJ1bGxlciB0aGUgdGV4dAorIlNVQ0NFRURFRDog
Z2V0QWxsUmVzcG9uc2VIZWFkZXJzIHJldHVybmVkOiAiIGZvbGxvd2VkIGJ5IGEgY29uZm9ybWlu
ZyBsaXN0IG9mCitoZWFkZXJzLjwvcD4KKyAgICA8cD5BIGNvbmZvcm1pbmcgbGlzdCBvZiBoZWFk
ZXJzOjwvcD4KKyAgICAgICAgPGxpPiBjb250YWlucyBvbmUgaGVhZGVyIHBlciBsaW5lLjwvbGk+
CisgICAgICAgIDxsaT4gaGFzIGhlYWRlciBuYW1lcyBhbmQgaGVhZGVyIHZhbHVlcyBzZXBhcmF0
ZWQgYnkgYSBDT0xPTiBhbmQKK2EgU1BBQ0UuPC9saT4KKyAgICAgICAgPGxpPiBkb2VzIG5vdCBj
b250YWluIGFueSBoZWFkZXJzIHRoYXQgbWF0Y2ggKGNhc2UtaW5zZW5zaXRpdmVseSkgU2V0LUNv
b2tpZSBvciBTZXQtQ29va2llMjwvbGk+CisgICAgPGhyPgorICAgIDxwPjxvbCBpZD1jb25zb2xl
Pjwvb2w+PC9wPgorPC9ib2R5PjwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QveG1saHR0
cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZ2V0aGVhZGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWdldGhl
YWRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3htbGh0
dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWdldGhlYWRlci1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNiBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0byBzZWUgaWYgdGhlICJnZXRS
ZXNwb25zZUhlYWRlciIgbWV0aG9kIG9mIHhtbEh0dHByZXF1ZXN0IHdvcmtzIGluIHJlYWR5U3Rh
dGUgSEVBREVSU19SRUNFSVZFRC4KKworSWYgdGhlIHRlc3Qgc3VjY2VlZHMgb25lIHNob3VsZCBz
ZWUgYmVsb3cgdGhlIHJ1bGxlciB0aGUgdGV4dCAiU1VDQ0VFREVEOiBnZXRSZXNwb25zZUhlYWRl
ciByZXR1cm5lZDogPGhlYWRlciB2YWx1ZT4iCisKK1NVQ0NFRURFRDogZ2V0UmVzcG9uc2VIZWFk
ZXIgcmV0dXJuZWQ6IG5vLWNhY2hlCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QveG1saHR0cHJl
cXVlc3QveG1saHR0cHJlcXVlc3QtZ2V0aGVhZGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXIuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJl
cXVlc3QtZ2V0aGVhZGVyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDUgQEAKKzxodG1s
PjxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4
dC9odG1sO2NoYXJzZXQ9dXRmLTgiPgorICAgIDx0aXRsZT5HZXRSZXNwb25zZUhlYWRlcjwvdGl0
bGU+CisgICAgPCEtLSBBc3NlcnRpb246IEludm9rZSBnZXRSZXNwb25zZUhlYWRlciBtZXRob2Qg
d2hlbiByZWFkeVN0YXRlID0gMgorICAgIChIRUFERVJTX1JFQ0VJVkVEKSBzaG91bGQgbm90IHRo
cm93IGFuIGV4Y2VwdGlvbiBhbmQgcmV0dXJuIGEgdmFsaWQKKyAgICB2YWx1ZS4gLS0+CisgICAg
PHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gcHJpbnQobWVzc2FnZSkgeworICAgICAgICAgICAg
dmFyIHBhcmFncmFwaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgICAgICAg
ICBwYXJhZ3JhcGguaW5uZXJIVE1MPW1lc3NhZ2U7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHBhcmFncmFwaCk7CisgICAgICAgIH0K
KyAgICAgICAgZnVuY3Rpb24gaGFuZGxlcigpIHsKKwkJICAgICAgICBpZiAoKHRoaXMucmVhZHlT
dGF0ZSA9PSAyKSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAg
IHZhciBzdHIgPSB0aGlzLmdldFJlc3BvbnNlSGVhZGVyKCJDYWNoZS1Db250cm9sIik7CisgICAg
ICAgICAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50KCJGQUlM
RUQ6IGdldFJlc3BvbnNlSGVhZGVyIHRocmV3IGV4Y2VwdGlvbjoiICsgZSk7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIHByaW50KCJTVUNDRUVERUQ6IGdldFJlc3BvbnNlSGVh
ZGVyIHJldHVybmVkOiAiICsgc3RyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgICAgICAgICB2YXIgY2xpZW50ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7IAorICAg
ICAgICAgICAgY2xpZW50Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGhhbmRsZXI7CisgICAgICAgICAg
ICB0cnkgeworICAgICAgICAgICAgICAgIGNsaWVudC5vcGVuKCJHRVQiLCAicmVzb3VyY2VzL3ht
bGh0dHByZXF1ZXN0LWdldGhlYWRlci1kYXRhLnR4dCIsIHRydWUpOworICAgICAgICAgICAgICAg
IGNsaWVudC5zZW5kKCk7CisgICAgICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAg
ICBwcmludCgiRkFJTEVEOiBFeGNlcHRpb24gdGhyb3duOiIgKyAgZSk7CisJIAkKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0
ZXN0KCkiPgorICAgIDxwPlRoaXMgdGVzdCBjaGVja3MgdG8gc2VlIGlmIHRoZSAiZ2V0UmVzcG9u
c2VIZWFkZXIiIG1ldGhvZCBvZgoreG1sSHR0cHJlcXVlc3Qgd29ya3MgaW4gcmVhZHlTdGF0ZSBI
RUFERVJTX1JFQ0VJVkVELjwvcD4KKyAgICA8cD5JZiB0aGUgdGVzdCBzdWNjZWVkcyBvbmUgc2hv
dWxkIHNlZSBiZWxvdyB0aGUgcnVsbGVyIHRoZSB0ZXh0CisiU1VDQ0VFREVEOiBnZXRSZXNwb25z
ZUhlYWRlciByZXR1cm5lZDogJmx0O2hlYWRlciB2YWx1ZSZndDsiPC9wPgorICAgIDxocj4KKyAg
ICA8cD48b2wgaWQ9Y29uc29sZT48L29sPjwvcD4KKzwvYm9keT48L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1nZXRh
bGxoZWFkZXJzLWRhdGEudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QveG1saHR0
cHJlcXVlc3QvcmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LWdldGFsbGhlYWRlcnMtZGF0YS50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3Jlc291cmNl
cy94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLWRhdGEudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxIEBACitTVUNDRVNTCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXItZGF0YS50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMveG1saHR0cHJlcXVl
c3QtZ2V0aGVhZGVyLWRhdGEudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMveG1saHR0cHJlcXVlc3QtZ2V0aGVhZGVyLWRhdGEudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFE
T0NUWVBFIGRvYyBbCis8IUFUVExJU1QgZCBpZCBJRCAjSU1QTElFRD4KK10+Cis8ZG9jPgorICA8
Zm9vIHhtbG5zPSJmb29iYXIiPk9uZTwvZm9vPiA8eDpiYXIgeG1sbnM6eD0iYmFyZm9vIj5Ud288
L3g6YmFyPgorICA8ZCBpZD0iaWQzIj5UaHJlZTwvZD4KKzwvZG9jPgoK
</data>
<flag name="review"
          id="20451"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39437</attachid>
            <date>2009-09-11 08:54:45 -0700</date>
            <delta_ts>2009-09-11 13:27:09 -0700</delta_ts>
            <desc>Modified tests to make them more portable</desc>
            <filename>patchFor29121-3.txt</filename>
            <type>text/plain</type>
            <size>11086</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODI2MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDktMDktMTAgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEluY29ycmVjdCBiZWhhdmlvciBvZiBYTUxIdHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWFk
ZXJzIGFuZAorICAgICAgICBYTUxIdHRwUmVxdWVzdDo6Z2V0UmVzcG9uc2VIZWFkZXIgaW4gdGhl
CisgICAgICAgIEhFQURFUlNfUkVDRUlWRUQgcmVhZHlTdGF0ZS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MTIxCisKKyAgICAgICAgVGVzdDogZmFz
dC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLmh0bWwKKyAgICAg
ICAgVGVzdDogZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXIuaHRt
bAorCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyKToKKyAgICAgICAgQ2hhbmdlZCB0
aGUgbWluaW11bSB2YWxpZCBzdGF0ZSBmcm9tIExPQURJTkcgdG8gSEVBREVSU19SRUNFSVZFRC4K
KwogMjAwOS0wOS0xMCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNv
bGxhYm9yYS5jby51az4KIAogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXogYW5kIERhbiBX
aW5zaGlwLgpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAkocmV2aXNpb24gNDgyNjEpCisrKyBX
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxOSw3ICs3
MTksNyBAQCBTdHJpbmcgWE1MSHR0cFJlcXVlc3Q6OmdldFJlcXVlc3RIZWFkZXIoCiAKIFN0cmlu
ZyBYTUxIdHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWFkZXJzKEV4Y2VwdGlvbkNvZGUmIGVj
KSBjb25zdAogewotICAgIGlmIChtX3N0YXRlIDwgTE9BRElORykgeworICAgIGlmIChtX3N0YXRl
IDwgSEVBREVSU19SRUNFSVZFRCkgewogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwog
ICAgICAgICByZXR1cm4gIiI7CiAgICAgfQpAQCAtNzUzLDcgKzc1Myw3IEBAIFN0cmluZyBYTUxI
dHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWEKIAogU3RyaW5nIFhNTEh0dHBSZXF1ZXN0Ojpn
ZXRSZXNwb25zZUhlYWRlcihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUm
IGVjKSBjb25zdAogewotICAgIGlmIChtX3N0YXRlIDwgTE9BRElORykgeworICAgIGlmIChtX3N0
YXRlIDwgSEVBREVSU19SRUNFSVZFRCkgewogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJS
OwogICAgICAgICByZXR1cm4gIiI7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDgyNjEpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAor
MjAwOS0wOS0xMCAgQ2Fyb2wgU3phYm8gIDxjYXJvbC5zemFib0Bub2tpYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5jb3JyZWN0IGJlaGF2
aW9yIG9mIFhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMgYW5kIFhNTEh0dHBS
ZXF1ZXN0OjpnZXRSZXNwb25zZUhlYWRlciBpbiB0aGUKKyAgICAgICAgSEVBREVSU19SRUNFSVZF
RCByZWFkeVN0YXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjkxMjEKKworICAgICAgICAqIGZhc3QveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3ht
bGh0dHByZXF1ZXN0LWdldGFsbGhlYWRlcnMtZGF0YS50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qt
Z2V0YWxsaGVhZGVycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXItZGF0YS50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZ2V0aGVhZGVyLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVx
dWVzdC1nZXRoZWFkZXIuaHRtbDogQWRkZWQuCisgICAgICAgIDIgbmV3IHRlc3RzIHRvIGV4cG9z
ZSB0aGUgZXJyb3IgYW5kIHZlcmlmeSB0aGUgZml4LgorCiAyMDA5LTA5LTEwICBKaWFuIExpICA8
amlhbmxpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZ2V0
YWxsaGVhZGVycy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC94
bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJl
cXVlc3QtZ2V0YWxsaGVhZGVycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTMgQEAKK1RoaXMgdGVzdCBjaGVja3MgdG8gc2VlIGlmIHRoZSAiZ2V0QWxsUmVzcG9uc2VIZWFk
ZXJzIiBtZXRob2Qgb2YgeG1sSHR0cHJlcXVlc3Qgd29ya3MgaW4gcmVhZHlTdGF0ZSBIRUFERVJT
X1JFQ0VJVkVELgorCitJZiB0aGUgdGVzdCBzdWNjZWVkcyBvbmUgc2hvdWxkIHNlZSBiZWxvdyB0
aGUgcnVsbGVyIHRoZSB0ZXh0ICJTVUNDRUVERUQ6IGdldEFsbFJlc3BvbnNlSGVhZGVycyByZXR1
cm5lZDogIiBmb2xsb3dlZCBieSBhIGNvbmZvcm1pbmcgbGlzdCBvZiBoZWFkZXJzLgorCitBIGNv
bmZvcm1pbmcgbGlzdCBvZiBoZWFkZXJzOgorCisgY29udGFpbnMgb25lIGhlYWRlciBwZXIgbGlu
ZS4KKyBoYXMgaGVhZGVyIG5hbWVzIGFuZCBoZWFkZXIgdmFsdWVzIHNlcGFyYXRlZCBieSBhIENP
TE9OIGFuZCBhIFNQQUNFLgorIGRvZXMgbm90IGNvbnRhaW4gYW55IGhlYWRlcnMgdGhhdCBtYXRj
aCAoY2FzZS1pbnNlbnNpdGl2ZWx5KSBTZXQtQ29va2llIG9yIFNldC1Db29raWUyCitJbiB0aGUg
YXV0b21hdGVkIHRlc3QgZW52aXJvbm1lbnQgbm8gaGVhZGVyIGxpc3QgYXBwZWFycyBiZWNhdXNl
IGl0IG1heSBiZSB2YXJpYWJsZSBkZXBlbmRpbmcgb24gdGhlIGVudmlyb25tZW50IGFuZCBtYXkg
Y2F1c2UgdGhlIHRlc3QgdG8gZmFpbCB3aGVuIGl0IHNob3VsZCBub3QuCisKK1NVQ0NFRURFRDog
Z2V0QWxsUmVzcG9uc2VIZWFkZXJzIHJldHVybmVkIHdoYXQgbG9va3MgbGlrZSBhIGNvbmZvcm1p
bmcgaGVhZGVybGlzdC4KKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94
bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHBy
ZXF1ZXN0LWdldGFsbGhlYWRlcnMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OCBAQAor
PGh0bWw+PGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50
PSJ0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCI+CisgICAgPHRpdGxlPkdldEFsbFJlc3BvbnNlSGVh
ZGVyczwvdGl0bGU+CisgICAgPCEtLSBBc3NlcnRpb246IEludm9raW5nIGdldEFsbFJlc3BvbnNl
SGVhZGVycyBtZXRob2Qgd2hlbiByZWFkeVN0YXRlID0gMgorICAgIChIRUFERVJTX1JFQ0VJVkVE
KSBzaG91bGQgcmV0dXJuIGEgY29uZm9ybWluZyBsaXN0IG9mIGhlYWRlcnMuIC0tPgorICAgIDxz
Y3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIHByaW50KG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIHZh
ciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOworICAgICAgICAgICAg
cGFyYWdyYXBoLmlubmVySFRNTD1tZXNzYWdlOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOworICAgICAgICB9Cisg
ICAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoKSB7CisJCSAgICAgICAgaWYgKCh0aGlzLnJlYWR5U3Rh
dGUgPT0gMikpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICB2
YXIgc3RyID0gdGhpcy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKTsKKyAgICAgICAgICAgICAgICB9
IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoIkZBSUxFRDogZ2V0QWxsUmVz
cG9uc2VIZWFkZXJzIHRocmV3IGV4Y2VwdGlvbjoiICsgZSk7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIGlmKC9eU2V0LUNvb2tpZTp8XlNldC1Db29raWUyOi9pbS50ZXN0KHN0
cikpCisgICAgICAgICAgICAgICAgICAgIHByaW50KCJGQUlMRUQ6IC9eU2V0LUNvb2tpZTp8XlNl
dC1Db29raWUyOi8gbWF0Y2hlcy4gZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIHJldHVybmVkOjxicj4i
ICsgc3RyLnJlcGxhY2UoL1xyXG4vZ2ltLCI8YnI+IikpOworICAgICAgICAgICAgICAgIGVsc2Ug
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgcHJp
bnQoIlNVQ0NFRURFRDogZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIHJldHVybmVkIHdoYXQgbG9va3Mg
bGlrZSBhIGNvbmZvcm1pbmcgaGVhZGVybGlzdC4iKTsKKyAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIHByaW50KCJTVUNDRUVERUQ6IGdldEFsbFJlc3BvbnNlSGVhZGVy
cyByZXR1cm5lZDo8YnI+IiArIHN0ci5yZXBsYWNlKC9cclxuL2dpbSwiPGJyPiIpKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICAg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB2YXIgY2xpZW50ID0g
bmV3IFhNTEh0dHBSZXF1ZXN0KCk7IAorICAgICAgICAgICAgY2xpZW50Lm9ucmVhZHlzdGF0ZWNo
YW5nZSA9IGhhbmRsZXI7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNsaWVu
dC5vcGVuKCJHRVQiLCAicmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LWdldGFsbGhlYWRlcnMtZGF0
YS50eHQiLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBjbGllbnQuc2VuZCgpOworICAgICAgICAg
ICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICAgICAgcHJpbnQoIkZBSUxFRDogRXhjZXB0aW9u
IHRocm93bjoiICsgIGUpOworCSAJCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKyAgICA8cD5UaGlzIHRlc3Qg
Y2hlY2tzIHRvIHNlZSBpZiB0aGUgImdldEFsbFJlc3BvbnNlSGVhZGVycyIgbWV0aG9kIG9mCit4
bWxIdHRwcmVxdWVzdCB3b3JrcyBpbiByZWFkeVN0YXRlIEhFQURFUlNfUkVDRUlWRUQuPC9wPgor
ICAgIDxwPklmIHRoZSB0ZXN0IHN1Y2NlZWRzIG9uZSBzaG91bGQgc2VlIGJlbG93IHRoZSBydWxs
ZXIgdGhlIHRleHQKKyJTVUNDRUVERUQ6IGdldEFsbFJlc3BvbnNlSGVhZGVycyByZXR1cm5lZDog
IiBmb2xsb3dlZCBieSBhIGNvbmZvcm1pbmcgbGlzdCBvZgoraGVhZGVycy48L3A+CisgICAgPHA+
QSBjb25mb3JtaW5nIGxpc3Qgb2YgaGVhZGVyczo8L3A+CisgICAgICAgIDxsaT4gY29udGFpbnMg
b25lIGhlYWRlciBwZXIgbGluZS48L2xpPgorICAgICAgICA8bGk+IGhhcyBoZWFkZXIgbmFtZXMg
YW5kIGhlYWRlciB2YWx1ZXMgc2VwYXJhdGVkIGJ5IGEgQ09MT04gYW5kCithIFNQQUNFLjwvbGk+
CisgICAgICAgIDxsaT4gZG9lcyBub3QgY29udGFpbiBhbnkgaGVhZGVycyB0aGF0IG1hdGNoIChj
YXNlLWluc2Vuc2l0aXZlbHkpIFNldC1Db29raWUgb3IgU2V0LUNvb2tpZTI8L2xpPgorICAgIDxw
PkluIHRoZSBhdXRvbWF0ZWQgdGVzdCBlbnZpcm9ubWVudCBubyBoZWFkZXIgbGlzdCBhcHBlYXJz
IGJlY2F1c2UgaXQKKyAgICAgICAgbWF5IGJlIHZhcmlhYmxlIGRlcGVuZGluZyBvbiB0aGUgZW52
aXJvbm1lbnQgYW5kIG1heSBjYXVzZSB0aGUgdGVzdAorICAgICAgICB0byBmYWlsIHdoZW4gaXQg
c2hvdWxkIG5vdC48L3A+CisgICAgPGhyPgorICAgIDxwPjxvbCBpZD1jb25zb2xlPjwvb2w+PC9w
PgorPC9ib2R5PjwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3Qv
eG1saHR0cHJlcXVlc3QtZ2V0aGVhZGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWdldGhlYWRlci1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0
L3htbGh0dHByZXF1ZXN0LWdldGhlYWRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsOCBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0byBzZWUgaWYgdGhlICJnZXRSZXNwb25zZUhl
YWRlciIgbWV0aG9kIG9mIHhtbEh0dHByZXF1ZXN0IHdvcmtzIGluIHJlYWR5U3RhdGUgSEVBREVS
U19SRUNFSVZFRC4KKworSWYgdGhlIHRlc3Qgc3VjY2VlZHMgb25lIHNob3VsZCBzZWUgYmVsb3cg
dGhlIHJ1bGxlciB0aGUgdGV4dCAiU1VDQ0VFREVEOiBnZXRSZXNwb25zZUhlYWRlciByZXR1cm5l
ZDogPGhlYWRlciB2YWx1ZT4iCisKK0ZvciB0aGUgYXV0b21hdGVkIHRlc3RpbmcgZW52aXJvbm1l
bnQgdGhlIGhlYWRlciB2YWx1ZSBpcyBub3QgZGlzcGxheWVkIGFzIGl0IG1heSB2YXJ5IGZyb20g
b25lIGVudmlyb25tZW50IHRvIGFub3RoZXIgYW5kIGNhdXNlIHRoZSB0ZXN0IHRvIGZhaWwgd2hl
biBpdCBzaG91bGQgbm90LgorCitTVUNDRUVERUQ6IGdldFJlc3BvbnNlSGVhZGVyIHJldHVybmVk
IGEgaGVhZGVyIHZhbHVlLgorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0
L3htbGh0dHByZXF1ZXN0LWdldGhlYWRlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZ2V0aGVhZGVyLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0
LWdldGhlYWRlci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUxIEBACis8aHRtbD48aGVh
ZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRt
bDtjaGFyc2V0PXV0Zi04Ij4KKyAgICA8dGl0bGU+R2V0UmVzcG9uc2VIZWFkZXI8L3RpdGxlPgor
ICAgIDwhLS0gQXNzZXJ0aW9uOiBJbnZva2UgZ2V0UmVzcG9uc2VIZWFkZXIgbWV0aG9kIHdoZW4g
cmVhZHlTdGF0ZSA9IDIKKyAgICAoSEVBREVSU19SRUNFSVZFRCkgc2hvdWxkIG5vdCB0aHJvdyBh
biBleGNlcHRpb24gYW5kIHJldHVybiBhIHZhbGlkCisgICAgdmFsdWUuIC0tPgorICAgIDxzY3Jp
cHQ+CisgICAgICAgIGZ1bmN0aW9uIHByaW50KG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIHZhciBw
YXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOworICAgICAgICAgICAgcGFy
YWdyYXBoLmlubmVySFRNTD1tZXNzYWdlOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOworICAgICAgICB9CisgICAg
ICAgIGZ1bmN0aW9uIGhhbmRsZXIoKSB7CisJCSAgICAgICAgaWYgKCh0aGlzLnJlYWR5U3RhdGUg
PT0gMikpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICB2YXIg
c3RyID0gdGhpcy5nZXRSZXNwb25zZUhlYWRlcigiQ2FjaGUtQ29udHJvbCIpOworICAgICAgICAg
ICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICAgICAgICBwcmludCgiRkFJTEVEOiBn
ZXRSZXNwb25zZUhlYWRlciB0aHJldyBleGNlcHRpb246IiArIGUpOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAg
ICAgICAgICAgcHJpbnQoIlNVQ0NFRURFRDogZ2V0UmVzcG9uc2VIZWFkZXIgcmV0dXJuZWQgYSBo
ZWFkZXIgdmFsdWUuIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcHJpbnQo
IlNVQ0NFRURFRDogZ2V0UmVzcG9uc2VIZWFkZXIgcmV0dXJuZWQ6ICIgKyBzdHIpOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgICAgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHZhciBjbGllbnQgPSBu
ZXcgWE1MSHR0cFJlcXVlc3QoKTsgCisgICAgICAgICAgICBjbGllbnQub25yZWFkeXN0YXRlY2hh
bmdlID0gaGFuZGxlcjsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY2xpZW50
Lm9wZW4oIkdFVCIsICJyZXNvdXJjZXMveG1saHR0cHJlcXVlc3QtZ2V0aGVhZGVyLWRhdGEudHh0
IiwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgY2xpZW50LnNlbmQoKTsKKyAgICAgICAgICAgIH0g
Y2F0Y2goZSkgeworICAgICAgICAgICAgICAgIHByaW50KCJGQUlMRUQ6IEV4Y2VwdGlvbiB0aHJv
d246IiArICBlKTsKKwkgCQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CisgICAgPHA+VGhpcyB0ZXN0IGNoZWNr
cyB0byBzZWUgaWYgdGhlICJnZXRSZXNwb25zZUhlYWRlciIgbWV0aG9kIG9mCit4bWxIdHRwcmVx
dWVzdCB3b3JrcyBpbiByZWFkeVN0YXRlIEhFQURFUlNfUkVDRUlWRUQuPC9wPgorICAgIDxwPklm
IHRoZSB0ZXN0IHN1Y2NlZWRzIG9uZSBzaG91bGQgc2VlIGJlbG93IHRoZSBydWxsZXIgdGhlIHRl
eHQKKyJTVUNDRUVERUQ6IGdldFJlc3BvbnNlSGVhZGVyIHJldHVybmVkOiAmbHQ7aGVhZGVyIHZh
bHVlJmd0OyI8L3A+CisgICAgPHA+Rm9yIHRoZSBhdXRvbWF0ZWQgdGVzdGluZyBlbnZpcm9ubWVu
dCB0aGUgaGVhZGVyIHZhbHVlIGlzIG5vdAorICAgIGRpc3BsYXllZCBhcyBpdCBtYXkgdmFyeSBm
cm9tIG9uZSBlbnZpcm9ubWVudCB0byBhbm90aGVyIGFuZCBjYXVzZSB0aGUKKyAgICB0ZXN0IHRv
IGZhaWwgd2hlbiBpdCBzaG91bGQgbm90LjwvcD4KKyAgICA8aHI+CisgICAgPHA+PG9sIGlkPWNv
bnNvbGU+PC9vbD48L3A+Cis8L2JvZHk+PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMveG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy1kYXRh
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3Jlc291
cmNlcy94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLWRhdGEudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMveG1saHR0cHJlcXVl
c3QtZ2V0YWxsaGVhZGVycy1kYXRhLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorU1VD
Q0VTUwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMveG1s
aHR0cHJlcXVlc3QtZ2V0aGVhZGVyLWRhdGEudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LWdldGhlYWRlci1k
YXRhLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3Qv
cmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LWdldGhlYWRlci1kYXRhLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBkb2MgWwor
PCFBVFRMSVNUIGQgaWQgSUQgI0lNUExJRUQ+CitdPgorPGRvYz4KKyAgPGZvbyB4bWxucz0iZm9v
YmFyIj5PbmU8L2Zvbz4gPHg6YmFyIHhtbG5zOng9ImJhcmZvbyI+VHdvPC94OmJhcj4KKyAgPGQg
aWQ9ImlkMyI+VGhyZWU8L2Q+Cis8L2RvYz4KCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39471</attachid>
            <date>2009-09-11 13:27:09 -0700</date>
            <delta_ts>2009-09-14 09:18:21 -0700</delta_ts>
            <desc>Proposed patch. Moved tests to http/tests/xmlhttprequest from fast/xmlhttprequest</desc>
            <filename>patchFor29121-4.txt</filename>
            <type>text/plain</type>
            <size>11793</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODI2MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDktMDktMTAgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEluY29ycmVjdCBiZWhhdmlvciBvZiBYTUxIdHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWFk
ZXJzIGFuZAorICAgICAgICBYTUxIdHRwUmVxdWVzdDo6Z2V0UmVzcG9uc2VIZWFkZXIgaW4gdGhl
CisgICAgICAgIEhFQURFUlNfUkVDRUlWRUQgcmVhZHlTdGF0ZS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MTIxCisKKyAgICAgICAgVGVzdDogZmFz
dC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLmh0bWwKKyAgICAg
ICAgVGVzdDogZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXIuaHRt
bAorCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyKToKKyAgICAgICAgQ2hhbmdlZCB0
aGUgbWluaW11bSB2YWxpZCBzdGF0ZSBmcm9tIExPQURJTkcgdG8gSEVBREVSU19SRUNFSVZFRC4K
KwogMjAwOS0wOS0xMCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNv
bGxhYm9yYS5jby51az4KIAogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXogYW5kIERhbiBX
aW5zaGlwLgpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAkocmV2aXNpb24gNDgyNjEpCisrKyBX
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxOSw3ICs3
MTksNyBAQCBTdHJpbmcgWE1MSHR0cFJlcXVlc3Q6OmdldFJlcXVlc3RIZWFkZXIoCiAKIFN0cmlu
ZyBYTUxIdHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWFkZXJzKEV4Y2VwdGlvbkNvZGUmIGVj
KSBjb25zdAogewotICAgIGlmIChtX3N0YXRlIDwgTE9BRElORykgeworICAgIGlmIChtX3N0YXRl
IDwgSEVBREVSU19SRUNFSVZFRCkgewogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwog
ICAgICAgICByZXR1cm4gIiI7CiAgICAgfQpAQCAtNzUzLDcgKzc1Myw3IEBAIFN0cmluZyBYTUxI
dHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWEKIAogU3RyaW5nIFhNTEh0dHBSZXF1ZXN0Ojpn
ZXRSZXNwb25zZUhlYWRlcihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUm
IGVjKSBjb25zdAogewotICAgIGlmIChtX3N0YXRlIDwgTE9BRElORykgeworICAgIGlmIChtX3N0
YXRlIDwgSEVBREVSU19SRUNFSVZFRCkgewogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJS
OwogICAgICAgICByZXR1cm4gIiI7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDgyNjEpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAor
MjAwOS0wOS0xMCAgQ2Fyb2wgU3phYm8gIDxjYXJvbC5zemFib0Bub2tpYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5jb3JyZWN0IGJlaGF2
aW9yIG9mIFhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMgYW5kIFhNTEh0dHBS
ZXF1ZXN0OjpnZXRSZXNwb25zZUhlYWRlciBpbiB0aGUKKyAgICAgICAgSEVBREVSU19SRUNFSVZF
RCByZWFkeVN0YXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjkxMjEKKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3Vy
Y2VzL3htbGh0dHByZXF1ZXN0LWdldGFsbGhlYWRlcnMtZGF0YS50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVy
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QveG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1nZXRoZWFk
ZXItZGF0YS50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
eG1saHR0cHJlcXVlc3QtZ2V0aGVhZGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXIuaHRtbDog
QWRkZWQuCisgICAgICAgIDIgbmV3IHRlc3RzIHRvIGV4cG9zZSB0aGUgZXJyb3IgYW5kIHZlcmlm
eSB0aGUgZml4LgorCiAyMDA5LTA5LTEwICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IExheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVl
c3QtZ2V0YWxsaGVhZGVycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMg
QEAKK1RoaXMgdGVzdCBjaGVja3MgdG8gc2VlIGlmIHRoZSAiZ2V0QWxsUmVzcG9uc2VIZWFkZXJz
IiBtZXRob2Qgb2YgeG1sSHR0cHJlcXVlc3Qgd29ya3MgaW4gcmVhZHlTdGF0ZSBIRUFERVJTX1JF
Q0VJVkVELgorCitJZiB0aGUgdGVzdCBzdWNjZWVkcyBvbmUgc2hvdWxkIHNlZSBiZWxvdyB0aGUg
cnVsbGVyIHRoZSB0ZXh0ICJTVUNDRUVERUQ6IGdldEFsbFJlc3BvbnNlSGVhZGVycyByZXR1cm5l
ZDogIiBmb2xsb3dlZCBieSBhIGNvbmZvcm1pbmcgbGlzdCBvZiBoZWFkZXJzLgorCitBIGNvbmZv
cm1pbmcgbGlzdCBvZiBoZWFkZXJzOgorCisgY29udGFpbnMgb25lIGhlYWRlciBwZXIgbGluZS4K
KyBoYXMgaGVhZGVyIG5hbWVzIGFuZCBoZWFkZXIgdmFsdWVzIHNlcGFyYXRlZCBieSBhIENPTE9O
IGFuZCBhIFNQQUNFLgorIGRvZXMgbm90IGNvbnRhaW4gYW55IGhlYWRlcnMgdGhhdCBtYXRjaCAo
Y2FzZS1pbnNlbnNpdGl2ZWx5KSBTZXQtQ29va2llIG9yIFNldC1Db29raWUyCitJbiB0aGUgYXV0
b21hdGVkIHRlc3QgZW52aXJvbm1lbnQgbm8gaGVhZGVyIGxpc3QgYXBwZWFycyBiZWNhdXNlIGl0
IG1heSBiZSB2YXJpYWJsZSBkZXBlbmRpbmcgb24gdGhlIGVudmlyb25tZW50IGFuZCBtYXkgY2F1
c2UgdGhlIHRlc3QgdG8gZmFpbCB3aGVuIGl0IHNob3VsZCBub3QuCisKK1NVQ0NFRURFRDogZ2V0
QWxsUmVzcG9uc2VIZWFkZXJzIHJldHVybmVkIHdoYXQgbG9va3MgbGlrZSBhIGNvbmZvcm1pbmcg
aGVhZGVybGlzdC4KKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFk
ZXJzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWdldGFsbGhlYWRlcnMuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw2NCBAQAorPGh0bWw+PGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVu
dC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCI+CisgICAgPHRpdGxlPkdl
dEFsbFJlc3BvbnNlSGVhZGVyczwvdGl0bGU+CisgICAgPCEtLSBBc3NlcnRpb246IEludm9raW5n
IGdldEFsbFJlc3BvbnNlSGVhZGVycyBtZXRob2Qgd2hlbiByZWFkeVN0YXRlID0gMgorICAgIChI
RUFERVJTX1JFQ0VJVkVEKSBzaG91bGQgcmV0dXJuIGEgY29uZm9ybWluZyBsaXN0IG9mIGhlYWRl
cnMuIC0tPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIHByaW50KG1lc3NhZ2UpIHsK
KyAgICAgICAgICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIp
OworICAgICAgICAgICAgcGFyYWdyYXBoLmlubmVySFRNTD1tZXNzYWdlOworICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgp
OworICAgICAgICB9CisgICAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoKSB7CisgICAgICAgICAgICBp
ZiAoKHRoaXMucmVhZHlTdGF0ZSA9PSAyKSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAg
ICAgICAgICAgICAgICAgIHZhciBzdHIgPSB0aGlzLmdldEFsbFJlc3BvbnNlSGVhZGVycygpOwor
ICAgICAgICAgICAgICAgICAgICBpZiAoL15TZXQtQ29va2llOnxeU2V0LUNvb2tpZTI6L2ltLnRl
c3Qoc3RyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCJGQUlMRUQ6IC9eU2V0LUNv
b2tpZTp8XlNldC1Db29raWUyOi8gbWF0Y2hlcy4gZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIHJldHVy
bmVkOjxicj4iICsgc3RyLnJlcGxhY2UoL1xyXG4vZ2ltLCI8YnI+IikpOworICAgICAgICAgICAg
ICAgICAgICBlbHNlIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAg
ICAgICAgICAgICAgICBwcmludCgiU1VDQ0VFREVEOiBnZXRBbGxSZXNwb25zZUhlYWRlcnMgcmV0
dXJuZWQgd2hhdCBsb29rcyBsaWtlIGEgY29uZm9ybWluZyBoZWFkZXJsaXN0LiIpOworICAgICAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiU1VDQ0VF
REVEOiBnZXRBbGxSZXNwb25zZUhlYWRlcnMgcmV0dXJuZWQ6PGJyPiIgKyBzdHIucmVwbGFjZSgv
XHJcbi9naW0sIjxicj4iKSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAg
ICAgICAgICAgICAgIHByaW50KCJGQUlMRUQ6IGdldEFsbFJlc3BvbnNlSGVhZGVycyB0aHJldyBl
eGNlcHRpb246IiArIGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFyIGNsaWVudCA9IG5ldyBYTUxI
dHRwUmVxdWVzdCgpOyAKKyAgICAgICAgICAgIGNsaWVudC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBo
YW5kbGVyOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjbGllbnQub3Blbigi
R0VUIiwgInJlc291cmNlcy94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLWRhdGEudHh0Iiwg
dHJ1ZSk7CisgICAgICAgICAgICAgICAgY2xpZW50LnNlbmQoKTsKKyAgICAgICAgICAgIH0gY2F0
Y2goZSkgeworICAgICAgICAgICAgICAgIHByaW50KCJGQUlMRUQ6IEV4Y2VwdGlvbiB0aHJvd246
IiArICBlKTsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
CisJIAkKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorICAgIDxwPlRoaXMgdGVzdCBjaGVja3MgdG8gc2VlIGlm
IHRoZSAiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIiBtZXRob2Qgb2YKK3htbEh0dHByZXF1ZXN0IHdv
cmtzIGluIHJlYWR5U3RhdGUgSEVBREVSU19SRUNFSVZFRC48L3A+CisgICAgPHA+SWYgdGhlIHRl
c3Qgc3VjY2VlZHMgb25lIHNob3VsZCBzZWUgYmVsb3cgdGhlIHJ1bGxlciB0aGUgdGV4dAorIlNV
Q0NFRURFRDogZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIHJldHVybmVkOiAiIGZvbGxvd2VkIGJ5IGEg
Y29uZm9ybWluZyBsaXN0IG9mCitoZWFkZXJzLjwvcD4KKyAgICA8cD5BIGNvbmZvcm1pbmcgbGlz
dCBvZiBoZWFkZXJzOjwvcD4KKyAgICAgICAgPGxpPiBjb250YWlucyBvbmUgaGVhZGVyIHBlciBs
aW5lLjwvbGk+CisgICAgICAgIDxsaT4gaGFzIGhlYWRlciBuYW1lcyBhbmQgaGVhZGVyIHZhbHVl
cyBzZXBhcmF0ZWQgYnkgYSBDT0xPTiBhbmQKK2EgU1BBQ0UuPC9saT4KKyAgICAgICAgPGxpPiBk
b2VzIG5vdCBjb250YWluIGFueSBoZWFkZXJzIHRoYXQgbWF0Y2ggKGNhc2UtaW5zZW5zaXRpdmVs
eSkgU2V0LUNvb2tpZSBvciBTZXQtQ29va2llMjwvbGk+CisgICAgPHA+SW4gdGhlIGF1dG9tYXRl
ZCB0ZXN0IGVudmlyb25tZW50IG5vIGhlYWRlciBsaXN0IGFwcGVhcnMgYmVjYXVzZSBpdAorICAg
ICAgICBtYXkgYmUgdmFyaWFibGUgZGVwZW5kaW5nIG9uIHRoZSBlbnZpcm9ubWVudCBhbmQgbWF5
IGNhdXNlIHRoZSB0ZXN0CisgICAgICAgIHRvIGZhaWwgd2hlbiBpdCBzaG91bGQgbm90LjwvcD4K
KyAgICA8aHI+CisgICAgPHA+PG9sIGlkPWNvbnNvbGU+PC9vbD48L3A+Cis8L2JvZHk+PC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVx
dWVzdC1nZXRoZWFkZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZ2V0aGVhZGVyLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QveG1saHR0cHJlcXVlc3QtZ2V0aGVhZGVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw4IEBACitUaGlzIHRlc3QgY2hlY2tzIHRvIHNlZSBpZiB0aGUgImdldFJlc3BvbnNl
SGVhZGVyIiBtZXRob2Qgb2YgeG1sSHR0cHJlcXVlc3Qgd29ya3MgaW4gcmVhZHlTdGF0ZSBIRUFE
RVJTX1JFQ0VJVkVELgorCitJZiB0aGUgdGVzdCBzdWNjZWVkcyBvbmUgc2hvdWxkIHNlZSBiZWxv
dyB0aGUgcnVsbGVyIHRoZSB0ZXh0ICJTVUNDRUVERUQ6IGdldFJlc3BvbnNlSGVhZGVyIHJldHVy
bmVkOiA8aGVhZGVyIHZhbHVlPiIKKworRm9yIHRoZSBhdXRvbWF0ZWQgdGVzdGluZyBlbnZpcm9u
bWVudCB0aGUgaGVhZGVyIHZhbHVlIGlzIG5vdCBkaXNwbGF5ZWQgYXMgaXQgbWF5IHZhcnkgZnJv
bSBvbmUgZW52aXJvbm1lbnQgdG8gYW5vdGhlciBhbmQgY2F1c2UgdGhlIHRlc3QgdG8gZmFpbCB3
aGVuIGl0IHNob3VsZCBub3QuCisKK1NVQ0NFRURFRDogZ2V0UmVzcG9uc2VIZWFkZXIgcmV0dXJu
ZWQgYSBoZWFkZXIgdmFsdWUuCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZ2V0aGVhZGVyLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRoZWFk
ZXIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QveG1saHR0cHJlcXVlc3QtZ2V0aGVhZGVyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNTUgQEAKKzxodG1sPjxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiPgorICAgIDx0aXRsZT5HZXRSZXNw
b25zZUhlYWRlcjwvdGl0bGU+CisgICAgPCEtLSBBc3NlcnRpb246IEludm9rZSBnZXRSZXNwb25z
ZUhlYWRlciBtZXRob2Qgd2hlbiByZWFkeVN0YXRlID0gMgorICAgIChIRUFERVJTX1JFQ0VJVkVE
KSBzaG91bGQgbm90IHRocm93IGFuIGV4Y2VwdGlvbiBhbmQgcmV0dXJuIGEgdmFsaWQKKyAgICB2
YWx1ZS4gLS0+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gcHJpbnQobWVzc2FnZSkg
eworICAgICAgICAgICAgdmFyIHBhcmFncmFwaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxp
Iik7CisgICAgICAgICAgICBwYXJhZ3JhcGguaW5uZXJIVE1MPW1lc3NhZ2U7CisgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHBhcmFncmFw
aCk7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gaGFuZGxlcigpIHsKKyAgICAgICAgICAg
IGlmICh0aGlzLnJlYWR5U3RhdGUgPT0gMikgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAg
ICAgICAgICAgICAgICAgIHZhciBzdHIgPSB0aGlzLmdldFJlc3BvbnNlSGVhZGVyKCJDYWNoZS1D
b250cm9sIik7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiU1VDQ0VFREVEOiBnZXRSZXNw
b25zZUhlYWRlciByZXR1cm5lZCBhIGhlYWRlciB2YWx1ZS4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoIlNVQ0NFRURFRDogZ2V0UmVz
cG9uc2VIZWFkZXIgcmV0dXJuZWQ6ICIgKyBzdHIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2go
ZSkgeworICAgICAgICAgICAgICAgICAgICBwcmludCgiRkFJTEVEOiBnZXRSZXNwb25zZUhlYWRl
ciB0aHJldyBleGNlcHRpb246IiArIGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFyIGNsaWVudCA9
IG5ldyBYTUxIdHRwUmVxdWVzdCgpOyAKKyAgICAgICAgICAgIGNsaWVudC5vbnJlYWR5c3RhdGVj
aGFuZ2UgPSBoYW5kbGVyOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjbGll
bnQub3BlbigiR0VUIiwgInJlc291cmNlcy94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXItZGF0YS50
eHQiLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBjbGllbnQuc2VuZCgpOworICAgICAgICAgICAg
fSBjYXRjaChlKSB7CisgICAgICAgICAgICAgICAgcHJpbnQoIkZBSUxFRDogRXhjZXB0aW9uIHRo
cm93bjoiICsgIGUpOworCSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OwkKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJ0ZXN0KCkiPgorICAgIDxwPlRoaXMgdGVzdCBjaGVja3MgdG8gc2VlIGlmIHRo
ZSAiZ2V0UmVzcG9uc2VIZWFkZXIiIG1ldGhvZCBvZgoreG1sSHR0cHJlcXVlc3Qgd29ya3MgaW4g
cmVhZHlTdGF0ZSBIRUFERVJTX1JFQ0VJVkVELjwvcD4KKyAgICA8cD5JZiB0aGUgdGVzdCBzdWNj
ZWVkcyBvbmUgc2hvdWxkIHNlZSBiZWxvdyB0aGUgcnVsbGVyIHRoZSB0ZXh0CisiU1VDQ0VFREVE
OiBnZXRSZXNwb25zZUhlYWRlciByZXR1cm5lZDogJmx0O2hlYWRlciB2YWx1ZSZndDsiPC9wPgor
ICAgIDxwPkZvciB0aGUgYXV0b21hdGVkIHRlc3RpbmcgZW52aXJvbm1lbnQgdGhlIGhlYWRlciB2
YWx1ZSBpcyBub3QKKyAgICBkaXNwbGF5ZWQgYXMgaXQgbWF5IHZhcnkgZnJvbSBvbmUgZW52aXJv
bm1lbnQgdG8gYW5vdGhlciBhbmQgY2F1c2UgdGhlCisgICAgdGVzdCB0byBmYWlsIHdoZW4gaXQg
c2hvdWxkIG5vdC48L3A+CisgICAgPGhyPgorICAgIDxwPjxvbCBpZD1jb25zb2xlPjwvb2w+PC9w
PgorPC9ib2R5PjwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvcmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LWdldGFsbGhlYWRlcnMtZGF0YS50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJj
ZXMveG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy1kYXRhLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3htbGh0dHBy
ZXF1ZXN0LWdldGFsbGhlYWRlcnMtZGF0YS50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAK
K1NVQ0NFU1MKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVz
b3VyY2VzL3htbGh0dHByZXF1ZXN0LWdldGhlYWRlci1kYXRhLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy94bWxodHRwcmVx
dWVzdC1nZXRoZWFkZXItZGF0YS50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXIt
ZGF0YS50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4w
Ij8+Cis8IURPQ1RZUEUgZG9jIFsKKzwhQVRUTElTVCBkIGlkIElEICNJTVBMSUVEPgorXT4KKzxk
b2M+CisgIDxmb28geG1sbnM9ImZvb2JhciI+T25lPC9mb28+IDx4OmJhciB4bWxuczp4PSJiYXJm
b28iPlR3bzwveDpiYXI+CisgIDxkIGlkPSJpZDMiPlRocmVlPC9kPgorPC9kb2M+CgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39547</attachid>
            <date>2009-09-14 09:18:21 -0700</date>
            <delta_ts>2009-09-14 12:37:00 -0700</delta_ts>
            <desc>Improved text in the tests per ap&apos;s comments.</desc>
            <filename>patchFor29121-5.txt</filename>
            <type>text/plain</type>
            <size>11989</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODI2MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDktMDktMTAgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEluY29ycmVjdCBiZWhhdmlvciBvZiBYTUxIdHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWFk
ZXJzIGFuZAorICAgICAgICBYTUxIdHRwUmVxdWVzdDo6Z2V0UmVzcG9uc2VIZWFkZXIgaW4gdGhl
CisgICAgICAgIEhFQURFUlNfUkVDRUlWRUQgcmVhZHlTdGF0ZS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MTIxCisKKyAgICAgICAgVGVzdDogZmFz
dC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLmh0bWwKKyAgICAg
ICAgVGVzdDogZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXIuaHRt
bAorCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyKToKKyAgICAgICAgQ2hhbmdlZCB0
aGUgbWluaW11bSB2YWxpZCBzdGF0ZSBmcm9tIExPQURJTkcgdG8gSEVBREVSU19SRUNFSVZFRC4K
KwogMjAwOS0wOS0xMCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNv
bGxhYm9yYS5jby51az4KIAogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXogYW5kIERhbiBX
aW5zaGlwLgpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAkocmV2aXNpb24gNDgyNjEpCisrKyBX
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxOSw3ICs3
MTksNyBAQCBTdHJpbmcgWE1MSHR0cFJlcXVlc3Q6OmdldFJlcXVlc3RIZWFkZXIoCiAKIFN0cmlu
ZyBYTUxIdHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWFkZXJzKEV4Y2VwdGlvbkNvZGUmIGVj
KSBjb25zdAogewotICAgIGlmIChtX3N0YXRlIDwgTE9BRElORykgeworICAgIGlmIChtX3N0YXRl
IDwgSEVBREVSU19SRUNFSVZFRCkgewogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwog
ICAgICAgICByZXR1cm4gIiI7CiAgICAgfQpAQCAtNzUzLDcgKzc1Myw3IEBAIFN0cmluZyBYTUxI
dHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWEKIAogU3RyaW5nIFhNTEh0dHBSZXF1ZXN0Ojpn
ZXRSZXNwb25zZUhlYWRlcihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUm
IGVjKSBjb25zdAogewotICAgIGlmIChtX3N0YXRlIDwgTE9BRElORykgeworICAgIGlmIChtX3N0
YXRlIDwgSEVBREVSU19SRUNFSVZFRCkgewogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJS
OwogICAgICAgICByZXR1cm4gIiI7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDgyNjEpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAor
MjAwOS0wOS0xMCAgQ2Fyb2wgU3phYm8gIDxjYXJvbC5zemFib0Bub2tpYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5jb3JyZWN0IGJlaGF2
aW9yIG9mIFhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMgYW5kIFhNTEh0dHBS
ZXF1ZXN0OjpnZXRSZXNwb25zZUhlYWRlciBpbiB0aGUKKyAgICAgICAgSEVBREVSU19SRUNFSVZF
RCByZWFkeVN0YXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjkxMjEKKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3Vy
Y2VzL3htbGh0dHByZXF1ZXN0LWdldGFsbGhlYWRlcnMtZGF0YS50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVy
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QveG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1nZXRoZWFk
ZXItZGF0YS50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
eG1saHR0cHJlcXVlc3QtZ2V0aGVhZGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXIuaHRtbDog
QWRkZWQuCisgICAgICAgIDIgbmV3IHRlc3RzIHRvIGV4cG9zZSB0aGUgZXJyb3IgYW5kIHZlcmlm
eSB0aGUgZml4LgorCiAyMDA5LTA5LTEwICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IExheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVl
c3QtZ2V0YWxsaGVhZGVycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMg
QEAKK1RoaXMgdGVzdCBjaGVja3MgdG8gc2VlIGlmIHRoZSAiZ2V0QWxsUmVzcG9uc2VIZWFkZXJz
IiBtZXRob2Qgb2YgeG1sSHR0cHJlcXVlc3Qgd29ya3MgaW4gcmVhZHlTdGF0ZSBIRUFERVJTX1JF
Q0VJVkVELgorCitJZiB0aGUgdGVzdCBzdWNjZWVkcyBvbmUgc2hvdWxkIHNlZSBiZWxvdyB0aGUg
cnVsbGVyIHRoZSB0ZXh0ICJTVUNDRUVERUQ6IGdldEFsbFJlc3BvbnNlSGVhZGVycyByZXR1cm5l
ZDogIiBmb2xsb3dlZCBieSBhIGNvbmZvcm1pbmcgbGlzdCBvZiBoZWFkZXJzLgorCitBIGNvbmZv
cm1pbmcgbGlzdCBvZiBoZWFkZXJzOgorCisgY29udGFpbnMgb25lIGhlYWRlciBwZXIgbGluZS4K
KyBoYXMgaGVhZGVyIG5hbWVzIGFuZCBoZWFkZXIgdmFsdWVzIHNlcGFyYXRlZCBieSBhIENPTE9O
IGFuZCBhIFNQQUNFLgorIGRvZXMgbm90IGNvbnRhaW4gYW55IGhlYWRlcnMgdGhhdCBtYXRjaCAo
Y2FzZS1pbnNlbnNpdGl2ZWx5KSBTZXQtQ29va2llIG9yIFNldC1Db29raWUyCitJbiB0aGUgYXV0
b21hdGVkIHRlc3QgZW52aXJvbm1lbnQgbm8gaGVhZGVyIGxpc3QgYXBwZWFycyBiZWNhdXNlIGl0
IG1heSBiZSB2YXJpYWJsZSBkZXBlbmRpbmcgb24gdGhlIGVudmlyb25tZW50IGFuZCBtYXkgY2F1
c2UgdGhlIHRlc3QgdG8gZmFpbCB3aGVuIGl0IHNob3VsZCBub3QuCisKK1NVQ0NFRURFRDogZ2V0
QWxsUmVzcG9uc2VIZWFkZXJzIHJldHVybmVkIHdoYXQgbG9va3MgbGlrZSBhIGNvbmZvcm1pbmcg
aGVhZGVybGlzdC4KKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFk
ZXJzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWdldGFsbGhlYWRlcnMuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw2OCBAQAorPGh0bWw+PGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVu
dC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCI+CisgICAgPHRpdGxlPkdl
dEFsbFJlc3BvbnNlSGVhZGVyczwvdGl0bGU+CisgICAgPCEtLSBBc3NlcnRpb246IEludm9raW5n
IGdldEFsbFJlc3BvbnNlSGVhZGVycyBtZXRob2Qgd2hlbiByZWFkeVN0YXRlID0gMgorICAgIChI
RUFERVJTX1JFQ0VJVkVEKSBzaG91bGQgcmV0dXJuIGEgY29uZm9ybWluZyBsaXN0IG9mIGhlYWRl
cnMuIC0tPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIHByaW50KG1lc3NhZ2UpIHsK
KyAgICAgICAgICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIp
OworICAgICAgICAgICAgcGFyYWdyYXBoLmlubmVySFRNTD1tZXNzYWdlOworICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgp
OworICAgICAgICB9CisgICAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoKSB7CisgICAgICAgICAgICBp
ZiAoKHRoaXMucmVhZHlTdGF0ZSA9PSAyKSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAg
ICAgICAgICAgICAgICAgIHZhciBzdHIgPSB0aGlzLmdldEFsbFJlc3BvbnNlSGVhZGVycygpOwor
ICAgICAgICAgICAgICAgICAgICBpZiAoL15TZXQtQ29va2llOnxeU2V0LUNvb2tpZTI6L2ltLnRl
c3Qoc3RyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCJGQUlMRUQ6IC9eU2V0LUNv
b2tpZTp8XlNldC1Db29raWUyOi8gbWF0Y2hlcy4gZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIHJldHVy
bmVkOjxicj4iICsgc3RyLnJlcGxhY2UoL1xyXG4vZ2ltLCI8YnI+IikpOworICAgICAgICAgICAg
ICAgICAgICBlbHNlIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAg
ICAgICAgICAgICAgICBwcmludCgiU1VDQ0VFREVEOiBnZXRBbGxSZXNwb25zZUhlYWRlcnMgcmV0
dXJuZWQgd2hhdCBsb29rcyBsaWtlIGEgY29uZm9ybWluZyBoZWFkZXJsaXN0LiIpOworICAgICAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiU1VDQ0VF
REVEOiBnZXRBbGxSZXNwb25zZUhlYWRlcnMgcmV0dXJuZWQ6PGJyPiIgKyBzdHIucmVwbGFjZSgv
XHJcbi9naW0sIjxicj4iKSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAg
ICAgICAgICAgICAgIHByaW50KCJGQUlMRUQ6IGdldEFsbFJlc3BvbnNlSGVhZGVycyB0aHJldyBl
eGNlcHRpb246IiArIGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFyIGNsaWVudCA9IG5ldyBYTUxI
dHRwUmVxdWVzdCgpOyAKKyAgICAgICAgICAgIGNsaWVudC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBo
YW5kbGVyOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjbGllbnQub3Blbigi
R0VUIiwgInJlc291cmNlcy94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLWRhdGEudHh0Iiwg
dHJ1ZSk7CisgICAgICAgICAgICAgICAgY2xpZW50LnNlbmQoKTsKKyAgICAgICAgICAgIH0gY2F0
Y2goZSkgeworICAgICAgICAgICAgICAgIHByaW50KCJGQUlMRUQ6IEV4Y2VwdGlvbiB0aHJvd246
IiArICBlKTsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
CisJIAkKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorICAgIDxwPlRoaXMgdGVzdCBjaGVja3MgdG8gc2VlIGlm
IHRoZSAiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIiBtZXRob2Qgb2YKK3htbEh0dHByZXF1ZXN0IHdv
cmtzIGluIHJlYWR5U3RhdGUgSEVBREVSU19SRUNFSVZFRC48L3A+CisgICAgPHNjcmlwdD4KKyAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGRvY3Vt
ZW50LndyaXRlKCI8cD5JZiB0aGUgdGVzdCBzdWNjZWVkcyBvbmUgc2hvdWxkIHNlZSBiZWxvdyBc
Cit0aGUgdGV4dCBcIlNVQ0NFRURFRDogZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIHJldHVybmVkIHdo
YXQgbG9va3MgbGlrZSBhIGNvbmZvcm1pbmcgaGVhZGVybGlzdC5cIjwvcD4iKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgZG9jdW1lbnQud3JpdGUoIjxwPklmIHRoZSB0ZXN0IHN1Y2NlZWRz
IG9uZSBzaG91bGQgc2VlIFwKK2JlbG93IHRoZSBydWxsZXIgdGhlIHRleHQgXCJTVUNDRUVERUQ6
IGdldEFsbFJlc3BvbnNlSGVhZGVycyByZXR1cm5lZDogXCIgXAorZm9sbG93ZWQgYnkgYSBjb25m
b3JtaW5nIGxpc3Qgb2YgaGVhZGVycy48L3A+IFwKKyAgICA8cD5BIGNvbmZvcm1pbmcgbGlzdCBv
ZiBoZWFkZXJzOjwvcD4gXAorICAgICAgICA8bGk+IGNvbnRhaW5zIG9uZSBoZWFkZXIgcGVyIGxp
bmUuPC9saT4gXAorICAgICAgICA8bGk+IGhhcyBoZWFkZXIgbmFtZXMgYW5kIGhlYWRlciB2YWx1
ZXMgc2VwYXJhdGVkIGJ5IGEgQ09MT04gYW5kIFwKK2EgU1BBQ0UuPC9saT5cCisgICAgICAgIDxs
aT4gZG9lcyBub3QgY29udGFpbiBhbnkgaGVhZGVycyB0aGF0IG1hdGNoIChjYXNlLWluc2Vuc2l0
aXZlbHkpIFwKK1NldC1Db29raWUgb3IgU2V0LUNvb2tpZTI8L2xpPiIpOworICAgIDwvc2NyaXB0
PgorICAgIDxocj4KKyAgICA8cD48b2wgaWQ9Y29uc29sZT48L29sPjwvcD4KKzwvYm9keT48L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHBy
ZXF1ZXN0LWdldGhlYWRlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXItZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDggQEAKK1RoaXMgdGVzdCBjaGVja3MgdG8gc2VlIGlmIHRoZSAiZ2V0UmVzcG9u
c2VIZWFkZXIiIG1ldGhvZCBvZiB4bWxIdHRwcmVxdWVzdCB3b3JrcyBpbiByZWFkeVN0YXRlIEhF
QURFUlNfUkVDRUlWRUQuCisKK0lmIHRoZSB0ZXN0IHN1Y2NlZWRzIG9uZSBzaG91bGQgc2VlIGJl
bG93IHRoZSBydWxsZXIgdGhlIHRleHQgIlNVQ0NFRURFRDogZ2V0UmVzcG9uc2VIZWFkZXIgcmV0
dXJuZWQ6IDxoZWFkZXIgdmFsdWU+IgorCitGb3IgdGhlIGF1dG9tYXRlZCB0ZXN0aW5nIGVudmly
b25tZW50IHRoZSBoZWFkZXIgdmFsdWUgaXMgbm90IGRpc3BsYXllZCBhcyBpdCBtYXkgdmFyeSBm
cm9tIG9uZSBlbnZpcm9ubWVudCB0byBhbm90aGVyIGFuZCBjYXVzZSB0aGUgdGVzdCB0byBmYWls
IHdoZW4gaXQgc2hvdWxkIG5vdC4KKworU1VDQ0VFREVEOiBnZXRSZXNwb25zZUhlYWRlciByZXR1
cm5lZCBhIGhlYWRlciB2YWx1ZS4KKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXIuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWdldGhl
YWRlci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw1OCBAQAorPGh0bWw+PGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1U
eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCI+CisgICAgPHRpdGxlPkdldFJl
c3BvbnNlSGVhZGVyPC90aXRsZT4KKyAgICA8IS0tIEFzc2VydGlvbjogSW52b2tlIGdldFJlc3Bv
bnNlSGVhZGVyIG1ldGhvZCB3aGVuIHJlYWR5U3RhdGUgPSAyCisgICAgKEhFQURFUlNfUkVDRUlW
RUQpIHNob3VsZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uIGFuZCByZXR1cm4gYSB2YWxpZAorICAg
IHZhbHVlLiAtLT4KKyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiBwcmludChtZXNzYWdl
KSB7CisgICAgICAgICAgICB2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
bGkiKTsKKyAgICAgICAgICAgIHBhcmFncmFwaC5pbm5lckhUTUw9bWVzc2FnZTsKKyAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQocGFyYWdy
YXBoKTsKKyAgICAgICAgfQorICAgICAgICBmdW5jdGlvbiBoYW5kbGVyKCkgeworICAgICAgICAg
ICAgaWYgKHRoaXMucmVhZHlTdGF0ZSA9PSAyKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICAgICAgICAgICAgdmFyIHN0ciA9IHRoaXMuZ2V0UmVzcG9uc2VIZWFkZXIoIkNhY2hl
LUNvbnRyb2wiKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCJTVUNDRUVERUQ6IGdldFJl
c3BvbnNlSGVhZGVyIHJldHVybmVkIGEgaGVhZGVyIHZhbHVlLiIpOworICAgICAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiU1VDQ0VFREVEOiBnZXRS
ZXNwb25zZUhlYWRlciByZXR1cm5lZDogIiArIHN0cik7CisgICAgICAgICAgICAgICAgfSBjYXRj
aChlKSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50KCJGQUlMRUQ6IGdldFJlc3BvbnNlSGVh
ZGVyIHRocmV3IGV4Y2VwdGlvbjoiICsgZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YXIgY2xpZW50
ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7IAorICAgICAgICAgICAgY2xpZW50Lm9ucmVhZHlzdGF0
ZWNoYW5nZSA9IGhhbmRsZXI7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNs
aWVudC5vcGVuKCJHRVQiLCAicmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LWdldGhlYWRlci1kYXRh
LnR4dCIsIHRydWUpOworICAgICAgICAgICAgICAgIGNsaWVudC5zZW5kKCk7CisgICAgICAgICAg
ICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAgICBwcmludCgiRkFJTEVEOiBFeGNlcHRpb24g
dGhyb3duOiIgKyAgZSk7CisJICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InRlc3QoKSI+CisgICAgPHA+VGhpcyB0ZXN0IGNoZWNrcyB0byBzZWUgaWYg
dGhlICJnZXRSZXNwb25zZUhlYWRlciIgbWV0aG9kIG9mCit4bWxIdHRwcmVxdWVzdCB3b3JrcyBp
biByZWFkeVN0YXRlIEhFQURFUlNfUkVDRUlWRUQuPC9wPgorICAgIDxzY3JpcHQ+CisgICAgICAg
IGlmIChkb2N1bWVudC5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGRvY3VtZW50
LndyaXRlKCI8cD5JZiB0aGUgdGVzdCBzdWNjZWVkcyBvbmUgc2hvdWxkIHNlZSBiZWxvdyBcCit0
aGUgdGV4dCBcIlNVQ0NFRURFRDogZ2V0UmVzcG9uc2VIZWFkZXIgcmV0dXJuZWQgYSBoZWFkZXIg
dmFsdWUuXCI8L3A+Iik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRvY3VtZW50LndyaXRl
KCI8cD5JZiB0aGUgdGVzdCBzdWNjZWVkcyBvbmUgc2hvdWxkIHNlZSBcCitiZWxvdyB0aGUgcnVs
bGVyIHRoZSB0ZXh0IFwiU1VDQ0VFREVEOiBnZXRSZXNwb25zZUhlYWRlciByZXR1cm5lZDogJmx0
O2hlYWRlciB2YWx1ZSZndDtcIjwvcD4iKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8aHI+CisgICAg
PHA+PG9sIGlkPWNvbnNvbGU+PC9vbD48L3A+Cis8L2JvZHk+PC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMveG1saHR0cHJlcXVlc3Qt
Z2V0YWxsaGVhZGVycy1kYXRhLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJz
LWRhdGEudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9yZXNvdXJjZXMveG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy1kYXRhLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorU1VDQ0VTUwpJbmRleDogTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMveG1saHR0cHJlcXVlc3QtZ2V0aGVhZGVy
LWRhdGEudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvcmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LWdldGhlYWRlci1kYXRhLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2Vz
L3htbGh0dHByZXF1ZXN0LWdldGhlYWRlci1kYXRhLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBkb2MgWworPCFBVFRMSVNU
IGQgaWQgSUQgI0lNUExJRUQ+CitdPgorPGRvYz4KKyAgPGZvbyB4bWxucz0iZm9vYmFyIj5PbmU8
L2Zvbz4gPHg6YmFyIHhtbG5zOng9ImJhcmZvbyI+VHdvPC94OmJhcj4KKyAgPGQgaWQ9ImlkMyI+
VGhyZWU8L2Q+Cis8L2RvYz4KCg==
</data>
<flag name="review"
          id="20648"
          type_id="1"
          status="+"
          setter="ap"
    />
    <flag name="commit-queue"
          id="20658"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39564</attachid>
            <date>2009-09-14 12:37:00 -0700</date>
            <delta_ts>2009-09-15 16:19:01 -0700</delta_ts>
            <desc>Fixed a few minor issues with the tests and some regretable mistakes in the test results.</desc>
            <filename>patchFor29121-6.txt</filename>
            <type>text/plain</type>
            <size>11459</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODI2MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDktMDktMTAgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEluY29ycmVjdCBiZWhhdmlvciBvZiBYTUxIdHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWFk
ZXJzIGFuZAorICAgICAgICBYTUxIdHRwUmVxdWVzdDo6Z2V0UmVzcG9uc2VIZWFkZXIgaW4gdGhl
CisgICAgICAgIEhFQURFUlNfUkVDRUlWRUQgcmVhZHlTdGF0ZS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MTIxCisKKyAgICAgICAgVGVzdDogZmFz
dC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLmh0bWwKKyAgICAg
ICAgVGVzdDogZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXIuaHRt
bAorCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyKToKKyAgICAgICAgQ2hhbmdlZCB0
aGUgbWluaW11bSB2YWxpZCBzdGF0ZSBmcm9tIExPQURJTkcgdG8gSEVBREVSU19SRUNFSVZFRC4K
KwogMjAwOS0wOS0xMCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNv
bGxhYm9yYS5jby51az4KIAogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXogYW5kIERhbiBX
aW5zaGlwLgpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAkocmV2aXNpb24gNDgyNjEpCisrKyBX
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxOSw3ICs3
MTksNyBAQCBTdHJpbmcgWE1MSHR0cFJlcXVlc3Q6OmdldFJlcXVlc3RIZWFkZXIoCiAKIFN0cmlu
ZyBYTUxIdHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWFkZXJzKEV4Y2VwdGlvbkNvZGUmIGVj
KSBjb25zdAogewotICAgIGlmIChtX3N0YXRlIDwgTE9BRElORykgeworICAgIGlmIChtX3N0YXRl
IDwgSEVBREVSU19SRUNFSVZFRCkgewogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwog
ICAgICAgICByZXR1cm4gIiI7CiAgICAgfQpAQCAtNzUzLDcgKzc1Myw3IEBAIFN0cmluZyBYTUxI
dHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWEKIAogU3RyaW5nIFhNTEh0dHBSZXF1ZXN0Ojpn
ZXRSZXNwb25zZUhlYWRlcihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUm
IGVjKSBjb25zdAogewotICAgIGlmIChtX3N0YXRlIDwgTE9BRElORykgeworICAgIGlmIChtX3N0
YXRlIDwgSEVBREVSU19SRUNFSVZFRCkgewogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJS
OwogICAgICAgICByZXR1cm4gIiI7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDgyNjEpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAor
MjAwOS0wOS0xMCAgQ2Fyb2wgU3phYm8gIDxjYXJvbC5zemFib0Bub2tpYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5jb3JyZWN0IGJlaGF2
aW9yIG9mIFhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMgYW5kIFhNTEh0dHBS
ZXF1ZXN0OjpnZXRSZXNwb25zZUhlYWRlciBpbiB0aGUKKyAgICAgICAgSEVBREVSU19SRUNFSVZF
RCByZWFkeVN0YXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjkxMjEKKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3Vy
Y2VzL3htbGh0dHByZXF1ZXN0LWdldGFsbGhlYWRlcnMtZGF0YS50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVy
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QveG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1nZXRoZWFk
ZXItZGF0YS50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
eG1saHR0cHJlcXVlc3QtZ2V0aGVhZGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXIuaHRtbDog
QWRkZWQuCisgICAgICAgIDIgbmV3IHRlc3RzIHRvIGV4cG9zZSB0aGUgZXJyb3IgYW5kIHZlcmlm
eSB0aGUgZml4LgorCiAyMDA5LTA5LTEwICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IExheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVl
c3QtZ2V0YWxsaGVhZGVycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNiBA
QAorVGhpcyB0ZXN0IGNoZWNrcyB0byBzZWUgaWYgdGhlICJnZXRBbGxSZXNwb25zZUhlYWRlcnMi
IG1ldGhvZCBvZiB4bWxIdHRwcmVxdWVzdCB3b3JrcyBpbiByZWFkeVN0YXRlIEhFQURFUlNfUkVD
RUlWRUQuCisKK0lmIHRoZSB0ZXN0IHN1Y2NlZWRzIG9uZSBzaG91bGQgc2VlIGJlbG93IHRoZSB0
ZXh0ICJTVUNDRUVERUQ6IGdldEFsbFJlc3BvbnNlSGVhZGVycyByZXR1cm5lZCB3aGF0IGxvb2tz
IGxpa2UgYSBjb25mb3JtaW5nIGhlYWRlcmxpc3QuIgorCitTVUNDRUVERUQ6IGdldEFsbFJlc3Bv
bnNlSGVhZGVycyByZXR1cm5lZCB3aGF0IGxvb2tzIGxpa2UgYSBjb25mb3JtaW5nIGhlYWRlcmxp
c3QuCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0
cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94
bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NjggQEAKKzxodG1sPjxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiPgorICAgIDx0aXRsZT5HZXRBbGxSZXNw
b25zZUhlYWRlcnM8L3RpdGxlPgorICAgIDwhLS0gQXNzZXJ0aW9uOiBJbnZva2luZyBnZXRBbGxS
ZXNwb25zZUhlYWRlcnMgbWV0aG9kIHdoZW4gcmVhZHlTdGF0ZSA9IDIKKyAgICAoSEVBREVSU19S
RUNFSVZFRCkgc2hvdWxkIHJldHVybiBhIGNvbmZvcm1pbmcgbGlzdCBvZiBoZWFkZXJzLiAtLT4K
KyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiBwcmludChtZXNzYWdlKSB7CisgICAgICAg
ICAgICB2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICAg
ICAgICAgIHBhcmFncmFwaC5pbm5lckhUTUw9bWVzc2FnZTsKKyAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQocGFyYWdyYXBoKTsKKyAgICAg
ICAgfQorICAgICAgICBmdW5jdGlvbiBoYW5kbGVyKCkgeworICAgICAgICAgICAgaWYgKCh0aGlz
LnJlYWR5U3RhdGUgPT0gMikpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAg
ICAgICAgICB2YXIgc3RyID0gdGhpcy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKC9eU2V0LUNvb2tpZTp8XlNldC1Db29raWUyOi9pbS50ZXN0KHN0cikp
CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiRkFJTEVEOiAvXlNldC1Db29raWU6fF5T
ZXQtQ29va2llMjovIG1hdGNoZXMuIGdldEFsbFJlc3BvbnNlSGVhZGVycyByZXR1cm5lZDo8YnI+
IiArIHN0ci5yZXBsYWNlKC9cclxuL2dpbSwiPGJyPiIpKTsKKyAgICAgICAgICAgICAgICAgICAg
ZWxzZSBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgICAg
ICAgICAgcHJpbnQoIlNVQ0NFRURFRDogZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIHJldHVybmVkIHdo
YXQgbG9va3MgbGlrZSBhIGNvbmZvcm1pbmcgaGVhZGVybGlzdC4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoIlNVQ0NFRURFRDogZ2V0
QWxsUmVzcG9uc2VIZWFkZXJzIHJldHVybmVkOjxicj4iICsgc3RyLnJlcGxhY2UoL1xyXG4vZ2lt
LCI8YnI+IikpOworICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICAg
ICAgICBwcmludCgiRkFJTEVEOiBnZXRBbGxSZXNwb25zZUhlYWRlcnMgdGhyZXcgZXhjZXB0aW9u
OiIgKyBlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZ1
bmN0aW9uIHRlc3QoKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhciBjbGllbnQgPSBuZXcgWE1MSHR0cFJlcXVl
c3QoKTsgCisgICAgICAgICAgICBjbGllbnQub25yZWFkeXN0YXRlY2hhbmdlID0gaGFuZGxlcjsK
KyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY2xpZW50Lm9wZW4oIkdFVCIsICJy
ZXNvdXJjZXMveG1saHR0cHJlcXVlc3QtZ2V0YWxsaGVhZGVycy1kYXRhLnR4dCIsIHRydWUpOwor
ICAgICAgICAgICAgICAgIGNsaWVudC5zZW5kKG51bGwpOworICAgICAgICAgICAgfSBjYXRjaChl
KSB7CisgICAgICAgICAgICAgICAgcHJpbnQoIkZBSUxFRDogRXhjZXB0aW9uIHRocm93bjoiICsg
IGUpOworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKwkg
CQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InRlc3QoKSI+CisgICAgPHA+VGhpcyB0ZXN0IGNoZWNrcyB0byBzZWUgaWYgdGhl
ICJnZXRBbGxSZXNwb25zZUhlYWRlcnMiIG1ldGhvZCBvZgoreG1sSHR0cHJlcXVlc3Qgd29ya3Mg
aW4gcmVhZHlTdGF0ZSBIRUFERVJTX1JFQ0VJVkVELjwvcD4KKyAgICA8c2NyaXB0PgorICAgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgZG9jdW1lbnQu
d3JpdGUoIjxwPklmIHRoZSB0ZXN0IHN1Y2NlZWRzIG9uZSBzaG91bGQgc2VlIGJlbG93IFwKK3Ro
ZSB0ZXh0IFwiU1VDQ0VFREVEOiBnZXRBbGxSZXNwb25zZUhlYWRlcnMgcmV0dXJuZWQgd2hhdCBs
b29rcyBsaWtlIGEgY29uZm9ybWluZyBoZWFkZXJsaXN0LlwiPC9wPiIpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgiPHA+SWYgdGhlIHRlc3Qgc3VjY2VlZHMgb25l
IHNob3VsZCBzZWUgXAorYmVsb3cgdGhlIHJ1bGVyIHRoZSB0ZXh0IFwiU1VDQ0VFREVEOiBnZXRB
bGxSZXNwb25zZUhlYWRlcnMgcmV0dXJuZWQ6IFwiIFwKK2ZvbGxvd2VkIGJ5IGEgY29uZm9ybWlu
ZyBsaXN0IG9mIGhlYWRlcnMuPC9wPiBcCisgICAgPHA+QSBjb25mb3JtaW5nIGxpc3Qgb2YgaGVh
ZGVyczo8L3A+IFwKKyAgICAgICAgPGxpPiBjb250YWlucyBvbmUgaGVhZGVyIHBlciBsaW5lLjwv
bGk+IFwKKyAgICAgICAgPGxpPiBoYXMgaGVhZGVyIG5hbWVzIGFuZCBoZWFkZXIgdmFsdWVzIHNl
cGFyYXRlZCBieSBhIENPTE9OIGFuZCBcCithIFNQQUNFLjwvbGk+XAorICAgICAgICA8bGk+IGRv
ZXMgbm90IGNvbnRhaW4gYW55IGhlYWRlcnMgdGhhdCBtYXRjaCAoY2FzZS1pbnNlbnNpdGl2ZWx5
KSBcCitTZXQtQ29va2llIG9yIFNldC1Db29raWUyPC9saT4iKTsKKyAgICA8L3NjcmlwdD4KKyAg
ICA8aHI+CisgICAgPHA+PG9sIGlkPWNvbnNvbGU+PC9vbD48L3A+Cis8L2JvZHk+PC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVz
dC1nZXRoZWFkZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZ2V0aGVhZGVyLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
eG1saHR0cHJlcXVlc3QtZ2V0aGVhZGVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw2IEBACitUaGlzIHRlc3QgY2hlY2tzIHRvIHNlZSBpZiB0aGUgImdldFJlc3BvbnNlSGVh
ZGVyIiBtZXRob2Qgb2YgeG1sSHR0cHJlcXVlc3Qgd29ya3MgaW4gcmVhZHlTdGF0ZSBIRUFERVJT
X1JFQ0VJVkVELgorCitJZiB0aGUgdGVzdCBzdWNjZWVkcyBvbmUgc2hvdWxkIHNlZSBiZWxvdyB0
aGUgdGV4dCAiU1VDQ0VFREVEOiBnZXRSZXNwb25zZUhlYWRlciByZXR1cm5lZCBhIGhlYWRlciB2
YWx1ZS4iCisKK1NVQ0NFRURFRDogZ2V0UmVzcG9uc2VIZWFkZXIgcmV0dXJuZWQgYSBoZWFkZXIg
dmFsdWUuCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1s
aHR0cHJlcXVlc3QtZ2V0aGVhZGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXIuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0
cHJlcXVlc3QtZ2V0aGVhZGVyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTkgQEAKKzxo
dG1sPjxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiPgorICAgIDx0aXRsZT5HZXRSZXNwb25zZUhlYWRlcjwv
dGl0bGU+CisgICAgPCEtLSBBc3NlcnRpb246IEludm9rZSBnZXRSZXNwb25zZUhlYWRlciBtZXRo
b2Qgd2hlbiByZWFkeVN0YXRlID0gMgorICAgIChIRUFERVJTX1JFQ0VJVkVEKSBzaG91bGQgbm90
IHRocm93IGFuIGV4Y2VwdGlvbiBhbmQgcmV0dXJuIGEgdmFsaWQKKyAgICB2YWx1ZS4gLS0+Cisg
ICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gcHJpbnQobWVzc2FnZSkgeworICAgICAgICAg
ICAgdmFyIHBhcmFncmFwaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgICAg
ICAgICBwYXJhZ3JhcGguaW5uZXJIVE1MPW1lc3NhZ2U7CisgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHBhcmFncmFwaCk7CisgICAgICAg
IH0KKyAgICAgICAgZnVuY3Rpb24gaGFuZGxlcigpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLnJl
YWR5U3RhdGUgPT0gMikgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAg
ICAgIHZhciBzdHIgPSB0aGlzLmdldFJlc3BvbnNlSGVhZGVyKCJDYWNoZS1Db250cm9sIik7Cisg
ICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICAgICAgICAgICAgICAgICAgICBwcmludCgiU1VDQ0VFREVEOiBnZXRSZXNwb25zZUhlYWRlciBy
ZXR1cm5lZCBhIGhlYWRlciB2YWx1ZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICAgICAgcHJpbnQoIlNVQ0NFRURFRDogZ2V0UmVzcG9uc2VIZWFkZXIg
cmV0dXJuZWQ6ICIgKyBzdHIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAg
ICAgICAgICAgICAgICBwcmludCgiRkFJTEVEOiBnZXRSZXNwb25zZUhlYWRlciB0aHJldyBleGNl
cHRpb246IiArIGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg
ICAgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFyIGNsaWVudCA9IG5ldyBYTUxIdHRw
UmVxdWVzdCgpOyAKKyAgICAgICAgICAgIGNsaWVudC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBoYW5k
bGVyOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjbGllbnQub3BlbigiR0VU
IiwgInJlc291cmNlcy94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXItZGF0YS50eHQiLCB0cnVlKTsK
KyAgICAgICAgICAgICAgICBjbGllbnQuc2VuZChudWxsKTsKKyAgICAgICAgICAgIH0gY2F0Y2go
ZSkgeworICAgICAgICAgICAgICAgIHByaW50KCJGQUlMRUQ6IEV4Y2VwdGlvbiB0aHJvd246IiAr
ICBlKTsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
CSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsJCisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
dGVzdCgpIj4KKyAgICA8cD5UaGlzIHRlc3QgY2hlY2tzIHRvIHNlZSBpZiB0aGUgImdldFJlc3Bv
bnNlSGVhZGVyIiBtZXRob2Qgb2YKK3htbEh0dHByZXF1ZXN0IHdvcmtzIGluIHJlYWR5U3RhdGUg
SEVBREVSU19SRUNFSVZFRC48L3A+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKCI8cD5JZiB0
aGUgdGVzdCBzdWNjZWVkcyBvbmUgc2hvdWxkIHNlZSBiZWxvdyBcCit0aGUgdGV4dCBcIlNVQ0NF
RURFRDogZ2V0UmVzcG9uc2VIZWFkZXIgcmV0dXJuZWQgYSBoZWFkZXIgdmFsdWUuXCI8L3A+Iik7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKCI8cD5JZiB0aGUgdGVz
dCBzdWNjZWVkcyBvbmUgc2hvdWxkIHNlZSBcCitiZWxvdyB0aGUgcnVsZXIgdGhlIHRleHQgXCJT
VUNDRUVERUQ6IGdldFJlc3BvbnNlSGVhZGVyIHJldHVybmVkOiAmbHQ7aGVhZGVyIHZhbHVlJmd0
O1wiPC9wPiIpOworICAgIDwvc2NyaXB0PgorICAgIDxocj4KKyAgICA8cD48b2wgaWQ9Y29uc29s
ZT48L29sPjwvcD4KKzwvYm9keT48L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLWRh
dGEudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvcmVzb3VyY2VzL3htbGh0dHByZXF1ZXN0LWdldGFsbGhlYWRlcnMtZGF0YS50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNl
cy94bWxodHRwcmVxdWVzdC1nZXRhbGxoZWFkZXJzLWRhdGEudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxIEBACitTVUNDRVNTCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3Jlc291cmNlcy94bWxodHRwcmVxdWVzdC1nZXRoZWFkZXItZGF0YS50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMv
eG1saHR0cHJlcXVlc3QtZ2V0aGVhZGVyLWRhdGEudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMveG1saHR0cHJlcXVlc3Qt
Z2V0aGVhZGVyLWRhdGEudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZl
cnNpb249IjEuMCI/PgorPCFET0NUWVBFIGRvYyBbCis8IUFUVExJU1QgZCBpZCBJRCAjSU1QTElF
RD4KK10+Cis8ZG9jPgorICA8Zm9vIHhtbG5zPSJmb29iYXIiPk9uZTwvZm9vPiA8eDpiYXIgeG1s
bnM6eD0iYmFyZm9vIj5Ud288L3g6YmFyPgorICA8ZCBpZD0iaWQzIj5UaHJlZTwvZD4KKzwvZG9j
Pgo=
</data>
<flag name="review"
          id="20664"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39621</attachid>
            <date>2009-09-15 16:19:01 -0700</date>
            <delta_ts>2009-09-16 13:36:53 -0700</delta_ts>
            <desc>New patch that fixes problems with failing old http tests</desc>
            <filename>patchFor29121-7.txt</filename>
            <type>text/plain</type>
            <size>29255</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODQwMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDktMDktMTUgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEluY29ycmVjdCBiZWhhdmlvciBvZiBYTUxIdHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWFk
ZXJzIGFuZAorICAgICAgICBYTUxIdHRwUmVxdWVzdDo6Z2V0UmVzcG9uc2VIZWFkZXIgaW4gdGhl
CisgICAgICAgIEhFQURFUlNfUkVDRUlWRUQgcmVhZHlTdGF0ZS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MTIxCisKKyAgICAgICAgVGVzdHM6IGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ2V0QWxsUmVzcG9uc2VIZWFkZXJzLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ2V0UmVzcG9uc2VIZWFkZXIuaHRt
bAorCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyKToKKyAgICAgICAgQ2hhbmdlZCB0
aGUgbWluaW11bSB2YWxpZCBzdGF0ZSBmcm9tIExPQURJTkcgdG8gSEVBREVSU19SRUNFSVZFRC4K
KwogMjAwOS0wOS0xNSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCShy
ZXZpc2lvbiA0ODI2MSkKKysrIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzE5LDcgKzcxOSw3IEBAIFN0cmluZyBYTUxIdHRwUmVxdWVzdDo6Z2V0UmVx
dWVzdEhlYWRlcigKIAogU3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYWRl
cnMoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7Ci0gICAgaWYgKG1fc3RhdGUgPCBMT0FESU5H
KSB7CisgICAgaWYgKG1fc3RhdGUgPCBIRUFERVJTX1JFQ0VJVkVEKSB7CiAgICAgICAgIGVjID0g
SU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybiAiIjsKICAgICB9CkBAIC03NTMsNyAr
NzUzLDcgQEAgU3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUhlYQogCiBTdHJp
bmcgWE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyKGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7Ci0gICAgaWYgKG1fc3RhdGUgPCBMT0FE
SU5HKSB7CisgICAgaWYgKG1fc3RhdGUgPCBIRUFERVJTX1JFQ0VJVkVEKSB7CiAgICAgICAgIGVj
ID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybiAiIjsKICAgICB9CkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODQwMikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDI0IEBACisyMDA5LTA5LTE1ICBDYXJvbCBTemFibyAgPGNhcm9sLnN6YWJv
QG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbmNvcnJlY3QgYmVoYXZpb3Igb2YgWE1MSHR0cFJlcXVlc3Q6OmdldEFsbFJlc3BvbnNl
SGVhZGVycyBhbmQgWE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyIGluIHRoZQorICAg
ICAgICBIRUFERVJTX1JFQ0VJVkVEIHJlYWR5U3RhdGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTEyMQorCisgICAgICAgICogaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9nZXRBbGxSZXNwb25zZUhlYWRlcnMtZXhwZWN0ZWQudHh0OiBDb3BpZWQg
ZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0
LUludmFsaWRTdGF0ZUV4Y2VwdGlvbi1nZXRBbGxSZXF1ZXN0SGVhZGVycy1leHBlY3RlZC50eHQu
CisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nZXRBbGxSZXNwb25zZUhlYWRl
cnMuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC94bWxodHRwcmVxdWVzdC1JbnZhbGlkU3RhdGVFeGNlcHRpb24tZ2V0QWxsUmVxdWVzdEhlYWRl
cnMuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2dldFJlc3BvbnNl
SGVhZGVyLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1JbnZhbGlkU3RhdGVFeGNlcHRpb24tZ2V0UmVx
dWVzdEhlYWRlci1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9nZXRSZXNwb25zZUhlYWRlci5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LUludmFsaWRTdGF0ZUV4Y2VwdGlv
bi1nZXRSZXF1ZXN0SGVhZGVyLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC94bWxodHRwcmVxdWVzdC1JbnZhbGlkU3RhdGVFeGNlcHRpb24tZ2V0QWxsUmVxdWVzdEhl
YWRlcnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtSW52YWxpZFN0YXRlRXhjZXB0aW9uLWdldEFsbFJlcXVl
c3RIZWFkZXJzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC94bWxodHRwcmVxdWVzdC1JbnZhbGlkU3RhdGVFeGNlcHRpb24tZ2V0UmVxdWVzdEhlYWRl
ci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC94bWxodHRwcmVxdWVzdC1JbnZhbGlkU3RhdGVFeGNlcHRpb24tZ2V0UmVxdWVzdEhlYWRl
ci5odG1sOiBSZW1vdmVkLgorICAgICAgICBNb2RpZmllZCB4bWxodHRwcmVxdWVzdC1JbnZhbGlk
U3RhdGVFeGNlcHRpb24tZ2V0QWxsUmVxdWVzdEhlYWRlcnMgYW5kIHhtbGh0dHByZXF1ZXN0LUlu
dmFsaWRTdGF0ZUV4Y2VwdGlvbi1nZXRSZXF1ZXN0SGVhZGVyIHRvIG1hdGNoIHRoZSBjdXJyZW50
IHNwZWMgYW5kIGNvZGUgYmVoYXZpb3IuCisgICAgICAgIEV4dGVuZGVkIHRoZSBmaXJzdCB0ZXN0
IHRvIGNvdmVyIG90aGVyIGFzcGVjdHMgb2YgdGhlIGdldEFsbFJlc3BvbnNlSGVhZGVycyBtZXRo
b2QgYW5kIHBsYW5uaW5nIHRoZSBzYW1lIGV4dGVuc2lvbiBmb3IgdGhlIHNlY29uZCB0ZXN0Lgor
ICAgICAgICBUaGUgZXh0ZW5zaW9uIGZvciB0aGUgc2Vjb25kIHRlc3QgaXMgdG8gYmUgc3VibWl0
dGVkIHdpdGggdGhlIHBhdGNoIGZvciBidWcgMjkxNDAuCisgICAgICAgIFJlbmFtZWQgdGhlIDIg
dGVzdHMgdG8gYSBzaG9ydGVyIG1vcmUgYWNjdXJhdGUgbmFtZSwgZ2l2ZW4gdGhlaXIgbmV3IGlu
dGVuZGVkIHNjb3BlLgorCiAyMDA5LTA5LTE0ICBBbmRyZXcgUmljaGFyZHMgIDxyYW5kcmV3QGdt
YWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nZXRBbGxSZXNwb25zZUhlYWRlcnMtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvZ2V0QWxsUmVzcG9uc2VIZWFkZXJzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDgyNjEp
CShmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVl
c3QtSW52YWxpZFN0YXRlRXhjZXB0aW9uLWdldEFsbFJlcXVlc3RIZWFkZXJzLWV4cGVjdGVkLnR4
dDo0ODI2MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ2V0QWxs
UmVzcG9uc2VIZWFkZXJzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDgg
QEAKK1Rlc3QgcGFnZSBmb3IgdGhlIGJ1ZyAxNTM1NiA6IGdldFJlc3BvbnNlSGVhZGVyIGFuZCBn
ZXRBbGxSZXNwb25zZUhlYWRlcnMgZG8gbm90IHRocm93IGV4Y2VwdGlvbnMKKworUEFTU0VEIChJ
TlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSApIDAKK1BBU1NFRCAoSU5WQUxJRF9T
VEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEgKSAxCitQQVNTRUQgKElOVkFMSURfU1RBVEVfRVJS
OiBET00gRXhjZXB0aW9uIDExICkgMgorUEFTU0VEIDMKK1BBU1NFRCA0CisKSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ2V0QWxsUmVzcG9uc2VIZWFkZXJzLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L2dldEFsbFJlc3BvbnNlSGVhZGVycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQ4MjYx
KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nZXRBbGxSZXNwb25z
ZUhlYWRlcnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsMTAgQEAKLVRl
c3QgcGFnZSBmb3IgdGhlIGJ1ZyAxNTM1NiA6IGdldFJlc3BvbnNlSGVhZGVyIGFuZCBnZXRBbGxS
ZXNwb25zZUhlYWRlcnMgZG8gbm90IHRocm93IGV4Y2VwdGlvbnMKK1Rlc3QgcGFnZSBmb3IgYnVn
IDE1MzU2IGFuZCBidWcgMjkxMjEKIAotUEFTU0VEIChJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxMSApIDAKLVBBU1NFRCAoSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24g
MTEgKSAxCi1QQVNTRUQgKElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExICkgMgor
QXNzZXJ0aW9uOiBJbnZva2luZyBnZXRBbGxSZXNwb25zZUhlYWRlcnMgbWV0aG9kIHdoZW4gcmVh
ZHlTdGF0ZSA+PSAyIChIRUFERVJTX1JFQ0VJVkVEKSBzaG91bGQgcmV0dXJuIGEgY29uZm9ybWlu
ZyBsaXN0IG9mIGhlYWRlcnMuCisKK1BBU1NFRCAwCitQQVNTRUQgMQorUEFTU0VEIDI6IGdldEFs
bFJlc3BvbnNlSGVhZGVycyByZXR1cm5lZCB3aGF0IGxvb2tzIGxpa2UgYSBjb25mb3JtaW5nIGhl
YWRlcmxpc3QuCiBQQVNTRUQgMwogUEFTU0VEIDQKIAoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nZXRBbGxSZXNwb25zZUhlYWRlcnMt
ZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptZXJnZWluZm8KCkluZGV4OiBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2dldEFsbFJlc3BvbnNlSGVhZGVycy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
Z2V0QWxsUmVzcG9uc2VIZWFkZXJzLmh0bWwJKHJldmlzaW9uIDQ4MjYxKQkoZnJvbSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LUludmFsaWRTdGF0
ZUV4Y2VwdGlvbi1nZXRBbGxSZXF1ZXN0SGVhZGVycy5odG1sOjQ4MjYxKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nZXRBbGxSZXNwb25zZUhlYWRlcnMuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYzIEBACis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRs
ZT5DaGVjayBleGNlcHRpb24gdGhyb3duIGJ5IGdldEFsbFJlc3BvbnNlSGVhZGVycyA8L3RpdGxl
PgorPC9oZWFkPgorPGJvZHk+CisKKzxwPlRlc3QgcGFnZSBmb3IgdGhlIDxhIGhyZWY9Imh0dHA6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzU2Ij5idWcgMTUzNTY8L2E+IDog
Z2V0UmVzcG9uc2VIZWFkZXIgYW5kIGdldEFsbFJlc3BvbnNlSGVhZGVycyBkbyBub3QgdGhyb3cg
ZXhjZXB0aW9uczwvcD4KKworPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyAobXNnKSB7CisgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtc2cpKTsKKyAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIikpOworfQorCit2
YXIgeGhyOworCitpZiAod2luZG93LlhNTEh0dHBSZXF1ZXN0KSB7CisgICAgeGhyID0gbmV3IFhN
TEh0dHBSZXF1ZXN0KCk7Cit9IGVsc2UgeworICAgIHRyeSB7CisgICAgICAgIHhociA9IG5ldyBB
Y3RpdmVYT2JqZWN0KCJNc3htbDIuWE1MSFRUUCIpOworICAgIH0gY2F0Y2ggKGV4KSB7CisgICAg
ICAgIHhociA9IG5ldyBBY3RpdmVYT2JqZWN0KCJNaWNyb3NvZnQuWE1MSFRUUCIpOworICAgIH0K
K30KKworeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgeworICAgIHZhciByU3Rh
dGUgPSB0aGlzLnJlYWR5U3RhdGU7CisgICAgLy8gV2UgZXhwZWN0IGFuIElOVkFMSURfU1RBVEVf
RVJSIGV4Y2VwdGlvbiBmb3IgcmVhZHlTdGF0ZSA9IDEgb3IgMgorICAgIC8vIGFuZCBubyBleGNl
cHRpb24gZm9yIHJlYWR5U3RhdGUgPSAzIG9yIDQKKyAgICB0cnkgeworICAgICAgICB2YXIgaGVh
ZGVyID0gdGhpcy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKTsKKyAgICAgICAgaWYgKHJTdGF0ZSA9
PSAxIHx8IHJTdGF0ZSA9PSAyKSB7CisgICAgICAgICAgICBsb2coIkZBSUxFRCAoIGhlYWRlciA6
IiArIGhlYWRlciArICIpIiArIHJTdGF0ZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBsb2coIlBBU1NFRCAiICsgclN0YXRlKTsKKyAgICAgICAgfQorICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgICAgaWYgKHJTdGF0ZSA9PSAxIHx8IHJTdGF0ZSA9PSAyKSB7CisgICAgICAgICAgICBs
b2coIlBBU1NFRCAoIiArIGUubWVzc2FnZSArIiApICIgKyByU3RhdGUpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgbG9nKCJGQUlMRUQgKEVYQ0VQVElPTiBUSFJPV04gIiArIGUubWVz
c2FnZSArICIgKSAiICsgclN0YXRlKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gVGVzdCBm
b3IgcmVhZHlTdGF0ZSA9IDAKK3RyeSB7CisgICAgdmFyIGhlYWRlciA9IHhoci5nZXRBbGxSZXNw
b25zZUhlYWRlcnMoKTsKKyAgICBsb2coIkZBSUxFRCAoIGhlYWRlciA6IiArIGhlYWRlciArICIp
IiArIHhoci5yZWFkeVN0YXRlKTsKK30gY2F0Y2ggKGUpIHsKKyAgICBsb2coIlBBU1NFRCAoIiAr
IGUubWVzc2FnZSArIiApICIgKyB4aHIucmVhZHlTdGF0ZSk7Cit9CisKK3hoci5vcGVuKCJHRVQi
LCJyZXNvdXJjZXMvMTI1MS5odG1sIiwgdHJ1ZSk7Cit4aHIuc2VuZChudWxsKTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9nZXRBbGxSZXNwb25zZUhlYWRlcnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2dldEFsbFJlc3BvbnNlSGVhZGVycy5odG1s
CShyZXZpc2lvbiA0ODI2MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvZ2V0QWxsUmVzcG9uc2VIZWFkZXJzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTkgKzEs
MTMgQEAKIDxodG1sPgogPGhlYWQ+Ci0gICAgPHRpdGxlPkNoZWNrIGV4Y2VwdGlvbiB0aHJvd24g
YnkgZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIDwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLQotPHA+
VGVzdCBwYWdlIGZvciB0aGUgPGEgaHJlZj0iaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTUzNTYiPmJ1ZyAxNTM1NjwvYT4gOiBnZXRSZXNwb25zZUhlYWRlciBhbmQgZ2V0
QWxsUmVzcG9uc2VIZWFkZXJzIGRvIG5vdCB0aHJvdyBleGNlcHRpb25zPC9wPgotCisgICAgPHRp
dGxlPkNoZWNrIGV4Y2VwdGlvbiB0aHJvd24gYnkgZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIGFuZCBz
b21lCisgICAgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZSByZXR1cm4gdmFsdWU8L3RpdGxlPgogPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0KIGZ1
bmN0aW9uIGxvZyAobXNnKSB7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZShtc2cpKTsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIikpOworICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJsaSIpOworICAgIHBhcmFncmFwaC5pbm5lckhUTUw9bXNnLnJlcGxh
Y2UoL1xuL2dtLCI8YnI+Iik7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUi
KS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOwogfQogCiB2YXIgeGhyOwpAQCAtMjgsMzYgKzIyLDk3
IEBAIGlmICh3aW5kb3cuWE1MSHR0cFJlcXVlc3QpIHsKICAgICB9CiB9CiAKK3ZhciBzYXZlZEhl
YWRlciA9IG51bGw7CiB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CiAgICAg
dmFyIHJTdGF0ZSA9IHRoaXMucmVhZHlTdGF0ZTsKLSAgICAvLyBXZSBleHBlY3QgYW4gSU5WQUxJ
RF9TVEFURV9FUlIgZXhjZXB0aW9uIGZvciByZWFkeVN0YXRlID0gMSBvciAyCi0gICAgLy8gYW5k
IG5vIGV4Y2VwdGlvbiBmb3IgcmVhZHlTdGF0ZSA9IDMgb3IgNAorICAgIC8vIFdlIGV4cGVjdCBh
biBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gZm9yIHJlYWR5U3RhdGUgPCAyCisgICAgLy8g
YW5kIG5vIGV4Y2VwdGlvbiBmb3IgcmVhZHlTdGF0ZSA+PSAyCiAgICAgdHJ5IHsKICAgICAgICAg
dmFyIGhlYWRlciA9IHRoaXMuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCk7Ci0gICAgICAgIGlmIChy
U3RhdGUgPT0gMSB8fCByU3RhdGUgPT0gMikgewotICAgICAgICAgICAgbG9nKCJGQUlMRUQgKCBo
ZWFkZXIgOiIgKyBoZWFkZXIgKyAiKSIgKyByU3RhdGUpOwotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgbG9nKCJQQVNTRUQgIiArIHJTdGF0ZSk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYg
KHJTdGF0ZSAhPSB0aGlzLnJlYWR5U3RhdGUpCisgICAgICAgICAgICBsb2coIlVOQ0VSVEFJTiAi
ICsgclN0YXRlICsgIjogcmVhZHlTdGF0ZSBjaGFuZ2VkIHdoaWxlIGdldHRpbmcgaGVhZGVycy4i
KTsKKyAgICAgICAgaWYgKHJTdGF0ZSA8IDIpIHsKKyAgICAgICAgICAgIGxvZygiRkFJTEVEICIg
KyByU3RhdGUgKyAiOiBoZWFkZXJsaXN0PSIgKyBoZWFkZXIpOworICAgICAgICB9IGVsc2UgaWYg
KGhlYWRlcikKKyAgICAgICAgICAgIGlmIChzYXZlZEhlYWRlcikKKyAgICAgICAgICAgICAgICBp
ZiAoc2F2ZWRIZWFkZXIgIT0gaGVhZGVyKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZygiRkFJ
TEVEICIgKyByU3RhdGUgKworIjogaGVhZGVybGlzdCBjaGFuZ2VkIGFmdGVyIGl0IHdhcyBmaXJz
dCByZXR1cm5lZC4gUHJldmlvdXMgaGVhZGVyIGxpc3Q6XG4iCisrIHNhdmVkSGVhZGVyICsgIlxu
IE5ldyBoZWFkZXJsaXN0OlxuIiArIGhlYWRlcik7CisgICAgICAgICAgICAgICAgc2F2ZWRIZWFk
ZXIgPSBoZWFkZXI7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIC8v
c2F2ZWRIZWFkZXIgPT0gaGVhZGVyIGhlcmU7IG5vIG5lZWQgdG8gcmVwcmludCBoZWFkZXIKKyAg
ICAgICAgICAgICAgICAgICAgbG9nKCJQQVNTRUQgIiArIHJTdGF0ZSk7CisgICAgICAgICAgICBl
bHNlIHsvL2ZpcnN0IGhlYWRlciBsaXN0IHJldHJpZXZlZAorICAgICAgICAgICAgICAgIGlmICgv
XlNldC1Db29raWU6fF5TZXQtQ29va2llMjovaW0udGVzdChoZWFkZXIpKQorICAgICAgICAgICAg
ICAgICAgICBsb2coIkZBSUxFRCAiICsgclN0YXRlICsKKyI6IC9eU2V0LUNvb2tpZTp8XlNldC1D
b29raWUyOi8gbWF0Y2hlcy4gZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIHJldHVybmVkOlxuIiArIGhl
YWRlcik7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorLy9kbyBub3QgcHJpbnQgbGlzdCBmb3IgYXV0b21hdGVkIHRlc3RzIHRvIGF2b2lkIGZh
bHNlIGZhaWx1cmVzLgorICAgICAgICAgICAgICAgICAgICBsb2coIlBBU1NFRCAiICsgclN0YXRl
ICsKKyI6IGdldEFsbFJlc3BvbnNlSGVhZGVycyByZXR1cm5lZCB3aGF0IGxvb2tzIGxpa2UgYSBj
b25mb3JtaW5nIGhlYWRlcmxpc3QuIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICBsb2coIlBBU1NFRCAiICsgclN0YXRlICsKKyI6IGdldEFsbFJlc3BvbnNlSGVh
ZGVycyByZXR1cm5lZDpcbiIgKyBoZWFkZXIpOworICAgICAgICAgICAgICAgIHNhdmVkSGVhZGVy
ID0gaGVhZGVyOworICAgICAgICAgICAgfQorICAgICAgICBlbHNlIC8vaGVhZGVyIGlzIG51bGwK
KyAgICAgICAgICAgIGxvZygiRkFJTEVEICIgKyByU3RhdGUgKyAiOiBudWxsIGhlYWRlciBsaXN0
IHJldHVybmVkIik7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBpZiAoclN0YXRlID09IDEg
fHwgclN0YXRlID09IDIpIHsKLSAgICAgICAgICAgIGxvZygiUEFTU0VEICgiICsgZS5tZXNzYWdl
ICsiICkgIiArIHJTdGF0ZSk7CisgICAgICAgIGlmIChyU3RhdGUgPCAyKSB7CisgICAgICAgICAg
ICBsb2coIlBBU1NFRCAiICsgclN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IGxvZygiRkFJTEVEIChFWENFUFRJT04gVEhST1dOICIgKyBlLm1lc3NhZ2UgKyAiICkgIiArIHJT
dGF0ZSk7CisgICAgICAgICAgICBsb2coIkZBSUxFRCAiICsgclN0YXRlICsgIjogRVhDRVBUSU9O
IFRIUk9XTjogIiArIGUubWVzc2FnZSArICIuIik7CiAgICAgICAgIH0KICAgICB9CisgICAgaWYg
KChyU3RhdGUgPT0gNCkgJiYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikpCisgICAgICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiB9CiAKLS8vIFRlc3QgZm9y
IHJlYWR5U3RhdGUgPSAwCi10cnkgewotICAgIHZhciBoZWFkZXIgPSB4aHIuZ2V0QWxsUmVzcG9u
c2VIZWFkZXJzKCk7Ci0gICAgbG9nKCJGQUlMRUQgKCBoZWFkZXIgOiIgKyBoZWFkZXIgKyAiKSIg
KyB4aHIucmVhZHlTdGF0ZSk7Ci19IGNhdGNoIChlKSB7Ci0gICAgbG9nKCJQQVNTRUQgKCIgKyBl
Lm1lc3NhZ2UgKyIgKSAiICsgeGhyLnJlYWR5U3RhdGUpOworZnVuY3Rpb24gdGVzdCgpIHsKKyAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgIH0KKyAgICAvLyBUZXN0IGZvciByZWFkeVN0YXRlID0gMAorICAg
IHRyeSB7CisgICAgICAgIHZhciBoZWFkZXIgPSB4aHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCk7
CisgICAgICAgIGxvZygiRkFJTEVEICIgKyB4aHIucmVhZHlTdGF0ZSArICI6IGhlYWRlcj0iICsg
aGVhZGVyKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGxvZygiUEFTU0VEICIgKyB4aHIu
cmVhZHlTdGF0ZSk7CisgICAgfQorICAgIHRyeSB7CisgICAgICAgIHhoci5vcGVuKCJHRVQiLCJy
ZXNvdXJjZXMvMTI1MS5odG1sIiwgdHJ1ZSk7CisgICAgICAgIHhoci5zZW5kKG51bGwpOworICAg
IH0gY2F0Y2goZSkgeworICAgICAgICBsb2coIkZBSUxFRCBvcGVuL3NlbmQ6IEVYQ0VQVElPTiBU
SFJPV046ICIgKyBlLm1lc3NhZ2UgKyIuIik7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisgICAgfQogfQotCi14aHIub3BlbigiR0VUIiwicmVzb3VyY2VzLzEyNTEuaHRtbCIsIHRy
dWUpOwoteGhyLnNlbmQobnVsbCk7CiA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
dGVzdCgpIj4KKworPHA+VGVzdCBwYWdlIGZvciA8YSBocmVmPSJodHRwOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM1NiI+YnVnIDE1MzU2PC9hPgorYW5kIDxhIGhyZWY9Imh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MTIxIj5idWcgMjkxMjE8L2E+
PC9wPgorPHA+QXNzZXJ0aW9uOiBJbnZva2luZyBnZXRBbGxSZXNwb25zZUhlYWRlcnMgbWV0aG9k
IHdoZW4gcmVhZHlTdGF0ZSA+PSAyCisoSEVBREVSU19SRUNFSVZFRCkgc2hvdWxkIHJldHVybiBh
IGNvbmZvcm1pbmcgbGlzdCBvZiBoZWFkZXJzLjwvcD4KKzxzY3JpcHQ+CisgICAgaWYgKCF3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCI8cD5JZiB0
aGUgdGVzdCBwYXNzZXMgb25lIHNob3VsZCBzZWUgXAorYmVsb3cgdGhlIHJ1bGVyIHRoZSB0ZXh0
IFwicGFzc2VkXCIgaW4gYWxsIGNhcGl0YWwgbGV0dGVycywgNSB0aW1lcywgXAorZm9sbG93ZWQg
ZWFjaCB0aW1lIGJ5IGEgc3BhY2UgYW5kIHRoZSByZWFkeVN0YXRlIG51bWJlci48L3A+XG5cCis8
cD5SZWFkeVN0YXRlbnVtYmVycyBzaG91bGQgYmUgaW4gYXNjZW5kaW5nIG9yZGVyIDAgdG8gNC48
L3A+XG5cCis8cD5BIGNvbmZvcm1pbmcgbGlzdCBvZiByZXNwb25zZSBoZWFkZXJzIHNob3VsZCBh
bHNvIGJlIHByaW50ZWQuPC9wPlxuXAorPHA+QSBjb25mb3JtaW5nIGxpc3Qgb2YgaGVhZGVyczo8
L3A+IFwKKyAgIDxsaT4gY29udGFpbnMgb25lIGhlYWRlciBwZXIgbGluZS48L2xpPiBcCisgICA8
bGk+IGhhcyBoZWFkZXIgbmFtZXMgYW5kIGhlYWRlciB2YWx1ZXMgc2VwYXJhdGVkIGJ5IGEgQ09M
T04gYW5kIFwKK2EgU1BBQ0UuPC9saT5cCisgICA8bGk+IGRvZXMgbm90IGNvbnRhaW4gYW55IGhl
YWRlcnMgdGhhdCBtYXRjaCAoY2FzZS1pbnNlbnNpdGl2ZWx5KSBcCitTZXQtQ29va2llIG9yIFNl
dC1Db29raWUyPC9saT4iKTsKKyA8L3NjcmlwdD4KKyA8aHI+CisgPHA+PG9sIGlkPWNvbnNvbGU+
PC9vbD48L3A+CiA8L2JvZHk+CiA8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2dldEFsbFJlc3BvbnNlSGVhZGVycy5odG1s
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KQWRkZWQ6IHN2bjptZXJnZWluZm8KCkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L2dldFJlc3BvbnNlSGVhZGVyLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2dldFJlc3Bv
bnNlSGVhZGVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDgyNjEpCShmcm9tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtSW52YWxpZFN0YXRlRXhj
ZXB0aW9uLWdldFJlcXVlc3RIZWFkZXItZXhwZWN0ZWQudHh0OjQ4MjYxKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nZXRSZXNwb25zZUhlYWRlci1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4IEBACitUZXN0IHBhZ2UgZm9yIHRoZSBidWcg
MTUzNTYgOiBnZXRSZXNwb25zZUhlYWRlciBhbmQgZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIGRvIG5v
dCB0aHJvdyBleGNlcHRpb25zCisKK1BBU1NFRCAoSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNl
cHRpb24gMTEgKSAwCitQQVNTRUQgKElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDEx
ICkgMQorUEFTU0VEIChJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSApIDIKK1BB
U1NFRCAzCitQQVNTRUQgNAorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L2dldFJlc3BvbnNlSGVhZGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2dldFJlc3BvbnNlSGVhZGVyLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gNDgyNjEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L2dldFJlc3BvbnNlSGVhZGVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMSw4ICsxLDEwIEBACi1UZXN0IHBhZ2UgZm9yIHRoZSBidWcgMTUzNTYgOiBnZXRSZXNwb25z
ZUhlYWRlciBhbmQgZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIGRvIG5vdCB0aHJvdyBleGNlcHRpb25z
CitUZXN0IHBhZ2UgZm9yIGJ1ZyAxNTM1NiBhbmQgYnVnIDI5MTIxCiAKLVBBU1NFRCAoSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEgKSAwCi1QQVNTRUQgKElOVkFMSURfU1RBVEVf
RVJSOiBET00gRXhjZXB0aW9uIDExICkgMQotUEFTU0VEIChJTlZBTElEX1NUQVRFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxMSApIDIKK0Fzc2VydGlvbjogSW52b2tpbmcgZ2V0UmVzcG9uc2VIZWFkZXIg
bWV0aG9kIHdoZW4gcmVhZHlTdGF0ZSA+PSAyIChIRUFERVJTX1JFQ0VJVkVEKSBzaG91bGQgcmV0
dXJuIGEgaGVhZGVyIHZhbHVlIGlmIHRoZSBoZWFkZXIgZXhpc3RzLgorCitQQVNTRUQgMAorUEFT
U0VEIDEKK1BBU1NFRCAyOiBnZXRSZXNwb25zZUhlYWRlcihDb250ZW50LVR5cGUpIHJldHVybmVk
IGEgdmFsdWUuCiBQQVNTRUQgMwogUEFTU0VEIDQKIAoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nZXRSZXNwb25zZUhlYWRlci1leHBl
Y3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1lcmdlaW5mbwoKSW5kZXg6IExheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZ2V0UmVzcG9uc2VIZWFkZXIuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2dldFJlc3Bv
bnNlSGVhZGVyLmh0bWwJKHJldmlzaW9uIDQ4MjYxKQkoZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LUludmFsaWRTdGF0ZUV4Y2VwdGlvbi1n
ZXRSZXF1ZXN0SGVhZGVyLmh0bWw6NDgyNjEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L2dldFJlc3BvbnNlSGVhZGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw2MyBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+Q2hlY2sgZXhjZXB0aW9uIHRo
cm93biBieSBnZXRSZXBvbnNlSGVhZGVyIDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKworPHA+
VGVzdCBwYWdlIGZvciB0aGUgPGEgaHJlZj0iaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTUzNTYiPmJ1ZyAxNTM1NjwvYT4gOiBnZXRSZXNwb25zZUhlYWRlciBhbmQgZ2V0
QWxsUmVzcG9uc2VIZWFkZXJzIGRvIG5vdCB0aHJvdyBleGNlcHRpb25zPC9wPgorCis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rp
b24gbG9nIChtc2cpIHsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKG1zZykpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiYnIiKSk7Cit9CisKK3ZhciB4aHI7CisKK2lmICh3aW5kb3cuWE1M
SHR0cFJlcXVlc3QpIHsKKyAgICB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKK30gZWxzZSB7
CisgICAgdHJ5IHsKKyAgICAgICAgeGhyID0gbmV3IEFjdGl2ZVhPYmplY3QoIk1zeG1sMi5YTUxI
VFRQIik7CisgICAgfSBjYXRjaCAoZXgpIHsKKyAgICAgICAgeGhyID0gbmV3IEFjdGl2ZVhPYmpl
Y3QoIk1pY3Jvc29mdC5YTUxIVFRQIik7CisgICAgfQorfQorCit4aHIub25yZWFkeXN0YXRlY2hh
bmdlID0gZnVuY3Rpb24oKSB7CisgICAgdmFyIHJTdGF0ZSA9IHRoaXMucmVhZHlTdGF0ZTsKKyAg
ICAvLyBXZSBleHBlY3QgYW4gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIGZvciByZWFkeVN0
YXRlID0gMSBvciAyCisgICAgLy8gYW5kIG5vIGV4Y2VwdGlvbiBmb3IgcmVhZHlTdGF0ZSA9IDMg
b3IgNAorICAgIHRyeSB7CisgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmdldFJlc3BvbnNlSGVh
ZGVyKCJDb250ZW50LVR5cGUiKTsKKyAgICAgICAgaWYgKHJTdGF0ZSA9PSAxIHx8IHJTdGF0ZSA9
PSAyKSB7CisgICAgICAgICAgICBsb2coIkZBSUxFRCAoIGhlYWRlciA6IiArIGhlYWRlciArICIp
IiArIHJTdGF0ZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2coIlBBU1NFRCAi
ICsgclN0YXRlKTsKKyAgICAgICAgfQorICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgaWYgKHJT
dGF0ZSA9PSAxIHx8IHJTdGF0ZSA9PSAyKSB7CisgICAgICAgICAgICBsb2coIlBBU1NFRCAoIiAr
IGUubWVzc2FnZSArIiApICIgKyByU3RhdGUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgbG9nKCJGQUlMRUQgKEVYQ0VQVElPTiBUSFJPV04gIiArIGUubWVzc2FnZSArICIgKSAiICsg
clN0YXRlKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gVGVzdCBmb3IgcmVhZHlTdGF0ZSA9
IDAKK3RyeSB7CisgICAgdmFyIGhlYWRlciA9IHhoci5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVu
dC1UeXBlIik7CisgICAgbG9nKCJGQUlMRUQgKCBoZWFkZXIgOiIgKyBoZWFkZXIgKyAiKSIgKyB4
aHIucmVhZHlTdGF0ZSk7Cit9IGNhdGNoIChlKSB7CisgICAgbG9nKCJQQVNTRUQgKCIgKyBlLm1l
c3NhZ2UgKyIgKSAiICsgeGhyLnJlYWR5U3RhdGUpOworfQorCit4aHIub3BlbigiR0VUIiwicmVz
b3VyY2VzLzEyNTEuaHRtbCIsIHRydWUpOworeGhyLnNlbmQobnVsbCk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvZ2V0UmVzcG9uc2VIZWFkZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L2dldFJlc3BvbnNlSGVhZGVyLmh0bWwJKHJldmlzaW9uIDQ4
MjYxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9nZXRSZXNwb25z
ZUhlYWRlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE5ICsxLDEyIEBACiA8aHRtbD4KIDxo
ZWFkPgogICAgIDx0aXRsZT5DaGVjayBleGNlcHRpb24gdGhyb3duIGJ5IGdldFJlcG9uc2VIZWFk
ZXIgPC90aXRsZT4KLTwvaGVhZD4KLTxib2R5PgotCi08cD5UZXN0IHBhZ2UgZm9yIHRoZSA8YSBo
cmVmPSJodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM1NiI+YnVnIDE1
MzU2PC9hPiA6IGdldFJlc3BvbnNlSGVhZGVyIGFuZCBnZXRBbGxSZXNwb25zZUhlYWRlcnMgZG8g
bm90IHRocm93IGV4Y2VwdGlvbnM8L3A+Ci0KIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotCiBmdW5jdGlvbiBsb2cgKG1zZykgewotICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobXNnKSk7Ci0g
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJiciIp
KTsKKyAgICB2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKKyAg
ICBwYXJhZ3JhcGguaW5uZXJIVE1MPW1zZy5yZXBsYWNlKC9cbi9nbSwiPGJyPiIpOworICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQocGFyYWdyYXBoKTsK
IH0KIAogdmFyIHhocjsKQEAgLTI4LDM2ICsyMSw5MCBAQCBpZiAod2luZG93LlhNTEh0dHBSZXF1
ZXN0KSB7CiAgICAgfQogfQogCit2YXIgc2F2ZWRIZWFkZXIgPSBudWxsOwordmFyIGhlYWRlck5h
bWU9IkNvbnRlbnQtVHlwZSI7CiB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7
CiAgICAgdmFyIHJTdGF0ZSA9IHRoaXMucmVhZHlTdGF0ZTsKLSAgICAvLyBXZSBleHBlY3QgYW4g
SU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIGZvciByZWFkeVN0YXRlID0gMSBvciAyCi0gICAg
Ly8gYW5kIG5vIGV4Y2VwdGlvbiBmb3IgcmVhZHlTdGF0ZSA9IDMgb3IgNAorICAgIC8vIFdlIGV4
cGVjdCBhbiBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gZm9yIHJlYWR5U3RhdGUgPCAyCisg
ICAgLy8gYW5kIG5vIGV4Y2VwdGlvbiBmb3IgcmVhZHlTdGF0ZSA+PSAyCiAgICAgdHJ5IHsKLSAg
ICAgICAgdmFyIGhlYWRlciA9IHRoaXMuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIp
OwotICAgICAgICBpZiAoclN0YXRlID09IDEgfHwgclN0YXRlID09IDIpIHsKLSAgICAgICAgICAg
IGxvZygiRkFJTEVEICggaGVhZGVyIDoiICsgaGVhZGVyICsgIikiICsgclN0YXRlKTsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGxvZygiUEFTU0VEICIgKyByU3RhdGUpOwotICAgICAg
ICB9CisgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmdldFJlc3BvbnNlSGVhZGVyKGhlYWRlck5h
bWUpOworICAgICAgICBpZiAoclN0YXRlICE9IHRoaXMucmVhZHlTdGF0ZSkKKyAgICAgICAgICAg
IGxvZygiVU5DRVJUQUlOICIgKyByU3RhdGUgKyAiOiByZWFkeVN0YXRlIGNoYW5nZWQgd2hpbGUg
Z2V0dGluZyB0aGUgaGVhZGVyLiIpOworICAgICAgICBpZiAoclN0YXRlIDwgMikgeworICAgICAg
ICAgICAgbG9nKCJGQUlMRUQgIiArIHJTdGF0ZSArICI6ICIgKyBoZWFkZXJOYW1lICsgIj0iICsg
aGVhZGVyKTsKKyAgICAgICAgfSBlbHNlIGlmIChoZWFkZXIpCisgICAgICAgICAgICBpZiAoc2F2
ZWRIZWFkZXIpCisgICAgICAgICAgICAgICAgaWYgKHNhdmVkSGVhZGVyICE9IGhlYWRlcikgewor
ICAgICAgICAgICAgICAgICAgICBsb2coIkZBSUxFRCAiICsgclN0YXRlICsKKyI6IENvbnRlbnQt
VHlwZSBjaGFuZ2VkIGFmdGVyIGl0IHdhcyBmaXJzdCByZXR1cm5lZC4gUHJldmlvdXMgIiArIGhl
YWRlck5hbWUKKysgIj0iICsgc2F2ZWRIZWFkZXIgKyAiOyBOZXcgIiArIGhlYWRlck5hbWUgKyAi
PSIgKyBoZWFkZXIgKyAiLiIpOworICAgICAgICAgICAgICAgIHNhdmVkSGVhZGVyID0gaGVhZGVy
OworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSAvL3NhdmVkSGVhZGVy
ID09IGhlYWRlciBoZXJlOyBubyBuZWVkIHRvIHJlcHJpbnQgaGVhZGVyCisgICAgICAgICAgICAg
ICAgICAgIGxvZygiUEFTU0VEICIgKyByU3RhdGUpOworICAgICAgICAgICAgZWxzZSB7Ly9maXJz
dCBoZWFkZXIgdmFsdWUgcmV0cmlldmVkCisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKy8vZG8gbm90IHByaW50IHRoZSBoZWFkZXIncyB2YWx1ZSBmb3Ig
YXV0b21hdGVkIHRlc3RzIHRvIGF2b2lkIGZhbHNlIGZhaWx1cmVzLgorICAgICAgICAgICAgICAg
ICAgICBsb2coIlBBU1NFRCAiICsgclN0YXRlICsKKyI6IGdldFJlc3BvbnNlSGVhZGVyKCIgKyBo
ZWFkZXJOYW1lICsgIikgcmV0dXJuZWQgYSB2YWx1ZS4iKTsKKyAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgIGxvZygiUEFTU0VEICIgKyByU3RhdGUgKworIjogZ2V0UmVz
cG9uc2VIZWFkZXIoIiArIGhlYWRlck5hbWUgKyAiKSByZXR1cm5lZDogIiArIGhlYWRlciArICIu
Iik7CisgICAgICAgICAgICAgICAgc2F2ZWRIZWFkZXIgPSBoZWFkZXI7CisgICAgICAgICAgICB9
CisgICAgICAgIGVsc2UgLy9oZWFkZXIgaXMgbnVsbAorICAgICAgICAgICAgbG9nKCJGQUlMRUQg
IiArIHJTdGF0ZSArICI6IG51bGwgIiArIGhlYWRlck5hbWUgKyAiIHJldHVybmVkLiIpOwogICAg
IH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgaWYgKHJTdGF0ZSA9PSAxIHx8IHJTdGF0ZSA9PSAyKSB7
Ci0gICAgICAgICAgICBsb2coIlBBU1NFRCAoIiArIGUubWVzc2FnZSArIiApICIgKyByU3RhdGUp
OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbG9nKCJGQUlMRUQgKEVYQ0VQVElPTiBU
SFJPV04gIiArIGUubWVzc2FnZSArICIgKSAiICsgclN0YXRlKTsKLSAgICAgICAgfQorICAgICAg
ICBpZiAoclN0YXRlIDwgMikKKyAgICAgICAgICAgIGxvZygiUEFTU0VEICIgKyByU3RhdGUpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2coIkZBSUxFRCAiICsgclN0YXRlICsgIjogRVhD
RVBUSU9OIFRIUk9XTjogIiArIGUubWVzc2FnZSArICIuIik7CiAgICAgfQorICAgIGlmICgoclN0
YXRlID09IDQpICYmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpKQorICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwogfQogCi0vLyBUZXN0IGZvciByZWFk
eVN0YXRlID0gMAotdHJ5IHsKLSAgICB2YXIgaGVhZGVyID0geGhyLmdldFJlc3BvbnNlSGVhZGVy
KCJDb250ZW50LVR5cGUiKTsKLSAgICBsb2coIkZBSUxFRCAoIGhlYWRlciA6IiArIGhlYWRlciAr
ICIpIiArIHhoci5yZWFkeVN0YXRlKTsKLX0gY2F0Y2ggKGUpIHsKLSAgICBsb2coIlBBU1NFRCAo
IiArIGUubWVzc2FnZSArIiApICIgKyB4aHIucmVhZHlTdGF0ZSk7CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKIH0KIAoteGhyLm9w
ZW4oIkdFVCIsInJlc291cmNlcy8xMjUxLmh0bWwiLCB0cnVlKTsKLXhoci5zZW5kKG51bGwpOwor
ZnVuY3Rpb24gdGVzdCgpIHsKKyAgICAvLyBUZXN0IGZvciByZWFkeVN0YXRlID0gMAorICAgIHRy
eSB7CisgICAgICAgIHZhciBoZWFkZXIgPSB4aHIuZ2V0UmVzcG9uc2VIZWFkZXIoaGVhZGVyTmFt
ZSk7CisgICAgICAgIGxvZygiRkFJTEVEICIgKyB4aHIucmVhZHlTdGF0ZSArICI6ICIgKyBoZWFk
ZXJOYW1lICsgIj0iICsgaGVhZGVyICsgIi4iKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAg
IGxvZygiUEFTU0VEICIgKyB4aHIucmVhZHlTdGF0ZSk7CisgICAgfQorICAgIHRyeSB7CisgICAg
ICAgIHhoci5vcGVuKCJHRVQiLCJyZXNvdXJjZXMvMTI1MS5odG1sIiwgdHJ1ZSk7CisgICAgICAg
IHhoci5zZW5kKG51bGwpOworICAgIH0gY2F0Y2goZSkgeworICAgICAgICBsb2coIkZBSUxFRCBv
cGVuL3NlbmQ6IEVYQ0VQVElPTiBUSFJPV046ICIgKyBlLm1lc3NhZ2UgKyIuIik7CisgICAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InRlc3QoKSI+CisKKzxwPlRlc3QgcGFnZSBmb3IgPGEgaHJlZj0iaHR0cDov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNTYiPmJ1ZworMTUzNTY8L2E+Cith
bmQgPGEgaHJlZj0iaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkxMjEi
PmJ1ZyAyOTEyMTwvYT48L3A+Cis8cD5Bc3NlcnRpb246IEludm9raW5nIGdldFJlc3BvbnNlSGVh
ZGVyIG1ldGhvZCB3aGVuIHJlYWR5U3RhdGUgPj0gMgorKEhFQURFUlNfUkVDRUlWRUQpIHNob3Vs
ZCByZXR1cm4gYSBoZWFkZXIgdmFsdWUgaWYgdGhlIGhlYWRlciBleGlzdHMuPC9wPgorPHNjcmlw
dD4KKyAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgZG9jdW1l
bnQud3JpdGUoIjxwPklmIHRoZSB0ZXN0IHBhc3NlcyBvbmUgc2hvdWxkIHNlZSBcCitiZWxvdyB0
aGUgcnVsZXIgdGhlIHRleHQgXCJwYXNzZWRcIiBpbiBhbGwgY2FwaXRhbCBsZXR0ZXJzLCA1IHRp
bWVzLCBcCitmb2xsb3dlZCBlYWNoIHRpbWUgYnkgYSBzcGFjZSBhbmQgdGhlIHJlYWR5U3RhdGUg
bnVtYmVyLjwvcD5cblwKKzxwPlJlYWR5U3RhdGVudW1iZXJzIHNob3VsZCBiZSBpbiBhc2NlbmRp
bmcgb3JkZXIgMCB0byA0LjwvcD5cblwKKzxwPlRoZSB2YWx1ZSBvZiB0aGUgIiArIGhlYWRlck5h
bWUgKyAiIGhlYWRlciBzaG91bGQgYWxzbyBiZSBwcmludGVkLjwvcD4iKTsKIDwvc2NyaXB0Pgor
IDxocj4KKyA8cD48b2wgaWQ9Y29uc29sZT48L29sPjwvcD4KIDwvYm9keT4KIDwvaHRtbD4KClBy
b3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
Z2V0UmVzcG9uc2VIZWFkZXIuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWVyZ2VpbmZvCgpJ
bmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVz
dC1JbnZhbGlkU3RhdGVFeGNlcHRpb24tZ2V0QWxsUmVxdWVzdEhlYWRlcnMtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1s
aHR0cHJlcXVlc3QtSW52YWxpZFN0YXRlRXhjZXB0aW9uLWdldEFsbFJlcXVlc3RIZWFkZXJzLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gNDgyNjEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LUludmFsaWRTdGF0ZUV4Y2VwdGlvbi1nZXRBbGxS
ZXF1ZXN0SGVhZGVycy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMCwwIEBA
Ci1UZXN0IHBhZ2UgZm9yIHRoZSBidWcgMTUzNTYgOiBnZXRSZXNwb25zZUhlYWRlciBhbmQgZ2V0
QWxsUmVzcG9uc2VIZWFkZXJzIGRvIG5vdCB0aHJvdyBleGNlcHRpb25zCi0KLVBBU1NFRCAoSU5W
QUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEgKSAwCi1QQVNTRUQgKElOVkFMSURfU1RB
VEVfRVJSOiBET00gRXhjZXB0aW9uIDExICkgMQotUEFTU0VEIChJTlZBTElEX1NUQVRFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxMSApIDIKLVBBU1NFRCAzCi1QQVNTRUQgNAotCkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LUludmFsaWRTdGF0
ZUV4Y2VwdGlvbi1nZXRBbGxSZXF1ZXN0SGVhZGVycy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtSW52YWxpZFN0
YXRlRXhjZXB0aW9uLWdldEFsbFJlcXVlc3RIZWFkZXJzLmh0bWwJKHJldmlzaW9uIDQ4MjYxKQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1J
bnZhbGlkU3RhdGVFeGNlcHRpb24tZ2V0QWxsUmVxdWVzdEhlYWRlcnMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSw2MyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotICAgIDx0aXRsZT5DaGVjayBl
eGNlcHRpb24gdGhyb3duIGJ5IGdldEFsbFJlc3BvbnNlSGVhZGVycyA8L3RpdGxlPgotPC9oZWFk
PgotPGJvZHk+Ci0KLTxwPlRlc3QgcGFnZSBmb3IgdGhlIDxhIGhyZWY9Imh0dHA6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzU2Ij5idWcgMTUzNTY8L2E+IDogZ2V0UmVzcG9u
c2VIZWFkZXIgYW5kIGdldEFsbFJlc3BvbnNlSGVhZGVycyBkbyBub3QgdGhyb3cgZXhjZXB0aW9u
czwvcD4KLQotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7Ci0KLWZ1bmN0aW9uIGxvZyAobXNnKSB7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtc2cpKTsKLSAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIikpOwotfQotCi12YXIgeGhyOwot
Ci1pZiAod2luZG93LlhNTEh0dHBSZXF1ZXN0KSB7Ci0gICAgeGhyID0gbmV3IFhNTEh0dHBSZXF1
ZXN0KCk7Ci19IGVsc2UgewotICAgIHRyeSB7Ci0gICAgICAgIHhociA9IG5ldyBBY3RpdmVYT2Jq
ZWN0KCJNc3htbDIuWE1MSFRUUCIpOwotICAgIH0gY2F0Y2ggKGV4KSB7Ci0gICAgICAgIHhociA9
IG5ldyBBY3RpdmVYT2JqZWN0KCJNaWNyb3NvZnQuWE1MSFRUUCIpOwotICAgIH0KLX0KLQoteGhy
Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewotICAgIHZhciByU3RhdGUgPSB0aGlz
LnJlYWR5U3RhdGU7Ci0gICAgLy8gV2UgZXhwZWN0IGFuIElOVkFMSURfU1RBVEVfRVJSIGV4Y2Vw
dGlvbiBmb3IgcmVhZHlTdGF0ZSA9IDEgb3IgMgotICAgIC8vIGFuZCBubyBleGNlcHRpb24gZm9y
IHJlYWR5U3RhdGUgPSAzIG9yIDQKLSAgICB0cnkgewotICAgICAgICB2YXIgaGVhZGVyID0gdGhp
cy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKTsKLSAgICAgICAgaWYgKHJTdGF0ZSA9PSAxIHx8IHJT
dGF0ZSA9PSAyKSB7Ci0gICAgICAgICAgICBsb2coIkZBSUxFRCAoIGhlYWRlciA6IiArIGhlYWRl
ciArICIpIiArIHJTdGF0ZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBsb2coIlBB
U1NFRCAiICsgclN0YXRlKTsKLSAgICAgICAgfQotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAg
aWYgKHJTdGF0ZSA9PSAxIHx8IHJTdGF0ZSA9PSAyKSB7Ci0gICAgICAgICAgICBsb2coIlBBU1NF
RCAoIiArIGUubWVzc2FnZSArIiApICIgKyByU3RhdGUpOwotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgbG9nKCJGQUlMRUQgKEVYQ0VQVElPTiBUSFJPV04gIiArIGUubWVzc2FnZSArICIg
KSAiICsgclN0YXRlKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotLy8gVGVzdCBmb3IgcmVhZHlT
dGF0ZSA9IDAKLXRyeSB7Ci0gICAgdmFyIGhlYWRlciA9IHhoci5nZXRBbGxSZXNwb25zZUhlYWRl
cnMoKTsKLSAgICBsb2coIkZBSUxFRCAoIGhlYWRlciA6IiArIGhlYWRlciArICIpIiArIHhoci5y
ZWFkeVN0YXRlKTsKLX0gY2F0Y2ggKGUpIHsKLSAgICBsb2coIlBBU1NFRCAoIiArIGUubWVzc2Fn
ZSArIiApICIgKyB4aHIucmVhZHlTdGF0ZSk7Ci19Ci0KLXhoci5vcGVuKCJHRVQiLCJyZXNvdXJj
ZXMvMTI1MS5odG1sIiwgdHJ1ZSk7Ci14aHIuc2VuZChudWxsKTsKLTwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94
bWxodHRwcmVxdWVzdC1JbnZhbGlkU3RhdGVFeGNlcHRpb24tZ2V0UmVxdWVzdEhlYWRlci1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC94bWxodHRwcmVxdWVzdC1JbnZhbGlkU3RhdGVFeGNlcHRpb24tZ2V0UmVxdWVzdEhlYWRl
ci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQ4MjYxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1JbnZhbGlkU3RhdGVFeGNlcHRpb24tZ2V0
UmVxdWVzdEhlYWRlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMCwwIEBA
Ci1UZXN0IHBhZ2UgZm9yIHRoZSBidWcgMTUzNTYgOiBnZXRSZXNwb25zZUhlYWRlciBhbmQgZ2V0
QWxsUmVzcG9uc2VIZWFkZXJzIGRvIG5vdCB0aHJvdyBleGNlcHRpb25zCi0KLVBBU1NFRCAoSU5W
QUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEgKSAwCi1QQVNTRUQgKElOVkFMSURfU1RB
VEVfRVJSOiBET00gRXhjZXB0aW9uIDExICkgMQotUEFTU0VEIChJTlZBTElEX1NUQVRFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxMSApIDIKLVBBU1NFRCAzCi1QQVNTRUQgNAotCkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LUludmFsaWRTdGF0
ZUV4Y2VwdGlvbi1nZXRSZXF1ZXN0SGVhZGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1JbnZhbGlkU3RhdGVF
eGNlcHRpb24tZ2V0UmVxdWVzdEhlYWRlci5odG1sCShyZXZpc2lvbiA0ODI2MSkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtSW52YWxpZFN0
YXRlRXhjZXB0aW9uLWdldFJlcXVlc3RIZWFkZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw2
MyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotICAgIDx0aXRsZT5DaGVjayBleGNlcHRpb24gdGhy
b3duIGJ5IGdldFJlcG9uc2VIZWFkZXIgPC90aXRsZT4KLTwvaGVhZD4KLTxib2R5PgotCi08cD5U
ZXN0IHBhZ2UgZm9yIHRoZSA8YSBocmVmPSJodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTM1NiI+YnVnIDE1MzU2PC9hPiA6IGdldFJlc3BvbnNlSGVhZGVyIGFuZCBnZXRB
bGxSZXNwb25zZUhlYWRlcnMgZG8gbm90IHRocm93IGV4Y2VwdGlvbnM8L3A+Ci0KLTxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotCi1mdW5jdGlv
biBsb2cgKG1zZykgewotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUobXNnKSk7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJiciIpKTsKLX0KLQotdmFyIHhocjsKLQotaWYgKHdpbmRvdy5YTUxI
dHRwUmVxdWVzdCkgewotICAgIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotfSBlbHNlIHsK
LSAgICB0cnkgewotICAgICAgICB4aHIgPSBuZXcgQWN0aXZlWE9iamVjdCgiTXN4bWwyLlhNTEhU
VFAiKTsKLSAgICB9IGNhdGNoIChleCkgewotICAgICAgICB4aHIgPSBuZXcgQWN0aXZlWE9iamVj
dCgiTWljcm9zb2Z0LlhNTEhUVFAiKTsKLSAgICB9Ci19Ci0KLXhoci5vbnJlYWR5c3RhdGVjaGFu
Z2UgPSBmdW5jdGlvbigpIHsKLSAgICB2YXIgclN0YXRlID0gdGhpcy5yZWFkeVN0YXRlOwotICAg
IC8vIFdlIGV4cGVjdCBhbiBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gZm9yIHJlYWR5U3Rh
dGUgPSAxIG9yIDIKLSAgICAvLyBhbmQgbm8gZXhjZXB0aW9uIGZvciByZWFkeVN0YXRlID0gMyBv
ciA0Ci0gICAgdHJ5IHsKLSAgICAgICAgdmFyIGhlYWRlciA9IHRoaXMuZ2V0UmVzcG9uc2VIZWFk
ZXIoIkNvbnRlbnQtVHlwZSIpOwotICAgICAgICBpZiAoclN0YXRlID09IDEgfHwgclN0YXRlID09
IDIpIHsKLSAgICAgICAgICAgIGxvZygiRkFJTEVEICggaGVhZGVyIDoiICsgaGVhZGVyICsgIiki
ICsgclN0YXRlKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGxvZygiUEFTU0VEICIg
KyByU3RhdGUpOwotICAgICAgICB9Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICBpZiAoclN0
YXRlID09IDEgfHwgclN0YXRlID09IDIpIHsKLSAgICAgICAgICAgIGxvZygiUEFTU0VEICgiICsg
ZS5tZXNzYWdlICsiICkgIiArIHJTdGF0ZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBsb2coIkZBSUxFRCAoRVhDRVBUSU9OIFRIUk9XTiAiICsgZS5tZXNzYWdlICsgIiApICIgKyBy
U3RhdGUpOwotICAgICAgICB9Ci0gICAgfQotfQotCi0vLyBUZXN0IGZvciByZWFkeVN0YXRlID0g
MAotdHJ5IHsKLSAgICB2YXIgaGVhZGVyID0geGhyLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50
LVR5cGUiKTsKLSAgICBsb2coIkZBSUxFRCAoIGhlYWRlciA6IiArIGhlYWRlciArICIpIiArIHho
ci5yZWFkeVN0YXRlKTsKLX0gY2F0Y2ggKGUpIHsKLSAgICBsb2coIlBBU1NFRCAoIiArIGUubWVz
c2FnZSArIiApICIgKyB4aHIucmVhZHlTdGF0ZSk7Ci19Ci0KLXhoci5vcGVuKCJHRVQiLCJyZXNv
dXJjZXMvMTI1MS5odG1sIiwgdHJ1ZSk7Ci14aHIuc2VuZChudWxsKTsKLTwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>