Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b2k3T-0000wH-Ci for pgadmin-hackers@arkaria.postgresql.org; Tue, 17 May 2016 18:49:19 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1b2k3S-0005S9-UB for pgadmin-hackers@arkaria.postgresql.org; Tue, 17 May 2016 18:49:19 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1b2YPP-0008Be-Ck for pgadmin-hackers@postgresql.org; Tue, 17 May 2016 06:23:11 +0000 Received: from mail-wm0-x22f.google.com ([2a00:1450:400c:c09::22f]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1b2YPK-0006u6-7j for pgadmin-hackers@postgresql.org; Tue, 17 May 2016 06:23:10 +0000 Received: by mail-wm0-x22f.google.com with SMTP id a17so12160001wme.0 for ; Mon, 16 May 2016 23:23:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=ZLE6ndrrgOxHNWEZ9CoiHlQHGSChq2PWv1lW3nYV1VU=; b=hc9z29RLRXkieZGWVBrFz7x+aFq728Dlw206APRWk40hewLLN5sBZ8j/ZIPLCm1eXe TXgWTBoogBTHM1lFByTmWNmr+BzvZ77jKf6TDflnz0MdeZhpVUlCZq7pafz+Qh7Y+R4u C8eErhrxc7iatz06rm/UkvAx0EYnUzF+4lQuxZxz0JjJk/Xq7bmSHCvZZLA9SflZoied We9eUjjFs4klVQljf25To+eBBr0xx0QWB3xkd5y2T83ZYh3nP9sgsPFwqrka9dU0QoUr fz+odpHte1Cxp9iHRDgB1hbg0SKs8E4pbB/CucxpzR0werQ+SW0bCEWetIrZM7D2uvee Nzig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=ZLE6ndrrgOxHNWEZ9CoiHlQHGSChq2PWv1lW3nYV1VU=; b=LdiKXTsYD7S89lvB/zc+JHQQiYPXRN9JxLZT5Y4Q5Qgs0rLTffJKGfEl5Uprz2binS UNwRssvPSgmRIaDpIFa33Bpoi1CtvPlsyeIRQR7pqeRPvJl+bMd7rwOC6hxj96/r2fMd /aAMBmrI8G7MfoTKEaVeafMtfUHySRb6VPxXYf6uCpSe5WNiFvHAFwPwuDkO+fxCM9Nj tRw0GNa2HsqECdv9EiTIp0QDD3f7EQIN2jI+hUB/FmDJnFaBscmerLvGznS13K3UcP06 jQy3wyxNRCoyWzTsd38rZzx0bA2dCApt2aUczZT+SH/wdpWsy6BtYesz6iGRFa5Ewf6t 9DbA== X-Gm-Message-State: AOPr4FXiZGdLXExlncLj0jbfq6guy9sSTz3vsKL/YMDJKszvbzjsgOwA1ZN0SoMHYKvCWZK1/YNJD0hC5Hfe1jUH X-Received: by 10.28.133.10 with SMTP id h10mr21945463wmd.49.1463466185251; Mon, 16 May 2016 23:23:05 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.14.212 with HTTP; Mon, 16 May 2016 23:22:35 -0700 (PDT) In-Reply-To: References: From: Surinder Kumar Date: Tue, 17 May 2016 11:52:35 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch]: View and Materialised View Nodes To: Akshay Joshi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a114420221d031b053303c671 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 --001a114420221d031b053303c671 Content-Type: multipart/alternative; boundary=001a114420221d0317053303c66f --001a114420221d0317053303c66f Content-Type: text/plain; charset=UTF-8 Hi, PFA updated patch. Please find inline comments. On Mon, May 16, 2016 at 1:56 PM, Akshay Joshi wrote: > Hi > > Below are my review comments: > > - Definition box on the View dialogue not expanded as needed. It > should expand on resize. > > removed the fixed height of definition box, but its height is dependent on the number of sql code lines in it. > > - > - "Do Instead" on Rule node under View/M-View node not working. Unable > to generate proper SQL. > > Done > > - I am still able to drop columns under view/mview node. > > Done > > - "Save" button is enable by default when user opens Materialised View > dialog. > > I checked it is not reproducible. > > On Fri, May 13, 2016 at 11:44 PM, Surinder Kumar < > surinder.kumar@enterprisedb.com> wrote: > >> Hi, >> >> Please find updated patch with fixed review comments: >> >> Most of the issues occurred because some code was missing in tables >> subnodes patch. >> Now I have shared the code related to table subnodes with harshal to >> integrate in tables patch. >> >> This patch has dependency on tables patch. >> >> On Tue, May 10, 2016 at 7:46 PM, Akshay Joshi < >> akshay.joshi@enterprisedb.com> wrote: >> >>> Hi Surinder >>> >>> On Fri, Apr 29, 2016 at 8:07 PM, Surinder Kumar >> enterprisedb.com> wrote: >>> >>>> Hi, >>>> >>>> >>>> PFA patch for View and Materialised View Nodes. >>>> This patch is dependent on *tables node* and its subnodes patch. >>>> Please test this patch once latest tables node patch is submitted. >>>> >>>> I have merged one other patch: >>>> *"Don't show Security group of node if it is under Catalogs"* >>>> >>>> http://www.postgresql.org/message-id/CAM5-9D8RNZXRG0ygvuRqf2wQAEnye-rqBHSrwcr34dnLCemy3w@mail.gmail.com >>>> >>>> Below are the fix for the review comments given by Dave: >>>> >>>> *Views*: >>>> >>>> - Please add sqlCreateHelp and sqlAlterHelp properties to all nodes. >>>> *I have added these in View and Materialised View. * >>>> >>>> - Some of the SQL templates have inconsistent indenting (i.e. not 4 >>>> chars), e.g. >>>> >>>> CREATE OR REPLACE VIEW pem.avail_agents >>>> AS >>>> ... >>>> *Fixed* >>>> >>>> - When creating any object, the Owner, Schema and Tablespace should >>>> have default values. >>>> *Fixed* >>>> >>>> - Property labels should only have the first word capitalised, e.g. >>>> >>>> Security barrier >>>> Check options >>>> *Fixed* >>>> >>>> - The Definition box on the View dialogue should start at a single >>>> line and expand as needed - see the Function dialogue >>>> *Fixed* >>>> >>> >>> Still reproducible. >>> >>>> >>>> >>>> - The Cancel button doesn't work on the View dialog. Please check them >>>> all. >>>> *In latest code pull, It **seems to be** fixed. not reproducible at my >>>> end.* >>>> >>>> - The Save button doesn't close the View dialog, nor does it add the >>>> tree node. >>>> *In latest code pull, It **seems to be** fixed. not reproducible at my >>>> end.* >>>> >>>> - Dependencies and Dependents don't show icons, and have very tall >>>> rows. This issue likely comes from elsewhere as I'm seeing it on other >>>> object types as well. >>>> Yes, it is general, previously images were visible. It is regression of >>>> some commit. I will check it. >>>> >>>> - Reverse engineered SQL for a column on a view is shown like: >>>> >>>> -- Column: id -- ALTER TABLE pem.avail_agents >>>> DROP COLUMN id; ALTER TABLE pem.avail_agents ADD COLUMN id >>>> integer(4); >>>> >>>> (yes, it's displaying the HTML tags) >>>> *I pulled the latest code, but it is not reproducible.* >>>> >>>> - The ACL property should be called Privileges and be in the Security >>>> group (see functions, sequences etc). >>>> *Fixed* >>>> >>>> - The Schema should not be shown in "Properties" view. >>>> *Fixed* >>>> >>>> - Fields in the General section should be in the order: Name, OID, >>>> Owner, System xxx? (where appropriate), Comment >>>> *I have checked that In view Fields (Name, Owner, Schema & Comment) are >>>> in this order.* >>>> *I didn't got your point. Can you please give and example, if possible.* >>>> >>> >>> Not Fixed yet. >>> >> Now it is fixed. >> >>> >>>> >>>> >>>> *Materialised Views:* >>>> - Selecting an MV results in: >>>> >>>> 2016-04-14 09:34:58,863: ERROR pgadmin: Exception on >>>> /browser/materialized_view/obj/1/1/24587/27424/107612 [GET] >>>> Traceback (most recent call last): >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >>>> packages/flask/app.py", >>>> line 1817, in wsgi_app >>>> response = self.full_dispatch_request() >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >>>> packages/flask/app.py", >>>> line 1477, in full_dispatch_request >>>> rv = self.handle_user_exception(e) >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >>>> packages/flask/app.py", >>>> line 1381, in handle_user_exception >>>> reraise(exc_type, exc_value, tb) >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >>>> packages/flask/app.py", >>>> line 1475, in full_dispatch_request >>>> rv = self.dispatch_request() >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >>>> packages/flask/app.py", >>>> line 1461, in dispatch_request >>>> return self.view_functions[rule.endpoint](**req.view_args) >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >>>> packages/flask/views.py", >>>> line 84, in view >>>> return self.dispatch_request(*args, **kwargs) >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/utils.py", line >>>> 233, in dispatch_request >>>> return method(*args, **kwargs) >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_ >>>> groups/servers/databases/schemas/views/__init__.py", >>>> line 185, in wrap >>>> return f(*args, **kwargs) >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_ >>>> groups/servers/databases/schemas/views/__init__.py", >>>> line 1226, in properties >>>> self.conn, result, 'table') >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_ >>>> groups/servers/databases/schemas/utils.py", >>>> line 357, in parse_vacuum_data >>>> vacuum_fields = render_template("vacuum_ >>>> settings/vacuum_fields.json") >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >>>> packages/flask/templating.py", >>>> line 127, in render_template >>>> return _render(ctx.app.jinja_env.get_or_select_template(template_ >>>> name_or_list), >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >>>> packages/jinja2/environment.py", >>>> line 830, in get_or_select_template >>>> return self.get_template(template_name_or_list, parent, globals) >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >>>> packages/jinja2/environment.py", >>>> line 791, in get_template >>>> return self._load_template(name, self.make_globals(globals)) >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >>>> packages/jinja2/environment.py", >>>> line 765, in _load_template >>>> template = self.loader.load(self, name, globals) >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >>>> packages/jinja2/loaders.py", >>>> line 113, in load >>>> source, filename, uptodate = self.get_source(environment, name) >>>> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >>>> packages/flask/templating.py", >>>> line 64, in get_source >>>> raise TemplateNotFound(template) >>>> TemplateNotFound: vacuum_settings/vacuum_fields.json >>>> >>>> *It seems this patch* >>>> >>>> http://www.postgresql.org/message-id/CAM5-9D-4DYgMMHFc5mzDDdK++h7XNvkiA5ojBbXi5sTHmecGCA@mail.gmail.com >>>> *wasn't applied properly. Now this patch is sent with tables patch.* >>>> >>>> - When creating an MV, an error is immediately shown telling me to >>>> specify a name. We do not normally show such errors until the field >>>> loses focus. >>>> *Now its fixed.* >>>> >>> >>> Not fixed. Issue is reproducible. >>> >>>> >>>> >>>> - No default owner is shown in create mode. >>>> *Fixed.* >>>> >>>> - "Please enter function definition." is shown as an error on the >>>> definition field. >>>> *It triggers this error message as it is mandatory.* >>>> >>>> - The Definition field is missing a label. If relying on the tab title >>>> to be the label, the control should fill the tab (as with Security >>>> options etc). >>>> *Fixed.* >>>> >>>> - No default tablespace is shown. >>>> *Fixed* >>>> >>>> - If I enable custom auto-vacuum, there is no way to add a row to >>>> specify options. >>>> *You can enable custom auto vacuum field and add new values in the auto >>>> vacuum settings.* >>>> >>>> - If I specify a comment on an MV, I get "ERROR: "mv_pg_tables" is not >>>> a view" >>>> *For some reason tablespace name was missing in generated sql.* >>>> >>> >>> Not Fixed. Wrong sql generated "COMMENT ON VIEW ..." instead of >>> "COMMENT ON MATERIALIZED VIEW ..." >>> >> Fixed >> >>> >>>> >>>> - Save/Cancel buttons not working as expected (like other objects) >>>> *In latest code pull, It **seems to be** fixed. not reproducible at my >>>> end.* >>>> >>> >>> >>> Apart from above below are my review comments >>> >>> *Views*:- >>> >>> - As per pgAdmin3 "indexes" node should not be listed under Views. >>> >>> Done >> >>> >>> - SQL not generated when changing the value of "Event" and "Do >>> Instead" for Rule node under View node. >>> >>> Done >> >>> >>> - Changing the "Event" in Rule node not working. >>> >>> Done >> >>> >>> - As per pgAdmin3 user can't be able to create columns inside View >>> node. >>> >>> Done >> >>> >>> - User can't be able to delete/drop columns and system generated >>> Rule's, Trigger's etc.. >>> >>> >> Done >> >>> >>> - Found one issue when changing value of "Security Barrier" from >>> "Yes" to "No" it is not reflected on GUI when we open the dialog >>> again while in backend value is updated, but on GUI it is showing >>> "Yes". >>> >>> Done >> >>> >>> - Create -> Trigger menu is missing when any view node is selected. >>> >>> Done >> >>> >>> *Materialized View:-* >>> >>> - *As per pgAdmin3 user can't be able to create columns inside >>> Materialized View node.* >>> >>> Done >> >>> >>> - >>> - >>> *User can't be able to delete/drop columns and system generated Rule's, >>> Trigger's etc. * >>> >>> I have checked in pgAdmin3 that delete/drop option specific to rules has >> 2 cases: >> 1. If rule is system rule, user can't delete/drop it. >> 2. If not system rule, it can drop dropped. >> Done >> >>> >>> - >>> - Create -> Trigger/Rule/Index menu is missing when any materialized >>> view node is selected. >>> >>> Done >> >>> >>> - In pgAdmin3 we have two more refresh options "Refresh data" and >>> "Refresh data concurrently" which is missing. >>> >>> Done >> >>> >>> - "Custom Auto Vaccum" for Table and Toast Table not working. >>> >>> Done >> >>> >>> >>>> >>>> Thanks, >>>> Surinder Kumar >>>> >>>> >>>> >>>> -- >>>> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) >>>> To make changes to your subscription: >>>> http://www.postgresql.org/mailpref/pgadmin-hackers >>>> >>>> >>> >>> >>> -- >>> *Akshay Joshi* >>> *Principal Software Engineer * >>> >>> >>> >>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>> >> >> > > > -- > *Akshay Joshi* > *Principal Software Engineer * > > > > *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* > --001a114420221d0317053303c66f Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

PFA updated patch.
Please= find inline comments.

On Mon, May 16, 2016 at 1:56 PM, Akshay Joshi &l= t;akshay= .joshi@enterprisedb.com> wrote:
Hi=C2=A0

Below are my review comme= nts:=C2=A0
  • Definition box = on the View dialogue not=C2=A0expande= d as needed. It should expand on resize.
removed the fixed height of definition box, but its height is d= ependent on the number of sql code lines in it.=C2=A0

  • "Do Instead" on Rule node under View/M-View node no= t working. Unable to generate proper SQL.
Done=C2=A0
  • I am still able to drop colum= ns under view/mview node.
Don= e=C2=A0
  • &= quot;Save" button is enable by default when user opens=C2=A0Materialis= ed=C2=A0View dialog. =C2=A0
I checke= d it is not reproducible.=C2=A0

On Fri, May 13= , 2016 at 11:44 PM, Surinder Kumar <surinder.kumar@enterpris= edb.com> wrote:
Hi,

Please find updated patch with fixed review co= mments:

Most of the issues occurred because some c= ode was missing in tables subnodes patch.
Now I have shared the c= ode related to table subnodes with harshal to integrate in tables patch.

This patch has dependency on tables patch.

On Tue= , May 10, 2016 at 7:46 PM, Akshay Joshi <akshay.joshi@enterpri= sedb.com> wrote:
Hi Surinder

On Fri, Apr 29, 2016 at 8:07 PM, Surinder Ku= mar <surinder.kumar@e= nterprisedb.com> wrote:
Hi,


PFA patch for View and Mater= ialised View Nodes.
This patch is dependent on=C2=A0tables nod= e=C2=A0and its subnodes=C2=A0patch.
Please test this p= atch once latest tables node patch is submitted.

I= have merged one other patch:
"Don't show = Security group of node if it is under Catalogs"

Below are the fix for the review com= ments given by Dave:

Views:

- Please add sqlCreateHelp and sqlAlterHelp properties to all nodes.
I have added these in View and Materialised View.=C2= =A0

- Some of the SQL templates have inconsistent indenting (i.e. not 4 = chars), e.g.

CREATE OR REPLACE VIEW pem.avail_agents
=C2=A0AS
=C2=A0...
Fixed

- When creating any obje= ct, the Owner, Schema and Tablespace should
have default values.
Fixed

= - Property labels should only have the first= word capitalised, e.g.

=C2=A0 Security barrier<= br style=3D"font-size:13px">=C2=A0 Check opt= ions
Fixed

- The Definition box= on the View dialogue should start at a single
line and expand as needed - see the F= unction dialogue
Fixed

=C2=A0 =C2=A0Still reproducible. =C2=A0<= /div>


- The Cance= l button doesn't work on the View dialog. Please check them all.=
In latest code pull, It=C2=A0seems to b= e=C2=A0fixed. not=C2=A0reproducible=C2=A0at my end.

- The S= ave button doesn't close the View dialog, nor does it add the tree node= .
In latest code pull, It=C2= =A0seems to be=C2=A0fixed. not=C2=A0reproducibl= e=C2=A0at my end.

- Dependencies and Dependents don't show icons, and= have very tall
rows. This issue likely comes from elsewhere as I'm seeing it on= other
ob= ject types as well.
Yes, it= is general, previously images were visible. It is regression of some commi= t. I will check it.

- Reverse engineered SQL for = a column on a view is shown like:

<html><head&= gt;</head><body>-- Column: id -- ALTER TABLE pem.avail_agents
DROP COLUM= N id; ALTER TABLE pem.avail_agents ADD COLUMN id
integer(4);</body></html&g= t;

(yes, it's displaying the HTML tags)
I pulled the latest code, but it is not repro= ducible.

- The ACL property should be called Privileges and be in the Security<= /span>
group (se= e functions, sequences etc).
Fixed

- The Schema should not be shown in "Properties" view.
Fixed

- Fields in the General sectio= n should be in the order: Name, OID,
Owner, System xxx? (where appropriate), Comment=
I have checked that In view Fields (Name, Owner= , Schema & Comment) are in this order.
I didn&#= 39;t got your point. Can you please give and example, if possible.<= /div>

=C2=A0 =C2=A0Not Fixed y= et.=C2=A0
Now it is fi= xed.=C2=A0


Materialised Views:

- Selecting an MV results in= :

2016-04-14 09:34:58,863: ERROR pgadmin: Exception on<= /span>
/browser/= materialized_view/obj/1/1/24587/27424= /107612 [GET]
Traceback (most recent call last):
= =C2=A0 File "/Users/dpage/.virtualenvs/= pgadmin4/lib/python2.7/site-packages/flask/app.py",

line 1817, in wsgi_app
=C2=A0 =C2= =A0 response =3D self.full_dispatch_request()
=C2=A0 File "/Users/dpage/.virtua= lenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py",
line 1477, in full_d= ispatch_request
=C2=A0 =C2=A0 rv =3D self.handle_user_exception(e)
=C2=A0 File "/Users= /dpage/.virtualenvs/pgadmin4/lib/pyth= on2.7/site-packages/flask/app.py"= ;,
line 1= 381, in handle_user_exception
=C2=A0 =C2=A0 reraise(exc_type, exc_value, tb)<= br style=3D"font-size:13px">=C2=A0 File &quo= t;/Users/dpage/.virtualenvs/pgadmin4/= lib/python2.7/site-packages/flask/app= .py",
line 1475, in full_dispatch_request
=C2=A0 =C2=A0 rv =3D self.dispatch_request()
=C2=A0 Fil= e "/Users/dpage/.virtualenvs/pga= dmin4/lib/python2.7/site-packages/fla= sk/app.py",
line 1461, in dispatch_request
<= span style=3D"font-size:13px">=C2=A0 =C2=A0 return self.view_functions[rule= .
endpoint](**req.view_args)=C2=A0 File "= /Users/dpage/.virtualenvs/pgadmin4/li= b/python2.7/site-packages/flask/views= .py",
line 84, in view
=C2=A0 =C2=A0 return self.dispatch_request(*args, **kwargs)
=C2=A0 File &q= uot;/Users/dpage/git/pgadmin4/web/pga= dmin/browser/utils.py", line
233, in dispatch_request
=C2=A0 =C2=A0 return method(*args,= **kwargs)
=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_g= roups/servers/databases/schemas/views= /__init__.py",
line 185, in wrap
=C2=A0 =C2=A0 return f(*args, **kwargs)
=C2=A0 File "/Users= /dpage/git/pgadmin4/web/pgadmin/brows= er/server_groups/servers/databases/schemas/views/__init__.py",=
line 1226, in p= roperties
=C2=A0 =C2=A0 self.conn, result, 'table')
=C2=A0 File "/Users/dpage/gi= t/pgadmin4/web/pgadmin/browser/server= _groups/servers/databases/schemas/utils.py",

line 357, in parse_vacuum_data
=C2=A0 =C2= =A0 vacuum_fields =3D render_template("vacuum_settings/vacuum_fields.json")
=C2=A0 File "/Users/dpage/.vir= tualenvs/pgadmin4/lib/python2.7/site-= packages/flask/templating.py",
line 127, = in render_template
=C2=A0 =C2=A0 return _render(ctx.app.jinja_env.get_or_select_template(template_name_or_list),
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
packages/jinja2/environment.py",
line 830, in get_or_select_template
=C2=A0 =C2=A0 return self.get_templa= te(template_name_or_list, parent, glo= bals)
=C2= =A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/jinja2/environment.py",
line 791, in = get_template
=C2=A0 =C2=A0 return self._load_template(name, self.make_globals(global= s))
=C2= =A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/jinja2/environment.py",
line 765, in = _load_template
=C2=A0 =C2=A0 template =3D self.loader.load(self, name, globals)
=C2=A0 File &= quot;/Users/dpage/.virtualenvs/pgadmi= n4/lib/python2.7/site-packages/jinja2= /loaders.py",
line 113, in load
=C2=A0 =C2=A0 source, filename, uptodate =3D self.get_s= ource(environment, name)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/templating.py",
line 64, in get_source
=C2=A0 =C2=A0 raise = TemplateNotFound(template)
TemplateNotFound: vacuum_settings/vacuum_fields.= json
<= i>
It seems this patch
<= i>wasn't applied properly. Now this patch is sent with tables patch.

- When creating an MV, an error is immediately shown telling me to<= br style=3D"font-size:13px">specify a name. = We do not normally show such errors until the field
loses focus.
Now its fixed.

=C2=A0 =C2=A0 Not fixed. Issue is reproducible. =C2=A0
<= blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l= eft-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);pa= dding-left:1ex">


- No default owner is s= hown in create mode.
Fixed.

- &= quot;Please enter function definition." is shown as an error on the
definition = field.
It triggers this error message as it is manda= tory.

- The Definition field is missing a label. If re= lying on the tab title
to be the label, the control should fill the tab (as with Sec= urity
opt= ions etc).
Fixed.

- No default = tablespace is shown.
Fixed

- If= I enable custom auto-vacuum, there is no way to add a row to
specify options.
You can enable custom auto vacuum field and add new value= s in the auto vacuum settings.

- If I specify a commen= t on an MV, I get "ERROR: "mv_pg_tables" is not a view"=
For some reason tablespace name was missing in gene= rated sql.

=C2= =A0 =C2=A0Not Fixed. Wrong sql generated "COMMENT ON VIEW= ..." instead of "COMMENT ON MATERIALIZED VIEW ..."
Fixed=C2=A0


- Save/Can= cel buttons not working as expected (like other objects)
In latest code pull, It=C2=A0seems to be<= b>=C2=A0fixed. not=C2=A0reproducible=C2=A0at my end.


=C2=A0 =C2=A0Apart from= above below are my review comments=C2=A0

=C2=A0 = =C2=A0Views:-=C2=A0
  • As per pgAdmin3 "indexes&= quot; node should not be listed under Views.
Done=C2=A0
    SQL not generated when changing the value of "Event"= ; and "Do Instead" for Rule node under View node.
=
Done=C2=A0
  • Changing the "Event" in Rule node not working.
Done=C2=A0
  • As per pgAdmin3 user can't be able to cre= ate columns inside View node.=C2=A0
Done=C2=A0
=
  • User can= 't be able to delete/drop columns and system generated Rule's, Trig= ger's etc..
=C2=A0
Done=C2=A0
  • Found one i= ssue when changing value of "Security Barrier" from "Yes&quo= t; to "No" it is not reflected on GUI when we open the dial= og again while in backend value is updated, but on GUI = it is showing "Yes".
Done=C2=A0
  • Create -> = Trigger menu is missing when any view node is selected.=C2=A0
Done=C2=A0

=C2=A0 =C2=A0Materialized View:-
=
  • As per pgAdmin3 user can'= t be able to create columns inside Materialized View node.
  • <= /ul>
Done=C2=A0
=

  • User can't be able to delete/drop columns and system generated= Rule's, Trigger's etc.
<= /div>
I have checked in pgAdmin3 that delete/drop o= ption specific to rules has 2 cases:
1. If rule is system rule, u= ser can't delete/drop it.
2. If not system rule, it can drop = dropped.
Done=C2=A0
=
  • Create -> Trigger/Rule= /Index menu is missing when any materialized view node is selected.
Done=C2=A0
  • In pgAdmin3 we have two more refresh options "= Refresh data" and "Refresh data concurrently" which is missi= ng.
Done
  • "Custom Auto Vaccum" f= or Table and Toast Table not working.=C2=A0
Done=C2=A0

=


<= div>Thanks,
Surinder Kumar



--
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers=




--
Akshay Joshi<= /span>
Principal Software Engineer=C2=A0


Phone: +91 20-3058-9517
Mobil= e: +91 976-788-8246




--
Akshay= Joshi
Principal Software Engineer=C2=A0


Phone: +91 20-3058-9517
Mobil= e: +91 976-788-8246

--001a114420221d0317053303c66f-- --001a114420221d031b053303c671 Content-Type: application/octet-stream; name="view_and_mat_view_nodes_v2.patch" Content-Disposition: attachment; filename="view_and_mat_view_nodes_v2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iob1ne8z0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL19faW5pdF9fLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvX19pbml0X18ucHkKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWRlYjRiNQotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL19faW5pdF9fLnB5CkBA IC0wLDAgKzEsMTQxOCBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBD b3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9w bWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIg dGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKworIiIiSW1wbGVtZW50cyBWaWV3IGFuZCBNYXRlcmlh bGl6ZWQgVmlldyBOb2RlIiIiCisKK2ltcG9ydCBzaW1wbGVqc29uIGFzIGpz b24KK2Zyb20gZmxhc2sgaW1wb3J0IHJlbmRlcl90ZW1wbGF0ZSwgcmVxdWVz dCwganNvbmlmeQorZnJvbSBmbGFzay5leHQuYmFiZWwgaW1wb3J0IGdldHRl eHQKK2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25f cmVzcG9uc2UsIFwKKyAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9u c2UsIGludGVybmFsX3NlcnZlcl9lcnJvciwgXAorICAgIGJhZF9yZXF1ZXN0 Citmcm9tIHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5v ZGVWaWV3CitpbXBvcnQgcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy5kYXRhYmFzZXMgYXMgZGF0YWJhc2VzCitmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVt YXMudXRpbHMgaW1wb3J0IFwKKyAgICBTY2hlbWFDaGlsZE1vZHVsZSwgcGFy c2VfcnVsZV9kZWZpbml0aW9uLCBWYWN1dW1TZXR0aW5ncworZnJvbSBwZ2Fk bWluLnV0aWxzLmFqYXggaW1wb3J0IHByZWNvbmRpdGlvbl9yZXF1aXJlZAor ZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgor ZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCitmcm9tIGZ1 bmN0b29scyBpbXBvcnQgd3JhcHMKKworCisiIiIKKyAgICBUaGlzIG1vZHVs ZSBpcyByZXNwb25zaWJsZSBmb3IgZ2VuZXJhdGluZyB0d28gbm9kZXMKKyAg ICAxKSBWaWV3CisgICAgMikgTWF0ZXJpYWxpemVkIFZpZXcKKworICAgIFdl IGhhdmUgY3JlYXRlZCBzaW5nbGUgZmlsZSBiZWNhdXNlIHZpZXcgJiBtYXRl cmlhbCB2aWV3IGhhcyBzYW1lCisgICAgZnVuY3Rpb25hbGl0eS4gSXQgYWxs b3dzIHVzIHRvIHNoYXJlIHRoZSBzYW1lIHN1Ym1vZHVsZXMgZm9yIGJvdGgK KyAgICB2aWV3LCBhbmQgbWF0ZXJpYWwgdmlldyBtb2R1bGVzLgorCisgICAg VGhpcyBtb2R1bGVzIHVzZXMgc2VwYXJhdGUgdGVtcGxhdGUgcGF0aHMgZm9y IGVhY2ggcmVzcGVjdGl2ZSBub2RlCisgICAgLSB0ZW1wbGF0ZXMvdmlldyBm b3IgVmlldyBub2RlCisgICAgLSB0ZW1wbGF0ZXMvbWF0ZXJpYWxpemVkX3Zp ZXcgZm9yIE1hdGVyaWFsaXplZFZpZXcgbm9kZQorCisgICAgW0VhY2ggcGF0 aCBjb250YWlucyBub2RlIHNwZWNpZmljIGpzIGZpbGVzIGFzIHdlbGwgYXMg c3FsIHRlbXBsYXRlIGZpbGVzLl0KKyIiIgorCisKK2NsYXNzIFZpZXdNb2R1 bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgorICAgICIiIgorICAgIGNsYXNzIFZp ZXdNb2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgorCisgICAgICAgIEEgbW9k dWxlIGNsYXNzIGZvciBWaWV3IG5vZGUgZGVyaXZlZCBmcm9tIFNjaGVtYUNo aWxkTW9kdWxlLgorCisgICAgTWV0aG9kczoKKyAgICAtLS0tLS0tCisgICAg KiBfX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAtIE1ldGhvZCBp cyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIFZpZXcgYW5kIGl0J3MgYmFzZSBt b2R1bGUuCisKKyAgICAqIGdldF9ub2RlcyhnaWQsIHNpZCwgZGlkLCBzY2lk KQorICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgYnJv d3NlciBjb2xsZWN0aW9uIG5vZGUuCisKKyAgICAqIG5vZGVfaW5vZGUoKQor ICAgICAgLSBNZXRob2QgaXMgb3ZlcnJpZGRlbiBmcm9tIGl0cyBiYXNlIGNs YXNzIHRvIG1ha2UgdGhlIG5vZGUgYXMgbGVhZiBub2RlLgorCisgICAgKiBz Y3JpcHRfbG9hZCgpCisgICAgICAtIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQg Zm9yIFZpZXcsIHdoZW4gYW55IG9mIHRoZSBzZXJ2ZXIgbm9kZSBpcworICAg ICAgICBpbml0aWFsaXplZC4KKyAgICAiIiIKKyAgICBOT0RFX1RZUEUgPSAn dmlldycKKyAgICBDT0xMRUNUSU9OX0xBQkVMID0gZ2V0dGV4dCgiVmlld3Mi KQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6 CisgICAgICAgICIiIgorICAgICAgICBNZXRob2QgaXMgdXNlZCB0byBpbml0 aWFsaXplIHRoZSBWaWV3TW9kdWxlIGFuZCBpdCdzIGJhc2UgbW9kdWxlLgor CisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICAqYXJnczoKKyAgICAgICAg ICAgICoqa3dhcmdzOgorICAgICAgICAiIiIKKyAgICAgICAgc3VwZXIoVmll d01vZHVsZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAg ICAgICBzZWxmLm1pbl92ZXIgPSBOb25lCisgICAgICAgIHNlbGYubWF4X3Zl ciA9IE5vbmUKKworICAgIGRlZiBnZXRfbm9kZXMoc2VsZiwgZ2lkLCBzaWQs IGRpZCwgc2NpZCk6CisgICAgICAgICIiIgorICAgICAgICBHZW5lcmF0ZSB0 aGUgY29sbGVjdGlvbiBub2RlCisgICAgICAgICIiIgorICAgICAgICB5aWVs ZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKHNjaWQp CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc2NyaXB0X2xvYWQoc2VsZik6 CisgICAgICAgICIiIgorICAgICAgICBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0 IGZvciB2aWV3cywgd2hlbiBhbnkgZGF0YWJhc2Ugbm9kZSBpcworICAgICAg ICBpbml0aWFsaXplZCwgVGhlIHJlYXNvbiBpcyB2aWV3cyBhcmUgYWxzbyBs aXN0ZWQgdW5kZXIgY2F0YWxvZ3MKKyAgICAgICAgd2hpY2ggYXJlIGxvYWRl ZCB1bmRlciBkYXRhYmFzZSBub2RlLgorICAgICAgICAiIiIKKyAgICAgICAg cmV0dXJuIGRhdGFiYXNlcy5EYXRhYmFzZU1vZHVsZS5OT0RFX1RZUEUKKwor ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjc3NzbmlwcGV0cyhzZWxmKToKKyAg ICAgICAgIiIiCisgICAgICAgIFJldHVybnMgYSBzbmlwcGV0IG9mIGNzcyB0 byBpbmNsdWRlIGluIHRoZSBwYWdlCisgICAgICAgICIiIgorICAgICAgICBz bmlwcGV0cyA9IFsKKyAgICAgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGUo CisgICAgICAgICAgICAgICAgICAgICJicm93c2VyL2Nzcy9jb2xsZWN0aW9u LmNzcyIsCisgICAgICAgICAgICAgICAgICAgIG5vZGVfdHlwZT1zZWxmLm5v ZGVfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgXz1nZXR0ZXh0CisgICAg ICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgcmVuZGVyX3Rl bXBsYXRlKAorICAgICAgICAgICAgICAgICAgICAidmlldy9jc3Mvdmlldy5j c3MiLAorICAgICAgICAgICAgICAgICAgICBub2RlX3R5cGU9c2VsZi5ub2Rl X3R5cGUsCisgICAgICAgICAgICAgICAgICAgIF89Z2V0dGV4dAorICAgICAg ICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgIHJlbmRlcl90ZW1w bGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgIm12aWV3L2Nzcy9tdmlldy5j c3MiLAorICAgICAgICAgICAgICAgICAgICBub2RlX3R5cGU9J212aWV3JywK KyAgICAgICAgICAgICAgICAgICAgXz1nZXR0ZXh0CisgICAgICAgICAgICAg ICAgICAgICkKKyAgICAgICAgICAgICAgICBdCisKKyAgICAgICAgZm9yIHN1 Ym1vZHVsZSBpbiBzZWxmLnN1Ym1vZHVsZXM6CisgICAgICAgICAgICBzbmlw cGV0cy5leHRlbmQoc3VibW9kdWxlLmNzc3NuaXBwZXRzKQorCisgICAgICAg IHJldHVybiBzbmlwcGV0cworCisKK2NsYXNzIE1hdGVyaWFsaXplZFZpZXdN b2R1bGUoVmlld01vZHVsZSk6CisgICAgIiIiCisgICAgIGNsYXNzIE1hdGVy aWFsaXplZFZpZXdNb2R1bGUoVmlld01vZHVsZSkKKyAgICAgICAgQSBtb2R1 bGUgY2xhc3MgZm9yIHRoZSBtYXRlcmlhbGl6ZWQgdmlldyBhbmQgdmlldyBu b2RlIGRlcml2ZWQKKyAgICAgICAgZnJvbSBWaWV3TW9kdWxlLgorICAgICIi IgorCisgICAgTk9ERV9UWVBFID0gJ212aWV3JworICAgIENPTExFQ1RJT05f TEFCRUwgPSBnZXR0ZXh0KCJNYXRlcmlhbGl6ZWQgVmlld3MiKQorCisgICAg ZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAg ICIiIgorICAgICAgICBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRo ZSBNYXRlcmlhbGl6ZWRWaWV3TW9kdWxlIGFuZAorICAgICAgICBpdCdzIGJh c2UgbW9kdWxlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICAqYXJn czoKKyAgICAgICAgICAgICoqa3dhcmdzOgorICAgICAgICAiIiIKKyAgICAg ICAgc3VwZXIoTWF0ZXJpYWxpemVkVmlld01vZHVsZSwgc2VsZikuX19pbml0 X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBzZWxmLm1pbl92ZXIgPSA5 MDMwMAorICAgICAgICBzZWxmLm1heF92ZXIgPSBOb25lCisKK3ZpZXdfYmx1 ZXByaW50ID0gVmlld01vZHVsZShfX25hbWVfXykKK212aWV3X2JsdWVwcmlu dCA9IE1hdGVyaWFsaXplZFZpZXdNb2R1bGUoCisgICAgICAgIF9fbmFtZV9f KQorCisKK2RlZiBjaGVja19wcmVjb25kaXRpb24oZik6CisgICAgIiIiCisg ICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3 aGljaCB3aWxsIGNoZWNrcworICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVm b3JlIHJ1bm5pbmcgdmlldywgaXQgd2lsbCBhbHNvIGF0dGFjaGVzCisgICAg bWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIGlu c3RhbmNlIG9mIHRoZSBtZXRob2QuCisKKyAgICBBc3N1bXB0aW9uczoKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGFsd2F5cyBiZSB1c2VkIGFzIGRl Y29yYXRvciBvZiBhIGNsYXNzIG1ldGhvZC4KKyAgICAiIiIKKyAgICBAd3Jh cHMoZikKKyAgICBkZWYgd3JhcCgqYXJncywgKiprd2FyZ3MpOgorCisgICAg ICAgICMgSGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdp bGwgaG9sZCBnaWQsc2lkLGRpZAorICAgICAgICBzZWxmID0gYXJnc1swXQor ICAgICAgICBzZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRf RFJJVkVSKS5jb25uZWN0aW9uX21hbmFnZXIoCisgICAgICAgICAgICBrd2Fy Z3NbJ3NpZCddCisgICAgICAgICkKKyAgICAgICAgc2VsZi5jb25uID0gc2Vs Zi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAg ICAgICMgSWYgREIgbm90IGNvbm5lY3RlZCB0aGVuIHJldHVybiBlcnJvciB0 byBicm93c2VyCisgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVk KCk6CisgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVk KAorICAgICAgICAgICAgICAgIGdldHRleHQoIkNvbm5lY3Rpb24gdG8gdGhl IHNlcnZlciBoYXMgYmVlbiBsb3N0ISIpCisgICAgICAgICAgICApCisgICAg ICAgIHNlbGYuZGF0bGFzdHN5c29pZCA9IHNlbGYubWFuYWdlci5kYl9pbmZv WworICAgICAgICAgICAgICAgIGt3YXJnc1snZGlkJ11dWydkYXRsYXN0c3lz b2lkJ10KKworICAgICAgICAjIFNldCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwg c2NyaXB0cworICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGggPSBzZWxmLnRl bXBsYXRlX2luaXRpYWwgKyAnLycgKyAoCisgICAgICAgICAgICBzZWxmLnBw YXNfdGVtcGxhdGVfcGF0aChzZWxmLm1hbmFnZXIudmVyc2lvbikKKyAgICAg ICAgICAgIGlmIHNlbGYubWFuYWdlci5zZXJ2ZXJfdHlwZSA9PSAncHBhcycg ZWxzZQorICAgICAgICAgICAgc2VsZi5wZ190ZW1wbGF0ZV9wYXRoKHNlbGYu bWFuYWdlci52ZXJzaW9uKQorICAgICAgICAgICAgKQorCisgICAgICAgIHJl dHVybiBmKCphcmdzLCAqKmt3YXJncykKKworICAgIHJldHVybiB3cmFwCisK KworY2xhc3MgVmlld05vZGUoUEdDaGlsZE5vZGVWaWV3LCBWYWN1dW1TZXR0 aW5ncyk6CisgICAgIiIiCisgICAgVGhpcyBjbGFzcyBpcyByZXNwb25zaWJs ZSBmb3IgZ2VuZXJhdGluZyByb3V0ZXMgZm9yIHZpZXcgbm9kZS4KKworICAg IE1ldGhvZHM6CisgICAgLS0tLS0tLQorICAgICogX19pbml0X18oKiprd2Fy Z3MpCisgICAgICAtIE1ldGhvZCBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhl IFZpZXdOb2RlIGFuZCBpdCdzIGJhc2Ugdmlldy4KKworICAgICogbW9kdWxl X2pzKCkKKyAgICAgIC0gUmVxdWVzdCBoYW5kbGVyIGZvciBtb2R1bGUuanMg cm91dGVzIGZvciB0aGUgdmlldyBub2RlIG1vZHVsZQorICAgICAgamF2YXNj cmlwdCwgd2hpY2ggcmV0dXJucyBqYXZzY3JpcHQgZm9yIHRoaXMgbW9kdWxl LgorCisgICAgKiBsaXN0KCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiBpcyB1 c2VkIHRvIGxpc3QgYWxsIHRoZSB2aWV3IG5vZGVzIHdpdGhpbiB0aGUKKyAg ICAgIGNvbGxlY3Rpb24uCisKKyAgICAqIG5vZGVzKCkKKyAgICAgIC0gVGhp cyBmdW5jdGlvbiB3aWxsIHVzZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hpbGQg bm9kZSB3aXRoaW4gdGhlCisgICAgICAgIGNvbGxlY3Rpb24sIEhlcmUgaXQg d2lsbCBjcmVhdGUgYWxsIHRoZSB2aWV3IG5vZGUuCisKKyAgICAqIHByb3Bl cnRpZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCkKKyAgICAgIC0gVGhpcyBmdW5j dGlvbiB3aWxsIHNob3cgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNlbGVjdGVk IHZpZXcgbm9kZS4KKworICAgICogY3JlYXRlKGdpZCwgc2lkLCBkaWQsIHNj aWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgdGhlIG5l dyB2aWV3IG9iamVjdC4KKworICAgICogdXBkYXRlKGdpZCwgc2lkLCBkaWQs IHNjaWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGhl IGRhdGEgZm9yIHRoZSBzZWxlY3RlZCB2aWV3IG5vZGUuCisKKyAgICAqIGRl bGV0ZShzZWxmLCBnaWQsIHNpZCwgc2NpZCk6CisgICAgICAtIFRoaXMgZnVu Y3Rpb24gd2lsbCBkcm9wIHRoZSB2aWV3IG9iamVjdAorCisgICAgKiBtc3Fs KGdpZCwgc2lkLCBkaWQsIHNjaWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24g aXMgdXNlZCB0byByZXR1cm4gbW9kaWZpZWQgU1FMIGZvciB0aGUgc2VsZWN0 ZWQgdmlldworICAgICAgICBub2RlLgorCisgICAgKiBnZXRfc3FsKGRhdGEs IHNjaWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBz cWwgZnJvbSBtb2RlbCBkYXRhCisKKyAgICAqIHNxbChnaWQsIHNpZCwgZGlk LCBzY2lkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRl IHNxbCB0byBzaG93IGl0IGluIHNxbCBwYW5lIGZvciB0aGUgdmlldworICAg ICAgICBub2RlLgorCisgICAgKiBkZXBlbmRlbmN5KGdpZCwgc2lkLCBkaWQs IHNjaWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUg ZGVwZW5kZW5jeSBsaXN0IHNob3cgaXQgaW4gZGVwZW5kZW5jeQorICAgICAg ICBwYW5lIGZvciB0aGUgc2VsZWN0ZWQgdmlldyBub2RlLgorCisgICAgKiBk ZXBlbmRlbnQoZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAtIFRoaXMg ZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBkZXBlbmRlbnQgbGlzdCB0byBzaG93 IGl0IGluIGRlcGVuZGVudAorICAgICAgICBwYW5lIGZvciB0aGUgc2VsZWN0 ZWQgdmlldyBub2RlLgorICAgICIiIgorICAgIG5vZGVfdHlwZSA9IHZpZXdf Ymx1ZXByaW50Lm5vZGVfdHlwZQorCisgICAgcGFyZW50X2lkcyA9IFsKKyAg ICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZ2lkJ30sCisgICAg ICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3NpZCd9LAorICAgICAg ICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdkaWQnfSwKKyAgICAgICAg ICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnc2NpZCd9CisgICAgICAgICAg ICBdCisgICAgaWRzID0gWworICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcs ICdpZCc6ICd2aWQnfQorICAgICAgICAgICAgXQorCisgICAgb3BlcmF0aW9u cyA9IGRpY3QoeworICAgICAgICAnb2JqJzogWworICAgICAgICAgICAgeydn ZXQnOiAncHJvcGVydGllcycsICdkZWxldGUnOiAnZGVsZXRlJywgJ3B1dCc6 ICd1cGRhdGUnfSwKKyAgICAgICAgICAgIHsnZ2V0JzogJ2xpc3QnLCAncG9z dCc6ICdjcmVhdGUnfQorICAgICAgICBdLAorICAgICAgICAnY2hpbGRyZW4n OiBbeworICAgICAgICAgICAgJ2dldCc6ICdjaGlsZHJlbicKKyAgICAgICAg fV0sCisgICAgICAgICdkZWxldGUnOiBbeydkZWxldGUnOiAnZGVsZXRlJ31d LAorICAgICAgICAncmVmcmVzaF9kYXRhJzogW3sncHV0JzogJ3JlZnJlc2hf ZGF0YSd9LCB7J3B1dCc6ICdyZWZyZXNoX2RhdGEnfV0sCisgICAgICAgICdu b2Rlcyc6IFt7J2dldCc6ICdub2RlJ30sIHsnZ2V0JzogJ25vZGVzJ31dLAor ICAgICAgICAnc3FsJzogW3snZ2V0JzogJ3NxbCd9XSwKKyAgICAgICAgJ21z cWwnOiBbeydnZXQnOiAnbXNxbCd9LCB7J2dldCc6ICdtc3FsJ31dLAorICAg ICAgICAnc3RhdHMnOiBbeydnZXQnOiAnc3RhdGlzdGljcyd9XSwKKyAgICAg ICAgJ2RlcGVuZGVuY3knOiBbeydnZXQnOiAnZGVwZW5kZW5jaWVzJ31dLAor ICAgICAgICAnZGVwZW5kZW50JzogW3snZ2V0JzogJ2RlcGVuZGVudHMnfV0s CisgICAgICAgICdtb2R1bGUuanMnOiBbe30sIHt9LCB7J2dldCc6ICdtb2R1 bGVfanMnfV0sCisgICAgICAgICdjb25maWdzJzogW3snZ2V0JzogJ2NvbmZp Z3MnfV0sCisgICAgICAgICdnZXRfdGJsc3BjJzogW3snZ2V0JzogJ2dldF90 YmxzcGMnfSwgeydnZXQnOiAnZ2V0X3RibHNwYyd9XSwKKyAgICAgICAgJ2dl dF90YWJsZV92YWN1dW0nOiBbCisgICAgICAgICAgeydnZXQnOiAnZ2V0X3Rh YmxlX3ZhY3V1bSd9LAorICAgICAgICAgIHsnZ2V0JzogJ2dldF90YWJsZV92 YWN1dW0nfV0sCisgICAgICAgICdnZXRfdG9hc3RfdGFibGVfdmFjdXVtJzog WworICAgICAgICAgIHsnZ2V0JzogJ2dldF90b2FzdF90YWJsZV92YWN1dW0n fSwKKyAgICAgICAgICB7J2dldCc6ICdnZXRfdG9hc3RfdGFibGVfdmFjdXVt J31dCisgICAgfSkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywg Kiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAgSW5pdGlhbGl6ZSB0 aGUgdmFyaWFibGVzIHVzZWQgYnkgbWV0aG9kcyBvZiBWaWV3Tm9kZS4KKyAg ICAgICAgIiIiCisKKyAgICAgICAgc3VwZXIoVmlld05vZGUsIHNlbGYpLl9f aW5pdF9fKCphcmdzLCAqKmt3YXJncykKKworICAgICAgICBzZWxmLm1hbmFn ZXIgPSBOb25lCisgICAgICAgIHNlbGYuY29ubiA9IE5vbmUKKyAgICAgICAg c2VsZi50ZW1wbGF0ZV9wYXRoID0gTm9uZQorICAgICAgICBzZWxmLnRlbXBs YXRlX2luaXRpYWwgPSAndmlldycKKworICAgIEBzdGF0aWNtZXRob2QKKyAg ICBkZWYgcHBhc190ZW1wbGF0ZV9wYXRoKHZlcik6CisgICAgICAgICIiIgor ICAgICAgICBSZXR1cm5zIHRoZSB0ZW1wbGF0ZSBwYXRoIGZvciBQUEFTIHNl cnZlcnMuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gJ3BwYXMvOS4z X3BsdXMnCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHBnX3RlbXBs YXRlX3BhdGgodmVyKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMg dGhlIHRlbXBsYXRlIHBhdGggZm9yIFBvc3RncmVTUUwgc2VydmVycy4KKyAg ICAgICAgIiIiCisgICAgICAgIGlmIHZlciA+PSA5MDQwMDoKKyAgICAgICAg ICAgIHJldHVybiAncGcvOS40X3BsdXMnCisgICAgICAgIGVsaWYgdmVyID49 IDkwMzAwOgorICAgICAgICAgICAgcmV0dXJuICdwZy85LjNfcGx1cycKKyAg ICAgICAgZWxpZiB2ZXIgPj0gOTAyMDA6CisgICAgICAgICAgICByZXR1cm4g J3BnLzkuMl9wbHVzJworICAgICAgICBlbGlmIHZlciA+PSA5MDEwMDoKKyAg ICAgICAgICAgIHJldHVybiAncGcvOS4xX3BsdXMnCisgICAgICAgIHJldHVy biAncGcvOS4xX3BsdXMnCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisg ICAgZGVmIGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAg ICAgICIiIgorICAgICAgICBGZXRjaGVzIGFsbCB2aWV3cyBwcm9wZXJ0aWVz IGFuZCByZW5kZXIgaW50byBwcm9wZXJ0aWVzIHRhYgorICAgICAgICAiIiIK KyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAg ICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwvcHJvcGVydGllcy5z cWwnXSksIHNjaWQ9c2NpZCkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxm LmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKworICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yZXMpCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNl KAorICAgICAgICAgICAgICAgIHJlc3BvbnNlPXJlc1sncm93cyddLAorICAg ICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAgICApCisK KyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIG5vZGVzKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAg TGlzdHMgYWxsIHZpZXdzIHVuZGVyIHRoZSBWaWV3cyBDb2xsZWN0aW9uIG5v ZGUKKyAgICAgICAgIiIiCisgICAgICAgIHJlcyA9IFtdCisgICAgICAgIFNR TCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICBbc2Vs Zi50ZW1wbGF0ZV9wYXRoLCAnc3FsL3Byb3BlcnRpZXMuc3FsJ10pLCBzY2lk PXNjaWQpCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVj dXRlXzJkYXJyYXkoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1yc2V0KQorCisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgor ICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAg c2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAg ICAgICAgICAgICAgICAgICAgcm93WydvaWQnXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgIHNjaWQsCisgICAgICAgICAgICAgICAgICAgICAgICByb3db J25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGljb249Imljb24t dmlldyIKKyAgICAgICAgICAgICAgICAgICAgKSkKKworICAgICAgICByZXR1 cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIGRhdGE9 cmVzLAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAg ICAgICApCisKKyAgICBkZWYgcGFyc2Vfdmlld3NfcHJpdmlsZWdlcyhzZWxm LCBkYl9wcml2aWxlZ2VzKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMg ZnVuY3Rpb24gZm9ybXMgYSBzZXBhcmF0ZSBsaXN0IG9mIGdyYW50YWJsZQor ICAgICAgICBhbmQgbm9uIGdyYW50YWJsZSBwcml2aWxlZ2VzLgorICAgICAg ICAiIiIKKyAgICAgICAgYWNsID0geydncmFudG9yJzogZGJfcHJpdmlsZWdl c1snZ3JhbnRvciddLAorICAgICAgICAgICAgICAgJ2dyYW50ZWUnOiBkYl9w cml2aWxlZ2VzWydncmFudGVlJ10sCisgICAgICAgICAgICAgICAncHJpdmls ZWdlcyc6IFtdCisgICAgICAgICAgICAgICB9CisKKyAgICAgICAgcHJpdmls ZWdlcyA9IFtdCisgICAgICAgIGZvciBpZHgsIHByaXYgaW4gZW51bWVyYXRl KGRiX3ByaXZpbGVnZXNbJ3ByaXZpbGVnZXMnXSk6CisgICAgICAgICAgICBp ZiBkYl9wcml2aWxlZ2VzWydncmFudGFibGUnXVtpZHhdOgorICAgICAgICAg ICAgICAgIHByaXZpbGVnZXMuYXBwZW5kKHsicHJpdmlsZWdlX3R5cGUiOiBw cml2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJp dmlsZWdlIjogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIndpdGhfZ3JhbnQiOiBUcnVlCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgIHByaXZpbGVnZXMuYXBwZW5kKHsicHJpdmlsZWdlX3R5cGUi OiBwcml2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi cHJpdmlsZWdlIjogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIndpdGhfZ3JhbnQiOiBGYWxzZQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KQorCisgICAgICAgIGFjbFsncHJpdmls ZWdlcyddID0gcHJpdmlsZWdlcworCisgICAgICAgIHJldHVybiBhY2wKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgcHJvcGVydGllcyhz ZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB2aWQpOgorICAgICAgICAiIiIK KyAgICAgICAgRmV0Y2hlcyB0aGUgcHJvcGVydGllcyBvZiBhbiBpbmRpdmlk dWFsIHZpZXcKKyAgICAgICAgYW5kIHJlbmRlciBpbiB0aGUgcHJvcGVydGll cyB0YWIKKyAgICAgICAgIiIiCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1w bGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3Bh dGgsICdzcWwvcHJvcGVydGllcy5zcWwnXQorICAgICAgICAgICksIHZpZD12 aWQsIGRhdGxhc3RzeXNvaWQ9c2VsZi5kYXRsYXN0c3lzb2lkKQorICAgICAg ICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQor ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAg U1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgIFtz ZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwvYWNsLnNxbCddKSwgdmlkPXZpZCkK KyAgICAgICAgc3RhdHVzLCBkYXRhY2xyZXMgPSBzZWxmLmNvbm4uZXhlY3V0 ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVz KQorCisgICAgICAgIGZvciByb3cgaW4gZGF0YWNscmVzWydyb3dzJ106Cisg ICAgICAgICAgICBwcml2ID0gc2VsZi5wYXJzZV92aWV3c19wcml2aWxlZ2Vz KHJvdykKKyAgICAgICAgICAgIGlmIHJvd1snZGVmdHlwZSddIGluIHJlc1sn cm93cyddWzBdOgorICAgICAgICAgICAgICAgIHJlc1sncm93cyddWzBdW3Jv d1snZGVmdHlwZSddXS5hcHBlbmQocHJpdikKKyAgICAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgICAgcmVzWydyb3dzJ11bMF1bcm93WydkZWZ0eXBl J11dID0gW3ByaXZdCisKKyAgICAgICAgcmVzdWx0ID0gcmVzWydyb3dzJ11b MF0KKworICAgICAgICAjIHNlbmRpbmcgcmVzdWx0IHRvIGZvcm10dGVyCisg ICAgICAgIGZybXRkX3Jlc2x0ID0gc2VsZi5mb3JtYXR0ZXIocmVzdWx0KQor CisgICAgICAgICMgbWVyZ2luZyBmb3JtYXRlZCByZXN1bHQgd2l0aCBtYWlu IHJlc3VsdCBhZ2FpbgorICAgICAgICByZXN1bHQudXBkYXRlKGZybXRkX3Jl c2x0KQorCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgIHJlc3BvbnNlPXJlc3VsdCwKKyAgICAgICAgICAgICAgICBz dGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCisgICAgQHN0YXRpY21l dGhvZAorICAgIGRlZiBmb3JtYXR0ZXIocmVzdWx0KToKKyAgICAgICAgIiIi IFRoaXMgZnVuY3Rpb24gZm9ybWF0cyBvdXRwdXQgZm9yIHNlY3VyaXR5IGxh YmVsICYgdmFyaWFibGVzIiIiCisgICAgICAgIGZybXRkX3Jlc3VsdCA9IGRp Y3QoKQorICAgICAgICBzZWNfbGJscyA9IFtdCisgICAgICAgIGlmICdzZWNs YWJlbHMnIGluIHJlc3VsdCBhbmQgcmVzdWx0WydzZWNsYWJlbHMnXSBpcyBu b3QgTm9uZToKKyAgICAgICAgICAgIGZvciBzZWMgaW4gcmVzdWx0WydzZWNs YWJlbHMnXToKKyAgICAgICAgICAgICAgICBpbXBvcnQgcmUKKyAgICAgICAg ICAgICAgICBzZWMgPSByZS5zZWFyY2gocicoW149XSspPSguKiQpJywgc2Vj KQorICAgICAgICAgICAgICAgIHNlY19sYmxzLmFwcGVuZCh7CisgICAgICAg ICAgICAgICAgICAgICdwcm92aWRlcic6IHNlYy5ncm91cCgxKSwKKyAgICAg ICAgICAgICAgICAgICAgJ3NlY3VyaXR5X2xhYmVsJzogc2VjLmdyb3VwKDIp CisgICAgICAgICAgICAgICAgICAgIH0pCisKKyAgICAgICAgZnJtdGRfcmVz dWx0LnVwZGF0ZSh7InNlY2xhYmVscyI6IHNlY19sYmxzfSkKKyAgICAgICAg cmV0dXJuIGZybXRkX3Jlc3VsdAorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlv bgorICAgIGRlZiBjcmVhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6 CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgY3Jl YXRlIGEgbmV3IHZpZXcgb2JqZWN0CisgICAgICAgICIiIgorICAgICAgICBy ZXF1aXJlZF9hcmdzID0gWworICAgICAgICAgICAgJ25hbWUnLAorICAgICAg ICAgICAgJ2RlZmluaXRpb24nCisgICAgICAgIF0KKworICAgICAgICBkYXRh ID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNlIFwKKyAgICAg ICAgICAgIGpzb24ubG9hZHMocmVxdWVzdC5kYXRhLmRlY29kZSgpKQorICAg ICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICBp ZiBhcmcgbm90IGluIGRhdGE6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1h a2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVz PTQxMCwKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAorICAgICAg ICAgICAgICAgICAgICBlcnJvcm1zZz1nZXR0ZXh0KAorICAgICAgICAgICAg ICAgICAgICAgICAgIkNvdWxkbid0IGZpbmQgdGhlIHJlcXVpcmVkIHBhcmFt ZXRlciAoJXMpLiIgJSBhcmcKKyAgICAgICAgICAgICAgICAgICAgKQorICAg ICAgICAgICAgICAgICkKKworICAgICAgICBTUUwgPSBzZWxmLmdldFNRTChn aWQsIHNpZCwgZGF0YSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc3Rh dHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAg ICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAg ICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAg ICAgICAgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NxbC92aWV3 X2lkLnNxbCddKSwgZGF0YT1kYXRhKQorICAgICAgICAgICAgc3RhdHVzLCB2 aWV3X2lkID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAg ICAgICAgIHJldHVybiBqc29uaWZ5KAorICAgICAgICAgICAgICAgIG5vZGU9 c2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAg ICAgICAgICAgICAgdmlld19pZCwKKyAgICAgICAgICAgICAgICAgIHNjaWQs CisgICAgICAgICAgICAgICAgICBkYXRhWyduYW1lJ10sCisgICAgICAgICAg ICAgICAgICBpY29uPSJpY29uLXZpZXciCisgICAgICAgICAgICAgICAgKQor ICAgICAgICAgICAgKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMg ZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgor ICAgIGRlZiB1cGRhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdmlk KToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCB1 cGRhdGUgYSB2aWV3IG9iamVjdAorICAgICAgICAiIiIKKyAgICAgICAgZGF0 YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZvcm0gZWxzZSBcCisgICAg ICAgICAgICBqc29uLmxvYWRzKHJlcXVlc3QuZGF0YS5kZWNvZGUoKSkKKyAg ICAgICAgU1FMID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQsIGRhdGEsIHZpZCkK KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxm LmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgaWYgbm90 IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgU1FMID0g cmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAgICAgICAg W3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NxbC92aWV3X2lkLnNxbCddKSwgZGF0 YT1kYXRhKQorICAgICAgICAgICAgc3RhdHVzLCB2aWV3X2lkID0gc2VsZi5j b25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgIHJldHVybiBq c29uaWZ5KAorICAgICAgICAgICAgICAgIG5vZGU9c2VsZi5ibHVlcHJpbnQu Z2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAgICAgICAgICAgICAgdmll d19pZCwKKyAgICAgICAgICAgICAgICAgIHNjaWQsCisgICAgICAgICAgICAg ICAgICBkYXRhWyduYW1lJ10sCisgICAgICAgICAgICAgICAgICBpY29uPSJp Y29uLXZpZXciCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQor CisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUp KQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZWxldGUo c2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdmlkKToKKyAgICAgICAgIiIi CisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBkcm9wIGEgdmlldyBvYmpl Y3QKKyAgICAgICAgIiIiCisKKyAgICAgICAgIyBCZWxvdyB3aWxsIGRlY2lk ZSBpZiBpdCdzIHNpbXBsZSBkcm9wIG9yIGRyb3Agd2l0aCBjYXNjYWRlIGNh bGwKKyAgICAgICAgY2FzY2FkZSA9IFRydWUgaWYgc2VsZi5jbWQgPT0gJ2Rl bGV0ZScgZWxzZSBGYWxzZQorCisgICAgICAgIHRyeToKKworICAgICAgICAg ICAgIyBHZXQgbmFtZSBmb3IgdmlldyBmcm9tIGRpZAorICAgICAgICAgICAg U1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAg ICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnc3FsL2RlbGV0ZS5zcWwnXSksIHZp ZD12aWQpCisgICAgICAgICAgICBzdGF0dXMsIHJlc19kYXRhID0gc2VsZi5j b25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9cmVzX2RhdGEpCisKKyAgICAgICAgICAgICMgZHJv cCB2aWV3CisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8i LmpvaW4oCisgICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdz cWwvZGVsZXRlLnNxbCddKSwKKyAgICAgICAgICAgICAgICBuc3BuYW1lPXJl c19kYXRhWydyb3dzJ11bMF1bJ25zcG5hbWUnXSwKKyAgICAgICAgICAgICAg ICBuYW1lPXJlc19kYXRhWydyb3dzJ11bMF1bJ25hbWUnXSwgY2FzY2FkZT1j YXNjYWRlCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIHN0YXR1cywg cmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAg ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAg ICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAg ICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgIGluZm89Z2V0dGV4dCgi VmlldyBkcm9wcGVkIiksCisgICAgICAgICAgICAgICAgZGF0YT17CisgICAg ICAgICAgICAgICAgICAgICdpZCc6IHZpZCwKKyAgICAgICAgICAgICAgICAg ICAgJ3NpZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgJ2dpZCc6IGdp ZCwKKyAgICAgICAgICAgICAgICAgICAgJ2RpZCc6IGRpZAorICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhj ZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIGRlZiBfZ2V0X3Nj aGVtYShzZWxmLCBzY2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVy bnMgU2NoZW1hIE5hbWUgZnJvbSBpdHMgT0lELgorCisgICAgICAgIEFyZ3M6 CisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgIiIiCisg ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J3NxbC9nZXRfc2NoZW1hLnNxbCddKSwgc2NpZD1zY2lkKQorCisgICAgICAg IHN0YXR1cywgc2NoZW1hX25hbWUgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2Fs YXIoU1FMKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXNjaGVt YV9uYW1lKQorCisgICAgICAgIHJldHVybiBzY2hlbWFfbmFtZQorCisgICAg QGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBtc3FsKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQsIHZpZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAg ICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBtb2RpZmllZCBTUUwKKyAgICAg ICAgIiIiCisgICAgICAgIGRhdGEgPSB7fQorICAgICAgICBmb3IgaywgdiBp biByZXF1ZXN0LmFyZ3MuaXRlbXMoKToKKyAgICAgICAgICAgIHRyeToKKyAg ICAgICAgICAgICAgICBkYXRhW2tdID0ganNvbi5sb2Fkcyh2KQorICAgICAg ICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgZGF0 YVtrXSA9IHYKKworICAgICAgICBTUUwgPSBzZWxmLmdldFNRTChnaWQsIHNp ZCwgZGF0YSwgdmlkKQorICAgICAgICBpZihTUUwpOgorICAgICAgICAgICAg cmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAg ICAgZGF0YT1TUUwsCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAK KyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAg ICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg ICAgICAgICAgZGF0YT1nZXR0ZXh0KCItLSBOb3RoaW5nIGNoYW5nZWQiKSwK KyAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAg ICAgICAgICApCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHBhcnNl X3ByaXZpbGVnZXMoc3RyX3ByaXZpbGVnZXMsIG9iamVjdF90eXBlPSdWSUVX Jyk6CisgICAgICAgICIiIlBhcnNlIFByaXZpbGVnZXMuIiIiCisgICAgICAg IGRiX3ByaXZpbGVnZXMgPSB7CisgICAgICAgICAgICAnYSc6ICdJTlNFUlQn LAorICAgICAgICAgICAgJ3InOiAnU0VMRUNUJywKKyAgICAgICAgICAgICd3 JzogJ1VQREFURScsCisgICAgICAgICAgICAnZCc6ICdERUxFVEUnLAorICAg ICAgICAgICAgJ0QnOiAnVFJVTkNBVEUnLAorICAgICAgICAgICAgJ3gnOiAn UkVGRVJFTkNFUycsCisgICAgICAgICAgICAndCc6ICdUUklHR0VSJworICAg ICAgICAgICAgfQorICAgICAgICBwcml2aWxlZ2VzID0gW10KKyAgICAgICAg Zm9yIHByaXYgaW4gc3RyX3ByaXZpbGVnZXM6CisgICAgICAgICAgICBwcml2 X3dpdGhfZ3JhbnQgPSBbXQorICAgICAgICAgICAgcHJpdl93aXRob3V0X2dy YW50ID0gW10KKyAgICAgICAgICAgIGZvciBwcml2aWxlZ2UgaW4gcHJpdlsn cHJpdmlsZWdlcyddOgorICAgICAgICAgICAgICAgIGlmIHByaXZpbGVnZVsn d2l0aF9ncmFudCddOgorICAgICAgICAgICAgICAgICAgICBwcml2X3dpdGhf Z3JhbnQuYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICAgIGRiX3ByaXZp bGVnZXNbcHJpdmlsZWdlWydwcml2aWxlZ2VfdHlwZSddXSkKKyAgICAgICAg ICAgICAgICBlbGlmIHByaXZpbGVnZVsncHJpdmlsZWdlJ106CisgICAgICAg ICAgICAgICAgICAgIHByaXZfd2l0aG91dF9ncmFudC5hcHBlbmQoCisgICAg ICAgICAgICAgICAgICAgICAgZGJfcHJpdmlsZWdlc1twcml2aWxlZ2VbJ3By aXZpbGVnZV90eXBlJ11dKQorCisgICAgICAgICAgICAgICAgIyBJZiB3ZSBo YXZlIGFsbCBhY2wgdGhlbiBqdXN0IHJldHVybiBhbGwKKyAgICAgICAgICAg ICAgICBpZiBsZW4ocHJpdl93aXRoX2dyYW50KSA9PSBsZW4oZGJfcHJpdmls ZWdlcyk6CisgICAgICAgICAgICAgICAgICAgIHByaXZfd2l0aF9ncmFudCA9 IFsnQUxMJ10KKyAgICAgICAgICAgICAgICBpZiBsZW4ocHJpdl93aXRob3V0 X2dyYW50KSA9PSBsZW4oZGJfcHJpdmlsZWdlcyk6CisgICAgICAgICAgICAg ICAgICAgIHByaXZfd2l0aG91dF9ncmFudCA9IFsnQUxMJ10KKworICAgICAg ICAgICAgIyBTZXJ2ZXIgTGV2ZWwgdmFsaWRhdGlvbgorICAgICAgICAgICAg aWYgJ2dyYW50ZWUnIGluIHByaXY6CisgICAgICAgICAgICAgICAgcHJpdmls ZWdlcy5hcHBlbmQoCisgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICAgICdncmFudGVlJzogcHJpdlsnZ3JhbnRlZSddIGlmICdncmFu dGVlJyBpbiBwcml2IGVsc2UgJycsCisgICAgICAgICAgICAgICAgICAgICd3 aXRoX2dyYW50JzogcHJpdl93aXRoX2dyYW50LAorICAgICAgICAgICAgICAg ICAgICAnd2l0aG91dF9ncmFudCc6IHByaXZfd2l0aG91dF9ncmFudAorICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuICcnCisgICAgICAg IHJldHVybiBwcml2aWxlZ2VzCisKKyAgICBkZWYgZ2V0U1FMKHNlbGYsIGdp ZCwgc2lkLCBkYXRhLCB2aWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAg ICBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3FsIGZyb20gbW9kZWwg ZGF0YQorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg aWYgdmlkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIFNRTCA9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAgICAgICAgICAg W3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NxbC9wcm9wZXJ0aWVzLnNxbCddKSwK KyAgICAgICAgICAgICAgICAgIHZpZD12aWQsCisgICAgICAgICAgICAgICAg ICBkYXRsYXN0c3lzb2lkPXNlbGYuZGF0bGFzdHN5c29pZAorICAgICAgICAg ICAgICAgICkKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYu Y29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICAgICAgICAgIGlmIG5v dCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAgICAg IG9sZF9kYXRhID0gcmVzWydyb3dzJ11bMF0KKworICAgICAgICAgICAgICAg IGlmICduYW1lJyBub3QgaW4gZGF0YToKKyAgICAgICAgICAgICAgICAgICAg ZGF0YVsnbmFtZSddID0gcmVzWydyb3dzJ11bMF1bJ25hbWUnXQorICAgICAg ICAgICAgICAgIGlmICdzY2hlbWEnIG5vdCBpbiBkYXRhOgorICAgICAgICAg ICAgICAgICAgICBkYXRhWydzY2hlbWEnXSA9IHJlc1sncm93cyddWzBdWydz Y2hlbWEnXQorCisgICAgICAgICAgICAgICAga2V5ID0gJ2RhdGFjbCcKKyAg ICAgICAgICAgICAgICBpZiBrZXkgaW4gZGF0YSBhbmQgZGF0YVtrZXldIGlz IG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBpZiAnYWRkZWQnIGlu IGRhdGFba2V5XToKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFba2V5 XVsnYWRkZWQnXSA9IHNlbGYucGFyc2VfcHJpdmlsZWdlcygKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgZGF0YVtrZXldWydhZGRlZCddKQorICAgICAg ICAgICAgICAgICAgICBpZiAnY2hhbmdlZCcgaW4gZGF0YVtrZXldOgorICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YVtrZXldWydjaGFuZ2VkJ10gPSBz ZWxmLnBhcnNlX3ByaXZpbGVnZXMoCisgICAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGFba2V5XVsnY2hhbmdlZCddKQorICAgICAgICAgICAgICAgICAg ICBpZiAnZGVsZXRlZCcgaW4gZGF0YVtrZXldOgorICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YVtrZXldWydkZWxldGVkJ10gPSBzZWxmLnBhcnNlX3By aXZpbGVnZXMoCisgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFba2V5 XVsnZGVsZXRlZCddKQorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAg ICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAor ICAgICAgICAgICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdz cWwvdXBkYXRlLnNxbCddKSwgZGF0YT1kYXRhLAorICAgICAgICAgICAgICAg ICAgICAgICAgb19kYXRhPW9sZF9kYXRhLCBjb25uPXNlbGYuY29ubikKKyAg ICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAg ICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9c3RyKGUpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICAgICByZXF1aXJlZF9hcmdzID0gWworICAgICAgICAgICAgICAgICAgICAn bmFtZScsCisgICAgICAgICAgICAgICAgICAgICdzY2hlbWEnLAorICAgICAg ICAgICAgICAgICAgICAnZGVmaW5pdGlvbicKKyAgICAgICAgICAgICAgICBd CisgICAgICAgICAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9hcmdzOgor ICAgICAgICAgICAgICAgICAgICBpZiBhcmcgbm90IGluIGRhdGE6CisgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiAtLSBkZWZpbml0aW9uIGlu Y29tcGxldGUiCisKKyAgICAgICAgICAgICAgICAjIEdldCBTY2hlbWEgTmFt ZSBmcm9tIGl0cyBPSUQuCisgICAgICAgICAgICAgICAgaWYgJ3NjaGVtYScg aW4gZGF0YToKKyAgICAgICAgICAgICAgICAgICAgZGF0YVsnc2NoZW1hJ10g PSBzZWxmLl9nZXRfc2NoZW1hKGRhdGFbJ3NjaGVtYSddKQorCisgICAgICAg ICAgICAgICAgaWYgJ2RhdGFjbCcgaW4gZGF0YSBhbmQgZGF0YVsnZGF0YWNs J10gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGRhdGFbJ2Rh dGFjbCddID0gc2VsZi5wYXJzZV9wcml2aWxlZ2VzKGRhdGFbJ2RhdGFjbCdd KQorICAgICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIu am9pbigKKyAgICAgICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgs ICdzcWwvY3JlYXRlLnNxbCddKSwgZGF0YT1kYXRhKQorICAgICAgICAgICAg ICAgIGlmIGRhdGFbJ2RlZmluaXRpb24nXToKKyAgICAgICAgICAgICAgICAg ICAgU1FMICs9ICJcbiIKKyAgICAgICAgICAgICAgICAgICAgU1FMICs9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAgICAgICAgICAg ICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnc3FsL2dyYW50LnNxbCddKSwgZGF0 YT1kYXRhKQorICAgICAgICAgICAgcmV0dXJuIFNRTAorCisgICAgICAgIGV4 Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgZGVm IGdldF9pbmRleF9jb2x1bW5fZGV0YWlscyhzZWxmLCBpZHgsIGRhdGEpOgor ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbmFsIHdpbGwgZmV0 Y2ggbGlzdCBvZiBjb2x1bW4gZGV0YWlscyBmb3IgaW5kZXgKKworICAgICAg ICBBcmdzOgorICAgICAgICAgICAgaWR4OiBJbmRleCBPSUQKKyAgICAgICAg ICAgIGRhdGE6IFByb3BlcnRpZXMgZGF0YQorCisgICAgICAgIFJldHVybnM6 CisgICAgICAgICAgICBVcGRhdGVkIHByb3BlcnRpZXMgZGF0YSB3aXRoIGNv bHVtbiBkZXRhaWxzCisgICAgICAgICIiIgorCisgICAgICAgIHNlbGYuaW5k ZXhfdGVtcF9wYXRoID0gJ2luZGV4JworICAgICAgICBTUUwgPSByZW5kZXJf dGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYuaW5kZXhfdGVtcF9wYXRoLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NxbC85LjFfcGx1cy9jb2x1 bW5fZGV0YWlscy5zcWwnXSksIGlkeD1pZHgpCisgICAgICAgIHN0YXR1cywg cnNldCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAg ICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yc2V0KQorCisgICAgICAgICMgJ2F0 dGRlZicgY29tZXMgd2l0aCBxdW90ZXMgZnJvbSBxdWVyeSBzbyB3ZSBuZWVk IHRvIHN0cmlwIHRoZW0KKyAgICAgICAgIyAnb3B0aW9ucycgd2UgbmVlZCB0 cnVlL2ZhbHNlIHRvIHJlbmRlciBzd2l0Y2ggQVNDKGZhbHNlKS9ERVNDKHRy dWUpCisgICAgICAgIGNvbHVtbnMgPSBbXQorICAgICAgICBjb2xzID0gW10K KyAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisKKyAgICAgICAg ICAgICMgV2UgbmVlZCBhbGwgZGF0YSBhcyBjb2xsZWN0aW9uIGZvciBDb2x1 bW5zTW9kZWwKKyAgICAgICAgICAgIGNvbHNfZGF0YSA9IHsKKyAgICAgICAg ICAgICAgICAnY29sbmFtZSc6IHJvd1snYXR0ZGVmJ10uc3RyaXAoJyInKSwK KyAgICAgICAgICAgICAgICAnY29sbHNwY25hbWUnOiByb3dbJ2NvbGxuc3Bu YW1lJ10sCisgICAgICAgICAgICAgICAgJ29wX2NsYXNzJzogcm93WydvcGNu YW1lJ10sCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiByb3dbJ29w dGlvbnMnXVswXSA9PSAnREVTQyc6CisgICAgICAgICAgICAgICAgY29sc19k YXRhWydzb3J0X29yZGVyJ10gPSBUcnVlCisgICAgICAgICAgICBjb2x1bW5z LmFwcGVuZChjb2xzX2RhdGEpCisKKyAgICAgICAgICAgICMgV2UgbmVlZCBz YW1lIGRhdGEgYXMgc3RyaW5nIHRvIGRpc3BsYXkgaW4gcHJvcGVydGllcyB3 aW5kb3cKKyAgICAgICAgICAgICMgSWYgbXVsdGlwbGUgY29sdW1uIHRoZW4g c2VwYXJhdGUgaXQgYnkgY29sb24KKyAgICAgICAgICAgIGNvbHNfc3RyID0g cm93WydhdHRkZWYnXQorICAgICAgICAgICAgaWYgcm93Wydjb2xsbnNwbmFt ZSddOgorICAgICAgICAgICAgICAgIGNvbHNfc3RyICs9ICcgQ09MTEFURSAn ICsgcm93Wydjb2xsbnNwbmFtZSddCisgICAgICAgICAgICBpZiByb3dbJ29w Y25hbWUnXToKKyAgICAgICAgICAgICAgICBjb2xzX3N0ciArPSAnICcgKyBy b3dbJ29wY25hbWUnXQorICAgICAgICAgICAgaWYgcm93WydvcHRpb25zJ11b MF0gPT0gJ0RFU0MnOgorICAgICAgICAgICAgICAgIGNvbHNfc3RyICs9ICcg REVTQycKKyAgICAgICAgICAgIGNvbHMuYXBwZW5kKGNvbHNfc3RyKQorCisg ICAgICAgICMgUHVzaCBhcyBjb2xsZWN0aW9uCisgICAgICAgIGRhdGFbJ2Nv bHVtbnMnXSA9IGNvbHVtbnMKKyAgICAgICAgIyBQdXNoIGFzIHN0cmluZwor ICAgICAgICBkYXRhWydjb2xzJ10gPSAnLCAnLmpvaW4oY29scykKKworICAg ICAgICByZXR1cm4gZGF0YQorCisgICAgZGVmIGdldF90cmlnZ2VyX2NvbHVt bl9kZXRhaWxzKHNlbGYsIHRpZCwgY2xpc3QpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIGxpc3Qgb2YgY29sdW1u IGZvciB0cmlnZ2VyCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHRp ZDogVGFibGUgT0lECisgICAgICAgICAgICBjbGlzdDogTGlzdCBvZiBjb2x1 bW5zCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIFVwZGF0ZWQg cHJvcGVydGllcyBkYXRhIHdpdGggY29sdW1uCisgICAgICAgICIiIgorCisg ICAgICAgIHNlbGYudHJpZ2dlcl90ZW1wX3BhdGggPSAnc2NoZW1hL3RyaWdn ZXInCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50cmlnZ2VyX3RlbXBfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnZ2V0X2NvbHVtbnMuc3FsJ10pLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlkPXRpZCwgY2xpc3Q9Y2xp c3QpCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRl XzJkYXJyYXkoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1y c2V0KQorICAgICAgICAjICd0Z2F0dHInIGNvbnRhaW5zIGxpc3Qgb2YgY29s dW1ucyBmcm9tIHRhYmxlIHVzZWQgaW4gdHJpZ2dlcgorICAgICAgICBjb2x1 bW5zID0gW10KKworICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToK KyAgICAgICAgICAgIGNvbHVtbnMuYXBwZW5kKHsnY29sdW1uJzogcm93Wydu YW1lJ119KQorCisgICAgICAgIHJldHVybiBjb2x1bW5zCisKKyAgICBkZWYg Z2V0X3J1bGVfc3FsKHNlbGYsIHZpZCk6CisgICAgICAgICIiIgorICAgICAg ICBHZXQgYWxsIG5vbiBzeXN0ZW0gcnVsZXMgb2YgdmlldyBub2RlLAorICAg ICAgICBnZW5lcmF0ZSB0aGVpciBzcWwgYW5kIHJlbmRlcgorICAgICAgICBp bnRvIHNxbCB0YWIKKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5ydWxl X3RlbXBfcGF0aCA9ICdydWxlcycKKyAgICAgICAgU1FMX2RhdGEgPSAnJwor ICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAg ICAgICAgW3NlbGYucnVsZV90ZW1wX3BhdGgsICdzcWwvcHJvcGVydGllcy5z cWwnXSksIHRpZD12aWQpCisKKyAgICAgICAgc3RhdHVzLCBkYXRhID0gc2Vs Zi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAgIGlmIG5vdCBzdGF0 dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPWRhdGEpCisKKyAgICAgICAgZm9yIHJ1bGUgaW4gZGF0YVsn cm93cyddOgorCisgICAgICAgICAgICAjIEdlbmVyYXRlIFNRTCBvbmx5IGZv ciBub24gc3lzdGVtIHJ1bGUKKyAgICAgICAgICAgIGlmIHJ1bGVbJ25hbWUn XSAhPSAnX1JFVFVSTic6CisgICAgICAgICAgICAgICAgcmVzID0gW10KKyAg ICAgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4o CisgICAgICAgICAgICAgICAgICBbc2VsZi5ydWxlX3RlbXBfcGF0aCwgJ3Nx bC9wcm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgcmlk PXJ1bGVbJ29pZCddCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qo U1FMKQorICAgICAgICAgICAgICAgIHJlcyA9IHBhcnNlX3J1bGVfZGVmaW5p dGlvbihyZXMpCisgICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKAorICAgICAgICAgICAgICAgICAgW3NlbGYucnVsZV90 ZW1wX3BhdGgsICdzcWwvY3JlYXRlLnNxbCddKSwKKyAgICAgICAgICAgICAg ICAgICAgZGF0YT1yZXMsIGRpc3BsYXlfY29tbWVudHM9VHJ1ZSkKKyAgICAg ICAgICAgICAgICBTUUxfZGF0YSArPSAnXG4nCisgICAgICAgICAgICAgICAg U1FMX2RhdGEgKz0gU1FMCisgICAgICAgIHJldHVybiBTUUxfZGF0YQorCisg ICAgZGVmIGdldF90cmlnZ2VyX3NxbChzZWxmLCB2aWQpOgorICAgICAgICAi IiIKKyAgICAgICAgR2V0IGFsbCB0cmlnZ2VyIG5vZGVzIGFzc29jaWF0ZWQg d2l0aCB2aWV3IG5vZGUsCisgICAgICAgIGdlbmVyYXRlIHRoZWlyIHNxbCBh bmQgcmVuZGVyCisgICAgICAgIGludG8gc3FsIHRhYgorICAgICAgICAiIiIK KworICAgICAgICAjIERlZmluZSB0ZW1wbGF0ZSBwYXRoCisgICAgICAgIHNl bGYudHJpZ2dlcl90ZW1wX3BhdGggPSAndHJpZ2dlcicKKworICAgICAgICBT UUxfZGF0YSA9ICcnCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgi LyIuam9pbigKKyAgICAgICAgICAgIFtzZWxmLnRyaWdnZXJfdGVtcF9wYXRo LCAnc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAg ICAgdGlkPXZpZCkKKworICAgICAgICBzdGF0dXMsIGRhdGEgPSBzZWxmLmNv bm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9ZGF0YSkKKworICAgICAgICBmb3IgdHJpZ2dlciBpbiBkYXRhWydy b3dzJ106CisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8i LmpvaW4oCisgICAgICAgICAgICAgIFtzZWxmLnRyaWdnZXJfdGVtcF9wYXRo LCAnc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAg ICAgICAgIHRpZD10cmlnZ2VyWydvaWQnXSwKKyAgICAgICAgICAgICAgICB0 Z3JlbGlkPXZpZAorICAgICAgICAgICAgICAgICkKKworICAgICAgICAgICAg c3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKwor ICAgICAgICAgICAgcmVzX3Jvd3MgPSBkaWN0KHJlc1sncm93cyddWzBdKQor ICAgICAgICAgICAgaWYgcmVzX3Jvd3NbJ3RnbmFyZ3MnXSA+IDE6CisgICAg ICAgICAgICAgICAgIyBXZSBrbm93IHRoYXQgdHJpZ2dlciBoYXMgbW9yZSB0 aGFuIDEKKyAgICAgICAgICAgICAgICAjIGFyZ3VtZW50cywgbGV0J3Mgam9p biB0aGVtCisgICAgICAgICAgICAgICAgcmVzX3Jvd3NbJ3RnYXJncyddID0g JywgJy5qb2luKAorICAgICAgICAgICAgICAgICAgICByZXNfcm93c1sndGdh cmdzJ10pCisKKyAgICAgICAgICAgIGlmIGxlbihyZXNfcm93c1sndGdhdHRy J10pID4gMToKKyAgICAgICAgICAgICAgICBjb2x1bW5zID0gJywgJy5qb2lu KHJlc19yb3dzWyd0Z2F0dHInXS5zcGxpdCgnICcpKQorICAgICAgICAgICAg ICAgIHJlc19yb3dzWydjb2x1bW5zJ10gPSBzZWxmLmdldF90cmlnZ2VyX2Nv bHVtbl9kZXRhaWxzKAorICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyWydv aWQnXSwgY29sdW1ucykKKyAgICAgICAgICAgIHJlc19yb3dzID0gdHJpZ2dl cl9kZWZpbml0aW9uKHJlc19yb3dzKQorCisgICAgICAgICAgICBTUUwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICAgIFtzZWxm LnRyaWdnZXJfdGVtcF9wYXRoLCAnc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwn XSksCisgICAgICAgICAgICAgICAgZGF0YT1yZXNfcm93cywgZGlzcGxheV9j b21tZW50cz1UcnVlKQorICAgICAgICAgICAgU1FMX2RhdGEgKz0gJ1xuJwor ICAgICAgICAgICAgU1FMX2RhdGEgKz0gU1FMCisKKyAgICAgICAgcmV0dXJu IFNRTF9kYXRhCisKKyAgICBkZWYgZ2V0X2luZGV4X3NxbChzZWxmLCB2aWQp OgorICAgICAgICAiIiIKKyAgICAgICAgR2V0IGFsbCBpbmRleCBhc3NvY2lh dGVkIHdpdGggdmlldyBub2RlLAorICAgICAgICBnZW5lcmF0ZSB0aGVpciBz cWwgYW5kIHJlbmRlcgorICAgICAgICBpbnRvIHNxbCB0YWIKKyAgICAgICAg IiIiCisKKyAgICAgICAgc2VsZi5pbmRleF90ZW1wX3BhdGggPSAnaW5kZXgn CisgICAgICAgIFNRTF9kYXRhID0gJycKKyAgICAgICAgU1FMID0gcmVuZGVy X3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgIFtzZWxmLmluZGV4X3Rl bXBfcGF0aCwgJ3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbCddKSwgdGlk PXZpZCkKKyAgICAgICAgc3RhdHVzLCBkYXRhID0gc2VsZi5jb25uLmV4ZWN1 dGVfZGljdChTUUwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPWRh dGEpCisKKyAgICAgICAgZm9yIGluZGV4IGluIGRhdGFbJ3Jvd3MnXToKKyAg ICAgICAgICAgIHJlcyA9IFtdCisgICAgICAgICAgICBTUUwgPSByZW5kZXJf dGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICAgIFtzZWxmLmluZGV4 X3RlbXBfcGF0aCwgJ3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbCddKSwK KyAgICAgICAgICAgICAgICBpZHg9aW5kZXhbJ29pZCddLAorICAgICAgICAg ICAgICAgIHRpZD12aWQKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAg ICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQor CisgICAgICAgICAgICBkYXRhID0gZGljdChyZXNbJ3Jvd3MnXVswXSkKKyAg ICAgICAgICAgICMgQWRkaW5nIHBhcmVudCBpbnRvIGRhdGEgZGljdCwgd2ls bCBiZSB1c2luZyBpdCB3aGlsZSBjcmVhdGluZyBzcWwKKyAgICAgICAgICAg IGRhdGFbJ3NjaGVtYSddID0gZGF0YVsnbnNwbmFtZSddCisgICAgICAgICAg ICBkYXRhWyd0YWJsZSddID0gZGF0YVsndGFibmFtZSddCisKKyAgICAgICAg ICAgICMgQWRkIGNvbHVtbiBkZXRhaWxzIGZvciBjdXJyZW50IGluZGV4Cisg ICAgICAgICAgICBkYXRhID0gc2VsZi5nZXRfaW5kZXhfY29sdW1uX2RldGFp bHMoaW5kZXhbJ29pZCddLCBkYXRhKQorCisgICAgICAgICAgICBTUUwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICAgIFtzZWxm LmluZGV4X3RlbXBfcGF0aCwgJ3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsJ10p LAorICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgZGlzcGxheV9jb21tZW50 cz1UcnVlKQorICAgICAgICAgICAgU1FMX2RhdGEgKz0gJ1xuJworICAgICAg ICAgICAgU1FMX2RhdGEgKz0gU1FMCisgICAgICAgIHJldHVybiBTUUxfZGF0 YQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBzcWwoc2Vs ZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdmlkKToKKyAgICAgICAgIiIiCisg ICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBzcWwgdG8gcmVu ZGVyIGludG8gdGhlIHNxbCBwYW5lbAorICAgICAgICAiIiIKKworICAgICAg ICBTUUxfZGF0YSA9ICcnCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbigKKyAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAn c3FsL3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAgIHZpZD12aWQsCisg ICAgICAgICAgZGF0bGFzdHN5c29pZD1zZWxmLmRhdGxhc3RzeXNvaWQKKyAg ICAgICAgKQorCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4 ZWN1dGVfZGljdChTUUwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICByZXN1bHQgPSByZXNbJ3Jvd3MnXVswXQorCisg ICAgICAgICMgRmV0Y2ggYWxsIHByaXZpbGVnZXMgZm9yIHZpZXcKKyAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAg IFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwvYWNsLnNxbCddKSwgdmlkPXZp ZCkKKyAgICAgICAgc3RhdHVzLCBkYXRhY2xyZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorCisgICAgICAgIGZvciByb3cgaW4gZGF0YWNscmVzWydyb3dzJ106 CisgICAgICAgICAgICBwcml2ID0gc2VsZi5wYXJzZV92aWV3c19wcml2aWxl Z2VzKHJvdykKKyAgICAgICAgICAgIGlmIHJvd1snZGVmdHlwZSddIGluIHJl c1sncm93cyddWzBdOgorICAgICAgICAgICAgICAgIHJlc1sncm93cyddWzBd WydkYXRhY2wnXS5hcHBlbmQocHJpdikKKyAgICAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgICAgcmVzWydyb3dzJ11bMF1bJ2RhdGFjbCddID0gW3By aXZdCisKKyAgICAgICAgcmVzdWx0LnVwZGF0ZShyZXNbJ3Jvd3MnXVswXSkK KyAgICAgICAgaWYgJ2RhdGFjbCcgaW4gcmVzdWx0OgorICAgICAgICAgICAg cmVzdWx0WydkYXRhY2wnXSA9IHNlbGYucGFyc2VfcHJpdmlsZWdlcyhyZXN1 bHRbJ2RhdGFjbCddKQorCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbigKKyAgICAgICAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9w YXRoLCAnc3FsL2NyZWF0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgZGF0 YT1yZXN1bHQsCisgICAgICAgICAgICAgICAgY29ubj1zZWxmLmNvbm4sCisg ICAgICAgICAgICAgICAgZGlzcGxheV9jb21tZW50cz1UcnVlCisgICAgICAg ICAgICAgICkKKyAgICAgICAgU1FMICs9ICJcbiIKKyAgICAgICAgU1FMICs9 IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICBbc2VsZi50 ZW1wbGF0ZV9wYXRoLCAnc3FsL2dyYW50LnNxbCddKSwgZGF0YT1yZXN1bHQp CisKKyAgICAgICAgU1FMX2RhdGEgKz0gU1FMCisgICAgICAgIFNRTF9kYXRh ICs9IHNlbGYuZ2V0X3J1bGVfc3FsKHZpZCkKKyAgICAgICAgU1FMX2RhdGEg Kz0gc2VsZi5nZXRfdHJpZ2dlcl9zcWwodmlkKQorICAgICAgICBTUUxfZGF0 YSArPSBzZWxmLmdldF9pbmRleF9zcWwodmlkKQorCisgICAgICAgIHJldHVy biBhamF4X3Jlc3BvbnNlKHJlc3BvbnNlPVNRTF9kYXRhKQorCisgICAgQGNo ZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBnZXRfdGJsc3BjKHNlbGYsIGdp ZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhp cyBmdW5jdGlvbiB0byByZXR1cm4gbGlzdCBvZiB0YWJsZXNwYWNlcworICAg ICAgICAiIiIKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAgdHJ5OgorICAg ICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAg ICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwvZ2V0X3Ri bHNwYy5zcWwnXSkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICBz dGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAg ICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAg ICAgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAg ICAgICAgIHJlcy5hcHBlbmQoCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgeydsYWJlbCc6IHJvd1snc3BjbmFtZSddLCAndmFsdWUnOiByb3dbJ3Nw Y25hbWUnXX0KKyAgICAgICAgICAgICAgICAgICAgICAgICkKKworICAgICAg ICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg ICAgICAgICAgZGF0YT1yZXMsCisgICAgICAgICAgICAgICAgICAgIHN0YXR1 cz0yMDAKKyAgICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZXBlbmRlbnRzKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQsIHZpZCk6CisgICAgICAgICIiIgorICAgICAgICBU aGlzIGZ1bmN0aW9uIGdldHMgdGhlIGRlcGVuZGVudHMgYW5kIHJldHVybnMg YW4gYWpheCByZXNwb25zZQorICAgICAgICBmb3IgdGhlIHZpZXcgbm9kZS4K KworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3Jv dXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAg ICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICB2aWQ6IFZpZXcgSUQK KyAgICAgICAgIiIiCisgICAgICAgIGRlcGVuZGVudHNfcmVzdWx0ID0gc2Vs Zi5nZXRfZGVwZW5kZW50cyhzZWxmLmNvbm4sIHZpZCkKKyAgICAgICAgcmV0 dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZT1kZXBl bmRlbnRzX3Jlc3VsdCwKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAg ICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg ZGVwZW5kZW5jaWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHZpZCk6 CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldHMgdGhl IGRlcGVuZGVuY2llcyBhbmQgcmV0dXJucyBhbiBhamF4IHJlc3BvbnNlCisg ICAgICAgIGZvciB0aGUgdmlldyBub2RlLgorCisgICAgICAgIEFyZ3M6Cisg ICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAg c2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQK KyAgICAgICAgICAgIHZpZDogVmlldyBJRAorICAgICAgICAiIiIKKyAgICAg ICAgZGVwZW5kZW5jaWVzX3Jlc3VsdCA9IHNlbGYuZ2V0X2RlcGVuZGVuY2ll cyhzZWxmLmNvbm4sIHZpZCkKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9u c2UoCisgICAgICAgICAgICByZXNwb25zZT1kZXBlbmRlbmNpZXNfcmVzdWx0 LAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgKQorCisK K2NsYXNzIE1hdGVyaWFsaXplZFZpZXdOb2RlKFZpZXdOb2RlLCBWYWN1dW1T ZXR0aW5ncyk6CisgICAgIiIiCisgICAgVGhpcyBjbGFzcyBpcyByZXNwb25z aWJsZSBmb3IgZ2VuZXJhdGluZyByb3V0ZXMgZm9yCisgICAgbWF0ZXJpYWxp emVkIHZpZXcgbm9kZS4KKworICAgIE1ldGhvZHM6CisgICAgLS0tLS0tLQor ICAgICogX19pbml0X18oKiprd2FyZ3MpCisgICAgICAtIE1ldGhvZCBpcyB1 c2VkIHRvIGluaXRpYWxpemUgdGhlIE1hdGVyaWFsaXplZFZpZXcKKyAgICAg IGFuZCBpdCdzIGJhc2Ugdmlldy4KKworICAgICogbW9kdWxlX2pzKCkKKyAg ICAgIC0gVGhpcyBwcm9wZXJ0eSBkZWZpbmVzIChpZiBqYXZhc2NyaXB0KSBl eGlzdHMgZm9yIHRoaXMgbm9kZS4KKyAgICAgICAgT3ZlcnJpZGUgdGhpcyBw cm9wZXJ0eSBmb3IgeW91ciBvd24gbG9naWMKKworICAgICogY3JlYXRlKGdp ZCwgc2lkLCBkaWQsIHNjaWQpCisgICAgICAtIFJhaXNlIGFuIGVycm9yIC0g d2UgY2FuIG5vdCBjcmVhdGUgYSBtYXRlcmlhbCB2aWV3LgorCisgICAgKiB1 cGRhdGUoZ2lkLCBzaWQsIGRpZCwgc2NpZCkKKyAgICAgIC0gVGhpcyBmdW5j dGlvbiB3aWxsIHVwZGF0ZSB0aGUgZGF0YSBmb3IgdGhlIHNlbGVjdGVkIG1h dGVyaWFsIG5vZGUKKworICAgICogZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBz Y2lkKToKKyAgICAgIC0gUmFpc2UgYW4gZXJyb3IgLSB3ZSBjYW4gbm90IGRl bGV0ZSBhIG1hdGVyaWFsIHZpZXcuCisKKyAgICAqIGdldF9zcWwoZGF0YSwg c2NpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlIHNx bCBmcm9tIG1vZGVsIGRhdGEKKworICAgICIiIgorCisgICAgbm9kZV90eXBl ID0gbXZpZXdfYmx1ZXByaW50Lm5vZGVfdHlwZQorCisgICAgZGVmIF9faW5p dF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICIiIgorICAg ICAgICBJbml0aWFsaXplIHRoZSB2YXJpYWJsZXMgdXNlZCBieSBtZXRob2Rz IG9mIFZpZXdOb2RlLgorICAgICAgICAiIiIKKworICAgICAgICBzdXBlcihN YXRlcmlhbGl6ZWRWaWV3Tm9kZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoq a3dhcmdzKQorCisgICAgICAgIHNlbGYudGVtcGxhdGVfaW5pdGlhbCA9ICdt dmlldycKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgcGdfdGVtcGxh dGVfcGF0aCh2ZXIpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyB0 aGUgdGVtcGxhdGUgcGF0aCBmb3IgUG9zdGdyZVNRTCBzZXJ2ZXJzLgorICAg ICAgICAiIiIKKyAgICAgICAgaWYgdmVyID49IDkwMzAwOgorICAgICAgICAg ICAgcmV0dXJuICdwZy85LjNfcGx1cycKKyAgICAgICAgcmV0dXJuICdwZy85 LjNfcGx1cycKKworICAgIGRlZiBnZXRfc3FsKHNlbGYsIGdpZCwgc2lkLCBk YXRhLCBzY2lkLCB2aWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBU aGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3FsIGZyb20gbW9kZWwgZGF0 YQorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2NpZCBpcyBOb25lOgorICAg ICAgICAgICAgcmV0dXJuIGJhZF9yZXF1ZXN0KCdDYW5ub3QgY3JlYXRlIGEg VmlldyEnKQorCisgICAgICAgIHJldHVybiBzdXBlcihNYXRlcmlhbGl6ZWRW aWV3Tm9kZSwgc2VsZikuZ2V0X3NxbCgKKyAgICAgICAgICAgICAgICBnaWQs IHNpZCwgZGF0YSwgc2NpZCwgdmlkKQorCisgICAgZGVmIGdldFNRTChzZWxm LCBnaWQsIHNpZCwgZGF0YSwgdmlkPU5vbmUpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGdlbnJhdGUgc3FsIGZyb20gbW9k ZWwgZGF0YQorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAg ICAgaWYgdmlkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIFNRTCA9 IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAgICAgICAg ICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NxbC9wcm9wZXJ0aWVzLnNxbCdd KSwKKyAgICAgICAgICAgICAgICAgIHZpZD12aWQsCisgICAgICAgICAgICAg ICAgICBkYXRsYXN0c3lzb2lkPXNlbGYuZGF0bGFzdHN5c29pZAorICAgICAg ICAgICAgICAgICkKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNl bGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAg ICAgIG9sZF9kYXRhID0gcmVzWydyb3dzJ11bMF0KKworICAgICAgICAgICAg ICAgIGlmICduYW1lJyBub3QgaW4gZGF0YToKKyAgICAgICAgICAgICAgICAg ICAgZGF0YVsnbmFtZSddID0gcmVzWydyb3dzJ11bMF1bJ25hbWUnXQorICAg ICAgICAgICAgICAgIGlmICdzY2hlbWEnIG5vdCBpbiBkYXRhOgorICAgICAg ICAgICAgICAgICAgICBkYXRhWydzY2hlbWEnXSA9IHJlc1sncm93cyddWzBd WydzY2hlbWEnXQorCisgICAgICAgICAgICAgICAgIyBtZXJnZSB2YWN1dW0g bGlzdHMgaW50byBvbmUKKyAgICAgICAgICAgICAgICBkYXRhWyd2YWN1dW1f ZGF0YSddID0ge30KKyAgICAgICAgICAgICAgICBkYXRhWyd2YWN1dW1fZGF0 YSddWydjaGFuZ2VkJ10gPSBbXQorICAgICAgICAgICAgICAgIGRhdGFbJ3Zh Y3V1bV9kYXRhJ11bJ3Jlc2V0J10gPSBbXQorCisgICAgICAgICAgICAgICAg IyB0YWJsZSB2YWN1dW06IHNlcGFyYXRlIGxpc3Qgb2YgY2hhbmdlZCBhbmQg cmVzZXQgZGF0YSBmb3IKKyAgICAgICAgICAgICAgICBpZiAoJ3ZhY3V1bV90 YWJsZScgaW4gZGF0YSk6CisgICAgICAgICAgICAgICAgICAgIGlmICgnY2hh bmdlZCcgaW4gZGF0YVsndmFjdXVtX3RhYmxlJ10pOgorICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIGl0ZW0gaW4gZGF0YVsndmFjdXVtX3RhYmxlJ11b J2NoYW5nZWQnXToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAn dmFsdWUnIGluIGl0ZW0ua2V5cygpOgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBpdGVtWyd2YWx1ZSddIGlzIE5vbmU6CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvbGRfZGF0YVtpdGVt WyduYW1lJ11dICE9IGl0ZW1bJ3ZhbHVlJ106CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsndmFjdXVtX2RhdGEnXVsn cmVzZXQnXS5hcHBlbmQoaXRlbSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIChvbGRfZGF0YVtpdGVtWyduYW1lJ11dIGlzIE5vbmUgb3IK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmbG9h dChvbGRfZGF0YVtpdGVtWyduYW1lJ11dKSAhPSBmbG9hdChpdGVtWyd2YWx1 ZSddKSkpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGFbJ3ZhY3V1bV9kYXRhJ11bJ2NoYW5nZWQnXS5hcHBlbmQoaXRl bSkKKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCdhdXRvdmFjdXVt X2VuYWJsZWQnIGluIGRhdGEgYW5kCisgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHIoZGF0YVsnYXV0b3ZhY3V1bV9lbmFibGVkJ10pLmxvd2VyKCkg IT0gc3RyKG9sZF9kYXRhWydhdXRvdmFjdXVtX2VuYWJsZWQnXSkubG93ZXIo KSk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsndmFjdXVt X2RhdGEnXVsnY2hhbmdlZCddLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgeyduYW1lJzogJ2F1dG92YWN1dW1fZW5hYmxlZCcs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnOiBk YXRhWydhdXRvdmFjdXVtX2VuYWJsZWQnXX0pCisKKyAgICAgICAgICAgICAg ICAjIHRvYXN0IGF1dG92YWN1dW06IHNlcGFyYXRlIGxpc3Qgb2YgY2hhbmdl ZCBhbmQgcmVzZXQgZGF0YQorICAgICAgICAgICAgICAgIGlmICgndmFjdXVt X3RvYXN0JyBpbiBkYXRhKToKKyAgICAgICAgICAgICAgICAgICAgaWYgKCdj aGFuZ2VkJyBpbiBkYXRhWyd2YWN1dW1fdG9hc3QnXSk6CisgICAgICAgICAg ICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBkYXRhWyd2YWN1dW1fdG9hc3Qn XVsnY2hhbmdlZCddOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm ICd2YWx1ZScgaW4gaXRlbS5rZXlzKCk6CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRvYXN0X2tleSA9ICd0b2FzdF8nK2l0ZW1bJ25hbWUn XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtWyduYW1l J10gPSAndG9hc3QuJytpdGVtWyduYW1lJ10KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgaXRlbVsndmFsdWUnXSBpcyBOb25lOgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2xkX2RhdGFb dG9hc3Rfa2V5XSAhPSBpdGVtWyd2YWx1ZSddOgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbJ3ZhY3V1bV9kYXRhJ11b J3Jlc2V0J10uYXBwZW5kKGl0ZW0pCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAob2xkX2RhdGFbdG9hc3Rfa2V5XSBpcyBOb25lIG9yCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmxvYXQo b2xkX2RhdGFbdG9hc3Rfa2V5XSkgIT0gZmxvYXQoaXRlbVsndmFsdWUnXSkp KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk YXRhWyd2YWN1dW1fZGF0YSddWydjaGFuZ2VkJ10uYXBwZW5kKGl0ZW0pCisg ICAgICAgICAgICAgICAgaWYgKCd0b2FzdF9hdXRvdmFjdXVtX2VuYWJsZWQn IGluIGRhdGEgYW5kCisgICAgICAgICAgICAgICAgICAgc3RyKGRhdGFbJ3Rv YXN0X2F1dG92YWN1dW1fZW5hYmxlZCddKS5sb3dlcigpICE9IHN0cihvbGRf ZGF0YVsndG9hc3RfYXV0b3ZhY3V1bV9lbmFibGVkJ10pLmxvd2VyKCkpOgor ICAgICAgICAgICAgICAgICAgICBkYXRhWyd2YWN1dW1fZGF0YSddWydjaGFu Z2VkJ10uYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgeyduYW1l JzogJ3RvYXN0LmF1dG92YWN1dW1fZW5hYmxlZCcsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICd2YWx1ZSc6IGRhdGFbJ3RvYXN0X2F1dG92YWN1dW1f ZW5hYmxlZCddfSkKKworICAgICAgICAgICAgICAgIGtleSA9ICdkYXRhY2wn CisgICAgICAgICAgICAgICAgaWYga2V5IGluIGRhdGEgYW5kIGRhdGFba2V5 XSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgaWYgJ2FkZGVk JyBpbiBkYXRhW2tleV06CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRh W2tleV1bJ2FkZGVkJ10gPSBzZWxmLnBhcnNlX3ByaXZpbGVnZXMoCisgICAg ICAgICAgICAgICAgICAgICAgICAgIGRhdGFba2V5XVsnYWRkZWQnXSkKKyAg ICAgICAgICAgICAgICAgICAgaWYgJ2NoYW5nZWQnIGluIGRhdGFba2V5XToK KyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFba2V5XVsnY2hhbmdlZCdd ID0gc2VsZi5wYXJzZV9wcml2aWxlZ2VzKAorICAgICAgICAgICAgICAgICAg ICAgICAgICBkYXRhW2tleV1bJ2NoYW5nZWQnXSkKKyAgICAgICAgICAgICAg ICAgICAgaWYgJ2RlbGV0ZWQnIGluIGRhdGFba2V5XToKKyAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGFba2V5XVsnZGVsZXRlZCddID0gc2VsZi5wYXJz ZV9wcml2aWxlZ2VzKAorICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh W2tleV1bJ2RlbGV0ZWQnXSkKKworICAgICAgICAgICAgICAgIGlmIChsZW4o ZGF0YVsndmFjdXVtX2RhdGEnXVsnY2hhbmdlZCddKSA9PSAwIGFuZAorICAg ICAgICAgICAgICAgICAgIGxlbihkYXRhWyd2YWN1dW1fZGF0YSddWydyZXNl dCddKSA9PSAwKToKKyAgICAgICAgICAgICAgICAgICAgZGF0YVsnc2V0dGlu Z3MnXSA9IGRpY3QoKQorICAgICAgICAgICAgICAgICAgICBpZiAoJ2F1dG92 YWN1dW1fY3VzdG9tJyBpbiBkYXRhIGFuZCBkYXRhWydhdXRvdmFjdXVtX2N1 c3RvbSddIGlzIFRydWUgYW5kCisgICAgICAgICAgICAgICAgICAgICAgIChk YXRhWydhdXRvdmFjdXVtX2N1c3RvbSddICE9IG9sZF9kYXRhWydhdXRvdmFj dXVtX2N1c3RvbSddKSBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgKCdh dXRvdmFjdXVtX2VuYWJsZWQnIGluIGRhdGEgYW5kIGRhdGFbJ2F1dG92YWN1 dW1fZW5hYmxlZCddIGlzIFRydWUpKToKKyAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGFbJ3NldHRpbmdzJ11bJ2F1dG92YWN1dW1fZW5hYmxlZCddID0g ZGF0YVsnYXV0b3ZhY3V1bV9jdXN0b20nXQorICAgICAgICAgICAgICAgICAg ICBlbGlmICgnYXV0b3ZhY3V1bV9lbmFibGVkJyBpbiBkYXRhIGFuZCBvbGRf ZGF0YVsnYXV0b3ZhY3V1bV9lbmFibGVkJ10gaXMgbm90IE5vbmUgYW5kCisg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihkYXRhWydhdXRvdmFjdXVt X2VuYWJsZWQnXSkubG93ZXIoKSAhPSBvbGRfZGF0YVsnYXV0b3ZhY3V1bV9l bmFibGVkJ10ubG93ZXIoKSk6CisgICAgICAgICAgICAgICAgICAgICAgICBk YXRhWydzZXR0aW5ncyddWydhdXRvdmFjdXVtX2VuYWJsZWQnXSA9IGRhdGFb J2F1dG92YWN1dW1fZW5hYmxlZCddCisKKyAgICAgICAgICAgICAgICB0cnk6 CisgICAgICAgICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgi LyIuam9pbigKKyAgICAgICAgICAgICAgICAgICAgICBbc2VsZi50ZW1wbGF0 ZV9wYXRoLCAnc3FsL3VwZGF0ZS5zcWwnXSksIGRhdGE9ZGF0YSwKKyAgICAg ICAgICAgICAgICAgICAgICAgIG9fZGF0YT1vbGRfZGF0YSwgY29ubj1zZWxm LmNvbm4pCisgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBl OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKyAgICAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgICAgcmVxdWlyZWRfYXJncyA9IFsKKyAgICAgICAgICAg ICAgICAgICAgJ25hbWUnLAorICAgICAgICAgICAgICAgICAgICAnc2NoZW1h JywKKyAgICAgICAgICAgICAgICAgICAgJ2RlZmluaXRpb24nCisgICAgICAg ICAgICAgICAgXQorICAgICAgICAgICAgICAgIGZvciBhcmcgaW4gcmVxdWly ZWRfYXJnczoKKyAgICAgICAgICAgICAgICAgICAgaWYgYXJnIG5vdCBpbiBk YXRhOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIgLS0gZGVm aW5pdGlvbiBpbmNvbXBsZXRlIgorCisgICAgICAgICAgICAgICAgIyBHZXQg U2NoZW1hIE5hbWUgZnJvbSBpdHMgT0lELgorICAgICAgICAgICAgICAgIGlm ICdzY2hlbWEnIGluIGRhdGE6CisgICAgICAgICAgICAgICAgICAgIGRhdGFb J3NjaGVtYSddID0gc2VsZi5fZ2V0X3NjaGVtYShkYXRhWydzY2hlbWEnXSkK KworICAgICAgICAgICAgICAgICMgbWVyZ2UgdmFjdXVtIGxpc3RzIGludG8g b25lCisgICAgICAgICAgICAgICAgdmFjdXVtX3RhYmxlID0gW2l0ZW0gZm9y IGl0ZW0gaW4gZGF0YVsndmFjdXVtX3RhYmxlJ10KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgJ3ZhbHVlJyBpbiBpdGVtLmtleXMoKSBh bmQgaXRlbVsndmFsdWUnXSBpcyBub3QgTm9uZV0KKyAgICAgICAgICAgICAg ICB2YWN1dW1fdG9hc3QgPSBbCisgICAgICAgICAgICAgICAgICAgIHsnbmFt ZSc6ICd0b2FzdC4nK2l0ZW1bJ25hbWUnXSwgJ3ZhbHVlJzppdGVtWyd2YWx1 ZSddfQorICAgICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBkYXRhWyd2 YWN1dW1fdG9hc3QnXSBpZiAndmFsdWUnIGluIGl0ZW0ua2V5cygpIGFuZCBp dGVtWyd2YWx1ZSddIGlzIG5vdCBOb25lXQorCisgICAgICAgICAgICAgICAg IyBhZGQgdmFjdXVtX3RvYXN0IGRpY3QgdG8gdmFjdXVtX2RhdGEgb25seSBp ZgorICAgICAgICAgICAgICAgICMgdG9hc3QncyBhdXRvdmFjdXVtIGlzIGVu YWJsZWQKKyAgICAgICAgICAgICAgICBpZiAoJ3RvYXN0X2F1dG92YWN1dW1f ZW5hYmxlZCcgaW4gZGF0YSBhbmQKKyAgICAgICAgICAgICAgICAgICBkYXRh Wyd0b2FzdF9hdXRvdmFjdXVtX2VuYWJsZWQnXSBpcyBUcnVlKToKKyAgICAg ICAgICAgICAgICAgICAgZGF0YVsndmFjdXVtX2RhdGEnXSA9IHZhY3V1bV90 YWJsZSArIHZhY3V1bV90b2FzdAorICAgICAgICAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgICAgICAgIGRhdGFbJ3ZhY3V1bV9kYXRhJ10gPSB2YWN1 dW1fdGFibGUKKworICAgICAgICAgICAgICAgIGlmICdkYXRhY2wnIGluIGRh dGEgYW5kIGRhdGFbJ2RhdGFjbCddIGlzIG5vdCBOb25lOgorICAgICAgICAg ICAgICAgICAgICBkYXRhWydkYXRhY2wnXSA9IHNlbGYucGFyc2VfcHJpdmls ZWdlcyhkYXRhWydkYXRhY2wnXSkKKyAgICAgICAgICAgICAgICBTUUwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICAgICAgICBb c2VsZi50ZW1wbGF0ZV9wYXRoLCAnc3FsL2NyZWF0ZS5zcWwnXSksIGRhdGE9 ZGF0YSkKKyAgICAgICAgICAgICAgICBpZiBkYXRhWydkZWZpbml0aW9uJ106 CisgICAgICAgICAgICAgICAgICAgIFNRTCArPSAiXG4iCisgICAgICAgICAg ICAgICAgICAgIFNRTCArPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisg ICAgICAgICAgICAgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Nx bC9ncmFudC5zcWwnXSksIGRhdGE9ZGF0YSkKKyAgICAgICAgICAgIHJldHVy biBTUUwKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg c3FsKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHZpZCk6CisgICAgICAg ICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3Fs IHRvIHJlbmRlciBpbnRvIHRoZSBzcWwgcGFuZWwKKyAgICAgICAgIiIiCisK KyAgICAgICAgU1FMX2RhdGEgPSAnJworICAgICAgICBTUUwgPSByZW5kZXJf dGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgW3NlbGYudGVtcGxhdGVf cGF0aCwgJ3NxbC9wcm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICB2aWQ9 dmlkLAorICAgICAgICAgIGRhdGxhc3RzeXNvaWQ9c2VsZi5kYXRsYXN0c3lz b2lkCisgICAgICAgICkKKworICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYu Y29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVz OgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1yZXMpCisKKyAgICAgICAgcmVzdWx0ID0gcmVzWydyb3dzJ11b MF0KKworICAgICAgICAjIHNlbmRpbmcgcmVzdWx0IHRvIGZvcm10dGVyCisg ICAgICAgIGZybXRkX3Jlc2x0ID0gc2VsZi5mb3JtYXR0ZXIocmVzdWx0KQor CisgICAgICAgICMgbWVyZ2luZyBmb3JtYXRlZCByZXN1bHQgd2l0aCBtYWlu IHJlc3VsdCBhZ2FpbgorICAgICAgICByZXN1bHQudXBkYXRlKGZybXRkX3Jl c2x0KQorICAgICAgICByZXN1bHRbJ3ZhY3V1bV90YWJsZSddID0gc2VsZi5w YXJzZV92YWN1dW1fZGF0YSgKKyAgICAgICAgICAgIHNlbGYuY29ubiwgcmVz dWx0LCAndGFibGUnKQorICAgICAgICByZXN1bHRbJ3ZhY3V1bV90b2FzdCdd ID0gc2VsZi5wYXJzZV92YWN1dW1fZGF0YSgKKyAgICAgICAgICAgIHNlbGYu Y29ubiwgcmVzdWx0LCAndG9hc3QnKQorCisgICAgICAgICMgbWVyZ2UgdmFj dXVtIGxpc3RzIGludG8gb25lCisgICAgICAgIHZhY3V1bV90YWJsZSA9IFtp dGVtIGZvciBpdGVtIGluIHJlc3VsdFsndmFjdXVtX3RhYmxlJ10KKyAgICAg ICAgICAgICAgICAgICAgICAgIGlmICd2YWx1ZScgaW4gaXRlbS5rZXlzKCkg YW5kIGl0ZW1bJ3ZhbHVlJ10gaXMgbm90IE5vbmVdCisgICAgICAgIHZhY3V1 bV90b2FzdCA9IFsKKyAgICAgICAgICAgIHsnbmFtZSc6ICd0b2FzdC4nK2l0 ZW1bJ25hbWUnXSwgJ3ZhbHVlJzppdGVtWyd2YWx1ZSddfQorICAgICAgICAg ICAgZm9yIGl0ZW0gaW4gcmVzdWx0Wyd2YWN1dW1fdG9hc3QnXSBpZiAndmFs dWUnIGluIGl0ZW0ua2V5cygpIGFuZCBpdGVtWyd2YWx1ZSddIGlzIG5vdCBO b25lXQorCisgICAgICAgICMgYWRkIHZhY3V1bV90b2FzdCBkaWN0IHRvIHZh Y3V1bV9kYXRhIG9ubHkgaWYKKyAgICAgICAgIyB0b2FzdCdzIGF1dG92YWN1 dW0gaXMgZW5hYmxlZAorICAgICAgICBpZiAoJ3RvYXN0X2F1dG92YWN1dW1f ZW5hYmxlZCcgaW4gcmVzdWx0IGFuZAorICAgICAgICAgICByZXN1bHRbJ3Rv YXN0X2F1dG92YWN1dW1fZW5hYmxlZCddIGlzIFRydWUpOgorICAgICAgICAg ICAgcmVzdWx0Wyd2YWN1dW1fZGF0YSddID0gdmFjdXVtX3RhYmxlICsgdmFj dXVtX3RvYXN0CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXN1bHRb J3ZhY3V1bV9kYXRhJ10gPSB2YWN1dW1fdGFibGUKKworICAgICAgICAjIEZl dGNoIGFsbCBwcml2aWxlZ2VzIGZvciB2aWV3CisgICAgICAgIFNRTCA9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICBbc2VsZi50ZW1w bGF0ZV9wYXRoLCAnc3FsL2FjbC5zcWwnXSksIHZpZD12aWQpCisgICAgICAg IHN0YXR1cywgZGF0YWNscmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChT UUwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAg ICAgICBmb3Igcm93IGluIGRhdGFjbHJlc1sncm93cyddOgorICAgICAgICAg ICAgcHJpdiA9IHNlbGYucGFyc2Vfdmlld3NfcHJpdmlsZWdlcyhyb3cpCisg ICAgICAgICAgICBpZiByb3dbJ2RlZnR5cGUnXSBpbiByZXNbJ3Jvd3MnXVsw XToKKyAgICAgICAgICAgICAgICByZXNbJ3Jvd3MnXVswXVsnZGF0YWNsJ10u YXBwZW5kKHByaXYpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg ICAgIHJlc1sncm93cyddWzBdWydkYXRhY2wnXSA9IFtwcml2XQorCisgICAg ICAgIHJlc3VsdC51cGRhdGUocmVzWydyb3dzJ11bMF0pCisgICAgICAgIGlm ICdkYXRhY2wnIGluIHJlc3VsdDoKKyAgICAgICAgICAgIHJlc3VsdFsnZGF0 YWNsJ10gPSBzZWxmLnBhcnNlX3ByaXZpbGVnZXMocmVzdWx0WydkYXRhY2wn XSkKKworICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4o CisgICAgICAgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NxbC9j cmVhdGUuc3FsJ10pLAorICAgICAgICAgICAgICAgIGRhdGE9cmVzdWx0LAor ICAgICAgICAgICAgICAgIGNvbm49c2VsZi5jb25uLAorICAgICAgICAgICAg ICAgIGRpc3BsYXlfY29tbWVudHM9VHJ1ZQorICAgICAgICAgICAgICApCisg ICAgICAgIFNRTCArPSAiXG4iCisgICAgICAgIFNRTCArPSByZW5kZXJfdGVt cGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0 aCwgJ3NxbC9ncmFudC5zcWwnXSksIGRhdGE9cmVzdWx0KQorCisgICAgICAg IFNRTF9kYXRhICs9IFNRTAorICAgICAgICBTUUxfZGF0YSArPSBzZWxmLmdl dF9ydWxlX3NxbCh2aWQpCisgICAgICAgIFNRTF9kYXRhICs9IHNlbGYuZ2V0 X3RyaWdnZXJfc3FsKHZpZCkKKyAgICAgICAgU1FMX2RhdGEgKz0gc2VsZi5n ZXRfaW5kZXhfc3FsKHZpZCkKKworICAgICAgICByZXR1cm4gYWpheF9yZXNw b25zZShyZXNwb25zZT1TUUxfZGF0YSkKKworICAgIEBjaGVja19wcmVjb25k aXRpb24KKyAgICBkZWYgZ2V0X3RhYmxlX3ZhY3V1bShzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzY2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIEZldGNoIHRo ZSBkZWZhdWx0IHZhbHVlcyBmb3IgYXV0b3ZhY3V1bQorICAgICAgICBmaWVs ZHMsIHJldHVybiBhbiBhcnJheSBvZgorICAgICAgICAgIC0gbGFiZWwKKyAg ICAgICAgICAtIG5hbWUKKyAgICAgICAgICAtIHNldHRpbmcKKyAgICAgICAg dmFsdWVzCisgICAgICAgICIiIgorCisgICAgICAgIHJlcyA9IHNlbGYuZ2V0 X3ZhY3V1bV90YWJsZV9zZXR0aW5ncyhzZWxmLmNvbm4pCisgICAgICAgIHJl dHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIHJlc3BvbnNl PXJlc1sncm93cyddLAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAg ICAgICAgICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisg ICAgZGVmIGdldF90b2FzdF90YWJsZV92YWN1dW0oc2VsZiwgZ2lkLCBzaWQs IGRpZCwgc2NpZCk6CisgICAgICAgICIiIgorICAgICAgICBGZXRjaCB0aGUg ZGVmYXVsdCB2YWx1ZXMgZm9yIGF1dG92YWN1dW0KKyAgICAgICAgZmllbGRz LCByZXR1cm4gYW4gYXJyYXkgb2YKKyAgICAgICAgICAtIGxhYmVsCisgICAg ICAgICAgLSBuYW1lCisgICAgICAgICAgLSBzZXR0aW5nCisgICAgICAgIHZh bHVlcworICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gc2VsZi5nZXRfdmFj dXVtX3RvYXN0X3NldHRpbmdzKHNlbGYuY29ubikKKworICAgICAgICByZXR1 cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZT1y ZXNbJ3Jvd3MnXSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAg ICAgICAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAg IGRlZiBwcm9wZXJ0aWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHZp ZCk6CisgICAgICAgICIiIgorICAgICAgICBGZXRjaGVzIHRoZSBwcm9wZXJ0 aWVzIG9mIGFuIGluZGl2aWR1YWwgdmlldworICAgICAgICBhbmQgcmVuZGVy IGluIHRoZSBwcm9wZXJ0aWVzIHRhYgorICAgICAgICAiIiIKKyAgICAgICAg U1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAg W3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NxbC9wcm9wZXJ0aWVzLnNxbCddCisg ICAgICAgICAgKSwgdmlkPXZpZCwgZGF0bGFzdHN5c29pZD1zZWxmLmRhdGxh c3RzeXNvaWQpCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4 ZWN1dGVfZGljdChTUUwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpv aW4oCisgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NxbC9hY2wu c3FsJ10pLCB2aWQ9dmlkKQorICAgICAgICBzdGF0dXMsIGRhdGFjbHJlcyA9 IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICBpZiBub3Qg c3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgZm9yIHJvdyBpbiBkYXRh Y2xyZXNbJ3Jvd3MnXToKKyAgICAgICAgICAgIHByaXYgPSBzZWxmLnBhcnNl X3ZpZXdzX3ByaXZpbGVnZXMocm93KQorICAgICAgICAgICAgaWYgcm93Wydk ZWZ0eXBlJ10gaW4gcmVzWydyb3dzJ11bMF06CisgICAgICAgICAgICAgICAg cmVzWydyb3dzJ11bMF1bcm93WydkZWZ0eXBlJ11dLmFwcGVuZChwcml2KQor ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXNbJ3Jvd3Mn XVswXVtyb3dbJ2RlZnR5cGUnXV0gPSBbcHJpdl0KKworICAgICAgICByZXN1 bHQgPSByZXNbJ3Jvd3MnXVswXQorCisgICAgICAgICMgc2VuZGluZyByZXN1 bHQgdG8gZm9ybXR0ZXIKKyAgICAgICAgZnJtdGRfcmVzbHQgPSBzZWxmLmZv cm1hdHRlcihyZXN1bHQpCisKKyAgICAgICAgIyBtZXJnaW5nIGZvcm1hdGVk IHJlc3VsdCB3aXRoIG1haW4gcmVzdWx0IGFnYWluCisgICAgICAgIHJlc3Vs dC51cGRhdGUoZnJtdGRfcmVzbHQpCisKKyAgICAgICAgcmVzdWx0Wyd2YWN1 dW1fdGFibGUnXSA9IHNlbGYucGFyc2VfdmFjdXVtX2RhdGEoCisgICAgICAg ICAgICBzZWxmLmNvbm4sIHJlc3VsdCwgJ3RhYmxlJykKKyAgICAgICAgcmVz dWx0Wyd2YWN1dW1fdG9hc3QnXSA9IHNlbGYucGFyc2VfdmFjdXVtX2RhdGEo CisgICAgICAgICAgICBzZWxmLmNvbm4sIHJlc3VsdCwgJ3RvYXN0JykKKwor ICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAg ICByZXNwb25zZT1yZXN1bHQsCisgICAgICAgICAgICAgICAgc3RhdHVzPTIw MAorICAgICAgICAgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRp b24KKyAgICBkZWYgcmVmcmVzaF9kYXRhKHNlbGYsIGdpZCwgc2lkLCBkaWQs IHNjaWQsIHZpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0 aW9uIHdpbGwgcmVmcmVzaCB2aWV3IG9iamVjdAorICAgICAgICAiIiIKKwor ICAgICAgICAjIEJlbG93IHdpbGwgZGVjaWRlIGlmIGl0J3MgcmVmcmVzaCBk YXRhIG9yIHJlZnJlc2ggY29uY3VycmVudGx5CisgICAgICAgIGRhdGEgPSBy ZXF1ZXN0LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVsc2UganNvbi5sb2Fkcyhy ZXF1ZXN0LmRhdGEuZGVjb2RlKCkpCisgICAgICAgIGlzX2NvbmN1cnJlbnQg PSBqc29uLmxvYWRzKGRhdGFbJ2NvbmN1cnJlbnQnXSkKKworICAgICAgICB0 cnk6CisKKyAgICAgICAgICAgICMgRmV0Y2ggdmlldyBuYW1lIGJ5IHZpZXcg aWQKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9p bigKKyAgICAgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NxbC9n ZXRfdmlld19uYW1lLnNxbCddKSwgdmlkPXZpZCkKKyAgICAgICAgICAgIHN0 YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAg ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAg ICAgICAgICAjIFJlZnJlc2ggdmlldworICAgICAgICAgICAgU1FMID0gcmVu ZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAgICBbc2VsZi50 ZW1wbGF0ZV9wYXRoLCAnc3FsL3JlZnJlc2guc3FsJ10pLAorICAgICAgICAg ICAgICBuYW1lPXJlc1sncm93cyddWzBdWyduYW1lJ10sCisgICAgICAgICAg ICAgIG5zcG5hbWU9cmVzWydyb3dzJ11bMF1bJ3NjaGVtYSddLCBpc19jb25j dXJyZW50PWlzX2NvbmN1cnJlbnQpCisgICAgICAgICAgICBzdGF0dXMsIHJl c19kYXRhID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAg ICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzX2RhdGEpCisKKyAg ICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAg ICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgIGluZm89Z2V0 dGV4dCgiVmlldyByZWZyZXNoZWQiKSwKKyAgICAgICAgICAgICAgICBkYXRh PXsKKyAgICAgICAgICAgICAgICAgICAgJ2lkJzogdmlkLAorICAgICAgICAg ICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAgICAn Z2lkJzogZ2lkLAorICAgICAgICAgICAgICAgICAgICAnZGlkJzogZGlkCisg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKQorCisgICAgICAgIGV4 Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCitWaWV3Tm9k ZS5yZWdpc3Rlcl9ub2RlX3ZpZXcodmlld19ibHVlcHJpbnQpCitNYXRlcmlh bGl6ZWRWaWV3Tm9kZS5yZWdpc3Rlcl9ub2RlX3ZpZXcobXZpZXdfYmx1ZXBy aW50KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvY2hpbGRy ZW4vX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy9jaGlsZHJl bi9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4zOTkzZmYzCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvY2hpbGRyZW4vX19pbml0X18ucHkKQEAgLTAsMCArMSwxMiBA QAorIiIiCitXZSB3aWxsIHVzZSB0aGUgZXhpc2l0aW5nIG1vZHVsZXMgZm9y IGNyZWF0aW5nIGNoaWxkcmVuIG1vZHVsZSB1bmRlcgorbWF0ZXJpYWxpemUg dmlld3MuCisiIiIKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMuY29sdW1uIFwK KyAgaW1wb3J0IGJsdWVwcmludCBhcyBjb2x1bW5zX21vZHVsZQorZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy5zY2hlbWFzLnRhYmxlcy5pbmRleGVzIFwKKyAgaW1wb3J0IGJsdWVwcmlu dCBhcyBpbmRleGVzX21vZHVsZXMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMu dHJpZ2dlcnMgXAorICBpbXBvcnQgYmx1ZXByaW50IGFzIHRyaWdnZXJzX21v ZHVsZXMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMucnVsZXMgXAorICBpbXBv cnQgYmx1ZXByaW50IGFzIHJ1bGVzX21vZHVsZXMKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3N0YXRpYy9pbWcvY29sbC1tdmlldy5wbmcg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy9zdGF0aWMvaW1nL2NvbGwtbXZpZXcu cG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwZTY1YTk2ZTE4MDA0MTA0 YjA0MWIwYWUzMjU3OWIyNmFlOTcwNTgKR0lUIGJpbmFyeSBwYXRjaApsaXRl cmFsIDM3NAp6Y21WLSswZzMqSlApPGg7M0t8TGswMDBlMU5KTFRxMDAwbUcw MDBtTzFeQHM2QU1eaVYwMDAwOWE3YkJtMDAwWFUKejAwMFhVMFJXbnU3eXRr UENgbSo/UjU7Nn1sZk8jQ1AheHkxK2VWNmwpeTt5KkFQNzNSaEBqUVFyNEJ4 WUxwekJlCno7XkgkMTt0UWxOO04mNj5QQSg+aExBT0UkMmI8WU41QFZDeD4h MVZebml8UG5Fe0EpNS19IWVCbHNwMiE4Snd2ewp6X3h4WU4mWmE5OGZOQU0h citFbGI0Szx2RnBnfWQ3cWF5MUZSWkIhbGVEYVJObzREcnJeXlUjdXAzcl8l WnlydHkKek1XMGBvQjgrX2l3Q3JRTUlUJFBNK0Q2TE9pYTNwZllrODVqUzVC RHBUMnkybXVYQGt6JWZVIyRUKT1SbWhkMXBJCnpOez4pX3hoM1RTbG9Fditz dWdrQ256X1FYXnUqcTZeYjxRNVVfVmBFS01ybTZlZ0J6M3clWio5Ti0yYThu M2tTYAp6WGhsY1p3VClDNkJMU19BZUlna1UlTVQqeTZVUDN9MVRJKXdVTD1m dEF7aFd+YERJJHdrNjFIfk1jSGxVM3VrKzgKVXZ9LT0oJjtTNGMwNypxb002 TjwkZjwhQEBwI1Q1PwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mvc3RhdGljL2ltZy9jb2xsLXZp ZXcucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mvc3RhdGljL2ltZy9jb2xs LXZpZXcucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3OGQ1MzM2ODRi OGJkN2UxODU3NDljNGYxYzk2MjBhZjIzZDExNGIKR0lUIGJpbmFyeSBwYXRj aApsaXRlcmFsIDQxOAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjB3QiE2 Mz93eWxgR2JLfVk9QlJRRTA4fD54T2RLUm5SekReOXtyajIKel99bFZGQEFm QDtiQH1QQGQoV1JnZWZJM3hxbz1wN0tWUH0hVilVY2AtVChnbWQtJVY1YCVB VXx8Tm4xKXA/PkdoCnpuKFomdFBKYSROez14Z2Z6cVVKbj5UZG9qSl5zPUFA T3lgU1pfSVlSKChBSFd7MDMrTlZAWiUtRm9WT2g4KSthOwp6bERFNXlRMXpa MUFlKGAreiQzQzROUEI+PitzU01AQVMyKD8jVzYoVWElZ3t+UD1mLUd2KzI3 UDlWPlFKfDQ7VTYKemJlIUdLSCtrUFNNTmglMFlEO3dWUHAhJnAkPUgyUWE+ NF9pQy1Xc2A0b1Z1YGtYdkRJZTVsX2VWfGp3VzsrNStTCnpZZ3k2flBZZHkr LWNTNDUpfmsyWiEkV0FBVWN0K29rXmtyQytNbFZzK3BwZnljYEBGYG5DPD5s LVZNcT90NXIpfQp6QlQ3O2RPSCE/cGkmQjlVZ09QIXVwe3t8RXU5MTAmcF4y NURySW8zdnd0PDxJZmtGUGhrZXcoUmFgUkklKDwqVW0KVWtiQ0B3Nnt2eTEp NzgmcW9sYDsrMExRTVc1ZFopSAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mvc3RhdGljL2ltZy9t dmlldy5wbmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy9zdGF0aWMvaW1nL212 aWV3LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjcyYmRiYjAyNGQy MDZhOWNjY2NjMzA3Yjk4MGFmN2RjOWNlYTg4CkdJVCBiaW5hcnkgcGF0Y2gK bGl0ZXJhbCAzNDQKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjF8 O1BffDQjJWBvQ098eyNTOUdHIVhWN1pGbCZ3azB8TyhNCnpyO0I1ViNwJmIo aUhyanIkdkhiRXt7QkNAejFienhYb19adiE4Rn5wbG1zQVg8bE9oR1pweSo0 VGU9IVFQRkZibQp6VTtZdH5Qclp3eiNRITI9Z01aSCh2ajNkXyhmbTtPYUF3 PT9ePTFjO0s0QU92YCt4Z0dgX0pLUnZFc0tzK3xwWm4KejtePkQqeDZPVCtD cGQwOG4hSU0jXkxaMUYzTTN5KTcyY0g7KTMpaEJAdyg8JEVOdHVJISszN1gm M1lLcGU3KWlPCnpvN0VCX0U+MDU5V1RyUUVTOTt4WGRpZEQlIUsxMGtKUnFQ cyYwa3tEZjlIJXZ1PyhNIXh0TnM/JnZ8VWIpNipqJAp6YnlxK3YkeXhnNSU/ alFFIX1DYyRLRUchX2U4MnZfcX18X3w2OSoxIz15SHM4WmZ5akRocmkjSzFD ODxEcCNGNG8KbGZBIzxRXl9UcE1nNSlaSWZ0NEt8RTRLVXBDU1h1OGMpSSR6 dGFEMGUwc3hTKWxtLTkqCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy9zdGF0aWMvaW1nL3ZpZXcu cG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mvc3RhdGljL2ltZy92aWV3LnBu ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDExNmRiNTY0OTZiYjQ3N2M4 ZWNlN2QzZmRkYTY2NmUxYjM3NThiCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh bCA0MzcKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/d3lsYEdi S31YQEYwTkUwOHw+eE9kS1JuYUJUb0FPND43Cno7T245WForQVVAZEdZRDxg X0c/MGVmSTN4PEVPVzdKWVJGe01lQFFebnZlYz5aLTEld3xOc0IoRlZ0Xjtw N1B8eQp6am9VOWJUPXxpNjtjTWRRJnRiPHRkU0NnVGJLelUhQHNIbHlVI0xD Ji0rbGFwX2sofEpjbUNBZns4ZjdPTkF9X08KejQqVEFpP1J1czZSZHJQJiZ8 PTF0QWlyUCtoaTVtXkslNjlSY05mNyZUV3htJUloK0xeaztPcFQxQn41SFg0 P1Q3CnpTKU1NQUFyaEM5NkFtIStfO0BnPTk1ezAzKDVZa1I0eFQpRV56N2wm Pl9RTFJIM1NseEk1P2Fib2Z3cSNQcEdobgp6M3kzYHdhdXBPMW88Nn12YUtm WiU2QnZVd0Jge2h9WHhQelc2VD5panArUjx7KSY8I1Izc3gtQShOa1EhWGNi I24KejwwREhxcFl6Tk5KekxtfHw1JHl4MEpLJUwjNUpOTUM5eCNjRCFDe1hO SEd7MDcjaXByOHRFRHNoOFApR25IWER7CnptfShvQ1N7V0czZCNBU3dNTUd8 V05AaUxtTTF6NFBTT1pZQ2lJc3NGTThtMStwPSpFfDcoOEE1VC1HQHlHeXdu eApDbTkoKHsKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9jc3MvbXZp ZXcuY3NzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212aWV3 L2Nzcy9tdmlldy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uNDc4MjUzMAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9jc3MvbXZpZXcuY3NzCkBAIC0w LDAgKzEsMTIgQEAKKy5pY29uLW12aWV3eworICBiYWNrZ3JvdW5kLWltYWdl OiB1cmwoJ3t7IHVybF9mb3IoJ05PREUtbXZpZXcuc3RhdGljJywgZmlsZW5h bWU9J2ltZy9tdmlldy5wbmcnKSB9fScpICFpbXBvcnRhbnQ7CisgIGJvcmRl ci1yYWRpdXM6IDEwcHg7CisgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBl YXQ7CisgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsKKyAgdmVydGljYWwtYWxp Z246IG1pZGRsZTsKKyAgaGVpZ2h0OiAxLjNlbTsKK30KKworLnNxbF9maWVs ZF93aWR0aF9mdWxsIHsKKyAgd2lkdGg6IDEwMCU7Cit9CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvanMvbXZp ZXcuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcv anMvbXZpZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uYTZkMjZhNAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9qcy9tdmlldy5qcwpAQCAtMCwwICsx LDMxNSBAQAorZGVmaW5lKAorICBbJ2pxdWVyeScsICd1bmRlcnNjb3JlJywg J3VuZGVyc2NvcmUuc3RyaW5nJywgJ3BnYWRtaW4nLCAnYWxlcnRpZnknLAor ICAgICdwZ2FkbWluLmJyb3dzZXInLCAnY29kZW1pcnJvcicsICdwZ2FkbWlu LmJyb3dzZXIuc2VydmVyLnByaXZpbGVnZSddLAorCitmdW5jdGlvbigkLCBf LCBTLCBwZ0FkbWluLCBhbGVydGlmeSwgcGdCcm93c2VyLCBDb2RlTWlycm9y KSB7CisKKyAgLyoqCisgICAgQ3JlYXRlIGFuZCBhZGQgYSB2aWV3IGNvbGxl Y3Rpb24gaW50byBub2RlcworICAgIEBwYXJhbSB7dmFyaWFibGV9IGxhYmVs IC0gTGFiZWwgZm9yIE5vZGUKKyAgICBAcGFyYW0ge3ZhcmlhYmxlfSB0eXBl IC0gVHlwZSBvZiBOb2RlCisgICAgQHBhcmFtIHt2YXJpYWJsZX0gY29sdW1u cyAtIExpc3Qgb2YgY29sdW1ucyB0bworICAgICAgZGlzcGxheSB1bmRlciB1 bmRlciBwcm9wZXJ0aWVzLgorICAgKi8KKyAgaWYgKCFwZ0Jyb3dzZXIuTm9k ZXNbJ2NvbGwtbXZpZXcnXSkgeworICAgIHZhciBtdmlld3M9IHBnQWRtaW4u QnJvd3Nlci5Ob2Rlc1snY29sbC1tdmlldyddID0KKyAgICAgIHBnQWRtaW4u QnJvd3Nlci5Db2xsZWN0aW9uLmV4dGVuZCh7CisgICAgICAgIG5vZGU6ICdt dmlldycsCisgICAgICAgIGxhYmVsOiAne3sgXygiTWF0ZXJpYWxpemVkIFZp ZXdzIikgfX0nLAorICAgICAgICB0eXBlOiAnY29sbC1tdmlldycsCisgICAg ICAgIGNvbHVtbnM6IFsnbmFtZScsICdvd25lciddCisgICAgICB9KTsKKyAg fQorCisgIC8qKgorICAgIENyZWF0ZSBhbmQgQWRkIGEgVmlldyBOb2RlIGlu dG8gbm9kZXMKKyAgICBAcGFyYW0ge3ZhcmlhYmxlfSBwYXJlbnRfdHlwZSAt IFRoZSBsaXN0IG9mIG5vZGVzCisgICAgdW5kZXIgd2hpY2ggdGhpcyBub2Rl IHRvIGRpc3BsYXkKKyAgICBAcGFyYW0ge3ZhcmlhYmxlfSB0eXBlIC0gVHlw ZSBvZiBOb2RlCisgICAgQHBhcmFtIHt2YXJpYWJsZX0gaGFzU1FMIC0gVG8g c2hvdyBTUUwgdGFiCisgICAgQHBhcmFtIHt2YXJpYWJsZX0gY2FuRHJvcCAt IEFkZHMgZHJvcCB2aWV3IG9wdGlvbgorICAgIGluIHRoZSBjb250ZXh0IG1l bnUKKyAgICBAcGFyYW0ge3ZhcmlhYmxlfSBjYW5Ecm9wQ2FzY2FkZSAtIEFk ZHMgZHJvcCBDYXNjYWRlCisgICAgdmlldyBvcHRpb24gaW4gdGhlIGNvbnRl eHQgbWVudQorICAgKi8KKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ212aWV3 J10pIHsKKyAgICBwZ0FkbWluLkJyb3dzZXIuTm9kZXNbJ212aWV3J10gPSBw Z0FkbWluLkJyb3dzZXIuTm9kZS5leHRlbmQoeworICAgICAgcGFyZW50X3R5 cGU6IFsnc2NoZW1hJywgJ2NhdGFsb2cnXSwKKyAgICAgIHR5cGU6ICdtdmll dycsCisgICAgICBzcWxBbHRlckhlbHA6ICdzcWwtYWx0ZXJtYXRlcmlhbGl6 ZWR2aWV3Lmh0bWwnLAorICAgICAgc3FsQ3JlYXRlSGVscDogJ3NxbC1jcmVh dGVtYXRlcmlhbGl6ZWR2aWV3Lmh0bWwnLAorICAgICAgbGFiZWw6ICd7eyBf KCJNYXRlcmlhbGl6ZWQgVmlldyIpIH19JywKKyAgICAgIGhhc1NRTDogIHRy dWUsCisgICAgICBoYXNEZXBlbmRzOiB0cnVlLAorICAgICAgY29sbGVjdGlv bl90eXBlOiAnY29sbC1tdmlldycsCisgICAgICBjYW5Ecm9wOiBwZ0Jyb3dz ZXIuTm9kZXNbJ3NjaGVtYSddLmNhbkNoaWxkRHJvcCwKKyAgICAgIGNhbkRy b3BDYXNjYWRlOiBwZ0Jyb3dzZXIuTm9kZXNbJ3NjaGVtYSddLmNhbkNoaWxk RHJvcCwKKyAgICAgIEluaXQ6IGZ1bmN0aW9uKCkgeworCisgICAgICAgIC8v IEF2b2lkIG11bGl0cGxlIHJlZ2lzdHJhdGlvbiBvZiBtZW51cworICAgICAg ICBpZiAodGhpcy5pbml0aWFsaXplZCkKKyAgICAgICAgICByZXR1cm47CisK KyAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7CisKKyAgICAgICAg LyoqCisgICAgICAgICAgQWRkICJjcmVhdGUgdmlldyIgbWVudSBvcHRpb24g aW50byBjb250ZXh0IGFuZCBvYmplY3QgbWVudQorICAgICAgICAgIGZvciB0 aGUgZm9sbG93aW5nIG5vZGVzOgorICAgICAgICAgIGNvbGwtbXZpZXcsIHZp ZXcgYW5kIHNjaGVtYS4KKyAgICAgICAgICBAcHJvcGVydHkge2RhdGF9IC0g QWxsb3cgY3JlYXRlIHZpZXcgb3B0aW9uIG9uIHNjaGVtYSBub2RlIG9yCisg ICAgICAgICAgc3lzdGVtIHZpZXcgbm9kZXMuCisgICAgICAgICAqLworICAg ICAgICBwZ0Jyb3dzZXIuYWRkX21lbnVzKFt7CisgICAgICAgICAgbmFtZTog J2NyZWF0ZV9tdmlld19vbl9jb2xsJywgbm9kZTogJ2NvbGwtbXZpZXcnLAor ICAgICAgICAgIG1vZHVsZTogdGhpcywgYXBwbGllczogWydvYmplY3QnLCAn Y29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAor ICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDEsIGxh YmVsOiAne3sgXygiTWF0ZXJpYWxpemVkIFZpZXcuLi4iKSB9fScsCisgICAg ICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLW12aWV3JywgZGF0YToge2Fj dGlvbjogJ2NyZWF0ZScsIGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBlbmFi bGU6ICdjYW5DcmVhdGUnCisgICAgICAgIH0seworICAgICAgICAgIG5hbWU6 ICdjcmVhdGVfbXZpZXcnLCBub2RlOiAnbXZpZXcnLCBtb2R1bGU6IHRoaXMs CisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBj YWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNh dGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDEsIGxhYmVsOiAne3sgXygi TWF0ZXJpYWxpemVkIFZpZXcuLi4iKSB9fScsCisgICAgICAgICAgaWNvbjog J3djVGFiSWNvbiBpY29uLW12aWV3JywgZGF0YToge2FjdGlvbjogJ2NyZWF0 ZScsIGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVh dGUnCisgICAgICAgIH0seworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfbXZp ZXcnLCBub2RlOiAnc2NoZW1hJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAg IGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdz aG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2Ny ZWF0ZScsIHByaW9yaXR5OiAxOCwgbGFiZWw6ICd7eyBfKCJNYXRlcmlhbGl6 ZWQgVmlldy4uLiIpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29u IGljb24tbXZpZXcnLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6 IGZhbHNlfSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUnCisgICAg ICAgIH0seworICAgICAgICAgIG5hbWU6ICdyZWZyZXNoX212aWV3Jywgbm9k ZTogJ212aWV3JywgbW9kdWxlOiB0aGlzLCBjYXRlZ29yeTogJ1JlZnJlc2gg dmlldycsCisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4 dCddLCBjYWxsYmFjazogJ3JlZnJlc2hfbXZpZXcnLCBpY29uOiAnZmEgZmEt cmVmcmVzaCcsCisgICAgICAgICAgcHJpb3JpdHk6IDEsIGxhYmVsOiAne3sg XygiUmVmcmVzaCBkYXRhIikgfX0nLCBkYXRhOiB7Y29uY3VycmVudDogZmFs c2V9CisgICAgICAgIH0seworICAgICAgICAgIG5hbWU6ICdyZWZyZXNoX212 aWV3X2NvbmN1cnJlbnQnLCBub2RlOiAnbXZpZXcnLCBtb2R1bGU6IHRoaXMs CisgICAgICAgICAgY2F0ZWdvcnk6ICdSZWZyZXNoIHZpZXcnLAorICAgICAg ICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6 ICdyZWZyZXNoX212aWV3JywgaWNvbjogJ2ZhIGZhLXJlZnJlc2gnLAorICAg ICAgICAgIHByaW9yaXR5OiAyLCBsYWJlbDogJ3t7IF8oIlJlZnJlc2ggY29u Y3VycmVudGx5IikgfX0nLCBkYXRhOiB7Y29uY3VycmVudDogdHJ1ZX0KKyAg ICAgICAgfQorICAgICAgICBdKTsKKyAgICAgIH0sCisKKyAgICAgIC8qKgor ICAgICAgICBEZWZpbmUgbW9kZWwgZm9yIHRoZSB2aWV3IG5vZGUgYW5kIHNw ZWNpZnkgdGhlCisgICAgICAgIHByb3BlcnRpZXMgb2YgdGhlIG1vZGVsIGlu IHNjaGVtYS4KKyAgICAgICAqLworICAgICAgbW9kZWw6IHBnQWRtaW4uQnJv d3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAgICAgIGluaXRpYWxpemU6 IGZ1bmN0aW9uKGF0dHJzLCBhcmdzKSB7CisgICAgICAgICAgdmFyIGlzTmV3 ID0gKF8uc2l6ZShhdHRycykgPT09IDApOworICAgICAgICAgIGlmIChpc05l dykgeworICAgICAgICAgICAgLy8gU2V0IFNlbGVjdGVkIFNjaGVtYQorICAg ICAgICAgICAgc2NoZW1hX2lkID0gYXJncy5ub2RlX2luZm8uc2NoZW1hLl9p ZDsKKyAgICAgICAgICAgIHRoaXMuc2V0KHsnc2NoZW1hJzogc2NoZW1hX2lk fSwge3NpbGVudDogdHJ1ZX0pOworCisgICAgICAgICAgICAvLyBTZXQgQ3Vy cmVudCBVc2VyCisgICAgICAgICAgICB2YXIgdXNlckluZm8gPSBwZ0Jyb3dz ZXIuc2VydmVySW5mb1thcmdzLm5vZGVfaW5mby5zZXJ2ZXIuX2lkXS51c2Vy OworICAgICAgICAgICAgdGhpcy5zZXQoeydvd25lcic6IHVzZXJJbmZvLm5h bWV9LCB7c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgfQorICAgICAgICAg IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLnByb3RvdHlwZS5pbml0aWFs aXplLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgICAgICAgIH0sCisgICAg ICAgIGRlZmF1bHRzOiB7CisgICAgICAgICAgc3BjbmFtZTogJ3BnX2RlZmF1 bHQnLAorICAgICAgICAgIHRvYXN0X2F1dG92YWN1dW1fZW5hYmxlZDogZmFs c2UsCisgICAgICAgICAgYXV0b3ZhY3V1bV9lbmFibGVkOiBmYWxzZQorICAg ICAgICB9LAorICAgICAgICBzY2hlbWE6IFt7CisgICAgICAgICAgaWQ6ICdu YW1lJywgbGFiZWw6ICd7eyBfKCJOYW1lIikgfX0nLCBjZWxsOiAnc3RyaW5n JywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiAnaW5TY2hl bWEnCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ29p ZCcsIGxhYmVsOid7eyBfKCJPSUQiKSB9fScsIGNlbGw6ICdzdHJpbmcnLAor ICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6IHRydWUsIG1vZGU6 IFsncHJvcGVydGllcyddCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg ICAgICBpZDogJ293bmVyJywgbGFiZWw6J3t7IF8oIk93bmVyIikgfX0nLCBj ZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICBjb250cm9sOiAnbm9kZS1saXN0 LWJ5LW5hbWUnLAorICAgICAgICAgIG5vZGU6ICdyb2xlJywgZGlzYWJsZWQ6 ICdpblNjaGVtYScKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg IGlkOiAnc2NoZW1hJywgbGFiZWw6J3t7IF8oIlNjaGVtYSIpIH19JywgY2Vs bDogJ3N0cmluZycsIGZpcnN0X2VtcHR5OiBmYWxzZSwKKyAgICAgICAgICBj b250cm9sOiAnbm9kZS1saXN0LWJ5LWlkJywgdHlwZTogJ3RleHQnLCBjYWNo ZV9sZXZlbDogJ2RhdGFiYXNlJywKKyAgICAgICAgICBub2RlOiAnc2NoZW1h JywgbW9kZTogWydjcmVhdGUnLCAnZWRpdCddLCBkaXNhYmxlZDogJ2luU2No ZW1hJworICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdz eXN0ZW1fdmlldycsIGxhYmVsOid7eyBfKCJTeXN0ZW0gdmlldz8iKSB9fScs IGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBk aXNhYmxlZDogdHJ1ZSwgbW9kZTogWydwcm9wZXJ0aWVzJ10sCisgICAgICAg IH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ2FjbCcsIGxhYmVsOiAn e3sgXygiQUNMIikgfX0nLAorICAgICAgICAgIG1vZGU6IFsncHJvcGVydGll cyddLCB0eXBlOiAndGV4dCcKKyAgICAgICAgfSwKKyAgICAgICAgeworICAg ICAgICAgIGlkOiAnY29tbWVudCcsIGxhYmVsOid7eyBfKCJDb21tZW50Iikg fX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAnbXVsdGls aW5lJworICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdk ZWZpbml0aW9uJywgbGFiZWw6J3t7IF8oIiIpIH19JywgY2VsbDogJ3N0cmlu ZycsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBtb2RlOiBbJ2NyZWF0ZScs ICdlZGl0J10sIGdyb3VwOiAnRGVmaW5pdGlvbicsCisgICAgICAgICAgY29u dHJvbDogQmFja2Zvcm0uU3FsRmllbGRDb250cm9sLCBleHRyYUNsYXNzZXM6 WydzcWxfZmllbGRfd2lkdGhfZnVsbCddCisgICAgICAgIH0sCisgICAgICAg IC8vIEFkZCBQcml2aWxlZ2UgQ29udHJvbAorICAgICAgICB7CisgICAgICAg ICAgaWQ6ICdkYXRhY2wnLCBsYWJlbDogJ3t7IF8oIlByaXZpbGVnZXMiKSB9 fScsCisgICAgICAgICAgbW9kZWw6IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLlBy aXZpbGVnZVJvbGVNb2RlbC5leHRlbmQoCisgICAgICAgICAgICB7cHJpdmls ZWdlczogWydhJywgJ3InLCAndycsICdkJywgJ0QnLCAneCcsICd0J119KSwg dW5pcXVlQ29sIDogWydncmFudGVlJ10sCisgICAgICAgICAgZWRpdGFibGU6 IGZhbHNlLCB0eXBlOiAnY29sbGVjdGlvbicsIGdyb3VwOiAne3sgXygiU2Vj dXJpdHkiKSB9fScsCisgICAgICAgICAgbW9kZTogWydlZGl0JywgJ2NyZWF0 ZSddLCBjYW5BZGQ6IHRydWUsIGNhbkRlbGV0ZTogdHJ1ZSwKKyAgICAgICAg ICBjb250cm9sOiAndW5pcXVlLWNvbC1jb2xsZWN0aW9uJywgcHJpb3JpdHk6 IDMKKyAgICAgICAgfSwKKworICAgICAgICAvLyBBZGQgU2VjdXJpdHkgTGFi ZWxzIENvbnRyb2wKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnc2VjbGFi ZWxzJywgbGFiZWw6ICd7eyBfKCJTZWN1cml0eSBMYWJlbHMiKSB9fScsCisg ICAgICAgICAgbW9kZWw6IEJhY2tmb3JtLlNlY3VyaXR5TW9kZWwsIGVkaXRh YmxlOiBmYWxzZSwgdHlwZTogJ2NvbGxlY3Rpb24nLAorICAgICAgICAgIGNh bkVkaXQ6IGZhbHNlLCBncm91cDogJ3t7IF8oIlNlY3VyaXR5IikgfX0nLCBj YW5EZWxldGU6IHRydWUsCisgICAgICAgICAgbW9kZTogWydlZGl0JywgJ2Ny ZWF0ZSddLCBjYW5BZGQ6IHRydWUsCisgICAgICAgICAgY29udHJvbDogJ3Vu aXF1ZS1jb2wtY29sbGVjdGlvbicsIHVuaXF1ZUNvbCA6IFsncHJvdmlkZXIn XQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICd3aXRo X2RhdGEnLCBsYWJlbDogJ3t7IF8oIldpdGggRGF0YSIpIH19JywKKyAgICAg ICAgICBncm91cDogJ3t7IF8oIlN0b3JhZ2UiKSB9fScsIG1vZGU6IFsnZWRp dCcsICdjcmVhdGUnXSwKKyAgICAgICAgICB0eXBlOiAnc3dpdGNoJywKKyAg ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnc3BjbmFtZScs IGxhYmVsOiAne3sgXygiVGFibGVzcGFjZSIpIH19JywgY2VsbDogJ3N0cmlu ZycsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBncm91cDogJ3t7IF8oIlN0 b3JhZ2UiKSB9fScsIGZpcnN0X2VtcHR5OiBmYWxzZSwKKyAgICAgICAgICBj b250cm9sOiAnbm9kZS1saXN0LWJ5LW5hbWUnLCBub2RlOiAndGFibGVzcGFj ZScsCisgICAgICAgICAgZmlsdGVyOiBmdW5jdGlvbihtKSB7CisgICAgICAg ICAgICBpZiAobS5sYWJlbCA9PSAicGdfZ2xvYmFsIikgcmV0dXJuIGZhbHNl OworICAgICAgICAgICAgZWxzZSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9 CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ2ZpbGxm YWN0b3InLCBsYWJlbDogJ3t7IF8oIkZpbGwgRmFjdG9yIikgfX0nLAorICAg ICAgICAgIGdyb3VwOiAne3sgXygiU3RvcmFnZSIpIH19JywgbW9kZTogWydl ZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAgIHR5cGU6ICdpbnRlZ2VyJywg bWluOiAxMCwgbWF4OiAxMDAKKyAgICAgICAgfSwKKyAgICAgICAgeworICAg ICAgICAgIHR5cGU6ICduZXN0ZWQnLCBjb250cm9sOiAndGFiJywgaWQ6ICdt YXRlcmlhbGl6YXRpb24nLAorICAgICAgICAgIGxhYmVsOiAne3sgXygiTWF0 ZXJpYWxpemF0aW9uIikgfX0nLCBtb2RlOiBbJ2VkaXQnLCAnY3JlYXRlJ10s CisgICAgICAgICAgZ3JvdXA6ICd7eyBfKCJTdG9yYWdlIikgfX0nLAorICAg ICAgICAgIHNjaGVtYTogQmFja2Zvcm0uVmFjdXVtU2V0dGluZ3NTY2hlbWEK KyAgICAgICAgfSwKKyAgICAgICAgXSwKKyAgICAgICAgdmFsaWRhdGU6IGZ1 bmN0aW9uKGtleXMpIHsKKworICAgICAgICAgIC8vIFRyaWdnZXJzIHNwZWNp ZmljIGVycm9yIG1lc3NhZ2VzIGZvciBmaWVsZHMKKyAgICAgICAgICB2YXIg ZXJyID0ge30sCisgICAgICAgICAgICBlcnJtc2csCisgICAgICAgICAgICBm aWVsZF9uYW1lID0gdGhpcy5nZXQoJ25hbWUnKSwKKyAgICAgICAgICAgIGZp ZWxkX2RlZiA9IHRoaXMuZ2V0KCdkZWZpbml0aW9uJyk7CisgICAgICAgICAg aWYgKF8uaW5kZXhPZihrZXlzLCAnYXV0b3ZhY3V1bV9lbmFibGVkJykgIT0g LTEgfHwKKyAgICAgICAgICAgICAgXy5pbmRleE9mKGtleXMsICd0b2FzdF9h dXRvdmFjdXVtX2VuYWJsZWQnKSAhPSAtMSApCisgICAgICAgICAgICAgIHJl dHVybiBudWxsOworCisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQoZmll bGRfbmFtZSkgfHwgXy5pc051bGwoZmllbGRfbmFtZSkgfHwKKyAgICAgICAg ICAgIFN0cmluZyhmaWVsZF9uYW1lKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywg JycpID09ICcnKSB7CisgICAgICAgICAgICBlcnJbJ25hbWUnXSA9ICd7eyBf KCJQbGVhc2Ugc3BlY2lmeSBuYW1lLiIpIH19JzsKKyAgICAgICAgICAgIGVy cm1zZyA9IGVycm1zZyB8fCBlcnJbJ25hbWUnXTsKKyAgICAgICAgICAgIHRo aXMuZXJyb3JNb2RlbC5zZXQoJ25hbWUnLCBlcnJtc2cpOworICAgICAgICAg ICAgcmV0dXJuIGVycm1zZzsKKyAgICAgICAgICB9ZWxzZXsKKyAgICAgICAg ICAgIHRoaXMuZXJyb3JNb2RlbC51bnNldCgnbmFtZScpOworICAgICAgICAg IH0KKyAgICAgICAgICBpZih0aGlzLmlzTmV3KCkpeworICAgICAgICAgICAg aWYgKF8uaXNVbmRlZmluZWQoZmllbGRfZGVmKSB8fCBfLmlzTnVsbChmaWVs ZF9kZWYpIHx8CisgICAgICAgICAgICAgIFN0cmluZyhmaWVsZF9kZWYpLnJl cGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAg ICAgZXJyWydkZWZpbml0aW9uJ10gPSAne3sgXygiUGxlYXNlIGVudGVyIGZ1 bmN0aW9uIGRlZmluaXRpb24uIikgfX0nOworICAgICAgICAgICAgICBlcnJt c2cgPSBlcnJtc2cgfHwgZXJyWydkZWZpbml0aW9uJ107CisgICAgICAgICAg ICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ2RlZmluaXRpb24nLCBlcnJtc2cp OworICAgICAgICAgICAgICByZXR1cm4gZXJybXNnOworICAgICAgICAgICAg fWVsc2V7CisgICAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC51bnNldCgn ZGVmaW5pdGlvbicpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAg ICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfSwKKyAgICAgICAgLy8g V2Ugd2lsbCBkaXNhYmxlIGV2ZXJ5dGhpbmcgaWYgd2UgYXJlIHVuZGVyIGNh dGFsb2cgbm9kZQorICAgICAgICBpblNjaGVtYTogZnVuY3Rpb24oKSB7Cisg ICAgICAgICAgaWYodGhpcy5ub2RlX2luZm8gJiYgJ2NhdGFsb2cnIGluIHRo aXMubm9kZV9pbmZvKQorICAgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVy biB0cnVlOworICAgICAgICAgIH0KKyAgICAgICAgICByZXR1cm4gZmFsc2U7 CisgICAgICAgIH0KKworICAgICAgfSksCisKKyAgICAgIC8qKgorICAgICAg ICBTaG93IG9yIGhpZGUgY3JlYXRlIHZpZXcgbWVudSBvcHRpb24gb24gcGFy ZW50IG5vZGUKKyAgICAgICAgYW5kIGhpZGUgZm9yIHN5c3RlbSB2aWV3IGlu IGNhdGFsb2dzLgorICAgICAgICovCisgICAgICBjYW5DcmVhdGU6IGZ1bmN0 aW9uKGl0ZW1EYXRhLCBpdGVtLCBkYXRhKSB7CisKKyAgICAgICAgLy8gSWYg Y2hlY2sgaXMgZmFsc2UgdGhlbiwgd2Ugd2lsbCBhbGxvdyBjcmVhdGUgbWVu dQorICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLmNoZWNrID09PSBmYWxzZSkK KyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICB2YXIgdCA9IHBn QnJvd3Nlci50cmVlLCBpID0gaXRlbSwgZCA9IGl0ZW1EYXRhOworCisgICAg ICAgIC8vIFRvIGl0ZXJhdGUgb3ZlciB0cmVlIHRvIGNoZWNrIHBhcmVudCBu b2RlCisgICAgICAgIHdoaWxlIChpKSB7CisKKyAgICAgICAgICAvLyBJZiBp dCBpcyBzY2hlbWEgdGhlbiBhbGxvdyB1c2VyIHRvIGNyZWF0ZSB2aWV3Cisg ICAgICAgICAgaWYgKF8uaW5kZXhPZihbJ3NjaGVtYSddLCBkLl90eXBlKSA+ IC0xKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgICBp ZiAoJ2NvbGwtbXZpZXcnID09IGQuX3R5cGUpIHsKKworICAgICAgICAgICAg Ly8gQ2hlY2sgaWYgd2UgYXJlIG5vdCBjaGlsZCBvZiB2aWV3CisgICAgICAg ICAgICBwcmV2X2kgPSB0Lmhhc1BhcmVudChpKSA/IHQucGFyZW50KGkpIDog bnVsbDsKKyAgICAgICAgICAgIHByZXZfZCA9IHByZXZfaSA/IHQuaXRlbURh dGEocHJldl9pKSA6IG51bGw7CisgICAgICAgICAgICBpZiggcHJldl9kLl90 eXBlID09ICdjYXRhbG9nJykgeworICAgICAgICAgICAgICByZXR1cm4gZmFs c2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICByZXR1 cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAg ICAgaSA9IHQuaGFzUGFyZW50KGkpID8gdC5wYXJlbnQoaSkgOiBudWxsOwor ICAgICAgICAgIGQgPSBpID8gdC5pdGVtRGF0YShpKSA6IG51bGw7CisgICAg ICAgIH0KKworICAgICAgICAvLyBieSBkZWZhdWx0IHdlIGRvIG5vdCB3YW50 IHRvIGFsbG93IGNyZWF0ZSBtZW51CisgICAgICAgIHJldHVybiB0cnVlOwor CisgICAgICB9LAorICAgICAgcmVmcmVzaF9tdmlldzogZnVuY3Rpb24oYXJn cykgeworICAgICAgICAgIHZhciBpbnB1dCA9IGFyZ3MgfHwge307CisgICAg ICAgICAgb2JqID0gdGhpcywKKyAgICAgICAgICB0ID0gcGdCcm93c2VyLnRy ZWUsCisgICAgICAgICAgaSA9IGlucHV0Lml0ZW0gfHwgdC5zZWxlY3RlZCgp LAorICAgICAgICAgIGQgPSBpICYmIGkubGVuZ3RoID09IDEgPyB0Lml0ZW1E YXRhKGkpIDogdW5kZWZpbmVkOworCisgICAgICAgICAgaWYgKCFkKQorICAg ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIE1ha2UgYWph eCBjYWxsIHRvIHJlZnJlc2ggbXZpZXcgZGF0YQorICAgICAgICAkLmFqYXgo eworICAgICAgICAgIHVybDogb2JqLmdlbmVyYXRlX3VybChpLCAncmVmcmVz aF9kYXRhJyAsIGQsIHRydWUpLAorICAgICAgICAgIHR5cGU6ICdQVVQnLAor ICAgICAgICAgIGRhdGE6IHsnY29uY3VycmVudCc6IGFyZ3MuY29uY3VycmVu dH0sCisgICAgICAgICAgZGF0YVR5cGU6ICJqc29uIiwKKyAgICAgICAgICBz dWNjZXNzOiBmdW5jdGlvbihyZXMpIHsKKyAgICAgICAgICAgIGlmIChyZXMu c3VjY2VzcyA9PSAxKSB7CisgICAgICAgICAgICAgIGFsZXJ0aWZ5LnN1Y2Nl c3MoJ1ZpZXcgcmVmcmVzaGVkIHN1Y2Nlc3NmdWxseScpOworICAgICAgICAg ICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgIGFsZXJ0 aWZ5LmFsZXJ0KAorICAgICAgICAgICAgICAgICdFcnJvciByZWZyZXNoaW5n IHZpZXcnLAorICAgICAgICAgICAgICAgICAgcmVzLmRhdGEucmVzdWx0Cisg ICAgICAgICAgICAgICk7CisgICAgICAgICAgICB9CisgICAgICAgICAgfSwK KyAgICAgICAgICBlcnJvcjogZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg dmFyIGVycm1zZyA9ICQucGFyc2VKU09OKGUucmVzcG9uc2VUZXh0KTsKKyAg ICAgICAgICAgIGFsZXJ0aWZ5LmFsZXJ0KCdFcnJvciByZWZyZXNoaW5nIHZp ZXcnLCBlcnJtc2cuZXJyb3Jtc2cpOworICAgICAgICAgIH0KKyAgICAgICAg fSk7CisKKyAgICAgIH0KKyAgfSk7CisgIH0KKworICByZXR1cm4gcGdCcm93 c2VyLk5vZGVzWydjb2xsLW12aWV3J107Cit9KTsKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9wZy85LjNfcGx1 cy9zcWwvYWNsLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy9tdmlldy9wZy85LjNfcGx1cy9zcWwvYWNsLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzFiZDZjCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212aWV3L3Bn LzkuM19wbHVzL3NxbC9hY2wuc3FsCkBAIC0wLDAgKzEsNDEgQEAKK3sjPT09 PT09PT09PT09PT09PT09PT09PT09PT09PUdldCBBQ0xzPT09PT09PT09PT09 PT09PT09PT09PT09PSN9Cit7JSBpZiB2aWQgJX0KK1NFTEVDVAorICAgICdk YXRhY2wnIGFzIGRlZnR5cGUsCisgICAgQ09BTEVTQ0UoZ3Qucm9sbmFtZSwg J3B1YmxpYycpIGdyYW50ZWUsCisgICAgZy5yb2xuYW1lIGdyYW50b3IsCisg ICAgYXJyYXlfYWdnKHByaXZpbGVnZV90eXBlKSBhcyBwcml2aWxlZ2VzLAor ICAgIGFycmF5X2FnZyhpc19ncmFudGFibGUpIGFzIGdyYW50YWJsZQorRlJP TQorICAgIChTRUxFQ1QKKyAgICAgICAgZC5ncmFudGVlLAorICAgICAgICBk LmdyYW50b3IsCisgICAgICAgIGQuaXNfZ3JhbnRhYmxlLAorICAgICAgICBD QVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAgICAgICBXSEVOICdERUxFVEUn IFRIRU4gJ2QnCisgICAgICAgICAgV0hFTiAnSU5TRVJUJyBUSEVOICdhJwor ICAgICAgICAgIFdIRU4gJ1JFRkVSRU5DRVMnIFRIRU4gJ3gnCisgICAgICAg ICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAgICAgICAgIFdIRU4gJ1RS SUdHRVInIFRIRU4gJ3QnCisgICAgICAgICAgV0hFTiAnVVBEQVRFJyBUSEVO ICd3JworICAgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBUSEVOICdEJworICAg ICAgICAgIEVMU0UgJ1VOS05PV04nCisgICAgICAgIEVORCBBUyBwcml2aWxl Z2VfdHlwZQorICAgIEZST00KKyAgICAgICAgKFNFTEVDVAorICAgICAgICAg ICAgcmVsYWNsCisgICAgICAgICBGUk9NCisgICAgICAgICAgICBwZ19jbGFz cyBjbAorICAgICAgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3NoZGVzY3JpcHRp b24gZGVzY3IgT04KKyAgICAgICAgICAgIChjbC5vaWQ9ZGVzY3Iub2Jqb2lk IEFORCBkZXNjci5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykKKyAg ICAgICAgIFdIRVJFCisgICAgICAgICAgICBjbC5vaWQgPSB7eyB2aWQgfX06 Ok9JRCBBTkQgcmVsa2luZCA9ICdtJworICAgICAgICApIGFjbCwKKyAgICAg ICAgYWNsZXhwbG9kZShyZWxhY2wpIGQKKyAgICApIGQKK0xFRlQgSk9JTiBw Z19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9IGcub2lkKQor TEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZ3QgT04gKGQuZ3JhbnRl ZSA9IGd0Lm9pZCkKK0dST1VQIEJZCisgICAgZy5yb2xuYW1lLAorICAgIGd0 LnJvbG5hbWUKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvcGcvOS4zX3BsdXMvc3FsL2Ny ZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZp ZXcvcGcvOS4zX3BsdXMvc3FsL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMjljOWQxYQotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9wZy85 LjNfcGx1cy9zcWwvY3JlYXRlLnNxbApAQCAtMCwwICsxLDQyIEBACit7IyA9 PT09PT09PT09PT09PT09PT09PT0gQ3JlYXRlIG5ldyB2aWV3ID09PT09PT09 PT09PT09PT09PT09PSAjfQoreyUgaWYgZGlzcGxheV9jb21tZW50cyAlfQor LS0gVmlldzoge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5h bWUpIH19CisKKy0tIERST1AgTUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxx dElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19OworCit7JSBlbmRp ZiAlfQoreyUgaWYgZGF0YS5uYW1lIGFuZCBkYXRhLnNjaGVtYSBhbmQgZGF0 YS5kZWZpbml0aW9uICV9CitDUkVBVEUgTUFURVJJQUxJWkVEIFZJRVcge3sg Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19Cit7JSBp ZihkYXRhLmZpbGxmYWN0b3Igb3IgZGF0YVsnYXV0b3ZhY3V1bV9lbmFibGVk J10gb3IgZGF0YVsndG9hc3RfYXV0b3ZhY3V1bV9lbmFibGVkJ10pICV9CitX SVRIICgKK3slIGlmIGRhdGEuZmlsbGZhY3RvciAlfQorICAgIEZJTExGQUNU T1IgPSB7eyBkYXRhLmZpbGxmYWN0b3IgfX17JSBpZiBkYXRhWydhdXRvdmFj dXVtX2VuYWJsZWQnXSBvciBkYXRhWyd0b2FzdF9hdXRvdmFjdXVtX2VuYWJs ZWQnXSBvciBkYXRhWyd2YWN1dW1fZGF0YSddfGxlbmd0aCA+IDAgJX0se3sg J1xyJyB9fXslIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YVsn YXV0b3ZhY3V1bV9lbmFibGVkJ10gJX0KKyAgICBhdXRvdmFjdXVtX2VuYWJs ZWQgPSB7eyBkYXRhWydhdXRvdmFjdXVtX2VuYWJsZWQnXXxsb3dlciB9fXsl IGlmIGRhdGFbJ3RvYXN0X2F1dG92YWN1dW1fZW5hYmxlZCddIG9yIGRhdGFb J3ZhY3V1bV9kYXRhJ118bGVuZ3RoID4gMCAlfSx7eyAnXHInIH19eyUgZW5k aWYgJX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhWyd0b2FzdF9hdXRvdmFj dXVtX2VuYWJsZWQnXSAlfQorICAgIHt7ICd0b2FzdC5hdXRvdmFjdXVtX2Vu YWJsZWQnIH19ID0ge3sgZGF0YVsndG9hc3RfYXV0b3ZhY3V1bV9lbmFibGVk J118bG93ZXIgfX17JSBpZiBkYXRhWyd2YWN1dW1fZGF0YSddfGxlbmd0aCA+ IDAgJX0se3sgJ1xyJyB9fXslIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyUg Zm9yIGZpZWxkIGluIGRhdGFbJ3ZhY3V1bV9kYXRhJ10gJX0KK3slIGlmIGZp ZWxkLnZhbHVlIGlzIGRlZmluZWQgYW5kIGZpZWxkLnZhbHVlICE9ICcnIGFu ZCBmaWVsZC52YWx1ZSAhPSBub25lICV9Cit7JSBpZiBsb29wLmluZGV4ID4g MSV9LAoreyUgZW5kaWYgJX0gICAge3sgZmllbGQubmFtZSB9fSA9IHt7IGZp ZWxkLnZhbHVlfGxvd2VyIH19eyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQor CispCit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5zcGNuYW1lICV9VEFCTEVT UEFDRSB7eyBkYXRhLnNwY25hbWUgfX0KK3slIGVuZGlmICV9QVMKK3t7IGRh dGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSB9fQoreyUgaWYgZGF0YS53aXRo X2RhdGEgJX0KK1dJVEggREFUQTsKK3slIGVsc2UgJX0KK1dJVEggTk8gREFU QTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmNvbW1lbnQgJX0KKworQ09N TUVOVCBPTiBWSUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0 YS5uYW1lKSB9fQorICAgIElTIHt7IGRhdGEuY29tbWVudHxxdExpdGVyYWwg fX07Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9wZy85LjNfcGx1 cy9zcWwvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy9tdmlldy9wZy85LjNfcGx1cy9zcWwvZGVsZXRlLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjY2N2ZjCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212 aWV3L3BnLzkuM19wbHVzL3NxbC9kZWxldGUuc3FsCkBAIC0wLDAgKzEsMTMg QEAKK3sjID09PT09PT09PT09PT09PT09PT0gRHJvcC9DYXNjYWRlIG1hdGVy aWFsaXplZCB2aWV3IGJ5IG5hbWUgPT09PT09PT09PT09PT09PT09PT0jfQor eyUgaWYgdmlkICV9CitTRUxFQ1QKKyAgICBjLnJlbG5hbWUgQXMgbmFtZSwK KyAgICBuc3AubnNwbmFtZQorRlJPTQorICAgIHBnX2NsYXNzIGMKK0xFRlQg Sk9JTiBwZ19uYW1lc3BhY2UgbnNwIE9OIGMucmVsbmFtZXNwYWNlID0gbnNw Lm9pZAorV0hFUkUKKyAgICBjLnJlbGZpbGVub2RlID0ge3sgdmlkIH19Owor eyUgZWxpZiAobmFtZSBhbmQgbnNwbmFtZSkgJX0KK0RST1AgTUFURVJJQUxJ WkVEIFZJRVcge3sgY29ubnxxdElkZW50KG5zcG5hbWUsIG5hbWUpIH19IHsl IGlmIGNhc2NhZGUgJX0gQ0FTQ0FERSB7JSBlbmRpZiAlfQoreyUgZW5kaWYg JX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy9tdmlldy9wZy85LjNfcGx1cy9zcWwvZ2V0X3NjaGVtYS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvcGcvOS4zX3BsdXMv c3FsL2dldF9zY2hlbWEuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmJjYzNkMWMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvcGcvOS4zX3BsdXMvc3Fs L2dldF9zY2hlbWEuc3FsCkBAIC0wLDAgKzEsNyBAQAoreyMgPT09PT0gZmV0 Y2ggc2NoZW1hIG5hbWUgPT09PT0jfQorU0VMRUNUCisgICAgbnNwbmFtZQor RlJPTQorICAgIHBnX25hbWVzcGFjZQorV0hFUkUKKyAgICBvaWQgPSB7eyBz Y2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvbXZpZXcvcGcvOS4zX3BsdXMvc3FsL2dldF92aWV3X25h bWUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212aWV3 L3BnLzkuM19wbHVzL3NxbC9nZXRfdmlld19uYW1lLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOWNhNjM4Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212aWV3 L3BnLzkuM19wbHVzL3NxbC9nZXRfdmlld19uYW1lLnNxbApAQCAtMCwwICsx LDExIEBACit7IyA9PT09PSBnZXQgdmlldyBuYW1lIGFnYWluc3QgdmlldyBp ZCA9PT09ICN9Cit7JSBpZiB2aWQgJX0KK1NFTEVDVAorICAgIGMucmVsbmFt ZSBBUyBuYW1lLAorICAgIG5zcC5uc3BuYW1lIEFTIHNjaGVtYQorRlJPTQor ICAgIHBnX2NsYXNzIGMKKyAgICBMRUZUIE9VVEVSIEpPSU4gcGdfbmFtZXNw YWNlIG5zcCBvbiBuc3Aub2lkID0gYy5yZWxuYW1lc3BhY2UKK1dIRVJFCisg ICAgYy5vaWQgPSB7e3ZpZH19Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212aWV3L3BnLzkuM19w bHVzL3NxbC9ncmFudC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvbXZpZXcvcGcvOS4zX3BsdXMvc3FsL2dyYW50LnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmY5ZDMxCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212 aWV3L3BnLzkuM19wbHVzL3NxbC9ncmFudC5zcWwKQEAgLTAsMCArMSw2IEBA Cit7IyA9PT09PSBHcmFudCBQZXJtaXNzaW9ucyB0byBVc2VyIFJvbGUgb24g Vmlld3MvVGFibGVzID09PT0gI30KK3slIGltcG9ydCAnbWFjcm9zL3NlY3Vy aXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0KK3slIGltcG9ydCAnbWFjcm9z L3NjaGVtYXMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7 IyBXZSB3aWxsIGdlbmVyYXRlIFNlY3VyaXR5IExhYmVsIFNRTCB1c2luZyBt YWNybyAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgJX17JSBmb3IgciBpbiBk YXRhLnNlY2xhYmVscyAlfXt7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdWSUVX JywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9 fXslIGVuZGZvciAlfXslIGVuZGlmICV9Cit7JSBpZiBkYXRhLmRhdGFjbCAl fXslIGZvciBwcml2IGluIGRhdGEuZGF0YWNsICV9e3sgUFJJVklMRUdFLlNF VChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgcHJp di53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEuc2NoZW1h KSB9fXslIGVuZGZvciAlfXslIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvcGcvOS4zX3BsdXMv c3FsL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL212aWV3L3BnLzkuM19wbHVzL3NxbC9wcm9wZXJ0aWVzLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDI4ZmM4Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL212aWV3L3BnLzkuM19wbHVzL3NxbC9wcm9wZXJ0aWVzLnNxbApAQCAt MCwwICsxLDExMSBAQAoreyMgPT09PT09PT09PT09PT09PT09PT09PT09PT0g RmV0Y2ggTWF0ZXJpYWxpemVkIFZpZXcgUHJvcGVydGllcyA9PT09PT09PT09 PT09PT09PT09PT09PT09ICN9Cit7JSBpZiAodmlkIGFuZCBkYXRsYXN0c3lz b2lkKSBvciBzY2lkICV9CitTRUxFQ1QKKyAgICBjLm9pZCwKKyAgICBjLnht aW4sCisgICAgYy5yZWxuYW1lIEFTIG5hbWUsCisgICAgYy5yZWx0YWJsZXNw YWNlIEFTIHNwY29pZCwKKyAgICBjLnJlbGlzcG9wdWxhdGVkIEFTIHdpdGhf ZGF0YSwKKyAgICAoQ0FTRSBXSEVOIGxlbmd0aChzcGMuc3BjbmFtZSkgPiAw IFRIRU4gc3BjLnNwY25hbWUgRUxTRSAncGdfZGVmYXVsdCcgRU5EKSBhcyBz cGNuYW1lLAorICAgIGMucmVsYWNsLAorICAgIG5zcC5uc3BuYW1lIGFzIHNj aGVtYSwKKyAgICBwZ19nZXRfdXNlcmJ5aWQoYy5yZWxvd25lcikgQVMgb3du ZXIsCisgICAgZGVzY3JpcHRpb24gQVMgY29tbWVudCwKKyAgICBwZ19nZXRf dmlld2RlZihjLm9pZCwgdHJ1ZSkgQVMgZGVmaW5pdGlvbiwKKyAgICB7Iz09 PT09PT09PT09PT1DaGVja3MgaWYgaXQgaXMgc3lzdGVtIHZpZXc9PT09PT09 PT09PT09PT09I30KKyAgICB7JSBpZiB2aWQgYW5kIGRhdGxhc3RzeXNvaWQg JX0KKyAgICBDQVNFIFdIRU4ge3t2aWR9fSA8PSB7e2RhdGxhc3RzeXNvaWR9 fSBUSEVOIFRydWUgRUxTRSBGYWxzZSBFTkQgQVMgc3lzdGVtX3ZpZXcsCisg ICAgeyUgZW5kaWYgJX0KKyAgICBhcnJheV90b19zdHJpbmcoYy5yZWxhY2w6 OnRleHRbXSwgJywgJykgQVMgYWNsLAorICAgIChTRUxFQ1QgYXJyYXlfYWdn KHByb3ZpZGVyIHx8ICc9JyB8fCBsYWJlbCkgRlJPTSBwZ19zZWNsYWJlbHMg c2wxIFdIRVJFIHNsMS5vYmpvaWQ9Yy5vaWQgQU5EIHNsMS5vYmpzdWJpZD0w KSBBUyBzZWNsYWJlbHMsCisgICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmlu ZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAgIEZST00gJ2ZpbGxmYWN0b3I9 KFswLTldKiknKSBBUyBmaWxsZmFjdG9yLAorICAgIHN1YnN0cmluZyhhcnJh eV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdh dXRvdmFjdXVtX2VuYWJsZWQ9KFthLXp8MC05XSopJykgQVMgYXV0b3ZhY3V1 bV9lbmFibGVkLAorICAgIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5y ZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1 bV90aHJlc2hvbGQ9KFswLTldKiknKSBBUyBhdXRvdmFjdXVtX3ZhY3V1bV90 aHJlc2hvbGQsCisgICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJl bG9wdGlvbnMsICcsJykKKyAgICAgIEZST00gJ2F1dG92YWN1dW1fdmFjdXVt X3NjYWxlX2ZhY3Rvcj0oWzAtOV0qWy5dWzAtOV0qKScpIEFTIGF1dG92YWN1 dW1fdmFjdXVtX3NjYWxlX2ZhY3RvciwKKyAgICBzdWJzdHJpbmcoYXJyYXlf dG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0 b3ZhY3V1bV9hbmFseXplX3RocmVzaG9sZD0oWzAtOV0qKScpIEFTIGF1dG92 YWN1dW1fYW5hbHl6ZV90aHJlc2hvbGQsCisgICAgc3Vic3RyaW5nKGFycmF5 X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAgIEZST00gJ2F1 dG92YWN1dW1fYW5hbHl6ZV9zY2FsZV9mYWN0b3I9KFswLTldKlsuXVswLTld KiknKSBBUyBhdXRvdmFjdXVtX2FuYWx5emVfc2NhbGVfZmFjdG9yLAorICAg IHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcp CisgICAgICBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2RlbGF5PShb MC05XSopJykgQVMgYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheSwKKyAg ICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywn KQorICAgICAgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1pdD0o WzAtOV0qKScpIEFTIGF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQsCisg ICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcs JykKKyAgICAgIEZST00gJ2F1dG92YWN1dW1fZnJlZXplX21pbl9hZ2U9KFsw LTldKiknKSBBUyBhdXRvdmFjdXVtX2ZyZWV6ZV9taW5fYWdlLAorICAgIHN1 YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpCisg ICAgICBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdlPShbMC05XSop JykgQVMgYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZSwKKyAgICBzdWJzdHJp bmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKQorICAgICAg RlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlPShbMC05XSopJykg QVMgYXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlLAorICAgIHN1YnN0cmlu ZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykKKyAgICAg IEZST00gJ2F1dG92YWN1dW1fZW5hYmxlZD0oW2EtenwwLTldKiknKSBBUyB0 b2FzdF9hdXRvdmFjdXVtX2VuYWJsZWQsCisgICAgc3Vic3RyaW5nKGFycmF5 X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJPTSAn YXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkPShbMC05XSopJykgQVMgdG9h c3RfYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkLAorICAgIHN1YnN0cmlu ZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykKKyAgICAg IEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX3NjYWxlX2ZhY3Rvcj0oWzAtOV0q Wy5dWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fdmFjdXVtX3NjYWxl X2ZhY3RvciwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5y ZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX2FuYWx5 emVfdGhyZXNob2xkPShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9h bmFseXplX3RocmVzaG9sZCwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3Ry aW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFj dXVtX2FuYWx5emVfc2NhbGVfZmFjdG9yPShbMC05XSpbLl1bMC05XSopJykg QVMgdG9hc3RfYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2ZhY3RvciwKKyAg ICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAn LCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2RlbGF5 PShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9k ZWxheSwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxv cHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9j b3N0X2xpbWl0PShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV92YWN1 dW1fY29zdF9saW1pdCwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5n KHRzdC5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVt X2ZyZWV6ZV9taW5fYWdlPShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1 bV9mcmVlemVfbWluX2FnZSwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3Ry aW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFj dXVtX2ZyZWV6ZV9tYXhfYWdlPShbMC05XSopJykgQVMgdG9hc3RfYXV0b3Zh Y3V1bV9mcmVlemVfbWF4X2FnZSwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9f c3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRv dmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2U9KFswLTldKiknKSBBUyB0b2FzdF9h dXRvdmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2UsCisgICAgYy5yZWxvcHRpb25z IEFTIHJlbG9wdGlvbnMsIHRzdC5yZWxvcHRpb25zIEFTIHRvYXN0X3JlbG9w dGlvbnMsCisgICAgKENBU0UgV0hFTiBjLnJlbHRvYXN0cmVsaWQgPSAwIFRI RU4gZmFsc2UgRUxTRSB0cnVlIEVORCkgQVMgaGFzdG9hc3R0YWJsZSwKKyAg ICAoQ0FTRSBXSEVOIChzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVs b3B0aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0b3ZhY3V1bV9lbmFibGVk PShbYS16fDAtOV0qKScpKTo6Ym9vbGVhbiAgVEhFTiB0cnVlIEVMU0UgZmFs c2UgRU5EKSBBUyBhdXRvdmFjdXVtX2N1c3RvbSwKKyAgICAoQ0FTRSBXSEVO IChzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAn LCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX2VuYWJsZWQ9KFthLXp8MC05 XSopJykpOjpib29sZWFuIFRIRU4gdHJ1ZSBFTFNFIGZhbHNlIEVORCkgQVMg dG9hc3RfYXV0b3ZhY3V1bQorRlJPTQorICAgIHBnX2NsYXNzIGMKK0xFRlQg T1VURVIgSk9JTiBwZ19uYW1lc3BhY2UgbnNwIG9uIG5zcC5vaWQgPSBjLnJl bG5hbWVzcGFjZQorTEVGVCBPVVRFUiBKT0lOIHBnX3RhYmxlc3BhY2Ugc3Bj IG9uIHNwYy5vaWQ9Yy5yZWx0YWJsZXNwYWNlCitMRUZUIE9VVEVSIEpPSU4g cGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPWMub2lkIGFuZCBk ZXMub2Jqc3ViaWQ9MCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19jbGFzcyc6OnJl Z2NsYXNzKQorTEVGVCBPVVRFUiBKT0lOIHBnX2NsYXNzIHRzdCBPTiB0c3Qu b2lkID0gYy5yZWx0b2FzdHJlbGlkCisgICAgV0hFUkUgKChjLnJlbGhhc3J1 bGVzIEFORCAoRVhJU1RTICgKKyAgICAgICAgU0VMRUNUCisgICAgICAgICAg ICByLnJ1bGVuYW1lCisgICAgICAgIEZST00KKyAgICAgICAgICAgIHBnX3Jl d3JpdGUgcgorICAgICAgICBXSEVSRQorICAgICAgICAgICAgKChyLmV2X2Ns YXNzID0gYy5vaWQpCisgICAgICAgICAgICAgICAgQU5EIChicGNoYXIoci5l dl90eXBlKSA9ICcxJzo6YnBjaGFyKSkgKSkpCisgICAgICAgICAgICBBTkQg KGMucmVsa2luZCA9ICdtJzo6Y2hhcikKKyAgICAgICAgICApCit7JSBpZiAo dmlkIGFuZCBkYXRsYXN0c3lzb2lkKSAlfQorICAgIEFORCBjLm9pZCA9IHt7 dmlkfX06Om9pZAoreyUgZWxpZiBzY2lkICV9CisgICAgQU5EIGMucmVsbmFt ZXNwYWNlID0ge3tzY2lkfX06Om9pZAorT1JERVIgQlkKKyAgICBjLnJlbG5h bWUKK3slIGVuZGlmICV9CisKK3slIGVsaWYgdHlwZSA9PSAncm9sZXMnICV9 CitTRUxFQ1QKKyAgICBwci5yb2xuYW1lCitGUk9NCisgICAgcGdfcm9sZXMg cHIKK1dIRVJFCisgICAgcHIucm9sY2FubG9naW4KK09SREVSIEJZCisgICAg cHIucm9sbmFtZQorCit7JSBlbGlmIHR5cGUgPT0gJ3NjaGVtYXMnICV9CitT RUxFQ1QKKyAgICBuc3AubnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFj ZSBuc3AKK1dIRVJFCisgICAgKG5zcC5uc3BuYW1lIE5PVCBMSUtFIEUncGdc XF8lJworICAgICAgICBBTkQgbnNwLm5zcG5hbWUgIT0gJ2luZm9ybWF0aW9u X3NjaGVtYScpCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL212aWV3L3BnLzkuM19wbHVzL3NxbC9y ZWZyZXNoLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9t dmlldy9wZy85LjNfcGx1cy9zcWwvcmVmcmVzaC5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE1NzAzNgotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9w Zy85LjNfcGx1cy9zcWwvcmVmcmVzaC5zcWwKQEAgLTAsMCArMSw0IEBACit7 Iz09PSByZWZyZXNoIG1hdCB2aWV3IFtjb25jdXJyZW5sdHldID09PSN9Cit7 JSBpZiBuYW1lIGFuZCBuc3BuYW1lICV9CitSRUZSRVNIIE1BVEVSSUFMSVpF RCBWSUVXIHslIGlmIGlzX2NvbmN1cnJlbnQgJX1DT05DVVJSRU5UTFl7JSBl bmRpZiAlfSB7eyBjb25ufHF0SWRlbnQobnNwbmFtZSwgbmFtZSkgfX07Cit7 JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL212aWV3L3BnLzkuM19wbHVzL3NxbC91cGRhdGUuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212aWV3L3BnLzkuM19w bHVzL3NxbC91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjgyNjRmMGYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvcGcvOS4zX3BsdXMvc3Fs L3VwZGF0ZS5zcWwKQEAgLTAsMCArMSwxNjIgQEAKK3sjID09PT09PT09PT09 PT09PT09PT09PSBVcGRhdGUgVmlldyA9PT09PT09PT09PT09PT09PT09I30K K3slIGltcG9ydCAnbWFjcm9zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFC TEUgJX0KK3slIGltcG9ydCAnbWFjcm9zL3NjaGVtYXMvcHJpdmlsZWdlLm1h Y3JvcycgYXMgUFJJVklMRUdFICV9Cit7JS0gaWYgZGF0YSAtJX0KK3slIHNl dCB2aWV3X25hbWUgPSBkYXRhLm5hbWUgaWYgZGF0YS5uYW1lIGVsc2Ugb19k YXRhLm5hbWUgJX0KK3slIHNldCB2aWV3X3NjaGVtYSA9IGRhdGEuc2NoZW1h IGlmIGRhdGEuc2NoZW1hIGVsc2Ugb19kYXRhLnNjaGVtYSAlfQoreyUgc2V0 IGRlZiA9IGRhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSBpZiBkYXRhLmRl ZmluaXRpb24gJX0KK3sjID09PT09IFJlbmFtZSBtYXQgdmlldyA9PT09PSAj fQoreyUgaWYgZGF0YS5uYW1lIGFuZCBkYXRhLm5hbWUgIT0gb19kYXRhLm5h bWUgJX0KK0FMVEVSIE1BVEVSSUFMSVpFRCBWSUVXIHt7IGNvbm58cXRJZGVu dChvX2RhdGEuc2NoZW1hLCBvX2RhdGEubmFtZSkgfX0KKyAgUkVOQU1FIFRP IHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19OworCit7JSBlbmRpZiAl fQoreyMgPT09PT0gQWx0ZXIgc2NoZW1hIHZpZXcgPT09PT0gI30KK3slIGlm IGRhdGEuc2NoZW1hIGFuZCBkYXRhLnNjaGVtYSAhPSBvX2RhdGEuc2NoZW1h ICV9CitBTFRFUiBNQVRFUklBTElaRUQgVklFVyB7eyBjb25ufHF0SWRlbnQo b19kYXRhLnNjaGVtYSwgdmlld19uYW1lICkgfX0KKyAgU0VUIFNDSEVNQSB7 eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEpIH19OworCit7JSBlbmRpZiAl fQoreyMgPT09PT0gQWx0ZXIgVGFibGUgb3duZXIgPT09PT0gI30KK3slIGlm IGRhdGEub3duZXIgYW5kIGRhdGEub3duZXIgIT0gb19kYXRhLm93bmVyICV9 CitBTFRFUiBUQUJMRSB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZp ZXdfbmFtZSkgfX0KKyAgT1dORVIgVE8ge3sgY29ubnxxdElkZW50KGRhdGEu b3duZXIpIH19OworCit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YVsndmFjdXVt X2RhdGEnXVsncmVzZXQnXXxsZW5ndGggPT0gMCBhbmQKK2RhdGFbJ3ZhY3V1 bV9kYXRhJ11bJ2NoYW5nZWQnXXxsZW5ndGggPT0gMCBhbmQgZGF0YVsnc2V0 dGluZ3MnXXxsZW5ndGggPiAwICV9CitBTFRFUiBNQVRFUklBTElaRUQgVklF VyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0K K1NFVCgKK3slIGZvciBmaWVsZCBpbiBkYXRhWydzZXR0aW5ncyddICV9Cisg IHt7IGZpZWxkIH19ID0ge3sgZGF0YVsnc2V0dGluZ3MnXVtmaWVsZF18bG93 ZXIgfX17JSBpZiBub3QgbG9vcC5sYXN0ICAlfSx7JSBlbmRpZiAlfXt7ICdc cicgfX0KK3slIGVuZGZvciAlfQorKTsKKworeyUgZW5kaWYgJX0KK3slIGlm IGRhdGFbJ3ZhY3V1bV9kYXRhJ11bJ3Jlc2V0J118bGVuZ3RoID4gMCAlfQor QUxURVIgTUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdf c2NoZW1hLCB2aWV3X25hbWUpIH19CitSRVNFVCgKK3slIGZvciBmaWVsZCBp biBkYXRhWyd2YWN1dW1fZGF0YSddWydyZXNldCddICV9CisgIHt7IGZpZWxk Lm5hbWUgfX17JSBpZiBub3QgbG9vcC5sYXN0ICAlfSx7JSBlbmRpZiAlfXt7 ICdccicgfX0KK3slIGVuZGZvciAlfQorKTsKK3slIGVuZGlmICV9Cit7IyA9 PT09PSBGaXJzdCBEcm9wIGFuZCB0aGVuIGNyZWF0ZSBtYXQgdmlldyA9PT09 PSAjfQoreyUgaWYgZGVmIGFuZCBkZWYgIT0gb19kYXRhLmRlZmluaXRpb24u cnN0cmlwKCc7JykgJX0KK3slIGlmIGRhdGEuZmlsbGZhY3RvciBvciAoIGRh dGFbJ3ZhY3V1bV9kYXRhJ11bJ2NoYW5nZWQnXXxsZW5ndGggPiAwICkgJX0K K0RST1AgTUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdf c2NoZW1hLCB2aWV3X25hbWUpIH19OworQ1JFQVRFIE1BVEVSSUFMSVpFRCBW SUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9 fQorV0lUSCgKK3slIGlmIGRhdGEuZmlsbGZhY3RvciAlfQorICBGSUxMRkFD VE9SID0ge3sgZGF0YS5maWxsZmFjdG9yIH19eyUgaWYgZGF0YVsndmFjdXVt X2RhdGEnXVsnY2hhbmdlZCddfGxlbmd0aCA+IDAgJX0seyUgZW5kaWYgJX17 eyAnXHInIH19Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YVsndmFjdXVtX2Rh dGEnXVsnY2hhbmdlZCddfGxlbmd0aCA+IDAgJX0KK3slIGZvciBmaWVsZCBp biBkYXRhWyd2YWN1dW1fZGF0YSddWydjaGFuZ2VkJ10gJX0KKyAge3sgZmll bGQubmFtZSB9fSA9IHt7IGZpZWxkLnZhbHVlfGxvd2VyIH19eyUgaWYgbm90 IGxvb3AubGFzdCAgJX0seyUgZW5kaWYgJX17eyAnXHInIH19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmICV9CispCisgQVMKK3t7IGRlZiB9fQoreyUgaWYg ZGF0YS53aXRoX2RhdGEgJX0KKyBXSVRIIERBVEE7CisKK3slIGVsc2UgJX0K KyBXSVRIIE5PIERBVEE7CisKK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQor eyUgZWxzZSAlfQoreyMgPT09PT09PSBBbHRlciBUYWJsZXNwYWNlID09PT09 PT09PSAjfQoreyUtIGlmIGRhdGEuc3Bjb2lkIGFuZCBvX2RhdGEuc3Bjb2lk ICE9IGRhdGEuc3Bjb2lkICAtJX0KK0FMVEVSIE1BVEVSSUFMSVpFRCBWSUVX IHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQor ICBTRVQgVEFCTEVTUEFDRSB7eyBkYXRhLnNwY29pZCB9fTsKKworeyUgZW5k aWYgJX0KK3sjID09PT09PT0gU0VUL1JFU0VUIEZpbGxmYWN0b3IgPT09PT09 PT09ICN9Cit7JSBpZiBkYXRhLmZpbGxmYWN0b3IgYW5kIG9fZGF0YS5maWxs ZmFjdG9yICE9IGRhdGEuZmlsbGZhY3RvciAlfQorQUxURVIgTUFURVJJQUxJ WkVEIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25h bWUpIH19CitTRVQoRklMTEZBQ1RPUiA9IHt7IGRhdGEuZmlsbGZhY3RvciB9 fSk7CisKK3slIGVsaWYgZGF0YS5maWxsZmFjdG9yID09ICcnICV9CitBTFRF UiBNQVRFUklBTElaRUQgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hl bWEsIHZpZXdfbmFtZSkgfX0KK1JFU0VUKAorICBGSUxMRkFDVE9SCispOwor Cit7JSBlbmRpZiAlfQoreyMgPT09PT0gQ2hlY2sgZm9yIHdpdGhfZGF0YSBw cm9wZXJ0eSA9PT09PSAjfQoreyUgaWYgZGF0YS53aXRoX2RhdGEgaXMgZGVm aW5lZCBhbmQgb19kYXRhLndpdGhfZGF0YXxsb3dlciAhPSBkYXRhLndpdGhf ZGF0YXxsb3dlciAgJX0KK1JFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVcge3sg Y29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19IFdJVEh7 eyAnIE5PJyBpZiBkYXRhLndpdGhfZGF0YXxsb3dlciA9PSAnZmFsc2UnIGVs c2UgJycgfX0gREFUQTsKKworeyUgZW5kaWYgJX0KK3sjID09PT09IENoZWNr IGZvciBUYWJsZSB0YWIgcHJvcGVydGllcyA9PT09PSAjfQoreyUgaWYgZGF0 YS5hdXRvdmFjdXVtX2N1c3RvbSBpcyBkZWZpbmVkIGFuZCBkYXRhLmF1dG92 YWN1dW1fY3VzdG9tfGxvd2VyID09ICdmYWxzZScgJX0KK0FMVEVSIE1BVEVS SUFMSVpFRCBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmll d19uYW1lKSB9fQorUkVTRVQoCisgIGF1dG92YWN1dW1fdmFjdXVtX3RocmVz aG9sZCwKKyAgYXV0b3ZhY3V1bV9hbmFseXplX3RocmVzaG9sZCwKKyAgYXV0 b3ZhY3V1bV92YWN1dW1fc2NhbGVfZmFjdG9yLAorICBhdXRvdmFjdXVtX2Fu YWx5emVfc2NhbGVfZmFjdG9yLAorICBhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0 X2RlbGF5LAorICBhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0LAorICBh dXRvdmFjdXVtX2ZyZWV6ZV9taW5fYWdlLAorICBhdXRvdmFjdXVtX2ZyZWV6 ZV9tYXhfYWdlLAorICBhdXRvdmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2UKKyk7 CisKK3slIGVsaWYoZGF0YVsndmFjdXVtX2RhdGEnXVsnY2hhbmdlZCddfGxl bmd0aCA+IDApICV9CitBTFRFUiBNQVRFUklBTElaRUQgVklFVyB7eyBjb25u fHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0gU0VUKAoreyUg Zm9yIGZpZWxkIGluIGRhdGFbJ3ZhY3V1bV9kYXRhJ11bJ2NoYW5nZWQnXSAl fQoreyUgaWYgZmllbGQudmFsdWUgIT0gTm9uZSAlfQorICB7eyBmaWVsZC5u YW1lIH19ID0ge3sgZmllbGQudmFsdWV8bG93ZXIgfX17JSBpZiBub3QgbG9v cC5sYXN0ICAlfSx7JSBlbmRpZiAlfXt7ICdccicgfX0KK3slIGVuZGlmICV9 Cit7JSBlbmRmb3IgJX0KKyk7CisKK3slIGVuZGlmICV9eyMgPT09PT0gRW5k IGNoZWNrIGZvciBjdXN0b20gYXV0b3ZhY2N1bSA9PT09PSAjfQoreyUgZW5k aWYgJX17IyA9PT09PSBFbmQgYmxvY2sgZm9yIGNoZWNrIGRhdGEgZGVmaW5p dGlvbiA9PT09PSAjfQoreyUtIGlmIGRhdGEuY29tbWVudCBhbmQgZGF0YS5j b21tZW50ICE9IG9fZGF0YS5jb21tZW50IC0lfQorQ09NTUVOVCBPTiBNQVRF UklBTElaRUQgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZp ZXdfbmFtZSkgfX0KKyAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9 fTsKKworeyUgZW5kaWYgJX0KK3sjID09PT09PT09PT09PT0gVGhlIFNRTCBn ZW5lcmF0ZWQgYmVsb3cgd2lsbCBjaGFuZ2UgcHJpdmlsZWdlcyA9PT09PT09 PT09PT09ICN9Cit7JSBpZiBkYXRhLmRhdGFjbCAlfQoreyUgaWYgJ2RlbGV0 ZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRh dGFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxFR0UuUkVTRVRBTEwoY29ubiwg J1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1h KSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5n ZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRh dGFjbC5jaGFuZ2VkIC0lfQore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4s ICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNjaGVt YSkgfX0KK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1RBQkxFJywgcHJpdi5n cmFudGVlLCBkYXRhLm5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53 aXRoX2dyYW50LCBkYXRhLnNjaGVtYSkgfX0KK3slLSBlbmRmb3IgJX0KK3sl IGVuZGlmICV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7 JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5hZGRlZCAlfQore3sgUFJJVklM RUdFLlNFVChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFt ZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEu c2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgZW5k aWYgJX0KK3sjID09PT09PT09PT09PT09IFRoZSBTUUwgZ2VuZXJhdGVkIGJl bG93IHdpbGwgY2hhbmdlIFNlY3VyaXR5IExhYmVsID09PT09PT09PSAjfQor eyUgaWYgZGF0YS5zZWNsYWJlbHMgaXMgbm90IG5vbmUgYW5kIGRhdGEuc2Vj bGFiZWxzfGxlbmd0aCA+IDAgJX0KK3slIHNldCBzZWNsYWJlbHMgPSBkYXRh LnNlY2xhYmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBh bmQgc2VjbGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIg aW4gc2VjbGFiZWxzLmRlbGV0ZWQgJX0KK3t7IFNFQ0xBQkxFLkRST1AoY29u biwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIpIH19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVs cyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciBy IGluIHNlY2xhYmVscy5hZGRlZCAlfQore3sgU0VDTEFCTEUuQVBQTFkoY29u biwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlf bGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAn Y2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxs ZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAl fQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUs IHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmll dy9wZy85LjNfcGx1cy9zcWwvdmlld19pZC5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvcGcvOS4zX3BsdXMvc3FsL3ZpZXdf aWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQx OTJhODAKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvbXZpZXcvcGcvOS4zX3BsdXMvc3FsL3ZpZXdfaWQuc3Fs CkBAIC0wLDAgKzEsNCBAQAoreyMgPT09PT0gQmVsb3cgd2lsbCBwcm92aWRl IHZpZXcgaWQgZm9yIGxhc3QgY3JlYXRlZCB2aWV3ID09PT0gI30KK3slIGlm IGRhdGEgJX0KK1NFTEVDVCBjLm9pZCBGUk9NIHBnX2NsYXNzIGMgV0hFUkUg Yy5yZWxuYW1lID0gJ3t7IGRhdGEubmFtZSB9fSc7Cit7JSBlbmRpZiAlfQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212 aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2FjbC5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvcHBhcy85LjNfcGx1cy9zcWwvYWNs LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzFi ZDZjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL212aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2FjbC5zcWwKQEAg LTAsMCArMSw0MSBAQAoreyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09 R2V0IEFDTHM9PT09PT09PT09PT09PT09PT09PT09PT09I30KK3slIGlmIHZp ZCAlfQorU0VMRUNUCisgICAgJ2RhdGFjbCcgYXMgZGVmdHlwZSwKKyAgICBD T0FMRVNDRShndC5yb2xuYW1lLCAncHVibGljJykgZ3JhbnRlZSwKKyAgICBn LnJvbG5hbWUgZ3JhbnRvciwKKyAgICBhcnJheV9hZ2cocHJpdmlsZWdlX3R5 cGUpIGFzIHByaXZpbGVnZXMsCisgICAgYXJyYXlfYWdnKGlzX2dyYW50YWJs ZSkgYXMgZ3JhbnRhYmxlCitGUk9NCisgICAgKFNFTEVDVAorICAgICAgICBk LmdyYW50ZWUsCisgICAgICAgIGQuZ3JhbnRvciwKKyAgICAgICAgZC5pc19n cmFudGFibGUsCisgICAgICAgIENBU0UgZC5wcml2aWxlZ2VfdHlwZQorICAg ICAgICAgIFdIRU4gJ0RFTEVURScgVEhFTiAnZCcKKyAgICAgICAgICBXSEVO ICdJTlNFUlQnIFRIRU4gJ2EnCisgICAgICAgICAgV0hFTiAnUkVGRVJFTkNF UycgVEhFTiAneCcKKyAgICAgICAgICBXSEVOICdTRUxFQ1QnIFRIRU4gJ3In CisgICAgICAgICAgV0hFTiAnVFJJR0dFUicgVEhFTiAndCcKKyAgICAgICAg ICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAgICAgICAgV0hFTiAnVFJV TkNBVEUnIFRIRU4gJ0QnCisgICAgICAgICAgRUxTRSAnVU5LTk9XTicKKyAg ICAgICAgRU5EIEFTIHByaXZpbGVnZV90eXBlCisgICAgRlJPTQorICAgICAg ICAoU0VMRUNUCisgICAgICAgICAgICByZWxhY2wKKyAgICAgICAgIEZST00K KyAgICAgICAgICAgIHBnX2NsYXNzIGNsCisgICAgICAgICBMRUZUIE9VVEVS IEpPSU4gcGdfc2hkZXNjcmlwdGlvbiBkZXNjciBPTgorICAgICAgICAgICAg KGNsLm9pZD1kZXNjci5vYmpvaWQgQU5EIGRlc2NyLmNsYXNzb2lkPSdwZ19j bGFzcyc6OnJlZ2NsYXNzKQorICAgICAgICAgV0hFUkUKKyAgICAgICAgICAg IGNsLm9pZCA9IHt7IHZpZCB9fTo6T0lEIEFORCByZWxraW5kID0gJ20nCisg ICAgICAgICkgYWNsLAorICAgICAgICBhY2xleHBsb2RlKHJlbGFjbCkgZAor ICAgICkgZAorTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZyBPTiAo ZC5ncmFudG9yID0gZy5vaWQpCitMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19y b2xlcyBndCBPTiAoZC5ncmFudGVlID0gZ3Qub2lkKQorR1JPVVAgQlkKKyAg ICBnLnJvbG5hbWUsCisgICAgZ3Qucm9sbmFtZQoreyUgZW5kaWYgJX0KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmll dy9wcGFzLzkuM19wbHVzL3NxbC9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL212aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2Ny ZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MjljOWQxYQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy9tdmlldy9wcGFzLzkuM19wbHVzL3NxbC9jcmVhdGUu c3FsCkBAIC0wLDAgKzEsNDIgQEAKK3sjID09PT09PT09PT09PT09PT09PT09 PSBDcmVhdGUgbmV3IHZpZXcgPT09PT09PT09PT09PT09PT09PT09ICN9Cit7 JSBpZiBkaXNwbGF5X2NvbW1lbnRzICV9CistLSBWaWV3OiB7eyBjb25ufHF0 SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKworLS0gRFJPUCBN QVRFUklBTElaRUQgVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEs IGRhdGEubmFtZSkgfX07CisKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLm5h bWUgYW5kIGRhdGEuc2NoZW1hIGFuZCBkYXRhLmRlZmluaXRpb24gJX0KK0NS RUFURSBNQVRFUklBTElaRUQgVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5z Y2hlbWEsIGRhdGEubmFtZSkgfX0KK3slIGlmKGRhdGEuZmlsbGZhY3RvciBv ciBkYXRhWydhdXRvdmFjdXVtX2VuYWJsZWQnXSBvciBkYXRhWyd0b2FzdF9h dXRvdmFjdXVtX2VuYWJsZWQnXSkgJX0KK1dJVEggKAoreyUgaWYgZGF0YS5m aWxsZmFjdG9yICV9CisgICAgRklMTEZBQ1RPUiA9IHt7IGRhdGEuZmlsbGZh Y3RvciB9fXslIGlmIGRhdGFbJ2F1dG92YWN1dW1fZW5hYmxlZCddIG9yIGRh dGFbJ3RvYXN0X2F1dG92YWN1dW1fZW5hYmxlZCddIG9yIGRhdGFbJ3ZhY3V1 bV9kYXRhJ118bGVuZ3RoID4gMCAlfSx7eyAnXHInIH19eyUgZW5kaWYgJX0K K3slIGVuZGlmICV9Cit7JSBpZiBkYXRhWydhdXRvdmFjdXVtX2VuYWJsZWQn XSAlfQorICAgIGF1dG92YWN1dW1fZW5hYmxlZCA9IHt7IGRhdGFbJ2F1dG92 YWN1dW1fZW5hYmxlZCddfGxvd2VyIH19eyUgaWYgZGF0YVsndG9hc3RfYXV0 b3ZhY3V1bV9lbmFibGVkJ10gb3IgZGF0YVsndmFjdXVtX2RhdGEnXXxsZW5n dGggPiAwICV9LHt7ICdccicgfX17JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0K K3slIGlmIGRhdGFbJ3RvYXN0X2F1dG92YWN1dW1fZW5hYmxlZCddICV9Cisg ICAge3sgJ3RvYXN0LmF1dG92YWN1dW1fZW5hYmxlZCcgfX0gPSB7eyBkYXRh Wyd0b2FzdF9hdXRvdmFjdXVtX2VuYWJsZWQnXXxsb3dlciB9fXslIGlmIGRh dGFbJ3ZhY3V1bV9kYXRhJ118bGVuZ3RoID4gMCAlfSx7eyAnXHInIH19eyUg ZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7JSBmb3IgZmllbGQgaW4gZGF0YVsn dmFjdXVtX2RhdGEnXSAlfQoreyUgaWYgZmllbGQudmFsdWUgaXMgZGVmaW5l ZCBhbmQgZmllbGQudmFsdWUgIT0gJycgYW5kIGZpZWxkLnZhbHVlICE9IG5v bmUgJX0KK3slIGlmIGxvb3AuaW5kZXggPiAxJX0sCit7JSBlbmRpZiAlfSAg ICB7eyBmaWVsZC5uYW1lIH19ID0ge3sgZmllbGQudmFsdWV8bG93ZXIgfX17 JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9CisKKykKK3slIGVuZGlmICV9Cit7 JSBpZiBkYXRhLnNwY25hbWUgJX1UQUJMRVNQQUNFIHt7IGRhdGEuc3BjbmFt ZSB9fQoreyUgZW5kaWYgJX1BUwore3sgZGF0YS5kZWZpbml0aW9uLnJzdHJp cCgnOycpIH19Cit7JSBpZiBkYXRhLndpdGhfZGF0YSAlfQorV0lUSCBEQVRB OworeyUgZWxzZSAlfQorV0lUSCBOTyBEQVRBOworeyUgZW5kaWYgJX0KK3sl IGlmIGRhdGEuY29tbWVudCAlfQorCitDT01NRU5UIE9OIFZJRVcge3sgY29u bnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19CisgICAgSVMg e3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmICV9Cit7 JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL212aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2RlbGV0ZS5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvcHBhcy85 LjNfcGx1cy9zcWwvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5jZjY2N2ZjCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212aWV3L3BwYXMvOS4zX3Bs dXMvc3FsL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwxMyBAQAoreyMgPT09PT09 PT09PT09PT09PT09PSBEcm9wL0Nhc2NhZGUgbWF0ZXJpYWxpemVkIHZpZXcg YnkgbmFtZSA9PT09PT09PT09PT09PT09PT09PSN9Cit7JSBpZiB2aWQgJX0K K1NFTEVDVAorICAgIGMucmVsbmFtZSBBcyBuYW1lLAorICAgIG5zcC5uc3Bu YW1lCitGUk9NCisgICAgcGdfY2xhc3MgYworTEVGVCBKT0lOIHBnX25hbWVz cGFjZSBuc3AgT04gYy5yZWxuYW1lc3BhY2UgPSBuc3Aub2lkCitXSEVSRQor ICAgIGMucmVsZmlsZW5vZGUgPSB7eyB2aWQgfX07Cit7JSBlbGlmIChuYW1l IGFuZCBuc3BuYW1lKSAlfQorRFJPUCBNQVRFUklBTElaRUQgVklFVyB7eyBj b25ufHF0SWRlbnQobnNwbmFtZSwgbmFtZSkgfX0geyUgaWYgY2FzY2FkZSAl fSBDQVNDQURFIHslIGVuZGlmICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212aWV3L3BwYXMv OS4zX3BsdXMvc3FsL2dldF9zY2hlbWEuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL212aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2dldF9z Y2hlbWEuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjcyNDRlZDMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvbXZpZXcvcHBhcy85LjNfcGx1cy9zcWwvZ2V0X3Nj aGVtYS5zcWwKQEAgLTAsMCArMSw3IEBACit7IyA9PT09PSBmZXRjaCBzY2hl bWEgbmFtZSA9PT09PSN9CitTRUxFQ1QKKyAgIG5zcG5hbWUKK0ZST00KKyAg ICBwZ19uYW1lc3BhY2UKK1dIRVJFCisgICAgb2lkID0ge3sgc2NpZCB9fTo6 b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL212aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2dldF92aWV3X25hbWUuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212aWV3L3BwYXMv OS4zX3BsdXMvc3FsL2dldF92aWV3X25hbWUuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5Y2E2MzgKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvcHBh cy85LjNfcGx1cy9zcWwvZ2V0X3ZpZXdfbmFtZS5zcWwKQEAgLTAsMCArMSwx MSBAQAoreyMgPT09PT0gZ2V0IHZpZXcgbmFtZSBhZ2FpbnN0IHZpZXcgaWQg PT09PSAjfQoreyUgaWYgdmlkICV9CitTRUxFQ1QKKyAgICBjLnJlbG5hbWUg QVMgbmFtZSwKKyAgICBuc3AubnNwbmFtZSBBUyBzY2hlbWEKK0ZST00KKyAg ICBwZ19jbGFzcyBjCisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX25hbWVzcGFj ZSBuc3Agb24gbnNwLm9pZCA9IGMucmVsbmFtZXNwYWNlCitXSEVSRQorICAg IGMub2lkID0ge3t2aWR9fQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9wcGFzLzkuM19w bHVzL3NxbC9ncmFudC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvbXZpZXcvcHBhcy85LjNfcGx1cy9zcWwvZ3JhbnQuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmZjlkMzEKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMv bXZpZXcvcHBhcy85LjNfcGx1cy9zcWwvZ3JhbnQuc3FsCkBAIC0wLDAgKzEs NiBAQAoreyMgPT09PT0gR3JhbnQgUGVybWlzc2lvbnMgdG8gVXNlciBSb2xl IG9uIFZpZXdzL1RhYmxlcyA9PT09ICN9Cit7JSBpbXBvcnQgJ21hY3Jvcy9z ZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21h Y3Jvcy9zY2hlbWFzL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAl fQoreyMgV2Ugd2lsbCBnZW5lcmF0ZSBTZWN1cml0eSBMYWJlbCBTUUwgdXNp bmcgbWFjcm8gI30KK3slIGlmIGRhdGEuc2VjbGFiZWxzICV9eyUgZm9yIHIg aW4gZGF0YS5zZWNsYWJlbHMgJX17eyBTRUNMQUJMRS5BUFBMWShjb25uLCAn VklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJl bCkgfX17JSBlbmRmb3IgJX17JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5kYXRh Y2wgJX17JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbCAlfXt7IFBSSVZJTEVH RS5TRVQoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUs IHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBkYXRhLnNj aGVtYSkgfX17JSBlbmRmb3IgJX17JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212aWV3L3BwYXMvOS4z X3BsdXMvc3FsL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL212aWV3L3BwYXMvOS4zX3BsdXMvc3FsL3Byb3BlcnRp ZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0 MjhmYzgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvbXZpZXcvcHBhcy85LjNfcGx1cy9zcWwvcHJvcGVydGll cy5zcWwKQEAgLTAsMCArMSwxMTEgQEAKK3sjID09PT09PT09PT09PT09PT09 PT09PT09PT09IEZldGNoIE1hdGVyaWFsaXplZCBWaWV3IFByb3BlcnRpZXMg PT09PT09PT09PT09PT09PT09PT09PT09PSAjfQoreyUgaWYgKHZpZCBhbmQg ZGF0bGFzdHN5c29pZCkgb3Igc2NpZCAlfQorU0VMRUNUCisgICAgYy5vaWQs CisgICAgYy54bWluLAorICAgIGMucmVsbmFtZSBBUyBuYW1lLAorICAgIGMu cmVsdGFibGVzcGFjZSBBUyBzcGNvaWQsCisgICAgYy5yZWxpc3BvcHVsYXRl ZCBBUyB3aXRoX2RhdGEsCisgICAgKENBU0UgV0hFTiBsZW5ndGgoc3BjLnNw Y25hbWUpID4gMCBUSEVOIHNwYy5zcGNuYW1lIEVMU0UgJ3BnX2RlZmF1bHQn IEVORCkgYXMgc3BjbmFtZSwKKyAgICBjLnJlbGFjbCwKKyAgICBuc3AubnNw bmFtZSBhcyBzY2hlbWEsCisgICAgcGdfZ2V0X3VzZXJieWlkKGMucmVsb3du ZXIpIEFTIG93bmVyLAorICAgIGRlc2NyaXB0aW9uIEFTIGNvbW1lbnQsCisg ICAgcGdfZ2V0X3ZpZXdkZWYoYy5vaWQsIHRydWUpIEFTIGRlZmluaXRpb24s CisgICAgeyM9PT09PT09PT09PT09Q2hlY2tzIGlmIGl0IGlzIHN5c3RlbSB2 aWV3PT09PT09PT09PT09PT09PSN9CisgICAgeyUgaWYgdmlkIGFuZCBkYXRs YXN0c3lzb2lkICV9CisgICAgQ0FTRSBXSEVOIHt7dmlkfX0gPD0ge3tkYXRs YXN0c3lzb2lkfX0gVEhFTiBUcnVlIEVMU0UgRmFsc2UgRU5EIEFTIHN5c3Rl bV92aWV3LAorICAgIHslIGVuZGlmICV9CisgICAgYXJyYXlfdG9fc3RyaW5n KGMucmVsYWNsOjp0ZXh0W10sICcsICcpIEFTIGFjbCwKKyAgICAoU0VMRUNU IGFycmF5X2FnZyhwcm92aWRlciB8fCAnPScgfHwgbGFiZWwpIEZST00gcGdf c2VjbGFiZWxzIHNsMSBXSEVSRSBzbDEub2Jqb2lkPWMub2lkIEFORCBzbDEu b2Jqc3ViaWQ9MCkgQVMgc2VjbGFiZWxzLAorICAgIHN1YnN0cmluZyhhcnJh eV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdm aWxsZmFjdG9yPShbMC05XSopJykgQVMgZmlsbGZhY3RvciwKKyAgICBzdWJz dHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKQorICAg ICAgRlJPTSAnYXV0b3ZhY3V1bV9lbmFibGVkPShbYS16fDAtOV0qKScpIEFT IGF1dG92YWN1dW1fZW5hYmxlZCwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9f c3RyaW5nKGMucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0b3Zh Y3V1bV92YWN1dW1fdGhyZXNob2xkPShbMC05XSopJykgQVMgYXV0b3ZhY3V1 bV92YWN1dW1fdGhyZXNob2xkLAorICAgIHN1YnN0cmluZyhhcnJheV90b19z dHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFj dXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3I9KFswLTldKlsuXVswLTldKiknKSBB UyBhdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3IsCisgICAgc3Vic3Ry aW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAg IEZST00gJ2F1dG92YWN1dW1fYW5hbHl6ZV90aHJlc2hvbGQ9KFswLTldKikn KSBBUyBhdXRvdmFjdXVtX2FuYWx5emVfdGhyZXNob2xkLAorICAgIHN1YnN0 cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpCisgICAg ICBGUk9NICdhdXRvdmFjdXVtX2FuYWx5emVfc2NhbGVfZmFjdG9yPShbMC05 XSpbLl1bMC05XSopJykgQVMgYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2Zh Y3RvciwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0 aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fY29z dF9kZWxheT0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fdmFjdXVtX2Nvc3Rf ZGVsYXksCisgICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9w dGlvbnMsICcsJykKKyAgICAgIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX2Nv c3RfbGltaXQ9KFswLTldKiknKSBBUyBhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0 X2xpbWl0LAorICAgIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxv cHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV9t aW5fYWdlPShbMC05XSopJykgQVMgYXV0b3ZhY3V1bV9mcmVlemVfbWluX2Fn ZSwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9u cywgJywnKQorICAgICAgRlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2Fn ZT0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fZnJlZXplX21heF9hZ2UsCisg ICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcs JykKKyAgICAgIEZST00gJ2F1dG92YWN1dW1fZnJlZXplX3RhYmxlX2FnZT0o WzAtOV0qKScpIEFTIGF1dG92YWN1dW1fZnJlZXplX3RhYmxlX2FnZSwKKyAg ICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAn LCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX2VuYWJsZWQ9KFthLXp8MC05 XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9lbmFibGVkLAorICAgIHN1YnN0 cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykKKyAg ICAgIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZD0oWzAtOV0q KScpIEFTIHRvYXN0X2F1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZCwKKyAg ICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAn LCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0 b3I9KFswLTldKlsuXVswLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX3Zh Y3V1bV9zY2FsZV9mYWN0b3IsCisgICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0 cmluZyh0c3QucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0b3Zh Y3V1bV9hbmFseXplX3RocmVzaG9sZD0oWzAtOV0qKScpIEFTIHRvYXN0X2F1 dG92YWN1dW1fYW5hbHl6ZV90aHJlc2hvbGQsCisgICAgc3Vic3RyaW5nKGFy cmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJP TSAnYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2ZhY3Rvcj0oWzAtOV0qWy5d WzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fYW5hbHl6ZV9zY2FsZV9m YWN0b3IsCisgICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVs b3B0aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1f Y29zdF9kZWxheT0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fdmFj dXVtX2Nvc3RfZGVsYXksCisgICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmlu Zyh0c3QucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0b3ZhY3V1 bV92YWN1dW1fY29zdF9saW1pdD0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92 YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQsCisgICAgc3Vic3RyaW5nKGFycmF5 X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJPTSAn YXV0b3ZhY3V1bV9mcmVlemVfbWluX2FnZT0oWzAtOV0qKScpIEFTIHRvYXN0 X2F1dG92YWN1dW1fZnJlZXplX21pbl9hZ2UsCisgICAgc3Vic3RyaW5nKGFy cmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJP TSAnYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZT0oWzAtOV0qKScpIEFTIHRv YXN0X2F1dG92YWN1dW1fZnJlZXplX21heF9hZ2UsCisgICAgc3Vic3RyaW5n KGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKQorICAgICAg RlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlPShbMC05XSopJykg QVMgdG9hc3RfYXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlLAorICAgIGMu cmVsb3B0aW9ucyBBUyByZWxvcHRpb25zLCB0c3QucmVsb3B0aW9ucyBBUyB0 b2FzdF9yZWxvcHRpb25zLAorICAgIChDQVNFIFdIRU4gYy5yZWx0b2FzdHJl bGlkID0gMCBUSEVOIGZhbHNlIEVMU0UgdHJ1ZSBFTkQpIEFTIGhhc3RvYXN0 dGFibGUsCisgICAgKENBU0UgV0hFTiAoc3Vic3RyaW5nKGFycmF5X3RvX3N0 cmluZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAgIEZST00gJ2F1dG92YWN1 dW1fZW5hYmxlZD0oW2EtenwwLTldKiknKSk6OmJvb2xlYW4gIFRIRU4gdHJ1 ZSBFTFNFIGZhbHNlIEVORCkgQVMgYXV0b3ZhY3V1bV9jdXN0b20sCisgICAg KENBU0UgV0hFTiAoc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVs b3B0aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0b3ZhY3V1bV9lbmFibGVk PShbYS16fDAtOV0qKScpKTo6Ym9vbGVhbiBUSEVOIHRydWUgRUxTRSBmYWxz ZSBFTkQpIEFTIHRvYXN0X2F1dG92YWN1dW0KK0ZST00KKyAgICBwZ19jbGFz cyBjCitMRUZUIE9VVEVSIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBvbiBuc3Au b2lkID0gYy5yZWxuYW1lc3BhY2UKK0xFRlQgT1VURVIgSk9JTiBwZ190YWJs ZXNwYWNlIHNwYyBvbiBzcGMub2lkPWMucmVsdGFibGVzcGFjZQorTEVGVCBP VVRFUiBKT0lOIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1j Lm9pZCBhbmQgZGVzLm9ianN1YmlkPTAgQU5EIGRlcy5jbGFzc29pZD0ncGdf Y2xhc3MnOjpyZWdjbGFzcykKK0xFRlQgT1VURVIgSk9JTiBwZ19jbGFzcyB0 c3QgT04gdHN0Lm9pZCA9IGMucmVsdG9hc3RyZWxpZAorICAgIFdIRVJFICgo Yy5yZWxoYXNydWxlcyBBTkQgKEVYSVNUUyAoCisgICAgICAgIFNFTEVDVAor ICAgICAgICAgICAgci5ydWxlbmFtZQorICAgICAgICBGUk9NCisgICAgICAg ICAgICBwZ19yZXdyaXRlIHIKKyAgICAgICAgV0hFUkUKKyAgICAgICAgICAg ICgoci5ldl9jbGFzcyA9IGMub2lkKQorICAgICAgICAgICAgICAgIEFORCAo YnBjaGFyKHIuZXZfdHlwZSkgPSAnMSc6OmJwY2hhcikpICkpKQorICAgICAg ICAgICAgQU5EIChjLnJlbGtpbmQgPSAnbSc6OmNoYXIpCisgICAgICAgICAg KQoreyUgaWYgKHZpZCBhbmQgZGF0bGFzdHN5c29pZCkgJX0KKyAgICBBTkQg Yy5vaWQgPSB7e3ZpZH19OjpvaWQKK3slIGVsaWYgc2NpZCAlfQorICAgIEFO RCBjLnJlbG5hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKK09SREVSIEJZCisg ICAgYy5yZWxuYW1lCit7JSBlbmRpZiAlfQorCit7JSBlbGlmIHR5cGUgPT0g J3JvbGVzJyAlfQorU0VMRUNUCisgICAgcHIucm9sbmFtZQorRlJPTQorICAg IHBnX3JvbGVzIHByCitXSEVSRQorICAgIHByLnJvbGNhbmxvZ2luCitPUkRF UiBCWQorICAgIHByLnJvbG5hbWUKKworeyUgZWxpZiB0eXBlID09ICdzY2hl bWFzJyAlfQorU0VMRUNUCisgICAgbnNwLm5zcG5hbWUKK0ZST00KKyAgICBw Z19uYW1lc3BhY2UgbnNwCitXSEVSRQorICAgIChuc3AubnNwbmFtZSBOT1Qg TElLRSBFJ3BnXFxfJScKKyAgICAgICAgQU5EIG5zcC5uc3BuYW1lICE9ICdp bmZvcm1hdGlvbl9zY2hlbWEnKQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9wcGFzLzku M19wbHVzL3NxbC9yZWZyZXNoLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdz L3RlbXBsYXRlcy9tdmlldy9wcGFzLzkuM19wbHVzL3NxbC9yZWZyZXNoLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMTU3MDM2 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL212aWV3L3BwYXMvOS4zX3BsdXMvc3FsL3JlZnJlc2guc3FsCkBA IC0wLDAgKzEsNCBAQAoreyM9PT0gcmVmcmVzaCBtYXQgdmlldyBbY29uY3Vy cmVubHR5XSA9PT0jfQoreyUgaWYgbmFtZSBhbmQgbnNwbmFtZSAlfQorUkVG UkVTSCBNQVRFUklBTElaRUQgVklFVyB7JSBpZiBpc19jb25jdXJyZW50ICV9 Q09OQ1VSUkVOVExZeyUgZW5kaWYgJX0ge3sgY29ubnxxdElkZW50KG5zcG5h bWUsIG5hbWUpIH19OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9wcGFzLzkuM19wbHVz L3NxbC91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL212aWV3L3BwYXMvOS4zX3BsdXMvc3FsL3VwZGF0ZS5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODI2NGYwZgotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9t dmlldy9wcGFzLzkuM19wbHVzL3NxbC91cGRhdGUuc3FsCkBAIC0wLDAgKzEs MTYyIEBACit7IyA9PT09PT09PT09PT09PT09PT09PT0gVXBkYXRlIFZpZXcg PT09PT09PT09PT09PT09PT09PSN9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1 cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jv cy9zY2hlbWFzL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQor eyUtIGlmIGRhdGEgLSV9Cit7JSBzZXQgdmlld19uYW1lID0gZGF0YS5uYW1l IGlmIGRhdGEubmFtZSBlbHNlIG9fZGF0YS5uYW1lICV9Cit7JSBzZXQgdmll d19zY2hlbWEgPSBkYXRhLnNjaGVtYSBpZiBkYXRhLnNjaGVtYSBlbHNlIG9f ZGF0YS5zY2hlbWEgJX0KK3slIHNldCBkZWYgPSBkYXRhLmRlZmluaXRpb24u cnN0cmlwKCc7JykgaWYgZGF0YS5kZWZpbml0aW9uICV9Cit7IyA9PT09PSBS ZW5hbWUgbWF0IHZpZXcgPT09PT0gI30KK3slIGlmIGRhdGEubmFtZSBhbmQg ZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBNQVRFUklBTEla RUQgVklFVyB7eyBjb25ufHF0SWRlbnQob19kYXRhLnNjaGVtYSwgb19kYXRh Lm5hbWUpIH19CisgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5u YW1lKSB9fTsKKworeyUgZW5kaWYgJX0KK3sjID09PT09IEFsdGVyIHNjaGVt YSB2aWV3ID09PT09ICN9Cit7JSBpZiBkYXRhLnNjaGVtYSBhbmQgZGF0YS5z Y2hlbWEgIT0gb19kYXRhLnNjaGVtYSAlfQorQUxURVIgTUFURVJJQUxJWkVE IFZJRVcge3sgY29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIHZpZXdfbmFt ZSApIH19CisgIFNFVCBTQ0hFTUEge3sgY29ubnxxdElkZW50KGRhdGEuc2No ZW1hKSB9fTsKKworeyUgZW5kaWYgJX0KK3sjID09PT09IEFsdGVyIFRhYmxl IG93bmVyID09PT09ICN9Cit7JSBpZiBkYXRhLm93bmVyIGFuZCBkYXRhLm93 bmVyICE9IG9fZGF0YS5vd25lciAlfQorQUxURVIgVEFCTEUge3sgY29ubnxx dElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CisgIE9XTkVSIFRP IHt7IGNvbm58cXRJZGVudChkYXRhLm93bmVyKSB9fTsKKworeyUgZW5kaWYg JX0KK3slIGlmIGRhdGFbJ3ZhY3V1bV9kYXRhJ11bJ3Jlc2V0J118bGVuZ3Ro ID09IDAgYW5kCitkYXRhWyd2YWN1dW1fZGF0YSddWydjaGFuZ2VkJ118bGVu Z3RoID09IDAgYW5kIGRhdGFbJ3NldHRpbmdzJ118bGVuZ3RoID4gMCAlfQor QUxURVIgTUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdf c2NoZW1hLCB2aWV3X25hbWUpIH19CitTRVQoCit7JSBmb3IgZmllbGQgaW4g ZGF0YVsnc2V0dGluZ3MnXSAlfQorICB7eyBmaWVsZCB9fSA9IHt7IGRhdGFb J3NldHRpbmdzJ11bZmllbGRdfGxvd2VyIH19eyUgaWYgbm90IGxvb3AubGFz dCAgJX0seyUgZW5kaWYgJX17eyAnXHInIH19Cit7JSBlbmRmb3IgJX0KKyk7 CisKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhWyd2YWN1dW1fZGF0YSddWydy ZXNldCddfGxlbmd0aCA+IDAgJX0KK0FMVEVSIE1BVEVSSUFMSVpFRCBWSUVX IHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQor UkVTRVQoCit7JSBmb3IgZmllbGQgaW4gZGF0YVsndmFjdXVtX2RhdGEnXVsn cmVzZXQnXSAlfQorICB7eyBmaWVsZC5uYW1lIH19eyUgaWYgbm90IGxvb3Au bGFzdCAgJX0seyUgZW5kaWYgJX17eyAnXHInIH19Cit7JSBlbmRmb3IgJX0K Kyk7Cit7JSBlbmRpZiAlfQoreyMgPT09PT0gRmlyc3QgRHJvcCBhbmQgdGhl biBjcmVhdGUgbWF0IHZpZXcgPT09PT0gI30KK3slIGlmIGRlZiBhbmQgZGVm ICE9IG9fZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgnOycpICV9Cit7JSBpZiBk YXRhLmZpbGxmYWN0b3Igb3IgKCBkYXRhWyd2YWN1dW1fZGF0YSddWydjaGFu Z2VkJ118bGVuZ3RoID4gMCApICV9CitEUk9QIE1BVEVSSUFMSVpFRCBWSUVX IHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fTsK K0NSRUFURSBNQVRFUklBTElaRUQgVklFVyB7eyBjb25ufHF0SWRlbnQodmll d19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KK1dJVEgoCit7JSBpZiBkYXRhLmZp bGxmYWN0b3IgJX0KKyAgRklMTEZBQ1RPUiA9IHt7IGRhdGEuZmlsbGZhY3Rv ciB9fXslIGlmIGRhdGFbJ3ZhY3V1bV9kYXRhJ11bJ2NoYW5nZWQnXXxsZW5n dGggPiAwICV9LHslIGVuZGlmICV9e3sgJ1xyJyB9fQoreyUgZW5kaWYgJX0K K3slIGlmIGRhdGFbJ3ZhY3V1bV9kYXRhJ11bJ2NoYW5nZWQnXXxsZW5ndGgg PiAwICV9Cit7JSBmb3IgZmllbGQgaW4gZGF0YVsndmFjdXVtX2RhdGEnXVsn Y2hhbmdlZCddICV9CisgIHt7IGZpZWxkLm5hbWUgfX0gPSB7eyBmaWVsZC52 YWx1ZXxsb3dlciB9fXslIGlmIG5vdCBsb29wLmxhc3QgICV9LHslIGVuZGlm ICV9e3sgJ1xyJyB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQorKQor IEFTCit7eyBkZWYgfX0KK3slIGlmIGRhdGEud2l0aF9kYXRhICV9CisgV0lU SCBEQVRBOworCit7JSBlbHNlICV9CisgV0lUSCBOTyBEQVRBOworCit7JSBl bmRpZiAlfQoreyUgZW5kaWYgJX0KK3slIGVsc2UgJX0KK3sjID09PT09PT0g QWx0ZXIgVGFibGVzcGFjZSA9PT09PT09PT0gI30KK3slLSBpZiBkYXRhLnNw Y29pZCBhbmQgb19kYXRhLnNwY29pZCAhPSBkYXRhLnNwY29pZCAgLSV9CitB TFRFUiBNQVRFUklBTElaRUQgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19z Y2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgU0VUIFRBQkxFU1BBQ0Uge3sgZGF0 YS5zcGNvaWQgfX07CisKK3slIGVuZGlmICV9Cit7IyA9PT09PT09IFNFVC9S RVNFVCBGaWxsZmFjdG9yID09PT09PT09PSAjfQoreyUgaWYgZGF0YS5maWxs ZmFjdG9yIGFuZCBvX2RhdGEuZmlsbGZhY3RvciAhPSBkYXRhLmZpbGxmYWN0 b3IgJX0KK0FMVEVSIE1BVEVSSUFMSVpFRCBWSUVXIHt7IGNvbm58cXRJZGVu dCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorU0VUKEZJTExGQUNUT1Ig PSB7eyBkYXRhLmZpbGxmYWN0b3IgfX0pOworCit7JSBlbGlmIGRhdGEuZmls bGZhY3RvciA9PSAnJyAlfQorQUxURVIgTUFURVJJQUxJWkVEIFZJRVcge3sg Y29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CitSRVNF VCgKKyAgRklMTEZBQ1RPUgorKTsKKworeyUgZW5kaWYgJX0KK3sjID09PT09 IENoZWNrIGZvciB3aXRoX2RhdGEgcHJvcGVydHkgPT09PT0gI30KK3slIGlm IGRhdGEud2l0aF9kYXRhIGlzIGRlZmluZWQgYW5kIG9fZGF0YS53aXRoX2Rh dGF8bG93ZXIgIT0gZGF0YS53aXRoX2RhdGF8bG93ZXIgICV9CitSRUZSRVNI IE1BVEVSSUFMSVpFRCBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVt YSwgdmlld19uYW1lKSB9fSBXSVRIe3sgJyBOTycgaWYgZGF0YS53aXRoX2Rh dGF8bG93ZXIgPT0gJ2ZhbHNlJyBlbHNlICcnIH19IERBVEE7CisKK3slIGVu ZGlmICV9Cit7IyA9PT09PSBDaGVjayBmb3IgVGFibGUgdGFiIHByb3BlcnRp ZXMgPT09PT0gI30KK3slIGlmIGRhdGEuYXV0b3ZhY3V1bV9jdXN0b20gaXMg ZGVmaW5lZCBhbmQgZGF0YS5hdXRvdmFjdXVtX2N1c3RvbXxsb3dlciA9PSAn ZmFsc2UnICV9CitBTFRFUiBNQVRFUklBTElaRUQgVklFVyB7eyBjb25ufHF0 SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KK1JFU0VUKAorICBh dXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQsCisgIGF1dG92YWN1dW1fYW5h bHl6ZV90aHJlc2hvbGQsCisgIGF1dG92YWN1dW1fdmFjdXVtX3NjYWxlX2Zh Y3RvciwKKyAgYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2ZhY3RvciwKKyAg YXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheSwKKyAgYXV0b3ZhY3V1bV92 YWN1dW1fY29zdF9saW1pdCwKKyAgYXV0b3ZhY3V1bV9mcmVlemVfbWluX2Fn ZSwKKyAgYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZSwKKyAgYXV0b3ZhY3V1 bV9mcmVlemVfdGFibGVfYWdlCispOworCit7JSBlbGlmKGRhdGFbJ3ZhY3V1 bV9kYXRhJ11bJ2NoYW5nZWQnXXxsZW5ndGggPiAwKSAlfQorQUxURVIgTUFU RVJJQUxJWkVEIFZJRVcge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBk YXRhLm5hbWUpIH19IFNFVCgKK3slIGZvciBmaWVsZCBpbiBkYXRhWyd2YWN1 dW1fZGF0YSddWydjaGFuZ2VkJ10gJX0KK3slIGlmIGZpZWxkLnZhbHVlICE9 IE5vbmUgJX0KKyAge3sgZmllbGQubmFtZSB9fSA9IHt7IGZpZWxkLnZhbHVl fGxvd2VyIH19eyUgaWYgbm90IGxvb3AubGFzdCAgJX0seyUgZW5kaWYgJX17 eyAnXHInIH19Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9CispOworCit7 JSBlbmRpZiAlfXsjID09PT09IEVuZCBjaGVjayBmb3IgY3VzdG9tIGF1dG92 YWNjdW0gPT09PT0gI30KK3slIGVuZGlmICV9eyMgPT09PT0gRW5kIGJsb2Nr IGZvciBjaGVjayBkYXRhIGRlZmluaXRpb24gPT09PT0gI30KK3slLSBpZiBk YXRhLmNvbW1lbnQgYW5kIGRhdGEuY29tbWVudCAhPSBvX2RhdGEuY29tbWVu dCAtJX0KK0NPTU1FTlQgT04gTUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxx dElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CisgIElTIHt7IGRh dGEuY29tbWVudHxxdExpdGVyYWwgfX07CisKK3slIGVuZGlmICV9Cit7IyA9 PT09PT09PT09PT09IFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hh bmdlIHByaXZpbGVnZXMgPT09PT09PT09PT09PSAjfQoreyUgaWYgZGF0YS5k YXRhY2wgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLmRhdGFjbCAlfQor eyUgZm9yIHByaXYgaW4gZGF0YS5kYXRhY2wuZGVsZXRlZCAlfQore3sgUFJJ VklMRUdFLlJFU0VUQUxMKGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwg ZGF0YS5uYW1lLCBkYXRhLnNjaGVtYSkgfX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBkYXRhLmRhdGFjbCAlfQor eyUgZm9yIHByaXYgaW4gZGF0YS5kYXRhY2wuY2hhbmdlZCAtJX0KK3t7IFBS SVZJTEVHRS5VTlNFVEFMTChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUs IGRhdGEubmFtZSwgZGF0YS5zY2hlbWEpIH19Cit7eyBQUklWSUxFR0UuU0VU KGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwcml2 LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgZGF0YS5zY2hlbWEp IH19Cit7JS0gZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVk JyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5kYXRh Y2wuYWRkZWQgJX0KK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1RBQkxFJywg cHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIHByaXYud2l0aG91dF9ncmFudCwg cHJpdi53aXRoX2dyYW50LCBkYXRhLnNjaGVtYSkgfX0KK3slIGVuZGZvciAl fQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7IyA9PT09PT09PT09PT09 PSBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBTZWN1cml0 eSBMYWJlbCA9PT09PT09PT0gI30KK3slIGlmIGRhdGEuc2VjbGFiZWxzIGlz IG5vdCBub25lIGFuZCBkYXRhLnNlY2xhYmVsc3xsZW5ndGggPiAwICV9Cit7 JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmICdk ZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVkfGxl bmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5kZWxldGVkICV9 Cit7eyBTRUNMQUJMRS5EUk9QKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCBy LnByb3ZpZGVyKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUg aWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxs ZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0K K3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCBy LnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBh bmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIg aW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KK3t7IFNFQ0xBQkxFLkFQUExZKGNv bm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5 X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgZW5k aWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvcHBhcy85LjNfcGx1cy9zcWwvdmll d19pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZp ZXcvcHBhcy85LjNfcGx1cy9zcWwvdmlld19pZC5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE5MmE4MAotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9w cGFzLzkuM19wbHVzL3NxbC92aWV3X2lkLnNxbApAQCAtMCwwICsxLDQgQEAK K3sjID09PT09IEJlbG93IHdpbGwgcHJvdmlkZSB2aWV3IGlkIGZvciBsYXN0 IGNyZWF0ZWQgdmlldyA9PT09ICN9Cit7JSBpZiBkYXRhICV9CitTRUxFQ1Qg Yy5vaWQgRlJPTSBwZ19jbGFzcyBjIFdIRVJFIGMucmVsbmFtZSA9ICd7eyBk YXRhLm5hbWUgfX0nOworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L2Nzcy92aWV3LmNzcyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L2Nzcy92aWV3 LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWVh ZTRlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL3ZpZXcvY3NzL3ZpZXcuY3NzCkBAIC0wLDAgKzEsMTIgQEAK Ky5pY29uLXZpZXd7CisgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgne3sgdXJs X2ZvcignTk9ERS12aWV3LnN0YXRpYycsIGZpbGVuYW1lPSdpbWcvdmlldy5w bmcnKSB9fScpICFpbXBvcnRhbnQ7CisgIGJvcmRlci1yYWRpdXM6IDEwcHg7 CisgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgIGFsaWduLWNv bnRlbnQ6IGNlbnRlcjsKKyAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKKyAg aGVpZ2h0OiAxLjNlbTsKK30KKworLnNxbF9maWVsZF9oZWlnaHRfMTQwIHsK KyAgaGVpZ2h0OiAxNDBweDsKK30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L2pzL3ZpZXcuanMgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9qcy92aWV3LmpzCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5ZDdiNmIKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMv dmlldy9qcy92aWV3LmpzCkBAIC0wLDAgKzEsMjY4IEBACitkZWZpbmUoCisg IFsnanF1ZXJ5JywgJ3VuZGVyc2NvcmUnLCAndW5kZXJzY29yZS5zdHJpbmcn LCAncGdhZG1pbicsCisgICAgJ3BnYWRtaW4uYnJvd3NlcicsICdjb2RlbWly cm9yJywgJ3BnYWRtaW4uYnJvd3Nlci5zZXJ2ZXIucHJpdmlsZWdlJywgJ3Bn YWRtaW4ubm9kZS5ydWxlJ10sCisKK2Z1bmN0aW9uKCQsIF8sIFMsIHBnQWRt aW4sIHBnQnJvd3NlciwgQ29kZU1pcnJvcikgeworCisgIC8qKgorICAgIENy ZWF0ZSBhbmQgYWRkIGEgdmlldyBjb2xsZWN0aW9uIGludG8gbm9kZXMKKyAg ICBAcGFyYW0ge3ZhcmlhYmxlfSBsYWJlbCAtIExhYmVsIGZvciBOb2RlCisg ICAgQHBhcmFtIHt2YXJpYWJsZX0gdHlwZSAtIFR5cGUgb2YgTm9kZQorICAg IEBwYXJhbSB7dmFyaWFibGV9IGNvbHVtbnMgLSBMaXN0IG9mIGNvbHVtbnMg dG8KKyAgICAgIGRpc3BsYXkgdW5kZXIgdW5kZXIgcHJvcGVydGllcy4KKyAg ICovCisgIGlmICghcGdCcm93c2VyLk5vZGVzWydjb2xsLXZpZXcnXSkgewor ICAgIHZhciB2aWV3cz0gcGdBZG1pbi5Ccm93c2VyLk5vZGVzWydjb2xsLXZp ZXcnXSA9CisgICAgICBwZ0FkbWluLkJyb3dzZXIuQ29sbGVjdGlvbi5leHRl bmQoeworICAgICAgICBub2RlOiAndmlldycsCisgICAgICAgIGxhYmVsOiAn e3sgXygiVmlld3MiKSB9fScsCisgICAgICAgIHR5cGU6ICdjb2xsLXZpZXcn LAorICAgICAgICBjb2x1bW5zOiBbIm5hbWUiLCAib3duZXIiXQorICAgICAg fSk7CisgIH0KKworICAvKioKKyAgICBDcmVhdGUgYW5kIEFkZCBhIFZpZXcg Tm9kZSBpbnRvIG5vZGVzCisgICAgQHBhcmFtIHt2YXJpYWJsZX0gcGFyZW50 X3R5cGUgLSBUaGUgbGlzdCBvZiBub2RlcworICAgIHVuZGVyIHdoaWNoIHRo aXMgbm9kZSB0byBkaXNwbGF5CisgICAgQHBhcmFtIHt2YXJpYWJsZX0gdHlw ZSAtIFR5cGUgb2YgTm9kZQorICAgIEBwYXJhbSB7dmFyaWFibGV9IGhhc1NR TCAtIFRvIHNob3cgU1FMIHRhYgorICAgIEBwYXJhbSB7dmFyaWFibGV9IGNh bkRyb3AgLSBBZGRzIGRyb3AgdmlldyBvcHRpb24KKyAgICBpbiB0aGUgY29u dGV4dCBtZW51CisgICAgQHBhcmFtIHt2YXJpYWJsZX0gY2FuRHJvcENhc2Nh ZGUgLSBBZGRzIGRyb3AgQ2FzY2FkZQorICAgIHZpZXcgb3B0aW9uIGluIHRo ZSBjb250ZXh0IG1lbnUKKyAgICovCisgIGlmICghcGdCcm93c2VyLk5vZGVz Wyd2aWV3J10pIHsKKyAgICBwZ0FkbWluLkJyb3dzZXIuTm9kZXNbJ3ZpZXcn XSA9IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLmV4dGVuZCh7CisgICAgICBwYXJl bnRfdHlwZTogWydzY2hlbWEnLCAnY2F0YWxvZyddLAorICAgICAgdHlwZTog J3ZpZXcnLAorICAgICAgc3FsQWx0ZXJIZWxwOiAnc3FsLWFsdGVydmlldy5o dG1sJywKKyAgICAgIHNxbENyZWF0ZUhlbHA6ICdzcWwtY3JlYXRldmlldy5o dG1sJywKKyAgICAgIGxhYmVsOiAne3sgXygiVmlldyIpIH19JywKKyAgICAg IGhhc1NRTDogIHRydWUsCisgICAgICBoYXNEZXBlbmRzOiB0cnVlLAorICAg ICAgY29sbGVjdGlvbl90eXBlOiAnY29sbC12aWV3JywKKyAgICAgIGNhbkRy b3A6IHBnQnJvd3Nlci5Ob2Rlc1snc2NoZW1hJ10uY2FuQ2hpbGREcm9wLAor ICAgICAgY2FuRHJvcENhc2NhZGU6IHBnQnJvd3Nlci5Ob2Rlc1snc2NoZW1h J10uY2FuQ2hpbGREcm9wLAorICAgICAgSW5pdDogZnVuY3Rpb24oKSB7CisK KyAgICAgICAgLy8gQXZvaWQgbXVsaXRwbGUgcmVnaXN0cmF0aW9uIG9mIG1l bnVzCisgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKQorICAgICAgICAg IHJldHVybjsKKworICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTsK KworICAgICAgICAvKioKKyAgICAgICAgICBBZGQgImNyZWF0ZSB2aWV3IiBt ZW51IG9wdGlvbiBpbnRvIGNvbnRleHQgYW5kIG9iamVjdCBtZW51CisgICAg ICAgICAgZm9yIHRoZSBmb2xsb3dpbmcgbm9kZXM6CisgICAgICAgICAgY29s bC12aWV3LCB2aWV3IGFuZCBzY2hlbWEuCisgICAgICAgICAgQHByb3BlcnR5 IHtkYXRhfSAtIEFsbG93IGNyZWF0ZSB2aWV3IG9wdGlvbiBvbiBzY2hlbWEg bm9kZSBvcgorICAgICAgICAgIHN5c3RlbSB2aWV3IG5vZGVzLgorICAgICAg ICAgKi8KKyAgICAgICAgcGdCcm93c2VyLmFkZF9tZW51cyhbeworICAgICAg ICAgIG5hbWU6ICdjcmVhdGVfdmlld19vbl9jb2xsJywgbm9kZTogJ2NvbGwt dmlldycsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29i amVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVy dGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0 eTogMSwgbGFiZWw6ICd7eyBfKCJWaWV3Li4uIikgfX0nLAorICAgICAgICAg IGljb246ICd3Y1RhYkljb24gaWNvbi12aWV3JywgZGF0YToge2FjdGlvbjog J2NyZWF0ZScsIGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBlbmFibGU6ICdj YW5DcmVhdGUnCisgICAgICAgIH0seworICAgICAgICAgIG5hbWU6ICdjcmVh dGVfdmlldycsIG5vZGU6ICd2aWV3JywgbW9kdWxlOiB0aGlzLAorICAgICAg ICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6 ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTog J2NyZWF0ZScsIHByaW9yaXR5OiAxLCBsYWJlbDogJ3t7IF8oIlZpZXcuLi4i KSB9fScsCisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLXZpZXcn LCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6IHRydWV9LAorICAg ICAgICAgIGVuYWJsZTogJ2NhbkNyZWF0ZScKKyAgICAgICAgfSx7CisgICAg ICAgICAgbmFtZTogJ2NyZWF0ZV92aWV3Jywgbm9kZTogJ3NjaGVtYScsIG1v ZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdj b250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisg ICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogMTcsIGxh YmVsOiAne3sgXygiVmlldy4uLiIpIH19JywKKyAgICAgICAgICBpY29uOiAn d2NUYWJJY29uIGljb24tdmlldycsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUn LCBjaGVjazogZmFsc2V9LAorICAgICAgICAgIGVuYWJsZTogJ2NhbkNyZWF0 ZScKKyAgICAgICAgfQorICAgICAgICBdKTsKKyAgICAgIH0sCisKKyAgICAg IC8qKgorICAgICAgICBEZWZpbmUgbW9kZWwgZm9yIHRoZSB2aWV3IG5vZGUg YW5kIHNwZWNpZnkgdGhlCisgICAgICAgIHByb3BlcnRpZXMgb2YgdGhlIG1v ZGVsIGluIHNjaGVtYS4KKyAgICAgICAqLworICAgICAgbW9kZWw6IHBnQWRt aW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAgICAgIGluaXRp YWxpemU6IGZ1bmN0aW9uKGF0dHJzLCBhcmdzKSB7CisgICAgICAgICAgdmFy IGlzTmV3ID0gKF8uc2l6ZShhdHRycykgPT09IDApOworICAgICAgICAgIGlm IChpc05ldykgeworICAgICAgICAgICAgLy8gU2V0IFNlbGVjdGVkIFNjaGVt YQorICAgICAgICAgICAgc2NoZW1hX2lkID0gYXJncy5ub2RlX2luZm8uc2No ZW1hLl9pZDsKKyAgICAgICAgICAgIHRoaXMuc2V0KHsnc2NoZW1hJzogc2No ZW1hX2lkfSwge3NpbGVudDogdHJ1ZX0pOworCisgICAgICAgICAgICAvLyBT ZXQgQ3VycmVudCBVc2VyCisgICAgICAgICAgICB2YXIgdXNlckluZm8gPSBw Z0Jyb3dzZXIuc2VydmVySW5mb1thcmdzLm5vZGVfaW5mby5zZXJ2ZXIuX2lk XS51c2VyOworICAgICAgICAgICAgdGhpcy5zZXQoeydvd25lcic6IHVzZXJJ bmZvLm5hbWV9LCB7c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgfQorICAg ICAgICAgIHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLnByb3RvdHlwZS5p bml0aWFsaXplLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgICAgICAgIH0s CisgICAgICAgIHNjaGVtYTogW3sKKyAgICAgICAgICBpZDogJ25hbWUnLCBs YWJlbDogJ3t7IF8oIk5hbWUiKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAg ICAgICAgIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6ICdpblNjaGVtYScKKyAg ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnb2lkJywgbGFi ZWw6J3t7IF8oIk9JRCIpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAg ICAgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDogdHJ1ZSwgbW9kZTogWydwcm9w ZXJ0aWVzJ10KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlk OiAnb3duZXInLCBsYWJlbDone3sgXygiT3duZXIiKSB9fScsIGNlbGw6ICdz dHJpbmcnLCBjb250cm9sOiAnbm9kZS1saXN0LWJ5LW5hbWUnLAorICAgICAg ICAgIG5vZGU6ICdyb2xlJywgZGlzYWJsZWQ6ICdpblNjaGVtYScKKyAgICAg ICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnc2NoZW1hJywgbGFi ZWw6J3t7IF8oIlNjaGVtYSIpIH19JywgY2VsbDogJ3N0cmluZycsIGZpcnN0 X2VtcHR5OiBmYWxzZSwKKyAgICAgICAgICBjb250cm9sOiAnbm9kZS1saXN0 LWJ5LWlkJywgdHlwZTogJ3RleHQnLCBjYWNoZV9sZXZlbDogJ2RhdGFiYXNl JywKKyAgICAgICAgICBub2RlOiAnc2NoZW1hJywgZGlzYWJsZWQ6ICdpblNj aGVtYScsIG1vZGU6IFsnY3JlYXRlJywgJ2VkaXQnXSwKKyAgICAgICAgfSwK KyAgICAgICAgeworICAgICAgICAgIGlkOiAnc3lzdGVtX3ZpZXcnLCBsYWJl bDone3sgXygiU3lzdGVtIHZpZXc/IikgfX0nLCBjZWxsOiAnc3RyaW5nJywK KyAgICAgICAgICB0eXBlOiAnc3dpdGNoJywgZGlzYWJsZWQ6IHRydWUsIG1v ZGU6IFsncHJvcGVydGllcyddCisgICAgICAgIH0sCisgICAgICAgIHsKKyAg ICAgICAgICBpZDogJ2FjbCcsIGxhYmVsOiAne3sgXygiUHJpdmlsZWdlcyIp IH19JywKKyAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwgdHlwZTog J3RleHQnCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDog J2NvbW1lbnQnLCBsYWJlbDone3sgXygiQ29tbWVudCIpIH19JywgY2VsbDog J3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ211bHRpbGluZScsIGRpc2Fi bGVkOiAnaW5TY2hlbWEnCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg ICAgICBpZDogJ3NlY3VyaXR5X2JhcnJpZXInLCBsYWJlbDone3sgXygiU2Vj dXJpdHkgYmFycmllciIpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAg ICAgdHlwZTogJ3N3aXRjaCcsIG1pbl92ZXJzaW9uOiAnOTAyMDAnLCBtb2Rl OiBbJ2NyZWF0ZScsICdlZGl0J10sCisgICAgICAgICAgZ3JvdXA6ICdEZWZp bml0aW9uJywgZGlzYWJsZWQ6ICdpblNjaGVtYScKKyAgICAgICAgfSwKKyAg ICAgICAgeworICAgICAgICAgIGlkOiAnY2hlY2tfb3B0aW9uJywgbGFiZWw6 J3t7IF8oIkNoZWNrIG9wdGlvbnMiKSB9fScsCisgICAgICAgICAgY29udHJv bDogJ3NlbGVjdDInLCBncm91cDogJ0RlZmluaXRpb24nLCB0eXBlOiAndGV4 dCcsCisgICAgICAgICAgbWluX3ZlcnNpb246ICc5MDQwMCcsIG1vZGU6Wydw cm9wZXJ0aWVzJywgJ2NyZWF0ZScsICdlZGl0J10sCisgICAgICAgICAgc2Vs ZWN0MjogeworCisgICAgICAgICAgICAvLyBzZXQgc2VsZWN0MiBvcHRpb24g d2lkdGggdG8gMTAwJQorICAgICAgICAgICAgd2lkdGg6ICcxMDAlJworICAg ICAgICAgIH0sCisgICAgICAgICAgb3B0aW9uczpbCisgICAgICAgICAgICB7 bGFiZWw6ICJObyIsIHZhbHVlOiAibm8ifSwKKyAgICAgICAgICAgIHtsYWJl bDogIkxvY2FsIiwgdmFsdWU6ICJsb2NhbCJ9LAorICAgICAgICAgICAge2xh YmVsOiAiQ2FzY2FkZWQiLCB2YWx1ZTogImNhc2NhZGVkIn0KKyAgICAgICAg ICBdLCBkaXNhYmxlZDogJ2luU2NoZW1hJworICAgICAgICB9LAorICAgICAg ICB7CisgICAgICAgICAgaWQ6ICdkZWZpbml0aW9uJywgbGFiZWw6J3t7IF8o IkRlZmluaXRpb24iKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAg IHR5cGU6ICd0ZXh0JywgbW9kZTogWydjcmVhdGUnLCAnZWRpdCddLCBncm91 cDogJ0RlZmluaXRpb24nLAorICAgICAgICAgIGNvbnRyb2w6IEJhY2tmb3Jt LlNxbEZpZWxkQ29udHJvbCwKKyAgICAgICAgICBkaXNhYmxlZDogJ2luU2No ZW1hJworICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdz ZWN1cml0eScsIGxhYmVsOiAne3sgXygiU2VjdXJpdHkiKSB9fScsCisgICAg ICAgICAgdHlwZTogJ2dyb3VwJywKKyAgICAgICAgICB2aXNpYmxlOiBmdW5j dGlvbihtKSB7CisgICAgICAgICAgICBpZiAobS50b3AgJiYgJ2NhdGFsb2cn IGluIG0udG9wLm5vZGVfaW5mbykgeworICAgICAgICAgICAgICByZXR1cm4g ZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1 ZTsKKyAgICAgICAgICB9CisgICAgICAgIH0sCisKKyAgICAgICAgLy8gQWRk IFByaXZpbGVnZSBDb250cm9sCisgICAgICAgIHsKKyAgICAgICAgICBpZDog J2RhdGFjbCcsIGxhYmVsOiAne3sgXygiUHJpdmlsZWdlcyIpIH19JywKKyAg ICAgICAgICBtb2RlbDogcGdBZG1pbi5Ccm93c2VyLk5vZGUuUHJpdmlsZWdl Um9sZU1vZGVsLmV4dGVuZCgKKyAgICAgICAgICAgIHtwcml2aWxlZ2VzOiBb J2EnLCAncicsICd3JywgJ2QnLCAnRCcsICd4JywgJ3QnXX0pLCB1bmlxdWVD b2wgOiBbJ2dyYW50ZWUnXSwKKyAgICAgICAgICBlZGl0YWJsZTogZmFsc2Us IHR5cGU6ICdjb2xsZWN0aW9uJywgZ3JvdXA6ICdzZWN1cml0eScsCisgICAg ICAgICAgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLCBjYW5BZGQ6IHRydWUs IGNhbkRlbGV0ZTogdHJ1ZSwKKyAgICAgICAgICBjb250cm9sOiAndW5pcXVl LWNvbC1jb2xsZWN0aW9uJywgZGlzYWJsZWQ6ICdpblNjaGVtYScKKyAgICAg ICAgfSwKKworICAgICAgICAvLyBBZGQgU2VjdXJpdHkgTGFiZWxzIENvbnRy b2wKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnc2VjbGFiZWxzJywgbGFi ZWw6ICd7eyBfKCJTZWN1cml0eSBsYWJlbHMiKSB9fScsCisgICAgICAgICAg bW9kZWw6IEJhY2tmb3JtLlNlY3VyaXR5TW9kZWwsIGVkaXRhYmxlOiBmYWxz ZSwgdHlwZTogJ2NvbGxlY3Rpb24nLAorICAgICAgICAgIGNhbkVkaXQ6IGZh bHNlLCBncm91cDogJ3NlY3VyaXR5JywgY2FuRGVsZXRlOiB0cnVlLAorICAg ICAgICAgIG1vZGU6IFsnZWRpdCcsICdjcmVhdGUnXSwgY2FuQWRkOiB0cnVl LCBkaXNhYmxlZDogJ2luU2NoZW1hJywKKyAgICAgICAgICBjb250cm9sOiAn dW5pcXVlLWNvbC1jb2xsZWN0aW9uJywgdW5pcXVlQ29sIDogWydwcm92aWRl ciddCisgICAgICAgIH0sCisgICAgICAgIF0sCisgICAgICAgIHZhbGlkYXRl OiBmdW5jdGlvbigpIHsKKworICAgICAgICAgIC8vIFRyaWdnZXJzIHNwZWNp ZmljIGVycm9yIG1lc3NhZ2VzIGZvciBmaWVsZHMKKyAgICAgICAgICB2YXIg ZXJyID0ge30sCisgICAgICAgICAgICBlcnJtc2csCisgICAgICAgICAgICBm aWVsZF9uYW1lID0gdGhpcy5nZXQoJ25hbWUnKSwKKyAgICAgICAgICAgIGZp ZWxkX2RlZiA9IHRoaXMuZ2V0KCdkZWZpbml0aW9uJyk7CisgICAgICAgICAg aWYgKF8uaXNVbmRlZmluZWQoZmllbGRfbmFtZSkgfHwgXy5pc051bGwoZmll bGRfbmFtZSkgfHwKKyAgICAgICAgICAgIFN0cmluZyhmaWVsZF9uYW1lKS5y ZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAg ICBlcnJbJ25hbWUnXSA9ICd7eyBfKCJQbGVhc2Ugc3BlY2lmeSBuYW1lLiIp IH19JzsKKyAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJbJ25h bWUnXTsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ25hbWUn LCBlcnJtc2cpOworICAgICAgICAgICAgcmV0dXJuIGVycm1zZzsKKyAgICAg ICAgICB9ZWxzZXsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC51bnNl dCgnbmFtZScpOworICAgICAgICAgIH0KKyAgICAgICAgICBpZih0aGlzLmlz TmV3KCkpeworICAgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQoZmllbGRf ZGVmKSB8fCBfLmlzTnVsbChmaWVsZF9kZWYpIHx8CisgICAgICAgICAgICAg IFN0cmluZyhmaWVsZF9kZWYpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykg PT0gJycpIHsKKyAgICAgICAgICAgICAgZXJyWydkZWZpbml0aW9uJ10gPSAn e3sgXygiUGxlYXNlIGVudGVyIGZ1bmN0aW9uIGRlZmluaXRpb24uIikgfX0n OworICAgICAgICAgICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgZXJyWydkZWZp bml0aW9uJ107CisgICAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQo J2RlZmluaXRpb24nLCBlcnJtc2cpOworICAgICAgICAgICAgICByZXR1cm4g ZXJybXNnOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgIHRo aXMuZXJyb3JNb2RlbC51bnNldCgnZGVmaW5pdGlvbicpOworICAgICAgICAg ICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICByZXR1cm4gbnVsbDsKKyAg ICAgICAgfSwKKyAgICAgICAgLy8gV2Ugd2lsbCBkaXNhYmxlIGV2ZXJ5dGhp bmcgaWYgd2UgYXJlIHVuZGVyIGNhdGFsb2cgbm9kZQorICAgICAgICBpblNj aGVtYTogZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYodGhpcy5ub2RlX2lu Zm8gJiYgJ2NhdGFsb2cnIGluIHRoaXMubm9kZV9pbmZvKQorICAgICAgICAg IHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgIH0KKyAg ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgIH0pLAor 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 cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcv cGcvOS4xX3BsdXMvc3FsL2FjbC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvdmlldy9wZy85LjFfcGx1cy9zcWwvYWNsLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODUwNjM5Ci0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVz L3ZpZXcvcGcvOS4xX3BsdXMvc3FsL2FjbC5zcWwKQEAgLTAsMCArMSw1MSBA QAoreyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PSBHZXQgQUNMcyA9 PT09PT09PT09PT09PT09PT09PT09PT09ICN9Cit7JSBpZiB2aWQgJX0KK1NF TEVDVAorICAgICdkYXRhY2wnIGFzIGRlZnR5cGUsCisgICAgQ09BTEVTQ0Uo Z3Qucm9sbmFtZSwgJ3B1YmxpYycpIGdyYW50ZWUsCisgICAgZy5yb2xuYW1l IGdyYW50b3IsCisgICAgYXJyYXlfYWdnKHByaXZpbGVnZV90eXBlKSBhcyBw cml2aWxlZ2VzLAorICAgIGFycmF5X2FnZyhpc19ncmFudGFibGUpIGFzIGdy YW50YWJsZQorRlJPTQorICAgIChTRUxFQ1QKKyAgICAgICAgZC5ncmFudGVl LCBkLmdyYW50b3IsIGQuaXNfZ3JhbnRhYmxlLAorICAgICAgICBDQVNFIGQu cHJpdmlsZWdlX3R5cGUKKyAgICAgICAgV0hFTiAnREVMRVRFJyBUSEVOICdk JworICAgICAgICBXSEVOICdJTlNFUlQnIFRIRU4gJ2EnCisgICAgICAgIFdI RU4gJ1JFRkVSRU5DRVMnIFRIRU4gJ3gnCisgICAgICAgIFdIRU4gJ1NFTEVD VCcgVEhFTiAncicKKyAgICAgICAgV0hFTiAnVFJJR0dFUicgVEhFTiAndCcK KyAgICAgICAgV0hFTiAnVVBEQVRFJyBUSEVOICd3JworICAgICAgICBXSEVO ICdUUlVOQ0FURScgVEhFTiAnRCcKKyAgICAgICAgRUxTRSAnVU5LTk9XTicK KyAgICAgICAgRU5EIEFTIHByaXZpbGVnZV90eXBlCisgICAgRlJPTQorICAg ICAgICAoU0VMRUNUCisgICAgICAgICAgICByZWxhY2wKKyAgICAgICAgRlJP TQorICAgICAgICAgICAgcGdfY2xhc3MgY2wKKyAgICAgICAgTEVGVCBPVVRF UiBKT0lOIHBnX3NoZGVzY3JpcHRpb24gZGVzY3IgT04gKAorICAgICAgICAg ICAgY2wub2lkPWRlc2NyLm9iam9pZCBBTkQgZGVzY3IuY2xhc3NvaWQ9J3Bn X2NsYXNzJzo6cmVnY2xhc3MpCisgICAgICAgIFdIRVJFCisgICAgICAgICAg ICBjbC5vaWQgPSB7eyB2aWQgfX06Ok9JRCBBTkQgcmVsa2luZCA9ICd2Jwor ICAgICAgICApIGFjbCwKKyAgICAgICAgKFNFTEVDVAorICAgICAgICAgICAg KGQpLmdyYW50ZWUgQVMgZ3JhbnRlZSwKKyAgICAgICAgICAgIChkKS5ncmFu dG9yIEFTIGdyYW50b3IsCisgICAgICAgICAgICAoZCkuaXNfZ3JhbnRhYmxl IEFTIGlzX2dyYW50YWJsZSwKKyAgICAgICAgICAgIChkKS5wcml2aWxlZ2Vf dHlwZSBBUyBwcml2aWxlZ2VfdHlwZQorICAgICAgICBGUk9NCisgICAgICAg ICAgICAoU0VMRUNUCisgICAgICAgICAgICAgICAgYWNsZXhwbG9kZShyZWxh Y2wpIEFTIGQKKyAgICAgICAgICAgICBGUk9NCisgICAgICAgICAgICAgICAg cGdfY2xhc3MgY2wxCisgICAgICAgICAgICAgV0hFUkUKKyAgICAgICAgICAg ICAgICBjbDEub2lkID0ge3sgdmlkIH19CisgICAgICAgICAgICApIGEKKyAg ICAgICAgKSBkCisgICAgKSBkCisgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cu cGdfcm9sZXMgZyBPTiAoZC5ncmFudG9yID0gZy5vaWQpCisgICAgTEVGVCBK T0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZ3QgT04gKGQuZ3JhbnRlZSA9IGd0 Lm9pZCkKK0dST1VQIEJZCisgICAgZy5yb2xuYW1lLCBndC5yb2xuYW1lCit7 JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL3ZpZXcvcGcvOS4xX3BsdXMvc3FsL2NyZWF0ZS5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjFfcGx1 cy9zcWwvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5iMTFiYzhlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4xX3BsdXMvc3FsL2Ny ZWF0ZS5zcWwKQEAgLTAsMCArMSwyMCBAQAoreyM9PT09PT09PT09PT09PT09 PT09PT09PT09PT09Q3JlYXRlIG5ldyB2aWV3PT09PT09PT09PT09PT09PT09 PT09PT09PSN9Cit7JSBpZiBkaXNwbGF5X2NvbW1lbnRzICV9CistLSBWaWV3 OiB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0K KworLS0gRFJPUCBWSUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwg ZGF0YS5uYW1lKSB9fTsKKworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEubmFt ZSBhbmQgZGF0YS5zY2hlbWEgYW5kIGRhdGEuZGVmaW5pdGlvbiAlfQorQ1JF QVRFIE9SIFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hl bWEsIGRhdGEubmFtZSkgfX0gQVMKK3t7IGRhdGEuZGVmaW5pdGlvbi5yc3Ry aXAoJzsnKSB9fTsKK3slIGlmIGRhdGEub3duZXIgJX0KKworQUxURVIgVEFC TEUge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19 CisgICAgT1dORVIgVE8ge3sgZGF0YS5vd25lciB9fTsKK3slIGVuZGlmICV9 Cit7JSBpZiBkYXRhLmNvbW1lbnQgJX0KK0NPTU1FTlQgT04gVklFVyB7eyBj b25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKyAgICBJ UyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19OworeyUgZW5kaWYgJX0K K3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvdmlldy9wZy85LjFfcGx1cy9zcWwvZGVsZXRlLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuMV9w bHVzL3NxbC9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmU1MGJlZWMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjFfcGx1cy9zcWwv ZGVsZXRlLnNxbApAQCAtMCwwICsxLDEzIEBACit7IyA9PT09PT09PT09PT09 PT09PT09PT09IERyb3AvQ2FzY2FkZSB2aWV3IGJ5IG5hbWUgPT09PT09PT09 PT09PT09PT09PT09ICN9Cit7JSBpZiB2aWQgJX0KK1NFTEVDVAorICAgIGMu cmVsbmFtZSBBUyBuYW1lLAorICAgIG5zcC5uc3BuYW1lCitGUk9NCisgICAg cGdfY2xhc3MgYworTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc3AgT04gYy5y ZWxuYW1lc3BhY2UgPSBuc3Aub2lkCitXSEVSRQorICAgIGMucmVsZmlsZW5v ZGUgPSB7eyB2aWQgfX07Cit7JSBlbGlmIChuYW1lIGFuZCBuc3BuYW1lKSAl fQorRFJPUCBWSUVXIHt7bnNwbmFtZX19Lnt7IGNvbm58cXRJZGVudChuYW1l KSB9fSB7JSBpZiBjYXNjYWRlICV9IENBU0NBREUgeyUgZW5kaWYgJX0KK3sl IGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90 ZW1wbGF0ZXMvdmlldy9wZy85LjFfcGx1cy9zcWwvZ2V0X3NjaGVtYS5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjFf cGx1cy9zcWwvZ2V0X3NjaGVtYS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uMTI3ZDRiOQotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuMV9wbHVz L3NxbC9nZXRfc2NoZW1hLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAor ICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UKK1dIRVJFCisg ICAgb2lkID0ge3sgc2NpZCB9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4xX3BsdXMvc3Fs L2dyYW50LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3L3BnLzkuMV9wbHVzL3NxbC9ncmFudC5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNTlhMzEwZgotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzku MV9wbHVzL3NxbC9ncmFudC5zcWwKQEAgLTAsMCArMSw2IEBACit7IyA9PT09 PSBHcmFudCBQZXJtaXNzaW9ucyB0byBVc2VyIFJvbGUgb24gVmlld3MvVGFi bGVzID09PT09ICN9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNy b3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zY2hlbWFz L3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyMgPT09PT0g V2Ugd2lsbCBnZW5lcmF0ZSBTZWN1cml0eSBMYWJlbCBTUUwgdXNpbmcgbWFj cm8gPT09PT0gI30KK3slIGlmIGRhdGEuc2VjbGFiZWxzICV9eyUgZm9yIHIg aW4gZGF0YS5zZWNsYWJlbHMgJX17eyBTRUNMQUJMRS5BUFBMWShjb25uLCAn VklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJl bCkgfX17JSBlbmRmb3IgJX17JSBlbmRpZiAlfXslIGlmIGRhdGEuZGF0YWNs ICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbCAlfXt7IFBSSVZJTEVH RS5TRVQoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUs IHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBkYXRhLnNj aGVtYSkgfX17JSBlbmRmb3IgJX17JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4xX3Bs dXMvc3FsL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL3ZpZXcvcGcvOS4xX3BsdXMvc3FsL3Byb3BlcnRpZXMuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlMWQ4MDEK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvdmlldy9wZy85LjFfcGx1cy9zcWwvcHJvcGVydGllcy5zcWwKQEAg LTAsMCArMSw2OSBAQAoreyUgaWYgKHZpZCBhbmQgZGF0bGFzdHN5c29pZCkg b3Igc2NpZCAlfQorU0VMRUNUCisgICAgYy5vaWQsCisgICAgYy54bWluLAor ICAgIChDQVNFIFdIRU4gbGVuZ3RoKHNwYy5zcGNuYW1lKSA+IDAgVEhFTiBz cGMuc3BjbmFtZSBFTFNFICdwZ19kZWZhdWx0JyBFTkQpIGFzIHNwY25hbWUs CisgICAgYy5yZWxuYW1lIEFTIG5hbWUsCisgICAgbnNwLm5zcG5hbWUgQVMg c2NoZW1hLAorICAgIGRlc2NyaXB0aW9uIEFTIGNvbW1lbnQsCisgICAgYy5y ZWx0YWJsZXNwYWNlIEFTIHNwY29pZCwKKyAgICBwZ19nZXRfdXNlcmJ5aWQo Yy5yZWxvd25lcikgQVMgb3duZXIsCisgICAgcGdfZ2V0X3ZpZXdkZWYoYy5v aWQsIHRydWUpIEFTIGRlZmluaXRpb24sCisgICAgYXJyYXlfdG9fc3RyaW5n KGMucmVsYWNsOjp0ZXh0W10sICcsICcpIEFTIGFjbCwKKyAgICB7Iz09PT09 PT09PT09PT1DaGVja3MgaWYgaXQgaXMgc3lzdGVtIHZpZXc9PT09PT09PT09 PT09PT09I30KKyAgICB7JSBpZiB2aWQgYW5kIGRhdGxhc3RzeXNvaWQgJX0K KyAgICBDQVNFIFdIRU4ge3t2aWR9fSA8PSB7e2RhdGxhc3RzeXNvaWR9fSBU SEVOIFRydWUgRUxTRSBGYWxzZSBFTkQgQVMgc3lzdGVtX3ZpZXcsCisgICAg eyUgZW5kaWYgJX0KKyAgICAoU0VMRUNUCisgICAgICAgIGFycmF5X2FnZyhs YWJlbCkKKyAgICAgRlJPTQorICAgICAgICBwZ19zZWNsYWJlbHMgc2wxCisg ICAgIFdIRVJFCisgICAgICAgIHNsMS5vYmpvaWQ9Yy5vaWQgQU5EIHNsMS5v YmpzdWJpZD0wCisgICAgKSBBUyBsYWJlbHMsCisgICAgKFNFTEVDVAorICAg ICAgICBhcnJheV9hZ2cocHJvdmlkZXIpCisgICAgIEZST00KKyAgICAgICAg cGdfc2VjbGFiZWxzIHNsMgorICAgICBXSEVSRSBzbDIub2Jqb2lkPWMub2lk IEFORCBzbDIub2Jqc3ViaWQ9MAorICAgICkgQVMgcHJvdmlkZXJzCitGUk9N IHBnX2NsYXNzIGMKKyAgICBMRUZUIE9VVEVSIEpPSU4gcGdfbmFtZXNwYWNl IG5zcCBvbiBuc3Aub2lkID0gYy5yZWxuYW1lc3BhY2UKKyAgICBMRUZUIE9V VEVSIEpPSU4gcGdfdGFibGVzcGFjZSBzcGMgb24gc3BjLm9pZD1jLnJlbHRh Ymxlc3BhY2UKKyAgICBMRUZUIE9VVEVSIEpPSU4gcGdfZGVzY3JpcHRpb24g ZGVzIE9OIChkZXMub2Jqb2lkPWMub2lkIGFuZCBkZXMub2Jqc3ViaWQ9MCBB TkQgZGVzLmNsYXNzb2lkPSdwZ19jbGFzcyc6OnJlZ2NsYXNzKQorV0hFUkUg KChjLnJlbGhhc3J1bGVzCisgICAgICAgICAgICBBTkQKKyAgICAgICAgICAg ICAgICAoRVhJU1RTKAorICAgICAgICAgICAgICAgICAgICBTRUxFQ1QKKyAg ICAgICAgICAgICAgICAgICAgICAgIHIucnVsZW5hbWUKKyAgICAgICAgICAg ICAgICAgICAgRlJPTQorICAgICAgICAgICAgICAgICAgICAgICAgcGdfcmV3 cml0ZSByCisgICAgICAgICAgICAgICAgICAgIFdIRVJFCisgICAgICAgICAg ICAgICAgICAgICAgICAoKHIuZXZfY2xhc3MgPSBjLm9pZCkgQU5EIChicGNo YXIoci5ldl90eXBlKSA9ICcxJzo6YnBjaGFyKSkKKyAgICAgICAgICAgICAg ICApKQorICAgICAgICkgQU5EIChjLnJlbGtpbmQgPSAndic6OmNoYXIpKQor eyUgaWYgKHZpZCBhbmQgZGF0bGFzdHN5c29pZCkgJX0KKyAgICBBTkQgYy5v aWQgPSB7e3ZpZH19OjpvaWQKK3slIGVsaWYgc2NpZCAlfQorICAgIEFORCBj LnJlbG5hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQgT1JERVIgQlkgYy5yZWxu YW1lCit7JSBlbmRpZiAlfQorCit7JSBlbGlmIHR5cGUgPT0gJ3JvbGVzJyAl fQorU0VMRUNUCisgICAgcHIucm9sbmFtZQorRlJPTQorICAgIHBnX3JvbGVz IHByCitXSEVSRQorICAgIHByLnJvbGNhbmxvZ2luCitPUkRFUiBCWQorICAg IHByLnJvbG5hbWUKKworeyUgZWxpZiB0eXBlID09ICdzY2hlbWFzJyAlfQor U0VMRUNUCisgICAgbnNwLm5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3Bh Y2UgbnNwCitXSEVSRQorICAgIChuc3AubnNwbmFtZSBOT1QgTElLRSBFJ3Bn XFxfJScKKyAgICAgICAgQU5EIG5zcC5uc3BuYW1lICE9ICdpbmZvcm1hdGlv bl9zY2hlbWEnKQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuMV9wbHVzL3NxbC91 cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXcvcGcvOS4xX3BsdXMvc3FsL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMmY3ZjgyZQotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzku MV9wbHVzL3NxbC91cGRhdGUuc3FsCkBAIC0wLDAgKzEsNjYgQEAKK3sjID09 PT09PT09PT09PT09PT09PT09PT09PT09PT0gVXBkYXRlIFZpZXcgPT09PT09 PT09PT09PT09PT09PT09PT09PSAjfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2Vj dXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNy b3Mvc2NoZW1hcy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0K K3slIGlmIGRhdGEgJX0KK3slIHNldCB2aWV3X25hbWUgPSBkYXRhLm5hbWUg aWYgZGF0YS5uYW1lIGVsc2Ugb19kYXRhLm5hbWUgJX0KK3slIHNldCB2aWV3 X3NjaGVtYSA9IGRhdGEuc2NoZW1hIGlmIGRhdGEuc2NoZW1hIGVsc2Ugb19k YXRhLnNjaGVtYSAlfQoreyUgc2V0IGRlZiA9IGRhdGEuZGVmaW5pdGlvbi5y c3RyaXAoJzsnKSBpZiBkYXRhLmRlZmluaXRpb24gJX0KK3slIGlmIGRhdGEu bmFtZSBhbmQgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBW SUVXIHt7IGNvbm58cXRJZGVudChvX2RhdGEuc2NoZW1hLCBvX2RhdGEubmFt ZSkgfX0KKyAgICBSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50KGRhdGEubmFt ZSkgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5zY2hlbWEgYW5kIGRh dGEuc2NoZW1hICE9IG9fZGF0YS5zY2hlbWEgJX0KK0FMVEVSIFZJRVcge3sg Y29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIHZpZXdfbmFtZSApIH19Cisg ICAgU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEpIH19 OworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEub3duZXIgYW5kIGRhdGEub3du ZXIgIT0gb19kYXRhLm93bmVyICV9CitBTFRFUiBUQUJMRSB7eyBjb25ufHF0 SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBPV05FUiBU TyB7eyBjb25ufHF0SWRlbnQoZGF0YS5vd25lcikgfX07Cit7JSBlbmRpZiAl fQoreyUgaWYgZGVmIGFuZCBkZWYgIT0gb19kYXRhLmRlZmluaXRpb24ucnN0 cmlwKCc7JykgJX0KK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcge3sgY29ubnxx dElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAgQVN7eyBk ZWYgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5jb21tZW50IGFuZCBk YXRhLmNvbW1lbnQgIT0gb19kYXRhLmNvbW1lbnQgJX0KK0NPTU1FTlQgT04g VklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkg fX0KKyAgICBJUyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19OworeyUg ZW5kaWYgJX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hh bmdlIHByaXZpbGVnZXMgI30KK3slIGlmIGRhdGEuZGF0YWNsICV9Cit7JSBp ZiAnZGVsZXRlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGlu IGRhdGEuZGF0YWNsLmRlbGV0ZWQgJX0KK3t7IFBSSVZJTEVHRS5VTlNFVEFM TChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0 YS5zY2hlbWEpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBp ZiAnY2hhbmdlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGlu IGRhdGEuZGF0YWNsLmNoYW5nZWQgJX0KK3t7IFBSSVZJTEVHRS5VTlNFVEFM TChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0 YS5zY2hlbWEpIH19Cit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdUQUJMRScs IHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQs IHByaXYud2l0aF9ncmFudCwgZGF0YS5zY2hlbWEpIH19Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmICV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEuZGF0YWNs ICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5hZGRlZCAlfQore3sg UFJJVklMRUdFLlNFVChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRh dGEubmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQs IGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQor eyUgZW5kaWYgJX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwg Y2hhbmdlIFNlY3VyaXR5IExhYmVsICN9Cit7JSBpZiBkYXRhLnNlY2xhYmVs cyBpcyBub3Qgbm9uZSBhbmQgZGF0YS5zZWNsYWJlbHN8bGVuZ3RoID4gMCAl fQoreyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBp ZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRl ZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVsZXRl ZCAlfQore3sgU0VDTEFCTEUuRFJPUChjb25uLCAnVklFVycsIGRhdGEubmFt ZSwgci5wcm92aWRlcikgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0K K3slIGlmICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRk ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVk ICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnVklFVycsIGRhdGEubmFt ZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCkgfX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJl bHMgYW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3slIGZv ciByIGluIHNlY2xhYmVscy5jaGFuZ2VkICV9Cit7eyBTRUNMQUJMRS5BUFBM WShjb25uLCAnVklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1 cml0eV9sYWJlbCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3sl IGVuZGlmICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4xX3BsdXMvc3FsL3Zp ZXdfaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXcvcGcvOS4xX3BsdXMvc3FsL3ZpZXdfaWQuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkZmYwNGUKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85 LjFfcGx1cy9zcWwvdmlld19pZC5zcWwKQEAgLTAsMCArMSw0IEBACit7IyBC ZWxvdyB3aWxsIHByb3ZpZGUgdmlldyBpZCBmb3IgbmV3bHkgY3JlYXRlZCB2 aWV3ICN9Cit7JSBpZiBkYXRhICV9CitTRUxFQ1QgYy5vaWQgRlJPTSBwZ19j bGFzcyBjIFdIRVJFIGMucmVsbmFtZSA9ICd7eyBkYXRhLm5hbWUgfX0nOwor eyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdz L3RlbXBsYXRlcy92aWV3L3BnLzkuMl9wbHVzL3NxbC9hY2wuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4yX3BsdXMv c3FsL2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNWYyZDBmYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuMl9wbHVzL3NxbC9hY2wuc3Fs CkBAIC0wLDAgKzEsNTIgQEAKK3sjID09PT09PT09PT09PT09PT09PT09PT09 PT09PT0gR2V0IEFDTHMgPT09PT09PT09PT09PT09PT09PT09PT09PSAjfQor eyUgaWYgdmlkICV9CitTRUxFQ1QKKyAgICAnZGF0YWNsJyBhcyBkZWZ0eXBl LAorICAgIENPQUxFU0NFKGd0LnJvbG5hbWUsICdwdWJsaWMnKSBncmFudGVl LAorICAgIGcucm9sbmFtZSBncmFudG9yLAorICAgIGFycmF5X2FnZyhwcml2 aWxlZ2VfdHlwZSkgYXMgcHJpdmlsZWdlcywKKyAgICBhcnJheV9hZ2coaXNf Z3JhbnRhYmxlKSBhcyBncmFudGFibGUKK0ZST00KKyAgICAoU0VMRUNUCisg ICAgICAgIGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50YWJsZSwK KyAgICAgICAgQ0FTRSBkLnByaXZpbGVnZV90eXBlCisgICAgICAgIFdIRU4g J0RFTEVURScgVEhFTiAnZCcKKyAgICAgICAgV0hFTiAnSU5TRVJUJyBUSEVO ICdhJworICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4JworICAg ICAgICBXSEVOICdTRUxFQ1QnIFRIRU4gJ3InCisgICAgICAgIFdIRU4gJ1RS SUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1VQREFURScgVEhFTiAn dycKKyAgICAgICAgV0hFTiAnVFJVTkNBVEUnIFRIRU4gJ0QnCisgICAgICAg IEVMU0UgJ1VOS05PV04nCisgICAgICAgIEVORCBBUyBwcml2aWxlZ2VfdHlw ZQorICAgIEZST00KKyAgICAgICAgKFNFTEVDVAorICAgICAgICAgICAgcmVs YWNsCisgICAgICAgIEZST00KKyAgICAgICAgICAgIHBnX2NsYXNzIGNsCisg ICAgICAgIExFRlQgT1VURVIgSk9JTiBwZ19zaGRlc2NyaXB0aW9uIGRlc2Ny IE9OICgKKyAgICAgICAgICAgIGNsLm9pZD1kZXNjci5vYmpvaWQgQU5EIGRl c2NyLmNsYXNzb2lkPSdwZ19jbGFzcyc6OnJlZ2NsYXNzKQorICAgICAgICBX SEVSRQorICAgICAgICAgICAgY2wub2lkID0ge3sgdmlkIH19OjpPSUQgQU5E IHJlbGtpbmQgPSAndicKKyAgICAgICAgKSBhY2wsCisgICAgICAgIChTRUxF Q1QKKyAgICAgICAgICAgIChkKS5ncmFudGVlIEFTIGdyYW50ZWUsCisgICAg ICAgICAgICAoZCkuZ3JhbnRvciBBUyBncmFudG9yLAorICAgICAgICAgICAg KGQpLmlzX2dyYW50YWJsZSBBUyBpc19ncmFudGFibGUsCisgICAgICAgICAg ICAoZCkucHJpdmlsZWdlX3R5cGUgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICAg ICAgRlJPTQorICAgICAgICAgICAgKFNFTEVDVAorICAgICAgICAgICAgICAg IGFjbGV4cGxvZGUocmVsYWNsKSBBUyBkCisgICAgICAgICAgICAgRlJPTQor ICAgICAgICAgICAgICAgIHBnX2NsYXNzIGNsMQorICAgICAgICAgICAgIFdI RVJFCisgICAgICAgICAgICAgICAgY2wxLm9pZCA9IHt7IHZpZCB9fQorICAg ICAgICAgICAgKSBhCisgICAgICAgICkgZAorICAgICkgZAorTEVGVCBKT0lO IHBnX2NhdGFsb2cucGdfcm9sZXMgZyBPTiAoZC5ncmFudG9yID0gZy5vaWQp CitMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBndCBPTiAoZC5ncmFu dGVlID0gZ3Qub2lkKQorR1JPVVAgQlkKKyAgICBnLnJvbG5hbWUsCisgICAg Z3Qucm9sbmFtZQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuMl9wbHVzL3NxbC9j cmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXcvcGcvOS4yX3BsdXMvc3FsL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNGZmYjcyZgotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzku Ml9wbHVzL3NxbC9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsMjMgQEAKK3sjPT09 PT09PT09PT09PT09PT09PT09PT09PT09PUNyZWF0ZSBuZXcgdmlldz09PT09 PT09PT09PT09PT09PT09PT09PT0jfQoreyUgaWYgZGlzcGxheV9jb21tZW50 cyAlfQorLS0gVmlldzoge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBk YXRhLm5hbWUpIH19CisKKy0tIERST1AgVklFVyB7eyBjb25ufHF0SWRlbnQo ZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX07CisKK3slIGVuZGlmICV9Cit7 JSBpZiBkYXRhLm5hbWUgYW5kIGRhdGEuc2NoZW1hIGFuZCBkYXRhLmRlZmlu aXRpb24gJX0KK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcge3sgY29ubnxxdElk ZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19eyUgaWYgKGRhdGEuc2Vj dXJpdHlfYmFycmllcikgJX17eydccid9fQorV0lUSCAoCit7JSBpZiBkYXRh LnNlY3VyaXR5X2JhcnJpZXIgJX0gICAgc2VjdXJpdHlfYmFycmllcj17eyBk YXRhLnNlY3VyaXR5X2JhcnJpZXJ8bG93ZXIgfX17JSBlbmRpZiAlfXt7J1xy J319CispeyUgZW5kaWYgJX0gQVMKK3t7IGRhdGEuZGVmaW5pdGlvbi5yc3Ry aXAoJzsnKSB9fTsKK3slIGlmIGRhdGEub3duZXIgJX0KKworQUxURVIgVEFC TEUge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19 CisgICAgT1dORVIgVE8ge3sgZGF0YS5vd25lciB9fTsKK3slIGVuZGlmICV9 Cit7JSBpZiBkYXRhLmNvbW1lbnQgJX0KK0NPTU1FTlQgT04gVklFVyB7eyBj b25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKyAgICBJ UyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19OworeyUgZW5kaWYgJX0K K3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvdmlldy9wZy85LjJfcGx1cy9zcWwvZGVsZXRlLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuMl9w bHVzL3NxbC9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmU1MGJlZWMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjJfcGx1cy9zcWwv ZGVsZXRlLnNxbApAQCAtMCwwICsxLDEzIEBACit7IyA9PT09PT09PT09PT09 PT09PT09PT09IERyb3AvQ2FzY2FkZSB2aWV3IGJ5IG5hbWUgPT09PT09PT09 PT09PT09PT09PT09ICN9Cit7JSBpZiB2aWQgJX0KK1NFTEVDVAorICAgIGMu cmVsbmFtZSBBUyBuYW1lLAorICAgIG5zcC5uc3BuYW1lCitGUk9NCisgICAg cGdfY2xhc3MgYworTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc3AgT04gYy5y ZWxuYW1lc3BhY2UgPSBuc3Aub2lkCitXSEVSRQorICAgIGMucmVsZmlsZW5v ZGUgPSB7eyB2aWQgfX07Cit7JSBlbGlmIChuYW1lIGFuZCBuc3BuYW1lKSAl fQorRFJPUCBWSUVXIHt7bnNwbmFtZX19Lnt7IGNvbm58cXRJZGVudChuYW1l KSB9fSB7JSBpZiBjYXNjYWRlICV9IENBU0NBREUgeyUgZW5kaWYgJX0KK3sl IGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90 ZW1wbGF0ZXMvdmlldy9wZy85LjJfcGx1cy9zcWwvZ2V0X3NjaGVtYS5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjJf cGx1cy9zcWwvZ2V0X3NjaGVtYS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uMTI3ZDRiOQotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuMl9wbHVz L3NxbC9nZXRfc2NoZW1hLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAor ICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UKK1dIRVJFCisg ICAgb2lkID0ge3sgc2NpZCB9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4yX3BsdXMvc3Fs L2dyYW50LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3L3BnLzkuMl9wbHVzL3NxbC9ncmFudC5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNTlhMzEwZgotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzku Ml9wbHVzL3NxbC9ncmFudC5zcWwKQEAgLTAsMCArMSw2IEBACit7IyA9PT09 PSBHcmFudCBQZXJtaXNzaW9ucyB0byBVc2VyIFJvbGUgb24gVmlld3MvVGFi bGVzID09PT09ICN9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNy b3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zY2hlbWFz L3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyMgPT09PT0g V2Ugd2lsbCBnZW5lcmF0ZSBTZWN1cml0eSBMYWJlbCBTUUwgdXNpbmcgbWFj cm8gPT09PT0gI30KK3slIGlmIGRhdGEuc2VjbGFiZWxzICV9eyUgZm9yIHIg aW4gZGF0YS5zZWNsYWJlbHMgJX17eyBTRUNMQUJMRS5BUFBMWShjb25uLCAn VklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJl bCkgfX17JSBlbmRmb3IgJX17JSBlbmRpZiAlfXslIGlmIGRhdGEuZGF0YWNs ICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbCAlfXt7IFBSSVZJTEVH RS5TRVQoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUs IHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBkYXRhLnNj aGVtYSkgfX17JSBlbmRmb3IgJX17JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4yX3Bs dXMvc3FsL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL3ZpZXcvcGcvOS4yX3BsdXMvc3FsL3Byb3BlcnRpZXMuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwZWIzZGYK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvdmlldy9wZy85LjJfcGx1cy9zcWwvcHJvcGVydGllcy5zcWwKQEAg LTAsMCArMSw3MCBAQAoreyUgaWYgKHZpZCBhbmQgZGF0bGFzdHN5c29pZCkg b3Igc2NpZCAlfQorU0VMRUNUCisgICAgYy5vaWQsCisgICAgYy54bWluLAor ICAgIGMucmVsbmFtZSBBUyBuYW1lLAorICAgIGMucmVsdGFibGVzcGFjZSBB UyBzcGNvaWQsCisgICAgKENBU0UgV0hFTiBsZW5ndGgoc3BjLnNwY25hbWUp ID4gMCBUSEVOIHNwYy5zcGNuYW1lIEVMU0UgJ3BnX2RlZmF1bHQnIEVORCkg YXMgc3BjbmFtZSwKKyAgICBwZ19nZXRfdXNlcmJ5aWQoYy5yZWxvd25lcikg QVMgb3duZXIsCisgICAgZGVzY3JpcHRpb24gQXMgY29tbWVudCwKKyAgICBw Z19nZXRfdmlld2RlZihjLm9pZCwgdHJ1ZSkgQVMgZGVmaW5pdGlvbiwKKyAg ICBuc3AubnNwbmFtZSBBUyBzY2hlbWEsCisgICAgYXJyYXlfdG9fc3RyaW5n KGMucmVsYWNsOjp0ZXh0W10sICcsICcpIEFTIGFjbCwKKyAgICB7Iz09PT09 PT09PT09PT1DaGVja3MgaWYgaXQgaXMgc3lzdGVtIHZpZXc9PT09PT09PT09 PT09PT09I30KKyAgICB7JSBpZiB2aWQgYW5kIGRhdGxhc3RzeXNvaWQgJX0K KyAgICBDQVNFIFdIRU4ge3t2aWR9fSA8PSB7e2RhdGxhc3RzeXNvaWR9fSBU SEVOIFRydWUgRUxTRSBGYWxzZSBFTkQgQVMgc3lzdGVtX3ZpZXcsCisgICAg eyUgZW5kaWYgJX0KKyhTRUxFQ1QKKyAgICBhcnJheV9hZ2cobGFiZWwpCitG Uk9NCisgICAgcGdfc2VjbGFiZWxzIHNsMQorV0hFUkUKKyAgICBzbDEub2Jq b2lkPWMub2lkIEFORCBzbDEub2Jqc3ViaWQ9MCkgQVMgbGFiZWxzLAorKFNF TEVDVAorICAgIGFycmF5X2FnZyhwcm92aWRlcikKK0ZST00KKyAgICBwZ19z ZWNsYWJlbHMgc2wyCitXSEVSRQorICAgIHNsMi5vYmpvaWQ9Yy5vaWQgQU5E IHNsMi5vYmpzdWJpZD0wKSBBUyBwcm92aWRlcnMsCisgICAgKHN1YnN0cmlu ZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpCisgICAgICAg IEZST00gJ3NlY3VyaXR5X2JhcnJpZXI9KFthLXp8MC05XSopJykpOjpib29s ZWFuIEFTIHNlY3VyaXR5X2JhcnJpZXIKK0ZST00gcGdfY2xhc3MgYworTEVG VCBPVVRFUiBKT0lOIHBnX25hbWVzcGFjZSBuc3Agb24gbnNwLm9pZCA9IGMu cmVsbmFtZXNwYWNlCitMRUZUIE9VVEVSIEpPSU4gcGdfdGFibGVzcGFjZSBz cGMgb24gc3BjLm9pZD1jLnJlbHRhYmxlc3BhY2UKK0xFRlQgT1VURVIgSk9J TiBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9Yy5vaWQgYW5k IGRlcy5vYmpzdWJpZD0wIEFORCBkZXMuY2xhc3NvaWQ9J3BnX2NsYXNzJzo6 cmVnY2xhc3MpCisgICAgV0hFUkUgKChjLnJlbGhhc3J1bGVzIEFORCAoRVhJ U1RTICgKKyAgICAgICAgICAgIFNFTEVDVAorICAgICAgICAgICAgICAgIHIu cnVsZW5hbWUKKyAgICAgICAgICAgIEZST00KKyAgICAgICAgICAgICAgICBw Z19yZXdyaXRlIHIKKyAgICAgICAgICAgIFdIRVJFCisgICAgICAgICAgICAg ICAgKChyLmV2X2NsYXNzID0gYy5vaWQpCisgICAgICAgICAgICAgICAgICAg IEFORCAoYnBjaGFyKHIuZXZfdHlwZSkgPSAnMSc6OmJwY2hhcikKKyAgICAg ICAgICAgICAgICApICkpCisgICAgICAgICAgICkgQU5EIChjLnJlbGtpbmQg PSAndic6OmNoYXIpCisgICAgICAgICAgKQoreyUgaWYgKHZpZCBhbmQgZGF0 bGFzdHN5c29pZCkgJX0KKyAgICBBTkQgYy5vaWQgPSB7e3ZpZH19OjpvaWQK K3slIGVsaWYgc2NpZCAlfQorICAgIEFORCBjLnJlbG5hbWVzcGFjZSA9IHt7 c2NpZH19OjpvaWQgT1JERVIgQlkgYy5yZWxuYW1lCit7JSBlbmRpZiAlfQor Cit7JSBlbGlmIHR5cGUgPT0gJ3JvbGVzJyAlfQorU0VMRUNUCisgICAgcHIu cm9sbmFtZQorRlJPTQorICAgIHBnX3JvbGVzIHByCitXSEVSRQorICAgIHBy LnJvbGNhbmxvZ2luCitPUkRFUiBCWQorICAgIHByLnJvbG5hbWUKKworeyUg ZWxpZiB0eXBlID09ICdzY2hlbWFzJyAlfQorU0VMRUNUCisgICAgbnNwLm5z cG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UgbnNwCitXSEVSRQorICAg IChuc3AubnNwbmFtZSBOT1QgTElLRSBFJ3BnXFxfJScKKyAgICAgICAgQU5E IG5zcC5uc3BuYW1lICE9ICdpbmZvcm1hdGlvbl9zY2hlbWEnKQoreyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3L3BnLzkuMl9wbHVzL3NxbC91cGRhdGUuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4yX3BsdXMvc3Fs L3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uYzM3ZDRiYQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuMl9wbHVzL3NxbC91cGRhdGUu c3FsCkBAIC0wLDAgKzEsNzQgQEAKK3sjID09PT09PT09PT09PT09PT09PT09 PT09PT09PT0gVXBkYXRlIFZpZXcgPT09PT09PT09PT09PT09PT09PT09PT09 PSAjfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBT RUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2NoZW1hcy9wcml2aWxl Z2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGlmIGRhdGEgJX0KK3sl IHNldCB2aWV3X25hbWUgPSBkYXRhLm5hbWUgaWYgZGF0YS5uYW1lIGVsc2Ug b19kYXRhLm5hbWUgJX0KK3slIHNldCB2aWV3X3NjaGVtYSA9IGRhdGEuc2No ZW1hIGlmIGRhdGEuc2NoZW1hIGVsc2Ugb19kYXRhLnNjaGVtYSAlfQoreyUg c2V0IGRlZiA9IGRhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSBpZiBkYXRh LmRlZmluaXRpb24gJX0KK3slIGlmIGRhdGEubmFtZSBhbmQgZGF0YS5uYW1l ICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVu dChvX2RhdGEuc2NoZW1hLCBvX2RhdGEubmFtZSkgfX0KKyAgICBSRU5BTUUg VE8ge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07Cit7JSBlbmRpZiAl fQoreyUgaWYgZGF0YS5zY2hlbWEgYW5kIGRhdGEuc2NoZW1hICE9IG9fZGF0 YS5zY2hlbWEgJX0KK0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KG9fZGF0 YS5zY2hlbWEsIHZpZXdfbmFtZSApIH19CisgICAgU0VUIFNDSEVNQSB7eyBj b25ufHF0SWRlbnQoZGF0YS5zY2hlbWEpIH19OworeyUgZW5kaWYgJX0KK3sl IGlmIGRhdGEub3duZXIgYW5kIGRhdGEub3duZXIgIT0gb19kYXRhLm93bmVy ICV9CitBTFRFUiBUQUJMRSB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEs IHZpZXdfbmFtZSkgfX0KKyAgICBPV05FUiBUTyB7eyBjb25ufHF0SWRlbnQo ZGF0YS5vd25lcikgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGVmIGFuZCBk ZWYgIT0gb19kYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7JykgJX0KK0NSRUFU RSBPUiBSRVBMQUNFIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1h LCB2aWV3X25hbWUpIH19Cit7JSBpZiAoZGF0YS5zZWN1cml0eV9iYXJyaWVy IGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgIT0gb19kYXRhLnNlY3VyaXR5 X2JhcnJpZXIpICV9CisgICAgV0lUSCAoeyUgaWYgZGF0YS5zZWN1cml0eV9i YXJyaWVyICV9c2VjdXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2Jh cnJpZXJ8bG93ZXIgfX17JSBlbmRpZiAlfSkgeyUgZW5kaWYgJX0KKyAgICBB U3t7IGRlZiB9fTsKK3slIGVsc2UgJX0KK3slIGlmIChkYXRhLnNlY3VyaXR5 X2JhcnJpZXIgaXMgZGVmaW5lZCBhbmQgZGF0YS5zZWN1cml0eV9iYXJyaWVy fGxvd2VyICE9ICBvX2RhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dlcikgJX0K K0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3 X25hbWUpIH19CisgICAgU0VUIChzZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEu c2VjdXJpdHlfYmFycmllcnxsb3dlciB9fSk7Cit7JSBlbmRpZiAlfQoreyUg ZW5kaWYgJX0KKworeyUgaWYgZGF0YS5jb21tZW50IGFuZCBkYXRhLmNvbW1l bnQgIT0gb19kYXRhLmNvbW1lbnQgJX0KK0NPTU1FTlQgT04gVklFVyB7eyBj b25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBJ UyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19OworeyUgZW5kaWYgJX0K K3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZp bGVnZXMgI30KK3slIGlmIGRhdGEuZGF0YWNsICV9Cit7JSBpZiAnZGVsZXRl ZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0 YWNsLmRlbGV0ZWQgJX0KK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAn VEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0YS5zY2hlbWEp IH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdl ZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0 YWNsLmNoYW5nZWQgJX0KK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAn VEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0YS5zY2hlbWEp IH19Cit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdUQUJMRScsIHByaXYuZ3Jh bnRlZSwgZGF0YS5uYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0 aF9ncmFudCwgZGF0YS5zY2hlbWEpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmICV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBm b3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5hZGRlZCAlfQore3sgUFJJVklMRUdF LlNFVChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwg cHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEuc2No ZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYg JX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIFNl Y3VyaXR5IExhYmVsICN9Cit7JSBpZiBkYXRhLnNlY2xhYmVscyBpcyBub3Qg bm9uZSBhbmQgZGF0YS5zZWNsYWJlbHN8bGVuZ3RoID4gMCAlfQoreyUgc2V0 IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiAnZGVsZXRl ZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGgg PiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVsZXRlZCAlfQore3sg U0VDTEFCTEUuRFJPUChjb25uLCAnVklFVycsIGRhdGEubmFtZSwgci5wcm92 aWRlcikgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdh ZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3Ro ID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9Cit7eyBT RUNMQUJMRS5BUFBMWShjb25uLCAnVklFVycsIGRhdGEubmFtZSwgci5wcm92 aWRlciwgci5zZWN1cml0eV9sYWJlbCkgfX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNl Y2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNl Y2xhYmVscy5jaGFuZ2VkICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAn VklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJl bCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9 Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4yX3BsdXMvc3FsL3ZpZXdfaWQuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4y X3BsdXMvc3FsL3ZpZXdfaWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjZkZmYwNGUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjJfcGx1cy9z cWwvdmlld19pZC5zcWwKQEAgLTAsMCArMSw0IEBACit7IyBCZWxvdyB3aWxs IHByb3ZpZGUgdmlldyBpZCBmb3IgbmV3bHkgY3JlYXRlZCB2aWV3ICN9Cit7 JSBpZiBkYXRhICV9CitTRUxFQ1QgYy5vaWQgRlJPTSBwZ19jbGFzcyBjIFdI RVJFIGMucmVsbmFtZSA9ICd7eyBkYXRhLm5hbWUgfX0nOworeyUgZW5kaWYg JX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy92aWV3L3BnLzkuM19wbHVzL3NxbC9hY2wuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4zX3BsdXMvc3FsL2FjbC5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQzMDBj ZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3L3BnLzkuM19wbHVzL3NxbC9hY2wuc3FsCkBAIC0wLDAg KzEsMzggQEAKK3sjID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gR2V0 IEFDTHMgPT09PT09PT09PT09PT09PT09PT09PT09PSAjfQoreyUgaWYgdmlk ICV9CitTRUxFQ1QKKyAgICAnZGF0YWNsJyBhcyBkZWZ0eXBlLAorICAgIENP QUxFU0NFKGd0LnJvbG5hbWUsICdwdWJsaWMnKSBncmFudGVlLAorICAgIGcu cm9sbmFtZSBncmFudG9yLAorICAgIGFycmF5X2FnZyhwcml2aWxlZ2VfdHlw ZSkgYXMgcHJpdmlsZWdlcywKKyAgICBhcnJheV9hZ2coaXNfZ3JhbnRhYmxl KSBhcyBncmFudGFibGUKK0ZST00KKyAgICAoU0VMRUNUCisgICAgICAgIGQu Z3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50YWJsZSwKKyAgICAgICAg Q0FTRSBkLnByaXZpbGVnZV90eXBlCisgICAgICAgIFdIRU4gJ0RFTEVURScg VEhFTiAnZCcKKyAgICAgICAgV0hFTiAnSU5TRVJUJyBUSEVOICdhJworICAg ICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4JworICAgICAgICBXSEVO ICdTRUxFQ1QnIFRIRU4gJ3InCisgICAgICAgIFdIRU4gJ1RSSUdHRVInIFRI RU4gJ3QnCisgICAgICAgIFdIRU4gJ1VQREFURScgVEhFTiAndycKKyAgICAg ICAgV0hFTiAnVFJVTkNBVEUnIFRIRU4gJ0QnCisgICAgICAgIEVMU0UgJ1VO S05PV04nCisgICAgICAgIEVORCBBUyBwcml2aWxlZ2VfdHlwZQorICAgIEZS T00KKyAgICAgICAgKFNFTEVDVAorICAgICAgICAgICAgcmVsYWNsCisgICAg ICAgIEZST00KKyAgICAgICAgICAgIHBnX2NsYXNzIGNsCisgICAgICAgIExF RlQgT1VURVIgSk9JTiBwZ19zaGRlc2NyaXB0aW9uIGRlc2NyIE9OICgKKyAg ICAgICAgICAgIGNsLm9pZD1kZXNjci5vYmpvaWQgQU5EIGRlc2NyLmNsYXNz b2lkPSdwZ19jbGFzcyc6OnJlZ2NsYXNzKQorICAgICAgICBXSEVSRSBjbC5v aWQgPSB7eyB2aWQgfX06Ok9JRCBBTkQgcmVsa2luZCA9ICd2JworICAgICAg ICApIGFjbCwKKyAgICAgICAgYWNsZXhwbG9kZShyZWxhY2wpIGQKKyAgICAp IGQKK0xFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3Jh bnRvciA9IGcub2lkKQorTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMg Z3QgT04gKGQuZ3JhbnRlZSA9IGd0Lm9pZCkKK0dST1VQIEJZCisgICAgZy5y b2xuYW1lLAorICAgIGd0LnJvbG5hbWUKK3slIGVuZGlmICV9CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85 LjNfcGx1cy9zcWwvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdz L3RlbXBsYXRlcy92aWV3L3BnLzkuM19wbHVzL3NxbC9jcmVhdGUuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmZmI3MmYKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0 ZXMvdmlldy9wZy85LjNfcGx1cy9zcWwvY3JlYXRlLnNxbApAQCAtMCwwICsx LDIzIEBACit7Iz09PT09PT09PT09PT09PT09PT09PT09PT09PT1DcmVhdGUg bmV3IHZpZXc9PT09PT09PT09PT09PT09PT09PT09PT09I30KK3slIGlmIGRp c3BsYXlfY29tbWVudHMgJX0KKy0tIFZpZXc6IHt7IGNvbm58cXRJZGVudChk YXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorCistLSBEUk9QIFZJRVcge3sg Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19OworCit7 JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5uYW1lIGFuZCBkYXRhLnNjaGVtYSBh bmQgZGF0YS5kZWZpbml0aW9uICV9CitDUkVBVEUgT1IgUkVQTEFDRSBWSUVX IHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fXsl IGlmIChkYXRhLnNlY3VyaXR5X2JhcnJpZXIpICV9e3snXHInfX0KK1dJVEgg KAoreyUgaWYgZGF0YS5zZWN1cml0eV9iYXJyaWVyICV9ICAgIHNlY3VyaXR5 X2JhcnJpZXI9e3sgZGF0YS5zZWN1cml0eV9iYXJyaWVyfGxvd2VyIH19eyUg ZW5kaWYgJX17eydccid9fQorKXslIGVuZGlmICV9IEFTCit7eyBkYXRhLmRl ZmluaXRpb24ucnN0cmlwKCc7JykgfX07Cit7JSBpZiBkYXRhLm93bmVyICV9 CisKK0FMVEVSIFRBQkxFIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwg ZGF0YS5uYW1lKSB9fQorICAgIE9XTkVSIFRPIHt7IGRhdGEub3duZXIgfX07 Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5jb21tZW50ICV9CitDT01NRU5U IE9OIFZJRVcge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5h bWUpIH19CisgICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsK K3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4zX3BsdXMvc3Fs L2RlbGV0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMv dmlldy9wZy85LjNfcGx1cy9zcWwvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTBiZWVjCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcv OS4zX3BsdXMvc3FsL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwxMyBAQAoreyMg PT09PT09PT09PT09PT09PT09PT09PSBEcm9wL0Nhc2NhZGUgdmlldyBieSBu YW1lID09PT09PT09PT09PT09PT09PT09PSAjfQoreyUgaWYgdmlkICV9CitT RUxFQ1QKKyAgICBjLnJlbG5hbWUgQVMgbmFtZSwKKyAgICBuc3AubnNwbmFt ZQorRlJPTQorICAgIHBnX2NsYXNzIGMKK0xFRlQgSk9JTiBwZ19uYW1lc3Bh Y2UgbnNwIE9OIGMucmVsbmFtZXNwYWNlID0gbnNwLm9pZAorV0hFUkUKKyAg ICBjLnJlbGZpbGVub2RlID0ge3sgdmlkIH19OworeyUgZWxpZiAobmFtZSBh bmQgbnNwbmFtZSkgJX0KK0RST1AgVklFVyB7e25zcG5hbWV9fS57eyBjb25u fHF0SWRlbnQobmFtZSkgfX0geyUgaWYgY2FzY2FkZSAlfSBDQVNDQURFIHsl IGVuZGlmICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4zX3BsdXMvc3FsL2dl dF9zY2hlbWEuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVz L3ZpZXcvcGcvOS4zX3BsdXMvc3FsL2dldF9zY2hlbWEuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyN2Q0YjkKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmll dy9wZy85LjNfcGx1cy9zcWwvZ2V0X3NjaGVtYS5zcWwKQEAgLTAsMCArMSw2 IEBACitTRUxFQ1QKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfbmFtZXNw YWNlCitXSEVSRQorICAgIG9pZCA9IHt7IHNjaWQgfX06Om9pZDsKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3Bn LzkuM19wbHVzL3NxbC9ncmFudC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvdmlldy9wZy85LjNfcGx1cy9zcWwvZ3JhbnQuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5YTMxMGYKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0 ZXMvdmlldy9wZy85LjNfcGx1cy9zcWwvZ3JhbnQuc3FsCkBAIC0wLDAgKzEs NiBAQAoreyMgPT09PT0gR3JhbnQgUGVybWlzc2lvbnMgdG8gVXNlciBSb2xl IG9uIFZpZXdzL1RhYmxlcyA9PT09PSAjfQoreyUgaW1wb3J0ICdtYWNyb3Mv c2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdt YWNyb3Mvc2NoZW1hcy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0Ug JX0KK3sjID09PT09IFdlIHdpbGwgZ2VuZXJhdGUgU2VjdXJpdHkgTGFiZWwg U1FMIHVzaW5nIG1hY3JvID09PT09ICN9Cit7JSBpZiBkYXRhLnNlY2xhYmVs cyAlfXslIGZvciByIGluIGRhdGEuc2VjbGFiZWxzICV9e3sgU0VDTEFCTEUu QVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIu c2VjdXJpdHlfbGFiZWwpIH19eyUgZW5kZm9yICV9eyUgZW5kaWYgJX17JSBp ZiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5kYXRhY2wg JX17eyBQUklWSUxFR0UuU0VUKGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRl ZSwgZGF0YS5uYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9n cmFudCwgZGF0YS5zY2hlbWEpIH19eyUgZW5kZm9yICV9eyUgZW5kaWYgJX0K ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3L3BnLzkuM19wbHVzL3NxbC9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuM19wbHVzL3NxbC9w cm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi43ZjAzMzA0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4zX3BsdXMvc3FsL3Byb3Bl cnRpZXMuc3FsCkBAIC0wLDAgKzEsNzQgQEAKK3slIGlmICh2aWQgYW5kIGRh dGxhc3RzeXNvaWQpIG9yIHNjaWQgJX0KK1NFTEVDVAorICAgIGMub2lkLAor ICAgIGMueG1pbiwKKyAgICBjLnJlbGtpbmQsCisgICAgZGVzY3JpcHRpb24s CisgICAgKENBU0UgV0hFTiBsZW5ndGgoc3BjLnNwY25hbWUpID4gMCBUSEVO IHNwYy5zcGNuYW1lIEVMU0UgJ3BnX2RlZmF1bHQnIEVORCkgYXMgc3BjbmFt ZSwKKyAgICBjLnJlbG5hbWUgQVMgbmFtZSwKKyAgICBuc3AubnNwbmFtZSBB UyBzY2hlbWEsCisgICAgYy5yZWx0YWJsZXNwYWNlIEFTIHNwY29pZCwKKyAg ICBjLnJlbGlzcG9wdWxhdGVkIEFTIGlzcG9wdWxhdGVkLAorICAgIHBnX2dl dF91c2VyYnlpZChjLnJlbG93bmVyKSBBUyBvd25lciwKKyAgICBhcnJheV90 b19zdHJpbmcoYy5yZWxhY2w6OnRleHRbXSwgJywgJykgQVMgYWNsLAorICAg IHBnX2dldF92aWV3ZGVmKGMub2lkLCB0cnVlKSBBUyBkZWZpbml0aW9uLAor ICAgIHsjID09PT09IENoZWNrcyBpZiBpdCBpcyBzeXN0ZW0gdmlldyA9PT09 PSAjfQorICAgIHslIGlmIHZpZCBhbmQgZGF0bGFzdHN5c29pZCAlfQorICAg IENBU0UgV0hFTiB7e3ZpZH19IDw9IHt7ZGF0bGFzdHN5c29pZH19IFRIRU4g VHJ1ZSBFTFNFIEZhbHNlIEVORCBBUyBzeXN0ZW1fdmlldywKKyAgICB7JSBl bmRpZiAlfQorKFNFTEVDVAorICAgIGFycmF5X2FnZyhsYWJlbCkKK0ZST00K KyAgICBwZ19zZWNsYWJlbHMgc2wxCitXSEVSRQorICAgIHNsMS5vYmpvaWQ9 Yy5vaWQgQU5EIHNsMS5vYmpzdWJpZD0wKSBBUyBsYWJlbHMsCisoU0VMRUNU CisgICAgYXJyYXlfYWdnKHByb3ZpZGVyKQorRlJPTQorICAgIHBnX3NlY2xh YmVscyBzbDIKK1dIRVJFCisgICAgc2wyLm9iam9pZD1jLm9pZCBBTkQgc2wy Lm9ianN1YmlkPTApIEFTIHByb3ZpZGVycywKKyAgICAoc3Vic3RyaW5nKGFy cmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAgICAgRlJP TSAnc2VjdXJpdHlfYmFycmllcj0oW2EtenwwLTldKiknKSk6OmJvb2xlYW4g QVMgc2VjdXJpdHlfYmFycmllcgorRlJPTSBwZ19jbGFzcyBjCitMRUZUIE9V VEVSIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBvbiBuc3Aub2lkID0gYy5yZWxu YW1lc3BhY2UKK0xFRlQgT1VURVIgSk9JTiBwZ190YWJsZXNwYWNlIHNwYyBv biBzcGMub2lkPWMucmVsdGFibGVzcGFjZQorTEVGVCBPVVRFUiBKT0lOIHBn X2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1jLm9pZCBhbmQgZGVz Lm9ianN1YmlkPTAgQU5EIGRlcy5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdj bGFzcykKK0xFRlQgT1VURVIgSk9JTiBwZ19jbGFzcyB0c3QgT04gdHN0Lm9p ZCA9IGMucmVsdG9hc3RyZWxpZAorICAgIFdIRVJFICgoYy5yZWxoYXNydWxl cyBBTkQgKEVYSVNUUyAoCisgICAgICAgIFNFTEVDVAorICAgICAgICAgICAg ci5ydWxlbmFtZQorICAgICAgICBGUk9NCisgICAgICAgICAgICBwZ19yZXdy aXRlIHIKKyAgICAgICAgV0hFUkUKKyAgICAgICAgICAgICgoci5ldl9jbGFz cyA9IGMub2lkKQorICAgICAgICAgICAgICAgIEFORCAoYnBjaGFyKHIuZXZf dHlwZSkgPSAnMSc6OmJwY2hhcikpICkpKQorICAgICAgICAgICAgQU5EIChj LnJlbGtpbmQgPSAndic6OmNoYXIpCisgICAgICAgICAgKQoreyUgaWYgKHZp ZCBhbmQgZGF0bGFzdHN5c29pZCkgJX0KKyAgICBBTkQgYy5vaWQgPSB7e3Zp ZH19OjpvaWQKK3slIGVsaWYgc2NpZCAlfQorICAgIEFORCBjLnJlbG5hbWVz cGFjZSA9IHt7c2NpZH19OjpvaWQKK09SREVSIEJZCisgICAgYy5yZWxuYW1l Cit7JSBlbmRpZiAlfQorCit7JSBlbGlmIHR5cGUgPT0gJ3JvbGVzJyAlfQor U0VMRUNUCisgICAgcHIucm9sbmFtZQorRlJPTQorICAgIHBnX3JvbGVzIHBy CitXSEVSRQorICAgIHByLnJvbGNhbmxvZ2luCitPUkRFUiBCWQorICAgIHBy LnJvbG5hbWUKKworeyUgZWxpZiB0eXBlID09ICdzY2hlbWFzJyAlfQorU0VM RUNUCisgICAgbnNwLm5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2Ug bnNwCitXSEVSRQorICAgIChuc3AubnNwbmFtZSBOT1QgTElLRSBFJ3BnXFxf JScKKyAgICAgICAgQU5EIG5zcC5uc3BuYW1lICE9ICdpbmZvcm1hdGlvbl9z Y2hlbWEnKQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuM19wbHVzL3NxbC91cGRh dGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcv cGcvOS4zX3BsdXMvc3FsL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uMDJkOGYzNwotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuM19w bHVzL3NxbC91cGRhdGUuc3FsCkBAIC0wLDAgKzEsNzUgQEAKK3sjID09PT09 PT09PT09PT09PT09PT09PT09PT09PT0gVXBkYXRlIFZpZXcgPT09PT09PT09 PT09PT09PT09PT09PT09PSAjfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJp dHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3Mv c2NoZW1hcy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3sl IGlmIGRhdGEgJX0KK3slIHNldCB2aWV3X25hbWUgPSBkYXRhLm5hbWUgaWYg ZGF0YS5uYW1lIGVsc2Ugb19kYXRhLm5hbWUgJX0KK3slIHNldCB2aWV3X3Nj aGVtYSA9IGRhdGEuc2NoZW1hIGlmIGRhdGEuc2NoZW1hIGVsc2Ugb19kYXRh LnNjaGVtYSAlfQoreyUgc2V0IGRlZiA9IGRhdGEuZGVmaW5pdGlvbi5yc3Ry aXAoJzsnKSBpZiBkYXRhLmRlZmluaXRpb24gJX0KK3slIGlmIGRhdGEubmFt ZSBhbmQgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBWSUVX IHt7IGNvbm58cXRJZGVudChvX2RhdGEuc2NoZW1hLCBvX2RhdGEubmFtZSkg fX0KKyAgICBSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkg fX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5zY2hlbWEgYW5kIGRhdGEu c2NoZW1hICE9IG9fZGF0YS5zY2hlbWEgJX0KK0FMVEVSIFZJRVcge3sgY29u bnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIHZpZXdfbmFtZSApIH19CisgICAg U0VUIFNDSEVNQSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEpIH19Owor eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEub3duZXIgYW5kIGRhdGEub3duZXIg IT0gb19kYXRhLm93bmVyICV9CitBTFRFUiBUQUJMRSB7eyBjb25ufHF0SWRl bnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBPV05FUiBUTyB7 eyBjb25ufHF0SWRlbnQoZGF0YS5vd25lcikgfX07Cit7JSBlbmRpZiAlfQor eyUgaWYgZGVmIGFuZCBkZWYgIT0gb19kYXRhLmRlZmluaXRpb24ucnN0cmlw KCc7JykgJX0KK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcge3sgY29ubnxxdElk ZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19Cit7JSBpZiAoZGF0YS5z ZWN1cml0eV9iYXJyaWVyIGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgIT0g b19kYXRhLnNlY3VyaXR5X2JhcnJpZXIpICV9CisgICAgV0lUSCAoeyUgaWYg ZGF0YS5zZWN1cml0eV9iYXJyaWVyICV9c2VjdXJpdHlfYmFycmllcj17eyBk YXRhLnNlY3VyaXR5X2JhcnJpZXJ8bG93ZXIgfX17JSBlbmRpZiAlfSkKK3sl IGVuZGlmICV9CisgICAgQVN7eyBkZWYgfX07Cit7JSBlbHNlICV9Cit7JSBp ZiAoZGF0YS5zZWN1cml0eV9iYXJyaWVyIGlzIGRlZmluZWQgYW5kIGRhdGEu c2VjdXJpdHlfYmFycmllcnxsb3dlciAhPSAgb19kYXRhLnNlY3VyaXR5X2Jh cnJpZXJ8bG93ZXIpICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudCh2 aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIFNFVCAoc2VjdXJpdHlf YmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXJ8bG93ZXIgfX0pOwor eyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CisKK3slIGlmIGRhdGEuY29tbWVu dCBhbmQgZGF0YS5jb21tZW50ICE9IG9fZGF0YS5jb21tZW50ICV9CitDT01N RU5UIE9OIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3 X25hbWUpIH19CisgICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9 fTsKK3slIGVuZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3 aWxsIGNoYW5nZSBwcml2aWxlZ2VzICN9Cit7JSBpZiBkYXRhLmRhdGFjbCAl fQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3Ig cHJpdiBpbiBkYXRhLmRhdGFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxFR0Uu VU5TRVRBTEwoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5h bWUsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAl fQoreyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3Ig cHJpdiBpbiBkYXRhLmRhdGFjbC5jaGFuZ2VkICV9Cit7eyBQUklWSUxFR0Uu VU5TRVRBTEwoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5h bWUsIGRhdGEuc2NoZW1hKSB9fQore3sgUFJJVklMRUdFLlNFVChjb25uLCAn VEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgcHJpdi53aXRob3V0 X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEuc2NoZW1hKSB9fQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRh LmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5kYXRhY2wuYWRkZWQg JX0KK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFu dGVlLCBkYXRhLm5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRo X2dyYW50LCBkYXRhLnNjaGVtYSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5k aWYgJX0KK3slIGVuZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxv dyB3aWxsIGNoYW5nZSBTZWN1cml0eSBMYWJlbCAjfQoreyUgaWYgZGF0YS5z ZWNsYWJlbHMgaXMgbm90IG5vbmUgYW5kIGRhdGEuc2VjbGFiZWxzfGxlbmd0 aCA+IDAgJX0KK3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAl fQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxz LmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxz LmRlbGV0ZWQgJX0KK3t7IFNFQ0xBQkxFLkRST1AoY29ubiwgJ1ZJRVcnLCBk YXRhLm5hbWUsIHIucHJvdmlkZXIpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmICV9Cit7JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFi ZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVs cy5hZGRlZCAlfQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBk YXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7 JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4g c2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9 Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQore3sgU0VDTEFC TEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIs IHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlm ICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuM19wbHVz L3NxbC92aWV3X2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3L3BnLzkuM19wbHVzL3NxbC92aWV3X2lkLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGZmMDRlCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXcvcGcvOS4zX3BsdXMvc3FsL3ZpZXdfaWQuc3FsCkBAIC0wLDAgKzEsNCBA QAoreyMgQmVsb3cgd2lsbCBwcm92aWRlIHZpZXcgaWQgZm9yIG5ld2x5IGNy ZWF0ZWQgdmlldyAjfQoreyUgaWYgZGF0YSAlfQorU0VMRUNUIGMub2lkIEZS T00gcGdfY2xhc3MgYyBXSEVSRSBjLnJlbG5hbWUgPSAne3sgZGF0YS5uYW1l IH19JzsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjRfcGx1cy9zcWwvYWNsLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzku NF9wbHVzL3NxbC9hY2wuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjdkNzkxZjUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjRfcGx1cy9zcWwv YWNsLnNxbApAQCAtMCwwICsxLDM5IEBACit7IyA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09IEdldCBBQ0xzID09PT09PT09PT09PT09PT09PT09PT09 PT0gI30KK3slIGlmIHZpZCAlfQorU0VMRUNUCisgICAgJ2RhdGFjbCcgYXMg ZGVmdHlwZSwKKyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAncHVibGljJykg Z3JhbnRlZSwKKyAgICBnLnJvbG5hbWUgZ3JhbnRvciwKKyAgICBhcnJheV9h Z2cocHJpdmlsZWdlX3R5cGUpIGFzIHByaXZpbGVnZXMsCisgICAgYXJyYXlf YWdnKGlzX2dyYW50YWJsZSkgYXMgZ3JhbnRhYmxlCitGUk9NCisgICAgKFNF TEVDVAorICAgICAgICBkLmdyYW50ZWUsIGQuZ3JhbnRvciwgZC5pc19ncmFu dGFibGUsCisgICAgICAgIENBU0UgZC5wcml2aWxlZ2VfdHlwZQorICAgICAg ICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisgICAgICAgIFdIRU4gJ0lOU0VS VCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNFUycgVEhFTiAn eCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAgICAgICBX SEVOICdUUklHR0VSJyBUSEVOICd0JworICAgICAgICBXSEVOICdVUERBVEUn IFRIRU4gJ3cnCisgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBUSEVOICdEJwor ICAgICAgICBFTFNFICdVTktOT1dOJworICAgICAgICBFTkQgQVMgcHJpdmls ZWdlX3R5cGUKKyAgICBGUk9NCisgICAgICAgIChTRUxFQ1QKKyAgICAgICAg ICAgIHJlbGFjbAorICAgICAgICAgRlJPTQorICAgICAgICAgICAgcGdfY2xh c3MgY2wKKyAgICAgICAgIExFRlQgT1VURVIgSk9JTiBwZ19zaGRlc2NyaXB0 aW9uIGRlc2NyIE9OCisgICAgICAgICAgICAoY2wub2lkPWRlc2NyLm9iam9p ZCBBTkQgZGVzY3IuY2xhc3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xhc3MpCisg ICAgICAgICBXSEVSRQorICAgICAgICAgICAgY2wub2lkID0ge3sgdmlkIH19 OjpPSUQgQU5EIHJlbGtpbmQgPSAndicKKyAgICAgICAgKSBhY2wsCisgICAg ICAgIGFjbGV4cGxvZGUocmVsYWNsKSBkCisgICAgKSBkCitMRUZUIEpPSU4g cGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9OIChkLmdyYW50b3IgPSBnLm9pZCkK K0xFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGd0IE9OIChkLmdyYW50 ZWUgPSBndC5vaWQpCitHUk9VUCBCWQorICAgIGcucm9sbmFtZSwKKyAgICBn dC5yb2xuYW1lCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS40X3BsdXMvc3FsL2Ny ZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmll dy9wZy85LjRfcGx1cy9zcWwvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5iNDNiNTE5Ci0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS40 X3BsdXMvc3FsL2NyZWF0ZS5zcWwKQEAgLTAsMCArMSwyMiBAQAoreyM9PT09 PT09PT09PT09PT09PT09PT09PT09PT09Q3JlYXRlIG5ldyB2aWV3PT09PT09 PT09PT09PT09PT09PT09PT09PSN9Cit7JSBpZiBkaXNwbGF5X2NvbW1lbnRz ICV9CistLSBWaWV3OiB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRh dGEubmFtZSkgfX0KKworLS0gRFJPUCBWSUVXIHt7IGNvbm58cXRJZGVudChk YXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fTsKKworeyUgZW5kaWYgJX0KK3sl IGlmIGRhdGEubmFtZSBhbmQgZGF0YS5zY2hlbWEgYW5kIGRhdGEuZGVmaW5p dGlvbiAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRl bnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX17JSBpZiAoKGRhdGEuY2hl Y2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbi5sb3dlcigpICE9ICdu bycpIG9yIGRhdGEuc2VjdXJpdHlfYmFycmllcikgJX17eyAnXG4nIH19V0lU SCAoCit7JSBpZiBkYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19v cHRpb24ubG93ZXIoKSAhPSAnbm8nICV9ICAgIGNoZWNrX29wdGlvbj17eyBk YXRhLmNoZWNrX29wdGlvbiB9fXslIGVuZGlmICV9e3sgJyxccicgaWYgZGF0 YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uLmxvd2VyKCkg IT0gJ25vJyBhbmQgZGF0YS5zZWN1cml0eV9iYXJyaWVyIH19eyUgaWYgZGF0 YS5zZWN1cml0eV9iYXJyaWVyICV9ICAgIHNlY3VyaXR5X2JhcnJpZXI9e3sg ZGF0YS5zZWN1cml0eV9iYXJyaWVyfGxvd2VyIH19eyUgZW5kaWYgJX17eydc cid9fQorKXslIGVuZGlmICV9IEFTCit7eyBkYXRhLmRlZmluaXRpb24ucnN0 cmlwKCc7JykgfX07Cit7JSBpZiBkYXRhLm93bmVyIGFuZCBkYXRhLm1fdmll dyBpcyB1bmRlZmluZWQgJX0KKworQUxURVIgVEFCTEUge3sgY29ubnxxdElk ZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19CisgICAgT1dORVIgVE8g e3sgY29ubnxxdElkZW50KGRhdGEub3duZXIpIH19OworeyUgZW5kaWYgJX0K K3slIGlmIGRhdGEuY29tbWVudCAlfQorQ09NTUVOVCBPTiBWSUVXIHt7IGNv bm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorICAgIElT IHt7IGRhdGEuY29tbWVudHxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAlfQor eyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdz L3RlbXBsYXRlcy92aWV3L3BnLzkuNF9wbHVzL3NxbC9kZWxldGUuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS40X3Bs dXMvc3FsL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZTUwYmVlYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuNF9wbHVzL3NxbC9k ZWxldGUuc3FsCkBAIC0wLDAgKzEsMTMgQEAKK3sjID09PT09PT09PT09PT09 PT09PT09PT0gRHJvcC9DYXNjYWRlIHZpZXcgYnkgbmFtZSA9PT09PT09PT09 PT09PT09PT09PT0gI30KK3slIGlmIHZpZCAlfQorU0VMRUNUCisgICAgYy5y ZWxuYW1lIEFTIG5hbWUsCisgICAgbnNwLm5zcG5hbWUKK0ZST00KKyAgICBw Z19jbGFzcyBjCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBPTiBjLnJl bG5hbWVzcGFjZSA9IG5zcC5vaWQKK1dIRVJFCisgICAgYy5yZWxmaWxlbm9k ZSA9IHt7IHZpZCB9fTsKK3slIGVsaWYgKG5hbWUgYW5kIG5zcG5hbWUpICV9 CitEUk9QIFZJRVcge3tuc3BuYW1lfX0ue3sgY29ubnxxdElkZW50KG5hbWUp IH19IHslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERSB7JSBlbmRpZiAlfQoreyUg ZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3L3BnLzkuNF9wbHVzL3NxbC9nZXRfc2NoZW1hLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuNF9w bHVzL3NxbC9nZXRfc2NoZW1hLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4xMjdkNGI5Ci0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS40X3BsdXMv c3FsL2dldF9zY2hlbWEuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisg ICAgbnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFjZQorV0hFUkUKKyAg ICBvaWQgPSB7eyBzY2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjRfcGx1cy9zcWwv Z3JhbnQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXcvcGcvOS40X3BsdXMvc3FsL2dyYW50LnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi41OWEzMTBmCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS40 X3BsdXMvc3FsL2dyYW50LnNxbApAQCAtMCwwICsxLDYgQEAKK3sjID09PT09 IEdyYW50IFBlcm1pc3Npb25zIHRvIFVzZXIgUm9sZSBvbiBWaWV3cy9UYWJs ZXMgPT09PT0gI30KK3slIGltcG9ydCAnbWFjcm9zL3NlY3VyaXR5Lm1hY3Jv cycgYXMgU0VDTEFCTEUgJX0KK3slIGltcG9ydCAnbWFjcm9zL3NjaGVtYXMv cHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7IyA9PT09PSBX ZSB3aWxsIGdlbmVyYXRlIFNlY3VyaXR5IExhYmVsIFNRTCB1c2luZyBtYWNy byA9PT09PSAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgJX17JSBmb3IgciBp biBkYXRhLnNlY2xhYmVscyAlfXt7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdW SUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVs KSB9fXslIGVuZGZvciAlfXslIGVuZGlmICV9eyUgaWYgZGF0YS5kYXRhY2wg JX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsICV9e3sgUFJJVklMRUdF LlNFVChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwg cHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEuc2No ZW1hKSB9fXslIGVuZGZvciAlfXslIGVuZGlmICV9CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjRfcGx1 cy9zcWwvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90 ZW1wbGF0ZXMvdmlldy9wZy85LjRfcGx1cy9zcWwvcHJvcGVydGllcy5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2NkOTU3Zgot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3L3BnLzkuNF9wbHVzL3NxbC9wcm9wZXJ0aWVzLnNxbApAQCAt MCwwICsxLDc3IEBACit7IyA9PT09PT09PT09PT09PT09PT09PT09PT09PSBG ZXRjaCBWaWV3IFByb3BlcnRpZXMgPT09PT09PT09PT09PT09PT09PT09PT09 PSAjfQoreyUgaWYgKHZpZCBhbmQgZGF0bGFzdHN5c29pZCkgb3Igc2NpZCAl fQorU0VMRUNUCisgICAgYy5vaWQsCisgICAgYy54bWluLAorICAgIGMucmVs a2luZCwKKyAgICBkZXNjcmlwdGlvbiwKKyAgICAoQ0FTRSBXSEVOIGxlbmd0 aChzcGMuc3BjbmFtZSkgPiAwIFRIRU4gc3BjLnNwY25hbWUgRUxTRSAncGdf ZGVmYXVsdCcgRU5EKSBhcyBzcGNuYW1lLAorICAgIGMucmVsbmFtZSBBUyBu YW1lLAorICAgIGMucmVsdGFibGVzcGFjZSBBUyBzcGNvaWQsCisgICAgbnNw Lm5zcG5hbWUgQVMgc2NoZW1hLAorICAgIGMucmVsaXNwb3B1bGF0ZWQgQVMg aXNwb3B1bGF0ZWQsCisgICAgcGdfZ2V0X3VzZXJieWlkKGMucmVsb3duZXIp IEFTIG93bmVyLAorICAgIGFycmF5X3RvX3N0cmluZyhjLnJlbGFjbDo6dGV4 dFtdLCAnLCAnKSBBUyBhY2wsCisgICAgcGdfZ2V0X3ZpZXdkZWYoYy5vaWQs IHRydWUpIEFTIGRlZmluaXRpb24sCisgICAgeyMgPT09PT0gQ2hlY2tzIGlm IGl0IGlzIHN5c3RlbSB2aWV3ID09PT09ICN9CisgICAgeyUgaWYgdmlkIGFu ZCBkYXRsYXN0c3lzb2lkICV9CisgICAgQ0FTRSBXSEVOIHt7dmlkfX0gPD0g e3tkYXRsYXN0c3lzb2lkfX0gVEhFTiBUcnVlIEVMU0UgRmFsc2UgRU5EIEFT IHN5c3RlbV92aWV3LAorICAgIHslIGVuZGlmICV9CisoU0VMRUNUCisgICAg YXJyYXlfYWdnKGxhYmVsKQorRlJPTQorICAgIHBnX3NlY2xhYmVscyBzbDEK K1dIRVJFCisgICAgc2wxLm9iam9pZD1jLm9pZCBBTkQgc2wxLm9ianN1Ymlk PTApIEFTIGxhYmVscywKKyhTRUxFQ1QKKyAgICBhcnJheV9hZ2cocHJvdmlk ZXIpCitGUk9NCisgICAgcGdfc2VjbGFiZWxzIHNsMgorV0hFUkUKKyAgICBz bDIub2Jqb2lkPWMub2lkIEFORCBzbDIub2Jqc3ViaWQ9MCkgQVMgcHJvdmlk ZXJzLAorICAgIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRp b25zLCAnLCcpCisgICAgICAgIEZST00gJ2NoZWNrX29wdGlvbj0oW2Etel0q KScpIEFTIGNoZWNrX29wdGlvbiwKKyAgICAoc3Vic3RyaW5nKGFycmF5X3Rv X3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAgICAgRlJPTSAnc2Vj dXJpdHlfYmFycmllcj0oW2EtenwwLTldKiknKSk6OmJvb2xlYW4gQVMgc2Vj dXJpdHlfYmFycmllcgorRlJPTSBwZ19jbGFzcyBjCitMRUZUIE9VVEVSIEpP SU4gcGdfbmFtZXNwYWNlIG5zcCBvbiBuc3Aub2lkID0gYy5yZWxuYW1lc3Bh Y2UKK0xFRlQgT1VURVIgSk9JTiBwZ190YWJsZXNwYWNlIHNwYyBvbiBzcGMu b2lkPWMucmVsdGFibGVzcGFjZQorTEVGVCBPVVRFUiBKT0lOIHBnX2Rlc2Ny aXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1jLm9pZCBhbmQgZGVzLm9ianN1 YmlkPTAgQU5EIGRlcy5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykK K0xFRlQgT1VURVIgSk9JTiBwZ19jbGFzcyB0c3QgT04gdHN0Lm9pZCA9IGMu cmVsdG9hc3RyZWxpZAorICAgIFdIRVJFICgoYy5yZWxoYXNydWxlcyBBTkQg KEVYSVNUUyAoCisgICAgICAgIFNFTEVDVAorICAgICAgICAgICAgci5ydWxl bmFtZQorICAgICAgICBGUk9NCisgICAgICAgICAgICBwZ19yZXdyaXRlIHIK KyAgICAgICAgV0hFUkUKKyAgICAgICAgICAgICgoci5ldl9jbGFzcyA9IGMu b2lkKQorICAgICAgICAgICAgICAgIEFORCAoYnBjaGFyKHIuZXZfdHlwZSkg PSAnMSc6OmJwY2hhcikpICkpKQorICAgICAgICAgICAgQU5EIChjLnJlbGtp bmQgPSAndic6OmNoYXIpCisgICAgICAgICAgKQoreyUgaWYgKHZpZCBhbmQg ZGF0bGFzdHN5c29pZCkgJX0KKyAgICBBTkQgYy5vaWQgPSB7e3ZpZH19Ojpv aWQKK3slIGVsaWYgc2NpZCAlfQorICAgIEFORCBjLnJlbG5hbWVzcGFjZSA9 IHt7c2NpZH19OjpvaWQKK09SREVSIEJZCisgICAgYy5yZWxuYW1lCit7JSBl bmRpZiAlfQorCit7JSBlbGlmIHR5cGUgPT0gJ3JvbGVzJyAlfQorU0VMRUNU CisgICAgcHIucm9sbmFtZQorRlJPTQorICAgIHBnX3JvbGVzIHByCitXSEVS RQorICAgIHByLnJvbGNhbmxvZ2luCitPUkRFUiBCWQorICAgIHByLnJvbG5h bWUKKworeyUgZWxpZiB0eXBlID09ICdzY2hlbWFzJyAlfQorU0VMRUNUCisg ICAgbnNwLm5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UgbnNwCitX SEVSRQorICAgIChuc3AubnNwbmFtZSBOT1QgTElLRSBFJ3BnXFxfJScKKyAg ICAgICAgQU5EIG5zcC5uc3BuYW1lICE9ICdpbmZvcm1hdGlvbl9zY2hlbWEn KQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuNF9wbHVzL3NxbC91cGRhdGUuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS40 X3BsdXMvc3FsL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uNTYxODNmZAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuNF9wbHVzL3Nx bC91cGRhdGUuc3FsCkBAIC0wLDAgKzEsODIgQEAKK3sjID09PT09PT09PT09 PT09PT09PT09PT09PT09PT0gVXBkYXRlIFZpZXcgPT09PT09PT09PT09PT09 PT09PT09PT09PSAjfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFj cm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2NoZW1h cy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGlmIGRh dGEgJX0KK3slIHNldCB2aWV3X25hbWUgPSBkYXRhLm5hbWUgaWYgZGF0YS5u YW1lIGVsc2Ugb19kYXRhLm5hbWUgJX0KK3slIHNldCB2aWV3X3NjaGVtYSA9 IGRhdGEuc2NoZW1hIGlmIGRhdGEuc2NoZW1hIGVsc2Ugb19kYXRhLnNjaGVt YSAlfQoreyUgc2V0IGRlZiA9IGRhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsn KSBpZiBkYXRhLmRlZmluaXRpb24gJX0KK3slIGlmIGRhdGEubmFtZSBhbmQg ZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBWSUVXIHt7IGNv bm58cXRJZGVudChvX2RhdGEuc2NoZW1hLCBvX2RhdGEubmFtZSkgfX0KKyAg ICBSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07Cit7 JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5zY2hlbWEgYW5kIGRhdGEuc2NoZW1h ICE9IG9fZGF0YS5zY2hlbWEgJX0KK0FMVEVSIFZJRVcge3sgY29ubnxxdElk ZW50KG9fZGF0YS5zY2hlbWEsIHZpZXdfbmFtZSApIH19CisgICAgU0VUIFND SEVNQSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEpIH19OworeyUgZW5k aWYgJX0KK3slIGlmIGRhdGEub3duZXIgYW5kIGRhdGEub3duZXIgIT0gb19k YXRhLm93bmVyICV9CitBTFRFUiBUQUJMRSB7eyBjb25ufHF0SWRlbnQodmll d19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBPV05FUiBUTyB7eyBjb25u fHF0SWRlbnQoZGF0YS5vd25lcikgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYg ZGVmIGFuZCBkZWYgIT0gb19kYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7Jykg JX0KK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcge3sgY29ubnxxdElkZW50KHZp ZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19Cit7JSBpZiAoZGF0YS5jaGVja19v cHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9IG9fZGF0YS5jaGVja19v cHRpb24pCisgICAgb3IgKGRhdGEuc2VjdXJpdHlfYmFycmllciBhbmQgZGF0 YS5zZWN1cml0eV9iYXJyaWVyICE9IG9fZGF0YS5zZWN1cml0eV9iYXJyaWVy KSAlfQorICAgIFdJVEggKHslIGlmIChkYXRhLmNoZWNrX29wdGlvbiBhbmQg ZGF0YS5jaGVja19vcHRpb24gIT0gJ25vJykgJX1jaGVja19vcHRpb249e3sg ZGF0YS5jaGVja19vcHRpb24gfX17JSBlbmRpZiAlfXt7JywgJyBpZiBkYXRh LmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gJ25vJyBh bmQgZGF0YS5zZWN1cml0eV9iYXJyaWVyIH19eyUgaWYgZGF0YS5zZWN1cml0 eV9iYXJyaWVyICV9c2VjdXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5 X2JhcnJpZXJ8bG93ZXIgfX17JSBlbmRpZiAlfSkKK3slIGVuZGlmICV9Cisg ICAgQVN7eyBkZWYgfX07Cit7JSBlbHNlICV9Cit7JSBpZiAoZGF0YS5zZWN1 cml0eV9iYXJyaWVyIGlzIGRlZmluZWQgYW5kIGRhdGEuc2VjdXJpdHlfYmFy cmllcnxsb3dlciAhPSAgb19kYXRhLnNlY3VyaXR5X2JhcnJpZXJ8bG93ZXIp ICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwg dmlld19uYW1lKSB9fQorICAgIFNFVCAoc2VjdXJpdHlfYmFycmllcj17eyBk YXRhLnNlY3VyaXR5X2JhcnJpZXJ8bG93ZXIgfX0pOworeyUgZW5kaWYgJX0K K3slIGlmIChkYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRp b24gIT0gb19kYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRp b24gIT0gJ25vJykgJX0KK0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KHZp ZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAgU0VUIChjaGVja19vcHRp b249e3sgZGF0YS5jaGVja19vcHRpb24gfX0pOworeyUgZWxpZiAoZGF0YS5j aGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9IG9fZGF0YS5j aGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uID09ICdubycpICV9 CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmll d19uYW1lKSB9fSBSRVNFVCAoY2hlY2tfb3B0aW9uKTsKK3slIGVuZGlmICV9 Cit7JSBlbmRpZiAlfQorCit7JSBpZiBkYXRhLmNvbW1lbnQgYW5kIGRhdGEu Y29tbWVudCAhPSBvX2RhdGEuY29tbWVudCAlfQorQ09NTUVOVCBPTiBWSUVX IHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQor ICAgIElTIHt7IGRhdGEuY29tbWVudHxxdExpdGVyYWwgfX07Cit7JSBlbmRp ZiAlfQoreyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBjaGFuZ2Ug cHJpdmlsZWdlcyAjfQoreyUgaWYgZGF0YS5kYXRhY2wgJX0KK3slIGlmICdk ZWxldGVkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0 YS5kYXRhY2wuZGVsZXRlZCAlfQore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNv bm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNj aGVtYSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdj aGFuZ2VkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0 YS5kYXRhY2wuY2hhbmdlZCAlfQore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNv bm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNj aGVtYSkgfX0KK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1RBQkxFJywgcHJp di5ncmFudGVlLCBkYXRhLm5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJp di53aXRoX2dyYW50LCBkYXRhLnNjaGVtYSkgfX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgJX0KK3slIGlmICdhZGRlZCcgaW4gZGF0YS5kYXRhY2wgJX0K K3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsLmFkZGVkICV9Cit7eyBQUklW SUxFR0UuU0VUKGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5u YW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgZGF0 YS5zY2hlbWEpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBl bmRpZiAlfQoreyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBjaGFu Z2UgU2VjdXJpdHkgTGFiZWwgI30KK3slIGlmIGRhdGEuc2VjbGFiZWxzIGlz IG5vdCBub25lIGFuZCBkYXRhLnNlY2xhYmVsc3xsZW5ndGggPiAwICV9Cit7 JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmICdk ZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVkfGxl bmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5kZWxldGVkICV9 Cit7eyBTRUNMQUJMRS5EUk9QKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCBy LnByb3ZpZGVyKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUg aWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxs ZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0K K3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCBy LnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBh bmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIg aW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KK3t7IFNFQ0xBQkxFLkFQUExZKGNv bm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5 X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgZW5k aWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjRfcGx1cy9zcWwvdmlld19p ZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9w Zy85LjRfcGx1cy9zcWwvdmlld19pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uZWYyNzU5NAotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuNF9w bHVzL3NxbC92aWV3X2lkLnNxbApAQCAtMCwwICsxLDQgQEAKK3sjID09PT09 IEJlbG93IHdpbGwgcHJvdmlkZSB2aWV3IGlkIGZvciBsYXN0IGNyZWF0ZWQg dmlldyA9PT09PSAjfQoreyUgaWYgZGF0YSAlfQorU0VMRUNUIGMub2lkIEZS T00gcGdfY2xhc3MgYyBXSEVSRSBjLnJlbG5hbWUgPSAne3sgZGF0YS5uYW1l IH19JzsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMV9wbHVzL3NxbC9hY2wu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBh cy85LjFfcGx1cy9zcWwvYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi43ZDc5MWY1Ci0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjFfcGx1 cy9zcWwvYWNsLnNxbApAQCAtMCwwICsxLDM5IEBACit7IyA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09IEdldCBBQ0xzID09PT09PT09PT09PT09PT09 PT09PT09PT0gI30KK3slIGlmIHZpZCAlfQorU0VMRUNUCisgICAgJ2RhdGFj bCcgYXMgZGVmdHlwZSwKKyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAncHVi bGljJykgZ3JhbnRlZSwKKyAgICBnLnJvbG5hbWUgZ3JhbnRvciwKKyAgICBh cnJheV9hZ2cocHJpdmlsZWdlX3R5cGUpIGFzIHByaXZpbGVnZXMsCisgICAg YXJyYXlfYWdnKGlzX2dyYW50YWJsZSkgYXMgZ3JhbnRhYmxlCitGUk9NCisg ICAgKFNFTEVDVAorICAgICAgICBkLmdyYW50ZWUsIGQuZ3JhbnRvciwgZC5p c19ncmFudGFibGUsCisgICAgICAgIENBU0UgZC5wcml2aWxlZ2VfdHlwZQor ICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisgICAgICAgIFdIRU4g J0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNFUycg VEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAg ICAgICBXSEVOICdUUklHR0VSJyBUSEVOICd0JworICAgICAgICBXSEVOICdV UERBVEUnIFRIRU4gJ3cnCisgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBUSEVO ICdEJworICAgICAgICBFTFNFICdVTktOT1dOJworICAgICAgICBFTkQgQVMg cHJpdmlsZWdlX3R5cGUKKyAgICBGUk9NCisgICAgICAgIChTRUxFQ1QKKyAg ICAgICAgICAgIHJlbGFjbAorICAgICAgICAgRlJPTQorICAgICAgICAgICAg cGdfY2xhc3MgY2wKKyAgICAgICAgIExFRlQgT1VURVIgSk9JTiBwZ19zaGRl c2NyaXB0aW9uIGRlc2NyIE9OCisgICAgICAgICAgICAoY2wub2lkPWRlc2Ny Lm9iam9pZCBBTkQgZGVzY3IuY2xhc3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xh c3MpCisgICAgICAgICBXSEVSRQorICAgICAgICAgICAgY2wub2lkID0ge3sg dmlkIH19OjpPSUQgQU5EIHJlbGtpbmQgPSAndicKKyAgICAgICAgKSBhY2ws CisgICAgICAgIGFjbGV4cGxvZGUocmVsYWNsKSBkCisgICAgKSBkCitMRUZU IEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9OIChkLmdyYW50b3IgPSBn Lm9pZCkKK0xFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGd0IE9OIChk LmdyYW50ZWUgPSBndC5vaWQpCitHUk9VUCBCWQorICAgIGcucm9sbmFtZSwK KyAgICBndC5yb2xuYW1lCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjFfcGx1 cy9zcWwvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3L3BwYXMvOS4xX3BsdXMvc3FsL2NyZWF0ZS5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTcyMGIxNAotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3L3BwYXMvOS4xX3BsdXMvc3FsL2NyZWF0ZS5zcWwKQEAgLTAsMCArMSwy MCBAQAoreyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09Q3JlYXRlIG5l dyB2aWV3PT09PT09PT09PT09PT09PT09PT09PT09PSN9Cit7JSBpZiBkaXNw bGF5X2NvbW1lbnRzICV9CistLSBWaWV3OiB7eyBjb25ufHF0SWRlbnQoZGF0 YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKworLS0gRFJPUCBWSUVXIHt7IGNv bm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fTsKKworeyUg ZW5kaWYgJX0KK3slIGlmIGRhdGEubmFtZSBhbmQgZGF0YS5zY2hlbWEgYW5k IGRhdGEuZGVmaW5pdGlvbiAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyB7 eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0gQVMK K3t7IGRhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSB9fTsKK3slIGlmIGRh dGEub3duZXIgJX0KKworQUxURVIgVEFCTEUge3sgY29ubnxxdElkZW50KGRh dGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19CisgICAgT1dORVIgVE8ge3sgY29u bnxxdElkZW50KGRhdGEub3duZXIpIH19OworeyUgZW5kaWYgJX0KK3slIGlm IGRhdGEuY29tbWVudCAlfQorQ09NTUVOVCBPTiBWSUVXIHt7IGNvbm58cXRJ ZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorICAgIElTIHt7IGRh dGEuY29tbWVudHxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAlfQoreyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3L3BwYXMvOS4xX3BsdXMvc3FsL2RlbGV0ZS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMV9wbHVz L3NxbC9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmU1MGJlZWMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMV9wbHVzL3NxbC9k ZWxldGUuc3FsCkBAIC0wLDAgKzEsMTMgQEAKK3sjID09PT09PT09PT09PT09 PT09PT09PT0gRHJvcC9DYXNjYWRlIHZpZXcgYnkgbmFtZSA9PT09PT09PT09 PT09PT09PT09PT0gI30KK3slIGlmIHZpZCAlfQorU0VMRUNUCisgICAgYy5y ZWxuYW1lIEFTIG5hbWUsCisgICAgbnNwLm5zcG5hbWUKK0ZST00KKyAgICBw Z19jbGFzcyBjCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBPTiBjLnJl bG5hbWVzcGFjZSA9IG5zcC5vaWQKK1dIRVJFCisgICAgYy5yZWxmaWxlbm9k ZSA9IHt7IHZpZCB9fTsKK3slIGVsaWYgKG5hbWUgYW5kIG5zcG5hbWUpICV9 CitEUk9QIFZJRVcge3tuc3BuYW1lfX0ue3sgY29ubnxxdElkZW50KG5hbWUp IH19IHslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERSB7JSBlbmRpZiAlfQoreyUg ZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3L3BwYXMvOS4xX3BsdXMvc3FsL2dldF9zY2hlbWEuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85 LjFfcGx1cy9zcWwvZ2V0X3NjaGVtYS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uMTI3ZDRiOQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4x X3BsdXMvc3FsL2dldF9zY2hlbWEuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VM RUNUCisgICAgbnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFjZQorV0hF UkUKKyAgICBvaWQgPSB7eyBzY2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMV9w bHVzL3NxbC9ncmFudC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvdmlldy9wcGFzLzkuMV9wbHVzL3NxbC9ncmFudC5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTlhMzEwZgotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3L3BwYXMvOS4xX3BsdXMvc3FsL2dyYW50LnNxbApAQCAtMCwwICsxLDYg QEAKK3sjID09PT09IEdyYW50IFBlcm1pc3Npb25zIHRvIFVzZXIgUm9sZSBv biBWaWV3cy9UYWJsZXMgPT09PT0gI30KK3slIGltcG9ydCAnbWFjcm9zL3Nl Y3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0KK3slIGltcG9ydCAnbWFj cm9zL3NjaGVtYXMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9 Cit7IyA9PT09PSBXZSB3aWxsIGdlbmVyYXRlIFNlY3VyaXR5IExhYmVsIFNR TCB1c2luZyBtYWNybyA9PT09PSAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMg JX17JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVscyAlfXt7IFNFQ0xBQkxFLkFQ UExZKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNl Y3VyaXR5X2xhYmVsKSB9fXslIGVuZGZvciAlfXslIGVuZGlmICV9eyUgaWYg ZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsICV9 e3sgUFJJVklMRUdFLlNFVChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUs IGRhdGEubmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3Jh bnQsIGRhdGEuc2NoZW1hKSB9fXslIGVuZGZvciAlfXslIGVuZGlmICV9CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmll dy9wcGFzLzkuMV9wbHVzL3NxbC9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4xX3BsdXMvc3Fs L3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjRhZGJlYmIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMV9wbHVzL3NxbC9w cm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDc2IEBACit7JSBpZiAodmlkIGFu ZCBkYXRsYXN0c3lzb2lkKSBvciBzY2lkICV9CitTRUxFQ1QKKyAgICBjLm9p ZCwKKyAgICBjLnhtaW4sCisgICAgYy5yZWxraW5kLAorICAgIGRlc2NyaXB0 aW9uLAorICAgIChDQVNFIFdIRU4gbGVuZ3RoKHNwYy5zcGNuYW1lKSA+IDAg VEhFTiBzcGMuc3BjbmFtZSBFTFNFICdwZ19kZWZhdWx0JyBFTkQpIGFzIHNw Y25hbWUsCisgICAgYy5yZWxuYW1lIEFTIG5hbWUsCisgICAgYy5yZWx0YWJs ZXNwYWNlIEFTIHNwY29pZCwKKyAgICBuc3AubnNwbmFtZSBBUyBzY2hlbWEs CisgICAgYy5yZWxpc3BvcHVsYXRlZCBBUyBpc3BvcHVsYXRlZCwKKyAgICBw Z19nZXRfdXNlcmJ5aWQoYy5yZWxvd25lcikgQVMgb3duZXIsCisgICAgYXJy YXlfdG9fc3RyaW5nKGMucmVsYWNsOjp0ZXh0W10sICcsICcpIEFTIGFjbCwK KyAgICBwZ19nZXRfdmlld2RlZihjLm9pZCwgdHJ1ZSkgQVMgZGVmaW5pdGlv biwKKyAgICB7IyA9PT09PSBDaGVja3MgaWYgaXQgaXMgc3lzdGVtIHZpZXcg PT09PT0gI30KKyAgICB7JSBpZiB2aWQgYW5kIGRhdGxhc3RzeXNvaWQgJX0K KyAgICBDQVNFIFdIRU4ge3t2aWR9fSA8PSB7e2RhdGxhc3RzeXNvaWR9fSBU SEVOIFRydWUgRUxTRSBGYWxzZSBFTkQgQVMgc3lzdGVtX3ZpZXcsCisgICAg eyUgZW5kaWYgJX0KKyhTRUxFQ1QKKyAgICBhcnJheV9hZ2cobGFiZWwpCitG Uk9NCisgICAgcGdfc2VjbGFiZWxzIHNsMQorV0hFUkUKKyAgICBzbDEub2Jq b2lkPWMub2lkIEFORCBzbDEub2Jqc3ViaWQ9MCkgQVMgbGFiZWxzLAorKFNF TEVDVAorICAgIGFycmF5X2FnZyhwcm92aWRlcikKK0ZST00KKyAgICBwZ19z ZWNsYWJlbHMgc2wyCitXSEVSRQorICAgIHNsMi5vYmpvaWQ9Yy5vaWQgQU5E IHNsMi5vYmpzdWJpZD0wKSBBUyBwcm92aWRlcnMsCisgICAgc3Vic3RyaW5n KGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAgICAg RlJPTSAnY2hlY2tfb3B0aW9uPShbYS16XSopJykgQVMgY2hlY2tfb3B0aW9u LAorICAgIChzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9u cywgJywnKQorICAgICAgICBGUk9NICdzZWN1cml0eV9iYXJyaWVyPShbYS16 fDAtOV0qKScpKTo6Ym9vbGVhbiBBUyBzZWN1cml0eV9iYXJyaWVyCitGUk9N IHBnX2NsYXNzIGMKK0xFRlQgT1VURVIgSk9JTiBwZ19uYW1lc3BhY2UgbnNw IG9uIG5zcC5vaWQgPSBjLnJlbG5hbWVzcGFjZQorTEVGVCBPVVRFUiBKT0lO IHBnX3RhYmxlc3BhY2Ugc3BjIG9uIHNwYy5vaWQ9Yy5yZWx0YWJsZXNwYWNl CitMRUZUIE9VVEVSIEpPSU4gcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMu b2Jqb2lkPWMub2lkIGFuZCBkZXMub2Jqc3ViaWQ9MCBBTkQgZGVzLmNsYXNz b2lkPSdwZ19jbGFzcyc6OnJlZ2NsYXNzKQorTEVGVCBPVVRFUiBKT0lOIHBn X2NsYXNzIHRzdCBPTiB0c3Qub2lkID0gYy5yZWx0b2FzdHJlbGlkCisgICAg V0hFUkUgKChjLnJlbGhhc3J1bGVzIEFORCAoRVhJU1RTICgKKyAgICAgICAg U0VMRUNUCisgICAgICAgICAgICByLnJ1bGVuYW1lCisgICAgICAgIEZST00K KyAgICAgICAgICAgIHBnX3Jld3JpdGUgcgorICAgICAgICBXSEVSRQorICAg ICAgICAgICAgKChyLmV2X2NsYXNzID0gYy5vaWQpCisgICAgICAgICAgICAg ICAgQU5EIChicGNoYXIoci5ldl90eXBlKSA9ICcxJzo6YnBjaGFyKSkgKSkp CisgICAgICAgICAgICBBTkQgKGMucmVsa2luZCA9ICd2Jzo6Y2hhcikKKyAg ICAgICAgICApCit7JSBpZiAodmlkIGFuZCBkYXRsYXN0c3lzb2lkKSAlfQor ICAgIEFORCBjLm9pZCA9IHt7dmlkfX06Om9pZAoreyUgZWxpZiBzY2lkICV9 CisgICAgQU5EIGMucmVsbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorT1JE RVIgQlkKKyAgICBjLnJlbG5hbWUKK3slIGVuZGlmICV9CisKK3slIGVsaWYg dHlwZSA9PSAncm9sZXMnICV9CitTRUxFQ1QKKyAgICBwci5yb2xuYW1lCitG Uk9NCisgICAgcGdfcm9sZXMgcHIKK1dIRVJFCisgICAgcHIucm9sY2FubG9n aW4KK09SREVSIEJZCisgICAgcHIucm9sbmFtZQorCit7JSBlbGlmIHR5cGUg PT0gJ3NjaGVtYXMnICV9CitTRUxFQ1QKKyAgICBuc3AubnNwbmFtZQorRlJP TQorICAgIHBnX25hbWVzcGFjZSBuc3AKK1dIRVJFCisgICAgKG5zcC5uc3Bu YW1lIE5PVCBMSUtFIEUncGdcXF8lJworICAgICAgICBBTkQgbnNwLm5zcG5h bWUgIT0gJ2luZm9ybWF0aW9uX3NjaGVtYScpCit7JSBlbmRpZiAlfQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcv cHBhcy85LjFfcGx1cy9zcWwvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4xX3BsdXMvc3FsL3VwZGF0 ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTYx ODNmZAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdz L3RlbXBsYXRlcy92aWV3L3BwYXMvOS4xX3BsdXMvc3FsL3VwZGF0ZS5zcWwK QEAgLTAsMCArMSw4MiBAQAoreyMgPT09PT09PT09PT09PT09PT09PT09PT09 PT09PSBVcGRhdGUgVmlldyA9PT09PT09PT09PT09PT09PT09PT09PT09ICN9 Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xB QkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zY2hlbWFzL3ByaXZpbGVnZS5t YWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaWYgZGF0YSAlfQoreyUgc2V0 IHZpZXdfbmFtZSA9IGRhdGEubmFtZSBpZiBkYXRhLm5hbWUgZWxzZSBvX2Rh dGEubmFtZSAlfQoreyUgc2V0IHZpZXdfc2NoZW1hID0gZGF0YS5zY2hlbWEg aWYgZGF0YS5zY2hlbWEgZWxzZSBvX2RhdGEuc2NoZW1hICV9Cit7JSBzZXQg ZGVmID0gZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgnOycpIGlmIGRhdGEuZGVm aW5pdGlvbiAlfQoreyUgaWYgZGF0YS5uYW1lIGFuZCBkYXRhLm5hbWUgIT0g b19kYXRhLm5hbWUgJX0KK0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KG9f ZGF0YS5zY2hlbWEsIG9fZGF0YS5uYW1lKSB9fQorICAgIFJFTkFNRSBUTyB7 eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3slIGVuZGlmICV9Cit7 JSBpZiBkYXRhLnNjaGVtYSBhbmQgZGF0YS5zY2hlbWEgIT0gb19kYXRhLnNj aGVtYSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQob19kYXRhLnNj aGVtYSwgdmlld19uYW1lICkgfX0KKyAgICBTRVQgU0NIRU1BIHt7IGNvbm58 cXRJZGVudChkYXRhLnNjaGVtYSkgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYg ZGF0YS5vd25lciBhbmQgZGF0YS5vd25lciAhPSBvX2RhdGEub3duZXIgJX0K K0FMVEVSIFRBQkxFIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmll d19uYW1lKSB9fQorICAgIE9XTkVSIFRPIHt7IGNvbm58cXRJZGVudChkYXRh Lm93bmVyKSB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkZWYgYW5kIGRlZiAh PSBvX2RhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSAlfQorQ1JFQVRFIE9S IFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZp ZXdfbmFtZSkgfX0KK3slIGlmIChkYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0 YS5jaGVja19vcHRpb24gIT0gb19kYXRhLmNoZWNrX29wdGlvbikKKyAgICBv ciAoZGF0YS5zZWN1cml0eV9iYXJyaWVyIGFuZCBkYXRhLnNlY3VyaXR5X2Jh cnJpZXIgIT0gb19kYXRhLnNlY3VyaXR5X2JhcnJpZXIpICV9CisgICAgV0lU SCAoeyUgaWYgKGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29w dGlvbiAhPSAnbm8nKSAlfWNoZWNrX29wdGlvbj17eyBkYXRhLmNoZWNrX29w dGlvbiB9fXslIGVuZGlmICV9e3snLCAnIGlmIGRhdGEuY2hlY2tfb3B0aW9u IGFuZCBkYXRhLmNoZWNrX29wdGlvbiAhPSAnbm8nIGFuZCBkYXRhLnNlY3Vy aXR5X2JhcnJpZXIgfX17JSBpZiBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgJX1z ZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dl ciB9fXslIGVuZGlmICV9KQoreyUgZW5kaWYgJX0KKyAgICBBU3t7IGRlZiB9 fTsKK3slIGVsc2UgJX0KK3slIGlmIChkYXRhLnNlY3VyaXR5X2JhcnJpZXIg aXMgZGVmaW5lZCBhbmQgZGF0YS5zZWN1cml0eV9iYXJyaWVyfGxvd2VyICE9 ICBvX2RhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dlcikgJX0KK0FMVEVSIFZJ RVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19 CisgICAgU0VUIChzZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEuc2VjdXJpdHlf YmFycmllcnxsb3dlciB9fSk7Cit7JSBlbmRpZiAlfQoreyUgaWYgKGRhdGEu Y2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAhPSBvX2RhdGEu Y2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAhPSAnbm8nKSAl fQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZp ZXdfbmFtZSkgfX0KKyAgICBTRVQgKGNoZWNrX29wdGlvbj17eyBkYXRhLmNo ZWNrX29wdGlvbiB9fSk7Cit7JSBlbGlmIChkYXRhLmNoZWNrX29wdGlvbiBh bmQgZGF0YS5jaGVja19vcHRpb24gIT0gb19kYXRhLmNoZWNrX29wdGlvbiBh bmQgZGF0YS5jaGVja19vcHRpb24gPT0gJ25vJykgJX0KK0FMVEVSIFZJRVcg e3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19IFJF U0VUIChjaGVja19vcHRpb24pOworeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9 CisKK3slIGlmIGRhdGEuY29tbWVudCBhbmQgZGF0YS5jb21tZW50ICE9IG9f ZGF0YS5jb21tZW50ICV9CitDT01NRU5UIE9OIFZJRVcge3sgY29ubnxxdElk ZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAgSVMge3sgZGF0 YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmICV9Cit7IyBUaGUg U1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxlZ2VzICN9 Cit7JSBpZiBkYXRhLmRhdGFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRh dGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5kZWxl dGVkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ1RBQkxFJywg cHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hKSB9fQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIGRh dGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5jaGFu Z2VkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ1RBQkxFJywg cHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hKSB9fQore3sg UFJJVklMRUdFLlNFVChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRh dGEubmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQs IGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQor eyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYg aW4gZGF0YS5kYXRhY2wuYWRkZWQgJX0KK3t7IFBSSVZJTEVHRS5TRVQoY29u biwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIHByaXYud2l0 aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBkYXRhLnNjaGVtYSkgfX0K K3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7IyBU aGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBTZWN1cml0eSBM YWJlbCAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgaXMgbm90IG5vbmUgYW5k IGRhdGEuc2VjbGFiZWxzfGxlbmd0aCA+IDAgJX0KK3slIHNldCBzZWNsYWJl bHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNl Y2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQor eyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQgJX0KK3t7IFNFQ0xBQkxF LkRST1AoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIpIH19 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnYWRkZWQnIGlu IHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0K K3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQore3sgU0VDTEFCTEUu QVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIu c2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9 Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMu Y2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMu Y2hhbmdlZCAlfQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBk YXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7 JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3L3BwYXMvOS4xX3BsdXMvc3FsL3ZpZXdfaWQuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjFfcGx1 cy9zcWwvdmlld19pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZWYyNzU5NAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4xX3BsdXMvc3Fs L3ZpZXdfaWQuc3FsCkBAIC0wLDAgKzEsNCBAQAoreyMgPT09PT0gQmVsb3cg d2lsbCBwcm92aWRlIHZpZXcgaWQgZm9yIGxhc3QgY3JlYXRlZCB2aWV3ID09 PT09ICN9Cit7JSBpZiBkYXRhICV9CitTRUxFQ1QgYy5vaWQgRlJPTSBwZ19j bGFzcyBjIFdIRVJFIGMucmVsbmFtZSA9ICd7eyBkYXRhLm5hbWUgfX0nOwor eyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdz L3RlbXBsYXRlcy92aWV3L3BwYXMvOS4yX3BsdXMvc3FsL2FjbC5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMl9w bHVzL3NxbC9hY2wuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjVmMmQwZmIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMl9wbHVzL3NxbC9h Y2wuc3FsCkBAIC0wLDAgKzEsNTIgQEAKK3sjID09PT09PT09PT09PT09PT09 PT09PT09PT09PT0gR2V0IEFDTHMgPT09PT09PT09PT09PT09PT09PT09PT09 PSAjfQoreyUgaWYgdmlkICV9CitTRUxFQ1QKKyAgICAnZGF0YWNsJyBhcyBk ZWZ0eXBlLAorICAgIENPQUxFU0NFKGd0LnJvbG5hbWUsICdwdWJsaWMnKSBn cmFudGVlLAorICAgIGcucm9sbmFtZSBncmFudG9yLAorICAgIGFycmF5X2Fn Zyhwcml2aWxlZ2VfdHlwZSkgYXMgcHJpdmlsZWdlcywKKyAgICBhcnJheV9h Z2coaXNfZ3JhbnRhYmxlKSBhcyBncmFudGFibGUKK0ZST00KKyAgICAoU0VM RUNUCisgICAgICAgIGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50 YWJsZSwKKyAgICAgICAgQ0FTRSBkLnByaXZpbGVnZV90eXBlCisgICAgICAg IFdIRU4gJ0RFTEVURScgVEhFTiAnZCcKKyAgICAgICAgV0hFTiAnSU5TRVJU JyBUSEVOICdhJworICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4 JworICAgICAgICBXSEVOICdTRUxFQ1QnIFRIRU4gJ3InCisgICAgICAgIFdI RU4gJ1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1VQREFURScg VEhFTiAndycKKyAgICAgICAgV0hFTiAnVFJVTkNBVEUnIFRIRU4gJ0QnCisg ICAgICAgIEVMU0UgJ1VOS05PV04nCisgICAgICAgIEVORCBBUyBwcml2aWxl Z2VfdHlwZQorICAgIEZST00KKyAgICAgICAgKFNFTEVDVAorICAgICAgICAg ICAgcmVsYWNsCisgICAgICAgIEZST00KKyAgICAgICAgICAgIHBnX2NsYXNz IGNsCisgICAgICAgIExFRlQgT1VURVIgSk9JTiBwZ19zaGRlc2NyaXB0aW9u IGRlc2NyIE9OICgKKyAgICAgICAgICAgIGNsLm9pZD1kZXNjci5vYmpvaWQg QU5EIGRlc2NyLmNsYXNzb2lkPSdwZ19jbGFzcyc6OnJlZ2NsYXNzKQorICAg ICAgICBXSEVSRQorICAgICAgICAgICAgY2wub2lkID0ge3sgdmlkIH19OjpP SUQgQU5EIHJlbGtpbmQgPSAndicKKyAgICAgICAgKSBhY2wsCisgICAgICAg IChTRUxFQ1QKKyAgICAgICAgICAgIChkKS5ncmFudGVlIEFTIGdyYW50ZWUs CisgICAgICAgICAgICAoZCkuZ3JhbnRvciBBUyBncmFudG9yLAorICAgICAg ICAgICAgKGQpLmlzX2dyYW50YWJsZSBBUyBpc19ncmFudGFibGUsCisgICAg ICAgICAgICAoZCkucHJpdmlsZWdlX3R5cGUgQVMgcHJpdmlsZWdlX3R5cGUK KyAgICAgICAgRlJPTQorICAgICAgICAgICAgKFNFTEVDVAorICAgICAgICAg ICAgICAgIGFjbGV4cGxvZGUocmVsYWNsKSBBUyBkCisgICAgICAgICAgICAg RlJPTQorICAgICAgICAgICAgICAgIHBnX2NsYXNzIGNsMQorICAgICAgICAg ICAgIFdIRVJFCisgICAgICAgICAgICAgICAgY2wxLm9pZCA9IHt7IHZpZCB9 fQorICAgICAgICAgICAgKSBhCisgICAgICAgICkgZAorICAgICkgZAorTEVG VCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZyBPTiAoZC5ncmFudG9yID0g Zy5vaWQpCitMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBndCBPTiAo ZC5ncmFudGVlID0gZ3Qub2lkKQorR1JPVVAgQlkKKyAgICBnLnJvbG5hbWUs CisgICAgZ3Qucm9sbmFtZQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4yX3Bs dXMvc3FsL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvdmlldy9wcGFzLzkuMl9wbHVzL3NxbC9jcmVhdGUuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjNGEzYWIKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMv dmlldy9wcGFzLzkuMl9wbHVzL3NxbC9jcmVhdGUuc3FsCkBAIC0wLDAgKzEs MjMgQEAKK3sjPT09PT09PT09PT09PT09PT09PT09PT09PT09PUNyZWF0ZSBu ZXcgdmlldz09PT09PT09PT09PT09PT09PT09PT09PT0jfQoreyUgaWYgZGlz cGxheV9jb21tZW50cyAlfQorLS0gVmlldzoge3sgY29ubnxxdElkZW50KGRh dGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19CisKKy0tIERST1AgVklFVyB7eyBj b25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX07CisKK3sl IGVuZGlmICV9Cit7JSBpZiBkYXRhLm5hbWUgYW5kIGRhdGEuc2NoZW1hIGFu ZCBkYXRhLmRlZmluaXRpb24gJX0KK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcg e3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19eyUg aWYgKGRhdGEuc2VjdXJpdHlfYmFycmllcikgJX17eydccid9fQorV0lUSCAo Cit7JSBpZiBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgJX0gICAgc2VjdXJpdHlf YmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXJ8bG93ZXIgfX17JSBl bmRpZiAlfXt7J1xyJ319CispeyUgZW5kaWYgJX0gQVMKK3t7IGRhdGEuZGVm aW5pdGlvbi5yc3RyaXAoJzsnKSB9fTsKK3slIGlmIGRhdGEub3duZXIgJX0K KworQUxURVIgVEFCTEUge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBk YXRhLm5hbWUpIH19CisgIE9XTkVSIFRPIHt7IGRhdGEub3duZXIgfX07Cit7 JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5jb21tZW50ICV9CitDT01NRU5UIE9O IFZJRVcge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUp IH19CisgICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsKK3sl IGVuZGlmICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjJfcGx1cy9zcWwv ZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3L3BwYXMvOS4yX3BsdXMvc3FsL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTUwYmVlYwotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3Bw YXMvOS4yX3BsdXMvc3FsL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwxMyBAQAor eyMgPT09PT09PT09PT09PT09PT09PT09PSBEcm9wL0Nhc2NhZGUgdmlldyBi eSBuYW1lID09PT09PT09PT09PT09PT09PT09PSAjfQoreyUgaWYgdmlkICV9 CitTRUxFQ1QKKyAgICBjLnJlbG5hbWUgQVMgbmFtZSwKKyAgICBuc3AubnNw bmFtZQorRlJPTQorICAgIHBnX2NsYXNzIGMKK0xFRlQgSk9JTiBwZ19uYW1l c3BhY2UgbnNwIE9OIGMucmVsbmFtZXNwYWNlID0gbnNwLm9pZAorV0hFUkUK KyAgICBjLnJlbGZpbGVub2RlID0ge3sgdmlkIH19OworeyUgZWxpZiAobmFt ZSBhbmQgbnNwbmFtZSkgJX0KK0RST1AgVklFVyB7e25zcG5hbWV9fS57eyBj b25ufHF0SWRlbnQobmFtZSkgfX0geyUgaWYgY2FzY2FkZSAlfSBDQVNDQURF IHslIGVuZGlmICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjJfcGx1cy9z cWwvZ2V0X3NjaGVtYS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvdmlldy9wcGFzLzkuMl9wbHVzL3NxbC9nZXRfc2NoZW1hLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjdkNGI5Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL3ZpZXcvcHBhcy85LjJfcGx1cy9zcWwvZ2V0X3NjaGVtYS5zcWwKQEAg LTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBuc3BuYW1lCitGUk9NCisgICAg cGdfbmFtZXNwYWNlCitXSEVSRQorICAgIG9pZCA9IHt7IHNjaWQgfX06Om9p ZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy92aWV3L3BwYXMvOS4yX3BsdXMvc3FsL2dyYW50LnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4yX3BsdXMvc3Fs L2dyYW50LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li41OWEzMTBmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjJfcGx1cy9zcWwvZ3JhbnQu c3FsCkBAIC0wLDAgKzEsNiBAQAoreyMgPT09PT0gR3JhbnQgUGVybWlzc2lv bnMgdG8gVXNlciBSb2xlIG9uIFZpZXdzL1RhYmxlcyA9PT09PSAjfQoreyUg aW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAl fQoreyUgaW1wb3J0ICdtYWNyb3Mvc2NoZW1hcy9wcml2aWxlZ2UubWFjcm9z JyBhcyBQUklWSUxFR0UgJX0KK3sjID09PT09IFdlIHdpbGwgZ2VuZXJhdGUg U2VjdXJpdHkgTGFiZWwgU1FMIHVzaW5nIG1hY3JvID09PT09ICN9Cit7JSBp ZiBkYXRhLnNlY2xhYmVscyAlfXslIGZvciByIGluIGRhdGEuc2VjbGFiZWxz ICV9e3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUs IHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19eyUgZW5kZm9yICV9 eyUgZW5kaWYgJX17JSBpZiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYg aW4gZGF0YS5kYXRhY2wgJX17eyBQUklWSUxFR0UuU0VUKGNvbm4sICdUQUJM RScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwcml2LndpdGhvdXRfZ3Jh bnQsIHByaXYud2l0aF9ncmFudCwgZGF0YS5zY2hlbWEpIH19eyUgZW5kZm9y ICV9eyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4yX3BsdXMvc3FsL3Byb3BlcnRp ZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcv cHBhcy85LjJfcGx1cy9zcWwvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjBlYjNkZgotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3Bw YXMvOS4yX3BsdXMvc3FsL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsNzAg QEAKK3slIGlmICh2aWQgYW5kIGRhdGxhc3RzeXNvaWQpIG9yIHNjaWQgJX0K K1NFTEVDVAorICAgIGMub2lkLAorICAgIGMueG1pbiwKKyAgICBjLnJlbG5h bWUgQVMgbmFtZSwKKyAgICBjLnJlbHRhYmxlc3BhY2UgQVMgc3Bjb2lkLAor ICAgIChDQVNFIFdIRU4gbGVuZ3RoKHNwYy5zcGNuYW1lKSA+IDAgVEhFTiBz cGMuc3BjbmFtZSBFTFNFICdwZ19kZWZhdWx0JyBFTkQpIGFzIHNwY25hbWUs CisgICAgcGdfZ2V0X3VzZXJieWlkKGMucmVsb3duZXIpIEFTIG93bmVyLAor ICAgIGRlc2NyaXB0aW9uIEFzIGNvbW1lbnQsCisgICAgcGdfZ2V0X3ZpZXdk ZWYoYy5vaWQsIHRydWUpIEFTIGRlZmluaXRpb24sCisgICAgbnNwLm5zcG5h bWUgQVMgc2NoZW1hLAorICAgIGFycmF5X3RvX3N0cmluZyhjLnJlbGFjbDo6 dGV4dFtdLCAnLCAnKSBBUyBhY2wsCisgICAgeyM9PT09PT09PT09PT09Q2hl Y2tzIGlmIGl0IGlzIHN5c3RlbSB2aWV3PT09PT09PT09PT09PT09PSN9Cisg ICAgeyUgaWYgdmlkIGFuZCBkYXRsYXN0c3lzb2lkICV9CisgICAgQ0FTRSBX SEVOIHt7dmlkfX0gPD0ge3tkYXRsYXN0c3lzb2lkfX0gVEhFTiBUcnVlIEVM U0UgRmFsc2UgRU5EIEFTIHN5c3RlbV92aWV3LAorICAgIHslIGVuZGlmICV9 CisoU0VMRUNUCisgICAgYXJyYXlfYWdnKGxhYmVsKQorRlJPTQorICAgIHBn X3NlY2xhYmVscyBzbDEKK1dIRVJFCisgICAgc2wxLm9iam9pZD1jLm9pZCBB TkQgc2wxLm9ianN1YmlkPTApIEFTIGxhYmVscywKKyhTRUxFQ1QKKyAgICBh cnJheV9hZ2cocHJvdmlkZXIpCitGUk9NCisgICAgcGdfc2VjbGFiZWxzIHNs MgorV0hFUkUKKyAgICBzbDIub2Jqb2lkPWMub2lkIEFORCBzbDIub2Jqc3Vi aWQ9MCkgQVMgcHJvdmlkZXJzLAorICAgIChzdWJzdHJpbmcoYXJyYXlfdG9f c3RyaW5nKGMucmVsb3B0aW9ucywgJywnKQorICAgICAgICBGUk9NICdzZWN1 cml0eV9iYXJyaWVyPShbYS16fDAtOV0qKScpKTo6Ym9vbGVhbiBBUyBzZWN1 cml0eV9iYXJyaWVyCitGUk9NIHBnX2NsYXNzIGMKK0xFRlQgT1VURVIgSk9J TiBwZ19uYW1lc3BhY2UgbnNwIG9uIG5zcC5vaWQgPSBjLnJlbG5hbWVzcGFj ZQorTEVGVCBPVVRFUiBKT0lOIHBnX3RhYmxlc3BhY2Ugc3BjIG9uIHNwYy5v aWQ9Yy5yZWx0YWJsZXNwYWNlCitMRUZUIE9VVEVSIEpPSU4gcGdfZGVzY3Jp cHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPWMub2lkIGFuZCBkZXMub2Jqc3Vi aWQ9MCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19jbGFzcyc6OnJlZ2NsYXNzKQor ICAgIFdIRVJFICgoYy5yZWxoYXNydWxlcyBBTkQgKEVYSVNUUyAoCisgICAg ICAgICAgICBTRUxFQ1QKKyAgICAgICAgICAgICAgICByLnJ1bGVuYW1lCisg ICAgICAgICAgICBGUk9NCisgICAgICAgICAgICAgICAgcGdfcmV3cml0ZSBy CisgICAgICAgICAgICBXSEVSRQorICAgICAgICAgICAgICAgICgoci5ldl9j bGFzcyA9IGMub2lkKQorICAgICAgICAgICAgICAgICAgICBBTkQgKGJwY2hh cihyLmV2X3R5cGUpID0gJzEnOjpicGNoYXIpCisgICAgICAgICAgICAgICAg KSApKQorICAgICAgICAgICApIEFORCAoYy5yZWxraW5kID0gJ3YnOjpjaGFy KQorICAgICAgICAgICkKK3slIGlmICh2aWQgYW5kIGRhdGxhc3RzeXNvaWQp ICV9CisgICAgQU5EIGMub2lkID0ge3t2aWR9fTo6b2lkCit7JSBlbGlmIHNj aWQgJX0KKyAgICBBTkQgYy5yZWxuYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lk IE9SREVSIEJZIGMucmVsbmFtZQoreyUgZW5kaWYgJX0KKworeyUgZWxpZiB0 eXBlID09ICdyb2xlcycgJX0KK1NFTEVDVAorICAgIHByLnJvbG5hbWUKK0ZS T00KKyAgICBwZ19yb2xlcyBwcgorV0hFUkUKKyAgICBwci5yb2xjYW5sb2dp bgorT1JERVIgQlkKKyAgICBwci5yb2xuYW1lCisKK3slIGVsaWYgdHlwZSA9 PSAnc2NoZW1hcycgJX0KK1NFTEVDVAorICAgIG5zcC5uc3BuYW1lCitGUk9N CisgICAgcGdfbmFtZXNwYWNlIG5zcAorV0hFUkUKKyAgICAobnNwLm5zcG5h bWUgTk9UIExJS0UgRSdwZ1xcXyUnCisgICAgICAgIEFORCBuc3AubnNwbmFt ZSAhPSAnaW5mb3JtYXRpb25fc2NoZW1hJykKK3slIGVuZGlmICV9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9w cGFzLzkuMl9wbHVzL3NxbC91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjJfcGx1cy9zcWwvdXBkYXRl LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzdk NGJhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL3ZpZXcvcHBhcy85LjJfcGx1cy9zcWwvdXBkYXRlLnNxbApA QCAtMCwwICsxLDc0IEBACit7IyA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09IFVwZGF0ZSBWaWV3ID09PT09PT09PT09PT09PT09PT09PT09PT0gI30K K3slIGltcG9ydCAnbWFjcm9zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFC TEUgJX0KK3slIGltcG9ydCAnbWFjcm9zL3NjaGVtYXMvcHJpdmlsZWdlLm1h Y3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpZiBkYXRhICV9Cit7JSBzZXQg dmlld19uYW1lID0gZGF0YS5uYW1lIGlmIGRhdGEubmFtZSBlbHNlIG9fZGF0 YS5uYW1lICV9Cit7JSBzZXQgdmlld19zY2hlbWEgPSBkYXRhLnNjaGVtYSBp ZiBkYXRhLnNjaGVtYSBlbHNlIG9fZGF0YS5zY2hlbWEgJX0KK3slIHNldCBk ZWYgPSBkYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7JykgaWYgZGF0YS5kZWZp bml0aW9uICV9Cit7JSBpZiBkYXRhLm5hbWUgYW5kIGRhdGEubmFtZSAhPSBv X2RhdGEubmFtZSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQob19k YXRhLnNjaGVtYSwgb19kYXRhLm5hbWUpIH19CisgICAgUkVOQU1FIFRPIHt7 IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUgZW5kaWYgJX0KK3sl IGlmIGRhdGEuc2NoZW1hIGFuZCBkYXRhLnNjaGVtYSAhPSBvX2RhdGEuc2No ZW1hICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudChvX2RhdGEuc2No ZW1hLCB2aWV3X25hbWUgKSB9fQorICAgIFNFVCBTQ0hFTUEge3sgY29ubnxx dElkZW50KGRhdGEuc2NoZW1hKSB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBk YXRhLm93bmVyIGFuZCBkYXRhLm93bmVyICE9IG9fZGF0YS5vd25lciAlfQor QUxURVIgVEFCTEUge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3 X25hbWUpIH19CisgICAgT1dORVIgVE8ge3sgY29ubnxxdElkZW50KGRhdGEu b3duZXIpIH19OworeyUgZW5kaWYgJX0KK3slIGlmIGRlZiBhbmQgZGVmICE9 IG9fZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgnOycpICV9CitDUkVBVEUgT1Ig UkVQTEFDRSBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmll d19uYW1lKSB9fQoreyUgaWYgKGRhdGEuc2VjdXJpdHlfYmFycmllciBhbmQg ZGF0YS5zZWN1cml0eV9iYXJyaWVyICE9IG9fZGF0YS5zZWN1cml0eV9iYXJy aWVyKSAlfQorICAgIFdJVEggKHslIGlmIGRhdGEuc2VjdXJpdHlfYmFycmll ciAlfXNlY3VyaXR5X2JhcnJpZXI9e3sgZGF0YS5zZWN1cml0eV9iYXJyaWVy fGxvd2VyIH19eyUgZW5kaWYgJX0pIHslIGVuZGlmICV9CisgICAgQVN7eyBk ZWYgfX07Cit7JSBlbHNlICV9Cit7JSBpZiAoZGF0YS5zZWN1cml0eV9iYXJy aWVyIGlzIGRlZmluZWQgYW5kIGRhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dl ciAhPSAgb19kYXRhLnNlY3VyaXR5X2JhcnJpZXJ8bG93ZXIpICV9CitBTFRF UiBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1l KSB9fQorICAgIFNFVCAoc2VjdXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3Vy aXR5X2JhcnJpZXJ8bG93ZXIgfX0pOworeyUgZW5kaWYgJX0KK3slIGVuZGlm ICV9CisKK3slIGlmIGRhdGEuY29tbWVudCBhbmQgZGF0YS5jb21tZW50ICE9 IG9fZGF0YS5jb21tZW50ICV9CitDT01NRU5UIE9OIFZJRVcge3sgY29ubnxx dElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAgSVMge3sg ZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmICV9Cit7IyBU aGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxlZ2Vz ICN9Cit7JSBpZiBkYXRhLmRhdGFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGlu IGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5k ZWxldGVkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ1RBQkxF JywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hKSB9fQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGlu IGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5j aGFuZ2VkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ1RBQkxF JywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hKSB9fQor e3sgUFJJVklMRUdFLlNFVChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUs IGRhdGEubmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3Jh bnQsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAl fQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHBy aXYgaW4gZGF0YS5kYXRhY2wuYWRkZWQgJX0KK3t7IFBSSVZJTEVHRS5TRVQo Y29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIHByaXYu d2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBkYXRhLnNjaGVtYSkg fX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7 IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBTZWN1cml0 eSBMYWJlbCAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgaXMgbm90IG5vbmUg YW5kIGRhdGEuc2VjbGFiZWxzfGxlbmd0aCA+IDAgJX0KK3slIHNldCBzZWNs YWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGlu IHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAl fQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQgJX0KK3t7IFNFQ0xB QkxFLkRST1AoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIp IH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnYWRkZWQn IGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAg JX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQore3sgU0VDTEFC TEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIs IHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlm ICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJl bHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJl bHMuY2hhbmdlZCAlfQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcn LCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyUg ZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3L3BwYXMvOS4yX3BsdXMvc3FsL3ZpZXdfaWQuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjJf cGx1cy9zcWwvdmlld19pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uNmRmZjA0ZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4yX3BsdXMv c3FsL3ZpZXdfaWQuc3FsCkBAIC0wLDAgKzEsNCBAQAoreyMgQmVsb3cgd2ls bCBwcm92aWRlIHZpZXcgaWQgZm9yIG5ld2x5IGNyZWF0ZWQgdmlldyAjfQor eyUgaWYgZGF0YSAlfQorU0VMRUNUIGMub2lkIEZST00gcGdfY2xhc3MgYyBX SEVSRSBjLnJlbG5hbWUgPSAne3sgZGF0YS5uYW1lIH19JzsKK3slIGVuZGlm ICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0 ZXMvdmlldy9wcGFzLzkuM19wbHVzL3NxbC9hY2wuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwv YWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44 NDMwMGNmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwvYWNsLnNxbApA QCAtMCwwICsxLDM4IEBACit7IyA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09IEdldCBBQ0xzID09PT09PT09PT09PT09PT09PT09PT09PT0gI30KK3sl IGlmIHZpZCAlfQorU0VMRUNUCisgICAgJ2RhdGFjbCcgYXMgZGVmdHlwZSwK KyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAncHVibGljJykgZ3JhbnRlZSwK KyAgICBnLnJvbG5hbWUgZ3JhbnRvciwKKyAgICBhcnJheV9hZ2cocHJpdmls ZWdlX3R5cGUpIGFzIHByaXZpbGVnZXMsCisgICAgYXJyYXlfYWdnKGlzX2dy YW50YWJsZSkgYXMgZ3JhbnRhYmxlCitGUk9NCisgICAgKFNFTEVDVAorICAg ICAgICBkLmdyYW50ZWUsIGQuZ3JhbnRvciwgZC5pc19ncmFudGFibGUsCisg ICAgICAgIENBU0UgZC5wcml2aWxlZ2VfdHlwZQorICAgICAgICBXSEVOICdE RUxFVEUnIFRIRU4gJ2QnCisgICAgICAgIFdIRU4gJ0lOU0VSVCcgVEhFTiAn YScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNFUycgVEhFTiAneCcKKyAgICAg ICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAgICAgICBXSEVOICdUUklH R0VSJyBUSEVOICd0JworICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cn CisgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBUSEVOICdEJworICAgICAgICBF TFNFICdVTktOT1dOJworICAgICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUK KyAgICBGUk9NCisgICAgICAgIChTRUxFQ1QKKyAgICAgICAgICAgIHJlbGFj bAorICAgICAgICBGUk9NCisgICAgICAgICAgICBwZ19jbGFzcyBjbAorICAg ICAgICBMRUZUIE9VVEVSIEpPSU4gcGdfc2hkZXNjcmlwdGlvbiBkZXNjciBP TiAoCisgICAgICAgICAgICBjbC5vaWQ9ZGVzY3Iub2Jqb2lkIEFORCBkZXNj ci5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykKKyAgICAgICAgV0hF UkUgY2wub2lkID0ge3sgdmlkIH19OjpPSUQgQU5EIHJlbGtpbmQgPSAndicK KyAgICAgICAgKSBhY2wsCisgICAgICAgIGFjbGV4cGxvZGUocmVsYWNsKSBk CisgICAgKSBkCitMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9O IChkLmdyYW50b3IgPSBnLm9pZCkKK0xFRlQgSk9JTiBwZ19jYXRhbG9nLnBn X3JvbGVzIGd0IE9OIChkLmdyYW50ZWUgPSBndC5vaWQpCitHUk9VUCBCWQor ICAgIGcucm9sbmFtZSwKKyAgICBndC5yb2xuYW1lCit7JSBlbmRpZiAlfQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXcvcHBhcy85LjNfcGx1cy9zcWwvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2Ny ZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u ZGM0YTNhYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2NyZWF0ZS5z cWwKQEAgLTAsMCArMSwyMyBAQAoreyM9PT09PT09PT09PT09PT09PT09PT09 PT09PT09Q3JlYXRlIG5ldyB2aWV3PT09PT09PT09PT09PT09PT09PT09PT09 PSN9Cit7JSBpZiBkaXNwbGF5X2NvbW1lbnRzICV9CistLSBWaWV3OiB7eyBj b25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKworLS0g RFJPUCBWSUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5u YW1lKSB9fTsKKworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEubmFtZSBhbmQg ZGF0YS5zY2hlbWEgYW5kIGRhdGEuZGVmaW5pdGlvbiAlfQorQ1JFQVRFIE9S IFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRh dGEubmFtZSkgfX17JSBpZiAoZGF0YS5zZWN1cml0eV9iYXJyaWVyKSAlfXt7 J1xyJ319CitXSVRIICgKK3slIGlmIGRhdGEuc2VjdXJpdHlfYmFycmllciAl fSAgICBzZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEuc2VjdXJpdHlfYmFycmll cnxsb3dlciB9fXslIGVuZGlmICV9e3snXHInfX0KKyl7JSBlbmRpZiAlfSBB Uwore3sgZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgnOycpIH19OworeyUgaWYg ZGF0YS5vd25lciAlfQorCitBTFRFUiBUQUJMRSB7eyBjb25ufHF0SWRlbnQo ZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKyAgT1dORVIgVE8ge3sgZGF0 YS5vd25lciB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmNvbW1lbnQg JX0KK0NPTU1FTlQgT04gVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hl bWEsIGRhdGEubmFtZSkgfX0KKyAgICBJUyB7eyBkYXRhLmNvbW1lbnR8cXRM aXRlcmFsIH19OworeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFz LzkuM19wbHVzL3NxbC9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwvZGVsZXRlLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTBiZWVj Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwvZGVsZXRlLnNxbApAQCAt MCwwICsxLDEzIEBACit7IyA9PT09PT09PT09PT09PT09PT09PT09IERyb3Av Q2FzY2FkZSB2aWV3IGJ5IG5hbWUgPT09PT09PT09PT09PT09PT09PT09ICN9 Cit7JSBpZiB2aWQgJX0KK1NFTEVDVAorICAgIGMucmVsbmFtZSBBUyBuYW1l LAorICAgIG5zcC5uc3BuYW1lCitGUk9NCisgICAgcGdfY2xhc3MgYworTEVG VCBKT0lOIHBnX25hbWVzcGFjZSBuc3AgT04gYy5yZWxuYW1lc3BhY2UgPSBu c3Aub2lkCitXSEVSRQorICAgIGMucmVsZmlsZW5vZGUgPSB7eyB2aWQgfX07 Cit7JSBlbGlmIChuYW1lIGFuZCBuc3BuYW1lKSAlfQorRFJPUCBWSUVXIHt7 bnNwbmFtZX19Lnt7IGNvbm58cXRJZGVudChuYW1lKSB9fSB7JSBpZiBjYXNj YWRlICV9IENBU0NBREUgeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9w cGFzLzkuM19wbHVzL3NxbC9nZXRfc2NoZW1hLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2dl dF9zY2hlbWEuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjEyN2Q0YjkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuM19wbHVzL3NxbC9nZXRf c2NoZW1hLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5zcG5h bWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UKK1dIRVJFCisgICAgb2lkID0g e3sgc2NpZCB9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwvZ3JhbnQu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBh cy85LjNfcGx1cy9zcWwvZ3JhbnQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjU5YTMxMGYKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuM19w bHVzL3NxbC9ncmFudC5zcWwKQEAgLTAsMCArMSw2IEBACit7IyA9PT09PSBH cmFudCBQZXJtaXNzaW9ucyB0byBVc2VyIFJvbGUgb24gVmlld3MvVGFibGVz ID09PT09ICN9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNyb3Mn IGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zY2hlbWFzL3By aXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyMgPT09PT0gV2Ug d2lsbCBnZW5lcmF0ZSBTZWN1cml0eSBMYWJlbCBTUUwgdXNpbmcgbWFjcm8g PT09PT0gI30KK3slIGlmIGRhdGEuc2VjbGFiZWxzICV9eyUgZm9yIHIgaW4g ZGF0YS5zZWNsYWJlbHMgJX17eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnVklF VycsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCkg fX17JSBlbmRmb3IgJX17JSBlbmRpZiAlfXslIGlmIGRhdGEuZGF0YWNsICV9 Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbCAlfXt7IFBSSVZJTEVHRS5T RVQoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIHBy aXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBkYXRhLnNjaGVt YSkgfX17JSBlbmRmb3IgJX17JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjNfcGx1 cy9zcWwvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90 ZW1wbGF0ZXMvdmlldy9wcGFzLzkuM19wbHVzL3NxbC9wcm9wZXJ0aWVzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjAzMzA0 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwvcHJvcGVydGllcy5zcWwK QEAgLTAsMCArMSw3NCBAQAoreyUgaWYgKHZpZCBhbmQgZGF0bGFzdHN5c29p ZCkgb3Igc2NpZCAlfQorU0VMRUNUCisgICAgYy5vaWQsCisgICAgYy54bWlu LAorICAgIGMucmVsa2luZCwKKyAgICBkZXNjcmlwdGlvbiwKKyAgICAoQ0FT RSBXSEVOIGxlbmd0aChzcGMuc3BjbmFtZSkgPiAwIFRIRU4gc3BjLnNwY25h bWUgRUxTRSAncGdfZGVmYXVsdCcgRU5EKSBhcyBzcGNuYW1lLAorICAgIGMu cmVsbmFtZSBBUyBuYW1lLAorICAgIG5zcC5uc3BuYW1lIEFTIHNjaGVtYSwK KyAgICBjLnJlbHRhYmxlc3BhY2UgQVMgc3Bjb2lkLAorICAgIGMucmVsaXNw b3B1bGF0ZWQgQVMgaXNwb3B1bGF0ZWQsCisgICAgcGdfZ2V0X3VzZXJieWlk KGMucmVsb3duZXIpIEFTIG93bmVyLAorICAgIGFycmF5X3RvX3N0cmluZyhj LnJlbGFjbDo6dGV4dFtdLCAnLCAnKSBBUyBhY2wsCisgICAgcGdfZ2V0X3Zp ZXdkZWYoYy5vaWQsIHRydWUpIEFTIGRlZmluaXRpb24sCisgICAgeyMgPT09 PT0gQ2hlY2tzIGlmIGl0IGlzIHN5c3RlbSB2aWV3ID09PT09ICN9CisgICAg eyUgaWYgdmlkIGFuZCBkYXRsYXN0c3lzb2lkICV9CisgICAgQ0FTRSBXSEVO IHt7dmlkfX0gPD0ge3tkYXRsYXN0c3lzb2lkfX0gVEhFTiBUcnVlIEVMU0Ug RmFsc2UgRU5EIEFTIHN5c3RlbV92aWV3LAorICAgIHslIGVuZGlmICV9Ciso U0VMRUNUCisgICAgYXJyYXlfYWdnKGxhYmVsKQorRlJPTQorICAgIHBnX3Nl Y2xhYmVscyBzbDEKK1dIRVJFCisgICAgc2wxLm9iam9pZD1jLm9pZCBBTkQg c2wxLm9ianN1YmlkPTApIEFTIGxhYmVscywKKyhTRUxFQ1QKKyAgICBhcnJh eV9hZ2cocHJvdmlkZXIpCitGUk9NCisgICAgcGdfc2VjbGFiZWxzIHNsMgor V0hFUkUKKyAgICBzbDIub2Jqb2lkPWMub2lkIEFORCBzbDIub2Jqc3ViaWQ9 MCkgQVMgcHJvdmlkZXJzLAorICAgIChzdWJzdHJpbmcoYXJyYXlfdG9fc3Ry aW5nKGMucmVsb3B0aW9ucywgJywnKQorICAgICAgICBGUk9NICdzZWN1cml0 eV9iYXJyaWVyPShbYS16fDAtOV0qKScpKTo6Ym9vbGVhbiBBUyBzZWN1cml0 eV9iYXJyaWVyCitGUk9NIHBnX2NsYXNzIGMKK0xFRlQgT1VURVIgSk9JTiBw Z19uYW1lc3BhY2UgbnNwIG9uIG5zcC5vaWQgPSBjLnJlbG5hbWVzcGFjZQor TEVGVCBPVVRFUiBKT0lOIHBnX3RhYmxlc3BhY2Ugc3BjIG9uIHNwYy5vaWQ9 Yy5yZWx0YWJsZXNwYWNlCitMRUZUIE9VVEVSIEpPSU4gcGdfZGVzY3JpcHRp b24gZGVzIE9OIChkZXMub2Jqb2lkPWMub2lkIGFuZCBkZXMub2Jqc3ViaWQ9 MCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19jbGFzcyc6OnJlZ2NsYXNzKQorTEVG VCBPVVRFUiBKT0lOIHBnX2NsYXNzIHRzdCBPTiB0c3Qub2lkID0gYy5yZWx0 b2FzdHJlbGlkCisgICAgV0hFUkUgKChjLnJlbGhhc3J1bGVzIEFORCAoRVhJ U1RTICgKKyAgICAgICAgU0VMRUNUCisgICAgICAgICAgICByLnJ1bGVuYW1l CisgICAgICAgIEZST00KKyAgICAgICAgICAgIHBnX3Jld3JpdGUgcgorICAg ICAgICBXSEVSRQorICAgICAgICAgICAgKChyLmV2X2NsYXNzID0gYy5vaWQp CisgICAgICAgICAgICAgICAgQU5EIChicGNoYXIoci5ldl90eXBlKSA9ICcx Jzo6YnBjaGFyKSkgKSkpCisgICAgICAgICAgICBBTkQgKGMucmVsa2luZCA9 ICd2Jzo6Y2hhcikKKyAgICAgICAgICApCit7JSBpZiAodmlkIGFuZCBkYXRs YXN0c3lzb2lkKSAlfQorICAgIEFORCBjLm9pZCA9IHt7dmlkfX06Om9pZAor eyUgZWxpZiBzY2lkICV9CisgICAgQU5EIGMucmVsbmFtZXNwYWNlID0ge3tz Y2lkfX06Om9pZAorT1JERVIgQlkKKyAgICBjLnJlbG5hbWUKK3slIGVuZGlm ICV9CisKK3slIGVsaWYgdHlwZSA9PSAncm9sZXMnICV9CitTRUxFQ1QKKyAg ICBwci5yb2xuYW1lCitGUk9NCisgICAgcGdfcm9sZXMgcHIKK1dIRVJFCisg ICAgcHIucm9sY2FubG9naW4KK09SREVSIEJZCisgICAgcHIucm9sbmFtZQor Cit7JSBlbGlmIHR5cGUgPT0gJ3NjaGVtYXMnICV9CitTRUxFQ1QKKyAgICBu c3AubnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFjZSBuc3AKK1dIRVJF CisgICAgKG5zcC5uc3BuYW1lIE5PVCBMSUtFIEUncGdcXF8lJworICAgICAg ICBBTkQgbnNwLm5zcG5hbWUgIT0gJ2luZm9ybWF0aW9uX3NjaGVtYScpCit7 JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwvdXBkYXRlLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4z X3BsdXMvc3FsL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMDJkOGYzNwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4zX3BsdXMv c3FsL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSw3NSBAQAoreyMgPT09PT09PT09 PT09PT09PT09PT09PT09PT09PSBVcGRhdGUgVmlldyA9PT09PT09PT09PT09 PT09PT09PT09PT09ICN9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5t YWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zY2hl bWFzL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaWYg ZGF0YSAlfQoreyUgc2V0IHZpZXdfbmFtZSA9IGRhdGEubmFtZSBpZiBkYXRh Lm5hbWUgZWxzZSBvX2RhdGEubmFtZSAlfQoreyUgc2V0IHZpZXdfc2NoZW1h ID0gZGF0YS5zY2hlbWEgaWYgZGF0YS5zY2hlbWEgZWxzZSBvX2RhdGEuc2No ZW1hICV9Cit7JSBzZXQgZGVmID0gZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgn OycpIGlmIGRhdGEuZGVmaW5pdGlvbiAlfQoreyUgaWYgZGF0YS5uYW1lIGFu ZCBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FMVEVSIFZJRVcge3sg Y29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIG9fZGF0YS5uYW1lKSB9fQor ICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsK K3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLnNjaGVtYSBhbmQgZGF0YS5zY2hl bWEgIT0gb19kYXRhLnNjaGVtYSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0 SWRlbnQob19kYXRhLnNjaGVtYSwgdmlld19uYW1lICkgfX0KKyAgICBTRVQg U0NIRU1BIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSkgfX07Cit7JSBl bmRpZiAlfQoreyUgaWYgZGF0YS5vd25lciBhbmQgZGF0YS5vd25lciAhPSBv X2RhdGEub3duZXIgJX0KK0FMVEVSIFRBQkxFIHt7IGNvbm58cXRJZGVudCh2 aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIE9XTkVSIFRPIHt7IGNv bm58cXRJZGVudChkYXRhLm93bmVyKSB9fTsKK3slIGVuZGlmICV9Cit7JSBp ZiBkZWYgYW5kIGRlZiAhPSBvX2RhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsn KSAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQo dmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KK3slIGlmIChkYXRhLnNlY3Vy aXR5X2JhcnJpZXIgYW5kIGRhdGEuc2VjdXJpdHlfYmFycmllciAhPSBvX2Rh dGEuc2VjdXJpdHlfYmFycmllcikgJX0KKyAgICBXSVRIICh7JSBpZiBkYXRh LnNlY3VyaXR5X2JhcnJpZXIgJX1zZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEu c2VjdXJpdHlfYmFycmllcnxsb3dlciB9fXslIGVuZGlmICV9KQoreyUgZW5k aWYgJX0KKyAgICBBU3t7IGRlZiB9fTsKK3slIGVsc2UgJX0KK3slIGlmIChk YXRhLnNlY3VyaXR5X2JhcnJpZXIgaXMgZGVmaW5lZCBhbmQgZGF0YS5zZWN1 cml0eV9iYXJyaWVyfGxvd2VyICE9ICBvX2RhdGEuc2VjdXJpdHlfYmFycmll cnxsb3dlcikgJX0KK0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdf c2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAgU0VUIChzZWN1cml0eV9iYXJy aWVyPXt7IGRhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dlciB9fSk7Cit7JSBl bmRpZiAlfQoreyUgZW5kaWYgJX0KKworeyUgaWYgZGF0YS5jb21tZW50IGFu ZCBkYXRhLmNvbW1lbnQgIT0gb19kYXRhLmNvbW1lbnQgJX0KK0NPTU1FTlQg T04gVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFt ZSkgfX0KKyAgICBJUyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19Owor eyUgZW5kaWYgJX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwg Y2hhbmdlIHByaXZpbGVnZXMgI30KK3slIGlmIGRhdGEuZGF0YWNsICV9Cit7 JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2 IGluIGRhdGEuZGF0YWNsLmRlbGV0ZWQgJX0KK3t7IFBSSVZJTEVHRS5VTlNF VEFMTChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwg ZGF0YS5zY2hlbWEpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7 JSBpZiAnY2hhbmdlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2 IGluIGRhdGEuZGF0YWNsLmNoYW5nZWQgJX0KK3t7IFBSSVZJTEVHRS5VTlNF VEFMTChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwg ZGF0YS5zY2hlbWEpIH19Cit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdUQUJM RScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwcml2LndpdGhvdXRfZ3Jh bnQsIHByaXYud2l0aF9ncmFudCwgZGF0YS5zY2hlbWEpIH19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEuZGF0 YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5hZGRlZCAlfQor e3sgUFJJVklMRUdFLlNFVChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUs IGRhdGEubmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3Jh bnQsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAl fQoreyUgZW5kaWYgJX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdp bGwgY2hhbmdlIFNlY3VyaXR5IExhYmVsICN9Cit7JSBpZiBkYXRhLnNlY2xh YmVscyBpcyBub3Qgbm9uZSBhbmQgZGF0YS5zZWNsYWJlbHN8bGVuZ3RoID4g MCAlfQoreyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7 JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVs ZXRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVs ZXRlZCAlfQore3sgU0VDTEFCTEUuRFJPUChjb25uLCAnVklFVycsIGRhdGEu bmFtZSwgci5wcm92aWRlcikgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYg JX0KK3slIGlmICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMu YWRkZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFk ZGVkICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnVklFVycsIGRhdGEu bmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCkgfX0KK3slIGVu ZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNs YWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3sl IGZvciByIGluIHNlY2xhYmVscy5jaGFuZ2VkICV9Cit7eyBTRUNMQUJMRS5B UFBMWShjb25uLCAnVklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5z ZWN1cml0eV9sYWJlbCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0K K3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjNfcGx1cy9z cWwvdmlld19pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0 ZXMvdmlldy9wcGFzLzkuM19wbHVzL3NxbC92aWV3X2lkLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGZmMDRlCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXcvcHBhcy85LjNfcGx1cy9zcWwvdmlld19pZC5zcWwKQEAgLTAsMCArMSw0 IEBACit7IyBCZWxvdyB3aWxsIHByb3ZpZGUgdmlldyBpZCBmb3IgbmV3bHkg Y3JlYXRlZCB2aWV3ICN9Cit7JSBpZiBkYXRhICV9CitTRUxFQ1QgYy5vaWQg RlJPTSBwZ19jbGFzcyBjIFdIRVJFIGMucmVsbmFtZSA9ICd7eyBkYXRhLm5h bWUgfX0nOworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS40X3BsdXMvc3FsL2Fj bC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9w cGFzLzkuNF9wbHVzL3NxbC9hY2wuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjdkNzkxZjUKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuNF9w bHVzL3NxbC9hY2wuc3FsCkBAIC0wLDAgKzEsMzkgQEAKK3sjID09PT09PT09 PT09PT09PT09PT09PT09PT09PT0gR2V0IEFDTHMgPT09PT09PT09PT09PT09 PT09PT09PT09PSAjfQoreyUgaWYgdmlkICV9CitTRUxFQ1QKKyAgICAnZGF0 YWNsJyBhcyBkZWZ0eXBlLAorICAgIENPQUxFU0NFKGd0LnJvbG5hbWUsICdw dWJsaWMnKSBncmFudGVlLAorICAgIGcucm9sbmFtZSBncmFudG9yLAorICAg IGFycmF5X2FnZyhwcml2aWxlZ2VfdHlwZSkgYXMgcHJpdmlsZWdlcywKKyAg ICBhcnJheV9hZ2coaXNfZ3JhbnRhYmxlKSBhcyBncmFudGFibGUKK0ZST00K KyAgICAoU0VMRUNUCisgICAgICAgIGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBk LmlzX2dyYW50YWJsZSwKKyAgICAgICAgQ0FTRSBkLnByaXZpbGVnZV90eXBl CisgICAgICAgIFdIRU4gJ0RFTEVURScgVEhFTiAnZCcKKyAgICAgICAgV0hF TiAnSU5TRVJUJyBUSEVOICdhJworICAgICAgICBXSEVOICdSRUZFUkVOQ0VT JyBUSEVOICd4JworICAgICAgICBXSEVOICdTRUxFQ1QnIFRIRU4gJ3InCisg ICAgICAgIFdIRU4gJ1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4g J1VQREFURScgVEhFTiAndycKKyAgICAgICAgV0hFTiAnVFJVTkNBVEUnIFRI RU4gJ0QnCisgICAgICAgIEVMU0UgJ1VOS05PV04nCisgICAgICAgIEVORCBB UyBwcml2aWxlZ2VfdHlwZQorICAgIEZST00KKyAgICAgICAgKFNFTEVDVAor ICAgICAgICAgICAgcmVsYWNsCisgICAgICAgICBGUk9NCisgICAgICAgICAg ICBwZ19jbGFzcyBjbAorICAgICAgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3No ZGVzY3JpcHRpb24gZGVzY3IgT04KKyAgICAgICAgICAgIChjbC5vaWQ9ZGVz Y3Iub2Jqb2lkIEFORCBkZXNjci5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdj bGFzcykKKyAgICAgICAgIFdIRVJFCisgICAgICAgICAgICBjbC5vaWQgPSB7 eyB2aWQgfX06Ok9JRCBBTkQgcmVsa2luZCA9ICd2JworICAgICAgICApIGFj bCwKKyAgICAgICAgYWNsZXhwbG9kZShyZWxhY2wpIGQKKyAgICApIGQKK0xF RlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9 IGcub2lkKQorTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZ3QgT04g KGQuZ3JhbnRlZSA9IGd0Lm9pZCkKK0dST1VQIEJZCisgICAgZy5yb2xuYW1l LAorICAgIGd0LnJvbG5hbWUKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuNF9w bHVzL3NxbC9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL3ZpZXcvcHBhcy85LjRfcGx1cy9zcWwvY3JlYXRlLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDNiNTE5Ci0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVz L3ZpZXcvcHBhcy85LjRfcGx1cy9zcWwvY3JlYXRlLnNxbApAQCAtMCwwICsx LDIyIEBACit7Iz09PT09PT09PT09PT09PT09PT09PT09PT09PT1DcmVhdGUg bmV3IHZpZXc9PT09PT09PT09PT09PT09PT09PT09PT09I30KK3slIGlmIGRp c3BsYXlfY29tbWVudHMgJX0KKy0tIFZpZXc6IHt7IGNvbm58cXRJZGVudChk YXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorCistLSBEUk9QIFZJRVcge3sg Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19OworCit7 JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5uYW1lIGFuZCBkYXRhLnNjaGVtYSBh bmQgZGF0YS5kZWZpbml0aW9uICV9CitDUkVBVEUgT1IgUkVQTEFDRSBWSUVX IHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fXsl IGlmICgoZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9u Lmxvd2VyKCkgIT0gJ25vJykgb3IgZGF0YS5zZWN1cml0eV9iYXJyaWVyKSAl fXt7ICdcbicgfX1XSVRIICgKK3slIGlmIGRhdGEuY2hlY2tfb3B0aW9uIGFu ZCBkYXRhLmNoZWNrX29wdGlvbi5sb3dlcigpICE9ICdubycgJX0gICAgY2hl Y2tfb3B0aW9uPXt7IGRhdGEuY2hlY2tfb3B0aW9uIH19eyUgZW5kaWYgJX17 eyAnLFxyJyBpZiBkYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19v cHRpb24ubG93ZXIoKSAhPSAnbm8nIGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJp ZXIgfX17JSBpZiBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgJX0gICAgc2VjdXJp dHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXJ8bG93ZXIgfX17 JSBlbmRpZiAlfXt7J1xyJ319CispeyUgZW5kaWYgJX0gQVMKK3t7IGRhdGEu ZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSB9fTsKK3slIGlmIGRhdGEub3duZXIg YW5kIGRhdGEubV92aWV3IGlzIHVuZGVmaW5lZCAlfQorCitBTFRFUiBUQUJM RSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0K KyAgICBPV05FUiBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5vd25lcikgfX07 Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5jb21tZW50ICV9CitDT01NRU5U IE9OIFZJRVcge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5h bWUpIH19CisgICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsK K3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjRfcGx1cy9z cWwvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy92aWV3L3BwYXMvOS40X3BsdXMvc3FsL2RlbGV0ZS5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTUwYmVlYwotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3 L3BwYXMvOS40X3BsdXMvc3FsL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwxMyBA QAoreyMgPT09PT09PT09PT09PT09PT09PT09PSBEcm9wL0Nhc2NhZGUgdmll dyBieSBuYW1lID09PT09PT09PT09PT09PT09PT09PSAjfQoreyUgaWYgdmlk ICV9CitTRUxFQ1QKKyAgICBjLnJlbG5hbWUgQVMgbmFtZSwKKyAgICBuc3Au bnNwbmFtZQorRlJPTQorICAgIHBnX2NsYXNzIGMKK0xFRlQgSk9JTiBwZ19u YW1lc3BhY2UgbnNwIE9OIGMucmVsbmFtZXNwYWNlID0gbnNwLm9pZAorV0hF UkUKKyAgICBjLnJlbGZpbGVub2RlID0ge3sgdmlkIH19OworeyUgZWxpZiAo bmFtZSBhbmQgbnNwbmFtZSkgJX0KK0RST1AgVklFVyB7e25zcG5hbWV9fS57 eyBjb25ufHF0SWRlbnQobmFtZSkgfX0geyUgaWYgY2FzY2FkZSAlfSBDQVND QURFIHslIGVuZGlmICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjRfcGx1 cy9zcWwvZ2V0X3NjaGVtYS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90 ZW1wbGF0ZXMvdmlldy9wcGFzLzkuNF9wbHVzL3NxbC9nZXRfc2NoZW1hLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjdkNGI5 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL3ZpZXcvcHBhcy85LjRfcGx1cy9zcWwvZ2V0X3NjaGVtYS5zcWwK QEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBuc3BuYW1lCitGUk9NCisg ICAgcGdfbmFtZXNwYWNlCitXSEVSRQorICAgIG9pZCA9IHt7IHNjaWQgfX06 Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3L3BwYXMvOS40X3BsdXMvc3FsL2dyYW50LnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS40X3BsdXMv c3FsL2dyYW50LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi41OWEzMTBmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjRfcGx1cy9zcWwvZ3Jh bnQuc3FsCkBAIC0wLDAgKzEsNiBAQAoreyMgPT09PT0gR3JhbnQgUGVybWlz c2lvbnMgdG8gVXNlciBSb2xlIG9uIFZpZXdzL1RhYmxlcyA9PT09PSAjfQor eyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJM RSAlfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2NoZW1hcy9wcml2aWxlZ2UubWFj cm9zJyBhcyBQUklWSUxFR0UgJX0KK3sjID09PT09IFdlIHdpbGwgZ2VuZXJh dGUgU2VjdXJpdHkgTGFiZWwgU1FMIHVzaW5nIG1hY3JvID09PT09ICN9Cit7 JSBpZiBkYXRhLnNlY2xhYmVscyAlfXslIGZvciByIGluIGRhdGEuc2VjbGFi ZWxzICV9e3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5h bWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19eyUgZW5kZm9y ICV9eyUgZW5kaWYgJX17JSBpZiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHBy aXYgaW4gZGF0YS5kYXRhY2wgJX17eyBQUklWSUxFR0UuU0VUKGNvbm4sICdU QUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwcml2LndpdGhvdXRf Z3JhbnQsIHByaXYud2l0aF9ncmFudCwgZGF0YS5zY2hlbWEpIH19eyUgZW5k Zm9yICV9eyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS40X3BsdXMvc3FsL3Byb3Bl cnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXcvcHBhcy85LjRfcGx1cy9zcWwvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2NkOTU3ZgotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3 L3BwYXMvOS40X3BsdXMvc3FsL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEs NzcgQEAKK3sjID09PT09PT09PT09PT09PT09PT09PT09PT09IEZldGNoIFZp ZXcgUHJvcGVydGllcyA9PT09PT09PT09PT09PT09PT09PT09PT09ICN9Cit7 JSBpZiAodmlkIGFuZCBkYXRsYXN0c3lzb2lkKSBvciBzY2lkICV9CitTRUxF Q1QKKyAgICBjLm9pZCwKKyAgICBjLnhtaW4sCisgICAgYy5yZWxraW5kLAor ICAgIGRlc2NyaXB0aW9uLAorICAgIChDQVNFIFdIRU4gbGVuZ3RoKHNwYy5z cGNuYW1lKSA+IDAgVEhFTiBzcGMuc3BjbmFtZSBFTFNFICdwZ19kZWZhdWx0 JyBFTkQpIGFzIHNwY25hbWUsCisgICAgYy5yZWxuYW1lIEFTIG5hbWUsCisg ICAgYy5yZWx0YWJsZXNwYWNlIEFTIHNwY29pZCwKKyAgICBuc3AubnNwbmFt ZSBBUyBzY2hlbWEsCisgICAgYy5yZWxpc3BvcHVsYXRlZCBBUyBpc3BvcHVs YXRlZCwKKyAgICBwZ19nZXRfdXNlcmJ5aWQoYy5yZWxvd25lcikgQVMgb3du ZXIsCisgICAgYXJyYXlfdG9fc3RyaW5nKGMucmVsYWNsOjp0ZXh0W10sICcs ICcpIEFTIGFjbCwKKyAgICBwZ19nZXRfdmlld2RlZihjLm9pZCwgdHJ1ZSkg QVMgZGVmaW5pdGlvbiwKKyAgICB7IyA9PT09PSBDaGVja3MgaWYgaXQgaXMg c3lzdGVtIHZpZXcgPT09PT0gI30KKyAgICB7JSBpZiB2aWQgYW5kIGRhdGxh c3RzeXNvaWQgJX0KKyAgICBDQVNFIFdIRU4ge3t2aWR9fSA8PSB7e2RhdGxh c3RzeXNvaWR9fSBUSEVOIFRydWUgRUxTRSBGYWxzZSBFTkQgQVMgc3lzdGVt X3ZpZXcsCisgICAgeyUgZW5kaWYgJX0KKyhTRUxFQ1QKKyAgICBhcnJheV9h Z2cobGFiZWwpCitGUk9NCisgICAgcGdfc2VjbGFiZWxzIHNsMQorV0hFUkUK KyAgICBzbDEub2Jqb2lkPWMub2lkIEFORCBzbDEub2Jqc3ViaWQ9MCkgQVMg bGFiZWxzLAorKFNFTEVDVAorICAgIGFycmF5X2FnZyhwcm92aWRlcikKK0ZS T00KKyAgICBwZ19zZWNsYWJlbHMgc2wyCitXSEVSRQorICAgIHNsMi5vYmpv aWQ9Yy5vaWQgQU5EIHNsMi5vYmpzdWJpZD0wKSBBUyBwcm92aWRlcnMsCisg ICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcs JykKKyAgICAgICAgRlJPTSAnY2hlY2tfb3B0aW9uPShbYS16XSopJykgQVMg Y2hlY2tfb3B0aW9uLAorICAgIChzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5n KGMucmVsb3B0aW9ucywgJywnKQorICAgICAgICBGUk9NICdzZWN1cml0eV9i YXJyaWVyPShbYS16fDAtOV0qKScpKTo6Ym9vbGVhbiBBUyBzZWN1cml0eV9i YXJyaWVyCitGUk9NIHBnX2NsYXNzIGMKK0xFRlQgT1VURVIgSk9JTiBwZ19u YW1lc3BhY2UgbnNwIG9uIG5zcC5vaWQgPSBjLnJlbG5hbWVzcGFjZQorTEVG VCBPVVRFUiBKT0lOIHBnX3RhYmxlc3BhY2Ugc3BjIG9uIHNwYy5vaWQ9Yy5y ZWx0YWJsZXNwYWNlCitMRUZUIE9VVEVSIEpPSU4gcGdfZGVzY3JpcHRpb24g ZGVzIE9OIChkZXMub2Jqb2lkPWMub2lkIGFuZCBkZXMub2Jqc3ViaWQ9MCBB TkQgZGVzLmNsYXNzb2lkPSdwZ19jbGFzcyc6OnJlZ2NsYXNzKQorTEVGVCBP VVRFUiBKT0lOIHBnX2NsYXNzIHRzdCBPTiB0c3Qub2lkID0gYy5yZWx0b2Fz dHJlbGlkCisgICAgV0hFUkUgKChjLnJlbGhhc3J1bGVzIEFORCAoRVhJU1RT ICgKKyAgICAgICAgU0VMRUNUCisgICAgICAgICAgICByLnJ1bGVuYW1lCisg ICAgICAgIEZST00KKyAgICAgICAgICAgIHBnX3Jld3JpdGUgcgorICAgICAg ICBXSEVSRQorICAgICAgICAgICAgKChyLmV2X2NsYXNzID0gYy5vaWQpCisg ICAgICAgICAgICAgICAgQU5EIChicGNoYXIoci5ldl90eXBlKSA9ICcxJzo6 YnBjaGFyKSkgKSkpCisgICAgICAgICAgICBBTkQgKGMucmVsa2luZCA9ICd2 Jzo6Y2hhcikKKyAgICAgICAgICApCit7JSBpZiAodmlkIGFuZCBkYXRsYXN0 c3lzb2lkKSAlfQorICAgIEFORCBjLm9pZCA9IHt7dmlkfX06Om9pZAoreyUg ZWxpZiBzY2lkICV9CisgICAgQU5EIGMucmVsbmFtZXNwYWNlID0ge3tzY2lk fX06Om9pZAorT1JERVIgQlkKKyAgICBjLnJlbG5hbWUKK3slIGVuZGlmICV9 CisKK3slIGVsaWYgdHlwZSA9PSAncm9sZXMnICV9CitTRUxFQ1QKKyAgICBw ci5yb2xuYW1lCitGUk9NCisgICAgcGdfcm9sZXMgcHIKK1dIRVJFCisgICAg cHIucm9sY2FubG9naW4KK09SREVSIEJZCisgICAgcHIucm9sbmFtZQorCit7 JSBlbGlmIHR5cGUgPT0gJ3NjaGVtYXMnICV9CitTRUxFQ1QKKyAgICBuc3Au bnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFjZSBuc3AKK1dIRVJFCisg ICAgKG5zcC5uc3BuYW1lIE5PVCBMSUtFIEUncGdcXF8lJworICAgICAgICBB TkQgbnNwLm5zcG5hbWUgIT0gJ2luZm9ybWF0aW9uX3NjaGVtYScpCit7JSBl bmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL3ZpZXcvcHBhcy85LjRfcGx1cy9zcWwvdXBkYXRlLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS40X3Bs dXMvc3FsL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uNTYxODNmZAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS40X3BsdXMvc3Fs L3VwZGF0ZS5zcWwKQEAgLTAsMCArMSw4MiBAQAoreyMgPT09PT09PT09PT09 PT09PT09PT09PT09PT09PSBVcGRhdGUgVmlldyA9PT09PT09PT09PT09PT09 PT09PT09PT09ICN9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNy b3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zY2hlbWFz L3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaWYgZGF0 YSAlfQoreyUgc2V0IHZpZXdfbmFtZSA9IGRhdGEubmFtZSBpZiBkYXRhLm5h bWUgZWxzZSBvX2RhdGEubmFtZSAlfQoreyUgc2V0IHZpZXdfc2NoZW1hID0g ZGF0YS5zY2hlbWEgaWYgZGF0YS5zY2hlbWEgZWxzZSBvX2RhdGEuc2NoZW1h ICV9Cit7JSBzZXQgZGVmID0gZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgnOycp IGlmIGRhdGEuZGVmaW5pdGlvbiAlfQoreyUgaWYgZGF0YS5uYW1lIGFuZCBk YXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FMVEVSIFZJRVcge3sgY29u bnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIG9fZGF0YS5uYW1lKSB9fQorICAg IFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3sl IGVuZGlmICV9Cit7JSBpZiBkYXRhLnNjaGVtYSBhbmQgZGF0YS5zY2hlbWEg IT0gb19kYXRhLnNjaGVtYSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRl bnQob19kYXRhLnNjaGVtYSwgdmlld19uYW1lICkgfX0KKyAgICBTRVQgU0NI RU1BIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSkgfX07Cit7JSBlbmRp ZiAlfQoreyUgaWYgZGF0YS5vd25lciBhbmQgZGF0YS5vd25lciAhPSBvX2Rh dGEub3duZXIgJX0KK0FMVEVSIFRBQkxFIHt7IGNvbm58cXRJZGVudCh2aWV3 X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIE9XTkVSIFRPIHt7IGNvbm58 cXRJZGVudChkYXRhLm93bmVyKSB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBk ZWYgYW5kIGRlZiAhPSBvX2RhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSAl fQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQodmll d19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KK3slIGlmIChkYXRhLmNoZWNrX29w dGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gb19kYXRhLmNoZWNrX29w dGlvbikKKyAgICBvciAoZGF0YS5zZWN1cml0eV9iYXJyaWVyIGFuZCBkYXRh LnNlY3VyaXR5X2JhcnJpZXIgIT0gb19kYXRhLnNlY3VyaXR5X2JhcnJpZXIp ICV9CisgICAgV0lUSCAoeyUgaWYgKGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBk YXRhLmNoZWNrX29wdGlvbiAhPSAnbm8nKSAlfWNoZWNrX29wdGlvbj17eyBk YXRhLmNoZWNrX29wdGlvbiB9fXslIGVuZGlmICV9e3snLCAnIGlmIGRhdGEu Y2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAhPSAnbm8nIGFu ZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgfX17JSBpZiBkYXRhLnNlY3VyaXR5 X2JhcnJpZXIgJX1zZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEuc2VjdXJpdHlf YmFycmllcnxsb3dlciB9fXslIGVuZGlmICV9KQoreyUgZW5kaWYgJX0KKyAg ICBBU3t7IGRlZiB9fTsKK3slIGVsc2UgJX0KK3slIGlmIChkYXRhLnNlY3Vy aXR5X2JhcnJpZXIgaXMgZGVmaW5lZCBhbmQgZGF0YS5zZWN1cml0eV9iYXJy aWVyfGxvd2VyICE9ICBvX2RhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dlcikg JX0KK0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2 aWV3X25hbWUpIH19CisgICAgU0VUIChzZWN1cml0eV9iYXJyaWVyPXt7IGRh dGEuc2VjdXJpdHlfYmFycmllcnxsb3dlciB9fSk7Cit7JSBlbmRpZiAlfQor eyUgaWYgKGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlv biAhPSBvX2RhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlv biAhPSAnbm8nKSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQodmll d19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBTRVQgKGNoZWNrX29wdGlv bj17eyBkYXRhLmNoZWNrX29wdGlvbiB9fSk7Cit7JSBlbGlmIChkYXRhLmNo ZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gb19kYXRhLmNo ZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gPT0gJ25vJykgJX0K K0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3 X25hbWUpIH19IFJFU0VUIChjaGVja19vcHRpb24pOworeyUgZW5kaWYgJX0K K3slIGVuZGlmICV9CisKK3slIGlmIGRhdGEuY29tbWVudCBhbmQgZGF0YS5j b21tZW50ICE9IG9fZGF0YS5jb21tZW50ICV9CitDT01NRU5UIE9OIFZJRVcg e3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19Cisg ICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlm ICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBw cml2aWxlZ2VzICN9Cit7JSBpZiBkYXRhLmRhdGFjbCAlfQoreyUgaWYgJ2Rl bGV0ZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRh LmRhdGFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29u biwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2No ZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2No YW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRh LmRhdGFjbC5jaGFuZ2VkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29u biwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2No ZW1hKSB9fQore3sgUFJJVklMRUdFLlNFVChjb25uLCAnVEFCTEUnLCBwcml2 LmdyYW50ZWUsIGRhdGEubmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2 LndpdGhfZ3JhbnQsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7 JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmRhdGFjbCAlfQor eyUgZm9yIHByaXYgaW4gZGF0YS5kYXRhY2wuYWRkZWQgJX0KK3t7IFBSSVZJ TEVHRS5TRVQoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5h bWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBkYXRh LnNjaGVtYSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVu ZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5n ZSBTZWN1cml0eSBMYWJlbCAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgaXMg bm90IG5vbmUgYW5kIGRhdGEuc2VjbGFiZWxzfGxlbmd0aCA+IDAgJX0KK3sl IHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgJ2Rl bGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8bGVu Z3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQgJX0K K3t7IFNFQ0xBQkxFLkRST1AoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIu cHJvdmlkZXIpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBp ZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxl bmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQor e3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIu cHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFu ZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBp biBzZWNsYWJlbHMuY2hhbmdlZCAlfQore3sgU0VDTEFCTEUuQVBQTFkoY29u biwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlf bGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRp ZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS40X3BsdXMvc3FsL3ZpZXdf aWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcv cHBhcy85LjRfcGx1cy9zcWwvdmlld19pZC5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uZWYyNzU5NAotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMv OS40X3BsdXMvc3FsL3ZpZXdfaWQuc3FsCkBAIC0wLDAgKzEsNCBAQAoreyMg PT09PT0gQmVsb3cgd2lsbCBwcm92aWRlIHZpZXcgaWQgZm9yIGxhc3QgY3Jl YXRlZCB2aWV3ID09PT09ICN9Cit7JSBpZiBkYXRhICV9CitTRUxFQ1QgYy5v aWQgRlJPTSBwZ19jbGFzcyBjIFdIRVJFIGMucmVsbmFtZSA9ICd7eyBkYXRh Lm5hbWUgfX0nOworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL3N0YXRpYy9qcy9iYWNrZm9ybS5wZ2FkbWluLmpzIGIvd2ViL3BnYWRt aW4vc3RhdGljL2pzL2JhY2tmb3JtLnBnYWRtaW4uanMKaW5kZXggNGE4MTQx MS4uZTAwNTU3MCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pz L2JhY2tmb3JtLnBnYWRtaW4uanMKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGlj L2pzL2JhY2tmb3JtLnBnYWRtaW4uanMKQEAgLTE2NjUsMTMgKzE2NjUsMTgg QEAKICAgICAgICAgICAgICAgKF8uaXNVbmRlZmluZWQocy5taW5fdmVyc2lv bikgPyB0cnVlIDoKICAgICAgICAgICAgICAgIChzZXJ2ZXJfaW5mby52ZXJz aW9uID49IHMubWluX3ZlcnNpb24pKSAmJgogICAgICAgICAgICAgICAoXy5p c1VuZGVmaW5lZChzLm1heF92ZXJzaW9uKSA/IHRydWUgOgotICAgICAgICAg ICAgICAgKHNlcnZlcl9pbmZvLnZlcnNpb24gPD0gcy5tYXhfdmVyc2lvbikp KSk7CisgICAgICAgICAgICAgICAoc2VydmVyX2luZm8udmVyc2lvbiA8PSBz Lm1heF92ZXJzaW9uKSkpKSwKKyAgICAgICAgICAgICAgdmlzaWJsZSA9IHRy dWU7CisKKyAgICAgICAgICBpZiAocy5tb2RlICYmIF8uaXNPYmplY3Qocy5t b2RlKSkKKyAgICAgICAgICAgIHZpc2libGUgPSAoXy5pbmRleE9mKHMubW9k ZSwgbW9kZSkgPiAtMSk7CisgICAgICAgICAgaWYgKHZpc2libGUpCisgICAg ICAgICAgICB2aXNpYmxlID0gZXZhbEFTRnVuYyhzLnZpc2libGUpOworCiAg ICAgICAgICAgZ3JvdXBJbmZvW3MuaWRdID0gewogICAgICAgICAgICAgbGFi ZWw6IHMubGFiZWwgfHwgcy5pZCwKICAgICAgICAgICAgIHZlcnNpb25fY29t cGF0aWJsZTogdmVyX2luX2xpbWl0LAotICAgICAgICAgICAgdmlzaWJsZTog IXMubW9kZSB8fCAoCi0gICAgICAgICAgICAgIHMgJiYgcy5tb2RlICYmIF8u aXNPYmplY3Qocy5tb2RlKSAmJgotICAgICAgICAgICAgICAgIF8uaW5kZXhP ZihzLm1vZGUsIG1vZGUpICE9IC0xKSAmJiBldmFsQVNGdW5jKHMudmlzaWJs ZSkgfHwgdHJ1ZQorICAgICAgICAgICAgdmlzaWJsZTogdmlzaWJsZQogICAg ICAgICAgIH07CiAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0x NzY4LDkgKzE3NzMsMTMgQEAKICAgICAgIC8vIENyZWF0ZSBhbiBhcnJheSBm cm9tIHRoZSBkaWN0aW9uYXJ5IHdpdGggcHJvcGVyIHJlcXVpcmVkCiAgICAg ICAvLyBzdHJ1Y3R1cmUuCiAgICAgICBfLmVhY2goZ3JvdXBzLCBmdW5jdGlv bih2YWwsIGtleSkgewotICAgICAgICBmaWVsZHMucHVzaChfLmV4dGVuZCh7 Ci0gICAgICAgICAgbGFiZWw6IGtleSwgZmllbGRzOiB2YWwKLSAgICAgICAg fSwgKGdyb3VwSW5mb1trZXldIHx8IHt2ZXJzaW9uX2NvbXBhdGlibGU6IHRy dWUsIHZpc2libGU6IHRydWV9KSkpOworICAgICAgICBmaWVsZHMucHVzaCgK KyAgICAgICAgICBfLmV4dGVuZCgKKyAgICAgICAgICAgIF8uZGVmYXVsdHMo CisgICAgICAgICAgICAgIGdyb3VwSW5mb1trZXldIHx8IHtsYWJlbDoga2V5 fSwKKyAgICAgICAgICAgICAge3ZlcnNpb25fY29tcGF0aWJsZTogdHJ1ZSwg dmlzaWJsZTogdHJ1ZX0KKyAgICAgICAgICAgICksIHtmaWVsZHM6IHZhbH0p CisgICAgICAgICAgKTsKICAgICAgIH0pOwogICAgIH0KIAo= --001a114420221d031b053303c671 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 --001a114420221d031b053303c671--