<?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>137667</bug_id>
          
          <creation_ts>2014-10-13 13:09:22 -0700</creation_ts>
          <short_desc>Make runtest.py call test-webkitpy with the --json flag when in non-interactive mode</short_desc>
          <delta_ts>2014-10-28 17:58:14 -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>
          
          <blocked>138160</blocked>
          <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>dfarler</cc>
    
    <cc>glenn</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1041335</commentid>
    <comment_count>0</comment_count>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-13 13:09:22 -0700</bug_when>
    <thetext>runtest.py currently only calls test-webkitpy in the interactive case. Now that test-webkitpy has a --json flag, it should use it in the non-interactive case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041426</commentid>
    <comment_count>1</comment_count>
      <attachid>239764</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-13 17:25:37 -0700</bug_when>
    <thetext>Created attachment 239764
Makes runtest.py call test-webkitpy with the --json flag when in non-interactive mode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041937</commentid>
    <comment_count>2</comment_count>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-15 13:16:37 -0700</bug_when>
    <thetext>bump</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041966</commentid>
    <comment_count>3</comment_count>
      <attachid>239764</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-10-15 14:26:59 -0700</bug_when>
    <thetext>Comment on attachment 239764
Makes runtest.py call test-webkitpy with the --json flag when in non-interactive mode

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

&gt; Tools/Scripts/webkitpy/common/system/executive.py:454
&gt; +        if teed_output:
&gt; +            string_io_output = StringIO.StringIO()
&gt; +            child_output = Tee(string_io_output, sys.stdout)
&gt; +            print &quot;child_output is of type: &quot;
&gt; +            print type(child_output)
&gt; +            exit_code = self._run_command_with_teed_output(args, child_output, stderr=stderr, stdin=stdin, cwd=cwd, env=env)
&gt; +            output = string_io_output.getvalue()
&gt; +        else:
&gt; +            process = self.popen(args,
&gt; +                                 stdin=stdin,
&gt; +                                 stdout=self.PIPE,
&gt; +                                 stderr=stderr,
&gt; +                                 cwd=cwd,
&gt; +                                 env=env,
&gt; +                                 close_fds=self._should_close_fds())
&gt; +
&gt; +            output = process.communicate(string_to_communicate)[0]
&gt; +
&gt; +            # run_command automatically decodes to unicode() unless explicitly told not to.
&gt; +            if decode_output:
&gt; +                output = output.decode(self._child_process_encoding())
&gt; +
&gt; +            # wait() is not threadsafe and can throw OSError due to:
&gt; +            # http://bugs.python.org/issue1731717
&gt; +            exit_code = process.wait()

Can you elaborate on this change? Is this change motivated by the decision to use run_command() for running the Perl and JavaScript tests?

&gt; Tools/Scripts/webkitpy/tool/steps/runtests.py:65
&gt; +                filesystem = self._tool.filesystem
&gt; +                python_unittest_results_directory = self._tool.port_factory.get().python_unittest_results_directory()
&gt; +                filesystem.maybe_make_directory(python_unittest_results_directory)

For your consideration, I suggest moving these lines closer to where we actually make use of the variable python_unittests_command to improve the readability of this function, among other benefits.

&gt; Tools/Scripts/webkitpy/tool/steps/runtests.py:85
&gt;                  _log.info(&quot;Running Perl unit tests&quot;)
&gt; -                self._tool.executive.run_and_throw_if_fail(perl_unittests_command, cwd=self._tool.scm().checkout_root)
&gt; +                self._tool.executive.run_command(perl_unittests_command, cwd=self._tool.scm().checkout_root, error_handler=throw_error_handler, teed_output=True)
&gt;  

Is this change necessary? I mean, it seems outside the scope of this bug according to the bug description and bug title.

&gt; Tools/Scripts/webkitpy/tool/steps/runtests.py:89
&gt; -                self._tool.executive.run_and_throw_if_fail(javascriptcore_tests_command, quiet=True, cwd=self._tool.scm().checkout_root)
&gt; +                self._tool.executive.run_command(javascriptcore_tests_command, cwd=self._tool.scm().checkout_root, error_handler=throw_error_handler, teed_output=True)

Ditto.

&gt; Tools/Scripts/webkitpy/tool/steps/runtests.py:96
&gt; -                self._tool.executive.run_and_throw_if_fail(args, cwd=self._tool.scm().checkout_root)
&gt; +                self._tool.executive.run_command(args, cwd=self._tool.scm().checkout_root, error_handler=throw_error_handler)

Ditto.

&gt; Tools/Scripts/webkitpy/tool/steps/runtests.py:105
&gt; -                self._tool.executive.run_and_throw_if_fail(args, cwd=self._tool.scm().checkout_root)
&gt; +                self._tool.executive.run_command(args, cwd=self._tool.scm().checkout_root, error_handler=throw_error_handler)

Ditto.

&gt; Tools/Scripts/webkitpy/tool/steps/runtests.py:130
&gt; -        self._tool.executive.run_and_throw_if_fail(args, cwd=self._tool.scm().checkout_root)
&gt; +        self._tool.executive.run_command(args, cwd=self._tool.scm().checkout_root, error_handler=throw_error_handler)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041978</commentid>
    <comment_count>4</comment_count>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-15 15:10:28 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 239764 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=239764&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/common/system/executive.py:454
&gt; &gt; +        if teed_output:
&gt; &gt; +            string_io_output = StringIO.StringIO()
&gt; &gt; +            child_output = Tee(string_io_output, sys.stdout)
&gt; &gt; +            print &quot;child_output is of type: &quot;
&gt; &gt; +            print type(child_output)
&gt; &gt; +            exit_code = self._run_command_with_teed_output(args, child_output, stderr=stderr, stdin=stdin, cwd=cwd, env=env)
&gt; &gt; +            output = string_io_output.getvalue()
&gt; &gt; +        else:
&gt; &gt; +            process = self.popen(args,
&gt; &gt; +                                 stdin=stdin,
&gt; &gt; +                                 stdout=self.PIPE,
&gt; &gt; +                                 stderr=stderr,
&gt; &gt; +                                 cwd=cwd,
&gt; &gt; +                                 env=env,
&gt; &gt; +                                 close_fds=self._should_close_fds())
&gt; &gt; +
&gt; &gt; +            output = process.communicate(string_to_communicate)[0]
&gt; &gt; +
&gt; &gt; +            # run_command automatically decodes to unicode() unless explicitly told not to.
&gt; &gt; +            if decode_output:
&gt; &gt; +                output = output.decode(self._child_process_encoding())
&gt; &gt; +
&gt; &gt; +            # wait() is not threadsafe and can throw OSError due to:
&gt; &gt; +            # http://bugs.python.org/issue1731717
&gt; &gt; +            exit_code = process.wait()
&gt; 
&gt; Can you elaborate on this change? Is this change motivated by the decision to use run_command() for running the Perl and JavaScript tests?
Yes. While I was touching the runtests code, I thought we decided that I should also move to using run_command(). As it turns out, run_command() doesn&apos;t tee its output, but run_and_throw_if_fail does, so I decided to add the functionality to run_command.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/steps/runtests.py:65
&gt; &gt; +                filesystem = self._tool.filesystem
&gt; &gt; +                python_unittest_results_directory = self._tool.port_factory.get().python_unittest_results_directory()
&gt; &gt; +                filesystem.maybe_make_directory(python_unittest_results_directory)
&gt; 
&gt; For your consideration, I suggest moving these lines closer to where we actually make use of the variable python_unittests_command to improve the readability of this function, among other benefits.
Will do.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/steps/runtests.py:85
&gt; &gt;                  _log.info(&quot;Running Perl unit tests&quot;)
&gt; &gt; -                self._tool.executive.run_and_throw_if_fail(perl_unittests_command, cwd=self._tool.scm().checkout_root)
&gt; &gt; +                self._tool.executive.run_command(perl_unittests_command, cwd=self._tool.scm().checkout_root, error_handler=throw_error_handler, teed_output=True)
&gt; &gt;  
&gt; 
&gt; Is this change necessary? I mean, it seems outside the scope of this bug according to the bug description and bug title.
It&apos;s true, but I thought this is what we agreed on in person.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/steps/runtests.py:89
&gt; &gt; -                self._tool.executive.run_and_throw_if_fail(javascriptcore_tests_command, quiet=True, cwd=self._tool.scm().checkout_root)
&gt; &gt; +                self._tool.executive.run_command(javascriptcore_tests_command, cwd=self._tool.scm().checkout_root, error_handler=throw_error_handler, teed_output=True)
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/steps/runtests.py:96
&gt; &gt; -                self._tool.executive.run_and_throw_if_fail(args, cwd=self._tool.scm().checkout_root)
&gt; &gt; +                self._tool.executive.run_command(args, cwd=self._tool.scm().checkout_root, error_handler=throw_error_handler)
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/steps/runtests.py:105
&gt; &gt; -                self._tool.executive.run_and_throw_if_fail(args, cwd=self._tool.scm().checkout_root)
&gt; &gt; +                self._tool.executive.run_command(args, cwd=self._tool.scm().checkout_root, error_handler=throw_error_handler)
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/steps/runtests.py:130
&gt; &gt; -        self._tool.executive.run_and_throw_if_fail(args, cwd=self._tool.scm().checkout_root)
&gt; &gt; +        self._tool.executive.run_command(args, cwd=self._tool.scm().checkout_root, error_handler=throw_error_handler)
&gt; 
&gt; Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041980</commentid>
    <comment_count>5</comment_count>
      <attachid>239899</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-15 15:12:37 -0700</bug_when>
    <thetext>Created attachment 239899
Reorders lines in runtests.py as per comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041983</commentid>
    <comment_count>6</comment_count>
      <attachid>239899</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-15 15:17:25 -0700</bug_when>
    <thetext>Comment on attachment 239899
Reorders lines in runtests.py as per comment

Sigh, I need to stop doing this. Wrong patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041986</commentid>
    <comment_count>7</comment_count>
      <attachid>239902</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-15 15:20:42 -0700</bug_when>
    <thetext>Created attachment 239902
Intended patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041988</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-10-15 15:35:29 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 239764 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=239764&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Tools/Scripts/webkitpy/common/system/executive.py:454
&gt; &gt; &gt; +        if teed_output:
&gt; &gt; &gt; +            string_io_output = StringIO.StringIO()
&gt; &gt; &gt; +            child_output = Tee(string_io_output, sys.stdout)
&gt; &gt; &gt; +            print &quot;child_output is of type: &quot;
&gt; &gt; &gt; +            print type(child_output)
&gt; &gt; &gt; +            exit_code = self._run_command_with_teed_output(args, child_output, stderr=stderr, stdin=stdin, cwd=cwd, env=env)
&gt; &gt; &gt; +            output = string_io_output.getvalue()
&gt; &gt; &gt; +        else:
&gt; &gt; &gt; +            process = self.popen(args,
&gt; &gt; &gt; +                                 stdin=stdin,
&gt; &gt; &gt; +                                 stdout=self.PIPE,
&gt; &gt; &gt; +                                 stderr=stderr,
&gt; &gt; &gt; +                                 cwd=cwd,
&gt; &gt; &gt; +                                 env=env,
&gt; &gt; &gt; +                                 close_fds=self._should_close_fds())
&gt; &gt; &gt; +
&gt; &gt; &gt; +            output = process.communicate(string_to_communicate)[0]
&gt; &gt; &gt; +
&gt; &gt; &gt; +            # run_command automatically decodes to unicode() unless explicitly told not to.
&gt; &gt; &gt; +            if decode_output:
&gt; &gt; &gt; +                output = output.decode(self._child_process_encoding())
&gt; &gt; &gt; +
&gt; &gt; &gt; +            # wait() is not threadsafe and can throw OSError due to:
&gt; &gt; &gt; +            # http://bugs.python.org/issue1731717
&gt; &gt; &gt; +            exit_code = process.wait()
&gt; &gt; 
&gt; &gt; Can you elaborate on this change? Is this change motivated by the decision to use run_command() for running the Perl and JavaScript tests?
&gt; Yes. While I was touching the runtests code, I thought we decided that I should also move to using run_command().

I didn&apos;t mean to give the impression that we should take on this undertaking in this bug. It&apos;s sufficient to simply use Executive.run_command(), without modification, for the purposes of this bug.

In the long term, we should consider switching callers to Executive.run_command() (if appropriate). I say, &quot;if appropriate&quot;, because we&apos;ll need to audit all the callers of Executive.run_and_throw_if_fail() and determine whether using Executive.run_command() is sensible. If it turns out that many callers need to tee their output to standard output then we should consider either remove the deprecation comment above Executive.run_and_throw_if_fail(), add such support to Executive.run_command(), or come up with an appropriate API.

&gt; As it turns out, run_command() doesn&apos;t tee its output, but run_and_throw_if_fail does, so I decided to add the functionality to run_command.

With respect to the purpose of this patch, is it necessary to print stdout to the screen when we call test-webkitpy —json. I mean, the stdout for test-webkitpy —json isn’t human readable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041989</commentid>
    <comment_count>9</comment_count>
      <attachid>239902</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-10-15 15:43:45 -0700</bug_when>
    <thetext>Comment on attachment 239902
Intended patch

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

&gt; Tools/Scripts/webkitpy/tool/steps/runtests.py:69
&gt; +                output = self._tool.executive.run_command(python_unittests_command, cwd=self._tool.scm().checkout_root, return_stderr=False, teed_output=True)

Suppose one or more Python unit tests fail. Then we will not generate a JSON file because test-webkitpy will return a non-zero exit code and the default error handler will raise a Python exception, which is not caught in this function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043788</commentid>
    <comment_count>10</comment_count>
      <attachid>240357</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-23 11:39:17 -0700</bug_when>
    <thetext>Created attachment 240357
Addresses comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043814</commentid>
    <comment_count>11</comment_count>
      <attachid>240357</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-10-23 13:10:47 -0700</bug_when>
    <thetext>Comment on attachment 240357
Addresses comments

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

&gt; Tools/Scripts/webkitpy/tool/steps/runtests.py:57
&gt; +        def squelch_error_handler(script_error):
&gt; +            pass

Notice that the static method Executive.ignore_error is identical to this function. We should make use of Executive.ignore_error() and remove squelch_error_handler().

&gt; Tools/Scripts/webkitpy/tool/steps/runtests.py:69
&gt; +                output = self._tool.executive.run_command(python_unittests_command, cwd=self._tool.scm().checkout_root, error_handler=squelch_error_handler, return_stderr=False)

As aforementioned above, we should make use of Executive.ignore_error() for the error handler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043840</commentid>
    <comment_count>12</comment_count>
      <attachid>240369</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-23 14:48:35 -0700</bug_when>
    <thetext>Created attachment 240369
Uses Executive.ignore_error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043869</commentid>
    <comment_count>13</comment_count>
      <attachid>240369</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-10-23 16:23:52 -0700</bug_when>
    <thetext>Comment on attachment 240369
Uses Executive.ignore_error

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

&gt; Tools/Scripts/webkitpy/tool/steps/runtests.py:68
&gt; +            if python_unittests_command:
&gt; +                python_unittests_command.append(&apos;--json&apos;)
&gt; +                _log.info(&quot;Running Python unit tests&quot;)
&gt; +
&gt; +                filesystem = self._tool.filesystem
&gt; +                python_unittest_results_directory = self._tool.port_factory.get().python_unittest_results_directory()
&gt; +                filesystem.maybe_make_directory(python_unittest_results_directory)
&gt; +                output = self._tool.executive.run_command(python_unittests_command, cwd=self._tool.scm().checkout_root, error_handler=Executive.ignore_error, return_stderr=False)
&gt; +                filesystem.write_text_file(filesystem.join(python_unittest_results_directory, &quot;results.json&quot;), output)
&gt; +

Is there any way to unify this code with the interactive code path for running the Python unit tests? We could do this in a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044652</commentid>
    <comment_count>14</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-10-28 17:18:24 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Comment on attachment 240369 [details]
&gt; Uses Executive.ignore_error
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=240369&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/steps/runtests.py:68
&gt; &gt; +            if python_unittests_command:
&gt; &gt; +                python_unittests_command.append(&apos;--json&apos;)
&gt; &gt; +                _log.info(&quot;Running Python unit tests&quot;)
&gt; &gt; +
&gt; &gt; +                filesystem = self._tool.filesystem
&gt; &gt; +                python_unittest_results_directory = self._tool.port_factory.get().python_unittest_results_directory()
&gt; &gt; +                filesystem.maybe_make_directory(python_unittest_results_directory)
&gt; &gt; +                output = self._tool.executive.run_command(python_unittests_command, cwd=self._tool.scm().checkout_root, error_handler=Executive.ignore_error, return_stderr=False)
&gt; &gt; +                filesystem.write_text_file(filesystem.join(python_unittest_results_directory, &quot;results.json&quot;), output)
&gt; &gt; +
&gt; 
&gt; Is there any way to unify this code with the interactive code path for
&gt; running the Python unit tests? We could do this in a separate bug.

Jake Nielsen and I discussed this issue on IRC last Thursday (10/23) and Jake suggested that we file a separate clean up bug to unify the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044653</commentid>
    <comment_count>15</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-10-28 17:19:27 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; [...]
&gt; Jake Nielsen and I discussed this issue on IRC last Thursday (10/23) and
&gt; Jake suggested that we file a separate clean up bug to unify the code.

Filed bug #138160.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044666</commentid>
    <comment_count>16</comment_count>
      <attachid>240369</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-28 17:58:10 -0700</bug_when>
    <thetext>Comment on attachment 240369
Uses Executive.ignore_error

Clearing flags on attachment: 240369

Committed r175294: &lt;http://trac.webkit.org/changeset/175294&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044667</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-28 17:58:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239764</attachid>
            <date>2014-10-13 17:25:37 -0700</date>
            <delta_ts>2014-10-15 15:12:37 -0700</delta_ts>
            <desc>Makes runtest.py call test-webkitpy with the --json flag when in non-interactive mode</desc>
            <filename>0001-Make-runtest.py-call-test-webkitpy-with-the-json-fla.patch</filename>
            <type>text/plain</type>
            <size>18573</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSBiNDQ4ZGY2MTc2NmI0NTZhODkxYjk0NjRhZTA0NThjMDNkNDYyMWFjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBNb24sIDEzIE9jdCAyMDE0IDE3OjI0OjM2IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
TWFrZSBydW50ZXN0LnB5IGNhbGwgdGVzdC13ZWJraXRweSB3aXRoIHRoZSAtLWpzb24gZmxhZyB3
aGVuCiBpbiBub24taW50ZXJhY3RpdmUgbW9kZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTM3NjY3CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiogU2NyaXB0
cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZS5weToKKEV4ZWN1dGl2ZS5fcnVuX2Nv
bW1hbmRfd2l0aF90ZWVkX291dHB1dCk6CkFkZHMgdGhlIGFiaWxpdHkgdG8gb3ZlcnJpZGUgd2hl
cmUgc3RkZXJyIHdpbGwgYmUgZGlyZWN0ZWQuCihFeGVjdXRpdmUucnVuX2NvbW1hbmQpOgpBZGRz
IHRoZSB0ZWVkX291dHB1dCBhcmd1bWVudCB0byBhbGxvdyBjYWxsZXJzIHRvIGFsbG93IHRoZSBj
b21tYW5kCm91dHB1dCB0byBwcm9wb2dhdGUgKGFzIGl0IGRvZXMgaW4gcnVuX2FuZF90aHJvd19p
Zl9mYWlsKS4KKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2su
cHk6CkFkZHMgdGhlIHRlZWRfb3V0cHV0IGFyZ3VtZW50IHRvIHRoZSBtb2NrLgooTW9ja0V4ZWN1
dGl2ZS5ydW5fY29tbWFuZCk6CiogU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHk6CkFkZHMg
dGhlIHB5dGhvbl91bml0dGVzdF9yZXN1bHRzX2RpcmVjdG9yeSBtZXRob2QuCihQb3J0LnB5dGhv
bl91bml0dGVzdF9yZXN1bHRzX2RpcmVjdG9yeSk6CiogU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5OgpDaGFuZ2VzIHVuaXQgdGVzdHMgdG8gZXhwZWN0
IHRvIHNlZSBydW5fY29tbWFuZCBpbnN0ZWFkIG9mCnJ1bl9hbmRfdGhyb3dfaWZfZmFpbC4KKiBT
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHk6CkNoYW5nZXMgUnVuVGVzdHMg
dG8gY2FsbCB0ZXN0LXdlYmtpdHB5IHdpdGggdGhlIC0tanNvbiBmbGFnIGlmIHRoZQotLW5vbi1p
bnRlcmFjdGl2ZSBmbGFnIGlzIHNldCwgYW5kIHJlcGxhY2VzIGNhbGxzIHRvCnJ1bl9hbmRfdGhy
b3dfaWZfZmFpbCB3aXRoIHJ1bl9jb21tYW5kCihSdW5UZXN0cy5ydW4udGhyb3dfZXJyb3JfaGFu
ZGxlcik6CihSdW5UZXN0cyk6CihSdW5UZXN0cy5ydW4pOgoqIFNjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9ydW50ZXN0c191bml0dGVzdC5weToKQ2hhbmdlcyB1bml0IHRlc3RzIHRvIGV4cGVj
dCB0byBzZWUgcnVuX2NvbW1hbmQgaW5zdGVhZCBvZgpydW5fYW5kX3Rocm93X2lmX2ZhaWwuCiog
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5OgpDaGFuZ2VzIHVu
aXQgdGVzdHMgdG8gZXhwZWN0IHRvIHNlZSBydW5fY29tbWFuZCBpbnN0ZWFkIG9mCnJ1bl9hbmRf
dGhyb3dfaWZfZmFpbC4KLS0tCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8IDM3ICsrKysrKysrKysrKysrKysrCiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5ICB8IDQ4ICsrKysrKysrKysrKystLS0tLS0t
LS0KIC4uLi93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV9tb2NrLnB5ICAgICAgIHwg
IDEgKwogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkgICAgICAgICAgICAgICAg
fCAgMyArKwogLi4uL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkg
ICAgfCAxMiArKystLS0KIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0
cy5weSAgICAgIHwgMzEgKysrKysrKysrKy0tLS0KIC4uLi93ZWJraXRweS90b29sL3N0ZXBzL3J1
bnRlc3RzX3VuaXR0ZXN0LnB5ICAgICAgIHwgMTIgKysrLS0tCiAuLi4vU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5ICB8IDEwICsrLS0tCiA4IGZpbGVzIGNoYW5n
ZWQsIDExMSBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzY1NGFjYy4uYzY4MDFiMiAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsx
LDQyIEBACiAyMDE0LTEwLTEzICBKYWtlIE5pZWxzZW4gIDxqYWNvYl9uaWVsc2VuQGFwcGxlLmNv
bT4KIAorICAgICAgICBNYWtlIHJ1bnRlc3QucHkgY2FsbCB0ZXN0LXdlYmtpdHB5IHdpdGggdGhl
IC0tanNvbiBmbGFnIHdoZW4gaW4KKyAgICAgICAgbm9uLWludGVyYWN0aXZlIG1vZGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzY2NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZS5weToKKyAgICAgICAgKEV4ZWN1dGl2ZS5fcnVu
X2NvbW1hbmRfd2l0aF90ZWVkX291dHB1dCk6CisgICAgICAgIEFkZHMgdGhlIGFiaWxpdHkgdG8g
b3ZlcnJpZGUgd2hlcmUgc3RkZXJyIHdpbGwgYmUgZGlyZWN0ZWQuCisgICAgICAgIChFeGVjdXRp
dmUucnVuX2NvbW1hbmQpOgorICAgICAgICBBZGRzIHRoZSB0ZWVkX291dHB1dCBhcmd1bWVudCB0
byBhbGxvdyBjYWxsZXJzIHRvIGFsbG93IHRoZSBjb21tYW5kCisgICAgICAgIG91dHB1dCB0byBw
cm9wb2dhdGUgKGFzIGl0IGRvZXMgaW4gcnVuX2FuZF90aHJvd19pZl9mYWlsKS4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2sucHk6CisgICAg
ICAgIEFkZHMgdGhlIHRlZWRfb3V0cHV0IGFyZ3VtZW50IHRvIHRoZSBtb2NrLgorICAgICAgICAo
TW9ja0V4ZWN1dGl2ZS5ydW5fY29tbWFuZCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9w
b3J0L2Jhc2UucHk6CisgICAgICAgIEFkZHMgdGhlIHB5dGhvbl91bml0dGVzdF9yZXN1bHRzX2Rp
cmVjdG9yeSBtZXRob2QuCisgICAgICAgIChQb3J0LnB5dGhvbl91bml0dGVzdF9yZXN1bHRzX2Rp
cmVjdG9yeSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25s
b2FkX3VuaXR0ZXN0LnB5OgorICAgICAgICBDaGFuZ2VzIHVuaXQgdGVzdHMgdG8gZXhwZWN0IHRv
IHNlZSBydW5fY29tbWFuZCBpbnN0ZWFkIG9mCisgICAgICAgIHJ1bl9hbmRfdGhyb3dfaWZfZmFp
bC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHk6Cisg
ICAgICAgIENoYW5nZXMgUnVuVGVzdHMgdG8gY2FsbCB0ZXN0LXdlYmtpdHB5IHdpdGggdGhlIC0t
anNvbiBmbGFnIGlmIHRoZQorICAgICAgICAtLW5vbi1pbnRlcmFjdGl2ZSBmbGFnIGlzIHNldCwg
YW5kIHJlcGxhY2VzIGNhbGxzIHRvCisgICAgICAgIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbCB3aXRo
IHJ1bl9jb21tYW5kCisgICAgICAgIChSdW5UZXN0cy5ydW4udGhyb3dfZXJyb3JfaGFuZGxlcik6
CisgICAgICAgIChSdW5UZXN0cyk6CisgICAgICAgIChSdW5UZXN0cy5ydW4pOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0c191bml0dGVzdC5weToKKyAgICAg
ICAgQ2hhbmdlcyB1bml0IHRlc3RzIHRvIGV4cGVjdCB0byBzZWUgcnVuX2NvbW1hbmQgaW5zdGVh
ZCBvZgorICAgICAgICBydW5fYW5kX3Rocm93X2lmX2ZhaWwuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5OgorICAgICAgICBDaGFuZ2VzIHVu
aXQgdGVzdHMgdG8gZXhwZWN0IHRvIHNlZSBydW5fY29tbWFuZCBpbnN0ZWFkIG9mCisgICAgICAg
IHJ1bl9hbmRfdGhyb3dfaWZfZmFpbC4KKworMjAxNC0xMC0xMyAgSmFrZSBOaWVsc2VuICA8amFj
b2JfbmllbHNlbkBhcHBsZS5jb20+CisKICAgICAgICAgQWRkIC0tanNvbiBmbGFnIHRvIHRlc3Qt
d2Via2l0cHkgdG8gZW1pdCBKU09OIGZvcm1hdHRlZCB0ZXN0IHJlc3VsdHMKICAgICAgICAgb24g
c3Rkb3V0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzczNTMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9l
eGVjdXRpdmUucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0
aXZlLnB5CmluZGV4IDZiZTA3ZTAuLmQxNTQxNjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZS5weQpAQCAtOTUsMTAgKzk1LDEwIEBAIGNs
YXNzIEV4ZWN1dGl2ZShvYmplY3QpOgogICAgICAgICAjIHNob3dzIHVwIG9uIE1hYyBhbmQgTGlu
dXguCiAgICAgICAgIHJldHVybiBzeXMucGxhdGZvcm0gbm90IGluICgnd2luMzInLCAnY3lnd2lu
JykKIAotICAgIGRlZiBfcnVuX2NvbW1hbmRfd2l0aF90ZWVkX291dHB1dChzZWxmLCBhcmdzLCB0
ZWVkX291dHB1dCwgKiprd2FyZ3MpOgorICAgIGRlZiBfcnVuX2NvbW1hbmRfd2l0aF90ZWVkX291
dHB1dChzZWxmLCBhcmdzLCB0ZWVkX291dHB1dCwgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VULCAq
Kmt3YXJncyk6CiAgICAgICAgIGNoaWxkX3Byb2Nlc3MgPSBzZWxmLnBvcGVuKGFyZ3MsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zZWxmLlBJUEUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj1zZWxmLlNURE9VVCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkZXJyPXN0ZGVyciwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xvc2VfZmRzPXNlbGYuX3Nob3VsZF9jbG9zZV9mZHMoKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAKQEAgLTQxOCw3
ICs0MTgsOCBAQCBjbGFzcyBFeGVjdXRpdmUob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAg
ZXJyb3JfaGFuZGxlcj1Ob25lLAogICAgICAgICAgICAgICAgICAgICByZXR1cm5fZXhpdF9jb2Rl
PUZhbHNlLAogICAgICAgICAgICAgICAgICAgICByZXR1cm5fc3RkZXJyPVRydWUsCi0gICAgICAg
ICAgICAgICAgICAgIGRlY29kZV9vdXRwdXQ9VHJ1ZSk6CisgICAgICAgICAgICAgICAgICAgIGRl
Y29kZV9vdXRwdXQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgdGVlZF9vdXRwdXQ9RmFsc2Up
OgogICAgICAgICAiIiJQb3BlbiB3cmFwcGVyIGZvciBjb252ZW5pZW5jZSBhbmQgdG8gd29yayBh
cm91bmQgcHl0aG9uIGJ1Z3MuIiIiCiAgICAgICAgIGFzc2VydChpc2luc3RhbmNlKGFyZ3MsIGxp
c3QpIG9yIGlzaW5zdGFuY2UoYXJncywgdHVwbGUpKQogICAgICAgICBzdGFydF90aW1lID0gdGlt
ZS50aW1lKCkKQEAgLTQyNiwyMiArNDI3LDMxIEBAIGNsYXNzIEV4ZWN1dGl2ZShvYmplY3QpOgog
ICAgICAgICBzdGRpbiwgc3RyaW5nX3RvX2NvbW11bmljYXRlID0gc2VsZi5fY29tcHV0ZV9zdGRp
bihpbnB1dCkKICAgICAgICAgc3RkZXJyID0gc2VsZi5TVERPVVQgaWYgcmV0dXJuX3N0ZGVyciBl
bHNlIE5vbmUKIAotICAgICAgICBwcm9jZXNzID0gc2VsZi5wb3BlbihhcmdzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGRpbj1zdGRpbiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3Rkb3V0PXNlbGYuUElQRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rk
ZXJyPXN0ZGVyciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3dkPWN3ZCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZW52PWVudiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2xvc2VfZmRzPXNlbGYuX3Nob3VsZF9jbG9zZV9mZHMoKSkKLSAgICAgICAgb3V0cHV0
ID0gcHJvY2Vzcy5jb21tdW5pY2F0ZShzdHJpbmdfdG9fY29tbXVuaWNhdGUpWzBdCi0KLSAgICAg
ICAgIyBydW5fY29tbWFuZCBhdXRvbWF0aWNhbGx5IGRlY29kZXMgdG8gdW5pY29kZSgpIHVubGVz
cyBleHBsaWNpdGx5IHRvbGQgbm90IHRvLgotICAgICAgICBpZiBkZWNvZGVfb3V0cHV0OgotICAg
ICAgICAgICAgb3V0cHV0ID0gb3V0cHV0LmRlY29kZShzZWxmLl9jaGlsZF9wcm9jZXNzX2VuY29k
aW5nKCkpCi0KLSAgICAgICAgIyB3YWl0KCkgaXMgbm90IHRocmVhZHNhZmUgYW5kIGNhbiB0aHJv
dyBPU0Vycm9yIGR1ZSB0bzoKLSAgICAgICAgIyBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3Vl
MTczMTcxNwotICAgICAgICBleGl0X2NvZGUgPSBwcm9jZXNzLndhaXQoKQorICAgICAgICBpZiB0
ZWVkX291dHB1dDoKKyAgICAgICAgICAgIHN0cmluZ19pb19vdXRwdXQgPSBTdHJpbmdJTy5TdHJp
bmdJTygpCisgICAgICAgICAgICBjaGlsZF9vdXRwdXQgPSBUZWUoc3RyaW5nX2lvX291dHB1dCwg
c3lzLnN0ZG91dCkKKyAgICAgICAgICAgIHByaW50ICJjaGlsZF9vdXRwdXQgaXMgb2YgdHlwZTog
IgorICAgICAgICAgICAgcHJpbnQgdHlwZShjaGlsZF9vdXRwdXQpCisgICAgICAgICAgICBleGl0
X2NvZGUgPSBzZWxmLl9ydW5fY29tbWFuZF93aXRoX3RlZWRfb3V0cHV0KGFyZ3MsIGNoaWxkX291
dHB1dCwgc3RkZXJyPXN0ZGVyciwgc3RkaW49c3RkaW4sIGN3ZD1jd2QsIGVudj1lbnYpCisgICAg
ICAgICAgICBvdXRwdXQgPSBzdHJpbmdfaW9fb3V0cHV0LmdldHZhbHVlKCkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHByb2Nlc3MgPSBzZWxmLnBvcGVuKGFyZ3MsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGRpbj1zdGRpbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0ZG91dD1zZWxmLlBJUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGRlcnI9c3RkZXJyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3dk
PWN3ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZV9mZHM9c2VsZi5fc2hvdWxkX2Nsb3NlX2Zk
cygpKQorCisgICAgICAgICAgICBvdXRwdXQgPSBwcm9jZXNzLmNvbW11bmljYXRlKHN0cmluZ190
b19jb21tdW5pY2F0ZSlbMF0KKworICAgICAgICAgICAgIyBydW5fY29tbWFuZCBhdXRvbWF0aWNh
bGx5IGRlY29kZXMgdG8gdW5pY29kZSgpIHVubGVzcyBleHBsaWNpdGx5IHRvbGQgbm90IHRvLgor
ICAgICAgICAgICAgaWYgZGVjb2RlX291dHB1dDoKKyAgICAgICAgICAgICAgICBvdXRwdXQgPSBv
dXRwdXQuZGVjb2RlKHNlbGYuX2NoaWxkX3Byb2Nlc3NfZW5jb2RpbmcoKSkKKworICAgICAgICAg
ICAgIyB3YWl0KCkgaXMgbm90IHRocmVhZHNhZmUgYW5kIGNhbiB0aHJvdyBPU0Vycm9yIGR1ZSB0
bzoKKyAgICAgICAgICAgICMgaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTE3MzE3MTcKKyAg
ICAgICAgICAgIGV4aXRfY29kZSA9IHByb2Nlc3Mud2FpdCgpCiAKICAgICAgICAgX2xvZy5kZWJ1
ZygnIiVzIiB0b29rICUuMmZzJyAlIChzZWxmLmNvbW1hbmRfZm9yX3ByaW50aW5nKGFyZ3MpLCB0
aW1lLnRpbWUoKSAtIHN0YXJ0X3RpbWUpKQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2sucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2sucHkKaW5kZXggMTgxYTVmOS4uZmUw
MjU3ZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4
ZWN1dGl2ZV9tb2NrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3Rl
bS9leGVjdXRpdmVfbW9jay5weQpAQCAtOTksNiArOTksNyBAQCBjbGFzcyBNb2NrRXhlY3V0aXZl
KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybl9leGl0X2NvZGU9RmFsc2UsCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybl9zdGRlcnI9VHJ1ZSwKICAgICAgICAgICAgICAgICAg
ICAgZGVjb2RlX291dHB1dD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgdGVlZF9vdXRwdXQ9
RmFsc2UsCiAgICAgICAgICAgICAgICAgICAgIGVudj1Ob25lKToKIAogICAgICAgICBzZWxmLmNh
bGxzLmFwcGVuZChhcmdzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L2Jhc2UucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQppbmRleCA5MDc0
Zjc4Li4zZDBkNGViIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFz
ZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQpAQCAtNzg1LDYg
Kzc4NSw5IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICBkZWYgcGVyZl9yZXN1bHRzX2RpcmVj
dG9yeShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxkX3BhdGgoKQogCisgICAgZGVm
IHB5dGhvbl91bml0dGVzdF9yZXN1bHRzX2RpcmVjdG9yeShzZWxmKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuX2J1aWxkX3BhdGgoJ3B5dGhvbi11bml0dGVzdC1yZXN1bHRzJykKKwogICAgIGRlZiBk
ZWZhdWx0X3Jlc3VsdHNfZGlyZWN0b3J5KHNlbGYpOgogICAgICAgICAiIiJBYnNvbHV0ZSBwYXRo
IHRvIHRoZSBkZWZhdWx0IHBsYWNlIHRvIHN0b3JlIHRoZSB0ZXN0IHJlc3VsdHMuIiIiCiAgICAg
ICAgICMgUmVzdWx0cyBhcmUgc3RvcmUgcmVsYXRpdmUgdG8gdGhlIGJ1aWx0IHByb2R1Y3RzIHRv
IG1ha2UgaXQgZWFzeQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5CmluZGV4IDU5YjUyZWEuLjEwN2Q3NTcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91
bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93
bmxvYWRfdW5pdHRlc3QucHkKQEAgLTE2NCwxNyArMTY0LDE3IEBAIFdhcyB0aGF0IGRpZmYgY29y
cmVjdD8KIEJ1aWxkaW5nIFdlYktpdAogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnbW9j
ay1idWlsZC13ZWJraXQnXSwgY3dkPS9tb2NrLWNoZWNrb3V0LCBlbnY9eydMQ19BTEwnOiAnQycs
ICdURVJNJzogJ25vbmUnLCAnTU9DS19FTlZJUk9OX0NPUFknOiAnMSd9CiBSdW5uaW5nIFB5dGhv
biB1bml0IHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydtb2NrLXRlc3Qtd2Vi
a2l0cHknXSwgY3dkPS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9jb21tYW5kOiBbJ21vY2stdGVz
dC13ZWJraXRweSddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgUGVybCB1bml0IHRlc3Rz
Ci1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydtb2NrLXRlc3Qtd2Via2l0cGVybCddLCBj
d2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2NvbW1hbmQ6IFsnbW9jay10ZXN0LXdlYmtpdHBl
cmwnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIEphdmFTY3JpcHRDb3JlIHRlc3RzCi1N
T0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydtb2NrLXJ1bi1qYXZhY3JpcHRjb3JlLXRlc3Rz
J10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fY29tbWFuZDogWydtb2NrLXJ1bi1qYXZh
Y3JpcHRjb3JlLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBiaW5kaW5ncyBn
ZW5lcmF0aW9uIHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydtb2NrLXJ1bi1i
aW5kaW5ncy10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2NvbW1hbmQ6IFsn
bW9jay1ydW4tYmluZGluZ3MtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIFdl
YktpdCB1bml0IHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydtb2NrLXJ1bi13
ZWJraXQtdW5pdC10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2NvbW1hbmQ6
IFsnbW9jay1ydW4td2Via2l0LXVuaXQtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5u
aW5nIHJ1bi13ZWJraXQtdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ21vY2st
cnVuLXdlYmtpdC10ZXN0cycsICctLXF1aWV0J10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBy
dW5fY29tbWFuZDogWydtb2NrLXJ1bi13ZWJraXQtdGVzdHMnLCAnLS1xdWlldCddLCBjd2Q9L21v
Y2stY2hlY2tvdXQKIENvbW1pdHRlZCByNDk4MjQ6IDxodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC80OTgyND4KIENvbW1pdHRlZCByNDk4MjQ6IDxodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC80OTgyND4KIE5vIGJ1ZyBpZCBwcm92aWRlZC4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weQppbmRleCBhNDU2MjhiLi4wOTBkZDI5IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CkBAIC01
MywzMCArNTMsNDcgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgaWYg
bm90IHNlbGYuX29wdGlvbnMudGVzdDoKICAgICAgICAgICAgIHJldHVybgogCi0gICAgICAgIGlm
IG5vdCBzZWxmLl9vcHRpb25zLm5vbl9pbnRlcmFjdGl2ZToKKyAgICAgICAgZGVmIHRocm93X2Vy
cm9yX2hhbmRsZXIoc2NyaXB0X2Vycm9yKToKKyAgICAgICAgICAgIHJhaXNlIHNjcmlwdF9lcnJv
cgorCisgICAgICAgIGlmIHNlbGYuX29wdGlvbnMubm9uX2ludGVyYWN0aXZlOgorICAgICAgICAg
ICAgcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQo
KS5ydW5fcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kKCkKKworICAgICAgICAgICAgaWYgcHl0aG9u
X3VuaXR0ZXN0c19jb21tYW5kOgorICAgICAgICAgICAgICAgIGZpbGVzeXN0ZW0gPSBzZWxmLl90
b29sLmZpbGVzeXN0ZW0KKyAgICAgICAgICAgICAgICBweXRob25fdW5pdHRlc3RfcmVzdWx0c19k
aXJlY3RvcnkgPSBzZWxmLl90b29sLnBvcnRfZmFjdG9yeS5nZXQoKS5weXRob25fdW5pdHRlc3Rf
cmVzdWx0c19kaXJlY3RvcnkoKQorICAgICAgICAgICAgICAgIGZpbGVzeXN0ZW0ubWF5YmVfbWFr
ZV9kaXJlY3RvcnkocHl0aG9uX3VuaXR0ZXN0X3Jlc3VsdHNfZGlyZWN0b3J5KQorICAgICAgICAg
ICAgICAgIHB5dGhvbl91bml0dGVzdHNfY29tbWFuZC5hcHBlbmQoJy0tanNvbicpCisKKyAgICAg
ICAgICAgICAgICBfbG9nLmluZm8oIlJ1bm5pbmcgUHl0aG9uIHVuaXQgdGVzdHMiKQorCisgICAg
ICAgICAgICAgICAgb3V0cHV0ID0gc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2NvbW1hbmQocHl0
aG9uX3VuaXR0ZXN0c19jb21tYW5kLCBjd2Q9c2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9yb290
LCByZXR1cm5fc3RkZXJyPUZhbHNlLCB0ZWVkX291dHB1dD1UcnVlKQorICAgICAgICAgICAgICAg
IGZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKGZpbGVzeXN0ZW0uam9pbihweXRob25fdW5pdHRl
c3RfcmVzdWx0c19kaXJlY3RvcnksICJyZXN1bHRzLmpzb24iKSwgb3V0cHV0KQorCisgICAgICAg
IGVsc2U6CiAgICAgICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGQgdGVhY2ggdGhlIGNvbW1pdC1x
dWV1ZSBhbmQgdGhlIEVXUyBob3cgdG8gcnVuIHRoZXNlIHRlc3RzLgogCiAgICAgICAgICAgICBw
eXRob25fdW5pdHRlc3RzX2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLnJ1
bl9weXRob25fdW5pdHRlc3RzX2NvbW1hbmQoKQogICAgICAgICAgICAgaWYgcHl0aG9uX3VuaXR0
ZXN0c19jb21tYW5kOgogICAgICAgICAgICAgICAgIF9sb2cuaW5mbygiUnVubmluZyBQeXRob24g
dW5pdCB0ZXN0cyIpCi0gICAgICAgICAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2Fu
ZF90aHJvd19pZl9mYWlsKHB5dGhvbl91bml0dGVzdHNfY29tbWFuZCwgY3dkPXNlbGYuX3Rvb2wu
c2NtKCkuY2hlY2tvdXRfcm9vdCkKKyAgICAgICAgICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2
ZS5ydW5fY29tbWFuZChweXRob25fdW5pdHRlc3RzX2NvbW1hbmQsIGN3ZD1zZWxmLl90b29sLnNj
bSgpLmNoZWNrb3V0X3Jvb3QsIGVycm9yX2hhbmRsZXI9dGhyb3dfZXJyb3JfaGFuZGxlciwgdGVl
ZF9vdXRwdXQ9VHJ1ZSkKIAogICAgICAgICAgICAgcGVybF91bml0dGVzdHNfY29tbWFuZCA9IHNl
bGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkucnVuX3BlcmxfdW5pdHRlc3RzX2NvbW1hbmQoKQog
ICAgICAgICAgICAgaWYgcGVybF91bml0dGVzdHNfY29tbWFuZDoKICAgICAgICAgICAgICAgICBf
bG9nLmluZm8oIlJ1bm5pbmcgUGVybCB1bml0IHRlc3RzIikKLSAgICAgICAgICAgICAgICBzZWxm
Ll90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwocGVybF91bml0dGVzdHNfY29t
bWFuZCwgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKKyAgICAgICAgICAgICAg
ICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fY29tbWFuZChwZXJsX3VuaXR0ZXN0c19jb21tYW5k
LCBjd2Q9c2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9yb290LCBlcnJvcl9oYW5kbGVyPXRocm93
X2Vycm9yX2hhbmRsZXIsIHRlZWRfb3V0cHV0PVRydWUpCiAKICAgICAgICAgICAgIGphdmFzY3Jp
cHRjb3JlX3Rlc3RzX2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLnJ1bl9q
YXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKCkKICAgICAgICAgICAgIGlmIGphdmFzY3JpcHRj
b3JlX3Rlc3RzX2NvbW1hbmQ6CiAgICAgICAgICAgICAgICAgX2xvZy5pbmZvKCJSdW5uaW5nIEph
dmFTY3JpcHRDb3JlIHRlc3RzIikKLSAgICAgICAgICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2
ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoamF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZCwgcXVp
ZXQ9VHJ1ZSwgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKKyAgICAgICAgICAg
ICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fY29tbWFuZChqYXZhc2NyaXB0Y29yZV90ZXN0
c19jb21tYW5kLCBjd2Q9c2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9yb290LCBlcnJvcl9oYW5k
bGVyPXRocm93X2Vycm9yX2hhbmRsZXIsIHRlZWRfb3V0cHV0PVRydWUpCiAKICAgICAgICAgYmlu
ZGluZ3NfdGVzdHNfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkucnVuX2Jp
bmRpbmdzX3Rlc3RzX2NvbW1hbmQoKQogICAgICAgICBpZiBiaW5kaW5nc190ZXN0c19jb21tYW5k
OgogICAgICAgICAgICAgX2xvZy5pbmZvKCJSdW5uaW5nIGJpbmRpbmdzIGdlbmVyYXRpb24gdGVz
dHMiKQogICAgICAgICAgICAgYXJncyA9IGJpbmRpbmdzX3Rlc3RzX2NvbW1hbmQKICAgICAgICAg
ICAgIHRyeToKLSAgICAgICAgICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Ro
cm93X2lmX2ZhaWwoYXJncywgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKKyAg
ICAgICAgICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fY29tbWFuZChhcmdzLCBjd2Q9
c2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9yb290LCBlcnJvcl9oYW5kbGVyPXRocm93X2Vycm9y
X2hhbmRsZXIpCiAgICAgICAgICAgICBleGNlcHQgU2NyaXB0RXJyb3IsIGU6CiAgICAgICAgICAg
ICAgICAgX2xvZy5pbmZvKCJFcnJvciBydW5uaW5nIHJ1bi1iaW5kaW5ncy10ZXN0czogJXMiICUg
ZS5tZXNzYWdlX3dpdGhfb3V0cHV0KCkpCiAKQEAgLTg1LDcgKzEwMiw3IEBAIGNsYXNzIFJ1blRl
c3RzKEFic3RyYWN0U3RlcCk6CiAgICAgICAgICAgICBfbG9nLmluZm8oIlJ1bm5pbmcgV2ViS2l0
IHVuaXQgdGVzdHMiKQogICAgICAgICAgICAgYXJncyA9IHdlYmtpdF91bml0X3Rlc3RzX2NvbW1h
bmQKICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2
ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tv
dXRfcm9vdCkKKyAgICAgICAgICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fY29tbWFu
ZChhcmdzLCBjd2Q9c2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9yb290LCBlcnJvcl9oYW5kbGVy
PXRocm93X2Vycm9yX2hhbmRsZXIpCiAgICAgICAgICAgICBleGNlcHQgU2NyaXB0RXJyb3IsIGU6
CiAgICAgICAgICAgICAgICAgX2xvZy5pbmZvKCJFcnJvciBydW5uaW5nIHdlYmtpdF91bml0X3Rl
c3RzOiAlcyIgJSBlLm1lc3NhZ2Vfd2l0aF9vdXRwdXQoKSkKIApAQCAtMTEwLDUgKzEyNyw1IEBA
IGNsYXNzIFJ1blRlc3RzKEFic3RyYWN0U3RlcCk6CiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMu
cXVpZXQ6CiAgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1xdWlldCIpCiAKLSAgICAgICAgc2Vs
Zi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGFyZ3MsIGN3ZD1zZWxmLl90
b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCisgICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1
bl9jb21tYW5kKGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QsIGVycm9y
X2hhbmRsZXI9dGhyb3dfZXJyb3JfaGFuZGxlcikKICAgICAgICAgCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHNfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHNfdW5pdHRlc3QucHkKaW5kZXgg
MmE3ZWM5ZS4uNzk2ODNkOCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL3J1bnRlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9ydW50ZXN0c191bml0dGVzdC5weQpAQCAtNDMsMTkgKzQzLDE5IEBAIGNsYXNz
IFJ1blRlc3RzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICAgICAgaWYgc3lzLnBsYXRm
b3JtICE9ICJjeWd3aW4iOgogICAgICAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIlJ1bm5pbmcg
YmluZGluZ3MgZ2VuZXJhdGlvbiB0ZXN0cwotTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsn
bW9jay1ydW4tYmluZGluZ3MtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9j
b21tYW5kOiBbJ21vY2stcnVuLWJpbmRpbmdzLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAog
UnVubmluZyBXZWJLaXQgdW5pdCB0ZXN0cwotTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsn
bW9jay1ydW4td2Via2l0LXVuaXQtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1
bl9jb21tYW5kOiBbJ21vY2stcnVuLXdlYmtpdC11bml0LXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVj
a291dAogUnVubmluZyBydW4td2Via2l0LXRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFp
bDogWydtb2NrLXJ1bi13ZWJraXQtdGVzdHMnLCAnLS1uby1uZXctdGVzdC1yZXN1bHRzJywgJy0t
bm8tc2hvdy1yZXN1bHRzJywgJy0tZXhpdC1hZnRlci1uLWZhaWx1cmVzPTMwJywgJy0tcXVpZXQn
LCAnLS1za2lwLWZhaWxpbmctdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9j
b21tYW5kOiBbJ21vY2stcnVuLXdlYmtpdC10ZXN0cycsICctLW5vLW5ldy10ZXN0LXJlc3VsdHMn
LCAnLS1uby1zaG93LXJlc3VsdHMnLCAnLS1leGl0LWFmdGVyLW4tZmFpbHVyZXM9MzAnLCAnLS1x
dWlldCcsICctLXNraXAtZmFpbGluZy10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKICIiIgog
ICAgICAgICBlbHNlOgogICAgICAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIlJ1bm5pbmcgYmlu
ZGluZ3MgZ2VuZXJhdGlvbiB0ZXN0cwotTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnbW9j
ay1ydW4tYmluZGluZ3MtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9jb21t
YW5kOiBbJ21vY2stcnVuLWJpbmRpbmdzLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVu
bmluZyBXZWJLaXQgdW5pdCB0ZXN0cwotTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnbW9j
ay1ydW4td2Via2l0LXVuaXQtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9j
b21tYW5kOiBbJ21vY2stcnVuLXdlYmtpdC11bml0LXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291
dAogUnVubmluZyBydW4td2Via2l0LXRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDog
Wydtb2NrLXJ1bi13ZWJraXQtdGVzdHMnLCAnLS1uby1uZXctdGVzdC1yZXN1bHRzJywgJy0tbm8t
c2hvdy1yZXN1bHRzJywgJy0tZXhpdC1hZnRlci1uLWZhaWx1cmVzPTMwJywgJy0tbm8tYnVpbGQn
XSwgY3dkPS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9jb21tYW5kOiBbJ21vY2stcnVuLXdlYmtp
dC10ZXN0cycsICctLW5vLW5ldy10ZXN0LXJlc3VsdHMnLCAnLS1uby1zaG93LXJlc3VsdHMnLCAn
LS1leGl0LWFmdGVyLW4tZmFpbHVyZXM9MzAnLCAnLS1uby1idWlsZCddLCBjd2Q9L21vY2stY2hl
Y2tvdXQKICIiIgogCiAgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxm
LCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CmluZGV4
IGIxZTJiZjEuLmI3NjBiN2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9zdGVwc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKQEAgLTEwNCwxNCArMTA0LDE0IEBAIGNsYXNzIFN0
ZXBzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9y
dCA9IERlcHJlY2F0ZWRQb3J0KCkKICAgICAgICAgc3RlcCA9IHN0ZXBzLlJ1blRlc3RzKHRvb2ws
IG1vY2tfb3B0aW9ucykKICAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIlJ1bm5pbmcgUHl0aG9u
IHVuaXQgdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMv
dGVzdC13ZWJraXRweSddLCBjd2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2NvbW1hbmQ6IFsn
VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5J10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmlu
ZyBQZXJsIHVuaXQgdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Nj
cmlwdHMvdGVzdC13ZWJraXRwZXJsJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fY29t
bWFuZDogWydUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cGVybCddLCBjd2Q9L21vY2stY2hlY2tv
dXQKIFJ1bm5pbmcgSmF2YVNjcmlwdENvcmUgdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9m
YWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJ10sIGN3ZD0vbW9j
ay1jaGVja291dAorTU9DSyBydW5fY29tbWFuZDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2Ny
aXB0Y29yZS10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgYmluZGluZ3MgZ2Vu
ZXJhdGlvbiB0ZXN0cwotTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0
cy9ydW4tYmluZGluZ3MtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9jb21t
YW5kOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWJpbmRpbmdzLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVj
a291dAogUnVubmluZyBydW4td2Via2l0LXRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFp
bDogWydUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMnLCAnLS1xdWlldCddLCBjd2Q9L21v
Y2stY2hlY2tvdXQKK01PQ0sgcnVuX2NvbW1hbmQ6IFsnVG9vbHMvU2NyaXB0cy9ydW4td2Via2l0
LXRlc3RzJywgJy0tcXVpZXQnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiAiIiIKICAgICAgICAgT3V0
cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3Rl
ZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCi0tIAoxLjkuMyAoQXBwbGUgR2l0LTUwKQoK
</data>
<flag name="review"
          id="264496"
          type_id="1"
          status="-"
          setter="dbates"
    />
    <flag name="commit-queue"
          id="264497"
          type_id="3"
          status="-"
          setter="dbates"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239899</attachid>
            <date>2014-10-15 15:12:37 -0700</date>
            <delta_ts>2014-10-15 15:20:42 -0700</delta_ts>
            <desc>Reorders lines in runtests.py as per comment</desc>
            <filename>0001-webkit-patch-should-include-a-test-command-that-only.patch</filename>
            <type>text/plain</type>
            <size>2074</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSAyZGE3Mjg0MzM1NjU3ZDg3MDQ2NGMxYjg0ZmZlNDg0MzUzZTQ2Mjk5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBXZWQsIDE1IE9jdCAyMDE0IDEzOjA2OjE1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
d2Via2l0LXBhdGNoIHNob3VsZCBpbmNsdWRlIGEgdGVzdCBjb21tYW5kIHRoYXQgb25seSBydW5z
CiBSdW5UZXN0cy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzc1
MAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9kb3dubG9hZC5weToKQWRkcyB0aGUgdGVzdCBjb21tYW5kIHRvIHdlYmtpdC1wYXRj
aC4KKFRlc3QpOgpGb3JjZXMgLS10ZXN0IHRvIGJlIFRydWUuCihUZXN0Ll9wcmVwYXJlX3N0YXRl
KToKLS0tCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAxMyArKysrKysrKysrKysrCiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
ZG93bmxvYWQucHkgfCAxMSArKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAyNCBpbnNlcnRp
b25zKCspCgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGE2MTAyMzkuLjk2ZjJhYWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0xMC0xNSAgSmFrZSBOaWVsc2Vu
ICA8amFjb2JfbmllbHNlbkBhcHBsZS5jb20+CisKKyAgICAgICAgd2Via2l0LXBhdGNoIHNob3Vs
ZCBpbmNsdWRlIGEgdGVzdCBjb21tYW5kIHRoYXQgb25seSBydW5zIFJ1blRlc3RzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3NzUwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHk6CisgICAgICAgIEFkZHMgdGhlIHRlc3QgY29t
bWFuZCB0byB3ZWJraXQtcGF0Y2guCisgICAgICAgIChUZXN0KToKKyAgICAgICAgRm9yY2VzIC0t
dGVzdCB0byBiZSBUcnVlLgorICAgICAgICAoVGVzdC5fcHJlcGFyZV9zdGF0ZSk6CisKIDIwMTQt
MTAtMTMgIERhdmlkIEZhcmxlciAgPGRmYXJsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1Nd
IExheW91dFRlc3RSZWxheTogRGV0ZWN0IGJyb2tlbiBwaXBlIHdoZW4gcmVhZGluZyBzaW11bGF0
b3IgYXBwJ3Mgc3Rkb3V0IGFuZCBzdGRlcnIuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkKaW5kZXggOTZmMDAyNi4uOTEwMjEyOSAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQpAQCAt
ODcsNiArODcsMTcgQEAgY2xhc3MgQnVpbGRBbmRUZXN0KEFic3RyYWN0U2VxdWVuY2VkQ29tbWFu
ZCk6CiAgICAgXQogCiAKK2NsYXNzIFRlc3QoQWJzdHJhY3RTZXF1ZW5jZWRDb21tYW5kKToKKyAg
ICBuYW1lID0gInRlc3QiCisgICAgaGVscF90ZXh0ID0gIlJ1biB0aGUgdGVzdHMiCisgICAgc3Rl
cHMgPSBbCisgICAgICAgIHN0ZXBzLlJ1blRlc3RzLAorICAgIF0KKworICAgIGRlZiBfcHJlcGFy
ZV9zdGF0ZShzZWxmLCBvcHRpb25zLCBhcmdzLCB0b29sKToKKyAgICAgICAgb3B0aW9ucy50ZXN0
ID0gVHJ1ZQorCisKIGNsYXNzIExhbmQoQWJzdHJhY3RTZXF1ZW5jZWRDb21tYW5kKToKICAgICBu
YW1lID0gImxhbmQiCiAgICAgaGVscF90ZXh0ID0gIkxhbmQgdGhlIGN1cnJlbnQgd29ya2luZyBk
aXJlY3RvcnkgZGlmZiBhbmQgdXBkYXRlcyB0aGUgYXNzb2NpYXRlZCBidWcgaWYgYW55IgotLSAK
MS45LjMgKEFwcGxlIEdpdC01MCkKCg==
</data>
<flag name="review"
          id="264648"
          type_id="1"
          status="-"
          setter="jake.nielsen.webkit"
    />
    <flag name="commit-queue"
          id="264649"
          type_id="3"
          status="-"
          setter="jake.nielsen.webkit"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239902</attachid>
            <date>2014-10-15 15:20:42 -0700</date>
            <delta_ts>2014-10-23 11:39:17 -0700</delta_ts>
            <desc>Intended patch</desc>
            <filename>0001-Make-runtest.py-call-test-webkitpy-with-the-json-fla.patch</filename>
            <type>text/plain</type>
            <size>18571</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSBlOWY5MjU5OTIxNGRlNWM4YjFlZGEyYTYzODQ2MTg2NGI4MmViNDA2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBXZWQsIDE1IE9jdCAyMDE0IDE1OjExOjQzIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
TWFrZSBydW50ZXN0LnB5IGNhbGwgdGVzdC13ZWJraXRweSB3aXRoIHRoZSAtLWpzb24gZmxhZyB3
aGVuCiBpbiBub24taW50ZXJhY3RpdmUgbW9kZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTM3NjY3CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiogU2NyaXB0
cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZS5weToKKEV4ZWN1dGl2ZS5fcnVuX2Nv
bW1hbmRfd2l0aF90ZWVkX291dHB1dCk6CkFkZHMgdGhlIGFiaWxpdHkgdG8gb3ZlcnJpZGUgd2hl
cmUgc3RkZXJyIHdpbGwgYmUgZGlyZWN0ZWQuCihFeGVjdXRpdmUucnVuX2NvbW1hbmQpOgpBZGRz
IHRoZSB0ZWVkX291dHB1dCBhcmd1bWVudCB0byBhbGxvdyBjYWxsZXJzIHRvIGFsbG93IHRoZSBj
b21tYW5kCm91dHB1dCB0byBwcm9wb2dhdGUgKGFzIGl0IGRvZXMgaW4gcnVuX2FuZF90aHJvd19p
Zl9mYWlsKS4KKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2su
cHk6CkFkZHMgdGhlIHRlZWRfb3V0cHV0IGFyZ3VtZW50IHRvIHRoZSBtb2NrLgooTW9ja0V4ZWN1
dGl2ZS5ydW5fY29tbWFuZCk6CiogU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHk6CkFkZHMg
dGhlIHB5dGhvbl91bml0dGVzdF9yZXN1bHRzX2RpcmVjdG9yeSBtZXRob2QuCihQb3J0LnB5dGhv
bl91bml0dGVzdF9yZXN1bHRzX2RpcmVjdG9yeSk6CiogU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5OgpDaGFuZ2VzIHVuaXQgdGVzdHMgdG8gZXhwZWN0
IHRvIHNlZSBydW5fY29tbWFuZCBpbnN0ZWFkIG9mCnJ1bl9hbmRfdGhyb3dfaWZfZmFpbC4KKiBT
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHk6CkNoYW5nZXMgUnVuVGVzdHMg
dG8gY2FsbCB0ZXN0LXdlYmtpdHB5IHdpdGggdGhlIC0tanNvbiBmbGFnIGlmIHRoZQotLW5vbi1p
bnRlcmFjdGl2ZSBmbGFnIGlzIHNldCwgYW5kIHJlcGxhY2VzIGNhbGxzIHRvCnJ1bl9hbmRfdGhy
b3dfaWZfZmFpbCB3aXRoIHJ1bl9jb21tYW5kCihSdW5UZXN0cy5ydW4udGhyb3dfZXJyb3JfaGFu
ZGxlcik6CihSdW5UZXN0cyk6CihSdW5UZXN0cy5ydW4pOgoqIFNjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9ydW50ZXN0c191bml0dGVzdC5weToKQ2hhbmdlcyB1bml0IHRlc3RzIHRvIGV4cGVj
dCB0byBzZWUgcnVuX2NvbW1hbmQgaW5zdGVhZCBvZgpydW5fYW5kX3Rocm93X2lmX2ZhaWwuCiog
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5OgpDaGFuZ2VzIHVu
aXQgdGVzdHMgdG8gZXhwZWN0IHRvIHNlZSBydW5fY29tbWFuZCBpbnN0ZWFkIG9mCnJ1bl9hbmRf
dGhyb3dfaWZfZmFpbC4KLS0tCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8IDM3ICsrKysrKysrKysrKysrKysrCiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5ICB8IDQ4ICsrKysrKysrKysrKystLS0tLS0t
LS0KIC4uLi93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV9tb2NrLnB5ICAgICAgIHwg
IDEgKwogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkgICAgICAgICAgICAgICAg
fCAgMyArKwogLi4uL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkg
ICAgfCAxMiArKystLS0KIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0
cy5weSAgICAgIHwgMzAgKysrKysrKysrKy0tLS0KIC4uLi93ZWJraXRweS90b29sL3N0ZXBzL3J1
bnRlc3RzX3VuaXR0ZXN0LnB5ICAgICAgIHwgMTIgKysrLS0tCiAuLi4vU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5ICB8IDEwICsrLS0tCiA4IGZpbGVzIGNoYW5n
ZWQsIDExMCBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzY1NGFjYy4uYzY4MDFiMiAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsx
LDQyIEBACiAyMDE0LTEwLTEzICBKYWtlIE5pZWxzZW4gIDxqYWNvYl9uaWVsc2VuQGFwcGxlLmNv
bT4KIAorICAgICAgICBNYWtlIHJ1bnRlc3QucHkgY2FsbCB0ZXN0LXdlYmtpdHB5IHdpdGggdGhl
IC0tanNvbiBmbGFnIHdoZW4gaW4KKyAgICAgICAgbm9uLWludGVyYWN0aXZlIG1vZGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzY2NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZS5weToKKyAgICAgICAgKEV4ZWN1dGl2ZS5fcnVu
X2NvbW1hbmRfd2l0aF90ZWVkX291dHB1dCk6CisgICAgICAgIEFkZHMgdGhlIGFiaWxpdHkgdG8g
b3ZlcnJpZGUgd2hlcmUgc3RkZXJyIHdpbGwgYmUgZGlyZWN0ZWQuCisgICAgICAgIChFeGVjdXRp
dmUucnVuX2NvbW1hbmQpOgorICAgICAgICBBZGRzIHRoZSB0ZWVkX291dHB1dCBhcmd1bWVudCB0
byBhbGxvdyBjYWxsZXJzIHRvIGFsbG93IHRoZSBjb21tYW5kCisgICAgICAgIG91dHB1dCB0byBw
cm9wb2dhdGUgKGFzIGl0IGRvZXMgaW4gcnVuX2FuZF90aHJvd19pZl9mYWlsKS4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2sucHk6CisgICAg
ICAgIEFkZHMgdGhlIHRlZWRfb3V0cHV0IGFyZ3VtZW50IHRvIHRoZSBtb2NrLgorICAgICAgICAo
TW9ja0V4ZWN1dGl2ZS5ydW5fY29tbWFuZCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9w
b3J0L2Jhc2UucHk6CisgICAgICAgIEFkZHMgdGhlIHB5dGhvbl91bml0dGVzdF9yZXN1bHRzX2Rp
cmVjdG9yeSBtZXRob2QuCisgICAgICAgIChQb3J0LnB5dGhvbl91bml0dGVzdF9yZXN1bHRzX2Rp
cmVjdG9yeSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25s
b2FkX3VuaXR0ZXN0LnB5OgorICAgICAgICBDaGFuZ2VzIHVuaXQgdGVzdHMgdG8gZXhwZWN0IHRv
IHNlZSBydW5fY29tbWFuZCBpbnN0ZWFkIG9mCisgICAgICAgIHJ1bl9hbmRfdGhyb3dfaWZfZmFp
bC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHk6Cisg
ICAgICAgIENoYW5nZXMgUnVuVGVzdHMgdG8gY2FsbCB0ZXN0LXdlYmtpdHB5IHdpdGggdGhlIC0t
anNvbiBmbGFnIGlmIHRoZQorICAgICAgICAtLW5vbi1pbnRlcmFjdGl2ZSBmbGFnIGlzIHNldCwg
YW5kIHJlcGxhY2VzIGNhbGxzIHRvCisgICAgICAgIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbCB3aXRo
IHJ1bl9jb21tYW5kCisgICAgICAgIChSdW5UZXN0cy5ydW4udGhyb3dfZXJyb3JfaGFuZGxlcik6
CisgICAgICAgIChSdW5UZXN0cyk6CisgICAgICAgIChSdW5UZXN0cy5ydW4pOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0c191bml0dGVzdC5weToKKyAgICAg
ICAgQ2hhbmdlcyB1bml0IHRlc3RzIHRvIGV4cGVjdCB0byBzZWUgcnVuX2NvbW1hbmQgaW5zdGVh
ZCBvZgorICAgICAgICBydW5fYW5kX3Rocm93X2lmX2ZhaWwuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5OgorICAgICAgICBDaGFuZ2VzIHVu
aXQgdGVzdHMgdG8gZXhwZWN0IHRvIHNlZSBydW5fY29tbWFuZCBpbnN0ZWFkIG9mCisgICAgICAg
IHJ1bl9hbmRfdGhyb3dfaWZfZmFpbC4KKworMjAxNC0xMC0xMyAgSmFrZSBOaWVsc2VuICA8amFj
b2JfbmllbHNlbkBhcHBsZS5jb20+CisKICAgICAgICAgQWRkIC0tanNvbiBmbGFnIHRvIHRlc3Qt
d2Via2l0cHkgdG8gZW1pdCBKU09OIGZvcm1hdHRlZCB0ZXN0IHJlc3VsdHMKICAgICAgICAgb24g
c3Rkb3V0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzczNTMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9l
eGVjdXRpdmUucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0
aXZlLnB5CmluZGV4IDZiZTA3ZTAuLmQxNTQxNjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZS5weQpAQCAtOTUsMTAgKzk1LDEwIEBAIGNs
YXNzIEV4ZWN1dGl2ZShvYmplY3QpOgogICAgICAgICAjIHNob3dzIHVwIG9uIE1hYyBhbmQgTGlu
dXguCiAgICAgICAgIHJldHVybiBzeXMucGxhdGZvcm0gbm90IGluICgnd2luMzInLCAnY3lnd2lu
JykKIAotICAgIGRlZiBfcnVuX2NvbW1hbmRfd2l0aF90ZWVkX291dHB1dChzZWxmLCBhcmdzLCB0
ZWVkX291dHB1dCwgKiprd2FyZ3MpOgorICAgIGRlZiBfcnVuX2NvbW1hbmRfd2l0aF90ZWVkX291
dHB1dChzZWxmLCBhcmdzLCB0ZWVkX291dHB1dCwgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VULCAq
Kmt3YXJncyk6CiAgICAgICAgIGNoaWxkX3Byb2Nlc3MgPSBzZWxmLnBvcGVuKGFyZ3MsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zZWxmLlBJUEUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj1zZWxmLlNURE9VVCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkZXJyPXN0ZGVyciwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xvc2VfZmRzPXNlbGYuX3Nob3VsZF9jbG9zZV9mZHMoKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAKQEAgLTQxOCw3
ICs0MTgsOCBAQCBjbGFzcyBFeGVjdXRpdmUob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAg
ZXJyb3JfaGFuZGxlcj1Ob25lLAogICAgICAgICAgICAgICAgICAgICByZXR1cm5fZXhpdF9jb2Rl
PUZhbHNlLAogICAgICAgICAgICAgICAgICAgICByZXR1cm5fc3RkZXJyPVRydWUsCi0gICAgICAg
ICAgICAgICAgICAgIGRlY29kZV9vdXRwdXQ9VHJ1ZSk6CisgICAgICAgICAgICAgICAgICAgIGRl
Y29kZV9vdXRwdXQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgdGVlZF9vdXRwdXQ9RmFsc2Up
OgogICAgICAgICAiIiJQb3BlbiB3cmFwcGVyIGZvciBjb252ZW5pZW5jZSBhbmQgdG8gd29yayBh
cm91bmQgcHl0aG9uIGJ1Z3MuIiIiCiAgICAgICAgIGFzc2VydChpc2luc3RhbmNlKGFyZ3MsIGxp
c3QpIG9yIGlzaW5zdGFuY2UoYXJncywgdHVwbGUpKQogICAgICAgICBzdGFydF90aW1lID0gdGlt
ZS50aW1lKCkKQEAgLTQyNiwyMiArNDI3LDMxIEBAIGNsYXNzIEV4ZWN1dGl2ZShvYmplY3QpOgog
ICAgICAgICBzdGRpbiwgc3RyaW5nX3RvX2NvbW11bmljYXRlID0gc2VsZi5fY29tcHV0ZV9zdGRp
bihpbnB1dCkKICAgICAgICAgc3RkZXJyID0gc2VsZi5TVERPVVQgaWYgcmV0dXJuX3N0ZGVyciBl
bHNlIE5vbmUKIAotICAgICAgICBwcm9jZXNzID0gc2VsZi5wb3BlbihhcmdzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGRpbj1zdGRpbiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3Rkb3V0PXNlbGYuUElQRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rk
ZXJyPXN0ZGVyciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3dkPWN3ZCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZW52PWVudiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2xvc2VfZmRzPXNlbGYuX3Nob3VsZF9jbG9zZV9mZHMoKSkKLSAgICAgICAgb3V0cHV0
ID0gcHJvY2Vzcy5jb21tdW5pY2F0ZShzdHJpbmdfdG9fY29tbXVuaWNhdGUpWzBdCi0KLSAgICAg
ICAgIyBydW5fY29tbWFuZCBhdXRvbWF0aWNhbGx5IGRlY29kZXMgdG8gdW5pY29kZSgpIHVubGVz
cyBleHBsaWNpdGx5IHRvbGQgbm90IHRvLgotICAgICAgICBpZiBkZWNvZGVfb3V0cHV0OgotICAg
ICAgICAgICAgb3V0cHV0ID0gb3V0cHV0LmRlY29kZShzZWxmLl9jaGlsZF9wcm9jZXNzX2VuY29k
aW5nKCkpCi0KLSAgICAgICAgIyB3YWl0KCkgaXMgbm90IHRocmVhZHNhZmUgYW5kIGNhbiB0aHJv
dyBPU0Vycm9yIGR1ZSB0bzoKLSAgICAgICAgIyBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3Vl
MTczMTcxNwotICAgICAgICBleGl0X2NvZGUgPSBwcm9jZXNzLndhaXQoKQorICAgICAgICBpZiB0
ZWVkX291dHB1dDoKKyAgICAgICAgICAgIHN0cmluZ19pb19vdXRwdXQgPSBTdHJpbmdJTy5TdHJp
bmdJTygpCisgICAgICAgICAgICBjaGlsZF9vdXRwdXQgPSBUZWUoc3RyaW5nX2lvX291dHB1dCwg
c3lzLnN0ZG91dCkKKyAgICAgICAgICAgIHByaW50ICJjaGlsZF9vdXRwdXQgaXMgb2YgdHlwZTog
IgorICAgICAgICAgICAgcHJpbnQgdHlwZShjaGlsZF9vdXRwdXQpCisgICAgICAgICAgICBleGl0
X2NvZGUgPSBzZWxmLl9ydW5fY29tbWFuZF93aXRoX3RlZWRfb3V0cHV0KGFyZ3MsIGNoaWxkX291
dHB1dCwgc3RkZXJyPXN0ZGVyciwgc3RkaW49c3RkaW4sIGN3ZD1jd2QsIGVudj1lbnYpCisgICAg
ICAgICAgICBvdXRwdXQgPSBzdHJpbmdfaW9fb3V0cHV0LmdldHZhbHVlKCkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHByb2Nlc3MgPSBzZWxmLnBvcGVuKGFyZ3MsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGRpbj1zdGRpbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0ZG91dD1zZWxmLlBJUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGRlcnI9c3RkZXJyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3dk
PWN3ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZV9mZHM9c2VsZi5fc2hvdWxkX2Nsb3NlX2Zk
cygpKQorCisgICAgICAgICAgICBvdXRwdXQgPSBwcm9jZXNzLmNvbW11bmljYXRlKHN0cmluZ190
b19jb21tdW5pY2F0ZSlbMF0KKworICAgICAgICAgICAgIyBydW5fY29tbWFuZCBhdXRvbWF0aWNh
bGx5IGRlY29kZXMgdG8gdW5pY29kZSgpIHVubGVzcyBleHBsaWNpdGx5IHRvbGQgbm90IHRvLgor
ICAgICAgICAgICAgaWYgZGVjb2RlX291dHB1dDoKKyAgICAgICAgICAgICAgICBvdXRwdXQgPSBv
dXRwdXQuZGVjb2RlKHNlbGYuX2NoaWxkX3Byb2Nlc3NfZW5jb2RpbmcoKSkKKworICAgICAgICAg
ICAgIyB3YWl0KCkgaXMgbm90IHRocmVhZHNhZmUgYW5kIGNhbiB0aHJvdyBPU0Vycm9yIGR1ZSB0
bzoKKyAgICAgICAgICAgICMgaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTE3MzE3MTcKKyAg
ICAgICAgICAgIGV4aXRfY29kZSA9IHByb2Nlc3Mud2FpdCgpCiAKICAgICAgICAgX2xvZy5kZWJ1
ZygnIiVzIiB0b29rICUuMmZzJyAlIChzZWxmLmNvbW1hbmRfZm9yX3ByaW50aW5nKGFyZ3MpLCB0
aW1lLnRpbWUoKSAtIHN0YXJ0X3RpbWUpKQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2sucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2sucHkKaW5kZXggMTgxYTVmOS4uZmUw
MjU3ZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4
ZWN1dGl2ZV9tb2NrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3Rl
bS9leGVjdXRpdmVfbW9jay5weQpAQCAtOTksNiArOTksNyBAQCBjbGFzcyBNb2NrRXhlY3V0aXZl
KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybl9leGl0X2NvZGU9RmFsc2UsCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybl9zdGRlcnI9VHJ1ZSwKICAgICAgICAgICAgICAgICAg
ICAgZGVjb2RlX291dHB1dD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgdGVlZF9vdXRwdXQ9
RmFsc2UsCiAgICAgICAgICAgICAgICAgICAgIGVudj1Ob25lKToKIAogICAgICAgICBzZWxmLmNh
bGxzLmFwcGVuZChhcmdzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L2Jhc2UucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQppbmRleCA5MDc0
Zjc4Li4zZDBkNGViIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFz
ZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQpAQCAtNzg1LDYg
Kzc4NSw5IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICBkZWYgcGVyZl9yZXN1bHRzX2RpcmVj
dG9yeShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxkX3BhdGgoKQogCisgICAgZGVm
IHB5dGhvbl91bml0dGVzdF9yZXN1bHRzX2RpcmVjdG9yeShzZWxmKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuX2J1aWxkX3BhdGgoJ3B5dGhvbi11bml0dGVzdC1yZXN1bHRzJykKKwogICAgIGRlZiBk
ZWZhdWx0X3Jlc3VsdHNfZGlyZWN0b3J5KHNlbGYpOgogICAgICAgICAiIiJBYnNvbHV0ZSBwYXRo
IHRvIHRoZSBkZWZhdWx0IHBsYWNlIHRvIHN0b3JlIHRoZSB0ZXN0IHJlc3VsdHMuIiIiCiAgICAg
ICAgICMgUmVzdWx0cyBhcmUgc3RvcmUgcmVsYXRpdmUgdG8gdGhlIGJ1aWx0IHByb2R1Y3RzIHRv
IG1ha2UgaXQgZWFzeQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5CmluZGV4IDU5YjUyZWEuLjEwN2Q3NTcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91
bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93
bmxvYWRfdW5pdHRlc3QucHkKQEAgLTE2NCwxNyArMTY0LDE3IEBAIFdhcyB0aGF0IGRpZmYgY29y
cmVjdD8KIEJ1aWxkaW5nIFdlYktpdAogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnbW9j
ay1idWlsZC13ZWJraXQnXSwgY3dkPS9tb2NrLWNoZWNrb3V0LCBlbnY9eydMQ19BTEwnOiAnQycs
ICdURVJNJzogJ25vbmUnLCAnTU9DS19FTlZJUk9OX0NPUFknOiAnMSd9CiBSdW5uaW5nIFB5dGhv
biB1bml0IHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydtb2NrLXRlc3Qtd2Vi
a2l0cHknXSwgY3dkPS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9jb21tYW5kOiBbJ21vY2stdGVz
dC13ZWJraXRweSddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgUGVybCB1bml0IHRlc3Rz
Ci1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydtb2NrLXRlc3Qtd2Via2l0cGVybCddLCBj
d2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2NvbW1hbmQ6IFsnbW9jay10ZXN0LXdlYmtpdHBl
cmwnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIEphdmFTY3JpcHRDb3JlIHRlc3RzCi1N
T0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydtb2NrLXJ1bi1qYXZhY3JpcHRjb3JlLXRlc3Rz
J10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fY29tbWFuZDogWydtb2NrLXJ1bi1qYXZh
Y3JpcHRjb3JlLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBiaW5kaW5ncyBn
ZW5lcmF0aW9uIHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydtb2NrLXJ1bi1i
aW5kaW5ncy10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2NvbW1hbmQ6IFsn
bW9jay1ydW4tYmluZGluZ3MtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIFdl
YktpdCB1bml0IHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydtb2NrLXJ1bi13
ZWJraXQtdW5pdC10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2NvbW1hbmQ6
IFsnbW9jay1ydW4td2Via2l0LXVuaXQtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5u
aW5nIHJ1bi13ZWJraXQtdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ21vY2st
cnVuLXdlYmtpdC10ZXN0cycsICctLXF1aWV0J10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBy
dW5fY29tbWFuZDogWydtb2NrLXJ1bi13ZWJraXQtdGVzdHMnLCAnLS1xdWlldCddLCBjd2Q9L21v
Y2stY2hlY2tvdXQKIENvbW1pdHRlZCByNDk4MjQ6IDxodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC80OTgyND4KIENvbW1pdHRlZCByNDk4MjQ6IDxodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC80OTgyND4KIE5vIGJ1ZyBpZCBwcm92aWRlZC4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weQppbmRleCBhNDU2MjhiLi43YzY1NDgzIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CkBAIC01
MywzMCArNTMsNDYgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgaWYg
bm90IHNlbGYuX29wdGlvbnMudGVzdDoKICAgICAgICAgICAgIHJldHVybgogCi0gICAgICAgIGlm
IG5vdCBzZWxmLl9vcHRpb25zLm5vbl9pbnRlcmFjdGl2ZToKKyAgICAgICAgZGVmIHRocm93X2Vy
cm9yX2hhbmRsZXIoc2NyaXB0X2Vycm9yKToKKyAgICAgICAgICAgIHJhaXNlIHNjcmlwdF9lcnJv
cgorCisgICAgICAgIGlmIHNlbGYuX29wdGlvbnMubm9uX2ludGVyYWN0aXZlOgorICAgICAgICAg
ICAgcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQo
KS5ydW5fcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kKCkKKworICAgICAgICAgICAgaWYgcHl0aG9u
X3VuaXR0ZXN0c19jb21tYW5kOgorICAgICAgICAgICAgICAgIHB5dGhvbl91bml0dGVzdHNfY29t
bWFuZC5hcHBlbmQoJy0tanNvbicpCisgICAgICAgICAgICAgICAgX2xvZy5pbmZvKCJSdW5uaW5n
IFB5dGhvbiB1bml0IHRlc3RzIikKKworICAgICAgICAgICAgICAgIGZpbGVzeXN0ZW0gPSBzZWxm
Ll90b29sLmZpbGVzeXN0ZW0KKyAgICAgICAgICAgICAgICBweXRob25fdW5pdHRlc3RfcmVzdWx0
c19kaXJlY3RvcnkgPSBzZWxmLl90b29sLnBvcnRfZmFjdG9yeS5nZXQoKS5weXRob25fdW5pdHRl
c3RfcmVzdWx0c19kaXJlY3RvcnkoKQorICAgICAgICAgICAgICAgIGZpbGVzeXN0ZW0ubWF5YmVf
bWFrZV9kaXJlY3RvcnkocHl0aG9uX3VuaXR0ZXN0X3Jlc3VsdHNfZGlyZWN0b3J5KQorICAgICAg
ICAgICAgICAgIG91dHB1dCA9IHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9jb21tYW5kKHB5dGhv
bl91bml0dGVzdHNfY29tbWFuZCwgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCwg
cmV0dXJuX3N0ZGVycj1GYWxzZSwgdGVlZF9vdXRwdXQ9VHJ1ZSkKKyAgICAgICAgICAgICAgICBm
aWxlc3lzdGVtLndyaXRlX3RleHRfZmlsZShmaWxlc3lzdGVtLmpvaW4ocHl0aG9uX3VuaXR0ZXN0
X3Jlc3VsdHNfZGlyZWN0b3J5LCAicmVzdWx0cy5qc29uIiksIG91dHB1dCkKKworICAgICAgICBl
bHNlOgogICAgICAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIHRlYWNoIHRoZSBjb21taXQtcXVl
dWUgYW5kIHRoZSBFV1MgaG93IHRvIHJ1biB0aGVzZSB0ZXN0cy4KIAogICAgICAgICAgICAgcHl0
aG9uX3VuaXR0ZXN0c19jb21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5f
cHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kKCkKICAgICAgICAgICAgIGlmIHB5dGhvbl91bml0dGVz
dHNfY29tbWFuZDoKICAgICAgICAgICAgICAgICBfbG9nLmluZm8oIlJ1bm5pbmcgUHl0aG9uIHVu
aXQgdGVzdHMiKQotICAgICAgICAgICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRf
dGhyb3dfaWZfZmFpbChweXRob25fdW5pdHRlc3RzX2NvbW1hbmQsIGN3ZD1zZWxmLl90b29sLnNj
bSgpLmNoZWNrb3V0X3Jvb3QpCisgICAgICAgICAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUu
cnVuX2NvbW1hbmQocHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kLCBjd2Q9c2VsZi5fdG9vbC5zY20o
KS5jaGVja291dF9yb290LCBlcnJvcl9oYW5kbGVyPXRocm93X2Vycm9yX2hhbmRsZXIsIHRlZWRf
b3V0cHV0PVRydWUpCiAKICAgICAgICAgICAgIHBlcmxfdW5pdHRlc3RzX2NvbW1hbmQgPSBzZWxm
Ll90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLnJ1bl9wZXJsX3VuaXR0ZXN0c19jb21tYW5kKCkKICAg
ICAgICAgICAgIGlmIHBlcmxfdW5pdHRlc3RzX2NvbW1hbmQ6CiAgICAgICAgICAgICAgICAgX2xv
Zy5pbmZvKCJSdW5uaW5nIFBlcmwgdW5pdCB0ZXN0cyIpCi0gICAgICAgICAgICAgICAgc2VsZi5f
dG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKHBlcmxfdW5pdHRlc3RzX2NvbW1h
bmQsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCisgICAgICAgICAgICAgICAg
c2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2NvbW1hbmQocGVybF91bml0dGVzdHNfY29tbWFuZCwg
Y3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCwgZXJyb3JfaGFuZGxlcj10aHJvd19l
cnJvcl9oYW5kbGVyLCB0ZWVkX291dHB1dD1UcnVlKQogCiAgICAgICAgICAgICBqYXZhc2NyaXB0
Y29yZV90ZXN0c19jb21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5famF2
YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZCgpCiAgICAgICAgICAgICBpZiBqYXZhc2NyaXB0Y29y
ZV90ZXN0c19jb21tYW5kOgogICAgICAgICAgICAgICAgIF9sb2cuaW5mbygiUnVubmluZyBKYXZh
U2NyaXB0Q29yZSB0ZXN0cyIpCi0gICAgICAgICAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUu
cnVuX2FuZF90aHJvd19pZl9mYWlsKGphdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQsIHF1aWV0
PVRydWUsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCisgICAgICAgICAgICAg
ICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2NvbW1hbmQoamF2YXNjcmlwdGNvcmVfdGVzdHNf
Y29tbWFuZCwgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCwgZXJyb3JfaGFuZGxl
cj10aHJvd19lcnJvcl9oYW5kbGVyLCB0ZWVkX291dHB1dD1UcnVlKQogCiAgICAgICAgIGJpbmRp
bmdzX3Rlc3RzX2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLnJ1bl9iaW5k
aW5nc190ZXN0c19jb21tYW5kKCkKICAgICAgICAgaWYgYmluZGluZ3NfdGVzdHNfY29tbWFuZDoK
ICAgICAgICAgICAgIF9sb2cuaW5mbygiUnVubmluZyBiaW5kaW5ncyBnZW5lcmF0aW9uIHRlc3Rz
IikKICAgICAgICAgICAgIGFyZ3MgPSBiaW5kaW5nc190ZXN0c19jb21tYW5kCiAgICAgICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJv
d19pZl9mYWlsKGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCisgICAg
ICAgICAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2NvbW1hbmQoYXJncywgY3dkPXNl
bGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCwgZXJyb3JfaGFuZGxlcj10aHJvd19lcnJvcl9o
YW5kbGVyKQogICAgICAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yLCBlOgogICAgICAgICAgICAg
ICAgIF9sb2cuaW5mbygiRXJyb3IgcnVubmluZyBydW4tYmluZGluZ3MtdGVzdHM6ICVzIiAlIGUu
bWVzc2FnZV93aXRoX291dHB1dCgpKQogCkBAIC04NSw3ICsxMDEsNyBAQCBjbGFzcyBSdW5UZXN0
cyhBYnN0cmFjdFN0ZXApOgogICAgICAgICAgICAgX2xvZy5pbmZvKCJSdW5uaW5nIFdlYktpdCB1
bml0IHRlc3RzIikKICAgICAgICAgICAgIGFyZ3MgPSB3ZWJraXRfdW5pdF90ZXN0c19jb21tYW5k
CiAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUu
cnVuX2FuZF90aHJvd19pZl9mYWlsKGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0
X3Jvb3QpCisgICAgICAgICAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2NvbW1hbmQo
YXJncywgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCwgZXJyb3JfaGFuZGxlcj10
aHJvd19lcnJvcl9oYW5kbGVyKQogICAgICAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yLCBlOgog
ICAgICAgICAgICAgICAgIF9sb2cuaW5mbygiRXJyb3IgcnVubmluZyB3ZWJraXRfdW5pdF90ZXN0
czogJXMiICUgZS5tZXNzYWdlX3dpdGhfb3V0cHV0KCkpCiAKQEAgLTExMCw1ICsxMjYsNSBAQCBj
bGFzcyBSdW5UZXN0cyhBYnN0cmFjdFN0ZXApOgogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnF1
aWV0OgogICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tcXVpZXQiKQogCi0gICAgICAgIHNlbGYu
X3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChhcmdzLCBjd2Q9c2VsZi5fdG9v
bC5zY20oKS5jaGVja291dF9yb290KQorICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5f
Y29tbWFuZChhcmdzLCBjd2Q9c2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9yb290LCBlcnJvcl9o
YW5kbGVyPXRocm93X2Vycm9yX2hhbmRsZXIpCiAgICAgICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzX3VuaXR0ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzX3VuaXR0ZXN0LnB5CmluZGV4IDJh
N2VjOWUuLjc5NjgzZDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9ydW50ZXN0c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvcnVudGVzdHNfdW5pdHRlc3QucHkKQEAgLTQzLDE5ICs0MywxOSBAQCBjbGFzcyBS
dW5UZXN0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgIGlmIHN5cy5wbGF0Zm9y
bSAhPSAiY3lnd2luIjoKICAgICAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJSdW5uaW5nIGJp
bmRpbmdzIGdlbmVyYXRpb24gdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ21v
Y2stcnVuLWJpbmRpbmdzLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fY29t
bWFuZDogWydtb2NrLXJ1bi1iaW5kaW5ncy10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1
bm5pbmcgV2ViS2l0IHVuaXQgdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ21v
Y2stcnVuLXdlYmtpdC11bml0LXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5f
Y29tbWFuZDogWydtb2NrLXJ1bi13ZWJraXQtdW5pdC10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tv
dXQKIFJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cwotTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6
IFsnbW9jay1ydW4td2Via2l0LXRlc3RzJywgJy0tbm8tbmV3LXRlc3QtcmVzdWx0cycsICctLW5v
LXNob3ctcmVzdWx0cycsICctLWV4aXQtYWZ0ZXItbi1mYWlsdXJlcz0zMCcsICctLXF1aWV0Jywg
Jy0tc2tpcC1mYWlsaW5nLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fY29t
bWFuZDogWydtb2NrLXJ1bi13ZWJraXQtdGVzdHMnLCAnLS1uby1uZXctdGVzdC1yZXN1bHRzJywg
Jy0tbm8tc2hvdy1yZXN1bHRzJywgJy0tZXhpdC1hZnRlci1uLWZhaWx1cmVzPTMwJywgJy0tcXVp
ZXQnLCAnLS1za2lwLWZhaWxpbmctdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiAiIiIKICAg
ICAgICAgZWxzZToKICAgICAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJSdW5uaW5nIGJpbmRp
bmdzIGdlbmVyYXRpb24gdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ21vY2st
cnVuLWJpbmRpbmdzLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fY29tbWFu
ZDogWydtb2NrLXJ1bi1iaW5kaW5ncy10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5p
bmcgV2ViS2l0IHVuaXQgdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ21vY2st
cnVuLXdlYmtpdC11bml0LXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fY29t
bWFuZDogWydtb2NrLXJ1bi13ZWJraXQtdW5pdC10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQK
IFJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cwotTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsn
bW9jay1ydW4td2Via2l0LXRlc3RzJywgJy0tbm8tbmV3LXRlc3QtcmVzdWx0cycsICctLW5vLXNo
b3ctcmVzdWx0cycsICctLWV4aXQtYWZ0ZXItbi1mYWlsdXJlcz0zMCcsICctLW5vLWJ1aWxkJ10s
IGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fY29tbWFuZDogWydtb2NrLXJ1bi13ZWJraXQt
dGVzdHMnLCAnLS1uby1uZXctdGVzdC1yZXN1bHRzJywgJy0tbm8tc2hvdy1yZXN1bHRzJywgJy0t
ZXhpdC1hZnRlci1uLWZhaWx1cmVzPTMwJywgJy0tbm8tYnVpbGQnXSwgY3dkPS9tb2NrLWNoZWNr
b3V0CiAiIiIKIAogICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwg
c3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQppbmRleCBi
MWUyYmYxLi5iNzYwYjdkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CkBAIC0xMDQsMTQgKzEwNCwxNCBAQCBjbGFzcyBTdGVw
c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQg
PSBEZXByZWNhdGVkUG9ydCgpCiAgICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5UZXN0cyh0b29sLCBt
b2NrX29wdGlvbnMpCiAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJSdW5uaW5nIFB5dGhvbiB1
bml0IHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rl
c3Qtd2Via2l0cHknXSwgY3dkPS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9jb21tYW5kOiBbJ1Rv
b2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweSddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcg
UGVybCB1bml0IHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3Jp
cHRzL3Rlc3Qtd2Via2l0cGVybCddLCBjd2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2NvbW1h
bmQ6IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHBlcmwnXSwgY3dkPS9tb2NrLWNoZWNrb3V0
CiBSdW5uaW5nIEphdmFTY3JpcHRDb3JlIHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFp
bDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyddLCBjd2Q9L21vY2st
Y2hlY2tvdXQKK01PQ0sgcnVuX2NvbW1hbmQ6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlw
dGNvcmUtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIGJpbmRpbmdzIGdlbmVy
YXRpb24gdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMv
cnVuLWJpbmRpbmdzLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fY29tbWFu
ZDogWydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5ncy10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tv
dXQKIFJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cwotTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6
IFsnVG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzJywgJy0tcXVpZXQnXSwgY3dkPS9tb2Nr
LWNoZWNrb3V0CitNT0NLIHJ1bl9jb21tYW5kOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10
ZXN0cycsICctLXF1aWV0J10sIGN3ZD0vbW9jay1jaGVja291dAogIiIiCiAgICAgICAgIE91dHB1
dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRf
bG9ncz1leHBlY3RlZF9sb2dzKQotLSAKMS45LjMgKEFwcGxlIEdpdC01MCkKCg==
</data>
<flag name="review"
          id="264650"
          type_id="1"
          status="-"
          setter="dbates"
    />
    <flag name="commit-queue"
          id="264651"
          type_id="3"
          status="-"
          setter="dbates"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240357</attachid>
            <date>2014-10-23 11:39:17 -0700</date>
            <delta_ts>2014-10-23 14:48:35 -0700</delta_ts>
            <desc>Addresses comments</desc>
            <filename>0001-Make-runtest.py-call-test-webkitpy-with-the-json-fla.patch</filename>
            <type>text/plain</type>
            <size>4035</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSA4ODMxOTA3YmJlZjk3Nzg4ODFjYjhjNzVkZmU3MDk3MjQ3ODg2ZTkxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBUaHUsIDIzIE9jdCAyMDE0IDExOjM4OjIwIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
TWFrZSBydW50ZXN0LnB5IGNhbGwgdGVzdC13ZWJraXRweSB3aXRoIHRoZSAtLWpzb24gZmxhZyB3
aGVuCiBpbiBub24taW50ZXJhY3RpdmUgbW9kZS4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzNzY2NwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIFNjcmlw
dHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5OgpBZGRzIHRoZSBweXRob25fdW5pdHRlc3RfcmVzdWx0
c19kaXJlY3RvcnkgbWV0aG9kLgooUG9ydC5weXRob25fdW5pdHRlc3RfcmVzdWx0c19kaXJlY3Rv
cnkpOgoqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weToKQ2hhbmdlcyBS
dW5UZXN0cyB0byBjYWxsIHRlc3Qtd2Via2l0cHkgd2l0aCB0aGUgLS1qc29uIGZsYWcgaWYgdGhl
Ci0tbm9uLWludGVyYWN0aXZlIGZsYWcgaXMgc2V0LgooUnVuVGVzdHMucnVuLnNxdWVsY2hfZXJy
b3JfaGFuZGxlcik6CihSdW5UZXN0cyk6CihSdW5UZXN0cy5ydW4pOgotLS0KIFRvb2xzL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE4ICsrKysrKysrKysrKysrKysr
KwogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkgICAgICAgICAgIHwgIDMgKysr
CiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkgfCAxOCArKysr
KysrKysrKysrKysrKy0KIDMgZmlsZXMgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgMSBkZWxl
dGlvbigtKQoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCA3YjQ0NjAwLi4wYWVkZDIyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTQtMTAtMjMgIEpha2UgTmllbHNl
biAgPGphY29iX25pZWxzZW5AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgcnVudGVzdC5weSBj
YWxsIHRlc3Qtd2Via2l0cHkgd2l0aCB0aGUgLS1qc29uIGZsYWcgd2hlbiBpbgorICAgICAgICBu
b24taW50ZXJhY3RpdmUgbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzNzY2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHk6CisgICAgICAgIEFk
ZHMgdGhlIHB5dGhvbl91bml0dGVzdF9yZXN1bHRzX2RpcmVjdG9yeSBtZXRob2QuCisgICAgICAg
IChQb3J0LnB5dGhvbl91bml0dGVzdF9yZXN1bHRzX2RpcmVjdG9yeSk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5OgorICAgICAgICBDaGFuZ2VzIFJ1
blRlc3RzIHRvIGNhbGwgdGVzdC13ZWJraXRweSB3aXRoIHRoZSAtLWpzb24gZmxhZyBpZiB0aGUK
KyAgICAgICAgLS1ub24taW50ZXJhY3RpdmUgZmxhZyBpcyBzZXQuCisgICAgICAgIChSdW5UZXN0
cy5ydW4uc3F1ZWxjaF9lcnJvcl9oYW5kbGVyKToKKyAgICAgICAgKFJ1blRlc3RzKToKKyAgICAg
ICAgKFJ1blRlc3RzLnJ1bik6CisKIDIwMTQtMTAtMjIgIEpha2UgTmllbHNlbiAgPGphY29iX25p
ZWxzZW5AYXBwbGUuY29tPgogCiAgICAgICAgIGNvbW1pdHF1ZXVldGFza191bml0dGVzdC5weSBz
aG91bGQgYmUgbWFkZSBtb3JlIGNvbmNpc2UuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvYmFzZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5
CmluZGV4IDkwNzRmNzguLjNkMGQ0ZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcG9ydC9iYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5
CkBAIC03ODUsNiArNzg1LDkgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgIGRlZiBwZXJmX3Jl
c3VsdHNfZGlyZWN0b3J5KHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfcGF0aCgp
CiAKKyAgICBkZWYgcHl0aG9uX3VuaXR0ZXN0X3Jlc3VsdHNfZGlyZWN0b3J5KHNlbGYpOgorICAg
ICAgICByZXR1cm4gc2VsZi5fYnVpbGRfcGF0aCgncHl0aG9uLXVuaXR0ZXN0LXJlc3VsdHMnKQor
CiAgICAgZGVmIGRlZmF1bHRfcmVzdWx0c19kaXJlY3Rvcnkoc2VsZik6CiAgICAgICAgICIiIkFi
c29sdXRlIHBhdGggdG8gdGhlIGRlZmF1bHQgcGxhY2UgdG8gc3RvcmUgdGhlIHRlc3QgcmVzdWx0
cy4iIiIKICAgICAgICAgIyBSZXN1bHRzIGFyZSBzdG9yZSByZWxhdGl2ZSB0byB0aGUgYnVpbHQg
cHJvZHVjdHMgdG8gbWFrZSBpdCBlYXN5CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvcnVudGVzdHMucHkKaW5kZXggYTQ1NjI4Yi4uOTQ4YTMzYyAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weQpAQCAtNTMsNyArNTMsMjMgQEAg
Y2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgaWYgbm90IHNlbGYuX29wdGlv
bnMudGVzdDoKICAgICAgICAgICAgIHJldHVybgogCi0gICAgICAgIGlmIG5vdCBzZWxmLl9vcHRp
b25zLm5vbl9pbnRlcmFjdGl2ZToKKyAgICAgICAgZGVmIHNxdWVsY2hfZXJyb3JfaGFuZGxlcihz
Y3JpcHRfZXJyb3IpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGlmIHNlbGYuX29wdGlv
bnMubm9uX2ludGVyYWN0aXZlOgorICAgICAgICAgICAgcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5k
ID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5fcHl0aG9uX3VuaXR0ZXN0c19jb21t
YW5kKCkKKworICAgICAgICAgICAgaWYgcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kOgorICAgICAg
ICAgICAgICAgIHB5dGhvbl91bml0dGVzdHNfY29tbWFuZC5hcHBlbmQoJy0tanNvbicpCisgICAg
ICAgICAgICAgICAgX2xvZy5pbmZvKCJSdW5uaW5nIFB5dGhvbiB1bml0IHRlc3RzIikKKworICAg
ICAgICAgICAgICAgIGZpbGVzeXN0ZW0gPSBzZWxmLl90b29sLmZpbGVzeXN0ZW0KKyAgICAgICAg
ICAgICAgICBweXRob25fdW5pdHRlc3RfcmVzdWx0c19kaXJlY3RvcnkgPSBzZWxmLl90b29sLnBv
cnRfZmFjdG9yeS5nZXQoKS5weXRob25fdW5pdHRlc3RfcmVzdWx0c19kaXJlY3RvcnkoKQorICAg
ICAgICAgICAgICAgIGZpbGVzeXN0ZW0ubWF5YmVfbWFrZV9kaXJlY3RvcnkocHl0aG9uX3VuaXR0
ZXN0X3Jlc3VsdHNfZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgIG91dHB1dCA9IHNlbGYuX3Rv
b2wuZXhlY3V0aXZlLnJ1bl9jb21tYW5kKHB5dGhvbl91bml0dGVzdHNfY29tbWFuZCwgY3dkPXNl
bGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCwgZXJyb3JfaGFuZGxlcj1zcXVlbGNoX2Vycm9y
X2hhbmRsZXIsIHJldHVybl9zdGRlcnI9RmFsc2UpCisgICAgICAgICAgICAgICAgZmlsZXN5c3Rl
bS53cml0ZV90ZXh0X2ZpbGUoZmlsZXN5c3RlbS5qb2luKHB5dGhvbl91bml0dGVzdF9yZXN1bHRz
X2RpcmVjdG9yeSwgInJlc3VsdHMuanNvbiIpLCBvdXRwdXQpCisKKyAgICAgICAgZWxzZToKICAg
ICAgICAgICAgICMgRklYTUU6IFdlIHNob3VsZCB0ZWFjaCB0aGUgY29tbWl0LXF1ZXVlIGFuZCB0
aGUgRVdTIGhvdyB0byBydW4gdGhlc2UgdGVzdHMuCiAKICAgICAgICAgICAgIHB5dGhvbl91bml0
dGVzdHNfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkucnVuX3B5dGhvbl91
bml0dGVzdHNfY29tbWFuZCgpCi0tIAoxLjkuMyAoQXBwbGUgR2l0LTUwKQoK
</data>
<flag name="review"
          id="265139"
          type_id="1"
          status="+"
          setter="dbates"
    />
    <flag name="commit-queue"
          id="265140"
          type_id="3"
          status="-"
          setter="dbates"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240369</attachid>
            <date>2014-10-23 14:48:35 -0700</date>
            <delta_ts>2014-10-28 17:58:10 -0700</delta_ts>
            <desc>Uses Executive.ignore_error</desc>
            <filename>0001-Make-runtest.py-call-test-webkitpy-with-the-json-fla.patch</filename>
            <type>text/plain</type>
            <size>4201</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSBmMWI2YjAzNmVlODFhZjVjZmMwYjk4N2U3MDRhNGU4NzZjMjI1MWU3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBUaHUsIDIzIE9jdCAyMDE0IDE0OjQ3OjM4IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
TWFrZSBydW50ZXN0LnB5IGNhbGwgdGVzdC13ZWJraXRweSB3aXRoIHRoZSAtLWpzb24gZmxhZyB3
aGVuCiBpbiBub24taW50ZXJhY3RpdmUgbW9kZS4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzNzY2NwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIFNjcmlw
dHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5OgpBZGRzIHRoZSBweXRob25fdW5pdHRlc3RfcmVzdWx0
c19kaXJlY3RvcnkgbWV0aG9kLgooUG9ydC5weXRob25fdW5pdHRlc3RfcmVzdWx0c19kaXJlY3Rv
cnkpOgoqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weToKQ2hhbmdlcyBS
dW5UZXN0cyB0byBjYWxsIHRlc3Qtd2Via2l0cHkgd2l0aCB0aGUgLS1qc29uIGZsYWcgaWYgdGhl
Ci0tbm9uLWludGVyYWN0aXZlIGZsYWcgaXMgc2V0LgooUnVuVGVzdHMpOgooUnVuVGVzdHMucnVu
KToKLS0tCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAx
NyArKysrKysrKysrKysrKysrKwogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkg
ICAgICAgICAgIHwgIDMgKysrCiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVu
dGVzdHMucHkgfCAxNyArKysrKysrKysrKysrKystLQogMyBmaWxlcyBjaGFuZ2VkLCAzNSBpbnNl
cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3YjQ0NjAwLi5kMzA0ODUyIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTQt
MTAtMjMgIEpha2UgTmllbHNlbiAgPGphY29iX25pZWxzZW5AYXBwbGUuY29tPgorCisgICAgICAg
IE1ha2UgcnVudGVzdC5weSBjYWxsIHRlc3Qtd2Via2l0cHkgd2l0aCB0aGUgLS1qc29uIGZsYWcg
d2hlbiBpbgorICAgICAgICBub24taW50ZXJhY3RpdmUgbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzY2NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jh
c2UucHk6CisgICAgICAgIEFkZHMgdGhlIHB5dGhvbl91bml0dGVzdF9yZXN1bHRzX2RpcmVjdG9y
eSBtZXRob2QuCisgICAgICAgIChQb3J0LnB5dGhvbl91bml0dGVzdF9yZXN1bHRzX2RpcmVjdG9y
eSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5Ogor
ICAgICAgICBDaGFuZ2VzIFJ1blRlc3RzIHRvIGNhbGwgdGVzdC13ZWJraXRweSB3aXRoIHRoZSAt
LWpzb24gZmxhZyBpZiB0aGUKKyAgICAgICAgLS1ub24taW50ZXJhY3RpdmUgZmxhZyBpcyBzZXQu
CisgICAgICAgIChSdW5UZXN0cyk6CisgICAgICAgIChSdW5UZXN0cy5ydW4pOgorCiAyMDE0LTEw
LTIyICBKYWtlIE5pZWxzZW4gIDxqYWNvYl9uaWVsc2VuQGFwcGxlLmNvbT4KIAogICAgICAgICBj
b21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkgc2hvdWxkIGJlIG1hZGUgbW9yZSBjb25jaXNlLgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQppbmRleCA5MDc0Zjc4Li4zZDBkNGViIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQpAQCAtNzg1LDYgKzc4NSw5IEBAIGNsYXNzIFBv
cnQob2JqZWN0KToKICAgICBkZWYgcGVyZl9yZXN1bHRzX2RpcmVjdG9yeShzZWxmKToKICAgICAg
ICAgcmV0dXJuIHNlbGYuX2J1aWxkX3BhdGgoKQogCisgICAgZGVmIHB5dGhvbl91bml0dGVzdF9y
ZXN1bHRzX2RpcmVjdG9yeShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxkX3BhdGgo
J3B5dGhvbi11bml0dGVzdC1yZXN1bHRzJykKKwogICAgIGRlZiBkZWZhdWx0X3Jlc3VsdHNfZGly
ZWN0b3J5KHNlbGYpOgogICAgICAgICAiIiJBYnNvbHV0ZSBwYXRoIHRvIHRoZSBkZWZhdWx0IHBs
YWNlIHRvIHN0b3JlIHRoZSB0ZXN0IHJlc3VsdHMuIiIiCiAgICAgICAgICMgUmVzdWx0cyBhcmUg
c3RvcmUgcmVsYXRpdmUgdG8gdGhlIGJ1aWx0IHByb2R1Y3RzIHRvIG1ha2UgaXQgZWFzeQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CmluZGV4IGE0NTYy
OGIuLmEyZDc5NWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9ydW50ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVu
dGVzdHMucHkKQEAgLTMyLDcgKzMyLDcgQEAgaW1wb3J0IHBsYXRmb3JtCiBpbXBvcnQgc3lzCiBm
cm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYWJzdHJhY3RzdGVwIGltcG9ydCBBYnN0cmFjdFN0ZXAK
IGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5vcHRpb25zIGltcG9ydCBPcHRpb25zCi1mcm9tIHdl
YmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgorZnJvbSB3
ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IsIEV4ZWN1
dGl2ZQogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKQEAgLTUzLDcgKzUz
LDIwIEBAIGNsYXNzIFJ1blRlc3RzKEFic3RyYWN0U3RlcCk6CiAgICAgICAgIGlmIG5vdCBzZWxm
Ll9vcHRpb25zLnRlc3Q6CiAgICAgICAgICAgICByZXR1cm4KIAotICAgICAgICBpZiBub3Qgc2Vs
Zi5fb3B0aW9ucy5ub25faW50ZXJhY3RpdmU6CisgICAgICAgIGlmIHNlbGYuX29wdGlvbnMubm9u
X2ludGVyYWN0aXZlOgorICAgICAgICAgICAgcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kID0gc2Vs
Zi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5fcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kKCkK
KworICAgICAgICAgICAgaWYgcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kOgorICAgICAgICAgICAg
ICAgIHB5dGhvbl91bml0dGVzdHNfY29tbWFuZC5hcHBlbmQoJy0tanNvbicpCisgICAgICAgICAg
ICAgICAgX2xvZy5pbmZvKCJSdW5uaW5nIFB5dGhvbiB1bml0IHRlc3RzIikKKworICAgICAgICAg
ICAgICAgIGZpbGVzeXN0ZW0gPSBzZWxmLl90b29sLmZpbGVzeXN0ZW0KKyAgICAgICAgICAgICAg
ICBweXRob25fdW5pdHRlc3RfcmVzdWx0c19kaXJlY3RvcnkgPSBzZWxmLl90b29sLnBvcnRfZmFj
dG9yeS5nZXQoKS5weXRob25fdW5pdHRlc3RfcmVzdWx0c19kaXJlY3RvcnkoKQorICAgICAgICAg
ICAgICAgIGZpbGVzeXN0ZW0ubWF5YmVfbWFrZV9kaXJlY3RvcnkocHl0aG9uX3VuaXR0ZXN0X3Jl
c3VsdHNfZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgIG91dHB1dCA9IHNlbGYuX3Rvb2wuZXhl
Y3V0aXZlLnJ1bl9jb21tYW5kKHB5dGhvbl91bml0dGVzdHNfY29tbWFuZCwgY3dkPXNlbGYuX3Rv
b2wuc2NtKCkuY2hlY2tvdXRfcm9vdCwgZXJyb3JfaGFuZGxlcj1FeGVjdXRpdmUuaWdub3JlX2Vy
cm9yLCByZXR1cm5fc3RkZXJyPUZhbHNlKQorICAgICAgICAgICAgICAgIGZpbGVzeXN0ZW0ud3Jp
dGVfdGV4dF9maWxlKGZpbGVzeXN0ZW0uam9pbihweXRob25fdW5pdHRlc3RfcmVzdWx0c19kaXJl
Y3RvcnksICJyZXN1bHRzLmpzb24iKSwgb3V0cHV0KQorCisgICAgICAgIGVsc2U6CiAgICAgICAg
ICAgICAjIEZJWE1FOiBXZSBzaG91bGQgdGVhY2ggdGhlIGNvbW1pdC1xdWV1ZSBhbmQgdGhlIEVX
UyBob3cgdG8gcnVuIHRoZXNlIHRlc3RzLgogCiAgICAgICAgICAgICBweXRob25fdW5pdHRlc3Rz
X2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLnJ1bl9weXRob25fdW5pdHRl
c3RzX2NvbW1hbmQoKQotLSAKMS45LjMgKEFwcGxlIEdpdC01MCkKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>