<?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>138217</bug_id>
          
          <creation_ts>2014-10-30 11:41:33 -0700</creation_ts>
          <short_desc>PatchAnalysisTask._test_patch() should have more tests that examine cases where the failure limit is exceeded.</short_desc>
          <delta_ts>2016-04-23 13:35:17 -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>NEW</bug_status>
          <resolution></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="Srinivasan Vijayaraghavan">webkit</assigned_to>
          <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dean_johnson</cc>
    
    <cc>glenn</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1045066</commentid>
    <comment_count>0</comment_count>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-30 11:41:33 -0700</bug_when>
    <thetext>commitqueuetask_unittest.py tests this code path. Add more tests there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045097</commentid>
    <comment_count>1</comment_count>
      <attachid>240691</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-30 13:32:09 -0700</bug_when>
    <thetext>Created attachment 240691
Adds more test cases, and fixes a bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045100</commentid>
    <comment_count>2</comment_count>
      <attachid>240691</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-30 13:39:02 -0700</bug_when>
    <thetext>Comment on attachment 240691
Adds more test cases, and fixes a bug.

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

&gt; Tools/Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:524
&gt; +            first_test_failures=[],
&gt; +            second_test_failures=[],
&gt; +            clean_test_failures=_lots_of_failing_tests)
&gt; +
&gt; +        self._run_and_expect_patch_analysis_result(commit_queue, PatchAnalysisResult.PASS)

We shouldn&apos;t be testing clean tests in this case, should we?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045102</commentid>
    <comment_count>3</comment_count>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-30 13:41:51 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 240691 [details]
&gt; Adds more test cases, and fixes a bug.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=240691&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:524
&gt; &gt; +            first_test_failures=[],
&gt; &gt; +            second_test_failures=[],
&gt; &gt; +            clean_test_failures=_lots_of_failing_tests)
&gt; &gt; +
&gt; &gt; +        self._run_and_expect_patch_analysis_result(commit_queue, PatchAnalysisResult.PASS)
&gt; 
&gt; We shouldn&apos;t be testing clean tests in this case, should we?
expect_clean_tests_to_run defaults to False, I can make it explicit if you want though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045330</commentid>
    <comment_count>4</comment_count>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-31 11:42:53 -0700</bug_when>
    <thetext>bump</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047130</commentid>
    <comment_count>5</comment_count>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-11-07 11:34:25 -0800</bug_when>
    <thetext>double bump</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047166</commentid>
    <comment_count>6</comment_count>
      <attachid>240691</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-11-07 13:53:48 -0800</bug_when>
    <thetext>Comment on attachment 240691
Adds more test cases, and fixes a bug.

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047172</commentid>
    <comment_count>7</comment_count>
      <attachid>240691</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-11-07 14:07:19 -0800</bug_when>
    <thetext>Comment on attachment 240691
Adds more test cases, and fixes a bug.

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

&gt;&gt;&gt; Tools/Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:524
&gt;&gt;&gt; +        self._run_and_expect_patch_analysis_result(commit_queue, PatchAnalysisResult.PASS)
&gt;&gt; 
&gt;&gt; We shouldn&apos;t be testing clean tests in this case, should we?
&gt; 
&gt; expect_clean_tests_to_run defaults to False, I can make it explicit if you want though.

From my understanding, Alexey is remarking about the usefulness of this unit test given that we will neither build and run layout tests on the &quot;patch&quot; a second time (*) nor build and run layout tests without the &quot;patch&quot; (since there were no test failures when we built and tested the &quot;patch&quot; on the first try); =&gt; only the value of the first argument, first_test_failures, is important for the purpose of this test; =&gt; the name of this function is a misnomer. One way to resolve this issue is to rename this function to better describe its purpose, maybe test_patch_passes_on_first_try? You may also want to consider adding a comment and/or pick the empty list for the value of argument clean_test_failures to imply to the reader the arbitrariness of the value of the arguments second_test_failures and clean_test_failures.

On another note, I&apos;m unclear how beneficial this test case is given that we have the test case CommitQueueTaskTest.test_success_case(). 

(*) You commented on this behavior on line 510 of this patch. Is this comment incorrect?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047175</commentid>
    <comment_count>8</comment_count>
      <attachid>240691</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-11-07 14:18:14 -0800</bug_when>
    <thetext>Comment on attachment 240691
Adds more test cases, and fixes a bug.

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

&gt; Tools/Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:532
&gt; +        # Unfortunately there are cases where the clean build will randomly fail enough tests to hit the failure limit.

Can you provide a concrete example? I know we may not know an exact cause, but do we have an idea what the cause is when the a clean build randomly fails enough tests to hit the failure limit? Do we have so many non-skipped flaky tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047192</commentid>
    <comment_count>9</comment_count>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-11-07 15:03:22 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 240691 [details]
&gt; Adds more test cases, and fixes a bug.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=240691&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Tools/Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:524
&gt; &gt;&gt;&gt; +        self._run_and_expect_patch_analysis_result(commit_queue, PatchAnalysisResult.PASS)
&gt; &gt;&gt; 
&gt; &gt;&gt; We shouldn&apos;t be testing clean tests in this case, should we?
&gt; &gt; 
&gt; &gt; expect_clean_tests_to_run defaults to False, I can make it explicit if you want though.
&gt; 
&gt; From my understanding, Alexey is remarking about the usefulness of this unit
&gt; test given that we will neither build and run layout tests on the &quot;patch&quot; a
&gt; second time (*) nor build and run layout tests without the &quot;patch&quot; (since
&gt; there were no test failures when we built and tested the &quot;patch&quot; on the
&gt; first try); =&gt; only the value of the first argument, first_test_failures, is
&gt; important for the purpose of this test; =&gt; the name of this function is a
&gt; misnomer. One way to resolve this issue is to rename this function to better
&gt; describe its purpose, maybe test_patch_passes_on_first_try? You may also
&gt; want to consider adding a comment and/or pick the empty list for the value
&gt; of argument clean_test_failures to imply to the reader the arbitrariness of
&gt; the value of the arguments second_test_failures and clean_test_failures.
&gt; 
&gt; On another note, I&apos;m unclear how beneficial this test case is given that we
&gt; have the test case CommitQueueTaskTest.test_success_case().
That&apos;s a good point, I&apos;ll take it out.
&gt; 
&gt; (*) You commented on this behavior on line 510 of this patch. Is this
&gt; comment incorrect?
Yes, this comment is correct. The test case in question (test_tree_failure_limit_with_patch_that_fixes_redness) ensures the correctness of the comment, but as you pointed out, so does test_success_case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047195</commentid>
    <comment_count>10</comment_count>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-11-07 15:05:53 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 240691 [details]
&gt; Adds more test cases, and fixes a bug.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=240691&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:532
&gt; &gt; +        # Unfortunately there are cases where the clean build will randomly fail enough tests to hit the failure limit.
&gt; 
&gt; Can you provide a concrete example? I know we may not know an exact cause,
&gt; but do we have an idea what the cause is when the a clean build randomly
&gt; fails enough tests to hit the failure limit? Do we have so many non-skipped
&gt; flaky tests?
Alexey mentioned this case to me in person. As I recall there&apos;s a case where the browser can get resized and essentially any test that expects elements to end up at a specific location will fail. I may be misunderstanding/misremembering. 
Did I get that right Alexey?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047201</commentid>
    <comment_count>11</comment_count>
      <attachid>241211</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-11-07 15:10:20 -0800</bug_when>
    <thetext>Created attachment 241211
Removes useless test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047207</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-11-07 15:26:13 -0800</bug_when>
    <thetext>It&apos;s not flaky tests, it&apos;s some flakiness in WebKitTestRunner, or WindowServer, or who know where. See e.g. &lt;https://build.webkit.org/results/Apple%20Mavericks%20Debug%20WK1%20(Tests)/r175752%20(8770)/results.html&gt; - that happens multiple times per week. People were looking into this, but didn&apos;t find the root cause yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186658</commentid>
    <comment_count>13</comment_count>
      <attachid>241211</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-04-23 13:18:07 -0700</bug_when>
    <thetext>Comment on attachment 241211
Removes useless test

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

This patch is reasonable. It seems excessive to represent _lots_of_failing_tests with 100 failing tests. It seems sufficient to represents this with three failures and use the name of the variable to convey that it represents many test failures. If we make _lots_of_failing_tests be an array of three test names then we should update the other test cases such that we pass an array with less than three entries for {first, second, clean}_test_failures as appropriate for the test.

&gt; Tools/Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:518
&gt; +    def test_tree_failure_limit_with_patch_that_potentially_fixes_some_redness(self):

How does this test case represent a patch that &quot;potentially fixes some redness&quot;? I mean, the patch fails the same tests in both the first and second tries. The result of the clean build represents an anomaly that we should not experience in theory, but seems to hit in practice according to you and Alexey. We should determine the root cause and fix this anomaly. I can understand the motivation for including a test for this anomaly. I do not see the benefit of this test case other than to serve as documentation that the anomaly can occur. This test case is logically not sound. If the purpose of this test is for documentation purposes then it would be better to document this anomaly in a bug. So that we can fix track it in a searchable manner and ultimately fix it. I do not see the benefit of validating in the webkitpy code that we can handle such a case because if a machine were to get into a state materially consistent with the state excised by this test case (maybe a cosmic ray hit it?) then the machine is messed up and I do not see how we can trust results from it, including results from the continued execution of the webkitpy code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186660</commentid>
    <comment_count>14</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-04-23 13:23:29 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Comment on attachment 241211 [details]
&gt; Removes useless test
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=241211&amp;action=review
&gt; 
&gt; This patch is reasonable. [...]

To clarify, I&apos;m r-&apos;ing this patch because this patch is several month old and I would like to see a rebased patch. I would also like to see us simplify this test based on remark in the first paragraph of comment #13 and I would like us to consider either renaming or removing the the test case test_tree_failure_limit_with_patch_that_potentially_fixes_some_redness().</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240691</attachid>
            <date>2014-10-30 13:32:09 -0700</date>
            <delta_ts>2014-11-07 15:10:20 -0800</delta_ts>
            <desc>Adds more test cases, and fixes a bug.</desc>
            <filename>0001-PatchAnalysisTask._test_patch-should-have-more-tests.patch</filename>
            <type>text/plain</type>
            <size>10691</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSBiYjY4OTc2ZTg2ZGIwZGY0N2M2MTZjMWNhMjM1ZmUzMmVmYmJkMWI3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBUaHUsIDMwIE9jdCAyMDE0IDEzOjMxOjQwIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
UGF0Y2hBbmFseXNpc1Rhc2suX3Rlc3RfcGF0Y2goKSBzaG91bGQgaGF2ZSBtb3JlIHRlc3RzIHRo
YXQKIGV4YW1pbmUgY2FzZXMgd2hlcmUgdGhlIGZhaWx1cmUgbGltaXQgaXMgZXhjZWVkZWQuCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4MjE3CgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCiogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1
ZXRhc2tfdW5pdHRlc3QucHk6CkFkZHMgbWFueSB0ZXN0IGNhc2VzLgoodGVzdF9yZWRfdGVzdF9m
YWlsdXJlKToKKHRlc3RfZmlyc3RfZmFpbHVyZV9saW1pdCk6Cih0ZXN0X2ZpcnN0X2ZhaWx1cmVf
bGltaXRfd2l0aF9zb21lX3RyZWVfcmVkbmVzcyk6Cih0ZXN0X3NlY29uZF9mYWlsdXJlX2xpbWl0
KToKKHRlc3RfdHJlZV9mYWlsdXJlX2xpbWl0X3dpdGhfcGF0Y2hfdGhhdF9maXhlc19yZWRuZXNz
KToKKHRlc3RfdHJlZV9mYWlsdXJlX2xpbWl0X3dpdGhfcGF0Y2hfdGhhdF9wb3RlbnRpYWxseV9m
aXhlc19zb21lX3JlZG5lc3MpOgoodGVzdF9maXJzdF9hbmRfc2Vjb25kX2ZhaWx1cmVfbGltaXQp
OgoodGVzdF9maXJzdF9hbmRfY2xlYW5fZmFpbHVyZV9saW1pdCk6Cih0ZXN0X2ZpcnN0X3NlY29u
ZF9hbmRfY2xlYW5fZmFpbHVyZV9saW1pdCk6Cih0ZXN0X3ZlcnlfcmVkX3RyZWVfcmV0cnkpOiBE
ZWxldGVkLgpSZW5hbWVkIHRvIHRlc3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVhbl9mYWlsdXJlX2xp
bWl0CiogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weToKVGhl
IHdyb25nIGZhaWx1cmUgc3RhdHVzIElEIHdhcyBiZWluZyBzdG9yZWQuCihQYXRjaEFuYWx5c2lz
VGFzay5fY29udGludWVfdGVzdGluZ19wYXRjaF90aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGltaXRf
b25fZmlyc3Rfb3Jfc2Vjb25kX3RyeSk6CihQYXRjaEFuYWx5c2lzVGFzay5fdGVzdF9wYXRjaCk6
Ci0tLQogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAyNiArKysrKysrKwogLi4uL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0
dGVzdC5weSAgfCA3OCArKysrKysrKysrKysrKysrKysrLS0tCiAuLi4vU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weSB8ICA1ICstCiAzIGZpbGVzIGNoYW5nZWQs
IDk4IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlYjFhODA5Li40ZGUzMDdlIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTQtMTAtMzAgIEpha2UgTmllbHNlbiAgPGphY29iX25pZWxzZW5AYXBwbGUuY29tPgor
CisgICAgICAgIFBhdGNoQW5hbHlzaXNUYXNrLl90ZXN0X3BhdGNoKCkgc2hvdWxkIGhhdmUgbW9y
ZSB0ZXN0cyB0aGF0IGV4YW1pbmUKKyAgICAgICAgY2FzZXMgd2hlcmUgdGhlIGZhaWx1cmUgbGlt
aXQgaXMgZXhjZWVkZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzgyMTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0
ZXN0LnB5OgorICAgICAgICBBZGRzIG1hbnkgdGVzdCBjYXNlcy4KKyAgICAgICAgKHRlc3RfcmVk
X3Rlc3RfZmFpbHVyZSk6CisgICAgICAgICh0ZXN0X2ZpcnN0X2ZhaWx1cmVfbGltaXQpOgorICAg
ICAgICAodGVzdF9maXJzdF9mYWlsdXJlX2xpbWl0X3dpdGhfc29tZV90cmVlX3JlZG5lc3MpOgor
ICAgICAgICAodGVzdF9zZWNvbmRfZmFpbHVyZV9saW1pdCk6CisgICAgICAgICh0ZXN0X3RyZWVf
ZmFpbHVyZV9saW1pdF93aXRoX3BhdGNoX3RoYXRfZml4ZXNfcmVkbmVzcyk6CisgICAgICAgICh0
ZXN0X3RyZWVfZmFpbHVyZV9saW1pdF93aXRoX3BhdGNoX3RoYXRfcG90ZW50aWFsbHlfZml4ZXNf
c29tZV9yZWRuZXNzKToKKyAgICAgICAgKHRlc3RfZmlyc3RfYW5kX3NlY29uZF9mYWlsdXJlX2xp
bWl0KToKKyAgICAgICAgKHRlc3RfZmlyc3RfYW5kX2NsZWFuX2ZhaWx1cmVfbGltaXQpOgorICAg
ICAgICAodGVzdF9maXJzdF9zZWNvbmRfYW5kX2NsZWFuX2ZhaWx1cmVfbGltaXQpOgorICAgICAg
ICAodGVzdF92ZXJ5X3JlZF90cmVlX3JldHJ5KTogRGVsZXRlZC4KKyAgICAgICAgUmVuYW1lZCB0
byB0ZXN0X2ZpcnN0X3NlY29uZF9hbmRfY2xlYW5fZmFpbHVyZV9saW1pdAorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHk6CisgICAgICAgIFRo
ZSB3cm9uZyBmYWlsdXJlIHN0YXR1cyBJRCB3YXMgYmVpbmcgc3RvcmVkLgorICAgICAgICAoUGF0
Y2hBbmFseXNpc1Rhc2suX2NvbnRpbnVlX3Rlc3RpbmdfcGF0Y2hfdGhhdF9leGNlZWRlZF9mYWls
dXJlX2xpbWl0X29uX2ZpcnN0X29yX3NlY29uZF90cnkpOgorICAgICAgICAoUGF0Y2hBbmFseXNp
c1Rhc2suX3Rlc3RfcGF0Y2gpOgorCiAyMDE0LTEwLTMwICBSb2hpdCBLdW1hciAgPGt1bWFyLnJv
aGl0QHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtHVEtdIE1pbmlicm93c2VyIDogQWRkIHdpbmRv
dyBmdWxsc2NyZWVuIHN1cHBvcnQgZm9yIE1pbmlicm93c2VyCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5
CmluZGV4IGRjMTM5YzguLjM0NGY5ZjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5CkBAIC0xNTgs
NiArMTU4LDcgQEAgY2xhc3MgTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUoTW9ja0NvbW1p
dFF1ZXVlKToKIGNsYXNzIEdvbGRlblNjcmlwdEVycm9yKFNjcmlwdEVycm9yKToKICAgICBwYXNz
CiAKK19sb3RzX29mX2ZhaWxpbmdfdGVzdHMgPSBtYXAobGFtYmRhIG51bTogInRlc3QtJXMuaHRt
bCIgJSBudW0sIHJhbmdlKDAsIDEwMCkpCiAKIGNsYXNzIENvbW1pdFF1ZXVlVGFza1Rlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBfcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNf
cmVzdWx0KHNlbGYsIGNvbW1pdF9xdWV1ZSwgZXhwZWN0ZWRfYW5hbHlzaXNfcmVzdWx0LCBleHBl
Y3RlZF9yZXBvcnRlZF9mbGFreV90ZXN0cz1bXSwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1G
YWxzZSwgZXhwZWN0ZWRfZmFpbHVyZV9zdGF0dXNfaWQ9MCk6CkBAIC0zOTcsMTUgKzM5OCw2IEBA
IGNvbW1hbmRfZmFpbGVkOiBmYWlsdXJlX21lc3NhZ2U9J1VuYWJsZSB0byBsYW5kIHBhdGNoJyBz
Y3JpcHRfZXJyb3I9J01PQ0sgbGFuZCBmCiAKICAgICAgICAgc2VsZi5fcnVuX2FuZF9leHBlY3Rf
cGF0Y2hfYW5hbHlzaXNfcmVzdWx0KGNvbW1pdF9xdWV1ZSwgUGF0Y2hBbmFseXNpc1Jlc3VsdC5Q
QVNTLCBleHBlY3RfY2xlYW5fdGVzdHNfdG9fcnVuPVRydWUpCiAKLSAgICBkZWYgdGVzdF92ZXJ5
X3JlZF90cmVlX3JldHJ5KHNlbGYpOgotICAgICAgICBsb3RzX29mX2ZhaWxpbmdfdGVzdHMgPSBt
YXAobGFtYmRhIG51bTogInRlc3QtJXMuaHRtbCIgJSBudW0sIHJhbmdlKDAsIDEwMCkpCi0gICAg
ICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tTaW1wbGVUZXN0UGxhbkNvbW1pdFF1ZXVlKAotICAgICAg
ICAgICAgZmlyc3RfdGVzdF9mYWlsdXJlcz1sb3RzX29mX2ZhaWxpbmdfdGVzdHMsCi0gICAgICAg
ICAgICBzZWNvbmRfdGVzdF9mYWlsdXJlcz1sb3RzX29mX2ZhaWxpbmdfdGVzdHMsCi0gICAgICAg
ICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPWxvdHNfb2ZfZmFpbGluZ190ZXN0cykKLQotICAgICAg
ICBzZWxmLl9ydW5fYW5kX2V4cGVjdF9wYXRjaF9hbmFseXNpc19yZXN1bHQoY29tbWl0X3F1ZXVl
LCBQYXRjaEFuYWx5c2lzUmVzdWx0LkRFRkVSLCBleHBlY3RfY2xlYW5fdGVzdHNfdG9fcnVuPVRy
dWUpCi0KICAgICBkZWYgdGVzdF9yZWRfdHJlZV9wYXRjaF9yZWplY3Rpb24oc2VsZik6CiAgICAg
ICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tTaW1wbGVUZXN0UGxhbkNvbW1pdFF1ZXVlKAogICAgICAg
ICAgICAgZmlyc3RfdGVzdF9mYWlsdXJlcz1bIkZhaWwxIiwgIkZhaWwyIl0sCkBAIC00OTgsNiAr
NDkwLDc0IEBAIGNvbW1hbmRfZmFpbGVkOiBmYWlsdXJlX21lc3NhZ2U9J1VuYWJsZSB0byBsYW5k
IHBhdGNoJyBzY3JpcHRfZXJyb3I9J01PQ0sgbGFuZCBmCiAKICAgICAgICAgc2VsZi5fcnVuX2Fu
ZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0KGNvbW1pdF9xdWV1ZSwgUGF0Y2hBbmFseXNp
c1Jlc3VsdC5QQVNTLCBleHBlY3RfY2xlYW5fdGVzdHNfdG9fcnVuPVRydWUpCiAKKyAgICBkZWYg
dGVzdF9maXJzdF9mYWlsdXJlX2xpbWl0KHNlbGYpOgorICAgICAgICBjb21taXRfcXVldWUgPSBN
b2NrU2ltcGxlVGVzdFBsYW5Db21taXRRdWV1ZSgKKyAgICAgICAgICAgIGZpcnN0X3Rlc3RfZmFp
bHVyZXM9X2xvdHNfb2ZfZmFpbGluZ190ZXN0cywKKyAgICAgICAgICAgIHNlY29uZF90ZXN0X2Zh
aWx1cmVzPVtdLAorICAgICAgICAgICAgY2xlYW5fdGVzdF9mYWlsdXJlcz1bXSkKKworICAgICAg
ICBzZWxmLl9ydW5fYW5kX2V4cGVjdF9wYXRjaF9hbmFseXNpc19yZXN1bHQoY29tbWl0X3F1ZXVl
LCBQYXRjaEFuYWx5c2lzUmVzdWx0LkZBSUwsIGV4cGVjdF9jbGVhbl90ZXN0c190b19ydW49VHJ1
ZSwgZXhwZWN0ZWRfZmFpbHVyZV9zdGF0dXNfaWQ9MSkKKworICAgIGRlZiB0ZXN0X2ZpcnN0X2Zh
aWx1cmVfbGltaXRfd2l0aF9zb21lX3RyZWVfcmVkbmVzcyhzZWxmKToKKyAgICAgICAgY29tbWl0
X3F1ZXVlID0gTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUoCisgICAgICAgICAgICBmaXJz
dF90ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdfdGVzdHMsCisgICAgICAgICAgICBzZWNv
bmRfdGVzdF9mYWlsdXJlcz1bIkZhaWwxIiwgIkZhaWwyIiwgIkZhaWwzIl0sCisgICAgICAgICAg
ICBjbGVhbl90ZXN0X2ZhaWx1cmVzPVsiRmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMiXSkKKworICAg
ICAgICBzZWxmLl9ydW5fYW5kX2V4cGVjdF9wYXRjaF9hbmFseXNpc19yZXN1bHQoY29tbWl0X3F1
ZXVlLCBQYXRjaEFuYWx5c2lzUmVzdWx0LkZBSUwsIGV4cGVjdF9jbGVhbl90ZXN0c190b19ydW49
VHJ1ZSwgZXhwZWN0ZWRfZmFpbHVyZV9zdGF0dXNfaWQ9MSkKKworICAgIGRlZiB0ZXN0X3NlY29u
ZF9mYWlsdXJlX2xpbWl0KHNlbGYpOgorICAgICAgICAjIFRoZXJlIG5lZWQgdG8gYmUgc29tZSBm
YWlsdXJlcyBpbiB0aGUgZmlyc3Qgc2V0IG9mIHRlc3RzLCBvciBpdCB3b24ndCBldmVuIG1ha2Ug
aXQgdG8gdGhlIHNlY29uZCB0ZXN0LgorICAgICAgICBjb21taXRfcXVldWUgPSBNb2NrU2ltcGxl
VGVzdFBsYW5Db21taXRRdWV1ZSgKKyAgICAgICAgICAgIGZpcnN0X3Rlc3RfZmFpbHVyZXM9WyJG
YWlsMSIsICJGYWlsMiIsICJGYWlsMyJdLAorICAgICAgICAgICAgc2Vjb25kX3Rlc3RfZmFpbHVy
ZXM9X2xvdHNfb2ZfZmFpbGluZ190ZXN0cywKKyAgICAgICAgICAgIGNsZWFuX3Rlc3RfZmFpbHVy
ZXM9WyJGYWlsMSIsICJGYWlsMiIsICJGYWlsMyJdKQorCisgICAgICAgIHNlbGYuX3J1bl9hbmRf
ZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3VsdChjb21taXRfcXVldWUsIFBhdGNoQW5hbHlzaXNS
ZXN1bHQuRkFJTCwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1UcnVlLCBleHBlY3RlZF9mYWls
dXJlX3N0YXR1c19pZD0yKQorCisgICAgZGVmIHRlc3RfdHJlZV9mYWlsdXJlX2xpbWl0X3dpdGhf
cGF0Y2hfdGhhdF9maXhlc19yZWRuZXNzKHNlbGYpOgorICAgICAgICBjb21taXRfcXVldWUgPSBN
b2NrU2ltcGxlVGVzdFBsYW5Db21taXRRdWV1ZSgKKyAgICAgICAgICAgIGZpcnN0X3Rlc3RfZmFp
bHVyZXM9W10sCisgICAgICAgICAgICBzZWNvbmRfdGVzdF9mYWlsdXJlcz1bXSwKKyAgICAgICAg
ICAgIGNsZWFuX3Rlc3RfZmFpbHVyZXM9X2xvdHNfb2ZfZmFpbGluZ190ZXN0cykKKworICAgICAg
ICBzZWxmLl9ydW5fYW5kX2V4cGVjdF9wYXRjaF9hbmFseXNpc19yZXN1bHQoY29tbWl0X3F1ZXVl
LCBQYXRjaEFuYWx5c2lzUmVzdWx0LlBBU1MpCisKKyAgICBkZWYgdGVzdF90cmVlX2ZhaWx1cmVf
bGltaXRfd2l0aF9wYXRjaF90aGF0X3BvdGVudGlhbGx5X2ZpeGVzX3NvbWVfcmVkbmVzcyhzZWxm
KToKKyAgICAgICAgY29tbWl0X3F1ZXVlID0gTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUo
CisgICAgICAgICAgICBmaXJzdF90ZXN0X2ZhaWx1cmVzPVsiRmFpbDEiLCAiRmFpbDIiLCAiRmFp
bDMiXSwKKyAgICAgICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1cmVzPVsiRmFpbDEiLCAiRmFpbDIi
LCAiRmFpbDMiXSwKKyAgICAgICAgICAgIGNsZWFuX3Rlc3RfZmFpbHVyZXM9X2xvdHNfb2ZfZmFp
bGluZ190ZXN0cykKKworICAgICAgICAjIFVuZm9ydHVuYXRlbHkgdGhlcmUgYXJlIGNhc2VzIHdo
ZXJlIHRoZSBjbGVhbiBidWlsZCB3aWxsIHJhbmRvbWx5IGZhaWwgZW5vdWdoIHRlc3RzIHRvIGhp
dCB0aGUgZmFpbHVyZSBsaW1pdC4KKyAgICAgICAgIyBXaXRoIHRoYXQgaW4gbWluZCwgd2UgY2Fu
J3QgYWN0dWFsbHkga25vdyB0aGF0IHRoaXMgcGF0Y2ggaXMgZ29vZCBvciBiYWQgdW50aWwgd2Ug
c2VlIGEgY2xlYW4gcnVuIHRoYXQgZG9lc24ndAorICAgICAgICAjIGV4Y2VlZCB0aGUgZmFpbHVy
ZSBsaW1pdC4KKyAgICAgICAgc2VsZi5fcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVz
dWx0KGNvbW1pdF9xdWV1ZSwgUGF0Y2hBbmFseXNpc1Jlc3VsdC5ERUZFUiwgZXhwZWN0X2NsZWFu
X3Rlc3RzX3RvX3J1bj1UcnVlKQorCisgICAgZGVmIHRlc3RfZmlyc3RfYW5kX3NlY29uZF9mYWls
dXJlX2xpbWl0KHNlbGYpOgorICAgICAgICBjb21taXRfcXVldWUgPSBNb2NrU2ltcGxlVGVzdFBs
YW5Db21taXRRdWV1ZSgKKyAgICAgICAgICAgIGZpcnN0X3Rlc3RfZmFpbHVyZXM9X2xvdHNfb2Zf
ZmFpbGluZ190ZXN0cywKKyAgICAgICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1cmVzPV9sb3RzX29m
X2ZhaWxpbmdfdGVzdHMsCisgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPVtdKQorCisg
ICAgICAgIHNlbGYuX3J1bl9hbmRfZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3VsdChjb21taXRf
cXVldWUsIFBhdGNoQW5hbHlzaXNSZXN1bHQuRkFJTCwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1
bj1UcnVlLCBleHBlY3RlZF9mYWlsdXJlX3N0YXR1c19pZD0xKQorCisgICAgZGVmIHRlc3RfZmly
c3RfYW5kX2NsZWFuX2ZhaWx1cmVfbGltaXQoc2VsZik6CisgICAgICAgIGNvbW1pdF9xdWV1ZSA9
IE1vY2tTaW1wbGVUZXN0UGxhbkNvbW1pdFF1ZXVlKAorICAgICAgICAgICAgZmlyc3RfdGVzdF9m
YWlsdXJlcz1fbG90c19vZl9mYWlsaW5nX3Rlc3RzLAorICAgICAgICAgICAgc2Vjb25kX3Rlc3Rf
ZmFpbHVyZXM9W10sCisgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2Zh
aWxpbmdfdGVzdHMpCisKKyAgICAgICAgc2VsZi5fcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlz
aXNfcmVzdWx0KGNvbW1pdF9xdWV1ZSwgUGF0Y2hBbmFseXNpc1Jlc3VsdC5ERUZFUiwgZXhwZWN0
X2NsZWFuX3Rlc3RzX3RvX3J1bj1UcnVlKQorCisgICAgZGVmIHRlc3RfZmlyc3Rfc2Vjb25kX2Fu
ZF9jbGVhbl9mYWlsdXJlX2xpbWl0KHNlbGYpOgorICAgICAgICBjb21taXRfcXVldWUgPSBNb2Nr
U2ltcGxlVGVzdFBsYW5Db21taXRRdWV1ZSgKKyAgICAgICAgICAgIGZpcnN0X3Rlc3RfZmFpbHVy
ZXM9X2xvdHNfb2ZfZmFpbGluZ190ZXN0cywKKyAgICAgICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1
cmVzPV9sb3RzX29mX2ZhaWxpbmdfdGVzdHMsCisgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1
cmVzPV9sb3RzX29mX2ZhaWxpbmdfdGVzdHMpCisKKyAgICAgICAgc2VsZi5fcnVuX2FuZF9leHBl
Y3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0KGNvbW1pdF9xdWV1ZSwgUGF0Y2hBbmFseXNpc1Jlc3Vs
dC5ERUZFUiwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1UcnVlKQorCiAgICAgZGVmIF9leHBl
Y3RfdmFsaWRhdGUoc2VsZiwgcGF0Y2gsIGlzX3ZhbGlkKToKICAgICAgICAgY2xhc3MgTW9ja0Rl
bGVnYXRlKG9iamVjdCk6CiAgICAgICAgICAgICBkZWYgcmVmZXRjaF9wYXRjaChzZWxmLCBwYXRj
aCk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5h
bHlzaXN0YXNrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5
c2lzdGFzay5weQppbmRleCBmNWVhZDRjLi40YjhiMzljYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CkBAIC0xODQsNiAr
MTg0LDcgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgcmV0dXJu
IGZpcnN0X2ZhaWxpbmdfdGVzdHMgIT0gc2Vjb25kX2ZhaWxpbmdfdGVzdHMKIAogICAgIGRlZiBf
Y29udGludWVfdGVzdGluZ19wYXRjaF90aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmly
c3Rfb3Jfc2Vjb25kX3RyeShzZWxmLCByZXN1bHRzLCByZXN1bHRzX2FyY2hpdmUsIHNjcmlwdF9l
cnJvcik6CisgICAgICAgIGZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19p
ZAogICAgICAgICBzZWxmLl9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKCkKICAgICAgICAg
c2VsZi5fY2xlYW5fdHJlZV9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkK
IApAQCAtMTk0LDYgKzE5NSw3IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAg
ICAgICAgIGlmIChsZW4ocmVzdWx0cy5mYWlsaW5nX3Rlc3RzKCkpIC0gbGVuKHNlbGYuX2NsZWFu
X3RyZWVfcmVzdWx0cy5mYWlsaW5nX3Rlc3RzKCkpKSA8PSA1OgogICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCiAKKyAgICAgICAgc2VsZi5mYWlsdXJlX3N0YXR1c19pZCA9IGZhaWx1cmVfc3RhdHVz
X2lkCiAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKHJlc3VsdHNfYXJjaGl2ZSwg
cmVzdWx0cywgc2NyaXB0X2Vycm9yKQogCiAgICAgZGVmIF90ZXN0X3BhdGNoKHNlbGYpOgpAQCAt
MjE5LDcgKzIyMSw2IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAg
IHNlY29uZF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKICAgICAgICAg
c2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSA9IHNlbGYuX2RlbGVnYXRlLmFyY2hpdmVfbGFzdF90ZXN0
X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCiAgICAgICAgIHNlY29uZF9zY3JpcHRfZXJyb3IgPSBzZWxm
Ll9zY3JpcHRfZXJyb3IKLSAgICAgICAgc2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5m
YWlsdXJlX3N0YXR1c19pZAogCiAgICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRf
dGVzdF9mYWlsdXJlX2xpbWl0KCk6CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5fY29udGludWVf
dGVzdGluZ19wYXRjaF90aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vj
b25kX3RyeShzZWNvbmRfcmVzdWx0cywgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSwgc2Vjb25kX3Nj
cmlwdF9lcnJvcikKQEAgLTI0NSw3ICsyNDYsNyBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhv
YmplY3QpOgogICAgICAgICAgICAgICAgICAgICBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkID0gZmly
c3RfZmFpbHVyZV9zdGF0dXNfaWQKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVw
b3J0X2ZhaWx1cmUoZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBuZXdfZmFpbHVyZXNfaW50cm9kdWNl
ZF9ieV9wYXRjaCwgZmlyc3Rfc2NyaXB0X2Vycm9yKQogCi0gICAgICAgICAgICAjIEF0IHRoaXMg
cG9pbnQgd2Uga25vdyB0aGF0IHRoZXJlIGlzIGZsYWt5bmVzcyB3aXRoIHRoZSBwYXRjaCBhcHBs
aWVkLCBidXQgbm8gY29uc2lzdGVudCBmYWlsdXJlcworICAgICAgICAgICAgIyBBdCB0aGlzIHBv
aW50IHdlIGtub3cgdGhhdCB0aGVyZSBpcyBmbGFraW5lc3Mgd2l0aCB0aGUgcGF0Y2ggYXBwbGll
ZCwgYnV0IG5vIGNvbnNpc3RlbnQgZmFpbHVyZXMKICAgICAgICAgICAgICMgd2VyZSBpbnRyb2R1
Y2VkLiBUaGlzIGlzIGEgYml0IG9mIGEgZ3JleS16b25lLgogICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCiAKLS0gCjEuOS4zIChBcHBsZSBHaXQtNTApCgo=
</data>
<flag name="review"
          id="265467"
          type_id="1"
          status="-"
          setter="dbates"
    />
    <flag name="commit-queue"
          id="265468"
          type_id="3"
          status="-"
          setter="dbates"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241211</attachid>
            <date>2014-11-07 15:10:20 -0800</date>
            <delta_ts>2016-04-23 13:18:07 -0700</delta_ts>
            <desc>Removes useless test</desc>
            <filename>0001-PatchAnalysisTask._test_patch-should-have-more-tests.patch</filename>
            <type>text/plain</type>
            <size>10214</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSA2YjczNjQ0ZjMwNzk3OTgwZjE2M2VkY2MyMDc1MmY5ZjIwNWMyYmYzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBGcmksIDcgTm92IDIwMTQgMTU6MDk6NDUgLTA4MDAKU3ViamVjdDogW1BBVENIXSBQ
YXRjaEFuYWx5c2lzVGFzay5fdGVzdF9wYXRjaCgpIHNob3VsZCBoYXZlIG1vcmUgdGVzdHMgdGhh
dAogZXhhbWluZSBjYXNlcyB3aGVyZSB0aGUgZmFpbHVyZSBsaW1pdCBpcyBleGNlZWRlZC4KIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgyMTcKClJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgoKKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVl
dGFza191bml0dGVzdC5weToKQWRkcyBtYW55IHRlc3QgY2FzZXMuCih0ZXN0X3JlZF90ZXN0X2Zh
aWx1cmUpOgoodGVzdF9maXJzdF9mYWlsdXJlX2xpbWl0KToKKHRlc3RfZmlyc3RfZmFpbHVyZV9s
aW1pdF93aXRoX3NvbWVfdHJlZV9yZWRuZXNzKToKKHRlc3Rfc2Vjb25kX2ZhaWx1cmVfbGltaXQp
OgoodGVzdF90cmVlX2ZhaWx1cmVfbGltaXRfd2l0aF9wYXRjaF90aGF0X3BvdGVudGlhbGx5X2Zp
eGVzX3NvbWVfcmVkbmVzcyk6Cih0ZXN0X2ZpcnN0X2FuZF9zZWNvbmRfZmFpbHVyZV9saW1pdCk6
Cih0ZXN0X2ZpcnN0X2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0KToKKHRlc3RfZmlyc3Rfc2Vjb25k
X2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0KToKKHRlc3RfdmVyeV9yZWRfdHJlZV9yZXRyeSk6IERl
bGV0ZWQuClJlbmFtZWQgdG8gdGVzdF9maXJzdF9zZWNvbmRfYW5kX2NsZWFuX2ZhaWx1cmVfbGlt
aXQKKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5OgpUaGUg
d3JvbmcgZmFpbHVyZSBzdGF0dXMgSUQgd2FzIGJlaW5nIHN0b3JlZC4KKFBhdGNoQW5hbHlzaXNU
YXNrLl9jb250aW51ZV90ZXN0aW5nX3BhdGNoX3RoYXRfZXhjZWVkZWRfZmFpbHVyZV9saW1pdF9v
bl9maXJzdF9vcl9zZWNvbmRfdHJ5KToKKFBhdGNoQW5hbHlzaXNUYXNrLl90ZXN0X3BhdGNoKToK
LS0tCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
IDI1ICsrKysrKysrCiAuLi4vd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0
ZXN0LnB5ICB8IDcwICsrKysrKysrKysrKysrKysrKystLS0KIC4uLi9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5IHwgIDUgKy0KIDMgZmlsZXMgY2hhbmdlZCwg
ODkgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGViMWE4MDkuLmIxMzA3YTcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBA
QAorMjAxNC0xMS0wNyAgSmFrZSBOaWVsc2VuICA8amFjb2JfbmllbHNlbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUGF0Y2hBbmFseXNpc1Rhc2suX3Rlc3RfcGF0Y2goKSBzaG91bGQgaGF2ZSBtb3Jl
IHRlc3RzIHRoYXQgZXhhbWluZQorICAgICAgICBjYXNlcyB3aGVyZSB0aGUgZmFpbHVyZSBsaW1p
dCBpcyBleGNlZWRlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzODIxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRl
c3QucHk6CisgICAgICAgIEFkZHMgbWFueSB0ZXN0IGNhc2VzLgorICAgICAgICAodGVzdF9yZWRf
dGVzdF9mYWlsdXJlKToKKyAgICAgICAgKHRlc3RfZmlyc3RfZmFpbHVyZV9saW1pdCk6CisgICAg
ICAgICh0ZXN0X2ZpcnN0X2ZhaWx1cmVfbGltaXRfd2l0aF9zb21lX3RyZWVfcmVkbmVzcyk6Cisg
ICAgICAgICh0ZXN0X3NlY29uZF9mYWlsdXJlX2xpbWl0KToKKyAgICAgICAgKHRlc3RfdHJlZV9m
YWlsdXJlX2xpbWl0X3dpdGhfcGF0Y2hfdGhhdF9wb3RlbnRpYWxseV9maXhlc19zb21lX3JlZG5l
c3MpOgorICAgICAgICAodGVzdF9maXJzdF9hbmRfc2Vjb25kX2ZhaWx1cmVfbGltaXQpOgorICAg
ICAgICAodGVzdF9maXJzdF9hbmRfY2xlYW5fZmFpbHVyZV9saW1pdCk6CisgICAgICAgICh0ZXN0
X2ZpcnN0X3NlY29uZF9hbmRfY2xlYW5fZmFpbHVyZV9saW1pdCk6CisgICAgICAgICh0ZXN0X3Zl
cnlfcmVkX3RyZWVfcmV0cnkpOiBEZWxldGVkLgorICAgICAgICBSZW5hbWVkIHRvIHRlc3RfZmly
c3Rfc2Vjb25kX2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weToKKyAgICAgICAgVGhlIHdyb25nIGZh
aWx1cmUgc3RhdHVzIElEIHdhcyBiZWluZyBzdG9yZWQuCisgICAgICAgIChQYXRjaEFuYWx5c2lz
VGFzay5fY29udGludWVfdGVzdGluZ19wYXRjaF90aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGltaXRf
b25fZmlyc3Rfb3Jfc2Vjb25kX3RyeSk6CisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fdGVz
dF9wYXRjaCk6CisKIDIwMTQtMTAtMzAgIFJvaGl0IEt1bWFyICA8a3VtYXIucm9oaXRAc2Ftc3Vu
Zy5jb20+CiAKICAgICAgICAgW0dUS10gTWluaWJyb3dzZXIgOiBBZGQgd2luZG93IGZ1bGxzY3Jl
ZW4gc3VwcG9ydCBmb3IgTWluaWJyb3dzZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkKaW5kZXggZGMx
MzljOC4uYzMyNDRhOSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkKQEAgLTE1OCw2ICsxNTgsNyBA
QCBjbGFzcyBNb2NrU2ltcGxlVGVzdFBsYW5Db21taXRRdWV1ZShNb2NrQ29tbWl0UXVldWUpOgog
Y2xhc3MgR29sZGVuU2NyaXB0RXJyb3IoU2NyaXB0RXJyb3IpOgogICAgIHBhc3MKIAorX2xvdHNf
b2ZfZmFpbGluZ190ZXN0cyA9IG1hcChsYW1iZGEgbnVtOiAidGVzdC0lcy5odG1sIiAlIG51bSwg
cmFuZ2UoMCwgMTAwKSkKIAogY2xhc3MgQ29tbWl0UXVldWVUYXNrVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgZGVmIF9ydW5fYW5kX2V4cGVjdF9wYXRjaF9hbmFseXNpc19yZXN1bHQoc2Vs
ZiwgY29tbWl0X3F1ZXVlLCBleHBlY3RlZF9hbmFseXNpc19yZXN1bHQsIGV4cGVjdGVkX3JlcG9y
dGVkX2ZsYWt5X3Rlc3RzPVtdLCBleHBlY3RfY2xlYW5fdGVzdHNfdG9fcnVuPUZhbHNlLCBleHBl
Y3RlZF9mYWlsdXJlX3N0YXR1c19pZD0wKToKQEAgLTM5NywxNSArMzk4LDYgQEAgY29tbWFuZF9m
YWlsZWQ6IGZhaWx1cmVfbWVzc2FnZT0nVW5hYmxlIHRvIGxhbmQgcGF0Y2gnIHNjcmlwdF9lcnJv
cj0nTU9DSyBsYW5kIGYKIAogICAgICAgICBzZWxmLl9ydW5fYW5kX2V4cGVjdF9wYXRjaF9hbmFs
eXNpc19yZXN1bHQoY29tbWl0X3F1ZXVlLCBQYXRjaEFuYWx5c2lzUmVzdWx0LlBBU1MsIGV4cGVj
dF9jbGVhbl90ZXN0c190b19ydW49VHJ1ZSkKIAotICAgIGRlZiB0ZXN0X3ZlcnlfcmVkX3RyZWVf
cmV0cnkoc2VsZik6Ci0gICAgICAgIGxvdHNfb2ZfZmFpbGluZ190ZXN0cyA9IG1hcChsYW1iZGEg
bnVtOiAidGVzdC0lcy5odG1sIiAlIG51bSwgcmFuZ2UoMCwgMTAwKSkKLSAgICAgICAgY29tbWl0
X3F1ZXVlID0gTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUoCi0gICAgICAgICAgICBmaXJz
dF90ZXN0X2ZhaWx1cmVzPWxvdHNfb2ZfZmFpbGluZ190ZXN0cywKLSAgICAgICAgICAgIHNlY29u
ZF90ZXN0X2ZhaWx1cmVzPWxvdHNfb2ZfZmFpbGluZ190ZXN0cywKLSAgICAgICAgICAgIGNsZWFu
X3Rlc3RfZmFpbHVyZXM9bG90c19vZl9mYWlsaW5nX3Rlc3RzKQotCi0gICAgICAgIHNlbGYuX3J1
bl9hbmRfZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3VsdChjb21taXRfcXVldWUsIFBhdGNoQW5h
bHlzaXNSZXN1bHQuREVGRVIsIGV4cGVjdF9jbGVhbl90ZXN0c190b19ydW49VHJ1ZSkKLQogICAg
IGRlZiB0ZXN0X3JlZF90cmVlX3BhdGNoX3JlamVjdGlvbihzZWxmKToKICAgICAgICAgY29tbWl0
X3F1ZXVlID0gTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUoCiAgICAgICAgICAgICBmaXJz
dF90ZXN0X2ZhaWx1cmVzPVsiRmFpbDEiLCAiRmFpbDIiXSwKQEAgLTQ5OCw2ICs0OTAsNjYgQEAg
Y29tbWFuZF9mYWlsZWQ6IGZhaWx1cmVfbWVzc2FnZT0nVW5hYmxlIHRvIGxhbmQgcGF0Y2gnIHNj
cmlwdF9lcnJvcj0nTU9DSyBsYW5kIGYKIAogICAgICAgICBzZWxmLl9ydW5fYW5kX2V4cGVjdF9w
YXRjaF9hbmFseXNpc19yZXN1bHQoY29tbWl0X3F1ZXVlLCBQYXRjaEFuYWx5c2lzUmVzdWx0LlBB
U1MsIGV4cGVjdF9jbGVhbl90ZXN0c190b19ydW49VHJ1ZSkKIAorICAgIGRlZiB0ZXN0X2ZpcnN0
X2ZhaWx1cmVfbGltaXQoc2VsZik6CisgICAgICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tTaW1wbGVU
ZXN0UGxhbkNvbW1pdFF1ZXVlKAorICAgICAgICAgICAgZmlyc3RfdGVzdF9mYWlsdXJlcz1fbG90
c19vZl9mYWlsaW5nX3Rlc3RzLAorICAgICAgICAgICAgc2Vjb25kX3Rlc3RfZmFpbHVyZXM9W10s
CisgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPVtdKQorCisgICAgICAgIHNlbGYuX3J1
bl9hbmRfZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3VsdChjb21taXRfcXVldWUsIFBhdGNoQW5h
bHlzaXNSZXN1bHQuRkFJTCwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1UcnVlLCBleHBlY3Rl
ZF9mYWlsdXJlX3N0YXR1c19pZD0xKQorCisgICAgZGVmIHRlc3RfZmlyc3RfZmFpbHVyZV9saW1p
dF93aXRoX3NvbWVfdHJlZV9yZWRuZXNzKHNlbGYpOgorICAgICAgICBjb21taXRfcXVldWUgPSBN
b2NrU2ltcGxlVGVzdFBsYW5Db21taXRRdWV1ZSgKKyAgICAgICAgICAgIGZpcnN0X3Rlc3RfZmFp
bHVyZXM9X2xvdHNfb2ZfZmFpbGluZ190ZXN0cywKKyAgICAgICAgICAgIHNlY29uZF90ZXN0X2Zh
aWx1cmVzPVsiRmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMiXSwKKyAgICAgICAgICAgIGNsZWFuX3Rl
c3RfZmFpbHVyZXM9WyJGYWlsMSIsICJGYWlsMiIsICJGYWlsMyJdKQorCisgICAgICAgIHNlbGYu
X3J1bl9hbmRfZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3VsdChjb21taXRfcXVldWUsIFBhdGNo
QW5hbHlzaXNSZXN1bHQuRkFJTCwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1UcnVlLCBleHBl
Y3RlZF9mYWlsdXJlX3N0YXR1c19pZD0xKQorCisgICAgZGVmIHRlc3Rfc2Vjb25kX2ZhaWx1cmVf
bGltaXQoc2VsZik6CisgICAgICAgICMgVGhlcmUgbmVlZCB0byBiZSBzb21lIGZhaWx1cmVzIGlu
IHRoZSBmaXJzdCBzZXQgb2YgdGVzdHMsIG9yIGl0IHdvbid0IGV2ZW4gbWFrZSBpdCB0byB0aGUg
c2Vjb25kIHRlc3QuCisgICAgICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tTaW1wbGVUZXN0UGxhbkNv
bW1pdFF1ZXVlKAorICAgICAgICAgICAgZmlyc3RfdGVzdF9mYWlsdXJlcz1bIkZhaWwxIiwgIkZh
aWwyIiwgIkZhaWwzIl0sCisgICAgICAgICAgICBzZWNvbmRfdGVzdF9mYWlsdXJlcz1fbG90c19v
Zl9mYWlsaW5nX3Rlc3RzLAorICAgICAgICAgICAgY2xlYW5fdGVzdF9mYWlsdXJlcz1bIkZhaWwx
IiwgIkZhaWwyIiwgIkZhaWwzIl0pCisKKyAgICAgICAgc2VsZi5fcnVuX2FuZF9leHBlY3RfcGF0
Y2hfYW5hbHlzaXNfcmVzdWx0KGNvbW1pdF9xdWV1ZSwgUGF0Y2hBbmFseXNpc1Jlc3VsdC5GQUlM
LCBleHBlY3RfY2xlYW5fdGVzdHNfdG9fcnVuPVRydWUsIGV4cGVjdGVkX2ZhaWx1cmVfc3RhdHVz
X2lkPTIpCisKKyAgICBkZWYgdGVzdF90cmVlX2ZhaWx1cmVfbGltaXRfd2l0aF9wYXRjaF90aGF0
X3BvdGVudGlhbGx5X2ZpeGVzX3NvbWVfcmVkbmVzcyhzZWxmKToKKyAgICAgICAgY29tbWl0X3F1
ZXVlID0gTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUoCisgICAgICAgICAgICBmaXJzdF90
ZXN0X2ZhaWx1cmVzPVsiRmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMiXSwKKyAgICAgICAgICAgIHNl
Y29uZF90ZXN0X2ZhaWx1cmVzPVsiRmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMiXSwKKyAgICAgICAg
ICAgIGNsZWFuX3Rlc3RfZmFpbHVyZXM9X2xvdHNfb2ZfZmFpbGluZ190ZXN0cykKKworICAgICAg
ICAjIFVuZm9ydHVuYXRlbHkgdGhlcmUgYXJlIGNhc2VzIHdoZXJlIHRoZSBjbGVhbiBidWlsZCB3
aWxsIHJhbmRvbWx5IGZhaWwgZW5vdWdoIHRlc3RzIHRvIGhpdCB0aGUgZmFpbHVyZSBsaW1pdC4K
KyAgICAgICAgIyBXaXRoIHRoYXQgaW4gbWluZCwgd2UgY2FuJ3QgYWN0dWFsbHkga25vdyB0aGF0
IHRoaXMgcGF0Y2ggaXMgZ29vZCBvciBiYWQgdW50aWwgd2Ugc2VlIGEgY2xlYW4gcnVuIHRoYXQg
ZG9lc24ndAorICAgICAgICAjIGV4Y2VlZCB0aGUgZmFpbHVyZSBsaW1pdC4KKyAgICAgICAgc2Vs
Zi5fcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0KGNvbW1pdF9xdWV1ZSwgUGF0
Y2hBbmFseXNpc1Jlc3VsdC5ERUZFUiwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1UcnVlKQor
CisgICAgZGVmIHRlc3RfZmlyc3RfYW5kX3NlY29uZF9mYWlsdXJlX2xpbWl0KHNlbGYpOgorICAg
ICAgICBjb21taXRfcXVldWUgPSBNb2NrU2ltcGxlVGVzdFBsYW5Db21taXRRdWV1ZSgKKyAgICAg
ICAgICAgIGZpcnN0X3Rlc3RfZmFpbHVyZXM9X2xvdHNfb2ZfZmFpbGluZ190ZXN0cywKKyAgICAg
ICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdfdGVzdHMsCisgICAg
ICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPVtdKQorCisgICAgICAgIHNlbGYuX3J1bl9hbmRf
ZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3VsdChjb21taXRfcXVldWUsIFBhdGNoQW5hbHlzaXNS
ZXN1bHQuRkFJTCwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1UcnVlLCBleHBlY3RlZF9mYWls
dXJlX3N0YXR1c19pZD0xKQorCisgICAgZGVmIHRlc3RfZmlyc3RfYW5kX2NsZWFuX2ZhaWx1cmVf
bGltaXQoc2VsZik6CisgICAgICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tTaW1wbGVUZXN0UGxhbkNv
bW1pdFF1ZXVlKAorICAgICAgICAgICAgZmlyc3RfdGVzdF9mYWlsdXJlcz1fbG90c19vZl9mYWls
aW5nX3Rlc3RzLAorICAgICAgICAgICAgc2Vjb25kX3Rlc3RfZmFpbHVyZXM9W10sCisgICAgICAg
ICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdfdGVzdHMpCisKKyAgICAg
ICAgc2VsZi5fcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0KGNvbW1pdF9xdWV1
ZSwgUGF0Y2hBbmFseXNpc1Jlc3VsdC5ERUZFUiwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1U
cnVlKQorCisgICAgZGVmIHRlc3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0
KHNlbGYpOgorICAgICAgICBjb21taXRfcXVldWUgPSBNb2NrU2ltcGxlVGVzdFBsYW5Db21taXRR
dWV1ZSgKKyAgICAgICAgICAgIGZpcnN0X3Rlc3RfZmFpbHVyZXM9X2xvdHNfb2ZfZmFpbGluZ190
ZXN0cywKKyAgICAgICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdf
dGVzdHMsCisgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdf
dGVzdHMpCisKKyAgICAgICAgc2VsZi5fcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVz
dWx0KGNvbW1pdF9xdWV1ZSwgUGF0Y2hBbmFseXNpc1Jlc3VsdC5ERUZFUiwgZXhwZWN0X2NsZWFu
X3Rlc3RzX3RvX3J1bj1UcnVlKQorCiAgICAgZGVmIF9leHBlY3RfdmFsaWRhdGUoc2VsZiwgcGF0
Y2gsIGlzX3ZhbGlkKToKICAgICAgICAgY2xhc3MgTW9ja0RlbGVnYXRlKG9iamVjdCk6CiAgICAg
ICAgICAgICBkZWYgcmVmZXRjaF9wYXRjaChzZWxmLCBwYXRjaCk6CmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQppbmRleCBmNWVh
ZDRjLi40YjhiMzljYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9wYXRjaGFuYWx5c2lzdGFzay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CkBAIC0xODQsNiArMTg0LDcgQEAgY2xhc3MgUGF0Y2hB
bmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgcmV0dXJuIGZpcnN0X2ZhaWxpbmdfdGVzdHMg
IT0gc2Vjb25kX2ZhaWxpbmdfdGVzdHMKIAogICAgIGRlZiBfY29udGludWVfdGVzdGluZ19wYXRj
aF90aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vjb25kX3RyeShzZWxm
LCByZXN1bHRzLCByZXN1bHRzX2FyY2hpdmUsIHNjcmlwdF9lcnJvcik6CisgICAgICAgIGZhaWx1
cmVfc3RhdHVzX2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAogICAgICAgICBzZWxmLl9idWls
ZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKCkKICAgICAgICAgc2VsZi5fY2xlYW5fdHJlZV9yZXN1
bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKIApAQCAtMTk0LDYgKzE5NSw3IEBA
IGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgIGlmIChsZW4ocmVzdWx0
cy5mYWlsaW5nX3Rlc3RzKCkpIC0gbGVuKHNlbGYuX2NsZWFuX3RyZWVfcmVzdWx0cy5mYWlsaW5n
X3Rlc3RzKCkpKSA8PSA1OgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKKyAgICAgICAgc2Vs
Zi5mYWlsdXJlX3N0YXR1c19pZCA9IGZhaWx1cmVfc3RhdHVzX2lkCiAgICAgICAgIHJldHVybiBz
ZWxmLnJlcG9ydF9mYWlsdXJlKHJlc3VsdHNfYXJjaGl2ZSwgcmVzdWx0cywgc2NyaXB0X2Vycm9y
KQogCiAgICAgZGVmIF90ZXN0X3BhdGNoKHNlbGYpOgpAQCAtMjE5LDcgKzIyMSw2IEBAIGNsYXNz
IFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgIHNlY29uZF9yZXN1bHRzID0gc2Vs
Zi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKICAgICAgICAgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2
ZSA9IHNlbGYuX2RlbGVnYXRlLmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gp
CiAgICAgICAgIHNlY29uZF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3JpcHRfZXJyb3IKLSAgICAg
ICAgc2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAogCiAg
ICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6
CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5fY29udGludWVfdGVzdGluZ19wYXRjaF90aGF0X2V4
Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vjb25kX3RyeShzZWNvbmRfcmVzdWx0
cywgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSwgc2Vjb25kX3NjcmlwdF9lcnJvcikKQEAgLTI0NSw3
ICsyNDYsNyBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAgICAg
ICAgICAgICBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkID0gZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoZmlyc3RfcmVz
dWx0c19hcmNoaXZlLCBuZXdfZmFpbHVyZXNfaW50cm9kdWNlZF9ieV9wYXRjaCwgZmlyc3Rfc2Ny
aXB0X2Vycm9yKQogCi0gICAgICAgICAgICAjIEF0IHRoaXMgcG9pbnQgd2Uga25vdyB0aGF0IHRo
ZXJlIGlzIGZsYWt5bmVzcyB3aXRoIHRoZSBwYXRjaCBhcHBsaWVkLCBidXQgbm8gY29uc2lzdGVu
dCBmYWlsdXJlcworICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50IHdlIGtub3cgdGhhdCB0aGVy
ZSBpcyBmbGFraW5lc3Mgd2l0aCB0aGUgcGF0Y2ggYXBwbGllZCwgYnV0IG5vIGNvbnNpc3RlbnQg
ZmFpbHVyZXMKICAgICAgICAgICAgICMgd2VyZSBpbnRyb2R1Y2VkLiBUaGlzIGlzIGEgYml0IG9m
IGEgZ3JleS16b25lLgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKLS0gCjEuOS4zIChBcHBs
ZSBHaXQtNTApCgo=
</data>
<flag name="review"
          id="266042"
          type_id="1"
          status="-"
          setter="dbates"
    />
    <flag name="commit-queue"
          id="266043"
          type_id="3"
          status="-"
          setter="dbates"
    />
          </attachment>
      

    </bug>

</bugzilla>