<?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>75590</bug_id>
          
          <creation_ts>2012-01-04 17:49:28 -0800</creation_ts>
          <short_desc>webkitpy: clean up port factory methods</short_desc>
          <delta_ts>2012-01-05 15:07:56 -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>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>75037</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>hclam</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>529910</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-01-04 17:49:28 -0800</bug_when>
    <thetext>webkitpy: clean up port factory methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529915</commentid>
    <comment_count>1</comment_count>
      <attachid>121194</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-01-04 17:57:15 -0800</bug_when>
    <thetext>Created attachment 121194
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529927</commentid>
    <comment_count>2</comment_count>
      <attachid>121194</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-01-04 18:09:40 -0800</bug_when>
    <thetext>Comment on attachment 121194
Patch

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

Seems sane.  Thanks!

&gt; Tools/Scripts/webkitpy/layout_tests/port/factory_unittest.py:-108
&gt; -        # The actual Chrome class names aren&apos;t available so we test that the
&gt; -        # objects we get are at least subclasses of the Chromium versions.

This is some legacy from the days of the split repo?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529971</commentid>
    <comment_count>3</comment_count>
      <attachid>121194</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-01-04 20:05:43 -0800</bug_when>
    <thetext>Comment on attachment 121194
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/factory_unittest.py:-108
&gt;&gt; -        # objects we get are at least subclasses of the Chromium versions.
&gt; 
&gt; This is some legacy from the days of the split repo?

No, it was the result of having the classes declared inside the google_chrome.get() factory method and hence lexically hidden.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530259</commentid>
    <comment_count>4</comment_count>
      <attachid>121194</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-05 07:01:27 -0800</bug_when>
    <thetext>Comment on attachment 121194
Patch

Clearing flags on attachment: 121194

Committed r104159: &lt;http://trac.webkit.org/changeset/104159&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530260</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-05 07:01:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530318</commentid>
    <comment_count>6</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-01-05 08:40:09 -0800</bug_when>
    <thetext>Reverted r104159 for reason:

Chromium port GPU tests cannot be executed.

Committed r104166: &lt;http://trac.webkit.org/changeset/104166&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530552</commentid>
    <comment_count>7</comment_count>
      <attachid>121313</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-01-05 12:43:08 -0800</bug_when>
    <thetext>Created attachment 121313
fix &apos;chromium-gpu&apos; as a port name, add tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530553</commentid>
    <comment_count>8</comment_count>
      <attachid>121313</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-01-05 12:43:48 -0800</bug_when>
    <thetext>Comment on attachment 121313
fix &apos;chromium-gpu&apos; as a port name, add tests

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530556</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-01-05 12:45:27 -0800</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=121313&amp;action=review

&gt; Tools/Scripts/webkitpy/layout_tests/port/factory.py:103
&gt; +            port_name = port_to_use

Note the reassignment of port_name here and following ... this was dropped in the first patch, which meant that ChromiumLinuxPort would get handed &apos;chromium-gpu&apos; and not something containing a &apos;linux&apos; string, so the version detection broke.

&gt; Tools/Scripts/webkitpy/layout_tests/port/factory_unittest.py:118
&gt; +    def test_chromium_gpu(self):

Newly added tests to catch that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530670</commentid>
    <comment_count>10</comment_count>
      <attachid>121313</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-05 15:07:50 -0800</bug_when>
    <thetext>Comment on attachment 121313
fix &apos;chromium-gpu&apos; as a port name, add tests

Clearing flags on attachment: 121313

Committed r104230: &lt;http://trac.webkit.org/changeset/104230&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530671</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-05 15:07:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121194</attachid>
            <date>2012-01-04 17:57:15 -0800</date>
            <delta_ts>2012-01-05 12:43:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75590-20120104175714.patch</filename>
            <type>text/plain</type>
            <size>20939</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0MDg5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTJjMjBlNzI3NmJlNjIwMWU3ZDQ1MWVlMzAyNjAzY2Iz
NDY4YjhlZC4uOWYxYTMyZmJiNTE4Nzg3Mzg3YjllNjc5ZDgwZDA4ZGVlYmJjZDg1ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3
IEBACisyMDEyLTAxLTA0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIHdlYmtpdHB5OiBjbGVhbiB1cCBwb3J0IGZhY3RvcnkgbWV0aG9kcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1OTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBjb25zb2xp
ZGF0ZXMgbXVjaCBvZiB0aGUgImZhY3RvcnkgbWV0aG9kIiBsb2dpYworICAgICAgICBvZiBkZXRl
cm1pbmluZyB3aGljaCBwb3J0IG9iamVjdHMgdG8gY3JlYXRlIGZvciBhIGdpdmVuIHNldAorICAg
ICAgICBvZiBjb25maWd1cmF0aW9ucyBieSBtZXJnaW5nIHRoZSBzZXBhcmF0ZSBmYWN0b3J5IG1l
dGhvZHMgaW4KKyAgICAgICAgY2hyb21pdW1fZ3B1IGFuZCBnb29nbGVfY2hyb21lIGludG8gUG9y
dEZhY3Rvcnkgc28gdGhhdCBhdCBsZWFzdAorICAgICAgICBhbGwgb2YgdGhlIGxvZ2ljIGlzIGlu
IG9uZSBwbGFjZS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW1fZ3B1LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW1fZ3B1X3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeS5weToKKyAgICAgICAgKF9wb3J0X25hbWVf
ZnJvbV9hcmd1bWVudHNfYW5kX29wdGlvbnMpOgorICAgICAgICAoZ2V0KToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnlfdW5pdHRlc3QucHk6Cisg
ICAgICAgICh0ZXN0X2dvb2dsZV9jaHJvbWUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvZ29vZ2xlX2Nocm9tZS5weToKKyAgICAgICAgKEdvb2dsZUNocm9t
ZUxpbnV4MzJQb3J0KToKKyAgICAgICAgKEdvb2dsZUNocm9tZUxpbnV4MzJQb3J0LmJhc2VsaW5l
X3NlYXJjaF9wYXRoKToKKyAgICAgICAgKHRlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyk6Cisg
ICAgICAgIChhcmNoaXRlY3R1cmUpOgorICAgICAgICAoR29vZ2xlQ2hyb21lTGludXg2NFBvcnQp
OgorICAgICAgICAoR29vZ2xlQ2hyb21lTGludXg2NFBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgp
OgorICAgICAgICAoR29vZ2xlQ2hyb21lTWFjUG9ydCk6CisgICAgICAgIChHb29nbGVDaHJvbWVN
YWNQb3J0LmJhc2VsaW5lX3NlYXJjaF9wYXRoKToKKyAgICAgICAgKEdvb2dsZUNocm9tZVdpblBv
cnQpOgorICAgICAgICAoR29vZ2xlQ2hyb21lV2luUG9ydC5iYXNlbGluZV9zZWFyY2hfcGF0aCk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9nb29nbGVfY2hy
b21lX3VuaXR0ZXN0LnB5OgorICAgICAgICAoX3ZlcmlmeV9iYXNlbGluZV9wYXRoKToKKwogMjAx
Mi0wMS0wNCAgVmlhdGNoZXNsYXYgT3N0YXBlbmtvICA8b3N0YXBlbmtvLnZpYXRjaGVzbGF2QG5v
a2lhLmNvbT4KIAogICAgICAgICBBZGRpbmcgbXlzZWxmIHRvIGNvbW1pdHRlcnMgbGlzdC4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21p
dW1fZ3B1LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJv
bWl1bV9ncHUucHkKaW5kZXggNjAzZWFmYzcyZTAyYmI2Yjc4OWU2YjRlMTk1ZmVlOWJhMTE0YzI4
Ni4uM2U5ZGVkNjg2ZjQzN2QwMmMwMWUyMzIyYjU3YjFlMmE0ZTZjZTI1NCAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9n
cHUucHkKQEAgLTMxLDMzICszMSw3IEBAIGltcG9ydCBjaHJvbWl1bV9tYWMKIGltcG9ydCBjaHJv
bWl1bV93aW4KIAogCi1kZWYgZ2V0KGhvc3QsIHBsYXRmb3JtPU5vbmUsIHBvcnRfbmFtZT0nY2hy
b21pdW0tZ3B1JywgKiprd2FyZ3MpOgotICAgICIiIlNvbWUgdGVzdHMgaGF2ZSBzbGlnaHRseSBk
aWZmZXJlbnQgcmVzdWx0cyB3aGVuIHJ1biB3aGlsZSB1c2luZwotICAgIGhhcmR3YXJlIGFjY2Vs
ZXJhdGlvbi4gIEluIHRob3NlIGNhc2VzLCB3ZSBwcmVwZW5kIGFuIGFkZGl0aW9uYWwgZGlyZWN0
b3J5Ci0gICAgdG8gdGhlIGJhc2VsaW5lIHBhdGhzLiIiIgotICAgIHBsYXRmb3JtID0gcGxhdGZv
cm0gb3Igc3lzLnBsYXRmb3JtCi0gICAgaWYgcG9ydF9uYW1lID09ICdjaHJvbWl1bS1ncHUnOgot
ICAgICAgICBpZiBwbGF0Zm9ybSBpbiAoJ2N5Z3dpbicsICd3aW4zMicpOgotICAgICAgICAgICAg
cG9ydF9uYW1lID0gJ2Nocm9taXVtLWdwdS13aW4nCi0gICAgICAgIGVsaWYgcGxhdGZvcm0uc3Rh
cnRzd2l0aCgnbGludXgnKToKLSAgICAgICAgICAgIHBvcnRfbmFtZSA9ICdjaHJvbWl1bS1ncHUt
bGludXgnCi0gICAgICAgIGVsaWYgcGxhdGZvcm0gPT0gJ2Rhcndpbic6Ci0gICAgICAgICAgICBw
b3J0X25hbWUgPSAnY2hyb21pdW0tZ3B1LW1hYycKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ3Vuc3VwcG9ydGVkIHBsYXRmb3JtOiAlcycgJSBw
bGF0Zm9ybSkKLQotICAgIGlmIHBvcnRfbmFtZS5zdGFydHN3aXRoKCdjaHJvbWl1bS1ncHUtbGlu
dXgnKToKLSAgICAgICAgcmV0dXJuIENocm9taXVtR3B1TGludXhQb3J0KGhvc3QsIHBvcnRfbmFt
ZT1wb3J0X25hbWUsICoqa3dhcmdzKQotICAgIGlmIHBvcnRfbmFtZS5zdGFydHN3aXRoKCdjaHJv
bWl1bS1ncHUtY2ctbWFjJyk6Ci0gICAgICAgIHJldHVybiBDaHJvbWl1bUdwdUNnTWFjUG9ydCho
b3N0LCBwb3J0X25hbWU9cG9ydF9uYW1lLCAqKmt3YXJncykKLSAgICBpZiBwb3J0X25hbWUuc3Rh
cnRzd2l0aCgnY2hyb21pdW0tZ3B1LW1hYycpOgotICAgICAgICByZXR1cm4gQ2hyb21pdW1HcHVN
YWNQb3J0KGhvc3QsIHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQotICAgIGlmIHBvcnRf
bmFtZS5zdGFydHN3aXRoKCdjaHJvbWl1bS1ncHUtd2luJyk6Ci0gICAgICAgIHJldHVybiBDaHJv
bWl1bUdwdVdpblBvcnQoaG9zdCwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgKiprd2FyZ3MpCi0gICAg
cmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigndW5zdXBwb3J0ZWQgcG9ydDogJXMnICUgcG9ydF9u
YW1lKQotCi0KLSMgRklYTUU6IFRoZXNlIHNob3VsZCByZWFsbHkgYmUgYSBtaXhpbiBjbGFzcy4K
KyMgRklYTUU6IFRoaXMgd2hvbGUgZmlsZSBuZWVkcyB0byBnbyBhd2F5IGFuZCB3ZSBuZWVkIHRv
IGVsaW1pbmF0ZSB0aGUgR1BVIGNvbmZpZ3VyYXRpb24uCiAKIGRlZiBfc2V0X2dwdV9vcHRpb25z
KHBvcnQsIGdyYXBoaWNzX3R5cGU9J2dwdScpOgogICAgIHBvcnQuX2dyYXBoaWNzX3R5cGUgPSBn
cmFwaGljc190eXBlCkBAIC05MCw3ICs2NCw3IEBAIGRlZiBfZGVmYXVsdF90ZXN0c19wYXRocyhw
b3J0KToKICAgICAgICAgcGF0aHMgKz0gWydmYXN0L2NhbnZhcycsICdjYW52YXMvcGhpbGlwJ10K
IAogICAgIGlmIG5vdCBwYXRoczoKLSAgICAgICAgIyBGSVhNRTogVGhpcyBpcyBhIGhhY2sgdW50
aWwgd2UgY2FuIHR1cm4gb2YgdGhlIHdlYmtpdF9ncHUKKyAgICAgICAgIyBGSVhNRTogVGhpcyBp
cyBhIGhhY2sgdW50aWwgd2UgY2FuIHR1cm4gb2ZmIHRoZSB3ZWJraXRfZ3B1CiAgICAgICAgICMg
dGVzdHMgb24gdGhlIGJvdHMuIElmIHBhdGhzIGlzIGVtcHR5LCBwb3J0LnRlc3RzKCkKICAgICAg
ICAgIyBmaW5kcyAqZXZlcnl0aGluZyouIEhvd2V2ZXIsIHdlIGhhdmUgdG8gcmV0dXJuIHNvbWV0
aGluZywKICAgICAgICAgIyBvciBOUldUIHRoaW5rcyB0aGVyZSdzIHNvbWV0aGluZyB3cm9uZy4g
U28sIHdlIHJldHVybiBhIHNpbmdsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHVfdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2dwdV91bml0dGVzdC5weQpp
bmRleCBmNjc0YzQzNmQyMTQ3ODZhZTc2ODdlOWVlMDI3YzFhNThjMzYyMTRlLi45NjVmYjU4NmQ4
ZTU0M2E1N2UwNDFmODg3NTIwYzQ4MmI0YThmOGFkIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2dwdV91bml0dGVzdC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2dwdV91
bml0dGVzdC5weQpAQCAtMjcsMTIgKzI3LDEyIEBACiBpbXBvcnQgc3lzCiBpbXBvcnQgdW5pdHRl
c3QKIAotaW1wb3J0IGNocm9taXVtX2dwdQotCi1mcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wg
aW1wb3J0IE1vY2tPcHRpb25zCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0
IE1vY2tIb3N0Ci1mcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBwb3J0X3Rl
c3RjYXNlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2NrIGltcG9y
dCBNb2NrRmlsZVN5c3RlbQorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQg
Y2hyb21pdW1fZ3B1Citmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBwb3J0
X3Rlc3RjYXNlCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmZhY3RvcnkgaW1wb3J0
IFBvcnRGYWN0b3J5Citmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRp
b25zCiAKIAogY2xhc3MgQ2hyb21pdW1HcHVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTYy
LDkgKzYyLDkgQEAgY2xhc3MgQ2hyb21pdW1HcHVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRlcl9uYW1lPSdmb28nLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZF9wcm9jZXNzZXM9Tm9uZSkKICAg
ICAgICAgaWYgaW5wdXRfbmFtZSBhbmQgcGxhdGZvcm06Ci0gICAgICAgICAgICBwb3J0ID0gY2hy
b21pdW1fZ3B1LmdldChob3N0LCBwbGF0Zm9ybT1wbGF0Zm9ybSwgcG9ydF9uYW1lPWlucHV0X25h
bWUsIG9wdGlvbnM9bW9ja19vcHRpb25zKQorICAgICAgICAgICAgcG9ydCA9IFBvcnRGYWN0b3J5
KGhvc3QpLmdldChob3N0LCBwbGF0Zm9ybT1wbGF0Zm9ybSwgcG9ydF9uYW1lPWlucHV0X25hbWUs
IG9wdGlvbnM9bW9ja19vcHRpb25zKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgcG9ydCA9
IGNocm9taXVtX2dwdS5nZXQoaG9zdCwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgb3B0aW9ucz1tb2Nr
X29wdGlvbnMpCisgICAgICAgICAgICBwb3J0ID0gUG9ydEZhY3RvcnkoaG9zdCkuZ2V0KGhvc3Qs
IHBvcnRfbmFtZT1wb3J0X25hbWUsIG9wdGlvbnM9bW9ja19vcHRpb25zKQogICAgICAgICBzZWxm
LmFzc2VydFRydWUocG9ydC5fb3B0aW9ucy5hY2NlbGVyYXRlZF8yZF9jYW52YXMpCiAgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShwb3J0Ll9vcHRpb25zLmFjY2VsZXJhdGVkX3ZpZGVvKQogICAgICAg
ICBzZWxmLmFzc2VydFRydWUocG9ydC5fb3B0aW9ucy5leHBlcmltZW50YWxfZnVsbHlfcGFyYWxs
ZWwpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2ZhY3RvcnkucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Zh
Y3RvcnkucHkKaW5kZXggNzY3MmRlNDRjNjc4YjI3ZjZhNmYzYTk4NGYyNjA1Mzc4ODVlNTM4ZC4u
YTIxODdkZDQyNTZkMTRhYWJiZjM3OWI4OTFhMDU4ZWI0M2EwNTZlYiAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9mYWN0b3J5LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeS5weQpAQCAtNDUs
MzEgKzQ1LDM4IEBAIGNsYXNzIFBvcnRGYWN0b3J5KG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGhvc3QpOgogICAgICAgICBzZWxmLl9ob3N0ID0gaG9zdAogCi0gICAgZGVmIF9wb3J0
X25hbWVfZnJvbV9hcmd1bWVudHNfYW5kX29wdGlvbnMoc2VsZiwgKiprd2FyZ3MpOgotICAgICAg
ICBwb3J0X3RvX3VzZSA9IGt3YXJncy5nZXQoJ3BvcnRfbmFtZScsIE5vbmUpCi0gICAgICAgIG9w
dGlvbnMgPSBrd2FyZ3MuZ2V0KCdvcHRpb25zJywgTm9uZSkKLSAgICAgICAgaWYgcG9ydF90b191
c2UgaXMgTm9uZToKLSAgICAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInIG9yIHN5
cy5wbGF0Zm9ybSA9PSAnY3lnd2luJzoKLSAgICAgICAgICAgICAgICBpZiBvcHRpb25zIGFuZCBo
YXNhdHRyKG9wdGlvbnMsICdjaHJvbWl1bScpIGFuZCBvcHRpb25zLmNocm9taXVtOgotICAgICAg
ICAgICAgICAgICAgICBwb3J0X3RvX3VzZSA9ICdjaHJvbWl1bS13aW4nCi0gICAgICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcG9ydF90b191c2UgPSAnd2luJwotICAgICAg
ICAgICAgZWxpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnbGludXgnKToKLSAgICAgICAgICAg
ICAgICBwb3J0X3RvX3VzZSA9ICdjaHJvbWl1bS1saW51eCcKLSAgICAgICAgICAgIGVsaWYgc3lz
LnBsYXRmb3JtID09ICdkYXJ3aW4nOgotICAgICAgICAgICAgICAgIGlmIG9wdGlvbnMgYW5kIGhh
c2F0dHIob3B0aW9ucywgJ2Nocm9taXVtJykgYW5kIG9wdGlvbnMuY2hyb21pdW06Ci0gICAgICAg
ICAgICAgICAgICAgIHBvcnRfdG9fdXNlID0gJ2Nocm9taXVtLWNnLW1hYycKLSAgICAgICAgICAg
ICAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHNlbGVjdCB0aGUgY2hyb21pdW0tbWFjIHBv
cnQuCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcG9ydF90b191
c2UgPSAnbWFjJwotCi0gICAgICAgIGlmIHBvcnRfdG9fdXNlIGlzIE5vbmU6Ci0gICAgICAgICAg
ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCd1bmtub3duIHBvcnQ7IHN5cy5wbGF0Zm9ybSA9
ICIlcyInICUgc3lzLnBsYXRmb3JtKQotICAgICAgICByZXR1cm4gcG9ydF90b191c2UKLQotICAg
IGRlZiBfZ2V0X2t3YXJncyhzZWxmLCAqKmt3YXJncyk6Ci0gICAgICAgIHBvcnRfdG9fdXNlID0g
c2VsZi5fcG9ydF9uYW1lX2Zyb21fYXJndW1lbnRzX2FuZF9vcHRpb25zKCoqa3dhcmdzKQorICAg
IGRlZiBfcG9ydF9uYW1lX2Zyb21fYXJndW1lbnRzX2FuZF9vcHRpb25zKHNlbGYsIHBvcnRfbmFt
ZSwgb3B0aW9ucywgcGxhdGZvcm0pOgorICAgICAgICBpZiBwb3J0X25hbWUgPT0gJ2Nocm9taXVt
LWdwdSc6CisgICAgICAgICAgICBpZiBwbGF0Zm9ybSBpbiAoJ2N5Z3dpbicsICd3aW4zMicpOgor
ICAgICAgICAgICAgICAgIHJldHVybiAnY2hyb21pdW0tZ3B1LXdpbicKKyAgICAgICAgICAgIGlm
IHBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2xpbnV4Jyk6CisgICAgICAgICAgICAgICAgcmV0dXJuICdj
aHJvbWl1bS1ncHUtbGludXgnCisgICAgICAgICAgICBpZiBwbGF0Zm9ybSA9PSAnZGFyd2luJzoK
KyAgICAgICAgICAgICAgICByZXR1cm4gJ2Nocm9taXVtLWdwdS1tYWMnCiAKKyAgICAgICAgaWYg
cG9ydF9uYW1lOgorICAgICAgICAgICAgcmV0dXJuIHBvcnRfbmFtZQorCisgICAgICAgIGlmIHBs
YXRmb3JtIGluICgnd2luMzInLCAnY3lnd2luJyk6CisgICAgICAgICAgICBpZiBvcHRpb25zIGFu
ZCBoYXNhdHRyKG9wdGlvbnMsICdjaHJvbWl1bScpIGFuZCBvcHRpb25zLmNocm9taXVtOgorICAg
ICAgICAgICAgICAgIHJldHVybiAnY2hyb21pdW0td2luJworICAgICAgICAgICAgcmV0dXJuICd3
aW4nCisgICAgICAgIGlmIHBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2xpbnV4Jyk6CisgICAgICAgICAg
ICByZXR1cm4gJ2Nocm9taXVtLWxpbnV4JworICAgICAgICBpZiBwbGF0Zm9ybSA9PSAnZGFyd2lu
JzoKKyAgICAgICAgICAgIGlmIG9wdGlvbnMgYW5kIGhhc2F0dHIob3B0aW9ucywgJ2Nocm9taXVt
JykgYW5kIG9wdGlvbnMuY2hyb21pdW06CisgICAgICAgICAgICAgICAgcmV0dXJuICdjaHJvbWl1
bS1jZy1tYWMnCisgICAgICAgICAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHNlbGVjdCB0
aGUgY2hyb21pdW0tbWFjIHBvcnQuCisgICAgICAgICAgICByZXR1cm4gJ21hYycKKworICAgICAg
ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCd1bmtub3duIHBvcnQ7IHBsYXRmb3JtID0gIiVz
IicgJSBwbGF0Zm9ybSkKKworICAgIGRlZiBnZXQoc2VsZiwgcG9ydF9uYW1lPU5vbmUsIG9wdGlv
bnM9Tm9uZSwgcGxhdGZvcm09Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICAiIiJSZXR1cm5zIGFu
IG9iamVjdCBpbXBsZW1lbnRpbmcgdGhlIFBvcnQgaW50ZXJmYWNlLiBJZgorICAgICAgICBwb3J0
X25hbWUgaXMgTm9uZSwgdGhpcyByb3V0aW5lIGF0dGVtcHRzIHRvIGd1ZXNzIGF0IHRoZSBtb3N0
CisgICAgICAgIGFwcHJvcHJpYXRlIHBvcnQgb24gdGhpcyBwbGF0Zm9ybS4iIiIKKyAgICAgICAg
cGxhdGZvcm0gPSBwbGF0Zm9ybSBvciBzeXMucGxhdGZvcm0KKyAgICAgICAgcG9ydF90b191c2Ug
PSBzZWxmLl9wb3J0X25hbWVfZnJvbV9hcmd1bWVudHNfYW5kX29wdGlvbnMocG9ydF9uYW1lLCBv
cHRpb25zLCBwbGF0Zm9ybSkKICAgICAgICAgaWYgcG9ydF90b191c2Uuc3RhcnRzd2l0aCgndGVz
dCcpOgogICAgICAgICAgICAgaW1wb3J0IHRlc3QKICAgICAgICAgICAgIG1ha2VyID0gdGVzdC5U
ZXN0UG9ydApAQCAtOTEsOSArOTgsMTggQEAgY2xhc3MgUG9ydEZhY3Rvcnkob2JqZWN0KToKICAg
ICAgICAgZWxpZiBwb3J0X3RvX3VzZS5zdGFydHN3aXRoKCdxdCcpOgogICAgICAgICAgICAgaW1w
b3J0IHF0CiAgICAgICAgICAgICBtYWtlciA9IHF0LlF0UG9ydAotICAgICAgICBlbGlmIHBvcnRf
dG9fdXNlLnN0YXJ0c3dpdGgoJ2Nocm9taXVtLWdwdScpOgorICAgICAgICBlbGlmIHBvcnRfdG9f
dXNlLnN0YXJ0c3dpdGgoJ2Nocm9taXVtLWdwdS1saW51eCcpOgogICAgICAgICAgICAgaW1wb3J0
IGNocm9taXVtX2dwdQotICAgICAgICAgICAgbWFrZXIgPSBjaHJvbWl1bV9ncHUuZ2V0CisgICAg
ICAgICAgICBtYWtlciA9IGNocm9taXVtX2dwdS5DaHJvbWl1bUdwdUxpbnV4UG9ydAorICAgICAg
ICBlbGlmIHBvcnRfdG9fdXNlLnN0YXJ0c3dpdGgoJ2Nocm9taXVtLWdwdS1jZy1tYWMnKToKKyAg
ICAgICAgICAgIGltcG9ydCBjaHJvbWl1bV9ncHUKKyAgICAgICAgICAgIG1ha2VyID0gY2hyb21p
dW1fZ3B1LkNocm9taXVtR3B1Q2dNYWNQb3J0CisgICAgICAgIGVsaWYgcG9ydF90b191c2Uuc3Rh
cnRzd2l0aCgnY2hyb21pdW0tZ3B1LW1hYycpOgorICAgICAgICAgICAgaW1wb3J0IGNocm9taXVt
X2dwdQorICAgICAgICAgICAgbWFrZXIgPSBjaHJvbWl1bV9ncHUuQ2hyb21pdW1HcHVNYWNQb3J0
CisgICAgICAgIGVsaWYgcG9ydF90b191c2Uuc3RhcnRzd2l0aCgnY2hyb21pdW0tZ3B1LXdpbicp
OgorICAgICAgICAgICAgaW1wb3J0IGNocm9taXVtX2dwdQorICAgICAgICAgICAgbWFrZXIgPSBj
aHJvbWl1bV9ncHUuQ2hyb21pdW1HcHVXaW5Qb3J0CiAgICAgICAgIGVsaWYgcG9ydF90b191c2Uu
c3RhcnRzd2l0aCgnY2hyb21pdW0tbWFjJykgb3IgcG9ydF90b191c2Uuc3RhcnRzd2l0aCgnY2hy
b21pdW0tY2ctbWFjJyk6CiAgICAgICAgICAgICBpbXBvcnQgY2hyb21pdW1fbWFjCiAgICAgICAg
ICAgICBtYWtlciA9IGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQKQEAgLTEwMywxNiArMTE5
LDI3IEBAIGNsYXNzIFBvcnRGYWN0b3J5KG9iamVjdCk6CiAgICAgICAgIGVsaWYgcG9ydF90b191
c2Uuc3RhcnRzd2l0aCgnY2hyb21pdW0td2luJyk6CiAgICAgICAgICAgICBpbXBvcnQgY2hyb21p
dW1fd2luCiAgICAgICAgICAgICBtYWtlciA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQK
LSAgICAgICAgZWxpZiBwb3J0X3RvX3VzZS5zdGFydHN3aXRoKCdnb29nbGUtY2hyb21lJyk6Cisg
ICAgICAgIGVsaWYgcG9ydF90b191c2UgPT0gJ2dvb2dsZS1jaHJvbWUtbGludXgzMic6CisgICAg
ICAgICAgICBpbXBvcnQgZ29vZ2xlX2Nocm9tZQorICAgICAgICAgICAgcG9ydF9uYW1lID0gJ2No
cm9taXVtLWxpbnV4LXg4NicKKyAgICAgICAgICAgIG1ha2VyID0gZ29vZ2xlX2Nocm9tZS5Hb29n
bGVDaHJvbWVMaW51eDMyUG9ydAorICAgICAgICBlbGlmIHBvcnRfdG9fdXNlID09ICdnb29nbGUt
Y2hyb21lLWxpbnV4NjQnOgogICAgICAgICAgICAgaW1wb3J0IGdvb2dsZV9jaHJvbWUKLSAgICAg
ICAgICAgIG1ha2VyID0gZ29vZ2xlX2Nocm9tZS5HZXRHb29nbGVDaHJvbWVQb3J0CisgICAgICAg
ICAgICBwb3J0X25hbWUgPSAnY2hyb21pdW0tbGludXgteDg2XzY0JworICAgICAgICAgICAgbWFr
ZXIgPSBnb29nbGVfY2hyb21lLkdvb2dsZUNocm9tZUxpbnV4NjRQb3J0CisgICAgICAgIGVsaWYg
cG9ydF90b191c2Uuc3RhcnRzd2l0aCgnZ29vZ2xlLWNocm9tZS13aW4nKToKKyAgICAgICAgICAg
IGltcG9ydCBnb29nbGVfY2hyb21lCisgICAgICAgICAgICBtYWtlciA9IGdvb2dsZV9jaHJvbWUu
R29vZ2xlQ2hyb21lV2luUG9ydAorICAgICAgICBlbGlmIHBvcnRfdG9fdXNlLnN0YXJ0c3dpdGgo
J2dvb2dsZS1jaHJvbWUtbWFjJyk6CisgICAgICAgICAgICBpbXBvcnQgZ29vZ2xlX2Nocm9tZQor
ICAgICAgICAgICAgbWFrZXIgPSBnb29nbGVfY2hyb21lLkdvb2dsZUNocm9tZU1hY1BvcnQKICAg
ICAgICAgZWxpZiBwb3J0X3RvX3VzZS5zdGFydHN3aXRoKCdlZmwnKToKICAgICAgICAgICAgIGlt
cG9ydCBlZmwKICAgICAgICAgICAgIG1ha2VyID0gZWZsLkVmbFBvcnQKICAgICAgICAgZWxzZToK
ICAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ3Vuc3VwcG9ydGVkIHBvcnQ6
ICVzJyAlIHBvcnRfdG9fdXNlKQogCi0gICAgICAgIHJldHVybiBtYWtlcihzZWxmLl9ob3N0LCAq
Kmt3YXJncykKKyAgICAgICAgcmV0dXJuIG1ha2VyKHNlbGYuX2hvc3QsIHBvcnRfbmFtZT1wb3J0
X25hbWUsIG9wdGlvbnM9b3B0aW9ucywgKiprd2FyZ3MpCiAKICAgICBkZWYgYWxsX3BvcnRfbmFt
ZXMoc2VsZik6CiAgICAgICAgICIiIlJldHVybiBhIGxpc3Qgb2YgYWxsIHZhbGlkLCBmdWxseS1z
cGVjaWZpZWQsICJyZWFsIiBwb3J0IG5hbWVzLgpAQCAtMTIzLDE3ICsxNTAsNiBAQCBjbGFzcyBQ
b3J0RmFjdG9yeShvYmplY3QpOgogICAgICAgICAjIEZJWE1FOiBUaGVyZSdzIHByb2JhYmx5IGEg
YmV0dGVyIHdheSB0byBnZW5lcmF0ZSB0aGlzIGxpc3QgLi4uCiAgICAgICAgIHJldHVybiBidWls
ZGVycy5hbGxfcG9ydF9uYW1lcygpCiAKLSAgICBkZWYgZ2V0KHNlbGYsIHBvcnRfbmFtZT1Ob25l
LCBvcHRpb25zPU5vbmUsICoqa3dhcmdzKToKLSAgICAgICAgIiIiUmV0dXJucyBhbiBvYmplY3Qg
aW1wbGVtZW50aW5nIHRoZSBQb3J0IGludGVyZmFjZS4gSWYKLSAgICAgICAgcG9ydF9uYW1lIGlz
IE5vbmUsIHRoaXMgcm91dGluZSBhdHRlbXB0cyB0byBndWVzcyBhdCB0aGUgbW9zdAotICAgICAg
ICBhcHByb3ByaWF0ZSBwb3J0IG9uIHRoaXMgcGxhdGZvcm0uIiIiCi0gICAgICAgICMgV3JhcHBl
ZCBmb3IgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkKLSAgICAgICAgaWYgcG9ydF9uYW1lOgotICAg
ICAgICAgICAga3dhcmdzWydwb3J0X25hbWUnXSA9IHBvcnRfbmFtZQotICAgICAgICBpZiBvcHRp
b25zOgotICAgICAgICAgICAga3dhcmdzWydvcHRpb25zJ10gPSBvcHRpb25zCi0gICAgICAgIHJl
dHVybiBzZWxmLl9nZXRfa3dhcmdzKCoqa3dhcmdzKQotCiAgICAgZGVmIGdldF9mcm9tX2J1aWxk
ZXJfbmFtZShzZWxmLCBidWlsZGVyX25hbWUpOgogICAgICAgICBwb3J0X25hbWUgPSBidWlsZGVy
cy5wb3J0X25hbWVfZm9yX2J1aWxkZXJfbmFtZShidWlsZGVyX25hbWUpCiAgICAgICAgIGFzc2Vy
dChwb3J0X25hbWUpICAjIE5lZWQgdG8gdXBkYXRlIHBvcnRfbmFtZV9mb3JfYnVpbGRlcl9uYW1l
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Zh
Y3RvcnlfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2ZhY3RvcnlfdW5pdHRlc3QucHkKaW5kZXggMWY5YzIzNmM2YjMyNjA1OGY4YjkxMDZmZGEw
M2JmMTRlYmIyMmQ2Yy4uNTI4NDUyZDA1NTBiMDE2ZjgxZjlhNjNjMTIyYzlmMGI0NTYzYjQzNSAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9mYWN0
b3J5X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvZmFjdG9yeV91bml0dGVzdC5weQpAQCAtMTA0LDEyICsxMDQsMTAgQEAgY2xhc3MgRmFj
dG9yeVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydF9wbGF0Zm9y
bV9wb3J0KCJjeWd3aW4iLCBzZWxmLndlYmtpdF9vcHRpb25zLCB3aW4uV2luUG9ydCkKIAogICAg
IGRlZiB0ZXN0X2dvb2dsZV9jaHJvbWUoc2VsZik6Ci0gICAgICAgICMgVGhlIGFjdHVhbCBDaHJv
bWUgY2xhc3MgbmFtZXMgYXJlbid0IGF2YWlsYWJsZSBzbyB3ZSB0ZXN0IHRoYXQgdGhlCi0gICAg
ICAgICMgb2JqZWN0cyB3ZSBnZXQgYXJlIGF0IGxlYXN0IHN1YmNsYXNzZXMgb2YgdGhlIENocm9t
aXVtIHZlcnNpb25zLgotICAgICAgICBzZWxmLmFzc2VydF9wb3J0KCJnb29nbGUtY2hyb21lLWxp
bnV4MzIiLCBjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydCkKLSAgICAgICAgc2VsZi5h
c3NlcnRfcG9ydCgiZ29vZ2xlLWNocm9tZS1saW51eDY0IiwgY2hyb21pdW1fbGludXguQ2hyb21p
dW1MaW51eFBvcnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3BvcnQoImdvb2dsZS1jaHJvbWUtd2lu
IiwgY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydCkKLSAgICAgICAgc2VsZi5hc3NlcnRfcG9y
dCgiZ29vZ2xlLWNocm9tZS1tYWMiLCBjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0KQorICAg
ICAgICBzZWxmLmFzc2VydF9wb3J0KCJnb29nbGUtY2hyb21lLWxpbnV4MzIiLCBnb29nbGVfY2hy
b21lLkdvb2dsZUNocm9tZUxpbnV4MzJQb3J0KQorICAgICAgICBzZWxmLmFzc2VydF9wb3J0KCJn
b29nbGUtY2hyb21lLWxpbnV4NjQiLCBnb29nbGVfY2hyb21lLkdvb2dsZUNocm9tZUxpbnV4NjRQ
b3J0KQorICAgICAgICBzZWxmLmFzc2VydF9wb3J0KCJnb29nbGUtY2hyb21lLXdpbiIsIGdvb2ds
ZV9jaHJvbWUuR29vZ2xlQ2hyb21lV2luUG9ydCkKKyAgICAgICAgc2VsZi5hc3NlcnRfcG9ydCgi
Z29vZ2xlLWNocm9tZS1tYWMiLCBnb29nbGVfY2hyb21lLkdvb2dsZUNocm9tZU1hY1BvcnQpCiAK
ICAgICBkZWYgdGVzdF9ndGsoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0X3BvcnQoImd0ayIs
IGd0ay5HdGtQb3J0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9nb29nbGVfY2hyb21lLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9nb29nbGVfY2hyb21lLnB5CmluZGV4IGE3MWNjNmRlNjU0Nzc3NmRlM2Zj
NjgxMDhhYThhMTQ5M2RlZWE5NjkuLjFkNzc4MzEyNjg0ZjlhNjI2MWI1MmE1YjMxYzMxYmU0Njc3
NDBlY2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvZ29vZ2xlX2Nocm9tZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2dvb2dsZV9jaHJvbWUucHkKQEAgLTI0LDYgKzI0LDEwIEBACiAjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCitpbXBvcnQgY2hyb21pdW1fbGludXgKK2ltcG9ydCBjaHJv
bWl1bV9tYWMKK2ltcG9ydCBjaHJvbWl1bV93aW4KKwogCiBkZWYgX3Rlc3RfZXhwZWN0YXRpb25z
X292ZXJyaWRlcyhwb3J0LCBzdXBlcik6CiAgICAgIyBUaGUgY2hyb21lIHBvcnRzIHVzZSB0aGUg
cmVndWxhciBvdmVycmlkZXMgcGx1cyBhbnl0aGluZyBpbiB0aGUKQEAgLTQyLDcwICs0Niw0NyBA
QCBkZWYgX3Rlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyhwb3J0LCBzdXBlcik6CiAgICAgcmV0
dXJuIGNocm9taXVtX292ZXJyaWRlcyArIHBvcnQuX2ZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUo
b3ZlcnJpZGVzX3BhdGgpCiAKIAotZGVmIEdldEdvb2dsZUNocm9tZVBvcnQoaG9zdCwgKiprd2Fy
Z3MpOgotICAgICIiIlNvbWUgdGVzdHMgaGF2ZSBzbGlnaHRseSBkaWZmZXJlbnQgcmVzdWx0cyB3
aGVuIGNvbXBpbGVkIGFzIEdvb2dsZQotICAgIENocm9tZSB2cyBDaHJvbWl1bS4gIEluIHRob3Nl
IGNhc2VzLCB3ZSBwcmVwZW5kIGFuIGFkZGl0aW9uYWwgZGlyZWN0b3J5IHRvCi0gICAgdG8gdGhl
IGJhc2VsaW5lIHBhdGhzLiIiIgotICAgICMgRklYTUU6IFRoaXMgd2hvbGUgcm91dGluZSBpcyBh
IHRyZW1lbmRvdXMgaGFjayB0aGF0IG5lZWRzIHRvIGJlIGNsZWFuZWQgdXAuCi0KLSAgICBwb3J0
X25hbWUgPSBrd2FyZ3NbJ3BvcnRfbmFtZSddCi0gICAgZGVsIGt3YXJnc1sncG9ydF9uYW1lJ10K
LSAgICBpZiBwb3J0X25hbWUgPT0gJ2dvb2dsZS1jaHJvbWUtbGludXgzMic6Ci0gICAgICAgIGlt
cG9ydCBjaHJvbWl1bV9saW51eAotCi0gICAgICAgIGNsYXNzIEdvb2dsZUNocm9tZUxpbnV4MzJQ
b3J0KGNocm9taXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0KToKLSAgICAgICAgICAgIGRlZiBi
YXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKLSAgICAgICAgICAgICAgICBwYXRocyA9IGNocm9t
aXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0LmJhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpCi0g
ICAgICAgICAgICAgICAgcGF0aHMuaW5zZXJ0KDAsIHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRo
KCdnb29nbGUtY2hyb21lLWxpbnV4MzInKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gcGF0aHMK
LQotICAgICAgICAgICAgZGVmIHRlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyhzZWxmKToKLSAg
ICAgICAgICAgICAgICByZXR1cm4gX3Rlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyhzZWxmLCBj
aHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydCkKK2NsYXNzIEdvb2dsZUNocm9tZUxpbnV4
MzJQb3J0KGNocm9taXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0KToKKyAgICBkZWYgYmFzZWxp
bmVfc2VhcmNoX3BhdGgoc2VsZik6CisgICAgICAgIHBhdGhzID0gY2hyb21pdW1fbGludXguQ2hy
b21pdW1MaW51eFBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZikKKyAgICAgICAgcGF0aHMu
aW5zZXJ0KDAsIHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdnb29nbGUtY2hyb21lLWxpbnV4
MzInKSkKKyAgICAgICAgcmV0dXJuIHBhdGhzCiAKLSAgICAgICAgICAgIGRlZiBhcmNoaXRlY3R1
cmUoc2VsZik6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICd4ODYnCisgICAgZGVmIHRlc3RfZXhw
ZWN0YXRpb25zX292ZXJyaWRlcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIF90ZXN0X2V4cGVjdGF0
aW9uc19vdmVycmlkZXMoc2VsZiwgY2hyb21pdW1fbGludXguQ2hyb21pdW1MaW51eFBvcnQpCiAK
LSAgICAgICAgcmV0dXJuIEdvb2dsZUNocm9tZUxpbnV4MzJQb3J0KGhvc3QsIHBvcnRfbmFtZT0n
Y2hyb21pdW0tbGludXgteDg2JywgKiprd2FyZ3MpCi0gICAgZWxpZiBwb3J0X25hbWUgPT0gJ2dv
b2dsZS1jaHJvbWUtbGludXg2NCc6Ci0gICAgICAgIGltcG9ydCBjaHJvbWl1bV9saW51eAorICAg
IGRlZiBhcmNoaXRlY3R1cmUoc2VsZik6CisgICAgICAgIHJldHVybiAneDg2JwogCi0gICAgICAg
IGNsYXNzIEdvb2dsZUNocm9tZUxpbnV4NjRQb3J0KGNocm9taXVtX2xpbnV4LkNocm9taXVtTGlu
dXhQb3J0KToKLSAgICAgICAgICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKLSAg
ICAgICAgICAgICAgICBwYXRocyA9IGNocm9taXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0LmJh
c2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpCi0gICAgICAgICAgICAgICAgcGF0aHMuaW5zZXJ0KDAs
IHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdnb29nbGUtY2hyb21lLWxpbnV4NjQnKSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gcGF0aHMKIAotICAgICAgICAgICAgZGVmIHRlc3RfZXhwZWN0
YXRpb25zX292ZXJyaWRlcyhzZWxmKToKLSAgICAgICAgICAgICAgICByZXR1cm4gX3Rlc3RfZXhw
ZWN0YXRpb25zX292ZXJyaWRlcyhzZWxmLCBjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9y
dCkKK2NsYXNzIEdvb2dsZUNocm9tZUxpbnV4NjRQb3J0KGNocm9taXVtX2xpbnV4LkNocm9taXVt
TGludXhQb3J0KToKKyAgICBkZWYgYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6CisgICAgICAg
IHBhdGhzID0gY2hyb21pdW1fbGludXguQ2hyb21pdW1MaW51eFBvcnQuYmFzZWxpbmVfc2VhcmNo
X3BhdGgoc2VsZikKKyAgICAgICAgcGF0aHMuaW5zZXJ0KDAsIHNlbGYuX3dlYmtpdF9iYXNlbGlu
ZV9wYXRoKCdnb29nbGUtY2hyb21lLWxpbnV4NjQnKSkKKyAgICAgICAgcmV0dXJuIHBhdGhzCiAK
LSAgICAgICAgICAgIGRlZiBhcmNoaXRlY3R1cmUoc2VsZik6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuICd4ODZfNjQnCisgICAgZGVmIHRlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyhzZWxmKToK
KyAgICAgICAgcmV0dXJuIF90ZXN0X2V4cGVjdGF0aW9uc19vdmVycmlkZXMoc2VsZiwgY2hyb21p
dW1fbGludXguQ2hyb21pdW1MaW51eFBvcnQpCiAKLSAgICAgICAgcmV0dXJuIEdvb2dsZUNocm9t
ZUxpbnV4NjRQb3J0KGhvc3QsIHBvcnRfbmFtZT0nY2hyb21pdW0tbGludXgteDg2XzY0JywgKipr
d2FyZ3MpCi0gICAgZWxpZiBwb3J0X25hbWUuc3RhcnRzd2l0aCgnZ29vZ2xlLWNocm9tZS1tYWMn
KToKLSAgICAgICAgaW1wb3J0IGNocm9taXVtX21hYworICAgIGRlZiBhcmNoaXRlY3R1cmUoc2Vs
Zik6CisgICAgICAgIHJldHVybiAneDg2XzY0JwogCi0gICAgICAgIGNsYXNzIEdvb2dsZUNocm9t
ZU1hY1BvcnQoY2hyb21pdW1fbWFjLkNocm9taXVtTWFjUG9ydCk6Ci0gICAgICAgICAgICBkZWYg
YmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6Ci0gICAgICAgICAgICAgICAgcGF0aHMgPSBjaHJv
bWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0LmJhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpCi0gICAg
ICAgICAgICAgICAgcGF0aHMuaW5zZXJ0KDAsIHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdn
b29nbGUtY2hyb21lLW1hYycpKQotICAgICAgICAgICAgICAgIHJldHVybiBwYXRocwogCi0gICAg
ICAgICAgICBkZWYgdGVzdF9leHBlY3RhdGlvbnNfb3ZlcnJpZGVzKHNlbGYpOgotICAgICAgICAg
ICAgICAgIHJldHVybiBfdGVzdF9leHBlY3RhdGlvbnNfb3ZlcnJpZGVzKHNlbGYsIGNocm9taXVt
X21hYy5DaHJvbWl1bU1hY1BvcnQpCitjbGFzcyBHb29nbGVDaHJvbWVNYWNQb3J0KGNocm9taXVt
X21hYy5DaHJvbWl1bU1hY1BvcnQpOgorICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxm
KToKKyAgICAgICAgcGF0aHMgPSBjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0LmJhc2VsaW5l
X3NlYXJjaF9wYXRoKHNlbGYpCisgICAgICAgIHBhdGhzLmluc2VydCgwLCBzZWxmLl93ZWJraXRf
YmFzZWxpbmVfcGF0aCgnZ29vZ2xlLWNocm9tZS1tYWMnKSkKKyAgICAgICAgcmV0dXJuIHBhdGhz
CiAKLSAgICAgICAgcmV0dXJuIEdvb2dsZUNocm9tZU1hY1BvcnQoaG9zdCwgKiprd2FyZ3MpCi0g
ICAgZWxpZiBwb3J0X25hbWUuc3RhcnRzd2l0aCgnZ29vZ2xlLWNocm9tZS13aW4nKToKLSAgICAg
ICAgaW1wb3J0IGNocm9taXVtX3dpbgorICAgIGRlZiB0ZXN0X2V4cGVjdGF0aW9uc19vdmVycmlk
ZXMoc2VsZik6CisgICAgICAgIHJldHVybiBfdGVzdF9leHBlY3RhdGlvbnNfb3ZlcnJpZGVzKHNl
bGYsIGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQpCiAKLSAgICAgICAgY2xhc3MgR29vZ2xl
Q2hyb21lV2luUG9ydChjaHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Qb3J0KToKLSAgICAgICAgICAg
IGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKLSAgICAgICAgICAgICAgICBwYXRocyA9
IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZikK
LSAgICAgICAgICAgICAgICBwYXRocy5pbnNlcnQoMCwgc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3Bh
dGgoJ2dvb2dsZS1jaHJvbWUtd2luJykpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHBhdGhzCiAK
LSAgICAgICAgICAgIGRlZiB0ZXN0X2V4cGVjdGF0aW9uc19vdmVycmlkZXMoc2VsZik6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIF90ZXN0X2V4cGVjdGF0aW9uc19vdmVycmlkZXMoc2VsZiwgY2hy
b21pdW1fd2luLkNocm9taXVtV2luUG9ydCkKK2NsYXNzIEdvb2dsZUNocm9tZVdpblBvcnQoY2hy
b21pdW1fd2luLkNocm9taXVtV2luUG9ydCk6CisgICAgZGVmIGJhc2VsaW5lX3NlYXJjaF9wYXRo
KHNlbGYpOgorICAgICAgICBwYXRocyA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQuYmFz
ZWxpbmVfc2VhcmNoX3BhdGgoc2VsZikKKyAgICAgICAgcGF0aHMuaW5zZXJ0KDAsIHNlbGYuX3dl
YmtpdF9iYXNlbGluZV9wYXRoKCdnb29nbGUtY2hyb21lLXdpbicpKQorICAgICAgICByZXR1cm4g
cGF0aHMKIAotICAgICAgICByZXR1cm4gR29vZ2xlQ2hyb21lV2luUG9ydChob3N0LCAqKmt3YXJn
cykKLSAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCd1bnN1cHBvcnRlZCBwb3J0OiAlcycg
JSBwb3J0X25hbWUpCisgICAgZGVmIHRlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyhzZWxmKToK
KyAgICAgICAgcmV0dXJuIF90ZXN0X2V4cGVjdGF0aW9uc19vdmVycmlkZXMoc2VsZiwgY2hyb21p
dW1fd2luLkNocm9taXVtV2luUG9ydCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ29vZ2xlX2Nocm9tZV91bml0dGVzdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ29vZ2xlX2Nocm9tZV91bml0dGVzdC5w
eQppbmRleCAzNmU0YWI2YWE3MTczN2FmOTgzODNkMjFiNjM2YmJmZGU3N2Y4ZWIzLi5iMjAxM2Uy
YTdiZTU0MTVmMmUyZjE5ZmZkYTRhOTQ0Y2RlYmQ5MGVmIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2dvb2dsZV9jaHJvbWVfdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9nb29nbGVfY2hy
b21lX3VuaXR0ZXN0LnB5CkBAIC0yNyw3ICsyNyw2IEBACiBpbXBvcnQgdW5pdHRlc3QKIAogZnJv
bSB3ZWJraXRweS5jb21tb24uaG9zdF9tb2NrIGltcG9ydCBNb2NrSG9zdAotZnJvbSB3ZWJraXRw
eS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgZ29vZ2xlX2Nocm9tZQogCiAKIGNsYXNzIEdldEdv
b2dsZUNocm9tZVBvcnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTQyLDcgKzQxLDcgQEAg
Y2xhc3MgR2V0R29vZ2xlQ2hyb21lUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBzZWxmLl92ZXJpZnlfYmFzZWxpbmVfcGF0aCgnZ29vZ2xlLWNocm9tZS13aW4nLCAnZ29vZ2xl
LWNocm9tZS13aW4tdmlzdGEnKQogCiAgICAgZGVmIF92ZXJpZnlfYmFzZWxpbmVfcGF0aChzZWxm
LCBleHBlY3RlZF9wYXRoLCBwb3J0X25hbWUpOgotICAgICAgICBwb3J0ID0gZ29vZ2xlX2Nocm9t
ZS5HZXRHb29nbGVDaHJvbWVQb3J0KE1vY2tIb3N0KCksIHBvcnRfbmFtZT1wb3J0X25hbWUpCisg
ICAgICAgIHBvcnQgPSBNb2NrSG9zdCgpLnBvcnRfZmFjdG9yeS5nZXQocG9ydF9uYW1lPXBvcnRf
bmFtZSkKICAgICAgICAgcGF0aCA9IHBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoKVswXQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX3BhdGgsIHBvcnQuX2ZpbGVzeXN0ZW0uYmFz
ZW5hbWUocGF0aCkpCiAKQEAgLTU1LDcgKzU0LDcgQEAgY2xhc3MgR2V0R29vZ2xlQ2hyb21lUG9y
dFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBob3N0ID0gTW9ja0hvc3QoKQogICAg
ICAgICBjaHJvbWl1bV9wb3J0ID0gaG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KCJjaHJvbWl1bS1jZy1t
YWMiKQogICAgICAgICBjaHJvbWl1bV9iYXNlID0gY2hyb21pdW1fcG9ydC5wYXRoX2Zyb21fY2hy
b21pdW1fYmFzZSgpCi0gICAgICAgIHBvcnQgPSBnb29nbGVfY2hyb21lLkdldEdvb2dsZUNocm9t
ZVBvcnQoaG9zdCwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgb3B0aW9ucz1Ob25lKQorICAgICAgICBw
b3J0ID0gaG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KHBvcnRfbmFtZT1wb3J0X25hbWUsIG9wdGlvbnM9
Tm9uZSkKIAogICAgICAgICBleHBlY3RlZF9jaHJvbWl1bV9vdmVycmlkZXMgPSAnLy8gY2hyb21p
dW0gb3ZlcnJpZGVzXG4nCiAgICAgICAgIGV4cGVjdGVkX2Nocm9tZV9vdmVycmlkZXMgPSAnLy8g
Y2hyb21lIG92ZXJyaWRlc1xuJwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121313</attachid>
            <date>2012-01-05 12:43:08 -0800</date>
            <delta_ts>2012-01-05 15:07:50 -0800</delta_ts>
            <desc>fix &apos;chromium-gpu&apos; as a port name, add tests</desc>
            <filename>bug-75590-20120105124307.patch</filename>
            <type>text/plain</type>
            <size>22781</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0MDg5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTJjMjBlNzI3NmJlNjIwMWU3ZDQ1MWVlMzAyNjAzY2Iz
NDY4YjhlZC4uOWYxYTMyZmJiNTE4Nzg3Mzg3YjllNjc5ZDgwZDA4ZGVlYmJjZDg1ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3
IEBACisyMDEyLTAxLTA0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIHdlYmtpdHB5OiBjbGVhbiB1cCBwb3J0IGZhY3RvcnkgbWV0aG9kcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1OTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBjb25zb2xp
ZGF0ZXMgbXVjaCBvZiB0aGUgImZhY3RvcnkgbWV0aG9kIiBsb2dpYworICAgICAgICBvZiBkZXRl
cm1pbmluZyB3aGljaCBwb3J0IG9iamVjdHMgdG8gY3JlYXRlIGZvciBhIGdpdmVuIHNldAorICAg
ICAgICBvZiBjb25maWd1cmF0aW9ucyBieSBtZXJnaW5nIHRoZSBzZXBhcmF0ZSBmYWN0b3J5IG1l
dGhvZHMgaW4KKyAgICAgICAgY2hyb21pdW1fZ3B1IGFuZCBnb29nbGVfY2hyb21lIGludG8gUG9y
dEZhY3Rvcnkgc28gdGhhdCBhdCBsZWFzdAorICAgICAgICBhbGwgb2YgdGhlIGxvZ2ljIGlzIGlu
IG9uZSBwbGFjZS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvY2hyb21pdW1fZ3B1LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW1fZ3B1X3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeS5weToKKyAgICAgICAgKF9wb3J0X25hbWVf
ZnJvbV9hcmd1bWVudHNfYW5kX29wdGlvbnMpOgorICAgICAgICAoZ2V0KToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnlfdW5pdHRlc3QucHk6Cisg
ICAgICAgICh0ZXN0X2dvb2dsZV9jaHJvbWUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvZ29vZ2xlX2Nocm9tZS5weToKKyAgICAgICAgKEdvb2dsZUNocm9t
ZUxpbnV4MzJQb3J0KToKKyAgICAgICAgKEdvb2dsZUNocm9tZUxpbnV4MzJQb3J0LmJhc2VsaW5l
X3NlYXJjaF9wYXRoKToKKyAgICAgICAgKHRlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyk6Cisg
ICAgICAgIChhcmNoaXRlY3R1cmUpOgorICAgICAgICAoR29vZ2xlQ2hyb21lTGludXg2NFBvcnQp
OgorICAgICAgICAoR29vZ2xlQ2hyb21lTGludXg2NFBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgp
OgorICAgICAgICAoR29vZ2xlQ2hyb21lTWFjUG9ydCk6CisgICAgICAgIChHb29nbGVDaHJvbWVN
YWNQb3J0LmJhc2VsaW5lX3NlYXJjaF9wYXRoKToKKyAgICAgICAgKEdvb2dsZUNocm9tZVdpblBv
cnQpOgorICAgICAgICAoR29vZ2xlQ2hyb21lV2luUG9ydC5iYXNlbGluZV9zZWFyY2hfcGF0aCk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9nb29nbGVfY2hy
b21lX3VuaXR0ZXN0LnB5OgorICAgICAgICAoX3ZlcmlmeV9iYXNlbGluZV9wYXRoKToKKwogMjAx
Mi0wMS0wNCAgVmlhdGNoZXNsYXYgT3N0YXBlbmtvICA8b3N0YXBlbmtvLnZpYXRjaGVzbGF2QG5v
a2lhLmNvbT4KIAogICAgICAgICBBZGRpbmcgbXlzZWxmIHRvIGNvbW1pdHRlcnMgbGlzdC4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21p
dW1fZ3B1LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJv
bWl1bV9ncHUucHkKaW5kZXggNjAzZWFmYzcyZTAyYmI2Yjc4OWU2YjRlMTk1ZmVlOWJhMTE0YzI4
Ni4uM2U5ZGVkNjg2ZjQzN2QwMmMwMWUyMzIyYjU3YjFlMmE0ZTZjZTI1NCAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9n
cHUucHkKQEAgLTMxLDMzICszMSw3IEBAIGltcG9ydCBjaHJvbWl1bV9tYWMKIGltcG9ydCBjaHJv
bWl1bV93aW4KIAogCi1kZWYgZ2V0KGhvc3QsIHBsYXRmb3JtPU5vbmUsIHBvcnRfbmFtZT0nY2hy
b21pdW0tZ3B1JywgKiprd2FyZ3MpOgotICAgICIiIlNvbWUgdGVzdHMgaGF2ZSBzbGlnaHRseSBk
aWZmZXJlbnQgcmVzdWx0cyB3aGVuIHJ1biB3aGlsZSB1c2luZwotICAgIGhhcmR3YXJlIGFjY2Vs
ZXJhdGlvbi4gIEluIHRob3NlIGNhc2VzLCB3ZSBwcmVwZW5kIGFuIGFkZGl0aW9uYWwgZGlyZWN0
b3J5Ci0gICAgdG8gdGhlIGJhc2VsaW5lIHBhdGhzLiIiIgotICAgIHBsYXRmb3JtID0gcGxhdGZv
cm0gb3Igc3lzLnBsYXRmb3JtCi0gICAgaWYgcG9ydF9uYW1lID09ICdjaHJvbWl1bS1ncHUnOgot
ICAgICAgICBpZiBwbGF0Zm9ybSBpbiAoJ2N5Z3dpbicsICd3aW4zMicpOgotICAgICAgICAgICAg
cG9ydF9uYW1lID0gJ2Nocm9taXVtLWdwdS13aW4nCi0gICAgICAgIGVsaWYgcGxhdGZvcm0uc3Rh
cnRzd2l0aCgnbGludXgnKToKLSAgICAgICAgICAgIHBvcnRfbmFtZSA9ICdjaHJvbWl1bS1ncHUt
bGludXgnCi0gICAgICAgIGVsaWYgcGxhdGZvcm0gPT0gJ2Rhcndpbic6Ci0gICAgICAgICAgICBw
b3J0X25hbWUgPSAnY2hyb21pdW0tZ3B1LW1hYycKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ3Vuc3VwcG9ydGVkIHBsYXRmb3JtOiAlcycgJSBw
bGF0Zm9ybSkKLQotICAgIGlmIHBvcnRfbmFtZS5zdGFydHN3aXRoKCdjaHJvbWl1bS1ncHUtbGlu
dXgnKToKLSAgICAgICAgcmV0dXJuIENocm9taXVtR3B1TGludXhQb3J0KGhvc3QsIHBvcnRfbmFt
ZT1wb3J0X25hbWUsICoqa3dhcmdzKQotICAgIGlmIHBvcnRfbmFtZS5zdGFydHN3aXRoKCdjaHJv
bWl1bS1ncHUtY2ctbWFjJyk6Ci0gICAgICAgIHJldHVybiBDaHJvbWl1bUdwdUNnTWFjUG9ydCho
b3N0LCBwb3J0X25hbWU9cG9ydF9uYW1lLCAqKmt3YXJncykKLSAgICBpZiBwb3J0X25hbWUuc3Rh
cnRzd2l0aCgnY2hyb21pdW0tZ3B1LW1hYycpOgotICAgICAgICByZXR1cm4gQ2hyb21pdW1HcHVN
YWNQb3J0KGhvc3QsIHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQotICAgIGlmIHBvcnRf
bmFtZS5zdGFydHN3aXRoKCdjaHJvbWl1bS1ncHUtd2luJyk6Ci0gICAgICAgIHJldHVybiBDaHJv
bWl1bUdwdVdpblBvcnQoaG9zdCwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgKiprd2FyZ3MpCi0gICAg
cmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigndW5zdXBwb3J0ZWQgcG9ydDogJXMnICUgcG9ydF9u
YW1lKQotCi0KLSMgRklYTUU6IFRoZXNlIHNob3VsZCByZWFsbHkgYmUgYSBtaXhpbiBjbGFzcy4K
KyMgRklYTUU6IFRoaXMgd2hvbGUgZmlsZSBuZWVkcyB0byBnbyBhd2F5IGFuZCB3ZSBuZWVkIHRv
IGVsaW1pbmF0ZSB0aGUgR1BVIGNvbmZpZ3VyYXRpb24uCiAKIGRlZiBfc2V0X2dwdV9vcHRpb25z
KHBvcnQsIGdyYXBoaWNzX3R5cGU9J2dwdScpOgogICAgIHBvcnQuX2dyYXBoaWNzX3R5cGUgPSBn
cmFwaGljc190eXBlCkBAIC05MCw3ICs2NCw3IEBAIGRlZiBfZGVmYXVsdF90ZXN0c19wYXRocyhw
b3J0KToKICAgICAgICAgcGF0aHMgKz0gWydmYXN0L2NhbnZhcycsICdjYW52YXMvcGhpbGlwJ10K
IAogICAgIGlmIG5vdCBwYXRoczoKLSAgICAgICAgIyBGSVhNRTogVGhpcyBpcyBhIGhhY2sgdW50
aWwgd2UgY2FuIHR1cm4gb2YgdGhlIHdlYmtpdF9ncHUKKyAgICAgICAgIyBGSVhNRTogVGhpcyBp
cyBhIGhhY2sgdW50aWwgd2UgY2FuIHR1cm4gb2ZmIHRoZSB3ZWJraXRfZ3B1CiAgICAgICAgICMg
dGVzdHMgb24gdGhlIGJvdHMuIElmIHBhdGhzIGlzIGVtcHR5LCBwb3J0LnRlc3RzKCkKICAgICAg
ICAgIyBmaW5kcyAqZXZlcnl0aGluZyouIEhvd2V2ZXIsIHdlIGhhdmUgdG8gcmV0dXJuIHNvbWV0
aGluZywKICAgICAgICAgIyBvciBOUldUIHRoaW5rcyB0aGVyZSdzIHNvbWV0aGluZyB3cm9uZy4g
U28sIHdlIHJldHVybiBhIHNpbmdsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHVfdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2dwdV91bml0dGVzdC5weQpp
bmRleCBmNjc0YzQzNmQyMTQ3ODZhZTc2ODdlOWVlMDI3YzFhNThjMzYyMTRlLi45NjVmYjU4NmQ4
ZTU0M2E1N2UwNDFmODg3NTIwYzQ4MmI0YThmOGFkIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2dwdV91bml0dGVzdC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2dwdV91
bml0dGVzdC5weQpAQCAtMjcsMTIgKzI3LDEyIEBACiBpbXBvcnQgc3lzCiBpbXBvcnQgdW5pdHRl
c3QKIAotaW1wb3J0IGNocm9taXVtX2dwdQotCi1mcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wg
aW1wb3J0IE1vY2tPcHRpb25zCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0
IE1vY2tIb3N0Ci1mcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBwb3J0X3Rl
c3RjYXNlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2NrIGltcG9y
dCBNb2NrRmlsZVN5c3RlbQorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQg
Y2hyb21pdW1fZ3B1Citmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBwb3J0
X3Rlc3RjYXNlCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmZhY3RvcnkgaW1wb3J0
IFBvcnRGYWN0b3J5Citmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRp
b25zCiAKIAogY2xhc3MgQ2hyb21pdW1HcHVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTYy
LDkgKzYyLDkgQEAgY2xhc3MgQ2hyb21pdW1HcHVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRlcl9uYW1lPSdmb28nLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZF9wcm9jZXNzZXM9Tm9uZSkKICAg
ICAgICAgaWYgaW5wdXRfbmFtZSBhbmQgcGxhdGZvcm06Ci0gICAgICAgICAgICBwb3J0ID0gY2hy
b21pdW1fZ3B1LmdldChob3N0LCBwbGF0Zm9ybT1wbGF0Zm9ybSwgcG9ydF9uYW1lPWlucHV0X25h
bWUsIG9wdGlvbnM9bW9ja19vcHRpb25zKQorICAgICAgICAgICAgcG9ydCA9IFBvcnRGYWN0b3J5
KGhvc3QpLmdldChob3N0LCBwbGF0Zm9ybT1wbGF0Zm9ybSwgcG9ydF9uYW1lPWlucHV0X25hbWUs
IG9wdGlvbnM9bW9ja19vcHRpb25zKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgcG9ydCA9
IGNocm9taXVtX2dwdS5nZXQoaG9zdCwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgb3B0aW9ucz1tb2Nr
X29wdGlvbnMpCisgICAgICAgICAgICBwb3J0ID0gUG9ydEZhY3RvcnkoaG9zdCkuZ2V0KGhvc3Qs
IHBvcnRfbmFtZT1wb3J0X25hbWUsIG9wdGlvbnM9bW9ja19vcHRpb25zKQogICAgICAgICBzZWxm
LmFzc2VydFRydWUocG9ydC5fb3B0aW9ucy5hY2NlbGVyYXRlZF8yZF9jYW52YXMpCiAgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShwb3J0Ll9vcHRpb25zLmFjY2VsZXJhdGVkX3ZpZGVvKQogICAgICAg
ICBzZWxmLmFzc2VydFRydWUocG9ydC5fb3B0aW9ucy5leHBlcmltZW50YWxfZnVsbHlfcGFyYWxs
ZWwpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2ZhY3RvcnkucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Zh
Y3RvcnkucHkKaW5kZXggNzY3MmRlNDRjNjc4YjI3ZjZhNmYzYTk4NGYyNjA1Mzc4ODVlNTM4ZC4u
Zjg3YTQ0N2IwYzQ3MTVhNWEzYmI3Zjk4YmEwYzNkOTIxYjA3OWMzYiAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9mYWN0b3J5LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeS5weQpAQCAtNDUs
MzEgKzQ1LDM4IEBAIGNsYXNzIFBvcnRGYWN0b3J5KG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGhvc3QpOgogICAgICAgICBzZWxmLl9ob3N0ID0gaG9zdAogCi0gICAgZGVmIF9wb3J0
X25hbWVfZnJvbV9hcmd1bWVudHNfYW5kX29wdGlvbnMoc2VsZiwgKiprd2FyZ3MpOgotICAgICAg
ICBwb3J0X3RvX3VzZSA9IGt3YXJncy5nZXQoJ3BvcnRfbmFtZScsIE5vbmUpCi0gICAgICAgIG9w
dGlvbnMgPSBrd2FyZ3MuZ2V0KCdvcHRpb25zJywgTm9uZSkKLSAgICAgICAgaWYgcG9ydF90b191
c2UgaXMgTm9uZToKLSAgICAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInIG9yIHN5
cy5wbGF0Zm9ybSA9PSAnY3lnd2luJzoKLSAgICAgICAgICAgICAgICBpZiBvcHRpb25zIGFuZCBo
YXNhdHRyKG9wdGlvbnMsICdjaHJvbWl1bScpIGFuZCBvcHRpb25zLmNocm9taXVtOgotICAgICAg
ICAgICAgICAgICAgICBwb3J0X3RvX3VzZSA9ICdjaHJvbWl1bS13aW4nCi0gICAgICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcG9ydF90b191c2UgPSAnd2luJwotICAgICAg
ICAgICAgZWxpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnbGludXgnKToKLSAgICAgICAgICAg
ICAgICBwb3J0X3RvX3VzZSA9ICdjaHJvbWl1bS1saW51eCcKLSAgICAgICAgICAgIGVsaWYgc3lz
LnBsYXRmb3JtID09ICdkYXJ3aW4nOgotICAgICAgICAgICAgICAgIGlmIG9wdGlvbnMgYW5kIGhh
c2F0dHIob3B0aW9ucywgJ2Nocm9taXVtJykgYW5kIG9wdGlvbnMuY2hyb21pdW06Ci0gICAgICAg
ICAgICAgICAgICAgIHBvcnRfdG9fdXNlID0gJ2Nocm9taXVtLWNnLW1hYycKLSAgICAgICAgICAg
ICAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHNlbGVjdCB0aGUgY2hyb21pdW0tbWFjIHBv
cnQuCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcG9ydF90b191
c2UgPSAnbWFjJwotCi0gICAgICAgIGlmIHBvcnRfdG9fdXNlIGlzIE5vbmU6Ci0gICAgICAgICAg
ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCd1bmtub3duIHBvcnQ7IHN5cy5wbGF0Zm9ybSA9
ICIlcyInICUgc3lzLnBsYXRmb3JtKQotICAgICAgICByZXR1cm4gcG9ydF90b191c2UKLQotICAg
IGRlZiBfZ2V0X2t3YXJncyhzZWxmLCAqKmt3YXJncyk6Ci0gICAgICAgIHBvcnRfdG9fdXNlID0g
c2VsZi5fcG9ydF9uYW1lX2Zyb21fYXJndW1lbnRzX2FuZF9vcHRpb25zKCoqa3dhcmdzKQorICAg
IGRlZiBfcG9ydF9uYW1lX2Zyb21fYXJndW1lbnRzX2FuZF9vcHRpb25zKHNlbGYsIHBvcnRfbmFt
ZSwgb3B0aW9ucywgcGxhdGZvcm0pOgorICAgICAgICBpZiBwb3J0X25hbWUgPT0gJ2Nocm9taXVt
LWdwdSc6CisgICAgICAgICAgICBpZiBwbGF0Zm9ybSBpbiAoJ2N5Z3dpbicsICd3aW4zMicpOgor
ICAgICAgICAgICAgICAgIHJldHVybiAnY2hyb21pdW0tZ3B1LXdpbicKKyAgICAgICAgICAgIGlm
IHBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2xpbnV4Jyk6CisgICAgICAgICAgICAgICAgcmV0dXJuICdj
aHJvbWl1bS1ncHUtbGludXgnCisgICAgICAgICAgICBpZiBwbGF0Zm9ybSA9PSAnZGFyd2luJzoK
KyAgICAgICAgICAgICAgICByZXR1cm4gJ2Nocm9taXVtLWdwdS1tYWMnCiAKKyAgICAgICAgaWYg
cG9ydF9uYW1lOgorICAgICAgICAgICAgcmV0dXJuIHBvcnRfbmFtZQorCisgICAgICAgIGlmIHBs
YXRmb3JtIGluICgnd2luMzInLCAnY3lnd2luJyk6CisgICAgICAgICAgICBpZiBvcHRpb25zIGFu
ZCBoYXNhdHRyKG9wdGlvbnMsICdjaHJvbWl1bScpIGFuZCBvcHRpb25zLmNocm9taXVtOgorICAg
ICAgICAgICAgICAgIHJldHVybiAnY2hyb21pdW0td2luJworICAgICAgICAgICAgcmV0dXJuICd3
aW4nCisgICAgICAgIGlmIHBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2xpbnV4Jyk6CisgICAgICAgICAg
ICByZXR1cm4gJ2Nocm9taXVtLWxpbnV4JworICAgICAgICBpZiBwbGF0Zm9ybSA9PSAnZGFyd2lu
JzoKKyAgICAgICAgICAgIGlmIG9wdGlvbnMgYW5kIGhhc2F0dHIob3B0aW9ucywgJ2Nocm9taXVt
JykgYW5kIG9wdGlvbnMuY2hyb21pdW06CisgICAgICAgICAgICAgICAgcmV0dXJuICdjaHJvbWl1
bS1jZy1tYWMnCisgICAgICAgICAgICAgICAgIyBGSVhNRTogQWRkIGEgd2F5IHRvIHNlbGVjdCB0
aGUgY2hyb21pdW0tbWFjIHBvcnQuCisgICAgICAgICAgICByZXR1cm4gJ21hYycKKworICAgICAg
ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCd1bmtub3duIHBvcnQ7IHBsYXRmb3JtID0gIiVz
IicgJSBwbGF0Zm9ybSkKKworICAgIGRlZiBnZXQoc2VsZiwgcG9ydF9uYW1lPU5vbmUsIG9wdGlv
bnM9Tm9uZSwgcGxhdGZvcm09Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICAiIiJSZXR1cm5zIGFu
IG9iamVjdCBpbXBsZW1lbnRpbmcgdGhlIFBvcnQgaW50ZXJmYWNlLiBJZgorICAgICAgICBwb3J0
X25hbWUgaXMgTm9uZSwgdGhpcyByb3V0aW5lIGF0dGVtcHRzIHRvIGd1ZXNzIGF0IHRoZSBtb3N0
CisgICAgICAgIGFwcHJvcHJpYXRlIHBvcnQgb24gdGhpcyBwbGF0Zm9ybS4iIiIKKyAgICAgICAg
cGxhdGZvcm0gPSBwbGF0Zm9ybSBvciBzeXMucGxhdGZvcm0KKyAgICAgICAgcG9ydF90b191c2Ug
PSBzZWxmLl9wb3J0X25hbWVfZnJvbV9hcmd1bWVudHNfYW5kX29wdGlvbnMocG9ydF9uYW1lLCBv
cHRpb25zLCBwbGF0Zm9ybSkKICAgICAgICAgaWYgcG9ydF90b191c2Uuc3RhcnRzd2l0aCgndGVz
dCcpOgogICAgICAgICAgICAgaW1wb3J0IHRlc3QKICAgICAgICAgICAgIG1ha2VyID0gdGVzdC5U
ZXN0UG9ydApAQCAtOTEsMTEgKzk4LDI1IEBAIGNsYXNzIFBvcnRGYWN0b3J5KG9iamVjdCk6CiAg
ICAgICAgIGVsaWYgcG9ydF90b191c2Uuc3RhcnRzd2l0aCgncXQnKToKICAgICAgICAgICAgIGlt
cG9ydCBxdAogICAgICAgICAgICAgbWFrZXIgPSBxdC5RdFBvcnQKLSAgICAgICAgZWxpZiBwb3J0
X3RvX3VzZS5zdGFydHN3aXRoKCdjaHJvbWl1bS1ncHUnKToKKyAgICAgICAgZWxpZiBwb3J0X3Rv
X3VzZS5zdGFydHN3aXRoKCdjaHJvbWl1bS1ncHUtbGludXgnKToKICAgICAgICAgICAgIGltcG9y
dCBjaHJvbWl1bV9ncHUKLSAgICAgICAgICAgIG1ha2VyID0gY2hyb21pdW1fZ3B1LmdldAorICAg
ICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF90b191c2UKKyAgICAgICAgICAgIG1ha2VyID0gY2hy
b21pdW1fZ3B1LkNocm9taXVtR3B1TGludXhQb3J0CisgICAgICAgIGVsaWYgcG9ydF90b191c2Uu
c3RhcnRzd2l0aCgnY2hyb21pdW0tZ3B1LWNnLW1hYycpOgorICAgICAgICAgICAgaW1wb3J0IGNo
cm9taXVtX2dwdQorICAgICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF90b191c2UKKyAgICAgICAg
ICAgIG1ha2VyID0gY2hyb21pdW1fZ3B1LkNocm9taXVtR3B1Q2dNYWNQb3J0CisgICAgICAgIGVs
aWYgcG9ydF90b191c2Uuc3RhcnRzd2l0aCgnY2hyb21pdW0tZ3B1LW1hYycpOgorICAgICAgICAg
ICAgaW1wb3J0IGNocm9taXVtX2dwdQorICAgICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF90b191
c2UKKyAgICAgICAgICAgIG1ha2VyID0gY2hyb21pdW1fZ3B1LkNocm9taXVtR3B1TWFjUG9ydAor
ICAgICAgICBlbGlmIHBvcnRfdG9fdXNlLnN0YXJ0c3dpdGgoJ2Nocm9taXVtLWdwdS13aW4nKToK
KyAgICAgICAgICAgIGltcG9ydCBjaHJvbWl1bV9ncHUKKyAgICAgICAgICAgIHBvcnRfbmFtZSA9
IHBvcnRfdG9fdXNlCisgICAgICAgICAgICBtYWtlciA9IGNocm9taXVtX2dwdS5DaHJvbWl1bUdw
dVdpblBvcnQKICAgICAgICAgZWxpZiBwb3J0X3RvX3VzZS5zdGFydHN3aXRoKCdjaHJvbWl1bS1t
YWMnKSBvciBwb3J0X3RvX3VzZS5zdGFydHN3aXRoKCdjaHJvbWl1bS1jZy1tYWMnKToKICAgICAg
ICAgICAgIGltcG9ydCBjaHJvbWl1bV9tYWMKKyAgICAgICAgICAgIHBvcnRfbmFtZSA9IHBvcnRf
dG9fdXNlCiAgICAgICAgICAgICBtYWtlciA9IGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQK
ICAgICAgICAgZWxpZiBwb3J0X3RvX3VzZS5zdGFydHN3aXRoKCdjaHJvbWl1bS1saW51eCcpOgog
ICAgICAgICAgICAgaW1wb3J0IGNocm9taXVtX2xpbnV4CkBAIC0xMDMsMTYgKzEyNCwyNyBAQCBj
bGFzcyBQb3J0RmFjdG9yeShvYmplY3QpOgogICAgICAgICBlbGlmIHBvcnRfdG9fdXNlLnN0YXJ0
c3dpdGgoJ2Nocm9taXVtLXdpbicpOgogICAgICAgICAgICAgaW1wb3J0IGNocm9taXVtX3dpbgog
ICAgICAgICAgICAgbWFrZXIgPSBjaHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Qb3J0Ci0gICAgICAg
IGVsaWYgcG9ydF90b191c2Uuc3RhcnRzd2l0aCgnZ29vZ2xlLWNocm9tZScpOgorICAgICAgICBl
bGlmIHBvcnRfdG9fdXNlID09ICdnb29nbGUtY2hyb21lLWxpbnV4MzInOgorICAgICAgICAgICAg
aW1wb3J0IGdvb2dsZV9jaHJvbWUKKyAgICAgICAgICAgIHBvcnRfbmFtZSA9ICdjaHJvbWl1bS1s
aW51eC14ODYnCisgICAgICAgICAgICBtYWtlciA9IGdvb2dsZV9jaHJvbWUuR29vZ2xlQ2hyb21l
TGludXgzMlBvcnQKKyAgICAgICAgZWxpZiBwb3J0X3RvX3VzZSA9PSAnZ29vZ2xlLWNocm9tZS1s
aW51eDY0JzoKICAgICAgICAgICAgIGltcG9ydCBnb29nbGVfY2hyb21lCi0gICAgICAgICAgICBt
YWtlciA9IGdvb2dsZV9jaHJvbWUuR2V0R29vZ2xlQ2hyb21lUG9ydAorICAgICAgICAgICAgcG9y
dF9uYW1lID0gJ2Nocm9taXVtLWxpbnV4LXg4Nl82NCcKKyAgICAgICAgICAgIG1ha2VyID0gZ29v
Z2xlX2Nocm9tZS5Hb29nbGVDaHJvbWVMaW51eDY0UG9ydAorICAgICAgICBlbGlmIHBvcnRfdG9f
dXNlLnN0YXJ0c3dpdGgoJ2dvb2dsZS1jaHJvbWUtd2luJyk6CisgICAgICAgICAgICBpbXBvcnQg
Z29vZ2xlX2Nocm9tZQorICAgICAgICAgICAgbWFrZXIgPSBnb29nbGVfY2hyb21lLkdvb2dsZUNo
cm9tZVdpblBvcnQKKyAgICAgICAgZWxpZiBwb3J0X3RvX3VzZS5zdGFydHN3aXRoKCdnb29nbGUt
Y2hyb21lLW1hYycpOgorICAgICAgICAgICAgaW1wb3J0IGdvb2dsZV9jaHJvbWUKKyAgICAgICAg
ICAgIG1ha2VyID0gZ29vZ2xlX2Nocm9tZS5Hb29nbGVDaHJvbWVNYWNQb3J0CiAgICAgICAgIGVs
aWYgcG9ydF90b191c2Uuc3RhcnRzd2l0aCgnZWZsJyk6CiAgICAgICAgICAgICBpbXBvcnQgZWZs
CiAgICAgICAgICAgICBtYWtlciA9IGVmbC5FZmxQb3J0CiAgICAgICAgIGVsc2U6CiAgICAgICAg
ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCd1bnN1cHBvcnRlZCBwb3J0OiAlcycgJSBw
b3J0X3RvX3VzZSkKIAotICAgICAgICByZXR1cm4gbWFrZXIoc2VsZi5faG9zdCwgKiprd2FyZ3Mp
CisgICAgICAgIHJldHVybiBtYWtlcihzZWxmLl9ob3N0LCBwb3J0X25hbWU9cG9ydF9uYW1lLCBv
cHRpb25zPW9wdGlvbnMsICoqa3dhcmdzKQogCiAgICAgZGVmIGFsbF9wb3J0X25hbWVzKHNlbGYp
OgogICAgICAgICAiIiJSZXR1cm4gYSBsaXN0IG9mIGFsbCB2YWxpZCwgZnVsbHktc3BlY2lmaWVk
LCAicmVhbCIgcG9ydCBuYW1lcy4KQEAgLTEyMywxNyArMTU1LDYgQEAgY2xhc3MgUG9ydEZhY3Rv
cnkob2JqZWN0KToKICAgICAgICAgIyBGSVhNRTogVGhlcmUncyBwcm9iYWJseSBhIGJldHRlciB3
YXkgdG8gZ2VuZXJhdGUgdGhpcyBsaXN0IC4uLgogICAgICAgICByZXR1cm4gYnVpbGRlcnMuYWxs
X3BvcnRfbmFtZXMoKQogCi0gICAgZGVmIGdldChzZWxmLCBwb3J0X25hbWU9Tm9uZSwgb3B0aW9u
cz1Ob25lLCAqKmt3YXJncyk6Ci0gICAgICAgICIiIlJldHVybnMgYW4gb2JqZWN0IGltcGxlbWVu
dGluZyB0aGUgUG9ydCBpbnRlcmZhY2UuIElmCi0gICAgICAgIHBvcnRfbmFtZSBpcyBOb25lLCB0
aGlzIHJvdXRpbmUgYXR0ZW1wdHMgdG8gZ3Vlc3MgYXQgdGhlIG1vc3QKLSAgICAgICAgYXBwcm9w
cmlhdGUgcG9ydCBvbiB0aGlzIHBsYXRmb3JtLiIiIgotICAgICAgICAjIFdyYXBwZWQgZm9yIGJh
Y2t3YXJkcy1jb21wYXRpYmlsaXR5Ci0gICAgICAgIGlmIHBvcnRfbmFtZToKLSAgICAgICAgICAg
IGt3YXJnc1sncG9ydF9uYW1lJ10gPSBwb3J0X25hbWUKLSAgICAgICAgaWYgb3B0aW9uczoKLSAg
ICAgICAgICAgIGt3YXJnc1snb3B0aW9ucyddID0gb3B0aW9ucwotICAgICAgICByZXR1cm4gc2Vs
Zi5fZ2V0X2t3YXJncygqKmt3YXJncykKLQogICAgIGRlZiBnZXRfZnJvbV9idWlsZGVyX25hbWUo
c2VsZiwgYnVpbGRlcl9uYW1lKToKICAgICAgICAgcG9ydF9uYW1lID0gYnVpbGRlcnMucG9ydF9u
YW1lX2Zvcl9idWlsZGVyX25hbWUoYnVpbGRlcl9uYW1lKQogICAgICAgICBhc3NlcnQocG9ydF9u
YW1lKSAgIyBOZWVkIHRvIHVwZGF0ZSBwb3J0X25hbWVfZm9yX2J1aWxkZXJfbmFtZQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9mYWN0b3J5X3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9mYWN0
b3J5X3VuaXR0ZXN0LnB5CmluZGV4IDFmOWMyMzZjNmIzMjYwNThmOGI5MTA2ZmRhMDNiZjE0ZWJi
MjJkNmMuLjE2ODc0ZTBjNmE2Y2Y5MTFiMzczOGJlNjFkNjUyOGU2OWQ0YzY3MWEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeV91bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Zh
Y3RvcnlfdW5pdHRlc3QucHkKQEAgLTY0LDcgKzY0LDcgQEAgY2xhc3MgRmFjdG9yeVRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICAgc3lzLnBs
YXRmb3JtID0gc2VsZi5yZWFsX3N5c19wbGF0Zm9ybQogCi0gICAgZGVmIGFzc2VydF9wb3J0KHNl
bGYsIHBvcnRfbmFtZSwgZXhwZWN0ZWRfcG9ydCwgcG9ydF9vYmo9Tm9uZSk6CisgICAgZGVmIGFz
c2VydF9wb3J0KHNlbGYsIHBvcnRfbmFtZSwgZXhwZWN0ZWRfcG9ydCwgcG9ydF9vYmo9Tm9uZSwg
cGxhdGZvcm09Tm9uZSk6CiAgICAgICAgICIiIkhlbHBlciBhc3NlcnQgZm9yIHBvcnRfbmFtZS4K
IAogICAgICAgICBBcmdzOgpAQCAtNzIsNyArNzIsNyBAQCBjbGFzcyBGYWN0b3J5VGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgZXhwZWN0ZWRfcG9ydDogY2xhc3Mgb2YgZXhwZWN0
ZWQgcG9ydCBvYmplY3QuCiAgICAgICAgICAgcG9ydF9vYmo6IG9wdGlvbmFsIHBvcnQgb2JqZWN0
CiAgICAgICAgICIiIgotICAgICAgICBwb3J0X29iaiA9IHBvcnRfb2JqIG9yIHNlbGYuZmFjdG9y
eS5nZXQocG9ydF9uYW1lPXBvcnRfbmFtZSkKKyAgICAgICAgcG9ydF9vYmogPSBwb3J0X29iaiBv
ciBzZWxmLmZhY3RvcnkuZ2V0KHBvcnRfbmFtZT1wb3J0X25hbWUsIHBsYXRmb3JtPXBsYXRmb3Jt
KQogICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShwb3J0X29iaiwgZXhwZWN0ZWRf
cG9ydCkpCiAKICAgICBkZWYgYXNzZXJ0X3BsYXRmb3JtX3BvcnQoc2VsZiwgcGxhdGZvcm0sIG9w
dGlvbnMsIGV4cGVjdGVkX3BvcnQpOgpAQCAtMTA0LDEyICsxMDQsMTAgQEAgY2xhc3MgRmFjdG9y
eVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydF9wbGF0Zm9ybV9w
b3J0KCJjeWd3aW4iLCBzZWxmLndlYmtpdF9vcHRpb25zLCB3aW4uV2luUG9ydCkKIAogICAgIGRl
ZiB0ZXN0X2dvb2dsZV9jaHJvbWUoc2VsZik6Ci0gICAgICAgICMgVGhlIGFjdHVhbCBDaHJvbWUg
Y2xhc3MgbmFtZXMgYXJlbid0IGF2YWlsYWJsZSBzbyB3ZSB0ZXN0IHRoYXQgdGhlCi0gICAgICAg
ICMgb2JqZWN0cyB3ZSBnZXQgYXJlIGF0IGxlYXN0IHN1YmNsYXNzZXMgb2YgdGhlIENocm9taXVt
IHZlcnNpb25zLgotICAgICAgICBzZWxmLmFzc2VydF9wb3J0KCJnb29nbGUtY2hyb21lLWxpbnV4
MzIiLCBjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRfcG9ydCgiZ29vZ2xlLWNocm9tZS1saW51eDY0IiwgY2hyb21pdW1fbGludXguQ2hyb21pdW1M
aW51eFBvcnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0X3BvcnQoImdvb2dsZS1jaHJvbWUtd2luIiwg
Y2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydCkKLSAgICAgICAgc2VsZi5hc3NlcnRfcG9ydCgi
Z29vZ2xlLWNocm9tZS1tYWMiLCBjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0KQorICAgICAg
ICBzZWxmLmFzc2VydF9wb3J0KCJnb29nbGUtY2hyb21lLWxpbnV4MzIiLCBnb29nbGVfY2hyb21l
Lkdvb2dsZUNocm9tZUxpbnV4MzJQb3J0KQorICAgICAgICBzZWxmLmFzc2VydF9wb3J0KCJnb29n
bGUtY2hyb21lLWxpbnV4NjQiLCBnb29nbGVfY2hyb21lLkdvb2dsZUNocm9tZUxpbnV4NjRQb3J0
KQorICAgICAgICBzZWxmLmFzc2VydF9wb3J0KCJnb29nbGUtY2hyb21lLXdpbiIsIGdvb2dsZV9j
aHJvbWUuR29vZ2xlQ2hyb21lV2luUG9ydCkKKyAgICAgICAgc2VsZi5hc3NlcnRfcG9ydCgiZ29v
Z2xlLWNocm9tZS1tYWMiLCBnb29nbGVfY2hyb21lLkdvb2dsZUNocm9tZU1hY1BvcnQpCiAKICAg
ICBkZWYgdGVzdF9ndGsoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0X3BvcnQoImd0ayIsIGd0
ay5HdGtQb3J0KQpAQCAtMTE3LDYgKzExNSwxMyBAQCBjbGFzcyBGYWN0b3J5VGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfcXQoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0
X3BvcnQoInF0IiwgcXQuUXRQb3J0KQogCisgICAgZGVmIHRlc3RfY2hyb21pdW1fZ3B1KHNlbGYp
OgorICAgICAgICBzZWxmLmFzc2VydF9wb3J0KCdjaHJvbWl1bS1ncHUnLCBjaHJvbWl1bV9ncHUu
Q2hyb21pdW1HcHVNYWNQb3J0LCBwbGF0Zm9ybT0nZGFyd2luJykKKyAgICAgICAgc2VsZi5hc3Nl
cnRfcG9ydCgnY2hyb21pdW0tZ3B1JywgY2hyb21pdW1fZ3B1LkNocm9taXVtR3B1V2luUG9ydCwg
cGxhdGZvcm09J3dpbjMyJykKKyAgICAgICAgc2VsZi5hc3NlcnRfcG9ydCgnY2hyb21pdW0tZ3B1
JywgY2hyb21pdW1fZ3B1LkNocm9taXVtR3B1V2luUG9ydCwgcGxhdGZvcm09J2N5Z3dpbicpCisg
ICAgICAgIHNlbGYuYXNzZXJ0X3BvcnQoJ2Nocm9taXVtLWdwdScsIGNocm9taXVtX2dwdS5DaHJv
bWl1bUdwdUxpbnV4UG9ydCwgcGxhdGZvcm09J2xpbnV4MicpCisgICAgICAgIHNlbGYuYXNzZXJ0
X3BvcnQoJ2Nocm9taXVtLWdwdScsIGNocm9taXVtX2dwdS5DaHJvbWl1bUdwdUxpbnV4UG9ydCwg
cGxhdGZvcm09J2xpbnV4MycpCisKICAgICBkZWYgdGVzdF9jaHJvbWl1bV9ncHVfbGludXgoc2Vs
Zik6CiAgICAgICAgIHNlbGYuYXNzZXJ0X3BvcnQoImNocm9taXVtLWdwdS1saW51eCIsIGNocm9t
aXVtX2dwdS5DaHJvbWl1bUdwdUxpbnV4UG9ydCkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9nb29nbGVfY2hyb21lLnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9nb29nbGVfY2hyb21lLnB5CmluZGV4IGE3
MWNjNmRlNjU0Nzc3NmRlM2ZjNjgxMDhhYThhMTQ5M2RlZWE5NjkuLjFkNzc4MzEyNjg0ZjlhNjI2
MWI1MmE1YjMxYzMxYmU0Njc3NDBlY2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ29vZ2xlX2Nocm9tZS5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2dvb2dsZV9jaHJvbWUucHkKQEAgLTI0LDYgKzI0
LDEwIEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCitpbXBvcnQgY2hyb21pdW1f
bGludXgKK2ltcG9ydCBjaHJvbWl1bV9tYWMKK2ltcG9ydCBjaHJvbWl1bV93aW4KKwogCiBkZWYg
X3Rlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyhwb3J0LCBzdXBlcik6CiAgICAgIyBUaGUgY2hy
b21lIHBvcnRzIHVzZSB0aGUgcmVndWxhciBvdmVycmlkZXMgcGx1cyBhbnl0aGluZyBpbiB0aGUK
QEAgLTQyLDcwICs0Niw0NyBAQCBkZWYgX3Rlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyhwb3J0
LCBzdXBlcik6CiAgICAgcmV0dXJuIGNocm9taXVtX292ZXJyaWRlcyArIHBvcnQuX2ZpbGVzeXN0
ZW0ucmVhZF90ZXh0X2ZpbGUob3ZlcnJpZGVzX3BhdGgpCiAKIAotZGVmIEdldEdvb2dsZUNocm9t
ZVBvcnQoaG9zdCwgKiprd2FyZ3MpOgotICAgICIiIlNvbWUgdGVzdHMgaGF2ZSBzbGlnaHRseSBk
aWZmZXJlbnQgcmVzdWx0cyB3aGVuIGNvbXBpbGVkIGFzIEdvb2dsZQotICAgIENocm9tZSB2cyBD
aHJvbWl1bS4gIEluIHRob3NlIGNhc2VzLCB3ZSBwcmVwZW5kIGFuIGFkZGl0aW9uYWwgZGlyZWN0
b3J5IHRvCi0gICAgdG8gdGhlIGJhc2VsaW5lIHBhdGhzLiIiIgotICAgICMgRklYTUU6IFRoaXMg
d2hvbGUgcm91dGluZSBpcyBhIHRyZW1lbmRvdXMgaGFjayB0aGF0IG5lZWRzIHRvIGJlIGNsZWFu
ZWQgdXAuCi0KLSAgICBwb3J0X25hbWUgPSBrd2FyZ3NbJ3BvcnRfbmFtZSddCi0gICAgZGVsIGt3
YXJnc1sncG9ydF9uYW1lJ10KLSAgICBpZiBwb3J0X25hbWUgPT0gJ2dvb2dsZS1jaHJvbWUtbGlu
dXgzMic6Ci0gICAgICAgIGltcG9ydCBjaHJvbWl1bV9saW51eAotCi0gICAgICAgIGNsYXNzIEdv
b2dsZUNocm9tZUxpbnV4MzJQb3J0KGNocm9taXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0KToK
LSAgICAgICAgICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKLSAgICAgICAgICAg
ICAgICBwYXRocyA9IGNocm9taXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0LmJhc2VsaW5lX3Nl
YXJjaF9wYXRoKHNlbGYpCi0gICAgICAgICAgICAgICAgcGF0aHMuaW5zZXJ0KDAsIHNlbGYuX3dl
YmtpdF9iYXNlbGluZV9wYXRoKCdnb29nbGUtY2hyb21lLWxpbnV4MzInKSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gcGF0aHMKLQotICAgICAgICAgICAgZGVmIHRlc3RfZXhwZWN0YXRpb25zX292
ZXJyaWRlcyhzZWxmKToKLSAgICAgICAgICAgICAgICByZXR1cm4gX3Rlc3RfZXhwZWN0YXRpb25z
X292ZXJyaWRlcyhzZWxmLCBjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydCkKK2NsYXNz
IEdvb2dsZUNocm9tZUxpbnV4MzJQb3J0KGNocm9taXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0
KToKKyAgICBkZWYgYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6CisgICAgICAgIHBhdGhzID0g
Y2hyb21pdW1fbGludXguQ2hyb21pdW1MaW51eFBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2Vs
ZikKKyAgICAgICAgcGF0aHMuaW5zZXJ0KDAsIHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdn
b29nbGUtY2hyb21lLWxpbnV4MzInKSkKKyAgICAgICAgcmV0dXJuIHBhdGhzCiAKLSAgICAgICAg
ICAgIGRlZiBhcmNoaXRlY3R1cmUoc2VsZik6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICd4ODYn
CisgICAgZGVmIHRlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyhzZWxmKToKKyAgICAgICAgcmV0
dXJuIF90ZXN0X2V4cGVjdGF0aW9uc19vdmVycmlkZXMoc2VsZiwgY2hyb21pdW1fbGludXguQ2hy
b21pdW1MaW51eFBvcnQpCiAKLSAgICAgICAgcmV0dXJuIEdvb2dsZUNocm9tZUxpbnV4MzJQb3J0
KGhvc3QsIHBvcnRfbmFtZT0nY2hyb21pdW0tbGludXgteDg2JywgKiprd2FyZ3MpCi0gICAgZWxp
ZiBwb3J0X25hbWUgPT0gJ2dvb2dsZS1jaHJvbWUtbGludXg2NCc6Ci0gICAgICAgIGltcG9ydCBj
aHJvbWl1bV9saW51eAorICAgIGRlZiBhcmNoaXRlY3R1cmUoc2VsZik6CisgICAgICAgIHJldHVy
biAneDg2JwogCi0gICAgICAgIGNsYXNzIEdvb2dsZUNocm9tZUxpbnV4NjRQb3J0KGNocm9taXVt
X2xpbnV4LkNocm9taXVtTGludXhQb3J0KToKLSAgICAgICAgICAgIGRlZiBiYXNlbGluZV9zZWFy
Y2hfcGF0aChzZWxmKToKLSAgICAgICAgICAgICAgICBwYXRocyA9IGNocm9taXVtX2xpbnV4LkNo
cm9taXVtTGludXhQb3J0LmJhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpCi0gICAgICAgICAgICAg
ICAgcGF0aHMuaW5zZXJ0KDAsIHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdnb29nbGUtY2hy
b21lLWxpbnV4NjQnKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gcGF0aHMKIAotICAgICAgICAg
ICAgZGVmIHRlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyhzZWxmKToKLSAgICAgICAgICAgICAg
ICByZXR1cm4gX3Rlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyhzZWxmLCBjaHJvbWl1bV9saW51
eC5DaHJvbWl1bUxpbnV4UG9ydCkKK2NsYXNzIEdvb2dsZUNocm9tZUxpbnV4NjRQb3J0KGNocm9t
aXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0KToKKyAgICBkZWYgYmFzZWxpbmVfc2VhcmNoX3Bh
dGgoc2VsZik6CisgICAgICAgIHBhdGhzID0gY2hyb21pdW1fbGludXguQ2hyb21pdW1MaW51eFBv
cnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZikKKyAgICAgICAgcGF0aHMuaW5zZXJ0KDAsIHNl
bGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdnb29nbGUtY2hyb21lLWxpbnV4NjQnKSkKKyAgICAg
ICAgcmV0dXJuIHBhdGhzCiAKLSAgICAgICAgICAgIGRlZiBhcmNoaXRlY3R1cmUoc2VsZik6Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuICd4ODZfNjQnCisgICAgZGVmIHRlc3RfZXhwZWN0YXRpb25z
X292ZXJyaWRlcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIF90ZXN0X2V4cGVjdGF0aW9uc19vdmVy
cmlkZXMoc2VsZiwgY2hyb21pdW1fbGludXguQ2hyb21pdW1MaW51eFBvcnQpCiAKLSAgICAgICAg
cmV0dXJuIEdvb2dsZUNocm9tZUxpbnV4NjRQb3J0KGhvc3QsIHBvcnRfbmFtZT0nY2hyb21pdW0t
bGludXgteDg2XzY0JywgKiprd2FyZ3MpCi0gICAgZWxpZiBwb3J0X25hbWUuc3RhcnRzd2l0aCgn
Z29vZ2xlLWNocm9tZS1tYWMnKToKLSAgICAgICAgaW1wb3J0IGNocm9taXVtX21hYworICAgIGRl
ZiBhcmNoaXRlY3R1cmUoc2VsZik6CisgICAgICAgIHJldHVybiAneDg2XzY0JwogCi0gICAgICAg
IGNsYXNzIEdvb2dsZUNocm9tZU1hY1BvcnQoY2hyb21pdW1fbWFjLkNocm9taXVtTWFjUG9ydCk6
Ci0gICAgICAgICAgICBkZWYgYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6Ci0gICAgICAgICAg
ICAgICAgcGF0aHMgPSBjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0LmJhc2VsaW5lX3NlYXJj
aF9wYXRoKHNlbGYpCi0gICAgICAgICAgICAgICAgcGF0aHMuaW5zZXJ0KDAsIHNlbGYuX3dlYmtp
dF9iYXNlbGluZV9wYXRoKCdnb29nbGUtY2hyb21lLW1hYycpKQotICAgICAgICAgICAgICAgIHJl
dHVybiBwYXRocwogCi0gICAgICAgICAgICBkZWYgdGVzdF9leHBlY3RhdGlvbnNfb3ZlcnJpZGVz
KHNlbGYpOgotICAgICAgICAgICAgICAgIHJldHVybiBfdGVzdF9leHBlY3RhdGlvbnNfb3ZlcnJp
ZGVzKHNlbGYsIGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQpCitjbGFzcyBHb29nbGVDaHJv
bWVNYWNQb3J0KGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQpOgorICAgIGRlZiBiYXNlbGlu
ZV9zZWFyY2hfcGF0aChzZWxmKToKKyAgICAgICAgcGF0aHMgPSBjaHJvbWl1bV9tYWMuQ2hyb21p
dW1NYWNQb3J0LmJhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpCisgICAgICAgIHBhdGhzLmluc2Vy
dCgwLCBzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aCgnZ29vZ2xlLWNocm9tZS1tYWMnKSkKKyAg
ICAgICAgcmV0dXJuIHBhdGhzCiAKLSAgICAgICAgcmV0dXJuIEdvb2dsZUNocm9tZU1hY1BvcnQo
aG9zdCwgKiprd2FyZ3MpCi0gICAgZWxpZiBwb3J0X25hbWUuc3RhcnRzd2l0aCgnZ29vZ2xlLWNo
cm9tZS13aW4nKToKLSAgICAgICAgaW1wb3J0IGNocm9taXVtX3dpbgorICAgIGRlZiB0ZXN0X2V4
cGVjdGF0aW9uc19vdmVycmlkZXMoc2VsZik6CisgICAgICAgIHJldHVybiBfdGVzdF9leHBlY3Rh
dGlvbnNfb3ZlcnJpZGVzKHNlbGYsIGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQpCiAKLSAg
ICAgICAgY2xhc3MgR29vZ2xlQ2hyb21lV2luUG9ydChjaHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Q
b3J0KToKLSAgICAgICAgICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKLSAgICAg
ICAgICAgICAgICBwYXRocyA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQuYmFzZWxpbmVf
c2VhcmNoX3BhdGgoc2VsZikKLSAgICAgICAgICAgICAgICBwYXRocy5pbnNlcnQoMCwgc2VsZi5f
d2Via2l0X2Jhc2VsaW5lX3BhdGgoJ2dvb2dsZS1jaHJvbWUtd2luJykpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIHBhdGhzCiAKLSAgICAgICAgICAgIGRlZiB0ZXN0X2V4cGVjdGF0aW9uc19vdmVy
cmlkZXMoc2VsZik6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIF90ZXN0X2V4cGVjdGF0aW9uc19v
dmVycmlkZXMoc2VsZiwgY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydCkKK2NsYXNzIEdvb2ds
ZUNocm9tZVdpblBvcnQoY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydCk6CisgICAgZGVmIGJh
c2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpOgorICAgICAgICBwYXRocyA9IGNocm9taXVtX3dpbi5D
aHJvbWl1bVdpblBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZikKKyAgICAgICAgcGF0aHMu
aW5zZXJ0KDAsIHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdnb29nbGUtY2hyb21lLXdpbicp
KQorICAgICAgICByZXR1cm4gcGF0aHMKIAotICAgICAgICByZXR1cm4gR29vZ2xlQ2hyb21lV2lu
UG9ydChob3N0LCAqKmt3YXJncykKLSAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCd1bnN1
cHBvcnRlZCBwb3J0OiAlcycgJSBwb3J0X25hbWUpCisgICAgZGVmIHRlc3RfZXhwZWN0YXRpb25z
X292ZXJyaWRlcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIF90ZXN0X2V4cGVjdGF0aW9uc19vdmVy
cmlkZXMoc2VsZiwgY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ29vZ2xlX2Nocm9tZV91bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ29vZ2xl
X2Nocm9tZV91bml0dGVzdC5weQppbmRleCAzNmU0YWI2YWE3MTczN2FmOTgzODNkMjFiNjM2YmJm
ZGU3N2Y4ZWIzLi5iMjAxM2UyYTdiZTU0MTVmMmUyZjE5ZmZkYTRhOTQ0Y2RlYmQ5MGVmIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2dvb2dsZV9j
aHJvbWVfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9nb29nbGVfY2hyb21lX3VuaXR0ZXN0LnB5CkBAIC0yNyw3ICsyNyw2IEBACiBpbXBv
cnQgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdF9tb2NrIGltcG9ydCBNb2Nr
SG9zdAotZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgZ29vZ2xlX2Nocm9t
ZQogCiAKIGNsYXNzIEdldEdvb2dsZUNocm9tZVBvcnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
QEAgLTQyLDcgKzQxLDcgQEAgY2xhc3MgR2V0R29vZ2xlQ2hyb21lUG9ydFRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgICAgICBzZWxmLl92ZXJpZnlfYmFzZWxpbmVfcGF0aCgnZ29vZ2xlLWNo
cm9tZS13aW4nLCAnZ29vZ2xlLWNocm9tZS13aW4tdmlzdGEnKQogCiAgICAgZGVmIF92ZXJpZnlf
YmFzZWxpbmVfcGF0aChzZWxmLCBleHBlY3RlZF9wYXRoLCBwb3J0X25hbWUpOgotICAgICAgICBw
b3J0ID0gZ29vZ2xlX2Nocm9tZS5HZXRHb29nbGVDaHJvbWVQb3J0KE1vY2tIb3N0KCksIHBvcnRf
bmFtZT1wb3J0X25hbWUpCisgICAgICAgIHBvcnQgPSBNb2NrSG9zdCgpLnBvcnRfZmFjdG9yeS5n
ZXQocG9ydF9uYW1lPXBvcnRfbmFtZSkKICAgICAgICAgcGF0aCA9IHBvcnQuYmFzZWxpbmVfc2Vh
cmNoX3BhdGgoKVswXQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX3BhdGgsIHBv
cnQuX2ZpbGVzeXN0ZW0uYmFzZW5hbWUocGF0aCkpCiAKQEAgLTU1LDcgKzU0LDcgQEAgY2xhc3Mg
R2V0R29vZ2xlQ2hyb21lUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBob3N0
ID0gTW9ja0hvc3QoKQogICAgICAgICBjaHJvbWl1bV9wb3J0ID0gaG9zdC5wb3J0X2ZhY3Rvcnku
Z2V0KCJjaHJvbWl1bS1jZy1tYWMiKQogICAgICAgICBjaHJvbWl1bV9iYXNlID0gY2hyb21pdW1f
cG9ydC5wYXRoX2Zyb21fY2hyb21pdW1fYmFzZSgpCi0gICAgICAgIHBvcnQgPSBnb29nbGVfY2hy
b21lLkdldEdvb2dsZUNocm9tZVBvcnQoaG9zdCwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgb3B0aW9u
cz1Ob25lKQorICAgICAgICBwb3J0ID0gaG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KHBvcnRfbmFtZT1w
b3J0X25hbWUsIG9wdGlvbnM9Tm9uZSkKIAogICAgICAgICBleHBlY3RlZF9jaHJvbWl1bV9vdmVy
cmlkZXMgPSAnLy8gY2hyb21pdW0gb3ZlcnJpZGVzXG4nCiAgICAgICAgIGV4cGVjdGVkX2Nocm9t
ZV9vdmVycmlkZXMgPSAnLy8gY2hyb21lIG92ZXJyaWRlc1xuJwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>