<?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>176965</bug_id>
          
          <creation_ts>2017-09-14 16:06:00 -0700</creation_ts>
          <short_desc>teach build.webkit.org to include run-webkit-archive in the root folder of uploaded macOS archives</short_desc>
          <delta_ts>2018-01-15 12:51:32 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Lucas Forschler">lforschler</reporter>
          <assigned_to name="Lucas Forschler">lforschler</assigned_to>
          <cc>lforschler</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1349067</commentid>
    <comment_count>0</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2017-09-14 16:06:00 -0700</bug_when>
    <thetext>Once run-webkit-archive is checked in, we&apos;ll need to teach our build system to include it in archives.
This could be done as an additional step, or possibly inside the existing archive step.

The script should be added to the root folder of the archive, so it sits beside the &apos;Release&apos; or &apos;Debug&apos; frameworks directory.
This can be done with a command like:
zip -j filename.zip /path/to/OpenSource/Tools/Scripts/run-webkit-archive</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349068</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-14 16:06:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/34445866&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349365</commentid>
    <comment_count>2</comment_count>
      <attachid>320920</attachid>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2017-09-15 10:00:34 -0700</bug_when>
    <thetext>Created attachment 320920
v1 patch for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349397</commentid>
    <comment_count>3</comment_count>
      <attachid>320926</attachid>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2017-09-15 10:56:14 -0700</bug_when>
    <thetext>Created attachment 320926
v2 patch, this one changes the working folder to the script folder, and will allow double click execution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349398</commentid>
    <comment_count>4</comment_count>
      <attachid>320927</attachid>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2017-09-15 10:57:28 -0700</bug_when>
    <thetext>Created attachment 320927
v2 patch, this one changes the working folder to the script folder, and will allow double click execution

upload the correct patch this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349564</commentid>
    <comment_count>5</comment_count>
      <attachid>320927</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-09-15 16:33:04 -0700</bug_when>
    <thetext>Comment on attachment 320927
v2 patch, this one changes the working folder to the script folder, and will allow double click execution

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

&gt; Tools/ChangeLog:8
&gt; +        * BuildSlaveSupport/built-product-archive:

This is not new to the patch, but the name of the script doesn&apos;t seem to parse. Is it &quot;build product archive&quot;, or &quot;archive built product&quot;?

&gt; Tools/BuildSlaveSupport/built-product-archive:141
&gt; +    command = [&apos;zip&apos;, &apos;-j&apos;, archiveFile, PATH_TO_LAUNCHER]

FWIW I like to use full paths in scripts, /usr/bin/zip.

&gt; Tools/BuildSlaveSupport/built-product-archive:161
&gt; +        return subprocess.call(command) or addLauncherToArchive(archiveFile)   

trailing spaces in this line

&gt; Tools/Scripts/run-webkit-archive:56
&gt;      os.environ[&apos;DYLD_LIBRARY_PATH&apos;] = dyld_path

Looking at this, I&apos;m wondering if we also need __XPC_ variants. Did you confirm that the downloaded frameworks are actually used in WebContent?

&gt; Tools/Scripts/run-webkit-archive:60
&gt; +    script_path = os.path.abspath(__file__)

These changes are not mentioned in ChangeLog.

Not new to the patch either, but this file should probably be hidden somewhere (maybe in Tools/BuildSlaveSupport). It&apos;s not great to add a new script in a directory that&apos;s in every WebKit developer&apos;s path when we are not going to ever run it from this location.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349573</commentid>
    <comment_count>6</comment_count>
      <attachid>320927</attachid>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2017-09-15 16:58:25 -0700</bug_when>
    <thetext>Comment on attachment 320927
v2 patch, this one changes the working folder to the script folder, and will allow double click execution

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

&gt;&gt; Tools/ChangeLog:8
&gt;&gt; +        * BuildSlaveSupport/built-product-archive:
&gt; 
&gt; This is not new to the patch, but the name of the script doesn&apos;t seem to parse. Is it &quot;build product archive&quot;, or &quot;archive built product&quot;?

./Tools/BuildSlaveSupport/built-product-archive
I don&apos;t care for this name either, but it&apos;s been around a decade.

&gt;&gt; Tools/BuildSlaveSupport/built-product-archive:141
&gt;&gt; +    command = [&apos;zip&apos;, &apos;-j&apos;, archiveFile, PATH_TO_LAUNCHER]
&gt; 
&gt; FWIW I like to use full paths in scripts, /usr/bin/zip.

I can update this to use full path, however there are many other instances in this file which do not use the full path. I&apos;ll leave them as-is, and update this one.

&gt;&gt; Tools/BuildSlaveSupport/built-product-archive:161
&gt;&gt; +        return subprocess.call(command) or addLauncherToArchive(archiveFile)   
&gt; 
&gt; trailing spaces in this line

fixed.

&gt;&gt; Tools/Scripts/run-webkit-archive:56
&gt;&gt;      os.environ[&apos;DYLD_LIBRARY_PATH&apos;] = dyld_path
&gt; 
&gt; Looking at this, I&apos;m wondering if we also need __XPC_ variants. Did you confirm that the downloaded frameworks are actually used in WebContent?

I did check, I think we are good.

&gt;&gt; Tools/Scripts/run-webkit-archive:60
&gt;&gt; +    script_path = os.path.abspath(__file__)
&gt; 
&gt; These changes are not mentioned in ChangeLog.
&gt; 
&gt; Not new to the patch either, but this file should probably be hidden somewhere (maybe in Tools/BuildSlaveSupport). It&apos;s not great to add a new script in a directory that&apos;s in every WebKit developer&apos;s path when we are not going to ever run it from this location.

These changes were not meant for this patch. I&apos;ll move them to their own change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349578</commentid>
    <comment_count>7</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2017-09-15 17:04:45 -0700</bug_when>
    <thetext>Committed revision 222121.
Note: moved the run-webkit-archive to it&apos;s new home in Tools/BuildSlaveSupport.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349579</commentid>
    <comment_count>8</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2017-09-15 17:06:04 -0700</bug_when>
    <thetext>Committed revision 222122. (remove script from old location)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320920</attachid>
            <date>2017-09-15 10:00:34 -0700</date>
            <delta_ts>2018-01-15 12:51:32 -0800</delta_ts>
            <desc>v1 patch for review</desc>
            <filename>176965.patch</filename>
            <type>text/plain</type>
            <size>2207</size>
            <attacher name="Lucas Forschler">lforschler</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMjA5MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE0IEBACisyMDE3LTA5LTE1ICBMdWNhcyBGb3JzY2hsZXIgIDxsZm9yc2NobGVyQGFwcGxl
LmNvbT4KKworICAgICAgICAgdGVhY2ggYnVpbGQud2Via2l0Lm9yZyB0byBpbmNsdWRlIHJ1bi13
ZWJraXQtYXJjaGl2ZSBpbiB0aGUgcm9vdCBmb2xkZXIgb2YgdXBsb2FkZWQgbWFjT1MgYXJjaGl2
ZXMKKyAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY5
NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEJ1
aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZToKKyAgICAgICAgKGFkZExhdW5j
aGVyVG9BcmNoaXZlKTogSGVscGVyIGZ1bmN0aW9uIHRvIGFkZCB0aGUgc2NyaXB0IHBhdGggdG8g
dGhlIGFyY2hpdmUgcm9vdAorICAgICAgICAoY3JlYXRlWmlwKTogdGVhY2ggZnVuY3Rpb24gdG8g
Y2FsbCBhZGRMYXVuY2hlclRvQXJjaGl2ZQorCiAyMDE3LTA5LTE1ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYW4gVVJMIG1ldGhvZCB0byByZW1vdmUg
Ym90aCBxdWVyeSBzdHJpbmcgYW5kIGZyYWdtZW50IGlkZW50aWZpZXIKSW5kZXg6IFRvb2xzL0J1
aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0LWFyY2hpdmUJKHJldmlzaW9uIDIyMjA5
MikKKysrIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZQkod29y
a2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQCBfY29uZmlndXJhdGlvbkJ1aWxkRGlyZWN0b3J5
ID0gTm9uZQogX3RvcExldmVsQnVpbGREaXJlY3RvcnkgPSBOb25lCiBfaG9zdEJ1aWxkRGlyZWN0
b3J5ID0gTm9uZQogCitQQVRIX1RPX0xBVU5DSEVSID0gJy4vVG9vbHMvU2NyaXB0cy9ydW4td2Vi
a2l0LWFyY2hpdmUnCiAKIGRlZiBtYWluKCk6CiAgICAgcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9u
UGFyc2VyKCJ1c2FnZTogJXByb2cgW29wdGlvbnNdIFthY3Rpb25dIikKQEAgLTEzNiw2ICsxMzcs
OSBAQCBkZWYgY3JlYXRlWmlwTWFudWFsbHkoZGlyZWN0b3J5VG9aaXAsIGFyCiAKICAgICBhcmNo
aXZlWmlwLmNsb3NlKCkKIAorZGVmIGFkZExhdW5jaGVyVG9BcmNoaXZlKGFyY2hpdmVGaWxlKToK
KyAgICBjb21tYW5kID0gWyd6aXAnLCAnLWonLCBhcmNoaXZlRmlsZSwgUEFUSF9UT19MQVVOQ0hF
Ul0KKyAgICByZXR1cm4gc3VicHJvY2Vzcy5jYWxsKGNvbW1hbmQpCiAKIGRlZiBjcmVhdGVaaXAo
ZGlyZWN0b3J5VG9aaXAsIGNvbmZpZ3VyYXRpb24sIGVtYmVkUGFyZW50RGlyZWN0b3J5TmFtZU9u
RGFyd2luPUZhbHNlLCBtaW5pZnk9RmFsc2UpOgogICAgIGFyY2hpdmVEaXIgPSBvcy5wYXRoLmFi
c3BhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICIuLiIs
ICJXZWJLaXRCdWlsZCIpKQpAQCAtMTU0LDcgKzE1OCw3IEBAIGRlZiBjcmVhdGVaaXAoZGlyZWN0
b3J5VG9aaXAsIGNvbmZpZ3VyYXQKICAgICAgICAgaWYgZW1iZWRQYXJlbnREaXJlY3RvcnlOYW1l
T25EYXJ3aW46CiAgICAgICAgICAgICBjb21tYW5kICs9IFsnLS1rZWVwUGFyZW50J10KICAgICAg
ICAgY29tbWFuZCArPSBbZGlyZWN0b3J5VG9aaXAsIGFyY2hpdmVGaWxlXQotICAgICAgICByZXR1
cm4gc3VicHJvY2Vzcy5jYWxsKGNvbW1hbmQpCisgICAgICAgIHJldHVybiBzdWJwcm9jZXNzLmNh
bGwoY29tbWFuZCkgb3IgYWRkTGF1bmNoZXJUb0FyY2hpdmUoYXJjaGl2ZUZpbGUpICAgCiAgICAg
ZWxpZiBzeXMucGxhdGZvcm0gPT0gJ2N5Z3dpbic6CiAgICAgICAgIHJldHVybiBzdWJwcm9jZXNz
LmNhbGwoWyJ6aXAiLCAiLXIiLCBhcmNoaXZlRmlsZSwgImJpbjMyIl0sIGN3ZD1kaXJlY3RvcnlU
b1ppcCkKICAgICBlbGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOgo=
</data>
<flag name="commit-queue"
          id="340983"
          type_id="3"
          status="-"
          setter="lforschler"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320926</attachid>
            <date>2017-09-15 10:56:14 -0700</date>
            <delta_ts>2017-09-15 10:57:28 -0700</delta_ts>
            <desc>v2 patch, this one changes the working folder to the script folder, and will allow double click execution</desc>
            <filename>174596.patch</filename>
            <type>text/plain</type>
            <size>11819</size>
            <attacher name="Lucas Forschler">lforschler</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMDE1MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMxIEBACisyMDE3LTA4LTAyICBMdWNhcyBGb3JzY2hsZXIgIDxsZm9yc2NobGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBXcml0ZSBhIHRvb2wgdG8gYmlzZWN0IFdlYktpdCBidWlsZHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDU5NgorICAg
ICAgICAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL2Jpc2VjdC13ZWJraXQtYnVpbGRzOiBBZGRlZC4KKyAgICAgICAgKGZpbmRfbGUpOkZp
bmQgcmlnaHRtb3N0IHZhbHVlIGxlc3MgdGhhbiBvciBlcXVhbCB0byB4CisgICAgICAgIChmaW5k
X2dlKTpGaW5kIGxlZnRtb3N0IGl0ZW0gZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHgKKyAgICAg
ICAgKHBhcnNlX2FyZ3MpOnBhcnNlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMKKyAgICAgICAgKGdl
dF9zb3J0ZWRfcmV2aXNpb25zKTpyZXRyaWV2ZSBzb3J0ZWQgcmV2aXNpb24gbGlzdAorICAgICAg
ICAoZ2V0X3MzX2xvY2F0aW9uX2Zvcl9yZXZpc2lvbik6Y2FsY3VsYXRlIHRoZSBTMyBhcmNoaXZl
IHN0b3JhZ2UgbG9jYXRpb24KKyAgICAgICAgKGRvd25sb2FkX2FyY2hpdmUpOmRvd25sb2FkIGFu
IGFyY2hpdmUgZnJvbSBTMyB1c2luZyBleGlzdGluZyB0b29scworICAgICAgICAoZXh0cmFjdF9h
cmNoaXZlKTpleHRyYWN0IGFuIGFyY2hpdmUgdXNpbmcgZXhpc3RpbmcgdG9vbHMKKyAgICAgICAg
KHByb21wdF9kaWRfcmVwcm9kdWNlKTpwcm9tcHQgdXNlciBmb3IgZGlyZWN0aW9uIGZvciBiaXNl
Y3Rpb24KKyAgICAgICAgKHRlc3RfYXJjaGl2ZSk6UGxhdGZvcm0gc3BlY2lmaWMgbG9naWMgdG8g
dGVzdCBkb3dubG9hZGVkIGFyY2hpdmUKKyAgICAgICAgKHBpY2tfbmV4dF9idWlsZCk6Y29tcHV0
ZSB0aGUgbmV4dCBidWlsZCB0byBiaXNlY3QKKyAgICAgICAgKGJpc2VjdF9idWlsZHMpOm1haW4g
YmlzZWN0aW9uIGFsZ29yaXRobQorICAgICAgICAoZ2V0X2luZGljZXNfZnJvbV9yZXZpc2lvbnMp
OmNvbnZlcnQgcmV2aXNpb25zIHRvIGxpc3QgaW5kZXhlcyBmb3IgYmlzZWN0aW9uCisgICAgICAg
IChnZXRfYXBpX3VybCk6Z2VuZXJhdGUgdXJsIGZvciB0aGUgcmVzdCBhcGkvZGF0YWJhc2UKKyAg
ICAgICAgKHVubWluaWZpZWRfcGxhdGZvcm1zKTpyZXR1cm4gYSBsaXN0IG9mIGZ1bGwgcGxhdGZv
cm1zIGluIHRoZSBkYXRhYmFzZQorICAgICAgICAobWluaWZpZWRfcGxhdGZvcm1zKTpyZXR1cm4g
YSBsaXN0IG9mIG1pbmlmaWVkIHBsYXRmb3JtcyBpbiB0aGUgZGF0YWJhc2UKKyAgICAgICAgKGlz
X3N1cHBvcnRlZF9wbGF0Zm9ybSk6Y2hlY2sgaWYgcGxhdGZvcm0gaXMgc3VwcG9ydGVkCisgICAg
ICAgICh2YWxpZGF0ZV9vcHRpb25zKTp2YWxpZGF0ZSBjb21tYW5kIGxpbmUgb3B0aW9ucworICAg
ICAgICAobWFpbik6ZG8gbWFnaWMKKyAgICAgICAgKHNldF93ZWJraXRfb3V0cHV0X2Rpcik6c2V0
IHRoZSBmb2xkZXIgZm9yIGJpc2VjdGVkIGJ1aWxkcyB0byBhdm9pZCBvdmVyd3JpdGluZyBlbmdp
bmVlcmluZyBidWlsZCBvdXRwdXQKKwogMjAxNy0wOC0wMiAgSm9uYXRoYW4gQmVkYXJkICA8amJl
ZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgd2Via2l0cHk6IEFsbG93IGNhbGxlciB0byBzcGVj
aWZ5IHJlc3BvbnNlIHRvIHVuaWNvZGUgZW5jb2RlL2RlY29kZSBlcnJvciBpbiBmaWxlc3lzdGVt
CkluZGV4OiBUb29scy9TY3JpcHRzL2Jpc2VjdC13ZWJraXQtYnVpbGRzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1NjcmlwdHMvYmlzZWN0LXdlYmtpdC1idWlsZHMJKG5vbmV4aXN0ZW50KQorKysgVG9v
bHMvU2NyaXB0cy9iaXNlY3Qtd2Via2l0LWJ1aWxkcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDI0MiBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisKKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIworIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisjIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisjIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyMgICAgIGl0
cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQKKyMgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4gCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisjIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisjIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorIyBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQg
YXJncGFyc2UKK2ltcG9ydCBiaXNlY3QKK2ltcG9ydCBtYXRoCitpbXBvcnQgb3MKK2ltcG9ydCBy
ZXF1ZXN0cworaW1wb3J0IHNodXRpbAoraW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBzeXMKK2lt
cG9ydCB0ZW1wZmlsZQoraW1wb3J0IHVybHBhcnNlCisKK1JFU1RfQVBJX1VSTCA9ICdodHRwczov
L3ExdHpxZnk0OGUuZXhlY3V0ZS1hcGkudXMtd2VzdC0yLmFtYXpvbmF3cy5jb20vdjEvJworUkVT
VF9BUElfRU5EUE9JTlQgPSAnYXJjaGl2ZXMvJworUkVTVF9BUElfTUlOSUZJRURfRU5EUE9JTlQg
PSAnbWluaWZpZWQtYXJjaGl2ZXMvJworCisKK2RlZiBiaXNlY3RfYnVpbGRzKHJldmlzaW9uX2xp
c3QsIHN0YXJ0X2luZGV4LCBlbmRfaW5kZXgsIG9wdGlvbnMpOgorICAgIHdoaWxlIFRydWU6Cisg
ICAgICAgIGluZGV4X3RvX3Rlc3QgPSBwaWNrX25leHRfYnVpbGQocmV2aXNpb25fbGlzdCwgc3Rh
cnRfaW5kZXgsIGVuZF9pbmRleCkKKyAgICAgICAgaWYgaW5kZXhfdG9fdGVzdCA9PSBOb25lOgor
ICAgICAgICAgICAgcHJpbnQoJ05vIG1vcmUgYnVpbGRzIHRvIHRlc3QuLi4nKQorICAgICAgICAg
ICAgZXhpdCgxKQorICAgICAgICBkb3dubG9hZF9hcmNoaXZlKG9wdGlvbnMsIHJldmlzaW9uX2xp
c3RbaW5kZXhfdG9fdGVzdF0pCisgICAgICAgIGV4dHJhY3RfYXJjaGl2ZShvcHRpb25zKQorICAg
ICAgICByZXByb2R1Y2VzID0gdGVzdF9hcmNoaXZlKG9wdGlvbnMsIHJldmlzaW9uX2xpc3RbaW5k
ZXhfdG9fdGVzdF0pCisKKyAgICAgICAgaWYgcmVwcm9kdWNlczogICAgICAgICAgIyBiaXNlY3Qg
bGVmdAorICAgICAgICAgICAgaW5kZXhfdG9fdGVzdCAtPSAxICAjIFdlIGNhbiByZW1vdmUgdGhp
cyBmcm9tIHRoZSBlbmQgb2YgdGhlIGxpc3Qgb2YgYnVpbGRzIHRvIHRlc3QKKyAgICAgICAgICAg
IGJpc2VjdF9idWlsZHMocmV2aXNpb25fbGlzdCwgc3RhcnRfaW5kZXgsIGluZGV4X3RvX3Rlc3Qs
IG9wdGlvbnMpCisgICAgICAgIGlmIG5vdCByZXByb2R1Y2VzOiAgICAgICMgYmlzZWN0IHJpZ2h0
CisgICAgICAgICAgICBpbmRleF90b190ZXN0ICs9IDEgICMgV2UgY2FuIHJlbW92ZSB0aGlzIGZy
b20gdGhlIHN0YXJ0IG9mIHRoZSBsaXN0IG9mIGJ1aWxkcyB0byB0ZXN0CisgICAgICAgICAgICBi
aXNlY3RfYnVpbGRzKHJldmlzaW9uX2xpc3QsIGluZGV4X3RvX3Rlc3QsIGVuZF9pbmRleCwgb3B0
aW9ucykKKworCitkZWYgZG93bmxvYWRfYXJjaGl2ZShvcHRpb25zLCByZXZpc2lvbik6CisgICAg
YXBpX3VybCA9IGdldF9hcGlfdXJsKG9wdGlvbnMpCisgICAgczNfdXJsID0gZ2V0X3MzX2xvY2F0
aW9uX2Zvcl9yZXZpc2lvbihhcGlfdXJsLCByZXZpc2lvbikKKyAgICBwcmludCgnQXJjaGl2ZSBV
Ukw6IHt9Jy5mb3JtYXQoczNfdXJsKSkKKyAgICBjb21tYW5kID0gWydweXRob24nLCAnLi4vQnVp
bGRTbGF2ZVN1cHBvcnQvZG93bmxvYWQtYnVpbHQtcHJvZHVjdCcsICctLXt9Jy5mb3JtYXQob3B0
aW9ucy5jb25maWd1cmF0aW9uKSwgJy0tcGxhdGZvcm0nLCBvcHRpb25zLnBsYXRmb3JtLCBzM191
cmxdCisgICAgcHJpbnQoJ0Rvd25sb2FkaW5nIHJldmlzaW9uOiB7fScuZm9ybWF0KHJldmlzaW9u
KSkKKyAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoY29tbWFuZCkKKworCitkZWYgZXh0cmFjdF9h
cmNoaXZlKG9wdGlvbnMpOgorICAgIGNvbW1hbmQgPSBbJ3B5dGhvbicsICcuLi9CdWlsZFNsYXZl
U3VwcG9ydC9idWlsdC1wcm9kdWN0LWFyY2hpdmUnLCAnLS1wbGF0Zm9ybScsIG9wdGlvbnMucGxh
dGZvcm0sICctLSVzJyAlIG9wdGlvbnMuY29uZmlndXJhdGlvbiwgJ2V4dHJhY3QnXQorICAgIHBy
aW50KCdFeHRyYWN0aW5nIGFyY2hpdmU6IHt9Jy5mb3JtYXQoY29tbWFuZCkpCisgICAgc3VicHJv
Y2Vzcy5jaGVja19jYWxsKGNvbW1hbmQpCisKKworIyAtLS0tIGJpc2VjdCBoZWxwZXJzIGZyb20g
aHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMi9saWJyYXJ5L2Jpc2VjdC5odG1sIC0tLS0KK2RlZiBm
aW5kX2xlKGEsIHgpOgorICAgICIiIkZpbmQgcmlnaHRtb3N0IHZhbHVlIGxlc3MgdGhhbiBvciBl
cXVhbCB0byB4IiIiCisgICAgaSA9IGJpc2VjdC5iaXNlY3RfcmlnaHQoYSwgeCkKKyAgICBpZiBp
OgorICAgICAgICByZXR1cm4gaSAtIDEKKyAgICByYWlzZSBWYWx1ZUVycm9yCisKKworZGVmIGZp
bmRfZ2UoYSwgeCk6CisgICAgIiIiRmluZCBsZWZ0bW9zdCBpdGVtIGdyZWF0ZXIgdGhhbiBvciBl
cXVhbCB0byB4IiIiCisgICAgaSA9IGJpc2VjdC5iaXNlY3RfbGVmdChhLCB4KQorICAgIGlmIGkg
IT0gbGVuKGEpOgorICAgICAgICByZXR1cm4gaQorICAgIHJhaXNlIFZhbHVlRXJyb3IKKyMgLS0t
LSBlbmQgYmlzZWN0IGhlbHBlcnMgLS0tLQorCisKK2RlZiBnZXRfYXBpX3VybChvcHRpb25zKToK
KyAgICBpZiBvcHRpb25zLmZ1bGw6CisgICAgICAgIGJhc2VfdXJsID0gdXJscGFyc2UudXJsam9p
bihSRVNUX0FQSV9VUkwsIFJFU1RfQVBJX0VORFBPSU5UKQorICAgIGVsc2U6CisgICAgICAgIGJh
c2VfdXJsID0gdXJscGFyc2UudXJsam9pbihSRVNUX0FQSV9VUkwsIFJFU1RfQVBJX01JTklGSUVE
X0VORFBPSU5UKQorCisgICAgYXBpX3VybCA9IHVybHBhcnNlLnVybGpvaW4oYmFzZV91cmwsICct
Jy5qb2luKFtvcHRpb25zLnBsYXRmb3JtLCBvcHRpb25zLmFyY2hpdGVjdHVyZSwgb3B0aW9ucy5j
b25maWd1cmF0aW9uXSkpCisgICAgcmV0dXJuIGFwaV91cmwKKworCitkZWYgZ2V0X2luZGljZXNf
ZnJvbV9yZXZpc2lvbnMocmV2aXNpb25fbGlzdCwgc3RhcnRfcmV2aXNpb24sIGVuZF9yZXZpc2lv
bik6CisgICAgaWYgc3RhcnRfcmV2aXNpb24gaXMgTm9uZToKKyAgICAgICAgcHJpbnQoJ1dBUk5J
Tkc6IE5vIHN0YXJ0aW5nIHJldmlzaW9uIHdhcyBnaXZlbiwgZGVmYXVsdGluZyB0byBmaXJzdCBh
dmFpbGFibGUgZm9yIHRoaXMgY29uZmlndXJhdGlvbicpCisgICAgICAgIHN0YXJ0X2luZGV4ID0g
MAorICAgIGVsc2U6CisgICAgICAgIHN0YXJ0X2luZGV4ID0gZmluZF9nZShyZXZpc2lvbl9saXN0
LCBzdGFydF9yZXZpc2lvbikKKworICAgIGlmIGVuZF9yZXZpc2lvbiBpcyBOb25lOgorICAgICAg
ICBwcmludCgnV0FSTklORzogTm8gZW5kaW5nIHJldmlzaW9uIHdhcyBnaXZlbiwgZGVmYXVsdGlu
ZyB0byBsYXN0IGF2aWFsYWJsZSBmb3IgdGhpcyBjb25maWd1cmF0aW9uJykKKyAgICAgICAgZW5k
X2luZGV4ID0gbGVuKHJldmlzaW9uX2xpc3QpIC0gMQorICAgIGVsc2U6CisgICAgICAgIGVuZF9p
bmRleCA9IGZpbmRfbGUocmV2aXNpb25fbGlzdCwgZW5kX3JldmlzaW9uKQorCisgICAgcmV0dXJu
IHN0YXJ0X2luZGV4LCBlbmRfaW5kZXgKKworCitkZWYgZ2V0X3NvcnRlZF9yZXZpc2lvbnMocmV2
aXNpb25zX2RpY3QpOgorICAgIHJldmlzaW9ucyA9IFtpbnQocmV2aXNpb25bJ3JldmlzaW9uJ10p
IGZvciByZXZpc2lvbiBpbiByZXZpc2lvbnNfZGljdFsncmV2aXNpb25zJ11dCisgICAgcmV0dXJu
IHNvcnRlZChyZXZpc2lvbnMpCisgICAgCisKK2RlZiBnZXRfczNfbG9jYXRpb25fZm9yX3Jldmlz
aW9uKHVybCwgcmV2aXNpb24pOgorICAgIHVybCA9ICcvJy5qb2luKFt1cmwsIHN0cihyZXZpc2lv
bildKQorICAgIHIgPSByZXF1ZXN0cy5nZXQodXJsKQorICAgIGZvciBhcmNoaXZlIGluIHIuanNv
bigpWydhcmNoaXZlJ106CisgICAgICAgIHMzX3VybCA9IGFyY2hpdmVbJ3MzX3VybCddCisgICAg
cmV0dXJuIHMzX3VybAorCisKK2RlZiBwYXJzZV9hcmdzKGFyZ3MpOgorICAgIHBhcnNlciA9IGFy
Z3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPSdQZXJmb3JtIGEgYmlzZWN0aW9uIGFn
YWluc3QgZXhpc3RpbmcgV2ViS2l0IGFyY2hpdmVzLicpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVu
dCgnLWMnLCAnLS1jb25maWd1cmF0aW9uJywgZGVmYXVsdD0ncmVsZWFzZScsIGhlbHA9J1RoZSBj
b25maWd1cmF0aW9uIHRvIHF1ZXJ5IFtyZWxlYXNlIHwgZGVidWddJykKKyAgICBwYXJzZXIuYWRk
X2FyZ3VtZW50KCctYScsICctLWFyY2hpdGVjdHVyZScsIGRlZmF1bHQ9J3g4Nl82NCcsIGhlbHA9
J1RoZSBhcmNoaXRlY3R1cmUgdG8gcXVlcnkgW3g4Nl82NCB8IGkzODZdJykKKyAgICBwYXJzZXIu
YWRkX2FyZ3VtZW50KCctcCcsICctLXBsYXRmb3JtJywgZGVmYXVsdD0nTm9uZScsIHJlcXVpcmVk
PVRydWUsIGhlbHA9J1RoZSBwbGF0Zm9ybSB0byBxdWVyeSBbbWFjLXNpZXJyYSB8IGd0ayB8IGlv
cy1zaW11bGF0b3IgfCB3aW5dJykKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctZicsICctLWZ1
bGwnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSdVc2UgZnVsbCBh
cmNoaXZlcyBjb250YWluaW5nIGRlYnVnIHN5bWJvbHMuIFRoZXNlIGFyZSBzaWduaWZpY2FudGx5
IGxhcmdlciBmaWxlcyEnKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy1zJywgJy0tc3RhcnQn
LCBkZWZhdWx0PU5vbmUsIHR5cGU9aW50LCBoZWxwPSdUaGUgc3RhcnRpbmcgcmV2aXNpb24gdG8g
YmlzZWN0LicpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLWUnLCAnLS1lbmQnLCBkZWZhdWx0
PU5vbmUsIHR5cGU9aW50LCBoZWxwPSdUaGUgZW5kaW5nIHJldmlzaW9uIHRvIGJpc2VjdCcpCisg
ICAgcmV0dXJuIHBhcnNlci5wYXJzZV9hcmdzKGFyZ3MpCisKKworZGVmIHBpY2tfbmV4dF9idWls
ZChyZXZpc2lvbl9saXN0LCBzdGFydF9pbmRleCwgZW5kX2luZGV4KToKKyAgICByZXZpc2lvbnNf
cmVtYWluaW5nID0gKGVuZF9pbmRleCAtIHN0YXJ0X2luZGV4KSArIDEKKyAgICBwcmludCgnRm91
bmQge30gcmV2aXNpb25zIGluIHRoaXMgcmFuZ2UgdG8gdGVzdC4uLicuZm9ybWF0KHJldmlzaW9u
c19yZW1haW5pbmcpKQorCisgICAgaWYgc3RhcnRfaW5kZXggPj0gZW5kX2luZGV4OgorICAgICAg
ICBwcmludCgnTm8gYXJjaGl2ZXMgYXZhaWxhYmxlIGJldHdlZW4ge30gYW5kIHt9Jy5mb3JtYXQo
cmV2aXNpb25fbGlzdFtlbmRfaW5kZXhdLCByZXZpc2lvbl9saXN0W3N0YXJ0X2luZGV4XSkpCisg
ICAgICAgIHJldHVybiBOb25lCisKKyAgICBtaWRkbGVJbmRleCA9IChzdGFydF9pbmRleCArIGVu
ZF9pbmRleCkgLyAyCisgICAgcmV0dXJuIGludChtYXRoLmNlaWwobWlkZGxlSW5kZXgpKQorCisK
K2RlZiBwcm9tcHRfZGlkX3JlcHJvZHVjZSgpOgorICAgIHZhciA9IHJhd19pbnB1dCgnXG5EaWQg
dGhlIGVycm9yIHJlcHJvZHVjZT8gW3kvbl06ICcpCisgICAgdmFyID0gdmFyLmxvd2VyKCkKKyAg
ICBpZiAneScgaW4gdmFyOgorICAgICAgICByZXR1cm4gVHJ1ZQorICAgIGlmICduJyBpbiB2YXI6
CisgICAgICAgIHJldHVybiBGYWxzZQorICAgIGVsc2U6CisgICAgICAgIHByb21wdF9kaWRfcmVw
cm9kdWNlKCkKKyAgICAKKworZGVmIHNldF93ZWJraXRfb3V0cHV0X2Rpcih0ZW1wX2Rpcik6Cisg
ICAgcHJpbnQoJ1NldHRpbmcgZW52aXJvbm1lbnQgdmFyaWFibGUgV0VCS0lUX09VVFBVVERJUiB0
byB7fScuZm9ybWF0KHRlbXBfZGlyKSkKKyAgICBvcy5lbnZpcm9uWydXRUJLSVRfT1VUUFVURElS
J10gPSB0ZW1wX2RpcgorCisKK2RlZiB0ZXN0X2FyY2hpdmUob3B0aW9ucywgcmV2aXNpb24pOgor
ICAgIHByaW50KCdUZXN0aW5nIHJldmlzaW9uIHt9Li4uJy5mb3JtYXQocmV2aXNpb24pKQorICAg
IGNvbW1hbmQgPSBbXQorICAgIGlmICdtYWMnIGluIG9wdGlvbnMucGxhdGZvcm06CisgICAgICAg
IGNvbW1hbmQgPSBbJy4vcnVuLXNhZmFyaSddCisgICAgZWxpZiAnaW9zJyBpbiBvcHRpb25zLnBs
YXRmb3JtOgorICAgICAgICBjb21tYW5kID0gWycuL3J1bi1zYWZhcmknLCAnLS1zaW11bGF0b3In
XQorICAgIGVsc2U6CisgICAgICAgIHByaW50KCdEZWZhdWx0IHRlc3QgYmVoYXZpb3IgZm9yIHRo
aXMgcGxhdGZvcm0gaXMgbm90IGltcGxlbWVudGVkLi4uJy5mb3JtYXQob3B0aW9ucy5wbGF0Zm9y
bSkpCisKKyAgICBpZiBjb21tYW5kOgorICAgICAgICBzdWJwcm9jZXNzLmNhbGwoY29tbWFuZCkK
KyAgICByZXR1cm4gcHJvbXB0X2RpZF9yZXByb2R1Y2UoKQorICAgIAorCitkZWYgbWluaWZpZWRf
cGxhdGZvcm1zKCk6CisgICAgIyBGSVhNRTogcXVlcnkgdGhpcyBkeW5hbWljYWxseSBmcm9tIEFQ
SQorICAgIHJldHVybiAgWydtYWMtZWxjYXBpdGFuJywgJ21hYy1zaWVycmEnXQorCisKK2RlZiB1
bm1pbmlmaWVkX3BsYXRmb3JtcygpOgorICAgICMgRklYTUU6IHF1ZXJ5IHRoaXMgZHluYW1pY2Fs
bHkgZnJvbSBBUEkKKyAgICByZXR1cm4gWydndGsnLCAnaW9zLXNpbXVsYXRvci0xMCcsICdtYWMt
ZWxjYXBpdGFuJywgJ21hYy1zaWVycmEnLCAnd2luJywgJ3dwZSddCisKKworZGVmIGlzX3N1cHBv
cnRlZF9wbGF0Zm9ybShvcHRpb25zKToKKyAgICBpZiBvcHRpb25zLmZ1bGw6CisgICAgICAgIHJl
dHVybiBvcHRpb25zLnBsYXRmb3JtIGluIHVubWluaWZpZWRfcGxhdGZvcm1zKCkKKyAgICByZXR1
cm4gb3B0aW9ucy5wbGF0Zm9ybSBpbiBtaW5pZmllZF9wbGF0Zm9ybXMoKQorCisKK2RlZiB2YWxp
ZGF0ZV9vcHRpb25zKG9wdGlvbnMpOgorICAgIGlmIG5vdCBpc19zdXBwb3J0ZWRfcGxhdGZvcm0o
b3B0aW9ucyk6CisgICAgICAgIHByaW50KCdVbnN1cHBvcnRlZCBwbGF0Zm9ybTogW3t9XSwgZXhp
dGluZy4uLicuZm9ybWF0KG9wdGlvbnMucGxhdGZvcm0pKQorICAgICAgICBpZiBvcHRpb25zLmZ1
bGw6CisgICAgICAgICAgICBwcmludCgnQXZhaWxhYmxlIFVubWluaWZpZWQgcGxhdGZvcm1zOiB7
fScuZm9ybWF0KHVubWluaWZpZWRfcGxhdGZvcm1zKCkpKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgcHJpbnQoJ0F2YWlsYWJsZSBNaW5pZmllZCBwbGF0Zm9ybXM6IHt9Jy5mb3JtYXQobWlu
aWZpZWRfcGxhdGZvcm1zKCkpKQorICAgICAgICAgICAgcHJpbnQoJ0lORk86IHBhc3MgLS1mdWxs
IHRvIHRyeSBhZ2FpbnN0IGZ1bGwgYXJjaGl2ZXMnKQorICAgICAgICBleGl0KDEpCisKKworZGVm
IG1haW4ob3B0aW9ucyk6CisgICAgdmFsaWRhdGVfb3B0aW9ucyhvcHRpb25zKQorCisgICAgdXJs
ID0gZ2V0X2FwaV91cmwob3B0aW9ucykKKyAgICByID0gcmVxdWVzdHMuZ2V0KHVybCkKKyAgICBy
ZXZpc2lvbl9saXN0ID0gZ2V0X3NvcnRlZF9yZXZpc2lvbnMoci5qc29uKCkpCisgICAgCisgICAg
c3RhcnRfaW5kZXgsIGVuZF9pbmRleCA9IGdldF9pbmRpY2VzX2Zyb21fcmV2aXNpb25zKHJldmlz
aW9uX2xpc3QsIG9wdGlvbnMuc3RhcnQsIG9wdGlvbnMuZW5kKQorICAgIHByaW50KCdCaXNlY3Rp
bmcgYmV0d2VlbiB7fSBhbmQge30nLmZvcm1hdChyZXZpc2lvbl9saXN0W3N0YXJ0X2luZGV4XSwg
cmV2aXNpb25fbGlzdFtlbmRfaW5kZXhdKSkKKyAgICAKKyAgICAjIGZyb20gaGVyZSBmb3J3YXJk
LCB1c2UgaW5kaWNlcyBpbnN0ZWFkIG9mIHJldmlzaW9ucworICAgIGJpc2VjdF9idWlsZHMocmV2
aXNpb25fbGlzdCwgc3RhcnRfaW5kZXgsIGVuZF9pbmRleCwgb3B0aW9ucykKKworCitpZiBfX25h
bWVfXyA9PSAnX19tYWluX18nOgorICAgIG9wdGlvbnMgPSBwYXJzZV9hcmdzKHN5cy5hcmd2WzE6
XSkKKyAgICBzY3JpcHRfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykKKyAgICBzY3Jp
cHRfZGlyZWN0b3J5ID0gb3MucGF0aC5kaXJuYW1lKHNjcmlwdF9wYXRoKQorICAgIG9zLmNoZGly
KHNjcmlwdF9kaXJlY3RvcnkpCisgICAgd2Via2l0X291dHB1dF9kaXIgPSB0ZW1wZmlsZS5ta2R0
ZW1wKCkKKyAgICBzZXRfd2Via2l0X291dHB1dF9kaXIod2Via2l0X291dHB1dF9kaXIpCisgICAg
dHJ5OgorICAgICAgICBtYWluKG9wdGlvbnMpICAgIAorICAgIGV4Y2VwdCBLZXlib2FyZEludGVy
cnVwdDoKKyAgICAgICAgZXhpdCgiQWJvcnRpbmcuIikKKyAgICBmaW5hbGx5OgorICAgICAgICBz
aHV0aWwucm10cmVlKHdlYmtpdF9vdXRwdXRfZGlyLCBpZ25vcmVfZXJyb3JzPVRydWUpCgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBUb29scy9TY3JpcHRzL2Jpc2VjdC13ZWJraXQtYnVpbGRzCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KQWRkZWQ6IHN2bjpleGVjdXRhYmxlCiMjIC0wLDAgKzEgIyMKKyoKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBwcm9wZXJ0eQo=
</data>
<flag name="commit-queue"
          id="340991"
          type_id="3"
          status="-"
          setter="lforschler"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320927</attachid>
            <date>2017-09-15 10:57:28 -0700</date>
            <delta_ts>2017-09-15 16:33:04 -0700</delta_ts>
            <desc>v2 patch, this one changes the working folder to the script folder, and will allow double click execution</desc>
            <filename>176965.patch</filename>
            <type>text/plain</type>
            <size>2804</size>
            <attacher name="Lucas Forschler">lforschler</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMjA5MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE0IEBACisyMDE3LTA5LTE1ICBMdWNhcyBGb3JzY2hsZXIgIDxsZm9yc2NobGVyQGFwcGxl
LmNvbT4KKworICAgICAgICAgdGVhY2ggYnVpbGQud2Via2l0Lm9yZyB0byBpbmNsdWRlIHJ1bi13
ZWJraXQtYXJjaGl2ZSBpbiB0aGUgcm9vdCBmb2xkZXIgb2YgdXBsb2FkZWQgbWFjT1MgYXJjaGl2
ZXMKKyAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY5
NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEJ1
aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZToKKyAgICAgICAgKGFkZExhdW5j
aGVyVG9BcmNoaXZlKTogSGVscGVyIGZ1bmN0aW9uIHRvIGFkZCB0aGUgc2NyaXB0IHBhdGggdG8g
dGhlIGFyY2hpdmUgcm9vdAorICAgICAgICAoY3JlYXRlWmlwKTogdGVhY2ggZnVuY3Rpb24gdG8g
Y2FsbCBhZGRMYXVuY2hlclRvQXJjaGl2ZQorCiAyMDE3LTA5LTE1ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYW4gVVJMIG1ldGhvZCB0byByZW1vdmUg
Ym90aCBxdWVyeSBzdHJpbmcgYW5kIGZyYWdtZW50IGlkZW50aWZpZXIKSW5kZXg6IFRvb2xzL0J1
aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0LWFyY2hpdmUJKHJldmlzaW9uIDIyMjA5
MikKKysrIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZQkod29y
a2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQCBfY29uZmlndXJhdGlvbkJ1aWxkRGlyZWN0b3J5
ID0gTm9uZQogX3RvcExldmVsQnVpbGREaXJlY3RvcnkgPSBOb25lCiBfaG9zdEJ1aWxkRGlyZWN0
b3J5ID0gTm9uZQogCitQQVRIX1RPX0xBVU5DSEVSID0gJy4vVG9vbHMvU2NyaXB0cy9ydW4td2Vi
a2l0LWFyY2hpdmUnCiAKIGRlZiBtYWluKCk6CiAgICAgcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9u
UGFyc2VyKCJ1c2FnZTogJXByb2cgW29wdGlvbnNdIFthY3Rpb25dIikKQEAgLTEzNiw2ICsxMzcs
OSBAQCBkZWYgY3JlYXRlWmlwTWFudWFsbHkoZGlyZWN0b3J5VG9aaXAsIGFyCiAKICAgICBhcmNo
aXZlWmlwLmNsb3NlKCkKIAorZGVmIGFkZExhdW5jaGVyVG9BcmNoaXZlKGFyY2hpdmVGaWxlKToK
KyAgICBjb21tYW5kID0gWyd6aXAnLCAnLWonLCBhcmNoaXZlRmlsZSwgUEFUSF9UT19MQVVOQ0hF
Ul0KKyAgICByZXR1cm4gc3VicHJvY2Vzcy5jYWxsKGNvbW1hbmQpCiAKIGRlZiBjcmVhdGVaaXAo
ZGlyZWN0b3J5VG9aaXAsIGNvbmZpZ3VyYXRpb24sIGVtYmVkUGFyZW50RGlyZWN0b3J5TmFtZU9u
RGFyd2luPUZhbHNlLCBtaW5pZnk9RmFsc2UpOgogICAgIGFyY2hpdmVEaXIgPSBvcy5wYXRoLmFi
c3BhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICIuLiIs
ICJXZWJLaXRCdWlsZCIpKQpAQCAtMTU0LDcgKzE1OCw3IEBAIGRlZiBjcmVhdGVaaXAoZGlyZWN0
b3J5VG9aaXAsIGNvbmZpZ3VyYXQKICAgICAgICAgaWYgZW1iZWRQYXJlbnREaXJlY3RvcnlOYW1l
T25EYXJ3aW46CiAgICAgICAgICAgICBjb21tYW5kICs9IFsnLS1rZWVwUGFyZW50J10KICAgICAg
ICAgY29tbWFuZCArPSBbZGlyZWN0b3J5VG9aaXAsIGFyY2hpdmVGaWxlXQotICAgICAgICByZXR1
cm4gc3VicHJvY2Vzcy5jYWxsKGNvbW1hbmQpCisgICAgICAgIHJldHVybiBzdWJwcm9jZXNzLmNh
bGwoY29tbWFuZCkgb3IgYWRkTGF1bmNoZXJUb0FyY2hpdmUoYXJjaGl2ZUZpbGUpICAgCiAgICAg
ZWxpZiBzeXMucGxhdGZvcm0gPT0gJ2N5Z3dpbic6CiAgICAgICAgIHJldHVybiBzdWJwcm9jZXNz
LmNhbGwoWyJ6aXAiLCAiLXIiLCBhcmNoaXZlRmlsZSwgImJpbjMyIl0sIGN3ZD1kaXJlY3RvcnlU
b1ppcCkKICAgICBlbGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOgpJbmRleDogVG9vbHMvU2Ny
aXB0cy9ydW4td2Via2l0LWFyY2hpdmUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9ydW4t
d2Via2l0LWFyY2hpdmUJKHJldmlzaW9uIDIyMjA5MikKKysrIFRvb2xzL1NjcmlwdHMvcnVuLXdl
YmtpdC1hcmNoaXZlCSh3b3JraW5nIGNvcHkpCkBAIC01Niw4ICs1Niw5IEBAIGRlZiBzZXRfZHls
ZF9mcmFtZXdvcmtfcGF0aChzY3JpcHRfcGF0aCkKICAgICBvcy5lbnZpcm9uWydEWUxEX0xJQlJB
UllfUEFUSCddID0gZHlsZF9wYXRoCiAgICAgCiBkZWYgbWFpbigpOgotICAgIHNjcmlwdF9wYXRo
ID0gb3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKQogICAgIGNoZWNrX2Zvcl92YWxpZF9wbGF0Zm9y
bSgpCisgICAgc2NyaXB0X3BhdGggPSBvcy5wYXRoLmFic3BhdGgoX19maWxlX18pCisgICAgb3Mu
Y2hkaXIob3MucGF0aC5kaXJuYW1lKHNjcmlwdF9wYXRoKSkKICAgICBzZXRfZHlsZF9mcmFtZXdv
cmtfcGF0aChzY3JpcHRfcGF0aCkKICAgICBydW5fc2FmYXJpX2Zvcl93ZWJraXRfZGV2ZWxvcG1l
bnQoKQogICAgIAo=
</data>
<flag name="review"
          id="340992"
          type_id="1"
          status="+"
          setter="ap"
    />
    <flag name="commit-queue"
          id="340993"
          type_id="3"
          status="-"
          setter="lforschler"
    />
          </attachment>
      

    </bug>

</bugzilla>