<?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>155831</bug_id>
          
          <creation_ts>2016-03-23 21:37:53 -0700</creation_ts>
          <short_desc>Add mocha server tests for /api/build-requests</short_desc>
          <delta_ts>2016-03-24 13:22:15 -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>Perf Dashboard</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>joepeck</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>slewis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1177603</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-23 21:37:53 -0700</bug_when>
    <thetext>Use mocha.js tests for /api/build-requests.

We&apos;ll migrate the existing tests in tests/ once this patch is done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177622</commentid>
    <comment_count>1</comment_count>
      <attachid>274820</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-23 22:27:45 -0700</bug_when>
    <thetext>Created attachment 274820
Adds tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177747</commentid>
    <comment_count>2</comment_count>
      <attachid>274820</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-03-24 12:23:30 -0700</bug_when>
    <thetext>Comment on attachment 274820
Adds tests

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

r=me with fixes

&gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:58
&gt; +    it(&apos;should return build requets associated with a given triggerable with appropraite roots and rootSets&apos;, function (done) {

Typo appropriate

&gt; Websites/perf.webkit.org/server-tests/resources/test-server.conf:53
&gt; +	AddType application/x-httpd-php .php

Weird indentation

&gt; Websites/perf.webkit.org/server-tests/resources/test-server.js:12
&gt; +let TestSever = (new class TestSever {

Typo testserver

&gt; Websites/perf.webkit.org/server-tests/resources/test-server.js:98
&gt; +            fs.mkdirSync(this._dataDirectory, 0o755);

This permission format looks weird

&gt; Websites/perf.webkit.org/server-tests/resources/test-server.js:162
&gt; +            &apos;-c&apos;, `Listen ${port}`,

Why are these all -c ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177756</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-24 13:16:59 -0700</bug_when>
    <thetext>Committed r198642: &lt;http://trac.webkit.org/changeset/198642&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177757</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-24 13:22:15 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 274820 [details]
&gt; Adds tests
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=274820&amp;action=review
&gt; 
&gt; r=me with fixes
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:58
&gt; &gt; +    it(&apos;should return build requets associated with a given triggerable with appropraite roots and rootSets&apos;, function (done) {
&gt; 
&gt; Typo appropriate

Fixed.

&gt; &gt; Websites/perf.webkit.org/server-tests/resources/test-server.conf:53
&gt; &gt; +	AddType application/x-httpd-php .php
&gt; 
&gt; Weird indentation

Fixed.

&gt; &gt; Websites/perf.webkit.org/server-tests/resources/test-server.js:12
&gt; &gt; +let TestSever = (new class TestSever {
&gt; 
&gt; Typo testserver

Fixed.

&gt; &gt; Websites/perf.webkit.org/server-tests/resources/test-server.js:98
&gt; &gt; +            fs.mkdirSync(this._dataDirectory, 0o755);
&gt; 
&gt; This permission format looks weird

o is for octal.

&gt; &gt; Websites/perf.webkit.org/server-tests/resources/test-server.js:162
&gt; &gt; +            &apos;-c&apos;, `Listen ${port}`,
&gt; 
&gt; Why are these all -c ?

-c is used to specify a configuration line.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274820</attachid>
            <date>2016-03-23 22:27:45 -0700</date>
            <delta_ts>2016-03-24 12:23:30 -0700</delta_ts>
            <desc>Adds tests</desc>
            <filename>bug-155831-20160323222747.patch</filename>
            <type>text/plain</type>
            <size>39617</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMTk4NjE1KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDgwIEBACisyMDE2LTAzLTIzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIEFkZCBtb2NoYSBzZXJ2ZXIgdGVzdHMgZm9yIC9hcGkvYnVpbGQtcmVxdWVzdHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTgzMQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRo
ZSBuZXcgbW9jaGEuanMgYmFzZWQgc2VydmVyLXRlc3RzIGZvciAvYXBpL2J1aWxkLXJlcXVlc3Rz
LiBUaGUgbmV3IGhhcm5lc3MgYXV0b21hdGljYWxseToKKyAgICAgICAgIC0gc3RhcnRzIGEgbmV3
IEFwYWNoZSBpbnN0YW5jZQorICAgICAgICAgLSBzd2l0Y2hlcyB0aGUgZGF0YWJhc2UgZHVyaW5n
IHRlc3RpbmcgdmlhIHNldHRpbmcgYW4gZW52aXJvbm1lbnRhbCB2YXJpYWJsZSAKKyAgICAgICAg
IC0gYmFja3VwcyBhbmQgcmVzdG9yZXMgcHVibGljL2RhdGEgZGlyZWN0b3J5IGR1cmluZyB0ZXN0
aW5nCisKKyAgICAgICAgQXMgYSByZXN1bHQsIGRldmVsb3BlciBubyBsb25nZXIgaGFzIHRvIG1h
bnVhbGx5IHNldHVwIEFwYWNoZSwgZWRpdCBjb25maWcuanNvbiBtYW51YWxseSB0byB1c2UKKyAg
ICAgICAgYSB0ZXN0aW5nIGRhdGFiYXNlLCBvciBydW4gL2FwaS9tYW5pZmVzdC5waHAgdG8gcmUt
Z2VuZXJhdGUgdGhlIG1hbmlmZXN0IGZpbGUgYWZ0ZXIgdGVzdGluZy4KKworICAgICAgICBUaGlz
IHBhdGNoIGFsc28gbWFrZXMgSUQgcmVzb2x1dGlvbiBvcHRpb25hbCBvbiAvYXBpL2J1aWxkLXJl
cXVlc3RzIHNvIHRoYXQgdjMgbW9kZWwgYmFzZWQgc3luY2luZworICAgICAgICBzY3JpcHRzIGNh
biByZS11c2UgdGhlIHNhbWUgY29kZSBhcyB0aGUgdjMgVUkgdG8gcHJvY2VzcyB0aGUgSlNPTi4g
dG9vbHMvc3luYy13aXRoLWJ1aWxkYm90LnB5IGhhcworICAgICAgICBiZWVuIG1vZGlmaWVkIHRv
IHVzZSB0aGlzIG9wdGlvbiAodXNlTGVnYWN5SWRSZXNvbHV0aW9uKS4KKworICAgICAgICAqIGNv
bmZpZy5qc29uOiBBZGRlZCBjb25maWd1cmF0aW9ucyBmb3IgdGhlIHRlc3QgaHR0cGQgc2VydmVy
LgorICAgICAgICAqIGluaXQtZGF0YWJhc2Uuc3FsOiBEb24ndCBlcnJvciB3aGVuIHRhYmxlcyBh
bmQgdHlwZXMgZG9uJ3QgZXhpc3QgKHdoZW4gZGF0YWJhc2UgaXMgZW1wdHkpLgorICAgICAgICAq
IHB1YmxpYy9hcGkvYnVpbGQtcmVxdWVzdHMucGhwOgorICAgICAgICAobWFpbik6IE1hZGUgdGhl
IElEIHJlc29sdXRpb24gb3B0aW9uYWwgd2l0aCB1c2VMZWdhY3lJZFJlc29sdXRpb24uIEFsc28g
cmVtb3ZlZCAidXBkYXRlcyIgZnJvbSB0aGUKKyAgICAgICAgcmVzdWx0cyBKU09OIHNpbmNlIGl0
J3MgbmV2ZXIgdXNlZC4KKyAgICAgICAgKiBwdWJsaWMvaW5jbHVkZS9idWlsZC1yZXF1ZXN0cy1m
ZXRjaGVyLnBocDoKKyAgICAgICAgKEJ1aWxkUmVxdWVzdHNGZXRjaGVyOjpfX2NvbnN0cnVjdCk6
CisgICAgICAgIChCdWlsZFJlcXVlc3RzRmV0Y2hlcjo6ZmV0Y2hfcm9vdHNfZm9yX3NldF9pZl9u
ZWVkZWQpOiBGaXhlZCB0aGUgYnVnIHRoYXQgd2Ugd291bGQgaW5jbHVkZSB0aGUgc2FtZQorICAg
ICAgICBjb21taXQgbXVsdGlwbGUgdGltZXMgZm9yIGVhY2ggcm9vdCBzZXQuCisgICAgICAgICog
cHVibGljL2luY2x1ZGUvZGIucGhwOgorICAgICAgICAoY29uZmlnKTogSWYgcHJlc2VudCwgdXNl
IE9SR19XRUJLSVRfUEVSRl9DT05GSUdfUEFUSCBpbnN0ZWFkIG9mIFdlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9jb25maWcuanNvbi4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHM6IEFkZGVkLgorICAg
ICAgICAqIHNlcnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanM6IEFkZGVkLiBU
ZXN0cyBmb3IgL2FwaS9idWlsZC1yZXF1ZXN0cy4KKyAgICAgICAgKC5hZGRNb2NrRGF0YSk6Cisg
ICAgICAgICogc2VydmVyLXRlc3RzL3Jlc291cmNlczogQWRkZWQuCisgICAgICAgICogc2VydmVy
LXRlc3RzL3Jlc291cmNlcy90ZXN0LXNlcnZlci5jb25mOiBBZGRlZC4gQXBhY2hlIGNvbmZpZ3Vy
YXRpb24gZmlsZSBmb3IgdGVzdGluZy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcmVzb3VyY2Vz
L3Rlc3Qtc2VydmVyLmpzOiBBZGRlZC4KKyAgICAgICAgKFRlc3RTZXZlcik6IEFkZGVkLgorICAg
ICAgICAoVGVzdFNldmVyLnByb3RvdHlwZS5zdGFydCk6IEFkZGVkLgorICAgICAgICAoVGVzdFNl
dmVyLnByb3RvdHlwZS5zdG9wKTogQWRkZWQuCisgICAgICAgIChUZXN0U2V2ZXIucHJvdG90eXBl
LnJlbW90ZUFQSSk6IEFkZGVkLiBDb25maWd1cmVzIFJlbW90ZUFQSSB0byBiZSB1c2VkIHdpdGgg
dGhlIHRlc3Qgc2V2ZXIuCisgICAgICAgIChUZXN0U2V2ZXIucHJvdG90eXBlLmRhdGFiYXNlKTog
QWRkZWQuIFJldHVybnMgRGF0YWJhc2UgY29uZmlndXJlZCB0byB1c2UgdGhlIHRlc3QgZGF0YWJh
c2UuCisgICAgICAgIChUZXN0U2V2ZXIucHJvdG90eXBlLl9jb25zdHJ1Y3RUZXN0Q29uZmlnKTog
Q3JlYXRlcyBjb25maWcuanNvbiBmb3IgdGVzdGluZy4gVGhlIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5
CisgICAgICAgIF9zdGFydCBhbmQgZGIucGhwJ3MgY29uZmlnKCkgcmVhZHMgaXQgZnJvbSB0aGUg
ZW52aXJvbm1lbnRhbCB2YXJpYWJsZTogT1JHX1dFQktJVF9QRVJGX0NPTkZJR19QQVRILgorICAg
ICAgICAoVGVzdFNldmVyLnByb3RvdHlwZS5fZW5zdXJlRGF0YURpcmVjdG9yeSk6IFJlbmFtZXMg
cHVibGljL2RhdGEgdG8gcHVibGljL29yaWdpbmFsLWRhdGEgaWYgZXhpc3RzLAorICAgICAgICBh
bmQgY3JlYXRlcyBhIG5ldyBlbXB0eSBwdWJsaWMvZGF0YS4KKyAgICAgICAgKFRlc3RTZXZlci5w
cm90b3R5cGUuX3Jlc3RvcmVEYXRhRGlyZWN0b3J5KTogRGVsZXRlcyBwdWJsaWMvZGF0YSBhbmQg
cmVuYW1lcyBwdWJsaWMvb3JpZ2luYWwtZGF0YQorICAgICAgICBiYWNrIHRvIHB1YmxpYy9kYXRh
LgorICAgICAgICAoVGVzdFNldmVyLnByb3RvdHlwZS5fZW5zdXJlVGVzdERhdGFiYXNlKTogRHJv
cHMgdGhlIHRlc3QgZGF0YWJhc2UgaWYgZXhpc3RzIGFuZCBjcmVhdGVzIGEgbmV3IG9uZS4KKyAg
ICAgICAgKFRlc3RTZXZlci5wcm90b3R5cGUuaW5pdERhdGFiYXNlKTogUnVuIGluaXQtZGF0YWJh
c2Uuc3FsIHRvIHN0YXJ0IGVhY2ggdGVzdCB3aXRoIGEgY29uc2lzdGVudCBzdGF0ZS4KKyAgICAg
ICAgKFRlc3RTZXZlci5wcm90b3R5cGUuX2V4ZWN1dGVQZ3NxbENvbW1hbmQpOiBFeGVjdXRlcyBh
IHBvc3RncmVzIGNvbW1hbmQgbGluZSB0b29sIHN1Y2ggYXMgcHNxbC4KKyAgICAgICAgKFRlc3RT
ZXZlci5wcm90b3R5cGUuX2RldGVybWluZVBnc3FsRGlyZWN0b3J5KTogRmluZHMgdGhlIGRpcmVj
dG9yeSB0aGF0IGNvbnRhaW5zIHBzcWwuCisgICAgICAgIChUZXN0U2V2ZXIucHJvdG90eXBlLl9z
dGFydEFwYWNoZSk6IFN0YXJ0cyBhbiBBcGFjaGUgaW5zdGFuY2UgZm9yIHRlc3RpbmcuCisgICAg
ICAgIChUZXN0U2V2ZXIucHJvdG90eXBlLl9zdG9wQXBhY2hlKTogU3RvcHMgdGhlIEFwYWNoZSBp
bnN0YW5jZSBmb3IgdGVzdGluZy4KKyAgICAgICAgKFRlc3RTZXZlci5wcm90b3R5cGUuX3dhaXRG
b3JQaWQpOiBXYWl0cyBmb3IgdGhlIEFwYWNoZSBwaWQgZmlsZSB0byBhcHBlYXIgb3IgZGlzYXBw
ZWFyLgorICAgICAgICAoYmVmb3JlKTogU3RhcnQgdGhlIHRlc3Qgc2VydmVyIGF0IHRoZSBiZWdp
bm5pbmcuCisgICAgICAgIChiZWZvcmVFYWNoKTogUmUtaW5pdGlhbGl6ZSBhbGwgdGFibGVzIGJl
Zm9yZSBlYWNoIHRlc3QuCisgICAgICAgIChhZnRlcik6IFN0b3AgdGhlIHRlc3Qgc2VydmVyIGF0
IHRoZSBlbmQuCisgICAgICAgICogdG9vbHMvanMvY29uZmlnLmpzOgorICAgICAgICAoQ29uZmln
LnByb3RvdHlwZS5wYXRoKToKKyAgICAgICAgKENvbmZpZy5wcm90b3R5cGUuc2VydmVyUm9vdCk6
IEFkZGVkLiBUaGUgcGF0aCB0byBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljLy4KKyAg
ICAgICAgKENvbmZpZy5wcm90b3R5cGUucGF0aEZyb21Sb290KTogQWRkZWQuIFJlc29sdmVzIGEg
cGF0aCBmcm9tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy4KKyAgICAgICAgKiB0b29scy9qcy9k
YXRhYmFzZS5qczoKKyAgICAgICAgKERhdGFiYXNlKTogTm93IG9wdGlvbmFsbHkgdGFrZXMgdGhl
IGRhdGFiYXNlIG5hbWUgdG8gdXNlIGEgZGlmZmVyZW50IGRhdGFiYXNlIGR1cmluZyB0ZXN0aW5n
LgorICAgICAgICAoRGF0YWJhc2UucHJvdG90eXBlLmNvbm5lY3QpOgorICAgICAgICAoRGF0YWJh
c2UucHJvdG90eXBlLnF1ZXJ5KTogQWRkZWQuCisgICAgICAgIChEYXRhYmFzZS5wcm90b3R5cGUu
aW5zZXJ0KTogQWRkZWQuCisgICAgICAgICh0YWJsZVRvUHJlZml4TWFwKTogTWFwcyB0YWJsZSBu
YW1lIHRvIGl0cyBwcmVmaXguIFVzZWQgYnkgRGF0YWJhc2UuaW5zZXJ0LgorICAgICAgICAqIHRv
b2xzL2pzL3JlbW90ZS5qczogQWRkZWQuCisgICAgICAgIChSZW1vdGVBUEkpOiBBZGRlZC4gVGhp
cyBpcyBub2RlLmpzIGVxdWl2YWxlbnQgb2YgUmVtb3RlQVBJIGluIHB1YmxpYy92My9yZW1vdGUu
anMuCisgICAgICAgIChSZW1vdGVBUEkucHJvdG90eXBlLmNvbmZpZ3VyZSk6IEFkZGVkLgorICAg
ICAgICAoUmVtb3RlQVBJLnByb3RvdHlwZS5mZXRjaEpTT04pOiBBZGRlZC4KKyAgICAgICAgKFJl
bW90ZUFQSS5wcm90b3R5cGUuZmV0Y2hKU09OV2l0aFN0YXR1cyk6IEFkZGVkLgorICAgICAgICAo
UmVtb3RlQVBJLnByb3RvdHlwZS5zZW5kSHR0cFJlcXVlc3QpOiBBZGRlZC4KKyAgICAgICAgKiB0
b29scy9zeW5jLXdpdGgtYnVpbGRib3QucHk6CisgICAgICAgIChtYWluKTogVXNlIHVzZUxlZ2Fj
eUlkUmVzb2x1dGlvbiBhcyB0aGlzIHNjcmlwdCByZWxpZXMgb24gdGhlIGxlZ2FjeSBiZWhhdmlv
ci4KKyAgICAgICAgKiB1bml0LXRlc3RzL2NoZWNrY29uZmlnLmpzOiBwZyB3YXMgbmV2ZXIgZGly
ZWN0bHkgdXNlZCBpbiB0aGlzIHRlc3QuCisKIDIwMTYtMDMtMjMgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRGVsZXRlIGEgZmlsZSB0aGF0IHdhcyBzdXBwb3Nl
ZCB0byBiZSByZW1vdmVkIGluIHIxOTg2MTQgZm9yIHJlYWwuCkluZGV4OiBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvY29uZmlnLmpzb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL2NvbmZpZy5qc29uCShyZXZpc2lvbiAxOTg2MTUpCisrKyBXZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvY29uZmlnLmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTE0LDkgKzE0LDE0IEBACiAg
ICAgIm1haW50ZW5hbmNlTW9kZSI6IGZhbHNlLAogICAgICJtYWludGVuYW5jZURpcmVjdG9yeSI6
ICJyZXBvcnRlZC8iLAogICAgICJ0ZXN0U2VydmVyIjogewotICAgICAgICAiaG9zdG5hbWUiOiAi
bG9jYWxob3N0IiwKLSAgICAgICAgInBvcnQiOiA4MAorICAgICAgICAicG9ydCI6IDgxODAsCisg
ICAgICAgICJjb25maWciOiAiL3RtcC9vcmcud2Via2l0LnBlcmYudGVzdC1jb25maWcuanNvbiIs
CisgICAgICAgICJodHRwZENvbmZpZyI6ICJzZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtc2Vy
dmVyLmNvbmYiLAorICAgICAgICAiaHR0cGRQSUQiOiAiL3RtcC9vcmcud2Via2l0LnBlcmYudGVz
dC1odHRwZC5waWQiLAorICAgICAgICAiaHR0cGRFcnJvckxvZyI6ICJzZXJ2ZXItdGVzdHMvcmVz
b3VyY2VzL3Rlc3Qtc2VydmVyLmxvZyIsCisgICAgICAgICJodHRwZE11dGV4RGlyIjogIi90bXAv
b3JnLndlYmtpdC5wZXJmLnRlc3RzLyIKICAgICB9LAorICAgICJ0ZXN0RGF0YWJhc2VOYW1lIjog
InRlc3QtZGIiLAogICAgICJjbHVzdGVyU3RhcnQiOiBbMjAwMCwgMSwgMSwgMCwgMF0sCiAgICAg
ImNsdXN0ZXJTaXplIjogWzAsIDIsIDBdLAogICAgICJjYWNoZURpcmVjdG9yeSI6ICJwdWJsaWMv
ZGF0YS9yZW1vdGUtY2FjaGUvIiwKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0
LWRhdGFiYXNlLnNxbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5p
dC1kYXRhYmFzZS5zcWwJKHJldmlzaW9uIDE5ODYxNSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9pbml0LWRhdGFiYXNlLnNxbAkod29ya2luZyBjb3B5KQpAQCAtMSwzNCArMSwzNCBAQAot
RFJPUCBUQUJMRSBydW5faXRlcmF0aW9ucyBDQVNDQURFOwotRFJPUCBUQUJMRSB0ZXN0X3J1bnMg
Q0FTQ0FERTsKLURST1AgVEFCTEUgdGVzdF9jb25maWd1cmF0aW9ucyBDQVNDQURFOwotRFJPUCBU
WVBFIHRlc3RfY29uZmlndXJhdGlvbl90eXBlIENBU0NBREU7Ci1EUk9QIFRBQkxFIGFnZ3JlZ2F0
b3JzIENBU0NBREU7Ci1EUk9QIFRBQkxFIGJ1aWxkcyBDQVNDQURFOwotRFJPUCBUQUJMRSBjb21t
aXR0ZXJzIENBU0NBREU7Ci1EUk9QIFRBQkxFIGNvbW1pdHMgQ0FTQ0FERTsKLURST1AgVEFCTEUg
YnVpbGRfY29tbWl0cyBDQVNDQURFOwotRFJPUCBUQUJMRSBidWlsZF9zbGF2ZXMgQ0FTQ0FERTsK
LURST1AgVEFCTEUgYnVpbGRlcnMgQ0FTQ0FERTsKLURST1AgVEFCTEUgcmVwb3NpdG9yaWVzIENB
U0NBREU7Ci1EUk9QIFRBQkxFIHBsYXRmb3JtcyBDQVNDQURFOwotRFJPUCBUQUJMRSB0ZXN0X21l
dHJpY3MgQ0FTQ0FERTsKLURST1AgVEFCTEUgdGVzdHMgQ0FTQ0FERTsKLURST1AgVEFCTEUgcmVw
b3J0cyBDQVNDQURFOwotRFJPUCBUQUJMRSB0cmFja2VyX3JlcG9zaXRvcmllcyBDQVNDQURFOwot
RFJPUCBUQUJMRSBidWdfdHJhY2tlcnMgQ0FTQ0FERTsKLURST1AgVEFCTEUgdGFza19jb21taXRz
IENBU0NBREU7Ci1EUk9QIFRBQkxFIGFuYWx5c2lzX3Rhc2tzIENBU0NBREU7Ci1EUk9QIFRBQkxF
IGFuYWx5c2lzX3N0cmF0ZWdpZXMgQ0FTQ0FERTsKLURST1AgVFlQRSBhbmFseXNpc190YXNrX3Jl
c3VsdF90eXBlIENBU0NBREU7Ci1EUk9QIFRBQkxFIGJ1aWxkX3RyaWdnZXJhYmxlcyBDQVNDQURF
OwotRFJPUCBUQUJMRSB0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucyBDQVNDQURFOwotRFJPUCBU
QUJMRSB0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMgQ0FTQ0FERTsKLURST1AgVEFCTEUgYnVncyBD
QVNDQURFOwotRFJPUCBUQUJMRSBhbmFseXNpc190ZXN0X2dyb3VwcyBDQVNDQURFOwotRFJPUCBU
QUJMRSByb290X3NldHMgQ0FTQ0FERTsKLURST1AgVEFCTEUgcm9vdHMgQ0FTQ0FERTsKLURST1Ag
VEFCTEUgYnVpbGRfcmVxdWVzdHMgQ0FTQ0FERTsKLURST1AgVFlQRSBidWlsZF9yZXF1ZXN0X3N0
YXR1c190eXBlIENBU0NBREU7CitEUk9QIFRBQkxFIElGIEVYSVNUUyBydW5faXRlcmF0aW9ucyBD
QVNDQURFOworRFJPUCBUQUJMRSBJRiBFWElTVFMgdGVzdF9ydW5zIENBU0NBREU7CitEUk9QIFRB
QkxFIElGIEVYSVNUUyB0ZXN0X2NvbmZpZ3VyYXRpb25zIENBU0NBREU7CitEUk9QIFRZUEUgSUYg
RVhJU1RTIHRlc3RfY29uZmlndXJhdGlvbl90eXBlIENBU0NBREU7CitEUk9QIFRBQkxFIElGIEVY
SVNUUyBhZ2dyZWdhdG9ycyBDQVNDQURFOworRFJPUCBUQUJMRSBJRiBFWElTVFMgYnVpbGRzIENB
U0NBREU7CitEUk9QIFRBQkxFIElGIEVYSVNUUyBjb21taXR0ZXJzIENBU0NBREU7CitEUk9QIFRB
QkxFIElGIEVYSVNUUyBjb21taXRzIENBU0NBREU7CitEUk9QIFRBQkxFIElGIEVYSVNUUyBidWls
ZF9jb21taXRzIENBU0NBREU7CitEUk9QIFRBQkxFIElGIEVYSVNUUyBidWlsZF9zbGF2ZXMgQ0FT
Q0FERTsKK0RST1AgVEFCTEUgSUYgRVhJU1RTIGJ1aWxkZXJzIENBU0NBREU7CitEUk9QIFRBQkxF
IElGIEVYSVNUUyByZXBvc2l0b3JpZXMgQ0FTQ0FERTsKK0RST1AgVEFCTEUgSUYgRVhJU1RTIHBs
YXRmb3JtcyBDQVNDQURFOworRFJPUCBUQUJMRSBJRiBFWElTVFMgdGVzdF9tZXRyaWNzIENBU0NB
REU7CitEUk9QIFRBQkxFIElGIEVYSVNUUyB0ZXN0cyBDQVNDQURFOworRFJPUCBUQUJMRSBJRiBF
WElTVFMgcmVwb3J0cyBDQVNDQURFOworRFJPUCBUQUJMRSBJRiBFWElTVFMgdHJhY2tlcl9yZXBv
c2l0b3JpZXMgQ0FTQ0FERTsKK0RST1AgVEFCTEUgSUYgRVhJU1RTIGJ1Z190cmFja2VycyBDQVND
QURFOworRFJPUCBUQUJMRSBJRiBFWElTVFMgdGFza19jb21taXRzIENBU0NBREU7CitEUk9QIFRB
QkxFIElGIEVYSVNUUyBhbmFseXNpc190YXNrcyBDQVNDQURFOworRFJPUCBUQUJMRSBJRiBFWElT
VFMgYW5hbHlzaXNfc3RyYXRlZ2llcyBDQVNDQURFOworRFJPUCBUWVBFIElGIEVYSVNUUyBhbmFs
eXNpc190YXNrX3Jlc3VsdF90eXBlIENBU0NBREU7CitEUk9QIFRBQkxFIElGIEVYSVNUUyBidWls
ZF90cmlnZ2VyYWJsZXMgQ0FTQ0FERTsKK0RST1AgVEFCTEUgSUYgRVhJU1RTIHRyaWdnZXJhYmxl
X2NvbmZpZ3VyYXRpb25zIENBU0NBREU7CitEUk9QIFRBQkxFIElGIEVYSVNUUyB0cmlnZ2VyYWJs
ZV9yZXBvc2l0b3JpZXMgQ0FTQ0FERTsKK0RST1AgVEFCTEUgSUYgRVhJU1RTIGJ1Z3MgQ0FTQ0FE
RTsKK0RST1AgVEFCTEUgSUYgRVhJU1RTIGFuYWx5c2lzX3Rlc3RfZ3JvdXBzIENBU0NBREU7CitE
Uk9QIFRBQkxFIElGIEVYSVNUUyByb290X3NldHMgQ0FTQ0FERTsKK0RST1AgVEFCTEUgSUYgRVhJ
U1RTIHJvb3RzIENBU0NBREU7CitEUk9QIFRBQkxFIElGIEVYSVNUUyBidWlsZF9yZXF1ZXN0cyBD
QVNDQURFOworRFJPUCBUWVBFIElGIEVYSVNUUyBidWlsZF9yZXF1ZXN0X3N0YXR1c190eXBlIENB
U0NBREU7CiAKIAogQ1JFQVRFIFRBQkxFIHBsYXRmb3JtcyAoCkluZGV4OiBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL2FwaS9idWlsZC1yZXF1ZXN0cy5waHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvYnVpbGQtcmVxdWVzdHMucGhwCShy
ZXZpc2lvbiAxOTg2MTUpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS9i
dWlsZC1yZXF1ZXN0cy5waHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDExICszMCwxMSBAQCBmdW5j
dGlvbiBtYWluKCRpZCwgJHBhdGgsICRwb3N0X2RhdGEpIHsKICAgICAgICAgJHJlcXVlc3RzX2Zl
dGNoZXItPmZldGNoX2luY29tcGxldGVfcmVxdWVzdHNfZm9yX3RyaWdnZXJhYmxlKCR0cmlnZ2Vy
YWJsZVsndHJpZ2dlcmFibGVfaWQnXSk7CiAgICAgfQogCisgICAgJHJlc29sdmVfaWQgPSBhcnJh
eV9nZXQoJF9HRVQsICd1c2VMZWdhY3lJZFJlc29sdXRpb24nKTsKICAgICBleGl0X3dpdGhfc3Vj
Y2VzcyhhcnJheSgKLSAgICAgICAgJ2J1aWxkUmVxdWVzdHMnID0+ICRyZXF1ZXN0c19mZXRjaGVy
LT5yZXN1bHRzX3dpdGhfcmVzb2x2ZWRfaWRzKCksCisgICAgICAgICdidWlsZFJlcXVlc3RzJyA9
PiAkcmVzb2x2ZV9pZCA/ICRyZXF1ZXN0c19mZXRjaGVyLT5yZXN1bHRzX3dpdGhfcmVzb2x2ZWRf
aWRzKCkgOiAkcmVxdWVzdHNfZmV0Y2hlci0+cmVzdWx0cygpLAogICAgICAgICAncm9vdFNldHMn
ID0+ICRyZXF1ZXN0c19mZXRjaGVyLT5yb290X3NldHMoKSwKICAgICAgICAgJ3Jvb3RzJyA9PiAk
cmVxdWVzdHNfZmV0Y2hlci0+cm9vdHMoKSwKLSAgICAgICAgJ3VwZGF0ZXMnID0+ICR1cGRhdGVz
LAogICAgICkpOwogfQogCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2lu
Y2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hlci5waHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2J1aWxkLXJlcXVlc3RzLWZldGNoZXIucGhw
CShyZXZpc2lvbiAxOTg2MTUpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2lu
Y2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hlci5waHAJKHdvcmtpbmcgY29weSkKQEAgLTcsNiAr
Nyw3IEBAIGNsYXNzIEJ1aWxkUmVxdWVzdHNGZXRjaGVyIHsKICAgICAgICAgJHRoaXMtPmRiID0g
JGRiOwogICAgICAgICAkdGhpcy0+cm93cyA9IG51bGw7CiAgICAgICAgICR0aGlzLT5yb290X3Nl
dHMgPSBhcnJheSgpOworICAgICAgICAkdGhpcy0+cm9vdHNfYnlfaWQgPSBhcnJheSgpOwogICAg
ICAgICAkdGhpcy0+cm9vdHMgPSBhcnJheSgpOwogICAgICAgICAkdGhpcy0+cm9vdF9zZXRzX2J5
X2lkID0gYXJyYXkoKTsKICAgICB9CkBAIC05NiwxMSArOTcsMTggQEAgY2xhc3MgQnVpbGRSZXF1
ZXN0c0ZldGNoZXIgewogICAgICAgICAgICAgJHJldmlzaW9uID0gJHJvd1snY29tbWl0X3Jldmlz
aW9uJ107CiAgICAgICAgICAgICAkY29tbWl0X3RpbWUgPSAkcm93Wydjb21taXRfdGltZSddOwog
ICAgICAgICAgICAgYXJyYXlfcHVzaCgkcm9vdF9pZHMsICRyb3dbJ2NvbW1pdF9pZCddKTsKKwor
ICAgICAgICAgICAgJHJvb3RfaWQgPSAkcm93Wydjb21taXRfaWQnXTsKKyAgICAgICAgICAgIGlm
IChhcnJheV9rZXlfZXhpc3RzKCRyb290X2lkLCAkdGhpcy0+cm9vdHNfYnlfaWQpKQorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworCiAgICAgICAgICAgICBhcnJheV9wdXNoKCR0aGlzLT5yb290
cywgYXJyYXkoCi0gICAgICAgICAgICAgICAgJ2lkJyA9PiAkcm93Wydjb21taXRfaWQnXSwKKyAg
ICAgICAgICAgICAgICAnaWQnID0+ICRyb290X2lkLAogICAgICAgICAgICAgICAgICdyZXBvc2l0
b3J5JyA9PiAkcmVwb3NpdG9yeV9pZCwKICAgICAgICAgICAgICAgICAncmV2aXNpb24nID0+ICRy
ZXZpc2lvbiwKICAgICAgICAgICAgICAgICAndGltZScgPT4gRGF0YWJhc2U6OnRvX2pzX3RpbWUo
JGNvbW1pdF90aW1lKSkpOworCisgICAgICAgICAgICAkdGhpcy0+cm9vdHNfYnlfaWRbJHJvb3Rf
aWRdID0gVFJVRTsKICAgICAgICAgfQogCiAgICAgICAgICR0aGlzLT5yb290X3NldHNfYnlfaWRb
JHJvb3Rfc2V0X2lkXSA9IFRSVUU7CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL2luY2x1ZGUvZGIucGhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvaW5jbHVkZS9kYi5waHAJKHJldmlzaW9uIDE5ODYxNSkKKysrIFdlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9kYi5waHAJKHdvcmtpbmcgY29weSkKQEAgLTI3
LDEyICsyNywxNiBAQCBmdW5jdGlvbiBhcnJheV9zZXRfZGVmYXVsdCgmJGFycmF5LCAka2V5CiAK
ICRfY29uZmlnID0gTlVMTDsKIAotZGVmaW5lKCdDT05GSUdfRElSJywgZGlybmFtZShfX0ZJTEVf
XykgLiAnLy4uLy4uLycpOworZGVmaW5lKCdDT05GSUdfRElSJywgcmVhbHBhdGgoZGlybmFtZShf
X0ZJTEVfXykgLiAnLy4uLy4uLycpKTsKIAogZnVuY3Rpb24gY29uZmlnKCRrZXksICRkZWZhdWx0
ID0gTlVMTCkgewogICAgIGdsb2JhbCAkX2NvbmZpZzsKLSAgICBpZiAoISRfY29uZmlnKQotICAg
ICAgICAkX2NvbmZpZyA9IGpzb25fZGVjb2RlKGZpbGVfZ2V0X2NvbnRlbnRzKENPTkZJR19ESVIg
LiAnY29uZmlnLmpzb24nKSwgdHJ1ZSk7CisgICAgaWYgKCEkX2NvbmZpZykgeworICAgICAgICAk
ZmlsZV9wYXRoID0gZ2V0ZW52KCdPUkdfV0VCS0lUX1BFUkZfQ09ORklHX1BBVEgnKTsKKyAgICAg
ICAgaWYgKCEkZmlsZV9wYXRoKQorICAgICAgICAgICAgJGZpbGVfcGF0aCA9IENPTkZJR19ESVIg
LiAnY29uZmlnLmpzb24nOworICAgICAgICAkX2NvbmZpZyA9IGpzb25fZGVjb2RlKGZpbGVfZ2V0
X2NvbnRlbnRzKCRmaWxlX3BhdGgpLCB0cnVlKTsKKyAgICB9CiAgICAgcmV0dXJuIGFycmF5X2dl
dCgkX2NvbmZpZywgJGtleSwgJGRlZmF1bHQpOwogfQogCkluZGV4OiBXZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1y
ZXF1ZXN0cy10ZXN0cy5qcwkocmV2aXNpb24gMCkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTc0IEBACisndXNlIHN0cmljdCc7CisKK2xldCBhc3NlcnQgPSByZXF1aXJl
KCdhc3NlcnQnKTsKK2xldCBUZXN0U2VydmVyID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvdGVzdC1z
ZXJ2ZXIuanMnKTsKKworZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAo
KSB7CisgICAgdGhpcy50aW1lb3V0KDEwMDAwKTsKKworICAgIGl0KCdzaG91bGQgcmV0dXJuICJU
cmlnZ2VyYWJsZU5vdEZvdW5kIiB3aGVuIHRoZSBkYXRhYmFzZSBpcyBlbXB0eScsIGZ1bmN0aW9u
IChkb25lKSB7CisgICAgICAgIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZmV0Y2hKU09OKCcvYXBp
L2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpLnRoZW4oZnVuY3Rpb24gKGNvbnRlbnQpIHsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0dXMnXSwgJ1RyaWdnZXJhYmxl
Tm90Rm91bmQnKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9uZSk7
CisgICAgfSk7CisKKyAgICBpdCgnc2hvdWxkIHJldHVybiBhbiBlbXB0eSBsaXN0IHdoZW4gdGhl
cmUgYXJlIG5vIGJ1aWxkIHJlcXVlc3RzJywgZnVuY3Rpb24gKGRvbmUpIHsKKyAgICAgICAgVGVz
dFNlcnZlci5kYXRhYmFzZSgpLmNvbm5lY3QoKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuaW5zZXJ0KCdidWlsZF90cmlnZ2VyYWJs
ZXMnLCB7bmFtZTogJ2J1aWxkLXdlYmtpdCd9KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5mZXRjaEpTT04o
Jy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CisgICAgICAgIH0pLnRoZW4oZnVu
Y3Rpb24gKGNvbnRlbnQpIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXSwgW10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydy
b290U2V0cyddLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ3Jv
b3RzJ10sIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29u
dGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAncm9vdFNldHMnLCAncm9vdHMnLCAnc3Rh
dHVzJ10pOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9KS5jYXRjaChkb25lKTsKKyAg
ICB9KTsKKworICAgIGZ1bmN0aW9uIGFkZE1vY2tEYXRhKGRiKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfdHJpZ2dlcmFi
bGVzJywge2lkOiAxLCBuYW1lOiAnYnVpbGQtd2Via2l0J30pLAorICAgICAgICAgICAgZGIuaW5z
ZXJ0KCdyZXBvc2l0b3JpZXMnLCB7aWQ6IDksIG5hbWU6ICdPUyBYJ30pLAorICAgICAgICAgICAg
ZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7aWQ6IDExLCBuYW1lOiAnV2ViS2l0J30pLAorICAg
ICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywge2lkOiA4NzgzMiwgcmVwb3NpdG9yeTogOSwg
cmV2aXNpb246ICcxMC4xMSAxNUEyODQnfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1p
dHMnLCB7aWQ6IDkzMTE2LCByZXBvc2l0b3J5OiAxMSwgcmV2aXNpb246ICcxOTE2MjInLCB0aW1l
OiBuZXcgRGF0ZSgxNDQ1OTQ1ODE2ODc4KX0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21t
aXRzJywge2lkOiA5NjMzNiwgcmVwb3NpdG9yeTogMTEsIHJldmlzaW9uOiAnMTkyNzM2JywgdGlt
ZTogbmV3IERhdGUoMTQ0ODIyNTMyNTY1MCl9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgncGxh
dGZvcm1zJywge2lkOiA2NSwgbmFtZTogJ3NvbWUgcGxhdGZvcm0nfSksCisgICAgICAgICAgICBk
Yi5pbnNlcnQoJ3Rlc3RzJywge2lkOiAyMDAsIG5hbWU6ICdzb21lIHRlc3QnfSksCisgICAgICAg
ICAgICBkYi5pbnNlcnQoJ3Rlc3RfbWV0cmljcycsIHtpZDogMzAwLCB0ZXN0OiAyMDAsIG5hbWU6
ICdzb21lIG1ldHJpYyd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgncm9vdF9zZXRzJywge2lk
OiA0MDF9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgncm9vdHMnLCB7c2V0OiA0MDEsIGNvbW1p
dDogODc4MzJ9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgncm9vdHMnLCB7c2V0OiA0MDEsIGNv
bW1pdDogOTMxMTZ9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgncm9vdF9zZXRzJywge2lkOiA0
MDJ9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgncm9vdHMnLCB7c2V0OiA0MDIsIGNvbW1pdDog
ODc4MzJ9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgncm9vdHMnLCB7c2V0OiA0MDIsIGNvbW1p
dDogOTYzMzZ9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYW5hbHlzaXNfdGFza3MnLCB7aWQ6
IDUwMCwgcGxhdGZvcm06IDY1LCBtZXRyaWM6IDMwMCwgbmFtZTogJ3NvbWUgdGFzayd9KSwKKyAg
ICAgICAgICAgIGRiLmluc2VydCgnYW5hbHlzaXNfdGVzdF9ncm91cHMnLCB7aWQ6IDYwMCwgdGFz
azogNTAwLCBuYW1lOiAnc29tZSB0ZXN0IGdyb3VwJ30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0
KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogNzAwLCB0cmlnZ2VyYWJsZTogMSwgcGxhdGZvcm06IDY1
LCB0ZXN0OiAyMDAsIGdyb3VwOiA2MDAsIG9yZGVyOiAwLCByb290X3NldDogNDAxfSksCisgICAg
ICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiA3MDEsIHRyaWdnZXJhYmxl
OiAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDYwMCwgb3JkZXI6IDEsIHJvb3Rf
c2V0OiA0MDJ9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6
IDcwMiwgdHJpZ2dlcmFibGU6IDEsIHBsYXRmb3JtOiA2NSwgdGVzdDogMjAwLCBncm91cDogNjAw
LCBvcmRlcjogMiwgcm9vdF9zZXQ6IDQwMX0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWls
ZF9yZXF1ZXN0cycsIHtpZDogNzAzLCB0cmlnZ2VyYWJsZTogMSwgcGxhdGZvcm06IDY1LCB0ZXN0
OiAyMDAsIGdyb3VwOiA2MDAsIG9yZGVyOiAzLCByb290X3NldDogNDAyfSksCisgICAgICAgIF0p
OworICAgIH0KKworICAgIGl0KCdzaG91bGQgcmV0dXJuIGJ1aWxkIHJlcXVldHMgYXNzb2NpYXRl
ZCB3aXRoIGEgZ2l2ZW4gdHJpZ2dlcmFibGUgd2l0aCBhcHByb3ByYWl0ZSByb290cyBhbmQgcm9v
dFNldHMnLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBsZXQgZGIgPSBUZXN0U2VydmVyLmRh
dGFiYXNlKCk7CisgICAgICAgIGRiLmNvbm5lY3QoKS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgIHJldHVybiBhZGRNb2NrRGF0YShkYik7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZmV0Y2hKU09O
V2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKKyAgICAgICAg
fSkudGhlbihmdW5jdGlvbiAoY29udGVudCkgeworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdyb290U2V0
cycsICdyb290cycsICdzdGF0dXMnXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50Wydyb290U2V0cyddLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsncm9vdFNldHMnXVswXS5pZCwgNDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudFsncm9vdFNldHMnXVswXS5yb290cywgWyc4NzgzMicsICc5MzExNiddKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydyb290U2V0cyddWzFdLmlkLCA0MDIpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydyb290U2V0cyddWzFdLnJvb3Rz
LCBbJzg3ODMyJywgJzk2MzM2J10pOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsncm9vdHMnXS5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J3Jvb3RzJ11bMF0uaWQsIDg3ODMyKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydyb290cyddWzBdLnJlcG9zaXRvcnksICc5Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsncm9vdHMnXVswXS5yZXZpc2lvbiwgJzEwLjExIDE1QTI4NCcpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3Jvb3RzJ11bMV0uaWQsIDkzMTE2KTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydyb290cyddWzFdLnJlcG9zaXRvcnksICcxMScpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3Jvb3RzJ11bMV0ucmV2aXNpb24sICcx
OTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydyb290cyddWzJdLmlk
LCA5NjMzNik7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsncm9vdHMnXVsyXS5y
ZXBvc2l0b3J5LCAnMTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydyb290
cyddWzJdLnJldmlzaW9uLCAnMTkyNzM2Jyk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA3MDApOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0ub3JkZXIsIDAp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0ucGxhdGZvcm0sICc2NScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0ucm9vdFNldCwgNDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnRlc3QsICcyMDAnKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMV0uaWQsIDcwMSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5vcmRlciwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5wbGF0Zm9ybSwgJzY1Jyk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsx
XS5yb290U2V0LCA0MDIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bMV0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0udGVzdCwgJzIwMCcpOworCisg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5p
ZCwgNzAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzJdLm9yZGVyLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzJdLnBsYXRmb3JtLCAnNjUnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLnJvb3RTZXQsIDQwMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5z
dGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVsyXS50ZXN0LCAnMjAwJyk7CisKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLmlkLCA3MDMpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10ub3JkZXIsIDMp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
M10ucGxhdGZvcm0sICc2NScpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bM10ucm9vdFNldCwgNDAyKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnN0YXR1cywgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzNd
LnRlc3QsICcyMDAnKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSkuY2F0Y2goZG9u
ZSk7CisgICAgfSk7CisKKyAgICBpdCgnc2hvdWxkIHJldHVybiBzdXBwb3J0IHVzZUxlZ2FjeUlk
UmVzb2x1dGlvbiBvcHRpb24nLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICBsZXQgZGIgPSBU
ZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGRiLmNvbm5lY3QoKS50aGVuKGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIHJldHVybiBhZGRNb2NrRGF0YShkYik7CisgICAgICAgIH0pLnRo
ZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZmV0Y2hKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQ/
dXNlTGVnYWN5SWRSZXNvbHV0aW9uPXRydWUnKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbiAo
Y29udGVudCkgeworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250
ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdyb290U2V0cycsICdyb290cycsICdzdGF0
dXMnXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydyb290U2V0cyddLmxl
bmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsncm9vdFNldHMnXVsw
XS5pZCwgNDAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsncm9vdFNl
dHMnXVswXS5yb290cywgWyc4NzgzMicsICc5MzExNiddKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50Wydyb290U2V0cyddWzFdLmlkLCA0MDIpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50Wydyb290U2V0cyddWzFdLnJvb3RzLCBbJzg3ODMyJywgJzk2MzM2
J10pOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsncm9vdHMnXS5sZW5ndGgs
IDMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3Jvb3RzJ11bMF0uaWQsIDg3
ODMyKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydyb290cyddWzBdLnJlcG9z
aXRvcnksICdPUyBYJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsncm9vdHMn
XVswXS5yZXZpc2lvbiwgJzEwLjExIDE1QTI4NCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ3Jvb3RzJ11bMV0uaWQsIDkzMTE2KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50Wydyb290cyddWzFdLnJlcG9zaXRvcnksICdXZWJLaXQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50Wydyb290cyddWzFdLnJldmlzaW9uLCAnMTkxNjIyJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsncm9vdHMnXVsyXS5pZCwgOTYzMzYpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3Jvb3RzJ11bMl0ucmVwb3NpdG9yeSwg
J1dlYktpdCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ3Jvb3RzJ11bMl0u
cmV2aXNpb24sICcxOTI3MzYnKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDcwMCk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5vcmRlciwgMCk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5wbGF0
Zm9ybSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnJvb3RTZXQsIDQwMSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdwZW5kaW5n
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVswXS50ZXN0LCBbJ3NvbWUgdGVzdCddKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMV0uaWQsIDcwMSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5vcmRlciwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5wbGF0
Zm9ybSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzFdLnJvb3RTZXQsIDQwMik7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsxXS5zdGF0dXMsICdwZW5kaW5n
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVsxXS50ZXN0LCBbJ3NvbWUgdGVzdCddKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMl0uaWQsIDcwMik7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5vcmRlciwgMik7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5wbGF0
Zm9ybSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzJdLnJvb3RTZXQsIDQwMSk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsyXS5zdGF0dXMsICdwZW5kaW5n
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVsyXS50ZXN0LCBbJ3NvbWUgdGVzdCddKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bM10uaWQsIDcwMyk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5vcmRlciwgMyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5wbGF0
Zm9ybSwgJ3NvbWUgcGxhdGZvcm0nKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzNdLnJvb3RTZXQsIDQwMik7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVszXS5zdGF0dXMsICdwZW5kaW5n
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVszXS50ZXN0LCBbJ3NvbWUgdGVzdCddKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAg
fSkuY2F0Y2goZG9uZSk7CisgICAgfSk7CisKK30pOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuY29uZgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy90ZXN0
LXNlcnZlci5jb25mCShyZXZpc2lvbiAwKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuY29uZgkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDU3IEBACitTZXJ2ZXJSb290ICIvdXNyIgorTGlzdGVuIDgwODAKKworTG9hZE1vZHVs
ZSBhdXRobl9jb3JlX21vZHVsZSBsaWJleGVjL2FwYWNoZTIvbW9kX2F1dGhuX2NvcmUuc28KK0xv
YWRNb2R1bGUgYXV0aHpfY29yZV9tb2R1bGUgbGliZXhlYy9hcGFjaGUyL21vZF9hdXRoel9jb3Jl
LnNvCitMb2FkTW9kdWxlIGRlZmxhdGVfbW9kdWxlIGxpYmV4ZWMvYXBhY2hlMi9tb2RfZGVmbGF0
ZS5zbworTG9hZE1vZHVsZSBsb2dfY29uZmlnX21vZHVsZSBsaWJleGVjL2FwYWNoZTIvbW9kX2xv
Z19jb25maWcuc28KK0xvYWRNb2R1bGUgbG9nX2ZvcmVuc2ljX21vZHVsZSBsaWJleGVjL2FwYWNo
ZTIvbW9kX2xvZ19mb3JlbnNpYy5zbworTG9hZE1vZHVsZSBlbnZfbW9kdWxlIGxpYmV4ZWMvYXBh
Y2hlMi9tb2RfZW52LnNvCitMb2FkTW9kdWxlIGhlYWRlcnNfbW9kdWxlIGxpYmV4ZWMvYXBhY2hl
Mi9tb2RfaGVhZGVycy5zbworTG9hZE1vZHVsZSBzZXRlbnZpZl9tb2R1bGUgbGliZXhlYy9hcGFj
aGUyL21vZF9zZXRlbnZpZi5zbworTG9hZE1vZHVsZSBtaW1lX21vZHVsZSBsaWJleGVjL2FwYWNo
ZTIvbW9kX21pbWUuc28KK0xvYWRNb2R1bGUgdW5peGRfbW9kdWxlIGxpYmV4ZWMvYXBhY2hlMi9t
b2RfdW5peGQuc28KK0xvYWRNb2R1bGUgc3RhdHVzX21vZHVsZSBsaWJleGVjL2FwYWNoZTIvbW9k
X3N0YXR1cy5zbworTG9hZE1vZHVsZSBuZWdvdGlhdGlvbl9tb2R1bGUgbGliZXhlYy9hcGFjaGUy
L21vZF9uZWdvdGlhdGlvbi5zbworTG9hZE1vZHVsZSBkaXJfbW9kdWxlIGxpYmV4ZWMvYXBhY2hl
Mi9tb2RfZGlyLnNvCitMb2FkTW9kdWxlIGFsaWFzX21vZHVsZSBsaWJleGVjL2FwYWNoZTIvbW9k
X2FsaWFzLnNvCitMb2FkTW9kdWxlIHJld3JpdGVfbW9kdWxlIGxpYmV4ZWMvYXBhY2hlMi9tb2Rf
cmV3cml0ZS5zbworTG9hZE1vZHVsZSBwaHA1X21vZHVsZSBsaWJleGVjL2FwYWNoZTIvbGlicGhw
NS5zbworCis8RGlyZWN0b3J5IC8+CisgICAgT3B0aW9ucyBJbmRleGVzIEZvbGxvd1N5bUxpbmtz
IE11bHRpVmlld3MKKyAgICBBbGxvd092ZXJyaWRlIE5vbmUKKyAgICBSZXF1aXJlIGFsbCBncmFu
dGVkCis8L0RpcmVjdG9yeT4KKworPElmTW9kdWxlIGRpcl9tb2R1bGU+CisgICAgRGlyZWN0b3J5
SW5kZXggaW5kZXguaHRtbCBpbmRleC5waHAKKzwvSWZNb2R1bGU+CisKK0xvZ0xldmVsIHdhcm4K
KworPElmTW9kdWxlIGxvZ19jb25maWdfbW9kdWxlPgorICAgIExvZ0Zvcm1hdCAiJWggJWwgJXUg
JXQgXCIlclwiICU+cyAlYiBcIiV7UmVmZXJlcn1pXCIgXCIle1VzZXItQWdlbnR9aVwiIiBjb21i
aW5lZAorICAgIExvZ0Zvcm1hdCAiJWggJWwgJXUgJXQgXCIlclwiICU+cyAlYiIgY29tbW9uCisK
KyAgICA8SWZNb2R1bGUgbG9naW9fbW9kdWxlPgorICAgICAgTG9nRm9ybWF0ICIlaCAlbCAldSAl
dCBcIiVyXCIgJT5zICViIFwiJXtSZWZlcmVyfWlcIiBcIiV7VXNlci1BZ2VudH1pXCIgJUkgJU8i
IGNvbWJpbmVkaW8KKyAgICA8L0lmTW9kdWxlPgorCisgICAgQ3VzdG9tTG9nIHwvdXNyL2Jpbi90
ZWUgY29tbW9uCisgICAgRXJyb3JMb2cgfC91c3IvYmluL3RlZQorPC9JZk1vZHVsZT4KKworPElm
TW9kdWxlIG1pbWVfbW9kdWxlPgorICAgIEFkZFR5cGUgdGV4dC9odG1sIC5odG1sCisgICAgQWRk
VHlwZSB0ZXh0L2h0bWwgLmh0bQorICAgIEFkZFR5cGUgdGV4dC9jc3MgLmNzcworICAgIEFkZFR5
cGUgdGV4dC9qYXZhc2NyaXB0IC5qcworPC9JZk1vZHVsZT4KKworPElmTW9kdWxlIHBocDVfbW9k
dWxlPgorCUFkZFR5cGUgYXBwbGljYXRpb24veC1odHRwZC1waHAgLnBocAorCUFkZFR5cGUgYXBw
bGljYXRpb24veC1odHRwZC1waHAtc291cmNlIC5waHBzCis8L0lmTW9kdWxlPgorCitJbmNsdWRl
IC9wcml2YXRlL2V0Yy9hcGFjaGUyL2V4dHJhL2h0dHBkLW1wbS5jb25mCkluZGV4OiBXZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291
cmNlcy90ZXN0LXNlcnZlci5qcwkocmV2aXNpb24gMCkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMjI4IEBACisndXNlIHN0cmljdCc7CisKK2xldCBhc3NlcnQgPSByZXF1aXJl
KCdhc3NlcnQnKTsKK2xldCBjaGlsZFByb2Nlc3MgPSByZXF1aXJlKCdjaGlsZF9wcm9jZXNzJyk7
CitsZXQgZnMgPSByZXF1aXJlKCdmcycpOworbGV0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7CisK
K2xldCBDb25maWcgPSByZXF1aXJlKCcuLi8uLi90b29scy9qcy9jb25maWcuanMnKTsKK2xldCBE
YXRhYmFzZSA9IHJlcXVpcmUoJy4uLy4uL3Rvb2xzL2pzL2RhdGFiYXNlLmpzJyk7CitsZXQgUmVt
b3RlQVBJID0gcmVxdWlyZSgnLi4vLi4vdG9vbHMvanMvcmVtb3RlLmpzJykuUmVtb3RlQVBJOwor
CitsZXQgVGVzdFNldmVyID0gKG5ldyBjbGFzcyBUZXN0U2V2ZXIgeworICAgIGNvbnN0cnVjdG9y
KCkKKyAgICB7CisgICAgICAgIHRoaXMuX3BpZEZpbGUgPSBudWxsOworICAgICAgICB0aGlzLl90
ZXN0Q29uZmlnUGF0aCA9IENvbmZpZy5wYXRoKCd0ZXN0U2VydmVyLmNvbmZpZycpOworICAgICAg
ICB0aGlzLl9kYXRhRGlyZWN0b3J5ID0gQ29uZmlnLnBhdGgoJ2RhdGFEaXJlY3RvcnknKTsKKyAg
ICAgICAgdGhpcy5fYmFja3VwRGF0YVBhdGggPSBudWxsOworICAgICAgICB0aGlzLl9waWRXYWl0
U3RhcnQgPSBudWxsOworICAgICAgICB0aGlzLl9zaG91bGRMb2cgPSBmYWxzZTsKKyAgICAgICAg
dGhpcy5fcGdzcWxEaXJlY3RvcnkgPSBudWxsOworICAgICAgICB0aGlzLl9zZXJ2ZXIgPSBudWxs
OworCisgICAgICAgIHRoaXMuX2RhdGFiYXNlTmFtZSA9IENvbmZpZy52YWx1ZSgndGVzdERhdGFi
YXNlTmFtZScpOworICAgICAgICB0aGlzLl9kYXRhYmFzZVVzZXIgPSBDb25maWcudmFsdWUoJ2Rh
dGFiYXNlLnVzZXJuYW1lJyk7CisgICAgICAgIHRoaXMuX2RhdGFiYXNlSG9zdCA9IENvbmZpZy52
YWx1ZSgnZGF0YWJhc2UuaG9zdCcpOworICAgICAgICB0aGlzLl9kYXRhYmFzZVBvcnQgPSBDb25m
aWcudmFsdWUoJ2RhdGFiYXNlLnBvcnQnKTsKKyAgICAgICAgdGhpcy5fZGF0YWJhc2UgPSBudWxs
OworICAgIH0KKworICAgIHN0YXJ0KCkKKyAgICB7ICAgICAgICAKKyAgICAgICAgbGV0IHRlc3RD
b25maWdDb250ZW50ID0gdGhpcy5fY29uc3RydWN0VGVzdENvbmZpZyh0aGlzLl9kYXRhRGlyZWN0
b3J5KTsKKyAgICAgICAgZnMud3JpdGVGaWxlU3luYyh0aGlzLl90ZXN0Q29uZmlnUGF0aCwgSlNP
Ti5zdHJpbmdpZnkodGVzdENvbmZpZ0NvbnRlbnQsIG51bGwsICcgICAgJykpOworCisgICAgICAg
IHRoaXMuX2Vuc3VyZVRlc3REYXRhYmFzZSgpOworICAgICAgICB0aGlzLl9lbnN1cmVEYXRhRGly
ZWN0b3J5KCk7CisKKyAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXJ0QXBhY2hlKCk7CisgICAgfQor
CisgICAgc3RvcCgpCisgICAgeworICAgICAgICB0aGlzLl9yZXN0b3JlRGF0YURpcmVjdG9yeSgp
OworCisgICAgICAgIHJldHVybiB0aGlzLl9zdG9wQXBhY2hlKCk7CisgICAgfQorCisgICAgcmVt
b3RlQVBJKCkKKyAgICB7CisgICAgICAgIGFzc2VydCh0aGlzLl9zZXJ2ZXIpOworICAgICAgICBS
ZW1vdGVBUEkuY29uZmlndXJlKHRoaXMuX3NlcnZlcik7CisgICAgICAgIHJldHVybiBSZW1vdGVB
UEk7CisgICAgfQorCisgICAgZGF0YWJhc2UoKQorICAgIHsKKyAgICAgICAgYXNzZXJ0KHRoaXMu
X2RhdGFiYXNlTmFtZSk7CisgICAgICAgIGlmICghdGhpcy5fZGF0YWJhc2UpCisgICAgICAgICAg
ICB0aGlzLl9kYXRhYmFzZSA9IG5ldyBEYXRhYmFzZSh0aGlzLl9kYXRhYmFzZU5hbWUpOworICAg
ICAgICByZXR1cm4gdGhpcy5fZGF0YWJhc2U7CisgICAgfQorCisgICAgX2NvbnN0cnVjdFRlc3RD
b25maWcoZGF0YURpcmVjdG9yeSkKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAg
ICAnc2l0ZVRpdGxlJzogJ1Rlc3QgRGFzaGJvYXJkJywKKyAgICAgICAgICAgICdkZWJ1Zyc6IHRy
dWUsCisgICAgICAgICAgICAnanNvbkNhY2hlTWF4QWdlJzogNjAwLAorICAgICAgICAgICAgJ2Rh
dGFEaXJlY3RvcnknOiBkYXRhRGlyZWN0b3J5LAorICAgICAgICAgICAgJ2RhdGFiYXNlJzogewor
ICAgICAgICAgICAgICAgICdob3N0JzogQ29uZmlnLnZhbHVlKCdkYXRhYmFzZS5ob3N0JyksCisg
ICAgICAgICAgICAgICAgJ3BvcnQnOiBDb25maWcudmFsdWUoJ2RhdGFiYXNlLnBvcnQnKSwKKyAg
ICAgICAgICAgICAgICAndXNlcm5hbWUnOiBDb25maWcudmFsdWUoJ2RhdGFiYXNlLnVzZXJuYW1l
JyksCisgICAgICAgICAgICAgICAgJ3Bhc3N3b3JkJzogQ29uZmlnLnZhbHVlKCdkYXRhYmFzZS5w
YXNzd29yZCcpLAorICAgICAgICAgICAgICAgICduYW1lJzogQ29uZmlnLnZhbHVlKCd0ZXN0RGF0
YWJhc2VOYW1lJyksCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3VuaXZlcnNhbFNsYXZl
UGFzc3dvcmQnOiBudWxsLAorICAgICAgICAgICAgJ21haW50ZW5hbmNlTW9kZSc6IGZhbHNlLAor
ICAgICAgICAgICAgJ2NsdXN0ZXJTdGFydCc6IFsyMDAwLCAxLCAxLCAwLCAwXSwKKyAgICAgICAg
ICAgICdjbHVzdGVyU2l6ZSc6IFswLCAyLCAwXSwKKyAgICAgICAgICAgICdkZWZhdWx0RGFzaGJv
YXJkJzogW1tdXSwKKyAgICAgICAgICAgICdkYXNoYm9hcmRzJzoge30KKyAgICAgICAgfQorICAg
IH0KKworICAgIF9lbnN1cmVEYXRhRGlyZWN0b3J5KCkKKyAgICB7CisKKyAgICAgICAgbGV0IGJh
Y2t1cFBhdGggPSBwYXRoLnJlc29sdmUodGhpcy5fZGF0YURpcmVjdG9yeSwgJy4uL29yaWdpbmFs
LWRhdGEnKTsKKyAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGhpcy5fZGF0YURpcmVjdG9yeSkp
IHsKKyAgICAgICAgICAgIGFzc2VydC5vayghZnMuZXhpc3RzU3luYyhiYWNrdXBQYXRoKSwgYEJv
dGggJHt0aGlzLl9kYXRhRGlyZWN0b3J5fSBhbmQgJHtiYWNrdXBQYXRofSBleGlzdC4gQ2Fubm90
IG1ha2UgYSBiYWNrdXAgb2YgZGF0YWApOworICAgICAgICAgICAgZnMucmVuYW1lKHRoaXMuX2Rh
dGFEaXJlY3RvcnksIGJhY2t1cFBhdGgpOworICAgICAgICAgICAgdGhpcy5fYmFja3VwRGF0YVBh
dGggPSBiYWNrdXBQYXRoOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGZzLmV4
aXN0c1N5bmMoYmFja3VwUGF0aCkpIC8vIEFzc3VtZSB0aGlzIGlzIGEgYmFja3VwIGZyb20gdGhl
IGxhc3QgZmFpbGVkIHJ1bgorICAgICAgICAgICAgICAgIHRoaXMuX2JhY2t1cERhdGFQYXRoID0g
YmFja3VwUGF0aDsKKyAgICAgICAgICAgIGZzLm1rZGlyU3luYyh0aGlzLl9kYXRhRGlyZWN0b3J5
LCAwbzc1NSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfcmVzdG9yZURhdGFEaXJlY3Rvcnko
KQorICAgIHsKKyAgICAgICAgY2hpbGRQcm9jZXNzLmV4ZWNGaWxlU3luYygncm0nLCBbJy1yZics
IHRoaXMuX2RhdGFEaXJlY3RvcnldKTsKKyAgICAgICAgaWYgKHRoaXMuX2JhY2t1cERhdGFQYXRo
KQorICAgICAgICAgICAgZnMucmVuYW1lKHRoaXMuX2JhY2t1cERhdGFQYXRoLCB0aGlzLl9kYXRh
RGlyZWN0b3J5KTsKKyAgICB9CisKKyAgICBfZW5zdXJlVGVzdERhdGFiYXNlKCkKKyAgICB7Cisg
ICAgICAgIHRoaXMuX2V4ZWN1dGVQZ3NxbENvbW1hbmQoJ2Ryb3BkYicpOworICAgICAgICB0aGlz
Ll9leGVjdXRlUGdzcWxDb21tYW5kKCdjcmVhdGVkYicpOworICAgICAgICB0aGlzLl9leGVjdXRl
UGdzcWxDb21tYW5kKCdwc3FsJywgWyctLWNvbW1hbmQnLCBgZ3JhbnQgYWxsIHByaXZpbGVnZXMg
b24gZGF0YWJhc2UgIiR7dGhpcy5fZGF0YWJhc2VOYW1lfSIgdG8gIiR7dGhpcy5fZGF0YWJhc2VV
c2VyfSI7YF0pOworICAgICAgICB0aGlzLmluaXREYXRhYmFzZSgpOworICAgIH0KKworICAgIGlu
aXREYXRhYmFzZSgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fZGF0YWJhc2UpCisgICAgICAg
ICAgICB0aGlzLl9kYXRhYmFzZS5kaXNjb25uZWN0KCk7CisgICAgICAgIHRoaXMuX2RhdGFiYXNl
ID0gbnVsbDsKKworICAgICAgICBsZXQgaW5pdEZpbGVQYXRoID0gQ29uZmlnLnBhdGhGcm9tUm9v
dCgnaW5pdC1kYXRhYmFzZS5zcWwnKTsKKyAgICAgICAgdGhpcy5fZXhlY3V0ZVBnc3FsQ29tbWFu
ZCgncHNxbCcsIFsnLS11c2VybmFtZScsIHRoaXMuX2RhdGFiYXNlVXNlciwgJy0tZmlsZScsIGlu
aXRGaWxlUGF0aF0sCisgICAgICAgICAgICB7c3RkaW86IFsnaWdub3JlJywgJ2lnbm9yZScsICdp
Z25vcmUnXX0pOworICAgIH0KKworICAgIF9leGVjdXRlUGdzcWxDb21tYW5kKGNvbW1hbmQsIGFy
Z3MsIG9wdGlvbnMpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX3Bnc3FsRGlyZWN0b3J5KQor
ICAgICAgICAgICAgdGhpcy5fcGdzcWxEaXJlY3RvcnkgPSB0aGlzLl9kZXRlcm1pbmVQZ3NxbERp
cmVjdG9yeSgpOworICAgICAgICBjaGlsZFByb2Nlc3MuZXhlY0ZpbGVTeW5jKHBhdGgucmVzb2x2
ZSh0aGlzLl9wZ3NxbERpcmVjdG9yeSwgY29tbWFuZCksCisgICAgICAgICAgICBbdGhpcy5fZGF0
YWJhc2VOYW1lLCAnLS1ob3N0JywgdGhpcy5fZGF0YWJhc2VIb3N0LCAnLS1wb3J0JywgdGhpcy5f
ZGF0YWJhc2VQb3J0XS5jb25jYXQoYXJncyB8fCBbXSksIG9wdGlvbnMpOworICAgIH0KKworICAg
IF9kZXRlcm1pbmVQZ3NxbERpcmVjdG9yeSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAg
ICAgICAgbGV0IGluaXRkYkxvY2F0aW9uID0gY2hpbGRQcm9jZXNzLmV4ZWNGaWxlU3luYygnd2hp
Y2gnLCBbJ2luaXRkYiddKTsKKyAgICAgICAgICAgIHJldHVybiBwYXRoLmRpcm5hbWUoaW5pdGRi
TG9jYXRpb24pOworICAgICAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICAgICAgbGV0IHNl
cnZlclBnc3FsTG9jYXRpb24gPSAnL0FwcGxpY2F0aW9ucy9TZXJ2ZXIuYXBwL0NvbnRlbnRzL1Nl
cnZlclJvb3QvdXNyL2Jpbi8nOworICAgICAgICAgICAgY2hpbGRQcm9jZXNzLmV4ZWNGaWxlU3lu
YyhwYXRoLnJlc29sdmUoc2VydmVyUGdzcWxMb2NhdGlvbiwgJ2luaXRkYicpLCBbJy0tdmVyc2lv
biddKTsKKyAgICAgICAgICAgIHJldHVybiBzZXJ2ZXJQZ3NxbExvY2F0aW9uOworICAgICAgICB9
CisgICAgfQorCisgICAgX3N0YXJ0QXBhY2hlKCkKKyAgICB7CisgICAgICAgIGxldCBwaWRGaWxl
ID0gQ29uZmlnLnBhdGgoJ3Rlc3RTZXJ2ZXIuaHR0cGRQSUQnKTsKKyAgICAgICAgbGV0IGh0dHBk
Q29uZmlnID0gQ29uZmlnLnBhdGgoJ3Rlc3RTZXJ2ZXIuaHR0cGRDb25maWcnKTsKKyAgICAgICAg
bGV0IHBvcnQgPSBDb25maWcudmFsdWUoJ3Rlc3RTZXJ2ZXIucG9ydCcpOworICAgICAgICBsZXQg
ZXJyb3JMb2cgPSBDb25maWcucGF0aCgndGVzdFNlcnZlci5odHRwZEVycm9yTG9nJyk7CisgICAg
ICAgIGxldCBtdXRleEZpbGUgPSBDb25maWcucGF0aCgndGVzdFNlcnZlci5odHRwZE11dGV4RGly
Jyk7CisKKyAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKG11dGV4RmlsZSkpCisgICAgICAgICAg
ICBmcy5ta2RpclN5bmMobXV0ZXhGaWxlLCAwbzc1NSk7CisKKyAgICAgICAgbGV0IGFyZ3MgPSBb
CisgICAgICAgICAgICAnLWYnLCBodHRwZENvbmZpZywKKyAgICAgICAgICAgICctYycsIGBTZXRF
bnYgT1JHX1dFQktJVF9QRVJGX0NPTkZJR19QQVRIICR7dGhpcy5fdGVzdENvbmZpZ1BhdGh9YCwK
KyAgICAgICAgICAgICctYycsIGBMaXN0ZW4gJHtwb3J0fWAsCisgICAgICAgICAgICAnLWMnLCBg
UGlkRmlsZSAke3BpZEZpbGV9YCwKKyAgICAgICAgICAgICctYycsIGBFcnJvckxvZyAke2Vycm9y
TG9nfWAsCisgICAgICAgICAgICAnLWMnLCBgTXV0ZXggZmlsZToke211dGV4RmlsZX1gLAorICAg
ICAgICAgICAgJy1jJywgYERvY3VtZW50Um9vdCAke0NvbmZpZy5zZXJ2ZXJSb290KCl9YF07CisK
KyAgICAgICAgaWYgKHRoaXMuX3Nob3VsZExvZykKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKGFy
Z3MpOworCisgICAgICAgIGNoaWxkUHJvY2Vzcy5leGVjRmlsZVN5bmMoJ2h0dHBkJywgYXJncyk7
CisKKyAgICAgICAgdGhpcy5fc2VydmVyID0geworICAgICAgICAgICAgc2NoZW1lOiAnaHR0cCcs
CisgICAgICAgICAgICBob3N0OiAnbG9jYWxob3N0JywKKyAgICAgICAgICAgIHBvcnQ6IHBvcnQs
CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5fcGlkV2FpdFN0YXJ0ID0gRGF0ZS5ub3coKTsKKyAg
ICAgICAgdGhpcy5fcGlkRmlsZSA9IHBpZEZpbGU7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlz
ZSh0aGlzLl93YWl0Rm9yUGlkLmJpbmQodGhpcywgdHJ1ZSkpOworICAgIH0KKworICAgIF9zdG9w
QXBhY2hlKCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5fcGlkRmlsZSkKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBsZXQgcGlkID0gZnMucmVhZEZpbGVTeW5jKHRoaXMuX3BpZEZp
bGUsICd1dGYtOCcpLnRyaW0oKTsKKworICAgICAgICBpZiAodGhpcy5fc2hvdWxkTG9nKQorICAg
ICAgICAgICAgY29uc29sZS5sb2coJ1N0b3BwaW5nJywgcGlkKTsKKworICAgICAgICBjaGlsZFBy
b2Nlc3MuZXhlY0ZpbGVTeW5jKCdraWxsJywgWyctVEVSTScsIHBpZF0pOworCisgICAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZSh0aGlzLl93YWl0Rm9yUGlkLmJpbmQodGhpcywgZmFsc2UpKTsKKyAg
ICB9CisKKyAgICBfd2FpdEZvclBpZChzaG91bGRFeGlzdCwgcmVzb2x2ZSwgcmVqZWN0KQorICAg
IHsKKyAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGhpcy5fcGlkRmlsZSkgIT0gc2hvdWxkRXhp
c3QpIHsKKyAgICAgICAgICAgIGlmIChEYXRlLm5vdygpIC0gdGhpcy5fcGlkV2FpdFN0YXJ0ID4g
NTAwMCkKKyAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBzZXRUaW1lb3V0KHRoaXMuX3dhaXRGb3JQaWQuYmluZCh0aGlzLCBzaG91bGRF
eGlzdCwgcmVzb2x2ZSwgcmVqZWN0KSwgMTAwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgICAgICByZXNvbHZlKCk7CisgICAgfQorfSk7CisKKworYmVmb3JlKGZ1bmN0aW9u
ICgpIHsKKyAgICB0aGlzLnRpbWVvdXQoNTAwMCk7CisgICAgcmV0dXJuIFRlc3RTZXZlci5zdGFy
dCgpOworfSk7CisKK2JlZm9yZUVhY2goZnVuY3Rpb24gKCkgeworICAgIHRoaXMudGltZW91dCg1
MDAwKTsKKyAgICByZXR1cm4gVGVzdFNldmVyLmluaXREYXRhYmFzZSgpOworfSk7CisKK2FmdGVy
KGZ1bmN0aW9uICgpIHsKKyAgICB0aGlzLnRpbWVvdXQoNTAwMCk7CisgICAgcmV0dXJuIFRlc3RT
ZXZlci5zdG9wKCk7Cit9KTsKKworaWYgKHR5cGVvZiBtb2R1bGUgIT0gJ3VuZGVmaW5lZCcpCisg
ICAgbW9kdWxlLmV4cG9ydHMgPSBUZXN0U2V2ZXI7CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdG9vbHMvc3luYy13aXRoLWJ1aWxkYm90LnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy90b29scy9zeW5jLXdpdGgtYnVpbGRib3QucHkJKHJldmlzaW9uIDE5
ODYxNSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9zeW5jLXdpdGgtYnVpbGRi
b3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgZGVmIG1haW4oKToKICAgICAg
ICAgICAgICdzbGF2ZU5hbWUnOiBzZXJ2ZXJfY29uZmlnWydzbGF2ZSddWyduYW1lJ10sCiAgICAg
ICAgICAgICAnc2xhdmVQYXNzd29yZCc6IHNlcnZlcl9jb25maWdbJ3NsYXZlJ11bJ3Bhc3N3b3Jk
J119CiAKLSAgICAgICAgYnVpbGRfcmVxdWVzdHNfdXJsID0gc2VydmVyX2NvbmZpZ1snc2VydmVy
J11bJ3VybCddICsgJy9hcGkvYnVpbGQtcmVxdWVzdHMvJyArIGFyZ3MudHJpZ2dlcmFibGUKKyAg
ICAgICAgYnVpbGRfcmVxdWVzdHNfdXJsID0gc2VydmVyX2NvbmZpZ1snc2VydmVyJ11bJ3VybCdd
ICsgJy9hcGkvYnVpbGQtcmVxdWVzdHMvJyArIGFyZ3MudHJpZ2dlcmFibGUgKyAnP3VzZUxlZ2Fj
eUlkUmVzb2x1dGlvbj10cnVlJwogICAgICAgICByZXNwb25zZSA9IHVwZGF0ZV9hbmRfZmV0Y2hf
YnVpbGRfcmVxdWVzdHMoYnVpbGRfcmVxdWVzdHNfdXJsLCBwYXlsb2FkKQogICAgICAgICBvcGVu
X3JlcXVlc3RzID0gcmVzcG9uc2UuZ2V0KCdidWlsZFJlcXVlc3RzJywgW10pCiAKSW5kZXg6IFdl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9jb25maWcuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2NvbmZpZy5qcwkocmV2aXNpb24gMTk4
NjE1KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2NvbmZpZy5qcwkod29y
a2luZyBjb3B5KQpAQCAtMjgsMTAgKzI4LDkgQEAgdmFyIENvbmZpZyA9IG5ldyAoY2xhc3MgQ29u
ZmlnIHsKICAgICAgICAgcmV0dXJuIGNvbnRlbnQ7CiAgICAgfQogCi0gICAgcGF0aChrZXkpCi0g
ICAgewotICAgICAgICByZXR1cm4gcGF0aC5yZXNvbHZlKHRoaXMuX3Jvb3REaXJlY3RvcnksIHRo
aXMudmFsdWUoa2V5KSk7Ci0gICAgfQorICAgIHBhdGgoa2V5KSB7IHJldHVybiBwYXRoLnJlc29s
dmUodGhpcy5fcm9vdERpcmVjdG9yeSwgdGhpcy52YWx1ZShrZXkpKTsgfQorICAgIHNlcnZlclJv
b3QoKSB7IHJldHVybiBwYXRoLnJlc29sdmUodGhpcy5fcm9vdERpcmVjdG9yeSwgJ3B1YmxpYycp
OyB9CisgICAgcGF0aEZyb21Sb290KHJlbGF0aXZlUGF0aEZyb21Sb290KSB7IHJldHVybiBwYXRo
LnJlc29sdmUodGhpcy5fcm9vdERpcmVjdG9yeSwgcmVsYXRpdmVQYXRoRnJvbVJvb3QpOyB9CiB9
KTsKIAogaWYgKHR5cGVvZiBtb2R1bGUgIT0gJ3VuZGVmaW5lZCcpCkluZGV4OiBXZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvZGF0YWJhc2UuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2RhdGFiYXNlLmpzCShyZXZpc2lvbiAxOTg2MTUp
CisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvZGF0YWJhc2UuanMJKHdvcmtp
bmcgY29weSkKQEAgLTQsOSArNCwxMCBAQCB2YXIgcGcgPSByZXF1aXJlKCdwZycpOwogdmFyIGNv
bmZpZyA9IHJlcXVpcmUoJy4vY29uZmlnLmpzJyk7CiAKIGNsYXNzIERhdGFiYXNlIHsKLSAgICBj
b25zdHJ1Y3RvcigpCisgICAgY29uc3RydWN0b3IoZGF0YWJhc2VOYW1lKQogICAgIHsKICAgICAg
ICAgdGhpcy5fY2xpZW50ID0gbnVsbDsKKyAgICAgICAgdGhpcy5fZGF0YWJhc2VOYW1lID0gZGF0
YWJhc2VOYW1lIHx8IGNvbmZpZy52YWx1ZSgnZGF0YWJhc2UubmFtZScpOwogICAgIH0KIAogICAg
IGNvbm5lY3Qob3B0aW9ucykKQEAgLTE3LDEwICsxOCw5IEBAIGNsYXNzIERhdGFiYXNlIHsKICAg
ICAgICAgbGV0IHBhc3N3b3JkID0gY29uZmlnLnZhbHVlKCdkYXRhYmFzZS5wYXNzd29yZCcpOwog
ICAgICAgICBsZXQgaG9zdCA9IGNvbmZpZy52YWx1ZSgnZGF0YWJhc2UuaG9zdCcpOwogICAgICAg
ICBsZXQgcG9ydCA9IGNvbmZpZy52YWx1ZSgnZGF0YWJhc2UucG9ydCcpOwotICAgICAgICBsZXQg
bmFtZSA9IGNvbmZpZy52YWx1ZSgnZGF0YWJhc2UubmFtZScpOwogCiAgICAgICAgIC8vIE5vIG5l
ZWQgdG8gd29ycnkgYWJvdXQgZXNjYXBpbmcgc3RyaW5ncyBzaW5jZSB0aGV5IGFyZSBvbmx5IHNl
dCBieSBzb21lb25lIHdobyBjYW4gd3JpdGUgdG8gY29uZmlnLmpzb24uCi0gICAgICAgIGxldCBj
b25uZWN0aW9uU3RyaW5nID0gYHRjcDovLyR7dXNlcm5hbWV9OiR7cGFzc3dvcmR9QCR7aG9zdH06
JHtwb3J0fS8ke25hbWV9YDsKKyAgICAgICAgbGV0IGNvbm5lY3Rpb25TdHJpbmcgPSBgdGNwOi8v
JHt1c2VybmFtZX06JHtwYXNzd29yZH1AJHtob3N0fToke3BvcnR9LyR7dGhpcy5fZGF0YWJhc2VO
YW1lfWA7CiAKICAgICAgICAgbGV0IGNsaWVudCA9IG5ldyBwZy5DbGllbnQoY29ubmVjdGlvblN0
cmluZyk7CiAgICAgICAgIGlmICghb3B0aW9ucyB8fCAhb3B0aW9ucy5rZWVwQWxpdmUpIHsKQEAg
LTQ3LDYgKzQ3LDQ5IEBAIGNsYXNzIERhdGFiYXNlIHsKICAgICAgICAgICAgIHRoaXMuX2NsaWVu
dCA9IG51bGw7CiAgICAgICAgIH0KICAgICB9CisKKyAgICBxdWVyeShzdGF0ZW1lbnQsIHBhcmFt
ZXRlcnMpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9jbGllbnQpOworICAg
ICAgICB2YXIgY2xpZW50ID0gdGhpcy5fY2xpZW50OworICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgY2xpZW50LnF1ZXJ5
KHN0YXRlbWVudCwgcGFyYW1ldGVycyB8fCBbXSwgZnVuY3Rpb24gKGVycm9yLCByZXN1bHQpIHsK
KyAgICAgICAgICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICAgICAgICAgIHJlamVjdChl
cnJvcik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICByZXNvbHZl
KHJlc3VsdCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaW5z
ZXJ0KHRhYmxlLCBwYXJhbWV0ZXJzKQorICAgIHsKKyAgICAgICAgbGV0IGNvbHVtbk5hbWVzID0g
W107CisgICAgICAgIGxldCBwbGFjZWhvbGRlcnMgPSBbXTsKKyAgICAgICAgbGV0IHZhbHVlcyA9
IFtdOworICAgICAgICBmb3IgKGxldCBuYW1lIGluIHBhcmFtZXRlcnMpIHsKKyAgICAgICAgICAg
IHZhbHVlcy5wdXNoKHBhcmFtZXRlcnNbbmFtZV0pOworICAgICAgICAgICAgaWYgKHRhYmxlIGlu
IHRhYmxlVG9QcmVmaXhNYXApCisgICAgICAgICAgICAgICAgbmFtZSA9IHRhYmxlVG9QcmVmaXhN
YXBbdGFibGVdICsgJ18nICsgbmFtZTsKKyAgICAgICAgICAgIGNvbHVtbk5hbWVzLnB1c2gobmFt
ZSk7CisgICAgICAgICAgICBwbGFjZWhvbGRlcnMucHVzaChgXCQke3BsYWNlaG9sZGVycy5sZW5n
dGggKyAxfWApOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5KGBJTlNFUlQg
SU5UTyAke3RhYmxlfSAoJHtjb2x1bW5OYW1lc30pIFZBTFVFUyAoJHtwbGFjZWhvbGRlcnN9KWAs
IHZhbHVlcyk7CisgICAgfQorfQorCitsZXQgdGFibGVUb1ByZWZpeE1hcCA9IHsKKyAgICAnYW5h
bHlzaXNfdGFza3MnOiAndGFzaycsCisgICAgJ2FuYWx5c2lzX3Rlc3RfZ3JvdXBzJzogJ3Rlc3Rn
cm91cCcsCisgICAgJ2J1aWxkX3RyaWdnZXJhYmxlcyc6ICd0cmlnZ2VyYWJsZScsCisgICAgJ2J1
aWxkX3JlcXVlc3RzJzogJ3JlcXVlc3QnLAorICAgICdjb21taXRzJzogJ2NvbW1pdCcsCisgICAg
J3Rlc3RfbWV0cmljcyc6ICdtZXRyaWMnLAorICAgICd0ZXN0cyc6ICd0ZXN0JywKKyAgICAncGxh
dGZvcm1zJzogJ3BsYXRmb3JtJywKKyAgICAncmVwb3NpdG9yaWVzJzogJ3JlcG9zaXRvcnknLAor
ICAgICdyb290X3NldHMnOiAncm9vdHNldCcsCisgICAgJ3Jvb3RzJzogJ3Jvb3QnLAogfQogCiBp
ZiAodHlwZW9mIG1vZHVsZSAhPSAndW5kZWZpbmVkJykKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy90b29scy9qcy9yZW1vdGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3Rvb2xzL2pzL3JlbW90ZS5qcwkocmV2aXNpb24gMCkKKysrIFdlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy90b29scy9qcy9yZW1vdGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw3OSBAQAorJ3VzZSBzdHJpY3QnOworCitsZXQgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7
CitsZXQgaHR0cCA9IHJlcXVpcmUoJ2h0dHAnKTsKK2xldCBodHRwcyA9IHJlcXVpcmUoJ2h0dHBz
Jyk7CisKK2xldCBSZW1vdGVBUEkgPSBuZXcgKGNsYXNzIFJlbW90ZUFQSSB7CisgICAgY29uc3Ry
dWN0b3IoKQorICAgIHsKKyAgICAgICAgdGhpcy5fc2VydmVyID0geworICAgICAgICAgICAgc2No
ZW1lOiAnaHR0cCcsCisgICAgICAgICAgICBob3N0OiAnbG9jYWxob3N0JywKKyAgICAgICAgfQor
ICAgIH0KKworICAgIGNvbmZpZ3VyZShzZXJ2ZXIpCisgICAgeworICAgICAgICBhc3NlcnQoc2Vy
dmVyLnNjaGVtZSA9PT0gJ2h0dHAnIHx8IHNlcnZlci5zY2hlbWUgPT09ICdodHRwcycpOworICAg
ICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKHNlcnZlci5ob3N0KSwgJ3N0cmluZycpOworICAgICAg
ICBhc3NlcnQoIXNlcnZlci5wb3J0IHx8IHR5cGVvZihzZXJ2ZXIucG9ydCkgPT0gJ251bWJlcicp
OworICAgICAgICBhc3NlcnQoIXNlcnZlci5hdXRoIHx8IHR5cGVvZihzZXJ2ZXIuYXV0aCkgPT0g
J29iamVjdCcpOworICAgICAgICB0aGlzLl9zZXJ2ZXIgPSBzZXJ2ZXI7CisgICAgfQorCisgICAg
ZmV0Y2hKU09OKHBhdGgsIGRhdGEpCisgICAgeworICAgICAgICBsZXQgY29udGVudFR5cGUgPSBu
dWxsOworICAgICAgICBpZiAoZGF0YSkgeworICAgICAgICAgICAgY29udGVudFR5cGUgPSAnYXBw
bGljYXRpb24vanNvbic7CisgICAgICAgICAgICBkYXRhID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXMuc2VuZEh0dHBSZXF1ZXN0KHBhdGgsICdH
RVQnLCBjb250ZW50VHlwZSwgZGF0YSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CisgICAgICAg
ICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQucmVzcG9uc2VUZXh0KTsKKyAgICAgICAgfSk7
CisgICAgfQorCisgICAgZmV0Y2hKU09OV2l0aFN0YXR1cyhwYXRoLCBkYXRhKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hKU09OKHBhdGgsIGRhdGEpLnRoZW4oZnVuY3Rpb24gKHJl
c3VsdCkgeworICAgICAgICAgICAgaWYgKHJlc3VsdFsnc3RhdHVzJ10gIT0gJ09LJykKKyAgICAg
ICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QocmVzdWx0KTsKKyAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgIH0pOworICAgIH0KKworICAgIHNlbmRIdHRwUmVxdWVzdChw
YXRoLCBtZXRob2QsIGNvbnRlbnRUeXBlLCBjb250ZW50KQorICAgIHsKKyAgICAgICAgbGV0IHNl
cnZlciA9IHRoaXMuX3NlcnZlcjsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9u
IChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIGxldCBvcHRpb25zID0geworICAgICAg
ICAgICAgICAgIGhvc3RuYW1lOiBzZXJ2ZXIuaG9zdCwKKyAgICAgICAgICAgICAgICBwb3J0OiBz
ZXJ2ZXIucG9ydCB8fCA4MCwKKyAgICAgICAgICAgICAgICBhdXRoOiBzZXJ2ZXIuYXV0aCwKKyAg
ICAgICAgICAgICAgICBtZXRob2Q6IG1ldGhvZCwKKyAgICAgICAgICAgICAgICBwYXRoOiBwYXRo
LAorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgbGV0IHJlcXVlc3QgPSAoc2VydmVyLnNj
aGVtZSA9PSAnaHR0cCcgPyBodHRwIDogaHR0cHMpLnJlcXVlc3Qob3B0aW9ucywgZnVuY3Rpb24g
KHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAgbGV0IHJlc3BvbnNlVGV4dCA9ICcnOworICAg
ICAgICAgICAgICAgIHJlc3BvbnNlLnNldEVuY29kaW5nKCd1dGY4Jyk7CisgICAgICAgICAgICAg
ICAgcmVzcG9uc2Uub24oJ2RhdGEnLCBmdW5jdGlvbiAoY2h1bmspIHsgcmVzcG9uc2VUZXh0ICs9
IGNodW5rOyB9KTsKKyAgICAgICAgICAgICAgICByZXNwb25zZS5vbignZW5kJywgZnVuY3Rpb24g
KCkgeyByZXNvbHZlKHtzdGF0dXNDb2RlOiByZXNwb25zZS5zdGF0dXNDb2RlLCByZXNwb25zZVRl
eHQ6IHJlc3BvbnNlVGV4dH0pOyB9KTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBy
ZXF1ZXN0Lm9uKCdlcnJvcicsIHJlamVjdCk7CisKKyAgICAgICAgICAgIGlmIChjb250ZW50VHlw
ZSkKKyAgICAgICAgICAgICAgICByZXF1ZXN0LnNldEhlYWRlcignQ29udGVudC1UeXBlJywgY29u
dGVudFR5cGUpOworCisgICAgICAgICAgICBpZiAoY29udGVudCkKKyAgICAgICAgICAgICAgICBy
ZXF1ZXN0LndyaXRlKGNvbnRlbnQpOworCisgICAgICAgICAgICByZXF1ZXN0LmVuZCgpOworICAg
ICAgICB9KTsKKyAgICB9Cit9KQorCitpZiAodHlwZW9mIG1vZHVsZSAhPSAndW5kZWZpbmVkJykK
KyAgICBtb2R1bGUuZXhwb3J0cy5SZW1vdGVBUEkgPSBSZW1vdGVBUEk7CkluZGV4OiBXZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9jaGVja2NvbmZpZy5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9jaGVja2NvbmZpZy5qcwkocmV2
aXNpb24gMTk4NjE1KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY2hl
Y2tjb25maWcuanMJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw2IEBACiAKIHZhciBhc3NlcnQg
PSByZXF1aXJlKCdhc3NlcnQnKTsKIHZhciBmcyA9IHJlcXVpcmUoJ2ZzJyk7Ci12YXIgcGcgPSBy
ZXF1aXJlKCdwZycpOwogCiB2YXIgQ29uZmlnID0gcmVxdWlyZSgnLi4vdG9vbHMvanMvY29uZmln
LmpzJyk7CiB2YXIgRGF0YWJhc2UgPSByZXF1aXJlKCcuLi90b29scy9qcy9kYXRhYmFzZS5qcycp
Owo=
</data>
<flag name="review"
          id="299227"
          type_id="1"
          status="+"
          setter="cdumez"
    />
    <flag name="commit-queue"
          id="299257"
          type_id="3"
          status="-"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>