<?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>35416</bug_id>
          
          <creation_ts>2010-02-25 18:51:23 -0800</creation_ts>
          <short_desc>new-run-webkit-tests: split Port.check_sys_deps() into two calls</short_desc>
          <delta_ts>2010-03-01 12:41:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>cjerdonek</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>levin</cc>
    
    <cc>ojan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>193980</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-02-25 18:51:23 -0800</bug_when>
    <thetext>Currently there is a circular dependency between Port.check_sys_deps() and Port.start_helper() - you need to start the helper before check_sys_deps() will pass on chromium windows, but that gives you no way to check if the helper has been built (since that would be done in check_sys_deps() ).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193981</commentid>
    <comment_count>1</comment_count>
      <attachid>49559</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-02-25 18:53:02 -0800</bug_when>
    <thetext>Created attachment 49559
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194336</commentid>
    <comment_count>2</comment_count>
      <attachid>49559</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-02-26 15:22:32 -0800</bug_when>
    <thetext>Comment on attachment 49559
Patch

Just a couple nits.

&gt; +++ b/WebKitTools/ChangeLog
&gt; +        Add Port.check_build() call that is separate from Port.check_sys_deps()
&gt; +        (and add a --nocheck-build flag to skip).

Do we need a --nocheck-build flag? Unlike checking system dependencies, if we can&apos;t find DRT/TestShell, then this script really can&apos;t do anything useful.

&gt; +++ b/WebKitTools/Scripts/webkitpy/layout_tests/port/base.py
&gt;      def start_helper(self):
&gt; -        &quot;&quot;&quot;Start a layout test helper if needed on this port. The test helper
&gt; -        is used to reconfigure graphics settings and do other things that
&gt; -        may be necessary to ensure a known test configuration.&quot;&quot;&quot;
&gt; -        raise NotImplementedError(&apos;Port.start_helper&apos;)
&gt; +        &quot;&quot;&quot;If a port needs to reconfigure graphics settings or do other
&gt; +        things to ensure a known test configuration, it should override this
&gt; +        method. The helper can be skipped with --nostart-helper.&quot;&quot;&quot;
&gt; +        pass

&gt; +++ b/WebKitTools/Scripts/webkitpy/layout_tests/port/chromium.py
&gt; @@ -42,10 +42,14 @@ import http_server
&gt;  import websocket_server
&gt;  
&gt;  
&gt; -def check_file_exists(path_to_file, str):
&gt; +def check_file_exists(path_to_file, exe_str, override_str=None):
Documenting these arguments would help. I&apos;m not really sure what exe_str and override_str are.Now that I look at how it&apos;s used, names like &quot;exe_description&quot; and &quot;override_description&quot; might be a bit more clear.

&gt; @@ -1621,6 +1630,9 @@ def parse_args(args=None):
&gt; +    option_parser.add_option(&quot;&quot;, &quot;--nocheck-build&quot;,
&gt; +                             action=&quot;store_true&quot;, default=False,
&gt; +                             help=&quot;don&apos;t check that the build is up to date&quot;)
&gt;      option_parser.add_option(&quot;&quot;, &quot;--nostart-helper&quot;,
&gt;                               action=&quot;store_true&quot;, default=False,
&gt;                               help=&quot;don&apos;t run layout_test_helper&quot;)

I know you&apos;re not adding it in this change, but do we need --nostart-helper? When would you ever want to run the tests without the start helper?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194338</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-02-26 15:26:57 -0800</bug_when>
    <thetext>(In reply to comment #2)

I could see that maybe --nocheck-build and --nostart-helper are too esoteric (they are useful if you want to run the &apos;passing-*&apos; platforms, which stub out TestShell and don&apos;t need the layout_test_helper.

I will update the arg names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194344</commentid>
    <comment_count>4</comment_count>
      <attachid>49657</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-02-26 15:46:09 -0800</bug_when>
    <thetext>Created attachment 49657
patch revised w/ ojan&apos;s feedback: removed --nocheck-build and --nostart-helper flags</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194366</commentid>
    <comment_count>5</comment_count>
      <attachid>49657</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-02-26 17:09:40 -0800</bug_when>
    <thetext>Comment on attachment 49657
patch revised w/ ojan&apos;s feedback: removed --nocheck-build and --nostart-helper flags

Please update the changelog description. Otherwise, LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194437</commentid>
    <comment_count>6</comment_count>
      <attachid>49657</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-26 20:26:34 -0800</bug_when>
    <thetext>Comment on attachment 49657
patch revised w/ ojan&apos;s feedback: removed --nocheck-build and --nostart-helper flags

Rejecting patch 49657 from commit-queue.

Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;]&quot; exit_code: 1
Last 500 characters of output:
M	WebKitTools/Scripts/webkitpy/layout_tests/run_webkit_tests.py
	M	WebKitTools/Scripts/webkitpy/thirdparty/autoinstall.py
A repository hook failed: MERGE request failed on &apos;/repository/webkit/trunk&apos;: Commit blocked by pre-commit hook (exit code 1) with output:
svnlook: Can&apos;t write to stream: Broken pipe

    The following ChangeLog files contain OOPS:

        trunk/WebKitTools/ChangeLog

    Please don&apos;t ever say &quot;OOPS&quot; in a ChangeLog file.
 at /usr/local/git/libexec/git-core/git-svn line 558


Full output: http://webkit-commit-queue.appspot.com/results/314824</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194743</commentid>
    <comment_count>7</comment_count>
      <attachid>49657</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-03-01 11:32:08 -0800</bug_when>
    <thetext>Comment on attachment 49657
patch revised w/ ojan&apos;s feedback: removed --nocheck-build and --nostart-helper flags

If possible avoid the comparisons to 0 (several places have &quot;!= 0&quot;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194770</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-03-01 12:41:38 -0800</bug_when>
    <thetext>Committed r55373: &lt;http://trac.webkit.org/changeset/55373&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49559</attachid>
            <date>2010-02-25 18:53:02 -0800</date>
            <delta_ts>2010-02-26 15:46:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-35416-20100225185301.patch</filename>
            <type>text/plain</type>
            <size>22025</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAzOGE3YzYwLi44ZDdjNDk4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDAgQEAKIDIwMTAtMDIt
MjUgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR2VuZXJhbCBjbGVhbnVwIG9mIGVycm9y
IGhhbmRsaW5nIGluIG5ldy1ydW4td2Via2l0LXRlc3RzLgorCisgICAgICAgIEFkZCBQb3J0LmNo
ZWNrX2J1aWxkKCkgY2FsbCB0aGF0IGlzIHNlcGFyYXRlIGZyb20gUG9ydC5jaGVja19zeXNfZGVw
cygpCisgICAgICAgIChhbmQgYWRkIGEgLS1ub2NoZWNrLWJ1aWxkIGZsYWcgdG8gc2tpcCkuIFRo
aXMgYnJlYWtzIGEgY2lyY3VsYXIKKyAgICAgICAgZGVwZW5kZW5jeSB3aGVyZSB5b3Ugd291bGQg
c3RhcnQgdGhlIGxheW91dCB0ZXN0IGhlbHBlciBiZWZvcmUKKyAgICAgICAgY2hlY2tpbmcgc3lz
IGRlcHMsIGJ1dCBjaGVja2luZyBzeXMgZGVwcyB3YXMgdGhlIHRoaW5nIHRoYXQgdG9sZAorICAg
ICAgICB5b3UgaWYgeW91ciBiaW5hcmllcyB3aGVyZSB0aGVyZS4KKworICAgICAgICBBbHNvLCBt
YWRlIFBvcnQuY2hlY2tfc3lzX2RlcHMoKSwgc3RhcnRfaGVscGVyKCkgYW5kIHN0b3BfaGVscGVy
KCkKKyAgICAgICAgb3B0aW9uYWwgYnkgcHJvdmlkaW5nIGRlZmF1bHQgaW1wbGVtZW50YXRpb25z
IGluIHRoZSBiYXNlIGNsYXNzCisgICAgICAgIHJhdGhlciB0aGFuIHJlcXVpcmluZyBwb3J0cyB0
byBpbXBsZW1lbnQgdGhlIHJvdXRpbmVzIHJlZ2FyZGxlc3MKKyAgICAgICAgb2Ygd2hldGhlciBv
ciBub3QgdGhleSB3ZXJlIG5lZWRlZC4KKworICAgICAgICBMYXN0bHksIHR3ZWFrIGEgYnVuY2gg
b2YgbG9nIG1lc3NhZ2VzIHRvIGJlIGNsZWFuZXIsIGluY2x1ZGluZworICAgICAgICBjaGFuZ2lu
ZyBtZXNzYWdlcyBpbiB0aGlyZHBhcnR5L2F1dG9pbnN0YWxsLnB5IHRvIGJlIHNpbGVudCBhdAor
ICAgICAgICB0aGUgZGVmYXVsdCBsb2cgbGV2ZWwuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU0MTYKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5OgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5OgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbGludXgu
cHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV9tYWMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9j
aHJvbWl1bV93aW4ucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9tYWMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9wYXNzaW5nLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvdGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5f
d2Via2l0X3Rlc3RzLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9h
dXRvaW5zdGFsbC5weQorCisyMDEwLTAyLTI1ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21p
dW0ub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgogCiAgICAgICAgIEFk
ZCBhICdwYXNzaW5nJyBwb3J0IGltcGxlbWVudGF0aW9uIHRvIG5ldy1ydW4td2Via2l0LXRlc3Rz
IHRoYXQKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5IGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlv
bnMucHkKaW5kZXggMDFhZGQ2Mi4uMDE0MTc1ZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlv
bnMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5
b3V0X3BhY2thZ2UvdGVzdF9leHBlY3RhdGlvbnMucHkKQEAgLTYzMywxMSArNjMzLDEzIEBAIGNs
YXNzIFRlc3RFeHBlY3RhdGlvbnNGaWxlOgogICAgICAgICAgICAgICAgIGJ1aWxkX3R5cGUgPSAn
REVCVUcnCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGJ1aWxkX3R5cGUgPSAn
UkVMRUFTRScKLSAgICAgICAgICAgIHByaW50ICJcbkZBSUxVUkVTIEZPUiBQTEFURk9STTogJXMs
IEJVSUxEX1RZUEU6ICVzIiBcCi0gICAgICAgICAgICAgICAgJSAoc2VsZi5fdGVzdF9wbGF0Zm9y
bV9uYW1lLnVwcGVyKCksIGJ1aWxkX3R5cGUpCisgICAgICAgICAgICBsb2dnaW5nLmVycm9yKCcn
KQorICAgICAgICAgICAgbG9nZ2luZy5lcnJvcigiRkFJTFVSRVMgRk9SIFBMQVRGT1JNOiAlcywg
QlVJTERfVFlQRTogJXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuX3Rlc3Rf
cGxhdGZvcm1fbmFtZS51cHBlcigpLCBidWlsZF90eXBlKSkKIAogICAgICAgICAgICAgZm9yIGVy
cm9yIGluIHNlbGYuX25vbl9mYXRhbF9lcnJvcnM6CiAgICAgICAgICAgICAgICAgbG9nZ2luZy5l
cnJvcihlcnJvcikKKyAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygnJykKICAgICAgICAgICAg
IGlmIGxlbihzZWxmLl9lcnJvcnMpOgogICAgICAgICAgICAgICAgIHJhaXNlIFN5bnRheEVycm9y
KCdcbicuam9pbihtYXAoc3RyLCBzZWxmLl9lcnJvcnMpKSkKIApkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CmluZGV4IGNi
MWUwZTkuLjJjNmNmOGYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKQEAgLTY4LDEyICs2OCwxOSBAQCBjbGFzcyBQ
b3J0KG9iamVjdCk6CiAgICAgICAgIGJhc2VsaW5lcy4gVGhlIGRpcmVjdG9yaWVzIGFyZSBzZWFy
Y2hlZCBpbiBvcmRlci4iIiIKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignUG9y
dC5iYXNlbGluZV9zZWFyY2hfcGF0aCcpCiAKKyAgICBkZWYgY2hlY2tfYnVpbGQoc2VsZiwgbmVl
ZHNfaHR0cCk6CisgICAgICAgICIiIlRoaXMgcm91dGluZSBpcyB1c2VkIHRvIGVuc3VyZSB0aGF0
IHRoZSBidWlsZCBpcyB1cCB0byBkYXRlCisgICAgICAgIGFuZCBhbGwgdGhlIG5lZWRlZCBiaW5h
cmllcyBhcmUgcHJlc2VudC4gVGhpcyBzdGVwIGNhbiBiZSBza2lwcGVkCisgICAgICAgIHdpdGgg
LS1ub2NoZWNrLWJ1aWxkLiIiIgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdQ
b3J0LmNoZWNrX2J1aWxkJykKKwogICAgIGRlZiBjaGVja19zeXNfZGVwcyhzZWxmLCBuZWVkc19o
dHRwKToKICAgICAgICAgIiIiSWYgdGhlIHBvcnQgbmVlZHMgdG8gZG8gc29tZSBydW50aW1lIGNo
ZWNrcyB0byBlbnN1cmUgdGhhdCB0aGUKLSAgICAgICAgdGVzdHMgY2FuIGJlIHJ1biBzdWNjZXNz
ZnVsbHksIHRoZXkgc2hvdWxkIGJlIGRvbmUgaGVyZS4KKyAgICAgICAgdGVzdHMgY2FuIGJlIHJ1
biBzdWNjZXNzZnVsbHksIGl0IHNob3VsZCBvdmVycmlkZSB0aGlzIHJvdXRpbmUuCisgICAgICAg
IFRoaXMgc3RlcCBjYW4gYmUgc2tpcHBlZCB3aXRoIC0tbm9jaGVjay1zeXMtZGVwcy4KIAogICAg
ICAgICBSZXR1cm5zIHdoZXRoZXIgdGhlIHN5c3RlbSBpcyBwcm9wZXJseSBjb25maWd1cmVkLiIi
IgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdQb3J0LmNoZWNrX3N5c19kZXBz
JykKKyAgICAgICAgcmV0dXJuIFRydWUKIAogICAgIGRlZiBjb21wYXJlX3RleHQoc2VsZiwgYWN0
dWFsX3RleHQsIGV4cGVjdGVkX3RleHQpOgogICAgICAgICAiIiJSZXR1cm4gd2hldGhlciBvciBu
b3QgdGhlIHR3byBzdHJpbmdzIGFyZSAqbm90KiBlcXVhbC4gVGhpcwpAQCAtMzgxLDEwICszODgs
MTAgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVy
cm9yKCdQb3J0LnN0YXJ0X2RyaXZlcicpCiAKICAgICBkZWYgc3RhcnRfaGVscGVyKHNlbGYpOgot
ICAgICAgICAiIiJTdGFydCBhIGxheW91dCB0ZXN0IGhlbHBlciBpZiBuZWVkZWQgb24gdGhpcyBw
b3J0LiBUaGUgdGVzdCBoZWxwZXIKLSAgICAgICAgaXMgdXNlZCB0byByZWNvbmZpZ3VyZSBncmFw
aGljcyBzZXR0aW5ncyBhbmQgZG8gb3RoZXIgdGhpbmdzIHRoYXQKLSAgICAgICAgbWF5IGJlIG5l
Y2Vzc2FyeSB0byBlbnN1cmUgYSBrbm93biB0ZXN0IGNvbmZpZ3VyYXRpb24uIiIiCi0gICAgICAg
IHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ1BvcnQuc3RhcnRfaGVscGVyJykKKyAgICAgICAg
IiIiSWYgYSBwb3J0IG5lZWRzIHRvIHJlY29uZmlndXJlIGdyYXBoaWNzIHNldHRpbmdzIG9yIGRv
IG90aGVyCisgICAgICAgIHRoaW5ncyB0byBlbnN1cmUgYSBrbm93biB0ZXN0IGNvbmZpZ3VyYXRp
b24sIGl0IHNob3VsZCBvdmVycmlkZSB0aGlzCisgICAgICAgIG1ldGhvZC4gVGhlIGhlbHBlciBj
YW4gYmUgc2tpcHBlZCB3aXRoIC0tbm9zdGFydC1oZWxwZXIuIiIiCisgICAgICAgIHBhc3MKIAog
ICAgIGRlZiBzdGFydF9odHRwX3NlcnZlcihzZWxmKToKICAgICAgICAgIiIiU3RhcnQgYSB3ZWIg
c2VydmVyIGlmIGl0IGlzIGF2YWlsYWJsZS4gRG8gbm90aGluZyBpZgpAQCAtNDA4LDggKzQxNSw5
IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKIAogICAgIGRlZiBzdG9wX2hlbHBlcihzZWxmKToKICAg
ICAgICAgIiIiU2h1dCBkb3duIHRoZSB0ZXN0IGhlbHBlciBpZiBpdCBpcyBydW5uaW5nLiBEbyBu
b3RoaW5nIGlmCi0gICAgICAgIGl0IGlzbid0LCBvciBpdCBpc24ndCBhdmFpbGFibGUuIiIiCi0g
ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ1BvcnQuc3RvcF9oZWxwZXInKQorICAg
ICAgICBpdCBpc24ndCwgb3IgaXQgaXNuJ3QgYXZhaWxhYmxlLiBJZiBhIHBvcnQgb3ZlcnJpZGVz
IHN0YXJ0X2hlbHBlcigpCisgICAgICAgIGl0IG11c3Qgb3ZlcnJpZGUgdGhpcyByb3V0aW5lIGFz
IHdlbGwuIiIiCisgICAgICAgIHBhc3MKIAogICAgIGRlZiBzdG9wX2h0dHBfc2VydmVyKHNlbGYp
OgogICAgICAgICAiIiJTaHV0IGRvd24gdGhlIGh0dHAgc2VydmVyIGlmIGl0IGlzIHJ1bm5pbmcu
IERvIG5vdGhpbmcgaWYKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CmluZGV4IGM4MWQwYTcuLjQ2OWQzNmQg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW0ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bS5weQpAQCAtNDIsMTAgKzQyLDE0IEBAIGltcG9ydCBodHRwX3Nl
cnZlcgogaW1wb3J0IHdlYnNvY2tldF9zZXJ2ZXIKIAogCi1kZWYgY2hlY2tfZmlsZV9leGlzdHMo
cGF0aF90b19maWxlLCBzdHIpOgorZGVmIGNoZWNrX2ZpbGVfZXhpc3RzKHBhdGhfdG9fZmlsZSwg
ZXhlX3N0ciwgb3ZlcnJpZGVfc3RyPU5vbmUpOgogICAgICIiIlZlcmlmeSB0aGUgZXhlY3V0YWJs
ZSBpcyBwcmVzZW50IHdoZXJlIGV4cGVjdGVkIG9yIGxvZyBhbiBlcnJvci4iIiIKICAgICBpZiBu
b3Qgb3MucGF0aC5leGlzdHMocGF0aF90b19maWxlKToKLSAgICAgICAgbG9nZ2luZy5lcnJvcign
VW5hYmxlIHRvIGZpbmQgJXMgYXQgJXMnICUgKHN0ciwgcGF0aF90b19maWxlKSkKKyAgICAgICAg
bG9nZ2luZy5lcnJvcignVW5hYmxlIHRvIGZpbmQgJXMnICUgZXhlX3N0cikKKyAgICAgICAgbG9n
Z2luZy5lcnJvcignICAgIGF0ICVzJyAlIHBhdGhfdG9fZmlsZSkKKyAgICAgICAgaWYgb3ZlcnJp
ZGVfc3RyOgorICAgICAgICAgICAgbG9nZ2luZy5lcnJvcignICAgICVzJyAlIG92ZXJyaWRlX3N0
cikKKyAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoJycpCiAgICAgICAgIHJldHVybiBGYWxzZQog
ICAgIHJldHVybiBUcnVlCiAKQEAgLTYwLDM2ICs2NCwzOSBAQCBjbGFzcyBDaHJvbWl1bVBvcnQo
YmFzZS5Qb3J0KToKICAgICBkZWYgYmFzZWxpbmVfcGF0aChzZWxmKToKICAgICAgICAgcmV0dXJu
IHNlbGYuX2Nocm9taXVtX2Jhc2VsaW5lX3BhdGgoc2VsZi5fbmFtZSkKIAotICAgIGRlZiBjaGVj
a19zeXNfZGVwcyhzZWxmLCBuZWVkc19odHRwKToKKyAgICBkZWYgY2hlY2tfYnVpbGQoc2VsZiwg
bmVlZHNfaHR0cCk6CiAgICAgICAgIHJlc3VsdCA9IFRydWUKICAgICAgICAgdGVzdF9zaGVsbF9i
aW5hcnlfcGF0aCA9IHNlbGYuX3BhdGhfdG9fZHJpdmVyKCkKICAgICAgICAgcmVzdWx0ID0gY2hl
Y2tfZmlsZV9leGlzdHModGVzdF9zaGVsbF9iaW5hcnlfcGF0aCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ3Rlc3QgZHJpdmVyJykKICAgICAgICAgaWYgcmVzdWx0OgotICAg
ICAgICAgICAgcmVzdWx0ID0gKHNlbGYuX2NoZWNrX2J1aWxkX3VwX3RvX2RhdGUoc2VsZi5fb3B0
aW9ucy50YXJnZXQpCisgICAgICAgICAgICByZXN1bHQgPSAoc2VsZi5fY2hlY2tfZHJpdmVyX2J1
aWxkX3VwX3RvX2RhdGUoc2VsZi5fb3B0aW9ucy50YXJnZXQpCiAgICAgICAgICAgICAgICAgICAg
ICAgYW5kIHJlc3VsdCkKLQotICAgICAgICAgICAgcHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oW3Rl
c3Rfc2hlbGxfYmluYXJ5X3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJy0tY2hlY2stbGF5b3V0LXRlc3Qtc3lzLWRlcHMnXSkKLSAgICAgICAgICAgIGlmIHByb2Mu
d2FpdCgpICE9IDA6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5lcnJvcignU3lzdGVtIGRlcGVu
ZGVuY2llcyBjaGVjayBmYWlsZWQuJykKLSAgICAgICAgICAgICAgICBsb2dnaW5nLmVycm9yKCdU
byBvdmVycmlkZSwgaW52b2tlIHdpdGggLS1ub2NoZWNrLXN5cy1kZXBzJykKLSAgICAgICAgICAg
ICAgICBsb2dnaW5nLmVycm9yKCcnKQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IEZhbHNlCi0K
ICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoJycpCiAKKyAgICAgICAg
aWYgbm90IHNlbGYuX29wdGlvbnMubm9zdGFydF9oZWxwZXI6CisgICAgICAgICAgICBoZWxwZXJf
cGF0aCA9IHNlbGYuX3BhdGhfdG9faGVscGVyKCkKKyAgICAgICAgICAgIHJlc3VsdCA9IGNoZWNr
X2ZpbGVfZXhpc3RzKGhlbHBlcl9wYXRoLCAnbGF5b3V0IHRlc3QgaGVscGVyJywKKyAgICAgICAg
ICAgICAgICAnVG8gb3ZlcnJpZGUsIGludm9rZSB3aXRoIC0tbm9zdGFydC1oZWxwZXInKSBhbmQg
cmVzdWx0CiAKICAgICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMubm9fcGl4ZWxfdGVzdHM6CiAg
ICAgICAgICAgICBpbWFnZV9kaWZmX3BhdGggPSBzZWxmLl9wYXRoX3RvX2ltYWdlX2RpZmYoKQot
ICAgICAgICAgICAgaWYgbm90IGNoZWNrX2ZpbGVfZXhpc3RzKGltYWdlX2RpZmZfcGF0aCwgJ2lt
YWdlIGRpZmYgZXhlJyk6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5lcnJvcignVG8gb3ZlcnJp
ZGUsIGludm9rZSB3aXRoIC0tbm8tcGl4ZWwtdGVzdHMnKQotICAgICAgICAgICAgICAgIGxvZ2dp
bmcuZXJyb3IoJycpCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gRmFsc2UKKyAgICAgICAgICAg
IHJlc3VsdCA9IGNoZWNrX2ZpbGVfZXhpc3RzKGltYWdlX2RpZmZfcGF0aCwgJ2ltYWdlIGRpZmYg
ZXhlJywKKyAgICAgICAgICAgICAgICAnVG8gb3ZlcnJpZGUsIGludm9rZSB3aXRoIC0tbm8tcGl4
ZWwtdGVzdHMnKSBhbmQgcmVzdWx0CiAKICAgICAgICAgcmV0dXJuIHJlc3VsdAogCisgICAgZGVm
IGNoZWNrX3N5c19kZXBzKHNlbGYsIG5lZWRzX2h0dHApOgorICAgICAgICBwcm9jID0gc3VicHJv
Y2Vzcy5Qb3BlbihbdGVzdF9zaGVsbF9iaW5hcnlfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJy0tY2hlY2stbGF5b3V0LXRlc3Qtc3lzLWRlcHMnXSkKKyAgICAgICAgaWYg
cHJvYy53YWl0KCkgIT0gMDoKKyAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoJ1N5c3RlbSBkZXBl
bmRlbmNpZXMgY2hlY2sgZmFpbGVkLicpCisgICAgICAgICAgICBsb2dnaW5nLmVycm9yKCdUbyBv
dmVycmlkZSwgaW52b2tlIHdpdGggLS1ub2NoZWNrLXN5cy1kZXBzJykKKyAgICAgICAgICAgIGxv
Z2dpbmcuZXJyb3IoJycpCisgICAgICAgICAgICByZXN1bHQgPSBGYWxzZQorICAgICAgICByZXR1
cm4gVHJ1ZQorCiAgICAgZGVmIGNvbXBhcmVfdGV4dChzZWxmLCBhY3R1YWxfdGV4dCwgZXhwZWN0
ZWRfdGV4dCk6CiAgICAgICAgIHJldHVybiBhY3R1YWxfdGV4dCAhPSBleHBlY3RlZF90ZXh0CiAK
QEAgLTE2NCw3ICsxNzEsNyBAQCBjbGFzcyBDaHJvbWl1bVBvcnQoYmFzZS5Qb3J0KToKICAgICAj
IG9yIGFueSBzdWJjbGFzc2VzLgogICAgICMKIAotICAgIGRlZiBfY2hlY2tfYnVpbGRfdXBfdG9f
ZGF0ZShzZWxmLCB0YXJnZXQpOgorICAgIGRlZiBfY2hlY2tfZHJpdmVyX2J1aWxkX3VwX3RvX2Rh
dGUoc2VsZiwgdGFyZ2V0KToKICAgICAgICAgaWYgdGFyZ2V0IGluICgnRGVidWcnLCAnUmVsZWFz
ZScpOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGRlYnVnX3BhdGggPSBzZWxm
Ll9wYXRoX3RvX2RyaXZlcignRGVidWcnKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eC5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbGludXgucHkK
aW5kZXggNzQ5NTU3Mi4uNTNkZjM0OCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eC5weQorKysgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xpbnV4LnB5
CkBAIC01NCw4ICs1NCw4IEBAIGNsYXNzIENocm9taXVtTGludXhQb3J0KGNocm9taXVtLkNocm9t
aXVtUG9ydCk6CiAgICAgICAgICAgICAgICAgc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoJ3dp
bicpLAogICAgICAgICAgICAgICAgIHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdtYWMnKV0K
IAotICAgIGRlZiBjaGVja19zeXNfZGVwcyhzZWxmLCBuZWVkc19odHRwKToKLSAgICAgICAgcmVz
dWx0ID0gY2hyb21pdW0uQ2hyb21pdW1Qb3J0LmNoZWNrX3N5c19kZXBzKHNlbGYsIG5lZWRzX2h0
dHApCisgICAgZGVmIGNoZWNrX2J1aWxkKHNlbGYsIG5lZWRzX2h0dHApOgorICAgICAgICByZXN1
bHQgPSBjaHJvbWl1bS5DaHJvbWl1bVBvcnQuY2hlY2tfYnVpbGQoc2VsZiwgbmVlZHNfaHR0cCkK
ICAgICAgICAgaWYgbmVlZHNfaHR0cDoKICAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMudXNl
X2FwYWNoZToKICAgICAgICAgICAgICAgICByZXN1bHQgPSBzZWxmLl9jaGVja19hcGFjaGVfaW5z
dGFsbCgpIGFuZCByZXN1bHQKQEAgLTEwMSw3ICsxMDEsNyBAQCBjbGFzcyBDaHJvbWl1bUxpbnV4
UG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgICAgICByZXN1bHQgPSBjaHJvbWl1bS5j
aGVja19maWxlX2V4aXN0cyhzZWxmLl9wYXRoX3RvX2FwYWNoZV9jb25maWdfZmlsZSgpLAogICAg
ICAgICAgICAgImFwYWNoZTIgY29uZmlnIGZpbGUiKSBhbmQgcmVzdWx0CiAgICAgICAgIGlmIG5v
dCByZXN1bHQ6Ci0gICAgICAgICAgICBsb2dnaW5nLmVycm9yKCdQbGVhc2UgaW5zdGFsbCB1c2lu
ZzogInN1ZG8gYXB0LWdldCBpbnN0YWxsICcKKyAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoJyAg
ICBQbGVhc2UgaW5zdGFsbCB1c2luZzogInN1ZG8gYXB0LWdldCBpbnN0YWxsICcKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2FwYWNoZTIgbGliYXBhY2hlMi1tb2QtcGhwNSInKQogICAgICAg
ICAgICAgbG9nZ2luZy5lcnJvcignJykKICAgICAgICAgcmV0dXJuIHJlc3VsdApAQCAtMTE0LDcg
KzExNCw3IEBAIGNsYXNzIENocm9taXVtTGludXhQb3J0KGNocm9taXVtLkNocm9taXVtUG9ydCk6
CiAgICAgICAgIHJlc3VsdCA9IGNocm9taXVtLmNoZWNrX2ZpbGVfZXhpc3RzKHNlbGYuX3BhdGhf
dG9fbGlnaHR0cGRfbW9kdWxlcygpLAogICAgICAgICAgICAgIkxpZ0hUVFBkIG1vZHVsZXMiKSBh
bmQgcmVzdWx0CiAgICAgICAgIGlmIG5vdCByZXN1bHQ6Ci0gICAgICAgICAgICBsb2dnaW5nLmVy
cm9yKCdQbGVhc2UgaW5zdGFsbCB1c2luZzogInN1ZG8gYXB0LWdldCBpbnN0YWxsICcKKyAgICAg
ICAgICAgIGxvZ2dpbmcuZXJyb3IoJyAgICBQbGVhc2UgaW5zdGFsbCB1c2luZzogInN1ZG8gYXB0
LWdldCBpbnN0YWxsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xpZ2h0dHBkIHBocDUt
Y2dpIicpCiAgICAgICAgICAgICBsb2dnaW5nLmVycm9yKCcnKQogICAgICAgICByZXR1cm4gcmVz
dWx0CkBAIC0xMjIsNyArMTIyLDcgQEAgY2xhc3MgQ2hyb21pdW1MaW51eFBvcnQoY2hyb21pdW0u
Q2hyb21pdW1Qb3J0KToKICAgICBkZWYgX2NoZWNrX3dkaWZmX2luc3RhbGwoc2VsZik6CiAgICAg
ICAgIHJlc3VsdCA9IGNocm9taXVtLmNoZWNrX2ZpbGVfZXhpc3RzKHNlbGYuX3BhdGhfdG9fd2Rp
ZmYoKSwgJ3dkaWZmJykKICAgICAgICAgaWYgbm90IHJlc3VsdDoKLSAgICAgICAgICAgIGxvZ2dp
bmcuZXJyb3IoJ1BsZWFzZSBpbnN0YWxsIHVzaW5nOiAic3VkbyBhcHQtZ2V0IGluc3RhbGwgJwor
ICAgICAgICAgICAgbG9nZ2luZy5lcnJvcignICAgIFBsZWFzZSBpbnN0YWxsIHVzaW5nOiAic3Vk
byBhcHQtZ2V0IGluc3RhbGwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnd2RpZmYiJykK
ICAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoJycpCiAgICAgICAgIHJldHVybiByZXN1bHQKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fbWFjLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bV9tYWMucHkKaW5kZXggZWNlMTBiMC4uMTA5MzUxNyAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV9tYWMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9jaHJvbWl1bV9tYWMucHkKQEAgLTUzLDggKzUzLDggQEAgY2xhc3MgQ2hyb21pdW1NYWNQ
b3J0KGNocm9taXVtLkNocm9taXVtUG9ydCk6CiAgICAgICAgICAgICAgICAgc2VsZi5fd2Via2l0
X2Jhc2VsaW5lX3BhdGgoJ21hYycgKyBzZWxmLnZlcnNpb24oKSksCiAgICAgICAgICAgICAgICAg
c2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoJ21hYycpXQogCi0gICAgZGVmIGNoZWNrX3N5c19k
ZXBzKHNlbGYsIG5lZWRzX2h0dHApOgotICAgICAgICByZXN1bHQgPSBjaHJvbWl1bS5DaHJvbWl1
bVBvcnQuY2hlY2tfc3lzX2RlcHMoc2VsZiwgbmVlZHNfaHR0cCkKKyAgICBkZWYgY2hlY2tfYnVp
bGQoc2VsZiwgbmVlZHNfaHR0cCk6CisgICAgICAgIHJlc3VsdCA9IGNocm9taXVtLkNocm9taXVt
UG9ydC5jaGVja19idWlsZChzZWxmLCBuZWVkc19odHRwKQogICAgICAgICByZXN1bHQgPSBzZWxm
Ll9jaGVja193ZGlmZl9pbnN0YWxsKCkgYW5kIHJlc3VsdAogICAgICAgICBpZiBub3QgcmVzdWx0
OgogICAgICAgICAgICAgbG9nZ2luZy5lcnJvcignRm9yIGNvbXBsZXRlIE1hYyBidWlsZCByZXF1
aXJlbWVudHMsIHBsZWFzZSBzZWU6JykKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2luLnB5IGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKaW5kZXgg
MjViMWEyYS4uNTU1MjQ0YyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4ucHkKQEAgLTYwLDgg
KzYwLDggQEAgY2xhc3MgQ2hyb21pdW1XaW5Qb3J0KGNocm9taXVtLkNocm9taXVtUG9ydCk6CiAg
ICAgICAgIGRpcnMuYXBwZW5kKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdtYWMnKSkKICAg
ICAgICAgcmV0dXJuIGRpcnMKIAotICAgIGRlZiBjaGVja19zeXNfZGVwcyhzZWxmLCBuZWVkc19o
dHRwKToKLSAgICAgICAgcmVzdWx0ID0gY2hyb21pdW0uQ2hyb21pdW1Qb3J0LmNoZWNrX3N5c19k
ZXBzKHNlbGYsIG5lZWRzX2h0dHApCisgICAgZGVmIGNoZWNrX2J1aWxkKHNlbGYsIG5lZWRzX2h0
dHApOgorICAgICAgICByZXN1bHQgPSBjaHJvbWl1bS5DaHJvbWl1bVBvcnQuY2hlY2tfYnVpbGQo
c2VsZiwgbmVlZHNfaHR0cCkKICAgICAgICAgaWYgbm90IHJlc3VsdDoKICAgICAgICAgICAgIGxv
Z2dpbmcuZXJyb3IoJ0ZvciBjb21wbGV0ZSBXaW5kb3dzIGJ1aWxkIHJlcXVpcmVtZW50cywgcGxl
YXNlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NlZTonKQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMucHkgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQppbmRleCA5
YjcwY2I3Li40ZGVmMTZiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQpAQCAtNjYsOCArNjYsOSBAQCBjbGFzcyBNYWNQ
b3J0KGJhc2UuUG9ydCk6CiAgICAgICAgIGRpcnMuYXBwZW5kKHNlbGYuX3dlYmtpdF9iYXNlbGlu
ZV9wYXRoKCdtYWMnKSkKICAgICAgICAgcmV0dXJuIGRpcnMKIAotICAgIGRlZiBjaGVja19zeXNf
ZGVwcyhzZWxmLCBuZWVkc19odHRwKToKLSAgICAgICAgaWYgZXhlY3V0aXZlLnJ1bl9jb21tYW5k
KFtzZWxmLnNjcmlwdF9wYXRoKCJidWlsZC1kdW1wcmVuZGVydHJlZSIpXSwgcmV0dXJuX2V4aXRf
Y29kZT1UcnVlKSAhPSAwOgorICAgIGRlZiBjaGVja19idWlsZChzZWxmLCBuZWVkc19odHRwKToK
KyAgICAgICAgaWYgZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFtzZWxmLnNjcmlwdF9wYXRoKCJidWls
ZC1kdW1wcmVuZGVydHJlZSIpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybl9leGl0X2NvZGU9VHJ1ZSkgIT0gMDoKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCiAg
ICAgICAgIGRyaXZlcl9wYXRoID0gc2VsZi5fcGF0aF90b19kcml2ZXIoKQpAQCAtNzUsNyArNzYs
OCBAQCBjbGFzcyBNYWNQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgICAgICBsb2dnaW5nLmVycm9y
KCJEdW1wUmVuZGVyVHJlZSB3YXMgbm90IGZvdW5kIGF0ICVzIiAlIGRyaXZlcl9wYXRoKQogICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCiAKLSAgICAgICAgIyBUaGlzIHNob3VsZCBhbHNvIHZhbGlk
YXRlIHRoYXQgdGhlIEltYWdlRGlmZiBwYXRoIGlzIHZhbGlkIChvbmNlIHRoaXMgc2NyaXB0IGtu
b3dzIGhvdyB0byB1c2UgSW1hZ2VEaWZmKS4KKyAgICAgICAgIyBUaGlzIHNob3VsZCBhbHNvIHZh
bGlkYXRlIHRoYXQgdGhlIEltYWdlRGlmZiBwYXRoIGlzIHZhbGlkCisgICAgICAgICMgKG9uY2Ug
dGhpcyBzY3JpcHQga25vd3MgaG93IHRvIHVzZSBJbWFnZURpZmYpLgogICAgICAgICAjIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDgyNgogICAgICAgICByZXR1cm4g
VHJ1ZQogCkBAIC05OCwxNCArMTAwLDYgQEAgY2xhc3MgTWFjUG9ydChiYXNlLlBvcnQpOgogICAg
ICAgICAiIiJTdGFydHMgYSBuZXcgRHJpdmVyIGFuZCByZXR1cm5zIGEgaGFuZGxlIHRvIGl0LiIi
IgogICAgICAgICByZXR1cm4gTWFjRHJpdmVyKHNlbGYsIGltYWdlX3BhdGgsIG9wdGlvbnMpCiAK
LSAgICBkZWYgc3RhcnRfaGVscGVyKHNlbGYpOgotICAgICAgICAjIFRoaXMgcG9ydCBkb2Vzbid0
IHVzZSBhIGhlbHBlciBwcm9jZXNzLgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgc3RvcF9oZWxw
ZXIoc2VsZik6Ci0gICAgICAgICMgVGhpcyBwb3J0IGRvZXNuJ3QgdXNlIGEgaGVscGVyIHByb2Nl
c3MuCi0gICAgICAgIHBhc3MKLQogICAgIGRlZiB0ZXN0X2Jhc2VfcGxhdGZvcm1fbmFtZXMoc2Vs
Zik6CiAgICAgICAgICMgQXQgdGhlIG1vbWVudCB3ZSBkb24ndCB1c2UgdGVzdCBwbGF0Zm9ybSBu
YW1lcywgYnV0IHdlIGhhdmUKICAgICAgICAgIyB0byByZXR1cm4gc29tZXRoaW5nLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9wYXNz
aW5nLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9w
YXNzaW5nLnB5CmluZGV4IDAyZTIwNWYuLjYzZTQxMmIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcGFzc2luZy5weQorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Bhc3NpbmcucHkKQEAg
LTM4LDggKzM4LDkgQEAKIAogICAgTm90ZSB0aGF0IGJlY2F1c2UgdGhpcyBpcyByZWFsbHkgYWN0
aW5nIGFzIGEgd3JhcHBlciBhcm91bmQgdGhlIHVuZGVybHlpbmcKICAgIHBvcnQsIHlvdSBtdXN0
IGJlIGFibGUgdG8gcnVuIHRoZSB1bmRlcmx5aW5nIHBvcnQgYXMgd2VsbAotICAgKGNoZWNrX3N5
c19kZXBzKCkgbXVzdCBwYXNzIGFuZCB0aGUgbGF5b3V0X3Rlc3RfaGVscGVyIG11c3Qgd29yayku
IFlvdQotICAgbWF5IGJlIGFibGUgdG8gZ2V0IGFyb3VuZCB0aGlzIHdpdGggLS1ub2NoZWNrLXN5
cy1kZXBzIGFuZCAtLW5vc3RhcnQtaGVscGVyLgorICAgKGNoZWNrX2J1aWxkKCkgYW5kIGNoZWNr
X3N5c19kZXBzKCkgbXVzdCBwYXNzIGFuZCBhdXhpbGlhcnkgYmluYXJpZXMKKyAgIGxpa2UgbGF5
b3V0X3Rlc3RfaGVscGVyIGFuZCBodHRwZCBtdXN0IHdvcmspLiBZb3UgbWF5IGJlIGFibGUgdG8g
Z2V0CisgICBhcm91bmQgdGhpcyB3aXRoIC0tbm9jaGVjay1idWlsZCAtLW5vY2hlY2stc3lzLWRl
cHMgLS1ub3N0YXJ0LWhlbHBlci4KIAogICAgVGhpcyBpbXBsZW1lbnRhdGlvbiBhbHNvIG1vZGlm
aWVzIHRoZSB0ZXN0IGV4cGVjdGF0aW9ucyBzbyB0aGF0IGFsbAogICAgdGVzdHMgYXJlIGVpdGhl
ciBTS0lQUEVEIG9yIGV4cGVjdGVkIHRvIFBBU1MuIiIiCkBAIC02MCw3ICs2MSw3IEBAIGNsYXNz
IFBhc3NpbmdQb3J0KG9iamVjdCk6CiAKICAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSk6
CiAgICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYuX19kZWxlZ2F0ZSwgbmFtZSkKLSAKKwogICAg
IGRlZiBzdGFydF9kcml2ZXIoc2VsZiwgaW1hZ2VfcGF0aCwgb3B0aW9ucyk6CiAgICAgICAgIHJl
dHVybiBQYXNzaW5nRHJpdmVyKHNlbGYsIGltYWdlX3BhdGgsIG9wdGlvbnMpCiAKQEAgLTk4LDEz
ICs5OSwyMCBAQCBjbGFzcyBQYXNzaW5nRHJpdmVyKGJhc2UuRHJpdmVyKToKIAogICAgICAgICBp
ZiBpbWFnZV9oYXNoOgogICAgICAgICAgICAgaW1hZ2VfZmlsZW5hbWUgPSBzZWxmLl9wb3J0LmV4
cGVjdGVkX2ZpbGVuYW1lKHRlc3RfbmFtZSwgJy5wbmcnKQotICAgICAgICAgICAgaW1hZ2UgPSBm
aWxlKGltYWdlX2ZpbGVuYW1lLCAncmInKS5yZWFkKCkKLSAgICAgICAgICAgIG91dHB1dF9maWxl
ID0gZmlsZShzZWxmLl9pbWFnZV9wYXRoLCAndycpCi0gICAgICAgICAgICBvdXRwdXRfZmlsZS53
cml0ZShpbWFnZSkKLSAgICAgICAgICAgIG91dHB1dF9maWxlLmNsb3NlKCkKKyAgICAgICAgICAg
IHRyeToKKyAgICAgICAgICAgICAgICBpbWFnZSA9IGZpbGUoaW1hZ2VfZmlsZW5hbWUsICdyYicp
LnJlYWQoKQorICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICAgICAgaW1h
Z2UgPSAnJworICAgICAgICAgICAgaWYgc2VsZi5faW1hZ2VfcGF0aDoKKyAgICAgICAgICAgICAg
ICBvdXRwdXRfZmlsZSA9IGZpbGUoc2VsZi5faW1hZ2VfcGF0aCwgJ3cnKQorICAgICAgICAgICAg
ICAgIG91dHB1dF9maWxlLndyaXRlKGltYWdlKQorICAgICAgICAgICAgICAgIG91dHB1dF9maWxl
LmNsb3NlKCkKICAgICAgICAgICAgIGhhc2hfZmlsZW5hbWUgPSBzZWxmLl9wb3J0LmV4cGVjdGVk
X2ZpbGVuYW1lKHRlc3RfbmFtZSwKICAgICAgICAgICAgICAgICAnLmNoZWNrc3VtJykKLSAgICAg
ICAgICAgIGhhc2ggPSBmaWxlKGhhc2hfZmlsZW5hbWUsICdyJykucmVhZCgpCisgICAgICAgICAg
ICB0cnk6CisgICAgICAgICAgICAgICAgaGFzaCA9IGZpbGUoaGFzaF9maWxlbmFtZSwgJ3InKS5y
ZWFkKCkKKyAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgICAgIGhhc2gg
PSAnJwogICAgICAgICBlbHNlOgogICAgICAgICAgICAgaGFzaCA9IE5vbmUKICAgICAgICAgcmV0
dXJuIChGYWxzZSwgRmFsc2UsIGhhc2gsIHRleHRfb3V0cHV0LCBOb25lKQpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5Cmlu
ZGV4IDhmYTMyYjIuLjIwZjc3NzUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKQEAgLTUyLDkgKzUyLDYgQEAgY2xh
c3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToKICAgICBkZWYgYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2Vs
Zik6CiAgICAgICAgIHJldHVybiBbc2VsZi5iYXNlbGluZV9wYXRoKCldCiAKLSAgICBkZWYgY2hl
Y2tfc3lzX2RlcHMoc2VsZiwgbmVlZHNfaHR0cCk6Ci0gICAgICAgIHJldHVybiBUcnVlCi0KICAg
ICBkZWYgZGlmZl9pbWFnZShzZWxmLCBhY3R1YWxfZmlsZW5hbWUsIGV4cGVjdGVkX2ZpbGVuYW1l
LAogICAgICAgICAgICAgICAgICAgIGRpZmZfZmlsZW5hbWU9Tm9uZSk6CiAgICAgICAgIHJldHVy
biBGYWxzZQpAQCAtNjIsNiArNTksOSBAQCBjbGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogICAg
IGRlZiBjb21wYXJlX3RleHQoc2VsZiwgYWN0dWFsX3RleHQsIGV4cGVjdGVkX3RleHQpOgogICAg
ICAgICByZXR1cm4gRmFsc2UKIAorICAgIGRlZiBjaGVja19idWlsZChzZWxmLCBuZWVkc19odHRw
KToKKyAgICAgICAgcmV0dXJuIFRydWUKKwogICAgIGRlZiBkaWZmX3RleHQoc2VsZiwgYWN0dWFs
X3RleHQsIGV4cGVjdGVkX3RleHQsCiAgICAgICAgICAgICAgICAgICBhY3R1YWxfZmlsZW5hbWUs
IGV4cGVjdGVkX2ZpbGVuYW1lKToKICAgICAgICAgcmV0dXJuICcnCkBAIC05MywxOCArOTMsMTIg
QEAgY2xhc3MgVGVzdFBvcnQoYmFzZS5Qb3J0KToKICAgICBkZWYgc3RhcnRfd2Vic29ja2V0X3Nl
cnZlcihzZWxmKToKICAgICAgICAgcGFzcwogCi0gICAgZGVmIHN0YXJ0X2hlbHBlcihzZWxmKToK
LSAgICAgICAgcGFzcwotCiAgICAgZGVmIHN0b3BfaHR0cF9zZXJ2ZXIoc2VsZik6CiAgICAgICAg
IHBhc3MKIAogICAgIGRlZiBzdG9wX3dlYnNvY2tldF9zZXJ2ZXIoc2VsZik6CiAgICAgICAgIHBh
c3MKIAotICAgIGRlZiBzdG9wX2hlbHBlcihzZWxmKToKLSAgICAgICAgcGFzcwotCiAgICAgZGVm
IHRlc3RfZXhwZWN0YXRpb25zKHNlbGYpOgogICAgICAgICByZXR1cm4gJycKIApkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90
ZXN0cy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93
ZWJraXRfdGVzdHMucHkKaW5kZXggMjliY2ZjNy4uZWI5Y2I3MCAxMDA3NTUKLS0tIGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0
X3Rlc3RzLnB5CkBAIC01NTIsNiArNTUyLDcgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAgICAgICAg
ICAgICAgaW4gdGhlIGZvcm0ge2ZpbGVuYW1lOmZpbGVuYW1lLCB0ZXN0X3J1bl90aW1lOnRlc3Rf
cnVuX3RpbWV9CiAgICAgICAgICAgICByZXN1bHRfc3VtbWFyeTogc3VtbWFyeSBvYmplY3QgdG8g
cG9wdWxhdGUgd2l0aCB0aGUgcmVzdWx0cwogICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fbWV0
ZXIudXBkYXRlKCdTdGFydGluZyB0ZXN0IHNoZWxscyAuLi4nKQogICAgICAgICB0aHJlYWRzID0g
c2VsZi5faW5zdGFudGlhdGVfdGVzdF9zaGVsbF90aHJlYWRzKGZpbGVfbGlzdCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfc3Vt
bWFyeSkKIApAQCAtNjE0LDkgKzYxNSwxMSBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICBz
dGFydF90aW1lID0gdGltZS50aW1lKCkKIAogICAgICAgICBpZiBzZWxmLm5lZWRzX2h0dHAoKToK
KyAgICAgICAgICAgIHNlbGYuX21ldGVyLnVwZGF0ZSgnU3RhcnRpbmcgSFRUUCBzZXJ2ZXIgLi4u
JykKICAgICAgICAgICAgIHNlbGYuX3BvcnQuc3RhcnRfaHR0cF9zZXJ2ZXIoKQogCiAgICAgICAg
IGlmIHNlbGYuX2NvbnRhaW5zX3Rlc3RzKHNlbGYuV0VCU09DS0VUX1NVQkRJUik6CisgICAgICAg
ICAgICBzZWxmLl9tZXRlci51cGRhdGUoJ1N0YXJ0aW5nIFdlYlNvY2tldCBzZXJ2ZXIgLi4uJykK
ICAgICAgICAgICAgIHNlbGYuX3BvcnQuc3RhcnRfd2Vic29ja2V0X3NlcnZlcigpCiAgICAgICAg
ICAgICAjIHNlbGYuX3dlYnNvY2tldF9zZWN1cmVfc2VydmVyLlN0YXJ0KCkKIApAQCAtMTQ2OCwx
MyArMTQ3MSwyMCBAQCBkZWYgbWFpbihvcHRpb25zLCBhcmdzKToKICAgICB0ZXN0X3J1bm5lci5w
YXJzZV9leHBlY3RhdGlvbnMocG9ydF9vYmoudGVzdF9wbGF0Zm9ybV9uYW1lKCksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudGFyZ2V0ID09ICdEZWJ1ZycpCiAK
KyAgICBpZiBub3Qgb3B0aW9ucy5ub2NoZWNrX2J1aWxkOgorICAgICAgICBtZXRlci51cGRhdGUo
IkNoZWNraW5nIGJ1aWxkIC4uLiIpCisgICAgICAgIGlmIG5vdCBwb3J0X29iai5jaGVja19idWls
ZCh0ZXN0X3J1bm5lci5uZWVkc19odHRwKCkpOgorICAgICAgICAgICAgc3lzLmV4aXQoMSkKKwog
ICAgIGlmIG5vdCBvcHRpb25zLm5vc3RhcnRfaGVscGVyOgorICAgICAgICBtZXRlci51cGRhdGUo
IlN0YXJ0aW5nIGhlbHBlciAuLi4iKQogICAgICAgICBwb3J0X29iai5zdGFydF9oZWxwZXIoKQog
CiAgICAgIyBDaGVjayB0aGF0IHRoZSBzeXN0ZW0gZGVwZW5kZW5jaWVzICh0aGVtZXMsIGZvbnRz
LCAuLi4pIGFyZSBjb3JyZWN0LgotICAgIGlmIChub3Qgb3B0aW9ucy5ub2NoZWNrX3N5c19kZXBz
IGFuZAotICAgICAgICAgbm90IHBvcnRfb2JqLmNoZWNrX3N5c19kZXBzKHRlc3RfcnVubmVyLm5l
ZWRzX2h0dHAoKSkpOgotICAgICAgICBzeXMuZXhpdCgxKQorICAgIGlmIG5vdCBvcHRpb25zLm5v
Y2hlY2tfc3lzX2RlcHM6CisgICAgICAgIG1ldGVyLnVwZGF0ZSgiQ2hlY2tpbmcgc3lzdGVtIGRl
cGVuZGVuY2llcyAuLi4iKQorICAgICAgICBpZiBub3QgcG9ydF9vYmouY2hlY2tfc3lzX2RlcHMo
dGVzdF9ydW5uZXIubmVlZHNfaHR0cCgpKToKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCiAKICAg
ICBtZXRlci51cGRhdGUoIlByZXBhcmluZyB0ZXN0cyAuLi4iKQogICAgIHdyaXRlID0gY3JlYXRl
X2xvZ2dpbmdfd3JpdGVyKG9wdGlvbnMsICJleHBlY3RlZCIpCkBAIC0xNDg4LDcgKzE0OTgsNiBA
QCBkZWYgbWFpbihvcHRpb25zLCBhcmdzKToKICAgICAgICAgaWYgb3B0aW9ucy5mdXp6eV9waXhl
bF90ZXN0czoKICAgICAgICAgICAgIHRlc3RfcnVubmVyLmFkZF90ZXN0X3R5cGUoZnV6enlfaW1h
Z2VfZGlmZi5GdXp6eUltYWdlRGlmZikKIAotICAgIG1ldGVyLnVwZGF0ZSgiU3RhcnRpbmcgLi4u
IikKICAgICBoYXNfbmV3X2ZhaWx1cmVzID0gdGVzdF9ydW5uZXIucnVuKHJlc3VsdF9zdW1tYXJ5
KQogCiAgICAgaWYgbm90IG9wdGlvbnMubm9zdGFydF9oZWxwZXI6CkBAIC0xNjIxLDYgKzE2MzAs
OSBAQCBkZWYgcGFyc2VfYXJncyhhcmdzPU5vbmUpOgogICAgIG9wdGlvbl9wYXJzZXIuYWRkX29w
dGlvbigiIiwgIi0tZXhwZXJpbWVudGFsLWZ1bGx5LXBhcmFsbGVsIiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0icnVuIGFsbCB0ZXN0cyBpbiBwYXJhbGxlbCIp
CisgICAgb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9uKCIiLCAiLS1ub2NoZWNrLWJ1aWxkIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1G
YWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iZG9uJ3QgY2hlY2sgdGhh
dCB0aGUgYnVpbGQgaXMgdXAgdG8gZGF0ZSIpCiAgICAgb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9u
KCIiLCAiLS1ub3N0YXJ0LWhlbHBlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9ImRvbid0IHJ1biBsYXlvdXRfdGVzdF9oZWxwZXIiKQpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L2F1dG9pbnN0YWxsLnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L2F1dG9pbnN0YWxsLnB5Cmlu
ZGV4IDQ2N2U2YjQuLjZjODY0Y2YgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdGhpcmRwYXJ0eS9hdXRvaW5zdGFsbC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3RoaXJkcGFydHkvYXV0b2luc3RhbGwucHkKQEAgLTI5Myw3ICsyOTMsOCBAQCBj
bGFzcyBJbXBvcnRlcihvYmplY3QpOgogICAgICAgICByZXR1cm4gTm9uZQogCiAgICAgZGVmIGJp
bmQoc2VsZiwgcGFja2FnZV9uYW1lLCB1cmwsIHppcF9zdWJwYXRoKToKLSAgICAgICAgX2xvZ2dl
ci5pbmZvKCJiaW5kaW5nOiAlcyAtPiAlcyBzdWJwYXRoOiAlcyIgJSAocGFja2FnZV9uYW1lLCB1
cmwsIHppcF9zdWJwYXRoKSkKKyAgICAgICAgX2xvZ2dlci5kZWJ1ZygiYmluZGluZzogJXMgLT4g
JXMgc3VicGF0aDogJXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAocGFja2FnZV9uYW1lLCB1
cmwsIHppcF9zdWJwYXRoKSkKICAgICAgICAgc2VsZi5wYWNrYWdlc1twYWNrYWdlX25hbWVdID0g
KHVybCwgemlwX3N1YnBhdGgpCiAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49657</attachid>
            <date>2010-02-26 15:46:09 -0800</date>
            <delta_ts>2010-03-01 11:32:08 -0800</delta_ts>
            <desc>patch revised w/ ojan&apos;s feedback: removed --nocheck-build and --nostart-helper flags</desc>
            <filename>wk35419.check_build.diff</filename>
            <type>text/plain</type>
            <size>22014</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA5YzM2MmEzLi4zNDlkYTFlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTAtMDIt
MjYgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR2VuZXJhbCBjbGVhbnVwIG9mIGVycm9y
IGhhbmRsaW5nIGluIG5ldy1ydW4td2Via2l0LXRlc3RzLgorCisgICAgICAgIEFkZCBQb3J0LmNo
ZWNrX2J1aWxkKCkgY2FsbCB0aGF0IGlzIHNlcGFyYXRlIGZyb20gUG9ydC5jaGVja19zeXNfZGVw
cygpCisgICAgICAgIChhbmQgYWRkIGEgLS1ub2NoZWNrLWJ1aWxkIGZsYWcgdG8gc2tpcCkuIFRo
aXMgYnJlYWtzIGEgY2lyY3VsYXIKKyAgICAgICAgZGVwZW5kZW5jeSB3aGVyZSB5b3Ugd291bGQg
c3RhcnQgdGhlIGxheW91dCB0ZXN0IGhlbHBlciBiZWZvcmUKKyAgICAgICAgY2hlY2tpbmcgc3lz
IGRlcHMsIGJ1dCBjaGVja2luZyBzeXMgZGVwcyB3YXMgdGhlIHRoaW5nIHRoYXQgdG9sZAorICAg
ICAgICB5b3UgaWYgeW91ciBiaW5hcmllcyB3aGVyZSB0aGVyZS4KKworICAgICAgICBBbHNvLCBt
YWRlIFBvcnQuY2hlY2tfc3lzX2RlcHMoKSwgc3RhcnRfaGVscGVyKCkgYW5kIHN0b3BfaGVscGVy
KCkKKyAgICAgICAgb3B0aW9uYWwgYnkgcHJvdmlkaW5nIGRlZmF1bHQgaW1wbGVtZW50YXRpb25z
IGluIHRoZSBiYXNlIGNsYXNzCisgICAgICAgIHJhdGhlciB0aGFuIHJlcXVpcmluZyBwb3J0cyB0
byBpbXBsZW1lbnQgdGhlIHJvdXRpbmVzIHJlZ2FyZGxlc3MKKyAgICAgICAgb2Ygd2hldGhlciBv
ciBub3QgdGhleSB3ZXJlIG5lZWRlZC4KKworICAgICAgICBMYXN0bHksIHR3ZWFrIGEgYnVuY2gg
b2YgbG9nIG1lc3NhZ2VzIHRvIGJlIGNsZWFuZXIsIGluY2x1ZGluZworICAgICAgICBjaGFuZ2lu
ZyBtZXNzYWdlcyBpbiB0aGlyZHBhcnR5L2F1dG9pbnN0YWxsLnB5IHRvIGJlIHNpbGVudCBhdAor
ICAgICAgICB0aGUgZGVmYXVsdCBsb2cgbGV2ZWwuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU0MTYKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfZXhwZWN0YXRpb25zLnB5OgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5OgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbGludXgu
cHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV9tYWMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9j
aHJvbWl1bV93aW4ucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9tYWMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9wYXNzaW5nLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvdGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5f
d2Via2l0X3Rlc3RzLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9h
dXRvaW5zdGFsbC5weQorCiAyMDEwLTAyLTI2ICBBbnRvbmlvIEdvbWVzICA8dG9uaWtpdG9vQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3Bh
Y2thZ2UvdGVzdF9leHBlY3RhdGlvbnMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weQppbmRleCAw
MWFkZDYyLi4wMTQxNzVkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X2V4cGVjdGF0aW9ucy5weQorKysgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90
ZXN0X2V4cGVjdGF0aW9ucy5weQpAQCAtNjMzLDExICs2MzMsMTMgQEAgY2xhc3MgVGVzdEV4cGVj
dGF0aW9uc0ZpbGU6CiAgICAgICAgICAgICAgICAgYnVpbGRfdHlwZSA9ICdERUJVRycKICAgICAg
ICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgYnVpbGRfdHlwZSA9ICdSRUxFQVNFJwotICAg
ICAgICAgICAgcHJpbnQgIlxuRkFJTFVSRVMgRk9SIFBMQVRGT1JNOiAlcywgQlVJTERfVFlQRTog
JXMiIFwKLSAgICAgICAgICAgICAgICAlIChzZWxmLl90ZXN0X3BsYXRmb3JtX25hbWUudXBwZXIo
KSwgYnVpbGRfdHlwZSkKKyAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoJycpCisgICAgICAgICAg
ICBsb2dnaW5nLmVycm9yKCJGQUlMVVJFUyBGT1IgUExBVEZPUk06ICVzLCBCVUlMRF9UWVBFOiAl
cyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5fdGVzdF9wbGF0Zm9ybV9uYW1l
LnVwcGVyKCksIGJ1aWxkX3R5cGUpKQogCiAgICAgICAgICAgICBmb3IgZXJyb3IgaW4gc2VsZi5f
bm9uX2ZhdGFsX2Vycm9yczoKICAgICAgICAgICAgICAgICBsb2dnaW5nLmVycm9yKGVycm9yKQor
ICAgICAgICAgICAgbG9nZ2luZy53YXJuaW5nKCcnKQogICAgICAgICAgICAgaWYgbGVuKHNlbGYu
X2Vycm9ycyk6CiAgICAgICAgICAgICAgICAgcmFpc2UgU3ludGF4RXJyb3IoJ1xuJy5qb2luKG1h
cChzdHIsIHNlbGYuX2Vycm9ycykpKQogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKaW5kZXggY2IxZTBlOS4uNDA5MDM3
YiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9iYXNlLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvYmFzZS5weQpAQCAtNjgsMTIgKzY4LDE4IEBAIGNsYXNzIFBvcnQob2JqZWN0KToK
ICAgICAgICAgYmFzZWxpbmVzLiBUaGUgZGlyZWN0b3JpZXMgYXJlIHNlYXJjaGVkIGluIG9yZGVy
LiIiIgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdQb3J0LmJhc2VsaW5lX3Nl
YXJjaF9wYXRoJykKIAorICAgIGRlZiBjaGVja19idWlsZChzZWxmLCBuZWVkc19odHRwKToKKyAg
ICAgICAgIiIiVGhpcyByb3V0aW5lIGlzIHVzZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGJ1aWxkIGlz
IHVwIHRvIGRhdGUKKyAgICAgICAgYW5kIGFsbCB0aGUgbmVlZGVkIGJpbmFyaWVzIGFyZSBwcmVz
ZW50LiIiIgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdQb3J0LmNoZWNrX2J1
aWxkJykKKwogICAgIGRlZiBjaGVja19zeXNfZGVwcyhzZWxmLCBuZWVkc19odHRwKToKICAgICAg
ICAgIiIiSWYgdGhlIHBvcnQgbmVlZHMgdG8gZG8gc29tZSBydW50aW1lIGNoZWNrcyB0byBlbnN1
cmUgdGhhdCB0aGUKLSAgICAgICAgdGVzdHMgY2FuIGJlIHJ1biBzdWNjZXNzZnVsbHksIHRoZXkg
c2hvdWxkIGJlIGRvbmUgaGVyZS4KKyAgICAgICAgdGVzdHMgY2FuIGJlIHJ1biBzdWNjZXNzZnVs
bHksIGl0IHNob3VsZCBvdmVycmlkZSB0aGlzIHJvdXRpbmUuCisgICAgICAgIFRoaXMgc3RlcCBj
YW4gYmUgc2tpcHBlZCB3aXRoIC0tbm9jaGVjay1zeXMtZGVwcy4KIAogICAgICAgICBSZXR1cm5z
IHdoZXRoZXIgdGhlIHN5c3RlbSBpcyBwcm9wZXJseSBjb25maWd1cmVkLiIiIgotICAgICAgICBy
YWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdQb3J0LmNoZWNrX3N5c19kZXBzJykKKyAgICAgICAg
cmV0dXJuIFRydWUKIAogICAgIGRlZiBjb21wYXJlX3RleHQoc2VsZiwgYWN0dWFsX3RleHQsIGV4
cGVjdGVkX3RleHQpOgogICAgICAgICAiIiJSZXR1cm4gd2hldGhlciBvciBub3QgdGhlIHR3byBz
dHJpbmdzIGFyZSAqbm90KiBlcXVhbC4gVGhpcwpAQCAtMzgxLDEwICszODcsMTAgQEAgY2xhc3Mg
UG9ydChvYmplY3QpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdQb3J0LnN0
YXJ0X2RyaXZlcicpCiAKICAgICBkZWYgc3RhcnRfaGVscGVyKHNlbGYpOgotICAgICAgICAiIiJT
dGFydCBhIGxheW91dCB0ZXN0IGhlbHBlciBpZiBuZWVkZWQgb24gdGhpcyBwb3J0LiBUaGUgdGVz
dCBoZWxwZXIKLSAgICAgICAgaXMgdXNlZCB0byByZWNvbmZpZ3VyZSBncmFwaGljcyBzZXR0aW5n
cyBhbmQgZG8gb3RoZXIgdGhpbmdzIHRoYXQKLSAgICAgICAgbWF5IGJlIG5lY2Vzc2FyeSB0byBl
bnN1cmUgYSBrbm93biB0ZXN0IGNvbmZpZ3VyYXRpb24uIiIiCi0gICAgICAgIHJhaXNlIE5vdElt
cGxlbWVudGVkRXJyb3IoJ1BvcnQuc3RhcnRfaGVscGVyJykKKyAgICAgICAgIiIiSWYgYSBwb3J0
IG5lZWRzIHRvIHJlY29uZmlndXJlIGdyYXBoaWNzIHNldHRpbmdzIG9yIGRvIG90aGVyCisgICAg
ICAgIHRoaW5ncyB0byBlbnN1cmUgYSBrbm93biB0ZXN0IGNvbmZpZ3VyYXRpb24sIGl0IHNob3Vs
ZCBvdmVycmlkZSB0aGlzCisgICAgICAgIG1ldGhvZC4iIiIKKyAgICAgICAgcGFzcwogCiAgICAg
ZGVmIHN0YXJ0X2h0dHBfc2VydmVyKHNlbGYpOgogICAgICAgICAiIiJTdGFydCBhIHdlYiBzZXJ2
ZXIgaWYgaXQgaXMgYXZhaWxhYmxlLiBEbyBub3RoaW5nIGlmCkBAIC00MDgsOCArNDE0LDkgQEAg
Y2xhc3MgUG9ydChvYmplY3QpOgogCiAgICAgZGVmIHN0b3BfaGVscGVyKHNlbGYpOgogICAgICAg
ICAiIiJTaHV0IGRvd24gdGhlIHRlc3QgaGVscGVyIGlmIGl0IGlzIHJ1bm5pbmcuIERvIG5vdGhp
bmcgaWYKLSAgICAgICAgaXQgaXNuJ3QsIG9yIGl0IGlzbid0IGF2YWlsYWJsZS4iIiIKLSAgICAg
ICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignUG9ydC5zdG9wX2hlbHBlcicpCisgICAgICAg
IGl0IGlzbid0LCBvciBpdCBpc24ndCBhdmFpbGFibGUuIElmIGEgcG9ydCBvdmVycmlkZXMgc3Rh
cnRfaGVscGVyKCkKKyAgICAgICAgaXQgbXVzdCBvdmVycmlkZSB0aGlzIHJvdXRpbmUgYXMgd2Vs
bC4iIiIKKyAgICAgICAgcGFzcwogCiAgICAgZGVmIHN0b3BfaHR0cF9zZXJ2ZXIoc2VsZik6CiAg
ICAgICAgICIiIlNodXQgZG93biB0aGUgaHR0cCBzZXJ2ZXIgaWYgaXQgaXMgcnVubmluZy4gRG8g
bm90aGluZyBpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkKaW5kZXggYzgxZDBhNy4uZjQ3ZGVmNyAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9j
aHJvbWl1bS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Nocm9taXVtLnB5CkBAIC00MiwxMCArNDIsMTkgQEAgaW1wb3J0IGh0dHBfc2VydmVy
CiBpbXBvcnQgd2Vic29ja2V0X3NlcnZlcgogCiAKLWRlZiBjaGVja19maWxlX2V4aXN0cyhwYXRo
X3RvX2ZpbGUsIHN0cik6Ci0gICAgIiIiVmVyaWZ5IHRoZSBleGVjdXRhYmxlIGlzIHByZXNlbnQg
d2hlcmUgZXhwZWN0ZWQgb3IgbG9nIGFuIGVycm9yLiIiIgorZGVmIGNoZWNrX2ZpbGVfZXhpc3Rz
KHBhdGhfdG9fZmlsZSwgZmlsZV9kZXNjcmlwdGlvbiwgb3ZlcnJpZGVfc3RlcD1Ob25lKToKKyAg
ICAiIiJWZXJpZnkgdGhlIGZpbGUgaXMgcHJlc2VudCB3aGVyZSBleHBlY3RlZCBvciBsb2cgYW4g
ZXJyb3IuCisgICAgCisgICAgQXJnczoKKyAgICAgICAgZmlsZV9uYW1lOiBUaGUgKGh1bWFuIGZy
aWVuZGx5KSBuYW1lIG9yIGRlc2NyaXB0aW9uIG9mIHRoZSBmaWxlCisgICAgICAgICAgICB5b3Un
cmUgbG9va2luZyBmb3IgKGUuZy4sICJIVFRQIFNlcnZlciIpLiBVc2VkIGZvciBlcnJvciBsb2dn
aW5nLgorICAgICAgICBvdmVycmlkZV9zdGVwOiBBbiBvcHRpb25hbCBzdHJpbmcgdG8gYmUgbG9n
Z2VkIGlmIHRoZSBjaGVjayBmYWlscy4iIiIKICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMocGF0
aF90b19maWxlKToKLSAgICAgICAgbG9nZ2luZy5lcnJvcignVW5hYmxlIHRvIGZpbmQgJXMgYXQg
JXMnICUgKHN0ciwgcGF0aF90b19maWxlKSkKKyAgICAgICAgbG9nZ2luZy5lcnJvcignVW5hYmxl
IHRvIGZpbmQgJXMnICUgZmlsZV9kZXNjcmlwdGlvbikKKyAgICAgICAgbG9nZ2luZy5lcnJvcign
ICAgIGF0ICVzJyAlIHBhdGhfdG9fZmlsZSkKKyAgICAgICAgaWYgb3ZlcnJpZGVfc3RlcDoKKyAg
ICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoJyAgICAlcycgJSBvdmVycmlkZV9zdGVwKQorICAgICAg
ICAgICAgbG9nZ2luZy5lcnJvcignJykKICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgcmV0dXJu
IFRydWUKIApAQCAtNjAsMzYgKzY5LDM4IEBAIGNsYXNzIENocm9taXVtUG9ydChiYXNlLlBvcnQp
OgogICAgIGRlZiBiYXNlbGluZV9wYXRoKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fY2hy
b21pdW1fYmFzZWxpbmVfcGF0aChzZWxmLl9uYW1lKQogCi0gICAgZGVmIGNoZWNrX3N5c19kZXBz
KHNlbGYsIG5lZWRzX2h0dHApOgorICAgIGRlZiBjaGVja19idWlsZChzZWxmLCBuZWVkc19odHRw
KToKICAgICAgICAgcmVzdWx0ID0gVHJ1ZQogICAgICAgICB0ZXN0X3NoZWxsX2JpbmFyeV9wYXRo
ID0gc2VsZi5fcGF0aF90b19kcml2ZXIoKQogICAgICAgICByZXN1bHQgPSBjaGVja19maWxlX2V4
aXN0cyh0ZXN0X3NoZWxsX2JpbmFyeV9wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAndGVzdCBkcml2ZXInKQogICAgICAgICBpZiByZXN1bHQ6Ci0gICAgICAgICAgICBy
ZXN1bHQgPSAoc2VsZi5fY2hlY2tfYnVpbGRfdXBfdG9fZGF0ZShzZWxmLl9vcHRpb25zLnRhcmdl
dCkKKyAgICAgICAgICAgIHJlc3VsdCA9IChzZWxmLl9jaGVja19kcml2ZXJfYnVpbGRfdXBfdG9f
ZGF0ZShzZWxmLl9vcHRpb25zLnRhcmdldCkKICAgICAgICAgICAgICAgICAgICAgICBhbmQgcmVz
dWx0KQotCi0gICAgICAgICAgICBwcm9jID0gc3VicHJvY2Vzcy5Qb3BlbihbdGVzdF9zaGVsbF9i
aW5hcnlfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1jaGVj
ay1sYXlvdXQtdGVzdC1zeXMtZGVwcyddKQotICAgICAgICAgICAgaWYgcHJvYy53YWl0KCkgIT0g
MDoKLSAgICAgICAgICAgICAgICBsb2dnaW5nLmVycm9yKCdTeXN0ZW0gZGVwZW5kZW5jaWVzIGNo
ZWNrIGZhaWxlZC4nKQotICAgICAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoJ1RvIG92ZXJyaWRl
LCBpbnZva2Ugd2l0aCAtLW5vY2hlY2stc3lzLWRlcHMnKQotICAgICAgICAgICAgICAgIGxvZ2dp
bmcuZXJyb3IoJycpCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gRmFsc2UKLQogICAgICAgICBl
bHNlOgogICAgICAgICAgICAgbG9nZ2luZy5lcnJvcignJykKIAorICAgICAgICBoZWxwZXJfcGF0
aCA9IHNlbGYuX3BhdGhfdG9faGVscGVyKCkKKyAgICAgICAgcmVzdWx0ID0gY2hlY2tfZmlsZV9l
eGlzdHMoaGVscGVyX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICds
YXlvdXQgdGVzdCBoZWxwZXInKSBhbmQgcmVzdWx0CiAKICAgICAgICAgaWYgbm90IHNlbGYuX29w
dGlvbnMubm9fcGl4ZWxfdGVzdHM6CiAgICAgICAgICAgICBpbWFnZV9kaWZmX3BhdGggPSBzZWxm
Ll9wYXRoX3RvX2ltYWdlX2RpZmYoKQotICAgICAgICAgICAgaWYgbm90IGNoZWNrX2ZpbGVfZXhp
c3RzKGltYWdlX2RpZmZfcGF0aCwgJ2ltYWdlIGRpZmYgZXhlJyk6Ci0gICAgICAgICAgICAgICAg
bG9nZ2luZy5lcnJvcignVG8gb3ZlcnJpZGUsIGludm9rZSB3aXRoIC0tbm8tcGl4ZWwtdGVzdHMn
KQotICAgICAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoJycpCi0gICAgICAgICAgICAgICAgcmVz
dWx0ID0gRmFsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9IGNoZWNrX2ZpbGVfZXhpc3RzKGltYWdl
X2RpZmZfcGF0aCwgJ2ltYWdlIGRpZmYgZXhlJywKKyAgICAgICAgICAgICAgICAnVG8gb3ZlcnJp
ZGUsIGludm9rZSB3aXRoIC0tbm8tcGl4ZWwtdGVzdHMnKSBhbmQgcmVzdWx0CiAKICAgICAgICAg
cmV0dXJuIHJlc3VsdAogCisgICAgZGVmIGNoZWNrX3N5c19kZXBzKHNlbGYsIG5lZWRzX2h0dHAp
OgorICAgICAgICBwcm9jID0gc3VicHJvY2Vzcy5Qb3BlbihbdGVzdF9zaGVsbF9iaW5hcnlfcGF0
aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tY2hlY2stbGF5b3V0LXRlc3Qt
c3lzLWRlcHMnXSkKKyAgICAgICAgaWYgcHJvYy53YWl0KCkgIT0gMDoKKyAgICAgICAgICAgIGxv
Z2dpbmcuZXJyb3IoJ1N5c3RlbSBkZXBlbmRlbmNpZXMgY2hlY2sgZmFpbGVkLicpCisgICAgICAg
ICAgICBsb2dnaW5nLmVycm9yKCdUbyBvdmVycmlkZSwgaW52b2tlIHdpdGggLS1ub2NoZWNrLXN5
cy1kZXBzJykKKyAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoJycpCisgICAgICAgICAgICByZXN1
bHQgPSBGYWxzZQorICAgICAgICByZXR1cm4gVHJ1ZQorCiAgICAgZGVmIGNvbXBhcmVfdGV4dChz
ZWxmLCBhY3R1YWxfdGV4dCwgZXhwZWN0ZWRfdGV4dCk6CiAgICAgICAgIHJldHVybiBhY3R1YWxf
dGV4dCAhPSBleHBlY3RlZF90ZXh0CiAKQEAgLTE2NCw3ICsxNzUsNyBAQCBjbGFzcyBDaHJvbWl1
bVBvcnQoYmFzZS5Qb3J0KToKICAgICAjIG9yIGFueSBzdWJjbGFzc2VzLgogICAgICMKIAotICAg
IGRlZiBfY2hlY2tfYnVpbGRfdXBfdG9fZGF0ZShzZWxmLCB0YXJnZXQpOgorICAgIGRlZiBfY2hl
Y2tfZHJpdmVyX2J1aWxkX3VwX3RvX2RhdGUoc2VsZiwgdGFyZ2V0KToKICAgICAgICAgaWYgdGFy
Z2V0IGluICgnRGVidWcnLCAnUmVsZWFzZScpOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAg
ICAgICAgIGRlYnVnX3BhdGggPSBzZWxmLl9wYXRoX3RvX2RyaXZlcignRGVidWcnKQpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJv
bWl1bV9saW51eC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvY2hyb21pdW1fbGludXgucHkKaW5kZXggNzQ5NTU3Mi4uNTNkZjM0OCAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV9saW51eC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Nocm9taXVtX2xpbnV4LnB5CkBAIC01NCw4ICs1NCw4IEBAIGNsYXNzIENocm9taXVt
TGludXhQb3J0KGNocm9taXVtLkNocm9taXVtUG9ydCk6CiAgICAgICAgICAgICAgICAgc2VsZi5f
d2Via2l0X2Jhc2VsaW5lX3BhdGgoJ3dpbicpLAogICAgICAgICAgICAgICAgIHNlbGYuX3dlYmtp
dF9iYXNlbGluZV9wYXRoKCdtYWMnKV0KIAotICAgIGRlZiBjaGVja19zeXNfZGVwcyhzZWxmLCBu
ZWVkc19odHRwKToKLSAgICAgICAgcmVzdWx0ID0gY2hyb21pdW0uQ2hyb21pdW1Qb3J0LmNoZWNr
X3N5c19kZXBzKHNlbGYsIG5lZWRzX2h0dHApCisgICAgZGVmIGNoZWNrX2J1aWxkKHNlbGYsIG5l
ZWRzX2h0dHApOgorICAgICAgICByZXN1bHQgPSBjaHJvbWl1bS5DaHJvbWl1bVBvcnQuY2hlY2tf
YnVpbGQoc2VsZiwgbmVlZHNfaHR0cCkKICAgICAgICAgaWYgbmVlZHNfaHR0cDoKICAgICAgICAg
ICAgIGlmIHNlbGYuX29wdGlvbnMudXNlX2FwYWNoZToKICAgICAgICAgICAgICAgICByZXN1bHQg
PSBzZWxmLl9jaGVja19hcGFjaGVfaW5zdGFsbCgpIGFuZCByZXN1bHQKQEAgLTEwMSw3ICsxMDEs
NyBAQCBjbGFzcyBDaHJvbWl1bUxpbnV4UG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAg
ICAgICByZXN1bHQgPSBjaHJvbWl1bS5jaGVja19maWxlX2V4aXN0cyhzZWxmLl9wYXRoX3RvX2Fw
YWNoZV9jb25maWdfZmlsZSgpLAogICAgICAgICAgICAgImFwYWNoZTIgY29uZmlnIGZpbGUiKSBh
bmQgcmVzdWx0CiAgICAgICAgIGlmIG5vdCByZXN1bHQ6Ci0gICAgICAgICAgICBsb2dnaW5nLmVy
cm9yKCdQbGVhc2UgaW5zdGFsbCB1c2luZzogInN1ZG8gYXB0LWdldCBpbnN0YWxsICcKKyAgICAg
ICAgICAgIGxvZ2dpbmcuZXJyb3IoJyAgICBQbGVhc2UgaW5zdGFsbCB1c2luZzogInN1ZG8gYXB0
LWdldCBpbnN0YWxsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FwYWNoZTIgbGliYXBh
Y2hlMi1tb2QtcGhwNSInKQogICAgICAgICAgICAgbG9nZ2luZy5lcnJvcignJykKICAgICAgICAg
cmV0dXJuIHJlc3VsdApAQCAtMTE0LDcgKzExNCw3IEBAIGNsYXNzIENocm9taXVtTGludXhQb3J0
KGNocm9taXVtLkNocm9taXVtUG9ydCk6CiAgICAgICAgIHJlc3VsdCA9IGNocm9taXVtLmNoZWNr
X2ZpbGVfZXhpc3RzKHNlbGYuX3BhdGhfdG9fbGlnaHR0cGRfbW9kdWxlcygpLAogICAgICAgICAg
ICAgIkxpZ0hUVFBkIG1vZHVsZXMiKSBhbmQgcmVzdWx0CiAgICAgICAgIGlmIG5vdCByZXN1bHQ6
Ci0gICAgICAgICAgICBsb2dnaW5nLmVycm9yKCdQbGVhc2UgaW5zdGFsbCB1c2luZzogInN1ZG8g
YXB0LWdldCBpbnN0YWxsICcKKyAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoJyAgICBQbGVhc2Ug
aW5zdGFsbCB1c2luZzogInN1ZG8gYXB0LWdldCBpbnN0YWxsICcKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2xpZ2h0dHBkIHBocDUtY2dpIicpCiAgICAgICAgICAgICBsb2dnaW5nLmVycm9y
KCcnKQogICAgICAgICByZXR1cm4gcmVzdWx0CkBAIC0xMjIsNyArMTIyLDcgQEAgY2xhc3MgQ2hy
b21pdW1MaW51eFBvcnQoY2hyb21pdW0uQ2hyb21pdW1Qb3J0KToKICAgICBkZWYgX2NoZWNrX3dk
aWZmX2luc3RhbGwoc2VsZik6CiAgICAgICAgIHJlc3VsdCA9IGNocm9taXVtLmNoZWNrX2ZpbGVf
ZXhpc3RzKHNlbGYuX3BhdGhfdG9fd2RpZmYoKSwgJ3dkaWZmJykKICAgICAgICAgaWYgbm90IHJl
c3VsdDoKLSAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoJ1BsZWFzZSBpbnN0YWxsIHVzaW5nOiAi
c3VkbyBhcHQtZ2V0IGluc3RhbGwgJworICAgICAgICAgICAgbG9nZ2luZy5lcnJvcignICAgIFBs
ZWFzZSBpbnN0YWxsIHVzaW5nOiAic3VkbyBhcHQtZ2V0IGluc3RhbGwgJwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAnd2RpZmYiJykKICAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoJycpCiAg
ICAgICAgIHJldHVybiByZXN1bHQKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5IGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWMucHkKaW5kZXggZWNl
MTBiMC4uMTA5MzUxNyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWMucHkKQEAgLTUzLDggKzUz
LDggQEAgY2xhc3MgQ2hyb21pdW1NYWNQb3J0KGNocm9taXVtLkNocm9taXVtUG9ydCk6CiAgICAg
ICAgICAgICAgICAgc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoJ21hYycgKyBzZWxmLnZlcnNp
b24oKSksCiAgICAgICAgICAgICAgICAgc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoJ21hYycp
XQogCi0gICAgZGVmIGNoZWNrX3N5c19kZXBzKHNlbGYsIG5lZWRzX2h0dHApOgotICAgICAgICBy
ZXN1bHQgPSBjaHJvbWl1bS5DaHJvbWl1bVBvcnQuY2hlY2tfc3lzX2RlcHMoc2VsZiwgbmVlZHNf
aHR0cCkKKyAgICBkZWYgY2hlY2tfYnVpbGQoc2VsZiwgbmVlZHNfaHR0cCk6CisgICAgICAgIHJl
c3VsdCA9IGNocm9taXVtLkNocm9taXVtUG9ydC5jaGVja19idWlsZChzZWxmLCBuZWVkc19odHRw
KQogICAgICAgICByZXN1bHQgPSBzZWxmLl9jaGVja193ZGlmZl9pbnN0YWxsKCkgYW5kIHJlc3Vs
dAogICAgICAgICBpZiBub3QgcmVzdWx0OgogICAgICAgICAgICAgbG9nZ2luZy5lcnJvcignRm9y
IGNvbXBsZXRlIE1hYyBidWlsZCByZXF1aXJlbWVudHMsIHBsZWFzZSBzZWU6JykKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21p
dW1fd2luLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9jaHJvbWl1bV93aW4ucHkKaW5kZXggMjViMWEyYS4uNTU1MjQ0YyAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4u
cHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9j
aHJvbWl1bV93aW4ucHkKQEAgLTYwLDggKzYwLDggQEAgY2xhc3MgQ2hyb21pdW1XaW5Qb3J0KGNo
cm9taXVtLkNocm9taXVtUG9ydCk6CiAgICAgICAgIGRpcnMuYXBwZW5kKHNlbGYuX3dlYmtpdF9i
YXNlbGluZV9wYXRoKCdtYWMnKSkKICAgICAgICAgcmV0dXJuIGRpcnMKIAotICAgIGRlZiBjaGVj
a19zeXNfZGVwcyhzZWxmLCBuZWVkc19odHRwKToKLSAgICAgICAgcmVzdWx0ID0gY2hyb21pdW0u
Q2hyb21pdW1Qb3J0LmNoZWNrX3N5c19kZXBzKHNlbGYsIG5lZWRzX2h0dHApCisgICAgZGVmIGNo
ZWNrX2J1aWxkKHNlbGYsIG5lZWRzX2h0dHApOgorICAgICAgICByZXN1bHQgPSBjaHJvbWl1bS5D
aHJvbWl1bVBvcnQuY2hlY2tfYnVpbGQoc2VsZiwgbmVlZHNfaHR0cCkKICAgICAgICAgaWYgbm90
IHJlc3VsdDoKICAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoJ0ZvciBjb21wbGV0ZSBXaW5kb3dz
IGJ1aWxkIHJlcXVpcmVtZW50cywgcGxlYXNlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAg
J3NlZTonKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9tYWMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L21hYy5weQppbmRleCA5YjcwY2I3Li40ZGVmMTZiIDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQorKysgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQpAQCAt
NjYsOCArNjYsOSBAQCBjbGFzcyBNYWNQb3J0KGJhc2UuUG9ydCk6CiAgICAgICAgIGRpcnMuYXBw
ZW5kKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdtYWMnKSkKICAgICAgICAgcmV0dXJuIGRp
cnMKIAotICAgIGRlZiBjaGVja19zeXNfZGVwcyhzZWxmLCBuZWVkc19odHRwKToKLSAgICAgICAg
aWYgZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFtzZWxmLnNjcmlwdF9wYXRoKCJidWlsZC1kdW1wcmVu
ZGVydHJlZSIpXSwgcmV0dXJuX2V4aXRfY29kZT1UcnVlKSAhPSAwOgorICAgIGRlZiBjaGVja19i
dWlsZChzZWxmLCBuZWVkc19odHRwKToKKyAgICAgICAgaWYgZXhlY3V0aXZlLnJ1bl9jb21tYW5k
KFtzZWxmLnNjcmlwdF9wYXRoKCJidWlsZC1kdW1wcmVuZGVydHJlZSIpXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybl9leGl0X2NvZGU9VHJ1ZSkgIT0gMDoKICAgICAg
ICAgICAgIHJldHVybiBGYWxzZQogCiAgICAgICAgIGRyaXZlcl9wYXRoID0gc2VsZi5fcGF0aF90
b19kcml2ZXIoKQpAQCAtNzUsNyArNzYsOCBAQCBjbGFzcyBNYWNQb3J0KGJhc2UuUG9ydCk6CiAg
ICAgICAgICAgICBsb2dnaW5nLmVycm9yKCJEdW1wUmVuZGVyVHJlZSB3YXMgbm90IGZvdW5kIGF0
ICVzIiAlIGRyaXZlcl9wYXRoKQogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKLSAgICAgICAg
IyBUaGlzIHNob3VsZCBhbHNvIHZhbGlkYXRlIHRoYXQgdGhlIEltYWdlRGlmZiBwYXRoIGlzIHZh
bGlkIChvbmNlIHRoaXMgc2NyaXB0IGtub3dzIGhvdyB0byB1c2UgSW1hZ2VEaWZmKS4KKyAgICAg
ICAgIyBUaGlzIHNob3VsZCBhbHNvIHZhbGlkYXRlIHRoYXQgdGhlIEltYWdlRGlmZiBwYXRoIGlz
IHZhbGlkCisgICAgICAgICMgKG9uY2UgdGhpcyBzY3JpcHQga25vd3MgaG93IHRvIHVzZSBJbWFn
ZURpZmYpLgogICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNDgyNgogICAgICAgICByZXR1cm4gVHJ1ZQogCkBAIC05OCwxNCArMTAwLDYgQEAgY2xhc3Mg
TWFjUG9ydChiYXNlLlBvcnQpOgogICAgICAgICAiIiJTdGFydHMgYSBuZXcgRHJpdmVyIGFuZCBy
ZXR1cm5zIGEgaGFuZGxlIHRvIGl0LiIiIgogICAgICAgICByZXR1cm4gTWFjRHJpdmVyKHNlbGYs
IGltYWdlX3BhdGgsIG9wdGlvbnMpCiAKLSAgICBkZWYgc3RhcnRfaGVscGVyKHNlbGYpOgotICAg
ICAgICAjIFRoaXMgcG9ydCBkb2Vzbid0IHVzZSBhIGhlbHBlciBwcm9jZXNzLgotICAgICAgICBw
YXNzCi0KLSAgICBkZWYgc3RvcF9oZWxwZXIoc2VsZik6Ci0gICAgICAgICMgVGhpcyBwb3J0IGRv
ZXNuJ3QgdXNlIGEgaGVscGVyIHByb2Nlc3MuCi0gICAgICAgIHBhc3MKLQogICAgIGRlZiB0ZXN0
X2Jhc2VfcGxhdGZvcm1fbmFtZXMoc2VsZik6CiAgICAgICAgICMgQXQgdGhlIG1vbWVudCB3ZSBk
b24ndCB1c2UgdGVzdCBwbGF0Zm9ybSBuYW1lcywgYnV0IHdlIGhhdmUKICAgICAgICAgIyB0byBy
ZXR1cm4gc29tZXRoaW5nLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9wYXNzaW5nLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9wYXNzaW5nLnB5CmluZGV4IDAyZTIwNWYuLjI3MzViNGIg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvcGFzc2luZy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L3Bhc3NpbmcucHkKQEAgLTM4LDggKzM4LDggQEAKIAogICAgTm90ZSB0aGF0IGJl
Y2F1c2UgdGhpcyBpcyByZWFsbHkgYWN0aW5nIGFzIGEgd3JhcHBlciBhcm91bmQgdGhlIHVuZGVy
bHlpbmcKICAgIHBvcnQsIHlvdSBtdXN0IGJlIGFibGUgdG8gcnVuIHRoZSB1bmRlcmx5aW5nIHBv
cnQgYXMgd2VsbAotICAgKGNoZWNrX3N5c19kZXBzKCkgbXVzdCBwYXNzIGFuZCB0aGUgbGF5b3V0
X3Rlc3RfaGVscGVyIG11c3Qgd29yaykuIFlvdQotICAgbWF5IGJlIGFibGUgdG8gZ2V0IGFyb3Vu
ZCB0aGlzIHdpdGggLS1ub2NoZWNrLXN5cy1kZXBzIGFuZCAtLW5vc3RhcnQtaGVscGVyLgorICAg
KGNoZWNrX2J1aWxkKCkgYW5kIGNoZWNrX3N5c19kZXBzKCkgbXVzdCBwYXNzIGFuZCBhdXhpbGlh
cnkgYmluYXJpZXMKKyAgIGxpa2UgbGF5b3V0X3Rlc3RfaGVscGVyIGFuZCBodHRwZCBtdXN0IHdv
cmspLgogCiAgICBUaGlzIGltcGxlbWVudGF0aW9uIGFsc28gbW9kaWZpZXMgdGhlIHRlc3QgZXhw
ZWN0YXRpb25zIHNvIHRoYXQgYWxsCiAgICB0ZXN0cyBhcmUgZWl0aGVyIFNLSVBQRUQgb3IgZXhw
ZWN0ZWQgdG8gUEFTUy4iIiIKQEAgLTYwLDcgKzYwLDcgQEAgY2xhc3MgUGFzc2luZ1BvcnQob2Jq
ZWN0KToKIAogICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBuYW1lKToKICAgICAgICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5fX2RlbGVnYXRlLCBuYW1lKQotIAorCiAgICAgZGVmIHN0YXJ0X2RyaXZl
cihzZWxmLCBpbWFnZV9wYXRoLCBvcHRpb25zKToKICAgICAgICAgcmV0dXJuIFBhc3NpbmdEcml2
ZXIoc2VsZiwgaW1hZ2VfcGF0aCwgb3B0aW9ucykKIApAQCAtOTgsMTMgKzk4LDIwIEBAIGNsYXNz
IFBhc3NpbmdEcml2ZXIoYmFzZS5Ecml2ZXIpOgogCiAgICAgICAgIGlmIGltYWdlX2hhc2g6CiAg
ICAgICAgICAgICBpbWFnZV9maWxlbmFtZSA9IHNlbGYuX3BvcnQuZXhwZWN0ZWRfZmlsZW5hbWUo
dGVzdF9uYW1lLCAnLnBuZycpCi0gICAgICAgICAgICBpbWFnZSA9IGZpbGUoaW1hZ2VfZmlsZW5h
bWUsICdyYicpLnJlYWQoKQotICAgICAgICAgICAgb3V0cHV0X2ZpbGUgPSBmaWxlKHNlbGYuX2lt
YWdlX3BhdGgsICd3JykKLSAgICAgICAgICAgIG91dHB1dF9maWxlLndyaXRlKGltYWdlKQotICAg
ICAgICAgICAgb3V0cHV0X2ZpbGUuY2xvc2UoKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgIGltYWdlID0gZmlsZShpbWFnZV9maWxlbmFtZSwgJ3JiJykucmVhZCgpCisgICAgICAg
ICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgICAgICBpbWFnZSA9ICcnCisgICAgICAg
ICAgICBpZiBzZWxmLl9pbWFnZV9wYXRoOgorICAgICAgICAgICAgICAgIG91dHB1dF9maWxlID0g
ZmlsZShzZWxmLl9pbWFnZV9wYXRoLCAndycpCisgICAgICAgICAgICAgICAgb3V0cHV0X2ZpbGUu
d3JpdGUoaW1hZ2UpCisgICAgICAgICAgICAgICAgb3V0cHV0X2ZpbGUuY2xvc2UoKQogICAgICAg
ICAgICAgaGFzaF9maWxlbmFtZSA9IHNlbGYuX3BvcnQuZXhwZWN0ZWRfZmlsZW5hbWUodGVzdF9u
YW1lLAogICAgICAgICAgICAgICAgICcuY2hlY2tzdW0nKQotICAgICAgICAgICAgaGFzaCA9IGZp
bGUoaGFzaF9maWxlbmFtZSwgJ3InKS5yZWFkKCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICBoYXNoID0gZmlsZShoYXNoX2ZpbGVuYW1lLCAncicpLnJlYWQoKQorICAgICAgICAg
ICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICAgICAgaGFzaCA9ICcnCiAgICAgICAgIGVs
c2U6CiAgICAgICAgICAgICBoYXNoID0gTm9uZQogICAgICAgICByZXR1cm4gKEZhbHNlLCBGYWxz
ZSwgaGFzaCwgdGV4dF9vdXRwdXQsIE5vbmUpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKaW5kZXggOGZhMzJiMi4uMjBm
Nzc3NSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC90ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvdGVzdC5weQpAQCAtNTIsOSArNTIsNiBAQCBjbGFzcyBUZXN0UG9ydChiYXNl
LlBvcnQpOgogICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKICAgICAgICAgcmV0
dXJuIFtzZWxmLmJhc2VsaW5lX3BhdGgoKV0KIAotICAgIGRlZiBjaGVja19zeXNfZGVwcyhzZWxm
LCBuZWVkc19odHRwKToKLSAgICAgICAgcmV0dXJuIFRydWUKLQogICAgIGRlZiBkaWZmX2ltYWdl
KHNlbGYsIGFjdHVhbF9maWxlbmFtZSwgZXhwZWN0ZWRfZmlsZW5hbWUsCiAgICAgICAgICAgICAg
ICAgICAgZGlmZl9maWxlbmFtZT1Ob25lKToKICAgICAgICAgcmV0dXJuIEZhbHNlCkBAIC02Miw2
ICs1OSw5IEBAIGNsYXNzIFRlc3RQb3J0KGJhc2UuUG9ydCk6CiAgICAgZGVmIGNvbXBhcmVfdGV4
dChzZWxmLCBhY3R1YWxfdGV4dCwgZXhwZWN0ZWRfdGV4dCk6CiAgICAgICAgIHJldHVybiBGYWxz
ZQogCisgICAgZGVmIGNoZWNrX2J1aWxkKHNlbGYsIG5lZWRzX2h0dHApOgorICAgICAgICByZXR1
cm4gVHJ1ZQorCiAgICAgZGVmIGRpZmZfdGV4dChzZWxmLCBhY3R1YWxfdGV4dCwgZXhwZWN0ZWRf
dGV4dCwKICAgICAgICAgICAgICAgICAgIGFjdHVhbF9maWxlbmFtZSwgZXhwZWN0ZWRfZmlsZW5h
bWUpOgogICAgICAgICByZXR1cm4gJycKQEAgLTkzLDE4ICs5MywxMiBAQCBjbGFzcyBUZXN0UG9y
dChiYXNlLlBvcnQpOgogICAgIGRlZiBzdGFydF93ZWJzb2NrZXRfc2VydmVyKHNlbGYpOgogICAg
ICAgICBwYXNzCiAKLSAgICBkZWYgc3RhcnRfaGVscGVyKHNlbGYpOgotICAgICAgICBwYXNzCi0K
ICAgICBkZWYgc3RvcF9odHRwX3NlcnZlcihzZWxmKToKICAgICAgICAgcGFzcwogCiAgICAgZGVm
IHN0b3Bfd2Vic29ja2V0X3NlcnZlcihzZWxmKToKICAgICAgICAgcGFzcwogCi0gICAgZGVmIHN0
b3BfaGVscGVyKHNlbGYpOgotICAgICAgICBwYXNzCi0KICAgICBkZWYgdGVzdF9leHBlY3RhdGlv
bnMoc2VsZik6CiAgICAgICAgIHJldHVybiAnJwogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQpp
bmRleCAyOWJjZmM3Li4yYjc2NGU5IDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKQEAgLTU1
Miw2ICs1NTIsNyBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICAgICAgICBpbiB0aGUgZm9y
bSB7ZmlsZW5hbWU6ZmlsZW5hbWUsIHRlc3RfcnVuX3RpbWU6dGVzdF9ydW5fdGltZX0KICAgICAg
ICAgICAgIHJlc3VsdF9zdW1tYXJ5OiBzdW1tYXJ5IG9iamVjdCB0byBwb3B1bGF0ZSB3aXRoIHRo
ZSByZXN1bHRzCiAgICAgICAgICIiIgorICAgICAgICBzZWxmLl9tZXRlci51cGRhdGUoJ1N0YXJ0
aW5nIHRlc3Qgc2hlbGxzIC4uLicpCiAgICAgICAgIHRocmVhZHMgPSBzZWxmLl9pbnN0YW50aWF0
ZV90ZXN0X3NoZWxsX3RocmVhZHMoZmlsZV9saXN0LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5KQogCkBAIC02MTQs
OSArNjE1LDExIEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAgICAgICAgIHN0YXJ0X3RpbWUgPSB0aW1l
LnRpbWUoKQogCiAgICAgICAgIGlmIHNlbGYubmVlZHNfaHR0cCgpOgorICAgICAgICAgICAgc2Vs
Zi5fbWV0ZXIudXBkYXRlKCdTdGFydGluZyBIVFRQIHNlcnZlciAuLi4nKQogICAgICAgICAgICAg
c2VsZi5fcG9ydC5zdGFydF9odHRwX3NlcnZlcigpCiAKICAgICAgICAgaWYgc2VsZi5fY29udGFp
bnNfdGVzdHMoc2VsZi5XRUJTT0NLRVRfU1VCRElSKToKKyAgICAgICAgICAgIHNlbGYuX21ldGVy
LnVwZGF0ZSgnU3RhcnRpbmcgV2ViU29ja2V0IHNlcnZlciAuLi4nKQogICAgICAgICAgICAgc2Vs
Zi5fcG9ydC5zdGFydF93ZWJzb2NrZXRfc2VydmVyKCkKICAgICAgICAgICAgICMgc2VsZi5fd2Vi
c29ja2V0X3NlY3VyZV9zZXJ2ZXIuU3RhcnQoKQogCkBAIC0xNDY4LDEzICsxNDcxLDE4IEBAIGRl
ZiBtYWluKG9wdGlvbnMsIGFyZ3MpOgogICAgIHRlc3RfcnVubmVyLnBhcnNlX2V4cGVjdGF0aW9u
cyhwb3J0X29iai50ZXN0X3BsYXRmb3JtX25hbWUoKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3B0aW9ucy50YXJnZXQgPT0gJ0RlYnVnJykKIAotICAgIGlmIG5vdCBvcHRp
b25zLm5vc3RhcnRfaGVscGVyOgotICAgICAgICBwb3J0X29iai5zdGFydF9oZWxwZXIoKQorICAg
IG1ldGVyLnVwZGF0ZSgiQ2hlY2tpbmcgYnVpbGQgLi4uIikKKyAgICBpZiBub3QgcG9ydF9vYmou
Y2hlY2tfYnVpbGQodGVzdF9ydW5uZXIubmVlZHNfaHR0cCgpKToKKyAgICAgICAgc3lzLmV4aXQo
MSkKKworICAgIG1ldGVyLnVwZGF0ZSgiU3RhcnRpbmcgaGVscGVyIC4uLiIpCisgICAgcG9ydF9v
Ymouc3RhcnRfaGVscGVyKCkKIAogICAgICMgQ2hlY2sgdGhhdCB0aGUgc3lzdGVtIGRlcGVuZGVu
Y2llcyAodGhlbWVzLCBmb250cywgLi4uKSBhcmUgY29ycmVjdC4KLSAgICBpZiAobm90IG9wdGlv
bnMubm9jaGVja19zeXNfZGVwcyBhbmQKLSAgICAgICAgIG5vdCBwb3J0X29iai5jaGVja19zeXNf
ZGVwcyh0ZXN0X3J1bm5lci5uZWVkc19odHRwKCkpKToKLSAgICAgICAgc3lzLmV4aXQoMSkKKyAg
ICBpZiBub3Qgb3B0aW9ucy5ub2NoZWNrX3N5c19kZXBzOgorICAgICAgICBtZXRlci51cGRhdGUo
IkNoZWNraW5nIHN5c3RlbSBkZXBlbmRlbmNpZXMgLi4uIikKKyAgICAgICAgaWYgbm90IHBvcnRf
b2JqLmNoZWNrX3N5c19kZXBzKHRlc3RfcnVubmVyLm5lZWRzX2h0dHAoKSk6CisgICAgICAgICAg
ICBzeXMuZXhpdCgxKQogCiAgICAgbWV0ZXIudXBkYXRlKCJQcmVwYXJpbmcgdGVzdHMgLi4uIikK
ICAgICB3cml0ZSA9IGNyZWF0ZV9sb2dnaW5nX3dyaXRlcihvcHRpb25zLCAiZXhwZWN0ZWQiKQpA
QCAtMTQ4OCwxMSArMTQ5Niw5IEBAIGRlZiBtYWluKG9wdGlvbnMsIGFyZ3MpOgogICAgICAgICBp
ZiBvcHRpb25zLmZ1enp5X3BpeGVsX3Rlc3RzOgogICAgICAgICAgICAgdGVzdF9ydW5uZXIuYWRk
X3Rlc3RfdHlwZShmdXp6eV9pbWFnZV9kaWZmLkZ1enp5SW1hZ2VEaWZmKQogCi0gICAgbWV0ZXIu
dXBkYXRlKCJTdGFydGluZyAuLi4iKQogICAgIGhhc19uZXdfZmFpbHVyZXMgPSB0ZXN0X3J1bm5l
ci5ydW4ocmVzdWx0X3N1bW1hcnkpCiAKLSAgICBpZiBub3Qgb3B0aW9ucy5ub3N0YXJ0X2hlbHBl
cjoKLSAgICAgICAgcG9ydF9vYmouc3RvcF9oZWxwZXIoKQorICAgIHBvcnRfb2JqLnN0b3BfaGVs
cGVyKCkKIAogICAgIGxvZ2dpbmcuZGVidWcoIkV4aXQgc3RhdHVzOiAlZCIgJSBoYXNfbmV3X2Zh
aWx1cmVzKQogICAgIHN5cy5leGl0KGhhc19uZXdfZmFpbHVyZXMpCkBAIC0xNjIxLDkgKzE2Mjcs
NiBAQCBkZWYgcGFyc2VfYXJncyhhcmdzPU5vbmUpOgogICAgIG9wdGlvbl9wYXJzZXIuYWRkX29w
dGlvbigiIiwgIi0tZXhwZXJpbWVudGFsLWZ1bGx5LXBhcmFsbGVsIiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0icnVuIGFsbCB0ZXN0cyBpbiBwYXJhbGxlbCIp
Ci0gICAgb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9uKCIiLCAiLS1ub3N0YXJ0LWhlbHBlciIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9
RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9ImRvbid0IHJ1biBsYXlv
dXRfdGVzdF9oZWxwZXIiKQogICAgIHJldHVybiBvcHRpb25fcGFyc2VyLnBhcnNlX2FyZ3MoYXJn
cykKIAogaWYgJ19fbWFpbl9fJyA9PSBfX25hbWVfXzoKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9hdXRvaW5zdGFsbC5weSBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9hdXRvaW5zdGFsbC5weQppbmRleCA0NjdlNmI0
Li42Yzg2NGNmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJk
cGFydHkvYXV0b2luc3RhbGwucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90
aGlyZHBhcnR5L2F1dG9pbnN0YWxsLnB5CkBAIC0yOTMsNyArMjkzLDggQEAgY2xhc3MgSW1wb3J0
ZXIob2JqZWN0KToKICAgICAgICAgcmV0dXJuIE5vbmUKIAogICAgIGRlZiBiaW5kKHNlbGYsIHBh
Y2thZ2VfbmFtZSwgdXJsLCB6aXBfc3VicGF0aCk6Ci0gICAgICAgIF9sb2dnZXIuaW5mbygiYmlu
ZGluZzogJXMgLT4gJXMgc3VicGF0aDogJXMiICUgKHBhY2thZ2VfbmFtZSwgdXJsLCB6aXBfc3Vi
cGF0aCkpCisgICAgICAgIF9sb2dnZXIuZGVidWcoImJpbmRpbmc6ICVzIC0+ICVzIHN1YnBhdGg6
ICVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgKHBhY2thZ2VfbmFtZSwgdXJsLCB6aXBfc3Vi
cGF0aCkpCiAgICAgICAgIHNlbGYucGFja2FnZXNbcGFja2FnZV9uYW1lXSA9ICh1cmwsIHppcF9z
dWJwYXRoKQogCiAK
</data>
<flag name="review"
          id="32588"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="32589"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>