<?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>137229</bug_id>
          
          <creation_ts>2014-09-29 14:01:44 -0700</creation_ts>
          <short_desc>LayoutTestResults and ExpectedFailures should know about the interrupted flag from the json results file</short_desc>
          <delta_ts>2014-09-30 15:58:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jake Nielsen">jake.nielsen.webkit</reporter>
          <assigned_to name="Jake Nielsen">jake.nielsen.webkit</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>glenn</cc>
    
    <cc>jake.nielsen.webkit</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1038044</commentid>
    <comment_count>0</comment_count>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-09-29 14:01:44 -0700</bug_when>
    <thetext>results.json has an &quot;interrupted&quot; key that is set when the number of failing tests exceeds the failing test dropout limit. Instead of checking the number of failed tests, LayoutTestResults and ExpectedFailures should simply check this key.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038050</commentid>
    <comment_count>1</comment_count>
      <attachid>238879</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-09-29 14:11:17 -0700</bug_when>
    <thetext>Created attachment 238879
Fixes LayoutTestResults to only have a notion of whether the interrupted flag was set.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038052</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-29 14:12:27 -0700</bug_when>
    <thetext>Attachment 238879 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:76:  whitespace before &apos;:&apos;  [pep8/E203] [5]
ERROR: Tools/Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:113:  whitespace before &apos;:&apos;  [pep8/E203] [5]
ERROR: Tools/Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:283:  missing whitespace after &apos;:&apos;  [pep8/E231] [5]
ERROR: Tools/Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:314:  missing whitespace after &apos;:&apos;  [pep8/E231] [5]
ERROR: Tools/Scripts/webkitpy/tool/bot/layouttestresultsreader_unittest.py:71:  missing whitespace after &apos;:&apos;  [pep8/E231] [5]
ERROR: Tools/Scripts/webkitpy/tool/bot/layouttestresultsreader_unittest.py:84:  missing whitespace after &apos;:&apos;  [pep8/E231] [5]
ERROR: Tools/Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py:51:  whitespace before &apos;:&apos;  [pep8/E203] [5]
ERROR: Tools/Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py:65:  whitespace after &apos;(&apos;  [pep8/E201] [5]
Total errors found: 8 in 9 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>1038054</commentid>
    <comment_count>3</comment_count>
      <attachid>238879</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-09-29 14:14:22 -0700</bug_when>
    <thetext>Comment on attachment 238879
Fixes LayoutTestResults to only have a notion of whether the interrupted flag was set.

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

&gt; Tools/Scripts/webkitpy/common/net/resultsjsonparser.py:156
&gt; +        #Because we want to keep all of the metadata stored in the json dict, but we want already-processed test results,

Needs a space after the &apos;#&apos;, but probably the stylebot told you that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038060</commentid>
    <comment_count>4</comment_count>
      <attachid>238881</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-09-29 14:23:55 -0700</bug_when>
    <thetext>Created attachment 238881
Fixes style issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038071</commentid>
    <comment_count>5</comment_count>
      <attachid>238881</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-09-29 14:50:33 -0700</bug_when>
    <thetext>Comment on attachment 238881
Fixes style issues

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

&gt; Tools/Scripts/webkitpy/common/net/layouttestresults.py:66
&gt; +    def interrupted(self):
&gt; +        return self._result_dict[&quot;interrupted&quot;]
&gt;  
&gt;      def test_results(self):
&gt; -        return self._test_results
&gt; +        return self._result_dict[&apos;tests&apos;]

It may be nicer to split the dictionary into separate member variables when constructing the LayoutTestResults object. There doesn&apos;t seem to be any reason to keep them together.

&gt; Tools/Scripts/webkitpy/common/net/resultsjsonparser.py:156
&gt; +        # Because we want to keep all of the metadata stored in the json dict, but we want already-processed test results,

I&apos;d state this slightly differently:

# We want to keep all of the metadata stored in the json dictionary as is, but we want already-processed test results.

As long as comment explains why something is done, the reader is supposed to read how the code achieves this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038072</commentid>
    <comment_count>6</comment_count>
      <attachid>238881</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-09-29 14:55:32 -0700</bug_when>
    <thetext>Comment on attachment 238881
Fixes style issues

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

&gt; Tools/Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py:51
&gt; +            resultsdict = {&quot;tests&quot;: results, &quot;interrupted&quot;: False}

I take it that it doesn&apos;t make sense to incorporate this functionality into LayoutTestResults directly?

Assuming it doesn&apos;t make sense to incorporate this functionality into LayoutTestResults then using a dictionary with names for special keys (e.g. &quot;interrupted&quot;) that are duplicated each time we want to construct such a dictionary seems error prone, say a caller incorrectly spells the name of a special key. Will such a misspelling manifest itself in a way that makes it straightforward to notice the issue? Is there anything analogous to a C-struct in Python? Otherwise, maybe define a class with public instance variables and optionally a non-empty constructor. At the very least, we should document the convention.

On another note, this local variable is used exactly once and I don&apos;t feel that its name improves the readability of the code as it&apos;s a portmanteau of the word &quot;results&quot; and its data type. I suggest we either come up a more descriptive name or inline its definition into the line below.

&gt;&gt; Tools/Scripts/webkitpy/common/net/layouttestresults.py:66
&gt;&gt; +        return self._result_dict[&apos;tests&apos;]
&gt; 
&gt; It may be nicer to split the dictionary into separate member variables when constructing the LayoutTestResults object. There doesn&apos;t seem to be any reason to keep them together.

Nit: &apos; =&gt; &quot;

(single quotes) =&gt; (double quotes)

&gt; Tools/Scripts/webkitpy/common/net/layouttestresults.py:69
&gt; +        return [result for result in self._result_dict[&apos;tests&apos;] if result.has_failure_matching_types(*failure_types)]

Ditto.

&gt; Tools/Scripts/webkitpy/common/net/resultsjsonparser.py:158
&gt; +        json_dict[&apos;tests&apos;] = unexpected_failures

Nit: &apos; =&gt; &quot;

&gt; Tools/Scripts/webkitpy/common/net/resultsjsonparser_unittest.py:91
&gt; +        results = ResultsJSONParser.parse_results_json(self._example_full_results_json)[&apos;tests&apos;]

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038115</commentid>
    <comment_count>7</comment_count>
      <attachid>238881</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-09-29 16:50:21 -0700</bug_when>
    <thetext>Comment on attachment 238881
Fixes style issues

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

&gt;&gt; Tools/Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py:51
&gt;&gt; +            resultsdict = {&quot;tests&quot;: results, &quot;interrupted&quot;: False}
&gt; 
&gt; I take it that it doesn&apos;t make sense to incorporate this functionality into LayoutTestResults directly?
&gt; 
&gt; Assuming it doesn&apos;t make sense to incorporate this functionality into LayoutTestResults then using a dictionary with names for special keys (e.g. &quot;interrupted&quot;) that are duplicated each time we want to construct such a dictionary seems error prone, say a caller incorrectly spells the name of a special key. Will such a misspelling manifest itself in a way that makes it straightforward to notice the issue? Is there anything analogous to a C-struct in Python? Otherwise, maybe define a class with public instance variables and optionally a non-empty constructor. At the very least, we should document the convention.
&gt; 
&gt; On another note, this local variable is used exactly once and I don&apos;t feel that its name improves the readability of the code as it&apos;s a portmanteau of the word &quot;results&quot; and its data type. I suggest we either come up a more descriptive name or inline its definition into the line below.

I take it that it doesn&apos;t make sense to incorporate this functionality into LayoutTestResults directly?

Assuming it doesn&apos;t make sense to incorporate this functionality into LayoutTestResults then using a dictionary with names for special keys (e.g. &quot;interrupted&quot;) that are duplicated each time we want to construct such a dictionary seems error prone, say a caller incorrectly spells the name of a special key. Will such a misspelling manifest itself in a way that makes it straightforward to notice the issue? Is there anything analogous to a C-struct in Python? Otherwise, maybe define a class with public instance variables and optionally a non-empty constructor. At the very least, we should document the convention.

On another note, this local variable is used exactly once and I don&apos;t feel that its name improves the readability of the code as it&apos;s a portmanteau of the word &quot;results&quot; and its data type. I suggest we either come up a more descriptive name or inline its definition into the line below.

&gt;&gt;&gt; Tools/Scripts/webkitpy/common/net/layouttestresults.py:66
&gt;&gt;&gt; +        return self._result_dict[&apos;tests&apos;]
&gt;&gt; 
&gt;&gt; It may be nicer to split the dictionary into separate member variables when constructing the LayoutTestResults object. There doesn&apos;t seem to be any reason to keep them together.
&gt; 
&gt; Nit: &apos; =&gt; &quot;
&gt; 
&gt; (single quotes) =&gt; (double quotes)

Nit: &apos; =&gt; &quot;

(single quotes) =&gt; (double quotes)

&gt;&gt; Tools/Scripts/webkitpy/common/net/layouttestresults.py:69
&gt;&gt; +        return [result for result in self._result_dict[&apos;tests&apos;] if result.has_failure_matching_types(*failure_types)]
&gt; 
&gt; Ditto.

Ditto.

&gt; Tools/Scripts/webkitpy/common/net/resultsjsonparser.py:-155
&gt;          # FIXME: What&apos;s the short sexy python way to filter None?
&gt;          # I would use [foo.bar() for foo in foos if foo.bar()] but bar() is expensive.
&gt;          unexpected_failures = [result.test_result() for result in json_results if not result.did_pass_or_run_as_expected()]
&gt; -        return filter(lambda a: a, unexpected_failures)

From my understanding, the FIXME comment was referring to the use of filter() and implied that result.test_result() may return None. Is it still true that result.test_result() may return None? Does the layout test result machinery still work when json_dict[&quot;tests&quot;] contains such None values?

&gt;&gt; Tools/Scripts/webkitpy/common/net/resultsjsonparser_unittest.py:91
&gt;&gt; +        results = ResultsJSONParser.parse_results_json(self._example_full_results_json)[&apos;tests&apos;]
&gt; 
&gt; Ditto.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038265</commentid>
    <comment_count>8</comment_count>
      <attachid>238940</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-09-30 11:09:33 -0700</bug_when>
    <thetext>Created attachment 238940
Addresses points concerning strong coupling with results.son</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038279</commentid>
    <comment_count>9</comment_count>
      <attachid>238944</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-09-30 11:45:28 -0700</bug_when>
    <thetext>Created attachment 238944
Makes naming conventions more clear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038318</commentid>
    <comment_count>10</comment_count>
      <attachid>238944</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-09-30 13:32:56 -0700</bug_when>
    <thetext>Comment on attachment 238944
Makes naming conventions more clear

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

This patch looks better. I noticed some cosmetic issues. Although these issues are cosmetic, I&apos;m r-&apos;ing this patch since there are many such issues and it would be good to see another iteration.

&gt; Tools/ChangeLog:4
&gt; +        Changes LayoutTestResults to use the interrupted flag instead of
&gt; +        counting failures

This bug description should be moved to be after the Reviewed by line (below) and the bug title should be here such that the top portion of this change log entry has the form:

LayoutTestResults and ExpectedFailures should know about the interrupted flag from the json results file
https://bugs.webkit.org/show_bug.cgi?id=137229

Reviewed by NOBODY (OOPS!).

Changes LayoutTestResults to use the interrupted flag instead of counting failures.

On another note, the description is out-of-date and we should update it to reflect the current state of the patch. You may also want to consider adding per function/per file comments below.

&gt; Tools/ChangeLog:46
&gt; +        * Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py:
&gt; +        (BuilderTest._install_fetch_build._mock_fetch_build):
&gt; +        (BuilderTest.test_latest_layout_test_results):
&gt; +        * Scripts/webkitpy/common/net/layouttestresults.py:
&gt; +        (LayoutTestResults.results_from_string):
&gt; +        (LayoutTestResults.__init__):
&gt; +        (LayoutTestResults.interrupted):
&gt; +        (LayoutTestResults.test_results):
&gt; +        (LayoutTestResults.results_matching_failure_types):
&gt; +        (LayoutTestResults): Deleted.
&gt; +        (LayoutTestResults.set_failure_limit_count): Deleted.
&gt; +        (LayoutTestResults.failure_limit_count): Deleted.
&gt; +        * Scripts/webkitpy/common/net/layouttestresults_unittest.py:
&gt; +        (LayoutTestResultsTest.test_set_failure_limit_count): Deleted.
&gt; +        * Scripts/webkitpy/common/net/resultsjsonparser.py:
&gt; +        (ResultsJSONParser.parse_results_json):
&gt; +        * Scripts/webkitpy/common/net/resultsjsonparser_unittest.py:
&gt; +        (test_basic):
&gt; +        * Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:
&gt; +        (MockCommitQueue.test_results):
&gt; +        (FailingTestCommitQueue.test_results):
&gt; +        (test_flaky_test_failure):
&gt; +        (test_failed_archive):
&gt; +        * Scripts/webkitpy/tool/bot/expectedfailures.py:
&gt; +        (ExpectedFailures._should_trust):
&gt; +        * Scripts/webkitpy/tool/bot/expectedfailures_unittest.py:
&gt; +        (MockResults.__init__):
&gt; +        (MockResults.interrupted):
&gt; +        (ExpectedFailuresTest.test_can_trust_results):
&gt; +        (ExpectedFailuresTest.test_unexpected_failures_observed):
&gt; +        (ExpectedFailuresTest.test_unexpected_failures_observed_when_tree_is_hosed):
&gt; +        (MockResults.failure_limit_count): Deleted.
&gt; +        * Scripts/webkitpy/tool/bot/layouttestresultsreader.py:
&gt; +        (LayoutTestResultsReader.results):
&gt; +        * Scripts/webkitpy/tool/bot/layouttestresultsreader_unittest.py:
&gt; +        (test_missing_unit_test_results_path):
&gt; +        (test_layout_test_results):
&gt; +

This listing of added/modified/deleted functions is out-of-date. In particular, the method LayoutTestResults.interrupted was renamed to LayoutTestResults.did_exceed_test_failure_limit. Please generate a new change log entry.

&gt; Tools/Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py:51
&gt; +            layout_test_results = LayoutTestResults(results, False)

It&apos;s not clear what the purpose of the boolean False is without looking at the definition of class LayoutTestResults. I suggest that we use the named argument syntax so as to make the purpose of this argument clear at the callsite:

layout_test_results = LayoutTestResults(results, did_exceed_test_failure_limit=False)

&gt; Tools/Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py:64
&gt; +        self.builder.fetch_layout_test_results = lambda results_url: LayoutTestResults([self._mock_test_result(testname) for testname in [&quot;test1&quot;, &quot;test2&quot;]], False)

Ditto.

&gt; Tools/Scripts/webkitpy/common/net/layouttestresults.py:53
&gt; +        full_results = ParsedJSONResults(string)

Maybe a better name for this variable would be results or parsed_results or parsed_json?

&gt; Tools/Scripts/webkitpy/common/net/resultsjsonparser.py:152
&gt; +

Please remove this empty line as I don&apos;t feel that it improves the readability of this code.

&gt; Tools/Scripts/webkitpy/common/net/resultsjsonparser.py:156
&gt; +

Ditto.

&gt; Tools/Scripts/webkitpy/common/net/resultsjsonparser.py:162
&gt; +        self._interrupted = json_dict[&quot;interrupted&quot;]

We tend to use the name the instance variable in the name of its getter for consistency. So, I suggest that we rename this instance variable from _interrupted to _did_exceed_test_failure_limit.

&gt; Tools/Scripts/webkitpy/common/net/resultsjsonparser.py:165
&gt; +        return self._interrupted

Ditto.

&gt; Tools/Scripts/webkitpy/common/net/resultsjsonparser_unittest.py:92
&gt; +        full_results = ParsedJSONResults(self._example_full_results_json)

As aforementioned, maybe a better name for this variable would be results or parsed_results or parsed_json?

&gt; Tools/Scripts/webkitpy/common/net/resultsjsonparser_unittest.py:93
&gt; +        results = full_results.test_results()

This variable is used exactly once and I don&apos;t feel the name of this variable improves the readability to the code as the name of the method name &quot;test_results()&quot; in the right hand side expression is sufficiently descriptive. I suggest that we inline the value of this variable into the line below and remove this variable.

&gt; Tools/Scripts/webkitpy/common/net/resultsjsonparser_unittest.py:95
&gt; +        self.assertEqual(True, full_results.did_exceed_test_failure_limit())

Notice that the unittest module has a convenience function called assertTrue that asserts that the specified expression evaluates to true in a boolean context. I would use this function instead of unittest.assertEqual(True, ...) and write this line as:

self.assertTrue(full_results.did_exceed_test_failure_limit())

See &lt;https://docs.python.org/2/library/unittest.html&gt; for more details.

&gt; Tools/Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:76
&gt; +        return LayoutTestResults([], True)

It&apos;s not clear what the purpose of the boolean False is without looking at the definition of class LayoutTestResults. I suggest that we use the named argument syntax so as to make the purpose of this argument clear at the callsite:

return LayoutTestResults([], did_exceed_test_failure_limit=True)

&gt; Tools/Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:283
&gt; +        commit_queue.test_results = lambda: LayoutTestResults([], True)

Similarly, I would write this line using a name argument for the second argument to LayoutTestResults().

&gt; Tools/Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:314
&gt; +        commit_queue.test_results = lambda: LayoutTestResults([], True)

Ditto.

&gt; Tools/Scripts/webkitpy/tool/bot/expectedfailures.py:43
&gt; +        if results:
&gt; +            return not results.did_exceed_test_failure_limit()
&gt; +        return False

The if-statement isn&apos;t necessary. I would have written this as:

return bool(results and not results.did_exceed_test_failure_limit())

&gt; Tools/Scripts/webkitpy/tool/bot/layouttestresultsreader_unittest.py:71
&gt; +        reader._create_layout_test_results = lambda: LayoutTestResults([], False)

It&apos;s not clear what the purpose of the boolean False is without looking at the definition of class LayoutTestResults. I suggest that we use the named argument syntax so as to make the purpose of this argument clear at the callsite:

reader._create_layout_test_results = lambda: LayoutTestResults([], did_exceed_test_failure_limit=False)

&gt; Tools/Scripts/webkitpy/tool/bot/layouttestresultsreader_unittest.py:84
&gt; +        reader._create_layout_test_results = lambda: LayoutTestResults([], False)

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038360</commentid>
    <comment_count>11</comment_count>
      <attachid>238965</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-09-30 14:51:14 -0700</bug_when>
    <thetext>Created attachment 238965
Addresses style points.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038363</commentid>
    <comment_count>12</comment_count>
      <attachid>238966</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-09-30 15:06:18 -0700</bug_when>
    <thetext>Created attachment 238966
Adds periods to sentences in changelog, and adds test case for interrupted: false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038366</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-30 15:08:25 -0700</bug_when>
    <thetext>Attachment 238966 did not pass style-queue:


ERROR: Tools/ChangeLog:84:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 10 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>1038369</commentid>
    <comment_count>14</comment_count>
      <attachid>238966</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-09-30 15:10:42 -0700</bug_when>
    <thetext>Comment on attachment 238966
Adds periods to sentences in changelog, and adds test case for interrupted: false.

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

Thanks for updating the patch!

&gt; Tools/Scripts/webkitpy/common/net/resultsjsonparser_unittest.py:144
&gt; +    def test_alternate(self):

This is OK as-is. I wish we had a more descriptive name for this function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038372</commentid>
    <comment_count>15</comment_count>
      <attachid>238966</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-09-30 15:11:56 -0700</bug_when>
    <thetext>Comment on attachment 238966
Adds periods to sentences in changelog, and adds test case for interrupted: false.

Clearing cq flag because of comment #13.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038373</commentid>
    <comment_count>16</comment_count>
      <attachid>238969</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-09-30 15:15:27 -0700</bug_when>
    <thetext>Created attachment 238969
Removes tab, and renames test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038383</commentid>
    <comment_count>17</comment_count>
      <attachid>238969</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-30 15:58:31 -0700</bug_when>
    <thetext>Comment on attachment 238969
Removes tab, and renames test.

Clearing flags on attachment: 238969

Committed r174130: &lt;http://trac.webkit.org/changeset/174130&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038384</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-30 15:58:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238879</attachid>
            <date>2014-09-29 14:11:17 -0700</date>
            <delta_ts>2014-09-29 14:23:55 -0700</delta_ts>
            <desc>Fixes LayoutTestResults to only have a notion of whether the interrupted flag was set.</desc>
            <filename>0001-Changes-LayoutTestResults-to-use-the-interrupted-fla.patch</filename>
            <type>text/plain</type>
            <size>22105</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSBlYTNjNDhiZTRhNTZhMzJjODI4MGY3ZmVjZDBhM2E1YmVkMGJjMTBmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBNb24sIDI5IFNlcCAyMDE0IDE0OjAzOjAxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
Q2hhbmdlcyBMYXlvdXRUZXN0UmVzdWx0cyB0byB1c2UgdGhlIGludGVycnVwdGVkIGZsYWcgaW5z
dGVhZAogb2YgY291bnRpbmcgZmFpbHVyZXMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzNzIyOQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIFNjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC9idWlsZGJvdF91bml0dGVzdC5weToKKEJ1aWxk
ZXJUZXN0Ll9pbnN0YWxsX2ZldGNoX2J1aWxkLl9tb2NrX2ZldGNoX2J1aWxkKToKKEJ1aWxkZXJU
ZXN0LnRlc3RfbGF0ZXN0X2xheW91dF90ZXN0X3Jlc3VsdHMpOgoqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weToKKExheW91dFRlc3RSZXN1bHRzLnJlc3Vs
dHNfZnJvbV9zdHJpbmcpOgooTGF5b3V0VGVzdFJlc3VsdHMuX19pbml0X18pOgooTGF5b3V0VGVz
dFJlc3VsdHMuaW50ZXJydXB0ZWQpOgooTGF5b3V0VGVzdFJlc3VsdHMudGVzdF9yZXN1bHRzKToK
KExheW91dFRlc3RSZXN1bHRzLnJlc3VsdHNfbWF0Y2hpbmdfZmFpbHVyZV90eXBlcyk6CihMYXlv
dXRUZXN0UmVzdWx0cyk6IERlbGV0ZWQuCihMYXlvdXRUZXN0UmVzdWx0cy5zZXRfZmFpbHVyZV9s
aW1pdF9jb3VudCk6IERlbGV0ZWQuCihMYXlvdXRUZXN0UmVzdWx0cy5mYWlsdXJlX2xpbWl0X2Nv
dW50KTogRGVsZXRlZC4KKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJl
c3VsdHNfdW5pdHRlc3QucHk6CihMYXlvdXRUZXN0UmVzdWx0c1Rlc3QudGVzdF9zZXRfZmFpbHVy
ZV9saW1pdF9jb3VudCk6IERlbGV0ZWQuCiogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jl
c3VsdHNqc29ucGFyc2VyLnB5OgooUmVzdWx0c0pTT05QYXJzZXIucGFyc2VfcmVzdWx0c19qc29u
KToKKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRl
c3QucHk6Cih0ZXN0X2Jhc2ljKToKKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1
ZXVldGFza191bml0dGVzdC5weToKKE1vY2tDb21taXRRdWV1ZS50ZXN0X3Jlc3VsdHMpOgooRmFp
bGluZ1Rlc3RDb21taXRRdWV1ZS50ZXN0X3Jlc3VsdHMpOgoodGVzdF9mbGFreV90ZXN0X2ZhaWx1
cmUpOgoodGVzdF9mYWlsZWRfYXJjaGl2ZSk6CiogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9l
eHBlY3RlZGZhaWx1cmVzLnB5OgooRXhwZWN0ZWRGYWlsdXJlcy5fc2hvdWxkX3RydXN0KToKKiBT
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHk6CihN
b2NrUmVzdWx0cy5fX2luaXRfXyk6CihNb2NrUmVzdWx0cy5pbnRlcnJ1cHRlZCk6CihFeHBlY3Rl
ZEZhaWx1cmVzVGVzdC50ZXN0X2Nhbl90cnVzdF9yZXN1bHRzKToKKEV4cGVjdGVkRmFpbHVyZXNU
ZXN0LnRlc3RfdW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCk6CihFeHBlY3RlZEZhaWx1cmVz
VGVzdC50ZXN0X3VuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWRfd2hlbl90cmVlX2lzX2hvc2Vk
KToKKE1vY2tSZXN1bHRzLmZhaWx1cmVfbGltaXRfY291bnQpOiBEZWxldGVkLgoqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXIucHk6CihMYXlvdXRUZXN0
UmVzdWx0c1JlYWRlci5yZXN1bHRzKToKKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91
dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0LnB5OgoodGVzdF9taXNzaW5nX3VuaXRfdGVzdF9y
ZXN1bHRzX3BhdGgpOgoodGVzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKToKLS0tCiBUb29scy9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQ2ICsrKysrKysrKysr
KysrKysrKysrKysKIC4uLi9jb21tb24vbmV0L2J1aWxkYm90L2J1aWxkYm90X3VuaXR0ZXN0LnB5
ICAgICAgIHwgIDUgKystCiAuLi4vd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0
cy5weSAgICAgICB8IDI4ICsrKysrLS0tLS0tLS0KIC4uLi9jb21tb24vbmV0L2xheW91dHRlc3Ry
ZXN1bHRzX3VuaXR0ZXN0LnB5ICAgICAgIHwgIDUgLS0tCiAuLi4vd2Via2l0cHkvY29tbW9uL25l
dC9yZXN1bHRzanNvbnBhcnNlci5weSAgICAgICB8ICA2ICsrLQogLi4uL2NvbW1vbi9uZXQvcmVz
dWx0c2pzb25wYXJzZXJfdW5pdHRlc3QucHkgICAgICAgfCAgMiArLQogLi4uL3dlYmtpdHB5L3Rv
b2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weSAgfCAxMCArKy0tLQogLi4uL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlcy5weSAgfCAgNCArLQogLi4uL3dl
YmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHkgfCAzMCArKysrKysr
LS0tLS0tLQogLi4uL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyLnB5
ICAgfCAgNCAtLQogLi4uL3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0
LnB5ICAgfCAgNSArLS0KIDExIGZpbGVzIGNoYW5nZWQsIDg4IGluc2VydGlvbnMoKyksIDU3IGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCA5MWM3MmQ4Li45M2EzOGFjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTQtMDktMjkgIEpha2UgTmll
bHNlbiAgPGphY29iX25pZWxzZW5AYXBwbGUuY29tPgorCisgICAgICAgIENoYW5nZXMgTGF5b3V0
VGVzdFJlc3VsdHMgdG8gdXNlIHRoZSBpbnRlcnJ1cHRlZCBmbGFnIGluc3RlYWQgb2YKKyAgICAg
ICAgY291bnRpbmcgZmFpbHVyZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzNzIyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1aWxkYm90L2J1aWxk
Ym90X3VuaXR0ZXN0LnB5OgorICAgICAgICAoQnVpbGRlclRlc3QuX2luc3RhbGxfZmV0Y2hfYnVp
bGQuX21vY2tfZmV0Y2hfYnVpbGQpOgorICAgICAgICAoQnVpbGRlclRlc3QudGVzdF9sYXRlc3Rf
bGF5b3V0X3Rlc3RfcmVzdWx0cyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L2xheW91dHRlc3RyZXN1bHRzLnB5OgorICAgICAgICAoTGF5b3V0VGVzdFJlc3VsdHMucmVz
dWx0c19mcm9tX3N0cmluZyk6CisgICAgICAgIChMYXlvdXRUZXN0UmVzdWx0cy5fX2luaXRfXyk6
CisgICAgICAgIChMYXlvdXRUZXN0UmVzdWx0cy5pbnRlcnJ1cHRlZCk6CisgICAgICAgIChMYXlv
dXRUZXN0UmVzdWx0cy50ZXN0X3Jlc3VsdHMpOgorICAgICAgICAoTGF5b3V0VGVzdFJlc3VsdHMu
cmVzdWx0c19tYXRjaGluZ19mYWlsdXJlX3R5cGVzKToKKyAgICAgICAgKExheW91dFRlc3RSZXN1
bHRzKTogRGVsZXRlZC4KKyAgICAgICAgKExheW91dFRlc3RSZXN1bHRzLnNldF9mYWlsdXJlX2xp
bWl0X2NvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKExheW91dFRlc3RSZXN1bHRzLmZhaWx1cmVf
bGltaXRfY291bnQpOiBEZWxldGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9sYXlvdXR0ZXN0cmVzdWx0c191bml0dGVzdC5weToKKyAgICAgICAgKExheW91dFRlc3RS
ZXN1bHRzVGVzdC50ZXN0X3NldF9mYWlsdXJlX2xpbWl0X2NvdW50KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXIucHk6Cisg
ICAgICAgIChSZXN1bHRzSlNPTlBhcnNlci5wYXJzZV9yZXN1bHRzX2pzb24pOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlcl91bml0dGVzdC5w
eToKKyAgICAgICAgKHRlc3RfYmFzaWMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5OgorICAgICAgICAoTW9ja0NvbW1pdFF1
ZXVlLnRlc3RfcmVzdWx0cyk6CisgICAgICAgIChGYWlsaW5nVGVzdENvbW1pdFF1ZXVlLnRlc3Rf
cmVzdWx0cyk6CisgICAgICAgICh0ZXN0X2ZsYWt5X3Rlc3RfZmFpbHVyZSk6CisgICAgICAgICh0
ZXN0X2ZhaWxlZF9hcmNoaXZlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L2V4cGVjdGVkZmFpbHVyZXMucHk6CisgICAgICAgIChFeHBlY3RlZEZhaWx1cmVzLl9zaG91bGRf
dHJ1c3QpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWls
dXJlc191bml0dGVzdC5weToKKyAgICAgICAgKE1vY2tSZXN1bHRzLl9faW5pdF9fKToKKyAgICAg
ICAgKE1vY2tSZXN1bHRzLmludGVycnVwdGVkKToKKyAgICAgICAgKEV4cGVjdGVkRmFpbHVyZXNU
ZXN0LnRlc3RfY2FuX3RydXN0X3Jlc3VsdHMpOgorICAgICAgICAoRXhwZWN0ZWRGYWlsdXJlc1Rl
c3QudGVzdF91bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKToKKyAgICAgICAgKEV4cGVjdGVk
RmFpbHVyZXNUZXN0LnRlc3RfdW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZF93aGVuX3RyZWVf
aXNfaG9zZWQpOgorICAgICAgICAoTW9ja1Jlc3VsdHMuZmFpbHVyZV9saW1pdF9jb3VudCk6IERl
bGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVz
dWx0c3JlYWRlci5weToKKyAgICAgICAgKExheW91dFRlc3RSZXN1bHRzUmVhZGVyLnJlc3VsdHMp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNy
ZWFkZXJfdW5pdHRlc3QucHk6CisgICAgICAgICh0ZXN0X21pc3NpbmdfdW5pdF90ZXN0X3Jlc3Vs
dHNfcGF0aCk6CisgICAgICAgICh0ZXN0X2xheW91dF90ZXN0X3Jlc3VsdHMpOgorCiAyMDE0LTA5
LTI2ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIE1hYyBF
V1MgYm90cyBkbyBub3Qga2VlcCBsb2dzIGFzIHByb21pc2VkCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRib3RfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRib3RfdW5p
dHRlc3QucHkKaW5kZXggYjAwMzkzZC4uNTIxZTIzYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L2J1aWxkYm90L2J1aWxkYm90X3VuaXR0ZXN0LnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC9idWlsZGJvdF91bml0
dGVzdC5weQpAQCAtNDgsNyArNDgsOCBAQCBjbGFzcyBCdWlsZGVyVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgICAgICAgICAgICAgaXNfZ3JlZW49YnVpbGRfbnVtYmVyIDwgNAogICAgICAg
ICAgICAgKQogICAgICAgICAgICAgcmVzdWx0cyA9IFtzZWxmLl9tb2NrX3Rlc3RfcmVzdWx0KHRl
c3RuYW1lKSBmb3IgdGVzdG5hbWUgaW4gZmFpbHVyZShidWlsZF9udW1iZXIpXQotICAgICAgICAg
ICAgbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IExheW91dFRlc3RSZXN1bHRzKHJlc3VsdHMpCisgICAg
ICAgICAgICByZXN1bHRzZGljdCA9IHsidGVzdHMiIDogcmVzdWx0cywgImludGVycnVwdGVkIiA6
IEZhbHNlfQorICAgICAgICAgICAgbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IExheW91dFRlc3RSZXN1
bHRzKHJlc3VsdHNkaWN0KQogICAgICAgICAgICAgZGVmIG1vY2tfbGF5b3V0X3Rlc3RfcmVzdWx0
cygpOgogICAgICAgICAgICAgICAgIHJldHVybiBsYXlvdXRfdGVzdF9yZXN1bHRzCiAgICAgICAg
ICAgICBidWlsZC5sYXlvdXRfdGVzdF9yZXN1bHRzID0gbW9ja19sYXlvdXRfdGVzdF9yZXN1bHRz
CkBAIC02MSw3ICs2Miw3IEBAIGNsYXNzIEJ1aWxkZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICAgICAgc2VsZi5faW5zdGFsbF9mZXRjaF9idWlsZChsYW1iZGEgYnVpbGRfbnVtYmVyOiBb
InRlc3QxIiwgInRlc3QyIl0pCiAKICAgICBkZWYgdGVzdF9sYXRlc3RfbGF5b3V0X3Rlc3RfcmVz
dWx0cyhzZWxmKToKLSAgICAgICAgc2VsZi5idWlsZGVyLmZldGNoX2xheW91dF90ZXN0X3Jlc3Vs
dHMgPSBsYW1iZGEgcmVzdWx0c191cmw6IExheW91dFRlc3RSZXN1bHRzKFtzZWxmLl9tb2NrX3Rl
c3RfcmVzdWx0KHRlc3RuYW1lKSBmb3IgdGVzdG5hbWUgaW4gWyJ0ZXN0MSIsICJ0ZXN0MiJdXSkK
KyAgICAgICAgc2VsZi5idWlsZGVyLmZldGNoX2xheW91dF90ZXN0X3Jlc3VsdHMgPSBsYW1iZGEg
cmVzdWx0c191cmw6IExheW91dFRlc3RSZXN1bHRzKCB7InRlc3RzIiA6IFtzZWxmLl9tb2NrX3Rl
c3RfcmVzdWx0KHRlc3RuYW1lKSBmb3IgdGVzdG5hbWUgaW4gWyJ0ZXN0MSIsICJ0ZXN0MiJdXSwg
ImludGVycnVwdGVkIiA6IEZhbHNlfSkKICAgICAgICAgc2VsZi5idWlsZGVyLmFjY3VtdWxhdGVk
X3Jlc3VsdHNfdXJsID0gbGFtYmRhOiAiaHR0cDovL2R1bW15X3VybC5vcmciCiAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShzZWxmLmJ1aWxkZXIubGF0ZXN0X2xheW91dF90ZXN0X3Jlc3VsdHMoKSkK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRl
c3RyZXN1bHRzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRl
c3RyZXN1bHRzLnB5CmluZGV4IGI4Y2IxNTcuLmIyMjZiYWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHMucHkKQEAgLTUw
LDMzICs1MCwyMyBAQCBjbGFzcyBMYXlvdXRUZXN0UmVzdWx0cyhvYmplY3QpOgogICAgIGRlZiBy
ZXN1bHRzX2Zyb21fc3RyaW5nKGNscywgc3RyaW5nKToKICAgICAgICAgaWYgbm90IHN0cmluZzoK
ICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIHRlc3RfcmVzdWx0cyA9IFJlc3VsdHNK
U09OUGFyc2VyLnBhcnNlX3Jlc3VsdHNfanNvbihzdHJpbmcpCi0gICAgICAgIGlmIG5vdCB0ZXN0
X3Jlc3VsdHM6CisgICAgICAgIHJlc3VsdF9kaWN0ID0gUmVzdWx0c0pTT05QYXJzZXIucGFyc2Vf
cmVzdWx0c19qc29uKHN0cmluZykKKyAgICAgICAgaWYgbm90IHJlc3VsdF9kaWN0OgogICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgcmV0dXJuIGNscyh0ZXN0X3Jlc3VsdHMpCisgICAg
ICAgIHJldHVybiBjbHMocmVzdWx0X2RpY3QpCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGVz
dF9yZXN1bHRzKToKLSAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzID0gdGVzdF9yZXN1bHRzCi0g
ICAgICAgIHNlbGYuX2ZhaWx1cmVfbGltaXRfY291bnQgPSBOb25lCisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHJlc3VsdF9kaWN0KToKKyAgICAgICAgc2VsZi5fcmVzdWx0X2RpY3QgPSByZXN1bHRf
ZGljdAogICAgICAgICBzZWxmLl91bml0X3Rlc3RfZmFpbHVyZXMgPSBbXQogCi0gICAgIyBGSVhN
RTogcnVuLXdlYmtpdC10ZXN0cyBzaG91bGQgc3RvcmUgdGhlIC0tZXhpdC1hZnRlci1OLWZhaWx1
cmVzIHZhbHVlCi0gICAgIyAob3Igc29tZSBpbmRpY2F0aW9uIG9mIGVhcmx5IGV4aXQpIHNvbWV3
aGVyZSBpbiB0aGUgcmVzdWx0cy5qc29uCi0gICAgIyBmaWxlLiAgVW50aWwgaXQgZG9lcywgY2Fs
bGVycyBzaG91bGQgc2V0IHRoZSBsaW1pdCB0bwotICAgICMgLS1leGl0LWFmdGVyLU4tZmFpbHVy
ZXMgdmFsdWUgdXNlZCBpbiB0aGF0IHJ1bi4gIENvbnN1bWVycyBvZiBMYXlvdXRUZXN0UmVzdWx0
cwotICAgICMgbWF5IHVzZSB0aGF0IHZhbHVlIHRvIGtub3cgaWYgYWJzZW5jZSBmcm9tIHRoZSBm
YWlsdXJlIGxpc3QgbWVhbnMgUEFTUy4KLSAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01ODQ4MQotICAgIGRlZiBzZXRfZmFpbHVyZV9saW1pdF9jb3VudChzZWxm
LCBsaW1pdCk6Ci0gICAgICAgIHNlbGYuX2ZhaWx1cmVfbGltaXRfY291bnQgPSBsaW1pdAotCi0g
ICAgZGVmIGZhaWx1cmVfbGltaXRfY291bnQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9m
YWlsdXJlX2xpbWl0X2NvdW50CisgICAgZGVmIGludGVycnVwdGVkKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gc2VsZi5fcmVzdWx0X2RpY3RbImludGVycnVwdGVkIl0KIAogICAgIGRlZiB0ZXN0X3Jl
c3VsdHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl90ZXN0X3Jlc3VsdHMKKyAgICAgICAg
cmV0dXJuIHNlbGYuX3Jlc3VsdF9kaWN0Wyd0ZXN0cyddCiAKICAgICBkZWYgcmVzdWx0c19tYXRj
aGluZ19mYWlsdXJlX3R5cGVzKHNlbGYsIGZhaWx1cmVfdHlwZXMpOgotICAgICAgICByZXR1cm4g
W3Jlc3VsdCBmb3IgcmVzdWx0IGluIHNlbGYuX3Rlc3RfcmVzdWx0cyBpZiByZXN1bHQuaGFzX2Zh
aWx1cmVfbWF0Y2hpbmdfdHlwZXMoKmZhaWx1cmVfdHlwZXMpXQorICAgICAgICByZXR1cm4gW3Jl
c3VsdCBmb3IgcmVzdWx0IGluIHNlbGYuX3Jlc3VsdF9kaWN0Wyd0ZXN0cyddIGlmIHJlc3VsdC5o
YXNfZmFpbHVyZV9tYXRjaGluZ190eXBlcygqZmFpbHVyZV90eXBlcyldCiAKICAgICBkZWYgdGVz
dHNfbWF0Y2hpbmdfZmFpbHVyZV90eXBlcyhzZWxmLCBmYWlsdXJlX3R5cGVzKToKICAgICAgICAg
cmV0dXJuIFtyZXN1bHQudGVzdF9uYW1lIGZvciByZXN1bHQgaW4gc2VsZi5yZXN1bHRzX21hdGNo
aW5nX2ZhaWx1cmVfdHlwZXMoZmFpbHVyZV90eXBlcyldCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHNfdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHNfdW5pdHRl
c3QucHkKaW5kZXggZWE0ZTkyNy4uODUyMDY5MyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0c191bml0dGVz
dC5weQpAQCAtMzYsMTEgKzM2LDYgQEAgZnJvbSB3ZWJraXRweS50aGlyZHBhcnR5LkJlYXV0aWZ1
bFNvdXAgaW1wb3J0IEJlYXV0aWZ1bFNvdXAKIAogCiBjbGFzcyBMYXlvdXRUZXN0UmVzdWx0c1Rl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgIGRlZiB0ZXN0X3NldF9mYWlsdXJlX2xpbWl0X2Nv
dW50KHNlbGYpOgotICAgICAgICByZXN1bHRzID0gTGF5b3V0VGVzdFJlc3VsdHMoW10pCi0gICAg
ICAgIHNlbGYuYXNzZXJ0SXNOb25lKHJlc3VsdHMuZmFpbHVyZV9saW1pdF9jb3VudCgpKQotICAg
ICAgICByZXN1bHRzLnNldF9mYWlsdXJlX2xpbWl0X2NvdW50KDEwKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHJlc3VsdHMuZmFpbHVyZV9saW1pdF9jb3VudCgpLCAxMCkKIAogICAgIGRlZiB0
ZXN0X3Jlc3VsdHNfZnJvbV9zdHJpbmcoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25l
KExheW91dFRlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoTm9uZSkpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXIucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXIucHkK
aW5kZXggMWEyYTcwZi4uOTRiNjgxNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlci5weQpAQCAtMTUyLDQgKzE1Miw4IEBA
IGNsYXNzIFJlc3VsdHNKU09OUGFyc2VyKG9iamVjdCk6CiAgICAgICAgICMgRklYTUU6IFdoYXQn
cyB0aGUgc2hvcnQgc2V4eSBweXRob24gd2F5IHRvIGZpbHRlciBOb25lPwogICAgICAgICAjIEkg
d291bGQgdXNlIFtmb28uYmFyKCkgZm9yIGZvbyBpbiBmb29zIGlmIGZvby5iYXIoKV0gYnV0IGJh
cigpIGlzIGV4cGVuc2l2ZS4KICAgICAgICAgdW5leHBlY3RlZF9mYWlsdXJlcyA9IFtyZXN1bHQu
dGVzdF9yZXN1bHQoKSBmb3IgcmVzdWx0IGluIGpzb25fcmVzdWx0cyBpZiBub3QgcmVzdWx0LmRp
ZF9wYXNzX29yX3J1bl9hc19leHBlY3RlZCgpXQotICAgICAgICByZXR1cm4gZmlsdGVyKGxhbWJk
YSBhOiBhLCB1bmV4cGVjdGVkX2ZhaWx1cmVzKQorCisgICAgICAgICNCZWNhdXNlIHdlIHdhbnQg
dG8ga2VlcCBhbGwgb2YgdGhlIG1ldGFkYXRhIHN0b3JlZCBpbiB0aGUganNvbiBkaWN0LCBidXQg
d2Ugd2FudCBhbHJlYWR5LXByb2Nlc3NlZCB0ZXN0IHJlc3VsdHMsCisgICAgICAgICN3ZSdsbCBy
ZXBsYWNlIHRoZSAndGVzdHMnIGtleSBvZiB0aGUgZGljdGlvbmFyeSB3aXRoIHRoZSBwcm9jZXNz
ZWQgdGVzdCBvYmplY3RzOgorICAgICAgICBqc29uX2RpY3RbJ3Rlc3RzJ10gPSB1bmV4cGVjdGVk
X2ZhaWx1cmVzCisgICAgICAgIHJldHVybiBqc29uX2RpY3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlcl91bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlcl91bml0
dGVzdC5weQppbmRleCA1ZTdkM2E2Li4xNjNiMzczIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2VyX3VuaXR0
ZXN0LnB5CkBAIC04OCw1ICs4OCw1IEBAIGNsYXNzIFJlc3VsdHNKU09OUGFyc2VyVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCgic3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LWRvbS1zdGREZXZpYXRpb24t
YXR0ci5odG1sIiwgW3Rlc3RfZmFpbHVyZXMuRmFpbHVyZUltYWdlSGFzaE1pc21hdGNoKCldLCAw
KSwKICAgICAgICAgICAgIHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KCJmYXN0L2RvbS9wcm90b3R5
cGUtaW5oZXJpdGFuY2UuaHRtbCIsIFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUZXh0TWlzbWF0Y2go
KSwgdGVzdF9mYWlsdXJlcy5GYWlsdXJlSW1hZ2VIYXNoTWlzbWF0Y2goKSwgdGVzdF9mYWlsdXJl
cy5GYWlsdXJlQXVkaW9NaXNtYXRjaCgpXSwgMCksCiAgICAgICAgIF0KLSAgICAgICAgcmVzdWx0
cyA9IFJlc3VsdHNKU09OUGFyc2VyLnBhcnNlX3Jlc3VsdHNfanNvbihzZWxmLl9leGFtcGxlX2Z1
bGxfcmVzdWx0c19qc29uKQorICAgICAgICByZXN1bHRzID0gUmVzdWx0c0pTT05QYXJzZXIucGFy
c2VfcmVzdWx0c19qc29uKHNlbGYuX2V4YW1wbGVfZnVsbF9yZXN1bHRzX2pzb24pWyd0ZXN0cydd
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfcmVzdWx0cywgcmVzdWx0cykKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNr
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1
ZXRhc2tfdW5pdHRlc3QucHkKaW5kZXggMWVhYmRlMS4uZjE1MmRmZSAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5p
dHRlc3QucHkKQEAgLTczLDcgKzczLDcgQEAgY2xhc3MgTW9ja0NvbW1pdFF1ZXVlKENvbW1pdFF1
ZXVlVGFza0RlbGVnYXRlKToKICAgICAgICAgcmV0dXJuIEV4cGVjdGVkRmFpbHVyZXMoKQogCiAg
ICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKLSAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAg
cmV0dXJuIExheW91dFRlc3RSZXN1bHRzKHsidGVzdHMiIDogW10sICJpbnRlcnJ1cHRlZCIgOiBU
cnVlfSkKIAogICAgIGRlZiByZXBvcnRfZmxha3lfdGVzdHMoc2VsZiwgcGF0Y2gsIGZsYWt5X3Jl
c3VsdHMsIHJlc3VsdHNfYXJjaGl2ZSk6CiAgICAgICAgIGZsYWt5X3Rlc3RzID0gW3Jlc3VsdC5m
aWxlbmFtZSBmb3IgcmVzdWx0IGluIGZsYWt5X3Jlc3VsdHNdCkBAIC0xMTAsOSArMTEwLDcgQEAg
Y2xhc3MgRmFpbGluZ1Rlc3RDb21taXRRdWV1ZShNb2NrQ29tbWl0UXVldWUpOgogICAgICAgICAj
IERvZXNuJ3QgbWFrZSBzZW5zZSB0byBhc2sgZm9yIHRoZSB0ZXN0X3Jlc3VsdHMgdW50aWwgdGhl
IHRlc3RzIGhhdmUgcnVuIGF0IGxlYXN0IG9uY2UuCiAgICAgICAgIGFzc2VydChzZWxmLl90ZXN0
X3J1bl9jb3VudGVyID49IDApCiAgICAgICAgIGZhaWx1cmVzX2Zvcl9ydW4gPSBzZWxmLl90ZXN0
X2ZhaWx1cmVfcGxhbltzZWxmLl90ZXN0X3J1bl9jb3VudGVyXQotICAgICAgICByZXN1bHRzID0g
TGF5b3V0VGVzdFJlc3VsdHMobWFwKHNlbGYuX21vY2tfdGVzdF9yZXN1bHQsIGZhaWx1cmVzX2Zv
cl9ydW4pKQotICAgICAgICAjIFRoaXMgbWFrZXMgdGhlIHJlc3VsdHMgdHJ1c3RhYmxlIGJ5IEV4
cGVjdGVkRmFpbHVyZXMuCi0gICAgICAgIHJlc3VsdHMuc2V0X2ZhaWx1cmVfbGltaXRfY291bnQo
MTApCisgICAgICAgIHJlc3VsdHMgPSBMYXlvdXRUZXN0UmVzdWx0cyh7InRlc3RzIiA6IG1hcChz
ZWxmLl9tb2NrX3Rlc3RfcmVzdWx0LCBmYWlsdXJlc19mb3JfcnVuKSwgImludGVycnVwdGVkIiA6
IGxlbihzZWxmLl90ZXN0X2ZhaWx1cmVfcGxhbltzZWxmLl90ZXN0X3J1bl9jb3VudGVyXSkgPj0g
MTB9KQogICAgICAgICByZXR1cm4gcmVzdWx0cwogCiAKQEAgLTI4Miw3ICsyODAsNyBAQCBjb21t
YW5kX2ZhaWxlZDogZmFpbHVyZV9tZXNzYWdlPSdVbmFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRj
aCcgc2NyaXB0X2Vycm9yPSdNTwogICAgICAgICBdKQogICAgICAgICAjIENvbW1pdFF1ZXVlVGFz
ayB3aWxsIG9ubHkgcmVwb3J0IGZsYWt5IHRlc3RzIGlmIHdlIHN1Y2Nlc3NmdWxseSBwYXJzZWQK
ICAgICAgICAgIyByZXN1bHRzLmpzb24gYW5kIHJldHVybmVkIGEgTGF5b3V0VGVzdFJlc3VsdHMg
b2JqZWN0LCBzbyB3ZSBmYWtlIG9uZS4KLSAgICAgICAgY29tbWl0X3F1ZXVlLnRlc3RfcmVzdWx0
cyA9IGxhbWJkYTogTGF5b3V0VGVzdFJlc3VsdHMoW10pCisgICAgICAgIGNvbW1pdF9xdWV1ZS50
ZXN0X3Jlc3VsdHMgPSBsYW1iZGE6IExheW91dFRlc3RSZXN1bHRzKHsidGVzdHMiOltdLCAiaW50
ZXJydXB0ZWQiOiBUcnVlfSkKICAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiInJ1bl93ZWJraXRf
cGF0Y2g6IFsnY2xlYW4nXQogY29tbWFuZF9wYXNzZWQ6IHN1Y2Nlc3NfbWVzc2FnZT0nQ2xlYW5l
ZCB3b3JraW5nIGRpcmVjdG9yeScgcGF0Y2g9JzEwMDAwJwogcnVuX3dlYmtpdF9wYXRjaDogWyd1
cGRhdGUnXQpAQCAtMzEzLDcgKzMxMSw3IEBAIGNvbW1hbmRfcGFzc2VkOiBzdWNjZXNzX21lc3Nh
Z2U9J0xhbmRlZCBwYXRjaCcgcGF0Y2g9JzEwMDAwJwogICAgICAgICAgICAgTm9uZSwKICAgICAg
ICAgICAgIFNjcmlwdEVycm9yKCJNT0NLIHRlc3RzIGZhaWx1cmUiKSwKICAgICAgICAgXSkKLSAg
ICAgICAgY29tbWl0X3F1ZXVlLnRlc3RfcmVzdWx0cyA9IGxhbWJkYTogTGF5b3V0VGVzdFJlc3Vs
dHMoW10pCisgICAgICAgIGNvbW1pdF9xdWV1ZS50ZXN0X3Jlc3VsdHMgPSBsYW1iZGE6IExheW91
dFRlc3RSZXN1bHRzKHsidGVzdHMiOltdLCAiaW50ZXJydXB0ZWQiOiBUcnVlfSkKICAgICAgICAg
IyBJdCdzIHBvc3NpYmxlIGRlbGVnYXRlIHRvIGZhaWwgdG8gYXJjaGl2ZSBsYXlvdXQgdGVzdHMs
IGRvbid0IHRyeSB0byByZXBvcnQKICAgICAgICAgIyBmbGFreSB0ZXN0cyB3aGVuIHRoYXQgaGFw
cGVucy4KICAgICAgICAgY29tbWl0X3F1ZXVlLmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMgPSBs
YW1iZGEgcGF0Y2g6IE5vbmUKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvZXhwZWN0ZWRmYWlsdXJlcy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvZXhwZWN0ZWRmYWlsdXJlcy5weQppbmRleCBjMGNmZTIxLi45Yjk3ZDJmIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXMucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzLnB5CkBA
IC0zOCw3ICszOCw5IEBAIGNsYXNzIEV4cGVjdGVkRmFpbHVyZXMob2JqZWN0KToKIAogICAgIEBj
bGFzc21ldGhvZAogICAgIGRlZiBfc2hvdWxkX3RydXN0KGNscywgcmVzdWx0cyk6Ci0gICAgICAg
IHJldHVybiBib29sKGNscy5faGFzX2ZhaWx1cmVzKHJlc3VsdHMpIGFuZCByZXN1bHRzLmZhaWx1
cmVfbGltaXRfY291bnQoKSBhbmQgbGVuKHJlc3VsdHMuZmFpbGluZ190ZXN0cygpKSA8IHJlc3Vs
dHMuZmFpbHVyZV9saW1pdF9jb3VudCgpKQorICAgICAgICBpZiByZXN1bHRzOgorICAgICAgICAg
ICAgcmV0dXJuIG5vdCByZXN1bHRzLmludGVycnVwdGVkKCkKKyAgICAgICAgcmV0dXJuIEZhbHNl
CiAKICAgICBkZWYgZmFpbHVyZXNfd2VyZV9leHBlY3RlZChzZWxmLCByZXN1bHRzKToKICAgICAg
ICAgaWYgbm90IHNlbGYuX2lzX3RydXN0d29ydGh5OgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzX3VuaXR0ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzX3VuaXR0ZXN0LnB5Cmlu
ZGV4IGI2Mzk4NTYuLjY3Y2I4ODMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHkKQEAgLTMyLDEy
ICszMiwxMiBAQCBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmV4cGVjdGVkZmFpbHVyZXMgaW1wb3J0
IEV4cGVjdGVkRmFpbHVyZXMKIAogCiBjbGFzcyBNb2NrUmVzdWx0cyhvYmplY3QpOgotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBmYWlsaW5nX3Rlc3RzPVtdLCBmYWlsdXJlX2xpbWl0PTEwKToKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgZmFpbGluZ190ZXN0cz1bXSwgaW50ZXJydXB0ZWQ9RmFsc2Up
OgogICAgICAgICBzZWxmLl9mYWlsaW5nX3Rlc3RzID0gZmFpbGluZ190ZXN0cwotICAgICAgICBz
ZWxmLl9mYWlsdXJlX2xpbWl0X2NvdW50ID0gZmFpbHVyZV9saW1pdAorICAgICAgICBzZWxmLl9p
bnRlcnJ1cHRlZCA9IGludGVycnVwdGVkCiAKLSAgICBkZWYgZmFpbHVyZV9saW1pdF9jb3VudChz
ZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2ZhaWx1cmVfbGltaXRfY291bnQKKyAgICBkZWYg
aW50ZXJydXB0ZWQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9pbnRlcnJ1cHRlZAogCiAg
ICAgZGVmIGZhaWxpbmdfdGVzdHMoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9mYWlsaW5n
X3Rlc3RzCkBAIC00OSwxMiArNDksMTIgQEAgY2xhc3MgRXhwZWN0ZWRGYWlsdXJlc1Rlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfY2FuX3RydXN0X3Jlc3VsdHMoc2VsZik6
CiAgICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTm9uZSwgRmFsc2UpCi0gICAgICAgIHNl
bGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bXSwgZmFpbHVy
ZV9saW1pdD1Ob25lKSwgRmFsc2UpCi0gICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9j
a1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bXSwgZmFpbHVyZV9saW1pdD0xMCksIEZhbHNlKQotICAg
ICAgICBzZWxmLl9hc3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9WzFd
LCBmYWlsdXJlX2xpbWl0PU5vbmUpLCBGYWxzZSkKLSAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90
cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rlc3RzPVsxXSwgZmFpbHVyZV9saW1pdD0yKSwgVHJ1
ZSkKLSAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rl
c3RzPVsxXSwgZmFpbHVyZV9saW1pdD0xKSwgRmFsc2UpCi0gICAgICAgIHNlbGYuX2Fzc2VydF9j
YW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bMSwgMl0sIGZhaWx1cmVfbGltaXQ9
MSksIEZhbHNlKQorICAgICAgICBzZWxmLl9hc3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1bHRzKGZh
aWxpbmdfdGVzdHM9W10sIGludGVycnVwdGVkPUZhbHNlKSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5f
YXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rlc3RzPVtdLCBpbnRlcnJ1cHRl
ZD1UcnVlKSwgRmFsc2UpCisgICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jlc3Vs
dHMoZmFpbGluZ190ZXN0cz1bMV0sIGludGVycnVwdGVkPUZhbHNlKSwgVHJ1ZSkKKyAgICAgICAg
c2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rlc3RzPVsxXSwgaW50
ZXJydXB0ZWQ9VHJ1ZSksIEZhbHNlKQorICAgICAgICBzZWxmLl9hc3NlcnRfY2FuX3RydXN0KE1v
Y2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9WzEsIDJdLCBpbnRlcnJ1cHRlZD1GYWxzZSksIFRydWUp
CisgICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0
cz1bMSwgMl0sIGludGVycnVwdGVkPVRydWUpLCBGYWxzZSkKIAogICAgIGRlZiBfYXNzZXJ0X2V4
cGVjdGVkKHNlbGYsIGV4cGVjdGVkX2ZhaWx1cmVzLCBmYWlsdXJlcywgZXhwZWN0ZWQpOgogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX2ZhaWx1cmVzLmZhaWx1cmVzX3dlcmVfZXhw
ZWN0ZWQoTW9ja1Jlc3VsdHMoZmFpbHVyZXMpKSwgZXhwZWN0ZWQpCkBAIC03OSwxNyArNzksMTcg
QEAgY2xhc3MgRXhwZWN0ZWRGYWlsdXJlc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBmYWlsdXJlcy51cGRhdGUoTW9ja1Jlc3VsdHMoWydmb28uaHRtbCddKSkKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKE1vY2tS
ZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmFyLmh0bWwnXSkpLCBzZXQoWydiYXIuaHRtbCddKSkKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2Vy
dmVkKE1vY2tSZXN1bHRzKFsnYmF6Lmh0bWwnXSkpLCBzZXQoWydiYXouaHRtbCddKSkKLSAgICAg
ICAgdW5ib3VuZGVkX3Jlc3VsdHMgPSBNb2NrUmVzdWx0cyhbJ2Jhei5odG1sJywgJ3F1eC5odG1s
JywgJ3RhY28uaHRtbCddLCBmYWlsdXJlX2xpbWl0PTMpCisgICAgICAgIHVuYm91bmRlZF9yZXN1
bHRzID0gTW9ja1Jlc3VsdHMoWydiYXouaHRtbCcsICdxdXguaHRtbCcsICd0YWNvLmh0bWwnXSwg
aW50ZXJydXB0ZWQ9VHJ1ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWlsdXJlcy51bmV4
cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKHVuYm91bmRlZF9yZXN1bHRzKSwgc2V0KFsnYmF6Lmh0
bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10pKQotICAgICAgICB1bmJvdW5kZWRfcmVzdWx0
c193aXRoX2V4aXN0aW5nX2ZhaWx1cmUgPSBNb2NrUmVzdWx0cyhbJ2Zvby5odG1sJywgJ2Jhei5o
dG1sJywgJ3F1eC5odG1sJywgJ3RhY28uaHRtbCddLCBmYWlsdXJlX2xpbWl0PTQpCisgICAgICAg
IHVuYm91bmRlZF9yZXN1bHRzX3dpdGhfZXhpc3RpbmdfZmFpbHVyZSA9IE1vY2tSZXN1bHRzKFsn
Zm9vLmh0bWwnLCAnYmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10sIGludGVycnVw
dGVkPVRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9m
YWlsdXJlc19vYnNlcnZlZCh1bmJvdW5kZWRfcmVzdWx0c193aXRoX2V4aXN0aW5nX2ZhaWx1cmUp
LCBzZXQoWydiYXouaHRtbCcsICdxdXguaHRtbCcsICd0YWNvLmh0bWwnXSkpCiAKICAgICBkZWYg
dGVzdF91bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkX3doZW5fdHJlZV9pc19ob3NlZChzZWxm
KToKICAgICAgICAgZmFpbHVyZXMgPSBFeHBlY3RlZEZhaWx1cmVzKCkKLSAgICAgICAgZmFpbHVy
ZXMudXBkYXRlKE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmFuYW5hLmh0bWwnXSwgZmFpbHVy
ZV9saW1pdD0yKSkKKyAgICAgICAgZmFpbHVyZXMudXBkYXRlKE1vY2tSZXN1bHRzKFsnZm9vLmh0
bWwnLCAnYmFuYW5hLmh0bWwnXSwgaW50ZXJydXB0ZWQ9VHJ1ZSkpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZChNb2NrUmVzdWx0
cyhbJ2Zvby5odG1sJywgJ2Jhci5odG1sJ10pKSwgTm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKE1vY2tSZXN1bHRzKFsn
YmF6Lmh0bWwnXSkpLCBOb25lKQotICAgICAgICB1bmJvdW5kZWRfcmVzdWx0cyA9IE1vY2tSZXN1
bHRzKFsnYmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10sIGZhaWx1cmVfbGltaXQ9
MykKKyAgICAgICAgdW5ib3VuZGVkX3Jlc3VsdHMgPSBNb2NrUmVzdWx0cyhbJ2Jhei5odG1sJywg
J3F1eC5odG1sJywgJ3RhY28uaHRtbCddLCBpbnRlcnJ1cHRlZD1UcnVlKQogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGZhaWx1cmVzLnVuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQodW5ib3Vu
ZGVkX3Jlc3VsdHMpLCBOb25lKQotICAgICAgICB1bmJvdW5kZWRfcmVzdWx0c193aXRoX2V4aXN0
aW5nX2ZhaWx1cmUgPSBNb2NrUmVzdWx0cyhbJ2Zvby5odG1sJywgJ2Jhei5odG1sJywgJ3F1eC5o
dG1sJywgJ3RhY28uaHRtbCddLCBmYWlsdXJlX2xpbWl0PTQpCisgICAgICAgIHVuYm91bmRlZF9y
ZXN1bHRzX3dpdGhfZXhpc3RpbmdfZmFpbHVyZSA9IE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAn
YmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10sIGludGVycnVwdGVkPVRydWUpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNl
cnZlZCh1bmJvdW5kZWRfcmVzdWx0c193aXRoX2V4aXN0aW5nX2ZhaWx1cmUpLCBOb25lKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0
c3JlYWRlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJl
c3VsdHNyZWFkZXIucHkKaW5kZXggYTllNTNkZC4uYzMyOGU1YiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlci5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVy
LnB5CkBAIC03MCwxMCArNzAsNiBAQCBjbGFzcyBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcihvYmpl
Y3QpOgogICAgICAgICBsYXlvdXRfdGVzdF9yZXN1bHRzID0gc2VsZi5fY3JlYXRlX2xheW91dF90
ZXN0X3Jlc3VsdHMoKQogICAgICAgICB1bml0X3Rlc3RfcmVzdWx0cyA9IHNlbGYuX2NyZWF0ZV91
bml0X3Rlc3RfcmVzdWx0cygpCiAgICAgICAgIGlmIGxheW91dF90ZXN0X3Jlc3VsdHM6Ci0gICAg
ICAgICAgICAjIEZJWE1FOiBUaGlzIGlzIHVzZWQgdG8gZGV0ZWN0IGlmIHdlIGhhZCBOIGZhaWx1
cmVzIGR1ZSB0bwotICAgICAgICAgICAgIyBOIHRlc3RzIGZhaWxpbmcsIG9yIGlmIHdlIGhpdCB0
aGUgImV4aXQtYWZ0ZXItbi1mYWlsdXJlcyIgbGltaXQuCi0gICAgICAgICAgICAjIFRoZXNlIGRh
eXMgd2UgY291bGQganVzdCBjaGVjayBmb3IgdGhlICJpbnRlcnJ1cHRlZCIga2V5IGluIHJlc3Vs
dHMuanNvbiBpbnN0ZWFkIQotICAgICAgICAgICAgbGF5b3V0X3Rlc3RfcmVzdWx0cy5zZXRfZmFp
bHVyZV9saW1pdF9jb3VudChSdW5UZXN0cy5OT05fSU5URVJBQ1RJVkVfRkFJTFVSRV9MSU1JVF9D
T1VOVCkKICAgICAgICAgICAgIGlmIHVuaXRfdGVzdF9yZXN1bHRzOgogICAgICAgICAgICAgICAg
IGxheW91dF90ZXN0X3Jlc3VsdHMuYWRkX3VuaXRfdGVzdF9mYWlsdXJlcyh1bml0X3Rlc3RfcmVz
dWx0cykKICAgICAgICAgcmV0dXJuIGxheW91dF90ZXN0X3Jlc3VsdHMKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXJfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1
bHRzcmVhZGVyX3VuaXR0ZXN0LnB5CmluZGV4IGM3NzliYjguLmE2M2VjN2UgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXJf
dW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0
ZXN0cmVzdWx0c3JlYWRlcl91bml0dGVzdC5weQpAQCAtNjgsNyArNjgsNyBAQCBjbGFzcyBMYXlv
dXRUZXN0UmVzdWx0c1JlYWRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0
X21pc3NpbmdfdW5pdF90ZXN0X3Jlc3VsdHNfcGF0aChzZWxmKToKICAgICAgICAgaG9zdCA9IE1v
Y2tIb3N0KCkKICAgICAgICAgcmVhZGVyID0gTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIoaG9zdCwg
Ii9tb2NrLXJlc3VsdHMiLCAiL3Zhci9sb2dzIikKLSAgICAgICAgcmVhZGVyLl9jcmVhdGVfbGF5
b3V0X3Rlc3RfcmVzdWx0cyA9IGxhbWJkYTogTGF5b3V0VGVzdFJlc3VsdHMoW10pCisgICAgICAg
IHJlYWRlci5fY3JlYXRlX2xheW91dF90ZXN0X3Jlc3VsdHMgPSBsYW1iZGE6IExheW91dFRlc3RS
ZXN1bHRzKHsidGVzdHMiOltdLCAiaW50ZXJydXB0ZWQiOiBGYWxzZX0pCiAgICAgICAgIHJlYWRl
ci5fY3JlYXRlX3VuaXRfdGVzdF9yZXN1bHRzID0gbGFtYmRhOiBOb25lCiAgICAgICAgICMgbGF5
b3V0X3Rlc3RfcmVzdWx0cyBzaG91bGRuJ3QgcmFpc2UgZXZlbiBpZiB0aGUgdW5pdCB0ZXN0cyB4
bWwgZmlsZSBpcyBtaXNzaW5nLgogICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZWFkZXIu
cmVzdWx0cygpLCBOb25lKQpAQCAtODEsMTAgKzgxLDkgQEAgY2xhc3MgTGF5b3V0VGVzdFJlc3Vs
dHNSZWFkZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRJc05v
bmUocmVhZGVyLnJlc3VsdHMoKSkKICAgICAgICAgcmVhZGVyLl9yZWFkX2ZpbGVfY29udGVudHMg
PSBsYW1iZGEgcGF0aDogIiIKICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocmVhZGVyLnJlc3Vs
dHMoKSkKLSAgICAgICAgcmVhZGVyLl9jcmVhdGVfbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IGxhbWJk
YTogTGF5b3V0VGVzdFJlc3VsdHMoW10pCisgICAgICAgIHJlYWRlci5fY3JlYXRlX2xheW91dF90
ZXN0X3Jlc3VsdHMgPSBsYW1iZGE6IExheW91dFRlc3RSZXN1bHRzKHsidGVzdHMiOltdLCAiaW50
ZXJydXB0ZWQiOiBGYWxzZX0pCiAgICAgICAgIHJlc3VsdHMgPSByZWFkZXIucmVzdWx0cygpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlc3VsdHMpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocmVzdWx0cy5mYWlsdXJlX2xpbWl0X2NvdW50KCksIDMwKSAgIyBUaGlzIHZhbHVlIG1h
dGNoZXMgUnVuVGVzdHMuTk9OX0lOVEVSQUNUSVZFX0ZBSUxVUkVfTElNSVRfQ09VTlQKIAogICAg
IGRlZiB0ZXN0X2FyY2hpdmVfbGFzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKHNlbGYpOgogICAgICAg
ICBob3N0ID0gTW9ja0hvc3QoKQotLSAKMS45LjMgKEFwcGxlIEdpdC01MCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238881</attachid>
            <date>2014-09-29 14:23:55 -0700</date>
            <delta_ts>2014-09-30 11:09:33 -0700</delta_ts>
            <desc>Fixes style issues</desc>
            <filename>0001-Changes-LayoutTestResults-to-use-the-interrupted-fla.patch</filename>
            <type>text/plain</type>
            <size>22102</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSBjM2YyMTI1ZmNkZGY4NTMxN2E3YjczNjZlMTA0MmQwNGMzNzI5MGQyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBNb24sIDI5IFNlcCAyMDE0IDE0OjAzOjAxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
Q2hhbmdlcyBMYXlvdXRUZXN0UmVzdWx0cyB0byB1c2UgdGhlIGludGVycnVwdGVkIGZsYWcgaW5z
dGVhZAogb2YgY291bnRpbmcgZmFpbHVyZXMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzNzIyOQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIFNjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC9idWlsZGJvdF91bml0dGVzdC5weToKKEJ1aWxk
ZXJUZXN0Ll9pbnN0YWxsX2ZldGNoX2J1aWxkLl9tb2NrX2ZldGNoX2J1aWxkKToKKEJ1aWxkZXJU
ZXN0LnRlc3RfbGF0ZXN0X2xheW91dF90ZXN0X3Jlc3VsdHMpOgoqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weToKKExheW91dFRlc3RSZXN1bHRzLnJlc3Vs
dHNfZnJvbV9zdHJpbmcpOgooTGF5b3V0VGVzdFJlc3VsdHMuX19pbml0X18pOgooTGF5b3V0VGVz
dFJlc3VsdHMuaW50ZXJydXB0ZWQpOgooTGF5b3V0VGVzdFJlc3VsdHMudGVzdF9yZXN1bHRzKToK
KExheW91dFRlc3RSZXN1bHRzLnJlc3VsdHNfbWF0Y2hpbmdfZmFpbHVyZV90eXBlcyk6CihMYXlv
dXRUZXN0UmVzdWx0cyk6IERlbGV0ZWQuCihMYXlvdXRUZXN0UmVzdWx0cy5zZXRfZmFpbHVyZV9s
aW1pdF9jb3VudCk6IERlbGV0ZWQuCihMYXlvdXRUZXN0UmVzdWx0cy5mYWlsdXJlX2xpbWl0X2Nv
dW50KTogRGVsZXRlZC4KKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJl
c3VsdHNfdW5pdHRlc3QucHk6CihMYXlvdXRUZXN0UmVzdWx0c1Rlc3QudGVzdF9zZXRfZmFpbHVy
ZV9saW1pdF9jb3VudCk6IERlbGV0ZWQuCiogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jl
c3VsdHNqc29ucGFyc2VyLnB5OgooUmVzdWx0c0pTT05QYXJzZXIucGFyc2VfcmVzdWx0c19qc29u
KToKKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRl
c3QucHk6Cih0ZXN0X2Jhc2ljKToKKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1
ZXVldGFza191bml0dGVzdC5weToKKE1vY2tDb21taXRRdWV1ZS50ZXN0X3Jlc3VsdHMpOgooRmFp
bGluZ1Rlc3RDb21taXRRdWV1ZS50ZXN0X3Jlc3VsdHMpOgoodGVzdF9mbGFreV90ZXN0X2ZhaWx1
cmUpOgoodGVzdF9mYWlsZWRfYXJjaGl2ZSk6CiogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9l
eHBlY3RlZGZhaWx1cmVzLnB5OgooRXhwZWN0ZWRGYWlsdXJlcy5fc2hvdWxkX3RydXN0KToKKiBT
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHk6CihN
b2NrUmVzdWx0cy5fX2luaXRfXyk6CihNb2NrUmVzdWx0cy5pbnRlcnJ1cHRlZCk6CihFeHBlY3Rl
ZEZhaWx1cmVzVGVzdC50ZXN0X2Nhbl90cnVzdF9yZXN1bHRzKToKKEV4cGVjdGVkRmFpbHVyZXNU
ZXN0LnRlc3RfdW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCk6CihFeHBlY3RlZEZhaWx1cmVz
VGVzdC50ZXN0X3VuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWRfd2hlbl90cmVlX2lzX2hvc2Vk
KToKKE1vY2tSZXN1bHRzLmZhaWx1cmVfbGltaXRfY291bnQpOiBEZWxldGVkLgoqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXIucHk6CihMYXlvdXRUZXN0
UmVzdWx0c1JlYWRlci5yZXN1bHRzKToKKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91
dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0LnB5OgoodGVzdF9taXNzaW5nX3VuaXRfdGVzdF9y
ZXN1bHRzX3BhdGgpOgoodGVzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKToKLS0tCiBUb29scy9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQ2ICsrKysrKysrKysr
KysrKysrKysrKysKIC4uLi9jb21tb24vbmV0L2J1aWxkYm90L2J1aWxkYm90X3VuaXR0ZXN0LnB5
ICAgICAgIHwgIDUgKystCiAuLi4vd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0
cy5weSAgICAgICB8IDI4ICsrKysrLS0tLS0tLS0KIC4uLi9jb21tb24vbmV0L2xheW91dHRlc3Ry
ZXN1bHRzX3VuaXR0ZXN0LnB5ICAgICAgIHwgIDUgLS0tCiAuLi4vd2Via2l0cHkvY29tbW9uL25l
dC9yZXN1bHRzanNvbnBhcnNlci5weSAgICAgICB8ICA2ICsrLQogLi4uL2NvbW1vbi9uZXQvcmVz
dWx0c2pzb25wYXJzZXJfdW5pdHRlc3QucHkgICAgICAgfCAgMiArLQogLi4uL3dlYmtpdHB5L3Rv
b2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weSAgfCAxMCArKy0tLQogLi4uL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlcy5weSAgfCAgNCArLQogLi4uL3dl
YmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHkgfCAzMCArKysrKysr
LS0tLS0tLQogLi4uL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyLnB5
ICAgfCAgNCAtLQogLi4uL3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0
LnB5ICAgfCAgNSArLS0KIDExIGZpbGVzIGNoYW5nZWQsIDg4IGluc2VydGlvbnMoKyksIDU3IGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCA5MWM3MmQ4Li45M2EzOGFjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTQtMDktMjkgIEpha2UgTmll
bHNlbiAgPGphY29iX25pZWxzZW5AYXBwbGUuY29tPgorCisgICAgICAgIENoYW5nZXMgTGF5b3V0
VGVzdFJlc3VsdHMgdG8gdXNlIHRoZSBpbnRlcnJ1cHRlZCBmbGFnIGluc3RlYWQgb2YKKyAgICAg
ICAgY291bnRpbmcgZmFpbHVyZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzNzIyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1aWxkYm90L2J1aWxk
Ym90X3VuaXR0ZXN0LnB5OgorICAgICAgICAoQnVpbGRlclRlc3QuX2luc3RhbGxfZmV0Y2hfYnVp
bGQuX21vY2tfZmV0Y2hfYnVpbGQpOgorICAgICAgICAoQnVpbGRlclRlc3QudGVzdF9sYXRlc3Rf
bGF5b3V0X3Rlc3RfcmVzdWx0cyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L2xheW91dHRlc3RyZXN1bHRzLnB5OgorICAgICAgICAoTGF5b3V0VGVzdFJlc3VsdHMucmVz
dWx0c19mcm9tX3N0cmluZyk6CisgICAgICAgIChMYXlvdXRUZXN0UmVzdWx0cy5fX2luaXRfXyk6
CisgICAgICAgIChMYXlvdXRUZXN0UmVzdWx0cy5pbnRlcnJ1cHRlZCk6CisgICAgICAgIChMYXlv
dXRUZXN0UmVzdWx0cy50ZXN0X3Jlc3VsdHMpOgorICAgICAgICAoTGF5b3V0VGVzdFJlc3VsdHMu
cmVzdWx0c19tYXRjaGluZ19mYWlsdXJlX3R5cGVzKToKKyAgICAgICAgKExheW91dFRlc3RSZXN1
bHRzKTogRGVsZXRlZC4KKyAgICAgICAgKExheW91dFRlc3RSZXN1bHRzLnNldF9mYWlsdXJlX2xp
bWl0X2NvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKExheW91dFRlc3RSZXN1bHRzLmZhaWx1cmVf
bGltaXRfY291bnQpOiBEZWxldGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9sYXlvdXR0ZXN0cmVzdWx0c191bml0dGVzdC5weToKKyAgICAgICAgKExheW91dFRlc3RS
ZXN1bHRzVGVzdC50ZXN0X3NldF9mYWlsdXJlX2xpbWl0X2NvdW50KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXIucHk6Cisg
ICAgICAgIChSZXN1bHRzSlNPTlBhcnNlci5wYXJzZV9yZXN1bHRzX2pzb24pOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlcl91bml0dGVzdC5w
eToKKyAgICAgICAgKHRlc3RfYmFzaWMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5OgorICAgICAgICAoTW9ja0NvbW1pdFF1
ZXVlLnRlc3RfcmVzdWx0cyk6CisgICAgICAgIChGYWlsaW5nVGVzdENvbW1pdFF1ZXVlLnRlc3Rf
cmVzdWx0cyk6CisgICAgICAgICh0ZXN0X2ZsYWt5X3Rlc3RfZmFpbHVyZSk6CisgICAgICAgICh0
ZXN0X2ZhaWxlZF9hcmNoaXZlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L2V4cGVjdGVkZmFpbHVyZXMucHk6CisgICAgICAgIChFeHBlY3RlZEZhaWx1cmVzLl9zaG91bGRf
dHJ1c3QpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWls
dXJlc191bml0dGVzdC5weToKKyAgICAgICAgKE1vY2tSZXN1bHRzLl9faW5pdF9fKToKKyAgICAg
ICAgKE1vY2tSZXN1bHRzLmludGVycnVwdGVkKToKKyAgICAgICAgKEV4cGVjdGVkRmFpbHVyZXNU
ZXN0LnRlc3RfY2FuX3RydXN0X3Jlc3VsdHMpOgorICAgICAgICAoRXhwZWN0ZWRGYWlsdXJlc1Rl
c3QudGVzdF91bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKToKKyAgICAgICAgKEV4cGVjdGVk
RmFpbHVyZXNUZXN0LnRlc3RfdW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZF93aGVuX3RyZWVf
aXNfaG9zZWQpOgorICAgICAgICAoTW9ja1Jlc3VsdHMuZmFpbHVyZV9saW1pdF9jb3VudCk6IERl
bGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVz
dWx0c3JlYWRlci5weToKKyAgICAgICAgKExheW91dFRlc3RSZXN1bHRzUmVhZGVyLnJlc3VsdHMp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNy
ZWFkZXJfdW5pdHRlc3QucHk6CisgICAgICAgICh0ZXN0X21pc3NpbmdfdW5pdF90ZXN0X3Jlc3Vs
dHNfcGF0aCk6CisgICAgICAgICh0ZXN0X2xheW91dF90ZXN0X3Jlc3VsdHMpOgorCiAyMDE0LTA5
LTI2ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIE1hYyBF
V1MgYm90cyBkbyBub3Qga2VlcCBsb2dzIGFzIHByb21pc2VkCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRib3RfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRib3RfdW5p
dHRlc3QucHkKaW5kZXggYjAwMzkzZC4uYTc5YTEwYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L2J1aWxkYm90L2J1aWxkYm90X3VuaXR0ZXN0LnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC9idWlsZGJvdF91bml0
dGVzdC5weQpAQCAtNDgsNyArNDgsOCBAQCBjbGFzcyBCdWlsZGVyVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgICAgICAgICAgICAgaXNfZ3JlZW49YnVpbGRfbnVtYmVyIDwgNAogICAgICAg
ICAgICAgKQogICAgICAgICAgICAgcmVzdWx0cyA9IFtzZWxmLl9tb2NrX3Rlc3RfcmVzdWx0KHRl
c3RuYW1lKSBmb3IgdGVzdG5hbWUgaW4gZmFpbHVyZShidWlsZF9udW1iZXIpXQotICAgICAgICAg
ICAgbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IExheW91dFRlc3RSZXN1bHRzKHJlc3VsdHMpCisgICAg
ICAgICAgICByZXN1bHRzZGljdCA9IHsidGVzdHMiOiByZXN1bHRzLCAiaW50ZXJydXB0ZWQiOiBG
YWxzZX0KKyAgICAgICAgICAgIGxheW91dF90ZXN0X3Jlc3VsdHMgPSBMYXlvdXRUZXN0UmVzdWx0
cyhyZXN1bHRzZGljdCkKICAgICAgICAgICAgIGRlZiBtb2NrX2xheW91dF90ZXN0X3Jlc3VsdHMo
KToKICAgICAgICAgICAgICAgICByZXR1cm4gbGF5b3V0X3Rlc3RfcmVzdWx0cwogICAgICAgICAg
ICAgYnVpbGQubGF5b3V0X3Rlc3RfcmVzdWx0cyA9IG1vY2tfbGF5b3V0X3Rlc3RfcmVzdWx0cwpA
QCAtNjEsNyArNjIsNyBAQCBjbGFzcyBCdWlsZGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgICAgIHNlbGYuX2luc3RhbGxfZmV0Y2hfYnVpbGQobGFtYmRhIGJ1aWxkX251bWJlcjogWyJ0
ZXN0MSIsICJ0ZXN0MiJdKQogCiAgICAgZGVmIHRlc3RfbGF0ZXN0X2xheW91dF90ZXN0X3Jlc3Vs
dHMoc2VsZik6Ci0gICAgICAgIHNlbGYuYnVpbGRlci5mZXRjaF9sYXlvdXRfdGVzdF9yZXN1bHRz
ID0gbGFtYmRhIHJlc3VsdHNfdXJsOiBMYXlvdXRUZXN0UmVzdWx0cyhbc2VsZi5fbW9ja190ZXN0
X3Jlc3VsdCh0ZXN0bmFtZSkgZm9yIHRlc3RuYW1lIGluIFsidGVzdDEiLCAidGVzdDIiXV0pCisg
ICAgICAgIHNlbGYuYnVpbGRlci5mZXRjaF9sYXlvdXRfdGVzdF9yZXN1bHRzID0gbGFtYmRhIHJl
c3VsdHNfdXJsOiBMYXlvdXRUZXN0UmVzdWx0cyh7InRlc3RzIjogW3NlbGYuX21vY2tfdGVzdF9y
ZXN1bHQodGVzdG5hbWUpIGZvciB0ZXN0bmFtZSBpbiBbInRlc3QxIiwgInRlc3QyIl1dLCAiaW50
ZXJydXB0ZWQiOiBGYWxzZX0pCiAgICAgICAgIHNlbGYuYnVpbGRlci5hY2N1bXVsYXRlZF9yZXN1
bHRzX3VybCA9IGxhbWJkYTogImh0dHA6Ly9kdW1teV91cmwub3JnIgogICAgICAgICBzZWxmLmFz
c2VydFRydWUoc2VsZi5idWlsZGVyLmxhdGVzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKCkpCiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVz
dWx0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVz
dWx0cy5weQppbmRleCBiOGNiMTU3Li5iMjI2YmFiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHMucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzLnB5CkBAIC01MCwzMyAr
NTAsMjMgQEAgY2xhc3MgTGF5b3V0VGVzdFJlc3VsdHMob2JqZWN0KToKICAgICBkZWYgcmVzdWx0
c19mcm9tX3N0cmluZyhjbHMsIHN0cmluZyk6CiAgICAgICAgIGlmIG5vdCBzdHJpbmc6CiAgICAg
ICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICB0ZXN0X3Jlc3VsdHMgPSBSZXN1bHRzSlNPTlBh
cnNlci5wYXJzZV9yZXN1bHRzX2pzb24oc3RyaW5nKQotICAgICAgICBpZiBub3QgdGVzdF9yZXN1
bHRzOgorICAgICAgICByZXN1bHRfZGljdCA9IFJlc3VsdHNKU09OUGFyc2VyLnBhcnNlX3Jlc3Vs
dHNfanNvbihzdHJpbmcpCisgICAgICAgIGlmIG5vdCByZXN1bHRfZGljdDoKICAgICAgICAgICAg
IHJldHVybiBOb25lCi0gICAgICAgIHJldHVybiBjbHModGVzdF9yZXN1bHRzKQorICAgICAgICBy
ZXR1cm4gY2xzKHJlc3VsdF9kaWN0KQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfcmVz
dWx0cyk6Ci0gICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0cyA9IHRlc3RfcmVzdWx0cwotICAgICAg
ICBzZWxmLl9mYWlsdXJlX2xpbWl0X2NvdW50ID0gTm9uZQorICAgIGRlZiBfX2luaXRfXyhzZWxm
LCByZXN1bHRfZGljdCk6CisgICAgICAgIHNlbGYuX3Jlc3VsdF9kaWN0ID0gcmVzdWx0X2RpY3QK
ICAgICAgICAgc2VsZi5fdW5pdF90ZXN0X2ZhaWx1cmVzID0gW10KIAotICAgICMgRklYTUU6IHJ1
bi13ZWJraXQtdGVzdHMgc2hvdWxkIHN0b3JlIHRoZSAtLWV4aXQtYWZ0ZXItTi1mYWlsdXJlcyB2
YWx1ZQotICAgICMgKG9yIHNvbWUgaW5kaWNhdGlvbiBvZiBlYXJseSBleGl0KSBzb21ld2hlcmUg
aW4gdGhlIHJlc3VsdHMuanNvbgotICAgICMgZmlsZS4gIFVudGlsIGl0IGRvZXMsIGNhbGxlcnMg
c2hvdWxkIHNldCB0aGUgbGltaXQgdG8KLSAgICAjIC0tZXhpdC1hZnRlci1OLWZhaWx1cmVzIHZh
bHVlIHVzZWQgaW4gdGhhdCBydW4uICBDb25zdW1lcnMgb2YgTGF5b3V0VGVzdFJlc3VsdHMKLSAg
ICAjIG1heSB1c2UgdGhhdCB2YWx1ZSB0byBrbm93IGlmIGFic2VuY2UgZnJvbSB0aGUgZmFpbHVy
ZSBsaXN0IG1lYW5zIFBBU1MuCi0gICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTg0ODEKLSAgICBkZWYgc2V0X2ZhaWx1cmVfbGltaXRfY291bnQoc2VsZiwgbGlt
aXQpOgotICAgICAgICBzZWxmLl9mYWlsdXJlX2xpbWl0X2NvdW50ID0gbGltaXQKLQotICAgIGRl
ZiBmYWlsdXJlX2xpbWl0X2NvdW50KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fZmFpbHVy
ZV9saW1pdF9jb3VudAorICAgIGRlZiBpbnRlcnJ1cHRlZChzZWxmKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuX3Jlc3VsdF9kaWN0WyJpbnRlcnJ1cHRlZCJdCiAKICAgICBkZWYgdGVzdF9yZXN1bHRz
KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRzCisgICAgICAgIHJldHVy
biBzZWxmLl9yZXN1bHRfZGljdFsndGVzdHMnXQogCiAgICAgZGVmIHJlc3VsdHNfbWF0Y2hpbmdf
ZmFpbHVyZV90eXBlcyhzZWxmLCBmYWlsdXJlX3R5cGVzKToKLSAgICAgICAgcmV0dXJuIFtyZXN1
bHQgZm9yIHJlc3VsdCBpbiBzZWxmLl90ZXN0X3Jlc3VsdHMgaWYgcmVzdWx0Lmhhc19mYWlsdXJl
X21hdGNoaW5nX3R5cGVzKCpmYWlsdXJlX3R5cGVzKV0KKyAgICAgICAgcmV0dXJuIFtyZXN1bHQg
Zm9yIHJlc3VsdCBpbiBzZWxmLl9yZXN1bHRfZGljdFsndGVzdHMnXSBpZiByZXN1bHQuaGFzX2Zh
aWx1cmVfbWF0Y2hpbmdfdHlwZXMoKmZhaWx1cmVfdHlwZXMpXQogCiAgICAgZGVmIHRlc3RzX21h
dGNoaW5nX2ZhaWx1cmVfdHlwZXMoc2VsZiwgZmFpbHVyZV90eXBlcyk6CiAgICAgICAgIHJldHVy
biBbcmVzdWx0LnRlc3RfbmFtZSBmb3IgcmVzdWx0IGluIHNlbGYucmVzdWx0c19tYXRjaGluZ19m
YWlsdXJlX3R5cGVzKGZhaWx1cmVfdHlwZXMpXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5
CmluZGV4IGVhNGU5MjcuLjg1MjA2OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0c191bml0dGVzdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHNfdW5pdHRlc3QucHkK
QEAgLTM2LDExICszNiw2IEBAIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5CZWF1dGlmdWxTb3Vw
IGltcG9ydCBCZWF1dGlmdWxTb3VwCiAKIAogY2xhc3MgTGF5b3V0VGVzdFJlc3VsdHNUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKLSAgICBkZWYgdGVzdF9zZXRfZmFpbHVyZV9saW1pdF9jb3VudChz
ZWxmKToKLSAgICAgICAgcmVzdWx0cyA9IExheW91dFRlc3RSZXN1bHRzKFtdKQotICAgICAgICBz
ZWxmLmFzc2VydElzTm9uZShyZXN1bHRzLmZhaWx1cmVfbGltaXRfY291bnQoKSkKLSAgICAgICAg
cmVzdWx0cy5zZXRfZmFpbHVyZV9saW1pdF9jb3VudCgxMCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChyZXN1bHRzLmZhaWx1cmVfbGltaXRfY291bnQoKSwgMTApCiAKICAgICBkZWYgdGVzdF9y
ZXN1bHRzX2Zyb21fc3RyaW5nKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydElzTm9uZShMYXlv
dXRUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKE5vbmUpKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2VyLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2VyLnB5CmluZGV4
IDFhMmE3MGYuLmNkNDEyNDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL25ldC9yZXN1bHRzanNvbnBhcnNlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXIucHkKQEAgLTE1Miw0ICsxNTIsOCBAQCBjbGFz
cyBSZXN1bHRzSlNPTlBhcnNlcihvYmplY3QpOgogICAgICAgICAjIEZJWE1FOiBXaGF0J3MgdGhl
IHNob3J0IHNleHkgcHl0aG9uIHdheSB0byBmaWx0ZXIgTm9uZT8KICAgICAgICAgIyBJIHdvdWxk
IHVzZSBbZm9vLmJhcigpIGZvciBmb28gaW4gZm9vcyBpZiBmb28uYmFyKCldIGJ1dCBiYXIoKSBp
cyBleHBlbnNpdmUuCiAgICAgICAgIHVuZXhwZWN0ZWRfZmFpbHVyZXMgPSBbcmVzdWx0LnRlc3Rf
cmVzdWx0KCkgZm9yIHJlc3VsdCBpbiBqc29uX3Jlc3VsdHMgaWYgbm90IHJlc3VsdC5kaWRfcGFz
c19vcl9ydW5fYXNfZXhwZWN0ZWQoKV0KLSAgICAgICAgcmV0dXJuIGZpbHRlcihsYW1iZGEgYTog
YSwgdW5leHBlY3RlZF9mYWlsdXJlcykKKworICAgICAgICAjIEJlY2F1c2Ugd2Ugd2FudCB0byBr
ZWVwIGFsbCBvZiB0aGUgbWV0YWRhdGEgc3RvcmVkIGluIHRoZSBqc29uIGRpY3QsIGJ1dCB3ZSB3
YW50IGFscmVhZHktcHJvY2Vzc2VkIHRlc3QgcmVzdWx0cywKKyAgICAgICAgIyB3ZSdsbCByZXBs
YWNlIHRoZSAndGVzdHMnIGtleSBvZiB0aGUgZGljdGlvbmFyeSB3aXRoIHRoZSBwcm9jZXNzZWQg
dGVzdCBvYmplY3RzOgorICAgICAgICBqc29uX2RpY3RbJ3Rlc3RzJ10gPSB1bmV4cGVjdGVkX2Zh
aWx1cmVzCisgICAgICAgIHJldHVybiBqc29uX2RpY3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlcl91bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlcl91bml0dGVz
dC5weQppbmRleCA1ZTdkM2E2Li4xNjNiMzczIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRlc3QucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2VyX3VuaXR0ZXN0
LnB5CkBAIC04OCw1ICs4OCw1IEBAIGNsYXNzIFJlc3VsdHNKU09OUGFyc2VyVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCgic3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LWRvbS1zdGREZXZpYXRpb24tYXR0
ci5odG1sIiwgW3Rlc3RfZmFpbHVyZXMuRmFpbHVyZUltYWdlSGFzaE1pc21hdGNoKCldLCAwKSwK
ICAgICAgICAgICAgIHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KCJmYXN0L2RvbS9wcm90b3R5cGUt
aW5oZXJpdGFuY2UuaHRtbCIsIFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUZXh0TWlzbWF0Y2goKSwg
dGVzdF9mYWlsdXJlcy5GYWlsdXJlSW1hZ2VIYXNoTWlzbWF0Y2goKSwgdGVzdF9mYWlsdXJlcy5G
YWlsdXJlQXVkaW9NaXNtYXRjaCgpXSwgMCksCiAgICAgICAgIF0KLSAgICAgICAgcmVzdWx0cyA9
IFJlc3VsdHNKU09OUGFyc2VyLnBhcnNlX3Jlc3VsdHNfanNvbihzZWxmLl9leGFtcGxlX2Z1bGxf
cmVzdWx0c19qc29uKQorICAgICAgICByZXN1bHRzID0gUmVzdWx0c0pTT05QYXJzZXIucGFyc2Vf
cmVzdWx0c19qc29uKHNlbGYuX2V4YW1wbGVfZnVsbF9yZXN1bHRzX2pzb24pWyd0ZXN0cyddCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfcmVzdWx0cywgcmVzdWx0cykKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRh
c2tfdW5pdHRlc3QucHkKaW5kZXggMWVhYmRlMS4uNjRiN2RmZiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRl
c3QucHkKQEAgLTczLDcgKzczLDcgQEAgY2xhc3MgTW9ja0NvbW1pdFF1ZXVlKENvbW1pdFF1ZXVl
VGFza0RlbGVnYXRlKToKICAgICAgICAgcmV0dXJuIEV4cGVjdGVkRmFpbHVyZXMoKQogCiAgICAg
ZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKLSAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0
dXJuIExheW91dFRlc3RSZXN1bHRzKHsidGVzdHMiOiBbXSwgImludGVycnVwdGVkIjogVHJ1ZX0p
CiAKICAgICBkZWYgcmVwb3J0X2ZsYWt5X3Rlc3RzKHNlbGYsIHBhdGNoLCBmbGFreV9yZXN1bHRz
LCByZXN1bHRzX2FyY2hpdmUpOgogICAgICAgICBmbGFreV90ZXN0cyA9IFtyZXN1bHQuZmlsZW5h
bWUgZm9yIHJlc3VsdCBpbiBmbGFreV9yZXN1bHRzXQpAQCAtMTEwLDkgKzExMCw3IEBAIGNsYXNz
IEZhaWxpbmdUZXN0Q29tbWl0UXVldWUoTW9ja0NvbW1pdFF1ZXVlKToKICAgICAgICAgIyBEb2Vz
bid0IG1ha2Ugc2Vuc2UgdG8gYXNrIGZvciB0aGUgdGVzdF9yZXN1bHRzIHVudGlsIHRoZSB0ZXN0
cyBoYXZlIHJ1biBhdCBsZWFzdCBvbmNlLgogICAgICAgICBhc3NlcnQoc2VsZi5fdGVzdF9ydW5f
Y291bnRlciA+PSAwKQogICAgICAgICBmYWlsdXJlc19mb3JfcnVuID0gc2VsZi5fdGVzdF9mYWls
dXJlX3BsYW5bc2VsZi5fdGVzdF9ydW5fY291bnRlcl0KLSAgICAgICAgcmVzdWx0cyA9IExheW91
dFRlc3RSZXN1bHRzKG1hcChzZWxmLl9tb2NrX3Rlc3RfcmVzdWx0LCBmYWlsdXJlc19mb3JfcnVu
KSkKLSAgICAgICAgIyBUaGlzIG1ha2VzIHRoZSByZXN1bHRzIHRydXN0YWJsZSBieSBFeHBlY3Rl
ZEZhaWx1cmVzLgotICAgICAgICByZXN1bHRzLnNldF9mYWlsdXJlX2xpbWl0X2NvdW50KDEwKQor
ICAgICAgICByZXN1bHRzID0gTGF5b3V0VGVzdFJlc3VsdHMoeyJ0ZXN0cyI6IG1hcChzZWxmLl9t
b2NrX3Rlc3RfcmVzdWx0LCBmYWlsdXJlc19mb3JfcnVuKSwgImludGVycnVwdGVkIjogbGVuKHNl
bGYuX3Rlc3RfZmFpbHVyZV9wbGFuW3NlbGYuX3Rlc3RfcnVuX2NvdW50ZXJdKSA+PSAxMH0pCiAg
ICAgICAgIHJldHVybiByZXN1bHRzCiAKIApAQCAtMjgyLDcgKzI4MCw3IEBAIGNvbW1hbmRfZmFp
bGVkOiBmYWlsdXJlX21lc3NhZ2U9J1VuYWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoJyBzY3Jp
cHRfZXJyb3I9J01PCiAgICAgICAgIF0pCiAgICAgICAgICMgQ29tbWl0UXVldWVUYXNrIHdpbGwg
b25seSByZXBvcnQgZmxha3kgdGVzdHMgaWYgd2Ugc3VjY2Vzc2Z1bGx5IHBhcnNlZAogICAgICAg
ICAjIHJlc3VsdHMuanNvbiBhbmQgcmV0dXJuZWQgYSBMYXlvdXRUZXN0UmVzdWx0cyBvYmplY3Qs
IHNvIHdlIGZha2Ugb25lLgotICAgICAgICBjb21taXRfcXVldWUudGVzdF9yZXN1bHRzID0gbGFt
YmRhOiBMYXlvdXRUZXN0UmVzdWx0cyhbXSkKKyAgICAgICAgY29tbWl0X3F1ZXVlLnRlc3RfcmVz
dWx0cyA9IGxhbWJkYTogTGF5b3V0VGVzdFJlc3VsdHMoeyJ0ZXN0cyI6IFtdLCAiaW50ZXJydXB0
ZWQiOiBUcnVlfSkKICAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiInJ1bl93ZWJraXRfcGF0Y2g6
IFsnY2xlYW4nXQogY29tbWFuZF9wYXNzZWQ6IHN1Y2Nlc3NfbWVzc2FnZT0nQ2xlYW5lZCB3b3Jr
aW5nIGRpcmVjdG9yeScgcGF0Y2g9JzEwMDAwJwogcnVuX3dlYmtpdF9wYXRjaDogWyd1cGRhdGUn
XQpAQCAtMzEzLDcgKzMxMSw3IEBAIGNvbW1hbmRfcGFzc2VkOiBzdWNjZXNzX21lc3NhZ2U9J0xh
bmRlZCBwYXRjaCcgcGF0Y2g9JzEwMDAwJwogICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAg
IFNjcmlwdEVycm9yKCJNT0NLIHRlc3RzIGZhaWx1cmUiKSwKICAgICAgICAgXSkKLSAgICAgICAg
Y29tbWl0X3F1ZXVlLnRlc3RfcmVzdWx0cyA9IGxhbWJkYTogTGF5b3V0VGVzdFJlc3VsdHMoW10p
CisgICAgICAgIGNvbW1pdF9xdWV1ZS50ZXN0X3Jlc3VsdHMgPSBsYW1iZGE6IExheW91dFRlc3RS
ZXN1bHRzKHsidGVzdHMiOiBbXSwgImludGVycnVwdGVkIjogVHJ1ZX0pCiAgICAgICAgICMgSXQn
cyBwb3NzaWJsZSBkZWxlZ2F0ZSB0byBmYWlsIHRvIGFyY2hpdmUgbGF5b3V0IHRlc3RzLCBkb24n
dCB0cnkgdG8gcmVwb3J0CiAgICAgICAgICMgZmxha3kgdGVzdHMgd2hlbiB0aGF0IGhhcHBlbnMu
CiAgICAgICAgIGNvbW1pdF9xdWV1ZS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzID0gbGFtYmRh
IHBhdGNoOiBOb25lCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L2V4cGVjdGVkZmFpbHVyZXMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4
cGVjdGVkZmFpbHVyZXMucHkKaW5kZXggYzBjZmUyMS4uOWI5N2QyZiAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlcy5weQpAQCAtMzgs
NyArMzgsOSBAQCBjbGFzcyBFeHBlY3RlZEZhaWx1cmVzKG9iamVjdCk6CiAKICAgICBAY2xhc3Nt
ZXRob2QKICAgICBkZWYgX3Nob3VsZF90cnVzdChjbHMsIHJlc3VsdHMpOgotICAgICAgICByZXR1
cm4gYm9vbChjbHMuX2hhc19mYWlsdXJlcyhyZXN1bHRzKSBhbmQgcmVzdWx0cy5mYWlsdXJlX2xp
bWl0X2NvdW50KCkgYW5kIGxlbihyZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkgPCByZXN1bHRzLmZh
aWx1cmVfbGltaXRfY291bnQoKSkKKyAgICAgICAgaWYgcmVzdWx0czoKKyAgICAgICAgICAgIHJl
dHVybiBub3QgcmVzdWx0cy5pbnRlcnJ1cHRlZCgpCisgICAgICAgIHJldHVybiBGYWxzZQogCiAg
ICAgZGVmIGZhaWx1cmVzX3dlcmVfZXhwZWN0ZWQoc2VsZiwgcmVzdWx0cyk6CiAgICAgICAgIGlm
IG5vdCBzZWxmLl9pc190cnVzdHdvcnRoeToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlc191bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlc191bml0dGVzdC5weQppbmRleCBi
NjM5ODU2Li42N2NiODgzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzX3VuaXR0ZXN0LnB5CkBAIC0zMiwxMiArMzIs
MTIgQEAgZnJvbSB3ZWJraXRweS50b29sLmJvdC5leHBlY3RlZGZhaWx1cmVzIGltcG9ydCBFeHBl
Y3RlZEZhaWx1cmVzCiAKIAogY2xhc3MgTW9ja1Jlc3VsdHMob2JqZWN0KToKLSAgICBkZWYgX19p
bml0X18oc2VsZiwgZmFpbGluZ190ZXN0cz1bXSwgZmFpbHVyZV9saW1pdD0xMCk6CisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGZhaWxpbmdfdGVzdHM9W10sIGludGVycnVwdGVkPUZhbHNlKToKICAg
ICAgICAgc2VsZi5fZmFpbGluZ190ZXN0cyA9IGZhaWxpbmdfdGVzdHMKLSAgICAgICAgc2VsZi5f
ZmFpbHVyZV9saW1pdF9jb3VudCA9IGZhaWx1cmVfbGltaXQKKyAgICAgICAgc2VsZi5faW50ZXJy
dXB0ZWQgPSBpbnRlcnJ1cHRlZAogCi0gICAgZGVmIGZhaWx1cmVfbGltaXRfY291bnQoc2VsZik6
Ci0gICAgICAgIHJldHVybiBzZWxmLl9mYWlsdXJlX2xpbWl0X2NvdW50CisgICAgZGVmIGludGVy
cnVwdGVkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5faW50ZXJydXB0ZWQKIAogICAgIGRl
ZiBmYWlsaW5nX3Rlc3RzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fZmFpbGluZ190ZXN0
cwpAQCAtNDksMTIgKzQ5LDEyIEBAIGNsYXNzIEV4cGVjdGVkRmFpbHVyZXNUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X2Nhbl90cnVzdF9yZXN1bHRzKHNlbGYpOgogICAg
ICAgICBzZWxmLl9hc3NlcnRfY2FuX3RydXN0KE5vbmUsIEZhbHNlKQotICAgICAgICBzZWxmLl9h
c3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9W10sIGZhaWx1cmVfbGlt
aXQ9Tm9uZSksIEZhbHNlKQotICAgICAgICBzZWxmLl9hc3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1
bHRzKGZhaWxpbmdfdGVzdHM9W10sIGZhaWx1cmVfbGltaXQ9MTApLCBGYWxzZSkKLSAgICAgICAg
c2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rlc3RzPVsxXSwgZmFp
bHVyZV9saW1pdD1Ob25lKSwgRmFsc2UpCi0gICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3Qo
TW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bMV0sIGZhaWx1cmVfbGltaXQ9MiksIFRydWUpCi0g
ICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1b
MV0sIGZhaWx1cmVfbGltaXQ9MSksIEZhbHNlKQotICAgICAgICBzZWxmLl9hc3NlcnRfY2FuX3Ry
dXN0KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9WzEsIDJdLCBmYWlsdXJlX2xpbWl0PTEpLCBG
YWxzZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5n
X3Rlc3RzPVtdLCBpbnRlcnJ1cHRlZD1GYWxzZSksIFRydWUpCisgICAgICAgIHNlbGYuX2Fzc2Vy
dF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bXSwgaW50ZXJydXB0ZWQ9VHJ1
ZSksIEZhbHNlKQorICAgICAgICBzZWxmLl9hc3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1bHRzKGZh
aWxpbmdfdGVzdHM9WzFdLCBpbnRlcnJ1cHRlZD1GYWxzZSksIFRydWUpCisgICAgICAgIHNlbGYu
X2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bMV0sIGludGVycnVw
dGVkPVRydWUpLCBGYWxzZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVz
dWx0cyhmYWlsaW5nX3Rlc3RzPVsxLCAyXSwgaW50ZXJydXB0ZWQ9RmFsc2UpLCBUcnVlKQorICAg
ICAgICBzZWxmLl9hc3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9WzEs
IDJdLCBpbnRlcnJ1cHRlZD1UcnVlKSwgRmFsc2UpCiAKICAgICBkZWYgX2Fzc2VydF9leHBlY3Rl
ZChzZWxmLCBleHBlY3RlZF9mYWlsdXJlcywgZmFpbHVyZXMsIGV4cGVjdGVkKToKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF9mYWlsdXJlcy5mYWlsdXJlc193ZXJlX2V4cGVjdGVk
KE1vY2tSZXN1bHRzKGZhaWx1cmVzKSksIGV4cGVjdGVkKQpAQCAtNzksMTcgKzc5LDE3IEBAIGNs
YXNzIEV4cGVjdGVkRmFpbHVyZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgZmFp
bHVyZXMudXBkYXRlKE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnXSkpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZChNb2NrUmVzdWx0
cyhbJ2Zvby5odG1sJywgJ2Jhci5odG1sJ10pKSwgc2V0KFsnYmFyLmh0bWwnXSkpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZChN
b2NrUmVzdWx0cyhbJ2Jhei5odG1sJ10pKSwgc2V0KFsnYmF6Lmh0bWwnXSkpCi0gICAgICAgIHVu
Ym91bmRlZF9yZXN1bHRzID0gTW9ja1Jlc3VsdHMoWydiYXouaHRtbCcsICdxdXguaHRtbCcsICd0
YWNvLmh0bWwnXSwgZmFpbHVyZV9saW1pdD0zKQorICAgICAgICB1bmJvdW5kZWRfcmVzdWx0cyA9
IE1vY2tSZXN1bHRzKFsnYmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10sIGludGVy
cnVwdGVkPVRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBlY3Rl
ZF9mYWlsdXJlc19vYnNlcnZlZCh1bmJvdW5kZWRfcmVzdWx0cyksIHNldChbJ2Jhei5odG1sJywg
J3F1eC5odG1sJywgJ3RhY28uaHRtbCddKSkKLSAgICAgICAgdW5ib3VuZGVkX3Jlc3VsdHNfd2l0
aF9leGlzdGluZ19mYWlsdXJlID0gTW9ja1Jlc3VsdHMoWydmb28uaHRtbCcsICdiYXouaHRtbCcs
ICdxdXguaHRtbCcsICd0YWNvLmh0bWwnXSwgZmFpbHVyZV9saW1pdD00KQorICAgICAgICB1bmJv
dW5kZWRfcmVzdWx0c193aXRoX2V4aXN0aW5nX2ZhaWx1cmUgPSBNb2NrUmVzdWx0cyhbJ2Zvby5o
dG1sJywgJ2Jhei5odG1sJywgJ3F1eC5odG1sJywgJ3RhY28uaHRtbCddLCBpbnRlcnJ1cHRlZD1U
cnVlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZhaWx1cmVzLnVuZXhwZWN0ZWRfZmFpbHVy
ZXNfb2JzZXJ2ZWQodW5ib3VuZGVkX3Jlc3VsdHNfd2l0aF9leGlzdGluZ19mYWlsdXJlKSwgc2V0
KFsnYmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10pKQogCiAgICAgZGVmIHRlc3Rf
dW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZF93aGVuX3RyZWVfaXNfaG9zZWQoc2VsZik6CiAg
ICAgICAgIGZhaWx1cmVzID0gRXhwZWN0ZWRGYWlsdXJlcygpCi0gICAgICAgIGZhaWx1cmVzLnVw
ZGF0ZShNb2NrUmVzdWx0cyhbJ2Zvby5odG1sJywgJ2JhbmFuYS5odG1sJ10sIGZhaWx1cmVfbGlt
aXQ9MikpCisgICAgICAgIGZhaWx1cmVzLnVwZGF0ZShNb2NrUmVzdWx0cyhbJ2Zvby5odG1sJywg
J2JhbmFuYS5odG1sJ10sIGludGVycnVwdGVkPVRydWUpKQogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGZhaWx1cmVzLnVuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQoTW9ja1Jlc3VsdHMoWydm
b28uaHRtbCcsICdiYXIuaHRtbCddKSksIE5vbmUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZChNb2NrUmVzdWx0cyhbJ2Jhei5o
dG1sJ10pKSwgTm9uZSkKLSAgICAgICAgdW5ib3VuZGVkX3Jlc3VsdHMgPSBNb2NrUmVzdWx0cyhb
J2Jhei5odG1sJywgJ3F1eC5odG1sJywgJ3RhY28uaHRtbCddLCBmYWlsdXJlX2xpbWl0PTMpCisg
ICAgICAgIHVuYm91bmRlZF9yZXN1bHRzID0gTW9ja1Jlc3VsdHMoWydiYXouaHRtbCcsICdxdXgu
aHRtbCcsICd0YWNvLmh0bWwnXSwgaW50ZXJydXB0ZWQ9VHJ1ZSkKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKHVuYm91bmRlZF9y
ZXN1bHRzKSwgTm9uZSkKLSAgICAgICAgdW5ib3VuZGVkX3Jlc3VsdHNfd2l0aF9leGlzdGluZ19m
YWlsdXJlID0gTW9ja1Jlc3VsdHMoWydmb28uaHRtbCcsICdiYXouaHRtbCcsICdxdXguaHRtbCcs
ICd0YWNvLmh0bWwnXSwgZmFpbHVyZV9saW1pdD00KQorICAgICAgICB1bmJvdW5kZWRfcmVzdWx0
c193aXRoX2V4aXN0aW5nX2ZhaWx1cmUgPSBNb2NrUmVzdWx0cyhbJ2Zvby5odG1sJywgJ2Jhei5o
dG1sJywgJ3F1eC5odG1sJywgJ3RhY28uaHRtbCddLCBpbnRlcnJ1cHRlZD1UcnVlKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGZhaWx1cmVzLnVuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQo
dW5ib3VuZGVkX3Jlc3VsdHNfd2l0aF9leGlzdGluZ19mYWlsdXJlKSwgTm9uZSkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFk
ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRz
cmVhZGVyLnB5CmluZGV4IGE5ZTUzZGQuLmMzMjhlNWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXIucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlci5weQpA
QCAtNzAsMTAgKzcwLDYgQEAgY2xhc3MgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIob2JqZWN0KToK
ICAgICAgICAgbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IHNlbGYuX2NyZWF0ZV9sYXlvdXRfdGVzdF9y
ZXN1bHRzKCkKICAgICAgICAgdW5pdF90ZXN0X3Jlc3VsdHMgPSBzZWxmLl9jcmVhdGVfdW5pdF90
ZXN0X3Jlc3VsdHMoKQogICAgICAgICBpZiBsYXlvdXRfdGVzdF9yZXN1bHRzOgotICAgICAgICAg
ICAgIyBGSVhNRTogVGhpcyBpcyB1c2VkIHRvIGRldGVjdCBpZiB3ZSBoYWQgTiBmYWlsdXJlcyBk
dWUgdG8KLSAgICAgICAgICAgICMgTiB0ZXN0cyBmYWlsaW5nLCBvciBpZiB3ZSBoaXQgdGhlICJl
eGl0LWFmdGVyLW4tZmFpbHVyZXMiIGxpbWl0LgotICAgICAgICAgICAgIyBUaGVzZSBkYXlzIHdl
IGNvdWxkIGp1c3QgY2hlY2sgZm9yIHRoZSAiaW50ZXJydXB0ZWQiIGtleSBpbiByZXN1bHRzLmpz
b24gaW5zdGVhZCEKLSAgICAgICAgICAgIGxheW91dF90ZXN0X3Jlc3VsdHMuc2V0X2ZhaWx1cmVf
bGltaXRfY291bnQoUnVuVGVzdHMuTk9OX0lOVEVSQUNUSVZFX0ZBSUxVUkVfTElNSVRfQ09VTlQp
CiAgICAgICAgICAgICBpZiB1bml0X3Rlc3RfcmVzdWx0czoKICAgICAgICAgICAgICAgICBsYXlv
dXRfdGVzdF9yZXN1bHRzLmFkZF91bml0X3Rlc3RfZmFpbHVyZXModW5pdF90ZXN0X3Jlc3VsdHMp
CiAgICAgICAgIHJldHVybiBsYXlvdXRfdGVzdF9yZXN1bHRzCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3Jl
YWRlcl91bml0dGVzdC5weQppbmRleCBjNzc5YmI4Li4zNTU3MDA2IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0
ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJl
c3VsdHNyZWFkZXJfdW5pdHRlc3QucHkKQEAgLTY4LDcgKzY4LDcgQEAgY2xhc3MgTGF5b3V0VGVz
dFJlc3VsdHNSZWFkZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9taXNz
aW5nX3VuaXRfdGVzdF9yZXN1bHRzX3BhdGgoc2VsZik6CiAgICAgICAgIGhvc3QgPSBNb2NrSG9z
dCgpCiAgICAgICAgIHJlYWRlciA9IExheW91dFRlc3RSZXN1bHRzUmVhZGVyKGhvc3QsICIvbW9j
ay1yZXN1bHRzIiwgIi92YXIvbG9ncyIpCi0gICAgICAgIHJlYWRlci5fY3JlYXRlX2xheW91dF90
ZXN0X3Jlc3VsdHMgPSBsYW1iZGE6IExheW91dFRlc3RSZXN1bHRzKFtdKQorICAgICAgICByZWFk
ZXIuX2NyZWF0ZV9sYXlvdXRfdGVzdF9yZXN1bHRzID0gbGFtYmRhOiBMYXlvdXRUZXN0UmVzdWx0
cyh7InRlc3RzIjogW10sICJpbnRlcnJ1cHRlZCI6IEZhbHNlfSkKICAgICAgICAgcmVhZGVyLl9j
cmVhdGVfdW5pdF90ZXN0X3Jlc3VsdHMgPSBsYW1iZGE6IE5vbmUKICAgICAgICAgIyBsYXlvdXRf
dGVzdF9yZXN1bHRzIHNob3VsZG4ndCByYWlzZSBldmVuIGlmIHRoZSB1bml0IHRlc3RzIHhtbCBm
aWxlIGlzIG1pc3NpbmcuCiAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlYWRlci5yZXN1
bHRzKCksIE5vbmUpCkBAIC04MSwxMCArODEsOSBAQCBjbGFzcyBMYXlvdXRUZXN0UmVzdWx0c1Jl
YWRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydElzTm9uZShy
ZWFkZXIucmVzdWx0cygpKQogICAgICAgICByZWFkZXIuX3JlYWRfZmlsZV9jb250ZW50cyA9IGxh
bWJkYSBwYXRoOiAiIgogICAgICAgICBzZWxmLmFzc2VydElzTm9uZShyZWFkZXIucmVzdWx0cygp
KQotICAgICAgICByZWFkZXIuX2NyZWF0ZV9sYXlvdXRfdGVzdF9yZXN1bHRzID0gbGFtYmRhOiBM
YXlvdXRUZXN0UmVzdWx0cyhbXSkKKyAgICAgICAgcmVhZGVyLl9jcmVhdGVfbGF5b3V0X3Rlc3Rf
cmVzdWx0cyA9IGxhbWJkYTogTGF5b3V0VGVzdFJlc3VsdHMoeyJ0ZXN0cyI6IFtdLCAiaW50ZXJy
dXB0ZWQiOiBGYWxzZX0pCiAgICAgICAgIHJlc3VsdHMgPSByZWFkZXIucmVzdWx0cygpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlc3VsdHMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocmVzdWx0cy5mYWlsdXJlX2xpbWl0X2NvdW50KCksIDMwKSAgIyBUaGlzIHZhbHVlIG1hdGNo
ZXMgUnVuVGVzdHMuTk9OX0lOVEVSQUNUSVZFX0ZBSUxVUkVfTElNSVRfQ09VTlQKIAogICAgIGRl
ZiB0ZXN0X2FyY2hpdmVfbGFzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKHNlbGYpOgogICAgICAgICBo
b3N0ID0gTW9ja0hvc3QoKQotLSAKMS45LjMgKEFwcGxlIEdpdC01MCkKCg==
</data>
<flag name="review"
          id="263608"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238940</attachid>
            <date>2014-09-30 11:09:33 -0700</date>
            <delta_ts>2014-09-30 11:45:28 -0700</delta_ts>
            <desc>Addresses points concerning strong coupling with results.son</desc>
            <filename>0001-Changes-LayoutTestResults-to-use-the-interrupted-fla.patch</filename>
            <type>text/plain</type>
            <size>24045</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSA1NTE0ZGZmYjcyMjQxMWYyZDVmNDg4NzhkMDk5NTFiMDNkNjMyZDY2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBNb24sIDI5IFNlcCAyMDE0IDE0OjAzOjAxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
Q2hhbmdlcyBMYXlvdXRUZXN0UmVzdWx0cyB0byB1c2UgdGhlIGludGVycnVwdGVkIGZsYWcgaW5z
dGVhZAogb2YgY291bnRpbmcgZmFpbHVyZXMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzNzIyOQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIFNjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC9idWlsZGJvdF91bml0dGVzdC5weToKKEJ1aWxk
ZXJUZXN0Ll9pbnN0YWxsX2ZldGNoX2J1aWxkLl9tb2NrX2ZldGNoX2J1aWxkKToKKEJ1aWxkZXJU
ZXN0LnRlc3RfbGF0ZXN0X2xheW91dF90ZXN0X3Jlc3VsdHMpOgoqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weToKKExheW91dFRlc3RSZXN1bHRzLnJlc3Vs
dHNfZnJvbV9zdHJpbmcpOgooTGF5b3V0VGVzdFJlc3VsdHMuX19pbml0X18pOgooTGF5b3V0VGVz
dFJlc3VsdHMuaW50ZXJydXB0ZWQpOgooTGF5b3V0VGVzdFJlc3VsdHMudGVzdF9yZXN1bHRzKToK
KExheW91dFRlc3RSZXN1bHRzLnJlc3VsdHNfbWF0Y2hpbmdfZmFpbHVyZV90eXBlcyk6CihMYXlv
dXRUZXN0UmVzdWx0cyk6IERlbGV0ZWQuCihMYXlvdXRUZXN0UmVzdWx0cy5zZXRfZmFpbHVyZV9s
aW1pdF9jb3VudCk6IERlbGV0ZWQuCihMYXlvdXRUZXN0UmVzdWx0cy5mYWlsdXJlX2xpbWl0X2Nv
dW50KTogRGVsZXRlZC4KKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJl
c3VsdHNfdW5pdHRlc3QucHk6CihMYXlvdXRUZXN0UmVzdWx0c1Rlc3QudGVzdF9zZXRfZmFpbHVy
ZV9saW1pdF9jb3VudCk6IERlbGV0ZWQuCiogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jl
c3VsdHNqc29ucGFyc2VyLnB5OgooUmVzdWx0c0pTT05QYXJzZXIucGFyc2VfcmVzdWx0c19qc29u
KToKKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRl
c3QucHk6Cih0ZXN0X2Jhc2ljKToKKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1
ZXVldGFza191bml0dGVzdC5weToKKE1vY2tDb21taXRRdWV1ZS50ZXN0X3Jlc3VsdHMpOgooRmFp
bGluZ1Rlc3RDb21taXRRdWV1ZS50ZXN0X3Jlc3VsdHMpOgoodGVzdF9mbGFreV90ZXN0X2ZhaWx1
cmUpOgoodGVzdF9mYWlsZWRfYXJjaGl2ZSk6CiogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9l
eHBlY3RlZGZhaWx1cmVzLnB5OgooRXhwZWN0ZWRGYWlsdXJlcy5fc2hvdWxkX3RydXN0KToKKiBT
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHk6CihN
b2NrUmVzdWx0cy5fX2luaXRfXyk6CihNb2NrUmVzdWx0cy5pbnRlcnJ1cHRlZCk6CihFeHBlY3Rl
ZEZhaWx1cmVzVGVzdC50ZXN0X2Nhbl90cnVzdF9yZXN1bHRzKToKKEV4cGVjdGVkRmFpbHVyZXNU
ZXN0LnRlc3RfdW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCk6CihFeHBlY3RlZEZhaWx1cmVz
VGVzdC50ZXN0X3VuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWRfd2hlbl90cmVlX2lzX2hvc2Vk
KToKKE1vY2tSZXN1bHRzLmZhaWx1cmVfbGltaXRfY291bnQpOiBEZWxldGVkLgoqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXIucHk6CihMYXlvdXRUZXN0
UmVzdWx0c1JlYWRlci5yZXN1bHRzKToKKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91
dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0LnB5OgoodGVzdF9taXNzaW5nX3VuaXRfdGVzdF9y
ZXN1bHRzX3BhdGgpOgoodGVzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKToKLS0tCiBUb29scy9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQ2ICsrKysrKysrKysr
KysrKysrKysrKysKIC4uLi9jb21tb24vbmV0L2J1aWxkYm90L2J1aWxkYm90X3VuaXR0ZXN0LnB5
ICAgICAgIHwgIDQgKy0KIC4uLi93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRz
LnB5ICAgICAgIHwgMjcgKysrKy0tLS0tLS0tLQogLi4uL2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJl
c3VsdHNfdW5pdHRlc3QucHkgICAgICAgfCAgNSAtLS0KIC4uLi93ZWJraXRweS9jb21tb24vbmV0
L3Jlc3VsdHNqc29ucGFyc2VyLnB5ICAgICAgIHwgMTggKysrKysrLS0tCiAuLi4vY29tbW9uL25l
dC9yZXN1bHRzanNvbnBhcnNlcl91bml0dGVzdC5weSAgICAgICB8ICA5ICsrKy0tCiAuLi4vd2Vi
a2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5ICB8IDEwICsrLS0tCiAu
Li4vU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzLnB5ICB8ICA0ICst
CiAuLi4vd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlc191bml0dGVzdC5weSB8IDMw
ICsrKysrKystLS0tLS0tCiAuLi4vd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNy
ZWFkZXIucHkgICB8ICA0IC0tCiAuLi4vdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXJf
dW5pdHRlc3QucHkgICB8ICA1ICstLQogLi4uL3Rvb2wvc2VydmVycy9yZWJhc2VsaW5lc2VydmVy
X3VuaXR0ZXN0LnB5ICAgICAgfCAgMiArLQogMTIgZmlsZXMgY2hhbmdlZCwgOTkgaW5zZXJ0aW9u
cygrKSwgNjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDkxYzcyZDguLjkzYTM4YWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxNC0wOS0y
OSAgSmFrZSBOaWVsc2VuICA8amFjb2JfbmllbHNlbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2hh
bmdlcyBMYXlvdXRUZXN0UmVzdWx0cyB0byB1c2UgdGhlIGludGVycnVwdGVkIGZsYWcgaW5zdGVh
ZCBvZgorICAgICAgICBjb3VudGluZyBmYWlsdXJlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVp
bGRib3QvYnVpbGRib3RfdW5pdHRlc3QucHk6CisgICAgICAgIChCdWlsZGVyVGVzdC5faW5zdGFs
bF9mZXRjaF9idWlsZC5fbW9ja19mZXRjaF9idWlsZCk6CisgICAgICAgIChCdWlsZGVyVGVzdC50
ZXN0X2xhdGVzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHMucHk6CisgICAgICAgIChMYXlvdXRUZXN0
UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKToKKyAgICAgICAgKExheW91dFRlc3RSZXN1bHRz
Ll9faW5pdF9fKToKKyAgICAgICAgKExheW91dFRlc3RSZXN1bHRzLmludGVycnVwdGVkKToKKyAg
ICAgICAgKExheW91dFRlc3RSZXN1bHRzLnRlc3RfcmVzdWx0cyk6CisgICAgICAgIChMYXlvdXRU
ZXN0UmVzdWx0cy5yZXN1bHRzX21hdGNoaW5nX2ZhaWx1cmVfdHlwZXMpOgorICAgICAgICAoTGF5
b3V0VGVzdFJlc3VsdHMpOiBEZWxldGVkLgorICAgICAgICAoTGF5b3V0VGVzdFJlc3VsdHMuc2V0
X2ZhaWx1cmVfbGltaXRfY291bnQpOiBEZWxldGVkLgorICAgICAgICAoTGF5b3V0VGVzdFJlc3Vs
dHMuZmFpbHVyZV9saW1pdF9jb3VudCk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5OgorICAgICAgICAo
TGF5b3V0VGVzdFJlc3VsdHNUZXN0LnRlc3Rfc2V0X2ZhaWx1cmVfbGltaXRfY291bnQpOiBEZWxl
dGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBh
cnNlci5weToKKyAgICAgICAgKFJlc3VsdHNKU09OUGFyc2VyLnBhcnNlX3Jlc3VsdHNfanNvbik6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2Vy
X3VuaXR0ZXN0LnB5OgorICAgICAgICAodGVzdF9iYXNpYyk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHk6CisgICAgICAgIChN
b2NrQ29tbWl0UXVldWUudGVzdF9yZXN1bHRzKToKKyAgICAgICAgKEZhaWxpbmdUZXN0Q29tbWl0
UXVldWUudGVzdF9yZXN1bHRzKToKKyAgICAgICAgKHRlc3RfZmxha3lfdGVzdF9mYWlsdXJlKToK
KyAgICAgICAgKHRlc3RfZmFpbGVkX2FyY2hpdmUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlcy5weToKKyAgICAgICAgKEV4cGVjdGVkRmFpbHVy
ZXMuX3Nob3VsZF90cnVzdCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9l
eHBlY3RlZGZhaWx1cmVzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoTW9ja1Jlc3VsdHMuX19pbml0
X18pOgorICAgICAgICAoTW9ja1Jlc3VsdHMuaW50ZXJydXB0ZWQpOgorICAgICAgICAoRXhwZWN0
ZWRGYWlsdXJlc1Rlc3QudGVzdF9jYW5fdHJ1c3RfcmVzdWx0cyk6CisgICAgICAgIChFeHBlY3Rl
ZEZhaWx1cmVzVGVzdC50ZXN0X3VuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQpOgorICAgICAg
ICAoRXhwZWN0ZWRGYWlsdXJlc1Rlc3QudGVzdF91bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVk
X3doZW5fdHJlZV9pc19ob3NlZCk6CisgICAgICAgIChNb2NrUmVzdWx0cy5mYWlsdXJlX2xpbWl0
X2NvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xh
eW91dHRlc3RyZXN1bHRzcmVhZGVyLnB5OgorICAgICAgICAoTGF5b3V0VGVzdFJlc3VsdHNSZWFk
ZXIucmVzdWx0cyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0
ZXN0cmVzdWx0c3JlYWRlcl91bml0dGVzdC5weToKKyAgICAgICAgKHRlc3RfbWlzc2luZ191bml0
X3Rlc3RfcmVzdWx0c19wYXRoKToKKyAgICAgICAgKHRlc3RfbGF5b3V0X3Rlc3RfcmVzdWx0cyk6
CisKIDIwMTQtMDktMjYgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAg
ICAgICAgTWFjIEVXUyBib3RzIGRvIG5vdCBrZWVwIGxvZ3MgYXMgcHJvbWlzZWQKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC9idWlsZGJvdF91
bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC9i
dWlsZGJvdF91bml0dGVzdC5weQppbmRleCBiMDAzOTNkLi5jYmM5MDhiIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRib3RfdW5pdHRl
c3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1aWxkYm90L2J1
aWxkYm90X3VuaXR0ZXN0LnB5CkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIEJ1aWxkZXJUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICBpc19ncmVlbj1idWlsZF9udW1iZXIg
PCA0CiAgICAgICAgICAgICApCiAgICAgICAgICAgICByZXN1bHRzID0gW3NlbGYuX21vY2tfdGVz
dF9yZXN1bHQodGVzdG5hbWUpIGZvciB0ZXN0bmFtZSBpbiBmYWlsdXJlKGJ1aWxkX251bWJlcild
Ci0gICAgICAgICAgICBsYXlvdXRfdGVzdF9yZXN1bHRzID0gTGF5b3V0VGVzdFJlc3VsdHMocmVz
dWx0cykKKyAgICAgICAgICAgIGxheW91dF90ZXN0X3Jlc3VsdHMgPSBMYXlvdXRUZXN0UmVzdWx0
cyhyZXN1bHRzLCBGYWxzZSkKICAgICAgICAgICAgIGRlZiBtb2NrX2xheW91dF90ZXN0X3Jlc3Vs
dHMoKToKICAgICAgICAgICAgICAgICByZXR1cm4gbGF5b3V0X3Rlc3RfcmVzdWx0cwogICAgICAg
ICAgICAgYnVpbGQubGF5b3V0X3Rlc3RfcmVzdWx0cyA9IG1vY2tfbGF5b3V0X3Rlc3RfcmVzdWx0
cwpAQCAtNjEsNyArNjEsNyBAQCBjbGFzcyBCdWlsZGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgIHNlbGYuX2luc3RhbGxfZmV0Y2hfYnVpbGQobGFtYmRhIGJ1aWxkX251bWJlcjog
WyJ0ZXN0MSIsICJ0ZXN0MiJdKQogCiAgICAgZGVmIHRlc3RfbGF0ZXN0X2xheW91dF90ZXN0X3Jl
c3VsdHMoc2VsZik6Ci0gICAgICAgIHNlbGYuYnVpbGRlci5mZXRjaF9sYXlvdXRfdGVzdF9yZXN1
bHRzID0gbGFtYmRhIHJlc3VsdHNfdXJsOiBMYXlvdXRUZXN0UmVzdWx0cyhbc2VsZi5fbW9ja190
ZXN0X3Jlc3VsdCh0ZXN0bmFtZSkgZm9yIHRlc3RuYW1lIGluIFsidGVzdDEiLCAidGVzdDIiXV0p
CisgICAgICAgIHNlbGYuYnVpbGRlci5mZXRjaF9sYXlvdXRfdGVzdF9yZXN1bHRzID0gbGFtYmRh
IHJlc3VsdHNfdXJsOiBMYXlvdXRUZXN0UmVzdWx0cyhbc2VsZi5fbW9ja190ZXN0X3Jlc3VsdCh0
ZXN0bmFtZSkgZm9yIHRlc3RuYW1lIGluIFsidGVzdDEiLCAidGVzdDIiXV0sIEZhbHNlKQogICAg
ICAgICBzZWxmLmJ1aWxkZXIuYWNjdW11bGF0ZWRfcmVzdWx0c191cmwgPSBsYW1iZGE6ICJodHRw
Oi8vZHVtbXlfdXJsLm9yZyIKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYuYnVpbGRlci5s
YXRlc3RfbGF5b3V0X3Rlc3RfcmVzdWx0cygpKQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHMucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHMucHkKaW5kZXggYjhjYjE1Ny4u
ZWQ5NjdmOCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xh
eW91dHRlc3RyZXN1bHRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9sYXlvdXR0ZXN0cmVzdWx0cy5weQpAQCAtMjgsNyArMjgsNyBAQAogCiBpbXBvcnQgbG9nZ2lu
ZwogCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQucmVzdWx0c2pzb25wYXJzZXIgaW1wb3J0IFJl
c3VsdHNKU09OUGFyc2VyCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQucmVzdWx0c2pzb25wYXJz
ZXIgaW1wb3J0IEZ1bGxKU09OUmVzdWx0cwogZnJvbSB3ZWJraXRweS50aGlyZHBhcnR5LkJlYXV0
aWZ1bFNvdXAgaW1wb3J0IEJlYXV0aWZ1bFNvdXAsIFNvdXBTdHJhaW5lcgogZnJvbSB3ZWJraXRw
eS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X3Jlc3VsdHMKIGZyb20gd2Via2l0cHku
bGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9mYWlsdXJlcwpAQCAtNTAsMjcgKzUwLDE2
IEBAIGNsYXNzIExheW91dFRlc3RSZXN1bHRzKG9iamVjdCk6CiAgICAgZGVmIHJlc3VsdHNfZnJv
bV9zdHJpbmcoY2xzLCBzdHJpbmcpOgogICAgICAgICBpZiBub3Qgc3RyaW5nOgogICAgICAgICAg
ICAgcmV0dXJuIE5vbmUKLSAgICAgICAgdGVzdF9yZXN1bHRzID0gUmVzdWx0c0pTT05QYXJzZXIu
cGFyc2VfcmVzdWx0c19qc29uKHN0cmluZykKLSAgICAgICAgaWYgbm90IHRlc3RfcmVzdWx0czoK
LSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIHJldHVybiBjbHModGVzdF9yZXN1bHRz
KQorICAgICAgICBmdWxsX3Jlc3VsdHMgPSBGdWxsSlNPTlJlc3VsdHMoc3RyaW5nKQorICAgICAg
ICByZXR1cm4gY2xzKGZ1bGxfcmVzdWx0cy50ZXN0X3Jlc3VsdHMoKSwgZnVsbF9yZXN1bHRzLmlu
dGVycnVwdGVkKCkpCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9yZXN1bHRzKToKLSAg
ICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzID0gdGVzdF9yZXN1bHRzCi0gICAgICAgIHNlbGYuX2Zh
aWx1cmVfbGltaXRfY291bnQgPSBOb25lCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfcmVz
dWx0cywgaW50ZXJydXB0ZWQpOgogICAgICAgICBzZWxmLl91bml0X3Rlc3RfZmFpbHVyZXMgPSBb
XQorICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHMgPSB0ZXN0X3Jlc3VsdHMKKyAgICAgICAgc2Vs
Zi5faW50ZXJydXB0ZWQgPSBpbnRlcnJ1cHRlZAogCi0gICAgIyBGSVhNRTogcnVuLXdlYmtpdC10
ZXN0cyBzaG91bGQgc3RvcmUgdGhlIC0tZXhpdC1hZnRlci1OLWZhaWx1cmVzIHZhbHVlCi0gICAg
IyAob3Igc29tZSBpbmRpY2F0aW9uIG9mIGVhcmx5IGV4aXQpIHNvbWV3aGVyZSBpbiB0aGUgcmVz
dWx0cy5qc29uCi0gICAgIyBmaWxlLiAgVW50aWwgaXQgZG9lcywgY2FsbGVycyBzaG91bGQgc2V0
IHRoZSBsaW1pdCB0bwotICAgICMgLS1leGl0LWFmdGVyLU4tZmFpbHVyZXMgdmFsdWUgdXNlZCBp
biB0aGF0IHJ1bi4gIENvbnN1bWVycyBvZiBMYXlvdXRUZXN0UmVzdWx0cwotICAgICMgbWF5IHVz
ZSB0aGF0IHZhbHVlIHRvIGtub3cgaWYgYWJzZW5jZSBmcm9tIHRoZSBmYWlsdXJlIGxpc3QgbWVh
bnMgUEFTUy4KLSAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
ODQ4MQotICAgIGRlZiBzZXRfZmFpbHVyZV9saW1pdF9jb3VudChzZWxmLCBsaW1pdCk6Ci0gICAg
ICAgIHNlbGYuX2ZhaWx1cmVfbGltaXRfY291bnQgPSBsaW1pdAotCi0gICAgZGVmIGZhaWx1cmVf
bGltaXRfY291bnQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9mYWlsdXJlX2xpbWl0X2Nv
dW50CisgICAgZGVmIGludGVycnVwdGVkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5faW50
ZXJydXB0ZWQKIAogICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6CiAgICAgICAgIHJldHVybiBz
ZWxmLl90ZXN0X3Jlc3VsdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0c191bml0dGVzdC5weQppbmRleCBlYTRl
OTI3Li44NTIwNjkzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvbGF5b3V0dGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5CkBAIC0zNiwxMSAr
MzYsNiBAQCBmcm9tIHdlYmtpdHB5LnRoaXJkcGFydHkuQmVhdXRpZnVsU291cCBpbXBvcnQgQmVh
dXRpZnVsU291cAogCiAKIGNsYXNzIExheW91dFRlc3RSZXN1bHRzVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6Ci0gICAgZGVmIHRlc3Rfc2V0X2ZhaWx1cmVfbGltaXRfY291bnQoc2VsZik6Ci0gICAg
ICAgIHJlc3VsdHMgPSBMYXlvdXRUZXN0UmVzdWx0cyhbXSkKLSAgICAgICAgc2VsZi5hc3NlcnRJ
c05vbmUocmVzdWx0cy5mYWlsdXJlX2xpbWl0X2NvdW50KCkpCi0gICAgICAgIHJlc3VsdHMuc2V0
X2ZhaWx1cmVfbGltaXRfY291bnQoMTApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0
cy5mYWlsdXJlX2xpbWl0X2NvdW50KCksIDEwKQogCiAgICAgZGVmIHRlc3RfcmVzdWx0c19mcm9t
X3N0cmluZyhzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoTGF5b3V0VGVzdFJlc3Vs
dHMucmVzdWx0c19mcm9tX3N0cmluZyhOb25lKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlci5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlci5weQppbmRleCAxYTJhNzBmLi4w
MzdlMTYzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVz
dWx0c2pzb25wYXJzZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0
L3Jlc3VsdHNqc29ucGFyc2VyLnB5CkBAIC0xMzcsOSArMTM3LDggQEAgY2xhc3MgSlNPTlRlc3RS
ZXN1bHQob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KHNl
bGYuX3Rlc3RfbmFtZSwgc2VsZi5fZmFpbHVyZXMoKSkKIAogCi1jbGFzcyBSZXN1bHRzSlNPTlBh
cnNlcihvYmplY3QpOgotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBwYXJzZV9yZXN1bHRzX2pz
b24oY2xzLCBqc29uX3N0cmluZyk6CitjbGFzcyBGdWxsSlNPTlJlc3VsdHMob2JqZWN0KToKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwganNvbl9zdHJpbmcpOgogICAgICAgICBpZiBub3QganNvbl9y
ZXN1bHRzX2dlbmVyYXRvci5oYXNfanNvbl93cmFwcGVyKGpzb25fc3RyaW5nKToKICAgICAgICAg
ICAgIHJldHVybiBOb25lCiAKQEAgLTE0OSw3ICsxNDgsMTQgQEAgY2xhc3MgUmVzdWx0c0pTT05Q
YXJzZXIob2JqZWN0KToKICAgICAgICAganNvbl9yZXN1bHRzID0gW10KICAgICAgICAgZm9yX2Vh
Y2hfdGVzdChqc29uX2RpY3RbJ3Rlc3RzJ10sIGxhbWJkYSB0ZXN0LCByZXN1bHQ6IGpzb25fcmVz
dWx0cy5hcHBlbmQoSlNPTlRlc3RSZXN1bHQodGVzdCwgcmVzdWx0KSkpCiAKLSAgICAgICAgIyBG
SVhNRTogV2hhdCdzIHRoZSBzaG9ydCBzZXh5IHB5dGhvbiB3YXkgdG8gZmlsdGVyIE5vbmU/Ci0g
ICAgICAgICMgSSB3b3VsZCB1c2UgW2Zvby5iYXIoKSBmb3IgZm9vIGluIGZvb3MgaWYgZm9vLmJh
cigpXSBidXQgYmFyKCkgaXMgZXhwZW5zaXZlLgogICAgICAgICB1bmV4cGVjdGVkX2ZhaWx1cmVz
ID0gW3Jlc3VsdC50ZXN0X3Jlc3VsdCgpIGZvciByZXN1bHQgaW4ganNvbl9yZXN1bHRzIGlmIG5v
dCByZXN1bHQuZGlkX3Bhc3Nfb3JfcnVuX2FzX2V4cGVjdGVkKCldCi0gICAgICAgIHJldHVybiBm
aWx0ZXIobGFtYmRhIGE6IGEsIHVuZXhwZWN0ZWRfZmFpbHVyZXMpCisKKyAgICAgICAgc2VsZi5f
dGVzdF9yZXN1bHRzID0gW3Jlc3VsdCBmb3IgcmVzdWx0IGluIHVuZXhwZWN0ZWRfZmFpbHVyZXMg
aWYgcmVzdWx0IGlzIG5vdCBOb25lXQorCisgICAgICAgIHNlbGYuX2ludGVycnVwdGVkID0ganNv
bl9kaWN0WyJpbnRlcnJ1cHRlZCJdCisKKyAgICBkZWYgaW50ZXJydXB0ZWQoc2VsZik6CisgICAg
ICAgIHJldHVybiBzZWxmLl9pbnRlcnJ1cHRlZAorCisgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcmVzdWx0cwpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2VyX3VuaXR0ZXN0LnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2VyX3Vu
aXR0ZXN0LnB5CmluZGV4IDVlN2QzYTYuLjFmNTg2ZDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlcl91bml0dGVzdC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXJfdW5p
dHRlc3QucHkKQEAgLTI4LDEyICsyOCwxMiBAQAogCiBpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0
ZXN0CiAKLWZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5yZXN1bHRzanNvbnBhcnNlciBpbXBvcnQg
UmVzdWx0c0pTT05QYXJzZXIKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5yZXN1bHRzanNvbnBh
cnNlciBpbXBvcnQgRnVsbEpTT05SZXN1bHRzCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5t
b2RlbHMgaW1wb3J0IHRlc3RfcmVzdWx0cwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9k
ZWxzIGltcG9ydCB0ZXN0X2ZhaWx1cmVzCiAKIAotY2xhc3MgUmVzdWx0c0pTT05QYXJzZXJUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKK2NsYXNzIEZ1bGxKU09OUmVzdWx0c1Rlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgICMgVGhlIHJlYWwgZmlsZXMgaGF2ZSBubyB3aGl0ZXNwYWNlLCBidXQg
bmV3bGluZXMgbWFrZSB0aGlzIG11Y2ggbW9yZSByZWFkYWJsZS4KIAogICAgIF9leGFtcGxlX2Z1
bGxfcmVzdWx0c19qc29uID0gIiIiQUREX1JFU1VMVFMoewpAQCAtNzIsNiArNzIsNyBAQCBjbGFz
cyBSZXN1bHRzSlNPTlBhcnNlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgfSwKKyAgICAiaW50ZXJydXB0ZWQiOiB0cnVlLAogICAgICJza2lw
cGVkIjogNDUwLAogICAgICJudW1fcmVncmVzc2lvbnMiOiAxNSwKICAgICAibGF5b3V0X3Rlc3Rz
X2RpciI6ICJcL2JcL2J1aWxkXC9zbGF2ZVwvV2Via2l0X01hYzEwXzVcL2J1aWxkXC9zcmNcL3Ro
aXJkX3BhcnR5XC9XZWJLaXRcL0xheW91dFRlc3RzIiwKQEAgLTg4LDUgKzg5LDcgQEAgY2xhc3Mg
UmVzdWx0c0pTT05QYXJzZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIHRl
c3RfcmVzdWx0cy5UZXN0UmVzdWx0KCJzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRHJvcFNoYWRv
d0VsZW1lbnQtZG9tLXN0ZERldmlhdGlvbi1hdHRyLmh0bWwiLCBbdGVzdF9mYWlsdXJlcy5GYWls
dXJlSW1hZ2VIYXNoTWlzbWF0Y2goKV0sIDApLAogICAgICAgICAgICAgdGVzdF9yZXN1bHRzLlRl
c3RSZXN1bHQoImZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS5odG1sIiwgW3Rlc3RfZmFp
bHVyZXMuRmFpbHVyZVRleHRNaXNtYXRjaCgpLCB0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVJbWFnZUhh
c2hNaXNtYXRjaCgpLCB0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVBdWRpb01pc21hdGNoKCldLCAwKSwK
ICAgICAgICAgXQotICAgICAgICByZXN1bHRzID0gUmVzdWx0c0pTT05QYXJzZXIucGFyc2VfcmVz
dWx0c19qc29uKHNlbGYuX2V4YW1wbGVfZnVsbF9yZXN1bHRzX2pzb24pCisgICAgICAgIGZ1bGxf
cmVzdWx0cyA9IEZ1bGxKU09OUmVzdWx0cyhzZWxmLl9leGFtcGxlX2Z1bGxfcmVzdWx0c19qc29u
KQorICAgICAgICByZXN1bHRzID0gZnVsbF9yZXN1bHRzLnRlc3RfcmVzdWx0cygpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfcmVzdWx0cywgcmVzdWx0cykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChUcnVlLCBmdWxsX3Jlc3VsdHMuaW50ZXJydXB0ZWQoKSkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0
ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tf
dW5pdHRlc3QucHkKaW5kZXggMWVhYmRlMS4uYmJkMDMwMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3Qu
cHkKQEAgLTczLDcgKzczLDcgQEAgY2xhc3MgTW9ja0NvbW1pdFF1ZXVlKENvbW1pdFF1ZXVlVGFz
a0RlbGVnYXRlKToKICAgICAgICAgcmV0dXJuIEV4cGVjdGVkRmFpbHVyZXMoKQogCiAgICAgZGVm
IHRlc3RfcmVzdWx0cyhzZWxmKToKLSAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJu
IExheW91dFRlc3RSZXN1bHRzKFtdLCBUcnVlKQogCiAgICAgZGVmIHJlcG9ydF9mbGFreV90ZXN0
cyhzZWxmLCBwYXRjaCwgZmxha3lfcmVzdWx0cywgcmVzdWx0c19hcmNoaXZlKToKICAgICAgICAg
Zmxha3lfdGVzdHMgPSBbcmVzdWx0LmZpbGVuYW1lIGZvciByZXN1bHQgaW4gZmxha3lfcmVzdWx0
c10KQEAgLTExMCw5ICsxMTAsNyBAQCBjbGFzcyBGYWlsaW5nVGVzdENvbW1pdFF1ZXVlKE1vY2tD
b21taXRRdWV1ZSk6CiAgICAgICAgICMgRG9lc24ndCBtYWtlIHNlbnNlIHRvIGFzayBmb3IgdGhl
IHRlc3RfcmVzdWx0cyB1bnRpbCB0aGUgdGVzdHMgaGF2ZSBydW4gYXQgbGVhc3Qgb25jZS4KICAg
ICAgICAgYXNzZXJ0KHNlbGYuX3Rlc3RfcnVuX2NvdW50ZXIgPj0gMCkKICAgICAgICAgZmFpbHVy
ZXNfZm9yX3J1biA9IHNlbGYuX3Rlc3RfZmFpbHVyZV9wbGFuW3NlbGYuX3Rlc3RfcnVuX2NvdW50
ZXJdCi0gICAgICAgIHJlc3VsdHMgPSBMYXlvdXRUZXN0UmVzdWx0cyhtYXAoc2VsZi5fbW9ja190
ZXN0X3Jlc3VsdCwgZmFpbHVyZXNfZm9yX3J1bikpCi0gICAgICAgICMgVGhpcyBtYWtlcyB0aGUg
cmVzdWx0cyB0cnVzdGFibGUgYnkgRXhwZWN0ZWRGYWlsdXJlcy4KLSAgICAgICAgcmVzdWx0cy5z
ZXRfZmFpbHVyZV9saW1pdF9jb3VudCgxMCkKKyAgICAgICAgcmVzdWx0cyA9IExheW91dFRlc3RS
ZXN1bHRzKG1hcChzZWxmLl9tb2NrX3Rlc3RfcmVzdWx0LCBmYWlsdXJlc19mb3JfcnVuKSwgbGVu
KHNlbGYuX3Rlc3RfZmFpbHVyZV9wbGFuW3NlbGYuX3Rlc3RfcnVuX2NvdW50ZXJdKSA+PSAxMCkK
ICAgICAgICAgcmV0dXJuIHJlc3VsdHMKIAogCkBAIC0yODIsNyArMjgwLDcgQEAgY29tbWFuZF9m
YWlsZWQ6IGZhaWx1cmVfbWVzc2FnZT0nVW5hYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2gnIHNj
cmlwdF9lcnJvcj0nTU8KICAgICAgICAgXSkKICAgICAgICAgIyBDb21taXRRdWV1ZVRhc2sgd2ls
bCBvbmx5IHJlcG9ydCBmbGFreSB0ZXN0cyBpZiB3ZSBzdWNjZXNzZnVsbHkgcGFyc2VkCiAgICAg
ICAgICMgcmVzdWx0cy5qc29uIGFuZCByZXR1cm5lZCBhIExheW91dFRlc3RSZXN1bHRzIG9iamVj
dCwgc28gd2UgZmFrZSBvbmUuCi0gICAgICAgIGNvbW1pdF9xdWV1ZS50ZXN0X3Jlc3VsdHMgPSBs
YW1iZGE6IExheW91dFRlc3RSZXN1bHRzKFtdKQorICAgICAgICBjb21taXRfcXVldWUudGVzdF9y
ZXN1bHRzID0gbGFtYmRhOiBMYXlvdXRUZXN0UmVzdWx0cyhbXSwgVHJ1ZSkKICAgICAgICAgZXhw
ZWN0ZWRfbG9ncyA9ICIiInJ1bl93ZWJraXRfcGF0Y2g6IFsnY2xlYW4nXQogY29tbWFuZF9wYXNz
ZWQ6IHN1Y2Nlc3NfbWVzc2FnZT0nQ2xlYW5lZCB3b3JraW5nIGRpcmVjdG9yeScgcGF0Y2g9JzEw
MDAwJwogcnVuX3dlYmtpdF9wYXRjaDogWyd1cGRhdGUnXQpAQCAtMzEzLDcgKzMxMSw3IEBAIGNv
bW1hbmRfcGFzc2VkOiBzdWNjZXNzX21lc3NhZ2U9J0xhbmRlZCBwYXRjaCcgcGF0Y2g9JzEwMDAw
JwogICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgIFNjcmlwdEVycm9yKCJNT0NLIHRlc3Rz
IGZhaWx1cmUiKSwKICAgICAgICAgXSkKLSAgICAgICAgY29tbWl0X3F1ZXVlLnRlc3RfcmVzdWx0
cyA9IGxhbWJkYTogTGF5b3V0VGVzdFJlc3VsdHMoW10pCisgICAgICAgIGNvbW1pdF9xdWV1ZS50
ZXN0X3Jlc3VsdHMgPSBsYW1iZGE6IExheW91dFRlc3RSZXN1bHRzKFtdLCBUcnVlKQogICAgICAg
ICAjIEl0J3MgcG9zc2libGUgZGVsZWdhdGUgdG8gZmFpbCB0byBhcmNoaXZlIGxheW91dCB0ZXN0
cywgZG9uJ3QgdHJ5IHRvIHJlcG9ydAogICAgICAgICAjIGZsYWt5IHRlc3RzIHdoZW4gdGhhdCBo
YXBwZW5zLgogICAgICAgICBjb21taXRfcXVldWUuYXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyA9
IGxhbWJkYSBwYXRjaDogTm9uZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9leHBlY3RlZGZhaWx1cmVzLnB5CmluZGV4IGMwY2ZlMjEuLjliOTdkMmYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlcy5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXMucHkK
QEAgLTM4LDcgKzM4LDkgQEAgY2xhc3MgRXhwZWN0ZWRGYWlsdXJlcyhvYmplY3QpOgogCiAgICAg
QGNsYXNzbWV0aG9kCiAgICAgZGVmIF9zaG91bGRfdHJ1c3QoY2xzLCByZXN1bHRzKToKLSAgICAg
ICAgcmV0dXJuIGJvb2woY2xzLl9oYXNfZmFpbHVyZXMocmVzdWx0cykgYW5kIHJlc3VsdHMuZmFp
bHVyZV9saW1pdF9jb3VudCgpIGFuZCBsZW4ocmVzdWx0cy5mYWlsaW5nX3Rlc3RzKCkpIDwgcmVz
dWx0cy5mYWlsdXJlX2xpbWl0X2NvdW50KCkpCisgICAgICAgIGlmIHJlc3VsdHM6CisgICAgICAg
ICAgICByZXR1cm4gbm90IHJlc3VsdHMuaW50ZXJydXB0ZWQoKQorICAgICAgICByZXR1cm4gRmFs
c2UKIAogICAgIGRlZiBmYWlsdXJlc193ZXJlX2V4cGVjdGVkKHNlbGYsIHJlc3VsdHMpOgogICAg
ICAgICBpZiBub3Qgc2VsZi5faXNfdHJ1c3R3b3J0aHk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHkK
aW5kZXggYjYzOTg1Ni4uNjdjYjg4MyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlc191bml0dGVzdC5weQpAQCAtMzIs
MTIgKzMyLDEyIEBAIGZyb20gd2Via2l0cHkudG9vbC5ib3QuZXhwZWN0ZWRmYWlsdXJlcyBpbXBv
cnQgRXhwZWN0ZWRGYWlsdXJlcwogCiAKIGNsYXNzIE1vY2tSZXN1bHRzKG9iamVjdCk6Ci0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGZhaWxpbmdfdGVzdHM9W10sIGZhaWx1cmVfbGltaXQ9MTApOgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmYWlsaW5nX3Rlc3RzPVtdLCBpbnRlcnJ1cHRlZD1GYWxz
ZSk6CiAgICAgICAgIHNlbGYuX2ZhaWxpbmdfdGVzdHMgPSBmYWlsaW5nX3Rlc3RzCi0gICAgICAg
IHNlbGYuX2ZhaWx1cmVfbGltaXRfY291bnQgPSBmYWlsdXJlX2xpbWl0CisgICAgICAgIHNlbGYu
X2ludGVycnVwdGVkID0gaW50ZXJydXB0ZWQKIAotICAgIGRlZiBmYWlsdXJlX2xpbWl0X2NvdW50
KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fZmFpbHVyZV9saW1pdF9jb3VudAorICAgIGRl
ZiBpbnRlcnJ1cHRlZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2ludGVycnVwdGVkCiAK
ICAgICBkZWYgZmFpbGluZ190ZXN0cyhzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2ZhaWxp
bmdfdGVzdHMKQEAgLTQ5LDEyICs0OSwxMiBAQCBjbGFzcyBFeHBlY3RlZEZhaWx1cmVzVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9jYW5fdHJ1c3RfcmVzdWx0cyhzZWxm
KToKICAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChOb25lLCBGYWxzZSkKLSAgICAgICAg
c2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rlc3RzPVtdLCBmYWls
dXJlX2xpbWl0PU5vbmUpLCBGYWxzZSkKLSAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChN
b2NrUmVzdWx0cyhmYWlsaW5nX3Rlc3RzPVtdLCBmYWlsdXJlX2xpbWl0PTEwKSwgRmFsc2UpCi0g
ICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1b
MV0sIGZhaWx1cmVfbGltaXQ9Tm9uZSksIEZhbHNlKQotICAgICAgICBzZWxmLl9hc3NlcnRfY2Fu
X3RydXN0KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9WzFdLCBmYWlsdXJlX2xpbWl0PTIpLCBU
cnVlKQotICAgICAgICBzZWxmLl9hc3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1bHRzKGZhaWxpbmdf
dGVzdHM9WzFdLCBmYWlsdXJlX2xpbWl0PTEpLCBGYWxzZSkKLSAgICAgICAgc2VsZi5fYXNzZXJ0
X2Nhbl90cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rlc3RzPVsxLCAyXSwgZmFpbHVyZV9saW1p
dD0xKSwgRmFsc2UpCisgICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMo
ZmFpbGluZ190ZXN0cz1bXSwgaW50ZXJydXB0ZWQ9RmFsc2UpLCBUcnVlKQorICAgICAgICBzZWxm
Ll9hc3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9W10sIGludGVycnVw
dGVkPVRydWUpLCBGYWxzZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVz
dWx0cyhmYWlsaW5nX3Rlc3RzPVsxXSwgaW50ZXJydXB0ZWQ9RmFsc2UpLCBUcnVlKQorICAgICAg
ICBzZWxmLl9hc3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9WzFdLCBp
bnRlcnJ1cHRlZD1UcnVlKSwgRmFsc2UpCisgICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3Qo
TW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bMSwgMl0sIGludGVycnVwdGVkPUZhbHNlKSwgVHJ1
ZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rl
c3RzPVsxLCAyXSwgaW50ZXJydXB0ZWQ9VHJ1ZSksIEZhbHNlKQogCiAgICAgZGVmIF9hc3NlcnRf
ZXhwZWN0ZWQoc2VsZiwgZXhwZWN0ZWRfZmFpbHVyZXMsIGZhaWx1cmVzLCBleHBlY3RlZCk6CiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfZmFpbHVyZXMuZmFpbHVyZXNfd2VyZV9l
eHBlY3RlZChNb2NrUmVzdWx0cyhmYWlsdXJlcykpLCBleHBlY3RlZCkKQEAgLTc5LDE3ICs3OSwx
NyBAQCBjbGFzcyBFeHBlY3RlZEZhaWx1cmVzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ICAgIGZhaWx1cmVzLnVwZGF0ZShNb2NrUmVzdWx0cyhbJ2Zvby5odG1sJ10pKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGZhaWx1cmVzLnVuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQoTW9j
a1Jlc3VsdHMoWydmb28uaHRtbCcsICdiYXIuaHRtbCddKSksIHNldChbJ2Jhci5odG1sJ10pKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZhaWx1cmVzLnVuZXhwZWN0ZWRfZmFpbHVyZXNfb2Jz
ZXJ2ZWQoTW9ja1Jlc3VsdHMoWydiYXouaHRtbCddKSksIHNldChbJ2Jhei5odG1sJ10pKQotICAg
ICAgICB1bmJvdW5kZWRfcmVzdWx0cyA9IE1vY2tSZXN1bHRzKFsnYmF6Lmh0bWwnLCAncXV4Lmh0
bWwnLCAndGFjby5odG1sJ10sIGZhaWx1cmVfbGltaXQ9MykKKyAgICAgICAgdW5ib3VuZGVkX3Jl
c3VsdHMgPSBNb2NrUmVzdWx0cyhbJ2Jhei5odG1sJywgJ3F1eC5odG1sJywgJ3RhY28uaHRtbCdd
LCBpbnRlcnJ1cHRlZD1UcnVlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZhaWx1cmVzLnVu
ZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQodW5ib3VuZGVkX3Jlc3VsdHMpLCBzZXQoWydiYXou
aHRtbCcsICdxdXguaHRtbCcsICd0YWNvLmh0bWwnXSkpCi0gICAgICAgIHVuYm91bmRlZF9yZXN1
bHRzX3dpdGhfZXhpc3RpbmdfZmFpbHVyZSA9IE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmF6
Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10sIGZhaWx1cmVfbGltaXQ9NCkKKyAgICAg
ICAgdW5ib3VuZGVkX3Jlc3VsdHNfd2l0aF9leGlzdGluZ19mYWlsdXJlID0gTW9ja1Jlc3VsdHMo
Wydmb28uaHRtbCcsICdiYXouaHRtbCcsICdxdXguaHRtbCcsICd0YWNvLmh0bWwnXSwgaW50ZXJy
dXB0ZWQ9VHJ1ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWlsdXJlcy51bmV4cGVjdGVk
X2ZhaWx1cmVzX29ic2VydmVkKHVuYm91bmRlZF9yZXN1bHRzX3dpdGhfZXhpc3RpbmdfZmFpbHVy
ZSksIHNldChbJ2Jhei5odG1sJywgJ3F1eC5odG1sJywgJ3RhY28uaHRtbCddKSkKIAogICAgIGRl
ZiB0ZXN0X3VuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWRfd2hlbl90cmVlX2lzX2hvc2VkKHNl
bGYpOgogICAgICAgICBmYWlsdXJlcyA9IEV4cGVjdGVkRmFpbHVyZXMoKQotICAgICAgICBmYWls
dXJlcy51cGRhdGUoTW9ja1Jlc3VsdHMoWydmb28uaHRtbCcsICdiYW5hbmEuaHRtbCddLCBmYWls
dXJlX2xpbWl0PTIpKQorICAgICAgICBmYWlsdXJlcy51cGRhdGUoTW9ja1Jlc3VsdHMoWydmb28u
aHRtbCcsICdiYW5hbmEuaHRtbCddLCBpbnRlcnJ1cHRlZD1UcnVlKSkKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKE1vY2tSZXN1
bHRzKFsnZm9vLmh0bWwnLCAnYmFyLmh0bWwnXSkpLCBOb25lKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGZhaWx1cmVzLnVuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQoTW9ja1Jlc3VsdHMo
WydiYXouaHRtbCddKSksIE5vbmUpCi0gICAgICAgIHVuYm91bmRlZF9yZXN1bHRzID0gTW9ja1Jl
c3VsdHMoWydiYXouaHRtbCcsICdxdXguaHRtbCcsICd0YWNvLmh0bWwnXSwgZmFpbHVyZV9saW1p
dD0zKQorICAgICAgICB1bmJvdW5kZWRfcmVzdWx0cyA9IE1vY2tSZXN1bHRzKFsnYmF6Lmh0bWwn
LCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10sIGludGVycnVwdGVkPVRydWUpCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCh1bmJv
dW5kZWRfcmVzdWx0cyksIE5vbmUpCi0gICAgICAgIHVuYm91bmRlZF9yZXN1bHRzX3dpdGhfZXhp
c3RpbmdfZmFpbHVyZSA9IE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmF6Lmh0bWwnLCAncXV4
Lmh0bWwnLCAndGFjby5odG1sJ10sIGZhaWx1cmVfbGltaXQ9NCkKKyAgICAgICAgdW5ib3VuZGVk
X3Jlc3VsdHNfd2l0aF9leGlzdGluZ19mYWlsdXJlID0gTW9ja1Jlc3VsdHMoWydmb28uaHRtbCcs
ICdiYXouaHRtbCcsICdxdXguaHRtbCcsICd0YWNvLmh0bWwnXSwgaW50ZXJydXB0ZWQ9VHJ1ZSkK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29i
c2VydmVkKHVuYm91bmRlZF9yZXN1bHRzX3dpdGhfZXhpc3RpbmdfZmFpbHVyZSksIE5vbmUpCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1
bHRzcmVhZGVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0
cmVzdWx0c3JlYWRlci5weQppbmRleCBhOWU1M2RkLi5jMzI4ZTViIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFk
ZXIucHkKQEAgLTcwLDEwICs3MCw2IEBAIGNsYXNzIExheW91dFRlc3RSZXN1bHRzUmVhZGVyKG9i
amVjdCk6CiAgICAgICAgIGxheW91dF90ZXN0X3Jlc3VsdHMgPSBzZWxmLl9jcmVhdGVfbGF5b3V0
X3Rlc3RfcmVzdWx0cygpCiAgICAgICAgIHVuaXRfdGVzdF9yZXN1bHRzID0gc2VsZi5fY3JlYXRl
X3VuaXRfdGVzdF9yZXN1bHRzKCkKICAgICAgICAgaWYgbGF5b3V0X3Rlc3RfcmVzdWx0czoKLSAg
ICAgICAgICAgICMgRklYTUU6IFRoaXMgaXMgdXNlZCB0byBkZXRlY3QgaWYgd2UgaGFkIE4gZmFp
bHVyZXMgZHVlIHRvCi0gICAgICAgICAgICAjIE4gdGVzdHMgZmFpbGluZywgb3IgaWYgd2UgaGl0
IHRoZSAiZXhpdC1hZnRlci1uLWZhaWx1cmVzIiBsaW1pdC4KLSAgICAgICAgICAgICMgVGhlc2Ug
ZGF5cyB3ZSBjb3VsZCBqdXN0IGNoZWNrIGZvciB0aGUgImludGVycnVwdGVkIiBrZXkgaW4gcmVz
dWx0cy5qc29uIGluc3RlYWQhCi0gICAgICAgICAgICBsYXlvdXRfdGVzdF9yZXN1bHRzLnNldF9m
YWlsdXJlX2xpbWl0X2NvdW50KFJ1blRlc3RzLk5PTl9JTlRFUkFDVElWRV9GQUlMVVJFX0xJTUlU
X0NPVU5UKQogICAgICAgICAgICAgaWYgdW5pdF90ZXN0X3Jlc3VsdHM6CiAgICAgICAgICAgICAg
ICAgbGF5b3V0X3Rlc3RfcmVzdWx0cy5hZGRfdW5pdF90ZXN0X2ZhaWx1cmVzKHVuaXRfdGVzdF9y
ZXN1bHRzKQogICAgICAgICByZXR1cm4gbGF5b3V0X3Rlc3RfcmVzdWx0cwpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlcl91
bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJl
c3VsdHNyZWFkZXJfdW5pdHRlc3QucHkKaW5kZXggYzc3OWJiOC4uNzFhNGVkNCAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRl
cl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91
dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0LnB5CkBAIC02OCw3ICs2OCw3IEBAIGNsYXNzIExh
eW91dFRlc3RSZXN1bHRzUmVhZGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRl
c3RfbWlzc2luZ191bml0X3Rlc3RfcmVzdWx0c19wYXRoKHNlbGYpOgogICAgICAgICBob3N0ID0g
TW9ja0hvc3QoKQogICAgICAgICByZWFkZXIgPSBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcihob3N0
LCAiL21vY2stcmVzdWx0cyIsICIvdmFyL2xvZ3MiKQotICAgICAgICByZWFkZXIuX2NyZWF0ZV9s
YXlvdXRfdGVzdF9yZXN1bHRzID0gbGFtYmRhOiBMYXlvdXRUZXN0UmVzdWx0cyhbXSkKKyAgICAg
ICAgcmVhZGVyLl9jcmVhdGVfbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IGxhbWJkYTogTGF5b3V0VGVz
dFJlc3VsdHMoW10sIEZhbHNlKQogICAgICAgICByZWFkZXIuX2NyZWF0ZV91bml0X3Rlc3RfcmVz
dWx0cyA9IGxhbWJkYTogTm9uZQogICAgICAgICAjIGxheW91dF90ZXN0X3Jlc3VsdHMgc2hvdWxk
bid0IHJhaXNlIGV2ZW4gaWYgdGhlIHVuaXQgdGVzdHMgeG1sIGZpbGUgaXMgbWlzc2luZy4KICAg
ICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmVhZGVyLnJlc3VsdHMoKSwgTm9uZSkKQEAgLTgx
LDEwICs4MSw5IEBAIGNsYXNzIExheW91dFRlc3RSZXN1bHRzUmVhZGVyVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHJlYWRlci5yZXN1bHRzKCkpCiAg
ICAgICAgIHJlYWRlci5fcmVhZF9maWxlX2NvbnRlbnRzID0gbGFtYmRhIHBhdGg6ICIiCiAgICAg
ICAgIHNlbGYuYXNzZXJ0SXNOb25lKHJlYWRlci5yZXN1bHRzKCkpCi0gICAgICAgIHJlYWRlci5f
Y3JlYXRlX2xheW91dF90ZXN0X3Jlc3VsdHMgPSBsYW1iZGE6IExheW91dFRlc3RSZXN1bHRzKFtd
KQorICAgICAgICByZWFkZXIuX2NyZWF0ZV9sYXlvdXRfdGVzdF9yZXN1bHRzID0gbGFtYmRhOiBM
YXlvdXRUZXN0UmVzdWx0cyhbXSwgRmFsc2UpCiAgICAgICAgIHJlc3VsdHMgPSByZWFkZXIucmVz
dWx0cygpCiAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlc3VsdHMpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocmVzdWx0cy5mYWlsdXJlX2xpbWl0X2NvdW50KCksIDMwKSAgIyBUaGlz
IHZhbHVlIG1hdGNoZXMgUnVuVGVzdHMuTk9OX0lOVEVSQUNUSVZFX0ZBSUxVUkVfTElNSVRfQ09V
TlQKIAogICAgIGRlZiB0ZXN0X2FyY2hpdmVfbGFzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKHNlbGYp
OgogICAgICAgICBob3N0ID0gTW9ja0hvc3QoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3NlcnZlcnMvcmViYXNlbGluZXNlcnZlcl91bml0dGVzdC5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL3JlYmFzZWxpbmVzZXJ2ZXJfdW5pdHRlc3Qu
cHkKaW5kZXggY2JmOTA3My4uNjQwZjMyNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3NlcnZlcnMvcmViYXNlbGluZXNlcnZlcl91bml0dGVzdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9yZWJhc2VsaW5lc2VydmVyX3VuaXR0ZXN0
LnB5CkBAIC0yMDUsNyArMjA1LDcgQEAgY2xhc3MgUmViYXNlbGluZVRlc3RUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKICAgICAgICAgICAgIF0pCiAKICAgICBkZWYgdGVzdF9nYXRoZXJfYmFzZWxp
bmVzKHNlbGYpOgotICAgICAgICBleGFtcGxlX2pzb24gPSByZXN1bHRzanNvbnBhcnNlcl91bml0
dGVzdC5SZXN1bHRzSlNPTlBhcnNlclRlc3QuX2V4YW1wbGVfZnVsbF9yZXN1bHRzX2pzb24KKyAg
ICAgICAgZXhhbXBsZV9qc29uID0gcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRlc3QuRnVsbEpTT05S
ZXN1bHRzVGVzdC5fZXhhbXBsZV9mdWxsX3Jlc3VsdHNfanNvbgogICAgICAgICByZXN1bHRzX2pz
b24gPSBqc29uLmxvYWRzKHN0cmlwX2pzb25fd3JhcHBlcihleGFtcGxlX2pzb24pKQogICAgICAg
ICBzZXJ2ZXIgPSBSZWJhc2VsaW5lU2VydmVyKCkKICAgICAgICAgc2VydmVyLl90ZXN0X2NvbmZp
ZyA9IGdldF90ZXN0X2NvbmZpZygpCi0tIAoxLjkuMyAoQXBwbGUgR2l0LTUwKQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238944</attachid>
            <date>2014-09-30 11:45:28 -0700</date>
            <delta_ts>2014-09-30 14:51:14 -0700</delta_ts>
            <desc>Makes naming conventions more clear</desc>
            <filename>0001-Changes-LayoutTestResults-to-use-the-interrupted-fla.patch</filename>
            <type>text/plain</type>
            <size>24771</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSBiYWM3OWY1ODc3ZTUxZTJkMzNjNjc4ZmE0MWNjZmYwY2M1YmI0YWNiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBNb24sIDI5IFNlcCAyMDE0IDE0OjAzOjAxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
Q2hhbmdlcyBMYXlvdXRUZXN0UmVzdWx0cyB0byB1c2UgdGhlIGludGVycnVwdGVkIGZsYWcgaW5z
dGVhZAogb2YgY291bnRpbmcgZmFpbHVyZXMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzNzIyOQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIFNjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC9idWlsZGJvdF91bml0dGVzdC5weToKKEJ1aWxk
ZXJUZXN0Ll9pbnN0YWxsX2ZldGNoX2J1aWxkLl9tb2NrX2ZldGNoX2J1aWxkKToKKEJ1aWxkZXJU
ZXN0LnRlc3RfbGF0ZXN0X2xheW91dF90ZXN0X3Jlc3VsdHMpOgoqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weToKKExheW91dFRlc3RSZXN1bHRzLnJlc3Vs
dHNfZnJvbV9zdHJpbmcpOgooTGF5b3V0VGVzdFJlc3VsdHMuX19pbml0X18pOgooTGF5b3V0VGVz
dFJlc3VsdHMuaW50ZXJydXB0ZWQpOgooTGF5b3V0VGVzdFJlc3VsdHMudGVzdF9yZXN1bHRzKToK
KExheW91dFRlc3RSZXN1bHRzLnJlc3VsdHNfbWF0Y2hpbmdfZmFpbHVyZV90eXBlcyk6CihMYXlv
dXRUZXN0UmVzdWx0cyk6IERlbGV0ZWQuCihMYXlvdXRUZXN0UmVzdWx0cy5zZXRfZmFpbHVyZV9s
aW1pdF9jb3VudCk6IERlbGV0ZWQuCihMYXlvdXRUZXN0UmVzdWx0cy5mYWlsdXJlX2xpbWl0X2Nv
dW50KTogRGVsZXRlZC4KKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJl
c3VsdHNfdW5pdHRlc3QucHk6CihMYXlvdXRUZXN0UmVzdWx0c1Rlc3QudGVzdF9zZXRfZmFpbHVy
ZV9saW1pdF9jb3VudCk6IERlbGV0ZWQuCiogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jl
c3VsdHNqc29ucGFyc2VyLnB5OgooUmVzdWx0c0pTT05QYXJzZXIucGFyc2VfcmVzdWx0c19qc29u
KToKKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRl
c3QucHk6Cih0ZXN0X2Jhc2ljKToKKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1
ZXVldGFza191bml0dGVzdC5weToKKE1vY2tDb21taXRRdWV1ZS50ZXN0X3Jlc3VsdHMpOgooRmFp
bGluZ1Rlc3RDb21taXRRdWV1ZS50ZXN0X3Jlc3VsdHMpOgoodGVzdF9mbGFreV90ZXN0X2ZhaWx1
cmUpOgoodGVzdF9mYWlsZWRfYXJjaGl2ZSk6CiogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9l
eHBlY3RlZGZhaWx1cmVzLnB5OgooRXhwZWN0ZWRGYWlsdXJlcy5fc2hvdWxkX3RydXN0KToKKiBT
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHk6CihN
b2NrUmVzdWx0cy5fX2luaXRfXyk6CihNb2NrUmVzdWx0cy5pbnRlcnJ1cHRlZCk6CihFeHBlY3Rl
ZEZhaWx1cmVzVGVzdC50ZXN0X2Nhbl90cnVzdF9yZXN1bHRzKToKKEV4cGVjdGVkRmFpbHVyZXNU
ZXN0LnRlc3RfdW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCk6CihFeHBlY3RlZEZhaWx1cmVz
VGVzdC50ZXN0X3VuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWRfd2hlbl90cmVlX2lzX2hvc2Vk
KToKKE1vY2tSZXN1bHRzLmZhaWx1cmVfbGltaXRfY291bnQpOiBEZWxldGVkLgoqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXIucHk6CihMYXlvdXRUZXN0
UmVzdWx0c1JlYWRlci5yZXN1bHRzKToKKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91
dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0LnB5OgoodGVzdF9taXNzaW5nX3VuaXRfdGVzdF9y
ZXN1bHRzX3BhdGgpOgoodGVzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKToKLS0tCiBUb29scy9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQ2ICsrKysrKysrKysr
KysrKysrKysrKysKIC4uLi9jb21tb24vbmV0L2J1aWxkYm90L2J1aWxkYm90X3VuaXR0ZXN0LnB5
ICAgICAgIHwgIDQgKy0KIC4uLi93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRz
LnB5ICAgICAgIHwgMjcgKysrKy0tLS0tLS0tLQogLi4uL2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJl
c3VsdHNfdW5pdHRlc3QucHkgICAgICAgfCAgNSAtLS0KIC4uLi93ZWJraXRweS9jb21tb24vbmV0
L3Jlc3VsdHNqc29ucGFyc2VyLnB5ICAgICAgIHwgMjcgKysrKysrKysrLS0tLQogLi4uL2NvbW1v
bi9uZXQvcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRlc3QucHkgICAgICAgfCAgOSArKystLQogLi4u
L3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weSAgfCAxMCArKy0t
LQogLi4uL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlcy5weSAgfCAg
NCArLQogLi4uL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHkg
fCAzMCArKysrKysrLS0tLS0tLQogLi4uL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1
bHRzcmVhZGVyLnB5ICAgfCAgNCAtLQogLi4uL3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVh
ZGVyX3VuaXR0ZXN0LnB5ICAgfCAgNSArLS0KIC4uLi90b29sL3NlcnZlcnMvcmViYXNlbGluZXNl
cnZlcl91bml0dGVzdC5weSAgICAgIHwgIDIgKy0KIDEyIGZpbGVzIGNoYW5nZWQsIDEwNyBpbnNl
cnRpb25zKCspLCA2NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTFjNzJkOC4uOTNhMzhhYyAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE0
LTA5LTI5ICBKYWtlIE5pZWxzZW4gIDxqYWNvYl9uaWVsc2VuQGFwcGxlLmNvbT4KKworICAgICAg
ICBDaGFuZ2VzIExheW91dFRlc3RSZXN1bHRzIHRvIHVzZSB0aGUgaW50ZXJydXB0ZWQgZmxhZyBp
bnN0ZWFkIG9mCisgICAgICAgIGNvdW50aW5nIGZhaWx1cmVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzcyMjkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9idWlsZGJvdC9idWlsZGJvdF91bml0dGVzdC5weToKKyAgICAgICAgKEJ1aWxkZXJUZXN0Ll9p
bnN0YWxsX2ZldGNoX2J1aWxkLl9tb2NrX2ZldGNoX2J1aWxkKToKKyAgICAgICAgKEJ1aWxkZXJU
ZXN0LnRlc3RfbGF0ZXN0X2xheW91dF90ZXN0X3Jlc3VsdHMpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weToKKyAgICAgICAgKExheW91
dFRlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcpOgorICAgICAgICAoTGF5b3V0VGVzdFJl
c3VsdHMuX19pbml0X18pOgorICAgICAgICAoTGF5b3V0VGVzdFJlc3VsdHMuaW50ZXJydXB0ZWQp
OgorICAgICAgICAoTGF5b3V0VGVzdFJlc3VsdHMudGVzdF9yZXN1bHRzKToKKyAgICAgICAgKExh
eW91dFRlc3RSZXN1bHRzLnJlc3VsdHNfbWF0Y2hpbmdfZmFpbHVyZV90eXBlcyk6CisgICAgICAg
IChMYXlvdXRUZXN0UmVzdWx0cyk6IERlbGV0ZWQuCisgICAgICAgIChMYXlvdXRUZXN0UmVzdWx0
cy5zZXRfZmFpbHVyZV9saW1pdF9jb3VudCk6IERlbGV0ZWQuCisgICAgICAgIChMYXlvdXRUZXN0
UmVzdWx0cy5mYWlsdXJlX2xpbWl0X2NvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHNfdW5pdHRlc3QucHk6CisgICAg
ICAgIChMYXlvdXRUZXN0UmVzdWx0c1Rlc3QudGVzdF9zZXRfZmFpbHVyZV9saW1pdF9jb3VudCk6
IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNq
c29ucGFyc2VyLnB5OgorICAgICAgICAoUmVzdWx0c0pTT05QYXJzZXIucGFyc2VfcmVzdWx0c19q
c29uKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25w
YXJzZXJfdW5pdHRlc3QucHk6CisgICAgICAgICh0ZXN0X2Jhc2ljKToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weToKKyAgICAg
ICAgKE1vY2tDb21taXRRdWV1ZS50ZXN0X3Jlc3VsdHMpOgorICAgICAgICAoRmFpbGluZ1Rlc3RD
b21taXRRdWV1ZS50ZXN0X3Jlc3VsdHMpOgorICAgICAgICAodGVzdF9mbGFreV90ZXN0X2ZhaWx1
cmUpOgorICAgICAgICAodGVzdF9mYWlsZWRfYXJjaGl2ZSk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzLnB5OgorICAgICAgICAoRXhwZWN0ZWRG
YWlsdXJlcy5fc2hvdWxkX3RydXN0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHk6CisgICAgICAgIChNb2NrUmVzdWx0cy5f
X2luaXRfXyk6CisgICAgICAgIChNb2NrUmVzdWx0cy5pbnRlcnJ1cHRlZCk6CisgICAgICAgIChF
eHBlY3RlZEZhaWx1cmVzVGVzdC50ZXN0X2Nhbl90cnVzdF9yZXN1bHRzKToKKyAgICAgICAgKEV4
cGVjdGVkRmFpbHVyZXNUZXN0LnRlc3RfdW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCk6Cisg
ICAgICAgIChFeHBlY3RlZEZhaWx1cmVzVGVzdC50ZXN0X3VuZXhwZWN0ZWRfZmFpbHVyZXNfb2Jz
ZXJ2ZWRfd2hlbl90cmVlX2lzX2hvc2VkKToKKyAgICAgICAgKE1vY2tSZXN1bHRzLmZhaWx1cmVf
bGltaXRfY291bnQpOiBEZWxldGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXIucHk6CisgICAgICAgIChMYXlvdXRUZXN0UmVzdWx0
c1JlYWRlci5yZXN1bHRzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xh
eW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0LnB5OgorICAgICAgICAodGVzdF9taXNzaW5n
X3VuaXRfdGVzdF9yZXN1bHRzX3BhdGgpOgorICAgICAgICAodGVzdF9sYXlvdXRfdGVzdF9yZXN1
bHRzKToKKwogMjAxNC0wOS0yNiAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4K
IAogICAgICAgICBNYWMgRVdTIGJvdHMgZG8gbm90IGtlZXAgbG9ncyBhcyBwcm9taXNlZApkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1aWxkYm90L2J1aWxk
Ym90X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1aWxk
Ym90L2J1aWxkYm90X3VuaXR0ZXN0LnB5CmluZGV4IGIwMDM5M2QuLmNiYzkwOGIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC9idWlsZGJvdF91
bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRi
b3QvYnVpbGRib3RfdW5pdHRlc3QucHkKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgQnVpbGRlclRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgICAgIGlzX2dyZWVuPWJ1aWxkX251
bWJlciA8IDQKICAgICAgICAgICAgICkKICAgICAgICAgICAgIHJlc3VsdHMgPSBbc2VsZi5fbW9j
a190ZXN0X3Jlc3VsdCh0ZXN0bmFtZSkgZm9yIHRlc3RuYW1lIGluIGZhaWx1cmUoYnVpbGRfbnVt
YmVyKV0KLSAgICAgICAgICAgIGxheW91dF90ZXN0X3Jlc3VsdHMgPSBMYXlvdXRUZXN0UmVzdWx0
cyhyZXN1bHRzKQorICAgICAgICAgICAgbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IExheW91dFRlc3RS
ZXN1bHRzKHJlc3VsdHMsIEZhbHNlKQogICAgICAgICAgICAgZGVmIG1vY2tfbGF5b3V0X3Rlc3Rf
cmVzdWx0cygpOgogICAgICAgICAgICAgICAgIHJldHVybiBsYXlvdXRfdGVzdF9yZXN1bHRzCiAg
ICAgICAgICAgICBidWlsZC5sYXlvdXRfdGVzdF9yZXN1bHRzID0gbW9ja19sYXlvdXRfdGVzdF9y
ZXN1bHRzCkBAIC02MSw3ICs2MSw3IEBAIGNsYXNzIEJ1aWxkZXJUZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKICAgICAgICAgc2VsZi5faW5zdGFsbF9mZXRjaF9idWlsZChsYW1iZGEgYnVpbGRfbnVt
YmVyOiBbInRlc3QxIiwgInRlc3QyIl0pCiAKICAgICBkZWYgdGVzdF9sYXRlc3RfbGF5b3V0X3Rl
c3RfcmVzdWx0cyhzZWxmKToKLSAgICAgICAgc2VsZi5idWlsZGVyLmZldGNoX2xheW91dF90ZXN0
X3Jlc3VsdHMgPSBsYW1iZGEgcmVzdWx0c191cmw6IExheW91dFRlc3RSZXN1bHRzKFtzZWxmLl9t
b2NrX3Rlc3RfcmVzdWx0KHRlc3RuYW1lKSBmb3IgdGVzdG5hbWUgaW4gWyJ0ZXN0MSIsICJ0ZXN0
MiJdXSkKKyAgICAgICAgc2VsZi5idWlsZGVyLmZldGNoX2xheW91dF90ZXN0X3Jlc3VsdHMgPSBs
YW1iZGEgcmVzdWx0c191cmw6IExheW91dFRlc3RSZXN1bHRzKFtzZWxmLl9tb2NrX3Rlc3RfcmVz
dWx0KHRlc3RuYW1lKSBmb3IgdGVzdG5hbWUgaW4gWyJ0ZXN0MSIsICJ0ZXN0MiJdXSwgRmFsc2Up
CiAgICAgICAgIHNlbGYuYnVpbGRlci5hY2N1bXVsYXRlZF9yZXN1bHRzX3VybCA9IGxhbWJkYTog
Imh0dHA6Ly9kdW1teV91cmwub3JnIgogICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5idWls
ZGVyLmxhdGVzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKCkpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weQppbmRleCBiOGNi
MTU3Li5lZGU0ZmJjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvbGF5b3V0dGVzdHJlc3VsdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vbmV0L2xheW91dHRlc3RyZXN1bHRzLnB5CkBAIC0yOCw3ICsyOCw3IEBACiAKIGltcG9ydCBs
b2dnaW5nCiAKLWZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5yZXN1bHRzanNvbnBhcnNlciBpbXBv
cnQgUmVzdWx0c0pTT05QYXJzZXIKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5yZXN1bHRzanNv
bnBhcnNlciBpbXBvcnQgUGFyc2VkSlNPTlJlc3VsdHMKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0
eS5CZWF1dGlmdWxTb3VwIGltcG9ydCBCZWF1dGlmdWxTb3VwLCBTb3VwU3RyYWluZXIKIGZyb20g
d2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9yZXN1bHRzCiBmcm9tIHdl
YmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfZmFpbHVyZXMKQEAgLTUwLDI3
ICs1MCwxNiBAQCBjbGFzcyBMYXlvdXRUZXN0UmVzdWx0cyhvYmplY3QpOgogICAgIGRlZiByZXN1
bHRzX2Zyb21fc3RyaW5nKGNscywgc3RyaW5nKToKICAgICAgICAgaWYgbm90IHN0cmluZzoKICAg
ICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIHRlc3RfcmVzdWx0cyA9IFJlc3VsdHNKU09O
UGFyc2VyLnBhcnNlX3Jlc3VsdHNfanNvbihzdHJpbmcpCi0gICAgICAgIGlmIG5vdCB0ZXN0X3Jl
c3VsdHM6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4gY2xzKHRlc3Rf
cmVzdWx0cykKKyAgICAgICAgZnVsbF9yZXN1bHRzID0gUGFyc2VkSlNPTlJlc3VsdHMoc3RyaW5n
KQorICAgICAgICByZXR1cm4gY2xzKGZ1bGxfcmVzdWx0cy50ZXN0X3Jlc3VsdHMoKSwgZnVsbF9y
ZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCkpCiAKLSAgICBkZWYgX19pbml0
X18oc2VsZiwgdGVzdF9yZXN1bHRzKToKLSAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzID0gdGVz
dF9yZXN1bHRzCi0gICAgICAgIHNlbGYuX2ZhaWx1cmVfbGltaXRfY291bnQgPSBOb25lCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfcmVzdWx0cywgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVf
bGltaXQpOgogICAgICAgICBzZWxmLl91bml0X3Rlc3RfZmFpbHVyZXMgPSBbXQorICAgICAgICBz
ZWxmLl90ZXN0X3Jlc3VsdHMgPSB0ZXN0X3Jlc3VsdHMKKyAgICAgICAgc2VsZi5fZGlkX2V4Y2Vl
ZF90ZXN0X2ZhaWx1cmVfbGltaXQgPSBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdAogCi0g
ICAgIyBGSVhNRTogcnVuLXdlYmtpdC10ZXN0cyBzaG91bGQgc3RvcmUgdGhlIC0tZXhpdC1hZnRl
ci1OLWZhaWx1cmVzIHZhbHVlCi0gICAgIyAob3Igc29tZSBpbmRpY2F0aW9uIG9mIGVhcmx5IGV4
aXQpIHNvbWV3aGVyZSBpbiB0aGUgcmVzdWx0cy5qc29uCi0gICAgIyBmaWxlLiAgVW50aWwgaXQg
ZG9lcywgY2FsbGVycyBzaG91bGQgc2V0IHRoZSBsaW1pdCB0bwotICAgICMgLS1leGl0LWFmdGVy
LU4tZmFpbHVyZXMgdmFsdWUgdXNlZCBpbiB0aGF0IHJ1bi4gIENvbnN1bWVycyBvZiBMYXlvdXRU
ZXN0UmVzdWx0cwotICAgICMgbWF5IHVzZSB0aGF0IHZhbHVlIHRvIGtub3cgaWYgYWJzZW5jZSBm
cm9tIHRoZSBmYWlsdXJlIGxpc3QgbWVhbnMgUEFTUy4KLSAgICAjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODQ4MQotICAgIGRlZiBzZXRfZmFpbHVyZV9saW1pdF9j
b3VudChzZWxmLCBsaW1pdCk6Ci0gICAgICAgIHNlbGYuX2ZhaWx1cmVfbGltaXRfY291bnQgPSBs
aW1pdAotCi0gICAgZGVmIGZhaWx1cmVfbGltaXRfY291bnQoc2VsZik6Ci0gICAgICAgIHJldHVy
biBzZWxmLl9mYWlsdXJlX2xpbWl0X2NvdW50CisgICAgZGVmIGRpZF9leGNlZWRfdGVzdF9mYWls
dXJlX2xpbWl0KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fZGlkX2V4Y2VlZF90ZXN0X2Zh
aWx1cmVfbGltaXQKIAogICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6CiAgICAgICAgIHJldHVy
biBzZWxmLl90ZXN0X3Jlc3VsdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0c191bml0dGVzdC5weQppbmRleCBl
YTRlOTI3Li44NTIwNjkzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvbGF5b3V0dGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5CkBAIC0zNiwx
MSArMzYsNiBAQCBmcm9tIHdlYmtpdHB5LnRoaXJkcGFydHkuQmVhdXRpZnVsU291cCBpbXBvcnQg
QmVhdXRpZnVsU291cAogCiAKIGNsYXNzIExheW91dFRlc3RSZXN1bHRzVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6Ci0gICAgZGVmIHRlc3Rfc2V0X2ZhaWx1cmVfbGltaXRfY291bnQoc2VsZik6Ci0g
ICAgICAgIHJlc3VsdHMgPSBMYXlvdXRUZXN0UmVzdWx0cyhbXSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRJc05vbmUocmVzdWx0cy5mYWlsdXJlX2xpbWl0X2NvdW50KCkpCi0gICAgICAgIHJlc3VsdHMu
c2V0X2ZhaWx1cmVfbGltaXRfY291bnQoMTApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVz
dWx0cy5mYWlsdXJlX2xpbWl0X2NvdW50KCksIDEwKQogCiAgICAgZGVmIHRlc3RfcmVzdWx0c19m
cm9tX3N0cmluZyhzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoTGF5b3V0VGVzdFJl
c3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhOb25lKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlci5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlci5weQppbmRleCAxYTJhNzBm
Li5iMDE4ZDkwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQv
cmVzdWx0c2pzb25wYXJzZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L3Jlc3VsdHNqc29ucGFyc2VyLnB5CkBAIC0xMzcsOSArMTM3LDggQEAgY2xhc3MgSlNPTlRl
c3RSZXN1bHQob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0
KHNlbGYuX3Rlc3RfbmFtZSwgc2VsZi5fZmFpbHVyZXMoKSkKIAogCi1jbGFzcyBSZXN1bHRzSlNP
TlBhcnNlcihvYmplY3QpOgotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBwYXJzZV9yZXN1bHRz
X2pzb24oY2xzLCBqc29uX3N0cmluZyk6CitjbGFzcyBQYXJzZWRKU09OUmVzdWx0cyhvYmplY3Qp
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBqc29uX3N0cmluZyk6CiAgICAgICAgIGlmIG5vdCBq
c29uX3Jlc3VsdHNfZ2VuZXJhdG9yLmhhc19qc29uX3dyYXBwZXIoanNvbl9zdHJpbmcpOgogICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKIApAQCAtMTQ5LDcgKzE0OCwyMSBAQCBjbGFzcyBSZXN1bHRz
SlNPTlBhcnNlcihvYmplY3QpOgogICAgICAgICBqc29uX3Jlc3VsdHMgPSBbXQogICAgICAgICBm
b3JfZWFjaF90ZXN0KGpzb25fZGljdFsndGVzdHMnXSwgbGFtYmRhIHRlc3QsIHJlc3VsdDoganNv
bl9yZXN1bHRzLmFwcGVuZChKU09OVGVzdFJlc3VsdCh0ZXN0LCByZXN1bHQpKSkKIAotICAgICAg
ICAjIEZJWE1FOiBXaGF0J3MgdGhlIHNob3J0IHNleHkgcHl0aG9uIHdheSB0byBmaWx0ZXIgTm9u
ZT8KLSAgICAgICAgIyBJIHdvdWxkIHVzZSBbZm9vLmJhcigpIGZvciBmb28gaW4gZm9vcyBpZiBm
b28uYmFyKCldIGJ1dCBiYXIoKSBpcyBleHBlbnNpdmUuCi0gICAgICAgIHVuZXhwZWN0ZWRfZmFp
bHVyZXMgPSBbcmVzdWx0LnRlc3RfcmVzdWx0KCkgZm9yIHJlc3VsdCBpbiBqc29uX3Jlc3VsdHMg
aWYgbm90IHJlc3VsdC5kaWRfcGFzc19vcl9ydW5fYXNfZXhwZWN0ZWQoKV0KLSAgICAgICAgcmV0
dXJuIGZpbHRlcihsYW1iZGEgYTogYSwgdW5leHBlY3RlZF9mYWlsdXJlcykKKyAgICAgICAgdW5l
eHBlY3RlZF9mYWlsdXJlcyA9IFtdCisKKyAgICAgICAgZm9yIGpzb25fcmVzdWx0IGluIGpzb25f
cmVzdWx0czoKKyAgICAgICAgICAgIGlmIGpzb25fcmVzdWx0LmRpZF9wYXNzX29yX3J1bl9hc19l
eHBlY3RlZCgpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIHRlc3Rf
cmVzdWx0ID0ganNvbl9yZXN1bHQudGVzdF9yZXN1bHQoKQorICAgICAgICAgICAgaWYgdGVzdF9y
ZXN1bHQ6CisgICAgICAgICAgICAgICAgdW5leHBlY3RlZF9mYWlsdXJlcy5hcHBlbmQodGVzdF9y
ZXN1bHQpCisKKyAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzID0gdW5leHBlY3RlZF9mYWlsdXJl
cworICAgICAgICBzZWxmLl9pbnRlcnJ1cHRlZCA9IGpzb25fZGljdFsiaW50ZXJydXB0ZWQiXQor
CisgICAgZGVmIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KHNlbGYpOgorICAgICAgICBy
ZXR1cm4gc2VsZi5faW50ZXJydXB0ZWQKKworICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6Cisg
ICAgICAgIHJldHVybiBzZWxmLl90ZXN0X3Jlc3VsdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlcl91bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlcl91bml0dGVz
dC5weQppbmRleCA1ZTdkM2E2Li5jZmMzZDZiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRlc3QucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2VyX3VuaXR0ZXN0
LnB5CkBAIC0yOCwxMiArMjgsMTIgQEAKIAogaW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAog
Ci1mcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQucmVzdWx0c2pzb25wYXJzZXIgaW1wb3J0IFJlc3Vs
dHNKU09OUGFyc2VyCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQucmVzdWx0c2pzb25wYXJzZXIg
aW1wb3J0IFBhcnNlZEpTT05SZXN1bHRzCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2Rl
bHMgaW1wb3J0IHRlc3RfcmVzdWx0cwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxz
IGltcG9ydCB0ZXN0X2ZhaWx1cmVzCiAKIAotY2xhc3MgUmVzdWx0c0pTT05QYXJzZXJUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKK2NsYXNzIFBhcnNlZEpTT05SZXN1bHRzVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgIyBUaGUgcmVhbCBmaWxlcyBoYXZlIG5vIHdoaXRlc3BhY2UsIGJ1dCBu
ZXdsaW5lcyBtYWtlIHRoaXMgbXVjaCBtb3JlIHJlYWRhYmxlLgogCiAgICAgX2V4YW1wbGVfZnVs
bF9yZXN1bHRzX2pzb24gPSAiIiJBRERfUkVTVUxUUyh7CkBAIC03Miw2ICs3Miw3IEBAIGNsYXNz
IFJlc3VsdHNKU09OUGFyc2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICB9LAorICAgICJpbnRlcnJ1cHRlZCI6IHRydWUsCiAgICAgInNraXBw
ZWQiOiA0NTAsCiAgICAgIm51bV9yZWdyZXNzaW9ucyI6IDE1LAogICAgICJsYXlvdXRfdGVzdHNf
ZGlyIjogIlwvYlwvYnVpbGRcL3NsYXZlXC9XZWJraXRfTWFjMTBfNVwvYnVpbGRcL3NyY1wvdGhp
cmRfcGFydHlcL1dlYktpdFwvTGF5b3V0VGVzdHMiLApAQCAtODgsNSArODksNyBAQCBjbGFzcyBS
ZXN1bHRzSlNPTlBhcnNlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgdGVz
dF9yZXN1bHRzLlRlc3RSZXN1bHQoInN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEcm9wU2hhZG93
RWxlbWVudC1kb20tc3RkRGV2aWF0aW9uLWF0dHIuaHRtbCIsIFt0ZXN0X2ZhaWx1cmVzLkZhaWx1
cmVJbWFnZUhhc2hNaXNtYXRjaCgpXSwgMCksCiAgICAgICAgICAgICB0ZXN0X3Jlc3VsdHMuVGVz
dFJlc3VsdCgiZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLmh0bWwiLCBbdGVzdF9mYWls
dXJlcy5GYWlsdXJlVGV4dE1pc21hdGNoKCksIHRlc3RfZmFpbHVyZXMuRmFpbHVyZUltYWdlSGFz
aE1pc21hdGNoKCksIHRlc3RfZmFpbHVyZXMuRmFpbHVyZUF1ZGlvTWlzbWF0Y2goKV0sIDApLAog
ICAgICAgICBdCi0gICAgICAgIHJlc3VsdHMgPSBSZXN1bHRzSlNPTlBhcnNlci5wYXJzZV9yZXN1
bHRzX2pzb24oc2VsZi5fZXhhbXBsZV9mdWxsX3Jlc3VsdHNfanNvbikKKyAgICAgICAgZnVsbF9y
ZXN1bHRzID0gUGFyc2VkSlNPTlJlc3VsdHMoc2VsZi5fZXhhbXBsZV9mdWxsX3Jlc3VsdHNfanNv
bikKKyAgICAgICAgcmVzdWx0cyA9IGZ1bGxfcmVzdWx0cy50ZXN0X3Jlc3VsdHMoKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX3Jlc3VsdHMsIHJlc3VsdHMpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoVHJ1ZSwgZnVsbF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJl
X2xpbWl0KCkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Nv
bW1pdHF1ZXVldGFza191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5CmluZGV4IDFlYWJkZTEuLmJiZDAzMDIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNr
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0
cXVldWV0YXNrX3VuaXR0ZXN0LnB5CkBAIC03Myw3ICs3Myw3IEBAIGNsYXNzIE1vY2tDb21taXRR
dWV1ZShDb21taXRRdWV1ZVRhc2tEZWxlZ2F0ZSk6CiAgICAgICAgIHJldHVybiBFeHBlY3RlZEZh
aWx1cmVzKCkKIAogICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBO
b25lCisgICAgICAgIHJldHVybiBMYXlvdXRUZXN0UmVzdWx0cyhbXSwgVHJ1ZSkKIAogICAgIGRl
ZiByZXBvcnRfZmxha3lfdGVzdHMoc2VsZiwgcGF0Y2gsIGZsYWt5X3Jlc3VsdHMsIHJlc3VsdHNf
YXJjaGl2ZSk6CiAgICAgICAgIGZsYWt5X3Rlc3RzID0gW3Jlc3VsdC5maWxlbmFtZSBmb3IgcmVz
dWx0IGluIGZsYWt5X3Jlc3VsdHNdCkBAIC0xMTAsOSArMTEwLDcgQEAgY2xhc3MgRmFpbGluZ1Rl
c3RDb21taXRRdWV1ZShNb2NrQ29tbWl0UXVldWUpOgogICAgICAgICAjIERvZXNuJ3QgbWFrZSBz
ZW5zZSB0byBhc2sgZm9yIHRoZSB0ZXN0X3Jlc3VsdHMgdW50aWwgdGhlIHRlc3RzIGhhdmUgcnVu
IGF0IGxlYXN0IG9uY2UuCiAgICAgICAgIGFzc2VydChzZWxmLl90ZXN0X3J1bl9jb3VudGVyID49
IDApCiAgICAgICAgIGZhaWx1cmVzX2Zvcl9ydW4gPSBzZWxmLl90ZXN0X2ZhaWx1cmVfcGxhbltz
ZWxmLl90ZXN0X3J1bl9jb3VudGVyXQotICAgICAgICByZXN1bHRzID0gTGF5b3V0VGVzdFJlc3Vs
dHMobWFwKHNlbGYuX21vY2tfdGVzdF9yZXN1bHQsIGZhaWx1cmVzX2Zvcl9ydW4pKQotICAgICAg
ICAjIFRoaXMgbWFrZXMgdGhlIHJlc3VsdHMgdHJ1c3RhYmxlIGJ5IEV4cGVjdGVkRmFpbHVyZXMu
Ci0gICAgICAgIHJlc3VsdHMuc2V0X2ZhaWx1cmVfbGltaXRfY291bnQoMTApCisgICAgICAgIHJl
c3VsdHMgPSBMYXlvdXRUZXN0UmVzdWx0cyhtYXAoc2VsZi5fbW9ja190ZXN0X3Jlc3VsdCwgZmFp
bHVyZXNfZm9yX3J1biksIGxlbihzZWxmLl90ZXN0X2ZhaWx1cmVfcGxhbltzZWxmLl90ZXN0X3J1
bl9jb3VudGVyXSkgPj0gMTApCiAgICAgICAgIHJldHVybiByZXN1bHRzCiAKIApAQCAtMjgyLDcg
KzI4MCw3IEBAIGNvbW1hbmRfZmFpbGVkOiBmYWlsdXJlX21lc3NhZ2U9J1VuYWJsZSB0byBidWls
ZCB3aXRob3V0IHBhdGNoJyBzY3JpcHRfZXJyb3I9J01PCiAgICAgICAgIF0pCiAgICAgICAgICMg
Q29tbWl0UXVldWVUYXNrIHdpbGwgb25seSByZXBvcnQgZmxha3kgdGVzdHMgaWYgd2Ugc3VjY2Vz
c2Z1bGx5IHBhcnNlZAogICAgICAgICAjIHJlc3VsdHMuanNvbiBhbmQgcmV0dXJuZWQgYSBMYXlv
dXRUZXN0UmVzdWx0cyBvYmplY3QsIHNvIHdlIGZha2Ugb25lLgotICAgICAgICBjb21taXRfcXVl
dWUudGVzdF9yZXN1bHRzID0gbGFtYmRhOiBMYXlvdXRUZXN0UmVzdWx0cyhbXSkKKyAgICAgICAg
Y29tbWl0X3F1ZXVlLnRlc3RfcmVzdWx0cyA9IGxhbWJkYTogTGF5b3V0VGVzdFJlc3VsdHMoW10s
IFRydWUpCiAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJydW5fd2Via2l0X3BhdGNoOiBbJ2Ns
ZWFuJ10KIGNvbW1hbmRfcGFzc2VkOiBzdWNjZXNzX21lc3NhZ2U9J0NsZWFuZWQgd29ya2luZyBk
aXJlY3RvcnknIHBhdGNoPScxMDAwMCcKIHJ1bl93ZWJraXRfcGF0Y2g6IFsndXBkYXRlJ10KQEAg
LTMxMyw3ICszMTEsNyBAQCBjb21tYW5kX3Bhc3NlZDogc3VjY2Vzc19tZXNzYWdlPSdMYW5kZWQg
cGF0Y2gnIHBhdGNoPScxMDAwMCcKICAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgICBTY3Jp
cHRFcnJvcigiTU9DSyB0ZXN0cyBmYWlsdXJlIiksCiAgICAgICAgIF0pCi0gICAgICAgIGNvbW1p
dF9xdWV1ZS50ZXN0X3Jlc3VsdHMgPSBsYW1iZGE6IExheW91dFRlc3RSZXN1bHRzKFtdKQorICAg
ICAgICBjb21taXRfcXVldWUudGVzdF9yZXN1bHRzID0gbGFtYmRhOiBMYXlvdXRUZXN0UmVzdWx0
cyhbXSwgVHJ1ZSkKICAgICAgICAgIyBJdCdzIHBvc3NpYmxlIGRlbGVnYXRlIHRvIGZhaWwgdG8g
YXJjaGl2ZSBsYXlvdXQgdGVzdHMsIGRvbid0IHRyeSB0byByZXBvcnQKICAgICAgICAgIyBmbGFr
eSB0ZXN0cyB3aGVuIHRoYXQgaGFwcGVucy4KICAgICAgICAgY29tbWl0X3F1ZXVlLmFyY2hpdmVf
bGFzdF90ZXN0X3Jlc3VsdHMgPSBsYW1iZGEgcGF0Y2g6IE5vbmUKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlcy5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlcy5weQppbmRleCBjMGNmZTIx
Li42YjI1MmNmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4
cGVjdGVkZmFpbHVyZXMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9l
eHBlY3RlZGZhaWx1cmVzLnB5CkBAIC0zOCw3ICszOCw5IEBAIGNsYXNzIEV4cGVjdGVkRmFpbHVy
ZXMob2JqZWN0KToKIAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBfc2hvdWxkX3RydXN0KGNs
cywgcmVzdWx0cyk6Ci0gICAgICAgIHJldHVybiBib29sKGNscy5faGFzX2ZhaWx1cmVzKHJlc3Vs
dHMpIGFuZCByZXN1bHRzLmZhaWx1cmVfbGltaXRfY291bnQoKSBhbmQgbGVuKHJlc3VsdHMuZmFp
bGluZ190ZXN0cygpKSA8IHJlc3VsdHMuZmFpbHVyZV9saW1pdF9jb3VudCgpKQorICAgICAgICBp
ZiByZXN1bHRzOgorICAgICAgICAgICAgcmV0dXJuIG5vdCByZXN1bHRzLmRpZF9leGNlZWRfdGVz
dF9mYWlsdXJlX2xpbWl0KCkKKyAgICAgICAgcmV0dXJuIEZhbHNlCiAKICAgICBkZWYgZmFpbHVy
ZXNfd2VyZV9leHBlY3RlZChzZWxmLCByZXN1bHRzKToKICAgICAgICAgaWYgbm90IHNlbGYuX2lz
X3RydXN0d29ydGh5OgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9leHBlY3RlZGZhaWx1cmVzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzX3VuaXR0ZXN0LnB5CmluZGV4IGI2Mzk4NTYuLmNhMDIw
YzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRm
YWlsdXJlc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHkKQEAgLTMyLDEyICszMiwxMiBAQCBmcm9tIHdl
YmtpdHB5LnRvb2wuYm90LmV4cGVjdGVkZmFpbHVyZXMgaW1wb3J0IEV4cGVjdGVkRmFpbHVyZXMK
IAogCiBjbGFzcyBNb2NrUmVzdWx0cyhvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBm
YWlsaW5nX3Rlc3RzPVtdLCBmYWlsdXJlX2xpbWl0PTEwKToKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgZmFpbGluZ190ZXN0cz1bXSwgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9RmFsc2Up
OgogICAgICAgICBzZWxmLl9mYWlsaW5nX3Rlc3RzID0gZmFpbGluZ190ZXN0cwotICAgICAgICBz
ZWxmLl9mYWlsdXJlX2xpbWl0X2NvdW50ID0gZmFpbHVyZV9saW1pdAorICAgICAgICBzZWxmLl9k
aWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCA9IGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xp
bWl0CiAKLSAgICBkZWYgZmFpbHVyZV9saW1pdF9jb3VudChzZWxmKToKLSAgICAgICAgcmV0dXJu
IHNlbGYuX2ZhaWx1cmVfbGltaXRfY291bnQKKyAgICBkZWYgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1
cmVfbGltaXQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9kaWRfZXhjZWVkX3Rlc3RfZmFp
bHVyZV9saW1pdAogCiAgICAgZGVmIGZhaWxpbmdfdGVzdHMoc2VsZik6CiAgICAgICAgIHJldHVy
biBzZWxmLl9mYWlsaW5nX3Rlc3RzCkBAIC00OSwxMiArNDksMTIgQEAgY2xhc3MgRXhwZWN0ZWRG
YWlsdXJlc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfY2FuX3RydXN0
X3Jlc3VsdHMoc2VsZik6CiAgICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTm9uZSwgRmFs
c2UpCi0gICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190
ZXN0cz1bXSwgZmFpbHVyZV9saW1pdD1Ob25lKSwgRmFsc2UpCi0gICAgICAgIHNlbGYuX2Fzc2Vy
dF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bXSwgZmFpbHVyZV9saW1pdD0x
MCksIEZhbHNlKQotICAgICAgICBzZWxmLl9hc3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1bHRzKGZh
aWxpbmdfdGVzdHM9WzFdLCBmYWlsdXJlX2xpbWl0PU5vbmUpLCBGYWxzZSkKLSAgICAgICAgc2Vs
Zi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rlc3RzPVsxXSwgZmFpbHVy
ZV9saW1pdD0yKSwgVHJ1ZSkKLSAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVz
dWx0cyhmYWlsaW5nX3Rlc3RzPVsxXSwgZmFpbHVyZV9saW1pdD0xKSwgRmFsc2UpCi0gICAgICAg
IHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bMSwgMl0s
IGZhaWx1cmVfbGltaXQ9MSksIEZhbHNlKQorICAgICAgICBzZWxmLl9hc3NlcnRfY2FuX3RydXN0
KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9W10sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xp
bWl0PUZhbHNlKSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVz
dWx0cyhmYWlsaW5nX3Rlc3RzPVtdLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1UcnVl
KSwgRmFsc2UpCisgICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFp
bGluZ190ZXN0cz1bMV0sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PUZhbHNlKSwgVHJ1
ZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rl
c3RzPVsxXSwgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9VHJ1ZSksIEZhbHNlKQorICAg
ICAgICBzZWxmLl9hc3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9WzEs
IDJdLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1GYWxzZSksIFRydWUpCisgICAgICAg
IHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bMSwgMl0s
IGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PVRydWUpLCBGYWxzZSkKIAogICAgIGRlZiBf
YXNzZXJ0X2V4cGVjdGVkKHNlbGYsIGV4cGVjdGVkX2ZhaWx1cmVzLCBmYWlsdXJlcywgZXhwZWN0
ZWQpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX2ZhaWx1cmVzLmZhaWx1cmVz
X3dlcmVfZXhwZWN0ZWQoTW9ja1Jlc3VsdHMoZmFpbHVyZXMpKSwgZXhwZWN0ZWQpCkBAIC03OSwx
NyArNzksMTcgQEAgY2xhc3MgRXhwZWN0ZWRGYWlsdXJlc1Rlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICBmYWlsdXJlcy51cGRhdGUoTW9ja1Jlc3VsdHMoWydmb28uaHRtbCddKSkKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2Vy
dmVkKE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmFyLmh0bWwnXSkpLCBzZXQoWydiYXIuaHRt
bCddKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1
cmVzX29ic2VydmVkKE1vY2tSZXN1bHRzKFsnYmF6Lmh0bWwnXSkpLCBzZXQoWydiYXouaHRtbCdd
KSkKLSAgICAgICAgdW5ib3VuZGVkX3Jlc3VsdHMgPSBNb2NrUmVzdWx0cyhbJ2Jhei5odG1sJywg
J3F1eC5odG1sJywgJ3RhY28uaHRtbCddLCBmYWlsdXJlX2xpbWl0PTMpCisgICAgICAgIHVuYm91
bmRlZF9yZXN1bHRzID0gTW9ja1Jlc3VsdHMoWydiYXouaHRtbCcsICdxdXguaHRtbCcsICd0YWNv
Lmh0bWwnXSwgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9VHJ1ZSkKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKHVuYm91
bmRlZF9yZXN1bHRzKSwgc2V0KFsnYmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10p
KQotICAgICAgICB1bmJvdW5kZWRfcmVzdWx0c193aXRoX2V4aXN0aW5nX2ZhaWx1cmUgPSBNb2Nr
UmVzdWx0cyhbJ2Zvby5odG1sJywgJ2Jhei5odG1sJywgJ3F1eC5odG1sJywgJ3RhY28uaHRtbCdd
LCBmYWlsdXJlX2xpbWl0PTQpCisgICAgICAgIHVuYm91bmRlZF9yZXN1bHRzX3dpdGhfZXhpc3Rp
bmdfZmFpbHVyZSA9IE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmF6Lmh0bWwnLCAncXV4Lmh0
bWwnLCAndGFjby5odG1sJ10sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PVRydWUpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNl
cnZlZCh1bmJvdW5kZWRfcmVzdWx0c193aXRoX2V4aXN0aW5nX2ZhaWx1cmUpLCBzZXQoWydiYXou
aHRtbCcsICdxdXguaHRtbCcsICd0YWNvLmh0bWwnXSkpCiAKICAgICBkZWYgdGVzdF91bmV4cGVj
dGVkX2ZhaWx1cmVzX29ic2VydmVkX3doZW5fdHJlZV9pc19ob3NlZChzZWxmKToKICAgICAgICAg
ZmFpbHVyZXMgPSBFeHBlY3RlZEZhaWx1cmVzKCkKLSAgICAgICAgZmFpbHVyZXMudXBkYXRlKE1v
Y2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmFuYW5hLmh0bWwnXSwgZmFpbHVyZV9saW1pdD0yKSkK
KyAgICAgICAgZmFpbHVyZXMudXBkYXRlKE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmFuYW5h
Lmh0bWwnXSwgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9VHJ1ZSkpCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZChNb2Nr
UmVzdWx0cyhbJ2Zvby5odG1sJywgJ2Jhci5odG1sJ10pKSwgTm9uZSkKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKE1vY2tSZXN1
bHRzKFsnYmF6Lmh0bWwnXSkpLCBOb25lKQotICAgICAgICB1bmJvdW5kZWRfcmVzdWx0cyA9IE1v
Y2tSZXN1bHRzKFsnYmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10sIGZhaWx1cmVf
bGltaXQ9MykKKyAgICAgICAgdW5ib3VuZGVkX3Jlc3VsdHMgPSBNb2NrUmVzdWx0cyhbJ2Jhei5o
dG1sJywgJ3F1eC5odG1sJywgJ3RhY28uaHRtbCddLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9s
aW1pdD1UcnVlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZhaWx1cmVzLnVuZXhwZWN0ZWRf
ZmFpbHVyZXNfb2JzZXJ2ZWQodW5ib3VuZGVkX3Jlc3VsdHMpLCBOb25lKQotICAgICAgICB1bmJv
dW5kZWRfcmVzdWx0c193aXRoX2V4aXN0aW5nX2ZhaWx1cmUgPSBNb2NrUmVzdWx0cyhbJ2Zvby5o
dG1sJywgJ2Jhei5odG1sJywgJ3F1eC5odG1sJywgJ3RhY28uaHRtbCddLCBmYWlsdXJlX2xpbWl0
PTQpCisgICAgICAgIHVuYm91bmRlZF9yZXN1bHRzX3dpdGhfZXhpc3RpbmdfZmFpbHVyZSA9IE1v
Y2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1s
J10sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PVRydWUpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCh1bmJvdW5kZWRf
cmVzdWx0c193aXRoX2V4aXN0aW5nX2ZhaWx1cmUpLCBOb25lKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlci5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXIucHkK
aW5kZXggYTllNTNkZC4uYzMyOGU1YiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlci5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyLnB5CkBAIC03MCwxMCAr
NzAsNiBAQCBjbGFzcyBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcihvYmplY3QpOgogICAgICAgICBs
YXlvdXRfdGVzdF9yZXN1bHRzID0gc2VsZi5fY3JlYXRlX2xheW91dF90ZXN0X3Jlc3VsdHMoKQog
ICAgICAgICB1bml0X3Rlc3RfcmVzdWx0cyA9IHNlbGYuX2NyZWF0ZV91bml0X3Rlc3RfcmVzdWx0
cygpCiAgICAgICAgIGlmIGxheW91dF90ZXN0X3Jlc3VsdHM6Ci0gICAgICAgICAgICAjIEZJWE1F
OiBUaGlzIGlzIHVzZWQgdG8gZGV0ZWN0IGlmIHdlIGhhZCBOIGZhaWx1cmVzIGR1ZSB0bwotICAg
ICAgICAgICAgIyBOIHRlc3RzIGZhaWxpbmcsIG9yIGlmIHdlIGhpdCB0aGUgImV4aXQtYWZ0ZXIt
bi1mYWlsdXJlcyIgbGltaXQuCi0gICAgICAgICAgICAjIFRoZXNlIGRheXMgd2UgY291bGQganVz
dCBjaGVjayBmb3IgdGhlICJpbnRlcnJ1cHRlZCIga2V5IGluIHJlc3VsdHMuanNvbiBpbnN0ZWFk
IQotICAgICAgICAgICAgbGF5b3V0X3Rlc3RfcmVzdWx0cy5zZXRfZmFpbHVyZV9saW1pdF9jb3Vu
dChSdW5UZXN0cy5OT05fSU5URVJBQ1RJVkVfRkFJTFVSRV9MSU1JVF9DT1VOVCkKICAgICAgICAg
ICAgIGlmIHVuaXRfdGVzdF9yZXN1bHRzOgogICAgICAgICAgICAgICAgIGxheW91dF90ZXN0X3Jl
c3VsdHMuYWRkX3VuaXRfdGVzdF9mYWlsdXJlcyh1bml0X3Rlc3RfcmVzdWx0cykKICAgICAgICAg
cmV0dXJuIGxheW91dF90ZXN0X3Jlc3VsdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXJfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0
ZXN0LnB5CmluZGV4IGM3NzliYjguLjcxYTRlZDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXJfdW5pdHRlc3QucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRl
cl91bml0dGVzdC5weQpAQCAtNjgsNyArNjgsNyBAQCBjbGFzcyBMYXlvdXRUZXN0UmVzdWx0c1Jl
YWRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X21pc3NpbmdfdW5pdF90
ZXN0X3Jlc3VsdHNfcGF0aChzZWxmKToKICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKICAgICAg
ICAgcmVhZGVyID0gTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIoaG9zdCwgIi9tb2NrLXJlc3VsdHMi
LCAiL3Zhci9sb2dzIikKLSAgICAgICAgcmVhZGVyLl9jcmVhdGVfbGF5b3V0X3Rlc3RfcmVzdWx0
cyA9IGxhbWJkYTogTGF5b3V0VGVzdFJlc3VsdHMoW10pCisgICAgICAgIHJlYWRlci5fY3JlYXRl
X2xheW91dF90ZXN0X3Jlc3VsdHMgPSBsYW1iZGE6IExheW91dFRlc3RSZXN1bHRzKFtdLCBGYWxz
ZSkKICAgICAgICAgcmVhZGVyLl9jcmVhdGVfdW5pdF90ZXN0X3Jlc3VsdHMgPSBsYW1iZGE6IE5v
bmUKICAgICAgICAgIyBsYXlvdXRfdGVzdF9yZXN1bHRzIHNob3VsZG4ndCByYWlzZSBldmVuIGlm
IHRoZSB1bml0IHRlc3RzIHhtbCBmaWxlIGlzIG1pc3NpbmcuCiAgICAgICAgIHNlbGYuYXNzZXJ0
SXNOb3ROb25lKHJlYWRlci5yZXN1bHRzKCksIE5vbmUpCkBAIC04MSwxMCArODEsOSBAQCBjbGFz
cyBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBzZWxmLmFzc2VydElzTm9uZShyZWFkZXIucmVzdWx0cygpKQogICAgICAgICByZWFkZXIuX3Jl
YWRfZmlsZV9jb250ZW50cyA9IGxhbWJkYSBwYXRoOiAiIgogICAgICAgICBzZWxmLmFzc2VydElz
Tm9uZShyZWFkZXIucmVzdWx0cygpKQotICAgICAgICByZWFkZXIuX2NyZWF0ZV9sYXlvdXRfdGVz
dF9yZXN1bHRzID0gbGFtYmRhOiBMYXlvdXRUZXN0UmVzdWx0cyhbXSkKKyAgICAgICAgcmVhZGVy
Ll9jcmVhdGVfbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IGxhbWJkYTogTGF5b3V0VGVzdFJlc3VsdHMo
W10sIEZhbHNlKQogICAgICAgICByZXN1bHRzID0gcmVhZGVyLnJlc3VsdHMoKQogICAgICAgICBz
ZWxmLmFzc2VydElzTm90Tm9uZShyZXN1bHRzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJl
c3VsdHMuZmFpbHVyZV9saW1pdF9jb3VudCgpLCAzMCkgICMgVGhpcyB2YWx1ZSBtYXRjaGVzIFJ1
blRlc3RzLk5PTl9JTlRFUkFDVElWRV9GQUlMVVJFX0xJTUlUX0NPVU5UCiAKICAgICBkZWYgdGVz
dF9hcmNoaXZlX2xhc3RfbGF5b3V0X3Rlc3RfcmVzdWx0cyhzZWxmKToKICAgICAgICAgaG9zdCA9
IE1vY2tIb3N0KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2
ZXJzL3JlYmFzZWxpbmVzZXJ2ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc2VydmVycy9yZWJhc2VsaW5lc2VydmVyX3VuaXR0ZXN0LnB5CmluZGV4IGNiZjkwNzMu
LmYwNzA2M2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJz
L3JlYmFzZWxpbmVzZXJ2ZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3NlcnZlcnMvcmViYXNlbGluZXNlcnZlcl91bml0dGVzdC5weQpAQCAtMjA1LDcgKzIw
NSw3IEBAIGNsYXNzIFJlYmFzZWxpbmVUZXN0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ICAgICAgICBdKQogCiAgICAgZGVmIHRlc3RfZ2F0aGVyX2Jhc2VsaW5lcyhzZWxmKToKLSAgICAg
ICAgZXhhbXBsZV9qc29uID0gcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRlc3QuUmVzdWx0c0pTT05Q
YXJzZXJUZXN0Ll9leGFtcGxlX2Z1bGxfcmVzdWx0c19qc29uCisgICAgICAgIGV4YW1wbGVfanNv
biA9IHJlc3VsdHNqc29ucGFyc2VyX3VuaXR0ZXN0LlBhcnNlZEpTT05SZXN1bHRzVGVzdC5fZXhh
bXBsZV9mdWxsX3Jlc3VsdHNfanNvbgogICAgICAgICByZXN1bHRzX2pzb24gPSBqc29uLmxvYWRz
KHN0cmlwX2pzb25fd3JhcHBlcihleGFtcGxlX2pzb24pKQogICAgICAgICBzZXJ2ZXIgPSBSZWJh
c2VsaW5lU2VydmVyKCkKICAgICAgICAgc2VydmVyLl90ZXN0X2NvbmZpZyA9IGdldF90ZXN0X2Nv
bmZpZygpCi0tIAoxLjkuMyAoQXBwbGUgR2l0LTUwKQoK
</data>
<flag name="review"
          id="263663"
          type_id="1"
          status="-"
          setter="dbates"
    />
    <flag name="commit-queue"
          id="263664"
          type_id="3"
          status="-"
          setter="dbates"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238965</attachid>
            <date>2014-09-30 14:51:14 -0700</date>
            <delta_ts>2014-09-30 15:06:18 -0700</delta_ts>
            <desc>Addresses style points.</desc>
            <filename>0001-LayoutTestResults-and-ExpectedFailures-should-know-a.patch</filename>
            <type>text/plain</type>
            <size>28139</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSAxMGZmNTAyNzFhMDdiMjVlMmQ3ZGZiNWUzOGNiYzY1NjRkNjhhYWIzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDMwIFNlcCAyMDE0IDE0OjQ5OjQ1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
TGF5b3V0VGVzdFJlc3VsdHMgYW5kIEV4cGVjdGVkRmFpbHVyZXMgc2hvdWxkIGtub3cgYWJvdXQg
dGhlCiBpbnRlcnJ1cHRlZCBmbGFnIGZyb20gdGhlIGpzb24gcmVzdWx0cyBmaWxlCiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MjI5CgpSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KCkNoYW5nZXMgTGF5b3V0VGVzdFJlc3VsdHMgdG8gdXNlIHRoZSBpbnRlcnJ1
cHRlZCBmbGFnIGluc3RlYWQgb2YKY291bnRpbmcgZmFpbHVyZXMuCgoqIFNjcmlwdHMvd2Via2l0
cHkvY29tbW9uL25ldC9idWlsZGJvdC9idWlsZGJvdF91bml0dGVzdC5weToKKEJ1aWxkZXJUZXN0
Ll9pbnN0YWxsX2ZldGNoX2J1aWxkLl9tb2NrX2ZldGNoX2J1aWxkKToKKEJ1aWxkZXJUZXN0LnRl
c3RfbGF0ZXN0X2xheW91dF90ZXN0X3Jlc3VsdHMpOgoqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weToKUmVtb3ZlcyBub3Rpb24gb2YgZmFpbHVyZV9saW1p
dF9jb3VudCwgYW5kIGFkZHMKZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQKCihMYXlvdXRU
ZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKToKKExheW91dFRlc3RSZXN1bHRzLl9faW5p
dF9fKToKKExheW91dFRlc3RSZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KToK
KExheW91dFRlc3RSZXN1bHRzKTogRGVsZXRlZC4KKExheW91dFRlc3RSZXN1bHRzLnNldF9mYWls
dXJlX2xpbWl0X2NvdW50KTogRGVsZXRlZC4KKExheW91dFRlc3RSZXN1bHRzLmZhaWx1cmVfbGlt
aXRfY291bnQpOiBEZWxldGVkLgoqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0
ZXN0cmVzdWx0c191bml0dGVzdC5weToKUmVtb3ZlcyB1bml0IHRlc3QgZm9yIGZhaWx1cmVfbGlt
aXRfY291bnQgbG9naWMKCihMYXlvdXRUZXN0UmVzdWx0c1Rlc3QudGVzdF9zZXRfZmFpbHVyZV9s
aW1pdF9jb3VudCk6IERlbGV0ZWQuCiogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3Vs
dHNqc29ucGFyc2VyLnB5OgpJbnN0ZWFkIG9mIHByb3ZpZGluZyBhIGNsYXNzIG1ldGhvZCB0aGF0
IHJldHVybnMgYSBsaXN0IG9mClRlc3RSZXN1bHRzIG9iamVjdHMsIHJlc3VsdHNqc29ucGFyc2Vy
IG5vdyBwcm92aWRlcyBhIGNsYXNzClBhcnNlZEpTT05SZXN1bHRzIHRoYXQgc2VydmVzIGFzIGFu
IGludGVyZmFjZSBiZXR3ZWVuIHRoZSByZXN1bHRzLmpzb24KZmlsZSBhbmQgdGhlIHJlc3Qgb2Yg
d2Via2l0cHkuCgooUGFyc2VkSlNPTlJlc3VsdHMpOgooUGFyc2VkSlNPTlJlc3VsdHMuX19pbml0
X18pOgooUGFyc2VkSlNPTlJlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQpOgoo
UGFyc2VkSlNPTlJlc3VsdHMudGVzdF9yZXN1bHRzKToKKFJlc3VsdHNKU09OUGFyc2VyKTogRGVs
ZXRlZC4KKFJlc3VsdHNKU09OUGFyc2VyLnBhcnNlX3Jlc3VsdHNfanNvbik6IERlbGV0ZWQuCiog
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2VyX3VuaXR0ZXN0LnB5
OgpVcGRhdGVzIHRoZSB1bml0IHRlc3Qgc28gdGhhdCBpdCBjYW4gdGVzdCB0aGUgbmV3IFJlc3Vs
dHNKU09OUGFyc2VyCmNsYXNzLgoKKFBhcnNlZEpTT05SZXN1bHRzVGVzdCk6Cih0ZXN0X2Jhc2lj
KToKKFJlc3VsdHNKU09OUGFyc2VyVGVzdCk6IERlbGV0ZWQuCiogU2NyaXB0cy93ZWJraXRweS90
b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHk6ClVwZGF0ZXMgdGhlIHVuaXQgdGVz
dCB0byBpbnN0YW50aWF0ZSBSZXN1bHRzSlNPTlBhcnNlciBvYmplY3RzIHJhdGhlcgp0aGFuIHNp
bXBsZSBsaXN0cyBvZiBUZXN0UmVzdWx0IG9iamVjdHMKCihNb2NrQ29tbWl0UXVldWUudGVzdF9y
ZXN1bHRzKToKKEZhaWxpbmdUZXN0Q29tbWl0UXVldWUudGVzdF9yZXN1bHRzKToKKHRlc3RfZmxh
a3lfdGVzdF9mYWlsdXJlKToKKHRlc3RfZmFpbGVkX2FyY2hpdmUpOgoqIFNjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlcy5weToKVXBkYXRlcyBFeHBlY3RlZEZhaWx1cmVz
IHRvIHVzZSB0aGUgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQKbWV0aG9kIHJhdGhlciB0
aGFuIGNvdW50aW5nIHRoZSBudW1iZXIgb2YgZmFpbGVkIHRlc3RzLgoKKEV4cGVjdGVkRmFpbHVy
ZXMuX3Nob3VsZF90cnVzdCk6CiogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZh
aWx1cmVzX3VuaXR0ZXN0LnB5OgpVcGRhdGVzIE1vY2tSZXN1bHRzIHRvIG1vcmUgY2xvc2VseSBy
ZXNlbWJsZSB0aGUgdXBkYXRlZApMYXlvdXRUZXN0UmVzdWx0cyBjbGFzcwoKKE1vY2tSZXN1bHRz
Ll9faW5pdF9fKToKKE1vY2tSZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KToK
KEV4cGVjdGVkRmFpbHVyZXNUZXN0LnRlc3RfY2FuX3RydXN0X3Jlc3VsdHMpOgooRXhwZWN0ZWRG
YWlsdXJlc1Rlc3QudGVzdF91bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKToKKEV4cGVjdGVk
RmFpbHVyZXNUZXN0LnRlc3RfdW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZF93aGVuX3RyZWVf
aXNfaG9zZWQpOgooTW9ja1Jlc3VsdHMuZmFpbHVyZV9saW1pdF9jb3VudCk6IERlbGV0ZWQuCiog
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlci5weToKUmVt
b3ZlcyBhIEZJWE1FIHJlZ2FyZGluZyB0aGUgdXNlIG9mIHRoZQpOT05fSU5URVJBQ1RJVkVfRkFJ
TFVSRV9MSU1JVF9DT1VOVCB2YWx1ZQoKKExheW91dFRlc3RSZXN1bHRzUmVhZGVyLnJlc3VsdHMp
OgoqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXJfdW5p
dHRlc3QucHk6ClVwZGF0ZXMgdGVzdCB0byBub3QgY2hlY2sgdGhlIG5vdy1ub25leGlzdGFudCBm
YWlsdXJlX2NvdW50X2xpbWl0Cm1ldGhvZAoKKHRlc3RfbWlzc2luZ191bml0X3Rlc3RfcmVzdWx0
c19wYXRoKToKKHRlc3RfbGF5b3V0X3Rlc3RfcmVzdWx0cyk6CiogU2NyaXB0cy93ZWJraXRweS90
b29sL3NlcnZlcnMvcmViYXNlbGluZXNlcnZlcl91bml0dGVzdC5weToKQWNjb3VudHMgZm9yIG5h
bWUgY2hhbmdlOiBSZXN1bHRzSlNPTlBhcnNlclRlc3QgLT4gUGFyc2VkSlNPTlBhcnNlclRlc3QK
CihSZWJhc2VsaW5lVGVzdFRlc3QudGVzdF9nYXRoZXJfYmFzZWxpbmVzKToKLS0tCiBUb29scy9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDg2ICsrKysrKysr
KysrKysrKysrKysrKysKIC4uLi9jb21tb24vbmV0L2J1aWxkYm90L2J1aWxkYm90X3VuaXR0ZXN0
LnB5ICAgICAgIHwgIDQgKy0KIC4uLi93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1
bHRzLnB5ICAgICAgIHwgMjcgKystLS0tLQogLi4uL2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3Vs
dHNfdW5pdHRlc3QucHkgICAgICAgfCAgNSAtLQogLi4uL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVz
dWx0c2pzb25wYXJzZXIucHkgICAgICAgfCAyNSArKysrKy0tCiAuLi4vY29tbW9uL25ldC9yZXN1
bHRzanNvbnBhcnNlcl91bml0dGVzdC5weSAgICAgICB8IDEwICsrLQogLi4uL3dlYmtpdHB5L3Rv
b2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weSAgfCAxMCArLS0KIC4uLi9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXMucHkgIHwgIDIgKy0KIC4uLi93ZWJr
aXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzX3VuaXR0ZXN0LnB5IHwgMzAgKysrKy0tLS0K
IC4uLi93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlci5weSAgIHwgIDQg
LQogLi4uL3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0LnB5ICAgfCAg
NSArLQogLi4uL3Rvb2wvc2VydmVycy9yZWJhc2VsaW5lc2VydmVyX3VuaXR0ZXN0LnB5ICAgICAg
fCAgMiArLQogMTIgZmlsZXMgY2hhbmdlZCwgMTQzIGluc2VydGlvbnMoKyksIDY3IGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA5MWM3MmQ4Li40MzkxMjI1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODkgQEAKKzIwMTQtMDktMzAgIEpha2UgTmllbHNlbiAg
PGphY29iX25pZWxzZW5AYXBwbGUuY29tPgorCisgICAgICAgIExheW91dFRlc3RSZXN1bHRzIGFu
ZCBFeHBlY3RlZEZhaWx1cmVzIHNob3VsZCBrbm93IGFib3V0IHRoZQorICAgICAgICBpbnRlcnJ1
cHRlZCBmbGFnIGZyb20gdGhlIGpzb24gcmVzdWx0cyBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzcyMjkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2VzIExheW91dFRlc3RSZXN1bHRzIHRv
IHVzZSB0aGUgaW50ZXJydXB0ZWQgZmxhZyBpbnN0ZWFkIG9mCisgICAgICAgIGNvdW50aW5nIGZh
aWx1cmVzLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1aWxkYm90
L2J1aWxkYm90X3VuaXR0ZXN0LnB5OgorICAgICAgICAoQnVpbGRlclRlc3QuX2luc3RhbGxfZmV0
Y2hfYnVpbGQuX21vY2tfZmV0Y2hfYnVpbGQpOgorICAgICAgICAoQnVpbGRlclRlc3QudGVzdF9s
YXRlc3RfbGF5b3V0X3Rlc3RfcmVzdWx0cyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzLnB5OgorICAgICAgICBSZW1vdmVzIG5vdGlvbiBv
ZiBmYWlsdXJlX2xpbWl0X2NvdW50LCBhbmQgYWRkcworICAgICAgICBkaWRfZXhjZWVkX3Rlc3Rf
ZmFpbHVyZV9saW1pdAorCisgICAgICAgIChMYXlvdXRUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21f
c3RyaW5nKToKKyAgICAgICAgKExheW91dFRlc3RSZXN1bHRzLl9faW5pdF9fKToKKyAgICAgICAg
KExheW91dFRlc3RSZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KToKKyAgICAg
ICAgKExheW91dFRlc3RSZXN1bHRzKTogRGVsZXRlZC4KKyAgICAgICAgKExheW91dFRlc3RSZXN1
bHRzLnNldF9mYWlsdXJlX2xpbWl0X2NvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKExheW91dFRl
c3RSZXN1bHRzLmZhaWx1cmVfbGltaXRfY291bnQpOiBEZWxldGVkLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0c191bml0dGVzdC5weToKKyAg
ICAgICAgUmVtb3ZlcyB1bml0IHRlc3QgZm9yIGZhaWx1cmVfbGltaXRfY291bnQgbG9naWMKKwor
ICAgICAgICAoTGF5b3V0VGVzdFJlc3VsdHNUZXN0LnRlc3Rfc2V0X2ZhaWx1cmVfbGltaXRfY291
bnQpOiBEZWxldGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1
bHRzanNvbnBhcnNlci5weToKKyAgICAgICAgSW5zdGVhZCBvZiBwcm92aWRpbmcgYSBjbGFzcyBt
ZXRob2QgdGhhdCByZXR1cm5zIGEgbGlzdCBvZgorICAgICAgICBUZXN0UmVzdWx0cyBvYmplY3Rz
LCByZXN1bHRzanNvbnBhcnNlciBub3cgcHJvdmlkZXMgYSBjbGFzcworICAgICAgICBQYXJzZWRK
U09OUmVzdWx0cyB0aGF0IHNlcnZlcyBhcyBhbiBpbnRlcmZhY2UgYmV0d2VlbiB0aGUgcmVzdWx0
cy5qc29uCisgICAgICAgIGZpbGUgYW5kIHRoZSByZXN0IG9mIHdlYmtpdHB5LgorCisgICAgICAg
IChQYXJzZWRKU09OUmVzdWx0cyk6CisgICAgICAgIChQYXJzZWRKU09OUmVzdWx0cy5fX2luaXRf
Xyk6CisgICAgICAgIChQYXJzZWRKU09OUmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9s
aW1pdCk6CisgICAgICAgIChQYXJzZWRKU09OUmVzdWx0cy50ZXN0X3Jlc3VsdHMpOgorICAgICAg
ICAoUmVzdWx0c0pTT05QYXJzZXIpOiBEZWxldGVkLgorICAgICAgICAoUmVzdWx0c0pTT05QYXJz
ZXIucGFyc2VfcmVzdWx0c19qc29uKTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRlc3QucHk6CisgICAgICAgIFVw
ZGF0ZXMgdGhlIHVuaXQgdGVzdCBzbyB0aGF0IGl0IGNhbiB0ZXN0IHRoZSBuZXcgUmVzdWx0c0pT
T05QYXJzZXIKKyAgICAgICAgY2xhc3MuCisKKyAgICAgICAgKFBhcnNlZEpTT05SZXN1bHRzVGVz
dCk6CisgICAgICAgICh0ZXN0X2Jhc2ljKToKKyAgICAgICAgKFJlc3VsdHNKU09OUGFyc2VyVGVz
dCk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRx
dWV1ZXRhc2tfdW5pdHRlc3QucHk6CisgICAgICAgIFVwZGF0ZXMgdGhlIHVuaXQgdGVzdCB0byBp
bnN0YW50aWF0ZSBSZXN1bHRzSlNPTlBhcnNlciBvYmplY3RzIHJhdGhlcgorICAgICAgICB0aGFu
IHNpbXBsZSBsaXN0cyBvZiBUZXN0UmVzdWx0IG9iamVjdHMKKworICAgICAgICAoTW9ja0NvbW1p
dFF1ZXVlLnRlc3RfcmVzdWx0cyk6CisgICAgICAgIChGYWlsaW5nVGVzdENvbW1pdFF1ZXVlLnRl
c3RfcmVzdWx0cyk6CisgICAgICAgICh0ZXN0X2ZsYWt5X3Rlc3RfZmFpbHVyZSk6CisgICAgICAg
ICh0ZXN0X2ZhaWxlZF9hcmNoaXZlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2V4cGVjdGVkZmFpbHVyZXMucHk6CisgICAgICAgIFVwZGF0ZXMgRXhwZWN0ZWRGYWlsdXJl
cyB0byB1c2UgdGhlIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0CisgICAgICAgIG1ldGhv
ZCByYXRoZXIgdGhhbiBjb3VudGluZyB0aGUgbnVtYmVyIG9mIGZhaWxlZCB0ZXN0cy4KKworICAg
ICAgICAoRXhwZWN0ZWRGYWlsdXJlcy5fc2hvdWxkX3RydXN0KToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHk6CisgICAgICAg
IFVwZGF0ZXMgTW9ja1Jlc3VsdHMgdG8gbW9yZSBjbG9zZWx5IHJlc2VtYmxlIHRoZSB1cGRhdGVk
CisgICAgICAgIExheW91dFRlc3RSZXN1bHRzIGNsYXNzCisKKyAgICAgICAgKE1vY2tSZXN1bHRz
Ll9faW5pdF9fKToKKyAgICAgICAgKE1vY2tSZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJl
X2xpbWl0KToKKyAgICAgICAgKEV4cGVjdGVkRmFpbHVyZXNUZXN0LnRlc3RfY2FuX3RydXN0X3Jl
c3VsdHMpOgorICAgICAgICAoRXhwZWN0ZWRGYWlsdXJlc1Rlc3QudGVzdF91bmV4cGVjdGVkX2Zh
aWx1cmVzX29ic2VydmVkKToKKyAgICAgICAgKEV4cGVjdGVkRmFpbHVyZXNUZXN0LnRlc3RfdW5l
eHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZF93aGVuX3RyZWVfaXNfaG9zZWQpOgorICAgICAgICAo
TW9ja1Jlc3VsdHMuZmFpbHVyZV9saW1pdF9jb3VudCk6IERlbGV0ZWQuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlci5weToKKyAgICAg
ICAgUmVtb3ZlcyBhIEZJWE1FIHJlZ2FyZGluZyB0aGUgdXNlIG9mIHRoZQorICAgICAgICBOT05f
SU5URVJBQ1RJVkVfRkFJTFVSRV9MSU1JVF9DT1VOVCB2YWx1ZQorCisgICAgICAgIChMYXlvdXRU
ZXN0UmVzdWx0c1JlYWRlci5yZXN1bHRzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0LnB5OgorICAgICAgICBVcGRh
dGVzIHRlc3QgdG8gbm90IGNoZWNrIHRoZSBub3ctbm9uZXhpc3RhbnQgZmFpbHVyZV9jb3VudF9s
aW1pdAorICAgICAgICBtZXRob2QKKworICAgICAgICAodGVzdF9taXNzaW5nX3VuaXRfdGVzdF9y
ZXN1bHRzX3BhdGgpOgorICAgICAgICAodGVzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9yZWJhc2VsaW5lc2VydmVyX3VuaXR0
ZXN0LnB5OgorICAgICAgICBBY2NvdW50cyBmb3IgbmFtZSBjaGFuZ2U6IFJlc3VsdHNKU09OUGFy
c2VyVGVzdCAtPiBQYXJzZWRKU09OUGFyc2VyVGVzdAorCisgICAgICAgIChSZWJhc2VsaW5lVGVz
dFRlc3QudGVzdF9nYXRoZXJfYmFzZWxpbmVzKToKKwogMjAxNC0wOS0yNiAgQWxleGV5IFByb3Nr
dXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWMgRVdTIGJvdHMgZG8gbm90IGtl
ZXAgbG9ncyBhcyBwcm9taXNlZApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L2J1aWxkYm90L2J1aWxkYm90X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vbmV0L2J1aWxkYm90L2J1aWxkYm90X3VuaXR0ZXN0LnB5CmluZGV4IGIw
MDM5M2QuLjc2NzFkZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9idWlsZGJvdC9idWlsZGJvdF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRib3RfdW5pdHRlc3QucHkKQEAgLTQ4LDcg
KzQ4LDcgQEAgY2xhc3MgQnVpbGRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAg
ICAgICAgIGlzX2dyZWVuPWJ1aWxkX251bWJlciA8IDQKICAgICAgICAgICAgICkKICAgICAgICAg
ICAgIHJlc3VsdHMgPSBbc2VsZi5fbW9ja190ZXN0X3Jlc3VsdCh0ZXN0bmFtZSkgZm9yIHRlc3Ru
YW1lIGluIGZhaWx1cmUoYnVpbGRfbnVtYmVyKV0KLSAgICAgICAgICAgIGxheW91dF90ZXN0X3Jl
c3VsdHMgPSBMYXlvdXRUZXN0UmVzdWx0cyhyZXN1bHRzKQorICAgICAgICAgICAgbGF5b3V0X3Rl
c3RfcmVzdWx0cyA9IExheW91dFRlc3RSZXN1bHRzKHRlc3RfcmVzdWx0cz1yZXN1bHRzLCBkaWRf
ZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1GYWxzZSkKICAgICAgICAgICAgIGRlZiBtb2NrX2xh
eW91dF90ZXN0X3Jlc3VsdHMoKToKICAgICAgICAgICAgICAgICByZXR1cm4gbGF5b3V0X3Rlc3Rf
cmVzdWx0cwogICAgICAgICAgICAgYnVpbGQubGF5b3V0X3Rlc3RfcmVzdWx0cyA9IG1vY2tfbGF5
b3V0X3Rlc3RfcmVzdWx0cwpAQCAtNjEsNyArNjEsNyBAQCBjbGFzcyBCdWlsZGVyVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuX2luc3RhbGxfZmV0Y2hfYnVpbGQobGFtYmRh
IGJ1aWxkX251bWJlcjogWyJ0ZXN0MSIsICJ0ZXN0MiJdKQogCiAgICAgZGVmIHRlc3RfbGF0ZXN0
X2xheW91dF90ZXN0X3Jlc3VsdHMoc2VsZik6Ci0gICAgICAgIHNlbGYuYnVpbGRlci5mZXRjaF9s
YXlvdXRfdGVzdF9yZXN1bHRzID0gbGFtYmRhIHJlc3VsdHNfdXJsOiBMYXlvdXRUZXN0UmVzdWx0
cyhbc2VsZi5fbW9ja190ZXN0X3Jlc3VsdCh0ZXN0bmFtZSkgZm9yIHRlc3RuYW1lIGluIFsidGVz
dDEiLCAidGVzdDIiXV0pCisgICAgICAgIHNlbGYuYnVpbGRlci5mZXRjaF9sYXlvdXRfdGVzdF9y
ZXN1bHRzID0gbGFtYmRhIHJlc3VsdHNfdXJsOiBMYXlvdXRUZXN0UmVzdWx0cyh0ZXN0X3Jlc3Vs
dHM9W3NlbGYuX21vY2tfdGVzdF9yZXN1bHQodGVzdG5hbWUpIGZvciB0ZXN0bmFtZSBpbiBbInRl
c3QxIiwgInRlc3QyIl1dLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1GYWxzZSkKICAg
ICAgICAgc2VsZi5idWlsZGVyLmFjY3VtdWxhdGVkX3Jlc3VsdHNfdXJsID0gbGFtYmRhOiAiaHR0
cDovL2R1bW15X3VybC5vcmciCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLmJ1aWxkZXIu
bGF0ZXN0X2xheW91dF90ZXN0X3Jlc3VsdHMoKSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzLnB5CmluZGV4IGI4Y2IxNTcu
LmU3NGNhNzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9s
YXlvdXR0ZXN0cmVzdWx0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvbGF5b3V0dGVzdHJlc3VsdHMucHkKQEAgLTI4LDcgKzI4LDcgQEAKIAogaW1wb3J0IGxvZ2dp
bmcKIAotZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LnJlc3VsdHNqc29ucGFyc2VyIGltcG9ydCBS
ZXN1bHRzSlNPTlBhcnNlcgorZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LnJlc3VsdHNqc29ucGFy
c2VyIGltcG9ydCBQYXJzZWRKU09OUmVzdWx0cwogZnJvbSB3ZWJraXRweS50aGlyZHBhcnR5LkJl
YXV0aWZ1bFNvdXAgaW1wb3J0IEJlYXV0aWZ1bFNvdXAsIFNvdXBTdHJhaW5lcgogZnJvbSB3ZWJr
aXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X3Jlc3VsdHMKIGZyb20gd2Via2l0
cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9mYWlsdXJlcwpAQCAtNTAsMjcgKzUw
LDE2IEBAIGNsYXNzIExheW91dFRlc3RSZXN1bHRzKG9iamVjdCk6CiAgICAgZGVmIHJlc3VsdHNf
ZnJvbV9zdHJpbmcoY2xzLCBzdHJpbmcpOgogICAgICAgICBpZiBub3Qgc3RyaW5nOgogICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgdGVzdF9yZXN1bHRzID0gUmVzdWx0c0pTT05QYXJz
ZXIucGFyc2VfcmVzdWx0c19qc29uKHN0cmluZykKLSAgICAgICAgaWYgbm90IHRlc3RfcmVzdWx0
czoKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIHJldHVybiBjbHModGVzdF9yZXN1
bHRzKQorICAgICAgICBwYXJzZWRfcmVzdWx0cyA9IFBhcnNlZEpTT05SZXN1bHRzKHN0cmluZykK
KyAgICAgICAgcmV0dXJuIGNscyhwYXJzZWRfcmVzdWx0cy50ZXN0X3Jlc3VsdHMoKSwgcGFyc2Vk
X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKSkKIAotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCB0ZXN0X3Jlc3VsdHMpOgotICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHMgPSB0
ZXN0X3Jlc3VsdHMKLSAgICAgICAgc2VsZi5fZmFpbHVyZV9saW1pdF9jb3VudCA9IE5vbmUKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9yZXN1bHRzLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVy
ZV9saW1pdCk6CiAgICAgICAgIHNlbGYuX3VuaXRfdGVzdF9mYWlsdXJlcyA9IFtdCisgICAgICAg
IHNlbGYuX3Rlc3RfcmVzdWx0cyA9IHRlc3RfcmVzdWx0cworICAgICAgICBzZWxmLl9kaWRfZXhj
ZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCA9IGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0CiAK
LSAgICAjIEZJWE1FOiBydW4td2Via2l0LXRlc3RzIHNob3VsZCBzdG9yZSB0aGUgLS1leGl0LWFm
dGVyLU4tZmFpbHVyZXMgdmFsdWUKLSAgICAjIChvciBzb21lIGluZGljYXRpb24gb2YgZWFybHkg
ZXhpdCkgc29tZXdoZXJlIGluIHRoZSByZXN1bHRzLmpzb24KLSAgICAjIGZpbGUuICBVbnRpbCBp
dCBkb2VzLCBjYWxsZXJzIHNob3VsZCBzZXQgdGhlIGxpbWl0IHRvCi0gICAgIyAtLWV4aXQtYWZ0
ZXItTi1mYWlsdXJlcyB2YWx1ZSB1c2VkIGluIHRoYXQgcnVuLiAgQ29uc3VtZXJzIG9mIExheW91
dFRlc3RSZXN1bHRzCi0gICAgIyBtYXkgdXNlIHRoYXQgdmFsdWUgdG8ga25vdyBpZiBhYnNlbmNl
IGZyb20gdGhlIGZhaWx1cmUgbGlzdCBtZWFucyBQQVNTLgotICAgICMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4NDgxCi0gICAgZGVmIHNldF9mYWlsdXJlX2xpbWl0
X2NvdW50KHNlbGYsIGxpbWl0KToKLSAgICAgICAgc2VsZi5fZmFpbHVyZV9saW1pdF9jb3VudCA9
IGxpbWl0Ci0KLSAgICBkZWYgZmFpbHVyZV9saW1pdF9jb3VudChzZWxmKToKLSAgICAgICAgcmV0
dXJuIHNlbGYuX2ZhaWx1cmVfbGltaXRfY291bnQKKyAgICBkZWYgZGlkX2V4Y2VlZF90ZXN0X2Zh
aWx1cmVfbGltaXQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9kaWRfZXhjZWVkX3Rlc3Rf
ZmFpbHVyZV9saW1pdAogCiAgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKICAgICAgICAgcmV0
dXJuIHNlbGYuX3Rlc3RfcmVzdWx0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5CmluZGV4
IGVhNGU5MjcuLjg1MjA2OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKQEAgLTM2
LDExICszNiw2IEBAIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5CZWF1dGlmdWxTb3VwIGltcG9y
dCBCZWF1dGlmdWxTb3VwCiAKIAogY2xhc3MgTGF5b3V0VGVzdFJlc3VsdHNUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKLSAgICBkZWYgdGVzdF9zZXRfZmFpbHVyZV9saW1pdF9jb3VudChzZWxmKToK
LSAgICAgICAgcmVzdWx0cyA9IExheW91dFRlc3RSZXN1bHRzKFtdKQotICAgICAgICBzZWxmLmFz
c2VydElzTm9uZShyZXN1bHRzLmZhaWx1cmVfbGltaXRfY291bnQoKSkKLSAgICAgICAgcmVzdWx0
cy5zZXRfZmFpbHVyZV9saW1pdF9jb3VudCgxMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChy
ZXN1bHRzLmZhaWx1cmVfbGltaXRfY291bnQoKSwgMTApCiAKICAgICBkZWYgdGVzdF9yZXN1bHRz
X2Zyb21fc3RyaW5nKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydElzTm9uZShMYXlvdXRUZXN0
UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKE5vbmUpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2VyLnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2VyLnB5CmluZGV4IDFhMmE3
MGYuLjY4ODhhNDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9yZXN1bHRzanNvbnBhcnNlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvcmVzdWx0c2pzb25wYXJzZXIucHkKQEAgLTEzNyw5ICsxMzcsOCBAQCBjbGFzcyBKU09O
VGVzdFJlc3VsdChvYmplY3QpOgogICAgICAgICByZXR1cm4gdGVzdF9yZXN1bHRzLlRlc3RSZXN1
bHQoc2VsZi5fdGVzdF9uYW1lLCBzZWxmLl9mYWlsdXJlcygpKQogCiAKLWNsYXNzIFJlc3VsdHNK
U09OUGFyc2VyKG9iamVjdCk6Ci0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHBhcnNlX3Jlc3Vs
dHNfanNvbihjbHMsIGpzb25fc3RyaW5nKToKK2NsYXNzIFBhcnNlZEpTT05SZXN1bHRzKG9iamVj
dCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGpzb25fc3RyaW5nKToKICAgICAgICAgaWYgbm90
IGpzb25fcmVzdWx0c19nZW5lcmF0b3IuaGFzX2pzb25fd3JhcHBlcihqc29uX3N0cmluZyk6CiAg
ICAgICAgICAgICByZXR1cm4gTm9uZQogCkBAIC0xNDksNyArMTQ4LDE5IEBAIGNsYXNzIFJlc3Vs
dHNKU09OUGFyc2VyKG9iamVjdCk6CiAgICAgICAgIGpzb25fcmVzdWx0cyA9IFtdCiAgICAgICAg
IGZvcl9lYWNoX3Rlc3QoanNvbl9kaWN0Wyd0ZXN0cyddLCBsYW1iZGEgdGVzdCwgcmVzdWx0OiBq
c29uX3Jlc3VsdHMuYXBwZW5kKEpTT05UZXN0UmVzdWx0KHRlc3QsIHJlc3VsdCkpKQogCi0gICAg
ICAgICMgRklYTUU6IFdoYXQncyB0aGUgc2hvcnQgc2V4eSBweXRob24gd2F5IHRvIGZpbHRlciBO
b25lPwotICAgICAgICAjIEkgd291bGQgdXNlIFtmb28uYmFyKCkgZm9yIGZvbyBpbiBmb29zIGlm
IGZvby5iYXIoKV0gYnV0IGJhcigpIGlzIGV4cGVuc2l2ZS4KLSAgICAgICAgdW5leHBlY3RlZF9m
YWlsdXJlcyA9IFtyZXN1bHQudGVzdF9yZXN1bHQoKSBmb3IgcmVzdWx0IGluIGpzb25fcmVzdWx0
cyBpZiBub3QgcmVzdWx0LmRpZF9wYXNzX29yX3J1bl9hc19leHBlY3RlZCgpXQotICAgICAgICBy
ZXR1cm4gZmlsdGVyKGxhbWJkYSBhOiBhLCB1bmV4cGVjdGVkX2ZhaWx1cmVzKQorICAgICAgICB1
bmV4cGVjdGVkX2ZhaWx1cmVzID0gW10KKyAgICAgICAgZm9yIGpzb25fcmVzdWx0IGluIGpzb25f
cmVzdWx0czoKKyAgICAgICAgICAgIGlmIGpzb25fcmVzdWx0LmRpZF9wYXNzX29yX3J1bl9hc19l
eHBlY3RlZCgpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICB0ZXN0X3Jl
c3VsdCA9IGpzb25fcmVzdWx0LnRlc3RfcmVzdWx0KCkKKyAgICAgICAgICAgIGlmIHRlc3RfcmVz
dWx0OgorICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRfZmFpbHVyZXMuYXBwZW5kKHRlc3RfcmVz
dWx0KQorCisgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0cyA9IHVuZXhwZWN0ZWRfZmFpbHVyZXMK
KyAgICAgICAgc2VsZi5fZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQgPSBqc29uX2RpY3Rb
ImludGVycnVwdGVkIl0KKworICAgIGRlZiBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdChz
ZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2RpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0
CisKKyAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fdGVz
dF9yZXN1bHRzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQv
cmVzdWx0c2pzb25wYXJzZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRlc3QucHkKaW5kZXggNWU3ZDNhNi4uNThi
YTljMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3Vs
dHNqc29ucGFyc2VyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL25ldC9yZXN1bHRzanNvbnBhcnNlcl91bml0dGVzdC5weQpAQCAtMjgsMTIgKzI4LDEyIEBA
CiAKIGltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAotZnJvbSB3ZWJraXRweS5jb21tb24u
bmV0LnJlc3VsdHNqc29ucGFyc2VyIGltcG9ydCBSZXN1bHRzSlNPTlBhcnNlcgorZnJvbSB3ZWJr
aXRweS5jb21tb24ubmV0LnJlc3VsdHNqc29ucGFyc2VyIGltcG9ydCBQYXJzZWRKU09OUmVzdWx0
cwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X3Jlc3VsdHMK
IGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9mYWlsdXJlcwog
CiAKLWNsYXNzIFJlc3VsdHNKU09OUGFyc2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CitjbGFz
cyBQYXJzZWRKU09OUmVzdWx0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICMgVGhlIHJl
YWwgZmlsZXMgaGF2ZSBubyB3aGl0ZXNwYWNlLCBidXQgbmV3bGluZXMgbWFrZSB0aGlzIG11Y2gg
bW9yZSByZWFkYWJsZS4KIAogICAgIF9leGFtcGxlX2Z1bGxfcmVzdWx0c19qc29uID0gIiIiQURE
X1JFU1VMVFMoewpAQCAtNzIsNiArNzIsNyBAQCBjbGFzcyBSZXN1bHRzSlNPTlBhcnNlclRlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfSwKKyAg
ICAiaW50ZXJydXB0ZWQiOiB0cnVlLAogICAgICJza2lwcGVkIjogNDUwLAogICAgICJudW1fcmVn
cmVzc2lvbnMiOiAxNSwKICAgICAibGF5b3V0X3Rlc3RzX2RpciI6ICJcL2JcL2J1aWxkXC9zbGF2
ZVwvV2Via2l0X01hYzEwXzVcL2J1aWxkXC9zcmNcL3RoaXJkX3BhcnR5XC9XZWJLaXRcL0xheW91
dFRlc3RzIiwKQEAgLTg4LDUgKzg5LDYgQEAgY2xhc3MgUmVzdWx0c0pTT05QYXJzZXJUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KCJz
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQtZG9tLXN0ZERldmlhdGlv
bi1hdHRyLmh0bWwiLCBbdGVzdF9mYWlsdXJlcy5GYWlsdXJlSW1hZ2VIYXNoTWlzbWF0Y2goKV0s
IDApLAogICAgICAgICAgICAgdGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQoImZhc3QvZG9tL3Byb3Rv
dHlwZS1pbmhlcml0YW5jZS5odG1sIiwgW3Rlc3RfZmFpbHVyZXMuRmFpbHVyZVRleHRNaXNtYXRj
aCgpLCB0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVJbWFnZUhhc2hNaXNtYXRjaCgpLCB0ZXN0X2ZhaWx1
cmVzLkZhaWx1cmVBdWRpb01pc21hdGNoKCldLCAwKSwKICAgICAgICAgXQotICAgICAgICByZXN1
bHRzID0gUmVzdWx0c0pTT05QYXJzZXIucGFyc2VfcmVzdWx0c19qc29uKHNlbGYuX2V4YW1wbGVf
ZnVsbF9yZXN1bHRzX2pzb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfcmVz
dWx0cywgcmVzdWx0cykKKyAgICAgICAgcGFyc2VkX3Jlc3VsdHMgPSBQYXJzZWRKU09OUmVzdWx0
cyhzZWxmLl9leGFtcGxlX2Z1bGxfcmVzdWx0c19qc29uKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGV4cGVjdGVkX3Jlc3VsdHMsIHBhcnNlZF9yZXN1bHRzLnRlc3RfcmVzdWx0cygpKQorICAg
ICAgICBzZWxmLmFzc2VydFRydWUocGFyc2VkX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1
cmVfbGltaXQoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qv
Y29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkKaW5kZXggMWVhYmRlMS4uMTFhMTM5ZCAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRh
c2tfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21t
aXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkKQEAgLTczLDcgKzczLDcgQEAgY2xhc3MgTW9ja0NvbW1p
dFF1ZXVlKENvbW1pdFF1ZXVlVGFza0RlbGVnYXRlKToKICAgICAgICAgcmV0dXJuIEV4cGVjdGVk
RmFpbHVyZXMoKQogCiAgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKLSAgICAgICAgcmV0dXJu
IE5vbmUKKyAgICAgICAgcmV0dXJuIExheW91dFRlc3RSZXN1bHRzKHRlc3RfcmVzdWx0cz1bXSwg
ZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9VHJ1ZSkKIAogICAgIGRlZiByZXBvcnRfZmxh
a3lfdGVzdHMoc2VsZiwgcGF0Y2gsIGZsYWt5X3Jlc3VsdHMsIHJlc3VsdHNfYXJjaGl2ZSk6CiAg
ICAgICAgIGZsYWt5X3Rlc3RzID0gW3Jlc3VsdC5maWxlbmFtZSBmb3IgcmVzdWx0IGluIGZsYWt5
X3Jlc3VsdHNdCkBAIC0xMTAsOSArMTEwLDcgQEAgY2xhc3MgRmFpbGluZ1Rlc3RDb21taXRRdWV1
ZShNb2NrQ29tbWl0UXVldWUpOgogICAgICAgICAjIERvZXNuJ3QgbWFrZSBzZW5zZSB0byBhc2sg
Zm9yIHRoZSB0ZXN0X3Jlc3VsdHMgdW50aWwgdGhlIHRlc3RzIGhhdmUgcnVuIGF0IGxlYXN0IG9u
Y2UuCiAgICAgICAgIGFzc2VydChzZWxmLl90ZXN0X3J1bl9jb3VudGVyID49IDApCiAgICAgICAg
IGZhaWx1cmVzX2Zvcl9ydW4gPSBzZWxmLl90ZXN0X2ZhaWx1cmVfcGxhbltzZWxmLl90ZXN0X3J1
bl9jb3VudGVyXQotICAgICAgICByZXN1bHRzID0gTGF5b3V0VGVzdFJlc3VsdHMobWFwKHNlbGYu
X21vY2tfdGVzdF9yZXN1bHQsIGZhaWx1cmVzX2Zvcl9ydW4pKQotICAgICAgICAjIFRoaXMgbWFr
ZXMgdGhlIHJlc3VsdHMgdHJ1c3RhYmxlIGJ5IEV4cGVjdGVkRmFpbHVyZXMuCi0gICAgICAgIHJl
c3VsdHMuc2V0X2ZhaWx1cmVfbGltaXRfY291bnQoMTApCisgICAgICAgIHJlc3VsdHMgPSBMYXlv
dXRUZXN0UmVzdWx0cyh0ZXN0X3Jlc3VsdHM9bWFwKHNlbGYuX21vY2tfdGVzdF9yZXN1bHQsIGZh
aWx1cmVzX2Zvcl9ydW4pLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD0obGVuKHNlbGYu
X3Rlc3RfZmFpbHVyZV9wbGFuW3NlbGYuX3Rlc3RfcnVuX2NvdW50ZXJdKSA+PSAxMCkpCiAgICAg
ICAgIHJldHVybiByZXN1bHRzCiAKIApAQCAtMjgyLDcgKzI4MCw3IEBAIGNvbW1hbmRfZmFpbGVk
OiBmYWlsdXJlX21lc3NhZ2U9J1VuYWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoJyBzY3JpcHRf
ZXJyb3I9J01PCiAgICAgICAgIF0pCiAgICAgICAgICMgQ29tbWl0UXVldWVUYXNrIHdpbGwgb25s
eSByZXBvcnQgZmxha3kgdGVzdHMgaWYgd2Ugc3VjY2Vzc2Z1bGx5IHBhcnNlZAogICAgICAgICAj
IHJlc3VsdHMuanNvbiBhbmQgcmV0dXJuZWQgYSBMYXlvdXRUZXN0UmVzdWx0cyBvYmplY3QsIHNv
IHdlIGZha2Ugb25lLgotICAgICAgICBjb21taXRfcXVldWUudGVzdF9yZXN1bHRzID0gbGFtYmRh
OiBMYXlvdXRUZXN0UmVzdWx0cyhbXSkKKyAgICAgICAgY29tbWl0X3F1ZXVlLnRlc3RfcmVzdWx0
cyA9IGxhbWJkYTogTGF5b3V0VGVzdFJlc3VsdHModGVzdF9yZXN1bHRzPVtdLCBkaWRfZXhjZWVk
X3Rlc3RfZmFpbHVyZV9saW1pdD1UcnVlKQogICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIicnVu
X3dlYmtpdF9wYXRjaDogWydjbGVhbiddCiBjb21tYW5kX3Bhc3NlZDogc3VjY2Vzc19tZXNzYWdl
PSdDbGVhbmVkIHdvcmtpbmcgZGlyZWN0b3J5JyBwYXRjaD0nMTAwMDAnCiBydW5fd2Via2l0X3Bh
dGNoOiBbJ3VwZGF0ZSddCkBAIC0zMTMsNyArMzExLDcgQEAgY29tbWFuZF9wYXNzZWQ6IHN1Y2Nl
c3NfbWVzc2FnZT0nTGFuZGVkIHBhdGNoJyBwYXRjaD0nMTAwMDAnCiAgICAgICAgICAgICBOb25l
LAogICAgICAgICAgICAgU2NyaXB0RXJyb3IoIk1PQ0sgdGVzdHMgZmFpbHVyZSIpLAogICAgICAg
ICBdKQotICAgICAgICBjb21taXRfcXVldWUudGVzdF9yZXN1bHRzID0gbGFtYmRhOiBMYXlvdXRU
ZXN0UmVzdWx0cyhbXSkKKyAgICAgICAgY29tbWl0X3F1ZXVlLnRlc3RfcmVzdWx0cyA9IGxhbWJk
YTogTGF5b3V0VGVzdFJlc3VsdHModGVzdF9yZXN1bHRzPVtdLCBkaWRfZXhjZWVkX3Rlc3RfZmFp
bHVyZV9saW1pdD1UcnVlKQogICAgICAgICAjIEl0J3MgcG9zc2libGUgZGVsZWdhdGUgdG8gZmFp
bCB0byBhcmNoaXZlIGxheW91dCB0ZXN0cywgZG9uJ3QgdHJ5IHRvIHJlcG9ydAogICAgICAgICAj
IGZsYWt5IHRlc3RzIHdoZW4gdGhhdCBoYXBwZW5zLgogICAgICAgICBjb21taXRfcXVldWUuYXJj
aGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyA9IGxhbWJkYSBwYXRjaDogTm9uZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzLnB5CmluZGV4IGMw
Y2ZlMjEuLjFlMzRjNjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvZXhwZWN0ZWRmYWlsdXJlcy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2V4cGVjdGVkZmFpbHVyZXMucHkKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgRXhwZWN0ZWRG
YWlsdXJlcyhvYmplY3QpOgogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIF9zaG91bGRfdHJ1
c3QoY2xzLCByZXN1bHRzKToKLSAgICAgICAgcmV0dXJuIGJvb2woY2xzLl9oYXNfZmFpbHVyZXMo
cmVzdWx0cykgYW5kIHJlc3VsdHMuZmFpbHVyZV9saW1pdF9jb3VudCgpIGFuZCBsZW4ocmVzdWx0
cy5mYWlsaW5nX3Rlc3RzKCkpIDwgcmVzdWx0cy5mYWlsdXJlX2xpbWl0X2NvdW50KCkpCisgICAg
ICAgIHJldHVybiBib29sKHJlc3VsdHMgYW5kIG5vdCByZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9m
YWlsdXJlX2xpbWl0KCkpCiAKICAgICBkZWYgZmFpbHVyZXNfd2VyZV9leHBlY3RlZChzZWxmLCBy
ZXN1bHRzKToKICAgICAgICAgaWYgbm90IHNlbGYuX2lzX3RydXN0d29ydGh5OgpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzX3VuaXR0
ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVz
X3VuaXR0ZXN0LnB5CmluZGV4IGI2Mzk4NTYuLmNhMDIwYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlc191bml0dGVzdC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRl
c3QucHkKQEAgLTMyLDEyICszMiwxMiBAQCBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmV4cGVjdGVk
ZmFpbHVyZXMgaW1wb3J0IEV4cGVjdGVkRmFpbHVyZXMKIAogCiBjbGFzcyBNb2NrUmVzdWx0cyhv
YmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmYWlsaW5nX3Rlc3RzPVtdLCBmYWlsdXJl
X2xpbWl0PTEwKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmFpbGluZ190ZXN0cz1bXSwgZGlk
X2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9RmFsc2UpOgogICAgICAgICBzZWxmLl9mYWlsaW5n
X3Rlc3RzID0gZmFpbGluZ190ZXN0cwotICAgICAgICBzZWxmLl9mYWlsdXJlX2xpbWl0X2NvdW50
ID0gZmFpbHVyZV9saW1pdAorICAgICAgICBzZWxmLl9kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9s
aW1pdCA9IGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0CiAKLSAgICBkZWYgZmFpbHVyZV9s
aW1pdF9jb3VudChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2ZhaWx1cmVfbGltaXRfY291
bnQKKyAgICBkZWYgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoc2VsZik6CisgICAgICAg
IHJldHVybiBzZWxmLl9kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdAogCiAgICAgZGVmIGZh
aWxpbmdfdGVzdHMoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9mYWlsaW5nX3Rlc3RzCkBA
IC00OSwxMiArNDksMTIgQEAgY2xhc3MgRXhwZWN0ZWRGYWlsdXJlc1Rlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogCiAgICAgZGVmIHRlc3RfY2FuX3RydXN0X3Jlc3VsdHMoc2VsZik6CiAgICAgICAg
IHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTm9uZSwgRmFsc2UpCi0gICAgICAgIHNlbGYuX2Fzc2Vy
dF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bXSwgZmFpbHVyZV9saW1pdD1O
b25lKSwgRmFsc2UpCi0gICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMo
ZmFpbGluZ190ZXN0cz1bXSwgZmFpbHVyZV9saW1pdD0xMCksIEZhbHNlKQotICAgICAgICBzZWxm
Ll9hc3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9WzFdLCBmYWlsdXJl
X2xpbWl0PU5vbmUpLCBGYWxzZSkKLSAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2Nr
UmVzdWx0cyhmYWlsaW5nX3Rlc3RzPVsxXSwgZmFpbHVyZV9saW1pdD0yKSwgVHJ1ZSkKLSAgICAg
ICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rlc3RzPVsxXSwg
ZmFpbHVyZV9saW1pdD0xKSwgRmFsc2UpCi0gICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3Qo
TW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bMSwgMl0sIGZhaWx1cmVfbGltaXQ9MSksIEZhbHNl
KQorICAgICAgICBzZWxmLl9hc3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVz
dHM9W10sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PUZhbHNlKSwgVHJ1ZSkKKyAgICAg
ICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rlc3RzPVtdLCBk
aWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1UcnVlKSwgRmFsc2UpCisgICAgICAgIHNlbGYu
X2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bMV0sIGRpZF9leGNl
ZWRfdGVzdF9mYWlsdXJlX2xpbWl0PUZhbHNlKSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0
X2Nhbl90cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rlc3RzPVsxXSwgZGlkX2V4Y2VlZF90ZXN0
X2ZhaWx1cmVfbGltaXQ9VHJ1ZSksIEZhbHNlKQorICAgICAgICBzZWxmLl9hc3NlcnRfY2FuX3Ry
dXN0KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9WzEsIDJdLCBkaWRfZXhjZWVkX3Rlc3RfZmFp
bHVyZV9saW1pdD1GYWxzZSksIFRydWUpCisgICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3Qo
TW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bMSwgMl0sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJl
X2xpbWl0PVRydWUpLCBGYWxzZSkKIAogICAgIGRlZiBfYXNzZXJ0X2V4cGVjdGVkKHNlbGYsIGV4
cGVjdGVkX2ZhaWx1cmVzLCBmYWlsdXJlcywgZXhwZWN0ZWQpOgogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGV4cGVjdGVkX2ZhaWx1cmVzLmZhaWx1cmVzX3dlcmVfZXhwZWN0ZWQoTW9ja1Jlc3Vs
dHMoZmFpbHVyZXMpKSwgZXhwZWN0ZWQpCkBAIC03OSwxNyArNzksMTcgQEAgY2xhc3MgRXhwZWN0
ZWRGYWlsdXJlc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBmYWlsdXJlcy51cGRh
dGUoTW9ja1Jlc3VsdHMoWydmb28uaHRtbCddKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChm
YWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKE1vY2tSZXN1bHRzKFsnZm9vLmh0
bWwnLCAnYmFyLmh0bWwnXSkpLCBzZXQoWydiYXIuaHRtbCddKSkKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKE1vY2tSZXN1bHRz
KFsnYmF6Lmh0bWwnXSkpLCBzZXQoWydiYXouaHRtbCddKSkKLSAgICAgICAgdW5ib3VuZGVkX3Jl
c3VsdHMgPSBNb2NrUmVzdWx0cyhbJ2Jhei5odG1sJywgJ3F1eC5odG1sJywgJ3RhY28uaHRtbCdd
LCBmYWlsdXJlX2xpbWl0PTMpCisgICAgICAgIHVuYm91bmRlZF9yZXN1bHRzID0gTW9ja1Jlc3Vs
dHMoWydiYXouaHRtbCcsICdxdXguaHRtbCcsICd0YWNvLmh0bWwnXSwgZGlkX2V4Y2VlZF90ZXN0
X2ZhaWx1cmVfbGltaXQ9VHJ1ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWlsdXJlcy51
bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKHVuYm91bmRlZF9yZXN1bHRzKSwgc2V0KFsnYmF6
Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10pKQotICAgICAgICB1bmJvdW5kZWRfcmVz
dWx0c193aXRoX2V4aXN0aW5nX2ZhaWx1cmUgPSBNb2NrUmVzdWx0cyhbJ2Zvby5odG1sJywgJ2Jh
ei5odG1sJywgJ3F1eC5odG1sJywgJ3RhY28uaHRtbCddLCBmYWlsdXJlX2xpbWl0PTQpCisgICAg
ICAgIHVuYm91bmRlZF9yZXN1bHRzX3dpdGhfZXhpc3RpbmdfZmFpbHVyZSA9IE1vY2tSZXN1bHRz
KFsnZm9vLmh0bWwnLCAnYmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10sIGRpZF9l
eGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PVRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCh1bmJvdW5kZWRfcmVzdWx0c193
aXRoX2V4aXN0aW5nX2ZhaWx1cmUpLCBzZXQoWydiYXouaHRtbCcsICdxdXguaHRtbCcsICd0YWNv
Lmh0bWwnXSkpCiAKICAgICBkZWYgdGVzdF91bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkX3do
ZW5fdHJlZV9pc19ob3NlZChzZWxmKToKICAgICAgICAgZmFpbHVyZXMgPSBFeHBlY3RlZEZhaWx1
cmVzKCkKLSAgICAgICAgZmFpbHVyZXMudXBkYXRlKE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAn
YmFuYW5hLmh0bWwnXSwgZmFpbHVyZV9saW1pdD0yKSkKKyAgICAgICAgZmFpbHVyZXMudXBkYXRl
KE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmFuYW5hLmh0bWwnXSwgZGlkX2V4Y2VlZF90ZXN0
X2ZhaWx1cmVfbGltaXQ9VHJ1ZSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmFpbHVyZXMu
dW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZChNb2NrUmVzdWx0cyhbJ2Zvby5odG1sJywgJ2Jh
ci5odG1sJ10pKSwgTm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWlsdXJlcy51bmV4
cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKE1vY2tSZXN1bHRzKFsnYmF6Lmh0bWwnXSkpLCBOb25l
KQotICAgICAgICB1bmJvdW5kZWRfcmVzdWx0cyA9IE1vY2tSZXN1bHRzKFsnYmF6Lmh0bWwnLCAn
cXV4Lmh0bWwnLCAndGFjby5odG1sJ10sIGZhaWx1cmVfbGltaXQ9MykKKyAgICAgICAgdW5ib3Vu
ZGVkX3Jlc3VsdHMgPSBNb2NrUmVzdWx0cyhbJ2Jhei5odG1sJywgJ3F1eC5odG1sJywgJ3RhY28u
aHRtbCddLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1UcnVlKQogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGZhaWx1cmVzLnVuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQodW5ib3Vu
ZGVkX3Jlc3VsdHMpLCBOb25lKQotICAgICAgICB1bmJvdW5kZWRfcmVzdWx0c193aXRoX2V4aXN0
aW5nX2ZhaWx1cmUgPSBNb2NrUmVzdWx0cyhbJ2Zvby5odG1sJywgJ2Jhei5odG1sJywgJ3F1eC5o
dG1sJywgJ3RhY28uaHRtbCddLCBmYWlsdXJlX2xpbWl0PTQpCisgICAgICAgIHVuYm91bmRlZF9y
ZXN1bHRzX3dpdGhfZXhpc3RpbmdfZmFpbHVyZSA9IE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAn
YmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10sIGRpZF9leGNlZWRfdGVzdF9mYWls
dXJlX2xpbWl0PVRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmFpbHVyZXMudW5leHBl
Y3RlZF9mYWlsdXJlc19vYnNlcnZlZCh1bmJvdW5kZWRfcmVzdWx0c193aXRoX2V4aXN0aW5nX2Zh
aWx1cmUpLCBOb25lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXIucHkKaW5kZXggYTllNTNkZC4uYzMyOGU1YiAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVz
dWx0c3JlYWRlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91
dHRlc3RyZXN1bHRzcmVhZGVyLnB5CkBAIC03MCwxMCArNzAsNiBAQCBjbGFzcyBMYXlvdXRUZXN0
UmVzdWx0c1JlYWRlcihvYmplY3QpOgogICAgICAgICBsYXlvdXRfdGVzdF9yZXN1bHRzID0gc2Vs
Zi5fY3JlYXRlX2xheW91dF90ZXN0X3Jlc3VsdHMoKQogICAgICAgICB1bml0X3Rlc3RfcmVzdWx0
cyA9IHNlbGYuX2NyZWF0ZV91bml0X3Rlc3RfcmVzdWx0cygpCiAgICAgICAgIGlmIGxheW91dF90
ZXN0X3Jlc3VsdHM6Ci0gICAgICAgICAgICAjIEZJWE1FOiBUaGlzIGlzIHVzZWQgdG8gZGV0ZWN0
IGlmIHdlIGhhZCBOIGZhaWx1cmVzIGR1ZSB0bwotICAgICAgICAgICAgIyBOIHRlc3RzIGZhaWxp
bmcsIG9yIGlmIHdlIGhpdCB0aGUgImV4aXQtYWZ0ZXItbi1mYWlsdXJlcyIgbGltaXQuCi0gICAg
ICAgICAgICAjIFRoZXNlIGRheXMgd2UgY291bGQganVzdCBjaGVjayBmb3IgdGhlICJpbnRlcnJ1
cHRlZCIga2V5IGluIHJlc3VsdHMuanNvbiBpbnN0ZWFkIQotICAgICAgICAgICAgbGF5b3V0X3Rl
c3RfcmVzdWx0cy5zZXRfZmFpbHVyZV9saW1pdF9jb3VudChSdW5UZXN0cy5OT05fSU5URVJBQ1RJ
VkVfRkFJTFVSRV9MSU1JVF9DT1VOVCkKICAgICAgICAgICAgIGlmIHVuaXRfdGVzdF9yZXN1bHRz
OgogICAgICAgICAgICAgICAgIGxheW91dF90ZXN0X3Jlc3VsdHMuYWRkX3VuaXRfdGVzdF9mYWls
dXJlcyh1bml0X3Rlc3RfcmVzdWx0cykKICAgICAgICAgcmV0dXJuIGxheW91dF90ZXN0X3Jlc3Vs
dHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVz
dHJlc3VsdHNyZWFkZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0LnB5CmluZGV4IGM3NzliYjguLmJh
YmYwNDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0
dGVzdHJlc3VsdHNyZWFkZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlcl91bml0dGVzdC5weQpAQCAtNjgsNyAr
NjgsNyBAQCBjbGFzcyBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlclRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgIGRlZiB0ZXN0X21pc3NpbmdfdW5pdF90ZXN0X3Jlc3VsdHNfcGF0aChzZWxmKToK
ICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKICAgICAgICAgcmVhZGVyID0gTGF5b3V0VGVzdFJl
c3VsdHNSZWFkZXIoaG9zdCwgIi9tb2NrLXJlc3VsdHMiLCAiL3Zhci9sb2dzIikKLSAgICAgICAg
cmVhZGVyLl9jcmVhdGVfbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IGxhbWJkYTogTGF5b3V0VGVzdFJl
c3VsdHMoW10pCisgICAgICAgIHJlYWRlci5fY3JlYXRlX2xheW91dF90ZXN0X3Jlc3VsdHMgPSBs
YW1iZGE6IExheW91dFRlc3RSZXN1bHRzKHRlc3RfcmVzdWx0cz1bXSwgZGlkX2V4Y2VlZF90ZXN0
X2ZhaWx1cmVfbGltaXQ9RmFsc2UpCiAgICAgICAgIHJlYWRlci5fY3JlYXRlX3VuaXRfdGVzdF9y
ZXN1bHRzID0gbGFtYmRhOiBOb25lCiAgICAgICAgICMgbGF5b3V0X3Rlc3RfcmVzdWx0cyBzaG91
bGRuJ3QgcmFpc2UgZXZlbiBpZiB0aGUgdW5pdCB0ZXN0cyB4bWwgZmlsZSBpcyBtaXNzaW5nLgog
ICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZWFkZXIucmVzdWx0cygpLCBOb25lKQpAQCAt
ODEsMTAgKzgxLDkgQEAgY2xhc3MgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXJUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocmVhZGVyLnJlc3VsdHMoKSkK
ICAgICAgICAgcmVhZGVyLl9yZWFkX2ZpbGVfY29udGVudHMgPSBsYW1iZGEgcGF0aDogIiIKICAg
ICAgICAgc2VsZi5hc3NlcnRJc05vbmUocmVhZGVyLnJlc3VsdHMoKSkKLSAgICAgICAgcmVhZGVy
Ll9jcmVhdGVfbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IGxhbWJkYTogTGF5b3V0VGVzdFJlc3VsdHMo
W10pCisgICAgICAgIHJlYWRlci5fY3JlYXRlX2xheW91dF90ZXN0X3Jlc3VsdHMgPSBsYW1iZGE6
IExheW91dFRlc3RSZXN1bHRzKHRlc3RfcmVzdWx0cz1bXSwgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1
cmVfbGltaXQ9RmFsc2UpCiAgICAgICAgIHJlc3VsdHMgPSByZWFkZXIucmVzdWx0cygpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlc3VsdHMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocmVzdWx0cy5mYWlsdXJlX2xpbWl0X2NvdW50KCksIDMwKSAgIyBUaGlzIHZhbHVlIG1hdGNo
ZXMgUnVuVGVzdHMuTk9OX0lOVEVSQUNUSVZFX0ZBSUxVUkVfTElNSVRfQ09VTlQKIAogICAgIGRl
ZiB0ZXN0X2FyY2hpdmVfbGFzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKHNlbGYpOgogICAgICAgICBo
b3N0ID0gTW9ja0hvc3QoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3NlcnZlcnMvcmViYXNlbGluZXNlcnZlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zZXJ2ZXJzL3JlYmFzZWxpbmVzZXJ2ZXJfdW5pdHRlc3QucHkKaW5kZXggY2Jm
OTA3My4uZjA3MDYzYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3Nl
cnZlcnMvcmViYXNlbGluZXNlcnZlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc2VydmVycy9yZWJhc2VsaW5lc2VydmVyX3VuaXR0ZXN0LnB5CkBAIC0yMDUs
NyArMjA1LDcgQEAgY2xhc3MgUmViYXNlbGluZVRlc3RUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICAgICAgICAgIF0pCiAKICAgICBkZWYgdGVzdF9nYXRoZXJfYmFzZWxpbmVzKHNlbGYpOgot
ICAgICAgICBleGFtcGxlX2pzb24gPSByZXN1bHRzanNvbnBhcnNlcl91bml0dGVzdC5SZXN1bHRz
SlNPTlBhcnNlclRlc3QuX2V4YW1wbGVfZnVsbF9yZXN1bHRzX2pzb24KKyAgICAgICAgZXhhbXBs
ZV9qc29uID0gcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRlc3QuUGFyc2VkSlNPTlJlc3VsdHNUZXN0
Ll9leGFtcGxlX2Z1bGxfcmVzdWx0c19qc29uCiAgICAgICAgIHJlc3VsdHNfanNvbiA9IGpzb24u
bG9hZHMoc3RyaXBfanNvbl93cmFwcGVyKGV4YW1wbGVfanNvbikpCiAgICAgICAgIHNlcnZlciA9
IFJlYmFzZWxpbmVTZXJ2ZXIoKQogICAgICAgICBzZXJ2ZXIuX3Rlc3RfY29uZmlnID0gZ2V0X3Rl
c3RfY29uZmlnKCkKLS0gCjEuOS4zIChBcHBsZSBHaXQtNTApCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238966</attachid>
            <date>2014-09-30 15:06:18 -0700</date>
            <delta_ts>2014-09-30 15:15:27 -0700</delta_ts>
            <desc>Adds periods to sentences in changelog, and adds test case for interrupted: false.</desc>
            <filename>0001-LayoutTestResults-and-ExpectedFailures-should-know-a.patch</filename>
            <type>text/plain</type>
            <size>29899</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSA3ZjAzMzc2MzNkNDE0NGZiYzQ0MDgyZmYzMDdlYTk1NTE1YWFkZmZkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDMwIFNlcCAyMDE0IDE0OjQ5OjQ1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
TGF5b3V0VGVzdFJlc3VsdHMgYW5kIEV4cGVjdGVkRmFpbHVyZXMgc2hvdWxkIGtub3cgYWJvdXQg
dGhlCiBpbnRlcnJ1cHRlZCBmbGFnIGZyb20gdGhlIGpzb24gcmVzdWx0cyBmaWxlCiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MjI5CgpSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KCkNoYW5nZXMgTGF5b3V0VGVzdFJlc3VsdHMgdG8gdXNlIHRoZSBpbnRlcnJ1
cHRlZCBmbGFnIGluc3RlYWQgb2YKY291bnRpbmcgZmFpbHVyZXMuCgoqIFNjcmlwdHMvd2Via2l0
cHkvY29tbW9uL25ldC9idWlsZGJvdC9idWlsZGJvdF91bml0dGVzdC5weToKKEJ1aWxkZXJUZXN0
Ll9pbnN0YWxsX2ZldGNoX2J1aWxkLl9tb2NrX2ZldGNoX2J1aWxkKToKKEJ1aWxkZXJUZXN0LnRl
c3RfbGF0ZXN0X2xheW91dF90ZXN0X3Jlc3VsdHMpOgoqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weToKUmVtb3ZlcyBub3Rpb24gb2YgZmFpbHVyZV9saW1p
dF9jb3VudCwgYW5kIGFkZHMKZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQKCihMYXlvdXRU
ZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKToKKExheW91dFRlc3RSZXN1bHRzLl9faW5p
dF9fKToKKExheW91dFRlc3RSZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KToK
KExheW91dFRlc3RSZXN1bHRzKTogRGVsZXRlZC4KKExheW91dFRlc3RSZXN1bHRzLnNldF9mYWls
dXJlX2xpbWl0X2NvdW50KTogRGVsZXRlZC4KKExheW91dFRlc3RSZXN1bHRzLmZhaWx1cmVfbGlt
aXRfY291bnQpOiBEZWxldGVkLgoqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0
ZXN0cmVzdWx0c191bml0dGVzdC5weToKUmVtb3ZlcyB1bml0IHRlc3QgZm9yIGZhaWx1cmVfbGlt
aXRfY291bnQgbG9naWMKCihMYXlvdXRUZXN0UmVzdWx0c1Rlc3QudGVzdF9zZXRfZmFpbHVyZV9s
aW1pdF9jb3VudCk6IERlbGV0ZWQuCiogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3Vs
dHNqc29ucGFyc2VyLnB5OgpJbnN0ZWFkIG9mIHByb3ZpZGluZyBhIGNsYXNzIG1ldGhvZCB0aGF0
IHJldHVybnMgYSBsaXN0IG9mClRlc3RSZXN1bHRzIG9iamVjdHMsIHJlc3VsdHNqc29ucGFyc2Vy
IG5vdyBwcm92aWRlcyBhIGNsYXNzClBhcnNlZEpTT05SZXN1bHRzIHRoYXQgc2VydmVzIGFzIGFu
IGludGVyZmFjZSBiZXR3ZWVuIHRoZSByZXN1bHRzLmpzb24KZmlsZSBhbmQgdGhlIHJlc3Qgb2Yg
d2Via2l0cHkuCgooUGFyc2VkSlNPTlJlc3VsdHMpOgooUGFyc2VkSlNPTlJlc3VsdHMuX19pbml0
X18pOgooUGFyc2VkSlNPTlJlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQpOgoo
UGFyc2VkSlNPTlJlc3VsdHMudGVzdF9yZXN1bHRzKToKKFJlc3VsdHNKU09OUGFyc2VyKTogRGVs
ZXRlZC4KKFJlc3VsdHNKU09OUGFyc2VyLnBhcnNlX3Jlc3VsdHNfanNvbik6IERlbGV0ZWQuCiog
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2VyX3VuaXR0ZXN0LnB5
OgpVcGRhdGVzIHRoZSB1bml0IHRlc3Qgc28gdGhhdCBpdCBjYW4gdGVzdCB0aGUgbmV3IFJlc3Vs
dHNKU09OUGFyc2VyCmNsYXNzLgoKKFBhcnNlZEpTT05SZXN1bHRzVGVzdCk6Cih0ZXN0X2Jhc2lj
KToKKFJlc3VsdHNKU09OUGFyc2VyVGVzdCk6IERlbGV0ZWQuCiogU2NyaXB0cy93ZWJraXRweS90
b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHk6ClVwZGF0ZXMgdGhlIHVuaXQgdGVz
dCB0byBpbnN0YW50aWF0ZSBSZXN1bHRzSlNPTlBhcnNlciBvYmplY3RzIHJhdGhlcgp0aGFuIHNp
bXBsZSBsaXN0cyBvZiBUZXN0UmVzdWx0IG9iamVjdHMKCihNb2NrQ29tbWl0UXVldWUudGVzdF9y
ZXN1bHRzKToKKEZhaWxpbmdUZXN0Q29tbWl0UXVldWUudGVzdF9yZXN1bHRzKToKKHRlc3RfZmxh
a3lfdGVzdF9mYWlsdXJlKToKKHRlc3RfZmFpbGVkX2FyY2hpdmUpOgoqIFNjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlcy5weToKVXBkYXRlcyBFeHBlY3RlZEZhaWx1cmVz
IHRvIHVzZSB0aGUgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQKbWV0aG9kIHJhdGhlciB0
aGFuIGNvdW50aW5nIHRoZSBudW1iZXIgb2YgZmFpbGVkIHRlc3RzLgoKKEV4cGVjdGVkRmFpbHVy
ZXMuX3Nob3VsZF90cnVzdCk6CiogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZh
aWx1cmVzX3VuaXR0ZXN0LnB5OgpVcGRhdGVzIE1vY2tSZXN1bHRzIHRvIG1vcmUgY2xvc2VseSBy
ZXNlbWJsZSB0aGUgdXBkYXRlZApMYXlvdXRUZXN0UmVzdWx0cyBjbGFzcwoKKE1vY2tSZXN1bHRz
Ll9faW5pdF9fKToKKE1vY2tSZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KToK
KEV4cGVjdGVkRmFpbHVyZXNUZXN0LnRlc3RfY2FuX3RydXN0X3Jlc3VsdHMpOgooRXhwZWN0ZWRG
YWlsdXJlc1Rlc3QudGVzdF91bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKToKKEV4cGVjdGVk
RmFpbHVyZXNUZXN0LnRlc3RfdW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZF93aGVuX3RyZWVf
aXNfaG9zZWQpOgooTW9ja1Jlc3VsdHMuZmFpbHVyZV9saW1pdF9jb3VudCk6IERlbGV0ZWQuCiog
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlci5weToKUmVt
b3ZlcyBhIEZJWE1FIHJlZ2FyZGluZyB0aGUgdXNlIG9mIHRoZQpOT05fSU5URVJBQ1RJVkVfRkFJ
TFVSRV9MSU1JVF9DT1VOVCB2YWx1ZQoKKExheW91dFRlc3RSZXN1bHRzUmVhZGVyLnJlc3VsdHMp
OgoqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXJfdW5p
dHRlc3QucHk6ClVwZGF0ZXMgdGVzdCB0byBub3QgY2hlY2sgdGhlIG5vdy1ub25leGlzdGFudCBm
YWlsdXJlX2NvdW50X2xpbWl0Cm1ldGhvZAoKKHRlc3RfbWlzc2luZ191bml0X3Rlc3RfcmVzdWx0
c19wYXRoKToKKHRlc3RfbGF5b3V0X3Rlc3RfcmVzdWx0cyk6CiogU2NyaXB0cy93ZWJraXRweS90
b29sL3NlcnZlcnMvcmViYXNlbGluZXNlcnZlcl91bml0dGVzdC5weToKQWNjb3VudHMgZm9yIG5h
bWUgY2hhbmdlOiBSZXN1bHRzSlNPTlBhcnNlclRlc3QgLT4gUGFyc2VkSlNPTlBhcnNlclRlc3QK
CihSZWJhc2VsaW5lVGVzdFRlc3QudGVzdF9nYXRoZXJfYmFzZWxpbmVzKToKLS0tCiBUb29scy9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDg3ICsrKysrKysr
KysrKysrKysrKysrKysKIC4uLi9jb21tb24vbmV0L2J1aWxkYm90L2J1aWxkYm90X3VuaXR0ZXN0
LnB5ICAgICAgIHwgIDQgKy0KIC4uLi93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1
bHRzLnB5ICAgICAgIHwgMjcgKystLS0tLQogLi4uL2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3Vs
dHNfdW5pdHRlc3QucHkgICAgICAgfCAgNSAtLQogLi4uL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVz
dWx0c2pzb25wYXJzZXIucHkgICAgICAgfCAyNSArKysrKy0tCiAuLi4vY29tbW9uL25ldC9yZXN1
bHRzanNvbnBhcnNlcl91bml0dGVzdC5weSAgICAgICB8IDYyICsrKysrKysrKysrKysrLQogLi4u
L3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weSAgfCAxMCArLS0K
IC4uLi9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXMucHkgIHwgIDIg
Ky0KIC4uLi93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzX3VuaXR0ZXN0LnB5IHwg
MzAgKysrKy0tLS0KIC4uLi93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRl
ci5weSAgIHwgIDQgLQogLi4uL3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0
ZXN0LnB5ICAgfCAgNSArLQogLi4uL3Rvb2wvc2VydmVycy9yZWJhc2VsaW5lc2VydmVyX3VuaXR0
ZXN0LnB5ICAgICAgfCAgMiArLQogMTIgZmlsZXMgY2hhbmdlZCwgMTk2IGluc2VydGlvbnMoKyks
IDY3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCAwMjI1YThlLi41OTBlZGYxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTAgQEAKKzIwMTQtMDktMzAgIEph
a2UgTmllbHNlbiAgPGphY29iX25pZWxzZW5AYXBwbGUuY29tPgorCisgICAgICAgIExheW91dFRl
c3RSZXN1bHRzIGFuZCBFeHBlY3RlZEZhaWx1cmVzIHNob3VsZCBrbm93IGFib3V0IHRoZQorICAg
ICAgICBpbnRlcnJ1cHRlZCBmbGFnIGZyb20gdGhlIGpzb24gcmVzdWx0cyBmaWxlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzcyMjkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2VzIExheW91dFRl
c3RSZXN1bHRzIHRvIHVzZSB0aGUgaW50ZXJydXB0ZWQgZmxhZyBpbnN0ZWFkIG9mCisgICAgICAg
IGNvdW50aW5nIGZhaWx1cmVzLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L2J1aWxkYm90L2J1aWxkYm90X3VuaXR0ZXN0LnB5OgorICAgICAgICAoQnVpbGRlclRlc3Qu
X2luc3RhbGxfZmV0Y2hfYnVpbGQuX21vY2tfZmV0Y2hfYnVpbGQpOgorICAgICAgICAoQnVpbGRl
clRlc3QudGVzdF9sYXRlc3RfbGF5b3V0X3Rlc3RfcmVzdWx0cyk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzLnB5OgorICAgICAgICBSZW1v
dmVzIG5vdGlvbiBvZiBmYWlsdXJlX2xpbWl0X2NvdW50LCBhbmQgYWRkcworICAgICAgICBkaWRf
ZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdC4KKworICAgICAgICAoTGF5b3V0VGVzdFJlc3VsdHMu
cmVzdWx0c19mcm9tX3N0cmluZyk6CisgICAgICAgIChMYXlvdXRUZXN0UmVzdWx0cy5fX2luaXRf
Xyk6CisgICAgICAgIChMYXlvdXRUZXN0UmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9s
aW1pdCk6CisgICAgICAgIChMYXlvdXRUZXN0UmVzdWx0cyk6IERlbGV0ZWQuCisgICAgICAgIChM
YXlvdXRUZXN0UmVzdWx0cy5zZXRfZmFpbHVyZV9saW1pdF9jb3VudCk6IERlbGV0ZWQuCisgICAg
ICAgIChMYXlvdXRUZXN0UmVzdWx0cy5mYWlsdXJlX2xpbWl0X2NvdW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHNfdW5p
dHRlc3QucHk6CisgICAgICAgIFJlbW92ZXMgdW5pdCB0ZXN0IGZvciBmYWlsdXJlX2xpbWl0X2Nv
dW50IGxvZ2ljLgorCisgICAgICAgIChMYXlvdXRUZXN0UmVzdWx0c1Rlc3QudGVzdF9zZXRfZmFp
bHVyZV9saW1pdF9jb3VudCk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2VyLnB5OgorICAgICAgICBJbnN0ZWFkIG9mIHByb3Zp
ZGluZyBhIGNsYXNzIG1ldGhvZCB0aGF0IHJldHVybnMgYSBsaXN0IG9mCisgICAgICAgIFRlc3RS
ZXN1bHRzIG9iamVjdHMsIHJlc3VsdHNqc29ucGFyc2VyIG5vdyBwcm92aWRlcyBhIGNsYXNzCisg
ICAgICAgIFBhcnNlZEpTT05SZXN1bHRzIHRoYXQgc2VydmVzIGFzIGFuIGludGVyZmFjZSBiZXR3
ZWVuIHRoZSByZXN1bHRzLmpzb24KKyAgICAgICAgZmlsZSBhbmQgdGhlIHJlc3Qgb2Ygd2Via2l0
cHkuCisKKyAgICAgICAgKFBhcnNlZEpTT05SZXN1bHRzKToKKyAgICAgICAgKFBhcnNlZEpTT05S
ZXN1bHRzLl9faW5pdF9fKToKKyAgICAgICAgKFBhcnNlZEpTT05SZXN1bHRzLmRpZF9leGNlZWRf
dGVzdF9mYWlsdXJlX2xpbWl0KToKKyAgICAgICAgKFBhcnNlZEpTT05SZXN1bHRzLnRlc3RfcmVz
dWx0cyk6CisgICAgICAgIChSZXN1bHRzSlNPTlBhcnNlcik6IERlbGV0ZWQuCisgICAgICAgIChS
ZXN1bHRzSlNPTlBhcnNlci5wYXJzZV9yZXN1bHRzX2pzb24pOiBEZWxldGVkLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlcl91bml0dGVzdC5w
eToKKyAgICAgICAgVXBkYXRlcyB0aGUgdW5pdCB0ZXN0IHNvIHRoYXQgaXQgY2FuIHRlc3QgdGhl
IG5ldyBSZXN1bHRzSlNPTlBhcnNlcgorICAgICAgICBjbGFzcy4KKworICAgICAgICAoUGFyc2Vk
SlNPTlJlc3VsdHNUZXN0KToKKyAgICAgICAgKHRlc3RfYmFzaWMpOgorICAgICAgICAoUmVzdWx0
c0pTT05QYXJzZXJUZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weToKKyAgICAgICAgVXBkYXRlcyB0aGUg
dW5pdCB0ZXN0IHRvIGluc3RhbnRpYXRlIFJlc3VsdHNKU09OUGFyc2VyIG9iamVjdHMgcmF0aGVy
CisgICAgICAgIHRoYW4gc2ltcGxlIGxpc3RzIG9mIFRlc3RSZXN1bHQgb2JqZWN0cy4KKworICAg
ICAgICAoTW9ja0NvbW1pdFF1ZXVlLnRlc3RfcmVzdWx0cyk6CisgICAgICAgIChGYWlsaW5nVGVz
dENvbW1pdFF1ZXVlLnRlc3RfcmVzdWx0cyk6CisgICAgICAgICh0ZXN0X2ZsYWt5X3Rlc3RfZmFp
bHVyZSk6CisgICAgICAgICh0ZXN0X2ZhaWxlZF9hcmNoaXZlKToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXMucHk6CisgICAgICAgIFVwZGF0ZXMg
RXhwZWN0ZWRGYWlsdXJlcyB0byB1c2UgdGhlIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0
CisgICAgICAgIG1ldGhvZCByYXRoZXIgdGhhbiBjb3VudGluZyB0aGUgbnVtYmVyIG9mIGZhaWxl
ZCB0ZXN0cy4KKworICAgICAgICAoRXhwZWN0ZWRGYWlsdXJlcy5fc2hvdWxkX3RydXN0KToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRl
c3QucHk6CisgICAgICAgIFVwZGF0ZXMgTW9ja1Jlc3VsdHMgdG8gbW9yZSBjbG9zZWx5IHJlc2Vt
YmxlIHRoZSB1cGRhdGVkCisgICAgICAgIExheW91dFRlc3RSZXN1bHRzIGNsYXNzLgorCisgICAg
ICAgIChNb2NrUmVzdWx0cy5fX2luaXRfXyk6CisgICAgICAgIChNb2NrUmVzdWx0cy5kaWRfZXhj
ZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCk6CisgICAgICAgIChFeHBlY3RlZEZhaWx1cmVzVGVzdC50
ZXN0X2Nhbl90cnVzdF9yZXN1bHRzKToKKyAgICAgICAgKEV4cGVjdGVkRmFpbHVyZXNUZXN0LnRl
c3RfdW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCk6CisgICAgICAgIChFeHBlY3RlZEZhaWx1
cmVzVGVzdC50ZXN0X3VuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWRfd2hlbl90cmVlX2lzX2hv
c2VkKToKKyAgICAgICAgKE1vY2tSZXN1bHRzLmZhaWx1cmVfbGltaXRfY291bnQpOiBEZWxldGVk
LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNy
ZWFkZXIucHk6CisgICAgICAgIFJlbW92ZXMgYSBGSVhNRSByZWdhcmRpbmcgdGhlIHVzZSBvZiB0
aGUKKyAgICAgICAgTk9OX0lOVEVSQUNUSVZFX0ZBSUxVUkVfTElNSVRfQ09VTlQgdmFsdWUuCisK
KyAgICAgICAgKExheW91dFRlc3RSZXN1bHRzUmVhZGVyLnJlc3VsdHMpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXJfdW5pdHRlc3Qu
cHk6CisgICAgICAgIFVwZGF0ZXMgdGVzdCB0byBub3QgY2hlY2sgdGhlIG5vdy1ub25leGlzdGFu
dCBmYWlsdXJlX2NvdW50X2xpbWl0CisgICAgICAgIG1ldGhvZC4KKworICAgICAgICAodGVzdF9t
aXNzaW5nX3VuaXRfdGVzdF9yZXN1bHRzX3BhdGgpOgorICAgICAgICAodGVzdF9sYXlvdXRfdGVz
dF9yZXN1bHRzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9yZWJh
c2VsaW5lc2VydmVyX3VuaXR0ZXN0LnB5OgorICAgICAgICBBY2NvdW50cyBmb3IgbmFtZSBjaGFu
Z2U6IFJlc3VsdHNKU09OUGFyc2VyVGVzdCAtPgorCVBhcnNlZEpTT05QYXJzZXJUZXN0LgorCisg
ICAgICAgIChSZWJhc2VsaW5lVGVzdFRlc3QudGVzdF9nYXRoZXJfYmFzZWxpbmVzKToKKwogMjAx
NC0wOS0zMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBX
aW5kb3dzIEVXUyB3ZW50IHB1cnBsZSB3aGVuIGl0IGZhaWxlZCB0byBidWlsZApkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1aWxkYm90L2J1aWxkYm90X3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1aWxkYm90L2J1
aWxkYm90X3VuaXR0ZXN0LnB5CmluZGV4IGIwMDM5M2QuLjc2NzFkZWUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC9idWlsZGJvdF91bml0dGVz
dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVp
bGRib3RfdW5pdHRlc3QucHkKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgQnVpbGRlclRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgICAgIGlzX2dyZWVuPWJ1aWxkX251bWJlciA8
IDQKICAgICAgICAgICAgICkKICAgICAgICAgICAgIHJlc3VsdHMgPSBbc2VsZi5fbW9ja190ZXN0
X3Jlc3VsdCh0ZXN0bmFtZSkgZm9yIHRlc3RuYW1lIGluIGZhaWx1cmUoYnVpbGRfbnVtYmVyKV0K
LSAgICAgICAgICAgIGxheW91dF90ZXN0X3Jlc3VsdHMgPSBMYXlvdXRUZXN0UmVzdWx0cyhyZXN1
bHRzKQorICAgICAgICAgICAgbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IExheW91dFRlc3RSZXN1bHRz
KHRlc3RfcmVzdWx0cz1yZXN1bHRzLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1GYWxz
ZSkKICAgICAgICAgICAgIGRlZiBtb2NrX2xheW91dF90ZXN0X3Jlc3VsdHMoKToKICAgICAgICAg
ICAgICAgICByZXR1cm4gbGF5b3V0X3Rlc3RfcmVzdWx0cwogICAgICAgICAgICAgYnVpbGQubGF5
b3V0X3Rlc3RfcmVzdWx0cyA9IG1vY2tfbGF5b3V0X3Rlc3RfcmVzdWx0cwpAQCAtNjEsNyArNjEs
NyBAQCBjbGFzcyBCdWlsZGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYu
X2luc3RhbGxfZmV0Y2hfYnVpbGQobGFtYmRhIGJ1aWxkX251bWJlcjogWyJ0ZXN0MSIsICJ0ZXN0
MiJdKQogCiAgICAgZGVmIHRlc3RfbGF0ZXN0X2xheW91dF90ZXN0X3Jlc3VsdHMoc2VsZik6Ci0g
ICAgICAgIHNlbGYuYnVpbGRlci5mZXRjaF9sYXlvdXRfdGVzdF9yZXN1bHRzID0gbGFtYmRhIHJl
c3VsdHNfdXJsOiBMYXlvdXRUZXN0UmVzdWx0cyhbc2VsZi5fbW9ja190ZXN0X3Jlc3VsdCh0ZXN0
bmFtZSkgZm9yIHRlc3RuYW1lIGluIFsidGVzdDEiLCAidGVzdDIiXV0pCisgICAgICAgIHNlbGYu
YnVpbGRlci5mZXRjaF9sYXlvdXRfdGVzdF9yZXN1bHRzID0gbGFtYmRhIHJlc3VsdHNfdXJsOiBM
YXlvdXRUZXN0UmVzdWx0cyh0ZXN0X3Jlc3VsdHM9W3NlbGYuX21vY2tfdGVzdF9yZXN1bHQodGVz
dG5hbWUpIGZvciB0ZXN0bmFtZSBpbiBbInRlc3QxIiwgInRlc3QyIl1dLCBkaWRfZXhjZWVkX3Rl
c3RfZmFpbHVyZV9saW1pdD1GYWxzZSkKICAgICAgICAgc2VsZi5idWlsZGVyLmFjY3VtdWxhdGVk
X3Jlc3VsdHNfdXJsID0gbGFtYmRhOiAiaHR0cDovL2R1bW15X3VybC5vcmciCiAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShzZWxmLmJ1aWxkZXIubGF0ZXN0X2xheW91dF90ZXN0X3Jlc3VsdHMoKSkK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRl
c3RyZXN1bHRzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRl
c3RyZXN1bHRzLnB5CmluZGV4IGI4Y2IxNTcuLmU3NGNhNzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHMucHkKQEAgLTI4
LDcgKzI4LDcgQEAKIAogaW1wb3J0IGxvZ2dpbmcKIAotZnJvbSB3ZWJraXRweS5jb21tb24ubmV0
LnJlc3VsdHNqc29ucGFyc2VyIGltcG9ydCBSZXN1bHRzSlNPTlBhcnNlcgorZnJvbSB3ZWJraXRw
eS5jb21tb24ubmV0LnJlc3VsdHNqc29ucGFyc2VyIGltcG9ydCBQYXJzZWRKU09OUmVzdWx0cwog
ZnJvbSB3ZWJraXRweS50aGlyZHBhcnR5LkJlYXV0aWZ1bFNvdXAgaW1wb3J0IEJlYXV0aWZ1bFNv
dXAsIFNvdXBTdHJhaW5lcgogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9y
dCB0ZXN0X3Jlc3VsdHMKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQg
dGVzdF9mYWlsdXJlcwpAQCAtNTAsMjcgKzUwLDE2IEBAIGNsYXNzIExheW91dFRlc3RSZXN1bHRz
KG9iamVjdCk6CiAgICAgZGVmIHJlc3VsdHNfZnJvbV9zdHJpbmcoY2xzLCBzdHJpbmcpOgogICAg
ICAgICBpZiBub3Qgc3RyaW5nOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgdGVz
dF9yZXN1bHRzID0gUmVzdWx0c0pTT05QYXJzZXIucGFyc2VfcmVzdWx0c19qc29uKHN0cmluZykK
LSAgICAgICAgaWYgbm90IHRlc3RfcmVzdWx0czoKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0g
ICAgICAgIHJldHVybiBjbHModGVzdF9yZXN1bHRzKQorICAgICAgICBwYXJzZWRfcmVzdWx0cyA9
IFBhcnNlZEpTT05SZXN1bHRzKHN0cmluZykKKyAgICAgICAgcmV0dXJuIGNscyhwYXJzZWRfcmVz
dWx0cy50ZXN0X3Jlc3VsdHMoKSwgcGFyc2VkX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1
cmVfbGltaXQoKSkKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X3Jlc3VsdHMpOgotICAg
ICAgICBzZWxmLl90ZXN0X3Jlc3VsdHMgPSB0ZXN0X3Jlc3VsdHMKLSAgICAgICAgc2VsZi5fZmFp
bHVyZV9saW1pdF9jb3VudCA9IE5vbmUKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9yZXN1
bHRzLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCk6CiAgICAgICAgIHNlbGYuX3VuaXRf
dGVzdF9mYWlsdXJlcyA9IFtdCisgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0cyA9IHRlc3RfcmVz
dWx0cworICAgICAgICBzZWxmLl9kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCA9IGRpZF9l
eGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0CiAKLSAgICAjIEZJWE1FOiBydW4td2Via2l0LXRlc3Rz
IHNob3VsZCBzdG9yZSB0aGUgLS1leGl0LWFmdGVyLU4tZmFpbHVyZXMgdmFsdWUKLSAgICAjIChv
ciBzb21lIGluZGljYXRpb24gb2YgZWFybHkgZXhpdCkgc29tZXdoZXJlIGluIHRoZSByZXN1bHRz
Lmpzb24KLSAgICAjIGZpbGUuICBVbnRpbCBpdCBkb2VzLCBjYWxsZXJzIHNob3VsZCBzZXQgdGhl
IGxpbWl0IHRvCi0gICAgIyAtLWV4aXQtYWZ0ZXItTi1mYWlsdXJlcyB2YWx1ZSB1c2VkIGluIHRo
YXQgcnVuLiAgQ29uc3VtZXJzIG9mIExheW91dFRlc3RSZXN1bHRzCi0gICAgIyBtYXkgdXNlIHRo
YXQgdmFsdWUgdG8ga25vdyBpZiBhYnNlbmNlIGZyb20gdGhlIGZhaWx1cmUgbGlzdCBtZWFucyBQ
QVNTLgotICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4NDgx
Ci0gICAgZGVmIHNldF9mYWlsdXJlX2xpbWl0X2NvdW50KHNlbGYsIGxpbWl0KToKLSAgICAgICAg
c2VsZi5fZmFpbHVyZV9saW1pdF9jb3VudCA9IGxpbWl0Ci0KLSAgICBkZWYgZmFpbHVyZV9saW1p
dF9jb3VudChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2ZhaWx1cmVfbGltaXRfY291bnQK
KyAgICBkZWYgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoc2VsZik6CisgICAgICAgIHJl
dHVybiBzZWxmLl9kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdAogCiAgICAgZGVmIHRlc3Rf
cmVzdWx0cyhzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcmVzdWx0cwpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRz
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRl
c3RyZXN1bHRzX3VuaXR0ZXN0LnB5CmluZGV4IGVhNGU5MjcuLjg1MjA2OTMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0c191bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVz
dHJlc3VsdHNfdW5pdHRlc3QucHkKQEAgLTM2LDExICszNiw2IEBAIGZyb20gd2Via2l0cHkudGhp
cmRwYXJ0eS5CZWF1dGlmdWxTb3VwIGltcG9ydCBCZWF1dGlmdWxTb3VwCiAKIAogY2xhc3MgTGF5
b3V0VGVzdFJlc3VsdHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBkZWYgdGVzdF9zZXRf
ZmFpbHVyZV9saW1pdF9jb3VudChzZWxmKToKLSAgICAgICAgcmVzdWx0cyA9IExheW91dFRlc3RS
ZXN1bHRzKFtdKQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShyZXN1bHRzLmZhaWx1cmVfbGlt
aXRfY291bnQoKSkKLSAgICAgICAgcmVzdWx0cy5zZXRfZmFpbHVyZV9saW1pdF9jb3VudCgxMCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHRzLmZhaWx1cmVfbGltaXRfY291bnQoKSwg
MTApCiAKICAgICBkZWYgdGVzdF9yZXN1bHRzX2Zyb21fc3RyaW5nKHNlbGYpOgogICAgICAgICBz
ZWxmLmFzc2VydElzTm9uZShMYXlvdXRUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKE5v
bmUpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3Vs
dHNqc29ucGFyc2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3Vs
dHNqc29ucGFyc2VyLnB5CmluZGV4IDFhMmE3MGYuLjY4ODhhNDUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlci5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXIucHkKQEAg
LTEzNyw5ICsxMzcsOCBAQCBjbGFzcyBKU09OVGVzdFJlc3VsdChvYmplY3QpOgogICAgICAgICBy
ZXR1cm4gdGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQoc2VsZi5fdGVzdF9uYW1lLCBzZWxmLl9mYWls
dXJlcygpKQogCiAKLWNsYXNzIFJlc3VsdHNKU09OUGFyc2VyKG9iamVjdCk6Ci0gICAgQGNsYXNz
bWV0aG9kCi0gICAgZGVmIHBhcnNlX3Jlc3VsdHNfanNvbihjbHMsIGpzb25fc3RyaW5nKToKK2Ns
YXNzIFBhcnNlZEpTT05SZXN1bHRzKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGpz
b25fc3RyaW5nKToKICAgICAgICAgaWYgbm90IGpzb25fcmVzdWx0c19nZW5lcmF0b3IuaGFzX2pz
b25fd3JhcHBlcihqc29uX3N0cmluZyk6CiAgICAgICAgICAgICByZXR1cm4gTm9uZQogCkBAIC0x
NDksNyArMTQ4LDE5IEBAIGNsYXNzIFJlc3VsdHNKU09OUGFyc2VyKG9iamVjdCk6CiAgICAgICAg
IGpzb25fcmVzdWx0cyA9IFtdCiAgICAgICAgIGZvcl9lYWNoX3Rlc3QoanNvbl9kaWN0Wyd0ZXN0
cyddLCBsYW1iZGEgdGVzdCwgcmVzdWx0OiBqc29uX3Jlc3VsdHMuYXBwZW5kKEpTT05UZXN0UmVz
dWx0KHRlc3QsIHJlc3VsdCkpKQogCi0gICAgICAgICMgRklYTUU6IFdoYXQncyB0aGUgc2hvcnQg
c2V4eSBweXRob24gd2F5IHRvIGZpbHRlciBOb25lPwotICAgICAgICAjIEkgd291bGQgdXNlIFtm
b28uYmFyKCkgZm9yIGZvbyBpbiBmb29zIGlmIGZvby5iYXIoKV0gYnV0IGJhcigpIGlzIGV4cGVu
c2l2ZS4KLSAgICAgICAgdW5leHBlY3RlZF9mYWlsdXJlcyA9IFtyZXN1bHQudGVzdF9yZXN1bHQo
KSBmb3IgcmVzdWx0IGluIGpzb25fcmVzdWx0cyBpZiBub3QgcmVzdWx0LmRpZF9wYXNzX29yX3J1
bl9hc19leHBlY3RlZCgpXQotICAgICAgICByZXR1cm4gZmlsdGVyKGxhbWJkYSBhOiBhLCB1bmV4
cGVjdGVkX2ZhaWx1cmVzKQorICAgICAgICB1bmV4cGVjdGVkX2ZhaWx1cmVzID0gW10KKyAgICAg
ICAgZm9yIGpzb25fcmVzdWx0IGluIGpzb25fcmVzdWx0czoKKyAgICAgICAgICAgIGlmIGpzb25f
cmVzdWx0LmRpZF9wYXNzX29yX3J1bl9hc19leHBlY3RlZCgpOgorICAgICAgICAgICAgICAgIGNv
bnRpbnVlCisgICAgICAgICAgICB0ZXN0X3Jlc3VsdCA9IGpzb25fcmVzdWx0LnRlc3RfcmVzdWx0
KCkKKyAgICAgICAgICAgIGlmIHRlc3RfcmVzdWx0OgorICAgICAgICAgICAgICAgIHVuZXhwZWN0
ZWRfZmFpbHVyZXMuYXBwZW5kKHRlc3RfcmVzdWx0KQorCisgICAgICAgIHNlbGYuX3Rlc3RfcmVz
dWx0cyA9IHVuZXhwZWN0ZWRfZmFpbHVyZXMKKyAgICAgICAgc2VsZi5fZGlkX2V4Y2VlZF90ZXN0
X2ZhaWx1cmVfbGltaXQgPSBqc29uX2RpY3RbImludGVycnVwdGVkIl0KKworICAgIGRlZiBkaWRf
ZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2Rp
ZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0CisKKyAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYp
OgorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRzCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXJfdW5p
dHRlc3QucHkKaW5kZXggNWU3ZDNhNi4uYzZlMDFjMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2VyX3VuaXR0ZXN0LnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlcl91bml0
dGVzdC5weQpAQCAtMjgsMTIgKzI4LDEyIEBACiAKIGltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRl
c3QKIAotZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LnJlc3VsdHNqc29ucGFyc2VyIGltcG9ydCBS
ZXN1bHRzSlNPTlBhcnNlcgorZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LnJlc3VsdHNqc29ucGFy
c2VyIGltcG9ydCBQYXJzZWRKU09OUmVzdWx0cwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMu
bW9kZWxzIGltcG9ydCB0ZXN0X3Jlc3VsdHMKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1v
ZGVscyBpbXBvcnQgdGVzdF9mYWlsdXJlcwogCiAKLWNsYXNzIFJlc3VsdHNKU09OUGFyc2VyVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CitjbGFzcyBQYXJzZWRKU09OUmVzdWx0c1Rlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICMgVGhlIHJlYWwgZmlsZXMgaGF2ZSBubyB3aGl0ZXNwYWNlLCBi
dXQgbmV3bGluZXMgbWFrZSB0aGlzIG11Y2ggbW9yZSByZWFkYWJsZS4KIAogICAgIF9leGFtcGxl
X2Z1bGxfcmVzdWx0c19qc29uID0gIiIiQUREX1JFU1VMVFMoewpAQCAtNzIsNiArNzIsNTUgQEAg
Y2xhc3MgUmVzdWx0c0pTT05QYXJzZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIH0sCisgICAgImludGVycnVwdGVkIjogdHJ1ZSwKKyAgICAi
c2tpcHBlZCI6IDQ1MCwKKyAgICAibnVtX3JlZ3Jlc3Npb25zIjogMTUsCisgICAgImxheW91dF90
ZXN0c19kaXIiOiAiXC9iXC9idWlsZFwvc2xhdmVcL1dlYmtpdF9NYWMxMF81XC9idWlsZFwvc3Jj
XC90aGlyZF9wYXJ0eVwvV2ViS2l0XC9MYXlvdXRUZXN0cyIsCisgICAgInZlcnNpb24iOiAzLAor
ICAgICJudW1fcGFzc2VzIjogNzcsCisgICAgImhhc19wcmV0dHlfcGF0Y2giOiBmYWxzZSwKKyAg
ICAiZml4YWJsZSI6IDEyMjAsCisgICAgIm51bV9mbGFreSI6IDAsCisgICAgInVzZXNfZXhwZWN0
YXRpb25zX2ZpbGUiOiB0cnVlCit9KTsiIiIKKworICAgIF9ub3RfaW50ZXJydXB0ZWRfZXhhbXBs
ZV9mdWxsX3Jlc3VsdHNfanNvbiA9ICIiIkFERF9SRVNVTFRTKHsKKyAgICAidGVzdHMiOiB7Cisg
ICAgICAgICJmYXN0IjogeworICAgICAgICAgICAgImRvbSI6IHsKKyAgICAgICAgICAgICAgICAi
cHJvdG90eXBlLWluaGVyaXRhbmNlLmh0bWwiOiB7CisgICAgICAgICAgICAgICAgICAgICJleHBl
Y3RlZCI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgImFjdHVhbCI6ICJGQUlMIgorICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgInByb3RvdHlwZS1iYW5hbmEuaHRtbCI6
IHsKKyAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIkZBSUwiLAorICAgICAgICAgICAg
ICAgICAgICAiYWN0dWFsIjogIlBBU1MiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICAicHJvdG90eXBlLXRhY28uaHRtbCI6IHsKKyAgICAgICAgICAgICAgICAgICAgImV4cGVj
dGVkIjogIlBBU1MiLAorICAgICAgICAgICAgICAgICAgICAiYWN0dWFsIjogIlBBU1MgRkFJTCIK
KyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICJwcm90b3R5cGUtY2hvY29sYXRl
Lmh0bWwiOiB7CisgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJGQUlMIiwKKyAgICAg
ICAgICAgICAgICAgICAgImFjdHVhbCI6ICJGQUlMIgorICAgICAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAgICAgInByb3RvdHlwZS1zdHJhd2JlcnJ5Lmh0bWwiOiB7CisgICAgICAgICAgICAg
ICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgImFjdHVhbCI6
ICJGQUlMIFBBU1MiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9
LAorICAgICAgICAic3ZnIjogeworICAgICAgICAgICAgImR5bmFtaWMtdXBkYXRlcyI6IHsKKyAg
ICAgICAgICAgICAgICAiU1ZHRkVEcm9wU2hhZG93RWxlbWVudC1kb20tc3RkRGV2aWF0aW9uLWF0
dHIuaHRtbCI6IHsKKyAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIlBBU1MiLAorICAg
ICAgICAgICAgICAgICAgICAiYWN0dWFsIjogIklNQUdFIiwKKyAgICAgICAgICAgICAgICAgICAg
Imhhc19zdGRlcnIiOiB0cnVlCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgfSwKKyAgICAiaW50ZXJydXB0ZWQiOiBmYWxzZSwKICAgICAic2tpcHBlZCI6
IDQ1MCwKICAgICAibnVtX3JlZ3Jlc3Npb25zIjogMTUsCiAgICAgImxheW91dF90ZXN0c19kaXIi
OiAiXC9iXC9idWlsZFwvc2xhdmVcL1dlYmtpdF9NYWMxMF81XC9idWlsZFwvc3JjXC90aGlyZF9w
YXJ0eVwvV2ViS2l0XC9MYXlvdXRUZXN0cyIsCkBAIC04OCw1ICsxMzcsMTAgQEAgY2xhc3MgUmVz
dWx0c0pTT05QYXJzZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIHRlc3Rf
cmVzdWx0cy5UZXN0UmVzdWx0KCJzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRHJvcFNoYWRvd0Vs
ZW1lbnQtZG9tLXN0ZERldmlhdGlvbi1hdHRyLmh0bWwiLCBbdGVzdF9mYWlsdXJlcy5GYWlsdXJl
SW1hZ2VIYXNoTWlzbWF0Y2goKV0sIDApLAogICAgICAgICAgICAgdGVzdF9yZXN1bHRzLlRlc3RS
ZXN1bHQoImZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS5odG1sIiwgW3Rlc3RfZmFpbHVy
ZXMuRmFpbHVyZVRleHRNaXNtYXRjaCgpLCB0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVJbWFnZUhhc2hN
aXNtYXRjaCgpLCB0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVBdWRpb01pc21hdGNoKCldLCAwKSwKICAg
ICAgICAgXQotICAgICAgICByZXN1bHRzID0gUmVzdWx0c0pTT05QYXJzZXIucGFyc2VfcmVzdWx0
c19qc29uKHNlbGYuX2V4YW1wbGVfZnVsbF9yZXN1bHRzX2pzb24pCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoZXhwZWN0ZWRfcmVzdWx0cywgcmVzdWx0cykKKyAgICAgICAgcGFyc2VkX3Jlc3Vs
dHMgPSBQYXJzZWRKU09OUmVzdWx0cyhzZWxmLl9leGFtcGxlX2Z1bGxfcmVzdWx0c19qc29uKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX3Jlc3VsdHMsIHBhcnNlZF9yZXN1bHRz
LnRlc3RfcmVzdWx0cygpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocGFyc2VkX3Jlc3VsdHMu
ZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKSkKKworICAgIGRlZiB0ZXN0X2FsdGVybmF0
ZShzZWxmKToKKyAgICAgICAgcGFyc2VkX3Jlc3VsdHMgPSBQYXJzZWRKU09OUmVzdWx0cyhzZWxm
Ll9ub3RfaW50ZXJydXB0ZWRfZXhhbXBsZV9mdWxsX3Jlc3VsdHNfanNvbikKKyAgICAgICAgc2Vs
Zi5hc3NlcnRGYWxzZShwYXJzZWRfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1p
dCgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRx
dWV1ZXRhc2tfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Nv
bW1pdHF1ZXVldGFza191bml0dGVzdC5weQppbmRleCAxZWFiZGUxLi4xMWExMzlkIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVl
dGFza191bml0dGVzdC5weQpAQCAtNzMsNyArNzMsNyBAQCBjbGFzcyBNb2NrQ29tbWl0UXVldWUo
Q29tbWl0UXVldWVUYXNrRGVsZWdhdGUpOgogICAgICAgICByZXR1cm4gRXhwZWN0ZWRGYWlsdXJl
cygpCiAKICAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgotICAgICAgICByZXR1cm4gTm9uZQor
ICAgICAgICByZXR1cm4gTGF5b3V0VGVzdFJlc3VsdHModGVzdF9yZXN1bHRzPVtdLCBkaWRfZXhj
ZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1UcnVlKQogCiAgICAgZGVmIHJlcG9ydF9mbGFreV90ZXN0
cyhzZWxmLCBwYXRjaCwgZmxha3lfcmVzdWx0cywgcmVzdWx0c19hcmNoaXZlKToKICAgICAgICAg
Zmxha3lfdGVzdHMgPSBbcmVzdWx0LmZpbGVuYW1lIGZvciByZXN1bHQgaW4gZmxha3lfcmVzdWx0
c10KQEAgLTExMCw5ICsxMTAsNyBAQCBjbGFzcyBGYWlsaW5nVGVzdENvbW1pdFF1ZXVlKE1vY2tD
b21taXRRdWV1ZSk6CiAgICAgICAgICMgRG9lc24ndCBtYWtlIHNlbnNlIHRvIGFzayBmb3IgdGhl
IHRlc3RfcmVzdWx0cyB1bnRpbCB0aGUgdGVzdHMgaGF2ZSBydW4gYXQgbGVhc3Qgb25jZS4KICAg
ICAgICAgYXNzZXJ0KHNlbGYuX3Rlc3RfcnVuX2NvdW50ZXIgPj0gMCkKICAgICAgICAgZmFpbHVy
ZXNfZm9yX3J1biA9IHNlbGYuX3Rlc3RfZmFpbHVyZV9wbGFuW3NlbGYuX3Rlc3RfcnVuX2NvdW50
ZXJdCi0gICAgICAgIHJlc3VsdHMgPSBMYXlvdXRUZXN0UmVzdWx0cyhtYXAoc2VsZi5fbW9ja190
ZXN0X3Jlc3VsdCwgZmFpbHVyZXNfZm9yX3J1bikpCi0gICAgICAgICMgVGhpcyBtYWtlcyB0aGUg
cmVzdWx0cyB0cnVzdGFibGUgYnkgRXhwZWN0ZWRGYWlsdXJlcy4KLSAgICAgICAgcmVzdWx0cy5z
ZXRfZmFpbHVyZV9saW1pdF9jb3VudCgxMCkKKyAgICAgICAgcmVzdWx0cyA9IExheW91dFRlc3RS
ZXN1bHRzKHRlc3RfcmVzdWx0cz1tYXAoc2VsZi5fbW9ja190ZXN0X3Jlc3VsdCwgZmFpbHVyZXNf
Zm9yX3J1biksIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PShsZW4oc2VsZi5fdGVzdF9m
YWlsdXJlX3BsYW5bc2VsZi5fdGVzdF9ydW5fY291bnRlcl0pID49IDEwKSkKICAgICAgICAgcmV0
dXJuIHJlc3VsdHMKIAogCkBAIC0yODIsNyArMjgwLDcgQEAgY29tbWFuZF9mYWlsZWQ6IGZhaWx1
cmVfbWVzc2FnZT0nVW5hYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2gnIHNjcmlwdF9lcnJvcj0n
TU8KICAgICAgICAgXSkKICAgICAgICAgIyBDb21taXRRdWV1ZVRhc2sgd2lsbCBvbmx5IHJlcG9y
dCBmbGFreSB0ZXN0cyBpZiB3ZSBzdWNjZXNzZnVsbHkgcGFyc2VkCiAgICAgICAgICMgcmVzdWx0
cy5qc29uIGFuZCByZXR1cm5lZCBhIExheW91dFRlc3RSZXN1bHRzIG9iamVjdCwgc28gd2UgZmFr
ZSBvbmUuCi0gICAgICAgIGNvbW1pdF9xdWV1ZS50ZXN0X3Jlc3VsdHMgPSBsYW1iZGE6IExheW91
dFRlc3RSZXN1bHRzKFtdKQorICAgICAgICBjb21taXRfcXVldWUudGVzdF9yZXN1bHRzID0gbGFt
YmRhOiBMYXlvdXRUZXN0UmVzdWx0cyh0ZXN0X3Jlc3VsdHM9W10sIGRpZF9leGNlZWRfdGVzdF9m
YWlsdXJlX2xpbWl0PVRydWUpCiAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJydW5fd2Via2l0
X3BhdGNoOiBbJ2NsZWFuJ10KIGNvbW1hbmRfcGFzc2VkOiBzdWNjZXNzX21lc3NhZ2U9J0NsZWFu
ZWQgd29ya2luZyBkaXJlY3RvcnknIHBhdGNoPScxMDAwMCcKIHJ1bl93ZWJraXRfcGF0Y2g6IFsn
dXBkYXRlJ10KQEAgLTMxMyw3ICszMTEsNyBAQCBjb21tYW5kX3Bhc3NlZDogc3VjY2Vzc19tZXNz
YWdlPSdMYW5kZWQgcGF0Y2gnIHBhdGNoPScxMDAwMCcKICAgICAgICAgICAgIE5vbmUsCiAgICAg
ICAgICAgICBTY3JpcHRFcnJvcigiTU9DSyB0ZXN0cyBmYWlsdXJlIiksCiAgICAgICAgIF0pCi0g
ICAgICAgIGNvbW1pdF9xdWV1ZS50ZXN0X3Jlc3VsdHMgPSBsYW1iZGE6IExheW91dFRlc3RSZXN1
bHRzKFtdKQorICAgICAgICBjb21taXRfcXVldWUudGVzdF9yZXN1bHRzID0gbGFtYmRhOiBMYXlv
dXRUZXN0UmVzdWx0cyh0ZXN0X3Jlc3VsdHM9W10sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xp
bWl0PVRydWUpCiAgICAgICAgICMgSXQncyBwb3NzaWJsZSBkZWxlZ2F0ZSB0byBmYWlsIHRvIGFy
Y2hpdmUgbGF5b3V0IHRlc3RzLCBkb24ndCB0cnkgdG8gcmVwb3J0CiAgICAgICAgICMgZmxha3kg
dGVzdHMgd2hlbiB0aGF0IGhhcHBlbnMuCiAgICAgICAgIGNvbW1pdF9xdWV1ZS5hcmNoaXZlX2xh
c3RfdGVzdF9yZXN1bHRzID0gbGFtYmRhIHBhdGNoOiBOb25lCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXMucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXMucHkKaW5kZXggYzBjZmUyMS4u
MWUzNGM2OCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBl
Y3RlZGZhaWx1cmVzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZXhw
ZWN0ZWRmYWlsdXJlcy5weQpAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBFeHBlY3RlZEZhaWx1cmVz
KG9iamVjdCk6CiAKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgX3Nob3VsZF90cnVzdChjbHMs
IHJlc3VsdHMpOgotICAgICAgICByZXR1cm4gYm9vbChjbHMuX2hhc19mYWlsdXJlcyhyZXN1bHRz
KSBhbmQgcmVzdWx0cy5mYWlsdXJlX2xpbWl0X2NvdW50KCkgYW5kIGxlbihyZXN1bHRzLmZhaWxp
bmdfdGVzdHMoKSkgPCByZXN1bHRzLmZhaWx1cmVfbGltaXRfY291bnQoKSkKKyAgICAgICAgcmV0
dXJuIGJvb2wocmVzdWx0cyBhbmQgbm90IHJlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVf
bGltaXQoKSkKIAogICAgIGRlZiBmYWlsdXJlc193ZXJlX2V4cGVjdGVkKHNlbGYsIHJlc3VsdHMp
OgogICAgICAgICBpZiBub3Qgc2VsZi5faXNfdHJ1c3R3b3J0aHk6CmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRl
c3QucHkKaW5kZXggYjYzOTg1Ni4uY2EwMjBjMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlc191bml0dGVzdC5weQpA
QCAtMzIsMTIgKzMyLDEyIEBAIGZyb20gd2Via2l0cHkudG9vbC5ib3QuZXhwZWN0ZWRmYWlsdXJl
cyBpbXBvcnQgRXhwZWN0ZWRGYWlsdXJlcwogCiAKIGNsYXNzIE1vY2tSZXN1bHRzKG9iamVjdCk6
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZhaWxpbmdfdGVzdHM9W10sIGZhaWx1cmVfbGltaXQ9
MTApOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmYWlsaW5nX3Rlc3RzPVtdLCBkaWRfZXhjZWVk
X3Rlc3RfZmFpbHVyZV9saW1pdD1GYWxzZSk6CiAgICAgICAgIHNlbGYuX2ZhaWxpbmdfdGVzdHMg
PSBmYWlsaW5nX3Rlc3RzCi0gICAgICAgIHNlbGYuX2ZhaWx1cmVfbGltaXRfY291bnQgPSBmYWls
dXJlX2xpbWl0CisgICAgICAgIHNlbGYuX2RpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0ID0g
ZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQKIAotICAgIGRlZiBmYWlsdXJlX2xpbWl0X2Nv
dW50KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fZmFpbHVyZV9saW1pdF9jb3VudAorICAg
IGRlZiBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdChzZWxmKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuX2RpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0CiAKICAgICBkZWYgZmFpbGluZ190
ZXN0cyhzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2ZhaWxpbmdfdGVzdHMKQEAgLTQ5LDEy
ICs0OSwxMiBAQCBjbGFzcyBFeHBlY3RlZEZhaWx1cmVzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAKICAgICBkZWYgdGVzdF9jYW5fdHJ1c3RfcmVzdWx0cyhzZWxmKToKICAgICAgICAgc2VsZi5f
YXNzZXJ0X2Nhbl90cnVzdChOb25lLCBGYWxzZSkKLSAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90
cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rlc3RzPVtdLCBmYWlsdXJlX2xpbWl0PU5vbmUpLCBG
YWxzZSkKLSAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5n
X3Rlc3RzPVtdLCBmYWlsdXJlX2xpbWl0PTEwKSwgRmFsc2UpCi0gICAgICAgIHNlbGYuX2Fzc2Vy
dF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bMV0sIGZhaWx1cmVfbGltaXQ9
Tm9uZSksIEZhbHNlKQotICAgICAgICBzZWxmLl9hc3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1bHRz
KGZhaWxpbmdfdGVzdHM9WzFdLCBmYWlsdXJlX2xpbWl0PTIpLCBUcnVlKQotICAgICAgICBzZWxm
Ll9hc3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9WzFdLCBmYWlsdXJl
X2xpbWl0PTEpLCBGYWxzZSkKLSAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVz
dWx0cyhmYWlsaW5nX3Rlc3RzPVsxLCAyXSwgZmFpbHVyZV9saW1pdD0xKSwgRmFsc2UpCisgICAg
ICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bXSwg
ZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9RmFsc2UpLCBUcnVlKQorICAgICAgICBzZWxm
Ll9hc3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9W10sIGRpZF9leGNl
ZWRfdGVzdF9mYWlsdXJlX2xpbWl0PVRydWUpLCBGYWxzZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0
X2Nhbl90cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rlc3RzPVsxXSwgZGlkX2V4Y2VlZF90ZXN0
X2ZhaWx1cmVfbGltaXQ9RmFsc2UpLCBUcnVlKQorICAgICAgICBzZWxmLl9hc3NlcnRfY2FuX3Ry
dXN0KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9WzFdLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVy
ZV9saW1pdD1UcnVlKSwgRmFsc2UpCisgICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9j
a1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bMSwgMl0sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xp
bWl0PUZhbHNlKSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVz
dWx0cyhmYWlsaW5nX3Rlc3RzPVsxLCAyXSwgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9
VHJ1ZSksIEZhbHNlKQogCiAgICAgZGVmIF9hc3NlcnRfZXhwZWN0ZWQoc2VsZiwgZXhwZWN0ZWRf
ZmFpbHVyZXMsIGZhaWx1cmVzLCBleHBlY3RlZCk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ZXhwZWN0ZWRfZmFpbHVyZXMuZmFpbHVyZXNfd2VyZV9leHBlY3RlZChNb2NrUmVzdWx0cyhmYWls
dXJlcykpLCBleHBlY3RlZCkKQEAgLTc5LDE3ICs3OSwxNyBAQCBjbGFzcyBFeHBlY3RlZEZhaWx1
cmVzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGZhaWx1cmVzLnVwZGF0ZShNb2Nr
UmVzdWx0cyhbJ2Zvby5odG1sJ10pKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZhaWx1cmVz
LnVuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQoTW9ja1Jlc3VsdHMoWydmb28uaHRtbCcsICdi
YXIuaHRtbCddKSksIHNldChbJ2Jhci5odG1sJ10pKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGZhaWx1cmVzLnVuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQoTW9ja1Jlc3VsdHMoWydiYXou
aHRtbCddKSksIHNldChbJ2Jhei5odG1sJ10pKQotICAgICAgICB1bmJvdW5kZWRfcmVzdWx0cyA9
IE1vY2tSZXN1bHRzKFsnYmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10sIGZhaWx1
cmVfbGltaXQ9MykKKyAgICAgICAgdW5ib3VuZGVkX3Jlc3VsdHMgPSBNb2NrUmVzdWx0cyhbJ2Jh
ei5odG1sJywgJ3F1eC5odG1sJywgJ3RhY28uaHRtbCddLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVy
ZV9saW1pdD1UcnVlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZhaWx1cmVzLnVuZXhwZWN0
ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQodW5ib3VuZGVkX3Jlc3VsdHMpLCBzZXQoWydiYXouaHRtbCcs
ICdxdXguaHRtbCcsICd0YWNvLmh0bWwnXSkpCi0gICAgICAgIHVuYm91bmRlZF9yZXN1bHRzX3dp
dGhfZXhpc3RpbmdfZmFpbHVyZSA9IE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmF6Lmh0bWwn
LCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10sIGZhaWx1cmVfbGltaXQ9NCkKKyAgICAgICAgdW5i
b3VuZGVkX3Jlc3VsdHNfd2l0aF9leGlzdGluZ19mYWlsdXJlID0gTW9ja1Jlc3VsdHMoWydmb28u
aHRtbCcsICdiYXouaHRtbCcsICdxdXguaHRtbCcsICd0YWNvLmh0bWwnXSwgZGlkX2V4Y2VlZF90
ZXN0X2ZhaWx1cmVfbGltaXQ9VHJ1ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWlsdXJl
cy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKHVuYm91bmRlZF9yZXN1bHRzX3dpdGhfZXhp
c3RpbmdfZmFpbHVyZSksIHNldChbJ2Jhei5odG1sJywgJ3F1eC5odG1sJywgJ3RhY28uaHRtbCdd
KSkKIAogICAgIGRlZiB0ZXN0X3VuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWRfd2hlbl90cmVl
X2lzX2hvc2VkKHNlbGYpOgogICAgICAgICBmYWlsdXJlcyA9IEV4cGVjdGVkRmFpbHVyZXMoKQot
ICAgICAgICBmYWlsdXJlcy51cGRhdGUoTW9ja1Jlc3VsdHMoWydmb28uaHRtbCcsICdiYW5hbmEu
aHRtbCddLCBmYWlsdXJlX2xpbWl0PTIpKQorICAgICAgICBmYWlsdXJlcy51cGRhdGUoTW9ja1Jl
c3VsdHMoWydmb28uaHRtbCcsICdiYW5hbmEuaHRtbCddLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVy
ZV9saW1pdD1UcnVlKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWlsdXJlcy51bmV4cGVj
dGVkX2ZhaWx1cmVzX29ic2VydmVkKE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmFyLmh0bWwn
XSkpLCBOb25lKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZhaWx1cmVzLnVuZXhwZWN0ZWRf
ZmFpbHVyZXNfb2JzZXJ2ZWQoTW9ja1Jlc3VsdHMoWydiYXouaHRtbCddKSksIE5vbmUpCi0gICAg
ICAgIHVuYm91bmRlZF9yZXN1bHRzID0gTW9ja1Jlc3VsdHMoWydiYXouaHRtbCcsICdxdXguaHRt
bCcsICd0YWNvLmh0bWwnXSwgZmFpbHVyZV9saW1pdD0zKQorICAgICAgICB1bmJvdW5kZWRfcmVz
dWx0cyA9IE1vY2tSZXN1bHRzKFsnYmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10s
IGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PVRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCh1bmJvdW5kZWRfcmVz
dWx0cyksIE5vbmUpCi0gICAgICAgIHVuYm91bmRlZF9yZXN1bHRzX3dpdGhfZXhpc3RpbmdfZmFp
bHVyZSA9IE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAn
dGFjby5odG1sJ10sIGZhaWx1cmVfbGltaXQ9NCkKKyAgICAgICAgdW5ib3VuZGVkX3Jlc3VsdHNf
d2l0aF9leGlzdGluZ19mYWlsdXJlID0gTW9ja1Jlc3VsdHMoWydmb28uaHRtbCcsICdiYXouaHRt
bCcsICdxdXguaHRtbCcsICd0YWNvLmh0bWwnXSwgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGlt
aXQ9VHJ1ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2Zh
aWx1cmVzX29ic2VydmVkKHVuYm91bmRlZF9yZXN1bHRzX3dpdGhfZXhpc3RpbmdfZmFpbHVyZSks
IE5vbmUpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91
dHRlc3RyZXN1bHRzcmVhZGVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9s
YXlvdXR0ZXN0cmVzdWx0c3JlYWRlci5weQppbmRleCBhOWU1M2RkLi5jMzI4ZTViIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVh
ZGVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJl
c3VsdHNyZWFkZXIucHkKQEAgLTcwLDEwICs3MCw2IEBAIGNsYXNzIExheW91dFRlc3RSZXN1bHRz
UmVhZGVyKG9iamVjdCk6CiAgICAgICAgIGxheW91dF90ZXN0X3Jlc3VsdHMgPSBzZWxmLl9jcmVh
dGVfbGF5b3V0X3Rlc3RfcmVzdWx0cygpCiAgICAgICAgIHVuaXRfdGVzdF9yZXN1bHRzID0gc2Vs
Zi5fY3JlYXRlX3VuaXRfdGVzdF9yZXN1bHRzKCkKICAgICAgICAgaWYgbGF5b3V0X3Rlc3RfcmVz
dWx0czoKLSAgICAgICAgICAgICMgRklYTUU6IFRoaXMgaXMgdXNlZCB0byBkZXRlY3QgaWYgd2Ug
aGFkIE4gZmFpbHVyZXMgZHVlIHRvCi0gICAgICAgICAgICAjIE4gdGVzdHMgZmFpbGluZywgb3Ig
aWYgd2UgaGl0IHRoZSAiZXhpdC1hZnRlci1uLWZhaWx1cmVzIiBsaW1pdC4KLSAgICAgICAgICAg
ICMgVGhlc2UgZGF5cyB3ZSBjb3VsZCBqdXN0IGNoZWNrIGZvciB0aGUgImludGVycnVwdGVkIiBr
ZXkgaW4gcmVzdWx0cy5qc29uIGluc3RlYWQhCi0gICAgICAgICAgICBsYXlvdXRfdGVzdF9yZXN1
bHRzLnNldF9mYWlsdXJlX2xpbWl0X2NvdW50KFJ1blRlc3RzLk5PTl9JTlRFUkFDVElWRV9GQUlM
VVJFX0xJTUlUX0NPVU5UKQogICAgICAgICAgICAgaWYgdW5pdF90ZXN0X3Jlc3VsdHM6CiAgICAg
ICAgICAgICAgICAgbGF5b3V0X3Rlc3RfcmVzdWx0cy5hZGRfdW5pdF90ZXN0X2ZhaWx1cmVzKHVu
aXRfdGVzdF9yZXN1bHRzKQogICAgICAgICByZXR1cm4gbGF5b3V0X3Rlc3RfcmVzdWx0cwpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0
c3JlYWRlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5
b3V0dGVzdHJlc3VsdHNyZWFkZXJfdW5pdHRlc3QucHkKaW5kZXggYzc3OWJiOC4uYmFiZjA0NCAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVz
dWx0c3JlYWRlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0LnB5CkBAIC02OCw3ICs2OCw3IEBA
IGNsYXNzIExheW91dFRlc3RSZXN1bHRzUmVhZGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgZGVmIHRlc3RfbWlzc2luZ191bml0X3Rlc3RfcmVzdWx0c19wYXRoKHNlbGYpOgogICAgICAg
ICBob3N0ID0gTW9ja0hvc3QoKQogICAgICAgICByZWFkZXIgPSBMYXlvdXRUZXN0UmVzdWx0c1Jl
YWRlcihob3N0LCAiL21vY2stcmVzdWx0cyIsICIvdmFyL2xvZ3MiKQotICAgICAgICByZWFkZXIu
X2NyZWF0ZV9sYXlvdXRfdGVzdF9yZXN1bHRzID0gbGFtYmRhOiBMYXlvdXRUZXN0UmVzdWx0cyhb
XSkKKyAgICAgICAgcmVhZGVyLl9jcmVhdGVfbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IGxhbWJkYTog
TGF5b3V0VGVzdFJlc3VsdHModGVzdF9yZXN1bHRzPVtdLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVy
ZV9saW1pdD1GYWxzZSkKICAgICAgICAgcmVhZGVyLl9jcmVhdGVfdW5pdF90ZXN0X3Jlc3VsdHMg
PSBsYW1iZGE6IE5vbmUKICAgICAgICAgIyBsYXlvdXRfdGVzdF9yZXN1bHRzIHNob3VsZG4ndCBy
YWlzZSBldmVuIGlmIHRoZSB1bml0IHRlc3RzIHhtbCBmaWxlIGlzIG1pc3NpbmcuCiAgICAgICAg
IHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlYWRlci5yZXN1bHRzKCksIE5vbmUpCkBAIC04MSwxMCAr
ODEsOSBAQCBjbGFzcyBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlclRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICBzZWxmLmFzc2VydElzTm9uZShyZWFkZXIucmVzdWx0cygpKQogICAgICAg
ICByZWFkZXIuX3JlYWRfZmlsZV9jb250ZW50cyA9IGxhbWJkYSBwYXRoOiAiIgogICAgICAgICBz
ZWxmLmFzc2VydElzTm9uZShyZWFkZXIucmVzdWx0cygpKQotICAgICAgICByZWFkZXIuX2NyZWF0
ZV9sYXlvdXRfdGVzdF9yZXN1bHRzID0gbGFtYmRhOiBMYXlvdXRUZXN0UmVzdWx0cyhbXSkKKyAg
ICAgICAgcmVhZGVyLl9jcmVhdGVfbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IGxhbWJkYTogTGF5b3V0
VGVzdFJlc3VsdHModGVzdF9yZXN1bHRzPVtdLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1p
dD1GYWxzZSkKICAgICAgICAgcmVzdWx0cyA9IHJlYWRlci5yZXN1bHRzKCkKICAgICAgICAgc2Vs
Zi5hc3NlcnRJc05vdE5vbmUocmVzdWx0cykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1
bHRzLmZhaWx1cmVfbGltaXRfY291bnQoKSwgMzApICAjIFRoaXMgdmFsdWUgbWF0Y2hlcyBSdW5U
ZXN0cy5OT05fSU5URVJBQ1RJVkVfRkFJTFVSRV9MSU1JVF9DT1VOVAogCiAgICAgZGVmIHRlc3Rf
YXJjaGl2ZV9sYXN0X2xheW91dF90ZXN0X3Jlc3VsdHMoc2VsZik6CiAgICAgICAgIGhvc3QgPSBN
b2NrSG9zdCgpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVy
cy9yZWJhc2VsaW5lc2VydmVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3NlcnZlcnMvcmViYXNlbGluZXNlcnZlcl91bml0dGVzdC5weQppbmRleCBjYmY5MDczLi5m
MDcwNjNiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9y
ZWJhc2VsaW5lc2VydmVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zZXJ2ZXJzL3JlYmFzZWxpbmVzZXJ2ZXJfdW5pdHRlc3QucHkKQEAgLTIwNSw3ICsyMDUs
NyBAQCBjbGFzcyBSZWJhc2VsaW5lVGVzdFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICAgICAgXSkKIAogICAgIGRlZiB0ZXN0X2dhdGhlcl9iYXNlbGluZXMoc2VsZik6Ci0gICAgICAg
IGV4YW1wbGVfanNvbiA9IHJlc3VsdHNqc29ucGFyc2VyX3VuaXR0ZXN0LlJlc3VsdHNKU09OUGFy
c2VyVGVzdC5fZXhhbXBsZV9mdWxsX3Jlc3VsdHNfanNvbgorICAgICAgICBleGFtcGxlX2pzb24g
PSByZXN1bHRzanNvbnBhcnNlcl91bml0dGVzdC5QYXJzZWRKU09OUmVzdWx0c1Rlc3QuX2V4YW1w
bGVfZnVsbF9yZXN1bHRzX2pzb24KICAgICAgICAgcmVzdWx0c19qc29uID0ganNvbi5sb2Fkcyhz
dHJpcF9qc29uX3dyYXBwZXIoZXhhbXBsZV9qc29uKSkKICAgICAgICAgc2VydmVyID0gUmViYXNl
bGluZVNlcnZlcigpCiAgICAgICAgIHNlcnZlci5fdGVzdF9jb25maWcgPSBnZXRfdGVzdF9jb25m
aWcoKQotLSAKMS45LjMgKEFwcGxlIEdpdC01MCkKCg==
</data>
<flag name="review"
          id="263686"
          type_id="1"
          status="+"
          setter="dbates"
    />
    <flag name="commit-queue"
          id="263687"
          type_id="3"
          status="-"
          setter="dbates"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238969</attachid>
            <date>2014-09-30 15:15:27 -0700</date>
            <delta_ts>2014-09-30 15:58:31 -0700</delta_ts>
            <desc>Removes tab, and renames test.</desc>
            <filename>0001-LayoutTestResults-and-ExpectedFailures-should-know-a.patch</filename>
            <type>text/plain</type>
            <size>29912</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSA2ZTVjY2ZmMzkwNDViYTI2ZTU2MmNiMDBmMzllMTg0ZTcwYmYyYjRhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDMwIFNlcCAyMDE0IDE0OjQ5OjQ1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
TGF5b3V0VGVzdFJlc3VsdHMgYW5kIEV4cGVjdGVkRmFpbHVyZXMgc2hvdWxkIGtub3cgYWJvdXQg
dGhlCiBpbnRlcnJ1cHRlZCBmbGFnIGZyb20gdGhlIGpzb24gcmVzdWx0cyBmaWxlCiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MjI5CgpSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KCkNoYW5nZXMgTGF5b3V0VGVzdFJlc3VsdHMgdG8gdXNlIHRoZSBpbnRlcnJ1
cHRlZCBmbGFnIGluc3RlYWQgb2YKY291bnRpbmcgZmFpbHVyZXMuCgoqIFNjcmlwdHMvd2Via2l0
cHkvY29tbW9uL25ldC9idWlsZGJvdC9idWlsZGJvdF91bml0dGVzdC5weToKKEJ1aWxkZXJUZXN0
Ll9pbnN0YWxsX2ZldGNoX2J1aWxkLl9tb2NrX2ZldGNoX2J1aWxkKToKKEJ1aWxkZXJUZXN0LnRl
c3RfbGF0ZXN0X2xheW91dF90ZXN0X3Jlc3VsdHMpOgoqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weToKUmVtb3ZlcyBub3Rpb24gb2YgZmFpbHVyZV9saW1p
dF9jb3VudCwgYW5kIGFkZHMKZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQKCihMYXlvdXRU
ZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKToKKExheW91dFRlc3RSZXN1bHRzLl9faW5p
dF9fKToKKExheW91dFRlc3RSZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KToK
KExheW91dFRlc3RSZXN1bHRzKTogRGVsZXRlZC4KKExheW91dFRlc3RSZXN1bHRzLnNldF9mYWls
dXJlX2xpbWl0X2NvdW50KTogRGVsZXRlZC4KKExheW91dFRlc3RSZXN1bHRzLmZhaWx1cmVfbGlt
aXRfY291bnQpOiBEZWxldGVkLgoqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0
ZXN0cmVzdWx0c191bml0dGVzdC5weToKUmVtb3ZlcyB1bml0IHRlc3QgZm9yIGZhaWx1cmVfbGlt
aXRfY291bnQgbG9naWMKCihMYXlvdXRUZXN0UmVzdWx0c1Rlc3QudGVzdF9zZXRfZmFpbHVyZV9s
aW1pdF9jb3VudCk6IERlbGV0ZWQuCiogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3Vs
dHNqc29ucGFyc2VyLnB5OgpJbnN0ZWFkIG9mIHByb3ZpZGluZyBhIGNsYXNzIG1ldGhvZCB0aGF0
IHJldHVybnMgYSBsaXN0IG9mClRlc3RSZXN1bHRzIG9iamVjdHMsIHJlc3VsdHNqc29ucGFyc2Vy
IG5vdyBwcm92aWRlcyBhIGNsYXNzClBhcnNlZEpTT05SZXN1bHRzIHRoYXQgc2VydmVzIGFzIGFu
IGludGVyZmFjZSBiZXR3ZWVuIHRoZSByZXN1bHRzLmpzb24KZmlsZSBhbmQgdGhlIHJlc3Qgb2Yg
d2Via2l0cHkuCgooUGFyc2VkSlNPTlJlc3VsdHMpOgooUGFyc2VkSlNPTlJlc3VsdHMuX19pbml0
X18pOgooUGFyc2VkSlNPTlJlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQpOgoo
UGFyc2VkSlNPTlJlc3VsdHMudGVzdF9yZXN1bHRzKToKKFJlc3VsdHNKU09OUGFyc2VyKTogRGVs
ZXRlZC4KKFJlc3VsdHNKU09OUGFyc2VyLnBhcnNlX3Jlc3VsdHNfanNvbik6IERlbGV0ZWQuCiog
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2VyX3VuaXR0ZXN0LnB5
OgpVcGRhdGVzIHRoZSB1bml0IHRlc3Qgc28gdGhhdCBpdCBjYW4gdGVzdCB0aGUgbmV3IFJlc3Vs
dHNKU09OUGFyc2VyCmNsYXNzLgoKKFBhcnNlZEpTT05SZXN1bHRzVGVzdCk6Cih0ZXN0X2Jhc2lj
KToKKFJlc3VsdHNKU09OUGFyc2VyVGVzdCk6IERlbGV0ZWQuCiogU2NyaXB0cy93ZWJraXRweS90
b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHk6ClVwZGF0ZXMgdGhlIHVuaXQgdGVz
dCB0byBpbnN0YW50aWF0ZSBSZXN1bHRzSlNPTlBhcnNlciBvYmplY3RzIHJhdGhlcgp0aGFuIHNp
bXBsZSBsaXN0cyBvZiBUZXN0UmVzdWx0IG9iamVjdHMKCihNb2NrQ29tbWl0UXVldWUudGVzdF9y
ZXN1bHRzKToKKEZhaWxpbmdUZXN0Q29tbWl0UXVldWUudGVzdF9yZXN1bHRzKToKKHRlc3RfZmxh
a3lfdGVzdF9mYWlsdXJlKToKKHRlc3RfZmFpbGVkX2FyY2hpdmUpOgoqIFNjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlcy5weToKVXBkYXRlcyBFeHBlY3RlZEZhaWx1cmVz
IHRvIHVzZSB0aGUgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQKbWV0aG9kIHJhdGhlciB0
aGFuIGNvdW50aW5nIHRoZSBudW1iZXIgb2YgZmFpbGVkIHRlc3RzLgoKKEV4cGVjdGVkRmFpbHVy
ZXMuX3Nob3VsZF90cnVzdCk6CiogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZh
aWx1cmVzX3VuaXR0ZXN0LnB5OgpVcGRhdGVzIE1vY2tSZXN1bHRzIHRvIG1vcmUgY2xvc2VseSBy
ZXNlbWJsZSB0aGUgdXBkYXRlZApMYXlvdXRUZXN0UmVzdWx0cyBjbGFzcwoKKE1vY2tSZXN1bHRz
Ll9faW5pdF9fKToKKE1vY2tSZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KToK
KEV4cGVjdGVkRmFpbHVyZXNUZXN0LnRlc3RfY2FuX3RydXN0X3Jlc3VsdHMpOgooRXhwZWN0ZWRG
YWlsdXJlc1Rlc3QudGVzdF91bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKToKKEV4cGVjdGVk
RmFpbHVyZXNUZXN0LnRlc3RfdW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZF93aGVuX3RyZWVf
aXNfaG9zZWQpOgooTW9ja1Jlc3VsdHMuZmFpbHVyZV9saW1pdF9jb3VudCk6IERlbGV0ZWQuCiog
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlci5weToKUmVt
b3ZlcyBhIEZJWE1FIHJlZ2FyZGluZyB0aGUgdXNlIG9mIHRoZQpOT05fSU5URVJBQ1RJVkVfRkFJ
TFVSRV9MSU1JVF9DT1VOVCB2YWx1ZQoKKExheW91dFRlc3RSZXN1bHRzUmVhZGVyLnJlc3VsdHMp
OgoqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXJfdW5p
dHRlc3QucHk6ClVwZGF0ZXMgdGVzdCB0byBub3QgY2hlY2sgdGhlIG5vdy1ub25leGlzdGFudCBm
YWlsdXJlX2NvdW50X2xpbWl0Cm1ldGhvZAoKKHRlc3RfbWlzc2luZ191bml0X3Rlc3RfcmVzdWx0
c19wYXRoKToKKHRlc3RfbGF5b3V0X3Rlc3RfcmVzdWx0cyk6CiogU2NyaXB0cy93ZWJraXRweS90
b29sL3NlcnZlcnMvcmViYXNlbGluZXNlcnZlcl91bml0dGVzdC5weToKQWNjb3VudHMgZm9yIG5h
bWUgY2hhbmdlOiBSZXN1bHRzSlNPTlBhcnNlclRlc3QgLT4gUGFyc2VkSlNPTlBhcnNlclRlc3QK
CihSZWJhc2VsaW5lVGVzdFRlc3QudGVzdF9nYXRoZXJfYmFzZWxpbmVzKToKLS0tCiBUb29scy9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDg3ICsrKysrKysr
KysrKysrKysrKysrKysKIC4uLi9jb21tb24vbmV0L2J1aWxkYm90L2J1aWxkYm90X3VuaXR0ZXN0
LnB5ICAgICAgIHwgIDQgKy0KIC4uLi93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1
bHRzLnB5ICAgICAgIHwgMjcgKystLS0tLQogLi4uL2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3Vs
dHNfdW5pdHRlc3QucHkgICAgICAgfCAgNSAtLQogLi4uL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVz
dWx0c2pzb25wYXJzZXIucHkgICAgICAgfCAyNSArKysrKy0tCiAuLi4vY29tbW9uL25ldC9yZXN1
bHRzanNvbnBhcnNlcl91bml0dGVzdC5weSAgICAgICB8IDYyICsrKysrKysrKysrKysrLQogLi4u
L3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weSAgfCAxMCArLS0K
IC4uLi9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXMucHkgIHwgIDIg
Ky0KIC4uLi93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzX3VuaXR0ZXN0LnB5IHwg
MzAgKysrKy0tLS0KIC4uLi93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRl
ci5weSAgIHwgIDQgLQogLi4uL3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0
ZXN0LnB5ICAgfCAgNSArLQogLi4uL3Rvb2wvc2VydmVycy9yZWJhc2VsaW5lc2VydmVyX3VuaXR0
ZXN0LnB5ICAgICAgfCAgMiArLQogMTIgZmlsZXMgY2hhbmdlZCwgMTk2IGluc2VydGlvbnMoKyks
IDY3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCAwMjI1YThlLi5mODU5OTBkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTAgQEAKKzIwMTQtMDktMzAgIEph
a2UgTmllbHNlbiAgPGphY29iX25pZWxzZW5AYXBwbGUuY29tPgorCisgICAgICAgIExheW91dFRl
c3RSZXN1bHRzIGFuZCBFeHBlY3RlZEZhaWx1cmVzIHNob3VsZCBrbm93IGFib3V0IHRoZQorICAg
ICAgICBpbnRlcnJ1cHRlZCBmbGFnIGZyb20gdGhlIGpzb24gcmVzdWx0cyBmaWxlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzcyMjkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2VzIExheW91dFRl
c3RSZXN1bHRzIHRvIHVzZSB0aGUgaW50ZXJydXB0ZWQgZmxhZyBpbnN0ZWFkIG9mCisgICAgICAg
IGNvdW50aW5nIGZhaWx1cmVzLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L2J1aWxkYm90L2J1aWxkYm90X3VuaXR0ZXN0LnB5OgorICAgICAgICAoQnVpbGRlclRlc3Qu
X2luc3RhbGxfZmV0Y2hfYnVpbGQuX21vY2tfZmV0Y2hfYnVpbGQpOgorICAgICAgICAoQnVpbGRl
clRlc3QudGVzdF9sYXRlc3RfbGF5b3V0X3Rlc3RfcmVzdWx0cyk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzLnB5OgorICAgICAgICBSZW1v
dmVzIG5vdGlvbiBvZiBmYWlsdXJlX2xpbWl0X2NvdW50LCBhbmQgYWRkcworICAgICAgICBkaWRf
ZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdC4KKworICAgICAgICAoTGF5b3V0VGVzdFJlc3VsdHMu
cmVzdWx0c19mcm9tX3N0cmluZyk6CisgICAgICAgIChMYXlvdXRUZXN0UmVzdWx0cy5fX2luaXRf
Xyk6CisgICAgICAgIChMYXlvdXRUZXN0UmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9s
aW1pdCk6CisgICAgICAgIChMYXlvdXRUZXN0UmVzdWx0cyk6IERlbGV0ZWQuCisgICAgICAgIChM
YXlvdXRUZXN0UmVzdWx0cy5zZXRfZmFpbHVyZV9saW1pdF9jb3VudCk6IERlbGV0ZWQuCisgICAg
ICAgIChMYXlvdXRUZXN0UmVzdWx0cy5mYWlsdXJlX2xpbWl0X2NvdW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHNfdW5p
dHRlc3QucHk6CisgICAgICAgIFJlbW92ZXMgdW5pdCB0ZXN0IGZvciBmYWlsdXJlX2xpbWl0X2Nv
dW50IGxvZ2ljLgorCisgICAgICAgIChMYXlvdXRUZXN0UmVzdWx0c1Rlc3QudGVzdF9zZXRfZmFp
bHVyZV9saW1pdF9jb3VudCk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2VyLnB5OgorICAgICAgICBJbnN0ZWFkIG9mIHByb3Zp
ZGluZyBhIGNsYXNzIG1ldGhvZCB0aGF0IHJldHVybnMgYSBsaXN0IG9mCisgICAgICAgIFRlc3RS
ZXN1bHRzIG9iamVjdHMsIHJlc3VsdHNqc29ucGFyc2VyIG5vdyBwcm92aWRlcyBhIGNsYXNzCisg
ICAgICAgIFBhcnNlZEpTT05SZXN1bHRzIHRoYXQgc2VydmVzIGFzIGFuIGludGVyZmFjZSBiZXR3
ZWVuIHRoZSByZXN1bHRzLmpzb24KKyAgICAgICAgZmlsZSBhbmQgdGhlIHJlc3Qgb2Ygd2Via2l0
cHkuCisKKyAgICAgICAgKFBhcnNlZEpTT05SZXN1bHRzKToKKyAgICAgICAgKFBhcnNlZEpTT05S
ZXN1bHRzLl9faW5pdF9fKToKKyAgICAgICAgKFBhcnNlZEpTT05SZXN1bHRzLmRpZF9leGNlZWRf
dGVzdF9mYWlsdXJlX2xpbWl0KToKKyAgICAgICAgKFBhcnNlZEpTT05SZXN1bHRzLnRlc3RfcmVz
dWx0cyk6CisgICAgICAgIChSZXN1bHRzSlNPTlBhcnNlcik6IERlbGV0ZWQuCisgICAgICAgIChS
ZXN1bHRzSlNPTlBhcnNlci5wYXJzZV9yZXN1bHRzX2pzb24pOiBEZWxldGVkLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlcl91bml0dGVzdC5w
eToKKyAgICAgICAgVXBkYXRlcyB0aGUgdW5pdCB0ZXN0IHNvIHRoYXQgaXQgY2FuIHRlc3QgdGhl
IG5ldyBSZXN1bHRzSlNPTlBhcnNlcgorICAgICAgICBjbGFzcy4KKworICAgICAgICAoUGFyc2Vk
SlNPTlJlc3VsdHNUZXN0KToKKyAgICAgICAgKHRlc3RfYmFzaWMpOgorICAgICAgICAoUmVzdWx0
c0pTT05QYXJzZXJUZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weToKKyAgICAgICAgVXBkYXRlcyB0aGUg
dW5pdCB0ZXN0IHRvIGluc3RhbnRpYXRlIFJlc3VsdHNKU09OUGFyc2VyIG9iamVjdHMgcmF0aGVy
CisgICAgICAgIHRoYW4gc2ltcGxlIGxpc3RzIG9mIFRlc3RSZXN1bHQgb2JqZWN0cy4KKworICAg
ICAgICAoTW9ja0NvbW1pdFF1ZXVlLnRlc3RfcmVzdWx0cyk6CisgICAgICAgIChGYWlsaW5nVGVz
dENvbW1pdFF1ZXVlLnRlc3RfcmVzdWx0cyk6CisgICAgICAgICh0ZXN0X2ZsYWt5X3Rlc3RfZmFp
bHVyZSk6CisgICAgICAgICh0ZXN0X2ZhaWxlZF9hcmNoaXZlKToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXMucHk6CisgICAgICAgIFVwZGF0ZXMg
RXhwZWN0ZWRGYWlsdXJlcyB0byB1c2UgdGhlIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0
CisgICAgICAgIG1ldGhvZCByYXRoZXIgdGhhbiBjb3VudGluZyB0aGUgbnVtYmVyIG9mIGZhaWxl
ZCB0ZXN0cy4KKworICAgICAgICAoRXhwZWN0ZWRGYWlsdXJlcy5fc2hvdWxkX3RydXN0KToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNfdW5pdHRl
c3QucHk6CisgICAgICAgIFVwZGF0ZXMgTW9ja1Jlc3VsdHMgdG8gbW9yZSBjbG9zZWx5IHJlc2Vt
YmxlIHRoZSB1cGRhdGVkCisgICAgICAgIExheW91dFRlc3RSZXN1bHRzIGNsYXNzLgorCisgICAg
ICAgIChNb2NrUmVzdWx0cy5fX2luaXRfXyk6CisgICAgICAgIChNb2NrUmVzdWx0cy5kaWRfZXhj
ZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCk6CisgICAgICAgIChFeHBlY3RlZEZhaWx1cmVzVGVzdC50
ZXN0X2Nhbl90cnVzdF9yZXN1bHRzKToKKyAgICAgICAgKEV4cGVjdGVkRmFpbHVyZXNUZXN0LnRl
c3RfdW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCk6CisgICAgICAgIChFeHBlY3RlZEZhaWx1
cmVzVGVzdC50ZXN0X3VuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWRfd2hlbl90cmVlX2lzX2hv
c2VkKToKKyAgICAgICAgKE1vY2tSZXN1bHRzLmZhaWx1cmVfbGltaXRfY291bnQpOiBEZWxldGVk
LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNy
ZWFkZXIucHk6CisgICAgICAgIFJlbW92ZXMgYSBGSVhNRSByZWdhcmRpbmcgdGhlIHVzZSBvZiB0
aGUKKyAgICAgICAgTk9OX0lOVEVSQUNUSVZFX0ZBSUxVUkVfTElNSVRfQ09VTlQgdmFsdWUuCisK
KyAgICAgICAgKExheW91dFRlc3RSZXN1bHRzUmVhZGVyLnJlc3VsdHMpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXJfdW5pdHRlc3Qu
cHk6CisgICAgICAgIFVwZGF0ZXMgdGVzdCB0byBub3QgY2hlY2sgdGhlIG5vdy1ub25leGlzdGFu
dCBmYWlsdXJlX2NvdW50X2xpbWl0CisgICAgICAgIG1ldGhvZC4KKworICAgICAgICAodGVzdF9t
aXNzaW5nX3VuaXRfdGVzdF9yZXN1bHRzX3BhdGgpOgorICAgICAgICAodGVzdF9sYXlvdXRfdGVz
dF9yZXN1bHRzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9yZWJh
c2VsaW5lc2VydmVyX3VuaXR0ZXN0LnB5OgorICAgICAgICBBY2NvdW50cyBmb3IgbmFtZSBjaGFu
Z2U6IFJlc3VsdHNKU09OUGFyc2VyVGVzdCAtPgorICAgICAgICBQYXJzZWRKU09OUGFyc2VyVGVz
dC4KKworICAgICAgICAoUmViYXNlbGluZVRlc3RUZXN0LnRlc3RfZ2F0aGVyX2Jhc2VsaW5lcyk6
CisKIDIwMTQtMDktMzAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAg
ICAgICAgV2luZG93cyBFV1Mgd2VudCBwdXJwbGUgd2hlbiBpdCBmYWlsZWQgdG8gYnVpbGQKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC9idWls
ZGJvdF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWls
ZGJvdC9idWlsZGJvdF91bml0dGVzdC5weQppbmRleCBiMDAzOTNkLi43NjcxZGVlIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRib3Rf
dW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1aWxk
Ym90L2J1aWxkYm90X3VuaXR0ZXN0LnB5CkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIEJ1aWxkZXJU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICBpc19ncmVlbj1idWlsZF9u
dW1iZXIgPCA0CiAgICAgICAgICAgICApCiAgICAgICAgICAgICByZXN1bHRzID0gW3NlbGYuX21v
Y2tfdGVzdF9yZXN1bHQodGVzdG5hbWUpIGZvciB0ZXN0bmFtZSBpbiBmYWlsdXJlKGJ1aWxkX251
bWJlcildCi0gICAgICAgICAgICBsYXlvdXRfdGVzdF9yZXN1bHRzID0gTGF5b3V0VGVzdFJlc3Vs
dHMocmVzdWx0cykKKyAgICAgICAgICAgIGxheW91dF90ZXN0X3Jlc3VsdHMgPSBMYXlvdXRUZXN0
UmVzdWx0cyh0ZXN0X3Jlc3VsdHM9cmVzdWx0cywgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGlt
aXQ9RmFsc2UpCiAgICAgICAgICAgICBkZWYgbW9ja19sYXlvdXRfdGVzdF9yZXN1bHRzKCk6CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGxheW91dF90ZXN0X3Jlc3VsdHMKICAgICAgICAgICAgIGJ1
aWxkLmxheW91dF90ZXN0X3Jlc3VsdHMgPSBtb2NrX2xheW91dF90ZXN0X3Jlc3VsdHMKQEAgLTYx
LDcgKzYxLDcgQEAgY2xhc3MgQnVpbGRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBzZWxmLl9pbnN0YWxsX2ZldGNoX2J1aWxkKGxhbWJkYSBidWlsZF9udW1iZXI6IFsidGVzdDEi
LCAidGVzdDIiXSkKIAogICAgIGRlZiB0ZXN0X2xhdGVzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKHNl
bGYpOgotICAgICAgICBzZWxmLmJ1aWxkZXIuZmV0Y2hfbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IGxh
bWJkYSByZXN1bHRzX3VybDogTGF5b3V0VGVzdFJlc3VsdHMoW3NlbGYuX21vY2tfdGVzdF9yZXN1
bHQodGVzdG5hbWUpIGZvciB0ZXN0bmFtZSBpbiBbInRlc3QxIiwgInRlc3QyIl1dKQorICAgICAg
ICBzZWxmLmJ1aWxkZXIuZmV0Y2hfbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IGxhbWJkYSByZXN1bHRz
X3VybDogTGF5b3V0VGVzdFJlc3VsdHModGVzdF9yZXN1bHRzPVtzZWxmLl9tb2NrX3Rlc3RfcmVz
dWx0KHRlc3RuYW1lKSBmb3IgdGVzdG5hbWUgaW4gWyJ0ZXN0MSIsICJ0ZXN0MiJdXSwgZGlkX2V4
Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9RmFsc2UpCiAgICAgICAgIHNlbGYuYnVpbGRlci5hY2N1
bXVsYXRlZF9yZXN1bHRzX3VybCA9IGxhbWJkYTogImh0dHA6Ly9kdW1teV91cmwub3JnIgogICAg
ICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5idWlsZGVyLmxhdGVzdF9sYXlvdXRfdGVzdF9yZXN1
bHRzKCkpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9s
YXlvdXR0ZXN0cmVzdWx0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9s
YXlvdXR0ZXN0cmVzdWx0cy5weQppbmRleCBiOGNiMTU3Li5lNzRjYTc4IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHMucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzLnB5
CkBAIC0yOCw3ICsyOCw3IEBACiAKIGltcG9ydCBsb2dnaW5nCiAKLWZyb20gd2Via2l0cHkuY29t
bW9uLm5ldC5yZXN1bHRzanNvbnBhcnNlciBpbXBvcnQgUmVzdWx0c0pTT05QYXJzZXIKK2Zyb20g
d2Via2l0cHkuY29tbW9uLm5ldC5yZXN1bHRzanNvbnBhcnNlciBpbXBvcnQgUGFyc2VkSlNPTlJl
c3VsdHMKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5CZWF1dGlmdWxTb3VwIGltcG9ydCBCZWF1
dGlmdWxTb3VwLCBTb3VwU3RyYWluZXIKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVs
cyBpbXBvcnQgdGVzdF9yZXN1bHRzCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMg
aW1wb3J0IHRlc3RfZmFpbHVyZXMKQEAgLTUwLDI3ICs1MCwxNiBAQCBjbGFzcyBMYXlvdXRUZXN0
UmVzdWx0cyhvYmplY3QpOgogICAgIGRlZiByZXN1bHRzX2Zyb21fc3RyaW5nKGNscywgc3RyaW5n
KToKICAgICAgICAgaWYgbm90IHN0cmluZzoKICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAg
ICAgIHRlc3RfcmVzdWx0cyA9IFJlc3VsdHNKU09OUGFyc2VyLnBhcnNlX3Jlc3VsdHNfanNvbihz
dHJpbmcpCi0gICAgICAgIGlmIG5vdCB0ZXN0X3Jlc3VsdHM6Ci0gICAgICAgICAgICByZXR1cm4g
Tm9uZQotICAgICAgICByZXR1cm4gY2xzKHRlc3RfcmVzdWx0cykKKyAgICAgICAgcGFyc2VkX3Jl
c3VsdHMgPSBQYXJzZWRKU09OUmVzdWx0cyhzdHJpbmcpCisgICAgICAgIHJldHVybiBjbHMocGFy
c2VkX3Jlc3VsdHMudGVzdF9yZXN1bHRzKCksIHBhcnNlZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVz
dF9mYWlsdXJlX2xpbWl0KCkpCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9yZXN1bHRz
KToKLSAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzID0gdGVzdF9yZXN1bHRzCi0gICAgICAgIHNl
bGYuX2ZhaWx1cmVfbGltaXRfY291bnQgPSBOb25lCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRl
c3RfcmVzdWx0cywgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQpOgogICAgICAgICBzZWxm
Ll91bml0X3Rlc3RfZmFpbHVyZXMgPSBbXQorICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHMgPSB0
ZXN0X3Jlc3VsdHMKKyAgICAgICAgc2VsZi5fZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQg
PSBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdAogCi0gICAgIyBGSVhNRTogcnVuLXdlYmtp
dC10ZXN0cyBzaG91bGQgc3RvcmUgdGhlIC0tZXhpdC1hZnRlci1OLWZhaWx1cmVzIHZhbHVlCi0g
ICAgIyAob3Igc29tZSBpbmRpY2F0aW9uIG9mIGVhcmx5IGV4aXQpIHNvbWV3aGVyZSBpbiB0aGUg
cmVzdWx0cy5qc29uCi0gICAgIyBmaWxlLiAgVW50aWwgaXQgZG9lcywgY2FsbGVycyBzaG91bGQg
c2V0IHRoZSBsaW1pdCB0bwotICAgICMgLS1leGl0LWFmdGVyLU4tZmFpbHVyZXMgdmFsdWUgdXNl
ZCBpbiB0aGF0IHJ1bi4gIENvbnN1bWVycyBvZiBMYXlvdXRUZXN0UmVzdWx0cwotICAgICMgbWF5
IHVzZSB0aGF0IHZhbHVlIHRvIGtub3cgaWYgYWJzZW5jZSBmcm9tIHRoZSBmYWlsdXJlIGxpc3Qg
bWVhbnMgUEFTUy4KLSAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01ODQ4MQotICAgIGRlZiBzZXRfZmFpbHVyZV9saW1pdF9jb3VudChzZWxmLCBsaW1pdCk6Ci0g
ICAgICAgIHNlbGYuX2ZhaWx1cmVfbGltaXRfY291bnQgPSBsaW1pdAotCi0gICAgZGVmIGZhaWx1
cmVfbGltaXRfY291bnQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9mYWlsdXJlX2xpbWl0
X2NvdW50CisgICAgZGVmIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KHNlbGYpOgorICAg
ICAgICByZXR1cm4gc2VsZi5fZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQKIAogICAgIGRl
ZiB0ZXN0X3Jlc3VsdHMoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl90ZXN0X3Jlc3VsdHMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0
cmVzdWx0c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9s
YXlvdXR0ZXN0cmVzdWx0c191bml0dGVzdC5weQppbmRleCBlYTRlOTI3Li44NTIwNjkzIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3Vs
dHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xh
eW91dHRlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5CkBAIC0zNiwxMSArMzYsNiBAQCBmcm9tIHdlYmtp
dHB5LnRoaXJkcGFydHkuQmVhdXRpZnVsU291cCBpbXBvcnQgQmVhdXRpZnVsU291cAogCiAKIGNs
YXNzIExheW91dFRlc3RSZXN1bHRzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgZGVmIHRl
c3Rfc2V0X2ZhaWx1cmVfbGltaXRfY291bnQoc2VsZik6Ci0gICAgICAgIHJlc3VsdHMgPSBMYXlv
dXRUZXN0UmVzdWx0cyhbXSkKLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocmVzdWx0cy5mYWls
dXJlX2xpbWl0X2NvdW50KCkpCi0gICAgICAgIHJlc3VsdHMuc2V0X2ZhaWx1cmVfbGltaXRfY291
bnQoMTApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0cy5mYWlsdXJlX2xpbWl0X2Nv
dW50KCksIDEwKQogCiAgICAgZGVmIHRlc3RfcmVzdWx0c19mcm9tX3N0cmluZyhzZWxmKToKICAg
ICAgICAgc2VsZi5hc3NlcnRJc05vbmUoTGF5b3V0VGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0
cmluZyhOb25lKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9yZXN1bHRzanNvbnBhcnNlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9yZXN1bHRzanNvbnBhcnNlci5weQppbmRleCAxYTJhNzBmLi42ODg4YTQ1IDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJzZXIucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2Vy
LnB5CkBAIC0xMzcsOSArMTM3LDggQEAgY2xhc3MgSlNPTlRlc3RSZXN1bHQob2JqZWN0KToKICAg
ICAgICAgcmV0dXJuIHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KHNlbGYuX3Rlc3RfbmFtZSwgc2Vs
Zi5fZmFpbHVyZXMoKSkKIAogCi1jbGFzcyBSZXN1bHRzSlNPTlBhcnNlcihvYmplY3QpOgotICAg
IEBjbGFzc21ldGhvZAotICAgIGRlZiBwYXJzZV9yZXN1bHRzX2pzb24oY2xzLCBqc29uX3N0cmlu
Zyk6CitjbGFzcyBQYXJzZWRKU09OUmVzdWx0cyhvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBqc29uX3N0cmluZyk6CiAgICAgICAgIGlmIG5vdCBqc29uX3Jlc3VsdHNfZ2VuZXJhdG9y
Lmhhc19qc29uX3dyYXBwZXIoanNvbl9zdHJpbmcpOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUK
IApAQCAtMTQ5LDcgKzE0OCwxOSBAQCBjbGFzcyBSZXN1bHRzSlNPTlBhcnNlcihvYmplY3QpOgog
ICAgICAgICBqc29uX3Jlc3VsdHMgPSBbXQogICAgICAgICBmb3JfZWFjaF90ZXN0KGpzb25fZGlj
dFsndGVzdHMnXSwgbGFtYmRhIHRlc3QsIHJlc3VsdDoganNvbl9yZXN1bHRzLmFwcGVuZChKU09O
VGVzdFJlc3VsdCh0ZXN0LCByZXN1bHQpKSkKIAotICAgICAgICAjIEZJWE1FOiBXaGF0J3MgdGhl
IHNob3J0IHNleHkgcHl0aG9uIHdheSB0byBmaWx0ZXIgTm9uZT8KLSAgICAgICAgIyBJIHdvdWxk
IHVzZSBbZm9vLmJhcigpIGZvciBmb28gaW4gZm9vcyBpZiBmb28uYmFyKCldIGJ1dCBiYXIoKSBp
cyBleHBlbnNpdmUuCi0gICAgICAgIHVuZXhwZWN0ZWRfZmFpbHVyZXMgPSBbcmVzdWx0LnRlc3Rf
cmVzdWx0KCkgZm9yIHJlc3VsdCBpbiBqc29uX3Jlc3VsdHMgaWYgbm90IHJlc3VsdC5kaWRfcGFz
c19vcl9ydW5fYXNfZXhwZWN0ZWQoKV0KLSAgICAgICAgcmV0dXJuIGZpbHRlcihsYW1iZGEgYTog
YSwgdW5leHBlY3RlZF9mYWlsdXJlcykKKyAgICAgICAgdW5leHBlY3RlZF9mYWlsdXJlcyA9IFtd
CisgICAgICAgIGZvciBqc29uX3Jlc3VsdCBpbiBqc29uX3Jlc3VsdHM6CisgICAgICAgICAgICBp
ZiBqc29uX3Jlc3VsdC5kaWRfcGFzc19vcl9ydW5fYXNfZXhwZWN0ZWQoKToKKyAgICAgICAgICAg
ICAgICBjb250aW51ZQorICAgICAgICAgICAgdGVzdF9yZXN1bHQgPSBqc29uX3Jlc3VsdC50ZXN0
X3Jlc3VsdCgpCisgICAgICAgICAgICBpZiB0ZXN0X3Jlc3VsdDoKKyAgICAgICAgICAgICAgICB1
bmV4cGVjdGVkX2ZhaWx1cmVzLmFwcGVuZCh0ZXN0X3Jlc3VsdCkKKworICAgICAgICBzZWxmLl90
ZXN0X3Jlc3VsdHMgPSB1bmV4cGVjdGVkX2ZhaWx1cmVzCisgICAgICAgIHNlbGYuX2RpZF9leGNl
ZWRfdGVzdF9mYWlsdXJlX2xpbWl0ID0ganNvbl9kaWN0WyJpbnRlcnJ1cHRlZCJdCisKKyAgICBk
ZWYgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoc2VsZik6CisgICAgICAgIHJldHVybiBz
ZWxmLl9kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdAorCisgICAgZGVmIHRlc3RfcmVzdWx0
cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcmVzdWx0cwpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFyc2VyX3VuaXR0
ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jlc3VsdHNqc29ucGFy
c2VyX3VuaXR0ZXN0LnB5CmluZGV4IDVlN2QzYTYuLjc3ZTFmMDggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZXN1bHRzanNvbnBhcnNlcl91bml0dGVzdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVzdWx0c2pzb25wYXJz
ZXJfdW5pdHRlc3QucHkKQEAgLTI4LDEyICsyOCwxMiBAQAogCiBpbXBvcnQgdW5pdHRlc3QyIGFz
IHVuaXR0ZXN0CiAKLWZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5yZXN1bHRzanNvbnBhcnNlciBp
bXBvcnQgUmVzdWx0c0pTT05QYXJzZXIKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5yZXN1bHRz
anNvbnBhcnNlciBpbXBvcnQgUGFyc2VkSlNPTlJlc3VsdHMKIGZyb20gd2Via2l0cHkubGF5b3V0
X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9yZXN1bHRzCiBmcm9tIHdlYmtpdHB5LmxheW91dF90
ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfZmFpbHVyZXMKIAogCi1jbGFzcyBSZXN1bHRzSlNPTlBh
cnNlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorY2xhc3MgUGFyc2VkSlNPTlJlc3VsdHNUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAjIFRoZSByZWFsIGZpbGVzIGhhdmUgbm8gd2hpdGVz
cGFjZSwgYnV0IG5ld2xpbmVzIG1ha2UgdGhpcyBtdWNoIG1vcmUgcmVhZGFibGUuCiAKICAgICBf
ZXhhbXBsZV9mdWxsX3Jlc3VsdHNfanNvbiA9ICIiIkFERF9SRVNVTFRTKHsKQEAgLTcyLDYgKzcy
LDU1IEBAIGNsYXNzIFJlc3VsdHNKU09OUGFyc2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9LAorICAgICJpbnRlcnJ1cHRlZCI6IHRydWUs
CisgICAgInNraXBwZWQiOiA0NTAsCisgICAgIm51bV9yZWdyZXNzaW9ucyI6IDE1LAorICAgICJs
YXlvdXRfdGVzdHNfZGlyIjogIlwvYlwvYnVpbGRcL3NsYXZlXC9XZWJraXRfTWFjMTBfNVwvYnVp
bGRcL3NyY1wvdGhpcmRfcGFydHlcL1dlYktpdFwvTGF5b3V0VGVzdHMiLAorICAgICJ2ZXJzaW9u
IjogMywKKyAgICAibnVtX3Bhc3NlcyI6IDc3LAorICAgICJoYXNfcHJldHR5X3BhdGNoIjogZmFs
c2UsCisgICAgImZpeGFibGUiOiAxMjIwLAorICAgICJudW1fZmxha3kiOiAwLAorICAgICJ1c2Vz
X2V4cGVjdGF0aW9uc19maWxlIjogdHJ1ZQorfSk7IiIiCisKKyAgICBfbm90X2ludGVycnVwdGVk
X2V4YW1wbGVfZnVsbF9yZXN1bHRzX2pzb24gPSAiIiJBRERfUkVTVUxUUyh7CisgICAgInRlc3Rz
IjogeworICAgICAgICAiZmFzdCI6IHsKKyAgICAgICAgICAgICJkb20iOiB7CisgICAgICAgICAg
ICAgICAgInByb3RvdHlwZS1pbmhlcml0YW5jZS5odG1sIjogeworICAgICAgICAgICAgICAgICAg
ICAiZXhwZWN0ZWQiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICJhY3R1YWwiOiAiRkFJ
TCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICJwcm90b3R5cGUtYmFuYW5h
Lmh0bWwiOiB7CisgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJGQUlMIiwKKyAgICAg
ICAgICAgICAgICAgICAgImFjdHVhbCI6ICJQQVNTIgorICAgICAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAgICAgInByb3RvdHlwZS10YWNvLmh0bWwiOiB7CisgICAgICAgICAgICAgICAgICAg
ICJleHBlY3RlZCI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgImFjdHVhbCI6ICJQQVNT
IEZBSUwiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAicHJvdG90eXBlLWNo
b2NvbGF0ZS5odG1sIjogeworICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRkFJTCIs
CisgICAgICAgICAgICAgICAgICAgICJhY3R1YWwiOiAiRkFJTCIKKyAgICAgICAgICAgICAgICB9
LAorICAgICAgICAgICAgICAgICJwcm90b3R5cGUtc3RyYXdiZXJyeS5odG1sIjogeworICAgICAg
ICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICJh
Y3R1YWwiOiAiRkFJTCBQQVNTIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfSwKKyAgICAgICAgInN2ZyI6IHsKKyAgICAgICAgICAgICJkeW5hbWljLXVwZGF0ZXMi
OiB7CisgICAgICAgICAgICAgICAgIlNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQtZG9tLXN0ZERldmlh
dGlvbi1hdHRyLmh0bWwiOiB7CisgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNT
IiwKKyAgICAgICAgICAgICAgICAgICAgImFjdHVhbCI6ICJJTUFHRSIsCisgICAgICAgICAgICAg
ICAgICAgICJoYXNfc3RkZXJyIjogdHJ1ZQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH0sCisgICAgImludGVycnVwdGVkIjogZmFsc2UsCiAgICAgInNr
aXBwZWQiOiA0NTAsCiAgICAgIm51bV9yZWdyZXNzaW9ucyI6IDE1LAogICAgICJsYXlvdXRfdGVz
dHNfZGlyIjogIlwvYlwvYnVpbGRcL3NsYXZlXC9XZWJraXRfTWFjMTBfNVwvYnVpbGRcL3NyY1wv
dGhpcmRfcGFydHlcL1dlYktpdFwvTGF5b3V0VGVzdHMiLApAQCAtODgsNSArMTM3LDEwIEBAIGNs
YXNzIFJlc3VsdHNKU09OUGFyc2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAg
ICB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCgic3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURyb3BT
aGFkb3dFbGVtZW50LWRvbS1zdGREZXZpYXRpb24tYXR0ci5odG1sIiwgW3Rlc3RfZmFpbHVyZXMu
RmFpbHVyZUltYWdlSGFzaE1pc21hdGNoKCldLCAwKSwKICAgICAgICAgICAgIHRlc3RfcmVzdWx0
cy5UZXN0UmVzdWx0KCJmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UuaHRtbCIsIFt0ZXN0
X2ZhaWx1cmVzLkZhaWx1cmVUZXh0TWlzbWF0Y2goKSwgdGVzdF9mYWlsdXJlcy5GYWlsdXJlSW1h
Z2VIYXNoTWlzbWF0Y2goKSwgdGVzdF9mYWlsdXJlcy5GYWlsdXJlQXVkaW9NaXNtYXRjaCgpXSwg
MCksCiAgICAgICAgIF0KLSAgICAgICAgcmVzdWx0cyA9IFJlc3VsdHNKU09OUGFyc2VyLnBhcnNl
X3Jlc3VsdHNfanNvbihzZWxmLl9leGFtcGxlX2Z1bGxfcmVzdWx0c19qc29uKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX3Jlc3VsdHMsIHJlc3VsdHMpCisgICAgICAgIHBhcnNl
ZF9yZXN1bHRzID0gUGFyc2VkSlNPTlJlc3VsdHMoc2VsZi5fZXhhbXBsZV9mdWxsX3Jlc3VsdHNf
anNvbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF9yZXN1bHRzLCBwYXJzZWRf
cmVzdWx0cy50ZXN0X3Jlc3VsdHMoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBhcnNlZF9y
ZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCkpCisKKyAgICBkZWYgdGVzdF9u
b3RfaW50ZXJydXB0ZWQoc2VsZik6CisgICAgICAgIHBhcnNlZF9yZXN1bHRzID0gUGFyc2VkSlNP
TlJlc3VsdHMoc2VsZi5fbm90X2ludGVycnVwdGVkX2V4YW1wbGVfZnVsbF9yZXN1bHRzX2pzb24p
CisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocGFyc2VkX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0
X2ZhaWx1cmVfbGltaXQoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkKaW5kZXggMWVhYmRlMS4uMTFh
MTM5ZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRx
dWV1ZXRhc2tfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkKQEAgLTczLDcgKzczLDcgQEAgY2xhc3MgTW9j
a0NvbW1pdFF1ZXVlKENvbW1pdFF1ZXVlVGFza0RlbGVnYXRlKToKICAgICAgICAgcmV0dXJuIEV4
cGVjdGVkRmFpbHVyZXMoKQogCiAgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKLSAgICAgICAg
cmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIExheW91dFRlc3RSZXN1bHRzKHRlc3RfcmVzdWx0
cz1bXSwgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9VHJ1ZSkKIAogICAgIGRlZiByZXBv
cnRfZmxha3lfdGVzdHMoc2VsZiwgcGF0Y2gsIGZsYWt5X3Jlc3VsdHMsIHJlc3VsdHNfYXJjaGl2
ZSk6CiAgICAgICAgIGZsYWt5X3Rlc3RzID0gW3Jlc3VsdC5maWxlbmFtZSBmb3IgcmVzdWx0IGlu
IGZsYWt5X3Jlc3VsdHNdCkBAIC0xMTAsOSArMTEwLDcgQEAgY2xhc3MgRmFpbGluZ1Rlc3RDb21t
aXRRdWV1ZShNb2NrQ29tbWl0UXVldWUpOgogICAgICAgICAjIERvZXNuJ3QgbWFrZSBzZW5zZSB0
byBhc2sgZm9yIHRoZSB0ZXN0X3Jlc3VsdHMgdW50aWwgdGhlIHRlc3RzIGhhdmUgcnVuIGF0IGxl
YXN0IG9uY2UuCiAgICAgICAgIGFzc2VydChzZWxmLl90ZXN0X3J1bl9jb3VudGVyID49IDApCiAg
ICAgICAgIGZhaWx1cmVzX2Zvcl9ydW4gPSBzZWxmLl90ZXN0X2ZhaWx1cmVfcGxhbltzZWxmLl90
ZXN0X3J1bl9jb3VudGVyXQotICAgICAgICByZXN1bHRzID0gTGF5b3V0VGVzdFJlc3VsdHMobWFw
KHNlbGYuX21vY2tfdGVzdF9yZXN1bHQsIGZhaWx1cmVzX2Zvcl9ydW4pKQotICAgICAgICAjIFRo
aXMgbWFrZXMgdGhlIHJlc3VsdHMgdHJ1c3RhYmxlIGJ5IEV4cGVjdGVkRmFpbHVyZXMuCi0gICAg
ICAgIHJlc3VsdHMuc2V0X2ZhaWx1cmVfbGltaXRfY291bnQoMTApCisgICAgICAgIHJlc3VsdHMg
PSBMYXlvdXRUZXN0UmVzdWx0cyh0ZXN0X3Jlc3VsdHM9bWFwKHNlbGYuX21vY2tfdGVzdF9yZXN1
bHQsIGZhaWx1cmVzX2Zvcl9ydW4pLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD0obGVu
KHNlbGYuX3Rlc3RfZmFpbHVyZV9wbGFuW3NlbGYuX3Rlc3RfcnVuX2NvdW50ZXJdKSA+PSAxMCkp
CiAgICAgICAgIHJldHVybiByZXN1bHRzCiAKIApAQCAtMjgyLDcgKzI4MCw3IEBAIGNvbW1hbmRf
ZmFpbGVkOiBmYWlsdXJlX21lc3NhZ2U9J1VuYWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoJyBz
Y3JpcHRfZXJyb3I9J01PCiAgICAgICAgIF0pCiAgICAgICAgICMgQ29tbWl0UXVldWVUYXNrIHdp
bGwgb25seSByZXBvcnQgZmxha3kgdGVzdHMgaWYgd2Ugc3VjY2Vzc2Z1bGx5IHBhcnNlZAogICAg
ICAgICAjIHJlc3VsdHMuanNvbiBhbmQgcmV0dXJuZWQgYSBMYXlvdXRUZXN0UmVzdWx0cyBvYmpl
Y3QsIHNvIHdlIGZha2Ugb25lLgotICAgICAgICBjb21taXRfcXVldWUudGVzdF9yZXN1bHRzID0g
bGFtYmRhOiBMYXlvdXRUZXN0UmVzdWx0cyhbXSkKKyAgICAgICAgY29tbWl0X3F1ZXVlLnRlc3Rf
cmVzdWx0cyA9IGxhbWJkYTogTGF5b3V0VGVzdFJlc3VsdHModGVzdF9yZXN1bHRzPVtdLCBkaWRf
ZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1UcnVlKQogICAgICAgICBleHBlY3RlZF9sb2dzID0g
IiIicnVuX3dlYmtpdF9wYXRjaDogWydjbGVhbiddCiBjb21tYW5kX3Bhc3NlZDogc3VjY2Vzc19t
ZXNzYWdlPSdDbGVhbmVkIHdvcmtpbmcgZGlyZWN0b3J5JyBwYXRjaD0nMTAwMDAnCiBydW5fd2Vi
a2l0X3BhdGNoOiBbJ3VwZGF0ZSddCkBAIC0zMTMsNyArMzExLDcgQEAgY29tbWFuZF9wYXNzZWQ6
IHN1Y2Nlc3NfbWVzc2FnZT0nTGFuZGVkIHBhdGNoJyBwYXRjaD0nMTAwMDAnCiAgICAgICAgICAg
ICBOb25lLAogICAgICAgICAgICAgU2NyaXB0RXJyb3IoIk1PQ0sgdGVzdHMgZmFpbHVyZSIpLAog
ICAgICAgICBdKQotICAgICAgICBjb21taXRfcXVldWUudGVzdF9yZXN1bHRzID0gbGFtYmRhOiBM
YXlvdXRUZXN0UmVzdWx0cyhbXSkKKyAgICAgICAgY29tbWl0X3F1ZXVlLnRlc3RfcmVzdWx0cyA9
IGxhbWJkYTogTGF5b3V0VGVzdFJlc3VsdHModGVzdF9yZXN1bHRzPVtdLCBkaWRfZXhjZWVkX3Rl
c3RfZmFpbHVyZV9saW1pdD1UcnVlKQogICAgICAgICAjIEl0J3MgcG9zc2libGUgZGVsZWdhdGUg
dG8gZmFpbCB0byBhcmNoaXZlIGxheW91dCB0ZXN0cywgZG9uJ3QgdHJ5IHRvIHJlcG9ydAogICAg
ICAgICAjIGZsYWt5IHRlc3RzIHdoZW4gdGhhdCBoYXBwZW5zLgogICAgICAgICBjb21taXRfcXVl
dWUuYXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyA9IGxhbWJkYSBwYXRjaDogTm9uZQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVzLnB5Cmlu
ZGV4IGMwY2ZlMjEuLjFlMzRjNjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlcy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXMucHkKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgRXhw
ZWN0ZWRGYWlsdXJlcyhvYmplY3QpOgogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIF9zaG91
bGRfdHJ1c3QoY2xzLCByZXN1bHRzKToKLSAgICAgICAgcmV0dXJuIGJvb2woY2xzLl9oYXNfZmFp
bHVyZXMocmVzdWx0cykgYW5kIHJlc3VsdHMuZmFpbHVyZV9saW1pdF9jb3VudCgpIGFuZCBsZW4o
cmVzdWx0cy5mYWlsaW5nX3Rlc3RzKCkpIDwgcmVzdWx0cy5mYWlsdXJlX2xpbWl0X2NvdW50KCkp
CisgICAgICAgIHJldHVybiBib29sKHJlc3VsdHMgYW5kIG5vdCByZXN1bHRzLmRpZF9leGNlZWRf
dGVzdF9mYWlsdXJlX2xpbWl0KCkpCiAKICAgICBkZWYgZmFpbHVyZXNfd2VyZV9leHBlY3RlZChz
ZWxmLCByZXN1bHRzKToKICAgICAgICAgaWYgbm90IHNlbGYuX2lzX3RydXN0d29ydGh5OgpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZhaWx1cmVz
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9leHBlY3RlZGZh
aWx1cmVzX3VuaXR0ZXN0LnB5CmluZGV4IGI2Mzk4NTYuLmNhMDIwYzEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZXhwZWN0ZWRmYWlsdXJlc191bml0dGVzdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2V4cGVjdGVkZmFpbHVyZXNf
dW5pdHRlc3QucHkKQEAgLTMyLDEyICszMiwxMiBAQCBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmV4
cGVjdGVkZmFpbHVyZXMgaW1wb3J0IEV4cGVjdGVkRmFpbHVyZXMKIAogCiBjbGFzcyBNb2NrUmVz
dWx0cyhvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmYWlsaW5nX3Rlc3RzPVtdLCBm
YWlsdXJlX2xpbWl0PTEwKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmFpbGluZ190ZXN0cz1b
XSwgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9RmFsc2UpOgogICAgICAgICBzZWxmLl9m
YWlsaW5nX3Rlc3RzID0gZmFpbGluZ190ZXN0cwotICAgICAgICBzZWxmLl9mYWlsdXJlX2xpbWl0
X2NvdW50ID0gZmFpbHVyZV9saW1pdAorICAgICAgICBzZWxmLl9kaWRfZXhjZWVkX3Rlc3RfZmFp
bHVyZV9saW1pdCA9IGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0CiAKLSAgICBkZWYgZmFp
bHVyZV9saW1pdF9jb3VudChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2ZhaWx1cmVfbGlt
aXRfY291bnQKKyAgICBkZWYgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoc2VsZik6Cisg
ICAgICAgIHJldHVybiBzZWxmLl9kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdAogCiAgICAg
ZGVmIGZhaWxpbmdfdGVzdHMoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9mYWlsaW5nX3Rl
c3RzCkBAIC00OSwxMiArNDksMTIgQEAgY2xhc3MgRXhwZWN0ZWRGYWlsdXJlc1Rlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfY2FuX3RydXN0X3Jlc3VsdHMoc2VsZik6CiAg
ICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTm9uZSwgRmFsc2UpCi0gICAgICAgIHNlbGYu
X2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bXSwgZmFpbHVyZV9s
aW1pdD1Ob25lKSwgRmFsc2UpCi0gICAgICAgIHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jl
c3VsdHMoZmFpbGluZ190ZXN0cz1bXSwgZmFpbHVyZV9saW1pdD0xMCksIEZhbHNlKQotICAgICAg
ICBzZWxmLl9hc3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9WzFdLCBm
YWlsdXJlX2xpbWl0PU5vbmUpLCBGYWxzZSkKLSAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVz
dChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rlc3RzPVsxXSwgZmFpbHVyZV9saW1pdD0yKSwgVHJ1ZSkK
LSAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rlc3Rz
PVsxXSwgZmFpbHVyZV9saW1pdD0xKSwgRmFsc2UpCi0gICAgICAgIHNlbGYuX2Fzc2VydF9jYW5f
dHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bMSwgMl0sIGZhaWx1cmVfbGltaXQ9MSks
IEZhbHNlKQorICAgICAgICBzZWxmLl9hc3NlcnRfY2FuX3RydXN0KE1vY2tSZXN1bHRzKGZhaWxp
bmdfdGVzdHM9W10sIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PUZhbHNlKSwgVHJ1ZSkK
KyAgICAgICAgc2VsZi5fYXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rlc3Rz
PVtdLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1UcnVlKSwgRmFsc2UpCisgICAgICAg
IHNlbGYuX2Fzc2VydF9jYW5fdHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bMV0sIGRp
ZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PUZhbHNlKSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5f
YXNzZXJ0X2Nhbl90cnVzdChNb2NrUmVzdWx0cyhmYWlsaW5nX3Rlc3RzPVsxXSwgZGlkX2V4Y2Vl
ZF90ZXN0X2ZhaWx1cmVfbGltaXQ9VHJ1ZSksIEZhbHNlKQorICAgICAgICBzZWxmLl9hc3NlcnRf
Y2FuX3RydXN0KE1vY2tSZXN1bHRzKGZhaWxpbmdfdGVzdHM9WzEsIDJdLCBkaWRfZXhjZWVkX3Rl
c3RfZmFpbHVyZV9saW1pdD1GYWxzZSksIFRydWUpCisgICAgICAgIHNlbGYuX2Fzc2VydF9jYW5f
dHJ1c3QoTW9ja1Jlc3VsdHMoZmFpbGluZ190ZXN0cz1bMSwgMl0sIGRpZF9leGNlZWRfdGVzdF9m
YWlsdXJlX2xpbWl0PVRydWUpLCBGYWxzZSkKIAogICAgIGRlZiBfYXNzZXJ0X2V4cGVjdGVkKHNl
bGYsIGV4cGVjdGVkX2ZhaWx1cmVzLCBmYWlsdXJlcywgZXhwZWN0ZWQpOgogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGV4cGVjdGVkX2ZhaWx1cmVzLmZhaWx1cmVzX3dlcmVfZXhwZWN0ZWQoTW9j
a1Jlc3VsdHMoZmFpbHVyZXMpKSwgZXhwZWN0ZWQpCkBAIC03OSwxNyArNzksMTcgQEAgY2xhc3Mg
RXhwZWN0ZWRGYWlsdXJlc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBmYWlsdXJl
cy51cGRhdGUoTW9ja1Jlc3VsdHMoWydmb28uaHRtbCddKSkKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKE1vY2tSZXN1bHRzKFsn
Zm9vLmh0bWwnLCAnYmFyLmh0bWwnXSkpLCBzZXQoWydiYXIuaHRtbCddKSkKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChmYWlsdXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKE1vY2tS
ZXN1bHRzKFsnYmF6Lmh0bWwnXSkpLCBzZXQoWydiYXouaHRtbCddKSkKLSAgICAgICAgdW5ib3Vu
ZGVkX3Jlc3VsdHMgPSBNb2NrUmVzdWx0cyhbJ2Jhei5odG1sJywgJ3F1eC5odG1sJywgJ3RhY28u
aHRtbCddLCBmYWlsdXJlX2xpbWl0PTMpCisgICAgICAgIHVuYm91bmRlZF9yZXN1bHRzID0gTW9j
a1Jlc3VsdHMoWydiYXouaHRtbCcsICdxdXguaHRtbCcsICd0YWNvLmh0bWwnXSwgZGlkX2V4Y2Vl
ZF90ZXN0X2ZhaWx1cmVfbGltaXQ9VHJ1ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWls
dXJlcy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKHVuYm91bmRlZF9yZXN1bHRzKSwgc2V0
KFsnYmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10pKQotICAgICAgICB1bmJvdW5k
ZWRfcmVzdWx0c193aXRoX2V4aXN0aW5nX2ZhaWx1cmUgPSBNb2NrUmVzdWx0cyhbJ2Zvby5odG1s
JywgJ2Jhei5odG1sJywgJ3F1eC5odG1sJywgJ3RhY28uaHRtbCddLCBmYWlsdXJlX2xpbWl0PTQp
CisgICAgICAgIHVuYm91bmRlZF9yZXN1bHRzX3dpdGhfZXhpc3RpbmdfZmFpbHVyZSA9IE1vY2tS
ZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10s
IGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PVRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZmFpbHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCh1bmJvdW5kZWRfcmVz
dWx0c193aXRoX2V4aXN0aW5nX2ZhaWx1cmUpLCBzZXQoWydiYXouaHRtbCcsICdxdXguaHRtbCcs
ICd0YWNvLmh0bWwnXSkpCiAKICAgICBkZWYgdGVzdF91bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2Vy
dmVkX3doZW5fdHJlZV9pc19ob3NlZChzZWxmKToKICAgICAgICAgZmFpbHVyZXMgPSBFeHBlY3Rl
ZEZhaWx1cmVzKCkKLSAgICAgICAgZmFpbHVyZXMudXBkYXRlKE1vY2tSZXN1bHRzKFsnZm9vLmh0
bWwnLCAnYmFuYW5hLmh0bWwnXSwgZmFpbHVyZV9saW1pdD0yKSkKKyAgICAgICAgZmFpbHVyZXMu
dXBkYXRlKE1vY2tSZXN1bHRzKFsnZm9vLmh0bWwnLCAnYmFuYW5hLmh0bWwnXSwgZGlkX2V4Y2Vl
ZF90ZXN0X2ZhaWx1cmVfbGltaXQ9VHJ1ZSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmFp
bHVyZXMudW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZChNb2NrUmVzdWx0cyhbJ2Zvby5odG1s
JywgJ2Jhci5odG1sJ10pKSwgTm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWlsdXJl
cy51bmV4cGVjdGVkX2ZhaWx1cmVzX29ic2VydmVkKE1vY2tSZXN1bHRzKFsnYmF6Lmh0bWwnXSkp
LCBOb25lKQotICAgICAgICB1bmJvdW5kZWRfcmVzdWx0cyA9IE1vY2tSZXN1bHRzKFsnYmF6Lmh0
bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10sIGZhaWx1cmVfbGltaXQ9MykKKyAgICAgICAg
dW5ib3VuZGVkX3Jlc3VsdHMgPSBNb2NrUmVzdWx0cyhbJ2Jhei5odG1sJywgJ3F1eC5odG1sJywg
J3RhY28uaHRtbCddLCBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1UcnVlKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGZhaWx1cmVzLnVuZXhwZWN0ZWRfZmFpbHVyZXNfb2JzZXJ2ZWQo
dW5ib3VuZGVkX3Jlc3VsdHMpLCBOb25lKQotICAgICAgICB1bmJvdW5kZWRfcmVzdWx0c193aXRo
X2V4aXN0aW5nX2ZhaWx1cmUgPSBNb2NrUmVzdWx0cyhbJ2Zvby5odG1sJywgJ2Jhei5odG1sJywg
J3F1eC5odG1sJywgJ3RhY28uaHRtbCddLCBmYWlsdXJlX2xpbWl0PTQpCisgICAgICAgIHVuYm91
bmRlZF9yZXN1bHRzX3dpdGhfZXhpc3RpbmdfZmFpbHVyZSA9IE1vY2tSZXN1bHRzKFsnZm9vLmh0
bWwnLCAnYmF6Lmh0bWwnLCAncXV4Lmh0bWwnLCAndGFjby5odG1sJ10sIGRpZF9leGNlZWRfdGVz
dF9mYWlsdXJlX2xpbWl0PVRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmFpbHVyZXMu
dW5leHBlY3RlZF9mYWlsdXJlc19vYnNlcnZlZCh1bmJvdW5kZWRfcmVzdWx0c193aXRoX2V4aXN0
aW5nX2ZhaWx1cmUpLCBOb25lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3QvbGF5b3V0dGVzdHJlc3VsdHNyZWFkZXIucHkKaW5kZXggYTllNTNkZC4uYzMy
OGU1YiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9sYXlvdXR0
ZXN0cmVzdWx0c3JlYWRlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyLnB5CkBAIC03MCwxMCArNzAsNiBAQCBjbGFzcyBMYXlv
dXRUZXN0UmVzdWx0c1JlYWRlcihvYmplY3QpOgogICAgICAgICBsYXlvdXRfdGVzdF9yZXN1bHRz
ID0gc2VsZi5fY3JlYXRlX2xheW91dF90ZXN0X3Jlc3VsdHMoKQogICAgICAgICB1bml0X3Rlc3Rf
cmVzdWx0cyA9IHNlbGYuX2NyZWF0ZV91bml0X3Rlc3RfcmVzdWx0cygpCiAgICAgICAgIGlmIGxh
eW91dF90ZXN0X3Jlc3VsdHM6Ci0gICAgICAgICAgICAjIEZJWE1FOiBUaGlzIGlzIHVzZWQgdG8g
ZGV0ZWN0IGlmIHdlIGhhZCBOIGZhaWx1cmVzIGR1ZSB0bwotICAgICAgICAgICAgIyBOIHRlc3Rz
IGZhaWxpbmcsIG9yIGlmIHdlIGhpdCB0aGUgImV4aXQtYWZ0ZXItbi1mYWlsdXJlcyIgbGltaXQu
Ci0gICAgICAgICAgICAjIFRoZXNlIGRheXMgd2UgY291bGQganVzdCBjaGVjayBmb3IgdGhlICJp
bnRlcnJ1cHRlZCIga2V5IGluIHJlc3VsdHMuanNvbiBpbnN0ZWFkIQotICAgICAgICAgICAgbGF5
b3V0X3Rlc3RfcmVzdWx0cy5zZXRfZmFpbHVyZV9saW1pdF9jb3VudChSdW5UZXN0cy5OT05fSU5U
RVJBQ1RJVkVfRkFJTFVSRV9MSU1JVF9DT1VOVCkKICAgICAgICAgICAgIGlmIHVuaXRfdGVzdF9y
ZXN1bHRzOgogICAgICAgICAgICAgICAgIGxheW91dF90ZXN0X3Jlc3VsdHMuYWRkX3VuaXRfdGVz
dF9mYWlsdXJlcyh1bml0X3Rlc3RfcmVzdWx0cykKICAgICAgICAgcmV0dXJuIGxheW91dF90ZXN0
X3Jlc3VsdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvbGF5
b3V0dGVzdHJlc3VsdHNyZWFkZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L2xheW91dHRlc3RyZXN1bHRzcmVhZGVyX3VuaXR0ZXN0LnB5CmluZGV4IGM3Nzli
YjguLmJhYmYwNDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qv
bGF5b3V0dGVzdHJlc3VsdHNyZWFkZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlcl91bml0dGVzdC5weQpAQCAt
NjgsNyArNjgsNyBAQCBjbGFzcyBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlclRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X21pc3NpbmdfdW5pdF90ZXN0X3Jlc3VsdHNfcGF0aChz
ZWxmKToKICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKICAgICAgICAgcmVhZGVyID0gTGF5b3V0
VGVzdFJlc3VsdHNSZWFkZXIoaG9zdCwgIi9tb2NrLXJlc3VsdHMiLCAiL3Zhci9sb2dzIikKLSAg
ICAgICAgcmVhZGVyLl9jcmVhdGVfbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IGxhbWJkYTogTGF5b3V0
VGVzdFJlc3VsdHMoW10pCisgICAgICAgIHJlYWRlci5fY3JlYXRlX2xheW91dF90ZXN0X3Jlc3Vs
dHMgPSBsYW1iZGE6IExheW91dFRlc3RSZXN1bHRzKHRlc3RfcmVzdWx0cz1bXSwgZGlkX2V4Y2Vl
ZF90ZXN0X2ZhaWx1cmVfbGltaXQ9RmFsc2UpCiAgICAgICAgIHJlYWRlci5fY3JlYXRlX3VuaXRf
dGVzdF9yZXN1bHRzID0gbGFtYmRhOiBOb25lCiAgICAgICAgICMgbGF5b3V0X3Rlc3RfcmVzdWx0
cyBzaG91bGRuJ3QgcmFpc2UgZXZlbiBpZiB0aGUgdW5pdCB0ZXN0cyB4bWwgZmlsZSBpcyBtaXNz
aW5nLgogICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZWFkZXIucmVzdWx0cygpLCBOb25l
KQpAQCAtODEsMTAgKzgxLDkgQEAgY2xhc3MgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXJUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocmVhZGVyLnJlc3Vs
dHMoKSkKICAgICAgICAgcmVhZGVyLl9yZWFkX2ZpbGVfY29udGVudHMgPSBsYW1iZGEgcGF0aDog
IiIKICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocmVhZGVyLnJlc3VsdHMoKSkKLSAgICAgICAg
cmVhZGVyLl9jcmVhdGVfbGF5b3V0X3Rlc3RfcmVzdWx0cyA9IGxhbWJkYTogTGF5b3V0VGVzdFJl
c3VsdHMoW10pCisgICAgICAgIHJlYWRlci5fY3JlYXRlX2xheW91dF90ZXN0X3Jlc3VsdHMgPSBs
YW1iZGE6IExheW91dFRlc3RSZXN1bHRzKHRlc3RfcmVzdWx0cz1bXSwgZGlkX2V4Y2VlZF90ZXN0
X2ZhaWx1cmVfbGltaXQ9RmFsc2UpCiAgICAgICAgIHJlc3VsdHMgPSByZWFkZXIucmVzdWx0cygp
CiAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlc3VsdHMpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocmVzdWx0cy5mYWlsdXJlX2xpbWl0X2NvdW50KCksIDMwKSAgIyBUaGlzIHZhbHVl
IG1hdGNoZXMgUnVuVGVzdHMuTk9OX0lOVEVSQUNUSVZFX0ZBSUxVUkVfTElNSVRfQ09VTlQKIAog
ICAgIGRlZiB0ZXN0X2FyY2hpdmVfbGFzdF9sYXlvdXRfdGVzdF9yZXN1bHRzKHNlbGYpOgogICAg
ICAgICBob3N0ID0gTW9ja0hvc3QoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3NlcnZlcnMvcmViYXNlbGluZXNlcnZlcl91bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL3JlYmFzZWxpbmVzZXJ2ZXJfdW5pdHRlc3QucHkKaW5k
ZXggY2JmOTA3My4uZjA3MDYzYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3NlcnZlcnMvcmViYXNlbGluZXNlcnZlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9yZWJhc2VsaW5lc2VydmVyX3VuaXR0ZXN0LnB5CkBA
IC0yMDUsNyArMjA1LDcgQEAgY2xhc3MgUmViYXNlbGluZVRlc3RUZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKICAgICAgICAgICAgIF0pCiAKICAgICBkZWYgdGVzdF9nYXRoZXJfYmFzZWxpbmVzKHNl
bGYpOgotICAgICAgICBleGFtcGxlX2pzb24gPSByZXN1bHRzanNvbnBhcnNlcl91bml0dGVzdC5S
ZXN1bHRzSlNPTlBhcnNlclRlc3QuX2V4YW1wbGVfZnVsbF9yZXN1bHRzX2pzb24KKyAgICAgICAg
ZXhhbXBsZV9qc29uID0gcmVzdWx0c2pzb25wYXJzZXJfdW5pdHRlc3QuUGFyc2VkSlNPTlJlc3Vs
dHNUZXN0Ll9leGFtcGxlX2Z1bGxfcmVzdWx0c19qc29uCiAgICAgICAgIHJlc3VsdHNfanNvbiA9
IGpzb24ubG9hZHMoc3RyaXBfanNvbl93cmFwcGVyKGV4YW1wbGVfanNvbikpCiAgICAgICAgIHNl
cnZlciA9IFJlYmFzZWxpbmVTZXJ2ZXIoKQogICAgICAgICBzZXJ2ZXIuX3Rlc3RfY29uZmlnID0g
Z2V0X3Rlc3RfY29uZmlnKCkKLS0gCjEuOS4zIChBcHBsZSBHaXQtNTApCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>