Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aYZY9-0000dU-TE for pgadmin-hackers@arkaria.postgresql.org; Wed, 24 Feb 2016 13:32:18 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aYZY9-0006Yv-Cg for pgadmin-hackers@arkaria.postgresql.org; Wed, 24 Feb 2016 13:32:17 +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) (envelope-from ) id 1aYZY3-0006Wx-45 for pgadmin-hackers@postgresql.org; Wed, 24 Feb 2016 13:32:11 +0000 Received: from mail-wm0-x230.google.com ([2a00:1450:400c:c09::230]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aYZXy-0003DR-C4 for pgadmin-hackers@postgresql.org; Wed, 24 Feb 2016 13:32:09 +0000 Received: by mail-wm0-x230.google.com with SMTP id g62so30040342wme.0 for ; Wed, 24 Feb 2016 05:32:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=OOqECdYLScNK7fqIsBusSvtyLZld1B87uoJ7t+bmdCg=; b=B5cStqXAp0eKu1hneIbYxcrD9YG4MV1P1RZ0Ags94KejZ7KxiBm8Nx40h3lZ0IFtuf hNpAVMHFQGahXmUmJ1jtYPfG2pgRz7UzjuKtqpbpu0AU6f8+oQGz3e13+DoF23TjpiBF LhP8jIzKibZHB3M404v48CyIJXeTBqXPgV2mZzlq60wm1lqDNm1e1grv2ikoyMf7Mpn4 UlgjCoXxT84I5ugLmKJU4fD/O+AxzsqIus70Mf1EZEdpKBSeXs112BpRrrNzjQ1rqUmP QlI+/0FGvWl/ikPYUZe/0/DVpdxRf5diFxkVvdA6q4mFnmRgB7z6mOkHMs819f9nWLND Cjew== 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:from:date :message-id:subject:to; bh=OOqECdYLScNK7fqIsBusSvtyLZld1B87uoJ7t+bmdCg=; b=PK5jepKzL7Zl2Wj1ploKqiUtMHLjndIWgj4GgbLU7Vll8a98yFn5b1P/jgZk463DP+ cBbZppjhOtzjiIf5Wzwd2TQp55RlDjTXlC5JyjN5Q5U2uC9WufF+yacA3+6R7iauHVg0 PNP3TFpvOyg3zoMfT58zeED5tcBaLv19WTUrqZaDWsql7uj984S8LuxLFBo9LsqZNODZ x7UZery9y1RYnvWA3+8hsczpjHrWeQ29MUYm7r6iIXKlG2w1a3/Ih+2nsSBZnG4w8NB4 81eERVVzzd+PzEBHRf8oh2KJ2n0GBhL71QoGboB/d51tXJH3glVrmqPyWfe8IjADeQE+ pqUA== X-Gm-Message-State: AG10YOSBgqQWMRQuEfrXl0Mqt3uxoMzjeBUfwYqu5v3Y2B7ue6Dkm4UpcW5xV1V5BwGM5xr6HCW5JcX68wy64nWA X-Received: by 10.28.158.8 with SMTP id h8mr24603943wme.6.1456320725380; Wed, 24 Feb 2016 05:32:05 -0800 (PST) MIME-Version: 1.0 Received: by 10.28.55.74 with HTTP; Wed, 24 Feb 2016 05:31:35 -0800 (PST) In-Reply-To: References: From: Surinder Kumar Date: Wed, 24 Feb 2016 19:01:35 +0530 Message-ID: Subject: Re: [pgAdmin4] PATCH: View and Role Node To: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a114b3fde843d01052c841776 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 --001a114b3fde843d01052c841776 Content-Type: multipart/alternative; boundary=001a114b3fde843cfc052c841774 --001a114b3fde843cfc052c841774 Content-Type: text/plain; charset=UTF-8 Hi, Please find the updated patch with following changes: 1. Integrated dependents and dependency tabs with view and rule node. 2. Added "Create Rule" option for Table node. 3. Added node_inode property for rule node as it has no child node. 4. Improved javascript code commenting and added pydoc in python files. 5. Name column under dependents tab showing wrong name for rule node due to typo mistake, It is fixed. Please review it and Let me know for any comments. On Tue, Feb 2, 2016 at 1:59 PM, Surinder Kumar < surinder.kumar@enterprisedb.com> wrote: > Hi, > > > Please find the patch for the View and its child node Rule. > You have to apply database node and SqlFieldControl patch to run it. > > Please review it and Let me know for any comments. > > > Regards, > Surinder Kumar > --001a114b3fde843cfc052c841774 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

Please find the updated patch with = following changes:

1. Integrated dependents and de= pendency tabs with view and rule node.
2. Added "Create Rule= " option for Table node.
3. Added node_inode property for ru= le node as it has no child node.
4. Improved javascript code comm= enting and added pydoc in python files.
5. Name column under depe= ndents tab showing wrong name =C2=A0for rule node=C2=A0
due to ty= po mistake, It is fixed.

Please review it and Let me know for any comments.
<= br>

On= Tue, Feb 2, 2016 at 1:59 PM, Surinder Kumar <surinder.kuma= r@enterprisedb.com> wrote:
=
Hi,


Please find the patc= h for the View and its child node Rule.
You have to apply databas= e node and SqlFieldControl patch to run it.

Please review it and Let me know for any comments.=


Regards,
Surinde= r Kumar

--001a114b3fde843cfc052c841774-- --001a114b3fde843d01052c841776 Content-Type: application/octet-stream; name="view_and_role_node_v2.patch" Content-Disposition: attachment; filename="view_and_role_node_v2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_il0vslgs1 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL19faW5pdF9fLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvX19pbml0X18ucHkKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI0ZDY5MgotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL19faW5pdF9fLnB5CkBA IC0wLDAgKzEsNzI3IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENv cHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3Bt ZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCisiIiJJbXBsZW1lbnRzIFZpZXcgTm9kZSIiIgorCitp bXBvcnQganNvbgorZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRl LCBtYWtlX3Jlc3BvbnNlLCByZXF1ZXN0LCBqc29uaWZ5Citmcm9tIGZsYXNr LmV4dC5iYWJlbCBpbXBvcnQgZ2V0dGV4dAorZnJvbSBwZ2FkbWluLnV0aWxz LmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgXAorICAgIG1ha2Vf cmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgaW50ZXJuYWxfc2VydmVyX2Vy cm9yCitmcm9tIHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGls ZE5vZGVWaWV3Citmcm9tIHBnYWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9uIGlt cG9ydCBDb2xsZWN0aW9uTm9kZU1vZHVsZQoraW1wb3J0IHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMg YXMgc2NoZW1hcworZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IHBy ZWNvbmRpdGlvbl9yZXF1aXJlZAorZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZl ciBpbXBvcnQgZ2V0X2RyaXZlcgorZnJvbSBjb25maWcgaW1wb3J0IFBHX0RF RkFVTFRfRFJJVkVSCitmcm9tIGZ1bmN0b29scyBpbXBvcnQgd3JhcHMKK2Zy b20gLnBhcnNlX2RlZmluaXRpb24gaW1wb3J0IHBhcnNlX2RlZmluaXRpb24K KworCit0cnk6CisgICAgdW5pY29kZSA9IHVuaWNvZGUKK2V4Y2VwdCBOYW1l RXJyb3I6CisgICAgIyAndW5pY29kZScgaXMgdW5kZWZpbmVkLCBtdXN0IGJl IFB5dGhvbiAzCisgICAgc3RyID0gc3RyCisgICAgdW5pY29kZSA9IHN0cgor ICAgIGJ5dGVzID0gYnl0ZXMKKyAgICBiYXNlc3RyaW5nID0gKHN0ciwgYnl0 ZXMpCitlbHNlOgorICAgICMgJ3VuaWNvZGUnIGV4aXN0cywgbXVzdCBiZSBQ eXRob24gMgorICAgIHN0ciA9IHN0cgorICAgIHVuaWNvZGUgPSB1bmljb2Rl CisgICAgYnl0ZXMgPSBzdHIKKyAgICBiYXNlc3RyaW5nID0gYmFzZXN0cmlu ZworCisKK2NsYXNzIFZpZXdNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUp OgorICAgICIiIgorICAgIGNsYXNzIFZpZXdNb2R1bGUoT2JqZWN0KToKKwor ICAgICAgICBBIHZpZXcgY29sbGVjdGlvbiBOb2RlIHdoaWNoIGluaGVyaXRz IENvbGxlY3Rpb25Ob2RlTW9kdWxlCisgICAgICAgIGNsYXNzIGFuZCBkZWZp bmUgbWV0aG9kczoKKyAgICAgICAgICBnZXRfbm9kZXMgLSBUbyBnZW5lcmF0 ZSBjb2xsZWN0aW9uIG5vZGUuCisgICAgICAgICAgc2NyaXB0X2xvYWQgLSB0 ZWxscyB3aGVuIHRvIGxvYWQganMgZmlsZS4KKyAgICAgICAgICBjc3NzbnBw ZXRzIC0gYWRkIGNzcyB0byBwYWdlCisgICAgIiIiCisgICAgTk9ERV9UWVBF ID0gJ3ZpZXcnCisgICAgQ09MTEVDVElPTl9MQUJFTCA9IGdldHRleHQoIlZp ZXdzIikKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2Fy Z3MpOgorICAgICAgICBzZWxmLm1pbl92ZXIgPSBOb25lCisgICAgICAgIHNl bGYubWF4X3ZlciA9IE5vbmUKKworICAgICAgICBzdXBlcihWaWV3TW9kdWxl LCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisKKyAgICAjIEJl Zm9yZSBsb2FkaW5nIHRoaXMgbW9kdWxlIHdlIG5lZWQgdG8gbWFrZSBzdXJl IHRoYXQgc2NpZCBpcyBjYXRhbG9nIFwKKyAgICAjIGFuZCBzY2hlbWEgb2Jq ZWN0IGFuZCBjYXRhbG9nIG5hbWUgaXMgJ3N5cycsICdkYm8nLAorICAgICMg J2luZm9ybWF0aW9uX3NjaGVtYScgdGhlbiBvbmx5IHdlIGxvYWQgdGhpcyBt b2R1bGUKKyAgICBkZWYgQmFja2VuZFN1cHBvcnRlZChzZWxmLCBtYW5hZ2Vy LCAqKmt3YXJncyk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0 aW9uIHdpbGwgdmFsaWRhdGUgc2NoZW1hIG5hbWUgJiBzY2lkIGFnYWluc3Qg Y2F0YWxvZ3MgXAorICAgICAgICB0aGVuIGFsbG93IHVzIHRvIG1ha2UgZGlz c2lvbiBpZiB3ZSB3YW50IHRvIGxvYWQgdGhpcyBtb2R1bGUgb3IgXAorICAg ICAgICBub3QgZm9yIHRoYXQgc2NoZW1hCisgICAgICAgICIiIgorICAgICAg ICBpZiBzdXBlcihWaWV3TW9kdWxlLCBzZWxmKS5CYWNrZW5kU3VwcG9ydGVk KG1hbmFnZXIsICoqa3dhcmdzKToKKyAgICAgICAgICAgIGNvbm4gPSBtYW5h Z2VyLmNvbm5lY3Rpb24oKQorICAgICAgICAgICAgIyBJZiBEQiBpcyBub3Qg Y29ubmVjdGVkIHRoZW4gcmV0dXJuIGVycm9yIHRvIGJyb3dzZXIKKyAgICAg ICAgICAgIGlmIG5vdCBjb25uLmNvbm5lY3RlZCgpOgorICAgICAgICAgICAg ICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQoCisgICAgICAgICAg ICAgICAgICAgIGdldHRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIK KyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkKKyAg ICAgICAgICAgIHZlciA9IG1hbmFnZXIudmVyc2lvbgorICAgICAgICAgICAg c2VydmVyX3R5cGUgPSBtYW5hZ2VyLnNlcnZlcl90eXBlCisgICAgICAgICAg ICAjIHdlIHdpbGwgc2V0IHRlbXBsYXRlIHBhdGggZm9yIHNxbCBzY3JpcHRz CisgICAgICAgICAgICBpZiBzZXJ2ZXJfdHlwZSA9PSAncHBhcycgYW5kIHZl ciA+PSA5MDEwMDoKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9wYXRoID0g J3RlbXBsYXRlcy92aWV3cy9zcWwvZWRiXzkuMV9wbHVzJworICAgICAgICAg ICAgZWxpZiB2ZXIgPj0gOTAxMDA6CisgICAgICAgICAgICAgICAgdGVtcGxh dGVfcGF0aCA9ICd0ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuNF9wbHVzJworICAg ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjIE5vdGU6IFZpZXcg aXMgbm90IHN1cHBvcnRlZCBiZWxvdyBwb3N0Z3JlcyB2ZXJzaW9uIDkuMQor ICAgICAgICAgICAgICAgICMgSGVuY2Ugd2Ugd2lsbCBub3QgbG9hZCB0aGlz IG1vZHVsZQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAg ICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oWworICAg ICAgICAgICAgICB0ZW1wbGF0ZV9wYXRoLCAnYmFja2VuZF9zdXBwb3J0LnNx bCddKSwgc2NpZD1rd2FyZ3NbJ3NjaWQnXSkKKyAgICAgICAgICAgIHN0YXR1 cywgcmVzID0gY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCisgICAgICAgICAg ICAjIGNoZWNrIGlmIGFueSBlcnJvcnMKKyAgICAgICAgICAgIGlmIG5vdCBz dGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgICAgICAjIENoZWNrIHNj aWQgaXMgY2F0YWxvZyBhbmQgZnJvbSAnc3lzJywgJ2RibycsIFwKKyAgICAg ICAgICAgICMgJ2luZm9ybWF0aW9uX3NjaGVtYScsdGhlbiBGYWxzZSAoRG8g bm90IGxvYWQgdGhpcyBtb2R1bGUpLCBcCisgICAgICAgICAgICAjIG90aGV3 aXNlIFRydWUKKyAgICAgICAgICAgIGlmIHJlcyBpcyBUcnVlOgorICAgICAg ICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIGdldF9ub2Rl cyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgICAgIiIiCisg ICAgICAgIEdlbmVyYXRlIHRoZSBjb2xsZWN0aW9uIG5vZGUKKyAgICAgICAg IiIiCisgICAgICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xs ZWN0aW9uX25vZGUoc2NpZCkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBz Y3JpcHRfbG9hZChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIExvYWQg dGhlIG1vZHVsZSBzY3JpcHQgZm9yIHZpZXcsIHdoZW4gYW55IG9mIHRoZSBk YXRhYmFzZSBub2RlIGlzCisgICAgICAgIGluaXRpYWxpemVkLiBpdCBpcyBi ZWNhdXNlIHZpZXdzIGFyZSB1bmRlciBjYXRhbG9ncyBhbmQgc2NoZW1hcyAu CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2NoZW1hcy5TY2hlbWFN b2R1bGUuTk9ERV9UWVBFCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgY3Nz c25pcHBldHMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5z IGEgc25pcHBldCBvZiBjc3MgdG8gaW5jbHVkZSBpbiB0aGUgcGFnZQorICAg ICAgICAiIiIKKyAgICAgICAgc25pcHBldHMgPSBbCisgICAgICAgICAgICAg ICAgcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAgICAiYnJv d3Nlci9jc3MvY29sbGVjdGlvbi5jc3MiLAorICAgICAgICAgICAgICAgICAg ICBub2RlX3R5cGU9c2VsZi5ub2RlX3R5cGUsCisgICAgICAgICAgICAgICAg ICAgIF89Z2V0dGV4dAorICAgICAgICAgICAgICAgICAgICApLAorICAgICAg ICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAg ICAgInRlbXBsYXRlcy92aWV3cy9jc3Mvdmlldy5jc3MiLAorICAgICAgICAg ICAgICAgICAgICBub2RlX3R5cGU9c2VsZi5ub2RlX3R5cGUsCisgICAgICAg ICAgICAgICAgICAgIF89Z2V0dGV4dAorICAgICAgICAgICAgICAgICAgICAp CisgICAgICAgICAgICAgICAgXQorCisgICAgICAgIGZvciBzdWJtb2R1bGUg aW4gc2VsZi5zdWJtb2R1bGVzOgorICAgICAgICAgICAgc25pcHBldHMuZXh0 ZW5kKHN1Ym1vZHVsZS5jc3NzbmlwcGV0cykKKworICAgICAgICByZXR1cm4g c25pcHBldHMKKworIyBTZXQgdGVtcGxhdGVfZm9sZGVyIHRvIHZpZXdzLGFz IHZpZXcgYWxzbyB1c2VzIHJ1bGVzIHNxbCB0ZW1wbGF0ZXMuCitibHVlcHJp bnQgPSBWaWV3TW9kdWxlKF9fbmFtZV9fLCB0ZW1wbGF0ZV9mb2xkZXI9Ii4u L3ZpZXdzIikKKworCitjbGFzcyBWaWV3Tm9kZShQR0NoaWxkTm9kZVZpZXcp OgorICAgICIiIgorICAgIEl0IGlzIGEgY2xhc3MgZm9yIHZpZXcgbm9kZSB3 aGljaCBpbmhlcml0cyB0aGUKKyAgICBwcm9wZXJ0aWVzIGFuZCBtZXRob2Rz IGZyb20gUEdDaGlsZE5vZGVWaWV3IGNsYXNzIGFuZCBkZWZpbmUKKyAgICB2 YXJpb3VzIG1ldGhvZHMgdG8gbGlzdCwgY3JlYXRlLCB1cGRhdGUgYW5kIGRl bGV0ZSB2aWV3LgorCisgICAgVmFyaWFibGVzOgorICAgIC0tLS0tLS0tLQor ICAgICogbm9kZV90eXBlIC0gdGVsbHMgd2hpY2ggdHlwZSBvZiBub2RlIGl0 IGlzCisgICAgKiBwYXJlbnRfaWRzIC0gaWQgd2l0aCBpdHMgdHlwZSBhbmQg bmFtZSBvZiBwYXJlbnQgbm9kZXMKKyAgICAqIGlkcyAtIGlkIHdpdGggdHlw ZSBhbmQgbmFtZSBvZiBleHRlbnNpb24gbW9kdWxlIGJlaW5nIHVzZWQuCisg ICAgKiBvcGVyYXRpb25zIC0gZnVuY3Rpb24gcm91dGVzIG1hcHBpbmdzIGRl ZmluZWQuCisgICAgIiIiCisgICAgbm9kZV90eXBlID0gYmx1ZXByaW50Lm5v ZGVfdHlwZQorCisgICAgcGFyZW50X2lkcyA9IFsKKyAgICAgICAgICAgIHsn dHlwZSc6ICdpbnQnLCAnaWQnOiAnZ2lkJ30sCisgICAgICAgICAgICB7J3R5 cGUnOiAnaW50JywgJ2lkJzogJ3NpZCd9LAorICAgICAgICAgICAgeyd0eXBl JzogJ2ludCcsICdpZCc6ICdkaWQnfSwKKyAgICAgICAgICAgIHsndHlwZSc6 ICdpbnQnLCAnaWQnOiAnc2NpZCd9CisgICAgICAgICAgICBdCisgICAgaWRz ID0gWworICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICd2aWQn fQorICAgICAgICAgICAgXQorCisgICAgb3BlcmF0aW9ucyA9IGRpY3Qoewor ICAgICAgICAnb2JqJzogWworICAgICAgICAgICAgeydnZXQnOiAncHJvcGVy dGllcycsICdkZWxldGUnOiAnZGVsZXRlJywgJ3B1dCc6ICd1cGRhdGUnfSwK KyAgICAgICAgICAgIHsnZ2V0JzogJ2xpc3QnLCAncG9zdCc6ICdjcmVhdGUn fQorICAgICAgICBdLAorICAgICAgICAnY2hpbGRyZW4nOiBbeworICAgICAg ICAgICAgJ2dldCc6ICdjaGlsZHJlbicKKyAgICAgICAgfV0sCisgICAgICAg ICdkZWxldGUnOiBbeydkZWxldGUnOiAnZGVsZXRlJ31dLAorICAgICAgICAn bm9kZXMnOiBbeydnZXQnOiAnbm9kZSd9LCB7J2dldCc6ICdub2Rlcyd9XSwK KyAgICAgICAgJ3NxbCc6IFt7J2dldCc6ICdzcWwnfV0sCisgICAgICAgICdt c3FsJzogW3snZ2V0JzogJ21zcWwnfSwgeydnZXQnOiAnbXNxbCd9XSwKKyAg ICAgICAgJ3N0YXRzJzogW3snZ2V0JzogJ3N0YXRpc3RpY3MnfV0sCisgICAg ICAgICdkZXBlbmRlbmN5JzogW3snZ2V0JzogJ2RlcGVuZGVuY2llcyd9XSwK KyAgICAgICAgJ2RlcGVuZGVudCc6IFt7J2dldCc6ICdkZXBlbmRlbnRzJ31d LAorICAgICAgICAnbW9kdWxlLmpzJzogW3t9LCB7fSwgeydnZXQnOiAnbW9k dWxlX2pzJ31dLAorICAgICAgICAnY29uZmlncyc6IFt7J2dldCc6ICdjb25m aWdzJ31dCisgICAgfSkKKworICAgIGRlZiBtb2R1bGVfanMoc2VsZik6Cisg ICAgICAgICIiIgorICAgICAgICBUaGlzIHByb3BlcnR5IGRlZmluZXMgKGlm IGphdmFzY3JpcHQpIGV4aXN0cyBmb3IgdGhpcyBub2RlLgorICAgICAgICBP dmVycmlkZSB0aGlzIHByb3BlcnR5IGZvciB5b3VyIG93biBsb2dpYy4KKyAg ICAgICAgIiIiCisgICAgICAgIHJldHVybiBtYWtlX3Jlc3BvbnNlKAorICAg ICAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAg ICAgICAgInRlbXBsYXRlcy92aWV3cy9qcy92aWV3cy5qcyIsCisgICAgICAg ICAgICAgICAgICAgIF89Z2V0dGV4dAorICAgICAgICAgICAgICAgICAgICAp LAorICAgICAgICAgICAgICAgIDIwMCwgeydDb250ZW50LVR5cGUnOiAnYXBw bGljYXRpb24veC1qYXZhc2NyaXB0J30KKyAgICAgICAgICAgICAgICApCisK KyAgICBkZWYgY2hlY2tfcHJlY29uZGl0aW9uKGYpOgorICAgICAgICAiIiIK KyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRlY29y YXRvciB3aGljaCB3aWxsIGNoZWNrcworICAgICAgICBkYXRhYmFzZSBjb25u ZWN0aW9uIGJlZm9yZSBydW5uaW5nIHZpZXcsIGl0IHdpbGwgYWxzbyBhdHRh Y2hlcworICAgICAgICBtYW5hZ2VyLGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHBy b3BlcnRpZXMgdG8gc2VsZgorICAgICAgICAiIiIKKyAgICAgICAgQHdyYXBz KGYpCisgICAgICAgIGRlZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6CisKKyAg ICAgICAgICAgICMgSGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dh cmdzIHdpbGwgaG9sZCBnaWQsc2lkLGRpZAorICAgICAgICAgICAgc2VsZiA9 IGFyZ3NbMF0KKyAgICAgICAgICAgIHNlbGYubWFuYWdlciA9IGdldF9kcml2 ZXIoCisgICAgICAgICAgICAgIFBHX0RFRkFVTFRfRFJJVkVSKS5jb25uZWN0 aW9uX21hbmFnZXIoa3dhcmdzWydzaWQnXSkKKyAgICAgICAgICAgIHNlbGYu Y29ubiA9IHNlbGYubWFuYWdlci5jb25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2Rp ZCddKQorCisgICAgICAgICAgICAjIElmIERCIG5vdCBjb25uZWN0ZWQgdGhl biByZXR1cm4gZXJyb3IgdG8gYnJvd3NlcgorICAgICAgICAgICAgaWYgbm90 IHNlbGYuY29ubi5jb25uZWN0ZWQoKToKKyAgICAgICAgICAgICAgICByZXR1 cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKAorICAgICAgICAgICAgICAgICAg ICBnZXR0ZXh0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb25u ZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiCisgICAgICAg ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAg ICAgIHNlbGYuZGF0bGFzdHN5c29pZCA9IHNlbGYubWFuYWdlci5kYl9pbmZv WworICAgICAgICAgICAgICBrd2FyZ3NbJ2RpZCddXVsnZGF0bGFzdHN5c29p ZCddCisgICAgICAgICAgICB2ZXIgPSBzZWxmLm1hbmFnZXIudmVyc2lvbgor CisgICAgICAgICAgICAjIHdlIHdpbGwgc2V0IHRlbXBsYXRlIHBhdGggZm9y IHNxbCBzY3JpcHRzCisgICAgICAgICAgICBpZiB2ZXIgPj0gOTA0MDA6Cisg ICAgICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ3RlbXBsYXRl cy92aWV3cy9zcWwvOS40X3BsdXMnCisgICAgICAgICAgICBlbGlmIHZlciA+ PSA5MDMwMDoKKyAgICAgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGgg PSAndGVtcGxhdGVzL3ZpZXdzL3NxbC85LjNfcGx1cycKKyAgICAgICAgICAg IGVsaWYgdmVyID49IDkwMjAwOgorICAgICAgICAgICAgICAgIHNlbGYudGVt cGxhdGVfcGF0aCA9ICd0ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuMl9wbHVzJwor ICAgICAgICAgICAgZWxpZiB2ZXIgPj0gOTAxMDA6CisgICAgICAgICAgICAg ICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ3RlbXBsYXRlcy92aWV3cy9zcWwv OS4xX3BsdXMnCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg IHNlbGYudGVtcGxhdGVfcGF0aCA9ICd0ZW1wbGF0ZXMvdmlld3Mvc3FsL3By ZV85LjEnCisKKyAgICAgICAgICAgIHJldHVybiBmKCphcmdzLCAqKmt3YXJn cykKKworICAgICAgICByZXR1cm4gd3JhcAorCisgICAgQGNoZWNrX3ByZWNv bmRpdGlvbgorICAgIGRlZiBsaXN0KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNj aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgSXQgZmV0Y2hlcyBhbGwgdmll d3MgcHJvcGVydGllcyBhbmQgcmVuZGVyIGludG8gcHJvcGVydGllcworICAg ICAgICB0YWIKKyAgICAgICAgIiIiCisgICAgICAgIFNRTCA9IHJlbmRlcl90 ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9w YXRoLCAncHJvcGVydGllcy5zcWwnXSksIHNjaWQ9c2NpZCkKKyAgICAgICAg c3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKwor ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgIHJl dHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIHJlc3BvbnNl PXJlc1sncm93cyddLAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAg ICAgICAgICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisg ICAgZGVmIG5vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAg ICAgICAiIiIKKyAgICAgICAgSXQgbGlzdHMgZG93biB0aGUgYWxsIHZpZXdz IHVuZGVyIHRoZSBWaWV3cyBDb2xsZWN0aW9uIG5vZGUKKyAgICAgICAgIiIi CisgICAgICAgIHJlcyA9IFtdCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1w bGF0ZSgiLyIuam9pbigKKyAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRo LCAncHJvcGVydGllcy5zcWwnXSksIHNjaWQ9c2NpZCkKKyAgICAgICAgc3Rh dHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJzZXQpCisKKyAgICAgICAg Zm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICByZXMuYXBw ZW5kKAorICAgICAgICAgICAgICAgICAgICBzZWxmLmJsdWVwcmludC5nZW5l cmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAgICAgICBy b3dbJ29pZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgc2NpZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgIHJvd1snbmFtZSddLAorICAgICAgICAg ICAgICAgICAgICAgICAgaWNvbj0iaWNvbi12aWV3IgorICAgICAgICAgICAg ICAgICAgICApKQorCisgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9u c2UoCisgICAgICAgICAgICAgICAgZGF0YT1yZXMsCisgICAgICAgICAgICAg ICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkKKworICAgIGRlZiBw YXJzZV92aWV3c19wcml2aWxlZ2VzKHNlbGYsIGRiX3ByaXZpbGVnZXMpOgor ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBmb3JtcyBzZXBh cmF0ZSBsaXN0IG9mIGdyYW50YWJsZQorICAgICAgICBhbmQgbm9uIGdyYW50 YWJsZSBwcml2aWxlZ2VzLgorICAgICAgICAiIiIKKyAgICAgICAgYWNsID0g eydncmFudG9yJzogZGJfcHJpdmlsZWdlc1snZ3JhbnRvciddLAorICAgICAg ICAgICAgICAgJ2dyYW50ZWUnOiBkYl9wcml2aWxlZ2VzWydncmFudGVlJ10s CisgICAgICAgICAgICAgICAncHJpdmlsZWdlcyc6IFtdCisgICAgICAgICAg ICAgICB9CisKKyAgICAgICAgcHJpdmlsZWdlcyA9IFtdCisgICAgICAgIGZv ciBpZHgsIHByaXYgaW4gZW51bWVyYXRlKGRiX3ByaXZpbGVnZXNbJ3ByaXZp bGVnZXMnXSk6CisgICAgICAgICAgICBpZiBkYl9wcml2aWxlZ2VzWydncmFu dGFibGUnXVtpZHhdOgorICAgICAgICAgICAgICAgIHByaXZpbGVnZXMuYXBw ZW5kKHsicHJpdmlsZWdlX3R5cGUiOiBwcml2LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAicHJpdmlsZWdlIjogVHJ1ZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpdGhfZ3JhbnQiOiBU cnVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisg ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHByaXZpbGVnZXMu YXBwZW5kKHsicHJpdmlsZWdlX3R5cGUiOiBwcml2LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAicHJpdmlsZWdlIjogVHJ1ZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpdGhfZ3JhbnQi OiBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 KQorCisgICAgICAgIGFjbFsncHJpdmlsZWdlcyddID0gcHJpdmlsZWdlcwor CisgICAgICAgIHJldHVybiBhY2wKKworICAgIEBjaGVja19wcmVjb25kaXRp b24KKyAgICBkZWYgcHJvcGVydGllcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBz Y2lkLCB2aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgSXQgZmV0Y2hlcyB0 aGUgcHJvcGVydGllcyBvZiBhbiBpbmRpdmlkdWFsIHZpZXcKKyAgICAgICAg YW5kIHJlbmRlciBpbiBwcm9wZXJ0aWVzIHRhYgorCisgICAgICAgICIiIgor ICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAg ICAgICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwn XQorICAgICAgICAgICksIHZpZD12aWQsIGRhdGxhc3RzeXNvaWQ9c2VsZi5k YXRsYXN0c3lzb2lkKQorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29u bi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1yZXMpCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIu am9pbigKKyAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnYWNsLnNx bCddKSwgdmlkPXZpZCkKKyAgICAgICAgc3RhdHVzLCBkYXRhY2xyZXMgPSBz ZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgIGZvciByb3cgaW4gZGF0YWNs cmVzWydyb3dzJ106CisgICAgICAgICAgICBwcml2ID0gc2VsZi5wYXJzZV92 aWV3c19wcml2aWxlZ2VzKHJvdykKKyAgICAgICAgICAgIGlmIHJvd1snZGVm dHlwZSddIGluIHJlc1sncm93cyddWzBdOgorICAgICAgICAgICAgICAgIHJl c1sncm93cyddWzBdW3Jvd1snZGVmdHlwZSddXS5hcHBlbmQocHJpdikKKyAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVzWydyb3dzJ11b MF1bcm93WydkZWZ0eXBlJ11dID0gW3ByaXZdCisKKyAgICAgICAgcmVzdWx0 ID0gcmVzWydyb3dzJ11bMF0KKworICAgICAgICAjIHNlbmRpbmcgcmVzdWx0 IHRvIGZvcm10dGVyCisgICAgICAgIGZybXRkX3Jlc2x0ID0gc2VsZi5mb3Jt YXR0ZXIocmVzdWx0KQorCisgICAgICAgICMgbWVyZ2luZyBmb3JtYXRlZCBy ZXN1bHQgd2l0aCBtYWluIHJlc3VsdCBhZ2FpbgorICAgICAgICByZXN1bHQu dXBkYXRlKGZybXRkX3Jlc2x0KQorICAgICAgICByZXR1cm4gYWpheF9yZXNw b25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZT1yZXN1bHQsCisgICAg ICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkKKwor ICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgZm9ybWF0dGVyKHJlc3VsdCk6 CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIGZvcm1hdHMgb3V0cHV0IGZv cgorICAgICAgICBzZWN1cml0eSBsYWJlbCAmIHZhcmlhYmxlcyIiIgorICAg ICAgICBmcm10ZF9yZXN1bHQgPSBkaWN0KCkKKyAgICAgICAgc2VjX2xibHMg PSBbXQorICAgICAgICBpZiAnc2VjbGFiZWxzJyBpbiByZXN1bHQgYW5kIHJl c3VsdFsnc2VjbGFiZWxzJ10gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBm b3Igc2VjIGluIHJlc3VsdFsnc2VjbGFiZWxzJ106CisgICAgICAgICAgICAg ICAgaW1wb3J0IHJlCisgICAgICAgICAgICAgICAgc2VjID0gcmUuc2VhcmNo KHInKFtePV0rKT0oLiokKScsIHNlYykKKyAgICAgICAgICAgICAgICBzZWNf bGJscy5hcHBlbmQoeworICAgICAgICAgICAgICAgICAgICAncHJvdmlkZXIn OiBzZWMuZ3JvdXAoMSksCisgICAgICAgICAgICAgICAgICAgICdzZWN1cml0 eV9sYWJlbCc6IHNlYy5ncm91cCgyKQorICAgICAgICAgICAgICAgICAgICB9 KQorCisgICAgICAgIGZybXRkX3Jlc3VsdC51cGRhdGUoeyJzZWNsYWJlbHMi OiBzZWNfbGJsc30pCisgICAgICAgIHJldHVybiBmcm10ZF9yZXN1bHQKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgY3JlYXRlKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAg VGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZXMgbmV3IHZpZXcgb2JqZWN0Cisg ICAgICAgICIiIgorICAgICAgICByZXF1aXJlZF9hcmdzID0gWworICAgICAg ICAgICAgJ25hbWUnLAorICAgICAgICAgICAgJ2RlZmluaXRpb24nCisgICAg ICAgIF0KKworICAgICAgICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVl c3QuZm9ybSBlbHNlIFwKKyAgICAgICAgICAgIGpzb24ubG9hZHMocmVxdWVz dC5kYXRhLmRlY29kZSgpKQorICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVk X2FyZ3M6CisgICAgICAgICAgICBpZiBhcmcgbm90IGluIGRhdGE6CisgICAg ICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAg ICAgICAgICAgICAgICAgc3RhdHVzPTQxMCwKKyAgICAgICAgICAgICAgICAg ICAgc3VjY2Vzcz0wLAorICAgICAgICAgICAgICAgICAgICBlcnJvcm1zZz1n ZXR0ZXh0KAorICAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkbid0IGZp bmQgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAoJXMpLiIgJSBhcmcKKyAgICAg ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAg dHJ5OgorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5q b2luKAorICAgICAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnY3Jl YXRlLnNxbCddKSwgZGF0YT1kYXRhKQorICAgICAgICAgICAgc3RhdHVzLCBy ZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAg ICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3ZpZXdfaWQuc3FsJ10pLCBkYXRh PWRhdGEpCisgICAgICAgICAgICBzdGF0dXMsIHZpZXdfaWQgPSBzZWxmLmNv bm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXZpZXdfaWQpCisgICAgICAgICAgICByZXR1cm4g anNvbmlmeSgKKyAgICAgICAgICAgICAgICBub2RlPXNlbGYuYmx1ZXByaW50 LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgKKyAgICAgICAgICAgICAgICAgICAg dmlld19pZCwKKyAgICAgICAgICAgICAgICAgICAgc2NpZCwKKyAgICAgICAg ICAgICAgICAgICAgZGF0YVsnbmFtZSddLAorICAgICAgICAgICAgICAgICAg ICBpY29uPSJpY29uLXZpZXciCisgICAgICAgICAgICAgICAgKQorICAgICAg ICAgICAgKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg dXBkYXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHZpZCk6CisgICAg ICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHZp ZXcgb2JqZWN0CisgICAgICAgICIiIgorICAgICAgICBkYXRhID0gcmVxdWVz dC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNlIFwKKyAgICAgICAgICAgIGpz b24ubG9hZHMocmVxdWVzdC5kYXRhLmRlY29kZSgpKQorICAgICAgICBTUUwg PSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGF0YSwgdmlkKQorICAgICAgICB0 cnk6CisgICAgICAgICAgICBpZiBTUUwgYW5kIGlzaW5zdGFuY2UoU1FMLCBi YXNlc3RyaW5nKSBhbmQgXAorICAgICAgICAgICAgICAgICAgU1FMLnN0cmlw KCdcbicpIGFuZCBTUUwuc3RyaXAoJyAnKToKKyAgICAgICAgICAgICAgICBz dGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCisg ICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1y ZXMpCisKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3Bv bnNlKAorICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTEsCisgICAgICAg ICAgICAgICAgICAgIGluZm89Z2V0dGV4dCgiVmlldyB1cGRhdGVkIiksCisg ICAgICAgICAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAgICAgICAg ICAgICAgJ2lkJzogdmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Np ZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdnaWQnOiBnaWQs CisgICAgICAgICAgICAgICAgICAgICAgICAnZGlkJzogZGlkCisgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICApCisgICAgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVz cG9uc2UoCisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAg ICAgICAgICAgICAgICAgaW5mbz1nZXR0ZXh0KCJOb3RoaW5nIHRvIHVwZGF0 ZSIpLAorICAgICAgICAgICAgICAgICAgICBkYXRhPXsKKyAgICAgICAgICAg ICAgICAgICAgICAgICdpZCc6IHZpZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICdzaWQnOiBzaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZ2lk JzogZ2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RpZCc6IGRpZAor ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKQorCisg ICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJl dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQor CisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZWxldGUoc2Vs ZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdmlkKToKKyAgICAgICAgIiIiCisg ICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBkcm9wIHRoZSB2aWV3IG9iamVj dAorICAgICAgICAiIiIKKworICAgICAgICAjIEJlbG93IHdpbGwgZGVjaWRl IGlmIGl0J3Mgc2ltcGxlIGRyb3Agb3IgZHJvcCB3aXRoIGNhc2NhZGUgY2Fs bAorICAgICAgICBjYXNjYWRlID0gVHJ1ZSBpZiBzZWxmLmNtZCA9PSAnZGVs ZXRlJyBlbHNlIEZhbHNlCisKKyAgICAgICAgdHJ5OgorCisgICAgICAgICAg ICAjIEdldCBuYW1lIGZvciB2aWV3IGZyb20gZGlkCisgICAgICAgICAgICBT UUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICAg IFtzZWxmLnRlbXBsYXRlX3BhdGgsICdkZWxldGUuc3FsJ10pLCB2aWQ9dmlk KQorICAgICAgICAgICAgc3RhdHVzLCByZXNfZGF0YSA9IHNlbGYuY29ubi5l eGVjdXRlX2RpY3QoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXJlc19kYXRhKQorCisgICAgICAgICAgICAjIGRyb3Agdmll dworICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2lu KAorICAgICAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnZGVsZXRl LnNxbCddKSwKKyAgICAgICAgICAgICAgICBuc3BuYW1lPXJlc19kYXRhWydy b3dzJ11bMF1bJ25zcG5hbWUnXSwKKyAgICAgICAgICAgICAgICBuYW1lPXJl c19kYXRhWydyb3dzJ11bMF1bJ25hbWUnXSwgY2FzY2FkZT1jYXNjYWRlCisg ICAgICAgICAgICAgICkKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2Vs Zi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgIGlmIG5v dCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl cnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIHJldHVy biBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgc3VjY2Vz cz0xLAorICAgICAgICAgICAgICAgIGluZm89Z2V0dGV4dCgiVmlldyBkcm9w cGVkIiksCisgICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAgICAgICAg ICAgICAgICdpZCc6IHZpZCwKKyAgICAgICAgICAgICAgICAgICAgJ3NpZCc6 IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAg ICAgICAgICAgICAgICAgJ2RpZCc6IGRpZAorICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFz IGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24K KyAgICBkZWYgbXNxbChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB2aWQ9 Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHRv IHJldHVybiBtb2RpZmllZCBTUUwKKyAgICAgICAgIiIiCisgICAgICAgIGRh dGEgPSB7fQorICAgICAgICBmb3IgaywgdiBpbiByZXF1ZXN0LmFyZ3MuaXRl bXMoKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBkYXRh W2tdID0ganNvbi5sb2Fkcyh2KQorICAgICAgICAgICAgZXhjZXB0IFZhbHVl RXJyb3I6CisgICAgICAgICAgICAgICAgZGF0YVtrXSA9IHYKKworICAgICAg ICBTUUwgPSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGF0YSwgdmlkKQorICAg ICAgICBpZiBTUUwgYW5kIGlzaW5zdGFuY2UoU1FMLCBiYXNlc3RyaW5nKSBh bmQgXAorICAgICAgICAgICAgICAgIFNRTC5zdHJpcCgnXG4nKSBhbmQgU1FM LnN0cmlwKCcgJyk6CisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jl c3BvbnNlKAorICAgICAgICAgICAgICAgICAgICBkYXRhPVNRTCwKKyAgICAg ICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICAg ICApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gbWFrZV9q c29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAgICBkYXRhPWdldHRl eHQoIi0tbW9kaWZpZWQgU1FMIiksCisgICAgICAgICAgICAgICAgICAgIHN0 YXR1cz0yMDAKKyAgICAgICAgICAgICAgICAgICAgKQorCisgICAgQHN0YXRp Y21ldGhvZAorICAgIGRlZiBwYXJzZV9wcml2aWxlZ2VzKHN0cl9wcml2aWxl Z2VzLCBvYmplY3RfdHlwZT0nVklFVycpOgorICAgICAgICAiIiJQYXJzZSBQ cml2aWxlZ2VzLiIiIgorICAgICAgICBkYl9wcml2aWxlZ2VzID0geworICAg ICAgICAgICAgJ2EnOiAnSU5TRVJUJywKKyAgICAgICAgICAgICdyJzogJ1NF TEVDVCcsCisgICAgICAgICAgICAndyc6ICdVUERBVEUnLAorICAgICAgICAg ICAgJ2QnOiAnREVMRVRFJywKKyAgICAgICAgICAgICd4JzogJ1JFRkVSRU5D RScsCisgICAgICAgICAgICAndCc6ICdUUklHR0VSJworICAgICAgICAgICAg fQorICAgICAgICBwcml2aWxlZ2VzID0gW10KKyAgICAgICAgZm9yIHByaXYg aW4gc3RyX3ByaXZpbGVnZXM6CisgICAgICAgICAgICBwcml2X3dpdGhfZ3Jh bnQgPSBbXQorICAgICAgICAgICAgcHJpdl93aXRob3V0X2dyYW50ID0gW10K KyAgICAgICAgICAgIGZvciBwcml2aWxlZ2UgaW4gcHJpdlsncHJpdmlsZWdl cyddOgorICAgICAgICAgICAgICAgIGlmIHByaXZpbGVnZVsnd2l0aF9ncmFu dCddOgorICAgICAgICAgICAgICAgICAgICBwcml2X3dpdGhfZ3JhbnQuYXBw ZW5kKAorICAgICAgICAgICAgICAgICAgICAgIGRiX3ByaXZpbGVnZXNbcHJp dmlsZWdlWydwcml2aWxlZ2VfdHlwZSddXSkKKyAgICAgICAgICAgICAgICBl bGlmIHByaXZpbGVnZVsncHJpdmlsZWdlJ106CisgICAgICAgICAgICAgICAg ICAgIHByaXZfd2l0aG91dF9ncmFudC5hcHBlbmQoCisgICAgICAgICAgICAg ICAgICAgICAgZGJfcHJpdmlsZWdlc1twcml2aWxlZ2VbJ3ByaXZpbGVnZV90 eXBlJ11dKQorICAgICAgICAgICAgcHJpdl93aXRoX2dyYW50ID0gIiwgIi5q b2luKHByaXZfd2l0aF9ncmFudCkKKyAgICAgICAgICAgIHByaXZfd2l0aG91 dF9ncmFudCA9ICIsICIuam9pbihwcml2X3dpdGhvdXRfZ3JhbnQpCisKKyAg ICAgICAgICAgICMgU2VydmVyIExldmVsIHZhbGlkYXRpb24KKyAgICAgICAg ICAgIGlmICdncmFudGVlJyBpbiBwcml2OgorICAgICAgICAgICAgICAgIHBy aXZpbGVnZXMuYXBwZW5kKAorICAgICAgICAgICAgICAgICAgeworICAgICAg ICAgICAgICAgICAgICAnZ3JhbnRlZSc6IHByaXZbJ2dyYW50ZWUnXSBpZiAn Z3JhbnRlZScgaW4gcHJpdiBlbHNlICcnLAorICAgICAgICAgICAgICAgICAg ICAnd2l0aF9ncmFudCc6IHByaXZfd2l0aF9ncmFudCwKKyAgICAgICAgICAg ICAgICAgICAgJ3dpdGhvdXRfZ3JhbnQnOiBwcml2X3dpdGhvdXRfZ3JhbnQK KyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICApCisgICAg ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiAnJworICAg ICAgICByZXR1cm4gcHJpdmlsZWdlcworCisgICAgZGVmIGdldFNRTChzZWxm LCBnaWQsIHNpZCwgZGF0YSwgdmlkPU5vbmUpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGdlbnJhdGUgc3FsIGZyb20gbW9k ZWwgZGF0YQorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAg ICAgaWYgdmlkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIFNRTCA9 IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAgICAgICAg ICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLAor ICAgICAgICAgICAgICAgICAgdmlkPXZpZCwKKyAgICAgICAgICAgICAgICAg IGRhdGxhc3RzeXNvaWQ9c2VsZi5kYXRsYXN0c3lzb2lkCisgICAgICAgICAg ICAgICAgKQorICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5j b25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAgICAgICAgICAgaWYgbm90 IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgICAgICAgICAg b2xkX2RhdGEgPSByZXNbJ3Jvd3MnXVswXQorCisgICAgICAgICAgICAgICAg aWYgJ25hbWUnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgICAgICBk YXRhWyduYW1lJ10gPSByZXNbJ3Jvd3MnXVswXVsnbmFtZSddCisgICAgICAg ICAgICAgICAgaWYgJ3NjaGVtYScgbm90IGluIGRhdGE6CisgICAgICAgICAg ICAgICAgICAgIGRhdGFbJ3NjaGVtYSddID0gcmVzWydyb3dzJ11bMF1bJ3Nj aGVtYSddCisKKyAgICAgICAgICAgICAgICBrZXkgPSAnZGF0YWNsJworICAg ICAgICAgICAgICAgIGlmIGtleSBpbiBkYXRhIGFuZCBkYXRhW2tleV0gaXMg bm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGlmICdhZGRlZCcgaW4g ZGF0YVtrZXldOgorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtrZXld WydhZGRlZCddID0gc2VsZi5wYXJzZV9wcml2aWxlZ2VzKAorICAgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhW2tleV1bJ2FkZGVkJ10pCisgICAgICAg ICAgICAgICAgICAgIGlmICdjaGFuZ2VkJyBpbiBkYXRhW2tleV06CisgICAg ICAgICAgICAgICAgICAgICAgICBkYXRhW2tleV1bJ2NoYW5nZWQnXSA9IHNl bGYucGFyc2VfcHJpdmlsZWdlcygKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgZGF0YVtrZXldWydjaGFuZ2VkJ10pCisgICAgICAgICAgICAgICAgICAg IGlmICdkZWxldGVkJyBpbiBkYXRhW2tleV06CisgICAgICAgICAgICAgICAg ICAgICAgICBkYXRhW2tleV1bJ2RlbGV0ZWQnXSA9IHNlbGYucGFyc2VfcHJp dmlsZWdlcygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtrZXld WydkZWxldGVkJ10pCisgICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3Rl bXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAgICAgICAgW3NlbGYudGVt cGxhdGVfcGF0aCwgJ3VwZGF0ZS5zcWwnXSksIGRhdGE9ZGF0YSwKKyAgICAg ICAgICAgICAgICAgICAgb19kYXRhPW9sZF9kYXRhLCBjb25uPXNlbGYuY29u bikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVxdWly ZWRfYXJncyA9IFsKKyAgICAgICAgICAgICAgICAgICAgJ25hbWUnLAorICAg ICAgICAgICAgICAgICAgICAnc2NoZW1hJywKKyAgICAgICAgICAgICAgICAg ICAgJ2RlZmluaXRpb24nCisgICAgICAgICAgICAgICAgXQorICAgICAgICAg ICAgICAgIGZvciBhcmcgaW4gcmVxdWlyZWRfYXJnczoKKyAgICAgICAgICAg ICAgICAgICAgaWYgYXJnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuICIgLS0gZGVmaW5pdGlvbiBpbmNvbXBsZXRlIgor CisgICAgICAgICAgICAgICAgaWYgJ2RhdGFjbCcgaW4gZGF0YSBhbmQgZGF0 YVsnZGF0YWNsJ10gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAg IGRhdGFbJ2RhdGFjbCddID0gc2VsZi5wYXJzZV9wcml2aWxlZ2VzKGRhdGFb J2RhdGFjbCddKQorICAgICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1w bGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAgICAgICAgIFtzZWxmLnRlbXBs YXRlX3BhdGgsICdjcmVhdGUuc3FsJ10pLCBkYXRhPWRhdGEpCisgICAgICAg ICAgICAgICAgaWYgZGF0YVsnZGVmaW5pdGlvbiddOgorICAgICAgICAgICAg ICAgICAgICBTUUwgKz0gIlxuIgorICAgICAgICAgICAgICAgICAgICBTUUwg Kz0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAgICAg ICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdncmFudC5zcWwnXSksIGRh dGE9ZGF0YSkKKyAgICAgICAgICAgIHJldHVybiBTUUwKKworICAgICAgICBl eGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBj aGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgc3FsKHNlbGYsIGdpZCwgc2lk LCBkaWQsIHNjaWQsIHZpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlz IGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3FsIHRvIHJlbmRlciBpbnRvIHNx bCBwYW5lbAorICAgICAgICAiIiIKKyAgICAgICAgU1FMX2RhdGEgPSAnJwor ICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAg ICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10p LAorICAgICAgICAgIHZpZD12aWQsCisgICAgICAgICAgZGF0bGFzdHN5c29p ZD1zZWxmLmRhdGxhc3RzeXNvaWQKKyAgICAgICAgKQorICAgICAgICBzdGF0 dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAg ICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgIyBGZXRj aCBhbGwgcHJpdmlsZWdlcyBmb3IgdmlldworICAgICAgICBTUUwgPSByZW5k ZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgW3NlbGYudGVtcGxh dGVfcGF0aCwgJ2FjbC5zcWwnXSksIHZpZD12aWQpCisgICAgICAgIHN0YXR1 cywgZGF0YWNscmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICBm b3Igcm93IGluIGRhdGFjbHJlc1sncm93cyddOgorICAgICAgICAgICAgcHJp diA9IHNlbGYucGFyc2Vfdmlld3NfcHJpdmlsZWdlcyhyb3cpCisgICAgICAg ICAgICBpZiByb3dbJ2RlZnR5cGUnXSBpbiByZXNbJ3Jvd3MnXVswXToKKyAg ICAgICAgICAgICAgICByZXNbJ3Jvd3MnXVswXVsnZGF0YWNsJ10uYXBwZW5k KHByaXYpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJl c1sncm93cyddWzBdWydkYXRhY2wnXSA9IFtwcml2XQorCisgICAgICAgIHJl c3VsdCA9IHJlc1sncm93cyddWzBdCisgICAgICAgIGlmICdkYXRhY2wnIGlu IHJlc3VsdDoKKyAgICAgICAgICAgIHJlc3VsdFsnZGF0YWNsJ10gPSBzZWxm LnBhcnNlX3ByaXZpbGVnZXMocmVzdWx0WydkYXRhY2wnXSkKKyAgICAgICAg U1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAg ICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdjcmVhdGUuc3FsJ10pLAorICAg ICAgICAgICAgICAgIGRhdGE9cmVzdWx0LAorICAgICAgICAgICAgICAgIGNv bm49c2VsZi5jb25uLAorICAgICAgICAgICAgICAgIGRpc3BsYXlfY29tbWVu dHM9VHJ1ZQorICAgICAgICAgICAgICApCisgICAgICAgIFNRTCArPSAiXG4i CisgICAgICAgIFNRTCArPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisg ICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2dyYW50LnNxbCddKSwg ZGF0YT1yZXN1bHQpCisKKyAgICAgICAgU1FMX2RhdGEgKz0gU1FMCisKKyAg ICAgICAgIiIiR2V0IGFsbCBub24gc3lzdGVtIHJ1bGVzIG9mIHZpZXcgbm9k ZSwgZ2VuZXJhdGUgdGhlaXIgc3FsIGFuZCByZW5kZXIKKyAgICAgICAgICBp bnRvIHNxbCB0YWIiIiIKKyAgICAgICAgc2VsZi50ZW1wX3BhdGggPSAncnVs ZXMvdGVtcGxhdGVzL3J1bGVzL3NxbCcKKyAgICAgICAgU1FMID0gcmVuZGVy X3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgIFtzZWxmLnRlbXBfcGF0 aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLCB2aWQ9dmlkKQorICAgICAgICBzdGF0 dXMsIGRhdGFfcHJvcCA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQor ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAg Zm9yIHJ1bGUgaW4gZGF0YV9wcm9wWydyb3dzJ106CisKKyAgICAgICAgICAg ICMgR2VuZXJhdGUgU1FMIG9ubHkgZm9yIG5vbiBzeXN0ZW0gcnVsZQorICAg ICAgICAgICAgaWYgcnVsZVsnbmFtZSddICE9ICdfUkVUVVJOJzoKKyAgICAg ICAgICAgICAgICByZXMgPSBbXQorICAgICAgICAgICAgICAgIFNRTCA9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAgICAgICAgIFtz ZWxmLnRlbXBfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAg ICAgICAgICAgICByaWQ9cnVsZVsnb2lkJ10KKyAgICAgICAgICAgICAgICAg ICAgKQorICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25u LmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAgICAgICAgICAgcmVzX2RhdGEg PSBwYXJzZV9kZWZpbml0aW9uKHJlcykKKyAgICAgICAgICAgICAgICBTUUwg PSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICAgICAg ICBbc2VsZi50ZW1wX3BhdGgsICdjcmVhdGUuc3FsJ10pLAorICAgICAgICAg ICAgICAgICAgICBkYXRhPXJlc19kYXRhLCBkaXNwbGF5X2NvbW1lbnRzPVRy dWUpCisgICAgICAgICAgICAgICAgU1FMX2RhdGEgKz0gJ1xuJworICAgICAg ICAgICAgICAgIFNRTF9kYXRhICs9IFNRTAorCisgICAgICAgIHJldHVybiBh amF4X3Jlc3BvbnNlKHJlc3BvbnNlPVNRTF9kYXRhKQorCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZXBlbmRlbnRzKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQsIHZpZCk6CisgICAgICAgICIiIgorICAgICAgICBU aGlzIGZ1bmN0aW9uIGdldCB0aGUgZGVwZW5kZW50cyBhbmQgcmV0dXJuIGFq YXggcmVzcG9uc2UKKyAgICAgICAgZm9yIHRoZSB2aWV3IG5vZGUuCisKKyAg ICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElE CisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlk OiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgdmlkOiBWaWV3IElECisgICAg ICAgICIiIgorICAgICAgICBkZXBlbmRlbnRzX3Jlc3VsdCA9IHNlbGYuZ2V0 X2RlcGVuZGVudHMoc2VsZi5jb25uLCB2aWQpCisgICAgICAgIHJldHVybiBh amF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW50 c19yZXN1bHQsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAg ICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGRlcGVu ZGVuY2llcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB2aWQpOgorICAg ICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVu ZGVuY2llcyBhbmQgcmV0dXJuIGFqYXggcmVzcG9uc2UKKyAgICAgICAgZm9y IHRoZSB2aWV3IG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAg IGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZl ciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAg ICAgdmlkOiBWaWV3IElECisgICAgICAgICIiIgorICAgICAgICBkZXBlbmRl bmNpZXNfcmVzdWx0ID0gc2VsZi5nZXRfZGVwZW5kZW5jaWVzKHNlbGYuY29u biwgdmlkKQorICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAg ICAgICAgIHJlc3BvbnNlPWRlcGVuZGVuY2llc19yZXN1bHQsCisgICAgICAg ICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICApCisKK1ZpZXdOb2RlLnJl Z2lzdGVyX25vZGVfdmlldyhibHVlcHJpbnQpCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy9wYXJzZV9kZWZpbml0aW9uLnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvcGFyc2VfZGVmaW5pdGlvbi5weQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzE3YWNmCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvcGFyc2VfZGVmaW5pdGlv bi5weQpAQCAtMCwwICsxLDU5IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisj CisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERl dmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1 bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworCisiIiIgUGFyc2UgZGVmaW5pdGlvbiBmaWVs ZCBkYXRhICIiIgorCitmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQg aW50ZXJuYWxfc2VydmVyX2Vycm9yCisKKworZGVmIHBhcnNlX2RlZmluaXRp b24ocmVzKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIGV4dHJhY3Rz OgorICAgIC0gZXZlbnRzCisgICAgLSBkb19pbnN0ZWFkCisgICAgLSBzdGF0 ZW1lbnRzCisgICAgLSBjb25kaXRpb24KKyAgICBmcm9tIHRoZSBkZWZpbnRp b24gcm93LCBmb3JtIGFuIGFycmF5IHdpdGgKKyAgICBmaWVsZHMgYW5kIHJl dHVybiBpdC4KKyAgICAiIiIKKyAgICByZXNfZGF0YSA9IFtdCisgICAgdHJ5 OgorICAgICAgICByZXNfZGF0YSA9IHJlc1sncm93cyddWzBdCisgICAgICAg IGRhdGFfZGVmID0gcmVzX2RhdGFbJ2RlZmluaXRpb24nXQorICAgICAgICBp bXBvcnQgcmUKKyAgICAgICAgIyBQYXJzZSBkYXRhIGZvciBldmVudAorICAg ICAgICBlX21hdGNoID0gcmUuc2VhcmNoKHIiT05ccysoLiopXHMrVE8iLCBk YXRhX2RlZikKKyAgICAgICAgZXZlbnRfZGF0YSA9IGVfbWF0Y2guZ3JvdXAo MSkgaWYgZV9tYXRjaCBpcyBub3QgTm9uZSBlbHNlIE5vbmUKKyAgICAgICAg ZXZlbnQgPSBldmVudF9kYXRhIGlmIGV2ZW50X2RhdGEgaXMgbm90IE5vbmUg ZWxzZSAnJworCisgICAgICAgICMgUGFyc2UgZGF0YSBmb3IgZG8gaW5zdGVh ZAorICAgICAgICBpbnN0X21hdGNoID0gcmUuc2VhcmNoKHIiXHMrKElOU1RF QUQpXHMrIiwgZGF0YV9kZWYpCisgICAgICAgIGluc3RlYWRfZGF0YSA9IGlu c3RfbWF0Y2guZ3JvdXAoMSkgaWYgaW5zdF9tYXRjaCBpcyBub3QgTm9uZSBl bHNlIE5vbmUKKyAgICAgICAgaW5zdGVhZCA9IFRydWUgaWYgaW5zdGVhZF9k YXRhIGlzIG5vdCBOb25lIGVsc2UgRmFsc2UKKworICAgICAgICAjIFBhcnNl IGRhdGEgZm9yIGNvbmRpdGlvbgorICAgICAgICBjb25kaXRpb25fbWF0Y2gg PSByZS5zZWFyY2gociIoPzpXSEVSRSlccysoLiopXHMrKD86RE8pIiwgZGF0 YV9kZWYpCisgICAgICAgIGNvbmRpdGlvbl9kYXRhID0gY29uZGl0aW9uX21h dGNoLmdyb3VwKDEpIFwKKyAgICAgICAgICAgIGlmIGNvbmRpdGlvbl9tYXRj aCBpcyBub3QgTm9uZSBlbHNlIE5vbmUKKyAgICAgICAgY29uZGl0aW9uID0g Y29uZGl0aW9uX2RhdGEgaWYgY29uZGl0aW9uX2RhdGEgaXMgbm90IE5vbmUg ZWxzZSAnJworCisgICAgICAgICMgUGFyc2UgZGF0YSBmb3Igc3RhdGVtZW50 cworICAgICAgICBzdGF0ZW1lbnRfbWF0Y2ggPSByZS5zZWFyY2goCisgICAg ICAgICAgICByIig/OkRPXHMrKSg/OklOU1RFQURccyspPygoLnxcbikqKSIs IGRhdGFfZGVmKQorICAgICAgICBzdGF0ZW1lbnRfZGF0YSA9IHN0YXRlbWVu dF9tYXRjaC5ncm91cCgxKSBpZiBzdGF0ZW1lbnRfbWF0Y2ggZWxzZSBOb25l CisgICAgICAgIHN0YXRlbWVudCA9IHN0YXRlbWVudF9kYXRhIGlmIHN0YXRl bWVudF9kYXRhIGlzIG5vdCBOb25lIGVsc2UgJycKKworICAgICAgICAjIHNl dCBjb2x1bW5zIHBhcnNlIGRhdGEKKyAgICAgICAgcmVzX2RhdGFbJ2V2ZW50 J10gPSBldmVudC5sb3dlcigpLmNhcGl0YWxpemUoKQorICAgICAgICByZXNf ZGF0YVsnZG9faW5zdGVhZCddID0gaW5zdGVhZAorICAgICAgICByZXNfZGF0 YVsnc3RhdGVtZW50cyddID0gc3RhdGVtZW50CisgICAgICAgIHJlc19kYXRh Wydjb25kaXRpb24nXSA9IGNvbmRpdGlvbgorICAgIGV4Y2VwdCBFeGNlcHRp b24gYXMgZToKKyAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1zdHIoZSkpCisgICAgcmV0dXJuIHJlc19kYXRhCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy9ydWxlcy9fX2luaXRfXy5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3J1bGVzL19faW5pdF9fLnB5Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkOTU4ZTIKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy9ydWxlcy9f X2luaXRfXy5weQpAQCAtMCwwICsxLDUyNiBAQAorIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBU b29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdB ZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIiIiIEltcGxlbWVudHMgUnVs ZSBOb2RlICIiIgorCitpbXBvcnQganNvbgorZnJvbSBmbGFzayBpbXBvcnQg cmVuZGVyX3RlbXBsYXRlLCBtYWtlX3Jlc3BvbnNlLCByZXF1ZXN0LCBqc29u aWZ5Citmcm9tIGZsYXNrLmV4dC5iYWJlbCBpbXBvcnQgZ2V0dGV4dAorZnJv bSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25z ZSwgXAorICAgIG1ha2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgaW50 ZXJuYWxfc2VydmVyX2Vycm9yCitmcm9tIHBnYWRtaW4uYnJvd3Nlci51dGls cyBpbXBvcnQgUEdDaGlsZE5vZGVWaWV3Citmcm9tIHBnYWRtaW4uYnJvd3Nl ci5jb2xsZWN0aW9uIGltcG9ydCBDb2xsZWN0aW9uTm9kZU1vZHVsZQoraW1w b3J0IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnNjaGVtYXMudmlld3MgYXMgdmlld3MKK2Zyb20gcGdhZG1pbi51 dGlscy5hamF4IGltcG9ydCBwcmVjb25kaXRpb25fcmVxdWlyZWQKK2Zyb20g cGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20g Y29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgorZnJvbSBmdW5jdG9v bHMgaW1wb3J0IHdyYXBzCitmcm9tIC4ucGFyc2VfZGVmaW5pdGlvbiBpbXBv cnQgcGFyc2VfZGVmaW5pdGlvbgorCisKK3RyeToKKyAgICB1bmljb2RlID0g dW5pY29kZQorZXhjZXB0IE5hbWVFcnJvcjoKKyAgICAjICd1bmljb2RlJyBp cyB1bmRlZmluZWQsIG11c3QgYmUgUHl0aG9uIDMKKyAgICBzdHIgPSBzdHIK KyAgICB1bmljb2RlID0gc3RyCisgICAgYnl0ZXMgPSBieXRlcworICAgIGJh c2VzdHJpbmcgPSAoc3RyLCBieXRlcykKK2Vsc2U6CisgICAgIyAndW5pY29k ZScgZXhpc3RzLCBtdXN0IGJlIFB5dGhvbiAyCisgICAgc3RyID0gc3RyCisg ICAgdW5pY29kZSA9IHVuaWNvZGUKKyAgICBieXRlcyA9IHN0cgorICAgIGJh c2VzdHJpbmcgPSBiYXNlc3RyaW5nCisKKworY2xhc3MgUnVsZU1vZHVsZShD b2xsZWN0aW9uTm9kZU1vZHVsZSk6CisgICAgIiIiCisgICAgY2xhc3MgUnVs ZU1vZHVsZShPYmplY3QpOgorCisgICAgICAgIEEgcnVsZSBjb2xsZWN0aW9u IE5vZGUgd2hpY2ggaW5oZXJpdHMgQ29sbGVjdGlvbk5vZGVNb2R1bGUKKyAg ICAgICAgY2xhc3MgYW5kIGRlZmluZSBtZXRob2RzOgorICAgICAgICAgIGdl dF9ub2RlcyAtIFRvIGdlbmVyYXRlIGNvbGxlY3Rpb24gbm9kZS4KKyAgICAg ICAgICBzY3JpcHRfbG9hZCAtIHRlbGxzIHdoZW4gdG8gbG9hZCBqcyBmaWxl LgorICAgICAgICAgIGNzc3NucHBldHMgLSBhZGQgY3NzIHRvIHBhZ2UKKyAg ICAiIiIKKyAgICBOT0RFX1RZUEUgPSAncnVsZScKKyAgICBDT0xMRUNUSU9O X0xBQkVMID0gZ2V0dGV4dCgiUnVsZXMiKQorCisgICAgZGVmIF9faW5pdF9f KHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYubWluX3Zl ciA9IE5vbmUKKyAgICAgICAgc2VsZi5tYXhfdmVyID0gTm9uZQorCisgICAg ICAgIHN1cGVyKFJ1bGVNb2R1bGUsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAq Kmt3YXJncykKKworICAgICMgQmVmb3JlIGxvYWRpbmcgdGhpcyBtb2R1bGUg d2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCBzY2lkIGlzIGNhdGFsb2cgXAor ICAgICMgYW5kIHNjaGVtYSBvYmplY3QgYW5kIGNhdGFsb2cgbmFtZSBpcyAn c3lzJywgJ2RibycsCisgICAgIyAnaW5mb3JtYXRpb25fc2NoZW1hJyB0aGVu IG9ubHkgd2UgbG9hZCB0aGlzIG1vZHVsZQorICAgIGRlZiBCYWNrZW5kU3Vw cG9ydGVkKHNlbGYsIG1hbmFnZXIsICoqa3dhcmdzKToKKyAgICAgICAgIiIi CisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCB2YWxpZGF0ZSBzY2hlbWEg bmFtZSAmIHNjaWQgYWdhaW5zdCBjYXRhbG9ncyBcCisgICAgICAgIHRoZW4g YWxsb3cgdXMgdG8gbWFrZSBkaXNzaW9uIGlmIHdlIHdhbnQgdG8gbG9hZCB0 aGlzIG1vZHVsZSBvciBcCisgICAgICAgIG5vdCBmb3IgdGhhdCBzY2hlbWEK KyAgICAgICAgIiIiCisgICAgICAgIGlmIHN1cGVyKFJ1bGVNb2R1bGUsIHNl bGYpLkJhY2tlbmRTdXBwb3J0ZWQobWFuYWdlciwgKiprd2FyZ3MpOgorICAg ICAgICAgICAgY29ubiA9IG1hbmFnZXIuY29ubmVjdGlvbigpCisgICAgICAg ICAgICAjIElmIERCIGlzIG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJy b3IgdG8gYnJvd3NlcgorICAgICAgICAgICAgaWYgbm90IGNvbm4uY29ubmVj dGVkKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9y ZXF1aXJlZCgKKyAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2Vy dmVyIGhhcyBiZWVuIGxvc3QhIgorICAgICAgICAgICAgICAgICAgICApCisg ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgdmVyID0gbWFuYWdlci52 ZXJzaW9uCisgICAgICAgICAgICBzZXJ2ZXJfdHlwZSA9IG1hbmFnZXIuc2Vy dmVyX3R5cGUKKyAgICAgICAgICAgIHRlbXBsYXRlX3BhdGggPSAncnVsZXMv c3FsJworICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5q b2luKAorICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZV9wYXRoLCAnYmFja2Vu ZF9zdXBwb3J0LnNxbCddCisgICAgICAgICAgICAgICksIHNjaWQ9a3dhcmdz WydzY2lkJ10pCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IGNvbm4uZXhl Y3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgIyBjaGVjayBpZiBhbnkg ZXJyb3JzCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorICAgICAgICAgICAgIyBDaGVjayBzY2lkIGlzIGNhdGFsb2cgYW5k IGZyb20gJ3N5cycsICdkYm8nLCBcCisgICAgICAgICAgICAjICdpbmZvcm1h dGlvbl9zY2hlbWEnLHRoZW4gRmFsc2UgKERvIG5vdCBsb2FkIHRoaXMgbW9k dWxlKSwgXAorICAgICAgICAgICAgIyBvdGhld2lzZSBUcnVlCisgICAgICAg ICAgICBpZiByZXMgaXMgVHJ1ZToKKyAgICAgICAgICAgICAgICByZXR1cm4g RmFsc2UKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0 dXJuIFRydWUKKworICAgIGRlZiBnZXRfbm9kZXMoc2VsZiwgZ2lkLCBzaWQs IGRpZCwgc2NpZCwgdmlkKToKKyAgICAgICAgIiIiCisgICAgICAgIEdlbmVy YXRlIHRoZSBjb2xsZWN0aW9uIG5vZGUKKyAgICAgICAgIiIiCisgICAgICAg IHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25vZGUo dmlkKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG5vZGVfaW5vZGUoc2Vs Zik6CisgICAgICAgICIiIgorICAgICAgICBJZiBhIG5vZGUgaGF2ZSBjaGls ZCByZXR1cm4gVHJ1ZSBvdGhlcndpc2UgRmFsc2UKKyAgICAgICAgIiIiCisg ICAgICAgIHJldHVybiBGYWxzZQorCisgICAgQHByb3BlcnR5CisgICAgZGVm IHNjcmlwdF9sb2FkKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgTG9h ZCB0aGUgbW9kdWxlIHNjcmlwdCBmb3IgcnVsZSwgd2hlbiBhbnkgb2YgdGhl IGRhdGFiYXNlIG5vZGUgaXMKKyAgICAgICAgaW5pdGlhbGl6ZWQuCisgICAg ICAgICIiIgorICAgICAgICByZXR1cm4gdmlld3MuVmlld01vZHVsZS5OT0RF X1RZUEUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjc3NzbmlwcGV0cyhz ZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgYSBzbmlwcGV0 IG9mIGNzcyB0byBpbmNsdWRlIGluIHRoZSBwYWdlCisgICAgICAgICIiIgor ICAgICAgICBzbmlwcGV0cyA9IFsKKyAgICAgICAgICAgICAgICByZW5kZXJf dGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICJicm93c2VyL2Nzcy9j b2xsZWN0aW9uLmNzcyIsCisgICAgICAgICAgICAgICAgICAgIG5vZGVfdHlw ZT1zZWxmLm5vZGVfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgXz1nZXR0 ZXh0CisgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAg cmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAgICAicnVsZXMv Y3NzL3J1bGUuY3NzIiwKKyAgICAgICAgICAgICAgICAgICAgbm9kZV90eXBl PXNlbGYubm9kZV90eXBlLAorICAgICAgICAgICAgICAgICAgICBfPWdldHRl eHQKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIF0K KworICAgICAgICBmb3Igc3VibW9kdWxlIGluIHNlbGYuc3VibW9kdWxlczoK KyAgICAgICAgICAgIHNuaXBwZXRzLmV4dGVuZChzdWJtb2R1bGUuY3Nzc25p cHBldHMpCisKKyAgICAgICAgcmV0dXJuIHNuaXBwZXRzCisKKworIyBDcmVh dGUgYmx1ZXByaW50IG9mIFJ1bGVNb2R1bGUuCitibHVlcHJpbnQgPSBSdWxl TW9kdWxlKF9fbmFtZV9fKQorCisKK2NsYXNzIFJ1bGVWaWV3KFBHQ2hpbGRO b2RlVmlldyk6CisgICAgIiIiCisgICAgSXQgaXMgYSBjbGFzcyBmb3IgcnVs ZSBub2RlIHdoaWNoIGluaGVyaXRzIHRoZQorICAgIHByb3BlcnRpZXMgYW5k IG1ldGhvZHMgZnJvbSBQR0NoaWxkTm9kZVZpZXcgY2xhc3MgYW5kIGRlZmlu ZQorICAgIHZhcmlvdXMgbWV0aG9kcyB0byBsaXN0LCBjcmVhdGUsIHVwZGF0 ZSBhbmQgZGVsZXRlIHJ1bGUuCisKKyAgICBWYXJpYWJsZXM6CisgICAgLS0t LS0tLS0tCisgICAgKiBub2RlX3R5cGUgLSB0ZWxscyB3aGljaCB0eXBlIG9m IG5vZGUgaXQgaXMKKyAgICAqIHBhcmVudF9pZHMgLSBpZCB3aXRoIGl0cyB0 eXBlIGFuZCBuYW1lIG9mIHBhcmVudCBub2RlcworICAgICogaWRzIC0gaWQg d2l0aCB0eXBlIGFuZCBuYW1lIG9mIGV4dGVuc2lvbiBtb2R1bGUgYmVpbmcg dXNlZC4KKyAgICAqIG9wZXJhdGlvbnMgLSBmdW5jdGlvbiByb3V0ZXMgbWFw cGluZ3MgZGVmaW5lZC4KKyAgICAiIiIKKyAgICBub2RlX3R5cGUgPSBibHVl cHJpbnQubm9kZV90eXBlCisKKyAgICBwYXJlbnRfaWRzID0gWworICAgICAg ICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdnaWQnfSwKKyAgICAgICAg ICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnc2lkJ30sCisgICAgICAgICAg ICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ2RpZCd9LAorICAgICAgICAgICAg eyd0eXBlJzogJ2ludCcsICdpZCc6ICdzY2lkJ30sCisgICAgICAgICAgICB7 J3R5cGUnOiAnaW50JywgJ2lkJzogJ3ZpZCd9CisgICAgICAgICAgICBdCisg ICAgaWRzID0gWworICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6 ICdyaWQnfQorICAgICAgICAgICAgXQorCisgICAgb3BlcmF0aW9ucyA9IGRp Y3QoeworICAgICAgICAnb2JqJzogWworICAgICAgICAgICAgeydnZXQnOiAn cHJvcGVydGllcycsICdkZWxldGUnOiAnZGVsZXRlJywgJ3B1dCc6ICd1cGRh dGUnfSwKKyAgICAgICAgICAgIHsnZ2V0JzogJ2xpc3QnLCAncG9zdCc6ICdj cmVhdGUnfQorICAgICAgICBdLAorICAgICAgICAnY2hpbGRyZW4nOiBbewor ICAgICAgICAgICAgJ2dldCc6ICdjaGlsZHJlbicKKyAgICAgICAgfV0sCisg ICAgICAgICdkZWxldGUnOiBbeydkZWxldGUnOiAnZGVsZXRlJ31dLAorICAg ICAgICAnbm9kZXMnOiBbeydnZXQnOiAnbm9kZSd9LCB7J2dldCc6ICdub2Rl cyd9XSwKKyAgICAgICAgJ3NxbCc6IFt7J2dldCc6ICdzcWwnfV0sCisgICAg ICAgICdtc3FsJzogW3snZ2V0JzogJ21zcWwnfSwgeydnZXQnOiAnbXNxbCd9 XSwKKyAgICAgICAgJ3N0YXRzJzogW3snZ2V0JzogJ3N0YXRpc3RpY3MnfV0s CisgICAgICAgICdkZXBlbmRlbmN5JzogW3snZ2V0JzogJ2RlcGVuZGVuY2ll cyd9XSwKKyAgICAgICAgJ2RlcGVuZGVudCc6IFt7J2dldCc6ICdkZXBlbmRl bnRzJ31dLAorICAgICAgICAnbW9kdWxlLmpzJzogW3t9LCB7fSwgeydnZXQn OiAnbW9kdWxlX2pzJ31dLAorICAgICAgICAnY29uZmlncyc6IFt7J2dldCc6 ICdjb25maWdzJ31dCisgICAgfSkKKworICAgIGRlZiBtb2R1bGVfanMoc2Vs Zik6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIHByb3BlcnR5IGRlZmlu ZXMgKGlmIGphdmFzY3JpcHQpIGV4aXN0cyBmb3IgdGhpcyBub2RlLgorICAg ICAgICBPdmVycmlkZSB0aGlzIHByb3BlcnR5IGZvciB5b3VyIG93biBsb2dp Yy4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBtYWtlX3Jlc3BvbnNl KAorICAgICAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAg ICAgICAgICAgICAgInJ1bGVzL2pzL3J1bGVzLmpzIiwKKyAgICAgICAgICAg ICAgICAgICAgXz1nZXR0ZXh0CisgICAgICAgICAgICAgICAgICAgICksCisg ICAgICAgICAgICAgICAgMjAwLCB7J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNh dGlvbi94LWphdmFzY3JpcHQnfQorICAgICAgICAgICAgICAgICkKKworICAg IGRlZiBjaGVja19wcmVjb25kaXRpb24oZik6CisgICAgICAgICIiIgorICAg ICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgYmVoYXZlIGFzIGEgZGVjb3JhdG9y IHdoaWNoIHdpbGwgY2hlY2tzCisgICAgICAgIGRhdGFiYXNlIGNvbm5lY3Rp b24gYmVmb3JlIHJ1bm5pbmcgcnVsZSwgaXQgd2lsbCBhbHNvIGF0dGFjaGVz CisgICAgICAgIG1hbmFnZXIsY29ubiAmIHRlbXBsYXRlX3BhdGggcHJvcGVy dGllcyB0byBzZWxmCisgICAgICAgICIiIgorICAgICAgICBAd3JhcHMoZikK KyAgICAgICAgZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToKKworICAgICAg ICAgICAgIyBIZXJlIGFyZ3NbMF0gd2lsbCBob2xkIHNlbGYgJiBrd2FyZ3Mg d2lsbCBob2xkIGdpZCxzaWQsZGlkCisgICAgICAgICAgICBzZWxmID0gYXJn c1swXQorICAgICAgICAgICAgc2VsZi5tYW5hZ2VyID0gZ2V0X2RyaXZlcigK KyAgICAgICAgICAgICAgUEdfREVGQVVMVF9EUklWRVIpLmNvbm5lY3Rpb25f bWFuYWdlcihrd2FyZ3NbJ3NpZCddKQorICAgICAgICAgICAgc2VsZi5jb25u ID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10p CisKKyAgICAgICAgICAgICMgSWYgREIgbm90IGNvbm5lY3RlZCB0aGVuIHJl dHVybiBlcnJvciB0byBicm93c2VyCisgICAgICAgICAgICBpZiBub3Qgc2Vs Zi5jb25uLmNvbm5lY3RlZCgpOgorICAgICAgICAgICAgICAgIHJldHVybiBw cmVjb25kaXRpb25fcmVxdWlyZWQoCisgICAgICAgICAgICAgICAgICAgIGdl dHRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbm5lY3Rp b24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIKKyAgICAgICAgICAg ICAgICAgICAgKQorICAgICAgICAgICAgICAgICkKKworICAgICAgICAgICAg c2VsZi5kYXRsYXN0c3lzb2lkID0gc2VsZi5tYW5hZ2VyLmRiX2luZm9ba3dh cmdzWydkaWQnXV1bJ2RhdGxhc3RzeXNvaWQnXQorICAgICAgICAgICAgdmVy ID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24KKyAgICAgICAgICAgIHNlbGYudGVt cGxhdGVfcGF0aCA9ICdydWxlcy9zcWwnCisgICAgICAgICAgICByZXR1cm4g ZigqYXJncywgKiprd2FyZ3MpCisKKyAgICAgICAgcmV0dXJuIHdyYXAKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbGlzdChzZWxmLCBn aWQsIHNpZCwgZGlkLCBzY2lkLCB2aWQpOgorICAgICAgICAiIiIKKyAgICAg ICAgSXQgZmV0Y2hlcyBhbGwgcnVsZXMgcHJvcGVydGllcyBhbmQgcmVuZGVy IGludG8gcHJvcGVydGllcworICAgICAgICB0YWIKKyAgICAgICAgIiIiCisK KyAgICAgICAgIyBmZXRjaCBzY2hlbWEgbmFtZSBieSBzY2hlbWEgaWQKKyAg ICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAg ICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVzLnNxbCddKSwg dmlkPXZpZCkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9kaWN0KFNRTCkKKworICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1yZXMpCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgIHJlc3BvbnNlPXJlc1sncm93cyddLAorICAgICAgICAgICAg ICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAgICApCisKKyAgICBAY2hl Y2tfcHJlY29uZGl0aW9uCisgICAgZGVmIG5vZGVzKHNlbGYsIGdpZCwgc2lk LCBkaWQsIHNjaWQsIHZpZCk6CisgICAgICAgICIiIgorICAgICAgICBJdCBs aXN0cyBkb3duIHRoZSBhbGwgcnVsZXMgdW5kZXIgdGhlIFJ1bGVzIENvbGxl Y3Rpb24gbm9kZQorICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gW10KKyAg ICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAg ICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVzLnNxbCddKSwg dmlkPXZpZCkKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4 ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6Cisg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXJzZXQpCisKKyAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106 CisgICAgICAgICAgICByZXMuYXBwZW5kKAorICAgICAgICAgICAgICAgICAg ICBzZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAg ICAgICAgICAgICAgICAgICAgICByb3dbJ29pZCddLAorICAgICAgICAgICAg ICAgICAgICAgICAgdmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgcm93 WyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICBpY29uPSJpY29u LXJ1bGUiCisgICAgICAgICAgICAgICAgICAgICkpCisKKyAgICAgICAgcmV0 dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBkYXRh PXJlcywKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAg ICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBw cm9wZXJ0aWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHZpZCwgcmlk KToKKyAgICAgICAgIiIiCisgICAgICAgIEl0IGZldGNoZXMgdGhlIHByb3Bl cnRpZXMgb2YgYW4gaW5kaXZpZHVhbCBydWxlCisgICAgICAgIGFuZCByZW5k ZXIgaW4gcHJvcGVydGllcyB0YWIKKworICAgICAgICAiIiIKKyAgICAgICAg U1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAg W3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10KKyAgICAg ICAgICApLCByaWQ9cmlkLCBkYXRsYXN0c3lzb2lkPXNlbGYuZGF0bGFzdHN5 c29pZCkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0 ZV9kaWN0KFNRTCkKKworICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1y ZXMpCisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAg ICAgICAgICAgcmVzcG9uc2U9cGFyc2VfZGVmaW5pdGlvbihyZXMpLAorICAg ICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAgICApCisK KyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGNyZWF0ZShzZWxm LCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB2aWQpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZXMgbmV3IHRoZSBydWxl IG9iamVjdAorICAgICAgICAiIiIKKyAgICAgICAgcmVxdWlyZWRfYXJncyA9 IFsKKyAgICAgICAgICAgICduYW1lJywKKyAgICAgICAgXQorCisgICAgICAg IGRhdGEgPSByZXF1ZXN0LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVsc2UgXAor ICAgICAgICAgICAganNvbi5sb2FkcyhyZXF1ZXN0LmRhdGEuZGVjb2RlKCkp CisgICAgICAgIGZvciBhcmcgaW4gcmVxdWlyZWRfYXJnczoKKyAgICAgICAg ICAgIGlmIGFyZyBub3QgaW4gZGF0YToKKyAgICAgICAgICAgICAgICByZXR1 cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAgICBz dGF0dXM9NDEwLAorICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTAsCisg ICAgICAgICAgICAgICAgICAgIGVycm9ybXNnPWdldHRleHQoCisgICAgICAg ICAgICAgICAgICAgICAgICAiQ291bGRuJ3QgZmluZCB0aGUgcmVxdWlyZWQg cGFyYW1ldGVyICglcykuIiAlIGFyZworICAgICAgICAgICAgICAgICAgICAp CisgICAgICAgICAgICAgICAgKQorICAgICAgICB0cnk6CisgICAgICAgICAg ICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAg ICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2NyZWF0ZS5zcWwnXSksIGRh dGE9ZGF0YSkKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25u LmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0 dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgICIiIiBJdCBmZXRj aGVzIHJ1bGUgaWQgYWdhaW5zdCBydWxlIG5hbWUgdG8gZGlzcGxheSBub2Rl CisgICAgICAgICAgICBpbiB0cmVlIGJyb3dzZXIiIiIKKyAgICAgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAg ICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncnVsZV9pZC5zcWwnXSksIHJ1 bGVfbmFtZT1kYXRhWyduYW1lJ10pCisgICAgICAgICAgICBzdGF0dXMsIHJ1 bGVfaWQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAg ICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJ1bGVfaWQpCisgICAg ICAgICAgICByZXR1cm4ganNvbmlmeSgKKyAgICAgICAgICAgICAgICBub2Rl PXNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgKKyAgICAg ICAgICAgICAgICAgICAgcnVsZV9pZCwKKyAgICAgICAgICAgICAgICAgICAg dmlkLAorICAgICAgICAgICAgICAgICAgICBkYXRhWyduYW1lJ10sCisgICAg ICAgICAgICAgICAgICAgIGljb249Imljb24tcnVsZSIKKyAgICAgICAgICAg ICAgICApCisgICAgICAgICAgICApCisgICAgICAgIGV4Y2VwdCBFeGNlcHRp b24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRp dGlvbgorICAgIGRlZiB1cGRhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2Np ZCwgdmlkLCByaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5j dGlvbiB3aWxsIHVwZGF0ZSBydWxlIG9iamVjdAorICAgICAgICAiIiIKKyAg ICAgICAgZGF0YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZvcm0gZWxz ZSBcCisgICAgICAgICAgICBqc29uLmxvYWRzKHJlcXVlc3QuZGF0YS5kZWNv ZGUoKSkKKyAgICAgICAgU1FMID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQsIGRh dGEsIHZpZCwgcmlkKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBpZiBT UUwgYW5kIGlzaW5zdGFuY2UoU1FMLCBiYXNlc3RyaW5nKSBhbmQgXAorICAg ICAgICAgICAgICAgICAgU1FMLnN0cmlwKCdcbicpIGFuZCBTUUwuc3RyaXAo JyAnKToKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29u bi5leGVjdXRlX3NjYWxhcihTUUwpCisgICAgICAgICAgICAgICAgaWYgbm90 IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgICAg ICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAg ICAgICBzdWNjZXNzPTEsCisgICAgICAgICAgICAgICAgICAgIGluZm89Z2V0 dGV4dCgiUnVsZSB1cGRhdGVkIiksCisgICAgICAgICAgICAgICAgICAgIGRh dGE9eworICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJzogdmlkLAorICAg ICAgICAgICAgICAgICAgICAgICAgJ3NpZCc6IHNpZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICdnaWQnOiBnaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAnZGlkJzogZGlkCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICApCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg ICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAg ICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICAgICAgaW5mbz1n ZXR0ZXh0KCJOb3RoaW5nIHRvIHVwZGF0ZSIpLAorICAgICAgICAgICAgICAg ICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgICAgICdpZCc6IHZp ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdzaWQnOiBzaWQsCisgICAg ICAgICAgICAgICAgICAgICAgICAnZ2lkJzogZ2lkLAorICAgICAgICAgICAg ICAgICAgICAgICAgJ2RpZCc6IGRpZAorICAgICAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgICAgKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRp b24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRp dGlvbgorICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2Np ZCwgdmlkLCByaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5j dGlvbiB3aWxsIGRyb3AgdGhlIHJ1bGUgb2JqZWN0CisgICAgICAgICIiIgor ICAgICAgICAjIEJlbG93IHdpbGwgZGVjaWRlIGlmIGl0J3Mgc2ltcGxlIGRy b3Agb3IgZHJvcCB3aXRoIGNhc2NhZGUgY2FsbAorICAgICAgICBjYXNjYWRl ID0gVHJ1ZSBpZiBzZWxmLmNtZCA9PSAnZGVsZXRlJyBlbHNlIEZhbHNlCisK KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBHZXQgbmFtZSBmb3IgcnVs ZSBmcm9tIGRpZAorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRl KCIvIi5qb2luKAorICAgICAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRo LCAnZGVsZXRlLnNxbCddKSwgcmlkPXJpZCkKKyAgICAgICAgICAgIHN0YXR1 cywgcmVzX2RhdGEgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAg ICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXNfZGF0YSkK KyAgICAgICAgICAgICMgZHJvcCBydWxlCisgICAgICAgICAgICByc2V0ID0g cmVzX2RhdGFbJ3Jvd3MnXVswXQorICAgICAgICAgICAgU1FMID0gcmVuZGVy X3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAgICAgIFtzZWxmLnRl bXBsYXRlX3BhdGgsICdkZWxldGUuc3FsJ10pLAorICAgICAgICAgICAgICAg ICAgcnVsZW5hbWU9cnNldFsncnVsZW5hbWUnXSwKKyAgICAgICAgICAgICAg ICAgIHJlbG5hbWU9cnNldFsncmVsbmFtZSddLAorICAgICAgICAgICAgICAg ICAgbnNwbmFtZT1yc2V0Wyduc3BuYW1lJ10sCisgICAgICAgICAgICAgICAg ICBjYXNjYWRlPWNhc2NhZGUKKyAgICAgICAgICAgICkKKyAgICAgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkK KyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisK KyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAg ICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgIGluZm89 Z2V0dGV4dCgiUnVsZSBkcm9wcGVkIiksCisgICAgICAgICAgICAgICAgZGF0 YT17CisgICAgICAgICAgICAgICAgICAgICdpZCc6IHZpZCwKKyAgICAgICAg ICAgICAgICAgICAgJ3NpZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAgICAg J2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAgICAgJ2RpZCc6IGRpZAor ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICkKKworICAgICAgICBl eGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBj aGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbXNxbChzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzY2lkLCB2aWQsIHJpZD1Ob25lKToKKyAgICAgICAgIiIiCisg ICAgICAgIFRoaXMgZnVuY3Rpb24gdG8gcmV0dXJuIG1vZGlmaWVkIFNRTAor ICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuYXJncworICAg ICAgICBTUUwgPSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGF0YSwgdmlkLCBy aWQpCisgICAgICAgIGlmIFNRTCBhbmQgaXNpbnN0YW5jZShTUUwsIGJhc2Vz dHJpbmcpIGFuZCBcCisgICAgICAgICAgICAgICAgU1FMLnN0cmlwKCdcbicp IGFuZCBTUUwuc3RyaXAoJyAnKToKKyAgICAgICAgICAgIHJldHVybiBtYWtl X2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgIGRhdGE9U1FM LAorICAgICAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAg ICAgICAgICAgICkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVy biBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgIGRh dGE9Z2V0dGV4dCgiLS1tb2RpZmllZCBTUUwiKSwKKyAgICAgICAgICAgICAg ICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICAgICApCisKKyAg ICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHNxbChzZWxmLCBnaWQs IHNpZCwgZGlkLCBzY2lkLCB2aWQsIHJpZCk6CisgICAgICAgICIiIgorICAg ICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3FsIHRvIHJlbmRl ciBpbnRvIHNxbCBwYW5lbAorICAgICAgICAiIiIKKyAgICAgICAgU1FMID0g cmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgIFtzZWxmLnRl bXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVzLnNxbCddKSwgcmlkPXJpZCkKKyAg ICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNR TCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAg ICByZXNfZGF0YSA9IHBhcnNlX2RlZmluaXRpb24ocmVzKQorICAgICAgICBT UUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICBb c2VsZi50ZW1wbGF0ZV9wYXRoLCAnY3JlYXRlLnNxbCddKSwKKyAgICAgICAg ICAgIGRhdGE9cmVzX2RhdGEsIGRpc3BsYXlfY29tbWVudHM9VHJ1ZSkKKwor ICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZShyZXNwb25zZT1TUUwpCisK KyAgICBkZWYgZ2V0U1FMKHNlbGYsIGdpZCwgc2lkLCBkYXRhLCB2aWQsIHJp ZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwg Z2VucmF0ZSBzcWwgZnJvbSBtb2RlbCBkYXRhCisgICAgICAgICIiIgorICAg ICAgICB0cnk6CisgICAgICAgICAgICBpZiByaWQgaXMgbm90IE5vbmU6Cisg ICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2lu KAorICAgICAgICAgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3By b3BlcnRpZXMuc3FsJ10pLCByaWQ9cmlkKQorICAgICAgICAgICAgICAgIHN0 YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAg ICAgICAgICAgICAgcmVzX2RhdGEgPSBbXQorICAgICAgICAgICAgICAgIHJl c19kYXRhID0gcGFyc2VfZGVmaW5pdGlvbihyZXMpCisgICAgICAgICAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAg ICAgICAgICAgb2xkX2RhdGEgPSByZXNfZGF0YQorICAgICAgICAgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAg Ii8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3VwZGF0ZS5zcWwnXSks CisgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgb19kYXRhPW9sZF9k YXRhCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5q b2luKAorICAgICAgICAgICAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRo LCAnY3JlYXRlLnNxbCddKSwgZGF0YT1kYXRhKQorICAgICAgICAgICAgcmV0 dXJuIFNRTAorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg ZGVwZW5kZW50cyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB2aWQsIHJp ZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldCB0 aGUgZGVwZW5kZW50cyBhbmQgcmV0dXJuIGFqYXggcmVzcG9uc2UKKyAgICAg ICAgZm9yIHRoZSBydWxlIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAg ICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6 IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAg ICAgICAgICAgdmlkOiBWaWV3IElECisgICAgICAgICAgICByaWQ6IFJ1bGUg SUQKKyAgICAgICAgIiIiCisgICAgICAgIGRlcGVuZGVudHNfcmVzdWx0ID0g c2VsZi5nZXRfZGVwZW5kZW50cyhzZWxmLmNvbm4sIHJpZCkKKyAgICAgICAg cmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZT1k ZXBlbmRlbnRzX3Jlc3VsdCwKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAg ICAgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBk ZWYgZGVwZW5kZW5jaWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHZp ZCwgcmlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24g Z2V0IHRoZSBkZXBlbmRlbmNpZXMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNl CisgICAgICAgIGZvciB0aGUgcnVsZSBub2RlLgorCisgICAgICAgIEFyZ3M6 CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAg ICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2Ug SUQKKyAgICAgICAgICAgIHZpZDogVmlldyBJRAorICAgICAgICAgICAgcmlk OiBSdWxlIElECisgICAgICAgICIiIgorICAgICAgICBkZXBlbmRlbmNpZXNf cmVzdWx0ID0gc2VsZi5nZXRfZGVwZW5kZW5jaWVzKHNlbGYuY29ubiwgcmlk KQorICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAg IHJlc3BvbnNlPWRlcGVuZGVuY2llc19yZXN1bHQsCisgICAgICAgICAgICBz dGF0dXM9MjAwCisgICAgICAgICAgICApCisKK1J1bGVWaWV3LnJlZ2lzdGVy X25vZGVfdmlldyhibHVlcHJpbnQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy9ydWxlcy9zdGF0aWMvaW1nL2NvbGwtcnVsZS5wbmcgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy9ydWxlcy9zdGF0aWMvaW1nL2NvbGwtcnVs ZS5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZlNmVkMjdkOTgzNTFh MDNlOTg0NTFmZTgzZTc4NWFlYjUxMzUxZgpHSVQgYmluYXJ5IHBhdGNoCmxp dGVyYWwgMzU3CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeMHdCITYzP3d5 bGBHYkwhUS1EdjFFMEJKRHJ0MG9XKzViPUh7Q18mQAp6fEM0RnxwR15BeXhi T2VkOFVMVG97e0xqa3xIbCpsS2tqKmIoRXMwfl9KNUIkfDI9QmBfcHNzTCE9 YEBePjs2NWcKemBTK204WT1gekVwZWMrY0w0THN1NCRwMyswWGR1bjkrQWFC KzU/UTtQRztLeThCdn10anYqNDRyfWxhQ0g3TX03CnpKWTNrKHJCVX47S0dk NTw9I0pzK1d0WHF9Tz9AP2VuVEU2a28xMEU+UzszWmBHaVArKDlyfFRoYVZK YzI/d2xoZwp6PHdCRnFtYXI5Vm5FS2FOPUUkVGNPUlhRNStKQnZTenFxIUZR UUN0a1ZSXkNCMzd7PmlDOVYtQURUeVZpUj4/KUYKeksjSVowenxjVX4mYDgo N0Z2UTVmJUVae3AjOGxoQilYS25NLWFFWmpDPm5DfVEhPiprQXNQJVUhNVY8 N097QCZlCldBUjEwaDRfeVApen5KZlg9ZCNXenAkUCE3Y1o7ZTMKCmxpdGVy YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3J1bGVzL3N0YXRpYy9pbWcvcnVsZS5wbmcgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy9ydWxlcy9zdGF0aWMvaW1nL3J1bGUucG5nCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAuLjhiNDk3ODA5MGUzM2JiZTNkNWY3ZWQyNDlmZDkz YzJkYTM0ZjUyZDYKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDM3Mwp6Y21l QVNATj8ob2xIeWB1VkJxIWlhMHZwXjB3QiE2Mz93eWxgR2JLfWN6e29jRTBE Z3NRdWcoa3N7Yz50e0NfKDAKenxDMV5JQU5UJXkpYntVVHtyeyk0e3kmLWV8 OGY3bk5BM1J9SHZXNTF7cn5DZ3w0Kmo+ZT5+eWVxdDFVMW9CbG5oCnpgUytt d3xJLT0mcEdeQXl4Y2xGdW1WWGF4fDI/U3Ffbj5rSyVqWXpwKFRwV1FlISZi NSZ1KU0/b0NPfHsjWCNCdgp6ak5NTFYrV3tHJm8tVTNkNXxgS1puVHNfVEBI aWBiREVEVWxgZ15gfUdOKVlqS0RCekBPIy1GfFgxQmVjcm8zPUwKelZuVXpg Sjl+ZGEjfXJxNl9NV09rSXBQNmd0OGYzMj4jSkRTLTR6ZmN5KUopfCh5YTRk UX1fUzNuUDlgciRpdyl+CnpBODNKVWlFQmhqTkA3Vz5SZFBgKGtZWEAwRmZg Q0xHfTFMTjNeNmpXR0JMST9HMVdGT3dLNmM2X2ZCc1dpaVhfJAptbCszaEJo ejB7b3VtKyVONkR0RVZoPXg8c0wpUVFgRm5HSDl4dlg8YVhhV0VqSzktdlIK CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3J1bGVzL3RlbXBsYXRlcy9ydWxlcy9jc3MvcnVsZS5j c3MgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy9ydWxlcy90ZW1wbGF0ZXMvcnVs ZXMvY3NzL3J1bGUuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmQyYjAzNmEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy9ydWxlcy90ZW1wbGF0ZXMvcnVsZXMvY3NzL3J1bGUuY3Nz CkBAIC0wLDAgKzEsOCBAQAorLmljb24tcnVsZXsKKyAgYmFja2dyb3VuZC1p bWFnZTogdXJsKCd7eyB1cmxfZm9yKCdOT0RFLXJ1bGUuc3RhdGljJywgZmls ZW5hbWU9J2ltZy9ydWxlLnBuZycpIH19JykgIWltcG9ydGFudDsKKyAgYm9y ZGVyLXJhZGl1czogMTBweDsKKyAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJl cGVhdDsKKyAgYWxpZ24tY29udGVudDogY2VudGVyOworICB2ZXJ0aWNhbC1h bGlnbjogbWlkZGxlOworICBoZWlnaHQ6IDEuM2VtOworfQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvcnVsZXMvdGVtcGxhdGVzL3J1bGVz L2pzL3J1bGVzLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvcnVsZXMvdGVt cGxhdGVzL3J1bGVzL2pzL3J1bGVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjY1MmM4MGQKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy9ydWxlcy90ZW1wbGF0ZXMvcnVsZXMvanMv cnVsZXMuanMKQEAgLTAsMCArMSwyNTIgQEAKK2RlZmluZSgKKyAgWydqcXVl cnknLCAndW5kZXJzY29yZScsICd1bmRlcnNjb3JlLnN0cmluZycsICdwZ2Fk bWluJywKKyAgICAncGdhZG1pbi5icm93c2VyJywgJ2NvZGVtaXJyb3InXSwK KworZnVuY3Rpb24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBDb2Rl TWlycm9yKSB7CisKKworICAvKioKKyAgICBDcmVhdGUgYW5kIGFkZCBhIHJ1 bGUgY29sbGVjdGlvbiBpbnRvIG5vZGVzCisgICAgQHBhcmFtIHt2YXJpYWJs ZX0gbGFiZWwgLSBMYWJlbCBmb3IgTm9kZQorICAgIEBwYXJhbSB7dmFyaWFi bGV9IHR5cGUgLSBUeXBlIG9mIE5vZGUKKyAgICBAcGFyYW0ge3ZhcmlhYmxl fSBjb2x1bW5zIC0gTGlzdCBvZiBjb2x1bW5zIHRvCisgICAgICBkaXNwbGF5 IHVuZGVyIHVuZGVyIHByb3BlcnRpZXMuCisgICAqLworICBpZiAoIXBnQnJv d3Nlci5Ob2Rlc1snY29sbC1ydWxlJ10pIHsKKyAgICB2YXIgcnVsZXMgPSBw Z0FkbWluLkJyb3dzZXIuTm9kZXNbJ2NvbGwtcnVsZSddID0KKyAgICAgIHBn QWRtaW4uQnJvd3Nlci5Db2xsZWN0aW9uLmV4dGVuZCh7CisgICAgICAgIG5v ZGU6ICdydWxlJywKKyAgICAgICAgbGFiZWw6ICd7eyBfKCdSdWxlcycpIH19 JywKKyAgICAgICAgdHlwZTogJ2NvbGwtcnVsZScsCisgICAgICAgIGNvbHVt bnM6IFsnbmFtZScsICdvd25lcicsICdjb21tZW50J10KKyAgICAgIH0pOwor ICB9OworCisKKyAgLyoqCisgICAgQ3JlYXRlIGFuZCBBZGQgYW4gVmlldyBO b2RlIGludG8gbm9kZXMKKyAgICBAcGFyYW0ge3ZhcmlhYmxlfSBwYXJlbnRf dHlwZSAtIFRoZSBsaXN0IG9mIG5vZGVzCisgICAgdW5kZXIgd2hpY2ggdGhp cyBub2RlIHRvIGRpc3BsYXkKKyAgICBAcGFyYW0ge3ZhcmlhYmxlfSB0eXBl IC0gVHlwZSBvZiBOb2RlCisgICAgQHBhcmFtIHt2YXJpYWJsZX0gaGFzU1FM IC0gVG8gc2hvdyBTUUwgdGFiCisgICAgQHBhcmFtIHt2YXJpYWJsZX0gY2Fu RHJvcCAtIEFkZHMgZHJvcCB2aWV3IG9wdGlvbgorICAgIGluIHRoZSBjb250 ZXh0IG1lbnUKKyAgICBAcGFyYW0ge3ZhcmlhYmxlfSBjYW5Ecm9wQ2FzY2Fk ZSAtIEFkZHMgZHJvcCBDYXNjYWRlCisgICAgdmlldyBvcHRpb24gaW4gdGhl IGNvbnRleHQgbWVudQorICAgKi8KKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNb J3J1bGUnXSkgeworICAgIHBnQWRtaW4uQnJvd3Nlci5Ob2Rlc1sncnVsZSdd ID0gcGdBZG1pbi5Ccm93c2VyLk5vZGUuZXh0ZW5kKHsKKyAgICAgIHBhcmVu dF90eXBlOiBbJ3ZpZXcnXSwKKyAgICAgIHR5cGU6ICdydWxlJywKKyAgICAg IGxhYmVsOiAne3sgXygncnVsZScpIH19JywKKyAgICAgIGNvbGxlY3Rpb25f dHlwZTogJ2NvbGwtcnVsZScsCisgICAgICBoYXNTUUw6ICB0cnVlLAorICAg ICAgaGFzRGVwZW5kczogdHJ1ZSwKKyAgICAgIGNhbkRyb3A6IHBnQnJvd3Nl ci5Ob2Rlc1snc2NoZW1hJ10uY2FuQ2hpbGREcm9wLAorICAgICAgY2FuRHJv cENhc2NhZGU6IHBnQnJvd3Nlci5Ob2Rlc1snc2NoZW1hJ10uY2FuQ2hpbGRE cm9wLAorICAgICAgSW5pdDogZnVuY3Rpb24oKSB7CisKKyAgICAgICAgLyog QXZvaWQgbXVsaXRwbGUgcmVnaXN0cmF0aW9uIG9mIG1lbnVzICovCisgICAg ICAgIGlmICh0aGlzLmluaXRpYWxpemVkKQorICAgICAgICAgICAgcmV0dXJu OworCisgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlOworCisgICAg ICAgIC8qKgorICAgICAgICAgIEFkZCAiY3JlYXRlIHJ1bGUiIG1lbnUgb3B0 aW9uIGludG8gY29udGV4dCBhbmQgb2JqZWN0IG1lbnUKKyAgICAgICAgICBm b3IgdGhlIGZvbGxvd2luZyBub2RlczoKKyAgICAgICAgICBjb2xsLXJ1bGUs IHJ1bGUgYW5kIHZpZXcgYW5kIHRhYmxlLgorICAgICAgICAgIEBwcm9wZXJ0 eSB7ZGF0YX0gLSBBbGxvdyBjcmVhdGUgcnVsZSBvcHRpb24gb24gc2NoZW1h IG5vZGUgb3IKKyAgICAgICAgICBzeXN0ZW0gcnVsZXMgbm9kZS4KKyAgICAg ICAgICovCisgICAgICAgIHBnQnJvd3Nlci5hZGRfbWVudXMoW3sKKyAgICAg ICAgICBuYW1lOiAnY3JlYXRlX3J1bGVfb25fY29sbCcsIG5vZGU6ICdjb2xs LXJ1bGUnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydv YmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3Bl cnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3Jp dHk6IDQsIGxhYmVsOiAne3sgXygnUnVsZS4uLicpIH19JywKKyAgICAgICAg ICBpY29uOiAnd2NUYWJJY29uIGljb24tcnVsZScsIGRhdGE6IHthY3Rpb246 ICdjcmVhdGUnLCBjaGVjazogdHJ1ZX0sCisgICAgICAgICAgZW5hYmxlOiAn Y2FuQ3JlYXRlJworICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAnY3Jl YXRlX3J1bGUnLCBub2RlOiAndmlldycsIG1vZHVsZTogdGhpcywKKyAgICAg ICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNr OiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6 ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdSdWxlLi4u JykgfX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1ydWxl JywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNrOiB0cnVlfSwKKyAg ICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUnCisgICAgICAgIH0seworICAg ICAgICAgIG5hbWU6ICdjcmVhdGVfcnVsZScsIG5vZGU6ICdydWxlJywgbW9k dWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2Nv bnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAg ICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJl bDogJ3t7IF8oJ1J1bGUuLi4nKSB9fScsCisgICAgICAgICAgaWNvbjogJ3dj VGFiSWNvbiBpY29uLXJ1bGUnLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJywg Y2hlY2s6IHRydWV9LAorICAgICAgICAgIGVuYWJsZTogJ2NhbkNyZWF0ZScK KyAgICAgICAgfSx7CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9ydWxlJywg bm9kZTogJ3RhYmxlJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxp ZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29i al9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScs IHByaW9yaXR5OiA0LCBsYWJlbDogJ3t7IF8oJ1J1bGUuLi4nKSB9fScsCisg ICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLXJ1bGUnLCBkYXRhOiB7 YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6IHRydWV9LAorICAgICAgICAgIGVu YWJsZTogJ2NhbkNyZWF0ZScKKyAgICAgICAgfQorICAgICAgICBdKTsKKyAg ICAgIH0sCisKKyAgICAgIC8qKgorICAgICAgICBEZWZpbmUgbW9kZWwgZm9y IHRoZSBydWxlIG5vZGUgYW5kIHNwZWNpZnkgdGhlIG5vZGUKKyAgICAgICAg cHJvcGVydGllcyBvZiB0aGUgbW9kZWwgaW4gc2NoZW1hLgorICAgICAgICov CisgICAgICBtb2RlbDogcGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9kZWwuZXh0 ZW5kKHsKKyAgICAgICAgZGVmYXVsdHM6IHsKKyAgICAgICAgfSwKKyAgICAg ICAgc2NoZW1hOiBbeworICAgICAgICAgIGlkOiAnbmFtZScsIGxhYmVsOiAn e3sgXygnTmFtZScpIH19JywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGRp c2FibGVkOiBmdW5jdGlvbihtKXsKKyAgICAgICAgICAgIHJldHVybiAhbS5p c05ldygpOworICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgewor ICAgICAgICAgIGlkOiAnb2lkJywgbGFiZWw6J3t7IF8oJ09JRCcpIH19JywK KyAgICAgICAgICB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiB0cnVlCisgICAg ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ3NjaGVtYScsIGxh YmVsOid7eyBfKCcnKSB9fScsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCB2 aXNpYmxlOiBmYWxzZSwgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0peworCisgICAg ICAgICAgICAvLyBJdCBpcyB1c2VkIHdoaWxlIGdlbmVyYXRpbmcgc3FsCisg ICAgICAgICAgICBtLnNldCgnc2NoZW1hJywgbS5ub2RlX2luZm8uc2NoZW1h LmxhYmVsKTsKKyAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHsK KyAgICAgICAgICBpZDogJ3ZpZXcnLCBsYWJlbDone3sgXygnJykgfX0nLAor ICAgICAgICAgIHR5cGU6ICd0ZXh0JywgdmlzaWJsZTogZmFsc2UsIGRpc2Fi bGVkOiBmdW5jdGlvbihtKXsKKworICAgICAgICAgICAgLy8gSXQgaXMgdXNl ZCB3aGlsZSBnZW5lcmF0aW5nIHNxbAorICAgICAgICAgICAgbS5zZXQoJ3Zp ZXcnLCBtLm5vZGVfaW5mby52aWV3LmxhYmVsKTsKKyAgICAgICAgICB9Cisg ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ2NvbW1lbnQn LCBsYWJlbDone3sgXygnQ29tbWVudCcpIH19JywgY2VsbDogJ3N0cmluZycs IHR5cGU6ICdtdWx0aWxpbmUnCisgICAgICAgIH0sCisgICAgICAgIHsKKyAg ICAgICAgICBpZDogJ2V2ZW50JywgbGFiZWw6J3t7IF8oJ0V2ZW50JykgfX0n LCBjb250cm9sOiAnc2VsZWN0MicsCisgICAgICAgICAgZ3JvdXA6ICdEZWZp bml0aW9uJywgdHlwZTogJ3RleHQnLAorICAgICAgICAgIHNlbGVjdDI6IHsK KyAgICAgICAgICAgIHdpZHRoOiAnMTAwJScKKyAgICAgICAgICB9LAorICAg ICAgICAgIG9wdGlvbnM6WworICAgICAgICAgICAge2xhYmVsOiAnU2VsZWN0 JywgdmFsdWU6ICdTZWxlY3QnfSwKKyAgICAgICAgICAgIHtsYWJlbDogJ0lu c2VydCcsIHZhbHVlOiAnSW5zZXJ0J30sCisgICAgICAgICAgICB7bGFiZWw6 ICdVcGRhdGUnLCB2YWx1ZTogJ1VwZGF0ZSd9LAorICAgICAgICAgICAge2xh YmVsOiAnRGVsZXRlJywgdmFsdWU6ICdEZWxldGUnfQorICAgICAgICAgIF0K KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnZG9faW5z dGVhZCcsIGxhYmVsOid7eyBfKCdEbyBJbnN0ZWFkJykgfX0nLCBncm91cDog J0RlZmluaXRpb24nLAorICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCAnb3B0 aW9ucyc6IHsKKyAgICAgICAgICAgICdvblRleHQnOiAnWWVzJywgJ29mZlRl eHQnOiAnTm8nLCAnb25Db2xvcic6ICdzdWNjZXNzJywKKyAgICAgICAgICAg ICdvZmZDb2xvcic6ICdkZWZhdWx0JywgJ3NpemUnOiAnc21hbGwnCisgICAg ICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6 ICdjb25kaXRpb24nLCBsYWJlbDone3sgXygnQ29uZGl0aW9uJykgfX0nLAor ICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICdEZWZpbml0aW9uJywK KyAgICAgICAgICBjb250cm9sOiAnc3FsLWZpZWxkJworICAgICAgICB9LAor ICAgICAgICB7CisgICAgICAgICAgaWQ6ICdzdGF0ZW1lbnRzJywgbGFiZWw6 J3t7IF8oJ0RlZmluaXRpb24nKSB9fScsCisgICAgICAgICAgdHlwZTogJ3Rl eHQnLCBncm91cDogJ1N0YXRlbWVudHMnLCBjb250cm9sOiAnc3FsLWZpZWxk JworICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdzeXN0 ZW1fcnVsZScsIGxhYmVsOid7eyBfKCdTeXN0ZW0gcnVsZT8nKSB9fScsCisg ICAgICAgICAgdHlwZTogJ3N3aXRjaCcsIG1vZGU6IFsncHJvcGVydGllcydd LCAnb3B0aW9ucyc6IHsKKyAgICAgICAgICAgICdvblRleHQnOiAnWWVzJywg J29mZlRleHQnOiAnTm8nLCAnb25Db2xvcic6ICdzdWNjZXNzJywKKyAgICAg ICAgICAgICdvZmZDb2xvcic6ICdkZWZhdWx0JywgJ3NpemUnOiAnc21hbGwn CisgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg ICAgaWQ6ICdlbmFibGVkJywgbGFiZWw6J3t7IF8oJ0VuYWJsZWQ/JykgfX0n LAorICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBtb2RlOiBbJ3Byb3BlcnRp ZXMnXSwgJ29wdGlvbnMnOiB7CisgICAgICAgICAgICAnb25UZXh0JzogJ1ll cycsICdvZmZUZXh0JzogJ05vJywgJ29uQ29sb3InOiAnc3VjY2VzcycsCisg ICAgICAgICAgICAnb2ZmQ29sb3InOiAnZGVmYXVsdCcsICdzaXplJzogJ3Nt YWxsJworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBdLAorICAg ICAgICB2YWxpZGF0ZTogZnVuY3Rpb24oKSB7CisKKyAgICAgICAgICAvLyBU cmlnZ2VycyBzcGVjaWZpYyBlcnJvciBtZXNzYWdlcyBmb3IgZmllbGRzCisg ICAgICAgICAgdmFyIGVyciA9IHt9LAorICAgICAgICAgICAgZXJybXNnLAor ICAgICAgICAgICAgZmllbGRfbmFtZSA9IHRoaXMuZ2V0KCduYW1lJyk7Cisg ICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQoZmllbGRfbmFtZSkgfHwgXy5p c051bGwoZmllbGRfbmFtZSkgfHwKKyAgICAgICAgICAgIFN0cmluZyhmaWVs ZF9uYW1lKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKQorICAg ICAgICAgIHsKKyAgICAgICAgICAgIGVyclsnbmFtZSddID0gJ3t7IF8oIlBs ZWFzZSBzcGVjaWZ5IG5hbWUuIikgfX0nOworICAgICAgICAgICAgZXJybXNn ID0gZXJybXNnIHx8IGVyclsnbmFtZSddOworICAgICAgICAgICAgdGhpcy5l cnJvck1vZGVsLnNldCgnbmFtZScsIGVycm1zZyk7CisgICAgICAgICAgICBy ZXR1cm4gZXJybXNnOworICAgICAgICAgIH0KKyAgICAgICAgICBlbHNlCisg ICAgICAgICAgeworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnVuc2V0 KCduYW1lJyk7CisgICAgICAgICAgfQorICAgICAgICAgIHJldHVybiBudWxs OworICAgICAgICB9CisgICAgICB9KSwKKworICAgICAgLy8gU2hvdyBvciBo aWRlIGNyZWF0ZSBydWxlIG1lbnUgb3B0aW9uIG9uIHBhcmVudCBub2RlCisg ICAgICBjYW5DcmVhdGU6IGZ1bmN0aW9uKGl0ZW1EYXRhLCBpdGVtLCBkYXRh KSB7CisKKyAgICAgICAgLy8gSWYgY2hlY2sgaXMgZmFsc2UgdGhlbiAsIHdl IHdpbGwgYWxsb3cgY3JlYXRlIG1lbnUKKyAgICAgICAgaWYgKGRhdGEgJiYg ZGF0YS5jaGVjayA9PSBmYWxzZSkKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsK KworICAgICAgICB2YXIgdCA9IHBnQnJvd3Nlci50cmVlLCBpID0gaXRlbSwg ZCA9IGl0ZW1EYXRhOworCisgICAgICAgIC8vIFRvIGl0ZXJhdGUgb3ZlciB0 cmVlIHRvIGNoZWNrIHBhcmVudCBub2RlCisgICAgICAgIHdoaWxlIChpKSB7 CisKKyAgICAgICAgICAvLyBJZiBpdCBpcyBzY2hlbWEgdGhlbiBhbGxvdyB1 c2VyIHRvIGNyZWF0ZSBydWxlCisgICAgICAgICAgaWYgKF8uaW5kZXhPZihb J3NjaGVtYSddLCBkLl90eXBlKSA+IC0xKQorICAgICAgICAgICAgcmV0dXJu IHRydWU7CisKKyAgICAgICAgICBpZiAoJ2NvbGwtcnVsZScgPT0gZC5fdHlw ZSkgeworCisgICAgICAgICAgICAvL0NoZWNrIGlmIHdlIGFyZSBub3QgY2hp bGQgb2YgcnVsZQorICAgICAgICAgICAgcHJldl9pID0gdC5oYXNQYXJlbnQo aSkgPyB0LnBhcmVudChpKSA6IG51bGw7CisgICAgICAgICAgICBwcmV2X2Qg PSBwcmV2X2kgPyB0Lml0ZW1EYXRhKHByZXZfaSkgOiBudWxsOworICAgICAg ICAgICAgcHJldl9qID0gdC5oYXNQYXJlbnQocHJldl9pKSA/IHQucGFyZW50 KHByZXZfaSkgOiBudWxsOworICAgICAgICAgICAgcHJldl9lID0gcHJldl9q ID8gdC5pdGVtRGF0YShwcmV2X2opIDogbnVsbDsKKyAgICAgICAgICAgIHBy ZXZfayA9IHQuaGFzUGFyZW50KHByZXZfaikgPyB0LnBhcmVudChwcmV2X2op IDogbnVsbDsKKyAgICAgICAgICAgIHByZXZfZiA9IHByZXZfayA/IHQuaXRl bURhdGEocHJldl9rKSA6IG51bGw7CisgICAgICAgICAgICBpZiggcHJldl9m Ll90eXBlID09ICdjYXRhbG9nJykgeworICAgICAgICAgICAgICByZXR1cm4g ZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBy ZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisKKyAg ICAgICAgICAvKioKKyAgICAgICAgICAgIENoZWNrIGlmIGl0IGlzIHZpZXcg YW5kIGl0cyBwYXJlbnQgbm9kZSBpcyBzY2hlbWEKKyAgICAgICAgICAgIHRo ZW4gYWxsb3cgdG8gY3JlYXRlIFJ1bGUKKyAgICAgICAgICAgKi8KKyAgICAg ICAgICBlbHNlIGlmKCd2aWV3JyA9PSBkLl90eXBlKXsKKyAgICAgICAgICAg IHByZXZfaSA9IHQuaGFzUGFyZW50KGkpID8gdC5wYXJlbnQoaSkgOiBudWxs OworICAgICAgICAgICAgcHJldl9kID0gcHJldl9pID8gdC5pdGVtRGF0YShw cmV2X2kpIDogbnVsbDsKKyAgICAgICAgICAgIHByZXZfaiA9IHQuaGFzUGFy ZW50KHByZXZfaSkgPyB0LnBhcmVudChwcmV2X2kpIDogbnVsbDsKKyAgICAg ICAgICAgIHByZXZfZSA9IHByZXZfaiA/IHQuaXRlbURhdGEocHJldl9qKSA6 IG51bGw7CisgICAgICAgICAgICBpZihwcmV2X2UuX3R5cGUgPT0gJ3NjaGVt YScpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAg ICB9ZWxzZXsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg ICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpID0gdC5oYXNQYXJl bnQoaSkgPyB0LnBhcmVudChpKSA6IG51bGw7CisgICAgICAgICAgZCA9IGkg PyB0Lml0ZW1EYXRhKGkpIDogbnVsbDsKKyAgICAgICAgfQorCisgICAgICAg IC8vIEJ5IGRlZmF1bHQgd2UgZG8gbm90IHdhbnQgdG8gYWxsb3cgY3JlYXRl IG1lbnUKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgIH0KKworICB9 KTsKKyAgfQorCisgIHJldHVybiBwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwtcnVs ZSddOworfSk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy9y dWxlcy90ZW1wbGF0ZXMvcnVsZXMvc3FsL2JhY2tlbmRfc3VwcG9ydC5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy9ydWxlcy90ZW1wbGF0ZXMvcnVsZXMv c3FsL2JhY2tlbmRfc3VwcG9ydC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uZTNmOGY0ZgotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3J1bGVzL3RlbXBsYXRlcy9ydWxlcy9zcWwv YmFja2VuZF9zdXBwb3J0LnNxbApAQCAtMCwwICsxLDIwIEBACitTRUxFQ1QK KyAgICBDQVNFIFdIRU4gbnNwLm5zcG5hbWUgSU4gKCdzeXMnLCAnZGJvJywg J2luZm9ybWF0aW9uX3NjaGVtYScpIFRIRU4gdHJ1ZSBFTFNFIGZhbHNlIEVO RCBBUyBkYlN1cHBvcnQKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UgbnNwCitX SEVSRQorICAgIG5zcC5vaWQ9e3tzY2lkfX06OmludAorQU5EICgKKyAgICAo bnNwbmFtZSA9ICdwZ19jYXRhbG9nJyBBTkQgRVhJU1RTCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKFNFTEVDVCAxIEZST00gcGdfY2xh c3MgV0hFUkUgcmVsbmFtZSA9ICdwZ19jbGFzcycgQU5EIHJlbG5hbWVzcGFj ZSA9IG5zcC5vaWQgTElNSVQgMSkpCisgICAgT1IgKG5zcG5hbWUgPSAncGdh Z2VudCcgQU5EIEVYSVNUUworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUg PSAncGdhX2pvYicgQU5EIHJlbG5hbWVzcGFjZSA9IG5zcC5vaWQgTElNSVQg MSkpCisgICAgT1IgKG5zcG5hbWUgPSAnaW5mb3JtYXRpb25fc2NoZW1hJyBB TkQgRVhJU1RTCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICd0YWJs ZXMnIEFORCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEpKQorICAg IE9SIChuc3BuYW1lIExJS0UgJ18lJyBBTkQgRVhJU1RTCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKFNFTEVDVCAxIEZST00gcGdfcHJv YyBXSEVSRSBwcm9uYW1lPSdzbG9ueXZlcnNpb24nIEFORCBwcm9uYW1lc3Bh Y2UgPSBuc3Aub2lkIExJTUlUIDEpKQorKQorQU5ECisgICAgbnNwbmFtZSBO T1QgTElLRSBFJ3BnXFx0ZW1wXFwlJworQU5ECisgICAgbnNwbmFtZSBOT1Qg TElLRSBFJ3BnXFx0b2FzdF90ZW1wXFwlJwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL3NxbC9jcmVh dGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvcnVsZXMvdGVtcGxhdGVz L3J1bGVzL3NxbC9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjNjNzQzNmYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy9ydWxlcy90ZW1wbGF0ZXMvcnVsZXMvc3FsL2Ny ZWF0ZS5zcWwKQEAgLTAsMCArMSwyNiBAQAoreyM9PT09PT09PT09PT1DcmVh dGUgUnVsZT09PT09PT09PT09PT0jfQoreyUgaWYgZGlzcGxheV9jb21tZW50 cyAlfQorLS0gUnVsZToge3sgZGF0YS5uYW1lIH19IE9OIHt7IGNvbm58cXRJ ZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorCistLSBEUk9QIFJ1 bGUge3sgZGF0YS5uYW1lIH19IE9OIHt7IGNvbm58cXRJZGVudChkYXRhLnNj aGVtYSwgZGF0YS5uYW1lKSB9fTsKKworeyUgZW5kaWYgJX0KK3slIGlmIGRh dGEubmFtZSBhbmQgZGF0YS5zY2hlbWEgYW5kIGRhdGEudmlldyAlfQorQ1JF QVRFIE9SIFJFUExBQ0UgUlVMRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1l KSB9fSBBUworICAgIE9OIHt7IGRhdGEuZXZlbnR8dXBwZXIgaWYgZGF0YS5l dmVudCBlbHNlICdTRUxFQ1QnIH19IFRPIHt7IGNvbm58cXRJZGVudChkYXRh LnNjaGVtYSwgZGF0YS52aWV3KSB9fQoreyUgaWYgZGF0YS5jb25kaXRpb24g JX0KKyAgICBXSEVSRSB7eyBkYXRhLmNvbmRpdGlvbiB9fQoreyUgZW5kaWYg JX0KKyAgICBET3slIGlmIGRhdGEuaXNfaW5zdGVhZCA9PSBUcnVlICV9Cit7 eyAnIElOU1RFQUQnIH19CisgICAgeyUgZWxzZSAlfQore3sgJyAnIH19Cisg ICAgeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuc3RhdGVtZW50cyAlfQore3sg ZGF0YS5zdGF0ZW1lbnRzLnJzdHJpcCgnOycpIH19OworeyUgZWxzZSAlfQor Tk9USElORzsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmNvbW1lbnQgJX0K K0NPTU1FTlQgT04gUlVMRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9 fSBPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudmlldykg fX0gSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTt7JSBlbmRpZiAl fQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3J1bGVzL3RlbXBsYXRlcy9ydWxlcy9zcWwvZGVsZXRlLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3J1bGVzL3RlbXBsYXRlcy9ydWxlcy9zcWwv ZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li43YjgzMThiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL3NxbC9kZWxldGUuc3FsCkBA IC0wLDAgKzEsMTYgQEAKK3sjPT09PT09PT0gRHJvcC9DYXNjYWRlIFJ1bGUg PT09PT09PT09I30KK3slIGlmIHJpZCAlfQorU0VMRUNUCisgICAgcncucnVs ZW5hbWUsIGNsLnJlbG5hbWUsIG5zcC5uc3BuYW1lCitGUk9NCisgICAgcGdf cmV3cml0ZSBydworSk9JTgorICAgIHBnX2NsYXNzIGNsIE9OIGNsLm9pZD1y dy5ldl9jbGFzcworSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNw Lm9pZD1jbC5yZWxuYW1lc3BhY2UKK1dIRVJFCisgICAgcncub2lkPXt7IHJp ZCB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBydWxlbmFtZSBhbmQgcmVsbmFt ZSBhbmQgbnNwbmFtZSAlfQorRFJPUCBSVUxFIHt7IGNvbm58cXRJZGVudChy dWxlbmFtZSkgfX0gT04ge3sgY29ubnxxdElkZW50KG5zcG5hbWUsIHJlbG5h bWUpIH19IHslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERSB7JSBlbmRpZiAlfTsK K3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy9ydWxlcy90ZW1wbGF0ZXMvcnVsZXMvc3FsL3Byb3BlcnRpZXMuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL3Nx bC9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5lZGExMDI1Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL3NxbC9wcm9wZXJ0 aWVzLnNxbApAQCAtMCwwICsxLDI3IEBACit7Iz09PT09PT09PT09PT09PT09 PT1GZXRjaCBSdWxlcz09PT09PT09PT09PT09PT09PT09I30KK3slIGlmIHZp ZCBvciByaWQgJX0KK1NFTEVDVAorICAgIHJ3Lm9pZCBBUyBvaWQsIHJ3LnJ1 bGVuYW1lIEFTIG5hbWUsIHJ3LiosIHJlbG5hbWUgQVMgdmlldywKKyAgICBD QVNFIFdIRU4gcmVsa2luZCA9ICdyJyBUSEVOIFRSVUUgRUxTRSBGQUxTRSBF TkQgQVMgcGFyZW50aXN0YWJsZSwKKyAgICBuc3BuYW1lIEFTIHNjaGVtYSwg ZGVzY3JpcHRpb24gQVMgY29tbWVudCwKKyAgICB7Iz09Q2hlY2tzIHdoZXRo ZXIgaXQgaXMgc3lzdGVtIHJ1bGUgb3Igbm90PT09I30KKyAgICBDQVNFIFdI RU4gcncucnVsZW5hbWUgPSAnX1JFVFVSTicgVEhFTiBUcnVlIEVMU0UgRmFs c2UgRU5EIEFTIHN5c3RlbV9ydWxlLAorICAgIENBU0UgV0hFTiBydy5ldl9l bmFibGVkICE9ICdEJyBUSEVOIFRydWUgRUxTRSBGYWxzZSBFTkQgQVMgZW5h YmxlZCwKKyAgICBwZ19nZXRfcnVsZWRlZihydy5vaWQsIHRydWUpIEFTIGRl ZmluaXRpb24KK0ZST00KKyAgICBwZ19yZXdyaXRlIHJ3CitKT0lOCisgICAg cGdfY2xhc3MgY2wgT04gY2wub2lkPXJ3LmV2X2NsYXNzCitKT0lOCisgICAg cGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPWNsLnJlbG5hbWVzcGFjZQor TEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChk ZXMub2Jqb2lkPXJ3Lm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19yZXdyaXRl Jzo6cmVnY2xhc3MpCitXSEVSRQorICB7JSBpZiB2aWQgJX0KKyAgICAgIGV2 X2NsYXNzID0ge3sgdmlkIH19CisgIHslIGVsaWYgcmlkICV9CisgICAgICBy dy5vaWQgPSB7eyByaWQgfX0KKyAgeyUgZW5kaWYgJX0KK09SREVSIEJZCisg ICAgcncucnVsZW5hbWUKKyB7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL3NxbC9y dWxlX2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3J1bGVzL3RlbXBs YXRlcy9ydWxlcy9zcWwvcnVsZV9pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uM2RjNmRiYQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3J1bGVzL3RlbXBsYXRlcy9ydWxlcy9z cWwvcnVsZV9pZC5zcWwKQEAgLTAsMCArMSw5IEBACit7Iz09PT09PT09QmVs b3cgd2lsbCBwcm92aWRlIHJ1bGUgaWQgZm9yIGxhc3QgY3JlYXRlZCBydWxl PT09PT09PT0jfQoreyUgaWYgcnVsZV9uYW1lICV9CitTRUxFQ1QKKyAgICBy dy5vaWQKK0ZST00KKyAgICBwZ19yZXdyaXRlIHJ3CitXSEVSRQorICAgIHJ3 LnJ1bGVuYW1lPXt7IHJ1bGVfbmFtZXxxdExpdGVyYWwgfX0KK3slIGVuZGlm ICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy9ydWxlcy90 ZW1wbGF0ZXMvcnVsZXMvc3FsL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy9ydWxlcy90ZW1wbGF0ZXMvcnVsZXMvc3FsL3VwZGF0ZS5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjUwMzY5YQot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3J1bGVz L3RlbXBsYXRlcy9ydWxlcy9zcWwvdXBkYXRlLnNxbApAQCAtMCwwICsxLDIy IEBACit7Iz09PT09PT09PT09PVVwZGF0ZSBSdWxlPT09PT09PT09PT09PSN9 Cit7JSBpZiBkYXRhLmV2ZW50IG9yIGRhdGEuZG9faW5zdGVhZCBvciBkYXRh LmNvbmRpdGlvbiAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgUlVMRSB7eyBjb25u fHF0SWRlbnQob19kYXRhLm5hbWUpIH19IEFTCisgICAgT04geyUgaWYgZGF0 YS5ldmVudCBhbmQgZGF0YS5ldmVudCAhPSBvX2RhdGEuZXZlbnQgJX17eyBk YXRhLmV2ZW50fHVwcGVyIH19eyUgZWxzZSAlfXt7IG9fZGF0YS5ldmVudHx1 cHBlciB9fXslIGVuZGlmICV9CisgICAgVE8ge3sgY29ubnxxdElkZW50KG9f ZGF0YS5zY2hlbWEsIG9fZGF0YS52aWV3KSB9fQoreyUgaWYgZGF0YS5jb25k aXRpb24gYW5kIG9fZGF0YS5jb25kaXRpb24gIT0gZGF0YS5jb25kaXRpb24g JX0KKyAgICBXSEVSRSB7eyBkYXRhLmNvbmRpdGlvbiB9fQoreyUgZWxpZiBk YXRhLmNvbmRpdGlvbiBpcyBub3QgZGVmaW5lZCBhbmQgb19kYXRhLmNvbmRp dGlvbiAlfQorICAgIFdIRVJFIHt7IG9fZGF0YS5jb25kaXRpb24gfX0KK3sl IGVuZGlmICV9CisgRE97JSBpZiBkYXRhLmRvX2luc3RlYWQgaW4gWyd0cnVl JywgVHJ1ZV0gJX17eyAnIElOU1RFQUQnIH19eyUgZWxzZSAlfXt7ICcgJyB9 fQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuc3RhdGVtZW50cyBhbmQgZGF0 YS5zdGF0ZW1lbnRzICE9IG9fZGF0YS5zdGF0ZW1lbnRzICV9Cisge3sgZGF0 YS5zdGF0ZW1lbnRzLnJzdHJpcCgnOycpIH19OworIHslIGVsaWYgZGF0YS5z dGF0ZW1lbnRzIGlzIG5vdCBkZWZpbmVkIGFuZCBvX2RhdGEuc3RhdGVtZW50 cyAlfQorIHt7IG9fZGF0YS5zdGF0ZW1lbnRzLnJzdHJpcCgnOycpIH19Owor eyUgZWxzZSAlfQorIE5PVEhJTkc7Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYg JX0KK3slIGlmIGRhdGEuY29tbWVudCBhbmQgZGF0YS5jb21tZW50ICE9IG9f ZGF0YS5jb21tZW50ICV9CitDT01NRU5UIE9OIFJVTEUge3sgY29ubnxxdElk ZW50KG9fZGF0YS5uYW1lKSB9fSBPTiB7eyBjb25ufHF0SWRlbnQob19kYXRh LnNjaGVtYSwgb19kYXRhLnZpZXcpIH19IElTIHt7IGRhdGEuY29tbWVudHxx dExpdGVyYWwgfX07eyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3N0YXRpYy9pbWcvY29sbC12aWV3LnBuZyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3N0YXRpYy9pbWcvY29sbC12aWV3LnBuZwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwLi4wNzhkNTMzNjg0YjhiZDdlMTg1NzQ5YzRm MWM5NjIwYWYyM2QxMTRiCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA0MTgK emNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/d3lsYEdiS31ZPUJS UUUwOHw+eE9kS1JuUnpEXjl7cmoyCnpffWxWRkBBZkA7YkB9UEBkKFdSZ2Vm STN4cW89cDdLVlB9IVYpVWNgLVQoZ21kLSVWNWAlQVV8fE5uMSlwPz5HaAp6 bihaJnRQSmEkTns9eGdmenFVSm4+VGRvakpecz1BQE95YFNaX0lZUigoQUhX ezAzK05WQFolLUZvVk9oOCkrYTsKemxERTV5UTF6WjFBZShgK3okM0M0TlBC Pj4rc1NNQEFTMig/I1c2KFVhJWd7flA9Zi1HdisyN1A5Vj5RSnw0O1U2Cnpi ZSFHS0gra1BTTU5oJTBZRDt3VlBwISZwJD1IMlFhPjRfaUMtV3NgNG9WdWBr WHZESWU1bF9lVnxqd1c7KzUrUwp6WWd5Nn5QWWR5Ky1jUzQ1KX5rMlohJFdB QVVjdCtva15rckMrTWxWcytwcGZ5Y2BARmBuQzw+bC1WTXE/dDVyKX0KekJU NztkT0ghP3BpJkI5VWdPUCF1cHt7fEV1OTEwJnBeMjVEcklvM3Z3dDw8SWZr RlBoa2V3KFJhYFJJJSg8KlVtClVrYkNAdzZ7dnkxKTc4JnFvbGA7KzBMUU1X NWRaKUgKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3N0YXRpYy9pbWcvdmlldy5wbmcgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy9zdGF0aWMvaW1nL3ZpZXcucG5nCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAuLjQ0MTE2ZGI1NjQ5NmJiNDc3YzhlY2U3ZDNmZGRh NjY2ZTFiMzc1OGIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDQzNwp6Y21l QVNATj8ob2xIeWB1VkJxIWlhMHZwXjB3QiE2Mz93eWxgR2JLfVhARjBORTA4 fD54T2RLUm5hQlRvQU80PjcKejtPbjlYWitBVUBkR1lEPGBfRz8wZWZJM3g8 RU9XN0pZUkZ7TWVAUV5udmVjPlotMSV3fE5zQihGVnReO3A3UHx5Cnpqb1U5 YlQ9fGk2O2NNZFEmdGI8dGRTQ2dUYkt6VSFAc0hseVUjTEMmLStsYXBfayh8 SmNtQ0FmezhmN09OQX1fTwp6NCpUQWk/UnVzNlJkclAmJnw9MXRBaXJQK2hp NW1eSyU2OVJjTmY3JlRXeG0lSWgrTF5rO09wVDFCfjVIWDQ/VDcKelMpTU1B QXJoQzk2QW0hK187QGc9OTV7MDMoNVlrUjR4VClFXno3bCY+X1FMUkgzU2x4 STU/YWJvZndxI1BwR2huCnozeTNgd2F1cE8xbzw2fXZhS2ZaJTZCdlV3QmB7 aH1YeFB6VzZUPmlqcCtSPHspJjwjUjNzeC1BKE5rUSFYY2Ijbgp6PDBESHFw WXpOTkp6TG18fDUkeXgwSkslTCM1Sk5NQzl4I2NEIUN7WE5IR3swNyNpcHI4 dEVEc2g4UClHbkhYRHsKem19KG9DU3tXRzNkI0FTd01NR3xXTkBpTG1NMXo0 UFNPWllDaUlzc0ZNOG0xK3A9KkV8Nyg4QTVULUdAeUd5d254CkNtOSgoewoK bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL2Nzcy92aWV3LmNzcyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9jc3Mvdmlldy5j c3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODhhMmY0 MwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3cy9jc3Mvdmlldy5jc3MKQEAgLTAsMCArMSw4IEBACisu aWNvbi12aWV3eworICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3t7IHVybF9m b3IoJ05PREUtdmlldy5zdGF0aWMnLCBmaWxlbmFtZT0naW1nL3ZpZXcucG5n JykgfX0nKSAhaW1wb3J0YW50OworICBib3JkZXItcmFkaXVzOiAxMHB4Owor ICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICBhbGlnbi1jb250 ZW50OiBjZW50ZXI7CisgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CisgIGhl aWdodDogMS4zZW07Cit9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlld3MvanMvdmlld3MuanMgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3MvanMvdmlld3MuanMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE0ZWJjMgotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3cy9qcy92aWV3cy5qcwpAQCAtMCwwICsxLDMxMCBAQAorZGVmaW5lKAor ICBbJ2pxdWVyeScsICd1bmRlcnNjb3JlJywgJ3VuZGVyc2NvcmUuc3RyaW5n JywgJ3BnYWRtaW4nLAorICAgICdwZ2FkbWluLmJyb3dzZXInLCAnY29kZW1p cnJvcicsICdwZ2FkbWluLmJyb3dzZXIuc2VydmVyLnByaXZpbGVnZSddLAor CitmdW5jdGlvbigkLCBfLCBTLCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIENvZGVN aXJyb3IpIHsKKworICAvLyBEZWZpbmUgU2VjdXJpdHkgTW9kZWwgd2l0aCBm aWVsZHMgYW5kIHZhbGlkYXRpb24KKyAgdmFyIFNlY3VyaXR5TW9kZWwgPSBw Z0FkbWluLkJyb3dzZXIuTm9kZS5Nb2RlbC5leHRlbmQoeworICAgIGRlZmF1 bHRzOiB7CisgICAgICBwcm92aWRlcjogdW5kZWZpbmVkLAorICAgICAgc2Vj dXJpdHlsYWJlbDogdW5kZWZpbmVkCisgICAgfSwKKyAgICBzY2hlbWE6IFt7 CisgICAgICBpZDogJ3Byb3ZpZGVyJywgbGFiZWw6ICd7eyBfKCdQcm92aWRl cicpIH19JywKKyAgICAgIHR5cGU6ICd0ZXh0JywgZWRpdGFibGU6IHRydWUK KyAgICB9LHsKKyAgICAgIGlkOiAnc2VjdXJpdHlfbGFiZWwnLCBsYWJlbDog J3t7IF8oJ1NlY3VyaXR5IExhYmVsJykgfX0nLAorICAgICAgdHlwZTogJ3Rl eHQnLCBlZGl0YWJsZTogdHJ1ZQorICAgIH1dLAorCisgICAgdmFsaWRhdGU6 IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGVyciA9IHt9LAorICAgICAgICBl cnJtc2cgPSBudWxsLAorICAgICAgICBmaWVsZF9uYW1lID0gdGhpcy5nZXQo J3Byb3ZpZGVyJyksCisgICAgICAgIGZpZWxkX3NlY3VyaXR5X2xhYmVsID0g dGhpcy5nZXQoJ3NlY3VyaXR5X2xhYmVsJyk7CisKKyAgICAgIGlmIChfLmlz VW5kZWZpbmVkKGZpZWxkX25hbWUpIHx8IF8uaXNOdWxsKGZpZWxkX25hbWUp IHx8CisgICAgICAgIFN0cmluZyhmaWVsZF9uYW1lKS5yZXBsYWNlKC9eXHMr fFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgIGVyclsncHJvdmlkZXIn XSA9ICd7eyBfKCJQcm92aWRlciBjYW5ub3QgYmUgZW1wdHkuIikgfX0nOwor ICAgICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgZXJyWydwcm92aWRlciddOwor ICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCdwcm92aWRlcicsIGVycm1z Zyk7CisgICAgICAgIHJldHVybiBlcnJtc2c7CisgICAgICB9ZWxzZXsKKyAg ICAgICAgdGhpcy5lcnJvck1vZGVsLnVuc2V0KCdwcm92aWRlcicpOworICAg ICAgfQorCisgICAgICBpZiAoXy5pc1VuZGVmaW5lZChmaWVsZF9zZWN1cml0 eV9sYWJlbCkgfHwgXy5pc051bGwoZmllbGRfc2VjdXJpdHlfbGFiZWwpIHx8 CisgICAgICAgIFN0cmluZyhmaWVsZF9zZWN1cml0eV9sYWJlbCkucmVwbGFj ZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICBlcnJbJ3Nl Y3VyaXR5X2xhYmVsJ10gPSAne3sgXygiU2VjdXJpdHkgTGFiZWwgY2Fubm90 IGJlIGVtcHR5LiIpIH19JzsKKyAgICAgICAgZXJybXNnID0gZXJybXNnIHx8 IGVyclsnc2VjdXJpdHlfbGFiZWwnXTsKKyAgICAgICAgdGhpcy5lcnJvck1v ZGVsLnNldCgnc2VjdXJpdHlfbGFiZWwnLCBlcnJtc2cpOworICAgICAgICBy ZXR1cm4gZXJybXNnOworICAgICAgfWVsc2V7CisgICAgICAgIHRoaXMuZXJy b3JNb2RlbC51bnNldCgnc2VjdXJpdHlfbGFiZWwnKTsKKyAgICAgIH0KKyAg ICAgIHJldHVybiBudWxsOworICAgIH0KKyAgfSk7CisKKworICAvKioKKyAg ICBDcmVhdGUgYW5kIGFkZCBhIHZpZXcgY29sbGVjdGlvbiBpbnRvIG5vZGVz CisgICAgQHBhcmFtIHt2YXJpYWJsZX0gbGFiZWwgLSBMYWJlbCBmb3IgTm9k ZQorICAgIEBwYXJhbSB7dmFyaWFibGV9IHR5cGUgLSBUeXBlIG9mIE5vZGUK KyAgICBAcGFyYW0ge3ZhcmlhYmxlfSBjb2x1bW5zIC0gTGlzdCBvZiBjb2x1 bW5zIHRvCisgICAgICBkaXNwbGF5IHVuZGVyIHVuZGVyIHByb3BlcnRpZXMu CisgICAqLworICBpZiAoIXBnQnJvd3Nlci5Ob2Rlc1snY29sbC12aWV3J10p IHsKKyAgICB2YXIgdmlld3M9IHBnQWRtaW4uQnJvd3Nlci5Ob2Rlc1snY29s bC12aWV3J10gPQorICAgICAgcGdBZG1pbi5Ccm93c2VyLkNvbGxlY3Rpb24u ZXh0ZW5kKHsKKyAgICAgICAgbm9kZTogJ3ZpZXcnLAorICAgICAgICBsYWJl bDogJ3t7IF8oJ1ZpZXdzJykgfX0nLAorICAgICAgICB0eXBlOiAnY29sbC12 aWV3JywKKyAgICAgICAgY29sdW1uczogWyduYW1lJywgJ293bmVyJ10KKyAg ICAgIH0pOworICB9OworCisgIC8qKgorICAgIENyZWF0ZSBhbmQgQWRkIGFu IFZpZXcgTm9kZSBpbnRvIG5vZGVzCisgICAgQHBhcmFtIHt2YXJpYWJsZX0g cGFyZW50X3R5cGUgLSBUaGUgbGlzdCBvZiBub2RlcworICAgIHVuZGVyIHdo aWNoIHRoaXMgbm9kZSB0byBkaXNwbGF5CisgICAgQHBhcmFtIHt2YXJpYWJs ZX0gdHlwZSAtIFR5cGUgb2YgTm9kZQorICAgIEBwYXJhbSB7dmFyaWFibGV9 IGhhc1NRTCAtIFRvIHNob3cgU1FMIHRhYgorICAgIEBwYXJhbSB7dmFyaWFi bGV9IGNhbkRyb3AgLSBBZGRzIGRyb3AgdmlldyBvcHRpb24KKyAgICBpbiB0 aGUgY29udGV4dCBtZW51CisgICAgQHBhcmFtIHt2YXJpYWJsZX0gY2FuRHJv cENhc2NhZGUgLSBBZGRzIGRyb3AgQ2FzY2FkZQorICAgIHZpZXcgb3B0aW9u IGluIHRoZSBjb250ZXh0IG1lbnUKKyAgICovCisgIGlmICghcGdCcm93c2Vy Lk5vZGVzWyd2aWV3J10pIHsKKyAgICBwZ0FkbWluLkJyb3dzZXIuTm9kZXNb J3ZpZXcnXSA9IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLmV4dGVuZCh7CisgICAg ICBwYXJlbnRfdHlwZTogWydzY2hlbWEnLCAnY2F0YWxvZyddLAorICAgICAg dHlwZTogJ3ZpZXcnLAorICAgICAgbGFiZWw6ICd7eyBfKCdWaWV3JykgfX0n LAorICAgICAgaGFzU1FMOiAgdHJ1ZSwKKyAgICAgIGhhc0RlcGVuZHM6IHRy dWUsCisgICAgICBjb2xsZWN0aW9uX3R5cGU6ICdjb2xsLXZpZXcnLAorICAg ICAgY2FuRHJvcDogcGdCcm93c2VyLk5vZGVzWydzY2hlbWEnXS5jYW5DaGls ZERyb3AsCisgICAgICBjYW5Ecm9wQ2FzY2FkZTogcGdCcm93c2VyLk5vZGVz WydzY2hlbWEnXS5jYW5DaGlsZERyb3AsCisgICAgICBJbml0OiBmdW5jdGlv bigpIHsKKworICAgICAgICAvLyBBdm9pZCBtdWxpdHBsZSByZWdpc3RyYXRp b24gb2YgbWVudXMKKyAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpCisg ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQg PSB0cnVlOworCisgICAgICAgIC8qKgorICAgICAgICAgIEFkZCAiY3JlYXRl IHZpZXciIG1lbnUgb3B0aW9uIGludG8gY29udGV4dCBhbmQgb2JqZWN0IG1l bnUKKyAgICAgICAgICBmb3IgdGhlIGZvbGxvd2luZyBub2RlczoKKyAgICAg ICAgICBjb2xsLXZpZXcsIHZpZXcgYW5kIHNjaGVtYS4KKyAgICAgICAgICBA cHJvcGVydHkge2RhdGF9IC0gQWxsb3cgY3JlYXRlIHZpZXcgb3B0aW9uIG9u IHNjaGVtYSBub2RlIG9yCisgICAgICAgICAgc3lzdGVtIHZpZXcgbm9kZXMu CisgICAgICAgICAqLworICAgICAgICBwZ0Jyb3dzZXIuYWRkX21lbnVzKFt7 CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV92aWV3X29uX2NvbGwnLCBub2Rl OiAnY29sbC12aWV3JywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxp ZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29i al9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScs IHByaW9yaXR5OiA0LCBsYWJlbDogJ3t7IF8oJ1ZpZXcuLi4nKSB9fScsCisg ICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLXZpZXcnLCBkYXRhOiB7 YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6IHRydWV9LAorICAgICAgICAgIGVu YWJsZTogJ2NhbkNyZWF0ZScKKyAgICAgICAgfSx7CisgICAgICAgICAgbmFt ZTogJ2NyZWF0ZV92aWV3Jywgbm9kZTogJ3ZpZXcnLCBtb2R1bGU6IHRoaXMs CisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBj YWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNh dGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygn Vmlldy4uLicpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGlj b24tdmlldycsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUnLCBjaGVjazogdHJ1 ZX0sCisgICAgICAgICAgZW5hYmxlOiAnY2FuQ3JlYXRlJworICAgICAgICB9 LHsKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX3ZpZXcnLCBub2RlOiAnc2No ZW1hJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2Jq ZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0 aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5 OiA0LCBsYWJlbDogJ3t7IF8oJ1ZpZXcuLi4nKSB9fScsCisgICAgICAgICAg aWNvbjogJ3djVGFiSWNvbiBpY29uLXZpZXcnLCBkYXRhOiB7YWN0aW9uOiAn Y3JlYXRlJywgY2hlY2s6IGZhbHNlfSwKKyAgICAgICAgICBlbmFibGU6ICdj YW5DcmVhdGUnCisgICAgICAgIH0KKyAgICAgICAgXSk7CisgICAgICB9LAor CisgICAgICAvKioKKyAgICAgICAgRGVmaW5lIG1vZGVsIGZvciB0aGUgdmll dyBub2RlIGFuZCBzcGVjaWZ5IHRoZQorICAgICAgICBwcm9wZXJ0aWVzIG9m IHRoZSBtb2RlbCBpbiBzY2hlbWEuCisgICAgICAgKi8KKyAgICAgIG1vZGVs OiBwZ0FkbWluLkJyb3dzZXIuTm9kZS5Nb2RlbC5leHRlbmQoeworICAgICAg ICBkZWZhdWx0czogeworICAgICAgICB9LAorICAgICAgICBzY2hlbWE6IFt7 CisgICAgICAgICAgaWQ6ICduYW1lJywgbGFiZWw6ICd7eyBfKCdOYW1lJykg fX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAndGV4dCcK KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnb2lkJywg bGFiZWw6J3t7IF8oJ09pZCcpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAg ICAgICAgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDogdHJ1ZQorICAgICAgICB9 LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdvd25lcicsIGxhYmVsOid7 eyBfKCdPd25lcicpIH19JywgY2VsbDogJ3N0cmluZycsIGNvbnRyb2w6ICdu b2RlLWxpc3QtYnktbmFtZScsCisgICAgICAgICAgbm9kZTogJ3JvbGUnCisg ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ3NjaGVtYScs IGxhYmVsOid7eyBfKCdTY2hlbWEnKSB9fScsIGNlbGw6ICdzdHJpbmcnLCBm aXJzdF9lbXB0eTogZmFsc2UsCisgICAgICAgICAgdHlwZTogJ29wdGlvbnMn LCBub2RlOiAnc2NoZW1hJywKKyAgICAgICAgICBjb250cm9sOiBCYWNrZm9y bS5Ob2RlTGlzdEJ5TmFtZUNvbnRyb2wuZXh0ZW5kKHsKKyAgICAgICAgICAg IHJlbmRlcjogZnVuY3Rpb24oKXsKKworICAgICAgICAgICAgICAvLyBJbml0 aWFsaXplIHBhcmVudCdzIHJlbmRlciBtZXRob2QKKyAgICAgICAgICAgICAg QmFja2Zvcm0uTm9kZUxpc3RCeU5hbWVDb250cm9sLnByb3RvdHlwZS5yZW5k ZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKworICAgICAgICAgICAgICAv LyBTZXQgc2NoZW1hIGRlZmF1bHQgdmFsdWUgdG8gaXRzIHBhcmVudCBTY2hl bWEKKyAgICAgICAgICAgICAgaWYodGhpcy5tb2RlbC5pc05ldygpKXsKKyAg ICAgICAgICAgICAgICB0aGlzLm1vZGVsLnNldCh7J3NjaGVtYSc6IHRoaXMu bW9kZWwubm9kZV9pbmZvLnNjaGVtYS5sYWJlbH0pOworICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICAgICAg fQorICAgICAgICAgIH0pLAorCisgICAgICAgICAgLy8gRG9uJ3Qgc2hvdyBz Y2hlbWEgc3RhcnRzIHdpdGggInBnXyIKKyAgICAgICAgICBmaWx0ZXI6IGZ1 bmN0aW9uKGQpeworICAgICAgICAgICAgaWYoZC5sYWJlbCAmJiBkLmxhYmVs Lm1hdGNoKC9ecGdfLykpeworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7 CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg ICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBp ZDogJ2NvbW1lbnQnLCBsYWJlbDone3sgXygnQ29tbWVudCcpIH19JywgY2Vs bDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ211bHRpbGluZScKKyAg ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnc3lzdGVtX3Zp ZXcnLCBsYWJlbDone3sgXygnU3lzdGVtIHZpZXc/JykgfX0nLCBjZWxsOiAn c3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAnc3dpdGNoJywgZGlzYWJsZWQ6 IHRydWUsIG1vZGU6IFsncHJvcGVydGllcyddLCAnb3B0aW9ucyc6IHsKKyAg ICAgICAgICAgICdvblRleHQnOiAnWWVzJywgJ29mZlRleHQnOiAnTm8nLCAn b25Db2xvcic6ICdzdWNjZXNzJywKKyAgICAgICAgICAgICdvZmZDb2xvcic6 ICdkZWZhdWx0JywgJ3NpemUnOiAnc21hbGwnCisgICAgICAgICAgfQorICAg ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdzZWN1cml0eV9i YXJyaWVyJywgbGFiZWw6J3t7IF8oJ1NlY3VyaXR5IEJhcnJpZXInKSB9fScs IGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBt aW5fdmVyc2lvbjogJzkwMjAwJywKKyAgICAgICAgICBncm91cDogJ0RlZmlu aXRpb24nLCBvcHRpb25zOiB7CisgICAgICAgICAgICAnb25UZXh0JzogJ1ll cycsICdvZmZUZXh0JzogJ05vJywgJ29uQ29sb3InOiAnc3VjY2VzcycsCisg ICAgICAgICAgICAnb2ZmQ29sb3InOiAnZGVmYXVsdCcsICdzaXplJzogJ3Nt YWxsJworICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAg ICAgICAgIGlkOiAnY2hlY2tfb3B0aW9uJywgbGFiZWw6J3t7IF8oJ0NoZWNr IE9wdGlvbnMnKSB9fScsCisgICAgICAgICAgY29udHJvbDogJ3NlbGVjdDIn LCBncm91cDogJ0RlZmluaXRpb24nLCB0eXBlOiAndGV4dCcsCisgICAgICAg ICAgbWluX3ZlcnNpb246ICc5MDQwMCcsIG1vZGU6WydjcmVhdGUnLCAnZWRp dCddLAorICAgICAgICAgIHNlbGVjdDI6IHsKKworICAgICAgICAgICAgLy8g c2V0IHNlbGVjdDIgb3B0aW9uIHdpZHRoIHRvIDEwMCUKKyAgICAgICAgICAg IHdpZHRoOiAnMTAwJScKKyAgICAgICAgICB9LAorICAgICAgICAgIG9wdGlv bnM6WworICAgICAgICAgICAge2xhYmVsOiAiTm8iLCB2YWx1ZTogIm5vIn0s CisgICAgICAgICAgICB7bGFiZWw6ICJMb2NhbCIsIHZhbHVlOiAibG9jYWwi fSwKKyAgICAgICAgICAgIHtsYWJlbDogIkNhc2NhZGVkIiwgdmFsdWU6ICJj YXNjYWRlZCJ9CisgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7 CisgICAgICAgICAgaWQ6ICdkZWZpbml0aW9uJywgbGFiZWw6J3t7IF8oJ0Rl ZmluaXRpb24nKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5 cGU6ICd0ZXh0JywgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0ZScsICdl ZGl0J10sIGdyb3VwOiAnRGVmaW5pdGlvbicsCisgICAgICAgICAgY29udHJv bDogJ3NxbC1maWVsZCcKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg ICAgIGlkOiAnbV92aWV3JywgbGFiZWw6J3t7IF8oJ01hdGVyaWFsaXplZCB2 aWV3PycpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTog J3N3aXRjaCcsIG1vZGU6IFsncHJvcGVydGllcyddLCBtaW5fdmVyc2lvbjog JzkwMzAwJywKKyAgICAgICAgICBncm91cDogJ01hdGVyaWFsaXphdGlvbics IG9wdGlvbnM6IHsKKyAgICAgICAgICAgICdvblRleHQnOiAnWWVzJywgJ29m ZlRleHQnOiAnTm8nLCAnb25Db2xvcic6ICdzdWNjZXNzJywKKyAgICAgICAg ICAgICdvZmZDb2xvcic6ICdkZWZhdWx0JywgJ3NpemUnOiAnc21hbGwnCisg ICAgICAgICAgfQorICAgICAgICB9LAorCisgICAgICAgIC8vIEFkZCBTZWN1 cml0eSBMYWJlbHMgQ29udHJvbAorICAgICAgICB7CisgICAgICAgICAgaWQ6 ICdzZWNsYWJlbHMnLCBsYWJlbDogJ3t7IF8oJ1NlY3VyaXRpeSBMYWJlbHMn KSB9fScsCisgICAgICAgICAgbW9kZWw6IFNlY3VyaXR5TW9kZWwsIGVkaXRh YmxlOiBmYWxzZSwgdHlwZTogJ2NvbGxlY3Rpb24nLAorICAgICAgICAgIGNh bkVkaXQ6IGZhbHNlLCBncm91cDogJ3t7IF8oJ1NlY3VyaXR5JykgfX0nLCBj YW5EZWxldGU6IHRydWUsCisgICAgICAgICAgbW9kZTogWydlZGl0JywgJ2Ny ZWF0ZSddLCBjYW5BZGQ6IHRydWUsCisgICAgICAgICAgY29udHJvbDogJ3Vu aXF1ZS1jb2wtY29sbGVjdGlvbicsIHVuaXF1ZUNvbCA6IFsncHJvdmlkZXIn XQorICAgICAgICB9LAorCisgICAgICAgIC8vIEFkZCBQcml2aWxlZ2UgQ29u dHJvbAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdkYXRhY2wnLCBsYWJl bDogJ3t7IF8oJ1ByaXZpbGVnZXMnKSB9fScsCisgICAgICAgICAgbW9kZWw6 IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLlByaXZpbGVnZVJvbGVNb2RlbC5leHRl bmQoCisgICAgICAgICAgICB7cHJpdmlsZWdlczogWydhJywgJ3InLCAndycs ICdkJywgJ3gnLCAndCddfSksIHVuaXF1ZUNvbCA6IFsnZ3JhbnRlZSddLAor ICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZSwgdHlwZTogJ2NvbGxlY3Rpb24n LCBncm91cDogJ3t7IF8oJ1NlY3VyaXR5JykgfX0nLAorICAgICAgICAgIG1v ZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSddLCBjYW5BZGQ6 IHRydWUsIGNhbkRlbGV0ZTogdHJ1ZSwKKyAgICAgICAgICBjb250cm9sOiAn dW5pcXVlLWNvbC1jb2xsZWN0aW9uJywKKyAgICAgICAgfQorICAgICAgICBd LAorICAgICAgICB2YWxpZGF0ZTogZnVuY3Rpb24oKSB7CisKKyAgICAgICAg ICAvLyBUcmlnZ2VycyBzcGVjaWZpYyBlcnJvciBtZXNzYWdlcyBmb3IgZmll bGRzCisgICAgICAgICAgdmFyIGVyciA9IHt9LAorICAgICAgICAgICAgZXJy bXNnLAorICAgICAgICAgICAgZmllbGRfbmFtZSA9IHRoaXMuZ2V0KCduYW1l JyksCisgICAgICAgICAgICBmaWVsZF9kZWYgPSB0aGlzLmdldCgnZGVmaW5p dGlvbicpOworICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKGZpZWxkX25h bWUpIHx8IF8uaXNOdWxsKGZpZWxkX25hbWUpIHx8CisgICAgICAgICAgICBT dHJpbmcoZmllbGRfbmFtZSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9 PSAnJykgeworICAgICAgICAgICAgZXJyWyduYW1lJ10gPSAne3sgXygiUGxl YXNlIHNwZWNpZnkgbmFtZS4iKSB9fSc7CisgICAgICAgICAgICBlcnJtc2cg PSBlcnJtc2cgfHwgZXJyWyduYW1lJ107CisgICAgICAgICAgICB0aGlzLmVy cm9yTW9kZWwuc2V0KCduYW1lJywgZXJybXNnKTsKKyAgICAgICAgICAgIHJl dHVybiBlcnJtc2c7CisgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICB0 aGlzLmVycm9yTW9kZWwudW5zZXQoJ25hbWUnKTsKKyAgICAgICAgICB9Cisg ICAgICAgICAgaWYodGhpcy5pc05ldygpKXsKKyAgICAgICAgICAgIGlmIChf LmlzVW5kZWZpbmVkKGZpZWxkX2RlZikgfHwgXy5pc051bGwoZmllbGRfZGVm KSB8fAorICAgICAgICAgICAgICBTdHJpbmcoZmllbGRfZGVmKS5yZXBsYWNl KC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICAgIGVy clsnZGVmaW5pdGlvbiddID0gJ3t7IF8oIlBsZWFzZSBlbnRlciBmdW5jdGlv biBkZWZpbml0aW9uLiIpIH19JzsKKyAgICAgICAgICAgICAgZXJybXNnID0g ZXJybXNnIHx8IGVyclsnZGVmaW5pdGlvbiddOworICAgICAgICAgICAgICB0 aGlzLmVycm9yTW9kZWwuc2V0KCdkZWZpbml0aW9uJywgZXJybXNnKTsKKyAg ICAgICAgICAgICAgcmV0dXJuIGVycm1zZzsKKyAgICAgICAgICAgIH1lbHNl eworICAgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwudW5zZXQoJ2RlZmlu aXRpb24nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAg ICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgIH0pLAorCisgICAg ICAvKioKKyAgICAgICAgU2hvdyBvciBoaWRlIGNyZWF0ZSB2aWV3IG1lbnUg b3B0aW9uIG9uIHBhcmVudCBub2RlCisgICAgICAgIGFuZCBoaWRlIGZvciBz eXN0ZW0gdmlldyBpbiBjYXRhbG9ncy4KKyAgICAgICAqLworICAgICAgY2Fu Q3JlYXRlOiBmdW5jdGlvbihpdGVtRGF0YSwgaXRlbSwgZGF0YSkgeworCisg ICAgICAgIC8vIElmIGNoZWNrIGlzIGZhbHNlIHRoZW4sIHdlIHdpbGwgYWxs b3cgY3JlYXRlIG1lbnUKKyAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5jaGVj ayA9PSBmYWxzZSkKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAg ICB2YXIgdCA9IHBnQnJvd3Nlci50cmVlLCBpID0gaXRlbSwgZCA9IGl0ZW1E YXRhOworCisgICAgICAgIC8vIFRvIGl0ZXJhdGUgb3ZlciB0cmVlIHRvIGNo ZWNrIHBhcmVudCBub2RlCisgICAgICAgIHdoaWxlIChpKSB7CisKKyAgICAg ICAgICAvLyBJZiBpdCBpcyBzY2hlbWEgdGhlbiBhbGxvdyB1c2VyIHRvIGNy ZWF0ZSB2aWV3CisgICAgICAgICAgaWYgKF8uaW5kZXhPZihbJ3NjaGVtYSdd LCBkLl90eXBlKSA+IC0xKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisK KyAgICAgICAgICBpZiAoJ2NvbGwtdmlldycgPT0gZC5fdHlwZSkgeworCisg ICAgICAgICAgICAvLyBDaGVjayBpZiB3ZSBhcmUgbm90IGNoaWxkIG9mIHZp ZXcKKyAgICAgICAgICAgIHByZXZfaSA9IHQuaGFzUGFyZW50KGkpID8gdC5w YXJlbnQoaSkgOiBudWxsOworICAgICAgICAgICAgcHJldl9kID0gcHJldl9p ID8gdC5pdGVtRGF0YShwcmV2X2kpIDogbnVsbDsKKyAgICAgICAgICAgIGlm KCBwcmV2X2QuX3R5cGUgPT0gJ2NhdGFsb2cnKSB7CisgICAgICAgICAgICAg IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAg IH0KKyAgICAgICAgICBpID0gdC5oYXNQYXJlbnQoaSkgPyB0LnBhcmVudChp KSA6IG51bGw7CisgICAgICAgICAgZCA9IGkgPyB0Lml0ZW1EYXRhKGkpIDog bnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGJ5IGRlZmF1bHQgd2Ug ZG8gbm90IHdhbnQgdG8gYWxsb3cgY3JlYXRlIG1lbnUKKyAgICAgICAgcmV0 dXJuIHRydWU7CisKKyAgICAgIH0KKyAgfSk7CisgIH0KKworICByZXR1cm4g cGdCcm93c2VyLk5vZGVzWydjb2xsLXZpZXcnXTsKK30pOwpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85 LjFfcGx1cy9hY2wuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL3ZpZXdzL3NxbC85LjFfcGx1cy9hY2wuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwN2ZiMDQKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3Fs LzkuMV9wbHVzL2FjbC5zcWwKQEAgLTAsMCArMSwzNSBAQAoreyM9PT09PT09 PT09PT09PT09PT09PT09PT09PT09R2V0IEFDTHM9PT09PT09PT09PT09PT09 PT09PT09PT09I30KK3slIGlmIHZpZCAlfQorU0VMRUNUCisgICAgJ2RhdGFj bCcgYXMgZGVmdHlwZSwKKyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAncHVi bGljJykgZ3JhbnRlZSwKKyAgICBnLnJvbG5hbWUgZ3JhbnRvciwKKyAgICBh cnJheV9hZ2cocHJpdmlsZWdlX3R5cGUpIGFzIHByaXZpbGVnZXMsCisgICAg YXJyYXlfYWdnKGlzX2dyYW50YWJsZSkgYXMgZ3JhbnRhYmxlCitGUk9NCisg ICAgKFNFTEVDVAorICAgICAgICBkLmdyYW50ZWUsIGQuZ3JhbnRvciwgZC5p c19ncmFudGFibGUsCisgICAgICAgIENBU0UgZC5wcml2aWxlZ2VfdHlwZQor ICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisgICAgICAgIFdIRU4g J0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNFUycg VEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAg ICAgICBXSEVOICdUUklHR0VSJyBUSEVOICd0JworICAgICAgICBXSEVOICdV UERBVEUnIFRIRU4gJ3cnCisgICAgICAgIEVMU0UgJ1VOS05PV04nCisgICAg ICAgIEVORCBBUyBwcml2aWxlZ2VfdHlwZQorICAgIEZST00KKyAgICAgICAg KFNFTEVDVCByZWxhY2wgRlJPTSBwZ19jbGFzcyBjbAorICAgICAgICAgICAg TEVGVCBPVVRFUiBKT0lOIHBnX3NoZGVzY3JpcHRpb24gZGVzY3IgT04gKAor ICAgICAgICAgICAgY2wub2lkPWRlc2NyLm9iam9pZCBBTkQgZGVzY3IuY2xh c3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xhc3MpCisgICAgICAgIFdIRVJFIGNs Lm9pZCA9IHt7IHZpZCB9fTo6T0lEIEFORCByZWxraW5kID0gJ3YnCisgICAg ICAgICkgYWNsLAorICAgICAgICAoU0VMRUNUIChkKS5ncmFudGVlIEFTIGdy YW50ZWUsIChkKS5ncmFudG9yIEFTIGdyYW50b3IsIChkKS5pc19ncmFudGFi bGUgQVMgaXNfZ3JhbnRhYmxlLAorICAgICAgICAgICAgKGQpLnByaXZpbGVn ZV90eXBlIEFTIHByaXZpbGVnZV90eXBlCisgICAgICAgIEZST00gKFNFTEVD VCBhY2xleHBsb2RlKHJlbGFjbCkgYXMgZCBGUk9NIHBnX2NsYXNzIGNsMSBX SEVSRSBjbDEub2lkID0ge3t2aWR9fSkgYSkgZAorICAgICAgICApIGQKKyAg ICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9OIChkLmdyYW50 b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xl cyBndCBPTiAoZC5ncmFudGVlID0gZ3Qub2lkKQorR1JPVVAgQlkKKyAgICBn LnJvbG5hbWUsIGd0LnJvbG5hbWUKK3slIGVuZGlmICV9CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzku MV9wbHVzL2JhY2tlbmRfc3VwcG9ydC5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuMV9wbHVzL2JhY2tlbmRfc3Vw cG9ydC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u ZTNmOGY0ZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4xX3BsdXMvYmFja2VuZF9zdXBw b3J0LnNxbApAQCAtMCwwICsxLDIwIEBACitTRUxFQ1QKKyAgICBDQVNFIFdI RU4gbnNwLm5zcG5hbWUgSU4gKCdzeXMnLCAnZGJvJywgJ2luZm9ybWF0aW9u X3NjaGVtYScpIFRIRU4gdHJ1ZSBFTFNFIGZhbHNlIEVORCBBUyBkYlN1cHBv cnQKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UgbnNwCitXSEVSRQorICAgIG5z cC5vaWQ9e3tzY2lkfX06OmludAorQU5EICgKKyAgICAobnNwbmFtZSA9ICdw Z19jYXRhbG9nJyBBTkQgRVhJU1RTCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVs bmFtZSA9ICdwZ19jbGFzcycgQU5EIHJlbG5hbWVzcGFjZSA9IG5zcC5vaWQg TElNSVQgMSkpCisgICAgT1IgKG5zcG5hbWUgPSAncGdhZ2VudCcgQU5EIEVY SVNUUworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTRUxF Q1QgMSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAncGdhX2pvYicg QU5EIHJlbG5hbWVzcGFjZSA9IG5zcC5vaWQgTElNSVQgMSkpCisgICAgT1Ig KG5zcG5hbWUgPSAnaW5mb3JtYXRpb25fc2NoZW1hJyBBTkQgRVhJU1RTCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFNFTEVDVCAxIEZS T00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICd0YWJsZXMnIEFORCByZWxu YW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEpKQorICAgIE9SIChuc3BuYW1l IExJS0UgJ18lJyBBTkQgRVhJU1RTCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKFNFTEVDVCAxIEZST00gcGdfcHJvYyBXSEVSRSBwcm9u YW1lPSdzbG9ueXZlcnNpb24nIEFORCBwcm9uYW1lc3BhY2UgPSBuc3Aub2lk IExJTUlUIDEpKQorKQorQU5ECisgICAgbnNwbmFtZSBOT1QgTElLRSBFJ3Bn XFx0ZW1wXFwlJworQU5ECisgICAgbnNwbmFtZSBOT1QgTElLRSBFJ3BnXFx0 b2FzdF90ZW1wXFwlJwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjFf cGx1cy9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjJhYzFlM2EKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuMV9wbHVzL2NyZWF0 ZS5zcWwKQEAgLTAsMCArMSwyNSBAQAoreyM9PT09PT09PT09PT09PT09PT09 PT09PT09PT09Q3JlYXRlIG5ldyB2aWV3PT09PT09PT09PT09PT09PT09PT09 PT09PSN9Cit7JSBpZiBkaXNwbGF5X2NvbW1lbnRzICV9CistLSBWaWV3OiB7 eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKwor LS0gRFJPUCBWSUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0 YS5uYW1lKSB9fTsKKworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEubmFtZSBh bmQgZGF0YS5zY2hlbWEgYW5kIGRhdGEuZGVmaW5pdGlvbiAlfQorQ1JFQVRF IE9SIFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEs IGRhdGEubmFtZSkgfX0KK3slIGlmICgoZGF0YS5jaGVja19vcHRpb24gYW5k IGRhdGEuY2hlY2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25vJykgb3IgZGF0YS5z ZWN1cml0eV9iYXJyaWVyKSAlfQorV0lUSCAoeyUgaWYgZGF0YS5jaGVja19v cHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25vJyAl fQorY2hlY2tfb3B0aW9uPXt7IGRhdGEuY2hlY2tfb3B0aW9uIH19eyUgZW5k aWYgJX17eyAnLCAnIGlmIGRhdGEuY2hlY2tfb3B0aW9uIGFuZAorZGF0YS5j aGVja19vcHRpb24ubG93ZXIoKSAhPSAnbm8nIGFuZCBkYXRhLnNlY3VyaXR5 X2JhcnJpZXIgZWxzZSAnJyB9fXslIGlmIGRhdGEuc2VjdXJpdHlfYmFycmll ciAlfQorc2VjdXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJp ZXIgfX17JSBlbmRpZiAlfSl7JSBlbmRpZiAlfSBBUwore3sgZGF0YS5kZWZp bml0aW9uLnJzdHJpcCgnOycpIH19OworeyUgaWYgZGF0YS5vd25lciAlfQor CitBTFRFUiBUQUJMRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRh dGEubmFtZSkgfX0KKyAgICBPV05FUiBUTyB7eyBkYXRhLm93bmVyIH19Owor eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuY29tbWVudCAlfQorQ09NTUVOVCBP TiBWSUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1l KSB9fQorICAgIElTIHt7IGRhdGEuY29tbWVudHxxdExpdGVyYWwgfX07Cit7 JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4xX3BsdXMvZGVs ZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3 cy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi40ZTI5MGEyCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjFf cGx1cy9kZWxldGUuc3FsCkBAIC0wLDAgKzEsMTIgQEAKK3sjPT09PT09PT09 PT09PT09PT09PT09PT09PT09PURyb3AvQ2FzY2FkZSB2aWV3IGJ5IG5hbWU9 PT09PT09PT09PT09PT09PT09PT09PT09I30KK3slIGlmIHZpZCAlfQorU0VM RUNUCisgICAgYy5yZWxuYW1lIEFzIG5hbWUsIG5zcC5uc3BuYW1lCitGUk9N CisgICAgcGdfY2xhc3MgYworICAgIExFRlQgSk9JTiBwZ19uYW1lc3BhY2Ug bnNwIG9uIGMucmVsbmFtZXNwYWNlID0gbnNwLm9pZAorV0hFUkUKKyAgICBj LnJlbGZpbGVub2RlID0ge3sgdmlkIH19OworeyUgZWxpZiAobmFtZSBhbmQg bnNwbmFtZSkgJX0KK0RST1AgVklFVyB7e25zcG5hbWV9fS57eyBjb25ufHF0 SWRlbnQobmFtZSkgfX0geyUgaWYgY2FzY2FkZSAlfSBDQVNDQURFIHslIGVu ZGlmICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjFfcGx1cy9ncmFudC5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3Fs LzkuMV9wbHVzL2dyYW50LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi45ZmE3MTgxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjFfcGx1cy9n cmFudC5zcWwKQEAgLTAsMCArMSwxNCBAQAoreyM9PT09PUdyYW50IFBlcm1p c3Npb25zIHRvIFVzZXIgUm9sZSBvbiBWaWV3cy9UYWJsZXM9PT09I30KK3sl IGltcG9ydCAnbWFjcm9zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUg JX0KK3slIGltcG9ydCAnbWFjcm9zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBS SVZJTEVHRSAlfQoreyMgV2Ugd2lsbCBnZW5lcmF0ZSBTZWN1cml0eSBMYWJl bCBTUUwgdXNpbmcgbWFjcm8gI30KK3slIGlmIGRhdGEuc2VjbGFiZWxzICV9 Cit7JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVscyAlfQore3sgU0VDTEFCTEUu QVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIu c2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9 Cit7JSBpZiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5k YXRhY2wgJX0KK3t7IFBSSVZJTEVHRS5BUFBMWShjb25uLCAnVEFCTEUnLCBw cml2LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0YS5zY2hlbWEsIHByaXYud2l0 aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50KSB9fQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwv OS4xX3BsdXMvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uOTQ4NzQ1OAotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4xX3Bs dXMvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSwyOSBAQAoreyUgaWYgKHZp ZCBhbmQgZGF0bGFzdHN5c29pZCkgb3Igc2NpZCAlfQorU0VMRUNUIGMub2lk LCBjLnhtaW4sIGMucmVsbmFtZSBBUyBuYW1lLCBjLnJlbHRhYmxlc3BhY2Ug QVMgc3Bjb2lkLCBzcGMuc3BjbmFtZSwKKyAgICBwZ19nZXRfdXNlcmJ5aWQo Yy5yZWxvd25lcikgQVMgb3duZXIsIGRlc2NyaXB0aW9uIEFTIGNvbW1lbnQs CisgICAgcGdfZ2V0X3ZpZXdkZWYoYy5vaWQsIHRydWUpIEFTIGRlZmluaXRp b24sIG5zcC5uc3BuYW1lIEFTIHNjaGVtYSwKKyAgICAoU0VMRUNUIGFycmF5 X2FnZyhsYWJlbCkgRlJPTSBwZ19zZWNsYWJlbHMgc2wxIFdIRVJFIHNsMS5v YmpvaWQ9Yy5vaWQgQU5EIHNsMS5vYmpzdWJpZD0wKSBBUyBsYWJlbHMsCisg ICAgKFNFTEVDVCBhcnJheV9hZ2cocHJvdmlkZXIpIEZST00gcGdfc2VjbGFi ZWxzIHNsMiBXSEVSRSBzbDIub2Jqb2lkPWMub2lkIEFORCBzbDIub2Jqc3Vi aWQ9MCkgQVMgcHJvdmlkZXJzCitGUk9NIHBnX2NsYXNzIGMKKyAgICBMRUZU IE9VVEVSIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBvbiBuc3Aub2lkID0gYy5y ZWxuYW1lc3BhY2UKKyAgICBMRUZUIE9VVEVSIEpPSU4gcGdfdGFibGVzcGFj ZSBzcGMgb24gc3BjLm9pZD1jLnJlbHRhYmxlc3BhY2UKKyAgICBMRUZUIE9V VEVSIEpPSU4gcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPWMu b2lkIGFuZCBkZXMub2Jqc3ViaWQ9MCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19j bGFzcyc6OnJlZ2NsYXNzKQorICAgICAgICBXSEVSRSAoKGMucmVsaGFzcnVs ZXMgQU5EIChFWElTVFMgKAorICAgICAgICAgICAgU0VMRUNUIHIucnVsZW5h bWUgRlJPTSBwZ19yZXdyaXRlIHIKKyAgICAgICAgICAgICAgICBXSEVSRSAo KHIuZXZfY2xhc3MgPSBjLm9pZCkKKyAgICAgICAgICAgICAgICAgICAgQU5E IChicGNoYXIoci5ldl90eXBlKSA9ICcxJzo6YnBjaGFyKSkgKSkpIE9SIChj LnJlbGtpbmQgPSAndic6OmNoYXIpKQoreyUgaWYgKHZpZCBhbmQgZGF0bGFz dHN5c29pZCkgJX0KKyAgICAgICAgQU5EIGMub2lkID0ge3t2aWR9fTo6b2lk Cit7JSBlbGlmIHNjaWQgJX0KKyAgICAgICAgQU5EIGMucmVsbmFtZXNwYWNl ID0ge3tzY2lkfX06Om9pZCBPUkRFUiBCWSBjLnJlbG5hbWUKK3slIGVuZGlm ICV9CisKK3slIGVsaWYgdHlwZSA9PSAncm9sZXMnICV9CitTRUxFQ1QgcHIu cm9sbmFtZSBGUk9NIHBnX3JvbGVzIHByIFdIRVJFIHByLnJvbGNhbmxvZ2lu IE9SREVSIEJZIHByLnJvbG5hbWUKKworeyUgZWxpZiB0eXBlID09ICdzY2hl bWFzJyAlfQorU0VMRUNUIG5zcC5uc3BuYW1lCisgICAgRlJPTSBwZ19uYW1l c3BhY2UgbnNwCitXSEVSRSAobnNwLm5zcG5hbWUgTk9UIExJS0UgRSdwZ1xc XyUnCisgICAgQU5EIG5zcC5uc3BuYW1lICE9ICdpbmZvcm1hdGlvbl9zY2hl bWEnKQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4xX3BsdXMvdXBkYXRlLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwv OS4xX3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5kMjU4NjMyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjFfcGx1cy91 cGRhdGUuc3FsCkBAIC0wLDAgKzEsODEgQEAKK3sjPT09PT09PT09PT09PT09 PT09PT09PT09PT09PVVwZGF0ZSB2aWV3PT09PT09PT09PT09PT09PT09PT09 PT09PSN9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFz IFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9wcml2aWxlZ2UubWFj cm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGlmIGRhdGEgJX0KK3slIHNldCB2 aWV3X25hbWUgPSBkYXRhLm5hbWUgaWYgZGF0YS5uYW1lIGVsc2Ugb19kYXRh Lm5hbWUgJX0KK3slIHNldCB2aWV3X3NjaGVtYSA9IGRhdGEuc2NoZW1hIGlm IGRhdGEuc2NoZW1hIGVsc2Ugb19kYXRhLnNjaGVtYSAlfQoreyUgc2V0IGRl ZiA9IGRhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSBpZiBkYXRhLmRlZmlu aXRpb24gJX0KK3slIGlmIGRhdGEubmFtZSBhbmQgZGF0YS5uYW1lICE9IG9f ZGF0YS5uYW1lICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudChvX2Rh dGEuc2NoZW1hLCBvX2RhdGEubmFtZSkgfX0KKyAgICBSRU5BTUUgVE8ge3sg Y29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07Cit7JSBlbmRpZiAlfQoreyUg aWYgZGF0YS5zY2hlbWEgYW5kIGRhdGEuc2NoZW1hICE9IG9fZGF0YS5zY2hl bWEgJX0KK0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KG9fZGF0YS5zY2hl bWEsIHZpZXdfbmFtZSApIH19CisgICAgU0VUIFNDSEVNQSB7eyBkYXRhLnNj aGVtYSB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLm93bmVyIGFuZCBk YXRhLm93bmVyICE9IG9fZGF0YS5vd25lciAlfQorQUxURVIgVEFCTEUge3sg Y29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAg T1dORVIgVE8ge3sgZGF0YS5vd25lciB9fTsKK3slIGVuZGlmICV9Cit7JSBp ZiBkZWYgYW5kIGRlZiAhPSBvX2RhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsn KSAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQo dmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KK3slIGlmIChkYXRhLmNoZWNr X29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gb19kYXRhLmNoZWNr X29wdGlvbikKKyAgICBvciAoZGF0YS5zZWN1cml0eV9iYXJyaWVyIGFuZCBk YXRhLnNlY3VyaXR5X2JhcnJpZXIgIT0gb19kYXRhLnNlY3VyaXR5X2JhcnJp ZXIpICV9CisgICAgV0lUSCAoeyUgaWYgKGRhdGEuY2hlY2tfb3B0aW9uIGFu ZCBkYXRhLmNoZWNrX29wdGlvbiAhPSAnbm8nKSAlfWNoZWNrX29wdGlvbj17 eyBkYXRhLmNoZWNrX29wdGlvbiB9fXslIGVuZGlmICV9e3snLCAnIGlmIGRh dGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAhPSAnbm8n IGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgfX17JSBpZiBkYXRhLnNlY3Vy aXR5X2JhcnJpZXIgJX1zZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEuc2VjdXJp dHlfYmFycmllciB9fXslIGVuZGlmICV9KQoreyUgZW5kaWYgJX0KKyAgICBB U3t7IGRlZiB9fTsKK3slIGVsc2UgJX0KK3slIGlmIChkYXRhLnNlY3VyaXR5 X2JhcnJpZXIgYW5kIGRhdGEuc2VjdXJpdHlfYmFycmllciAhPSAgb19kYXRh LnNlY3VyaXR5X2JhcnJpZXIpICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJ ZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIFNFVCAoc2Vj dXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgfX0pOwor eyUgZW5kaWYgJX0KK3slIGlmIChkYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0 YS5jaGVja19vcHRpb24gIT0gb19kYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0 YS5jaGVja19vcHRpb24gIT0gJ25vJykgJX0KK0FMVEVSIFZJRVcge3sgY29u bnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAgU0VU IChjaGVja19vcHRpb249e3sgZGF0YS5jaGVja19vcHRpb24gfX0pOworeyUg ZWxpZiAoZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9u ICE9IG9fZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9u ID09ICdubycpICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3 X3NjaGVtYSwgdmlld19uYW1lKSB9fSBSRVNFVCAoY2hlY2tfb3B0aW9uKTsK K3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5jb21tZW50 IGFuZCBkYXRhLmNvbW1lbnQgIT0gb19kYXRhLmNvbW1lbnQgJX0KK0NPTU1F TlQgT04gVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdf bmFtZSkgfX0KKyAgICBJUyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19 OworeyUgZW5kaWYgJX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdp bGwgY2hhbmdlIHByaXZpbGVnZXMgI30KK3slIGlmIGRhdGEuZGF0YWNsICV9 Cit7JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBw cml2IGluIGRhdGEuZGF0YWNsLmRlbGV0ZWQgJX0KK3t7IFBSSVZJTEVHRS5S RVNFVEFMTChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFt ZSwgZGF0YS5zY2hlbWEpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9 Cit7JSBpZiAnY2hhbmdlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBw cml2IGluIGRhdGEuZGF0YWNsLmNoYW5nZWQgJX0KK3t7IFBSSVZJTEVHRS5S RVNFVEFMTChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFt ZSwgZGF0YS5zY2hlbWEpIH19Cit7eyBQUklWSUxFR0UuQVBQTFkoY29ubiwg J1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1h LCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3sl IGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdhZGRlZCcgaW4gZGF0 YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsLmFkZGVk ICV9Cit7eyBQUklWSUxFR0UuQVBQTFkoY29ubiwgJ1RBQkxFJywgcHJpdi5n cmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hLCBwcml2LndpdGhvdXRf Z3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBi ZWxvdyB3aWxsIGNoYW5nZSBTZWN1cml0eSBMYWJlbCAjfQoreyUgaWYgZGF0 YS5zZWNsYWJlbHMgaXMgbm90IG5vbmUgYW5kIGRhdGEuc2VjbGFiZWxzfGxl bmd0aCA+IDAgJX0KK3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVs cyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFi ZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFi ZWxzLmRlbGV0ZWQgJX0KK3t7IFNFQ0xBQkxFLkRST1AoY29ubiwgJ1ZJRVcn LCBkYXRhLm5hbWUsIHIucHJvdmlkZXIpIH19Cit7JSBlbmRmb3IgJX0KK3sl IGVuZGlmICV9Cit7JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2Vj bGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xh YmVscy5hZGRlZCAlfQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcn LCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcg aW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAw ICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQore3sgU0VD TEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlk ZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4x X3BsdXMvdmlld19pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvdmlld3Mvc3FsLzkuMV9wbHVzL3ZpZXdfaWQuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkZmYwNGUKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmll d3Mvc3FsLzkuMV9wbHVzL3ZpZXdfaWQuc3FsCkBAIC0wLDAgKzEsNCBAQAor eyMgQmVsb3cgd2lsbCBwcm92aWRlIHZpZXcgaWQgZm9yIG5ld2x5IGNyZWF0 ZWQgdmlldyAjfQoreyUgaWYgZGF0YSAlfQorU0VMRUNUIGMub2lkIEZST00g cGdfY2xhc3MgYyBXSEVSRSBjLnJlbG5hbWUgPSAne3sgZGF0YS5uYW1lIH19 JzsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuMl9wbHVzL2FjbC5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuMl9w bHVzL2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMmEzZmJjYQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4yX3BsdXMvYWNsLnNxbApA QCAtMCwwICsxLDM1IEBACit7Iz09PT09PT09PT09PT09PT09PT09PT09PT09 PT1HZXQgQUNMcz09PT09PT09PT09PT09PT09PT09PT09PT0jfQoreyUgaWYg dmlkICV9CitTRUxFQ1QKKyAgICAnZGF0YWNsJyBhcyBkZWZ0eXBlLAorICAg IENPQUxFU0NFKGd0LnJvbG5hbWUsICdwdWJsaWMnKSBncmFudGVlLAorICAg IGcucm9sbmFtZSBncmFudG9yLAorICAgIGFycmF5X2FnZyhwcml2aWxlZ2Vf dHlwZSkgYXMgcHJpdmlsZWdlcywKKyAgICBhcnJheV9hZ2coaXNfZ3JhbnRh YmxlKSBhcyBncmFudGFibGUKK0ZST00KKyAgICAoU0VMRUNUCisgICAgICAg IGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50YWJsZSwKKyAgICAg ICAgQ0FTRSBkLnByaXZpbGVnZV90eXBlCisgICAgICAgIFdIRU4gJ0RFTEVU RScgVEhFTiAnZCcKKyAgICAgICAgV0hFTiAnSU5TRVJUJyBUSEVOICdhJwor ICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4JworICAgICAgICBX SEVOICdTRUxFQ1QnIFRIRU4gJ3InCisgICAgICAgIFdIRU4gJ1RSSUdHRVIn IFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1VQREFURScgVEhFTiAndycKKyAg ICAgICAgRUxTRSAnVU5LTk9XTicKKyAgICAgICAgRU5EIEFTIHByaXZpbGVn ZV90eXBlCisgICAgRlJPTQorICAgICAgICAoU0VMRUNUIHJlbGFjbCBGUk9N IHBnX2NsYXNzIGNsCisgICAgICAgICAgICBMRUZUIE9VVEVSIEpPSU4gcGdf c2hkZXNjcmlwdGlvbiBkZXNjciBPTiAoCisgICAgICAgICAgICAgIGNsLm9p ZD1kZXNjci5vYmpvaWQgQU5EIGRlc2NyLmNsYXNzb2lkPSdwZ19jbGFzcyc6 OnJlZ2NsYXNzKQorICAgICAgICBXSEVSRSBjbC5vaWQgPSB7eyB2aWQgfX06 Ok9JRCBBTkQgcmVsa2luZCA9ICd2JworICAgICAgICApIGFjbCwKKyAgICAg ICAgKFNFTEVDVCAoZCkuZ3JhbnRlZSBBUyBncmFudGVlLCAoZCkuZ3JhbnRv ciBBUyBncmFudG9yLCAoZCkuaXNfZ3JhbnRhYmxlIEFTIGlzX2dyYW50YWJs ZSwKKyAgICAgICAgICAgIChkKS5wcml2aWxlZ2VfdHlwZSBBUyBwcml2aWxl Z2VfdHlwZQorICAgICAgICBGUk9NIChTRUxFQ1QgYWNsZXhwbG9kZShyZWxh Y2wpIGFzIGQgRlJPTSBwZ19jbGFzcyBjbDEgV0hFUkUgY2wxLm9pZCA9IHt7 IHZpZCB9fTo6T0lEKSBhKSBkCisgICAgICAgICkgZAorICAgIExFRlQgSk9J TiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9IGcub2lk KQorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGd0IE9OIChk LmdyYW50ZWUgPSBndC5vaWQpCitHUk9VUCBCWQorICAgIGcucm9sbmFtZSwg Z3Qucm9sbmFtZQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4yX3BsdXMvYmFj a2VuZF9zdXBwb3J0LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3cy9zcWwvOS4yX3BsdXMvYmFja2VuZF9zdXBwb3J0LnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDE5YjY4Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL3ZpZXdzL3NxbC85LjJfcGx1cy9iYWNrZW5kX3N1cHBvcnQuc3FsCkBA IC0wLDAgKzEsMTggQEAKK1NFTEVDVAorIENBU0UgV0hFTiBuc3AubnNwbmFt ZSBJTiAoJ3N5cycsICdkYm8nLCAnaW5mb3JtYXRpb25fc2NoZW1hJykgVEhF TiB0cnVlIEVMU0UgZmFsc2UgRU5EIEFTIGRiU3VwcG9ydAorRlJPTSBwZ19u YW1lc3BhY2UgbnNwCitXSEVSRSBuc3Aub2lkPXt7c2NpZH19OjppbnQKK0FO RCAoCisJKG5zcG5hbWUgPSAncGdfY2F0YWxvZycgQU5EIEVYSVNUUworCSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU0VMRUNUIDEgRlJPTSBw Z19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3BnX2NsYXNzJyBBTkQgcmVsbmFt ZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAxKSkKKwlPUiAobnNwbmFtZSA9ICdw Z2FnZW50JyBBTkQgRVhJU1QKKwkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9 ICdwZ2Ffam9iJyBBTkQgcmVsbmFtZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAx KSkKKwlPUiAobnNwbmFtZSA9ICdpbmZvcm1hdGlvbl9zY2hlbWEnIEFORCBF WElTVFMKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFNFTEVD VCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICd0YWJsZXMnIEFO RCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEpKQorCU9SIChuc3Bu YW1lIExJS0UgJ18lJyBBTkQgRVhJU1RTCisJICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX3Byb2MgV0hFUkUgcHJv bmFtZT0nc2xvbnl2ZXJzaW9uJyBBTkQgcHJvbmFtZXNwYWNlID0gbnNwLm9p ZCBMSU1JVCAxKSkKKykKK0FORAorIG5zcG5hbWUgTk9UIExJS0UgRSdwZ1xc dGVtcFxcJScKK0FORAorIG5zcG5hbWUgTk9UIExJS0UgRSdwZ1xcdG9hc3Rf dGVtcFxcJScKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3cy9zcWwvOS4yX3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4yX3BsdXMv Y3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5hMzQ1ZTE1Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjJfcGx1cy9jcmVhdGUuc3Fs CkBAIC0wLDAgKzEsMjUgQEAKK3sjPT09PT09PT09PT09PT09PT09PT09PT09 PT09PUNyZWF0ZSBuZXcgdmlldz09PT09PT09PT09PT09PT09PT09PT09PT0j fQoreyUgaWYgZGlzcGxheV9jb21tZW50cyAlfQorLS0gVmlldzoge3sgY29u bnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19CisKKy0tIERS T1AgVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFt ZSkgfX07CisKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLm5hbWUgYW5kIGRh dGEuc2NoZW1hIGFuZCBkYXRhLmRlZmluaXRpb24gJX0KK0NSRUFURSBPUiBS RVBMQUNFIFZJRVcge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRh Lm5hbWUpIH19Cit7JSBpZiAoKGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRh LmNoZWNrX29wdGlvbi5sb3dlcigpICE9ICdubycpIG9yIGRhdGEuc2VjdXJp dHlfYmFycmllcikgJX0KK1dJVEggKHslIGlmIGRhdGEuY2hlY2tfb3B0aW9u IGFuZCBkYXRhLmNoZWNrX29wdGlvbi5sb3dlcigpICE9ICdubycgJX0KK2No ZWNrX29wdGlvbj17eyBkYXRhLmNoZWNrX29wdGlvbiB9fXslIGVuZGlmICV9 e3sgJywgJyBpZiBkYXRhLmNoZWNrX29wdGlvbiBhbmQKK2RhdGEuY2hlY2tf b3B0aW9uLmxvd2VyKCkgIT0gJ25vJyBhbmQgZGF0YS5zZWN1cml0eV9iYXJy aWVyIGVsc2UgJycgfX17JSBpZiBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgJX0K K3NlY3VyaXR5X2JhcnJpZXI9e3sgZGF0YS5zZWN1cml0eV9iYXJyaWVyIH19 eyUgZW5kaWYgJX0peyUgZW5kaWYgJX0gQVMKK3t7IGRhdGEuZGVmaW5pdGlv bi5yc3RyaXAoJzsnKSB9fTsKK3slIGlmIGRhdGEub3duZXIgJX0KKworQUxU RVIgVEFCTEUge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5h bWUpIH19CisgIE9XTkVSIFRPIHt7IGRhdGEub3duZXIgfX07Cit7JSBlbmRp ZiAlfQoreyUgaWYgZGF0YS5jb21tZW50ICV9CitDT01NRU5UIE9OIFZJRVcg e3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19Cisg ICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlm ICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjJfcGx1cy9kZWxldGUuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85 LjJfcGx1cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjRlMjkwYTIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuMl9wbHVzL2Rl bGV0ZS5zcWwKQEAgLTAsMCArMSwxMiBAQAoreyM9PT09PT09PT09PT09PT09 PT09PT09PT09PT09RHJvcC9DYXNjYWRlIHZpZXcgYnkgbmFtZT09PT09PT09 PT09PT09PT09PT09PT09PT0jfQoreyUgaWYgdmlkICV9CitTRUxFQ1QKKyAg ICBjLnJlbG5hbWUgQXMgbmFtZSwgbnNwLm5zcG5hbWUKK0ZST00KKyAgICBw Z19jbGFzcyBjCisgICAgTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc3Agb24g Yy5yZWxuYW1lc3BhY2UgPSBuc3Aub2lkCitXSEVSRQorICAgIGMucmVsZmls ZW5vZGUgPSB7eyB2aWQgfX07Cit7JSBlbGlmIChuYW1lIGFuZCBuc3BuYW1l KSAlfQorRFJPUCBWSUVXIHt7bnNwbmFtZX19Lnt7IGNvbm58cXRJZGVudChu YW1lKSB9fSB7JSBpZiBjYXNjYWRlICV9IENBU0NBREUgeyUgZW5kaWYgJX0K K3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuMl9wbHVzL2dyYW50LnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4yX3Bs dXMvZ3JhbnQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjlmYTcxODEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuMl9wbHVzL2dyYW50LnNx bApAQCAtMCwwICsxLDE0IEBACit7Iz09PT09R3JhbnQgUGVybWlzc2lvbnMg dG8gVXNlciBSb2xlIG9uIFZpZXdzL1RhYmxlcz09PT0jfQoreyUgaW1wb3J0 ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUg aW1wb3J0ICdtYWNyb3MvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdF ICV9Cit7IyBXZSB3aWxsIGdlbmVyYXRlIFNlY3VyaXR5IExhYmVsIFNRTCB1 c2luZyBtYWNybyAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZv ciByIGluIGRhdGEuc2VjbGFiZWxzICV9Cit7eyBTRUNMQUJMRS5BUFBMWShj b25uLCAnVklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0 eV9sYWJlbCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlm IGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbCAl fQore3sgUFJJVklMRUdFLkFQUExZKGNvbm4sICdUQUJMRScsIHByaXYuZ3Jh bnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNjaGVtYSwgcHJpdi53aXRob3V0X2dy YW50LCBwcml2LndpdGhfZ3JhbnQpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvdmlld3Mvc3FsLzkuMl9wbHVzL3Byb3BlcnRpZXMuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjJfcGx1 cy9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4zZGE3ODAxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjJfcGx1cy9wcm9w ZXJ0aWVzLnNxbApAQCAtMCwwICsxLDM5IEBACit7JSBpZiAodmlkIGFuZCBk YXRsYXN0c3lzb2lkKSBvciBzY2lkICV9CitTRUxFQ1QgYy5vaWQsIGMueG1p biwgYy5yZWxuYW1lIEFTIG5hbWUsIGMucmVsdGFibGVzcGFjZSBBUyBzcGNv aWQsIHNwYy5zcGNuYW1lLAorICAgIHBnX2dldF91c2VyYnlpZChjLnJlbG93 bmVyKSBBUyBvd25lciwgYy5yZWxhY2wsIGRlc2NyaXB0aW9uIEFzIGNvbW1l bnQsCisgICAgcGdfZ2V0X3ZpZXdkZWYoYy5vaWQsIHRydWUpIEFTIGRlZmlu aXRpb24sIG5zcC5uc3BuYW1lIEFTIHNjaGVtYSwKKyAgICB7Iz09PT09PT09 PT09PT1DaGVja3MgaWYgaXQgaXMgc3lzdGVtIHZpZXc9PT09PT09PT09PT09 PT09I30KKyAgICB7JSBpZiB2aWQgYW5kIGRhdGxhc3RzeXNvaWQgJX0KKyAg ICBDQVNFIFdIRU4ge3t2aWR9fSA8PSB7e2RhdGxhc3RzeXNvaWR9fSBUSEVO IFRydWUgRUxTRSBGYWxzZSBFTkQgQVMgc3lzdGVtX3ZpZXcsCisgICAgeyUg ZW5kaWYgJX0KKyAgICB7Iz09PT09PT09PT09PT1DaGVja3MgaWYgaXQgaXMg bWF0ZXJpYWxpemVkIHZpZXc9PT09PT09PSN9CisgICAgQ0FTRSBXSEVOIGMu cmVsa2luZCA9ICdtJyBUSEVOIFRydWUgRUxTRSBGYWxzZSBFTkQgQXMgbV92 aWV3LAorICAgIChTRUxFQ1QgYXJyYXlfYWdnKGxhYmVsKSBGUk9NIHBnX3Nl Y2xhYmVscyBzbDEgV0hFUkUgc2wxLm9iam9pZD1jLm9pZCBBTkQgc2wxLm9i anN1YmlkPTApIEFTIGxhYmVscywKKyAgICAoU0VMRUNUIGFycmF5X2FnZyhw cm92aWRlcikgRlJPTSBwZ19zZWNsYWJlbHMgc2wyIFdIRVJFIHNsMi5vYmpv aWQ9Yy5vaWQgQU5EIHNsMi5vYmpzdWJpZD0wKSBBUyBwcm92aWRlcnMKKyAg ICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAn LCcpIEZST00gJ3NlY3VyaXR5X2JhcnJpZXI9KFthLXp8MC05XSopJykgQVMg c2VjdXJpdHlfYmFycmllcgorRlJPTSBwZ19jbGFzcyBjCisgICAgTEVGVCBP VVRFUiBKT0lOIHBnX25hbWVzcGFjZSBuc3Agb24gbnNwLm9pZCA9IGMucmVs bmFtZXNwYWNlCisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3RhYmxlc3BhY2Ug c3BjIG9uIHNwYy5vaWQ9Yy5yZWx0YWJsZXNwYWNlCisgICAgTEVGVCBPVVRF UiBKT0lOIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1jLm9p ZCBhbmQgZGVzLm9ianN1YmlkPTAgQU5EIGRlcy5jbGFzc29pZD0ncGdfY2xh c3MnOjpyZWdjbGFzcykKKyAgICAgICAgV0hFUkUgKChjLnJlbGhhc3J1bGVz IEFORCAoRVhJU1RTICgKKyAgICAgICAgICAgIFNFTEVDVCByLnJ1bGVuYW1l IEZST00gcGdfcmV3cml0ZSByCisgICAgICAgICAgICAgICAgV0hFUkUgKChy LmV2X2NsYXNzID0gYy5vaWQpCisgICAgICAgICAgICAgICAgICAgIEFORCAo YnBjaGFyKHIuZXZfdHlwZSkgPSAnMSc6OmJwY2hhcikpICkpKSBPUiAoYy5y ZWxraW5kID0gJ3YnOjpjaGFyKSkKK3slIGlmICh2aWQgYW5kIGRhdGxhc3Rz eXNvaWQpICV9CisgICAgICAgIEFORCBjLm9pZCA9IHt7dmlkfX06Om9pZAor eyUgZWxpZiBzY2lkICV9CisgICAgICAgIEFORCBjLnJlbG5hbWVzcGFjZSA9 IHt7c2NpZH19OjpvaWQgT1JERVIgQlkgYy5yZWxuYW1lCit7JSBlbmRpZiAl fQorCit7JSBlbGlmIHR5cGUgPT0gJ3JvbGVzJyAlfQorU0VMRUNUIHByLnJv bG5hbWUgRlJPTSBwZ19yb2xlcyBwciBXSEVSRSBwci5yb2xjYW5sb2dpbiBP UkRFUiBCWSBwci5yb2xuYW1lCisKK3slIGVsaWYgdHlwZSA9PSAnc2NoZW1h cycgJX0KK1NFTEVDVAorICAgIG5zcC5uc3BuYW1lCitGUk9NCisgICAgcGdf bmFtZXNwYWNlIG5zcAorV0hFUkUKKyAgICAobnNwLm5zcG5hbWUgTk9UIExJ S0UgRSdwZ1xcXyUnCisgICAgICAgIEFORCBuc3AubnNwbmFtZSAhPSAnaW5m b3JtYXRpb25fc2NoZW1hJykKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuMl9w bHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0 ZXMvdmlld3Mvc3FsLzkuMl9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI1ODYzMgotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9z cWwvOS4yX3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDgxIEBACit7Iz09 PT09PT09PT09PT09PT09PT09PT09PT09PT1VcGRhdGUgdmlldz09PT09PT09 PT09PT09PT09PT09PT09PT0jfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJp dHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3Mv cHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpZiBkYXRh ICV9Cit7JSBzZXQgdmlld19uYW1lID0gZGF0YS5uYW1lIGlmIGRhdGEubmFt ZSBlbHNlIG9fZGF0YS5uYW1lICV9Cit7JSBzZXQgdmlld19zY2hlbWEgPSBk YXRhLnNjaGVtYSBpZiBkYXRhLnNjaGVtYSBlbHNlIG9fZGF0YS5zY2hlbWEg JX0KK3slIHNldCBkZWYgPSBkYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7Jykg aWYgZGF0YS5kZWZpbml0aW9uICV9Cit7JSBpZiBkYXRhLm5hbWUgYW5kIGRh dGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfQorQUxURVIgVklFVyB7eyBjb25u fHF0SWRlbnQob19kYXRhLnNjaGVtYSwgb19kYXRhLm5hbWUpIH19CisgICAg UkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUg ZW5kaWYgJX0KK3slIGlmIGRhdGEuc2NoZW1hIGFuZCBkYXRhLnNjaGVtYSAh PSBvX2RhdGEuc2NoZW1hICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVu dChvX2RhdGEuc2NoZW1hLCB2aWV3X25hbWUgKSB9fQorICAgIFNFVCBTQ0hF TUEge3sgZGF0YS5zY2hlbWEgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0 YS5vd25lciBhbmQgZGF0YS5vd25lciAhPSBvX2RhdGEub3duZXIgJX0KK0FM VEVSIFRBQkxFIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19u YW1lKSB9fQorICAgIE9XTkVSIFRPIHt7IGRhdGEub3duZXIgfX07Cit7JSBl bmRpZiAlfQoreyUgaWYgZGVmIGFuZCBkZWYgIT0gb19kYXRhLmRlZmluaXRp b24ucnN0cmlwKCc7JykgJX0KK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcge3sg Y29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19Cit7JSBp ZiAoZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9 IG9fZGF0YS5jaGVja19vcHRpb24pCisgICAgb3IgKGRhdGEuc2VjdXJpdHlf YmFycmllciBhbmQgZGF0YS5zZWN1cml0eV9iYXJyaWVyICE9IG9fZGF0YS5z ZWN1cml0eV9iYXJyaWVyKSAlfQorICAgIFdJVEggKHslIGlmIChkYXRhLmNo ZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gJ25vJykgJX1j aGVja19vcHRpb249e3sgZGF0YS5jaGVja19vcHRpb24gfX17JSBlbmRpZiAl fXt7JywgJyBpZiBkYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19v cHRpb24gIT0gJ25vJyBhbmQgZGF0YS5zZWN1cml0eV9iYXJyaWVyIH19eyUg aWYgZGF0YS5zZWN1cml0eV9iYXJyaWVyICV9c2VjdXJpdHlfYmFycmllcj17 eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgfX17JSBlbmRpZiAlfSkKK3slIGVu ZGlmICV9CisgICAgQVN7eyBkZWYgfX07Cit7JSBlbHNlICV9Cit7JSBpZiAo ZGF0YS5zZWN1cml0eV9iYXJyaWVyIGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJp ZXIgIT0gIG9fZGF0YS5zZWN1cml0eV9iYXJyaWVyKSAlfQorQUxURVIgVklF VyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0K KyAgICBTRVQgKHNlY3VyaXR5X2JhcnJpZXI9e3sgZGF0YS5zZWN1cml0eV9i YXJyaWVyIH19KTsKK3slIGVuZGlmICV9Cit7JSBpZiAoZGF0YS5jaGVja19v cHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9IG9fZGF0YS5jaGVja19v cHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9ICdubycpICV9CitBTFRF UiBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1l KSB9fQorICAgIFNFVCAoY2hlY2tfb3B0aW9uPXt7IGRhdGEuY2hlY2tfb3B0 aW9uIH19KTsKK3slIGVsaWYgKGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRh LmNoZWNrX29wdGlvbiAhPSBvX2RhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRh LmNoZWNrX29wdGlvbiA9PSAnbm8nKSAlfQorQUxURVIgVklFVyB7eyBjb25u fHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0gUkVTRVQgKGNo ZWNrX29wdGlvbik7Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KK3slIGlm IGRhdGEuY29tbWVudCBhbmQgZGF0YS5jb21tZW50ICE9IG9fZGF0YS5jb21t ZW50ICV9CitDT01NRU5UIE9OIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdf c2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAgSVMge3sgZGF0YS5jb21tZW50 fHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVy YXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxlZ2VzICN9Cit7JSBpZiBk YXRhLmRhdGFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuZGF0YWNs ICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5kZWxldGVkICV9Cit7 eyBQUklWSUxFR0UuUkVTRVRBTEwoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFu dGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEuZGF0YWNs ICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5jaGFuZ2VkICV9Cit7 eyBQUklWSUxFR0UuUkVTRVRBTEwoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFu dGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hKSB9fQore3sgUFJJVklMRUdF LkFQUExZKGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1l LCBkYXRhLnNjaGVtYSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhf Z3JhbnQpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAn YWRkZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRh LmRhdGFjbC5hZGRlZCAlfQore3sgUFJJVklMRUdFLkFQUExZKGNvbm4sICdU QUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNjaGVtYSwg cHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQpIH19Cit7JSBl bmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyMgVGhlIFNR TCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBjaGFuZ2UgU2VjdXJpdHkgTGFiZWwg I30KK3slIGlmIGRhdGEuc2VjbGFiZWxzIGlzIG5vdCBub25lIGFuZCBkYXRh LnNlY2xhYmVsc3xsZW5ndGggPiAwICV9Cit7JSBzZXQgc2VjbGFiZWxzID0g ZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBzZWNsYWJl bHMgYW5kIHNlY2xhYmVscy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KK3slIGZv ciByIGluIHNlY2xhYmVscy5kZWxldGVkICV9Cit7eyBTRUNMQUJMRS5EUk9Q KGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyKSB9fQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBzZWNs YWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxsZW5ndGggPiAwICV9Cit7JSBm b3IgciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0KK3t7IFNFQ0xBQkxFLkFQUExZ KGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3Vy aXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUg aWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmNoYW5n ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5n ZWQgJX0KK3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdWSUVXJywgZGF0YS5u YW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9fQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMv dmlld3Mvc3FsLzkuMl9wbHVzL3ZpZXdfaWQuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjJfcGx1cy92aWV3X2lk LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGZm MDRlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL3ZpZXdzL3NxbC85LjJfcGx1cy92aWV3X2lkLnNxbApAQCAt MCwwICsxLDQgQEAKK3sjIEJlbG93IHdpbGwgcHJvdmlkZSB2aWV3IGlkIGZv ciBuZXdseSBjcmVhdGVkIHZpZXcgI30KK3slIGlmIGRhdGEgJX0KK1NFTEVD VCBjLm9pZCBGUk9NIHBnX2NsYXNzIGMgV0hFUkUgYy5yZWxuYW1lID0gJ3t7 IGRhdGEubmFtZSB9fSc7Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjNfcGx1 cy9hY2wuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXdzL3NxbC85LjNfcGx1cy9hY2wuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmI2MGJmYTgKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuM19w bHVzL2FjbC5zcWwKQEAgLTAsMCArMSwzMCBAQAoreyM9PT09PT09PT09PT09 PT09PT09PT09PT09PT09R2V0IEFDTHM9PT09PT09PT09PT09PT09PT09PT09 PT09I30KK3slIGlmIHZpZCAlfQorU0VMRUNUCisgICAgJ2RhdGFjbCcgYXMg ZGVmdHlwZSwgQ09BTEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycpIGdyYW50 ZWUsCisgICAgZy5yb2xuYW1lIGdyYW50b3IsIGFycmF5X2FnZyhwcml2aWxl Z2VfdHlwZSkgYXMgcHJpdmlsZWdlcywKKyAgICBhcnJheV9hZ2coaXNfZ3Jh bnRhYmxlKSBhcyBncmFudGFibGUKK0ZST00KKyAgICAoU0VMRUNUCisgICAg ICAgIGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50YWJsZSwKKyAg ICAgICAgQ0FTRSBkLnByaXZpbGVnZV90eXBlCisgICAgICAgIFdIRU4gJ0RF TEVURScgVEhFTiAnZCcKKyAgICAgICAgV0hFTiAnSU5TRVJUJyBUSEVOICdh JworICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4JworICAgICAg ICBXSEVOICdTRUxFQ1QnIFRIRU4gJ3InCisgICAgICAgIFdIRU4gJ1RSSUdH RVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1VQREFURScgVEhFTiAndycK KyAgICAgICAgRUxTRSAnVU5LTk9XTicKKyAgICAgICAgRU5EIEFTIHByaXZp bGVnZV90eXBlCisgICAgRlJPTQorICAgICAgICAoU0VMRUNUIHJlbGFjbCBG Uk9NIHBnX2NsYXNzIGNsCisgICAgICAgICAgICBMRUZUIE9VVEVSIEpPSU4g cGdfc2hkZXNjcmlwdGlvbiBkZXNjciBPTiAoCisgICAgICAgICAgICBjbC5v aWQ9ZGVzY3Iub2Jqb2lkIEFORCBkZXNjci5jbGFzc29pZD0ncGdfY2xhc3Mn OjpyZWdjbGFzcykKKyAgV0hFUkUgY2wub2lkID0ge3sgdmlkIH19OjpPSUQg QU5EIHJlbGtpbmQgPSAndicKKyAgICAgICAgKSBhY2wsCisgICAgICAgIGFj bGV4cGxvZGUocmVsYWNsKSBkCisgICAgICAgICkgZAorICAgIExFRlQgSk9J TiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9IGcub2lk KQorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGd0IE9OIChk LmdyYW50ZWUgPSBndC5vaWQpCitHUk9VUCBCWSBnLnJvbG5hbWUsIGd0LnJv bG5hbWUKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuM19wbHVzL2JhY2tlbmRf c3VwcG9ydC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMv dmlld3Mvc3FsLzkuM19wbHVzL2JhY2tlbmRfc3VwcG9ydC5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWIzOWNhYwotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3cy9zcWwvOS4zX3BsdXMvYmFja2VuZF9zdXBwb3J0LnNxbApAQCAtMCww ICsxLDE4IEBACitTRUxFQ1QKKyBDQVNFIFdIRU4gbnNwLm5zcG5hbWUgSU4g KCdzeXMnLCAnZGJvJywgJ2luZm9ybWF0aW9uX3NjaGVtYScpIFRIRU4gdHJ1 ZSBFTFNFIGZhbHNlIEVORCBBUyBkYlN1cHBvcnQKK0ZST00gcGdfbmFtZXNw YWNlIG5zcAorV0hFUkUgbnNwLm9pZD17e3NjaWR9fTo6aW50CitBTkQgKAor CShuc3BuYW1lID0gJ3BnX2NhdGFsb2cnIEFORCBFWElTVFMKKwkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKFNFTEVDVCAxIEZST00gcGdfY2xh c3MgV0hFUkUgcmVsbmFtZSA9ICdwZ19jbGFzcycgQU5EIHJlbG5hbWVzcGFj ZSA9IG5zcC5vaWQgTElNSVQgMSkpCisJT1IgKG5zcG5hbWUgPSAncGdhZ2Vu dCcgQU5EIEVYSVNUUworCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoU0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3Bn YV9qb2InIEFORCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEpKQor CU9SIChuc3BuYW1lID0gJ2luZm9ybWF0aW9uX3NjaGVtYScgQU5EIEVYSVNU UworCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU0VMRUNUIDEg RlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3RhYmxlcycgQU5EIHJl bG5hbWVzcGFjZSA9IG5zcC5vaWQgTElNSVQgMSkpCisJT1IgKG5zcG5hbWUg TElLRSAnXyUnIEFORCBFWElTVFMKKwkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKFNFTEVDVCAxIEZST00gcGdfcHJvYyBXSEVSRSBwcm9uYW1l PSdzbG9ueXZlcnNpb24nIEFORCBwcm9uYW1lc3BhY2UgPSBuc3Aub2lkIExJ TUlUIDEpKQorKQorQU5ECisgbnNwbmFtZSBOT1QgTElLRSBFJ3BnXFx0ZW1w XFwlJworQU5ECisgbnNwbmFtZSBOT1QgTElLRSBFJ3BnXFx0b2FzdF90ZW1w XFwlJwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL3ZpZXdzL3NxbC85LjNfcGx1cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjNfcGx1cy9jcmVh dGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEz NDVlMTUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuM19wbHVzL2NyZWF0ZS5zcWwKQEAg LTAsMCArMSwyNSBAQAoreyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09 Q3JlYXRlIG5ldyB2aWV3PT09PT09PT09PT09PT09PT09PT09PT09PSN9Cit7 JSBpZiBkaXNwbGF5X2NvbW1lbnRzICV9CistLSBWaWV3OiB7eyBjb25ufHF0 SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKworLS0gRFJPUCBW SUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9 fTsKKworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEubmFtZSBhbmQgZGF0YS5z Y2hlbWEgYW5kIGRhdGEuZGVmaW5pdGlvbiAlfQorQ1JFQVRFIE9SIFJFUExB Q0UgVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFt ZSkgfX0KK3slIGlmICgoZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hl Y2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25vJykgb3IgZGF0YS5zZWN1cml0eV9i YXJyaWVyKSAlfQorV0lUSCAoeyUgaWYgZGF0YS5jaGVja19vcHRpb24gYW5k IGRhdGEuY2hlY2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25vJyAlfQorY2hlY2tf b3B0aW9uPXt7IGRhdGEuY2hlY2tfb3B0aW9uIH19eyUgZW5kaWYgJX17eyAn LCAnIGlmIGRhdGEuY2hlY2tfb3B0aW9uIGFuZAorZGF0YS5jaGVja19vcHRp b24ubG93ZXIoKSAhPSAnbm8nIGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIg ZWxzZSAnJyB9fXslIGlmIGRhdGEuc2VjdXJpdHlfYmFycmllciAlfQorc2Vj dXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgfX17JSBl bmRpZiAlfSl7JSBlbmRpZiAlfSBBUwore3sgZGF0YS5kZWZpbml0aW9uLnJz dHJpcCgnOycpIH19OworeyUgaWYgZGF0YS5vd25lciAlfQorCitBTFRFUiBU QUJMRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkg fX0KKyAgT1dORVIgVE8ge3sgZGF0YS5vd25lciB9fTsKK3slIGVuZGlmICV9 Cit7JSBpZiBkYXRhLmNvbW1lbnQgJX0KK0NPTU1FTlQgT04gVklFVyB7eyBj b25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKyAgICBJ UyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19OworeyUgZW5kaWYgJX0K K3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuM19wbHVzL2RlbGV0ZS5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuM19w bHVzL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uMDQ0ZmY3MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4zX3BsdXMvZGVsZXRl LnNxbApAQCAtMCwwICsxLDEyIEBACit7Iz09PT09PT09PT09PT09PT09PT09 PT09PT09PT1Ecm9wL0Nhc2NhZGUgdmlldyBieSBuYW1lPT09PT09PT09PT09 PT09PT09PT09PT09PSN9Cit7JSBpZiB2aWQgJX0KK1NFTEVDVAorICAgIGMu cmVsbmFtZSBBUyBuYW1lLCBuc3AubnNwbmFtZQorRlJPTQorICAgIHBnX2Ns YXNzIGMKKyAgICBMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBvbiBjLnJl bG5hbWVzcGFjZSA9IG5zcC5vaWQKK1dIRVJFCisgICAgYy5yZWxmaWxlbm9k ZSA9IHt7IHZpZCB9fTsKK3slIGVsaWYgKG5hbWUgYW5kIG5zcG5hbWUpICV9 CitEUk9QIFZJRVcge3tuc3BuYW1lfX0ue3sgY29ubnxxdElkZW50KG5hbWUp IH19IHslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERSB7JSBlbmRpZiAlfQoreyUg ZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3cy9zcWwvOS4zX3BsdXMvZ3JhbnQuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjNfcGx1cy9n cmFudC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u OWZhNzE4MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4zX3BsdXMvZ3JhbnQuc3FsCkBA IC0wLDAgKzEsMTQgQEAKK3sjPT09PT1HcmFudCBQZXJtaXNzaW9ucyB0byBV c2VyIFJvbGUgb24gVmlld3MvVGFibGVzPT09PSN9Cit7JSBpbXBvcnQgJ21h Y3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBv cnQgJ21hY3Jvcy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0K K3sjIFdlIHdpbGwgZ2VuZXJhdGUgU2VjdXJpdHkgTGFiZWwgU1FMIHVzaW5n IG1hY3JvICN9Cit7JSBpZiBkYXRhLnNlY2xhYmVscyAlfQoreyUgZm9yIHIg aW4gZGF0YS5zZWNsYWJlbHMgJX0KK3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4s ICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xh YmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0 YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsICV9Cit7 eyBQUklWSUxFR0UuQVBQTFkoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVl LCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hLCBwcml2LndpdGhvdXRfZ3JhbnQs IHByaXYud2l0aF9ncmFudCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYg JX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy92aWV3cy9zcWwvOS4zX3BsdXMvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuM19wbHVzL3By b3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmY0ZTM0OTgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuM19wbHVzL3Byb3BlcnRp ZXMuc3FsCkBAIC0wLDAgKzEsNjAgQEAKK3slIGlmICh2aWQgYW5kIGRhdGxh c3RzeXNvaWQpIG9yIHNjaWQgJX0KK1NFTEVDVCBjLm9pZCwgYy54bWluLCBj LnJlbG5hbWUgQVMgbmFtZSwgYy5yZWx0YWJsZXNwYWNlIEFTIHNwY29pZCwg Yy5yZWxraW5kLCBuc3AubnNwbmFtZSBBUyBzY2hlbWEsCisgICAgYy5yZWxp c3BvcHVsYXRlZCBBUyBpc3BvcHVsYXRlZCwgc3BjLnNwY25hbWUsIHBnX2dl dF91c2VyYnlpZChjLnJlbG93bmVyKQorICAgIEFTIG93bmVyLCBjLnJlbGFj bCwgZGVzY3JpcHRpb24sIHBnX2dldF92aWV3ZGVmKGMub2lkLCB0cnVlKSBB UyBkZWZpbml0aW9uLAorICAgIHsjPT09PT09PT09PT09PUNoZWNrcyBpZiBp dCBpcyBzeXN0ZW0gdmlldz09PT09PT09PT09PT09PT0jfQorICAgIHslIGlm IHZpZCBhbmQgZGF0bGFzdHN5c29pZCAlfQorICAgIENBU0UgV0hFTiB7e3Zp ZH19IDw9IHt7ZGF0bGFzdHN5c29pZH19IFRIRU4gVHJ1ZSBFTFNFIEZhbHNl IEVORCBBUyBzeXN0ZW1fdmlldywKKyAgICB7JSBlbmRpZiAlfQorICAgIHsj PT09PT09PT09PT09PUNoZWNrcyBpZiBpdCBpcyBtYXRlcmlhbGl6ZWQgdmll dz09PT09PT09I30KKyAgICBDQVNFIFdIRU4gYy5yZWxraW5kID0gJ20nIFRI RU4gVHJ1ZSBFTFNFIEZhbHNlIEVORCBBcyBtX3ZpZXcsCisgICAgKFNFTEVD VCBhcnJheV9hZ2cobGFiZWwpIEZST00gcGdfc2VjbGFiZWxzIHNsMSBXSEVS RSBzbDEub2Jqb2lkPWMub2lkIEFORCBzbDEub2Jqc3ViaWQ9MCkgQVMgbGFi ZWxzLAorICAgIChTRUxFQ1QgYXJyYXlfYWdnKHByb3ZpZGVyKSBGUk9NIHBn X3NlY2xhYmVscyBzbDIgV0hFUkUgc2wyLm9iam9pZD1jLm9pZCBBTkQgc2wy Lm9ianN1YmlkPTApIEFTIHByb3ZpZGVycworICAgICwgc3Vic3RyaW5nKGFy cmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnc2VjdXJp dHlfYmFycmllcj0oW2EtenwwLTldKiknKSBBUyBzZWN1cml0eV9iYXJyaWVy CisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9u cywgJywnKSBGUk9NICdmaWxsZmFjdG9yPShbMC05XSopJykgQVMgZmlsbGZh Y3RvcgorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9w dGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9lbmFibGVkPShbYS16fDAt OV0qKScpIEFTIGF1dG92YWN1dW1fZW5hYmxlZAorICAgICwgc3Vic3RyaW5n KGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0 b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkPShbMC05XSopJykgQVMgYXV0b3Zh Y3V1bV92YWN1dW1fdGhyZXNob2xkCisgICAgLCBzdWJzdHJpbmcoYXJyYXlf dG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVt X3ZhY3V1bV9zY2FsZV9mYWN0b3I9KFswLTldKlsuXVswLTldKiknKSBBUyBh dXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3IKKyAgICAsIHN1YnN0cmlu ZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1 dG92YWN1dW1fYW5hbHl6ZV90aHJlc2hvbGQ9KFswLTldKiknKSBBUyBhdXRv dmFjdXVtX2FuYWx5emVfdGhyZXNob2xkCisgICAgLCBzdWJzdHJpbmcoYXJy YXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFj dXVtX2FuYWx5emVfc2NhbGVfZmFjdG9yPShbMC05XSpbLl1bMC05XSopJykg QVMgYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2ZhY3RvcgorICAgICwgc3Vi c3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykgRlJP TSAnYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheT0oWzAtOV0qKScpIEFT IGF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXkKKyAgICAsIHN1YnN0cmlu ZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1 dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQ9KFswLTldKiknKSBBUyBhdXRv dmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0CisgICAgLCBzdWJzdHJpbmcoYXJy YXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFj dXVtX2ZyZWV6ZV9taW5fYWdlPShbMC05XSopJykgQVMgYXV0b3ZhY3V1bV9m cmVlemVfbWluX2FnZQorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmlu ZyhjLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVf bWF4X2FnZT0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fZnJlZXplX21heF9h Z2UKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRp b25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fZnJlZXplX3RhYmxlX2FnZT0o WzAtOV0qKScpIEFTIGF1dG92YWN1dW1fZnJlZXplX3RhYmxlX2FnZQorICAg ICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywg JywnKSBGUk9NICdhdXRvdmFjdXVtX2VuYWJsZWQ9KFthLXp8MC05XSopJykg QVMgdG9hc3RfYXV0b3ZhY3V1bV9lbmFibGVkCisgICAgLCBzdWJzdHJpbmco YXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1 dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZD0oWzAtOV0qKScpIEFTIHRvYXN0 X2F1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZAorICAgICwgc3Vic3RyaW5n KGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKSBGUk9NICdh dXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3I9KFswLTldKlsuXVswLTld KiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3IK KyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlv bnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9hbmFseXplX3RocmVzaG9sZD0o WzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fYW5hbHl6ZV90aHJlc2hv bGQKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9w dGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2Zh Y3Rvcj0oWzAtOV0qWy5dWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1f YW5hbHl6ZV9zY2FsZV9mYWN0b3IKKyAgICAsIHN1YnN0cmluZyhhcnJheV90 b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1 bV92YWN1dW1fY29zdF9kZWxheT0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92 YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXkKKyAgICAsIHN1YnN0cmluZyhhcnJh eV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3Zh Y3V1bV92YWN1dW1fY29zdF9saW1pdD0oWzAtOV0qKScpIEFTIHRvYXN0X2F1 dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQKKyAgICAsIHN1YnN0cmluZyhh cnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0 b3ZhY3V1bV9mcmVlemVfbWluX2FnZT0oWzAtOV0qKScpIEFTIHRvYXN0X2F1 dG92YWN1dW1fZnJlZXplX21pbl9hZ2UKKyAgICAsIHN1YnN0cmluZyhhcnJh eV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3Zh Y3V1bV9mcmVlemVfbWF4X2FnZT0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92 YWN1dW1fZnJlZXplX21heF9hZ2UKKyAgICAsIHN1YnN0cmluZyhhcnJheV90 b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1 bV9mcmVlemVfdGFibGVfYWdlPShbMC05XSopJykgQVMgdG9hc3RfYXV0b3Zh Y3V1bV9mcmVlemVfdGFibGVfYWdlCisgICAgLCBjLnJlbG9wdGlvbnMgQVMg cmVsb3B0aW9ucywgdHN0LnJlbG9wdGlvbnMgQVMgdG9hc3RfcmVsb3B0aW9u cworICAgICwgKENBU0UgV0hFTiBjLnJlbHRvYXN0cmVsaWQgPSAwIFRIRU4g ZmFsc2UgRUxTRSB0cnVlIEVORCkgQVMgaGFzdG9hc3R0YWJsZQorRlJPTSBw Z19jbGFzcyBjCisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX25hbWVzcGFjZSBu c3Agb24gbnNwLm9pZCA9IGMucmVsbmFtZXNwYWNlCisgICAgTEVGVCBPVVRF UiBKT0lOIHBnX3RhYmxlc3BhY2Ugc3BjIG9uIHNwYy5vaWQ9Yy5yZWx0YWJs ZXNwYWNlCisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX2Rlc2NyaXB0aW9uIGRl cyBPTiAoZGVzLm9iam9pZD1jLm9pZCBhbmQgZGVzLm9ianN1YmlkPTAgQU5E IGRlcy5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykKKyAgICBMRUZU IE9VVEVSIEpPSU4gcGdfY2xhc3MgdHN0IE9OIHRzdC5vaWQgPSBjLnJlbHRv YXN0cmVsaWQKKyAgICAgICAgV0hFUkUgKChjLnJlbGhhc3J1bGVzIEFORCAo RVhJU1RTICgKKyAgICAgICAgICAgIFNFTEVDVCByLnJ1bGVuYW1lIEZST00g cGdfcmV3cml0ZSByCisgICAgICAgICAgICAgICAgV0hFUkUgKChyLmV2X2Ns YXNzID0gYy5vaWQpCisgICAgICAgICAgICAgICAgICAgIEFORCAoYnBjaGFy KHIuZXZfdHlwZSkgPSAnMSc6OmJwY2hhcikpICkpKSBPUiAoYy5yZWxraW5k ID0gJ3YnOjpjaGFyKSkKK3slIGlmICh2aWQgYW5kIGRhdGxhc3RzeXNvaWQp ICV9CisgICAgICAgIEFORCBjLm9pZCA9IHt7dmlkfX06Om9pZAoreyUgZWxp ZiBzY2lkICV9CisgICAgICAgIEFORCBjLnJlbG5hbWVzcGFjZSA9IHt7c2Np ZH19OjpvaWQgT1JERVIgQlkgYy5yZWxuYW1lCit7JSBlbmRpZiAlfQorCit7 JSBlbGlmIHR5cGUgPT0gJ3JvbGVzJyAlfQorU0VMRUNUIHByLnJvbG5hbWUg RlJPTSBwZ19yb2xlcyBwciBXSEVSRSBwci5yb2xjYW5sb2dpbiBPUkRFUiBC WSBwci5yb2xuYW1lCisKK3slIGVsaWYgdHlwZSA9PSAnc2NoZW1hcycgJX0K K1NFTEVDVCBuc3AubnNwbmFtZQorICAgIEZST00gcGdfbmFtZXNwYWNlIG5z cAorV0hFUkUgKG5zcC5uc3BuYW1lIE5PVCBMSUtFIEUncGdcXF8lJworICAg IEFORCBuc3AubnNwbmFtZSAhPSAnaW5mb3JtYXRpb25fc2NoZW1hJykKK3sl IGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90 ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuM19wbHVzL3VwZGF0ZS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuM19wbHVz L3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uZDI1ODYzMgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4zX3BsdXMvdXBkYXRlLnNx bApAQCAtMCwwICsxLDgxIEBACit7Iz09PT09PT09PT09PT09PT09PT09PT09 PT09PT1VcGRhdGUgdmlldz09PT09PT09PT09PT09PT09PT09PT09PT0jfQor eyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJM RSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvcHJpdmlsZWdlLm1hY3JvcycgYXMg UFJJVklMRUdFICV9Cit7JSBpZiBkYXRhICV9Cit7JSBzZXQgdmlld19uYW1l ID0gZGF0YS5uYW1lIGlmIGRhdGEubmFtZSBlbHNlIG9fZGF0YS5uYW1lICV9 Cit7JSBzZXQgdmlld19zY2hlbWEgPSBkYXRhLnNjaGVtYSBpZiBkYXRhLnNj aGVtYSBlbHNlIG9fZGF0YS5zY2hlbWEgJX0KK3slIHNldCBkZWYgPSBkYXRh LmRlZmluaXRpb24ucnN0cmlwKCc7JykgaWYgZGF0YS5kZWZpbml0aW9uICV9 Cit7JSBpZiBkYXRhLm5hbWUgYW5kIGRhdGEubmFtZSAhPSBvX2RhdGEubmFt ZSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQob19kYXRhLnNjaGVt YSwgb19kYXRhLm5hbWUpIH19CisgICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJ ZGVudChkYXRhLm5hbWUpIH19OworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEu c2NoZW1hIGFuZCBkYXRhLnNjaGVtYSAhPSBvX2RhdGEuc2NoZW1hICV9CitB TFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudChvX2RhdGEuc2NoZW1hLCB2aWV3 X25hbWUgKSB9fQorICAgIFNFVCBTQ0hFTUEge3sgZGF0YS5zY2hlbWEgfX07 Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5vd25lciBhbmQgZGF0YS5vd25l ciAhPSBvX2RhdGEub3duZXIgJX0KK0FMVEVSIFRBQkxFIHt7IGNvbm58cXRJ ZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIE9XTkVSIFRP IHt7IGRhdGEub3duZXIgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGVmIGFu ZCBkZWYgIT0gb19kYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7JykgJX0KK0NS RUFURSBPUiBSRVBMQUNFIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2No ZW1hLCB2aWV3X25hbWUpIH19Cit7JSBpZiAoZGF0YS5jaGVja19vcHRpb24g YW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9IG9fZGF0YS5jaGVja19vcHRpb24p CisgICAgb3IgKGRhdGEuc2VjdXJpdHlfYmFycmllciBhbmQgZGF0YS5zZWN1 cml0eV9iYXJyaWVyICE9IG9fZGF0YS5zZWN1cml0eV9iYXJyaWVyKSAlfQor ICAgIFdJVEggKHslIGlmIChkYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5j aGVja19vcHRpb24gIT0gJ25vJykgJX1jaGVja19vcHRpb249e3sgZGF0YS5j aGVja19vcHRpb24gfX17JSBlbmRpZiAlfXt7JywgJyBpZiBkYXRhLmNoZWNr X29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gJ25vJyBhbmQgZGF0 YS5zZWN1cml0eV9iYXJyaWVyIH19eyUgaWYgZGF0YS5zZWN1cml0eV9iYXJy aWVyICV9c2VjdXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJp ZXIgfX17JSBlbmRpZiAlfSkKK3slIGVuZGlmICV9CisgICAgQVN7eyBkZWYg fX07Cit7JSBlbHNlICV9Cit7JSBpZiAoZGF0YS5zZWN1cml0eV9iYXJyaWVy IGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgIT0gIG9fZGF0YS5zZWN1cml0 eV9iYXJyaWVyKSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQodmll d19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBTRVQgKHNlY3VyaXR5X2Jh cnJpZXI9e3sgZGF0YS5zZWN1cml0eV9iYXJyaWVyIH19KTsKK3slIGVuZGlm ICV9Cit7JSBpZiAoZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tf b3B0aW9uICE9IG9fZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tf b3B0aW9uICE9ICdubycpICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVu dCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIFNFVCAoY2hlY2tf b3B0aW9uPXt7IGRhdGEuY2hlY2tfb3B0aW9uIH19KTsKK3slIGVsaWYgKGRh dGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAhPSBvX2Rh dGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiA9PSAnbm8n KSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEs IHZpZXdfbmFtZSkgfX0gUkVTRVQgKGNoZWNrX29wdGlvbik7Cit7JSBlbmRp ZiAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuY29tbWVudCBhbmQgZGF0 YS5jb21tZW50ICE9IG9fZGF0YS5jb21tZW50ICV9CitDT01NRU5UIE9OIFZJ RVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19 CisgICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsKK3slIGVu ZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5n ZSBwcml2aWxlZ2VzICN9Cit7JSBpZiBkYXRhLmRhdGFjbCAlfQoreyUgaWYg J2RlbGV0ZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBk YXRhLmRhdGFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxFR0UuUkVTRVRBTEwo Y29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEu c2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYg J2NoYW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBk YXRhLmRhdGFjbC5jaGFuZ2VkICV9Cit7eyBQUklWSUxFR0UuUkVTRVRBTEwo Y29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEu c2NoZW1hKSB9fQore3sgUFJJVklMRUdFLkFQUExZKGNvbm4sICdUQUJMRScs IHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNjaGVtYSwgcHJpdi53 aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQpIH19Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmICV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEuZGF0YWNs ICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5hZGRlZCAlfQore3sg UFJJVklMRUdFLkFQUExZKGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwg ZGF0YS5uYW1lLCBkYXRhLnNjaGVtYSwgcHJpdi53aXRob3V0X2dyYW50LCBw cml2LndpdGhfZ3JhbnQpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9 Cit7JSBlbmRpZiAlfQoreyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2ls bCBjaGFuZ2UgU2VjdXJpdHkgTGFiZWwgI30KK3slIGlmIGRhdGEuc2VjbGFi ZWxzIGlzIG5vdCBub25lIGFuZCBkYXRhLnNlY2xhYmVsc3xsZW5ndGggPiAw ICV9Cit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3sl IGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxl dGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5kZWxl dGVkICV9Cit7eyBTRUNMQUJMRS5EUk9QKGNvbm4sICdWSUVXJywgZGF0YS5u YW1lLCByLnByb3ZpZGVyKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAl fQoreyUgaWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5h ZGRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRk ZWQgJX0KK3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdWSUVXJywgZGF0YS5u YW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9fQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xh YmVscyBhbmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUg Zm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KK3t7IFNFQ0xBQkxFLkFQ UExZKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNl Y3VyaXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQor eyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuM19wbHVzL3Zp ZXdfaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXdzL3NxbC85LjNfcGx1cy92aWV3X2lkLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi42ZGZmMDRlCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85 LjNfcGx1cy92aWV3X2lkLnNxbApAQCAtMCwwICsxLDQgQEAKK3sjIEJlbG93 IHdpbGwgcHJvdmlkZSB2aWV3IGlkIGZvciBuZXdseSBjcmVhdGVkIHZpZXcg I30KK3slIGlmIGRhdGEgJX0KK1NFTEVDVCBjLm9pZCBGUk9NIHBnX2NsYXNz IGMgV0hFUkUgYy5yZWxuYW1lID0gJ3t7IGRhdGEubmFtZSB9fSc7Cit7JSBl bmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL3ZpZXdzL3NxbC85LjRfcGx1cy9hY2wuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjRfcGx1cy9hY2wu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwYzRj MDEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90 ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuNF9wbHVzL2FjbC5zcWwKQEAgLTAsMCAr MSwzNSBAQAoreyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09R2V0IEFD THM9PT09PT09PT09PT09PT09PT09PT09PT09I30KK3slIGlmIHZpZCAlfQor U0VMRUNUCisgICAgJ2RhdGFjbCcgYXMgZGVmdHlwZSwgQ09BTEVTQ0UoZ3Qu cm9sbmFtZSwgJ3B1YmxpYycpIGdyYW50ZWUsCisgICAgZy5yb2xuYW1lIGdy YW50b3IsIGFycmF5X2FnZyhwcml2aWxlZ2VfdHlwZSkgYXMgcHJpdmlsZWdl cywKKyAgICBhcnJheV9hZ2coaXNfZ3JhbnRhYmxlKSBhcyBncmFudGFibGUK K0ZST00KKyAgICAoU0VMRUNUCisgICAgICAgIGQuZ3JhbnRlZSwgZC5ncmFu dG9yLCBkLmlzX2dyYW50YWJsZSwKKyAgICAgICAgQ0FTRSBkLnByaXZpbGVn ZV90eXBlCisgICAgICAgIFdIRU4gJ0RFTEVURScgVEhFTiAnZCcKKyAgICAg ICAgV0hFTiAnSU5TRVJUJyBUSEVOICdhJworICAgICAgICBXSEVOICdSRUZF UkVOQ0VTJyBUSEVOICd4JworICAgICAgICBXSEVOICdTRUxFQ1QnIFRIRU4g J3InCisgICAgICAgIFdIRU4gJ1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAg IFdIRU4gJ1VQREFURScgVEhFTiAndycKKyAgICAgICAgRUxTRSAnVU5LTk9X TicKKyAgICAgICAgRU5EIEFTIHByaXZpbGVnZV90eXBlCisgICAgRlJPTQor ICAgICAgICAoU0VMRUNUCisgICAgICAgICAgICByZWxhY2wgRlJPTSBwZ19j bGFzcyBjbAorICAgICAgICAgTEVGVCBPVVRFUiBKT0lOCisgICAgICAgICAg ICBwZ19zaGRlc2NyaXB0aW9uIGRlc2NyCisgICAgICAgICBPTgorICAgICAg ICAgICAgKGNsLm9pZD1kZXNjci5vYmpvaWQgQU5EIGRlc2NyLmNsYXNzb2lk PSdwZ19jbGFzcyc6OnJlZ2NsYXNzKQorICAgICAgICAgV0hFUkUKKyAgICAg ICAgICAgIGNsLm9pZCA9IHt7IHZpZCB9fTo6T0lEIEFORCByZWxraW5kID0g J3YnCisgICAgICAgICkgYWNsLAorICAgICAgICBhY2xleHBsb2RlKHJlbGFj bCkgZAorICAgICAgICApIGQKK0xFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3Jv bGVzIGcgT04gKGQuZ3JhbnRvciA9IGcub2lkKQorTEVGVCBKT0lOIHBnX2Nh dGFsb2cucGdfcm9sZXMgZ3QgT04gKGQuZ3JhbnRlZSA9IGd0Lm9pZCkKK0dS T1VQIEJZCisgICAgZy5yb2xuYW1lLCBndC5yb2xuYW1lCit7JSBlbmRpZiAl fQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVz L3ZpZXdzL3NxbC85LjRfcGx1cy9iYWNrZW5kX3N1cHBvcnQuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjRfcGx1 cy9iYWNrZW5kX3N1cHBvcnQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmUzZjhmNGYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuNF9wbHVz L2JhY2tlbmRfc3VwcG9ydC5zcWwKQEAgLTAsMCArMSwyMCBAQAorU0VMRUNU CisgICAgQ0FTRSBXSEVOIG5zcC5uc3BuYW1lIElOICgnc3lzJywgJ2Ribycs ICdpbmZvcm1hdGlvbl9zY2hlbWEnKSBUSEVOIHRydWUgRUxTRSBmYWxzZSBF TkQgQVMgZGJTdXBwb3J0CitGUk9NCisgICAgcGdfbmFtZXNwYWNlIG5zcAor V0hFUkUKKyAgICBuc3Aub2lkPXt7c2NpZH19OjppbnQKK0FORCAoCisgICAg KG5zcG5hbWUgPSAncGdfY2F0YWxvZycgQU5EIEVYSVNUUworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX2Ns YXNzIFdIRVJFIHJlbG5hbWUgPSAncGdfY2xhc3MnIEFORCByZWxuYW1lc3Bh Y2UgPSBuc3Aub2lkIExJTUlUIDEpKQorICAgIE9SIChuc3BuYW1lID0gJ3Bn YWdlbnQnIEFORCBFWElTVFMKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoU0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1l ID0gJ3BnYV9qb2InIEFORCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlU IDEpKQorICAgIE9SIChuc3BuYW1lID0gJ2luZm9ybWF0aW9uX3NjaGVtYScg QU5EIEVYSVNUUworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChTRUxFQ1QgMSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAndGFi bGVzJyBBTkQgcmVsbmFtZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAxKSkKKyAg ICBPUiAobnNwbmFtZSBMSUtFICdfJScgQU5EIEVYSVNUUworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX3By b2MgV0hFUkUgcHJvbmFtZT0nc2xvbnl2ZXJzaW9uJyBBTkQgcHJvbmFtZXNw YWNlID0gbnNwLm9pZCBMSU1JVCAxKSkKKykKK0FORAorICAgIG5zcG5hbWUg Tk9UIExJS0UgRSdwZ1xcdGVtcFxcJScKK0FORAorICAgIG5zcG5hbWUgTk9U IExJS0UgRSdwZ1xcdG9hc3RfdGVtcFxcJScKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS40X3BsdXMv Y3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3cy9zcWwvOS40X3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi4yYWMxZTNhCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85 LjRfcGx1cy9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsMjUgQEAKK3sjPT09PT09 PT09PT09PT09PT09PT09PT09PT09PUNyZWF0ZSBuZXcgdmlldz09PT09PT09 PT09PT09PT09PT09PT09PT0jfQoreyUgaWYgZGlzcGxheV9jb21tZW50cyAl fQorLS0gVmlldzoge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRh Lm5hbWUpIH19CisKKy0tIERST1AgVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0 YS5zY2hlbWEsIGRhdGEubmFtZSkgfX07CisKK3slIGVuZGlmICV9Cit7JSBp ZiBkYXRhLm5hbWUgYW5kIGRhdGEuc2NoZW1hIGFuZCBkYXRhLmRlZmluaXRp b24gJX0KK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcge3sgY29ubnxxdElkZW50 KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19Cit7JSBpZiAoKGRhdGEuY2hl Y2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbi5sb3dlcigpICE9ICdu bycpIG9yIGRhdGEuc2VjdXJpdHlfYmFycmllcikgJX0KK1dJVEggKHslIGlm IGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbi5sb3dl cigpICE9ICdubycgJX0KK2NoZWNrX29wdGlvbj17eyBkYXRhLmNoZWNrX29w dGlvbiB9fXslIGVuZGlmICV9e3sgJywgJyBpZiBkYXRhLmNoZWNrX29wdGlv biBhbmQKK2RhdGEuY2hlY2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25vJyBhbmQg ZGF0YS5zZWN1cml0eV9iYXJyaWVyIGVsc2UgJycgfX17JSBpZiBkYXRhLnNl Y3VyaXR5X2JhcnJpZXIgJX0KK3NlY3VyaXR5X2JhcnJpZXI9e3sgZGF0YS5z ZWN1cml0eV9iYXJyaWVyIH19eyUgZW5kaWYgJX0peyUgZW5kaWYgJX0gQVMK K3t7IGRhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSB9fTsKK3slIGlmIGRh dGEub3duZXIgJX0KKworQUxURVIgVEFCTEUge3sgY29ubnxxdElkZW50KGRh dGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19CisgICAgT1dORVIgVE8ge3sgZGF0 YS5vd25lciB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmNvbW1lbnQg JX0KK0NPTU1FTlQgT04gVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hl bWEsIGRhdGEubmFtZSkgfX0KKyAgICBJUyB7eyBkYXRhLmNvbW1lbnR8cXRM aXRlcmFsIH19OworeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3Fs LzkuNF9wbHVzL2RlbGV0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90 ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuNF9wbHVzL2RlbGV0ZS5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTNhOWJkYgotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3cy9zcWwvOS40X3BsdXMvZGVsZXRlLnNxbApAQCAtMCwwICsxLDEzIEBA Cit7Iz09PT09PT09PT09PT09PT09PT09PT09PT09PT1Ecm9wL0Nhc2NhZGUg dmlldyBieSBuYW1lPT09PT09PT09PT09PT09PT09PT09PT09PSN9Cit7JSBp ZiB2aWQgJX0KK1NFTEVDVAorICAgIGMucmVsbmFtZSBBcyBuYW1lLCBuc3Au bnNwbmFtZQorRlJPTQorICAgIHBnX2NsYXNzIGMKK0xFRlQgSk9JTgorICAg IHBnX25hbWVzcGFjZSBuc3AgT04gYy5yZWxuYW1lc3BhY2UgPSBuc3Aub2lk CitXSEVSRQorICAgIGMucmVsZmlsZW5vZGUgPSB7eyB2aWQgfX07Cit7JSBl bGlmIChuYW1lIGFuZCBuc3BuYW1lKSAlfQorRFJPUCBWSUVXIHt7IGNvbm58 cXRJZGVudChuc3BuYW1lLCBuYW1lKSB9fSB7JSBpZiBjYXNjYWRlICV9IENB U0NBREUgeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuNF9w bHVzL2dyYW50LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy92aWV3cy9zcWwvOS40X3BsdXMvZ3JhbnQuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmYTcxODEKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3Fs LzkuNF9wbHVzL2dyYW50LnNxbApAQCAtMCwwICsxLDE0IEBACit7Iz09PT09 R3JhbnQgUGVybWlzc2lvbnMgdG8gVXNlciBSb2xlIG9uIFZpZXdzL1RhYmxl cz09PT0jfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBh cyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvcHJpdmlsZWdlLm1h Y3JvcycgYXMgUFJJVklMRUdFICV9Cit7IyBXZSB3aWxsIGdlbmVyYXRlIFNl Y3VyaXR5IExhYmVsIFNRTCB1c2luZyBtYWNybyAjfQoreyUgaWYgZGF0YS5z ZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2VjbGFiZWxzICV9Cit7 eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnVklFVycsIGRhdGEubmFtZSwgci5w cm92aWRlciwgci5zZWN1cml0eV9sYWJlbCkgfX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJp diBpbiBkYXRhLmRhdGFjbCAlfQore3sgUFJJVklMRUdFLkFQUExZKGNvbm4s ICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNjaGVt YSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQpIH19Cit7 JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuNF9wbHVzL3By b3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVz L3ZpZXdzL3NxbC85LjRfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTRkY2Y2Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdz L3NxbC85LjRfcGx1cy9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDY1IEBA Cit7Iz09PT09PT09PT09PT09PT09PT09PT09PT09PT1GZXRjaCBWaWV3IFBy b3BlcnRpZXM9PT09PT09PT09PT09PT09PT09PT09PT09I30KK3slIGlmICh2 aWQgYW5kIGRhdGxhc3RzeXNvaWQpIG9yIHNjaWQgJX0KK1NFTEVDVCBjLm9p ZCwgYy54bWluLCBjLnJlbG5hbWUgQVMgbmFtZSwgYy5yZWx0YWJsZXNwYWNl IEFTIHNwY29pZCwKKyAgICBjLnJlbGlzcG9wdWxhdGVkIEFTIGlzcG9wdWxh dGVkLCBzcGMuc3BjbmFtZSwgbnNwLm5zcG5hbWUgYXMgc2NoZW1hLAorICAg IHBnX2dldF91c2VyYnlpZChjLnJlbG93bmVyKSBBUyBvd25lciwgZGVzY3Jp cHRpb24gQVMgY29tbWVudCwKKyAgICBwZ19nZXRfdmlld2RlZihjLm9pZCwg dHJ1ZSkgQVMgZGVmaW5pdGlvbiwKKyAgICB7Iz09PT09PT09PT09PT1DaGVj a3MgaWYgaXQgaXMgc3lzdGVtIHZpZXc9PT09PT09PT09PT09PT09I30KKyAg ICB7JSBpZiB2aWQgYW5kIGRhdGxhc3RzeXNvaWQgJX0KKyAgICBDQVNFIFdI RU4ge3t2aWR9fSA8PSB7e2RhdGxhc3RzeXNvaWR9fSBUSEVOIFRydWUgRUxT RSBGYWxzZSBFTkQgQVMgc3lzdGVtX3ZpZXcsCisgICAgeyUgZW5kaWYgJX0K KyAgICB7Iz09PT09PT09PT09PT1DaGVja3MgaWYgaXQgaXMgbWF0ZXJpYWxp emVkIHZpZXc9PT09PT09PSN9CisgICAgQ0FTRSBXSEVOIGMucmVsa2luZCA9 ICdtJyBUSEVOIFRydWUgRUxTRSBGYWxzZSBFTkQgQXMgbV92aWV3LAorICAg IChTRUxFQ1QgYXJyYXlfYWdnKHByb3ZpZGVyIHx8ICc9JyB8fCBsYWJlbCkg RlJPTSBwZ19zZWNsYWJlbHMgc2wxIFdIRVJFIHNsMS5vYmpvaWQ9Yy5vaWQg QU5EIHNsMS5vYmpzdWJpZD0wKSBBUyBzZWNsYWJlbHMKKyAgICAsIHN1YnN0 cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpIEZST00g J2NoZWNrX29wdGlvbj0oW2Etel0qKScpIEFTIGNoZWNrX29wdGlvbgorICAg ICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcs JykgRlJPTSAnc2VjdXJpdHlfYmFycmllcj0oW2EtenwwLTldKiknKSBBUyBz ZWN1cml0eV9iYXJyaWVyCisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3Ry aW5nKGMucmVsb3B0aW9ucywgJywnKSBGUk9NICdmaWxsZmFjdG9yPShbMC05 XSopJykgQVMgZmlsbGZhY3RvcgorICAgICwgc3Vic3RyaW5nKGFycmF5X3Rv X3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9l bmFibGVkPShbYS16fDAtOV0qKScpIEFTIGF1dG92YWN1dW1fZW5hYmxlZAor ICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMs ICcsJykgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkPShbMC05 XSopJykgQVMgYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkCisgICAgLCBz dWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKSBG Uk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3I9KFswLTldKlsu XVswLTldKiknKSBBUyBhdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3IK KyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25z LCAnLCcpIEZST00gJ2F1dG92YWN1dW1fYW5hbHl6ZV90aHJlc2hvbGQ9KFsw LTldKiknKSBBUyBhdXRvdmFjdXVtX2FuYWx5emVfdGhyZXNob2xkCisgICAg LCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywn KSBGUk9NICdhdXRvdmFjdXVtX2FuYWx5emVfc2NhbGVfZmFjdG9yPShbMC05 XSpbLl1bMC05XSopJykgQVMgYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2Zh Y3RvcgorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9w dGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxh eT0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXkK KyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25z LCAnLCcpIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQ9KFsw LTldKiknKSBBUyBhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0CisgICAg LCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywn KSBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV9taW5fYWdlPShbMC05XSopJykg QVMgYXV0b3ZhY3V1bV9mcmVlemVfbWluX2FnZQorICAgICwgc3Vic3RyaW5n KGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0 b3ZhY3V1bV9mcmVlemVfbWF4X2FnZT0oWzAtOV0qKScpIEFTIGF1dG92YWN1 dW1fZnJlZXplX21heF9hZ2UKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19z dHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fZnJl ZXplX3RhYmxlX2FnZT0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fZnJlZXpl X3RhYmxlX2FnZQorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0 c3QucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2VuYWJsZWQ9 KFthLXp8MC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9lbmFibGVkCisg ICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25z LCAnLCcpIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZD0oWzAt OV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZAor ICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9u cywgJywnKSBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3I9 KFswLTldKlsuXVswLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX3ZhY3V1 bV9zY2FsZV9mYWN0b3IKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJp bmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9hbmFs eXplX3RocmVzaG9sZD0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1f YW5hbHl6ZV90aHJlc2hvbGQKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19z dHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9h bmFseXplX3NjYWxlX2ZhY3Rvcj0oWzAtOV0qWy5dWzAtOV0qKScpIEFTIHRv YXN0X2F1dG92YWN1dW1fYW5hbHl6ZV9zY2FsZV9mYWN0b3IKKyAgICAsIHN1 YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykg RlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheT0oWzAtOV0qKScp IEFTIHRvYXN0X2F1dG92YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXkKKyAgICAs IHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcs JykgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1pdD0oWzAtOV0q KScpIEFTIHRvYXN0X2F1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQKKyAg ICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMs ICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfbWluX2FnZT0oWzAtOV0q KScpIEFTIHRvYXN0X2F1dG92YWN1dW1fZnJlZXplX21pbl9hZ2UKKyAgICAs IHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcs JykgRlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZT0oWzAtOV0qKScp IEFTIHRvYXN0X2F1dG92YWN1dW1fZnJlZXplX21heF9hZ2UKKyAgICAsIHN1 YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykg RlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlPShbMC05XSopJykg QVMgdG9hc3RfYXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlCisgICAgLCBj LnJlbG9wdGlvbnMgQVMgcmVsb3B0aW9ucywgdHN0LnJlbG9wdGlvbnMgQVMg dG9hc3RfcmVsb3B0aW9ucworICAgICwgKENBU0UgV0hFTiBjLnJlbHRvYXN0 cmVsaWQgPSAwIFRIRU4gZmFsc2UgRUxTRSB0cnVlIEVORCkgQVMgaGFzdG9h c3R0YWJsZQorRlJPTSBwZ19jbGFzcyBjCisgICAgTEVGVCBPVVRFUiBKT0lO IHBnX25hbWVzcGFjZSBuc3Agb24gbnNwLm9pZCA9IGMucmVsbmFtZXNwYWNl CisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3RhYmxlc3BhY2Ugc3BjIG9uIHNw Yy5vaWQ9Yy5yZWx0YWJsZXNwYWNlCisgICAgTEVGVCBPVVRFUiBKT0lOIHBn X2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1jLm9pZCBhbmQgZGVz Lm9ianN1YmlkPTAgQU5EIGRlcy5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdj bGFzcykKKyAgICBMRUZUIE9VVEVSIEpPSU4gcGdfY2xhc3MgdHN0IE9OIHRz dC5vaWQgPSBjLnJlbHRvYXN0cmVsaWQKKyAgICAgICAgV0hFUkUgKChjLnJl bGhhc3J1bGVzIEFORCAoRVhJU1RTICgKKyAgICAgICAgICAgIFNFTEVDVCBy LnJ1bGVuYW1lIEZST00gcGdfcmV3cml0ZSByCisgICAgICAgICAgICAgICAg V0hFUkUgKChyLmV2X2NsYXNzID0gYy5vaWQpCisgICAgICAgICAgICAgICAg ICAgIEFORCAoYnBjaGFyKHIuZXZfdHlwZSkgPSAnMSc6OmJwY2hhcikpICkp KSBPUiAoYy5yZWxraW5kID0gJ3YnOjpjaGFyKSkKK3slIGlmICh2aWQgYW5k IGRhdGxhc3RzeXNvaWQpICV9CisgICAgICAgIEFORCBjLm9pZCA9IHt7dmlk fX06Om9pZAoreyUgZWxpZiBzY2lkICV9CisgICAgICAgIEFORCBjLnJlbG5h bWVzcGFjZSA9IHt7c2NpZH19OjpvaWQgT1JERVIgQlkgYy5yZWxuYW1lCit7 JSBlbmRpZiAlfQorCit7JSBlbGlmIHR5cGUgPT0gJ3JvbGVzJyAlfQorU0VM RUNUIHByLnJvbG5hbWUgRlJPTSBwZ19yb2xlcyBwciBXSEVSRSBwci5yb2xj YW5sb2dpbiBPUkRFUiBCWSBwci5yb2xuYW1lCisKK3slIGVsaWYgdHlwZSA9 PSAnc2NoZW1hcycgJX0KK1NFTEVDVAorICAgIG5zcC5uc3BuYW1lCitGUk9N CisgICAgcGdfbmFtZXNwYWNlIG5zcAorV0hFUkUKKyAgICAobnNwLm5zcG5h bWUgTk9UIExJS0UgRSdwZ1xcXyUnCisgICAgQU5EIG5zcC5uc3BuYW1lICE9 ICdpbmZvcm1hdGlvbl9zY2hlbWEnKQoreyUgZW5kaWYgJX0KZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwv OS40X3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3cy9zcWwvOS40X3BsdXMvdXBkYXRlLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODY3MDM4Ci0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXdzL3NxbC85LjRfcGx1cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEsODEgQEAK K3sjPT09PT09PT09PT09PT09PT09PT09PT09PT09PVVwZGF0ZSBWaWV3PT09 PT09PT09PT09PT09PT09PT09PT09PSN9Cit7JSBpbXBvcnQgJ21hY3Jvcy9z ZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21h Y3Jvcy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGlm IGRhdGEgJX0KK3slIHNldCB2aWV3X25hbWUgPSBkYXRhLm5hbWUgaWYgZGF0 YS5uYW1lIGVsc2Ugb19kYXRhLm5hbWUgJX0KK3slIHNldCB2aWV3X3NjaGVt YSA9IGRhdGEuc2NoZW1hIGlmIGRhdGEuc2NoZW1hIGVsc2Ugb19kYXRhLnNj aGVtYSAlfQoreyUgc2V0IGRlZiA9IGRhdGEuZGVmaW5pdGlvbi5yc3RyaXAo JzsnKSBpZiBkYXRhLmRlZmluaXRpb24gJX0KK3slIGlmIGRhdGEubmFtZSBh bmQgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBWSUVXIHt7 IGNvbm58cXRJZGVudChvX2RhdGEuc2NoZW1hLCBvX2RhdGEubmFtZSkgfX0K KyAgICBSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07 Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5zY2hlbWEgYW5kIGRhdGEuc2No ZW1hICE9IG9fZGF0YS5zY2hlbWEgJX0KK0FMVEVSIFZJRVcge3sgY29ubnxx dElkZW50KG9fZGF0YS5zY2hlbWEsIHZpZXdfbmFtZSApIH19CisgICAgU0VU IFNDSEVNQSB7eyBkYXRhLnNjaGVtYSB9fTsKK3slIGVuZGlmICV9Cit7JSBp ZiBkYXRhLm93bmVyIGFuZCBkYXRhLm93bmVyICE9IG9fZGF0YS5vd25lciAl fQorQUxURVIgVEFCTEUge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2 aWV3X25hbWUpIH19CisgICAgT1dORVIgVE8ge3sgZGF0YS5vd25lciB9fTsK K3slIGVuZGlmICV9Cit7JSBpZiBkZWYgYW5kIGRlZiAhPSBvX2RhdGEuZGVm aW5pdGlvbi5yc3RyaXAoJzsnKSAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgVklF VyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0K K3slIGlmIChkYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRp b24gIT0gb19kYXRhLmNoZWNrX29wdGlvbikKKyAgICBvciAoZGF0YS5zZWN1 cml0eV9iYXJyaWVyIGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgIT0gb19k YXRhLnNlY3VyaXR5X2JhcnJpZXIpICV9CisgICAgV0lUSCAoeyUgaWYgKGRh dGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAhPSAnbm8n KSAlfWNoZWNrX29wdGlvbj17eyBkYXRhLmNoZWNrX29wdGlvbiB9fXslIGVu ZGlmICV9e3snLCAnIGlmIGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNo ZWNrX29wdGlvbiAhPSAnbm8nIGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIg fX17JSBpZiBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgJX1zZWN1cml0eV9iYXJy aWVyPXt7IGRhdGEuc2VjdXJpdHlfYmFycmllciB9fXslIGVuZGlmICV9KQor eyUgZW5kaWYgJX0KKyAgICBBU3t7IGRlZiB9fTsKK3slIGVsc2UgJX0KK3sl IGlmIChkYXRhLnNlY3VyaXR5X2JhcnJpZXIgYW5kIGRhdGEuc2VjdXJpdHlf YmFycmllciAhPSAgb19kYXRhLnNlY3VyaXR5X2JhcnJpZXIpICV9CitBTFRF UiBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1l KSB9fQorICAgIFNFVCAoc2VjdXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3Vy aXR5X2JhcnJpZXIgfX0pOworeyUgZW5kaWYgJX0KK3slIGlmIChkYXRhLmNo ZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gb19kYXRhLmNo ZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gJ25vJykgJX0K K0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3 X25hbWUpIH19CisgICAgU0VUIChjaGVja19vcHRpb249e3sgZGF0YS5jaGVj a19vcHRpb24gfX0pOworeyUgZWxpZiAoZGF0YS5jaGVja19vcHRpb24gYW5k IGRhdGEuY2hlY2tfb3B0aW9uICE9IG9fZGF0YS5jaGVja19vcHRpb24gYW5k IGRhdGEuY2hlY2tfb3B0aW9uID09ICdubycpICV9CitBTFRFUiBWSUVXIHt7 IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fSBSRVNF VCAoY2hlY2tfb3B0aW9uKTsKK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQor eyUgaWYgZGF0YS5jb21tZW50IGFuZCBkYXRhLmNvbW1lbnQgIT0gb19kYXRh LmNvbW1lbnQgJX0KK0NPTU1FTlQgT04gVklFVyB7eyBjb25ufHF0SWRlbnQo dmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBJUyB7eyBkYXRhLmNv bW1lbnR8cXRMaXRlcmFsIH19OworeyUgZW5kaWYgJX0KK3sjIFRoZSBTUUwg Z2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZpbGVnZXMgI30KK3sl IGlmIGRhdGEuZGF0YWNsICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS5k YXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsLmRlbGV0ZWQg JX0KK3t7IFBSSVZJTEVHRS5SRVNFVEFMTChjb25uLCAnVEFCTEUnLCBwcml2 LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0YS5zY2hlbWEpIH19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gZGF0YS5k YXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsLmNoYW5nZWQg JX0KK3t7IFBSSVZJTEVHRS5SRVNFVEFMTChjb25uLCAnVEFCTEUnLCBwcml2 LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0YS5zY2hlbWEpIH19Cit7eyBQUklW SUxFR0UuQVBQTFkoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRh Lm5hbWUsIGRhdGEuc2NoZW1hLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYu d2l0aF9ncmFudCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3sl IGlmICdhZGRlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGlu IGRhdGEuZGF0YWNsLmFkZGVkICV9Cit7eyBQUklWSUxFR0UuQVBQTFkoY29u biwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2No ZW1hLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0K K3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7IyBU aGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBTZWN1cml0eSBM YWJlbCAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgaXMgbm90IG5vbmUgYW5k IGRhdGEuc2VjbGFiZWxzfGxlbmd0aCA+IDAgJX0KK3slIHNldCBzZWNsYWJl bHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNl Y2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQor eyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQgJX0KK3t7IFNFQ0xBQkxF LkRST1AoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIpIH19 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnYWRkZWQnIGlu IHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0K K3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQore3sgU0VDTEFCTEUu QVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIu c2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9 Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMu Y2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMu Y2hhbmdlZCAlfQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBk YXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7 JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3cy9zcWwvOS40X3BsdXMvdmlld19pZC5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuNF9wbHVzL3Zp ZXdfaWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjY1NjQ4YzAKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuNF9wbHVzL3ZpZXdfaWQuc3Fs CkBAIC0wLDAgKzEsNCBAQAoreyM9PUJlbG93IHdpbGwgcHJvdmlkZSB2aWV3 IGlkIGZvciBsYXN0IGNyZWF0ZWQgdmlldz09I30KK3slIGlmIGRhdGEgJX0K K1NFTEVDVCBjLm9pZCBGUk9NIHBnX2NsYXNzIGMgV0hFUkUgYy5yZWxuYW1l ID0gJ3t7IGRhdGEubmFtZSB9fSc7Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC9l ZGJfOS4xX3BsdXMvYWNsLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3cy9zcWwvZWRiXzkuMV9wbHVzL2FjbC5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVkMjIyNQotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3cy9zcWwvZWRiXzkuMV9wbHVzL2FjbC5zcWwKQEAgLTAsMCArMSwzMyBA QAoreyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09R2V0IEFDTHM9PT09 PT09PT09PT09PT09PT09PT09PT09I30KK3slIGlmIHZpZCAlfQorU0VMRUNU CisgICAgJ2RhdGFjbCcgYXMgZGVmdHlwZSwKKyAgICBDT0FMRVNDRShndC5y b2xuYW1lLCAncHVibGljJykgZ3JhbnRlZSwKKyAgICBnLnJvbG5hbWUgZ3Jh bnRvciwKKyAgICBhcnJheV9hZ2cocHJpdmlsZWdlX3R5cGUpIGFzIHByaXZp bGVnZXMsCisgICAgYXJyYXlfYWdnKGlzX2dyYW50YWJsZSkgYXMgZ3JhbnRh YmxlCitGUk9NCisgICAgKFNFTEVDVAorICAgICAgICBkLmdyYW50ZWUsIGQu Z3JhbnRvciwgZC5pc19ncmFudGFibGUsCisgICAgICAgIENBU0UgZC5wcml2 aWxlZ2VfdHlwZQorICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisg ICAgICAgIFdIRU4gJ0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAn UkVGRVJFTkNFUycgVEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBU SEVOICdyJworICAgICAgICBXSEVOICdUUklHR0VSJyBUSEVOICd0JworICAg ICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAgICAgIEVMU0UgJ1VO S05PV04nCisgICAgICAgIEVORCBBUyBwcml2aWxlZ2VfdHlwZQorICAgIEZS T00KKyAgICAgICAgKFNFTEVDVCByZWxhY2wgRlJPTSBwZ19jbGFzcyBjbAor ICAgICAgICAgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3NoZGVzY3JpcHRpb24g ZGVzY3IgT04gKAorICAgICAgICAgICAgY2wub2lkPWRlc2NyLm9iam9pZCBB TkQgZGVzY3IuY2xhc3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xhc3MpCisgIFdI RVJFIGNsLm9pZCA9IHt7IHZpZCB9fTo6T0lEIEFORCByZWxraW5kID0gJ3Yn CisgICAgICAgICkgYWNsLAorICAgICAgICBhY2xleHBsb2RlKHJlbGFjbCkg ZAorICAgICAgICApIGQKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19y b2xlcyBnIE9OIChkLmdyYW50b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpPSU4g cGdfY2F0YWxvZy5wZ19yb2xlcyBndCBPTiAoZC5ncmFudGVlID0gZ3Qub2lk KQorR1JPVVAgQlkKKyAgICBnLnJvbG5hbWUsIGd0LnJvbG5hbWUKK3slIGVu ZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvdmlld3Mvc3FsL2VkYl85LjFfcGx1cy9iYWNrZW5kX3N1cHBvcnQu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3Nx bC9lZGJfOS4xX3BsdXMvYmFja2VuZF9zdXBwb3J0LnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzA2NDhkCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdz L3NxbC9lZGJfOS4xX3BsdXMvYmFja2VuZF9zdXBwb3J0LnNxbApAQCAtMCww ICsxLDIwIEBACitTRUxFQ1QKKyAgICBDQVNFIFdIRU4gbnNwLm5zcG5hbWUg SU4gKCdzeXMnLCAnZGJvJywgJ2luZm9ybWF0aW9uX3NjaGVtYScpIFRIRU4g dHJ1ZSBFTFNFIGZhbHNlIEVORCBBUyBkYlN1cHBvcnQKK0ZST00KKyAgICBw Z19uYW1lc3BhY2UgbnNwCitXSEVSRQorICAgIG5zcC5vaWQ9e3tzY2lkfX06 OmludAorQU5EICgKKyAgICAobnNwbmFtZSA9ICdwZ19jYXRhbG9nJyBBTkQg RVhJU1RTCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFNF TEVDVCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICdwZ19jbGFz cycgQU5EIHJlbG5hbWVzcGFjZSA9IG5zcC5vaWQgTElNSVQgMSkpCisgICAg T1IgKG5zcG5hbWUgPSAncGdhZ2VudCcgQU5EIEVYSVNUUworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX2Ns YXNzIFdIRVJFIHJlbG5hbWUgPSAncGdhX2pvYicgQU5EIHJlbG5hbWVzcGFj ZSA9IG5zcC5vaWQgTElNSVQgMSkpCisgICAgT1IgKG5zcG5hbWUgPSAnaW5m b3JtYXRpb25fc2NoZW1hJyBBTkQgRVhJU1RTCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hF UkUgcmVsbmFtZSA9ICd0YWJsZXMnIEFORCByZWxuYW1lc3BhY2UgPSBuc3Au b2lkIExJTUlUIDEpKQorICAgIE9SIChuc3BuYW1lIExJS0UgJ18lJyBBTkQg RVhJU1RTCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFNF TEVDVCAxIEZST00gcGdfcHJvYyBXSEVSRSBwcm9uYW1lPSdzbG9ueXZlcnNp b24nIEFORCBwcm9uYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEpKQorKQor QU5ECisgbnNwbmFtZSBOT1QgTElLRSBFJ3BnXFx0ZW1wXFwlJworQU5ECisg bnNwbmFtZSBOT1QgTElLRSBFJ3BnXFx0b2FzdF90ZW1wXFwlJwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3Nx bC9lZGJfOS4xX3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvZWRiXzkuMV9wbHVzL2NyZWF0ZS5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmFjMWUz YQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3cy9zcWwvZWRiXzkuMV9wbHVzL2NyZWF0ZS5zcWwKQEAg LTAsMCArMSwyNSBAQAoreyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09 Q3JlYXRlIG5ldyB2aWV3PT09PT09PT09PT09PT09PT09PT09PT09PSN9Cit7 JSBpZiBkaXNwbGF5X2NvbW1lbnRzICV9CistLSBWaWV3OiB7eyBjb25ufHF0 SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKworLS0gRFJPUCBW SUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9 fTsKKworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEubmFtZSBhbmQgZGF0YS5z Y2hlbWEgYW5kIGRhdGEuZGVmaW5pdGlvbiAlfQorQ1JFQVRFIE9SIFJFUExB Q0UgVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFt ZSkgfX0KK3slIGlmICgoZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hl Y2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25vJykgb3IgZGF0YS5zZWN1cml0eV9i YXJyaWVyKSAlfQorV0lUSCAoeyUgaWYgZGF0YS5jaGVja19vcHRpb24gYW5k IGRhdGEuY2hlY2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25vJyAlfQorY2hlY2tf b3B0aW9uPXt7IGRhdGEuY2hlY2tfb3B0aW9uIH19eyUgZW5kaWYgJX17eyAn LCAnIGlmIGRhdGEuY2hlY2tfb3B0aW9uIGFuZAorZGF0YS5jaGVja19vcHRp b24ubG93ZXIoKSAhPSAnbm8nIGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIg ZWxzZSAnJyB9fXslIGlmIGRhdGEuc2VjdXJpdHlfYmFycmllciAlfQorc2Vj dXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgfX17JSBl bmRpZiAlfSl7JSBlbmRpZiAlfSBBUwore3sgZGF0YS5kZWZpbml0aW9uLnJz dHJpcCgnOycpIH19OworeyUgaWYgZGF0YS5vd25lciAlfQorCitBTFRFUiBU QUJMRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkg fX0KKyAgICBPV05FUiBUTyB7eyBkYXRhLm93bmVyIH19OworeyUgZW5kaWYg JX0KK3slIGlmIGRhdGEuY29tbWVudCAlfQorQ09NTUVOVCBPTiBWSUVXIHt7 IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorICAg IElTIHt7IGRhdGEuY29tbWVudHxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAl fQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvZWRiXzkuMV9wbHVzL2RlbGV0ZS5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3Fs L2VkYl85LjFfcGx1cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjhmYzRlMDEKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL2VkYl85 LjFfcGx1cy9kZWxldGUuc3FsCkBAIC0wLDAgKzEsOSBAQAoreyM9PT09PT09 PT09PT09PT09PT09PT09PT09PT09RHJvcC9DYXNjYWRlIHZpZXcgYnkgbmFt ZT09PT09PT09PT09PT09PT09PT09PT09PT0jfQoreyUgaWYgdmlkICV9CitT RUxFQ1QgYy5yZWxuYW1lIEFzIG5hbWUsIG5zcC5uc3BuYW1lCisgICAgRlJP TSBwZ19jbGFzcyBjCisgICAgTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc3Ag b24gYy5yZWxuYW1lc3BhY2UgPSBuc3Aub2lkCisgICAgV0hFUkUgYy5yZWxm aWxlbm9kZSA9IHt7IHZpZCB9fTsKK3slIGVsaWYgKG5hbWUgYW5kIG5zcG5h bWUpICV9CitEUk9QIFZJRVcge3sgY29ubnxxdElkZW50KG5zcG5hbWUsIG5h bWUpIH19IHslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERSB7JSBlbmRpZiAlfQor eyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdz L3RlbXBsYXRlcy92aWV3cy9zcWwvZWRiXzkuMV9wbHVzL2dyYW50LnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvZWRi XzkuMV9wbHVzL2dyYW50LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi45ZmE3MTgxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC9lZGJfOS4xX3Bs dXMvZ3JhbnQuc3FsCkBAIC0wLDAgKzEsMTQgQEAKK3sjPT09PT1HcmFudCBQ ZXJtaXNzaW9ucyB0byBVc2VyIFJvbGUgb24gVmlld3MvVGFibGVzPT09PSN9 Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xB QkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9wcml2aWxlZ2UubWFjcm9zJyBh cyBQUklWSUxFR0UgJX0KK3sjIFdlIHdpbGwgZ2VuZXJhdGUgU2VjdXJpdHkg TGFiZWwgU1FMIHVzaW5nIG1hY3JvICN9Cit7JSBpZiBkYXRhLnNlY2xhYmVs cyAlfQoreyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KK3t7IFNFQ0xB QkxFLkFQUExZKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVy LCByLnNlY3VyaXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAlfQoreyUgaWYgZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRh dGEuZGF0YWNsICV9Cit7eyBQUklWSUxFR0UuQVBQTFkoY29ubiwgJ1RBQkxF JywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hLCBwcml2 LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvZWRiXzkuMV9wbHVzL3Byb3Bl cnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXdzL3NxbC9lZGJfOS4xX3BsdXMvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjkyNjAyNwotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3 cy9zcWwvZWRiXzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEs NjMgQEAKK3sjPT09PT09PT09PT09PT09PT09PT09PT09PT09PUZldGNoIFZp ZXcgUHJvcGVydGllcz09PT09PT09PT09PT09PT09PT09PT09PT0jfQoreyUg aWYgKHZpZCBhbmQgZGF0bGFzdHN5c29pZCkgb3Igc2NpZCAlfQorU0VMRUNU IGMub2lkLCBjLnhtaW4sIGMucmVsbmFtZSBBUyBuYW1lLCBjLnJlbHRhYmxl c3BhY2UgQVMgc3Bjb2lkLAorICAgIGMucmVsaXNwb3B1bGF0ZWQgQVMgaXNw b3B1bGF0ZWQsIHNwYy5zcGNuYW1lLCBuc3AubnNwbmFtZSBhcyBzY2hlbWEs CisgICAgcGdfZ2V0X3VzZXJieWlkKGMucmVsb3duZXIpIEFTIG93bmVyLCBk ZXNjcmlwdGlvbiBBUyBjb21tZW50LAorICAgIHBnX2dldF92aWV3ZGVmKGMu b2lkLCB0cnVlKSBBUyBkZWZpbml0aW9uLAorICAgIHsjPT09PT09PT09PT09 PUNoZWNrcyBpZiBpdCBpcyBzeXN0ZW0gdmlldz09PT09PT09PT09PT09PT0j fQorICAgIHslIGlmIHZpZCBhbmQgZGF0bGFzdHN5c29pZCAlfQorICAgIENB U0UgV0hFTiB7e3ZpZH19IDw9IHt7ZGF0bGFzdHN5c29pZH19IFRIRU4gVHJ1 ZSBFTFNFIEZhbHNlIEVORCBBUyBzeXN0ZW1fdmlldywKKyAgICB7JSBlbmRp ZiAlfQorICAgIHsjPT09PT09PT09PT09PUNoZWNrcyBpZiBpdCBpcyBtYXRl cmlhbGl6ZWQgdmlldz09PT09PT09I30KKyAgICBDQVNFIFdIRU4gYy5yZWxr aW5kID0gJ20nIFRIRU4gVHJ1ZSBFTFNFIEZhbHNlIEVORCBBcyBtX3ZpZXcs CisgICAgKFNFTEVDVCBhcnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxh YmVsKSBGUk9NIHBnX3NlY2xhYmVscyBzbDEgV0hFUkUgc2wxLm9iam9pZD1j Lm9pZCBBTkQgc2wxLm9ianN1YmlkPTApIEFTIHNlY2xhYmVscworICAgICwg c3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykg RlJPTSAnY2hlY2tfb3B0aW9uPShbYS16XSopJykgQVMgY2hlY2tfb3B0aW9u CisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9u cywgJywnKSBGUk9NICdzZWN1cml0eV9iYXJyaWVyPShbYS16fDAtOV0qKScp IEFTIHNlY3VyaXR5X2JhcnJpZXIKKyAgICAsIHN1YnN0cmluZyhhcnJheV90 b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2ZpbGxmYWN0b3I9 KFswLTldKiknKSBBUyBmaWxsZmFjdG9yCisgICAgLCBzdWJzdHJpbmcoYXJy YXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFj dXVtX2VuYWJsZWQ9KFthLXp8MC05XSopJykgQVMgYXV0b3ZhY3V1bV9lbmFi bGVkCisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0 aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQ9 KFswLTldKiknKSBBUyBhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQKKyAg ICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAn LCcpIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX3NjYWxlX2ZhY3Rvcj0oWzAt OV0qWy5dWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fdmFjdXVtX3NjYWxlX2Zh Y3RvcgorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9w dGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9hbmFseXplX3RocmVzaG9s ZD0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fYW5hbHl6ZV90aHJlc2hvbGQK KyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25z LCAnLCcpIEZST00gJ2F1dG92YWN1dW1fYW5hbHl6ZV9zY2FsZV9mYWN0b3I9 KFswLTldKlsuXVswLTldKiknKSBBUyBhdXRvdmFjdXVtX2FuYWx5emVfc2Nh bGVfZmFjdG9yCisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMu cmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0 X2RlbGF5PShbMC05XSopJykgQVMgYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9k ZWxheQorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9w dGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1p dD0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQK KyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25z LCAnLCcpIEZST00gJ2F1dG92YWN1dW1fZnJlZXplX21pbl9hZ2U9KFswLTld KiknKSBBUyBhdXRvdmFjdXVtX2ZyZWV6ZV9taW5fYWdlCisgICAgLCBzdWJz dHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKSBGUk9N ICdhdXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdlPShbMC05XSopJykgQVMgYXV0 b3ZhY3V1bV9mcmVlemVfbWF4X2FnZQorICAgICwgc3Vic3RyaW5nKGFycmF5 X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1 bV9mcmVlemVfdGFibGVfYWdlPShbMC05XSopJykgQVMgYXV0b3ZhY3V1bV9m cmVlemVfdGFibGVfYWdlCisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3Ry aW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fZW5h YmxlZD0oW2EtenwwLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX2VuYWJs ZWQKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9w dGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xk PShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNo b2xkCisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxv cHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX3NjYWxlX2Zh Y3Rvcj0oWzAtOV0qWy5dWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1f dmFjdXVtX3NjYWxlX2ZhY3RvcgorICAgICwgc3Vic3RyaW5nKGFycmF5X3Rv X3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVt X2FuYWx5emVfdGhyZXNob2xkPShbMC05XSopJykgQVMgdG9hc3RfYXV0b3Zh Y3V1bV9hbmFseXplX3RocmVzaG9sZAorICAgICwgc3Vic3RyaW5nKGFycmF5 X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFj dXVtX2FuYWx5emVfc2NhbGVfZmFjdG9yPShbMC05XSpbLl1bMC05XSopJykg QVMgdG9hc3RfYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2ZhY3RvcgorICAg ICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywg JywnKSBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2RlbGF5PShbMC05 XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheQor ICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9u cywgJywnKSBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0PShb MC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1p dAorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0 aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV9taW5fYWdlPShb MC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9mcmVlemVfbWluX2FnZQor ICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9u cywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdlPShbMC05 XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZQorICAg ICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywg JywnKSBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2U9KFswLTld KiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2UKKyAg ICAsIGMucmVsb3B0aW9ucyBBUyByZWxvcHRpb25zLCB0c3QucmVsb3B0aW9u cyBBUyB0b2FzdF9yZWxvcHRpb25zCisgICAgLCAoQ0FTRSBXSEVOIGMucmVs dG9hc3RyZWxpZCA9IDAgVEhFTiBmYWxzZSBFTFNFIHRydWUgRU5EKSBBUyBo YXN0b2FzdHRhYmxlCitGUk9NIHBnX2NsYXNzIGMKKyAgICBMRUZUIE9VVEVS IEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBvbiBuc3Aub2lkID0gYy5yZWxuYW1l c3BhY2UKKyAgICBMRUZUIE9VVEVSIEpPSU4gcGdfdGFibGVzcGFjZSBzcGMg b24gc3BjLm9pZD1jLnJlbHRhYmxlc3BhY2UKKyAgICBMRUZUIE9VVEVSIEpP SU4gcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPWMub2lkIGFu ZCBkZXMub2Jqc3ViaWQ9MCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19jbGFzcyc6 OnJlZ2NsYXNzKQorICAgIExFRlQgT1VURVIgSk9JTiBwZ19jbGFzcyB0c3Qg T04gdHN0Lm9pZCA9IGMucmVsdG9hc3RyZWxpZAorICAgICAgICBXSEVSRSAo KGMucmVsaGFzcnVsZXMgQU5EIChFWElTVFMgKAorICAgICAgICAgICAgU0VM RUNUIHIucnVsZW5hbWUgRlJPTSBwZ19yZXdyaXRlIHIKKyAgICAgICAgICAg ICAgICBXSEVSRSAoKHIuZXZfY2xhc3MgPSBjLm9pZCkKKyAgICAgICAgICAg ICAgICAgICAgQU5EIChicGNoYXIoci5ldl90eXBlKSA9ICcxJzo6YnBjaGFy KSkgKSkpIE9SIChjLnJlbGtpbmQgPSAndic6OmNoYXIpKQoreyUgaWYgKHZp ZCBhbmQgZGF0bGFzdHN5c29pZCkgJX0KKyAgICAgICAgQU5EIGMub2lkID0g e3t2aWR9fTo6b2lkCit7JSBlbGlmIHNjaWQgJX0KKyAgICAgICAgQU5EIGMu cmVsbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZCBPUkRFUiBCWSBjLnJlbG5h bWUKK3slIGVuZGlmICV9CisKK3slIGVsaWYgdHlwZSA9PSAncm9sZXMnICV9 CitTRUxFQ1QgcHIucm9sbmFtZSBGUk9NIHBnX3JvbGVzIHByIFdIRVJFIHBy LnJvbGNhbmxvZ2luIE9SREVSIEJZIHByLnJvbG5hbWUKKworeyUgZWxpZiB0 eXBlID09ICdzY2hlbWFzJyAlfQorU0VMRUNUIG5zcC5uc3BuYW1lCisgICAg RlJPTSBwZ19uYW1lc3BhY2UgbnNwCitXSEVSRQorICAgIChuc3AubnNwbmFt ZSBOT1QgTElLRSBFJ3BnXFxfJScKKyAgICAgICAgQU5EIG5zcC5uc3BuYW1l ICE9ICdpbmZvcm1hdGlvbl9zY2hlbWEnKQoreyUgZW5kaWYgJX0KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9z cWwvZWRiXzkuMV9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL2VkYl85LjFfcGx1cy91cGRhdGUu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4Njcw MzgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90 ZW1wbGF0ZXMvdmlld3Mvc3FsL2VkYl85LjFfcGx1cy91cGRhdGUuc3FsCkBA IC0wLDAgKzEsODEgQEAKK3sjPT09PT09PT09PT09PT09PT09PT09PT09PT09 PVVwZGF0ZSBWaWV3PT09PT09PT09PT09PT09PT09PT09PT09PSN9Cit7JSBp bXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9 Cit7JSBpbXBvcnQgJ21hY3Jvcy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklW SUxFR0UgJX0KK3slIGlmIGRhdGEgJX0KK3slIHNldCB2aWV3X25hbWUgPSBk YXRhLm5hbWUgaWYgZGF0YS5uYW1lIGVsc2Ugb19kYXRhLm5hbWUgJX0KK3sl IHNldCB2aWV3X3NjaGVtYSA9IGRhdGEuc2NoZW1hIGlmIGRhdGEuc2NoZW1h IGVsc2Ugb19kYXRhLnNjaGVtYSAlfQoreyUgc2V0IGRlZiA9IGRhdGEuZGVm aW5pdGlvbi5yc3RyaXAoJzsnKSBpZiBkYXRhLmRlZmluaXRpb24gJX0KK3sl IGlmIGRhdGEubmFtZSBhbmQgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9 CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudChvX2RhdGEuc2NoZW1hLCBv X2RhdGEubmFtZSkgfX0KKyAgICBSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50 KGRhdGEubmFtZSkgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5zY2hl bWEgYW5kIGRhdGEuc2NoZW1hICE9IG9fZGF0YS5zY2hlbWEgJX0KK0FMVEVS IFZJRVcge3sgY29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIHZpZXdfbmFt ZSApIH19CisgICAgU0VUIFNDSEVNQSB7eyBkYXRhLnNjaGVtYSB9fTsKK3sl IGVuZGlmICV9Cit7JSBpZiBkYXRhLm93bmVyIGFuZCBkYXRhLm93bmVyICE9 IG9fZGF0YS5vd25lciAlfQorQUxURVIgVEFCTEUge3sgY29ubnxxdElkZW50 KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAgT1dORVIgVE8ge3sg ZGF0YS5vd25lciB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkZWYgYW5kIGRl ZiAhPSBvX2RhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSAlfQorQ1JFQVRF IE9SIFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEs IHZpZXdfbmFtZSkgfX0KK3slIGlmIChkYXRhLmNoZWNrX29wdGlvbiBhbmQg ZGF0YS5jaGVja19vcHRpb24gIT0gb19kYXRhLmNoZWNrX29wdGlvbikKKyAg ICBvciAoZGF0YS5zZWN1cml0eV9iYXJyaWVyIGFuZCBkYXRhLnNlY3VyaXR5 X2JhcnJpZXIgIT0gb19kYXRhLnNlY3VyaXR5X2JhcnJpZXIpICV9CisgICAg V0lUSCAoeyUgaWYgKGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNr X29wdGlvbiAhPSAnbm8nKSAlfWNoZWNrX29wdGlvbj17eyBkYXRhLmNoZWNr X29wdGlvbiB9fXslIGVuZGlmICV9e3snLCAnIGlmIGRhdGEuY2hlY2tfb3B0 aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAhPSAnbm8nIGFuZCBkYXRhLnNl Y3VyaXR5X2JhcnJpZXIgfX17JSBpZiBkYXRhLnNlY3VyaXR5X2JhcnJpZXIg JX1zZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEuc2VjdXJpdHlfYmFycmllciB9 fXslIGVuZGlmICV9KQoreyUgZW5kaWYgJX0KKyAgICBBU3t7IGRlZiB9fTsK K3slIGVsc2UgJX0KK3slIGlmIChkYXRhLnNlY3VyaXR5X2JhcnJpZXIgYW5k IGRhdGEuc2VjdXJpdHlfYmFycmllciAhPSAgb19kYXRhLnNlY3VyaXR5X2Jh cnJpZXIpICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3Nj aGVtYSwgdmlld19uYW1lKSB9fQorICAgIFNFVCAoc2VjdXJpdHlfYmFycmll cj17eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgfX0pOworeyUgZW5kaWYgJX0K K3slIGlmIChkYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRp b24gIT0gb19kYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRp b24gIT0gJ25vJykgJX0KK0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KHZp ZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAgU0VUIChjaGVja19vcHRp b249e3sgZGF0YS5jaGVja19vcHRpb24gfX0pOworeyUgZWxpZiAoZGF0YS5j aGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9IG9fZGF0YS5j aGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uID09ICdubycpICV9 CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmll d19uYW1lKSB9fSBSRVNFVCAoY2hlY2tfb3B0aW9uKTsKK3slIGVuZGlmICV9 Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5jb21tZW50IGFuZCBkYXRhLmNv bW1lbnQgIT0gb19kYXRhLmNvbW1lbnQgJX0KK0NPTU1FTlQgT04gVklFVyB7 eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAg ICBJUyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19OworeyUgZW5kaWYg JX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHBy aXZpbGVnZXMgI30KK3slIGlmIGRhdGEuZGF0YWNsICV9Cit7JSBpZiAnZGVs ZXRlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEu ZGF0YWNsLmRlbGV0ZWQgJX0KK3t7IFBSSVZJTEVHRS5SRVNFVEFMTChjb25u LCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0YS5zY2hl bWEpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hh bmdlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEu ZGF0YWNsLmNoYW5nZWQgJX0KK3t7IFBSSVZJTEVHRS5SRVNFVEFMTChjb25u LCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0YS5zY2hl bWEpIH19Cit7eyBQUklWSUxFR0UuQVBQTFkoY29ubiwgJ1RBQkxFJywgcHJp di5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hLCBwcml2LndpdGhv dXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgJX0KK3slIGlmICdhZGRlZCcgaW4gZGF0YS5kYXRhY2wgJX0K K3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsLmFkZGVkICV9Cit7eyBQUklW SUxFR0UuQVBQTFkoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRh Lm5hbWUsIGRhdGEuc2NoZW1hLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYu d2l0aF9ncmFudCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3sl IGVuZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNo YW5nZSBTZWN1cml0eSBMYWJlbCAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMg aXMgbm90IG5vbmUgYW5kIGRhdGEuc2VjbGFiZWxzfGxlbmd0aCA+IDAgJX0K K3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYg J2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8 bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQg JX0KK3t7IFNFQ0xBQkxFLkRST1AoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUs IHIucHJvdmlkZXIpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7 JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVk fGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAl fQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUs IHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxz IGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3Ig ciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQore3sgU0VDTEFCTEUuQVBQTFko Y29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJp dHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBl bmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvZWRiXzkuMV9wbHVzL3Zp ZXdfaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXdzL3NxbC9lZGJfOS4xX3BsdXMvdmlld19pZC5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjU2NDhjMAotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9z cWwvZWRiXzkuMV9wbHVzL3ZpZXdfaWQuc3FsCkBAIC0wLDAgKzEsNCBAQAor eyM9PUJlbG93IHdpbGwgcHJvdmlkZSB2aWV3IGlkIGZvciBsYXN0IGNyZWF0 ZWQgdmlldz09I30KK3slIGlmIGRhdGEgJX0KK1NFTEVDVCBjLm9pZCBGUk9N IHBnX2NsYXNzIGMgV0hFUkUgYy5yZWxuYW1lID0gJ3t7IGRhdGEubmFtZSB9 fSc7Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC9wcmVfOS4xL2FjbC5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL3ByZV85 LjEvYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li40NmM1ZTVmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC9wcmVfOS4xL2FjbC5zcWwKQEAg LTAsMCArMSwzMiBAQAoreyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09 R2V0IEFDTHM9PT09PT09PT09PT09PT09PT09PT09PT09I30KK3slIGlmIHZp ZCAlfQorU0VMRUNUCisgICAgJ2RhdGFjbCcgYXMgZGVmdHlwZSwgQ09BTEVT Q0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycpIGdyYW50ZWUsCisgICAgZy5yb2xu YW1lIGdyYW50b3IsIGFycmF5X2FnZyhwcml2aWxlZ2VfdHlwZSkgYXMgcHJp dmlsZWdlcywKKyAgICBhcnJheV9hZ2coaXNfZ3JhbnRhYmxlKSBhcyBncmFu dGFibGUKK0ZST00KKyAgICAoU0VMRUNUCisgICAgICAgIGQuZ3JhbnRlZSwg ZC5ncmFudG9yLCBkLmlzX2dyYW50YWJsZSwKKyAgICAgICAgQ0FTRSBkLnBy aXZpbGVnZV90eXBlCisgICAgICAgIFdIRU4gJ0RFTEVURScgVEhFTiAnZCcK KyAgICAgICAgV0hFTiAnSU5TRVJUJyBUSEVOICdhJworICAgICAgICBXSEVO ICdSRUZFUkVOQ0VTJyBUSEVOICd4JworICAgICAgICBXSEVOICdTRUxFQ1Qn IFRIRU4gJ3InCisgICAgICAgIFdIRU4gJ1RSSUdHRVInIFRIRU4gJ3QnCisg ICAgICAgIFdIRU4gJ1VQREFURScgVEhFTiAndycKKyAgICAgICAgRUxTRSAn VU5LTk9XTicKKyAgICAgICAgRU5EIEFTIHByaXZpbGVnZV90eXBlCisgICAg RlJPTQorICAgICAgICAoU0VMRUNUIHJlbGFjbCBGUk9NIHBnX2NsYXNzIGNs CisgICAgICAgICAgICBMRUZUIE9VVEVSIEpPSU4gcGdfc2hkZXNjcmlwdGlv biBkZXNjciBPTiAoCisgICAgICAgICAgICBjbC5vaWQ9ZGVzY3Iub2Jqb2lk IEFORCBkZXNjci5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykKKyAg V0hFUkUgY2wub2lkID0ge3sgdmlkIH19OjpPSUQgQU5EIHJlbGtpbmQgPSAn dicKKyAgICAgICAgKSBhY2wsCisgICAgICAgIChTRUxFQ1QgKGQpLmdyYW50 ZWUgQVMgZ3JhbnRlZSwgKGQpLmdyYW50b3IgQVMgZ3JhbnRvciwgKGQpLmlz X2dyYW50YWJsZSBBUyBpc19ncmFudGFibGUsCisgICAgICAgICAgICAoZCku cHJpdmlsZWdlX3R5cGUgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICAgICAgRlJP TSAoU0VMRUNUIGFjbGV4cGxvZGUocmVsYWNsKSBhcyBkIEZST00gcGdfY2xh c3MgY2wxIFdIRVJFIGNsMS5vaWQgPSB7eyB2aWQgfX06Ok9JRCkgYSkgZAor ICAgICAgICApIGQKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xl cyBnIE9OIChkLmdyYW50b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpPSU4gcGdf Y2F0YWxvZy5wZ19yb2xlcyBndCBPTiAoZC5ncmFudGVlID0gZ3Qub2lkKQor R1JPVVAgQlkgZy5yb2xuYW1lLCBndC5yb2xuYW1lCit7JSBlbmRpZiAlfQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXdzL3NxbC9wcmVfOS4xL2JhY2tlbmRfc3VwcG9ydC5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL3ByZV85LjEvYmFj a2VuZF9zdXBwb3J0LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5lM2Y4ZjRmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC9wcmVfOS4xL2JhY2tl bmRfc3VwcG9ydC5zcWwKQEAgLTAsMCArMSwyMCBAQAorU0VMRUNUCisgICAg Q0FTRSBXSEVOIG5zcC5uc3BuYW1lIElOICgnc3lzJywgJ2RibycsICdpbmZv cm1hdGlvbl9zY2hlbWEnKSBUSEVOIHRydWUgRUxTRSBmYWxzZSBFTkQgQVMg ZGJTdXBwb3J0CitGUk9NCisgICAgcGdfbmFtZXNwYWNlIG5zcAorV0hFUkUK KyAgICBuc3Aub2lkPXt7c2NpZH19OjppbnQKK0FORCAoCisgICAgKG5zcG5h bWUgPSAncGdfY2F0YWxvZycgQU5EIEVYSVNUUworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX2NsYXNzIFdI RVJFIHJlbG5hbWUgPSAncGdfY2xhc3MnIEFORCByZWxuYW1lc3BhY2UgPSBu c3Aub2lkIExJTUlUIDEpKQorICAgIE9SIChuc3BuYW1lID0gJ3BnYWdlbnQn IEFORCBFWElTVFMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoU0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3Bn YV9qb2InIEFORCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEpKQor ICAgIE9SIChuc3BuYW1lID0gJ2luZm9ybWF0aW9uX3NjaGVtYScgQU5EIEVY SVNUUworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTRUxF Q1QgMSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAndGFibGVzJyBB TkQgcmVsbmFtZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAxKSkKKyAgICBPUiAo bnNwbmFtZSBMSUtFICdfJScgQU5EIEVYSVNUUworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX3Byb2MgV0hF UkUgcHJvbmFtZT0nc2xvbnl2ZXJzaW9uJyBBTkQgcHJvbmFtZXNwYWNlID0g bnNwLm9pZCBMSU1JVCAxKSkKKykKK0FORAorICAgIG5zcG5hbWUgTk9UIExJ S0UgRSdwZ1xcdGVtcFxcJScKK0FORAorICAgIG5zcG5hbWUgTk9UIExJS0Ug RSdwZ1xcdG9hc3RfdGVtcFxcJScKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvcHJlXzkuMS9jcmVhdGUu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3Nx bC9wcmVfOS4xL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMmFjMWUzYQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvcHJlXzkuMS9j cmVhdGUuc3FsCkBAIC0wLDAgKzEsMjUgQEAKK3sjPT09PT09PT09PT09PT09 PT09PT09PT09PT09PUNyZWF0ZSBuZXcgdmlldz09PT09PT09PT09PT09PT09 PT09PT09PT0jfQoreyUgaWYgZGlzcGxheV9jb21tZW50cyAlfQorLS0gVmll dzoge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19 CisKKy0tIERST1AgVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEs IGRhdGEubmFtZSkgfX07CisKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLm5h bWUgYW5kIGRhdGEuc2NoZW1hIGFuZCBkYXRhLmRlZmluaXRpb24gJX0KK0NS RUFURSBPUiBSRVBMQUNFIFZJRVcge3sgY29ubnxxdElkZW50KGRhdGEuc2No ZW1hLCBkYXRhLm5hbWUpIH19Cit7JSBpZiAoKGRhdGEuY2hlY2tfb3B0aW9u IGFuZCBkYXRhLmNoZWNrX29wdGlvbi5sb3dlcigpICE9ICdubycpIG9yIGRh dGEuc2VjdXJpdHlfYmFycmllcikgJX0KK1dJVEggKHslIGlmIGRhdGEuY2hl Y2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbi5sb3dlcigpICE9ICdu bycgJX0KK2NoZWNrX29wdGlvbj17eyBkYXRhLmNoZWNrX29wdGlvbiB9fXsl IGVuZGlmICV9e3sgJywgJyBpZiBkYXRhLmNoZWNrX29wdGlvbiBhbmQKK2Rh dGEuY2hlY2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25vJyBhbmQgZGF0YS5zZWN1 cml0eV9iYXJyaWVyIGVsc2UgJycgfX17JSBpZiBkYXRhLnNlY3VyaXR5X2Jh cnJpZXIgJX0KK3NlY3VyaXR5X2JhcnJpZXI9e3sgZGF0YS5zZWN1cml0eV9i YXJyaWVyIH19eyUgZW5kaWYgJX0peyUgZW5kaWYgJX0gQVMKK3t7IGRhdGEu ZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSB9fTsKK3slIGlmIGRhdGEub3duZXIg JX0KKworQUxURVIgVEFCTEUge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1h LCBkYXRhLm5hbWUpIH19CisgICAgT1dORVIgVE8ge3sgZGF0YS5vd25lciB9 fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmNvbW1lbnQgJX0KK0NPTU1F TlQgT04gVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEu bmFtZSkgfX0KKyAgICBJUyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19 OworeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL3ByZV85LjEv ZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3cy9zcWwvcHJlXzkuMS9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjhmYzRlMDEKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL3By ZV85LjEvZGVsZXRlLnNxbApAQCAtMCwwICsxLDkgQEAKK3sjPT09PT09PT09 PT09PT09PT09PT09PT09PT09PURyb3AvQ2FzY2FkZSB2aWV3IGJ5IG5hbWU9 PT09PT09PT09PT09PT09PT09PT09PT09I30KK3slIGlmIHZpZCAlfQorU0VM RUNUIGMucmVsbmFtZSBBcyBuYW1lLCBuc3AubnNwbmFtZQorICAgIEZST00g cGdfY2xhc3MgYworICAgIExFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnNwIG9u IGMucmVsbmFtZXNwYWNlID0gbnNwLm9pZAorICAgIFdIRVJFIGMucmVsZmls ZW5vZGUgPSB7eyB2aWQgfX07Cit7JSBlbGlmIChuYW1lIGFuZCBuc3BuYW1l KSAlfQorRFJPUCBWSUVXIHt7IGNvbm58cXRJZGVudChuc3BuYW1lLCBuYW1l KSB9fSB7JSBpZiBjYXNjYWRlICV9IENBU0NBREUgeyUgZW5kaWYgJX0KK3sl IGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90 ZW1wbGF0ZXMvdmlld3Mvc3FsL3ByZV85LjEvZ3JhbnQuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC9wcmVfOS4xL2dy YW50LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45 ZmE3MTgxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC9wcmVfOS4xL2dyYW50LnNxbApAQCAt MCwwICsxLDE0IEBACit7Iz09PT09R3JhbnQgUGVybWlzc2lvbnMgdG8gVXNl ciBSb2xlIG9uIFZpZXdzL1RhYmxlcz09PT0jfQoreyUgaW1wb3J0ICdtYWNy b3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0 ICdtYWNyb3MvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7 IyBXZSB3aWxsIGdlbmVyYXRlIFNlY3VyaXR5IExhYmVsIFNRTCB1c2luZyBt YWNybyAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGlu IGRhdGEuc2VjbGFiZWxzICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAn VklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJl bCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEu ZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbCAlfQore3sg UFJJVklMRUdFLkFQUExZKGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwg ZGF0YS5uYW1lLCBkYXRhLnNjaGVtYSwgcHJpdi53aXRob3V0X2dyYW50LCBw cml2LndpdGhfZ3JhbnQpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMv dmlld3Mvc3FsL3ByZV85LjEvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL3ByZV85LjEvcHJvcGVy dGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NjFjNGEwZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvcHJlXzkuMS9wcm9wZXJ0aWVzLnNx bApAQCAtMCwwICsxLDY1IEBACit7Iz09PT09PT09PT09PT09PT09PT09PT09 PT09PT1GZXRjaCBWaWV3IFByb3BlcnRpZXM9PT09PT09PT09PT09PT09PT09 PT09PT09I30KK3slIGlmICh2aWQgYW5kIGRhdGxhc3RzeXNvaWQpIG9yIHNj aWQgJX0KK1NFTEVDVCBjLm9pZCwgYy54bWluLCBjLnJlbG5hbWUgQVMgbmFt ZSwgYy5yZWx0YWJsZXNwYWNlIEFTIHNwY29pZCwKKyAgICBjLnJlbGlzcG9w dWxhdGVkIEFTIGlzcG9wdWxhdGVkLCBzcGMuc3BjbmFtZSwgbnNwLm5zcG5h bWUgYXMgc2NoZW1hLAorICAgIHBnX2dldF91c2VyYnlpZChjLnJlbG93bmVy KSBBUyBvd25lciwgZGVzY3JpcHRpb24gQVMgY29tbWVudCwKKyAgICBwZ19n ZXRfdmlld2RlZihjLm9pZCwgdHJ1ZSkgQVMgZGVmaW5pdGlvbiwKKyAgICB7 Iz09PT09PT09PT09PT1DaGVja3MgaWYgaXQgaXMgc3lzdGVtIHZpZXc9PT09 PT09PT09PT09PT09I30KKyAgICB7JSBpZiB2aWQgYW5kIGRhdGxhc3RzeXNv aWQgJX0KKyAgICBDQVNFIFdIRU4ge3t2aWR9fSA8PSB7e2RhdGxhc3RzeXNv aWR9fSBUSEVOIFRydWUgRUxTRSBGYWxzZSBFTkQgQVMgc3lzdGVtX3ZpZXcs CisgICAgeyUgZW5kaWYgJX0KKyAgICB7Iz09PT09PT09PT09PT1DaGVja3Mg aWYgaXQgaXMgbWF0ZXJpYWxpemVkIHZpZXc9PT09PT09PSN9CisgICAgQ0FT RSBXSEVOIGMucmVsa2luZCA9ICdtJyBUSEVOIFRydWUgRUxTRSBGYWxzZSBF TkQgQXMgbV92aWV3LAorICAgIChTRUxFQ1QgYXJyYXlfYWdnKHByb3ZpZGVy IHx8ICc9JyB8fCBsYWJlbCkgRlJPTSBwZ19zZWNsYWJlbHMgc2wxIFdIRVJF IHNsMS5vYmpvaWQ9Yy5vaWQgQU5EIHNsMS5vYmpzdWJpZD0wKSBBUyBzZWNs YWJlbHMKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxv cHRpb25zLCAnLCcpIEZST00gJ2NoZWNrX29wdGlvbj0oW2Etel0qKScpIEFT IGNoZWNrX29wdGlvbgorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmlu ZyhjLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnc2VjdXJpdHlfYmFycmllcj0o W2EtenwwLTldKiknKSBBUyBzZWN1cml0eV9iYXJyaWVyCisgICAgLCBzdWJz dHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKSBGUk9N ICdmaWxsZmFjdG9yPShbMC05XSopJykgQVMgZmlsbGZhY3RvcgorICAgICwg c3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykg RlJPTSAnYXV0b3ZhY3V1bV9lbmFibGVkPShbYS16fDAtOV0qKScpIEFTIGF1 dG92YWN1dW1fZW5hYmxlZAorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0 cmluZyhjLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV92YWN1 dW1fdGhyZXNob2xkPShbMC05XSopJykgQVMgYXV0b3ZhY3V1bV92YWN1dW1f dGhyZXNob2xkCisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMu cmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9zY2Fs ZV9mYWN0b3I9KFswLTldKlsuXVswLTldKiknKSBBUyBhdXRvdmFjdXVtX3Zh Y3V1bV9zY2FsZV9mYWN0b3IKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19z dHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fYW5h bHl6ZV90aHJlc2hvbGQ9KFswLTldKiknKSBBUyBhdXRvdmFjdXVtX2FuYWx5 emVfdGhyZXNob2xkCisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5n KGMucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2FuYWx5emVf c2NhbGVfZmFjdG9yPShbMC05XSpbLl1bMC05XSopJykgQVMgYXV0b3ZhY3V1 bV9hbmFseXplX3NjYWxlX2ZhY3RvcgorICAgICwgc3Vic3RyaW5nKGFycmF5 X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1 bV92YWN1dW1fY29zdF9kZWxheT0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1f dmFjdXVtX2Nvc3RfZGVsYXkKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19z dHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fdmFj dXVtX2Nvc3RfbGltaXQ9KFswLTldKiknKSBBUyBhdXRvdmFjdXVtX3ZhY3V1 bV9jb3N0X2xpbWl0CisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5n KGMucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV9t aW5fYWdlPShbMC05XSopJykgQVMgYXV0b3ZhY3V1bV9mcmVlemVfbWluX2Fn ZQorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlv bnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZT0oWzAt OV0qKScpIEFTIGF1dG92YWN1dW1fZnJlZXplX21heF9hZ2UKKyAgICAsIHN1 YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpIEZS T00gJ2F1dG92YWN1dW1fZnJlZXplX3RhYmxlX2FnZT0oWzAtOV0qKScpIEFT IGF1dG92YWN1dW1fZnJlZXplX3RhYmxlX2FnZQorICAgICwgc3Vic3RyaW5n KGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKSBGUk9NICdh dXRvdmFjdXVtX2VuYWJsZWQ9KFthLXp8MC05XSopJykgQVMgdG9hc3RfYXV0 b3ZhY3V1bV9lbmFibGVkCisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3Ry aW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fdmFj dXVtX3RocmVzaG9sZD0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1f dmFjdXVtX3RocmVzaG9sZAorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0 cmluZyh0c3QucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX3Zh Y3V1bV9zY2FsZV9mYWN0b3I9KFswLTldKlsuXVswLTldKiknKSBBUyB0b2Fz dF9hdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3IKKyAgICAsIHN1YnN0 cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJP TSAnYXV0b3ZhY3V1bV9hbmFseXplX3RocmVzaG9sZD0oWzAtOV0qKScpIEFT IHRvYXN0X2F1dG92YWN1dW1fYW5hbHl6ZV90aHJlc2hvbGQKKyAgICAsIHN1 YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykg RlJPTSAnYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2ZhY3Rvcj0oWzAtOV0q Wy5dWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fYW5hbHl6ZV9zY2Fs ZV9mYWN0b3IKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0 LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fY29z dF9kZWxheT0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fdmFjdXVt X2Nvc3RfZGVsYXkKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmco dHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1f Y29zdF9saW1pdD0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fdmFj dXVtX2Nvc3RfbGltaXQKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJp bmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9mcmVl emVfbWluX2FnZT0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fZnJl ZXplX21pbl9hZ2UKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmco dHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVf bWF4X2FnZT0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fZnJlZXpl X21heF9hZ2UKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0 LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfdGFi bGVfYWdlPShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9mcmVlemVf dGFibGVfYWdlCisgICAgLCBjLnJlbG9wdGlvbnMgQVMgcmVsb3B0aW9ucywg dHN0LnJlbG9wdGlvbnMgQVMgdG9hc3RfcmVsb3B0aW9ucworICAgICwgKENB U0UgV0hFTiBjLnJlbHRvYXN0cmVsaWQgPSAwIFRIRU4gZmFsc2UgRUxTRSB0 cnVlIEVORCkgQVMgaGFzdG9hc3R0YWJsZQorRlJPTSBwZ19jbGFzcyBjCisg ICAgTEVGVCBPVVRFUiBKT0lOIHBnX25hbWVzcGFjZSBuc3Agb24gbnNwLm9p ZCA9IGMucmVsbmFtZXNwYWNlCisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3Rh Ymxlc3BhY2Ugc3BjIG9uIHNwYy5vaWQ9Yy5yZWx0YWJsZXNwYWNlCisgICAg TEVGVCBPVVRFUiBKT0lOIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9i am9pZD1jLm9pZCBhbmQgZGVzLm9ianN1YmlkPTAgQU5EIGRlcy5jbGFzc29p ZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykKKyAgICBMRUZUIE9VVEVSIEpPSU4g cGdfY2xhc3MgdHN0IE9OIHRzdC5vaWQgPSBjLnJlbHRvYXN0cmVsaWQKKyAg ICAgICAgV0hFUkUgKChjLnJlbGhhc3J1bGVzIEFORCAoRVhJU1RTICgKKyAg ICAgICAgICAgIFNFTEVDVCByLnJ1bGVuYW1lIEZST00gcGdfcmV3cml0ZSBy CisgICAgICAgICAgICAgICAgV0hFUkUgKChyLmV2X2NsYXNzID0gYy5vaWQp CisgICAgICAgICAgICAgICAgICAgIEFORCAoYnBjaGFyKHIuZXZfdHlwZSkg PSAnMSc6OmJwY2hhcikpICkpKSBPUiAoYy5yZWxraW5kID0gJ3YnOjpjaGFy KSkKK3slIGlmICh2aWQgYW5kIGRhdGxhc3RzeXNvaWQpICV9CisgICAgICAg IEFORCBjLm9pZCA9IHt7dmlkfX06Om9pZAoreyUgZWxpZiBzY2lkICV9Cisg ICAgICAgIEFORCBjLnJlbG5hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQgT1JE RVIgQlkgYy5yZWxuYW1lCit7JSBlbmRpZiAlfQorCit7JSBlbGlmIHR5cGUg PT0gJ3JvbGVzJyAlfQorU0VMRUNUIHByLnJvbG5hbWUgRlJPTSBwZ19yb2xl cyBwciBXSEVSRSBwci5yb2xjYW5sb2dpbiBPUkRFUiBCWSBwci5yb2xuYW1l CisKK3slIGVsaWYgdHlwZSA9PSAnc2NoZW1hcycgJX0KK1NFTEVDVAorICAg IG5zcC5uc3BuYW1lCitGUk9NCisgICAgcGdfbmFtZXNwYWNlIG5zcAorV0hF UkUKKyAgICAobnNwLm5zcG5hbWUgTk9UIExJS0UgRSdwZ1xcXyUnCisgICAg ICAgIEFORCBuc3AubnNwbmFtZSAhPSAnaW5mb3JtYXRpb25fc2NoZW1hJykK K3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL3ByZV85LjEvdXBkYXRlLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvcHJlXzku MS91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjE4NjcwMzgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL3ByZV85LjEvdXBkYXRlLnNx bApAQCAtMCwwICsxLDgxIEBACit7Iz09PT09PT09PT09PT09PT09PT09PT09 PT09PT1VcGRhdGUgVmlldz09PT09PT09PT09PT09PT09PT09PT09PT0jfQor eyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJM RSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvcHJpdmlsZWdlLm1hY3JvcycgYXMg UFJJVklMRUdFICV9Cit7JSBpZiBkYXRhICV9Cit7JSBzZXQgdmlld19uYW1l ID0gZGF0YS5uYW1lIGlmIGRhdGEubmFtZSBlbHNlIG9fZGF0YS5uYW1lICV9 Cit7JSBzZXQgdmlld19zY2hlbWEgPSBkYXRhLnNjaGVtYSBpZiBkYXRhLnNj aGVtYSBlbHNlIG9fZGF0YS5zY2hlbWEgJX0KK3slIHNldCBkZWYgPSBkYXRh LmRlZmluaXRpb24ucnN0cmlwKCc7JykgaWYgZGF0YS5kZWZpbml0aW9uICV9 Cit7JSBpZiBkYXRhLm5hbWUgYW5kIGRhdGEubmFtZSAhPSBvX2RhdGEubmFt ZSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQob19kYXRhLnNjaGVt YSwgb19kYXRhLm5hbWUpIH19CisgICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJ ZGVudChkYXRhLm5hbWUpIH19OworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEu c2NoZW1hIGFuZCBkYXRhLnNjaGVtYSAhPSBvX2RhdGEuc2NoZW1hICV9CitB TFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudChvX2RhdGEuc2NoZW1hLCB2aWV3 X25hbWUgKSB9fQorICAgIFNFVCBTQ0hFTUEge3sgZGF0YS5zY2hlbWEgfX07 Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5vd25lciBhbmQgZGF0YS5vd25l ciAhPSBvX2RhdGEub3duZXIgJX0KK0FMVEVSIFRBQkxFIHt7IGNvbm58cXRJ ZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIE9XTkVSIFRP IHt7IGRhdGEub3duZXIgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGVmIGFu ZCBkZWYgIT0gb19kYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7JykgJX0KK0NS RUFURSBPUiBSRVBMQUNFIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2No ZW1hLCB2aWV3X25hbWUpIH19Cit7JSBpZiAoZGF0YS5jaGVja19vcHRpb24g YW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9IG9fZGF0YS5jaGVja19vcHRpb24p CisgICAgb3IgKGRhdGEuc2VjdXJpdHlfYmFycmllciBhbmQgZGF0YS5zZWN1 cml0eV9iYXJyaWVyICE9IG9fZGF0YS5zZWN1cml0eV9iYXJyaWVyKSAlfQor ICAgIFdJVEggKHslIGlmIChkYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5j aGVja19vcHRpb24gIT0gJ25vJykgJX1jaGVja19vcHRpb249e3sgZGF0YS5j aGVja19vcHRpb24gfX17JSBlbmRpZiAlfXt7JywgJyBpZiBkYXRhLmNoZWNr X29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gJ25vJyBhbmQgZGF0 YS5zZWN1cml0eV9iYXJyaWVyIH19eyUgaWYgZGF0YS5zZWN1cml0eV9iYXJy aWVyICV9c2VjdXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJp ZXIgfX17JSBlbmRpZiAlfSkKK3slIGVuZGlmICV9CisgICAgQVN7eyBkZWYg fX07Cit7JSBlbHNlICV9Cit7JSBpZiAoZGF0YS5zZWN1cml0eV9iYXJyaWVy IGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgIT0gIG9fZGF0YS5zZWN1cml0 eV9iYXJyaWVyKSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQodmll d19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBTRVQgKHNlY3VyaXR5X2Jh cnJpZXI9e3sgZGF0YS5zZWN1cml0eV9iYXJyaWVyIH19KTsKK3slIGVuZGlm ICV9Cit7JSBpZiAoZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tf b3B0aW9uICE9IG9fZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tf b3B0aW9uICE9ICdubycpICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVu dCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIFNFVCAoY2hlY2tf b3B0aW9uPXt7IGRhdGEuY2hlY2tfb3B0aW9uIH19KTsKK3slIGVsaWYgKGRh dGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAhPSBvX2Rh dGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiA9PSAnbm8n KSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEs IHZpZXdfbmFtZSkgfX0gUkVTRVQgKGNoZWNrX29wdGlvbik7Cit7JSBlbmRp ZiAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuY29tbWVudCBhbmQgZGF0 YS5jb21tZW50ICE9IG9fZGF0YS5jb21tZW50ICV9CitDT01NRU5UIE9OIFZJ RVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19 CisgICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsKK3slIGVu ZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5n ZSBwcml2aWxlZ2VzICN9Cit7JSBpZiBkYXRhLmRhdGFjbCAlfQoreyUgaWYg J2RlbGV0ZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBk YXRhLmRhdGFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxFR0UuUkVTRVRBTEwo Y29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEu c2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYg J2NoYW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBk YXRhLmRhdGFjbC5jaGFuZ2VkICV9Cit7eyBQUklWSUxFR0UuUkVTRVRBTEwo Y29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEu c2NoZW1hKSB9fQore3sgUFJJVklMRUdFLkFQUExZKGNvbm4sICdUQUJMRScs IHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNjaGVtYSwgcHJpdi53 aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQpIH19Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmICV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEuZGF0YWNs ICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5hZGRlZCAlfQore3sg UFJJVklMRUdFLkFQUExZKGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwg ZGF0YS5uYW1lLCBkYXRhLnNjaGVtYSwgcHJpdi53aXRob3V0X2dyYW50LCBw cml2LndpdGhfZ3JhbnQpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9 Cit7JSBlbmRpZiAlfQoreyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2ls bCBjaGFuZ2UgU2VjdXJpdHkgTGFiZWwgI30KK3slIGlmIGRhdGEuc2VjbGFi ZWxzIGlzIG5vdCBub25lIGFuZCBkYXRhLnNlY2xhYmVsc3xsZW5ndGggPiAw ICV9Cit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3sl IGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxl dGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5kZWxl dGVkICV9Cit7eyBTRUNMQUJMRS5EUk9QKGNvbm4sICdWSUVXJywgZGF0YS5u YW1lLCByLnByb3ZpZGVyKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAl fQoreyUgaWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5h ZGRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRk ZWQgJX0KK3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdWSUVXJywgZGF0YS5u YW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9fQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xh YmVscyBhbmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUg Zm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KK3t7IFNFQ0xBQkxFLkFQ UExZKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNl Y3VyaXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQor eyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL3ByZV85LjEvdmll d19pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmll d3Mvc3FsL3ByZV85LjEvdmlld19pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNjU2NDhjMAotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvcHJl XzkuMS92aWV3X2lkLnNxbApAQCAtMCwwICsxLDQgQEAKK3sjPT1CZWxvdyB3 aWxsIHByb3ZpZGUgdmlldyBpZCBmb3IgbGFzdCBjcmVhdGVkIHZpZXc9PSN9 Cit7JSBpZiBkYXRhICV9CitTRUxFQ1QgYy5vaWQgRlJPTSBwZ19jbGFzcyBj IFdIRVJFIGMucmVsbmFtZSA9ICd7eyBkYXRhLm5hbWUgfX0nOworeyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdXRpbHMu cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3V0aWxzLnB5CmluZGV4IDY1NDk4 NTEuLmRiNDQyMjQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv dXRpbHMucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci91dGlscy5weQpA QCAtNDkxLDcgKzQ5MSw3IEBAIGNsYXNzIFBHQ2hpbGROb2RlVmlldyhOb2Rl Vmlldyk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZV9uYW1l ID0gJ3RhYmxlJwogICAgICAgICAgICAgICAgICAgICBlbGlmIHR5cGVfc3Ry WzBdID09ICdSJzoKICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVfbmFt ZSA9ICdydWxlJwotICAgICAgICAgICAgICAgICAgICAgICAgcmVmX25hbWUg PSBfcmVmX25hbWUgKyAnIE9OICcgKyBfcmVmX25hbWUgKyByb3dbJ293bmVy dGFibGUnXQorICAgICAgICAgICAgICAgICAgICAgICAgcmVmX25hbWUgPSBf cmVmX25hbWUgKyAnIE9OICcgKyByZWZfbmFtZSArIHJvd1snb3duZXJ0YWJs ZSddCiAgICAgICAgICAgICAgICAgICAgICAgICBfcmVmX25hbWUgPSBOb25l CiAgICAgICAgICAgICAgICAgICAgIGVsaWYgdHlwZV9zdHJbMF0gPT0gJ0Mn OgogICAgICAgICAgICAgICAgICAgICAgICAgaWYgdHlwZV9zdHJbMV0gPT0g J2MnOgo= --001a114b3fde843d01052c841776 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 --001a114b3fde843d01052c841776--