<?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>37836</bug_id>
          
          <creation_ts>2010-04-19 18:19:13 -0700</creation_ts>
          <short_desc>Attempt to make new-run-webkit-tests --help more sane</short_desc>
          <delta_ts>2017-07-18 08:29:57 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>NRWT</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>39255</dependson>
    
    <dependson>76221</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>atwilson</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>dpranke</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>214406</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-19 18:19:13 -0700</bug_when>
    <thetext>Attempt to make new-run-webkit-tests --help more sane</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214408</commentid>
    <comment_count>1</comment_count>
      <attachid>53757</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-19 18:22:11 -0700</bug_when>
    <thetext>Created attachment 53757
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214417</commentid>
    <comment_count>2</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-04-19 18:35:38 -0700</bug_when>
    <thetext>This looks great.  I am in support of this.  A couple style questions:

- Should we split all the options handling into a separate file?  It&apos;s getting kind of long.

- I normally inline really short functions.  So maybe define _split_option_name in _compare_option_names and define _compare_options in _add_option_group?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214426</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-19 18:44:17 -0700</bug_when>
    <thetext>I completely agree this all needs to go into a separate function.  I decided to do that in a separate change, mostly because Dirk had outstanding changes to this code when I started this.

The only problem with inline functions is that I don&apos;t think  we can unit-test them, or?

Or is python crazy enough that you can do class.function.inline_function to call the inline function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214427</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-19 18:44:38 -0700</bug_when>
    <thetext>Sorry.  I mean in a separate file.  This all needs to go into a separate file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214432</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-04-19 18:46:44 -0700</bug_when>
    <thetext>I want to review this but my brain is shot for the night ... can we hold off on committing this until at least tomorrow us/pacific time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214437</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-19 18:49:09 -0700</bug_when>
    <thetext>I&apos;m in no hurry.  It could still get reviewed tonight and further fixerated tomorrow or just committed tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214446</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-04-19 19:16:37 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; The only problem with inline functions is that I don&apos;t think  we can unit-test
&gt; them, or?
&gt; 
&gt; Or is python crazy enough that you can do class.function.inline_function to
&gt; call the inline function?

Ah, I see, you have a unittest for _split_option_name.  Yeah, that would have to stay outside to allow testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214459</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-19 19:38:19 -0700</bug_when>
    <thetext>This really should all be on some new class in a new file.  But again, wanted to not break dirk&apos;s patches.  I&apos;ll move it all in a second patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214837</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-20 12:14:47 -0700</bug_when>
    <thetext>I like the concept.  I&apos;ll let dirk comment before looking in detail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214865</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-20 12:33:12 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=53757) [details]

&gt;          optparse.make_option(&quot;--startup-dialog&quot;, action=&quot;store_true&quot;,
&gt; -            default=False, help=&quot;create a dialog on DumpRenderTree startup&quot;),
&gt; +            help=&quot;Create a dialog on test_shell startup.&quot;),

FWIW, I&apos;d prefer if we can stick with the optparse convention of starting all help text with a lower-case letter:

http://docs.python.org/library/optparse.html

(Subsequent sentences can start with a capital letter if there is more than one sentence.)

optparse also does this in its default --help and --version help texts.

This is also the approach I took when refactoring check-webkit-style to use optparse:

http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/style/optparser.py?rev=57056#L295</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214875</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-20 12:42:50 -0700</bug_when>
    <thetext>I didn&apos;t realize that was optparse&apos;s convention.  I was trying to match old-run-webkit-tests and webkit-patch (and git for that matter).  SVN and python also start with lowercase though.

I&apos;m not sure it matters horribly, but we should be consistent.  Also it appears that none of those use periods at the end of their sentences, so those could be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214967</commentid>
    <comment_count>12</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-04-20 14:53:45 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; I didn&apos;t realize that was optparse&apos;s convention.  I was trying to match
&gt; old-run-webkit-tests and webkit-patch (and git for that matter).  SVN and
&gt; python also start with lowercase though.
&gt; 
&gt; I&apos;m not sure it matters horribly, but we should be consistent.  Also it appears
&gt; that none of those use periods at the end of their sentences, so those could be
&gt; removed.

+1 to no capitals and no periods. +2 to consistency :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214983</commentid>
    <comment_count>13</comment_count>
      <attachid>53757</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-04-20 15:06:58 -0700</bug_when>
    <thetext>Comment on attachment 53757
Patch


&gt; diff --git a/WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py b/WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py
&gt; index 68fd865..93bab69 100755
&gt; --- a/WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py
&gt; +++ b/WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py
&gt; +class HiddenOptionGroup(optparse.OptionGroup):
&gt;  def _compat_shim_callback(option, opt_str, value, parser):
&gt; +def _deprecated_shim_callback(option, opt_str, value, parser, new_option):
&gt; +def _deprecated_option(parser, option_name, long_name=None, new_option_name=None):
&gt; +def _split_option_name(option_name):
&gt; +def _compare_option_names(a, b):
&gt; +def _compare_options(a, b):
&gt; +def _add_option_group(parser, title, options):
&gt; +def _add_hidden_options(parser, options):

Please add comments and/or docstrings to all of this code. Ideally this would all be moved into a separate module (but you&apos;re already onto that). The intent and implementation of this is entirely non-obvious.

&gt;      logging_options = [
&gt; +        # FIXME: This option is super-confusing and should be hidden or removed.


My plan is to add a separate --help-logging message to get the details of this. Variable logging is important and shouldn&apos;t be hidden completely.

&gt;          optparse.make_option(&quot;--sources&quot;, action=&quot;store_true&quot;,
&gt; -            help=&quot;show expected result file path for each test &quot; +
&gt; -                 &quot;(implies --verbose)&quot;),

I think we can eliminate --sources

&gt;      # FIXME: These options should move onto the ChromiumPort.

I don&apos;t understand how you expect to move options into different source files. Do expect this main routine to gather the arguments from each file somehow?

Also, in general, editorial cleanup is often better separated into a separate patch from functional cleanup and refactoring. That way it&apos;s easier to tell
what&apos;s important when reviewing the patch.

Note that --nocheck-sys-deps isn&apos;t Chromium-specific. The call is made on every port.

Otherwise, looks reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216040</commentid>
    <comment_count>14</comment_count>
      <attachid>53757</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-22 12:56:57 -0700</bug_when>
    <thetext>Comment on attachment 53757
Patch

Please address dirk&apos;s comments before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219988</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-02 19:31:26 -0700</bug_when>
    <thetext>Attachment 53757 was posted by a committer and has review+, assigning to Eric Seidel for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226992</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-17 17:02:58 -0700</bug_when>
    <thetext>(In reply to comment #13)

&gt; Please add comments and/or docstrings to all of this code. Ideally this would all be moved into a separate module (but you&apos;re already onto that). The intent and implementation of this is entirely non-obvious.

Done.

&gt; My plan is to add a separate --help-logging message to get the details of this. Variable logging is important and shouldn&apos;t be hidden completely.

Removed, since your plan has been done. :)

&gt; I think we can eliminate --sources

You already did. :)

&gt; &gt;      # FIXME: These options should move onto the ChromiumPort.
&gt; 
&gt; I don&apos;t understand how you expect to move options into different source files. Do expect this main routine to gather the arguments from each file somehow?

Exactly.  webkit-patch does this from its various Command objects.

&gt; Also, in general, editorial cleanup is often better separated into a separate patch from functional cleanup and refactoring. That way it&apos;s easier to tell
&gt; what&apos;s important when reviewing the patch.
&gt; 
&gt; Note that --nocheck-sys-deps isn&apos;t Chromium-specific. The call is made on every port.

Yes, but Chromium is the only one who currently does anything with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227003</commentid>
    <comment_count>17</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-17 17:16:09 -0700</bug_when>
    <thetext>Committed r59631: &lt;http://trac.webkit.org/changeset/59631&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227005</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-17 17:17:09 -0700</bug_when>
    <thetext>Updated per Dirk&apos;s comments and landed (finally).  Hopefully this didn&apos;t conflict with too many in-flight patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227034</commentid>
    <comment_count>19</comment_count>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2010-05-17 18:26:13 -0700</bug_when>
    <thetext>I&apos;m seeing failures on the chromium canaries:

http://build.chromium.org/buildbot/waterfall.fyi/builders/Webkit%20(webkit.org)/builds/27810/steps/webkit_tests/logs/stdio

Not sure if it&apos;s this change, but it looks suspicious (happening somewhere between r59630 and 59634) so i&apos;m looking at rolling it back to see if it fixes things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227048</commentid>
    <comment_count>20</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-17 18:54:53 -0700</bug_when>
    <thetext>Broke Chromium, not sure why.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405157</commentid>
    <comment_count>21</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-17 10:50:35 -0700</bug_when>
    <thetext>Oh, sad.  I liked this patch soo much, but never got around to finishing it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53757</attachid>
            <date>2010-04-19 18:22:11 -0700</date>
            <delta_ts>2010-06-11 12:44:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37836-20100419182210.patch</filename>
            <type>text/plain</type>
            <size>22817</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAwOGE0NWQxLi42ZWMzNWE2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDQt
MTkgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEF0dGVtcHQgdG8gbWFrZSBuZXctcnVuLXdlYmtp
dC10ZXN0cyAtLWhlbHAgbW9yZSBzYW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNzgzNgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHk6CisgICAg
ICAgICAtIEFkZCBhIEZJWE1FIGFib3V0IG9wdGlvbnMuc2luZ2x5IGFuZCBvcHRpb25zLmJhdGNo
X3NpemUgYmVpbmcgZGlmZmVyZW50LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHk6CisgICAgICAgICAtIEFkZCBzdXBwb3J0IGZvciBo
aWRkZW4gb3B0aW9ucy4KKyAgICAgICAgIC0gQWRkIG9wdGlvbiBncm91cGluZ3MgdG8gYXR0ZW1w
dCB0byBzaW1wbGlmeSAtLWhlbHAuCisgICAgICAgICAtIEZpeCBhIGJ1bmNoIG9mIG9wdGlvbiBo
ZWxwcyB0byBzdGFydCB3aXRoIGEgY2FwaXRhbGl6ZWQgdmVyYi4KKyAgICAgICAgIC0gSGlkZSBh
IGJ1bmNoIG9mIG9wdGlvbnMgd2hpY2ggbWFrZSBubyBzZW5zZSB0byB1c2Vycy4KKyAgICAgICAg
IC0gU29ydCBvcHRpb25zIGluIC0taGVscC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5OgorICAgICAgICAgLSBBZGQg
dGVzdHMgZm9yIG9wdGlvbiBzb3J0aW5nLgorCiAyMDEwLTA0LTE5ICBEaXJrIFByYW5rZSA8ZHBy
YW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91
dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90
aHJlYWQucHkKaW5kZXggOTNiNGM3OS4uMzc1ZTA1NSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJf
dHJlZV90aHJlYWQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkKQEAgLTMxNiw2
ICszMTYsNyBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAgICAg
ICAgICAgICAjIFdlIGhhdmUgYSB1cmwsIHJ1biB0ZXN0cy4KICAgICAgICAgICAgIGJhdGNoX2Nv
dW50ICs9IDEKICAgICAgICAgICAgIHNlbGYuX251bV90ZXN0cyArPSAxCisgICAgICAgICAgICAj
IEZJWE1FOiBvcHRpb25zLnJ1bl9zaW5nbHkgYW5kIG9wdGlvbnMuYmF0Y2hfc2l6ZT0xIHNob3Vs
ZCB1c2UgdGhlIHNhbWUgY29kZSBwYXRoIQogICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5y
dW5fc2luZ2x5OgogICAgICAgICAgICAgICAgIGZhaWx1cmVzID0gc2VsZi5fcnVuX3Rlc3Rfc2lu
Z2x5KHRlc3RfaW5mbykKICAgICAgICAgICAgIGVsc2U6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5w
eQppbmRleCA2OGZkODY1Li45M2JhYjY5IDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CisrKyBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKQEAg
LTE1NzIsNiArMTU3MiwxNCBAQCBkZWYgbWFpbihvcHRpb25zLCBhcmdzLCBwcmludF9yZXN1bHRz
PVRydWUpOgogICAgIHJldHVybiBudW1fdW5leHBlY3RlZF9yZXN1bHRzCiAKIAorY2xhc3MgSGlk
ZGVuT3B0aW9uR3JvdXAob3B0cGFyc2UuT3B0aW9uR3JvdXApOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBwYXJzZXIpOgorICAgICAgICBvcHRwYXJzZS5PcHRpb25Hcm91cC5fX2luaXRfXyhzZWxm
LCBwYXJzZXIsIHRpdGxlPU5vbmUpCisKKyAgICBkZWYgZm9ybWF0X2hlbHAoc2VsZiwgZm9ybWF0
dGVyKToKKyAgICAgICAgcmV0dXJuICIiCisKKwogZGVmIF9jb21wYXRfc2hpbV9jYWxsYmFjayhv
cHRpb24sIG9wdF9zdHIsIHZhbHVlLCBwYXJzZXIpOgogICAgIHByaW50ICJJZ25vcmluZyB1bnN1
cHBvcnRlZCBvcHRpb246ICVzIiAlIG9wdF9zdHIKIApAQCAtMTU4MCw1OSArMTU4OCwxMTYgQEAg
ZGVmIF9jb21wYXRfc2hpbV9vcHRpb24ob3B0aW9uX25hbWUsIG5hcmdzPTApOgogICAgIHJldHVy
biBvcHRwYXJzZS5tYWtlX29wdGlvbihvcHRpb25fbmFtZSwgYWN0aW9uPSJjYWxsYmFjayIsIGNh
bGxiYWNrPV9jb21wYXRfc2hpbV9jYWxsYmFjaywgbmFyZ3M9bmFyZ3MsIGhlbHA9Iklnbm9yZWQs
IGZvciBvbGQtcnVuLXdlYmtpdC10ZXN0cyBjb21wYXQgb25seS4iKQogCiAKK2RlZiBfZGVwcmVj
YXRlZF9zaGltX2NhbGxiYWNrKG9wdGlvbiwgb3B0X3N0ciwgdmFsdWUsIHBhcnNlciwgbmV3X29w
dGlvbik6CisgICAgcHJpbnQgIiVzIGlzIERFUFJFQ0FURUQgcGxlYXNlIHVzZSAlcyIgJSAob3B0
X3N0ciwgbmV3X29wdGlvbikKKyAgICAjIFdlIGNvdWxkIHRpbWUuc2xlZXAgaGVyZSBvciBzb21l
IG90aGVyIGRpc2NvdXJhZ2luZyBtZWFzdXJlLgorICAgIG5ld19vcHRpb24ucHJvY2VzcyhvcHRf
c3RyLCB2YWx1ZSwgcGFyc2VyLnZhbHVlcywgcGFyc2VyKQorCisKK2RlZiBfZGVwcmVjYXRlZF9v
cHRpb24ocGFyc2VyLCBvcHRpb25fbmFtZSwgbG9uZ19uYW1lPU5vbmUsIG5ld19vcHRpb25fbmFt
ZT1Ob25lKToKKyAgICBuZXdfb3B0aW9uID0gcGFyc2VyLmdldF9vcHRpb24obmV3X29wdGlvbl9u
YW1lKQorICAgIG9wdGlvbl9uYW1lcyA9IFtvcHRpb25fbmFtZV0KKyAgICBpZiBsb25nX25hbWU6
CisgICAgICAgIG9wdGlvbl9uYW1lcy5hcHBlbmQobG9uZ19uYW1lKQorICAgIHJldHVybiBvcHRw
YXJzZS5tYWtlX29wdGlvbigKKyAgICAgICAgYWN0aW9uPSJjYWxsYmFjayIsCisgICAgICAgIGNh
bGxiYWNrPV9kZXByZWNhdGVkX3NoaW1fY2FsbGJhY2ssCisgICAgICAgIGNhbGxiYWNrX2FyZ3M9
KG5ld19vcHRpb24sKSwKKyAgICAgICAgbmFyZ3M9bmV3X29wdGlvbi5uYXJncywKKyAgICAgICAg
aGVscD0iREVQUkVDQVRFRCwgdXNlICVzIiAlIG5ld19vcHRpb24sCisgICAgICAgICpvcHRpb25f
bmFtZXMpCisKKworZGVmIF9zcGxpdF9vcHRpb25fbmFtZShvcHRpb25fbmFtZSk6CisgICAgbWF0
Y2ggPSByZS5tYXRjaChyIigtLW5vLXwtLXwtKSguKikiLCBvcHRpb25fbmFtZSkKKyAgICByZXR1
cm4gKG1hdGNoLmdyb3VwKDEpLCBtYXRjaC5ncm91cCgyKSkKKworCitkZWYgX2NvbXBhcmVfb3B0
aW9uX25hbWVzKGEsIGIpOgorICAgIGFfcHJlZml4LCBhX25hbWUgPSBfc3BsaXRfb3B0aW9uX25h
bWUoYSkKKyAgICBiX3ByZWZpeCwgYl9uYW1lID0gX3NwbGl0X29wdGlvbl9uYW1lKGIpCisgICAg
IyBTb3J0IG9wdGlvbnMgZmlyc3QgYnkgbmFtZSBpZ25vcmluZyBwcmVmaXgKKyAgICBjb21wYXJl
X3Jlc3VsdCA9IGNtcChhX25hbWUsIGJfbmFtZSkKKyAgICBpZiBjb21wYXJlX3Jlc3VsdCAhPSAw
OgorICAgICAgICByZXR1cm4gY29tcGFyZV9yZXN1bHQKKyAgICAjIFNvcnQgLS1uby1mb28gYWZ0
ZXIgLS1mb28KKyAgICByZXR1cm4gY21wKGFfcHJlZml4LCBiX3ByZWZpeCkKKworCitkZWYgX2Nv
bXBhcmVfb3B0aW9ucyhhLCBiKToKKyAgICByZXR1cm4gX2NvbXBhcmVfb3B0aW9uX25hbWVzKGEu
Z2V0X29wdF9zdHJpbmcoKSwgYi5nZXRfb3B0X3N0cmluZygpKQorCisKK2RlZiBfYWRkX29wdGlv
bl9ncm91cChwYXJzZXIsIHRpdGxlLCBvcHRpb25zKToKKyAgICBncm91cCA9IG9wdHBhcnNlLk9w
dGlvbkdyb3VwKHBhcnNlciwgdGl0bGUpCisgICAgZ3JvdXAuYWRkX29wdGlvbnMoc29ydGVkKG9w
dGlvbnMsIF9jb21wYXJlX29wdGlvbnMpKQorICAgIHBhcnNlci5hZGRfb3B0aW9uX2dyb3VwKGdy
b3VwKQorCisKK2RlZiBfYWRkX2hpZGRlbl9vcHRpb25zKHBhcnNlciwgb3B0aW9ucyk6CisgICAg
aGlkZGVuX2dyb3VwID0gSGlkZGVuT3B0aW9uR3JvdXAocGFyc2VyKQorICAgIGhpZGRlbl9ncm91
cC5hZGRfb3B0aW9ucyhvcHRpb25zKQorICAgIHBhcnNlci5hZGRfb3B0aW9uX2dyb3VwKGhpZGRl
bl9ncm91cCkKKworCiBkZWYgcGFyc2VfYXJncyhhcmdzPU5vbmUpOgogICAgICIiIlByb3ZpZGVz
IGEgZGVmYXVsdCBzZXQgb2YgY29tbWFuZCBsaW5lIGFyZ3MuCiAKICAgICBSZXR1cm5zIGEgdHVw
bGUgb2Ygb3B0aW9ucywgYXJncyBmcm9tIG9wdHBhcnNlIiIiCiAKKyAgICBwYXJzZXIgPSBvcHRw
YXJzZS5PcHRpb25QYXJzZXIoKQorCiAgICAgIyBGSVhNRTogQWxsIG9mIHRoZXNlIG9wdGlvbnMg
c2hvdWxkIGJlIHN0b3JlZCBjbG9zZXIgdG8gdGhlIGNvZGUgd2hpY2gKICAgICAjIEZJWE1FOiBh
Y3R1YWxseSB1c2VzIHRoZW0uIGNvbmZpZ3VyYXRpb25fb3B0aW9ucyBzaG91bGQgbW92ZQogICAg
ICMgRklYTUU6IHRvIFdlYktpdFBvcnQgYW5kIGJlIHNoYXJlZCBhY3Jvc3MgYWxsIHNjcmlwdHMu
CiAgICAgY29uZmlndXJhdGlvbl9vcHRpb25zID0gWwotICAgICAgICBvcHRwYXJzZS5tYWtlX29w
dGlvbigiLXQiLCAiLS10YXJnZXQiLCBkZXN0PSJjb25maWd1cmF0aW9uIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGVscD0iKERFUFJFQ0FURUQpIiksCi0gICAgICAgICMgRklYTUU6
IC0taGVscCBzaG91bGQgZGlzcGxheSB3aGljaCBjb25maWd1cmF0aW9uIGlzIGRlZmF1bHQuCiAg
ICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLWRlYnVnJywgYWN0aW9uPSdzdG9yZV9jb25z
dCcsIGNvbnN0PSdEZWJ1ZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9ImNv
bmZpZ3VyYXRpb24iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdTZXQgdGhl
IGNvbmZpZ3VyYXRpb24gdG8gRGVidWcnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGVscD0iU2V0IGJ1aWxkIGNvbmZpZ3VyYXRpb24gdG8gRGVidWciKSwKICAgICAgICAgb3B0cGFy
c2UubWFrZV9vcHRpb24oJy0tcmVsZWFzZScsIGFjdGlvbj0nc3RvcmVfY29uc3QnLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdD0nUmVsZWFzZScsIGRlc3Q9ImNvbmZpZ3VyYXRp
b24iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdTZXQgdGhlIGNvbmZpZ3Vy
YXRpb24gdG8gUmVsZWFzZScpLAotICAgICAgICAjIG9sZC1ydW4td2Via2l0LXRlc3RzIGFsc28g
YWNjZXB0cyAtYywgLS1jb25maWd1cmF0aW9uIENPTkZJR1VSQVRJT04uCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9IlNldCBidWlsZCBjb25maWd1cmF0aW9uIHRvIFJlbGVhc2Ui
KSwKKyAgICAgICAgIyBGSVhNRTogLS1oZWxwIHNob3VsZCBkaXNwbGF5IHdoaWNoIGNvbmZpZ3Vy
YXRpb24gaXMgZGVmYXVsdC4KKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi1jIiwgIi0t
Y29uZmlndXJhdGlvbiIsIGFjdGlvbj0ic3RvcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSJTZXQgYnVpbGQgY29uZmlndXJhdGlvbiIpLAogICAgIF0KKyAgICBfYWRkX29w
dGlvbl9ncm91cChwYXJzZXIsICJDb25maWd1cmF0aW9uIE9wdGlvbnMiLCBjb25maWd1cmF0aW9u
X29wdGlvbnMpCiAKICAgICBsb2dnaW5nX29wdGlvbnMgPSBbCisgICAgICAgICMgRklYTUU6IFRo
aXMgb3B0aW9uIGlzIHN1cGVyLWNvbmZ1c2luZyBhbmQgc2hvdWxkIGJlIGhpZGRlbiBvciByZW1v
dmVkLgogICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigiLS1sb2ciLCBhY3Rpb249InN0b3Jl
IiwKICAgICAgICAgICAgIGRlZmF1bHQ9TE9HX0RFRkFVTFRfVkFMVUUsCi0gICAgICAgICAgICBo
ZWxwPSgibG9nIHZhcmlvdXMgdHlwZXMgb2YgZGF0YS4gVGhlIGFyZ3VtZW50IHZhbHVlIHNob3Vs
ZCBiZSBhICIKLSAgICAgICAgICAgICAgICAgICJjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB2YWx1
ZXMgZnJvbTogJXMgKGRlZmF1bHRzIHRvICIKKyAgICAgICAgICAgIGhlbHA9KCJMb2cgdmFyaW91
cyB0eXBlcyBvZiBkYXRhLiBMT0cgc2hvdWxkIGJlIGEgIgorICAgICAgICAgICAgICAgICAgImNv
bW1hLXNlcGFyYXRlZCBsaXN0IG9mIHZhbHVlcyBmcm9tOiAlcyAoZGVmYXVsdDogIgogICAgICAg
ICAgICAgICAgICAgIi0tbG9nICVzKSIgJSAoTE9HX1ZBTFVFUywgTE9HX0RFRkFVTFRfVkFMVUUp
KSksCi0gICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi12IiwgIi0tdmVyYm9zZSIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSJpbmNsdWRl
IGRlYnVnLWxldmVsIGxvZ2dpbmciKSwKKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi12
IiwgIi0tdmVyYm9zZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICBoZWxwPSJJ
bmNsdWRlIGRlYnVnLWxldmVsIGxvZ2dpbmcuIiksCisgICAgICAgICMgRklYTUU6IERvIHdlIG5l
ZWQgdGhpcyBub3cgdGhhdCB3ZSBoYXZlIC0tbG9nPXRyYWNlPwogICAgICAgICBvcHRwYXJzZS5t
YWtlX29wdGlvbigiLS1zb3VyY2VzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAg
IGhlbHA9InNob3cgZXhwZWN0ZWQgcmVzdWx0IGZpbGUgcGF0aCBmb3IgZWFjaCB0ZXN0ICIgKwot
ICAgICAgICAgICAgICAgICAiKGltcGxpZXMgLS12ZXJib3NlKSIpLAotICAgICAgICAjIG9sZC1y
dW4td2Via2l0LXRlc3RzIGhhcyBhIC0tc2xvd2VzdCBvcHRpb24gd2hpY2gganVzdCBwcmludHMK
KyAgICAgICAgICAgIGhlbHA9IkxvZyBwYXRocyB1c2VkIGZvciBlYWNoIGV4cGVjdGVkIHJlc3Vs
dCAoaW1wbGllcyAtLXZlcmJvc2UpIiksCisgICAgICAgICMgb2xkLXJ1bi13ZWJraXQtdGVzdHMg
aGFzIGEgc2ltcGxlciAtLXNsb3dlc3Qgb3B0aW9uIHdoaWNoIGp1c3QgcHJpbnRzCiAgICAgICAg
ICMgdGhlIHNsb3dlc3QgMTAuCi0gICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLW51bS1z
bG93LXRlc3RzLXRvLWxvZyIsIGRlZmF1bHQ9NTAsCi0gICAgICAgICAgICBoZWxwPSJOdW1iZXIg
b2Ygc2xvdyB0ZXN0cyB3aG9zZSB0aW1pbmdzIHRvIHByaW50LiIpLAorICAgICAgICBvcHRwYXJz
ZS5tYWtlX29wdGlvbigiLS1udW0tc2xvdy10ZXN0cy10by1sb2ciLCBkZWZhdWx0PTUwLCBtZXRh
dmFyPSJOIiwKKyAgICAgICAgICAgIGhlbHA9IlByaW50IHRoZSBzbG93ZXN0IE4gdGVzdHMuICBS
ZXF1aXJlcyAtLXZlcmJvc2UuIiksCiAgICAgXQorICAgIF9hZGRfb3B0aW9uX2dyb3VwKHBhcnNl
ciwgIkxvZ2dpbmcgT3B0aW9ucyIsIGxvZ2dpbmdfb3B0aW9ucykKIAogICAgICMgRklYTUU6IFRo
ZXNlIG9wdGlvbnMgc2hvdWxkIG1vdmUgb250byB0aGUgQ2hyb21pdW1Qb3J0LgogICAgIGNocm9t
aXVtX29wdGlvbnMgPSBbCi0gICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLWNocm9taXVt
IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgIGhlbHA9
InVzZSB0aGUgQ2hyb21pdW0gcG9ydCIpLAorICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigi
LS1jaHJvbWl1bSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICBoZWxwPSJVc2Ug
dGhlIENocm9taXVtIHBvcnQuIiksCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLXN0
YXJ0dXAtZGlhbG9nIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAgIGRlZmF1bHQ9
RmFsc2UsIGhlbHA9ImNyZWF0ZSBhIGRpYWxvZyBvbiBEdW1wUmVuZGVyVHJlZSBzdGFydHVwIiks
CisgICAgICAgICAgICBoZWxwPSJDcmVhdGUgYSBkaWFsb2cgb24gdGVzdF9zaGVsbCBzdGFydHVw
LiIpLAogICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigiLS1ncC1mYXVsdC1lcnJvci1ib3gi
LCBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0i
ZW5hYmxlIFdpbmRvd3MgR1AgZmF1bHQgZXJyb3IgYm94IiksCisgICAgICAgICAgICBoZWxwPSJF
bmFibGUgV2luZG93cyBHUCBmYXVsdCBlcnJvciBib3guIiksCiAgICAgICAgIG9wdHBhcnNlLm1h
a2Vfb3B0aW9uKCItLW5vY2hlY2stc3lzLWRlcHMiLCBhY3Rpb249InN0b3JlX3RydWUiLAotICAg
ICAgICAgICAgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgIGhlbHA9IkRvbid0IGNoZWNrIHRo
ZSBzeXN0ZW0gZGVwZW5kZW5jaWVzICh0aGVtZXMpIiksCisgICAgICAgICAgICBoZWxwPSJEaXNh
YmxlIHN5c3RlbSBkZXBlbmRlbmNpZXMgY2hlY2sgKGVnLiBmb250cywgdGhlbWVzKS4iKSwKICAg
ICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tdXNlLWRydCIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsCi0gICAgICAgICAgICBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgaGVscD0iVXNlIER1
bXBSZW5kZXJUcmVlIGluc3RlYWQgb2YgdGVzdF9zaGVsbCIpLAorICAgICAgICAgICAgaGVscD0i
VXNlIER1bXBSZW5kZXJUcmVlIGluc3RlYWQgb2YgdGVzdF9zaGVsbC4iKSwKKyAgICAgICAgb3B0
cGFyc2UubWFrZV9vcHRpb24oIi0tdXNlLWFwYWNoZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisg
ICAgICAgICAgICBoZWxwPSJVc2UgYXBhY2hlIGluc3RlYWQgb2YgbGlnaHR0cGQgKFdpbmRvd3Mg
b25seSkuIiksCiAgICAgXQorICAgIF9hZGRfb3B0aW9uX2dyb3VwKHBhcnNlciwgIkNocm9taXVt
IE9wdGlvbnMiLCBjaHJvbWl1bV9vcHRpb25zKQogCiAgICAgIyBNaXNzaW5nIE1hYy1zcGVjaWZp
YyBvbGQtcnVuLXdlYmtpdC10ZXN0cyBvcHRpb25zOgogICAgICMgRklYTUU6IE5lZWQ6IC1nLCAt
LWd1YXJkIGZvciBndWFyZCBtYWxsb2Mgc3VwcG9ydCBvbiBNYWMuCkBAIC0xNjQ0LDU0ICsxNzA5
LDM5IEBAIGRlZiBwYXJzZV9hcmdzKGFyZ3M9Tm9uZSk6CiAgICAgICAgIF9jb21wYXRfc2hpbV9v
cHRpb24oIi0tbm8tbmV3LXRlc3QtcmVzdWx0cyIpLAogICAgICAgICAjIE5SV1QgZG9lc24ndCBz
YW1wbGUgb24gdGltZW91dCB5ZXQgYW55d2F5LgogICAgICAgICBfY29tcGF0X3NoaW1fb3B0aW9u
KCItLW5vLXNhbXBsZS1vbi10aW1lb3V0IiksCi0gICAgICAgICMgRklYTUU6IE5SV1QgbmVlZHMg
dG8gc3VwcG9ydCByZW1vdGUgbGlua3MgZXZlbnR1YWxseS4KKyAgICAgICAgIyBGSVhNRTogTlJX
VCBuZWVkcyB0byBzdXBwb3J0IHJlbW90ZSBsaW5rcy4KICAgICAgICAgX2NvbXBhdF9zaGltX29w
dGlvbigiLS11c2UtcmVtb3RlLWxpbmtzLXRvLXRlc3RzIiksCiAgICAgICAgICMgRklYTUU6IE5S
V1QgZG9lc24ndCBuZWVkIHRoaXMgb3B0aW9uIGFzIG11Y2ggc2luY2UgZmFpbHVyZXMgYXJlCiAg
ICAgICAgICMgZGVzaWduZWQgdG8gYmUgY2hlYXAuICBXZSBldmVudHVhbGx5IHBsYW4gdG8gYWRk
IHRoaXMgc3VwcG9ydC4KICAgICAgICAgX2NvbXBhdF9zaGltX29wdGlvbigiLS1leGl0LWFmdGVy
LW4tZmFpbHVyZXMiLCBuYXJncz0xKSwKICAgICBdCisgICAgX2FkZF9oaWRkZW5fb3B0aW9ucyhw
YXJzZXIsIG9sZF9ydW5fd2Via2l0X3Rlc3RzX2NvbXBhdCkKIAogICAgIHJlc3VsdHNfb3B0aW9u
cyA9IFsKICAgICAgICAgIyBORUVEIGZvciBib3RzOiAtLXVzZS1yZW1vdGUtbGlua3MtdG8tdGVz
dHMgTGluayB0byB0ZXN0IGZpbGVzCiAgICAgICAgICMgd2l0aGluIHRoZSBTVk4gcmVwb3NpdG9y
eSBpbiB0aGUgcmVzdWx0cy4KICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi1wIiwgIi0t
cGl4ZWwtdGVzdHMiLCBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICAgICAgZGVzdD0icGl4
ZWxfdGVzdHMiLCBoZWxwPSJFbmFibGUgcGl4ZWwtdG8tcGl4ZWwgUE5HIGNvbXBhcmlzb25zIiks
CisgICAgICAgICAgICBoZWxwPSJFbmFibGUgcGl4ZWwtdG8tcGl4ZWwgUE5HIGNvbXBhcmlzb25z
IiksCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLW5vLXBpeGVsLXRlc3RzIiwgYWN0
aW9uPSJzdG9yZV9mYWxzZSIsCiAgICAgICAgICAgICBkZXN0PSJwaXhlbF90ZXN0cyIsIGhlbHA9
IkRpc2FibGUgcGl4ZWwtdG8tcGl4ZWwgUE5HIGNvbXBhcmlzb25zIiksCi0gICAgICAgIG9wdHBh
cnNlLm1ha2Vfb3B0aW9uKCItLWZ1enp5LXBpeGVsLXRlc3RzIiwgYWN0aW9uPSJzdG9yZV90cnVl
IiwKLSAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICBoZWxwPSJBbHNvIHVz
ZSBmdXp6eSBtYXRjaGluZyB0byBjb21wYXJlIHBpeGVsIHRlc3Qgb3V0cHV0cy4iKSwKICAgICAg
ICAgIyBvbGQtcnVuLXdlYmtpdC10ZXN0cyBhbGxvd3MgYSBzcGVjaWZpYyB0b2xlcmFuY2U6IC0t
dG9sZXJhbmNlIHQKICAgICAgICAgIyBJZ25vcmUgaW1hZ2UgZGlmZmVyZW5jZXMgbGVzcyB0aGFu
IHRoaXMgcGVyY2VudGFnZSAoZGVmYXVsdDogMC4xKQorICAgICAgICBvcHRwYXJzZS5tYWtlX29w
dGlvbigiLS1mdXp6eS1waXhlbC10ZXN0cyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAg
ICAgICBoZWxwPSJBbHNvIHVzZSBmdXp6eSBtYXRjaGluZyB0byBjb21wYXJlIHBpeGVsIHRlc3Qg
b3V0cHV0cy4iKSwKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tcmVzdWx0cy1kaXJl
Y3RvcnkiLAogICAgICAgICAgICAgZGVmYXVsdD0ibGF5b3V0LXRlc3QtcmVzdWx0cyIsCi0gICAg
ICAgICAgICBoZWxwPSJPdXRwdXQgcmVzdWx0cyBkaXJlY3Rvcnkgc291cmNlIGRpciwgcmVsYXRp
dmUgdG8gRGVidWcgb3IgIgotICAgICAgICAgICAgICAgICAiUmVsZWFzZSIpLAorICAgICAgICAg
ICAgaGVscD0iT3V0cHV0IHJlc3VsdHMgZGlyZWN0b3J5LCByZWxhdGl2ZSB0byBidWlsZCBkaXJl
Y3RvcnkiKSwKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tbmV3LWJhc2VsaW5lIiwg
YWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IlNh
dmUgYWxsIGdlbmVyYXRlZCByZXN1bHRzIGFzIG5ldyBiYXNlbGluZXMgIgorICAgICAgICAgICAg
aGVscD0iU2F2ZSBhbGwgZ2VuZXJhdGVkIHJlc3VsdHMgYXMgbmV3IGJhc2VsaW5lcyAiCiAgICAg
ICAgICAgICAgICAgICJpbnRvIHRoZSBwbGF0Zm9ybSBkaXJlY3RvcnksIG92ZXJ3cml0aW5nIHdo
YXRldmVyJ3MgIgogICAgICAgICAgICAgICAgICAiYWxyZWFkeSB0aGVyZS4iKSwKICAgICAgICAg
b3B0cGFyc2UubWFrZV9vcHRpb24oIi0tbm8tc2hvdy1yZXN1bHRzIiwgYWN0aW9uPSJzdG9yZV9m
YWxzZSIsCiAgICAgICAgICAgICBkZWZhdWx0PVRydWUsIGRlc3Q9InNob3dfcmVzdWx0cyIsCi0g
ICAgICAgICAgICBoZWxwPSJEb24ndCBsYXVuY2ggYSBicm93c2VyIHdpdGggcmVzdWx0cyBhZnRl
ciB0aGUgdGVzdHMgIgotICAgICAgICAgICAgICAgICAiYXJlIGRvbmUiKSwKLSAgICAgICAgIyBG
SVhNRTogV2Ugc2hvdWxkIGhhdmUgYSBoZWxwZXIgZnVuY3Rpb24gdG8gZG8gdGhpcyBzb3J0IG9m
Ci0gICAgICAgICMgZGVwcmVjdGF0ZWQgbWFwcGluZyBhbmQgYXV0b21hdGljYWxseSBsb2csIGV0
Yy4KLSAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tbm9zaG93LXJlc3VsdHMiLCBhY3Rp
b249InN0b3JlX2ZhbHNlIiwKLSAgICAgICAgICAgIGRlc3Q9InNob3dfcmVzdWx0cyIsCi0gICAg
ICAgICAgICBoZWxwPSJEZXByZWNhdGVkLCBzYW1lIGFzIC0tbm8tc2hvdy1yZXN1bHRzLiIpLAot
ICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigiLS1uby1sYXVuY2gtc2FmYXJpIiwgYWN0aW9u
PSJzdG9yZV9mYWxzZSIsCi0gICAgICAgICAgICBkZXN0PSJzaG93X3Jlc3VsdHMiLAotICAgICAg
ICAgICAgaGVscD0ib2xkLXJ1bi13ZWJraXQtdGVzdHMgY29tcGF0LCBzYW1lIGFzIC0tbm9zaG93
LXJlc3VsdHMuIiksCi0gICAgICAgICMgb2xkLXJ1bi13ZWJraXQtdGVzdHM6Ci0gICAgICAgICMg
LS1bbm8tXWxhdW5jaC1zYWZhcmkgICAgTGF1bmNoIChvciBkbyBub3QgbGF1bmNoKSBTYWZhcmkg
dG8gZGlzcGxheQotICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QgcmVzdWx0
cyAoZGVmYXVsdDogbGF1bmNoKQorICAgICAgICAgICAgaGVscD0iRG8gbm90IGxhdW5jaCBhIGJy
b3dzZXIgd2l0aCByZXN1bHRzIGFmdGVyIHRlc3RpbmciKSwKICAgICAgICAgb3B0cGFyc2UubWFr
ZV9vcHRpb24oIi0tZnVsbC1yZXN1bHRzLWh0bWwiLCBhY3Rpb249InN0b3JlX3RydWUiLAotICAg
ICAgICAgICAgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgIGhlbHA9IlNob3cgYWxsIGZhaWx1
cmVzIGluIHJlc3VsdHMuaHRtbCwgcmF0aGVyIHRoYW4gb25seSAiCi0gICAgICAgICAgICAgICAg
ICJyZWdyZXNzaW9ucyIpLAotICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigiLS1jbG9iYmVy
LW9sZC1yZXN1bHRzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAgIGRlZmF1bHQ9
RmFsc2UsIGhlbHA9IkNsb2JiZXJzIHRlc3QgcmVzdWx0cyBmcm9tIHByZXZpb3VzIHJ1bnMuIiks
CisgICAgICAgICAgICBoZWxwPSJJbmNsdWRlIGV4cGVjdGVkIGZhaWx1cmVzIGluIHJlc3VsdHMu
aHRtbC4iKSwKKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tcmVzZXQtcmVzdWx0cyIs
IGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICBoZWxwPSJSZXNldCBhbGwgcmVzdWx0
cyB3aXRoIG5ldyBleHBlY3RhdGlvbnMgZnJvbSB0aGlzIHJ1bi4iKSwKICAgICAgICAgb3B0cGFy
c2UubWFrZV9vcHRpb24oIi0tcGxhdGZvcm0iLAogICAgICAgICAgICAgaGVscD0iT3ZlcnJpZGUg
dGhlIHBsYXRmb3JtIGZvciBleHBlY3RlZCByZXN1bHRzIiksCiAgICAgICAgICMgb2xkLXJ1bi13
ZWJraXQtdGVzdHMgYWxzbyBoYXMgSFRUUCB0b2dnbGUgb3B0aW9uczoKQEAgLTE3MDIsODYgKzE3
NTIsOTIgQEAgZGVmIHBhcnNlX2FyZ3MoYXJncz1Ob25lKToKICAgICAgICAgIyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFzIFdFQktJVF9XQUlUX0ZPUl9IVFRQRD0xKS4KICAgICAg
ICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWZhdWx0OiAwKQogICAgIF0K
KyAgICBfYWRkX29wdGlvbl9ncm91cChwYXJzZXIsICJSZXN1bHRzIE9wdGlvbnMiLCByZXN1bHRz
X29wdGlvbnMpCiAKICAgICB0ZXN0X29wdGlvbnMgPSBbCiAgICAgICAgICMgb2xkLXJ1bi13ZWJr
aXQtdGVzdHMgaGFzIC0tdmFsZ3JpbmQgaW5zdGVhZCBvZiB3cmFwcGVyLgogICAgICAgICBvcHRw
YXJzZS5tYWtlX29wdGlvbigiLS13cmFwcGVyIiwKLSAgICAgICAgICAgIGhlbHA9IndyYXBwZXIg
Y29tbWFuZCB0byBpbnNlcnQgYmVmb3JlIGludm9jYXRpb25zIG9mICIKLSAgICAgICAgICAgICAg
ICAgIkR1bXBSZW5kZXJUcmVlOyBvcHRpb24gaXMgc3BsaXQgb24gd2hpdGVzcGFjZSBiZWZvcmUg
IgotICAgICAgICAgICAgICAgICAicnVubmluZy4gKEV4YW1wbGU6IC0td3JhcHBlcj0ndmFsZ3Jp
bmQgLS1zbWMtY2hlY2s9YWxsJykiKSwKKyAgICAgICAgICAgIGhlbHA9IldyYXAgYWxsIGludm9j
YXRpb25zIG9mIER1bXBSZW5kZXJUcmVlIHdpdGggV1JBUFBFUi4iCisgICAgICAgICAgICAgICAg
ICJXUkFQUEVSIGlzIHNwbGl0IG9uIHdoaXRlc3BhY2UgYmVmb3JlIHJ1bm5pbmcuIgorICAgICAg
ICAgICAgICAgICAiKEV4YW1wbGU6IC0td3JhcHBlcj0ndmFsZ3JpbmQgLS1zbWMtY2hlY2s9YWxs
JykiKSwKICAgICAgICAgIyBvbGQtcnVuLXdlYmtpdC10ZXN0czoKICAgICAgICAgIyAtaXwtLWln
bm9yZS10ZXN0cyAgICAgICAgICAgICAgIENvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGRpcmVjdG9y
aWVzCiAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciB0ZXN0cyB0
byBpZ25vcmUKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tdGVzdC1saXN0IiwgYWN0
aW9uPSJhcHBlbmQiLAotICAgICAgICAgICAgaGVscD0icmVhZCBsaXN0IG9mIHRlc3RzIHRvIHJ1
biBmcm9tIGZpbGUiLCBtZXRhdmFyPSJGSUxFIiksCisgICAgICAgICAgICBoZWxwPSJSZWFkIGxp
c3Qgb2YgdGVzdHMgdG8gcnVuIGZyb20gZmlsZS4iLCBtZXRhdmFyPSJGSUxFIiksCiAgICAgICAg
ICMgb2xkLXJ1bi13ZWJraXQtdGVzdHMgdXNlcyAtLXNraXBwZWQ9PVtkZWZhdWx0fGlnbm9yZXxv
bmx5XQogICAgICAgICAjIGluc3RlYWQgb2YgLS1mb3JjZToKLSAgICAgICAgb3B0cGFyc2UubWFr
ZV9vcHRpb24oIi0tZm9yY2UiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLAor
ICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigiLS1mb3JjZSIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsCiAgICAgICAgICAgICBoZWxwPSJSdW4gYWxsIHRlc3RzLCBldmVuIHRob3NlIG1hcmtlZCBT
S0lQIGluIHRoZSB0ZXN0IGxpc3QiKSwKLSAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0t
dXNlLWFwYWNoZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgICAgICBkZWZhdWx0PUZh
bHNlLCBoZWxwPSJXaGV0aGVyIHRvIHVzZSBhcGFjaGUgaW5zdGVhZCBvZiBsaWdodHRwZC4iKSwK
LSAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tdGltZS1vdXQtbXMiLAotICAgICAgICAg
ICAgaGVscD0iU2V0IHRoZSB0aW1lb3V0IGZvciBlYWNoIHRlc3QiKSwKLSAgICAgICAgIyBvbGQt
cnVuLXdlYmtpdC10ZXN0cyBjYWxscyAtLXJhbmRvbWl6ZS1vcmRlciAtLXJhbmRvbToKKyAgICAg
ICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tdGltZS1vdXQtbXMiLCBtZXRhdmFyPSJNUyIsCisg
ICAgICAgICAgICBoZWxwPSJTZXQgdGhlIHRpbWVvdXQgZm9yIGFsbCB0ZXN0cy4iKSwKICAgICAg
ICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tcmFuZG9taXplLW9yZGVyIiwgYWN0aW9uPSJzdG9y
ZV90cnVlIiwKLSAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9KCJSdW4gdGVzdHMgaW4g
cmFuZG9tIG9yZGVyICh1c2VmdWwgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
Zm9yIHRyYWNraW5nIGRvd24gY29ycnVwdGlvbikiKSksCi0gICAgICAgIG9wdHBhcnNlLm1ha2Vf
b3B0aW9uKCItLXJ1bi1jaHVuayIsCi0gICAgICAgICAgICBoZWxwPSgiUnVuIGEgc3BlY2lmaWVk
IGNodW5rIChuOmwpLCB0aGUgbnRoIG9mIGxlbiBsLCAiCi0gICAgICAgICAgICAgICAgICJvZiB0
aGUgbGF5b3V0IHRlc3RzIikpLAotICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigiLS1ydW4t
cGFydCIsIGhlbHA9KCJSdW4gYSBzcGVjaWZpZWQgcGFydCAobjptKSwgIgotICAgICAgICAgICAg
ICAgICAgInRoZSBudGggb2YgbSBwYXJ0cywgb2YgdGhlIGxheW91dCB0ZXN0cyIpKSwKLSAgICAg
ICAgIyBvbGQtcnVuLXdlYmtpdC10ZXN0cyBjYWxscyAtLWJhdGNoLXNpemU6IC0tbnRobHkgbgot
ICAgICAgICAjICAgUmVzdGFydCBEdW1wUmVuZGVyVHJlZSBldmVyeSBuIHRlc3RzIChkZWZhdWx0
OiAxMDAwKQotICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigiLS1iYXRjaC1zaXplIiwKLSAg
ICAgICAgICAgIGhlbHA9KCJSdW4gYSB0aGUgdGVzdHMgaW4gYmF0Y2hlcyAobiksIGFmdGVyIGV2
ZXJ5IG4gdGVzdHMsICIKLSAgICAgICAgICAgICAgICAgICJEdW1wUmVuZGVyVHJlZSBpcyByZWxh
dW5jaGVkLiIpKSwKLSAgICAgICAgIyBvbGQtcnVuLXdlYmtpdC10ZXN0cyBjYWxscyAtLXJ1bi1z
aW5nbHk6IC0xfC0tc2luZ2x5Ci0gICAgICAgICMgSXNvbGF0ZSBlYWNoIHRlc3QgY2FzZSBydW4g
KGltcGxpZXMgLS1udGhseSAxIC0tdmVyYm9zZSkKLSAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRp
b24oIi0tcnVuLXNpbmdseSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgICAgICBkZWZh
dWx0PUZhbHNlLCBoZWxwPSJydW4gYSBzZXBhcmF0ZSBEdW1wUmVuZGVyVHJlZSBmb3IgZWFjaCB0
ZXN0IiksCisgICAgICAgICAgICBoZWxwPSJSdW4gdGhlIHRlc3RzIGluIGEgcmFuZG9tIG9yZGVy
LiIpLAorICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigiLS1zaW5nbHkiLCBhY3Rpb249InN0
b3JlX3RydWUiLCBkZXN0PSJydW5fc2luZ2x5IiwKKyAgICAgICAgICAgIGhlbHA9IlJ1biBhIHNl
cGFyYXRlIER1bXBSZW5kZXJUcmVlIGZvciBlYWNoIHRlc3QiKSwKKyAgICAgICAgb3B0cGFyc2Uu
bWFrZV9vcHRpb24oIi0tbnRobHkiLCBkZXN0PSJiYXRjaF9zaXplIiwKKyAgICAgICAgICAgIGhl
bHA9IlJlc3RhcnQgRHVtcFJlbmRlclRyZWUgZXZlcnkgbiB0ZXN0cy4iKSwKKyAgICAgICAgIyBG
SVhNRTogRGlzcGxheSBkZWZhdWx0IG51bWJlciBvZiBjaGlsZCBwcm9jZXNzZXMgdGhhdCB3aWxs
IHJ1bi4KICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tY2hpbGQtcHJvY2Vzc2VzIiwK
ICAgICAgICAgICAgIGhlbHA9Ik51bWJlciBvZiBEdW1wUmVuZGVyVHJlZXMgdG8gcnVuIGluIHBh
cmFsbGVsLiIpLAotICAgICAgICAjIEZJWE1FOiBEaXNwbGF5IGRlZmF1bHQgbnVtYmVyIG9mIGNo
aWxkIHByb2Nlc3NlcyB0aGF0IHdpbGwgcnVuLgogICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlv
bigiLS1leHBlcmltZW50YWwtZnVsbHktcGFyYWxsZWwiLAotICAgICAgICAgICAgYWN0aW9uPSJz
dG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgIGhlbHA9InJ1biBhbGwgdGVz
dHMgaW4gcGFyYWxsZWwiKSwKKyAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9
IlJ1biB0ZXN0cyB3aXRoIHBlci1maWxlIHBhcmFsbGVsaXNtLiIpLAogICAgICAgICAjIEZJWE1F
OiBOZWVkIC0tZXhpdC1hZnRlci1uLWZhaWx1cmVzIE4KICAgICAgICAgIyAgICAgIEV4aXQgYWZ0
ZXIgdGhlIGZpcnN0IE4gZmFpbHVyZXMgaW5zdGVhZCBvZiBydW5uaW5nIGFsbCB0ZXN0cwogICAg
ICAgICAjIEZJWE1FOiBjb25zaWRlcjogLS1pdGVyYXRpb25zIG4KICAgICAgICAgIyAgICAgIE51
bWJlciBvZiB0aW1lcyB0byBydW4gdGhlIHNldCBvZiB0ZXN0cyAoZS5nLiBBQkNBQkNBQkMpCi0g
ICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLXByaW50LXVuZXhwZWN0ZWQtcmVzdWx0cyIs
IGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSJw
cmludCB0aGUgdGVzdHMgaW4gdGhlIGxhc3QgcnVuIHRoYXQgIgotICAgICAgICAgICAgImhhZCB1
bmV4cGVjdGVkIHJlc3VsdHMuIiksCi0gICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLXJl
dHJ5LXVuZXhwZWN0ZWQtcmVzdWx0cyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgICAg
ICBkZWZhdWx0PUZhbHNlLCBoZWxwPSJyZS10cnkgdGhlIHRlc3RzIGluIHRoZSBsYXN0IHJ1biB0
aGF0ICIKLSAgICAgICAgICAgICJoYWQgdW5leHBlY3RlZCByZXN1bHRzLiIpLAogICAgIF0KKyAg
ICBfYWRkX29wdGlvbl9ncm91cChwYXJzZXIsICJUZXN0IE9wdGlvbnMiLCB0ZXN0X29wdGlvbnMp
CisKKyAgICAjIFRoZXNlIHR3byBvcHRpb25zIGV4aXN0IG9ubHkgZm9yIHRoZSBDaHJvbWl1bSB2
YWxncmluZCBib3QgdG8gdXNlLgorICAgICMgdmFsZ3JpbmQgaXMgdG9vIHNsb3cgdG8gcnVuIG1v
cmUgdGhhbiBhIGZldyB0ZXN0cyBwZXIgYnVpbGQsIHNvCisgICAgIyB0aGUgYnVpbGRlciBydW5z
IGEgZGlmZmVyZW50IHNtYWxsIGNodW5rIGVhY2ggYnVpbGQuCisgICAgdGVzdF9ncm91cGluZ19v
cHRpb25zID0gWworICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigiLS1ydW4tY2h1bmsiLAor
ICAgICAgICAgICAgaGVscD0oIlJ1biBhIHNwZWNpZmllZCBjaHVuayAobjpsKSwgdGhlIG50aCBv
ZiBsZW4gbCwgIgorICAgICAgICAgICAgICAgICAib2YgdGhlIGxheW91dCB0ZXN0cyIpKSwKKyAg
ICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tcnVuLXBhcnQiLCBoZWxwPSgiUnVuIGEgc3Bl
Y2lmaWVkIHBhcnQgKG46bSksICIKKyAgICAgICAgICAgICAgICAgICJ0aGUgbnRoIG9mIG0gcGFy
dHMsIG9mIHRoZSBsYXlvdXQgdGVzdHMiKSksCisgICAgXQorICAgIF9hZGRfaGlkZGVuX29wdGlv
bnMocGFyc2VyLCB0ZXN0X2dyb3VwaW5nX29wdGlvbnMpCiAKICAgICBtaXNjX29wdGlvbnMgPSBb
CiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLWxpbnQtdGVzdC1maWxlcyIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsCiAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9KCJNYWtlcyBzdXJl
IHRoZSB0ZXN0IGZpbGVzIHBhcnNlIGZvciBhbGwgIgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJjb25maWd1cmF0aW9ucy4gRG9lcyBub3QgcnVuIGFueSB0ZXN0cy4iKSksCisgICAgICAg
ICMgRklYTUU6IFRoaXMgb3B0aW9uIGlzIGNvbmZ1c2luZ2x5IG5hbWVkLiBTb21lIG1heSBhc3N1
bWUgaXQgZW5hYmxlcworICAgICAgICAjIG9yIGRpc2FibGVzIHRoZSBidWlsdC1pbiByZXRyeSBi
ZWhhdmlvci4KKyAgICAgICAgIyBNYXliZSAtLXJldHJ5LWxhc3QtZmFpbHVyZXMsIC0tcHJpbnQt
bGFzdC1mYWlsdXJlcz8KKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tcHJpbnQtdW5l
eHBlY3RlZC1yZXN1bHRzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgIGhlbHA9
IlByaW50IHVuZXhwZWN0ZWQgZmFpbHVyZXMgZnJvbSB0aGUgbGFzdCBydW4uIiksCisgICAgICAg
IG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLXJldHJ5LXVuZXhwZWN0ZWQtcmVzdWx0cyIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICBoZWxwPSJSZXRyeSB1bmV4cGVjdGVkIGZhaWx1
cmVzIGZyb20gdGhlIGxhc3QgcnVuLiIpLAogICAgIF0KKyAgICBwYXJzZXIuYWRkX29wdGlvbnMo
bWlzY19vcHRpb25zKQogCi0gICAgIyBGSVhNRTogTW92ZSB0aGVzZSBpbnRvIGpzb25fcmVzdWx0
c19nZW5lcmF0b3IucHkKKyAgICAjIFRoZXNlIG9ubHkgZXhpc3QgZm9yIHRoZSBidWlsZCBib3Rz
IGZvciBnZW5lcmF0aW5nIHJlc3VsdHMuanNvbiBvdXRwdXQuCiAgICAgcmVzdWx0c19qc29uX29w
dGlvbnMgPSBbCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLWJ1aWxkZXItbmFtZSIs
IGRlZmF1bHQ9IkRVTU1ZX0JVSUxERVJfTkFNRSIsCi0gICAgICAgICAgICBoZWxwPSgiVGhlIG5h
bWUgb2YgdGhlIGJ1aWxkZXIgc2hvd24gb24gdGhlIHdhdGVyZmFsbCBydW5uaW5nICIKLSAgICAg
ICAgICAgICAgICAgICJ0aGlzIHNjcmlwdCBlLmcuIFdlYktpdC4iKSksCisgICAgICAgICAgICBo
ZWxwPSJCdWlsZGVyIG5hbWUgYXMgc2hvd24gb24gdGhlIG9uIHRoZSB3YXRlcmZhbGwgZS5nLiBX
ZWJLaXQuIiksCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLWJ1aWxkLW5hbWUiLCBk
ZWZhdWx0PSJEVU1NWV9CVUlMRF9OQU1FIiwKLSAgICAgICAgICAgIGhlbHA9KCJUaGUgbmFtZSBv
ZiB0aGUgYnVpbGRlciB1c2VkIGluIGl0cyBwYXRoLCBlLmcuICIKLSAgICAgICAgICAgICAgICAg
ICJ3ZWJraXQtcmVsLiIpKSwKKyAgICAgICAgICAgIGhlbHA9IkJ1aWxkZXIgbmFtZSBhcyB1c2Vk
IGluIHVybHMsIGUuZy4gd2Via2l0LXJlbC4iKSwKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRp
b24oIi0tYnVpbGQtbnVtYmVyIiwgZGVmYXVsdD0iRFVNTVlfQlVJTERfTlVNQkVSIiwKLSAgICAg
ICAgICAgIGhlbHA9KCJUaGUgYnVpbGQgbnVtYmVyIG9mIHRoZSBidWlsZGVyIHJ1bm5pbmcgdGhp
cyBzY3JpcHQuIikpLAorICAgICAgICAgICAgaGVscD0iQnVpbGRib3QncyBidWlsZCBudW1iZXIg
Zm9yIHRoaXMgYnVpbGQuIiksCisgICAgXQorICAgIF9hZGRfaGlkZGVuX29wdGlvbnMocGFyc2Vy
LCByZXN1bHRzX2pzb25fb3B0aW9ucykKKworICAgIGRlcHJlY2F0ZWRfb3B0aW9ucyA9IFsKKyAg
ICAgICAgX2RlcHJlY2F0ZWRfb3B0aW9uKHBhcnNlciwgIi0tYmF0Y2gtc2l6ZSIsIG5ld19vcHRp
b249Ii0tbnRobHkiKSwKKyAgICAgICAgX2RlcHJlY2F0ZWRfb3B0aW9uKHBhcnNlciwgIi0tY2xv
YmJlci1vbGQtcmVzdWx0cyIsIG5ld19vcHRpb249Ii0tcmVzZXQtcmVzdWx0cyIpLAorICAgICAg
ICBfZGVwcmVjYXRlZF9vcHRpb24ocGFyc2VyLCAiLS1ub3Nob3ctcmVzdWx0cyIsIG5ld19vcHRp
b249Ii0tbm8tc2hvdy1yZXN1bHRzIiksCisgICAgICAgIF9kZXByZWNhdGVkX29wdGlvbihwYXJz
ZXIsICItLW5vLWxhdW5jaC1zYWZhcmkiLCBuZXdfb3B0aW9uPSItLW5vLXNob3ctcmVzdWx0cyIp
LAorICAgICAgICBfZGVwcmVjYXRlZF9vcHRpb24ocGFyc2VyLCAiLS1yYW5kb20iLCBuZXdfb3B0
aW9uPSItLXJhbmRvbWl6ZS1vcmRlciIpLAorICAgICAgICBfZGVwcmVjYXRlZF9vcHRpb24ocGFy
c2VyLCAiLS1ydW4tc2luZ2x5IiwgbmV3X29wdGlvbj0iLS1zaW5nbHkiKSwKKyAgICAgICAgX2Rl
cHJlY2F0ZWRfb3B0aW9uKHBhcnNlciwgIi10IiwgIi0tdGFyZ2V0IiwgbmV3X29wdGlvbj0iLS1j
b25maWd1cmF0aW9uIiksCiAgICAgXQorICAgIF9hZGRfaGlkZGVuX29wdGlvbnMocGFyc2VyLCBk
ZXByZWNhdGVkX29wdGlvbnMpCiAKLSAgICBvcHRpb25fbGlzdCA9IChjb25maWd1cmF0aW9uX29w
dGlvbnMgKyBsb2dnaW5nX29wdGlvbnMgKwotICAgICAgICAgICAgICAgICAgIGNocm9taXVtX29w
dGlvbnMgKyByZXN1bHRzX29wdGlvbnMgKyB0ZXN0X29wdGlvbnMgKwotICAgICAgICAgICAgICAg
ICAgIG1pc2Nfb3B0aW9ucyArIHJlc3VsdHNfanNvbl9vcHRpb25zICsKLSAgICAgICAgICAgICAg
ICAgICBvbGRfcnVuX3dlYmtpdF90ZXN0c19jb21wYXQpCi0gICAgb3B0aW9uX3BhcnNlciA9IG9w
dHBhcnNlLk9wdGlvblBhcnNlcihvcHRpb25fbGlzdD1vcHRpb25fbGlzdCkKLSAgICByZXR1cm4g
b3B0aW9uX3BhcnNlci5wYXJzZV9hcmdzKGFyZ3MpCisgICAgcmV0dXJuIHBhcnNlci5wYXJzZV9h
cmdzKGFyZ3MpCiAKIGlmICdfX21haW5fXycgPT0gX19uYW1lX186CiAgICAgb3B0aW9ucywgYXJn
cyA9IHBhcnNlX2FyZ3MoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weSBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3Qu
cHkKaW5kZXggNmYwZmFhYy4uYzgyNGUxZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQorKysg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rl
c3RzX3VuaXR0ZXN0LnB5CkBAIC01Niw1ICs1NiwyOSBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tbG9n
JywgJ3VuZXhwZWN0ZWQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdm
YXN0L2h0bWwnXSkpCiAKLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3Qu
bWFpbigpCisKK2NsYXNzIE9wdGlvblBhcnNpbmdUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAg
ICBkZWYgX2Fzc2VydF9uYW1lX3NwbGl0KHNlbGYsIG9wdGlvbl9uYW1lLCBleHBlY3RlZF9wcmVm
aXgsIGV4cGVjdGVkX25hbWUpOgorICAgICAgICBwcmVmaXgsIG5hbWUgPSBydW5fd2Via2l0X3Rl
c3RzLl9zcGxpdF9vcHRpb25fbmFtZShvcHRpb25fbmFtZSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChwcmVmaXgsIGV4cGVjdGVkX3ByZWZpeCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChu
YW1lLCBleHBlY3RlZF9uYW1lKQorCisgICAgZGVmIHRlc3Rfb3B0aW9uX3NvcnRpbmcoc2VsZik6
CisgICAgICAgIHNlbGYuX2Fzc2VydF9uYW1lX3NwbGl0KCItbiIsICItIiwgIm4iKQorICAgICAg
ICBzZWxmLl9hc3NlcnRfbmFtZV9zcGxpdCgiLS1uYW1lIiwgIi0tIiwgIm5hbWUiKQorICAgICAg
ICBzZWxmLl9hc3NlcnRfbmFtZV9zcGxpdCgiLS1uby1uYW1lIiwgIi0tbm8tIiwgIm5hbWUiKQor
CisgICAgICAgIG9wdGlvbnMgPSBbCisgICAgICAgICAgICAiLS1uby1hYmMiLAorICAgICAgICAg
ICAgIi1hIiwKKyAgICAgICAgICAgICItLXh5eiIsCisgICAgICAgICAgICAiLS1hYmMiLAorICAg
ICAgICBdCisgICAgICAgIGV4cGVjdGVkX3NvcnQgPSBbCisgICAgICAgICAgICAiLWEiLAorICAg
ICAgICAgICAgIi0tYWJjIiwKKyAgICAgICAgICAgICItLW5vLWFiYyIsCisgICAgICAgICAgICAi
LS14eXoiLAorICAgICAgICBdCisgICAgICAgIG9wdGlvbnMuc29ydChydW5fd2Via2l0X3Rlc3Rz
Ll9jb21wYXJlX29wdGlvbl9uYW1lcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25z
LCBleHBlY3RlZF9zb3J0KQo=
</data>
<flag name="review"
          id="37554"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>