<?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>38957</bug_id>
          
          <creation_ts>2010-05-11 17:24:11 -0700</creation_ts>
          <short_desc>scm.py should use self.run instead of run_command</short_desc>
          <delta_ts>2010-05-14 23:29:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>38955</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>ojan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>224282</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-11 17:24:11 -0700</bug_when>
    <thetext>scm.py should use self.run instead of run_command</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224284</commentid>
    <comment_count>1</comment_count>
      <attachid>55784</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-11 17:25:28 -0700</bug_when>
    <thetext>Created attachment 55784
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224359</commentid>
    <comment_count>2</comment_count>
      <attachid>55784</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-11 20:23:26 -0700</bug_when>
    <thetext>Comment on attachment 55784
Patch

WebKitTools/Scripts/webkitpy/common/checkout/scm.py:103
 +      def run(self, args, cwd=None, input=None, error_handler=None, return_exit_code=False, return_stderr=True, decode_output=True):
Do you just want **kwargs?  Or do you want to manage the default values explicitly?

WebKitTools/Scripts/webkitpy/common/checkout/scm.py:105
 +          # FIXME: We should use Executive.
Why not just use Executive() now anyway?  No need to add more clients to the raw version, then we have less to import to this file anyway. :)

WebKitTools/Scripts/webkitpy/common/checkout/scm.py:105
 +          # FIXME: We should use Executive.
By use Executive() i mean just create one here locally, even if it&apos;s not stored on self. yet.

WebKitTools/Scripts/webkitpy/common/checkout/scm.py:130
 +              print self.run(self.status_command(), error_handler=Executive.ignore_error)
Since you&apos;re not using **kwargs, and instead specifying all the defaults, it&apos;s more difficult for me to tell if you&apos;ve changed behavior here.

r=me assuming your intent was not to change behavior.  Please consider the above comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226150</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-14 23:23:19 -0700</bug_when>
    <thetext>&gt; Do you just want **kwargs?  Or do you want to manage the default values explicitly?

Future patches will make run smarter to handle the args.  It&apos;s possible we&apos;ll want **kwargs at some point though.

&gt; Why not just use Executive() now anyway?  No need to add more clients to the raw version, then we have less to import to this file anyway. :)

I&apos;ll do that in a future patch.  I just want to take it slow.

&gt; By use Executive() i mean just create one here locally, even if it&apos;s not stored on self. yet.

I understand.

&gt; r=me assuming your intent was not to change behavior.  Please consider the above comments.

Thanks for the comments.  Sorry I&apos;m ignoring all of them.  :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226153</commentid>
    <comment_count>4</comment_count>
      <attachid>55784</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-14 23:29:02 -0700</bug_when>
    <thetext>Comment on attachment 55784
Patch

Clearing flags on attachment: 55784

Committed r59522: &lt;http://trac.webkit.org/changeset/59522&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226154</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-14 23:29:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55784</attachid>
            <date>2010-05-11 17:25:28 -0700</date>
            <delta_ts>2010-05-14 23:29:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38957-20100511172526.patch</filename>
            <type>text/plain</type>
            <size>19879</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDU5MTg3KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDUtMTEgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBzY20ucHkgc2hvdWxkIHVzZSBzZWxmLnJ1biBpbnN0ZWFkIG9mIHJ1bl9jb21tYW5k
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODk1Nwor
CisgICAgICAgIFdlJ3ZlIHdhbnRlZCB0byBkbyB0aGlzIGZvciBhIHdoaWxlLCBidXQgaXQncyBh
IHByZXJlcXVpc3RlIGZvciBydW5uaW5nCisgICAgICAgIFNWTiBmcm9tIHRoZSBjd2QgaW5zdGVh
ZCBvZiB0aGUgY2hlY2tvdXRfcm9vdC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NoZWNrb3V0L3NjbS5weToKKwogMjAxMC0wNS0xMCAgRGlyayBQcmFua2UgIDxkcHJhbmtl
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6
IFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS5weQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9z
Y20ucHkJKHJldmlzaW9uIDU5MTg1KQorKysgV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tvdXQvc2NtLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw5ICszMiw2IEBACiBp
bXBvcnQgb3MKIGltcG9ydCByZQogCi0jIEZJWE1FOiBJbnN0ZWFkIG9mIHVzaW5nIHJ1bl9jb21t
YW5kIGRpcmVjdGx5LCBtb3N0IHBsYWNlcyBpbiB0aGlzCi0jIGNsYXNzIHdvdWxkIHJhdGhlciB1
c2UgYW4gU0NNLnJ1biBtZXRob2Qgd2hpY2ggYXV0b21hdGljYWxseSBzZXQKLSMgY3dkPXNlbGYu
Y2hlY2tvdXRfcm9vdC4KIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1w
b3J0IEV4ZWN1dGl2ZSwgcnVuX2NvbW1hbmQsIFNjcmlwdEVycm9yCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi5zeXN0ZW0udXNlciBpbXBvcnQgVXNlcgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVt
LmRlcHJlY2F0ZWRfbG9nZ2luZyBpbXBvcnQgZXJyb3IsIGxvZwpAQCAtMTAyLDYgKzk5LDE4IEBA
IGNsYXNzIFNDTToKICAgICAgICAgc2VsZi5jaGVja291dF9yb290ID0gc2VsZi5maW5kX2NoZWNr
b3V0X3Jvb3Qoc2VsZi5jd2QpCiAgICAgICAgIHNlbGYuZHJ5cnVuID0gRmFsc2UKIAorICAgICMg
QSB3cmFwcGVyIHVzZWQgYnkgc3ViY2xhc3NlcyB0byBjcmVhdGUgcHJvY2Vzc2VzLgorICAgIGRl
ZiBydW4oc2VsZiwgYXJncywgY3dkPU5vbmUsIGlucHV0PU5vbmUsIGVycm9yX2hhbmRsZXI9Tm9u
ZSwgcmV0dXJuX2V4aXRfY29kZT1GYWxzZSwgcmV0dXJuX3N0ZGVycj1UcnVlLCBkZWNvZGVfb3V0
cHV0PVRydWUpOgorICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGQgc2V0IGN3ZCBhcHByb3ByaWF0
ZWx5LgorICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGQgdXNlIEV4ZWN1dGl2ZS4KKyAgICAgICAg
cmV0dXJuIHJ1bl9jb21tYW5kKGFyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjd2Q9
Y3dkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ9aW5wdXQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlcnJvcl9oYW5kbGVyPWVycm9yX2hhbmRsZXIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm5fZXhpdF9jb2RlPXJldHVybl9leGl0X2NvZGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fc3RkZXJyPXJldHVybl9zdGRlcnIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkZWNvZGVfb3V0cHV0PWRlY29kZV9vdXRwdXQpCisKICAg
ICAjIFNDTSBhbHdheXMgcmV0dXJucyByZXBvc2l0b3J5IHJlbGF0aXZlIHBhdGgsIGJ1dCBzb21l
dGltZXMgd2UgbmVlZAogICAgICMgYWJzb2x1dGUgcGF0aHMgdG8gcGFzcyB0byBybSwgZXRjLgog
ICAgIGRlZiBhYnNvbHV0ZV9wYXRoKHNlbGYsIHJlcG9zaXRvcnlfcmVsYXRpdmVfcGF0aCk6CkBA
IC0xMTgsNyArMTI3LDcgQEAgY2xhc3MgU0NNOgogICAgIGRlZiBlbnN1cmVfY2xlYW5fd29ya2lu
Z19kaXJlY3Rvcnkoc2VsZiwgZm9yY2VfY2xlYW4pOgogICAgICAgICBpZiBub3QgZm9yY2VfY2xl
YW4gYW5kIG5vdCBzZWxmLndvcmtpbmdfZGlyZWN0b3J5X2lzX2NsZWFuKCk6CiAgICAgICAgICAg
ICAjIEZJWE1FOiBTaG91bGRuJ3QgdGhpcyB1c2UgY3dkPXNlbGYuY2hlY2tvdXRfcm9vdD8KLSAg
ICAgICAgICAgIHByaW50IHJ1bl9jb21tYW5kKHNlbGYuc3RhdHVzX2NvbW1hbmQoKSwgZXJyb3Jf
aGFuZGxlcj1FeGVjdXRpdmUuaWdub3JlX2Vycm9yKQorICAgICAgICAgICAgcHJpbnQgc2VsZi5y
dW4oc2VsZi5zdGF0dXNfY29tbWFuZCgpLCBlcnJvcl9oYW5kbGVyPUV4ZWN1dGl2ZS5pZ25vcmVf
ZXJyb3IpCiAgICAgICAgICAgICByYWlzZSBTY3JpcHRFcnJvcihtZXNzYWdlPSJXb3JraW5nIGRp
cmVjdG9yeSBoYXMgbW9kaWZpY2F0aW9ucywgcGFzcyAtLWZvcmNlLWNsZWFuIG9yIC0tbm8tY2xl
YW4gdG8gY29udGludWUuIikKICAgICAgICAgCiAgICAgICAgIGxvZygiQ2xlYW5pbmcgd29ya2lu
ZyBkaXJlY3RvcnkiKQpAQCAtMTM3LDcgKzE0Niw3IEBAIGNsYXNzIFNDTToKICAgICBkZWYgcnVu
X3N0YXR1c19hbmRfZXh0cmFjdF9maWxlbmFtZXMoc2VsZiwgc3RhdHVzX2NvbW1hbmQsIHN0YXR1
c19yZWdleHApOgogICAgICAgICBmaWxlbmFtZXMgPSBbXQogICAgICAgICAjIFdlIHJ1biB3aXRo
IGN3ZD1zZWxmLmNoZWNrb3V0X3Jvb3Qgc28gdGhhdCByZXR1cm5lZC1wYXRocyBhcmUgcm9vdC1y
ZWxhdGl2ZS4KLSAgICAgICAgZm9yIGxpbmUgaW4gcnVuX2NvbW1hbmQoc3RhdHVzX2NvbW1hbmQs
IGN3ZD1zZWxmLmNoZWNrb3V0X3Jvb3QpLnNwbGl0bGluZXMoKToKKyAgICAgICAgZm9yIGxpbmUg
aW4gc2VsZi5ydW4oc3RhdHVzX2NvbW1hbmQsIGN3ZD1zZWxmLmNoZWNrb3V0X3Jvb3QpLnNwbGl0
bGluZXMoKToKICAgICAgICAgICAgIG1hdGNoID0gcmUuc2VhcmNoKHN0YXR1c19yZWdleHAsIGxp
bmUpCiAgICAgICAgICAgICBpZiBub3QgbWF0Y2g6CiAgICAgICAgICAgICAgICAgY29udGludWUK
QEAgLTI5NywxNyArMzA2LDE3IEBAIGNsYXNzIFNWTihTQ00pOgogICAgICAgICBpZiBub3Qgb3Mu
cGF0aC5pc2Rpcihvcy5wYXRoLmpvaW4oaG9tZV9kaXJlY3RvcnksICIuc3VidmVyc2lvbiIpKToK
ICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICBmaW5kX2FyZ3MgPSBbImZpbmQiLCAi
LnN1YnZlcnNpb24iLCAiLXR5cGUiLCAiZiIsICItZXhlYyIsICJncmVwIiwgIi1xIiwgcmVhbG0s
ICJ7fSIsICI7IiwgIi1wcmludCJdOwotICAgICAgICBmaW5kX291dHB1dCA9IHJ1bl9jb21tYW5k
KGZpbmRfYXJncywgY3dkPWhvbWVfZGlyZWN0b3J5LCBlcnJvcl9oYW5kbGVyPUV4ZWN1dGl2ZS5p
Z25vcmVfZXJyb3IpLnJzdHJpcCgpCisgICAgICAgIGZpbmRfb3V0cHV0ID0gc2VsZi5ydW4oZmlu
ZF9hcmdzLCBjd2Q9aG9tZV9kaXJlY3RvcnksIGVycm9yX2hhbmRsZXI9RXhlY3V0aXZlLmlnbm9y
ZV9lcnJvcikucnN0cmlwKCkKICAgICAgICAgcmV0dXJuIGZpbmRfb3V0cHV0IGFuZCBvcy5wYXRo
LmlzZmlsZShvcy5wYXRoLmpvaW4oaG9tZV9kaXJlY3RvcnksIGZpbmRfb3V0cHV0KSkKIAogICAg
IGRlZiBzdm5fdmVyc2lvbihzZWxmKToKICAgICAgICAgaWYgbm90IHNlbGYuY2FjaGVkX3ZlcnNp
b246Ci0gICAgICAgICAgICBzZWxmLmNhY2hlZF92ZXJzaW9uID0gcnVuX2NvbW1hbmQoWydzdm4n
LCAnLS12ZXJzaW9uJywgJy0tcXVpZXQnXSkKKyAgICAgICAgICAgIHNlbGYuY2FjaGVkX3ZlcnNp
b24gPSBzZWxmLnJ1bihbJ3N2bicsICctLXZlcnNpb24nLCAnLS1xdWlldCddKQogICAgICAgICAK
ICAgICAgICAgcmV0dXJuIHNlbGYuY2FjaGVkX3ZlcnNpb24KIAogICAgIGRlZiB3b3JraW5nX2Rp
cmVjdG9yeV9pc19jbGVhbihzZWxmKToKLSAgICAgICAgcmV0dXJuIHJ1bl9jb21tYW5kKFsic3Zu
IiwgImRpZmYiXSwgY3dkPXNlbGYuY2hlY2tvdXRfcm9vdCwgZGVjb2RlX291dHB1dD1GYWxzZSkg
PT0gIiIKKyAgICAgICAgcmV0dXJuIHNlbGYucnVuKFsic3ZuIiwgImRpZmYiXSwgY3dkPXNlbGYu
Y2hlY2tvdXRfcm9vdCwgZGVjb2RlX291dHB1dD1GYWxzZSkgPT0gIiIKIAogICAgIGRlZiBjbGVh
bl93b3JraW5nX2RpcmVjdG9yeShzZWxmKToKICAgICAgICAgIyBzdm4gcmV2ZXJ0IC1SIGlzIG5v
dCBhcyBhd2Vzb21lIGFzIGdpdCByZXNldCAtLWhhcmQuCkBAIC0zMTcsNyArMzI2LDcgQEAgY2xh
c3MgU1ZOKFNDTSk6CiAgICAgICAgIGFkZGVkX2ZpbGVzID0gcmV2ZXJzZWQoc29ydGVkKHNlbGYu
YWRkZWRfZmlsZXMoKSkpCiAgICAgICAgICMgYWRkZWRfZmlsZXMoKSByZXR1cm5zIGRpcmVjdG9y
aWVzIGZvciBTVk4sIHdlIHdhbGsgdGhlIGZpbGVzIGluIHJldmVyc2UgcGF0aAogICAgICAgICAj
IGxlbmd0aCBvcmRlciBzbyB0aGF0IHdlIHJlbW92ZSBmaWxlcyBiZWZvcmUgd2UgdHJ5IHRvIHJl
bW92ZSB0aGUgZGlyZWN0b3JpZXMuCi0gICAgICAgIHJ1bl9jb21tYW5kKFsic3ZuIiwgInJldmVy
dCIsICItUiIsICIuIl0sIGN3ZD1zZWxmLmNoZWNrb3V0X3Jvb3QpCisgICAgICAgIHNlbGYucnVu
KFsic3ZuIiwgInJldmVydCIsICItUiIsICIuIl0sIGN3ZD1zZWxmLmNoZWNrb3V0X3Jvb3QpCiAg
ICAgICAgIGZvciBwYXRoIGluIGFkZGVkX2ZpbGVzOgogICAgICAgICAgICAgIyBUaGlzIGlzIHJv
YnVzdCBhZ2FpbnN0IGN3ZCAhPSBzZWxmLmNoZWNrb3V0X3Jvb3QKICAgICAgICAgICAgIGFic29s
dXRlX3BhdGggPSBzZWxmLmFic29sdXRlX3BhdGgocGF0aCkKQEAgLTMzNiwxNCArMzQ1LDE0IEBA
IGNsYXNzIFNWTihTQ00pOgogCiAgICAgZGVmIGFkZChzZWxmLCBwYXRoKToKICAgICAgICAgIyBw
YXRoIGlzIGFzc3VtZWQgdG8gYmUgY3dkIHJlbGF0aXZlPwotICAgICAgICBydW5fY29tbWFuZChb
InN2biIsICJhZGQiLCBwYXRoXSkKKyAgICAgICAgc2VsZi5ydW4oWyJzdm4iLCAiYWRkIiwgcGF0
aF0pCiAKICAgICBkZWYgY2hhbmdlZF9maWxlcyhzZWxmLCBnaXRfY29tbWl0PU5vbmUsIHNxdWFz
aD1Ob25lKToKICAgICAgICAgcmV0dXJuIHNlbGYucnVuX3N0YXR1c19hbmRfZXh0cmFjdF9maWxl
bmFtZXMoc2VsZi5zdGF0dXNfY29tbWFuZCgpLCBzZWxmLl9zdGF0dXNfcmVnZXhwKCJBQ0RNUiIp
KQogCiAgICAgZGVmIGNoYW5nZWRfZmlsZXNfZm9yX3JldmlzaW9uKHNlbGYsIHJldmlzaW9uKToK
ICAgICAgICAgIyBBcyBmYXIgYXMgSSBjYW4gdGVsbCBzdm4gZGlmZiAtLXN1bW1hcml6ZSBvdXRw
dXQgbG9va3MganVzdCBsaWtlIHN2biBzdGF0dXMgb3V0cHV0LgotICAgICAgICAjIE5vIGZpbGUg
Y29udGVudHMgcHJpbnRlZCwgdGh1cyB1dGYtOCBhdXRvLWRlY29kaW5nIGluIHJ1bl9jb21tYW5k
IGlzIGZpbmUuCisgICAgICAgICMgTm8gZmlsZSBjb250ZW50cyBwcmludGVkLCB0aHVzIHV0Zi04
IGF1dG8tZGVjb2RpbmcgaW4gc2VsZi5ydW4gaXMgZmluZS4KICAgICAgICAgc3RhdHVzX2NvbW1h
bmQgPSBbInN2biIsICJkaWZmIiwgIi0tc3VtbWFyaXplIiwgIi1jIiwgcmV2aXNpb25dCiAgICAg
ICAgIHJldHVybiBzZWxmLnJ1bl9zdGF0dXNfYW5kX2V4dHJhY3RfZmlsZW5hbWVzKHN0YXR1c19j
b21tYW5kLCBzZWxmLl9zdGF0dXNfcmVnZXhwKCJBQ0RNUiIpKQogCkBAIC0zNjAsMjYgKzM2OSwy
NyBAQCBjbGFzcyBTVk4oU0NNKToKICAgICBkZWYgZGlzcGxheV9uYW1lKHNlbGYpOgogICAgICAg
ICByZXR1cm4gInN2biIKIAorICAgICMgRklYTUU6IFRoaXMgbWV0aG9kIHNob3VsZCBiZSBvbiBD
aGVja291dC4KICAgICBkZWYgY3JlYXRlX3BhdGNoKHNlbGYsIGdpdF9jb21taXQ9Tm9uZSwgc3F1
YXNoPU5vbmUpOgogICAgICAgICAiIiJSZXR1cm5zIGEgYnl0ZSBhcnJheSAoc3RyKCkpIHJlcHJl
c2VudGluZyB0aGUgcGF0Y2ggZmlsZS4KICAgICAgICAgUGF0Y2ggZmlsZXMgYXJlIGVmZmVjdGl2
ZWx5IGJpbmFyeSBzaW5jZSB0aGV5IG1heSBjb250YWluCiAgICAgICAgIGZpbGVzIG9mIG11bHRp
cGxlIGRpZmZlcmVudCBlbmNvZGluZ3MuIiIiCi0gICAgICAgIHJldHVybiBydW5fY29tbWFuZChb
c2VsZi5zY3JpcHRfcGF0aCgic3ZuLWNyZWF0ZS1wYXRjaCIpXSwKKyAgICAgICAgcmV0dXJuIHNl
bGYucnVuKFtzZWxmLnNjcmlwdF9wYXRoKCJzdm4tY3JlYXRlLXBhdGNoIildLAogICAgICAgICAg
ICAgY3dkPXNlbGYuY2hlY2tvdXRfcm9vdCwgcmV0dXJuX3N0ZGVycj1GYWxzZSwKICAgICAgICAg
ICAgIGRlY29kZV9vdXRwdXQ9RmFsc2UpCiAKICAgICBkZWYgY29tbWl0dGVyX2VtYWlsX2Zvcl9y
ZXZpc2lvbihzZWxmLCByZXZpc2lvbik6Ci0gICAgICAgIHJldHVybiBydW5fY29tbWFuZChbInN2
biIsICJwcm9wZ2V0IiwgInN2bjphdXRob3IiLCAiLS1yZXZwcm9wIiwgIi1yIiwgcmV2aXNpb25d
KS5yc3RyaXAoKQorICAgICAgICByZXR1cm4gc2VsZi5ydW4oWyJzdm4iLCAicHJvcGdldCIsICJz
dm46YXV0aG9yIiwgIi0tcmV2cHJvcCIsICItciIsIHJldmlzaW9uXSkucnN0cmlwKCkKIAogICAg
IGRlZiBjb250ZW50c19hdF9yZXZpc2lvbihzZWxmLCBwYXRoLCByZXZpc2lvbik6CiAgICAgICAg
ICIiIlJldHVybnMgYSBieXRlIGFycmF5IChzdHIoKSkgY29udGFpbmluZyB0aGUgY29udGVudHMK
ICAgICAgICAgb2YgcGF0aCBAIHJldmlzaW9uIGluIHRoZSByZXBvc2l0b3J5LiIiIgogICAgICAg
ICByZW1vdGVfcGF0aCA9ICIlcy8lcyIgJSAoc2VsZi5fcmVwb3NpdG9yeV91cmwoKSwgcGF0aCkK
LSAgICAgICAgcmV0dXJuIHJ1bl9jb21tYW5kKFsic3ZuIiwgImNhdCIsICItciIsIHJldmlzaW9u
LCByZW1vdGVfcGF0aF0sIGRlY29kZV9vdXRwdXQ9RmFsc2UpCisgICAgICAgIHJldHVybiBzZWxm
LnJ1bihbInN2biIsICJjYXQiLCAiLXIiLCByZXZpc2lvbiwgcmVtb3RlX3BhdGhdLCBkZWNvZGVf
b3V0cHV0PUZhbHNlKQogCiAgICAgZGVmIGRpZmZfZm9yX3JldmlzaW9uKHNlbGYsIHJldmlzaW9u
KToKICAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFibHkgdXNlIGN3ZD1zZWxmLmNo
ZWNrb3V0X3Jvb3QKLSAgICAgICAgcmV0dXJuIHJ1bl9jb21tYW5kKFsnc3ZuJywgJ2RpZmYnLCAn
LWMnLCByZXZpc2lvbl0pCisgICAgICAgIHJldHVybiBzZWxmLnJ1bihbJ3N2bicsICdkaWZmJywg
Jy1jJywgcmV2aXNpb25dKQogCiAgICAgZGVmIF9yZXBvc2l0b3J5X3VybChzZWxmKToKICAgICAg
ICAgcmV0dXJuIHNlbGYudmFsdWVfZnJvbV9zdm5faW5mbyhzZWxmLmNoZWNrb3V0X3Jvb3QsICdV
UkwnKQpAQCAtMzkwLDExICs0MDAsMTEgQEAgY2xhc3MgU1ZOKFNDTSk6CiAgICAgICAgIGxvZygi
V0FSTklORzogc3ZuIG1lcmdlIGhhcyBiZWVuIGtub3duIHRvIHRha2UgbW9yZSB0aGFuIDEwIG1p
bnV0ZXMgdG8gY29tcGxldGUuICBJdCBpcyByZWNvbW1lbmRlZCB5b3UgdXNlIGdpdCBmb3Igcm9s
bG91dHMuIikKICAgICAgICAgbG9nKCJSdW5uaW5nICclcyciICUgIiAiLmpvaW4oc3ZuX21lcmdl
X2FyZ3MpKQogICAgICAgICAjIEZJWE1FOiBTaG91bGQgdGhpcyB1c2UgY3dkPXNlbGYuY2hlY2tv
dXRfcm9vdD8KLSAgICAgICAgcnVuX2NvbW1hbmQoc3ZuX21lcmdlX2FyZ3MpCisgICAgICAgIHNl
bGYucnVuKHN2bl9tZXJnZV9hcmdzKQogCiAgICAgZGVmIHJldmVydF9maWxlcyhzZWxmLCBmaWxl
X3BhdGhzKToKICAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFibHkgdXNlIGN3ZD1z
ZWxmLmNoZWNrb3V0X3Jvb3QuCi0gICAgICAgIHJ1bl9jb21tYW5kKFsnc3ZuJywgJ3JldmVydCdd
ICsgZmlsZV9wYXRocykKKyAgICAgICAgc2VsZi5ydW4oWydzdm4nLCAncmV2ZXJ0J10gKyBmaWxl
X3BhdGhzKQogCiAgICAgZGVmIHNob3VsZF9zcXVhc2goc2VsZiwgc3F1YXNoKToKICAgICAgICAg
IyBTVk4gZG9lc24ndCBzdXBwb3J0IHRoZSBjb25jZXB0IG9mIHNxdWFzaGluZy4KQEAgLTQxNCwx
MSArNDI0LDExIEBAIGNsYXNzIFNWTihTQ00pOgogICAgICAgICAgICAgc3ZuX2NvbW1pdF9hcmdz
LmV4dGVuZChbIi0tdXNlcm5hbWUiLCB1c2VybmFtZV0pCiAgICAgICAgIHN2bl9jb21taXRfYXJn
cy5leHRlbmQoWyItbSIsIG1lc3NhZ2VdKQogICAgICAgICAjIEZJWE1FOiBTaG91bGQgdGhpcyB1
c2UgY3dkPXNlbGYuY2hlY2tvdXRfcm9vdD8KLSAgICAgICAgcmV0dXJuIHJ1bl9jb21tYW5kKHN2
bl9jb21taXRfYXJncywgZXJyb3JfaGFuZGxlcj1jb21taXRfZXJyb3JfaGFuZGxlcikKKyAgICAg
ICAgcmV0dXJuIHNlbGYucnVuKHN2bl9jb21taXRfYXJncywgZXJyb3JfaGFuZGxlcj1jb21taXRf
ZXJyb3JfaGFuZGxlcikKIAogICAgIGRlZiBzdm5fY29tbWl0X2xvZyhzZWxmLCBzdm5fcmV2aXNp
b24pOgogICAgICAgICBzdm5fcmV2aXNpb24gPSBzZWxmLnN0cmlwX3JfZnJvbV9zdm5fcmV2aXNp
b24oc3ZuX3JldmlzaW9uKQotICAgICAgICByZXR1cm4gcnVuX2NvbW1hbmQoWydzdm4nLCAnbG9n
JywgJy0tbm9uLWludGVyYWN0aXZlJywgJy0tcmV2aXNpb24nLCBzdm5fcmV2aXNpb25dKTsKKyAg
ICAgICAgcmV0dXJuIHNlbGYucnVuKFsnc3ZuJywgJ2xvZycsICctLW5vbi1pbnRlcmFjdGl2ZScs
ICctLXJldmlzaW9uJywgc3ZuX3JldmlzaW9uXSkKIAogICAgIGRlZiBsYXN0X3N2bl9jb21taXRf
bG9nKHNlbGYpOgogICAgICAgICAjIEJBU0UgaXMgdGhlIGNoZWNrb3V0IHJldmlzaW9uLCBIRUFE
IGlzIHRoZSByZW1vdGUgcmVwb3NpdG9yeSByZXZpc2lvbgpAQCAtNDU1LDMwICs0NjUsMzAgQEAg
Y2xhc3MgR2l0KFNDTSk6CiAKICAgICBkZWYgZGlzY2FyZF9sb2NhbF9jb21taXRzKHNlbGYpOgog
ICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSB1c2UgY3dkPXNlbGYuY2hlY2tv
dXRfcm9vdAotICAgICAgICBydW5fY29tbWFuZChbJ2dpdCcsICdyZXNldCcsICctLWhhcmQnLCBz
ZWxmLnN2bl9icmFuY2hfbmFtZSgpXSkKKyAgICAgICAgc2VsZi5ydW4oWydnaXQnLCAncmVzZXQn
LCAnLS1oYXJkJywgc2VsZi5zdm5fYnJhbmNoX25hbWUoKV0pCiAgICAgCiAgICAgZGVmIGxvY2Fs
X2NvbW1pdHMoc2VsZik6CiAgICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIHByb2JhYmx5IHVz
ZSBjd2Q9c2VsZi5jaGVja291dF9yb290Ci0gICAgICAgIHJldHVybiBydW5fY29tbWFuZChbJ2dp
dCcsICdsb2cnLCAnLS1wcmV0dHk9b25lbGluZScsICdIRUFELi4uJyArIHNlbGYuc3ZuX2JyYW5j
aF9uYW1lKCldKS5zcGxpdGxpbmVzKCkKKyAgICAgICAgcmV0dXJuIHNlbGYucnVuKFsnZ2l0Jywg
J2xvZycsICctLXByZXR0eT1vbmVsaW5lJywgJ0hFQUQuLi4nICsgc2VsZi5zdm5fYnJhbmNoX25h
bWUoKV0pLnNwbGl0bGluZXMoKQogCiAgICAgZGVmIHJlYmFzZV9pbl9wcm9ncmVzcyhzZWxmKToK
ICAgICAgICAgcmV0dXJuIG9zLnBhdGguZXhpc3RzKG9zLnBhdGguam9pbihzZWxmLmNoZWNrb3V0
X3Jvb3QsICcuZ2l0L3JlYmFzZS1hcHBseScpKQogCiAgICAgZGVmIHdvcmtpbmdfZGlyZWN0b3J5
X2lzX2NsZWFuKHNlbGYpOgogICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSB1
c2UgY3dkPXNlbGYuY2hlY2tvdXRfcm9vdAotICAgICAgICByZXR1cm4gcnVuX2NvbW1hbmQoWydn
aXQnLCAnZGlmZicsICdIRUFEJywgJy0tbmFtZS1vbmx5J10pID09ICIiCisgICAgICAgIHJldHVy
biBzZWxmLnJ1bihbJ2dpdCcsICdkaWZmJywgJ0hFQUQnLCAnLS1uYW1lLW9ubHknXSkgPT0gIiIK
IAogICAgIGRlZiBjbGVhbl93b3JraW5nX2RpcmVjdG9yeShzZWxmKToKICAgICAgICAgIyBGSVhN
RTogVGhlc2Ugc2hvdWxkIHByb2JhYmx5IHVzZSBjd2Q9c2VsZi5jaGVja291dF9yb290LgogICAg
ICAgICAjIENvdWxkIHJ1biBnaXQgY2xlYW4gaGVyZSB0b28sIGJ1dCB0aGF0IHdvdWxkbid0IG1h
dGNoIHdvcmtpbmdfZGlyZWN0b3J5X2lzX2NsZWFuCi0gICAgICAgIHJ1bl9jb21tYW5kKFsnZ2l0
JywgJ3Jlc2V0JywgJy0taGFyZCcsICdIRUFEJ10pCisgICAgICAgIHNlbGYucnVuKFsnZ2l0Jywg
J3Jlc2V0JywgJy0taGFyZCcsICdIRUFEJ10pCiAgICAgICAgICMgQWJvcnRpbmcgcmViYXNlIGV2
ZW4gdGhvdWdoIHRoaXMgZG9lcyBub3QgbWF0Y2ggd29ya2luZ19kaXJlY3RvcnlfaXNfY2xlYW4K
ICAgICAgICAgaWYgc2VsZi5yZWJhc2VfaW5fcHJvZ3Jlc3MoKToKLSAgICAgICAgICAgIHJ1bl9j
b21tYW5kKFsnZ2l0JywgJ3JlYmFzZScsICctLWFib3J0J10pCisgICAgICAgICAgICBzZWxmLnJ1
bihbJ2dpdCcsICdyZWJhc2UnLCAnLS1hYm9ydCddKQogCiAgICAgZGVmIHN0YXR1c19jb21tYW5k
KHNlbGYpOgogICAgICAgICAjIGdpdCBzdGF0dXMgcmV0dXJucyBub24temVybyB3aGVuIHRoZXJl
IGFyZSBjaGFuZ2VzLCBzbyB3ZSB1c2UgZ2l0IGRpZmYgbmFtZSAtLW5hbWUtc3RhdHVzIEhFQUQg
aW5zdGVhZC4KLSAgICAgICAgIyBObyBmaWxlIGNvbnRlbnRzIHByaW50ZWQsIHRodXMgdXRmLTgg
YXV0b2RlY29kaW5nIGluIHJ1bl9jb21tYW5kIGlzIGZpbmUuCisgICAgICAgICMgTm8gZmlsZSBj
b250ZW50cyBwcmludGVkLCB0aHVzIHV0Zi04IGF1dG9kZWNvZGluZyBpbiBzZWxmLnJ1biBpcyBm
aW5lLgogICAgICAgICByZXR1cm4gWyJnaXQiLCAiZGlmZiIsICItLW5hbWUtc3RhdHVzIiwgIkhF
QUQiXQogCiAgICAgZGVmIF9zdGF0dXNfcmVnZXhwKHNlbGYsIGV4cGVjdGVkX3R5cGVzKToKQEAg
LTQ4Niw3ICs0OTYsNyBAQCBjbGFzcyBHaXQoU0NNKToKIAogICAgIGRlZiBhZGQoc2VsZiwgcGF0
aCk6CiAgICAgICAgICMgcGF0aCBpcyBhc3N1bWVkIHRvIGJlIGN3ZCByZWxhdGl2ZT8KLSAgICAg
ICAgcnVuX2NvbW1hbmQoWyJnaXQiLCAiYWRkIiwgcGF0aF0pCisgICAgICAgIHNlbGYucnVuKFsi
Z2l0IiwgImFkZCIsIHBhdGhdKQogCiAgICAgZGVmIF9tZXJnZV9iYXNlKHNlbGYsIGdpdF9jb21t
aXQsIHNxdWFzaCk6CiAgICAgICAgIGlmIGdpdF9jb21taXQ6CkBAIC01MTAsNyArNTIwLDcgQEAg
Y2xhc3MgR2l0KFNDTSk6CiAKICAgICBkZWYgX2NoYW5nZXNfZmlsZXNfZm9yX2NvbW1pdChzZWxm
LCBnaXRfY29tbWl0KToKICAgICAgICAgIyAtLXByZXR0eT0iZm9ybWF0OiIgbWFrZXMgZ2l0IHNo
b3cgbm90IHByaW50IHRoZSBjb21taXQgbG9nIGhlYWRlciwKLSAgICAgICAgY2hhbmdlZF9maWxl
cyA9IHJ1bl9jb21tYW5kKFsiZ2l0IiwgInNob3ciLCAiLS1wcmV0dHk9Zm9ybWF0OiIsICItLW5h
bWUtb25seSIsIGdpdF9jb21taXRdKS5zcGxpdGxpbmVzKCkKKyAgICAgICAgY2hhbmdlZF9maWxl
cyA9IHNlbGYucnVuKFsiZ2l0IiwgInNob3ciLCAiLS1wcmV0dHk9Zm9ybWF0OiIsICItLW5hbWUt
b25seSIsIGdpdF9jb21taXRdKS5zcGxpdGxpbmVzKCkKICAgICAgICAgIyBpbnN0ZWFkIGl0IGp1
c3QgcHJpbnRzIGEgYmxhbmsgbGluZSBhdCB0aGUgdG9wLCBzbyB3ZSBza2lwIHRoZSBibGFuayBs
aW5lOgogICAgICAgICByZXR1cm4gY2hhbmdlZF9maWxlc1sxOl0KIApAQCAtNTM5LDcgKzU0OSw3
IEBAIGNsYXNzIEdpdChTQ00pOgogICAgICAgICBQYXRjaCBmaWxlcyBhcmUgZWZmZWN0aXZlbHkg
YmluYXJ5IHNpbmNlIHRoZXkgbWF5IGNvbnRhaW4KICAgICAgICAgZmlsZXMgb2YgbXVsdGlwbGUg
ZGlmZmVyZW50IGVuY29kaW5ncy4iIiIKICAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgcHJv
YmFibHkgdXNlIGN3ZD1zZWxmLmNoZWNrb3V0X3Jvb3QKLSAgICAgICAgcmV0dXJuIHJ1bl9jb21t
YW5kKFsnZ2l0JywgJ2RpZmYnLCAnLS1iaW5hcnknLCAiLS1uby1leHQtZGlmZiIsICItLWZ1bGwt
aW5kZXgiLCAiLU0iLCBzZWxmLl9tZXJnZV9iYXNlKGdpdF9jb21taXQsIHNxdWFzaCldLCBkZWNv
ZGVfb3V0cHV0PUZhbHNlKQorICAgICAgICByZXR1cm4gc2VsZi5ydW4oWydnaXQnLCAnZGlmZics
ICctLWJpbmFyeScsICItLW5vLWV4dC1kaWZmIiwgIi0tZnVsbC1pbmRleCIsICItTSIsIHNlbGYu
X21lcmdlX2Jhc2UoZ2l0X2NvbW1pdCwgc3F1YXNoKV0sIGRlY29kZV9vdXRwdXQ9RmFsc2UpCiAK
ICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgZ2l0X2NvbW1pdF9mcm9tX3N2bl9yZXZpc2lvbihj
bHMsIHJldmlzaW9uKToKQEAgLTU1Myw3ICs1NjMsNyBAQCBjbGFzcyBHaXQoU0NNKToKICAgICBk
ZWYgY29udGVudHNfYXRfcmV2aXNpb24oc2VsZiwgcGF0aCwgcmV2aXNpb24pOgogICAgICAgICAi
IiJSZXR1cm5zIGEgYnl0ZSBhcnJheSAoc3RyKCkpIGNvbnRhaW5pbmcgdGhlIGNvbnRlbnRzCiAg
ICAgICAgIG9mIHBhdGggQCByZXZpc2lvbiBpbiB0aGUgcmVwb3NpdG9yeS4iIiIKLSAgICAgICAg
cmV0dXJuIHJ1bl9jb21tYW5kKFsiZ2l0IiwgInNob3ciLCAiJXM6JXMiICUgKHNlbGYuZ2l0X2Nv
bW1pdF9mcm9tX3N2bl9yZXZpc2lvbihyZXZpc2lvbiksIHBhdGgpXSwgZGVjb2RlX291dHB1dD1G
YWxzZSkKKyAgICAgICAgcmV0dXJuIHNlbGYucnVuKFsiZ2l0IiwgInNob3ciLCAiJXM6JXMiICUg
KHNlbGYuZ2l0X2NvbW1pdF9mcm9tX3N2bl9yZXZpc2lvbihyZXZpc2lvbiksIHBhdGgpXSwgZGVj
b2RlX291dHB1dD1GYWxzZSkKIAogICAgIGRlZiBkaWZmX2Zvcl9yZXZpc2lvbihzZWxmLCByZXZp
c2lvbik6CiAgICAgICAgIGdpdF9jb21taXQgPSBzZWxmLmdpdF9jb21taXRfZnJvbV9zdm5fcmV2
aXNpb24ocmV2aXNpb24pCkBAIC01NjEsNyArNTcxLDcgQEAgY2xhc3MgR2l0KFNDTSk6CiAKICAg
ICBkZWYgY29tbWl0dGVyX2VtYWlsX2Zvcl9yZXZpc2lvbihzZWxmLCByZXZpc2lvbik6CiAgICAg
ICAgIGdpdF9jb21taXQgPSBzZWxmLmdpdF9jb21taXRfZnJvbV9zdm5fcmV2aXNpb24ocmV2aXNp
b24pCi0gICAgICAgIGNvbW1pdHRlcl9lbWFpbCA9IHJ1bl9jb21tYW5kKFsiZ2l0IiwgImxvZyIs
ICItMSIsICItLXByZXR0eT1mb3JtYXQ6JWNlIiwgZ2l0X2NvbW1pdF0pCisgICAgICAgIGNvbW1p
dHRlcl9lbWFpbCA9IHNlbGYucnVuKFsiZ2l0IiwgImxvZyIsICItMSIsICItLXByZXR0eT1mb3Jt
YXQ6JWNlIiwgZ2l0X2NvbW1pdF0pCiAgICAgICAgICMgR2l0IGFkZHMgYW4gZXh0cmEgQHJlcG9z
aXRvcnlfaGFzaCB0byB0aGUgZW5kIG9mIGV2ZXJ5IGNvbW1pdHRlciBlbWFpbCwgcmVtb3ZlIGl0
OgogICAgICAgICByZXR1cm4gY29tbWl0dGVyX2VtYWlsLnJzcGxpdCgiQCIsIDEpWzBdCiAKQEAg
LTU2OSwxMCArNTc5LDEwIEBAIGNsYXNzIEdpdChTQ00pOgogICAgICAgICAjIEFzc3VtZSB0aGUg
cmV2aXNpb24gaXMgYW4gc3ZuIHJldmlzaW9uLgogICAgICAgICBnaXRfY29tbWl0ID0gc2VsZi5n
aXRfY29tbWl0X2Zyb21fc3ZuX3JldmlzaW9uKHJldmlzaW9uKQogICAgICAgICAjIEkgdGhpbmsg
dGhpcyB3aWxsIGFsd2F5cyBmYWlsIGR1ZSB0byBDaGFuZ2VMb2dzLgotICAgICAgICBydW5fY29t
bWFuZChbJ2dpdCcsICdyZXZlcnQnLCAnLS1uby1jb21taXQnLCBnaXRfY29tbWl0XSwgZXJyb3Jf
aGFuZGxlcj1FeGVjdXRpdmUuaWdub3JlX2Vycm9yKQorICAgICAgICBzZWxmLnJ1bihbJ2dpdCcs
ICdyZXZlcnQnLCAnLS1uby1jb21taXQnLCBnaXRfY29tbWl0XSwgZXJyb3JfaGFuZGxlcj1FeGVj
dXRpdmUuaWdub3JlX2Vycm9yKQogCiAgICAgZGVmIHJldmVydF9maWxlcyhzZWxmLCBmaWxlX3Bh
dGhzKToKLSAgICAgICAgcnVuX2NvbW1hbmQoWydnaXQnLCAnY2hlY2tvdXQnLCAnSEVBRCddICsg
ZmlsZV9wYXRocykKKyAgICAgICAgc2VsZi5ydW4oWydnaXQnLCAnY2hlY2tvdXQnLCAnSEVBRCdd
ICsgZmlsZV9wYXRocykKIAogICAgIGRlZiBzaG91bGRfc3F1YXNoKHNlbGYsIHNxdWFzaCk6CiAg
ICAgICAgIGlmIHNxdWFzaCBpcyBub3QgTm9uZToKQEAgLTYwNyw3ICs2MTcsNyBAQCBjbGFzcyBH
aXQoU0NNKToKIAogICAgICAgICBzcXVhc2ggPSBzZWxmLnNob3VsZF9zcXVhc2goc3F1YXNoKQog
ICAgICAgICBpZiBzcXVhc2g6Ci0gICAgICAgICAgICBydW5fY29tbWFuZChbJ2dpdCcsICdyZXNl
dCcsICctLXNvZnQnLCBzZWxmLnN2bl9icmFuY2hfbmFtZSgpXSkKKyAgICAgICAgICAgIHNlbGYu
cnVuKFsnZ2l0JywgJ3Jlc2V0JywgJy0tc29mdCcsIHNlbGYuc3ZuX2JyYW5jaF9uYW1lKCldKQog
ICAgICAgICAgICAgc2VsZi5jb21taXRfbG9jYWxseV93aXRoX21lc3NhZ2UobWVzc2FnZSkKICAg
ICAgICAgZWxpZiBub3Qgc2VsZi53b3JraW5nX2RpcmVjdG9yeV9pc19jbGVhbigpOgogICAgICAg
ICAgICAgaWYgbm90IGxlbihzZWxmLmxvY2FsX2NvbW1pdHMoKSk6CkBAIC02MjcsNyArNjM3LDcg
QEAgY2xhc3MgR2l0KFNDTSk6CiAgICAgICAgIHJldHVybiBzZWxmLnB1c2hfbG9jYWxfY29tbWl0
c190b19zZXJ2ZXIoKQogCiAgICAgZGVmIF9jb21taXRfb25fYnJhbmNoKHNlbGYsIG1lc3NhZ2Us
IGdpdF9jb21taXQpOgotICAgICAgICBicmFuY2hfcmVmID0gcnVuX2NvbW1hbmQoWydnaXQnLCAn
c3ltYm9saWMtcmVmJywgJ0hFQUQnXSkuc3RyaXAoKQorICAgICAgICBicmFuY2hfcmVmID0gc2Vs
Zi5ydW4oWydnaXQnLCAnc3ltYm9saWMtcmVmJywgJ0hFQUQnXSkuc3RyaXAoKQogICAgICAgICBi
cmFuY2hfbmFtZSA9IGJyYW5jaF9yZWYucmVwbGFjZSgncmVmcy9oZWFkcy8nLCAnJykKICAgICAg
ICAgY29tbWl0X2lkcyA9IHNlbGYuY29tbWl0X2lkc19mcm9tX2NvbW1pdGlzaF9hcmd1bWVudHMo
W2dpdF9jb21taXRdKQogCkBAIC02NDUsMTYgKzY1NSwxNiBAQCBjbGFzcyBHaXQoU0NNKToKICAg
ICAgICAgIyBXZSB3cmFwIGluIGEgdHJ5Li4uZmluYWxseSBibG9jayBzbyBpZiBhbnl0aGluZyBn
b2VzIHdyb25nLCB3ZSBjbGVhbiB1cCB0aGUgYnJhbmNoZXMuCiAgICAgICAgIGNvbW1pdF9zdWNj
ZWVkZWQgPSBUcnVlCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHJ1bl9jb21tYW5kKFsnZ2l0
JywgJ2NoZWNrb3V0JywgJy1xJywgJy1iJywgTUVSR0VfQlJBTkNILCBzZWxmLnN2bl9icmFuY2hf
bmFtZSgpXSkKKyAgICAgICAgICAgIHNlbGYucnVuKFsnZ2l0JywgJ2NoZWNrb3V0JywgJy1xJywg
Jy1iJywgTUVSR0VfQlJBTkNILCBzZWxmLnN2bl9icmFuY2hfbmFtZSgpXSkKIAogICAgICAgICAg
ICAgZm9yIGNvbW1pdCBpbiBjb21taXRfaWRzOgogICAgICAgICAgICAgICAgICMgV2UncmUgb24g
YSBkaWZmZXJlbnQgYnJhbmNoIG5vdywgc28gY29udmVydCAiaGVhZCIgdG8gdGhlIGJyYW5jaCBu
YW1lLgogICAgICAgICAgICAgICAgIGNvbW1pdCA9IHJlLnN1YihyJyg/aSloZWFkJywgYnJhbmNo
X25hbWUsIGNvbW1pdCkKICAgICAgICAgICAgICAgICAjIEZJWE1FOiBPbmNlIGNoYW5nZWRfZmls
ZXMgYW5kIGNyZWF0ZV9wYXRjaCBhcmUgbW9kaWZpZWQgdG8gc2VwYXJhdGVseSBoYW5kbGUgZWFj
aAogICAgICAgICAgICAgICAgICMgY29tbWl0IGluIGEgY29tbWl0IHJhbmdlLCBjb21taXQgZWFj
aCBjaGVycnkgcGljayBzbyB0aGV5J2xsIGdldCBkY29tbWl0dGVkIHNlcGFyYXRlbHkuCi0gICAg
ICAgICAgICAgICAgcnVuX2NvbW1hbmQoWydnaXQnLCAnY2hlcnJ5LXBpY2snLCAnLS1uby1jb21t
aXQnLCBjb21taXRdKQorICAgICAgICAgICAgICAgIHNlbGYucnVuKFsnZ2l0JywgJ2NoZXJyeS1w
aWNrJywgJy0tbm8tY29tbWl0JywgY29tbWl0XSkKIAotICAgICAgICAgICAgcnVuX2NvbW1hbmQo
WydnaXQnLCAnY29tbWl0JywgJy1tJywgbWVzc2FnZV0pCisgICAgICAgICAgICBzZWxmLnJ1bihb
J2dpdCcsICdjb21taXQnLCAnLW0nLCBtZXNzYWdlXSkKICAgICAgICAgICAgIG91dHB1dCA9IHNl
bGYucHVzaF9sb2NhbF9jb21taXRzX3RvX3NlcnZlcigpCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRp
b24sIGU6CiAgICAgICAgICAgICBsb2coIkNPTU1JVCBGQUlMRUQ6ICIgKyBzdHIoZSkpCkBAIC02
NjMsMjYgKzY3MywyNiBAQCBjbGFzcyBHaXQoU0NNKToKICAgICAgICAgZmluYWxseToKICAgICAg
ICAgICAgICMgQW5kIHRoZW4gc3dhcCBiYWNrIHRvIHRoZSBvcmlnaW5hbCBicmFuY2ggYW5kIGNs
ZWFuIHVwLgogICAgICAgICAgICAgc2VsZi5jbGVhbl93b3JraW5nX2RpcmVjdG9yeSgpCi0gICAg
ICAgICAgICBydW5fY29tbWFuZChbJ2dpdCcsICdjaGVja291dCcsICctcScsIGJyYW5jaF9uYW1l
XSkKKyAgICAgICAgICAgIHNlbGYucnVuKFsnZ2l0JywgJ2NoZWNrb3V0JywgJy1xJywgYnJhbmNo
X25hbWVdKQogICAgICAgICAgICAgc2VsZi5kZWxldGVfYnJhbmNoKE1FUkdFX0JSQU5DSCkKIAog
ICAgICAgICByZXR1cm4gb3V0cHV0CiAKICAgICBkZWYgc3ZuX2NvbW1pdF9sb2coc2VsZiwgc3Zu
X3JldmlzaW9uKToKICAgICAgICAgc3ZuX3JldmlzaW9uID0gc2VsZi5zdHJpcF9yX2Zyb21fc3Zu
X3JldmlzaW9uKHN2bl9yZXZpc2lvbikKLSAgICAgICAgcmV0dXJuIHJ1bl9jb21tYW5kKFsnZ2l0
JywgJ3N2bicsICdsb2cnLCAnLXInLCBzdm5fcmV2aXNpb25dKQorICAgICAgICByZXR1cm4gc2Vs
Zi5ydW4oWydnaXQnLCAnc3ZuJywgJ2xvZycsICctcicsIHN2bl9yZXZpc2lvbl0pCiAKICAgICBk
ZWYgbGFzdF9zdm5fY29tbWl0X2xvZyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHJ1bl9jb21tYW5k
KFsnZ2l0JywgJ3N2bicsICdsb2cnLCAnLS1saW1pdD0xJ10pCisgICAgICAgIHJldHVybiBzZWxm
LnJ1bihbJ2dpdCcsICdzdm4nLCAnbG9nJywgJy0tbGltaXQ9MSddKQogCiAgICAgIyBHaXQtc3Bl
Y2lmaWMgbWV0aG9kczoKIAogICAgIGRlZiBkZWxldGVfYnJhbmNoKHNlbGYsIGJyYW5jaCk6Ci0g
ICAgICAgIGlmIHJ1bl9jb21tYW5kKFsnZ2l0JywgJ3Nob3ctcmVmJywgJy0tcXVpZXQnLCAnLS12
ZXJpZnknLCAncmVmcy9oZWFkcy8nICsgYnJhbmNoXSwgcmV0dXJuX2V4aXRfY29kZT1UcnVlKSA9
PSAwOgotICAgICAgICAgICAgcnVuX2NvbW1hbmQoWydnaXQnLCAnYnJhbmNoJywgJy1EJywgYnJh
bmNoXSkKKyAgICAgICAgaWYgc2VsZi5ydW4oWydnaXQnLCAnc2hvdy1yZWYnLCAnLS1xdWlldCcs
ICctLXZlcmlmeScsICdyZWZzL2hlYWRzLycgKyBicmFuY2hdLCByZXR1cm5fZXhpdF9jb2RlPVRy
dWUpID09IDA6CisgICAgICAgICAgICBzZWxmLnJ1bihbJ2dpdCcsICdicmFuY2gnLCAnLUQnLCBi
cmFuY2hdKQogCiAgICAgZGVmIHN2bl9tZXJnZV9iYXNlKHNlbGYpOgotICAgICAgICByZXR1cm4g
cnVuX2NvbW1hbmQoWydnaXQnLCAnbWVyZ2UtYmFzZScsIHNlbGYuc3ZuX2JyYW5jaF9uYW1lKCks
ICdIRUFEJ10pLnN0cmlwKCkKKyAgICAgICAgcmV0dXJuIHNlbGYucnVuKFsnZ2l0JywgJ21lcmdl
LWJhc2UnLCBzZWxmLnN2bl9icmFuY2hfbmFtZSgpLCAnSEVBRCddKS5zdHJpcCgpCiAKICAgICBk
ZWYgc3ZuX2JyYW5jaF9uYW1lKHNlbGYpOgogICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBz
byBzb21ldGhpbmcgbGlrZTogR2l0LnJlYWRfZ2l0X2NvbmZpZygnc3ZuLXJlbW90ZS5zdm4uZmV0
Y2gnKS5zcGxpdCgnOicpWzFdCkBAIC02OTAsMTMgKzcwMCwxMyBAQCBjbGFzcyBHaXQoU0NNKToK
ICAgICAgICAgcmV0dXJuICd0cnVuaycKIAogICAgIGRlZiBjb21taXRfbG9jYWxseV93aXRoX21l
c3NhZ2Uoc2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgIHJ1bl9jb21tYW5kKFsnZ2l0JywgJ2NvbW1p
dCcsICctLWFsbCcsICctRicsICctJ10sIGlucHV0PW1lc3NhZ2UpCisgICAgICAgIHNlbGYucnVu
KFsnZ2l0JywgJ2NvbW1pdCcsICctLWFsbCcsICctRicsICctJ10sIGlucHV0PW1lc3NhZ2UpCiAK
ICAgICBkZWYgcHVzaF9sb2NhbF9jb21taXRzX3RvX3NlcnZlcihzZWxmKToKICAgICAgICAgZGNv
bW1pdF9jb21tYW5kID0gWydnaXQnLCAnc3ZuJywgJ2Rjb21taXQnXQogICAgICAgICBpZiBzZWxm
LmRyeXJ1bjoKICAgICAgICAgICAgIGRjb21taXRfY29tbWFuZC5hcHBlbmQoJy0tZHJ5LXJ1bicp
Ci0gICAgICAgIG91dHB1dCA9IHJ1bl9jb21tYW5kKGRjb21taXRfY29tbWFuZCwgZXJyb3JfaGFu
ZGxlcj1jb21taXRfZXJyb3JfaGFuZGxlcikKKyAgICAgICAgb3V0cHV0ID0gc2VsZi5ydW4oZGNv
bW1pdF9jb21tYW5kLCBlcnJvcl9oYW5kbGVyPWNvbW1pdF9lcnJvcl9oYW5kbGVyKQogICAgICAg
ICAjIFJldHVybiBhIHN0cmluZyB3aGljaCBsb29rcyBsaWtlIGEgY29tbWl0IHNvIHRoYXQgdGhp
bmdzIHdoaWNoIHBhcnNlIHRoaXMgb3V0cHV0IHdpbGwgc3VjY2VlZC4KICAgICAgICAgaWYgc2Vs
Zi5kcnlydW46CiAgICAgICAgICAgICBvdXRwdXQgKz0gIlxuQ29tbWl0dGVkIHIwIgpAQCAtNzE2
LDE0ICs3MjYsMTQgQEAgY2xhc3MgR2l0KFNDTSk6CiAgICAgICAgICAgICBpZiAnLi4uJyBpbiBj
b21taXRpc2g6CiAgICAgICAgICAgICAgICAgcmFpc2UgU2NyaXB0RXJyb3IobWVzc2FnZT0iJy4u
LicgaXMgbm90IHN1cHBvcnRlZCAoZm91bmQgaW4gJyVzJykuIERpZCB5b3UgbWVhbiAnLi4nPyIg
JSBjb21taXRpc2gpCiAgICAgICAgICAgICBlbGlmICcuLicgaW4gY29tbWl0aXNoOgotICAgICAg
ICAgICAgICAgIGNvbW1pdF9pZHMgKz0gcmV2ZXJzZWQocnVuX2NvbW1hbmQoWydnaXQnLCAncmV2
LWxpc3QnLCBjb21taXRpc2hdKS5zcGxpdGxpbmVzKCkpCisgICAgICAgICAgICAgICAgY29tbWl0
X2lkcyArPSByZXZlcnNlZChzZWxmLnJ1bihbJ2dpdCcsICdyZXYtbGlzdCcsIGNvbW1pdGlzaF0p
LnNwbGl0bGluZXMoKSkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgIyBUdXJu
IHNpbmdsZSBjb21taXRzIG9yIGJyYW5jaCBvciB0YWcgbmFtZXMgaW50byBjb21taXQgaWRzLgot
ICAgICAgICAgICAgICAgIGNvbW1pdF9pZHMgKz0gcnVuX2NvbW1hbmQoWydnaXQnLCAncmV2LXBh
cnNlJywgJy0tcmV2cy1vbmx5JywgY29tbWl0aXNoXSkuc3BsaXRsaW5lcygpCisgICAgICAgICAg
ICAgICAgY29tbWl0X2lkcyArPSBzZWxmLnJ1bihbJ2dpdCcsICdyZXYtcGFyc2UnLCAnLS1yZXZz
LW9ubHknLCBjb21taXRpc2hdKS5zcGxpdGxpbmVzKCkKICAgICAgICAgcmV0dXJuIGNvbW1pdF9p
ZHMKIAogICAgIGRlZiBjb21taXRfbWVzc2FnZV9mb3JfbG9jYWxfY29tbWl0KHNlbGYsIGNvbW1p
dF9pZCk6Ci0gICAgICAgIGNvbW1pdF9saW5lcyA9IHJ1bl9jb21tYW5kKFsnZ2l0JywgJ2NhdC1m
aWxlJywgJ2NvbW1pdCcsIGNvbW1pdF9pZF0pLnNwbGl0bGluZXMoKQorICAgICAgICBjb21taXRf
bGluZXMgPSBzZWxmLnJ1bihbJ2dpdCcsICdjYXQtZmlsZScsICdjb21taXQnLCBjb21taXRfaWRd
KS5zcGxpdGxpbmVzKCkKIAogICAgICAgICAjIFNraXAgdGhlIGdpdCBoZWFkZXJzLgogICAgICAg
ICBmaXJzdF9saW5lX2FmdGVyX2hlYWRlcnMgPSAwCkBAIC03MzQsNCArNzQ0LDQgQEAgY2xhc3Mg
R2l0KFNDTSk6CiAgICAgICAgIHJldHVybiBDb21taXRNZXNzYWdlKGNvbW1pdF9saW5lc1tmaXJz
dF9saW5lX2FmdGVyX2hlYWRlcnM6XSkKIAogICAgIGRlZiBmaWxlc19jaGFuZ2VkX3N1bW1hcnlf
Zm9yX2NvbW1pdChzZWxmLCBjb21taXRfaWQpOgotICAgICAgICByZXR1cm4gcnVuX2NvbW1hbmQo
WydnaXQnLCAnZGlmZi10cmVlJywgJy0tc2hvcnRzdGF0JywgJy0tbm8tY29tbWl0LWlkJywgY29t
bWl0X2lkXSkKKyAgICAgICAgcmV0dXJuIHNlbGYucnVuKFsnZ2l0JywgJ2RpZmYtdHJlZScsICct
LXNob3J0c3RhdCcsICctLW5vLWNvbW1pdC1pZCcsIGNvbW1pdF9pZF0pCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>