<?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>32305</bug_id>
          
          <creation_ts>2009-12-08 23:38:34 -0800</creation_ts>
          <short_desc>run_command and ScriptError should move into processutils.py</short_desc>
          <delta_ts>2009-12-08 23:51:58 -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="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>169907</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-08 23:38:34 -0800</bug_when>
    <thetext>run_command and ScriptError should move into processutils.py

We need to unify run_command and the other run_ methods.  This is a pre-cursor to that unification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169909</commentid>
    <comment_count>1</comment_count>
      <attachid>44513</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-08 23:42:05 -0800</bug_when>
    <thetext>Created attachment 44513
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169911</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-08 23:43:19 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44513 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169912</commentid>
    <comment_count>3</comment_count>
      <attachid>44513</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-12-08 23:46:36 -0800</bug_when>
    <thetext>Comment on attachment 44513
Patch

Ok.  This is good, but only the first step.  We need an executive class, but we&apos;ll get to that.  Also, there&apos;s the indent issue I mentioned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169913</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-08 23:51:58 -0800</bug_when>
    <thetext>Committed r51888: &lt;http://trac.webkit.org/changeset/51888&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44513</attachid>
            <date>2009-12-08 23:42:05 -0800</date>
            <delta_ts>2009-12-08 23:46:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-32305-20091208234204.patch</filename>
            <type>text/plain</type>
            <size>35424</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA1Y2IxZjNkLi44Yzk2ODcyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMDktMTIt
MDggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHJ1bl9jb21tYW5kIGFuZCBTY3JpcHRFcnJvciBz
aG91bGQgbW92ZSBpbnRvIHByb2Nlc3N1dGlscy5weQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzIzMDUKKworICAgICAgICBUdXJucyBvdXQgdGhlcmUg
YXJlIGEgemlsbGlvbiBjYWxsZXJzIHRvIHJ1bl9jb21tYW5kLgorCisgICAgICAgICogU2NyaXB0
cy9tb2R1bGVzL2NvbW1hbmRzL2Rvd25sb2FkLnB5OgorICAgICAgICAqIFNjcmlwdHMvbW9kdWxl
cy9jb21tYW5kcy9lYXJseV93YXJuaW5nX3N5c3RlbS5weToKKyAgICAgICAgKiBTY3JpcHRzL21v
ZHVsZXMvY29tbWFuZHMvcXVldWVzLnB5OgorICAgICAgICAqIFNjcmlwdHMvbW9kdWxlcy9sYW5k
aW5nc2VxdWVuY2UucHk6CisgICAgICAgICogU2NyaXB0cy9tb2R1bGVzL2xvZ2dpbmdfdW5pdHRl
c3QucHk6CisgICAgICAgICogU2NyaXB0cy9tb2R1bGVzL3Byb2Nlc3N1dGlscy5weToKKyAgICAg
ICAgKiBTY3JpcHRzL21vZHVsZXMvc2NtLnB5OgorICAgICAgICAqIFNjcmlwdHMvbW9kdWxlcy9z
Y21fdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy9tb2R1bGVzL3dvcmtxdWV1ZS5weToK
KyAgICAgICAgKiBTY3JpcHRzL21vZHVsZXMvd29ya3F1ZXVlX3VuaXR0ZXN0LnB5OgorCiAyMDA5
LTEyLTA4ICBLZXZpbiBXYXR0ZXJzICA8a2V2aW53YXR0ZXJzQGdtYWlsLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBLZXZpbiBPbGxpdmllci4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvbW9kdWxlcy9jb21tYW5kcy9kb3dubG9hZC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
bW9kdWxlcy9jb21tYW5kcy9kb3dubG9hZC5weQppbmRleCAyZDVlMzAxLi4zYmZhNTVmIDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY29tbWFuZHMvZG93bmxvYWQucHkK
KysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NvbW1hbmRzL2Rvd25sb2FkLnB5CkBA
IC00MCw3ICs0MCw3IEBAIGZyb20gbW9kdWxlcy5ncmFtbWFyIGltcG9ydCBwbHVyYWxpemUKIGZy
b20gbW9kdWxlcy5sYW5kaW5nc2VxdWVuY2UgaW1wb3J0IExhbmRpbmdTZXF1ZW5jZSwgQ29uZGl0
aW9uYWxMYW5kaW5nU2VxdWVuY2UKIGZyb20gbW9kdWxlcy5sb2dnaW5nIGltcG9ydCBlcnJvciwg
bG9nCiBmcm9tIG1vZHVsZXMubXVsdGljb21tYW5kdG9vbCBpbXBvcnQgQ29tbWFuZAotZnJvbSBt
b2R1bGVzLnNjbSBpbXBvcnQgU2NyaXB0RXJyb3IKK2Zyb20gbW9kdWxlcy5wcm9jZXNzdXRpbHMg
aW1wb3J0IFNjcmlwdEVycm9yCiAKIAogY2xhc3MgQnVpbGRTZXF1ZW5jZShDb25kaXRpb25hbExh
bmRpbmdTZXF1ZW5jZSk6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMv
Y29tbWFuZHMvZWFybHlfd2FybmluZ19zeXN0ZW0ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL21v
ZHVsZXMvY29tbWFuZHMvZWFybHlfd2FybmluZ19zeXN0ZW0ucHkKaW5kZXggYTNmNzY0Ni4uNzVk
NzM3OCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NvbW1hbmRzL2Vh
cmx5X3dhcm5pbmdfc3lzdGVtLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9j
b21tYW5kcy9lYXJseV93YXJuaW5nX3N5c3RlbS5weQpAQCAtMjgsNyArMjgsNyBAQAogIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogCiBmcm9tIG1vZHVsZXMuY29tbWFuZHMucXVldWVzIGltcG9ydCBBYnN0cmFjdFJl
dmlld1F1ZXVlCi1mcm9tIG1vZHVsZXMuc2NtIGltcG9ydCBTY3JpcHRFcnJvcgorZnJvbSBtb2R1
bGVzLnByb2Nlc3N1dGlscyBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gbW9kdWxlcy53ZWJraXRw
b3J0IGltcG9ydCBXZWJLaXRQb3J0CiAKIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVt
KEFic3RyYWN0UmV2aWV3UXVldWUpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9t
b2R1bGVzL2NvbW1hbmRzL3F1ZXVlcy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9j
b21tYW5kcy9xdWV1ZXMucHkKaW5kZXggNmFlZmQwZi4uNWY3MGNlMSAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NvbW1hbmRzL3F1ZXVlcy5weQorKysgYi9XZWJLaXRU
b29scy9TY3JpcHRzL21vZHVsZXMvY29tbWFuZHMvcXVldWVzLnB5CkBAIC0zOCw4ICszOCw3IEBA
IGZyb20gbW9kdWxlcy5sYW5kaW5nc2VxdWVuY2UgaW1wb3J0IExhbmRpbmdTZXF1ZW5jZSwgQ29u
ZGl0aW9uYWxMYW5kaW5nU2VxdWVuY2UsCiBmcm9tIG1vZHVsZXMubG9nZ2luZyBpbXBvcnQgZXJy
b3IsIGxvZwogZnJvbSBtb2R1bGVzLm11bHRpY29tbWFuZHRvb2wgaW1wb3J0IENvbW1hbmQKIGZy
b20gbW9kdWxlcy5wYXRjaGNvbGxlY3Rpb24gaW1wb3J0IFBhdGNoQ29sbGVjdGlvbiwgUGVyc2lz
dGVudFBhdGNoQ29sbGVjdGlvbiwgUGVyc2lzdGVudFBhdGNoQ29sbGVjdGlvbkRlbGVnYXRlCi1m
cm9tIG1vZHVsZXMucHJvY2Vzc3V0aWxzIGltcG9ydCBydW5fYW5kX3Rocm93X2lmX2ZhaWwKLWZy
b20gbW9kdWxlcy5zY20gaW1wb3J0IFNjcmlwdEVycm9yCitmcm9tIG1vZHVsZXMucHJvY2Vzc3V0
aWxzIGltcG9ydCBydW5fYW5kX3Rocm93X2lmX2ZhaWwsIFNjcmlwdEVycm9yCiBmcm9tIG1vZHVs
ZXMuc3RhdHVzYm90IGltcG9ydCBTdGF0dXNCb3QKIGZyb20gbW9kdWxlcy53b3JrcXVldWUgaW1w
b3J0IFdvcmtRdWV1ZSwgV29ya1F1ZXVlRGVsZWdhdGUKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy9tb2R1bGVzL2xhbmRpbmdzZXF1ZW5jZS5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvbW9kdWxlcy9sYW5kaW5nc2VxdWVuY2UucHkKaW5kZXggZWRkYjUzOS4uNzJjMjk1OSAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2xhbmRpbmdzZXF1ZW5jZS5weQor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvbGFuZGluZ3NlcXVlbmNlLnB5CkBAIC0z
MCw3ICszMCw4IEBACiAKIGZyb20gbW9kdWxlcy5jb21tZW50cyBpbXBvcnQgYnVnX2NvbW1lbnRf
ZnJvbV9jb21taXRfdGV4dAogZnJvbSBtb2R1bGVzLmxvZ2dpbmcgaW1wb3J0IGxvZwotZnJvbSBt
b2R1bGVzLnNjbSBpbXBvcnQgU2NyaXB0RXJyb3IsIENoZWNrb3V0TmVlZHNVcGRhdGUKK2Zyb20g
bW9kdWxlcy5wcm9jZXNzdXRpbHMgaW1wb3J0IFNjcmlwdEVycm9yCitmcm9tIG1vZHVsZXMuc2Nt
IGltcG9ydCBDaGVja291dE5lZWRzVXBkYXRlCiBmcm9tIG1vZHVsZXMud2Via2l0cG9ydCBpbXBv
cnQgV2ViS2l0UG9ydAogZnJvbSBtb2R1bGVzLndvcmtxdWV1ZSBpbXBvcnQgV29ya1F1ZXVlCiAK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9sb2dnaW5nX3VuaXR0ZXN0
LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2xvZ2dpbmdfdW5pdHRlc3QucHkKaW5k
ZXggN2Q0MWU1Ni4uMGU3ZWY3OSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1
bGVzL2xvZ2dpbmdfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVz
L2xvZ2dpbmdfdW5pdHRlc3QucHkKQEAgLTMzLDcgKzMzLDcgQEAgaW1wb3J0IHRlbXBmaWxlCiBp
bXBvcnQgdW5pdHRlc3QKIAogZnJvbSBtb2R1bGVzLmxvZ2dpbmcgaW1wb3J0ICoKLWZyb20gbW9k
dWxlcy5zY20gaW1wb3J0IFNjcmlwdEVycm9yCitmcm9tIG1vZHVsZXMucHJvY2Vzc3V0aWxzIGlt
cG9ydCBTY3JpcHRFcnJvcgogCiBjbGFzcyBMb2dnaW5nVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9wcm9jZXNzdXRpbHMu
cHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvcHJvY2Vzc3V0aWxzLnB5CmluZGV4IDY4
Y2YyMTUuLmIwMGU0M2QgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9w
cm9jZXNzdXRpbHMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL3Byb2Nlc3N1
dGlscy5weQpAQCAtMzMsNyArMzMsMzYgQEAgaW1wb3J0IHN1YnByb2Nlc3MKIGltcG9ydCBzeXMK
IAogZnJvbSBtb2R1bGVzLmxvZ2dpbmcgaW1wb3J0IHRlZQotZnJvbSBtb2R1bGVzLnNjbSBpbXBv
cnQgU2NyaXB0RXJyb3IKKworIyBGSVhNRTogVGhlc2UgbWV0aG9kcyBjb3VsZCBhbGwgYmUgdW5p
ZmllZCBpbnRvIG9uZSEKKworY2xhc3MgU2NyaXB0RXJyb3IoRXhjZXB0aW9uKToKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgbWVzc2FnZT1Ob25lLCBzY3JpcHRfYXJncz1Ob25lLCBleGl0X2NvZGU9
Tm9uZSwgb3V0cHV0PU5vbmUsIGN3ZD1Ob25lKToKKyAgICAgICAgaWYgbm90IG1lc3NhZ2U6Cisg
ICAgICAgICAgICBtZXNzYWdlID0gJ0ZhaWxlZCB0byBydW4gIiVzIicgJSBzY3JpcHRfYXJncwor
ICAgICAgICAgICAgaWYgZXhpdF9jb2RlOgorICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gIiBl
eGl0X2NvZGU6ICVkIiAlIGV4aXRfY29kZQorICAgICAgICAgICAgaWYgY3dkOgorICAgICAgICAg
ICAgICAgIG1lc3NhZ2UgKz0gIiBjd2Q6ICVzIiAlIGN3ZAorCisgICAgICAgIEV4Y2VwdGlvbi5f
X2luaXRfXyhzZWxmLCBtZXNzYWdlKQorICAgICAgICBzZWxmLnNjcmlwdF9hcmdzID0gc2NyaXB0
X2FyZ3MgIyAnYXJncycgaXMgYWxyZWFkeSB1c2VkIGJ5IEV4Y2VwdGlvbgorICAgICAgICBzZWxm
LmV4aXRfY29kZSA9IGV4aXRfY29kZQorICAgICAgICBzZWxmLm91dHB1dCA9IG91dHB1dAorICAg
ICAgICBzZWxmLmN3ZCA9IGN3ZAorCisgICAgZGVmIG1lc3NhZ2Vfd2l0aF9vdXRwdXQoc2VsZiwg
b3V0cHV0X2xpbWl0PTUwMCk6CisgICAgICAgIGlmIHNlbGYub3V0cHV0OgorICAgICAgICAgICAg
aWYgb3V0cHV0X2xpbWl0IGFuZCBsZW4oc2VsZi5vdXRwdXQpID4gb3V0cHV0X2xpbWl0OgorICAg
ICAgICAgICAgICAgICByZXR1cm4gIiVzXG5MYXN0ICVzIGNoYXJhY3RlcnMgb2Ygb3V0cHV0Olxu
JXMiICUgKHNlbGYsIG91dHB1dF9saW1pdCwgc2VsZi5vdXRwdXRbLW91dHB1dF9saW1pdDpdKQor
ICAgICAgICAgICAgcmV0dXJuICIlc1xuJXMiICUgKHNlbGYsIHNlbGYub3V0cHV0KQorICAgICAg
ICByZXR1cm4gc3RyKHNlbGYpCisKK2RlZiBkZWZhdWx0X2Vycm9yX2hhbmRsZXIoZXJyb3IpOgor
ICAgICAgICByYWlzZSBlcnJvcgorCitkZWYgaWdub3JlX2Vycm9yKGVycm9yKToKKyAgICBwYXNz
CiAKIGRlZiBydW5fY29tbWFuZF93aXRoX3RlZWRfb3V0cHV0KGFyZ3MsIHRlZWRfb3V0cHV0KToK
ICAgICBjaGlsZF9wcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihhcmdzLCBzdGRvdXQ9c3VicHJv
Y2Vzcy5QSVBFLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpCkBAIC00Niw2ICs3NSwyNyBAQCBk
ZWYgcnVuX2NvbW1hbmRfd2l0aF90ZWVkX291dHB1dChhcmdzLCB0ZWVkX291dHB1dCk6CiAgICAg
ICAgICAgICByZXR1cm4gY2hpbGRfcHJvY2Vzcy5wb2xsKCkKICAgICAgICAgdGVlZF9vdXRwdXQu
d3JpdGUob3V0cHV0X2xpbmUpCiAKK2RlZiBydW5fY29tbWFuZChhcmdzLCBjd2Q9Tm9uZSwgaW5w
dXQ9Tm9uZSwgZXJyb3JfaGFuZGxlcj1kZWZhdWx0X2Vycm9yX2hhbmRsZXIsIHJldHVybl9leGl0
X2NvZGU9RmFsc2UsIHJldHVybl9zdGRlcnI9VHJ1ZSk6CisgICAgaWYgaGFzYXR0cihpbnB1dCwg
J3JlYWQnKTogIyBDaGVjayBpZiB0aGUgaW5wdXQgaXMgYSBmaWxlLgorICAgICAgICBzdGRpbiA9
IGlucHV0CisgICAgICAgIHN0cmluZ190b19jb21tdW5pY2F0ZSA9IE5vbmUKKyAgICBlbHNlOgor
ICAgICAgICBzdGRpbiA9IHN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBlbHNlIE5vbmUKKyAgICAg
ICAgc3RyaW5nX3RvX2NvbW11bmljYXRlID0gaW5wdXQKKyAgICBpZiByZXR1cm5fc3RkZXJyOgor
ICAgICAgICBzdGRlcnIgPSBzdWJwcm9jZXNzLlNURE9VVAorICAgIGVsc2U6CisgICAgICAgIHN0
ZGVyciA9IE5vbmUKKyAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihhcmdzLCBzdGRpbj1z
dGRpbiwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgc3RkZXJyPXN0ZGVyciwgY3dkPWN3ZCkKKyAg
ICBvdXRwdXQgPSBwcm9jZXNzLmNvbW11bmljYXRlKHN0cmluZ190b19jb21tdW5pY2F0ZSlbMF0K
KyAgICBleGl0X2NvZGUgPSBwcm9jZXNzLndhaXQoKQorICAgIGlmIGV4aXRfY29kZToKKyAgICAg
ICAgc2NyaXB0X2Vycm9yID0gU2NyaXB0RXJyb3Ioc2NyaXB0X2FyZ3M9YXJncywgZXhpdF9jb2Rl
PWV4aXRfY29kZSwgb3V0cHV0PW91dHB1dCwgY3dkPWN3ZCkKKyAgICAgICAgZXJyb3JfaGFuZGxl
cihzY3JpcHRfZXJyb3IpCisgICAgaWYgcmV0dXJuX2V4aXRfY29kZToKKyAgICAgICAgcmV0dXJu
IGV4aXRfY29kZQorICAgIHJldHVybiBvdXRwdXQKKwogZGVmIHJ1bl9hbmRfdGhyb3dfaWZfZmFp
bChhcmdzLCBxdWlldD1GYWxzZSk6CiAgICAgIyBDYWNoZSB0aGUgY2hpbGQncyBvdXRwdXQgbG9j
YWxseSBzbyBpdCBjYW4gYmUgdXNlZCBmb3IgZXJyb3IgcmVwb3J0cy4KICAgICBjaGlsZF9vdXRf
ZmlsZSA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvbW9kdWxlcy9zY20ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvc2NtLnB5Cmlu
ZGV4IGQwZGI5ODQuLmI5OTg4NGQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9k
dWxlcy9zY20ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL3NjbS5weQpAQCAt
MzYsNiArMzYsNyBAQCBpbXBvcnQgc3VicHJvY2VzcwogIyBJbXBvcnQgV2ViS2l0LXNwZWNpZmlj
IG1vZHVsZXMuCiBmcm9tIG1vZHVsZXMuY2hhbmdlbG9ncyBpbXBvcnQgQ2hhbmdlTG9nCiBmcm9t
IG1vZHVsZXMubG9nZ2luZyBpbXBvcnQgZXJyb3IsIGxvZworZnJvbSBtb2R1bGVzLnByb2Nlc3N1
dGlscyBpbXBvcnQgcnVuX2NvbW1hbmQsIFNjcmlwdEVycm9yLCBpZ25vcmVfZXJyb3IKIAogZGVm
IGRldGVjdF9zY21fc3lzdGVtKHBhdGgpOgogICAgIGlmIFNWTi5pbl93b3JraW5nX2RpcmVjdG9y
eShwYXRoKToKQEAgLTc4LDQ0ICs3OSwxNiBAQCBjbGFzcyBDb21taXRNZXNzYWdlOgogICAgICAg
ICByZXR1cm4gIlxuIi5qb2luKHNlbGYubWVzc2FnZV9saW5lcykgKyAiXG4iCiAKIAotY2xhc3Mg
U2NyaXB0RXJyb3IoRXhjZXB0aW9uKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZT1O
b25lLCBzY3JpcHRfYXJncz1Ob25lLCBleGl0X2NvZGU9Tm9uZSwgb3V0cHV0PU5vbmUsIGN3ZD1O
b25lKToKLSAgICAgICAgaWYgbm90IG1lc3NhZ2U6Ci0gICAgICAgICAgICBtZXNzYWdlID0gJ0Zh
aWxlZCB0byBydW4gIiVzIicgJSBzY3JpcHRfYXJncwotICAgICAgICAgICAgaWYgZXhpdF9jb2Rl
OgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gIiBleGl0X2NvZGU6ICVkIiAlIGV4aXRfY29k
ZQotICAgICAgICAgICAgaWYgY3dkOgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gIiBjd2Q6
ICVzIiAlIGN3ZAotCi0gICAgICAgIEV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmLCBtZXNzYWdlKQot
ICAgICAgICBzZWxmLnNjcmlwdF9hcmdzID0gc2NyaXB0X2FyZ3MgIyAnYXJncycgaXMgYWxyZWFk
eSB1c2VkIGJ5IEV4Y2VwdGlvbgotICAgICAgICBzZWxmLmV4aXRfY29kZSA9IGV4aXRfY29kZQot
ICAgICAgICBzZWxmLm91dHB1dCA9IG91dHB1dAotICAgICAgICBzZWxmLmN3ZCA9IGN3ZAotCi0g
ICAgZGVmIG1lc3NhZ2Vfd2l0aF9vdXRwdXQoc2VsZiwgb3V0cHV0X2xpbWl0PTUwMCk6Ci0gICAg
ICAgIGlmIHNlbGYub3V0cHV0OgotICAgICAgICAgICAgaWYgb3V0cHV0X2xpbWl0IGFuZCBsZW4o
c2VsZi5vdXRwdXQpID4gb3V0cHV0X2xpbWl0OgotICAgICAgICAgICAgICAgICByZXR1cm4gIiVz
XG5MYXN0ICVzIGNoYXJhY3RlcnMgb2Ygb3V0cHV0OlxuJXMiICUgKHNlbGYsIG91dHB1dF9saW1p
dCwgc2VsZi5vdXRwdXRbLW91dHB1dF9saW1pdDpdKQotICAgICAgICAgICAgcmV0dXJuICIlc1xu
JXMiICUgKHNlbGYsIHNlbGYub3V0cHV0KQotICAgICAgICByZXR1cm4gc3RyKHNlbGYpCi0KLQog
Y2xhc3MgQ2hlY2tvdXROZWVkc1VwZGF0ZShTY3JpcHRFcnJvcik6CiAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHNjcmlwdF9hcmdzLCBleGl0X2NvZGUsIG91dHB1dCwgY3dkKToKICAgICAgICAgU2Ny
aXB0RXJyb3IuX19pbml0X18oc2VsZiwgc2NyaXB0X2FyZ3M9c2NyaXB0X2FyZ3MsIGV4aXRfY29k
ZT1leGl0X2NvZGUsIG91dHB1dD1vdXRwdXQsIGN3ZD1jd2QpCiAKIAotZGVmIGRlZmF1bHRfZXJy
b3JfaGFuZGxlcihlcnJvcik6Ci0gICAgcmFpc2UgZXJyb3IKLQogZGVmIGNvbW1pdF9lcnJvcl9o
YW5kbGVyKGVycm9yKToKICAgICBpZiByZS5zZWFyY2goInJlc291cmNlIG91dCBvZiBkYXRlIiwg
ZXJyb3Iub3V0cHV0KToKICAgICAgICAgcmFpc2UgQ2hlY2tvdXROZWVkc1VwZGF0ZShzY3JpcHRf
YXJncz1lcnJvci5zY3JpcHRfYXJncywgZXhpdF9jb2RlPWVycm9yLmV4aXRfY29kZSwgb3V0cHV0
PWVycm9yLm91dHB1dCwgY3dkPWVycm9yLmN3ZCkKICAgICBkZWZhdWx0X2Vycm9yX2hhbmRsZXIo
ZXJyb3IpCiAKLWRlZiBpZ25vcmVfZXJyb3IoZXJyb3IpOgotICAgIHBhc3MKIAogY2xhc3MgU0NN
OgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjd2QsIGRyeXJ1bj1GYWxzZSk6CkBAIC0xMjMsMjgg
Kzk2LDYgQEAgY2xhc3MgU0NNOgogICAgICAgICBzZWxmLmNoZWNrb3V0X3Jvb3QgPSBzZWxmLmZp
bmRfY2hlY2tvdXRfcm9vdChzZWxmLmN3ZCkKICAgICAgICAgc2VsZi5kcnlydW4gPSBkcnlydW4K
IAotICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgcnVuX2NvbW1hbmQoYXJncywgY3dkPU5vbmUs
IGlucHV0PU5vbmUsIGVycm9yX2hhbmRsZXI9ZGVmYXVsdF9lcnJvcl9oYW5kbGVyLCByZXR1cm5f
ZXhpdF9jb2RlPUZhbHNlLCByZXR1cm5fc3RkZXJyPVRydWUpOgotICAgICAgICBpZiBoYXNhdHRy
KGlucHV0LCAncmVhZCcpOiAjIENoZWNrIGlmIHRoZSBpbnB1dCBpcyBhIGZpbGUuCi0gICAgICAg
ICAgICBzdGRpbiA9IGlucHV0Ci0gICAgICAgICAgICBzdHJpbmdfdG9fY29tbXVuaWNhdGUgPSBO
b25lCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzdGRpbiA9IHN1YnByb2Nlc3MuUElQRSBp
ZiBpbnB1dCBlbHNlIE5vbmUKLSAgICAgICAgICAgIHN0cmluZ190b19jb21tdW5pY2F0ZSA9IGlu
cHV0Ci0gICAgICAgIGlmIHJldHVybl9zdGRlcnI6Ci0gICAgICAgICAgICBzdGRlcnIgPSBzdWJw
cm9jZXNzLlNURE9VVAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc3RkZXJyID0gTm9uZQot
ICAgICAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihhcmdzLCBzdGRpbj1zdGRpbiwgc3Rk
b3V0PXN1YnByb2Nlc3MuUElQRSwgc3RkZXJyPXN0ZGVyciwgY3dkPWN3ZCkKLSAgICAgICAgb3V0
cHV0ID0gcHJvY2Vzcy5jb21tdW5pY2F0ZShzdHJpbmdfdG9fY29tbXVuaWNhdGUpWzBdCi0gICAg
ICAgIGV4aXRfY29kZSA9IHByb2Nlc3Mud2FpdCgpCi0gICAgICAgIGlmIGV4aXRfY29kZToKLSAg
ICAgICAgICAgIHNjcmlwdF9lcnJvciA9IFNjcmlwdEVycm9yKHNjcmlwdF9hcmdzPWFyZ3MsIGV4
aXRfY29kZT1leGl0X2NvZGUsIG91dHB1dD1vdXRwdXQsIGN3ZD1jd2QpCi0gICAgICAgICAgICBl
cnJvcl9oYW5kbGVyKHNjcmlwdF9lcnJvcikKLSAgICAgICAgaWYgcmV0dXJuX2V4aXRfY29kZToK
LSAgICAgICAgICAgIHJldHVybiBleGl0X2NvZGUKLSAgICAgICAgcmV0dXJuIG91dHB1dAotCiAg
ICAgZGVmIHNjcmlwdHNfZGlyZWN0b3J5KHNlbGYpOgogICAgICAgICByZXR1cm4gb3MucGF0aC5q
b2luKHNlbGYuY2hlY2tvdXRfcm9vdCwgIldlYktpdFRvb2xzIiwgIlNjcmlwdHMiKQogCkBAIC0x
NTMsNyArMTA0LDcgQEAgY2xhc3MgU0NNOgogCiAgICAgZGVmIGVuc3VyZV9jbGVhbl93b3JraW5n
X2RpcmVjdG9yeShzZWxmLCBmb3JjZV9jbGVhbik6CiAgICAgICAgIGlmIG5vdCBmb3JjZV9jbGVh
biBhbmQgbm90IHNlbGYud29ya2luZ19kaXJlY3RvcnlfaXNfY2xlYW4oKToKLSAgICAgICAgICAg
IHByaW50IHNlbGYucnVuX2NvbW1hbmQoc2VsZi5zdGF0dXNfY29tbWFuZCgpLCBlcnJvcl9oYW5k
bGVyPWlnbm9yZV9lcnJvcikKKyAgICAgICAgICAgIHByaW50IHJ1bl9jb21tYW5kKHNlbGYuc3Rh
dHVzX2NvbW1hbmQoKSwgZXJyb3JfaGFuZGxlcj1pZ25vcmVfZXJyb3IpCiAgICAgICAgICAgICBy
YWlzZSBTY3JpcHRFcnJvcihtZXNzYWdlPSJXb3JraW5nIGRpcmVjdG9yeSBoYXMgbW9kaWZpY2F0
aW9ucywgcGFzcyAtLWZvcmNlLWNsZWFuIG9yIC0tbm8tY2xlYW4gdG8gY29udGludWUuIikKICAg
ICAgICAgCiAgICAgICAgIGxvZygiQ2xlYW5pbmcgd29ya2luZyBkaXJlY3RvcnkiKQpAQCAtMTc5
LDExICsxMzAsMTEgQEAgY2xhc3MgU0NNOgogICAgICAgICBpZiBmb3JjZToKICAgICAgICAgICAg
IGFyZ3MuYXBwZW5kKCctLWZvcmNlJykKIAotICAgICAgICBzZWxmLnJ1bl9jb21tYW5kKGFyZ3Ms
IGlucHV0PWN1cmxfcHJvY2Vzcy5zdGRvdXQpCisgICAgICAgIHJ1bl9jb21tYW5kKGFyZ3MsIGlu
cHV0PWN1cmxfcHJvY2Vzcy5zdGRvdXQpCiAKICAgICBkZWYgcnVuX3N0YXR1c19hbmRfZXh0cmFj
dF9maWxlbmFtZXMoc2VsZiwgc3RhdHVzX2NvbW1hbmQsIHN0YXR1c19yZWdleHApOgogICAgICAg
ICBmaWxlbmFtZXMgPSBbXQotICAgICAgICBmb3IgbGluZSBpbiBzZWxmLnJ1bl9jb21tYW5kKHN0
YXR1c19jb21tYW5kKS5zcGxpdGxpbmVzKCk6CisgICAgICAgIGZvciBsaW5lIGluIHJ1bl9jb21t
YW5kKHN0YXR1c19jb21tYW5kKS5zcGxpdGxpbmVzKCk6CiAgICAgICAgICAgICBtYXRjaCA9IHJl
LnNlYXJjaChzdGF0dXNfcmVnZXhwLCBsaW5lKQogICAgICAgICAgICAgaWYgbm90IG1hdGNoOgog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCkBAIC0zMjEsNyArMjcyLDcgQEAgY2xhc3MgU1ZOKFND
TSk6CiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIHZhbHVlX2Zyb21fc3ZuX2luZm8oY2xzLCBw
YXRoLCBmaWVsZF9uYW1lKToKICAgICAgICAgc3ZuX2luZm9fYXJncyA9IFsnc3ZuJywgJ2luZm8n
LCBwYXRoXQotICAgICAgICBpbmZvX291dHB1dCA9IGNscy5ydW5fY29tbWFuZChzdm5faW5mb19h
cmdzKS5yc3RyaXAoKQorICAgICAgICBpbmZvX291dHB1dCA9IHJ1bl9jb21tYW5kKHN2bl9pbmZv
X2FyZ3MpLnJzdHJpcCgpCiAgICAgICAgIG1hdGNoID0gcmUuc2VhcmNoKCJeJXM6ICg/UDx2YWx1
ZT4uKykkIiAlIGZpZWxkX25hbWUsIGluZm9fb3V0cHV0LCByZS5NVUxUSUxJTkUpCiAgICAgICAg
IGlmIG5vdCBtYXRjaDoKICAgICAgICAgICAgIHJhaXNlIFNjcmlwdEVycm9yKHNjcmlwdF9hcmdz
PXN2bl9pbmZvX2FyZ3MsIG1lc3NhZ2U9J3N2biBpbmZvIGRpZCBub3QgY29udGFpbiBhICVzLicg
JSBmaWVsZF9uYW1lKQpAQCAtMzQ5LDE1ICszMDAsMTUgQEAgY2xhc3MgU1ZOKFNDTSk6CiAKICAg
ICBkZWYgc3ZuX3ZlcnNpb24oc2VsZik6CiAgICAgICAgIGlmIG5vdCBzZWxmLmNhY2hlZF92ZXJz
aW9uOgotICAgICAgICAgICAgc2VsZi5jYWNoZWRfdmVyc2lvbiA9IHNlbGYucnVuX2NvbW1hbmQo
Wydzdm4nLCAnLS12ZXJzaW9uJywgJy0tcXVpZXQnXSkKKyAgICAgICAgICAgIHNlbGYuY2FjaGVk
X3ZlcnNpb24gPSBydW5fY29tbWFuZChbJ3N2bicsICctLXZlcnNpb24nLCAnLS1xdWlldCddKQog
ICAgICAgICAKICAgICAgICAgcmV0dXJuIHNlbGYuY2FjaGVkX3ZlcnNpb24KIAogICAgIGRlZiB3
b3JraW5nX2RpcmVjdG9yeV9pc19jbGVhbihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYucnVu
X2NvbW1hbmQoWydzdm4nLCAnZGlmZiddKSA9PSAiIgorICAgICAgICByZXR1cm4gcnVuX2NvbW1h
bmQoWydzdm4nLCAnZGlmZiddKSA9PSAiIgogCiAgICAgZGVmIGNsZWFuX3dvcmtpbmdfZGlyZWN0
b3J5KHNlbGYpOgotICAgICAgICBzZWxmLnJ1bl9jb21tYW5kKFsnc3ZuJywgJ3JldmVydCcsICct
UicsICcuJ10pCisgICAgICAgIHJ1bl9jb21tYW5kKFsnc3ZuJywgJ3JldmVydCcsICctUicsICcu
J10pCiAKICAgICBkZWYgc3RhdHVzX2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJldHVybiBbJ3N2
bicsICdzdGF0dXMnXQpAQCAtMzc3LDEwICszMjgsMTAgQEAgY2xhc3MgU1ZOKFNDTSk6CiAgICAg
ICAgIHJldHVybiAic3ZuIgogCiAgICAgZGVmIGNyZWF0ZV9wYXRjaChzZWxmKToKLSAgICAgICAg
cmV0dXJuIHNlbGYucnVuX2NvbW1hbmQoc2VsZi5zY3JpcHRfcGF0aCgic3ZuLWNyZWF0ZS1wYXRj
aCIpLCBjd2Q9c2VsZi5jaGVja291dF9yb290LCByZXR1cm5fc3RkZXJyPUZhbHNlKQorICAgICAg
ICByZXR1cm4gcnVuX2NvbW1hbmQoc2VsZi5zY3JpcHRfcGF0aCgic3ZuLWNyZWF0ZS1wYXRjaCIp
LCBjd2Q9c2VsZi5jaGVja291dF9yb290LCByZXR1cm5fc3RkZXJyPUZhbHNlKQogCiAgICAgZGVm
IGRpZmZfZm9yX3JldmlzaW9uKHNlbGYsIHJldmlzaW9uKToKLSAgICAgICAgcmV0dXJuIHNlbGYu
cnVuX2NvbW1hbmQoWydzdm4nLCAnZGlmZicsICctYycsIHN0cihyZXZpc2lvbildKQorICAgICAg
ICByZXR1cm4gcnVuX2NvbW1hbmQoWydzdm4nLCAnZGlmZicsICctYycsIHN0cihyZXZpc2lvbild
KQogCiAgICAgZGVmIF9yZXBvc2l0b3J5X3VybChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYu
dmFsdWVfZnJvbV9zdm5faW5mbyhzZWxmLmNoZWNrb3V0X3Jvb3QsICdVUkwnKQpAQCAtMzkwLDIw
ICszNDEsMjAgQEAgY2xhc3MgU1ZOKFNDTSk6CiAgICAgICAgIHN2bl9tZXJnZV9hcmdzID0gWydz
dm4nLCAnbWVyZ2UnLCAnLS1ub24taW50ZXJhY3RpdmUnLCAnLWMnLCAnLSVzJyAlIHJldmlzaW9u
LCBzZWxmLl9yZXBvc2l0b3J5X3VybCgpXQogICAgICAgICBsb2coIldBUk5JTkc6IHN2biBtZXJn
ZSBoYXMgYmVlbiBrbm93biB0byB0YWtlIG1vcmUgdGhhbiAxMCBtaW51dGVzIHRvIGNvbXBsZXRl
LiAgSXQgaXMgcmVjb21tZW5kZWQgeW91IHVzZSBnaXQgZm9yIHJvbGxvdXRzLiIpCiAgICAgICAg
IGxvZygiUnVubmluZyAnJXMnIiAlICIgIi5qb2luKHN2bl9tZXJnZV9hcmdzKSkKLSAgICAgICAg
c2VsZi5ydW5fY29tbWFuZChzdm5fbWVyZ2VfYXJncykKKyAgICAgICAgcnVuX2NvbW1hbmQoc3Zu
X21lcmdlX2FyZ3MpCiAKICAgICBkZWYgcmV2ZXJ0X2ZpbGVzKHNlbGYsIGZpbGVfcGF0aHMpOgot
ICAgICAgICBzZWxmLnJ1bl9jb21tYW5kKFsnc3ZuJywgJ3JldmVydCddICsgZmlsZV9wYXRocykK
KyAgICAgICAgcnVuX2NvbW1hbmQoWydzdm4nLCAncmV2ZXJ0J10gKyBmaWxlX3BhdGhzKQogCiAg
ICAgZGVmIGNvbW1pdF93aXRoX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSk6CiAgICAgICAgIGlmIHNl
bGYuZHJ5cnVuOgogICAgICAgICAgICAgIyBSZXR1cm4gYSBzdHJpbmcgd2hpY2ggbG9va3MgbGlr
ZSBhIGNvbW1pdCBzbyB0aGF0IHRoaW5ncyB3aGljaCBwYXJzZSB0aGlzIG91dHB1dCB3aWxsIHN1
Y2NlZWQuCiAgICAgICAgICAgICByZXR1cm4gIkRyeSBydW4sIG5vIGNvbW1pdC5cbkNvbW1pdHRl
ZCByZXZpc2lvbiAwLiIKLSAgICAgICAgcmV0dXJuIHNlbGYucnVuX2NvbW1hbmQoWydzdm4nLCAn
Y29tbWl0JywgJy1tJywgbWVzc2FnZV0sIGVycm9yX2hhbmRsZXI9Y29tbWl0X2Vycm9yX2hhbmRs
ZXIpCisgICAgICAgIHJldHVybiBydW5fY29tbWFuZChbJ3N2bicsICdjb21taXQnLCAnLW0nLCBt
ZXNzYWdlXSwgZXJyb3JfaGFuZGxlcj1jb21taXRfZXJyb3JfaGFuZGxlcikKIAogICAgIGRlZiBz
dm5fY29tbWl0X2xvZyhzZWxmLCBzdm5fcmV2aXNpb24pOgogICAgICAgICBzdm5fcmV2aXNpb24g
PSBzZWxmLnN0cmlwX3JfZnJvbV9zdm5fcmV2aXNpb24oc3RyKHN2bl9yZXZpc2lvbikpCi0gICAg
ICAgIHJldHVybiBzZWxmLnJ1bl9jb21tYW5kKFsnc3ZuJywgJ2xvZycsICctLW5vbi1pbnRlcmFj
dGl2ZScsICctLXJldmlzaW9uJywgc3ZuX3JldmlzaW9uXSk7CisgICAgICAgIHJldHVybiBydW5f
Y29tbWFuZChbJ3N2bicsICdsb2cnLCAnLS1ub24taW50ZXJhY3RpdmUnLCAnLS1yZXZpc2lvbics
IHN2bl9yZXZpc2lvbl0pOwogCiAgICAgZGVmIGxhc3Rfc3ZuX2NvbW1pdF9sb2coc2VsZik6CiAg
ICAgICAgICMgQkFTRSBpcyB0aGUgY2hlY2tvdXQgcmV2aXNpb24sIEhFQUQgaXMgdGhlIHJlbW90
ZSByZXBvc2l0b3J5IHJldmlzaW9uCkBAIC00MTcsMTIgKzM2OCwxMiBAQCBjbGFzcyBHaXQoU0NN
KToKIAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBpbl93b3JraW5nX2RpcmVjdG9yeShjbHMs
IHBhdGgpOgotICAgICAgICByZXR1cm4gY2xzLnJ1bl9jb21tYW5kKFsnZ2l0JywgJ3Jldi1wYXJz
ZScsICctLWlzLWluc2lkZS13b3JrLXRyZWUnXSwgY3dkPXBhdGgsIGVycm9yX2hhbmRsZXI9aWdu
b3JlX2Vycm9yKS5yc3RyaXAoKSA9PSAidHJ1ZSIKKyAgICAgICAgcmV0dXJuIHJ1bl9jb21tYW5k
KFsnZ2l0JywgJ3Jldi1wYXJzZScsICctLWlzLWluc2lkZS13b3JrLXRyZWUnXSwgY3dkPXBhdGgs
IGVycm9yX2hhbmRsZXI9aWdub3JlX2Vycm9yKS5yc3RyaXAoKSA9PSAidHJ1ZSIKIAogICAgIEBj
bGFzc21ldGhvZAogICAgIGRlZiBmaW5kX2NoZWNrb3V0X3Jvb3QoY2xzLCBwYXRoKToKICAgICAg
ICAgIyAiZ2l0IHJldi1wYXJzZSAtLXNob3ctY2R1cCIgd291bGQgYmUgYW5vdGhlciB3YXkgdG8g
Z2V0IHRvIHRoZSByb290Ci0gICAgICAgIChjaGVja291dF9yb290LCBkb3RfZ2l0KSA9IG9zLnBh
dGguc3BsaXQoY2xzLnJ1bl9jb21tYW5kKFsnZ2l0JywgJ3Jldi1wYXJzZScsICctLWdpdC1kaXIn
XSwgY3dkPXBhdGgpKQorICAgICAgICAoY2hlY2tvdXRfcm9vdCwgZG90X2dpdCkgPSBvcy5wYXRo
LnNwbGl0KHJ1bl9jb21tYW5kKFsnZ2l0JywgJ3Jldi1wYXJzZScsICctLWdpdC1kaXInXSwgY3dk
PXBhdGgpKQogICAgICAgICAjIElmIHdlIHdlcmUgdXNpbmcgMi42ICMgY2hlY2tvdXRfcm9vdCA9
IG9zLnBhdGgucmVscGF0aChjaGVja291dF9yb290LCBwYXRoKQogICAgICAgICBpZiBub3Qgb3Mu
cGF0aC5pc2FicyhjaGVja291dF9yb290KTogIyBTb21ldGltZXMgZ2l0IHJldHVybnMgcmVsYXRp
dmUgcGF0aHMKICAgICAgICAgICAgIGNoZWNrb3V0X3Jvb3QgPSBvcy5wYXRoLmpvaW4ocGF0aCwg
Y2hlY2tvdXRfcm9vdCkKQEAgLTQzNCwyMyArMzg1LDIzIEBAIGNsYXNzIEdpdChTQ00pOgogCiAK
ICAgICBkZWYgZGlzY2FyZF9sb2NhbF9jb21taXRzKHNlbGYpOgotICAgICAgICBzZWxmLnJ1bl9j
b21tYW5kKFsnZ2l0JywgJ3Jlc2V0JywgJy0taGFyZCcsICd0cnVuayddKQorICAgICAgICBydW5f
Y29tbWFuZChbJ2dpdCcsICdyZXNldCcsICctLWhhcmQnLCAndHJ1bmsnXSkKICAgICAKICAgICBk
ZWYgbG9jYWxfY29tbWl0cyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYucnVuX2NvbW1hbmQo
WydnaXQnLCAnbG9nJywgJy0tcHJldHR5PW9uZWxpbmUnLCAnSEVBRC4uLnRydW5rJ10pLnNwbGl0
bGluZXMoKQorICAgICAgICByZXR1cm4gcnVuX2NvbW1hbmQoWydnaXQnLCAnbG9nJywgJy0tcHJl
dHR5PW9uZWxpbmUnLCAnSEVBRC4uLnRydW5rJ10pLnNwbGl0bGluZXMoKQogCiAgICAgZGVmIHJl
YmFzZV9pbl9wcm9ncmVzcyhzZWxmKToKICAgICAgICAgcmV0dXJuIG9zLnBhdGguZXhpc3RzKG9z
LnBhdGguam9pbihzZWxmLmNoZWNrb3V0X3Jvb3QsICcuZ2l0L3JlYmFzZS1hcHBseScpKQogCiAg
ICAgZGVmIHdvcmtpbmdfZGlyZWN0b3J5X2lzX2NsZWFuKHNlbGYpOgotICAgICAgICByZXR1cm4g
c2VsZi5ydW5fY29tbWFuZChbJ2dpdCcsICdkaWZmLWluZGV4JywgJ0hFQUQnXSkgPT0gIiIKKyAg
ICAgICAgcmV0dXJuIHJ1bl9jb21tYW5kKFsnZ2l0JywgJ2RpZmYtaW5kZXgnLCAnSEVBRCddKSA9
PSAiIgogCiAgICAgZGVmIGNsZWFuX3dvcmtpbmdfZGlyZWN0b3J5KHNlbGYpOgogICAgICAgICAj
IENvdWxkIHJ1biBnaXQgY2xlYW4gaGVyZSB0b28sIGJ1dCB0aGF0IHdvdWxkbid0IG1hdGNoIHdv
cmtpbmdfZGlyZWN0b3J5X2lzX2NsZWFuCi0gICAgICAgIHNlbGYucnVuX2NvbW1hbmQoWydnaXQn
LCAncmVzZXQnLCAnLS1oYXJkJywgJ0hFQUQnXSkKKyAgICAgICAgcnVuX2NvbW1hbmQoWydnaXQn
LCAncmVzZXQnLCAnLS1oYXJkJywgJ0hFQUQnXSkKICAgICAgICAgIyBBYm9ydGluZyByZWJhc2Ug
ZXZlbiB0aG91Z2ggdGhpcyBkb2VzIG5vdCBtYXRjaCB3b3JraW5nX2RpcmVjdG9yeV9pc19jbGVh
bgogICAgICAgICBpZiBzZWxmLnJlYmFzZV9pbl9wcm9ncmVzcygpOgotICAgICAgICAgICAgc2Vs
Zi5ydW5fY29tbWFuZChbJ2dpdCcsICdyZWJhc2UnLCAnLS1hYm9ydCddKQorICAgICAgICAgICAg
cnVuX2NvbW1hbmQoWydnaXQnLCAncmViYXNlJywgJy0tYWJvcnQnXSkKIAogICAgIGRlZiBzdGF0
dXNfY29tbWFuZChzZWxmKToKICAgICAgICAgcmV0dXJuIFsnZ2l0JywgJ3N0YXR1cyddCkBAIC00
NjgsMTIgKzQxOSwxMiBAQCBjbGFzcyBHaXQoU0NNKToKICAgICAgICAgcmV0dXJuICJnaXQiCiAK
ICAgICBkZWYgY3JlYXRlX3BhdGNoKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5ydW5fY29t
bWFuZChbJ2dpdCcsICdkaWZmJywgJy0tYmluYXJ5JywgJ0hFQUQnXSkKKyAgICAgICAgcmV0dXJu
IHJ1bl9jb21tYW5kKFsnZ2l0JywgJ2RpZmYnLCAnLS1iaW5hcnknLCAnSEVBRCddKQogCiAgICAg
QGNsYXNzbWV0aG9kCiAgICAgZGVmIGdpdF9jb21taXRfZnJvbV9zdm5fcmV2aXNpb24oY2xzLCBy
ZXZpc2lvbik6CiAgICAgICAgICMgZ2l0IHN2biBmaW5kLXJldiBhbHdheXMgZXhpdHMgMCwgZXZl
biB3aGVuIHRoZSByZXZpc2lvbiBpcyBub3QgZm91bmQuCi0gICAgICAgIHJldHVybiBjbHMucnVu
X2NvbW1hbmQoWydnaXQnLCAnc3ZuJywgJ2ZpbmQtcmV2JywgJ3IlcycgJSByZXZpc2lvbl0pLnJz
dHJpcCgpCisgICAgICAgIHJldHVybiBydW5fY29tbWFuZChbJ2dpdCcsICdzdm4nLCAnZmluZC1y
ZXYnLCAnciVzJyAlIHJldmlzaW9uXSkucnN0cmlwKCkKIAogICAgIGRlZiBkaWZmX2Zvcl9yZXZp
c2lvbihzZWxmLCByZXZpc2lvbik6CiAgICAgICAgIGdpdF9jb21taXQgPSBzZWxmLmdpdF9jb21t
aXRfZnJvbV9zdm5fcmV2aXNpb24ocmV2aXNpb24pCkBAIC00ODcsMTUgKzQzOCwxNSBAQCBjbGFz
cyBHaXQoU0NNKToKIAogICAgICAgICAjIEkgdGhpbmsgdGhpcyB3aWxsIGFsd2F5cyBmYWlsIGR1
ZSB0byBDaGFuZ2VMb2dzLgogICAgICAgICAjIEZJWE1FOiBXZSBuZWVkIHRvIGRldGVjIHNwZWNp
ZmljIGZhaWx1cmUgY29uZGl0aW9ucyBhbmQgaGFuZGxlIHRoZW0uCi0gICAgICAgIHNlbGYucnVu
X2NvbW1hbmQoWydnaXQnLCAncmV2ZXJ0JywgJy0tbm8tY29tbWl0JywgZ2l0X2NvbW1pdF0sIGVy
cm9yX2hhbmRsZXI9aWdub3JlX2Vycm9yKQorICAgICAgICBydW5fY29tbWFuZChbJ2dpdCcsICdy
ZXZlcnQnLCAnLS1uby1jb21taXQnLCBnaXRfY29tbWl0XSwgZXJyb3JfaGFuZGxlcj1pZ25vcmVf
ZXJyb3IpCiAKICAgICAgICAgIyBGaXggYW55IENoYW5nZUxvZ3MgaWYgbmVjZXNzYXJ5LgogICAg
ICAgICBjaGFuZ2Vsb2dfcGF0aHMgPSBzZWxmLm1vZGlmaWVkX2NoYW5nZWxvZ3MoKQogICAgICAg
ICBpZiBsZW4oY2hhbmdlbG9nX3BhdGhzKToKLSAgICAgICAgICAgIHNlbGYucnVuX2NvbW1hbmQo
W3NlbGYuc2NyaXB0X3BhdGgoJ3Jlc29sdmUtQ2hhbmdlTG9ncycpXSArIGNoYW5nZWxvZ19wYXRo
cykKKyAgICAgICAgICAgIHJ1bl9jb21tYW5kKFtzZWxmLnNjcmlwdF9wYXRoKCdyZXNvbHZlLUNo
YW5nZUxvZ3MnKV0gKyBjaGFuZ2Vsb2dfcGF0aHMpCiAKICAgICBkZWYgcmV2ZXJ0X2ZpbGVzKHNl
bGYsIGZpbGVfcGF0aHMpOgotICAgICAgICBzZWxmLnJ1bl9jb21tYW5kKFsnZ2l0JywgJ2NoZWNr
b3V0JywgJ0hFQUQnXSArIGZpbGVfcGF0aHMpCisgICAgICAgIHJ1bl9jb21tYW5kKFsnZ2l0Jywg
J2NoZWNrb3V0JywgJ0hFQUQnXSArIGZpbGVfcGF0aHMpCiAKICAgICBkZWYgY29tbWl0X3dpdGhf
bWVzc2FnZShzZWxmLCBtZXNzYWdlKToKICAgICAgICAgc2VsZi5jb21taXRfbG9jYWxseV93aXRo
X21lc3NhZ2UobWVzc2FnZSkKQEAgLTUwMywyNyArNDU0LDI3IEBAIGNsYXNzIEdpdChTQ00pOgog
CiAgICAgZGVmIHN2bl9jb21taXRfbG9nKHNlbGYsIHN2bl9yZXZpc2lvbik6CiAgICAgICAgIHN2
bl9yZXZpc2lvbiA9IHNlbGYuc3RyaXBfcl9mcm9tX3N2bl9yZXZpc2lvbihzdm5fcmV2aXNpb24p
Ci0gICAgICAgIHJldHVybiBzZWxmLnJ1bl9jb21tYW5kKFsnZ2l0JywgJ3N2bicsICdsb2cnLCAn
LXInLCBzdm5fcmV2aXNpb25dKQorICAgICAgICByZXR1cm4gcnVuX2NvbW1hbmQoWydnaXQnLCAn
c3ZuJywgJ2xvZycsICctcicsIHN2bl9yZXZpc2lvbl0pCiAKICAgICBkZWYgbGFzdF9zdm5fY29t
bWl0X2xvZyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYucnVuX2NvbW1hbmQoWydnaXQnLCAn
c3ZuJywgJ2xvZycsICctLWxpbWl0PTEnXSkKKyAgICAgICAgcmV0dXJuIHJ1bl9jb21tYW5kKFsn
Z2l0JywgJ3N2bicsICdsb2cnLCAnLS1saW1pdD0xJ10pCiAKICAgICAjIEdpdC1zcGVjaWZpYyBt
ZXRob2RzOgogCiAgICAgZGVmIGNyZWF0ZV9wYXRjaF9mcm9tX2xvY2FsX2NvbW1pdChzZWxmLCBj
b21taXRfaWQpOgotICAgICAgICByZXR1cm4gc2VsZi5ydW5fY29tbWFuZChbJ2dpdCcsICdkaWZm
JywgJy0tYmluYXJ5JywgY29tbWl0X2lkICsgIl4uLiIgKyBjb21taXRfaWRdKQorICAgICAgICBy
ZXR1cm4gcnVuX2NvbW1hbmQoWydnaXQnLCAnZGlmZicsICctLWJpbmFyeScsIGNvbW1pdF9pZCAr
ICJeLi4iICsgY29tbWl0X2lkXSkKIAogICAgIGRlZiBjcmVhdGVfcGF0Y2hfc2luY2VfbG9jYWxf
Y29tbWl0KHNlbGYsIGNvbW1pdF9pZCk6Ci0gICAgICAgIHJldHVybiBzZWxmLnJ1bl9jb21tYW5k
KFsnZ2l0JywgJ2RpZmYnLCAnLS1iaW5hcnknLCBjb21taXRfaWRdKQorICAgICAgICByZXR1cm4g
cnVuX2NvbW1hbmQoWydnaXQnLCAnZGlmZicsICctLWJpbmFyeScsIGNvbW1pdF9pZF0pCiAKICAg
ICBkZWYgY29tbWl0X2xvY2FsbHlfd2l0aF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgotICAgICAg
ICBzZWxmLnJ1bl9jb21tYW5kKFsnZ2l0JywgJ2NvbW1pdCcsICctLWFsbCcsICctRicsICctJ10s
IGlucHV0PW1lc3NhZ2UpCisgICAgICAgIHJ1bl9jb21tYW5kKFsnZ2l0JywgJ2NvbW1pdCcsICct
LWFsbCcsICctRicsICctJ10sIGlucHV0PW1lc3NhZ2UpCiAgICAgICAgIAogICAgIGRlZiBwdXNo
X2xvY2FsX2NvbW1pdHNfdG9fc2VydmVyKHNlbGYpOgogICAgICAgICBpZiBzZWxmLmRyeXJ1bjoK
ICAgICAgICAgICAgICMgUmV0dXJuIGEgc3RyaW5nIHdoaWNoIGxvb2tzIGxpa2UgYSBjb21taXQg
c28gdGhhdCB0aGluZ3Mgd2hpY2ggcGFyc2UgdGhpcyBvdXRwdXQgd2lsbCBzdWNjZWVkLgogICAg
ICAgICAgICAgcmV0dXJuICJEcnkgcnVuLCBubyByZW1vdGUgY29tbWl0LlxuQ29tbWl0dGVkIHIw
IgotICAgICAgICByZXR1cm4gc2VsZi5ydW5fY29tbWFuZChbJ2dpdCcsICdzdm4nLCAnZGNvbW1p
dCddLCBlcnJvcl9oYW5kbGVyPWNvbW1pdF9lcnJvcl9oYW5kbGVyKQorICAgICAgICByZXR1cm4g
cnVuX2NvbW1hbmQoWydnaXQnLCAnc3ZuJywgJ2Rjb21taXQnXSwgZXJyb3JfaGFuZGxlcj1jb21t
aXRfZXJyb3JfaGFuZGxlcikKIAogICAgICMgVGhpcyBmdW5jdGlvbiBzdXBwb3J0cyB0aGUgZm9s
bG93aW5nIGFyZ3VtZW50IGZvcm1hdHM6CiAgICAgIyBubyBhcmdzIDogcmV2LWxpc3QgdHJ1bmsu
LkhFQUQKQEAgLTU0MCwxNCArNDkxLDE0IEBAIGNsYXNzIEdpdChTQ00pOgogICAgICAgICAgICAg
aWYgJy4uLicgaW4gY29tbWl0aXNoOgogICAgICAgICAgICAgICAgIHJhaXNlIFNjcmlwdEVycm9y
KG1lc3NhZ2U9IicuLi4nIGlzIG5vdCBzdXBwb3J0ZWQgKGZvdW5kIGluICclcycpLiBEaWQgeW91
IG1lYW4gJy4uJz8iICUgY29tbWl0aXNoKQogICAgICAgICAgICAgZWxpZiAnLi4nIGluIGNvbW1p
dGlzaDoKLSAgICAgICAgICAgICAgICBjb21taXRfaWRzICs9IHJldmVyc2VkKHNlbGYucnVuX2Nv
bW1hbmQoWydnaXQnLCAncmV2LWxpc3QnLCBjb21taXRpc2hdKS5zcGxpdGxpbmVzKCkpCisgICAg
ICAgICAgICAgICAgY29tbWl0X2lkcyArPSByZXZlcnNlZChydW5fY29tbWFuZChbJ2dpdCcsICdy
ZXYtbGlzdCcsIGNvbW1pdGlzaF0pLnNwbGl0bGluZXMoKSkKICAgICAgICAgICAgIGVsc2U6CiAg
ICAgICAgICAgICAgICAgIyBUdXJuIHNpbmdsZSBjb21taXRzIG9yIGJyYW5jaCBvciB0YWcgbmFt
ZXMgaW50byBjb21taXQgaWRzLgotICAgICAgICAgICAgICAgIGNvbW1pdF9pZHMgKz0gc2VsZi5y
dW5fY29tbWFuZChbJ2dpdCcsICdyZXYtcGFyc2UnLCAnLS1yZXZzLW9ubHknLCBjb21taXRpc2hd
KS5zcGxpdGxpbmVzKCkKKyAgICAgICAgICAgICAgICBjb21taXRfaWRzICs9IHJ1bl9jb21tYW5k
KFsnZ2l0JywgJ3Jldi1wYXJzZScsICctLXJldnMtb25seScsIGNvbW1pdGlzaF0pLnNwbGl0bGlu
ZXMoKQogICAgICAgICByZXR1cm4gY29tbWl0X2lkcwogCiAgICAgZGVmIGNvbW1pdF9tZXNzYWdl
X2Zvcl9sb2NhbF9jb21taXQoc2VsZiwgY29tbWl0X2lkKToKLSAgICAgICAgY29tbWl0X2xpbmVz
ID0gc2VsZi5ydW5fY29tbWFuZChbJ2dpdCcsICdjYXQtZmlsZScsICdjb21taXQnLCBjb21taXRf
aWRdKS5zcGxpdGxpbmVzKCkKKyAgICAgICAgY29tbWl0X2xpbmVzID0gcnVuX2NvbW1hbmQoWydn
aXQnLCAnY2F0LWZpbGUnLCAnY29tbWl0JywgY29tbWl0X2lkXSkuc3BsaXRsaW5lcygpCiAKICAg
ICAgICAgIyBTa2lwIHRoZSBnaXQgaGVhZGVycy4KICAgICAgICAgZmlyc3RfbGluZV9hZnRlcl9o
ZWFkZXJzID0gMApAQCAtNTU4LDQgKzUwOSw0IEBAIGNsYXNzIEdpdChTQ00pOgogICAgICAgICBy
ZXR1cm4gQ29tbWl0TWVzc2FnZShjb21taXRfbGluZXNbZmlyc3RfbGluZV9hZnRlcl9oZWFkZXJz
Ol0pCiAKICAgICBkZWYgZmlsZXNfY2hhbmdlZF9zdW1tYXJ5X2Zvcl9jb21taXQoc2VsZiwgY29t
bWl0X2lkKToKLSAgICAgICAgcmV0dXJuIHNlbGYucnVuX2NvbW1hbmQoWydnaXQnLCAnZGlmZi10
cmVlJywgJy0tc2hvcnRzdGF0JywgJy0tbm8tY29tbWl0LWlkJywgY29tbWl0X2lkXSkKKyAgICAg
ICAgcmV0dXJuIHJ1bl9jb21tYW5kKFsnZ2l0JywgJ2RpZmYtdHJlZScsICctLXNob3J0c3RhdCcs
ICctLW5vLWNvbW1pdC1pZCcsIGNvbW1pdF9pZF0pCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL21vZHVsZXMvc2NtX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1
bGVzL3NjbV91bml0dGVzdC5weQppbmRleCBmMGM4NGFmLi5mM2Y2OTYwIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvc2NtX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvbW9kdWxlcy9zY21fdW5pdHRlc3QucHkKQEAgLTM4LDE1ICszOCwxMyBAQCBp
bXBvcnQgdW5pdHRlc3QKIGltcG9ydCB1cmxsaWIKIAogZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0
ZQotZnJvbSBtb2R1bGVzLnNjbSBpbXBvcnQgZGV0ZWN0X3NjbV9zeXN0ZW0sIFNDTSwgU2NyaXB0
RXJyb3IsIENoZWNrb3V0TmVlZHNVcGRhdGUsIGlnbm9yZV9lcnJvciwgY29tbWl0X2Vycm9yX2hh
bmRsZXIKLQorZnJvbSBtb2R1bGVzLnNjbSBpbXBvcnQgZGV0ZWN0X3NjbV9zeXN0ZW0sIFNDTSwg
Q2hlY2tvdXROZWVkc1VwZGF0ZSwgY29tbWl0X2Vycm9yX2hhbmRsZXIKK2Zyb20gbW9kdWxlcy5w
cm9jZXNzdXRpbHMgaW1wb3J0IHJ1bl9jb21tYW5kLCBpZ25vcmVfZXJyb3IsIFNjcmlwdEVycm9y
CiAKICMgRXZlbnR1YWxseSB3ZSB3aWxsIHdhbnQgdG8gd3JpdGUgdGVzdHMgd2hpY2ggd29yayBm
b3IgYm90aCBzY21zLiAobGlrZSB1cGRhdGVfd2Via2l0LCBjaGFuZ2VkX2ZpbGVzLCBldGMuKQog
IyBQZXJoYXBzIHRocm91Z2ggc29tZSBTQ01UZXN0IGJhc2UtY2xhc3Mgd2hpY2ggYm90aCBTVk5U
ZXN0IGFuZCBHaXRUZXN0IGluaGVyaXQgZnJvbS4KIAotZGVmIHJ1bihhcmdzLCBjd2Q9Tm9uZSk6
Ci0gICAgcmV0dXJuIFNDTS5ydW5fY29tbWFuZChhcmdzLCBjd2Q9Y3dkKQotCisjIEZJWE1FOiBU
aGlzIHNob3VsZCBiZSB1bmlmaWVkIGludG8gb25lIG9mIHRoZSBwcm9jZXNzdXRpbHMucHkgY29t
bWFuZHMhCiBkZWYgcnVuX3NpbGVudChhcmdzLCBjd2Q9Tm9uZSk6CiAgICAgcHJvY2VzcyA9IHN1
YnByb2Nlc3MuUG9wZW4oYXJncywgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgc3RkZXJyPXN1YnBy
b2Nlc3MuUElQRSwgY3dkPWN3ZCkKICAgICBwcm9jZXNzLmNvbW11bmljYXRlKCkgIyBpZ25vcmUg
b3V0cHV0CkBAIC03NSwyNiArNzMsMjYgQEAgY2xhc3MgU1ZOVGVzdFJlcG9zaXRvcnk6CiAgICAg
ICAgIHRlc3RfZmlsZS53cml0ZSgidGVzdDEiKQogICAgICAgICB0ZXN0X2ZpbGUuZmx1c2goKQog
ICAgICAgICAKLSAgICAgICAgcnVuKFsnc3ZuJywgJ2FkZCcsICd0ZXN0X2ZpbGUnXSkKLSAgICAg
ICAgcnVuKFsnc3ZuJywgJ2NvbW1pdCcsICctLXF1aWV0JywgJy0tbWVzc2FnZScsICdpbml0aWFs
IGNvbW1pdCddKQorICAgICAgICBydW5fY29tbWFuZChbJ3N2bicsICdhZGQnLCAndGVzdF9maWxl
J10pCisgICAgICAgIHJ1bl9jb21tYW5kKFsnc3ZuJywgJ2NvbW1pdCcsICctLXF1aWV0JywgJy0t
bWVzc2FnZScsICdpbml0aWFsIGNvbW1pdCddKQogICAgICAgICAKICAgICAgICAgdGVzdF9maWxl
LndyaXRlKCJ0ZXN0MiIpCiAgICAgICAgIHRlc3RfZmlsZS5mbHVzaCgpCiAgICAgICAgIAotICAg
ICAgICBydW4oWydzdm4nLCAnY29tbWl0JywgJy0tcXVpZXQnLCAnLS1tZXNzYWdlJywgJ3NlY29u
ZCBjb21taXQnXSkKKyAgICAgICAgcnVuX2NvbW1hbmQoWydzdm4nLCAnY29tbWl0JywgJy0tcXVp
ZXQnLCAnLS1tZXNzYWdlJywgJ3NlY29uZCBjb21taXQnXSkKICAgICAgICAgCiAgICAgICAgIHRl
c3RfZmlsZS53cml0ZSgidGVzdDNcbiIpCiAgICAgICAgIHRlc3RfZmlsZS5mbHVzaCgpCiAgICAg
ICAgIAotICAgICAgICBydW4oWydzdm4nLCAnY29tbWl0JywgJy0tcXVpZXQnLCAnLS1tZXNzYWdl
JywgJ3RoaXJkIGNvbW1pdCddKQorICAgICAgICBydW5fY29tbWFuZChbJ3N2bicsICdjb21taXQn
LCAnLS1xdWlldCcsICctLW1lc3NhZ2UnLCAndGhpcmQgY29tbWl0J10pCiAKICAgICAgICAgdGVz
dF9maWxlLndyaXRlKCJ0ZXN0NFxuIikKICAgICAgICAgdGVzdF9maWxlLmNsb3NlKCkKIAotICAg
ICAgICBydW4oWydzdm4nLCAnY29tbWl0JywgJy0tcXVpZXQnLCAnLS1tZXNzYWdlJywgJ2ZvdXJ0
aCBjb21taXQnXSkKKyAgICAgICAgcnVuX2NvbW1hbmQoWydzdm4nLCAnY29tbWl0JywgJy0tcXVp
ZXQnLCAnLS1tZXNzYWdlJywgJ2ZvdXJ0aCBjb21taXQnXSkKIAogICAgICAgICAjIHN2biBkb2Vz
IG5vdCBzZWVtIHRvIHVwZGF0ZSBhZnRlciBjb21taXQgYXMgSSB3b3VsZCBleHBlY3QuCi0gICAg
ICAgIHJ1bihbJ3N2bicsICd1cGRhdGUnXSkKKyAgICAgICAgcnVuX2NvbW1hbmQoWydzdm4nLCAn
dXBkYXRlJ10pCiAKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgc2V0dXAoY2xzLCB0ZXN0X29i
amVjdCk6CkBAIC0xMDMsMTggKzEwMSwxOCBAQCBjbGFzcyBTVk5UZXN0UmVwb3NpdG9yeToKICAg
ICAgICAgdGVzdF9vYmplY3Quc3ZuX3JlcG9fdXJsID0gImZpbGU6Ly8lcyIgJSB0ZXN0X29iamVj
dC5zdm5fcmVwb19wYXRoICMgTm90IHN1cmUgdGhpcyB3aWxsIHdvcmsgb24gd2luZG93cwogICAg
ICAgICAjIGdpdCBzdm4gY29tcGxhaW5zIGlmIHdlIGRvbid0IHBhc3MgLS1wcmUtMS41LWNvbXBh
dGlibGUsIG5vdCBzdXJlIHdoeToKICAgICAgICAgIyBFeHBlY3RlZCBGUyBmb3JtYXQgJzInOyBm
b3VuZCBmb3JtYXQgJzMnIGF0IC91c3IvbG9jYWwvbGliZXhlYy9naXQtY29yZS8vZ2l0LXN2biBs
aW5lIDE0NzcKLSAgICAgICAgcnVuKFsnc3ZuYWRtaW4nLCAnY3JlYXRlJywgJy0tcHJlLTEuNS1j
b21wYXRpYmxlJywgdGVzdF9vYmplY3Quc3ZuX3JlcG9fcGF0aF0pCisgICAgICAgIHJ1bl9jb21t
YW5kKFsnc3ZuYWRtaW4nLCAnY3JlYXRlJywgJy0tcHJlLTEuNS1jb21wYXRpYmxlJywgdGVzdF9v
YmplY3Quc3ZuX3JlcG9fcGF0aF0pCiAKICAgICAgICAgIyBDcmVhdGUgYSB0ZXN0IHN2biBjaGVj
a291dAogICAgICAgICB0ZXN0X29iamVjdC5zdm5fY2hlY2tvdXRfcGF0aCA9IHRlbXBmaWxlLm1r
ZHRlbXAoc3VmZml4PSJzdm5fdGVzdF9jaGVja291dCIpCi0gICAgICAgIHJ1bihbJ3N2bicsICdj
aGVja291dCcsICctLXF1aWV0JywgdGVzdF9vYmplY3Quc3ZuX3JlcG9fdXJsLCB0ZXN0X29iamVj
dC5zdm5fY2hlY2tvdXRfcGF0aF0pCisgICAgICAgIHJ1bl9jb21tYW5kKFsnc3ZuJywgJ2NoZWNr
b3V0JywgJy0tcXVpZXQnLCB0ZXN0X29iamVjdC5zdm5fcmVwb191cmwsIHRlc3Rfb2JqZWN0LnN2
bl9jaGVja291dF9wYXRoXSkKIAogICAgICAgICBjbHMuX3NldHVwX3Rlc3RfY29tbWl0cyh0ZXN0
X29iamVjdCkKIAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiB0ZWFyX2Rvd24oY2xzLCB0ZXN0
X29iamVjdCk6Ci0gICAgICAgIHJ1bihbJ3JtJywgJy1yZicsIHRlc3Rfb2JqZWN0LnN2bl9yZXBv
X3BhdGhdKQotICAgICAgICBydW4oWydybScsICctcmYnLCB0ZXN0X29iamVjdC5zdm5fY2hlY2tv
dXRfcGF0aF0pCisgICAgICAgIHJ1bl9jb21tYW5kKFsncm0nLCAnLXJmJywgdGVzdF9vYmplY3Qu
c3ZuX3JlcG9fcGF0aF0pCisgICAgICAgIHJ1bl9jb21tYW5kKFsncm0nLCAnLXJmJywgdGVzdF9v
YmplY3Quc3ZuX2NoZWNrb3V0X3BhdGhdKQogCiAjIEZvciB0ZXN0aW5nIHRoZSBTQ00gYmFzZWNs
YXNzIGRpcmVjdGx5LgogY2xhc3MgU0NNQ2xhc3NUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CkBA
IC0xMjYsMjAgKzEyNCwyMCBAQCBjbGFzcyBTQ01DbGFzc1Rlc3RzKHVuaXR0ZXN0LlRlc3RDYXNl
KToKIAogICAgIGRlZiB0ZXN0X3J1bl9jb21tYW5kX3dpdGhfcGlwZShzZWxmKToKICAgICAgICAg
aW5wdXRfcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oWydlY2hvJywgJ2Zvb1xuYmFyJ10sIHN0
ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zZWxmLmRldl9udWxsKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKFNDTS5ydW5fY29tbWFuZChbJ2dyZXAnLCAnYmFyJ10sIGlucHV0PWlucHV0
X3Byb2Nlc3Muc3Rkb3V0KSwgImJhclxuIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydW5f
Y29tbWFuZChbJ2dyZXAnLCAnYmFyJ10sIGlucHV0PWlucHV0X3Byb2Nlc3Muc3Rkb3V0KSwgImJh
clxuIikKIAogICAgICAgICAjIFRlc3QgdGhlIG5vbi1waXBlIGNhc2UgdG9vOgotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKFNDTS5ydW5fY29tbWFuZChbJ2dyZXAnLCAnYmFyJ10sIGlucHV0PSJm
b29cbmJhciIpLCAiYmFyXG4iKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJ1bl9jb21tYW5k
KFsnZ3JlcCcsICdiYXInXSwgaW5wdXQ9ImZvb1xuYmFyIiksICJiYXJcbiIpCiAKICAgICAgICAg
Y29tbWFuZF9yZXR1cm5zX25vbl96ZXJvID0gWycvYmluL3NoJywgJy0taW52YWxpZC1vcHRpb24n
XQogICAgICAgICAjIFRlc3Qgd2hlbiB0aGUgaW5wdXQgcGlwZSBwcm9jZXNzIGZhaWxzLgogICAg
ICAgICBpbnB1dF9wcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3Blbihjb21tYW5kX3JldHVybnNfbm9u
X3plcm8sIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zZWxmLmRldl9udWxsKQogICAg
ICAgICBzZWxmLmFzc2VydFRydWUoaW5wdXRfcHJvY2Vzcy5wb2xsKCkgIT0gMCkKLSAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IsIFNDTS5ydW5fY29tbWFuZCwgWydncmVwJywg
J2JhciddLCBpbnB1dD1pbnB1dF9wcm9jZXNzLnN0ZG91dCkKKyAgICAgICAgc2VsZi5hc3NlcnRS
YWlzZXMoU2NyaXB0RXJyb3IsIHJ1bl9jb21tYW5kLCBbJ2dyZXAnLCAnYmFyJ10sIGlucHV0PWlu
cHV0X3Byb2Nlc3Muc3Rkb3V0KQogCiAgICAgICAgICMgVGVzdCB3aGVuIHRoZSBydW5fY29tbWFu
ZCBwcm9jZXNzIGZhaWxzLgogICAgICAgICBpbnB1dF9wcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3Bl
bihbJ2VjaG8nLCAnZm9vXG5iYXInXSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgc3RkZXJyPXNl
bGYuZGV2X251bGwpICMgZ3JlcCBzaG93cyB1c2FnZSBhbmQgY2FsbHMgZXhpdCgyKSB3aGVuIGNh
bGxlZCB3L28gYXJndW1lbnRzLgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhTY3JpcHRFcnJv
ciwgU0NNLnJ1bl9jb21tYW5kLCBjb21tYW5kX3JldHVybnNfbm9uX3plcm8sIGlucHV0PWlucHV0
X3Byb2Nlc3Muc3Rkb3V0KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhTY3JpcHRFcnJvciwg
cnVuX2NvbW1hbmQsIGNvbW1hbmRfcmV0dXJuc19ub25femVybywgaW5wdXQ9aW5wdXRfcHJvY2Vz
cy5zdGRvdXQpCiAKICAgICBkZWYgdGVzdF9lcnJvcl9oYW5kbGVycyhzZWxmKToKICAgICAgICAg
Z2l0X2ZhaWx1cmVfbWVzc2FnZT0iTWVyZ2UgY29uZmxpY3QgZHVyaW5nIGNvbW1pdDogWW91ciBm
aWxlIG9yIGRpcmVjdG9yeSAnV2ViQ29yZS9DaGFuZ2VMb2cnIGlzIHByb2JhYmx5IG91dC1vZi1k
YXRlOiByZXNvdXJjZSBvdXQgb2YgZGF0ZTsgdHJ5IHVwZGF0aW5nIGF0IC91c3IvbG9jYWwvbGli
ZXhlYy9naXQtY29yZS8vZ2l0LXN2biBsaW5lIDQ2OSIKQEAgLTE0OCwxMyArMTQ2LDEzIEBAIHN2
bjogRmlsZSBvciBkaXJlY3RvcnkgJ0NoYW5nZUxvZycgaXMgb3V0IG9mIGRhdGU7IHRyeSB1cGRh
dGluZwogc3ZuOiByZXNvdXJjZSBvdXQgb2YgZGF0ZTsgdHJ5IHVwZGF0aW5nCiAiIiIKICAgICAg
ICAgY29tbWFuZF9kb2VzX25vdF9leGlzdCA9IFsnZG9lc19ub3RfZXhpc3QnLCAnaW52YWxpZF9v
cHRpb24nXQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBTQ00ucnVuX2NvbW1h
bmQsIGNvbW1hbmRfZG9lc19ub3RfZXhpc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9T
RXJyb3IsIFNDTS5ydW5fY29tbWFuZCwgY29tbWFuZF9kb2VzX25vdF9leGlzdCwgZXJyb3JfaGFu
ZGxlcj1pZ25vcmVfZXJyb3IpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIHJ1
bl9jb21tYW5kLCBjb21tYW5kX2RvZXNfbm90X2V4aXN0KQorICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhPU0Vycm9yLCBydW5fY29tbWFuZCwgY29tbWFuZF9kb2VzX25vdF9leGlzdCwgZXJyb3Jf
aGFuZGxlcj1pZ25vcmVfZXJyb3IpCiAKICAgICAgICAgY29tbWFuZF9yZXR1cm5zX25vbl96ZXJv
ID0gWycvYmluL3NoJywgJy0taW52YWxpZC1vcHRpb24nXQotICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhTY3JpcHRFcnJvciwgU0NNLnJ1bl9jb21tYW5kLCBjb21tYW5kX3JldHVybnNfbm9uX3pl
cm8pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yLCBydW5fY29tbWFuZCwg
Y29tbWFuZF9yZXR1cm5zX25vbl96ZXJvKQogICAgICAgICAjIENoZWNrIGlmIHJldHVybnMgZXJy
b3IgdGV4dDoKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFNDTS5ydW5fY29tbWFuZChjb21tYW5k
X3JldHVybnNfbm9uX3plcm8sIGVycm9yX2hhbmRsZXI9aWdub3JlX2Vycm9yKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKHJ1bl9jb21tYW5kKGNvbW1hbmRfcmV0dXJuc19ub25femVybywgZXJy
b3JfaGFuZGxlcj1pZ25vcmVfZXJyb3IpKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKENo
ZWNrb3V0TmVlZHNVcGRhdGUsIGNvbW1pdF9lcnJvcl9oYW5kbGVyLCBTY3JpcHRFcnJvcihvdXRw
dXQ9Z2l0X2ZhaWx1cmVfbWVzc2FnZSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKENoZWNr
b3V0TmVlZHNVcGRhdGUsIGNvbW1pdF9lcnJvcl9oYW5kbGVyLCBTY3JpcHRFcnJvcihvdXRwdXQ9
c3ZuX2ZhaWx1cmVfbWVzc2FnZSkpCkBAIC0zNjUsMTQgKzM2MywxNCBAQCBjbGFzcyBTVk5UZXN0
KFNDTVRlc3QpOgogICAgICAgICAqIHNjbV91bml0dGVzdC5weToKICIiIgogICAgICAgICB3cml0
ZV9pbnRvX2ZpbGVfYXRfcGF0aCgnQ2hhbmdlTG9nJywgZmlyc3RfZW50cnkpCi0gICAgICAgIHJ1
bihbJ3N2bicsICdhZGQnLCAnQ2hhbmdlTG9nJ10pCi0gICAgICAgIHJ1bihbJ3N2bicsICdjb21t
aXQnLCAnLS1xdWlldCcsICctLW1lc3NhZ2UnLCAnQ2hhbmdlTG9nIGNvbW1pdCddKQorICAgICAg
ICBydW5fY29tbWFuZChbJ3N2bicsICdhZGQnLCAnQ2hhbmdlTG9nJ10pCisgICAgICAgIHJ1bl9j
b21tYW5kKFsnc3ZuJywgJ2NvbW1pdCcsICctLXF1aWV0JywgJy0tbWVzc2FnZScsICdDaGFuZ2VM
b2cgY29tbWl0J10pCiAKICAgICAgICAgIyBQYXRjaCBmaWxlcyB3ZXJlIGNyZWF0ZWQgYWdhaW5z
dCBqdXN0ICdmaXJzdF9lbnRyeScuCiAgICAgICAgICMgQWRkIGEgc2Vjb25kIGNvbW1pdCB0byBt
YWtlIHN2bi1hcHBseSBoYXZlIHRvIGFwcGx5IHRoZSBwYXRjaGVzIHdpdGggZnV6ei4KICAgICAg
ICAgY2hhbmdlbG9nX2NvbnRlbnRzID0gIiVzXG4lcyIgJSAoaW50ZXJtZWRpYXRlX2VudHJ5LCBm
aXJzdF9lbnRyeSkKICAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgoJ0NoYW5nZUxvZycs
IGNoYW5nZWxvZ19jb250ZW50cykKLSAgICAgICAgcnVuKFsnc3ZuJywgJ2NvbW1pdCcsICctLXF1
aWV0JywgJy0tbWVzc2FnZScsICdJbnRlcm1lZGlhdGUgY29tbWl0J10pCisgICAgICAgIHJ1bl9j
b21tYW5kKFsnc3ZuJywgJ2NvbW1pdCcsICctLXF1aWV0JywgJy0tbWVzc2FnZScsICdJbnRlcm1l
ZGlhdGUgY29tbWl0J10pCiAKICAgICAgICAgc2VsZi5fc2V0dXBfd2Via2l0dG9vbHNfc2NyaXB0
c19zeW1saW5rKHNlbGYuc2NtKQogICAgICAgICBzZWxmLnNjbS5hcHBseV9wYXRjaChzZWxmLl9j
cmVhdGVfcGF0Y2gob25lX2xpbmVfb3ZlcmxhcF9wYXRjaCkpCkBAIC0zOTcsNyArMzk1LDcgQEAg
Y2xhc3MgU1ZOVGVzdChTQ01UZXN0KToKICAgICAgICAgb3MubWtkaXIodGVzdF9kaXJfcGF0aCkK
ICAgICAgICAgdGVzdF9maWxlX3BhdGggPSBvcy5wYXRoLmpvaW4odGVzdF9kaXJfcGF0aCwgJ3Rl
c3RfZmlsZTInKQogICAgICAgICB3cml0ZV9pbnRvX2ZpbGVfYXRfcGF0aCh0ZXN0X2ZpbGVfcGF0
aCwgJ3Rlc3QgY29udGVudCcpCi0gICAgICAgIHJ1bihbJ3N2bicsICdhZGQnLCAndGVzdF9kaXIn
XSkKKyAgICAgICAgcnVuX2NvbW1hbmQoWydzdm4nLCAnYWRkJywgJ3Rlc3RfZGlyJ10pCiAKICAg
ICAgICAgIyBjcmVhdGVfcGF0Y2ggZGVwZW5kcyBvbiAnc3ZuLWNyZWF0ZS1wYXRjaCcsIHNvIG1h
a2UgYSBkdW1teSB2ZXJzaW9uLgogICAgICAgICBzY3JpcHRzX3BhdGggPSBvcy5wYXRoLmpvaW4o
c2VsZi5zdm5fY2hlY2tvdXRfcGF0aCwgJ1dlYktpdFRvb2xzJywgJ1NjcmlwdHMnKQpAQCAtNDQy
LDEzICs0NDAsMTMgQEAgUTFkVEJ4MEFBQUI0Mml0ZzRHbGdZSmpHd01ERHlPRE14TUR3MzRHQmdR
RUFKUFFESkE9PQogCiAgICAgZGVmIHRlc3RfYXBwbHlfc3ZuX3BhdGNoKHNlbGYpOgogICAgICAg
ICBzY20gPSBkZXRlY3Rfc2NtX3N5c3RlbShzZWxmLnN2bl9jaGVja291dF9wYXRoKQotICAgICAg
ICBwYXRjaCA9IHNlbGYuX2NyZWF0ZV9wYXRjaChydW4oWydzdm4nLCAnZGlmZicsICctcjQ6Mydd
KSkKKyAgICAgICAgcGF0Y2ggPSBzZWxmLl9jcmVhdGVfcGF0Y2gocnVuX2NvbW1hbmQoWydzdm4n
LCAnZGlmZicsICctcjQ6MyddKSkKICAgICAgICAgc2VsZi5fc2V0dXBfd2Via2l0dG9vbHNfc2Ny
aXB0c19zeW1saW5rKHNjbSkKICAgICAgICAgc2NtLmFwcGx5X3BhdGNoKHBhdGNoKQogCiAgICAg
ZGVmIHRlc3RfYXBwbHlfc3ZuX3BhdGNoX2ZvcmNlKHNlbGYpOgogICAgICAgICBzY20gPSBkZXRl
Y3Rfc2NtX3N5c3RlbShzZWxmLnN2bl9jaGVja291dF9wYXRoKQotICAgICAgICBwYXRjaCA9IHNl
bGYuX2NyZWF0ZV9wYXRjaChydW4oWydzdm4nLCAnZGlmZicsICctcjI6NCddKSkKKyAgICAgICAg
cGF0Y2ggPSBzZWxmLl9jcmVhdGVfcGF0Y2gocnVuX2NvbW1hbmQoWydzdm4nLCAnZGlmZicsICct
cjI6NCddKSkKICAgICAgICAgc2VsZi5fc2V0dXBfd2Via2l0dG9vbHNfc2NyaXB0c19zeW1saW5r
KHNjbSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IsIHNjbS5hcHBseV9w
YXRjaCwgcGF0Y2gsIGZvcmNlPVRydWUpCiAKQEAgLTQ3Nyw3ICs0NzUsNyBAQCBjbGFzcyBHaXRU
ZXN0KFNDTVRlc3QpOgogICAgICAgICBydW5fc2lsZW50KFsnZ2l0JywgJ3N2bicsICctLXF1aWV0
JywgJ2Nsb25lJywgc2VsZi5zdm5fcmVwb191cmwsIHNlbGYuZ2l0X2NoZWNrb3V0X3BhdGhdKQog
CiAgICAgZGVmIF90ZWFyX2Rvd25fZ2l0X2Nsb25lX29mX3N2bl9yZXBvc2l0b3J5KHNlbGYpOgot
ICAgICAgICBydW4oWydybScsICctcmYnLCBzZWxmLmdpdF9jaGVja291dF9wYXRoXSkKKyAgICAg
ICAgcnVuX2NvbW1hbmQoWydybScsICctcmYnLCBzZWxmLmdpdF9jaGVja291dF9wYXRoXSkKIAog
ICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgU1ZOVGVzdFJlcG9zaXRvcnkuc2V0dXAoc2Vs
ZikKQEAgLTQ5NywxMSArNDk1LDExIEBAIGNsYXNzIEdpdFRlc3QoU0NNVGVzdCk6CiAgICAgZGVm
IHRlc3RfcmViYXNlX2luX3Byb2dyZXNzKHNlbGYpOgogICAgICAgICBzdm5fdGVzdF9maWxlID0g
b3MucGF0aC5qb2luKHNlbGYuc3ZuX2NoZWNrb3V0X3BhdGgsICd0ZXN0X2ZpbGUnKQogICAgICAg
ICB3cml0ZV9pbnRvX2ZpbGVfYXRfcGF0aChzdm5fdGVzdF9maWxlLCAic3ZuX2NoZWNrb3V0IikK
LSAgICAgICAgcnVuKFsnc3ZuJywgJ2NvbW1pdCcsICctLW1lc3NhZ2UnLCAnY29tbWl0IHRvIGNv
bmZsaWN0IHdpdGggZ2l0IGNvbW1pdCddLCBjd2Q9c2VsZi5zdm5fY2hlY2tvdXRfcGF0aCkKKyAg
ICAgICAgcnVuX2NvbW1hbmQoWydzdm4nLCAnY29tbWl0JywgJy0tbWVzc2FnZScsICdjb21taXQg
dG8gY29uZmxpY3Qgd2l0aCBnaXQgY29tbWl0J10sIGN3ZD1zZWxmLnN2bl9jaGVja291dF9wYXRo
KQogCiAgICAgICAgIGdpdF90ZXN0X2ZpbGUgPSBvcy5wYXRoLmpvaW4oc2VsZi5naXRfY2hlY2tv
dXRfcGF0aCwgJ3Rlc3RfZmlsZScpCiAgICAgICAgIHdyaXRlX2ludG9fZmlsZV9hdF9wYXRoKGdp
dF90ZXN0X2ZpbGUsICJnaXRfY2hlY2tvdXQiKQotICAgICAgICBydW4oWydnaXQnLCAnY29tbWl0
JywgJy1hJywgJy1tJywgJ2NvbW1pdCB0byBiZSB0aHJvd24gYXdheSBieSByZWJhc2UgYWJvcnQn
XSkKKyAgICAgICAgcnVuX2NvbW1hbmQoWydnaXQnLCAnY29tbWl0JywgJy1hJywgJy1tJywgJ2Nv
bW1pdCB0byBiZSB0aHJvd24gYXdheSBieSByZWJhc2UgYWJvcnQnXSkKIAogICAgICAgICAjIC0t
cXVpZXQgZG9lc24ndCBtYWtlIGdpdCBzdm4gc2lsZW50LCBzbyB1c2UgcnVuX3NpbGVudCB0byBy
ZWRpcmVjdCBvdXRwdXQKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IsIHJ1
bl9zaWxlbnQsIFsnZ2l0JywgJ3N2bicsICctLXF1aWV0JywgJ3JlYmFzZSddKSAjIFdpbGwgZmFp
bCBkdWUgdG8gYSBjb25mbGljdCBsZWF2aW5nIHVzIG1pZC1yZWJhc2UuCkBAIC01MzMsMTkgKzUz
MSwxOSBAQCBjbGFzcyBHaXRUZXN0KFNDTVRlc3QpOgogCiAgICAgICAgIGFjdHVhbF9jb21taXRz
ID0gc2NtLmNvbW1pdF9pZHNfZnJvbV9jb21taXRpc2hfYXJndW1lbnRzKFtjb21taXRfcmFuZ2Vd
KQogICAgICAgICBleHBlY3RlZF9jb21taXRzID0gW10KLSAgICAgICAgZXhwZWN0ZWRfY29tbWl0
cyArPSByZXZlcnNlZChydW4oWydnaXQnLCAncmV2LWxpc3QnLCBjb21taXRfcmFuZ2VdKS5zcGxp
dGxpbmVzKCkpCisgICAgICAgIGV4cGVjdGVkX2NvbW1pdHMgKz0gcmV2ZXJzZWQocnVuX2NvbW1h
bmQoWydnaXQnLCAncmV2LWxpc3QnLCBjb21taXRfcmFuZ2VdKS5zcGxpdGxpbmVzKCkpCiAKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWxfY29tbWl0cywgZXhwZWN0ZWRfY29tbWl0cykK
IAogICAgIGRlZiB0ZXN0X2FwcGx5X2dpdF9wYXRjaChzZWxmKToKICAgICAgICAgc2NtID0gZGV0
ZWN0X3NjbV9zeXN0ZW0oc2VsZi5naXRfY2hlY2tvdXRfcGF0aCkKLSAgICAgICAgcGF0Y2ggPSBz
ZWxmLl9jcmVhdGVfcGF0Y2gocnVuKFsnZ2l0JywgJ2RpZmYnLCAnSEVBRC4uSEVBRF4nXSkpCisg
ICAgICAgIHBhdGNoID0gc2VsZi5fY3JlYXRlX3BhdGNoKHJ1bl9jb21tYW5kKFsnZ2l0JywgJ2Rp
ZmYnLCAnSEVBRC4uSEVBRF4nXSkpCiAgICAgICAgIHNlbGYuX3NldHVwX3dlYmtpdHRvb2xzX3Nj
cmlwdHNfc3ltbGluayhzY20pCiAgICAgICAgIHNjbS5hcHBseV9wYXRjaChwYXRjaCkKIAogICAg
IGRlZiB0ZXN0X2FwcGx5X2dpdF9wYXRjaF9mb3JjZShzZWxmKToKICAgICAgICAgc2NtID0gZGV0
ZWN0X3NjbV9zeXN0ZW0oc2VsZi5naXRfY2hlY2tvdXRfcGF0aCkKLSAgICAgICAgcGF0Y2ggPSBz
ZWxmLl9jcmVhdGVfcGF0Y2gocnVuKFsnZ2l0JywgJ2RpZmYnLCAnSEVBRH4yLi5IRUFEJ10pKQor
ICAgICAgICBwYXRjaCA9IHNlbGYuX2NyZWF0ZV9wYXRjaChydW5fY29tbWFuZChbJ2dpdCcsICdk
aWZmJywgJ0hFQUR+Mi4uSEVBRCddKSkKICAgICAgICAgc2VsZi5fc2V0dXBfd2Via2l0dG9vbHNf
c2NyaXB0c19zeW1saW5rKHNjbSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJy
b3IsIHNjbS5hcHBseV9wYXRjaCwgcGF0Y2gsIGZvcmNlPVRydWUpCiAKQEAgLTU2OCwyMSArNTY2
LDIxIEBAIGNsYXNzIEdpdFRlc3QoU0NNVGVzdCk6CiAgICAgICAgIHRlc3RfZmlsZV9wYXRoID0g
b3MucGF0aC5qb2luKHNlbGYuZ2l0X2NoZWNrb3V0X3BhdGgsIHRlc3RfZmlsZV9uYW1lKQogICAg
ICAgICBmaWxlX2NvbnRlbnRzID0gJycuam9pbihtYXAoY2hyLCByYW5nZSgyNTYpKSkKICAgICAg
ICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgodGVzdF9maWxlX3BhdGgsIGZpbGVfY29udGVudHMp
Ci0gICAgICAgIHJ1bihbJ2dpdCcsICdhZGQnLCB0ZXN0X2ZpbGVfbmFtZV0pCisgICAgICAgIHJ1
bl9jb21tYW5kKFsnZ2l0JywgJ2FkZCcsIHRlc3RfZmlsZV9uYW1lXSkKICAgICAgICAgcGF0Y2gg
PSBzY20uY3JlYXRlX3BhdGNoKCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLnNlYXJjaChy
J1xubGl0ZXJhbCAwXG4nLCBwYXRjaCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5zZWFy
Y2gocidcbmxpdGVyYWwgMjU2XG4nLCBwYXRjaCkpCiAKICAgICAgICAgIyBDaGVjayBpZiB3ZSBj
YW4gYXBwbHkgdGhlIGNyZWF0ZWQgcGF0Y2guCi0gICAgICAgIHJ1bihbJ2dpdCcsICdybScsICct
ZicsIHRlc3RfZmlsZV9uYW1lXSkKKyAgICAgICAgcnVuX2NvbW1hbmQoWydnaXQnLCAncm0nLCAn
LWYnLCB0ZXN0X2ZpbGVfbmFtZV0pCiAgICAgICAgIHNlbGYuX3NldHVwX3dlYmtpdHRvb2xzX3Nj
cmlwdHNfc3ltbGluayhzY20pCiAgICAgICAgIHNlbGYuc2NtLmFwcGx5X3BhdGNoKHNlbGYuX2Ny
ZWF0ZV9wYXRjaChwYXRjaCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZV9jb250ZW50
cywgcmVhZF9mcm9tX3BhdGgodGVzdF9maWxlX3BhdGgpKQogCiAgICAgICAgICMgQ2hlY2sgaWYg
d2UgY2FuIGNyZWF0ZSBhIHBhdGNoIGZyb20gYSBsb2NhbCBjb21taXQuCiAgICAgICAgIHdyaXRl
X2ludG9fZmlsZV9hdF9wYXRoKHRlc3RfZmlsZV9wYXRoLCBmaWxlX2NvbnRlbnRzKQotICAgICAg
ICBydW4oWydnaXQnLCAnYWRkJywgdGVzdF9maWxlX25hbWVdKQotICAgICAgICBydW4oWydnaXQn
LCAnY29tbWl0JywgJy1tJywgJ2JpbmFyeSBkaWZmJ10pCisgICAgICAgIHJ1bl9jb21tYW5kKFsn
Z2l0JywgJ2FkZCcsIHRlc3RfZmlsZV9uYW1lXSkKKyAgICAgICAgcnVuX2NvbW1hbmQoWydnaXQn
LCAnY29tbWl0JywgJy1tJywgJ2JpbmFyeSBkaWZmJ10pCiAgICAgICAgIHBhdGNoX2Zyb21fbG9j
YWxfY29tbWl0ID0gc2NtLmNyZWF0ZV9wYXRjaF9mcm9tX2xvY2FsX2NvbW1pdCgnSEVBRCcpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5zZWFyY2gocidcbmxpdGVyYWwgMFxuJywgcGF0Y2hf
ZnJvbV9sb2NhbF9jb21taXQpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUocmUuc2VhcmNoKHIn
XG5saXRlcmFsIDI1NlxuJywgcGF0Y2hfZnJvbV9sb2NhbF9jb21taXQpKQpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL3dvcmtxdWV1ZS5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvbW9kdWxlcy93b3JrcXVldWUucHkKaW5kZXggOGNkNDBiYy4uNTFhZjQ3YyAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL3dvcmtxdWV1ZS5weQorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL21vZHVsZXMvd29ya3F1ZXVlLnB5CkBAIC0zNSw3ICszNSw3IEBAIGlt
cG9ydCB0cmFjZWJhY2sKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1lZGVsdGEK
IAogZnJvbSBtb2R1bGVzLmxvZ2dpbmcgaW1wb3J0IGxvZywgT3V0cHV0VGVlCi1mcm9tIG1vZHVs
ZXMuc2NtIGltcG9ydCBTY3JpcHRFcnJvcgorZnJvbSBtb2R1bGVzLnByb2Nlc3N1dGlscyBpbXBv
cnQgU2NyaXB0RXJyb3IKIGZyb20gbW9kdWxlcy5zdGF0dXNib3QgaW1wb3J0IFN0YXR1c0JvdAog
CiBjbGFzcyBXb3JrUXVldWVEZWxlZ2F0ZToKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvbW9kdWxlcy93b3JrcXVldWVfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL21v
ZHVsZXMvd29ya3F1ZXVlX3VuaXR0ZXN0LnB5CmluZGV4IDFlOWM4YWQuLjA0Yzc0YzggMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy93b3JrcXVldWVfdW5pdHRlc3QucHkK
KysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL3dvcmtxdWV1ZV91bml0dGVzdC5weQpA
QCAtMzIsNyArMzIsNyBAQCBpbXBvcnQgc2h1dGlsCiBpbXBvcnQgdGVtcGZpbGUKIGltcG9ydCB1
bml0dGVzdAogCi1mcm9tIG1vZHVsZXMuc2NtIGltcG9ydCBTY3JpcHRFcnJvcgorZnJvbSBtb2R1
bGVzLnByb2Nlc3N1dGlscyBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gbW9kdWxlcy53b3JrcXVl
dWUgaW1wb3J0IFdvcmtRdWV1ZSwgV29ya1F1ZXVlRGVsZWdhdGUKIAogY2xhc3MgTG9nZ2luZ0Rl
bGVnYXRlKFdvcmtRdWV1ZURlbGVnYXRlKToK
</data>
<flag name="review"
          id="26391"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="26392"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>