<?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>64056</bug_id>
          
          <creation_ts>2011-07-06 21:17:03 -0700</creation_ts>
          <short_desc>Fix WebKit2 expected results search paths for Mac and Qt under new-run-webkit-tests</short_desc>
          <delta_ts>2011-07-06 23:56:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>56729</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>433230</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-06 21:17:03 -0700</bug_when>
    <thetext>Fix WebKit2 expected results search paths for Mac and Qt under new-run-webkit-tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433286</commentid>
    <comment_count>1</comment_count>
      <attachid>99943</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-06 23:39:34 -0700</bug_when>
    <thetext>Created attachment 99943
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433289</commentid>
    <comment_count>2</comment_count>
      <attachid>99943</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-06 23:47:17 -0700</bug_when>
    <thetext>Comment on attachment 99943
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/mac_unittest.py:77
&gt; -        port = mac.MacPort()
&gt; +        port = MacPort(filesystem=MockFileSystem(), user=MockUser(), executive=MockExecutive())

This all seems very copy/pasted.

&gt; Tools/Scripts/webkitpy/layout_tests/port/mac_unittest.py:137
&gt; +        # FIXME: Is this really right?  Should mac-leopard fallback to mac-snowleopard?

Yes.  The fallback logic somewhat convoluted and revolves around the expected migration path for baselines when adding new version of a platform.

&gt; Tools/Scripts/webkitpy/layout_tests/port/qt.py:52
&gt; +        if platform.startswith(&apos;linux&apos;):
&gt; +            return &quot;linux&quot;
&gt; +        elif platform in (&apos;win32&apos;, &apos;cygwin&apos;):
&gt; +            return &quot;win&quot;
&gt; +        elif platform == &apos;darwin&apos;:
&gt; +            return &quot;mac&quot;
&gt; +        return None

This feels more general than its current location.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433291</commentid>
    <comment_count>3</comment_count>
      <attachid>99943</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-06 23:48:50 -0700</bug_when>
    <thetext>Comment on attachment 99943
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/port/qt.py:52
&gt;&gt; +        return None
&gt; 
&gt; This feels more general than its current location.

Yeah, but it&apos;s specific to how Qt names its ports.  Eventually we will standardize our port naming and share more of this logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433292</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-06 23:50:38 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 99943 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=99943&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/mac_unittest.py:77
&gt; &gt; -        port = mac.MacPort()
&gt; &gt; +        port = MacPort(filesystem=MockFileSystem(), user=MockUser(), executive=MockExecutive())
&gt; 
&gt; This all seems very copy/pasted.

Yup.  Eventually we&apos;ll need to share more here.  But these are strictly better than before (which were talking to your real filesystem).

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/mac_unittest.py:137
&gt; &gt; +        # FIXME: Is this really right?  Should mac-leopard fallback to mac-snowleopard?
&gt; 
&gt; Yes.  The fallback logic somewhat convoluted and revolves around the expected migration path for baselines when adding new version of a platform.

Yeah, eventually I&apos;d like to standarize fallback across all port flavors.

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/qt.py:52
&gt; &gt; +        if platform.startswith(&apos;linux&apos;):
&gt; &gt; +            return &quot;linux&quot;
&gt; &gt; +        elif platform in (&apos;win32&apos;, &apos;cygwin&apos;):
&gt; &gt; +            return &quot;win&quot;
&gt; &gt; +        elif platform == &apos;darwin&apos;:
&gt; &gt; +            return &quot;mac&quot;
&gt; &gt; +        return None
&gt; 
&gt; This feels more general than its current location.

That&apos;s exactly the way its supposed to feel.  Right now we can&apos;t really share this, but eventually we will when we standardize naming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433293</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-06 23:51:10 -0700</bug_when>
    <thetext>I&apos;ll try to watch the Qt bots to make sure this doesn&apos;t break them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433298</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-06 23:56:54 -0700</bug_when>
    <thetext>Committed r90543: &lt;http://trac.webkit.org/changeset/90543&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99943</attachid>
            <date>2011-07-06 23:39:34 -0700</date>
            <delta_ts>2011-07-06 23:50:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64056-20110706233933.patch</filename>
            <type>text/plain</type>
            <size>24656</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA1MzgKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhNmQwOWJhYzY5ZGFjNWM3YjhhMTYwZmZlMTc0OThjNTgy
MGE3ZDNiLi45NjJiYThhNjBlMjFhMDM5ZGIwOTQ0MWRiOWQ5NzNhZDBhOTMzMTk0IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTEtMDctMDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAg
IEZpeCBXZWJLaXQyIGV4cGVjdGVkIHJlc3VsdHMgc2VhcmNoIHBhdGhzIGZvciBNYWMgYW5kIFF0
IHVuZGVyIG5ldy1ydW4td2Via2l0LXRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02NDA1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgZml4ZXMgdGhlIE1hY1BvcnQncyB2ZXJzaW9uIG9mIGJh
c2VsaW5lX3NlYXJjaF9wYXRoIHRvIGluY2x1ZGUKKyAgICAgICAgd2syIGZhbGxiYWNrIGxpa2Ug
V2ViS2l0UG9ydCdzIGRvZXMuICBUaGlzIGFsc28gcmUtd29ya3MgdGhlIFF0UG9ydAorICAgICAg
ICB0byBzZXQgc2VsZi5fbmFtZSAoYXMgb3RoZXIgcG9ydHMgZG8pIHNvIHRoYXQgV2ViS2l0UG9y
dCdzIGRlZmF1bHQKKyAgICAgICAgaW1wbGVtZW50YXRpb25zIHdpbGwgdW5kZXJzdGFuZCBRdCBv
cGVyYXRpbmcgc3lzdGVtIGZsYXZvcnMgY29ycmVjdGx5CisgICAgICAgIChpbmNsdWRpbmcgd2hl
biBydW5uaW5nIHdrMiB0ZXN0cykuCisKKyAgICAgICAgSW4gdHJ5aW5nIHRvIHRlc3QgdGhpcywg
SSByZWFsaXplZCB0aGF0IG5lYXJseSBhbGwgb2Ygb3VyIHBvcnQtdGVzdHMKKyAgICAgICAgdXNl
IHRoZSBkZWZhdWx0IEZpbGVTeXN0ZW0oKSwgVXNlcigpIGFuZCBFeGVjdXRpdmUoKSBvYmplY3Rz
LCB3aGljaAorICAgICAgICBpcyByZWFsbHkgYmFkLCBiZWNhdXNlIHRoZXkgZXhwb3NlIGRldGFp
bHMgb2YgeW91ciBzeXN0ZW0gaW4gdGhlIHVuaXR0ZXN0IHJlc3VsdHMhCisKKyAgICAgICAgT25j
ZSBJIGZpeGVkIG1hbnkgb2YgdGhlIFBvcnQoKSBjYWxscyB0byBwYXNzIE1vY2tGaWxlU3lzdGVt
KCksIHRoZW4KKyAgICAgICAgTWFjUG9ydC50ZXN0X3Rlc3RzX2Zvcl9vdGhlcl9wbGF0Zm9ybXMg
c3RhcnRlZCBmYWlsaW5nLCBhbmQgSSBoYWQgdG8KKyAgICAgICAgdGVhY2ggTW9ja0ZpbGVTeXN0
ZW0uZ2xvYiBob3cgdG8gaGFuZGxlIGRpcmVjdG9yaWVzIHRvIG1ha2UgaXQgd29yayBhZ2Fpbi4K
KworICAgICAgICBJIHJlbW92ZWQgdGhlIHVzZWxlc3MgUG9ydFRlc3RDYXNlLnRlc3RfYmFzZWxp
bmVfc2VhcmNoX3BhdGggYW5kIHJlcGxhY2VkCisgICAgICAgIGl0IHdpdGggbW9yZSB1c2VmdWwg
dGVzdF9iYXNlbGluZV9zZWFyY2hfcGF0aCB0ZXN0cyBpbiBNYWNQb3J0VGVzdCBhbmQgUXRQb3J0
VGVzdC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5w
eToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV9t
b2NrLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW1fbGludXgucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9jaHJvbWl1bV91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L21hYy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L21hY191bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9xdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3RfZmlsZXMucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW4ucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS90b19iZV9tb3ZlZC9kZWR1cGxpY2F0ZV90ZXN0cy5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHk6CisKIDIwMTEtMDctMDYgIEFkYW0gQmFydGggIDxh
YmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBDbGVhbnVwIHJlc3VsdF9zdW1tYXJ5LnB5CmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkKaW5kZXggZmEw
MDA0YjI0ZGRiODRiYzdjOTY2MDZjZjAwM2U3MGE0NDRkYjE4Yy4uZWIyNTBiM2QyNjMxZjdhNmY3
MWZiM2EwNDgzNTg2MzFlZjM3NTE4MiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vY29uZmlnL3BvcnRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NvbmZpZy9wb3J0cy5weQpAQCAtMzYsNyArMzYsNiBAQCBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBFeGVjdXRpdmUKIAogCiBjbGFzcyBXZWJLaXRQb3J0
KG9iamVjdCk6Ci0KICAgICAjIFdlIG1pZ2h0IG5lZWQgdG8gcGFzcyBzY20gaW50byB0aGlzIGZ1
bmN0aW9uIGZvciBzY20uY2hlY2tvdXRfcm9vdAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBz
Y3JpcHRfcGF0aChjbHMsIHNjcmlwdF9uYW1lKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX21vY2sucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV9tb2NrLnB5CmluZGV4IDZlYjk1OGEx
NWY3OGYxNDc2MWRkZThjYjFjZWRlZGFkMWI3ODYyNDcuLjczZjI3YmY3MDkzNDE3MGFmYjIzMTEw
NWI0ODg1NmY1NWEzOWQ3MzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL3N5c3RlbS9maWxlc3lzdGVtX21vY2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fbW9jay5weQpAQCAtMzUsNyArMzUsNyBAQCBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IG9zcGF0aAogCiAKIGNsYXNzIE1vY2tGaWxl
U3lzdGVtKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVzPU5vbmUsIGN3ZD0n
LycpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlcz1Ob25lLCBkaXJzPU5vbmUsIGN3ZD0n
LycpOgogICAgICAgICAiIiJJbml0aWFsaXplcyBhICJtb2NrIiBmaWxlc3lzdGVtIHRoYXQgY2Fu
IGJlIHVzZWQgdG8gY29tcGxldGVseQogICAgICAgICBzdHViIG91dCBhIGZpbGVzeXN0ZW0uCiAK
QEAgLTQ5LDcgKzQ5LDcgQEAgY2xhc3MgTW9ja0ZpbGVTeXN0ZW0ob2JqZWN0KToKICAgICAgICAg
c2VsZi5fc2VwID0gJy8nCiAgICAgICAgIHNlbGYuY3VycmVudF90bXBubyA9IDAKICAgICAgICAg
c2VsZi5jd2QgPSBjd2QKLSAgICAgICAgc2VsZi5kaXJzID0ge30KKyAgICAgICAgc2VsZi5kaXJz
ID0gZGlycyBvciBzZXQoKQogCiAgICAgZGVmIF9nZXRfc2VwKHNlbGYpOgogICAgICAgICByZXR1
cm4gc2VsZi5fc2VwCkBAIC0xNDAsMTMgKzE0MCwxNiBAQCBjbGFzcyBNb2NrRmlsZVN5c3RlbShv
YmplY3QpOgogICAgIGRlZiBnZXRjd2Qoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLmN3ZAog
Ci0gICAgZGVmIGdsb2Ioc2VsZiwgcGF0aCk6CisgICAgZGVmIGdsb2Ioc2VsZiwgZ2xvYl9zdHJp
bmcpOgogICAgICAgICAjIEZJWE1FOiBUaGlzIG9ubHkgaGFuZGxlcyBhIHdpbGRjYXJkICcqJyBh
dCB0aGUgZW5kIG9mIHRoZSBwYXRoLgogICAgICAgICAjIE1heWJlIGl0IHNob3VsZCBoYW5kbGUg
bW9yZT8KLSAgICAgICAgaWYgcGF0aFstMV0gPT0gJyonOgotICAgICAgICAgICAgcmV0dXJuIFtm
IGZvciBmIGluIHNlbGYuZmlsZXMgaWYgZi5zdGFydHN3aXRoKHBhdGhbOi0xXSldCisgICAgICAg
IGlmIGdsb2Jfc3RyaW5nWy0xXSA9PSAnKic6CisgICAgICAgICAgICBwYXRoX2ZpbHRlciA9IGxh
bWJkYSBwYXRoOiBwYXRoLnN0YXJ0c3dpdGgoZ2xvYl9zdHJpbmdbOi0xXSkKICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHJldHVybiBbZiBmb3IgZiBpbiBzZWxmLmZpbGVzIGlmIGYgPT0gcGF0
aF0KKyAgICAgICAgICAgIHBhdGhfZmlsdGVyID0gbGFtYmRhIHBhdGg6IGdsb2Jfc3RyaW5nID09
IHBhdGgKKworICAgICAgICBleGlzdGluZ19maWxlcyA9IFtwYXRoIGZvciBwYXRoLCBjb250ZW50
cyBpbiBzZWxmLmZpbGVzLml0ZW1zKCkgaWYgY29udGVudHMgaXMgbm90IE5vbmVdCisgICAgICAg
IHJldHVybiBmaWx0ZXIocGF0aF9maWx0ZXIsIGV4aXN0aW5nX2ZpbGVzKSArIGZpbHRlcihwYXRo
X2ZpbHRlciwgc2VsZi5kaXJzKQogCiAgICAgZGVmIGlzYWJzKHNlbGYsIHBhdGgpOgogICAgICAg
ICByZXR1cm4gcGF0aC5zdGFydHN3aXRoKHNlbGYuc2VwKQpAQCAtMTU5LDcgKzE2Miw3IEBAIGNs
YXNzIE1vY2tGaWxlU3lzdGVtKG9iamVjdCk6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAg
ICAgICAgcGF0aCA9IHNlbGYubm9ybXBhdGgocGF0aCkKICAgICAgICAgaWYgcGF0aCBpbiBzZWxm
LmRpcnM6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5kaXJzW3BhdGhdIGlzIG5vdCBOb25lCisg
ICAgICAgICAgICByZXR1cm4gVHJ1ZQogCiAgICAgICAgICMgV2UgbmVlZCB0byB1c2UgYSBjb3B5
IG9mIHRoZSBrZXlzIGhlcmUgaW4gb3JkZXIgdG8gYXZvaWQgc3dpdGNoaW5nCiAgICAgICAgICMg
dG8gYSBkaWZmZXJlbnQgdGhyZWFkIGFuZCBwb3RlbnRpYWxseSBtb2RpZnlpbmcgdGhlIGRpY3Qg
aW4KQEAgLTE2Nyw3ICsxNzAsNyBAQCBjbGFzcyBNb2NrRmlsZVN5c3RlbShvYmplY3QpOgogICAg
ICAgICBmaWxlcyA9IHNlbGYuZmlsZXMua2V5cygpWzpdCiAgICAgICAgIHJlc3VsdCA9IGFueShm
LnN0YXJ0c3dpdGgocGF0aCkgZm9yIGYgaW4gZmlsZXMpCiAgICAgICAgIGlmIHJlc3VsdDoKLSAg
ICAgICAgICAgIHNlbGYuZGlyc1twYXRoXSA9IFRydWUKKyAgICAgICAgICAgIHNlbGYuZGlycy5h
ZGQocGF0aCkKICAgICAgICAgcmV0dXJuIHJlc3VsdAogCiAgICAgZGVmIGpvaW4oc2VsZiwgKmNv
bXBzKToKQEAgLTIzMyw3ICsyMzYsNyBAQCBjbGFzcyBNb2NrRmlsZVN5c3RlbShvYmplY3QpOgog
ICAgIGRlZiBtYXliZV9tYWtlX2RpcmVjdG9yeShzZWxmLCAqcGF0aCk6CiAgICAgICAgIG5vcm1f
cGF0aCA9IHNlbGYubm9ybXBhdGgoc2VsZi5qb2luKCpwYXRoKSkKICAgICAgICAgaWYgbm90IHNl
bGYuaXNkaXIobm9ybV9wYXRoKToKLSAgICAgICAgICAgIHNlbGYuZGlyc1tub3JtX3BhdGhdID0g
VHJ1ZQorICAgICAgICAgICAgc2VsZi5kaXJzLmFkZChub3JtX3BhdGgpCiAKICAgICBkZWYgbW92
ZShzZWxmLCBzb3VyY2UsIGRlc3RpbmF0aW9uKToKICAgICAgICAgaWYgc2VsZi5maWxlc1tzb3Vy
Y2VdIGlzIE5vbmU6CkBAIC0yODUsOSArMjg4LDcgQEAgY2xhc3MgTW9ja0ZpbGVTeXN0ZW0ob2Jq
ZWN0KToKICAgICAgICAgICAgIGlmIGYuc3RhcnRzd2l0aChwYXRoKToKICAgICAgICAgICAgICAg
ICBzZWxmLmZpbGVzW2ZdID0gTm9uZQogCi0gICAgICAgIGZvciBkIGluIHNlbGYuZGlyczoKLSAg
ICAgICAgICAgIGlmIGQuc3RhcnRzd2l0aChwYXRoKToKLSAgICAgICAgICAgICAgICBzZWxmLmRp
cnNbZF0gPSBOb25lCisgICAgICAgIHNlbGYuZGlycyA9IHNldChmaWx0ZXIobGFtYmRhIGQ6IG5v
dCBkLnN0YXJ0c3dpdGgocGF0aCksIHNlbGYuZGlycykpCiAKICAgICBkZWYgc3BsaXQoc2VsZiwg
cGF0aCk6CiAgICAgICAgIGlkeCA9IHBhdGgucmZpbmQoc2VsZi5zZXApCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xpbnV4LnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51
eC5weQppbmRleCAyMjU4MjNkYzA2MjhmMGM3ODUxYzYxN2M3YzQzYmRmYjdjNDdlOGMwLi4xODFm
NDFmYWJkZGI2MWVkNDZjMjg2YTZhNmZiYmU1YTcxNjI0MTZkIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xpbnV4LnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbGludXgu
cHkKQEAgLTM4LDcgKzM4LDYgQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQog
CiAKIGNsYXNzIENocm9taXVtTGludXhQb3J0KGNocm9taXVtLkNocm9taXVtUG9ydCk6Ci0gICAg
IiIiQ2hyb21pdW0gTGludXggaW1wbGVtZW50YXRpb24gb2YgdGhlIFBvcnQgY2xhc3MuIiIiCiAg
ICAgU1VQUE9SVEVEX0FSQ0hJVEVDVFVSRVMgPSAoJ3g4NicsICd4ODZfNjQnKQogCiAgICAgRkFM
TEJBQ0tfUEFUSFMgPSB7CkBAIC01Myw3ICs1Miw3IEBAIGNsYXNzIENocm9taXVtTGludXhQb3J0
KGNocm9taXVtLkNocm9taXVtUG9ydCk6CiAgICAgICAgICMgaW4gb3JkZXIgdG8gYmUgYWJsZSB0
byBmaW5kIHRoZSBEUlQgYmluYXJ5IHByb3Blcmx5LgogICAgICAgICBpZiBwb3J0X25hbWUuZW5k
c3dpdGgoJy1saW51eCcpOgogICAgICAgICAgICAgc2VsZi5fYXJjaGl0ZWN0dXJlID0gc2VsZi5f
ZGV0ZXJtaW5lX2FyY2hpdGVjdHVyZSgpCi0gICAgICAgICAgICAjIEZJWE1FOiB0aGlzIGlzIGFu
IHVnbHkgaGFjayB0byBhdm9pZCByZW5hbWluZyB0aGUgR1BVIHBvcnQuCisgICAgICAgICAgICAj
IEZJWE1FOiBUaGlzIGlzIGFuIHVnbHkgaGFjayB0byBhdm9pZCByZW5hbWluZyB0aGUgR1BVIHBv
cnQuCiAgICAgICAgICAgICBpZiBwb3J0X25hbWUgPT0gJ2Nocm9taXVtLWxpbnV4JzoKICAgICAg
ICAgICAgICAgICBwb3J0X25hbWUgPSBwb3J0X25hbWUgKyAnLScgKyBzZWxmLl9hcmNoaXRlY3R1
cmUKICAgICAgICAgZWxzZToKQEAgLTczLDggKzcyLDcgQEAgY2xhc3MgQ2hyb21pdW1MaW51eFBv
cnQoY2hyb21pdW0uQ2hyb21pdW1Qb3J0KToKICAgICAgICAgZmlsZV9vdXRwdXQgPSAnJwogICAg
ICAgICBpZiBzZWxmLl9maWxlc3lzdGVtLmV4aXN0cyhkcml2ZXJfcGF0aCk6CiAgICAgICAgICAg
ICAjIFRoZSAtLWRlcmVmZXJlbmNlIGZsYWcgdGVsbHMgZmlsZSB0byBmb2xsb3cgc3ltbGlua3MK
LSAgICAgICAgICAgIGZpbGVfb3V0cHV0ID0gc2VsZi5fZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFsn
ZmlsZScsICctLWRlcmVmZXJlbmNlJywgZHJpdmVyX3BhdGhdLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3N0ZGVycj1UcnVlKQor
ICAgICAgICAgICAgZmlsZV9vdXRwdXQgPSBzZWxmLl9leGVjdXRpdmUucnVuX2NvbW1hbmQoWydm
aWxlJywgJy0tZGVyZWZlcmVuY2UnLCBkcml2ZXJfcGF0aF0sIHJldHVybl9zdGRlcnI9VHJ1ZSkK
IAogICAgICAgICBpZiAnRUxGIDMyLWJpdCBMU0IgZXhlY3V0YWJsZScgaW4gZmlsZV9vdXRwdXQ6
CiAgICAgICAgICAgICByZXR1cm4gJ3g4NicKQEAgLTEwOSw4ICsxMDcsNyBAQCBjbGFzcyBDaHJv
bWl1bUxpbnV4UG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogCiAgICAgZGVmIF9idWlsZF9w
YXRoKHNlbGYsICpjb21wcyk6CiAgICAgICAgIGlmIHNlbGYuZ2V0X29wdGlvbignYnVpbGRfZGly
ZWN0b3J5Jyk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYu
Z2V0X29wdGlvbignYnVpbGRfZGlyZWN0b3J5JyksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICpjb21wcykKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9maWxlc3lz
dGVtLmpvaW4oc2VsZi5nZXRfb3B0aW9uKCdidWlsZF9kaXJlY3RvcnknKSwgKmNvbXBzKQogCiAg
ICAgICAgIGJhc2UgPSBzZWxmLnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlKCkKICAgICAgICAgaWYg
c2VsZi5fZmlsZXN5c3RlbS5leGlzdHMoc2VsZi5fZmlsZXN5c3RlbS5qb2luKGJhc2UsICdzY29u
c2J1aWxkJykpOgpAQCAtMTIzLDM0ICsxMjAsMjcgQEAgY2xhc3MgQ2hyb21pdW1MaW51eFBvcnQo
Y2hyb21pdW0uQ2hyb21pdW1Qb3J0KToKICAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbGVzeXN0ZW0u
am9pbihiYXNlLCAnb3V0JywgKmNvbXBzKQogCiAgICAgZGVmIF9jaGVja19hcGFjaGVfaW5zdGFs
bChzZWxmKToKLSAgICAgICAgcmVzdWx0ID0gc2VsZi5fY2hlY2tfZmlsZV9leGlzdHMoc2VsZi5f
cGF0aF90b19hcGFjaGUoKSwKLSAgICAgICAgICAgICJhcGFjaGUyIikKLSAgICAgICAgcmVzdWx0
ID0gc2VsZi5fY2hlY2tfZmlsZV9leGlzdHMoc2VsZi5fcGF0aF90b19hcGFjaGVfY29uZmlnX2Zp
bGUoKSwKLSAgICAgICAgICAgICJhcGFjaGUyIGNvbmZpZyBmaWxlIikgYW5kIHJlc3VsdAorICAg
ICAgICByZXN1bHQgPSBzZWxmLl9jaGVja19maWxlX2V4aXN0cyhzZWxmLl9wYXRoX3RvX2FwYWNo
ZSgpLCAiYXBhY2hlMiIpCisgICAgICAgIHJlc3VsdCA9IHNlbGYuX2NoZWNrX2ZpbGVfZXhpc3Rz
KHNlbGYuX3BhdGhfdG9fYXBhY2hlX2NvbmZpZ19maWxlKCksICJhcGFjaGUyIGNvbmZpZyBmaWxl
IikgYW5kIHJlc3VsdAogICAgICAgICBpZiBub3QgcmVzdWx0OgotICAgICAgICAgICAgX2xvZy5l
cnJvcignICAgIFBsZWFzZSBpbnN0YWxsIHVzaW5nOiAic3VkbyBhcHQtZ2V0IGluc3RhbGwgJwot
ICAgICAgICAgICAgICAgICAgICAgICAnYXBhY2hlMiBsaWJhcGFjaGUyLW1vZC1waHA1IicpCisg
ICAgICAgICAgICBfbG9nLmVycm9yKCcgICAgUGxlYXNlIGluc3RhbGwgdXNpbmc6ICJzdWRvIGFw
dC1nZXQgaW5zdGFsbCBhcGFjaGUyIGxpYmFwYWNoZTItbW9kLXBocDUiJykKICAgICAgICAgICAg
IF9sb2cuZXJyb3IoJycpCiAgICAgICAgIHJldHVybiByZXN1bHQKIAogICAgIGRlZiBfY2hlY2tf
bGlnaHR0cGRfaW5zdGFsbChzZWxmKToKICAgICAgICAgcmVzdWx0ID0gc2VsZi5fY2hlY2tfZmls
ZV9leGlzdHMoCiAgICAgICAgICAgICBzZWxmLl9wYXRoX3RvX2xpZ2h0dHBkKCksICJMaWdIVFRQ
ZCBleGVjdXRhYmxlIikKLSAgICAgICAgcmVzdWx0ID0gc2VsZi5fY2hlY2tfZmlsZV9leGlzdHMo
c2VsZi5fcGF0aF90b19saWdodHRwZF9waHAoKSwKLSAgICAgICAgICAgICJQSFAgQ0dJIGV4ZWN1
dGFibGUiKSBhbmQgcmVzdWx0Ci0gICAgICAgIHJlc3VsdCA9IHNlbGYuX2NoZWNrX2ZpbGVfZXhp
c3RzKHNlbGYuX3BhdGhfdG9fbGlnaHR0cGRfbW9kdWxlcygpLAotICAgICAgICAgICAgIkxpZ0hU
VFBkIG1vZHVsZXMiKSBhbmQgcmVzdWx0CisgICAgICAgIHJlc3VsdCA9IHNlbGYuX2NoZWNrX2Zp
bGVfZXhpc3RzKHNlbGYuX3BhdGhfdG9fbGlnaHR0cGRfcGhwKCksICJQSFAgQ0dJIGV4ZWN1dGFi
bGUiKSBhbmQgcmVzdWx0CisgICAgICAgIHJlc3VsdCA9IHNlbGYuX2NoZWNrX2ZpbGVfZXhpc3Rz
KHNlbGYuX3BhdGhfdG9fbGlnaHR0cGRfbW9kdWxlcygpLCAiTGlnSFRUUGQgbW9kdWxlcyIpIGFu
ZCByZXN1bHQKICAgICAgICAgaWYgbm90IHJlc3VsdDoKLSAgICAgICAgICAgIF9sb2cuZXJyb3Io
JyAgICBQbGVhc2UgaW5zdGFsbCB1c2luZzogInN1ZG8gYXB0LWdldCBpbnN0YWxsICcKLSAgICAg
ICAgICAgICAgICAgICAgICAgJ2xpZ2h0dHBkIHBocDUtY2dpIicpCisgICAgICAgICAgICBfbG9n
LmVycm9yKCcgICAgUGxlYXNlIGluc3RhbGwgdXNpbmc6ICJzdWRvIGFwdC1nZXQgaW5zdGFsbCBs
aWdodHRwZCBwaHA1LWNnaSInKQogICAgICAgICAgICAgX2xvZy5lcnJvcignJykKICAgICAgICAg
cmV0dXJuIHJlc3VsdAogCiAgICAgZGVmIGNoZWNrX3dkaWZmKHNlbGYsIGxvZ2dpbmc9VHJ1ZSk6
CiAgICAgICAgIHJlc3VsdCA9IHNlbGYuX2NoZWNrX2ZpbGVfZXhpc3RzKHNlbGYuX3BhdGhfdG9f
d2RpZmYoKSwgJ3dkaWZmJykKICAgICAgICAgaWYgbm90IHJlc3VsdCBhbmQgbG9nZ2luZzoKLSAg
ICAgICAgICAgIF9sb2cuZXJyb3IoJyAgICBQbGVhc2UgaW5zdGFsbCB1c2luZzogInN1ZG8gYXB0
LWdldCBpbnN0YWxsICcKLSAgICAgICAgICAgICAgICAgICAgICAgJ3dkaWZmIicpCisgICAgICAg
ICAgICBfbG9nLmVycm9yKCcgICAgUGxlYXNlIGluc3RhbGwgdXNpbmc6ICJzdWRvIGFwdC1nZXQg
aW5zdGFsbCB3ZGlmZiInKQogICAgICAgICAgICAgX2xvZy5lcnJvcignJykKICAgICAgICAgIyBG
SVhNRTogVGhlIENocm9taXVtTWFjIHBvcnQgYWx3YXlzIHJldHVybnMgVHJ1ZS4KICAgICAgICAg
cmV0dXJuIHJlc3VsdApAQCAtMTY3LDggKzE1Nyw3IEBAIGNsYXNzIENocm9taXVtTGludXhQb3J0
KGNocm9taXVtLkNocm9taXVtUG9ydCk6CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBjb25m
aWdfbmFtZSA9ICdhcGFjaGUyLWRlYmlhbi1odHRwZC5jb25mJwogCi0gICAgICAgIHJldHVybiBz
ZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5sYXlvdXRfdGVzdHNfZGlyKCksICdodHRwJywgJ2Nv
bmYnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19uYW1lKQorICAgICAgICBy
ZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYubGF5b3V0X3Rlc3RzX2RpcigpLCAnaHR0
cCcsICdjb25mJywgY29uZmlnX25hbWUpCiAKICAgICBkZWYgX3BhdGhfdG9fbGlnaHR0cGQoc2Vs
Zik6CiAgICAgICAgIHJldHVybiAiL3Vzci9zYmluL2xpZ2h0dHBkIgpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5p
dHRlc3QucHkKaW5kZXggYmJlN2VkMzZlNDRiMTA0ZDUzZjJkMzI4ZTg3ZTczYjJlZjY1OGQyMS4u
Mzc5NGFiNDdiODBjN2I3NjEwZWYxNDdmYzQ1M2NmNDQ5ZWUwODE4YyAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV91bml0dGVzdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVt
X3VuaXR0ZXN0LnB5CkBAIC0xMjMsMTAgKzEyMyw2IEBAIGNsYXNzIENocm9taXVtUG9ydFRlc3Qo
cG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgogICAgICAgICAjIE92ZXJyaWRlIHRoaXMgdGVz
dCBzaW5jZSBDaHJvbWl1bVBvcnQgZG9lc24ndCBpbXBsZW1lbnQgZHJpdmVyX2NtZF9saW5lKCku
CiAgICAgICAgIHBhc3MKIAotICAgIGRlZiB0ZXN0X2Jhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYp
OgotICAgICAgICAjIE92ZXJyaWRlIHRoaXMgdGVzdCBzaW5jZSBDaHJvbWl1bVBvcnQgZG9lc24n
dCBpbXBsZW1lbnQgYmFzZWxpbmVfc2VhcmNoX3BhdGgoKS4KLSAgICAgICAgcGFzcwotCiAgICAg
ZGVmIHRlc3RfY2hlY2tfYnVpbGQoc2VsZik6CiAgICAgICAgICMgT3ZlcnJpZGUgdGhpcyB0ZXN0
IHNpbmNlIENocm9taXVtUG9ydCBkb2Vzbid0IGltcGxlbWVudCBfcGF0aF90b19kcml2ZXIoKS4K
ICAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9tYWMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L21hYy5weQppbmRleCA2OTI3NDZhYjkzNDBjMzkyNTY3MWVhYjA2NjY1ODFjZTZiNTM5ODNj
Li5iMmIyZmY3ZTY1M2RhODM2OWYyNTc0MGEzMzM1MTcwOWI1NGM5ZWZlIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hYy5weQpAQCAtNjksOCArNjks
NyBAQCBjbGFzcyBNYWNQb3J0KFdlYktpdFBvcnQpOgogICAgICAgICAnbGVvcGFyZCc6IFsnbWFj
LWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJywgJ21hYyddLAogICAgICAgICAnc25vd2xlb3Bh
cmQnOiBbJ21hYy1zbm93bGVvcGFyZCcsICdtYWMnXSwKICAgICAgICAgJ2Z1dHVyZSc6IFsnbWFj
J10sCi0gICAgICAgICMgRklYTUU6IFRoaXMgaXNuJ3QgcXVpdGUgcmlnaHQgZm9yIHdrMiwgaXQg
c2hvdWxkIGluY2x1ZGUgbWFjLVZFUlNJT04gYXMgd2VsbC4KLSAgICAgICAgJ3drMic6IFsnbWFj
LXdrMicsICdtYWMnXSwKKyAgICAgICAgJ3drMic6IFtdLCAgIyB3azIgZG9lcyBub3QgbWFrZSBz
ZW5zZSBhcyBhIHZlcnNpb24sIHRoaXMgaXMgb25seSBoZXJlIHRvIG1ha2UgdGhlIHJlYmFzZWxp
bmUgdW5pdCB0ZXN0cyBub3QgY3Jhc2guCiAgICAgfQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHBvcnRfbmFtZT1Ob25lLCBvc192ZXJzaW9uX3N0cmluZz1Ob25lLCAqKmt3YXJncyk6CkBAIC04
Niw3ICs4NSwxMCBAQCBjbGFzcyBNYWNQb3J0KFdlYktpdFBvcnQpOgogICAgICAgICBzZWxmLl9v
cGVyYXRpbmdfc3lzdGVtID0gJ21hYycKIAogICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChz
ZWxmKToKLSAgICAgICAgcmV0dXJuIG1hcChzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aCwgc2Vs
Zi5GQUxMQkFDS19QQVRIU1tzZWxmLl92ZXJzaW9uXSkKKyAgICAgICAgc2VhcmNoX3BhdGhzID0g
c2VsZi5GQUxMQkFDS19QQVRIU1tzZWxmLl92ZXJzaW9uXQorICAgICAgICBpZiBzZWxmLmdldF9v
cHRpb24oJ3dlYmtpdF90ZXN0X3J1bm5lcicpOgorICAgICAgICAgICAgc2VhcmNoX3BhdGhzLmlu
c2VydCgwLCBzZWxmLl93azJfcG9ydF9uYW1lKCkpCisgICAgICAgIHJldHVybiBtYXAoc2VsZi5f
d2Via2l0X2Jhc2VsaW5lX3BhdGgsIHNlYXJjaF9wYXRocykKIAogICAgIGRlZiBpc19jcmFzaF9y
ZXBvcnRlcihzZWxmLCBwcm9jZXNzX25hbWUpOgogICAgICAgICByZXR1cm4gcmUuc2VhcmNoKHIn
UmVwb3J0Q3Jhc2gnLCBwcm9jZXNzX25hbWUpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hY191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5CmluZGV4IDU2YTFjN2Q2
NDY5ZjAzOTE2ODNmYWVjMjllY2YwMDgzYzhhMGViYjYuLjE1YzAzYjM4YjM0Njc0ODcwZDU1Zjc5
N2VmNDgzYTI0YmE2ZWRlOTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5CkBAIC0zMCwxOCArMzAsMjAgQEAg
aW1wb3J0IFN0cmluZ0lPCiBpbXBvcnQgc3lzCiBpbXBvcnQgdW5pdHRlc3QKIAotZnJvbSB3ZWJr
aXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgbWFjCitmcm9tIHdlYmtpdHB5LmxheW91dF90
ZXN0cy5wb3J0Lm1hYyBpbXBvcnQgTWFjUG9ydAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMu
cG9ydCBpbXBvcnQgcG9ydF90ZXN0Y2FzZQorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZp
bGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0KK2Zyb20gd2Via2l0cHkudG9vbC5t
b2NrdG9vbCBpbXBvcnQgTW9ja09wdGlvbnMsIE1vY2tVc2VyLCBNb2NrRXhlY3V0aXZlCiAKIAog
Y2xhc3MgTWFjVGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CiAgICAgZGVmIHBvcnRf
bWFrZXIoc2VsZiwgcGxhdGZvcm0pOgogICAgICAgICBpZiBwbGF0Zm9ybSAhPSAnZGFyd2luJzoK
ICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIHJldHVybiBtYWMuTWFjUG9ydAorICAg
ICAgICByZXR1cm4gTWFjUG9ydAogCiAgICAgZGVmIGFzc2VydF9za2lwcGVkX2ZpbGVfc2VhcmNo
X3BhdGhzKHNlbGYsIHBvcnRfbmFtZSwgZXhwZWN0ZWRfcGF0aHMpOgotICAgICAgICBwb3J0ID0g
bWFjLk1hY1BvcnQocG9ydF9uYW1lPXBvcnRfbmFtZSkKKyAgICAgICAgcG9ydCA9IE1hY1BvcnQo
cG9ydF9uYW1lPXBvcnRfbmFtZSwgZmlsZXN5c3RlbT1Nb2NrRmlsZVN5c3RlbSgpLCB1c2VyPU1v
Y2tVc2VyKCksIGV4ZWN1dGl2ZT1Nb2NrRXhlY3V0aXZlKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocG9ydC5fc2tpcHBlZF9maWxlX3NlYXJjaF9wYXRocygpLCBleHBlY3RlZF9wYXRocykK
IAogICAgIGRlZiB0ZXN0X3NraXBwZWRfZmlsZV9zZWFyY2hfcGF0aHMoc2VsZik6CkBAIC03Miwy
MyArNzQsMjcgQEAgc3ZnL2JhdGlrL3RleHQvc21hbGxGb250cy5zdmcKICAgICBdCiAKICAgICBk
ZWYgdGVzdF90ZXN0c19mcm9tX3NraXBwZWRfZmlsZV9jb250ZW50cyhzZWxmKToKLSAgICAgICAg
cG9ydCA9IG1hYy5NYWNQb3J0KCkKKyAgICAgICAgcG9ydCA9IE1hY1BvcnQoZmlsZXN5c3RlbT1N
b2NrRmlsZVN5c3RlbSgpLCB1c2VyPU1vY2tVc2VyKCksIGV4ZWN1dGl2ZT1Nb2NrRXhlY3V0aXZl
KCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5fdGVzdHNfZnJvbV9za2lwcGVkX2Zp
bGVfY29udGVudHMoc2VsZi5leGFtcGxlX3NraXBwZWRfZmlsZSksIHNlbGYuZXhhbXBsZV9za2lw
cGVkX3Rlc3RzKQogCiAgICAgZGVmIGFzc2VydF9uYW1lKHNlbGYsIHBvcnRfbmFtZSwgb3NfdmVy
c2lvbl9zdHJpbmcsIGV4cGVjdGVkKToKLSAgICAgICAgcG9ydCA9IG1hYy5NYWNQb3J0KHBvcnRf
bmFtZT1wb3J0X25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBvc192ZXJzaW9uX3N0
cmluZz1vc192ZXJzaW9uX3N0cmluZykKKyAgICAgICAgcG9ydCA9IE1hY1BvcnQocG9ydF9uYW1l
PXBvcnRfbmFtZSwgb3NfdmVyc2lvbl9zdHJpbmc9b3NfdmVyc2lvbl9zdHJpbmcsIGZpbGVzeXN0
ZW09TW9ja0ZpbGVTeXN0ZW0oKSwgdXNlcj1Nb2NrVXNlcigpLCBleGVjdXRpdmU9TW9ja0V4ZWN1
dGl2ZSgpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3RlZCwgcG9ydC5uYW1lKCkp
CiAKICAgICBkZWYgdGVzdF90ZXN0c19mb3Jfb3RoZXJfcGxhdGZvcm1zKHNlbGYpOgotICAgICAg
ICBwb3J0ID0gbWFjLk1hY1BvcnQocG9ydF9uYW1lPSdtYWMtc25vd2xlb3BhcmQnKQorICAgICAg
ICBwbGF0Zm9ybXMgPSBbJ21hYycsICdjaHJvbWl1bS1saW51eCcsICdtYWMtc25vd2xlb3BhcmQn
XQorICAgICAgICBwb3J0ID0gTWFjUG9ydChwb3J0X25hbWU9J21hYy1zbm93bGVvcGFyZCcsIGZp
bGVzeXN0ZW09TW9ja0ZpbGVTeXN0ZW0oKSwgdXNlcj1Nb2NrVXNlcigpLCBleGVjdXRpdmU9TW9j
a0V4ZWN1dGl2ZSgpKQorICAgICAgICBwbGF0Zm9ybV9kaXJfcGF0aHMgPSBtYXAocG9ydC5fd2Vi
a2l0X2Jhc2VsaW5lX3BhdGgsIHBsYXRmb3JtcykKKyAgICAgICAgIyBSZXBsYWNlIG91ciBlbXB0
eSBtb2NrIGZpbGUgc3lzdGVtIHdpdGggb25lIHdoaWNoIGhhcyBvdXIgZXhwZWN0ZWQgcGxhdGZv
cm0gZGlyZWN0b3JpZXMuCisgICAgICAgIHBvcnQuX2ZpbGVzeXN0ZW0gPSBNb2NrRmlsZVN5c3Rl
bShkaXJzPXBsYXRmb3JtX2Rpcl9wYXRocykKKwogICAgICAgICBkaXJzX3RvX3NraXAgPSBwb3J0
Ll90ZXN0c19mb3Jfb3RoZXJfcGxhdGZvcm1zKCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdw
bGF0Zm9ybS9jaHJvbWl1bS1saW51eCcgaW4gZGlyc190b19za2lwKQogICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKCdwbGF0Zm9ybS9tYWMnIGluIGRpcnNfdG9fc2tpcCkKICAgICAgICAgc2VsZi5h
c3NlcnRGYWxzZSgncGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkJyBpbiBkaXJzX3RvX3NraXApCiAK
ICAgICBkZWYgdGVzdF92ZXJzaW9uKHNlbGYpOgotICAgICAgICBwb3J0ID0gbWFjLk1hY1BvcnQo
KQorICAgICAgICBwb3J0ID0gTWFjUG9ydChmaWxlc3lzdGVtPU1vY2tGaWxlU3lzdGVtKCksIHVz
ZXI9TW9ja1VzZXIoKSwgZXhlY3V0aXZlPU1vY2tFeGVjdXRpdmUoKSkKICAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKHBvcnQudmVyc2lvbigpKQogCiAgICAgZGVmIHRlc3RfdmVyc2lvbnMoc2VsZik6
CkBAIC0xMTksNiArMTI1LDIyIEBAIHN2Zy9iYXRpay90ZXh0L3NtYWxsRm9udHMuc3ZnCiAKICAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIHNlbGYuYXNzZXJ0X25hbWUs
IE5vbmUsICcxMC4zLjEnLCAnc2hvdWxkLXJhaXNlLWFzc2VydGlvbi1zby10aGlzLXZhbHVlLWRv
ZXMtbm90LW1hdHRlcicpCiAKKyAgICBkZWYgX2Fzc2VydF9zZWFyY2hfcGF0aChzZWxmLCBzZWFy
Y2hfcGF0aHMsIHZlcnNpb24sIHVzZV93ZWJraXQyPUZhbHNlKToKKyAgICAgICAgIyBGSVhNRTog
UG9ydCBjb25zdHJ1Y3RvcnMgc2hvdWxkIG5vdCAicGFyc2UiIHRoZSBwb3J0IG5hbWUsIGJ1dAor
ICAgICAgICAjIHJhdGhlciBiZSBwYXNzZWQgY29tcG9uZW50cyAoZGlyZWN0bHkgb3IgdmlhIHNl
dHRlcnMpLiAgT25jZQorICAgICAgICAjIHdlIGZpeCB0aGF0LCB0aGlzIG1ldGhvZCB3aWxsIG5l
ZWQgYSByZS13cml0ZS4KKyAgICAgICAgcG9ydCA9IE1hY1BvcnQoJ21hYy0lcycgJSB2ZXJzaW9u
LCBvcHRpb25zPU1vY2tPcHRpb25zKHdlYmtpdF90ZXN0X3J1bm5lcj11c2Vfd2Via2l0MiksIGZp
bGVzeXN0ZW09TW9ja0ZpbGVTeXN0ZW0oKSwgdXNlcj1Nb2NrVXNlcigpLCBleGVjdXRpdmU9TW9j
a0V4ZWN1dGl2ZSgpKQorICAgICAgICBhYnNvbHV0ZV9zZWFyY2hfcGF0aHMgPSBtYXAocG9ydC5f
d2Via2l0X2Jhc2VsaW5lX3BhdGgsIHNlYXJjaF9wYXRocykKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMocG9ydC5iYXNlbGluZV9zZWFyY2hfcGF0aCgpLCBhYnNvbHV0ZV9zZWFyY2hfcGF0aHMp
CisKKyAgICBkZWYgdGVzdF9iYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKKyAgICAgICAgIyBG
SVhNRTogSXMgdGhpcyByZWFsbHkgcmlnaHQ/ICBTaG91bGQgbWFjLWxlb3BhcmQgZmFsbGJhY2sg
dG8gbWFjLXNub3dsZW9wYXJkPworICAgICAgICBzZWxmLl9hc3NlcnRfc2VhcmNoX3BhdGgoWydt
YWMtbGVvcGFyZCcsICdtYWMtc25vd2xlb3BhcmQnLCAnbWFjJ10sICdsZW9wYXJkJykKKyAgICAg
ICAgc2VsZi5fYXNzZXJ0X3NlYXJjaF9wYXRoKFsnbWFjLXNub3dsZW9wYXJkJywgJ21hYyddLCAn
c25vd2xlb3BhcmQnKQorCisgICAgICAgIHNlbGYuX2Fzc2VydF9zZWFyY2hfcGF0aChbJ21hYy13
azInLCAnbWFjLWxlb3BhcmQnLCAnbWFjLXNub3dsZW9wYXJkJywgJ21hYyddLCAnbGVvcGFyZCcs
IHVzZV93ZWJraXQyPVRydWUpCisgICAgICAgIHNlbGYuX2Fzc2VydF9zZWFyY2hfcGF0aChbJ21h
Yy13azInLCAnbWFjLXNub3dsZW9wYXJkJywgJ21hYyddLCAnc25vd2xlb3BhcmQnLCB1c2Vfd2Vi
a2l0Mj1UcnVlKQorCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgcG9ydF90ZXN0
Y2FzZS5tYWluKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5weQppbmRleCA5OTA5ZWZiYzkyZWExMzY3YmZmYjE5
MzY2NTFkZGE1MDYzZTA2MGU4Li42ZjYyYTA2YjgwMzA1ZDhiNzFhYzU5NTZkMjdhZGM3Mjk0OTU1
NzQyIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L3BvcnRfdGVzdGNhc2UucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CkBAIC00Myw4ICs0Myw5IEBAIGV4Y2VwdCBJbXBvcnRF
cnJvcjoKIAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuc2VydmVycyBpbXBvcnQgaHR0cF9z
ZXJ2ZXJfYmFzZQogCi1mcm9tIHdlYmtpdHB5LnRvb2wgaW1wb3J0IG1vY2t0b29sCi1tb2NrX29w
dGlvbnMgPSBtb2NrdG9vbC5Nb2NrT3B0aW9ucyhjb25maWd1cmF0aW9uPSdSZWxlYXNlJykKK2Zy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxl
U3lzdGVtCitmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zLCBN
b2NrVXNlciwgTW9ja0V4ZWN1dGl2ZQorbW9ja19vcHRpb25zID0gTW9ja09wdGlvbnMoY29uZmln
dXJhdGlvbj0nUmVsZWFzZScpCiAKIAogY2xhc3MgUG9ydFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RD
YXNlKToKQEAgLTY1LDcgKzY2LDcgQEAgY2xhc3MgUG9ydFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RD
YXNlKToKICAgICAgICAgaWYgbm90IG1ha2VyOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKIAot
ICAgICAgICByZXR1cm4gbWFrZXIob3B0aW9ucz1vcHRpb25zKQorICAgICAgICByZXR1cm4gbWFr
ZXIob3B0aW9ucz1vcHRpb25zLCBmaWxlc3lzdGVtPU1vY2tGaWxlU3lzdGVtKCksIHVzZXI9TW9j
a1VzZXIoKSwgZXhlY3V0aXZlPU1vY2tFeGVjdXRpdmUoKSkKIAogICAgIGRlZiB0ZXN0X2RlZmF1
bHRfd29ya2VyX21vZGVsKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQpA
QCAtODMsNyArODQsNyBAQCBjbGFzcyBQb3J0VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsZW4ocG9ydC5kcml2
ZXJfY21kX2xpbmUoKSkpCiAKLSAgICAgICAgb3B0aW9ucyA9IG1vY2t0b29sLk1vY2tPcHRpb25z
KGFkZGl0aW9uYWxfZHJ0X2ZsYWc9WyctLWZvbz1iYXInLCAnLS1mb289YmF6J10pCisgICAgICAg
IG9wdGlvbnMgPSBNb2NrT3B0aW9ucyhhZGRpdGlvbmFsX2RydF9mbGFnPVsnLS1mb289YmFyJywg
Jy0tZm9vPWJheiddKQogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQob3B0aW9ucz1vcHRp
b25zKQogICAgICAgICBjbWRfbGluZSA9IHBvcnQuZHJpdmVyX2NtZF9saW5lKCkKICAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKCctLWZvbz1iYXInIGluIGNtZF9saW5lKQpAQCAtMzQzLDEyICszNDQs
NiBAQCBjbGFzcyBQb3J0VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAg
cmV0dXJuCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsZW4ocG9ydC5hbGxfdGVzdF9jb25maWd1
cmF0aW9ucygpKSA+IDApCiAKLSAgICBkZWYgdGVzdF9iYXNlbGluZV9zZWFyY2hfcGF0aChzZWxm
KToKLSAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKLSAgICAgICAgaWYgbm90IHBvcnQ6
Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQuYmFzZWxp
bmVfcGF0aCgpIGluIHBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoKSkKLQogICAgIGRlZiBpbnRl
Z3JhdGlvbl90ZXN0X2h0dHBfc2VydmVyX19sb29wKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2Vs
Zi5tYWtlX3BvcnQoKQogICAgICAgICBpZiBub3QgcG9ydDoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcXQucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3F0LnB5CmluZGV4IDNlNjcxOWQ3ODQ0ODBkMDJlNDc0
NzM0NjA5MjY2MGQyOTJlYzE4NDcuLjg4MjBiMzg3ZDFiYTFlM2ViMmE5ZDZmMzBmZDQxMTI1MWEz
OGM4NTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvcXQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9x
dC5weQpAQCAtNDIsMTYgKzQyLDI2IEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVf
XykKIGNsYXNzIFF0UG9ydChXZWJLaXRQb3J0KToKICAgICBwb3J0X25hbWUgPSAicXQiCiAKLSAg
ICBkZWYgYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6Ci0gICAgICAgIHBvcnRfbmFtZXMgPSBb
XQotICAgICAgICBpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnbGludXgnKToKLSAgICAgICAg
ICAgIHBvcnRfbmFtZXMuYXBwZW5kKCJxdC1saW51eCIpCi0gICAgICAgIGVsaWYgc3lzLnBsYXRm
b3JtIGluICgnd2luMzInLCAnY3lnd2luJyk6Ci0gICAgICAgICAgICBwb3J0X25hbWVzLmFwcGVu
ZCgicXQtd2luIikKLSAgICAgICAgZWxpZiBzeXMucGxhdGZvcm0gPT0gJ2Rhcndpbic6Ci0gICAg
ICAgICAgICBwb3J0X25hbWVzLmFwcGVuZCgicXQtbWFjIikKLSAgICAgICAgcG9ydF9uYW1lcy5h
cHBlbmQoInF0IikKLSAgICAgICAgcmV0dXJuIG1hcChzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0
aCwgcG9ydF9uYW1lcykKKyAgICBkZWYgX29wZXJhdGluZ19zeXN0ZW1fZm9yX3BsYXRmb3JtKHNl
bGYsIHBsYXRmb3JtKToKKyAgICAgICAgaWYgcGxhdGZvcm0uc3RhcnRzd2l0aCgnbGludXgnKToK
KyAgICAgICAgICAgIHJldHVybiAibGludXgiCisgICAgICAgIGVsaWYgcGxhdGZvcm0gaW4gKCd3
aW4zMicsICdjeWd3aW4nKToKKyAgICAgICAgICAgIHJldHVybiAid2luIgorICAgICAgICBlbGlm
IHBsYXRmb3JtID09ICdkYXJ3aW4nOgorICAgICAgICAgICAgcmV0dXJuICJtYWMiCisgICAgICAg
IHJldHVybiBOb25lCisKKyAgICAjIHN5c19wbGF0Zm9ybSBleGlzdHMgb25seSBmb3IgdW5pdCB0
ZXN0aW5nLgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzeXNfcGxhdGZvcm09Tm9uZSwgKiprd2Fy
Z3MpOgorICAgICAgICBXZWJLaXRQb3J0Ll9faW5pdF9fKHNlbGYsICoqa3dhcmdzKQorICAgICAg
ICBzZWxmLl9vcGVyYXRpbmdfc3lzdGVtID0gc2VsZi5fb3BlcmF0aW5nX3N5c3RlbV9mb3JfcGxh
dGZvcm0oc3lzX3BsYXRmb3JtIG9yIHN5cy5wbGF0Zm9ybSkKKworICAgICAgICAjIEZJWE1FOiBU
aGlzIHdpbGwgYWxsb3cgV2ViS2l0UG9ydC5iYXNlbGluZV9zZWFyY2hfcGF0aCBhbmQgV2ViS2l0
UG9ydC5fc2tpcHBlZF9maWxlX3NlYXJjaF9wYXRocworICAgICAgICAjIHRvIGRvIHRoZSByaWdo
dCB0aGluZywgYnV0IGRvZXNuJ3QgaW5jbHVkZSBzdXBwb3J0IGZvciBxdC00Ljggb3IgcXQtYXJt
IChzZWVuIGluIExheW91dFRlc3RzL3BsYXRmb3JtKSB5ZXQuCisgICAgICAgIG5hbWVfY29tcG9u
ZW50cyA9IFtzZWxmLnBvcnRfbmFtZV0KKyAgICAgICAgaWYgc2VsZi5fb3BlcmF0aW5nX3N5c3Rl
bToKKyAgICAgICAgICAgIG5hbWVfY29tcG9uZW50cy5hcHBlbmQoc2VsZi5fb3BlcmF0aW5nX3N5
c3RlbSkKKyAgICAgICAgc2VsZi5fbmFtZSA9ICItIi5qb2luKG5hbWVfY29tcG9uZW50cykKIAog
ICAgIGRlZiBfcGF0aF90b19hcGFjaGVfY29uZmlnX2ZpbGUoc2VsZik6CiAgICAgICAgICMgRklY
TUU6IFRoaXMgbmVlZHMgdG8gZGV0ZWN0IHRoZSBkaXN0cmlidXRpb24gYW5kIGNoYW5nZSBjb25m
aWcgZmlsZXMuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3Rlc3RfZmlsZXMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3Rlc3RfZmlsZXMucHkKaW5kZXggYjllMWM5N2ZlZDYwZTIwMzdiOTNjMTIzNWFhMWJm
NjcyZDZjMDk1Yy4uZDk2YTIzNjkwYTM4ZmVlZjU3NjkxYjhjNzZhYzhiYWEzOTkzMDNmZCAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0X2Zp
bGVzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVz
dF9maWxlcy5weQpAQCAtODUsOCArODUsNyBAQCBkZWYgbm9ybWFsaXplZF9maW5kKGZpbGVzeXN0
ZW0sIHBhdGhzKToKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHBhdGhzX3RvX3dhbGsuYWRk
KHBhdGgpCiAKLSAgICAjIEZJWE1FOiBJJ20gbm90IHN1cmUgdGhlcmUncyBtdWNoIHBvaW50IGlu
IHRoaXMgYmVpbmcgYSBzZXQuIEEgbGlzdCB3b3VsZAotICAgICMgcHJvYmFibHkgYmUgZmFzdGVy
LgorICAgICMgRklYTUU6IEknbSBub3Qgc3VyZSB0aGVyZSdzIG11Y2ggcG9pbnQgaW4gdGhpcyBi
ZWluZyBhIHNldC4gQSBsaXN0IHdvdWxkIHByb2JhYmx5IGJlIGZhc3Rlci4KICAgICB0ZXN0X2Zp
bGVzID0gc2V0KCkKICAgICBmb3IgcGF0aCBpbiBwYXRoc190b193YWxrOgogICAgICAgICBmaWxl
cyA9IGZpbGVzeXN0ZW0uZmlsZXNfdW5kZXIocGF0aCwgX3NraXBwZWRfZGlyZWN0b3JpZXMsIF9p
c190ZXN0X2ZpbGUpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L3dpbi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvd2luLnB5CmluZGV4IGJkZmE2ODRkZjlkZDk0NGNiYzYxNzdjMmQ2ODcyNDBmNjBhNDY1NjUu
LmE0ODhjMTkzZTM4NGUwNjUyNzg5NjU4OTBlYmMxZjAzN2U3NTU0NjEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5CkBAIC00Niw2ICs0Niw3
IEBAIGNsYXNzIFdpblBvcnQoV2ViS2l0UG9ydCk6CiAKICAgICBkZWYgYmFzZWxpbmVfc2VhcmNo
X3BhdGgoc2VsZik6CiAgICAgICAgICMgQmFzZWQgb24gY29kZSBmcm9tIG9sZC1ydW4td2Via2l0
LXRlc3RzIGV4cGVjdGVkRGlyZWN0b3J5Rm9yVGVzdCgpCisgICAgICAgICMgRklYTUU6IFRoaXMg
ZG9lcyBub3Qgd29yayBmb3IgV2ViS2l0Mi4KICAgICAgICAgcG9ydF9uYW1lcyA9IFsid2luIiwg
Im1hYy1zbm93bGVvcGFyZCIsICJtYWMiXQogICAgICAgICByZXR1cm4gbWFwKHNlbGYuX3dlYmtp
dF9iYXNlbGluZV9wYXRoLCBwb3J0X25hbWVzKQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3RvX2JlX21vdmVkL2RlZHVwbGljYXRlX3Rlc3RzLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b19iZV9tb3ZlZC9kZWR1cGxpY2F0ZV90ZXN0cy5weQppbmRleCBjZGQwMGNh
NmM3ZTFkMTMwNzE1NTUxNWU1MTAxZjQ0NzllMjM1ZWU0Li45MWMwN2FmZjBiMTBjZjE3YTU4ODNj
MTQ1OTE4NTJiOTNlMWQ0ODNmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
X2JlX21vdmVkL2RlZHVwbGljYXRlX3Rlc3RzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9fYmVfbW92ZWQvZGVkdXBsaWNhdGVfdGVzdHMucHkKQEAgLTU5LDggKzU5LDcgQEAgZGVm
IHBvcnRfZmFsbGJhY2tzKCk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHBsYXRmb3JtcyA9
IHBvcnRfZmFjdG9yeS5nZXQocG9ydF9uYW1lKS5iYXNlbGluZV9zZWFyY2hfcGF0aCgpCiAgICAg
ICAgIGV4Y2VwdCBOb3RJbXBsZW1lbnRlZEVycm9yOgotICAgICAgICAgICAgX2xvZy5lcnJvcigi
JyVzJyBsYWNrcyBiYXNlbGluZV9zZWFyY2hfcGF0aCgpLCBwbGVhc2UgZml4LiIKLSAgICAgICAg
ICAgICAgICAgICAgICAgJSBwb3J0X25hbWUpCisgICAgICAgICAgICBfbG9nLmVycm9yKCInJXMn
IGxhY2tzIGJhc2VsaW5lX3NlYXJjaF9wYXRoKCksIHBsZWFzZSBmaXguIiAlIHBvcnRfbmFtZSkK
ICAgICAgICAgICAgIGZhbGxiYWNrc1twb3J0X25hbWVdID0gW19CQVNFX1BMQVRGT1JNXQogICAg
ICAgICAgICAgY29udGludWUKICAgICAgICAgZmFsbGJhY2tzW3BvcnRfbmFtZV0gPSBbb3MucGF0
aC5iYXNlbmFtZShwKSBmb3IgcCBpbiBwbGF0Zm9ybXNdWzE6XQpAQCAtMjQxLDQgKzI0MCw1IEBA
IGRlZiBkZWR1cGxpY2F0ZShnbG9iX3BhdHRlcm4pOgogICAgICIiIgogICAgIGZhbGxiYWNrcyA9
IHBvcnRfZmFsbGJhY2tzKCkKICAgICBoYXNoZXMgPSBjbHVzdGVyX2ZpbGVfaGFzaGVzKGdsb2Jf
cGF0dGVybikKKyAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCB1c2UgYSBGaWxlU3lzdGVtIG9iamVj
dCBhbmQgbm90IGNhbGwgb3MuZ2V0Y3dkKCkgZGlyZWN0bHkuCiAgICAgcmV0dXJuIGxpc3QoZmlu
ZF9kdXBzKGhhc2hlcywgZmFsbGJhY2tzLCBvcy5nZXRjd2QoKSkpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvbW9ja3Rvb2wucHkKaW5kZXggZTY3ZThmZWE3ZWJlYTU1NjJiNDZkNDgzNjc1NDQz
ZjEwZWQ1NTdiMy4uMTQwOTZkNTkzY2YxOWYyOGFhMDZlMzgzMTVjZGU4MmZkMTdlNjhmZSAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weQpAQCAtNjY1LDcgKzY2NSw3IEBA
IGNsYXNzIE1vY2tTdGF0dXNTZXJ2ZXIob2JqZWN0KToKICMgRklYTUU6IFRoaXMgc2hvdWxkIG5v
dCBpbmhlcml0IGZyb20gTW9jawogIyBGSVhNRTogVW5pZnkgd2l0aCBjb21tb24uc3lzdGVtLmV4
ZWN1dGl2ZV9tb2NrLk1vY2tFeGVjdXRpdmUuCiBjbGFzcyBNb2NrRXhlY3V0aXZlKE1vY2spOgot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzaG91bGRfbG9nLCBzaG91bGRfdGhyb3c9RmFsc2UpOgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzaG91bGRfbG9nPUZhbHNlLCBzaG91bGRfdGhyb3c9RmFs
c2UpOgogICAgICAgICBzZWxmLl9zaG91bGRfbG9nID0gc2hvdWxkX2xvZwogICAgICAgICBzZWxm
Ll9zaG91bGRfdGhyb3cgPSBzaG91bGRfdGhyb3cKIAo=
</data>
<flag name="review"
          id="94538"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="94539"
          type_id="3"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>