Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aiJx8-0007ev-8y for pgadmin-hackers@arkaria.postgresql.org; Tue, 22 Mar 2016 10:54:22 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1aiJx7-00087Q-Qj for pgadmin-hackers@arkaria.postgresql.org; Tue, 22 Mar 2016 10:54:21 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1aiJu8-0006V8-9I for pgadmin-hackers@postgresql.org; Tue, 22 Mar 2016 10:51:16 +0000 Received: from mail-lb0-x22f.google.com ([2a00:1450:4010:c04::22f]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1aiJtv-0007IC-Kx for pgadmin-hackers@postgresql.org; Tue, 22 Mar 2016 10:51:15 +0000 Received: by mail-lb0-x22f.google.com with SMTP id qe11so101204255lbc.3 for ; Tue, 22 Mar 2016 03:51:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=g0/rsb0coUywT6ewKUGmrqQISoYK+h4WrEf0PeUuVdA=; b=p5I9OcgGYUtRDYDv/W6fulW5PrIiOnQ0JSaPhxVlwIq33rBY6pfxFPLhSut034i8BN p9tmGcNjEODgS5QCcwH+r/12I4GLZF5MB1E6f5Wtlk4duNGb+Ti+wZnf7QCs+0t4NBSE rAAY1jivoYDG5m4kCQKnAsEIAGkhzi/6j5qxzWi0cFTE3TMD/4Ig4EKRrHKoPupDhO+B jpcQWt/6dw8IxChEbvWcp/OPrgTs/RZguOJdzBTaDthGlAjxdSGlFMcsIfiWBCEoZgO+ n+Zx98sVlasBtREJeZuIFo83vVESgTv//ru/1uK5PQfVZ68ZmWgp3P6sn29aNIF8uyeq GNWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=g0/rsb0coUywT6ewKUGmrqQISoYK+h4WrEf0PeUuVdA=; b=hbHYj1YyZ4pGZ4TD/H/TR/I74Hc1qH1l1qMuoJcUOB5F94PZu6AF0A92VorEkedGuN 38P1sKDo+x+OEgtnkSlYEzeqgFRPGYdKVBfUvstx1LyY652tAzxOiq3gl/+c+3/AvR8/ 7duEnMm6YLY03b6tgrbYHiEHvMxybb32lCkAyZMtcW/b25xyijIlrTvwQEDvVe/E4xVQ cZkZqhg32ZhHZZEhojh5mJCLozQLms/JxH61EXcXpyW822yUJhmC5WWzhwfjQC8qibjo qFO11AB2LspvodZxbiu4G6latEuI7R11v0djOdSs2ADkKQSAv9/12b2hDat6HQ0iqVf4 C3qA== X-Gm-Message-State: AD7BkJJwWZQRii7ZsWI2L4qFWxXsOz+jnLiT+Smti2Q9qsW8aSqEg0eOOXS2TD5oxc/D96dl/27CezvoMvBWt8m1 MIME-Version: 1.0 X-Received: by 10.112.169.105 with SMTP id ad9mr12902467lbc.135.1458643861547; Tue, 22 Mar 2016 03:51:01 -0700 (PDT) Received: by 10.25.159.85 with HTTP; Tue, 22 Mar 2016 03:51:01 -0700 (PDT) In-Reply-To: References: Date: Tue, 22 Mar 2016 16:21:01 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch]: Functions/Procedures Module From: Khushboo Vashi To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a11c38c083933d3052ea0fd24 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a11c38c083933d3052ea0fd24 Content-Type: multipart/alternative; boundary=001a11c38c083933cb052ea0fd22 --001a11c38c083933cb052ea0fd22 Content-Type: text/plain; charset=UTF-8 Hi, Please find updated Patch for the Functions/Procedures Module. On Fri, Mar 11, 2016 at 10:17 PM, Dave Page wrote: > Hi > > On Fri, Mar 11, 2016 at 9:34 AM, Khushboo Vashi > wrote: > > Hi, > > > > Please find attached patch for the Functions/Procedures Module. > > > > To test this patch, "Unique collection Control and Variable Control > Fixes" > > Patch submitted by me needs to be applied first. > > Hi, > > This is looking pretty good. I did a little bit of cleanup of the SQL > formatting, however I think a little more is needed; > > - When creating a function, we might get the following: > > ===== > CREATE FUNCTION pem.whee(INOUT foo bigint DEFAULT 123) RETURNS bigint AS > $BODY$SELECT $1;$BODY$ > LANGUAGE 'sql' NOT LEAKPROOF > > SET backslash_quote='on'; > > > ALTER FUNCTION pem.whee(INOUT foo bigint ) > OWNER TO postgres; > > GRANT ALL ON FUNCTION pem.whee(INOUT foo bigint ) TO pem_user; > > > COMMENT ON FUNCTION pem.whee(INOUT foo bigint ) > IS 'whee func'; > ===== > > - Remove the spaces after the argument lists, before the ) > Done > - Remove the double blank lines > Done > - The opening $BODY$ should be indented > Done and also replaced it with $function > - LANGUAGE should be indented > Done > - The are two spaces between 'sql' and NOT. > I have put function options into the next line as Reverse engineered SQL > > - Reverse engineered SQL may look like: > > ===== > -- FUNCTION: pem.whee(INOUT foo bigint) > > -- DROP FUNCTION pem.whee(INOUT foo bigint); > > CREATE OR REPLACE FUNCTION pem.whee(INOUT foo bigint DEFAULT 123) > RETURNS bigint > LANGUAGE sql > SET backslash_quote TO 'on' > AS $function$SELECT $1;$function$ > ===== > > - We should be consistent with our heredoc markers ($BODY$ vs. > $function$) > Replaced $BODY with $function > - There's a 1 space indent > As per our discussion, will not fix this 1 space indent because the Function definition SQL is coming from pg_def_functiondef function > - This formatting (bar the issues above) is much nicer that the > CREATE formatting. > > I haven't found anything else of note yet, that I haven't fixed in > passing (though I have yet to test with PPAS). Updated patch attached. > > Thanks. > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --001a11c38c083933cb052ea0fd22 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

Please find updated Patch for the Fu= nctions/Procedures Module.

On Fri, Mar 11, 2016 at 10:17 PM, Dave Page = <dpage@pgadmin.or= g> wrote:

On Fri, Mar 11, 2016 at 9:34 AM, Khushboo Vashi
<khushboo.vashi@enter= prisedb.com> wrote:
> Hi,
>
> Please find attached patch for the Functions/Procedures Module.
>
> To test this patch, "Unique collection Control and Variable Contr= ol Fixes"
> Patch submitted by me needs to be applied first.

Hi,

This is looking pretty good. I did a little bit of cleanup of the SQL
formatting, however I think a little more is needed;

- When creating a function, we might get the following:

=3D=3D=3D=3D=3D
CREATE FUNCTION pem.whee(INOUT foo bigint DEFAULT 123) RETURNS bigint AS
$BODY$SELECT $1;$BODY$
LANGUAGE 'sql'=C2=A0 NOT LEAKPROOF

SET backslash_quote=3D'on';


ALTER FUNCTION pem.whee(INOUT foo bigint )
=C2=A0 =C2=A0 OWNER TO postgres;

GRANT ALL ON FUNCTION pem.whee(INOUT foo bigint ) TO pem_user;


COMMENT ON FUNCTION pem.whee(INOUT foo bigint )
=C2=A0 =C2=A0 IS 'whee func';
=3D=3D=3D=3D=3D

=C2=A0 - Remove the spaces after the argument lists, before the )
Done
=C2=A0 - Remove the double blank lines
Done
=C2=A0 - The opening $BODY$ should be indented
Done and also replaced it with $function
=C2=A0 - LANGUAGE should be indented
Done
=C2=A0 - The are two spaces between 'sql' and NOT.
=
I have put function options into = the next line as Reverse engineered SQL

- Reverse engineered SQL may look like:

=3D=3D=3D=3D=3D
-- FUNCTION: pem.whee(INOUT foo bigint)

-- DROP FUNCTION pem.whee(INOUT foo bigint);

CREATE OR REPLACE FUNCTION pem.whee(INOUT foo bigint DEFAULT 123)
=C2=A0RETURNS bigint
=C2=A0LANGUAGE sql
=C2=A0SET backslash_quote TO 'on'
AS $function$SELECT $1;$function$
=3D=3D=3D=3D=3D

=C2=A0 - We should be consistent with our heredoc markers ($BODY$ vs. $func= tion$)
Replaced $= BODY with $function
=C2=A0 - There's a 1 space indent
As per our discussion, will not fix this 1 space inden= t because the Function definition SQL is coming from pg_def_functiondef fun= ction
=C2=A0 - This formatting (bar the issues above) is much nicer that the
CREATE formatting.

I haven't found anything else of note yet, that I haven't fixed in<= br> passing (though I have yet to test with PPAS). Updated patch attached.

Thanks.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--001a11c38c083933cb052ea0fd22-- --001a11c38c083933d3052ea0fd24 Content-Type: text/x-patch; charset=US-ASCII; name="pgAdmin4_function_ver1.patch" Content-Disposition: attachment; filename="pgAdmin4_function_ver1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_im3avfac1 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9fX2luaXRf Xy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9fX2luaXRfXy5weQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNWJiMDdlCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL19f aW5pdF9fLnB5CkBAIC0wLDAgKzEsMTI5NSBAQAorIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBU b29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdB ZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIiIiSW1wbGVtZW50cyBGdW5j dGlvbnMvUHJvY2VkdXJlcyBOb2RlLiIiIgorCitpbXBvcnQganNvbgoraW1w b3J0IHN5cworaW1wb3J0IHRyYWNlYmFjaworaW1wb3J0IGNvcHkKK2ltcG9y dCByZQorZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCBtYWtl X3Jlc3BvbnNlLCByZXF1ZXN0LCBqc29uaWZ5LCBcCisgICAgY3VycmVudF9h cHAsIHVybF9mb3IKK2Zyb20gZmxhc2suZXh0LmJhYmVsIGltcG9ydCBnZXR0 ZXh0Citmcm9tIGZ1bmN0b29scyBpbXBvcnQgd3JhcHMKK2Zyb20gcGdhZG1p bi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIFwKKyAg ICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGludGVybmFsX3Nl cnZlcl9lcnJvcgorZnJvbSBwZ2FkbWluLmJyb3dzZXIudXRpbHMgaW1wb3J0 IFBHQ2hpbGROb2RlVmlldworZnJvbSBwZ2FkbWluLmJyb3dzZXIuY29sbGVj dGlvbiBpbXBvcnQgQ29sbGVjdGlvbk5vZGVNb2R1bGUKK2ltcG9ydCBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5z Y2hlbWFzIGFzIHNjaGVtYXMKK2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGlt cG9ydCBwcmVjb25kaXRpb25fcmVxdWlyZWQKK2Zyb20gcGdhZG1pbi51dGls cy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy51dGlscyBpbXBvcnQgcGFyc2Vf cHJpdl9mcm9tX2RiLCBcCisgICAgcGFyc2VfcHJpdl90b19kYgorZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy5zY2hlbWFzLnV0aWxzIGltcG9ydCBcCisgICAgU2NoZW1hQ2hpbGRNb2R1 bGUsIERhdGFUeXBlUmVhZGVyCitmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVG QVVMVF9EUklWRVIKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMudXRpbHMgaW1wb3J0IFwKKyAgICBwYXJz ZV9zZWNfbGFiZWxzX2Zyb21fZGIsIHBhcnNlX3ZhcmlhYmxlc19mcm9tX2Ri CisKK2NsYXNzIEZ1bmN0aW9uTW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxlKToK KyAgICAiIiIKKyAgICBjbGFzcyBGdW5jdGlvbk1vZHVsZShTY2hlbWFDaGls ZE1vZHVsZSk6CisKKyAgICAgICAgVGhpcyBjbGFzcyByZXByZXNlbnRzIFRo ZSBGdW5jdGlvbnMgTW9kdWxlLgorCisgICAgTWV0aG9kczoKKyAgICAtLS0t LS0tCisgICAgKiBfX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAt IEluaXRpYWxpemUgdGhlIEZ1bmN0aW9ucyBNb2R1bGUuCisKKyAgICAqIGdl dF9ub2RlcyhnaWQsIHNpZCwgZGlkLCBzY2lkKQorICAgICAgLSBHZW5lcmF0 ZSB0aGUgRnVuY3Rpb25zIGNvbGxlY3Rpb24gbm9kZS4KKworICAgICogbm9k ZV9pbm9kZSgpOgorICAgICAgLSBSZXR1cm5zIEZ1bmN0aW9ucyBub2RlIGFz IGxlYWYgbm9kZS4KKworICAgICogc2NyaXB0X2xvYWQoKQorICAgICAgLSBM b2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBGdW5jdGlvbnMsIHdoZW4gc2No ZW1hIG5vZGUgaXMKKyAgICAgICAgaW5pdGlhbGl6ZWQuCisKKyAgICAqIGNz c3NuaXBwZXRzKCkKKyAgICAgIC0gUmV0dXJucyBhIHNuaXBwZXQgb2YgY3Nz LgorICAgICIiIgorCisgICAgTk9ERV9UWVBFID0gJ2Z1bmN0aW9uJworICAg IENPTExFQ1RJT05fTEFCRUwgPSBnZXR0ZXh0KCJGdW5jdGlvbnMiKQorCisg ICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAg ICAgICIiIgorICAgICAgICBJbml0aWFsaXplIHRoZSBGdW5jdGlvbiBNb2R1 bGUuCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICAqYXJnczoKKyAgICAg ICAgICAgICoqa3dhcmdzOgorICAgICAgICAiIiIKKyAgICAgICAgc3VwZXIo RnVuY3Rpb25Nb2R1bGUsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJn cykKKworICAgICAgICBzZWxmLm1pbl92ZXIgPSA5MDEwMAorICAgICAgICBz ZWxmLm1heF92ZXIgPSBOb25lCisgICAgICAgIHNlbGYuc2VydmVyX3R5cGUg PSBOb25lCisKKyAgICBkZWYgZ2V0X25vZGVzKHNlbGYsIGdpZCwgc2lkLCBk aWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgR2VuZXJhdGUgRnVu Y3Rpb25zIGNvbGxlY3Rpb24gbm9kZS4KKyAgICAgICAgIiIiCisgICAgICAg IHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25vZGUo c2NpZCkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBub2RlX2lub2RlKHNl bGYpOgorICAgICAgICAiIiIKKyAgICAgICAgTWFrZSB0aGUgbm9kZSBhcyBs ZWFmIG5vZGUuCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBGYWxz ZSBhcyB0aGlzIG5vZGUgZG9lc24ndCBoYXZlIGNoaWxkIG5vZGVzLgorICAg ICAgICAiIiIKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBAcHJvcGVy dHkKKyAgICBkZWYgc2NyaXB0X2xvYWQoc2VsZik6CisgICAgICAgICIiIgor ICAgICAgICBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBGdW5jdGlvbnMs IHdoZW4gdGhlCisgICAgICAgIHNjaGVtYSBub2RlIGlzIGluaXRpYWxpemVk LgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNjaGVtYXMuU2NoZW1h TW9kdWxlLk5PREVfVFlQRQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGNz c3NuaXBwZXRzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJu cyBhIHNuaXBwZXQgb2YgY3NzCisgICAgICAgICIiIgorICAgICAgICBzbmlw cGV0cyA9IFsKKyAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgiZnVuY3Rp b24vY3NzL2Z1bmN0aW9uLmNzcyIpCisgICAgICAgIF0KKyAgICAgICAgc25p cHBldHMuZXh0ZW5kKAorICAgICAgICAgICAgc3VwZXIoU2NoZW1hQ2hpbGRN b2R1bGUsIHNlbGYpLmNzc3NuaXBwZXRzCisgICAgICAgICkKKworICAgICAg ICByZXR1cm4gc25pcHBldHMKKworYmx1ZXByaW50ID0gRnVuY3Rpb25Nb2R1 bGUoX19uYW1lX18pCisKKworY2xhc3MgRnVuY3Rpb25WaWV3KFBHQ2hpbGRO b2RlVmlldywgRGF0YVR5cGVSZWFkZXIpOgorICAgICIiIgorICAgIGNsYXNz IEZ1bmN0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcpCisKKyAgICBUaGlzIGNs YXNzIGluaGVyaXRzIFBHQ2hpbGROb2RlVmlldyB0byBnZXQgdGhlIGRpZmZl cmVudCByb3V0ZXMgZm9yCisgICAgdGhlIG1vZHVsZS4KKworICAgIFRoZSBj bGFzcyBpcyByZXNwb25zaWJsZSB0byBDcmVhdGUsIFJlYWQsIFVwZGF0ZSBh bmQgRGVsZXRlIG9wZXJhdGlvbnMgZm9yCisgICAgdGhlIEZ1bmN0aW9ucy4K KworICAgIE1ldGhvZHM6CisgICAgLS0tLS0tLQorICAgICogdmFsaWRhdGVf cmVxdWVzdChmKToKKyAgICAgIC0gV29ya3MgYXMgYSBkZWNvcmF0b3IuCisg ICAgICAgIFZhbGlkYXRpbmcgcmVxdWVzdCBvbiB0aGUgcmVxdWVzdCBvZiBj cmVhdGUsIHVwZGF0ZSBhbmQgbW9kaWZpZWQgU1FMLgorCisgICAgKiBtb2R1 bGVfanMoKToKKyAgICAgIC0gT3ZlcnJpZGVzIHRoaXMgcHJvcGVydHkgdG8g ZGVmaW5lIGphdmFzY3JpcHQgZm9yIEZ1bmN0aW9ucyBub2RlLgorCisgICAg KiBjaGVja19wcmVjb25kaXRpb24oZik6CisgICAgICAtIFdvcmtzIGFzIGEg ZGVjb3JhdG9yLgorICAgICAgLSBDaGVja3MgZGF0YWJhc2UgY29ubmVjdGlv biBzdGF0dXMuCisgICAgICAtIEF0dGFjaCBjb25uZWN0aW9uIG9iamVjdCBh bmQgdGVtcGxhdGUgcGF0aC4KKworICAgICogbGlzdChnaWQsIHNpZCwgZGlk LCBzY2lkKToKKyAgICAgIC0gTGlzdCB0aGUgRnVuY3Rpb25zLgorCisgICAg KiBub2RlcyhnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgIC0gUmV0dXJu cyBhbGwgdGhlIEZ1bmN0aW9ucyB0byBnZW5lcmF0ZSBOb2RlcyBpbiB0aGUg YnJvd3Nlci4KKworICAgICogcHJvcGVydGllcyhnaWQsIHNpZCwgZGlkLCBz Y2lkLCBmbmlkKToKKyAgICAgIC0gUmV0dXJucyB0aGUgRnVuY3Rpb25zIHBy b3BlcnRpZXMuCisKKyAgICAqIGNyZWF0ZShnaWQsIHNpZCwgZGlkLCBzY2lk KToKKyAgICAgIC0gQ3JlYXRlcyBhIG5ldyBGdW5jdGlvbnMgb2JqZWN0Lgor CisgICAgKiB1cGRhdGUoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5pZCk6Cisg ICAgICAtIFVwZGF0ZXMgdGhlIEZ1bmN0aW9ucyBvYmplY3QuCisKKyAgICAq IGRlbGV0ZShnaWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkKToKKyAgICAgIC0g RHJvcHMgdGhlIEZ1bmN0aW9ucyBvYmplY3QuCisKKyAgICAqIHNxbChnaWQs IHNpZCwgZGlkLCBzY2lkLCBmbmlkKToKKyAgICAgIC0gUmV0dXJucyB0aGUg U1FMIGZvciB0aGUgRnVuY3Rpb25zIG9iamVjdC4KKworICAgICogbXNxbChn aWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkPU5vbmUpOgorICAgICAgLSBSZXR1 cm5zIHRoZSBtb2RpZmllZCBTUUwuCisKKyAgICAqIGRlcGVuZGVudHMoZ2lk LCBzaWQsIGRpZCwgc2NpZCwgZm5pZCk6CisgICAgICAtIFJldHVybnMgdGhl IGRlcGVuZGVudHMgZm9yIHRoZSBGdW5jdGlvbnMgb2JqZWN0LgorCisgICAg KiBkZXBlbmRlbmNpZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5pZCk6Cisg ICAgICAtIFJldHVybnMgdGhlIGRlcGVuZGVuY2llcyBmb3IgdGhlIEZ1bmN0 aW9ucyBvYmplY3QuCisKKyAgICAqIGdldF9sYW5ndWFnZXMoZ2lkLCBzaWQs IGRpZCwgc2NpZCwgZm5pZD1Ob25lKToKKyAgICAgIC0gUmV0dXJucyBsYW5n dWFnZXMuCisKKyAgICAqIHR5cGVzKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZu aWQ9Tm9uZSk6CisgICAgICAtIFJldHVybnMgRGF0YSBUeXBlcy4KKyAgICAi IiIKKworICAgIG5vZGVfdHlwZSA9IGJsdWVwcmludC5ub2RlX3R5cGUKKwor ICAgIHBhcmVudF9pZHMgPSBbCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAn aWQnOiAnZ2lkJ30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAn c2lkJ30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZGlkJ30s CisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnc2NpZCd9CisgICAg XQorICAgIGlkcyA9IFsKKyAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6 ICdmbmlkJ30KKyAgICBdCisKKyAgICBvcGVyYXRpb25zID0gZGljdCh7Cisg ICAgICAgICdvYmonOiBbCisgICAgICAgICAgICB7J2dldCc6ICdwcm9wZXJ0 aWVzJywgJ2RlbGV0ZSc6ICdkZWxldGUnLCAncHV0JzogJ3VwZGF0ZSd9LAor ICAgICAgICAgICAgeydnZXQnOiAnbGlzdCcsICdwb3N0JzogJ2NyZWF0ZSd9 CisgICAgICAgIF0sCisgICAgICAgICdkZWxldGUnOiBbeydkZWxldGUnOiAn ZGVsZXRlJ31dLAorICAgICAgICAnY2hpbGRyZW4nOiBbeydnZXQnOiAnY2hp bGRyZW4nfV0sCisgICAgICAgICdub2Rlcyc6IFt7J2dldCc6ICdub2RlJ30s IHsnZ2V0JzogJ25vZGVzJ31dLAorICAgICAgICAnc3FsJzogW3snZ2V0Jzog J3NxbCd9XSwKKyAgICAgICAgJ21zcWwnOiBbeydnZXQnOiAnbXNxbCd9LCB7 J2dldCc6ICdtc3FsJ31dLAorICAgICAgICAnc3RhdHMnOiBbeydnZXQnOiAn c3RhdGlzdGljcyd9XSwKKyAgICAgICAgJ2RlcGVuZGVuY3knOiBbeydnZXQn OiAnZGVwZW5kZW5jaWVzJ31dLAorICAgICAgICAnZGVwZW5kZW50JzogW3sn Z2V0JzogJ2RlcGVuZGVudHMnfV0sCisgICAgICAgICdtb2R1bGUuanMnOiBb e30sIHt9LCB7J2dldCc6ICdtb2R1bGVfanMnfV0sCisgICAgICAgICdnZXRf dHlwZXMnOiBbeydnZXQnOiAndHlwZXMnfSwgeydnZXQnOiAndHlwZXMnfV0s CisgICAgICAgICdnZXRfbGFuZ3VhZ2VzJzogW3snZ2V0JzogJ2dldF9sYW5n dWFnZXMnfSwgeydnZXQnOiAnZ2V0X2xhbmd1YWdlcyd9XSwKKyAgICAgICAg J3ZvcHRzJzogW3t9LCB7J2dldCc6ICd2YXJpYWJsZV9vcHRpb25zJ31dCisg ICAgfSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiByZXF1aXJlZF9hcmdz KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBSZXF1aXJl ZCBhcmd1bWVudHMgZm9yIGZ1bmN0aW9ucyBub2RlLgorICAgICAgICBXaGVy ZQorICAgICAgICAgICAgUmVxdWlyZWQgQXJnczoKKyAgICAgICAgICAgICAg ICBuYW1lOiAgICAgICAgICAgTmFtZSBvZiB0aGUgRnVuY3Rpb24KKyAgICAg ICAgICAgICAgICBmdW5jb3duZXI6ICAgICAgRnVuY3Rpb24gT3duZXIKKyAg ICAgICAgICAgICAgICBwcm9uYW1lc3BhY2U6ICAgRnVuY3Rpb24gTmFtZXNw YWNlCisgICAgICAgICAgICAgICAgcHJvcmV0dHlwZW5hbWU6IEZ1bmN0aW9u IFJldHVybiBUeXBlCisgICAgICAgICAgICAgICAgbGFubmFtZTogICAgICAg IEZ1bmN0aW9uIExhbmd1YWdlIE5hbWUKKyAgICAgICAgICAgICAgICBwcm9z cmM6ICAgICAgICAgRnVuY3Rpb24gQ29kZQorICAgICAgICAgICAgICAgIHBy b2JpbjogICAgICAgICBGdW5jdGlvbiBPYmplY3QgRmlsZQorICAgICAgICAi IiIKKyAgICAgICAgcmV0dXJuIFsKKyAgICAgICAgICAgICduYW1lJywKKyAg ICAgICAgICAgICdmdW5jb3duZXInLAorICAgICAgICAgICAgJ3Byb25hbWVz cGFjZScsCisgICAgICAgICAgICAncHJvcmV0dHlwZW5hbWUnLAorICAgICAg ICAgICAgJ2xhbm5hbWUnLAorICAgICAgICAgICAgJ3Byb3NyYycsCisgICAg ICAgICAgICAncHJvYmluJworICAgICAgICBdCisKKyAgICBkZWYgdmFsaWRh dGVfcmVxdWVzdChmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdvcmtzIGFz IGEgZGVjb3JhdG9yLgorICAgICAgICBWYWxpZGF0aW5nIHJlcXVlc3Qgb24g dGhlIHJlcXVlc3Qgb2YgY3JlYXRlLCB1cGRhdGUgYW5kIG1vZGlmaWVkIFNR TC4KKyAgICAgICAgIiIiCisKKyAgICAgICAgQHdyYXBzKGYpCisgICAgICAg IGRlZiB3cmFwKHNlbGYsICoqa3dhcmdzKToKKworICAgICAgICAgICAgZGF0 YSA9IHt9CisgICAgICAgICAgICBpZiByZXF1ZXN0LmRhdGE6CisgICAgICAg ICAgICAgICAgcmVxID0ganNvbi5sb2FkcyhyZXF1ZXN0LmRhdGEuZGVjb2Rl KCkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlcSA9 IHJlcXVlc3QuYXJncyBvciByZXF1ZXN0LmZvcm0KKworICAgICAgICAgICAg aWYgJ2ZuaWQnIG5vdCBpbiBrd2FyZ3M6CisKKyAgICAgICAgICAgICAgICBm b3IgYXJnIGluIHNlbGYucmVxdWlyZWRfYXJnczoKKyAgICAgICAgICAgICAg ICAgICAgaWYgKGFyZyBub3QgaW4gcmVxIG9yIHJlcVthcmddID09ICcnKSBv clwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXJnID09ICdwcm9i aW4nIGFuZCByZXFbJ2xhbm5hbWUnXSA9PSAnYycKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYW5kIChhcmcgbm90IGluIHJlcSBvciByZXFbYXJn XSA9PSAnJykpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1h a2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdGF0dXM9NDEwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1 Y2Nlc3M9MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcm1z Zz1nZXR0ZXh0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi Q291bGRuJ3QgZmluZCB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyIFwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCVzKS4iICUgYXJnCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAg ICAgICAgKQorCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg bGlzdF9wYXJhbXMgPSBbXQorICAgICAgICAgICAgICAgIGlmIHJlcXVlc3Qu bWV0aG9kID09ICdHRVQnOgorICAgICAgICAgICAgICAgICAgICBsaXN0X3Bh cmFtcyA9IFsnYXJndW1lbnRzJywgJ3ZhcmlhYmxlcycsICdwcm9hY2wnLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2VjbGFiZWxz JywgJ2FjbCddCisKKyAgICAgICAgICAgICAgICBmb3Iga2V5IGluIHJlcToK KyAgICAgICAgICAgICAgICAgICAgaWYga2V5IGluIGxpc3RfcGFyYW1zIGFu ZCByZXFba2V5XSAhPSAnJyBcCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYW5kIHJlcVtrZXldIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAg ICAgICAgICAgIyBDb3ZlcnRzIHN0cmluZyBpbnRvIHB5dGhvbiBsaXN0IGFz IGV4cGVjdGVkLgorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtrZXld ID0ganNvbi5sb2FkcyhyZXFba2V5XSkKKyAgICAgICAgICAgICAgICAgICAg ZWxpZiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID09ICdw cm9yZXRzZXQnIG9yIGtleSA9PSAncHJvaXNzdHJpY3QnIG9yCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAga2V5ID09ICdwcm9zZWNkZWYnIG9yIGtl eSA9PSAncHJvaXN3aW5kb3cnIG9yCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAga2V5ID09ICdwcm9sZWFrcHJvb2YnCisgICAgICAgICAgICAgICAg ICAgICk6CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2tleV0gPSBU cnVlIGlmICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXFba2V5 XSA9PSAndHJ1ZScgb3IgcmVxW2tleV0gaXMgVHJ1ZSlcCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZWxzZSBGYWxzZSBpZiAocmVxW2tleV0gPT0g J2ZhbHNlJyBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJlcVtrZXldIGlzIEZhbHNlKSBlbHNlICcnCisgICAgICAg ICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBk YXRhW2tleV0gPSByZXFba2V5XQorCisgICAgICAgICAgICBleGNlcHQgRXhj ZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICAgICAgICAg IHNlbGYucmVxdWVzdCA9IGRhdGEKKyAgICAgICAgICAgIHJldHVybiBmKHNl bGYsICoqa3dhcmdzKQorCisgICAgICAgIHJldHVybiB3cmFwCisKKyAgICBk ZWYgbW9kdWxlX2pzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgTG9h ZCBKUyBmaWxlIChmdW5jdGlvbnMuanMpIGZvciB0aGlzIG1vZHVsZS4KKyAg ICAgICAgIiIiCisKKyAgICAgICAgcmV0dXJuIG1ha2VfcmVzcG9uc2UoCisg ICAgICAgICAgICByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAg ImZ1bmN0aW9uL2pzL2Z1bmN0aW9ucy5qcyIsCisgICAgICAgICAgICAgICAg Xz1nZXR0ZXh0CisgICAgICAgICAgICApLAorICAgICAgICAgICAgMjAwLCB7 J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQnfQor ICAgICAgICApCisKKyAgICBkZWYgY2hlY2tfcHJlY29uZGl0aW9uKGYpOgor ICAgICAgICAiIiIKKyAgICAgICAgV29ya3MgYXMgYSBkZWNvcmF0b3IuCisg ICAgICAgIENoZWNrcyB0aGUgZGF0YWJhc2UgY29ubmVjdGlvbiBzdGF0dXMu CisgICAgICAgIEF0dGFjaGVzIHRoZSBjb25uZWN0aW9uIG9iamVjdCBhbmQg dGVtcGxhdGUgcGF0aCB0byB0aGUgY2xhc3Mgb2JqZWN0LgorICAgICAgICAi IiIKKworICAgICAgICBAd3JhcHMoZikKKyAgICAgICAgZGVmIHdyYXAoKmFy Z3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgIHNlbGYgPSBhcmdzWzBdCisg ICAgICAgICAgICBkcml2ZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJ VkVSKQorICAgICAgICAgICAgc2VsZi5tYW5hZ2VyID0gZHJpdmVyLmNvbm5l Y3Rpb25fbWFuYWdlcihrd2FyZ3NbJ3NpZCddKQorCisgICAgICAgICAgICAj IEdldCBkYXRhYmFzZSBjb25uZWN0aW9uCisgICAgICAgICAgICBzZWxmLmNv bm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9a3dhcmdzWydkaWQn XSkKKworICAgICAgICAgICAgc2VsZi5xdElkZW50ID0gZHJpdmVyLnF0SWRl bnQKKyAgICAgICAgICAgIHNlbGYucXRMaXRlcmFsID0gZHJpdmVyLnF0TGl0 ZXJhbAorCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5jb25uLmNvbm5lY3Rl ZCgpOgorICAgICAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVx dWlyZWQoCisgICAgICAgICAgICAgICAgICAgIGdldHRleHQoCisgICAgICAg ICAgICAgICAgICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhh cyBiZWVuIGxvc3QhIgorICAgICAgICAgICAgICAgICAgICApCisgICAgICAg ICAgICAgICAgKQorCisgICAgICAgICAgICB2ZXIgPSBzZWxmLm1hbmFnZXIu dmVyc2lvbgorCisgICAgICAgICAgICAjIFNldCB0ZW1wbGF0ZSBwYXRoIGZv ciBzcWwgc2NyaXB0cyBkZXBlbmRpbmcKKyAgICAgICAgICAgICMgb24gdGhl IHNlcnZlciB2ZXJzaW9uLgorICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9w YXRoID0gIi8iLmpvaW4oWworICAgICAgICAgICAgICAgIHNlbGYubm9kZV90 eXBlCisgICAgICAgICAgICBdKQorICAgICAgICAgICAgc2VsZi5zcWxfdGVt cGxhdGVfcGF0aCA9ICIvIi5qb2luKFsKKyAgICAgICAgICAgICAgICBzZWxm LnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgc2VsZi5tYW5hZ2Vy LnNlcnZlcl90eXBlLAorICAgICAgICAgICAgICAgICdzcWwnLAorICAgICAg ICAgICAgICAgICc5LjVfcGx1cycgaWYgdmVyID49IDkwNTAwIGVsc2UKKyAg ICAgICAgICAgICAgICAnOS4yX3BsdXMnIGlmIHZlciA+PSA5MDIwMCBlbHNl CisgICAgICAgICAgICAgICAgJzkuMV9wbHVzJworICAgICAgICAgICAgICAg IF0pCisKKyAgICAgICAgICAgIHJldHVybiBmKCphcmdzLCAqKmt3YXJncykK KworICAgICAgICByZXR1cm4gd3JhcAorCisgICAgQGNoZWNrX3ByZWNvbmRp dGlvbgorICAgIGRlZiBsaXN0KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQp OgorICAgICAgICAiIiIKKyAgICAgICAgTGlzdCBhbGwgdGhlIEZ1bmN0aW9u cy4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIg R3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisgICAgICAg ICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lkOiBTY2hl bWEgSWQKKyAgICAgICAgIiIiCisKKyAgICAgICAgU1FMID0gcmVuZGVyX3Rl bXBsYXRlKCIvIi5qb2luKFtzZWxmLnNxbF90ZW1wbGF0ZV9wYXRoLCAnbm9k ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2lk PXNjaWQpCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1 dGVfZGljdChTUUwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAg ICAgIHJlc3BvbnNlPXJlc1sncm93cyddLAorICAgICAgICAgICAgc3RhdHVz PTIwMAorICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisg ICAgZGVmIG5vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAg ICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBhbGwgdGhlIEZ1bmN0aW9ucyB0 byBnZW5lcmF0ZSB0aGUgTm9kZXMuCisKKyAgICAgICAgQXJnczoKKyAgICAg ICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElkCisgICAgICAgICAgICBzaWQ6 IFNlcnZlciBJZAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJZAorICAg ICAgICAgICAgc2NpZDogU2NoZW1hIElkCisgICAgICAgICIiIgorCisgICAg ICAgIHJlcyA9IFtdCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgi LyIuam9pbihbc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9kZS5zcWwnXSksIHNj aWQ9c2NpZCkKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4 ZWN1dGVfMmRhcnJheShTUUwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9cnNldCkKKworICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3Mn XToKKyAgICAgICAgICAgIHJlcy5hcHBlbmQoCisgICAgICAgICAgICAgICAg c2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAg ICAgICAgICAgICAgICByb3dbJ29pZCddLAorICAgICAgICAgICAgICAgICAg ICBzY2lkLAorICAgICAgICAgICAgICAgICAgICByb3dbJ25hbWUnXSwKKyAg ICAgICAgICAgICAgICAgICAgaWNvbj0iaWNvbi0iICsgc2VsZi5ub2RlX3R5 cGUsCisgICAgICAgICAgICAgICAgICAgIGZ1bmNvd25lcj1yb3dbJ2Z1bmNv d25lciddLAorICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZT1yb3dbJ2xh bm5hbWUnXQorICAgICAgICAgICAgICAgICkpCisKKyAgICAgICAgcmV0dXJu IG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgIGRhdGE9cmVzLAor ICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBAY2hl Y2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHByb3BlcnRpZXMoc2VsZiwgZ2lk LCBzaWQsIGRpZCwgc2NpZCwgZm5pZD1Ob25lKToKKyAgICAgICAgIiIiCisg ICAgICAgIFJldHVybnMgdGhlIEZ1bmN0aW9uIHByb3BlcnRpZXMuCisKKyAg ICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElk CisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAgICAgZGlk OiBEYXRhYmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElkCisg ICAgICAgICAgICBmbmlkOiBGdW5jdGlvbiBJZAorICAgICAgICAiIiIKKwor ICAgICAgICByZXNwX2RhdGEgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKGdp ZCwgc2lkLCBkaWQsIHNjaWQsIGZuaWQpCisKKyAgICAgICAgcmV0dXJuIGFq YXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZT1yZXNwX2RhdGEs CisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAgIGRl ZiBfZm9ybWF0X2FyZ3VtZW50c19mcm9tX2RiKHNlbGYsIGRhdGEpOgorICAg ICAgICAiIiIKKyAgICAgICAgQ3JlYXRlIEFyZ3VtZW50IGxpc3Qgb2YgdGhl IEZ1bmN0aW9uLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBkYXRh OiBGdW5jdGlvbiBEYXRhCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAg ICAgIEZ1bmN0aW9uIEFyZ3VtZW50cyBpbiB0aGUgZm9sbG93aW5nIGZvcm1h dC4KKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgeydwcm9h cmd0eXBlcyc6ICdpbnRlZ2VyJywgJ3Byb2FyZ21vZGVzOiAnSU4nLAorICAg ICAgICAgICAgICAgICdwcm9hcmduYW1lcyc6ICdjb2x1bW4xJywgJ3Byb2Fy Z2RlZmF1bHR2YWxzJzogMX0sIHsuLi59CisgICAgICAgICAgICAgICAgXQor ICAgICAgICAgICAgV2hlcmUKKyAgICAgICAgICAgICAgICBBcmd1bWVudHM6 CisgICAgICAgICAgICAgICAgICAgIHByb2FyZ3R5cGVzOiBBcmd1bWVudCBU eXBlcyAoRGF0YSBUeXBlKQorICAgICAgICAgICAgICAgICAgICBwcm9hcmdt b2RlczogQXJndW1lbnQgTW9kZXMgW0lOLCBPVVQsIElOT1VULCBWQVJJQURJ Q10KKyAgICAgICAgICAgICAgICAgICAgcHJvYXJnbmFtZXM6IEFyZ3VtZW50 IE5hbWUKKyAgICAgICAgICAgICAgICAgICAgcHJvYXJnZGVmYXVsdHZhbHM6 IERlZmF1bHQgVmFsdWUgb2YgdGhlIEFyZ3VtZW50CisgICAgICAgICIiIgor ICAgICAgICBwcm9hcmd0eXBlcyA9IFtwdHlwZSBmb3IgcHR5cGUgaW4gZGF0 YVsncHJvYXJndHlwZW5hbWVzJ10uc3BsaXQoIiwiKV1cCisgICAgICAgICAg ICBpZiBkYXRhWydwcm9hcmd0eXBlbmFtZXMnXSBlbHNlIFtdCisgICAgICAg IHByb2FyZ21vZGVzID0gZGF0YVsncHJvYXJnbW9kZXMnXSBpZiBkYXRhWydw cm9hcmdtb2RlcyddIGVsc2UgW10KKyAgICAgICAgcHJvYXJnbmFtZXMgPSBk YXRhWydwcm9hcmduYW1lcyddIGlmIGRhdGFbJ3Byb2FyZ25hbWVzJ10gZWxz ZSBbXQorICAgICAgICBwcm9hcmdkZWZhdWx0dmFscyA9IFtwdHlwZSBmb3Ig cHR5cGUgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsn cHJvYXJnZGVmYXVsdHZhbHMnXS5zcGxpdCgiLCIpXSBcCisgICAgICAgICAg ICBpZiBkYXRhWydwcm9hcmdkZWZhdWx0dmFscyddIGVsc2UgW10KKyAgICAg ICAgcHJvYWxsYXJndHlwZXMgPSBkYXRhWydwcm9hbGxhcmd0eXBlcyddIFwK KyAgICAgICAgICAgIGlmIGRhdGFbJ3Byb2FsbGFyZ3R5cGVzJ10gZWxzZSBb XQorCisgICAgICAgIHByb2FyZ291dCA9IFtdCisgICAgICAgIHByb2FyZ2lk ID0gW10KKyAgICAgICAgcHJvYXJnbW9kZW5hbWVzID0geydpJzogJ0lOJywg J28nOiAnT1VUJywgJ2InOiAnSU5PVVQnLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ3YnOiAnVkFSSUFESUMnLCAndCc6ICdUQUJMRSd9CisKKyAg ICAgICAgIyBUaGUgcHJvYXJndHlwZXMgZG9lc24ndCBnaXZlIE9VVCBwYXJh bXMsIHNvIHdlIG5lZWQgdG8gZmV0Y2gKKyAgICAgICAgIyB0aG9zZSBmcm9t IGRhdGFiYXNlIGV4cGxpY2l0bHksIGJlbG93IGNvZGUgaXMgd3JpdHRlbiBm b3IgdGhpcworICAgICAgICAjIHB1cnBvc2UuCisgICAgICAgICMKKyAgICAg ICAgIyBwcm9hbGxhcmd0eXBlcyBnaXZlcyBhbGwgdGhlIEZ1bmN0aW9uJ3Mg YXJndW1lbnQgaW5jbHVkaW5nIE9VVCwKKyAgICAgICAgIyBidXQgd2UgaGF2 ZSBub3QgdXNlZCB0aGF0IGNvbHVtbjsgYXMgdGhlIGRhdGEgdHlwZSBvZiB0 aGlzCisgICAgICAgICMgY29sdW1uIChpLmUuIG9pZFtdKSBpcyBub3Qgc3Vw cG9ydGVkIGJ5IG9pZHZlY3RvcnR5cGVzKG9pZHZlY3RvcikKKyAgICAgICAg IyBmdW5jdGlvbiB3aGljaCB3ZSBoYXZlIHVzZWQgdG8gZmV0Y2ggdGhlIGRh dGF0eXBlcworICAgICAgICAjIG9mIHRoZSBvdGhlciBwYXJhbWV0ZXJzLgor CisgICAgICAgIHByb2FyZ21vZGVzX2ZsdHJkID0gY29weS5kZWVwY29weShw cm9hcmdtb2RlcykKKyAgICAgICAgcHJvYXJnbmFtZXNfZmx0cmQgPSBbXQor ICAgICAgICBjbnQgPSAwCisgICAgICAgIGZvciBtIGluIHByb2FyZ21vZGVz OgorICAgICAgICAgICAgaWYgbSA9PSAnbyc6ICAjIE91dCBNb2RlCisgICAg ICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtz ZWxmLnNxbF90ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9vdXRfdHlwZXMuc3Fs J10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv dXRfYXJnX29pZD1wcm9hbGxhcmd0eXBlc1tjbnRdKQorICAgICAgICAgICAg ICAgIHN0YXR1cywgb3V0X2FyZ190eXBlID0gc2VsZi5jb25uLmV4ZWN1dGVf c2NhbGFyKFNRTCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPW91dF9hcmdfdHlwZSkKKworICAgICAgICAgICAgICAg ICMgSW5zZXJ0IG91dCBwYXJhbWV0ZXIgZGF0YXR5cGUKKyAgICAgICAgICAg ICAgICBwcm9hcmd0eXBlcy5pbnNlcnQoY250LCBvdXRfYXJnX3R5cGUpCisg ICAgICAgICAgICAgICAgcHJvYXJnZGVmYXVsdHZhbHMuaW5zZXJ0KGNudCwg JycpCisgICAgICAgICAgICBlbGlmIG0gPT0gJ3YnOiAgIyBWYXJpYWRpYyBN b2RlCisgICAgICAgICAgICAgICAgcHJvYXJnZGVmYXVsdHZhbHMuaW5zZXJ0 KGNudCwgJycpCisgICAgICAgICAgICBlbGlmIG0gPT0gJ3QnOiAgIyBUYWJs ZSBNb2RlCisgICAgICAgICAgICAgICAgcHJvYXJnbW9kZXNfZmx0cmQucmVt b3ZlKG0pCisgICAgICAgICAgICAgICAgcHJvYXJnbmFtZXNfZmx0cmQuYXBw ZW5kKHByb2FyZ25hbWVzW2NudF0pCisKKyAgICAgICAgICAgIGNudCArPSAx CisKKyAgICAgICAgY250ID0gMAorICAgICAgICAjIE1hcCBwYXJhbSdzIHNo b3J0IGZvcm0gdG8gaXRzIGFjdHVhbCBuYW1lLiAoZXg6ICdpJyB0byAnSU4n KQorICAgICAgICBmb3IgbSBpbiBwcm9hcmdtb2Rlc19mbHRyZDoKKyAgICAg ICAgICAgIHByb2FyZ21vZGVzX2ZsdHJkW2NudF0gPSBwcm9hcmdtb2RlbmFt ZXNbbV0KKyAgICAgICAgICAgIGNudCArPSAxCisKKyAgICAgICAgIyBSZW1v dmVzIEFyZ3VtZW50IE5hbWVzIGZyb20gdGhlIGxpc3QgaWYgdGhhdCBhcmd1 bWVudCBpcyByZW1vdmVkCisgICAgICAgICMgZnJvbSB0aGUgbGlzdAorICAg ICAgICBmb3IgaSBpbiBwcm9hcmduYW1lc19mbHRyZDoKKyAgICAgICAgICAg IHByb2FyZ25hbWVzLnJlbW92ZShpKQorCisgICAgICAgICMgSW5zZXJ0IG51 bGwgdmFsdWUgYWdhaW5zdCB0aGUgcGFyYW1ldGVycyB3aGljaCBkbyBub3Qg aGF2ZQorICAgICAgICAjIGRlZmF1bHQgdmFsdWVzLgorICAgICAgICBpZiBs ZW4ocHJvYXJnbW9kZXNfZmx0cmQpID4gbGVuKHByb2FyZ2RlZmF1bHR2YWxz KToKKyAgICAgICAgICAgIGRpZiA9IGxlbihwcm9hcmdtb2Rlc19mbHRyZCkg LSBsZW4ocHJvYXJnZGVmYXVsdHZhbHMpCisgICAgICAgICAgICB3aGlsZSAo ZGlmID4gMCk6CisgICAgICAgICAgICAgICAgcHJvYXJnZGVmYXVsdHZhbHMu aW5zZXJ0KDAsICcnKQorICAgICAgICAgICAgICAgIGRpZiA9IGRpZiAtIDEK KworICAgICAgICAjIFByZXBhcmUgbGlzdCBvZiBBcmd1bWVudCBsaXN0IGRp Y3QgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBEYXRhIEdyaWQuCisgICAgICAg IHBhcmFtcyA9IHsiYXJndW1lbnRzIjogWworICAgICAgICAgICAgc2VsZi5f bWFwX2FyZ3VtZW50c19kaWN0KAorICAgICAgICAgICAgICAgIGksIHByb2Fy Z21vZGVzX2ZsdHJkW2ldIGlmIGxlbihwcm9hcmdtb2Rlc19mbHRyZCkgPiBp IGVsc2UgJycsCisgICAgICAgICAgICAgICAgcHJvYXJndHlwZXNbaV0gaWYg bGVuKHByb2FyZ3R5cGVzKSA+IGkgZWxzZSAnJywKKyAgICAgICAgICAgICAg ICBwcm9hcmduYW1lc1tpXSBpZiBsZW4ocHJvYXJnbmFtZXMpID4gaSBlbHNl ICcnLAorICAgICAgICAgICAgICAgIHByb2FyZ2RlZmF1bHR2YWxzW2ldIGlm IGxlbihwcm9hcmdkZWZhdWx0dmFscykgPiBpIGVsc2UgJycKKyAgICAgICAg ICAgICkKKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihwcm9hcmd0 eXBlcykpXX0KKworICAgICAgICAjIFByZXBhcmUgc3RyaW5nIGZvcm1hdHRl ZCBBcmd1bWVudCB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIFByb3BlcnRpZXMK KyAgICAgICAgIyBwYW5lbC4KKworICAgICAgICBwcm9hcmdzID0gW3NlbGYu X21hcF9hcmd1bWVudHNfbGlzdCgKKyAgICAgICAgICAgIHByb2FyZ21vZGVz X2ZsdHJkW2ldIGlmIGxlbihwcm9hcmdtb2Rlc19mbHRyZCkgPiBpIGVsc2Ug JycsCisgICAgICAgICAgICBwcm9hcmd0eXBlc1tpXSBpZiBsZW4ocHJvYXJn dHlwZXMpID4gaSBlbHNlICcnLAorICAgICAgICAgICAgcHJvYXJnbmFtZXNb aV0gaWYgbGVuKHByb2FyZ25hbWVzKSA+IGkgZWxzZSAnJywKKyAgICAgICAg ICAgIHByb2FyZ2RlZmF1bHR2YWxzW2ldIGlmIGxlbihwcm9hcmdkZWZhdWx0 dmFscykgPiBpIGVsc2UgJycKKyAgICAgICAgKQorICAgICAgICBmb3IgaSBp biByYW5nZShsZW4ocHJvYXJndHlwZXMpKV0KKworICAgICAgICBwcm9hcmdz ID0geyJwcm9hcmdzIjogIiwgIi5qb2luKHByb2FyZ3MpfQorCisgICAgICAg IHJldHVybiBwYXJhbXMsIHByb2FyZ3MKKworICAgIGRlZiBfbWFwX2FyZ3Vt ZW50c19kaWN0KHNlbGYsIGFyZ2lkLCBhcmdtb2RlLCBhcmd0eXBlLCBhcmdu YW1lLCBhcmdkZWZ2YWwpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJu cyBEaWN0IG9mIGZvcm1hdHRlZCBBcmd1bWVudHMuCisgICAgICAgIEFyZ3M6 CisgICAgICAgICAgICBhcmdpZDogQXJndW1lbnQgU2VxdWVuY2UgTnVtYmVy CisgICAgICAgICAgICBhcmdtb2RlOiBBcmd1bWVudCBNb2RlCisgICAgICAg ICAgICBhcmduYW1lOiBBcmd1bWVudCBOYW1lCisgICAgICAgICAgICBhcmd0 eXBlOiBBcmd1bWVudCBUeXBlCisgICAgICAgICAgICBhcmdkZWY6IEFyZ3Vt ZW50IERlZmF1bHQgVmFsdWUKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVy biB7ImFyZ2lkIjogYXJnaWQsCisgICAgICAgICAgICAgICAgImFyZ3R5cGUi OiBhcmd0eXBlLnN0cmlwKCkgaWYgYXJndHlwZSBpcyBub3QgTm9uZSBlbHNl ICcnLAorICAgICAgICAgICAgICAgICJhcmdtb2RlIjogYXJnbW9kZSwKKyAg ICAgICAgICAgICAgICAiYXJnbmFtZSI6IGFyZ25hbWUsCisgICAgICAgICAg ICAgICAgImFyZ2RlZnZhbCI6IGFyZ2RlZnZhbH0KKworICAgIGRlZiBfbWFw X2FyZ3VtZW50c19saXN0KHNlbGYsIGFyZ21vZGUsIGFyZ3R5cGUsIGFyZ25h bWUsIGFyZ2RlZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIExp c3Qgb2YgZm9ybWF0dGVkIEFyZ3VtZW50cy4KKyAgICAgICAgQXJnczoKKyAg ICAgICAgICAgIGFyZ21vZGU6IEFyZ3VtZW50IE1vZGUKKyAgICAgICAgICAg IGFyZ25hbWU6IEFyZ3VtZW50IE5hbWUKKyAgICAgICAgICAgIGFyZ3R5cGU6 IEFyZ3VtZW50IFR5cGUKKyAgICAgICAgICAgIGFyZ2RlZjogQXJndW1lbnQg RGVmYXVsdCBWYWx1ZQorICAgICAgICAiIiIKKyAgICAgICAgYXJnID0gJycK KworICAgICAgICBpZiBhcmdtb2RlOgorICAgICAgICAgICAgYXJnICs9IGFy Z21vZGUgKyAiICIKKyAgICAgICAgaWYgYXJnbmFtZToKKyAgICAgICAgICAg IGFyZyArPSBhcmduYW1lICsgIiAiCisgICAgICAgIGlmIGFyZ3R5cGU6Cisg ICAgICAgICAgICBhcmcgKz0gYXJndHlwZSArICIgIgorICAgICAgICBpZiBh cmdkZWY6CisgICAgICAgICAgICBhcmcgKz0gIiBERUZBVUxUICIgKyBhcmdk ZWYKKworICAgICAgICByZXR1cm4gYXJnCisKKyAgICBkZWYgX2Zvcm1hdF9w cm9hY2xfZnJvbV9kYihzZWxmLCBwcm9hY2wpOgorICAgICAgICAiIiIKKyAg ICAgICAgUmV0dXJucyBwcml2aWxlZ2VzLgorICAgICAgICBBcmdzOgorICAg ICAgICAgICAgcHJvYWNsOiBQcml2aWxlZ2VzIERpY3QKKyAgICAgICAgIiIi CisgICAgICAgIHByaXZpbGVnZXMgPSBbXQorICAgICAgICBmb3Igcm93IGlu IHByb2FjbDoKKyAgICAgICAgICAgIHByaXYgPSBwYXJzZV9wcml2X2Zyb21f ZGIocm93KQorICAgICAgICAgICAgcHJpdmlsZWdlcy5hcHBlbmQocHJpdikK KworICAgICAgICByZXR1cm4geyJhY2wiOiBwcml2aWxlZ2VzfQorCisgICAg QGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiB0eXBlcyhzZWxmLCBnaWQs IHNpZCwgZGlkLCBzY2lkLCBmbmlkPU5vbmUpOgorICAgICAgICAiIiIKKyAg ICAgICAgUmV0dXJucyB0aGUgRGF0YSBUeXBlcy4KKworICAgICAgICBBcmdz OgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAg ICAgIHNpZDogU2VydmVyIElkCisgICAgICAgICAgICBkaWQ6IERhdGFiYXNl IElkCisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgICAg IGZuaWQ6IEZ1bmN0aW9uIElkCisgICAgICAgICIiIgorCisgICAgICAgIGNv bmRpdGlvbiA9ICIodHlwdHlwZSBJTiAoJ2InLCAnYycsICdkJywgJ2UnLCAn cCcsICdyJykgQU5EIHR5cG5hbWUgTk9UIElOICgnYW55JywgJ3RyaWdnZXIn LCAnbGFuZ3VhZ2VfaGFuZGxlcicsICdldmVudF90cmlnZ2VyJykpIgorICAg ICAgICBpZiBzZWxmLmJsdWVwcmludC5zaG93X3N5c3RlbV9vYmplY3RzOgor ICAgICAgICAgICAgY29uZGl0aW9uICs9ICIgQU5EIG5zcG5hbWUgTk9UIExJ S0UgRSdwZ1xcXFxfdG9hc3QlJyBBTkQgbnNwbmFtZSBOT1QgTElLRSBFJ3Bn XFxcXF90ZW1wJSciCisKKyAgICAgICAgIyBHZXQgVHlwZXMKKyAgICAgICAg c3RhdHVzLCB0eXBlcyA9IHNlbGYuZ2V0X3R5cGVzKHNlbGYuY29ubiwgY29u ZGl0aW9uKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXR5cGVz KQorCisgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAg ICAgICAgICBkYXRhPXR5cGVzLAorICAgICAgICAgICAgc3RhdHVzPTIwMAor ICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVm IGdldF9sYW5ndWFnZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5p ZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdGhlIExh bmd1YWdlcyBsaXN0LgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBn aWQ6IFNlcnZlciBHcm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIg SWQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAg IHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICAgICAgZm5pZDogRnVuY3Rpb24g SWQKKyAgICAgICAgIiIiCisKKyAgICAgICAgcmVzID0gW3snbGFiZWwnOiAn JywgJ3ZhbHVlJzogJyd9XQorICAgICAgICB0cnk6CisgICAgICAgICAgICBT UUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYuc3FsX3RlbXBs YXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdnZXRfbGFuZ3VhZ2VzLnNxbCddKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIHN0YXR1cywg cm93cyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAg ICAgcmVzID0gcmVzICsgcm93c1sncm93cyddCisKKyAgICAgICAgICAgIHJl dHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgZGF0 YT1yZXMsCisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAg ICAgKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBleGNfdHlwZSwg ZXhjX3ZhbHVlLCBleGNfdHJhY2ViYWNrID0gc3lzLmV4Y19pbmZvKCkKKyAg ICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5lcnJvcih0cmFjZWJhY2su cHJpbnRfZXhjZXB0aW9uKAorICAgICAgICAgICAgICAgIGV4Y190eXBlLAor ICAgICAgICAgICAgICAgIGV4Y192YWx1ZSwKKyAgICAgICAgICAgICAgICBl eGNfdHJhY2ViYWNrLAorICAgICAgICAgICAgICAgIGxpbWl0PTIKKyAgICAg ICAgICAgICAgICApCisgICAgICAgICAgICApCisKKyAgICAgICAgICAgIHJl dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGV4Y192 YWx1ZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHZh cmlhYmxlX29wdGlvbnMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5p ZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdGhlIHZh cmlhYmxlcy4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBT ZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisg ICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lk OiBTY2hlbWEgSWQKKyAgICAgICAgICAgIGZuaWQ6IEZ1bmN0aW9uIElkCisK KyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24g d2lsbCByZXR1cm4gbGlzdCBvZiB2YXJpYWJsZXMgYXZhaWxhYmxlIGZvcgor ICAgICAgICAgICAgdGFibGUgc3BhY2VzLgorICAgICAgICAiIiIKKyAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgIi8iLmpv aW4oW3NlbGYuc3FsX3RlbXBsYXRlX3BhdGgsICd2YXJpYWJsZXMuc3FsJ10p CisgICAgICAgICAgICApCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYu Y29ubi5leGVjdXRlX2RpY3QoU1FMKQorCisgICAgICAgIGlmIG5vdCBzdGF0 dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXJzZXQpCisKKyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9y ZXNwb25zZSgKKyAgICAgICAgICAgIGRhdGE9cnNldFsncm93cyddLAorICAg ICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBAY2hlY2tf cHJlY29uZGl0aW9uCisgICAgQHZhbGlkYXRlX3JlcXVlc3QKKyAgICBkZWYg Y3JlYXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAi IiIKKyAgICAgICAgQ3JlYXRlIGEgbmV3IEZ1bmN0aW9uIG9iamVjdC4KKwor ICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAg SWQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisgICAgICAgICAgICBk aWQ6IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQK KyAgICAgICAgICAgIGZuaWQ6IEZ1bmN0aW9uIElkCisKKyAgICAgICAgUmV0 dXJuczoKKyAgICAgICAgICAgIEZ1bmN0aW9uIG9iamVjdCBpbiBqc29uIGZv cm1hdC4KKyAgICAgICAgIiIiCisKKyAgICAgICAgdHJ5OgorICAgICAgICAg ICAgIyBHZXQgU1FMIHRvIGNyZWF0ZSBGdW5jdGlvbgorICAgICAgICAgICAg c3RhdHVzLCBTUUwgPSBzZWxmLl9nZXRfc3FsKGdpZCwgc2lkLCBkaWQsIHNj aWQsIHNlbGYucmVxdWVzdCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6 CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1TUUwpCisKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0g c2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIFNR TCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi5zcWxfdGVtcGxh dGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ2dldF9vaWQuc3FsJ10pLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5zcG5hbWU9c2VsZi5yZXF1ZXN0Wydwcm9uYW1l c3BhY2UnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu YW1lPXNlbGYucmVxdWVzdFsnbmFtZSddKQorICAgICAgICAgICAgc3RhdHVz LCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAg ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAg ICAgIHJlcyA9IHJlc1sncm93cyddWzBdCisKKyAgICAgICAgICAgIHJldHVy biBqc29uaWZ5KAorICAgICAgICAgICAgICAgIG5vZGU9c2VsZi5ibHVlcHJp bnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAgICAgICAgICAgICAg ICByZXNbJ29pZCddLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlcXVl c3RbJ3Byb25hbWVzcGFjZSddLAorICAgICAgICAgICAgICAgICAgICByZXNb J25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgaWNvbj0iaWNvbi0iICsg c2VsZi5ub2RlX3R5cGUsCisgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdl PXJlc1snbGFubmFtZSddLAorICAgICAgICAgICAgICAgICAgICBmdW5jb3du ZXI9cmVzWydmdW5jb3duZXInXQorICAgICAgICAgICAgICAgICkKKyAgICAg ICAgICAgICkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVm IGRlbGV0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkKToKKyAg ICAgICAgIiIiCisgICAgICAgIERyb3AgdGhlIEZ1bmN0aW9uLgorCisgICAg ICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAor ICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDog RGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAg ICAgICAgICAgZm5pZDogRnVuY3Rpb24gSWQKKyAgICAgICAgIiIiCisKKyAg ICAgICAgaWYgc2VsZi5jbWQgPT0gJ2RlbGV0ZSc6CisgICAgICAgICAgICAj IFRoaXMgaXMgYSBjYXNjYWRlIG9wZXJhdGlvbgorICAgICAgICAgICAgY2Fz Y2FkZSA9IFRydWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNhc2Nh ZGUgPSBGYWxzZQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgRmV0 Y2ggTmFtZSBhbmQgU2NoZW1hIE5hbWUgdG8gZGVsZXRlIHRoZSBGdW5jdGlv bi4KKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9p bihbc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnZGVsZXRlLnNxbCddKSwgc2NpZD1zY2lkLCBm bmlkPWZuaWQpCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29u bi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgbmFtZSwgZnVu Y19hcmdzLCBuc3BuYW1lID0gcmVzWydyb3dzJ11bMF0KKworICAgICAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnNxbF90 ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnZGVsZXRlLnNxbCddKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBuYW1lPW5hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZnVuY19hcmdzPWZ1bmNfYXJncywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuc3BuYW1lPW5zcG5h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzY2Fk ZT1jYXNjYWRlKQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNv bm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgcmV0dXJuIG1h a2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBzdWNjZXNzPTEs CisgICAgICAgICAgICAgICAgaW5mbz1nZXR0ZXh0KCJGdW5jdGlvbiBEcm9w cGVkLiIpLAorICAgICAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAg ICAgICAgICAnaWQnOiBmbmlkLAorICAgICAgICAgICAgICAgICAgICAnc2Np ZCc6IHNjaWQsCisgICAgICAgICAgICAgICAgICAgICdzaWQnOiBzaWQsCisg ICAgICAgICAgICAgICAgICAgICdnaWQnOiBnaWQsCisgICAgICAgICAgICAg ICAgICAgICdkaWQnOiBkaWQKKyAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICApCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgQHZh bGlkYXRlX3JlcXVlc3QKKyAgICBkZWYgdXBkYXRlKHNlbGYsIGdpZCwgc2lk LCBkaWQsIHNjaWQsIGZuaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVXBk YXRlIHRoZSBGdW5jdGlvbi4KKworICAgICAgICBBcmdzOgorICAgICAgICAg ICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2Vy dmVyIElkCisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAg ICAgICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgICAgIGZuaWQ6IEZ1bmN0 aW9uIElkCisgICAgICAgICIiIgorCisgICAgICAgIHN0YXR1cywgU1FMID0g c2VsZi5fZ2V0X3NxbChnaWQsIHNpZCwgZGlkLCBzY2lkLCBzZWxmLnJlcXVl c3QsIGZuaWQpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9U1FM KQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIFNRTCBhbmQgU1FM LnN0cmlwKCdcbicpIGFuZCBTUUwuc3RyaXAoJyAnKToKKyAgICAgICAgICAg ICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihT UUwpCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1yZXMpCisKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29u X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTEsCisg ICAgICAgICAgICAgICAgICAgIGluZm89IkZ1bmN0aW9uIFVwZGF0ZWQuIiwK KyAgICAgICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAgICAgICAgICAg ICAgICAgICAnaWQnOiBmbmlkLAorICAgICAgICAgICAgICAgICAgICAgICAg J3NjaWQnOiBzY2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NpZCc6 IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdnaWQnOiBnaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAnZGlkJzogZGlkCisgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICBl bHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9u c2UoCisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAg ICAgICAgICAgICAgaW5mbz0iTm90aGluZyB0byB1cGRhdGUuIiwKKyAgICAg ICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAgICAgICAgICAgICAgICAg ICAnaWQnOiBmbmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NjaWQn OiBzY2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NpZCc6IHNpZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICdnaWQnOiBnaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAnZGlkJzogZGlkCisgICAgICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgZXhjZXB0IEV4 Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl cnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJl Y29uZGl0aW9uCisgICAgZGVmIHNxbChzZWxmLCBnaWQsIHNpZCwgZGlkLCBz Y2lkLCBmbmlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJu cyB0aGUgU1FMIGZvciB0aGUgRnVuY3Rpb24gb2JqZWN0LgorCisgICAgICAg IEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAorICAg ICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDogRGF0 YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAg ICAgICAgZm5pZDogRnVuY3Rpb24gSWQKKyAgICAgICAgIiIiCisKKyAgICAg ICAgaWYgc2VsZi5ub2RlX3R5cGUgPT0gJ3Byb2NlZHVyZSc6CisgICAgICAg ICAgICByZXNwX2RhdGEgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKGdpZCwg c2lkLCBkaWQsIHNjaWQsIGZuaWQpCisKKyAgICAgICAgICAgICMgR2V0IFNR TCB0byBjcmVhdGUgRnVuY3Rpb24KKyAgICAgICAgICAgIHN0YXR1cywgZnVu Y19kZWYgPSBzZWxmLl9nZXRfc3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQsIHJl c3BfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5vbmUsIFRydWUpCisgICAgICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9ZnVuY19kZWYpCisKKyAgICAgICAgICAgIG5hbWUg PSByZXNwX2RhdGFbJ25hbWUnXQorICAgICAgICBlbHNlOgorICAgICAgICAg ICAgIyBGZXRjaCB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvbi4KKyAgICAgICAg ICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi5zcWxf dGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnZ2V0X2RlZmluaXRpb24uc3FsJ10pLCBmbmlkPWZuaWQsIHNjaWQ9 c2NpZCkKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4 ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVz OgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICBmdW5jX2RlZiwgbmFt ZSA9IHJlc1sncm93cyddWzBdCisKKyAgICAgICAgc3FsX2hlYWRlciA9ICIi Ii0tIHswfTogezF9CisKKy0tIERST1AgezB9IHsxfTsKKworIiIiLmZvcm1h dChzZWxmLm5vZGVfdHlwZS51cHBlcigpLCBuYW1lKQorCisgICAgICAgIFNR TCA9IHNxbF9oZWFkZXIgKyBmdW5jX2RlZgorCisgICAgICAgIHJldHVybiBh amF4X3Jlc3BvbnNlKHJlc3BvbnNlPVNRTCkKKworICAgIEBjaGVja19wcmVj b25kaXRpb24KKyAgICBAdmFsaWRhdGVfcmVxdWVzdAorICAgIGRlZiBtc3Fs KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZuaWQ9Tm9uZSk6CisgICAg ICAgICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBtb2RpZmllZCBTUUwuCisK KyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3Vw IElkCisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAgICAg ZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElk CisgICAgICAgICAgICBmbmlkOiBGdW5jdGlvbiBJZAorICAgICAgICBSZXR1 cm5zOgorICAgICAgICAgICAgU1FMIHN0YXRlbWVudHMgdG8gY3JlYXRlL3Vw ZGF0ZSB0aGUgRG9tYWluLgorICAgICAgICAiIiIKKworICAgICAgICBzdGF0 dXMsIFNRTCA9IHNlbGYuX2dldF9zcWwoZ2lkLCBzaWQsIGRpZCwgc2NpZCwg c2VsZi5yZXF1ZXN0LCBmbmlkKQorICAgICAgICBpZiBzdGF0dXM6CisgICAg ICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAg ICAgICAgIGRhdGE9U1FMLAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAK KyAgICAgICAgICAgICkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJl dHVybiBTUUwKKworICAgIGRlZiBfZ2V0X3NxbChzZWxmLCBnaWQsIHNpZCwg ZGlkLCBzY2lkLCBkYXRhLCBmbmlkPU5vbmUsIGlzX3NxbD1GYWxzZSk6Cisg ICAgICAgICIiIgorICAgICAgICBHZW5lcmF0ZXMgdGhlIFNRTCBzdGF0ZW1l bnRzIHRvIGNyZWF0ZS91cGRhdGUgdGhlIEZ1bmN0aW9uLgorCisgICAgICAg IEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAorICAg ICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDogRGF0 YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAg ICAgICAgZGF0YTogRnVuY3Rpb24gZGF0YQorICAgICAgICAgICAgZm5pZDog RnVuY3Rpb24gSWQKKyAgICAgICAgIiIiCisKKyAgICAgICAgdHJ5OgorICAg ICAgICAgICAgdm9sX2RpY3QgPSB7J3YnOiAnVk9MQVRJTEUnLCAncyc6ICdT VEFCTEUnLCAnaSc6ICdJTU1VVEFCTEUnfQorCisgICAgICAgICAgICAjIEdl dCBTY2hlbWEgTmFtZSBmcm9tIGl0cyBPSUQuCisgICAgICAgICAgICBpZiAn cHJvbmFtZXNwYWNlJyBpbiBkYXRhOgorICAgICAgICAgICAgICAgIGRhdGFb J3Byb25hbWVzcGFjZSddID0gc2VsZi5fZ2V0X3NjaGVtYShkYXRhWworICAg ICAgICAgICAgICAgICAgICAncHJvbmFtZXNwYWNlJ10pCisgICAgICAgICAg ICBpZiAncHJvdm9sYXRpbGUnIGluIGRhdGE6CisgICAgICAgICAgICAgICAg ZGF0YVsncHJvdm9sYXRpbGUnXSA9IHZvbF9kaWN0W2RhdGFbJ3Byb3ZvbGF0 aWxlJ11dCisKKyAgICAgICAgICAgIGlmIGZuaWQgaXMgbm90IE5vbmU6Cisg ICAgICAgICAgICAgICAgIyBFZGl0IE1vZGUKKworICAgICAgICAgICAgICAg ICMgRmV0Y2ggT2xkIERhdGEgZnJvbSBkYXRhYmFzZS4KKyAgICAgICAgICAg ICAgICBvbGRfZGF0YSA9IHNlbGYuX2ZldGNoX3Byb3BlcnRpZXMoZ2lkLCBz aWQsIGRpZCwgc2NpZCwgZm5pZCkKKworICAgICAgICAgICAgICAgICMgR2V0 IFNjaGVtYSBOYW1lCisgICAgICAgICAgICAgICAgb2xkX2RhdGFbJ3Byb25h bWVzcGFjZSddID0gc2VsZi5fZ2V0X3NjaGVtYShvbGRfZGF0YVsKKyAgICAg ICAgICAgICAgICAgICAgJ3Byb25hbWVzcGFjZSddKQorCisgICAgICAgICAg ICAgICAgaWYgJ3Byb3ZvbGF0aWxlJyBpbiBvbGRfZGF0YToKKyAgICAgICAg ICAgICAgICAgICAgb2xkX2RhdGFbJ3Byb3ZvbGF0aWxlJ10gPSB2b2xfZGlj dFtvbGRfZGF0YVsncHJvdm9sYXRpbGUnXV0KKworICAgICAgICAgICAgICAg ICMgSWYgYW55IG9mIHRoZSBiZWxvdyBhcmd1bWVudCBpcyBjaGFuZ2VkLAor ICAgICAgICAgICAgICAgICMgdGhlbiBDUkVBVEUgT1IgUkVQTEFDRSBTUUwg c3RhdGVtZW50IHNob3VsZCBiZSBjYWxsZWQKKyAgICAgICAgICAgICAgICBm dW5fY2hhbmdlX2FyZ3MgPSBbJ2xhbm5hbWUnLCAncHJvc3JjJywgJ3Byb2Jp bicsICdwcm9zcmNfYycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdwcm92b2xhdGlsZScsICdwcm9pc3N0cmljdCcsICdwcm9zZWNk ZWYnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJv Y29zdCcsICdwcm9sZWFrcHJvb2YnLCAnYXJndW1lbnRzJ10KKworICAgICAg ICAgICAgICAgIGRhdGFbJ2NoYW5nZV9mdW5jJ10gPSBGYWxzZQorICAgICAg ICAgICAgICAgIGZvciBhcmcgaW4gZnVuX2NoYW5nZV9hcmdzOgorICAgICAg ICAgICAgICAgICAgICBpZiBhcmcgPT0gJ2FyZ3VtZW50cycgYW5kIGFyZyBp biBkYXRhIGFuZCBsZW4oZGF0YVthcmddKSBcCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPiAwOgorICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YVsnY2hhbmdlX2Z1bmMnXSA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAg ZWxpZiBhcmcgaW4gZGF0YToKKyAgICAgICAgICAgICAgICAgICAgICAgIGRh dGFbJ2NoYW5nZV9mdW5jJ10gPSBUcnVlCisKKyAgICAgICAgICAgICAgICAj IElmIEZ1bmN0aW9uIERlZmluaXRpb24vQXJndW1lbnRzIGFyZSBjaGFuZ2Vk IHRoZW4gbWVyZ2Ugb2xkCisgICAgICAgICAgICAgICAgIyAgQXJndW1lbnRz IHdpdGggY2hhbmdlZCBvbmVzIGZvciBDcmVhdGUvUmVwbGFjZSBGdW5jdGlv bgorICAgICAgICAgICAgICAgICMgU1FMIHN0YXRlbWVudAorICAgICAgICAg ICAgICAgIGlmICdhcmd1bWVudHMnIGluIGRhdGEgYW5kIGxlbihkYXRhWydh cmd1bWVudHMnXSkgPiAwOgorICAgICAgICAgICAgICAgICAgICBmb3IgYXJn IGluIGRhdGFbJ2FyZ3VtZW50cyddWydjaGFuZ2VkJ106CisgICAgICAgICAg ICAgICAgICAgICAgICBmb3Igb2xkX2FyZyBpbiBvbGRfZGF0YVsnYXJndW1l bnRzJ106CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgYXJnWydh cmdpZCddID09IG9sZF9hcmdbJ2FyZ2lkJ106CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9sZF9hcmcudXBkYXRlKGFyZykKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAg ICAgICAgZGF0YVsnYXJndW1lbnRzJ10gPSBvbGRfZGF0YVsnYXJndW1lbnRz J10KKyAgICAgICAgICAgICAgICBlbGlmIGRhdGFbJ2NoYW5nZV9mdW5jJ106 CisgICAgICAgICAgICAgICAgICAgIGRhdGFbJ2FyZ3VtZW50cyddID0gb2xk X2RhdGFbJ2FyZ3VtZW50cyddCisKKyAgICAgICAgICAgICAgICAjIFBhcnNl IFByaXZpbGVnZXMKKyAgICAgICAgICAgICAgICBpZiAnYWNsJyBpbiBkYXRh OgorICAgICAgICAgICAgICAgICAgICBmb3Iga2V5IGluIFsnYWRkZWQnLCAn ZGVsZXRlZCcsICdjaGFuZ2VkJ106CisgICAgICAgICAgICAgICAgICAgICAg ICBpZiBrZXkgaW4gZGF0YVsnYWNsJ106CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YVsnYWNsJ11ba2V5XSA9IHBhcnNlX3ByaXZfdG9fZGIo CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbJ2FjbCdd W2tleV0sIFsiWCJdKQorCisgICAgICAgICAgICAgICAgIyBQYXJzZSBWYXJp YWJsZXMKKyAgICAgICAgICAgICAgICBjaG5nZF92YXJpYWJsZXMgPSB7fQor ICAgICAgICAgICAgICAgIGRhdGFbJ21lcmdlZF92YXJpYWJsZXMnXSA9IFtd CisgICAgICAgICAgICAgICAgb2xkX2RhdGFbJ2NobmdkX3ZhcmlhYmxlcydd ID0ge30KKyAgICAgICAgICAgICAgICBkZWxfdmFyaWFibGVzID0ge30KKwor ICAgICAgICAgICAgICAgICMgSWYgRnVuY3Rpb24gRGVmaW5pdGlvbi9Bcmd1 bWVudHMgYXJlIGNoYW5nZWQgdGhlbiwKKyAgICAgICAgICAgICAgICAjIE1l cmdlIG9sZCwgbmV3IChhZGRlZCwgY2hhbmdlZCwgZGVsZXRlZCkgdmFyaWFi bGVzLAorICAgICAgICAgICAgICAgICMgd2hpY2ggd2lsbCBiZSB1c2VkIGlu IHRoZSBDUkVBVEUgb3IgUkVQTEFDRSBGdW5jdGlvbiBzcWwKKyAgICAgICAg ICAgICAgICAjIHN0YXRlbWVudAorCisgICAgICAgICAgICAgICAgaWYgZGF0 YVsnY2hhbmdlX2Z1bmMnXToKKyAgICAgICAgICAgICAgICAgICAgIyBUbyBj b21wYXJlIG9sZCBhbmQgbmV3IHZhcmlhYmxlcywgcHJlcGFyaW5nIG5hbWUg OgorICAgICAgICAgICAgICAgICAgICAjIHZhbHVlIGRpY3QKKworICAgICAg ICAgICAgICAgICAgICAjIERlbGV0ZWQgVmFyaWFibGVzCisgICAgICAgICAg ICAgICAgICAgIGlmICd2YXJpYWJsZXMnIGluIGRhdGEgYW5kICdkZWxldGVk JyBpbiBkYXRhWyd2YXJpYWJsZXMnXToKKyAgICAgICAgICAgICAgICAgICAg ICAgIGZvciB2IGluIGRhdGFbJ3ZhcmlhYmxlcyddWydkZWxldGVkJ106Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsX3ZhcmlhYmxlc1t2Wydu YW1lJ11dID0gdlsndmFsdWUnXQorCisgICAgICAgICAgICAgICAgICAgIGlm ICd2YXJpYWJsZXMnIGluIGRhdGEgYW5kICdjaGFuZ2VkJyBpbiBkYXRhWyd2 YXJpYWJsZXMnXToKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciB2IGlu IGRhdGFbJ3ZhcmlhYmxlcyddWydjaGFuZ2VkJ106CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2huZ2RfdmFyaWFibGVzW3ZbJ25hbWUnXV0gPSB2 Wyd2YWx1ZSddCisKKyAgICAgICAgICAgICAgICAgICAgaWYgJ3ZhcmlhYmxl cycgaW4gZGF0YSBhbmQgJ2FkZGVkJyBpbiBkYXRhWyd2YXJpYWJsZXMnXToK KyAgICAgICAgICAgICAgICAgICAgICAgIGZvciB2IGluIGRhdGFbJ3Zhcmlh YmxlcyddWydhZGRlZCddOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNobmdkX3ZhcmlhYmxlc1t2WyduYW1lJ11dID0gdlsndmFsdWUnXQorCisg ICAgICAgICAgICAgICAgICAgIGZvciB2IGluIG9sZF9kYXRhWyd2YXJpYWJs ZXMnXToKKyAgICAgICAgICAgICAgICAgICAgICAgIG9sZF9kYXRhWydjaG5n ZF92YXJpYWJsZXMnXVt2WyduYW1lJ11dID0gdlsndmFsdWUnXQorCisgICAg ICAgICAgICAgICAgICAgICMgUHJlcGFyZSBmaW5hbCBkaWN0IG9mIG5ldyBh bmQgb2xkIHZhcmlhYmxlcworICAgICAgICAgICAgICAgICAgICBmb3IgbmFt ZSwgdmFsIGluIG9sZF9kYXRhWydjaG5nZF92YXJpYWJsZXMnXS5pdGVtcygp OgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4gY2hu Z2RfdmFyaWFibGVzIGFuZCBuYW1lIG5vdCBpbiBcCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRlbF92YXJpYWJsZXM6CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2huZ2RfdmFyaWFibGVzW25hbWVdID0gdmFs CisKKyAgICAgICAgICAgICAgICAgICAgIyBQcmVwYXJlIGRpY3QgaW4gW3sn bmFtZSc6IHZhcl9uYW1lLCAndmFsdWUnOiB2YXJfdmFsfSwuLl0KKyAgICAg ICAgICAgICAgICAgICAgIyBmb3JtYXQKKyAgICAgICAgICAgICAgICAgICAg Zm9yIG5hbWUsIHZhbCBpbiBjaG5nZF92YXJpYWJsZXMuaXRlbXMoKToKKyAg ICAgICAgICAgICAgICAgICAgICAgIGRhdGFbJ21lcmdlZF92YXJpYWJsZXMn XS5hcHBlbmQoeyduYW1lJzogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZSc6 IHZhbH0pCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg ICAgICAgaWYgJ3ZhcmlhYmxlcycgaW4gZGF0YSBhbmQgJ2NoYW5nZWQnIGlu IGRhdGFbJ3ZhcmlhYmxlcyddOgorICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIHYgaW4gZGF0YVsndmFyaWFibGVzJ11bJ2NoYW5nZWQnXToKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkYXRhWydtZXJnZWRfdmFyaWFibGVz J10uYXBwZW5kKHYpCisKKyAgICAgICAgICAgICAgICAgICAgaWYgJ3Zhcmlh YmxlcycgaW4gZGF0YSBhbmQgJ2FkZGVkJyBpbiBkYXRhWyd2YXJpYWJsZXMn XToKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciB2IGluIGRhdGFbJ3Zh cmlhYmxlcyddWydhZGRlZCddOgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGFbJ21lcmdlZF92YXJpYWJsZXMnXS5hcHBlbmQodikKKworICAg ICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAg ICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYuc3FsX3RlbXBsYXRlX3BhdGgs ICd1cGRhdGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICBkYXRhPWRh dGEsIG9fZGF0YT1vbGRfZGF0YQorICAgICAgICAgICAgICAgICkKKyAgICAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBQYXJzZSBQcml2aWxl Z2VzCisgICAgICAgICAgICAgICAgaWYgJ2FjbCcgaW4gZGF0YToKKyAgICAg ICAgICAgICAgICAgICAgZGF0YVsnYWNsJ10gPSBwYXJzZV9wcml2X3RvX2Ri KGRhdGFbJ2FjbCddLCBbIlgiXSkKKworICAgICAgICAgICAgICAgIGFyZ3Mg PSAnJworICAgICAgICAgICAgICAgIGNudCA9IDEKKyAgICAgICAgICAgICAg ICBpZiAnYXJndW1lbnRzJyBpbiBkYXRhOgorICAgICAgICAgICAgICAgICAg ICBmb3IgYSBpbiBkYXRhWydhcmd1bWVudHMnXToKKyAgICAgICAgICAgICAg ICAgICAgICAgIGlmICgoJ2FyZ21vZGUnIGluIGEgYW5kIGFbJ2FyZ21vZGUn XSAhPSAnT1VUJyBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBh Wydhcmdtb2RlJ10gaXMgbm90IE5vbmUKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKSBvciAnYXJnbm9kZScgbm90IGluIGEpOgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmICdhcmdtb2RlJyBpbiBhOgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzICs9IGFbJ2FyZ21vZGUn XSArICIgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICdhcmdu YW1lJyBpbiBhIGFuZCBhWydhcmduYW1lJ10gIT0gJydcCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgYVsnYXJnbmFtZSddIGlz IG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh cmdzICs9IHNlbGYucXRJZGVudCgKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuY29ubiwgYVsnYXJnbmFtZSddKSArICIgIgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICdhcmd0eXBlJyBpbiBh OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzICs9IGFb J2FyZ3R5cGUnXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNu dCA8IGxlbihkYXRhWydhcmd1bWVudHMnXSk6CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFyZ3MgKz0gJywgJworICAgICAgICAgICAgICAg ICAgICAgICAgY250ICs9IDEKKworICAgICAgICAgICAgICAgIGRhdGFbJ2Z1 bmNfYXJncyddID0gYXJncy5zdHJpcCgnICcpCisgICAgICAgICAgICAgICAg IyBDcmVhdGUgbW9kZQorICAgICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90 ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdjcmVhdGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkYXRhPWRhdGEsIGlzX3NxbD1pc19zcWwpCisgICAgICAg ICAgICByZXR1cm4gVHJ1ZSwgU1FMLnN0cmlwKCdcbicpCisKKyAgICAgICAg ZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIEZh bHNlLCBlCisKKyAgICBkZWYgX2ZldGNoX3Byb3BlcnRpZXMoc2VsZiwgZ2lk LCBzaWQsIGRpZCwgc2NpZCwgZm5pZD1Ob25lKToKKyAgICAgICAgIiIiCisg ICAgICAgIFJldHVybiBGdW5jdGlvbiBQcm9wZXJ0aWVzIHdoaWNoIHdpbGwg YmUgdXNlZCBpbiBwcm9wZXJ0aWVzLAorICAgICAgICBtc3FsIGZ1bmN0aW9u LgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBH cm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAg ICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVt YSBJZAorICAgICAgICAgICAgZm5pZDogRnVuY3Rpb24gSWQKKyAgICAgICAg IiIiCisKKyAgICAgICAgcmVzcF9kYXRhID0ge30KKworICAgICAgICBTUUwg PSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYuc3FsX3RlbXBsYXRl X3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2NpZD1zY2lkLCBmbmlkPWZuaWQpCisgICAgICAgIHN0YXR1 cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAg IGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICByZXNwX2Rh dGEgPSByZXNbJ3Jvd3MnXVswXQorCisgICAgICAgICMgR2V0IGZvcm1hdHRl ZCBBcmd1bWVudHMKKyAgICAgICAgZnJtdGRfcGFyYW1zLCBmcm10ZF9wcm9h cmdzID0gc2VsZi5fZm9ybWF0X2FyZ3VtZW50c19mcm9tX2RiKHJlc3BfZGF0 YSkKKyAgICAgICAgcmVzcF9kYXRhLnVwZGF0ZShmcm10ZF9wYXJhbXMpCisg ICAgICAgIHJlc3BfZGF0YS51cGRhdGUoZnJtdGRfcHJvYXJncykKKworICAg ICAgICAjIEZldGNoIHByaXZpbGVnZXMKKyAgICAgICAgU1FMID0gcmVuZGVy X3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnNxbF90ZW1wbGF0ZV9wYXRoLCAn YWNsLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZu aWQ9Zm5pZCkKKyAgICAgICAgc3RhdHVzLCBwcm9hY2xyZXMgPSBzZWxmLmNv bm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9cmVzKQorCisgICAgICAgICMgR2V0IEZvcm1hdHRlZCBQcml2aWxl Z2VzCisgICAgICAgIHJlc3BfZGF0YS51cGRhdGUoc2VsZi5fZm9ybWF0X3By b2FjbF9mcm9tX2RiKHByb2FjbHJlc1sncm93cyddKSkKKworICAgICAgICAj IFNldCBTeXN0ZW0gRnVuY3Rpb25zIFN0YXR1cworICAgICAgICByZXNwX2Rh dGFbJ3N5c2Z1bmMnXSA9IEZhbHNlCisgICAgICAgIGlmIGZuaWQgPD0gc2Vs Zi5tYW5hZ2VyLmRiX2luZm9bZGlkXVsnZGF0bGFzdHN5c29pZCddOgorICAg ICAgICAgICAgcmVzcF9kYXRhWydzeXNmdW5jJ10gPSBUcnVlCisKKyAgICAg ICAgIyBHZXQgZm9ybWF0dGVkIFNlY3VyaXR5IExhYmVscworICAgICAgICBp ZiAnc2VjbGFiZWxzJyBpbiByZXNwX2RhdGE6CisgICAgICAgICAgICByZXNw X2RhdGEudXBkYXRlKHBhcnNlX3NlY19sYWJlbHNfZnJvbV9kYihyZXNwX2Rh dGFbJ3NlY2xhYmVscyddKSkKKworICAgICAgICAjIEdldCBmb3JtYXR0ZWQg VmFyaWFibGUKKyAgICAgICAgcmVzcF9kYXRhLnVwZGF0ZShwYXJzZV92YXJp YWJsZXNfZnJvbV9kYihbCisgICAgICAgICAgICB7InNldGNvbmZpZyI6IHJl c3BfZGF0YVsncHJvY29uZmlnJ119XSkpCisKKyAgICAgICAgcmV0dXJuIHJl c3BfZGF0YQorCisgICAgZGVmIF9nZXRfc2NoZW1hKHNlbGYsIHNjaWQpOgor ICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBTY2hlbWEgTmFtZSBmcm9t IGl0cyBPSUQuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHNjaWQ6 IFNjaGVtYSBJZAorICAgICAgICAiIiIKKyAgICAgICAgU1FMID0gcmVuZGVy X3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnNxbF90ZW1wbGF0ZV9wYXRoLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9zY2hlbWEuc3Fs J10pLCBzY2lkPXNjaWQpCisKKyAgICAgICAgc3RhdHVzLCBzY2hlbWFfbmFt ZSA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCisKKyAgICAgICAg aWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c2NoZW1hX25hbWUpCisKKyAgICAgICAg cmV0dXJuIHNjaGVtYV9uYW1lCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9u CisgICAgZGVmIGRlcGVuZGVudHMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2Np ZCwgZm5pZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9u IGdldCB0aGUgZGVwZW5kZW50cyBhbmQgcmV0dXJuIGFqYXggcmVzcG9uc2UK KyAgICAgICAgZm9yIHRoZSBGdW5jdGlvbiBub2RlLgorCisgICAgICAgIEFy Z3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAorICAgICAg ICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDogRGF0YWJh c2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICAg ICAgZG9pZDogRnVuY3Rpb24gSWQKKyAgICAgICAgIiIiCisgICAgICAgIGRl cGVuZGVudHNfcmVzdWx0ID0gc2VsZi5nZXRfZGVwZW5kZW50cyhzZWxmLmNv bm4sIGZuaWQpCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAg ICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW50c19yZXN1bHQsCisgICAgICAg ICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAgIEBjaGVja19wcmVj b25kaXRpb24KKyAgICBkZWYgZGVwZW5kZW5jaWVzKHNlbGYsIGdpZCwgc2lk LCBkaWQsIHNjaWQsIGZuaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhp cyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVuY2llcyBhbmQgcmV0dXJuIGFq YXggcmVzcG9uc2UKKyAgICAgICAgZm9yIHRoZSBGdW5jdGlvbiBub2RlLgor CisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91 cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAg IGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJ ZAorICAgICAgICAgICAgZG9pZDogRnVuY3Rpb24gSWQKKyAgICAgICAgIiIi CisgICAgICAgIGRlcGVuZGVuY2llc19yZXN1bHQgPSBzZWxmLmdldF9kZXBl bmRlbmNpZXMoc2VsZi5jb25uLCBmbmlkKQorICAgICAgICByZXR1cm4gYWph eF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPWRlcGVuZGVuY2ll c19yZXN1bHQsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkK KworRnVuY3Rpb25WaWV3LnJlZ2lzdGVyX25vZGVfdmlldyhibHVlcHJpbnQp CisKKworY2xhc3MgUHJvY2VkdXJlTW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxl KToKKyAgICAiIiIKKyAgICBjbGFzcyBQcm9jZWR1cmVNb2R1bGUoU2NoZW1h Q2hpbGRNb2R1bGUpOgorCisgICAgICAgIFRoaXMgY2xhc3MgcmVwcmVzZW50 cyBUaGUgUHJvY2VkdXJlcyBNb2R1bGUuCisKKyAgICBNZXRob2RzOgorICAg IC0tLS0tLS0KKyAgICAqIF9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKyAg ICAgIC0gSW5pdGlhbGl6ZSB0aGUgUHJvY2VkdXJlcyBNb2R1bGUuCisKKyAg ICAqIGdldF9ub2RlcyhnaWQsIHNpZCwgZGlkLCBzY2lkKQorICAgICAgLSBH ZW5lcmF0ZSB0aGUgUHJvY2VkdXJlcyBjb2xsZWN0aW9uIG5vZGUuCisKKyAg ICAqIG5vZGVfaW5vZGUoKToKKyAgICAgIC0gUmV0dXJucyBQcm9jZWR1cmVz IG5vZGUgYXMgbGVhZiBub2RlLgorCisgICAgKiBzY3JpcHRfbG9hZCgpCisg ICAgICAtIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9yIFByb2NlZHVyZXMs IHdoZW4gc2NoZW1hIG5vZGUgaXMKKyAgICAgICAgaW5pdGlhbGl6ZWQuCisK KyAgICAiIiIKKworICAgIE5PREVfVFlQRSA9ICdwcm9jZWR1cmUnCisgICAg Q09MTEVDVElPTl9MQUJFTCA9IGdldHRleHQoIlByb2NlZHVyZXMiKQorCisg ICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAg ICAgICIiIgorICAgICAgICBJbml0aWFsaXplIHRoZSBQcm9jZWR1cmUgTW9k dWxlLgorICAgICAgICBBcmdzOgorICAgICAgICAgICAgKmFyZ3M6CisgICAg ICAgICAgICAqKmt3YXJnczoKKyAgICAgICAgIiIiCisgICAgICAgIHN1cGVy KFByb2NlZHVyZU1vZHVsZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dh cmdzKQorCisgICAgICAgIHNlbGYubWluX3ZlciA9IDkwMTAwCisgICAgICAg IHNlbGYubWF4X3ZlciA9IE5vbmUKKyAgICAgICAgc2VsZi5zZXJ2ZXJfdHlw ZSA9IFsncHBhcyddCisKKyAgICBkZWYgZ2V0X25vZGVzKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgR2VuZXJh dGUgUHJvY2VkdXJlcyBjb2xsZWN0aW9uIG5vZGUuCisgICAgICAgICIiIgor ICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlv bl9ub2RlKHNjaWQpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbm9kZV9p bm9kZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIE1ha2UgdGhlIG5v ZGUgYXMgbGVhZiBub2RlLgorICAgICAgICBSZXR1cm5zOgorICAgICAgICAg ICAgRmFsc2UgYXMgdGhpcyBub2RlIGRvZXNuJ3QgaGF2ZSBjaGlsZCBub2Rl cy4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAg QHByb3BlcnR5CisgICAgZGVmIHNjcmlwdF9sb2FkKHNlbGYpOgorICAgICAg ICAiIiIKKyAgICAgICAgTG9hZCB0aGUgbW9kdWxlIHNjcmlwdCBmb3IgUHJv Y2VkdXJlcywgd2hlbiB0aGUKKyAgICAgICAgc2NoZW1hIG5vZGUgaXMgaW5p dGlhbGl6ZWQuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2NoZW1h cy5TY2hlbWFNb2R1bGUuTk9ERV9UWVBFCisKKworcHJvY2VkdXJlX2JsdWVw cmludCA9IFByb2NlZHVyZU1vZHVsZShfX25hbWVfXykKKworCitjbGFzcyBQ cm9jZWR1cmVWaWV3KEZ1bmN0aW9uVmlldyk6CisKKyAgICBub2RlX3R5cGUg PSBwcm9jZWR1cmVfYmx1ZXByaW50Lm5vZGVfdHlwZQorCisgICAgZGVmIF9f aW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICIiIgor ICAgICAgICBJbml0aWFsaXplIHRoZSBGdW5jdGlvbiBNb2R1bGUuCisgICAg ICAgIEFyZ3M6CisgICAgICAgICAgICAqYXJnczoKKyAgICAgICAgICAgICoq a3dhcmdzOgorICAgICAgICAiIiIKKyAgICAgICAgc3VwZXIoUHJvY2VkdXJl Vmlldywgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorCisgICAg QHByb3BlcnR5CisgICAgZGVmIHJlcXVpcmVkX2FyZ3Moc2VsZik6CisgICAg ICAgICIiIgorICAgICAgICBSZXR1cm5zIFJlcXVpcmVkIGFyZ3VtZW50cyBm b3IgcHJvY2VkdXJlcyBub2RlLgorICAgICAgICBXaGVyZQorICAgICAgICAg ICAgUmVxdWlyZWQgQXJnczoKKyAgICAgICAgICAgICAgICBuYW1lOiAgICAg ICAgICAgTmFtZSBvZiB0aGUgRnVuY3Rpb24KKyAgICAgICAgICAgICAgICBw cm9uYW1lc3BhY2U6ICAgRnVuY3Rpb24gTmFtZXNwYWNlCisgICAgICAgICAg ICAgICAgbGFubmFtZTogICAgICAgIEZ1bmN0aW9uIExhbmd1YWdlIE5hbWUK KyAgICAgICAgICAgICAgICBwcm9zcmM6ICAgICAgICAgRnVuY3Rpb24gQ29k ZQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIFsnbmFtZScsCisgICAg ICAgICAgICAgICAgJ3Byb25hbWVzcGFjZScsCisgICAgICAgICAgICAgICAg J2xhbm5hbWUnLAorICAgICAgICAgICAgICAgICdwcm9zcmMnXQorCisgICAg ZGVmIG1vZHVsZV9qcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIExv YWQgSlMgZmlsZSAocHJvY2VkdXJlcy5qcykgZm9yIHRoaXMgbW9kdWxlLgor ICAgICAgICAiIiIKKworICAgICAgICByZXR1cm4gbWFrZV9yZXNwb25zZSgK KyAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAg ICAicHJvY2VkdXJlL2pzL3Byb2NlZHVyZXMuanMiLAorICAgICAgICAgICAg ICAgIF89Z2V0dGV4dAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgIDIw MCwgeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC1qYXZhc2NyaXB0 J30KKyAgICAgICAgKQorCitQcm9jZWR1cmVWaWV3LnJlZ2lzdGVyX25vZGVf dmlldyhwcm9jZWR1cmVfYmx1ZXByaW50KQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3N0YXRpYy9pbWcvY29sbC1mdW5jdGlvbi5w bmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvc3RhdGljL2ltZy9jb2xs LWZ1bmN0aW9uLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDQ4NzRl NTU3NGU2MjRjMjY4NzY4OWFjNzVmM2JhNGVkNjllODExCkdJVCBiaW5hcnkg cGF0Y2gKbGl0ZXJhbCAzNDkKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4w d0IhNjM/d3lsYEdiTCFhZXo7VkUwQ1ZMPTg7Iz8qYC0oaF5zUmk5CnoqPiZ+ YykzNFBGP31wYzBvT31GVCZlWXBnMyFsQ0p7e1FwdUtQbH1HYXdiME4rVnRY cnkmKWVeOClIZTNVb2VCaQp6dm0wcVo0cmhUIVdIRkhUMEFzaDQqPipyaXFO al52aHtXYUNlc3toRDF7XkZPdD9xdlB6ckkofnZGekVnRUVhQ1QKektuOCZm Q2N8VEBvSHlEd3wzMCFJblh+VnA9RERRQHxFfVNpV05EZjFkNW97dk9TOV48 akg2SlElIXtYQTY4fj1UCnpVVkhVLShXUilfelpaWjFfeHQoeGpofnJYVy17 fUJjJDs0aHZgbj9jSEtIVVh1X1Y8aHhoTkcjRiZHJmI4dE5KdAp6PktkN2I3 QEFyY218R2NgWTgja1k4NWw1RG9ffm08QXZacklHcCFQJiE5ZHIqNX53R3sk a0B1biNMQj0tK1dASDMKVTtNRFpjSDkhcHZwMDBpXz56b3ByMDZLU3FjbU16 WgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3N0YXRpYy9pbWcvY29sbC1wcm9jZWR1cmUu cG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3N0YXRpYy9pbWcvY29s bC1wcm9jZWR1cmUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjMTNh OWJjNzNhNzgyYjUxMzkwOTVhZjU5NmUxNWQ3YjY4ZGQyMGMKR0lUIGJpbmFy eSBwYXRjaApsaXRlcmFsIDMzNwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZw XjB3QiE3Mz8kIyllRlBGdjVBWD9iMT05RUMlc0NibV5uVU4mZHNDKWQKeiVn JW0oPyVjSk9tVUJeMiYpMlRLUiRUbzVgfWI/cil4NmV4Jnd4cjlPTT83QDg2 Mk03TkNSPj4zcF5yPWZ3VHUwCnp5UGVGbzEyUGdsVF52ST10fHVvWGdhb0I5 RnNtZ2lHYTU3cHhfWE1iYUJGSHhPMHpPWldAV3pBQHspM0JkIzFFdgp6Zj5u Uz13UnlsKTBnc0lEWUskOE0xVD5taih3R2phRVU8al8pTHtYS1ZkaG4oMkBp WGB0a007KDhTYj1qJXglOE8KeiYmS2R6bVopUndHek1Sd1d2VjV2NWhXPiFD ODxgKU1YNWxGIU58YlNQfWpndipUXikpKEEzSm4reylOWStyWjRxCnp6K2op O3JUSGl0YWBSSSUoPCh0NDQwSGBGZnFGdVdqSUImZXRQRnF9ZkkxQ01PJUdp SSlXRzJCPmdUZX5EV000ZgpEQyZGcSEKCmxpdGVyYWwgMApIY21WP2QwMDAw MQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9zdGF0 aWMvaW1nL2Z1bmN0aW9uLnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy9zdGF0aWMvaW1nL2Z1bmN0aW9uLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwLi42NTY4NTRhMDE5MWI1ZGQ1ZDQ2NWY5MGNmYmNlZWJkYzM5MTNmMWEy CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzMjUKemNtZUFTQE4/KG9sSHlg dVZCcSFpYTB2cF4wd0IhNzM/JCMpZUZQSEYzaClWVzE9M1UzSm58fCF5WSRN UmhhZG17Cnp7cn5VWT1idX5kZTRjZ3FaUzlpaD17KmxxSXYka0dlJHYwPVd5 K294K2ttUFdPTT83QDg2Mk03TkNSPj4zcF5yPQp6ZndUdTB5UGVGbzEyVGQ8 VF52ST10fHVvckZnYk16JW5IMmUhRWgjX3NJWmE0YTgoLXtXMj9sfUROYDw4 WUg7Iy0KenN0fS1aO0pfNnxIWkMzP1c1PExeMz13Qm5nKGw/byt9ZHM0JGVV elUlJEMqblBMKGxhX1hQJXFpbHhHYms3c0IhCnowWm1zZWFnOFdSTmkwZFZO LWp6VFFWZDIwaDZjS1pNIUUpdUF3fnZQQ2RPN0tyckhMa1J0NSgxLXMhREUo VTY7OwpsbDleVHMoT19UKykmTnYoVnI1X2soUXM7ZD1vKzh+MjJXUSVtdnY0 Rk8jc0drYUFnMWgKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9zdGF0aWMvaW1nL3Byb2Nl ZHVyZS5wbmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvc3RhdGljL2lt Zy9wcm9jZWR1cmUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiNjVk ZmY5ZWIyYzM3M2RmMDMxNjY5YWRiYTdhODJjMGFlMmFhYTYKR0lUIGJpbmFy eSBwYXRjaApsaXRlcmFsIDMyMgp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZw XjB3QiE3Mz8kIyllRlBGdjVBWD9iMT05Q3Mle21xb15tNkNVQTFffH4KenxO SG1icWVyank/UiZJciswRXxtT0ohdmppO0olfUg8dUxNeSRuPiFTUTZ3SCU7 NTBzTWpEWEFTPk8+XzQ1VTU0CnoqeklKdDlncT5ePkVhbHxhWG1TfmZ5dD4k VXs+SHc0fjg9ZE1UTHpWaE82NHg3K1dRI1BNTEQpUWlHR3ZRLXVKUAp6MHwl fSF2VF5iRjcmfDZSVnUoMXFEbHtSdD1oa2xYTSYyWj1WeiNXbE1IM2lTI2J6 KXQjNksxSz9zdTxvOHFqcHIKejY0IXs1bCpFISR0S18wb0FqTSMwVX0mZ29W NW48azhlKFdfV25nWSlZXkg1c1dAVFdvUHd2dXU2Yi1yZ0RWYkBOCnBBUG9r KDI5YGlRQXg2ZWxDTUgkfUtuKn5oMkIpVG50XnNPYkBPMVRhUz84M3sxT1Fo I1pGVD92CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL2Nz cy9mdW5jdGlvbi5jc3MgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL2Nzcy9mdW5jdGlvbi5jc3MKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZiMmU3MQotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vY3NzL2Z1bmN0aW9uLmNzcwpAQCAtMCwwICsxLDMgQEAKKy5mdW5j dGlvbnNfY29kZSB7CisgICAgaGVpZ2h0OiAxMzBweCAhaW1wb3J0YW50Owor fQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vanMv ZnVuY3Rpb25zLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9qcy9mdW5jdGlvbnMuanMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uYjBhNWQxYwotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vanMvZnVuY3Rpb25zLmpzCkBAIC0wLDAgKzEsNDM4IEBACisvKiBDcmVh dGUgYW5kIFJlZ2lzdGVyIEZ1bmN0aW9uIENvbGxlY3Rpb24gYW5kIE5vZGUu ICovCitkZWZpbmUoCisgICAgICAgIFsnanF1ZXJ5JywgJ3VuZGVyc2NvcmUn LCAndW5kZXJzY29yZS5zdHJpbmcnLAorICAgICAgICAgJ3BnYWRtaW4nLCAn cGdhZG1pbi5icm93c2VyJywgJ2FsZXJ0aWZ5JywKKyAgICAgICAgICAncGdh ZG1pbi5icm93c2VyLmNvbGxlY3Rpb24nLCAncGdhZG1pbi5icm93c2VyLnNl cnZlci5wcml2aWxlZ2UnXSwKK2Z1bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4s IHBnQnJvd3NlciwgYWxlcnRpZnkpIHsKKworICBpZiAoIXBnQnJvd3Nlci5O b2Rlc1snY29sbC1mdW5jdGlvbiddKSB7CisgICAgdmFyIGZ1bmN0aW9ucyA9 IHBnQWRtaW4uQnJvd3Nlci5Ob2Rlc1snY29sbC1mdW5jdGlvbiddID0KKyAg ICAgIHBnQWRtaW4uQnJvd3Nlci5Db2xsZWN0aW9uLmV4dGVuZCh7CisgICAg ICAgIG5vZGU6ICdmdW5jdGlvbicsCisgICAgICAgIGxhYmVsOiAne3sgXygn RnVuY3Rpb25zJykgfX0nLAorICAgICAgICB0eXBlOiAnY29sbC1mdW5jdGlv bicsCisgICAgICAgIGNvbHVtbnM6IFsnbmFtZScsICdmdW5jb3duZXInLCAn ZGVzY3JpcHRpb24nXQorICAgICAgfSk7CisgIH07CisKKyAgLy8gU2VjdXJp dHkgTW9kZWwKKyAgdmFyIFNlY3VyaXR5TW9kZWwgPSBCYWNrZm9ybS5TZWN1 cml0eU1vZGVsID0gcGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5k KHsKKyAgICBkZWZhdWx0czogeworICAgICAgcHJvdmlkZXI6IG51bGwsCisg ICAgICBsYWJlbDogbnVsbAorICAgIH0sCisgICAgc2NoZW1hOiBbeworICAg ICAgaWQ6ICdwcm92aWRlcicsIGxhYmVsOiAne3sgXygnUHJvdmlkZXInKSB9 fScsCisgICAgICB0eXBlOiAndGV4dCcsIGVkaXRhYmxlOiB0cnVlLCBjZWxs SGVhZGVyQ2xhc3Nlczond2lkdGhfcGVyY2VudF81MCcKKyAgICB9LHsKKyAg ICAgIGlkOiAnc2VjdXJpdHlfbGFiZWwnLCBsYWJlbDogJ3t7IF8oJ1NlY3Vy aXR5IExhYmVsJykgfX0nLAorICAgICAgdHlwZTogJ3RleHQnLCBlZGl0YWJs ZTogdHJ1ZSwgY2VsbEhlYWRlckNsYXNzZXM6J3dpZHRoX3BlcmNlbnRfNTAn CisgICAgfV0sCisgICAgdmFsaWRhdGU6IGZ1bmN0aW9uKCkgeworICAgICAg dmFyIGVyciA9IHt9LAorICAgICAgICAgIGVycm1zZyA9IG51bGwsCisgICAg ICAgICAgZGF0YSA9IHRoaXMudG9KU09OKCk7CisKKyAgICAgIGlmIChfLmlz VW5kZWZpbmVkKGRhdGEubGFiZWwpIHx8CisgICAgICAgIF8uaXNOdWxsKGRh dGEubGFiZWwpIHx8CisgICAgICAgIFN0cmluZyhkYXRhLmxhYmVsKS5yZXBs YWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgIHJldHVy biBfKCJQbGVhc2Ugc3BlY2lmeSB0aGUgdmFsdWUgZm9yIGFsbCB0aGUgc2Vj dXJpdHkgcHJvdmlkZXJzLiIpOworICAgICAgfQorICAgICAgcmV0dXJuIG51 bGw7CisgICAgfQorICB9KTsKKworICAvLyBBcmd1bWVudCBNb2RlbAorICB2 YXIgQXJndW1lbnRNb2RlbCA9IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVs LmV4dGVuZCh7CisgICAgaWRBdHRyaWJ1dGU6ICdhcmdpZCcsCisgICAgZGVm YXVsdHM6IHsKKyAgICAgIGFyZ2lkOiB1bmRlZmluZWQsCisgICAgICBhcmd0 eXBlOiB1bmRlZmluZWQsCisgICAgICBhcmdtb2RlOiB1bmRlZmluZWQsCisg ICAgICBhcmduYW1lOiB1bmRlZmluZWQsCisgICAgICBhcmdkZWZ2YWw6IHVu ZGVmaW5lZAorICAgIH0sCisgICAgc2NoZW1hOiBbeworICAgICAgaWQ6ICdh cmdpZCcsIHZpc2libGU6IGZhbHNlLCB0eXBlOiAndGV4dCcsCisgICAgICBt b2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsJ2NyZWF0ZSddCisgICAgICB9 LHsKKyAgICAgICAgaWQ6ICdhcmd0eXBlJywgbGFiZWw6J3t7IF8oJ0RhdGEg VHlwZScpIH19JywgY2VsbDoKKyAgICAgICAgJ25vZGUtYWpheC1vcHRpb25z JywgY2VsbEhlYWRlckNsYXNzZXM6ICd3aWR0aF9wZXJjZW50XzMwJywKKyAg ICAgICAgY29udHJvbDogJ25vZGUtYWpheC1vcHRpb25zJywgdHlwZTogJ3Rl eHQnLCB1cmw6ICdnZXRfdHlwZXMnLAorICAgICAgICBlZGl0YWJsZTogZnVu Y3Rpb24obSkgeworICAgICAgICAgIHJldHVybiBfLmlzVW5kZWZpbmVkKG0u aXNOZXcpID8gdHJ1ZSA6IG0uaXNOZXcoKTsKKyAgICAgICAgfSwgZmlyc3Rf ZW1wdHk6IHRydWUKKyAgICAgIH0seworICAgICAgICBpZDogJ2FyZ21vZGUn LCBsYWJlbDone3sgXygnTW9kZScpIH19JywgdHlwZTogJ29wdGlvbnMnLAor ICAgICAgICBjb250cm9sOiAnbm9kZS1hamF4LW9wdGlvbnMnLCBjZWxsSGVh ZGVyQ2xhc3Nlczond2lkdGhfcGVyY2VudF8yMCcsCisgICAgICAgIG9wdGlv bnM6WworICAgICAgICAgIHsnbGFiZWwnOiAnSU4nLCAndmFsdWUnOiAnSU4n fSwKKyAgICAgICAgICB7J2xhYmVsJzogJ09VVCcsICd2YWx1ZSc6ICdPVVQn fSwKKyAgICAgICAgICB7J2xhYmVsJzogJ0lOT1VUJywgJ3ZhbHVlJzogJ0lO T1VUJ30sCisgICAgICAgICAgeydsYWJlbCc6ICdWQVJJQURJQycsICd2YWx1 ZSc6ICdWQVJJQURJQyd9CisgICAgICAgIF0sIGVkaXRhYmxlOiBmdW5jdGlv bihtKSB7CisgICAgICAgICAgICByZXR1cm4gXy5pc1VuZGVmaW5lZChtLmlz TmV3KSA/IHRydWUgOiBtLmlzTmV3KCk7CisgICAgICAgICAgIH0KKyAgICAg IH0seworICAgICAgICBpZDogJ2FyZ25hbWUnLCBsYWJlbDone3sgXygnQXJn dW1lbnQgTmFtZScpIH19JywgdHlwZTogJ3RleHQnLAorICAgICAgICBjZWxs OiAnc3RyaW5nJywgZWRpdGFibGU6IHRydWUsIGNlbGxIZWFkZXJDbGFzc2Vz Oid3aWR0aF9wZXJjZW50XzMwJywKKyAgICAgIH0seworICAgICAgICBpZDog J2FyZ2RlZnZhbCcsIGxhYmVsOid7eyBfKCdEZWZhdWx0IFZhbHVlJykgfX0n LCB0eXBlOiAndGV4dCcsCisgICAgICAgIGNlbGw6ICdzdHJpbmcnLCBlZGl0 YWJsZTogdHJ1ZSwgIGNlbGxIZWFkZXJDbGFzc2VzOid3aWR0aF9wZXJjZW50 XzIwJworICAgICAgfQorICAgIF0sCisgICAgdG9KU09OOiBCYWNrYm9uZS5N b2RlbC5wcm90b3R5cGUudG9KU09OCisgIH0pOworCisgIGlmICghcGdCcm93 c2VyLk5vZGVzWydmdW5jdGlvbiddKSB7CisgICAgcGdBZG1pbi5Ccm93c2Vy Lk5vZGVzWydmdW5jdGlvbiddID0gcGdCcm93c2VyLk5vZGUuZXh0ZW5kKHsK KyAgICAgIHR5cGU6ICdmdW5jdGlvbicsCisgICAgICBsYWJlbDogJ3t7IF8o J0Z1bmN0aW9uJykgfX0nLAorICAgICAgY29sbGVjdGlvbl90eXBlOiAnY29s bC1mdW5jdGlvbicsCisgICAgICBoYXNTUUw6IHRydWUsCisgICAgICBoYXNE ZXBlbmRzOiB0cnVlLAorICAgICAgcGFyZW50X3R5cGU6IFsnc2NoZW1hJ10s CisgICAgICBJbml0OiBmdW5jdGlvbihhcmdzKSB7CisgICAgICAgIC8qIEF2 b2lkIG11bGl0cGxlIHJlZ2lzdHJhdGlvbiBvZiBtZW51cyAqLworICAgICAg ICBpZiAodGhpcy5pbml0aWFsaXplZCkKKyAgICAgICAgICAgIHJldHVybjsK KworICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTsKKworICAgICAg ICBwZ0Jyb3dzZXIuYWRkX21lbnVzKFt7CisgICAgICAgICAgbmFtZTogJ2Ny ZWF0ZV9mdW5jdGlvbl9vbl9jb2xsJywgbm9kZTogJ2NvbGwtZnVuY3Rpb24n LCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydvYmplY3Qn LCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMn LAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQs IGxhYmVsOiAne3sgXygnRnVuY3Rpb24uLi4nKSB9fScsCisgICAgICAgICAg aWNvbjogJ3djVGFiSWNvbiBpY29uLWZ1bmN0aW9uJywgZGF0YToge2FjdGlv bjogJ2NyZWF0ZScsIGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBlbmFibGU6 ICdjYW5DcmVhdGUnCisgICAgICAgIH0seworICAgICAgICAgIG5hbWU6ICdj cmVhdGVfZnVuY3Rpb24nLCBub2RlOiAnZnVuY3Rpb24nLCBtb2R1bGU6IHRo aXMsCisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCdd LCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAg IGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sg XygnRnVuY3Rpb24uLi4nKSB9fScsCisgICAgICAgICAgaWNvbjogJ3djVGFi SWNvbiBpY29uLWZ1bmN0aW9uJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScs IGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUn CisgICAgICAgIH0seworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfZnVuY3Rp b24nLCBub2RlOiAnc2NoZW1hJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAg IGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdz aG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2Ny ZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJlbDogJ3t7IF8oJ0Z1bmN0aW9uLi4u JykgfX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1mdW5j dGlvbicsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUnLCBjaGVjazogZmFsc2V9 LAorICAgICAgICAgIGVuYWJsZTogJ2NhbkNyZWF0ZScKKyAgICAgICAgfQor ICAgICAgICBdKTsKKworICAgICAgfSwKKyAgICAgIGNhbkRyb3A6IHBnQnJv d3Nlci5Ob2Rlc1snc2NoZW1hJ10uY2FuQ2hpbGREcm9wLAorICAgICAgY2Fu RHJvcENhc2NhZGU6IHBnQnJvd3Nlci5Ob2Rlc1snc2NoZW1hJ10uY2FuQ2hp bGREcm9wLAorICAgICAgbW9kZWw6IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1v ZGVsLmV4dGVuZCh7CisgICAgICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGF0 dHJzLCBhcmdzKSB7CisgICAgICAgICAgdmFyIGlzTmV3ID0gKF8uc2l6ZShh dHRycykgPT09IDApOworICAgICAgICAgIGlmIChpc05ldykgeworICAgICAg ICAgICAgLy8gU2V0IFNlbGVjdGVkIFNjaGVtYQorICAgICAgICAgICAgc2No ZW1hX2lkID0gYXJncy5ub2RlX2luZm8uc2NoZW1hLl9pZAorICAgICAgICAg ICAgdGhpcy5zZXQoeydwcm9uYW1lc3BhY2UnOiBzY2hlbWFfaWR9LCB7c2ls ZW50OiB0cnVlfSk7CisKKyAgICAgICAgICAgIC8vIFNldCBDdXJyZW50IFVz ZXIKKyAgICAgICAgICAgIHZhciB1c2VySW5mbyA9IHBnQnJvd3Nlci5zZXJ2 ZXJJbmZvW2FyZ3Mubm9kZV9pbmZvLnNlcnZlci5faWRdLnVzZXI7CisgICAg ICAgICAgICB0aGlzLnNldCh7J2Z1bmNvd25lcic6IHVzZXJJbmZvLm5hbWV9 LCB7c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgfQorICAgICAgICAgIHBn QWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLnByb3RvdHlwZS5pbml0aWFsaXpl LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgICAgICAgIH0sCisgICAgICAg IGRlZmF1bHRzOiB7CisgICAgICAgICAgbmFtZTogdW5kZWZpbmVkLAorICAg ICAgICAgIG9pZDogdW5kZWZpbmVkLAorICAgICAgICAgIHhtaW46IHVuZGVm aW5lZCwKKyAgICAgICAgICBmdW5jb3duZXI6IHVuZGVmaW5lZCwKKyAgICAg ICAgICBwcm9uYW1lc3BhY2U6IHVuZGVmaW5lZCwKKyAgICAgICAgICBkZXNj cmlwdGlvbjogdW5kZWZpbmVkLAorICAgICAgICAgIHByb25hcmdzOiB1bmRl ZmluZWQsIC8qIEFyZ3VtZW50IENvdW50ICovCisgICAgICAgICAgcHJvYXJn czogdW5kZWZpbmVkLCAvKiBBcmd1bWVudHMgKi8KKyAgICAgICAgICBwcm9h cmd0eXBlbmFtZXM6IHVuZGVmaW5lZCwgLyogQXJndW1lbnQgU2lnbmF0dXJl ICovCisgICAgICAgICAgcHJvcmV0dHlwZW5hbWU6IHVuZGVmaW5lZCwgLyog UmV0dXJuIFR5cGUgKi8KKyAgICAgICAgICBsYW5uYW1lOiAnc3FsJywgLyog TGFuZ3VhZ2UgTmFtZSBpbiB3aGljaCBmdW5jdGlvbiBpcyBiZWluZyB3cml0 dGVuICovCisgICAgICAgICAgcHJvdm9sYXRpbGU6IHVuZGVmaW5lZCwgLyog Vm9sYXRpbGl0eSAqLworICAgICAgICAgIHByb3JldHNldDogdW5kZWZpbmVk LCAvKiBSZXR1cm4gU2V0ICovCisgICAgICAgICAgcHJvaXNzdHJpY3Q6IHVu ZGVmaW5lZCwKKyAgICAgICAgICBwcm9zZWNkZWY6IHVuZGVmaW5lZCwgLyog U2VjdXJpdHkgb2YgZGVmaW5lciAqLworICAgICAgICAgIHByb2lzd2luZG93 OiB1bmRlZmluZWQsIC8qIFdpbmRvdyBGdW5jdGlvbiA/ICovCisgICAgICAg ICAgcHJvY29zdDogdW5kZWZpbmVkLCAvKiBFc3RpbWF0ZWQgZXhlY3V0aW9u IENvc3QgKi8KKyAgICAgICAgICBwcm9yb3dzOiB1bmRlZmluZWQsIC8qIEVz dGltYXRlZCBudW1iZXIgb2Ygcm93cyAqLworICAgICAgICAgIHByb2xlYWtw cm9vZjogdW5kZWZpbmVkLAorICAgICAgICAgIGFyZ3VtZW50czogW10sCisg ICAgICAgICAgcHJvc3JjOiB1bmRlZmluZWQsCisgICAgICAgICAgcHJvc3Jj X2M6IHVuZGVmaW5lZCwKKyAgICAgICAgICBwcm9iaW46ICckbGliZGlyLycs CisgICAgICAgICAgb3B0aW9uczogW10sCisgICAgICAgICAgdmFyaWFibGVz OiBbXSwKKyAgICAgICAgICBwcm9hY2w6IHVuZGVmaW5lZCwKKyAgICAgICAg ICBzZWNsYWJlbHM6IFtdLAorICAgICAgICAgIGFjbDogW10sCisgICAgICAg ICAgc3lzZnVuYzogdW5kZWZpbmVkCisgICAgICAgIH0sCisgICAgICAgIHNj aGVtYTogW3sKKyAgICAgICAgICBpZDogJ25hbWUnLCBsYWJlbDogJ3t7IF8o J05hbWUnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6 ICd0ZXh0JywgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0ZScsICdlZGl0 J10KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdvaWQnLCBsYWJlbDog J3t7IF8oJ09JRCcpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAg dHlwZTogJ3RleHQnICwgbW9kZTogWydwcm9wZXJ0aWVzJ10KKyAgICAgICAg fSx7CisgICAgICAgICAgaWQ6ICdmdW5jb3duZXInLCBsYWJlbDogJ3t7IF8o J093bmVyJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICBjb250 cm9sOiBCYWNrZm9ybS5Ob2RlTGlzdEJ5TmFtZUNvbnRyb2wsIG5vZGU6ICdy b2xlJywgIHR5cGU6CisgICAgICAgICAgJ3RleHQnLCBkaXNhYmxlZDogJ2lz RGlzYWJsZWQnCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAncHJvbmFt ZXNwYWNlJywgbGFiZWw6ICd7eyBfKCdTY2hlbWEnKSB9fScsIGNlbGw6ICdz dHJpbmcnLAorICAgICAgICAgIGNvbnRyb2w6ICdub2RlLWxpc3QtYnktaWQn LCB0eXBlOiAndGV4dCcsIGNhY2hlX2xldmVsOiAnZGF0YWJhc2UnLAorICAg ICAgICAgIG5vZGU6ICdzY2hlbWEnCisgICAgICAgIH0seworICAgICAgICAg IGlkOiAnc3lzZnVuYycsIGxhYmVsOiAne3sgXygnU3lzdGVtIEZ1bmN0aW9u PycpIH19JywKKyAgICAgICAgICAgY2VsbDonYm9vbGVhbicsIHR5cGU6ICdz d2l0Y2gnLAorICAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnXQorICAg ICAgICB9LHsKKyAgICAgICAgICBpZDogJ2Rlc2NyaXB0aW9uJywgbGFiZWw6 ICd7eyBfKCdDb21tZW50JykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAg ICAgICB0eXBlOiAnbXVsdGlsaW5lJworICAgICAgICB9LHsKKyAgICAgICAg ICBpZDogJ3Byb25hcmdzJywgbGFiZWw6ICd7eyBfKCdBcmd1bWVudCBDb3Vu dCcpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ3Rl eHQnLCBncm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsIG1vZGU6IFsn cHJvcGVydGllcyddCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAncHJv YXJncycsIGxhYmVsOiAne3sgXygnQXJndW1lbnRzJykgfX0nLCBjZWxsOiAn c3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGdyb3VwOiAne3sg XygnRGVmaW5pdGlvbicpIH19JywgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2Vk aXQnXSwKKyAgICAgICAgICBkaXNhYmxlZDogJ2lzRGlzYWJsZWQnCisgICAg ICAgIH0seworICAgICAgICAgIGlkOiAncHJvYXJndHlwZW5hbWVzJywgbGFi ZWw6ICd7eyBfKCdTaWduYXR1cmUgQXJndW1lbnRzJykgfX0nLCBjZWxsOgor ICAgICAgICAgICdzdHJpbmcnLCB0eXBlOiAndGV4dCcsIGdyb3VwOiAne3sg XygnRGVmaW5pdGlvbicpIH19JywgbW9kZTogWydwcm9wZXJ0aWVzJ10sCisg ICAgICAgICAgZGlzYWJsZWQ6ICdpc0Rpc2FibGVkJworICAgICAgICB9LHsK KyAgICAgICAgICBpZDogJ3Byb3JldHR5cGVuYW1lJywgbGFiZWw6ICd7eyBf KCdSZXR1cm4gVHlwZScpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAg ICAgY29udHJvbDogJ25vZGUtYWpheC1vcHRpb25zJywgdHlwZTogJ3RleHQn LCBncm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsCisgICAgICAgICAg dXJsOiAnZ2V0X3R5cGVzJywgZGlzYWJsZWQ6ICdpc0Rpc2FibGVkJywgZmly c3RfZW1wdHk6IHRydWUsCisgICAgICAgICAgbW9kZTogWydjcmVhdGUnXQor ICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3Byb3JldHR5cGVuYW1lJywg bGFiZWw6ICd7eyBfKCdSZXR1cm4gVHlwZScpIH19JywgY2VsbDogJ3N0cmlu ZycsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBncm91cDogJ3t7IF8oJ0Rl ZmluaXRpb24nKSB9fScsIGRpc2FibGVkOiB0cnVlLAorICAgICAgICAgIG1v ZGU6IFsncHJvcGVydGllcycsICdlZGl0J10KKyAgICAgICAgfSwgIHsKKyAg ICAgICAgICBpZDogJ2xhbm5hbWUnLCBsYWJlbDogJ3t7IF8oJ0xhbmd1YWdl JykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICBjb250cm9sOiAn bm9kZS1hamF4LW9wdGlvbnMnLCB0eXBlOiAndGV4dCcsIGdyb3VwOiAne3sg XygnRGVmaW5pdGlvbicpIH19JywKKyAgICAgICAgICB1cmw6ICdnZXRfbGFu Z3VhZ2VzJywgZGlzYWJsZWQ6ICdpc0Rpc2FibGVkJworICAgICAgICB9LHsK KyAgICAgICAgICBpZDogJ3Byb3NyYycsIGxhYmVsOiAne3sgXygnQ29kZScp IH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ211bHRp bGluZScsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlvbicpIH19JywgZGVwczog WydsYW5uYW1lJ10sICB2aXNpYmxlOgorICAgICAgICAgIGZ1bmN0aW9uKG0p IHsKKyAgICAgICAgICAgIGlmIChtLmdldCgnbGFubmFtZScpID09ICdjJykg eworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9 CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9LCBtYXhs ZW5ndGg6ICcnLCBleHRyYUNsYXNzZXM6IFsnZnVuY3Rpb25zX2NvZGUnXQor ICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3Byb2JpbicsIGxhYmVsOiAn e3sgXygnT2JqZWN0IEZpbGUnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAg ICAgICAgIHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9u JykgfX0nLCBkZXBzOiBbJ2xhbm5hbWUnXSwgdmlzaWJsZToKKyAgICAgICAg ICBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICBpZiAobS5nZXQoJ2xhbm5h bWUnKSA9PSAnYycpIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgICAgIHJl dHVybiBmYWxzZTsKKyAgICAgICAgICB9CisgICAgICAgIH0seworICAgICAg ICAgIGlkOiAncHJvc3JjX2MnLCBsYWJlbDogJ3t7IF8oJ0xpbmsgU3ltYm9s JykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAndGV4 dCcsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlvbicpIH19JywgIGRlcHM6IFsn bGFubmFtZSddLCB2aXNpYmxlOgorICAgICAgICAgIGZ1bmN0aW9uKG0pIHsK KyAgICAgICAgICAgIGlmIChtLmdldCgnbGFubmFtZScpID09ICdjJykgeyBy ZXR1cm4gdHJ1ZTsgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg ICAgICAgIH0KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdwcm92b2xh dGlsZScsIGxhYmVsOiAne3sgXygnVm9sYXRpbGl0eScpIH19JywgY2VsbDog J3N0cmluZycsCisgICAgICAgICAgY29udHJvbDogJ25vZGUtYWpheC1vcHRp b25zJywgdHlwZTogJ3RleHQnLCBncm91cDogJ3t7IF8oJ09wdGlvbnMnKSB9 fScsCisgICAgICAgICAgb3B0aW9uczpbCisgICAgICAgICAgICB7J2xhYmVs JzogJ1ZPTEFUSUxFJywgJ3ZhbHVlJzogJ3YnfSwKKyAgICAgICAgICAgIHsn bGFiZWwnOiAnU1RBQkxFJywgJ3ZhbHVlJzogJ3MnfSwKKyAgICAgICAgICAg IHsnbGFiZWwnOiAnSU1NVVRBQkxFJywgJ3ZhbHVlJzogJ2knfSwKKyAgICAg ICAgICBdLCBkaXNhYmxlZDogJ2lzRGlzYWJsZWQnCisgICAgICAgIH0sewor ICAgICAgICAgIGlkOiAncHJvcmV0c2V0JywgbGFiZWw6ICd7eyBfKCdSZXR1 cm5zIGEgU2V0PycpIH19JywgZ3JvdXA6ICd7eyBfKCdPcHRpb25zJykgfX0n LAorICAgICAgICAgIGNlbGw6J2Jvb2xlYW4nLCB0eXBlOiAnc3dpdGNoJywg IGRpc2FibGVkOiAnaXNEaXNhYmxlZCcKKyAgICAgICAgfSx7CisgICAgICAg ICAgaWQ6ICdwcm9pc3N0cmljdCcsIGxhYmVsOiAne3sgXygnU3RyaWN0Pycp IH19JywgZ3JvdXA6ICd7eyBfCisgICAgICAgICAgKCdPcHRpb25zJykgfX0n LAorICAgICAgICAgIGNlbGw6J2Jvb2xlYW4nLCB0eXBlOiAnc3dpdGNoJywg ZGlzYWJsZWQ6ICdpc0Rpc2FibGVkJworICAgICAgICB9LHsKKyAgICAgICAg ICBpZDogJ3Byb3NlY2RlZicsIGxhYmVsOiAne3sgXygnU2VjdXJpdHkgb2Yg ZGVmaW5lcj8nKSB9fScsCisgICAgICAgICAgIGdyb3VwOiAne3sgXygnT3B0 aW9ucycpIH19JywgY2VsbDonYm9vbGVhbicsIHR5cGU6ICdzd2l0Y2gnLAor ICAgICAgICAgICBkaXNhYmxlZDogJ2lzRGlzYWJsZWQnCisgICAgICAgIH0s eworICAgICAgICAgIGlkOiAncHJvaXN3aW5kb3cnLCBsYWJlbDogJ3t7IF8o J1dpbmRvdz8nKSB9fScsCisgICAgICAgICAgIGdyb3VwOiAne3sgXygnT3B0 aW9ucycpIH19JywgY2VsbDonYm9vbGVhbicsIHR5cGU6ICdzd2l0Y2gnLAor ICAgICAgICAgICAgZGlzYWJsZWQ6ICdpc0Rpc2FibGVkJworICAgICAgICB9 LHsKKyAgICAgICAgICBpZDogJ3Byb2Nvc3QnLCBsYWJlbDogJ3t7IF8oJ0Vz dGltYXRlZCBDb3N0JykgfX0nLCBncm91cDogJ3t7IF8oJ09wdGlvbnMnKSB9 fScsCisgICAgICAgICAgY2VsbDonc3RyaW5nJywgdHlwZTogJ3RleHQnLCBk aXNhYmxlZDogJ2lzRGlzYWJsZWQnCisgICAgICAgIH0seworICAgICAgICAg IGlkOiAncHJvcm93cycsIGxhYmVsOiAne3sgXygnRXN0aW1hdGVkIFJvd3Mn KSB9fScsIGdyb3VwOiAne3sgXworICAgICAgICAgICgnT3B0aW9ucycpIH19 JywKKyAgICAgICAgICBjZWxsOidzdHJpbmcnLCB0eXBlOiAndGV4dCcsIGRp c2FibGVkOiAnaXNEaXNhYmxlZCcsCisgICAgICAgICAgZGVwczogWydwcm9y ZXRzZXQnXQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3Byb2xlYWtw cm9vZicsIGxhYmVsOiAne3sgXygnTGVhayBwcm9vZj8nKSB9fScsCisgICAg ICAgICAgZ3JvdXA6ICd7eyBfKCdPcHRpb25zJykgfX0nLCBjZWxsOidib29s ZWFuJywgdHlwZTogJ3N3aXRjaCcsIG1pbl92ZXJzaW9uOiA5MDIwMCwKKyAg ICAgICAgICBkaXNhYmxlZDogJ2lzRGlzYWJsZWQnCisgICAgICAgIH0sewor ICAgICAgICAgIGlkOiAncHJvYWNsJywgbGFiZWw6ICd7eyBfKCdQcml2aWxl Z2VzJykgfX0nLAorICAgICAgICAgICBncm91cDogJ3t7IF8oJ1NlY3VyaXR5 JykgfX0nLCBjZWxsOidib29sZWFuJywgdHlwZTogJ3RleHQnLCBjZWxsOiAn c3RyaW5nJywKKyAgICAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJ10KKyAg ICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdhcmd1bWVudHMnLCBsYWJlbDog J3t7IF8oJ1BhcmFtZXRlcnMnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAg ICAgICAgIGdyb3VwOiAne3sgXygnUGFyYW1ldGVycycpIH19JywgdHlwZTog J2NvbGxlY3Rpb24nLCBjYW5BZGQ6IGZ1bmN0aW9uKG0peworICAgICAgICAg ICAgcmV0dXJuIG0uaXNOZXcoKTsKKyAgICAgICAgICB9LAorICAgICAgICAg IGNhbkRlbGV0ZTogdHJ1ZSwgbW9kZWw6IEFyZ3VtZW50TW9kZWwsIG1vZGU6 CisgICAgICAgICAgWydjcmVhdGUnLCAnZWRpdCddLCBlZGl0YWJsZTogZmFs c2UsCisgICAgICAgICAgY29sdW1uczogWydhcmd0eXBlJywgJ2FyZ21vZGUn LCAnYXJnbmFtZScsICdhcmdkZWZ2YWwnXQorICAgICAgICB9LHsKKyAgICAg ICAgICBpZDogJ3ZhcmlhYmxlcycsIGxhYmVsOiAne3sgXygnVmFyaWFibGVz JykgfX0nLCB0eXBlOiAnY29sbGVjdGlvbicsCisgICAgICAgICAgZ3JvdXA6 ICd7eyBfKCdWYXJpYWJsZXMnKSB9fScsIGNvbnRyb2w6ICd2YXJpYWJsZS1j b2xsZWN0aW9uJywKKyAgICAgICAgICBtb2RlbDogcGdBZG1pbi5Ccm93c2Vy Lk5vZGUuVmFyaWFibGVNb2RlbCwKKyAgICAgICAgICBtb2RlOiBbJ2VkaXQn LCAnY3JlYXRlJ10sIGNhbkFkZDogJ2NhblZhckFkZCcsIGNhbkVkaXQ6IGZh bHNlLAorICAgICAgICAgIGNhbkRlbGV0ZTogdHJ1ZSwgZGlzYWJsZWQ6ICdp c0Rpc2FibGVkJworICAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdhY2wn LCBsYWJlbDogJ3t7IF8oJ1ByaXZpbGVnZXMnKSB9fScsIG1vZGVsOiBwZ0Fk bWluCisgICAgICAgICAgLkJyb3dzZXIuTm9kZS5Qcml2aWxlZ2VSb2xlTW9k ZWwuZXh0ZW5kKAorICAgICAgICAgICAge3ByaXZpbGVnZXM6IFsnWCddfSks IHVuaXF1ZUNvbCA6IFsnZ3JhbnRlZScsICdncmFudG9yJ10sCisgICAgICAg ICAgZWRpdGFibGU6IGZhbHNlLCB0eXBlOiAnY29sbGVjdGlvbicsIGdyb3Vw OiAne3sgXygnU2VjdXJpdHknKSB9fScsCisgICAgICAgICAgbW9kZTogWydl ZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAgIGNhbkFkZDogdHJ1ZSwgY2Fu RGVsZXRlOiB0cnVlLCBjb250cm9sOiAndW5pcXVlLWNvbC1jb2xsZWN0aW9u JywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnc2Vj bGFiZWxzJywgbGFiZWw6ICd7eyBfKCdTZWN1cml0eSBMYWJlbHMnKSB9fScs CisgICAgICAgICAgbW9kZWw6IFNlY3VyaXR5TW9kZWwsIHR5cGU6ICdjb2xs ZWN0aW9uJywKKyAgICAgICAgICBncm91cDogJ3t7IF8oJ1NlY3VyaXR5Jykg fX0nLCBtb2RlOiBbJ2VkaXQnLCAnY3JlYXRlJ10sCisgICAgICAgICAgbWlu X3ZlcnNpb246IDkwMTAwLCBjYW5BZGQ6IHRydWUsCisgICAgICAgICAgY2Fu RWRpdDogdHJ1ZSwgY2FuRGVsZXRlOiB0cnVlLAorICAgICAgICAgIGNvbnRy b2w6ICd1bmlxdWUtY29sLWNvbGxlY3Rpb24nLCB1bmlxdWVDb2wgOiBbJ3By b3ZpZGVyJ10KKyAgICAgICAgfQorICAgICAgICBdLAorICAgICAgICB2YWxp ZGF0ZTogZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgdmFyIGVy ciA9IHt9LAorICAgICAgICAgICAgICBlcnJtc2csCisgICAgICAgICAgICAg IHNlY2xhYmVscyA9IHRoaXMuZ2V0KCdzZWNsYWJlbHMnKTsKKworICAgICAg ICAgIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCduYW1lJykpIHx8IFN0 cmluZyh0aGlzLmdldCgnbmFtZScpKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywg JycpID09ICcnKSB7CisgICAgICAgICAgICBlcnJbJ25hbWUnXSA9ICd7eyBf KCdOYW1lIGNhbiBub3QgYmUgZW1wdHkhJykgfX0nOworICAgICAgICAgICAg ZXJybXNnID0gZXJybXNnIHx8IGVyclsnbmFtZSddOworICAgICAgICAgIH0K KworICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCdmdW5j b3duZXInKSkgfHwgU3RyaW5nKHRoaXMuZ2V0KCdmdW5jb3duZXInKSkucmVw bGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAg ZXJyWydmdW5jb3duZXInXSA9ICd7eyBfKCdPd25lciBjYW4gbm90IGJlIGVt cHR5IScpIH19JzsKKyAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBl cnJbJ2Z1bmNvd25lciddOworICAgICAgICAgIH0KKworICAgICAgICAgIGlm IChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCdwcm9uYW1lc3BhY2UnKSkgfHwg U3RyaW5nKHRoaXMuZ2V0KCdwcm9uYW1lc3BhY2UnKSkucmVwbGFjZSgvXlxz K3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgZXJyWydwcm9u YW1lc3BhY2UnXSA9ICd7eyBfKCdTY2hlbWEgY2FuIG5vdCBiZSBlbXB0eSEn KSB9fSc7CisgICAgICAgICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgZXJyWydw cm9uYW1lc3BhY2UnXTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAo Xy5pc1VuZGVmaW5lZCh0aGlzLmdldCgncHJvcmV0dHlwZW5hbWUnKSkgfHwg U3RyaW5nKHRoaXMuZ2V0KCdwcm9yZXR0eXBlbmFtZScpKS5yZXBsYWNlKC9e XHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICBlcnJbJ3By b3JldHR5cGVuYW1lJ10gPSAne3sgXygnUmV0dXJuIFR5cGUgY2FuIG5vdCBi ZSBlbXB0eSEnKSB9fSc7CisgICAgICAgICAgICBlcnJtc2cgPSBlcnJtc2cg fHwgZXJyWydwcm9yZXR0eXBlbmFtZSddOworICAgICAgICAgIH0KKworICAg ICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCdsYW5uYW1lJykp IHx8IFN0cmluZyh0aGlzLmdldCgnbGFubmFtZScpKS5yZXBsYWNlKC9eXHMr fFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICBlcnJbJ2xhbm5h bWUnXSA9ICd7eyBfKCdMYW5ndWFnZSBjYW4gbm90IGJlIGVtcHR5IScpIH19 JzsKKyAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJbJ2xhbm5h bWUnXTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAoU3RyaW5nKHRo aXMuZ2V0KCdsYW5uYW1lJykpID09ICdjJykgeworICAgICAgICAgICAgaWYg KF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ3Byb2JpbicpKSB8fCBTdHJpbmco dGhpcy5nZXQoJ3Byb2JpbicpKQorICAgICAgICAgICAgICAucmVwbGFjZSgv XlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgICBlcnJb J3Byb2JpbiddID0gJ3t7IF8oJ09iamVjdCBGaWxlIGNhbiBub3QgYmUgZW1w dHkhJykgfX0nOworICAgICAgICAgICAgICBlcnJtc2cgPSBlcnJtc2cgfHwg ZXJyWydwcm9iaW4nXTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg aWYgKF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ3Byb3NyY19jJykpIHx8IFN0 cmluZyh0aGlzLmdldCgncHJvc3JjX2MnKSkucmVwbGFjZSgvXlxzK3xccysk L2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgICBlcnJbJ3Byb3NyY19j J10gPSAne3sgXygnTGluayBTeW1ib2wgY2FuIG5vdCBiZSBlbXB0eSEnKSB9 fSc7CisgICAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJbJ3By b3NyY19jJ107CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAg ICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGhp cy5nZXQoJ3Byb3NyYycpKSB8fCBTdHJpbmcodGhpcy5nZXQoJ3Byb3NyYycp KS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAg ICAgICAgIGVyclsncHJvc3JjJ10gPSAne3sgXygnQ29kZSBjYW4gbm90IGJl IGVtcHR5IScpIH19JzsKKyAgICAgICAgICAgICAgZXJybXNnID0gZXJybXNn IHx8IGVyclsncHJvc3JjJ107CisgICAgICAgICAgICB9CisgICAgICAgICAg fQorCisgICAgICAgICAgaWYgKHNlY2xhYmVscykgeworICAgICAgICAgICAg dmFyIHNlY0xhYmVsc0VycjsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAw OyBpIDwgc2VjbGFiZWxzLm1vZGVscy5sZW5ndGggJiYgIXNlY0xhYmVsc0Vy cjsgaSsrKSB7CisgICAgICAgICAgICAgIHNlY0xhYmVsc0VyciA9IChzZWNs YWJlbHMubW9kZWxzW2ldKS52YWxpZGF0ZS5hcHBseShzZWNsYWJlbHMubW9k ZWxzW2ldKTsKKyAgICAgICAgICAgICAgaWYgKHNlY0xhYmVsc0Vycikgewor ICAgICAgICAgICAgICAgIGVyclsnc2VjbGFiZWxzJ10gPSBzZWNMYWJlbHNF cnI7CisgICAgICAgICAgICAgICAgZXJybXNnID0gZXJybXNnIHx8IHNlY0xh YmVsc0VycjsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg ICAgICAgIH0KKworICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5jbGVhcigp LnNldChlcnIpOworCisgICAgICAgICAgaWYgKF8uc2l6ZShlcnIpKSB7Cisg ICAgICAgICAgICB0aGlzLnRyaWdnZXIoJ29uLXN0YXR1cycsIHttc2c6IGVy cm1zZ30pOworICAgICAgICAgICAgcmV0dXJuIGVycm1zZzsKKyAgICAgICAg ICB9CisKKyAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfSwKKyAg ICAgICAgaXNEaXNhYmxlZDogZnVuY3Rpb24obSl7CisgICAgICAgICAgbmFt ZSA9IHRoaXMubmFtZTsKKyAgICAgICAgICBzd2l0Y2gobmFtZSl7CisgICAg ICAgICAgICBjYXNlICdwcm9hcmdzJzoKKyAgICAgICAgICAgIGNhc2UgJ3By b2FyZ3R5cGVuYW1lcyc6CisgICAgICAgICAgICBjYXNlICdwcm9yZXRzZXQn OgorICAgICAgICAgICAgY2FzZSAncHJvaXN3aW5kb3cnOgorICAgICAgICAg ICAgICByZXR1cm4gIW0uaXNOZXcoKTsKKyAgICAgICAgICAgICAgYnJlYWs7 CisgICAgICAgICAgICBjYXNlICdwcm9yb3dzJzoKKyAgICAgICAgICAgICAg aWYobS5nZXQoJ3Byb3JldHNldCcpID09IHRydWUpIHsKKyAgICAgICAgICAg ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIH0KKyAgICAgICAgfSwK KyAgICAgICAgY2FuVmFyQWRkOiBmdW5jdGlvbihtKSB7CisgICAgICAgICBy ZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgfSksCisgICAgICBjYW5D cmVhdGU6IGZ1bmN0aW9uKGl0ZW1EYXRhLCBpdGVtLCBkYXRhKSB7CisgICAg ICAgIC8vSWYgY2hlY2sgaXMgZmFsc2UgdGhlbiAsIHdlIHdpbGwgYWxsb3cg Y3JlYXRlIG1lbnUKKyAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5jaGVjayA9 PSBmYWxzZSkKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICB2 YXIgdCA9IHBnQnJvd3Nlci50cmVlLCBpID0gaXRlbSwgZCA9IGl0ZW1EYXRh OworICAgICAgICAvLyBUbyBpdGVyYXRlIG92ZXIgdHJlZSB0byBjaGVjayBw YXJlbnQgbm9kZQorICAgICAgICB3aGlsZSAoaSkgeworICAgICAgICAgIC8v IElmIGl0IGlzIHNjaGVtYSB0aGVuIGFsbG93IHVzZXIgdG8gY3JlYXRlIEZ1 bmN0aW9uCisgICAgICAgICAgaWYgKF8uaW5kZXhPZihbJ3NjaGVtYSddLCBk Ll90eXBlKSA+IC0xKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg ICAgICAgICBpZiAoJ2NvbGwtZnVuY3Rpb24nID09IGQuX3R5cGUpIHsKKyAg ICAgICAgICAgIC8vQ2hlY2sgaWYgd2UgYXJlIG5vdCBjaGlsZCBvZiBjYXRh bG9nCisgICAgICAgICAgICBwcmV2X2kgPSB0Lmhhc1BhcmVudChpKSA/IHQu cGFyZW50KGkpIDogbnVsbDsKKyAgICAgICAgICAgIHByZXZfZCA9IHByZXZf aSA/IHQuaXRlbURhdGEocHJldl9pKSA6IG51bGw7CisgICAgICAgICAgICBp ZiggcHJldl9kLl90eXBlID09ICdjYXRhbG9nJykgeworICAgICAgICAgICAg ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg ICB9CisgICAgICAgICAgaSA9IHQuaGFzUGFyZW50KGkpID8gdC5wYXJlbnQo aSkgOiBudWxsOworICAgICAgICAgIGQgPSBpID8gdC5pdGVtRGF0YShpKSA6 IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgLy8gYnkgZGVmYXVsdCB3ZSBk byBub3Qgd2FudCB0byBhbGxvdyBjcmVhdGUgbWVudQorICAgICAgICByZXR1 cm4gdHJ1ZTsKKyAgICAgIH0KKyAgfSk7CisKKyAgfQorCisgIHJldHVybiBw Z0Jyb3dzZXIuTm9kZXNbJ2Z1bmN0aW9uJ107Cit9KTsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMV9wbHVzL2FjbC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9hY2wu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkM2Uw ZDEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9hY2wuc3Fs CkBAIC0wLDAgKzEsMzUgQEAKK1NFTEVDVAorICAgIENPQUxFU0NFKGd0LnJv bG5hbWUsICdwdWJsaWMnKSBBUyBncmFudGVlLAorICAgIGcucm9sbmFtZSBB UyBncmFudG9yLCBhcnJheV9hZ2cocHJpdmlsZWdlX3R5cGUpIEFTIHByaXZp bGVnZXMsCisgICAgYXJyYXlfYWdnKGlzX2dyYW50YWJsZSkgQVMgZ3JhbnRh YmxlCitGUk9NCisgICAgKFNFTEVDVAorICAgICAgICBkLmdyYW50ZWUsIGQu Z3JhbnRvciwgZC5pc19ncmFudGFibGUsCisgICAgICAgIENBU0UgZC5wcml2 aWxlZ2VfdHlwZQorICAgICAgICBXSEVOICdDT05ORUNUJyBUSEVOICdjJwor ICAgICAgICBXSEVOICdDUkVBVEUnIFRIRU4gJ0MnCisgICAgICAgIFdIRU4g J0RFTEVURScgVEhFTiAnZCcKKyAgICAgICAgV0hFTiAnRVhFQ1VURScgVEhF TiAnWCcKKyAgICAgICAgV0hFTiAnSU5TRVJUJyBUSEVOICdhJworICAgICAg ICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4JworICAgICAgICBXSEVOICdT RUxFQ1QnIFRIRU4gJ3InCisgICAgICAgIFdIRU4gJ1RFTVBPUkFSWScgVEhF TiAnVCcKKyAgICAgICAgV0hFTiAnVFJJR0dFUicgVEhFTiAndCcKKyAgICAg ICAgV0hFTiAnVFJVTkNBVEUnIFRIRU4gJ0QnCisgICAgICAgIFdIRU4gJ1VQ REFURScgVEhFTiAndycKKyAgICAgICAgV0hFTiAnVVNBR0UnIFRIRU4gJ1Un CisgICAgICAgIEVMU0UgJ1VOS05PV04nCisgICAgICAgIEVORCBBUyBwcml2 aWxlZ2VfdHlwZQorICAgIEZST00KKyAgICAgICAgKFNFTEVDVAorICAgICAg ICAgICAgKGQpLmdyYW50ZWUgQVMgZ3JhbnRlZSwgKGQpLmdyYW50b3IgQVMg Z3JhbnRvciwKKyAgICAgICAgICAgIChkKS5pc19ncmFudGFibGUgQVMgaXNf Z3JhbnRhYmxlLAorICAgICAgICAgICAgKGQpLnByaXZpbGVnZV90eXBlIEFT IHByaXZpbGVnZV90eXBlCisgICAgICAgIEZST00KKyAgICAgICAgICAgIChT RUxFQ1QgYWNsZXhwbG9kZShkYi5wcm9hY2wpIEFTIGQgRlJPTSBwZ19wcm9j IGRiCisgICAgICAgICAgICBXSEVSRSBkYi5vaWQgPSB7e2ZuaWR9fTo6T0lE KSBhCisgICAgICAgICkgZAorICAgICkgZAorICAgIExFRlQgSk9JTiBwZ19j YXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9IGcub2lkKQorICAg IExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGd0IE9OIChkLmdyYW50 ZWUgPSBndC5vaWQpCitHUk9VUCBCWSBnLnJvbG5hbWUsIGd0LnJvbG5hbWU7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9z cWwvOS4xX3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4xYzg4ZjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9z cWwvOS4xX3BsdXMvY3JlYXRlLnNxbApAQCAtMCwwICsxLDUzIEBACit7JSBp bXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBT RUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZp bGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNy b3MvZnVuY3Rpb25zL3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX0K K3slIHNldCBpc19jb2x1bW5zID0gW10gJX0KK3slIGlmIGRhdGEgJX0KK0NS RUFURSBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3Bh Y2UsIGRhdGEubmFtZSkgfX0oeyUgaWYgZGF0YS5hcmd1bWVudHMgJX0KK3sl IGZvciBwIGluIGRhdGEuYXJndW1lbnRzICV9eyUgaWYgcC5hcmdtb2RlICV9 e3twLmFyZ21vZGV9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFtZSAlfXt7 IGNvbm58cXRJZGVudChwLmFyZ25hbWUpfX0geyUgZW5kaWYgJX17JSBpZiBw LmFyZ3R5cGUgJX17e3AuYXJndHlwZX19eyUgZW5kaWYgJX17JSBpZiBwLmFy Z2RlZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9 Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LHslIGVuZGlmICV9Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmIC0lfQorICAgICkKKyAgICBSRVRVUk5TeyUgaWYg ZGF0YS5wcm9yZXRzZXQgJX0gU0VUT0Z7JSBlbmRpZiAlfSB7eyBjb25ufHF0 VHlwZUlkZW50KGRhdGEucHJvcmV0dHlwZW5hbWUpIH19CisgICAgTEFOR1VB R0Uge3sgZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fQorICAgIHslIGlmIGRh dGEucHJvdm9sYXRpbGUgJX17eyBkYXRhLnByb3ZvbGF0aWxlIH19IHslIGVu ZGlmICV9eyUgaWYgZGF0YS5wcm9pc3N0cmljdCAlfVNUUklDVCB7JSBlbmRp ZiAlfXslIGlmIGRhdGEucHJvc2VjZGVmICV9U0VDVVJJVFkgREVGSU5FUiB7 JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvaXN3aW5kb3cgJX1XSU5ET1d7JSBl bmRpZiAtJX17JSBpZiBkYXRhLnByb2Nvc3QgJX0KKworICAgIENPU1Qge3tk YXRhLnByb2Nvc3R9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9yb3dzICV9 CisKKyAgICBST1dTIHt7ZGF0YS5wcm9yb3dzfX17JSBlbmRpZiAtJX17JSBp ZiBkYXRhLnZhcmlhYmxlcyAlfXslIGZvciB2IGluIGRhdGEudmFyaWFibGVz ICV9CisKKyAgICBTRVQge3sgY29ubnxxdElkZW50KHYubmFtZSkgfX09e3sg di52YWx1ZXxxdExpdGVyYWwgfX17JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9 CisKK0FTIHslIGlmIGRhdGEubGFubmFtZSA9PSAnYycgJX0KK3t7IGRhdGEu cHJvYmlufHF0TGl0ZXJhbCB9fSwge3sgZGF0YS5wcm9zcmNfY3xxdExpdGVy YWwgfX0KK3slIGVsc2UgJX0KKyRmdW5jdGlvbiQKK3t7IGRhdGEucHJvc3Jj IH19CiskZnVuY3Rpb24keyUgZW5kaWYgJX07Cit7JSBpZiBkYXRhLmZ1bmNv d25lciAlfQorCitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0 YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0oe3tkYXRhLmZ1bmNfYXJn c319KQorICAgIE9XTkVSIFRPIHt7IGRhdGEuZnVuY293bmVyIH19OworeyUg ZW5kaWYgJX0KK3slIGlmIGRhdGEuYWNsICV9Cit7JSBmb3IgcCBpbiBkYXRh LmFjbCAlfQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICJGVU5DVElPTiIs IHAuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwLndpdGhvdXRfZ3JhbnQsIHAud2l0 aF9ncmFudCwgZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzKX19 Cit7JSBlbmRmb3IgJX17JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5kZXNjcmlw dGlvbiAlfQorCitDT01NRU5UIE9OIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVu dChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7e2RhdGEuZnVu Y19hcmdzfX0pCisgICAgSVMgJ3t7IGRhdGEuZGVzY3JpcHRpb24gfX0nOwor eyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLnNlY2xhYmVscyAlfQoreyUgZm9y IHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmIHIuc2VjdXJpdHlfbGFi ZWwgYW5kIHIucHJvdmlkZXIgJX0KKwore3sgU0VDTEFCTEUuU0VUKGNvbm4s ICdGVU5DVElPTicsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0 eV9sYWJlbCwgZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzKSB9 fQoreyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisK K3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9kZWxl dGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDZiZWMxCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApAQCAtMCwwICsx LDIxIEBACit7JSBpZiBzY2lkIGFuZCBmbmlkICV9CitTRUxFQ1QKKyAgICBw ci5wcm9uYW1lIGFzIG5hbWUsICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9n CisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIu b2lkKSwgJycpIHx8ICcpJyBhcyBmdW5jX2FyZ3MsCisgICAgbnNwbmFtZQor RlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBP TiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2Ug bnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHBy b2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lk fX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAn ZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19Owor eyUgZW5kaWYgJX0KKworeyUgaWYgbmFtZSAlfQorRFJPUCBGVU5DVElPTiB7 eyBjb25ufHF0SWRlbnQobnNwbmFtZSwgbmFtZSkgfX17e2Z1bmNfYXJnc319 eyUgaWYgY2FzY2FkZSAlfSBDQVNDQURFeyUgZW5kaWYgJX07Cit7JSBlbmRp ZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZ2V0X2RlZmluaXRp b24uc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4OWVjY2UKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9nZXRfZGVmaW5pdGlv bi5zcWwKQEAgLTAsMCArMSwxMSBAQAorU0VMRUNUCisgICAgcGdfZ2V0X2Z1 bmN0aW9uZGVmKHt7Zm5pZH19OjpvaWQpIEFTIGZ1bmNfZGVmLAorICAgIG5z cG5hbWUgfHwgJy4nIHx8IHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NF KHBnX2NhdGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50 cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIG5hbWUKK0ZST00KKyAgICBwZ19w cm9jIHByCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lk PXByLnByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNF CisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBB TkQgcHIub2lkID0ge3tmbmlkfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3Fs LzkuMV9wbHVzL2dldF9sYW5ndWFnZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMv Z2V0X2xhbmd1YWdlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZjgxZGRmYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzku MV9wbHVzL2dldF9sYW5ndWFnZXMuc3FsCkBAIC0wLDAgKzEsNCBAQAorU0VM RUNUCisgICAgbGFubmFtZSBhcyBsYWJlbCwgbGFubmFtZSBhcyB2YWx1ZQor RlJPTQorICAgIHBnX2xhbmd1YWdlOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4x X3BsdXMvZ2V0X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9nZXRfb2lkLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmM3NmEy Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZ2V0X29pZC5z cWwKQEAgLTAsMCArMSwxNyBAQAorU0VMRUNUCisgICAgcHIub2lkLCBwci5w cm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisgICAgLnBn X2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycp IHx8ICcpJyBhcyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91c2VyYnlp ZChwcm9vd25lcikgYXMgZnVuY293bmVyCitGUk9NCisgICAgcGdfcHJvYyBw cgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlw ZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xh bmcKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIu cHJvbmFtZXNwYWNlCisgICAgQU5EIG5zcC5uc3BuYW1lPXt7IG5zcG5hbWV8 cXRMaXRlcmFsIH19CitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAg ICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdn ZXInKQorICAgIEFORCBwci5wcm9uYW1lID0ge3sgbmFtZXxxdExpdGVyYWwg fX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9nZXRfb3V0X3R5cGVz LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vcGcvc3FsLzkuMV9wbHVzL2dldF9vdXRfdHlwZXMuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0YTExODcKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9nZXRfb3V0X3R5cGVzLnNx bApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIGZvcm1hdF90eXBlKG9p ZCwgTlVMTCkgQVMgb3V0X2FyZ190eXBlCitGUk9NCisgICAgcGdfdHlwZQor V0hFUkUKKyAgICBvaWQgPSB7eyBvdXRfYXJnX29pZCB9fTo6b2lkOwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZ2V0X3NjaGVtYS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3Nx bC85LjFfcGx1cy9nZXRfc2NoZW1hLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4xMjdkNGI5Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9w Zy9zcWwvOS4xX3BsdXMvZ2V0X3NjaGVtYS5zcWwKQEAgLTAsMCArMSw2IEBA CitTRUxFQ1QKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfbmFtZXNwYWNl CitXSEVSRQorICAgIG9pZCA9IHt7IHNjaWQgfX06Om9pZDsKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcGcvc3FsLzkuMV9wbHVzL2dldF90eXBlcy5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFf cGx1cy9nZXRfdHlwZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjJhNTU4MmUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjFfcGx1cy9nZXRfdHlwZXMuc3FsCkBAIC0wLDAgKzEsMjAgQEAKK1NFTEVD VAorICAgICoKK0ZST00KKyAgICAoU0VMRUNUCisgICAgICAgIGZvcm1hdF90 eXBlKHQub2lkLE5VTEwpIEFTIHR5cG5hbWUsCisgICAgICAgIENBU0UgV0hF TiB0eXBlbGVtID4gMCBUSEVOIHR5cGVsZW0gRUxTRSB0Lm9pZCBFTkQgYXMg ZWxlbW9pZCwgdHlwbGVuLCB0eXB0eXBlLCB0Lm9pZCwgbnNwbmFtZSwKKyAg ICAgICAgKFNFTEVDVCBDT1VOVCgxKSBGUk9NIHBnX3R5cGUgdDIgV0hFUkUg dDIudHlwbmFtZSA9IHQudHlwbmFtZSkgPiAxIEFTIGlzZHVwCisgICAgRlJP TQorICAgICAgICBwZ190eXBlIHQKKyAgICBKT0lOCisgICAgICAgIHBnX25h bWVzcGFjZSBuc3AgT04gdHlwbmFtZXNwYWNlPW5zcC5vaWQKKyAgICBXSEVS RQorICAgICAgICAoTk9UICh0eXBuYW1lID0gJ3Vua25vd24nIEFORCBuc3Bu YW1lID0gJ3BnX2NhdGFsb2cnKSkKKyAgICBBTkQKKyAgICAgICAgKAorICAg ICAgICAgICAgdHlwdHlwZSBJTiAoJ2InLCAnYycsICdkJywgJ2UnLCAncCcs ICdyJykKKyAgICAgICAgICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ2FueScs ICd0cmlnZ2VyJywgJ2xhbmd1YWdlX2hhbmRsZXInLCAnZXZlbnRfdHJpZ2dl cicpCisgICAgICAgICkKKyAgICApIEFTIGR1bW15CitPUkRFUiBCWSBuc3Bu YW1lIDw+ICdwZ19jYXRhbG9nJywgbnNwbmFtZSA8PiAncHVibGljJywgbnNw bmFtZSwgMTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL25vZGUuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wZy9zcWwvOS4xX3BsdXMvbm9kZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uYmI2ZWM5ZAotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMV9wbHVzL25vZGUuc3FsCkBAIC0wLDAgKzEsMTcgQEAKK1NF TEVDVAorICAgIHByLm9pZCwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVT Q0UocGdfY2F0YWxvZy5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1l bnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgbmFtZSwKKyAgICBsYW5uYW1l LCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIGFzIGZ1bmNvd25lciwgZGVz Y3JpcHRpb24KK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdf dHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdf bGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworTEVGVCBPVVRFUiBK T0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPXBy Lm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xhc3MpCitX SEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFtZXNw YWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAo J3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCitPUkRFUiBCWQorICAgIHBy b25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVz LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vcGcvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllOGE4YmEKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbApAQCAt MCwwICsxLDMxIEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnhtaW4sIHBy LiosIHByLnByb3NyYyBBUyBwcm9zcmNfYywKKyAgICBwci5wcm9uYW1lIEFT IG5hbWUsIHBnX2dldF9mdW5jdGlvbl9yZXN1bHQocHIub2lkKSBBUyBwcm9y ZXR0eXBlbmFtZSwKKyAgICB0eXBucy5uc3BuYW1lIEFTIHR5cG5zcCwgbGFu bmFtZSwgcHJvYXJnbmFtZXMsIG9pZHZlY3RvcnR5cGVzKHByb2FyZ3R5cGVz KSBBUyBwcm9hcmd0eXBlbmFtZXMsCisgICAgcGdfZ2V0X2V4cHIocHJvYXJn ZGVmYXVsdHMsICdwZ19jYXRhbG9nLnBnX2NsYXNzJzo6cmVnY2xhc3MpIEFT IHByb2FyZ2RlZmF1bHR2YWxzLAorICAgIHByb25hcmdkZWZhdWx0cywgcHJv Y29uZmlnLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIEFTIGZ1bmNvd25l ciwgZGVzY3JpcHRpb24sCisgICAgKFNFTEVDVAorICAgICAgICBhcnJheV9h Z2cocHJvdmlkZXIgfHwgJz0nIHx8IGxhYmVsKQorICAgIEZST00KKyAgICAg ICAgcGdfc2VjbGFiZWwgc2wxCisgICAgV0hFUkUKKyAgICAgICAgc2wxLm9i am9pZD1wci5vaWQpIEFTIHNlY2xhYmVscworRlJPTQorICAgIHBnX3Byb2Mg cHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5 cGUKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgdHlwbnMgT04gdHlwbnMub2lk PXR5cC50eXBuYW1lc3BhY2UKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcg T04gbG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19k ZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMu Y2xhc3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHJv aXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9 fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdl dmVudF90cmlnZ2VyJykKK3slIGlmIGZuaWQgJX0KKyAgICBBTkQgcHIub2lk ID0ge3tmbmlkfX06Om9pZAoreyUgZW5kaWYgJX0KK09SREVSIEJZCisgICAg cHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL3VwZGF0ZS5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BnL3NxbC85LjFfcGx1cy91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwNzIxOTgKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BnL3NxbC85LjFfcGx1cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMTA1 IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFj cm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rp b25zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaW1w b3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFS SUFCTEUgJX17JSBpZiBkYXRhICV9Cit7JSBzZXQgbmFtZSA9IG9fZGF0YS5u YW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAh PSBvX2RhdGEubmFtZSAlfQorQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElk ZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5uYW1lKSB9fSh7e29f ZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgUkVOQU1FIFRPIHt7IGNv bm58cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUgc2V0IG5hbWUgPSBkYXRh Lm5hbWUgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRh dGEuY2hhbmdlX2Z1bmMgICV9CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1l KSB9fSh7JSBpZiBkYXRhLmFyZ3VtZW50cyAlfQoreyUgZm9yIHAgaW4gZGF0 YS5hcmd1bWVudHMgJX17JSBpZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9kZX19 IHslIGVuZGlmICV9eyUgaWYgcC5hcmduYW1lICV9e3sgY29ubnxxdElkZW50 KHAuYXJnbmFtZSkgfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX17 e3AuYXJndHlwZX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBE RUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3Qg bG9vcC5sYXN0ICV9LCB7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBl bmRpZiAtJX0KKykKKyAgICBSRVRVUk5TIHt7IG9fZGF0YS5wcm9yZXR0eXBl bmFtZSB9fQoreyUgaWYgJ2xhbm5hbWUnIGluIGRhdGEgJX0KKyAgICBMQU5H VUFHRSB7eyBkYXRhLmxhbm5hbWV8cXRMaXRlcmFsIH19eyUgZWxzZSAlfQor ICAgIExBTkdVQUdFIHt7IG9fZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fQor ICAgIHslIGVuZGlmICV9eyUgaWYgJ3Byb3ZvbGF0aWxlJyBpbiBkYXRhIGFu ZCBkYXRhLnByb3ZvbGF0aWxlICV9e3sgZGF0YS5wcm92b2xhdGlsZSB9fSB7 JSBlbGlmICdwcm92b2xhdGlsZScgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5w cm92b2xhdGlsZSAlfXt7IG9fZGF0YS5wcm92b2xhdGlsZSB9fXslIGVuZGlm ICV9Cit7JSBpZiAoJ3Byb2lzc3RyaWN0JyBpbiBkYXRhIGFuZCBkYXRhLnBy b2lzc3RyaWN0KSBvciAoJ3Byb2lzc3RyaWN0JyBub3QgaW4gZGF0YSBhbmQg b19kYXRhLnByb2lzc3RyaWN0KSAlfSBTVFJJQ1R7JSBlbmRpZiAlfQoreyUg aWYgKCdwcm9zZWNkZWYnIGluIGRhdGEgYW5kIGRhdGEucHJvc2VjZGVmKSBv ciAoJ3Byb3NlY2RlZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9zZWNk ZWYpICV9IFNFQ1VSSVRZIERFRklORVJ7JSBlbmRpZiAlfQoreyUgaWYgKCdw cm9pc3dpbmRvdycgaW4gZGF0YSBhbmQgZGF0YS5wcm9pc3dpbmRvdykgb3Ig KCdwcm9pc3dpbmRvdycgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9pc3dp bmRvdykgJX0gV0lORE9XeyUgZW5kaWYgJX0KKworICAgIHslIGlmIGRhdGEu cHJvY29zdCAlfUNPU1Qge3tkYXRhLnByb2Nvc3R9fXslIGVsaWYgb19kYXRh LnByb2Nvc3QgJX1DT1NUIHt7b19kYXRhLnByb2Nvc3R9fXslIGVuZGlmICV9 eyUgaWYgZGF0YS5wcm9yb3dzICV9CisKKyAgICBST1dTIHt7ZGF0YS5wcm9y b3dzfX17JSBlbGlmIG9fZGF0YS5wcm9yb3dzICV9Uk9XUyB7e29fZGF0YS5w cm9yb3dzfX17JWVuZGlmIC0lfXslIGlmIGRhdGEubWVyZ2VkX3ZhcmlhYmxl cyAlfXslIGZvciB2IGluIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfQorCisg ICAgU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8 cXRMaXRlcmFsIH19eyUgZW5kZm9yIC0lfQorICAgIHslIGVuZGlmICV9CisK K0FTIHslIGlmICdwcm9iaW4nIGluIGRhdGEgb3IgJ3Byb3NyY19jJyBpbiBk YXRhICV9Cit7JSBpZiAncHJvYmluJyBpbiBkYXRhICV9e3sgZGF0YS5wcm9i aW58cXRMaXRlcmFsIH19eyUgZWxzZSAlfXt7IG9fZGF0YS5wcm9iaW58cXRM aXRlcmFsIH19eyUgZW5kaWYgJX0sIHslIGlmICdwcm9zcmNfYycgaW4gZGF0 YSAlfXt7IGRhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZWxzZSAlfXt7 IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17JSBlbmRpZiAlfXslIGVs aWYgJ3Byb3NyYycgaW4gZGF0YSAlfQorJGZ1bmN0aW9uJHt7IGRhdGEucHJv c3JjIH19JGZ1bmN0aW9uJHslIGVsaWYgb19kYXRhLmxhbm5hbWUgPT0gJ2Mn ICV9Cit7eyBvX2RhdGEucHJvYmlufHF0TGl0ZXJhbCB9fSwge3sgb19kYXRh LnByb3NyY19jfHF0TGl0ZXJhbCB9fXslIGVsc2UgJX0KKyRmdW5jdGlvbiR7 eyBvX2RhdGEucHJvc3JjIH19JGZ1bmN0aW9uJHslIGVuZGlmIC0lfTsKK3sl IGVuZGlmIC0lfQoreyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIg RlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2Us IG5hbWUpIH19KHt7IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAg T1dORVIgVE8ge3sgZGF0YS5mdW5jb3duZXIgfX07Cit7JSBlbmRpZiAtJX0K K3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZp bGVkZ2VzICN9Cit7JSBpZiBkYXRhLmFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQn IGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5kZWxl dGVkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNUSU9O JywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBv X2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQorCit7JSBlbmRmb3IgJX17JSBl bmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEuYWNsICV9Cit7JSBm b3IgcHJpdiBpbiBkYXRhLmFjbC5jaGFuZ2VkICV9Cit7eyBQUklWSUxFR0Uu VU5TRVRBTEwoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1l LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVz KSB9fQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdGVU5DVElPTicsIHBy aXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2Lndp dGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0 eXBlbmFtZXMpIH19CisKK3slIGVuZGZvciAlfXslIGVuZGlmICV9Cit7JSBp ZiAnYWRkZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRh LmFjbC5hZGRlZCAlfQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdGVU5D VElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50 LCBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0 YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX17JSBlbmRpZiAl fXslIGVuZGlmICV9Cit7JSBpZiBkYXRhLmNoYW5nZV9mdW5jID09IEZhbHNl ICV9Cit7JSBpZiBkYXRhLnZhcmlhYmxlcyAlfQoreyUgaWYgJ2RlbGV0ZWQn IGluIGRhdGEudmFyaWFibGVzIGFuZCBkYXRhLnZhcmlhYmxlcy5kZWxldGVk fGxlbmd0aCA+IDAgJX0KKwore3sgVkFSSUFCTEUuVU5TRVQoY29ubiwgJ0ZV TkNUSU9OJywgbmFtZSwgZGF0YS52YXJpYWJsZXMuZGVsZXRlZCwgb19kYXRh LnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyApIH19Cit7 JSBlbmRpZiAtJX0KK3slIGlmICdtZXJnZWRfdmFyaWFibGVzJyBpbiBkYXRh IGFuZCBkYXRhLm1lcmdlZF92YXJpYWJsZXN8bGVuZ3RoID4gMCAlfQorCit7 eyBWQVJJQUJMRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgZGF0YS5t ZXJnZWRfdmFyaWFibGVzLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEu cHJvYXJndHlwZW5hbWVzICkgfX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAl fXslIGVuZGlmICV9Cit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJl bHMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xh YmVscy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xh YmVscy5kZWxldGVkICV9Cit7eyBTRUNMQUJMRS5VTlNFVChjb25uLCAnRlVO Q1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCBvX2RhdGEucHJvbmFtZXNwYWNl LCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQorCit7JSBlbmRmb3IgJX0K K3slIGVuZGlmIC0lfQoreyUgaWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5k IHNlY2xhYmVscy5hZGRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBz ZWNsYWJlbHMuYWRkZWQgJX0KKwore3sgU0VDTEFCTEUuU0VUKGNvbm4sICdG VU5DVElPTicsIG5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWws IG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMp IH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2NoYW5n ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3Ro ID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KK3t7 IFNFQ0xBQkxFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3Zp ZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBv X2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9eyUgZW5k aWYgLSV9Cit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQg T04gRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG5hbWUpIH19KHt7b19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAg ICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVu ZGlmIC0lfQoreyUgaWYgZGF0YS5wcm9uYW1lc3BhY2UgJX0KKworQUxURVIg RlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2Us IG5hbWUpIH19KHt7b19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBT RVQgU0NIRU1BIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSkg fX07Cit7JSBlbmRpZiAtJX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMV9wbHVzL3ZhcmlhYmxlcy5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1 cy92YXJpYWJsZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjUyMzNjNzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFf cGx1cy92YXJpYWJsZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisg ICAgbmFtZSwgdmFydHlwZSwgbWluX3ZhbCwgbWF4X3ZhbCwgZW51bXZhbHMK K0ZST00KKyAgICBwZ19zZXR0aW5ncworV0hFUkUKKyAgICBjb250ZXh0IGlu ICgndXNlcicsICdzdXBlcnVzZXInKTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzku Ml9wbHVzL2FjbC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9hY2wuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkM2UwZDEKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9hY2wuc3FsCkBAIC0wLDAg KzEsMzUgQEAKK1NFTEVDVAorICAgIENPQUxFU0NFKGd0LnJvbG5hbWUsICdw dWJsaWMnKSBBUyBncmFudGVlLAorICAgIGcucm9sbmFtZSBBUyBncmFudG9y LCBhcnJheV9hZ2cocHJpdmlsZWdlX3R5cGUpIEFTIHByaXZpbGVnZXMsCisg ICAgYXJyYXlfYWdnKGlzX2dyYW50YWJsZSkgQVMgZ3JhbnRhYmxlCitGUk9N CisgICAgKFNFTEVDVAorICAgICAgICBkLmdyYW50ZWUsIGQuZ3JhbnRvciwg ZC5pc19ncmFudGFibGUsCisgICAgICAgIENBU0UgZC5wcml2aWxlZ2VfdHlw ZQorICAgICAgICBXSEVOICdDT05ORUNUJyBUSEVOICdjJworICAgICAgICBX SEVOICdDUkVBVEUnIFRIRU4gJ0MnCisgICAgICAgIFdIRU4gJ0RFTEVURScg VEhFTiAnZCcKKyAgICAgICAgV0hFTiAnRVhFQ1VURScgVEhFTiAnWCcKKyAg ICAgICAgV0hFTiAnSU5TRVJUJyBUSEVOICdhJworICAgICAgICBXSEVOICdS RUZFUkVOQ0VTJyBUSEVOICd4JworICAgICAgICBXSEVOICdTRUxFQ1QnIFRI RU4gJ3InCisgICAgICAgIFdIRU4gJ1RFTVBPUkFSWScgVEhFTiAnVCcKKyAg ICAgICAgV0hFTiAnVFJJR0dFUicgVEhFTiAndCcKKyAgICAgICAgV0hFTiAn VFJVTkNBVEUnIFRIRU4gJ0QnCisgICAgICAgIFdIRU4gJ1VQREFURScgVEhF TiAndycKKyAgICAgICAgV0hFTiAnVVNBR0UnIFRIRU4gJ1UnCisgICAgICAg IEVMU0UgJ1VOS05PV04nCisgICAgICAgIEVORCBBUyBwcml2aWxlZ2VfdHlw ZQorICAgIEZST00KKyAgICAgICAgKFNFTEVDVAorICAgICAgICAgICAgKGQp LmdyYW50ZWUgQVMgZ3JhbnRlZSwgKGQpLmdyYW50b3IgQVMgZ3JhbnRvciwK KyAgICAgICAgICAgIChkKS5pc19ncmFudGFibGUgQVMgaXNfZ3JhbnRhYmxl LAorICAgICAgICAgICAgKGQpLnByaXZpbGVnZV90eXBlIEFTIHByaXZpbGVn ZV90eXBlCisgICAgICAgIEZST00KKyAgICAgICAgICAgIChTRUxFQ1QgYWNs ZXhwbG9kZShkYi5wcm9hY2wpIEFTIGQgRlJPTSBwZ19wcm9jIGRiCisgICAg ICAgICAgICBXSEVSRSBkYi5vaWQgPSB7e2ZuaWR9fTo6T0lEKSBhCisgICAg ICAgICkgZAorICAgICkgZAorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBn X3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9IGcub2lkKQorICAgIExFRlQgSk9J TiBwZ19jYXRhbG9nLnBnX3JvbGVzIGd0IE9OIChkLmdyYW50ZWUgPSBndC5v aWQpCitHUk9VUCBCWSBnLnJvbG5hbWUsIGd0LnJvbG5hbWU7CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BnL3NxbC85LjJfcGx1cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3Bs dXMvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi41MGRlNmRjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3Bs dXMvY3JlYXRlLnNxbApAQCAtMCwwICsxLDU3IEBACit7JSBpbXBvcnQgJ21h Y3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAl fQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNy b3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rp b25zL3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX0KK3slIHNldCBp c19jb2x1bW5zID0gW10gJX0KK3slIGlmIGRhdGEgJX0KK0NSRUFURSBGVU5D VElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEu bmFtZSkgfX0oeyUgaWYgZGF0YS5hcmd1bWVudHMgJX0KK3slIGZvciBwIGlu IGRhdGEuYXJndW1lbnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21v ZGV9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFtZSAlfXt7IGNvbm58cXRJ ZGVudChwLmFyZ25hbWUpfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUg JX17e3AuYXJndHlwZX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAl fSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBu b3QgbG9vcC5sYXN0ICV9LHslIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3sl IGVuZGlmIC0lfQorICAgICkKKyAgICBSRVRVUk5TeyUgaWYgZGF0YS5wcm9y ZXRzZXQgJX0gU0VUT0Z7JSBlbmRpZiAlfSB7eyBjb25ufHF0VHlwZUlkZW50 KGRhdGEucHJvcmV0dHlwZW5hbWUpIH19CisgICAgTEFOR1VBR0Uge3sgZGF0 YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fQorICAgIHslIGlmIGRhdGEucHJvdm9s YXRpbGUgJX17eyBkYXRhLnByb3ZvbGF0aWxlIH19IHslIGVuZGlmICV9eyUg aWYgZGF0YS5wcm9sZWFrcHJvb2YgJX1MRUFLUFJPT0YgeyUgZWxzZSAlfU5P VCBMRUFLUFJPT0YgeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvaXNzdHJp Y3QgJX1TVFJJQ1QgeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvc2VjZGVm ICV9U0VDVVJJVFkgREVGSU5FUiB7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5w cm9pc3dpbmRvdyAlfVdJTkRPV3slIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9j b3N0ICV9CisKKyAgICBDT1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbmRpZiAl fXslIGlmIGRhdGEucHJvcm93cyAlfQorCisgICAgUk9XUyB7e2RhdGEucHJv cm93c319eyUgZW5kaWYgLSV9eyUgaWYgZGF0YS52YXJpYWJsZXMgJX17JSBm b3IgdiBpbiBkYXRhLnZhcmlhYmxlcyAlfQorCisgICAgU0VUIHt7IGNvbm58 cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19eyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAlfQorCitBUyB7JSBpZiBkYXRhLmxhbm5h bWUgPT0gJ2MnICV9Cit7eyBkYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7 IGRhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19Cit7JSBlbHNlICV9CiskZnVu Y3Rpb24kCit7eyBkYXRhLnByb3NyYyB9fQorJGZ1bmN0aW9uJHslIGVuZGlm IC0lfTsKK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVSIEZVTkNU SU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5u YW1lKSB9fSh7e2RhdGEuZnVuY19hcmdzfX0pCisgICAgT1dORVIgVE8ge3sg ZGF0YS5mdW5jb3duZXIgfX07Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEu YWNsICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFjbCAlfQorCit7eyBQUklWSUxF R0UuU0VUKGNvbm4sICJGVU5DVElPTiIsIHAuZ3JhbnRlZSwgZGF0YS5uYW1l LCBwLndpdGhvdXRfZ3JhbnQsIHAud2l0aF9ncmFudCwgZGF0YS5wcm9uYW1l c3BhY2UsIGRhdGEuZnVuY19hcmdzKX19Cit7JSBlbmRmb3IgLSV9Cit7JSBl bmRpZiAtJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVO VCBPTiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3Bh Y2UsIGRhdGEubmFtZSkgfX0oe3tkYXRhLmZ1bmNfYXJnc319KQorICAgIElT ICd7eyBkYXRhLmRlc2NyaXB0aW9uIH19JzsKK3slIGVuZGlmIC0lfQoreyUg aWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2VjbGFi ZWxzICV9Cit7JSBpZiByLnNlY3VyaXR5X2xhYmVsIGFuZCByLnByb3ZpZGVy ICV9CisKK3t7IFNFQ0xBQkxFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBkYXRh Lm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIGRhdGEucHJv bmFtZXNwYWNlLCBkYXRhLmZ1bmNfYXJncykgfX0KK3slIGVuZGlmICV9Cit7 JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAtJX0KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2RlbGV0ZS5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjJfcGx1cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjI0NmJlYzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjJfcGx1cy9kZWxldGUuc3FsCkBAIC0wLDAgKzEsMjEgQEAKK3slIGlmIHNj aWQgYW5kIGZuaWQgJX0KK1NFTEVDVAorICAgIHByLnByb25hbWUgYXMgbmFt ZSwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1 bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJykn IGFzIGZ1bmNfYXJncywKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfcHJv YyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0 dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1w ci5wcm9uYW1lc3BhY2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQor ICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5E IHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykK KyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX07Cit7JSBlbmRpZiAlfQorCit7 JSBpZiBuYW1lICV9CitEUk9QIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChu c3BuYW1lLCBuYW1lKSB9fXt7ZnVuY19hcmdzfX17JSBpZiBjYXNjYWRlICV9 IENBU0NBREV7JSBlbmRpZiAlfTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BnL3NxbC85LjJfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjJfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNTg5ZWNjZQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMl9wbHVzL2dldF9kZWZpbml0aW9uLnNxbApAQCAtMCwwICsx LDExIEBACitTRUxFQ1QKKyAgICBwZ19nZXRfZnVuY3Rpb25kZWYoe3tmbmlk fX06Om9pZCkgQVMgZnVuY19kZWYsCisgICAgbnNwbmFtZSB8fCAnLicgfHwg cHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZy5wZ19n ZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8 fCAnKScgYXMgbmFtZQorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAg ICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNl CitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFt ZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCBwci5vaWQgPSB7e2Zu aWR9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvZ2V0X2xh bmd1YWdlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9nZXRfbGFuZ3VhZ2VzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODFkZGZi Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvZ2V0X2xhbmd1 YWdlcy5zcWwKQEAgLTAsMCArMSw0IEBACitTRUxFQ1QKKyAgICBsYW5uYW1l IGFzIGxhYmVsLCBsYW5uYW1lIGFzIHZhbHVlCitGUk9NCisgICAgcGdfbGFu Z3VhZ2U7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9nZXRfb2lkLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcGcvc3FsLzkuMl9wbHVzL2dldF9vaWQuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiYzc2YTIKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BnL3NxbC85LjJfcGx1cy9nZXRfb2lkLnNxbApAQCAtMCwwICsxLDE3 IEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8 IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lk ZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIG5hbWUs CisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBhcyBm dW5jb3duZXIKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdf dHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdf bGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworSk9JTgorICAgIHBn X25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKKyAg ICBBTkQgbnNwLm5zcG5hbWU9e3sgbnNwbmFtZXxxdExpdGVyYWwgfX0KK1dI RVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCB0eXBuYW1lIE5P VCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHBy LnByb25hbWUgPSB7eyBuYW1lfHF0TGl0ZXJhbCB9fTsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMl9wbHVzL2dldF9vdXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4y X3BsdXMvZ2V0X291dF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uNjRhMTE4NwotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcv c3FsLzkuMl9wbHVzL2dldF9vdXRfdHlwZXMuc3FsCkBAIC0wLDAgKzEsNiBA QAorU0VMRUNUCisgICAgZm9ybWF0X3R5cGUob2lkLCBOVUxMKSBBUyBvdXRf YXJnX3R5cGUKK0ZST00KKyAgICBwZ190eXBlCitXSEVSRQorICAgIG9pZCA9 IHt7IG91dF9hcmdfb2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjJfcGx1cy9nZXRfc2NoZW1hLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2dldF9z Y2hlbWEuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjEyN2Q0YjkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9n ZXRfc2NoZW1hLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5z cG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UKK1dIRVJFCisgICAgb2lk ID0ge3sgc2NpZCB9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3Bs dXMvZ2V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2dldF90eXBlcy5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE1NTgy ZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2dldF90eXBl cy5zcWwKQEAgLTAsMCArMSwyMCBAQAorU0VMRUNUCisgICAgKgorRlJPTQor ICAgIChTRUxFQ1QKKyAgICAgICAgZm9ybWF0X3R5cGUodC5vaWQsTlVMTCkg QVMgdHlwbmFtZSwKKyAgICAgICAgQ0FTRSBXSEVOIHR5cGVsZW0gPiAwIFRI RU4gdHlwZWxlbSBFTFNFIHQub2lkIEVORCBhcyBlbGVtb2lkLCB0eXBsZW4s IHR5cHR5cGUsIHQub2lkLCBuc3BuYW1lLAorICAgICAgICAoU0VMRUNUIENP VU5UKDEpIEZST00gcGdfdHlwZSB0MiBXSEVSRSB0Mi50eXBuYW1lID0gdC50 eXBuYW1lKSA+IDEgQVMgaXNkdXAKKyAgICBGUk9NCisgICAgICAgIHBnX3R5 cGUgdAorICAgIEpPSU4KKyAgICAgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiB0 eXBuYW1lc3BhY2U9bnNwLm9pZAorICAgIFdIRVJFCisgICAgICAgIChOT1Qg KHR5cG5hbWUgPSAndW5rbm93bicgQU5EIG5zcG5hbWUgPSAncGdfY2F0YWxv ZycpKQorICAgIEFORAorICAgICAgICAoCisgICAgICAgICAgICB0eXB0eXBl IElOICgnYicsICdjJywgJ2QnLCAnZScsICdwJywgJ3InKQorICAgICAgICAg ICAgQU5EIHR5cG5hbWUgTk9UIElOICgnYW55JywgJ3RyaWdnZXInLCAnbGFu Z3VhZ2VfaGFuZGxlcicsICdldmVudF90cmlnZ2VyJykKKyAgICAgICAgKQor ICAgICkgQVMgZHVtbXkKK09SREVSIEJZIG5zcG5hbWUgPD4gJ3BnX2NhdGFs b2cnLCBuc3BuYW1lIDw+ICdwdWJsaWMnLCBuc3BuYW1lLCAxOwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvOS4yX3BsdXMvbm9kZS5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1 cy9ub2RlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5iYjZlYzlkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMv bm9kZS5zcWwKQEAgLTAsMCArMSwxNyBAQAorU0VMRUNUCisgICAgcHIub2lk LCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nLnBn X2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycp IHx8ICcpJyBhcyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91c2VyYnlp ZChwcm9vd25lcikgYXMgZnVuY293bmVyLCBkZXNjcmlwdGlvbgorRlJPTQor ICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAu b2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04g bG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19kZXNj cmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMuY2xh c3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHJvaXNh Z2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6 b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVu dF90cmlnZ2VyJykKK09SREVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcGcvc3FsLzkuMl9wbHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4y X3BsdXMvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uZmY3ODI5OAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3Fs LzkuMl9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsMzEgQEAKK1NF TEVDVAorICAgIHByLm9pZCwgcHIueG1pbiwgcHIuKiwgcHIucHJvc3JjIEFT IHByb3NyY19jLAorICAgIHByLnByb25hbWUgQVMgbmFtZSwgcGdfZ2V0X2Z1 bmN0aW9uX3Jlc3VsdChwci5vaWQpIEFTIHByb3JldHR5cGVuYW1lLAorICAg IHR5cG5zLm5zcG5hbWUgQVMgdHlwbnNwLCBsYW5uYW1lLCBwcm9hcmduYW1l cywgb2lkdmVjdG9ydHlwZXMocHJvYXJndHlwZXMpIEFTIHByb2FyZ3R5cGVu YW1lcywKKyAgICBwZ19nZXRfZXhwcihwcm9hcmdkZWZhdWx0cywgJ3BnX2Nh dGFsb2cucGdfY2xhc3MnOjpyZWdjbGFzcykgQVMgcHJvYXJnZGVmYXVsdHZh bHMsCisgICAgcHJvbmFyZ2RlZmF1bHRzLCBwcm9jb25maWcsIHBnX2dldF91 c2VyYnlpZChwcm9vd25lcikgQVMgZnVuY293bmVyLCBkZXNjcmlwdGlvbiwK KyAgICAoU0VMRUNUCisgICAgICAgIGFycmF5X2FnZyhwcm92aWRlciB8fCAn PScgfHwgbGFiZWwpCisgICAgRlJPTQorICAgICAgICBwZ19zaHNlY2xhYmVs IHNsMQorICAgIFdIRVJFCisgICAgICAgIHNsMS5vYmpvaWQ9cHIub2lkKSBB UyBzZWNsYWJlbHMKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAg cGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAg cGdfbmFtZXNwYWNlIHR5cG5zIE9OIHR5cG5zLm9pZD10eXAudHlwbmFtZXNw YWNlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJv bGFuZworTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVz IE9OIChkZXMub2Jqb2lkPXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19w cm9jJzo6cmVnY2xhc3MpCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UK KyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFO RCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicp Cit7JSBpZiBmbmlkICV9CisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19Ojpv aWQKK3slIGVuZGlmICV9CitPUkRFUiBCWQorICAgIHByb25hbWU7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BnL3NxbC85LjJfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4y X3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4wMTI2YzhkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4y X3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDExNCBAQAoreyUgaW1wb3J0 ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFC TEUgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2Uu bWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1 bmN0aW9ucy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9eyUgaWYg ZGF0YSAlfQoreyUgc2V0IG5hbWUgPSBvX2RhdGEubmFtZSAlfQoreyUgaWYg ZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUg JX0KK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJv bmFtZXNwYWNlLCBvX2RhdGEubmFtZSkgfX0oe3tvX2RhdGEucHJvYXJndHlw ZW5hbWVzIH19KQorICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0 YS5uYW1lKSB9fTsKK3slIHNldCBuYW1lID0gZGF0YS5uYW1lICV9Cit7JSBl bmRpZiAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5nZV9mdW5j ICAlfQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB7eyBjb25ufHF0 SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oeyUgaWYgZGF0 YS5hcmd1bWVudHMgJX0KK3slIGZvciBwIGluIGRhdGEuYXJndW1lbnRzICV9 eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fSB7JSBlbmRpZiAlfXsl IGlmIHAuYXJnbmFtZSAlfXt7Y29ubnxxdElkZW50KHAuYXJnbmFtZSl9fSB7 JSBlbmRpZiAlfXslIGlmIHAuYXJndHlwZSAlfXt7cC5hcmd0eXBlfX17JSBl bmRpZiAlfXslIGlmIHAuYXJnZGVmdmFsICV9IERFRkFVTFQge3twLmFyZ2Rl ZnZhbH19eyUgZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxhc3QgJX0sIHsl IGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorKQorICAg IFJFVFVSTlMge3sgb19kYXRhLnByb3JldHR5cGVuYW1lIH19Cit7JSBpZiAn bGFubmFtZScgaW4gZGF0YSAlfQorICAgIExBTkdVQUdFIHt7IGRhdGEubGFu bmFtZXxxdExpdGVyYWwgfX17JSBlbHNlICV9CisgICAgTEFOR1VBR0Uge3sg b19kYXRhLmxhbm5hbWV8cXRMaXRlcmFsIH19CisgICAgeyUgZW5kaWYgJX17 JSBpZiAncHJvdm9sYXRpbGUnIGluIGRhdGEgYW5kIGRhdGEucHJvdm9sYXRp bGUgJX17eyBkYXRhLnByb3ZvbGF0aWxlIH19IHslIGVsaWYgJ3Byb3ZvbGF0 aWxlJyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb3ZvbGF0aWxlICV9e3sg b19kYXRhLnByb3ZvbGF0aWxlIH19eyUgZW5kaWYgJX0KK3slIGlmICgncHJv bGVha3Byb29mJyBpbiBkYXRhIGFuZCBkYXRhLnByb2xlYWtwcm9vZikgb3Ig KCdwcm9sZWFrcHJvb2YnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvbGVh a3Byb29mKSAlfUxFQUtQUk9PRnslIGVsaWYgJ3Byb2xlYWtwcm9vZicgaW4g ZGF0YSBhbmQgbm90IGRhdGEucHJvbGVha3Byb29mICV9Tk9UIExFQUtQUk9P RnslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2lzc3RyaWN0JyBpbiBkYXRhIGFu ZCBkYXRhLnByb2lzc3RyaWN0KSBvciAoJ3Byb2lzc3RyaWN0JyBub3QgaW4g ZGF0YSBhbmQgb19kYXRhLnByb2lzc3RyaWN0KSAlfSBTVFJJQ1R7JSBlbmRp ZiAlfQoreyUgaWYgKCdwcm9zZWNkZWYnIGluIGRhdGEgYW5kIGRhdGEucHJv c2VjZGVmKSBvciAoJ3Byb3NlY2RlZicgbm90IGluIGRhdGEgYW5kIG9fZGF0 YS5wcm9zZWNkZWYpICV9IFNFQ1VSSVRZIERFRklORVJ7JSBlbmRpZiAlfQor eyUgaWYgKCdwcm9pc3dpbmRvdycgaW4gZGF0YSBhbmQgZGF0YS5wcm9pc3dp bmRvdykgb3IgKCdwcm9pc3dpbmRvdycgbm90IGluIGRhdGEgYW5kIG9fZGF0 YS5wcm9pc3dpbmRvdykgJX0gV0lORE9XeyUgZW5kaWYgJX0KKworICAgIHsl IGlmIGRhdGEucHJvY29zdCAlfUNPU1Qge3tkYXRhLnByb2Nvc3R9fXslIGVs aWYgb19kYXRhLnByb2Nvc3QgJX1DT1NUIHt7b19kYXRhLnByb2Nvc3R9fXsl IGVuZGlmICV9eyUgaWYgZGF0YS5wcm9yb3dzICV9CisKKyAgICBST1dTIHt7 ZGF0YS5wcm9yb3dzfX17JSBlbGlmIG9fZGF0YS5wcm9yb3dzICV9Uk9XUyB7 e29fZGF0YS5wcm9yb3dzfX17JSBlbmRpZiAtJX17JSBpZiBkYXRhLm1lcmdl ZF92YXJpYWJsZXMgJX17JSBmb3IgdiBpbiBkYXRhLm1lcmdlZF92YXJpYWJs ZXMgJX0KKworICAgIFNFVCB7eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17 eyB2LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAtJX0KKyAgICB7JSBl bmRpZiAlfQorCitBUyB7JSBpZiAncHJvYmluJyBpbiBkYXRhIG9yICdwcm9z cmNfYycgaW4gZGF0YSAlfQoreyUgaWYgJ3Byb2JpbicgaW4gZGF0YSAlfXt7 IGRhdGEucHJvYmlufHF0TGl0ZXJhbCB9fXslIGVsc2UgJX17eyBvX2RhdGEu cHJvYmlufHF0TGl0ZXJhbCB9fXslIGVuZGlmICV9LCB7JSBpZiAncHJvc3Jj X2MnIGluIGRhdGEgJX17eyBkYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fXsl IGVsc2UgJX17eyBvX2RhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZW5k aWYgJX17JSBlbGlmICdwcm9zcmMnIGluIGRhdGEgJX0KKyRmdW5jdGlvbiR7 eyBkYXRhLnByb3NyYyB9fSRmdW5jdGlvbiR7JSBlbGlmIG9fZGF0YS5sYW5u YW1lID09ICdjJyAlfQore3sgb19kYXRhLnByb2JpbnxxdExpdGVyYWwgfX0s IHt7IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17JSBlbHNlICV9Cisk ZnVuY3Rpb24ke3sgb19kYXRhLnByb3NyYyB9fSRmdW5jdGlvbiR7JSBlbmRp ZiAtJX07Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5mdW5jb3duZXIg JX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5w cm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7IG9fZGF0YS5wcm9hcmd0eXBlbmFt ZXMgfX0pCisgICAgT1dORVIgVE8ge3sgZGF0YS5mdW5jb3duZXIgfX07Cit7 JSBlbmRpZiAtJX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwg Y2hhbmdlIHByaXZpbGVkZ2VzICN9Cit7JSBpZiBkYXRhLmFjbCAlfQoreyUg aWYgJ2RlbGV0ZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBk YXRhLmFjbC5kZWxldGVkICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChj b25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YS5w cm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBl bmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2NoYW5nZWQnIGluIGRh dGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5jaGFuZ2VkICV9 CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnRlVOQ1RJT04nLCBw cml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0 YS5wcm9hcmd0eXBlbmFtZXMpIH19CisKK3t7IFBSSVZJTEVHRS5TRVQoY29u biwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhv dXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFj ZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgLSV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEuYWNsICV9Cit7 JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5hZGRlZCAlfQorCit7eyBQUklWSUxF R0UuU0VUKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwg cHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5w cm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBl bmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRh dGEuY2hhbmdlX2Z1bmMgPT0gRmFsc2UgJX0KK3slIGlmIGRhdGEudmFyaWFi bGVzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS52YXJpYWJsZXMgYW5k IGRhdGEudmFyaWFibGVzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQorCit7eyBW QVJJQUJMRS5VTlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCBkYXRhLnZh cmlhYmxlcy5kZWxldGVkLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEu cHJvYXJndHlwZW5hbWVzICkgfX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ21l cmdlZF92YXJpYWJsZXMnIGluIGRhdGEgYW5kIGRhdGEubWVyZ2VkX3Zhcmlh Ymxlc3xsZW5ndGggPiAwICV9CisKK3t7IFZBUklBQkxFLlNFVChjb25uLCAn RlVOQ1RJT04nLCBuYW1lLCBkYXRhLm1lcmdlZF92YXJpYWJsZXMsIG9fZGF0 YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgKSB9fQor eyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0lfQoreyUg c2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiAnZGVs ZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5n dGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVsZXRlZCAlfQor Cit7eyBTRUNMQUJMRS5VTlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCBy LnByb3ZpZGVyLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJn dHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3sl IGlmICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8 bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9 CisKK3t7IFNFQ0xBQkxFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCBy LnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBvX2RhdGEucHJvbmFtZXNw YWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMg YW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3slIGZvciBy IGluIHNlY2xhYmVscy5jaGFuZ2VkICV9CisKK3t7IFNFQ0xBQkxFLlNFVChj b25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5 X2xhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlw ZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlm IGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBPTiBGVU5DVElPTiB7 eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0o e3sgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBJUyB7eyBkYXRh LmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmIC0lfQoreyUg aWYgZGF0YS5wcm9uYW1lc3BhY2UgJX0KKworQUxURVIgRlVOQ1RJT04ge3sg Y29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7 IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgU0VUIFNDSEVNQSB7 eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UpIH19OworeyUgZW5k aWYgLSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJf cGx1cy92YXJpYWJsZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvdmFyaWFibGVz LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjMz YzcxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvdmFyaWFi bGVzLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5hbWUsIHZh cnR5cGUsIG1pbl92YWwsIG1heF92YWwsIGVudW12YWxzCitGUk9NCisgICAg cGdfc2V0dGluZ3MKK1dIRVJFCisgICAgY29udGV4dCBpbiAoJ3VzZXInLCAn c3VwZXJ1c2VyJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9hY2wu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvOS41X3BsdXMvYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5hZDNlMGQxCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wZy9zcWwvOS41X3BsdXMvYWNsLnNxbApAQCAtMCwwICsxLDM1IEBACitT RUxFQ1QKKyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAncHVibGljJykgQVMg Z3JhbnRlZSwKKyAgICBnLnJvbG5hbWUgQVMgZ3JhbnRvciwgYXJyYXlfYWdn KHByaXZpbGVnZV90eXBlKSBBUyBwcml2aWxlZ2VzLAorICAgIGFycmF5X2Fn Zyhpc19ncmFudGFibGUpIEFTIGdyYW50YWJsZQorRlJPTQorICAgIChTRUxF Q1QKKyAgICAgICAgZC5ncmFudGVlLCBkLmdyYW50b3IsIGQuaXNfZ3JhbnRh YmxlLAorICAgICAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAgICAg V0hFTiAnQ09OTkVDVCcgVEhFTiAnYycKKyAgICAgICAgV0hFTiAnQ1JFQVRF JyBUSEVOICdDJworICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisg ICAgICAgIFdIRU4gJ0VYRUNVVEUnIFRIRU4gJ1gnCisgICAgICAgIFdIRU4g J0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNFUycg VEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAg ICAgICBXSEVOICdURU1QT1JBUlknIFRIRU4gJ1QnCisgICAgICAgIFdIRU4g J1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBU SEVOICdEJworICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAg ICAgIFdIRU4gJ1VTQUdFJyBUSEVOICdVJworICAgICAgICBFTFNFICdVTktO T1dOJworICAgICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICBGUk9N CisgICAgICAgIChTRUxFQ1QKKyAgICAgICAgICAgIChkKS5ncmFudGVlIEFT IGdyYW50ZWUsIChkKS5ncmFudG9yIEFTIGdyYW50b3IsCisgICAgICAgICAg ICAoZCkuaXNfZ3JhbnRhYmxlIEFTIGlzX2dyYW50YWJsZSwKKyAgICAgICAg ICAgIChkKS5wcml2aWxlZ2VfdHlwZSBBUyBwcml2aWxlZ2VfdHlwZQorICAg ICAgICBGUk9NCisgICAgICAgICAgICAoU0VMRUNUIGFjbGV4cGxvZGUoZGIu cHJvYWNsKSBBUyBkIEZST00gcGdfcHJvYyBkYgorICAgICAgICAgICAgV0hF UkUgZGIub2lkID0ge3tmbmlkfX06Ok9JRCkgYQorICAgICAgICApIGQKKyAg ICApIGQKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9O IChkLmdyYW50b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxv Zy5wZ19yb2xlcyBndCBPTiAoZC5ncmFudGVlID0gZ3Qub2lkKQorR1JPVVAg QlkgZy5yb2xuYW1lLCBndC5yb2xuYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwv OS41X3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL2NyZWF0ZS5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWM5ZjIz ZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL2NyZWF0ZS5z cWwKQEAgLTAsMCArMSw1NyBAQAoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rp b25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0KK3slIGltcG9y dCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklW SUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy92YXJpYWJs ZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9Cit7JSBzZXQgaXNfY29sdW1ucyA9 IFtdICV9Cit7JSBpZiBkYXRhICV9CitDUkVBVEUgRlVOQ1RJT04ge3sgY29u bnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19KHsl IGlmIGRhdGEKKy5hcmd1bWVudHMgJX0KK3slIGZvciBwIGluIGRhdGEuYXJn dW1lbnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fSB7JSBl bmRpZiAlfXslIGlmIHAuYXJnbmFtZSAlfXt7IGNvbm58cXRJZGVudChwLmFy Z25hbWUpfX17JSBlbmRpZiAlfXslIGlmIHAuYXJndHlwZSAlfXt7cC5hcmd0 eXBlfX17JSBlbmRpZiAlfXslIGlmIHAuYXJnZGVmdmFsICV9IERFRkFVTFQg e3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxh c3QgJX0seyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9 CisgICAgKQorICAgIFJFVFVSTlN7JSBpZiBkYXRhLnByb3JldHNldCAlfSBT RVRPRnslIGVuZGlmICV9IHt7IGNvbm58cXRUeXBlSWRlbnQoZGF0YS5wcm9y ZXR0eXBlbmFtZSkgfX0KKyAgICBMQU5HVUFHRSB7eyBkYXRhLmxhbm5hbWV8 cXRMaXRlcmFsIH19CisgICAgeyUgaWYgZGF0YS5wcm92b2xhdGlsZSAlfXt7 IGRhdGEucHJvdm9sYXRpbGUgfX0geyUgZW5kaWYgJX17JSBpZiBkYXRhLnBy b2xlYWtwcm9vZiAlfUxFQUtQUk9PRiB7JSBlbHNlICV9Tk9UIExFQUtQUk9P RiB7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9pc3N0cmljdCAlfVNUUklD VCB7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9zZWNkZWYgJX1TRUNVUklU WSBERUZJTkVSIHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb2lzd2luZG93 ICV9V0lORE9XeyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb2Nvc3QgJX0KKwor ICAgIENPU1Qge3tkYXRhLnByb2Nvc3R9fXslIGVuZGlmICV9eyUgaWYgZGF0 YS5wcm9yb3dzICV9CisKKyAgICBST1dTIHt7ZGF0YS5wcm9yb3dzfX17JSBl bmRpZiAtJX17JSBpZiBkYXRhLnZhcmlhYmxlcyAlfXslIGZvciB2IGluIGRh dGEudmFyaWFibGVzICV9CisKKyAgICBTRVQge3sgY29ubnxxdElkZW50KHYu bmFtZSkgfX09e3sgdi52YWx1ZXxxdExpdGVyYWwgfX17JSBlbmRmb3IgJX0K K3slIGVuZGlmICV9CisKK0FTIHslIGlmIGRhdGEubGFubmFtZSA9PSAnYycg JX0KK3t7IGRhdGEucHJvYmlufHF0TGl0ZXJhbCB9fSwge3sgZGF0YS5wcm9z cmNfY3xxdExpdGVyYWwgfX0KK3slIGVsc2UgJX0KKyRmdW5jdGlvbiQKK3t7 IGRhdGEucHJvc3JjIH19CiskZnVuY3Rpb24keyUgZW5kaWYgLSV9OworeyUg aWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29u bnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19KHt7 ZGF0YS5mdW5jX2FyZ3N9fSkKKyAgICBPV05FUiBUTyB7eyBkYXRhLmZ1bmNv d25lciB9fTsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5hY2wgJX0KK3sl IGZvciBwIGluIGRhdGEuYWNsICV9CisKK3t7IFBSSVZJTEVHRS5TRVQoY29u biwgIkZVTkNUSU9OIiwgcC5ncmFudGVlLCBkYXRhLm5hbWUsIHAud2l0aG91 dF9ncmFudCwgcC53aXRoX2dyYW50LCBkYXRhLnByb25hbWVzcGFjZSwgZGF0 YS5mdW5jX2FyZ3MpfX0KK3slIGVuZGZvciAlfXslIGVuZGlmICV9Cit7JSBp ZiBkYXRhLmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQgT04gRlVOQ1RJT04g e3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUp IH19KHt7ZGF0YS5mdW5jX2FyZ3N9fSkKKyAgICBJUyAne3sgZGF0YS5kZXNj cmlwdGlvbiB9fSc7Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuc2VjbGFi ZWxzICV9Cit7JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYg ci5zZWN1cml0eV9sYWJlbCBhbmQgci5wcm92aWRlciAlfQorCit7eyBTRUNM QUJMRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgZGF0YS5uYW1lLCByLnByb3Zp ZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBkYXRhLnByb25hbWVzcGFjZSwgZGF0 YS5mdW5jX2FyZ3MpIH19Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7 JSBlbmRpZiAtJX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3Fs LzkuNV9wbHVzL2RlbGV0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9kZWxldGUu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0NmJl YzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9kZWxldGUu c3FsCkBAIC0wLDAgKzEsMjEgQEAKK3slIGlmIHNjaWQgYW5kIGZuaWQgJX0K K1NFTEVDVAorICAgIHByLnByb25hbWUgYXMgbmFtZSwgJygnIHx8IENPQUxF U0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5 X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIGZ1bmNfYXJncywK KyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAg IHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAg IHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UK K1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1l c3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElO ICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAgICBBTkQgcHIub2lk ID0ge3tmbmlkfX07Cit7JSBlbmRpZiAlfQorCit7JSBpZiBuYW1lICV9CitE Uk9QIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChuc3BuYW1lLCBuYW1lKSB9 fXt7ZnVuY19hcmdzfX17JSBpZiBjYXNjYWRlICV9IENBU0NBREV7JSBlbmRp ZiAlfTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1 cy9nZXRfZGVmaW5pdGlvbi5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9nZXRfZGVm aW5pdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNTg5ZWNjZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVz L2dldF9kZWZpbml0aW9uLnNxbApAQCAtMCwwICsxLDExIEBACitTRUxFQ1QK KyAgICBwZ19nZXRfZnVuY3Rpb25kZWYoe3tmbmlkfX06Om9pZCkgQVMgZnVu Y19kZWYsCisgICAgbnNwbmFtZSB8fCAnLicgfHwgcHIucHJvbmFtZSB8fCAn KCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZy5wZ19nZXRfZnVuY3Rpb25faWRl bnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgbmFtZQor RlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2Ug bnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHBy b2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lk fX06Om9pZAorICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTo6b2lkOwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bn L3NxbC85LjVfcGx1cy9nZXRfbGFuZ3VhZ2VzLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODFkZGZiCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwKQEAgLTAs MCArMSw0IEBACitTRUxFQ1QKKyAgICBsYW5uYW1lIGFzIGxhYmVsLCBsYW5u YW1lIGFzIHZhbHVlCitGUk9NCisgICAgcGdfbGFuZ3VhZ2U7CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BnL3NxbC85LjVfcGx1cy9nZXRfb2lkLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9w bHVzL2dldF9vaWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjJiYzc2YTIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVf cGx1cy9nZXRfb2lkLnNxbApAQCAtMCwwICsxLDE3IEBACitTRUxFQ1QKKyAg ICBwci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2Nh dGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50 cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIG5hbWUsCisgICAgbGFubmFtZSwg cGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBhcyBmdW5jb3duZXIKK0ZST00K KyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlw Lm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9O IGxuZy5vaWQ9cHJvbGFuZworSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3Ag T04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKKyAgICBBTkQgbnNwLm5zcG5h bWU9e3sgbnNwbmFtZXxxdExpdGVyYWwgfX0KK1dIRVJFCisgICAgcHJvaXNh Z2cgPSBGQUxTRQorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXIn LCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHByLnByb25hbWUgPSB7eyBu YW1lfHF0TGl0ZXJhbCB9fTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVz L2dldF9vdXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0X291dF90 eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NjRhMTE4NwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL2dl dF9vdXRfdHlwZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAg Zm9ybWF0X3R5cGUob2lkLCBOVUxMKSBBUyBvdXRfYXJnX3R5cGUKK0ZST00K KyAgICBwZ190eXBlCitXSEVSRQorICAgIG9pZCA9IHt7IG91dF9hcmdfb2lk IH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9nZXRfc2No ZW1hLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL2dldF9zY2hlbWEuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyN2Q0YjkKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9nZXRfc2NoZW1hLnNxbApA QCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5zcG5hbWUKK0ZST00KKyAg ICBwZ19uYW1lc3BhY2UKK1dIRVJFCisgICAgb2lkID0ge3sgc2NpZCB9fTo6 b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0X3R5cGVzLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcGcvc3FsLzkuNV9wbHVzL2dldF90eXBlcy5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE1NTgyZQotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vcGcvc3FsLzkuNV9wbHVzL2dldF90eXBlcy5zcWwKQEAgLTAsMCAr MSwyMCBAQAorU0VMRUNUCisgICAgKgorRlJPTQorICAgIChTRUxFQ1QKKyAg ICAgICAgZm9ybWF0X3R5cGUodC5vaWQsTlVMTCkgQVMgdHlwbmFtZSwKKyAg ICAgICAgQ0FTRSBXSEVOIHR5cGVsZW0gPiAwIFRIRU4gdHlwZWxlbSBFTFNF IHQub2lkIEVORCBhcyBlbGVtb2lkLCB0eXBsZW4sIHR5cHR5cGUsIHQub2lk LCBuc3BuYW1lLAorICAgICAgICAoU0VMRUNUIENPVU5UKDEpIEZST00gcGdf dHlwZSB0MiBXSEVSRSB0Mi50eXBuYW1lID0gdC50eXBuYW1lKSA+IDEgQVMg aXNkdXAKKyAgICBGUk9NCisgICAgICAgIHBnX3R5cGUgdAorICAgIEpPSU4K KyAgICAgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiB0eXBuYW1lc3BhY2U9bnNw Lm9pZAorICAgIFdIRVJFCisgICAgICAgIChOT1QgKHR5cG5hbWUgPSAndW5r bm93bicgQU5EIG5zcG5hbWUgPSAncGdfY2F0YWxvZycpKQorICAgIEFORAor ICAgICAgICAoCisgICAgICAgICAgICB0eXB0eXBlIElOICgnYicsICdjJywg J2QnLCAnZScsICdwJywgJ3InKQorICAgICAgICAgICAgQU5EIHR5cG5hbWUg Tk9UIElOICgnYW55JywgJ3RyaWdnZXInLCAnbGFuZ3VhZ2VfaGFuZGxlcics ICdldmVudF90cmlnZ2VyJykKKyAgICAgICAgKQorICAgICkgQVMgZHVtbXkK K09SREVSIEJZIG5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnLCBuc3BuYW1lIDw+ ICdwdWJsaWMnLCBuc3BuYW1lLCAxOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41 X3BsdXMvbm9kZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9ub2RlLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjZlYzlkCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvbm9kZS5zcWwKQEAgLTAs MCArMSwxNyBAQAorU0VMRUNUCisgICAgcHIub2lkLCBwci5wcm9uYW1lIHx8 ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nLnBnX2dldF9mdW5jdGlvbl9p ZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBhcyBuYW1l LAorICAgIGxhbm5hbWUsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikgYXMg ZnVuY293bmVyLCBkZXNjcmlwdGlvbgorRlJPTQorICAgIHBnX3Byb2MgcHIK K0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUK K0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5n CitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04g KGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX3Byb2Mn OjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAg IEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5 cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKK09S REVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9w bHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvcHJvcGVydGll cy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmY3 ODI5OAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL3Byb3Bl cnRpZXMuc3FsCkBAIC0wLDAgKzEsMzEgQEAKK1NFTEVDVAorICAgIHByLm9p ZCwgcHIueG1pbiwgcHIuKiwgcHIucHJvc3JjIEFTIHByb3NyY19jLAorICAg IHByLnByb25hbWUgQVMgbmFtZSwgcGdfZ2V0X2Z1bmN0aW9uX3Jlc3VsdChw ci5vaWQpIEFTIHByb3JldHR5cGVuYW1lLAorICAgIHR5cG5zLm5zcG5hbWUg QVMgdHlwbnNwLCBsYW5uYW1lLCBwcm9hcmduYW1lcywgb2lkdmVjdG9ydHlw ZXMocHJvYXJndHlwZXMpIEFTIHByb2FyZ3R5cGVuYW1lcywKKyAgICBwZ19n ZXRfZXhwcihwcm9hcmdkZWZhdWx0cywgJ3BnX2NhdGFsb2cucGdfY2xhc3Mn OjpyZWdjbGFzcykgQVMgcHJvYXJnZGVmYXVsdHZhbHMsCisgICAgcHJvbmFy Z2RlZmF1bHRzLCBwcm9jb25maWcsIHBnX2dldF91c2VyYnlpZChwcm9vd25l cikgQVMgZnVuY293bmVyLCBkZXNjcmlwdGlvbiwKKyAgICAoU0VMRUNUCisg ICAgICAgIGFycmF5X2FnZyhwcm92aWRlciB8fCAnPScgfHwgbGFiZWwpCisg ICAgRlJPTQorICAgICAgICBwZ19zaHNlY2xhYmVsIHNsMQorICAgIFdIRVJF CisgICAgICAgIHNsMS5vYmpvaWQ9cHIub2lkKSBBUyBzZWNsYWJlbHMKK0ZS T00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04g dHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIHR5 cG5zIE9OIHR5cG5zLm9pZD10eXAudHlwbmFtZXNwYWNlCitKT0lOCisgICAg cGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworTEVGVCBPVVRF UiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lk PXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xhc3Mp CitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFt ZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJ TiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCit7JSBpZiBmbmlkICV9 CisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OjpvaWQKK3slIGVuZGlmICV9 CitPUkRFUiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjVfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvdXBkYXRlLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTBjM2Vi Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvdXBkYXRlLnNx bApAQCAtMCwwICsxLDExNCBAQAoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rp b25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0KK3slIGltcG9y dCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklW SUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy92YXJpYWJs ZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9eyUgaWYgZGF0YSAlfQoreyUgc2V0 IG5hbWUgPSBvX2RhdGEubmFtZSAlfQoreyUgaWYgZGF0YS5uYW1lICV9Cit7 JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FMVEVSIEZVTkNU SU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2Rh dGEubmFtZSkgfX0oe3sKK29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisg ICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19Owor eyUgc2V0IG5hbWUgPSBkYXRhLm5hbWUgJX0KK3slIGVuZGlmICV9Cit7JSBl bmRpZiAtJX0KK3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMgICV9CisKK0NSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEu cHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7JSBpZiBkYXRhLmFyZ3VtZW50cyAl fQoreyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVudHMgJX17JSBpZiBwLmFyZ21v ZGUgJX17e3AuYXJnbW9kZX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmduYW1l ICV9e3sgY29ubnxxdElkZW50KHAuYXJnbmFtZSkgfX0geyUgZW5kaWYgJX17 JSBpZiBwLmFyZ3R5cGUgJX17e3AuYXJndHlwZX19eyUgZW5kaWYgJX17JSBp ZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXslIGVu ZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LHslIGVuZGlmICV9Cit7 JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorKQorICAgIFJFVFVSTlMge3sg b19kYXRhLnByb3JldHR5cGVuYW1lIH19Cit7JSBpZiAnbGFubmFtZScgaW4g ZGF0YSAlfQorICAgIExBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExpdGVy YWwgfX17JSBlbHNlICV9CisgICAgTEFOR1VBR0Uge3sgb19kYXRhLmxhbm5h bWV8cXRMaXRlcmFsIH19CisgICAgeyUgZW5kaWYgJX17JSBpZiAncHJvdm9s YXRpbGUnIGluIGRhdGEgYW5kIGRhdGEucHJvdm9sYXRpbGUgJX17eyBkYXRh LnByb3ZvbGF0aWxlIH19IHslIGVsaWYgJ3Byb3ZvbGF0aWxlJyBub3QgaW4g ZGF0YSBhbmQgb19kYXRhLnByb3ZvbGF0aWxlICV9e3sgb19kYXRhLnByb3Zv bGF0aWxlIH19eyUgZW5kaWYgJX0KK3slIGlmICgncHJvbGVha3Byb29mJyBp biBkYXRhIGFuZCBkYXRhLnByb2xlYWtwcm9vZikgb3IgKCdwcm9sZWFrcHJv b2YnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvbGVha3Byb29mKSAlfUxF QUtQUk9PRnslIGVsaWYgJ3Byb2xlYWtwcm9vZicgaW4gZGF0YSBhbmQgbm90 IGRhdGEucHJvbGVha3Byb29mICV9Tk9UIExFQUtQUk9PRnslIGVuZGlmICV9 Cit7JSBpZiAoJ3Byb2lzc3RyaWN0JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lz c3RyaWN0KSBvciAoJ3Byb2lzc3RyaWN0JyBub3QgaW4gZGF0YSBhbmQgb19k YXRhLnByb2lzc3RyaWN0KSAlfSBTVFJJQ1R7JSBlbmRpZiAlfQoreyUgaWYg KCdwcm9zZWNkZWYnIGluIGRhdGEgYW5kIGRhdGEucHJvc2VjZGVmKSBvciAo J3Byb3NlY2RlZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9zZWNkZWYp ICV9IFNFQ1VSSVRZIERFRklORVJ7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9p c3dpbmRvdycgaW4gZGF0YSBhbmQgZGF0YS5wcm9pc3dpbmRvdykgb3IgKCdw cm9pc3dpbmRvdycgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9pc3dpbmRv dykgJX0gV0lORE9XeyUgZW5kaWYgJX0KKworICAgIHslIGlmIGRhdGEucHJv Y29zdCAlfUNPU1Qge3tkYXRhLnByb2Nvc3R9fXslIGVsaWYgb19kYXRhLnBy b2Nvc3QgJX1DT1NUIHt7b19kYXRhLnByb2Nvc3R9fXslIGVuZGlmICV9eyUg aWYgZGF0YS5wcm9yb3dzICV9CisKKyAgICBST1dTIHt7ZGF0YS5wcm9yb3dz fX17JSBlbGlmIG9fZGF0YS5wcm9yb3dzICV9Uk9XUyB7e29fZGF0YS5wcm9y b3dzfX0geyVlbmRpZiAtJX17JSBpZiBkYXRhLm1lcmdlZF92YXJpYWJsZXMg JX17JSBmb3IgdiBpbiBkYXRhLm1lcmdlZF92YXJpYWJsZXMgJX0KKworICAg IFNFVCB7eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17eyB2LnZhbHVlfHF0 TGl0ZXJhbCB9fXslIGVuZGZvciAtJX0KKyAgICB7JSBlbmRpZiAlfQorCitB UyB7JSBpZiAncHJvYmluJyBpbiBkYXRhIG9yICdwcm9zcmNfYycgaW4gZGF0 YSAlfQoreyUgaWYgJ3Byb2JpbicgaW4gZGF0YSAlfXt7IGRhdGEucHJvYmlu fHF0TGl0ZXJhbCB9fXslIGVsc2UgJX17eyBvX2RhdGEucHJvYmlufHF0TGl0 ZXJhbCB9fXslIGVuZGlmICV9LCB7JSBpZiAncHJvc3JjX2MnIGluIGRhdGEg JX17eyBkYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fXslIGVsc2UgJX17eyBv X2RhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZW5kaWYgJX17JSBlbGlm ICdwcm9zcmMnIGluIGRhdGEgJX0KKyRmdW5jdGlvbiR7eyBkYXRhLnByb3Ny YyB9fSRmdW5jdGlvbiR7JSBlbGlmIG9fZGF0YS5sYW5uYW1lID09ICdjJyAl fQore3sgb19kYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IG9fZGF0YS5w cm9zcmNfY3xxdExpdGVyYWwgfX17JSBlbHNlICV9CiskZnVuY3Rpb24ke3sg b19kYXRhLnByb3NyYyB9fSRmdW5jdGlvbiR7JSBlbmRpZiAtJX07Cit7JSBl bmRpZiAtJX0KK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVSIEZV TkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBu YW1lKSB9fSh7e29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgT1dO RVIgVE8ge3sgZGF0YS5mdW5jb3duZXIgfX07Cit7JSBlbmRpZiAtJX0KK3sj IFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZpbGVk Z2VzICN9Cit7JSBpZiBkYXRhLmFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGlu IGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5kZWxldGVk ICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnRlVOQ1RJT04n LCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9f ZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmIC0lfQoreyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7 JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5jaGFuZ2VkICV9CisKK3t7IFBSSVZJ TEVHRS5VTlNFVEFMTChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUs IG5hbWUsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBl bmFtZXMpIH19CisKK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ0ZVTkNUSU9O JywgcHJpdi5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHBy aXYud2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnBy b2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9 Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBp biBkYXRhLmFjbC5hZGRlZCAlfQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4s ICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0 X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2Us IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX17JSBl bmRpZiAtJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFuZ2VfZnVu YyA9PSBGYWxzZSAlfQoreyUgaWYgZGF0YS52YXJpYWJsZXMgJX0KK3slIGlm ICdkZWxldGVkJyBpbiBkYXRhLnZhcmlhYmxlcyBhbmQgZGF0YS52YXJpYWJs ZXMuZGVsZXRlZHxsZW5ndGggPiAwICV9CisKK3t7IFZBUklBQkxFLlVOU0VU KGNvbm4sICdGVU5DVElPTicsIG5hbWUsIGRhdGEudmFyaWFibGVzLmRlbGV0 ZWQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFt ZXMpIH19Cit7JSBlbmRpZiAtJX0KK3slIGlmICdtZXJnZWRfdmFyaWFibGVz JyBpbiBkYXRhIGFuZCBkYXRhLm1lcmdlZF92YXJpYWJsZXN8bGVuZ3RoID4g MCAlfQorCit7eyBWQVJJQUJMRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFt ZSwgZGF0YS5tZXJnZWRfdmFyaWFibGVzLCBvX2RhdGEucHJvbmFtZXNwYWNl LCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kaWYgLSV9Cit7 JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0lfQoreyUgc2V0IHNlY2xhYmVscyA9 IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFi ZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7JSBm b3IgciBpbiBzZWNsYWJlbHMuZGVsZXRlZCAlfQorCit7eyBTRUNMQUJMRS5V TlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCBvX2Rh dGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcgaW4g c2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAlfQor eyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9CisKK3t7IFNFQ0xBQkxF LlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCByLnNl Y3VyaXR5X2xhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJv YXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0K K3slIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5j aGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5j aGFuZ2VkICV9CisKK3t7IFNFQ0xBQkxFLlNFVChjb25uLCAnRlVOQ1RJT04n LCBuYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBvX2RhdGEu cHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRp b24gJX0KKworQ09NTUVOVCBPTiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQo b19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oe3tvX2RhdGEucHJvYXJn dHlwZW5hbWVzIH19KQorICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRM aXRlcmFsIH19OworeyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEucHJvbmFt ZXNwYWNlICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChv X2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7e29fZGF0YS5wcm9hcmd0 eXBlbmFtZXMgfX0pCisgICAgU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRlbnQo ZGF0YS5wcm9uYW1lc3BhY2UpIH19OworeyUgZW5kaWYgLSV9CisKK3slIGVu ZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy92YXJpYWJsZXMu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvOS41X3BsdXMvdmFyaWFibGVzLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjMzYzcxCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvdmFyaWFibGVzLnNxbApAQCAtMCww ICsxLDYgQEAKK1NFTEVDVAorICAgIG5hbWUsIHZhcnR5cGUsIG1pbl92YWws IG1heF92YWwsIGVudW12YWxzCitGUk9NCisgICAgcGdfc2V0dGluZ3MKK1dI RVJFCisgICAgY29udGV4dCBpbiAoJ3VzZXInLCAnc3VwZXJ1c2VyJyk7CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2FjbC5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3Fs LzkuMV9wbHVzL2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uYWQzZTBkMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwv OS4xX3BsdXMvYWNsLnNxbApAQCAtMCwwICsxLDM1IEBACitTRUxFQ1QKKyAg ICBDT0FMRVNDRShndC5yb2xuYW1lLCAncHVibGljJykgQVMgZ3JhbnRlZSwK KyAgICBnLnJvbG5hbWUgQVMgZ3JhbnRvciwgYXJyYXlfYWdnKHByaXZpbGVn ZV90eXBlKSBBUyBwcml2aWxlZ2VzLAorICAgIGFycmF5X2FnZyhpc19ncmFu dGFibGUpIEFTIGdyYW50YWJsZQorRlJPTQorICAgIChTRUxFQ1QKKyAgICAg ICAgZC5ncmFudGVlLCBkLmdyYW50b3IsIGQuaXNfZ3JhbnRhYmxlLAorICAg ICAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAgICAgV0hFTiAnQ09O TkVDVCcgVEhFTiAnYycKKyAgICAgICAgV0hFTiAnQ1JFQVRFJyBUSEVOICdD JworICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisgICAgICAgIFdI RU4gJ0VYRUNVVEUnIFRIRU4gJ1gnCisgICAgICAgIFdIRU4gJ0lOU0VSVCcg VEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNFUycgVEhFTiAneCcK KyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAgICAgICBXSEVO ICdURU1QT1JBUlknIFRIRU4gJ1QnCisgICAgICAgIFdIRU4gJ1RSSUdHRVIn IFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBUSEVOICdEJwor ICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAgICAgIFdIRU4g J1VTQUdFJyBUSEVOICdVJworICAgICAgICBFTFNFICdVTktOT1dOJworICAg ICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICBGUk9NCisgICAgICAg IChTRUxFQ1QKKyAgICAgICAgICAgIChkKS5ncmFudGVlIEFTIGdyYW50ZWUs IChkKS5ncmFudG9yIEFTIGdyYW50b3IsCisgICAgICAgICAgICAoZCkuaXNf Z3JhbnRhYmxlIEFTIGlzX2dyYW50YWJsZSwKKyAgICAgICAgICAgIChkKS5w cml2aWxlZ2VfdHlwZSBBUyBwcml2aWxlZ2VfdHlwZQorICAgICAgICBGUk9N CisgICAgICAgICAgICAoU0VMRUNUIGFjbGV4cGxvZGUoZGIucHJvYWNsKSBB UyBkIEZST00gcGdfcHJvYyBkYgorICAgICAgICAgICAgV0hFUkUgZGIub2lk ID0ge3tmbmlkfX06Ok9JRCkgYQorICAgICAgICApIGQKKyAgICApIGQKKyAg ICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9OIChkLmdyYW50 b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xl cyBndCBPTiAoZC5ncmFudGVlID0gZ3Qub2lkKQorR1JPVVAgQlkgZy5yb2xu YW1lLCBndC5yb2xuYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1 cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjODhmNDcKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwK QEAgLTAsMCArMSw1MyBAQAoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25z L3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0KK3slIGltcG9ydCAn bWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxF R0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy92YXJpYWJsZS5t YWNyb3MnIGFzIFZBUklBQkxFICV9Cit7JSBzZXQgaXNfY29sdW1ucyA9IFtd ICV9Cit7JSBpZiBkYXRhICV9CitDUkVBVEUgRlVOQ1RJT04ge3sgY29ubnxx dElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19KHslIGlm IGRhdGEuYXJndW1lbnRzICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFyZ3VtZW50 cyAlfXslIGlmIHAuYXJnbW9kZSAlfXt7cC5hcmdtb2RlfX0geyUgZW5kaWYg JX17JSBpZiBwLmFyZ25hbWUgJX17eyBjb25ufHF0SWRlbnQocC5hcmduYW1l KX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3twLmFyZ3R5cGV9 fXslIGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3Au YXJnZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAl fSx7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKyAg ICApCisgICAgUkVUVVJOU3slIGlmIGRhdGEucHJvcmV0c2V0ICV9IFNFVE9G eyUgZW5kaWYgJX0ge3sgY29ubnxxdFR5cGVJZGVudChkYXRhLnByb3JldHR5 cGVuYW1lKSB9fQorICAgIExBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExp dGVyYWwgfX0KKyAgICB7JSBpZiBkYXRhLnByb3ZvbGF0aWxlICV9e3sgZGF0 YS5wcm92b2xhdGlsZSB9fSB7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvaXNz dHJpY3QgJX1TVFJJQ1QgeyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb3NlY2Rl ZiAlfVNFQ1VSSVRZIERFRklORVIgeyUgZW5kaWYgJX17JSBpZiBkYXRhLnBy b2lzd2luZG93ICV9V0lORE9XeyUgZW5kaWYgLSV9eyUgaWYgZGF0YS5wcm9j b3N0ICV9CisKKyAgICBDT1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbmRpZiAl fXslIGlmIGRhdGEucHJvcm93cyAlfQorCisgICAgUk9XUyB7e2RhdGEucHJv cm93c319eyUgZW5kaWYgLSV9eyUgaWYgZGF0YS52YXJpYWJsZXMgJX17JSBm b3IgdiBpbiBkYXRhLnZhcmlhYmxlcyAlfQorCisgICAgU0VUIHt7IGNvbm58 cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19eyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAlfQorCitBUyB7JSBpZiBkYXRhLmxhbm5h bWUgPT0gJ2MnICV9Cit7eyBkYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7 IGRhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19Cit7JSBlbHNlICV9CiskZnVu Y3Rpb24kCit7eyBkYXRhLnByb3NyYyB9fQorJGZ1bmN0aW9uJHslIGVuZGlm ICV9OworeyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIgRlVOQ1RJ T04ge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5h bWUpIH19KHt7ZGF0YS5mdW5jX2FyZ3N9fSkKKyAgICBPV05FUiBUTyB7eyBk YXRhLmZ1bmNvd25lciB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmFj bCAlfQoreyUgZm9yIHAgaW4gZGF0YS5hY2wgJX0KKwore3sgUFJJVklMRUdF LlNFVChjb25uLCAiRlVOQ1RJT04iLCBwLmdyYW50ZWUsIGRhdGEubmFtZSwg cC53aXRob3V0X2dyYW50LCBwLndpdGhfZ3JhbnQsIGRhdGEucHJvbmFtZXNw YWNlLCBkYXRhLmZ1bmNfYXJncyl9fQoreyUgZW5kZm9yICV9eyUgZW5kaWYg JX0KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBPTiBG VU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRh dGEubmFtZSkgfX0oe3tkYXRhLmZ1bmNfYXJnc319KQorICAgIElTICd7eyBk YXRhLmRlc2NyaXB0aW9uIH19JzsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0 YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2VjbGFiZWxzICV9 Cit7JSBpZiByLnNlY3VyaXR5X2xhYmVsIGFuZCByLnByb3ZpZGVyICV9CisK K3t7IFNFQ0xBQkxFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBkYXRhLm5hbWUs IHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIGRhdGEucHJvbmFtZXNw YWNlLCBkYXRhLmZ1bmNfYXJncykgfX0KK3slIGVuZGlmICV9Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wcGFzL3NxbC85LjFfcGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFf cGx1cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjI0NmJlYzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzku MV9wbHVzL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwyMSBAQAoreyUgaWYgc2Np ZCBhbmQgZm5pZCAlfQorU0VMRUNUCisgICAgcHIucHJvbmFtZSBhcyBuYW1l LCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVu Y3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScg YXMgZnVuY19hcmdzLAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19wcm9j IHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0 eXBlCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXBy LnByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisg ICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQg dHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQor ICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTsKK3slIGVuZGlmICV9CisKK3sl IGlmIG5hbWUgJX0KK0RST1AgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG5z cG5hbWUsIG5hbWUpIH19e3tmdW5jX2FyZ3N9fXslIGlmIGNhc2NhZGUgJX0g Q0FTQ0FERXslIGVuZGlmICV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cHBhcy9zcWwvOS4xX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3Nx bC85LjFfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNTg5ZWNjZQotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCkBAIC0w LDAgKzEsMTEgQEAKK1NFTEVDVAorICAgIHBnX2dldF9mdW5jdGlvbmRlZih7 e2ZuaWR9fTo6b2lkKSBBUyBmdW5jX2RlZiwKKyAgICBuc3BuYW1lIHx8ICcu JyB8fCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9n LnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwg JycpIHx8ICcpJyBhcyBuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9J TgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1l c3BhY2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBw cm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHByLm9pZCA9 IHt7Zm5pZH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVz L2dldF9sYW5ndWFnZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9nZXRfbGFu Z3VhZ2VzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5mODFkZGZiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1 cy9nZXRfbGFuZ3VhZ2VzLnNxbApAQCAtMCwwICsxLDQgQEAKK1NFTEVDVAor ICAgIGxhbm5hbWUgYXMgbGFiZWwsIGxhbm5hbWUgYXMgdmFsdWUKK0ZST00K KyAgICBwZ19sYW5ndWFnZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3Bs dXMvZ2V0X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9vaWQuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiYzc2YTIK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9vaWQu c3FsCkBAIC0wLDAgKzEsMTcgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIu cHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5w Z19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcn KSB8fCAnKScgYXMgbmFtZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5 aWQocHJvb3duZXIpIGFzIGZ1bmNvd25lcgorRlJPTQorICAgIHBnX3Byb2Mg cHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5 cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9s YW5nCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXBy LnByb25hbWVzcGFjZQorICAgIEFORCBuc3AubnNwbmFtZT17eyBuc3BuYW1l fHF0TGl0ZXJhbCB9fQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisg ICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmln Z2VyJykKKyAgICBBTkQgcHIucHJvbmFtZSA9IHt7IG5hbWV8cXRMaXRlcmFs IH19OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9nZXRfb3V0X3R5 cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X291dF90eXBlcy5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRhMTE4Nwot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X291dF90 eXBlcy5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBmb3JtYXRf dHlwZShvaWQsIE5VTEwpIEFTIG91dF9hcmdfdHlwZQorRlJPTQorICAgIHBn X3R5cGUKK1dIRVJFCisgICAgb2lkID0ge3sgb3V0X2FyZ19vaWQgfX06Om9p ZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X3NjaGVtYS5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9zY2hlbWEuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyN2Q0YjkKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9zY2hlbWEuc3FsCkBA IC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgbnNwbmFtZQorRlJPTQorICAg IHBnX25hbWVzcGFjZQorV0hFUkUKKyAgICBvaWQgPSB7eyBzY2lkIH19Ojpv aWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2dldF90eXBlcy5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2dldF90eXBlcy5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE1NTgyZQotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X3R5cGVzLnNxbApAQCAt MCwwICsxLDIwIEBACitTRUxFQ1QKKyAgICAqCitGUk9NCisgICAgKFNFTEVD VAorICAgICAgICBmb3JtYXRfdHlwZSh0Lm9pZCxOVUxMKSBBUyB0eXBuYW1l LAorICAgICAgICBDQVNFIFdIRU4gdHlwZWxlbSA+IDAgVEhFTiB0eXBlbGVt IEVMU0UgdC5vaWQgRU5EIGFzIGVsZW1vaWQsIHR5cGxlbiwgdHlwdHlwZSwg dC5vaWQsIG5zcG5hbWUsCisgICAgICAgIChTRUxFQ1QgQ09VTlQoMSkgRlJP TSBwZ190eXBlIHQyIFdIRVJFIHQyLnR5cG5hbWUgPSB0LnR5cG5hbWUpID4g MSBBUyBpc2R1cAorICAgIEZST00KKyAgICAgICAgcGdfdHlwZSB0CisgICAg Sk9JTgorICAgICAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIHR5cG5hbWVzcGFj ZT1uc3Aub2lkCisgICAgV0hFUkUKKyAgICAgICAgKE5PVCAodHlwbmFtZSA9 ICd1bmtub3duJyBBTkQgbnNwbmFtZSA9ICdwZ19jYXRhbG9nJykpCisgICAg QU5ECisgICAgICAgICgKKyAgICAgICAgICAgIHR5cHR5cGUgSU4gKCdiJywg J2MnLCAnZCcsICdlJywgJ3AnLCAncicpCisgICAgICAgICAgICBBTkQgdHlw bmFtZSBOT1QgSU4gKCdhbnknLCAndHJpZ2dlcicsICdsYW5ndWFnZV9oYW5k bGVyJywgJ2V2ZW50X3RyaWdnZXInKQorICAgICAgICApCisgICAgKSBBUyBk dW1teQorT1JERVIgQlkgbnNwbmFtZSA8PiAncGdfY2F0YWxvZycsIG5zcG5h bWUgPD4gJ3B1YmxpYycsIG5zcG5hbWUsIDE7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMv c3FsLzkuMV9wbHVzL25vZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9ub2Rl LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jN2Y0 MTU5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9ub2Rl LnNxbApAQCAtMCwwICsxLDE4IEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHBy LnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cucGdfZ2V0 X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwg JyknIEFTIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHBy b293bmVyKSBBUyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uCitGUk9NCisgICAg cGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9 cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcu b2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0 aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29p ZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwcm9pc2FnZyA9 IEZBTFNFCisgICAgQU5EIHByLnByb3R5cGUgPSAnMCc6OmNoYXIKKyAgICBB TkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBu YW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCitPUkRF UiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9w bHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9wcm9wZXJ0 aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45 ZThhOGJhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9w cm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDMxIEBACitTRUxFQ1QKKyAgICBw ci5vaWQsIHByLnhtaW4sIHByLiosIHByLnByb3NyYyBBUyBwcm9zcmNfYywK KyAgICBwci5wcm9uYW1lIEFTIG5hbWUsIHBnX2dldF9mdW5jdGlvbl9yZXN1 bHQocHIub2lkKSBBUyBwcm9yZXR0eXBlbmFtZSwKKyAgICB0eXBucy5uc3Bu YW1lIEFTIHR5cG5zcCwgbGFubmFtZSwgcHJvYXJnbmFtZXMsIG9pZHZlY3Rv cnR5cGVzKHByb2FyZ3R5cGVzKSBBUyBwcm9hcmd0eXBlbmFtZXMsCisgICAg cGdfZ2V0X2V4cHIocHJvYXJnZGVmYXVsdHMsICdwZ19jYXRhbG9nLnBnX2Ns YXNzJzo6cmVnY2xhc3MpIEFTIHByb2FyZ2RlZmF1bHR2YWxzLAorICAgIHBy b25hcmdkZWZhdWx0cywgcHJvY29uZmlnLCBwZ19nZXRfdXNlcmJ5aWQocHJv b3duZXIpIEFTIGZ1bmNvd25lciwgZGVzY3JpcHRpb24sCisgICAgKFNFTEVD VAorICAgICAgICBhcnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxhYmVs KQorICAgIEZST00KKyAgICAgICAgcGdfc2VjbGFiZWwgc2wxCisgICAgV0hF UkUKKyAgICAgICAgc2wxLm9iam9pZD1wci5vaWQpIEFTIHNlY2xhYmVscwor RlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBP TiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2Ug dHlwbnMgT04gdHlwbnMub2lkPXR5cC50eXBuYW1lc3BhY2UKK0pPSU4KKyAg ICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitMRUZUIE9V VEVSIEpPSU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpv aWQ9cHIub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFz cykKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9u YW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9U IElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKK3slIGlmIGZuaWQg JX0KKyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9pZAoreyUgZW5kaWYg JX0KK09SREVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9z cWwvOS4xX3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvdXBk YXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w MDcyMTk4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy91 cGRhdGUuc3FsCkBAIC0wLDAgKzEsMTA1IEBACit7JSBpbXBvcnQgJ21hY3Jv cy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQor eyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3Mn IGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25z L3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX17JSBpZiBkYXRhICV9 Cit7JSBzZXQgbmFtZSA9IG9fZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5h bWUgJX0KK3slIGlmIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfQorQUxU RVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG9fZGF0YS5uYW1lKSB9fSh7e29fZGF0YS5wcm9hcmd0eXBlbmFtZXMg fX0pCisgICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUp IH19OworeyUgc2V0IG5hbWUgPSBkYXRhLm5hbWUgJX0KK3slIGVuZGlmICV9 Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMgICV9CisK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChv X2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7JSBpZiBkYXRhLmFyZ3Vt ZW50cyAlfQoreyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVudHMgJX17JSBpZiBw LmFyZ21vZGUgJX17e3AuYXJnbW9kZX19IHslIGVuZGlmICV9eyUgaWYgcC5h cmduYW1lICV9e3sgY29ubnxxdElkZW50KHAuYXJnbmFtZSkgfX0geyUgZW5k aWYgJX17JSBpZiBwLmFyZ3R5cGUgJX17e3AuYXJndHlwZX19eyUgZW5kaWYg JX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9 fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LCB7JSBlbmRp ZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKykKKyAgICBSRVRV Uk5TIHt7IG9fZGF0YS5wcm9yZXR0eXBlbmFtZSB9fQoreyUgaWYgJ2xhbm5h bWUnIGluIGRhdGEgJX0KKyAgICBMQU5HVUFHRSB7eyBkYXRhLmxhbm5hbWV8 cXRMaXRlcmFsIH19eyUgZWxzZSAlfQorICAgIExBTkdVQUdFIHt7IG9fZGF0 YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fQorICAgIHslIGVuZGlmICV9eyUgaWYg J3Byb3ZvbGF0aWxlJyBpbiBkYXRhIGFuZCBkYXRhLnByb3ZvbGF0aWxlICV9 e3sgZGF0YS5wcm92b2xhdGlsZSB9fSB7JSBlbGlmICdwcm92b2xhdGlsZScg bm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm92b2xhdGlsZSAlfXt7IG9fZGF0 YS5wcm92b2xhdGlsZSB9fXslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2lzc3Ry aWN0JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lzc3RyaWN0KSBvciAoJ3Byb2lz c3RyaWN0JyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2lzc3RyaWN0KSAl fSBTVFJJQ1R7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9zZWNkZWYnIGluIGRh dGEgYW5kIGRhdGEucHJvc2VjZGVmKSBvciAoJ3Byb3NlY2RlZicgbm90IGlu IGRhdGEgYW5kIG9fZGF0YS5wcm9zZWNkZWYpICV9IFNFQ1VSSVRZIERFRklO RVJ7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9pc3dpbmRvdycgaW4gZGF0YSBh bmQgZGF0YS5wcm9pc3dpbmRvdykgb3IgKCdwcm9pc3dpbmRvdycgbm90IGlu IGRhdGEgYW5kIG9fZGF0YS5wcm9pc3dpbmRvdykgJX0gV0lORE9XeyUgZW5k aWYgJX0KKworICAgIHslIGlmIGRhdGEucHJvY29zdCAlfUNPU1Qge3tkYXRh LnByb2Nvc3R9fXslIGVsaWYgb19kYXRhLnByb2Nvc3QgJX1DT1NUIHt7b19k YXRhLnByb2Nvc3R9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9yb3dzICV9 CisKKyAgICBST1dTIHt7ZGF0YS5wcm9yb3dzfX17JSBlbGlmIG9fZGF0YS5w cm9yb3dzICV9Uk9XUyB7e29fZGF0YS5wcm9yb3dzfX17JWVuZGlmIC0lfXsl IGlmIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfXslIGZvciB2IGluIGRhdGEu bWVyZ2VkX3ZhcmlhYmxlcyAlfQorCisgICAgU0VUIHt7IGNvbm58cXRJZGVu dCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19eyUgZW5kZm9y IC0lfQorICAgIHslIGVuZGlmICV9CisKK0FTIHslIGlmICdwcm9iaW4nIGlu IGRhdGEgb3IgJ3Byb3NyY19jJyBpbiBkYXRhICV9Cit7JSBpZiAncHJvYmlu JyBpbiBkYXRhICV9e3sgZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19eyUgZWxz ZSAlfXt7IG9fZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19eyUgZW5kaWYgJX0s IHslIGlmICdwcm9zcmNfYycgaW4gZGF0YSAlfXt7IGRhdGEucHJvc3JjX2N8 cXRMaXRlcmFsIH19eyUgZWxzZSAlfXt7IG9fZGF0YS5wcm9zcmNfY3xxdExp dGVyYWwgfX17JSBlbmRpZiAlfXslIGVsaWYgJ3Byb3NyYycgaW4gZGF0YSAl fQorJGZ1bmN0aW9uJHt7IGRhdGEucHJvc3JjIH19JGZ1bmN0aW9uJHslIGVs aWYgb19kYXRhLmxhbm5hbWUgPT0gJ2MnICV9Cit7eyBvX2RhdGEucHJvYmlu fHF0TGl0ZXJhbCB9fSwge3sgb19kYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9 fXslIGVsc2UgJX0KKyRmdW5jdGlvbiR7eyBvX2RhdGEucHJvc3JjIH19JGZ1 bmN0aW9uJHslIGVuZGlmIC0lfTsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0 YS5mdW5jb3duZXIgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElk ZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7IG9fZGF0YS5w cm9hcmd0eXBlbmFtZXMgfX0pCisgICAgT1dORVIgVE8ge3sgZGF0YS5mdW5j b3duZXIgfX07Cit7JSBlbmRpZiAtJX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVk IGJlbG93IHdpbGwgY2hhbmdlIHByaXZpbGVkZ2VzICN9Cit7JSBpZiBkYXRh LmFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuYWNsICV9Cit7JSBm b3IgcHJpdiBpbiBkYXRhLmFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxFR0Uu VU5TRVRBTEwoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1l LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVz KSB9fQorCit7JSBlbmRmb3IgJX17JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5n ZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5j aGFuZ2VkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNU SU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNl LCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQorCit7eyBQUklWSUxFR0Uu U0VUKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJp di53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9u YW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19CisKK3slIGVu ZGZvciAlfXslIGVuZGlmICV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEuYWNs ICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5hZGRlZCAlfQorCit7eyBQ UklWSUxFR0UuU0VUKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwg bmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19 Cit7JSBlbmRmb3IgJX17JSBlbmRpZiAlfXslIGVuZGlmICV9Cit7JSBpZiBk YXRhLmNoYW5nZV9mdW5jID09IEZhbHNlICV9Cit7JSBpZiBkYXRhLnZhcmlh YmxlcyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEudmFyaWFibGVzIGFu ZCBkYXRhLnZhcmlhYmxlcy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KKwore3sg VkFSSUFCTEUuVU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgZGF0YS52 YXJpYWJsZXMuZGVsZXRlZCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRh LnByb2FyZ3R5cGVuYW1lcyApIH19Cit7JSBlbmRpZiAtJX0KK3slIGlmICdt ZXJnZWRfdmFyaWFibGVzJyBpbiBkYXRhIGFuZCBkYXRhLm1lcmdlZF92YXJp YWJsZXN8bGVuZ3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5TRVQoY29ubiwg J0ZVTkNUSU9OJywgbmFtZSwgZGF0YS5tZXJnZWRfdmFyaWFibGVzLCBvX2Rh dGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzICkgfX0K K3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfXslIGVuZGlmICV9Cit7JSBzZXQg c2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmICdkZWxldGVk JyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVkfGxlbmd0aCA+ IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5kZWxldGVkICV9Cit7eyBT RUNMQUJMRS5VTlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3Zp ZGVyLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5h bWVzKSB9fQorCit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYg J2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxsZW5n dGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0KKwor e3sgU0VDTEFCTEUuU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIHIucHJv dmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIG9fZGF0YS5wcm9uYW1lc3BhY2Us IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3sl IGVuZGlmIC0lfQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBhbmQg c2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4g c2VjbGFiZWxzLmNoYW5nZWQgJX0KK3t7IFNFQ0xBQkxFLlNFVChjb25uLCAn RlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVs LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVz KSB9fQoreyUgZW5kZm9yICV9eyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmRl c2NyaXB0aW9uICV9CisKK0NPTU1FTlQgT04gRlVOQ1RJT04ge3sgY29ubnxx dElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7b19kYXRh LnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBJUyB7eyBkYXRhLmRlc2NyaXB0 aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5w cm9uYW1lc3BhY2UgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElk ZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7b19kYXRhLnBy b2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBTRVQgU0NIRU1BIHt7IGNvbm58cXRJ ZGVudChkYXRhLnByb25hbWVzcGFjZSkgfX07Cit7JSBlbmRpZiAtJX0KKwor eyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvdmFy aWFibGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvdmFyaWFibGVzLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjMzYzcxCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy92YXJpYWJsZXMu c3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgbmFtZSwgdmFydHlw ZSwgbWluX3ZhbCwgbWF4X3ZhbCwgZW51bXZhbHMKK0ZST00KKyAgICBwZ19z ZXR0aW5ncworV0hFUkUKKyAgICBjb250ZXh0IGluICgndXNlcicsICdzdXBl cnVzZXInKTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvYWNsLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcHBhcy9zcWwvOS4yX3BsdXMvYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5hZDNlMGQxCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wcGFzL3NxbC85LjJfcGx1cy9hY2wuc3FsCkBAIC0wLDAgKzEsMzUgQEAK K1NFTEVDVAorICAgIENPQUxFU0NFKGd0LnJvbG5hbWUsICdwdWJsaWMnKSBB UyBncmFudGVlLAorICAgIGcucm9sbmFtZSBBUyBncmFudG9yLCBhcnJheV9h Z2cocHJpdmlsZWdlX3R5cGUpIEFTIHByaXZpbGVnZXMsCisgICAgYXJyYXlf YWdnKGlzX2dyYW50YWJsZSkgQVMgZ3JhbnRhYmxlCitGUk9NCisgICAgKFNF TEVDVAorICAgICAgICBkLmdyYW50ZWUsIGQuZ3JhbnRvciwgZC5pc19ncmFu dGFibGUsCisgICAgICAgIENBU0UgZC5wcml2aWxlZ2VfdHlwZQorICAgICAg ICBXSEVOICdDT05ORUNUJyBUSEVOICdjJworICAgICAgICBXSEVOICdDUkVB VEUnIFRIRU4gJ0MnCisgICAgICAgIFdIRU4gJ0RFTEVURScgVEhFTiAnZCcK KyAgICAgICAgV0hFTiAnRVhFQ1VURScgVEhFTiAnWCcKKyAgICAgICAgV0hF TiAnSU5TRVJUJyBUSEVOICdhJworICAgICAgICBXSEVOICdSRUZFUkVOQ0VT JyBUSEVOICd4JworICAgICAgICBXSEVOICdTRUxFQ1QnIFRIRU4gJ3InCisg ICAgICAgIFdIRU4gJ1RFTVBPUkFSWScgVEhFTiAnVCcKKyAgICAgICAgV0hF TiAnVFJJR0dFUicgVEhFTiAndCcKKyAgICAgICAgV0hFTiAnVFJVTkNBVEUn IFRIRU4gJ0QnCisgICAgICAgIFdIRU4gJ1VQREFURScgVEhFTiAndycKKyAg ICAgICAgV0hFTiAnVVNBR0UnIFRIRU4gJ1UnCisgICAgICAgIEVMU0UgJ1VO S05PV04nCisgICAgICAgIEVORCBBUyBwcml2aWxlZ2VfdHlwZQorICAgIEZS T00KKyAgICAgICAgKFNFTEVDVAorICAgICAgICAgICAgKGQpLmdyYW50ZWUg QVMgZ3JhbnRlZSwgKGQpLmdyYW50b3IgQVMgZ3JhbnRvciwKKyAgICAgICAg ICAgIChkKS5pc19ncmFudGFibGUgQVMgaXNfZ3JhbnRhYmxlLAorICAgICAg ICAgICAgKGQpLnByaXZpbGVnZV90eXBlIEFTIHByaXZpbGVnZV90eXBlCisg ICAgICAgIEZST00KKyAgICAgICAgICAgIChTRUxFQ1QgYWNsZXhwbG9kZShk Yi5wcm9hY2wpIEFTIGQgRlJPTSBwZ19wcm9jIGRiCisgICAgICAgICAgICBX SEVSRSBkYi5vaWQgPSB7e2ZuaWR9fTo6T0lEKSBhCisgICAgICAgICkgZAor ICAgICkgZAorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcg T04gKGQuZ3JhbnRvciA9IGcub2lkKQorICAgIExFRlQgSk9JTiBwZ19jYXRh bG9nLnBnX3JvbGVzIGd0IE9OIChkLmdyYW50ZWUgPSBndC5vaWQpCitHUk9V UCBCWSBnLnJvbG5hbWUsIGd0LnJvbG5hbWU7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMv c3FsLzkuMl9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2Ny ZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NTBkZTZkYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMv Y3JlYXRlLnNxbApAQCAtMCwwICsxLDU3IEBACit7JSBpbXBvcnQgJ21hY3Jv cy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQor eyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3Mn IGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25z L3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX0KK3slIHNldCBpc19j b2x1bW5zID0gW10gJX0KK3slIGlmIGRhdGEgJX0KK0NSRUFURSBGVU5DVElP TiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFt ZSkgfX0oeyUgaWYgZGF0YS5hcmd1bWVudHMgJX0KK3slIGZvciBwIGluIGRh dGEuYXJndW1lbnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9 fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFtZSAlfXt7IGNvbm58cXRJZGVu dChwLmFyZ25hbWUpfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX17 e3AuYXJndHlwZX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBE RUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3Qg bG9vcC5sYXN0ICV9LHslIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmIC0lfQorICAgICkKKyAgICBSRVRVUk5TeyUgaWYgZGF0YS5wcm9yZXRz ZXQgJX0gU0VUT0Z7JSBlbmRpZiAlfSB7eyBjb25ufHF0VHlwZUlkZW50KGRh dGEucHJvcmV0dHlwZW5hbWUpIH19CisgICAgTEFOR1VBR0Uge3sgZGF0YS5s YW5uYW1lfHF0TGl0ZXJhbCB9fQorICAgIHslIGlmIGRhdGEucHJvdm9sYXRp bGUgJX17eyBkYXRhLnByb3ZvbGF0aWxlIH19IHslIGVuZGlmICV9eyUgaWYg ZGF0YS5wcm9sZWFrcHJvb2YgJX1MRUFLUFJPT0YgeyUgZWxzZSAlfU5PVCBM RUFLUFJPT0YgeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvaXNzdHJpY3Qg JX1TVFJJQ1QgeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvc2VjZGVmICV9 U0VDVVJJVFkgREVGSU5FUiB7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9p c3dpbmRvdyAlfVdJTkRPV3slIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9jb3N0 ICV9CisKKyAgICBDT1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbmRpZiAlfXsl IGlmIGRhdGEucHJvcm93cyAlfQorCisgICAgUk9XUyB7e2RhdGEucHJvcm93 c319eyUgZW5kaWYgLSV9eyUgaWYgZGF0YS52YXJpYWJsZXMgJX17JSBmb3Ig diBpbiBkYXRhLnZhcmlhYmxlcyAlfQorCisgICAgU0VUIHt7IGNvbm58cXRJ ZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19eyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAlfQorCitBUyB7JSBpZiBkYXRhLmxhbm5hbWUg PT0gJ2MnICV9Cit7eyBkYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IGRh dGEucHJvc3JjX2N8cXRMaXRlcmFsIH19Cit7JSBlbHNlICV9CiskZnVuY3Rp b24kCit7eyBkYXRhLnByb3NyYyB9fQorJGZ1bmN0aW9uJHslIGVuZGlmIC0l fTsKK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVSIEZVTkNUSU9O IHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1l KSB9fSh7e2RhdGEuZnVuY19hcmdzfX0pCisgICAgT1dORVIgVE8ge3sgZGF0 YS5mdW5jb3duZXIgfX07Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuYWNs ICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFjbCAlfQorCit7eyBQUklWSUxFR0Uu U0VUKGNvbm4sICJGVU5DVElPTiIsIHAuZ3JhbnRlZSwgZGF0YS5uYW1lLCBw LndpdGhvdXRfZ3JhbnQsIHAud2l0aF9ncmFudCwgZGF0YS5wcm9uYW1lc3Bh Y2UsIGRhdGEuZnVuY19hcmdzKX19Cit7JSBlbmRmb3IgLSV9Cit7JSBlbmRp ZiAtJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBP TiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2Us IGRhdGEubmFtZSkgfX0oe3tkYXRhLmZ1bmNfYXJnc319KQorICAgIElTICd7 eyBkYXRhLmRlc2NyaXB0aW9uIH19JzsKK3slIGVuZGlmIC0lfQoreyUgaWYg ZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2VjbGFiZWxz ICV9Cit7JSBpZiByLnNlY3VyaXR5X2xhYmVsIGFuZCByLnByb3ZpZGVyICV9 CisKK3t7IFNFQ0xBQkxFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBkYXRhLm5h bWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIGRhdGEucHJvbmFt ZXNwYWNlLCBkYXRhLmZ1bmNfYXJncykgfX0KK3slIGVuZGlmICV9Cit7JSBl bmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAtJX0KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvZGVsZXRlLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwv OS4yX3BsdXMvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5jMjQ5NzBjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3Nx bC85LjJfcGx1cy9kZWxldGUuc3FsCkBAIC0wLDAgKzEsMjIgQEAKK3slIGlm IHNjaWQgYW5kIGZuaWQgJX0KK1NFTEVDVAorICAgIHByLnByb25hbWUgYXMg bmFtZSwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0 X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwg JyknIGFzIGZ1bmNfYXJncywKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdf cHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJv cmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9p ZD1wci5wcm9uYW1lc3BhY2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxT RQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAg QU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2Vy JykKKyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX07Cit7JSBlbmRpZiAlfQor Cit7JSBpZiBuYW1lICV9CitEUk9QIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVu dChuc3BuYW1lLCBuYW1lKSB9fXt7ZnVuY19hcmdzfX17JSBpZiBjYXNjYWRl JX0gQ0FTQ0FERXslCitlbmRpZiAlfTsKK3slIGVuZGlmICV9CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9kZWZpbml0aW9uLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBh cy9zcWwvOS4yX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4OWVjY2UKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9kZWZpbml0aW9uLnNxbApA QCAtMCwwICsxLDExIEBACitTRUxFQ1QKKyAgICBwZ19nZXRfZnVuY3Rpb25k ZWYoe3tmbmlkfX06Om9pZCkgQVMgZnVuY19kZWYsCisgICAgbnNwbmFtZSB8 fCAnLicgfHwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0 YWxvZy5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9p ZCksICcnKSB8fCAnKScgYXMgbmFtZQorRlJPTQorICAgIHBnX3Byb2MgcHIK K0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJv bmFtZXNwYWNlCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBB TkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCBwci5v aWQgPSB7e2ZuaWR9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJf cGx1cy9nZXRfbGFuZ3VhZ2VzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvZ2V0 X2xhbmd1YWdlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZjgxZGRmYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4y X3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwKQEAgLTAsMCArMSw0IEBACitTRUxF Q1QKKyAgICBsYW5uYW1lIGFzIGxhYmVsLCBsYW5uYW1lIGFzIHZhbHVlCitG Uk9NCisgICAgcGdfbGFuZ3VhZ2U7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzku Ml9wbHVzL2dldF9vaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRfb2lk LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmM3 NmEyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRf b2lkLnNxbApAQCAtMCwwICsxLDE3IEBACitTRUxFQ1QKKyAgICBwci5vaWQs IHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAg ICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQp LCAnJykgfHwgJyknIGFzIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3Vz ZXJieWlkKHByb293bmVyKSBhcyBmdW5jb3duZXIKK0ZST00KKyAgICBwZ19w cm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9y ZXR0eXBlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9 cHJvbGFuZworSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9p ZD1wci5wcm9uYW1lc3BhY2UKKyAgICBBTkQgbnNwLm5zcG5hbWU9e3sgbnNw bmFtZXxxdExpdGVyYWwgfX0KK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxT RQorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRf dHJpZ2dlcicpCisgICAgQU5EIHByLnByb25hbWUgPSB7eyBuYW1lfHF0TGl0 ZXJhbCB9fTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X291 dF90eXBlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9vdXRfdHlwZXMu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0YTEx ODcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9v dXRfdHlwZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgZm9y bWF0X3R5cGUob2lkLCBOVUxMKSBBUyBvdXRfYXJnX3R5cGUKK0ZST00KKyAg ICBwZ190eXBlCitXSEVSRQorICAgIG9pZCA9IHt7IG91dF9hcmdfb2lkIH19 OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9zY2hl bWEuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRfc2NoZW1hLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjdkNGI5Ci0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRfc2NoZW1hLnNx bApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5zcG5hbWUKK0ZST00K KyAgICBwZ19uYW1lc3BhY2UKK1dIRVJFCisgICAgb2lkID0ge3sgc2NpZCB9 fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRfdHlw ZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRfdHlwZXMuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNTU4MmUKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF90eXBlcy5zcWwK QEAgLTAsMCArMSwyMCBAQAorU0VMRUNUCisgICAgKgorRlJPTQorICAgIChT RUxFQ1QKKyAgICAgICAgZm9ybWF0X3R5cGUodC5vaWQsTlVMTCkgQVMgdHlw bmFtZSwKKyAgICAgICAgQ0FTRSBXSEVOIHR5cGVsZW0gPiAwIFRIRU4gdHlw ZWxlbSBFTFNFIHQub2lkIEVORCBhcyBlbGVtb2lkLCB0eXBsZW4sIHR5cHR5 cGUsIHQub2lkLCBuc3BuYW1lLAorICAgICAgICAoU0VMRUNUIENPVU5UKDEp IEZST00gcGdfdHlwZSB0MiBXSEVSRSB0Mi50eXBuYW1lID0gdC50eXBuYW1l KSA+IDEgQVMgaXNkdXAKKyAgICBGUk9NCisgICAgICAgIHBnX3R5cGUgdAor ICAgIEpPSU4KKyAgICAgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiB0eXBuYW1l c3BhY2U9bnNwLm9pZAorICAgIFdIRVJFCisgICAgICAgIChOT1QgKHR5cG5h bWUgPSAndW5rbm93bicgQU5EIG5zcG5hbWUgPSAncGdfY2F0YWxvZycpKQor ICAgIEFORAorICAgICAgICAoCisgICAgICAgICAgICB0eXB0eXBlIElOICgn YicsICdjJywgJ2QnLCAnZScsICdwJywgJ3InKQorICAgICAgICAgICAgQU5E IHR5cG5hbWUgTk9UIElOICgnYW55JywgJ3RyaWdnZXInLCAnbGFuZ3VhZ2Vf aGFuZGxlcicsICdldmVudF90cmlnZ2VyJykKKyAgICAgICAgKQorICAgICkg QVMgZHVtbXkKK09SREVSIEJZIG5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnLCBu c3BuYW1lIDw+ICdwdWJsaWMnLCBuc3BuYW1lLCAxOwpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9w cGFzL3NxbC85LjJfcGx1cy9ub2RlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMv bm9kZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u YzdmNDE1OQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMv bm9kZS5zcWwKQEAgLTAsMCArMSwxOCBAQAorU0VMRUNUCisgICAgcHIub2lk LCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nLnBn X2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycp IHx8ICcpJyBBUyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91c2VyYnlp ZChwcm9vd25lcikgQVMgZnVuY293bmVyLCBkZXNjcmlwdGlvbgorRlJPTQor ICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAu b2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04g bG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19kZXNj cmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMuY2xh c3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHJvaXNh Z2cgPSBGQUxTRQorICAgIEFORCBwci5wcm90eXBlID0gJzAnOjpjaGFyCisg ICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQg dHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQor T1JERVIgQlkKKyAgICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85 LjJfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvcHJv cGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uZmY3ODI5OAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3Bs dXMvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSwzMSBAQAorU0VMRUNUCisg ICAgcHIub2lkLCBwci54bWluLCBwci4qLCBwci5wcm9zcmMgQVMgcHJvc3Jj X2MsCisgICAgcHIucHJvbmFtZSBBUyBuYW1lLCBwZ19nZXRfZnVuY3Rpb25f cmVzdWx0KHByLm9pZCkgQVMgcHJvcmV0dHlwZW5hbWUsCisgICAgdHlwbnMu bnNwbmFtZSBBUyB0eXBuc3AsIGxhbm5hbWUsIHByb2FyZ25hbWVzLCBvaWR2 ZWN0b3J0eXBlcyhwcm9hcmd0eXBlcykgQVMgcHJvYXJndHlwZW5hbWVzLAor ICAgIHBnX2dldF9leHByKHByb2FyZ2RlZmF1bHRzLCAncGdfY2F0YWxvZy5w Z19jbGFzcyc6OnJlZ2NsYXNzKSBBUyBwcm9hcmdkZWZhdWx0dmFscywKKyAg ICBwcm9uYXJnZGVmYXVsdHMsIHByb2NvbmZpZywgcGdfZ2V0X3VzZXJieWlk KHByb293bmVyKSBBUyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uLAorICAgIChT RUxFQ1QKKyAgICAgICAgYXJyYXlfYWdnKHByb3ZpZGVyIHx8ICc9JyB8fCBs YWJlbCkKKyAgICBGUk9NCisgICAgICAgIHBnX3Noc2VjbGFiZWwgc2wxCisg ICAgV0hFUkUKKyAgICAgICAgc2wxLm9iam9pZD1wci5vaWQpIEFTIHNlY2xh YmVscworRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBl IHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19uYW1l c3BhY2UgdHlwbnMgT04gdHlwbnMub2lkPXR5cC50eXBuYW1lc3BhY2UKK0pP SU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitM RUZUIE9VVEVSIEpPSU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRl cy5vYmpvaWQ9cHIub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX3Byb2MnOjpy ZWdjbGFzcykKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFO RCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5cG5h bWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKK3slIGlm IGZuaWQgJX0KKyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9pZAoreyUg ZW5kaWYgJX0KK09SREVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cHBhcy9zcWwvOS4yX3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3Bs dXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4wMTI2YzhkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJf cGx1cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMTE0IEBACit7JSBpbXBvcnQg J21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJM RSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5t YWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVu Y3Rpb25zL3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX17JSBpZiBk YXRhICV9Cit7JSBzZXQgbmFtZSA9IG9fZGF0YS5uYW1lICV9Cit7JSBpZiBk YXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAl fQorQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9u YW1lc3BhY2UsIG9fZGF0YS5uYW1lKSB9fSh7e29fZGF0YS5wcm9hcmd0eXBl bmFtZXMgfX0pCisgICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChkYXRh Lm5hbWUpIH19OworeyUgc2V0IG5hbWUgPSBkYXRhLm5hbWUgJX0KK3slIGVu ZGlmICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMg ICV9CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHt7IGNvbm58cXRJ ZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7JSBpZiBkYXRh LmFyZ3VtZW50cyAlfQoreyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVudHMgJX17 JSBpZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9kZX19IHslIGVuZGlmICV9eyUg aWYgcC5hcmduYW1lICV9e3tjb25ufHF0SWRlbnQocC5hcmduYW1lKX19IHsl IGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3twLmFyZ3R5cGV9fXslIGVu ZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVm dmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSwgeyUg ZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CispCisgICAg UkVUVVJOUyB7eyBvX2RhdGEucHJvcmV0dHlwZW5hbWUgfX0KK3slIGlmICds YW5uYW1lJyBpbiBkYXRhICV9CisgICAgTEFOR1VBR0Uge3sgZGF0YS5sYW5u YW1lfHF0TGl0ZXJhbCB9fXslIGVsc2UgJX0KKyAgICBMQU5HVUFHRSB7eyBv X2RhdGEubGFubmFtZXxxdExpdGVyYWwgfX0KKyAgICB7JSBlbmRpZiAlfXsl IGlmICdwcm92b2xhdGlsZScgaW4gZGF0YSBhbmQgZGF0YS5wcm92b2xhdGls ZSAlfXt7IGRhdGEucHJvdm9sYXRpbGUgfX0geyUgZWxpZiAncHJvdm9sYXRp bGUnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvdm9sYXRpbGUgJX17eyBv X2RhdGEucHJvdm9sYXRpbGUgfX17JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9s ZWFrcHJvb2YnIGluIGRhdGEgYW5kIGRhdGEucHJvbGVha3Byb29mKSBvciAo J3Byb2xlYWtwcm9vZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9sZWFr cHJvb2YpICV9TEVBS1BST09GeyUgZWxpZiAncHJvbGVha3Byb29mJyBpbiBk YXRhIGFuZCBub3QgZGF0YS5wcm9sZWFrcHJvb2YgJX1OT1QgTEVBS1BST09G eyUgZW5kaWYgJX0KK3slIGlmICgncHJvaXNzdHJpY3QnIGluIGRhdGEgYW5k IGRhdGEucHJvaXNzdHJpY3QpIG9yICgncHJvaXNzdHJpY3QnIG5vdCBpbiBk YXRhIGFuZCBvX2RhdGEucHJvaXNzdHJpY3QpICV9IFNUUklDVHslIGVuZGlm ICV9Cit7JSBpZiAoJ3Byb3NlY2RlZicgaW4gZGF0YSBhbmQgZGF0YS5wcm9z ZWNkZWYpIG9yICgncHJvc2VjZGVmJyBub3QgaW4gZGF0YSBhbmQgb19kYXRh LnByb3NlY2RlZikgJX0gU0VDVVJJVFkgREVGSU5FUnslIGVuZGlmICV9Cit7 JSBpZiAoJ3Byb2lzd2luZG93JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lzd2lu ZG93KSBvciAoJ3Byb2lzd2luZG93JyBub3QgaW4gZGF0YSBhbmQgb19kYXRh LnByb2lzd2luZG93KSAlfSBXSU5ET1d7JSBlbmRpZiAlfQorCisgICAgeyUg aWYgZGF0YS5wcm9jb3N0ICV9Q09TVCB7e2RhdGEucHJvY29zdH19eyUgZWxp ZiBvX2RhdGEucHJvY29zdCAlfUNPU1Qge3tvX2RhdGEucHJvY29zdH19eyUg ZW5kaWYgJX17JSBpZiBkYXRhLnByb3Jvd3MgJX0KKworICAgIFJPV1Mge3tk YXRhLnByb3Jvd3N9fXslIGVsaWYgb19kYXRhLnByb3Jvd3MgJX1ST1dTIHt7 b19kYXRhLnByb3Jvd3N9fXslIGVuZGlmIC0lfXslIGlmIGRhdGEubWVyZ2Vk X3ZhcmlhYmxlcyAlfXslIGZvciB2IGluIGRhdGEubWVyZ2VkX3ZhcmlhYmxl cyAlfQorCisgICAgU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7 IHYudmFsdWV8cXRMaXRlcmFsIH19eyUgZW5kZm9yIC0lfQorICAgIHslIGVu ZGlmICV9CisKK0FTIHslIGlmICdwcm9iaW4nIGluIGRhdGEgb3IgJ3Byb3Ny Y19jJyBpbiBkYXRhICV9Cit7JSBpZiAncHJvYmluJyBpbiBkYXRhICV9e3sg ZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19eyUgZWxzZSAlfXt7IG9fZGF0YS5w cm9iaW58cXRMaXRlcmFsIH19eyUgZW5kaWYgJX0sIHslIGlmICdwcm9zcmNf YycgaW4gZGF0YSAlfXt7IGRhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19eyUg ZWxzZSAlfXt7IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17JSBlbmRp ZiAlfXslIGVsaWYgJ3Byb3NyYycgaW4gZGF0YSAlfQorJGZ1bmN0aW9uJHt7 IGRhdGEucHJvc3JjIH19JGZ1bmN0aW9uJHslIGVsaWYgb19kYXRhLmxhbm5h bWUgPT0gJ2MnICV9Cit7eyBvX2RhdGEucHJvYmlufHF0TGl0ZXJhbCB9fSwg e3sgb19kYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fXslIGVsc2UgJX0KKyRm dW5jdGlvbiR7eyBvX2RhdGEucHJvc3JjIH19JGZ1bmN0aW9uJHslIGVuZGlm IC0lfTsKK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLmZ1bmNvd25lciAl fQorCitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnBy b25hbWVzcGFjZSwgbmFtZSkgfX0oe3sgb19kYXRhLnByb2FyZ3R5cGVuYW1l cyB9fSkKKyAgICBPV05FUiBUTyB7eyBkYXRhLmZ1bmNvd25lciB9fTsKK3sl IGVuZGlmIC0lfQoreyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBj aGFuZ2UgcHJpdmlsZWRnZXMgI30KK3slIGlmIGRhdGEuYWNsICV9Cit7JSBp ZiAnZGVsZXRlZCcgaW4gZGF0YS5hY2wgJX0KK3slIGZvciBwcml2IGluIGRh dGEuYWNsLmRlbGV0ZWQgJX0KKwore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNv bm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRhLnBy b25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVu ZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gZGF0 YS5hY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNsLmNoYW5nZWQgJX0K Kwore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdGVU5DVElPTicsIHBy aXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRh LnByb2FyZ3R5cGVuYW1lcykgfX0KKwore3sgUFJJVklMRUdFLlNFVChjb25u LCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIHByaXYud2l0aG91 dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFtZXNwYWNl LCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7 JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcgaW4gZGF0YS5hY2wgJX0KK3sl IGZvciBwcml2IGluIGRhdGEuYWNsLmFkZGVkICV9CisKK3t7IFBSSVZJTEVH RS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBw cml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnBy b25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVu ZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0 YS5jaGFuZ2VfZnVuYyA9PSBGYWxzZSAlfQoreyUgaWYgZGF0YS52YXJpYWJs ZXMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLnZhcmlhYmxlcyBhbmQg ZGF0YS52YXJpYWJsZXMuZGVsZXRlZHxsZW5ndGggPiAwICV9CisKK3t7IFZB UklBQkxFLlVOU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIGRhdGEudmFy aWFibGVzLmRlbGV0ZWQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5w cm9hcmd0eXBlbmFtZXMgKSB9fQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnbWVy Z2VkX3ZhcmlhYmxlcycgaW4gZGF0YSBhbmQgZGF0YS5tZXJnZWRfdmFyaWFi bGVzfGxlbmd0aCA+IDAgJX0KKwore3sgVkFSSUFCTEUuU0VUKGNvbm4sICdG VU5DVElPTicsIG5hbWUsIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcywgb19kYXRh LnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyApIH19Cit7 JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0lfQoreyUgZW5kaWYgLSV9Cit7JSBz ZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmICdkZWxl dGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVkfGxlbmd0 aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5kZWxldGVkICV9CisK K3t7IFNFQ0xBQkxFLlVOU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIHIu cHJvdmlkZXIsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0 eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUg aWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxs ZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0K Kwore3sgU0VDTEFCTEUuU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIHIu cHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmIC0lfQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBh bmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIg aW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KKwore3sgU0VDTEFCTEUuU0VUKGNv bm4sICdGVU5DVElPTicsIG5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlf bGFiZWwsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBl bmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYg ZGF0YS5kZXNjcmlwdGlvbiAlfQorCitDT01NRU5UIE9OIEZVTkNUSU9OIHt7 IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7 eyBvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIElTIHt7IGRhdGEu ZGVzY3JpcHRpb258cXRMaXRlcmFsIH19OworeyUgZW5kaWYgLSV9Cit7JSBp ZiBkYXRhLnByb25hbWVzcGFjZSAlfQorCitBTFRFUiBGVU5DVElPTiB7eyBj b25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oe3sg b19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBTRVQgU0NIRU1BIHt7 IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSkgfX07Cit7JSBlbmRp ZiAtJX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4y X3BsdXMvdmFyaWFibGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvdmFyaWFi bGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41 MjMzYzcxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy92 YXJpYWJsZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgbmFt ZSwgdmFydHlwZSwgbWluX3ZhbCwgbWF4X3ZhbCwgZW51bXZhbHMKK0ZST00K KyAgICBwZ19zZXR0aW5ncworV0hFUkUKKyAgICBjb250ZXh0IGluICgndXNl cicsICdzdXBlcnVzZXInKTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3Bs dXMvYWNsLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvYWNsLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDNlMGQxCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9hY2wuc3FsCkBAIC0wLDAg KzEsMzUgQEAKK1NFTEVDVAorICAgIENPQUxFU0NFKGd0LnJvbG5hbWUsICdw dWJsaWMnKSBBUyBncmFudGVlLAorICAgIGcucm9sbmFtZSBBUyBncmFudG9y LCBhcnJheV9hZ2cocHJpdmlsZWdlX3R5cGUpIEFTIHByaXZpbGVnZXMsCisg ICAgYXJyYXlfYWdnKGlzX2dyYW50YWJsZSkgQVMgZ3JhbnRhYmxlCitGUk9N CisgICAgKFNFTEVDVAorICAgICAgICBkLmdyYW50ZWUsIGQuZ3JhbnRvciwg ZC5pc19ncmFudGFibGUsCisgICAgICAgIENBU0UgZC5wcml2aWxlZ2VfdHlw ZQorICAgICAgICBXSEVOICdDT05ORUNUJyBUSEVOICdjJworICAgICAgICBX SEVOICdDUkVBVEUnIFRIRU4gJ0MnCisgICAgICAgIFdIRU4gJ0RFTEVURScg VEhFTiAnZCcKKyAgICAgICAgV0hFTiAnRVhFQ1VURScgVEhFTiAnWCcKKyAg ICAgICAgV0hFTiAnSU5TRVJUJyBUSEVOICdhJworICAgICAgICBXSEVOICdS RUZFUkVOQ0VTJyBUSEVOICd4JworICAgICAgICBXSEVOICdTRUxFQ1QnIFRI RU4gJ3InCisgICAgICAgIFdIRU4gJ1RFTVBPUkFSWScgVEhFTiAnVCcKKyAg ICAgICAgV0hFTiAnVFJJR0dFUicgVEhFTiAndCcKKyAgICAgICAgV0hFTiAn VFJVTkNBVEUnIFRIRU4gJ0QnCisgICAgICAgIFdIRU4gJ1VQREFURScgVEhF TiAndycKKyAgICAgICAgV0hFTiAnVVNBR0UnIFRIRU4gJ1UnCisgICAgICAg IEVMU0UgJ1VOS05PV04nCisgICAgICAgIEVORCBBUyBwcml2aWxlZ2VfdHlw ZQorICAgIEZST00KKyAgICAgICAgKFNFTEVDVAorICAgICAgICAgICAgKGQp LmdyYW50ZWUgQVMgZ3JhbnRlZSwgKGQpLmdyYW50b3IgQVMgZ3JhbnRvciwK KyAgICAgICAgICAgIChkKS5pc19ncmFudGFibGUgQVMgaXNfZ3JhbnRhYmxl LAorICAgICAgICAgICAgKGQpLnByaXZpbGVnZV90eXBlIEFTIHByaXZpbGVn ZV90eXBlCisgICAgICAgIEZST00KKyAgICAgICAgICAgIChTRUxFQ1QgYWNs ZXhwbG9kZShkYi5wcm9hY2wpIEFTIGQgRlJPTSBwZ19wcm9jIGRiCisgICAg ICAgICAgICBXSEVSRSBkYi5vaWQgPSB7e2ZuaWR9fTo6T0lEKSBhCisgICAg ICAgICkgZAorICAgICkgZAorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBn X3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9IGcub2lkKQorICAgIExFRlQgSk9J TiBwZ19jYXRhbG9nLnBnX3JvbGVzIGd0IE9OIChkLmdyYW50ZWUgPSBndC5v aWQpCitHUk9VUCBCWSBnLnJvbG5hbWUsIGd0LnJvbG5hbWU7CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzku NV9wbHVzL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZWM5ZjIzZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwv OS41X3BsdXMvY3JlYXRlLnNxbApAQCAtMCwwICsxLDU3IEBACit7JSBpbXBv cnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNM QUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVn ZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3Mv ZnVuY3Rpb25zL3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX0KK3sl IHNldCBpc19jb2x1bW5zID0gW10gJX0KK3slIGlmIGRhdGEgJX0KK0NSRUFU RSBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2Us IGRhdGEubmFtZSkgfX0oeyUgaWYgZGF0YQorLmFyZ3VtZW50cyAlfQoreyUg Zm9yIHAgaW4gZGF0YS5hcmd1bWVudHMgJX17JSBpZiBwLmFyZ21vZGUgJX17 e3AuYXJnbW9kZX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmduYW1lICV9e3sg Y29ubnxxdElkZW50KHAuYXJnbmFtZSl9fXslIGVuZGlmICV9eyUgaWYgcC5h cmd0eXBlICV9e3twLmFyZ3R5cGV9fXslIGVuZGlmICV9eyUgaWYgcC5hcmdk ZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAlfQor eyUgaWYgbm90IGxvb3AubGFzdCAlfSx7JSBlbmRpZiAlfQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAtJX0KKyAgICApCisgICAgUkVUVVJOU3slIGlmIGRh dGEucHJvcmV0c2V0ICV9IFNFVE9GeyUgZW5kaWYgJX0ge3sgY29ubnxxdFR5 cGVJZGVudChkYXRhLnByb3JldHR5cGVuYW1lKSB9fQorICAgIExBTkdVQUdF IHt7IGRhdGEubGFubmFtZXxxdExpdGVyYWwgfX0KKyAgICB7JSBpZiBkYXRh LnByb3ZvbGF0aWxlICV9e3sgZGF0YS5wcm92b2xhdGlsZSB9fSB7JSBlbmRp ZiAlfXslIGlmIGRhdGEucHJvbGVha3Byb29mICV9TEVBS1BST09GIHslIGVs c2UgJX1OT1QgTEVBS1BST09GIHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnBy b2lzc3RyaWN0ICV9U1RSSUNUIHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnBy b3NlY2RlZiAlfVNFQ1VSSVRZIERFRklORVIgeyUgZW5kaWYgJX0KK3slIGlm IGRhdGEucHJvaXN3aW5kb3cgJX1XSU5ET1d7JSBlbmRpZiAlfXslIGlmIGRh dGEucHJvY29zdCAlfQorCisgICAgQ09TVCB7e2RhdGEucHJvY29zdH19eyUg ZW5kaWYgJX17JSBpZiBkYXRhLnByb3Jvd3MgJX0KKworICAgIFJPV1Mge3tk YXRhLnByb3Jvd3N9fXslIGVuZGlmIC0lfXslIGlmIGRhdGEudmFyaWFibGVz ICV9eyUgZm9yIHYgaW4gZGF0YS52YXJpYWJsZXMgJX0KKworICAgIFNFVCB7 eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17eyB2LnZhbHVlfHF0TGl0ZXJh bCB9fXslIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KKworQVMgeyUgaWYgZGF0 YS5sYW5uYW1lID09ICdjJyAlfQore3sgZGF0YS5wcm9iaW58cXRMaXRlcmFs IH19LCB7eyBkYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fQoreyUgZWxzZSAl fQorJGZ1bmN0aW9uJAore3sgZGF0YS5wcm9zcmMgfX0KKyRmdW5jdGlvbiR7 JSBlbmRpZiAtJX07Cit7JSBpZiBkYXRhLmZ1bmNvd25lciAlfQorCitBTFRF UiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2Us IGRhdGEubmFtZSkgfX0oe3tkYXRhLmZ1bmNfYXJnc319KQorICAgIE9XTkVS IFRPIHt7IGRhdGEuZnVuY293bmVyIH19OworeyUgZW5kaWYgLSV9Cit7JSBp ZiBkYXRhLmFjbCAlfQoreyUgZm9yIHAgaW4gZGF0YS5hY2wgJX0KKwore3sg UFJJVklMRUdFLlNFVChjb25uLCAiRlVOQ1RJT04iLCBwLmdyYW50ZWUsIGRh dGEubmFtZSwgcC53aXRob3V0X2dyYW50LCBwLndpdGhfZ3JhbnQsIGRhdGEu cHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNfYXJncyl9fQoreyUgZW5kZm9yICV9 eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09N TUVOVCBPTiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1l c3BhY2UsIGRhdGEubmFtZSkgfX0oe3tkYXRhLmZ1bmNfYXJnc319KQorICAg IElTICd7eyBkYXRhLmRlc2NyaXB0aW9uIH19JzsKK3slIGVuZGlmIC0lfQor eyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2Vj bGFiZWxzICV9Cit7JSBpZiByLnNlY3VyaXR5X2xhYmVsIGFuZCByLnByb3Zp ZGVyICV9CisKK3t7IFNFQ0xBQkxFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBk YXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIGRhdGEu cHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNfYXJncykgfX0KK3slIGVuZGlmICV9 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9kZWxldGUuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFz L3NxbC85LjVfcGx1cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjI0NmJlYzEKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bw YXMvc3FsLzkuNV9wbHVzL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwyMSBAQAor eyUgaWYgc2NpZCBhbmQgZm5pZCAlfQorU0VMRUNUCisgICAgcHIucHJvbmFt ZSBhcyBuYW1lLCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5w Z19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcn KSB8fCAnKScgYXMgZnVuY19hcmdzLAorICAgIG5zcG5hbWUKK0ZST00KKyAg ICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9p ZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBu c3Aub2lkPXByLnByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9 IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQK KyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3Ry aWdnZXInKQorICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTsKK3slIGVuZGlm ICV9CisKK3slIGlmIG5hbWUgJX0KK0RST1AgRlVOQ1RJT04ge3sgY29ubnxx dElkZW50KG5zcG5hbWUsIG5hbWUpIH19e3tmdW5jX2FyZ3N9fXslIGlmIGNh c2NhZGUgJX0gQ0FTQ0FERXslIGVuZGlmICV9OworeyUgZW5kaWYgJX0KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X2RlZmluaXRpb24uc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wcGFzL3NxbC85LjVfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTg5ZWNjZQotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X2RlZmluaXRpb24u c3FsCkBAIC0wLDAgKzEsMTEgQEAKK1NFTEVDVAorICAgIHBnX2dldF9mdW5j dGlvbmRlZih7e2ZuaWR9fTo6b2lkKSBBUyBmdW5jX2RlZiwKKyAgICBuc3Bu YW1lIHx8ICcuJyB8fCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShw Z19jYXRhbG9nLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMo cHIub2lkKSwgJycpIHx8ICcpJyBhcyBuYW1lCitGUk9NCisgICAgcGdfcHJv YyBwcgorSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1w ci5wcm9uYW1lc3BhY2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQor ICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5E IHByLm9pZCA9IHt7Zm5pZH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3Fs LzkuNV9wbHVzL2dldF9sYW5ndWFnZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1 cy9nZXRfbGFuZ3VhZ2VzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5mODFkZGZiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3Nx bC85LjVfcGx1cy9nZXRfbGFuZ3VhZ2VzLnNxbApAQCAtMCwwICsxLDQgQEAK K1NFTEVDVAorICAgIGxhbm5hbWUgYXMgbGFiZWwsIGxhbm5hbWUgYXMgdmFs dWUKK0ZST00KKyAgICBwZ19sYW5ndWFnZTsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9z cWwvOS41X3BsdXMvZ2V0X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2dl dF9vaWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjJiYzc2YTIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVz L2dldF9vaWQuc3FsCkBAIC0wLDAgKzEsMTcgQEAKK1NFTEVDVAorICAgIHBy Lm9pZCwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxv ZworICAgIC5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHBy Lm9pZCksICcnKSB8fCAnKScgYXMgbmFtZSwKKyAgICBsYW5uYW1lLCBwZ19n ZXRfdXNlcmJ5aWQocHJvb3duZXIpIGFzIGZ1bmNvd25lcgorRlJPTQorICAg IHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lk PXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5n Lm9pZD1wcm9sYW5nCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBu c3Aub2lkPXByLnByb25hbWVzcGFjZQorICAgIEFORCBuc3AubnNwbmFtZT17 eyBuc3BuYW1lfHF0TGl0ZXJhbCB9fQorV0hFUkUKKyAgICBwcm9pc2FnZyA9 IEZBTFNFCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdl dmVudF90cmlnZ2VyJykKKyAgICBBTkQgcHIucHJvbmFtZSA9IHt7IG5hbWV8 cXRMaXRlcmFsIH19OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9n ZXRfb3V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X291dF90 eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NjRhMTE4NwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMv Z2V0X291dF90eXBlcy5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAg ICBmb3JtYXRfdHlwZShvaWQsIE5VTEwpIEFTIG91dF9hcmdfdHlwZQorRlJP TQorICAgIHBnX3R5cGUKK1dIRVJFCisgICAgb2lkID0ge3sgb3V0X2FyZ19v aWQgfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0 X3NjaGVtYS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2dldF9zY2hlbWEuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyN2Q0YjkK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2dldF9zY2hl bWEuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgbnNwbmFtZQor RlJPTQorICAgIHBnX25hbWVzcGFjZQorV0hFUkUKKyAgICBvaWQgPSB7eyBz Y2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2dl dF90eXBlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2dldF90eXBlcy5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE1NTgyZQot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X3R5cGVz LnNxbApAQCAtMCwwICsxLDIwIEBACitTRUxFQ1QKKyAgICAqCitGUk9NCisg ICAgKFNFTEVDVAorICAgICAgICBmb3JtYXRfdHlwZSh0Lm9pZCxOVUxMKSBB UyB0eXBuYW1lLAorICAgICAgICBDQVNFIFdIRU4gdHlwZWxlbSA+IDAgVEhF TiB0eXBlbGVtIEVMU0UgdC5vaWQgRU5EIGFzIGVsZW1vaWQsIHR5cGxlbiwg dHlwdHlwZSwgdC5vaWQsIG5zcG5hbWUsCisgICAgICAgIChTRUxFQ1QgQ09V TlQoMSkgRlJPTSBwZ190eXBlIHQyIFdIRVJFIHQyLnR5cG5hbWUgPSB0LnR5 cG5hbWUpID4gMSBBUyBpc2R1cAorICAgIEZST00KKyAgICAgICAgcGdfdHlw ZSB0CisgICAgSk9JTgorICAgICAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIHR5 cG5hbWVzcGFjZT1uc3Aub2lkCisgICAgV0hFUkUKKyAgICAgICAgKE5PVCAo dHlwbmFtZSA9ICd1bmtub3duJyBBTkQgbnNwbmFtZSA9ICdwZ19jYXRhbG9n JykpCisgICAgQU5ECisgICAgICAgICgKKyAgICAgICAgICAgIHR5cHR5cGUg SU4gKCdiJywgJ2MnLCAnZCcsICdlJywgJ3AnLCAncicpCisgICAgICAgICAg ICBBTkQgdHlwbmFtZSBOT1QgSU4gKCdhbnknLCAndHJpZ2dlcicsICdsYW5n dWFnZV9oYW5kbGVyJywgJ2V2ZW50X3RyaWdnZXInKQorICAgICAgICApCisg ICAgKSBBUyBkdW1teQorT1JERVIgQlkgbnNwbmFtZSA8PiAncGdfY2F0YWxv ZycsIG5zcG5hbWUgPD4gJ3B1YmxpYycsIG5zcG5hbWUsIDE7CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BwYXMvc3FsLzkuNV9wbHVzL25vZGUuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVf cGx1cy9ub2RlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5jN2Y0MTU5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVf cGx1cy9ub2RlLnNxbApAQCAtMCwwICsxLDE4IEBACitTRUxFQ1QKKyAgICBw ci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFs b2cucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQp LCAnJykgfHwgJyknIEFTIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3Vz ZXJieWlkKHByb293bmVyKSBBUyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uCitG Uk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9O IHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxu ZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBn X2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRl cy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBw cm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHByLnByb3R5cGUgPSAnMCc6OmNo YXIKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAg IEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dl cicpCitPUkRFUiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMv c3FsLzkuNV9wbHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1 cy9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5mZjc4Mjk4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85 LjVfcGx1cy9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDMxIEBACitTRUxF Q1QKKyAgICBwci5vaWQsIHByLnhtaW4sIHByLiosIHByLnByb3NyYyBBUyBw cm9zcmNfYywKKyAgICBwci5wcm9uYW1lIEFTIG5hbWUsIHBnX2dldF9mdW5j dGlvbl9yZXN1bHQocHIub2lkKSBBUyBwcm9yZXR0eXBlbmFtZSwKKyAgICB0 eXBucy5uc3BuYW1lIEFTIHR5cG5zcCwgbGFubmFtZSwgcHJvYXJnbmFtZXMs IG9pZHZlY3RvcnR5cGVzKHByb2FyZ3R5cGVzKSBBUyBwcm9hcmd0eXBlbmFt ZXMsCisgICAgcGdfZ2V0X2V4cHIocHJvYXJnZGVmYXVsdHMsICdwZ19jYXRh bG9nLnBnX2NsYXNzJzo6cmVnY2xhc3MpIEFTIHByb2FyZ2RlZmF1bHR2YWxz LAorICAgIHByb25hcmdkZWZhdWx0cywgcHJvY29uZmlnLCBwZ19nZXRfdXNl cmJ5aWQocHJvb3duZXIpIEFTIGZ1bmNvd25lciwgZGVzY3JpcHRpb24sCisg ICAgKFNFTEVDVAorICAgICAgICBhcnJheV9hZ2cocHJvdmlkZXIgfHwgJz0n IHx8IGxhYmVsKQorICAgIEZST00KKyAgICAgICAgcGdfc2hzZWNsYWJlbCBz bDEKKyAgICBXSEVSRQorICAgICAgICBzbDEub2Jqb2lkPXByLm9pZCkgQVMg c2VjbGFiZWxzCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBn X3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBn X25hbWVzcGFjZSB0eXBucyBPTiB0eXBucy5vaWQ9dHlwLnR5cG5hbWVzcGFj ZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xh bmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBP TiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJv Yyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisg ICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQg dHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQor eyUgaWYgZm5pZCAlfQorICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTo6b2lk Cit7JSBlbmRpZiAlfQorT1JERVIgQlkKKyAgICBwcm9uYW1lOwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wcGFzL3NxbC85LjVfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85 LjVfcGx1cy91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjFhMGMzZWIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3Fs LzkuNV9wbHVzL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSwxMTQgQEAKK3slIGlt cG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNF Q0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmls ZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jv cy9mdW5jdGlvbnMvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfXsl IGlmIGRhdGEgJX0KK3slIHNldCBuYW1lID0gb19kYXRhLm5hbWUgJX0KK3sl IGlmIGRhdGEubmFtZSAlfQoreyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0YS5u YW1lICV9CitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRh LnByb25hbWVzcGFjZSwgb19kYXRhLm5hbWUpIH19KHt7CitvX2RhdGEucHJv YXJndHlwZW5hbWVzIH19KQorICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRl bnQoZGF0YS5uYW1lKSB9fTsKK3slIHNldCBuYW1lID0gZGF0YS5uYW1lICV9 Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5n ZV9mdW5jICAlfQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB7eyBj b25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oeyUg aWYgZGF0YS5hcmd1bWVudHMgJX0KK3slIGZvciBwIGluIGRhdGEuYXJndW1l bnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fSB7JSBlbmRp ZiAlfXslIGlmIHAuYXJnbmFtZSAlfXt7IGNvbm58cXRJZGVudChwLmFyZ25h bWUpIH19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3twLmFyZ3R5 cGV9fXslIGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7 e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFz dCAlfSx7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0K KykKKyAgICBSRVRVUk5TIHt7IG9fZGF0YS5wcm9yZXR0eXBlbmFtZSB9fQor eyUgaWYgJ2xhbm5hbWUnIGluIGRhdGEgJX0KKyAgICBMQU5HVUFHRSB7eyBk YXRhLmxhbm5hbWV8cXRMaXRlcmFsIH19eyUgZWxzZSAlfQorICAgIExBTkdV QUdFIHt7IG9fZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fQorICAgIHslIGVu ZGlmICV9eyUgaWYgJ3Byb3ZvbGF0aWxlJyBpbiBkYXRhIGFuZCBkYXRhLnBy b3ZvbGF0aWxlICV9e3sgZGF0YS5wcm92b2xhdGlsZSB9fSB7JSBlbGlmICdw cm92b2xhdGlsZScgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm92b2xhdGls ZSAlfXt7IG9fZGF0YS5wcm92b2xhdGlsZSB9fXslIGVuZGlmICV9Cit7JSBp ZiAoJ3Byb2xlYWtwcm9vZicgaW4gZGF0YSBhbmQgZGF0YS5wcm9sZWFrcHJv b2YpIG9yICgncHJvbGVha3Byb29mJyBub3QgaW4gZGF0YSBhbmQgb19kYXRh LnByb2xlYWtwcm9vZikgJX1MRUFLUFJPT0Z7JSBlbGlmICdwcm9sZWFrcHJv b2YnIGluIGRhdGEgYW5kIG5vdCBkYXRhLnByb2xlYWtwcm9vZiAlfU5PVCBM RUFLUFJPT0Z7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9pc3N0cmljdCcgaW4g ZGF0YSBhbmQgZGF0YS5wcm9pc3N0cmljdCkgb3IgKCdwcm9pc3N0cmljdCcg bm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9pc3N0cmljdCkgJX0gU1RSSUNU eyUgZW5kaWYgJX0KK3slIGlmICgncHJvc2VjZGVmJyBpbiBkYXRhIGFuZCBk YXRhLnByb3NlY2RlZikgb3IgKCdwcm9zZWNkZWYnIG5vdCBpbiBkYXRhIGFu ZCBvX2RhdGEucHJvc2VjZGVmKSAlfSBTRUNVUklUWSBERUZJTkVSeyUgZW5k aWYgJX0KK3slIGlmICgncHJvaXN3aW5kb3cnIGluIGRhdGEgYW5kIGRhdGEu cHJvaXN3aW5kb3cpIG9yICgncHJvaXN3aW5kb3cnIG5vdCBpbiBkYXRhIGFu ZCBvX2RhdGEucHJvaXN3aW5kb3cpICV9IFdJTkRPV3slIGVuZGlmICV9CisK KyAgICB7JSBpZiBkYXRhLnByb2Nvc3QgJX1DT1NUIHt7ZGF0YS5wcm9jb3N0 fX17JSBlbGlmIG9fZGF0YS5wcm9jb3N0ICV9Q09TVCB7e29fZGF0YS5wcm9j b3N0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvcm93cyAlfQorCisgICAg Uk9XUyB7e2RhdGEucHJvcm93c319eyUgZWxpZiBvX2RhdGEucHJvcm93cyAl fVJPV1Mge3tvX2RhdGEucHJvcm93c319IHslZW5kaWYgLSV9eyUgaWYgZGF0 YS5tZXJnZWRfdmFyaWFibGVzICV9eyUgZm9yIHYgaW4gZGF0YS5tZXJnZWRf dmFyaWFibGVzICV9CisKKyAgICBTRVQge3sgY29ubnxxdElkZW50KHYubmFt ZSkgfX09e3sgdi52YWx1ZXxxdExpdGVyYWwgfX17JSBlbmRmb3IgLSV9Cisg ICAgeyUgZW5kaWYgJX0KKworQVMgeyUgaWYgJ3Byb2JpbicgaW4gZGF0YSBv ciAncHJvc3JjX2MnIGluIGRhdGEgJX0KK3slIGlmICdwcm9iaW4nIGluIGRh dGEgJX17eyBkYXRhLnByb2JpbnxxdExpdGVyYWwgfX17JSBlbHNlICV9e3sg b19kYXRhLnByb2JpbnxxdExpdGVyYWwgfX17JSBlbmRpZiAlfSwgeyUgaWYg J3Byb3NyY19jJyBpbiBkYXRhICV9e3sgZGF0YS5wcm9zcmNfY3xxdExpdGVy YWwgfX17JSBlbHNlICV9e3sgb19kYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9 fXslIGVuZGlmICV9eyUgZWxpZiAncHJvc3JjJyBpbiBkYXRhICV9CiskZnVu Y3Rpb24ke3sgZGF0YS5wcm9zcmMgfX0kZnVuY3Rpb24keyUgZWxpZiBvX2Rh dGEubGFubmFtZSA9PSAnYycgJX0KK3t7IG9fZGF0YS5wcm9iaW58cXRMaXRl cmFsIH19LCB7eyBvX2RhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZWxz ZSAlfQorJGZ1bmN0aW9uJHt7IG9fZGF0YS5wcm9zcmMgfX0kZnVuY3Rpb24k eyUgZW5kaWYgLSV9OworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmZ1bmNv d25lciAlfQorCitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19k YXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oe3tvX2RhdGEucHJvYXJndHlw ZW5hbWVzIH19KQorICAgIE9XTkVSIFRPIHt7IGRhdGEuZnVuY293bmVyIH19 OworeyUgZW5kaWYgLSV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3 aWxsIGNoYW5nZSBwcml2aWxlZGdlcyAjfQoreyUgaWYgZGF0YS5hY2wgJX0K K3slIGlmICdkZWxldGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYg aW4gZGF0YS5hY2wuZGVsZXRlZCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRB TEwoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2Rh dGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBp biBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuY2hh bmdlZCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNU SU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNl LCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQorCit7eyBQUklWSUxFR0Uu U0VUKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJp di53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9u YW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmFj bCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuYWRkZWQgJX0KKwore3sg UFJJVklMRUdFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUs IG5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBv X2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9 fQoreyUgZW5kZm9yICV9eyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KK3sl IGlmIGRhdGEuY2hhbmdlX2Z1bmMgPT0gRmFsc2UgJX0KK3slIGlmIGRhdGEu dmFyaWFibGVzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS52YXJpYWJs ZXMgYW5kIGRhdGEudmFyaWFibGVzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQor Cit7eyBWQVJJQUJMRS5VTlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCBk YXRhLnZhcmlhYmxlcy5kZWxldGVkLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBv X2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kaWYgLSV9Cit7JSBp ZiAnbWVyZ2VkX3ZhcmlhYmxlcycgaW4gZGF0YSBhbmQgZGF0YS5tZXJnZWRf dmFyaWFibGVzfGxlbmd0aCA+IDAgJX0KKwore3sgVkFSSUFCTEUuU0VUKGNv bm4sICdGVU5DVElPTicsIG5hbWUsIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcywg b19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykg fX0KK3slIGVuZGlmIC0lfQoreyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0K K3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYg J2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8 bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQg JX0KKwore3sgU0VDTEFCTEUuVU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFt ZSwgci5wcm92aWRlciwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnBy b2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9 Cit7JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFk ZGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRl ZCAlfQorCit7eyBTRUNMQUJMRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFt ZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCwgb19kYXRhLnByb25h bWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFi ZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBm b3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQorCit7eyBTRUNMQUJMRS5T RVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgci5zZWN1 cml0eV9sYWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2Fy Z3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7 JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQgT04gRlVOQ1RJ T04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUp IH19KHt7b19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBJUyB7eyBk YXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmIC0lfQor Cit7JSBpZiBkYXRhLnByb25hbWVzcGFjZSAlfQorCitBTFRFUiBGVU5DVElP TiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkg fX0oe3tvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIFNFVCBTQ0hF TUEge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlKSB9fTsKK3sl IGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3Nx bC85LjVfcGx1cy92YXJpYWJsZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy92 YXJpYWJsZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjUyMzNjNzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9w bHVzL3ZhcmlhYmxlcy5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAg ICBuYW1lLCB2YXJ0eXBlLCBtaW5fdmFsLCBtYXhfdmFsLCBlbnVtdmFscwor RlJPTQorICAgIHBnX3NldHRpbmdzCitXSEVSRQorICAgIGNvbnRleHQgaW4g KCd1c2VyJywgJ3N1cGVydXNlcicpOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvanMvcHJvY2Vk dXJlcy5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv cHJvY2VkdXJlL2pzL3Byb2NlZHVyZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uZjUwZmZlOQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJl L2pzL3Byb2NlZHVyZXMuanMKQEAgLTAsMCArMSwxNzEgQEAKKy8qIENyZWF0 ZSBhbmQgUmVnaXN0ZXIgUHJvY2VkdXJlIENvbGxlY3Rpb24gYW5kIE5vZGUu ICovCitkZWZpbmUoCisgICAgICAgIFsnanF1ZXJ5JywgJ3VuZGVyc2NvcmUn LCAndW5kZXJzY29yZS5zdHJpbmcnLAorICAgICAgICAgJ3BnYWRtaW4nLCAn cGdhZG1pbi5icm93c2VyJywgJ2FsZXJ0aWZ5JywKKyAgICAgICAgICdwZ2Fk bWluLm5vZGUuZnVuY3Rpb24nLCAncGdhZG1pbi5icm93c2VyLmNvbGxlY3Rp b24nLAorICAgICAgICAgJ3BnYWRtaW4uYnJvd3Nlci5zZXJ2ZXIucHJpdmls ZWdlJ10sCitmdW5jdGlvbigkLCBfLCBTLCBwZ0FkbWluLCBwZ0Jyb3dzZXIs IGFsZXJ0aWZ5LCBGdW5jdGlvbikgeworCisgIGlmICghcGdCcm93c2VyLk5v ZGVzWydjb2xsLXByb2NlZHVyZSddKSB7CisgICAgdmFyIHByb2NlZHVyZXMg PSBwZ0FkbWluLkJyb3dzZXIuTm9kZXNbJ2NvbGwtcHJvY2VkdXJlJ10gPQor ICAgICAgcGdBZG1pbi5Ccm93c2VyLkNvbGxlY3Rpb24uZXh0ZW5kKHsKKyAg ICAgICAgbm9kZTogJ3Byb2NlZHVyZScsCisgICAgICAgIGxhYmVsOiAne3sg XygnUHJvY2VkdXJlcycpIH19JywKKyAgICAgICAgdHlwZTogJ2NvbGwtcHJv Y2VkdXJlJywKKyAgICAgICAgY29sdW1uczogWyduYW1lJywgJ2Z1bmNvd25l cicsICdkZXNjcmlwdGlvbiddCisgICAgICB9KTsKKyAgfTsKKworICBwZ1Nj aGVtYU5vZGUgPSBwZ0Jyb3dzZXIuTm9kZXNbJ3NjaGVtYSddOworCisgIC8v IEluaGVyaXQgRnVuY3Rpb25zIE5vZGUKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9k ZXNbJ3Byb2NlZHVyZSddKSB7CisgICAgcGdBZG1pbi5Ccm93c2VyLk5vZGVz Wydwcm9jZWR1cmUnXSA9IEZ1bmN0aW9uLmV4dGVuZCh7CisgICAgICB0eXBl OiAncHJvY2VkdXJlJywKKyAgICAgIGxhYmVsOiAne3sgXygnUHJvY2VkdXJl JykgfX0nLAorICAgICAgY29sbGVjdGlvbl90eXBlOiAnY29sbC1wcm9jZWR1 cmUnLAorICAgICAgaGFzU1FMOiB0cnVlLAorICAgICAgaGFzRGVwZW5kczog dHJ1ZSwKKyAgICAgIHBhcmVudF90eXBlOiBbJ3NjaGVtYSddLAorICAgICAg SW5pdDogZnVuY3Rpb24oKSB7CisgICAgICAgIC8qIEF2b2lkIG11bGl0cGxl IHJlZ2lzdHJhdGlvbiBvZiBtZW51cyAqLworICAgICAgICBpZiAodGhpcy5w cm9jX2luaXRpYWxpemVkKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg ICAgIHRoaXMucHJvY19pbml0aWFsaXplZCA9IHRydWU7CisKKyAgICAgICAg cGdCcm93c2VyLmFkZF9tZW51cyhbeworICAgICAgICAgIG5hbWU6ICdjcmVh dGVfcHJvY2VkdXJlX29uX2NvbGwnLCBub2RlOiAnY29sbC1wcm9jZWR1cmUn LCBtb2R1bGU6CisgICAgICAgICAgdGhpcywKKyAgICAgICAgICBhcHBsaWVz OiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpf cHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBw cmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdQcm9jZWR1cmUuLi4nKSB9fScs CisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLXByb2NlZHVyZScs IGRhdGE6IHthY3Rpb246ICdjcmVhdGUnLCBjaGVjazoKKyAgICAgICAgICBm YWxzZX0KKyAgICAgICAgfSx7CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9w cm9jZWR1cmUnLCBub2RlOiAncHJvY2VkdXJlJywgbW9kdWxlOiB0aGlzLAor ICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2Fs bGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRl Z29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJlbDogJ3t7IF8oJ1By b2NlZHVyZS4uLicpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29u IGljb24tcHJvY2VkdXJlJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNo ZWNrOgorICAgICAgICAgIHRydWV9LAorICAgICAgICB9LHsKKyAgICAgICAg ICBuYW1lOiAnY3JlYXRlX3Byb2NlZHVyZScsIG5vZGU6ICdzY2hlbWEnLCBt b2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAn Y29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAor ICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxh YmVsOiAne3sgXygnUHJvY2VkdXJlLi4uJykgfX0nLAorICAgICAgICAgIGlj b246ICd3Y1RhYkljb24gaWNvbi1wcm9jZWR1cmUnLCBkYXRhOiB7YWN0aW9u OiAnY3JlYXRlJywgY2hlY2s6CisgICAgICAgICAgdHJ1ZX0sIGVuYWJsZTog J2NhbkNyZWF0ZVByb2MnCisgICAgICAgIH0KKyAgICAgICAgXSk7CisgICAg ICB9LAorICAgICAgY2FuRHJvcDogcGdTY2hlbWFOb2RlLmNhbkNoaWxkRHJv cCwKKyAgICAgIGNhbkRyb3BDYXNjYWRlOiBwZ1NjaGVtYU5vZGUuY2FuQ2hp bGREcm9wLAorICAgICAgbW9kZWw6IEZ1bmN0aW9uLm1vZGVsLmV4dGVuZCh7 CisgICAgICAgIGRlZmF1bHRzOiBfLmV4dGVuZCh7fSwKKyAgICAgICAgICBG dW5jdGlvbi5tb2RlbC5wcm90b3R5cGUuZGVmYXVsdHMsCisgICAgICAgICAg eworICAgICAgICAgICAgbGFubmFtZTogJ2VkYnNwbCcKKyAgICAgICAgICB9 CisgICAgICAgICksCisgICAgICAgIGNhblZhckFkZDogZnVuY3Rpb24obSl7 CisgICAgICAgICAgdmFyIHNlcnZlciA9IHRoaXMubm9kZV9pbmZvLnNlcnZl cjsKKyAgICAgICAgICAgIGlmIChzZXJ2ZXIudmVyc2lvbiA8IDkwNTAwKSB7 CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgfQor ICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK KyAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICBpc0Rpc2FibGVk OiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgbmFtZSA9IHRoaXMubmFtZTsK KyAgICAgICAgICBzd2l0Y2gobmFtZSl7CisgICAgICAgICAgICBjYXNlICdw cm92b2xhdGlsaXR5JzoKKyAgICAgICAgICAgIGNhc2UgJ3Byb2lzc3RyaWN0 JzoKKyAgICAgICAgICAgIGNhc2UgJ3Byb3NlY2RlZic6CisgICAgICAgICAg ICBjYXNlICdwcm9jb3N0JzoKKyAgICAgICAgICAgIGNhc2UgJ3Byb2xlYWtw cm9vZic6CisgICAgICAgICAgICBjYXNlICd2YXJpYWJsZXMnOgorICAgICAg ICAgICAgICAgdmFyIHNlcnZlciA9IHRoaXMubm9kZV9pbmZvLnNlcnZlcjsK KyAgICAgICAgICAgICAgIGlmIChzZXJ2ZXIudmVyc2lvbiA8IDkwNTAwKSB7 CisgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAg IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAncHJvcm93cyc6CisgICAg ICAgICAgICAgIHZhciBzZXJ2ZXIgPSB0aGlzLm5vZGVfaW5mby5zZXJ2ZXI7 CisgICAgICAgICAgICAgIGlmKHNlcnZlci52ZXJzaW9uID49IDkwNTAwICYm IG0uZ2V0KCdwcm9yZXRzZXQnKSA9PSB0cnVlKSB7CisgICAgICAgICAgICAg ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgIH0KKyAgICAgICB9LAorICAg ICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpCisgICAgICAgIHsKKyAgICAgICAg ICB2YXIgZXJyID0ge30sCisgICAgICAgICAgICAgIGVycm1zZywKKyAgICAg ICAgICAgICAgc2VjbGFiZWxzID0gdGhpcy5nZXQoJ3NlY2xhYmVscycpOwor CisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ25hbWUn KSkgfHwgU3RyaW5nKHRoaXMuZ2V0KCduYW1lJykpLnJlcGxhY2UoL15ccyt8 XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIGVyclsnbmFtZSdd ID0gJ3t7IF8oJ05hbWUgY2FuIG5vdCBiZSBlbXB0eSEnKSB9fSc7CisgICAg ICAgICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgZXJyWyduYW1lJ107CisgICAg ICAgICAgfQorCisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5n ZXQoJ3Byb25hbWVzcGFjZScpKSB8fCBTdHJpbmcodGhpcy5nZXQoJ3Byb25h bWVzcGFjZScpKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7 CisgICAgICAgICAgICBlcnJbJ3Byb25hbWVzcGFjZSddID0gJ3t7IF8oJ1Nj aGVtYSBjYW4gbm90IGJlIGVtcHR5IScpIH19JzsKKyAgICAgICAgICAgIGVy cm1zZyA9IGVycm1zZyB8fCBlcnJbJ3Byb25hbWVzcGFjZSddOworICAgICAg ICAgIH0KKworICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0 KCdsYW5uYW1lJykpIHx8IFN0cmluZyh0aGlzLmdldCgnbGFubmFtZScpKS5y ZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAg ICBlcnJbJ2xhbm5hbWUnXSA9ICd7eyBfKCdMYW5ndWFnZSBjYW4gbm90IGJl IGVtcHR5IScpIH19JzsKKyAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8 fCBlcnJbJ2xhbm5hbWUnXTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBp ZiAoXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgncHJvc3JjJykpIHx8IFN0cmlu Zyh0aGlzLmdldCgncHJvc3JjJykpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAn JykgPT0gJycpIHsKKyAgICAgICAgICAgIGVyclsncHJvc3JjJ10gPSAne3sg XygnQ29kZSBjYW4gbm90IGJlIGVtcHR5IScpIH19JzsKKyAgICAgICAgICAg IGVycm1zZyA9IGVycm1zZyB8fCBlcnJbJ3Byb3NyYyddOworICAgICAgICAg IH0KKworCisgICAgICAgICAgaWYgKHNlY2xhYmVscykgeworICAgICAgICAg ICAgdmFyIHNlY0xhYmVsc0VycjsKKyAgICAgICAgICAgIGZvciAodmFyIGkg PSAwOyBpIDwgc2VjbGFiZWxzLm1vZGVscy5sZW5ndGggJiYgIXNlY0xhYmVs c0VycjsgaSsrKSB7CisgICAgICAgICAgICAgIHNlY0xhYmVsc0VyciA9IChz ZWNsYWJlbHMubW9kZWxzW2ldKS52YWxpZGF0ZS5hcHBseShzZWNsYWJlbHMu bW9kZWxzW2ldKTsKKyAgICAgICAgICAgICAgaWYgKHNlY0xhYmVsc0Vycikg eworICAgICAgICAgICAgICAgIGVyclsnc2VjbGFiZWxzJ10gPSBzZWNMYWJl bHNFcnI7CisgICAgICAgICAgICAgICAgZXJybXNnID0gZXJybXNnIHx8IHNl Y0xhYmVsc0VycjsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor ICAgICAgICAgIH0KKworICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5jbGVh cigpLnNldChlcnIpOworCisgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAg ICAgIH0sCisgICAgICB9CisgICAgICApLAorICAgICAgY2FuQ3JlYXRlUHJv YzogZnVuY3Rpb24oaXRlbURhdGEsIGl0ZW0sIGRhdGEpIHsKKyAgICAgICAg dmFyIG5vZGVfaGllcmFyY2h5ID0gdGhpcy5nZXRUcmVlTm9kZUhpZXJhcmNo eS5hcHBseSh0aGlzLCBbaXRlbV0pOworCisgICAgICAgIC8vIERvIG5vdCBw cm92aWRlIENyZWF0ZSBvcHRpb24gaW4gY2F0YWxvZworICAgICAgICBpZiAo J2NhdGFsb2cnIGluIG5vZGVfaGllcmFyY2h5KQorICAgICAgICAgIHJldHVy biBmYWxzZTsKKworICAgICAgICAvLyBQcm9jZWR1cmVzIHN1cHBvcnRlZCBv bmx5IGluIFBQQVMKKyAgICAgICAgaWYgKCdzZXJ2ZXInIGluIG5vZGVfaGll cmFyY2h5ICYmIG5vZGVfaGllcmFyY2h5WydzZXJ2ZXInXS50eXBlID09ICJw cGFzIikKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICByZXR1 cm4gZmFsc2U7CisKKyAgICAgIH0KKyAgfSk7CisKKyAgfQorCisgIHJldHVy biBwZ0Jyb3dzZXIuTm9kZXNbJ3Byb2NlZHVyZSddOworfSk7CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2Nl ZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9hY2wuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4x X3BsdXMvYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5hZDNlMGQxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4x X3BsdXMvYWNsLnNxbApAQCAtMCwwICsxLDM1IEBACitTRUxFQ1QKKyAgICBD T0FMRVNDRShndC5yb2xuYW1lLCAncHVibGljJykgQVMgZ3JhbnRlZSwKKyAg ICBnLnJvbG5hbWUgQVMgZ3JhbnRvciwgYXJyYXlfYWdnKHByaXZpbGVnZV90 eXBlKSBBUyBwcml2aWxlZ2VzLAorICAgIGFycmF5X2FnZyhpc19ncmFudGFi bGUpIEFTIGdyYW50YWJsZQorRlJPTQorICAgIChTRUxFQ1QKKyAgICAgICAg ZC5ncmFudGVlLCBkLmdyYW50b3IsIGQuaXNfZ3JhbnRhYmxlLAorICAgICAg ICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAgICAgV0hFTiAnQ09OTkVD VCcgVEhFTiAnYycKKyAgICAgICAgV0hFTiAnQ1JFQVRFJyBUSEVOICdDJwor ICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisgICAgICAgIFdIRU4g J0VYRUNVVEUnIFRIRU4gJ1gnCisgICAgICAgIFdIRU4gJ0lOU0VSVCcgVEhF TiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNFUycgVEhFTiAneCcKKyAg ICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAgICAgICBXSEVOICdU RU1QT1JBUlknIFRIRU4gJ1QnCisgICAgICAgIFdIRU4gJ1RSSUdHRVInIFRI RU4gJ3QnCisgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBUSEVOICdEJworICAg ICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAgICAgIFdIRU4gJ1VT QUdFJyBUSEVOICdVJworICAgICAgICBFTFNFICdVTktOT1dOJworICAgICAg ICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICBGUk9NCisgICAgICAgIChT RUxFQ1QKKyAgICAgICAgICAgIChkKS5ncmFudGVlIEFTIGdyYW50ZWUsIChk KS5ncmFudG9yIEFTIGdyYW50b3IsCisgICAgICAgICAgICAoZCkuaXNfZ3Jh bnRhYmxlIEFTIGlzX2dyYW50YWJsZSwKKyAgICAgICAgICAgIChkKS5wcml2 aWxlZ2VfdHlwZSBBUyBwcml2aWxlZ2VfdHlwZQorICAgICAgICBGUk9NCisg ICAgICAgICAgICAoU0VMRUNUIGFjbGV4cGxvZGUoZGIucHJvYWNsKSBBUyBk IEZST00gcGdfcHJvYyBkYgorICAgICAgICAgICAgV0hFUkUgZGIub2lkID0g e3tmbmlkfX06Ok9JRCkgYQorICAgICAgICApIGQKKyAgICApIGQKKyAgICBM RUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9OIChkLmdyYW50b3Ig PSBnLm9pZCkKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBn dCBPTiAoZC5ncmFudGVlID0gZ3Qub2lkKQorR1JPVVAgQlkgZy5yb2xuYW1l LCBndC5yb2xuYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMv Y3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODYzMDkxMgotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwK QEAgLTAsMCArMSwzMyBAQAoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25z L3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0KK3slIGltcG9ydCAn bWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxF R0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy92YXJpYWJsZS5t YWNyb3MnIGFzIFZBUklBQkxFICV9Cit7JSBzZXQgaXNfY29sdW1ucyA9IFtd ICV9Cit7JSBpZiBkYXRhICV9CitDUkVBVEUgT1IgUkVQTEFDRSBQUk9DRURV UkUge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5h bWUpIH19eyUgaWYgZGF0YS5hcmd1bWVudHMgJX0oCit7JSBmb3IgcCBpbiBk YXRhLmFyZ3VtZW50cyAlfXslIGlmIHAuYXJnbW9kZSAlfXt7cC5hcmdtb2Rl fX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ25hbWUgJX17eyBjb25ufHF0SWRl bnQocC5hcmduYW1lKX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9 e3twLmFyZ3R5cGV9fXslIGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0g REVGQVVMVCB7e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90 IGxvb3AubGFzdCAlfSx7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9KQoreyUg ZW5kaWYgJX0KKworQVMKK3t7IGRhdGEucHJvc3JjIH19OworeyUgaWYgZGF0 YS5hY2wgYW5kIG5vdCBpc19zcWwgJX0KK3slIGZvciBwIGluIGRhdGEuYWNs ICV9CisKK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgIlBST0NFRFVSRSIsIHAu Z3JhbnRlZSwgZGF0YS5uYW1lLCBwLndpdGhvdXRfZ3JhbnQsIHAud2l0aF9n cmFudCwgZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzKX19Cit7 JSBlbmRmb3IgJX17JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5kZXNjcmlwdGlv biAlfQorCitDT01NRU5UIE9OIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQo ZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0KKyAgICBJUyAne3sg ZGF0YS5kZXNjcmlwdGlvbiB9fSc7Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRh dGEuc2VjbGFiZWxzICV9Cit7JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVscyAl fQoreyUgaWYgci5sYWJlbCBhbmQgci5wcm92aWRlciAlfQorCit7eyBTRUNM QUJMRS5TRVQoY29ubiwgJ1BST0NFRFVSRScsIGRhdGEubmFtZSwgci5wcm92 aWRlciwgci5sYWJlbCwgZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19h cmdzKSB9fQoreyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYg LSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFf cGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODcwMWVj Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZGVsZXRl LnNxbApAQCAtMCwwICsxLDIxIEBACit7JSBpZiBzY2lkIGFuZCBmbmlkICV9 CitTRUxFQ1QKKyAgICBwci5wcm9uYW1lIGFzIG5hbWUsICcoJyB8fCBDT0FM RVNDRShwZ19jYXRhbG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0 eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBhcyBmdW5jX2FyZ3Ms CisgICAgbnNwbmFtZQorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAg ICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAg ICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNl CitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFt ZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJ TiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHByLm9p ZCA9IHt7Zm5pZH19OworeyUgZW5kaWYgJX0KKworeyUgaWYgbmFtZSAlfQor RFJPUCBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KG5zcG5hbWUsIG5hbWUp IH19e3tmdW5jX2FyZ3N9fXslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERXslIGVu ZGlmICV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzku MV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVz L2dldF9kZWZpbml0aW9uLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5jNjM1ZjFlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9z cWwvOS4xX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCkBAIC0wLDAgKzEsMTIg QEAKK1NFTEVDVAorICAgIHBnX2dldF9mdW5jdGlvbmRlZih7e2ZuaWR9fTo6 b2lkKSBBUyBmdW5jX2RlZiwKKyAgICBuc3BuYW1lIHx8ICcuJyB8fCBwci5w cm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisgICAgLnBn X2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycp IHx8ICcpJyBhcyBuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgor ICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3Bh Y2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9u YW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHByLm9pZCA9IHt7 Zm5pZH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9n ZXRfbGFuZ3VhZ2VzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9sYW5n dWFnZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmY4MWRkZmIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1 cy9nZXRfbGFuZ3VhZ2VzLnNxbApAQCAtMCwwICsxLDQgQEAKK1NFTEVDVAor ICAgIGxhbm5hbWUgYXMgbGFiZWwsIGxhbm5hbWUgYXMgdmFsdWUKK0ZST00K KyAgICBwZ19sYW5ndWFnZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9w bHVzL2dldF9vaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X29pZC5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmJjNzZh MgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9v aWQuc3FsCkBAIC0wLDAgKzEsMTcgQEAKK1NFTEVDVAorICAgIHByLm9pZCwg cHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAg IC5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCks ICcnKSB8fCAnKScgYXMgbmFtZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNl cmJ5aWQocHJvb3duZXIpIGFzIGZ1bmNvd25lcgorRlJPTQorICAgIHBnX3By b2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3Jl dHR5cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1w cm9sYW5nCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lk PXByLnByb25hbWVzcGFjZQorICAgIEFORCBuc3AubnNwbmFtZT17eyBuc3Bu YW1lfHF0TGl0ZXJhbCB9fQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNF CisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90 cmlnZ2VyJykKKyAgICBBTkQgcHIucHJvbmFtZSA9IHt7IG5hbWV8cXRMaXRl cmFsIH19OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X291 dF90eXBlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9nZXRfb3V0X3R5cGVz LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NGEx MTg3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0 X291dF90eXBlcy5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBm b3JtYXRfdHlwZShvaWQsIE5VTEwpIEFTIG91dF9hcmdfdHlwZQorRlJPTQor ICAgIHBnX3R5cGUKK1dIRVJFCisgICAgb2lkID0ge3sgb3V0X2FyZ19vaWQg fX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9z Y2hlbWEuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X3NjaGVtYS5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI3ZDRiOQot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9zY2hl bWEuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgbnNwbmFtZQor RlJPTQorICAgIHBnX25hbWVzcGFjZQorV0hFUkUKKyAgICBvaWQgPSB7eyBz Y2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9n ZXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X3R5cGVzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTU1ODJl Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X3R5 cGVzLnNxbApAQCAtMCwwICsxLDIwIEBACitTRUxFQ1QKKyAgICAqCitGUk9N CisgICAgKFNFTEVDVAorICAgICAgICBmb3JtYXRfdHlwZSh0Lm9pZCxOVUxM KSBBUyB0eXBuYW1lLAorICAgICAgICBDQVNFIFdIRU4gdHlwZWxlbSA+IDAg VEhFTiB0eXBlbGVtIEVMU0UgdC5vaWQgRU5EIGFzIGVsZW1vaWQsIHR5cGxl biwgdHlwdHlwZSwgdC5vaWQsIG5zcG5hbWUsCisgICAgICAgIChTRUxFQ1Qg Q09VTlQoMSkgRlJPTSBwZ190eXBlIHQyIFdIRVJFIHQyLnR5cG5hbWUgPSB0 LnR5cG5hbWUpID4gMSBBUyBpc2R1cAorICAgIEZST00KKyAgICAgICAgcGdf dHlwZSB0CisgICAgSk9JTgorICAgICAgICBwZ19uYW1lc3BhY2UgbnNwIE9O IHR5cG5hbWVzcGFjZT1uc3Aub2lkCisgICAgV0hFUkUKKyAgICAgICAgKE5P VCAodHlwbmFtZSA9ICd1bmtub3duJyBBTkQgbnNwbmFtZSA9ICdwZ19jYXRh bG9nJykpCisgICAgQU5ECisgICAgICAgICgKKyAgICAgICAgICAgIHR5cHR5 cGUgSU4gKCdiJywgJ2MnLCAnZCcsICdlJywgJ3AnLCAncicpCisgICAgICAg ICAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCdhbnknLCAndHJpZ2dlcicsICds YW5ndWFnZV9oYW5kbGVyJywgJ2V2ZW50X3RyaWdnZXInKQorICAgICAgICAp CisgICAgKSBBUyBkdW1teQorT1JERVIgQlkgbnNwbmFtZSA8PiAncGdfY2F0 YWxvZycsIG5zcG5hbWUgPD4gJ3B1YmxpYycsIG5zcG5hbWUsIDE7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3By b2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9ub2RlLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3Fs LzkuMV9wbHVzL25vZGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjMwY2FiOGQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3Nx bC85LjFfcGx1cy9ub2RlLnNxbApAQCAtMCwwICsxLDE5IEBACitTRUxFQ1QK KyAgICBwci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBn X2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3Vt ZW50cyhwci5vaWQpLCAnJykgfHwgJyknIEFTIG5hbWUsCisgICAgbGFubmFt ZSwgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBBUyBmdW5jb3duZXIsIGRl c2NyaXB0aW9uCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBn X3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBn X2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIg Sk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1w ci5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQor V0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHByLnByb3R5 cGUgPSAnMSc6OmNoYXIKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lk fX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAn ZXZlbnRfdHJpZ2dlcicpCitPUkRFUiBCWQorICAgIHByb25hbWU7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3By b2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3Bw YXMvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllOGE4YmEKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2Nl ZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbApAQCAtMCww ICsxLDMxIEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnhtaW4sIHByLios IHByLnByb3NyYyBBUyBwcm9zcmNfYywKKyAgICBwci5wcm9uYW1lIEFTIG5h bWUsIHBnX2dldF9mdW5jdGlvbl9yZXN1bHQocHIub2lkKSBBUyBwcm9yZXR0 eXBlbmFtZSwKKyAgICB0eXBucy5uc3BuYW1lIEFTIHR5cG5zcCwgbGFubmFt ZSwgcHJvYXJnbmFtZXMsIG9pZHZlY3RvcnR5cGVzKHByb2FyZ3R5cGVzKSBB UyBwcm9hcmd0eXBlbmFtZXMsCisgICAgcGdfZ2V0X2V4cHIocHJvYXJnZGVm YXVsdHMsICdwZ19jYXRhbG9nLnBnX2NsYXNzJzo6cmVnY2xhc3MpIEFTIHBy b2FyZ2RlZmF1bHR2YWxzLAorICAgIHByb25hcmdkZWZhdWx0cywgcHJvY29u ZmlnLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIEFTIGZ1bmNvd25lciwg ZGVzY3JpcHRpb24sCisgICAgKFNFTEVDVAorICAgICAgICBhcnJheV9hZ2co cHJvdmlkZXIgfHwgJz0nIHx8IGxhYmVsKQorICAgIEZST00KKyAgICAgICAg cGdfc2VjbGFiZWwgc2wxCisgICAgV0hFUkUKKyAgICAgICAgc2wxLm9iam9p ZD1wci5vaWQpIEFTIHNlY2xhYmVscworRlJPTQorICAgIHBnX3Byb2MgcHIK K0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUK K0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgdHlwbnMgT04gdHlwbnMub2lkPXR5 cC50eXBuYW1lc3BhY2UKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04g bG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19kZXNj cmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMuY2xh c3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHJvaXNh Z2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6 b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVu dF90cmlnZ2VyJykKK3slIGlmIGZuaWQgJX0KKyAgICBBTkQgcHIub2lkID0g e3tmbmlkfX06Om9pZAoreyUgZW5kaWYgJX0KK09SREVSIEJZCisgICAgcHJv bmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL3VwZGF0ZS5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2Nl ZHVyZS9wcGFzL3NxbC85LjFfcGx1cy91cGRhdGUuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2MGU2MDIKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3By b2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy91cGRhdGUuc3FsCkBAIC0wLDAg KzEsODIgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0 eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9m dW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9eyUg aWYgZGF0YSAlfQoreyUgc2V0IG5hbWUgPSBvX2RhdGEubmFtZSAlfQoreyUg aWYgZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5h bWUgJX0KK0FMVEVSIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQob19kYXRh LnByb25hbWVzcGFjZSwgb19kYXRhLm5hbWUpIH19eyUgaWYgb19kYXRhLnBy b2FyZ3R5cGVuYW1lcyAlfSh7eyBvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19 KXslIGVuZGlmICV9CisKKyAgICBSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50 KGRhdGEubmFtZSkgfX07Cit7JSBzZXQgbmFtZSA9IGRhdGEubmFtZSAlfQor eyUgZW5kaWYgJX0KKworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5n ZV9mdW5jICAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgUFJPQ0VEVVJFIHt7IGNv bm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fXslIGlm IGRhdGEuYXJndW1lbnRzICV9KHslIGZvciBwIGluIGRhdGEuYXJndW1lbnRz ICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fSB7JSBlbmRpZiAl fXslIGlmIHAuYXJnbmFtZSAlfXt7IGNvbm58cXRJZGVudChwLmFyZ25hbWUp IH19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3twLmFyZ3R5cGV9 fXslIGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3Au YXJnZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAl fSwgeyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQorKQoreyUgZW5kaWYgJX0K KworQVMKK3slIGlmIGRhdGEucHJvc3JjICV9e3sgZGF0YS5wcm9zcmMgfX17 JSBlbHNlICV9e3sgb19kYXRhLnByb3NyYyB9fXslIGVuZGlmIC0lfTsKK3sl IGVuZGlmIC0lfQoreyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIg UFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNl LCBuYW1lKSB9fXslIGlmIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgJX0oe3sg b19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSl7JSBlbmRpZiAlfQorICAgIE9X TkVSIFRPIHt7IGRhdGEuZnVuY293bmVyIH19OworeyUgZW5kaWYgLSV9Cit7 IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxl ZGdlcyAjfQoreyUgaWYgZGF0YS5hY2wgJX0KK3slIGlmICdkZWxldGVkJyBp biBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuZGVsZXRl ZCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ1BST0NFRFVS RScsIHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRhLnByb25hbWVzcGFjZSwg b19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgLSV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gZGF0YS5kYXRhY2wgJX0K K3slIGZvciBwcml2IGluIGRhdGEuYWNsLmNoYW5nZWQgJX0KKwore3sgUFJJ VklMRUdFLlVOU0VUQUxMKGNvbm4sICdQUk9DRURVUkUnLCBwcml2LmdyYW50 ZWUsIG5hbWUsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0 eXBlbmFtZXMpIH19CisKK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1BST0NF RFVSRScsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50 LAorIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19k YXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5k aWYgLSV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3Ig cHJpdiBpbiBkYXRhLmFjbC5hZGRlZCAlfQorCit7eyBQUklWSUxFR0UuU0VU KGNvbm4sICdQUk9DRURVUkUnLCBwcml2LmdyYW50ZWUsIG5hbWUsIHByaXYu d2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFt ZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgLSV9Cit7JSBzZXQgc2VjbGFi ZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBz ZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVkfGxlbmd0aCA+IDAgJX0K K3slIGZvciByIGluIHNlY2xhYmVscy5kZWxldGVkICV9CisKK3t7IFNFQ0xB QkxFLlVOU0VUKGNvbm4sICdQUk9DRURVUkUnLCBuYW1lLCByLnByb3ZpZGVy LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVz KSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRl ZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4g MCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9CisKK3t7IFNF Q0xBQkxFLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgbmFtZSwgci5wcm92aWRl ciwgci5zZWN1cml0eV9sYWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19k YXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5k aWYgLSV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNs YWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNs YWJlbHMuY2hhbmdlZCAlfQorCit7eyBTRUNMQUJMRS5TRVQoY29ubiwgJ1BS T0NFRFVSRScsIG5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWws IG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMp IH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5k ZXNjcmlwdGlvbiAlfQorCitDT01NRU5UIE9OIFBST0NFRFVSRSB7eyBjb25u fHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0KKyAgICBJ UyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlm IC0lfQoreyUgaWYgZGF0YS5wcm9uYW1lc3BhY2UgJX0KKworQUxURVIgUFJP Q0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBu YW1lKSB9fQorICAgIFNFVCBTQ0hFTUEge3sgY29ubnxxdElkZW50KGRhdGEu cHJvbmFtZXNwYWNlKSB9fTsKK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAl fQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvdmFyaWFibGVzLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2Vk dXJlL3BwYXMvc3FsLzkuMV9wbHVzL3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIzM2M3MQotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv cHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL3ZhcmlhYmxlcy5zcWwKQEAg LTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBuYW1lLCB2YXJ0eXBlLCBtaW5f dmFsLCBtYXhfdmFsLCBlbnVtdmFscworRlJPTQorICAgIHBnX3NldHRpbmdz CitXSEVSRQorICAgIGNvbnRleHQgaW4gKCd1c2VyJywgJ3N1cGVydXNlcicp OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvYWNsLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3Bw YXMvc3FsLzkuMl9wbHVzL2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uYWQzZTBkMQotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3Bw YXMvc3FsLzkuMl9wbHVzL2FjbC5zcWwKQEAgLTAsMCArMSwzNSBAQAorU0VM RUNUCisgICAgQ09BTEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycpIEFTIGdy YW50ZWUsCisgICAgZy5yb2xuYW1lIEFTIGdyYW50b3IsIGFycmF5X2FnZyhw cml2aWxlZ2VfdHlwZSkgQVMgcHJpdmlsZWdlcywKKyAgICBhcnJheV9hZ2co aXNfZ3JhbnRhYmxlKSBBUyBncmFudGFibGUKK0ZST00KKyAgICAoU0VMRUNU CisgICAgICAgIGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50YWJs ZSwKKyAgICAgICAgQ0FTRSBkLnByaXZpbGVnZV90eXBlCisgICAgICAgIFdI RU4gJ0NPTk5FQ1QnIFRIRU4gJ2MnCisgICAgICAgIFdIRU4gJ0NSRUFURScg VEhFTiAnQycKKyAgICAgICAgV0hFTiAnREVMRVRFJyBUSEVOICdkJworICAg ICAgICBXSEVOICdFWEVDVVRFJyBUSEVOICdYJworICAgICAgICBXSEVOICdJ TlNFUlQnIFRIRU4gJ2EnCisgICAgICAgIFdIRU4gJ1JFRkVSRU5DRVMnIFRI RU4gJ3gnCisgICAgICAgIFdIRU4gJ1NFTEVDVCcgVEhFTiAncicKKyAgICAg ICAgV0hFTiAnVEVNUE9SQVJZJyBUSEVOICdUJworICAgICAgICBXSEVOICdU UklHR0VSJyBUSEVOICd0JworICAgICAgICBXSEVOICdUUlVOQ0FURScgVEhF TiAnRCcKKyAgICAgICAgV0hFTiAnVVBEQVRFJyBUSEVOICd3JworICAgICAg ICBXSEVOICdVU0FHRScgVEhFTiAnVScKKyAgICAgICAgRUxTRSAnVU5LTk9X TicKKyAgICAgICAgRU5EIEFTIHByaXZpbGVnZV90eXBlCisgICAgRlJPTQor ICAgICAgICAoU0VMRUNUCisgICAgICAgICAgICAoZCkuZ3JhbnRlZSBBUyBn cmFudGVlLCAoZCkuZ3JhbnRvciBBUyBncmFudG9yLAorICAgICAgICAgICAg KGQpLmlzX2dyYW50YWJsZSBBUyBpc19ncmFudGFibGUsCisgICAgICAgICAg ICAoZCkucHJpdmlsZWdlX3R5cGUgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICAg ICAgRlJPTQorICAgICAgICAgICAgKFNFTEVDVCBhY2xleHBsb2RlKGRiLnBy b2FjbCkgQVMgZCBGUk9NIHBnX3Byb2MgZGIKKyAgICAgICAgICAgIFdIRVJF IGRiLm9pZCA9IHt7Zm5pZH19OjpPSUQpIGEKKyAgICAgICAgKSBkCisgICAg KSBkCisgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZyBPTiAo ZC5ncmFudG9yID0gZy5vaWQpCisgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cu cGdfcm9sZXMgZ3QgT04gKGQuZ3JhbnRlZSA9IGd0Lm9pZCkKK0dST1VQIEJZ IGcucm9sbmFtZSwgZ3Qucm9sbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3Fs LzkuMl9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9jcmVh dGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFm NzY5MGQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9j cmVhdGUuc3FsCkBAIC0wLDAgKzEsMzMgQEAKK3slIGltcG9ydCAnbWFjcm9z L2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7 JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3Jvcycg YXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMv dmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfQoreyUgc2V0IGlzX2Nv bHVtbnMgPSBbXSAlfQoreyUgaWYgZGF0YSAlfQorQ1JFQVRFIE9SIFJFUExB Q0UgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFj ZSwgZGF0YS5uYW1lKSB9fXslIGlmIGRhdGEuYXJndW1lbnRzICV9CisoeyUg Zm9yIHAgaW4gZGF0YS5hcmd1bWVudHMgJX17JSBpZiBwLmFyZ21vZGUgJX17 e3AuYXJnbW9kZX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmduYW1lICV9IHt7 IGNvbm58cXRJZGVudChwLmFyZ25hbWUpfX17JSBlbmRpZiAlfXslIGlmIHAu YXJndHlwZSAlfXt7cC5hcmd0eXBlfX17JSBlbmRpZiAlfXslIGlmIHAuYXJn ZGVmdmFsICV9IERFRkFVTFQge3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0K K3slIGlmIG5vdCBsb29wLmxhc3QgJX0sIHslIGVuZGlmICV9Cit7JSBlbmRm b3IgLSV9KXslIGVuZGlmICV9CisKK0FTCit7eyBkYXRhLnByb3NyYyB9fTsK K3slIGlmIGRhdGEuYWNsIGFuZCBub3QgaXNfc3FsICV9Cit7JSBmb3IgcCBp biBkYXRhLmFjbCAlfQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICJQUk9D RURVUkUiLCBwLmdyYW50ZWUsIGRhdGEubmFtZSwgcC53aXRob3V0X2dyYW50 LCBwLndpdGhfZ3JhbnQsIGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNf YXJncyl9fQoreyUgZW5kZm9yICV9eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEu ZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBPTiBQUk9DRURVUkUge3sgY29u bnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19Cisg ICAgSVMgJ3t7IGRhdGEuZGVzY3JpcHRpb24gfX0nOworeyUgZW5kaWYgLSV9 Cit7JSBpZiBkYXRhLnNlY2xhYmVscyAlfQoreyUgZm9yIHIgaW4gZGF0YS5z ZWNsYWJlbHMgJX0KK3slIGlmIHIuc2VjdXJpdHlfbGFiZWwgYW5kIHIucHJv dmlkZXIgJX0KKwore3sgU0VDTEFCTEUuU0VUKGNvbm4sICdQUk9DRURVUkUn LCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIGRh dGEucHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNfYXJncykgfX0KK3slIGVuZGlm ICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCisKK3slIGVuZGlm ICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9kZWxldGUuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1 cmUvcHBhcy9zcWwvOS4yX3BsdXMvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODcwMWVjCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvZGVsZXRlLnNxbApAQCAtMCwwICsx LDIxIEBACit7JSBpZiBzY2lkIGFuZCBmbmlkICV9CitTRUxFQ1QKKyAgICBw ci5wcm9uYW1lIGFzIG5hbWUsICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9n CisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIu b2lkKSwgJycpIHx8ICcpJyBhcyBmdW5jX2FyZ3MsCisgICAgbnNwbmFtZQor RlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBP TiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2Ug bnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHBy b2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lk fX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAn ZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19Owor eyUgZW5kaWYgJX0KKworeyUgaWYgbmFtZSAlfQorRFJPUCBQUk9DRURVUkUg e3sgY29ubnxxdElkZW50KG5zcG5hbWUsIG5hbWUpIH19e3tmdW5jX2FyZ3N9 fXslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERXslIGVuZGlmICV9OworeyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9kZWZp bml0aW9uLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9kZWZpbml0aW9u LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjM1 ZjFlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvZ2V0 X2RlZmluaXRpb24uc3FsCkBAIC0wLDAgKzEsMTIgQEAKK1NFTEVDVAorICAg IHBnX2dldF9mdW5jdGlvbmRlZih7e2ZuaWR9fTo6b2lkKSBBUyBmdW5jX2Rl ZiwKKyAgICBuc3BuYW1lIHx8ICcuJyB8fCBwci5wcm9uYW1lIHx8ICcoJyB8 fCBDT0FMRVNDRShwZ19jYXRhbG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9p ZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBhcyBuYW1l CitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX25hbWVzcGFj ZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKK1dIRVJFCisgICAg cHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3Nj aWR9fTo6b2lkCisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OjpvaWQ7CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9nZXRfbGFuZ3VhZ2VzLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2Vk dXJlL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9sYW5ndWFnZXMuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4MWRkZmIKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9nZXRfbGFuZ3VhZ2Vz LnNxbApAQCAtMCwwICsxLDQgQEAKK1NFTEVDVAorICAgIGxhbm5hbWUgYXMg bGFiZWwsIGxhbm5hbWUgYXMgdmFsdWUKK0ZST00KKyAgICBwZ19sYW5ndWFn ZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9vaWQuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1 cmUvcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X29pZC5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmJjNzZhMgotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJv Y2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9vaWQuc3FsCkBAIC0wLDAg KzEsMTcgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIucHJvbmFtZSB8fCAn KCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rp b25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMg bmFtZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIp IGFzIGZ1bmNvd25lcgorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAg ICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAg ICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitKT0lOCisg ICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25hbWVzcGFj ZQorICAgIEFORCBuc3AubnNwbmFtZT17eyBuc3BuYW1lfHF0TGl0ZXJhbCB9 fQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHR5cG5h bWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAgICBB TkQgcHIucHJvbmFtZSA9IHt7IG5hbWV8cXRMaXRlcmFsIH19OwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X291dF90eXBlcy5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9w cGFzL3NxbC85LjJfcGx1cy9nZXRfb3V0X3R5cGVzLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NGExMTg3Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9w cm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X291dF90eXBlcy5zcWwK QEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBmb3JtYXRfdHlwZShvaWQs IE5VTEwpIEFTIG91dF9hcmdfdHlwZQorRlJPTQorICAgIHBnX3R5cGUKK1dI RVJFCisgICAgb2lkID0ge3sgb3V0X2FyZ19vaWQgfX06Om9pZDsKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJv Y2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9zY2hlbWEuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBh cy9zcWwvOS4yX3BsdXMvZ2V0X3NjaGVtYS5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMTI3ZDRiOQotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2Vk dXJlL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9zY2hlbWEuc3FsCkBAIC0wLDAg KzEsNiBAQAorU0VMRUNUCisgICAgbnNwbmFtZQorRlJPTQorICAgIHBnX25h bWVzcGFjZQorV0hFUkUKKyAgICBvaWQgPSB7eyBzY2lkIH19OjpvaWQ7CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9nZXRfdHlwZXMuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUv cHBhcy9zcWwvOS4yX3BsdXMvZ2V0X3R5cGVzLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTU1ODJlCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X3R5cGVzLnNxbApAQCAtMCww ICsxLDIwIEBACitTRUxFQ1QKKyAgICAqCitGUk9NCisgICAgKFNFTEVDVAor ICAgICAgICBmb3JtYXRfdHlwZSh0Lm9pZCxOVUxMKSBBUyB0eXBuYW1lLAor ICAgICAgICBDQVNFIFdIRU4gdHlwZWxlbSA+IDAgVEhFTiB0eXBlbGVtIEVM U0UgdC5vaWQgRU5EIGFzIGVsZW1vaWQsIHR5cGxlbiwgdHlwdHlwZSwgdC5v aWQsIG5zcG5hbWUsCisgICAgICAgIChTRUxFQ1QgQ09VTlQoMSkgRlJPTSBw Z190eXBlIHQyIFdIRVJFIHQyLnR5cG5hbWUgPSB0LnR5cG5hbWUpID4gMSBB UyBpc2R1cAorICAgIEZST00KKyAgICAgICAgcGdfdHlwZSB0CisgICAgSk9J TgorICAgICAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIHR5cG5hbWVzcGFjZT1u c3Aub2lkCisgICAgV0hFUkUKKyAgICAgICAgKE5PVCAodHlwbmFtZSA9ICd1 bmtub3duJyBBTkQgbnNwbmFtZSA9ICdwZ19jYXRhbG9nJykpCisgICAgQU5E CisgICAgICAgICgKKyAgICAgICAgICAgIHR5cHR5cGUgSU4gKCdiJywgJ2Mn LCAnZCcsICdlJywgJ3AnLCAncicpCisgICAgICAgICAgICBBTkQgdHlwbmFt ZSBOT1QgSU4gKCdhbnknLCAndHJpZ2dlcicsICdsYW5ndWFnZV9oYW5kbGVy JywgJ2V2ZW50X3RyaWdnZXInKQorICAgICAgICApCisgICAgKSBBUyBkdW1t eQorT1JERVIgQlkgbnNwbmFtZSA8PiAncGdfY2F0YWxvZycsIG5zcG5hbWUg PD4gJ3B1YmxpYycsIG5zcG5hbWUsIDE7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3Nx bC85LjJfcGx1cy9ub2RlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL25vZGUu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwY2Fi OGQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9ub2Rl LnNxbApAQCAtMCwwICsxLDE5IEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHBy LnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAu cGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAn JykgfHwgJyknIEFTIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJi eWlkKHByb293bmVyKSBBUyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uCitGUk9N CisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5 cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBP TiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rl c2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5j bGFzc29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwcm9p c2FnZyA9IEZBTFNFCisgICAgQU5EIHByLnByb3R5cGUgPSAnMSc6OmNoYXIK KyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFO RCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicp CitPUkRFUiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3Nx bC85LjJfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVz L3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmZmNzgyOTgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85 LjJfcGx1cy9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDMxIEBACitTRUxF Q1QKKyAgICBwci5vaWQsIHByLnhtaW4sIHByLiosIHByLnByb3NyYyBBUyBw cm9zcmNfYywKKyAgICBwci5wcm9uYW1lIEFTIG5hbWUsIHBnX2dldF9mdW5j dGlvbl9yZXN1bHQocHIub2lkKSBBUyBwcm9yZXR0eXBlbmFtZSwKKyAgICB0 eXBucy5uc3BuYW1lIEFTIHR5cG5zcCwgbGFubmFtZSwgcHJvYXJnbmFtZXMs IG9pZHZlY3RvcnR5cGVzKHByb2FyZ3R5cGVzKSBBUyBwcm9hcmd0eXBlbmFt ZXMsCisgICAgcGdfZ2V0X2V4cHIocHJvYXJnZGVmYXVsdHMsICdwZ19jYXRh bG9nLnBnX2NsYXNzJzo6cmVnY2xhc3MpIEFTIHByb2FyZ2RlZmF1bHR2YWxz LAorICAgIHByb25hcmdkZWZhdWx0cywgcHJvY29uZmlnLCBwZ19nZXRfdXNl cmJ5aWQocHJvb3duZXIpIEFTIGZ1bmNvd25lciwgZGVzY3JpcHRpb24sCisg ICAgKFNFTEVDVAorICAgICAgICBhcnJheV9hZ2cocHJvdmlkZXIgfHwgJz0n IHx8IGxhYmVsKQorICAgIEZST00KKyAgICAgICAgcGdfc2hzZWNsYWJlbCBz bDEKKyAgICBXSEVSRQorICAgICAgICBzbDEub2Jqb2lkPXByLm9pZCkgQVMg c2VjbGFiZWxzCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBn X3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBn X25hbWVzcGFjZSB0eXBucyBPTiB0eXBucy5vaWQ9dHlwLnR5cG5hbWVzcGFj ZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xh bmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBP TiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJv Yyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisg ICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQg dHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQor eyUgaWYgZm5pZCAlfQorICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTo6b2lk Cit7JSBlbmRpZiAlfQorT1JERVIgQlkKKyAgICBwcm9uYW1lOwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3Fs LzkuMl9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uNDIwMzBiMwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuMl9wbHVzL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSw3OCBAQAoreyUg aW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMg U0VDTEFCTEUgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2 aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX17JSBpZiBkYXRhICV9Cit7 JSBzZXQgbmFtZSA9IG9fZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUg JX0KK3slIGlmIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfQorQUxURVIg UFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNl LCBvX2RhdGEubmFtZSkgfX0KKyAgICBSRU5BTUUgVE8ge3sgY29ubnxxdElk ZW50KGRhdGEubmFtZSkgfX07Cit7JSBzZXQgbmFtZSA9IGRhdGEubmFtZSAl fQoreyUgZW5kaWYgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFu Z2VfZnVuYyAgJX0KKworQ1JFQVRFIE9SIFJFUExBQ0UgUFJPQ0VEVVJFIHt7 IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fXsl IGlmIGRhdGEuYXJndW1lbnRzICV9KHslIGZvciBwIGluIGRhdGEuYXJndW1l bnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fSB7JSBlbmRp ZiAlfXslIGlmIHAuYXJnbmFtZSAlfXt7IGNvbm58cXRJZGVudChwLmFyZ25h bWUpIH19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3twLmFyZ3R5 cGV9fXslIGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7 e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFz dCAlfSwgeyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQorKQoreyUgZW5kaWYg JX0KK0FTIHslIGlmIGRhdGEucHJvc3JjICV9e3sgZGF0YS5wcm9zcmMgfX17 JSBlbHNlICV9e3sgb19kYXRhLnByb3NyYyB9fXslIGVuZGlmIC0lfTsKK3sl IGVuZGlmIC0lfQoreyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIg UFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNl LCBuYW1lKSB9fXslIGlmIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgJX0oe3sg b19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSl7JSBlbmRpZiAlfQorICAgIE9X TkVSIFRPIHt7IGRhdGEuZnVuY293bmVyIH19OworeyUgZW5kaWYgLSV9Cit7 IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxl ZGdlcyAjfQoreyUgaWYgZGF0YS5hY2wgJX0KK3slIGlmICdkZWxldGVkJyBp biBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuZGVsZXRl ZCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ1BST0NFRFVS RScsIHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRhLnByb25hbWVzcGFjZSwg b19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgLSV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gZGF0YS5hY2wgJX0KK3sl IGZvciBwcml2IGluIGRhdGEuYWNsLmNoYW5nZWQgJX0KKwore3sgUFJJVklM RUdFLlVOU0VUQUxMKGNvbm4sICdQUk9DRURVUkUnLCBwcml2LmdyYW50ZWUs IG5hbWUsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBl bmFtZXMpIH19CisKK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1BST0NFRFVS RScsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBw cml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5w cm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0l fQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYg aW4gZGF0YS5hY2wuYWRkZWQgJX0KKwore3sgUFJJVklMRUdFLlNFVChjb25u LCAnUFJPQ0VEVVJFJywgcHJpdi5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhv dXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFj ZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgJX0KK3slIGVuZGlmIC0lfQoreyUgc2V0IHNlY2xhYmVscyA9 IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFi ZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7JSBm b3IgciBpbiBzZWNsYWJlbHMuZGVsZXRlZCAlfQorCit7eyBTRUNMQUJMRS5V TlNFVChjb25uLCAnUFJPQ0VEVVJFJywgbmFtZSwgci5wcm92aWRlciwgb19k YXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0K K3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnYWRkZWQnIGlu IHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0K K3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQorCit7eyBTRUNMQUJM RS5TRVQoY29ubiwgJ1BST0NFRFVSRScsIG5hbWUsIHIucHJvdmlkZXIsIHIu c2VjdXJpdHlfbGFiZWwsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5w cm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0l fQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxz LmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxz LmNoYW5nZWQgJX0KKwore3sgU0VDTEFCTEUuU0VUKGNvbm4sICdQUk9DRURV UkUnLCBuYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBvX2Rh dGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuZGVzY3Jp cHRpb24gJX0KKworQ09NTUVOVCBPTiBQUk9DRURVUkUge3sgY29ubnxxdElk ZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19CisgICAgSVMge3sg ZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAtJX0K K3slIGlmIGRhdGEucHJvbmFtZXNwYWNlICV9CisKK0FMVEVSIFBST0NFRFVS RSB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkg fX0KKyAgICBTRVQgU0NIRU1BIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25h bWVzcGFjZSkgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgZW5kaWYgJX0KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv cHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL3ZhcmlhYmxlcy5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9w cGFzL3NxbC85LjJfcGx1cy92YXJpYWJsZXMuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMzNjNzEKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2Nl ZHVyZS9wcGFzL3NxbC85LjJfcGx1cy92YXJpYWJsZXMuc3FsCkBAIC0wLDAg KzEsNiBAQAorU0VMRUNUCisgICAgbmFtZSwgdmFydHlwZSwgbWluX3ZhbCwg bWF4X3ZhbCwgZW51bXZhbHMKK0ZST00KKyAgICBwZ19zZXR0aW5ncworV0hF UkUKKyAgICBjb250ZXh0IGluICgndXNlcicsICdzdXBlcnVzZXInKTsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv cHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL2FjbC5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3Nx bC85LjVfcGx1cy9hY2wuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmFkM2UwZDEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3Nx bC85LjVfcGx1cy9hY2wuc3FsCkBAIC0wLDAgKzEsMzUgQEAKK1NFTEVDVAor ICAgIENPQUxFU0NFKGd0LnJvbG5hbWUsICdwdWJsaWMnKSBBUyBncmFudGVl LAorICAgIGcucm9sbmFtZSBBUyBncmFudG9yLCBhcnJheV9hZ2cocHJpdmls ZWdlX3R5cGUpIEFTIHByaXZpbGVnZXMsCisgICAgYXJyYXlfYWdnKGlzX2dy YW50YWJsZSkgQVMgZ3JhbnRhYmxlCitGUk9NCisgICAgKFNFTEVDVAorICAg ICAgICBkLmdyYW50ZWUsIGQuZ3JhbnRvciwgZC5pc19ncmFudGFibGUsCisg ICAgICAgIENBU0UgZC5wcml2aWxlZ2VfdHlwZQorICAgICAgICBXSEVOICdD T05ORUNUJyBUSEVOICdjJworICAgICAgICBXSEVOICdDUkVBVEUnIFRIRU4g J0MnCisgICAgICAgIFdIRU4gJ0RFTEVURScgVEhFTiAnZCcKKyAgICAgICAg V0hFTiAnRVhFQ1VURScgVEhFTiAnWCcKKyAgICAgICAgV0hFTiAnSU5TRVJU JyBUSEVOICdhJworICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4 JworICAgICAgICBXSEVOICdTRUxFQ1QnIFRIRU4gJ3InCisgICAgICAgIFdI RU4gJ1RFTVBPUkFSWScgVEhFTiAnVCcKKyAgICAgICAgV0hFTiAnVFJJR0dF UicgVEhFTiAndCcKKyAgICAgICAgV0hFTiAnVFJVTkNBVEUnIFRIRU4gJ0Qn CisgICAgICAgIFdIRU4gJ1VQREFURScgVEhFTiAndycKKyAgICAgICAgV0hF TiAnVVNBR0UnIFRIRU4gJ1UnCisgICAgICAgIEVMU0UgJ1VOS05PV04nCisg ICAgICAgIEVORCBBUyBwcml2aWxlZ2VfdHlwZQorICAgIEZST00KKyAgICAg ICAgKFNFTEVDVAorICAgICAgICAgICAgKGQpLmdyYW50ZWUgQVMgZ3JhbnRl ZSwgKGQpLmdyYW50b3IgQVMgZ3JhbnRvciwKKyAgICAgICAgICAgIChkKS5p c19ncmFudGFibGUgQVMgaXNfZ3JhbnRhYmxlLAorICAgICAgICAgICAgKGQp LnByaXZpbGVnZV90eXBlIEFTIHByaXZpbGVnZV90eXBlCisgICAgICAgIEZS T00KKyAgICAgICAgICAgIChTRUxFQ1QgYWNsZXhwbG9kZShkYi5wcm9hY2wp IEFTIGQgRlJPTSBwZ19wcm9jIGRiCisgICAgICAgICAgICBXSEVSRSBkYi5v aWQgPSB7e2ZuaWR9fTo6T0lEKSBhCisgICAgICAgICkgZAorICAgICkgZAor ICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3Jh bnRvciA9IGcub2lkKQorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3Jv bGVzIGd0IE9OIChkLmdyYW50ZWUgPSBndC5vaWQpCitHUk9VUCBCWSBnLnJv bG5hbWUsIGd0LnJvbG5hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVf cGx1cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvY3JlYXRlLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMmY1YWQy Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvY3JlYXRl LnNxbApAQCAtMCwwICsxLDQzIEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5j dGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1w b3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBS SVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3Zhcmlh YmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX0KK3slIHNldCBpc19jb2x1bW5z ID0gW10gJX0KK3slIGlmIGRhdGEgJX0KK0NSRUFURSBPUiBSRVBMQUNFIFBS T0NFRFVSRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRh dGEubmFtZSkgfX17JSBpZiBkYXRhLmFyZ3VtZW50cyAlfQorKHslIGZvciBw IGluIGRhdGEuYXJndW1lbnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFy Z21vZGV9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFtZSAlfXt7IGNvbm58 cXRJZGVudChwLmFyZ25hbWUpfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5 cGUgJX17e3AuYXJndHlwZX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZh bCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBp ZiBub3QgbG9vcC5sYXN0ICV9LCB7JSBlbmRpZiAlfQoreyUgZW5kZm9yIC0l fSl7JSBlbmRpZiAlfQorCisgICAge3sgZGF0YS5wcm92b2xhdGlsZSB9fXsl IGlmIGRhdGEucHJvbGVha3Byb29mICV9TEVBS1BST09GIHslIGVsaWYgbm90 IGRhdGEucHJvbGVha3Byb29mICV9Tk9UIExFQUtQUk9PRiB7JSBlbmRpZiAl fQoreyUgaWYgZGF0YS5wcm9pc3N0cmljdCAlfVNUUklDVCB7JSBlbmRpZiAl fQoreyUgaWYgZGF0YS5wcm9zZWNkZWYgJX1TRUNVUklUWSBERUZJTkVSIHsl IGVuZGlmICV9eyUgaWYgZGF0YS5wcm9jb3N0ICV9CisKKyAgICBDT1NUIHt7 ZGF0YS5wcm9jb3N0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvcm93cyAl fQorCisgICAgUk9XUyB7e2RhdGEucHJvcm93c319eyUgZW5kaWYgLSV9eyUg aWYgZGF0YS52YXJpYWJsZXMgJX17JSBmb3IgdiBpbiBkYXRhLnZhcmlhYmxl cyAlfQorCisgICAgU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7 IHYudmFsdWV8cXRMaXRlcmFsIH19eyUgZW5kZm9yIC0lfQoreyUgZW5kaWYg JX0KKworQVMKK3t7IGRhdGEucHJvc3JjIH19OworeyUgaWYgZGF0YS5hY2wg YW5kIG5vdCBpc19zcWwgJX0KK3slIGZvciBwIGluIGRhdGEuYWNsICV9CisK K3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgIlBST0NFRFVSRSIsIHAuZ3JhbnRl ZSwgZGF0YS5uYW1lLCBwLndpdGhvdXRfZ3JhbnQsIHAud2l0aF9ncmFudCwg ZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzKX19Cit7JSBlbmRm b3IgJX17JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQor CitDT01NRU5UIE9OIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5w cm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0KKyAgICBJUyAne3sgZGF0YS5k ZXNjcmlwdGlvbiB9fSc7Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuc2Vj bGFiZWxzICV9Cit7JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVscyAlfQoreyUg aWYgci5zZWN1cml0eV9sYWJlbCBhbmQgci5wcm92aWRlciAlfQorCit7eyBT RUNMQUJMRS5TRVQoY29ubiwgJ1BST0NFRFVSRScsIGRhdGEubmFtZSwgci5w cm92aWRlciwgci5zZWN1cml0eV9sYWJlbCwgZGF0YS5wcm9uYW1lc3BhY2Us IGRhdGEuZnVuY19hcmdzKSB9fQoreyUgZW5kaWYgJX0KK3slIGVuZGZvciAl fQoreyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9w cGFzL3NxbC85LjVfcGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3Bs dXMvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4xODcwMWVjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41 X3BsdXMvZGVsZXRlLnNxbApAQCAtMCwwICsxLDIxIEBACit7JSBpZiBzY2lk IGFuZCBmbmlkICV9CitTRUxFQ1QKKyAgICBwci5wcm9uYW1lIGFzIG5hbWUs ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisgICAgLnBnX2dldF9mdW5j dGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBh cyBmdW5jX2FyZ3MsCisgICAgbnNwbmFtZQorRlJPTQorICAgIHBnX3Byb2Mg cHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5 cGUKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIu cHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAg ICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0 eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisg ICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OworeyUgZW5kaWYgJX0KKworeyUg aWYgbmFtZSAlfQorRFJPUCBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KG5z cG5hbWUsIG5hbWUpIH19e3tmdW5jX2FyZ3N9fXslIGlmIGNhc2NhZGUgJX0g Q0FTQ0FERXslIGVuZGlmICV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJl L3BwYXMvc3FsLzkuNV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuNV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjM1ZjFlCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCkBA IC0wLDAgKzEsMTIgQEAKK1NFTEVDVAorICAgIHBnX2dldF9mdW5jdGlvbmRl Zih7e2ZuaWR9fTo6b2lkKSBBUyBmdW5jX2RlZiwKKyAgICBuc3BuYW1lIHx8 ICcuJyB8fCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRh bG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMo cHIub2lkKSwgJycpIHx8ICcpJyBhcyBuYW1lCitGUk9NCisgICAgcGdfcHJv YyBwcgorSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1w ci5wcm9uYW1lc3BhY2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQor ICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5E IHByLm9pZCA9IHt7Zm5pZH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3Nx bC85LjVfcGx1cy9nZXRfbGFuZ3VhZ2VzLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9w bHVzL2dldF9sYW5ndWFnZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmY4MWRkZmIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFz L3NxbC85LjVfcGx1cy9nZXRfbGFuZ3VhZ2VzLnNxbApAQCAtMCwwICsxLDQg QEAKK1NFTEVDVAorICAgIGxhbm5hbWUgYXMgbGFiZWwsIGxhbm5hbWUgYXMg dmFsdWUKK0ZST00KKyAgICBwZ19sYW5ndWFnZTsKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3Bw YXMvc3FsLzkuNV9wbHVzL2dldF9vaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3Bs dXMvZ2V0X29pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uMmJjNzZhMgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzku NV9wbHVzL2dldF9vaWQuc3FsCkBAIC0wLDAgKzEsMTcgQEAKK1NFTEVDVAor ICAgIHByLm9pZCwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdf Y2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1l bnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgbmFtZSwKKyAgICBsYW5uYW1l LCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIGFzIGZ1bmNvd25lcgorRlJP TQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0 eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcg T04gbG5nLm9pZD1wcm9sYW5nCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5z cCBPTiBuc3Aub2lkPXByLnByb25hbWVzcGFjZQorICAgIEFORCBuc3AubnNw bmFtZT17eyBuc3BuYW1lfHF0TGl0ZXJhbCB9fQorV0hFUkUKKyAgICBwcm9p c2FnZyA9IEZBTFNFCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dl cicsICdldmVudF90cmlnZ2VyJykKKyAgICBBTkQgcHIucHJvbmFtZSA9IHt7 IG5hbWV8cXRMaXRlcmFsIH19OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41 X3BsdXMvZ2V0X291dF90eXBlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9n ZXRfb3V0X3R5cGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi42NGExMTg3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwv OS41X3BsdXMvZ2V0X291dF90eXBlcy5zcWwKQEAgLTAsMCArMSw2IEBACitT RUxFQ1QKKyAgICBmb3JtYXRfdHlwZShvaWQsIE5VTEwpIEFTIG91dF9hcmdf dHlwZQorRlJPTQorICAgIHBnX3R5cGUKK1dIRVJFCisgICAgb2lkID0ge3sg b3V0X2FyZ19vaWQgfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzku NV9wbHVzL2dldF9zY2hlbWEuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvZ2V0 X3NjaGVtYS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMTI3ZDRiOQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9w bHVzL2dldF9zY2hlbWEuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisg ICAgbnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFjZQorV0hFUkUKKyAg ICBvaWQgPSB7eyBzY2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3Nx bC85LjVfcGx1cy9nZXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMv Z2V0X3R5cGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4yYTU1ODJlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41 X3BsdXMvZ2V0X3R5cGVzLnNxbApAQCAtMCwwICsxLDIwIEBACitTRUxFQ1QK KyAgICAqCitGUk9NCisgICAgKFNFTEVDVAorICAgICAgICBmb3JtYXRfdHlw ZSh0Lm9pZCxOVUxMKSBBUyB0eXBuYW1lLAorICAgICAgICBDQVNFIFdIRU4g dHlwZWxlbSA+IDAgVEhFTiB0eXBlbGVtIEVMU0UgdC5vaWQgRU5EIGFzIGVs ZW1vaWQsIHR5cGxlbiwgdHlwdHlwZSwgdC5vaWQsIG5zcG5hbWUsCisgICAg ICAgIChTRUxFQ1QgQ09VTlQoMSkgRlJPTSBwZ190eXBlIHQyIFdIRVJFIHQy LnR5cG5hbWUgPSB0LnR5cG5hbWUpID4gMSBBUyBpc2R1cAorICAgIEZST00K KyAgICAgICAgcGdfdHlwZSB0CisgICAgSk9JTgorICAgICAgICBwZ19uYW1l c3BhY2UgbnNwIE9OIHR5cG5hbWVzcGFjZT1uc3Aub2lkCisgICAgV0hFUkUK KyAgICAgICAgKE5PVCAodHlwbmFtZSA9ICd1bmtub3duJyBBTkQgbnNwbmFt ZSA9ICdwZ19jYXRhbG9nJykpCisgICAgQU5ECisgICAgICAgICgKKyAgICAg ICAgICAgIHR5cHR5cGUgSU4gKCdiJywgJ2MnLCAnZCcsICdlJywgJ3AnLCAn cicpCisgICAgICAgICAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCdhbnknLCAn dHJpZ2dlcicsICdsYW5ndWFnZV9oYW5kbGVyJywgJ2V2ZW50X3RyaWdnZXIn KQorICAgICAgICApCisgICAgKSBBUyBkdW1teQorT1JERVIgQlkgbnNwbmFt ZSA8PiAncGdfY2F0YWxvZycsIG5zcG5hbWUgPD4gJ3B1YmxpYycsIG5zcG5h bWUsIDE7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9ub2RlLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2Vk dXJlL3BwYXMvc3FsLzkuNV9wbHVzL25vZGUuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwY2FiOGQKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2Nl ZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9ub2RlLnNxbApAQCAtMCwwICsxLDE5 IEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8 IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lk ZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIEFTIG5hbWUs CisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBBUyBm dW5jb3duZXIsIGRlc2NyaXB0aW9uCitGUk9NCisgICAgcGdfcHJvYyBwcgor Sk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQor Sk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcK K0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAo ZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6 OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAg QU5EIHByLnByb3R5cGUgPSAnMSc6OmNoYXIKKyAgICBBTkQgcHJvbmFtZXNw YWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAo J3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCitPUkRFUiBCWQorICAgIHBy b25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9wcm9wZXJ0 aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv cHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL3Byb3BlcnRpZXMuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmNzgyOTgKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9wcm9wZXJ0aWVz LnNxbApAQCAtMCwwICsxLDMxIEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHBy LnhtaW4sIHByLiosIHByLnByb3NyYyBBUyBwcm9zcmNfYywKKyAgICBwci5w cm9uYW1lIEFTIG5hbWUsIHBnX2dldF9mdW5jdGlvbl9yZXN1bHQocHIub2lk KSBBUyBwcm9yZXR0eXBlbmFtZSwKKyAgICB0eXBucy5uc3BuYW1lIEFTIHR5 cG5zcCwgbGFubmFtZSwgcHJvYXJnbmFtZXMsIG9pZHZlY3RvcnR5cGVzKHBy b2FyZ3R5cGVzKSBBUyBwcm9hcmd0eXBlbmFtZXMsCisgICAgcGdfZ2V0X2V4 cHIocHJvYXJnZGVmYXVsdHMsICdwZ19jYXRhbG9nLnBnX2NsYXNzJzo6cmVn Y2xhc3MpIEFTIHByb2FyZ2RlZmF1bHR2YWxzLAorICAgIHByb25hcmdkZWZh dWx0cywgcHJvY29uZmlnLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIEFT IGZ1bmNvd25lciwgZGVzY3JpcHRpb24sCisgICAgKFNFTEVDVAorICAgICAg ICBhcnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxhYmVsKQorICAgIEZS T00KKyAgICAgICAgcGdfc2hzZWNsYWJlbCBzbDEKKyAgICBXSEVSRQorICAg ICAgICBzbDEub2Jqb2lkPXByLm9pZCkgQVMgc2VjbGFiZWxzCitGUk9NCisg ICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5v aWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFjZSB0eXBucyBP TiB0eXBucy5vaWQ9dHlwLnR5cG5hbWVzcGFjZQorSk9JTgorICAgIHBnX2xh bmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9J TgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5v aWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hF UkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFj ZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0 cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQoreyUgaWYgZm5pZCAlfQorICAg IEFORCBwci5vaWQgPSB7e2ZuaWR9fTo6b2lkCit7JSBlbmRpZiAlfQorT1JE RVIgQlkKKyAgICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41 X3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL3VwZGF0ZS5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTRjMWQ4 NAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL3VwZGF0 ZS5zcWwKQEAgLTAsMCArMSwxMDIgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1 bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBp bXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMg UFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFy aWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfXslIGlmIGRhdGEgJX0KK3sl IHNldCBuYW1lID0gb19kYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAl fQoreyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBQ Uk9DRURVUkUge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2Us IG9fZGF0YS5uYW1lKSB9fQorICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRl bnQoZGF0YS5uYW1lKSB9fTsKK3slIHNldCBuYW1lID0gZGF0YS5uYW1lICV9 Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5n ZV9mdW5jICAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgUFJPQ0VEVVJFIHt7IGNv bm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fXslIGlm IGRhdGEuYXJndW1lbnRzICV9KHslIGZvciBwIGluIGRhdGEuYXJndW1lbnRz ICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fSB7JSBlbmRpZiAl fXslIGlmIHAuYXJnbmFtZSAlfXt7IGNvbm58cXRJZGVudChwLmFyZ25hbWUp IH19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3twLmFyZ3R5cGV9 fXslIGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3Au YXJnZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAl fSwgeyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQorKQoreyUgZW5kaWYgJX0K KyAgICB7JSBpZiAoJ3Byb2xlYWtwcm9vZicgaW4gZGF0YSBhbmQgZGF0YS5w cm9sZWFrcHJvb2YpIG9yICgncHJvbGVha3Byb29mJyBub3QgaW4gZGF0YSBh bmQgb19kYXRhLnByb2xlYWtwcm9vZikgJX1MRUFLUFJPT0Z7JSBlbHNlICV9 Tk9UIExFQUtQUk9PRnslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2lzc3RyaWN0 JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lzc3RyaWN0KSBvciAoJ3Byb2lzc3Ry aWN0JyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2lzc3RyaWN0KSAlfSBT VFJJQ1R7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9zZWNkZWYnIGluIGRhdGEg YW5kIGRhdGEucHJvc2VjZGVmKSBvciAoJ3Byb3NlY2RlZicgbm90IGluIGRh dGEgYW5kIG9fZGF0YS5wcm9zZWNkZWYpICV9IFNFQ1VSSVRZIERFRklORVJ7 JSBlbmRpZiAlfQorCisgICAgeyUgaWYgZGF0YS5wcm9jb3N0ICV9Q09TVCB7 e2RhdGEucHJvY29zdH19eyUgZWxpZiBvX2RhdGEucHJvY29zdCAlfUNPU1Qg e3tvX2RhdGEucHJvY29zdH19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb3Jv d3MgJX0KKworICAgIFJPV1Mge3tkYXRhLnByb3Jvd3N9fXslIGVsaWYgb19k YXRhLnByb3Jvd3MgJX1ST1dTIHt7b19kYXRhLnByb3Jvd3N9fXslIGVuZGlm IC0lfXslIGlmIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfXslIGZvciB2IGlu IGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfQorCisgICAgU0VUIHt7IGNvbm58 cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19eyUg ZW5kZm9yIC0lfQoreyUgZW5kaWYgJX0KKworQVMKK3slIGlmIGRhdGEucHJv c3JjICV9e3sgZGF0YS5wcm9zcmMgfX17JSBlbHNlICV9e3sgb19kYXRhLnBy b3NyYyB9fXslIGVuZGlmIC0lfTsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0 YS5mdW5jb3duZXIgJX0KKworQUxURVIgUFJPQ0VEVVJFIHt7IGNvbm58cXRJ ZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fXslIGlmIG9fZGF0 YS5wcm9hcmd0eXBlbmFtZXMgJX0oe3sgb19kYXRhLnByb2FyZ3R5cGVuYW1l cyB9fSl7JSBlbmRpZiAlfQorICAgIE9XTkVSIFRPIHt7IGRhdGEuZnVuY293 bmVyIH19OworeyUgZW5kaWYgLSV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBi ZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxlZGdlcyAjfQoreyUgaWYgZGF0YS5h Y2wgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9y IHByaXYgaW4gZGF0YS5hY2wuZGVsZXRlZCAlfQorCit7eyBQUklWSUxFR0Uu VU5TRVRBTEwoY29ubiwgJ1BST0NFRFVSRScsIHByaXYuZ3JhbnRlZSwgbmFt ZSwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1l cykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnY2hh bmdlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEu YWNsLmNoYW5nZWQgJX0KKwore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4s ICdQUk9DRURVUkUnLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YS5wcm9u YW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19CisKK3t7IFBS SVZJTEVHRS5TRVQoY29ubiwgJ1BST0NFRFVSRScsIHByaXYuZ3JhbnRlZSwg bmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2FkZGVkJyBp biBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuYWRkZWQg JX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgcHJp di5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0 aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5 cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVu ZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyA9PSBGYWxzZSAlfQor eyUgaWYgZGF0YS52YXJpYWJsZXMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBk YXRhLnZhcmlhYmxlcyBhbmQgZGF0YS52YXJpYWJsZXMuZGVsZXRlZHxsZW5n dGggPiAwICV9CisKK3t7IFZBUklBQkxFLlVOU0VUKGNvbm4sICdQUk9DRURV UkUnLCBuYW1lLCBkYXRhLnZhcmlhYmxlcy5kZWxldGVkLCBvX2RhdGEucHJv bmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5k aWYgLSV9Cit7JSBpZiAnbWVyZ2VkX3ZhcmlhYmxlcycgaW4gZGF0YSBhbmQg ZGF0YS5tZXJnZWRfdmFyaWFibGVzfGxlbmd0aCA+IDAgJX0KKwore3sgVkFS SUFCTEUuU0VUKGNvbm4sICdQUk9DRURVUkUnLCBuYW1lLCBkYXRhLm1lcmdl ZF92YXJpYWJsZXMsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9h cmd0eXBlbmFtZXMpIH19Cit7JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0lfQor eyUgZW5kaWYgLSV9Cit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJl bHMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xh YmVscy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xh YmVscy5kZWxldGVkICV9CisKK3t7IFNFQ0xBQkxFLlVOU0VUKGNvbm4sICdQ Uk9DRURVUkUnLCBuYW1lLCByLnByb3ZpZGVyLCBvX2RhdGEucHJvbmFtZXNw YWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFu ZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4g c2VjbGFiZWxzLmFkZGVkICV9CisKK3t7IFNFQ0xBQkxFLlNFVChjb25uLCAn UFJPQ0VEVVJFJywgbmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJl bCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1l cykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnY2hh bmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5n dGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQor Cit7eyBTRUNMQUJMRS5TRVQoY29ubiwgJ1BST0NFRFVSRScsIG5hbWUsIHIu cHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorCitD T01NRU5UIE9OIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLnBy b25hbWVzcGFjZSwgbmFtZSkgfX0KKyAgICBJUyB7eyBkYXRhLmRlc2NyaXB0 aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5w cm9uYW1lc3BhY2UgJX0KKworQUxURVIgUFJPQ0VEVVJFIHt7IGNvbm58cXRJ ZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fQorICAgIFNFVCBT Q0hFTUEge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlKSB9fTsK K3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBh cy9zcWwvOS41X3BsdXMvdmFyaWFibGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9w bHVzL3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uNTIzM2M3MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3Fs LzkuNV9wbHVzL3ZhcmlhYmxlcy5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxF Q1QKKyAgICBuYW1lLCB2YXJ0eXBlLCBtaW5fdmFsLCBtYXhfdmFsLCBlbnVt dmFscworRlJPTQorICAgIHBnX3NldHRpbmdzCitXSEVSRQorICAgIGNvbnRl eHQgaW4gKCd1c2VyJywgJ3N1cGVydXNlcicpOwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGVtcGxhdGVzL21hY3Jvcy9mdW5jdGlvbnMvcHJpdmls ZWdlLm1hY3JvcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RlbXBsYXRlcy9tYWNyb3Mv ZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MKaW5kZXggMDhkMTE5OC4uMWFj NGNlYSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVtcGxhdGVzL21h Y3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcworKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90ZW1wbGF0ZXMvbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2Uu bWFjcm9zCkBAIC0xLDEzICsxLDkgQEAKIHsjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjfQogeyMgTWFjcm9zIGZvciBQ cml2aWxlZ2VzIChmdW5jdGlvbnMgbW9kdWxlKSAgICN9CiB7IyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI30KLXslIG1h Y3JvIFNFVChjb25uLCB0eXBlLCByb2xlLCBwYXJhbSwgcHJpdnMsIHdpdGhf Z3JhbnRfcHJpdnMsIHNjaGVtYSwgZnVuY19hcmdzKSAtJX0KLXslIGlmIHBy aXZzICV9Ci1HUkFOVCB7eyBwcml2c3xqb2luKCcsICcpIH19IE9OIHt7IHR5 cGUgfX0ge3sgY29ubnxxdElkZW50KHNjaGVtYSwgcGFyYW0pIH19KHt7ZnVu Y19hcmdzfX0pIFRPIHt7Y29ubnxxdElkZW50KHJvbGUpIH19OwoteyUgZW5k aWYgJX0KLXslIGlmIHdpdGhfZ3JhbnRfcHJpdnMgJX0KLUdSQU5UIHt7IHdp dGhfZ3JhbnRfcHJpdnN8am9pbignLCAnKSB9fSBPTiB7eyB0eXBlIH19IHt7 IGNvbm58cXRJZGVudChzY2hlbWEsIHBhcmFtKSB9fSh7e2Z1bmNfYXJnc319 KSBUTyB7eyBjb25ufHF0SWRlbnQocm9sZSkgfX0gV0lUSCBHUkFOVCBPUFRJ T047Ci17JSBlbmRpZiAlfQoreyUgbWFjcm8gU0VUKGNvbm4sIHR5cGUsIHJv bGUsIHBhcmFtLCBwcml2cywgd2l0aF9ncmFudF9wcml2cywgc2NoZW1hLCBm dW5jX2FyZ3MpIC0lfXslIGlmIHByaXZzICV9CitHUkFOVCB7eyBwcml2c3xq b2luKCcsICcpIH19IE9OIHt7IHR5cGUgfX0ge3sgY29ubnxxdElkZW50KHNj aGVtYSwgcGFyYW0pIH19KHt7ZnVuY19hcmdzfX0pIFRPIHt7Y29ubnxxdElk ZW50KHJvbGUpIH19O3slIGVuZGlmICV9eyUgaWYgd2l0aF9ncmFudF9wcml2 cyAlfQorR1JBTlQge3sgd2l0aF9ncmFudF9wcml2c3xqb2luKCcsICcpIH19 IE9OIHt7IHR5cGUgfX0ge3sgY29ubnxxdElkZW50KHNjaGVtYSwgcGFyYW0p IH19KHt7ZnVuY19hcmdzfX0pIFRPIHt7IGNvbm58cXRJZGVudChyb2xlKSB9 fSBXSVRIIEdSQU5UIE9QVElPTjt7JSBlbmRpZiAlfQogeyUtIGVuZG1hY3Jv ICV9CiB7JSBtYWNybyBVTlNFVEFMTChjb25uLCB0eXBlLCByb2xlLCBwYXJh bSwgc2NoZW1hLCBmdW5jX2FyZ3MpIC0lfQogUkVWT0tFIEFMTCBPTiB7eyB0 eXBlIH19IHt7IGNvbm58cXRJZGVudChzY2hlbWEsIHBhcmFtKSB9fSh7e2Z1 bmNfYXJnc319KSBGUk9NIHt7Y29ubnxxdElkZW50KHJvbGUpIH19Owo= --001a11c38c083933d3052ea0fd24 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a11c38c083933d3052ea0fd24--