<?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>90968</bug_id>
          
          <creation_ts>2012-07-11 04:30:04 -0700</creation_ts>
          <short_desc>[NRWT] Pass --timeout to DRT/WTR if a test is marked as SLOW</short_desc>
          <delta_ts>2013-01-09 07:54:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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>NRWT</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>90970</dependson>
    
    <dependson>90966</dependson>
    
    <dependson>90969</dependson>
    
    <dependson>90971</dependson>
          <blocked>61932</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>galpeter</cc>
    
    <cc>gustavo</cc>
    
    <cc>jbadics</cc>
    
    <cc>kadam</cc>
    
    <cc>kkristof</cc>
    
    <cc>mario</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>peter+ews</cc>
    
    <cc>philn</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>666649</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-07-11 04:30:04 -0700</bug_when>
    <thetext>If a test is marked as SLOW, NRWT let it run for a long time, but 
DRT/WTR can kill it with notifyDone timeout (30 seconds by default)

We should pass the --timeout to DRT/WTR too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666654</commentid>
    <comment_count>1</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-07-11 04:38:13 -0700</bug_when>
    <thetext>It seems now only Qt port supports --timeout option. :-/ I don&apos;t know too much about other port&apos;s DRT, so I have no idea what will happen if we pass --timeout despite they don&apos;t support it. Should we implement --timeout for all port?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666663</commentid>
    <comment_count>2</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-07-11 04:47:05 -0700</bug_when>
    <thetext>One more problem: The SLOW modifier is a per test modifier, but --timeout is a per driver (DRT/WTR) option. I have no idea now, how can we solve this problem ... Any idea?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666938</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-07-11 12:09:38 -0700</bug_when>
    <thetext>the chromium port (in --test-shell mode) used to support a per-test timeout value that was passed in as another argument after the test url, not that that&apos;s particularly helpful.

It has been my plan/hope for some time to modify DRT/WTR to support per-test arguments.

However, in the mean time we use the DriverProxy class as a workaround for this and run one DRT per set of desired command line arguments. It would only be a slight modification to that class to include the timeout and run one DRT for normal tests and one for slow tests.

This doesn&apos;t scale very well, obviously, but it might do as a stopgap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717150</commentid>
    <comment_count>4</comment_count>
      <attachid>163359</attachid>
    <who name="János Badics">jbadics</who>
    <bug_when>2012-09-11 07:36:08 -0700</bug_when>
    <thetext>Created attachment 163359
draft patch

I have created a draft patch to resolve the issue on Qt port. There is a stub in DumpRenderTree.h for other platforms to implement. Now --timeout is passed to DRT, containing the number given in --time-out-ms or the default value (that is 5 times the default value if the current test is marked as SLOW in TestExpectations).

What is your opinion about the draft? Could it be a viable solution if polished a bit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717153</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-11 07:39:33 -0700</bug_when>
    <thetext>Attachment 163359 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Tools/DumpRenderTree/DumpRenderTree.h&apos;, u&apos;...&quot; exit_code: 1
Tools/DumpRenderTree/DumpRenderTree.h:75:  timeout_ms is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp:689:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp:689:  Missing space before {  [whitespace/braces] [5]
Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp:694:  One line control clauses should not use braces.  [whitespace/braces] [4]
Tools/DumpRenderTree/DumpRenderTreeCommon.cpp:72:  Missing space before {  [whitespace/braces] [5]
Tools/DumpRenderTree/DumpRenderTreeCommon.cpp:74:  Missing space before {  [whitespace/braces] [5]
Tools/DumpRenderTree/DumpRenderTreeCommon.cpp:81:  Else clause should never be on same line as else (use 2 lines)  [whitespace/newline] [4]
Total errors found: 7 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717162</commentid>
    <comment_count>6</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2012-09-11 07:52:08 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=163359&amp;action=review

&gt; Tools/DumpRenderTree/DumpRenderTreeCommon.cpp:76
&gt; +            std::string k = tokenizer.next();
&gt; +            result.timeout_ms = (atoi(k.c_str()));

What does the &apos;k&apos; mean? Also there is an extra () around the atoi. Hmmm... maybe we should check if there is a next token at all, like in the -p case.

&gt; Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp:729
&gt; +    DumpRenderTree::readTimeout(input);

Why is this required? In the readTimeout you&apos;ll parse the input again whit the parseInputLine method, like at the start of this method. Processing the &apos;command&apos; could be performed here or not? (maybe I&apos;m missing something?)

&gt; Tools/Scripts/webkitpy/layout_tests/port/driver.py:342
&gt; +        command += &quot;&apos;&quot; + self._port._options.time_out_ms

Accessing members marked private (_options) isn&apos;t really a good idea. Maybe there is a getter for it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717168</commentid>
    <comment_count>7</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2012-09-11 08:00:49 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=163359) [details]
&gt; draft patch
&gt; 
&gt; I have created a draft patch to resolve the issue on Qt port. There is a stub in DumpRenderTree.h for other platforms to implement. Now --timeout is passed to DRT, containing the number given in --time-out-ms or the default value (that is 5 times the default value if the current test is marked as SLOW in TestExpectations).
&gt; 
&gt; What is your opinion about the draft? Could it be a viable solution if polished a bit?

This&apos;ll always pass the --timeout every case, is this intended? Or there will be more work on top of this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717170</commentid>
    <comment_count>8</comment_count>
    <who name="János Badics">jbadics</who>
    <bug_when>2012-09-11 08:04:28 -0700</bug_when>
    <thetext>Thanks for the hints, I&apos;m on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718420</commentid>
    <comment_count>9</comment_count>
    <who name="János Badics">jbadics</who>
    <bug_when>2012-09-12 08:59:05 -0700</bug_when>
    <thetext>&gt; This&apos;ll always pass the --timeout every case, is this intended? Or there will be more work on top of this?

We can test if it makes some tests fail. I suppose it shouldn&apos;t, but thank you for drawing my attention. I will check it tomorrow. It wasn&apos;t really intended, it was just a starting point.

&gt; What does the &apos;k&apos; mean? Also there is an extra () around the atoi. Hmmm... maybe we should check if there is a next token at all, like in the -p case.

Sorry, I corrected it. At first I checked for another token, but now it is given every time by NRWT, so I skipped it. Do you think it would be a better idea to check for another token, considering better future use? 

&gt; Accessing members marked private (_options) isn&apos;t really a good idea. Maybe there is a getter for it?

I have corrected it. Now it uses get_option.

&gt; Why is this required? In the readTimeout you&apos;ll parse the input again whit the parseInputLine method, like at the start of this method. Processing the &apos;command&apos; could be performed here or not? (maybe I&apos;m missing something?)

It has also been corrected. parseInputLine is called only once now.
I also made some style corrections.

What is your opinion about the current state? Thank you for any help in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718421</commentid>
    <comment_count>10</comment_count>
      <attachid>163643</attachid>
    <who name="János Badics">jbadics</who>
    <bug_when>2012-09-12 08:59:48 -0700</bug_when>
    <thetext>Created attachment 163643
draft patch

Ohh, and this is the current patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718454</commentid>
    <comment_count>11</comment_count>
      <attachid>163643</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-12 09:28:34 -0700</bug_when>
    <thetext>Comment on attachment 163643
draft patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/driver.py:352
&gt; +        command += &quot;&apos;&quot; + self._port.get_option(&quot;time_out_ms&quot;)

Perhaps this should only be passed if we know that the driver supports this argument? What will other ports do if they see this?

Also, self._port.get_option(&apos;time_out_ms&apos;) will use the global timeout setting, not the per-test setting, meaning that you won&apos;t have two different values for normal tests and slow tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720714</commentid>
    <comment_count>12</comment_count>
      <attachid>164136</attachid>
    <who name="János Badics">jbadics</who>
    <bug_when>2012-09-14 07:05:55 -0700</bug_when>
    <thetext>Created attachment 164136
draft patch

Made modifications according to recommendations of Dirk Pranke.
Added a function to base.py to check whether the actual port&apos;s DRT supports per test timeout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720732</commentid>
    <comment_count>13</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2012-09-14 07:17:06 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=164136&amp;action=review

&gt; Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp:726
&gt; +    DumpRenderTree::readTimeout(command.timeout);

I think this name (readTimeout) is a bit misleading.

&gt; Tools/Scripts/webkitpy/layout_tests/port/driver.py:356
&gt; +            command += &quot;&apos;--timeout&quot;
&gt; +            command += &quot;&apos;&quot; + str(driver_input.timeout)

IMHO: this should be written like this: command += &quot;&apos;--timeout&apos;%d&quot; % driver_input.timeout</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720959</commentid>
    <comment_count>14</comment_count>
      <attachid>164136</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-14 11:09:45 -0700</bug_when>
    <thetext>Comment on attachment 164136
draft patch

looks fine w/ peter&apos;s comments addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726462</commentid>
    <comment_count>15</comment_count>
      <attachid>165331</attachid>
    <who name="János Badics">jbadics</who>
    <bug_when>2012-09-24 01:54:11 -0700</bug_when>
    <thetext>Created attachment 165331
draft patch

Made modifications suggested by Peter Gal.
But while correcting, I noticed that it only solves the pboblem with DRT; WTR still stops testing after 30 seconds, even though WebKitTestRunner/qt/TestControllerQt.cpp::platformRunUntil uses 60 seconds timeout in its while loop. The counter never reaches that 60000 because something stops the testing after 30 seconds. At the moment, I couldn&apos;t tell what causes the stop, but I&apos;m on it. Any help is appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726519</commentid>
    <comment_count>16</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2012-09-24 03:45:42 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Created an attachment (id=165331) [details]
&gt; draft patch
&gt; 
&gt; Made modifications suggested by Peter Gal.
&gt; But while correcting, I noticed that it only solves the pboblem with DRT; WTR still stops testing after 30 seconds, even though WebKitTestRunner/qt/TestControllerQt.cpp::platformRunUntil uses 60 seconds timeout in its while loop. The counter never reaches that 60000 because something stops the testing after 30 seconds. At the moment, I couldn&apos;t tell what causes the stop, but I&apos;m on it. Any help is appreciated.

I see you parse the --timeout in WTR, but where do you set the timeout in there?

Also this really needs a changelog :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726533</commentid>
    <comment_count>17</comment_count>
    <who name="János Badics">jbadics</who>
    <bug_when>2012-09-24 04:08:51 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; Created an attachment (id=165331) [details] [details]
&gt; &gt; draft patch
&gt; &gt; 
&gt; &gt; Made modifications suggested by Peter Gal.
&gt; &gt; But while correcting, I noticed that it only solves the pboblem with DRT; WTR still stops testing after 30 seconds, even though WebKitTestRunner/qt/TestControllerQt.cpp::platformRunUntil uses 60 seconds timeout in its while loop. The counter never reaches that 60000 because something stops the testing after 30 seconds. At the moment, I couldn&apos;t tell what causes the stop, but I&apos;m on it. Any help is appreciated.
&gt; 
&gt; I see you parse the --timeout in WTR, but where do you set the timeout in there?
&gt; 
&gt; Also this really needs a changelog :)

For the first step, I just would like to allow WTR to use the default 60 sec longTimeout - but it stops at 30 sec. Of course I would like to implement setting timeout later, but I can&apos;t while this problem is present.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739870</commentid>
    <comment_count>18</comment_count>
      <attachid>168204</attachid>
    <who name="János Badics">jbadics</who>
    <bug_when>2012-10-11 06:00:41 -0700</bug_when>
    <thetext>Created attachment 168204
proposed patch

I&apos;ve completed the previous patch. Now DRT and WTR use the exact timeout given by time-out-ms in NRWT. Timeout values can be passed to DRT/WTR by --timeout option. Any ideas/suggestions, maybe?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740183</commentid>
    <comment_count>19</comment_count>
      <attachid>168204</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-10-11 12:52:16 -0700</bug_when>
    <thetext>Comment on attachment 168204
proposed patch

python-side changes look fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759563</commentid>
    <comment_count>20</comment_count>
      <attachid>172558</attachid>
    <who name="János Badics">jbadics</who>
    <bug_when>2012-11-06 05:37:28 -0800</bug_when>
    <thetext>Created attachment 172558
proposed patch update

updated patch because last one became obsolete</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759598</commentid>
    <comment_count>21</comment_count>
      <attachid>172558</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-11-06 06:19:49 -0800</bug_when>
    <thetext>Comment on attachment 172558
proposed patch update

Attachment 172558 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14730231</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759601</commentid>
    <comment_count>22</comment_count>
      <attachid>172558</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-06 06:20:49 -0800</bug_when>
    <thetext>Comment on attachment 172558
proposed patch update

Attachment 172558 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14747408</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759603</commentid>
    <comment_count>23</comment_count>
      <attachid>172558</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-06 06:21:46 -0800</bug_when>
    <thetext>Comment on attachment 172558
proposed patch update

Attachment 172558 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14721986</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759605</commentid>
    <comment_count>24</comment_count>
      <attachid>172558</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-11-06 06:22:24 -0800</bug_when>
    <thetext>Comment on attachment 172558
proposed patch update

r- now based on build failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759609</commentid>
    <comment_count>25</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2012-11-06 06:25:18 -0800</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=172558&amp;action=review

&gt; Tools/DumpRenderTree/DumpRenderTree.h:70
&gt; +    TestCommand() : shouldDumpPixels(false), timeout(30000) { }

where is the timeout in the class?

&gt; Tools/DumpRenderTree/DumpRenderTreeCommon.cpp:68
&gt; +    result.pathOrURL = arg;

where does the &apos;arg&apos; comes from?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759618</commentid>
    <comment_count>26</comment_count>
    <who name="János Badics">jbadics</who>
    <bug_when>2012-11-06 06:38:23 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=172558&amp;action=review
&gt; 
&gt; where is the timeout in the class?
&gt; where does the &apos;arg&apos; comes from?

(In reply to comment #25)
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=172558&amp;action=review
&gt; 
&gt; &gt; Tools/DumpRenderTree/DumpRenderTree.h:70
&gt; &gt; +    TestCommand() : shouldDumpPixels(false), timeout(30000) { }
&gt; 
&gt; where is the timeout in the class?
&gt; 
&gt; &gt; Tools/DumpRenderTree/DumpRenderTreeCommon.cpp:68
&gt; &gt; +    result.pathOrURL = arg;
&gt; 
&gt; where does the &apos;arg&apos; comes from?

Sorry, I had to update manually and missed some code. Checked everything but build-webkit :). I will double-check and upload a correct update soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759730</commentid>
    <comment_count>27</comment_count>
      <attachid>172596</attachid>
    <who name="János Badics">jbadics</who>
    <bug_when>2012-11-06 08:27:12 -0800</bug_when>
    <thetext>Created attachment 172596
updated patch

Corrected updating of patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762849</commentid>
    <comment_count>28</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2012-11-09 04:58:55 -0800</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=172596&amp;action=review

&gt; Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp:696
&gt; +void DumpRenderTree::setArgTimeout(double timeout)
&gt; +{
&gt; +    if (timeout &gt; 0)
&gt; +        DumpRenderTree::setTimeout(timeout);
&gt; +}
&gt; +

Why do we need this at all? Couldn&apos;t be this in the processLine method? (Also a simple setTimout(timeout) call should be enough I think.)

&gt; Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp:730
&gt; +    DumpRenderTree::setArgTimeout(command.timeout);

no need for the &apos;DumpRenderTree::&apos; if I&apos;m correct. Also shouldn&apos;t this be before the if case? there is a return inside the else case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770455</commentid>
    <comment_count>29</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2012-11-19 01:09:41 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=172596&amp;action=review
&gt; 
&gt; &gt; Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp:696
&gt; &gt; +void DumpRenderTree::setArgTimeout(double timeout)
&gt; &gt; +{
&gt; &gt; +    if (timeout &gt; 0)
&gt; &gt; +        DumpRenderTree::setTimeout(timeout);
&gt; &gt; +}
&gt; &gt; +
&gt; 
&gt; Why do we need this at all? Couldn&apos;t be this in the processLine method? (Also a simple setTimout(timeout) call should be enough I think.)
&gt; 
&gt; &gt; Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp:730
&gt; &gt; +    DumpRenderTree::setArgTimeout(command.timeout);
&gt; 
&gt; no need for the &apos;DumpRenderTree::&apos; if I&apos;m correct. Also shouldn&apos;t this be before the if case? there is a return inside the else case.

any comment on these?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771806</commentid>
    <comment_count>30</comment_count>
    <who name="János Badics">jbadics</who>
    <bug_when>2012-11-20 06:17:42 -0800</bug_when>
    <thetext>(In reply to comment #29)
&gt; (In reply to comment #28)
&gt; 
&gt; any comment on these?

You&apos;re absolutely right. I will upload the corrected version in a jiffy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771808</commentid>
    <comment_count>31</comment_count>
      <attachid>175201</attachid>
    <who name="János Badics">jbadics</who>
    <bug_when>2012-11-20 06:29:30 -0800</bug_when>
    <thetext>Created attachment 175201
updated patch

Updated and corrected patch according to suggestions of Péter Gál.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771818</commentid>
    <comment_count>32</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2012-11-20 06:46:21 -0800</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=175201&amp;action=review

&gt; Tools/DumpRenderTree/DumpRenderTreeCommon.cpp:75
&gt; +            result.timeout = atoi(timeoutToken.c_str());

atoi return int here, but in the WRT atof is used. So should be use int or float/double. I see no reason to use float/double since int was used before and also who would give 3.5 (in ms) as a timeout value.

(I should&apos;ve seen this before)

&gt; Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp:724
&gt; +    setTimeout(command.timeout);

You removed the &apos;if (timeout &gt; 0)&apos; check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772547</commentid>
    <comment_count>33</comment_count>
      <attachid>175356</attachid>
    <who name="János Badics">jbadics</who>
    <bug_when>2012-11-21 00:25:59 -0800</bug_when>
    <thetext>Created attachment 175356
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772905</commentid>
    <comment_count>34</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2012-11-21 06:43:18 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; Created an attachment (id=175356) [details]
&gt; patch

I thinks this is ok now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780066</commentid>
    <comment_count>35</comment_count>
      <attachid>176956</attachid>
    <who name="János Badics">jbadics</who>
    <bug_when>2012-11-30 06:17:41 -0800</bug_when>
    <thetext>Created attachment 176956
patch

The latest patch has been outdated by http://trac.webkit.org/changeset/135496.
I have fixed the changes and added the ability to WTR to use timeout values higher than LongTimeout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799984</commentid>
    <comment_count>36</comment_count>
      <attachid>164136</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-04 00:42:25 -0800</bug_when>
    <thetext>Comment on attachment 164136
draft patch

Cleared Dirk Pranke&apos;s review+ from obsolete attachment 164136 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803330</commentid>
    <comment_count>37</comment_count>
      <attachid>176956</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-01-09 07:35:17 -0800</bug_when>
    <thetext>Comment on attachment 176956
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803344</commentid>
    <comment_count>38</comment_count>
      <attachid>176956</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-09 07:54:36 -0800</bug_when>
    <thetext>Comment on attachment 176956
patch

Clearing flags on attachment: 176956

Committed r139194: &lt;http://trac.webkit.org/changeset/139194&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803345</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-09 07:54:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163359</attachid>
            <date>2012-09-11 07:36:08 -0700</date>
            <delta_ts>2012-09-12 08:59:48 -0700</delta_ts>
            <desc>draft patch</desc>
            <filename>per_test_timeout_9.patch</filename>
            <type>text/plain</type>
            <size>4016</size>
            <attacher name="János Badics">jbadics</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oCmluZGV4IDRjNmE0NzIuLjRlZTAxZDIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaApAQCAtNjQsMTMgKzY0LDE1IEBA
IGV4dGVybiBSZWZQdHI8VGVzdFJ1bm5lcj4gZ1Rlc3RSdW5uZXI7CiAKIHZvaWQgZHVtcCgpOwog
dm9pZCBkaXNwbGF5V2ViVmlldygpOwordm9pZCByZWFkVGltZW91dCgpOwogCiBzdHJ1Y3QgVGVz
dENvbW1hbmQgewotICAgIFRlc3RDb21tYW5kKCkgOiBzaG91bGREdW1wUGl4ZWxzKGZhbHNlKSB7
IH0KKyAgICBUZXN0Q29tbWFuZCgpIDogc2hvdWxkRHVtcFBpeGVscyhmYWxzZSksIHRpbWVvdXRf
bXMoMzAwMDApIHsgfQogCiAgICAgc3RkOjpzdHJpbmcgcGF0aE9yVVJMOwogICAgIGJvb2wgc2hv
dWxkRHVtcFBpeGVsczsKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFBpeGVsSGFzaDsKKyAgICBp
bnQgdGltZW91dF9tczsKIH07CiAKIFRlc3RDb21tYW5kIHBhcnNlSW5wdXRMaW5lKGNvbnN0IHN0
ZDo6c3RyaW5nJik7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVy
VHJlZUNvbW1vbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNvbW1v
bi5jcHAKaW5kZXggNDhkODMyMi4uYjlkMjQ0NyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0R1bXBSZW5kZXJUcmVlQ29tbW9uLmNwcApAQCAtNjYsMTcgKzY2LDIxIEBAIFRlc3RDb21tYW5k
IHBhcnNlSW5wdXRMaW5lKGNvbnN0IHN0ZDo6c3RyaW5nJiBpbnB1dExpbmUpCiAgICAgaWYgKCF0
b2tlbml6ZXIuaGFzTmV4dCgpKQogICAgICAgICBkaWUoaW5wdXRMaW5lKTsKIAotICAgIHJlc3Vs
dC5wYXRoT3JVUkwgPSB0b2tlbml6ZXIubmV4dCgpOwotICAgIGlmICghdG9rZW5pemVyLmhhc05l
eHQoKSkKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLQogICAgIHN0ZDo6c3RyaW5nIGFyZyA9IHRv
a2VuaXplci5uZXh0KCk7Ci0gICAgaWYgKGFyZyAhPSBzdGQ6OnN0cmluZygiLXAiKSAmJiBhcmcg
IT0gc3RkOjpzdHJpbmcoIi0tcGl4ZWwtdGVzdCIpKQotICAgICAgICBkaWUoaW5wdXRMaW5lKTsK
LSAgICByZXN1bHQuc2hvdWxkRHVtcFBpeGVscyA9IHRydWU7CiAKLSAgICBpZiAodG9rZW5pemVy
Lmhhc05leHQoKSkKLSAgICAgICAgcmVzdWx0LmV4cGVjdGVkUGl4ZWxIYXNoID0gdG9rZW5pemVy
Lm5leHQoKTsKKyAgICByZXN1bHQucGF0aE9yVVJMID0gYXJnOworICAgIHdoaWxlICh0b2tlbml6
ZXIuaGFzTmV4dCgpKXsKKyAgICAgICAgYXJnID0gdG9rZW5pemVyLm5leHQoKTsKKyAgICAgICAg
aWYgKGFyZyA9PSBzdGQ6OnN0cmluZygiLS10aW1lb3V0IikpeworICAgICAgICAgICAgc3RkOjpz
dHJpbmcgayA9IHRva2VuaXplci5uZXh0KCk7CisgICAgICAgICAgICByZXN1bHQudGltZW91dF9t
cyA9IChhdG9pKGsuY19zdHIoKSkpOworICAgICAgICB9IGVsc2UgaWYgKGFyZyA9PSBzdGQ6OnN0
cmluZygiLXAiKSB8fCBhcmcgPT0gc3RkOjpzdHJpbmcoIi0tcGl4ZWwtdGVzdCIpKSB7CisgICAg
ICAgICAgICByZXN1bHQuc2hvdWxkRHVtcFBpeGVscyA9IHRydWU7CisgICAgICAgICAgICBpZiAo
dG9rZW5pemVyLmhhc05leHQoKSkKKyAgICAgICAgICAgICAgICByZXN1bHQuZXhwZWN0ZWRQaXhl
bEhhc2ggPSB0b2tlbml6ZXIubmV4dCgpOworICAgICAgICB9IGVsc2UgZGllKGlucHV0TGluZSk7
CisgICAgfQorCiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcAppbmRleCBkYjA5YWQ3Li41MGQ5N2Q5IDEwMDc1NQot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcApAQCAtNjg2LDYgKzY4
NiwxNCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlOjpsb2FkTmV4dFRlc3RJblN0YW5kQWxvbmVNb2Rl
KCkKICAgICBwcm9jZXNzTGluZShmaXJzdCk7CiB9CiAKK3ZvaWQgRHVtcFJlbmRlclRyZWU6OnJl
YWRUaW1lb3V0KGNvbnN0IFFTdHJpbmcgJmlucHV0KXsKKyAgICBUZXN0Q29tbWFuZCBjb21tYW5k
ID0gcGFyc2VJbnB1dExpbmUoc3RkOjpzdHJpbmcoaW5wdXQudG9MYXRpbjEoKS5jb25zdERhdGEo
KSkpOworICAgIGludCB0aW1lb3V0ID0gY29tbWFuZC50aW1lb3V0X21zOworICAgIGlmICh0aW1l
b3V0ID4gMCkgeworICAgICAgICBEdW1wUmVuZGVyVHJlZTo6c2V0VGltZW91dCh0aW1lb3V0KTsK
KyAgICB9Cit9CisKIHZvaWQgRHVtcFJlbmRlclRyZWU6OnByb2Nlc3NMaW5lKGNvbnN0IFFTdHJp
bmcgJmlucHV0KQogewogICAgIFRlc3RDb21tYW5kIGNvbW1hbmQgPSBwYXJzZUlucHV0TGluZShz
dGQ6OnN0cmluZyhpbnB1dC50b0xhdGluMSgpLmNvbnN0RGF0YSgpKSk7CkBAIC03MTgsNiArNzI2
LDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZTo6cHJvY2Vzc0xpbmUoY29uc3QgUVN0cmluZyAmaW5w
dXQpCiAKICAgICAgICAgb3BlbihRVXJsOjpmcm9tTG9jYWxGaWxlKGZpLmFic29sdXRlRmlsZVBh
dGgoKSkpOwogICAgIH0KKyAgICBEdW1wUmVuZGVyVHJlZTo6cmVhZFRpbWVvdXQoaW5wdXQpOwog
CiAgICAgZmZsdXNoKHN0ZG91dCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVu
ZGVyVHJlZVF0LmgKaW5kZXggNzEwZjE3My4uYzdlYzVkYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuaApAQCAtMTA0LDYgKzEwNCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFJlZGlyZWN0RXJyb3JGaWxlTmFtZShjb25zdCBRU3RyaW5nJiBmaWxlTmFtZSkg
eyBtX3JlZGlyZWN0RXJyb3JGaWxlTmFtZSA9IGZpbGVOYW1lOyB9CiAKICAgICB2b2lkIHNldFRp
bWVvdXQoaW50KTsKKyAgICB2b2lkIHJlYWRUaW1lb3V0KGNvbnN0IFFTdHJpbmcgJmlucHV0KTsK
ICAgICB2b2lkIHNldFNob3VsZFRpbWVvdXQoYm9vbCBmbGFnKTsKIAogcHVibGljIFFfU0xPVFM6
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Ry
aXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVy
LnB5CmluZGV4IGNjMjUxMTkuLmZmNjA5MmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5CkBAIC0zMzgsNiArMzM4LDggQEAgY2xh
c3MgRHJpdmVyKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCBub3QgZHJpdmVyX2lucHV0LmltYWdl
X2hhc2ggb3IgZHJpdmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdAogCiAgICAgICAgICMg
JyBpcyB0aGUgc2VwYXJhdG9yIGJldHdlZW4gYXJndW1lbnRzLgorICAgICAgICBjb21tYW5kICs9
ICInLS10aW1lb3V0IgorICAgICAgICBjb21tYW5kICs9ICInIiArIHNlbGYuX3BvcnQuX29wdGlv
bnMudGltZV9vdXRfbXMKICAgICAgICAgaWYgZHJpdmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxf
dGVzdDoKICAgICAgICAgICAgIGNvbW1hbmQgKz0gIictLXBpeGVsLXRlc3QiCiAgICAgICAgIGlm
IGRyaXZlcl9pbnB1dC5pbWFnZV9oYXNoOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163643</attachid>
            <date>2012-09-12 08:59:48 -0700</date>
            <delta_ts>2012-09-14 07:05:55 -0700</delta_ts>
            <desc>draft patch</desc>
            <filename>per_test_timeout_A.patch</filename>
            <type>text/plain</type>
            <size>3899</size>
            <attacher name="János Badics">jbadics</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oCmluZGV4IDRjNmE0NzIuLjUwYzg2YmEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaApAQCAtNjQsMTMgKzY0LDE1IEBA
IGV4dGVybiBSZWZQdHI8VGVzdFJ1bm5lcj4gZ1Rlc3RSdW5uZXI7CiAKIHZvaWQgZHVtcCgpOwog
dm9pZCBkaXNwbGF5V2ViVmlldygpOwordm9pZCByZWFkVGltZW91dCgpOwogCiBzdHJ1Y3QgVGVz
dENvbW1hbmQgewotICAgIFRlc3RDb21tYW5kKCkgOiBzaG91bGREdW1wUGl4ZWxzKGZhbHNlKSB7
IH0KKyAgICBUZXN0Q29tbWFuZCgpIDogc2hvdWxkRHVtcFBpeGVscyhmYWxzZSksIHRpbWVvdXQo
MzAwMDApIHsgfQogCiAgICAgc3RkOjpzdHJpbmcgcGF0aE9yVVJMOwogICAgIGJvb2wgc2hvdWxk
RHVtcFBpeGVsczsKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFBpeGVsSGFzaDsKKyAgICBpbnQg
dGltZW91dDsgLy8gaW4gbXMKIH07CiAKIFRlc3RDb21tYW5kIHBhcnNlSW5wdXRMaW5lKGNvbnN0
IHN0ZDo6c3RyaW5nJik7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVu
ZGVyVHJlZUNvbW1vbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNv
bW1vbi5jcHAKaW5kZXggNDhkODMyMi4uMjlkMmZhNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0R1bXBSZW5kZXJUcmVlQ29tbW9uLmNwcApAQCAtNjYsMTcgKzY2LDIyIEBAIFRlc3RDb21t
YW5kIHBhcnNlSW5wdXRMaW5lKGNvbnN0IHN0ZDo6c3RyaW5nJiBpbnB1dExpbmUpCiAgICAgaWYg
KCF0b2tlbml6ZXIuaGFzTmV4dCgpKQogICAgICAgICBkaWUoaW5wdXRMaW5lKTsKIAotICAgIHJl
c3VsdC5wYXRoT3JVUkwgPSB0b2tlbml6ZXIubmV4dCgpOwotICAgIGlmICghdG9rZW5pemVyLmhh
c05leHQoKSkKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLQogICAgIHN0ZDo6c3RyaW5nIGFyZyA9
IHRva2VuaXplci5uZXh0KCk7Ci0gICAgaWYgKGFyZyAhPSBzdGQ6OnN0cmluZygiLXAiKSAmJiBh
cmcgIT0gc3RkOjpzdHJpbmcoIi0tcGl4ZWwtdGVzdCIpKQotICAgICAgICBkaWUoaW5wdXRMaW5l
KTsKLSAgICByZXN1bHQuc2hvdWxkRHVtcFBpeGVscyA9IHRydWU7CiAKLSAgICBpZiAodG9rZW5p
emVyLmhhc05leHQoKSkKLSAgICAgICAgcmVzdWx0LmV4cGVjdGVkUGl4ZWxIYXNoID0gdG9rZW5p
emVyLm5leHQoKTsKKyAgICByZXN1bHQucGF0aE9yVVJMID0gYXJnOworICAgIHdoaWxlICh0b2tl
bml6ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgIGFyZyA9IHRva2VuaXplci5uZXh0KCk7CisgICAg
ICAgIGlmIChhcmcgPT0gc3RkOjpzdHJpbmcoIi0tdGltZW91dCIpKSB7CisgICAgICAgICAgICBz
dGQ6OnN0cmluZyB0aW1lb3V0VG9rZW4gPSB0b2tlbml6ZXIubmV4dCgpOworICAgICAgICAgICAg
cmVzdWx0LnRpbWVvdXQgPSBhdG9pKHRpbWVvdXRUb2tlbi5jX3N0cigpKTsKKyAgICAgICAgfSBl
bHNlIGlmIChhcmcgPT0gc3RkOjpzdHJpbmcoIi1wIikgfHwgYXJnID09IHN0ZDo6c3RyaW5nKCIt
LXBpeGVsLXRlc3QiKSkgeworICAgICAgICAgICAgcmVzdWx0LnNob3VsZER1bXBQaXhlbHMgPSB0
cnVlOworICAgICAgICAgICAgaWYgKHRva2VuaXplci5oYXNOZXh0KCkpCisgICAgICAgICAgICAg
ICAgcmVzdWx0LmV4cGVjdGVkUGl4ZWxIYXNoID0gdG9rZW5pemVyLm5leHQoKTsKKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICBkaWUoaW5wdXRMaW5lKTsKKyAgICB9CisKIAogICAgIHJldHVy
biByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVu
ZGVyVHJlZVF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQu
Y3BwCmluZGV4IGRiMDlhZDcuLjYzMTdhZjMgMTAwNzU1Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0R1bXBSZW5kZXJUcmVlUXQuY3BwCkBAIC02ODYsNiArNjg2LDEyIEBAIHZvaWQgRHVtcFJlbmRl
clRyZWU6OmxvYWROZXh0VGVzdEluU3RhbmRBbG9uZU1vZGUoKQogICAgIHByb2Nlc3NMaW5lKGZp
cnN0KTsKIH0KIAordm9pZCBEdW1wUmVuZGVyVHJlZTo6cmVhZFRpbWVvdXQoaW50IHRpbWUpCit7
CisgICAgaWYgKHRpbWUgPiAwKQorICAgICAgICBEdW1wUmVuZGVyVHJlZTo6c2V0VGltZW91dCh0
aW1lKTsKK30KKwogdm9pZCBEdW1wUmVuZGVyVHJlZTo6cHJvY2Vzc0xpbmUoY29uc3QgUVN0cmlu
ZyAmaW5wdXQpCiB7CiAgICAgVGVzdENvbW1hbmQgY29tbWFuZCA9IHBhcnNlSW5wdXRMaW5lKHN0
ZDo6c3RyaW5nKGlucHV0LnRvTGF0aW4xKCkuY29uc3REYXRhKCkpKTsKQEAgLTcxOCw2ICs3MjQs
NyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlOjpwcm9jZXNzTGluZShjb25zdCBRU3RyaW5nICZpbnB1
dCkKIAogICAgICAgICBvcGVuKFFVcmw6OmZyb21Mb2NhbEZpbGUoZmkuYWJzb2x1dGVGaWxlUGF0
aCgpKSk7CiAgICAgfQorICAgIER1bXBSZW5kZXJUcmVlOjpyZWFkVGltZW91dChjb21tYW5kLnRp
bWVvdXQpOwogCiAgICAgZmZsdXNoKHN0ZG91dCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9x
dC9EdW1wUmVuZGVyVHJlZVF0LmgKaW5kZXggNzEwZjE3My4uYzFjNGRmZSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuaApAQCAtMTA0LDYgKzEwNCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFJlZGlyZWN0RXJyb3JGaWxlTmFtZShjb25zdCBRU3RyaW5nJiBm
aWxlTmFtZSkgeyBtX3JlZGlyZWN0RXJyb3JGaWxlTmFtZSA9IGZpbGVOYW1lOyB9CiAKICAgICB2
b2lkIHNldFRpbWVvdXQoaW50KTsKKyAgICB2b2lkIHJlYWRUaW1lb3V0KGludCk7CiAgICAgdm9p
ZCBzZXRTaG91bGRUaW1lb3V0KGJvb2wgZmxhZyk7CiAKIHB1YmxpYyBRX1NMT1RTOgpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weQppbmRl
eCA3MTVmZTdjLi43YTVkNWNiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2RyaXZlci5weQpAQCAtMzQ4LDYgKzM0OCw4IEBAIGNsYXNzIERyaXZl
cihvYmplY3QpOgogICAgICAgICBhc3NlcnQgbm90IGRyaXZlcl9pbnB1dC5pbWFnZV9oYXNoIG9y
IGRyaXZlcl9pbnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QKIAogICAgICAgICAjICcgaXMgdGhl
IHNlcGFyYXRvciBiZXR3ZWVuIGFyZ3VtZW50cy4KKyAgICAgICAgY29tbWFuZCArPSAiJy0tdGlt
ZW91dCIKKyAgICAgICAgY29tbWFuZCArPSAiJyIgKyBzZWxmLl9wb3J0LmdldF9vcHRpb24oInRp
bWVfb3V0X21zIikKICAgICAgICAgaWYgZHJpdmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVz
dDoKICAgICAgICAgICAgIGNvbW1hbmQgKz0gIictLXBpeGVsLXRlc3QiCiAgICAgICAgIGlmIGRy
aXZlcl9pbnB1dC5pbWFnZV9oYXNoOgo=
</data>
<flag name="review"
          id="175164"
          type_id="1"
          status="-"
          setter="dpranke"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164136</attachid>
            <date>2012-09-14 07:05:55 -0700</date>
            <delta_ts>2013-01-04 00:42:25 -0800</delta_ts>
            <desc>draft patch</desc>
            <filename>per_test_timeout_E.patch</filename>
            <type>text/plain</type>
            <size>5033</size>
            <attacher name="János Badics">jbadics</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oCmluZGV4IDRjNmE0NzIuLjUwYzg2YmEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaApAQCAtNjQsMTMgKzY0LDE1IEBA
IGV4dGVybiBSZWZQdHI8VGVzdFJ1bm5lcj4gZ1Rlc3RSdW5uZXI7CiAKIHZvaWQgZHVtcCgpOwog
dm9pZCBkaXNwbGF5V2ViVmlldygpOwordm9pZCByZWFkVGltZW91dCgpOwogCiBzdHJ1Y3QgVGVz
dENvbW1hbmQgewotICAgIFRlc3RDb21tYW5kKCkgOiBzaG91bGREdW1wUGl4ZWxzKGZhbHNlKSB7
IH0KKyAgICBUZXN0Q29tbWFuZCgpIDogc2hvdWxkRHVtcFBpeGVscyhmYWxzZSksIHRpbWVvdXQo
MzAwMDApIHsgfQogCiAgICAgc3RkOjpzdHJpbmcgcGF0aE9yVVJMOwogICAgIGJvb2wgc2hvdWxk
RHVtcFBpeGVsczsKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFBpeGVsSGFzaDsKKyAgICBpbnQg
dGltZW91dDsgLy8gaW4gbXMKIH07CiAKIFRlc3RDb21tYW5kIHBhcnNlSW5wdXRMaW5lKGNvbnN0
IHN0ZDo6c3RyaW5nJik7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVu
ZGVyVHJlZUNvbW1vbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNv
bW1vbi5jcHAKaW5kZXggNDhkODMyMi4uMjlkMmZhNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0R1bXBSZW5kZXJUcmVlQ29tbW9uLmNwcApAQCAtNjYsMTcgKzY2LDIyIEBAIFRlc3RDb21t
YW5kIHBhcnNlSW5wdXRMaW5lKGNvbnN0IHN0ZDo6c3RyaW5nJiBpbnB1dExpbmUpCiAgICAgaWYg
KCF0b2tlbml6ZXIuaGFzTmV4dCgpKQogICAgICAgICBkaWUoaW5wdXRMaW5lKTsKIAotICAgIHJl
c3VsdC5wYXRoT3JVUkwgPSB0b2tlbml6ZXIubmV4dCgpOwotICAgIGlmICghdG9rZW5pemVyLmhh
c05leHQoKSkKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLQogICAgIHN0ZDo6c3RyaW5nIGFyZyA9
IHRva2VuaXplci5uZXh0KCk7Ci0gICAgaWYgKGFyZyAhPSBzdGQ6OnN0cmluZygiLXAiKSAmJiBh
cmcgIT0gc3RkOjpzdHJpbmcoIi0tcGl4ZWwtdGVzdCIpKQotICAgICAgICBkaWUoaW5wdXRMaW5l
KTsKLSAgICByZXN1bHQuc2hvdWxkRHVtcFBpeGVscyA9IHRydWU7CiAKLSAgICBpZiAodG9rZW5p
emVyLmhhc05leHQoKSkKLSAgICAgICAgcmVzdWx0LmV4cGVjdGVkUGl4ZWxIYXNoID0gdG9rZW5p
emVyLm5leHQoKTsKKyAgICByZXN1bHQucGF0aE9yVVJMID0gYXJnOworICAgIHdoaWxlICh0b2tl
bml6ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgIGFyZyA9IHRva2VuaXplci5uZXh0KCk7CisgICAg
ICAgIGlmIChhcmcgPT0gc3RkOjpzdHJpbmcoIi0tdGltZW91dCIpKSB7CisgICAgICAgICAgICBz
dGQ6OnN0cmluZyB0aW1lb3V0VG9rZW4gPSB0b2tlbml6ZXIubmV4dCgpOworICAgICAgICAgICAg
cmVzdWx0LnRpbWVvdXQgPSBhdG9pKHRpbWVvdXRUb2tlbi5jX3N0cigpKTsKKyAgICAgICAgfSBl
bHNlIGlmIChhcmcgPT0gc3RkOjpzdHJpbmcoIi1wIikgfHwgYXJnID09IHN0ZDo6c3RyaW5nKCIt
LXBpeGVsLXRlc3QiKSkgeworICAgICAgICAgICAgcmVzdWx0LnNob3VsZER1bXBQaXhlbHMgPSB0
cnVlOworICAgICAgICAgICAgaWYgKHRva2VuaXplci5oYXNOZXh0KCkpCisgICAgICAgICAgICAg
ICAgcmVzdWx0LmV4cGVjdGVkUGl4ZWxIYXNoID0gdG9rZW5pemVyLm5leHQoKTsKKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICBkaWUoaW5wdXRMaW5lKTsKKyAgICB9CisKIAogICAgIHJldHVy
biByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVu
ZGVyVHJlZVF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQu
Y3BwCmluZGV4IGJlOTg0ZTMuLjVmMGFhNjYgMTAwNzU1Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0R1bXBSZW5kZXJUcmVlUXQuY3BwCkBAIC02ODUsNiArNjg1LDEyIEBAIHZvaWQgRHVtcFJlbmRl
clRyZWU6OmxvYWROZXh0VGVzdEluU3RhbmRBbG9uZU1vZGUoKQogICAgIHByb2Nlc3NMaW5lKGZp
cnN0KTsKIH0KIAordm9pZCBEdW1wUmVuZGVyVHJlZTo6cmVhZFRpbWVvdXQoaW50IHRpbWUpCit7
CisgICAgaWYgKHRpbWUgPiAwKQorICAgICAgICBEdW1wUmVuZGVyVHJlZTo6c2V0VGltZW91dCh0
aW1lKTsKK30KKwogdm9pZCBEdW1wUmVuZGVyVHJlZTo6cHJvY2Vzc0xpbmUoY29uc3QgUVN0cmlu
ZyAmaW5wdXQpCiB7CiAgICAgVGVzdENvbW1hbmQgY29tbWFuZCA9IHBhcnNlSW5wdXRMaW5lKHN0
ZDo6c3RyaW5nKGlucHV0LnRvTGF0aW4xKCkuY29uc3REYXRhKCkpKTsKQEAgLTcxNyw2ICs3MjMs
NyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlOjpwcm9jZXNzTGluZShjb25zdCBRU3RyaW5nICZpbnB1
dCkKIAogICAgICAgICBvcGVuKFFVcmw6OmZyb21Mb2NhbEZpbGUoZmkuYWJzb2x1dGVGaWxlUGF0
aCgpKSk7CiAgICAgfQorICAgIER1bXBSZW5kZXJUcmVlOjpyZWFkVGltZW91dChjb21tYW5kLnRp
bWVvdXQpOwogCiAgICAgZmZsdXNoKHN0ZG91dCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9x
dC9EdW1wUmVuZGVyVHJlZVF0LmgKaW5kZXggNzEwZjE3My4uYzFjNGRmZSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuaApAQCAtMTA0LDYgKzEwNCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFJlZGlyZWN0RXJyb3JGaWxlTmFtZShjb25zdCBRU3RyaW5nJiBm
aWxlTmFtZSkgeyBtX3JlZGlyZWN0RXJyb3JGaWxlTmFtZSA9IGZpbGVOYW1lOyB9CiAKICAgICB2
b2lkIHNldFRpbWVvdXQoaW50KTsKKyAgICB2b2lkIHJlYWRUaW1lb3V0KGludCk7CiAgICAgdm9p
ZCBzZXRTaG91bGRUaW1lb3V0KGJvb2wgZmxhZyk7CiAKIHB1YmxpYyBRX1NMT1RTOgpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CmluZGV4IDg5
OTdhNWYuLmU3Y2RmNWQgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvYmFzZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Jhc2UucHkKQEAgLTE0OCw2ICsxNDgsOSBAQCBjbGFzcyBQb3J0KG9iamVjdCk6
CiAgICAgZGVmIGFkZGl0aW9uYWxfZHJ0X2ZsYWcoc2VsZik6CiAgICAgICAgIHJldHVybiBbXQog
CisgICAgZGVmIHN1cHBvcnRzX3Blcl90ZXN0X3RpbWVvdXQoc2VsZik6CisgICAgICAgIHJldHVy
biBGYWxzZQorCiAgICAgZGVmIGRlZmF1bHRfcGl4ZWxfdGVzdHMoc2VsZik6CiAgICAgICAgICMg
RklYTUU6IERpc2FibGUgdW50aWwgdGhleSBhcmUgcnVuIGJ5IGRlZmF1bHQgb24gYnVpbGQud2Vi
a2l0Lm9yZy4KICAgICAgICAgcmV0dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5CmluZGV4IDRiZjUzZDQuLjdlNTlkZjQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJp
dmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJp
dmVyLnB5CkBAIC0zNTEsNiArMzUxLDkgQEAgY2xhc3MgRHJpdmVyKG9iamVjdCk6CiAgICAgICAg
IGFzc2VydCBub3QgZHJpdmVyX2lucHV0LmltYWdlX2hhc2ggb3IgZHJpdmVyX2lucHV0LnNob3Vs
ZF9ydW5fcGl4ZWxfdGVzdAogCiAgICAgICAgICMgJyBpcyB0aGUgc2VwYXJhdG9yIGJldHdlZW4g
YXJndW1lbnRzLgorICAgICAgICBpZiBzZWxmLl9wb3J0LnN1cHBvcnRzX3Blcl90ZXN0X3RpbWVv
dXQoKToKKyAgICAgICAgICAgIGNvbW1hbmQgKz0gIictLXRpbWVvdXQiCisgICAgICAgICAgICBj
b21tYW5kICs9ICInIiArIHN0cihkcml2ZXJfaW5wdXQudGltZW91dCkKICAgICAgICAgaWYgZHJp
dmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdDoKICAgICAgICAgICAgIGNvbW1hbmQgKz0g
IictLXBpeGVsLXRlc3QiCiAgICAgICAgIGlmIGRyaXZlcl9pbnB1dC5pbWFnZV9oYXNoOgpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9xdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcXQucHkKaW5kZXggODI4
YTgwZC4uZTEwZWZhOSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9xdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3F0LnB5CkBAIC04MCw2ICs4MCw5IEBAIGNsYXNzIFF0UG9ydChQb3J0KToKICAgICAg
ICAgIyBUaGUgUXQgcG9ydCBidWlsZHMgRFJUIGFzIHBhcnQgb2YgdGhlIG1haW4gYnVpbGQgc3Rl
cAogICAgICAgICByZXR1cm4gVHJ1ZQogCisgICAgZGVmIHN1cHBvcnRzX3Blcl90ZXN0X3RpbWVv
dXQoc2VsZik6CisgICAgICAgIHJldHVybiBUcnVlCisKICAgICBkZWYgX3BhdGhfdG9fZHJpdmVy
KHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfcGF0aCgnYmluLyVzJyAlIHNlbGYu
ZHJpdmVyX25hbWUoKSkKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165331</attachid>
            <date>2012-09-24 01:54:11 -0700</date>
            <delta_ts>2012-10-11 06:00:41 -0700</delta_ts>
            <desc>draft patch</desc>
            <filename>per_test_timeout_G.patch</filename>
            <type>text/plain</type>
            <size>7055</size>
            <attacher name="János Badics">jbadics</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oCmluZGV4IDRjNmE0NzIuLjllNjZlNmQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaApAQCAtNjQsMTMgKzY0LDE1IEBA
IGV4dGVybiBSZWZQdHI8VGVzdFJ1bm5lcj4gZ1Rlc3RSdW5uZXI7CiAKIHZvaWQgZHVtcCgpOwog
dm9pZCBkaXNwbGF5V2ViVmlldygpOwordm9pZCBzZXRBcmdUaW1lb3V0KCk7CiAKIHN0cnVjdCBU
ZXN0Q29tbWFuZCB7Ci0gICAgVGVzdENvbW1hbmQoKSA6IHNob3VsZER1bXBQaXhlbHMoZmFsc2Up
IHsgfQorICAgIFRlc3RDb21tYW5kKCkgOiBzaG91bGREdW1wUGl4ZWxzKGZhbHNlKSwgdGltZW91
dCgzMDAwMCkgeyB9CiAKICAgICBzdGQ6OnN0cmluZyBwYXRoT3JVUkw7CiAgICAgYm9vbCBzaG91
bGREdW1wUGl4ZWxzOwogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkUGl4ZWxIYXNoOworICAgIGlu
dCB0aW1lb3V0OyAvLyBpbiBtcwogfTsKIAogVGVzdENvbW1hbmQgcGFyc2VJbnB1dExpbmUoY29u
c3Qgc3RkOjpzdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBS
ZW5kZXJUcmVlQ29tbW9uLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVl
Q29tbW9uLmNwcAppbmRleCA0OGQ4MzIyLi43YTlmOTU2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNvbW1vbi5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwCkBAIC02NiwxNyArNjYsMjEgQEAgVGVzdENv
bW1hbmQgcGFyc2VJbnB1dExpbmUoY29uc3Qgc3RkOjpzdHJpbmcmIGlucHV0TGluZSkKICAgICBp
ZiAoIXRva2VuaXplci5oYXNOZXh0KCkpCiAgICAgICAgIGRpZShpbnB1dExpbmUpOwogCi0gICAg
cmVzdWx0LnBhdGhPclVSTCA9IHRva2VuaXplci5uZXh0KCk7Ci0gICAgaWYgKCF0b2tlbml6ZXIu
aGFzTmV4dCgpKQotICAgICAgICByZXR1cm4gcmVzdWx0OwotCiAgICAgc3RkOjpzdHJpbmcgYXJn
ID0gdG9rZW5pemVyLm5leHQoKTsKLSAgICBpZiAoYXJnICE9IHN0ZDo6c3RyaW5nKCItcCIpICYm
IGFyZyAhPSBzdGQ6OnN0cmluZygiLS1waXhlbC10ZXN0IikpCi0gICAgICAgIGRpZShpbnB1dExp
bmUpOwotICAgIHJlc3VsdC5zaG91bGREdW1wUGl4ZWxzID0gdHJ1ZTsKIAotICAgIGlmICh0b2tl
bml6ZXIuaGFzTmV4dCgpKQotICAgICAgICByZXN1bHQuZXhwZWN0ZWRQaXhlbEhhc2ggPSB0b2tl
bml6ZXIubmV4dCgpOworICAgIHJlc3VsdC5wYXRoT3JVUkwgPSBhcmc7CisgICAgd2hpbGUgKHRv
a2VuaXplci5oYXNOZXh0KCkpIHsKKyAgICAgICAgYXJnID0gdG9rZW5pemVyLm5leHQoKTsKKyAg
ICAgICAgaWYgKGFyZyA9PSBzdGQ6OnN0cmluZygiLS10aW1lb3V0IikpIHsKKyAgICAgICAgICAg
IHN0ZDo6c3RyaW5nIHRpbWVvdXRUb2tlbiA9IHRva2VuaXplci5uZXh0KCk7CisgICAgICAgICAg
ICByZXN1bHQudGltZW91dCA9IGF0b2kodGltZW91dFRva2VuLmNfc3RyKCkpOworICAgICAgICB9
IGVsc2UgaWYgKGFyZyA9PSBzdGQ6OnN0cmluZygiLXAiKSB8fCBhcmcgPT0gc3RkOjpzdHJpbmco
Ii0tcGl4ZWwtdGVzdCIpKSB7CisgICAgICAgICAgICByZXN1bHQuc2hvdWxkRHVtcFBpeGVscyA9
IHRydWU7CisgICAgICAgICAgICBpZiAodG9rZW5pemVyLmhhc05leHQoKSkKKyAgICAgICAgICAg
ICAgICByZXN1bHQuZXhwZWN0ZWRQaXhlbEhhc2ggPSB0b2tlbml6ZXIubmV4dCgpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIGRpZShpbnB1dExpbmUpOworICAgIH0KIAogICAgIHJldHVy
biByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVu
ZGVyVHJlZVF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQu
Y3BwCmluZGV4IGJlOTg0ZTMuLmJjYWM3NzMgMTAwNzU1Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0R1bXBSZW5kZXJUcmVlUXQuY3BwCkBAIC02ODUsNiArNjg1LDEyIEBAIHZvaWQgRHVtcFJlbmRl
clRyZWU6OmxvYWROZXh0VGVzdEluU3RhbmRBbG9uZU1vZGUoKQogICAgIHByb2Nlc3NMaW5lKGZp
cnN0KTsKIH0KIAordm9pZCBEdW1wUmVuZGVyVHJlZTo6c2V0QXJnVGltZW91dChpbnQgdGltZSkK
K3sKKyAgICBpZiAodGltZSA+IDApCisgICAgICAgIER1bXBSZW5kZXJUcmVlOjpzZXRUaW1lb3V0
KHRpbWUpOworfQorCiB2b2lkIER1bXBSZW5kZXJUcmVlOjpwcm9jZXNzTGluZShjb25zdCBRU3Ry
aW5nICZpbnB1dCkKIHsKICAgICBUZXN0Q29tbWFuZCBjb21tYW5kID0gcGFyc2VJbnB1dExpbmUo
c3RkOjpzdHJpbmcoaW5wdXQudG9MYXRpbjEoKS5jb25zdERhdGEoKSkpOwpAQCAtNzE3LDYgKzcy
Myw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWU6OnByb2Nlc3NMaW5lKGNvbnN0IFFTdHJpbmcgJmlu
cHV0KQogCiAgICAgICAgIG9wZW4oUVVybDo6ZnJvbUxvY2FsRmlsZShmaS5hYnNvbHV0ZUZpbGVQ
YXRoKCkpKTsKICAgICB9CisgICAgRHVtcFJlbmRlclRyZWU6OnNldEFyZ1RpbWVvdXQoY29tbWFu
ZC50aW1lb3V0KTsKIAogICAgIGZmbHVzaChzdGRvdXQpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oCmluZGV4IDcxMGYxNzMuLmYzMGQ2MTYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmgKQEAgLTEwNCw2ICsxMDQsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSZWRpcmVjdEVycm9yRmlsZU5hbWUoY29uc3QgUVN0cmlu
ZyYgZmlsZU5hbWUpIHsgbV9yZWRpcmVjdEVycm9yRmlsZU5hbWUgPSBmaWxlTmFtZTsgfQogCiAg
ICAgdm9pZCBzZXRUaW1lb3V0KGludCk7CisgICAgdm9pZCBzZXRBcmdUaW1lb3V0KGludCk7CiAg
ICAgdm9pZCBzZXRTaG91bGRUaW1lb3V0KGJvb2wgZmxhZyk7CiAKIHB1YmxpYyBRX1NMT1RTOgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNl
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5Cmlu
ZGV4IDg5OTdhNWYuLmU3Y2RmNWQgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKQEAgLTE0OCw2ICsxNDgsOSBAQCBjbGFzcyBQb3J0KG9i
amVjdCk6CiAgICAgZGVmIGFkZGl0aW9uYWxfZHJ0X2ZsYWcoc2VsZik6CiAgICAgICAgIHJldHVy
biBbXQogCisgICAgZGVmIHN1cHBvcnRzX3Blcl90ZXN0X3RpbWVvdXQoc2VsZik6CisgICAgICAg
IHJldHVybiBGYWxzZQorCiAgICAgZGVmIGRlZmF1bHRfcGl4ZWxfdGVzdHMoc2VsZik6CiAgICAg
ICAgICMgRklYTUU6IERpc2FibGUgdW50aWwgdGhleSBhcmUgcnVuIGJ5IGRlZmF1bHQgb24gYnVp
bGQud2Via2l0Lm9yZy4KICAgICAgICAgcmV0dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5CmluZGV4IDRiZjUzZDQuLmQz
YTA3NGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvZHJpdmVyLnB5CkBAIC0xNDgsNyArMTQ4LDcgQEAgY2xhc3MgRHJpdmVyKG9iamVjdCk6CiAg
ICAgICAgIHRoZSBkcml2ZXIgaW4gYW4gaW5kZXRlcm1pbmF0ZSBzdGF0ZS4gVGhlIHVwcGVyIGxh
eWVycyBvZiB0aGUgcHJvZ3JhbQogICAgICAgICBhcmUgcmVzcG9uc2libGUgZm9yIGNsZWFuaW5n
IHVwIGFuZCBlbnN1cmluZyB0aGluZ3MgYXJlIG9rYXkuCiAKLSAgICAgICAgUmV0dXJucyBhIERy
aXZlck91cHV0IG9iamVjdC4KKyAgICAgICAgUmV0dXJucyBhIERyaXZlck91dHB1dCBvYmplY3Qu
CiAgICAgICAgICIiIgogICAgICAgICBzdGFydF90aW1lID0gdGltZS50aW1lKCkKICAgICAgICAg
c2VsZi5zdGFydChkcml2ZXJfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0LCBkcml2ZXJfaW5w
dXQuYXJncykKQEAgLTM1MSw2ICszNTEsOCBAQCBjbGFzcyBEcml2ZXIob2JqZWN0KToKICAgICAg
ICAgYXNzZXJ0IG5vdCBkcml2ZXJfaW5wdXQuaW1hZ2VfaGFzaCBvciBkcml2ZXJfaW5wdXQuc2hv
dWxkX3J1bl9waXhlbF90ZXN0CiAKICAgICAgICAgIyAnIGlzIHRoZSBzZXBhcmF0b3IgYmV0d2Vl
biBhcmd1bWVudHMuCisgICAgICAgIGlmIHNlbGYuX3BvcnQuc3VwcG9ydHNfcGVyX3Rlc3RfdGlt
ZW91dCgpOgorICAgICAgICAgICAgY29tbWFuZCArPSAiJy0tdGltZW91dCclcyIgJSBkcml2ZXJf
aW5wdXQudGltZW91dAogICAgICAgICBpZiBkcml2ZXJfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90
ZXN0OgogICAgICAgICAgICAgY29tbWFuZCArPSAiJy0tcGl4ZWwtdGVzdCIKICAgICAgICAgaWYg
ZHJpdmVyX2lucHV0LmltYWdlX2hhc2g6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3F0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9xdC5weQppbmRleCA4MjhhODBkLi5lMTBlZmE5IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3F0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcXQucHkKQEAgLTgwLDYgKzgwLDkg
QEAgY2xhc3MgUXRQb3J0KFBvcnQpOgogICAgICAgICAjIFRoZSBRdCBwb3J0IGJ1aWxkcyBEUlQg
YXMgcGFydCBvZiB0aGUgbWFpbiBidWlsZCBzdGVwCiAgICAgICAgIHJldHVybiBUcnVlCiAKKyAg
ICBkZWYgc3VwcG9ydHNfcGVyX3Rlc3RfdGltZW91dChzZWxmKToKKyAgICAgICAgcmV0dXJuIFRy
dWUKKwogICAgIGRlZiBfcGF0aF90b19kcml2ZXIoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxm
Ll9idWlsZF9wYXRoKCdiaW4vJXMnICUgc2VsZi5kcml2ZXJfbmFtZSgpKQogCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDNkYTM4ODAuLjUyYjQyZTkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC01MjYsMTEgKzUy
NiwxMiBAQCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVz
KCkKIH0KIAogc3RydWN0IFRlc3RDb21tYW5kIHsKLSAgICBUZXN0Q29tbWFuZCgpIDogc2hvdWxk
RHVtcFBpeGVscyhmYWxzZSkgeyB9CisgICAgVGVzdENvbW1hbmQoKSA6IHNob3VsZER1bXBQaXhl
bHMoZmFsc2UpLCB0aW1lb3V0KDMwMDAwKSB7IH0KIAogICAgIHN0ZDo6c3RyaW5nIHBhdGhPclVS
TDsKICAgICBib29sIHNob3VsZER1bXBQaXhlbHM7CiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRQ
aXhlbEhhc2g7CisgICAgaW50IHRpbWVvdXQ7CiB9OwogCiBjbGFzcyBDb21tYW5kVG9rZW5pemVy
IHsKQEAgLTU5MiwxNyArNTkzLDIxIEBAIFRlc3RDb21tYW5kIHBhcnNlSW5wdXRMaW5lKGNvbnN0
IHN0ZDo6c3RyaW5nJiBpbnB1dExpbmUpCiAgICAgaWYgKCF0b2tlbml6ZXIuaGFzTmV4dCgpKQog
ICAgICAgICBkaWUoaW5wdXRMaW5lKTsKIAotICAgIHJlc3VsdC5wYXRoT3JVUkwgPSB0b2tlbml6
ZXIubmV4dCgpOwotICAgIGlmICghdG9rZW5pemVyLmhhc05leHQoKSkKLSAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLQogICAgIHN0ZDo6c3RyaW5nIGFyZyA9IHRva2VuaXplci5uZXh0KCk7Ci0gICAg
aWYgKGFyZyAhPSBzdGQ6OnN0cmluZygiLXAiKSAmJiBhcmcgIT0gc3RkOjpzdHJpbmcoIi0tcGl4
ZWwtdGVzdCIpKQotICAgICAgICBkaWUoaW5wdXRMaW5lKTsKLSAgICByZXN1bHQuc2hvdWxkRHVt
cFBpeGVscyA9IHRydWU7CiAKLSAgICBpZiAodG9rZW5pemVyLmhhc05leHQoKSkKLSAgICAgICAg
cmVzdWx0LmV4cGVjdGVkUGl4ZWxIYXNoID0gdG9rZW5pemVyLm5leHQoKTsKKyAgICByZXN1bHQu
cGF0aE9yVVJMID0gYXJnOworICAgIHdoaWxlICh0b2tlbml6ZXIuaGFzTmV4dCgpKSB7CisgICAg
ICAgIGFyZyA9IHRva2VuaXplci5uZXh0KCk7CisgICAgICAgIGlmIChhcmcgPT0gc3RkOjpzdHJp
bmcoIi0tdGltZW91dCIpKSB7CisgICAgICAgICAgICBzdGQ6OnN0cmluZyB0aW1lb3V0VG9rZW4g
PSB0b2tlbml6ZXIubmV4dCgpOworICAgICAgICAgICAgcmVzdWx0LnRpbWVvdXQgPSBhdG9pKHRp
bWVvdXRUb2tlbi5jX3N0cigpKTsKKyAgICAgICAgfSBlbHNlIGlmIChhcmcgPT0gc3RkOjpzdHJp
bmcoIi1wIikgfHwgYXJnID09IHN0ZDo6c3RyaW5nKCItLXBpeGVsLXRlc3QiKSkgeworICAgICAg
ICAgICAgcmVzdWx0LnNob3VsZER1bXBQaXhlbHMgPSB0cnVlOworICAgICAgICAgICAgaWYgKHRv
a2VuaXplci5oYXNOZXh0KCkpCisgICAgICAgICAgICAgICAgcmVzdWx0LmV4cGVjdGVkUGl4ZWxI
YXNoID0gdG9rZW5pemVyLm5leHQoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBkaWUo
aW5wdXRMaW5lKTsKKyAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168204</attachid>
            <date>2012-10-11 06:00:41 -0700</date>
            <delta_ts>2012-11-06 05:37:28 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>per_test_timeout_J_changelog.patch</filename>
            <type>text/plain</type>
            <size>20185</size>
            <attacher name="János Badics">jbadics</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3Yzdj
MmIwLi4zM2NmMjExIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMTItMTAtMTEgIErDoW5vcyBCYWRpY3MgIDxqYmFk
aWNzQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBbUXRdW05SV1RdIFBhc3MgLS10aW1lb3V0
IHRvIERSVC9XVFIgaWYgYSB0ZXN0IGlzIG1hcmtlZCBhcyBTTE9XLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA5NjguCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgZnVuY3Rpb25hbGl0eSBpbiBE
UlQgYW5kIFdUUiB0byB1c2UgYW55IHRpbWVvdXQgdmFsdWUgd2hpbGUgcnVubmluZworICAgICAg
ICBzbG93IHRlc3RzIChldmVudHVhbGx5LCBhbnkgdGVzdCkuIE5vdyBOUldUIC0tdGltZS1vdXQt
bXMgZGV0ZXJtaW5lcyB0aGUKKyAgICAgICAgdGltZW91dCB2YWx1ZSBmb3IgdGhlIHRlc3QuIEFk
ZGVkIGEgZmxhZyBpbiBOUldUIChzdXBwb3J0c19wZXJfdGVzdF90aW1lb3V0KQorICAgICAgICB0
byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBjdXJyZW50IHBvcnQgc3VwcG9ydHMgc2V0dGluZyB0aW1l
b3V0IHZhbHVlCisgICAgICAgIHBlciB0ZXN0IChpdCdzIEZhbHNlIGJ5IGRlZmF1bHQ7IEkgZW5h
YmxlZCBpdCBvbmx5IG9uIFF0KS4KKyAgICAgICAgQWxzbyBjb3JyZWN0ZWQgYSB0eXBvIGluIGRy
aXZlci5weQorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaDoKKyAg
ICAgICAgKFRlc3RDb21tYW5kOjpUZXN0Q29tbWFuZCk6CisgICAgICAgIChUZXN0Q29tbWFuZCk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwOgorICAg
ICAgICAocGFyc2VJbnB1dExpbmUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBS
ZW5kZXJUcmVlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHVtcFJlbmRlclRyZWU6OnNldEFy
Z1RpbWVvdXQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEdW1wUmVu
ZGVyVHJlZTo6cHJvY2Vzc0xpbmUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBS
ZW5kZXJUcmVlUXQuaDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlKToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHk6CisgICAgICAgIChQb3J0LnN1
cHBvcnRzX3Blcl90ZXN0X3RpbWVvdXQpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5OgorICAgICAgICAoRHJpdmVyLnJ1bl90ZXN0KToKKyAg
ICAgICAgKERyaXZlci5fY29tbWFuZF9mcm9tX2RyaXZlcl9pbnB1dCk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9xdC5weToKKyAgICAgICAgKFF0UG9ydC5z
dXBwb3J0c19wZXJfdGVzdF90aW1lb3V0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRC
dW5kbGU6OkluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmRp
ZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVz
dGluZyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldEN1c3RvbVRpbWVvdXQp
OgorICAgICAgICAoV1RSKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RSdW5uZXIpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvVGVzdFJ1bm5lclF0LmNwcDoKKyAgICAgICAg
KFdUUjo6VGVzdFJ1bm5lcjo6aW5pdGlhbGl6ZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVySWZOZWVk
ZWQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6Z2V0Q3VzdG9tVGltZW91dCk6CisgICAgICAgIChXVFIpOgorICAg
ICAgICAoV1RSOjpUZXN0Q29tbWFuZDo6VGVzdENvbW1hbmQpOgorICAgICAgICAoVGVzdENvbW1h
bmQpOgorICAgICAgICAoV1RSOjpwYXJzZUlucHV0TGluZSk6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpydW5UZXN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmg6CisgICAgICAgIChUZXN0Q29udHJvbGxlcik6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9u
OjpUZXN0SW52b2NhdGlvbik6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpzZXRDdXN0
b21UaW1lb3V0KToKKyAgICAgICAgKFdUUik6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9u
OjppbnZva2UpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaDoK
KyAgICAgICAgKFRlc3RJbnZvY2F0aW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3F0
L1Rlc3RDb250cm9sbGVyUXQuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxh
dGZvcm1SdW5VbnRpbCk6CisKIDIwMTItMTAtMDggIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3Rv
cGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIEFkZCBzdXBwb3J0IGZv
ciB3aW5kb3cuY3JlYXRlIGluIE1pbmlicm93c2VyCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRl
clRyZWUuaAppbmRleCA0YzZhNDcyLi5hODZjNGI0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBS
ZW5kZXJUcmVlLmgKQEAgLTY0LDEzICs2NCwxNSBAQCBleHRlcm4gUmVmUHRyPFRlc3RSdW5uZXI+
IGdUZXN0UnVubmVyOwogCiB2b2lkIGR1bXAoKTsKIHZvaWQgZGlzcGxheVdlYlZpZXcoKTsKK3Zv
aWQgc2V0QXJnVGltZW91dCgpOwogCiBzdHJ1Y3QgVGVzdENvbW1hbmQgewotICAgIFRlc3RDb21t
YW5kKCkgOiBzaG91bGREdW1wUGl4ZWxzKGZhbHNlKSB7IH0KKyAgICBUZXN0Q29tbWFuZCgpIDog
c2hvdWxkRHVtcFBpeGVscyhmYWxzZSksIHRpbWVvdXQoMzAwMDApIHsgfQogCiAgICAgc3RkOjpz
dHJpbmcgcGF0aE9yVVJMOwogICAgIGJvb2wgc2hvdWxkRHVtcFBpeGVsczsKICAgICBzdGQ6OnN0
cmluZyBleHBlY3RlZFBpeGVsSGFzaDsKKyAgICBkb3VibGUgdGltZW91dDsgLy8gaW4gbXMKIH07
CiAKIFRlc3RDb21tYW5kIHBhcnNlSW5wdXRMaW5lKGNvbnN0IHN0ZDo6c3RyaW5nJik7CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNvbW1vbi5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNvbW1vbi5jcHAKaW5kZXggNDhkODMy
Mi4uN2E5Zjk1NiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWVDb21tb24uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlQ29t
bW9uLmNwcApAQCAtNjYsMTcgKzY2LDIxIEBAIFRlc3RDb21tYW5kIHBhcnNlSW5wdXRMaW5lKGNv
bnN0IHN0ZDo6c3RyaW5nJiBpbnB1dExpbmUpCiAgICAgaWYgKCF0b2tlbml6ZXIuaGFzTmV4dCgp
KQogICAgICAgICBkaWUoaW5wdXRMaW5lKTsKIAotICAgIHJlc3VsdC5wYXRoT3JVUkwgPSB0b2tl
bml6ZXIubmV4dCgpOwotICAgIGlmICghdG9rZW5pemVyLmhhc05leHQoKSkKLSAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLQogICAgIHN0ZDo6c3RyaW5nIGFyZyA9IHRva2VuaXplci5uZXh0KCk7Ci0g
ICAgaWYgKGFyZyAhPSBzdGQ6OnN0cmluZygiLXAiKSAmJiBhcmcgIT0gc3RkOjpzdHJpbmcoIi0t
cGl4ZWwtdGVzdCIpKQotICAgICAgICBkaWUoaW5wdXRMaW5lKTsKLSAgICByZXN1bHQuc2hvdWxk
RHVtcFBpeGVscyA9IHRydWU7CiAKLSAgICBpZiAodG9rZW5pemVyLmhhc05leHQoKSkKLSAgICAg
ICAgcmVzdWx0LmV4cGVjdGVkUGl4ZWxIYXNoID0gdG9rZW5pemVyLm5leHQoKTsKKyAgICByZXN1
bHQucGF0aE9yVVJMID0gYXJnOworICAgIHdoaWxlICh0b2tlbml6ZXIuaGFzTmV4dCgpKSB7Cisg
ICAgICAgIGFyZyA9IHRva2VuaXplci5uZXh0KCk7CisgICAgICAgIGlmIChhcmcgPT0gc3RkOjpz
dHJpbmcoIi0tdGltZW91dCIpKSB7CisgICAgICAgICAgICBzdGQ6OnN0cmluZyB0aW1lb3V0VG9r
ZW4gPSB0b2tlbml6ZXIubmV4dCgpOworICAgICAgICAgICAgcmVzdWx0LnRpbWVvdXQgPSBhdG9p
KHRpbWVvdXRUb2tlbi5jX3N0cigpKTsKKyAgICAgICAgfSBlbHNlIGlmIChhcmcgPT0gc3RkOjpz
dHJpbmcoIi1wIikgfHwgYXJnID09IHN0ZDo6c3RyaW5nKCItLXBpeGVsLXRlc3QiKSkgeworICAg
ICAgICAgICAgcmVzdWx0LnNob3VsZER1bXBQaXhlbHMgPSB0cnVlOworICAgICAgICAgICAgaWYg
KHRva2VuaXplci5oYXNOZXh0KCkpCisgICAgICAgICAgICAgICAgcmVzdWx0LmV4cGVjdGVkUGl4
ZWxIYXNoID0gdG9rZW5pemVyLm5leHQoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBk
aWUoaW5wdXRMaW5lKTsKKyAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcAppbmRleCA0N2EzYWVhLi4zMTM3
OTUzIDEwMDc1NQotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcApA
QCAtNjg4LDYgKzY4OCwxMiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlOjpsb2FkTmV4dFRlc3RJblN0
YW5kQWxvbmVNb2RlKCkKICAgICBwcm9jZXNzTGluZShmaXJzdCk7CiB9CiAKK3ZvaWQgRHVtcFJl
bmRlclRyZWU6OnNldEFyZ1RpbWVvdXQoZG91YmxlIHRpbWVvdXQpCit7CisgICAgaWYgKHRpbWVv
dXQgPiAwKQorICAgICAgICBEdW1wUmVuZGVyVHJlZTo6c2V0VGltZW91dCh0aW1lb3V0KTsKK30K
Kwogdm9pZCBEdW1wUmVuZGVyVHJlZTo6cHJvY2Vzc0xpbmUoY29uc3QgUVN0cmluZyAmaW5wdXQp
CiB7CiAgICAgVGVzdENvbW1hbmQgY29tbWFuZCA9IHBhcnNlSW5wdXRMaW5lKHN0ZDo6c3RyaW5n
KGlucHV0LnRvTGF0aW4xKCkuY29uc3REYXRhKCkpKTsKQEAgLTcyMCw2ICs3MjYsNyBAQCB2b2lk
IER1bXBSZW5kZXJUcmVlOjpwcm9jZXNzTGluZShjb25zdCBRU3RyaW5nICZpbnB1dCkKIAogICAg
ICAgICBvcGVuKFFVcmw6OmZyb21Mb2NhbEZpbGUoZmkuYWJzb2x1dGVGaWxlUGF0aCgpKSk7CiAg
ICAgfQorICAgIER1bXBSZW5kZXJUcmVlOjpzZXRBcmdUaW1lb3V0KGNvbW1hbmQudGltZW91dCk7
CiAKICAgICBmZmx1c2goc3Rkb3V0KTsKIH0KQEAgLTExMjgsNyArMTEzNSw3IEBAIFFMaXN0PFdl
YlBhZ2UqPiBEdW1wUmVuZGVyVHJlZTo6Z2V0QWxsUGFnZXMoKSBjb25zdAogICAgIHJldHVybiBw
YWdlczsKIH0KIAotdm9pZCBEdW1wUmVuZGVyVHJlZTo6c2V0VGltZW91dChpbnQgdGltZW91dCkK
K3ZvaWQgRHVtcFJlbmRlclRyZWU6OnNldFRpbWVvdXQoZG91YmxlIHRpbWVvdXQpCiB7CiAgICAg
bV9jb250cm9sbGVyLT5zZXRUaW1lb3V0KHRpbWVvdXQpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oCmluZGV4IDcxMGYxNzMuLjgyZDEyODMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmgKQEAgLTEwMyw3ICsxMDMsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSZWRpcmVjdE91dHB1dEZpbGVOYW1lKGNvbnN0IFFTdHJp
bmcmIGZpbGVOYW1lKSB7IG1fcmVkaXJlY3RPdXRwdXRGaWxlTmFtZSA9IGZpbGVOYW1lOyB9CiAg
ICAgdm9pZCBzZXRSZWRpcmVjdEVycm9yRmlsZU5hbWUoY29uc3QgUVN0cmluZyYgZmlsZU5hbWUp
IHsgbV9yZWRpcmVjdEVycm9yRmlsZU5hbWUgPSBmaWxlTmFtZTsgfQogCi0gICAgdm9pZCBzZXRU
aW1lb3V0KGludCk7CisgICAgdm9pZCBzZXRUaW1lb3V0KGRvdWJsZSk7CisgICAgdm9pZCBzZXRB
cmdUaW1lb3V0KGRvdWJsZSk7CiAgICAgdm9pZCBzZXRTaG91bGRUaW1lb3V0KGJvb2wgZmxhZyk7
CiAKIHB1YmxpYyBRX1NMT1RTOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9iYXNlLnB5CmluZGV4IDlmNjkxYWUuLmMyZjI3MzQgMTAwNzU1Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKQEAgLTE0OCw2ICsx
NDgsOSBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgZGVmIGFkZGl0aW9uYWxfZHJ0X2ZsYWco
c2VsZik6CiAgICAgICAgIHJldHVybiBbXQogCisgICAgZGVmIHN1cHBvcnRzX3Blcl90ZXN0X3Rp
bWVvdXQoc2VsZik6CisgICAgICAgIHJldHVybiBGYWxzZQorCiAgICAgZGVmIGRlZmF1bHRfcGl4
ZWxfdGVzdHMoc2VsZik6CiAgICAgICAgICMgRklYTUU6IERpc2FibGUgdW50aWwgdGhleSBhcmUg
cnVuIGJ5IGRlZmF1bHQgb24gYnVpbGQud2Via2l0Lm9yZy4KICAgICAgICAgcmV0dXJuIEZhbHNl
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Ry
aXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVy
LnB5CmluZGV4IDRiZjUzZDQuLmQzYTA3NGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5CkBAIC0xNDgsNyArMTQ4LDcgQEAgY2xh
c3MgRHJpdmVyKG9iamVjdCk6CiAgICAgICAgIHRoZSBkcml2ZXIgaW4gYW4gaW5kZXRlcm1pbmF0
ZSBzdGF0ZS4gVGhlIHVwcGVyIGxheWVycyBvZiB0aGUgcHJvZ3JhbQogICAgICAgICBhcmUgcmVz
cG9uc2libGUgZm9yIGNsZWFuaW5nIHVwIGFuZCBlbnN1cmluZyB0aGluZ3MgYXJlIG9rYXkuCiAK
LSAgICAgICAgUmV0dXJucyBhIERyaXZlck91cHV0IG9iamVjdC4KKyAgICAgICAgUmV0dXJucyBh
IERyaXZlck91dHB1dCBvYmplY3QuCiAgICAgICAgICIiIgogICAgICAgICBzdGFydF90aW1lID0g
dGltZS50aW1lKCkKICAgICAgICAgc2VsZi5zdGFydChkcml2ZXJfaW5wdXQuc2hvdWxkX3J1bl9w
aXhlbF90ZXN0LCBkcml2ZXJfaW5wdXQuYXJncykKQEAgLTM1MSw2ICszNTEsOCBAQCBjbGFzcyBE
cml2ZXIob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IG5vdCBkcml2ZXJfaW5wdXQuaW1hZ2VfaGFz
aCBvciBkcml2ZXJfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0CiAKICAgICAgICAgIyAnIGlz
IHRoZSBzZXBhcmF0b3IgYmV0d2VlbiBhcmd1bWVudHMuCisgICAgICAgIGlmIHNlbGYuX3BvcnQu
c3VwcG9ydHNfcGVyX3Rlc3RfdGltZW91dCgpOgorICAgICAgICAgICAgY29tbWFuZCArPSAiJy0t
dGltZW91dCclcyIgJSBkcml2ZXJfaW5wdXQudGltZW91dAogICAgICAgICBpZiBkcml2ZXJfaW5w
dXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0OgogICAgICAgICAgICAgY29tbWFuZCArPSAiJy0tcGl4
ZWwtdGVzdCIKICAgICAgICAgaWYgZHJpdmVyX2lucHV0LmltYWdlX2hhc2g6CmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3F0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9xdC5weQppbmRleCA0NmVlOTVkLi41
ZmRkMjkyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3F0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
cXQucHkKQEAgLTgwLDYgKzgwLDkgQEAgY2xhc3MgUXRQb3J0KFBvcnQpOgogICAgICAgICAjIFRo
ZSBRdCBwb3J0IGJ1aWxkcyBEUlQgYXMgcGFydCBvZiB0aGUgbWFpbiBidWlsZCBzdGVwCiAgICAg
ICAgIHJldHVybiBUcnVlCiAKKyAgICBkZWYgc3VwcG9ydHNfcGVyX3Rlc3RfdGltZW91dChzZWxm
KToKKyAgICAgICAgcmV0dXJuIFRydWUKKwogICAgIGRlZiBfcGF0aF90b19kcml2ZXIoc2VsZik6
CiAgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9wYXRoKCdiaW4vJXMnICUgc2VsZi5kcml2ZXJf
bmFtZSgpKQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IGViYTBkZjc5Li5lMjhjNzQ5IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmNwcApAQCAtNTQsNiArNTQsNyBAQCBJbmplY3RlZEJ1bmRsZTo6SW5qZWN0ZWRCdW5k
bGUoKQogICAgICwgbV9zdGF0ZShJZGxlKQogICAgICwgbV9kdW1wUGl4ZWxzKGZhbHNlKQogICAg
ICwgbV91c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcih0cnVlKQorICAgICwgbV90aW1lb3V0KDAp
CiB7CiB9CiAKQEAgLTE1MCw2ICsxNTEsOSBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpkaWRSZWNl
aXZlTWVzc2FnZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZwogICAg
ICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gdXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXJL
ZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlVzZVdhaXRUb0R1bXBX
YXRjaGRvZ1RpbWVyIikpOwogICAgICAgICBtX3VzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyID0g
V0tCb29sZWFuR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihXS0RpY3Rpb25hcnlH
ZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgdXNlV2FpdFRvRHVtcFdhdGNoZG9n
VGltZXJLZXkuZ2V0KCkpKSk7CiAKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHRp
bWVvdXRLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRpbWVvdXQi
KSk7CisgICAgICAgIG1fdGltZW91dCA9IFdLRG91YmxlR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tE
b3VibGVSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5
LCB0aW1lb3V0S2V5LmdldCgpKSkpOworCiAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVm
PiBhY2tNZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygi
QWNrIikpOwogICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gYWNrTWVzc2FnZUJvZHko
QWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkJlZ2luVGVzdCIpKTsKICAg
ICAgICAgV0tCdW5kbGVQb3N0TWVzc2FnZShtX2J1bmRsZSwgYWNrTWVzc2FnZU5hbWUuZ2V0KCks
IGFja01lc3NhZ2VCb2R5LmdldCgpKTsKQEAgLTI1Nyw2ICsyNjEsOCBAQCB2b2lkIEluamVjdGVk
QnVuZGxlOjpiZWdpblRlc3RpbmcoV0tEaWN0aW9uYXJ5UmVmIHNldHRpbmdzKQogICAgIG1fdGVz
dFJ1bm5lci0+c2V0QWNjZXB0c0VkaXRpbmcodHJ1ZSk7CiAgICAgbV90ZXN0UnVubmVyLT5zZXRU
YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHModHJ1ZSk7CiAKKyAgICBtX3Rlc3RSdW5uZXItPnNl
dEN1c3RvbVRpbWVvdXQobV90aW1lb3V0KTsKKwogICAgIHBhZ2UoKS0+cHJlcGFyZSgpOwogCiAg
ICAgV0tCdW5kbGVDbGVhckFsbERhdGFiYXNlcyhtX2J1bmRsZSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmggYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKaW5kZXgg
NDRiYmNjMS4uNmQwOTllNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtMTQxLDYgKzE0MSw3IEBAIHByaXZh
dGU6CiAKICAgICBib29sIG1fZHVtcFBpeGVsczsKICAgICBib29sIG1fdXNlV2FpdFRvRHVtcFdh
dGNoZG9nVGltZXI7CisgICAgZG91YmxlIG1fdGltZW91dDsKIAogICAgIFdLUmV0YWluUHRyPFdL
SW1hZ2VSZWY+IG1fcGl4ZWxSZXN1bHQ7CiAgICAgV0tSZXRhaW5QdHI8V0tBcnJheVJlZj4gbV9y
ZXBhaW50UmVjdHM7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBkY2ExNmYyLi4zYjAxMjg5IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAg
LTE2Myw2ICsxNjMsMTEgQEAgdm9pZCBUZXN0UnVubmVyOjpub3RpZnlEb25lKCkKICAgICBtX3dh
aXRUb0R1bXAgPSBmYWxzZTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXRDdXN0b21UaW1lb3V0
KGRvdWJsZSB0aW1lb3V0KQoreworICAgIG1fdGltZW91dCA9IHRpbWVvdXQ7Cit9CisKIHVuc2ln
bmVkIFRlc3RSdW5uZXI6Om51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0CiB7CiAgICAg
Ly8gRklYTUU6IElzIGl0IE9LIHRoaXMgd29ya3Mgb25seSBmb3IgdGhlIG1haW4gZnJhbWU/CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
CmluZGV4IGMzZmFiYTcuLjhkOTNmMTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0yNjIsNiArMjYyLDggQEAgcHVibGlj
OgogCiAgICAgYm9vbCBjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcoKTsKIAorICAgIHZvaWQgc2V0
Q3VzdG9tVGltZW91dChkb3VibGUgZHVyYXRpb24pOworCiBwcml2YXRlOgogICAgIHN0YXRpYyBj
b25zdCBkb3VibGUgd2FpdFRvRHVtcFdhdGNoZG9nVGltZXJJbnRlcnZhbDsKIApAQCAtMzA0LDYg
KzMwNiw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2dsb2JhbEZsYWc7CiAgICAgYm9vbCBtX2N1
c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcjsKIAorICAgIGRvdWJsZSBtX3RpbWVvdXQ7CisKICAgICBi
b29sIG1fdXNlclN0eWxlU2hlZXRFbmFibGVkOwogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVm
PiBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb247CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvVGVzdFJ1bm5lclF0LmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvVGVzdFJ1bm5lclF0LmNwcAppbmRleCBmNWQx
NDliLi43MmEwNDU0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9xdC9UZXN0UnVubmVyUXQuY3BwCkBAIC03NiwxMyArNzYsMTggQEAgdm9p
ZCBUZXN0UnVubmVyOjppbnZhbGlkYXRlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIoKQogCiB2b2lk
IFRlc3RSdW5uZXI6OmluaXRpYWxpemVXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcklmTmVlZGVkKCkK
IHsKKyAgICBkb3VibGUgdGltZXJJbnRlcnZhbDsKICAgICBpZiAocWdldGVudigiUVRfV0VCS0lU
Ml9ERUJVRyIpID09ICIxIikKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fd2FpdFRvRHVt
cFdhdGNoZG9nVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgcmV0dXJuOworICAgIGlmIChtX3Rp
bWVvdXQgPiAwKQorICAgICAgICB0aW1lckludGVydmFsID0gbV90aW1lb3V0OworICAgIGVsc2UK
KyAgICAgICAgdGltZXJJbnRlcnZhbCA9IHdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVySW50ZXJ2YWwg
KiAxMDAwOwogCi0gICAgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5zdGFydCh3YWl0VG9EdW1w
V2F0Y2hkb2dUaW1lckludGVydmFsICogMTAwMCk7CisgICAgbV93YWl0VG9EdW1wV2F0Y2hkb2dU
aW1lci5zdGFydCh0aW1lckludGVydmFsKTsKIH0KIAogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IFRlc3RSdW5uZXI6OnBhdGhUb0xvY2FsUmVzb3VyY2UoSlNTdHJpbmdSZWYgdXJsKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA0MmI4MTJlLi40YzFjYjk5
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtODgsNiAr
ODgsNyBAQCBUZXN0Q29udHJvbGxlcjo6VGVzdENvbnRyb2xsZXIoaW50IGFyZ2MsIGNvbnN0IGNo
YXIqIGFyZ3ZbXSkKICAgICAsIG1fbm9UaW1lb3V0KGRlZmF1bHROb1RpbWVvdXQpCiAgICAgLCBt
X3VzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKHRydWUpCiAgICAgLCBtX2ZvcmNlTm9UaW1lb3V0
KGZhbHNlKQorICAgICwgbV90aW1lb3V0KDApCiAgICAgLCBtX2RpZFByaW50V2ViUHJvY2Vzc0Ny
YXNoZWRNZXNzYWdlKGZhbHNlKQogICAgICwgbV9zaG91bGRFeGl0V2hlbldlYlByb2Nlc3NDcmFz
aGVzKHRydWUpCiAgICAgLCBtX2JlZm9yZVVubG9hZFJldHVyblZhbHVlKHRydWUpCkBAIC0xNjUs
NiArMTY2LDExIEBAIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXCiAgICAgVGVzdENvbnRyb2xsZXI6
OnNoYXJlZCgpLmhhbmRsZUdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QocGVybWlzc2lvblJl
cXVlc3QpOwogfQogCitkb3VibGUgVGVzdENvbnRyb2xsZXI6OmdldEN1c3RvbVRpbWVvdXQoKQor
eworICAgIHJldHVybiBtX3RpbWVvdXQ7Cit9CisKIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6
Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBXS1VSTFJlcXVlc3RSZWYsIFdLRGlj
dGlvbmFyeVJlZiwgV0tFdmVudE1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uLCBjb25zdCB2
b2lkKikKIHsKICAgICBQbGF0Zm9ybVdlYlZpZXcqIHZpZXcgPSBuZXcgUGxhdGZvcm1XZWJWaWV3
KFdLUGFnZUdldENvbnRleHQob2xkUGFnZSksIFdLUGFnZUdldFBhZ2VHcm91cChvbGRQYWdlKSk7
CkBAIC01MjQsMTEgKzUzMCwxMiBAQCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9D
b25zaXN0ZW50VmFsdWVzKCkKIH0KIAogc3RydWN0IFRlc3RDb21tYW5kIHsKLSAgICBUZXN0Q29t
bWFuZCgpIDogc2hvdWxkRHVtcFBpeGVscyhmYWxzZSkgeyB9CisgICAgVGVzdENvbW1hbmQoKSA6
IHNob3VsZER1bXBQaXhlbHMoZmFsc2UpLCB0aW1lb3V0KDApIHsgfQogCiAgICAgc3RkOjpzdHJp
bmcgcGF0aE9yVVJMOwogICAgIGJvb2wgc2hvdWxkRHVtcFBpeGVsczsKICAgICBzdGQ6OnN0cmlu
ZyBleHBlY3RlZFBpeGVsSGFzaDsKKyAgICBkb3VibGUgdGltZW91dDsKIH07CiAKIGNsYXNzIENv
bW1hbmRUb2tlbml6ZXIgewpAQCAtNTkwLDE3ICs1OTcsMjEgQEAgVGVzdENvbW1hbmQgcGFyc2VJ
bnB1dExpbmUoY29uc3Qgc3RkOjpzdHJpbmcmIGlucHV0TGluZSkKICAgICBpZiAoIXRva2VuaXpl
ci5oYXNOZXh0KCkpCiAgICAgICAgIGRpZShpbnB1dExpbmUpOwogCi0gICAgcmVzdWx0LnBhdGhP
clVSTCA9IHRva2VuaXplci5uZXh0KCk7Ci0gICAgaWYgKCF0b2tlbml6ZXIuaGFzTmV4dCgpKQot
ICAgICAgICByZXR1cm4gcmVzdWx0OwotCiAgICAgc3RkOjpzdHJpbmcgYXJnID0gdG9rZW5pemVy
Lm5leHQoKTsKLSAgICBpZiAoYXJnICE9IHN0ZDo6c3RyaW5nKCItcCIpICYmIGFyZyAhPSBzdGQ6
OnN0cmluZygiLS1waXhlbC10ZXN0IikpCi0gICAgICAgIGRpZShpbnB1dExpbmUpOwotICAgIHJl
c3VsdC5zaG91bGREdW1wUGl4ZWxzID0gdHJ1ZTsKIAotICAgIGlmICh0b2tlbml6ZXIuaGFzTmV4
dCgpKQotICAgICAgICByZXN1bHQuZXhwZWN0ZWRQaXhlbEhhc2ggPSB0b2tlbml6ZXIubmV4dCgp
OworICAgIHJlc3VsdC5wYXRoT3JVUkwgPSBhcmc7CisgICAgd2hpbGUgKHRva2VuaXplci5oYXNO
ZXh0KCkpIHsKKyAgICAgICAgYXJnID0gdG9rZW5pemVyLm5leHQoKTsKKyAgICAgICAgaWYgKGFy
ZyA9PSBzdGQ6OnN0cmluZygiLS10aW1lb3V0IikpIHsKKyAgICAgICAgICAgIHN0ZDo6c3RyaW5n
IHRpbWVvdXRUb2tlbiA9IHRva2VuaXplci5uZXh0KCk7CisgICAgICAgICAgICByZXN1bHQudGlt
ZW91dCA9IGF0b2YodGltZW91dFRva2VuLmNfc3RyKCkpOworICAgICAgICB9IGVsc2UgaWYgKGFy
ZyA9PSBzdGQ6OnN0cmluZygiLXAiKSB8fCBhcmcgPT0gc3RkOjpzdHJpbmcoIi0tcGl4ZWwtdGVz
dCIpKSB7CisgICAgICAgICAgICByZXN1bHQuc2hvdWxkRHVtcFBpeGVscyA9IHRydWU7CisgICAg
ICAgICAgICBpZiAodG9rZW5pemVyLmhhc05leHQoKSkKKyAgICAgICAgICAgICAgICByZXN1bHQu
ZXhwZWN0ZWRQaXhlbEhhc2ggPSB0b2tlbml6ZXIubmV4dCgpOworICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgIGRpZShpbnB1dExpbmUpOworICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CiB9
CkBAIC02MTQsNiArNjI1LDggQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cnVuVGVzdChjb25zdCBj
aGFyKiBpbnB1dExpbmUpCiAgICAgbV9jdXJyZW50SW52b2NhdGlvbiA9IGFkb3B0UHRyKG5ldyBU
ZXN0SW52b2NhdGlvbihjb21tYW5kLnBhdGhPclVSTCkpOwogICAgIGlmIChjb21tYW5kLnNob3Vs
ZER1bXBQaXhlbHMpCiAgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPnNldElzUGl4ZWxUZXN0
KGNvbW1hbmQuZXhwZWN0ZWRQaXhlbEhhc2gpOworICAgIGlmIChjb21tYW5kLnRpbWVvdXQgPiAw
KQorICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5zZXRDdXN0b21UaW1lb3V0KGNvbW1hbmQu
dGltZW91dCk7CiAKICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5pbnZva2UoKTsKICAgICBtX2N1
cnJlbnRJbnZvY2F0aW9uLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmgKaW5kZXggZDcxMTFjNS4uNTgwOGIwNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuaApAQCAtNjEsNiArNjEsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCB1c2VXYWl0
VG9EdW1wV2F0Y2hkb2dUaW1lcigpIHsgcmV0dXJuIG1fdXNlV2FpdFRvRHVtcFdhdGNoZG9nVGlt
ZXI7IH0KICAgICB2b2lkIHJ1blVudGlsKGJvb2wmIGRvbmUsIFRpbWVvdXREdXJhdGlvbik7CiAg
ICAgdm9pZCBub3RpZnlEb25lKCk7CisKKyAgICBkb3VibGUgZ2V0Q3VzdG9tVGltZW91dCgpOwog
ICAgIAogICAgIGJvb2wgYmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUoKSBjb25zdCB7IHJldHVybiBt
X2JlZm9yZVVubG9hZFJldHVyblZhbHVlOyB9CiAgICAgdm9pZCBzZXRCZWZvcmVVbmxvYWRSZXR1
cm5WYWx1ZShib29sIHZhbHVlKSB7IG1fYmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUgPSB2YWx1ZTsg
fQpAQCAtMTQ4LDYgKzE1MCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3VzZVdhaXRUb0R1bXBX
YXRjaGRvZ1RpbWVyOwogICAgIGJvb2wgbV9mb3JjZU5vVGltZW91dDsKIAorICAgIGRvdWJsZSBt
X3RpbWVvdXQ7CisKICAgICBib29sIG1fZGlkUHJpbnRXZWJQcm9jZXNzQ3Jhc2hlZE1lc3NhZ2U7
CiAgICAgYm9vbCBtX3Nob3VsZEV4aXRXaGVuV2ViUHJvY2Vzc0NyYXNoZXM7CiAgICAgCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDE0YmE0ZDMuLmI5ZDZj
ZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xMDAs
NiArMTAwLDcgQEAgVGVzdEludm9jYXRpb246OlRlc3RJbnZvY2F0aW9uKGNvbnN0IHN0ZDo6c3Ry
aW5nJiBwYXRoT3JVUkwpCiAgICAgOiBtX3VybChBZG9wdFdLLCBjcmVhdGVXS1VSTChwYXRoT3JV
UkwuY19zdHIoKSkpCiAgICAgLCBtX3BhdGhPclVSTChwYXRoT3JVUkwpCiAgICAgLCBtX2R1bXBQ
aXhlbHMoZmFsc2UpCisgICAgLCBtX3RpbWVvdXQoMCkKICAgICAsIG1fZ290SW5pdGlhbFJlc3Bv
bnNlKGZhbHNlKQogICAgICwgbV9nb3RGaW5hbE1lc3NhZ2UoZmFsc2UpCiAgICAgLCBtX2dvdFJl
cGFpbnQoZmFsc2UpCkBAIC0xMTcsNiArMTE4LDExIEBAIHZvaWQgVGVzdEludm9jYXRpb246OnNl
dElzUGl4ZWxUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFzaCkKICAgICBt
X2V4cGVjdGVkUGl4ZWxIYXNoID0gZXhwZWN0ZWRQaXhlbEhhc2g7CiB9CiAKK3ZvaWQgVGVzdElu
dm9jYXRpb246OnNldEN1c3RvbVRpbWVvdXQoZG91YmxlIHRpbWVvdXQpCit7CisgICAgbV90aW1l
b3V0ID0gdGltZW91dDsKK30KKwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHczY1NWR1dpZHRoID0g
NDgwOwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHczY1NWR0hlaWdodCA9IDM2MDsKIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBub3JtYWxXaWR0aCA9IDgwMDsKQEAgLTE2Miw2ICsxNjgsMTAgQEAgdm9p
ZCBUZXN0SW52b2NhdGlvbjo6aW52b2tlKCkKICAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+
IHVzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyVmFsdWUgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0
ZShUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkudXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIoKSkp
OwogICAgIFdLRGljdGlvbmFyeUFkZEl0ZW0oYmVnaW5UZXN0TWVzc2FnZUJvZHkuZ2V0KCksIHVz
ZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyS2V5LmdldCgpLCB1c2VXYWl0VG9EdW1wV2F0Y2hkb2dU
aW1lclZhbHVlLmdldCgpKTsKIAorICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB0aW1lb3V0
S2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVGltZW91dCIpKTsK
KyAgICBXS1JldGFpblB0cjxXS0RvdWJsZVJlZj4gdGltZW91dFZhbHVlID0gYWRvcHRXSyhXS0Rv
dWJsZUNyZWF0ZShtX3RpbWVvdXQpKTsKKyAgICBXS0RpY3Rpb25hcnlBZGRJdGVtKGJlZ2luVGVz
dE1lc3NhZ2VCb2R5LmdldCgpLCB0aW1lb3V0S2V5LmdldCgpLCB0aW1lb3V0VmFsdWUuZ2V0KCkp
OworCiAgICAgV0tDb250ZXh0UG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKFRlc3RDb250cm9s
bGVyOjpzaGFyZWQoKS5jb250ZXh0KCksIG1lc3NhZ2VOYW1lLmdldCgpLCBiZWdpblRlc3RNZXNz
YWdlQm9keS5nZXQoKSk7CiAKICAgICBjb25zdCBjaGFyKiBlcnJvck1lc3NhZ2UgPSAwOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCmluZGV4IDQ5NjQxZTkuLjAzNDY3YzAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKQEAgLTQwLDYgKzQwLDgg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRJc1BpeGVsVGVzdChjb25zdCBzdGQ6OnN0cmluZyYg
ZXhwZWN0ZWRQaXhlbEhhc2gpOwogCisgICAgdm9pZCBzZXRDdXN0b21UaW1lb3V0KGRvdWJsZSBk
dXJhdGlvbik7CisKICAgICB2b2lkIGludm9rZSgpOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBt
ZXNzYWdlQm9keSk7CiAgICAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBkaWRSZWNlaXZlU3luY2hy
b25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBX
S1R5cGVSZWYgbWVzc2FnZUJvZHkpOwpAQCAtNTYsNiArNTgsOCBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9kdW1wUGl4ZWxzOwogICAgIHN0ZDo6c3RyaW5nIG1fZXhwZWN0ZWRQaXhlbEhhc2g7CiAK
KyAgICBkb3VibGUgbV90aW1lb3V0OworCiAgICAgLy8gSW52b2NhdGlvbiBzdGF0ZQogICAgIGJv
b2wgbV9nb3RJbml0aWFsUmVzcG9uc2U7CiAgICAgYm9vbCBtX2dvdEZpbmFsTWVzc2FnZTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvVGVzdENvbnRyb2xsZXJRdC5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1Rlc3RDb250cm9sbGVyUXQuY3BwCmluZGV4IDA0
ZGRiOGIuLmFkNzY4MDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvVGVz
dENvbnRyb2xsZXJRdC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9UZXN0Q29u
dHJvbGxlclF0LmNwcApAQCAtNjIsMTIgKzYyLDE0IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBs
YXRmb3JtUnVuVW50aWwoYm9vbCYgY29uZGl0aW9uLCBkb3VibGUgdGltZW91dCkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGludCB0aW1lb3V0SW5NU2VjcyA9IHRpbWVvdXQgKiAxMDAw
OworICAgIGRvdWJsZSB0aW1lb3V0SW5NU2VjcyA9IHRpbWVvdXQgKiAxMDAwOwogICAgIFFFbGFw
c2VkVGltZXIgdGltZXI7CiAgICAgdGltZXIuc3RhcnQoKTsKICAgICB3aGlsZSAoIWNvbmRpdGlv
bikgewotICAgICAgICBpZiAodGltZXIuZWxhcHNlZCgpID4gdGltZW91dEluTVNlY3MpCisgICAg
ICAgIGlmICh0aW1lci5lbGFwc2VkKCkgPiB0aW1lb3V0SW5NU2VjcykgeworICAgICAgICAgICAg
Y29uZGl0aW9uID0gIWNvbmRpdGlvbjsKICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQog
ICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjpwcm9jZXNzRXZlbnRzKFFFdmVudExvb3A6OkV4Y2x1
ZGVVc2VySW5wdXRFdmVudHMsIHRpbWVvdXRJbk1TZWNzIC0gdGltZXIuZWxhcHNlZCgpKTsKICAg
ICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172558</attachid>
            <date>2012-11-06 05:37:28 -0800</date>
            <delta_ts>2012-11-06 08:27:12 -0800</delta_ts>
            <desc>proposed patch update</desc>
            <filename>per_test_timeout_J_updated_changelog.patch</filename>
            <type>text/plain</type>
            <size>20335</size>
            <attacher name="János Badics">jbadics</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5MWUy
MzljLi40NTBhMzU1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMTItMTEtMDYgIErDoW5vcyBCYWRpY3MgIDxqYmFk
aWNzQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBbUXRdW05SV1RdIFBhc3MgLS10aW1lb3V0
IHRvIERSVC9XVFIgaWYgYSB0ZXN0IGlzIG1hcmtlZCBhcyBTTE9XLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA5NjguCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgZnVuY3Rpb25hbGl0eSBpbiBE
UlQgYW5kIFdUUiB0byB1c2UgYW55IHRpbWVvdXQgdmFsdWUgd2hpbGUgcnVubmluZworICAgICAg
ICBzbG93IHRlc3RzIChldmVudHVhbGx5LCBhbnkgdGVzdCkuIE5vdyBOUldUIC0tdGltZS1vdXQt
bXMgZGV0ZXJtaW5lcyB0aGUKKyAgICAgICAgdGltZW91dCB2YWx1ZSBmb3IgdGhlIHRlc3QuIEFk
ZGVkIGEgZmxhZyBpbiBOUldUIChzdXBwb3J0c19wZXJfdGVzdF90aW1lb3V0KQorICAgICAgICB0
byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBjdXJyZW50IHBvcnQgc3VwcG9ydHMgc2V0dGluZyB0aW1l
b3V0IHZhbHVlCisgICAgICAgIHBlciB0ZXN0IChpdCdzIEZhbHNlIGJ5IGRlZmF1bHQ7IEkgZW5h
YmxlZCBpdCBvbmx5IG9uIFF0KS4KKyAgICAgICAgQWxzbyBjb3JyZWN0ZWQgYSB0eXBvIGluIGRy
aXZlci5weQorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaDoKKyAg
ICAgICAgKFRlc3RDb21tYW5kOjpUZXN0Q29tbWFuZCk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwOgorICAgICAgICAocGFyc2VJbnB1dExpbmUpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RHVtcFJlbmRlclRyZWU6OnNldEFyZ1RpbWVvdXQpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEdW1wUmVuZGVyVHJlZTo6cHJvY2Vzc0xpbmUpOgor
ICAgICAgICAoV2ViQ29yZTo6RHVtcFJlbmRlclRyZWU6OnNldFRpbWVvdXQpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuaDoKKyAgICAgICAgKER1bXBSZW5k
ZXJUcmVlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jh
c2UucHk6CisgICAgICAgIChQb3J0LnN1cHBvcnRzX3Blcl90ZXN0X3RpbWVvdXQpOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5OgorICAgICAg
ICAoRHJpdmVyLnJ1bl90ZXN0KToKKyAgICAgICAgKERyaXZlci5fY29tbWFuZF9mcm9tX2RyaXZl
cl9pbnB1dCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9x
dC5weToKKyAgICAgICAgKFF0UG9ydC5zdXBwb3J0c19wZXJfdGVzdF90aW1lb3V0KToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoK
KyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OkluamVjdGVkQnVuZGxlKToKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdUUjo6
SW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVzdGluZyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RS
dW5uZXI6OnNldEN1c3RvbVRpbWVvdXQpOgorICAgICAgICAoV1RSKToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RS
dW5uZXIpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvVGVz
dFJ1bm5lclF0LmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6aW5pdGlhbGl6ZVdhaXRU
b0R1bXBXYXRjaGRvZ1RpbWVySWZOZWVkZWQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6VGVzdENv
bnRyb2xsZXIpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Z2V0Q3VzdG9tVGltZW91
dCk6CisgICAgICAgIChXVFIpOgorICAgICAgICAoV1RSOjpUZXN0Q29tbWFuZDo6VGVzdENvbW1h
bmQpOgorICAgICAgICAoVGVzdENvbW1hbmQpOgorICAgICAgICAoV1RSOjpwYXJzZUlucHV0TGlu
ZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpydW5UZXN0KToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChUZXN0Q29udHJvbGxl
cik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpUZXN0SW52b2NhdGlvbik6CisgICAgICAgIChXVFI6
OlRlc3RJbnZvY2F0aW9uOjpzZXRDdXN0b21UaW1lb3V0KToKKyAgICAgICAgKFdUUik6CisgICAg
ICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjppbnZva2UpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uaDoKKyAgICAgICAgKFRlc3RJbnZvY2F0aW9uKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL3F0L1Rlc3RDb250cm9sbGVyUXQuY3BwOgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRpbCk6CisKIDIwMTItMTEtMDYgIEp1
c3NpIEt1a2tvbmVuICA8anVzc2kua3Vra29uZW5AaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxd
W1dLMl0gTWluaWJyb3dzZXIgZm9yZ2V0cyBodHRwIHZhcmlhYmxlcyB3aGVuIHVybCBpbmNsdWRl
cyBhbXBlcnNhbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJU
cmVlLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oCmluZGV4IDRjNmE0
NzIuLjc2MjZhNGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJU
cmVlLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaApAQCAtNjQs
OSArNjQsMTAgQEAgZXh0ZXJuIFJlZlB0cjxUZXN0UnVubmVyPiBnVGVzdFJ1bm5lcjsKIAogdm9p
ZCBkdW1wKCk7CiB2b2lkIGRpc3BsYXlXZWJWaWV3KCk7Cit2b2lkIHNldEFyZ1RpbWVvdXQoKTsK
IAogc3RydWN0IFRlc3RDb21tYW5kIHsKLSAgICBUZXN0Q29tbWFuZCgpIDogc2hvdWxkRHVtcFBp
eGVscyhmYWxzZSkgeyB9CisgICAgVGVzdENvbW1hbmQoKSA6IHNob3VsZER1bXBQaXhlbHMoZmFs
c2UpLCB0aW1lb3V0KDMwMDAwKSB7IH0KIAogICAgIHN0ZDo6c3RyaW5nIHBhdGhPclVSTDsKICAg
ICBib29sIHNob3VsZER1bXBQaXhlbHM7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9EdW1wUmVuZGVyVHJlZUNvbW1vbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVu
ZGVyVHJlZUNvbW1vbi5jcHAKaW5kZXggNDhkODMyMi4uNzk5ZGRlZSAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlQ29tbW9uLmNwcApAQCAtNjUsMTggKzY1LDIwIEBA
IFRlc3RDb21tYW5kIHBhcnNlSW5wdXRMaW5lKGNvbnN0IHN0ZDo6c3RyaW5nJiBpbnB1dExpbmUp
CiAgICAgQ29tbWFuZFRva2VuaXplciB0b2tlbml6ZXIoaW5wdXRMaW5lKTsKICAgICBpZiAoIXRv
a2VuaXplci5oYXNOZXh0KCkpCiAgICAgICAgIGRpZShpbnB1dExpbmUpOworICAgIHJlc3VsdC5w
YXRoT3JVUkwgPSBhcmc7CiAKLSAgICByZXN1bHQucGF0aE9yVVJMID0gdG9rZW5pemVyLm5leHQo
KTsKLSAgICBpZiAoIXRva2VuaXplci5oYXNOZXh0KCkpCi0gICAgICAgIHJldHVybiByZXN1bHQ7
Ci0KLSAgICBzdGQ6OnN0cmluZyBhcmcgPSB0b2tlbml6ZXIubmV4dCgpOwotICAgIGlmIChhcmcg
IT0gc3RkOjpzdHJpbmcoIi1wIikgJiYgYXJnICE9IHN0ZDo6c3RyaW5nKCItLXBpeGVsLXRlc3Qi
KSkKLSAgICAgICAgZGllKGlucHV0TGluZSk7Ci0gICAgcmVzdWx0LnNob3VsZER1bXBQaXhlbHMg
PSB0cnVlOwotCi0gICAgaWYgKHRva2VuaXplci5oYXNOZXh0KCkpCi0gICAgICAgIHJlc3VsdC5l
eHBlY3RlZFBpeGVsSGFzaCA9IHRva2VuaXplci5uZXh0KCk7CisgICAgd2hpbGUgKHRva2VuaXpl
ci5oYXNOZXh0KCkpIHsKKyAgICAgICAgYXJnID0gdG9rZW5pemVyLm5leHQoKTsKKyAgICAgICAg
aWYgKGFyZyA9PSBzdGQ6OnN0cmluZygiLS10aW1lb3V0IikpIHsKKyAgICAgICAgICAgIHN0ZDo6
c3RyaW5nIHRpbWVvdXRUb2tlbiA9IHRva2VuaXplci5uZXh0KCk7CisgICAgICAgICAgICByZXN1
bHQudGltZW91dCA9IGF0b2kodGltZW91dFRva2VuLmNfc3RyKCkpOworICAgICAgICB9IGVsc2Ug
aWYgKGFyZyA9PSBzdGQ6OnN0cmluZygiLXAiKSB8fCBhcmcgPT0gc3RkOjpzdHJpbmcoIi0tcGl4
ZWwtdGVzdCIpKSB7CisgICAgICAgICAgICByZXN1bHQuc2hvdWxkRHVtcFBpeGVscyA9IHRydWU7
CisgICAgICAgICAgICBpZiAodG9rZW5pemVyLmhhc05leHQoKSkKKyAgICAgICAgICAgICAgICBy
ZXN1bHQuZXhwZWN0ZWRQaXhlbEhhc2ggPSB0b2tlbml6ZXIubmV4dCgpOworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIGRpZShpbnB1dExpbmUpOworICAgIH0KIAogICAgIHJldHVybiByZXN1
bHQ7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJl
ZVF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCmlu
ZGV4IGVhMTE0ZTYuLmFlYzkzM2QgMTAwNzU1Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0R1bXBSZW5kZXJUcmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBS
ZW5kZXJUcmVlUXQuY3BwCkBAIC02ODgsNiArNjg4LDEyIEBAIHZvaWQgRHVtcFJlbmRlclRyZWU6
OmxvYWROZXh0VGVzdEluU3RhbmRBbG9uZU1vZGUoKQogICAgIHByb2Nlc3NMaW5lKGZpcnN0KTsK
IH0KIAordm9pZCBEdW1wUmVuZGVyVHJlZTo6c2V0QXJnVGltZW91dChkb3VibGUgdGltZW91dCkK
K3sKKyAgICBpZiAodGltZW91dCA+IDApCisgICAgICAgIER1bXBSZW5kZXJUcmVlOjpzZXRUaW1l
b3V0KHRpbWVvdXQpOworfQorCiB2b2lkIER1bXBSZW5kZXJUcmVlOjpwcm9jZXNzTGluZShjb25z
dCBRU3RyaW5nICZpbnB1dCkKIHsKICAgICBUZXN0Q29tbWFuZCBjb21tYW5kID0gcGFyc2VJbnB1
dExpbmUoc3RkOjpzdHJpbmcoaW5wdXQudG9MYXRpbjEoKS5jb25zdERhdGEoKSkpOwpAQCAtNzIx
LDYgKzcyNyw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWU6OnByb2Nlc3NMaW5lKGNvbnN0IFFTdHJp
bmcgJmlucHV0KQogICAgICAgICBvcGVuKFFVcmw6OmZyb21Mb2NhbEZpbGUoZmkuYWJzb2x1dGVG
aWxlUGF0aCgpKSk7CiAgICAgfQogCisgICAgRHVtcFJlbmRlclRyZWU6OnNldEFyZ1RpbWVvdXQo
Y29tbWFuZC50aW1lb3V0KTsKICAgICBmZmx1c2goc3Rkb3V0KTsKIH0KIApAQCAtMTE0NSw3ICsx
MTUyLDcgQEAgUUxpc3Q8V2ViUGFnZSo+IER1bXBSZW5kZXJUcmVlOjpnZXRBbGxQYWdlcygpIGNv
bnN0CiAgICAgcmV0dXJuIHBhZ2VzOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlOjpzZXRUaW1l
b3V0KGludCB0aW1lb3V0KQordm9pZCBEdW1wUmVuZGVyVHJlZTo6c2V0VGltZW91dChkb3VibGUg
dGltZW91dCkKIHsKICAgICBtX2NvbnRyb2xsZXItPnNldFRpbWVvdXQodGltZW91dCk7CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmggYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmgKaW5kZXggOTg0MjljNC4u
YTExOWQ5ZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRy
ZWVRdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuaApA
QCAtMTAzLDcgKzEwMyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlZGlyZWN0T3V0cHV0Rmls
ZU5hbWUoY29uc3QgUVN0cmluZyYgZmlsZU5hbWUpIHsgbV9yZWRpcmVjdE91dHB1dEZpbGVOYW1l
ID0gZmlsZU5hbWU7IH0KICAgICB2b2lkIHNldFJlZGlyZWN0RXJyb3JGaWxlTmFtZShjb25zdCBR
U3RyaW5nJiBmaWxlTmFtZSkgeyBtX3JlZGlyZWN0RXJyb3JGaWxlTmFtZSA9IGZpbGVOYW1lOyB9
CiAKLSAgICB2b2lkIHNldFRpbWVvdXQoaW50KTsKKyAgICB2b2lkIHNldFRpbWVvdXQoZG91Ymxl
KTsKKyAgICB2b2lkIHNldEFyZ1RpbWVvdXQoZG91YmxlKTsKICAgICB2b2lkIHNldFNob3VsZFRp
bWVvdXQoYm9vbCBmbGFnKTsKICAgICB2b2lkIHNldFNob3VsZER1bXBQaXhlbHNGb3JBbGxUZXN0
cygpIHsgbV9kdW1wUGl4ZWxzRm9yQWxsVGVzdHMgPSB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQppbmRleCBlYTFlOWQwLi5k
NWYwZWRiIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2Jhc2UucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9iYXNlLnB5CkBAIC0xNDgsNiArMTQ4LDkgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgIGRl
ZiBhZGRpdGlvbmFsX2RydF9mbGFnKHNlbGYpOgogICAgICAgICByZXR1cm4gW10KIAorICAgIGRl
ZiBzdXBwb3J0c19wZXJfdGVzdF90aW1lb3V0KHNlbGYpOgorICAgICAgICByZXR1cm4gRmFsc2UK
KwogICAgIGRlZiBkZWZhdWx0X3BpeGVsX3Rlc3RzKHNlbGYpOgogICAgICAgICAjIEZJWE1FOiBE
aXNhYmxlIHVudGlsIHRoZXkgYXJlIHJ1biBieSBkZWZhdWx0IG9uIGJ1aWxkLndlYmtpdC5vcmcu
CiAgICAgICAgIHJldHVybiBGYWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2RyaXZlci5weQppbmRleCA3OTkzZDA1Li41Mzk2MTJlIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weQpA
QCAtMTUxLDcgKzE1MSw3IEBAIGNsYXNzIERyaXZlcihvYmplY3QpOgogICAgICAgICB0aGUgZHJp
dmVyIGluIGFuIGluZGV0ZXJtaW5hdGUgc3RhdGUuIFRoZSB1cHBlciBsYXllcnMgb2YgdGhlIHBy
b2dyYW0KICAgICAgICAgYXJlIHJlc3BvbnNpYmxlIGZvciBjbGVhbmluZyB1cCBhbmQgZW5zdXJp
bmcgdGhpbmdzIGFyZSBva2F5LgogCi0gICAgICAgIFJldHVybnMgYSBEcml2ZXJPdXB1dCBvYmpl
Y3QuCisgICAgICAgIFJldHVybnMgYSBEcml2ZXJPdXRwdXQgb2JqZWN0LgogICAgICAgICAiIiIK
ICAgICAgICAgc3RhcnRfdGltZSA9IHRpbWUudGltZSgpCiAgICAgICAgIHNlbGYuc3RhcnQoZHJp
dmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdCwgZHJpdmVyX2lucHV0LmFyZ3MpCkBAIC0z
NTQsNiArMzU0LDggQEAgY2xhc3MgRHJpdmVyKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCBub3Qg
ZHJpdmVyX2lucHV0LmltYWdlX2hhc2ggb3IgZHJpdmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxf
dGVzdAogCiAgICAgICAgICMgJyBpcyB0aGUgc2VwYXJhdG9yIGJldHdlZW4gYXJndW1lbnRzLgor
ICAgICAgICBpZiBzZWxmLl9wb3J0LnN1cHBvcnRzX3Blcl90ZXN0X3RpbWVvdXQoKToKKyAgICAg
ICAgICAgIGNvbW1hbmQgKz0gIictLXRpbWVvdXQnJXMiICUgZHJpdmVyX2lucHV0LnRpbWVvdXQK
ICAgICAgICAgaWYgZHJpdmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdDoKICAgICAgICAg
ICAgIGNvbW1hbmQgKz0gIictLXBpeGVsLXRlc3QiCiAgICAgICAgIGlmIGRyaXZlcl9pbnB1dC5p
bWFnZV9oYXNoOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9xdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
cXQucHkKaW5kZXggNTVmMTNlZS4uODU2YjkzMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9xdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3F0LnB5CkBAIC04MCw2ICs4MCw5IEBAIGNsYXNzIFF0UG9y
dChQb3J0KToKICAgICAgICAgIyBUaGUgUXQgcG9ydCBidWlsZHMgRFJUIGFzIHBhcnQgb2YgdGhl
IG1haW4gYnVpbGQgc3RlcAogICAgICAgICByZXR1cm4gVHJ1ZQogCisgICAgZGVmIHN1cHBvcnRz
X3Blcl90ZXN0X3RpbWVvdXQoc2VsZik6CisgICAgICAgIHJldHVybiBUcnVlCisKICAgICBkZWYg
X3BhdGhfdG9fZHJpdmVyKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfcGF0aCgn
YmluLyVzJyAlIHNlbGYuZHJpdmVyX25hbWUoKSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCA5YTVl
ODA3Li4yNDIxMTgzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtNTUsNiArNTUsNyBAQCBJbmplY3Rl
ZEJ1bmRsZTo6SW5qZWN0ZWRCdW5kbGUoKQogICAgICwgbV9kdW1wUGl4ZWxzKGZhbHNlKQogICAg
ICwgbV91c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcih0cnVlKQogICAgICwgbV91c2VXb3JrUXVl
dWUoZmFsc2UpCisgICAgLCBtX3RpbWVvdXQoMCkKIHsKIH0KIApAQCAtMTUxLDYgKzE1Miw5IEBA
IHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlKFdLU3RyaW5nUmVmIG1lc3Nh
Z2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnCiAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVm
PiB1c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcktleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiVXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIiKSk7CiAgICAgICAgIG1f
dXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIgPSBXS0Jvb2xlYW5HZXRWYWx1ZShzdGF0aWNfY2Fz
dDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0
aW9uYXJ5LCB1c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcktleS5nZXQoKSkpKTsKIAorICAgICAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gdGltZW91dEtleShBZG9wdFdLLCBXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiVGltZW91dCIpKTsKKyAgICAgICAgbV90aW1lb3V0ID0gV0tE
b3VibGVHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRl
bUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHRpbWVvdXRLZXkuZ2V0KCkpKSk7CisKICAg
ICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGFja01lc3NhZ2VOYW1lKEFkb3B0V0ssIFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJBY2siKSk7CiAgICAgICAgIFdLUmV0YWluUHRy
PFdLU3RyaW5nUmVmPiBhY2tNZXNzYWdlQm9keShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiQmVnaW5UZXN0IikpOwogICAgICAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKG1f
YnVuZGxlLCBhY2tNZXNzYWdlTmFtZS5nZXQoKSwgYWNrTWVzc2FnZUJvZHkuZ2V0KCkpOwpAQCAt
MjY0LDYgKzI2OCw4IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVzdGluZyhXS0RpY3Rp
b25hcnlSZWYgc2V0dGluZ3MpCiAgICAgbV90ZXN0UnVubmVyLT5zZXRBY2NlcHRzRWRpdGluZyh0
cnVlKTsKICAgICBtX3Rlc3RSdW5uZXItPnNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyh0
cnVlKTsKIAorICAgIG1fdGVzdFJ1bm5lci0+c2V0Q3VzdG9tVGltZW91dChtX3RpbWVvdXQpOwor
CiAgICAgcGFnZSgpLT5wcmVwYXJlKCk7CiAKICAgICBXS0J1bmRsZUNsZWFyQWxsRGF0YWJhc2Vz
KG1fYnVuZGxlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAppbmRleCA0MTQ2OWVjLi42YWZkYmU4IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5oCkBAIC0xNTYsNiArMTU2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZHVtcFBpeGVsczsK
ICAgICBib29sIG1fdXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXI7CiAgICAgYm9vbCBtX3VzZVdv
cmtRdWV1ZTsKKyAgICBkb3VibGUgbV90aW1lb3V0OwogCiAgICAgV0tSZXRhaW5QdHI8V0tJbWFn
ZVJlZj4gbV9waXhlbFJlc3VsdDsKICAgICBXS1JldGFpblB0cjxXS0FycmF5UmVmPiBtX3JlcGFp
bnRSZWN0czsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuY3BwCmluZGV4IGEyOTRkYTcuLjVkMGIwYWUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTY2
LDYgKzE2NiwxMSBAQCB2b2lkIFRlc3RSdW5uZXI6Om5vdGlmeURvbmUoKQogICAgIG1fd2FpdFRv
RHVtcCA9IGZhbHNlOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnNldEN1c3RvbVRpbWVvdXQoZG91
YmxlIHRpbWVvdXQpCit7CisgICAgbV90aW1lb3V0ID0gdGltZW91dDsKK30KKwogdW5zaWduZWQg
VGVzdFJ1bm5lcjo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29uc3QKIHsKICAgICAvLyBG
SVhNRTogSXMgaXQgT0sgdGhpcyB3b3JrcyBvbmx5IGZvciB0aGUgbWFpbiBmcmFtZT8KZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5k
ZXggNDhiOTIyYy4uMTkyMzE4NSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTI2MSw2ICsyNjEsOCBAQCBwdWJsaWM6CiAK
ICAgICBib29sIGNhbGxTaG91bGRDbG9zZU9uV2ViVmlldygpOwogCisgICAgdm9pZCBzZXRDdXN0
b21UaW1lb3V0KGRvdWJsZSBkdXJhdGlvbik7CisKICAgICAvLyBXb3JrIHF1ZXVlLgogICAgIHZv
aWQgcXVldWVCYWNrTmF2aWdhdGlvbih1bnNpZ25lZCBob3dGYXJCYWNrd2FyZCk7CiAgICAgdm9p
ZCBxdWV1ZUZvcndhcmROYXZpZ2F0aW9uKHVuc2lnbmVkIGhvd0ZhckZvcndhcmQpOwpAQCAtMzEz
LDYgKzMxNSw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2dsb2JhbEZsYWc7CiAgICAgYm9vbCBt
X2N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcjsKIAorICAgIGRvdWJsZSBtX3RpbWVvdXQ7CisKICAg
ICBib29sIG1fdXNlclN0eWxlU2hlZXRFbmFibGVkOwogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb247CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvVGVzdFJ1bm5lclF0LmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvVGVzdFJ1bm5lclF0LmNwcAppbmRleCAx
NjcxYWM3Li42YzAxMzAzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9xdC9UZXN0UnVubmVyUXQuY3BwCkBAIC03NCwxMyArNzQsMTggQEAg
dm9pZCBUZXN0UnVubmVyOjppbnZhbGlkYXRlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIoKQogCiB2
b2lkIFRlc3RSdW5uZXI6OmluaXRpYWxpemVXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcklmTmVlZGVk
KCkKIHsKKyAgICBkb3VibGUgdGltZXJJbnRlcnZhbDsKICAgICBpZiAocWdldGVudigiUVRfV0VC
S0lUMl9ERUJVRyIpID09ICIxIikKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fd2FpdFRv
RHVtcFdhdGNoZG9nVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgcmV0dXJuOworICAgIGlmICht
X3RpbWVvdXQgPiAwKQorICAgICAgICB0aW1lckludGVydmFsID0gbV90aW1lb3V0OworICAgIGVs
c2UKKyAgICAgICAgdGltZXJJbnRlcnZhbCA9IHdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVySW50ZXJ2
YWwgKiAxMDAwOwogCi0gICAgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5zdGFydCh3YWl0VG9E
dW1wV2F0Y2hkb2dUaW1lckludGVydmFsICogMTAwMCk7CisgICAgbV93YWl0VG9EdW1wV2F0Y2hk
b2dUaW1lci5zdGFydCh0aW1lckludGVydmFsKTsKIH0KIAogSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IFRlc3RSdW5uZXI6OnBhdGhUb0xvY2FsUmVzb3VyY2UoSlNTdHJpbmdSZWYgdXJsKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBkY2JiYWQwLi41ZDBm
MDA1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtODks
NiArODksNyBAQCBUZXN0Q29udHJvbGxlcjo6VGVzdENvbnRyb2xsZXIoaW50IGFyZ2MsIGNvbnN0
IGNoYXIqIGFyZ3ZbXSkKICAgICAsIG1fbm9UaW1lb3V0KGRlZmF1bHROb1RpbWVvdXQpCiAgICAg
LCBtX3VzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKHRydWUpCiAgICAgLCBtX2ZvcmNlTm9UaW1l
b3V0KGZhbHNlKQorICAgICwgbV90aW1lb3V0KDApCiAgICAgLCBtX2RpZFByaW50V2ViUHJvY2Vz
c0NyYXNoZWRNZXNzYWdlKGZhbHNlKQogICAgICwgbV9zaG91bGRFeGl0V2hlbldlYlByb2Nlc3ND
cmFzaGVzKHRydWUpCiAgICAgLCBtX2JlZm9yZVVubG9hZFJldHVyblZhbHVlKHRydWUpCkBAIC0x
NjgsNiArMTY5LDExIEBAIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXCiAgICAgVGVzdENvbnRyb2xs
ZXI6OnNoYXJlZCgpLmhhbmRsZUdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QocGVybWlzc2lv
blJlcXVlc3QpOwogfQogCitkb3VibGUgVGVzdENvbnRyb2xsZXI6OmdldEN1c3RvbVRpbWVvdXQo
KQoreworICAgIHJldHVybiBtX3RpbWVvdXQ7Cit9CisKIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxl
cjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBXS1VSTFJlcXVlc3RSZWYsIFdL
RGljdGlvbmFyeVJlZiwgV0tFdmVudE1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uLCBjb25z
dCB2b2lkKikKIHsKICAgICBQbGF0Zm9ybVdlYlZpZXcqIHZpZXcgPSBuZXcgUGxhdGZvcm1XZWJW
aWV3KFdLUGFnZUdldENvbnRleHQob2xkUGFnZSksIFdLUGFnZUdldFBhZ2VHcm91cChvbGRQYWdl
KSk7CkBAIC01NzgsMTEgKzU4NCwxMiBAQCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRl
VG9Db25zaXN0ZW50VmFsdWVzKCkKIH0KIAogc3RydWN0IFRlc3RDb21tYW5kIHsKLSAgICBUZXN0
Q29tbWFuZCgpIDogc2hvdWxkRHVtcFBpeGVscyhmYWxzZSkgeyB9CisgICAgVGVzdENvbW1hbmQo
KSA6IHNob3VsZER1bXBQaXhlbHMoZmFsc2UpLCB0aW1lb3V0KDApIHsgfQogCiAgICAgc3RkOjpz
dHJpbmcgcGF0aE9yVVJMOwogICAgIGJvb2wgc2hvdWxkRHVtcFBpeGVsczsKICAgICBzdGQ6OnN0
cmluZyBleHBlY3RlZFBpeGVsSGFzaDsKKyAgICBkb3VibGUgdGltZW91dDsKIH07CiAKIGNsYXNz
IENvbW1hbmRUb2tlbml6ZXIgewpAQCAtNjQ0LDE3ICs2NTEsMTkgQEAgVGVzdENvbW1hbmQgcGFy
c2VJbnB1dExpbmUoY29uc3Qgc3RkOjpzdHJpbmcmIGlucHV0TGluZSkKICAgICBpZiAoIXRva2Vu
aXplci5oYXNOZXh0KCkpCiAgICAgICAgIGRpZShpbnB1dExpbmUpOwogCi0gICAgcmVzdWx0LnBh
dGhPclVSTCA9IHRva2VuaXplci5uZXh0KCk7Ci0gICAgaWYgKCF0b2tlbml6ZXIuaGFzTmV4dCgp
KQotICAgICAgICByZXR1cm4gcmVzdWx0OwotCi0gICAgc3RkOjpzdHJpbmcgYXJnID0gdG9rZW5p
emVyLm5leHQoKTsKLSAgICBpZiAoYXJnICE9IHN0ZDo6c3RyaW5nKCItcCIpICYmIGFyZyAhPSBz
dGQ6OnN0cmluZygiLS1waXhlbC10ZXN0IikpCi0gICAgICAgIGRpZShpbnB1dExpbmUpOwotICAg
IHJlc3VsdC5zaG91bGREdW1wUGl4ZWxzID0gdHJ1ZTsKLQotICAgIGlmICh0b2tlbml6ZXIuaGFz
TmV4dCgpKQotICAgICAgICByZXN1bHQuZXhwZWN0ZWRQaXhlbEhhc2ggPSB0b2tlbml6ZXIubmV4
dCgpOworICAgIHJlc3VsdC5wYXRoT3JVUkwgPSBhcmc7CisgICAgd2hpbGUgKHRva2VuaXplci5o
YXNOZXh0KCkpIHsKKyAgICAgICAgYXJnID0gdG9rZW5pemVyLm5leHQoKTsKKyAgICAgICAgaWYg
KGFyZyA9PSBzdGQ6OnN0cmluZygiLS10aW1lb3V0IikpIHsKKyAgICAgICAgICAgIHN0ZDo6c3Ry
aW5nIHRpbWVvdXRUb2tlbiA9IHRva2VuaXplci5uZXh0KCk7CisgICAgICAgICAgICByZXN1bHQu
dGltZW91dCA9IGF0b2YodGltZW91dFRva2VuLmNfc3RyKCkpOworICAgICAgICB9IGVsc2UgaWYg
KGFyZyA9PSBzdGQ6OnN0cmluZygiLXAiKSB8fCBhcmcgPT0gc3RkOjpzdHJpbmcoIi0tcGl4ZWwt
dGVzdCIpKSB7CisgICAgICAgICAgICByZXN1bHQuc2hvdWxkRHVtcFBpeGVscyA9IHRydWU7Cisg
ICAgICAgICAgICBpZiAodG9rZW5pemVyLmhhc05leHQoKSkKKyAgICAgICAgICAgICAgICByZXN1
bHQuZXhwZWN0ZWRQaXhlbEhhc2ggPSB0b2tlbml6ZXIubmV4dCgpOworICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgIGRpZShpbnB1dExpbmUpOworICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7
CiB9CkBAIC02NjgsNiArNjc3LDggQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cnVuVGVzdChjb25z
dCBjaGFyKiBpbnB1dExpbmUpCiAgICAgbV9jdXJyZW50SW52b2NhdGlvbiA9IGFkb3B0UHRyKG5l
dyBUZXN0SW52b2NhdGlvbihjb21tYW5kLnBhdGhPclVSTCkpOwogICAgIGlmIChjb21tYW5kLnNo
b3VsZER1bXBQaXhlbHMgfHwgbV9zaG91bGREdW1wUGl4ZWxzRm9yQWxsVGVzdHMpCiAgICAgICAg
IG1fY3VycmVudEludm9jYXRpb24tPnNldElzUGl4ZWxUZXN0KGNvbW1hbmQuZXhwZWN0ZWRQaXhl
bEhhc2gpOworICAgIGlmIChjb21tYW5kLnRpbWVvdXQgPiAwKQorICAgICAgICBtX2N1cnJlbnRJ
bnZvY2F0aW9uLT5zZXRDdXN0b21UaW1lb3V0KGNvbW1hbmQudGltZW91dCk7CiAKICAgICBtX2N1
cnJlbnRJbnZvY2F0aW9uLT5pbnZva2UoKTsKICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLmNsZWFy
KCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggZThiNTQ1Ni4u
MGQ3N2NiYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtNjQs
NiArNjQsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCB1c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcigp
IHsgcmV0dXJuIG1fdXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXI7IH0KICAgICB2b2lkIHJ1blVu
dGlsKGJvb2wmIGRvbmUsIFRpbWVvdXREdXJhdGlvbik7CiAgICAgdm9pZCBub3RpZnlEb25lKCk7
CisKKyAgICBkb3VibGUgZ2V0Q3VzdG9tVGltZW91dCgpOwogICAgIAogICAgIGJvb2wgYmVmb3Jl
VW5sb2FkUmV0dXJuVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2JlZm9yZVVubG9hZFJldHVyblZh
bHVlOyB9CiAgICAgdm9pZCBzZXRCZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZShib29sIHZhbHVlKSB7
IG1fYmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUgPSB2YWx1ZTsgfQpAQCAtMTY1LDYgKzE2Nyw4IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX3VzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyOwogICAgIGJv
b2wgbV9mb3JjZU5vVGltZW91dDsKIAorICAgIGRvdWJsZSBtX3RpbWVvdXQ7CisKICAgICBib29s
IG1fZGlkUHJpbnRXZWJQcm9jZXNzQ3Jhc2hlZE1lc3NhZ2U7CiAgICAgYm9vbCBtX3Nob3VsZEV4
aXRXaGVuV2ViUHJvY2Vzc0NyYXNoZXM7CiAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCmluZGV4IDFjYjU2YmIuLjZlNDQ3NDQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xMDAsNiArMTAwLDcgQEAgVGVzdEludm9j
YXRpb246OlRlc3RJbnZvY2F0aW9uKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwpCiAgICAg
OiBtX3VybChBZG9wdFdLLCBjcmVhdGVXS1VSTChwYXRoT3JVUkwuY19zdHIoKSkpCiAgICAgLCBt
X3BhdGhPclVSTChwYXRoT3JVUkwpCiAgICAgLCBtX2R1bXBQaXhlbHMoZmFsc2UpCisgICAgLCBt
X3RpbWVvdXQoMCkKICAgICAsIG1fZ290SW5pdGlhbFJlc3BvbnNlKGZhbHNlKQogICAgICwgbV9n
b3RGaW5hbE1lc3NhZ2UoZmFsc2UpCiAgICAgLCBtX2dvdFJlcGFpbnQoZmFsc2UpCkBAIC0xMTcs
NiArMTE4LDExIEBAIHZvaWQgVGVzdEludm9jYXRpb246OnNldElzUGl4ZWxUZXN0KGNvbnN0IHN0
ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFzaCkKICAgICBtX2V4cGVjdGVkUGl4ZWxIYXNoID0g
ZXhwZWN0ZWRQaXhlbEhhc2g7CiB9CiAKK3ZvaWQgVGVzdEludm9jYXRpb246OnNldEN1c3RvbVRp
bWVvdXQoZG91YmxlIHRpbWVvdXQpCit7CisgICAgbV90aW1lb3V0ID0gdGltZW91dDsKK30KKwog
c3RhdGljIGNvbnN0IHVuc2lnbmVkIHczY1NWR1dpZHRoID0gNDgwOwogc3RhdGljIGNvbnN0IHVu
c2lnbmVkIHczY1NWR0hlaWdodCA9IDM2MDsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBub3JtYWxX
aWR0aCA9IDgwMDsKQEAgLTE4NCw2ICsxOTAsMTAgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6aW52
b2tlKCkKICAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IHVzZVdhaXRUb0R1bXBXYXRjaGRv
Z1RpbWVyVmFsdWUgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShUZXN0Q29udHJvbGxlcjo6c2hh
cmVkKCkudXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIoKSkpOwogICAgIFdLRGljdGlvbmFyeUFk
ZEl0ZW0oYmVnaW5UZXN0TWVzc2FnZUJvZHkuZ2V0KCksIHVzZVdhaXRUb0R1bXBXYXRjaGRvZ1Rp
bWVyS2V5LmdldCgpLCB1c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lclZhbHVlLmdldCgpKTsKIAor
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB0aW1lb3V0S2V5ID0gYWRvcHRXSyhXS1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVGltZW91dCIpKTsKKyAgICBXS1JldGFpblB0cjxXS0Rv
dWJsZVJlZj4gdGltZW91dFZhbHVlID0gYWRvcHRXSyhXS0RvdWJsZUNyZWF0ZShtX3RpbWVvdXQp
KTsKKyAgICBXS0RpY3Rpb25hcnlBZGRJdGVtKGJlZ2luVGVzdE1lc3NhZ2VCb2R5LmdldCgpLCB0
aW1lb3V0S2V5LmdldCgpLCB0aW1lb3V0VmFsdWUuZ2V0KCkpOworCiAgICAgV0tDb250ZXh0UG9z
dE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5jb250ZXh0
KCksIG1lc3NhZ2VOYW1lLmdldCgpLCBiZWdpblRlc3RNZXNzYWdlQm9keS5nZXQoKSk7CiAKICAg
ICBjb25zdCBjaGFyKiBlcnJvck1lc3NhZ2UgPSAwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
SW52b2NhdGlvbi5oCmluZGV4IGI1NTA2NTUuLjU1NmJlN2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmgKQEAgLTQwLDYgKzQwLDggQEAgcHVibGljOgogCiAgICAgdm9p
ZCBzZXRJc1BpeGVsVGVzdChjb25zdCBzdGQ6OnN0cmluZyYgZXhwZWN0ZWRQaXhlbEhhc2gpOwog
CisgICAgdm9pZCBzZXRDdXN0b21UaW1lb3V0KGRvdWJsZSBkdXJhdGlvbik7CisKICAgICB2b2lk
IGludm9rZSgpOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUo
V0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBtZXNzYWdlQm9keSk7CiAgICAgV0tS
ZXRhaW5QdHI8V0tUeXBlUmVmPiBkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVj
dGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHkp
OwpAQCAtNjIsNiArNjQsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kdW1wUGl4ZWxzOwogICAg
IHN0ZDo6c3RyaW5nIG1fZXhwZWN0ZWRQaXhlbEhhc2g7CiAKKyAgICBkb3VibGUgbV90aW1lb3V0
OworCiAgICAgLy8gSW52b2NhdGlvbiBzdGF0ZQogICAgIGJvb2wgbV9nb3RJbml0aWFsUmVzcG9u
c2U7CiAgICAgYm9vbCBtX2dvdEZpbmFsTWVzc2FnZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvcXQvVGVzdENvbnRyb2xsZXJRdC5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL3F0L1Rlc3RDb250cm9sbGVyUXQuY3BwCmluZGV4IDA0ZGRiOGIuLmFkNzY4MDcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvVGVzdENvbnRyb2xsZXJRdC5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9UZXN0Q29udHJvbGxlclF0LmNwcApAQCAtNjIs
MTIgKzYyLDE0IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwoYm9vbCYg
Y29uZGl0aW9uLCBkb3VibGUgdGltZW91dCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGludCB0aW1lb3V0SW5NU2VjcyA9IHRpbWVvdXQgKiAxMDAwOworICAgIGRvdWJsZSB0aW1lb3V0
SW5NU2VjcyA9IHRpbWVvdXQgKiAxMDAwOwogICAgIFFFbGFwc2VkVGltZXIgdGltZXI7CiAgICAg
dGltZXIuc3RhcnQoKTsKICAgICB3aGlsZSAoIWNvbmRpdGlvbikgewotICAgICAgICBpZiAodGlt
ZXIuZWxhcHNlZCgpID4gdGltZW91dEluTVNlY3MpCisgICAgICAgIGlmICh0aW1lci5lbGFwc2Vk
KCkgPiB0aW1lb3V0SW5NU2VjcykgeworICAgICAgICAgICAgY29uZGl0aW9uID0gIWNvbmRpdGlv
bjsKICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgICAgICBRQ29yZUFwcGxpY2F0
aW9uOjpwcm9jZXNzRXZlbnRzKFFFdmVudExvb3A6OkV4Y2x1ZGVVc2VySW5wdXRFdmVudHMsIHRp
bWVvdXRJbk1TZWNzIC0gdGltZXIuZWxhcHNlZCgpKTsKICAgICB9CiB9Cg==
</data>
<flag name="review"
          id="186915"
          type_id="1"
          status="-"
          setter="ossy"
    />
    <flag name="commit-queue"
          id="186916"
          type_id="3"
          status="-"
          setter="peter+ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172596</attachid>
            <date>2012-11-06 08:27:12 -0800</date>
            <delta_ts>2012-11-20 06:29:30 -0800</delta_ts>
            <desc>updated patch</desc>
            <filename>per_test_timeout_J_updated_changelog.patch</filename>
            <type>text/plain</type>
            <size>20437</size>
            <attacher name="János Badics">jbadics</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5MWUy
MzljLi43OTVlYjk1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIwMTItMTEtMDYgIErDoW5vcyBCYWRpY3MgIDxqYmFk
aWNzQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBbUXRdW05SV1RdIFBhc3MgLS10aW1lb3V0
IHRvIERSVC9XVFIgaWYgYSB0ZXN0IGlzIG1hcmtlZCBhcyBTTE9XLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA5NjguCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgZnVuY3Rpb25hbGl0eSBpbiBE
UlQgYW5kIFdUUiB0byB1c2UgYW55IHRpbWVvdXQgdmFsdWUgd2hpbGUgcnVubmluZworICAgICAg
ICBzbG93IHRlc3RzIChldmVudHVhbGx5LCBhbnkgdGVzdCkuIE5vdyBOUldUIC0tdGltZS1vdXQt
bXMgZGV0ZXJtaW5lcyB0aGUKKyAgICAgICAgdGltZW91dCB2YWx1ZSBmb3IgdGhlIHRlc3QuIEFk
ZGVkIGEgZmxhZyBpbiBOUldUIChzdXBwb3J0c19wZXJfdGVzdF90aW1lb3V0KQorICAgICAgICB0
byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBjdXJyZW50IHBvcnQgc3VwcG9ydHMgc2V0dGluZyB0aW1l
b3V0IHZhbHVlCisgICAgICAgIHBlciB0ZXN0IChpdCdzIEZhbHNlIGJ5IGRlZmF1bHQ7IEkgZW5h
YmxlZCBpdCBvbmx5IG9uIFF0KS4KKyAgICAgICAgQWxzbyBjb3JyZWN0ZWQgYSB0eXBvIGluIGRy
aXZlci5weQorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaDoKKyAg
ICAgICAgKFRlc3RDb21tYW5kOjpUZXN0Q29tbWFuZCk6CisgICAgICAgIChUZXN0Q29tbWFuZCk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwOgorICAg
ICAgICAocGFyc2VJbnB1dExpbmUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBS
ZW5kZXJUcmVlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHVtcFJlbmRlclRyZWU6OnNldEFy
Z1RpbWVvdXQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEdW1wUmVu
ZGVyVHJlZTo6cHJvY2Vzc0xpbmUpOgorICAgICAgICAoV2ViQ29yZTo6RHVtcFJlbmRlclRyZWU6
OnNldFRpbWVvdXQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVl
UXQuaDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHk6CisgICAgICAgIChQb3J0LnN1cHBvcnRzX3Bl
cl90ZXN0X3RpbWVvdXQpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvZHJpdmVyLnB5OgorICAgICAgICAoRHJpdmVyLnJ1bl90ZXN0KToKKyAgICAgICAgKERy
aXZlci5fY29tbWFuZF9mcm9tX2RyaXZlcl9pbnB1dCk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9xdC5weToKKyAgICAgICAgKFF0UG9ydC5zdXBwb3J0c19w
ZXJfdGVzdF90aW1lb3V0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6Oklu
amVjdGVkQnVuZGxlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVN
ZXNzYWdlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVzdGluZyk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5o
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldEN1c3RvbVRpbWVvdXQpOgorICAgICAg
ICAoV1RSKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuaDoKKyAgICAgICAgKFRlc3RSdW5uZXIpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvcXQvVGVzdFJ1bm5lclF0LmNwcDoKKyAgICAgICAgKFdUUjo6VGVz
dFJ1bm5lcjo6aW5pdGlhbGl6ZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVySWZOZWVkZWQpOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6Z2V0Q3VzdG9tVGltZW91dCk6CisgICAgICAgIChXVFIpOgorICAgICAgICAoV1RS
OjpUZXN0Q29tbWFuZDo6VGVzdENvbW1hbmQpOgorICAgICAgICAoVGVzdENvbW1hbmQpOgorICAg
ICAgICAoV1RSOjpwYXJzZUlucHV0TGluZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
OjpydW5UZXN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6
CisgICAgICAgIChUZXN0Q29udHJvbGxlcik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpUZXN0SW52
b2NhdGlvbik6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpzZXRDdXN0b21UaW1lb3V0
KToKKyAgICAgICAgKFdUUik6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjppbnZva2Up
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaDoKKyAgICAgICAg
KFRlc3RJbnZvY2F0aW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3F0L1Rlc3RDb250
cm9sbGVyUXQuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5V
bnRpbCk6CisKIDIwMTItMTEtMDYgIEp1c3NpIEt1a2tvbmVuICA8anVzc2kua3Vra29uZW5AaW50
ZWwuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gTWluaWJyb3dzZXIgZm9yZ2V0cyBodHRwIHZh
cmlhYmxlcyB3aGVuIHVybCBpbmNsdWRlcyBhbXBlcnNhbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1w
UmVuZGVyVHJlZS5oCmluZGV4IDRjNmE0NzIuLmE4NmM0YjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
RHVtcFJlbmRlclRyZWUuaApAQCAtNjQsMTMgKzY0LDE1IEBAIGV4dGVybiBSZWZQdHI8VGVzdFJ1
bm5lcj4gZ1Rlc3RSdW5uZXI7CiAKIHZvaWQgZHVtcCgpOwogdm9pZCBkaXNwbGF5V2ViVmlldygp
Owordm9pZCBzZXRBcmdUaW1lb3V0KCk7CiAKIHN0cnVjdCBUZXN0Q29tbWFuZCB7Ci0gICAgVGVz
dENvbW1hbmQoKSA6IHNob3VsZER1bXBQaXhlbHMoZmFsc2UpIHsgfQorICAgIFRlc3RDb21tYW5k
KCkgOiBzaG91bGREdW1wUGl4ZWxzKGZhbHNlKSwgdGltZW91dCgzMDAwMCkgeyB9CiAKICAgICBz
dGQ6OnN0cmluZyBwYXRoT3JVUkw7CiAgICAgYm9vbCBzaG91bGREdW1wUGl4ZWxzOwogICAgIHN0
ZDo6c3RyaW5nIGV4cGVjdGVkUGl4ZWxIYXNoOworICAgIGRvdWJsZSB0aW1lb3V0OyAvLyBpbiBt
cwogfTsKIAogVGVzdENvbW1hbmQgcGFyc2VJbnB1dExpbmUoY29uc3Qgc3RkOjpzdHJpbmcmKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlQ29tbW9uLmNw
cCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlQ29tbW9uLmNwcAppbmRleCA0
OGQ4MzIyLi4zY2I5N2ViIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVu
ZGVyVHJlZUNvbW1vbi5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWVDb21tb24uY3BwCkBAIC02NiwxNyArNjYsMjAgQEAgVGVzdENvbW1hbmQgcGFyc2VJbnB1dExp
bmUoY29uc3Qgc3RkOjpzdHJpbmcmIGlucHV0TGluZSkKICAgICBpZiAoIXRva2VuaXplci5oYXNO
ZXh0KCkpCiAgICAgICAgIGRpZShpbnB1dExpbmUpOwogCi0gICAgcmVzdWx0LnBhdGhPclVSTCA9
IHRva2VuaXplci5uZXh0KCk7Ci0gICAgaWYgKCF0b2tlbml6ZXIuaGFzTmV4dCgpKQotICAgICAg
ICByZXR1cm4gcmVzdWx0OwotCiAgICAgc3RkOjpzdHJpbmcgYXJnID0gdG9rZW5pemVyLm5leHQo
KTsKLSAgICBpZiAoYXJnICE9IHN0ZDo6c3RyaW5nKCItcCIpICYmIGFyZyAhPSBzdGQ6OnN0cmlu
ZygiLS1waXhlbC10ZXN0IikpCi0gICAgICAgIGRpZShpbnB1dExpbmUpOwotICAgIHJlc3VsdC5z
aG91bGREdW1wUGl4ZWxzID0gdHJ1ZTsKLQotICAgIGlmICh0b2tlbml6ZXIuaGFzTmV4dCgpKQot
ICAgICAgICByZXN1bHQuZXhwZWN0ZWRQaXhlbEhhc2ggPSB0b2tlbml6ZXIubmV4dCgpOworICAg
IHJlc3VsdC5wYXRoT3JVUkwgPSBhcmc7CisgICAgd2hpbGUgKHRva2VuaXplci5oYXNOZXh0KCkp
IHsKKyAgICAgICAgYXJnID0gdG9rZW5pemVyLm5leHQoKTsKKyAgICAgICAgaWYgKGFyZyA9PSBz
dGQ6OnN0cmluZygiLS10aW1lb3V0IikpIHsKKyAgICAgICAgICAgIHN0ZDo6c3RyaW5nIHRpbWVv
dXRUb2tlbiA9IHRva2VuaXplci5uZXh0KCk7CisgICAgICAgICAgICByZXN1bHQudGltZW91dCA9
IGF0b2kodGltZW91dFRva2VuLmNfc3RyKCkpOworICAgICAgICB9IGVsc2UgaWYgKGFyZyA9PSBz
dGQ6OnN0cmluZygiLXAiKSB8fCBhcmcgPT0gc3RkOjpzdHJpbmcoIi0tcGl4ZWwtdGVzdCIpKSB7
CisgICAgICAgICAgICByZXN1bHQuc2hvdWxkRHVtcFBpeGVscyA9IHRydWU7CisgICAgICAgICAg
ICBpZiAodG9rZW5pemVyLmhhc05leHQoKSkKKyAgICAgICAgICAgICAgICByZXN1bHQuZXhwZWN0
ZWRQaXhlbEhhc2ggPSB0b2tlbml6ZXIubmV4dCgpOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIGRpZShpbnB1dExpbmUpOworICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCmluZGV4IGVhMTE0ZTYu
LmFlYzkzM2QgMTAwNzU1Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJU
cmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQu
Y3BwCkBAIC02ODgsNiArNjg4LDEyIEBAIHZvaWQgRHVtcFJlbmRlclRyZWU6OmxvYWROZXh0VGVz
dEluU3RhbmRBbG9uZU1vZGUoKQogICAgIHByb2Nlc3NMaW5lKGZpcnN0KTsKIH0KIAordm9pZCBE
dW1wUmVuZGVyVHJlZTo6c2V0QXJnVGltZW91dChkb3VibGUgdGltZW91dCkKK3sKKyAgICBpZiAo
dGltZW91dCA+IDApCisgICAgICAgIER1bXBSZW5kZXJUcmVlOjpzZXRUaW1lb3V0KHRpbWVvdXQp
OworfQorCiB2b2lkIER1bXBSZW5kZXJUcmVlOjpwcm9jZXNzTGluZShjb25zdCBRU3RyaW5nICZp
bnB1dCkKIHsKICAgICBUZXN0Q29tbWFuZCBjb21tYW5kID0gcGFyc2VJbnB1dExpbmUoc3RkOjpz
dHJpbmcoaW5wdXQudG9MYXRpbjEoKS5jb25zdERhdGEoKSkpOwpAQCAtNzIxLDYgKzcyNyw3IEBA
IHZvaWQgRHVtcFJlbmRlclRyZWU6OnByb2Nlc3NMaW5lKGNvbnN0IFFTdHJpbmcgJmlucHV0KQog
ICAgICAgICBvcGVuKFFVcmw6OmZyb21Mb2NhbEZpbGUoZmkuYWJzb2x1dGVGaWxlUGF0aCgpKSk7
CiAgICAgfQogCisgICAgRHVtcFJlbmRlclRyZWU6OnNldEFyZ1RpbWVvdXQoY29tbWFuZC50aW1l
b3V0KTsKICAgICBmZmx1c2goc3Rkb3V0KTsKIH0KIApAQCAtMTE0NSw3ICsxMTUyLDcgQEAgUUxp
c3Q8V2ViUGFnZSo+IER1bXBSZW5kZXJUcmVlOjpnZXRBbGxQYWdlcygpIGNvbnN0CiAgICAgcmV0
dXJuIHBhZ2VzOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlOjpzZXRUaW1lb3V0KGludCB0aW1l
b3V0KQordm9pZCBEdW1wUmVuZGVyVHJlZTo6c2V0VGltZW91dChkb3VibGUgdGltZW91dCkKIHsK
ICAgICBtX2NvbnRyb2xsZXItPnNldFRpbWVvdXQodGltZW91dCk7CiB9CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmggYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmgKaW5kZXggOTg0MjljNC4uYTExOWQ5ZiAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5oCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuaApAQCAtMTAzLDcgKzEw
Myw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlZGlyZWN0T3V0cHV0RmlsZU5hbWUoY29uc3Qg
UVN0cmluZyYgZmlsZU5hbWUpIHsgbV9yZWRpcmVjdE91dHB1dEZpbGVOYW1lID0gZmlsZU5hbWU7
IH0KICAgICB2b2lkIHNldFJlZGlyZWN0RXJyb3JGaWxlTmFtZShjb25zdCBRU3RyaW5nJiBmaWxl
TmFtZSkgeyBtX3JlZGlyZWN0RXJyb3JGaWxlTmFtZSA9IGZpbGVOYW1lOyB9CiAKLSAgICB2b2lk
IHNldFRpbWVvdXQoaW50KTsKKyAgICB2b2lkIHNldFRpbWVvdXQoZG91YmxlKTsKKyAgICB2b2lk
IHNldEFyZ1RpbWVvdXQoZG91YmxlKTsKICAgICB2b2lkIHNldFNob3VsZFRpbWVvdXQoYm9vbCBm
bGFnKTsKICAgICB2b2lkIHNldFNob3VsZER1bXBQaXhlbHNGb3JBbGxUZXN0cygpIHsgbV9kdW1w
UGl4ZWxzRm9yQWxsVGVzdHMgPSB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQppbmRleCBlYTFlOWQwLi5kNWYwZWRiIDEwMDc1
NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CkBA
IC0xNDgsNiArMTQ4LDkgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgIGRlZiBhZGRpdGlvbmFs
X2RydF9mbGFnKHNlbGYpOgogICAgICAgICByZXR1cm4gW10KIAorICAgIGRlZiBzdXBwb3J0c19w
ZXJfdGVzdF90aW1lb3V0KHNlbGYpOgorICAgICAgICByZXR1cm4gRmFsc2UKKwogICAgIGRlZiBk
ZWZhdWx0X3BpeGVsX3Rlc3RzKHNlbGYpOgogICAgICAgICAjIEZJWE1FOiBEaXNhYmxlIHVudGls
IHRoZXkgYXJlIHJ1biBieSBkZWZhdWx0IG9uIGJ1aWxkLndlYmtpdC5vcmcuCiAgICAgICAgIHJl
dHVybiBGYWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2RyaXZlci5weQppbmRleCA3OTkzZDA1Li41Mzk2MTJlIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weQpAQCAtMTUxLDcgKzE1
MSw3IEBAIGNsYXNzIERyaXZlcihvYmplY3QpOgogICAgICAgICB0aGUgZHJpdmVyIGluIGFuIGlu
ZGV0ZXJtaW5hdGUgc3RhdGUuIFRoZSB1cHBlciBsYXllcnMgb2YgdGhlIHByb2dyYW0KICAgICAg
ICAgYXJlIHJlc3BvbnNpYmxlIGZvciBjbGVhbmluZyB1cCBhbmQgZW5zdXJpbmcgdGhpbmdzIGFy
ZSBva2F5LgogCi0gICAgICAgIFJldHVybnMgYSBEcml2ZXJPdXB1dCBvYmplY3QuCisgICAgICAg
IFJldHVybnMgYSBEcml2ZXJPdXRwdXQgb2JqZWN0LgogICAgICAgICAiIiIKICAgICAgICAgc3Rh
cnRfdGltZSA9IHRpbWUudGltZSgpCiAgICAgICAgIHNlbGYuc3RhcnQoZHJpdmVyX2lucHV0LnNo
b3VsZF9ydW5fcGl4ZWxfdGVzdCwgZHJpdmVyX2lucHV0LmFyZ3MpCkBAIC0zNTQsNiArMzU0LDgg
QEAgY2xhc3MgRHJpdmVyKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCBub3QgZHJpdmVyX2lucHV0
LmltYWdlX2hhc2ggb3IgZHJpdmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdAogCiAgICAg
ICAgICMgJyBpcyB0aGUgc2VwYXJhdG9yIGJldHdlZW4gYXJndW1lbnRzLgorICAgICAgICBpZiBz
ZWxmLl9wb3J0LnN1cHBvcnRzX3Blcl90ZXN0X3RpbWVvdXQoKToKKyAgICAgICAgICAgIGNvbW1h
bmQgKz0gIictLXRpbWVvdXQnJXMiICUgZHJpdmVyX2lucHV0LnRpbWVvdXQKICAgICAgICAgaWYg
ZHJpdmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdDoKICAgICAgICAgICAgIGNvbW1hbmQg
Kz0gIictLXBpeGVsLXRlc3QiCiAgICAgICAgIGlmIGRyaXZlcl9pbnB1dC5pbWFnZV9oYXNoOgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9xdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcXQucHkKaW5kZXgg
NTVmMTNlZS4uODU2YjkzMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9xdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L3F0LnB5CkBAIC04MCw2ICs4MCw5IEBAIGNsYXNzIFF0UG9ydChQb3J0KToKICAg
ICAgICAgIyBUaGUgUXQgcG9ydCBidWlsZHMgRFJUIGFzIHBhcnQgb2YgdGhlIG1haW4gYnVpbGQg
c3RlcAogICAgICAgICByZXR1cm4gVHJ1ZQogCisgICAgZGVmIHN1cHBvcnRzX3Blcl90ZXN0X3Rp
bWVvdXQoc2VsZik6CisgICAgICAgIHJldHVybiBUcnVlCisKICAgICBkZWYgX3BhdGhfdG9fZHJp
dmVyKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfcGF0aCgnYmluLyVzJyAlIHNl
bGYuZHJpdmVyX25hbWUoKSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCA5YTVlODA3Li4yNDIxMTgz
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcApAQCAtNTUsNiArNTUsNyBAQCBJbmplY3RlZEJ1bmRsZTo6SW5q
ZWN0ZWRCdW5kbGUoKQogICAgICwgbV9kdW1wUGl4ZWxzKGZhbHNlKQogICAgICwgbV91c2VXYWl0
VG9EdW1wV2F0Y2hkb2dUaW1lcih0cnVlKQogICAgICwgbV91c2VXb3JrUXVldWUoZmFsc2UpCisg
ICAgLCBtX3RpbWVvdXQoMCkKIHsKIH0KIApAQCAtMTUxLDYgKzE1Miw5IEBAIHZvaWQgSW5qZWN0
ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5
cGVSZWYgbWVzc2FnCiAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB1c2VXYWl0VG9E
dW1wV2F0Y2hkb2dUaW1lcktleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiVXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIiKSk7CiAgICAgICAgIG1fdXNlV2FpdFRvRHVt
cFdhdGNoZG9nVGltZXIgPSBXS0Jvb2xlYW5HZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0Jvb2xlYW5S
ZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB1c2VX
YWl0VG9EdW1wV2F0Y2hkb2dUaW1lcktleS5nZXQoKSkpKTsKIAorICAgICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gdGltZW91dEtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiVGltZW91dCIpKTsKKyAgICAgICAgbV90aW1lb3V0ID0gV0tEb3VibGVHZXRWYWx1
ZShzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNz
YWdlQm9keURpY3Rpb25hcnksIHRpbWVvdXRLZXkuZ2V0KCkpKSk7CisKICAgICAgICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IGFja01lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJBY2siKSk7CiAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVm
PiBhY2tNZXNzYWdlQm9keShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygi
QmVnaW5UZXN0IikpOwogICAgICAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKG1fYnVuZGxlLCBhY2tN
ZXNzYWdlTmFtZS5nZXQoKSwgYWNrTWVzc2FnZUJvZHkuZ2V0KCkpOwpAQCAtMjY0LDYgKzI2OCw4
IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVzdGluZyhXS0RpY3Rpb25hcnlSZWYgc2V0
dGluZ3MpCiAgICAgbV90ZXN0UnVubmVyLT5zZXRBY2NlcHRzRWRpdGluZyh0cnVlKTsKICAgICBt
X3Rlc3RSdW5uZXItPnNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyh0cnVlKTsKIAorICAg
IG1fdGVzdFJ1bm5lci0+c2V0Q3VzdG9tVGltZW91dChtX3RpbWVvdXQpOworCiAgICAgcGFnZSgp
LT5wcmVwYXJlKCk7CiAKICAgICBXS0J1bmRsZUNsZWFyQWxsRGF0YWJhc2VzKG1fYnVuZGxlKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuaAppbmRleCA0MTQ2OWVjLi42YWZkYmU4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCkBAIC0xNTYs
NiArMTU2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZHVtcFBpeGVsczsKICAgICBib29sIG1f
dXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXI7CiAgICAgYm9vbCBtX3VzZVdvcmtRdWV1ZTsKKyAg
ICBkb3VibGUgbV90aW1lb3V0OwogCiAgICAgV0tSZXRhaW5QdHI8V0tJbWFnZVJlZj4gbV9waXhl
bFJlc3VsdDsKICAgICBXS1JldGFpblB0cjxXS0FycmF5UmVmPiBtX3JlcGFpbnRSZWN0czsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwCmluZGV4IGEyOTRkYTcuLjVkMGIwYWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTY2LDYgKzE2NiwxMSBA
QCB2b2lkIFRlc3RSdW5uZXI6Om5vdGlmeURvbmUoKQogICAgIG1fd2FpdFRvRHVtcCA9IGZhbHNl
OwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnNldEN1c3RvbVRpbWVvdXQoZG91YmxlIHRpbWVvdXQp
Cit7CisgICAgbV90aW1lb3V0ID0gdGltZW91dDsKK30KKwogdW5zaWduZWQgVGVzdFJ1bm5lcjo6
bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogSXMgaXQg
T0sgdGhpcyB3b3JrcyBvbmx5IGZvciB0aGUgbWFpbiBmcmFtZT8KZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggNDhiOTIyYy4u
MTkyMzE4NSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmgKQEAgLTI2MSw2ICsyNjEsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIGNh
bGxTaG91bGRDbG9zZU9uV2ViVmlldygpOwogCisgICAgdm9pZCBzZXRDdXN0b21UaW1lb3V0KGRv
dWJsZSBkdXJhdGlvbik7CisKICAgICAvLyBXb3JrIHF1ZXVlLgogICAgIHZvaWQgcXVldWVCYWNr
TmF2aWdhdGlvbih1bnNpZ25lZCBob3dGYXJCYWNrd2FyZCk7CiAgICAgdm9pZCBxdWV1ZUZvcndh
cmROYXZpZ2F0aW9uKHVuc2lnbmVkIGhvd0ZhckZvcndhcmQpOwpAQCAtMzEzLDYgKzMxNSw4IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX2dsb2JhbEZsYWc7CiAgICAgYm9vbCBtX2N1c3RvbUZ1bGxT
Y3JlZW5CZWhhdmlvcjsKIAorICAgIGRvdWJsZSBtX3RpbWVvdXQ7CisKICAgICBib29sIG1fdXNl
clN0eWxlU2hlZXRFbmFibGVkOwogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtX3VzZXJT
dHlsZVNoZWV0TG9jYXRpb247CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvcXQvVGVzdFJ1bm5lclF0LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvcXQvVGVzdFJ1bm5lclF0LmNwcAppbmRleCAxNjcxYWM3Li42YzAx
MzAzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3F0
L1Rlc3RSdW5uZXJRdC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9xdC9UZXN0UnVubmVyUXQuY3BwCkBAIC03NCwxMyArNzQsMTggQEAgdm9pZCBUZXN0UnVu
bmVyOjppbnZhbGlkYXRlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIoKQogCiB2b2lkIFRlc3RSdW5u
ZXI6OmluaXRpYWxpemVXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcklmTmVlZGVkKCkKIHsKKyAgICBk
b3VibGUgdGltZXJJbnRlcnZhbDsKICAgICBpZiAocWdldGVudigiUVRfV0VCS0lUMl9ERUJVRyIp
ID09ICIxIikKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fd2FpdFRvRHVtcFdhdGNoZG9n
VGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgcmV0dXJuOworICAgIGlmIChtX3RpbWVvdXQgPiAw
KQorICAgICAgICB0aW1lckludGVydmFsID0gbV90aW1lb3V0OworICAgIGVsc2UKKyAgICAgICAg
dGltZXJJbnRlcnZhbCA9IHdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVySW50ZXJ2YWwgKiAxMDAwOwog
Ci0gICAgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5zdGFydCh3YWl0VG9EdW1wV2F0Y2hkb2dU
aW1lckludGVydmFsICogMTAwMCk7CisgICAgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5zdGFy
dCh0aW1lckludGVydmFsKTsKIH0KIAogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFRlc3RSdW5u
ZXI6OnBhdGhUb0xvY2FsUmVzb3VyY2UoSlNTdHJpbmdSZWYgdXJsKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBkY2JiYWQwLi44MzgyMTg3IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtODksNiArODksNyBAQCBU
ZXN0Q29udHJvbGxlcjo6VGVzdENvbnRyb2xsZXIoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3Zb
XSkKICAgICAsIG1fbm9UaW1lb3V0KGRlZmF1bHROb1RpbWVvdXQpCiAgICAgLCBtX3VzZVdhaXRU
b0R1bXBXYXRjaGRvZ1RpbWVyKHRydWUpCiAgICAgLCBtX2ZvcmNlTm9UaW1lb3V0KGZhbHNlKQor
ICAgICwgbV90aW1lb3V0KDApCiAgICAgLCBtX2RpZFByaW50V2ViUHJvY2Vzc0NyYXNoZWRNZXNz
YWdlKGZhbHNlKQogICAgICwgbV9zaG91bGRFeGl0V2hlbldlYlByb2Nlc3NDcmFzaGVzKHRydWUp
CiAgICAgLCBtX2JlZm9yZVVubG9hZFJldHVyblZhbHVlKHRydWUpCkBAIC0xNjgsNiArMTY5LDEx
IEBAIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXCiAgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgp
LmhhbmRsZUdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QocGVybWlzc2lvblJlcXVlc3QpOwog
fQogCitkb3VibGUgVGVzdENvbnRyb2xsZXI6OmdldEN1c3RvbVRpbWVvdXQoKQoreworICAgIHJl
dHVybiBtX3RpbWVvdXQ7Cit9CisKIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3Ro
ZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBXS1VSTFJlcXVlc3RSZWYsIFdLRGljdGlvbmFyeVJl
ZiwgV0tFdmVudE1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uLCBjb25zdCB2b2lkKikKIHsK
ICAgICBQbGF0Zm9ybVdlYlZpZXcqIHZpZXcgPSBuZXcgUGxhdGZvcm1XZWJWaWV3KFdLUGFnZUdl
dENvbnRleHQob2xkUGFnZSksIFdLUGFnZUdldFBhZ2VHcm91cChvbGRQYWdlKSk7CkBAIC01Nzgs
MTEgKzU4NCwxMiBAQCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50
VmFsdWVzKCkKIH0KIAogc3RydWN0IFRlc3RDb21tYW5kIHsKLSAgICBUZXN0Q29tbWFuZCgpIDog
c2hvdWxkRHVtcFBpeGVscyhmYWxzZSkgeyB9CisgICAgVGVzdENvbW1hbmQoKSA6IHNob3VsZER1
bXBQaXhlbHMoZmFsc2UpLCB0aW1lb3V0KDApIHsgfQogCiAgICAgc3RkOjpzdHJpbmcgcGF0aE9y
VVJMOwogICAgIGJvb2wgc2hvdWxkRHVtcFBpeGVsczsKICAgICBzdGQ6OnN0cmluZyBleHBlY3Rl
ZFBpeGVsSGFzaDsKKyAgICBkb3VibGUgdGltZW91dDsKIH07CiAKIGNsYXNzIENvbW1hbmRUb2tl
bml6ZXIgewpAQCAtNjQ0LDE3ICs2NTEsMjAgQEAgVGVzdENvbW1hbmQgcGFyc2VJbnB1dExpbmUo
Y29uc3Qgc3RkOjpzdHJpbmcmIGlucHV0TGluZSkKICAgICBpZiAoIXRva2VuaXplci5oYXNOZXh0
KCkpCiAgICAgICAgIGRpZShpbnB1dExpbmUpOwogCi0gICAgcmVzdWx0LnBhdGhPclVSTCA9IHRv
a2VuaXplci5uZXh0KCk7Ci0gICAgaWYgKCF0b2tlbml6ZXIuaGFzTmV4dCgpKQotICAgICAgICBy
ZXR1cm4gcmVzdWx0OwotCiAgICAgc3RkOjpzdHJpbmcgYXJnID0gdG9rZW5pemVyLm5leHQoKTsK
LSAgICBpZiAoYXJnICE9IHN0ZDo6c3RyaW5nKCItcCIpICYmIGFyZyAhPSBzdGQ6OnN0cmluZygi
LS1waXhlbC10ZXN0IikpCi0gICAgICAgIGRpZShpbnB1dExpbmUpOwotICAgIHJlc3VsdC5zaG91
bGREdW1wUGl4ZWxzID0gdHJ1ZTsKLQotICAgIGlmICh0b2tlbml6ZXIuaGFzTmV4dCgpKQotICAg
ICAgICByZXN1bHQuZXhwZWN0ZWRQaXhlbEhhc2ggPSB0b2tlbml6ZXIubmV4dCgpOworICAgIHJl
c3VsdC5wYXRoT3JVUkwgPSBhcmc7CisgICAgd2hpbGUgKHRva2VuaXplci5oYXNOZXh0KCkpIHsK
KyAgICAgICAgYXJnID0gdG9rZW5pemVyLm5leHQoKTsKKyAgICAgICAgaWYgKGFyZyA9PSBzdGQ6
OnN0cmluZygiLS10aW1lb3V0IikpIHsKKyAgICAgICAgICAgIHN0ZDo6c3RyaW5nIHRpbWVvdXRU
b2tlbiA9IHRva2VuaXplci5uZXh0KCk7CisgICAgICAgICAgICByZXN1bHQudGltZW91dCA9IGF0
b2YodGltZW91dFRva2VuLmNfc3RyKCkpOworICAgICAgICB9IGVsc2UgaWYgKGFyZyA9PSBzdGQ6
OnN0cmluZygiLXAiKSB8fCBhcmcgPT0gc3RkOjpzdHJpbmcoIi0tcGl4ZWwtdGVzdCIpKSB7Cisg
ICAgICAgICAgICByZXN1bHQuc2hvdWxkRHVtcFBpeGVscyA9IHRydWU7CisgICAgICAgICAgICBp
ZiAodG9rZW5pemVyLmhhc05leHQoKSkKKyAgICAgICAgICAgICAgICByZXN1bHQuZXhwZWN0ZWRQ
aXhlbEhhc2ggPSB0b2tlbml6ZXIubmV4dCgpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IGRpZShpbnB1dExpbmUpOworICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC02Njgs
NiArNjc4LDggQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cnVuVGVzdChjb25zdCBjaGFyKiBpbnB1
dExpbmUpCiAgICAgbV9jdXJyZW50SW52b2NhdGlvbiA9IGFkb3B0UHRyKG5ldyBUZXN0SW52b2Nh
dGlvbihjb21tYW5kLnBhdGhPclVSTCkpOwogICAgIGlmIChjb21tYW5kLnNob3VsZER1bXBQaXhl
bHMgfHwgbV9zaG91bGREdW1wUGl4ZWxzRm9yQWxsVGVzdHMpCiAgICAgICAgIG1fY3VycmVudElu
dm9jYXRpb24tPnNldElzUGl4ZWxUZXN0KGNvbW1hbmQuZXhwZWN0ZWRQaXhlbEhhc2gpOworICAg
IGlmIChjb21tYW5kLnRpbWVvdXQgPiAwKQorICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5z
ZXRDdXN0b21UaW1lb3V0KGNvbW1hbmQudGltZW91dCk7CiAKICAgICBtX2N1cnJlbnRJbnZvY2F0
aW9uLT5pbnZva2UoKTsKICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLmNsZWFyKCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggZThiNTQ1Ni4uMGQ3N2NiYiAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtNjQsNiArNjQsOCBAQCBw
dWJsaWM6CiAgICAgYm9vbCB1c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcigpIHsgcmV0dXJuIG1f
dXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXI7IH0KICAgICB2b2lkIHJ1blVudGlsKGJvb2wmIGRv
bmUsIFRpbWVvdXREdXJhdGlvbik7CiAgICAgdm9pZCBub3RpZnlEb25lKCk7CisKKyAgICBkb3Vi
bGUgZ2V0Q3VzdG9tVGltZW91dCgpOwogICAgIAogICAgIGJvb2wgYmVmb3JlVW5sb2FkUmV0dXJu
VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2JlZm9yZVVubG9hZFJldHVyblZhbHVlOyB9CiAgICAg
dm9pZCBzZXRCZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZShib29sIHZhbHVlKSB7IG1fYmVmb3JlVW5s
b2FkUmV0dXJuVmFsdWUgPSB2YWx1ZTsgfQpAQCAtMTY1LDYgKzE2Nyw4IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX3VzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyOwogICAgIGJvb2wgbV9mb3JjZU5v
VGltZW91dDsKIAorICAgIGRvdWJsZSBtX3RpbWVvdXQ7CisKICAgICBib29sIG1fZGlkUHJpbnRX
ZWJQcm9jZXNzQ3Jhc2hlZE1lc3NhZ2U7CiAgICAgYm9vbCBtX3Nob3VsZEV4aXRXaGVuV2ViUHJv
Y2Vzc0NyYXNoZXM7CiAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwCmluZGV4IDFjYjU2YmIuLjZlNDQ3NDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCkBAIC0xMDAsNiArMTAwLDcgQEAgVGVzdEludm9jYXRpb246OlRlc3RJ
bnZvY2F0aW9uKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwpCiAgICAgOiBtX3VybChBZG9w
dFdLLCBjcmVhdGVXS1VSTChwYXRoT3JVUkwuY19zdHIoKSkpCiAgICAgLCBtX3BhdGhPclVSTChw
YXRoT3JVUkwpCiAgICAgLCBtX2R1bXBQaXhlbHMoZmFsc2UpCisgICAgLCBtX3RpbWVvdXQoMCkK
ICAgICAsIG1fZ290SW5pdGlhbFJlc3BvbnNlKGZhbHNlKQogICAgICwgbV9nb3RGaW5hbE1lc3Nh
Z2UoZmFsc2UpCiAgICAgLCBtX2dvdFJlcGFpbnQoZmFsc2UpCkBAIC0xMTcsNiArMTE4LDExIEBA
IHZvaWQgVGVzdEludm9jYXRpb246OnNldElzUGl4ZWxUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBl
eHBlY3RlZFBpeGVsSGFzaCkKICAgICBtX2V4cGVjdGVkUGl4ZWxIYXNoID0gZXhwZWN0ZWRQaXhl
bEhhc2g7CiB9CiAKK3ZvaWQgVGVzdEludm9jYXRpb246OnNldEN1c3RvbVRpbWVvdXQoZG91Ymxl
IHRpbWVvdXQpCit7CisgICAgbV90aW1lb3V0ID0gdGltZW91dDsKK30KKwogc3RhdGljIGNvbnN0
IHVuc2lnbmVkIHczY1NWR1dpZHRoID0gNDgwOwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHczY1NW
R0hlaWdodCA9IDM2MDsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBub3JtYWxXaWR0aCA9IDgwMDsK
QEAgLTE4NCw2ICsxOTAsMTAgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6aW52b2tlKCkKICAgICBX
S1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IHVzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyVmFsdWUg
PSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkudXNlV2Fp
dFRvRHVtcFdhdGNoZG9nVGltZXIoKSkpOwogICAgIFdLRGljdGlvbmFyeUFkZEl0ZW0oYmVnaW5U
ZXN0TWVzc2FnZUJvZHkuZ2V0KCksIHVzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyS2V5LmdldCgp
LCB1c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lclZhbHVlLmdldCgpKTsKIAorICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiB0aW1lb3V0S2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiVGltZW91dCIpKTsKKyAgICBXS1JldGFpblB0cjxXS0RvdWJsZVJlZj4gdGlt
ZW91dFZhbHVlID0gYWRvcHRXSyhXS0RvdWJsZUNyZWF0ZShtX3RpbWVvdXQpKTsKKyAgICBXS0Rp
Y3Rpb25hcnlBZGRJdGVtKGJlZ2luVGVzdE1lc3NhZ2VCb2R5LmdldCgpLCB0aW1lb3V0S2V5Lmdl
dCgpLCB0aW1lb3V0VmFsdWUuZ2V0KCkpOworCiAgICAgV0tDb250ZXh0UG9zdE1lc3NhZ2VUb0lu
amVjdGVkQnVuZGxlKFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5jb250ZXh0KCksIG1lc3NhZ2VO
YW1lLmdldCgpLCBiZWdpblRlc3RNZXNzYWdlQm9keS5nZXQoKSk7CiAKICAgICBjb25zdCBjaGFy
KiBlcnJvck1lc3NhZ2UgPSAwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5o
CmluZGV4IGI1NTA2NTUuLjU1NmJlN2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmgKQEAgLTQwLDYgKzQwLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRJc1BpeGVs
VGVzdChjb25zdCBzdGQ6OnN0cmluZyYgZXhwZWN0ZWRQaXhlbEhhc2gpOwogCisgICAgdm9pZCBz
ZXRDdXN0b21UaW1lb3V0KGRvdWJsZSBkdXJhdGlvbik7CisKICAgICB2b2lkIGludm9rZSgpOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYg
bWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBtZXNzYWdlQm9keSk7CiAgICAgV0tSZXRhaW5QdHI8V0tU
eXBlUmVmPiBkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdL
U3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHkpOwpAQCAtNjIsNiAr
NjQsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kdW1wUGl4ZWxzOwogICAgIHN0ZDo6c3RyaW5n
IG1fZXhwZWN0ZWRQaXhlbEhhc2g7CiAKKyAgICBkb3VibGUgbV90aW1lb3V0OworCiAgICAgLy8g
SW52b2NhdGlvbiBzdGF0ZQogICAgIGJvb2wgbV9nb3RJbml0aWFsUmVzcG9uc2U7CiAgICAgYm9v
bCBtX2dvdEZpbmFsTWVzc2FnZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
cXQvVGVzdENvbnRyb2xsZXJRdC5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1Rlc3RD
b250cm9sbGVyUXQuY3BwCmluZGV4IDA0ZGRiOGIuLmFkNzY4MDcgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvcXQvVGVzdENvbnRyb2xsZXJRdC5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9xdC9UZXN0Q29udHJvbGxlclF0LmNwcApAQCAtNjIsMTIgKzYyLDE0IEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwoYm9vbCYgY29uZGl0aW9uLCBk
b3VibGUgdGltZW91dCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGludCB0aW1lb3V0
SW5NU2VjcyA9IHRpbWVvdXQgKiAxMDAwOworICAgIGRvdWJsZSB0aW1lb3V0SW5NU2VjcyA9IHRp
bWVvdXQgKiAxMDAwOwogICAgIFFFbGFwc2VkVGltZXIgdGltZXI7CiAgICAgdGltZXIuc3RhcnQo
KTsKICAgICB3aGlsZSAoIWNvbmRpdGlvbikgewotICAgICAgICBpZiAodGltZXIuZWxhcHNlZCgp
ID4gdGltZW91dEluTVNlY3MpCisgICAgICAgIGlmICh0aW1lci5lbGFwc2VkKCkgPiB0aW1lb3V0
SW5NU2VjcykgeworICAgICAgICAgICAgY29uZGl0aW9uID0gIWNvbmRpdGlvbjsKICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQogICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjpwcm9jZXNz
RXZlbnRzKFFFdmVudExvb3A6OkV4Y2x1ZGVVc2VySW5wdXRFdmVudHMsIHRpbWVvdXRJbk1TZWNz
IC0gdGltZXIuZWxhcHNlZCgpKTsKICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175201</attachid>
            <date>2012-11-20 06:29:30 -0800</date>
            <delta_ts>2012-11-21 00:25:59 -0800</delta_ts>
            <desc>updated patch</desc>
            <filename>per_test_timeout_K_changelog.patch</filename>
            <type>text/plain</type>
            <size>19919</size>
            <attacher name="János Badics">jbadics</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1N2Q5
YjM5Li4zNWVhMDA5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTItMTEtMjAgIErDoW5vcyBCYWRpY3MgIDxqYmFk
aWNzQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBbUXRdW05SV1RdIFBhc3MgLS10aW1lb3V0
IHRvIERSVC9XVFIgaWYgYSB0ZXN0IGlzIG1hcmtlZCBhcyBTTE9XLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA5NjguCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgZnVuY3Rpb25hbGl0eSBpbiBE
UlQgYW5kIFdUUiB0byB1c2UgYW55IHRpbWVvdXQgdmFsdWUgd2hpbGUgcnVubmluZworICAgICAg
ICBzbG93IHRlc3RzIChldmVudHVhbGx5LCBhbnkgdGVzdCkuIE5vdyBOUldUIC0tdGltZS1vdXQt
bXMgZGV0ZXJtaW5lcyB0aGUKKyAgICAgICAgdGltZW91dCB2YWx1ZSBmb3IgdGhlIHRlc3QuIEFk
ZGVkIGEgZmxhZyBpbiBOUldUIChzdXBwb3J0c19wZXJfdGVzdF90aW1lb3V0KQorICAgICAgICB0
byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBjdXJyZW50IHBvcnQgc3VwcG9ydHMgc2V0dGluZyB0aW1l
b3V0IHZhbHVlCisgICAgICAgIHBlciB0ZXN0IChpdCdzIEZhbHNlIGJ5IGRlZmF1bHQ7IEkgZW5h
YmxlZCBpdCBvbmx5IG9uIFF0KS4KKyAgICAgICAgQWxzbyBjb3JyZWN0ZWQgYSB0eXBvIGluIGRy
aXZlci5weQorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaDoKKyAg
ICAgICAgKFRlc3RDb21tYW5kOjpUZXN0Q29tbWFuZCk6CisgICAgICAgIChUZXN0Q29tbWFuZCk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwOgorICAg
ICAgICAocGFyc2VJbnB1dExpbmUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBS
ZW5kZXJUcmVlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHVtcFJlbmRlclRyZWU6OnByb2Nl
c3NMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OkR1bXBSZW5kZXJUcmVlOjpzZXRUaW1lb3V0KToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0Lmg6CisgICAgICAg
IChEdW1wUmVuZGVyVHJlZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9iYXNlLnB5OgorICAgICAgICAoUG9ydC5zdXBwb3J0c19wZXJfdGVzdF90aW1lb3V0
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5w
eToKKyAgICAgICAgKERyaXZlci5ydW5fdGVzdCk6CisgICAgICAgIChEcml2ZXIuX2NvbW1hbmRf
ZnJvbV9kcml2ZXJfaW5wdXQpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvcXQucHk6CisgICAgICAgIChRdFBvcnQuc3VwcG9ydHNfcGVyX3Rlc3RfdGltZW91
dCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpJbmplY3RlZEJ1bmRsZSk6
CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAg
ICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpiZWdpblRlc3RpbmcpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAo
V1RSOjpUZXN0UnVubmVyOjpzZXRDdXN0b21UaW1lb3V0KToKKyAgICAgICAgKFdUUik6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAg
ICAgIChUZXN0UnVubmVyKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL3F0L1Rlc3RSdW5uZXJRdC5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmluaXRp
YWxpemVXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcklmTmVlZGVkKToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OlRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmdldEN1
c3RvbVRpbWVvdXQpOgorICAgICAgICAoV1RSKToKKyAgICAgICAgKFdUUjo6VGVzdENvbW1hbmQ6
OlRlc3RDb21tYW5kKToKKyAgICAgICAgKFRlc3RDb21tYW5kKToKKyAgICAgICAgKFdUUjo6cGFy
c2VJbnB1dExpbmUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cnVuVGVzdCk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoVGVz
dENvbnRyb2xsZXIpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6VGVzdEludm9jYXRpb24pOgorICAg
ICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6c2V0Q3VzdG9tVGltZW91dCk6CisgICAgICAgIChX
VFIpOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6aW52b2tlKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmg6CisgICAgICAgIChUZXN0SW52b2NhdGlv
bik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9xdC9UZXN0Q29udHJvbGxlclF0LmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwpOgorCiAyMDEy
LTExLTIwICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAg
d2Via2l0cHkgdW5pdCB0ZXN0cyBzaG91bGQgcnVuIHNlcmlhbGx5IHdoZW4gY2hlY2tpbmcgY29k
ZSBjb3ZlcmFnZQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWUuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmgKaW5kZXggNGM2YTQ3
Mi4uNGRmY2M0NCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWUuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oCkBAIC02Niwx
MSArNjYsMTIgQEAgdm9pZCBkdW1wKCk7CiB2b2lkIGRpc3BsYXlXZWJWaWV3KCk7CiAKIHN0cnVj
dCBUZXN0Q29tbWFuZCB7Ci0gICAgVGVzdENvbW1hbmQoKSA6IHNob3VsZER1bXBQaXhlbHMoZmFs
c2UpIHsgfQorICAgIFRlc3RDb21tYW5kKCkgOiBzaG91bGREdW1wUGl4ZWxzKGZhbHNlKSwgdGlt
ZW91dCgzMDAwMCkgeyB9CiAKICAgICBzdGQ6OnN0cmluZyBwYXRoT3JVUkw7CiAgICAgYm9vbCBz
aG91bGREdW1wUGl4ZWxzOwogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkUGl4ZWxIYXNoOworICAg
IGRvdWJsZSB0aW1lb3V0OyAvLyBpbiBtcwogfTsKIAogVGVzdENvbW1hbmQgcGFyc2VJbnB1dExp
bmUoY29uc3Qgc3RkOjpzdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0R1bXBSZW5kZXJUcmVlQ29tbW9uLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlQ29tbW9uLmNwcAppbmRleCA0OGQ4MzIyLi4zY2I5N2ViIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNvbW1vbi5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwCkBAIC02NiwxNyArNjYsMjAgQEAg
VGVzdENvbW1hbmQgcGFyc2VJbnB1dExpbmUoY29uc3Qgc3RkOjpzdHJpbmcmIGlucHV0TGluZSkK
ICAgICBpZiAoIXRva2VuaXplci5oYXNOZXh0KCkpCiAgICAgICAgIGRpZShpbnB1dExpbmUpOwog
Ci0gICAgcmVzdWx0LnBhdGhPclVSTCA9IHRva2VuaXplci5uZXh0KCk7Ci0gICAgaWYgKCF0b2tl
bml6ZXIuaGFzTmV4dCgpKQotICAgICAgICByZXR1cm4gcmVzdWx0OwotCiAgICAgc3RkOjpzdHJp
bmcgYXJnID0gdG9rZW5pemVyLm5leHQoKTsKLSAgICBpZiAoYXJnICE9IHN0ZDo6c3RyaW5nKCIt
cCIpICYmIGFyZyAhPSBzdGQ6OnN0cmluZygiLS1waXhlbC10ZXN0IikpCi0gICAgICAgIGRpZShp
bnB1dExpbmUpOwotICAgIHJlc3VsdC5zaG91bGREdW1wUGl4ZWxzID0gdHJ1ZTsKLQotICAgIGlm
ICh0b2tlbml6ZXIuaGFzTmV4dCgpKQotICAgICAgICByZXN1bHQuZXhwZWN0ZWRQaXhlbEhhc2gg
PSB0b2tlbml6ZXIubmV4dCgpOworICAgIHJlc3VsdC5wYXRoT3JVUkwgPSBhcmc7CisgICAgd2hp
bGUgKHRva2VuaXplci5oYXNOZXh0KCkpIHsKKyAgICAgICAgYXJnID0gdG9rZW5pemVyLm5leHQo
KTsKKyAgICAgICAgaWYgKGFyZyA9PSBzdGQ6OnN0cmluZygiLS10aW1lb3V0IikpIHsKKyAgICAg
ICAgICAgIHN0ZDo6c3RyaW5nIHRpbWVvdXRUb2tlbiA9IHRva2VuaXplci5uZXh0KCk7CisgICAg
ICAgICAgICByZXN1bHQudGltZW91dCA9IGF0b2kodGltZW91dFRva2VuLmNfc3RyKCkpOworICAg
ICAgICB9IGVsc2UgaWYgKGFyZyA9PSBzdGQ6OnN0cmluZygiLXAiKSB8fCBhcmcgPT0gc3RkOjpz
dHJpbmcoIi0tcGl4ZWwtdGVzdCIpKSB7CisgICAgICAgICAgICByZXN1bHQuc2hvdWxkRHVtcFBp
eGVscyA9IHRydWU7CisgICAgICAgICAgICBpZiAodG9rZW5pemVyLmhhc05leHQoKSkKKyAgICAg
ICAgICAgICAgICByZXN1bHQuZXhwZWN0ZWRQaXhlbEhhc2ggPSB0b2tlbml6ZXIubmV4dCgpOwor
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGRpZShpbnB1dExpbmUpOworICAgIH0KIAogICAg
IHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9E
dW1wUmVuZGVyVHJlZVF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJU
cmVlUXQuY3BwCmluZGV4IDM0ZWU1YWQuLjQ4YzYzMDAgMTAwNzU1Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCkBAIC03MjEsNiArNzIxLDcgQEAgdm9pZCBEdW1w
UmVuZGVyVHJlZTo6cHJvY2Vzc0xpbmUoY29uc3QgUVN0cmluZyAmaW5wdXQpCiAgICAgICAgIG9w
ZW4oUVVybDo6ZnJvbUxvY2FsRmlsZShmaS5hYnNvbHV0ZUZpbGVQYXRoKCkpKTsKICAgICB9CiAK
KyAgICBzZXRUaW1lb3V0KGNvbW1hbmQudGltZW91dCk7CiAgICAgZmZsdXNoKHN0ZG91dCk7CiB9
CiAKQEAgLTExNDUsNyArMTE0Niw3IEBAIFFMaXN0PFdlYlBhZ2UqPiBEdW1wUmVuZGVyVHJlZTo6
Z2V0QWxsUGFnZXMoKSBjb25zdAogICAgIHJldHVybiBwYWdlczsKIH0KIAotdm9pZCBEdW1wUmVu
ZGVyVHJlZTo6c2V0VGltZW91dChpbnQgdGltZW91dCkKK3ZvaWQgRHVtcFJlbmRlclRyZWU6OnNl
dFRpbWVvdXQoZG91YmxlIHRpbWVvdXQpCiB7CiAgICAgbV9jb250cm9sbGVyLT5zZXRUaW1lb3V0
KHRpbWVvdXQpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJl
bmRlclRyZWVRdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5o
CmluZGV4IDk4NDI5YzQuLmViYjRjMzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3F0L0R1bXBSZW5kZXJUcmVlUXQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1w
UmVuZGVyVHJlZVF0LmgKQEAgLTEwMyw3ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRS
ZWRpcmVjdE91dHB1dEZpbGVOYW1lKGNvbnN0IFFTdHJpbmcmIGZpbGVOYW1lKSB7IG1fcmVkaXJl
Y3RPdXRwdXRGaWxlTmFtZSA9IGZpbGVOYW1lOyB9CiAgICAgdm9pZCBzZXRSZWRpcmVjdEVycm9y
RmlsZU5hbWUoY29uc3QgUVN0cmluZyYgZmlsZU5hbWUpIHsgbV9yZWRpcmVjdEVycm9yRmlsZU5h
bWUgPSBmaWxlTmFtZTsgfQogCi0gICAgdm9pZCBzZXRUaW1lb3V0KGludCk7CisgICAgdm9pZCBz
ZXRUaW1lb3V0KGRvdWJsZSk7CiAgICAgdm9pZCBzZXRTaG91bGRUaW1lb3V0KGJvb2wgZmxhZyk7
CiAgICAgdm9pZCBzZXRTaG91bGREdW1wUGl4ZWxzRm9yQWxsVGVzdHMoKSB7IG1fZHVtcFBpeGVs
c0ZvckFsbFRlc3RzID0gdHJ1ZTsgfQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKaW5kZXggYTE5YWYwOS4uNzk2Y2Y0NiAxMDA3NTUKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQpAQCAtMTUw
LDYgKzE1MCw5IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICBkZWYgYWRkaXRpb25hbF9kcnRf
ZmxhZyhzZWxmKToKICAgICAgICAgcmV0dXJuIFtdCiAKKyAgICBkZWYgc3VwcG9ydHNfcGVyX3Rl
c3RfdGltZW91dChzZWxmKToKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKICAgICBkZWYgZGVmYXVs
dF9waXhlbF90ZXN0cyhzZWxmKToKICAgICAgICAgIyBGSVhNRTogRGlzYWJsZSB1bnRpbCB0aGV5
IGFyZSBydW4gYnkgZGVmYXVsdCBvbiBidWlsZC53ZWJraXQub3JnLgogICAgICAgICByZXR1cm4g
RmFsc2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9k
cml2ZXIucHkKaW5kZXggNzk5M2QwNS4uNTM5NjEyZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkKQEAgLTE1MSw3ICsxNTEsNyBA
QCBjbGFzcyBEcml2ZXIob2JqZWN0KToKICAgICAgICAgdGhlIGRyaXZlciBpbiBhbiBpbmRldGVy
bWluYXRlIHN0YXRlLiBUaGUgdXBwZXIgbGF5ZXJzIG9mIHRoZSBwcm9ncmFtCiAgICAgICAgIGFy
ZSByZXNwb25zaWJsZSBmb3IgY2xlYW5pbmcgdXAgYW5kIGVuc3VyaW5nIHRoaW5ncyBhcmUgb2th
eS4KIAotICAgICAgICBSZXR1cm5zIGEgRHJpdmVyT3VwdXQgb2JqZWN0LgorICAgICAgICBSZXR1
cm5zIGEgRHJpdmVyT3V0cHV0IG9iamVjdC4KICAgICAgICAgIiIiCiAgICAgICAgIHN0YXJ0X3Rp
bWUgPSB0aW1lLnRpbWUoKQogICAgICAgICBzZWxmLnN0YXJ0KGRyaXZlcl9pbnB1dC5zaG91bGRf
cnVuX3BpeGVsX3Rlc3QsIGRyaXZlcl9pbnB1dC5hcmdzKQpAQCAtMzU0LDYgKzM1NCw4IEBAIGNs
YXNzIERyaXZlcihvYmplY3QpOgogICAgICAgICBhc3NlcnQgbm90IGRyaXZlcl9pbnB1dC5pbWFn
ZV9oYXNoIG9yIGRyaXZlcl9pbnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QKIAogICAgICAgICAj
ICcgaXMgdGhlIHNlcGFyYXRvciBiZXR3ZWVuIGFyZ3VtZW50cy4KKyAgICAgICAgaWYgc2VsZi5f
cG9ydC5zdXBwb3J0c19wZXJfdGVzdF90aW1lb3V0KCk6CisgICAgICAgICAgICBjb21tYW5kICs9
ICInLS10aW1lb3V0JyVzIiAlIGRyaXZlcl9pbnB1dC50aW1lb3V0CiAgICAgICAgIGlmIGRyaXZl
cl9pbnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3Q6CiAgICAgICAgICAgICBjb21tYW5kICs9ICIn
LS1waXhlbC10ZXN0IgogICAgICAgICBpZiBkcml2ZXJfaW5wdXQuaW1hZ2VfaGFzaDoKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcXQucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3F0LnB5CmluZGV4IDU1ZjEz
ZWUuLjg1NmI5MzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvcXQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9xdC5weQpAQCAtODAsNiArODAsOSBAQCBjbGFzcyBRdFBvcnQoUG9ydCk6CiAgICAgICAg
ICMgVGhlIFF0IHBvcnQgYnVpbGRzIERSVCBhcyBwYXJ0IG9mIHRoZSBtYWluIGJ1aWxkIHN0ZXAK
ICAgICAgICAgcmV0dXJuIFRydWUKIAorICAgIGRlZiBzdXBwb3J0c19wZXJfdGVzdF90aW1lb3V0
KHNlbGYpOgorICAgICAgICByZXR1cm4gVHJ1ZQorCiAgICAgZGVmIF9wYXRoX3RvX2RyaXZlcihz
ZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxkX3BhdGgoJ2Jpbi8lcycgJSBzZWxmLmRy
aXZlcl9uYW1lKCkpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggMDY4NGQ2ZC4uMTdmNWNmZCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHAKQEAgLTU1LDYgKzU1LDcgQEAgSW5qZWN0ZWRCdW5kbGU6OkluamVjdGVk
QnVuZGxlKCkKICAgICAsIG1fZHVtcFBpeGVscyhmYWxzZSkKICAgICAsIG1fdXNlV2FpdFRvRHVt
cFdhdGNoZG9nVGltZXIodHJ1ZSkKICAgICAsIG1fdXNlV29ya1F1ZXVlKGZhbHNlKQorICAgICwg
bV90aW1lb3V0KDApCiB7CiB9CiAKQEAgLTE1NCw2ICsxNTUsOSBAQCB2b2lkIEluamVjdGVkQnVu
ZGxlOjpkaWRSZWNlaXZlTWVzc2FnZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVm
IG1lc3NhZwogICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gdXNlV2FpdFRvRHVtcFdh
dGNoZG9nVGltZXJLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlVz
ZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyIikpOwogICAgICAgICBtX3VzZVdhaXRUb0R1bXBXYXRj
aGRvZ1RpbWVyID0gV0tCb29sZWFuR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihX
S0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgdXNlV2FpdFRv
RHVtcFdhdGNoZG9nVGltZXJLZXkuZ2V0KCkpKSk7CiAKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IHRpbWVvdXRLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIlRpbWVvdXQiKSk7CisgICAgICAgIG1fdGltZW91dCA9IFdLRG91YmxlR2V0VmFsdWUoc3Rh
dGljX2Nhc3Q8V0tEb3VibGVSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJv
ZHlEaWN0aW9uYXJ5LCB0aW1lb3V0S2V5LmdldCgpKSkpOworCiAgICAgICAgIFdLUmV0YWluUHRy
PFdLU3RyaW5nUmVmPiBhY2tNZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiQWNrIikpOwogICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gYWNr
TWVzc2FnZUJvZHkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkJlZ2lu
VGVzdCIpKTsKICAgICAgICAgV0tCdW5kbGVQb3N0TWVzc2FnZShtX2J1bmRsZSwgYWNrTWVzc2Fn
ZU5hbWUuZ2V0KCksIGFja01lc3NhZ2VCb2R5LmdldCgpKTsKQEAgLTI2Niw2ICsyNzAsOCBAQCB2
b2lkIEluamVjdGVkQnVuZGxlOjpiZWdpblRlc3RpbmcoV0tEaWN0aW9uYXJ5UmVmIHNldHRpbmdz
KQogICAgIG1fdGVzdFJ1bm5lci0+c2V0QWNjZXB0c0VkaXRpbmcodHJ1ZSk7CiAgICAgbV90ZXN0
UnVubmVyLT5zZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHModHJ1ZSk7CiAKKyAgICBtX3Rl
c3RSdW5uZXItPnNldEN1c3RvbVRpbWVvdXQobV90aW1lb3V0KTsKKwogICAgIHBhZ2UoKS0+cHJl
cGFyZSgpOwogCiAgICAgV0tCdW5kbGVDbGVhckFsbERhdGFiYXNlcyhtX2J1bmRsZSk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmgKaW5kZXggNDE0NjllYy4uNmFmZGJlOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtMTU2LDYgKzE1
Niw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2R1bXBQaXhlbHM7CiAgICAgYm9vbCBtX3VzZVdh
aXRUb0R1bXBXYXRjaGRvZ1RpbWVyOwogICAgIGJvb2wgbV91c2VXb3JrUXVldWU7CisgICAgZG91
YmxlIG1fdGltZW91dDsKIAogICAgIFdLUmV0YWluUHRyPFdLSW1hZ2VSZWY+IG1fcGl4ZWxSZXN1
bHQ7CiAgICAgV0tSZXRhaW5QdHI8V0tBcnJheVJlZj4gbV9yZXBhaW50UmVjdHM7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApp
bmRleCBhMjk0ZGE3Li41ZDBiMGFlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTE2Niw2ICsxNjYsMTEgQEAgdm9p
ZCBUZXN0UnVubmVyOjpub3RpZnlEb25lKCkKICAgICBtX3dhaXRUb0R1bXAgPSBmYWxzZTsKIH0K
IAordm9pZCBUZXN0UnVubmVyOjpzZXRDdXN0b21UaW1lb3V0KGRvdWJsZSB0aW1lb3V0KQorewor
ICAgIG1fdGltZW91dCA9IHRpbWVvdXQ7Cit9CisKIHVuc2lnbmVkIFRlc3RSdW5uZXI6Om51bWJl
ck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IElzIGl0IE9LIHRo
aXMgd29ya3Mgb25seSBmb3IgdGhlIG1haW4gZnJhbWU/CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDQ4YjkyMmMuLjE5MjMx
ODUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oCkBAIC0yNjEsNiArMjYxLDggQEAgcHVibGljOgogCiAgICAgYm9vbCBjYWxsU2hv
dWxkQ2xvc2VPbldlYlZpZXcoKTsKIAorICAgIHZvaWQgc2V0Q3VzdG9tVGltZW91dChkb3VibGUg
ZHVyYXRpb24pOworCiAgICAgLy8gV29yayBxdWV1ZS4KICAgICB2b2lkIHF1ZXVlQmFja05hdmln
YXRpb24odW5zaWduZWQgaG93RmFyQmFja3dhcmQpOwogICAgIHZvaWQgcXVldWVGb3J3YXJkTmF2
aWdhdGlvbih1bnNpZ25lZCBob3dGYXJGb3J3YXJkKTsKQEAgLTMxMyw2ICszMTUsOCBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9nbG9iYWxGbGFnOwogICAgIGJvb2wgbV9jdXN0b21GdWxsU2NyZWVu
QmVoYXZpb3I7CiAKKyAgICBkb3VibGUgbV90aW1lb3V0OworCiAgICAgYm9vbCBtX3VzZXJTdHls
ZVNoZWV0RW5hYmxlZDsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbV91c2VyU3R5bGVT
aGVldExvY2F0aW9uOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL3F0L1Rlc3RSdW5uZXJRdC5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKaW5kZXggMTY3MWFjNy4uNmMwMTMwMyAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9xdC9UZXN0
UnVubmVyUXQuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
cXQvVGVzdFJ1bm5lclF0LmNwcApAQCAtNzQsMTMgKzc0LDE4IEBAIHZvaWQgVGVzdFJ1bm5lcjo6
aW52YWxpZGF0ZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKCkKIAogdm9pZCBUZXN0UnVubmVyOjpp
bml0aWFsaXplV2FpdFRvRHVtcFdhdGNoZG9nVGltZXJJZk5lZWRlZCgpCiB7CisgICAgZG91Ymxl
IHRpbWVySW50ZXJ2YWw7CiAgICAgaWYgKHFnZXRlbnYoIlFUX1dFQktJVDJfREVCVUciKSA9PSAi
MSIpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVy
LmlzQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAobV90aW1lb3V0ID4gMCkKKyAg
ICAgICAgdGltZXJJbnRlcnZhbCA9IG1fdGltZW91dDsKKyAgICBlbHNlCisgICAgICAgIHRpbWVy
SW50ZXJ2YWwgPSB3YWl0VG9EdW1wV2F0Y2hkb2dUaW1lckludGVydmFsICogMTAwMDsKIAotICAg
IG1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIuc3RhcnQod2FpdFRvRHVtcFdhdGNoZG9nVGltZXJJ
bnRlcnZhbCAqIDEwMDApOworICAgIG1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIuc3RhcnQodGlt
ZXJJbnRlcnZhbCk7CiB9CiAKIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBUZXN0UnVubmVyOjpw
YXRoVG9Mb2NhbFJlc291cmNlKEpTU3RyaW5nUmVmIHVybCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMTQ1YzI3MC4uNWU4YzJmNSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTkzLDYgKzkzLDcgQEAgVGVzdENv
bnRyb2xsZXI6OlRlc3RDb250cm9sbGVyKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pCiAg
ICAgLCBtX25vVGltZW91dChkZWZhdWx0Tm9UaW1lb3V0KQogICAgICwgbV91c2VXYWl0VG9EdW1w
V2F0Y2hkb2dUaW1lcih0cnVlKQogICAgICwgbV9mb3JjZU5vVGltZW91dChmYWxzZSkKKyAgICAs
IG1fdGltZW91dCgwKQogICAgICwgbV9kaWRQcmludFdlYlByb2Nlc3NDcmFzaGVkTWVzc2FnZShm
YWxzZSkKICAgICAsIG1fc2hvdWxkRXhpdFdoZW5XZWJQcm9jZXNzQ3Jhc2hlcyh0cnVlKQogICAg
ICwgbV9iZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZSh0cnVlKQpAQCAtMTY5LDYgKzE3MCwxMSBAQCBz
dGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdL
UGFnZVJlZiwgV0tGcmFtZVJlZiwgVwogICAgIFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5oYW5k
bGVHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KHBlcm1pc3Npb25SZXF1ZXN0KTsKIH0KIAor
ZG91YmxlIFRlc3RDb250cm9sbGVyOjpnZXRDdXN0b21UaW1lb3V0KCkKK3sKKyAgICByZXR1cm4g
bV90aW1lb3V0OworfQorCiBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFn
ZShXS1BhZ2VSZWYgb2xkUGFnZSwgV0tVUkxSZXF1ZXN0UmVmLCBXS0RpY3Rpb25hcnlSZWYsIFdL
RXZlbnRNb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCopCiB7CiAgICAg
UGxhdGZvcm1XZWJWaWV3KiB2aWV3ID0gbmV3IFBsYXRmb3JtV2ViVmlldyhXS1BhZ2VHZXRDb250
ZXh0KG9sZFBhZ2UpLCBXS1BhZ2VHZXRQYWdlR3JvdXAob2xkUGFnZSkpOwpAQCAtNTg1LDExICs1
OTEsMTIgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVl
cygpCiB9CiAKIHN0cnVjdCBUZXN0Q29tbWFuZCB7Ci0gICAgVGVzdENvbW1hbmQoKSA6IHNob3Vs
ZER1bXBQaXhlbHMoZmFsc2UpIHsgfQorICAgIFRlc3RDb21tYW5kKCkgOiBzaG91bGREdW1wUGl4
ZWxzKGZhbHNlKSwgdGltZW91dCgwKSB7IH0KIAogICAgIHN0ZDo6c3RyaW5nIHBhdGhPclVSTDsK
ICAgICBib29sIHNob3VsZER1bXBQaXhlbHM7CiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRQaXhl
bEhhc2g7CisgICAgZG91YmxlIHRpbWVvdXQ7CiB9OwogCiBjbGFzcyBDb21tYW5kVG9rZW5pemVy
IHsKQEAgLTY1MSwxNyArNjU4LDIwIEBAIFRlc3RDb21tYW5kIHBhcnNlSW5wdXRMaW5lKGNvbnN0
IHN0ZDo6c3RyaW5nJiBpbnB1dExpbmUpCiAgICAgaWYgKCF0b2tlbml6ZXIuaGFzTmV4dCgpKQog
ICAgICAgICBkaWUoaW5wdXRMaW5lKTsKIAotICAgIHJlc3VsdC5wYXRoT3JVUkwgPSB0b2tlbml6
ZXIubmV4dCgpOwotICAgIGlmICghdG9rZW5pemVyLmhhc05leHQoKSkKLSAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLQogICAgIHN0ZDo6c3RyaW5nIGFyZyA9IHRva2VuaXplci5uZXh0KCk7Ci0gICAg
aWYgKGFyZyAhPSBzdGQ6OnN0cmluZygiLXAiKSAmJiBhcmcgIT0gc3RkOjpzdHJpbmcoIi0tcGl4
ZWwtdGVzdCIpKQotICAgICAgICBkaWUoaW5wdXRMaW5lKTsKLSAgICByZXN1bHQuc2hvdWxkRHVt
cFBpeGVscyA9IHRydWU7Ci0KLSAgICBpZiAodG9rZW5pemVyLmhhc05leHQoKSkKLSAgICAgICAg
cmVzdWx0LmV4cGVjdGVkUGl4ZWxIYXNoID0gdG9rZW5pemVyLm5leHQoKTsKKyAgICByZXN1bHQu
cGF0aE9yVVJMID0gYXJnOworICAgIHdoaWxlICh0b2tlbml6ZXIuaGFzTmV4dCgpKSB7CisgICAg
ICAgIGFyZyA9IHRva2VuaXplci5uZXh0KCk7CisgICAgICAgIGlmIChhcmcgPT0gc3RkOjpzdHJp
bmcoIi0tdGltZW91dCIpKSB7CisgICAgICAgICAgICBzdGQ6OnN0cmluZyB0aW1lb3V0VG9rZW4g
PSB0b2tlbml6ZXIubmV4dCgpOworICAgICAgICAgICAgcmVzdWx0LnRpbWVvdXQgPSBhdG9mKHRp
bWVvdXRUb2tlbi5jX3N0cigpKTsKKyAgICAgICAgfSBlbHNlIGlmIChhcmcgPT0gc3RkOjpzdHJp
bmcoIi1wIikgfHwgYXJnID09IHN0ZDo6c3RyaW5nKCItLXBpeGVsLXRlc3QiKSkgeworICAgICAg
ICAgICAgcmVzdWx0LnNob3VsZER1bXBQaXhlbHMgPSB0cnVlOworICAgICAgICAgICAgaWYgKHRv
a2VuaXplci5oYXNOZXh0KCkpCisgICAgICAgICAgICAgICAgcmVzdWx0LmV4cGVjdGVkUGl4ZWxI
YXNoID0gdG9rZW5pemVyLm5leHQoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBkaWUo
aW5wdXRMaW5lKTsKKyAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtNjc1LDYgKzY4
NSw4IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJ1blRlc3QoY29uc3QgY2hhciogaW5wdXRMaW5l
KQogICAgIG1fY3VycmVudEludm9jYXRpb24gPSBhZG9wdFB0cihuZXcgVGVzdEludm9jYXRpb24o
Y29tbWFuZC5wYXRoT3JVUkwpKTsKICAgICBpZiAoY29tbWFuZC5zaG91bGREdW1wUGl4ZWxzIHx8
IG1fc2hvdWxkRHVtcFBpeGVsc0ZvckFsbFRlc3RzKQogICAgICAgICBtX2N1cnJlbnRJbnZvY2F0
aW9uLT5zZXRJc1BpeGVsVGVzdChjb21tYW5kLmV4cGVjdGVkUGl4ZWxIYXNoKTsKKyAgICBpZiAo
Y29tbWFuZC50aW1lb3V0ID4gMCkKKyAgICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+c2V0Q3Vz
dG9tVGltZW91dChjb21tYW5kLnRpbWVvdXQpOwogCiAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+
aW52b2tlKCk7CiAgICAgbV9jdXJyZW50SW52b2NhdGlvbi5jbGVhcigpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDU2YzNjNDcuLmVjMTdjOTIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTY0LDYgKzY0LDggQEAgcHVibGlj
OgogICAgIGJvb2wgdXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIoKSB7IHJldHVybiBtX3VzZVdh
aXRUb0R1bXBXYXRjaGRvZ1RpbWVyOyB9CiAgICAgdm9pZCBydW5VbnRpbChib29sJiBkb25lLCBU
aW1lb3V0RHVyYXRpb24pOwogICAgIHZvaWQgbm90aWZ5RG9uZSgpOworCisgICAgZG91YmxlIGdl
dEN1c3RvbVRpbWVvdXQoKTsKICAgICAKICAgICBib29sIGJlZm9yZVVubG9hZFJldHVyblZhbHVl
KCkgY29uc3QgeyByZXR1cm4gbV9iZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZTsgfQogICAgIHZvaWQg
c2V0QmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUoYm9vbCB2YWx1ZSkgeyBtX2JlZm9yZVVubG9hZFJl
dHVyblZhbHVlID0gdmFsdWU7IH0KQEAgLTE2NSw2ICsxNjcsOCBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV91c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcjsKICAgICBib29sIG1fZm9yY2VOb1RpbWVv
dXQ7CiAKKyAgICBkb3VibGUgbV90aW1lb3V0OworCiAgICAgYm9vbCBtX2RpZFByaW50V2ViUHJv
Y2Vzc0NyYXNoZWRNZXNzYWdlOwogICAgIGJvb2wgbV9zaG91bGRFeGl0V2hlbldlYlByb2Nlc3ND
cmFzaGVzOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApp
bmRleCBlZjE3NDM3Li5iZjMwMmJmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcApAQCAtMTAwLDYgKzEwMCw3IEBAIFRlc3RJbnZvY2F0aW9uOjpUZXN0SW52b2Nh
dGlvbihjb25zdCBzdGQ6OnN0cmluZyYgcGF0aE9yVVJMKQogICAgIDogbV91cmwoQWRvcHRXSywg
Y3JlYXRlV0tVUkwocGF0aE9yVVJMLmNfc3RyKCkpKQogICAgICwgbV9wYXRoT3JVUkwocGF0aE9y
VVJMKQogICAgICwgbV9kdW1wUGl4ZWxzKGZhbHNlKQorICAgICwgbV90aW1lb3V0KDApCiAgICAg
LCBtX2dvdEluaXRpYWxSZXNwb25zZShmYWxzZSkKICAgICAsIG1fZ290RmluYWxNZXNzYWdlKGZh
bHNlKQogICAgICwgbV9nb3RSZXBhaW50KGZhbHNlKQpAQCAtMTE4LDYgKzExOSwxMSBAQCB2b2lk
IFRlc3RJbnZvY2F0aW9uOjpzZXRJc1BpeGVsVGVzdChjb25zdCBzdGQ6OnN0cmluZyYgZXhwZWN0
ZWRQaXhlbEhhc2gpCiAgICAgbV9leHBlY3RlZFBpeGVsSGFzaCA9IGV4cGVjdGVkUGl4ZWxIYXNo
OwogfQogCit2b2lkIFRlc3RJbnZvY2F0aW9uOjpzZXRDdXN0b21UaW1lb3V0KGRvdWJsZSB0aW1l
b3V0KQoreworICAgIG1fdGltZW91dCA9IHRpbWVvdXQ7Cit9CisKIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCB3M2NTVkdXaWR0aCA9IDQ4MDsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB3M2NTVkdIZWln
aHQgPSAzNjA7CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgbm9ybWFsV2lkdGggPSA4MDA7CkBAIC0x
ODUsNiArMTkxLDEwIEBAIHZvaWQgVGVzdEludm9jYXRpb246Omludm9rZSgpCiAgICAgV0tSZXRh
aW5QdHI8V0tCb29sZWFuUmVmPiB1c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lclZhbHVlID0gYWRv
cHRXSyhXS0Jvb2xlYW5DcmVhdGUoVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLnVzZVdhaXRUb0R1
bXBXYXRjaGRvZ1RpbWVyKCkpKTsKICAgICBXS0RpY3Rpb25hcnlBZGRJdGVtKGJlZ2luVGVzdE1l
c3NhZ2VCb2R5LmdldCgpLCB1c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcktleS5nZXQoKSwgdXNl
V2FpdFRvRHVtcFdhdGNoZG9nVGltZXJWYWx1ZS5nZXQoKSk7CiAKKyAgICBXS1JldGFpblB0cjxX
S1N0cmluZ1JlZj4gdGltZW91dEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIlRpbWVvdXQiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tEb3VibGVSZWY+IHRpbWVvdXRW
YWx1ZSA9IGFkb3B0V0soV0tEb3VibGVDcmVhdGUobV90aW1lb3V0KSk7CisgICAgV0tEaWN0aW9u
YXJ5QWRkSXRlbShiZWdpblRlc3RNZXNzYWdlQm9keS5nZXQoKSwgdGltZW91dEtleS5nZXQoKSwg
dGltZW91dFZhbHVlLmdldCgpKTsKKwogICAgIFdLQ29udGV4dFBvc3RNZXNzYWdlVG9JbmplY3Rl
ZEJ1bmRsZShUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkuY29udGV4dCgpLCBtZXNzYWdlTmFtZS5n
ZXQoKSwgYmVnaW5UZXN0TWVzc2FnZUJvZHkuZ2V0KCkpOwogCiAgICAgVGVzdENvbnRyb2xsZXI6
OnNoYXJlZCgpLnJ1blVudGlsKG1fZ290SW5pdGlhbFJlc3BvbnNlLCBUZXN0Q29udHJvbGxlcjo6
U2hvcnRUaW1lb3V0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAppbmRl
eCBjMTRiMDYwLi4wOTk5OWU2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5oCkBAIC00MCw2ICs0MCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0SXNQaXhlbFRlc3Qo
Y29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVjdGVkUGl4ZWxIYXNoKTsKIAorICAgIHZvaWQgc2V0Q3Vz
dG9tVGltZW91dChkb3VibGUgZHVyYXRpb24pOworCiAgICAgdm9pZCBpbnZva2UoKTsKICAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1lc3Nh
Z2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHkpOwogICAgIFdLUmV0YWluUHRyPFdLVHlwZVJl
Zj4gZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmlu
Z1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5KTsKQEAgLTYyLDYgKzY0LDgg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fZHVtcFBpeGVsczsKICAgICBzdGQ6OnN0cmluZyBtX2V4
cGVjdGVkUGl4ZWxIYXNoOwogCisgICAgZG91YmxlIG1fdGltZW91dDsKKwogICAgIC8vIEludm9j
YXRpb24gc3RhdGUKICAgICBib29sIG1fZ290SW5pdGlhbFJlc3BvbnNlOwogICAgIGJvb2wgbV9n
b3RGaW5hbE1lc3NhZ2U7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1Rl
c3RDb250cm9sbGVyUXQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9UZXN0Q29udHJv
bGxlclF0LmNwcAppbmRleCAwNGRkYjhiLi5hZDc2ODA3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL3F0L1Rlc3RDb250cm9sbGVyUXQuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvcXQvVGVzdENvbnRyb2xsZXJRdC5jcHAKQEAgLTYyLDEyICs2MiwxNCBAQCB2b2lk
IFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJ1blVudGlsKGJvb2wmIGNvbmRpdGlvbiwgZG91Ymxl
IHRpbWVvdXQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpbnQgdGltZW91dEluTVNl
Y3MgPSB0aW1lb3V0ICogMTAwMDsKKyAgICBkb3VibGUgdGltZW91dEluTVNlY3MgPSB0aW1lb3V0
ICogMTAwMDsKICAgICBRRWxhcHNlZFRpbWVyIHRpbWVyOwogICAgIHRpbWVyLnN0YXJ0KCk7CiAg
ICAgd2hpbGUgKCFjb25kaXRpb24pIHsKLSAgICAgICAgaWYgKHRpbWVyLmVsYXBzZWQoKSA+IHRp
bWVvdXRJbk1TZWNzKQorICAgICAgICBpZiAodGltZXIuZWxhcHNlZCgpID4gdGltZW91dEluTVNl
Y3MpIHsKKyAgICAgICAgICAgIGNvbmRpdGlvbiA9ICFjb25kaXRpb247CiAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KICAgICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6cHJvY2Vzc0V2ZW50
cyhRRXZlbnRMb29wOjpFeGNsdWRlVXNlcklucHV0RXZlbnRzLCB0aW1lb3V0SW5NU2VjcyAtIHRp
bWVyLmVsYXBzZWQoKSk7CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175356</attachid>
            <date>2012-11-21 00:25:59 -0800</date>
            <delta_ts>2012-11-30 06:17:41 -0800</delta_ts>
            <desc>patch</desc>
            <filename>per_test_timeout_L_changelog.patch</filename>
            <type>text/plain</type>
            <size>18804</size>
            <attacher name="János Badics">jbadics</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1N2Q5
YjM5Li41NTBhZDA2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTItMTEtMjAgIErDoW5vcyBCYWRpY3MgIDxqYmFk
aWNzQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBbUXRdW05SV1RdIFBhc3MgLS10aW1lb3V0
IHRvIERSVC9XVFIgaWYgYSB0ZXN0IGlzIG1hcmtlZCBhcyBTTE9XLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA5NjguCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgZnVuY3Rpb25hbGl0eSBpbiBE
UlQgYW5kIFdUUiB0byB1c2UgYW55IHRpbWVvdXQgdmFsdWUgd2hpbGUgcnVubmluZworICAgICAg
ICBzbG93IHRlc3RzIChldmVudHVhbGx5LCBhbnkgdGVzdCkuIE5vdyBOUldUIC0tdGltZS1vdXQt
bXMgZGV0ZXJtaW5lcyB0aGUKKyAgICAgICAgdGltZW91dCB2YWx1ZSBmb3IgdGhlIHRlc3QuIEFk
ZGVkIGEgZmxhZyBpbiBOUldUIChzdXBwb3J0c19wZXJfdGVzdF90aW1lb3V0KQorICAgICAgICB0
byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBjdXJyZW50IHBvcnQgc3VwcG9ydHMgc2V0dGluZyB0aW1l
b3V0IHZhbHVlCisgICAgICAgIHBlciB0ZXN0IChpdCdzIEZhbHNlIGJ5IGRlZmF1bHQ7IEkgZW5h
YmxlZCBpdCBvbmx5IG9uIFF0KS4KKyAgICAgICAgQWxzbyBjb3JyZWN0ZWQgYSB0eXBvIGluIGRy
aXZlci5weQorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaDoKKyAg
ICAgICAgKFRlc3RDb21tYW5kOjpUZXN0Q29tbWFuZCk6CisgICAgICAgIChUZXN0Q29tbWFuZCk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwOgorICAg
ICAgICAocGFyc2VJbnB1dExpbmUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBS
ZW5kZXJUcmVlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHVtcFJlbmRlclRyZWU6OnByb2Nl
c3NMaW5lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jh
c2UucHk6CisgICAgICAgIChQb3J0LnN1cHBvcnRzX3Blcl90ZXN0X3RpbWVvdXQpOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5OgorICAgICAg
ICAoRHJpdmVyLnJ1bl90ZXN0KToKKyAgICAgICAgKERyaXZlci5fY29tbWFuZF9mcm9tX2RyaXZl
cl9pbnB1dCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9x
dC5weToKKyAgICAgICAgKFF0UG9ydC5zdXBwb3J0c19wZXJfdGVzdF90aW1lb3V0KToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoK
KyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OkluamVjdGVkQnVuZGxlKToKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdUUjo6
SW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVzdGluZyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RS
dW5uZXI6OnNldEN1c3RvbVRpbWVvdXQpOgorICAgICAgICAoV1RSKToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RS
dW5uZXIpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvVGVz
dFJ1bm5lclF0LmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6aW5pdGlhbGl6ZVdhaXRU
b0R1bXBXYXRjaGRvZ1RpbWVySWZOZWVkZWQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6VGVzdENv
bnRyb2xsZXIpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Z2V0Q3VzdG9tVGltZW91
dCk6CisgICAgICAgIChXVFIpOgorICAgICAgICAoV1RSOjpUZXN0Q29tbWFuZDo6VGVzdENvbW1h
bmQpOgorICAgICAgICAoVGVzdENvbW1hbmQpOgorICAgICAgICAoV1RSOjpwYXJzZUlucHV0TGlu
ZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpydW5UZXN0KToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChUZXN0Q29udHJvbGxl
cik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpUZXN0SW52b2NhdGlvbik6CisgICAgICAgIChXVFI6
OlRlc3RJbnZvY2F0aW9uOjpzZXRDdXN0b21UaW1lb3V0KToKKyAgICAgICAgKFdUUik6CisgICAg
ICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjppbnZva2UpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uaDoKKyAgICAgICAgKFRlc3RJbnZvY2F0aW9uKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL3F0L1Rlc3RDb250cm9sbGVyUXQuY3BwOgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRpbCk6CisKIDIwMTItMTEtMjAgIFph
biBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KIAogICAgICAgICB3ZWJraXRweSB1
bml0IHRlc3RzIHNob3VsZCBydW4gc2VyaWFsbHkgd2hlbiBjaGVja2luZyBjb2RlIGNvdmVyYWdl
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaAppbmRleCA0YzZhNDcyLi42Mjc4OWI1
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmgKQEAgLTY2LDExICs2NiwxMiBA
QCB2b2lkIGR1bXAoKTsKIHZvaWQgZGlzcGxheVdlYlZpZXcoKTsKIAogc3RydWN0IFRlc3RDb21t
YW5kIHsKLSAgICBUZXN0Q29tbWFuZCgpIDogc2hvdWxkRHVtcFBpeGVscyhmYWxzZSkgeyB9Cisg
ICAgVGVzdENvbW1hbmQoKSA6IHNob3VsZER1bXBQaXhlbHMoZmFsc2UpLCB0aW1lb3V0KDMwMDAw
KSB7IH0KIAogICAgIHN0ZDo6c3RyaW5nIHBhdGhPclVSTDsKICAgICBib29sIHNob3VsZER1bXBQ
aXhlbHM7CiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRQaXhlbEhhc2g7CisgICAgaW50IHRpbWVv
dXQ7IC8vIGluIG1zCiB9OwogCiBUZXN0Q29tbWFuZCBwYXJzZUlucHV0TGluZShjb25zdCBzdGQ6
OnN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWVDb21tb24uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24u
Y3BwCmluZGV4IDQ4ZDgzMjIuLjNjYjk3ZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0R1bXBSZW5kZXJUcmVlQ29tbW9uLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9E
dW1wUmVuZGVyVHJlZUNvbW1vbi5jcHAKQEAgLTY2LDE3ICs2NiwyMCBAQCBUZXN0Q29tbWFuZCBw
YXJzZUlucHV0TGluZShjb25zdCBzdGQ6OnN0cmluZyYgaW5wdXRMaW5lKQogICAgIGlmICghdG9r
ZW5pemVyLmhhc05leHQoKSkKICAgICAgICAgZGllKGlucHV0TGluZSk7CiAKLSAgICByZXN1bHQu
cGF0aE9yVVJMID0gdG9rZW5pemVyLm5leHQoKTsKLSAgICBpZiAoIXRva2VuaXplci5oYXNOZXh0
KCkpCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0KICAgICBzdGQ6OnN0cmluZyBhcmcgPSB0b2tl
bml6ZXIubmV4dCgpOwotICAgIGlmIChhcmcgIT0gc3RkOjpzdHJpbmcoIi1wIikgJiYgYXJnICE9
IHN0ZDo6c3RyaW5nKCItLXBpeGVsLXRlc3QiKSkKLSAgICAgICAgZGllKGlucHV0TGluZSk7Ci0g
ICAgcmVzdWx0LnNob3VsZER1bXBQaXhlbHMgPSB0cnVlOwotCi0gICAgaWYgKHRva2VuaXplci5o
YXNOZXh0KCkpCi0gICAgICAgIHJlc3VsdC5leHBlY3RlZFBpeGVsSGFzaCA9IHRva2VuaXplci5u
ZXh0KCk7CisgICAgcmVzdWx0LnBhdGhPclVSTCA9IGFyZzsKKyAgICB3aGlsZSAodG9rZW5pemVy
Lmhhc05leHQoKSkgeworICAgICAgICBhcmcgPSB0b2tlbml6ZXIubmV4dCgpOworICAgICAgICBp
ZiAoYXJnID09IHN0ZDo6c3RyaW5nKCItLXRpbWVvdXQiKSkgeworICAgICAgICAgICAgc3RkOjpz
dHJpbmcgdGltZW91dFRva2VuID0gdG9rZW5pemVyLm5leHQoKTsKKyAgICAgICAgICAgIHJlc3Vs
dC50aW1lb3V0ID0gYXRvaSh0aW1lb3V0VG9rZW4uY19zdHIoKSk7CisgICAgICAgIH0gZWxzZSBp
ZiAoYXJnID09IHN0ZDo6c3RyaW5nKCItcCIpIHx8IGFyZyA9PSBzdGQ6OnN0cmluZygiLS1waXhl
bC10ZXN0IikpIHsKKyAgICAgICAgICAgIHJlc3VsdC5zaG91bGREdW1wUGl4ZWxzID0gdHJ1ZTsK
KyAgICAgICAgICAgIGlmICh0b2tlbml6ZXIuaGFzTmV4dCgpKQorICAgICAgICAgICAgICAgIHJl
c3VsdC5leHBlY3RlZFBpeGVsSGFzaCA9IHRva2VuaXplci5uZXh0KCk7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgZGllKGlucHV0TGluZSk7CisgICAgfQogCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVl
UXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKaW5k
ZXggMzRlZTVhZC4uZTY0MWNkYyAxMDA3NTUKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
RHVtcFJlbmRlclRyZWVRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJl
bmRlclRyZWVRdC5jcHAKQEAgLTcyMSw2ICs3MjEsOCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlOjpw
cm9jZXNzTGluZShjb25zdCBRU3RyaW5nICZpbnB1dCkKICAgICAgICAgb3BlbihRVXJsOjpmcm9t
TG9jYWxGaWxlKGZpLmFic29sdXRlRmlsZVBhdGgoKSkpOwogICAgIH0KIAorICAgIGlmIChjb21t
YW5kLnRpbWVvdXQgPiAwKQorICAgICAgICBzZXRUaW1lb3V0KGNvbW1hbmQudGltZW91dCk7CiAg
ICAgZmZsdXNoKHN0ZG91dCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQppbmRleCBhMTlhZjA5Li43OTZjZjQ2IDEwMDc1NQotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CkBAIC0xNTAs
NiArMTUwLDkgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgIGRlZiBhZGRpdGlvbmFsX2RydF9m
bGFnKHNlbGYpOgogICAgICAgICByZXR1cm4gW10KIAorICAgIGRlZiBzdXBwb3J0c19wZXJfdGVz
dF90aW1lb3V0KHNlbGYpOgorICAgICAgICByZXR1cm4gRmFsc2UKKwogICAgIGRlZiBkZWZhdWx0
X3BpeGVsX3Rlc3RzKHNlbGYpOgogICAgICAgICAjIEZJWE1FOiBEaXNhYmxlIHVudGlsIHRoZXkg
YXJlIHJ1biBieSBkZWZhdWx0IG9uIGJ1aWxkLndlYmtpdC5vcmcuCiAgICAgICAgIHJldHVybiBG
YWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Ry
aXZlci5weQppbmRleCA3OTkzZDA1Li41Mzk2MTJlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weQpAQCAtMTUxLDcgKzE1MSw3IEBA
IGNsYXNzIERyaXZlcihvYmplY3QpOgogICAgICAgICB0aGUgZHJpdmVyIGluIGFuIGluZGV0ZXJt
aW5hdGUgc3RhdGUuIFRoZSB1cHBlciBsYXllcnMgb2YgdGhlIHByb2dyYW0KICAgICAgICAgYXJl
IHJlc3BvbnNpYmxlIGZvciBjbGVhbmluZyB1cCBhbmQgZW5zdXJpbmcgdGhpbmdzIGFyZSBva2F5
LgogCi0gICAgICAgIFJldHVybnMgYSBEcml2ZXJPdXB1dCBvYmplY3QuCisgICAgICAgIFJldHVy
bnMgYSBEcml2ZXJPdXRwdXQgb2JqZWN0LgogICAgICAgICAiIiIKICAgICAgICAgc3RhcnRfdGlt
ZSA9IHRpbWUudGltZSgpCiAgICAgICAgIHNlbGYuc3RhcnQoZHJpdmVyX2lucHV0LnNob3VsZF9y
dW5fcGl4ZWxfdGVzdCwgZHJpdmVyX2lucHV0LmFyZ3MpCkBAIC0zNTQsNiArMzU0LDggQEAgY2xh
c3MgRHJpdmVyKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCBub3QgZHJpdmVyX2lucHV0LmltYWdl
X2hhc2ggb3IgZHJpdmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdAogCiAgICAgICAgICMg
JyBpcyB0aGUgc2VwYXJhdG9yIGJldHdlZW4gYXJndW1lbnRzLgorICAgICAgICBpZiBzZWxmLl9w
b3J0LnN1cHBvcnRzX3Blcl90ZXN0X3RpbWVvdXQoKToKKyAgICAgICAgICAgIGNvbW1hbmQgKz0g
IictLXRpbWVvdXQnJXMiICUgZHJpdmVyX2lucHV0LnRpbWVvdXQKICAgICAgICAgaWYgZHJpdmVy
X2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdDoKICAgICAgICAgICAgIGNvbW1hbmQgKz0gIict
LXBpeGVsLXRlc3QiCiAgICAgICAgIGlmIGRyaXZlcl9pbnB1dC5pbWFnZV9oYXNoOgpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9xdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcXQucHkKaW5kZXggNTVmMTNl
ZS4uODU2YjkzMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9xdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3F0LnB5CkBAIC04MCw2ICs4MCw5IEBAIGNsYXNzIFF0UG9ydChQb3J0KToKICAgICAgICAg
IyBUaGUgUXQgcG9ydCBidWlsZHMgRFJUIGFzIHBhcnQgb2YgdGhlIG1haW4gYnVpbGQgc3RlcAog
ICAgICAgICByZXR1cm4gVHJ1ZQogCisgICAgZGVmIHN1cHBvcnRzX3Blcl90ZXN0X3RpbWVvdXQo
c2VsZik6CisgICAgICAgIHJldHVybiBUcnVlCisKICAgICBkZWYgX3BhdGhfdG9fZHJpdmVyKHNl
bGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfcGF0aCgnYmluLyVzJyAlIHNlbGYuZHJp
dmVyX25hbWUoKSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCAwNjg0ZDZkLi4xMWMwY2FiIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmNwcApAQCAtNTUsNiArNTUsNyBAQCBJbmplY3RlZEJ1bmRsZTo6SW5qZWN0ZWRC
dW5kbGUoKQogICAgICwgbV9kdW1wUGl4ZWxzKGZhbHNlKQogICAgICwgbV91c2VXYWl0VG9EdW1w
V2F0Y2hkb2dUaW1lcih0cnVlKQogICAgICwgbV91c2VXb3JrUXVldWUoZmFsc2UpCisgICAgLCBt
X3RpbWVvdXQoMCkKIHsKIH0KIApAQCAtMTU0LDYgKzE1NSw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5k
bGU6OmRpZFJlY2VpdmVNZXNzYWdlKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYg
bWVzc2FnCiAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB1c2VXYWl0VG9EdW1wV2F0
Y2hkb2dUaW1lcktleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVXNl
V2FpdFRvRHVtcFdhdGNoZG9nVGltZXIiKSk7CiAgICAgICAgIG1fdXNlV2FpdFRvRHVtcFdhdGNo
ZG9nVGltZXIgPSBXS0Jvb2xlYW5HZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KFdL
RGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB1c2VXYWl0VG9E
dW1wV2F0Y2hkb2dUaW1lcktleS5nZXQoKSkpKTsKIAorICAgICAgICBXS1JldGFpblB0cjxXS1N0
cmluZ1JlZj4gdGltZW91dEtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiVGltZW91dCIpKTsKKyAgICAgICAgbV90aW1lb3V0ID0gKGludClXS1VJbnQ2NEdldFZhbHVl
KHN0YXRpY19jYXN0PFdLVUludDY0UmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3Nh
Z2VCb2R5RGljdGlvbmFyeSwgdGltZW91dEtleS5nZXQoKSkpKTsKKwogICAgICAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gYWNrTWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIkFjayIpKTsKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+
IGFja01lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJC
ZWdpblRlc3QiKSk7CiAgICAgICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UobV9idW5kbGUsIGFja01l
c3NhZ2VOYW1lLmdldCgpLCBhY2tNZXNzYWdlQm9keS5nZXQoKSk7CkBAIC0yNjYsNiArMjcwLDgg
QEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6YmVnaW5UZXN0aW5nKFdLRGljdGlvbmFyeVJlZiBzZXR0
aW5ncykKICAgICBtX3Rlc3RSdW5uZXItPnNldEFjY2VwdHNFZGl0aW5nKHRydWUpOwogICAgIG1f
dGVzdFJ1bm5lci0+c2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKHRydWUpOwogCisgICAg
bV90ZXN0UnVubmVyLT5zZXRDdXN0b21UaW1lb3V0KG1fdGltZW91dCk7CisKICAgICBwYWdlKCkt
PnByZXBhcmUoKTsKIAogICAgIFdLQnVuZGxlQ2xlYXJBbGxEYXRhYmFzZXMobV9idW5kbGUpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5oCmluZGV4IDQxNDY5ZWMuLmZiNjIzZDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKQEAgLTE1Niw2
ICsxNTYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kdW1wUGl4ZWxzOwogICAgIGJvb2wgbV91
c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcjsKICAgICBib29sIG1fdXNlV29ya1F1ZXVlOworICAg
IGludCBtX3RpbWVvdXQ7CiAKICAgICBXS1JldGFpblB0cjxXS0ltYWdlUmVmPiBtX3BpeGVsUmVz
dWx0OwogICAgIFdLUmV0YWluUHRyPFdLQXJyYXlSZWY+IG1fcmVwYWludFJlY3RzOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAK
aW5kZXggYTI5NGRhNy4uZGIwZTZhMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xNjYsNiArMTY2LDExIEBAIHZv
aWQgVGVzdFJ1bm5lcjo6bm90aWZ5RG9uZSgpCiAgICAgbV93YWl0VG9EdW1wID0gZmFsc2U7CiB9
CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0Q3VzdG9tVGltZW91dChpbnQgdGltZW91dCkKK3sKKyAg
ICBtX3RpbWVvdXQgPSB0aW1lb3V0OworfQorCiB1bnNpZ25lZCBUZXN0UnVubmVyOjpudW1iZXJP
ZkFjdGl2ZUFuaW1hdGlvbnMoKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBJcyBpdCBPSyB0aGlz
IHdvcmtzIG9ubHkgZm9yIHRoZSBtYWluIGZyYW1lPwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCA0OGI5MjJjLi5hYzdlODRl
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuaApAQCAtMjYxLDYgKzI2MSw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgY2FsbFNob3Vs
ZENsb3NlT25XZWJWaWV3KCk7CiAKKyAgICB2b2lkIHNldEN1c3RvbVRpbWVvdXQoaW50IGR1cmF0
aW9uKTsKKwogICAgIC8vIFdvcmsgcXVldWUuCiAgICAgdm9pZCBxdWV1ZUJhY2tOYXZpZ2F0aW9u
KHVuc2lnbmVkIGhvd0ZhckJhY2t3YXJkKTsKICAgICB2b2lkIHF1ZXVlRm9yd2FyZE5hdmlnYXRp
b24odW5zaWduZWQgaG93RmFyRm9yd2FyZCk7CkBAIC0zMTMsNiArMzE1LDggQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fZ2xvYmFsRmxhZzsKICAgICBib29sIG1fY3VzdG9tRnVsbFNjcmVlbkJlaGF2
aW9yOwogCisgICAgaW50IG1fdGltZW91dDsKKwogICAgIGJvb2wgbV91c2VyU3R5bGVTaGVldEVu
YWJsZWQ7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1fdXNlclN0eWxlU2hlZXRMb2Nh
dGlvbjsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9xdC9UZXN0UnVubmVyUXQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9xdC9UZXN0UnVubmVyUXQuY3BwCmluZGV4IDE2NzFhYzcuLjk1ZWQ0NmQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvVGVzdFJ1bm5lclF0
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3F0L1Rlc3RS
dW5uZXJRdC5jcHAKQEAgLTc0LDEzICs3NCwxOCBAQCB2b2lkIFRlc3RSdW5uZXI6OmludmFsaWRh
dGVXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcigpCiAKIHZvaWQgVGVzdFJ1bm5lcjo6aW5pdGlhbGl6
ZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVySWZOZWVkZWQoKQogeworICAgIGludCB0aW1lckludGVy
dmFsOwogICAgIGlmIChxZ2V0ZW52KCJRVF9XRUJLSVQyX0RFQlVHIikgPT0gIjEiKQogICAgICAg
ICByZXR1cm47CiAKICAgICBpZiAobV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5pc0FjdGl2ZSgp
KQogICAgICAgICByZXR1cm47CisgICAgaWYgKG1fdGltZW91dCA+IDApCisgICAgICAgIHRpbWVy
SW50ZXJ2YWwgPSBtX3RpbWVvdXQ7CisgICAgZWxzZQorICAgICAgICB0aW1lckludGVydmFsID0g
d2FpdFRvRHVtcFdhdGNoZG9nVGltZXJJbnRlcnZhbCAqIDEwMDA7CiAKLSAgICBtX3dhaXRUb0R1
bXBXYXRjaGRvZ1RpbWVyLnN0YXJ0KHdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVySW50ZXJ2YWwgKiAx
MDAwKTsKKyAgICBtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyLnN0YXJ0KHRpbWVySW50ZXJ2YWwp
OwogfQogCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVGVzdFJ1bm5lcjo6cGF0aFRvTG9jYWxS
ZXNvdXJjZShKU1N0cmluZ1JlZiB1cmwpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCmluZGV4IDE0NWMyNzAuLjJlNTFlZGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC05Myw2ICs5Myw3IEBAIFRlc3RDb250cm9sbGVyOjpU
ZXN0Q29udHJvbGxlcihpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogICAgICwgbV9ub1Rp
bWVvdXQoZGVmYXVsdE5vVGltZW91dCkKICAgICAsIG1fdXNlV2FpdFRvRHVtcFdhdGNoZG9nVGlt
ZXIodHJ1ZSkKICAgICAsIG1fZm9yY2VOb1RpbWVvdXQoZmFsc2UpCisgICAgLCBtX3RpbWVvdXQo
MCkKICAgICAsIG1fZGlkUHJpbnRXZWJQcm9jZXNzQ3Jhc2hlZE1lc3NhZ2UoZmFsc2UpCiAgICAg
LCBtX3Nob3VsZEV4aXRXaGVuV2ViUHJvY2Vzc0NyYXNoZXModHJ1ZSkKICAgICAsIG1fYmVmb3Jl
VW5sb2FkUmV0dXJuVmFsdWUodHJ1ZSkKQEAgLTE2OSw2ICsxNzAsMTEgQEAgc3RhdGljIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdL
RnJhbWVSZWYsIFcKICAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkuaGFuZGxlR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdChwZXJtaXNzaW9uUmVxdWVzdCk7CiB9CiAKK2ludCBUZXN0Q29u
dHJvbGxlcjo6Z2V0Q3VzdG9tVGltZW91dCgpCit7CisgICAgcmV0dXJuIG1fdGltZW91dDsKK30K
KwogV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9s
ZFBhZ2UsIFdLVVJMUmVxdWVzdFJlZiwgV0tEaWN0aW9uYXJ5UmVmLCBXS0V2ZW50TW9kaWZpZXJz
LCBXS0V2ZW50TW91c2VCdXR0b24sIGNvbnN0IHZvaWQqKQogewogICAgIFBsYXRmb3JtV2ViVmll
dyogdmlldyA9IG5ldyBQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlR2V0Q29udGV4dChvbGRQYWdlKSwg
V0tQYWdlR2V0UGFnZUdyb3VwKG9sZFBhZ2UpKTsKQEAgLTU4NSwxMSArNTkxLDEyIEBAIGJvb2wg
VGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoKQogfQogCiBzdHJ1
Y3QgVGVzdENvbW1hbmQgewotICAgIFRlc3RDb21tYW5kKCkgOiBzaG91bGREdW1wUGl4ZWxzKGZh
bHNlKSB7IH0KKyAgICBUZXN0Q29tbWFuZCgpIDogc2hvdWxkRHVtcFBpeGVscyhmYWxzZSksIHRp
bWVvdXQoMCkgeyB9CiAKICAgICBzdGQ6OnN0cmluZyBwYXRoT3JVUkw7CiAgICAgYm9vbCBzaG91
bGREdW1wUGl4ZWxzOwogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkUGl4ZWxIYXNoOworICAgIGlu
dCB0aW1lb3V0OwogfTsKIAogY2xhc3MgQ29tbWFuZFRva2VuaXplciB7CkBAIC02NTEsMTcgKzY1
OCwyMCBAQCBUZXN0Q29tbWFuZCBwYXJzZUlucHV0TGluZShjb25zdCBzdGQ6OnN0cmluZyYgaW5w
dXRMaW5lKQogICAgIGlmICghdG9rZW5pemVyLmhhc05leHQoKSkKICAgICAgICAgZGllKGlucHV0
TGluZSk7CiAKLSAgICByZXN1bHQucGF0aE9yVVJMID0gdG9rZW5pemVyLm5leHQoKTsKLSAgICBp
ZiAoIXRva2VuaXplci5oYXNOZXh0KCkpCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0KICAgICBz
dGQ6OnN0cmluZyBhcmcgPSB0b2tlbml6ZXIubmV4dCgpOwotICAgIGlmIChhcmcgIT0gc3RkOjpz
dHJpbmcoIi1wIikgJiYgYXJnICE9IHN0ZDo6c3RyaW5nKCItLXBpeGVsLXRlc3QiKSkKLSAgICAg
ICAgZGllKGlucHV0TGluZSk7Ci0gICAgcmVzdWx0LnNob3VsZER1bXBQaXhlbHMgPSB0cnVlOwot
Ci0gICAgaWYgKHRva2VuaXplci5oYXNOZXh0KCkpCi0gICAgICAgIHJlc3VsdC5leHBlY3RlZFBp
eGVsSGFzaCA9IHRva2VuaXplci5uZXh0KCk7CisgICAgcmVzdWx0LnBhdGhPclVSTCA9IGFyZzsK
KyAgICB3aGlsZSAodG9rZW5pemVyLmhhc05leHQoKSkgeworICAgICAgICBhcmcgPSB0b2tlbml6
ZXIubmV4dCgpOworICAgICAgICBpZiAoYXJnID09IHN0ZDo6c3RyaW5nKCItLXRpbWVvdXQiKSkg
eworICAgICAgICAgICAgc3RkOjpzdHJpbmcgdGltZW91dFRva2VuID0gdG9rZW5pemVyLm5leHQo
KTsKKyAgICAgICAgICAgIHJlc3VsdC50aW1lb3V0ID0gYXRvaSh0aW1lb3V0VG9rZW4uY19zdHIo
KSk7CisgICAgICAgIH0gZWxzZSBpZiAoYXJnID09IHN0ZDo6c3RyaW5nKCItcCIpIHx8IGFyZyA9
PSBzdGQ6OnN0cmluZygiLS1waXhlbC10ZXN0IikpIHsKKyAgICAgICAgICAgIHJlc3VsdC5zaG91
bGREdW1wUGl4ZWxzID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmICh0b2tlbml6ZXIuaGFzTmV4dCgp
KQorICAgICAgICAgICAgICAgIHJlc3VsdC5leHBlY3RlZFBpeGVsSGFzaCA9IHRva2VuaXplci5u
ZXh0KCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZGllKGlucHV0TGluZSk7CisgICAg
fQogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTY3NSw2ICs2ODUsOCBAQCBib29sIFRlc3RD
b250cm9sbGVyOjpydW5UZXN0KGNvbnN0IGNoYXIqIGlucHV0TGluZSkKICAgICBtX2N1cnJlbnRJ
bnZvY2F0aW9uID0gYWRvcHRQdHIobmV3IFRlc3RJbnZvY2F0aW9uKGNvbW1hbmQucGF0aE9yVVJM
KSk7CiAgICAgaWYgKGNvbW1hbmQuc2hvdWxkRHVtcFBpeGVscyB8fCBtX3Nob3VsZER1bXBQaXhl
bHNGb3JBbGxUZXN0cykKICAgICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+c2V0SXNQaXhlbFRl
c3QoY29tbWFuZC5leHBlY3RlZFBpeGVsSGFzaCk7CisgICAgaWYgKGNvbW1hbmQudGltZW91dCA+
IDApCisgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPnNldEN1c3RvbVRpbWVvdXQoY29tbWFu
ZC50aW1lb3V0KTsKIAogICAgIG1fY3VycmVudEludm9jYXRpb24tPmludm9rZSgpOwogICAgIG1f
Y3VycmVudEludm9jYXRpb24uY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaAppbmRleCA1NmMzYzQ3Li5mZTNlNjdkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5oCkBAIC02NCw2ICs2NCw4IEBAIHB1YmxpYzoKICAgICBib29sIHVzZVdh
aXRUb0R1bXBXYXRjaGRvZ1RpbWVyKCkgeyByZXR1cm4gbV91c2VXYWl0VG9EdW1wV2F0Y2hkb2dU
aW1lcjsgfQogICAgIHZvaWQgcnVuVW50aWwoYm9vbCYgZG9uZSwgVGltZW91dER1cmF0aW9uKTsK
ICAgICB2b2lkIG5vdGlmeURvbmUoKTsKKworICAgIGludCBnZXRDdXN0b21UaW1lb3V0KCk7CiAg
ICAgCiAgICAgYm9vbCBiZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
YmVmb3JlVW5sb2FkUmV0dXJuVmFsdWU7IH0KICAgICB2b2lkIHNldEJlZm9yZVVubG9hZFJldHVy
blZhbHVlKGJvb2wgdmFsdWUpIHsgbV9iZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZSA9IHZhbHVlOyB9
CkBAIC0xNjUsNiArMTY3LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fdXNlV2FpdFRvRHVtcFdh
dGNoZG9nVGltZXI7CiAgICAgYm9vbCBtX2ZvcmNlTm9UaW1lb3V0OwogCisgICAgaW50IG1fdGlt
ZW91dDsKKwogICAgIGJvb2wgbV9kaWRQcmludFdlYlByb2Nlc3NDcmFzaGVkTWVzc2FnZTsKICAg
ICBib29sIG1fc2hvdWxkRXhpdFdoZW5XZWJQcm9jZXNzQ3Jhc2hlczsKICAgICAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggZWYxNzQzNy4uMmIyZDJkNiAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTEwMCw2ICsx
MDAsNyBAQCBUZXN0SW52b2NhdGlvbjo6VGVzdEludm9jYXRpb24oY29uc3Qgc3RkOjpzdHJpbmcm
IHBhdGhPclVSTCkKICAgICA6IG1fdXJsKEFkb3B0V0ssIGNyZWF0ZVdLVVJMKHBhdGhPclVSTC5j
X3N0cigpKSkKICAgICAsIG1fcGF0aE9yVVJMKHBhdGhPclVSTCkKICAgICAsIG1fZHVtcFBpeGVs
cyhmYWxzZSkKKyAgICAsIG1fdGltZW91dCgwKQogICAgICwgbV9nb3RJbml0aWFsUmVzcG9uc2Uo
ZmFsc2UpCiAgICAgLCBtX2dvdEZpbmFsTWVzc2FnZShmYWxzZSkKICAgICAsIG1fZ290UmVwYWlu
dChmYWxzZSkKQEAgLTExOCw2ICsxMTksMTEgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6c2V0SXNQ
aXhlbFRlc3QoY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVjdGVkUGl4ZWxIYXNoKQogICAgIG1fZXhw
ZWN0ZWRQaXhlbEhhc2ggPSBleHBlY3RlZFBpeGVsSGFzaDsKIH0KIAordm9pZCBUZXN0SW52b2Nh
dGlvbjo6c2V0Q3VzdG9tVGltZW91dChpbnQgdGltZW91dCkKK3sKKyAgICBtX3RpbWVvdXQgPSB0
aW1lb3V0OworfQorCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgdzNjU1ZHV2lkdGggPSA0ODA7CiBz
dGF0aWMgY29uc3QgdW5zaWduZWQgdzNjU1ZHSGVpZ2h0ID0gMzYwOwogc3RhdGljIGNvbnN0IHVu
c2lnbmVkIG5vcm1hbFdpZHRoID0gODAwOwpAQCAtMTg1LDYgKzE5MSwxMCBAQCB2b2lkIFRlc3RJ
bnZvY2F0aW9uOjppbnZva2UoKQogICAgIFdLUmV0YWluUHRyPFdLQm9vbGVhblJlZj4gdXNlV2Fp
dFRvRHVtcFdhdGNoZG9nVGltZXJWYWx1ZSA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKFRlc3RD
b250cm9sbGVyOjpzaGFyZWQoKS51c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcigpKSk7CiAgICAg
V0tEaWN0aW9uYXJ5QWRkSXRlbShiZWdpblRlc3RNZXNzYWdlQm9keS5nZXQoKSwgdXNlV2FpdFRv
RHVtcFdhdGNoZG9nVGltZXJLZXkuZ2V0KCksIHVzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyVmFs
dWUuZ2V0KCkpOwogCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHRpbWVvdXRLZXkgPSBh
ZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJUaW1lb3V0IikpOworICAgIFdL
UmV0YWluUHRyPFdLVUludDY0UmVmPiB0aW1lb3V0VmFsdWUgPSBhZG9wdFdLKFdLVUludDY0Q3Jl
YXRlKG1fdGltZW91dCkpOworICAgIFdLRGljdGlvbmFyeUFkZEl0ZW0oYmVnaW5UZXN0TWVzc2Fn
ZUJvZHkuZ2V0KCksIHRpbWVvdXRLZXkuZ2V0KCksIHRpbWVvdXRWYWx1ZS5nZXQoKSk7CisKICAg
ICBXS0NvbnRleHRQb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoVGVzdENvbnRyb2xsZXI6OnNo
YXJlZCgpLmNvbnRleHQoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIGJlZ2luVGVzdE1lc3NhZ2VCb2R5
LmdldCgpKTsKIAogICAgIFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5ydW5VbnRpbChtX2dvdElu
aXRpYWxSZXNwb25zZSwgVGVzdENvbnRyb2xsZXI6OlNob3J0VGltZW91dCk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmggYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKaW5kZXggYzE0YjA2MC4uNzM2NmYwNyAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaApAQCAtNDAsNiArNDAsOCBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHNldElzUGl4ZWxUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3Rl
ZFBpeGVsSGFzaCk7CiAKKyAgICB2b2lkIHNldEN1c3RvbVRpbWVvdXQoaW50IGR1cmF0aW9uKTsK
KwogICAgIHZvaWQgaW52b2tlKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21Jbmpl
Y3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5
KTsKICAgICBXS1JldGFpblB0cjxXS1R5cGVSZWY+IGRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBt
ZXNzYWdlQm9keSk7CkBAIC02Miw2ICs2NCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2R1bXBQ
aXhlbHM7CiAgICAgc3RkOjpzdHJpbmcgbV9leHBlY3RlZFBpeGVsSGFzaDsKIAorICAgIGludCBt
X3RpbWVvdXQ7CisKICAgICAvLyBJbnZvY2F0aW9uIHN0YXRlCiAgICAgYm9vbCBtX2dvdEluaXRp
YWxSZXNwb25zZTsKICAgICBib29sIG1fZ290RmluYWxNZXNzYWdlOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9UZXN0Q29udHJvbGxlclF0LmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvcXQvVGVzdENvbnRyb2xsZXJRdC5jcHAKaW5kZXggMDRkZGI4Yi4uM2IwZDky
MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9UZXN0Q29udHJvbGxlclF0
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1Rlc3RDb250cm9sbGVyUXQuY3Bw
CkBAIC02Niw4ICs2NiwxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJ1blVudGls
KGJvb2wmIGNvbmRpdGlvbiwgZG91YmxlIHRpbWVvdXQpCiAgICAgUUVsYXBzZWRUaW1lciB0aW1l
cjsKICAgICB0aW1lci5zdGFydCgpOwogICAgIHdoaWxlICghY29uZGl0aW9uKSB7Ci0gICAgICAg
IGlmICh0aW1lci5lbGFwc2VkKCkgPiB0aW1lb3V0SW5NU2VjcykKKyAgICAgICAgaWYgKHRpbWVy
LmVsYXBzZWQoKSA+IHRpbWVvdXRJbk1TZWNzKSB7CisgICAgICAgICAgICBjb25kaXRpb24gPSAh
Y29uZGl0aW9uOwogICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgICAgIFFDb3Jl
QXBwbGljYXRpb246OnByb2Nlc3NFdmVudHMoUUV2ZW50TG9vcDo6RXhjbHVkZVVzZXJJbnB1dEV2
ZW50cywgdGltZW91dEluTVNlY3MgLSB0aW1lci5lbGFwc2VkKCkpOwogICAgIH0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176956</attachid>
            <date>2012-11-30 06:17:41 -0800</date>
            <delta_ts>2013-01-09 07:54:35 -0800</delta_ts>
            <desc>patch</desc>
            <filename>per_test_timeout_M_changelog.patch</filename>
            <type>text/plain</type>
            <size>19763</size>
            <attacher name="János Badics">jbadics</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhMjUy
ZDVlLi45OGMxMTZjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjIgQEAKKzIwMTItMTEtMzAgIErDoW5vcyBCYWRpY3MgIDxqYmFk
aWNzQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBbUXRdW05SV1RdIFBhc3MgLS10aW1lb3V0
IHRvIERSVC9XVFIgaWYgYSB0ZXN0IGlzIG1hcmtlZCBhcyBTTE9XLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA5NjguCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgZnVuY3Rpb25hbGl0eSBpbiBE
UlQgYW5kIFdUUiB0byB1c2UgYW55IHRpbWVvdXQgdmFsdWUgd2hpbGUgcnVubmluZworICAgICAg
ICBzbG93IHRlc3RzIChldmVudHVhbGx5LCBhbnkgdGVzdCkuIE5vdyBOUldUIC0tdGltZS1vdXQt
bXMgZGV0ZXJtaW5lcyB0aGUKKyAgICAgICAgdGltZW91dCB2YWx1ZSBmb3IgdGhlIHRlc3QuIEFk
ZGVkIGEgZmxhZyBpbiBOUldUIChzdXBwb3J0c19wZXJfdGVzdF90aW1lb3V0KQorICAgICAgICB0
byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBjdXJyZW50IHBvcnQgc3VwcG9ydHMgc2V0dGluZyB0aW1l
b3V0IHZhbHVlCisgICAgICAgIHBlciB0ZXN0IChpdCdzIEZhbHNlIGJ5IGRlZmF1bHQ7IEkgZW5h
YmxlZCBpdCBvbmx5IG9uIFF0KS4KKyAgICAgICAgQWxzbyBjb3JyZWN0ZWQgYSB0eXBvIGluIGRy
aXZlci5weQorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaDoKKyAg
ICAgICAgKFRlc3RDb21tYW5kOjpUZXN0Q29tbWFuZCk6CisgICAgICAgIChUZXN0Q29tbWFuZCk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwOgorICAg
ICAgICAocGFyc2VJbnB1dExpbmUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBS
ZW5kZXJUcmVlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHVtcFJlbmRlclRyZWU6OnByb2Nl
c3NMaW5lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jh
c2UucHk6CisgICAgICAgIChQb3J0LnN1cHBvcnRzX3Blcl90ZXN0X3RpbWVvdXQpOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5OgorICAgICAg
ICAoRHJpdmVyLnJ1bl90ZXN0KToKKyAgICAgICAgKERyaXZlci5fY29tbWFuZF9mcm9tX2RyaXZl
cl9pbnB1dCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9x
dC5weToKKyAgICAgICAgKFF0UG9ydC5zdXBwb3J0c19wZXJfdGVzdF90aW1lb3V0KToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoK
KyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OkluamVjdGVkQnVuZGxlKToKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdUUjo6
SW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVzdGluZyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RS
dW5uZXI6OnNldEN1c3RvbVRpbWVvdXQpOgorICAgICAgICAoV1RSKToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RS
dW5uZXIpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvVGVz
dFJ1bm5lclF0LmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6aW5pdGlhbGl6ZVdhaXRU
b0R1bXBXYXRjaGRvZ1RpbWVySWZOZWVkZWQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6VGVzdENv
bnRyb2xsZXIpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Z2V0Q3VzdG9tVGltZW91
dCk6CisgICAgICAgIChXVFIpOgorICAgICAgICAoV1RSOjpUZXN0Q29tbWFuZDo6VGVzdENvbW1h
bmQpOgorICAgICAgICAoVGVzdENvbW1hbmQpOgorICAgICAgICAoV1RSOjpwYXJzZUlucHV0TGlu
ZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpydW5UZXN0KToKKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OnJ1blVudGlsKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChUZXN0Q29udHJvbGxlcik6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJ
bnZvY2F0aW9uOjpUZXN0SW52b2NhdGlvbik6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9u
OjpzZXRDdXN0b21UaW1lb3V0KToKKyAgICAgICAgKFdUUik6CisgICAgICAgIChXVFI6OlRlc3RJ
bnZvY2F0aW9uOjppbnZva2UpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uaDoKKyAgICAgICAgKFRlc3RJbnZvY2F0aW9uKToKKwogMjAxMi0xMS0yOSAgUmFmYWVs
IFdlaW5zdGVpbiAgPHJhZmFlbHdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtIVE1MVGVtcGxh
dGVFbGVtZW50XSBBZGQgZmVhdHVyZSBmbGFnCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9EdW1wUmVuZGVyVHJlZS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWUuaAppbmRleCA0YzZhNDcyLi42Mjc4OWI1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9EdW1wUmVuZGVyVHJlZS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlLmgKQEAgLTY2LDExICs2NiwxMiBAQCB2b2lkIGR1bXAoKTsKIHZvaWQgZGlzcGxheVdl
YlZpZXcoKTsKIAogc3RydWN0IFRlc3RDb21tYW5kIHsKLSAgICBUZXN0Q29tbWFuZCgpIDogc2hv
dWxkRHVtcFBpeGVscyhmYWxzZSkgeyB9CisgICAgVGVzdENvbW1hbmQoKSA6IHNob3VsZER1bXBQ
aXhlbHMoZmFsc2UpLCB0aW1lb3V0KDMwMDAwKSB7IH0KIAogICAgIHN0ZDo6c3RyaW5nIHBhdGhP
clVSTDsKICAgICBib29sIHNob3VsZER1bXBQaXhlbHM7CiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0
ZWRQaXhlbEhhc2g7CisgICAgaW50IHRpbWVvdXQ7IC8vIGluIG1zCiB9OwogCiBUZXN0Q29tbWFu
ZCBwYXJzZUlucHV0TGluZShjb25zdCBzdGQ6OnN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwCmluZGV4IDQ4ZDgzMjIuLjNjYjk3ZWIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlQ29tbW9uLmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNvbW1vbi5jcHAKQEAgLTY2
LDE3ICs2NiwyMCBAQCBUZXN0Q29tbWFuZCBwYXJzZUlucHV0TGluZShjb25zdCBzdGQ6OnN0cmlu
ZyYgaW5wdXRMaW5lKQogICAgIGlmICghdG9rZW5pemVyLmhhc05leHQoKSkKICAgICAgICAgZGll
KGlucHV0TGluZSk7CiAKLSAgICByZXN1bHQucGF0aE9yVVJMID0gdG9rZW5pemVyLm5leHQoKTsK
LSAgICBpZiAoIXRva2VuaXplci5oYXNOZXh0KCkpCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0K
ICAgICBzdGQ6OnN0cmluZyBhcmcgPSB0b2tlbml6ZXIubmV4dCgpOwotICAgIGlmIChhcmcgIT0g
c3RkOjpzdHJpbmcoIi1wIikgJiYgYXJnICE9IHN0ZDo6c3RyaW5nKCItLXBpeGVsLXRlc3QiKSkK
LSAgICAgICAgZGllKGlucHV0TGluZSk7Ci0gICAgcmVzdWx0LnNob3VsZER1bXBQaXhlbHMgPSB0
cnVlOwotCi0gICAgaWYgKHRva2VuaXplci5oYXNOZXh0KCkpCi0gICAgICAgIHJlc3VsdC5leHBl
Y3RlZFBpeGVsSGFzaCA9IHRva2VuaXplci5uZXh0KCk7CisgICAgcmVzdWx0LnBhdGhPclVSTCA9
IGFyZzsKKyAgICB3aGlsZSAodG9rZW5pemVyLmhhc05leHQoKSkgeworICAgICAgICBhcmcgPSB0
b2tlbml6ZXIubmV4dCgpOworICAgICAgICBpZiAoYXJnID09IHN0ZDo6c3RyaW5nKCItLXRpbWVv
dXQiKSkgeworICAgICAgICAgICAgc3RkOjpzdHJpbmcgdGltZW91dFRva2VuID0gdG9rZW5pemVy
Lm5leHQoKTsKKyAgICAgICAgICAgIHJlc3VsdC50aW1lb3V0ID0gYXRvaSh0aW1lb3V0VG9rZW4u
Y19zdHIoKSk7CisgICAgICAgIH0gZWxzZSBpZiAoYXJnID09IHN0ZDo6c3RyaW5nKCItcCIpIHx8
IGFyZyA9PSBzdGQ6OnN0cmluZygiLS1waXhlbC10ZXN0IikpIHsKKyAgICAgICAgICAgIHJlc3Vs
dC5zaG91bGREdW1wUGl4ZWxzID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmICh0b2tlbml6ZXIuaGFz
TmV4dCgpKQorICAgICAgICAgICAgICAgIHJlc3VsdC5leHBlY3RlZFBpeGVsSGFzaCA9IHRva2Vu
aXplci5uZXh0KCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZGllKGlucHV0TGluZSk7
CisgICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKaW5kZXggODhkOGFlNy4uYWFjNGVjNSAxMDA3NTUKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKQEAgLTcyMCw2ICs3MjAs
OCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlOjpwcm9jZXNzTGluZShjb25zdCBRU3RyaW5nICZpbnB1
dCkKICAgICAgICAgb3BlbihRVXJsOjpmcm9tTG9jYWxGaWxlKGZpLmFic29sdXRlRmlsZVBhdGgo
KSkpOwogICAgIH0KIAorICAgIGlmIChjb21tYW5kLnRpbWVvdXQgPiAwKQorICAgICAgICBzZXRU
aW1lb3V0KGNvbW1hbmQudGltZW91dCk7CiAgICAgZmZsdXNoKHN0ZG91dCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQppbmRleCA4
YzQ1NzhkLi42ZWIxMGNiIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Jhc2UucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9iYXNlLnB5CkBAIC0xNTAsNiArMTUwLDkgQEAgY2xhc3MgUG9ydChvYmplY3Qp
OgogICAgIGRlZiBhZGRpdGlvbmFsX2RydF9mbGFnKHNlbGYpOgogICAgICAgICByZXR1cm4gW10K
IAorICAgIGRlZiBzdXBwb3J0c19wZXJfdGVzdF90aW1lb3V0KHNlbGYpOgorICAgICAgICByZXR1
cm4gRmFsc2UKKwogICAgIGRlZiBkZWZhdWx0X3BpeGVsX3Rlc3RzKHNlbGYpOgogICAgICAgICAj
IEZJWE1FOiBEaXNhYmxlIHVudGlsIHRoZXkgYXJlIHJ1biBieSBkZWZhdWx0IG9uIGJ1aWxkLndl
YmtpdC5vcmcuCiAgICAgICAgIHJldHVybiBGYWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weQppbmRleCBlODgzNTkwLi4zYjhiZDQ0
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Ry
aXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Ry
aXZlci5weQpAQCAtMTU2LDcgKzE1Niw3IEBAIGNsYXNzIERyaXZlcihvYmplY3QpOgogICAgICAg
ICB0aGUgZHJpdmVyIGluIGFuIGluZGV0ZXJtaW5hdGUgc3RhdGUuIFRoZSB1cHBlciBsYXllcnMg
b2YgdGhlIHByb2dyYW0KICAgICAgICAgYXJlIHJlc3BvbnNpYmxlIGZvciBjbGVhbmluZyB1cCBh
bmQgZW5zdXJpbmcgdGhpbmdzIGFyZSBva2F5LgogCi0gICAgICAgIFJldHVybnMgYSBEcml2ZXJP
dXB1dCBvYmplY3QuCisgICAgICAgIFJldHVybnMgYSBEcml2ZXJPdXRwdXQgb2JqZWN0LgogICAg
ICAgICAiIiIKICAgICAgICAgc3RhcnRfdGltZSA9IHRpbWUudGltZSgpCiAgICAgICAgIHNlbGYu
c3RhcnQoZHJpdmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdCwgZHJpdmVyX2lucHV0LmFy
Z3MpCkBAIC0zNjUsNiArMzY1LDggQEAgY2xhc3MgRHJpdmVyKG9iamVjdCk6CiAgICAgICAgIGFz
c2VydCBub3QgZHJpdmVyX2lucHV0LmltYWdlX2hhc2ggb3IgZHJpdmVyX2lucHV0LnNob3VsZF9y
dW5fcGl4ZWxfdGVzdAogCiAgICAgICAgICMgJyBpcyB0aGUgc2VwYXJhdG9yIGJldHdlZW4gYXJn
dW1lbnRzLgorICAgICAgICBpZiBzZWxmLl9wb3J0LnN1cHBvcnRzX3Blcl90ZXN0X3RpbWVvdXQo
KToKKyAgICAgICAgICAgIGNvbW1hbmQgKz0gIictLXRpbWVvdXQnJXMiICUgZHJpdmVyX2lucHV0
LnRpbWVvdXQKICAgICAgICAgaWYgZHJpdmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdDoK
ICAgICAgICAgICAgIGNvbW1hbmQgKz0gIictLXBpeGVsLXRlc3QiCiAgICAgICAgIGlmIGRyaXZl
cl9pbnB1dC5pbWFnZV9oYXNoOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9xdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvcXQucHkKaW5kZXggNTVmMTNlZS4uODU2YjkzMyAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9xdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3F0LnB5CkBAIC04MCw2ICs4MCw5IEBAIGNs
YXNzIFF0UG9ydChQb3J0KToKICAgICAgICAgIyBUaGUgUXQgcG9ydCBidWlsZHMgRFJUIGFzIHBh
cnQgb2YgdGhlIG1haW4gYnVpbGQgc3RlcAogICAgICAgICByZXR1cm4gVHJ1ZQogCisgICAgZGVm
IHN1cHBvcnRzX3Blcl90ZXN0X3RpbWVvdXQoc2VsZik6CisgICAgICAgIHJldHVybiBUcnVlCisK
ICAgICBkZWYgX3BhdGhfdG9fZHJpdmVyKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fYnVp
bGRfcGF0aCgnYmluLyVzJyAlIHNlbGYuZHJpdmVyX25hbWUoKSkKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApp
bmRleCBmYTc5MzlkLi43MmNkMjMxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtNTUsNiArNTUsNyBA
QCBJbmplY3RlZEJ1bmRsZTo6SW5qZWN0ZWRCdW5kbGUoKQogICAgICwgbV9kdW1wUGl4ZWxzKGZh
bHNlKQogICAgICwgbV91c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcih0cnVlKQogICAgICwgbV91
c2VXb3JrUXVldWUoZmFsc2UpCisgICAgLCBtX3RpbWVvdXQoMCkKIHsKIH0KIApAQCAtMTU0LDYg
KzE1NSw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlKFdLU3RyaW5n
UmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnCiAgICAgICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiB1c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcktleShBZG9wdFdLLCBXS1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIiKSk7CiAg
ICAgICAgIG1fdXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIgPSBXS0Jvb2xlYW5HZXRWYWx1ZShz
dGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2Fn
ZUJvZHlEaWN0aW9uYXJ5LCB1c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcktleS5nZXQoKSkpKTsK
IAorICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gdGltZW91dEtleShBZG9wdFdLLCBX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVGltZW91dCIpKTsKKyAgICAgICAgbV90aW1l
b3V0ID0gKGludClXS1VJbnQ2NEdldFZhbHVlKHN0YXRpY19jYXN0PFdLVUludDY0UmVmPihXS0Rp
Y3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgdGltZW91dEtleS5n
ZXQoKSkpKTsKKwogICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gYWNrTWVzc2FnZU5h
bWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkFjayIpKTsKICAgICAg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGFja01lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJCZWdpblRlc3QiKSk7CiAgICAgICAgIFdLQnVuZGxl
UG9zdE1lc3NhZ2UobV9idW5kbGUsIGFja01lc3NhZ2VOYW1lLmdldCgpLCBhY2tNZXNzYWdlQm9k
eS5nZXQoKSk7CkBAIC0yNjcsNiArMjcxLDggQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6YmVnaW5U
ZXN0aW5nKFdLRGljdGlvbmFyeVJlZiBzZXR0aW5ncykKICAgICBtX3Rlc3RSdW5uZXItPnNldEFj
Y2VwdHNFZGl0aW5nKHRydWUpOwogICAgIG1fdGVzdFJ1bm5lci0+c2V0VGFiS2V5Q3ljbGVzVGhy
b3VnaEVsZW1lbnRzKHRydWUpOwogCisgICAgbV90ZXN0UnVubmVyLT5zZXRDdXN0b21UaW1lb3V0
KG1fdGltZW91dCk7CisKICAgICBwYWdlKCktPnByZXBhcmUoKTsKIAogICAgIFdLQnVuZGxlQ2xl
YXJBbGxEYXRhYmFzZXMobV9idW5kbGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCmluZGV4IDQxNDY5ZWMuLmZiNjIz
ZDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmgKQEAgLTE1Niw2ICsxNTYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9kdW1wUGl4ZWxzOwogICAgIGJvb2wgbV91c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcjsKICAg
ICBib29sIG1fdXNlV29ya1F1ZXVlOworICAgIGludCBtX3RpbWVvdXQ7CiAKICAgICBXS1JldGFp
blB0cjxXS0ltYWdlUmVmPiBtX3BpeGVsUmVzdWx0OwogICAgIFdLUmV0YWluUHRyPFdLQXJyYXlS
ZWY+IG1fcmVwYWludFJlY3RzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggMTBmY2NjMi4uYWY2NmFmNyAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwCkBAIC0xNjYsNiArMTY2LDExIEBAIHZvaWQgVGVzdFJ1bm5lcjo6bm90aWZ5RG9uZSgpCiAg
ICAgbV93YWl0VG9EdW1wID0gZmFsc2U7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0Q3VzdG9t
VGltZW91dChpbnQgdGltZW91dCkKK3sKKyAgICBtX3RpbWVvdXQgPSB0aW1lb3V0OworfQorCiB1
bnNpZ25lZCBUZXN0UnVubmVyOjpudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSBjb25zdAogewog
ICAgIC8vIEZJWE1FOiBJcyBpdCBPSyB0aGlzIHdvcmtzIG9ubHkgZm9yIHRoZSBtYWluIGZyYW1l
PwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaAppbmRleCAzYTk3NGE5Li5hOTc0OTYyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMjYyLDYgKzI2Miw4IEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgY2FsbFNob3VsZENsb3NlT25XZWJWaWV3KCk7CiAKKyAgICB2b2lk
IHNldEN1c3RvbVRpbWVvdXQoaW50IGR1cmF0aW9uKTsKKwogICAgIC8vIFdvcmsgcXVldWUuCiAg
ICAgdm9pZCBxdWV1ZUJhY2tOYXZpZ2F0aW9uKHVuc2lnbmVkIGhvd0ZhckJhY2t3YXJkKTsKICAg
ICB2b2lkIHF1ZXVlRm9yd2FyZE5hdmlnYXRpb24odW5zaWduZWQgaG93RmFyRm9yd2FyZCk7CkBA
IC0zMTQsNiArMzE2LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fZ2xvYmFsRmxhZzsKICAgICBi
b29sIG1fY3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yOwogCisgICAgaW50IG1fdGltZW91dDsKKwog
ICAgIGJvb2wgbV91c2VyU3R5bGVTaGVldEVuYWJsZWQ7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IG1fdXNlclN0eWxlU2hlZXRMb2NhdGlvbjsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9xdC9UZXN0UnVubmVyUXQuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9xdC9UZXN0UnVubmVyUXQuY3BwCmluZGV4
IDE2NzFhYzcuLjk1ZWQ0NmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvcXQvVGVzdFJ1bm5lclF0LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKQEAgLTc0LDEzICs3NCwxOCBA
QCB2b2lkIFRlc3RSdW5uZXI6OmludmFsaWRhdGVXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcigpCiAK
IHZvaWQgVGVzdFJ1bm5lcjo6aW5pdGlhbGl6ZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVySWZOZWVk
ZWQoKQogeworICAgIGludCB0aW1lckludGVydmFsOwogICAgIGlmIChxZ2V0ZW52KCJRVF9XRUJL
SVQyX0RFQlVHIikgPT0gIjEiKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV93YWl0VG9E
dW1wV2F0Y2hkb2dUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICByZXR1cm47CisgICAgaWYgKG1f
dGltZW91dCA+IDApCisgICAgICAgIHRpbWVySW50ZXJ2YWwgPSBtX3RpbWVvdXQ7CisgICAgZWxz
ZQorICAgICAgICB0aW1lckludGVydmFsID0gd2FpdFRvRHVtcFdhdGNoZG9nVGltZXJJbnRlcnZh
bCAqIDEwMDA7CiAKLSAgICBtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyLnN0YXJ0KHdhaXRUb0R1
bXBXYXRjaGRvZ1RpbWVySW50ZXJ2YWwgKiAxMDAwKTsKKyAgICBtX3dhaXRUb0R1bXBXYXRjaGRv
Z1RpbWVyLnN0YXJ0KHRpbWVySW50ZXJ2YWwpOwogfQogCiBKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gVGVzdFJ1bm5lcjo6cGF0aFRvTG9jYWxSZXNvdXJjZShKU1N0cmluZ1JlZiB1cmwpCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDBlNDdmM2MuLjRjNTI2
ZWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC05Myw2
ICs5Myw3IEBAIFRlc3RDb250cm9sbGVyOjpUZXN0Q29udHJvbGxlcihpbnQgYXJnYywgY29uc3Qg
Y2hhciogYXJndltdKQogICAgICwgbV9ub1RpbWVvdXQoZGVmYXVsdE5vVGltZW91dCkKICAgICAs
IG1fdXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIodHJ1ZSkKICAgICAsIG1fZm9yY2VOb1RpbWVv
dXQoZmFsc2UpCisgICAgLCBtX3RpbWVvdXQoMCkKICAgICAsIG1fZGlkUHJpbnRXZWJQcm9jZXNz
Q3Jhc2hlZE1lc3NhZ2UoZmFsc2UpCiAgICAgLCBtX3Nob3VsZEV4aXRXaGVuV2ViUHJvY2Vzc0Ny
YXNoZXModHJ1ZSkKICAgICAsIG1fYmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUodHJ1ZSkKQEAgLTE3
MCw2ICsxNzEsMTEgQEAgc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFcKICAgICBUZXN0Q29udHJvbGxl
cjo6c2hhcmVkKCkuaGFuZGxlR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChwZXJtaXNzaW9u
UmVxdWVzdCk7CiB9CiAKK2ludCBUZXN0Q29udHJvbGxlcjo6Z2V0Q3VzdG9tVGltZW91dCgpCit7
CisgICAgcmV0dXJuIG1fdGltZW91dDsKK30KKwogV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpj
cmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJMUmVxdWVzdFJlZiwgV0tEaWN0
aW9uYXJ5UmVmLCBXS0V2ZW50TW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24sIGNvbnN0IHZv
aWQqKQogewogICAgIFBsYXRmb3JtV2ViVmlldyogdmlldyA9IG5ldyBQbGF0Zm9ybVdlYlZpZXco
V0tQYWdlR2V0Q29udGV4dChvbGRQYWdlKSwgV0tQYWdlR2V0UGFnZUdyb3VwKG9sZFBhZ2UpKTsK
QEAgLTU4NiwxMSArNTkyLDEyIEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0Nv
bnNpc3RlbnRWYWx1ZXMoKQogfQogCiBzdHJ1Y3QgVGVzdENvbW1hbmQgewotICAgIFRlc3RDb21t
YW5kKCkgOiBzaG91bGREdW1wUGl4ZWxzKGZhbHNlKSB7IH0KKyAgICBUZXN0Q29tbWFuZCgpIDog
c2hvdWxkRHVtcFBpeGVscyhmYWxzZSksIHRpbWVvdXQoMCkgeyB9CiAKICAgICBzdGQ6OnN0cmlu
ZyBwYXRoT3JVUkw7CiAgICAgYm9vbCBzaG91bGREdW1wUGl4ZWxzOwogICAgIHN0ZDo6c3RyaW5n
IGV4cGVjdGVkUGl4ZWxIYXNoOworICAgIGludCB0aW1lb3V0OwogfTsKIAogY2xhc3MgQ29tbWFu
ZFRva2VuaXplciB7CkBAIC02NTIsMTggKzY1OSwyMCBAQCBUZXN0Q29tbWFuZCBwYXJzZUlucHV0
TGluZShjb25zdCBzdGQ6OnN0cmluZyYgaW5wdXRMaW5lKQogICAgIGlmICghdG9rZW5pemVyLmhh
c05leHQoKSkKICAgICAgICAgZGllKGlucHV0TGluZSk7CiAKLSAgICByZXN1bHQucGF0aE9yVVJM
ID0gdG9rZW5pemVyLm5leHQoKTsKLSAgICBpZiAoIXRva2VuaXplci5oYXNOZXh0KCkpCi0gICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0KICAgICBzdGQ6OnN0cmluZyBhcmcgPSB0b2tlbml6ZXIubmV4
dCgpOwotICAgIGlmIChhcmcgIT0gc3RkOjpzdHJpbmcoIi1wIikgJiYgYXJnICE9IHN0ZDo6c3Ry
aW5nKCItLXBpeGVsLXRlc3QiKSkKLSAgICAgICAgZGllKGlucHV0TGluZSk7Ci0gICAgcmVzdWx0
LnNob3VsZER1bXBQaXhlbHMgPSB0cnVlOwotCi0gICAgaWYgKHRva2VuaXplci5oYXNOZXh0KCkp
Ci0gICAgICAgIHJlc3VsdC5leHBlY3RlZFBpeGVsSGFzaCA9IHRva2VuaXplci5uZXh0KCk7Ci0K
KyAgICByZXN1bHQucGF0aE9yVVJMID0gYXJnOworICAgIHdoaWxlICh0b2tlbml6ZXIuaGFzTmV4
dCgpKSB7CisgICAgICAgIGFyZyA9IHRva2VuaXplci5uZXh0KCk7CisgICAgICAgIGlmIChhcmcg
PT0gc3RkOjpzdHJpbmcoIi0tdGltZW91dCIpKSB7CisgICAgICAgICAgICBzdGQ6OnN0cmluZyB0
aW1lb3V0VG9rZW4gPSB0b2tlbml6ZXIubmV4dCgpOworICAgICAgICAgICAgcmVzdWx0LnRpbWVv
dXQgPSBhdG9pKHRpbWVvdXRUb2tlbi5jX3N0cigpKTsKKyAgICAgICAgfSBlbHNlIGlmIChhcmcg
PT0gc3RkOjpzdHJpbmcoIi1wIikgfHwgYXJnID09IHN0ZDo6c3RyaW5nKCItLXBpeGVsLXRlc3Qi
KSkgeworICAgICAgICAgICAgcmVzdWx0LnNob3VsZER1bXBQaXhlbHMgPSB0cnVlOworICAgICAg
ICAgICAgaWYgKHRva2VuaXplci5oYXNOZXh0KCkpCisgICAgICAgICAgICAgICAgcmVzdWx0LmV4
cGVjdGVkUGl4ZWxIYXNoID0gdG9rZW5pemVyLm5leHQoKTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBkaWUoaW5wdXRMaW5lKTsKKyAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApA
QCAtNjc2LDYgKzY4NSw4IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJ1blRlc3QoY29uc3QgY2hh
ciogaW5wdXRMaW5lKQogICAgIG1fY3VycmVudEludm9jYXRpb24gPSBhZG9wdFB0cihuZXcgVGVz
dEludm9jYXRpb24oY29tbWFuZC5wYXRoT3JVUkwpKTsKICAgICBpZiAoY29tbWFuZC5zaG91bGRE
dW1wUGl4ZWxzIHx8IG1fc2hvdWxkRHVtcFBpeGVsc0ZvckFsbFRlc3RzKQogICAgICAgICBtX2N1
cnJlbnRJbnZvY2F0aW9uLT5zZXRJc1BpeGVsVGVzdChjb21tYW5kLmV4cGVjdGVkUGl4ZWxIYXNo
KTsKKyAgICBpZiAoY29tbWFuZC50aW1lb3V0ID4gMCkKKyAgICAgICAgbV9jdXJyZW50SW52b2Nh
dGlvbi0+c2V0Q3VzdG9tVGltZW91dChjb21tYW5kLnRpbWVvdXQpOwogCiAgICAgbV9jdXJyZW50
SW52b2NhdGlvbi0+aW52b2tlKCk7CiAgICAgbV9jdXJyZW50SW52b2NhdGlvbi5jbGVhcigpOwpA
QCAtNzI3LDYgKzczOCw5IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJ1blVudGlsKGJvb2wmIGRv
bmUsIFRpbWVvdXREdXJhdGlvbiB0aW1lb3V0RHVyYXRpb24pCiAgICAgICAgIGNhc2UgTG9uZ1Rp
bWVvdXQ6CiAgICAgICAgICAgICB0aW1lb3V0ID0gbV9sb25nVGltZW91dDsKICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEN1c3RvbVRpbWVvdXQ6CisgICAgICAgICAgICB0aW1lb3V0
ID0gbV90aW1lb3V0OworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTm9UaW1lb3V0
OgogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgdGltZW91dCA9IG1fbm9UaW1lb3V0Owpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDMzMmUzM2IuLmRmNGRk
MDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTYwLDEwICs2
MCwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbnN1cmVWaWV3U3VwcG9ydHNPcHRpb25zKFdLRGlj
dGlvbmFyeVJlZiBvcHRpb25zKTsKICAgICAKICAgICAvLyBSdW5zIHRoZSBydW4gbG9vcCB1bnRp
bCBgZG9uZWAgaXMgdHJ1ZSBvciB0aGUgdGltZW91dCBlbGFwc2VzLgotICAgIGVudW0gVGltZW91
dER1cmF0aW9uIHsgU2hvcnRUaW1lb3V0LCBMb25nVGltZW91dCwgTm9UaW1lb3V0IH07CisgICAg
ZW51bSBUaW1lb3V0RHVyYXRpb24geyBTaG9ydFRpbWVvdXQsIExvbmdUaW1lb3V0LCBOb1RpbWVv
dXQsIEN1c3RvbVRpbWVvdXQgfTsKICAgICBib29sIHVzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVy
KCkgeyByZXR1cm4gbV91c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcjsgfQogICAgIHZvaWQgcnVu
VW50aWwoYm9vbCYgZG9uZSwgVGltZW91dER1cmF0aW9uKTsKICAgICB2b2lkIG5vdGlmeURvbmUo
KTsKKworICAgIGludCBnZXRDdXN0b21UaW1lb3V0KCk7CiAgICAgCiAgICAgYm9vbCBiZWZvcmVV
bmxvYWRSZXR1cm5WYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmVmb3JlVW5sb2FkUmV0dXJuVmFs
dWU7IH0KICAgICB2b2lkIHNldEJlZm9yZVVubG9hZFJldHVyblZhbHVlKGJvb2wgdmFsdWUpIHsg
bV9iZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZSA9IHZhbHVlOyB9CkBAIC0xNjYsNiArMTY4LDggQEAg
cHJpdmF0ZToKICAgICBib29sIG1fdXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXI7CiAgICAgYm9v
bCBtX2ZvcmNlTm9UaW1lb3V0OwogCisgICAgaW50IG1fdGltZW91dDsKKwogICAgIGJvb2wgbV9k
aWRQcmludFdlYlByb2Nlc3NDcmFzaGVkTWVzc2FnZTsKICAgICBib29sIG1fc2hvdWxkRXhpdFdo
ZW5XZWJQcm9jZXNzQ3Jhc2hlczsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAKaW5kZXggOGY2NmNjMC4uZmQ5NmEyYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTEwMSw2ICsxMDEsNyBAQCBUZXN0SW52b2NhdGlv
bjo6VGVzdEludm9jYXRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGhPclVSTCkKICAgICA6IG1f
dXJsKEFkb3B0V0ssIGNyZWF0ZVdLVVJMKHBhdGhPclVSTC5jX3N0cigpKSkKICAgICAsIG1fcGF0
aE9yVVJMKHBhdGhPclVSTCkKICAgICAsIG1fZHVtcFBpeGVscyhmYWxzZSkKKyAgICAsIG1fdGlt
ZW91dCgwKQogICAgICwgbV9nb3RJbml0aWFsUmVzcG9uc2UoZmFsc2UpCiAgICAgLCBtX2dvdEZp
bmFsTWVzc2FnZShmYWxzZSkKICAgICAsIG1fZ290UmVwYWludChmYWxzZSkKQEAgLTExOSw2ICsx
MjAsMTEgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6c2V0SXNQaXhlbFRlc3QoY29uc3Qgc3RkOjpz
dHJpbmcmIGV4cGVjdGVkUGl4ZWxIYXNoKQogICAgIG1fZXhwZWN0ZWRQaXhlbEhhc2ggPSBleHBl
Y3RlZFBpeGVsSGFzaDsKIH0KIAordm9pZCBUZXN0SW52b2NhdGlvbjo6c2V0Q3VzdG9tVGltZW91
dChpbnQgdGltZW91dCkKK3sKKyAgICBtX3RpbWVvdXQgPSB0aW1lb3V0OworfQorCiBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgdzNjU1ZHV2lkdGggPSA0ODA7CiBzdGF0aWMgY29uc3QgdW5zaWduZWQg
dzNjU1ZHSGVpZ2h0ID0gMzYwOwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIG5vcm1hbFdpZHRoID0g
ODAwOwpAQCAtMTg5LDYgKzE5NSw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZUxheW91dFR5cGUoY29u
c3QgY2hhciogcGF0aE9yVVJMKQogCiB2b2lkIFRlc3RJbnZvY2F0aW9uOjppbnZva2UoKQogewor
ICAgIFRlc3RDb250cm9sbGVyOjpUaW1lb3V0RHVyYXRpb24gdGltZW91dFRvVXNlID0gVGVzdENv
bnRyb2xsZXI6OkxvbmdUaW1lb3V0OwogICAgIHNpemVXZWJWaWV3Rm9yQ3VycmVudFRlc3QobV9w
YXRoT3JVUkwuY19zdHIoKSk7CiAgICAgdXBkYXRlTGF5b3V0VHlwZShtX3BhdGhPclVSTC5jX3N0
cigpKTsKICAgICB1cGRhdGVUaWxlZERyYXdpbmdGb3JDdXJyZW50VGVzdChtX3BhdGhPclVSTC5j
X3N0cigpKTsKQEAgLTIwOCw2ICsyMTUsMTAgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6aW52b2tl
KCkKICAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IHVzZVdhaXRUb0R1bXBXYXRjaGRvZ1Rp
bWVyVmFsdWUgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShUZXN0Q29udHJvbGxlcjo6c2hhcmVk
KCkudXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIoKSkpOwogICAgIFdLRGljdGlvbmFyeUFkZEl0
ZW0oYmVnaW5UZXN0TWVzc2FnZUJvZHkuZ2V0KCksIHVzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVy
S2V5LmdldCgpLCB1c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lclZhbHVlLmdldCgpKTsKIAorICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB0aW1lb3V0S2V5ID0gYWRvcHRXSyhXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiVGltZW91dCIpKTsKKyAgICBXS1JldGFpblB0cjxXS1VJbnQ2
NFJlZj4gdGltZW91dFZhbHVlID0gYWRvcHRXSyhXS1VJbnQ2NENyZWF0ZShtX3RpbWVvdXQpKTsK
KyAgICBXS0RpY3Rpb25hcnlBZGRJdGVtKGJlZ2luVGVzdE1lc3NhZ2VCb2R5LmdldCgpLCB0aW1l
b3V0S2V5LmdldCgpLCB0aW1lb3V0VmFsdWUuZ2V0KCkpOworCiAgICAgV0tDb250ZXh0UG9zdE1l
c3NhZ2VUb0luamVjdGVkQnVuZGxlKFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5jb250ZXh0KCks
IG1lc3NhZ2VOYW1lLmdldCgpLCBiZWdpblRlc3RNZXNzYWdlQm9keS5nZXQoKSk7CiAKICAgICBU
ZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkucnVuVW50aWwobV9nb3RJbml0aWFsUmVzcG9uc2UsIFRl
c3RDb250cm9sbGVyOjpTaG9ydFRpbWVvdXQpOwpAQCAtMjI2LDcgKzIzNywxMyBAQCB2b2lkIFRl
c3RJbnZvY2F0aW9uOjppbnZva2UoKQogCiAgICAgV0tQYWdlTG9hZFVSTChUZXN0Q29udHJvbGxl
cjo6c2hhcmVkKCkubWFpbldlYlZpZXcoKS0+cGFnZSgpLCBtX3VybC5nZXQoKSk7CiAKLSAgICBU
ZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkucnVuVW50aWwobV9nb3RGaW5hbE1lc3NhZ2UsIFRlc3RD
b250cm9sbGVyOjpzaGFyZWQoKS51c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcigpID8gVGVzdENv
bnRyb2xsZXI6OkxvbmdUaW1lb3V0IDogVGVzdENvbnRyb2xsZXI6Ok5vVGltZW91dCk7CisgICAg
aWYgKFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS51c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcigp
KSB7CisgICAgICAgIGlmIChtX3RpbWVvdXQgPiAwKQorICAgICAgICAgICAgdGltZW91dFRvVXNl
ID0gVGVzdENvbnRyb2xsZXI6OkN1c3RvbVRpbWVvdXQ7CisgICAgfSBlbHNlCisgICAgICAgIHRp
bWVvdXRUb1VzZSA9IFRlc3RDb250cm9sbGVyOjpOb1RpbWVvdXQ7CisgICAgVGVzdENvbnRyb2xs
ZXI6OnNoYXJlZCgpLnJ1blVudGlsKG1fZ290RmluYWxNZXNzYWdlLCB0aW1lb3V0VG9Vc2UpOwor
CiAgICAgaWYgKCFtX2dvdEZpbmFsTWVzc2FnZSkgewogICAgICAgICBtX2Vycm9yTWVzc2FnZSA9
ICJUaW1lZCBvdXQgd2FpdGluZyBmb3IgZmluYWwgbWVzc2FnZSBmcm9tIHdlYiBwcm9jZXNzXG4i
OwogICAgICAgICBtX3dlYlByb2Nlc3NJc1VucmVzcG9uc2l2ZSA9IHRydWU7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmggYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKaW5kZXggZTQ5ZDlmZC4uOGEyYWNjYSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaApAQCAtNDAsNiArNDAsOCBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHNldElzUGl4ZWxUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3Rl
ZFBpeGVsSGFzaCk7CiAKKyAgICB2b2lkIHNldEN1c3RvbVRpbWVvdXQoaW50IGR1cmF0aW9uKTsK
KwogICAgIHZvaWQgaW52b2tlKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21Jbmpl
Y3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5
KTsKICAgICBXS1JldGFpblB0cjxXS1R5cGVSZWY+IGRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBt
ZXNzYWdlQm9keSk7CkBAIC02MSw2ICs2Myw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2R1bXBQ
aXhlbHM7CiAgICAgc3RkOjpzdHJpbmcgbV9leHBlY3RlZFBpeGVsSGFzaDsKIAorICAgIGludCBt
X3RpbWVvdXQ7CisKICAgICAvLyBJbnZvY2F0aW9uIHN0YXRlCiAgICAgYm9vbCBtX2dvdEluaXRp
YWxSZXNwb25zZTsKICAgICBib29sIG1fZ290RmluYWxNZXNzYWdlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>