Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aijVK-00067a-9R for pgadmin-hackers@arkaria.postgresql.org; Wed, 23 Mar 2016 14:11: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 1aijVJ-0006ic-Rc for pgadmin-hackers@arkaria.postgresql.org; Wed, 23 Mar 2016 14:11:21 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1aijMM-00042Q-3B for pgadmin-hackers@postgresql.org; Wed, 23 Mar 2016 14:02:06 +0000 Received: from mail-io0-x236.google.com ([2607:f8b0:4001:c06::236]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1aijMD-0001cn-UO for pgadmin-hackers@postgresql.org; Wed, 23 Mar 2016 14:02:05 +0000 Received: by mail-io0-x236.google.com with SMTP id 124so40400369iov.3 for ; Wed, 23 Mar 2016 07:01:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pgadmin-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=4+7xl4FEL9uAFoFUzSqPug/xkek2nOW8J14njXcqNps=; b=TXxNlSm7JuQx5QUG8AzUy5NhNMWLY0xpVOudwYAmRkMMFhmVXxLTkldY2VvXomykTM 6gWfb+KnInc8aN25KWjedR6VSSq4IzU9XAaeE7MKj/bj6sWcQ/t3mimKTi35OBak/TCZ ETaF+Ph7nPWvVAIyTh3RmYInHYNXFO4cW9lI5dIG2ROq+WbN8JL/5g1i6QkUz2wFKUSW g4w69JvDMEd1oonSFHMAEI/P1+zgLzmxgs9JhFYtzXTlx9C3XAtc5YjaDNd6coGYMosT iHlk9aNpNOtoSBEJAgSKQNqFBInZCCszPEJ/dfz6k1HtN1QFAWlAbM/UPP1VQx/PYEpx ko/A== 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=4+7xl4FEL9uAFoFUzSqPug/xkek2nOW8J14njXcqNps=; b=Z/ruwByKKoF/gMb3qL85xT9C8rsXywJYQJ4Pk1vKRNIC8YyEcnUR81WyBwcxyg3M/0 q/MneohwzAeYiNfvXPWf29rlwwumxqHdVjwHwq1zeZhPaNm3adn6cfur+JJdkLuDlkWR oufGucgJa4M+cQjHscrwfD6D1ibnF3wrXaQkAWcn2UbCBYTmzlaWbAVSQiRWan8v04xW IWHE+RWdAN84SKdSeNhI47wytx7n7lnqUndmUTaahsv76NCVEk4XZpTdW+4Piq5rjFvZ 8YLauxXpSXJWogfBi31T0DzJUvTyXtzvcGIbpLpav5JHDxfEeFh0+NnspvREiHWVAHTJ IGgA== X-Gm-Message-State: AD7BkJKvxrALEZ5F6lIfW4Lh1QI/JxPDhxcsTIF47i2nnF1aZp71ePwRwT9IiewcAB0ANgLfhgbEUIG4D5PpvQ== MIME-Version: 1.0 X-Received: by 10.50.43.194 with SMTP id y2mr3736064igl.96.1458741713473; Wed, 23 Mar 2016 07:01:53 -0700 (PDT) Received: by 10.64.24.175 with HTTP; Wed, 23 Mar 2016 07:01:53 -0700 (PDT) In-Reply-To: References: Date: Wed, 23 Mar 2016 14:01:53 +0000 Message-ID: Subject: Re: [pgAdmin4][Patch]: Functions/Procedures Module From: Dave Page To: Khushboo Vashi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=047d7bfea0b6a7eaa2052eb7c5e5 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 --047d7bfea0b6a7eaa2052eb7c5e5 Content-Type: text/plain; charset=UTF-8 Ooops :-) On Wed, Mar 23, 2016 at 1:44 PM, Khushboo Vashi wrote: > Hi Dave, > > I think you forgot to attach the updated patch. > > Thanks, > Khushboo > > On Wed, Mar 23, 2016 at 5:33 PM, Dave Page wrote: >> >> On Tue, Mar 22, 2016 at 10:51 AM, Khushboo Vashi >> wrote: >> > Hi, >> > >> > Please find updated Patch for the Functions/Procedures Module. >> >> Hi >> >> Unfortunately I found more issues as I tested in-depth. I've attached >> an updated patch in which I've done some cleanup - additional comments >> below: >> >> - Some argument lists are shown with an extra space, e.g. >> >> character varying , integer >> >> (pem.create_agent(character varying , integer)) >> >> - A 404 error is seen when functions are selected under a Catalog node. >> >> - Procedures have a property of "System function?" - should be "System >> procedure?" >> >> - The Return Type, Returns a Set and Window fields should be hidden >> for Procedures. >> >> - When creating a procedure (below), I get the following error: >> >> ----- >> -- PROCEDURE: foo >> >> -- DROP PROCEDURE foo; >> >> CREATE OR REPLACE PROCEDURE public.foo(IN a integer DEFAULT 10, INOUT >> b integer DEFAULT -) >> VOLATILE NOT LEAKPROOF SECURITY DEFINER >> COST 100.0 >> AS >> >> BEGIN >> b:=a+b+1; >> END; >> >> COMMENT ON PROCEDURE public.foo >> IS 'Foo procedure'; >> ----- >> >> ----- >> 2016-03-23 11:22:02,186: INFO werkzeug: 127.0.0.1 - - [23/Mar/2016 >> 11:22:02] "GET /browser/procedure/obj/1/2/14844/13627/16387 HTTP/1.1" >> 500 - >> Traceback (most recent call last): >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1836, in __call__ >> return self.wsgi_app(environ, start_response) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1820, in wsgi_app >> response = self.make_response(self.handle_exception(e)) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1403, in handle_exception >> reraise(exc_type, exc_value, tb) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1817, in wsgi_app >> response = self.full_dispatch_request() >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1477, in full_dispatch_request >> rv = self.handle_user_exception(e) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1381, in handle_user_exception >> reraise(exc_type, exc_value, tb) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1475, in full_dispatch_request >> rv = self.dispatch_request() >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1461, in dispatch_request >> return self.view_functions[rule.endpoint](**req.view_args) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/views.py", >> line 84, in view >> return self.dispatch_request(*args, **kwargs) >> File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/utils.py", line >> 233, in dispatch_request >> return method(*args, **kwargs) >> File >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py", >> line 349, in wrap >> return f(*args, **kwargs) >> File >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py", >> line 425, in properties >> resp_data = self._fetch_properties(gid, sid, did, scid, fnid) >> File >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py", >> line 1097, in _fetch_properties >> resp_data = res['rows'][0] >> IndexError: list index out of range >> ----- >> >> - After a Python server reset, I get the following error when trying >> to view SQL of a Procedure (seems like it thinks it's connected to >> PG?): >> >> TemplateNotFound: procedure/pg/sql/9.5_plus/node.sql >> 2016-03-23 11:28:52,852: INFO werkzeug: 127.0.0.1 - - [23/Mar/2016 >> 11:28:52] "GET /browser/procedure/nodes/1/2/14844/2200/ HTTP/1.1" 500 >> - >> Traceback (most recent call last): >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1836, in __call__ >> return self.wsgi_app(environ, start_response) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1820, in wsgi_app >> response = self.make_response(self.handle_exception(e)) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1403, in handle_exception >> reraise(exc_type, exc_value, tb) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1817, in wsgi_app >> response = self.full_dispatch_request() >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1477, in full_dispatch_request >> rv = self.handle_user_exception(e) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1381, in handle_user_exception >> reraise(exc_type, exc_value, tb) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1475, in full_dispatch_request >> rv = self.dispatch_request() >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1461, in dispatch_request >> return self.view_functions[rule.endpoint](**req.view_args) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/views.py", >> line 84, in view >> return self.dispatch_request(*args, **kwargs) >> File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/utils.py", line >> 233, in dispatch_request >> return method(*args, **kwargs) >> File >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py", >> line 349, in wrap >> return f(*args, **kwargs) >> File >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py", >> line 390, in nodes >> 'node.sql']), scid=scid) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/templating.py", >> line 127, in render_template >> return >> _render(ctx.app.jinja_env.get_or_select_template(template_name_or_list), >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/jinja2/environment.py", >> line 830, in get_or_select_template >> return self.get_template(template_name_or_list, parent, globals) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/jinja2/environment.py", >> line 791, in get_template >> return self._load_template(name, self.make_globals(globals)) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/jinja2/environment.py", >> line 765, in _load_template >> template = self.loader.load(self, name, globals) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/jinja2/loaders.py", >> line 113, in load >> source, filename, uptodate = self.get_source(environment, name) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/templating.py", >> line 64, in get_source >> raise TemplateNotFound(template) >> TemplateNotFound: procedure/pg/sql/9.5_plus/node.sql >> 2016-03-23 11:28:57,953: INFO werkzeug: 127.0.0.1 - - [23/Mar/2016 >> 11:28:57] "POST /ping HTTP/1.1" 200 - >> >> - Procedures do not include the schema name in the headers of reverse >> engineered SQL, e.g. >> >> - What's the trailing - in the parameter list in this reverse engineered >> SQL? >> >> -- PROCEDURE: foo >> >> -- DROP PROCEDURE foo; >> >> CREATE OR REPLACE PROCEDURE public.foo(IN a integer DEFAULT 10, INOUT >> b integer DEFAULT -) >> VOLATILE NOT LEAKPROOF SECURITY DEFINER >> COST 100.0 >> AS >> >> BEGIN >> b:=a+b+1; >> END; >> >> COMMENT ON PROCEDURE public.foo >> IS 'Foo procedure'; >> >> Thanks! >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company > > -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company --047d7bfea0b6a7eaa2052eb7c5e5 Content-Type: application/octet-stream; name="pgAdmin4_function_ver1-dave.patch" Content-Disposition: attachment; filename="pgAdmin4_function_ver1-dave.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_im4x586p0 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 MDA2NDQKaW5kZXggMDAwMDAwMC4uYTU5NjE0NwotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vanMvZnVuY3Rpb25zLmpzCkBAIC0wLDAgKzEsNDQxIEBACisvKiBDcmVh 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 ICAgICAgIG5vZGU6ICdzY2hlbWEnLCBtb2RlOiBbJ2NyZWF0ZScsICdlZGl0 J10KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdzeXNmdW5jJywgbGFi ZWw6ICd7eyBfKCdTeXN0ZW0gZnVuY3Rpb24/JykgfX0nLAorICAgICAgICAg ICBjZWxsOidib29sZWFuJywgdHlwZTogJ3N3aXRjaCcsCisgICAgICAgICAg IG1vZGU6IFsncHJvcGVydGllcyddCisgICAgICAgIH0seworICAgICAgICAg IGlkOiAnZGVzY3JpcHRpb24nLCBsYWJlbDogJ3t7IF8oJ0NvbW1lbnQnKSB9 fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICdtdWx0aWxp bmUnCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAncHJvbmFyZ3MnLCBs YWJlbDogJ3t7IF8oJ0FyZ3VtZW50IGNvdW50JykgfX0nLCBjZWxsOiAnc3Ry aW5nJywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGdyb3VwOiAne3sgXygn RGVmaW5pdGlvbicpIH19JywgbW9kZTogWydwcm9wZXJ0aWVzJ10KKyAgICAg ICAgfSx7CisgICAgICAgICAgaWQ6ICdwcm9hcmdzJywgbGFiZWw6ICd7eyBf KCdBcmd1bWVudHMnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAg IHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0n LCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCddLAorICAgICAgICAgIGRp c2FibGVkOiAnaXNEaXNhYmxlZCcKKyAgICAgICAgfSx7CisgICAgICAgICAg aWQ6ICdwcm9hcmd0eXBlbmFtZXMnLCBsYWJlbDogJ3t7IF8oJ1NpZ25hdHVy ZSBhcmd1bWVudHMnKSB9fScsIGNlbGw6CisgICAgICAgICAgJ3N0cmluZycs IHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0n LCBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwKKyAgICAgICAgICBkaXNhYmxlZDog J2lzRGlzYWJsZWQnCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAncHJv cmV0dHlwZW5hbWUnLCBsYWJlbDogJ3t7IF8oJ1JldHVybiB0eXBlJykgfX0n LCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICBjb250cm9sOiAnbm9kZS1h amF4LW9wdGlvbnMnLCB0eXBlOiAndGV4dCcsIGdyb3VwOiAne3sgXygnRGVm aW5pdGlvbicpIH19JywKKyAgICAgICAgICB1cmw6ICdnZXRfdHlwZXMnLCBk aXNhYmxlZDogJ2lzRGlzYWJsZWQnLCBmaXJzdF9lbXB0eTogdHJ1ZSwKKyAg ICAgICAgICBtb2RlOiBbJ2NyZWF0ZSddCisgICAgICAgIH0seworICAgICAg ICAgIGlkOiAncHJvcmV0dHlwZW5hbWUnLCBsYWJlbDogJ3t7IF8oJ1JldHVy biB0eXBlJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBl OiAndGV4dCcsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlvbicpIH19JywgZGlz YWJsZWQ6IHRydWUsCisgICAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJywg J2VkaXQnXQorICAgICAgICB9LCAgeworICAgICAgICAgIGlkOiAnbGFubmFt ZScsIGxhYmVsOiAne3sgXygnTGFuZ3VhZ2UnKSB9fScsIGNlbGw6ICdzdHJp bmcnLAorICAgICAgICAgIGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycs IHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0n LAorICAgICAgICAgIHVybDogJ2dldF9sYW5ndWFnZXMnLCBkaXNhYmxlZDog J2lzRGlzYWJsZWQnCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAncHJv c3JjJywgbGFiZWw6J3t7IF8oIkNvZGUiKSB9fScsIGNlbGw6ICdzdHJpbmcn LAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgbW9kZTogWydwcm9wZXJ0aWVz JywgJ2NyZWF0ZScsICdlZGl0J10sIGdyb3VwOiAne3sgXygnRGVmaW5pdGlv bicpIH19JywKKyAgICAgICAgICBjb250cm9sOiBCYWNrZm9ybS5TcWxGaWVs ZENvbnRyb2wsIGV4dHJhQ2xhc3NlczpbJ2N1c3RvbV9oZWlnaHRfY3NzX2Ns YXNzJ10sIHZpc2libGU6CisgICAgICAgICAgZnVuY3Rpb24obSkgeworICAg ICAgICAgICAgaWYgKG0uZ2V0KCdsYW5uYW1lJykgPT0gJ2MnKSB7IHJldHVy biBmYWxzZTsgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg ICAgfSwKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdwcm9iaW4nLCBs YWJlbDogJ3t7IF8oJ09iamVjdCBGaWxlJykgfX0nLCBjZWxsOiAnc3RyaW5n JywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGdyb3VwOiAne3sgXygnRGVm aW5pdGlvbicpIH19JywgZGVwczogWydsYW5uYW1lJ10sIHZpc2libGU6Cisg ICAgICAgICAgZnVuY3Rpb24obSkgeworICAgICAgICAgICAgaWYgKG0uZ2V0 KCdsYW5uYW1lJykgPT0gJ2MnKSB7IHJldHVybiB0cnVlOyB9CisgICAgICAg ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgfQorICAgICAgICB9LHsK KyAgICAgICAgICBpZDogJ3Byb3NyY19jJywgbGFiZWw6ICd7eyBfKCdMaW5r IFN5bWJvbCcpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlw ZTogJ3RleHQnLCBncm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsICBk ZXBzOiBbJ2xhbm5hbWUnXSwgdmlzaWJsZToKKyAgICAgICAgICBmdW5jdGlv bihtKSB7CisgICAgICAgICAgICBpZiAobS5nZXQoJ2xhbm5hbWUnKSA9PSAn YycpIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgICAgIHJldHVybiBmYWxz ZTsKKyAgICAgICAgICB9CisgICAgICAgIH0seworICAgICAgICAgIGlkOiAn cHJvdm9sYXRpbGUnLCBsYWJlbDogJ3t7IF8oJ1ZvbGF0aWxpdHknKSB9fScs IGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIGNvbnRyb2w6ICdub2RlLWFq YXgtb3B0aW9ucycsIHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICd7eyBfKCdPcHRp b25zJykgfX0nLAorICAgICAgICAgIG9wdGlvbnM6WworICAgICAgICAgICAg eydsYWJlbCc6ICdWT0xBVElMRScsICd2YWx1ZSc6ICd2J30sCisgICAgICAg ICAgICB7J2xhYmVsJzogJ1NUQUJMRScsICd2YWx1ZSc6ICdzJ30sCisgICAg ICAgICAgICB7J2xhYmVsJzogJ0lNTVVUQUJMRScsICd2YWx1ZSc6ICdpJ30s CisgICAgICAgICAgXSwgZGlzYWJsZWQ6ICdpc0Rpc2FibGVkJworICAgICAg ICB9LHsKKyAgICAgICAgICBpZDogJ3Byb3JldHNldCcsIGxhYmVsOiAne3sg XygnUmV0dXJucyBhIHNldD8nKSB9fScsIGdyb3VwOiAne3sgXygnT3B0aW9u cycpIH19JywKKyAgICAgICAgICBjZWxsOidib29sZWFuJywgdHlwZTogJ3N3 aXRjaCcsICBkaXNhYmxlZDogJ2lzRGlzYWJsZWQnCisgICAgICAgIH0sewor ICAgICAgICAgIGlkOiAncHJvaXNzdHJpY3QnLCBsYWJlbDogJ3t7IF8oJ1N0 cmljdD8nKSB9fScsIGdyb3VwOiAne3sgXworICAgICAgICAgICgnT3B0aW9u cycpIH19JywKKyAgICAgICAgICBjZWxsOidib29sZWFuJywgdHlwZTogJ3N3 aXRjaCcsIGRpc2FibGVkOiAnaXNEaXNhYmxlZCcsIG9wdGlvbnM6IHsKKyAg ICAgICAgICAgICdvblRleHQnOiAnWWVzJywgJ29mZlRleHQnOiAnTm8nLAor ICAgICAgICAgICAgJ29uQ29sb3InOiAnc3VjY2VzcycsICdvZmZDb2xvcic6 ICdwcmltYXJ5JywKKyAgICAgICAgICAgICdzaXplJzogJ3NtYWxsJworICAg ICAgICAgIH0KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdwcm9zZWNk ZWYnLCBsYWJlbDogJ3t7IF8oJ1NlY3VyaXR5IG9mIGRlZmluZXI/JykgfX0n LAorICAgICAgICAgICBncm91cDogJ3t7IF8oJ09wdGlvbnMnKSB9fScsIGNl bGw6J2Jvb2xlYW4nLCB0eXBlOiAnc3dpdGNoJywKKyAgICAgICAgICAgZGlz YWJsZWQ6ICdpc0Rpc2FibGVkJworICAgICAgICB9LHsKKyAgICAgICAgICBp ZDogJ3Byb2lzd2luZG93JywgbGFiZWw6ICd7eyBfKCdXaW5kb3c/JykgfX0n LAorICAgICAgICAgICBncm91cDogJ3t7IF8oJ09wdGlvbnMnKSB9fScsIGNl bGw6J2Jvb2xlYW4nLCB0eXBlOiAnc3dpdGNoJywKKyAgICAgICAgICAgIGRp c2FibGVkOiAnaXNEaXNhYmxlZCcKKyAgICAgICAgfSx7CisgICAgICAgICAg aWQ6ICdwcm9jb3N0JywgbGFiZWw6ICd7eyBfKCdFc3RpbWF0ZWQgY29zdCcp IH19JywgZ3JvdXA6ICd7eyBfKCdPcHRpb25zJykgfX0nLAorICAgICAgICAg IGNlbGw6J3N0cmluZycsIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6ICdpc0Rp c2FibGVkJworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3Byb3Jvd3Mn LCBsYWJlbDogJ3t7IF8oJ0VzdGltYXRlZCByb3dzJykgfX0nLCBncm91cDog J3t7IF8KKyAgICAgICAgICAoJ09wdGlvbnMnKSB9fScsCisgICAgICAgICAg Y2VsbDonc3RyaW5nJywgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDogJ2lzRGlz YWJsZWQnLAorICAgICAgICAgIGRlcHM6IFsncHJvcmV0c2V0J10KKyAgICAg ICAgfSx7CisgICAgICAgICAgaWQ6ICdwcm9sZWFrcHJvb2YnLCBsYWJlbDog J3t7IF8oJ0xlYWsgcHJvb2Y/JykgfX0nLAorICAgICAgICAgIGdyb3VwOiAn e3sgXygnT3B0aW9ucycpIH19JywgY2VsbDonYm9vbGVhbicsIHR5cGU6ICdz d2l0Y2gnLCBtaW5fdmVyc2lvbjogOTAyMDAsCisgICAgICAgICAgZGlzYWJs ZWQ6ICdpc0Rpc2FibGVkJworICAgICAgICB9LHsKKyAgICAgICAgICBpZDog J3Byb2FjbCcsIGxhYmVsOiAne3sgXygnUHJpdmlsZWdlcycpIH19JywKKyAg ICAgICAgICAgZ3JvdXA6ICd7eyBfKCdTZWN1cml0eScpIH19JywgY2VsbDon Ym9vbGVhbicsIHR5cGU6ICd0ZXh0JywgY2VsbDogJ3N0cmluZycsCisgICAg ICAgICAgIG1vZGU6IFsncHJvcGVydGllcyddCisgICAgICAgIH0seworICAg ICAgICAgIGlkOiAnYXJndW1lbnRzJywgbGFiZWw6ICd7eyBfKCdQYXJhbWV0 ZXJzJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICBncm91cDog J3t7IF8oJ1BhcmFtZXRlcnMnKSB9fScsIHR5cGU6ICdjb2xsZWN0aW9uJywg Y2FuQWRkOiBmdW5jdGlvbihtKXsKKyAgICAgICAgICAgIHJldHVybiBtLmlz TmV3KCk7CisgICAgICAgICAgfSwKKyAgICAgICAgICBjYW5EZWxldGU6IHRy dWUsIG1vZGVsOiBBcmd1bWVudE1vZGVsLCBtb2RlOgorICAgICAgICAgIFsn Y3JlYXRlJywgJ2VkaXQnXSwgZWRpdGFibGU6IGZhbHNlLAorICAgICAgICAg IGNvbHVtbnM6IFsnYXJndHlwZScsICdhcmdtb2RlJywgJ2FyZ25hbWUnLCAn YXJnZGVmdmFsJ10KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICd2YXJp YWJsZXMnLCBsYWJlbDogJ3t7IF8oJ1ZhcmlhYmxlcycpIH19JywgdHlwZTog J2NvbGxlY3Rpb24nLAorICAgICAgICAgIGdyb3VwOiAne3sgXygnVmFyaWFi bGVzJykgfX0nLCBjb250cm9sOiAndmFyaWFibGUtY29sbGVjdGlvbicsCisg ICAgICAgICAgbW9kZWw6IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLlZhcmlhYmxl TW9kZWwsCisgICAgICAgICAgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLCBj YW5BZGQ6ICdjYW5WYXJBZGQnLCBjYW5FZGl0OiBmYWxzZSwKKyAgICAgICAg ICBjYW5EZWxldGU6IHRydWUsIGRpc2FibGVkOiAnaXNEaXNhYmxlZCcKKyAg ICAgICAgIH0seworICAgICAgICAgIGlkOiAnYWNsJywgbGFiZWw6ICd7eyBf KCdQcml2aWxlZ2VzJykgfX0nLCBtb2RlbDogcGdBZG1pbgorICAgICAgICAg IC5Ccm93c2VyLk5vZGUuUHJpdmlsZWdlUm9sZU1vZGVsLmV4dGVuZCgKKyAg ICAgICAgICAgIHtwcml2aWxlZ2VzOiBbJ1gnXX0pLCB1bmlxdWVDb2wgOiBb J2dyYW50ZWUnLCAnZ3JhbnRvciddLAorICAgICAgICAgIGVkaXRhYmxlOiBm YWxzZSwgdHlwZTogJ2NvbGxlY3Rpb24nLCBncm91cDogJ3t7IF8oJ1NlY3Vy aXR5JykgfX0nLAorICAgICAgICAgIG1vZGU6IFsnZWRpdCcsICdjcmVhdGUn XSwKKyAgICAgICAgICBjYW5BZGQ6IHRydWUsIGNhbkRlbGV0ZTogdHJ1ZSwg Y29udHJvbDogJ3VuaXF1ZS1jb2wtY29sbGVjdGlvbicsCisgICAgICAgIH0s CisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ3NlY2xhYmVscycsIGxhYmVs OiAne3sgXygnU2VjdXJpdHkgTGFiZWxzJykgfX0nLAorICAgICAgICAgIG1v ZGVsOiBTZWN1cml0eU1vZGVsLCB0eXBlOiAnY29sbGVjdGlvbicsCisgICAg ICAgICAgZ3JvdXA6ICd7eyBfKCdTZWN1cml0eScpIH19JywgbW9kZTogWydl ZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAgIG1pbl92ZXJzaW9uOiA5MDEw MCwgY2FuQWRkOiB0cnVlLAorICAgICAgICAgIGNhbkVkaXQ6IHRydWUsIGNh bkRlbGV0ZTogdHJ1ZSwKKyAgICAgICAgICBjb250cm9sOiAndW5pcXVlLWNv bC1jb2xsZWN0aW9uJywgdW5pcXVlQ29sIDogWydwcm92aWRlciddCisgICAg ICAgIH0KKyAgICAgICAgXSwKKyAgICAgICAgdmFsaWRhdGU6IGZ1bmN0aW9u KCkKKyAgICAgICAgeworICAgICAgICAgIHZhciBlcnIgPSB7fSwKKyAgICAg ICAgICAgICAgZXJybXNnLAorICAgICAgICAgICAgICBzZWNsYWJlbHMgPSB0 aGlzLmdldCgnc2VjbGFiZWxzJyk7CisKKyAgICAgICAgICBpZiAoXy5pc1Vu ZGVmaW5lZCh0aGlzLmdldCgnbmFtZScpKSB8fCBTdHJpbmcodGhpcy5nZXQo J25hbWUnKSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgewor ICAgICAgICAgICAgZXJyWyduYW1lJ10gPSAne3sgXygnTmFtZSBjYW4gbm90 IGJlIGVtcHR5IScpIH19JzsKKyAgICAgICAgICAgIGVycm1zZyA9IGVycm1z ZyB8fCBlcnJbJ25hbWUnXTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBp ZiAoXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgnZnVuY293bmVyJykpIHx8IFN0 cmluZyh0aGlzLmdldCgnZnVuY293bmVyJykpLnJlcGxhY2UoL15ccyt8XHMr JC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIGVyclsnZnVuY293bmVy J10gPSAne3sgXygnT3duZXIgY2FuIG5vdCBiZSBlbXB0eSEnKSB9fSc7Cisg ICAgICAgICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgZXJyWydmdW5jb3duZXIn XTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5l ZCh0aGlzLmdldCgncHJvbmFtZXNwYWNlJykpIHx8IFN0cmluZyh0aGlzLmdl dCgncHJvbmFtZXNwYWNlJykpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykg PT0gJycpIHsKKyAgICAgICAgICAgIGVyclsncHJvbmFtZXNwYWNlJ10gPSAn e3sgXygnU2NoZW1hIGNhbiBub3QgYmUgZW1wdHkhJykgfX0nOworICAgICAg ICAgICAgZXJybXNnID0gZXJybXNnIHx8IGVyclsncHJvbmFtZXNwYWNlJ107 CisgICAgICAgICAgfQorCisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQo dGhpcy5nZXQoJ3Byb3JldHR5cGVuYW1lJykpIHx8IFN0cmluZyh0aGlzLmdl dCgncHJvcmV0dHlwZW5hbWUnKSkucmVwbGFjZSgvXlxzK3xccyskL2csICcn KSA9PSAnJykgeworICAgICAgICAgICAgZXJyWydwcm9yZXR0eXBlbmFtZSdd ID0gJ3t7IF8oJ1JldHVybiBUeXBlIGNhbiBub3QgYmUgZW1wdHkhJykgfX0n OworICAgICAgICAgICAgZXJybXNnID0gZXJybXNnIHx8IGVyclsncHJvcmV0 dHlwZW5hbWUnXTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAoXy5p c1VuZGVmaW5lZCh0aGlzLmdldCgnbGFubmFtZScpKSB8fCBTdHJpbmcodGhp cy5nZXQoJ2xhbm5hbWUnKSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9 PSAnJykgeworICAgICAgICAgICAgZXJyWydsYW5uYW1lJ10gPSAne3sgXygn TGFuZ3VhZ2UgY2FuIG5vdCBiZSBlbXB0eSEnKSB9fSc7CisgICAgICAgICAg ICBlcnJtc2cgPSBlcnJtc2cgfHwgZXJyWydsYW5uYW1lJ107CisgICAgICAg ICAgfQorCisgICAgICAgICAgaWYgKFN0cmluZyh0aGlzLmdldCgnbGFubmFt ZScpKSA9PSAnYycpIHsKKyAgICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVk KHRoaXMuZ2V0KCdwcm9iaW4nKSkgfHwgU3RyaW5nKHRoaXMuZ2V0KCdwcm9i aW4nKSkKKyAgICAgICAgICAgICAgLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAn JykgPT0gJycpIHsKKyAgICAgICAgICAgICAgZXJyWydwcm9iaW4nXSA9ICd7 eyBfKCdPYmplY3QgRmlsZSBjYW4gbm90IGJlIGVtcHR5IScpIH19JzsKKyAg ICAgICAgICAgICAgZXJybXNnID0gZXJybXNnIHx8IGVyclsncHJvYmluJ107 CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChfLmlzVW5kZWZp bmVkKHRoaXMuZ2V0KCdwcm9zcmNfYycpKSB8fCBTdHJpbmcodGhpcy5nZXQo J3Byb3NyY19jJykpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycp IHsKKyAgICAgICAgICAgICAgZXJyWydwcm9zcmNfYyddID0gJ3t7IF8oJ0xp bmsgU3ltYm9sIGNhbiBub3QgYmUgZW1wdHkhJykgfX0nOworICAgICAgICAg ICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgZXJyWydwcm9zcmNfYyddOworICAg ICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBlbHNlIHsKKyAg ICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCdwcm9zcmMn KSkgfHwgU3RyaW5nKHRoaXMuZ2V0KCdwcm9zcmMnKSkucmVwbGFjZSgvXlxz K3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgICBlcnJbJ3By b3NyYyddID0gJ3t7IF8oJ0NvZGUgY2FuIG5vdCBiZSBlbXB0eSEnKSB9fSc7 CisgICAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJbJ3Byb3Ny YyddOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAgICAg IGlmIChzZWNsYWJlbHMpIHsKKyAgICAgICAgICAgIHZhciBzZWNMYWJlbHNF cnI7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlY2xhYmVs cy5tb2RlbHMubGVuZ3RoICYmICFzZWNMYWJlbHNFcnI7IGkrKykgeworICAg ICAgICAgICAgICBzZWNMYWJlbHNFcnIgPSAoc2VjbGFiZWxzLm1vZGVsc1tp XSkudmFsaWRhdGUuYXBwbHkoc2VjbGFiZWxzLm1vZGVsc1tpXSk7CisgICAg ICAgICAgICAgIGlmIChzZWNMYWJlbHNFcnIpIHsKKyAgICAgICAgICAgICAg ICBlcnJbJ3NlY2xhYmVscyddID0gc2VjTGFiZWxzRXJyOworICAgICAgICAg ICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBzZWNMYWJlbHNFcnI7CisgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisKKyAg ICAgICAgICB0aGlzLmVycm9yTW9kZWwuY2xlYXIoKS5zZXQoZXJyKTsKKwor ICAgICAgICAgIGlmIChfLnNpemUoZXJyKSkgeworICAgICAgICAgICAgdGhp cy50cmlnZ2VyKCdvbi1zdGF0dXMnLCB7bXNnOiBlcnJtc2d9KTsKKyAgICAg ICAgICAgIHJldHVybiBlcnJtc2c7CisgICAgICAgICAgfQorCisgICAgICAg ICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0sCisgICAgICAgIGlzRGlzYWJs ZWQ6IGZ1bmN0aW9uKG0peworICAgICAgICAgIG5hbWUgPSB0aGlzLm5hbWU7 CisgICAgICAgICAgc3dpdGNoKG5hbWUpeworICAgICAgICAgICAgY2FzZSAn cHJvYXJncyc6CisgICAgICAgICAgICBjYXNlICdwcm9hcmd0eXBlbmFtZXMn OgorICAgICAgICAgICAgY2FzZSAncHJvcmV0c2V0JzoKKyAgICAgICAgICAg IGNhc2UgJ3Byb2lzd2luZG93JzoKKyAgICAgICAgICAgICAgcmV0dXJuICFt LmlzTmV3KCk7CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg Y2FzZSAncHJvcm93cyc6CisgICAgICAgICAgICAgIGlmKG0uZ2V0KCdwcm9y ZXRzZXQnKSA9PSB0cnVlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZh bHNlOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2Ugewor ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoK KyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICBi cmVhazsKKyAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIGNhblZh ckFkZDogZnVuY3Rpb24obSkgeworICAgICAgICAgcmV0dXJuIHRydWU7Cisg ICAgICAgIH0KKyAgICAgIH0pLAorICAgICAgY2FuQ3JlYXRlOiBmdW5jdGlv bihpdGVtRGF0YSwgaXRlbSwgZGF0YSkgeworICAgICAgICAvL0lmIGNoZWNr IGlzIGZhbHNlIHRoZW4gLCB3ZSB3aWxsIGFsbG93IGNyZWF0ZSBtZW51Cisg ICAgICAgIGlmIChkYXRhICYmIGRhdGEuY2hlY2sgPT0gZmFsc2UpCisgICAg ICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgdmFyIHQgPSBwZ0Jyb3dz ZXIudHJlZSwgaSA9IGl0ZW0sIGQgPSBpdGVtRGF0YTsKKyAgICAgICAgLy8g VG8gaXRlcmF0ZSBvdmVyIHRyZWUgdG8gY2hlY2sgcGFyZW50IG5vZGUKKyAg ICAgICAgd2hpbGUgKGkpIHsKKyAgICAgICAgICAvLyBJZiBpdCBpcyBzY2hl bWEgdGhlbiBhbGxvdyB1c2VyIHRvIGNyZWF0ZSBGdW5jdGlvbgorICAgICAg ICAgIGlmIChfLmluZGV4T2YoWydzY2hlbWEnXSwgZC5fdHlwZSkgPiAtMSkK KyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAgaWYgKCdj b2xsLWZ1bmN0aW9uJyA9PSBkLl90eXBlKSB7CisgICAgICAgICAgICAvL0No ZWNrIGlmIHdlIGFyZSBub3QgY2hpbGQgb2YgY2F0YWxvZworICAgICAgICAg ICAgcHJldl9pID0gdC5oYXNQYXJlbnQoaSkgPyB0LnBhcmVudChpKSA6IG51 bGw7CisgICAgICAgICAgICBwcmV2X2QgPSBwcmV2X2kgPyB0Lml0ZW1EYXRh KHByZXZfaSkgOiBudWxsOworICAgICAgICAgICAgaWYoIHByZXZfZC5fdHlw ZSA9PSAnY2F0YWxvZycpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgcmV0dXJu IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAg IGkgPSB0Lmhhc1BhcmVudChpKSA/IHQucGFyZW50KGkpIDogbnVsbDsKKyAg ICAgICAgICBkID0gaSA/IHQuaXRlbURhdGEoaSkgOiBudWxsOworICAgICAg ICB9CisgICAgICAgIC8vIGJ5IGRlZmF1bHQgd2UgZG8gbm90IHdhbnQgdG8g YWxsb3cgY3JlYXRlIG1lbnUKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg ICB9CisgIH0pOworCisgIH0KKworICByZXR1cm4gcGdCcm93c2VyLk5vZGVz WydmdW5jdGlvbiddOworfSk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1 cy9hY2wuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvYWNsLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDNlMGQxCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvYWNsLnNxbApAQCAtMCwwICsxLDM1 IEBACitTRUxFQ1QKKyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAncHVibGlj JykgQVMgZ3JhbnRlZSwKKyAgICBnLnJvbG5hbWUgQVMgZ3JhbnRvciwgYXJy YXlfYWdnKHByaXZpbGVnZV90eXBlKSBBUyBwcml2aWxlZ2VzLAorICAgIGFy cmF5X2FnZyhpc19ncmFudGFibGUpIEFTIGdyYW50YWJsZQorRlJPTQorICAg IChTRUxFQ1QKKyAgICAgICAgZC5ncmFudGVlLCBkLmdyYW50b3IsIGQuaXNf Z3JhbnRhYmxlLAorICAgICAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAg ICAgICAgV0hFTiAnQ09OTkVDVCcgVEhFTiAnYycKKyAgICAgICAgV0hFTiAn Q1JFQVRFJyBUSEVOICdDJworICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4g J2QnCisgICAgICAgIFdIRU4gJ0VYRUNVVEUnIFRIRU4gJ1gnCisgICAgICAg IFdIRU4gJ0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJF TkNFUycgVEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdy JworICAgICAgICBXSEVOICdURU1QT1JBUlknIFRIRU4gJ1QnCisgICAgICAg IFdIRU4gJ1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1RSVU5D QVRFJyBUSEVOICdEJworICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cn CisgICAgICAgIFdIRU4gJ1VTQUdFJyBUSEVOICdVJworICAgICAgICBFTFNF ICdVTktOT1dOJworICAgICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAg ICBGUk9NCisgICAgICAgIChTRUxFQ1QKKyAgICAgICAgICAgIChkKS5ncmFu dGVlIEFTIGdyYW50ZWUsIChkKS5ncmFudG9yIEFTIGdyYW50b3IsCisgICAg ICAgICAgICAoZCkuaXNfZ3JhbnRhYmxlIEFTIGlzX2dyYW50YWJsZSwKKyAg ICAgICAgICAgIChkKS5wcml2aWxlZ2VfdHlwZSBBUyBwcml2aWxlZ2VfdHlw ZQorICAgICAgICBGUk9NCisgICAgICAgICAgICAoU0VMRUNUIGFjbGV4cGxv ZGUoZGIucHJvYWNsKSBBUyBkIEZST00gcGdfcHJvYyBkYgorICAgICAgICAg ICAgV0hFUkUgZGIub2lkID0ge3tmbmlkfX06Ok9JRCkgYQorICAgICAgICAp IGQKKyAgICApIGQKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xl cyBnIE9OIChkLmdyYW50b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpPSU4gcGdf Y2F0YWxvZy5wZ19yb2xlcyBndCBPTiAoZC5ncmFudGVlID0gZ3Qub2lkKQor R1JPVVAgQlkgZy5yb2xuYW1lLCBndC5yb2xuYW1lOwpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9w Zy9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL2Ny ZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u N2IyOWEzYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL2Ny ZWF0ZS5zcWwKQEAgLTAsMCArMSw1MyBAQAoreyUgaW1wb3J0ICdtYWNyb3Mv ZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCRUwgJX0KK3sl IGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBh cyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy92 YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9Cit7JSBzZXQgaXNfY29s dW1ucyA9IFtdICV9Cit7JSBpZiBkYXRhICV9CitDUkVBVEUgRlVOQ1RJT04g e3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUp IH19KHslIGlmIGRhdGEuYXJndW1lbnRzICV9Cit7JSBmb3IgcCBpbiBkYXRh LmFyZ3VtZW50cyAlfXslIGlmIHAuYXJnbW9kZSAlfXt7cC5hcmdtb2RlfX0g eyUgZW5kaWYgJX17JSBpZiBwLmFyZ25hbWUgJX17eyBjb25ufHF0SWRlbnQo cC5hcmduYW1lKX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3tw LmFyZ3R5cGV9fXslIGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVG QVVMVCB7e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxv b3AubGFzdCAlfSx7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAtJX0KKyAgICApCisgICAgUkVUVVJOU3slIGlmIGRhdGEucHJvcmV0c2V0 ICV9IFNFVE9GeyUgZW5kaWYgJX0ge3sgY29ubnxxdFR5cGVJZGVudChkYXRh LnByb3JldHR5cGVuYW1lKSB9fQorICAgIExBTkdVQUdFIHt7IGRhdGEubGFu bmFtZXxxdExpdGVyYWwgfX0KKyAgICB7JSBpZiBkYXRhLnByb3ZvbGF0aWxl ICV9e3sgZGF0YS5wcm92b2xhdGlsZSB9fSB7JSBlbmRpZiAlfXslIGlmIGRh dGEucHJvaXNzdHJpY3QgJX1TVFJJQ1QgeyUgZW5kaWYgJX17JSBpZiBkYXRh LnByb3NlY2RlZiAlfVNFQ1VSSVRZIERFRklORVIgeyUgZW5kaWYgJX17JSBp ZiBkYXRhLnByb2lzd2luZG93ICV9V0lORE9XeyUgZW5kaWYgLSV9eyUgaWYg ZGF0YS5wcm9jb3N0ICV9CisKKyAgICBDT1NUIHt7ZGF0YS5wcm9jb3N0fX17 JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvcm93cyAlfQorCisgICAgUk9XUyB7 e2RhdGEucHJvcm93c319eyUgZW5kaWYgLSV9eyUgaWYgZGF0YS52YXJpYWJs ZXMgJX17JSBmb3IgdiBpbiBkYXRhLnZhcmlhYmxlcyAlfQorCisgICAgU0VU IHt7IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRMaXRl cmFsIH19eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQorCitBUyB7JSBpZiBk YXRhLmxhbm5hbWUgPT0gJ2MnICV9Cit7eyBkYXRhLnByb2JpbnxxdExpdGVy YWwgfX0sIHt7IGRhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19Cit7JSBlbHNl ICV9CiskZnVuY3Rpb24kCit7eyBkYXRhLnByb3NyYyB9fQorJGZ1bmN0aW9u JHslIGVuZGlmICV9OworeyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxU RVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNl LCBkYXRhLm5hbWUpIH19KHt7ZGF0YS5mdW5jX2FyZ3N9fSkKKyAgICBPV05F UiBUTyB7eyBkYXRhLmZ1bmNvd25lciB9fTsKK3slIGVuZGlmICV9Cit7JSBp ZiBkYXRhLmFjbCAlfQoreyUgZm9yIHAgaW4gZGF0YS5hY2wgJX0KKwore3sg UFJJVklMRUdFLlNFVChjb25uLCAiRlVOQ1RJT04iLCBwLmdyYW50ZWUsIGRh dGEubmFtZSwgcC53aXRob3V0X2dyYW50LCBwLndpdGhfZ3JhbnQsIGRhdGEu cHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNfYXJncyl9fQoreyUgZW5kZm9yICV9 eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09N TUVOVCBPTiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1l c3BhY2UsIGRhdGEubmFtZSkgfX0oe3tkYXRhLmZ1bmNfYXJnc319KQorICAg IElTICd7eyBkYXRhLmRlc2NyaXB0aW9uIH19JzsKK3slIGVuZGlmIC0lfQor eyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2Vj bGFiZWxzICV9Cit7JSBpZiByLnNlY3VyaXR5X2xhYmVsIGFuZCByLnByb3Zp ZGVyICV9CisKK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnRlVOQ1RJT04nLCBk YXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIGRhdGEu cHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNfYXJncykgfX0KK3slIGVuZGlmICV9 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3Fs LzkuMV9wbHVzL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMjQ2YmVjMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3Fs LzkuMV9wbHVzL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwyMSBAQAoreyUgaWYg c2NpZCBhbmQgZm5pZCAlfQorU0VMRUNUCisgICAgcHIucHJvbmFtZSBhcyBu YW1lLCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRf ZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAn KScgYXMgZnVuY19hcmdzLAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19w cm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9y ZXR0eXBlCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lk PXByLnByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNF CisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBB TkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXIn KQorICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTsKK3slIGVuZGlmICV9CisK K3slIGlmIG5hbWUgJX0KK0RST1AgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50 KG5zcG5hbWUsIG5hbWUpIH19e3tmdW5jX2FyZ3N9fXslIGlmIGNhc2NhZGUg JX0gQ0FTQ0FERXslIGVuZGlmICV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcGcvc3FsLzkuMV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3Fs LzkuMV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi41ODllY2NlCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wZy9zcWwvOS4xX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCkBAIC0wLDAg KzEsMTEgQEAKK1NFTEVDVAorICAgIHBnX2dldF9mdW5jdGlvbmRlZih7e2Zu aWR9fTo6b2lkKSBBUyBmdW5jX2RlZiwKKyAgICBuc3BuYW1lIHx8ICcuJyB8 fCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nLnBn X2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycp IHx8ICcpJyBhcyBuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgor ICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3Bh Y2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9u YW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHByLm9pZCA9IHt7 Zm5pZH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9nZXRf bGFuZ3VhZ2VzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL2dldF9sYW5ndWFnZXMu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4MWRk ZmIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9nZXRfbGFu Z3VhZ2VzLnNxbApAQCAtMCwwICsxLDQgQEAKK1NFTEVDVAorICAgIGxhbm5h bWUgYXMgbGFiZWwsIGxhbm5hbWUgYXMgdmFsdWUKK0ZST00KKyAgICBwZ19s YW5ndWFnZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL2dldF9vaWQu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvOS4xX3BsdXMvZ2V0X29pZC5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmJjNzZhMgotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vcGcvc3FsLzkuMV9wbHVzL2dldF9vaWQuc3FsCkBAIC0wLDAgKzEs MTcgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIucHJvbmFtZSB8fCAnKCcg fHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rpb25f aWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgbmFt ZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIGFz IGZ1bmNvd25lcgorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBw Z190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBw Z19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitKT0lOCisgICAg cGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25hbWVzcGFjZQor ICAgIEFORCBuc3AubnNwbmFtZT17eyBuc3BuYW1lfHF0TGl0ZXJhbCB9fQor V0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHR5cG5hbWUg Tk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAgICBBTkQg cHIucHJvbmFtZSA9IHt7IG5hbWV8cXRMaXRlcmFsIH19OwpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wZy9zcWwvOS4xX3BsdXMvZ2V0X291dF90eXBlcy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjFfcGx1cy9nZXRfb3V0X3R5cGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi42NGExMTg3Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9w Zy9zcWwvOS4xX3BsdXMvZ2V0X291dF90eXBlcy5zcWwKQEAgLTAsMCArMSw2 IEBACitTRUxFQ1QKKyAgICBmb3JtYXRfdHlwZShvaWQsIE5VTEwpIEFTIG91 dF9hcmdfdHlwZQorRlJPTQorICAgIHBnX3R5cGUKK1dIRVJFCisgICAgb2lk ID0ge3sgb3V0X2FyZ19vaWQgfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3Fs LzkuMV9wbHVzL2dldF9zY2hlbWEuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZ2V0 X3NjaGVtYS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMTI3ZDRiOQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVz L2dldF9zY2hlbWEuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAg bnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFjZQorV0hFUkUKKyAgICBv aWQgPSB7eyBzY2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFf cGx1cy9nZXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZ2V0X3R5cGVz LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTU1 ODJlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZ2V0X3R5 cGVzLnNxbApAQCAtMCwwICsxLDIwIEBACitTRUxFQ1QKKyAgICAqCitGUk9N CisgICAgKFNFTEVDVAorICAgICAgICBmb3JtYXRfdHlwZSh0Lm9pZCxOVUxM KSBBUyB0eXBuYW1lLAorICAgICAgICBDQVNFIFdIRU4gdHlwZWxlbSA+IDAg VEhFTiB0eXBlbGVtIEVMU0UgdC5vaWQgRU5EIGFzIGVsZW1vaWQsIHR5cGxl biwgdHlwdHlwZSwgdC5vaWQsIG5zcG5hbWUsCisgICAgICAgIChTRUxFQ1Qg Q09VTlQoMSkgRlJPTSBwZ190eXBlIHQyIFdIRVJFIHQyLnR5cG5hbWUgPSB0 LnR5cG5hbWUpID4gMSBBUyBpc2R1cAorICAgIEZST00KKyAgICAgICAgcGdf dHlwZSB0CisgICAgSk9JTgorICAgICAgICBwZ19uYW1lc3BhY2UgbnNwIE9O IHR5cG5hbWVzcGFjZT1uc3Aub2lkCisgICAgV0hFUkUKKyAgICAgICAgKE5P VCAodHlwbmFtZSA9ICd1bmtub3duJyBBTkQgbnNwbmFtZSA9ICdwZ19jYXRh bG9nJykpCisgICAgQU5ECisgICAgICAgICgKKyAgICAgICAgICAgIHR5cHR5 cGUgSU4gKCdiJywgJ2MnLCAnZCcsICdlJywgJ3AnLCAncicpCisgICAgICAg ICAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCdhbnknLCAndHJpZ2dlcicsICds YW5ndWFnZV9oYW5kbGVyJywgJ2V2ZW50X3RyaWdnZXInKQorICAgICAgICAp CisgICAgKSBBUyBkdW1teQorT1JERVIgQlkgbnNwbmFtZSA8PiAncGdfY2F0 YWxvZycsIG5zcG5hbWUgPD4gJ3B1YmxpYycsIG5zcG5hbWUsIDE7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9ub2RlLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9w bHVzL25vZGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmJiNmVjOWQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1 cy9ub2RlLnNxbApAQCAtMCwwICsxLDE3IEBACitTRUxFQ1QKKyAgICBwci5v aWQsIHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cu cGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAn JykgfHwgJyknIGFzIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJi eWlkKHByb293bmVyKSBhcyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uCitGUk9N CisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5 cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBP TiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rl c2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5j bGFzc29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwcm9p c2FnZyA9IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19 OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2 ZW50X3RyaWdnZXInKQorT1JERVIgQlkKKyAgICBwcm9uYW1lOwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi45ZThhOGJhCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9z cWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSwzMSBAQAor U0VMRUNUCisgICAgcHIub2lkLCBwci54bWluLCBwci4qLCBwci5wcm9zcmMg QVMgcHJvc3JjX2MsCisgICAgcHIucHJvbmFtZSBBUyBuYW1lLCBwZ19nZXRf ZnVuY3Rpb25fcmVzdWx0KHByLm9pZCkgQVMgcHJvcmV0dHlwZW5hbWUsCisg ICAgdHlwbnMubnNwbmFtZSBBUyB0eXBuc3AsIGxhbm5hbWUsIHByb2FyZ25h bWVzLCBvaWR2ZWN0b3J0eXBlcyhwcm9hcmd0eXBlcykgQVMgcHJvYXJndHlw ZW5hbWVzLAorICAgIHBnX2dldF9leHByKHByb2FyZ2RlZmF1bHRzLCAncGdf Y2F0YWxvZy5wZ19jbGFzcyc6OnJlZ2NsYXNzKSBBUyBwcm9hcmdkZWZhdWx0 dmFscywKKyAgICBwcm9uYXJnZGVmYXVsdHMsIHByb2NvbmZpZywgcGdfZ2V0 X3VzZXJieWlkKHByb293bmVyKSBBUyBmdW5jb3duZXIsIGRlc2NyaXB0aW9u LAorICAgIChTRUxFQ1QKKyAgICAgICAgYXJyYXlfYWdnKHByb3ZpZGVyIHx8 ICc9JyB8fCBsYWJlbCkKKyAgICBGUk9NCisgICAgICAgIHBnX3NlY2xhYmVs IHNsMQorICAgIFdIRVJFCisgICAgICAgIHNsMS5vYmpvaWQ9cHIub2lkKSBB UyBzZWNsYWJlbHMKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAg cGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAg cGdfbmFtZXNwYWNlIHR5cG5zIE9OIHR5cG5zLm9pZD10eXAudHlwbmFtZXNw YWNlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJv bGFuZworTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVz IE9OIChkZXMub2Jqb2lkPXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19w cm9jJzo6cmVnY2xhc3MpCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UK KyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFO RCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicp Cit7JSBpZiBmbmlkICV9CisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19Ojpv aWQKK3slIGVuZGlmICV9CitPUkRFUiBCWQorICAgIHByb25hbWU7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BnL3NxbC85LjFfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4x X3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5hZjBmMjhlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4x X3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDEwNSBAQAoreyUgaW1wb3J0 ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFC RUwgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2Uu bWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1 bmN0aW9ucy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9eyUgaWYg ZGF0YSAlfQoreyUgc2V0IG5hbWUgPSBvX2RhdGEubmFtZSAlfQoreyUgaWYg ZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUg JX0KK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJv bmFtZXNwYWNlLCBvX2RhdGEubmFtZSkgfX0oe3tvX2RhdGEucHJvYXJndHlw ZW5hbWVzIH19KQorICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0 YS5uYW1lKSB9fTsKK3slIHNldCBuYW1lID0gZGF0YS5uYW1lICV9Cit7JSBl bmRpZiAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5nZV9mdW5j ICAlfQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB7eyBjb25ufHF0 SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oeyUgaWYgZGF0 YS5hcmd1bWVudHMgJX0KK3slIGZvciBwIGluIGRhdGEuYXJndW1lbnRzICV9 eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fSB7JSBlbmRpZiAlfXsl IGlmIHAuYXJnbmFtZSAlfXt7IGNvbm58cXRJZGVudChwLmFyZ25hbWUpIH19 IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3twLmFyZ3R5cGV9fXsl IGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJn ZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSwg eyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CispCisg ICAgUkVUVVJOUyB7eyBvX2RhdGEucHJvcmV0dHlwZW5hbWUgfX0KK3slIGlm ICdsYW5uYW1lJyBpbiBkYXRhICV9CisgICAgTEFOR1VBR0Uge3sgZGF0YS5s YW5uYW1lfHF0TGl0ZXJhbCB9fXslIGVsc2UgJX0KKyAgICBMQU5HVUFHRSB7 eyBvX2RhdGEubGFubmFtZXxxdExpdGVyYWwgfX0KKyAgICB7JSBlbmRpZiAl fXslIGlmICdwcm92b2xhdGlsZScgaW4gZGF0YSBhbmQgZGF0YS5wcm92b2xh dGlsZSAlfXt7IGRhdGEucHJvdm9sYXRpbGUgfX0geyUgZWxpZiAncHJvdm9s YXRpbGUnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvdm9sYXRpbGUgJX17 eyBvX2RhdGEucHJvdm9sYXRpbGUgfX17JSBlbmRpZiAlfQoreyUgaWYgKCdw cm9pc3N0cmljdCcgaW4gZGF0YSBhbmQgZGF0YS5wcm9pc3N0cmljdCkgb3Ig KCdwcm9pc3N0cmljdCcgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9pc3N0 cmljdCkgJX0gU1RSSUNUeyUgZW5kaWYgJX0KK3slIGlmICgncHJvc2VjZGVm JyBpbiBkYXRhIGFuZCBkYXRhLnByb3NlY2RlZikgb3IgKCdwcm9zZWNkZWYn IG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvc2VjZGVmKSAlfSBTRUNVUklU WSBERUZJTkVSeyUgZW5kaWYgJX0KK3slIGlmICgncHJvaXN3aW5kb3cnIGlu IGRhdGEgYW5kIGRhdGEucHJvaXN3aW5kb3cpIG9yICgncHJvaXN3aW5kb3cn IG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvaXN3aW5kb3cpICV9IFdJTkRP V3slIGVuZGlmICV9CisKKyAgICB7JSBpZiBkYXRhLnByb2Nvc3QgJX1DT1NU IHt7ZGF0YS5wcm9jb3N0fX17JSBlbGlmIG9fZGF0YS5wcm9jb3N0ICV9Q09T VCB7e29fZGF0YS5wcm9jb3N0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEucHJv cm93cyAlfQorCisgICAgUk9XUyB7e2RhdGEucHJvcm93c319eyUgZWxpZiBv X2RhdGEucHJvcm93cyAlfVJPV1Mge3tvX2RhdGEucHJvcm93c319eyVlbmRp ZiAtJX17JSBpZiBkYXRhLm1lcmdlZF92YXJpYWJsZXMgJX17JSBmb3IgdiBp biBkYXRhLm1lcmdlZF92YXJpYWJsZXMgJX0KKworICAgIFNFVCB7eyBjb25u fHF0SWRlbnQodi5uYW1lKSB9fT17eyB2LnZhbHVlfHF0TGl0ZXJhbCB9fXsl IGVuZGZvciAtJX0KKyAgICB7JSBlbmRpZiAlfQorCitBUyB7JSBpZiAncHJv YmluJyBpbiBkYXRhIG9yICdwcm9zcmNfYycgaW4gZGF0YSAlfQoreyUgaWYg J3Byb2JpbicgaW4gZGF0YSAlfXt7IGRhdGEucHJvYmlufHF0TGl0ZXJhbCB9 fXslIGVsc2UgJX17eyBvX2RhdGEucHJvYmlufHF0TGl0ZXJhbCB9fXslIGVu ZGlmICV9LCB7JSBpZiAncHJvc3JjX2MnIGluIGRhdGEgJX17eyBkYXRhLnBy b3NyY19jfHF0TGl0ZXJhbCB9fXslIGVsc2UgJX17eyBvX2RhdGEucHJvc3Jj X2N8cXRMaXRlcmFsIH19eyUgZW5kaWYgJX17JSBlbGlmICdwcm9zcmMnIGlu IGRhdGEgJX0KKyRmdW5jdGlvbiR7eyBkYXRhLnByb3NyYyB9fSRmdW5jdGlv biR7JSBlbGlmIG9fZGF0YS5sYW5uYW1lID09ICdjJyAlfQore3sgb19kYXRh LnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IG9fZGF0YS5wcm9zcmNfY3xxdExp dGVyYWwgfX17JSBlbHNlICV9CiskZnVuY3Rpb24ke3sgb19kYXRhLnByb3Ny YyB9fSRmdW5jdGlvbiR7JSBlbmRpZiAtJX07Cit7JSBlbmRpZiAtJX0KK3sl IGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNv bm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7eyBv X2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIE9XTkVSIFRPIHt7IGRh dGEuZnVuY293bmVyIH19OworeyUgZW5kaWYgLSV9Cit7IyBUaGUgU1FMIGdl bmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxlZGdlcyAjfQoreyUg aWYgZGF0YS5hY2wgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLmFjbCAl fQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuZGVsZXRlZCAlfQore3sgUFJJ VklMRUdFLlVOU0VUQUxMKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRl ZSwgbmFtZSwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5 cGVuYW1lcykgfX0KKworeyUgZW5kZm9yICV9eyUgZW5kaWYgJX0KK3slIGlm ICdjaGFuZ2VkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0 YS5hY2wuY2hhbmdlZCAlfQore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4s ICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRhLnByb25h bWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KKwore3sgUFJJ VklMRUdFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5h bWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBvX2Rh dGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQor Cit7JSBlbmRmb3IgJX17JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBk YXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuYWRkZWQgJX0K Kwore3sgUFJJVklMRUdFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBwcml2Lmdy YW50ZWUsIG5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dy YW50LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5h bWVzKSB9fQoreyUgZW5kZm9yICV9eyUgZW5kaWYgJX17JSBlbmRpZiAlfQor eyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyA9PSBGYWxzZSAlfQoreyUgaWYgZGF0 YS52YXJpYWJsZXMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLnZhcmlh YmxlcyBhbmQgZGF0YS52YXJpYWJsZXMuZGVsZXRlZHxsZW5ndGggPiAwICV9 CisKK3t7IFZBUklBQkxFLlVOU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUs IGRhdGEudmFyaWFibGVzLmRlbGV0ZWQsIG9fZGF0YS5wcm9uYW1lc3BhY2Us IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgKSB9fQoreyUgZW5kaWYgLSV9Cit7 JSBpZiAnbWVyZ2VkX3ZhcmlhYmxlcycgaW4gZGF0YSBhbmQgZGF0YS5tZXJn ZWRfdmFyaWFibGVzfGxlbmd0aCA+IDAgJX0KKwore3sgVkFSSUFCTEUuU0VU KGNvbm4sICdGVU5DVElPTicsIG5hbWUsIGRhdGEubWVyZ2VkX3ZhcmlhYmxl cywgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1l cyApIH19Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX17JSBlbmRpZiAlfQor eyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiAn ZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxs ZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVsZXRlZCAl fQore3sgU0VDTEFCRUwuVU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwg ci5wcm92aWRlciwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2Fy Z3R5cGVuYW1lcykgfX0KKworeyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0K K3slIGlmICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRk ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVk ICV9CisKK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1l LCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBvX2RhdGEucHJvbmFt ZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJl bHMgYW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3slIGZv ciByIGluIHNlY2xhYmVscy5jaGFuZ2VkICV9Cit7eyBTRUNMQUJFTC5TRVQo Y29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0 eV9sYWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5 cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfXslIGVuZGlmIC0lfQoreyUgaWYg ZGF0YS5kZXNjcmlwdGlvbiAlfQorCitDT01NRU5UIE9OIEZVTkNUSU9OIHt7 IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7 e29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgSVMge3sgZGF0YS5k ZXNjcmlwdGlvbnxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAtJX0KK3slIGlm IGRhdGEucHJvbmFtZXNwYWNlICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNv bm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7e29f ZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgU0VUIFNDSEVNQSB7eyBj b25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UpIH19OworeyUgZW5kaWYg LSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1 cy92YXJpYWJsZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvdmFyaWFibGVzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjMzYzcx Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvdmFyaWFibGVz LnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5hbWUsIHZhcnR5 cGUsIG1pbl92YWwsIG1heF92YWwsIGVudW12YWxzCitGUk9NCisgICAgcGdf c2V0dGluZ3MKK1dIRVJFCisgICAgY29udGV4dCBpbiAoJ3VzZXInLCAnc3Vw ZXJ1c2VyJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9hY2wuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wZy9zcWwvOS4yX3BsdXMvYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5hZDNlMGQxCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9w Zy9zcWwvOS4yX3BsdXMvYWNsLnNxbApAQCAtMCwwICsxLDM1IEBACitTRUxF Q1QKKyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAncHVibGljJykgQVMgZ3Jh bnRlZSwKKyAgICBnLnJvbG5hbWUgQVMgZ3JhbnRvciwgYXJyYXlfYWdnKHBy aXZpbGVnZV90eXBlKSBBUyBwcml2aWxlZ2VzLAorICAgIGFycmF5X2FnZyhp c19ncmFudGFibGUpIEFTIGdyYW50YWJsZQorRlJPTQorICAgIChTRUxFQ1QK KyAgICAgICAgZC5ncmFudGVlLCBkLmdyYW50b3IsIGQuaXNfZ3JhbnRhYmxl LAorICAgICAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAgICAgV0hF TiAnQ09OTkVDVCcgVEhFTiAnYycKKyAgICAgICAgV0hFTiAnQ1JFQVRFJyBU SEVOICdDJworICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisgICAg ICAgIFdIRU4gJ0VYRUNVVEUnIFRIRU4gJ1gnCisgICAgICAgIFdIRU4gJ0lO U0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNFUycgVEhF TiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAgICAg ICBXSEVOICdURU1QT1JBUlknIFRIRU4gJ1QnCisgICAgICAgIFdIRU4gJ1RS SUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBUSEVO ICdEJworICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAgICAg IFdIRU4gJ1VTQUdFJyBUSEVOICdVJworICAgICAgICBFTFNFICdVTktOT1dO JworICAgICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICBGUk9NCisg ICAgICAgIChTRUxFQ1QKKyAgICAgICAgICAgIChkKS5ncmFudGVlIEFTIGdy YW50ZWUsIChkKS5ncmFudG9yIEFTIGdyYW50b3IsCisgICAgICAgICAgICAo ZCkuaXNfZ3JhbnRhYmxlIEFTIGlzX2dyYW50YWJsZSwKKyAgICAgICAgICAg IChkKS5wcml2aWxlZ2VfdHlwZSBBUyBwcml2aWxlZ2VfdHlwZQorICAgICAg ICBGUk9NCisgICAgICAgICAgICAoU0VMRUNUIGFjbGV4cGxvZGUoZGIucHJv YWNsKSBBUyBkIEZST00gcGdfcHJvYyBkYgorICAgICAgICAgICAgV0hFUkUg ZGIub2lkID0ge3tmbmlkfX06Ok9JRCkgYQorICAgICAgICApIGQKKyAgICAp IGQKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9OIChk LmdyYW50b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5w Z19yb2xlcyBndCBPTiAoZC5ncmFudGVlID0gZ3Qub2lkKQorR1JPVVAgQlkg Zy5yb2xuYW1lLCBndC5yb2xuYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4y X3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2NyZWF0ZS5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzBhM2Q0Mwot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2NyZWF0ZS5zcWwK QEAgLTAsMCArMSw1NyBAQAoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25z L3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCRUwgJX0KK3slIGltcG9ydCAn bWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxF R0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy92YXJpYWJsZS5t YWNyb3MnIGFzIFZBUklBQkxFICV9Cit7JSBzZXQgaXNfY29sdW1ucyA9IFtd ICV9Cit7JSBpZiBkYXRhICV9CitDUkVBVEUgRlVOQ1RJT04ge3sgY29ubnxx dElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19KHslIGlm IGRhdGEuYXJndW1lbnRzICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFyZ3VtZW50 cyAlfXslIGlmIHAuYXJnbW9kZSAlfXt7cC5hcmdtb2RlfX0geyUgZW5kaWYg JX17JSBpZiBwLmFyZ25hbWUgJX17eyBjb25ufHF0SWRlbnQocC5hcmduYW1l KX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3twLmFyZ3R5cGV9 fXslIGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3Au YXJnZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAl fSx7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKyAg ICApCisgICAgUkVUVVJOU3slIGlmIGRhdGEucHJvcmV0c2V0ICV9IFNFVE9G eyUgZW5kaWYgJX0ge3sgY29ubnxxdFR5cGVJZGVudChkYXRhLnByb3JldHR5 cGVuYW1lKSB9fQorICAgIExBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExp dGVyYWwgfX0KKyAgICB7JSBpZiBkYXRhLnByb3ZvbGF0aWxlICV9e3sgZGF0 YS5wcm92b2xhdGlsZSB9fSB7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvbGVh a3Byb29mICV9IExFQUtQUk9PRiB7JSBlbHNlICV9IE5PVCBMRUFLUFJPT0Yg eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvaXNzdHJpY3QgJX1TVFJJQ1Qg eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvc2VjZGVmICV9U0VDVVJJVFkg REVGSU5FUiB7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9pc3dpbmRvdyAl fVdJTkRPV3slIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9jb3N0ICV9CisKKyAg ICBDT1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEu cHJvcm93cyAlfQorCisgICAgUk9XUyB7e2RhdGEucHJvcm93c319eyUgZW5k aWYgLSV9eyUgaWYgZGF0YS52YXJpYWJsZXMgJX17JSBmb3IgdiBpbiBkYXRh LnZhcmlhYmxlcyAlfQorCisgICAgU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5h bWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19eyUgZW5kZm9yICV9Cit7 JSBlbmRpZiAlfQorCitBUyB7JSBpZiBkYXRhLmxhbm5hbWUgPT0gJ2MnICV9 Cit7eyBkYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IGRhdGEucHJvc3Jj X2N8cXRMaXRlcmFsIH19Cit7JSBlbHNlICV9CiskZnVuY3Rpb24kCit7eyBk YXRhLnByb3NyYyB9fQorJGZ1bmN0aW9uJHslIGVuZGlmIC0lfTsKK3slIGlm IGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58 cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7e2Rh dGEuZnVuY19hcmdzfX0pCisgICAgT1dORVIgVE8ge3sgZGF0YS5mdW5jb3du ZXIgfX07Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuYWNsICV9Cit7JSBm b3IgcCBpbiBkYXRhLmFjbCAlfQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4s ICJGVU5DVElPTiIsIHAuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwLndpdGhvdXRf Z3JhbnQsIHAud2l0aF9ncmFudCwgZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEu ZnVuY19hcmdzKX19Cit7JSBlbmRmb3IgLSV9Cit7JSBlbmRpZiAtJX0KK3sl IGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBPTiBGVU5DVElP TiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFt ZSkgfX0oe3tkYXRhLmZ1bmNfYXJnc319KQorICAgIElTICd7eyBkYXRhLmRl c2NyaXB0aW9uIH19JzsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5zZWNs YWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2VjbGFiZWxzICV9Cit7JSBp ZiByLnNlY3VyaXR5X2xhYmVsIGFuZCByLnByb3ZpZGVyICV9CisKK3t7IFNF Q0xBQkVMLlNFVChjb25uLCAnRlVOQ1RJT04nLCBkYXRhLm5hbWUsIHIucHJv dmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIGRhdGEucHJvbmFtZXNwYWNlLCBk YXRhLmZ1bmNfYXJncykgfX0KK3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAtJX0KZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcv c3FsLzkuMl9wbHVzL2RlbGV0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9kZWxl dGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0 NmJlYzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9kZWxl dGUuc3FsCkBAIC0wLDAgKzEsMjEgQEAKK3slIGlmIHNjaWQgYW5kIGZuaWQg JX0KK1NFTEVDVAorICAgIHByLnByb25hbWUgYXMgbmFtZSwgJygnIHx8IENP QUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50 aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIGZ1bmNfYXJn cywKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgor ICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgor ICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3Bh Y2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9u YW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9U IElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAgICBBTkQgcHIu b2lkID0ge3tmbmlkfX07Cit7JSBlbmRpZiAlfQorCit7JSBpZiBuYW1lICV9 CitEUk9QIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChuc3BuYW1lLCBuYW1l KSB9fXt7ZnVuY19hcmdzfX17JSBpZiBjYXNjYWRlICV9IENBU0NBREV7JSBl bmRpZiAlfTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJf cGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9nZXRf ZGVmaW5pdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uNTg5ZWNjZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9w bHVzL2dldF9kZWZpbml0aW9uLnNxbApAQCAtMCwwICsxLDExIEBACitTRUxF Q1QKKyAgICBwZ19nZXRfZnVuY3Rpb25kZWYoe3tmbmlkfX06Om9pZCkgQVMg ZnVuY19kZWYsCisgICAgbnNwbmFtZSB8fCAnLicgfHwgcHIucHJvbmFtZSB8 fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZy5wZ19nZXRfZnVuY3Rpb25f aWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgbmFt ZQorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ19uYW1lc3Bh Y2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCitXSEVSRQorICAg IHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tz Y2lkfX06Om9pZAorICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTo6b2lkOwpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BnL3NxbC85LjJfcGx1cy9nZXRfbGFuZ3VhZ2VzLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODFkZGZiCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwKQEAg LTAsMCArMSw0IEBACitTRUxFQ1QKKyAgICBsYW5uYW1lIGFzIGxhYmVsLCBs YW5uYW1lIGFzIHZhbHVlCitGUk9NCisgICAgcGdfbGFuZ3VhZ2U7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9nZXRfb2lkLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzku Ml9wbHVzL2dldF9vaWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjJiYzc2YTIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjJfcGx1cy9nZXRfb2lkLnNxbApAQCAtMCwwICsxLDE3IEBACitTRUxFQ1QK KyAgICBwci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBn X2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3Vt ZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIG5hbWUsCisgICAgbGFubmFt ZSwgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBhcyBmdW5jb3duZXIKK0ZS T00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04g dHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5n IE9OIGxuZy5vaWQ9cHJvbGFuZworSk9JTgorICAgIHBnX25hbWVzcGFjZSBu c3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKKyAgICBBTkQgbnNwLm5z cG5hbWU9e3sgbnNwbmFtZXxxdExpdGVyYWwgfX0KK1dIRVJFCisgICAgcHJv aXNhZ2cgPSBGQUxTRQorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdn ZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHByLnByb25hbWUgPSB7 eyBuYW1lfHF0TGl0ZXJhbCB9fTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9w bHVzL2dldF9vdXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvZ2V0X291 dF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNjRhMTE4NwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVz L2dldF9vdXRfdHlwZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisg ICAgZm9ybWF0X3R5cGUob2lkLCBOVUxMKSBBUyBvdXRfYXJnX3R5cGUKK0ZS T00KKyAgICBwZ190eXBlCitXSEVSRQorICAgIG9pZCA9IHt7IG91dF9hcmdf b2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9nZXRf c2NoZW1hLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2dldF9zY2hlbWEuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyN2Q0YjkKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9nZXRfc2NoZW1hLnNx bApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5zcG5hbWUKK0ZST00K KyAgICBwZ19uYW1lc3BhY2UKK1dIRVJFCisgICAgb2lkID0ge3sgc2NpZCB9 fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvZ2V0X3R5cGVz LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vcGcvc3FsLzkuMl9wbHVzL2dldF90eXBlcy5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE1NTgyZQotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2dldF90eXBlcy5zcWwKQEAgLTAs MCArMSwyMCBAQAorU0VMRUNUCisgICAgKgorRlJPTQorICAgIChTRUxFQ1QK KyAgICAgICAgZm9ybWF0X3R5cGUodC5vaWQsTlVMTCkgQVMgdHlwbmFtZSwK KyAgICAgICAgQ0FTRSBXSEVOIHR5cGVsZW0gPiAwIFRIRU4gdHlwZWxlbSBF TFNFIHQub2lkIEVORCBhcyBlbGVtb2lkLCB0eXBsZW4sIHR5cHR5cGUsIHQu b2lkLCBuc3BuYW1lLAorICAgICAgICAoU0VMRUNUIENPVU5UKDEpIEZST00g cGdfdHlwZSB0MiBXSEVSRSB0Mi50eXBuYW1lID0gdC50eXBuYW1lKSA+IDEg QVMgaXNkdXAKKyAgICBGUk9NCisgICAgICAgIHBnX3R5cGUgdAorICAgIEpP SU4KKyAgICAgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiB0eXBuYW1lc3BhY2U9 bnNwLm9pZAorICAgIFdIRVJFCisgICAgICAgIChOT1QgKHR5cG5hbWUgPSAn dW5rbm93bicgQU5EIG5zcG5hbWUgPSAncGdfY2F0YWxvZycpKQorICAgIEFO RAorICAgICAgICAoCisgICAgICAgICAgICB0eXB0eXBlIElOICgnYicsICdj JywgJ2QnLCAnZScsICdwJywgJ3InKQorICAgICAgICAgICAgQU5EIHR5cG5h bWUgTk9UIElOICgnYW55JywgJ3RyaWdnZXInLCAnbGFuZ3VhZ2VfaGFuZGxl cicsICdldmVudF90cmlnZ2VyJykKKyAgICAgICAgKQorICAgICkgQVMgZHVt bXkKK09SREVSIEJZIG5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnLCBuc3BuYW1l IDw+ICdwdWJsaWMnLCBuc3BuYW1lLCAxOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwv OS4yX3BsdXMvbm9kZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9ub2RlLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjZlYzlkCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvbm9kZS5zcWwKQEAg LTAsMCArMSwxNyBAQAorU0VMRUNUCisgICAgcHIub2lkLCBwci5wcm9uYW1l IHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nLnBnX2dldF9mdW5jdGlv bl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBhcyBu YW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikg YXMgZnVuY293bmVyLCBkZXNjcmlwdGlvbgorRlJPTQorICAgIHBnX3Byb2Mg cHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5 cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9s YW5nCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMg T04gKGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX3By b2MnOjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQor ICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5E IHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykK K09SREVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzku Ml9wbHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvcHJvcGVy dGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u ZmY3ODI5OAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL3By b3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsMzEgQEAKK1NFTEVDVAorICAgIHBy Lm9pZCwgcHIueG1pbiwgcHIuKiwgcHIucHJvc3JjIEFTIHByb3NyY19jLAor ICAgIHByLnByb25hbWUgQVMgbmFtZSwgcGdfZ2V0X2Z1bmN0aW9uX3Jlc3Vs dChwci5vaWQpIEFTIHByb3JldHR5cGVuYW1lLAorICAgIHR5cG5zLm5zcG5h bWUgQVMgdHlwbnNwLCBsYW5uYW1lLCBwcm9hcmduYW1lcywgb2lkdmVjdG9y dHlwZXMocHJvYXJndHlwZXMpIEFTIHByb2FyZ3R5cGVuYW1lcywKKyAgICBw Z19nZXRfZXhwcihwcm9hcmdkZWZhdWx0cywgJ3BnX2NhdGFsb2cucGdfY2xh c3MnOjpyZWdjbGFzcykgQVMgcHJvYXJnZGVmYXVsdHZhbHMsCisgICAgcHJv bmFyZ2RlZmF1bHRzLCBwcm9jb25maWcsIHBnX2dldF91c2VyYnlpZChwcm9v d25lcikgQVMgZnVuY293bmVyLCBkZXNjcmlwdGlvbiwKKyAgICAoU0VMRUNU CisgICAgICAgIGFycmF5X2FnZyhwcm92aWRlciB8fCAnPScgfHwgbGFiZWwp CisgICAgRlJPTQorICAgICAgICBwZ19zaHNlY2xhYmVsIHNsMQorICAgIFdI RVJFCisgICAgICAgIHNsMS5vYmpvaWQ9cHIub2lkKSBBUyBzZWNsYWJlbHMK K0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAg T04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbmFtZXNwYWNl IHR5cG5zIE9OIHR5cG5zLm9pZD10eXAudHlwbmFtZXNwYWNlCitKT0lOCisg ICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworTEVGVCBP VVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jq b2lkPXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xh c3MpCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJv bmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5P VCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCit7JSBpZiBmbmlk ICV9CisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OjpvaWQKK3slIGVuZGlm ICV9CitPUkRFUiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3Nx bC85LjJfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvdXBkYXRl LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjYw NTkwCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvdXBkYXRl LnNxbApAQCAtMCwwICsxLDExNCBAQAoreyUgaW1wb3J0ICdtYWNyb3MvZnVu Y3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCRUwgJX0KK3slIGlt cG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQ UklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy92YXJp YWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9eyUgaWYgZGF0YSAlfQoreyUg c2V0IG5hbWUgPSBvX2RhdGEubmFtZSAlfQoreyUgaWYgZGF0YS5uYW1lICV9 Cit7JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FMVEVSIEZV TkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBv X2RhdGEubmFtZSkgfX0oe3tvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQor ICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsK K3slIHNldCBuYW1lID0gZGF0YS5uYW1lICV9Cit7JSBlbmRpZiAlfQoreyUg ZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5nZV9mdW5jICAlfQorCitDUkVB VEUgT1IgUkVQTEFDRSBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRh LnByb25hbWVzcGFjZSwgbmFtZSkgfX0oeyUgaWYgZGF0YS5hcmd1bWVudHMg JX0KK3slIGZvciBwIGluIGRhdGEuYXJndW1lbnRzICV9eyUgaWYgcC5hcmdt b2RlICV9e3twLmFyZ21vZGV9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFt ZSAlfXt7Y29ubnxxdElkZW50KHAuYXJnbmFtZSl9fSB7JSBlbmRpZiAlfXsl IGlmIHAuYXJndHlwZSAlfXt7cC5hcmd0eXBlfX17JSBlbmRpZiAlfXslIGlm IHAuYXJnZGVmdmFsICV9IERFRkFVTFQge3twLmFyZ2RlZnZhbH19eyUgZW5k aWYgJX0KK3slIGlmIG5vdCBsb29wLmxhc3QgJX0sIHslIGVuZGlmICV9Cit7 JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorKQorICAgIFJFVFVSTlMge3sg b19kYXRhLnByb3JldHR5cGVuYW1lIH19Cit7JSBpZiAnbGFubmFtZScgaW4g ZGF0YSAlfQorICAgIExBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExpdGVy YWwgfX17JSBlbHNlICV9CisgICAgTEFOR1VBR0Uge3sgb19kYXRhLmxhbm5h bWV8cXRMaXRlcmFsIH19CisgICAgeyUgZW5kaWYgJX17JSBpZiAncHJvdm9s YXRpbGUnIGluIGRhdGEgYW5kIGRhdGEucHJvdm9sYXRpbGUgJX17eyBkYXRh LnByb3ZvbGF0aWxlIH19IHslIGVsaWYgJ3Byb3ZvbGF0aWxlJyBub3QgaW4g ZGF0YSBhbmQgb19kYXRhLnByb3ZvbGF0aWxlICV9e3sgb19kYXRhLnByb3Zv bGF0aWxlIH19eyUgZW5kaWYgJX0KK3slIGlmICgncHJvbGVha3Byb29mJyBp biBkYXRhIGFuZCBkYXRhLnByb2xlYWtwcm9vZikgb3IgKCdwcm9sZWFrcHJv b2YnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvbGVha3Byb29mKSAlfSBM RUFLUFJPT0Z7JSBlbGlmICdwcm9sZWFrcHJvb2YnIGluIGRhdGEgYW5kIG5v dCBkYXRhLnByb2xlYWtwcm9vZiAlfSBOT1QgTEVBS1BST09GeyUgZW5kaWYg JX0KK3slIGlmICgncHJvaXNzdHJpY3QnIGluIGRhdGEgYW5kIGRhdGEucHJv aXNzdHJpY3QpIG9yICgncHJvaXNzdHJpY3QnIG5vdCBpbiBkYXRhIGFuZCBv X2RhdGEucHJvaXNzdHJpY3QpICV9IFNUUklDVHslIGVuZGlmICV9Cit7JSBp ZiAoJ3Byb3NlY2RlZicgaW4gZGF0YSBhbmQgZGF0YS5wcm9zZWNkZWYpIG9y ICgncHJvc2VjZGVmJyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb3NlY2Rl ZikgJX0gU0VDVVJJVFkgREVGSU5FUnslIGVuZGlmICV9Cit7JSBpZiAoJ3By b2lzd2luZG93JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lzd2luZG93KSBvciAo J3Byb2lzd2luZG93JyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2lzd2lu ZG93KSAlfSBXSU5ET1d7JSBlbmRpZiAlfQorCisgICAgeyUgaWYgZGF0YS5w cm9jb3N0ICV9Q09TVCB7e2RhdGEucHJvY29zdH19eyUgZWxpZiBvX2RhdGEu cHJvY29zdCAlfUNPU1Qge3tvX2RhdGEucHJvY29zdH19eyUgZW5kaWYgJX17 JSBpZiBkYXRhLnByb3Jvd3MgJX0KKworICAgIFJPV1Mge3tkYXRhLnByb3Jv d3N9fXslIGVsaWYgb19kYXRhLnByb3Jvd3MgJX1ST1dTIHt7b19kYXRhLnBy b3Jvd3N9fXslIGVuZGlmIC0lfXslIGlmIGRhdGEubWVyZ2VkX3ZhcmlhYmxl cyAlfXslIGZvciB2IGluIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfQorCisg ICAgU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8 cXRMaXRlcmFsIH19eyUgZW5kZm9yIC0lfQorICAgIHslIGVuZGlmICV9CisK K0FTIHslIGlmICdwcm9iaW4nIGluIGRhdGEgb3IgJ3Byb3NyY19jJyBpbiBk YXRhICV9Cit7JSBpZiAncHJvYmluJyBpbiBkYXRhICV9e3sgZGF0YS5wcm9i aW58cXRMaXRlcmFsIH19eyUgZWxzZSAlfXt7IG9fZGF0YS5wcm9iaW58cXRM aXRlcmFsIH19eyUgZW5kaWYgJX0sIHslIGlmICdwcm9zcmNfYycgaW4gZGF0 YSAlfXt7IGRhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZWxzZSAlfXt7 IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17JSBlbmRpZiAlfXslIGVs aWYgJ3Byb3NyYycgaW4gZGF0YSAlfQorJGZ1bmN0aW9uJHt7IGRhdGEucHJv c3JjIH19JGZ1bmN0aW9uJHslIGVsaWYgb19kYXRhLmxhbm5hbWUgPT0gJ2Mn ICV9Cit7eyBvX2RhdGEucHJvYmlufHF0TGl0ZXJhbCB9fSwge3sgb19kYXRh LnByb3NyY19jfHF0TGl0ZXJhbCB9fXslIGVsc2UgJX0KKyRmdW5jdGlvbiR7 eyBvX2RhdGEucHJvc3JjIH19JGZ1bmN0aW9uJHslIGVuZGlmIC0lfTsKK3sl IGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLmZ1bmNvd25lciAlfQorCitBTFRF UiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFj ZSwgbmFtZSkgfX0oe3sgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAg ICBPV05FUiBUTyB7eyBkYXRhLmZ1bmNvd25lciB9fTsKK3slIGVuZGlmIC0l fQoreyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBjaGFuZ2UgcHJp dmlsZWRnZXMgI30KK3slIGlmIGRhdGEuYWNsICV9Cit7JSBpZiAnZGVsZXRl ZCcgaW4gZGF0YS5hY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNsLmRl bGV0ZWQgJX0KKwore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdGVU5D VElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRhLnByb25hbWVzcGFj ZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgLSV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gZGF0YS5hY2wgJX0K K3slIGZvciBwcml2IGluIGRhdGEuYWNsLmNoYW5nZWQgJX0KKwore3sgUFJJ VklMRUdFLlVOU0VUQUxMKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRl ZSwgbmFtZSwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5 cGVuYW1lcykgfX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAnRlVOQ1RJ T04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIHByaXYud2l0aG91dF9ncmFudCwg cHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEu cHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAt JX0KK3slIGlmICdhZGRlZCcgaW4gZGF0YS5hY2wgJX0KK3slIGZvciBwcml2 IGluIGRhdGEuYWNsLmFkZGVkICV9CisKK3t7IFBSSVZJTEVHRS5TRVQoY29u biwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhv dXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFj ZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFuZ2Vf ZnVuYyA9PSBGYWxzZSAlfQoreyUgaWYgZGF0YS52YXJpYWJsZXMgJX0KK3sl IGlmICdkZWxldGVkJyBpbiBkYXRhLnZhcmlhYmxlcyBhbmQgZGF0YS52YXJp YWJsZXMuZGVsZXRlZHxsZW5ndGggPiAwICV9CisKK3t7IFZBUklBQkxFLlVO U0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIGRhdGEudmFyaWFibGVzLmRl bGV0ZWQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBl bmFtZXMgKSB9fQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnbWVyZ2VkX3Zhcmlh YmxlcycgaW4gZGF0YSBhbmQgZGF0YS5tZXJnZWRfdmFyaWFibGVzfGxlbmd0 aCA+IDAgJX0KKwore3sgVkFSSUFCTEUuU0VUKGNvbm4sICdGVU5DVElPTics IG5hbWUsIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcywgb19kYXRhLnByb25hbWVz cGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyApIH19Cit7JSBlbmRpZiAt JX0KK3slIGVuZGlmIC0lfQoreyUgZW5kaWYgLSV9Cit7JSBzZXQgc2VjbGFi ZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBz ZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVkfGxlbmd0aCA+IDAgJX0K K3slIGZvciByIGluIHNlY2xhYmVscy5kZWxldGVkICV9CisKK3t7IFNFQ0xB QkVMLlVOU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIHIucHJvdmlkZXIs IG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMp IH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2FkZGVk JyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxsZW5ndGggPiAw ICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0KKwore3sgU0VD TEFCRUwuU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIHIucHJvdmlkZXIs IHIuc2VjdXJpdHlfbGFiZWwsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0 YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlm IC0lfQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFi ZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFi ZWxzLmNoYW5nZWQgJX0KKwore3sgU0VDTEFCRUwuU0VUKGNvbm4sICdGVU5D VElPTicsIG5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5kZXNj cmlwdGlvbiAlfQorCitDT01NRU5UIE9OIEZVTkNUSU9OIHt7IGNvbm58cXRJ ZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7eyBvX2RhdGEu cHJvYXJndHlwZW5hbWVzIH19KQorICAgIElTIHt7IGRhdGEuZGVzY3JpcHRp b258cXRMaXRlcmFsIH19OworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLnBy b25hbWVzcGFjZSAlfQorCitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRl bnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oe3sgb19kYXRhLnBy b2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBTRVQgU0NIRU1BIHt7IGNvbm58cXRJ ZGVudChkYXRhLnByb25hbWVzcGFjZSkgfX07Cit7JSBlbmRpZiAtJX0KKwor eyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL3Zhcmlh Ymxlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy92YXJpYWJsZXMuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMzNjNzEKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy92YXJpYWJsZXMuc3FsCkBA IC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgbmFtZSwgdmFydHlwZSwgbWlu X3ZhbCwgbWF4X3ZhbCwgZW51bXZhbHMKK0ZST00KKyAgICBwZ19zZXR0aW5n cworV0hFUkUKKyAgICBjb250ZXh0IGluICgndXNlcicsICdzdXBlcnVzZXIn KTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL2FjbC5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3Nx bC85LjVfcGx1cy9hY2wuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmFkM2UwZDEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjVfcGx1cy9hY2wuc3FsCkBAIC0wLDAgKzEsMzUgQEAKK1NFTEVDVAorICAg IENPQUxFU0NFKGd0LnJvbG5hbWUsICdwdWJsaWMnKSBBUyBncmFudGVlLAor ICAgIGcucm9sbmFtZSBBUyBncmFudG9yLCBhcnJheV9hZ2cocHJpdmlsZWdl X3R5cGUpIEFTIHByaXZpbGVnZXMsCisgICAgYXJyYXlfYWdnKGlzX2dyYW50 YWJsZSkgQVMgZ3JhbnRhYmxlCitGUk9NCisgICAgKFNFTEVDVAorICAgICAg ICBkLmdyYW50ZWUsIGQuZ3JhbnRvciwgZC5pc19ncmFudGFibGUsCisgICAg ICAgIENBU0UgZC5wcml2aWxlZ2VfdHlwZQorICAgICAgICBXSEVOICdDT05O RUNUJyBUSEVOICdjJworICAgICAgICBXSEVOICdDUkVBVEUnIFRIRU4gJ0Mn CisgICAgICAgIFdIRU4gJ0RFTEVURScgVEhFTiAnZCcKKyAgICAgICAgV0hF TiAnRVhFQ1VURScgVEhFTiAnWCcKKyAgICAgICAgV0hFTiAnSU5TRVJUJyBU SEVOICdhJworICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4Jwor ICAgICAgICBXSEVOICdTRUxFQ1QnIFRIRU4gJ3InCisgICAgICAgIFdIRU4g J1RFTVBPUkFSWScgVEhFTiAnVCcKKyAgICAgICAgV0hFTiAnVFJJR0dFUicg VEhFTiAndCcKKyAgICAgICAgV0hFTiAnVFJVTkNBVEUnIFRIRU4gJ0QnCisg ICAgICAgIFdIRU4gJ1VQREFURScgVEhFTiAndycKKyAgICAgICAgV0hFTiAn VVNBR0UnIFRIRU4gJ1UnCisgICAgICAgIEVMU0UgJ1VOS05PV04nCisgICAg ICAgIEVORCBBUyBwcml2aWxlZ2VfdHlwZQorICAgIEZST00KKyAgICAgICAg KFNFTEVDVAorICAgICAgICAgICAgKGQpLmdyYW50ZWUgQVMgZ3JhbnRlZSwg KGQpLmdyYW50b3IgQVMgZ3JhbnRvciwKKyAgICAgICAgICAgIChkKS5pc19n cmFudGFibGUgQVMgaXNfZ3JhbnRhYmxlLAorICAgICAgICAgICAgKGQpLnBy aXZpbGVnZV90eXBlIEFTIHByaXZpbGVnZV90eXBlCisgICAgICAgIEZST00K KyAgICAgICAgICAgIChTRUxFQ1QgYWNsZXhwbG9kZShkYi5wcm9hY2wpIEFT IGQgRlJPTSBwZ19wcm9jIGRiCisgICAgICAgICAgICBXSEVSRSBkYi5vaWQg PSB7e2ZuaWR9fTo6T0lEKSBhCisgICAgICAgICkgZAorICAgICkgZAorICAg IExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRv ciA9IGcub2lkKQorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVz IGd0IE9OIChkLmdyYW50ZWUgPSBndC5vaWQpCitHUk9VUCBCWSBnLnJvbG5h bWUsIGd0LnJvbG5hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9j cmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvY3JlYXRlLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YmMwMWMyCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvY3JlYXRlLnNxbApAQCAtMCww ICsxLDU3IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJp dHkubWFjcm9zJyBhcyBTRUNMQUJFTCAlfQoreyUgaW1wb3J0ICdtYWNyb3Mv ZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQor eyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ZhcmlhYmxlLm1hY3Jvcycg YXMgVkFSSUFCTEUgJX0KK3slIHNldCBpc19jb2x1bW5zID0gW10gJX0KK3sl IGlmIGRhdGEgJX0KK0NSRUFURSBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQo ZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0oeyUgaWYgZGF0YQor LmFyZ3VtZW50cyAlfQoreyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVudHMgJX17 JSBpZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9kZX19IHslIGVuZGlmICV9eyUg aWYgcC5hcmduYW1lICV9e3sgY29ubnxxdElkZW50KHAuYXJnbmFtZSl9fXsl IGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3twLmFyZ3R5cGV9fXslIGVu ZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVm dmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSx7JSBl bmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKyAgICApCisg ICAgUkVUVVJOU3slIGlmIGRhdGEucHJvcmV0c2V0ICV9IFNFVE9GeyUgZW5k aWYgJX0ge3sgY29ubnxxdFR5cGVJZGVudChkYXRhLnByb3JldHR5cGVuYW1l KSB9fQorICAgIExBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExpdGVyYWwg fX0KKyAgICB7JSBpZiBkYXRhLnByb3ZvbGF0aWxlICV9e3sgZGF0YS5wcm92 b2xhdGlsZSB9fSB7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvbGVha3Byb29m ICV9IExFQUtQUk9PRiB7JSBlbHNlICV9IE5PVCBMRUFLUFJPT0YgeyUgZW5k aWYgJX0KK3slIGlmIGRhdGEucHJvaXNzdHJpY3QgJX1TVFJJQ1QgeyUgZW5k aWYgJX0KK3slIGlmIGRhdGEucHJvc2VjZGVmICV9U0VDVVJJVFkgREVGSU5F UiB7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9pc3dpbmRvdyAlfVdJTkRP V3slIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9jb3N0ICV9CisKKyAgICBDT1NU IHt7ZGF0YS5wcm9jb3N0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvcm93 cyAlfQorCisgICAgUk9XUyB7e2RhdGEucHJvcm93c319eyUgZW5kaWYgLSV9 eyUgaWYgZGF0YS52YXJpYWJsZXMgJX17JSBmb3IgdiBpbiBkYXRhLnZhcmlh YmxlcyAlfQorCisgICAgU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19 PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19eyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAlfQorCitBUyB7JSBpZiBkYXRhLmxhbm5hbWUgPT0gJ2MnICV9Cit7eyBk YXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IGRhdGEucHJvc3JjX2N8cXRM aXRlcmFsIH19Cit7JSBlbHNlICV9CiskZnVuY3Rpb24kCit7eyBkYXRhLnBy b3NyYyB9fQorJGZ1bmN0aW9uJHslIGVuZGlmIC0lfTsKK3slIGlmIGRhdGEu ZnVuY293bmVyICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVu dChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7e2RhdGEuZnVu Y19hcmdzfX0pCisgICAgT1dORVIgVE8ge3sgZGF0YS5mdW5jb3duZXIgfX07 Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuYWNsICV9Cit7JSBmb3IgcCBp biBkYXRhLmFjbCAlfQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICJGVU5D VElPTiIsIHAuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwLndpdGhvdXRfZ3JhbnQs IHAud2l0aF9ncmFudCwgZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19h cmdzKX19Cit7JSBlbmRmb3IgJX17JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5k ZXNjcmlwdGlvbiAlfQorCitDT01NRU5UIE9OIEZVTkNUSU9OIHt7IGNvbm58 cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7e2Rh dGEuZnVuY19hcmdzfX0pCisgICAgSVMgJ3t7IGRhdGEuZGVzY3JpcHRpb24g fX0nOworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLnNlY2xhYmVscyAlfQor eyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmIHIuc2VjdXJp dHlfbGFiZWwgYW5kIHIucHJvdmlkZXIgJX0KKwore3sgU0VDTEFCRUwuU0VU KGNvbm4sICdGVU5DVElPTicsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5z ZWN1cml0eV9sYWJlbCwgZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19h cmdzKSB9fQoreyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYg LSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1 cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZGVsZXRlLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDZiZWMxCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZGVsZXRlLnNxbApAQCAt MCwwICsxLDIxIEBACit7JSBpZiBzY2lkIGFuZCBmbmlkICV9CitTRUxFQ1QK KyAgICBwci5wcm9uYW1lIGFzIG5hbWUsICcoJyB8fCBDT0FMRVNDRShwZ19j YXRhbG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVu dHMocHIub2lkKSwgJycpIHx8ICcpJyBhcyBmdW5jX2FyZ3MsCisgICAgbnNw bmFtZQorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBl IHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19uYW1l c3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCitXSEVSRQor ICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0g e3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdn ZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHByLm9pZCA9IHt7Zm5p ZH19OworeyUgZW5kaWYgJX0KKworeyUgaWYgbmFtZSAlfQorRFJPUCBGVU5D VElPTiB7eyBjb25ufHF0SWRlbnQobnNwbmFtZSwgbmFtZSkgfX17e2Z1bmNf YXJnc319eyUgaWYgY2FzY2FkZSAlfSBDQVNDQURFeyUgZW5kaWYgJX07Cit7 JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0X2Rl ZmluaXRpb24uc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0X2RlZmluaXRpb24u c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4OWVj Y2UKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9nZXRfZGVm aW5pdGlvbi5zcWwKQEAgLTAsMCArMSwxMSBAQAorU0VMRUNUCisgICAgcGdf Z2V0X2Z1bmN0aW9uZGVmKHt7Zm5pZH19OjpvaWQpIEFTIGZ1bmNfZGVmLAor ICAgIG5zcG5hbWUgfHwgJy4nIHx8IHByLnByb25hbWUgfHwgJygnIHx8IENP QUxFU0NFKHBnX2NhdGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2Fy Z3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIG5hbWUKK0ZST00KKyAg ICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBu c3Aub2lkPXByLnByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9 IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQK KyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9pZDsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuNV9wbHVzL2dldF9sYW5ndWFnZXMuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41 X3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uZjgxZGRmYgotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcv c3FsLzkuNV9wbHVzL2dldF9sYW5ndWFnZXMuc3FsCkBAIC0wLDAgKzEsNCBA QAorU0VMRUNUCisgICAgbGFubmFtZSBhcyBsYWJlbCwgbGFubmFtZSBhcyB2 YWx1ZQorRlJPTQorICAgIHBnX2xhbmd1YWdlOwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9z cWwvOS41X3BsdXMvZ2V0X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9nZXRf b2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y YmM3NmEyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0 X29pZC5zcWwKQEAgLTAsMCArMSwxNyBAQAorU0VMRUNUCisgICAgcHIub2lk LCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisg ICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lk KSwgJycpIHx8ICcpJyBhcyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91 c2VyYnlpZChwcm9vd25lcikgYXMgZnVuY293bmVyCitGUk9NCisgICAgcGdf cHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJv cmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lk PXByb2xhbmcKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5v aWQ9cHIucHJvbmFtZXNwYWNlCisgICAgQU5EIG5zcC5uc3BuYW1lPXt7IG5z cG5hbWV8cXRMaXRlcmFsIH19CitXSEVSRQorICAgIHByb2lzYWdnID0gRkFM U0UKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50 X3RyaWdnZXInKQorICAgIEFORCBwci5wcm9uYW1lID0ge3sgbmFtZXxxdExp dGVyYWwgfX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9nZXRfb3V0 X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL2dldF9vdXRfdHlwZXMuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0YTExODcK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9nZXRfb3V0X3R5 cGVzLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIGZvcm1hdF90 eXBlKG9pZCwgTlVMTCkgQVMgb3V0X2FyZ190eXBlCitGUk9NCisgICAgcGdf dHlwZQorV0hFUkUKKyAgICBvaWQgPSB7eyBvdXRfYXJnX29pZCB9fTo6b2lk OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0X3NjaGVtYS5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BnL3NxbC85LjVfcGx1cy9nZXRfc2NoZW1hLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjdkNGI5Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0X3NjaGVtYS5zcWwKQEAgLTAsMCAr MSw2IEBACitTRUxFQ1QKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfbmFt ZXNwYWNlCitXSEVSRQorICAgIG9pZCA9IHt7IHNjaWQgfX06Om9pZDsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL2dldF90eXBlcy5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3Nx bC85LjVfcGx1cy9nZXRfdHlwZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjJhNTU4MmUKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bn L3NxbC85LjVfcGx1cy9nZXRfdHlwZXMuc3FsCkBAIC0wLDAgKzEsMjAgQEAK K1NFTEVDVAorICAgICoKK0ZST00KKyAgICAoU0VMRUNUCisgICAgICAgIGZv cm1hdF90eXBlKHQub2lkLE5VTEwpIEFTIHR5cG5hbWUsCisgICAgICAgIENB U0UgV0hFTiB0eXBlbGVtID4gMCBUSEVOIHR5cGVsZW0gRUxTRSB0Lm9pZCBF TkQgYXMgZWxlbW9pZCwgdHlwbGVuLCB0eXB0eXBlLCB0Lm9pZCwgbnNwbmFt ZSwKKyAgICAgICAgKFNFTEVDVCBDT1VOVCgxKSBGUk9NIHBnX3R5cGUgdDIg V0hFUkUgdDIudHlwbmFtZSA9IHQudHlwbmFtZSkgPiAxIEFTIGlzZHVwCisg ICAgRlJPTQorICAgICAgICBwZ190eXBlIHQKKyAgICBKT0lOCisgICAgICAg IHBnX25hbWVzcGFjZSBuc3AgT04gdHlwbmFtZXNwYWNlPW5zcC5vaWQKKyAg ICBXSEVSRQorICAgICAgICAoTk9UICh0eXBuYW1lID0gJ3Vua25vd24nIEFO RCBuc3BuYW1lID0gJ3BnX2NhdGFsb2cnKSkKKyAgICBBTkQKKyAgICAgICAg KAorICAgICAgICAgICAgdHlwdHlwZSBJTiAoJ2InLCAnYycsICdkJywgJ2Un LCAncCcsICdyJykKKyAgICAgICAgICAgIEFORCB0eXBuYW1lIE5PVCBJTiAo J2FueScsICd0cmlnZ2VyJywgJ2xhbmd1YWdlX2hhbmRsZXInLCAnZXZlbnRf dHJpZ2dlcicpCisgICAgICAgICkKKyAgICApIEFTIGR1bW15CitPUkRFUiBC WSBuc3BuYW1lIDw+ICdwZ19jYXRhbG9nJywgbnNwbmFtZSA8PiAncHVibGlj JywgbnNwbmFtZSwgMTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL25v ZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvbm9kZS5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmI2ZWM5ZAotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vcGcvc3FsLzkuNV9wbHVzL25vZGUuc3FsCkBAIC0wLDAgKzEsMTcg QEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIucHJvbmFtZSB8fCAnKCcgfHwg Q09BTEVTQ0UocGdfY2F0YWxvZy5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlf YXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgbmFtZSwKKyAgICBs YW5uYW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIGFzIGZ1bmNvd25l ciwgZGVzY3JpcHRpb24KK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisg ICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisg ICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworTEVGVCBP VVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jq b2lkPXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xh c3MpCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJv bmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5P VCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCitPUkRFUiBCWQor ICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9wcm9w ZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL3Byb3BlcnRpZXMuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmNzgyOTgKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9wcm9wZXJ0aWVzLnNx bApAQCAtMCwwICsxLDMxIEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnht aW4sIHByLiosIHByLnByb3NyYyBBUyBwcm9zcmNfYywKKyAgICBwci5wcm9u YW1lIEFTIG5hbWUsIHBnX2dldF9mdW5jdGlvbl9yZXN1bHQocHIub2lkKSBB UyBwcm9yZXR0eXBlbmFtZSwKKyAgICB0eXBucy5uc3BuYW1lIEFTIHR5cG5z cCwgbGFubmFtZSwgcHJvYXJnbmFtZXMsIG9pZHZlY3RvcnR5cGVzKHByb2Fy Z3R5cGVzKSBBUyBwcm9hcmd0eXBlbmFtZXMsCisgICAgcGdfZ2V0X2V4cHIo cHJvYXJnZGVmYXVsdHMsICdwZ19jYXRhbG9nLnBnX2NsYXNzJzo6cmVnY2xh c3MpIEFTIHByb2FyZ2RlZmF1bHR2YWxzLAorICAgIHByb25hcmdkZWZhdWx0 cywgcHJvY29uZmlnLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIEFTIGZ1 bmNvd25lciwgZGVzY3JpcHRpb24sCisgICAgKFNFTEVDVAorICAgICAgICBh cnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxhYmVsKQorICAgIEZST00K KyAgICAgICAgcGdfc2hzZWNsYWJlbCBzbDEKKyAgICBXSEVSRQorICAgICAg ICBzbDEub2Jqb2lkPXByLm9pZCkgQVMgc2VjbGFiZWxzCitGUk9NCisgICAg cGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9 cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFjZSB0eXBucyBPTiB0 eXBucy5vaWQ9dHlwLnR5cG5hbWVzcGFjZQorSk9JTgorICAgIHBnX2xhbmd1 YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgor ICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQg QU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUK KyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFjZSA9 IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmln Z2VyJywgJ2V2ZW50X3RyaWdnZXInKQoreyUgaWYgZm5pZCAlfQorICAgIEFO RCBwci5vaWQgPSB7e2ZuaWR9fTo6b2lkCit7JSBlbmRpZiAlfQorT1JERVIg QlkKKyAgICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMv dXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjhlMzY0MgotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL3VwZGF0ZS5zcWwKQEAgLTAs MCArMSwxMTQgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1 cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkVMICV9Cit7JSBpbXBvcnQgJ21hY3Jv cy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9 Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFjcm9z JyBhcyBWQVJJQUJMRSAlfXslIGlmIGRhdGEgJX0KK3slIHNldCBuYW1lID0g b19kYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAlfQoreyUgaWYgZGF0 YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBGVU5DVElPTiB7eyBj b25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLm5hbWUp IH19KHt7CitvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIFJFTkFN RSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3slIHNldCBu YW1lID0gZGF0YS5uYW1lICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgLSV9 Cit7JSBpZiBkYXRhLmNoYW5nZV9mdW5jICAlfQorCitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVz cGFjZSwgbmFtZSkgfX0oeyUgaWYgZGF0YS5hcmd1bWVudHMgJX0KK3slIGZv ciBwIGluIGRhdGEuYXJndW1lbnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3tw LmFyZ21vZGV9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFtZSAlfXt7IGNv bm58cXRJZGVudChwLmFyZ25hbWUpIH19IHslIGVuZGlmICV9eyUgaWYgcC5h cmd0eXBlICV9e3twLmFyZ3R5cGV9fXslIGVuZGlmICV9eyUgaWYgcC5hcmdk ZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAlfQor eyUgaWYgbm90IGxvb3AubGFzdCAlfSx7JSBlbmRpZiAlfQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAtJX0KKykKKyAgICBSRVRVUk5TIHt7IG9fZGF0YS5w cm9yZXR0eXBlbmFtZSB9fQoreyUgaWYgJ2xhbm5hbWUnIGluIGRhdGEgJX0K KyAgICBMQU5HVUFHRSB7eyBkYXRhLmxhbm5hbWV8cXRMaXRlcmFsIH19eyUg ZWxzZSAlfQorICAgIExBTkdVQUdFIHt7IG9fZGF0YS5sYW5uYW1lfHF0TGl0 ZXJhbCB9fQorICAgIHslIGVuZGlmICV9eyUgaWYgJ3Byb3ZvbGF0aWxlJyBp biBkYXRhIGFuZCBkYXRhLnByb3ZvbGF0aWxlICV9e3sgZGF0YS5wcm92b2xh dGlsZSB9fSB7JSBlbGlmICdwcm92b2xhdGlsZScgbm90IGluIGRhdGEgYW5k IG9fZGF0YS5wcm92b2xhdGlsZSAlfXt7IG9fZGF0YS5wcm92b2xhdGlsZSB9 fXslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2xlYWtwcm9vZicgaW4gZGF0YSBh bmQgZGF0YS5wcm9sZWFrcHJvb2YpIG9yICgncHJvbGVha3Byb29mJyBub3Qg aW4gZGF0YSBhbmQgb19kYXRhLnByb2xlYWtwcm9vZikgJX0gTEVBS1BST09G eyUgZWxpZiAncHJvbGVha3Byb29mJyBpbiBkYXRhIGFuZCBub3QgZGF0YS5w cm9sZWFrcHJvb2YgJX0gTk9UIExFQUtQUk9PRnslIGVuZGlmICV9Cit7JSBp ZiAoJ3Byb2lzc3RyaWN0JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lzc3RyaWN0 KSBvciAoJ3Byb2lzc3RyaWN0JyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnBy b2lzc3RyaWN0KSAlfSBTVFJJQ1R7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9z ZWNkZWYnIGluIGRhdGEgYW5kIGRhdGEucHJvc2VjZGVmKSBvciAoJ3Byb3Nl Y2RlZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9zZWNkZWYpICV9IFNF Q1VSSVRZIERFRklORVJ7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9pc3dpbmRv dycgaW4gZGF0YSBhbmQgZGF0YS5wcm9pc3dpbmRvdykgb3IgKCdwcm9pc3dp bmRvdycgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9pc3dpbmRvdykgJX0g V0lORE9XeyUgZW5kaWYgJX0KKworICAgIHslIGlmIGRhdGEucHJvY29zdCAl fUNPU1Qge3tkYXRhLnByb2Nvc3R9fXslIGVsaWYgb19kYXRhLnByb2Nvc3Qg JX1DT1NUIHt7b19kYXRhLnByb2Nvc3R9fXslIGVuZGlmICV9eyUgaWYgZGF0 YS5wcm9yb3dzICV9CisKKyAgICBST1dTIHt7ZGF0YS5wcm9yb3dzfX17JSBl bGlmIG9fZGF0YS5wcm9yb3dzICV9Uk9XUyB7e29fZGF0YS5wcm9yb3dzfX0g eyVlbmRpZiAtJX17JSBpZiBkYXRhLm1lcmdlZF92YXJpYWJsZXMgJX17JSBm b3IgdiBpbiBkYXRhLm1lcmdlZF92YXJpYWJsZXMgJX0KKworICAgIFNFVCB7 eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17eyB2LnZhbHVlfHF0TGl0ZXJh bCB9fXslIGVuZGZvciAtJX0KKyAgICB7JSBlbmRpZiAlfQorCitBUyB7JSBp ZiAncHJvYmluJyBpbiBkYXRhIG9yICdwcm9zcmNfYycgaW4gZGF0YSAlfQor eyUgaWYgJ3Byb2JpbicgaW4gZGF0YSAlfXt7IGRhdGEucHJvYmlufHF0TGl0 ZXJhbCB9fXslIGVsc2UgJX17eyBvX2RhdGEucHJvYmlufHF0TGl0ZXJhbCB9 fXslIGVuZGlmICV9LCB7JSBpZiAncHJvc3JjX2MnIGluIGRhdGEgJX17eyBk YXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fXslIGVsc2UgJX17eyBvX2RhdGEu cHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZW5kaWYgJX17JSBlbGlmICdwcm9z cmMnIGluIGRhdGEgJX0KKyRmdW5jdGlvbiR7eyBkYXRhLnByb3NyYyB9fSRm dW5jdGlvbiR7JSBlbGlmIG9fZGF0YS5sYW5uYW1lID09ICdjJyAlfQore3sg b19kYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IG9fZGF0YS5wcm9zcmNf Y3xxdExpdGVyYWwgfX17JSBlbHNlICV9CiskZnVuY3Rpb24ke3sgb19kYXRh LnByb3NyYyB9fSRmdW5jdGlvbiR7JSBlbmRpZiAtJX07Cit7JSBlbmRpZiAt JX0KK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVSIEZVTkNUSU9O IHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9 fSh7e29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgT1dORVIgVE8g e3sgZGF0YS5mdW5jb3duZXIgfX07Cit7JSBlbmRpZiAtJX0KK3sjIFRoZSBT UUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZpbGVkZ2VzICN9 Cit7JSBpZiBkYXRhLmFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEu YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5kZWxldGVkICV9CisK K3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnRlVOQ1RJT04nLCBwcml2 LmdyYW50ZWUsIG5hbWUsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5w cm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0l fQoreyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3Ig cHJpdiBpbiBkYXRhLmFjbC5jaGFuZ2VkICV9CisKK3t7IFBSSVZJTEVHRS5V TlNFVEFMTChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUs IG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMp IH19CisKK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgcHJp di5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0 aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5 cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBp ZiAnYWRkZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRh LmFjbC5hZGRlZCAlfQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdGVU5D VElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50 LCBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0 YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX17JSBlbmRpZiAt JX0KK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyA9PSBG YWxzZSAlfQoreyUgaWYgZGF0YS52YXJpYWJsZXMgJX0KK3slIGlmICdkZWxl dGVkJyBpbiBkYXRhLnZhcmlhYmxlcyBhbmQgZGF0YS52YXJpYWJsZXMuZGVs ZXRlZHxsZW5ndGggPiAwICV9CisKK3t7IFZBUklBQkxFLlVOU0VUKGNvbm4s ICdGVU5DVElPTicsIG5hbWUsIGRhdGEudmFyaWFibGVzLmRlbGV0ZWQsIG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19 Cit7JSBlbmRpZiAtJX0KK3slIGlmICdtZXJnZWRfdmFyaWFibGVzJyBpbiBk YXRhIGFuZCBkYXRhLm1lcmdlZF92YXJpYWJsZXN8bGVuZ3RoID4gMCAlfQor Cit7eyBWQVJJQUJMRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgZGF0 YS5tZXJnZWRfdmFyaWFibGVzLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2Rh dGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kaWYgLSV9Cit7JSBlbmRp ZiAtJX0KK3slIGVuZGlmIC0lfQoreyUgc2V0IHNlY2xhYmVscyA9IGRhdGEu c2VjbGFiZWxzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFu ZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBp biBzZWNsYWJlbHMuZGVsZXRlZCAlfQorCit7eyBTRUNMQUJFTC5VTlNFVChj b25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCBvX2RhdGEucHJv bmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcgaW4gc2VjbGFi ZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9y IHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9CisKK3t7IFNFQ0xBQkVMLlNFVChj b25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5 X2xhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlw ZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlm ICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2Vk fGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5jaGFuZ2Vk ICV9CisKK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1l LCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBvX2RhdGEucHJvbmFt ZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0K KworQ09NTUVOVCBPTiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRh LnByb25hbWVzcGFjZSwgbmFtZSkgfX0oe3tvX2RhdGEucHJvYXJndHlwZW5h bWVzIH19KQorICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFs IH19OworeyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEucHJvbmFtZXNwYWNl ICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEu cHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7e29fZGF0YS5wcm9hcmd0eXBlbmFt ZXMgfX0pCisgICAgU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRlbnQoZGF0YS5w cm9uYW1lc3BhY2UpIH19OworeyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy92YXJpYWJsZXMuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9w Zy9zcWwvOS41X3BsdXMvdmFyaWFibGVzLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi41MjMzYzcxCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wZy9zcWwvOS41X3BsdXMvdmFyaWFibGVzLnNxbApAQCAtMCwwICsxLDYg QEAKK1NFTEVDVAorICAgIG5hbWUsIHZhcnR5cGUsIG1pbl92YWwsIG1heF92 YWwsIGVudW12YWxzCitGUk9NCisgICAgcGdfc2V0dGluZ3MKK1dIRVJFCisg ICAgY29udGV4dCBpbiAoJ3VzZXInLCAnc3VwZXJ1c2VyJyk7CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2FjbC5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9w bHVzL2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uYWQzZTBkMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3Bs dXMvYWNsLnNxbApAQCAtMCwwICsxLDM1IEBACitTRUxFQ1QKKyAgICBDT0FM RVNDRShndC5yb2xuYW1lLCAncHVibGljJykgQVMgZ3JhbnRlZSwKKyAgICBn LnJvbG5hbWUgQVMgZ3JhbnRvciwgYXJyYXlfYWdnKHByaXZpbGVnZV90eXBl KSBBUyBwcml2aWxlZ2VzLAorICAgIGFycmF5X2FnZyhpc19ncmFudGFibGUp IEFTIGdyYW50YWJsZQorRlJPTQorICAgIChTRUxFQ1QKKyAgICAgICAgZC5n cmFudGVlLCBkLmdyYW50b3IsIGQuaXNfZ3JhbnRhYmxlLAorICAgICAgICBD QVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAgICAgV0hFTiAnQ09OTkVDVCcg VEhFTiAnYycKKyAgICAgICAgV0hFTiAnQ1JFQVRFJyBUSEVOICdDJworICAg ICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisgICAgICAgIFdIRU4gJ0VY RUNVVEUnIFRIRU4gJ1gnCisgICAgICAgIFdIRU4gJ0lOU0VSVCcgVEhFTiAn YScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNFUycgVEhFTiAneCcKKyAgICAg ICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAgICAgICBXSEVOICdURU1Q T1JBUlknIFRIRU4gJ1QnCisgICAgICAgIFdIRU4gJ1RSSUdHRVInIFRIRU4g J3QnCisgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBUSEVOICdEJworICAgICAg ICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAgICAgIFdIRU4gJ1VTQUdF JyBUSEVOICdVJworICAgICAgICBFTFNFICdVTktOT1dOJworICAgICAgICBF TkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICBGUk9NCisgICAgICAgIChTRUxF Q1QKKyAgICAgICAgICAgIChkKS5ncmFudGVlIEFTIGdyYW50ZWUsIChkKS5n cmFudG9yIEFTIGdyYW50b3IsCisgICAgICAgICAgICAoZCkuaXNfZ3JhbnRh YmxlIEFTIGlzX2dyYW50YWJsZSwKKyAgICAgICAgICAgIChkKS5wcml2aWxl Z2VfdHlwZSBBUyBwcml2aWxlZ2VfdHlwZQorICAgICAgICBGUk9NCisgICAg ICAgICAgICAoU0VMRUNUIGFjbGV4cGxvZGUoZGIucHJvYWNsKSBBUyBkIEZS T00gcGdfcHJvYyBkYgorICAgICAgICAgICAgV0hFUkUgZGIub2lkID0ge3tm bmlkfX06Ok9JRCkgYQorICAgICAgICApIGQKKyAgICApIGQKKyAgICBMRUZU IEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9OIChkLmdyYW50b3IgPSBn Lm9pZCkKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBndCBP TiAoZC5ncmFudGVlID0gZ3Qub2lkKQorR1JPVVAgQlkgZy5yb2xuYW1lLCBn dC5yb2xuYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9jcmVh dGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiMjlhM2MKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwKQEAgLTAs MCArMSw1MyBAQAoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3Vy aXR5Lm1hY3JvcycgYXMgU0VDTEFCRUwgJX0KK3slIGltcG9ydCAnbWFjcm9z L2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0K K3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy92YXJpYWJsZS5tYWNyb3Mn IGFzIFZBUklBQkxFICV9Cit7JSBzZXQgaXNfY29sdW1ucyA9IFtdICV9Cit7 JSBpZiBkYXRhICV9CitDUkVBVEUgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50 KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19KHslIGlmIGRhdGEu YXJndW1lbnRzICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFyZ3VtZW50cyAlfXsl IGlmIHAuYXJnbW9kZSAlfXt7cC5hcmdtb2RlfX0geyUgZW5kaWYgJX17JSBp ZiBwLmFyZ25hbWUgJX17eyBjb25ufHF0SWRlbnQocC5hcmduYW1lKX19IHsl IGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3twLmFyZ3R5cGV9fXslIGVu ZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVm dmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSx7JSBl bmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKyAgICApCisg ICAgUkVUVVJOU3slIGlmIGRhdGEucHJvcmV0c2V0ICV9IFNFVE9GeyUgZW5k aWYgJX0ge3sgY29ubnxxdFR5cGVJZGVudChkYXRhLnByb3JldHR5cGVuYW1l KSB9fQorICAgIExBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExpdGVyYWwg fX0KKyAgICB7JSBpZiBkYXRhLnByb3ZvbGF0aWxlICV9e3sgZGF0YS5wcm92 b2xhdGlsZSB9fSB7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvaXNzdHJpY3Qg JX1TVFJJQ1QgeyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb3NlY2RlZiAlfVNF Q1VSSVRZIERFRklORVIgeyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb2lzd2lu ZG93ICV9V0lORE9XeyUgZW5kaWYgLSV9eyUgaWYgZGF0YS5wcm9jb3N0ICV9 CisKKyAgICBDT1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbmRpZiAlfXslIGlm IGRhdGEucHJvcm93cyAlfQorCisgICAgUk9XUyB7e2RhdGEucHJvcm93c319 eyUgZW5kaWYgLSV9eyUgaWYgZGF0YS52YXJpYWJsZXMgJX17JSBmb3IgdiBp biBkYXRhLnZhcmlhYmxlcyAlfQorCisgICAgU0VUIHt7IGNvbm58cXRJZGVu dCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19eyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAlfQorCitBUyB7JSBpZiBkYXRhLmxhbm5hbWUgPT0g J2MnICV9Cit7eyBkYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IGRhdGEu cHJvc3JjX2N8cXRMaXRlcmFsIH19Cit7JSBlbHNlICV9CiskZnVuY3Rpb24k Cit7eyBkYXRhLnByb3NyYyB9fQorJGZ1bmN0aW9uJHslIGVuZGlmICV9Owor eyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIgRlVOQ1RJT04ge3sg Y29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19 KHt7ZGF0YS5mdW5jX2FyZ3N9fSkKKyAgICBPV05FUiBUTyB7eyBkYXRhLmZ1 bmNvd25lciB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmFjbCAlfQor eyUgZm9yIHAgaW4gZGF0YS5hY2wgJX0KKwore3sgUFJJVklMRUdFLlNFVChj b25uLCAiRlVOQ1RJT04iLCBwLmdyYW50ZWUsIGRhdGEubmFtZSwgcC53aXRo b3V0X2dyYW50LCBwLndpdGhfZ3JhbnQsIGRhdGEucHJvbmFtZXNwYWNlLCBk YXRhLmZ1bmNfYXJncyl9fQoreyUgZW5kZm9yICV9eyUgZW5kaWYgJX0KK3sl IGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBPTiBGVU5DVElP TiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFt ZSkgfX0oe3tkYXRhLmZ1bmNfYXJnc319KQorICAgIElTICd7eyBkYXRhLmRl c2NyaXB0aW9uIH19JzsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5zZWNs YWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2VjbGFiZWxzICV9Cit7JSBp ZiByLnNlY3VyaXR5X2xhYmVsIGFuZCByLnByb3ZpZGVyICV9CisKK3t7IFNF Q0xBQkVMLlNFVChjb25uLCAnRlVOQ1RJT04nLCBkYXRhLm5hbWUsIHIucHJv dmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIGRhdGEucHJvbmFtZXNwYWNlLCBk YXRhLmZ1bmNfYXJncykgfX0KK3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFz L3NxbC85LjFfcGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9k ZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjI0NmJlYzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVz L2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwyMSBAQAoreyUgaWYgc2NpZCBhbmQg Zm5pZCAlfQorU0VMRUNUCisgICAgcHIucHJvbmFtZSBhcyBuYW1lLCAnKCcg fHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rpb25f aWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgZnVu Y19hcmdzLAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19wcm9jIHByCitK T0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitK T0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25h bWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5E IHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFt ZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQorICAgIEFO RCBwci5vaWQgPSB7e2ZuaWR9fTsKK3slIGVuZGlmICV9CisKK3slIGlmIG5h bWUgJX0KK0RST1AgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG5zcG5hbWUs IG5hbWUpIH19e3tmdW5jX2FyZ3N9fXslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FE RXslIGVuZGlmICV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9z cWwvOS4xX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFf cGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uNTg5ZWNjZQotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBh cy9zcWwvOS4xX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCkBAIC0wLDAgKzEs MTEgQEAKK1NFTEVDVAorICAgIHBnX2dldF9mdW5jdGlvbmRlZih7e2ZuaWR9 fTo6b2lkKSBBUyBmdW5jX2RlZiwKKyAgICBuc3BuYW1lIHx8ICcuJyB8fCBw ci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nLnBnX2dl dF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8 ICcpJyBhcyBuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAg IHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UK K1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1l c3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHByLm9pZCA9IHt7Zm5p ZH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9s YW5ndWFnZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9nZXRfbGFuZ3VhZ2Vz LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODFk ZGZiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9nZXRf bGFuZ3VhZ2VzLnNxbApAQCAtMCwwICsxLDQgQEAKK1NFTEVDVAorICAgIGxh bm5hbWUgYXMgbGFiZWwsIGxhbm5hbWUgYXMgdmFsdWUKK0ZST00KKyAgICBw Z19sYW5ndWFnZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0 X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9vaWQuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiYzc2YTIKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9vaWQuc3FsCkBA IC0wLDAgKzEsMTcgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIucHJvbmFt ZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRf ZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAn KScgYXMgbmFtZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJv b3duZXIpIGFzIGZ1bmNvd25lcgorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pP SU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pP SU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitK T0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25h bWVzcGFjZQorICAgIEFORCBuc3AubnNwbmFtZT17eyBuc3BuYW1lfHF0TGl0 ZXJhbCB9fQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5E IHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykK KyAgICBBTkQgcHIucHJvbmFtZSA9IHt7IG5hbWV8cXRMaXRlcmFsIH19Owpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9nZXRfb3V0X3R5cGVzLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X291dF90eXBlcy5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRhMTE4NwotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X291dF90eXBlcy5z cWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBmb3JtYXRfdHlwZShv aWQsIE5VTEwpIEFTIG91dF9hcmdfdHlwZQorRlJPTQorICAgIHBnX3R5cGUK K1dIRVJFCisgICAgb2lkID0ge3sgb3V0X2FyZ19vaWQgfX06Om9pZDsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X3NjaGVtYS5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bw YXMvc3FsLzkuMV9wbHVzL2dldF9zY2hlbWEuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyN2Q0YjkKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9zY2hlbWEuc3FsCkBAIC0wLDAg KzEsNiBAQAorU0VMRUNUCisgICAgbnNwbmFtZQorRlJPTQorICAgIHBnX25h bWVzcGFjZQorV0hFUkUKKyAgICBvaWQgPSB7eyBzY2lkIH19OjpvaWQ7CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2dldF90eXBlcy5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bw YXMvc3FsLzkuMV9wbHVzL2dldF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMmE1NTgyZQotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X3R5cGVzLnNxbApAQCAtMCwwICsx LDIwIEBACitTRUxFQ1QKKyAgICAqCitGUk9NCisgICAgKFNFTEVDVAorICAg ICAgICBmb3JtYXRfdHlwZSh0Lm9pZCxOVUxMKSBBUyB0eXBuYW1lLAorICAg ICAgICBDQVNFIFdIRU4gdHlwZWxlbSA+IDAgVEhFTiB0eXBlbGVtIEVMU0Ug dC5vaWQgRU5EIGFzIGVsZW1vaWQsIHR5cGxlbiwgdHlwdHlwZSwgdC5vaWQs IG5zcG5hbWUsCisgICAgICAgIChTRUxFQ1QgQ09VTlQoMSkgRlJPTSBwZ190 eXBlIHQyIFdIRVJFIHQyLnR5cG5hbWUgPSB0LnR5cG5hbWUpID4gMSBBUyBp c2R1cAorICAgIEZST00KKyAgICAgICAgcGdfdHlwZSB0CisgICAgSk9JTgor ICAgICAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIHR5cG5hbWVzcGFjZT1uc3Au b2lkCisgICAgV0hFUkUKKyAgICAgICAgKE5PVCAodHlwbmFtZSA9ICd1bmtu b3duJyBBTkQgbnNwbmFtZSA9ICdwZ19jYXRhbG9nJykpCisgICAgQU5ECisg ICAgICAgICgKKyAgICAgICAgICAgIHR5cHR5cGUgSU4gKCdiJywgJ2MnLCAn ZCcsICdlJywgJ3AnLCAncicpCisgICAgICAgICAgICBBTkQgdHlwbmFtZSBO T1QgSU4gKCdhbnknLCAndHJpZ2dlcicsICdsYW5ndWFnZV9oYW5kbGVyJywg J2V2ZW50X3RyaWdnZXInKQorICAgICAgICApCisgICAgKSBBUyBkdW1teQor T1JERVIgQlkgbnNwbmFtZSA8PiAncGdfY2F0YWxvZycsIG5zcG5hbWUgPD4g J3B1YmxpYycsIG5zcG5hbWUsIDE7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzku MV9wbHVzL25vZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9ub2RlLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jN2Y0MTU5Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9ub2RlLnNxbApA QCAtMCwwICsxLDE4IEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnByb25h bWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cucGdfZ2V0X2Z1bmN0 aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIEFT IG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHByb293bmVy KSBBUyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uCitGUk9NCisgICAgcGdfcHJv YyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0 dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXBy b2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRl cyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdf cHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNF CisgICAgQU5EIHByLnByb3R5cGUgPSAnMCc6OmNoYXIKKyAgICBBTkQgcHJv bmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5P VCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCitPUkRFUiBCWQor ICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL3By b3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZThhOGJh Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9wcm9wZXJ0 aWVzLnNxbApAQCAtMCwwICsxLDMxIEBACitTRUxFQ1QKKyAgICBwci5vaWQs IHByLnhtaW4sIHByLiosIHByLnByb3NyYyBBUyBwcm9zcmNfYywKKyAgICBw ci5wcm9uYW1lIEFTIG5hbWUsIHBnX2dldF9mdW5jdGlvbl9yZXN1bHQocHIu b2lkKSBBUyBwcm9yZXR0eXBlbmFtZSwKKyAgICB0eXBucy5uc3BuYW1lIEFT IHR5cG5zcCwgbGFubmFtZSwgcHJvYXJnbmFtZXMsIG9pZHZlY3RvcnR5cGVz KHByb2FyZ3R5cGVzKSBBUyBwcm9hcmd0eXBlbmFtZXMsCisgICAgcGdfZ2V0 X2V4cHIocHJvYXJnZGVmYXVsdHMsICdwZ19jYXRhbG9nLnBnX2NsYXNzJzo6 cmVnY2xhc3MpIEFTIHByb2FyZ2RlZmF1bHR2YWxzLAorICAgIHByb25hcmdk ZWZhdWx0cywgcHJvY29uZmlnLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIp IEFTIGZ1bmNvd25lciwgZGVzY3JpcHRpb24sCisgICAgKFNFTEVDVAorICAg ICAgICBhcnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxhYmVsKQorICAg IEZST00KKyAgICAgICAgcGdfc2VjbGFiZWwgc2wxCisgICAgV0hFUkUKKyAg ICAgICAgc2wxLm9iam9pZD1wci5vaWQpIEFTIHNlY2xhYmVscworRlJPTQor ICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAu b2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgdHlwbnMg T04gdHlwbnMub2lkPXR5cC50eXBuYW1lc3BhY2UKK0pPSU4KKyAgICBwZ19s YW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpP SU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIu b2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dI RVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1lc3Bh Y2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgn dHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKK3slIGlmIGZuaWQgJX0KKyAg ICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9pZAoreyUgZW5kaWYgJX0KK09S REVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4x X3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvdXBkYXRlLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZjBmMjhl Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy91cGRhdGUu c3FsCkBAIC0wLDAgKzEsMTA1IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5j dGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJFTCAlfQoreyUgaW1w b3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBS SVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3Zhcmlh YmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX17JSBpZiBkYXRhICV9Cit7JSBz ZXQgbmFtZSA9IG9fZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgJX0K K3slIGlmIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfQorQUxURVIgRlVO Q1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9f ZGF0YS5uYW1lKSB9fSh7e29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisg ICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19Owor eyUgc2V0IG5hbWUgPSBkYXRhLm5hbWUgJX0KK3slIGVuZGlmICV9Cit7JSBl bmRpZiAtJX0KK3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMgICV9CisKK0NSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEu cHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7JSBpZiBkYXRhLmFyZ3VtZW50cyAl fQoreyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVudHMgJX17JSBpZiBwLmFyZ21v ZGUgJX17e3AuYXJnbW9kZX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmduYW1l ICV9e3sgY29ubnxxdElkZW50KHAuYXJnbmFtZSkgfX0geyUgZW5kaWYgJX17 JSBpZiBwLmFyZ3R5cGUgJX17e3AuYXJndHlwZX19eyUgZW5kaWYgJX17JSBp ZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXslIGVu ZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LCB7JSBlbmRpZiAlfQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKykKKyAgICBSRVRVUk5TIHt7 IG9fZGF0YS5wcm9yZXR0eXBlbmFtZSB9fQoreyUgaWYgJ2xhbm5hbWUnIGlu IGRhdGEgJX0KKyAgICBMQU5HVUFHRSB7eyBkYXRhLmxhbm5hbWV8cXRMaXRl cmFsIH19eyUgZWxzZSAlfQorICAgIExBTkdVQUdFIHt7IG9fZGF0YS5sYW5u YW1lfHF0TGl0ZXJhbCB9fQorICAgIHslIGVuZGlmICV9eyUgaWYgJ3Byb3Zv bGF0aWxlJyBpbiBkYXRhIGFuZCBkYXRhLnByb3ZvbGF0aWxlICV9e3sgZGF0 YS5wcm92b2xhdGlsZSB9fSB7JSBlbGlmICdwcm92b2xhdGlsZScgbm90IGlu IGRhdGEgYW5kIG9fZGF0YS5wcm92b2xhdGlsZSAlfXt7IG9fZGF0YS5wcm92 b2xhdGlsZSB9fXslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2lzc3RyaWN0JyBp biBkYXRhIGFuZCBkYXRhLnByb2lzc3RyaWN0KSBvciAoJ3Byb2lzc3RyaWN0 JyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2lzc3RyaWN0KSAlfSBTVFJJ Q1R7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9zZWNkZWYnIGluIGRhdGEgYW5k IGRhdGEucHJvc2VjZGVmKSBvciAoJ3Byb3NlY2RlZicgbm90IGluIGRhdGEg YW5kIG9fZGF0YS5wcm9zZWNkZWYpICV9IFNFQ1VSSVRZIERFRklORVJ7JSBl bmRpZiAlfQoreyUgaWYgKCdwcm9pc3dpbmRvdycgaW4gZGF0YSBhbmQgZGF0 YS5wcm9pc3dpbmRvdykgb3IgKCdwcm9pc3dpbmRvdycgbm90IGluIGRhdGEg YW5kIG9fZGF0YS5wcm9pc3dpbmRvdykgJX0gV0lORE9XeyUgZW5kaWYgJX0K KworICAgIHslIGlmIGRhdGEucHJvY29zdCAlfUNPU1Qge3tkYXRhLnByb2Nv c3R9fXslIGVsaWYgb19kYXRhLnByb2Nvc3QgJX1DT1NUIHt7b19kYXRhLnBy b2Nvc3R9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9yb3dzICV9CisKKyAg ICBST1dTIHt7ZGF0YS5wcm9yb3dzfX17JSBlbGlmIG9fZGF0YS5wcm9yb3dz ICV9Uk9XUyB7e29fZGF0YS5wcm9yb3dzfX17JWVuZGlmIC0lfXslIGlmIGRh dGEubWVyZ2VkX3ZhcmlhYmxlcyAlfXslIGZvciB2IGluIGRhdGEubWVyZ2Vk X3ZhcmlhYmxlcyAlfQorCisgICAgU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5h bWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19eyUgZW5kZm9yIC0lfQor ICAgIHslIGVuZGlmICV9CisKK0FTIHslIGlmICdwcm9iaW4nIGluIGRhdGEg b3IgJ3Byb3NyY19jJyBpbiBkYXRhICV9Cit7JSBpZiAncHJvYmluJyBpbiBk YXRhICV9e3sgZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19eyUgZWxzZSAlfXt7 IG9fZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19eyUgZW5kaWYgJX0sIHslIGlm ICdwcm9zcmNfYycgaW4gZGF0YSAlfXt7IGRhdGEucHJvc3JjX2N8cXRMaXRl cmFsIH19eyUgZWxzZSAlfXt7IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwg fX17JSBlbmRpZiAlfXslIGVsaWYgJ3Byb3NyYycgaW4gZGF0YSAlfQorJGZ1 bmN0aW9uJHt7IGRhdGEucHJvc3JjIH19JGZ1bmN0aW9uJHslIGVsaWYgb19k YXRhLmxhbm5hbWUgPT0gJ2MnICV9Cit7eyBvX2RhdGEucHJvYmlufHF0TGl0 ZXJhbCB9fSwge3sgb19kYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fXslIGVs c2UgJX0KKyRmdW5jdGlvbiR7eyBvX2RhdGEucHJvc3JjIH19JGZ1bmN0aW9u JHslIGVuZGlmIC0lfTsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5mdW5j b3duZXIgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7IG9fZGF0YS5wcm9hcmd0 eXBlbmFtZXMgfX0pCisgICAgT1dORVIgVE8ge3sgZGF0YS5mdW5jb3duZXIg fX07Cit7JSBlbmRpZiAtJX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93 IHdpbGwgY2hhbmdlIHByaXZpbGVkZ2VzICN9Cit7JSBpZiBkYXRhLmFjbCAl fQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJp diBpbiBkYXRhLmFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRB TEwoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2Rh dGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQor Cit7JSBlbmRmb3IgJX17JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGlu IGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5jaGFuZ2Vk ICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNUSU9OJywg cHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2Rh dGEucHJvYXJndHlwZW5hbWVzKSB9fQorCit7eyBQUklWSUxFR0UuU0VUKGNv bm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRo b3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19CisKK3slIGVuZGZvciAl fXslIGVuZGlmICV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEuYWNsICV9Cit7 JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5hZGRlZCAlfQorCit7eyBQUklWSUxF R0UuU0VUKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwg cHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5w cm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBl bmRmb3IgJX17JSBlbmRpZiAlfXslIGVuZGlmICV9Cit7JSBpZiBkYXRhLmNo YW5nZV9mdW5jID09IEZhbHNlICV9Cit7JSBpZiBkYXRhLnZhcmlhYmxlcyAl fQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEudmFyaWFibGVzIGFuZCBkYXRh LnZhcmlhYmxlcy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KKwore3sgVkFSSUFC TEUuVU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgZGF0YS52YXJpYWJs ZXMuZGVsZXRlZCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2Fy Z3R5cGVuYW1lcyApIH19Cit7JSBlbmRpZiAtJX0KK3slIGlmICdtZXJnZWRf dmFyaWFibGVzJyBpbiBkYXRhIGFuZCBkYXRhLm1lcmdlZF92YXJpYWJsZXN8 bGVuZ3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5TRVQoY29ubiwgJ0ZVTkNU SU9OJywgbmFtZSwgZGF0YS5tZXJnZWRfdmFyaWFibGVzLCBvX2RhdGEucHJv bmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzICkgfX0KK3slIGVu ZGlmICV9Cit7JSBlbmRpZiAlfXslIGVuZGlmICV9Cit7JSBzZXQgc2VjbGFi ZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBz ZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVkfGxlbmd0aCA+IDAgJX0K K3slIGZvciByIGluIHNlY2xhYmVscy5kZWxldGVkICV9Cit7eyBTRUNMQUJF TC5VTlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCBv X2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9 fQorCit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2FkZGVk JyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxsZW5ndGggPiAw ICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0KKwore3sgU0VD TEFCRUwuU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIHIucHJvdmlkZXIs IHIuc2VjdXJpdHlfbGFiZWwsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0 YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlm IC0lfQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFi ZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFi ZWxzLmNoYW5nZWQgJX0KK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnRlVOQ1RJ T04nLCBuYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBvX2Rh dGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQor eyUgZW5kZm9yICV9eyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmRlc2NyaXB0 aW9uICV9CisKK0NPTU1FTlQgT04gRlVOQ1RJT04ge3sgY29ubnxxdElkZW50 KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7b19kYXRhLnByb2Fy Z3R5cGVuYW1lcyB9fSkKKyAgICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0 TGl0ZXJhbCB9fTsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5wcm9uYW1l c3BhY2UgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7b19kYXRhLnByb2FyZ3R5 cGVuYW1lcyB9fSkKKyAgICBTRVQgU0NIRU1BIHt7IGNvbm58cXRJZGVudChk YXRhLnByb25hbWVzcGFjZSkgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvdmFyaWFibGVz LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvdmFyaWFibGVzLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjMzYzcxCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy92YXJpYWJsZXMuc3FsCkBA IC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgbmFtZSwgdmFydHlwZSwgbWlu X3ZhbCwgbWF4X3ZhbCwgZW51bXZhbHMKK0ZST00KKyAgICBwZ19zZXR0aW5n cworV0hFUkUKKyAgICBjb250ZXh0IGluICgndXNlcicsICdzdXBlcnVzZXIn KTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvYWNsLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBh cy9zcWwvOS4yX3BsdXMvYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5hZDNlMGQxCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFz L3NxbC85LjJfcGx1cy9hY2wuc3FsCkBAIC0wLDAgKzEsMzUgQEAKK1NFTEVD VAorICAgIENPQUxFU0NFKGd0LnJvbG5hbWUsICdwdWJsaWMnKSBBUyBncmFu dGVlLAorICAgIGcucm9sbmFtZSBBUyBncmFudG9yLCBhcnJheV9hZ2cocHJp dmlsZWdlX3R5cGUpIEFTIHByaXZpbGVnZXMsCisgICAgYXJyYXlfYWdnKGlz X2dyYW50YWJsZSkgQVMgZ3JhbnRhYmxlCitGUk9NCisgICAgKFNFTEVDVAor ICAgICAgICBkLmdyYW50ZWUsIGQuZ3JhbnRvciwgZC5pc19ncmFudGFibGUs CisgICAgICAgIENBU0UgZC5wcml2aWxlZ2VfdHlwZQorICAgICAgICBXSEVO ICdDT05ORUNUJyBUSEVOICdjJworICAgICAgICBXSEVOICdDUkVBVEUnIFRI RU4gJ0MnCisgICAgICAgIFdIRU4gJ0RFTEVURScgVEhFTiAnZCcKKyAgICAg ICAgV0hFTiAnRVhFQ1VURScgVEhFTiAnWCcKKyAgICAgICAgV0hFTiAnSU5T RVJUJyBUSEVOICdhJworICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVO ICd4JworICAgICAgICBXSEVOICdTRUxFQ1QnIFRIRU4gJ3InCisgICAgICAg IFdIRU4gJ1RFTVBPUkFSWScgVEhFTiAnVCcKKyAgICAgICAgV0hFTiAnVFJJ R0dFUicgVEhFTiAndCcKKyAgICAgICAgV0hFTiAnVFJVTkNBVEUnIFRIRU4g J0QnCisgICAgICAgIFdIRU4gJ1VQREFURScgVEhFTiAndycKKyAgICAgICAg V0hFTiAnVVNBR0UnIFRIRU4gJ1UnCisgICAgICAgIEVMU0UgJ1VOS05PV04n CisgICAgICAgIEVORCBBUyBwcml2aWxlZ2VfdHlwZQorICAgIEZST00KKyAg ICAgICAgKFNFTEVDVAorICAgICAgICAgICAgKGQpLmdyYW50ZWUgQVMgZ3Jh bnRlZSwgKGQpLmdyYW50b3IgQVMgZ3JhbnRvciwKKyAgICAgICAgICAgIChk KS5pc19ncmFudGFibGUgQVMgaXNfZ3JhbnRhYmxlLAorICAgICAgICAgICAg KGQpLnByaXZpbGVnZV90eXBlIEFTIHByaXZpbGVnZV90eXBlCisgICAgICAg IEZST00KKyAgICAgICAgICAgIChTRUxFQ1QgYWNsZXhwbG9kZShkYi5wcm9h Y2wpIEFTIGQgRlJPTSBwZ19wcm9jIGRiCisgICAgICAgICAgICBXSEVSRSBk Yi5vaWQgPSB7e2ZuaWR9fTo6T0lEKSBhCisgICAgICAgICkgZAorICAgICkg ZAorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQu Z3JhbnRvciA9IGcub2lkKQorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBn X3JvbGVzIGd0IE9OIChkLmdyYW50ZWUgPSBndC5vaWQpCitHUk9VUCBCWSBn LnJvbG5hbWUsIGd0LnJvbG5hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzku Ml9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2NyZWF0ZS5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzBhM2Q0 MwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvY3JlYXRl LnNxbApAQCAtMCwwICsxLDU3IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5j dGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJFTCAlfQoreyUgaW1w b3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBS SVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3Zhcmlh YmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX0KK3slIHNldCBpc19jb2x1bW5z ID0gW10gJX0KK3slIGlmIGRhdGEgJX0KK0NSRUFURSBGVU5DVElPTiB7eyBj b25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0o eyUgaWYgZGF0YS5hcmd1bWVudHMgJX0KK3slIGZvciBwIGluIGRhdGEuYXJn dW1lbnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fSB7JSBl bmRpZiAlfXslIGlmIHAuYXJnbmFtZSAlfXt7IGNvbm58cXRJZGVudChwLmFy Z25hbWUpfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX17e3AuYXJn dHlwZX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxU IHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5s YXN0ICV9LHslIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0l fQorICAgICkKKyAgICBSRVRVUk5TeyUgaWYgZGF0YS5wcm9yZXRzZXQgJX0g U0VUT0Z7JSBlbmRpZiAlfSB7eyBjb25ufHF0VHlwZUlkZW50KGRhdGEucHJv cmV0dHlwZW5hbWUpIH19CisgICAgTEFOR1VBR0Uge3sgZGF0YS5sYW5uYW1l fHF0TGl0ZXJhbCB9fQorICAgIHslIGlmIGRhdGEucHJvdm9sYXRpbGUgJX17 eyBkYXRhLnByb3ZvbGF0aWxlIH19IHslIGVuZGlmICV9eyUgaWYgZGF0YS5w cm9sZWFrcHJvb2YgJX0gTEVBS1BST09GIHslIGVsc2UgJX0gTk9UIExFQUtQ Uk9PRiB7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9pc3N0cmljdCAlfVNU UklDVCB7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9zZWNkZWYgJX1TRUNV UklUWSBERUZJTkVSIHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb2lzd2lu ZG93ICV9V0lORE9XeyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb2Nvc3QgJX0K KworICAgIENPU1Qge3tkYXRhLnByb2Nvc3R9fXslIGVuZGlmICV9eyUgaWYg ZGF0YS5wcm9yb3dzICV9CisKKyAgICBST1dTIHt7ZGF0YS5wcm9yb3dzfX17 JSBlbmRpZiAtJX17JSBpZiBkYXRhLnZhcmlhYmxlcyAlfXslIGZvciB2IGlu IGRhdGEudmFyaWFibGVzICV9CisKKyAgICBTRVQge3sgY29ubnxxdElkZW50 KHYubmFtZSkgfX09e3sgdi52YWx1ZXxxdExpdGVyYWwgfX17JSBlbmRmb3Ig JX0KK3slIGVuZGlmICV9CisKK0FTIHslIGlmIGRhdGEubGFubmFtZSA9PSAn YycgJX0KK3t7IGRhdGEucHJvYmlufHF0TGl0ZXJhbCB9fSwge3sgZGF0YS5w cm9zcmNfY3xxdExpdGVyYWwgfX0KK3slIGVsc2UgJX0KKyRmdW5jdGlvbiQK K3t7IGRhdGEucHJvc3JjIH19CiskZnVuY3Rpb24keyUgZW5kaWYgLSV9Owor eyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIgRlVOQ1RJT04ge3sg Y29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19 KHt7ZGF0YS5mdW5jX2FyZ3N9fSkKKyAgICBPV05FUiBUTyB7eyBkYXRhLmZ1 bmNvd25lciB9fTsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5hY2wgJX0K K3slIGZvciBwIGluIGRhdGEuYWNsICV9CisKK3t7IFBSSVZJTEVHRS5TRVQo Y29ubiwgIkZVTkNUSU9OIiwgcC5ncmFudGVlLCBkYXRhLm5hbWUsIHAud2l0 aG91dF9ncmFudCwgcC53aXRoX2dyYW50LCBkYXRhLnByb25hbWVzcGFjZSwg ZGF0YS5mdW5jX2FyZ3MpfX0KK3slIGVuZGZvciAtJX0KK3slIGVuZGlmIC0l fQoreyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorCitDT01NRU5UIE9OIEZV TkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0 YS5uYW1lKSB9fSh7e2RhdGEuZnVuY19hcmdzfX0pCisgICAgSVMgJ3t7IGRh dGEuZGVzY3JpcHRpb24gfX0nOworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRh LnNlY2xhYmVscyAlfQoreyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0K K3slIGlmIHIuc2VjdXJpdHlfbGFiZWwgYW5kIHIucHJvdmlkZXIgJX0KKwor e3sgU0VDTEFCRUwuU0VUKGNvbm4sICdGVU5DVElPTicsIGRhdGEubmFtZSwg ci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCwgZGF0YS5wcm9uYW1lc3Bh Y2UsIGRhdGEuZnVuY19hcmdzKSB9fQoreyUgZW5kaWYgJX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGVuZGlmIC0lfQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wcGFzL3NxbC85LjJfcGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJf cGx1cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmMyNDk3MGMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzku Ml9wbHVzL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwyMiBAQAoreyUgaWYgc2Np ZCBhbmQgZm5pZCAlfQorU0VMRUNUCisgICAgcHIucHJvbmFtZSBhcyBuYW1l LCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVu Y3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScg YXMgZnVuY19hcmdzLAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19wcm9j IHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0 eXBlCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXBy LnByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisg ICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQg dHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQor ICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTsKK3slIGVuZGlmICV9CisKK3sl IGlmIG5hbWUgJX0KK0RST1AgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG5z cG5hbWUsIG5hbWUpIH19e3tmdW5jX2FyZ3N9fXslIGlmIGNhc2NhZGUlfSBD QVNDQURFeyUKK2VuZGlmICV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cHBhcy9zcWwvOS4yX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3Nx bC85LjJfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNTg5ZWNjZQotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCkBAIC0w LDAgKzEsMTEgQEAKK1NFTEVDVAorICAgIHBnX2dldF9mdW5jdGlvbmRlZih7 e2ZuaWR9fTo6b2lkKSBBUyBmdW5jX2RlZiwKKyAgICBuc3BuYW1lIHx8ICcu JyB8fCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9n LnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwg JycpIHx8ICcpJyBhcyBuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9J TgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1l c3BhY2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBw cm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHByLm9pZCA9 IHt7Zm5pZH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVz L2dldF9sYW5ndWFnZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRfbGFu Z3VhZ2VzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5mODFkZGZiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1 cy9nZXRfbGFuZ3VhZ2VzLnNxbApAQCAtMCwwICsxLDQgQEAKK1NFTEVDVAor ICAgIGxhbm5hbWUgYXMgbGFiZWwsIGxhbm5hbWUgYXMgdmFsdWUKK0ZST00K KyAgICBwZ19sYW5ndWFnZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3Bs dXMvZ2V0X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9vaWQuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiYzc2YTIK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9vaWQu c3FsCkBAIC0wLDAgKzEsMTcgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIu cHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5w Z19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcn KSB8fCAnKScgYXMgbmFtZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5 aWQocHJvb3duZXIpIGFzIGZ1bmNvd25lcgorRlJPTQorICAgIHBnX3Byb2Mg cHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5 cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9s YW5nCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXBy LnByb25hbWVzcGFjZQorICAgIEFORCBuc3AubnNwbmFtZT17eyBuc3BuYW1l fHF0TGl0ZXJhbCB9fQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisg ICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmln Z2VyJykKKyAgICBBTkQgcHIucHJvbmFtZSA9IHt7IG5hbWV8cXRMaXRlcmFs IH19OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRfb3V0X3R5 cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X291dF90eXBlcy5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRhMTE4Nwot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X291dF90 eXBlcy5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBmb3JtYXRf dHlwZShvaWQsIE5VTEwpIEFTIG91dF9hcmdfdHlwZQorRlJPTQorICAgIHBn X3R5cGUKK1dIRVJFCisgICAgb2lkID0ge3sgb3V0X2FyZ19vaWQgfX06Om9p ZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X3NjaGVtYS5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9zY2hlbWEuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyN2Q0YjkKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9zY2hlbWEuc3FsCkBA IC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgbnNwbmFtZQorRlJPTQorICAg IHBnX25hbWVzcGFjZQorV0hFUkUKKyAgICBvaWQgPSB7eyBzY2lkIH19Ojpv aWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF90eXBlcy5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF90eXBlcy5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE1NTgyZQotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X3R5cGVzLnNxbApAQCAt MCwwICsxLDIwIEBACitTRUxFQ1QKKyAgICAqCitGUk9NCisgICAgKFNFTEVD VAorICAgICAgICBmb3JtYXRfdHlwZSh0Lm9pZCxOVUxMKSBBUyB0eXBuYW1l LAorICAgICAgICBDQVNFIFdIRU4gdHlwZWxlbSA+IDAgVEhFTiB0eXBlbGVt IEVMU0UgdC5vaWQgRU5EIGFzIGVsZW1vaWQsIHR5cGxlbiwgdHlwdHlwZSwg dC5vaWQsIG5zcG5hbWUsCisgICAgICAgIChTRUxFQ1QgQ09VTlQoMSkgRlJP TSBwZ190eXBlIHQyIFdIRVJFIHQyLnR5cG5hbWUgPSB0LnR5cG5hbWUpID4g MSBBUyBpc2R1cAorICAgIEZST00KKyAgICAgICAgcGdfdHlwZSB0CisgICAg Sk9JTgorICAgICAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIHR5cG5hbWVzcGFj ZT1uc3Aub2lkCisgICAgV0hFUkUKKyAgICAgICAgKE5PVCAodHlwbmFtZSA9 ICd1bmtub3duJyBBTkQgbnNwbmFtZSA9ICdwZ19jYXRhbG9nJykpCisgICAg QU5ECisgICAgICAgICgKKyAgICAgICAgICAgIHR5cHR5cGUgSU4gKCdiJywg J2MnLCAnZCcsICdlJywgJ3AnLCAncicpCisgICAgICAgICAgICBBTkQgdHlw bmFtZSBOT1QgSU4gKCdhbnknLCAndHJpZ2dlcicsICdsYW5ndWFnZV9oYW5k bGVyJywgJ2V2ZW50X3RyaWdnZXInKQorICAgICAgICApCisgICAgKSBBUyBk dW1teQorT1JERVIgQlkgbnNwbmFtZSA8PiAncGdfY2F0YWxvZycsIG5zcG5h bWUgPD4gJ3B1YmxpYycsIG5zcG5hbWUsIDE7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMv c3FsLzkuMl9wbHVzL25vZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9ub2Rl LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jN2Y0 MTU5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9ub2Rl LnNxbApAQCAtMCwwICsxLDE4IEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHBy LnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cucGdfZ2V0 X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwg JyknIEFTIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHBy b293bmVyKSBBUyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uCitGUk9NCisgICAg cGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9 cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcu b2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0 aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29p ZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwcm9pc2FnZyA9 IEZBTFNFCisgICAgQU5EIHByLnByb3R5cGUgPSAnMCc6OmNoYXIKKyAgICBB TkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBu YW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCitPUkRF UiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9w bHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9wcm9wZXJ0 aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m Zjc4Mjk4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9w cm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDMxIEBACitTRUxFQ1QKKyAgICBw ci5vaWQsIHByLnhtaW4sIHByLiosIHByLnByb3NyYyBBUyBwcm9zcmNfYywK KyAgICBwci5wcm9uYW1lIEFTIG5hbWUsIHBnX2dldF9mdW5jdGlvbl9yZXN1 bHQocHIub2lkKSBBUyBwcm9yZXR0eXBlbmFtZSwKKyAgICB0eXBucy5uc3Bu YW1lIEFTIHR5cG5zcCwgbGFubmFtZSwgcHJvYXJnbmFtZXMsIG9pZHZlY3Rv cnR5cGVzKHByb2FyZ3R5cGVzKSBBUyBwcm9hcmd0eXBlbmFtZXMsCisgICAg cGdfZ2V0X2V4cHIocHJvYXJnZGVmYXVsdHMsICdwZ19jYXRhbG9nLnBnX2Ns YXNzJzo6cmVnY2xhc3MpIEFTIHByb2FyZ2RlZmF1bHR2YWxzLAorICAgIHBy b25hcmdkZWZhdWx0cywgcHJvY29uZmlnLCBwZ19nZXRfdXNlcmJ5aWQocHJv b3duZXIpIEFTIGZ1bmNvd25lciwgZGVzY3JpcHRpb24sCisgICAgKFNFTEVD VAorICAgICAgICBhcnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxhYmVs KQorICAgIEZST00KKyAgICAgICAgcGdfc2hzZWNsYWJlbCBzbDEKKyAgICBX SEVSRQorICAgICAgICBzbDEub2Jqb2lkPXByLm9pZCkgQVMgc2VjbGFiZWxz CitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlw IE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFj ZSB0eXBucyBPTiB0eXBucy5vaWQ9dHlwLnR5cG5hbWVzcGFjZQorSk9JTgor ICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQg T1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9i am9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2Ns YXNzKQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHBy b25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBO T1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQoreyUgaWYgZm5p ZCAlfQorICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTo6b2lkCit7JSBlbmRp ZiAlfQorT1JERVIgQlkKKyAgICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFz L3NxbC85LjJfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy91 cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjViNjA1OTAKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVz L3VwZGF0ZS5zcWwKQEAgLTAsMCArMSwxMTQgQEAKK3slIGltcG9ydCAnbWFj cm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkVMICV9 Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3Jv cycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlv bnMvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfXslIGlmIGRhdGEg JX0KK3slIHNldCBuYW1lID0gb19kYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEu bmFtZSAlfQoreyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitB TFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVz cGFjZSwgb19kYXRhLm5hbWUpIH19KHt7b19kYXRhLnByb2FyZ3R5cGVuYW1l cyB9fSkKKyAgICBSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50KGRhdGEubmFt ZSkgfX07Cit7JSBzZXQgbmFtZSA9IGRhdGEubmFtZSAlfQoreyUgZW5kaWYg JX0KK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyAgJX0K KworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50 KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHslIGlmIGRhdGEuYXJn dW1lbnRzICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFyZ3VtZW50cyAlfXslIGlm IHAuYXJnbW9kZSAlfXt7cC5hcmdtb2RlfX0geyUgZW5kaWYgJX17JSBpZiBw LmFyZ25hbWUgJX17e2Nvbm58cXRJZGVudChwLmFyZ25hbWUpfX0geyUgZW5k aWYgJX17JSBpZiBwLmFyZ3R5cGUgJX17e3AuYXJndHlwZX19eyUgZW5kaWYg JX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9 fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LCB7JSBlbmRp ZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKykKKyAgICBSRVRV Uk5TIHt7IG9fZGF0YS5wcm9yZXR0eXBlbmFtZSB9fQoreyUgaWYgJ2xhbm5h bWUnIGluIGRhdGEgJX0KKyAgICBMQU5HVUFHRSB7eyBkYXRhLmxhbm5hbWV8 cXRMaXRlcmFsIH19eyUgZWxzZSAlfQorICAgIExBTkdVQUdFIHt7IG9fZGF0 YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fQorICAgIHslIGVuZGlmICV9eyUgaWYg J3Byb3ZvbGF0aWxlJyBpbiBkYXRhIGFuZCBkYXRhLnByb3ZvbGF0aWxlICV9 e3sgZGF0YS5wcm92b2xhdGlsZSB9fSB7JSBlbGlmICdwcm92b2xhdGlsZScg bm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm92b2xhdGlsZSAlfXt7IG9fZGF0 YS5wcm92b2xhdGlsZSB9fXslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2xlYWtw cm9vZicgaW4gZGF0YSBhbmQgZGF0YS5wcm9sZWFrcHJvb2YpIG9yICgncHJv bGVha3Byb29mJyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2xlYWtwcm9v ZikgJX0gTEVBS1BST09GeyUgZWxpZiAncHJvbGVha3Byb29mJyBpbiBkYXRh IGFuZCBub3QgZGF0YS5wcm9sZWFrcHJvb2YgJX0gTk9UIExFQUtQUk9PRnsl IGVuZGlmICV9Cit7JSBpZiAoJ3Byb2lzc3RyaWN0JyBpbiBkYXRhIGFuZCBk YXRhLnByb2lzc3RyaWN0KSBvciAoJ3Byb2lzc3RyaWN0JyBub3QgaW4gZGF0 YSBhbmQgb19kYXRhLnByb2lzc3RyaWN0KSAlfSBTVFJJQ1R7JSBlbmRpZiAl fQoreyUgaWYgKCdwcm9zZWNkZWYnIGluIGRhdGEgYW5kIGRhdGEucHJvc2Vj ZGVmKSBvciAoJ3Byb3NlY2RlZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5w cm9zZWNkZWYpICV9IFNFQ1VSSVRZIERFRklORVJ7JSBlbmRpZiAlfQoreyUg aWYgKCdwcm9pc3dpbmRvdycgaW4gZGF0YSBhbmQgZGF0YS5wcm9pc3dpbmRv dykgb3IgKCdwcm9pc3dpbmRvdycgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5w cm9pc3dpbmRvdykgJX0gV0lORE9XeyUgZW5kaWYgJX0KKworICAgIHslIGlm IGRhdGEucHJvY29zdCAlfUNPU1Qge3tkYXRhLnByb2Nvc3R9fXslIGVsaWYg b19kYXRhLnByb2Nvc3QgJX1DT1NUIHt7b19kYXRhLnByb2Nvc3R9fXslIGVu ZGlmICV9eyUgaWYgZGF0YS5wcm9yb3dzICV9CisKKyAgICBST1dTIHt7ZGF0 YS5wcm9yb3dzfX17JSBlbGlmIG9fZGF0YS5wcm9yb3dzICV9Uk9XUyB7e29f ZGF0YS5wcm9yb3dzfX17JSBlbmRpZiAtJX17JSBpZiBkYXRhLm1lcmdlZF92 YXJpYWJsZXMgJX17JSBmb3IgdiBpbiBkYXRhLm1lcmdlZF92YXJpYWJsZXMg JX0KKworICAgIFNFVCB7eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17eyB2 LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAtJX0KKyAgICB7JSBlbmRp ZiAlfQorCitBUyB7JSBpZiAncHJvYmluJyBpbiBkYXRhIG9yICdwcm9zcmNf YycgaW4gZGF0YSAlfQoreyUgaWYgJ3Byb2JpbicgaW4gZGF0YSAlfXt7IGRh dGEucHJvYmlufHF0TGl0ZXJhbCB9fXslIGVsc2UgJX17eyBvX2RhdGEucHJv YmlufHF0TGl0ZXJhbCB9fXslIGVuZGlmICV9LCB7JSBpZiAncHJvc3JjX2Mn IGluIGRhdGEgJX17eyBkYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fXslIGVs c2UgJX17eyBvX2RhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZW5kaWYg JX17JSBlbGlmICdwcm9zcmMnIGluIGRhdGEgJX0KKyRmdW5jdGlvbiR7eyBk YXRhLnByb3NyYyB9fSRmdW5jdGlvbiR7JSBlbGlmIG9fZGF0YS5sYW5uYW1l ID09ICdjJyAlfQore3sgb19kYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7 IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17JSBlbHNlICV9CiskZnVu Y3Rpb24ke3sgb19kYXRhLnByb3NyYyB9fSRmdW5jdGlvbiR7JSBlbmRpZiAt JX07Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5mdW5jb3duZXIgJX0K KworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9u YW1lc3BhY2UsIG5hbWUpIH19KHt7IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMg fX0pCisgICAgT1dORVIgVE8ge3sgZGF0YS5mdW5jb3duZXIgfX07Cit7JSBl bmRpZiAtJX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hh bmdlIHByaXZpbGVkZ2VzICN9Cit7JSBpZiBkYXRhLmFjbCAlfQoreyUgaWYg J2RlbGV0ZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRh LmFjbC5kZWxldGVkICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25u LCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YS5wcm9u YW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEu YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5jaGFuZ2VkICV9CisK K3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnRlVOQ1RJT04nLCBwcml2 LmdyYW50ZWUsIG5hbWUsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5w cm9hcmd0eXBlbmFtZXMpIH19CisKK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwg J0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhvdXRf Z3JhbnQsIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFjZSwg b19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgLSV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEuYWNsICV9Cit7JSBm b3IgcHJpdiBpbiBkYXRhLmFjbC5hZGRlZCAlfQorCit7eyBQUklWSUxFR0Uu U0VUKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJp di53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9u YW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEu Y2hhbmdlX2Z1bmMgPT0gRmFsc2UgJX0KK3slIGlmIGRhdGEudmFyaWFibGVz ICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS52YXJpYWJsZXMgYW5kIGRh dGEudmFyaWFibGVzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQorCit7eyBWQVJJ QUJMRS5VTlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCBkYXRhLnZhcmlh Ymxlcy5kZWxldGVkLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJv YXJndHlwZW5hbWVzICkgfX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ21lcmdl ZF92YXJpYWJsZXMnIGluIGRhdGEgYW5kIGRhdGEubWVyZ2VkX3ZhcmlhYmxl c3xsZW5ndGggPiAwICV9CisKK3t7IFZBUklBQkxFLlNFVChjb25uLCAnRlVO Q1RJT04nLCBuYW1lLCBkYXRhLm1lcmdlZF92YXJpYWJsZXMsIG9fZGF0YS5w cm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgKSB9fQoreyUg ZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0lfQoreyUgc2V0 IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiAnZGVsZXRl ZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGgg PiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVsZXRlZCAlfQorCit7 eyBTRUNMQUJFTC5VTlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnBy b3ZpZGVyLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlw ZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlm ICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVu Z3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9CisK K3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnBy b3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNl LCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7 JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5k IHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGlu IHNlY2xhYmVscy5jaGFuZ2VkICV9CisKK3t7IFNFQ0xBQkVMLlNFVChjb25u LCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xh YmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5h bWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRh dGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBPTiBGVU5DVElPTiB7eyBj b25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oe3sg b19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBJUyB7eyBkYXRhLmRl c2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmIC0lfQoreyUgaWYg ZGF0YS5wcm9uYW1lc3BhY2UgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29u bnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7IG9f ZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgU0VUIFNDSEVNQSB7eyBj b25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UpIH19OworeyUgZW5kaWYg LSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9w bHVzL3ZhcmlhYmxlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL3ZhcmlhYmxl cy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIz M2M3MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvdmFy aWFibGVzLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5hbWUs IHZhcnR5cGUsIG1pbl92YWwsIG1heF92YWwsIGVudW12YWxzCitGUk9NCisg ICAgcGdfc2V0dGluZ3MKK1dIRVJFCisgICAgY29udGV4dCBpbiAoJ3VzZXIn LCAnc3VwZXJ1c2VyJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVz L2FjbC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2FjbC5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQzZTBkMQotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvYWNsLnNxbApAQCAtMCwwICsx LDM1IEBACitTRUxFQ1QKKyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAncHVi bGljJykgQVMgZ3JhbnRlZSwKKyAgICBnLnJvbG5hbWUgQVMgZ3JhbnRvciwg YXJyYXlfYWdnKHByaXZpbGVnZV90eXBlKSBBUyBwcml2aWxlZ2VzLAorICAg IGFycmF5X2FnZyhpc19ncmFudGFibGUpIEFTIGdyYW50YWJsZQorRlJPTQor ICAgIChTRUxFQ1QKKyAgICAgICAgZC5ncmFudGVlLCBkLmdyYW50b3IsIGQu aXNfZ3JhbnRhYmxlLAorICAgICAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUK KyAgICAgICAgV0hFTiAnQ09OTkVDVCcgVEhFTiAnYycKKyAgICAgICAgV0hF TiAnQ1JFQVRFJyBUSEVOICdDJworICAgICAgICBXSEVOICdERUxFVEUnIFRI RU4gJ2QnCisgICAgICAgIFdIRU4gJ0VYRUNVVEUnIFRIRU4gJ1gnCisgICAg ICAgIFdIRU4gJ0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVG RVJFTkNFUycgVEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVO ICdyJworICAgICAgICBXSEVOICdURU1QT1JBUlknIFRIRU4gJ1QnCisgICAg ICAgIFdIRU4gJ1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1RS VU5DQVRFJyBUSEVOICdEJworICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4g J3cnCisgICAgICAgIFdIRU4gJ1VTQUdFJyBUSEVOICdVJworICAgICAgICBF TFNFICdVTktOT1dOJworICAgICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUK KyAgICBGUk9NCisgICAgICAgIChTRUxFQ1QKKyAgICAgICAgICAgIChkKS5n cmFudGVlIEFTIGdyYW50ZWUsIChkKS5ncmFudG9yIEFTIGdyYW50b3IsCisg ICAgICAgICAgICAoZCkuaXNfZ3JhbnRhYmxlIEFTIGlzX2dyYW50YWJsZSwK KyAgICAgICAgICAgIChkKS5wcml2aWxlZ2VfdHlwZSBBUyBwcml2aWxlZ2Vf dHlwZQorICAgICAgICBGUk9NCisgICAgICAgICAgICAoU0VMRUNUIGFjbGV4 cGxvZGUoZGIucHJvYWNsKSBBUyBkIEZST00gcGdfcHJvYyBkYgorICAgICAg ICAgICAgV0hFUkUgZGIub2lkID0ge3tmbmlkfX06Ok9JRCkgYQorICAgICAg ICApIGQKKyAgICApIGQKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19y b2xlcyBnIE9OIChkLmdyYW50b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpPSU4g cGdfY2F0YWxvZy5wZ19yb2xlcyBndCBPTiAoZC5ncmFudGVlID0gZ3Qub2lk KQorR1JPVVAgQlkgZy5yb2xuYW1lLCBndC5yb2xuYW1lOwpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wcGFzL3NxbC85LjVfcGx1cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVf cGx1cy9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjZiYzAxYzIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzku NV9wbHVzL2NyZWF0ZS5zcWwKQEAgLTAsMCArMSw1NyBAQAoreyUgaW1wb3J0 ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFC RUwgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2Uu bWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1 bmN0aW9ucy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9Cit7JSBz ZXQgaXNfY29sdW1ucyA9IFtdICV9Cit7JSBpZiBkYXRhICV9CitDUkVBVEUg RlVOQ1RJT04ge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBk YXRhLm5hbWUpIH19KHslIGlmIGRhdGEKKy5hcmd1bWVudHMgJX0KK3slIGZv ciBwIGluIGRhdGEuYXJndW1lbnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3tw LmFyZ21vZGV9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFtZSAlfXt7IGNv bm58cXRJZGVudChwLmFyZ25hbWUpfX17JSBlbmRpZiAlfXslIGlmIHAuYXJn dHlwZSAlfXt7cC5hcmd0eXBlfX17JSBlbmRpZiAlfXslIGlmIHAuYXJnZGVm dmFsICV9IERFRkFVTFQge3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0KK3sl IGlmIG5vdCBsb29wLmxhc3QgJX0seyUgZW5kaWYgJX0KK3slIGVuZGZvciAl fQoreyUgZW5kaWYgLSV9CisgICAgKQorICAgIFJFVFVSTlN7JSBpZiBkYXRh LnByb3JldHNldCAlfSBTRVRPRnslIGVuZGlmICV9IHt7IGNvbm58cXRUeXBl SWRlbnQoZGF0YS5wcm9yZXR0eXBlbmFtZSkgfX0KKyAgICBMQU5HVUFHRSB7 eyBkYXRhLmxhbm5hbWV8cXRMaXRlcmFsIH19CisgICAgeyUgaWYgZGF0YS5w cm92b2xhdGlsZSAlfXt7IGRhdGEucHJvdm9sYXRpbGUgfX0geyUgZW5kaWYg JX17JSBpZiBkYXRhLnByb2xlYWtwcm9vZiAlfSBMRUFLUFJPT0YgeyUgZWxz ZSAlfSBOT1QgTEVBS1BST09GIHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnBy 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 ZGVyICV9CisKK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnRlVOQ1RJT04nLCBk 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 IDAwMDAwMDAuLjI4ZTM2NDIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3Fs LzkuNV9wbHVzL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSwxMTQgQEAKK3slIGlt cG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNF Q0xBQkVMICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmls 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 LnByb2xlYWtwcm9vZikgJX0gTEVBS1BST09GeyUgZWxpZiAncHJvbGVha3By b29mJyBpbiBkYXRhIGFuZCBub3QgZGF0YS5wcm9sZWFrcHJvb2YgJX0gTk9U IExFQUtQUk9PRnslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2lzc3RyaWN0JyBp biBkYXRhIGFuZCBkYXRhLnByb2lzc3RyaWN0KSBvciAoJ3Byb2lzc3RyaWN0 JyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2lzc3RyaWN0KSAlfSBTVFJJ Q1R7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9zZWNkZWYnIGluIGRhdGEgYW5k IGRhdGEucHJvc2VjZGVmKSBvciAoJ3Byb3NlY2RlZicgbm90IGluIGRhdGEg YW5kIG9fZGF0YS5wcm9zZWNkZWYpICV9IFNFQ1VSSVRZIERFRklORVJ7JSBl bmRpZiAlfQoreyUgaWYgKCdwcm9pc3dpbmRvdycgaW4gZGF0YSBhbmQgZGF0 YS5wcm9pc3dpbmRvdykgb3IgKCdwcm9pc3dpbmRvdycgbm90IGluIGRhdGEg YW5kIG9fZGF0YS5wcm9pc3dpbmRvdykgJX0gV0lORE9XeyUgZW5kaWYgJX0K KworICAgIHslIGlmIGRhdGEucHJvY29zdCAlfUNPU1Qge3tkYXRhLnByb2Nv c3R9fXslIGVsaWYgb19kYXRhLnByb2Nvc3QgJX1DT1NUIHt7b19kYXRhLnBy b2Nvc3R9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9yb3dzICV9CisKKyAg ICBST1dTIHt7ZGF0YS5wcm9yb3dzfX17JSBlbGlmIG9fZGF0YS5wcm9yb3dz ICV9Uk9XUyB7e29fZGF0YS5wcm9yb3dzfX0geyVlbmRpZiAtJX17JSBpZiBk YXRhLm1lcmdlZF92YXJpYWJsZXMgJX17JSBmb3IgdiBpbiBkYXRhLm1lcmdl ZF92YXJpYWJsZXMgJX0KKworICAgIFNFVCB7eyBjb25ufHF0SWRlbnQodi5u YW1lKSB9fT17eyB2LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAtJX0K KyAgICB7JSBlbmRpZiAlfQorCitBUyB7JSBpZiAncHJvYmluJyBpbiBkYXRh IG9yICdwcm9zcmNfYycgaW4gZGF0YSAlfQoreyUgaWYgJ3Byb2JpbicgaW4g ZGF0YSAlfXt7IGRhdGEucHJvYmlufHF0TGl0ZXJhbCB9fXslIGVsc2UgJX17 eyBvX2RhdGEucHJvYmlufHF0TGl0ZXJhbCB9fXslIGVuZGlmICV9LCB7JSBp ZiAncHJvc3JjX2MnIGluIGRhdGEgJX17eyBkYXRhLnByb3NyY19jfHF0TGl0 ZXJhbCB9fXslIGVsc2UgJX17eyBvX2RhdGEucHJvc3JjX2N8cXRMaXRlcmFs IH19eyUgZW5kaWYgJX17JSBlbGlmICdwcm9zcmMnIGluIGRhdGEgJX0KKyRm dW5jdGlvbiR7eyBkYXRhLnByb3NyYyB9fSRmdW5jdGlvbiR7JSBlbGlmIG9f ZGF0YS5sYW5uYW1lID09ICdjJyAlfQore3sgb19kYXRhLnByb2JpbnxxdExp dGVyYWwgfX0sIHt7IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17JSBl bHNlICV9CiskZnVuY3Rpb24ke3sgb19kYXRhLnByb3NyYyB9fSRmdW5jdGlv biR7JSBlbmRpZiAtJX07Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuZnVu Y293bmVyICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChv X2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7e29fZGF0YS5wcm9hcmd0 eXBlbmFtZXMgfX0pCisgICAgT1dORVIgVE8ge3sgZGF0YS5mdW5jb3duZXIg fX07Cit7JSBlbmRpZiAtJX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93 IHdpbGwgY2hhbmdlIHByaXZpbGVkZ2VzICN9Cit7JSBpZiBkYXRhLmFjbCAl fQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJp diBpbiBkYXRhLmFjbC5kZWxldGVkICV9CisKK3t7IFBSSVZJTEVHRS5VTlNF VEFMTChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2NoYW5nZWQn IGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5j aGFuZ2VkICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnRlVO Q1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19CisKK3t7IFBSSVZJTEVH RS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBw cml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnBy b25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVu ZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEu YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5hZGRlZCAlfQorCit7 eyBQUklWSUxFR0UuU0VUKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRl ZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQs IG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMp IH19Cit7JSBlbmRmb3IgJX17JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0lfQor eyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyA9PSBGYWxzZSAlfQoreyUgaWYgZGF0 YS52YXJpYWJsZXMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLnZhcmlh YmxlcyBhbmQgZGF0YS52YXJpYWJsZXMuZGVsZXRlZHxsZW5ndGggPiAwICV9 CisKK3t7IFZBUklBQkxFLlVOU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUs IGRhdGEudmFyaWFibGVzLmRlbGV0ZWQsIG9fZGF0YS5wcm9uYW1lc3BhY2Us IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRpZiAtJX0KK3sl IGlmICdtZXJnZWRfdmFyaWFibGVzJyBpbiBkYXRhIGFuZCBkYXRhLm1lcmdl ZF92YXJpYWJsZXN8bGVuZ3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5TRVQo Y29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgZGF0YS5tZXJnZWRfdmFyaWFibGVz LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVz KSB9fQoreyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0l fQoreyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBp ZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRl ZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVsZXRl ZCAlfQorCit7eyBTRUNMQUJFTC5VTlNFVChjb25uLCAnRlVOQ1RJT04nLCBu YW1lLCByLnByb3ZpZGVyLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEu cHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAt JX0KK3slIGlmICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMu YWRkZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFk ZGVkICV9CisKK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnRlVOQ1RJT04nLCBu YW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBvX2RhdGEucHJv bmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNs YWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3sl IGZvciByIGluIHNlY2xhYmVscy5jaGFuZ2VkICV9CisKK3t7IFNFQ0xBQkVM LlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCByLnNl Y3VyaXR5X2xhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJv YXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0K K3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBPTiBGVU5D VElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFt ZSkgfX0oe3tvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIElTIHt7 IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsIH19OworeyUgZW5kaWYgLSV9 CisKK3slIGlmIGRhdGEucHJvbmFtZXNwYWNlICV9CisKK0FMVEVSIEZVTkNU SU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1l KSB9fSh7e29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgU0VUIFND SEVNQSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UpIH19Owor eyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMv c3FsLzkuNV9wbHVzL3ZhcmlhYmxlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVz L3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uNTIzM2M3MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41 X3BsdXMvdmFyaWFibGVzLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAor ICAgIG5hbWUsIHZhcnR5cGUsIG1pbl92YWwsIG1heF92YWwsIGVudW12YWxz CitGUk9NCisgICAgcGdfc2V0dGluZ3MKK1dIRVJFCisgICAgY29udGV4dCBp biAoJ3VzZXInLCAnc3VwZXJ1c2VyJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9qcy9wcm9j ZWR1cmVzLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvanMvcHJvY2VkdXJlcy5qcwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5mNTBmZmU5Ci0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1 cmUvanMvcHJvY2VkdXJlcy5qcwpAQCAtMCwwICsxLDE3MSBAQAorLyogQ3Jl YXRlIGFuZCBSZWdpc3RlciBQcm9jZWR1cmUgQ29sbGVjdGlvbiBhbmQgTm9k ZS4gKi8KK2RlZmluZSgKKyAgICAgICAgWydqcXVlcnknLCAndW5kZXJzY29y ZScsICd1bmRlcnNjb3JlLnN0cmluZycsCisgICAgICAgICAncGdhZG1pbics ICdwZ2FkbWluLmJyb3dzZXInLCAnYWxlcnRpZnknLAorICAgICAgICAgJ3Bn YWRtaW4ubm9kZS5mdW5jdGlvbicsICdwZ2FkbWluLmJyb3dzZXIuY29sbGVj dGlvbicsCisgICAgICAgICAncGdhZG1pbi5icm93c2VyLnNlcnZlci5wcml2 aWxlZ2UnXSwKK2Z1bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3Nl ciwgYWxlcnRpZnksIEZ1bmN0aW9uKSB7CisKKyAgaWYgKCFwZ0Jyb3dzZXIu Tm9kZXNbJ2NvbGwtcHJvY2VkdXJlJ10pIHsKKyAgICB2YXIgcHJvY2VkdXJl cyA9IHBnQWRtaW4uQnJvd3Nlci5Ob2Rlc1snY29sbC1wcm9jZWR1cmUnXSA9 CisgICAgICBwZ0FkbWluLkJyb3dzZXIuQ29sbGVjdGlvbi5leHRlbmQoewor ICAgICAgICBub2RlOiAncHJvY2VkdXJlJywKKyAgICAgICAgbGFiZWw6ICd7 eyBfKCdQcm9jZWR1cmVzJykgfX0nLAorICAgICAgICB0eXBlOiAnY29sbC1w cm9jZWR1cmUnLAorICAgICAgICBjb2x1bW5zOiBbJ25hbWUnLCAnZnVuY293 bmVyJywgJ2Rlc2NyaXB0aW9uJ10KKyAgICAgIH0pOworICB9OworCisgIHBn U2NoZW1hTm9kZSA9IHBnQnJvd3Nlci5Ob2Rlc1snc2NoZW1hJ107CisKKyAg Ly8gSW5oZXJpdCBGdW5jdGlvbnMgTm9kZQorICBpZiAoIXBnQnJvd3Nlci5O b2Rlc1sncHJvY2VkdXJlJ10pIHsKKyAgICBwZ0FkbWluLkJyb3dzZXIuTm9k ZXNbJ3Byb2NlZHVyZSddID0gRnVuY3Rpb24uZXh0ZW5kKHsKKyAgICAgIHR5 cGU6ICdwcm9jZWR1cmUnLAorICAgICAgbGFiZWw6ICd7eyBfKCdQcm9jZWR1 cmUnKSB9fScsCisgICAgICBjb2xsZWN0aW9uX3R5cGU6ICdjb2xsLXByb2Nl ZHVyZScsCisgICAgICBoYXNTUUw6IHRydWUsCisgICAgICBoYXNEZXBlbmRz OiB0cnVlLAorICAgICAgcGFyZW50X3R5cGU6IFsnc2NoZW1hJ10sCisgICAg ICBJbml0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgLyogQXZvaWQgbXVsaXRw bGUgcmVnaXN0cmF0aW9uIG9mIG1lbnVzICovCisgICAgICAgIGlmICh0aGlz LnByb2NfaW5pdGlhbGl6ZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAg ICAgICAgdGhpcy5wcm9jX2luaXRpYWxpemVkID0gdHJ1ZTsKKworICAgICAg ICBwZ0Jyb3dzZXIuYWRkX21lbnVzKFt7CisgICAgICAgICAgbmFtZTogJ2Ny ZWF0ZV9wcm9jZWR1cmVfb25fY29sbCcsIG5vZGU6ICdjb2xsLXByb2NlZHVy ZScsIG1vZHVsZToKKyAgICAgICAgICB0aGlzLAorICAgICAgICAgIGFwcGxp ZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29i al9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScs IHByaW9yaXR5OiA0LCBsYWJlbDogJ3t7IF8oJ1Byb2NlZHVyZS4uLicpIH19 JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tcHJvY2VkdXJl JywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNrOgorICAgICAgICAg IGZhbHNlfQorICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAnY3JlYXRl X3Byb2NlZHVyZScsIG5vZGU6ICdwcm9jZWR1cmUnLCBtb2R1bGU6IHRoaXMs CisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBj YWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNh dGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygn UHJvY2VkdXJlLi4uJykgfX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYklj b24gaWNvbi1wcm9jZWR1cmUnLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJywg Y2hlY2s6CisgICAgICAgICAgdHJ1ZX0sCisgICAgICAgIH0seworICAgICAg ICAgIG5hbWU6ICdjcmVhdGVfcHJvY2VkdXJlJywgbm9kZTogJ3NjaGVtYScs IG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcs ICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycs CisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwg bGFiZWw6ICd7eyBfKCdQcm9jZWR1cmUuLi4nKSB9fScsCisgICAgICAgICAg aWNvbjogJ3djVGFiSWNvbiBpY29uLXByb2NlZHVyZScsIGRhdGE6IHthY3Rp b246ICdjcmVhdGUnLCBjaGVjazoKKyAgICAgICAgICB0cnVlfSwgZW5hYmxl OiAnY2FuQ3JlYXRlUHJvYycKKyAgICAgICAgfQorICAgICAgICBdKTsKKyAg ICAgIH0sCisgICAgICBjYW5Ecm9wOiBwZ1NjaGVtYU5vZGUuY2FuQ2hpbGRE cm9wLAorICAgICAgY2FuRHJvcENhc2NhZGU6IHBnU2NoZW1hTm9kZS5jYW5D aGlsZERyb3AsCisgICAgICBtb2RlbDogRnVuY3Rpb24ubW9kZWwuZXh0ZW5k KHsKKyAgICAgICAgZGVmYXVsdHM6IF8uZXh0ZW5kKHt9LAorICAgICAgICAg IEZ1bmN0aW9uLm1vZGVsLnByb3RvdHlwZS5kZWZhdWx0cywKKyAgICAgICAg ICB7CisgICAgICAgICAgICBsYW5uYW1lOiAnZWRic3BsJworICAgICAgICAg IH0KKyAgICAgICAgKSwKKyAgICAgICAgY2FuVmFyQWRkOiBmdW5jdGlvbiht KXsKKyAgICAgICAgICB2YXIgc2VydmVyID0gdGhpcy5ub2RlX2luZm8uc2Vy dmVyOworICAgICAgICAgICAgaWYgKHNlcnZlci52ZXJzaW9uIDwgOTA1MDAp IHsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICB9 CisgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgIHJldHVybiB0cnVl OworICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIGlzRGlzYWJs ZWQ6IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICBuYW1lID0gdGhpcy5uYW1l OworICAgICAgICAgIHN3aXRjaChuYW1lKXsKKyAgICAgICAgICAgIGNhc2Ug J3Byb3ZvbGF0aWxpdHknOgorICAgICAgICAgICAgY2FzZSAncHJvaXNzdHJp Y3QnOgorICAgICAgICAgICAgY2FzZSAncHJvc2VjZGVmJzoKKyAgICAgICAg ICAgIGNhc2UgJ3Byb2Nvc3QnOgorICAgICAgICAgICAgY2FzZSAncHJvbGVh a3Byb29mJzoKKyAgICAgICAgICAgIGNhc2UgJ3ZhcmlhYmxlcyc6CisgICAg ICAgICAgICAgICB2YXIgc2VydmVyID0gdGhpcy5ub2RlX2luZm8uc2VydmVy OworICAgICAgICAgICAgICAgaWYgKHNlcnZlci52ZXJzaW9uIDwgOTA1MDAp IHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAg ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICdwcm9yb3dzJzoKKyAg ICAgICAgICAgICAgdmFyIHNlcnZlciA9IHRoaXMubm9kZV9pbmZvLnNlcnZl cjsKKyAgICAgICAgICAgICAgaWYoc2VydmVyLnZlcnNpb24gPj0gOTA1MDAg JiYgbS5nZXQoJ3Byb3JldHNldCcpID09IHRydWUpIHsKKyAgICAgICAgICAg ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAgIH0sCisg ICAgICAgdmFsaWRhdGU6IGZ1bmN0aW9uKCkKKyAgICAgICAgeworICAgICAg ICAgIHZhciBlcnIgPSB7fSwKKyAgICAgICAgICAgICAgZXJybXNnLAorICAg ICAgICAgICAgICBzZWNsYWJlbHMgPSB0aGlzLmdldCgnc2VjbGFiZWxzJyk7 CisKKyAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgnbmFt ZScpKSB8fCBTdHJpbmcodGhpcy5nZXQoJ25hbWUnKSkucmVwbGFjZSgvXlxz K3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgZXJyWyduYW1l J10gPSAne3sgXygnTmFtZSBjYW4gbm90IGJlIGVtcHR5IScpIH19JzsKKyAg ICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJbJ25hbWUnXTsKKyAg ICAgICAgICB9CisKKyAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZCh0aGlz LmdldCgncHJvbmFtZXNwYWNlJykpIHx8IFN0cmluZyh0aGlzLmdldCgncHJv bmFtZXNwYWNlJykpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycp IHsKKyAgICAgICAgICAgIGVyclsncHJvbmFtZXNwYWNlJ10gPSAne3sgXygn U2NoZW1hIGNhbiBub3QgYmUgZW1wdHkhJykgfX0nOworICAgICAgICAgICAg ZXJybXNnID0gZXJybXNnIHx8IGVyclsncHJvbmFtZXNwYWNlJ107CisgICAg ICAgICAgfQorCisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5n ZXQoJ2xhbm5hbWUnKSkgfHwgU3RyaW5nKHRoaXMuZ2V0KCdsYW5uYW1lJykp LnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAg ICAgIGVyclsnbGFubmFtZSddID0gJ3t7IF8oJ0xhbmd1YWdlIGNhbiBub3Qg YmUgZW1wdHkhJykgfX0nOworICAgICAgICAgICAgZXJybXNnID0gZXJybXNn IHx8IGVyclsnbGFubmFtZSddOworICAgICAgICAgIH0KKworICAgICAgICAg IGlmIChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCdwcm9zcmMnKSkgfHwgU3Ry aW5nKHRoaXMuZ2V0KCdwcm9zcmMnKSkucmVwbGFjZSgvXlxzK3xccyskL2cs ICcnKSA9PSAnJykgeworICAgICAgICAgICAgZXJyWydwcm9zcmMnXSA9ICd7 eyBfKCdDb2RlIGNhbiBub3QgYmUgZW1wdHkhJykgfX0nOworICAgICAgICAg ICAgZXJybXNnID0gZXJybXNnIHx8IGVyclsncHJvc3JjJ107CisgICAgICAg ICAgfQorCisKKyAgICAgICAgICBpZiAoc2VjbGFiZWxzKSB7CisgICAgICAg ICAgICB2YXIgc2VjTGFiZWxzRXJyOworICAgICAgICAgICAgZm9yICh2YXIg aSA9IDA7IGkgPCBzZWNsYWJlbHMubW9kZWxzLmxlbmd0aCAmJiAhc2VjTGFi ZWxzRXJyOyBpKyspIHsKKyAgICAgICAgICAgICAgc2VjTGFiZWxzRXJyID0g KHNlY2xhYmVscy5tb2RlbHNbaV0pLnZhbGlkYXRlLmFwcGx5KHNlY2xhYmVs cy5tb2RlbHNbaV0pOworICAgICAgICAgICAgICBpZiAoc2VjTGFiZWxzRXJy KSB7CisgICAgICAgICAgICAgICAgZXJyWydzZWNsYWJlbHMnXSA9IHNlY0xh YmVsc0VycjsKKyAgICAgICAgICAgICAgICBlcnJtc2cgPSBlcnJtc2cgfHwg c2VjTGFiZWxzRXJyOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9 CisgICAgICAgICAgfQorCisgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLmNs ZWFyKCkuc2V0KGVycik7CisKKyAgICAgICAgICByZXR1cm4gbnVsbDsKKyAg ICAgICAgfSwKKyAgICAgIH0KKyAgICAgICksCisgICAgICBjYW5DcmVhdGVQ cm9jOiBmdW5jdGlvbihpdGVtRGF0YSwgaXRlbSwgZGF0YSkgeworICAgICAg ICB2YXIgbm9kZV9oaWVyYXJjaHkgPSB0aGlzLmdldFRyZWVOb2RlSGllcmFy Y2h5LmFwcGx5KHRoaXMsIFtpdGVtXSk7CisKKyAgICAgICAgLy8gRG8gbm90 IHByb3ZpZGUgQ3JlYXRlIG9wdGlvbiBpbiBjYXRhbG9nCisgICAgICAgIGlm ICgnY2F0YWxvZycgaW4gbm9kZV9oaWVyYXJjaHkpCisgICAgICAgICAgcmV0 dXJuIGZhbHNlOworCisgICAgICAgIC8vIFByb2NlZHVyZXMgc3VwcG9ydGVk IG9ubHkgaW4gUFBBUworICAgICAgICBpZiAoJ3NlcnZlcicgaW4gbm9kZV9o aWVyYXJjaHkgJiYgbm9kZV9oaWVyYXJjaHlbJ3NlcnZlciddLnR5cGUgPT0g InBwYXMiKQorICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIHJl dHVybiBmYWxzZTsKKworICAgICAgfQorICB9KTsKKworICB9CisKKyAgcmV0 dXJuIHBnQnJvd3Nlci5Ob2Rlc1sncHJvY2VkdXJlJ107Cit9KTsKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJv Y2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL2FjbC5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85 LjFfcGx1cy9hY2wuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmFkM2UwZDEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85 LjFfcGx1cy9hY2wuc3FsCkBAIC0wLDAgKzEsMzUgQEAKK1NFTEVDVAorICAg IENPQUxFU0NFKGd0LnJvbG5hbWUsICdwdWJsaWMnKSBBUyBncmFudGVlLAor ICAgIGcucm9sbmFtZSBBUyBncmFudG9yLCBhcnJheV9hZ2cocHJpdmlsZWdl X3R5cGUpIEFTIHByaXZpbGVnZXMsCisgICAgYXJyYXlfYWdnKGlzX2dyYW50 YWJsZSkgQVMgZ3JhbnRhYmxlCitGUk9NCisgICAgKFNFTEVDVAorICAgICAg ICBkLmdyYW50ZWUsIGQuZ3JhbnRvciwgZC5pc19ncmFudGFibGUsCisgICAg ICAgIENBU0UgZC5wcml2aWxlZ2VfdHlwZQorICAgICAgICBXSEVOICdDT05O RUNUJyBUSEVOICdjJworICAgICAgICBXSEVOICdDUkVBVEUnIFRIRU4gJ0Mn CisgICAgICAgIFdIRU4gJ0RFTEVURScgVEhFTiAnZCcKKyAgICAgICAgV0hF TiAnRVhFQ1VURScgVEhFTiAnWCcKKyAgICAgICAgV0hFTiAnSU5TRVJUJyBU SEVOICdhJworICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4Jwor ICAgICAgICBXSEVOICdTRUxFQ1QnIFRIRU4gJ3InCisgICAgICAgIFdIRU4g J1RFTVBPUkFSWScgVEhFTiAnVCcKKyAgICAgICAgV0hFTiAnVFJJR0dFUicg VEhFTiAndCcKKyAgICAgICAgV0hFTiAnVFJVTkNBVEUnIFRIRU4gJ0QnCisg ICAgICAgIFdIRU4gJ1VQREFURScgVEhFTiAndycKKyAgICAgICAgV0hFTiAn VVNBR0UnIFRIRU4gJ1UnCisgICAgICAgIEVMU0UgJ1VOS05PV04nCisgICAg ICAgIEVORCBBUyBwcml2aWxlZ2VfdHlwZQorICAgIEZST00KKyAgICAgICAg KFNFTEVDVAorICAgICAgICAgICAgKGQpLmdyYW50ZWUgQVMgZ3JhbnRlZSwg KGQpLmdyYW50b3IgQVMgZ3JhbnRvciwKKyAgICAgICAgICAgIChkKS5pc19n cmFudGFibGUgQVMgaXNfZ3JhbnRhYmxlLAorICAgICAgICAgICAgKGQpLnBy aXZpbGVnZV90eXBlIEFTIHByaXZpbGVnZV90eXBlCisgICAgICAgIEZST00K KyAgICAgICAgICAgIChTRUxFQ1QgYWNsZXhwbG9kZShkYi5wcm9hY2wpIEFT IGQgRlJPTSBwZ19wcm9jIGRiCisgICAgICAgICAgICBXSEVSRSBkYi5vaWQg PSB7e2ZuaWR9fTo6T0lEKSBhCisgICAgICAgICkgZAorICAgICkgZAorICAg IExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRv ciA9IGcub2lkKQorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVz IGd0IE9OIChkLmdyYW50ZWUgPSBndC5vaWQpCitHUk9VUCBCWSBnLnJvbG5h bWUsIGd0LnJvbG5hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1 cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDIxODFkCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvY3JlYXRlLnNx bApAQCAtMCwwICsxLDMzIEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlv bnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJFTCAlfQoreyUgaW1wb3J0 ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJ TEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ZhcmlhYmxl Lm1hY3JvcycgYXMgVkFSSUFCTEUgJX0KK3slIHNldCBpc19jb2x1bW5zID0g W10gJX0KK3slIGlmIGRhdGEgJX0KK0NSRUFURSBPUiBSRVBMQUNFIFBST0NF RFVSRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEu bmFtZSkgfX17JSBpZiBkYXRhLmFyZ3VtZW50cyAlfSgKK3slIGZvciBwIGlu IGRhdGEuYXJndW1lbnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21v ZGV9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFtZSAlfXt7IGNvbm58cXRJ ZGVudChwLmFyZ25hbWUpfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUg JX17e3AuYXJndHlwZX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAl fSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBu b3QgbG9vcC5sYXN0ICV9LHslIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0pCit7 JSBlbmRpZiAlfQorCitBUwore3sgZGF0YS5wcm9zcmMgfX07Cit7JSBpZiBk YXRhLmFjbCBhbmQgbm90IGlzX3NxbCAlfQoreyUgZm9yIHAgaW4gZGF0YS5h Y2wgJX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAiUFJPQ0VEVVJFIiwg cC5ncmFudGVlLCBkYXRhLm5hbWUsIHAud2l0aG91dF9ncmFudCwgcC53aXRo X2dyYW50LCBkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5mdW5jX2FyZ3MpfX0K K3slIGVuZGZvciAlfXslIGVuZGlmICV9Cit7JSBpZiBkYXRhLmRlc2NyaXB0 aW9uICV9CisKK0NPTU1FTlQgT04gUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVu dChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fQorICAgIElTICd7 eyBkYXRhLmRlc2NyaXB0aW9uIH19JzsKK3slIGVuZGlmIC0lfQoreyUgaWYg ZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2VjbGFiZWxz ICV9Cit7JSBpZiByLmxhYmVsIGFuZCByLnByb3ZpZGVyICV9CisKK3t7IFNF Q0xBQkVMLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgZGF0YS5uYW1lLCByLnBy b3ZpZGVyLCByLmxhYmVsLCBkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5mdW5j X2FyZ3MpIH19Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAtJX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzku MV9wbHVzL2RlbGV0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9kZWxldGUu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4NzAx ZWMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9kZWxl dGUuc3FsCkBAIC0wLDAgKzEsMjEgQEAKK3slIGlmIHNjaWQgYW5kIGZuaWQg JX0KK1NFTEVDVAorICAgIHByLnByb25hbWUgYXMgbmFtZSwgJygnIHx8IENP QUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50 aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIGZ1bmNfYXJn cywKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgor ICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgor ICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3Bh Y2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9u YW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9U IElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAgICBBTkQgcHIu b2lkID0ge3tmbmlkfX07Cit7JSBlbmRpZiAlfQorCit7JSBpZiBuYW1lICV9 CitEUk9QIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQobnNwbmFtZSwgbmFt ZSkgfX17e2Z1bmNfYXJnc319eyUgaWYgY2FzY2FkZSAlfSBDQVNDQURFeyUg ZW5kaWYgJX07Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwv OS4xX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3Bs dXMvZ2V0X2RlZmluaXRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmM2MzVmMWUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFz L3NxbC85LjFfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKQEAgLTAsMCArMSwx MiBAQAorU0VMRUNUCisgICAgcGdfZ2V0X2Z1bmN0aW9uZGVmKHt7Zm5pZH19 OjpvaWQpIEFTIGZ1bmNfZGVmLAorICAgIG5zcG5hbWUgfHwgJy4nIHx8IHBy LnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAu cGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAn JykgfHwgJyknIGFzIG5hbWUKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lO CisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25hbWVz cGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHBy b25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgcHIub2lkID0g e3tmbmlkfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVz L2dldF9sYW5ndWFnZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X2xh bmd1YWdlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uZjgxZGRmYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9w bHVzL2dldF9sYW5ndWFnZXMuc3FsCkBAIC0wLDAgKzEsNCBAQAorU0VMRUNU CisgICAgbGFubmFtZSBhcyBsYWJlbCwgbGFubmFtZSBhcyB2YWx1ZQorRlJP TQorICAgIHBnX2xhbmd1YWdlOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4x X3BsdXMvZ2V0X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9nZXRfb2lk LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmM3 NmEyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0 X29pZC5zcWwKQEAgLTAsMCArMSwxNyBAQAorU0VMRUNUCisgICAgcHIub2lk LCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisg ICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lk KSwgJycpIHx8ICcpJyBhcyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91 c2VyYnlpZChwcm9vd25lcikgYXMgZnVuY293bmVyCitGUk9NCisgICAgcGdf cHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJv cmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lk PXByb2xhbmcKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5v aWQ9cHIucHJvbmFtZXNwYWNlCisgICAgQU5EIG5zcC5uc3BuYW1lPXt7IG5z cG5hbWV8cXRMaXRlcmFsIH19CitXSEVSRQorICAgIHByb2lzYWdnID0gRkFM U0UKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50 X3RyaWdnZXInKQorICAgIEFORCBwci5wcm9uYW1lID0ge3sgbmFtZXxxdExp dGVyYWwgfX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9nZXRf b3V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9vdXRfdHlw ZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0 YTExODcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9n ZXRfb3V0X3R5cGVzLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAg IGZvcm1hdF90eXBlKG9pZCwgTlVMTCkgQVMgb3V0X2FyZ190eXBlCitGUk9N CisgICAgcGdfdHlwZQorV0hFUkUKKyAgICBvaWQgPSB7eyBvdXRfYXJnX29p ZCB9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0 X3NjaGVtYS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9nZXRfc2NoZW1hLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjdkNGI5 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X3Nj aGVtYS5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBuc3BuYW1l CitGUk9NCisgICAgcGdfbmFtZXNwYWNlCitXSEVSRQorICAgIG9pZCA9IHt7 IHNjaWQgfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVz L2dldF90eXBlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9nZXRfdHlwZXMu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNTU4 MmUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9nZXRf dHlwZXMuc3FsCkBAIC0wLDAgKzEsMjAgQEAKK1NFTEVDVAorICAgICoKK0ZS T00KKyAgICAoU0VMRUNUCisgICAgICAgIGZvcm1hdF90eXBlKHQub2lkLE5V TEwpIEFTIHR5cG5hbWUsCisgICAgICAgIENBU0UgV0hFTiB0eXBlbGVtID4g MCBUSEVOIHR5cGVsZW0gRUxTRSB0Lm9pZCBFTkQgYXMgZWxlbW9pZCwgdHlw bGVuLCB0eXB0eXBlLCB0Lm9pZCwgbnNwbmFtZSwKKyAgICAgICAgKFNFTEVD VCBDT1VOVCgxKSBGUk9NIHBnX3R5cGUgdDIgV0hFUkUgdDIudHlwbmFtZSA9 IHQudHlwbmFtZSkgPiAxIEFTIGlzZHVwCisgICAgRlJPTQorICAgICAgICBw Z190eXBlIHQKKyAgICBKT0lOCisgICAgICAgIHBnX25hbWVzcGFjZSBuc3Ag T04gdHlwbmFtZXNwYWNlPW5zcC5vaWQKKyAgICBXSEVSRQorICAgICAgICAo Tk9UICh0eXBuYW1lID0gJ3Vua25vd24nIEFORCBuc3BuYW1lID0gJ3BnX2Nh dGFsb2cnKSkKKyAgICBBTkQKKyAgICAgICAgKAorICAgICAgICAgICAgdHlw dHlwZSBJTiAoJ2InLCAnYycsICdkJywgJ2UnLCAncCcsICdyJykKKyAgICAg ICAgICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ2FueScsICd0cmlnZ2VyJywg J2xhbmd1YWdlX2hhbmRsZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgICAg ICkKKyAgICApIEFTIGR1bW15CitPUkRFUiBCWSBuc3BuYW1lIDw+ICdwZ19j YXRhbG9nJywgbnNwbmFtZSA8PiAncHVibGljJywgbnNwbmFtZSwgMTsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv cHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL25vZGUuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9z cWwvOS4xX3BsdXMvbm9kZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMzBjYWI4ZAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuMV9wbHVzL25vZGUuc3FsCkBAIC0wLDAgKzEsMTkgQEAKK1NFTEVD VAorICAgIHByLm9pZCwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0Uo cGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJn dW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgQVMgbmFtZSwKKyAgICBsYW5u YW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIEFTIGZ1bmNvd25lciwg ZGVzY3JpcHRpb24KK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAg cGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAg cGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworTEVGVCBPVVRF UiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lk PXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xhc3Mp CitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHIucHJv dHlwZSA9ICcxJzo6Y2hhcgorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3Nj aWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcics ICdldmVudF90cmlnZ2VyJykKK09SREVSIEJZCisgICAgcHJvbmFtZTsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv cHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUv cHBhcy9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWU4YThiYQotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJv Y2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0w LDAgKzEsMzEgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIueG1pbiwgcHIu KiwgcHIucHJvc3JjIEFTIHByb3NyY19jLAorICAgIHByLnByb25hbWUgQVMg bmFtZSwgcGdfZ2V0X2Z1bmN0aW9uX3Jlc3VsdChwci5vaWQpIEFTIHByb3Jl dHR5cGVuYW1lLAorICAgIHR5cG5zLm5zcG5hbWUgQVMgdHlwbnNwLCBsYW5u YW1lLCBwcm9hcmduYW1lcywgb2lkdmVjdG9ydHlwZXMocHJvYXJndHlwZXMp IEFTIHByb2FyZ3R5cGVuYW1lcywKKyAgICBwZ19nZXRfZXhwcihwcm9hcmdk ZWZhdWx0cywgJ3BnX2NhdGFsb2cucGdfY2xhc3MnOjpyZWdjbGFzcykgQVMg cHJvYXJnZGVmYXVsdHZhbHMsCisgICAgcHJvbmFyZ2RlZmF1bHRzLCBwcm9j b25maWcsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikgQVMgZnVuY293bmVy LCBkZXNjcmlwdGlvbiwKKyAgICAoU0VMRUNUCisgICAgICAgIGFycmF5X2Fn Zyhwcm92aWRlciB8fCAnPScgfHwgbGFiZWwpCisgICAgRlJPTQorICAgICAg ICBwZ19zZWNsYWJlbCBzbDEKKyAgICBXSEVSRQorICAgICAgICBzbDEub2Jq b2lkPXByLm9pZCkgQVMgc2VjbGFiZWxzCitGUk9NCisgICAgcGdfcHJvYyBw cgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlw ZQorSk9JTgorICAgIHBnX25hbWVzcGFjZSB0eXBucyBPTiB0eXBucy5vaWQ9 dHlwLnR5cG5hbWVzcGFjZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBP TiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rl c2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5j bGFzc29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwcm9p c2FnZyA9IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19 OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2 ZW50X3RyaWdnZXInKQoreyUgaWYgZm5pZCAlfQorICAgIEFORCBwci5vaWQg PSB7e2ZuaWR9fTo6b2lkCit7JSBlbmRpZiAlfQorT1JERVIgQlkKKyAgICBw cm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvdXBkYXRl LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJv Y2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWNmMmMxMAotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv cHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwKQEAgLTAs MCArMSw4MiBAQAoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3Vy aXR5Lm1hY3JvcycgYXMgU0VDTEFCRUwgJX0KK3slIGltcG9ydCAnbWFjcm9z L2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX17 JSBpZiBkYXRhICV9Cit7JSBzZXQgbmFtZSA9IG9fZGF0YS5uYW1lICV9Cit7 JSBpZiBkYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAhPSBvX2RhdGEu bmFtZSAlfQorQUxURVIgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2Rh dGEucHJvbmFtZXNwYWNlLCBvX2RhdGEubmFtZSkgfX17JSBpZiBvX2RhdGEu cHJvYXJndHlwZW5hbWVzICV9KHt7IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMg fX0peyUgZW5kaWYgJX0KKworICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRl bnQoZGF0YS5uYW1lKSB9fTsKK3slIHNldCBuYW1lID0gZGF0YS5uYW1lICV9 Cit7JSBlbmRpZiAlfQorCit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuY2hh bmdlX2Z1bmMgICV9CitDUkVBVEUgT1IgUkVQTEFDRSBQUk9DRURVUkUge3sg Y29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19eyUg aWYgZGF0YS5hcmd1bWVudHMgJX0oeyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVu dHMgJX17JSBpZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9kZX19IHslIGVuZGlm ICV9eyUgaWYgcC5hcmduYW1lICV9e3sgY29ubnxxdElkZW50KHAuYXJnbmFt ZSkgfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX17e3AuYXJndHlw ZX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7 cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0 ICV9LCB7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9CispCit7JSBlbmRpZiAl fQorCitBUworeyUgaWYgZGF0YS5wcm9zcmMgJX17eyBkYXRhLnByb3NyYyB9 fXslIGVsc2UgJX17eyBvX2RhdGEucHJvc3JjIH19eyUgZW5kaWYgLSV9Owor eyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmZ1bmNvd25lciAlfQorCitBTFRF UiBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG5hbWUpIH19eyUgaWYgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyAlfSh7 eyBvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KXslIGVuZGlmICV9CisgICAg T1dORVIgVE8ge3sgZGF0YS5mdW5jb3duZXIgfX07Cit7JSBlbmRpZiAtJX0K K3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZp bGVkZ2VzICN9Cit7JSBpZiBkYXRhLmFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQn IGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5kZWxl dGVkICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnUFJPQ0VE VVJFJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNl LCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7 JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBkYXRhLmRhdGFjbCAl fQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuY2hhbmdlZCAlfQorCit7eyBQ UklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ1BST0NFRFVSRScsIHByaXYuZ3Jh bnRlZSwgbmFtZSwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2Fy Z3R5cGVuYW1lcykgfX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAnUFJP Q0VEVVJFJywgcHJpdi5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhvdXRfZ3Jh bnQsCisgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBv X2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBl bmRpZiAtJX0KK3slIGlmICdhZGRlZCcgaW4gZGF0YS5hY2wgJX0KK3slIGZv ciBwcml2IGluIGRhdGEuYWNsLmFkZGVkICV9CisKK3t7IFBSSVZJTEVHRS5T RVQoY29ubiwgJ1BST0NFRFVSRScsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJp di53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9u YW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAtJX0KK3slIHNldCBzZWNs YWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGlu IHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAl fQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQgJX0KKwore3sgU0VD TEFCRUwuVU5TRVQoY29ubiwgJ1BST0NFRFVSRScsIG5hbWUsIHIucHJvdmlk ZXIsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFt ZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2Fk ZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxsZW5ndGgg PiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0KKwore3sg U0VDTEFCRUwuU0VUKGNvbm4sICdQUk9DRURVUkUnLCBuYW1lLCByLnByb3Zp ZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBv X2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBl bmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNl Y2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNl Y2xhYmVscy5jaGFuZ2VkICV9CisKK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAn UFJPQ0VEVVJFJywgbmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJl bCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1l cykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRh LmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQgT04gUFJPQ0VEVVJFIHt7IGNv bm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fQorICAg IElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsIH19OworeyUgZW5k aWYgLSV9Cit7JSBpZiBkYXRhLnByb25hbWVzcGFjZSAlfQorCitBTFRFUiBQ Uk9DRURVUkUge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2Us IG5hbWUpIH19CisgICAgU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRlbnQoZGF0 YS5wcm9uYW1lc3BhY2UpIH19OworeyUgZW5kaWYgLSV9CisKK3slIGVuZGlm ICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy92YXJpYWJsZXMu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvdmFyaWFibGVzLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjMzYzcxCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvdmFyaWFibGVzLnNxbApA QCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5hbWUsIHZhcnR5cGUsIG1p bl92YWwsIG1heF92YWwsIGVudW12YWxzCitGUk9NCisgICAgcGdfc2V0dGlu Z3MKK1dIRVJFCisgICAgY29udGV4dCBpbiAoJ3VzZXInLCAnc3VwZXJ1c2Vy Jyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9hY2wuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUv cHBhcy9zcWwvOS4yX3BsdXMvYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5hZDNlMGQxCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUv cHBhcy9zcWwvOS4yX3BsdXMvYWNsLnNxbApAQCAtMCwwICsxLDM1IEBACitT 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 L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9z cWwvOS4yX3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL2Ny ZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u YjFlZTIyYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVz L2NyZWF0ZS5zcWwKQEAgLTAsMCArMSwzMyBAQAoreyUgaW1wb3J0ICdtYWNy b3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCRUwgJX0K K3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9z JyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9u cy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9Cit7JSBzZXQgaXNf Y29sdW1ucyA9IFtdICV9Cit7JSBpZiBkYXRhICV9CitDUkVBVEUgT1IgUkVQ TEFDRSBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNw YWNlLCBkYXRhLm5hbWUpIH19eyUgaWYgZGF0YS5hcmd1bWVudHMgJX0KKyh7 JSBmb3IgcCBpbiBkYXRhLmFyZ3VtZW50cyAlfXslIGlmIHAuYXJnbW9kZSAl fXt7cC5hcmdtb2RlfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ25hbWUgJX0g e3sgY29ubnxxdElkZW50KHAuYXJnbmFtZSl9fXslIGVuZGlmICV9eyUgaWYg cC5hcmd0eXBlICV9e3twLmFyZ3R5cGV9fXslIGVuZGlmICV9eyUgaWYgcC5h cmdkZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAl fQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSwgeyUgZW5kaWYgJX0KK3slIGVu ZGZvciAtJX0peyUgZW5kaWYgJX0KKworQVMKK3t7IGRhdGEucHJvc3JjIH19 OworeyUgaWYgZGF0YS5hY2wgYW5kIG5vdCBpc19zcWwgJX0KK3slIGZvciBw IGluIGRhdGEuYWNsICV9CisKK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgIlBS T0NFRFVSRSIsIHAuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwLndpdGhvdXRfZ3Jh bnQsIHAud2l0aF9ncmFudCwgZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVu Y19hcmdzKX19Cit7JSBlbmRmb3IgJX17JSBlbmRpZiAlfQoreyUgaWYgZGF0 YS5kZXNjcmlwdGlvbiAlfQorCitDT01NRU5UIE9OIFBST0NFRFVSRSB7eyBj b25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0K KyAgICBJUyAne3sgZGF0YS5kZXNjcmlwdGlvbiB9fSc7Cit7JSBlbmRpZiAt JX0KK3slIGlmIGRhdGEuc2VjbGFiZWxzICV9Cit7JSBmb3IgciBpbiBkYXRh LnNlY2xhYmVscyAlfQoreyUgaWYgci5zZWN1cml0eV9sYWJlbCBhbmQgci5w cm92aWRlciAlfQorCit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ1BST0NFRFVS RScsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCwg ZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzKSB9fQoreyUgZW5k aWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisKKworeyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL2RlbGV0ZS5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2Nl ZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4NzAxZWMKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3By b2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9kZWxldGUuc3FsCkBAIC0wLDAg KzEsMjEgQEAKK3slIGlmIHNjaWQgYW5kIGZuaWQgJX0KK1NFTEVDVAorICAg IHByLnByb25hbWUgYXMgbmFtZSwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFs b2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhw ci5vaWQpLCAnJykgfHwgJyknIGFzIGZ1bmNfYXJncywKKyAgICBuc3BuYW1l CitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlw IE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFj ZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKK1dIRVJFCisgICAg cHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3Nj aWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcics ICdldmVudF90cmlnZ2VyJykKKyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX07 Cit7JSBlbmRpZiAlfQorCit7JSBpZiBuYW1lICV9CitEUk9QIFBST0NFRFVS RSB7eyBjb25ufHF0SWRlbnQobnNwbmFtZSwgbmFtZSkgfX17e2Z1bmNfYXJn c319eyUgaWYgY2FzY2FkZSAlfSBDQVNDQURFeyUgZW5kaWYgJX07Cit7JSBl bmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X2Rl ZmluaXRpb24uc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X2RlZmluaXRp b24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2 MzVmMWUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9n ZXRfZGVmaW5pdGlvbi5zcWwKQEAgLTAsMCArMSwxMiBAQAorU0VMRUNUCisg ICAgcGdfZ2V0X2Z1bmN0aW9uZGVmKHt7Zm5pZH19OjpvaWQpIEFTIGZ1bmNf ZGVmLAorICAgIG5zcG5hbWUgfHwgJy4nIHx8IHByLnByb25hbWUgfHwgJygn IHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9u X2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIG5h bWUKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfbmFtZXNw YWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25hbWVzcGFjZQorV0hFUkUKKyAg ICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7 c2NpZH19OjpvaWQKKyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9pZDsK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9sYW5ndWFnZXMu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjgxZGRmYgotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9sYW5ndWFn ZXMuc3FsCkBAIC0wLDAgKzEsNCBAQAorU0VMRUNUCisgICAgbGFubmFtZSBh cyBsYWJlbCwgbGFubmFtZSBhcyB2YWx1ZQorRlJPTQorICAgIHBnX2xhbmd1 YWdlOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X29pZC5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2Nl ZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9nZXRfb2lkLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmM3NmEyCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9w cm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X29pZC5zcWwKQEAgLTAs MCArMSwxNyBAQAorU0VMRUNUCisgICAgcHIub2lkLCBwci5wcm9uYW1lIHx8 ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisgICAgLnBnX2dldF9mdW5j dGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBh cyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91c2VyYnlpZChwcm9vd25l cikgYXMgZnVuY293bmVyCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgor ICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgor ICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0pPSU4K KyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNw YWNlCisgICAgQU5EIG5zcC5uc3BuYW1lPXt7IG5zcG5hbWV8cXRMaXRlcmFs IH19CitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgdHlw bmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQorICAg IEFORCBwci5wcm9uYW1lID0ge3sgbmFtZXxxdExpdGVyYWwgfX07CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3By b2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9nZXRfb3V0X3R5cGVzLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJl L3BwYXMvc3FsLzkuMl9wbHVzL2dldF9vdXRfdHlwZXMuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0YTExODcKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9nZXRfb3V0X3R5cGVzLnNx bApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIGZvcm1hdF90eXBlKG9p ZCwgTlVMTCkgQVMgb3V0X2FyZ190eXBlCitGUk9NCisgICAgcGdfdHlwZQor V0hFUkUKKyAgICBvaWQgPSB7eyBvdXRfYXJnX29pZCB9fTo6b2lkOwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9w cm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X3NjaGVtYS5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9w cGFzL3NxbC85LjJfcGx1cy9nZXRfc2NoZW1hLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjdkNGI5Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X3NjaGVtYS5zcWwKQEAgLTAs MCArMSw2IEBACitTRUxFQ1QKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdf bmFtZXNwYWNlCitXSEVSRQorICAgIG9pZCA9IHt7IHNjaWQgfX06Om9pZDsK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL2dldF90eXBlcy5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVy ZS9wcGFzL3NxbC85LjJfcGx1cy9nZXRfdHlwZXMuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNTU4MmUKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3By b2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9nZXRfdHlwZXMuc3FsCkBAIC0w LDAgKzEsMjAgQEAKK1NFTEVDVAorICAgICoKK0ZST00KKyAgICAoU0VMRUNU CisgICAgICAgIGZvcm1hdF90eXBlKHQub2lkLE5VTEwpIEFTIHR5cG5hbWUs CisgICAgICAgIENBU0UgV0hFTiB0eXBlbGVtID4gMCBUSEVOIHR5cGVsZW0g RUxTRSB0Lm9pZCBFTkQgYXMgZWxlbW9pZCwgdHlwbGVuLCB0eXB0eXBlLCB0 Lm9pZCwgbnNwbmFtZSwKKyAgICAgICAgKFNFTEVDVCBDT1VOVCgxKSBGUk9N IHBnX3R5cGUgdDIgV0hFUkUgdDIudHlwbmFtZSA9IHQudHlwbmFtZSkgPiAx IEFTIGlzZHVwCisgICAgRlJPTQorICAgICAgICBwZ190eXBlIHQKKyAgICBK T0lOCisgICAgICAgIHBnX25hbWVzcGFjZSBuc3AgT04gdHlwbmFtZXNwYWNl PW5zcC5vaWQKKyAgICBXSEVSRQorICAgICAgICAoTk9UICh0eXBuYW1lID0g J3Vua25vd24nIEFORCBuc3BuYW1lID0gJ3BnX2NhdGFsb2cnKSkKKyAgICBB TkQKKyAgICAgICAgKAorICAgICAgICAgICAgdHlwdHlwZSBJTiAoJ2InLCAn YycsICdkJywgJ2UnLCAncCcsICdyJykKKyAgICAgICAgICAgIEFORCB0eXBu YW1lIE5PVCBJTiAoJ2FueScsICd0cmlnZ2VyJywgJ2xhbmd1YWdlX2hhbmRs ZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgICAgICkKKyAgICApIEFTIGR1 bW15CitPUkRFUiBCWSBuc3BuYW1lIDw+ICdwZ19jYXRhbG9nJywgbnNwbmFt ZSA8PiAncHVibGljJywgbnNwbmFtZSwgMTsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuMl9wbHVzL25vZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvbm9k ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBj YWI4ZAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL25v ZGUuc3FsCkBAIC0wLDAgKzEsMTkgQEAKK1NFTEVDVAorICAgIHByLm9pZCwg cHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAg IC5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCks ICcnKSB8fCAnKScgQVMgbmFtZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNl cmJ5aWQocHJvb3duZXIpIEFTIGZ1bmNvd25lciwgZGVzY3JpcHRpb24KK0ZS T00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04g dHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5n IE9OIGxuZy5vaWQ9cHJvbGFuZworTEVGVCBPVVRFUiBKT0lOCisgICAgcGdf ZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPXByLm9pZCBBTkQgZGVz LmNsYXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xhc3MpCitXSEVSRQorICAgIHBy b2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHIucHJvdHlwZSA9ICcxJzo6Y2hh cgorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAg QU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2Vy JykKK09SREVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuMl9wbHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3Bs dXMvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZmY3ODI5OAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3Fs 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 dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3By b2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9z cWwvOS4yX3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi40ZGQ0NjM3Ci0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBh cy9zcWwvOS4yX3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDc4IEBACit7 JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBh cyBTRUNMQUJFTCAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3By aXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfXslIGlmIGRhdGEgJX0K K3slIHNldCBuYW1lID0gb19kYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFt ZSAlfQoreyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRF UiBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG9fZGF0YS5uYW1lKSB9fQorICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0 SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3slIHNldCBuYW1lID0gZGF0YS5uYW1l ICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNo YW5nZV9mdW5jICAlfQorCitDUkVBVEUgT1IgUkVQTEFDRSBQUk9DRURVUkUg e3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19 eyUgaWYgZGF0YS5hcmd1bWVudHMgJX0oeyUgZm9yIHAgaW4gZGF0YS5hcmd1 bWVudHMgJX17JSBpZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9kZX19IHslIGVu ZGlmICV9eyUgaWYgcC5hcmduYW1lICV9e3sgY29ubnxxdElkZW50KHAuYXJn bmFtZSkgfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX17e3AuYXJn dHlwZX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxU IHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5s YXN0ICV9LCB7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9CispCit7JSBlbmRp ZiAlfQorQVMgeyUgaWYgZGF0YS5wcm9zcmMgJX17eyBkYXRhLnByb3NyYyB9 fXslIGVsc2UgJX17eyBvX2RhdGEucHJvc3JjIH19eyUgZW5kaWYgLSV9Owor eyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmZ1bmNvd25lciAlfQorCitBTFRF UiBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG5hbWUpIH19eyUgaWYgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyAlfSh7 eyBvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KXslIGVuZGlmICV9CisgICAg T1dORVIgVE8ge3sgZGF0YS5mdW5jb3duZXIgfX07Cit7JSBlbmRpZiAtJX0K K3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZp bGVkZ2VzICN9Cit7JSBpZiBkYXRhLmFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQn IGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5kZWxl dGVkICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnUFJPQ0VE VVJFJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNl LCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7 JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBkYXRhLmFjbCAlfQor eyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuY2hhbmdlZCAlfQorCit7eyBQUklW SUxFR0UuVU5TRVRBTEwoY29ubiwgJ1BST0NFRFVSRScsIHByaXYuZ3JhbnRl ZSwgbmFtZSwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5 cGVuYW1lcykgfX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAnUFJPQ0VE VVJFJywgcHJpdi5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQs IHByaXYud2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRh LnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYg LSV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJp diBpbiBkYXRhLmFjbC5hZGRlZCAlfQorCit7eyBQUklWSUxFR0UuU0VUKGNv bm4sICdQUk9DRURVUkUnLCBwcml2LmdyYW50ZWUsIG5hbWUsIHByaXYud2l0 aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFtZXNw YWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgLSV9Cit7JSBzZXQgc2VjbGFiZWxz ID0gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBzZWNs YWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KK3sl IGZvciByIGluIHNlY2xhYmVscy5kZWxldGVkICV9CisKK3t7IFNFQ0xBQkVM LlVOU0VUKGNvbm4sICdQUk9DRURVUkUnLCBuYW1lLCByLnByb3ZpZGVyLCBv X2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9 fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcg aW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAl fQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9CisKK3t7IFNFQ0xB QkVMLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgbmFtZSwgci5wcm92aWRlciwg ci5zZWN1cml0eV9sYWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRh LnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYg LSV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJl bHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJl bHMuY2hhbmdlZCAlfQorCit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ1BST0NF RFVSRScsIG5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5kZXNj cmlwdGlvbiAlfQorCitDT01NRU5UIE9OIFBST0NFRFVSRSB7eyBjb25ufHF0 SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0KKyAgICBJUyB7 eyBkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmIC0l fQoreyUgaWYgZGF0YS5wcm9uYW1lc3BhY2UgJX0KKworQUxURVIgUFJPQ0VE VVJFIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1l KSB9fQorICAgIFNFVCBTQ0hFTUEge3sgY29ubnxxdElkZW50KGRhdGEucHJv bmFtZXNwYWNlKSB9fTsKK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvdmFyaWFibGVzLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJl L3BwYXMvc3FsLzkuMl9wbHVzL3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIzM2M3MQotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJv Y2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL3ZhcmlhYmxlcy5zcWwKQEAgLTAs MCArMSw2IEBACitTRUxFQ1QKKyAgICBuYW1lLCB2YXJ0eXBlLCBtaW5fdmFs LCBtYXhfdmFsLCBlbnVtdmFscworRlJPTQorICAgIHBnX3NldHRpbmdzCitX SEVSRQorICAgIGNvbnRleHQgaW4gKCd1c2VyJywgJ3N1cGVydXNlcicpOwpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvYWNsLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuNV9wbHVzL2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uYWQzZTBkMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuNV9wbHVzL2FjbC5zcWwKQEAgLTAsMCArMSwzNSBAQAorU0VMRUNU CisgICAgQ09BTEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycpIEFTIGdyYW50 ZWUsCisgICAgZy5yb2xuYW1lIEFTIGdyYW50b3IsIGFycmF5X2FnZyhwcml2 aWxlZ2VfdHlwZSkgQVMgcHJpdmlsZWdlcywKKyAgICBhcnJheV9hZ2coaXNf Z3JhbnRhYmxlKSBBUyBncmFudGFibGUKK0ZST00KKyAgICAoU0VMRUNUCisg ICAgICAgIGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50YWJsZSwK KyAgICAgICAgQ0FTRSBkLnByaXZpbGVnZV90eXBlCisgICAgICAgIFdIRU4g J0NPTk5FQ1QnIFRIRU4gJ2MnCisgICAgICAgIFdIRU4gJ0NSRUFURScgVEhF TiAnQycKKyAgICAgICAgV0hFTiAnREVMRVRFJyBUSEVOICdkJworICAgICAg ICBXSEVOICdFWEVDVVRFJyBUSEVOICdYJworICAgICAgICBXSEVOICdJTlNF UlQnIFRIRU4gJ2EnCisgICAgICAgIFdIRU4gJ1JFRkVSRU5DRVMnIFRIRU4g J3gnCisgICAgICAgIFdIRU4gJ1NFTEVDVCcgVEhFTiAncicKKyAgICAgICAg V0hFTiAnVEVNUE9SQVJZJyBUSEVOICdUJworICAgICAgICBXSEVOICdUUklH R0VSJyBUSEVOICd0JworICAgICAgICBXSEVOICdUUlVOQ0FURScgVEhFTiAn RCcKKyAgICAgICAgV0hFTiAnVVBEQVRFJyBUSEVOICd3JworICAgICAgICBX SEVOICdVU0FHRScgVEhFTiAnVScKKyAgICAgICAgRUxTRSAnVU5LTk9XTicK KyAgICAgICAgRU5EIEFTIHByaXZpbGVnZV90eXBlCisgICAgRlJPTQorICAg ICAgICAoU0VMRUNUCisgICAgICAgICAgICAoZCkuZ3JhbnRlZSBBUyBncmFu dGVlLCAoZCkuZ3JhbnRvciBBUyBncmFudG9yLAorICAgICAgICAgICAgKGQp LmlzX2dyYW50YWJsZSBBUyBpc19ncmFudGFibGUsCisgICAgICAgICAgICAo ZCkucHJpdmlsZWdlX3R5cGUgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICAgICAg RlJPTQorICAgICAgICAgICAgKFNFTEVDVCBhY2xleHBsb2RlKGRiLnByb2Fj bCkgQVMgZCBGUk9NIHBnX3Byb2MgZGIKKyAgICAgICAgICAgIFdIRVJFIGRi Lm9pZCA9IHt7Zm5pZH19OjpPSUQpIGEKKyAgICAgICAgKSBkCisgICAgKSBk CisgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZyBPTiAoZC5n cmFudG9yID0gZy5vaWQpCisgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdf cm9sZXMgZ3QgT04gKGQuZ3JhbnRlZSA9IGd0Lm9pZCkKK0dST1VQIEJZIGcu cm9sbmFtZSwgZ3Qucm9sbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzku NV9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9jcmVhdGUu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkODFj NjYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9jcmVh dGUuc3FsCkBAIC0wLDAgKzEsNDMgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1 bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkVMICV9Cit7JSBp bXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMg UFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFy aWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfQoreyUgc2V0IGlzX2NvbHVt bnMgPSBbXSAlfQoreyUgaWYgZGF0YSAlfQorQ1JFQVRFIE9SIFJFUExBQ0Ug UFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwg ZGF0YS5uYW1lKSB9fXslIGlmIGRhdGEuYXJndW1lbnRzICV9CisoeyUgZm9y IHAgaW4gZGF0YS5hcmd1bWVudHMgJX17JSBpZiBwLmFyZ21vZGUgJX17e3Au YXJnbW9kZX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmduYW1lICV9e3sgY29u bnxxdElkZW50KHAuYXJnbmFtZSl9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJn dHlwZSAlfXt7cC5hcmd0eXBlfX17JSBlbmRpZiAlfXslIGlmIHAuYXJnZGVm dmFsICV9IERFRkFVTFQge3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0KK3sl IGlmIG5vdCBsb29wLmxhc3QgJX0sIHslIGVuZGlmICV9Cit7JSBlbmRmb3Ig LSV9KXslIGVuZGlmICV9CisKKyAgICB7eyBkYXRhLnByb3ZvbGF0aWxlIH19 eyUgaWYgZGF0YS5wcm9sZWFrcHJvb2YgJX0gTEVBS1BST09GIHslIGVsaWYg bm90IGRhdGEucHJvbGVha3Byb29mICV9IE5PVCBMRUFLUFJPT0YgeyUgZW5k aWYgJX0KK3slIGlmIGRhdGEucHJvaXNzdHJpY3QgJX1TVFJJQ1QgeyUgZW5k aWYgJX0KK3slIGlmIGRhdGEucHJvc2VjZGVmICV9U0VDVVJJVFkgREVGSU5F UiB7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvY29zdCAlfQorCisgICAgQ09T VCB7e2RhdGEucHJvY29zdH19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb3Jv d3MgJX0KKworICAgIFJPV1Mge3tkYXRhLnByb3Jvd3N9fXslIGVuZGlmIC0l fXslIGlmIGRhdGEudmFyaWFibGVzICV9eyUgZm9yIHYgaW4gZGF0YS52YXJp YWJsZXMgJX0KKworICAgIFNFVCB7eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9 fT17eyB2LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAtJX0KK3slIGVu ZGlmICV9CisKK0FTCit7eyBkYXRhLnByb3NyYyB9fTsKK3slIGlmIGRhdGEu YWNsIGFuZCBub3QgaXNfc3FsICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFjbCAl fQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICJQUk9DRURVUkUiLCBwLmdy YW50ZWUsIGRhdGEubmFtZSwgcC53aXRob3V0X2dyYW50LCBwLndpdGhfZ3Jh bnQsIGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNfYXJncyl9fQoreyUg ZW5kZm9yICV9eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24g JX0KKworQ09NTUVOVCBPTiBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KGRh dGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19CisgICAgSVMgJ3t7IGRh dGEuZGVzY3JpcHRpb24gfX0nOworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRh LnNlY2xhYmVscyAlfQoreyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0K K3slIGlmIHIuc2VjdXJpdHlfbGFiZWwgYW5kIHIucHJvdmlkZXIgJX0KKwor e3sgU0VDTEFCRUwuU0VUKGNvbm4sICdQUk9DRURVUkUnLCBkYXRhLm5hbWUs IHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIGRhdGEucHJvbmFtZXNw YWNlLCBkYXRhLmZ1bmNfYXJncykgfX0KK3slIGVuZGlmICV9Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1 cmUvcHBhcy9zcWwvOS41X3BsdXMvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzku NV9wbHVzL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMTg3MDFlYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3Fs LzkuNV9wbHVzL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwyMSBAQAoreyUgaWYg c2NpZCBhbmQgZm5pZCAlfQorU0VMRUNUCisgICAgcHIucHJvbmFtZSBhcyBu YW1lLCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRf ZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAn KScgYXMgZnVuY19hcmdzLAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19w cm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9y ZXR0eXBlCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lk PXByLnByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNF CisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBB TkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXIn KQorICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTsKK3slIGVuZGlmICV9CisK K3slIGlmIG5hbWUgJX0KK0RST1AgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVu dChuc3BuYW1lLCBuYW1lKSB9fXt7ZnVuY19hcmdzfX17JSBpZiBjYXNjYWRl ICV9IENBU0NBREV7JSBlbmRpZiAlfTsKK3slIGVuZGlmICV9CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2Nl ZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9w cGFzL3NxbC85LjVfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzYzNWYxZQotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv cHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL2dldF9kZWZpbml0aW9uLnNx bApAQCAtMCwwICsxLDEyIEBACitTRUxFQ1QKKyAgICBwZ19nZXRfZnVuY3Rp b25kZWYoe3tmbmlkfX06Om9pZCkgQVMgZnVuY19kZWYsCisgICAgbnNwbmFt ZSB8fCAnLicgfHwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdf Y2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1l bnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgbmFtZQorRlJPTQorICAgIHBn X3Byb2MgcHIKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5v aWQ9cHIucHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFM U0UKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAg IEFORCBwci5vaWQgPSB7e2ZuaWR9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBh cy9zcWwvOS41X3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85 LjVfcGx1cy9nZXRfbGFuZ3VhZ2VzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5mODFkZGZiCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUv cHBhcy9zcWwvOS41X3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwKQEAgLTAsMCAr MSw0IEBACitTRUxFQ1QKKyAgICBsYW5uYW1lIGFzIGxhYmVsLCBsYW5uYW1l IGFzIHZhbHVlCitGUk9NCisgICAgcGdfbGFuZ3VhZ2U7CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVy ZS9wcGFzL3NxbC85LjVfcGx1cy9nZXRfb2lkLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzku NV9wbHVzL2dldF9vaWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjJiYzc2YTIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3Nx bC85LjVfcGx1cy9nZXRfb2lkLnNxbApAQCAtMCwwICsxLDE3IEBACitTRUxF Q1QKKyAgICBwci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NF KHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2Fy Z3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIG5hbWUsCisgICAgbGFu bmFtZSwgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBhcyBmdW5jb3duZXIK K0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAg T04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2Ug bG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworSk9JTgorICAgIHBnX25hbWVzcGFj ZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKKyAgICBBTkQgbnNw Lm5zcG5hbWU9e3sgbnNwbmFtZXxxdExpdGVyYWwgfX0KK1dIRVJFCisgICAg cHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3Ry aWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHByLnByb25hbWUg PSB7eyBuYW1lfHF0TGl0ZXJhbCB9fTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3Fs LzkuNV9wbHVzL2dldF9vdXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3Bs dXMvZ2V0X291dF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uNjRhMTE4NwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuNV9wbHVzL2dldF9vdXRfdHlwZXMuc3FsCkBAIC0wLDAgKzEsNiBA QAorU0VMRUNUCisgICAgZm9ybWF0X3R5cGUob2lkLCBOVUxMKSBBUyBvdXRf YXJnX3R5cGUKK0ZST00KKyAgICBwZ190eXBlCitXSEVSRQorICAgIG9pZCA9 IHt7IG91dF9hcmdfb2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3Nx bC85LjVfcGx1cy9nZXRfc2NoZW1hLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVz L2dldF9zY2hlbWEuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjEyN2Q0YjkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85 LjVfcGx1cy9nZXRfc2NoZW1hLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVD VAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UKK1dIRVJF CisgICAgb2lkID0ge3sgc2NpZCB9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBh cy9zcWwvOS41X3BsdXMvZ2V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9w bHVzL2dldF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMmE1NTgyZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3Fs LzkuNV9wbHVzL2dldF90eXBlcy5zcWwKQEAgLTAsMCArMSwyMCBAQAorU0VM RUNUCisgICAgKgorRlJPTQorICAgIChTRUxFQ1QKKyAgICAgICAgZm9ybWF0 X3R5cGUodC5vaWQsTlVMTCkgQVMgdHlwbmFtZSwKKyAgICAgICAgQ0FTRSBX SEVOIHR5cGVsZW0gPiAwIFRIRU4gdHlwZWxlbSBFTFNFIHQub2lkIEVORCBh cyBlbGVtb2lkLCB0eXBsZW4sIHR5cHR5cGUsIHQub2lkLCBuc3BuYW1lLAor ICAgICAgICAoU0VMRUNUIENPVU5UKDEpIEZST00gcGdfdHlwZSB0MiBXSEVS RSB0Mi50eXBuYW1lID0gdC50eXBuYW1lKSA+IDEgQVMgaXNkdXAKKyAgICBG Uk9NCisgICAgICAgIHBnX3R5cGUgdAorICAgIEpPSU4KKyAgICAgICAgcGdf bmFtZXNwYWNlIG5zcCBPTiB0eXBuYW1lc3BhY2U9bnNwLm9pZAorICAgIFdI RVJFCisgICAgICAgIChOT1QgKHR5cG5hbWUgPSAndW5rbm93bicgQU5EIG5z cG5hbWUgPSAncGdfY2F0YWxvZycpKQorICAgIEFORAorICAgICAgICAoCisg ICAgICAgICAgICB0eXB0eXBlIElOICgnYicsICdjJywgJ2QnLCAnZScsICdw JywgJ3InKQorICAgICAgICAgICAgQU5EIHR5cG5hbWUgTk9UIElOICgnYW55 JywgJ3RyaWdnZXInLCAnbGFuZ3VhZ2VfaGFuZGxlcicsICdldmVudF90cmln Z2VyJykKKyAgICAgICAgKQorICAgICkgQVMgZHVtbXkKK09SREVSIEJZIG5z cG5hbWUgPD4gJ3BnX2NhdGFsb2cnLCBuc3BuYW1lIDw+ICdwdWJsaWMnLCBu c3BuYW1lLCAxOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvbm9k ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3By b2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9ub2RlLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGNhYjhkCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9w cm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvbm9kZS5zcWwKQEAgLTAsMCAr MSwxOSBAQAorU0VMRUNUCisgICAgcHIub2lkLCBwci5wcm9uYW1lIHx8ICco JyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisgICAgLnBnX2dldF9mdW5jdGlv bl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBBUyBu YW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikg QVMgZnVuY293bmVyLCBkZXNjcmlwdGlvbgorRlJPTQorICAgIHBnX3Byb2Mg cHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5 cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9s YW5nCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMg T04gKGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX3By b2MnOjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQor ICAgIEFORCBwci5wcm90eXBlID0gJzEnOjpjaGFyCisgICAgQU5EIHByb25h bWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBOT1Qg SU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQorT1JERVIgQlkKKyAg ICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvcHJv cGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9wcm9wZXJ0aWVzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjc4Mjk4 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvcHJvcGVy dGllcy5zcWwKQEAgLTAsMCArMSwzMSBAQAorU0VMRUNUCisgICAgcHIub2lk LCBwci54bWluLCBwci4qLCBwci5wcm9zcmMgQVMgcHJvc3JjX2MsCisgICAg cHIucHJvbmFtZSBBUyBuYW1lLCBwZ19nZXRfZnVuY3Rpb25fcmVzdWx0KHBy Lm9pZCkgQVMgcHJvcmV0dHlwZW5hbWUsCisgICAgdHlwbnMubnNwbmFtZSBB UyB0eXBuc3AsIGxhbm5hbWUsIHByb2FyZ25hbWVzLCBvaWR2ZWN0b3J0eXBl cyhwcm9hcmd0eXBlcykgQVMgcHJvYXJndHlwZW5hbWVzLAorICAgIHBnX2dl dF9leHByKHByb2FyZ2RlZmF1bHRzLCAncGdfY2F0YWxvZy5wZ19jbGFzcyc6 OnJlZ2NsYXNzKSBBUyBwcm9hcmdkZWZhdWx0dmFscywKKyAgICBwcm9uYXJn ZGVmYXVsdHMsIHByb2NvbmZpZywgcGdfZ2V0X3VzZXJieWlkKHByb293bmVy KSBBUyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uLAorICAgIChTRUxFQ1QKKyAg ICAgICAgYXJyYXlfYWdnKHByb3ZpZGVyIHx8ICc9JyB8fCBsYWJlbCkKKyAg ICBGUk9NCisgICAgICAgIHBnX3Noc2VjbGFiZWwgc2wxCisgICAgV0hFUkUK KyAgICAgICAgc2wxLm9iam9pZD1wci5vaWQpIEFTIHNlY2xhYmVscworRlJP TQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0 eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgdHlw bnMgT04gdHlwbnMub2lkPXR5cC50eXBuYW1lc3BhY2UKK0pPSU4KKyAgICBw Z19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVS IEpPSU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9 cHIub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykK K1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1l c3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElO ICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKK3slIGlmIGZuaWQgJX0K KyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9pZAoreyUgZW5kaWYgJX0K K09SREVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3Fs LzkuNV9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy91cGRh dGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRm ZjkzNzMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy91 cGRhdGUuc3FsCkBAIC0wLDAgKzEsMTAyIEBACit7JSBpbXBvcnQgJ21hY3Jv cy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJFTCAlfQor eyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3Mn IGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25z L3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX17JSBpZiBkYXRhICV9 Cit7JSBzZXQgbmFtZSA9IG9fZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5h bWUgJX0KK3slIGlmIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfQorQUxU RVIgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNw YWNlLCBvX2RhdGEubmFtZSkgfX0KKyAgICBSRU5BTUUgVE8ge3sgY29ubnxx dElkZW50KGRhdGEubmFtZSkgfX07Cit7JSBzZXQgbmFtZSA9IGRhdGEubmFt ZSAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5j aGFuZ2VfZnVuYyAgJX0KK0NSRUFURSBPUiBSRVBMQUNFIFBST0NFRFVSRSB7 eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX17 JSBpZiBkYXRhLmFyZ3VtZW50cyAlfSh7JSBmb3IgcCBpbiBkYXRhLmFyZ3Vt ZW50cyAlfXslIGlmIHAuYXJnbW9kZSAlfXt7cC5hcmdtb2RlfX0geyUgZW5k aWYgJX17JSBpZiBwLmFyZ25hbWUgJX17eyBjb25ufHF0SWRlbnQocC5hcmdu YW1lKSB9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJndHlwZSAlfXt7cC5hcmd0 eXBlfX17JSBlbmRpZiAlfXslIGlmIHAuYXJnZGVmdmFsICV9IERFRkFVTFQg e3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxh c3QgJX0sIHslIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KKykKK3slIGVuZGlm ICV9CisgICAgeyUgaWYgKCdwcm9sZWFrcHJvb2YnIGluIGRhdGEgYW5kIGRh dGEucHJvbGVha3Byb29mKSBvciAoJ3Byb2xlYWtwcm9vZicgbm90IGluIGRh dGEgYW5kIG9fZGF0YS5wcm9sZWFrcHJvb2YpICV9IExFQUtQUk9PRnslIGVs c2UgJX0gTk9UIExFQUtQUk9PRnslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2lz c3RyaWN0JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lzc3RyaWN0KSBvciAoJ3By b2lzc3RyaWN0JyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2lzc3RyaWN0 KSAlfSBTVFJJQ1R7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9zZWNkZWYnIGlu IGRhdGEgYW5kIGRhdGEucHJvc2VjZGVmKSBvciAoJ3Byb3NlY2RlZicgbm90 IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9zZWNkZWYpICV9IFNFQ1VSSVRZIERF RklORVJ7JSBlbmRpZiAlfQorCisgICAgeyUgaWYgZGF0YS5wcm9jb3N0ICV9 Q09TVCB7e2RhdGEucHJvY29zdH19eyUgZWxpZiBvX2RhdGEucHJvY29zdCAl fUNPU1Qge3tvX2RhdGEucHJvY29zdH19eyUgZW5kaWYgJX17JSBpZiBkYXRh LnByb3Jvd3MgJX0KKworICAgIFJPV1Mge3tkYXRhLnByb3Jvd3N9fXslIGVs aWYgb19kYXRhLnByb3Jvd3MgJX1ST1dTIHt7b19kYXRhLnByb3Jvd3N9fXsl IGVuZGlmIC0lfXslIGlmIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfXslIGZv ciB2IGluIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfQorCisgICAgU0VUIHt7 IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFs IH19eyUgZW5kZm9yIC0lfQoreyUgZW5kaWYgJX0KKworQVMKK3slIGlmIGRh dGEucHJvc3JjICV9e3sgZGF0YS5wcm9zcmMgfX17JSBlbHNlICV9e3sgb19k YXRhLnByb3NyYyB9fXslIGVuZGlmIC0lfTsKK3slIGVuZGlmIC0lfQoreyUg aWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIgUFJPQ0VEVVJFIHt7IGNv bm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fXslIGlm IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgJX0oe3sgb19kYXRhLnByb2FyZ3R5 cGVuYW1lcyB9fSl7JSBlbmRpZiAlfQorICAgIE9XTkVSIFRPIHt7IGRhdGEu ZnVuY293bmVyIH19OworeyUgZW5kaWYgLSV9Cit7IyBUaGUgU1FMIGdlbmVy YXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxlZGdlcyAjfQoreyUgaWYg ZGF0YS5hY2wgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLmFjbCAlfQor eyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuZGVsZXRlZCAlfQorCit7eyBQUklW SUxFR0UuVU5TRVRBTEwoY29ubiwgJ1BST0NFRFVSRScsIHByaXYuZ3JhbnRl ZSwgbmFtZSwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5 cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBp ZiAnY2hhbmdlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGlu IGRhdGEuYWNsLmNoYW5nZWQgJX0KKwore3sgUFJJVklMRUdFLlVOU0VUQUxM KGNvbm4sICdQUk9DRURVUkUnLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0 YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19CisK K3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1BST0NFRFVSRScsIHByaXYuZ3Jh bnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3Jh bnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFt ZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2Fk ZGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wu YWRkZWQgJX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAnUFJPQ0VEVVJF JywgcHJpdi5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHBy aXYud2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnBy b2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0K K3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyA9PSBGYWxz ZSAlfQoreyUgaWYgZGF0YS52YXJpYWJsZXMgJX0KK3slIGlmICdkZWxldGVk JyBpbiBkYXRhLnZhcmlhYmxlcyBhbmQgZGF0YS52YXJpYWJsZXMuZGVsZXRl ZHxsZW5ndGggPiAwICV9CisKK3t7IFZBUklBQkxFLlVOU0VUKGNvbm4sICdQ Uk9DRURVUkUnLCBuYW1lLCBkYXRhLnZhcmlhYmxlcy5kZWxldGVkLCBvX2Rh dGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQor eyUgZW5kaWYgLSV9Cit7JSBpZiAnbWVyZ2VkX3ZhcmlhYmxlcycgaW4gZGF0 YSBhbmQgZGF0YS5tZXJnZWRfdmFyaWFibGVzfGxlbmd0aCA+IDAgJX0KKwor e3sgVkFSSUFCTEUuU0VUKGNvbm4sICdQUk9DRURVUkUnLCBuYW1lLCBkYXRh Lm1lcmdlZF92YXJpYWJsZXMsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0 YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRpZiAtJX0KK3slIGVuZGlm IC0lfQoreyUgZW5kaWYgLSV9Cit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5z ZWNsYWJlbHMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5k IHNlY2xhYmVscy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGlu IHNlY2xhYmVscy5kZWxldGVkICV9CisKK3t7IFNFQ0xBQkVMLlVOU0VUKGNv bm4sICdQUk9DRURVUkUnLCBuYW1lLCByLnByb3ZpZGVyLCBvX2RhdGEucHJv bmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcgaW4gc2VjbGFi ZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9y IHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9CisKK3t7IFNFQ0xBQkVMLlNFVChj b25uLCAnUFJPQ0VEVVJFJywgbmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0 eV9sYWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5 cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBp ZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdl ZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hhbmdl ZCAlfQorCit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ1BST0NFRFVSRScsIG5h bWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIG9fZGF0YS5wcm9u YW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAl fQorCitDT01NRU5UIE9OIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQob19k YXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0KKyAgICBJUyB7eyBkYXRhLmRl c2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmIC0lfQoreyUgaWYg ZGF0YS5wcm9uYW1lc3BhY2UgJX0KKworQUxURVIgUFJPQ0VEVVJFIHt7IGNv bm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fQorICAg IFNFVCBTQ0hFTUEge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNl KSB9fTsKK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1 cmUvcHBhcy9zcWwvOS41X3BsdXMvdmFyaWFibGVzLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3Fs LzkuNV9wbHVzL3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uNTIzM2M3MQotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3Bw YXMvc3FsLzkuNV9wbHVzL3ZhcmlhYmxlcy5zcWwKQEAgLTAsMCArMSw2IEBA CitTRUxFQ1QKKyAgICBuYW1lLCB2YXJ0eXBlLCBtaW5fdmFsLCBtYXhfdmFs LCBlbnVtdmFscworRlJPTQorICAgIHBnX3NldHRpbmdzCitXSEVSRQorICAg IGNvbnRleHQgaW4gKCd1c2VyJywgJ3N1cGVydXNlcicpOwpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGVtcGxhdGVzL21hY3Jvcy9mdW5jdGlvbnMv cHJpdmlsZWdlLm1hY3JvcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RlbXBsYXRlcy9t YWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MKaW5kZXggMDhkMTE5 OC4uMWFjNGNlYSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVtcGxh dGVzL21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcworKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90ZW1wbGF0ZXMvbWFjcm9zL2Z1bmN0aW9ucy9wcml2 aWxlZ2UubWFjcm9zCkBAIC0xLDEzICsxLDkgQEAKIHsjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjfQogeyMgTWFjcm9z IGZvciBQcml2aWxlZ2VzIChmdW5jdGlvbnMgbW9kdWxlKSAgICN9CiB7IyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI30K LXslIG1hY3JvIFNFVChjb25uLCB0eXBlLCByb2xlLCBwYXJhbSwgcHJpdnMs IHdpdGhfZ3JhbnRfcHJpdnMsIHNjaGVtYSwgZnVuY19hcmdzKSAtJX0KLXsl IGlmIHByaXZzICV9Ci1HUkFOVCB7eyBwcml2c3xqb2luKCcsICcpIH19IE9O IHt7IHR5cGUgfX0ge3sgY29ubnxxdElkZW50KHNjaGVtYSwgcGFyYW0pIH19 KHt7ZnVuY19hcmdzfX0pIFRPIHt7Y29ubnxxdElkZW50KHJvbGUpIH19Owot eyUgZW5kaWYgJX0KLXslIGlmIHdpdGhfZ3JhbnRfcHJpdnMgJX0KLUdSQU5U IHt7IHdpdGhfZ3JhbnRfcHJpdnN8am9pbignLCAnKSB9fSBPTiB7eyB0eXBl IH19IHt7IGNvbm58cXRJZGVudChzY2hlbWEsIHBhcmFtKSB9fSh7e2Z1bmNf YXJnc319KSBUTyB7eyBjb25ufHF0SWRlbnQocm9sZSkgfX0gV0lUSCBHUkFO VCBPUFRJT047Ci17JSBlbmRpZiAlfQoreyUgbWFjcm8gU0VUKGNvbm4sIHR5 cGUsIHJvbGUsIHBhcmFtLCBwcml2cywgd2l0aF9ncmFudF9wcml2cywgc2No ZW1hLCBmdW5jX2FyZ3MpIC0lfXslIGlmIHByaXZzICV9CitHUkFOVCB7eyBw cml2c3xqb2luKCcsICcpIH19IE9OIHt7IHR5cGUgfX0ge3sgY29ubnxxdElk ZW50KHNjaGVtYSwgcGFyYW0pIH19KHt7ZnVuY19hcmdzfX0pIFRPIHt7Y29u bnxxdElkZW50KHJvbGUpIH19O3slIGVuZGlmICV9eyUgaWYgd2l0aF9ncmFu dF9wcml2cyAlfQorR1JBTlQge3sgd2l0aF9ncmFudF9wcml2c3xqb2luKCcs ICcpIH19IE9OIHt7IHR5cGUgfX0ge3sgY29ubnxxdElkZW50KHNjaGVtYSwg cGFyYW0pIH19KHt7ZnVuY19hcmdzfX0pIFRPIHt7IGNvbm58cXRJZGVudChy b2xlKSB9fSBXSVRIIEdSQU5UIE9QVElPTjt7JSBlbmRpZiAlfQogeyUtIGVu ZG1hY3JvICV9CiB7JSBtYWNybyBVTlNFVEFMTChjb25uLCB0eXBlLCByb2xl LCBwYXJhbSwgc2NoZW1hLCBmdW5jX2FyZ3MpIC0lfQogUkVWT0tFIEFMTCBP TiB7eyB0eXBlIH19IHt7IGNvbm58cXRJZGVudChzY2hlbWEsIHBhcmFtKSB9 fSh7e2Z1bmNfYXJnc319KSBGUk9NIHt7Y29ubnxxdElkZW50KHJvbGUpIH19 Owo= --047d7bfea0b6a7eaa2052eb7c5e5 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 --047d7bfea0b6a7eaa2052eb7c5e5--