Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aanqz-0008M1-SK for pgadmin-hackers@arkaria.postgresql.org; Tue, 01 Mar 2016 17:12:58 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aanqz-0002EI-Ay for pgadmin-hackers@arkaria.postgresql.org; Tue, 01 Mar 2016 17:12:57 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1aanqt-0002Dw-B6 for pgadmin-hackers@postgresql.org; Tue, 01 Mar 2016 17:12:52 +0000 Received: from mail-ig0-x233.google.com ([2607:f8b0:4001:c05::233]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aanqo-0007ZX-Lw for pgadmin-hackers@postgresql.org; Tue, 01 Mar 2016 17:12:49 +0000 Received: by mail-ig0-x233.google.com with SMTP id y8so23118448igp.1 for ; Tue, 01 Mar 2016 09:12:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pgadmin-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=FE22wBNTYfCE8rqKZ4ajTOR+cfXiOB5ia7nmcRhPHkQ=; b=Ntl9uC43PPdqJ+5meH53YJyhzCSe3HS4dqhgwhMjnGnxAAMsB0xlamghr2ZUxoSIYl LQArSfjF7XyjQc0+XDzBxWRttouM9aG44kaRfadnR/+oXg0i56W/TDHUf2cLrXjAw1jQ w3aomjq7Rss2jM9hxHKsRXtQlzg5eQQKToh1alfTFauUyknr96S1ZuOQB/qs5nQplVLd TpTvQMNxyiTLsIukf7iZ9qyI3MOAMkc08D+rCtno6mEyMDdrmx9RDO5wcq9mxdCe/xlP NJvCNwuYPc5CmXKkZ9UCZBNGiqsumnHTePn28vXlt8voHF/Pcmgpk3bLt6Lv/7yckjrY wQqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=FE22wBNTYfCE8rqKZ4ajTOR+cfXiOB5ia7nmcRhPHkQ=; b=iFc+/cxivt8hR+PEyW86h1DxFX88rxSXp/dJy1+GybgFTYuKCmR2TzIf0r7DVM+aAp 1DO/jZ8o5FiuXJrkmCaFIe099blAJe6WJTGZK6cyh338cz8vfXbPuOmI/Csge3JWVqox CF6AZar1mBxX2umcYApu6ph3B/Ow2jGHFvAUhbv1+D1BlngJM1mWtODB6wwRaPsl1xxv xM/hW+4Y56enWD6rs+o4DFHykbkli2Ija05Ww8nYbMBmroeoyMD276WrGDpLRwI1ZvHn Z5XMOT19cq9EAjoGeFqOVxR3mzQUr3eOg3/vyfCrcK6edSCJ002YVk2h8Y1a67YNMhzT 7J2w== X-Gm-Message-State: AD7BkJKGAcd9xWimSwOEApTOD4WinvvKUJCbSPCL0NsXoUxD/SxswFzaXrYnjtX6Wml27NABiGojAIMioZKARg== MIME-Version: 1.0 X-Received: by 10.50.134.129 with SMTP id pk1mr120929igb.11.1456852365830; Tue, 01 Mar 2016 09:12:45 -0800 (PST) Received: by 10.64.90.3 with HTTP; Tue, 1 Mar 2016 09:12:45 -0800 (PST) In-Reply-To: References: Date: Tue, 1 Mar 2016 17:12:45 +0000 Message-ID: Subject: Re: [pgAdmin4] PATCH: View and Role Node From: Dave Page To: Surinder Kumar Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=047d7b2e3fe6c1bc5c052cffdfe9 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 --047d7b2e3fe6c1bc5c052cffdfe9 Content-Type: text/plain; charset=UTF-8 Sorry - I believe this is it (I had to rescue it from the trash). On Tue, Mar 1, 2016 at 5:16 AM, Surinder Kumar wrote: > Dave you forgot to attach patch. Can you please attach it ? > > On Thu, Feb 25, 2016 at 4:33 PM, Dave Page wrote: >> >> Hi >> >> On Wed, Feb 24, 2016 at 1:31 PM, Surinder Kumar >> wrote: >>> >>> 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. >> >> >> Please find an updated patch attached, in which I tweaked some comments >> and fixed a few minor issues as I reviewed the code. The following issues >> need to be addressed please, then I'll take another look: >> >> - Don't show the definition SQL in the main properties tab. >> >> - Check Options is missing from the properties tab. >> >> - Views were made function in PostgreSQL v6.4! Why only load the module >> for 9.1+? >> >> - The TRUNCATE ACL flag is not recognised, leading to ACLs being shown as: >> arwdUNKNOWNxt >> >> - 4 character indents are not applied consistently to SQL templates >> >> - Why do servers pre-9.3 have VACUUM options in the SQL templates? >> >> - There should be no special casing of Slony schemas (backend_support.sql) >> >> - Don't include \'s on line ends of multiline comments or docstrings. >> >> - I can't create a Materialised View >> >> On the dialogs: >> >> - The "Definition" input box should have a border. >> >> - The "Definition" input box fill the vertical space assigned to it, >> such that the border on the left runs top to bottom (see the main SQL tab). >> >> - The "Definition" input box should be displayed below the label at all >> times (unlike other controls), to maximise available space >> >> - The SQL tab view is broken for views (tested on PG 9.4), likely due to >> the TRUNCATE ACL issue: >> >> 2016-02-25 10:59:00,118: INFO werkzeug: 127.0.0.1 - - [25/Feb/2016 >> 10:59:00] "GET /browser/view/sql/1/1/24587/27424/27555 HTTP/1.1" 500 - >> Traceback (most recent call last): >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1836, in __call__ >> return self.wsgi_app(environ, start_response) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1820, in wsgi_app >> response = self.make_response(self.handle_exception(e)) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1403, in handle_exception >> reraise(exc_type, exc_value, tb) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1817, in wsgi_app >> response = self.full_dispatch_request() >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1477, in full_dispatch_request >> rv = self.handle_user_exception(e) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1381, in handle_user_exception >> reraise(exc_type, exc_value, tb) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1475, in full_dispatch_request >> rv = self.dispatch_request() >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> line 1461, in dispatch_request >> return self.view_functions[rule.endpoint](**req.view_args) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/views.py", >> line 84, in view >> return self.dispatch_request(*args, **kwargs) >> File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/utils.py", line 248, >> in dispatch_request >> return method(*args, **kwargs) >> File >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py", >> line 242, in wrap >> return f(*args, **kwargs) >> File >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py", >> line 646, in sql >> result['datacl'] = self.parse_privileges(result['datacl']) >> File >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py", >> line 540, in parse_privileges >> db_privileges[privilege['privilege_type']]) >> KeyError: 'UNKNOWN' >> >> >> Thanks! >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company > > -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company --047d7b2e3fe6c1bc5c052cffdfe9 Content-Type: application/octet-stream; name="view_and_role_node_v2-dave.patch" Content-Disposition: attachment; filename="view_and_role_node_v2-dave.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_il9oafss0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL19faW5pdF9fLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvX19pbml0X18ucHkKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWEyNjA1YwotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL19faW5pdF9fLnB5CkBA IC0wLDAgKzEsNzIzIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj 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 Y2F0YWxvZ3MgXAorICAgICAgICB0aGVuIGFsbG93IHVzIHRvIGRlY2lkZSB3 aGV0aGVyIHdlIHdhbnQgdG8gbG9hZCB0aGlzIG1vZHVsZSBvciBcCisgICAg ICAgIG5vdCBmb3IgdGhhdCBzY2hlbWEKKyAgICAgICAgIiIiCisgICAgICAg IGlmIHN1cGVyKFZpZXdNb2R1bGUsIHNlbGYpLkJhY2tlbmRTdXBwb3J0ZWQo bWFuYWdlciwgKiprd2FyZ3MpOgorICAgICAgICAgICAgY29ubiA9IG1hbmFn ZXIuY29ubmVjdGlvbigpCisgICAgICAgICAgICAjIElmIERCIGlzIG5vdCBj b25uZWN0ZWQgdGhlbiByZXR1cm4gZXJyb3IgdG8gYnJvd3NlcgorICAgICAg ICAgICAgaWYgbm90IGNvbm4uY29ubmVjdGVkKCk6CisgICAgICAgICAgICAg ICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJlZCgKKyAgICAgICAgICAg ICAgICAgICAgZ2V0dGV4dCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxvc3QhIgor ICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKQorICAg ICAgICAgICAgdmVyID0gbWFuYWdlci52ZXJzaW9uCisgICAgICAgICAgICBz ZXJ2ZXJfdHlwZSA9IG1hbmFnZXIuc2VydmVyX3R5cGUKKyAgICAgICAgICAg ICMgd2Ugd2lsbCBzZXQgdGVtcGxhdGUgcGF0aCBmb3Igc3FsIHNjcmlwdHMK KyAgICAgICAgICAgIGlmIHNlcnZlcl90eXBlID09ICdwcGFzJyBhbmQgdmVy ID49IDkwMTAwOgorICAgICAgICAgICAgICAgIHRlbXBsYXRlX3BhdGggPSAn dGVtcGxhdGVzL3ZpZXdzL3NxbC9lZGJfOS4xX3BsdXMnCisgICAgICAgICAg ICBlbGlmIHZlciA+PSA5MDEwMDoKKyAgICAgICAgICAgICAgICB0ZW1wbGF0 ZV9wYXRoID0gJ3RlbXBsYXRlcy92aWV3cy9zcWwvOS40X3BsdXMnCisgICAg ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMgTm90ZTogVmlldyBp cyBub3Qgc3VwcG9ydGVkIGJlbG93IHBvc3RncmVzIHZlcnNpb24gOS4xCisg ICAgICAgICAgICAgICAgIyBIZW5jZSB3ZSB3aWxsIG5vdCBsb2FkIHRoaXMg bW9kdWxlCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAg ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbCisgICAg ICAgICAgICAgIHRlbXBsYXRlX3BhdGgsICdiYWNrZW5kX3N1cHBvcnQuc3Fs J10pLCBzY2lkPWt3YXJnc1snc2NpZCddKQorICAgICAgICAgICAgc3RhdHVz LCByZXMgPSBjb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAg ICMgY2hlY2sgaWYgYW55IGVycm9ycworICAgICAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgICAgICMgQ2hlY2sgc2Np ZCBpcyBjYXRhbG9nIGFuZCBmcm9tICdzeXMnLCAnZGJvJywgXAorICAgICAg ICAgICAgIyAnaW5mb3JtYXRpb25fc2NoZW1hJyx0aGVuIEZhbHNlIChEbyBu b3QgbG9hZCB0aGlzIG1vZHVsZSksIFwKKyAgICAgICAgICAgICMgb3RoZXdp c2UgVHJ1ZQorICAgICAgICAgICAgaWYgcmVzIGlzIFRydWU6CisgICAgICAg ICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgZ2V0X25vZGVz KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAg ICAgICAgR2VuZXJhdGUgdGhlIGNvbGxlY3Rpb24gbm9kZQorICAgICAgICAi IiIKKyAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxl Y3Rpb25fbm9kZShzY2lkKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHNj cmlwdF9sb2FkKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgTG9hZCB0 aGUgbW9kdWxlIHNjcmlwdCBmb3Igdmlld3MsIHdoZW4gYW55IGRhdGFiYXNl IG5vZGUgaXMKKyAgICAgICAgaW5pdGlhbGl6ZWQsIGFzIHZpZXdzIGFyZSB1 bmRlciBjYXRhbG9ncyBhbmQgc2NoZW1hcyAuCisgICAgICAgICIiIgorICAg ICAgICByZXR1cm4gc2NoZW1hcy5TY2hlbWFNb2R1bGUuTk9ERV9UWVBFCisK KyAgICBAcHJvcGVydHkKKyAgICBkZWYgY3Nzc25pcHBldHMoc2VsZik6Cisg ICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIGEgc25pcHBldCBvZiBjc3Mg dG8gaW5jbHVkZSBpbiB0aGUgcGFnZQorICAgICAgICAiIiIKKyAgICAgICAg c25pcHBldHMgPSBbCisgICAgICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRl KAorICAgICAgICAgICAgICAgICAgICAiYnJvd3Nlci9jc3MvY29sbGVjdGlv bi5jc3MiLAorICAgICAgICAgICAgICAgICAgICBub2RlX3R5cGU9c2VsZi5u b2RlX3R5cGUsCisgICAgICAgICAgICAgICAgICAgIF89Z2V0dGV4dAorICAg ICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgIHJlbmRlcl90 ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgInRlbXBsYXRlcy92aWV3 cy9jc3Mvdmlldy5jc3MiLAorICAgICAgICAgICAgICAgICAgICBub2RlX3R5 cGU9c2VsZi5ub2RlX3R5cGUsCisgICAgICAgICAgICAgICAgICAgIF89Z2V0 dGV4dAorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAg XQorCisgICAgICAgIGZvciBzdWJtb2R1bGUgaW4gc2VsZi5zdWJtb2R1bGVz OgorICAgICAgICAgICAgc25pcHBldHMuZXh0ZW5kKHN1Ym1vZHVsZS5jc3Nz bmlwcGV0cykKKworICAgICAgICByZXR1cm4gc25pcHBldHMKKworIyBTZXQg dGVtcGxhdGVfZm9sZGVyIHRvIHZpZXdzLGFzIHZpZXcgYWxzbyB1c2VzIHJ1 bGVzIHNxbCB0ZW1wbGF0ZXMuCitibHVlcHJpbnQgPSBWaWV3TW9kdWxlKF9f bmFtZV9fLCB0ZW1wbGF0ZV9mb2xkZXI9Ii4uL3ZpZXdzIikKKworCitjbGFz cyBWaWV3Tm9kZShQR0NoaWxkTm9kZVZpZXcpOgorICAgICIiIgorICAgIFRo aXMgaXMgYSBjbGFzcyBmb3IgdmlldyBub2RlIHdoaWNoIGluaGVyaXRzIHRo ZQorICAgIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgZnJvbSBQR0NoaWxkTm9k ZVZpZXcgY2xhc3MgYW5kIGRlZmluZQorICAgIHZhcmlvdXMgbWV0aG9kcyB0 byBsaXN0LCBjcmVhdGUsIHVwZGF0ZSBhbmQgZGVsZXRlIHZpZXcuCisKKyAg ICBWYXJpYWJsZXM6CisgICAgLS0tLS0tLS0tCisgICAgKiBub2RlX3R5cGUg LSB0ZWxscyB3aGljaCB0eXBlIG9mIG5vZGUgaXQgaXMKKyAgICAqIHBhcmVu dF9pZHMgLSBpZCB3aXRoIGl0cyB0eXBlIGFuZCBuYW1lIG9mIHBhcmVudCBu b2RlcworICAgICogaWRzIC0gaWQgd2l0aCB0eXBlIGFuZCBuYW1lIG9mIGV4 dGVuc2lvbiBtb2R1bGUgYmVpbmcgdXNlZC4KKyAgICAqIG9wZXJhdGlvbnMg LSBmdW5jdGlvbiByb3V0ZXMgbWFwcGluZ3MgZGVmaW5lZC4KKyAgICAiIiIK KyAgICBub2RlX3R5cGUgPSBibHVlcHJpbnQubm9kZV90eXBlCisKKyAgICBw YXJlbnRfaWRzID0gWworICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdp ZCc6ICdnaWQnfSwKKyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQn OiAnc2lkJ30sCisgICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzog J2RpZCd9LAorICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdz Y2lkJ30KKyAgICAgICAgICAgIF0KKyAgICBpZHMgPSBbCisgICAgICAgICAg ICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3ZpZCd9CisgICAgICAgICAgICBd CisKKyAgICBvcGVyYXRpb25zID0gZGljdCh7CisgICAgICAgICdvYmonOiBb CisgICAgICAgICAgICB7J2dldCc6ICdwcm9wZXJ0aWVzJywgJ2RlbGV0ZSc6 ICdkZWxldGUnLCAncHV0JzogJ3VwZGF0ZSd9LAorICAgICAgICAgICAgeydn ZXQnOiAnbGlzdCcsICdwb3N0JzogJ2NyZWF0ZSd9CisgICAgICAgIF0sCisg ICAgICAgICdjaGlsZHJlbic6IFt7CisgICAgICAgICAgICAnZ2V0JzogJ2No aWxkcmVuJworICAgICAgICB9XSwKKyAgICAgICAgJ2RlbGV0ZSc6IFt7J2Rl bGV0ZSc6ICdkZWxldGUnfV0sCisgICAgICAgICdub2Rlcyc6IFt7J2dldCc6 ICdub2RlJ30sIHsnZ2V0JzogJ25vZGVzJ31dLAorICAgICAgICAnc3FsJzog W3snZ2V0JzogJ3NxbCd9XSwKKyAgICAgICAgJ21zcWwnOiBbeydnZXQnOiAn bXNxbCd9LCB7J2dldCc6ICdtc3FsJ31dLAorICAgICAgICAnc3RhdHMnOiBb eydnZXQnOiAnc3RhdGlzdGljcyd9XSwKKyAgICAgICAgJ2RlcGVuZGVuY3kn OiBbeydnZXQnOiAnZGVwZW5kZW5jaWVzJ31dLAorICAgICAgICAnZGVwZW5k ZW50JzogW3snZ2V0JzogJ2RlcGVuZGVudHMnfV0sCisgICAgICAgICdtb2R1 bGUuanMnOiBbe30sIHt9LCB7J2dldCc6ICdtb2R1bGVfanMnfV0sCisgICAg ICAgICdjb25maWdzJzogW3snZ2V0JzogJ2NvbmZpZ3MnfV0KKyAgICB9KQor CisgICAgZGVmIG1vZHVsZV9qcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAg ICAgIFRoaXMgcHJvcGVydHkgZGVmaW5lcyB3aGV0aGVyIEphdmFzY3JpcHQg ZXhpc3RzIGZvciB0aGlzIG5vZGUuCisgICAgICAgICIiIgorICAgICAgICBy ZXR1cm4gbWFrZV9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZW5kZXJf dGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICJ0ZW1wbGF0ZXMvdmll d3MvanMvdmlld3MuanMiLAorICAgICAgICAgICAgICAgICAgICBfPWdldHRl eHQKKyAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAy MDAsIHsnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtamF2YXNjcmlw dCd9CisgICAgICAgICAgICAgICAgKQorCisgICAgZGVmIGNoZWNrX3ByZWNv bmRpdGlvbihmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rp b24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVj ayB0aGUKKyAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVu bmluZyB0aGUgdmlldy4gSXQgd2lsbCBhbHNvIGF0dGFjaAorICAgICAgICBt YW5hZ2VyLCBjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNl bGYKKyAgICAgICAgIiIiCisgICAgICAgIEB3cmFwcyhmKQorICAgICAgICBk ZWYgd3JhcCgqYXJncywgKiprd2FyZ3MpOgorCisgICAgICAgICAgICAjIEhl cmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJncyB3aWxsIGhvbGQg Z2lkLHNpZCxkaWQKKyAgICAgICAgICAgIHNlbGYgPSBhcmdzWzBdCisgICAg ICAgICAgICBzZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVyKAorICAgICAgICAg ICAgICBQR19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5hZ2VyKGt3 YXJnc1snc2lkJ10pCisgICAgICAgICAgICBzZWxmLmNvbm4gPSBzZWxmLm1h bmFnZXIuY29ubmVjdGlvbihkaWQ9a3dhcmdzWydkaWQnXSkKKworICAgICAg ICAgICAgIyBJZiBEQiBub3QgY29ubmVjdGVkIHRoZW4gcmV0dXJuIGVycm9y IHRvIGJyb3dzZXIKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29u bmVjdGVkKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlv bl9yZXF1aXJlZCgKKyAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUg c2VydmVyIGhhcyBiZWVuIGxvc3QhIgorICAgICAgICAgICAgICAgICAgICAp CisgICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICBzZWxmLmRhdGxh c3RzeXNvaWQgPSBzZWxmLm1hbmFnZXIuZGJfaW5mb1sKKyAgICAgICAgICAg ICAga3dhcmdzWydkaWQnXV1bJ2RhdGxhc3RzeXNvaWQnXQorICAgICAgICAg ICAgdmVyID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24KKworICAgICAgICAgICAg IyB3ZSB3aWxsIHNldCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2NyaXB0cwor ICAgICAgICAgICAgaWYgdmVyID49IDkwNDAwOgorICAgICAgICAgICAgICAg IHNlbGYudGVtcGxhdGVfcGF0aCA9ICd0ZW1wbGF0ZXMvdmlld3Mvc3FsLzku NF9wbHVzJworICAgICAgICAgICAgZWxpZiB2ZXIgPj0gOTAzMDA6CisgICAg ICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ3RlbXBsYXRlcy92 aWV3cy9zcWwvOS4zX3BsdXMnCisgICAgICAgICAgICBlbGlmIHZlciA+PSA5 MDIwMDoKKyAgICAgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGggPSAn dGVtcGxhdGVzL3ZpZXdzL3NxbC85LjJfcGx1cycKKyAgICAgICAgICAgIGVs aWYgdmVyID49IDkwMTAwOgorICAgICAgICAgICAgICAgIHNlbGYudGVtcGxh dGVfcGF0aCA9ICd0ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuMV9wbHVzJworICAg ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLnRlbXBsYXRl X3BhdGggPSAndGVtcGxhdGVzL3ZpZXdzL3NxbC9wcmVfOS4xJworCisgICAg ICAgICAgICByZXR1cm4gZigqYXJncywgKiprd2FyZ3MpCisKKyAgICAgICAg cmV0dXJuIHdyYXAKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBk ZWYgbGlzdChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgICAg IiIiCisgICAgICAgIEZldGNoZXMgYWxsIHZpZXdzIHByb3BlcnRpZXMgYW5k IHJlbmRlciBpbnRvIHByb3BlcnRpZXMgdGFiCisgICAgICAgICIiIgorICAg ICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAg ICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLCBz Y2lkPXNjaWQpCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4 ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9cmVzKQorICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAg ICAgICAgICAgICByZXNwb25zZT1yZXNbJ3Jvd3MnXSwKKyAgICAgICAgICAg ICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCisgICAgQGNo ZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBub2RlcyhzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzY2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIExpc3RzIGFs bCB2aWV3cyB1bmRlciB0aGUgVmlld3MgQ29sbGVjdGlvbiBub2RlCisgICAg ICAgICIiIgorICAgICAgICByZXMgPSBbXQorICAgICAgICBTUUwgPSByZW5k ZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgW3NlbGYudGVtcGxh dGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLCBzY2lkPXNjaWQpCisgICAg ICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXko U1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yc2V0KQorCisg ICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAg cmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5ibHVlcHJp bnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAgICAgICAgICAgICAg ICAgICAgcm93WydvaWQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNj aWQsCisgICAgICAgICAgICAgICAgICAgICAgICByb3dbJ25hbWUnXSwKKyAg ICAgICAgICAgICAgICAgICAgICAgIGljb249Imljb24tdmlldyIKKyAgICAg ICAgICAgICAgICAgICAgKSkKKworICAgICAgICByZXR1cm4gbWFrZV9qc29u X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIGRhdGE9cmVzLAorICAgICAg ICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAgICApCisKKyAg ICBkZWYgcGFyc2Vfdmlld3NfcHJpdmlsZWdlcyhzZWxmLCBkYl9wcml2aWxl Z2VzKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gZm9y bXMgYSBzZXBhcmF0ZSBsaXN0IG9mIGdyYW50YWJsZQorICAgICAgICBhbmQg bm9uIGdyYW50YWJsZSBwcml2aWxlZ2VzLgorICAgICAgICAiIiIKKyAgICAg ICAgYWNsID0geydncmFudG9yJzogZGJfcHJpdmlsZWdlc1snZ3JhbnRvcidd LAorICAgICAgICAgICAgICAgJ2dyYW50ZWUnOiBkYl9wcml2aWxlZ2VzWydn cmFudGVlJ10sCisgICAgICAgICAgICAgICAncHJpdmlsZWdlcyc6IFtdCisg ICAgICAgICAgICAgICB9CisKKyAgICAgICAgcHJpdmlsZWdlcyA9IFtdCisg ICAgICAgIGZvciBpZHgsIHByaXYgaW4gZW51bWVyYXRlKGRiX3ByaXZpbGVn ZXNbJ3ByaXZpbGVnZXMnXSk6CisgICAgICAgICAgICBpZiBkYl9wcml2aWxl Z2VzWydncmFudGFibGUnXVtpZHhdOgorICAgICAgICAgICAgICAgIHByaXZp bGVnZXMuYXBwZW5kKHsicHJpdmlsZWdlX3R5cGUiOiBwcml2LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJpdmlsZWdlIjogVHJ1 ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpdGhf Z3JhbnQiOiBUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHBy aXZpbGVnZXMuYXBwZW5kKHsicHJpdmlsZWdlX3R5cGUiOiBwcml2LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJpdmlsZWdlIjog VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndp dGhfZ3JhbnQiOiBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KQorCisgICAgICAgIGFjbFsncHJpdmlsZWdlcyddID0gcHJp dmlsZWdlcworCisgICAgICAgIHJldHVybiBhY2wKKworICAgIEBjaGVja19w cmVjb25kaXRpb24KKyAgICBkZWYgcHJvcGVydGllcyhzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzY2lkLCB2aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgRmV0 Y2hlcyB0aGUgcHJvcGVydGllcyBvZiBhbiBpbmRpdmlkdWFsIHZpZXcKKyAg ICAgICAgYW5kIHJlbmRlciBpbiB0aGUgcHJvcGVydGllcyB0YWIKKyAgICAg ICAgIiIiCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9p bigKKyAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0 aWVzLnNxbCddCisgICAgICAgICAgKSwgdmlkPXZpZCwgZGF0bGFzdHN5c29p ZD1zZWxmLmRhdGxhc3RzeXNvaWQpCisgICAgICAgIHN0YXR1cywgcmVzID0g c2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAgIGlmIG5vdCBz dGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKAorICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgs ICdhY2wuc3FsJ10pLCB2aWQ9dmlkKQorICAgICAgICBzdGF0dXMsIGRhdGFj bHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICBp ZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl cnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgZm9yIHJvdyBp biBkYXRhY2xyZXNbJ3Jvd3MnXToKKyAgICAgICAgICAgIHByaXYgPSBzZWxm LnBhcnNlX3ZpZXdzX3ByaXZpbGVnZXMocm93KQorICAgICAgICAgICAgaWYg cm93WydkZWZ0eXBlJ10gaW4gcmVzWydyb3dzJ11bMF06CisgICAgICAgICAg ICAgICAgcmVzWydyb3dzJ11bMF1bcm93WydkZWZ0eXBlJ11dLmFwcGVuZChw cml2KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXNb J3Jvd3MnXVswXVtyb3dbJ2RlZnR5cGUnXV0gPSBbcHJpdl0KKworICAgICAg ICByZXN1bHQgPSByZXNbJ3Jvd3MnXVswXQorCisgICAgICAgICMgc2VuZGlu ZyByZXN1bHQgdG8gZm9ybXR0ZXIKKyAgICAgICAgZnJtdGRfcmVzbHQgPSBz ZWxmLmZvcm1hdHRlcihyZXN1bHQpCisKKyAgICAgICAgIyBtZXJnaW5nIGZv cm1hdGVkIHJlc3VsdCB3aXRoIG1haW4gcmVzdWx0IGFnYWluCisgICAgICAg IHJlc3VsdC51cGRhdGUoZnJtdGRfcmVzbHQpCisgICAgICAgIHJldHVybiBh amF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIHJlc3BvbnNlPXJlc3Vs dCwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAg ICAgKQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBmb3JtYXR0ZXIo cmVzdWx0KToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gZm9ybWF0cyBv dXRwdXQgZm9yIHNlY3VyaXR5IGxhYmVsICYgdmFyaWFibGVzIiIiCisgICAg ICAgIGZybXRkX3Jlc3VsdCA9IGRpY3QoKQorICAgICAgICBzZWNfbGJscyA9 IFtdCisgICAgICAgIGlmICdzZWNsYWJlbHMnIGluIHJlc3VsdCBhbmQgcmVz dWx0WydzZWNsYWJlbHMnXSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGZv ciBzZWMgaW4gcmVzdWx0WydzZWNsYWJlbHMnXToKKyAgICAgICAgICAgICAg ICBpbXBvcnQgcmUKKyAgICAgICAgICAgICAgICBzZWMgPSByZS5zZWFyY2go cicoW149XSspPSguKiQpJywgc2VjKQorICAgICAgICAgICAgICAgIHNlY19s YmxzLmFwcGVuZCh7CisgICAgICAgICAgICAgICAgICAgICdwcm92aWRlcic6 IHNlYy5ncm91cCgxKSwKKyAgICAgICAgICAgICAgICAgICAgJ3NlY3VyaXR5 X2xhYmVsJzogc2VjLmdyb3VwKDIpCisgICAgICAgICAgICAgICAgICAgIH0p CisKKyAgICAgICAgZnJtdGRfcmVzdWx0LnVwZGF0ZSh7InNlY2xhYmVscyI6 IHNlY19sYmxzfSkKKyAgICAgICAgcmV0dXJuIGZybXRkX3Jlc3VsdAorCisg ICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBjcmVhdGUoc2VsZiwg Z2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAgICIiIgorICAgICAgICBU aGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlIGEgbmV3IHZpZXcgb2JqZWN0Cisg 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 ICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIGEg dmlldyBvYmplY3QKKyAgICAgICAgIiIiCisgICAgICAgIGRhdGEgPSByZXF1 ZXN0LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVsc2UgXAorICAgICAgICAgICAg anNvbi5sb2FkcyhyZXF1ZXN0LmRhdGEuZGVjb2RlKCkpCisgICAgICAgIFNR TCA9IHNlbGYuZ2V0U1FMKGdpZCwgc2lkLCBkYXRhLCB2aWQpCisgICAgICAg IHRyeToKKyAgICAgICAgICAgIGlmIFNRTCBhbmQgaXNpbnN0YW5jZShTUUws IGJhc2VzdHJpbmcpIGFuZCBcCisgICAgICAgICAgICAgICAgICBTUUwuc3Ry aXAoJ1xuJykgYW5kIFNRTC5zdHJpcCgnICcpOgorICAgICAgICAgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkK KyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVz cG9uc2UoCisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAg ICAgICAgICAgICAgICAgaW5mbz1nZXR0ZXh0KCJWaWV3IHVwZGF0ZWQiKSwK KyAgICAgICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAgICAgICAgICAg ICAgICAgICAnaWQnOiB2aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAn c2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2dpZCc6IGdp ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdkaWQnOiBkaWQKKyAgICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9y ZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAg ICAgICAgICAgICAgICAgICBpbmZvPWdldHRleHQoIk5vdGhpbmcgdG8gdXBk YXRlIiksCisgICAgICAgICAgICAgICAgICAgIGRhdGE9eworICAgICAgICAg ICAgICAgICAgICAgICAgJ2lkJzogdmlkLAorICAgICAgICAgICAgICAgICAg ICAgICAgJ3NpZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdn aWQnOiBnaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZGlkJzogZGlk CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICApCisK KyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkp CisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGRlbGV0ZShz ZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB2aWQpOgorICAgICAgICAiIiIK KyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGRyb3AgYSB2aWV3IG9iamVj 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 Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHJl dHVybnMgbW9kaWZpZWQgU1FMCisgICAgICAgICIiIgorICAgICAgICBkYXRh ID0ge30KKyAgICAgICAgZm9yIGssIHYgaW4gcmVxdWVzdC5hcmdzLml0ZW1z KCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZGF0YVtr XSA9IGpzb24ubG9hZHModikKKyAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVy cm9yOgorICAgICAgICAgICAgICAgIGRhdGFba10gPSB2CisKKyAgICAgICAg U1FMID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQsIGRhdGEsIHZpZCkKKyAgICAg ICAgaWYgU1FMIGFuZCBpc2luc3RhbmNlKFNRTCwgYmFzZXN0cmluZykgYW5k IFwKKyAgICAgICAgICAgICAgICBTUUwuc3RyaXAoJ1xuJykgYW5kIFNRTC5z dHJpcCgnICcpOgorICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNw b25zZSgKKyAgICAgICAgICAgICAgICAgICAgZGF0YT1TUUwsCisgICAgICAg ICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAgICAgICAg KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNv bl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgZGF0YT1nZXR0ZXh0 KCItLSBOb3RoaW5nIGNoYW5nZWQiKSwKKyAgICAgICAgICAgICAgICAgICAg c3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICAgICApCisKKyAgICBAc3Rh dGljbWV0aG9kCisgICAgZGVmIHBhcnNlX3ByaXZpbGVnZXMoc3RyX3ByaXZp bGVnZXMsIG9iamVjdF90eXBlPSdWSUVXJyk6CisgICAgICAgICIiIlBhcnNl IFByaXZpbGVnZXMuIiIiCisgICAgICAgIGRiX3ByaXZpbGVnZXMgPSB7Cisg ICAgICAgICAgICAnYSc6ICdJTlNFUlQnLAorICAgICAgICAgICAgJ3InOiAn U0VMRUNUJywKKyAgICAgICAgICAgICd3JzogJ1VQREFURScsCisgICAgICAg ICAgICAnZCc6ICdERUxFVEUnLAorICAgICAgICAgICAgJ3gnOiAnUkVGRVJF TkNFJywKKyAgICAgICAgICAgICd0JzogJ1RSSUdHRVInCisgICAgICAgICAg ICB9CisgICAgICAgIHByaXZpbGVnZXMgPSBbXQorICAgICAgICBmb3IgcHJp diBpbiBzdHJfcHJpdmlsZWdlczoKKyAgICAgICAgICAgIHByaXZfd2l0aF9n cmFudCA9IFtdCisgICAgICAgICAgICBwcml2X3dpdGhvdXRfZ3JhbnQgPSBb XQorICAgICAgICAgICAgZm9yIHByaXZpbGVnZSBpbiBwcml2Wydwcml2aWxl Z2VzJ106CisgICAgICAgICAgICAgICAgaWYgcHJpdmlsZWdlWyd3aXRoX2dy YW50J106CisgICAgICAgICAgICAgICAgICAgIHByaXZfd2l0aF9ncmFudC5h cHBlbmQoCisgICAgICAgICAgICAgICAgICAgICAgZGJfcHJpdmlsZWdlc1tw cml2aWxlZ2VbJ3ByaXZpbGVnZV90eXBlJ11dKQorICAgICAgICAgICAgICAg IGVsaWYgcHJpdmlsZWdlWydwcml2aWxlZ2UnXToKKyAgICAgICAgICAgICAg ICAgICAgcHJpdl93aXRob3V0X2dyYW50LmFwcGVuZCgKKyAgICAgICAgICAg ICAgICAgICAgICBkYl9wcml2aWxlZ2VzW3ByaXZpbGVnZVsncHJpdmlsZWdl X3R5cGUnXV0pCisgICAgICAgICAgICBwcml2X3dpdGhfZ3JhbnQgPSAiLCAi LmpvaW4ocHJpdl93aXRoX2dyYW50KQorICAgICAgICAgICAgcHJpdl93aXRo b3V0X2dyYW50ID0gIiwgIi5qb2luKHByaXZfd2l0aG91dF9ncmFudCkKKwor ICAgICAgICAgICAgIyBTZXJ2ZXIgTGV2ZWwgdmFsaWRhdGlvbgorICAgICAg ICAgICAgaWYgJ2dyYW50ZWUnIGluIHByaXY6CisgICAgICAgICAgICAgICAg cHJpdmlsZWdlcy5hcHBlbmQoCisgICAgICAgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgICAgICdncmFudGVlJzogcHJpdlsnZ3JhbnRlZSddIGlm ICdncmFudGVlJyBpbiBwcml2IGVsc2UgJycsCisgICAgICAgICAgICAgICAg ICAgICd3aXRoX2dyYW50JzogcHJpdl93aXRoX2dyYW50LAorICAgICAgICAg ICAgICAgICAgICAnd2l0aG91dF9ncmFudCc6IHByaXZfd2l0aG91dF9ncmFu dAorICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICkKKyAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuICcnCisg ICAgICAgIHJldHVybiBwcml2aWxlZ2VzCisKKyAgICBkZWYgZ2V0U1FMKHNl bGYsIGdpZCwgc2lkLCBkYXRhLCB2aWQ9Tm9uZSk6CisgICAgICAgICIiIgor ICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VucmF0ZSBzcWwgZnJvbSBt b2RlbCBkYXRhCisgICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAg ICAgICBpZiB2aWQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAgICAg ICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSks CisgICAgICAgICAgICAgICAgICB2aWQ9dmlkLAorICAgICAgICAgICAgICAg ICAgZGF0bGFzdHN5c29pZD1zZWxmLmRhdGxhc3RzeXNvaWQKKyAgICAgICAg ICAgICAgICApCisgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxm LmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgICAgICAgICBpZiBu b3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgICAgICAg ICBvbGRfZGF0YSA9IHJlc1sncm93cyddWzBdCisKKyAgICAgICAgICAgICAg ICBpZiAnbmFtZScgbm90IGluIGRhdGE6CisgICAgICAgICAgICAgICAgICAg IGRhdGFbJ25hbWUnXSA9IHJlc1sncm93cyddWzBdWyduYW1lJ10KKyAgICAg ICAgICAgICAgICBpZiAnc2NoZW1hJyBub3QgaW4gZGF0YToKKyAgICAgICAg ICAgICAgICAgICAgZGF0YVsnc2NoZW1hJ10gPSByZXNbJ3Jvd3MnXVswXVsn c2NoZW1hJ10KKworICAgICAgICAgICAgICAgIGtleSA9ICdkYXRhY2wnCisg ICAgICAgICAgICAgICAgaWYga2V5IGluIGRhdGEgYW5kIGRhdGFba2V5XSBp cyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgaWYgJ2FkZGVkJyBp biBkYXRhW2tleV06CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2tl eV1bJ2FkZGVkJ10gPSBzZWxmLnBhcnNlX3ByaXZpbGVnZXMoCisgICAgICAg ICAgICAgICAgICAgICAgICAgIGRhdGFba2V5XVsnYWRkZWQnXSkKKyAgICAg ICAgICAgICAgICAgICAgaWYgJ2NoYW5nZWQnIGluIGRhdGFba2V5XToKKyAg ICAgICAgICAgICAgICAgICAgICAgIGRhdGFba2V5XVsnY2hhbmdlZCddID0g c2VsZi5wYXJzZV9wcml2aWxlZ2VzKAorICAgICAgICAgICAgICAgICAgICAg ICAgICBkYXRhW2tleV1bJ2NoYW5nZWQnXSkKKyAgICAgICAgICAgICAgICAg ICAgaWYgJ2RlbGV0ZWQnIGluIGRhdGFba2V5XToKKyAgICAgICAgICAgICAg ICAgICAgICAgIGRhdGFba2V5XVsnZGVsZXRlZCddID0gc2VsZi5wYXJzZV9w cml2aWxlZ2VzKAorICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2tl eV1bJ2RlbGV0ZWQnXSkKKyAgICAgICAgICAgICAgICBTUUwgPSByZW5kZXJf dGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICAgICAgICBbc2VsZi50 ZW1wbGF0ZV9wYXRoLCAndXBkYXRlLnNxbCddKSwgZGF0YT1kYXRhLAorICAg ICAgICAgICAgICAgICAgICBvX2RhdGE9b2xkX2RhdGEsIGNvbm49c2VsZi5j b25uKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXF1 aXJlZF9hcmdzID0gWworICAgICAgICAgICAgICAgICAgICAnbmFtZScsCisg ICAgICAgICAgICAgICAgICAgICdzY2hlbWEnLAorICAgICAgICAgICAgICAg ICAgICAnZGVmaW5pdGlvbicKKyAgICAgICAgICAgICAgICBdCisgICAgICAg ICAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9hcmdzOgorICAgICAgICAg ICAgICAgICAgICBpZiBhcmcgbm90IGluIGRhdGE6CisgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gIiAtLSBkZWZpbml0aW9uIGluY29tcGxldGUi CisKKyAgICAgICAgICAgICAgICBpZiAnZGF0YWNsJyBpbiBkYXRhIGFuZCBk YXRhWydkYXRhY2wnXSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAg ICAgZGF0YVsnZGF0YWNsJ10gPSBzZWxmLnBhcnNlX3ByaXZpbGVnZXMoZGF0 YVsnZGF0YWNsJ10pCisgICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3Rl bXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAgICAgICAgW3NlbGYudGVt cGxhdGVfcGF0aCwgJ2NyZWF0ZS5zcWwnXSksIGRhdGE9ZGF0YSkKKyAgICAg ICAgICAgICAgICBpZiBkYXRhWydkZWZpbml0aW9uJ106CisgICAgICAgICAg ICAgICAgICAgIFNRTCArPSAiXG4iCisgICAgICAgICAgICAgICAgICAgIFNR TCArPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICAg ICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2dyYW50LnNxbCddKSwg ZGF0YT1kYXRhKQorICAgICAgICAgICAgcmV0dXJuIFNRTAorCisgICAgICAg IGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAg QGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBzcWwoc2VsZiwgZ2lkLCBz aWQsIGRpZCwgc2NpZCwgdmlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRo aXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBzcWwgdG8gcmVuZGVyIGludG8g dGhlIHNxbCBwYW5lbAorICAgICAgICAiIiIKKyAgICAgICAgU1FMX2RhdGEg PSAnJworICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4o CisgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMu c3FsJ10pLAorICAgICAgICAgIHZpZD12aWQsCisgICAgICAgICAgZGF0bGFz dHN5c29pZD1zZWxmLmRhdGxhc3RzeXNvaWQKKyAgICAgICAgKQorICAgICAg ICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQor ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAg IyBGZXRjaCBhbGwgcHJpdmlsZWdlcyBmb3IgdmlldworICAgICAgICBTUUwg PSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgW3NlbGYu dGVtcGxhdGVfcGF0aCwgJ2FjbC5zcWwnXSksIHZpZD12aWQpCisgICAgICAg IHN0YXR1cywgZGF0YWNscmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChT UUwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAg ICAgICBmb3Igcm93IGluIGRhdGFjbHJlc1sncm93cyddOgorICAgICAgICAg ICAgcHJpdiA9IHNlbGYucGFyc2Vfdmlld3NfcHJpdmlsZWdlcyhyb3cpCisg ICAgICAgICAgICBpZiByb3dbJ2RlZnR5cGUnXSBpbiByZXNbJ3Jvd3MnXVsw XToKKyAgICAgICAgICAgICAgICByZXNbJ3Jvd3MnXVswXVsnZGF0YWNsJ10u YXBwZW5kKHByaXYpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg ICAgIHJlc1sncm93cyddWzBdWydkYXRhY2wnXSA9IFtwcml2XQorCisgICAg ICAgIHJlc3VsdCA9IHJlc1sncm93cyddWzBdCisgICAgICAgIGlmICdkYXRh Y2wnIGluIHJlc3VsdDoKKyAgICAgICAgICAgIHJlc3VsdFsnZGF0YWNsJ10g PSBzZWxmLnBhcnNlX3ByaXZpbGVnZXMocmVzdWx0WydkYXRhY2wnXSkKKyAg ICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAg ICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdjcmVhdGUuc3FsJ10p LAorICAgICAgICAgICAgICAgIGRhdGE9cmVzdWx0LAorICAgICAgICAgICAg ICAgIGNvbm49c2VsZi5jb25uLAorICAgICAgICAgICAgICAgIGRpc3BsYXlf Y29tbWVudHM9VHJ1ZQorICAgICAgICAgICAgICApCisgICAgICAgIFNRTCAr PSAiXG4iCisgICAgICAgIFNRTCArPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpv aW4oCisgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2dyYW50LnNx bCddKSwgZGF0YT1yZXN1bHQpCisKKyAgICAgICAgU1FMX2RhdGEgKz0gU1FM CisKKyAgICAgICAgIiIiR2V0IGFsbCBub24gc3lzdGVtIHJ1bGVzIG9mIHZp ZXcgbm9kZSwgZ2VuZXJhdGUgdGhlaXIgc3FsIGFuZCByZW5kZXIKKyAgICAg ICAgICBpbnRvIHNxbCB0YWIiIiIKKyAgICAgICAgc2VsZi50ZW1wX3BhdGgg PSAncnVsZXMvdGVtcGxhdGVzL3J1bGVzL3NxbCcKKyAgICAgICAgU1FMID0g cmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgIFtzZWxmLnRl bXBfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLCB2aWQ9dmlkKQorICAgICAg ICBzdGF0dXMsIGRhdGFfcHJvcCA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qo U1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAg ICAgICAgZm9yIHJ1bGUgaW4gZGF0YV9wcm9wWydyb3dzJ106CisKKyAgICAg ICAgICAgICMgR2VuZXJhdGUgU1FMIG9ubHkgZm9yIG5vbiBzeXN0ZW0gcnVs ZQorICAgICAgICAgICAgaWYgcnVsZVsnbmFtZSddICE9ICdfUkVUVVJOJzoK KyAgICAgICAgICAgICAgICByZXMgPSBbXQorICAgICAgICAgICAgICAgIFNR TCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAgICAg ICAgIFtzZWxmLnRlbXBfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLAorICAg ICAgICAgICAgICAgICAgICByaWQ9cnVsZVsnb2lkJ10KKyAgICAgICAgICAg ICAgICAgICAgKQorICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2Vs Zi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAgICAgICAgICAgcmVz X2RhdGEgPSBwYXJzZV9kZWZpbml0aW9uKHJlcykKKyAgICAgICAgICAgICAg ICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAg ICAgICAgICBbc2VsZi50ZW1wX3BhdGgsICdjcmVhdGUuc3FsJ10pLAorICAg ICAgICAgICAgICAgICAgICBkYXRhPXJlc19kYXRhLCBkaXNwbGF5X2NvbW1l bnRzPVRydWUpCisgICAgICAgICAgICAgICAgU1FMX2RhdGEgKz0gJ1xuJwor ICAgICAgICAgICAgICAgIFNRTF9kYXRhICs9IFNRTAorCisgICAgICAgIHJl dHVybiBhamF4X3Jlc3BvbnNlKHJlc3BvbnNlPVNRTF9kYXRhKQorCisgICAg QGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZXBlbmRlbnRzKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQsIHZpZCk6CisgICAgICAgICIiIgorICAg ICAgICBUaGlzIGZ1bmN0aW9uIGdldHMgdGhlIGRlcGVuZGVudHMgYW5kIHJl dHVybnMgYW4gYWpheCByZXNwb25zZQorICAgICAgICBmb3IgdGhlIHZpZXcg bm9kZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2 ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAg ICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICB2aWQ6IFZp ZXcgSUQKKyAgICAgICAgIiIiCisgICAgICAgIGRlcGVuZGVudHNfcmVzdWx0 ID0gc2VsZi5nZXRfZGVwZW5kZW50cyhzZWxmLmNvbm4sIHZpZCkKKyAgICAg ICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25z ZT1kZXBlbmRlbnRzX3Jlc3VsdCwKKyAgICAgICAgICAgIHN0YXR1cz0yMDAK KyAgICAgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAg ICBkZWYgZGVwZW5kZW5jaWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQs IHZpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdl dHMgdGhlIGRlcGVuZGVuY2llcyBhbmQgcmV0dXJucyBhbiBhamF4IHJlc3Bv bnNlCisgICAgICAgIGZvciB0aGUgdmlldyBub2RlLgorCisgICAgICAgIEFy Z3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAg ICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJh c2UgSUQKKyAgICAgICAgICAgIHZpZDogVmlldyBJRAorICAgICAgICAiIiIK KyAgICAgICAgZGVwZW5kZW5jaWVzX3Jlc3VsdCA9IHNlbGYuZ2V0X2RlcGVu ZGVuY2llcyhzZWxmLmNvbm4sIHZpZCkKKyAgICAgICAgcmV0dXJuIGFqYXhf cmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZT1kZXBlbmRlbmNpZXNf cmVzdWx0LAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAg KQorCitWaWV3Tm9kZS5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvcGFyc2VfZGVmaW5p dGlvbi5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3BhcnNlX2RlZmluaXRp b24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmFi YjBhZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdz L3BhcnNlX2RlZmluaXRpb24ucHkKQEAgLTAsMCArMSw1OCBAQAorIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9z dGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2 LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdh cmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQor IworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIiIiIFBhcnNl IGRlZmluaXRpb24gZmllbGQgZGF0YSAiIiIKKworZnJvbSBwZ2FkbWluLnV0 aWxzLmFqYXggaW1wb3J0IGludGVybmFsX3NlcnZlcl9lcnJvcgorCisKK2Rl ZiBwYXJzZV9kZWZpbml0aW9uKHJlcyk6CisgICAgIiIiCisgICAgVGhpcyBm dW5jdGlvbiBleHRyYWN0czoKKyAgICAtIGV2ZW50cworICAgIC0gZG9faW5z dGVhZAorICAgIC0gc3RhdGVtZW50cworICAgIC0gY29uZGl0aW9uCisgICAg ZnJvbSB0aGUgZGVmaW50aW9uIHJvdywgZm9ybXMgYW4gYXJyYXkgd2l0aCBm aWVsZHMgYW5kIHJldHVybnMgaXQuCisgICAgIiIiCisgICAgcmVzX2RhdGEg PSBbXQorICAgIHRyeToKKyAgICAgICAgcmVzX2RhdGEgPSByZXNbJ3Jvd3Mn XVswXQorICAgICAgICBkYXRhX2RlZiA9IHJlc19kYXRhWydkZWZpbml0aW9u J10KKyAgICAgICAgaW1wb3J0IHJlCisgICAgICAgICMgUGFyc2UgZGF0YSBm b3IgZXZlbnQKKyAgICAgICAgZV9tYXRjaCA9IHJlLnNlYXJjaChyIk9OXHMr KC4qKVxzK1RPIiwgZGF0YV9kZWYpCisgICAgICAgIGV2ZW50X2RhdGEgPSBl X21hdGNoLmdyb3VwKDEpIGlmIGVfbWF0Y2ggaXMgbm90IE5vbmUgZWxzZSBO b25lCisgICAgICAgIGV2ZW50ID0gZXZlbnRfZGF0YSBpZiBldmVudF9kYXRh IGlzIG5vdCBOb25lIGVsc2UgJycKKworICAgICAgICAjIFBhcnNlIGRhdGEg Zm9yIGRvIGluc3RlYWQKKyAgICAgICAgaW5zdF9tYXRjaCA9IHJlLnNlYXJj aChyIlxzKyhJTlNURUFEKVxzKyIsIGRhdGFfZGVmKQorICAgICAgICBpbnN0 ZWFkX2RhdGEgPSBpbnN0X21hdGNoLmdyb3VwKDEpIGlmIGluc3RfbWF0Y2gg aXMgbm90IE5vbmUgZWxzZSBOb25lCisgICAgICAgIGluc3RlYWQgPSBUcnVl IGlmIGluc3RlYWRfZGF0YSBpcyBub3QgTm9uZSBlbHNlIEZhbHNlCisKKyAg ICAgICAgIyBQYXJzZSBkYXRhIGZvciBjb25kaXRpb24KKyAgICAgICAgY29u ZGl0aW9uX21hdGNoID0gcmUuc2VhcmNoKHIiKD86V0hFUkUpXHMrKC4qKVxz Kyg/OkRPKSIsIGRhdGFfZGVmKQorICAgICAgICBjb25kaXRpb25fZGF0YSA9 IGNvbmRpdGlvbl9tYXRjaC5ncm91cCgxKSBcCisgICAgICAgICAgICBpZiBj b25kaXRpb25fbWF0Y2ggaXMgbm90IE5vbmUgZWxzZSBOb25lCisgICAgICAg IGNvbmRpdGlvbiA9IGNvbmRpdGlvbl9kYXRhIGlmIGNvbmRpdGlvbl9kYXRh IGlzIG5vdCBOb25lIGVsc2UgJycKKworICAgICAgICAjIFBhcnNlIGRhdGEg Zm9yIHN0YXRlbWVudHMKKyAgICAgICAgc3RhdGVtZW50X21hdGNoID0gcmUu c2VhcmNoKAorICAgICAgICAgICAgciIoPzpET1xzKykoPzpJTlNURUFEXHMr KT8oKC58XG4pKikiLCBkYXRhX2RlZikKKyAgICAgICAgc3RhdGVtZW50X2Rh dGEgPSBzdGF0ZW1lbnRfbWF0Y2guZ3JvdXAoMSkgaWYgc3RhdGVtZW50X21h dGNoIGVsc2UgTm9uZQorICAgICAgICBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRf ZGF0YSBpZiBzdGF0ZW1lbnRfZGF0YSBpcyBub3QgTm9uZSBlbHNlICcnCisK KyAgICAgICAgIyBzZXQgY29sdW1ucyBwYXJzZSBkYXRhCisgICAgICAgIHJl c19kYXRhWydldmVudCddID0gZXZlbnQubG93ZXIoKS5jYXBpdGFsaXplKCkK KyAgICAgICAgcmVzX2RhdGFbJ2RvX2luc3RlYWQnXSA9IGluc3RlYWQKKyAg ICAgICAgcmVzX2RhdGFbJ3N0YXRlbWVudHMnXSA9IHN0YXRlbWVudAorICAg ICAgICByZXNfZGF0YVsnY29uZGl0aW9uJ10gPSBjb25kaXRpb24KKyAgICBl eGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorICAgIHJldHVybiBy ZXNfZGF0YQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvcnVs ZXMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy9ydWxlcy9f X2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5kMzdmNDcxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvcnVsZXMvX19pbml0X18ucHkKQEAgLTAsMCArMSw1MjIgQEAKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAt IFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0g MjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNv ZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyIiIiBJ bXBsZW1lbnRzIFJ1bGUgTm9kZSAiIiIKKworaW1wb3J0IGpzb24KK2Zyb20g Zmxhc2sgaW1wb3J0IHJlbmRlcl90ZW1wbGF0ZSwgbWFrZV9yZXNwb25zZSwg cmVxdWVzdCwganNvbmlmeQorZnJvbSBmbGFzay5leHQuYmFiZWwgaW1wb3J0 IGdldHRleHQKK2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtl X2pzb25fcmVzcG9uc2UsIFwKKyAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhf cmVzcG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJvcgorZnJvbSBwZ2FkbWlu LmJyb3dzZXIudXRpbHMgaW1wb3J0IFBHQ2hpbGROb2RlVmlldworZnJvbSBw Z2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbiBpbXBvcnQgQ29sbGVjdGlvbk5v ZGVNb2R1bGUKK2ltcG9ydCBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnZpZXdzIGFzIHZpZXdzCitm cm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgcHJlY29uZGl0aW9uX3Jl cXVpcmVkCitmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRf ZHJpdmVyCitmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIK K2Zyb20gZnVuY3Rvb2xzIGltcG9ydCB3cmFwcworZnJvbSAuLnBhcnNlX2Rl ZmluaXRpb24gaW1wb3J0IHBhcnNlX2RlZmluaXRpb24KKworCit0cnk6Cisg ICAgdW5pY29kZSA9IHVuaWNvZGUKK2V4Y2VwdCBOYW1lRXJyb3I6CisgICAg IyAndW5pY29kZScgaXMgdW5kZWZpbmVkLCBtdXN0IGJlIFB5dGhvbiAzCisg ICAgc3RyID0gc3RyCisgICAgdW5pY29kZSA9IHN0cgorICAgIGJ5dGVzID0g Ynl0ZXMKKyAgICBiYXNlc3RyaW5nID0gKHN0ciwgYnl0ZXMpCitlbHNlOgor ICAgICMgJ3VuaWNvZGUnIGV4aXN0cywgbXVzdCBiZSBQeXRob24gMgorICAg IHN0ciA9IHN0cgorICAgIHVuaWNvZGUgPSB1bmljb2RlCisgICAgYnl0ZXMg PSBzdHIKKyAgICBiYXNlc3RyaW5nID0gYmFzZXN0cmluZworCisKK2NsYXNz IFJ1bGVNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpOgorICAgICIiIgor ICAgIGNsYXNzIFJ1bGVNb2R1bGUoT2JqZWN0KToKKworICAgICAgICBBIHJ1 bGUgY29sbGVjdGlvbiBOb2RlIHdoaWNoIGluaGVyaXRzIENvbGxlY3Rpb25O b2RlTW9kdWxlCisgICAgICAgIGNsYXNzIGFuZCBkZWZpbmUgbWV0aG9kczoK KyAgICAgICAgICBnZXRfbm9kZXMgLSBUbyBnZW5lcmF0ZSBjb2xsZWN0aW9u IG5vZGUuCisgICAgICAgICAgc2NyaXB0X2xvYWQgLSB0ZWxscyB3aGVuIHRv IGxvYWQganMgZmlsZS4KKyAgICAgICAgICBjc3NzbnBwZXRzIC0gYWRkIGNz cyB0byBwYWdlCisgICAgIiIiCisgICAgTk9ERV9UWVBFID0gJ3J1bGUnCisg ICAgQ09MTEVDVElPTl9MQUJFTCA9IGdldHRleHQoIlJ1bGVzIikKKworICAg IGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAg ICBzZWxmLm1pbl92ZXIgPSBOb25lCisgICAgICAgIHNlbGYubWF4X3ZlciA9 IE5vbmUKKworICAgICAgICBzdXBlcihSdWxlTW9kdWxlLCBzZWxmKS5fX2lu aXRfXygqYXJncywgKiprd2FyZ3MpCisKKyAgICAjIEJlZm9yZSBsb2FkaW5n IHRoaXMgbW9kdWxlIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgaWYgc2Np ZCBpcyBhIGNhdGFsb2cKKyAgICAjIGFuZCBjYXRhbG9nIG5hbWUgaXMgbm90 ICdzeXMnLCAnZGJvJyBvciAnaW5mb3JtYXRpb25fc2NoZW1hJyBvbmx5IHRo ZW4gCisgICAgIyBkbyB3ZSBsb2FkIHRoaXMgbW9kdWxlCisgICAgZGVmIEJh Y2tlbmRTdXBwb3J0ZWQoc2VsZiwgbWFuYWdlciwgKiprd2FyZ3MpOgorICAg ICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHZhbGlkYXRl IHNjaGVtYSBuYW1lICYgc2NpZCBhZ2FpbnN0IGNhdGFsb2dzCisgICAgICAg IHRoZW4gYWxsb3cgdXMgdG8gZGVjaWRlIGlmIHdlIHdhbnQgdG8gbG9hZCB0 aGlzIG1vZHVsZSBvcgorICAgICAgICBub3QgZm9yIHRoYXQgc2NoZW1hCisg ICAgICAgICIiIgorICAgICAgICBpZiBzdXBlcihSdWxlTW9kdWxlLCBzZWxm KS5CYWNrZW5kU3VwcG9ydGVkKG1hbmFnZXIsICoqa3dhcmdzKToKKyAgICAg ICAgICAgIGNvbm4gPSBtYW5hZ2VyLmNvbm5lY3Rpb24oKQorICAgICAgICAg ICAgIyBJZiBEQiBpcyBub3QgY29ubmVjdGVkIHRoZW4gcmV0dXJuIGVycm9y IHRvIGJyb3dzZXIKKyAgICAgICAgICAgIGlmIG5vdCBjb25uLmNvbm5lY3Rl ZCgpOgorICAgICAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVx dWlyZWQoCisgICAgICAgICAgICAgICAgICAgIGdldHRleHQoCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZl ciBoYXMgYmVlbiBsb3N0ISIKKyAgICAgICAgICAgICAgICAgICAgKQorICAg ICAgICAgICAgICAgICkKKyAgICAgICAgICAgIHZlciA9IG1hbmFnZXIudmVy c2lvbgorICAgICAgICAgICAgc2VydmVyX3R5cGUgPSBtYW5hZ2VyLnNlcnZl cl90eXBlCisgICAgICAgICAgICB0ZW1wbGF0ZV9wYXRoID0gJ3J1bGVzL3Nx bCcKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9p bigKKyAgICAgICAgICAgICAgICBbdGVtcGxhdGVfcGF0aCwgJ2JhY2tlbmRf c3VwcG9ydC5zcWwnXQorICAgICAgICAgICAgICApLCBzY2lkPWt3YXJnc1sn c2NpZCddKQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBjb25uLmV4ZWN1 dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgICMgY2hlY2sgaWYgYW55IGVy cm9ycworICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJl cykKKyAgICAgICAgICAgICMgQ2hlY2sgc2NpZCBpcyBjYXRhbG9nIGFuZCBm cm9tICdzeXMnLCAnZGJvJywgXAorICAgICAgICAgICAgIyAnaW5mb3JtYXRp b25fc2NoZW1hJywgdGhlbiBGYWxzZSAoRG8gbm90IGxvYWQgdGhpcyBtb2R1 bGUpLCBcCisgICAgICAgICAgICAjIG90aGV3aXNlIFRydWUKKyAgICAgICAg ICAgIGlmIHJlcyBpcyBUcnVlOgorICAgICAgICAgICAgICAgIHJldHVybiBG YWxzZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1 cm4gVHJ1ZQorCisgICAgZGVmIGdldF9ub2RlcyhzZWxmLCBnaWQsIHNpZCwg ZGlkLCBzY2lkLCB2aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgR2VuZXJh dGUgdGhlIGNvbGxlY3Rpb24gbm9kZQorICAgICAgICAiIiIKKyAgICAgICAg eWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZSh2 aWQpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbm9kZV9pbm9kZShzZWxm KToKKyAgICAgICAgIiIiCisgICAgICAgIElmIGEgbm9kZSBoYXMgY2hpbGRy ZW4gcmV0dXJuIFRydWUgb3RoZXJ3aXNlIEZhbHNlCisgICAgICAgICIiIgor ICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIEBwcm9wZXJ0eQorICAgIGRl ZiBzY3JpcHRfbG9hZChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIExv YWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9yIHJ1bGUsIHdoZW4gYW55IG9mIHRo ZSBkYXRhYmFzZSBub2RlcyBhcmUgCisgICAgICAgIGluaXRpYWxpemVkLgor ICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHZpZXdzLlZpZXdNb2R1bGUu Tk9ERV9UWVBFCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgY3Nzc25pcHBl dHMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIGEgc25p cHBldCBvZiBjc3MgdG8gaW5jbHVkZSBpbiB0aGUgcGFnZQorICAgICAgICAi IiIKKyAgICAgICAgc25pcHBldHMgPSBbCisgICAgICAgICAgICAgICAgcmVu ZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAgICAiYnJvd3Nlci9j c3MvY29sbGVjdGlvbi5jc3MiLAorICAgICAgICAgICAgICAgICAgICBub2Rl X3R5cGU9c2VsZi5ub2RlX3R5cGUsCisgICAgICAgICAgICAgICAgICAgIF89 Z2V0dGV4dAorICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAg ICAgIHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgInJ1 bGVzL2Nzcy9ydWxlLmNzcyIsCisgICAgICAgICAgICAgICAgICAgIG5vZGVf dHlwZT1zZWxmLm5vZGVfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgXz1n ZXR0ZXh0CisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAg ICBdCisKKyAgICAgICAgZm9yIHN1Ym1vZHVsZSBpbiBzZWxmLnN1Ym1vZHVs ZXM6CisgICAgICAgICAgICBzbmlwcGV0cy5leHRlbmQoc3VibW9kdWxlLmNz c3NuaXBwZXRzKQorCisgICAgICAgIHJldHVybiBzbmlwcGV0cworCisKKyMg Q3JlYXRlIGJsdWVwcmludCBvZiBSdWxlTW9kdWxlLgorYmx1ZXByaW50ID0g UnVsZU1vZHVsZShfX25hbWVfXykKKworCitjbGFzcyBSdWxlVmlldyhQR0No aWxkTm9kZVZpZXcpOgorICAgICIiIgorICAgIFRoaXMgaXMgYSBjbGFzcyBm b3IgcnVsZSBub2RlIHdoaWNoIGluaGVyaXRzIHRoZQorICAgIHByb3BlcnRp ZXMgYW5kIG1ldGhvZHMgZnJvbSBQR0NoaWxkTm9kZVZpZXcgY2xhc3MgYW5k IGRlZmluZQorICAgIHZhcmlvdXMgbWV0aG9kcyB0byBsaXN0LCBjcmVhdGUs IHVwZGF0ZSBhbmQgZGVsZXRlIHJ1bGUuCisKKyAgICBWYXJpYWJsZXM6Cisg ICAgLS0tLS0tLS0tCisgICAgKiBub2RlX3R5cGUgLSB0ZWxscyB3aGljaCB0 eXBlIG9mIG5vZGUgaXQgaXMKKyAgICAqIHBhcmVudF9pZHMgLSBpZCB3aXRo IGl0cyB0eXBlIGFuZCBuYW1lIG9mIHBhcmVudCBub2RlcworICAgICogaWRz IC0gaWQgd2l0aCB0eXBlIGFuZCBuYW1lIG9mIGV4dGVuc2lvbiBtb2R1bGUg YmVpbmcgdXNlZC4KKyAgICAqIG9wZXJhdGlvbnMgLSBmdW5jdGlvbiByb3V0 ZXMgbWFwcGluZ3MgZGVmaW5lZC4KKyAgICAiIiIKKyAgICBub2RlX3R5cGUg PSBibHVlcHJpbnQubm9kZV90eXBlCisKKyAgICBwYXJlbnRfaWRzID0gWwor ICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdnaWQnfSwKKyAg ICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnc2lkJ30sCisgICAg ICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ2RpZCd9LAorICAgICAg ICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdzY2lkJ30sCisgICAgICAg ICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3ZpZCd9CisgICAgICAgICAg ICBdCisgICAgaWRzID0gWworICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcs ICdpZCc6ICdyaWQnfQorICAgICAgICAgICAgXQorCisgICAgb3BlcmF0aW9u cyA9IGRpY3QoeworICAgICAgICAnb2JqJzogWworICAgICAgICAgICAgeydn ZXQnOiAncHJvcGVydGllcycsICdkZWxldGUnOiAnZGVsZXRlJywgJ3B1dCc6 ICd1cGRhdGUnfSwKKyAgICAgICAgICAgIHsnZ2V0JzogJ2xpc3QnLCAncG9z dCc6ICdjcmVhdGUnfQorICAgICAgICBdLAorICAgICAgICAnY2hpbGRyZW4n OiBbeworICAgICAgICAgICAgJ2dldCc6ICdjaGlsZHJlbicKKyAgICAgICAg fV0sCisgICAgICAgICdkZWxldGUnOiBbeydkZWxldGUnOiAnZGVsZXRlJ31d LAorICAgICAgICAnbm9kZXMnOiBbeydnZXQnOiAnbm9kZSd9LCB7J2dldCc6 ICdub2Rlcyd9XSwKKyAgICAgICAgJ3NxbCc6IFt7J2dldCc6ICdzcWwnfV0s CisgICAgICAgICdtc3FsJzogW3snZ2V0JzogJ21zcWwnfSwgeydnZXQnOiAn bXNxbCd9XSwKKyAgICAgICAgJ3N0YXRzJzogW3snZ2V0JzogJ3N0YXRpc3Rp Y3MnfV0sCisgICAgICAgICdkZXBlbmRlbmN5JzogW3snZ2V0JzogJ2RlcGVu ZGVuY2llcyd9XSwKKyAgICAgICAgJ2RlcGVuZGVudCc6IFt7J2dldCc6ICdk ZXBlbmRlbnRzJ31dLAorICAgICAgICAnbW9kdWxlLmpzJzogW3t9LCB7fSwg eydnZXQnOiAnbW9kdWxlX2pzJ31dLAorICAgICAgICAnY29uZmlncyc6IFt7 J2dldCc6ICdjb25maWdzJ31dCisgICAgfSkKKworICAgIGRlZiBtb2R1bGVf anMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIHByb3BlcnR5 IGRlZmluZXMgd2hldGhlciBKYXZhc2NyaXB0IGV4aXN0cyBmb3IgdGhpcyBu b2RlLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIG1ha2VfcmVzcG9u c2UoCisgICAgICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlKAorICAgICAg ICAgICAgICAgICAgICAicnVsZXMvanMvcnVsZXMuanMiLAorICAgICAgICAg ICAgICAgICAgICBfPWdldHRleHQKKyAgICAgICAgICAgICAgICAgICAgKSwK KyAgICAgICAgICAgICAgICAyMDAsIHsnQ29udGVudC1UeXBlJzogJ2FwcGxp Y2F0aW9uL3gtamF2YXNjcmlwdCd9CisgICAgICAgICAgICAgICAgKQorCisg ICAgZGVmIGNoZWNrX3ByZWNvbmRpdGlvbihmKToKKyAgICAgICAgIiIiCisg ICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0 b3Igd2hpY2ggd2lsbCBjaGVjayB0aGUKKyAgICAgICAgZGF0YWJhc2UgY29u bmVjdGlvbiBiZWZvcmUgcnVubmluZyBhIHZpZXcuIEl0IHdpbGwgYWxzbyBh dHRhY2gKKyAgICAgICAgbWFuYWdlciwgY29ubiAmIHRlbXBsYXRlX3BhdGgg cHJvcGVydGllcyB0byBzZWxmCisgICAgICAgICIiIgorICAgICAgICBAd3Jh cHMoZikKKyAgICAgICAgZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToKKwor ICAgICAgICAgICAgIyBIZXJlIGFyZ3NbMF0gd2lsbCBob2xkIHNlbGYgJiBr d2FyZ3Mgd2lsbCBob2xkIGdpZCxzaWQsZGlkCisgICAgICAgICAgICBzZWxm ID0gYXJnc1swXQorICAgICAgICAgICAgc2VsZi5tYW5hZ2VyID0gZ2V0X2Ry aXZlcigKKyAgICAgICAgICAgICAgUEdfREVGQVVMVF9EUklWRVIpLmNvbm5l Y3Rpb25fbWFuYWdlcihrd2FyZ3NbJ3NpZCddKQorICAgICAgICAgICAgc2Vs Zi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1sn ZGlkJ10pCisKKyAgICAgICAgICAgICMgSWYgREIgbm90IGNvbm5lY3RlZCB0 aGVuIHJldHVybiBlcnJvciB0byBicm93c2VyCisgICAgICAgICAgICBpZiBu b3Qgc2VsZi5jb25uLmNvbm5lY3RlZCgpOgorICAgICAgICAgICAgICAgIHJl dHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQoCisgICAgICAgICAgICAgICAg ICAgIGdldHRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNv bm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIKKyAgICAg ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkKKworICAgICAg ICAgICAgc2VsZi5kYXRsYXN0c3lzb2lkID0gc2VsZi5tYW5hZ2VyLmRiX2lu Zm9ba3dhcmdzWydkaWQnXV1bJ2RhdGxhc3RzeXNvaWQnXQorICAgICAgICAg ICAgdmVyID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24KKyAgICAgICAgICAgIHNl bGYudGVtcGxhdGVfcGF0aCA9ICdydWxlcy9zcWwnCisgICAgICAgICAgICBy ZXR1cm4gZigqYXJncywgKiprd2FyZ3MpCisKKyAgICAgICAgcmV0dXJuIHdy YXAKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbGlzdChz ZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB2aWQpOgorICAgICAgICAiIiIK KyAgICAgICAgRmV0Y2ggYWxsIHJ1bGUgcHJvcGVydGllcyBhbmQgcmVuZGVy IGludG8gcHJvcGVydGllcyB0YWIKKyAgICAgICAgIiIiCisKKyAgICAgICAg IyBmZXRjaCBzY2hlbWEgbmFtZSBieSBzY2hlbWEgaWQKKyAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgIFtzZWxm LnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVzLnNxbCddKSwgdmlkPXZpZCkK KyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0 KFNRTCkKKworICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisg ICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAg IHJlc3BvbnNlPXJlc1sncm93cyddLAorICAgICAgICAgICAgICAgIHN0YXR1 cz0yMDAKKyAgICAgICAgICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29u ZGl0aW9uCisgICAgZGVmIG5vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNj aWQsIHZpZCk6CisgICAgICAgICIiIgorICAgICAgICBMaXN0IGFsbCB0aGUg cnVsZXMgdW5kZXIgdGhlIFJ1bGVzIENvbGxlY3Rpb24gbm9kZQorICAgICAg ICAiIiIKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAgU1FMID0gcmVuZGVy X3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgIFtzZWxmLnRlbXBsYXRl X3BhdGgsICdwcm9wZXJ0aWVzLnNxbCddKSwgdmlkPXZpZCkKKyAgICAgICAg c3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwp CisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJzZXQpCisKKyAgICAg ICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICByZXMu YXBwZW5kKAorICAgICAgICAgICAgICAgICAgICBzZWxmLmJsdWVwcmludC5n ZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAgICAg ICByb3dbJ29pZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgdmlkLAor ICAgICAgICAgICAgICAgICAgICAgICAgcm93WyduYW1lJ10sCisgICAgICAg ICAgICAgICAgICAgICAgICBpY29uPSJpY29uLXJ1bGUiCisgICAgICAgICAg ICAgICAgICAgICkpCisKKyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNw b25zZSgKKyAgICAgICAgICAgICAgICBkYXRhPXJlcywKKyAgICAgICAgICAg ICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCisgICAgQGNo ZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBwcm9wZXJ0aWVzKHNlbGYsIGdp ZCwgc2lkLCBkaWQsIHNjaWQsIHZpZCwgcmlkKToKKyAgICAgICAgIiIiCisg ICAgICAgIEZldGNoIHRoZSBwcm9wZXJ0aWVzIG9mIGFuIGluZGl2aWR1YWwg cnVsZSBhbmQgcmVuZGVyIGluIHByb3BlcnRpZXMgdGFiCisKKyAgICAgICAg IiIiCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigK KyAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVz LnNxbCddCisgICAgICAgICAgKSwgcmlkPXJpZCwgZGF0bGFzdHN5c29pZD1z ZWxmLmRhdGxhc3RzeXNvaWQpCisgICAgICAgIHN0YXR1cywgcmVzID0gc2Vs Zi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgIHJldHVybiBhamF4X3Jlc3Bv bnNlKAorICAgICAgICAgICAgICAgIHJlc3BvbnNlPXBhcnNlX2RlZmluaXRp b24ocmVzKSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAg ICAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRl ZiBjcmVhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdmlkKToKKyAg ICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUg YSBuZXcgcnVsZSBvYmplY3QKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVp cmVkX2FyZ3MgPSBbCisgICAgICAgICAgICAnbmFtZScsCisgICAgICAgIF0K KworICAgICAgICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9y bSBlbHNlIFwKKyAgICAgICAgICAgIGpzb24ubG9hZHMocmVxdWVzdC5kYXRh LmRlY29kZSgpKQorICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6 CisgICAgICAgICAgICBpZiBhcmcgbm90IGluIGRhdGE6CisgICAgICAgICAg ICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg ICAgICAgICAgc3RhdHVzPTQxMCwKKyAgICAgICAgICAgICAgICAgICAgc3Vj Y2Vzcz0wLAorICAgICAgICAgICAgICAgICAgICBlcnJvcm1zZz1nZXR0ZXh0 KAorICAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkbid0IGZpbmQgdGhl IHJlcXVpcmVkIHBhcmFtZXRlciAoJXMpLiIgJSBhcmcKKyAgICAgICAgICAg ICAgICAgICAgKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgdHJ5Ogor ICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAor ICAgICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdjcmVhdGUu c3FsJ10pLCBkYXRhPWRhdGEpCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9 IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCisgICAgICAgICAgICBp ZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICAi IiIgRmV0Y2ggdGhlIHJ1bGUgaWQgYWdhaW5zdCBydWxlIG5hbWUgdG8gZGlz cGxheSBub2RlIGluIHRyZWUgYnJvd3NlciIiIgorICAgICAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAgICAg IFtzZWxmLnRlbXBsYXRlX3BhdGgsICdydWxlX2lkLnNxbCddKSwgcnVsZV9u YW1lPWRhdGFbJ25hbWUnXSkKKyAgICAgICAgICAgIHN0YXR1cywgcnVsZV9p ZCA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCisgICAgICAgICAg ICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnVsZV9pZCkKKyAgICAgICAg ICAgIHJldHVybiBqc29uaWZ5KAorICAgICAgICAgICAgICAgIG5vZGU9c2Vs Zi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAgICAg ICAgICAgICAgICBydWxlX2lkLAorICAgICAgICAgICAgICAgICAgICB2aWQs CisgICAgICAgICAgICAgICAgICAgIGRhdGFbJ25hbWUnXSwKKyAgICAgICAg ICAgICAgICAgICAgaWNvbj0iaWNvbi1ydWxlIgorICAgICAgICAgICAgICAg ICkKKyAgICAgICAgICAgICkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh cyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9u CisgICAgZGVmIHVwZGF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB2 aWQsIHJpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9u IHdpbGwgdXBkYXRlIGEgcnVsZSBvYmplY3QKKyAgICAgICAgIiIiCisgICAg ICAgIGRhdGEgPSByZXF1ZXN0LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVsc2Ug XAorICAgICAgICAgICAganNvbi5sb2FkcyhyZXF1ZXN0LmRhdGEuZGVjb2Rl KCkpCisgICAgICAgIFNRTCA9IHNlbGYuZ2V0U1FMKGdpZCwgc2lkLCBkYXRh LCB2aWQsIHJpZCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgU1FM IGFuZCBpc2luc3RhbmNlKFNRTCwgYmFzZXN0cmluZykgYW5kIFwKKyAgICAg ICAgICAgICAgICAgIFNRTC5zdHJpcCgnXG4nKSBhbmQgU1FMLnN0cmlwKCcg Jyk6CisgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4u ZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgICAgIGlmIG5vdCBz dGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICAgICAg cmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAg ICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgICAgICBpbmZvPWdldHRl eHQoIlJ1bGUgdXBkYXRlZCIpLAorICAgICAgICAgICAgICAgICAgICBkYXRh PXsKKyAgICAgICAgICAgICAgICAgICAgICAgICdpZCc6IHZpZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICdzaWQnOiBzaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAnZ2lkJzogZ2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgJ2RpZCc6IGRpZAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg ICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAg ICAgICBzdWNjZXNzPTEsCisgICAgICAgICAgICAgICAgICAgIGluZm89Z2V0 dGV4dCgiTm90aGluZyB0byB1cGRhdGUiKSwKKyAgICAgICAgICAgICAgICAg ICAgZGF0YT17CisgICAgICAgICAgICAgICAgICAgICAgICAnaWQnOiB2aWQs CisgICAgICAgICAgICAgICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICdkaWQnOiBkaWQKKyAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9u IGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRp b24KKyAgICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQs IHZpZCwgcmlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rp b24gd2lsbCBkcm9wIGEgcnVsZSBvYmplY3QKKyAgICAgICAgIiIiCisgICAg ICAgICMgQmVsb3cgd2lsbCBkZWNpZGUgaWYgaXQncyBzaW1wbGUgZHJvcCBv ciBkcm9wIHdpdGggY2FzY2FkZSBjYWxsCisgICAgICAgIGNhc2NhZGUgPSBU cnVlIGlmIHNlbGYuY21kID09ICdkZWxldGUnIGVsc2UgRmFsc2UKKworICAg ICAgICB0cnk6CisgICAgICAgICAgICAjIEdldCBuYW1lIGZvciBydWxlIGZy b20gZGlkCisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8i LmpvaW4oCisgICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdk ZWxldGUuc3FsJ10pLCByaWQ9cmlkKQorICAgICAgICAgICAgc3RhdHVzLCBy ZXNfZGF0YSA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAg ICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlc19kYXRhKQorICAg ICAgICAgICAgIyBkcm9wIHJ1bGUKKyAgICAgICAgICAgIHJzZXQgPSByZXNf ZGF0YVsncm93cyddWzBdCisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVt cGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICAgICAgW3NlbGYudGVtcGxh dGVfcGF0aCwgJ2RlbGV0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICBy dWxlbmFtZT1yc2V0WydydWxlbmFtZSddLAorICAgICAgICAgICAgICAgICAg cmVsbmFtZT1yc2V0WydyZWxuYW1lJ10sCisgICAgICAgICAgICAgICAgICBu c3BuYW1lPXJzZXRbJ25zcG5hbWUnXSwKKyAgICAgICAgICAgICAgICAgIGNh c2NhZGU9Y2FzY2FkZQorICAgICAgICAgICAgKQorICAgICAgICAgICAgc3Rh dHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAg ICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAg ICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAg ICAgICAgICBzdWNjZXNzPTEsCisgICAgICAgICAgICAgICAgaW5mbz1nZXR0 ZXh0KCJSdWxlIGRyb3BwZWQiKSwKKyAgICAgICAgICAgICAgICBkYXRhPXsK KyAgICAgICAgICAgICAgICAgICAgJ2lkJzogdmlkLAorICAgICAgICAgICAg ICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAgICAnZ2lk JzogZ2lkLAorICAgICAgICAgICAgICAgICAgICAnZGlkJzogZGlkCisgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgKQorCisgICAgICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgorICAgIGRlZiBtc3FsKHNlbGYsIGdpZCwgc2lkLCBk aWQsIHNjaWQsIHZpZCwgcmlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAg ICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIG1vZGlmaWVkIFNRTAorICAgICAg ICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuYXJncworICAgICAgICBT UUwgPSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGF0YSwgdmlkLCByaWQpCisg ICAgICAgIGlmIFNRTCBhbmQgaXNpbnN0YW5jZShTUUwsIGJhc2VzdHJpbmcp IGFuZCBcCisgICAgICAgICAgICAgICAgU1FMLnN0cmlwKCdcbicpIGFuZCBT UUwuc3RyaXAoJyAnKToKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25f cmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgIGRhdGE9U1FMLAorICAg ICAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAg ICAgICkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBtYWtl X2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgIGRhdGE9Z2V0 dGV4dCgiLS1tb2RpZmllZCBTUUwiKSwKKyAgICAgICAgICAgICAgICAgICAg c3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICAgICApCisKKyAgICBAY2hl Y2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHNxbChzZWxmLCBnaWQsIHNpZCwg ZGlkLCBzY2lkLCB2aWQsIHJpZCk6CisgICAgICAgICIiIgorICAgICAgICBU aGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3FsIHRvIHJlbmRlciBpbnRv IHRoZSBzcWwgcGFuZWwKKyAgICAgICAgIiIiCisgICAgICAgIFNRTCA9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICBbc2VsZi50ZW1w bGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSksIHJpZD1yaWQpCisgICAg ICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwp CisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAg cmVzX2RhdGEgPSBwYXJzZV9kZWZpbml0aW9uKHJlcykKKyAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAgW3Nl bGYudGVtcGxhdGVfcGF0aCwgJ2NyZWF0ZS5zcWwnXSksCisgICAgICAgICAg ICBkYXRhPXJlc19kYXRhLCBkaXNwbGF5X2NvbW1lbnRzPVRydWUpCisKKyAg ICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UocmVzcG9uc2U9U1FMKQorCisg ICAgZGVmIGdldFNRTChzZWxmLCBnaWQsIHNpZCwgZGF0YSwgdmlkLCByaWQp OgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGdl bnJhdGUgc3FsIGZyb20gbW9kZWwgZGF0YQorICAgICAgICAiIiIKKyAgICAg ICAgdHJ5OgorICAgICAgICAgICAgaWYgcmlkIGlzIG5vdCBOb25lOgorICAg ICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigK KyAgICAgICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9w ZXJ0aWVzLnNxbCddKSwgcmlkPXJpZCkKKyAgICAgICAgICAgICAgICBzdGF0 dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAg ICAgICAgICAgIHJlc19kYXRhID0gW10KKyAgICAgICAgICAgICAgICByZXNf ZGF0YSA9IHBhcnNlX2RlZmluaXRpb24ocmVzKQorICAgICAgICAgICAgICAg IGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAg ICAgICAgIG9sZF9kYXRhID0gcmVzX2RhdGEKKyAgICAgICAgICAgICAgICBT UUwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICIv Ii5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICd1cGRhdGUuc3FsJ10pLAor ICAgICAgICAgICAgICAgICAgICBkYXRhPWRhdGEsIG9fZGF0YT1vbGRfZGF0 YQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9p bigKKyAgICAgICAgICAgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwg J2NyZWF0ZS5zcWwnXSksIGRhdGE9ZGF0YSkKKyAgICAgICAgICAgIHJldHVy biBTUUwKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1z dHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGRl cGVuZGVudHMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdmlkLCByaWQp OgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBnZXRzIHRo ZSBkZXBlbmRlbnRzIGFuZCByZXR1cm5zIGFuIGFqYXggcmVzcG9uc2UKKyAg ICAgICAgZm9yIHRoZSBydWxlIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAg ICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBz aWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAor ICAgICAgICAgICAgdmlkOiBWaWV3IElECisgICAgICAgICAgICByaWQ6IFJ1 bGUgSUQKKyAgICAgICAgIiIiCisgICAgICAgIGRlcGVuZGVudHNfcmVzdWx0 ID0gc2VsZi5nZXRfZGVwZW5kZW50cyhzZWxmLmNvbm4sIHJpZCkKKyAgICAg ICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25z ZT1kZXBlbmRlbnRzX3Jlc3VsdCwKKyAgICAgICAgICAgIHN0YXR1cz0yMDAK KyAgICAgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAg ICBkZWYgZGVwZW5kZW5jaWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQs IHZpZCwgcmlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rp b24gZ2V0cyB0aGUgZGVwZW5kZW5jaWVzIGFuZCByZXR1cm5zIHNuIGFqYXgg cmVzcG9uc2UKKyAgICAgICAgZm9yIHRoZSBydWxlIG5vZGUuCisKKyAgICAg ICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisg ICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBE YXRhYmFzZSBJRAorICAgICAgICAgICAgdmlkOiBWaWV3IElECisgICAgICAg ICAgICByaWQ6IFJ1bGUgSUQKKyAgICAgICAgIiIiCisgICAgICAgIGRlcGVu ZGVuY2llc19yZXN1bHQgPSBzZWxmLmdldF9kZXBlbmRlbmNpZXMoc2VsZi5j b25uLCByaWQpCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAg ICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW5jaWVzX3Jlc3VsdCwKKyAgICAg ICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICkKKworUnVsZVZpZXcu cmVnaXN0ZXJfbm9kZV92aWV3KGJsdWVwcmludCkKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3J1bGVzL3N0YXRpYy9pbWcvY29sbC1ydWxl LnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3J1bGVzL3N0YXRpYy9pbWcv Y29sbC1ydWxlLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5jZmU2ZWQyCkJpbmFyeSBmaWxlcyAvZGV2L251bGwgYW5kIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvcnVsZXMvc3RhdGljL2ltZy9jb2xsLXJ1bGUu cG5nIGRpZmZlcgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv cnVsZXMvc3RhdGljL2ltZy9ydWxlLnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3J1bGVzL3N0YXRpYy9pbWcvcnVsZS5wbmcKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uOGI0OTc4MApCaW5hcnkgZmlsZXMgL2Rl di9udWxsIGFuZCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3J1bGVzL3N0YXRp Yy9pbWcvcnVsZS5wbmcgZGlmZmVyCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy9ydWxlcy90ZW1wbGF0ZXMvcnVsZXMvY3NzL3J1bGUuY3Nz IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvcnVsZXMvdGVtcGxhdGVzL3J1bGVz L2Nzcy9ydWxlLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5kMmIwMzZhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL2Nzcy9ydWxlLmNzcwpA QCAtMCwwICsxLDggQEAKKy5pY29uLXJ1bGV7CisgIGJhY2tncm91bmQtaW1h Z2U6IHVybCgne3sgdXJsX2ZvcignTk9ERS1ydWxlLnN0YXRpYycsIGZpbGVu YW1lPSdpbWcvcnVsZS5wbmcnKSB9fScpICFpbXBvcnRhbnQ7CisgIGJvcmRl ci1yYWRpdXM6IDEwcHg7CisgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBl YXQ7CisgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsKKyAgdmVydGljYWwtYWxp Z246IG1pZGRsZTsKKyAgaGVpZ2h0OiAxLjNlbTsKK30KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3J1bGVzL3RlbXBsYXRlcy9ydWxlcy9q cy9ydWxlcy5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3J1bGVzL3RlbXBs YXRlcy9ydWxlcy9qcy9ydWxlcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi42NTJjODBkCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL2pzL3J1 bGVzLmpzCkBAIC0wLDAgKzEsMjUyIEBACitkZWZpbmUoCisgIFsnanF1ZXJ5 JywgJ3VuZGVyc2NvcmUnLCAndW5kZXJzY29yZS5zdHJpbmcnLCAncGdhZG1p bicsCisgICAgJ3BnYWRtaW4uYnJvd3NlcicsICdjb2RlbWlycm9yJ10sCisK K2Z1bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgQ29kZU1p cnJvcikgeworCisKKyAgLyoqCisgICAgQ3JlYXRlIGFuZCBhZGQgYSBydWxl IGNvbGxlY3Rpb24gaW50byBub2RlcworICAgIEBwYXJhbSB7dmFyaWFibGV9 IGxhYmVsIC0gTGFiZWwgZm9yIE5vZGUKKyAgICBAcGFyYW0ge3ZhcmlhYmxl fSB0eXBlIC0gVHlwZSBvZiBOb2RlCisgICAgQHBhcmFtIHt2YXJpYWJsZX0g Y29sdW1ucyAtIExpc3Qgb2YgY29sdW1ucyB0bworICAgICAgZGlzcGxheSB1 bmRlciB1bmRlciBwcm9wZXJ0aWVzLgorICAgKi8KKyAgaWYgKCFwZ0Jyb3dz ZXIuTm9kZXNbJ2NvbGwtcnVsZSddKSB7CisgICAgdmFyIHJ1bGVzID0gcGdB ZG1pbi5Ccm93c2VyLk5vZGVzWydjb2xsLXJ1bGUnXSA9CisgICAgICBwZ0Fk bWluLkJyb3dzZXIuQ29sbGVjdGlvbi5leHRlbmQoeworICAgICAgICBub2Rl OiAncnVsZScsCisgICAgICAgIGxhYmVsOiAne3sgXygnUnVsZXMnKSB9fScs CisgICAgICAgIHR5cGU6ICdjb2xsLXJ1bGUnLAorICAgICAgICBjb2x1bW5z OiBbJ25hbWUnLCAnb3duZXInLCAnY29tbWVudCddCisgICAgICB9KTsKKyAg fTsKKworCisgIC8qKgorICAgIENyZWF0ZSBhbmQgQWRkIGFuIFZpZXcgTm9k ZSBpbnRvIG5vZGVzCisgICAgQHBhcmFtIHt2YXJpYWJsZX0gcGFyZW50X3R5 cGUgLSBUaGUgbGlzdCBvZiBub2RlcworICAgIHVuZGVyIHdoaWNoIHRoaXMg bm9kZSB0byBkaXNwbGF5CisgICAgQHBhcmFtIHt2YXJpYWJsZX0gdHlwZSAt IFR5cGUgb2YgTm9kZQorICAgIEBwYXJhbSB7dmFyaWFibGV9IGhhc1NRTCAt IFRvIHNob3cgU1FMIHRhYgorICAgIEBwYXJhbSB7dmFyaWFibGV9IGNhbkRy b3AgLSBBZGRzIGRyb3AgdmlldyBvcHRpb24KKyAgICBpbiB0aGUgY29udGV4 dCBtZW51CisgICAgQHBhcmFtIHt2YXJpYWJsZX0gY2FuRHJvcENhc2NhZGUg LSBBZGRzIGRyb3AgQ2FzY2FkZQorICAgIHZpZXcgb3B0aW9uIGluIHRoZSBj b250ZXh0IG1lbnUKKyAgICovCisgIGlmICghcGdCcm93c2VyLk5vZGVzWydy dWxlJ10pIHsKKyAgICBwZ0FkbWluLkJyb3dzZXIuTm9kZXNbJ3J1bGUnXSA9 IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLmV4dGVuZCh7CisgICAgICBwYXJlbnRf dHlwZTogWyd2aWV3J10sCisgICAgICB0eXBlOiAncnVsZScsCisgICAgICBs YWJlbDogJ3t7IF8oJ3J1bGUnKSB9fScsCisgICAgICBjb2xsZWN0aW9uX3R5 cGU6ICdjb2xsLXJ1bGUnLAorICAgICAgaGFzU1FMOiAgdHJ1ZSwKKyAgICAg IGhhc0RlcGVuZHM6IHRydWUsCisgICAgICBjYW5Ecm9wOiBwZ0Jyb3dzZXIu Tm9kZXNbJ3NjaGVtYSddLmNhbkNoaWxkRHJvcCwKKyAgICAgIGNhbkRyb3BD YXNjYWRlOiBwZ0Jyb3dzZXIuTm9kZXNbJ3NjaGVtYSddLmNhbkNoaWxkRHJv cCwKKyAgICAgIEluaXQ6IGZ1bmN0aW9uKCkgeworCisgICAgICAgIC8qIEF2 b2lkIG11bGl0cGxlIHJlZ2lzdHJhdGlvbiBvZiBtZW51cyAqLworICAgICAg ICBpZiAodGhpcy5pbml0aWFsaXplZCkKKyAgICAgICAgICAgIHJldHVybjsK KworICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTsKKworICAgICAg ICAvKioKKyAgICAgICAgICBBZGQgImNyZWF0ZSBydWxlIiBtZW51IG9wdGlv biBpbnRvIGNvbnRleHQgYW5kIG9iamVjdCBtZW51CisgICAgICAgICAgZm9y IHRoZSBmb2xsb3dpbmcgbm9kZXM6CisgICAgICAgICAgY29sbC1ydWxlLCBy dWxlIGFuZCB2aWV3IGFuZCB0YWJsZS4KKyAgICAgICAgICBAcHJvcGVydHkg e2RhdGF9IC0gQWxsb3cgY3JlYXRlIHJ1bGUgb3B0aW9uIG9uIHNjaGVtYSBu b2RlIG9yCisgICAgICAgICAgc3lzdGVtIHJ1bGVzIG5vZGUuCisgICAgICAg ICAqLworICAgICAgICBwZ0Jyb3dzZXIuYWRkX21lbnVzKFt7CisgICAgICAg ICAgbmFtZTogJ2NyZWF0ZV9ydWxlX29uX2NvbGwnLCBub2RlOiAnY29sbC1y dWxlJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2Jq ZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0 aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5 OiA0LCBsYWJlbDogJ3t7IF8oJ1J1bGUuLi4nKSB9fScsCisgICAgICAgICAg aWNvbjogJ3djVGFiSWNvbiBpY29uLXJ1bGUnLCBkYXRhOiB7YWN0aW9uOiAn Y3JlYXRlJywgY2hlY2s6IHRydWV9LAorICAgICAgICAgIGVuYWJsZTogJ2Nh bkNyZWF0ZScKKyAgICAgICAgfSx7CisgICAgICAgICAgbmFtZTogJ2NyZWF0 ZV9ydWxlJywgbm9kZTogJ3ZpZXcnLCBtb2R1bGU6IHRoaXMsCisgICAgICAg ICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazog J3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAn Y3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygnUnVsZS4uLicp IH19JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tcnVsZScs IGRhdGE6IHthY3Rpb246ICdjcmVhdGUnLCBjaGVjazogdHJ1ZX0sCisgICAg ICAgICAgZW5hYmxlOiAnY2FuQ3JlYXRlJworICAgICAgICB9LHsKKyAgICAg ICAgICBuYW1lOiAnY3JlYXRlX3J1bGUnLCBub2RlOiAncnVsZScsIG1vZHVs ZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250 ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAg ICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6 ICd7eyBfKCdSdWxlLi4uJykgfX0nLAorICAgICAgICAgIGljb246ICd3Y1Rh Ykljb24gaWNvbi1ydWxlJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNo ZWNrOiB0cnVlfSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUnCisg ICAgICAgIH0seworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfcnVsZScsIG5v ZGU6ICd0YWJsZScsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVz OiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpf cHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBw cmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdSdWxlLi4uJykgfX0nLAorICAg ICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1ydWxlJywgZGF0YToge2Fj dGlvbjogJ2NyZWF0ZScsIGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBlbmFi bGU6ICdjYW5DcmVhdGUnCisgICAgICAgIH0KKyAgICAgICAgXSk7CisgICAg ICB9LAorCisgICAgICAvKioKKyAgICAgICAgRGVmaW5lIG1vZGVsIGZvciB0 aGUgcnVsZSBub2RlIGFuZCBzcGVjaWZ5IHRoZSBub2RlCisgICAgICAgIHBy b3BlcnRpZXMgb2YgdGhlIG1vZGVsIGluIHNjaGVtYS4KKyAgICAgICAqLwor ICAgICAgbW9kZWw6IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVu ZCh7CisgICAgICAgIGRlZmF1bHRzOiB7CisgICAgICAgIH0sCisgICAgICAg IHNjaGVtYTogW3sKKyAgICAgICAgICBpZDogJ25hbWUnLCBsYWJlbDogJ3t7 IF8oJ05hbWUnKSB9fScsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBkaXNh YmxlZDogZnVuY3Rpb24obSl7CisgICAgICAgICAgICByZXR1cm4gIW0uaXNO ZXcoKTsKKyAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHsKKyAg ICAgICAgICBpZDogJ29pZCcsIGxhYmVsOid7eyBfKCdPSUQnKSB9fScsCisg ICAgICAgICAgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDogdHJ1ZQorICAgICAg ICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdzY2hlbWEnLCBsYWJl bDone3sgXygnJykgfX0nLAorICAgICAgICAgIHR5cGU6ICd0ZXh0Jywgdmlz aWJsZTogZmFsc2UsIGRpc2FibGVkOiBmdW5jdGlvbihtKXsKKworICAgICAg ICAgICAgLy8gSXQgaXMgdXNlZCB3aGlsZSBnZW5lcmF0aW5nIHNxbAorICAg ICAgICAgICAgbS5zZXQoJ3NjaGVtYScsIG0ubm9kZV9pbmZvLnNjaGVtYS5s YWJlbCk7CisgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7Cisg ICAgICAgICAgaWQ6ICd2aWV3JywgbGFiZWw6J3t7IF8oJycpIH19JywKKyAg ICAgICAgICB0eXBlOiAndGV4dCcsIHZpc2libGU6IGZhbHNlLCBkaXNhYmxl ZDogZnVuY3Rpb24obSl7CisKKyAgICAgICAgICAgIC8vIEl0IGlzIHVzZWQg d2hpbGUgZ2VuZXJhdGluZyBzcWwKKyAgICAgICAgICAgIG0uc2V0KCd2aWV3 JywgbS5ub2RlX2luZm8udmlldy5sYWJlbCk7CisgICAgICAgICAgfQorICAg ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdjb21tZW50Jywg bGFiZWw6J3t7IF8oJ0NvbW1lbnQnKSB9fScsIGNlbGw6ICdzdHJpbmcnLCB0 eXBlOiAnbXVsdGlsaW5lJworICAgICAgICB9LAorICAgICAgICB7CisgICAg ICAgICAgaWQ6ICdldmVudCcsIGxhYmVsOid7eyBfKCdFdmVudCcpIH19Jywg Y29udHJvbDogJ3NlbGVjdDInLAorICAgICAgICAgIGdyb3VwOiAnRGVmaW5p dGlvbicsIHR5cGU6ICd0ZXh0JywKKyAgICAgICAgICBzZWxlY3QyOiB7Cisg ICAgICAgICAgICB3aWR0aDogJzEwMCUnCisgICAgICAgICAgfSwKKyAgICAg ICAgICBvcHRpb25zOlsKKyAgICAgICAgICAgIHtsYWJlbDogJ1NlbGVjdCcs IHZhbHVlOiAnU2VsZWN0J30sCisgICAgICAgICAgICB7bGFiZWw6ICdJbnNl cnQnLCB2YWx1ZTogJ0luc2VydCd9LAorICAgICAgICAgICAge2xhYmVsOiAn VXBkYXRlJywgdmFsdWU6ICdVcGRhdGUnfSwKKyAgICAgICAgICAgIHtsYWJl bDogJ0RlbGV0ZScsIHZhbHVlOiAnRGVsZXRlJ30KKyAgICAgICAgICBdCisg ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ2RvX2luc3Rl YWQnLCBsYWJlbDone3sgXygnRG8gSW5zdGVhZCcpIH19JywgZ3JvdXA6ICdE ZWZpbml0aW9uJywKKyAgICAgICAgICB0eXBlOiAnc3dpdGNoJywgJ29wdGlv bnMnOiB7CisgICAgICAgICAgICAnb25UZXh0JzogJ1llcycsICdvZmZUZXh0 JzogJ05vJywgJ29uQ29sb3InOiAnc3VjY2VzcycsCisgICAgICAgICAgICAn b2ZmQ29sb3InOiAnZGVmYXVsdCcsICdzaXplJzogJ3NtYWxsJworICAgICAg ICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAn Y29uZGl0aW9uJywgbGFiZWw6J3t7IF8oJ0NvbmRpdGlvbicpIH19JywKKyAg ICAgICAgICB0eXBlOiAndGV4dCcsIGdyb3VwOiAnRGVmaW5pdGlvbicsCisg ICAgICAgICAgY29udHJvbDogJ3NxbC1maWVsZCcKKyAgICAgICAgfSwKKyAg ICAgICAgeworICAgICAgICAgIGlkOiAnc3RhdGVtZW50cycsIGxhYmVsOid7 eyBfKCdEZWZpbml0aW9uJykgfX0nLAorICAgICAgICAgIHR5cGU6ICd0ZXh0 JywgZ3JvdXA6ICdTdGF0ZW1lbnRzJywgY29udHJvbDogJ3NxbC1maWVsZCcK KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnc3lzdGVt X3J1bGUnLCBsYWJlbDone3sgXygnU3lzdGVtIHJ1bGU/JykgfX0nLAorICAg ICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwg J29wdGlvbnMnOiB7CisgICAgICAgICAgICAnb25UZXh0JzogJ1llcycsICdv ZmZUZXh0JzogJ05vJywgJ29uQ29sb3InOiAnc3VjY2VzcycsCisgICAgICAg ICAgICAnb2ZmQ29sb3InOiAnZGVmYXVsdCcsICdzaXplJzogJ3NtYWxsJwor ICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg IGlkOiAnZW5hYmxlZCcsIGxhYmVsOid7eyBfKCdFbmFibGVkPycpIH19JywK KyAgICAgICAgICB0eXBlOiAnc3dpdGNoJywgbW9kZTogWydwcm9wZXJ0aWVz J10sICdvcHRpb25zJzogeworICAgICAgICAgICAgJ29uVGV4dCc6ICdZZXMn LCAnb2ZmVGV4dCc6ICdObycsICdvbkNvbG9yJzogJ3N1Y2Nlc3MnLAorICAg ICAgICAgICAgJ29mZkNvbG9yJzogJ2RlZmF1bHQnLCAnc2l6ZSc6ICdzbWFs bCcKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgXSwKKyAgICAg ICAgdmFsaWRhdGU6IGZ1bmN0aW9uKCkgeworCisgICAgICAgICAgLy8gVHJp Z2dlcnMgc3BlY2lmaWMgZXJyb3IgbWVzc2FnZXMgZm9yIGZpZWxkcworICAg ICAgICAgIHZhciBlcnIgPSB7fSwKKyAgICAgICAgICAgIGVycm1zZywKKyAg ICAgICAgICAgIGZpZWxkX25hbWUgPSB0aGlzLmdldCgnbmFtZScpOworICAg ICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKGZpZWxkX25hbWUpIHx8IF8uaXNO dWxsKGZpZWxkX25hbWUpIHx8CisgICAgICAgICAgICBTdHJpbmcoZmllbGRf bmFtZSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykKKyAgICAg ICAgICB7CisgICAgICAgICAgICBlcnJbJ25hbWUnXSA9ICd7eyBfKCJQbGVh c2Ugc3BlY2lmeSBuYW1lLiIpIH19JzsKKyAgICAgICAgICAgIGVycm1zZyA9 IGVycm1zZyB8fCBlcnJbJ25hbWUnXTsKKyAgICAgICAgICAgIHRoaXMuZXJy b3JNb2RlbC5zZXQoJ25hbWUnLCBlcnJtc2cpOworICAgICAgICAgICAgcmV0 dXJuIGVycm1zZzsKKyAgICAgICAgICB9CisgICAgICAgICAgZWxzZQorICAg ICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC51bnNldCgn bmFtZScpOworICAgICAgICAgIH0KKyAgICAgICAgICByZXR1cm4gbnVsbDsK KyAgICAgICAgfQorICAgICAgfSksCisKKyAgICAgIC8vIFNob3cgb3IgaGlk ZSBjcmVhdGUgcnVsZSBtZW51IG9wdGlvbiBvbiBwYXJlbnQgbm9kZQorICAg ICAgY2FuQ3JlYXRlOiBmdW5jdGlvbihpdGVtRGF0YSwgaXRlbSwgZGF0YSkg eworCisgICAgICAgIC8vIElmIGNoZWNrIGlzIGZhbHNlIHRoZW4gLCB3ZSB3 aWxsIGFsbG93IGNyZWF0ZSBtZW51CisgICAgICAgIGlmIChkYXRhICYmIGRh dGEuY2hlY2sgPT0gZmFsc2UpCisgICAgICAgICAgcmV0dXJuIHRydWU7CisK KyAgICAgICAgdmFyIHQgPSBwZ0Jyb3dzZXIudHJlZSwgaSA9IGl0ZW0sIGQg PSBpdGVtRGF0YTsKKworICAgICAgICAvLyBUbyBpdGVyYXRlIG92ZXIgdHJl ZSB0byBjaGVjayBwYXJlbnQgbm9kZQorICAgICAgICB3aGlsZSAoaSkgewor CisgICAgICAgICAgLy8gSWYgaXQgaXMgc2NoZW1hIHRoZW4gYWxsb3cgdXNl ciB0byBjcmVhdGUgcnVsZQorICAgICAgICAgIGlmIChfLmluZGV4T2YoWydz Y2hlbWEnXSwgZC5fdHlwZSkgPiAtMSkKKyAgICAgICAgICAgIHJldHVybiB0 cnVlOworCisgICAgICAgICAgaWYgKCdjb2xsLXJ1bGUnID09IGQuX3R5cGUp IHsKKworICAgICAgICAgICAgLy9DaGVjayBpZiB3ZSBhcmUgbm90IGNoaWxk IG9mIHJ1bGUKKyAgICAgICAgICAgIHByZXZfaSA9IHQuaGFzUGFyZW50KGkp ID8gdC5wYXJlbnQoaSkgOiBudWxsOworICAgICAgICAgICAgcHJldl9kID0g cHJldl9pID8gdC5pdGVtRGF0YShwcmV2X2kpIDogbnVsbDsKKyAgICAgICAg ICAgIHByZXZfaiA9IHQuaGFzUGFyZW50KHByZXZfaSkgPyB0LnBhcmVudChw cmV2X2kpIDogbnVsbDsKKyAgICAgICAgICAgIHByZXZfZSA9IHByZXZfaiA/ IHQuaXRlbURhdGEocHJldl9qKSA6IG51bGw7CisgICAgICAgICAgICBwcmV2 X2sgPSB0Lmhhc1BhcmVudChwcmV2X2opID8gdC5wYXJlbnQocHJldl9qKSA6 IG51bGw7CisgICAgICAgICAgICBwcmV2X2YgPSBwcmV2X2sgPyB0Lml0ZW1E YXRhKHByZXZfaykgOiBudWxsOworICAgICAgICAgICAgaWYoIHByZXZfZi5f dHlwZSA9PSAnY2F0YWxvZycpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGZh bHNlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgcmV0 dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorCisgICAg ICAgICAgLyoqCisgICAgICAgICAgICBDaGVjayBpZiBpdCBpcyB2aWV3IGFu ZCBpdHMgcGFyZW50IG5vZGUgaXMgc2NoZW1hCisgICAgICAgICAgICB0aGVu IGFsbG93IHRvIGNyZWF0ZSBSdWxlCisgICAgICAgICAgICovCisgICAgICAg ICAgZWxzZSBpZigndmlldycgPT0gZC5fdHlwZSl7CisgICAgICAgICAgICBw cmV2X2kgPSB0Lmhhc1BhcmVudChpKSA/IHQucGFyZW50KGkpIDogbnVsbDsK KyAgICAgICAgICAgIHByZXZfZCA9IHByZXZfaSA/IHQuaXRlbURhdGEocHJl dl9pKSA6IG51bGw7CisgICAgICAgICAgICBwcmV2X2ogPSB0Lmhhc1BhcmVu dChwcmV2X2kpID8gdC5wYXJlbnQocHJldl9pKSA6IG51bGw7CisgICAgICAg ICAgICBwcmV2X2UgPSBwcmV2X2ogPyB0Lml0ZW1EYXRhKHByZXZfaikgOiBu dWxsOworICAgICAgICAgICAgaWYocHJldl9lLl90eXBlID09ICdzY2hlbWEn KSB7CisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAg fWVsc2V7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg ICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAgaSA9IHQuaGFzUGFyZW50 KGkpID8gdC5wYXJlbnQoaSkgOiBudWxsOworICAgICAgICAgIGQgPSBpID8g dC5pdGVtRGF0YShpKSA6IG51bGw7CisgICAgICAgIH0KKworICAgICAgICAv LyBCeSBkZWZhdWx0IHdlIGRvIG5vdCB3YW50IHRvIGFsbG93IGNyZWF0ZSBt ZW51CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICB9CisKKyAgfSk7 CisgIH0KKworICByZXR1cm4gcGdCcm93c2VyLk5vZGVzWydjb2xsLXJ1bGUn XTsKK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvcnVs ZXMvdGVtcGxhdGVzL3J1bGVzL3NxbC9iYWNrZW5kX3N1cHBvcnQuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL3Nx bC9iYWNrZW5kX3N1cHBvcnQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmUzZjhmNGYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy9ydWxlcy90ZW1wbGF0ZXMvcnVsZXMvc3FsL2Jh Y2tlbmRfc3VwcG9ydC5zcWwKQEAgLTAsMCArMSwyMCBAQAorU0VMRUNUCisg ICAgQ0FTRSBXSEVOIG5zcC5uc3BuYW1lIElOICgnc3lzJywgJ2RibycsICdp bmZvcm1hdGlvbl9zY2hlbWEnKSBUSEVOIHRydWUgRUxTRSBmYWxzZSBFTkQg QVMgZGJTdXBwb3J0CitGUk9NCisgICAgcGdfbmFtZXNwYWNlIG5zcAorV0hF UkUKKyAgICBuc3Aub2lkPXt7c2NpZH19OjppbnQKK0FORCAoCisgICAgKG5z cG5hbWUgPSAncGdfY2F0YWxvZycgQU5EIEVYSVNUUworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX2NsYXNz IFdIRVJFIHJlbG5hbWUgPSAncGdfY2xhc3MnIEFORCByZWxuYW1lc3BhY2Ug PSBuc3Aub2lkIExJTUlUIDEpKQorICAgIE9SIChuc3BuYW1lID0gJ3BnYWdl bnQnIEFORCBFWElTVFMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoU0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0g J3BnYV9qb2InIEFORCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEp KQorICAgIE9SIChuc3BuYW1lID0gJ2luZm9ybWF0aW9uX3NjaGVtYScgQU5E IEVYSVNUUworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChT RUxFQ1QgMSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAndGFibGVz JyBBTkQgcmVsbmFtZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAxKSkKKyAgICBP UiAobnNwbmFtZSBMSUtFICdfJScgQU5EIEVYSVNUUworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX3Byb2Mg V0hFUkUgcHJvbmFtZT0nc2xvbnl2ZXJzaW9uJyBBTkQgcHJvbmFtZXNwYWNl ID0gbnNwLm9pZCBMSU1JVCAxKSkKKykKK0FORAorICAgIG5zcG5hbWUgTk9U IExJS0UgRSdwZ1xcdGVtcFxcJScKK0FORAorICAgIG5zcG5hbWUgTk9UIExJ S0UgRSdwZ1xcdG9hc3RfdGVtcFxcJScKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3J1bGVzL3RlbXBsYXRlcy9ydWxlcy9zcWwvY3JlYXRl LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3J1bGVzL3RlbXBsYXRlcy9y dWxlcy9zcWwvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4zYzc0MzZmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL3NxbC9jcmVh dGUuc3FsCkBAIC0wLDAgKzEsMjYgQEAKK3sjPT09PT09PT09PT09Q3JlYXRl IFJ1bGU9PT09PT09PT09PT09I30KK3slIGlmIGRpc3BsYXlfY29tbWVudHMg JX0KKy0tIFJ1bGU6IHt7IGRhdGEubmFtZSB9fSBPTiB7eyBjb25ufHF0SWRl bnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKworLS0gRFJPUCBSdWxl IHt7IGRhdGEubmFtZSB9fSBPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hl bWEsIGRhdGEubmFtZSkgfX07CisKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRh Lm5hbWUgYW5kIGRhdGEuc2NoZW1hIGFuZCBkYXRhLnZpZXcgJX0KK0NSRUFU RSBPUiBSRVBMQUNFIFJVTEUge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkg fX0gQVMKKyAgICBPTiB7eyBkYXRhLmV2ZW50fHVwcGVyIGlmIGRhdGEuZXZl bnQgZWxzZSAnU0VMRUNUJyB9fSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5z Y2hlbWEsIGRhdGEudmlldykgfX0KK3slIGlmIGRhdGEuY29uZGl0aW9uICV9 CisgICAgV0hFUkUge3sgZGF0YS5jb25kaXRpb24gfX0KK3slIGVuZGlmICV9 CisgICAgRE97JSBpZiBkYXRhLmlzX2luc3RlYWQgPT0gVHJ1ZSAlfQore3sg JyBJTlNURUFEJyB9fQorICAgIHslIGVsc2UgJX0KK3t7ICcgJyB9fQorICAg IHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnN0YXRlbWVudHMgJX0KK3t7IGRh dGEuc3RhdGVtZW50cy5yc3RyaXAoJzsnKSB9fTsKK3slIGVsc2UgJX0KK05P VEhJTkc7Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5jb21tZW50ICV9CitD T01NRU5UIE9OIFJVTEUge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX0g T04ge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnZpZXcpIH19 IElTIHt7IGRhdGEuY29tbWVudHxxdExpdGVyYWwgfX07eyUgZW5kaWYgJX0K K3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy9ydWxlcy90ZW1wbGF0ZXMvcnVsZXMvc3FsL2RlbGV0ZS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy9ydWxlcy90ZW1wbGF0ZXMvcnVsZXMvc3FsL2Rl bGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u N2I4MzE4YgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3J1bGVzL3RlbXBsYXRlcy9ydWxlcy9zcWwvZGVsZXRlLnNxbApAQCAt MCwwICsxLDE2IEBACit7Iz09PT09PT09IERyb3AvQ2FzY2FkZSBSdWxlID09 PT09PT09PSN9Cit7JSBpZiByaWQgJX0KK1NFTEVDVAorICAgIHJ3LnJ1bGVu YW1lLCBjbC5yZWxuYW1lLCBuc3AubnNwbmFtZQorRlJPTQorICAgIHBnX3Jl d3JpdGUgcncKK0pPSU4KKyAgICBwZ19jbGFzcyBjbCBPTiBjbC5vaWQ9cncu ZXZfY2xhc3MKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5v aWQ9Y2wucmVsbmFtZXNwYWNlCitXSEVSRQorICAgIHJ3Lm9pZD17eyByaWQg fX07Cit7JSBlbmRpZiAlfQoreyUgaWYgcnVsZW5hbWUgYW5kIHJlbG5hbWUg YW5kIG5zcG5hbWUgJX0KK0RST1AgUlVMRSB7eyBjb25ufHF0SWRlbnQocnVs ZW5hbWUpIH19IE9OIHt7IGNvbm58cXRJZGVudChuc3BuYW1lLCByZWxuYW1l KSB9fSB7JSBpZiBjYXNjYWRlICV9IENBU0NBREUgeyUgZW5kaWYgJX07Cit7 JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv cnVsZXMvdGVtcGxhdGVzL3J1bGVzL3NxbC9wcm9wZXJ0aWVzLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3J1bGVzL3RlbXBsYXRlcy9ydWxlcy9zcWwv cHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZWRhMTAyNQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3J1bGVzL3RlbXBsYXRlcy9ydWxlcy9zcWwvcHJvcGVydGll cy5zcWwKQEAgLTAsMCArMSwyNyBAQAoreyM9PT09PT09PT09PT09PT09PT09 RmV0Y2ggUnVsZXM9PT09PT09PT09PT09PT09PT09PSN9Cit7JSBpZiB2aWQg b3IgcmlkICV9CitTRUxFQ1QKKyAgICBydy5vaWQgQVMgb2lkLCBydy5ydWxl bmFtZSBBUyBuYW1lLCBydy4qLCByZWxuYW1lIEFTIHZpZXcsCisgICAgQ0FT RSBXSEVOIHJlbGtpbmQgPSAncicgVEhFTiBUUlVFIEVMU0UgRkFMU0UgRU5E IEFTIHBhcmVudGlzdGFibGUsCisgICAgbnNwbmFtZSBBUyBzY2hlbWEsIGRl c2NyaXB0aW9uIEFTIGNvbW1lbnQsCisgICAgeyM9PUNoZWNrcyB3aGV0aGVy IGl0IGlzIHN5c3RlbSBydWxlIG9yIG5vdD09PSN9CisgICAgQ0FTRSBXSEVO IHJ3LnJ1bGVuYW1lID0gJ19SRVRVUk4nIFRIRU4gVHJ1ZSBFTFNFIEZhbHNl IEVORCBBUyBzeXN0ZW1fcnVsZSwKKyAgICBDQVNFIFdIRU4gcncuZXZfZW5h YmxlZCAhPSAnRCcgVEhFTiBUcnVlIEVMU0UgRmFsc2UgRU5EIEFTIGVuYWJs ZWQsCisgICAgcGdfZ2V0X3J1bGVkZWYocncub2lkLCB0cnVlKSBBUyBkZWZp bml0aW9uCitGUk9NCisgICAgcGdfcmV3cml0ZSBydworSk9JTgorICAgIHBn X2NsYXNzIGNsIE9OIGNsLm9pZD1ydy5ldl9jbGFzcworSk9JTgorICAgIHBn X25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1jbC5yZWxuYW1lc3BhY2UKK0xF RlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVz Lm9iam9pZD1ydy5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcmV3cml0ZSc6 OnJlZ2NsYXNzKQorV0hFUkUKKyAgeyUgaWYgdmlkICV9CisgICAgICBldl9j bGFzcyA9IHt7IHZpZCB9fQorICB7JSBlbGlmIHJpZCAlfQorICAgICAgcncu b2lkID0ge3sgcmlkIH19CisgIHslIGVuZGlmICV9CitPUkRFUiBCWQorICAg IHJ3LnJ1bGVuYW1lCisgeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3J1bGVzL3RlbXBsYXRlcy9ydWxlcy9zcWwvcnVs ZV9pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy9ydWxlcy90ZW1wbGF0 ZXMvcnVsZXMvc3FsL3J1bGVfaWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjNkYzZkYmEKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy9ydWxlcy90ZW1wbGF0ZXMvcnVsZXMvc3Fs L3J1bGVfaWQuc3FsCkBAIC0wLDAgKzEsOSBAQAoreyM9PT09PT09PUJlbG93 IHdpbGwgcHJvdmlkZSBydWxlIGlkIGZvciBsYXN0IGNyZWF0ZWQgcnVsZT09 PT09PT09I30KK3slIGlmIHJ1bGVfbmFtZSAlfQorU0VMRUNUCisgICAgcncu b2lkCitGUk9NCisgICAgcGdfcmV3cml0ZSBydworV0hFUkUKKyAgICBydy5y dWxlbmFtZT17eyBydWxlX25hbWV8cXRMaXRlcmFsIH19Cit7JSBlbmRpZiAl fQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvcnVsZXMvdGVt cGxhdGVzL3J1bGVzL3NxbC91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL3NxbC91cGRhdGUuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1MDM2OWEKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy9ydWxlcy90 ZW1wbGF0ZXMvcnVsZXMvc3FsL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSwyMiBA QAoreyM9PT09PT09PT09PT1VcGRhdGUgUnVsZT09PT09PT09PT09PT0jfQor eyUgaWYgZGF0YS5ldmVudCBvciBkYXRhLmRvX2luc3RlYWQgb3IgZGF0YS5j b25kaXRpb24gJX0KK0NSRUFURSBPUiBSRVBMQUNFIFJVTEUge3sgY29ubnxx dElkZW50KG9fZGF0YS5uYW1lKSB9fSBBUworICAgIE9OIHslIGlmIGRhdGEu ZXZlbnQgYW5kIGRhdGEuZXZlbnQgIT0gb19kYXRhLmV2ZW50ICV9e3sgZGF0 YS5ldmVudHx1cHBlciB9fXslIGVsc2UgJX17eyBvX2RhdGEuZXZlbnR8dXBw ZXIgfX17JSBlbmRpZiAlfQorICAgIFRPIHt7IGNvbm58cXRJZGVudChvX2Rh dGEuc2NoZW1hLCBvX2RhdGEudmlldykgfX0KK3slIGlmIGRhdGEuY29uZGl0 aW9uIGFuZCBvX2RhdGEuY29uZGl0aW9uICE9IGRhdGEuY29uZGl0aW9uICV9 CisgICAgV0hFUkUge3sgZGF0YS5jb25kaXRpb24gfX0KK3slIGVsaWYgZGF0 YS5jb25kaXRpb24gaXMgbm90IGRlZmluZWQgYW5kIG9fZGF0YS5jb25kaXRp b24gJX0KKyAgICBXSEVSRSB7eyBvX2RhdGEuY29uZGl0aW9uIH19Cit7JSBl bmRpZiAlfQorIERPeyUgaWYgZGF0YS5kb19pbnN0ZWFkIGluIFsndHJ1ZScs IFRydWVdICV9e3sgJyBJTlNURUFEJyB9fXslIGVsc2UgJX17eyAnICcgfX0K K3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLnN0YXRlbWVudHMgYW5kIGRhdGEu c3RhdGVtZW50cyAhPSBvX2RhdGEuc3RhdGVtZW50cyAlfQorIHt7IGRhdGEu c3RhdGVtZW50cy5yc3RyaXAoJzsnKSB9fTsKKyB7JSBlbGlmIGRhdGEuc3Rh dGVtZW50cyBpcyBub3QgZGVmaW5lZCBhbmQgb19kYXRhLnN0YXRlbWVudHMg JX0KKyB7eyBvX2RhdGEuc3RhdGVtZW50cy5yc3RyaXAoJzsnKSB9fTsKK3sl IGVsc2UgJX0KKyBOT1RISU5HOworeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9 Cit7JSBpZiBkYXRhLmNvbW1lbnQgYW5kIGRhdGEuY29tbWVudCAhPSBvX2Rh dGEuY29tbWVudCAlfQorQ09NTUVOVCBPTiBSVUxFIHt7IGNvbm58cXRJZGVu dChvX2RhdGEubmFtZSkgfX0gT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5z Y2hlbWEsIG9fZGF0YS52aWV3KSB9fSBJUyB7eyBkYXRhLmNvbW1lbnR8cXRM aXRlcmFsIH19O3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy9zdGF0aWMvaW1nL2NvbGwtdmlldy5wbmcgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy9zdGF0aWMvaW1nL2NvbGwtdmlldy5wbmcKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDc4ZDUzMwpCaW5hcnkg ZmlsZXMgL2Rldi9udWxsIGFuZCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3N0 YXRpYy9pbWcvY29sbC12aWV3LnBuZyBkaWZmZXIKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3N0YXRpYy9pbWcvdmlldy5wbmcgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy9zdGF0aWMvaW1nL3ZpZXcucG5nCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0MTE2ZGIKQmluYXJ5IGZp bGVzIC9kZXYvbnVsbCBhbmQgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy9zdGF0 aWMvaW1nL3ZpZXcucG5nIGRpZmZlcgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL2Nzcy92aWV3LmNzcyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9jc3Mvdmlldy5j c3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODhhMmY0 MwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3cy9jc3Mvdmlldy5jc3MKQEAgLTAsMCArMSw4IEBACisu aWNvbi12aWV3eworICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3t7IHVybF9m b3IoJ05PREUtdmlldy5zdGF0aWMnLCBmaWxlbmFtZT0naW1nL3ZpZXcucG5n JykgfX0nKSAhaW1wb3J0YW50OworICBib3JkZXItcmFkaXVzOiAxMHB4Owor ICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICBhbGlnbi1jb250 ZW50OiBjZW50ZXI7CisgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CisgIGhl aWdodDogMS4zZW07Cit9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlld3MvanMvdmlld3MuanMgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3MvanMvdmlld3MuanMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDNjZWE3OAotLS0gL2Rl 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 ICAgIH0pOworICB9OworCisgIC8qKgorICAgIENyZWF0ZSBhbmQgQWRkIGEg VmlldyBOb2RlIGludG8gbm9kZXMKKyAgICBAcGFyYW0ge3ZhcmlhYmxlfSBw YXJlbnRfdHlwZSAtIFRoZSBsaXN0IG9mIG5vZGVzCisgICAgdW5kZXIgd2hp Y2ggdGhpcyBub2RlIHRvIGRpc3BsYXkKKyAgICBAcGFyYW0ge3ZhcmlhYmxl fSB0eXBlIC0gVHlwZSBvZiBOb2RlCisgICAgQHBhcmFtIHt2YXJpYWJsZX0g aGFzU1FMIC0gVG8gc2hvdyBTUUwgdGFiCisgICAgQHBhcmFtIHt2YXJpYWJs ZX0gY2FuRHJvcCAtIEFkZHMgZHJvcCB2aWV3IG9wdGlvbgorICAgIGluIHRo ZSBjb250ZXh0IG1lbnUKKyAgICBAcGFyYW0ge3ZhcmlhYmxlfSBjYW5Ecm9w Q2FzY2FkZSAtIEFkZHMgZHJvcCBDYXNjYWRlCisgICAgdmlldyBvcHRpb24g aW4gdGhlIGNvbnRleHQgbWVudQorICAgKi8KKyAgaWYgKCFwZ0Jyb3dzZXIu Tm9kZXNbJ3ZpZXcnXSkgeworICAgIHBnQWRtaW4uQnJvd3Nlci5Ob2Rlc1sn dmlldyddID0gcGdBZG1pbi5Ccm93c2VyLk5vZGUuZXh0ZW5kKHsKKyAgICAg IHBhcmVudF90eXBlOiBbJ3NjaGVtYScsICdjYXRhbG9nJ10sCisgICAgICB0 eXBlOiAndmlldycsCisgICAgICBsYWJlbDogJ3t7IF8oJ1ZpZXcnKSB9fScs CisgICAgICBoYXNTUUw6ICB0cnVlLAorICAgICAgaGFzRGVwZW5kczogdHJ1 ZSwKKyAgICAgIGNvbGxlY3Rpb25fdHlwZTogJ2NvbGwtdmlldycsCisgICAg ICBjYW5Ecm9wOiBwZ0Jyb3dzZXIuTm9kZXNbJ3NjaGVtYSddLmNhbkNoaWxk RHJvcCwKKyAgICAgIGNhbkRyb3BDYXNjYWRlOiBwZ0Jyb3dzZXIuTm9kZXNb J3NjaGVtYSddLmNhbkNoaWxkRHJvcCwKKyAgICAgIEluaXQ6IGZ1bmN0aW9u KCkgeworCisgICAgICAgIC8vIEF2b2lkIG11bGl0cGxlIHJlZ2lzdHJhdGlv biBvZiBtZW51cworICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkKKyAg ICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9 IHRydWU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAgQWRkICJjcmVhdGUg dmlldyIgbWVudSBvcHRpb24gaW50byBjb250ZXh0IGFuZCBvYmplY3QgbWVu dQorICAgICAgICAgIGZvciB0aGUgZm9sbG93aW5nIG5vZGVzOgorICAgICAg ICAgIGNvbGwtdmlldywgdmlldyBhbmQgc2NoZW1hLgorICAgICAgICAgIEBw cm9wZXJ0eSB7ZGF0YX0gLSBBbGxvdyBjcmVhdGUgdmlldyBvcHRpb24gb24g c2NoZW1hIG5vZGUgb3IKKyAgICAgICAgICBzeXN0ZW0gdmlldyBub2Rlcy4K KyAgICAgICAgICovCisgICAgICAgIHBnQnJvd3Nlci5hZGRfbWVudXMoW3sK KyAgICAgICAgICBuYW1lOiAnY3JlYXRlX3ZpZXdfb25fY29sbCcsIG5vZGU6 ICdjb2xsLXZpZXcnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGll czogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2Jq X3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywg cHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygnVmlldy4uLicpIH19JywKKyAg ICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tdmlldycsIGRhdGE6IHth Y3Rpb246ICdjcmVhdGUnLCBjaGVjazogdHJ1ZX0sCisgICAgICAgICAgZW5h YmxlOiAnY2FuQ3JlYXRlJworICAgICAgICB9LHsKKyAgICAgICAgICBuYW1l OiAnY3JlYXRlX3ZpZXcnLCBub2RlOiAndmlldycsIG1vZHVsZTogdGhpcywK KyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNh bGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0 ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdW aWV3Li4uJykgfX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNv bi12aWV3JywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNrOiB0cnVl fSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUnCisgICAgICAgIH0s eworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfdmlldycsIG5vZGU6ICdzY2hl bWEnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydvYmpl Y3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRp ZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6 IDQsIGxhYmVsOiAne3sgXygnVmlldy4uLicpIH19JywKKyAgICAgICAgICBp Y29uOiAnd2NUYWJJY29uIGljb24tdmlldycsIGRhdGE6IHthY3Rpb246ICdj cmVhdGUnLCBjaGVjazogZmFsc2V9LAorICAgICAgICAgIGVuYWJsZTogJ2Nh bkNyZWF0ZScKKyAgICAgICAgfQorICAgICAgICBdKTsKKyAgICAgIH0sCisK KyAgICAgIC8qKgorICAgICAgICBEZWZpbmUgbW9kZWwgZm9yIHRoZSB2aWV3 IG5vZGUgYW5kIHNwZWNpZnkgdGhlCisgICAgICAgIHByb3BlcnRpZXMgb2Yg dGhlIG1vZGVsIGluIHNjaGVtYS4KKyAgICAgICAqLworICAgICAgbW9kZWw6 IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAgICAg IGRlZmF1bHRzOiB7CisgICAgICAgIH0sCisgICAgICAgIHNjaGVtYTogW3sK KyAgICAgICAgICBpZDogJ25hbWUnLCBsYWJlbDogJ3t7IF8oJ05hbWUnKSB9 fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0Jwor ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdvaWQnLCBs YWJlbDone3sgXygnT2lkJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAg ICAgICB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiB0cnVlCisgICAgICAgIH0s CisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ293bmVyJywgbGFiZWw6J3t7 IF8oJ093bmVyJykgfX0nLCBjZWxsOiAnc3RyaW5nJywgY29udHJvbDogJ25v ZGUtbGlzdC1ieS1uYW1lJywKKyAgICAgICAgICBub2RlOiAncm9sZScKKyAg ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnc2NoZW1hJywg bGFiZWw6J3t7IF8oJ1NjaGVtYScpIH19JywgY2VsbDogJ3N0cmluZycsIGZp cnN0X2VtcHR5OiBmYWxzZSwKKyAgICAgICAgICB0eXBlOiAnb3B0aW9ucycs IG5vZGU6ICdzY2hlbWEnLAorICAgICAgICAgIGNvbnRyb2w6IEJhY2tmb3Jt Lk5vZGVMaXN0QnlOYW1lQ29udHJvbC5leHRlbmQoeworICAgICAgICAgICAg cmVuZGVyOiBmdW5jdGlvbigpeworCisgICAgICAgICAgICAgIC8vIEluaXRp YWxpemUgcGFyZW50J3MgcmVuZGVyIG1ldGhvZAorICAgICAgICAgICAgICBC YWNrZm9ybS5Ob2RlTGlzdEJ5TmFtZUNvbnRyb2wucHJvdG90eXBlLnJlbmRl ci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworCisgICAgICAgICAgICAgIC8v IFNldCBzY2hlbWEgZGVmYXVsdCB2YWx1ZSB0byBpdHMgcGFyZW50IFNjaGVt YQorICAgICAgICAgICAgICBpZih0aGlzLm1vZGVsLmlzTmV3KCkpeworICAg ICAgICAgICAgICAgIHRoaXMubW9kZWwuc2V0KHsnc2NoZW1hJzogdGhpcy5t b2RlbC5ub2RlX2luZm8uc2NoZW1hLmxhYmVsfSk7CisgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgICAgICB9 CisgICAgICAgICAgfSksCisKKyAgICAgICAgICAvLyBEb24ndCBzaG93IHNj aGVtYSBzdGFydHMgd2l0aCAicGdfIgorICAgICAgICAgIGZpbHRlcjogZnVu Y3Rpb24oZCl7CisgICAgICAgICAgICBpZihkLmxhYmVsICYmIGQubGFiZWwu bWF0Y2goL15wZ18vKSl7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg ICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlk OiAnY29tbWVudCcsIGxhYmVsOid7eyBfKCdDb21tZW50JykgfX0nLCBjZWxs OiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAnbXVsdGlsaW5lJworICAg ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdzeXN0ZW1fdmll dycsIGxhYmVsOid7eyBfKCdTeXN0ZW0gdmlldz8nKSB9fScsIGNlbGw6ICdz dHJpbmcnLAorICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBkaXNhYmxlZDog dHJ1ZSwgbW9kZTogWydwcm9wZXJ0aWVzJ10sICdvcHRpb25zJzogeworICAg ICAgICAgICAgJ29uVGV4dCc6ICdZZXMnLCAnb2ZmVGV4dCc6ICdObycsICdv bkNvbG9yJzogJ3N1Y2Nlc3MnLAorICAgICAgICAgICAgJ29mZkNvbG9yJzog J2RlZmF1bHQnLCAnc2l6ZSc6ICdzbWFsbCcKKyAgICAgICAgICB9CisgICAg ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ3NlY3VyaXR5X2Jh cnJpZXInLCBsYWJlbDone3sgXygnU2VjdXJpdHkgQmFycmllcicpIH19Jywg Y2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsIG1p bl92ZXJzaW9uOiAnOTAyMDAnLAorICAgICAgICAgIGdyb3VwOiAnRGVmaW5p dGlvbicsIG9wdGlvbnM6IHsKKyAgICAgICAgICAgICdvblRleHQnOiAnWWVz JywgJ29mZlRleHQnOiAnTm8nLCAnb25Db2xvcic6ICdzdWNjZXNzJywKKyAg ICAgICAgICAgICdvZmZDb2xvcic6ICdkZWZhdWx0JywgJ3NpemUnOiAnc21h bGwnCisgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAg ICAgICAgaWQ6ICdjaGVja19vcHRpb24nLCBsYWJlbDone3sgXygnQ2hlY2sg T3B0aW9ucycpIH19JywKKyAgICAgICAgICBjb250cm9sOiAnc2VsZWN0Mics IGdyb3VwOiAnRGVmaW5pdGlvbicsIHR5cGU6ICd0ZXh0JywKKyAgICAgICAg ICBtaW5fdmVyc2lvbjogJzkwNDAwJywgbW9kZTpbJ2NyZWF0ZScsICdlZGl0 J10sCisgICAgICAgICAgc2VsZWN0MjogeworCisgICAgICAgICAgICAvLyBz ZXQgc2VsZWN0MiBvcHRpb24gd2lkdGggdG8gMTAwJQorICAgICAgICAgICAg d2lkdGg6ICcxMDAlJworICAgICAgICAgIH0sCisgICAgICAgICAgb3B0aW9u czpbCisgICAgICAgICAgICB7bGFiZWw6ICJObyIsIHZhbHVlOiAibm8ifSwK KyAgICAgICAgICAgIHtsYWJlbDogIkxvY2FsIiwgdmFsdWU6ICJsb2NhbCJ9 LAorICAgICAgICAgICAge2xhYmVsOiAiQ2FzY2FkZWQiLCB2YWx1ZTogImNh c2NhZGVkIn0KKyAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsK KyAgICAgICAgICBpZDogJ2RlZmluaXRpb24nLCBsYWJlbDone3sgXygnRGVm aW5pdGlvbicpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlw ZTogJ3RleHQnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJywgJ2Vk aXQnXSwgZ3JvdXA6ICdEZWZpbml0aW9uJywKKyAgICAgICAgICBjb250cm9s OiAnc3FsLWZpZWxkJworICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg ICAgaWQ6ICdtX3ZpZXcnLCBsYWJlbDone3sgXygnTWF0ZXJpYWxpemVkIHZp ZXc/JykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAn c3dpdGNoJywgbW9kZTogWydwcm9wZXJ0aWVzJ10sIG1pbl92ZXJzaW9uOiAn OTAzMDAnLAorICAgICAgICAgIGdyb3VwOiAnTWF0ZXJpYWxpemF0aW9uJywg b3B0aW9uczogeworICAgICAgICAgICAgJ29uVGV4dCc6ICdZZXMnLCAnb2Zm VGV4dCc6ICdObycsICdvbkNvbG9yJzogJ3N1Y2Nlc3MnLAorICAgICAgICAg ICAgJ29mZkNvbG9yJzogJ2RlZmF1bHQnLCAnc2l6ZSc6ICdzbWFsbCcKKyAg ICAgICAgICB9CisgICAgICAgIH0sCisKKyAgICAgICAgLy8gQWRkIFByaXZp bGVnZSBDb250cm9sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ2RhdGFj bCcsIGxhYmVsOiAne3sgXygnUHJpdmlsZWdlcycpIH19JywKKyAgICAgICAg ICBtb2RlbDogcGdBZG1pbi5Ccm93c2VyLk5vZGUuUHJpdmlsZWdlUm9sZU1v ZGVsLmV4dGVuZCgKKyAgICAgICAgICAgIHtwcml2aWxlZ2VzOiBbJ2EnLCAn cicsICd3JywgJ2QnLCAneCcsICd0J119KSwgdW5pcXVlQ29sIDogWydncmFu dGVlJ10sCisgICAgICAgICAgZWRpdGFibGU6IGZhbHNlLCB0eXBlOiAnY29s bGVjdGlvbicsIGdyb3VwOiAne3sgXygnU2VjdXJpdHknKSB9fScsCisgICAg ICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2VkaXQnLCAnY3JlYXRlJ10s IGNhbkFkZDogdHJ1ZSwgY2FuRGVsZXRlOiB0cnVlLAorICAgICAgICAgIGNv bnRyb2w6ICd1bmlxdWUtY29sLWNvbGxlY3Rpb24nLAorICAgICAgICB9LAor ICAgICAgICAKKyAgICAgICAgLy8gQWRkIFNlY3VyaXR5IExhYmVscyBDb250 cm9sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ3NlY2xhYmVscycsIGxh YmVsOiAne3sgXygnU2VjdXJpdHkgTGFiZWxzJykgfX0nLAorICAgICAgICAg IG1vZGVsOiBTZWN1cml0eU1vZGVsLCBlZGl0YWJsZTogZmFsc2UsIHR5cGU6 ICdjb2xsZWN0aW9uJywKKyAgICAgICAgICBjYW5FZGl0OiBmYWxzZSwgZ3Jv dXA6ICd7eyBfKCdTZWN1cml0eScpIH19JywgY2FuRGVsZXRlOiB0cnVlLAor ICAgICAgICAgIG1vZGU6IFsnZWRpdCcsICdjcmVhdGUnXSwgY2FuQWRkOiB0 cnVlLAorICAgICAgICAgIGNvbnRyb2w6ICd1bmlxdWUtY29sLWNvbGxlY3Rp b24nLCB1bmlxdWVDb2wgOiBbJ3Byb3ZpZGVyJ10KKyAgICAgICAgfQorICAg ICAgICBdLAorICAgICAgICB2YWxpZGF0ZTogZnVuY3Rpb24oKSB7CisKKyAg ICAgICAgICAvLyBUcmlnZ2VycyBzcGVjaWZpYyBlcnJvciBtZXNzYWdlcyBm b3IgZmllbGRzCisgICAgICAgICAgdmFyIGVyciA9IHt9LAorICAgICAgICAg ICAgZXJybXNnLAorICAgICAgICAgICAgZmllbGRfbmFtZSA9IHRoaXMuZ2V0 KCduYW1lJyksCisgICAgICAgICAgICBmaWVsZF9kZWYgPSB0aGlzLmdldCgn ZGVmaW5pdGlvbicpOworICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKGZp ZWxkX25hbWUpIHx8IF8uaXNOdWxsKGZpZWxkX25hbWUpIHx8CisgICAgICAg ICAgICBTdHJpbmcoZmllbGRfbmFtZSkucmVwbGFjZSgvXlxzK3xccyskL2cs ICcnKSA9PSAnJykgeworICAgICAgICAgICAgZXJyWyduYW1lJ10gPSAne3sg XygiUGxlYXNlIHNwZWNpZnkgbmFtZS4iKSB9fSc7CisgICAgICAgICAgICBl cnJtc2cgPSBlcnJtc2cgfHwgZXJyWyduYW1lJ107CisgICAgICAgICAgICB0 aGlzLmVycm9yTW9kZWwuc2V0KCduYW1lJywgZXJybXNnKTsKKyAgICAgICAg ICAgIHJldHVybiBlcnJtc2c7CisgICAgICAgICAgfWVsc2V7CisgICAgICAg ICAgICB0aGlzLmVycm9yTW9kZWwudW5zZXQoJ25hbWUnKTsKKyAgICAgICAg ICB9CisgICAgICAgICAgaWYodGhpcy5pc05ldygpKXsKKyAgICAgICAgICAg IGlmIChfLmlzVW5kZWZpbmVkKGZpZWxkX2RlZikgfHwgXy5pc051bGwoZmll bGRfZGVmKSB8fAorICAgICAgICAgICAgICBTdHJpbmcoZmllbGRfZGVmKS5y ZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAg ICAgIGVyclsnZGVmaW5pdGlvbiddID0gJ3t7IF8oIlBsZWFzZSBlbnRlciBm dW5jdGlvbiBkZWZpbml0aW9uLiIpIH19JzsKKyAgICAgICAgICAgICAgZXJy bXNnID0gZXJybXNnIHx8IGVyclsnZGVmaW5pdGlvbiddOworICAgICAgICAg ICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCdkZWZpbml0aW9uJywgZXJybXNn KTsKKyAgICAgICAgICAgICAgcmV0dXJuIGVycm1zZzsKKyAgICAgICAgICAg IH1lbHNleworICAgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwudW5zZXQo J2RlZmluaXRpb24nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9Cisg ICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgIH0pLAor CisgICAgICAvKioKKyAgICAgICAgU2hvdyBvciBoaWRlIGNyZWF0ZSB2aWV3 IG1lbnUgb3B0aW9uIG9uIHBhcmVudCBub2RlCisgICAgICAgIGFuZCBoaWRl IGZvciBzeXN0ZW0gdmlldyBpbiBjYXRhbG9ncy4KKyAgICAgICAqLworICAg ICAgY2FuQ3JlYXRlOiBmdW5jdGlvbihpdGVtRGF0YSwgaXRlbSwgZGF0YSkg eworCisgICAgICAgIC8vIElmIGNoZWNrIGlzIGZhbHNlIHRoZW4sIHdlIHdp bGwgYWxsb3cgY3JlYXRlIG1lbnUKKyAgICAgICAgaWYgKGRhdGEgJiYgZGF0 YS5jaGVjayA9PSBmYWxzZSkKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKwor ICAgICAgICB2YXIgdCA9IHBnQnJvd3Nlci50cmVlLCBpID0gaXRlbSwgZCA9 IGl0ZW1EYXRhOworCisgICAgICAgIC8vIFRvIGl0ZXJhdGUgb3ZlciB0cmVl IHRvIGNoZWNrIHBhcmVudCBub2RlCisgICAgICAgIHdoaWxlIChpKSB7CisK KyAgICAgICAgICAvLyBJZiBpdCBpcyBzY2hlbWEgdGhlbiBhbGxvdyB1c2Vy IHRvIGNyZWF0ZSB2aWV3CisgICAgICAgICAgaWYgKF8uaW5kZXhPZihbJ3Nj aGVtYSddLCBkLl90eXBlKSA+IC0xKQorICAgICAgICAgICAgcmV0dXJuIHRy dWU7CisKKyAgICAgICAgICBpZiAoJ2NvbGwtdmlldycgPT0gZC5fdHlwZSkg eworCisgICAgICAgICAgICAvLyBDaGVjayBpZiB3ZSBhcmUgbm90IGNoaWxk IG9mIHZpZXcKKyAgICAgICAgICAgIHByZXZfaSA9IHQuaGFzUGFyZW50KGkp ID8gdC5wYXJlbnQoaSkgOiBudWxsOworICAgICAgICAgICAgcHJldl9kID0g cHJldl9pID8gdC5pdGVtRGF0YShwcmV2X2kpIDogbnVsbDsKKyAgICAgICAg ICAgIGlmKCBwcmV2X2QuX3R5cGUgPT0gJ2NhdGFsb2cnKSB7CisgICAgICAg ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg ICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAg ICAgICAgIH0KKyAgICAgICAgICBpID0gdC5oYXNQYXJlbnQoaSkgPyB0LnBh cmVudChpKSA6IG51bGw7CisgICAgICAgICAgZCA9IGkgPyB0Lml0ZW1EYXRh KGkpIDogbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGJ5IGRlZmF1 bHQgd2UgZG8gbm90IHdhbnQgdG8gYWxsb3cgY3JlYXRlIG1lbnUKKyAgICAg ICAgcmV0dXJuIHRydWU7CisKKyAgICAgIH0KKyAgfSk7CisgIH0KKworICBy ZXR1cm4gcGdCcm93c2VyLk5vZGVzWydjb2xsLXZpZXcnXTsKK30pOwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdz L3NxbC85LjFfcGx1cy9hY2wuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL3ZpZXdzL3NxbC85LjFfcGx1cy9hY2wuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwN2ZiMDQKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmll d3Mvc3FsLzkuMV9wbHVzL2FjbC5zcWwKQEAgLTAsMCArMSwzNSBAQAoreyM9 PT09PT09PT09PT09PT09PT09PT09PT09PT09R2V0IEFDTHM9PT09PT09PT09 PT09PT09PT09PT09PT09I30KK3slIGlmIHZpZCAlfQorU0VMRUNUCisgICAg J2RhdGFjbCcgYXMgZGVmdHlwZSwKKyAgICBDT0FMRVNDRShndC5yb2xuYW1l LCAncHVibGljJykgZ3JhbnRlZSwKKyAgICBnLnJvbG5hbWUgZ3JhbnRvciwK KyAgICBhcnJheV9hZ2cocHJpdmlsZWdlX3R5cGUpIGFzIHByaXZpbGVnZXMs CisgICAgYXJyYXlfYWdnKGlzX2dyYW50YWJsZSkgYXMgZ3JhbnRhYmxlCitG Uk9NCisgICAgKFNFTEVDVAorICAgICAgICBkLmdyYW50ZWUsIGQuZ3JhbnRv ciwgZC5pc19ncmFudGFibGUsCisgICAgICAgIENBU0UgZC5wcml2aWxlZ2Vf dHlwZQorICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisgICAgICAg IFdIRU4gJ0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJF TkNFUycgVEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdy JworICAgICAgICBXSEVOICdUUklHR0VSJyBUSEVOICd0JworICAgICAgICBX SEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAgICAgIEVMU0UgJ1VOS05PV04n CisgICAgICAgIEVORCBBUyBwcml2aWxlZ2VfdHlwZQorICAgIEZST00KKyAg ICAgICAgKFNFTEVDVCByZWxhY2wgRlJPTSBwZ19jbGFzcyBjbAorICAgICAg ICAgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3NoZGVzY3JpcHRpb24gZGVzY3Ig T04gKAorICAgICAgICAgICAgY2wub2lkPWRlc2NyLm9iam9pZCBBTkQgZGVz Y3IuY2xhc3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xhc3MpCisgICAgICAgIFdI RVJFIGNsLm9pZCA9IHt7IHZpZCB9fTo6T0lEIEFORCByZWxraW5kID0gJ3Yn CisgICAgICAgICkgYWNsLAorICAgICAgICAoU0VMRUNUIChkKS5ncmFudGVl IEFTIGdyYW50ZWUsIChkKS5ncmFudG9yIEFTIGdyYW50b3IsIChkKS5pc19n cmFudGFibGUgQVMgaXNfZ3JhbnRhYmxlLAorICAgICAgICAgICAgKGQpLnBy aXZpbGVnZV90eXBlIEFTIHByaXZpbGVnZV90eXBlCisgICAgICAgIEZST00g KFNFTEVDVCBhY2xleHBsb2RlKHJlbGFjbCkgYXMgZCBGUk9NIHBnX2NsYXNz IGNsMSBXSEVSRSBjbDEub2lkID0ge3t2aWR9fSkgYSkgZAorICAgICAgICAp IGQKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9OIChk LmdyYW50b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5w Z19yb2xlcyBndCBPTiAoZC5ncmFudGVlID0gZ3Qub2lkKQorR1JPVVAgQlkK KyAgICBnLnJvbG5hbWUsIGd0LnJvbG5hbWUKK3slIGVuZGlmICV9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mv c3FsLzkuMV9wbHVzL2JhY2tlbmRfc3VwcG9ydC5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuMV9wbHVzL2JhY2tl bmRfc3VwcG9ydC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZTNmOGY0ZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4xX3BsdXMvYmFja2Vu ZF9zdXBwb3J0LnNxbApAQCAtMCwwICsxLDIwIEBACitTRUxFQ1QKKyAgICBD QVNFIFdIRU4gbnNwLm5zcG5hbWUgSU4gKCdzeXMnLCAnZGJvJywgJ2luZm9y bWF0aW9uX3NjaGVtYScpIFRIRU4gdHJ1ZSBFTFNFIGZhbHNlIEVORCBBUyBk YlN1cHBvcnQKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UgbnNwCitXSEVSRQor ICAgIG5zcC5vaWQ9e3tzY2lkfX06OmludAorQU5EICgKKyAgICAobnNwbmFt ZSA9ICdwZ19jYXRhbG9nJyBBTkQgRVhJU1RTCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hF UkUgcmVsbmFtZSA9ICdwZ19jbGFzcycgQU5EIHJlbG5hbWVzcGFjZSA9IG5z cC5vaWQgTElNSVQgMSkpCisgICAgT1IgKG5zcG5hbWUgPSAncGdhZ2VudCcg QU5EIEVYSVNUUworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChTRUxFQ1QgMSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAncGdh X2pvYicgQU5EIHJlbG5hbWVzcGFjZSA9IG5zcC5vaWQgTElNSVQgMSkpCisg ICAgT1IgKG5zcG5hbWUgPSAnaW5mb3JtYXRpb25fc2NoZW1hJyBBTkQgRVhJ U1RTCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFNFTEVD VCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICd0YWJsZXMnIEFO RCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEpKQorICAgIE9SIChu c3BuYW1lIExJS0UgJ18lJyBBTkQgRVhJU1RTCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKFNFTEVDVCAxIEZST00gcGdfcHJvYyBXSEVS RSBwcm9uYW1lPSdzbG9ueXZlcnNpb24nIEFORCBwcm9uYW1lc3BhY2UgPSBu c3Aub2lkIExJTUlUIDEpKQorKQorQU5ECisgICAgbnNwbmFtZSBOT1QgTElL RSBFJ3BnXFx0ZW1wXFwlJworQU5ECisgICAgbnNwbmFtZSBOT1QgTElLRSBF J3BnXFx0b2FzdF90ZW1wXFwlJwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjFfcGx1cy9jcmVhdGUu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3Nx bC85LjFfcGx1cy9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjJhYzFlM2EKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuMV9wbHVz L2NyZWF0ZS5zcWwKQEAgLTAsMCArMSwyNSBAQAoreyM9PT09PT09PT09PT09 PT09PT09PT09PT09PT09Q3JlYXRlIG5ldyB2aWV3PT09PT09PT09PT09PT09 PT09PT09PT09PSN9Cit7JSBpZiBkaXNwbGF5X2NvbW1lbnRzICV9CistLSBW aWV3OiB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkg fX0KKworLS0gRFJPUCBWSUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVt YSwgZGF0YS5uYW1lKSB9fTsKKworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEu bmFtZSBhbmQgZGF0YS5zY2hlbWEgYW5kIGRhdGEuZGVmaW5pdGlvbiAlfQor Q1JFQVRFIE9SIFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5z Y2hlbWEsIGRhdGEubmFtZSkgfX0KK3slIGlmICgoZGF0YS5jaGVja19vcHRp b24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25vJykgb3Ig ZGF0YS5zZWN1cml0eV9iYXJyaWVyKSAlfQorV0lUSCAoeyUgaWYgZGF0YS5j aGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uLmxvd2VyKCkgIT0g J25vJyAlfQorY2hlY2tfb3B0aW9uPXt7IGRhdGEuY2hlY2tfb3B0aW9uIH19 eyUgZW5kaWYgJX17eyAnLCAnIGlmIGRhdGEuY2hlY2tfb3B0aW9uIGFuZAor ZGF0YS5jaGVja19vcHRpb24ubG93ZXIoKSAhPSAnbm8nIGFuZCBkYXRhLnNl Y3VyaXR5X2JhcnJpZXIgZWxzZSAnJyB9fXslIGlmIGRhdGEuc2VjdXJpdHlf YmFycmllciAlfQorc2VjdXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5 X2JhcnJpZXIgfX17JSBlbmRpZiAlfSl7JSBlbmRpZiAlfSBBUwore3sgZGF0 YS5kZWZpbml0aW9uLnJzdHJpcCgnOycpIH19OworeyUgaWYgZGF0YS5vd25l ciAlfQorCitBTFRFUiBUQUJMRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hl bWEsIGRhdGEubmFtZSkgfX0KKyAgICBPV05FUiBUTyB7eyBkYXRhLm93bmVy IH19OworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuY29tbWVudCAlfQorQ09N TUVOVCBPTiBWSUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0 YS5uYW1lKSB9fQorICAgIElTIHt7IGRhdGEuY29tbWVudHxxdExpdGVyYWwg fX07Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4xX3Bs dXMvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy92aWV3cy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTI5MGEyCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3Nx bC85LjFfcGx1cy9kZWxldGUuc3FsCkBAIC0wLDAgKzEsMTIgQEAKK3sjPT09 PT09PT09PT09PT09PT09PT09PT09PT09PURyb3AvQ2FzY2FkZSB2aWV3IGJ5 IG5hbWU9PT09PT09PT09PT09PT09PT09PT09PT09I30KK3slIGlmIHZpZCAl fQorU0VMRUNUCisgICAgYy5yZWxuYW1lIEFzIG5hbWUsIG5zcC5uc3BuYW1l CitGUk9NCisgICAgcGdfY2xhc3MgYworICAgIExFRlQgSk9JTiBwZ19uYW1l c3BhY2UgbnNwIG9uIGMucmVsbmFtZXNwYWNlID0gbnNwLm9pZAorV0hFUkUK KyAgICBjLnJlbGZpbGVub2RlID0ge3sgdmlkIH19OworeyUgZWxpZiAobmFt ZSBhbmQgbnNwbmFtZSkgJX0KK0RST1AgVklFVyB7e25zcG5hbWV9fS57eyBj b25ufHF0SWRlbnQobmFtZSkgfX0geyUgaWYgY2FzY2FkZSAlfSBDQVNDQURF IHslIGVuZGlmICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjFfcGx1cy9n cmFudC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmll d3Mvc3FsLzkuMV9wbHVzL2dyYW50LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi45ZmE3MTgxCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjFf cGx1cy9ncmFudC5zcWwKQEAgLTAsMCArMSwxNCBAQAoreyM9PT09PUdyYW50 IFBlcm1pc3Npb25zIHRvIFVzZXIgUm9sZSBvbiBWaWV3cy9UYWJsZXM9PT09 I30KK3slIGltcG9ydCAnbWFjcm9zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VD TEFCTEUgJX0KK3slIGltcG9ydCAnbWFjcm9zL3ByaXZpbGVnZS5tYWNyb3Mn IGFzIFBSSVZJTEVHRSAlfQoreyMgV2Ugd2lsbCBnZW5lcmF0ZSBTZWN1cml0 eSBMYWJlbCBTUUwgdXNpbmcgbWFjcm8gI30KK3slIGlmIGRhdGEuc2VjbGFi ZWxzICV9Cit7JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVscyAlfQore3sgU0VD TEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlk ZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmICV9Cit7JSBpZiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4g ZGF0YS5kYXRhY2wgJX0KK3t7IFBSSVZJTEVHRS5BUFBMWShjb25uLCAnVEFC TEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0YS5zY2hlbWEsIHBy aXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50KSB9fQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjFfcGx1cy9wcm9wZXJ0 aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3 cy9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uOTQ4NzQ1OAotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwv OS4xX3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSwyOSBAQAoreyUg aWYgKHZpZCBhbmQgZGF0bGFzdHN5c29pZCkgb3Igc2NpZCAlfQorU0VMRUNU IGMub2lkLCBjLnhtaW4sIGMucmVsbmFtZSBBUyBuYW1lLCBjLnJlbHRhYmxl c3BhY2UgQVMgc3Bjb2lkLCBzcGMuc3BjbmFtZSwKKyAgICBwZ19nZXRfdXNl cmJ5aWQoYy5yZWxvd25lcikgQVMgb3duZXIsIGRlc2NyaXB0aW9uIEFTIGNv bW1lbnQsCisgICAgcGdfZ2V0X3ZpZXdkZWYoYy5vaWQsIHRydWUpIEFTIGRl ZmluaXRpb24sIG5zcC5uc3BuYW1lIEFTIHNjaGVtYSwKKyAgICAoU0VMRUNU IGFycmF5X2FnZyhsYWJlbCkgRlJPTSBwZ19zZWNsYWJlbHMgc2wxIFdIRVJF IHNsMS5vYmpvaWQ9Yy5vaWQgQU5EIHNsMS5vYmpzdWJpZD0wKSBBUyBsYWJl bHMsCisgICAgKFNFTEVDVCBhcnJheV9hZ2cocHJvdmlkZXIpIEZST00gcGdf c2VjbGFiZWxzIHNsMiBXSEVSRSBzbDIub2Jqb2lkPWMub2lkIEFORCBzbDIu b2Jqc3ViaWQ9MCkgQVMgcHJvdmlkZXJzCitGUk9NIHBnX2NsYXNzIGMKKyAg ICBMRUZUIE9VVEVSIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBvbiBuc3Aub2lk ID0gYy5yZWxuYW1lc3BhY2UKKyAgICBMRUZUIE9VVEVSIEpPSU4gcGdfdGFi bGVzcGFjZSBzcGMgb24gc3BjLm9pZD1jLnJlbHRhYmxlc3BhY2UKKyAgICBM RUZUIE9VVEVSIEpPSU4gcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jq b2lkPWMub2lkIGFuZCBkZXMub2Jqc3ViaWQ9MCBBTkQgZGVzLmNsYXNzb2lk PSdwZ19jbGFzcyc6OnJlZ2NsYXNzKQorICAgICAgICBXSEVSRSAoKGMucmVs aGFzcnVsZXMgQU5EIChFWElTVFMgKAorICAgICAgICAgICAgU0VMRUNUIHIu cnVsZW5hbWUgRlJPTSBwZ19yZXdyaXRlIHIKKyAgICAgICAgICAgICAgICBX SEVSRSAoKHIuZXZfY2xhc3MgPSBjLm9pZCkKKyAgICAgICAgICAgICAgICAg ICAgQU5EIChicGNoYXIoci5ldl90eXBlKSA9ICcxJzo6YnBjaGFyKSkgKSkp IE9SIChjLnJlbGtpbmQgPSAndic6OmNoYXIpKQoreyUgaWYgKHZpZCBhbmQg ZGF0bGFzdHN5c29pZCkgJX0KKyAgICAgICAgQU5EIGMub2lkID0ge3t2aWR9 fTo6b2lkCit7JSBlbGlmIHNjaWQgJX0KKyAgICAgICAgQU5EIGMucmVsbmFt ZXNwYWNlID0ge3tzY2lkfX06Om9pZCBPUkRFUiBCWSBjLnJlbG5hbWUKK3sl IGVuZGlmICV9CisKK3slIGVsaWYgdHlwZSA9PSAncm9sZXMnICV9CitTRUxF Q1QgcHIucm9sbmFtZSBGUk9NIHBnX3JvbGVzIHByIFdIRVJFIHByLnJvbGNh bmxvZ2luIE9SREVSIEJZIHByLnJvbG5hbWUKKworeyUgZWxpZiB0eXBlID09 ICdzY2hlbWFzJyAlfQorU0VMRUNUIG5zcC5uc3BuYW1lCisgICAgRlJPTSBw Z19uYW1lc3BhY2UgbnNwCitXSEVSRSAobnNwLm5zcG5hbWUgTk9UIExJS0Ug RSdwZ1xcXyUnCisgICAgQU5EIG5zcC5uc3BuYW1lICE9ICdpbmZvcm1hdGlv bl9zY2hlbWEnKQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4xX3BsdXMvdXBk YXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3 cy9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5kMjU4NjMyCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjFf cGx1cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEsODEgQEAKK3sjPT09PT09PT09 PT09PT09PT09PT09PT09PT09PVVwZGF0ZSB2aWV3PT09PT09PT09PT09PT09 PT09PT09PT09PSN9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNy b3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9wcml2aWxl Z2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGlmIGRhdGEgJX0KK3sl IHNldCB2aWV3X25hbWUgPSBkYXRhLm5hbWUgaWYgZGF0YS5uYW1lIGVsc2Ug b19kYXRhLm5hbWUgJX0KK3slIHNldCB2aWV3X3NjaGVtYSA9IGRhdGEuc2No ZW1hIGlmIGRhdGEuc2NoZW1hIGVsc2Ugb19kYXRhLnNjaGVtYSAlfQoreyUg c2V0IGRlZiA9IGRhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSBpZiBkYXRh LmRlZmluaXRpb24gJX0KK3slIGlmIGRhdGEubmFtZSBhbmQgZGF0YS5uYW1l ICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVu dChvX2RhdGEuc2NoZW1hLCBvX2RhdGEubmFtZSkgfX0KKyAgICBSRU5BTUUg VE8ge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07Cit7JSBlbmRpZiAl fQoreyUgaWYgZGF0YS5zY2hlbWEgYW5kIGRhdGEuc2NoZW1hICE9IG9fZGF0 YS5zY2hlbWEgJX0KK0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KG9fZGF0 YS5zY2hlbWEsIHZpZXdfbmFtZSApIH19CisgICAgU0VUIFNDSEVNQSB7eyBk YXRhLnNjaGVtYSB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLm93bmVy IGFuZCBkYXRhLm93bmVyICE9IG9fZGF0YS5vd25lciAlfQorQUxURVIgVEFC TEUge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19 CisgICAgT1dORVIgVE8ge3sgZGF0YS5vd25lciB9fTsKK3slIGVuZGlmICV9 Cit7JSBpZiBkZWYgYW5kIGRlZiAhPSBvX2RhdGEuZGVmaW5pdGlvbi5yc3Ry aXAoJzsnKSAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyB7eyBjb25ufHF0 SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KK3slIGlmIChkYXRh LmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gb19kYXRh LmNoZWNrX29wdGlvbikKKyAgICBvciAoZGF0YS5zZWN1cml0eV9iYXJyaWVy IGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgIT0gb19kYXRhLnNlY3VyaXR5 X2JhcnJpZXIpICV9CisgICAgV0lUSCAoeyUgaWYgKGRhdGEuY2hlY2tfb3B0 aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAhPSAnbm8nKSAlfWNoZWNrX29w dGlvbj17eyBkYXRhLmNoZWNrX29wdGlvbiB9fXslIGVuZGlmICV9e3snLCAn IGlmIGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAh PSAnbm8nIGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgfX17JSBpZiBkYXRh LnNlY3VyaXR5X2JhcnJpZXIgJX1zZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEu c2VjdXJpdHlfYmFycmllciB9fXslIGVuZGlmICV9KQoreyUgZW5kaWYgJX0K KyAgICBBU3t7IGRlZiB9fTsKK3slIGVsc2UgJX0KK3slIGlmIChkYXRhLnNl Y3VyaXR5X2JhcnJpZXIgYW5kIGRhdGEuc2VjdXJpdHlfYmFycmllciAhPSAg b19kYXRhLnNlY3VyaXR5X2JhcnJpZXIpICV9CitBTFRFUiBWSUVXIHt7IGNv bm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIFNF VCAoc2VjdXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXIg fX0pOworeyUgZW5kaWYgJX0KK3slIGlmIChkYXRhLmNoZWNrX29wdGlvbiBh bmQgZGF0YS5jaGVja19vcHRpb24gIT0gb19kYXRhLmNoZWNrX29wdGlvbiBh bmQgZGF0YS5jaGVja19vcHRpb24gIT0gJ25vJykgJX0KK0FMVEVSIFZJRVcg e3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19Cisg ICAgU0VUIChjaGVja19vcHRpb249e3sgZGF0YS5jaGVja19vcHRpb24gfX0p OworeyUgZWxpZiAoZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tf b3B0aW9uICE9IG9fZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tf b3B0aW9uID09ICdubycpICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVu dCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fSBSRVNFVCAoY2hlY2tfb3B0 aW9uKTsKK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5j b21tZW50IGFuZCBkYXRhLmNvbW1lbnQgIT0gb19kYXRhLmNvbW1lbnQgJX0K K0NPTU1FTlQgT04gVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEs IHZpZXdfbmFtZSkgfX0KKyAgICBJUyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRl cmFsIH19OworeyUgZW5kaWYgJX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJl bG93IHdpbGwgY2hhbmdlIHByaXZpbGVnZXMgI30KK3slIGlmIGRhdGEuZGF0 YWNsICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3sl IGZvciBwcml2IGluIGRhdGEuZGF0YWNsLmRlbGV0ZWQgJX0KK3t7IFBSSVZJ TEVHRS5SRVNFVEFMTChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRh dGEubmFtZSwgZGF0YS5zY2hlbWEpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3sl IGZvciBwcml2IGluIGRhdGEuZGF0YWNsLmNoYW5nZWQgJX0KK3t7IFBSSVZJ TEVHRS5SRVNFVEFMTChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRh dGEubmFtZSwgZGF0YS5zY2hlbWEpIH19Cit7eyBQUklWSUxFR0UuQVBQTFko Y29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEu c2NoZW1hLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkg fX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdhZGRlZCcg aW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNs LmFkZGVkICV9Cit7eyBQUklWSUxFR0UuQVBQTFkoY29ubiwgJ1RBQkxFJywg cHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hLCBwcml2Lndp dGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3slIGVuZGZvciAl fQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVy YXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBTZWN1cml0eSBMYWJlbCAjfQoreyUg aWYgZGF0YS5zZWNsYWJlbHMgaXMgbm90IG5vbmUgYW5kIGRhdGEuc2VjbGFi ZWxzfGxlbmd0aCA+IDAgJX0KK3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNl Y2xhYmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQg c2VjbGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4g c2VjbGFiZWxzLmRlbGV0ZWQgJX0KK3t7IFNFQ0xBQkxFLkRST1AoY29ubiwg J1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIpIH19Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmICV9Cit7JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVscyBh bmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGlu IHNlY2xhYmVscy5hZGRlZCAlfQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwg J1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFi ZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hh bmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5n dGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQor e3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIu cHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9z cWwvOS4xX3BsdXMvdmlld19pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuMV9wbHVzL3ZpZXdfaWQuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkZmYwNGUKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0 ZXMvdmlld3Mvc3FsLzkuMV9wbHVzL3ZpZXdfaWQuc3FsCkBAIC0wLDAgKzEs NCBAQAoreyMgQmVsb3cgd2lsbCBwcm92aWRlIHZpZXcgaWQgZm9yIG5ld2x5 IGNyZWF0ZWQgdmlldyAjfQoreyUgaWYgZGF0YSAlfQorU0VMRUNUIGMub2lk IEZST00gcGdfY2xhc3MgYyBXSEVSRSBjLnJlbG5hbWUgPSAne3sgZGF0YS5u YW1lIH19JzsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuMl9wbHVzL2FjbC5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3Fs LzkuMl9wbHVzL2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMmEzZmJjYQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4yX3BsdXMvYWNs LnNxbApAQCAtMCwwICsxLDM1IEBACit7Iz09PT09PT09PT09PT09PT09PT09 PT09PT09PT1HZXQgQUNMcz09PT09PT09PT09PT09PT09PT09PT09PT0jfQor eyUgaWYgdmlkICV9CitTRUxFQ1QKKyAgICAnZGF0YWNsJyBhcyBkZWZ0eXBl LAorICAgIENPQUxFU0NFKGd0LnJvbG5hbWUsICdwdWJsaWMnKSBncmFudGVl LAorICAgIGcucm9sbmFtZSBncmFudG9yLAorICAgIGFycmF5X2FnZyhwcml2 aWxlZ2VfdHlwZSkgYXMgcHJpdmlsZWdlcywKKyAgICBhcnJheV9hZ2coaXNf Z3JhbnRhYmxlKSBhcyBncmFudGFibGUKK0ZST00KKyAgICAoU0VMRUNUCisg ICAgICAgIGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50YWJsZSwK KyAgICAgICAgQ0FTRSBkLnByaXZpbGVnZV90eXBlCisgICAgICAgIFdIRU4g J0RFTEVURScgVEhFTiAnZCcKKyAgICAgICAgV0hFTiAnSU5TRVJUJyBUSEVO ICdhJworICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4JworICAg ICAgICBXSEVOICdTRUxFQ1QnIFRIRU4gJ3InCisgICAgICAgIFdIRU4gJ1RS SUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1VQREFURScgVEhFTiAn dycKKyAgICAgICAgRUxTRSAnVU5LTk9XTicKKyAgICAgICAgRU5EIEFTIHBy aXZpbGVnZV90eXBlCisgICAgRlJPTQorICAgICAgICAoU0VMRUNUIHJlbGFj bCBGUk9NIHBnX2NsYXNzIGNsCisgICAgICAgICAgICBMRUZUIE9VVEVSIEpP SU4gcGdfc2hkZXNjcmlwdGlvbiBkZXNjciBPTiAoCisgICAgICAgICAgICAg IGNsLm9pZD1kZXNjci5vYmpvaWQgQU5EIGRlc2NyLmNsYXNzb2lkPSdwZ19j bGFzcyc6OnJlZ2NsYXNzKQorICAgICAgICBXSEVSRSBjbC5vaWQgPSB7eyB2 aWQgfX06Ok9JRCBBTkQgcmVsa2luZCA9ICd2JworICAgICAgICApIGFjbCwK KyAgICAgICAgKFNFTEVDVCAoZCkuZ3JhbnRlZSBBUyBncmFudGVlLCAoZCku Z3JhbnRvciBBUyBncmFudG9yLCAoZCkuaXNfZ3JhbnRhYmxlIEFTIGlzX2dy YW50YWJsZSwKKyAgICAgICAgICAgIChkKS5wcml2aWxlZ2VfdHlwZSBBUyBw cml2aWxlZ2VfdHlwZQorICAgICAgICBGUk9NIChTRUxFQ1QgYWNsZXhwbG9k ZShyZWxhY2wpIGFzIGQgRlJPTSBwZ19jbGFzcyBjbDEgV0hFUkUgY2wxLm9p ZCA9IHt7IHZpZCB9fTo6T0lEKSBhKSBkCisgICAgICAgICkgZAorICAgIExF RlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9 IGcub2lkKQorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGd0 IE9OIChkLmdyYW50ZWUgPSBndC5vaWQpCitHUk9VUCBCWQorICAgIGcucm9s bmFtZSwgZ3Qucm9sbmFtZQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4yX3Bs dXMvYmFja2VuZF9zdXBwb3J0LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdz L3RlbXBsYXRlcy92aWV3cy9zcWwvOS4yX3BsdXMvYmFja2VuZF9zdXBwb3J0 LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDE5 YjY4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL3ZpZXdzL3NxbC85LjJfcGx1cy9iYWNrZW5kX3N1cHBvcnQu c3FsCkBAIC0wLDAgKzEsMTggQEAKK1NFTEVDVAorIENBU0UgV0hFTiBuc3Au bnNwbmFtZSBJTiAoJ3N5cycsICdkYm8nLCAnaW5mb3JtYXRpb25fc2NoZW1h JykgVEhFTiB0cnVlIEVMU0UgZmFsc2UgRU5EIEFTIGRiU3VwcG9ydAorRlJP TSBwZ19uYW1lc3BhY2UgbnNwCitXSEVSRSBuc3Aub2lkPXt7c2NpZH19Ojpp bnQKK0FORCAoCisJKG5zcG5hbWUgPSAncGdfY2F0YWxvZycgQU5EIEVYSVNU UworCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU0VMRUNUIDEg RlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3BnX2NsYXNzJyBBTkQg cmVsbmFtZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAxKSkKKwlPUiAobnNwbmFt ZSA9ICdwZ2FnZW50JyBBTkQgRVhJU1QKKwkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVs bmFtZSA9ICdwZ2Ffam9iJyBBTkQgcmVsbmFtZXNwYWNlID0gbnNwLm9pZCBM SU1JVCAxKSkKKwlPUiAobnNwbmFtZSA9ICdpbmZvcm1hdGlvbl9zY2hlbWEn IEFORCBFWElTVFMKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICd0YWJs ZXMnIEFORCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEpKQorCU9S IChuc3BuYW1lIExJS0UgJ18lJyBBTkQgRVhJU1RTCisJICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX3Byb2MgV0hF UkUgcHJvbmFtZT0nc2xvbnl2ZXJzaW9uJyBBTkQgcHJvbmFtZXNwYWNlID0g bnNwLm9pZCBMSU1JVCAxKSkKKykKK0FORAorIG5zcG5hbWUgTk9UIExJS0Ug RSdwZ1xcdGVtcFxcJScKK0FORAorIG5zcG5hbWUgTk9UIExJS0UgRSdwZ1xc dG9hc3RfdGVtcFxcJScKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4yX3BsdXMvY3JlYXRlLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4y X3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5hMzQ1ZTE1Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjJfcGx1cy9jcmVh dGUuc3FsCkBAIC0wLDAgKzEsMjUgQEAKK3sjPT09PT09PT09PT09PT09PT09 PT09PT09PT09PUNyZWF0ZSBuZXcgdmlldz09PT09PT09PT09PT09PT09PT09 PT09PT0jfQoreyUgaWYgZGlzcGxheV9jb21tZW50cyAlfQorLS0gVmlldzog e3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19CisK Ky0tIERST1AgVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRh dGEubmFtZSkgfX07CisKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLm5hbWUg YW5kIGRhdGEuc2NoZW1hIGFuZCBkYXRhLmRlZmluaXRpb24gJX0KK0NSRUFU RSBPUiBSRVBMQUNFIFZJRVcge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1h LCBkYXRhLm5hbWUpIH19Cit7JSBpZiAoKGRhdGEuY2hlY2tfb3B0aW9uIGFu ZCBkYXRhLmNoZWNrX29wdGlvbi5sb3dlcigpICE9ICdubycpIG9yIGRhdGEu c2VjdXJpdHlfYmFycmllcikgJX0KK1dJVEggKHslIGlmIGRhdGEuY2hlY2tf b3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbi5sb3dlcigpICE9ICdubycg JX0KK2NoZWNrX29wdGlvbj17eyBkYXRhLmNoZWNrX29wdGlvbiB9fXslIGVu ZGlmICV9e3sgJywgJyBpZiBkYXRhLmNoZWNrX29wdGlvbiBhbmQKK2RhdGEu Y2hlY2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25vJyBhbmQgZGF0YS5zZWN1cml0 eV9iYXJyaWVyIGVsc2UgJycgfX17JSBpZiBkYXRhLnNlY3VyaXR5X2JhcnJp ZXIgJX0KK3NlY3VyaXR5X2JhcnJpZXI9e3sgZGF0YS5zZWN1cml0eV9iYXJy aWVyIH19eyUgZW5kaWYgJX0peyUgZW5kaWYgJX0gQVMKK3t7IGRhdGEuZGVm aW5pdGlvbi5yc3RyaXAoJzsnKSB9fTsKK3slIGlmIGRhdGEub3duZXIgJX0K KworQUxURVIgVEFCTEUge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBk YXRhLm5hbWUpIH19CisgIE9XTkVSIFRPIHt7IGRhdGEub3duZXIgfX07Cit7 JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5jb21tZW50ICV9CitDT01NRU5UIE9O IFZJRVcge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUp IH19CisgICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsKK3sl IGVuZGlmICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjJfcGx1cy9kZWxl dGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdz L3NxbC85LjJfcGx1cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjRlMjkwYTIKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuMl9w bHVzL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwxMiBAQAoreyM9PT09PT09PT09 PT09PT09PT09PT09PT09PT09RHJvcC9DYXNjYWRlIHZpZXcgYnkgbmFtZT09 PT09PT09PT09PT09PT09PT09PT09PT0jfQoreyUgaWYgdmlkICV9CitTRUxF Q1QKKyAgICBjLnJlbG5hbWUgQXMgbmFtZSwgbnNwLm5zcG5hbWUKK0ZST00K KyAgICBwZ19jbGFzcyBjCisgICAgTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBu c3Agb24gYy5yZWxuYW1lc3BhY2UgPSBuc3Aub2lkCitXSEVSRQorICAgIGMu cmVsZmlsZW5vZGUgPSB7eyB2aWQgfX07Cit7JSBlbGlmIChuYW1lIGFuZCBu c3BuYW1lKSAlfQorRFJPUCBWSUVXIHt7bnNwbmFtZX19Lnt7IGNvbm58cXRJ ZGVudChuYW1lKSB9fSB7JSBpZiBjYXNjYWRlICV9IENBU0NBREUgeyUgZW5k aWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuMl9wbHVzL2dyYW50LnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwv OS4yX3BsdXMvZ3JhbnQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjlmYTcxODEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuMl9wbHVzL2dy YW50LnNxbApAQCAtMCwwICsxLDE0IEBACit7Iz09PT09R3JhbnQgUGVybWlz c2lvbnMgdG8gVXNlciBSb2xlIG9uIFZpZXdzL1RhYmxlcz09PT0jfQoreyUg aW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAl fQoreyUgaW1wb3J0ICdtYWNyb3MvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJ VklMRUdFICV9Cit7IyBXZSB3aWxsIGdlbmVyYXRlIFNlY3VyaXR5IExhYmVs IFNRTCB1c2luZyBtYWNybyAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0K K3slIGZvciByIGluIGRhdGEuc2VjbGFiZWxzICV9Cit7eyBTRUNMQUJMRS5B UFBMWShjb25uLCAnVklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5z ZWN1cml0eV9sYWJlbCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0K K3slIGlmIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRh dGFjbCAlfQore3sgUFJJVklMRUdFLkFQUExZKGNvbm4sICdUQUJMRScsIHBy aXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNjaGVtYSwgcHJpdi53aXRo b3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQpIH19Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuMl9wbHVzL3Byb3BlcnRpZXMuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85 LjJfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4zZGE3ODAxCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjJfcGx1 cy9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDM5IEBACit7JSBpZiAodmlk IGFuZCBkYXRsYXN0c3lzb2lkKSBvciBzY2lkICV9CitTRUxFQ1QgYy5vaWQs IGMueG1pbiwgYy5yZWxuYW1lIEFTIG5hbWUsIGMucmVsdGFibGVzcGFjZSBB UyBzcGNvaWQsIHNwYy5zcGNuYW1lLAorICAgIHBnX2dldF91c2VyYnlpZChj LnJlbG93bmVyKSBBUyBvd25lciwgYy5yZWxhY2wsIGRlc2NyaXB0aW9uIEFz IGNvbW1lbnQsCisgICAgcGdfZ2V0X3ZpZXdkZWYoYy5vaWQsIHRydWUpIEFT IGRlZmluaXRpb24sIG5zcC5uc3BuYW1lIEFTIHNjaGVtYSwKKyAgICB7Iz09 PT09PT09PT09PT1DaGVja3MgaWYgaXQgaXMgc3lzdGVtIHZpZXc9PT09PT09 PT09PT09PT09I30KKyAgICB7JSBpZiB2aWQgYW5kIGRhdGxhc3RzeXNvaWQg JX0KKyAgICBDQVNFIFdIRU4ge3t2aWR9fSA8PSB7e2RhdGxhc3RzeXNvaWR9 fSBUSEVOIFRydWUgRUxTRSBGYWxzZSBFTkQgQVMgc3lzdGVtX3ZpZXcsCisg ICAgeyUgZW5kaWYgJX0KKyAgICB7Iz09PT09PT09PT09PT1DaGVja3MgaWYg aXQgaXMgbWF0ZXJpYWxpemVkIHZpZXc9PT09PT09PSN9CisgICAgQ0FTRSBX SEVOIGMucmVsa2luZCA9ICdtJyBUSEVOIFRydWUgRUxTRSBGYWxzZSBFTkQg QXMgbV92aWV3LAorICAgIChTRUxFQ1QgYXJyYXlfYWdnKGxhYmVsKSBGUk9N IHBnX3NlY2xhYmVscyBzbDEgV0hFUkUgc2wxLm9iam9pZD1jLm9pZCBBTkQg c2wxLm9ianN1YmlkPTApIEFTIGxhYmVscywKKyAgICAoU0VMRUNUIGFycmF5 X2FnZyhwcm92aWRlcikgRlJPTSBwZ19zZWNsYWJlbHMgc2wyIFdIRVJFIHNs Mi5vYmpvaWQ9Yy5vaWQgQU5EIHNsMi5vYmpzdWJpZD0wKSBBUyBwcm92aWRl cnMKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRp b25zLCAnLCcpIEZST00gJ3NlY3VyaXR5X2JhcnJpZXI9KFthLXp8MC05XSop JykgQVMgc2VjdXJpdHlfYmFycmllcgorRlJPTSBwZ19jbGFzcyBjCisgICAg TEVGVCBPVVRFUiBKT0lOIHBnX25hbWVzcGFjZSBuc3Agb24gbnNwLm9pZCA9 IGMucmVsbmFtZXNwYWNlCisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3RhYmxl c3BhY2Ugc3BjIG9uIHNwYy5vaWQ9Yy5yZWx0YWJsZXNwYWNlCisgICAgTEVG VCBPVVRFUiBKT0lOIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9p ZD1jLm9pZCBhbmQgZGVzLm9ianN1YmlkPTAgQU5EIGRlcy5jbGFzc29pZD0n cGdfY2xhc3MnOjpyZWdjbGFzcykKKyAgICAgICAgV0hFUkUgKChjLnJlbGhh c3J1bGVzIEFORCAoRVhJU1RTICgKKyAgICAgICAgICAgIFNFTEVDVCByLnJ1 bGVuYW1lIEZST00gcGdfcmV3cml0ZSByCisgICAgICAgICAgICAgICAgV0hF UkUgKChyLmV2X2NsYXNzID0gYy5vaWQpCisgICAgICAgICAgICAgICAgICAg IEFORCAoYnBjaGFyKHIuZXZfdHlwZSkgPSAnMSc6OmJwY2hhcikpICkpKSBP UiAoYy5yZWxraW5kID0gJ3YnOjpjaGFyKSkKK3slIGlmICh2aWQgYW5kIGRh dGxhc3RzeXNvaWQpICV9CisgICAgICAgIEFORCBjLm9pZCA9IHt7dmlkfX06 Om9pZAoreyUgZWxpZiBzY2lkICV9CisgICAgICAgIEFORCBjLnJlbG5hbWVz cGFjZSA9IHt7c2NpZH19OjpvaWQgT1JERVIgQlkgYy5yZWxuYW1lCit7JSBl bmRpZiAlfQorCit7JSBlbGlmIHR5cGUgPT0gJ3JvbGVzJyAlfQorU0VMRUNU IHByLnJvbG5hbWUgRlJPTSBwZ19yb2xlcyBwciBXSEVSRSBwci5yb2xjYW5s b2dpbiBPUkRFUiBCWSBwci5yb2xuYW1lCisKK3slIGVsaWYgdHlwZSA9PSAn c2NoZW1hcycgJX0KK1NFTEVDVAorICAgIG5zcC5uc3BuYW1lCitGUk9NCisg ICAgcGdfbmFtZXNwYWNlIG5zcAorV0hFUkUKKyAgICAobnNwLm5zcG5hbWUg Tk9UIExJS0UgRSdwZ1xcXyUnCisgICAgICAgIEFORCBuc3AubnNwbmFtZSAh PSAnaW5mb3JtYXRpb25fc2NoZW1hJykKK3slIGVuZGlmICV9CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3Fs LzkuMl9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90 ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuMl9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI1ODYzMgotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3cy9zcWwvOS4yX3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDgxIEBA Cit7Iz09PT09PT09PT09PT09PT09PT09PT09PT09PT1VcGRhdGUgdmlldz09 PT09PT09PT09PT09PT09PT09PT09PT0jfQoreyUgaW1wb3J0ICdtYWNyb3Mv c2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdt YWNyb3MvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBp ZiBkYXRhICV9Cit7JSBzZXQgdmlld19uYW1lID0gZGF0YS5uYW1lIGlmIGRh dGEubmFtZSBlbHNlIG9fZGF0YS5uYW1lICV9Cit7JSBzZXQgdmlld19zY2hl bWEgPSBkYXRhLnNjaGVtYSBpZiBkYXRhLnNjaGVtYSBlbHNlIG9fZGF0YS5z Y2hlbWEgJX0KK3slIHNldCBkZWYgPSBkYXRhLmRlZmluaXRpb24ucnN0cmlw KCc7JykgaWYgZGF0YS5kZWZpbml0aW9uICV9Cit7JSBpZiBkYXRhLm5hbWUg YW5kIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfQorQUxURVIgVklFVyB7 eyBjb25ufHF0SWRlbnQob19kYXRhLnNjaGVtYSwgb19kYXRhLm5hbWUpIH19 CisgICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19 OworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuc2NoZW1hIGFuZCBkYXRhLnNj aGVtYSAhPSBvX2RhdGEuc2NoZW1hICV9CitBTFRFUiBWSUVXIHt7IGNvbm58 cXRJZGVudChvX2RhdGEuc2NoZW1hLCB2aWV3X25hbWUgKSB9fQorICAgIFNF VCBTQ0hFTUEge3sgZGF0YS5zY2hlbWEgfX07Cit7JSBlbmRpZiAlfQoreyUg aWYgZGF0YS5vd25lciBhbmQgZGF0YS5vd25lciAhPSBvX2RhdGEub3duZXIg JX0KK0FMVEVSIFRBQkxFIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwg dmlld19uYW1lKSB9fQorICAgIE9XTkVSIFRPIHt7IGRhdGEub3duZXIgfX07 Cit7JSBlbmRpZiAlfQoreyUgaWYgZGVmIGFuZCBkZWYgIT0gb19kYXRhLmRl ZmluaXRpb24ucnN0cmlwKCc7JykgJX0KK0NSRUFURSBPUiBSRVBMQUNFIFZJ RVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19 Cit7JSBpZiAoZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0 aW9uICE9IG9fZGF0YS5jaGVja19vcHRpb24pCisgICAgb3IgKGRhdGEuc2Vj dXJpdHlfYmFycmllciBhbmQgZGF0YS5zZWN1cml0eV9iYXJyaWVyICE9IG9f ZGF0YS5zZWN1cml0eV9iYXJyaWVyKSAlfQorICAgIFdJVEggKHslIGlmIChk YXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gJ25v JykgJX1jaGVja19vcHRpb249e3sgZGF0YS5jaGVja19vcHRpb24gfX17JSBl bmRpZiAlfXt7JywgJyBpZiBkYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5j aGVja19vcHRpb24gIT0gJ25vJyBhbmQgZGF0YS5zZWN1cml0eV9iYXJyaWVy IH19eyUgaWYgZGF0YS5zZWN1cml0eV9iYXJyaWVyICV9c2VjdXJpdHlfYmFy cmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgfX17JSBlbmRpZiAlfSkK K3slIGVuZGlmICV9CisgICAgQVN7eyBkZWYgfX07Cit7JSBlbHNlICV9Cit7 JSBpZiAoZGF0YS5zZWN1cml0eV9iYXJyaWVyIGFuZCBkYXRhLnNlY3VyaXR5 X2JhcnJpZXIgIT0gIG9fZGF0YS5zZWN1cml0eV9iYXJyaWVyKSAlfQorQUxU RVIgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFt ZSkgfX0KKyAgICBTRVQgKHNlY3VyaXR5X2JhcnJpZXI9e3sgZGF0YS5zZWN1 cml0eV9iYXJyaWVyIH19KTsKK3slIGVuZGlmICV9Cit7JSBpZiAoZGF0YS5j aGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9IG9fZGF0YS5j aGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9ICdubycpICV9 CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmll d19uYW1lKSB9fQorICAgIFNFVCAoY2hlY2tfb3B0aW9uPXt7IGRhdGEuY2hl Y2tfb3B0aW9uIH19KTsKK3slIGVsaWYgKGRhdGEuY2hlY2tfb3B0aW9uIGFu ZCBkYXRhLmNoZWNrX29wdGlvbiAhPSBvX2RhdGEuY2hlY2tfb3B0aW9uIGFu ZCBkYXRhLmNoZWNrX29wdGlvbiA9PSAnbm8nKSAlfQorQUxURVIgVklFVyB7 eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0gUkVT RVQgKGNoZWNrX29wdGlvbik7Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0K K3slIGlmIGRhdGEuY29tbWVudCBhbmQgZGF0YS5jb21tZW50ICE9IG9fZGF0 YS5jb21tZW50ICV9CitDT01NRU5UIE9OIFZJRVcge3sgY29ubnxxdElkZW50 KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAgSVMge3sgZGF0YS5j b21tZW50fHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmICV9Cit7IyBUaGUgU1FM IGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxlZ2VzICN9Cit7 JSBpZiBkYXRhLmRhdGFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEu ZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5kZWxldGVk ICV9Cit7eyBQUklWSUxFR0UuUkVTRVRBTEwoY29ubiwgJ1RBQkxFJywgcHJp di5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEu ZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5jaGFuZ2Vk ICV9Cit7eyBQUklWSUxFR0UuUkVTRVRBTEwoY29ubiwgJ1RBQkxFJywgcHJp di5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hKSB9fQore3sgUFJJ VklMRUdFLkFQUExZKGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0 YS5uYW1lLCBkYXRhLnNjaGVtYSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2 LndpdGhfZ3JhbnQpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7 JSBpZiAnYWRkZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBp biBkYXRhLmRhdGFjbC5hZGRlZCAlfQore3sgUFJJVklMRUdFLkFQUExZKGNv bm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNj aGVtYSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQpIH19 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyMg VGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBjaGFuZ2UgU2VjdXJpdHkg TGFiZWwgI30KK3slIGlmIGRhdGEuc2VjbGFiZWxzIGlzIG5vdCBub25lIGFu ZCBkYXRhLnNlY2xhYmVsc3xsZW5ndGggPiAwICV9Cit7JSBzZXQgc2VjbGFi ZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBz ZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVkfGxlbmd0aCA+IDAgJX0K K3slIGZvciByIGluIHNlY2xhYmVscy5kZWxldGVkICV9Cit7eyBTRUNMQUJM RS5EUk9QKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyKSB9 fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBp biBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxsZW5ndGggPiAwICV9 Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0KK3t7IFNFQ0xBQkxF LkFQUExZKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCBy LnNlY3VyaXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAl fQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxz LmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxz LmNoYW5nZWQgJX0KK3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdWSUVXJywg ZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9fQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KK3slIGVu ZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvdmlld3Mvc3FsLzkuMl9wbHVzL3ZpZXdfaWQuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjJfcGx1cy92 aWV3X2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li42ZGZmMDRlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjJfcGx1cy92aWV3X2lkLnNx bApAQCAtMCwwICsxLDQgQEAKK3sjIEJlbG93IHdpbGwgcHJvdmlkZSB2aWV3 IGlkIGZvciBuZXdseSBjcmVhdGVkIHZpZXcgI30KK3slIGlmIGRhdGEgJX0K K1NFTEVDVCBjLm9pZCBGUk9NIHBnX2NsYXNzIGMgV0hFUkUgYy5yZWxuYW1l ID0gJ3t7IGRhdGEubmFtZSB9fSc7Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85 LjNfcGx1cy9hY2wuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL3ZpZXdzL3NxbC85LjNfcGx1cy9hY2wuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2MGJmYTgKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3Fs LzkuM19wbHVzL2FjbC5zcWwKQEAgLTAsMCArMSwzMCBAQAoreyM9PT09PT09 PT09PT09PT09PT09PT09PT09PT09R2V0IEFDTHM9PT09PT09PT09PT09PT09 PT09PT09PT09I30KK3slIGlmIHZpZCAlfQorU0VMRUNUCisgICAgJ2RhdGFj bCcgYXMgZGVmdHlwZSwgQ09BTEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycp IGdyYW50ZWUsCisgICAgZy5yb2xuYW1lIGdyYW50b3IsIGFycmF5X2FnZyhw cml2aWxlZ2VfdHlwZSkgYXMgcHJpdmlsZWdlcywKKyAgICBhcnJheV9hZ2co aXNfZ3JhbnRhYmxlKSBhcyBncmFudGFibGUKK0ZST00KKyAgICAoU0VMRUNU CisgICAgICAgIGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50YWJs ZSwKKyAgICAgICAgQ0FTRSBkLnByaXZpbGVnZV90eXBlCisgICAgICAgIFdI RU4gJ0RFTEVURScgVEhFTiAnZCcKKyAgICAgICAgV0hFTiAnSU5TRVJUJyBU SEVOICdhJworICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4Jwor ICAgICAgICBXSEVOICdTRUxFQ1QnIFRIRU4gJ3InCisgICAgICAgIFdIRU4g J1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1VQREFURScgVEhF TiAndycKKyAgICAgICAgRUxTRSAnVU5LTk9XTicKKyAgICAgICAgRU5EIEFT IHByaXZpbGVnZV90eXBlCisgICAgRlJPTQorICAgICAgICAoU0VMRUNUIHJl bGFjbCBGUk9NIHBnX2NsYXNzIGNsCisgICAgICAgICAgICBMRUZUIE9VVEVS IEpPSU4gcGdfc2hkZXNjcmlwdGlvbiBkZXNjciBPTiAoCisgICAgICAgICAg ICBjbC5vaWQ9ZGVzY3Iub2Jqb2lkIEFORCBkZXNjci5jbGFzc29pZD0ncGdf Y2xhc3MnOjpyZWdjbGFzcykKKyAgV0hFUkUgY2wub2lkID0ge3sgdmlkIH19 OjpPSUQgQU5EIHJlbGtpbmQgPSAndicKKyAgICAgICAgKSBhY2wsCisgICAg ICAgIGFjbGV4cGxvZGUocmVsYWNsKSBkCisgICAgICAgICkgZAorICAgIExF RlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9 IGcub2lkKQorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGd0 IE9OIChkLmdyYW50ZWUgPSBndC5vaWQpCitHUk9VUCBCWSBnLnJvbG5hbWUs IGd0LnJvbG5hbWUKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuM19wbHVzL2Jh Y2tlbmRfc3VwcG9ydC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvdmlld3Mvc3FsLzkuM19wbHVzL2JhY2tlbmRfc3VwcG9ydC5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWIzOWNhYwot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3cy9zcWwvOS4zX3BsdXMvYmFja2VuZF9zdXBwb3J0LnNxbApA QCAtMCwwICsxLDE4IEBACitTRUxFQ1QKKyBDQVNFIFdIRU4gbnNwLm5zcG5h bWUgSU4gKCdzeXMnLCAnZGJvJywgJ2luZm9ybWF0aW9uX3NjaGVtYScpIFRI RU4gdHJ1ZSBFTFNFIGZhbHNlIEVORCBBUyBkYlN1cHBvcnQKK0ZST00gcGdf bmFtZXNwYWNlIG5zcAorV0hFUkUgbnNwLm9pZD17e3NjaWR9fTo6aW50CitB TkQgKAorCShuc3BuYW1lID0gJ3BnX2NhdGFsb2cnIEFORCBFWElTVFMKKwkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFNFTEVDVCAxIEZST00g cGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICdwZ19jbGFzcycgQU5EIHJlbG5h bWVzcGFjZSA9IG5zcC5vaWQgTElNSVQgMSkpCisJT1IgKG5zcG5hbWUgPSAn cGdhZ2VudCcgQU5EIEVYSVNUUworCSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoU0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1l ID0gJ3BnYV9qb2InIEFORCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlU IDEpKQorCU9SIChuc3BuYW1lID0gJ2luZm9ybWF0aW9uX3NjaGVtYScgQU5E IEVYSVNUUworCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU0VM RUNUIDEgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3RhYmxlcycg QU5EIHJlbG5hbWVzcGFjZSA9IG5zcC5vaWQgTElNSVQgMSkpCisJT1IgKG5z cG5hbWUgTElLRSAnXyUnIEFORCBFWElTVFMKKwkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKFNFTEVDVCAxIEZST00gcGdfcHJvYyBXSEVSRSBw cm9uYW1lPSdzbG9ueXZlcnNpb24nIEFORCBwcm9uYW1lc3BhY2UgPSBuc3Au b2lkIExJTUlUIDEpKQorKQorQU5ECisgbnNwbmFtZSBOT1QgTElLRSBFJ3Bn XFx0ZW1wXFwlJworQU5ECisgbnNwbmFtZSBOT1QgTElLRSBFJ3BnXFx0b2Fz dF90ZW1wXFwlJwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL3ZpZXdzL3NxbC85LjNfcGx1cy9jcmVhdGUuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjNfcGx1 cy9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmEzNDVlMTUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuM19wbHVzL2NyZWF0ZS5z cWwKQEAgLTAsMCArMSwyNSBAQAoreyM9PT09PT09PT09PT09PT09PT09PT09 PT09PT09Q3JlYXRlIG5ldyB2aWV3PT09PT09PT09PT09PT09PT09PT09PT09 PSN9Cit7JSBpZiBkaXNwbGF5X2NvbW1lbnRzICV9CistLSBWaWV3OiB7eyBj b25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKworLS0g RFJPUCBWSUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5u YW1lKSB9fTsKKworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEubmFtZSBhbmQg ZGF0YS5zY2hlbWEgYW5kIGRhdGEuZGVmaW5pdGlvbiAlfQorQ1JFQVRFIE9S IFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRh dGEubmFtZSkgfX0KK3slIGlmICgoZGF0YS5jaGVja19vcHRpb24gYW5kIGRh dGEuY2hlY2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25vJykgb3IgZGF0YS5zZWN1 cml0eV9iYXJyaWVyKSAlfQorV0lUSCAoeyUgaWYgZGF0YS5jaGVja19vcHRp b24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25vJyAlfQor Y2hlY2tfb3B0aW9uPXt7IGRhdGEuY2hlY2tfb3B0aW9uIH19eyUgZW5kaWYg JX17eyAnLCAnIGlmIGRhdGEuY2hlY2tfb3B0aW9uIGFuZAorZGF0YS5jaGVj a19vcHRpb24ubG93ZXIoKSAhPSAnbm8nIGFuZCBkYXRhLnNlY3VyaXR5X2Jh cnJpZXIgZWxzZSAnJyB9fXslIGlmIGRhdGEuc2VjdXJpdHlfYmFycmllciAl fQorc2VjdXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXIg fX17JSBlbmRpZiAlfSl7JSBlbmRpZiAlfSBBUwore3sgZGF0YS5kZWZpbml0 aW9uLnJzdHJpcCgnOycpIH19OworeyUgaWYgZGF0YS5vd25lciAlfQorCitB TFRFUiBUQUJMRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEu bmFtZSkgfX0KKyAgT1dORVIgVE8ge3sgZGF0YS5vd25lciB9fTsKK3slIGVu ZGlmICV9Cit7JSBpZiBkYXRhLmNvbW1lbnQgJX0KK0NPTU1FTlQgT04gVklF VyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0K KyAgICBJUyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19OworeyUgZW5k aWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuM19wbHVzL2RlbGV0ZS5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3Fs LzkuM19wbHVzL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMDQ0ZmY3MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4zX3BsdXMv ZGVsZXRlLnNxbApAQCAtMCwwICsxLDEyIEBACit7Iz09PT09PT09PT09PT09 PT09PT09PT09PT09PT1Ecm9wL0Nhc2NhZGUgdmlldyBieSBuYW1lPT09PT09 PT09PT09PT09PT09PT09PT09PSN9Cit7JSBpZiB2aWQgJX0KK1NFTEVDVAor ICAgIGMucmVsbmFtZSBBUyBuYW1lLCBuc3AubnNwbmFtZQorRlJPTQorICAg IHBnX2NsYXNzIGMKKyAgICBMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBv biBjLnJlbG5hbWVzcGFjZSA9IG5zcC5vaWQKK1dIRVJFCisgICAgYy5yZWxm aWxlbm9kZSA9IHt7IHZpZCB9fTsKK3slIGVsaWYgKG5hbWUgYW5kIG5zcG5h bWUpICV9CitEUk9QIFZJRVcge3tuc3BuYW1lfX0ue3sgY29ubnxxdElkZW50 KG5hbWUpIH19IHslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERSB7JSBlbmRpZiAl fQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4zX3BsdXMvZ3JhbnQuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjNf cGx1cy9ncmFudC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uOWZhNzE4MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4zX3BsdXMvZ3JhbnQu c3FsCkBAIC0wLDAgKzEsMTQgQEAKK3sjPT09PT1HcmFudCBQZXJtaXNzaW9u cyB0byBVc2VyIFJvbGUgb24gVmlld3MvVGFibGVzPT09PSN9Cit7JSBpbXBv cnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7 JSBpbXBvcnQgJ21hY3Jvcy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxF R0UgJX0KK3sjIFdlIHdpbGwgZ2VuZXJhdGUgU2VjdXJpdHkgTGFiZWwgU1FM IHVzaW5nIG1hY3JvICN9Cit7JSBpZiBkYXRhLnNlY2xhYmVscyAlfQoreyUg Zm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KK3t7IFNFQ0xBQkxFLkFQUExZ KGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3Vy aXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUg aWYgZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNs ICV9Cit7eyBQUklWSUxFR0UuQVBQTFkoY29ubiwgJ1RBQkxFJywgcHJpdi5n cmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hLCBwcml2LndpdGhvdXRf Z3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3cy9zcWwvOS4zX3BsdXMvcHJvcGVydGllcy5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuM19w bHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmY0ZTM0OTgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuM19wbHVzL3By b3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsNjAgQEAKK3slIGlmICh2aWQgYW5k IGRhdGxhc3RzeXNvaWQpIG9yIHNjaWQgJX0KK1NFTEVDVCBjLm9pZCwgYy54 bWluLCBjLnJlbG5hbWUgQVMgbmFtZSwgYy5yZWx0YWJsZXNwYWNlIEFTIHNw Y29pZCwgYy5yZWxraW5kLCBuc3AubnNwbmFtZSBBUyBzY2hlbWEsCisgICAg Yy5yZWxpc3BvcHVsYXRlZCBBUyBpc3BvcHVsYXRlZCwgc3BjLnNwY25hbWUs IHBnX2dldF91c2VyYnlpZChjLnJlbG93bmVyKQorICAgIEFTIG93bmVyLCBj LnJlbGFjbCwgZGVzY3JpcHRpb24sIHBnX2dldF92aWV3ZGVmKGMub2lkLCB0 cnVlKSBBUyBkZWZpbml0aW9uLAorICAgIHsjPT09PT09PT09PT09PUNoZWNr cyBpZiBpdCBpcyBzeXN0ZW0gdmlldz09PT09PT09PT09PT09PT0jfQorICAg IHslIGlmIHZpZCBhbmQgZGF0bGFzdHN5c29pZCAlfQorICAgIENBU0UgV0hF TiB7e3ZpZH19IDw9IHt7ZGF0bGFzdHN5c29pZH19IFRIRU4gVHJ1ZSBFTFNF IEZhbHNlIEVORCBBUyBzeXN0ZW1fdmlldywKKyAgICB7JSBlbmRpZiAlfQor ICAgIHsjPT09PT09PT09PT09PUNoZWNrcyBpZiBpdCBpcyBtYXRlcmlhbGl6 ZWQgdmlldz09PT09PT09I30KKyAgICBDQVNFIFdIRU4gYy5yZWxraW5kID0g J20nIFRIRU4gVHJ1ZSBFTFNFIEZhbHNlIEVORCBBcyBtX3ZpZXcsCisgICAg KFNFTEVDVCBhcnJheV9hZ2cobGFiZWwpIEZST00gcGdfc2VjbGFiZWxzIHNs MSBXSEVSRSBzbDEub2Jqb2lkPWMub2lkIEFORCBzbDEub2Jqc3ViaWQ9MCkg QVMgbGFiZWxzLAorICAgIChTRUxFQ1QgYXJyYXlfYWdnKHByb3ZpZGVyKSBG Uk9NIHBnX3NlY2xhYmVscyBzbDIgV0hFUkUgc2wyLm9iam9pZD1jLm9pZCBB TkQgc2wyLm9ianN1YmlkPTApIEFTIHByb3ZpZGVycworICAgICwgc3Vic3Ry aW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykgRlJPTSAn c2VjdXJpdHlfYmFycmllcj0oW2EtenwwLTldKiknKSBBUyBzZWN1cml0eV9i YXJyaWVyCisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVs b3B0aW9ucywgJywnKSBGUk9NICdmaWxsZmFjdG9yPShbMC05XSopJykgQVMg ZmlsbGZhY3RvcgorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhj LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9lbmFibGVkPShb YS16fDAtOV0qKScpIEFTIGF1dG92YWN1dW1fZW5hYmxlZAorICAgICwgc3Vi c3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykgRlJP TSAnYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkPShbMC05XSopJykgQVMg YXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkCisgICAgLCBzdWJzdHJpbmco YXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRv dmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3I9KFswLTldKlsuXVswLTldKikn KSBBUyBhdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3IKKyAgICAsIHN1 YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpIEZS T00gJ2F1dG92YWN1dW1fYW5hbHl6ZV90aHJlc2hvbGQ9KFswLTldKiknKSBB UyBhdXRvdmFjdXVtX2FuYWx5emVfdGhyZXNob2xkCisgICAgLCBzdWJzdHJp bmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKSBGUk9NICdh dXRvdmFjdXVtX2FuYWx5emVfc2NhbGVfZmFjdG9yPShbMC05XSpbLl1bMC05 XSopJykgQVMgYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2ZhY3RvcgorICAg ICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcs JykgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheT0oWzAtOV0q KScpIEFTIGF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXkKKyAgICAsIHN1 YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpIEZS T00gJ2F1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQ9KFswLTldKiknKSBB UyBhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0CisgICAgLCBzdWJzdHJp bmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKSBGUk9NICdh dXRvdmFjdXVtX2ZyZWV6ZV9taW5fYWdlPShbMC05XSopJykgQVMgYXV0b3Zh Y3V1bV9mcmVlemVfbWluX2FnZQorICAgICwgc3Vic3RyaW5nKGFycmF5X3Rv X3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9m cmVlemVfbWF4X2FnZT0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fZnJlZXpl X21heF9hZ2UKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5y ZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fZnJlZXplX3RhYmxl X2FnZT0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fZnJlZXplX3RhYmxlX2Fn ZQorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0 aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2VuYWJsZWQ9KFthLXp8MC05 XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9lbmFibGVkCisgICAgLCBzdWJz dHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpIEZS T00gJ2F1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZD0oWzAtOV0qKScpIEFT IHRvYXN0X2F1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZAorICAgICwgc3Vi c3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKSBG Uk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3I9KFswLTldKlsu XVswLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9m YWN0b3IKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJl bG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9hbmFseXplX3RocmVz aG9sZD0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fYW5hbHl6ZV90 aHJlc2hvbGQKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0 LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9hbmFseXplX3Nj YWxlX2ZhY3Rvcj0oWzAtOV0qWy5dWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92 YWN1dW1fYW5hbHl6ZV9zY2FsZV9mYWN0b3IKKyAgICAsIHN1YnN0cmluZyhh cnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0 b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheT0oWzAtOV0qKScpIEFTIHRvYXN0 X2F1dG92YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXkKKyAgICAsIHN1YnN0cmlu ZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAn YXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1pdD0oWzAtOV0qKScpIEFTIHRv YXN0X2F1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQKKyAgICAsIHN1YnN0 cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJP TSAnYXV0b3ZhY3V1bV9mcmVlemVfbWluX2FnZT0oWzAtOV0qKScpIEFTIHRv YXN0X2F1dG92YWN1dW1fZnJlZXplX21pbl9hZ2UKKyAgICAsIHN1YnN0cmlu ZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAn YXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZT0oWzAtOV0qKScpIEFTIHRvYXN0 X2F1dG92YWN1dW1fZnJlZXplX21heF9hZ2UKKyAgICAsIHN1YnN0cmluZyhh cnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0 b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlPShbMC05XSopJykgQVMgdG9hc3Rf YXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlCisgICAgLCBjLnJlbG9wdGlv bnMgQVMgcmVsb3B0aW9ucywgdHN0LnJlbG9wdGlvbnMgQVMgdG9hc3RfcmVs b3B0aW9ucworICAgICwgKENBU0UgV0hFTiBjLnJlbHRvYXN0cmVsaWQgPSAw IFRIRU4gZmFsc2UgRUxTRSB0cnVlIEVORCkgQVMgaGFzdG9hc3R0YWJsZQor RlJPTSBwZ19jbGFzcyBjCisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX25hbWVz cGFjZSBuc3Agb24gbnNwLm9pZCA9IGMucmVsbmFtZXNwYWNlCisgICAgTEVG VCBPVVRFUiBKT0lOIHBnX3RhYmxlc3BhY2Ugc3BjIG9uIHNwYy5vaWQ9Yy5y ZWx0YWJsZXNwYWNlCisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX2Rlc2NyaXB0 aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1jLm9pZCBhbmQgZGVzLm9ianN1Ymlk PTAgQU5EIGRlcy5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykKKyAg ICBMRUZUIE9VVEVSIEpPSU4gcGdfY2xhc3MgdHN0IE9OIHRzdC5vaWQgPSBj LnJlbHRvYXN0cmVsaWQKKyAgICAgICAgV0hFUkUgKChjLnJlbGhhc3J1bGVz IEFORCAoRVhJU1RTICgKKyAgICAgICAgICAgIFNFTEVDVCByLnJ1bGVuYW1l IEZST00gcGdfcmV3cml0ZSByCisgICAgICAgICAgICAgICAgV0hFUkUgKChy LmV2X2NsYXNzID0gYy5vaWQpCisgICAgICAgICAgICAgICAgICAgIEFORCAo YnBjaGFyKHIuZXZfdHlwZSkgPSAnMSc6OmJwY2hhcikpICkpKSBPUiAoYy5y ZWxraW5kID0gJ3YnOjpjaGFyKSkKK3slIGlmICh2aWQgYW5kIGRhdGxhc3Rz eXNvaWQpICV9CisgICAgICAgIEFORCBjLm9pZCA9IHt7dmlkfX06Om9pZAor eyUgZWxpZiBzY2lkICV9CisgICAgICAgIEFORCBjLnJlbG5hbWVzcGFjZSA9 IHt7c2NpZH19OjpvaWQgT1JERVIgQlkgYy5yZWxuYW1lCit7JSBlbmRpZiAl fQorCit7JSBlbGlmIHR5cGUgPT0gJ3JvbGVzJyAlfQorU0VMRUNUIHByLnJv bG5hbWUgRlJPTSBwZ19yb2xlcyBwciBXSEVSRSBwci5yb2xjYW5sb2dpbiBP UkRFUiBCWSBwci5yb2xuYW1lCisKK3slIGVsaWYgdHlwZSA9PSAnc2NoZW1h cycgJX0KK1NFTEVDVCBuc3AubnNwbmFtZQorICAgIEZST00gcGdfbmFtZXNw YWNlIG5zcAorV0hFUkUgKG5zcC5uc3BuYW1lIE5PVCBMSUtFIEUncGdcXF8l JworICAgIEFORCBuc3AubnNwbmFtZSAhPSAnaW5mb3JtYXRpb25fc2NoZW1h JykKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuM19wbHVzL3VwZGF0ZS5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzku M19wbHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZDI1ODYzMgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS4zX3BsdXMvdXBk YXRlLnNxbApAQCAtMCwwICsxLDgxIEBACit7Iz09PT09PT09PT09PT09PT09 PT09PT09PT09PT1VcGRhdGUgdmlldz09PT09PT09PT09PT09PT09PT09PT09 PT0jfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBT RUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvcHJpdmlsZWdlLm1hY3Jv cycgYXMgUFJJVklMRUdFICV9Cit7JSBpZiBkYXRhICV9Cit7JSBzZXQgdmll d19uYW1lID0gZGF0YS5uYW1lIGlmIGRhdGEubmFtZSBlbHNlIG9fZGF0YS5u YW1lICV9Cit7JSBzZXQgdmlld19zY2hlbWEgPSBkYXRhLnNjaGVtYSBpZiBk YXRhLnNjaGVtYSBlbHNlIG9fZGF0YS5zY2hlbWEgJX0KK3slIHNldCBkZWYg PSBkYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7JykgaWYgZGF0YS5kZWZpbml0 aW9uICV9Cit7JSBpZiBkYXRhLm5hbWUgYW5kIGRhdGEubmFtZSAhPSBvX2Rh dGEubmFtZSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQob19kYXRh LnNjaGVtYSwgb19kYXRhLm5hbWUpIH19CisgICAgUkVOQU1FIFRPIHt7IGNv bm58cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUgZW5kaWYgJX0KK3slIGlm IGRhdGEuc2NoZW1hIGFuZCBkYXRhLnNjaGVtYSAhPSBvX2RhdGEuc2NoZW1h ICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudChvX2RhdGEuc2NoZW1h LCB2aWV3X25hbWUgKSB9fQorICAgIFNFVCBTQ0hFTUEge3sgZGF0YS5zY2hl bWEgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5vd25lciBhbmQgZGF0 YS5vd25lciAhPSBvX2RhdGEub3duZXIgJX0KK0FMVEVSIFRBQkxFIHt7IGNv bm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIE9X TkVSIFRPIHt7IGRhdGEub3duZXIgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYg ZGVmIGFuZCBkZWYgIT0gb19kYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7Jykg JX0KK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcge3sgY29ubnxxdElkZW50KHZp ZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19Cit7JSBpZiAoZGF0YS5jaGVja19v cHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9IG9fZGF0YS5jaGVja19v cHRpb24pCisgICAgb3IgKGRhdGEuc2VjdXJpdHlfYmFycmllciBhbmQgZGF0 YS5zZWN1cml0eV9iYXJyaWVyICE9IG9fZGF0YS5zZWN1cml0eV9iYXJyaWVy KSAlfQorICAgIFdJVEggKHslIGlmIChkYXRhLmNoZWNrX29wdGlvbiBhbmQg ZGF0YS5jaGVja19vcHRpb24gIT0gJ25vJykgJX1jaGVja19vcHRpb249e3sg ZGF0YS5jaGVja19vcHRpb24gfX17JSBlbmRpZiAlfXt7JywgJyBpZiBkYXRh LmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gJ25vJyBh bmQgZGF0YS5zZWN1cml0eV9iYXJyaWVyIH19eyUgaWYgZGF0YS5zZWN1cml0 eV9iYXJyaWVyICV9c2VjdXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5 X2JhcnJpZXIgfX17JSBlbmRpZiAlfSkKK3slIGVuZGlmICV9CisgICAgQVN7 eyBkZWYgfX07Cit7JSBlbHNlICV9Cit7JSBpZiAoZGF0YS5zZWN1cml0eV9i YXJyaWVyIGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgIT0gIG9fZGF0YS5z ZWN1cml0eV9iYXJyaWVyKSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRl bnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBTRVQgKHNlY3Vy aXR5X2JhcnJpZXI9e3sgZGF0YS5zZWN1cml0eV9iYXJyaWVyIH19KTsKK3sl IGVuZGlmICV9Cit7JSBpZiAoZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEu Y2hlY2tfb3B0aW9uICE9IG9fZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEu Y2hlY2tfb3B0aW9uICE9ICdubycpICV9CitBTFRFUiBWSUVXIHt7IGNvbm58 cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIFNFVCAo Y2hlY2tfb3B0aW9uPXt7IGRhdGEuY2hlY2tfb3B0aW9uIH19KTsKK3slIGVs aWYgKGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAh PSBvX2RhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiA9 PSAnbm8nKSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19z Y2hlbWEsIHZpZXdfbmFtZSkgfX0gUkVTRVQgKGNoZWNrX29wdGlvbik7Cit7 JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuY29tbWVudCBh bmQgZGF0YS5jb21tZW50ICE9IG9fZGF0YS5jb21tZW50ICV9CitDT01NRU5U IE9OIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25h bWUpIH19CisgICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsK K3slIGVuZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxs IGNoYW5nZSBwcml2aWxlZ2VzICN9Cit7JSBpZiBkYXRhLmRhdGFjbCAlfQor eyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJp diBpbiBkYXRhLmRhdGFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxFR0UuUkVT RVRBTEwoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUs IGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQor eyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJp diBpbiBkYXRhLmRhdGFjbC5jaGFuZ2VkICV9Cit7eyBQUklWSUxFR0UuUkVT RVRBTEwoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUs IGRhdGEuc2NoZW1hKSB9fQore3sgUFJJVklMRUdFLkFQUExZKGNvbm4sICdU QUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNjaGVtYSwg cHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQpIH19Cit7JSBl bmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEu ZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5hZGRlZCAl fQore3sgUFJJVklMRUdFLkFQUExZKGNvbm4sICdUQUJMRScsIHByaXYuZ3Jh bnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNjaGVtYSwgcHJpdi53aXRob3V0X2dy YW50LCBwcml2LndpdGhfZ3JhbnQpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmICV9Cit7JSBlbmRpZiAlfQoreyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVs b3cgd2lsbCBjaGFuZ2UgU2VjdXJpdHkgTGFiZWwgI30KK3slIGlmIGRhdGEu c2VjbGFiZWxzIGlzIG5vdCBub25lIGFuZCBkYXRhLnNlY2xhYmVsc3xsZW5n dGggPiAwICV9Cit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMg JX0KK3slIGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVs cy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVs cy5kZWxldGVkICV9Cit7eyBTRUNMQUJMRS5EUk9QKGNvbm4sICdWSUVXJywg ZGF0YS5uYW1lLCByLnByb3ZpZGVyKSB9fQoreyUgZW5kZm9yICV9Cit7JSBl bmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xh YmVscy5hZGRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJl bHMuYWRkZWQgJX0KK3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdWSUVXJywg ZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9fQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGlu IHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAl fQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KK3t7IFNFQ0xB QkxFLkFQUExZKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVy LCByLnNlY3VyaXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuM19w bHVzL3ZpZXdfaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL3ZpZXdzL3NxbC85LjNfcGx1cy92aWV3X2lkLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGZmMDRlCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdz L3NxbC85LjNfcGx1cy92aWV3X2lkLnNxbApAQCAtMCwwICsxLDQgQEAKK3sj IEJlbG93IHdpbGwgcHJvdmlkZSB2aWV3IGlkIGZvciBuZXdseSBjcmVhdGVk IHZpZXcgI30KK3slIGlmIGRhdGEgJX0KK1NFTEVDVCBjLm9pZCBGUk9NIHBn X2NsYXNzIGMgV0hFUkUgYy5yZWxuYW1lID0gJ3t7IGRhdGEubmFtZSB9fSc7 Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjRfcGx1cy9hY2wuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85LjRfcGx1 cy9hY2wuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmYwYzRjMDEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuNF9wbHVzL2FjbC5zcWwKQEAg LTAsMCArMSwzNSBAQAoreyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09 R2V0IEFDTHM9PT09PT09PT09PT09PT09PT09PT09PT09I30KK3slIGlmIHZp ZCAlfQorU0VMRUNUCisgICAgJ2RhdGFjbCcgYXMgZGVmdHlwZSwgQ09BTEVT Q0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycpIGdyYW50ZWUsCisgICAgZy5yb2xu YW1lIGdyYW50b3IsIGFycmF5X2FnZyhwcml2aWxlZ2VfdHlwZSkgYXMgcHJp dmlsZWdlcywKKyAgICBhcnJheV9hZ2coaXNfZ3JhbnRhYmxlKSBhcyBncmFu dGFibGUKK0ZST00KKyAgICAoU0VMRUNUCisgICAgICAgIGQuZ3JhbnRlZSwg ZC5ncmFudG9yLCBkLmlzX2dyYW50YWJsZSwKKyAgICAgICAgQ0FTRSBkLnBy aXZpbGVnZV90eXBlCisgICAgICAgIFdIRU4gJ0RFTEVURScgVEhFTiAnZCcK KyAgICAgICAgV0hFTiAnSU5TRVJUJyBUSEVOICdhJworICAgICAgICBXSEVO ICdSRUZFUkVOQ0VTJyBUSEVOICd4JworICAgICAgICBXSEVOICdTRUxFQ1Qn IFRIRU4gJ3InCisgICAgICAgIFdIRU4gJ1RSSUdHRVInIFRIRU4gJ3QnCisg ICAgICAgIFdIRU4gJ1VQREFURScgVEhFTiAndycKKyAgICAgICAgRUxTRSAn VU5LTk9XTicKKyAgICAgICAgRU5EIEFTIHByaXZpbGVnZV90eXBlCisgICAg RlJPTQorICAgICAgICAoU0VMRUNUCisgICAgICAgICAgICByZWxhY2wgRlJP TSBwZ19jbGFzcyBjbAorICAgICAgICAgTEVGVCBPVVRFUiBKT0lOCisgICAg ICAgICAgICBwZ19zaGRlc2NyaXB0aW9uIGRlc2NyCisgICAgICAgICBPTgor ICAgICAgICAgICAgKGNsLm9pZD1kZXNjci5vYmpvaWQgQU5EIGRlc2NyLmNs YXNzb2lkPSdwZ19jbGFzcyc6OnJlZ2NsYXNzKQorICAgICAgICAgV0hFUkUK KyAgICAgICAgICAgIGNsLm9pZCA9IHt7IHZpZCB9fTo6T0lEIEFORCByZWxr aW5kID0gJ3YnCisgICAgICAgICkgYWNsLAorICAgICAgICBhY2xleHBsb2Rl KHJlbGFjbCkgZAorICAgICAgICApIGQKK0xFRlQgSk9JTiBwZ19jYXRhbG9n LnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9IGcub2lkKQorTEVGVCBKT0lO IHBnX2NhdGFsb2cucGdfcm9sZXMgZ3QgT04gKGQuZ3JhbnRlZSA9IGd0Lm9p ZCkKK0dST1VQIEJZCisgICAgZy5yb2xuYW1lLCBndC5yb2xuYW1lCit7JSBl bmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL3ZpZXdzL3NxbC85LjRfcGx1cy9iYWNrZW5kX3N1cHBvcnQuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC85 LjRfcGx1cy9iYWNrZW5kX3N1cHBvcnQuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLmUzZjhmNGYKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzku NF9wbHVzL2JhY2tlbmRfc3VwcG9ydC5zcWwKQEAgLTAsMCArMSwyMCBAQAor U0VMRUNUCisgICAgQ0FTRSBXSEVOIG5zcC5uc3BuYW1lIElOICgnc3lzJywg J2RibycsICdpbmZvcm1hdGlvbl9zY2hlbWEnKSBUSEVOIHRydWUgRUxTRSBm YWxzZSBFTkQgQVMgZGJTdXBwb3J0CitGUk9NCisgICAgcGdfbmFtZXNwYWNl IG5zcAorV0hFUkUKKyAgICBuc3Aub2lkPXt7c2NpZH19OjppbnQKK0FORCAo CisgICAgKG5zcG5hbWUgPSAncGdfY2F0YWxvZycgQU5EIEVYSVNUUworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTRUxFQ1QgMSBGUk9N IHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAncGdfY2xhc3MnIEFORCByZWxu YW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEpKQorICAgIE9SIChuc3BuYW1l ID0gJ3BnYWdlbnQnIEFORCBFWElTVFMKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoU0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBXSEVSRSBy ZWxuYW1lID0gJ3BnYV9qb2InIEFORCByZWxuYW1lc3BhY2UgPSBuc3Aub2lk IExJTUlUIDEpKQorICAgIE9SIChuc3BuYW1lID0gJ2luZm9ybWF0aW9uX3Nj aGVtYScgQU5EIEVYSVNUUworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUg PSAndGFibGVzJyBBTkQgcmVsbmFtZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAx KSkKKyAgICBPUiAobnNwbmFtZSBMSUtFICdfJScgQU5EIEVYSVNUUworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTRUxFQ1QgMSBGUk9N IHBnX3Byb2MgV0hFUkUgcHJvbmFtZT0nc2xvbnl2ZXJzaW9uJyBBTkQgcHJv bmFtZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAxKSkKKykKK0FORAorICAgIG5z cG5hbWUgTk9UIExJS0UgRSdwZ1xcdGVtcFxcJScKK0FORAorICAgIG5zcG5h bWUgTk9UIExJS0UgRSdwZ1xcdG9hc3RfdGVtcFxcJScKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS40 X3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3cy9zcWwvOS40X3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWMxZTNhCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdz L3NxbC85LjRfcGx1cy9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsMjUgQEAKK3sj PT09PT09PT09PT09PT09PT09PT09PT09PT09PUNyZWF0ZSBuZXcgdmlldz09 PT09PT09PT09PT09PT09PT09PT09PT0jfQoreyUgaWYgZGlzcGxheV9jb21t ZW50cyAlfQorLS0gVmlldzoge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1h LCBkYXRhLm5hbWUpIH19CisKKy0tIERST1AgVklFVyB7eyBjb25ufHF0SWRl bnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX07CisKK3slIGVuZGlmICV9 Cit7JSBpZiBkYXRhLm5hbWUgYW5kIGRhdGEuc2NoZW1hIGFuZCBkYXRhLmRl ZmluaXRpb24gJX0KK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcge3sgY29ubnxx dElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19Cit7JSBpZiAoKGRh dGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbi5sb3dlcigp ICE9ICdubycpIG9yIGRhdGEuc2VjdXJpdHlfYmFycmllcikgJX0KK1dJVEgg KHslIGlmIGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlv bi5sb3dlcigpICE9ICdubycgJX0KK2NoZWNrX29wdGlvbj17eyBkYXRhLmNo ZWNrX29wdGlvbiB9fXslIGVuZGlmICV9e3sgJywgJyBpZiBkYXRhLmNoZWNr X29wdGlvbiBhbmQKK2RhdGEuY2hlY2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25v JyBhbmQgZGF0YS5zZWN1cml0eV9iYXJyaWVyIGVsc2UgJycgfX17JSBpZiBk YXRhLnNlY3VyaXR5X2JhcnJpZXIgJX0KK3NlY3VyaXR5X2JhcnJpZXI9e3sg ZGF0YS5zZWN1cml0eV9iYXJyaWVyIH19eyUgZW5kaWYgJX0peyUgZW5kaWYg JX0gQVMKK3t7IGRhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSB9fTsKK3sl IGlmIGRhdGEub3duZXIgJX0KKworQUxURVIgVEFCTEUge3sgY29ubnxxdElk ZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19CisgICAgT1dORVIgVE8g e3sgZGF0YS5vd25lciB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmNv bW1lbnQgJX0KK0NPTU1FTlQgT04gVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0 YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKyAgICBJUyB7eyBkYXRhLmNvbW1l bnR8cXRMaXRlcmFsIH19OworeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmll d3Mvc3FsLzkuNF9wbHVzL2RlbGV0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuNF9wbHVzL2RlbGV0ZS5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTNhOWJkYgot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3cy9zcWwvOS40X3BsdXMvZGVsZXRlLnNxbApAQCAtMCwwICsx LDEzIEBACit7Iz09PT09PT09PT09PT09PT09PT09PT09PT09PT1Ecm9wL0Nh c2NhZGUgdmlldyBieSBuYW1lPT09PT09PT09PT09PT09PT09PT09PT09PSN9 Cit7JSBpZiB2aWQgJX0KK1NFTEVDVAorICAgIGMucmVsbmFtZSBBcyBuYW1l LCBuc3AubnNwbmFtZQorRlJPTQorICAgIHBnX2NsYXNzIGMKK0xFRlQgSk9J TgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gYy5yZWxuYW1lc3BhY2UgPSBu c3Aub2lkCitXSEVSRQorICAgIGMucmVsZmlsZW5vZGUgPSB7eyB2aWQgfX07 Cit7JSBlbGlmIChuYW1lIGFuZCBuc3BuYW1lKSAlfQorRFJPUCBWSUVXIHt7 IGNvbm58cXRJZGVudChuc3BuYW1lLCBuYW1lKSB9fSB7JSBpZiBjYXNjYWRl ICV9IENBU0NBREUgeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3Fs LzkuNF9wbHVzL2dyYW50LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3cy9zcWwvOS40X3BsdXMvZ3JhbnQuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmYTcxODEKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmll d3Mvc3FsLzkuNF9wbHVzL2dyYW50LnNxbApAQCAtMCwwICsxLDE0IEBACit7 Iz09PT09R3JhbnQgUGVybWlzc2lvbnMgdG8gVXNlciBSb2xlIG9uIFZpZXdz L1RhYmxlcz09PT0jfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFj cm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvcHJpdmls ZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7IyBXZSB3aWxsIGdlbmVy YXRlIFNlY3VyaXR5IExhYmVsIFNRTCB1c2luZyBtYWNybyAjfQoreyUgaWYg ZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2VjbGFiZWxz ICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnVklFVycsIGRhdGEubmFt ZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCkgfX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZGF0YWNsICV9Cit7JSBm b3IgcHJpdiBpbiBkYXRhLmRhdGFjbCAlfQore3sgUFJJVklMRUdFLkFQUExZ KGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBkYXRh LnNjaGVtYSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQp IH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuNF9w bHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL3ZpZXdzL3NxbC85LjRfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTRkY2Y2Ci0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVz L3ZpZXdzL3NxbC85LjRfcGx1cy9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsx LDY1IEBACit7Iz09PT09PT09PT09PT09PT09PT09PT09PT09PT1GZXRjaCBW aWV3IFByb3BlcnRpZXM9PT09PT09PT09PT09PT09PT09PT09PT09I30KK3sl IGlmICh2aWQgYW5kIGRhdGxhc3RzeXNvaWQpIG9yIHNjaWQgJX0KK1NFTEVD VCBjLm9pZCwgYy54bWluLCBjLnJlbG5hbWUgQVMgbmFtZSwgYy5yZWx0YWJs ZXNwYWNlIEFTIHNwY29pZCwKKyAgICBjLnJlbGlzcG9wdWxhdGVkIEFTIGlz cG9wdWxhdGVkLCBzcGMuc3BjbmFtZSwgbnNwLm5zcG5hbWUgYXMgc2NoZW1h LAorICAgIHBnX2dldF91c2VyYnlpZChjLnJlbG93bmVyKSBBUyBvd25lciwg ZGVzY3JpcHRpb24gQVMgY29tbWVudCwKKyAgICBwZ19nZXRfdmlld2RlZihj Lm9pZCwgdHJ1ZSkgQVMgZGVmaW5pdGlvbiwKKyAgICB7Iz09PT09PT09PT09 PT1DaGVja3MgaWYgaXQgaXMgc3lzdGVtIHZpZXc9PT09PT09PT09PT09PT09 I30KKyAgICB7JSBpZiB2aWQgYW5kIGRhdGxhc3RzeXNvaWQgJX0KKyAgICBD QVNFIFdIRU4ge3t2aWR9fSA8PSB7e2RhdGxhc3RzeXNvaWR9fSBUSEVOIFRy dWUgRUxTRSBGYWxzZSBFTkQgQVMgc3lzdGVtX3ZpZXcsCisgICAgeyUgZW5k aWYgJX0KKyAgICB7Iz09PT09PT09PT09PT1DaGVja3MgaWYgaXQgaXMgbWF0 ZXJpYWxpemVkIHZpZXc9PT09PT09PSN9CisgICAgQ0FTRSBXSEVOIGMucmVs a2luZCA9ICdtJyBUSEVOIFRydWUgRUxTRSBGYWxzZSBFTkQgQXMgbV92aWV3 LAorICAgIChTRUxFQ1QgYXJyYXlfYWdnKHByb3ZpZGVyIHx8ICc9JyB8fCBs YWJlbCkgRlJPTSBwZ19zZWNsYWJlbHMgc2wxIFdIRVJFIHNsMS5vYmpvaWQ9 Yy5vaWQgQU5EIHNsMS5vYmpzdWJpZD0wKSBBUyBzZWNsYWJlbHMKKyAgICAs IHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcp IEZST00gJ2NoZWNrX29wdGlvbj0oW2Etel0qKScpIEFTIGNoZWNrX29wdGlv bgorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlv bnMsICcsJykgRlJPTSAnc2VjdXJpdHlfYmFycmllcj0oW2EtenwwLTldKikn KSBBUyBzZWN1cml0eV9iYXJyaWVyCisgICAgLCBzdWJzdHJpbmcoYXJyYXlf dG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKSBGUk9NICdmaWxsZmFjdG9y PShbMC05XSopJykgQVMgZmlsbGZhY3RvcgorICAgICwgc3Vic3RyaW5nKGFy cmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3Zh Y3V1bV9lbmFibGVkPShbYS16fDAtOV0qKScpIEFTIGF1dG92YWN1dW1fZW5h YmxlZAorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9w dGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xk PShbMC05XSopJykgQVMgYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkCisg ICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywg JywnKSBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3I9KFsw LTldKlsuXVswLTldKiknKSBBUyBhdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9m YWN0b3IKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxv cHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fYW5hbHl6ZV90aHJlc2hv bGQ9KFswLTldKiknKSBBUyBhdXRvdmFjdXVtX2FuYWx5emVfdGhyZXNob2xk CisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9u cywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2FuYWx5emVfc2NhbGVfZmFjdG9y PShbMC05XSpbLl1bMC05XSopJykgQVMgYXV0b3ZhY3V1bV9hbmFseXplX3Nj YWxlX2ZhY3RvcgorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhj LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fY29z dF9kZWxheT0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fdmFjdXVtX2Nvc3Rf ZGVsYXkKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxv cHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGlt aXQ9KFswLTldKiknKSBBUyBhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0 CisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9u cywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV9taW5fYWdlPShbMC05 XSopJykgQVMgYXV0b3ZhY3V1bV9mcmVlemVfbWluX2FnZQorICAgICwgc3Vi c3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykgRlJP TSAnYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZT0oWzAtOV0qKScpIEFTIGF1 dG92YWN1dW1fZnJlZXplX21heF9hZ2UKKyAgICAsIHN1YnN0cmluZyhhcnJh eV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1 dW1fZnJlZXplX3RhYmxlX2FnZT0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1f ZnJlZXplX3RhYmxlX2FnZQorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0 cmluZyh0c3QucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2Vu YWJsZWQ9KFthLXp8MC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9lbmFi bGVkCisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxv cHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9s ZD0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fdmFjdXVtX3RocmVz aG9sZAorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVs b3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9m YWN0b3I9KFswLTldKlsuXVswLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVt X3ZhY3V1bV9zY2FsZV9mYWN0b3IKKyAgICAsIHN1YnN0cmluZyhhcnJheV90 b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1 bV9hbmFseXplX3RocmVzaG9sZD0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92 YWN1dW1fYW5hbHl6ZV90aHJlc2hvbGQKKyAgICAsIHN1YnN0cmluZyhhcnJh eV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3Zh Y3V1bV9hbmFseXplX3NjYWxlX2ZhY3Rvcj0oWzAtOV0qWy5dWzAtOV0qKScp IEFTIHRvYXN0X2F1dG92YWN1dW1fYW5hbHl6ZV9zY2FsZV9mYWN0b3IKKyAg ICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMs ICcsJykgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheT0oWzAt OV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXkK KyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlv bnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1pdD0o WzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGlt aXQKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9w dGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfbWluX2FnZT0o WzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fZnJlZXplX21pbl9hZ2UK KyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlv bnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZT0oWzAt OV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fZnJlZXplX21heF9hZ2UKKyAg ICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMs ICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlPShbMC05 XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlCisg ICAgLCBjLnJlbG9wdGlvbnMgQVMgcmVsb3B0aW9ucywgdHN0LnJlbG9wdGlv bnMgQVMgdG9hc3RfcmVsb3B0aW9ucworICAgICwgKENBU0UgV0hFTiBjLnJl bHRvYXN0cmVsaWQgPSAwIFRIRU4gZmFsc2UgRUxTRSB0cnVlIEVORCkgQVMg aGFzdG9hc3R0YWJsZQorRlJPTSBwZ19jbGFzcyBjCisgICAgTEVGVCBPVVRF UiBKT0lOIHBnX25hbWVzcGFjZSBuc3Agb24gbnNwLm9pZCA9IGMucmVsbmFt ZXNwYWNlCisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3RhYmxlc3BhY2Ugc3Bj IG9uIHNwYy5vaWQ9Yy5yZWx0YWJsZXNwYWNlCisgICAgTEVGVCBPVVRFUiBK T0lOIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1jLm9pZCBh bmQgZGVzLm9ianN1YmlkPTAgQU5EIGRlcy5jbGFzc29pZD0ncGdfY2xhc3Mn OjpyZWdjbGFzcykKKyAgICBMRUZUIE9VVEVSIEpPSU4gcGdfY2xhc3MgdHN0 IE9OIHRzdC5vaWQgPSBjLnJlbHRvYXN0cmVsaWQKKyAgICAgICAgV0hFUkUg KChjLnJlbGhhc3J1bGVzIEFORCAoRVhJU1RTICgKKyAgICAgICAgICAgIFNF TEVDVCByLnJ1bGVuYW1lIEZST00gcGdfcmV3cml0ZSByCisgICAgICAgICAg ICAgICAgV0hFUkUgKChyLmV2X2NsYXNzID0gYy5vaWQpCisgICAgICAgICAg ICAgICAgICAgIEFORCAoYnBjaGFyKHIuZXZfdHlwZSkgPSAnMSc6OmJwY2hh cikpICkpKSBPUiAoYy5yZWxraW5kID0gJ3YnOjpjaGFyKSkKK3slIGlmICh2 aWQgYW5kIGRhdGxhc3RzeXNvaWQpICV9CisgICAgICAgIEFORCBjLm9pZCA9 IHt7dmlkfX06Om9pZAoreyUgZWxpZiBzY2lkICV9CisgICAgICAgIEFORCBj LnJlbG5hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQgT1JERVIgQlkgYy5yZWxu YW1lCit7JSBlbmRpZiAlfQorCit7JSBlbGlmIHR5cGUgPT0gJ3JvbGVzJyAl fQorU0VMRUNUIHByLnJvbG5hbWUgRlJPTSBwZ19yb2xlcyBwciBXSEVSRSBw ci5yb2xjYW5sb2dpbiBPUkRFUiBCWSBwci5yb2xuYW1lCisKK3slIGVsaWYg dHlwZSA9PSAnc2NoZW1hcycgJX0KK1NFTEVDVAorICAgIG5zcC5uc3BuYW1l CitGUk9NCisgICAgcGdfbmFtZXNwYWNlIG5zcAorV0hFUkUKKyAgICAobnNw Lm5zcG5hbWUgTk9UIExJS0UgRSdwZ1xcXyUnCisgICAgQU5EIG5zcC5uc3Bu YW1lICE9ICdpbmZvcm1hdGlvbl9zY2hlbWEnKQoreyUgZW5kaWYgJX0KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3 cy9zcWwvOS40X3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvOS40X3BsdXMvdXBkYXRlLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODY3MDM4Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL3ZpZXdzL3NxbC85LjRfcGx1cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEs ODEgQEAKK3sjPT09PT09PT09PT09PT09PT09PT09PT09PT09PVVwZGF0ZSBW aWV3PT09PT09PT09PT09PT09PT09PT09PT09PSN9Cit7JSBpbXBvcnQgJ21h Y3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBv cnQgJ21hY3Jvcy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0K K3slIGlmIGRhdGEgJX0KK3slIHNldCB2aWV3X25hbWUgPSBkYXRhLm5hbWUg aWYgZGF0YS5uYW1lIGVsc2Ugb19kYXRhLm5hbWUgJX0KK3slIHNldCB2aWV3 X3NjaGVtYSA9IGRhdGEuc2NoZW1hIGlmIGRhdGEuc2NoZW1hIGVsc2Ugb19k YXRhLnNjaGVtYSAlfQoreyUgc2V0IGRlZiA9IGRhdGEuZGVmaW5pdGlvbi5y c3RyaXAoJzsnKSBpZiBkYXRhLmRlZmluaXRpb24gJX0KK3slIGlmIGRhdGEu bmFtZSBhbmQgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBW SUVXIHt7IGNvbm58cXRJZGVudChvX2RhdGEuc2NoZW1hLCBvX2RhdGEubmFt ZSkgfX0KKyAgICBSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50KGRhdGEubmFt ZSkgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5zY2hlbWEgYW5kIGRh dGEuc2NoZW1hICE9IG9fZGF0YS5zY2hlbWEgJX0KK0FMVEVSIFZJRVcge3sg Y29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIHZpZXdfbmFtZSApIH19Cisg ICAgU0VUIFNDSEVNQSB7eyBkYXRhLnNjaGVtYSB9fTsKK3slIGVuZGlmICV9 Cit7JSBpZiBkYXRhLm93bmVyIGFuZCBkYXRhLm93bmVyICE9IG9fZGF0YS5v d25lciAlfQorQUxURVIgVEFCTEUge3sgY29ubnxxdElkZW50KHZpZXdfc2No ZW1hLCB2aWV3X25hbWUpIH19CisgICAgT1dORVIgVE8ge3sgZGF0YS5vd25l ciB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkZWYgYW5kIGRlZiAhPSBvX2Rh dGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSAlfQorQ1JFQVRFIE9SIFJFUExB Q0UgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFt ZSkgfX0KK3slIGlmIChkYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVj a19vcHRpb24gIT0gb19kYXRhLmNoZWNrX29wdGlvbikKKyAgICBvciAoZGF0 YS5zZWN1cml0eV9iYXJyaWVyIGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIg IT0gb19kYXRhLnNlY3VyaXR5X2JhcnJpZXIpICV9CisgICAgV0lUSCAoeyUg aWYgKGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAh PSAnbm8nKSAlfWNoZWNrX29wdGlvbj17eyBkYXRhLmNoZWNrX29wdGlvbiB9 fXslIGVuZGlmICV9e3snLCAnIGlmIGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBk YXRhLmNoZWNrX29wdGlvbiAhPSAnbm8nIGFuZCBkYXRhLnNlY3VyaXR5X2Jh cnJpZXIgfX17JSBpZiBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgJX1zZWN1cml0 eV9iYXJyaWVyPXt7IGRhdGEuc2VjdXJpdHlfYmFycmllciB9fXslIGVuZGlm ICV9KQoreyUgZW5kaWYgJX0KKyAgICBBU3t7IGRlZiB9fTsKK3slIGVsc2Ug JX0KK3slIGlmIChkYXRhLnNlY3VyaXR5X2JhcnJpZXIgYW5kIGRhdGEuc2Vj dXJpdHlfYmFycmllciAhPSAgb19kYXRhLnNlY3VyaXR5X2JhcnJpZXIpICV9 CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmll d19uYW1lKSB9fQorICAgIFNFVCAoc2VjdXJpdHlfYmFycmllcj17eyBkYXRh LnNlY3VyaXR5X2JhcnJpZXIgfX0pOworeyUgZW5kaWYgJX0KK3slIGlmIChk YXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gb19k YXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gJ25v JykgJX0KK0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1h LCB2aWV3X25hbWUpIH19CisgICAgU0VUIChjaGVja19vcHRpb249e3sgZGF0 YS5jaGVja19vcHRpb24gfX0pOworeyUgZWxpZiAoZGF0YS5jaGVja19vcHRp b24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9IG9fZGF0YS5jaGVja19vcHRp b24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uID09ICdubycpICV9CitBTFRFUiBW SUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9 fSBSRVNFVCAoY2hlY2tfb3B0aW9uKTsKK3slIGVuZGlmICV9Cit7JSBlbmRp ZiAlfQoreyUgaWYgZGF0YS5jb21tZW50IGFuZCBkYXRhLmNvbW1lbnQgIT0g b19kYXRhLmNvbW1lbnQgJX0KK0NPTU1FTlQgT04gVklFVyB7eyBjb25ufHF0 SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBJUyB7eyBk YXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19OworeyUgZW5kaWYgJX0KK3sjIFRo ZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZpbGVnZXMg I30KK3slIGlmIGRhdGEuZGF0YWNsICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4g ZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsLmRl bGV0ZWQgJX0KK3t7IFBSSVZJTEVHRS5SRVNFVEFMTChjb25uLCAnVEFCTEUn LCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0YS5zY2hlbWEpIH19Cit7 JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4g ZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsLmNo YW5nZWQgJX0KK3t7IFBSSVZJTEVHRS5SRVNFVEFMTChjb25uLCAnVEFCTEUn LCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0YS5zY2hlbWEpIH19Cit7 eyBQUklWSUxFR0UuQVBQTFkoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVl LCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hLCBwcml2LndpdGhvdXRfZ3JhbnQs IHByaXYud2l0aF9ncmFudCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYg JX0KK3slIGlmICdhZGRlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBw cml2IGluIGRhdGEuZGF0YWNsLmFkZGVkICV9Cit7eyBQUklWSUxFR0UuQVBQ TFkoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRh dGEuc2NoZW1hLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFu dCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9 Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBTZWN1 cml0eSBMYWJlbCAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgaXMgbm90IG5v bmUgYW5kIGRhdGEuc2VjbGFiZWxzfGxlbmd0aCA+IDAgJX0KK3slIHNldCBz ZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQn IGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4g MCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQgJX0KK3t7IFNF Q0xBQkxFLkRST1AoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlk ZXIpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnYWRk ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+ IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQore3sgU0VD TEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlk ZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNs YWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNs YWJlbHMuY2hhbmdlZCAlfQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJ RVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwp IH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQor eyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdz L3RlbXBsYXRlcy92aWV3cy9zcWwvOS40X3BsdXMvdmlld19pZC5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuNF9w bHVzL3ZpZXdfaWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjY1NjQ4YzAKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsLzkuNF9wbHVzL3ZpZXdf aWQuc3FsCkBAIC0wLDAgKzEsNCBAQAoreyM9PUJlbG93IHdpbGwgcHJvdmlk ZSB2aWV3IGlkIGZvciBsYXN0IGNyZWF0ZWQgdmlldz09I30KK3slIGlmIGRh dGEgJX0KK1NFTEVDVCBjLm9pZCBGUk9NIHBnX2NsYXNzIGMgV0hFUkUgYy5y ZWxuYW1lID0gJ3t7IGRhdGEubmFtZSB9fSc7Cit7JSBlbmRpZiAlfQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdz L3NxbC9lZGJfOS4xX3BsdXMvYWNsLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvZWRiXzkuMV9wbHVzL2FjbC5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVkMjIyNQot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3cy9zcWwvZWRiXzkuMV9wbHVzL2FjbC5zcWwKQEAgLTAsMCAr MSwzMyBAQAoreyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09R2V0IEFD THM9PT09PT09PT09PT09PT09PT09PT09PT09I30KK3slIGlmIHZpZCAlfQor U0VMRUNUCisgICAgJ2RhdGFjbCcgYXMgZGVmdHlwZSwKKyAgICBDT0FMRVND RShndC5yb2xuYW1lLCAncHVibGljJykgZ3JhbnRlZSwKKyAgICBnLnJvbG5h bWUgZ3JhbnRvciwKKyAgICBhcnJheV9hZ2cocHJpdmlsZWdlX3R5cGUpIGFz IHByaXZpbGVnZXMsCisgICAgYXJyYXlfYWdnKGlzX2dyYW50YWJsZSkgYXMg Z3JhbnRhYmxlCitGUk9NCisgICAgKFNFTEVDVAorICAgICAgICBkLmdyYW50 ZWUsIGQuZ3JhbnRvciwgZC5pc19ncmFudGFibGUsCisgICAgICAgIENBU0Ug ZC5wcml2aWxlZ2VfdHlwZQorICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4g J2QnCisgICAgICAgIFdIRU4gJ0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAg V0hFTiAnUkVGRVJFTkNFUycgVEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VM RUNUJyBUSEVOICdyJworICAgICAgICBXSEVOICdUUklHR0VSJyBUSEVOICd0 JworICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAgICAgIEVM U0UgJ1VOS05PV04nCisgICAgICAgIEVORCBBUyBwcml2aWxlZ2VfdHlwZQor ICAgIEZST00KKyAgICAgICAgKFNFTEVDVCByZWxhY2wgRlJPTSBwZ19jbGFz cyBjbAorICAgICAgICAgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3NoZGVzY3Jp cHRpb24gZGVzY3IgT04gKAorICAgICAgICAgICAgY2wub2lkPWRlc2NyLm9i am9pZCBBTkQgZGVzY3IuY2xhc3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xhc3Mp CisgIFdIRVJFIGNsLm9pZCA9IHt7IHZpZCB9fTo6T0lEIEFORCByZWxraW5k ID0gJ3YnCisgICAgICAgICkgYWNsLAorICAgICAgICBhY2xleHBsb2RlKHJl bGFjbCkgZAorICAgICAgICApIGQKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxv Zy5wZ19yb2xlcyBnIE9OIChkLmdyYW50b3IgPSBnLm9pZCkKKyAgICBMRUZU IEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBndCBPTiAoZC5ncmFudGVlID0g Z3Qub2lkKQorR1JPVVAgQlkKKyAgICBnLnJvbG5hbWUsIGd0LnJvbG5hbWUK K3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL2VkYl85LjFfcGx1cy9iYWNrZW5kX3N1 cHBvcnQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXdzL3NxbC9lZGJfOS4xX3BsdXMvYmFja2VuZF9zdXBwb3J0LnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzA2NDhkCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVz L3ZpZXdzL3NxbC9lZGJfOS4xX3BsdXMvYmFja2VuZF9zdXBwb3J0LnNxbApA QCAtMCwwICsxLDIwIEBACitTRUxFQ1QKKyAgICBDQVNFIFdIRU4gbnNwLm5z cG5hbWUgSU4gKCdzeXMnLCAnZGJvJywgJ2luZm9ybWF0aW9uX3NjaGVtYScp IFRIRU4gdHJ1ZSBFTFNFIGZhbHNlIEVORCBBUyBkYlN1cHBvcnQKK0ZST00K KyAgICBwZ19uYW1lc3BhY2UgbnNwCitXSEVSRQorICAgIG5zcC5vaWQ9e3tz Y2lkfX06OmludAorQU5EICgKKyAgICAobnNwbmFtZSA9ICdwZ19jYXRhbG9n JyBBTkQgRVhJU1RTCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICdw Z19jbGFzcycgQU5EIHJlbG5hbWVzcGFjZSA9IG5zcC5vaWQgTElNSVQgMSkp CisgICAgT1IgKG5zcG5hbWUgPSAncGdhZ2VudCcgQU5EIEVYSVNUUworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTRUxFQ1QgMSBGUk9N IHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAncGdhX2pvYicgQU5EIHJlbG5h bWVzcGFjZSA9IG5zcC5vaWQgTElNSVQgMSkpCisgICAgT1IgKG5zcG5hbWUg PSAnaW5mb3JtYXRpb25fc2NoZW1hJyBBTkQgRVhJU1RTCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKFNFTEVDVCAxIEZST00gcGdfY2xh c3MgV0hFUkUgcmVsbmFtZSA9ICd0YWJsZXMnIEFORCByZWxuYW1lc3BhY2Ug PSBuc3Aub2lkIExJTUlUIDEpKQorICAgIE9SIChuc3BuYW1lIExJS0UgJ18l JyBBTkQgRVhJU1RTCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKFNFTEVDVCAxIEZST00gcGdfcHJvYyBXSEVSRSBwcm9uYW1lPSdzbG9u eXZlcnNpb24nIEFORCBwcm9uYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEp KQorKQorQU5ECisgbnNwbmFtZSBOT1QgTElLRSBFJ3BnXFx0ZW1wXFwlJwor QU5ECisgbnNwbmFtZSBOT1QgTElLRSBFJ3BnXFx0b2FzdF90ZW1wXFwlJwpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXdzL3NxbC9lZGJfOS4xX3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvZWRiXzkuMV9wbHVzL2Ny ZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MmFjMWUzYQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvZWRiXzkuMV9wbHVzL2NyZWF0ZS5z cWwKQEAgLTAsMCArMSwyNSBAQAoreyM9PT09PT09PT09PT09PT09PT09PT09 PT09PT09Q3JlYXRlIG5ldyB2aWV3PT09PT09PT09PT09PT09PT09PT09PT09 PSN9Cit7JSBpZiBkaXNwbGF5X2NvbW1lbnRzICV9CistLSBWaWV3OiB7eyBj b25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKworLS0g RFJPUCBWSUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5u YW1lKSB9fTsKKworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEubmFtZSBhbmQg ZGF0YS5zY2hlbWEgYW5kIGRhdGEuZGVmaW5pdGlvbiAlfQorQ1JFQVRFIE9S IFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRh dGEubmFtZSkgfX0KK3slIGlmICgoZGF0YS5jaGVja19vcHRpb24gYW5kIGRh dGEuY2hlY2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25vJykgb3IgZGF0YS5zZWN1 cml0eV9iYXJyaWVyKSAlfQorV0lUSCAoeyUgaWYgZGF0YS5jaGVja19vcHRp b24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25vJyAlfQor Y2hlY2tfb3B0aW9uPXt7IGRhdGEuY2hlY2tfb3B0aW9uIH19eyUgZW5kaWYg JX17eyAnLCAnIGlmIGRhdGEuY2hlY2tfb3B0aW9uIGFuZAorZGF0YS5jaGVj a19vcHRpb24ubG93ZXIoKSAhPSAnbm8nIGFuZCBkYXRhLnNlY3VyaXR5X2Jh cnJpZXIgZWxzZSAnJyB9fXslIGlmIGRhdGEuc2VjdXJpdHlfYmFycmllciAl fQorc2VjdXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXIg fX17JSBlbmRpZiAlfSl7JSBlbmRpZiAlfSBBUwore3sgZGF0YS5kZWZpbml0 aW9uLnJzdHJpcCgnOycpIH19OworeyUgaWYgZGF0YS5vd25lciAlfQorCitB TFRFUiBUQUJMRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEu bmFtZSkgfX0KKyAgICBPV05FUiBUTyB7eyBkYXRhLm93bmVyIH19OworeyUg ZW5kaWYgJX0KK3slIGlmIGRhdGEuY29tbWVudCAlfQorQ09NTUVOVCBPTiBW SUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9 fQorICAgIElTIHt7IGRhdGEuY29tbWVudHxxdExpdGVyYWwgfX07Cit7JSBl bmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvZWRiXzkuMV9wbHVzL2Rl bGV0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmll d3Mvc3FsL2VkYl85LjFfcGx1cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmYzRlMDEKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3Fs L2VkYl85LjFfcGx1cy9kZWxldGUuc3FsCkBAIC0wLDAgKzEsOSBAQAoreyM9 PT09PT09PT09PT09PT09PT09PT09PT09PT09RHJvcC9DYXNjYWRlIHZpZXcg YnkgbmFtZT09PT09PT09PT09PT09PT09PT09PT09PT0jfQoreyUgaWYgdmlk ICV9CitTRUxFQ1QgYy5yZWxuYW1lIEFzIG5hbWUsIG5zcC5uc3BuYW1lCisg ICAgRlJPTSBwZ19jbGFzcyBjCisgICAgTEVGVCBKT0lOIHBnX25hbWVzcGFj ZSBuc3Agb24gYy5yZWxuYW1lc3BhY2UgPSBuc3Aub2lkCisgICAgV0hFUkUg Yy5yZWxmaWxlbm9kZSA9IHt7IHZpZCB9fTsKK3slIGVsaWYgKG5hbWUgYW5k IG5zcG5hbWUpICV9CitEUk9QIFZJRVcge3sgY29ubnxxdElkZW50KG5zcG5h bWUsIG5hbWUpIH19IHslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERSB7JSBlbmRp ZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvZWRiXzkuMV9wbHVzL2dyYW50 LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9z cWwvZWRiXzkuMV9wbHVzL2dyYW50LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi45ZmE3MTgxCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC9lZGJf OS4xX3BsdXMvZ3JhbnQuc3FsCkBAIC0wLDAgKzEsMTQgQEAKK3sjPT09PT1H cmFudCBQZXJtaXNzaW9ucyB0byBVc2VyIFJvbGUgb24gVmlld3MvVGFibGVz PT09PSN9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFz IFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9wcml2aWxlZ2UubWFj cm9zJyBhcyBQUklWSUxFR0UgJX0KK3sjIFdlIHdpbGwgZ2VuZXJhdGUgU2Vj dXJpdHkgTGFiZWwgU1FMIHVzaW5nIG1hY3JvICN9Cit7JSBpZiBkYXRhLnNl Y2xhYmVscyAlfQoreyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KK3t7 IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnBy b3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7 JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2 IGluIGRhdGEuZGF0YWNsICV9Cit7eyBQUklWSUxFR0UuQVBQTFkoY29ubiwg J1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1h LCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3sl IGVuZGZvciAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvZWRiXzkuMV9wbHVz L3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL3ZpZXdzL3NxbC9lZGJfOS4xX3BsdXMvcHJvcGVydGllcy5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjkyNjAyNwotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy92aWV3cy9zcWwvZWRiXzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0w LDAgKzEsNjMgQEAKK3sjPT09PT09PT09PT09PT09PT09PT09PT09PT09PUZl dGNoIFZpZXcgUHJvcGVydGllcz09PT09PT09PT09PT09PT09PT09PT09PT0j fQoreyUgaWYgKHZpZCBhbmQgZGF0bGFzdHN5c29pZCkgb3Igc2NpZCAlfQor U0VMRUNUIGMub2lkLCBjLnhtaW4sIGMucmVsbmFtZSBBUyBuYW1lLCBjLnJl bHRhYmxlc3BhY2UgQVMgc3Bjb2lkLAorICAgIGMucmVsaXNwb3B1bGF0ZWQg QVMgaXNwb3B1bGF0ZWQsIHNwYy5zcGNuYW1lLCBuc3AubnNwbmFtZSBhcyBz Y2hlbWEsCisgICAgcGdfZ2V0X3VzZXJieWlkKGMucmVsb3duZXIpIEFTIG93 bmVyLCBkZXNjcmlwdGlvbiBBUyBjb21tZW50LAorICAgIHBnX2dldF92aWV3 ZGVmKGMub2lkLCB0cnVlKSBBUyBkZWZpbml0aW9uLAorICAgIHsjPT09PT09 PT09PT09PUNoZWNrcyBpZiBpdCBpcyBzeXN0ZW0gdmlldz09PT09PT09PT09 PT09PT0jfQorICAgIHslIGlmIHZpZCBhbmQgZGF0bGFzdHN5c29pZCAlfQor ICAgIENBU0UgV0hFTiB7e3ZpZH19IDw9IHt7ZGF0bGFzdHN5c29pZH19IFRI RU4gVHJ1ZSBFTFNFIEZhbHNlIEVORCBBUyBzeXN0ZW1fdmlldywKKyAgICB7 JSBlbmRpZiAlfQorICAgIHsjPT09PT09PT09PT09PUNoZWNrcyBpZiBpdCBp cyBtYXRlcmlhbGl6ZWQgdmlldz09PT09PT09I30KKyAgICBDQVNFIFdIRU4g Yy5yZWxraW5kID0gJ20nIFRIRU4gVHJ1ZSBFTFNFIEZhbHNlIEVORCBBcyBt X3ZpZXcsCisgICAgKFNFTEVDVCBhcnJheV9hZ2cocHJvdmlkZXIgfHwgJz0n IHx8IGxhYmVsKSBGUk9NIHBnX3NlY2xhYmVscyBzbDEgV0hFUkUgc2wxLm9i am9pZD1jLm9pZCBBTkQgc2wxLm9ianN1YmlkPTApIEFTIHNlY2xhYmVscwor ICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMs ICcsJykgRlJPTSAnY2hlY2tfb3B0aW9uPShbYS16XSopJykgQVMgY2hlY2tf b3B0aW9uCisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVs b3B0aW9ucywgJywnKSBGUk9NICdzZWN1cml0eV9iYXJyaWVyPShbYS16fDAt OV0qKScpIEFTIHNlY3VyaXR5X2JhcnJpZXIKKyAgICAsIHN1YnN0cmluZyhh cnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2ZpbGxm YWN0b3I9KFswLTldKiknKSBBUyBmaWxsZmFjdG9yCisgICAgLCBzdWJzdHJp bmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKSBGUk9NICdh dXRvdmFjdXVtX2VuYWJsZWQ9KFthLXp8MC05XSopJykgQVMgYXV0b3ZhY3V1 bV9lbmFibGVkCisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMu cmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV90aHJl c2hvbGQ9KFswLTldKiknKSBBUyBhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hv bGQKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRp b25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX3NjYWxlX2ZhY3Rv cj0oWzAtOV0qWy5dWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fdmFjdXVtX3Nj YWxlX2ZhY3RvcgorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhj LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9hbmFseXplX3Ro cmVzaG9sZD0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fYW5hbHl6ZV90aHJl c2hvbGQKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxv cHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fYW5hbHl6ZV9zY2FsZV9m YWN0b3I9KFswLTldKlsuXVswLTldKiknKSBBUyBhdXRvdmFjdXVtX2FuYWx5 emVfc2NhbGVfZmFjdG9yCisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3Ry aW5nKGMucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1 bV9jb3N0X2RlbGF5PShbMC05XSopJykgQVMgYXV0b3ZhY3V1bV92YWN1dW1f Y29zdF9kZWxheQorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhj LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fY29z dF9saW1pdD0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fdmFjdXVtX2Nvc3Rf bGltaXQKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxv cHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fZnJlZXplX21pbl9hZ2U9 KFswLTldKiknKSBBUyBhdXRvdmFjdXVtX2ZyZWV6ZV9taW5fYWdlCisgICAg LCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywn KSBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdlPShbMC05XSopJykg QVMgYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZQorICAgICwgc3Vic3RyaW5n KGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0 b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlPShbMC05XSopJykgQVMgYXV0b3Zh Y3V1bV9mcmVlemVfdGFibGVfYWdlCisgICAgLCBzdWJzdHJpbmcoYXJyYXlf dG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1 dW1fZW5hYmxlZD0oW2EtenwwLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVt X2VuYWJsZWQKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0 LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fdGhy ZXNob2xkPShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV92YWN1dW1f dGhyZXNob2xkCisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRz dC5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX3Nj YWxlX2ZhY3Rvcj0oWzAtOV0qWy5dWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92 YWN1dW1fdmFjdXVtX3NjYWxlX2ZhY3RvcgorICAgICwgc3Vic3RyaW5nKGFy cmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRv dmFjdXVtX2FuYWx5emVfdGhyZXNob2xkPShbMC05XSopJykgQVMgdG9hc3Rf YXV0b3ZhY3V1bV9hbmFseXplX3RocmVzaG9sZAorICAgICwgc3Vic3RyaW5n KGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKSBGUk9NICdh dXRvdmFjdXVtX2FuYWx5emVfc2NhbGVfZmFjdG9yPShbMC05XSpbLl1bMC05 XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2ZhY3Rv cgorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0 aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2RlbGF5 PShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9k ZWxheQorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVs b3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xp bWl0PShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV92YWN1dW1fY29z dF9saW1pdAorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3Qu cmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV9taW5f YWdlPShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9mcmVlemVfbWlu X2FnZQorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVs b3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdl PShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2Fn ZQorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0 aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2U9 KFswLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX2ZyZWV6ZV90YWJsZV9h Z2UKKyAgICAsIGMucmVsb3B0aW9ucyBBUyByZWxvcHRpb25zLCB0c3QucmVs b3B0aW9ucyBBUyB0b2FzdF9yZWxvcHRpb25zCisgICAgLCAoQ0FTRSBXSEVO IGMucmVsdG9hc3RyZWxpZCA9IDAgVEhFTiBmYWxzZSBFTFNFIHRydWUgRU5E KSBBUyBoYXN0b2FzdHRhYmxlCitGUk9NIHBnX2NsYXNzIGMKKyAgICBMRUZU IE9VVEVSIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBvbiBuc3Aub2lkID0gYy5y ZWxuYW1lc3BhY2UKKyAgICBMRUZUIE9VVEVSIEpPSU4gcGdfdGFibGVzcGFj ZSBzcGMgb24gc3BjLm9pZD1jLnJlbHRhYmxlc3BhY2UKKyAgICBMRUZUIE9V VEVSIEpPSU4gcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPWMu b2lkIGFuZCBkZXMub2Jqc3ViaWQ9MCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19j bGFzcyc6OnJlZ2NsYXNzKQorICAgIExFRlQgT1VURVIgSk9JTiBwZ19jbGFz cyB0c3QgT04gdHN0Lm9pZCA9IGMucmVsdG9hc3RyZWxpZAorICAgICAgICBX SEVSRSAoKGMucmVsaGFzcnVsZXMgQU5EIChFWElTVFMgKAorICAgICAgICAg ICAgU0VMRUNUIHIucnVsZW5hbWUgRlJPTSBwZ19yZXdyaXRlIHIKKyAgICAg ICAgICAgICAgICBXSEVSRSAoKHIuZXZfY2xhc3MgPSBjLm9pZCkKKyAgICAg ICAgICAgICAgICAgICAgQU5EIChicGNoYXIoci5ldl90eXBlKSA9ICcxJzo6 YnBjaGFyKSkgKSkpIE9SIChjLnJlbGtpbmQgPSAndic6OmNoYXIpKQoreyUg aWYgKHZpZCBhbmQgZGF0bGFzdHN5c29pZCkgJX0KKyAgICAgICAgQU5EIGMu b2lkID0ge3t2aWR9fTo6b2lkCit7JSBlbGlmIHNjaWQgJX0KKyAgICAgICAg QU5EIGMucmVsbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZCBPUkRFUiBCWSBj LnJlbG5hbWUKK3slIGVuZGlmICV9CisKK3slIGVsaWYgdHlwZSA9PSAncm9s ZXMnICV9CitTRUxFQ1QgcHIucm9sbmFtZSBGUk9NIHBnX3JvbGVzIHByIFdI RVJFIHByLnJvbGNhbmxvZ2luIE9SREVSIEJZIHByLnJvbG5hbWUKKworeyUg ZWxpZiB0eXBlID09ICdzY2hlbWFzJyAlfQorU0VMRUNUIG5zcC5uc3BuYW1l CisgICAgRlJPTSBwZ19uYW1lc3BhY2UgbnNwCitXSEVSRQorICAgIChuc3Au bnNwbmFtZSBOT1QgTElLRSBFJ3BnXFxfJScKKyAgICAgICAgQU5EIG5zcC5u c3BuYW1lICE9ICdpbmZvcm1hdGlvbl9zY2hlbWEnKQoreyUgZW5kaWYgJX0K ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3cy9zcWwvZWRiXzkuMV9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL2VkYl85LjFfcGx1cy91 cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjE4NjcwMzgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL2VkYl85LjFfcGx1cy91cGRhdGUu c3FsCkBAIC0wLDAgKzEsODEgQEAKK3sjPT09PT09PT09PT09PT09PT09PT09 PT09PT09PVVwZGF0ZSBWaWV3PT09PT09PT09PT09PT09PT09PT09PT09PSN9 Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xB QkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9wcml2aWxlZ2UubWFjcm9zJyBh cyBQUklWSUxFR0UgJX0KK3slIGlmIGRhdGEgJX0KK3slIHNldCB2aWV3X25h bWUgPSBkYXRhLm5hbWUgaWYgZGF0YS5uYW1lIGVsc2Ugb19kYXRhLm5hbWUg JX0KK3slIHNldCB2aWV3X3NjaGVtYSA9IGRhdGEuc2NoZW1hIGlmIGRhdGEu c2NoZW1hIGVsc2Ugb19kYXRhLnNjaGVtYSAlfQoreyUgc2V0IGRlZiA9IGRh dGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSBpZiBkYXRhLmRlZmluaXRpb24g JX0KK3slIGlmIGRhdGEubmFtZSBhbmQgZGF0YS5uYW1lICE9IG9fZGF0YS5u YW1lICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudChvX2RhdGEuc2No ZW1hLCBvX2RhdGEubmFtZSkgfX0KKyAgICBSRU5BTUUgVE8ge3sgY29ubnxx dElkZW50KGRhdGEubmFtZSkgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0 YS5zY2hlbWEgYW5kIGRhdGEuc2NoZW1hICE9IG9fZGF0YS5zY2hlbWEgJX0K K0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIHZp ZXdfbmFtZSApIH19CisgICAgU0VUIFNDSEVNQSB7eyBkYXRhLnNjaGVtYSB9 fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLm93bmVyIGFuZCBkYXRhLm93 bmVyICE9IG9fZGF0YS5vd25lciAlfQorQUxURVIgVEFCTEUge3sgY29ubnxx dElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAgT1dORVIg VE8ge3sgZGF0YS5vd25lciB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkZWYg YW5kIGRlZiAhPSBvX2RhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSAlfQor Q1JFQVRFIE9SIFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19z Y2hlbWEsIHZpZXdfbmFtZSkgfX0KK3slIGlmIChkYXRhLmNoZWNrX29wdGlv biBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gb19kYXRhLmNoZWNrX29wdGlv bikKKyAgICBvciAoZGF0YS5zZWN1cml0eV9iYXJyaWVyIGFuZCBkYXRhLnNl Y3VyaXR5X2JhcnJpZXIgIT0gb19kYXRhLnNlY3VyaXR5X2JhcnJpZXIpICV9 CisgICAgV0lUSCAoeyUgaWYgKGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRh LmNoZWNrX29wdGlvbiAhPSAnbm8nKSAlfWNoZWNrX29wdGlvbj17eyBkYXRh LmNoZWNrX29wdGlvbiB9fXslIGVuZGlmICV9e3snLCAnIGlmIGRhdGEuY2hl Y2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAhPSAnbm8nIGFuZCBk YXRhLnNlY3VyaXR5X2JhcnJpZXIgfX17JSBpZiBkYXRhLnNlY3VyaXR5X2Jh cnJpZXIgJX1zZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEuc2VjdXJpdHlfYmFy cmllciB9fXslIGVuZGlmICV9KQoreyUgZW5kaWYgJX0KKyAgICBBU3t7IGRl ZiB9fTsKK3slIGVsc2UgJX0KK3slIGlmIChkYXRhLnNlY3VyaXR5X2JhcnJp ZXIgYW5kIGRhdGEuc2VjdXJpdHlfYmFycmllciAhPSAgb19kYXRhLnNlY3Vy aXR5X2JhcnJpZXIpICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudCh2 aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIFNFVCAoc2VjdXJpdHlf YmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgfX0pOworeyUgZW5k aWYgJX0KK3slIGlmIChkYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVj a19vcHRpb24gIT0gb19kYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVj a19vcHRpb24gIT0gJ25vJykgJX0KK0FMVEVSIFZJRVcge3sgY29ubnxxdElk ZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAgU0VUIChjaGVj a19vcHRpb249e3sgZGF0YS5jaGVja19vcHRpb24gfX0pOworeyUgZWxpZiAo ZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9IG9f ZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uID09ICdu bycpICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVt YSwgdmlld19uYW1lKSB9fSBSRVNFVCAoY2hlY2tfb3B0aW9uKTsKK3slIGVu ZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5jb21tZW50IGFuZCBk YXRhLmNvbW1lbnQgIT0gb19kYXRhLmNvbW1lbnQgJX0KK0NPTU1FTlQgT04g VklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkg fX0KKyAgICBJUyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19OworeyUg ZW5kaWYgJX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hh bmdlIHByaXZpbGVnZXMgI30KK3slIGlmIGRhdGEuZGF0YWNsICV9Cit7JSBp ZiAnZGVsZXRlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGlu IGRhdGEuZGF0YWNsLmRlbGV0ZWQgJX0KK3t7IFBSSVZJTEVHRS5SRVNFVEFM TChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0 YS5zY2hlbWEpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBp ZiAnY2hhbmdlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGlu IGRhdGEuZGF0YWNsLmNoYW5nZWQgJX0KK3t7IFBSSVZJTEVHRS5SRVNFVEFM TChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0 YS5zY2hlbWEpIH19Cit7eyBQUklWSUxFR0UuQVBQTFkoY29ubiwgJ1RBQkxF JywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hLCBwcml2 LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdhZGRlZCcgaW4gZGF0YS5kYXRh Y2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsLmFkZGVkICV9Cit7 eyBQUklWSUxFR0UuQVBQTFkoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVl LCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hLCBwcml2LndpdGhvdXRfZ3JhbnQs IHByaXYud2l0aF9ncmFudCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYg JX0KK3slIGVuZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3 aWxsIGNoYW5nZSBTZWN1cml0eSBMYWJlbCAjfQoreyUgaWYgZGF0YS5zZWNs YWJlbHMgaXMgbm90IG5vbmUgYW5kIGRhdGEuc2VjbGFiZWxzfGxlbmd0aCA+ IDAgJX0KK3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQor eyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRl bGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRl bGV0ZWQgJX0KK3t7IFNFQ0xBQkxFLkRST1AoY29ubiwgJ1ZJRVcnLCBkYXRh Lm5hbWUsIHIucHJvdmlkZXIpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlm ICV9Cit7JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxz LmFkZGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5h ZGRlZCAlfQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRh Lm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBl bmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2Vj bGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7 JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQore3sgU0VDTEFCTEUu QVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIu c2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9 Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvZWRiXzkuMV9w bHVzL3ZpZXdfaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL3ZpZXdzL3NxbC9lZGJfOS4xX3BsdXMvdmlld19pZC5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjU2NDhjMAotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3cy9zcWwvZWRiXzkuMV9wbHVzL3ZpZXdfaWQuc3FsCkBAIC0wLDAgKzEs NCBAQAoreyM9PUJlbG93IHdpbGwgcHJvdmlkZSB2aWV3IGlkIGZvciBsYXN0 IGNyZWF0ZWQgdmlldz09I30KK3slIGlmIGRhdGEgJX0KK1NFTEVDVCBjLm9p ZCBGUk9NIHBnX2NsYXNzIGMgV0hFUkUgYy5yZWxuYW1lID0gJ3t7IGRhdGEu bmFtZSB9fSc7Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC9wcmVfOS4xL2FjbC5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3Fs L3ByZV85LjEvYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi40NmM1ZTVmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC9wcmVfOS4xL2FjbC5z cWwKQEAgLTAsMCArMSwzMiBAQAoreyM9PT09PT09PT09PT09PT09PT09PT09 PT09PT09R2V0IEFDTHM9PT09PT09PT09PT09PT09PT09PT09PT09I30KK3sl IGlmIHZpZCAlfQorU0VMRUNUCisgICAgJ2RhdGFjbCcgYXMgZGVmdHlwZSwg Q09BTEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycpIGdyYW50ZWUsCisgICAg Zy5yb2xuYW1lIGdyYW50b3IsIGFycmF5X2FnZyhwcml2aWxlZ2VfdHlwZSkg YXMgcHJpdmlsZWdlcywKKyAgICBhcnJheV9hZ2coaXNfZ3JhbnRhYmxlKSBh cyBncmFudGFibGUKK0ZST00KKyAgICAoU0VMRUNUCisgICAgICAgIGQuZ3Jh bnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50YWJsZSwKKyAgICAgICAgQ0FT RSBkLnByaXZpbGVnZV90eXBlCisgICAgICAgIFdIRU4gJ0RFTEVURScgVEhF TiAnZCcKKyAgICAgICAgV0hFTiAnSU5TRVJUJyBUSEVOICdhJworICAgICAg ICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4JworICAgICAgICBXSEVOICdT RUxFQ1QnIFRIRU4gJ3InCisgICAgICAgIFdIRU4gJ1RSSUdHRVInIFRIRU4g J3QnCisgICAgICAgIFdIRU4gJ1VQREFURScgVEhFTiAndycKKyAgICAgICAg RUxTRSAnVU5LTk9XTicKKyAgICAgICAgRU5EIEFTIHByaXZpbGVnZV90eXBl CisgICAgRlJPTQorICAgICAgICAoU0VMRUNUIHJlbGFjbCBGUk9NIHBnX2Ns YXNzIGNsCisgICAgICAgICAgICBMRUZUIE9VVEVSIEpPSU4gcGdfc2hkZXNj cmlwdGlvbiBkZXNjciBPTiAoCisgICAgICAgICAgICBjbC5vaWQ9ZGVzY3Iu b2Jqb2lkIEFORCBkZXNjci5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFz cykKKyAgV0hFUkUgY2wub2lkID0ge3sgdmlkIH19OjpPSUQgQU5EIHJlbGtp bmQgPSAndicKKyAgICAgICAgKSBhY2wsCisgICAgICAgIChTRUxFQ1QgKGQp LmdyYW50ZWUgQVMgZ3JhbnRlZSwgKGQpLmdyYW50b3IgQVMgZ3JhbnRvciwg KGQpLmlzX2dyYW50YWJsZSBBUyBpc19ncmFudGFibGUsCisgICAgICAgICAg ICAoZCkucHJpdmlsZWdlX3R5cGUgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICAg ICAgRlJPTSAoU0VMRUNUIGFjbGV4cGxvZGUocmVsYWNsKSBhcyBkIEZST00g cGdfY2xhc3MgY2wxIFdIRVJFIGNsMS5vaWQgPSB7eyB2aWQgfX06Ok9JRCkg YSkgZAorICAgICAgICApIGQKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5w Z19yb2xlcyBnIE9OIChkLmdyYW50b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpP SU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBndCBPTiAoZC5ncmFudGVlID0gZ3Qu b2lkKQorR1JPVVAgQlkgZy5yb2xuYW1lLCBndC5yb2xuYW1lCit7JSBlbmRp ZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL3ZpZXdzL3NxbC9wcmVfOS4xL2JhY2tlbmRfc3VwcG9ydC5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL3ByZV85 LjEvYmFja2VuZF9zdXBwb3J0LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5lM2Y4ZjRmCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC9wcmVfOS4x L2JhY2tlbmRfc3VwcG9ydC5zcWwKQEAgLTAsMCArMSwyMCBAQAorU0VMRUNU CisgICAgQ0FTRSBXSEVOIG5zcC5uc3BuYW1lIElOICgnc3lzJywgJ2Ribycs ICdpbmZvcm1hdGlvbl9zY2hlbWEnKSBUSEVOIHRydWUgRUxTRSBmYWxzZSBF TkQgQVMgZGJTdXBwb3J0CitGUk9NCisgICAgcGdfbmFtZXNwYWNlIG5zcAor V0hFUkUKKyAgICBuc3Aub2lkPXt7c2NpZH19OjppbnQKK0FORCAoCisgICAg KG5zcG5hbWUgPSAncGdfY2F0YWxvZycgQU5EIEVYSVNUUworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX2Ns YXNzIFdIRVJFIHJlbG5hbWUgPSAncGdfY2xhc3MnIEFORCByZWxuYW1lc3Bh Y2UgPSBuc3Aub2lkIExJTUlUIDEpKQorICAgIE9SIChuc3BuYW1lID0gJ3Bn YWdlbnQnIEFORCBFWElTVFMKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoU0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1l ID0gJ3BnYV9qb2InIEFORCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlU IDEpKQorICAgIE9SIChuc3BuYW1lID0gJ2luZm9ybWF0aW9uX3NjaGVtYScg QU5EIEVYSVNUUworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChTRUxFQ1QgMSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAndGFi bGVzJyBBTkQgcmVsbmFtZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAxKSkKKyAg ICBPUiAobnNwbmFtZSBMSUtFICdfJScgQU5EIEVYSVNUUworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX3By b2MgV0hFUkUgcHJvbmFtZT0nc2xvbnl2ZXJzaW9uJyBBTkQgcHJvbmFtZXNw YWNlID0gbnNwLm9pZCBMSU1JVCAxKSkKKykKK0FORAorICAgIG5zcG5hbWUg Tk9UIExJS0UgRSdwZ1xcdGVtcFxcJScKK0FORAorICAgIG5zcG5hbWUgTk9U IExJS0UgRSdwZ1xcdG9hc3RfdGVtcFxcJScKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvcHJlXzkuMS9j cmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXdzL3NxbC9wcmVfOS4xL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uMmFjMWUzYQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvcHJl XzkuMS9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsMjUgQEAKK3sjPT09PT09PT09 PT09PT09PT09PT09PT09PT09PUNyZWF0ZSBuZXcgdmlldz09PT09PT09PT09 PT09PT09PT09PT09PT0jfQoreyUgaWYgZGlzcGxheV9jb21tZW50cyAlfQor LS0gVmlldzoge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5h bWUpIH19CisKKy0tIERST1AgVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5z Y2hlbWEsIGRhdGEubmFtZSkgfX07CisKK3slIGVuZGlmICV9Cit7JSBpZiBk YXRhLm5hbWUgYW5kIGRhdGEuc2NoZW1hIGFuZCBkYXRhLmRlZmluaXRpb24g JX0KK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcge3sgY29ubnxxdElkZW50KGRh dGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19Cit7JSBpZiAoKGRhdGEuY2hlY2tf b3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbi5sb3dlcigpICE9ICdubycp IG9yIGRhdGEuc2VjdXJpdHlfYmFycmllcikgJX0KK1dJVEggKHslIGlmIGRh dGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbi5sb3dlcigp ICE9ICdubycgJX0KK2NoZWNrX29wdGlvbj17eyBkYXRhLmNoZWNrX29wdGlv biB9fXslIGVuZGlmICV9e3sgJywgJyBpZiBkYXRhLmNoZWNrX29wdGlvbiBh bmQKK2RhdGEuY2hlY2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25vJyBhbmQgZGF0 YS5zZWN1cml0eV9iYXJyaWVyIGVsc2UgJycgfX17JSBpZiBkYXRhLnNlY3Vy aXR5X2JhcnJpZXIgJX0KK3NlY3VyaXR5X2JhcnJpZXI9e3sgZGF0YS5zZWN1 cml0eV9iYXJyaWVyIH19eyUgZW5kaWYgJX0peyUgZW5kaWYgJX0gQVMKK3t7 IGRhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSB9fTsKK3slIGlmIGRhdGEu b3duZXIgJX0KKworQUxURVIgVEFCTEUge3sgY29ubnxxdElkZW50KGRhdGEu c2NoZW1hLCBkYXRhLm5hbWUpIH19CisgICAgT1dORVIgVE8ge3sgZGF0YS5v d25lciB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmNvbW1lbnQgJX0K K0NPTU1FTlQgT04gVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEs IGRhdGEubmFtZSkgfX0KKyAgICBJUyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRl cmFsIH19OworeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL3By ZV85LjEvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3cy9zcWwvcHJlXzkuMS9kZWxldGUuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmYzRlMDEKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mv c3FsL3ByZV85LjEvZGVsZXRlLnNxbApAQCAtMCwwICsxLDkgQEAKK3sjPT09 PT09PT09PT09PT09PT09PT09PT09PT09PURyb3AvQ2FzY2FkZSB2aWV3IGJ5 IG5hbWU9PT09PT09PT09PT09PT09PT09PT09PT09I30KK3slIGlmIHZpZCAl fQorU0VMRUNUIGMucmVsbmFtZSBBcyBuYW1lLCBuc3AubnNwbmFtZQorICAg IEZST00gcGdfY2xhc3MgYworICAgIExFRlQgSk9JTiBwZ19uYW1lc3BhY2Ug bnNwIG9uIGMucmVsbmFtZXNwYWNlID0gbnNwLm9pZAorICAgIFdIRVJFIGMu cmVsZmlsZW5vZGUgPSB7eyB2aWQgfX07Cit7JSBlbGlmIChuYW1lIGFuZCBu c3BuYW1lKSAlfQorRFJPUCBWSUVXIHt7IGNvbm58cXRJZGVudChuc3BuYW1l LCBuYW1lKSB9fSB7JSBpZiBjYXNjYWRlICV9IENBU0NBREUgeyUgZW5kaWYg JX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL3ByZV85LjEvZ3JhbnQuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC9wcmVf OS4xL2dyYW50LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi45ZmE3MTgxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXdzL3NxbC9wcmVfOS4xL2dyYW50LnNx bApAQCAtMCwwICsxLDE0IEBACit7Iz09PT09R3JhbnQgUGVybWlzc2lvbnMg dG8gVXNlciBSb2xlIG9uIFZpZXdzL1RhYmxlcz09PT0jfQoreyUgaW1wb3J0 ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUg aW1wb3J0ICdtYWNyb3MvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdF ICV9Cit7IyBXZSB3aWxsIGdlbmVyYXRlIFNlY3VyaXR5IExhYmVsIFNRTCB1 c2luZyBtYWNybyAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZv ciByIGluIGRhdGEuc2VjbGFiZWxzICV9Cit7eyBTRUNMQUJMRS5BUFBMWShj b25uLCAnVklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0 eV9sYWJlbCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlm IGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbCAl fQore3sgUFJJVklMRUdFLkFQUExZKGNvbm4sICdUQUJMRScsIHByaXYuZ3Jh bnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNjaGVtYSwgcHJpdi53aXRob3V0X2dy YW50LCBwcml2LndpdGhfZ3JhbnQpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvdmlld3Mvc3FsL3ByZV85LjEvcHJvcGVydGllcy5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL3ByZV85LjEv cHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uNjFjNGEwZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwvcHJlXzkuMS9wcm9wZXJ0 aWVzLnNxbApAQCAtMCwwICsxLDY1IEBACit7Iz09PT09PT09PT09PT09PT09 PT09PT09PT09PT1GZXRjaCBWaWV3IFByb3BlcnRpZXM9PT09PT09PT09PT09 PT09PT09PT09PT09I30KK3slIGlmICh2aWQgYW5kIGRhdGxhc3RzeXNvaWQp IG9yIHNjaWQgJX0KK1NFTEVDVCBjLm9pZCwgYy54bWluLCBjLnJlbG5hbWUg QVMgbmFtZSwgYy5yZWx0YWJsZXNwYWNlIEFTIHNwY29pZCwKKyAgICBjLnJl bGlzcG9wdWxhdGVkIEFTIGlzcG9wdWxhdGVkLCBzcGMuc3BjbmFtZSwgbnNw Lm5zcG5hbWUgYXMgc2NoZW1hLAorICAgIHBnX2dldF91c2VyYnlpZChjLnJl bG93bmVyKSBBUyBvd25lciwgZGVzY3JpcHRpb24gQVMgY29tbWVudCwKKyAg ICBwZ19nZXRfdmlld2RlZihjLm9pZCwgdHJ1ZSkgQVMgZGVmaW5pdGlvbiwK KyAgICB7Iz09PT09PT09PT09PT1DaGVja3MgaWYgaXQgaXMgc3lzdGVtIHZp ZXc9PT09PT09PT09PT09PT09I30KKyAgICB7JSBpZiB2aWQgYW5kIGRhdGxh c3RzeXNvaWQgJX0KKyAgICBDQVNFIFdIRU4ge3t2aWR9fSA8PSB7e2RhdGxh c3RzeXNvaWR9fSBUSEVOIFRydWUgRUxTRSBGYWxzZSBFTkQgQVMgc3lzdGVt X3ZpZXcsCisgICAgeyUgZW5kaWYgJX0KKyAgICB7Iz09PT09PT09PT09PT1D aGVja3MgaWYgaXQgaXMgbWF0ZXJpYWxpemVkIHZpZXc9PT09PT09PSN9Cisg ICAgQ0FTRSBXSEVOIGMucmVsa2luZCA9ICdtJyBUSEVOIFRydWUgRUxTRSBG YWxzZSBFTkQgQXMgbV92aWV3LAorICAgIChTRUxFQ1QgYXJyYXlfYWdnKHBy b3ZpZGVyIHx8ICc9JyB8fCBsYWJlbCkgRlJPTSBwZ19zZWNsYWJlbHMgc2wx IFdIRVJFIHNsMS5vYmpvaWQ9Yy5vaWQgQU5EIHNsMS5vYmpzdWJpZD0wKSBB UyBzZWNsYWJlbHMKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmco Yy5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2NoZWNrX29wdGlvbj0oW2Etel0q KScpIEFTIGNoZWNrX29wdGlvbgorICAgICwgc3Vic3RyaW5nKGFycmF5X3Rv X3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnc2VjdXJpdHlfYmFy cmllcj0oW2EtenwwLTldKiknKSBBUyBzZWN1cml0eV9iYXJyaWVyCisgICAg LCBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywn KSBGUk9NICdmaWxsZmFjdG9yPShbMC05XSopJykgQVMgZmlsbGZhY3Rvcgor ICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMs ICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9lbmFibGVkPShbYS16fDAtOV0qKScp IEFTIGF1dG92YWN1dW1fZW5hYmxlZAorICAgICwgc3Vic3RyaW5nKGFycmF5 X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1 bV92YWN1dW1fdGhyZXNob2xkPShbMC05XSopJykgQVMgYXV0b3ZhY3V1bV92 YWN1dW1fdGhyZXNob2xkCisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9fc3Ry aW5nKGMucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1 bV9zY2FsZV9mYWN0b3I9KFswLTldKlsuXVswLTldKiknKSBBUyBhdXRvdmFj dXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3IKKyAgICAsIHN1YnN0cmluZyhhcnJh eV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1 dW1fYW5hbHl6ZV90aHJlc2hvbGQ9KFswLTldKiknKSBBUyBhdXRvdmFjdXVt X2FuYWx5emVfdGhyZXNob2xkCisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9f c3RyaW5nKGMucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2Fu YWx5emVfc2NhbGVfZmFjdG9yPShbMC05XSpbLl1bMC05XSopJykgQVMgYXV0 b3ZhY3V1bV9hbmFseXplX3NjYWxlX2ZhY3RvcgorICAgICwgc3Vic3RyaW5n KGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0 b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheT0oWzAtOV0qKScpIEFTIGF1dG92 YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXkKKyAgICAsIHN1YnN0cmluZyhhcnJh eV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1 dW1fdmFjdXVtX2Nvc3RfbGltaXQ9KFswLTldKiknKSBBUyBhdXRvdmFjdXVt X3ZhY3V1bV9jb3N0X2xpbWl0CisgICAgLCBzdWJzdHJpbmcoYXJyYXlfdG9f c3RyaW5nKGMucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFjdXVtX2Zy ZWV6ZV9taW5fYWdlPShbMC05XSopJykgQVMgYXV0b3ZhY3V1bV9mcmVlemVf bWluX2FnZQorICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJl bG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2Fn ZT0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fZnJlZXplX21heF9hZ2UKKyAg ICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAn LCcpIEZST00gJ2F1dG92YWN1dW1fZnJlZXplX3RhYmxlX2FnZT0oWzAtOV0q KScpIEFTIGF1dG92YWN1dW1fZnJlZXplX3RhYmxlX2FnZQorICAgICwgc3Vi c3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKSBG Uk9NICdhdXRvdmFjdXVtX2VuYWJsZWQ9KFthLXp8MC05XSopJykgQVMgdG9h c3RfYXV0b3ZhY3V1bV9lbmFibGVkCisgICAgLCBzdWJzdHJpbmcoYXJyYXlf dG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpIEZST00gJ2F1dG92YWN1 dW1fdmFjdXVtX3RocmVzaG9sZD0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92 YWN1dW1fdmFjdXVtX3RocmVzaG9sZAorICAgICwgc3Vic3RyaW5nKGFycmF5 X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKSBGUk9NICdhdXRvdmFj dXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3I9KFswLTldKlsuXVswLTldKiknKSBB UyB0b2FzdF9hdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3IKKyAgICAs IHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcs JykgRlJPTSAnYXV0b3ZhY3V1bV9hbmFseXplX3RocmVzaG9sZD0oWzAtOV0q KScpIEFTIHRvYXN0X2F1dG92YWN1dW1fYW5hbHl6ZV90aHJlc2hvbGQKKyAg ICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMs ICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2ZhY3Rvcj0o WzAtOV0qWy5dWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fYW5hbHl6 ZV9zY2FsZV9mYWN0b3IKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJp bmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV92YWN1 dW1fY29zdF9kZWxheT0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1f dmFjdXVtX2Nvc3RfZGVsYXkKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19z dHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV92 YWN1dW1fY29zdF9saW1pdD0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1 dW1fdmFjdXVtX2Nvc3RfbGltaXQKKyAgICAsIHN1YnN0cmluZyhhcnJheV90 b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1 bV9mcmVlemVfbWluX2FnZT0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1 dW1fZnJlZXplX21pbl9hZ2UKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19z dHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9m cmVlemVfbWF4X2FnZT0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1f ZnJlZXplX21heF9hZ2UKKyAgICAsIHN1YnN0cmluZyhhcnJheV90b19zdHJp bmcodHN0LnJlbG9wdGlvbnMsICcsJykgRlJPTSAnYXV0b3ZhY3V1bV9mcmVl emVfdGFibGVfYWdlPShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9m cmVlemVfdGFibGVfYWdlCisgICAgLCBjLnJlbG9wdGlvbnMgQVMgcmVsb3B0 aW9ucywgdHN0LnJlbG9wdGlvbnMgQVMgdG9hc3RfcmVsb3B0aW9ucworICAg ICwgKENBU0UgV0hFTiBjLnJlbHRvYXN0cmVsaWQgPSAwIFRIRU4gZmFsc2Ug RUxTRSB0cnVlIEVORCkgQVMgaGFzdG9hc3R0YWJsZQorRlJPTSBwZ19jbGFz cyBjCisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX25hbWVzcGFjZSBuc3Agb24g bnNwLm9pZCA9IGMucmVsbmFtZXNwYWNlCisgICAgTEVGVCBPVVRFUiBKT0lO IHBnX3RhYmxlc3BhY2Ugc3BjIG9uIHNwYy5vaWQ9Yy5yZWx0YWJsZXNwYWNl CisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAo ZGVzLm9iam9pZD1jLm9pZCBhbmQgZGVzLm9ianN1YmlkPTAgQU5EIGRlcy5j bGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykKKyAgICBMRUZUIE9VVEVS IEpPSU4gcGdfY2xhc3MgdHN0IE9OIHRzdC5vaWQgPSBjLnJlbHRvYXN0cmVs aWQKKyAgICAgICAgV0hFUkUgKChjLnJlbGhhc3J1bGVzIEFORCAoRVhJU1RT ICgKKyAgICAgICAgICAgIFNFTEVDVCByLnJ1bGVuYW1lIEZST00gcGdfcmV3 cml0ZSByCisgICAgICAgICAgICAgICAgV0hFUkUgKChyLmV2X2NsYXNzID0g Yy5vaWQpCisgICAgICAgICAgICAgICAgICAgIEFORCAoYnBjaGFyKHIuZXZf dHlwZSkgPSAnMSc6OmJwY2hhcikpICkpKSBPUiAoYy5yZWxraW5kID0gJ3Yn OjpjaGFyKSkKK3slIGlmICh2aWQgYW5kIGRhdGxhc3RzeXNvaWQpICV9Cisg ICAgICAgIEFORCBjLm9pZCA9IHt7dmlkfX06Om9pZAoreyUgZWxpZiBzY2lk ICV9CisgICAgICAgIEFORCBjLnJlbG5hbWVzcGFjZSA9IHt7c2NpZH19Ojpv aWQgT1JERVIgQlkgYy5yZWxuYW1lCit7JSBlbmRpZiAlfQorCit7JSBlbGlm IHR5cGUgPT0gJ3JvbGVzJyAlfQorU0VMRUNUIHByLnJvbG5hbWUgRlJPTSBw Z19yb2xlcyBwciBXSEVSRSBwci5yb2xjYW5sb2dpbiBPUkRFUiBCWSBwci5y b2xuYW1lCisKK3slIGVsaWYgdHlwZSA9PSAnc2NoZW1hcycgJX0KK1NFTEVD VAorICAgIG5zcC5uc3BuYW1lCitGUk9NCisgICAgcGdfbmFtZXNwYWNlIG5z cAorV0hFUkUKKyAgICAobnNwLm5zcG5hbWUgTk9UIExJS0UgRSdwZ1xcXyUn CisgICAgICAgIEFORCBuc3AubnNwbmFtZSAhPSAnaW5mb3JtYXRpb25fc2No ZW1hJykKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL3ByZV85LjEvdXBkYXRlLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9zcWwv cHJlXzkuMS91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjE4NjcwMzgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL3ByZV85LjEvdXBk YXRlLnNxbApAQCAtMCwwICsxLDgxIEBACit7Iz09PT09PT09PT09PT09PT09 PT09PT09PT09PT1VcGRhdGUgVmlldz09PT09PT09PT09PT09PT09PT09PT09 PT0jfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBT RUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvcHJpdmlsZWdlLm1hY3Jv cycgYXMgUFJJVklMRUdFICV9Cit7JSBpZiBkYXRhICV9Cit7JSBzZXQgdmll d19uYW1lID0gZGF0YS5uYW1lIGlmIGRhdGEubmFtZSBlbHNlIG9fZGF0YS5u YW1lICV9Cit7JSBzZXQgdmlld19zY2hlbWEgPSBkYXRhLnNjaGVtYSBpZiBk YXRhLnNjaGVtYSBlbHNlIG9fZGF0YS5zY2hlbWEgJX0KK3slIHNldCBkZWYg PSBkYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7JykgaWYgZGF0YS5kZWZpbml0 aW9uICV9Cit7JSBpZiBkYXRhLm5hbWUgYW5kIGRhdGEubmFtZSAhPSBvX2Rh dGEubmFtZSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQob19kYXRh LnNjaGVtYSwgb19kYXRhLm5hbWUpIH19CisgICAgUkVOQU1FIFRPIHt7IGNv bm58cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUgZW5kaWYgJX0KK3slIGlm IGRhdGEuc2NoZW1hIGFuZCBkYXRhLnNjaGVtYSAhPSBvX2RhdGEuc2NoZW1h ICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudChvX2RhdGEuc2NoZW1h LCB2aWV3X25hbWUgKSB9fQorICAgIFNFVCBTQ0hFTUEge3sgZGF0YS5zY2hl bWEgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5vd25lciBhbmQgZGF0 YS5vd25lciAhPSBvX2RhdGEub3duZXIgJX0KK0FMVEVSIFRBQkxFIHt7IGNv bm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIE9X TkVSIFRPIHt7IGRhdGEub3duZXIgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYg ZGVmIGFuZCBkZWYgIT0gb19kYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7Jykg JX0KK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcge3sgY29ubnxxdElkZW50KHZp ZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19Cit7JSBpZiAoZGF0YS5jaGVja19v cHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9IG9fZGF0YS5jaGVja19v cHRpb24pCisgICAgb3IgKGRhdGEuc2VjdXJpdHlfYmFycmllciBhbmQgZGF0 YS5zZWN1cml0eV9iYXJyaWVyICE9IG9fZGF0YS5zZWN1cml0eV9iYXJyaWVy KSAlfQorICAgIFdJVEggKHslIGlmIChkYXRhLmNoZWNrX29wdGlvbiBhbmQg ZGF0YS5jaGVja19vcHRpb24gIT0gJ25vJykgJX1jaGVja19vcHRpb249e3sg ZGF0YS5jaGVja19vcHRpb24gfX17JSBlbmRpZiAlfXt7JywgJyBpZiBkYXRh LmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gJ25vJyBh bmQgZGF0YS5zZWN1cml0eV9iYXJyaWVyIH19eyUgaWYgZGF0YS5zZWN1cml0 eV9iYXJyaWVyICV9c2VjdXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5 X2JhcnJpZXIgfX17JSBlbmRpZiAlfSkKK3slIGVuZGlmICV9CisgICAgQVN7 eyBkZWYgfX07Cit7JSBlbHNlICV9Cit7JSBpZiAoZGF0YS5zZWN1cml0eV9i YXJyaWVyIGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgIT0gIG9fZGF0YS5z ZWN1cml0eV9iYXJyaWVyKSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRl bnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBTRVQgKHNlY3Vy aXR5X2JhcnJpZXI9e3sgZGF0YS5zZWN1cml0eV9iYXJyaWVyIH19KTsKK3sl IGVuZGlmICV9Cit7JSBpZiAoZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEu Y2hlY2tfb3B0aW9uICE9IG9fZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEu Y2hlY2tfb3B0aW9uICE9ICdubycpICV9CitBTFRFUiBWSUVXIHt7IGNvbm58 cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIFNFVCAo Y2hlY2tfb3B0aW9uPXt7IGRhdGEuY2hlY2tfb3B0aW9uIH19KTsKK3slIGVs aWYgKGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAh PSBvX2RhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiA9 PSAnbm8nKSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19z Y2hlbWEsIHZpZXdfbmFtZSkgfX0gUkVTRVQgKGNoZWNrX29wdGlvbik7Cit7 JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuY29tbWVudCBh bmQgZGF0YS5jb21tZW50ICE9IG9fZGF0YS5jb21tZW50ICV9CitDT01NRU5U IE9OIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25h bWUpIH19CisgICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsK K3slIGVuZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxs IGNoYW5nZSBwcml2aWxlZ2VzICN9Cit7JSBpZiBkYXRhLmRhdGFjbCAlfQor eyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJp diBpbiBkYXRhLmRhdGFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxFR0UuUkVT RVRBTEwoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUs IGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQor eyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJp diBpbiBkYXRhLmRhdGFjbC5jaGFuZ2VkICV9Cit7eyBQUklWSUxFR0UuUkVT RVRBTEwoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUs IGRhdGEuc2NoZW1hKSB9fQore3sgUFJJVklMRUdFLkFQUExZKGNvbm4sICdU QUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNjaGVtYSwg cHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQpIH19Cit7JSBl bmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEu ZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5hZGRlZCAl fQore3sgUFJJVklMRUdFLkFQUExZKGNvbm4sICdUQUJMRScsIHByaXYuZ3Jh bnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNjaGVtYSwgcHJpdi53aXRob3V0X2dy YW50LCBwcml2LndpdGhfZ3JhbnQpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmICV9Cit7JSBlbmRpZiAlfQoreyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVs b3cgd2lsbCBjaGFuZ2UgU2VjdXJpdHkgTGFiZWwgI30KK3slIGlmIGRhdGEu c2VjbGFiZWxzIGlzIG5vdCBub25lIGFuZCBkYXRhLnNlY2xhYmVsc3xsZW5n dGggPiAwICV9Cit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMg JX0KK3slIGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVs cy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVs cy5kZWxldGVkICV9Cit7eyBTRUNMQUJMRS5EUk9QKGNvbm4sICdWSUVXJywg ZGF0YS5uYW1lLCByLnByb3ZpZGVyKSB9fQoreyUgZW5kZm9yICV9Cit7JSBl bmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xh YmVscy5hZGRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJl bHMuYWRkZWQgJX0KK3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdWSUVXJywg ZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9fQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGlu IHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAl fQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KK3t7IFNFQ0xB QkxFLkFQUExZKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVy LCByLnNlY3VyaXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlld3Mvc3FsL3ByZV85 LjEvdmlld19pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0 ZXMvdmlld3Mvc3FsL3ByZV85LjEvdmlld19pZC5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjU2NDhjMAotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3cy9z cWwvcHJlXzkuMS92aWV3X2lkLnNxbApAQCAtMCwwICsxLDQgQEAKK3sjPT1C ZWxvdyB3aWxsIHByb3ZpZGUgdmlldyBpZCBmb3IgbGFzdCBjcmVhdGVkIHZp ZXc9PSN9Cit7JSBpZiBkYXRhICV9CitTRUxFQ1QgYy5vaWQgRlJPTSBwZ19j bGFzcyBjIFdIRVJFIGMucmVsbmFtZSA9ICd7eyBkYXRhLm5hbWUgfX0nOwor eyUgZW5kaWYgJX0K --047d7b2e3fe6c1bc5c052cffdfe9 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 --047d7b2e3fe6c1bc5c052cffdfe9--