Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b2xWm-0006yQ-37 for pgadmin-hackers@arkaria.postgresql.org; Wed, 18 May 2016 09:12:28 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1b2xWk-0001Hl-Q4 for pgadmin-hackers@arkaria.postgresql.org; Wed, 18 May 2016 09:12:26 +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 1b2xWU-00012v-71 for pgadmin-hackers@postgresql.org; Wed, 18 May 2016 09:12:10 +0000 Received: from mail-oi0-x234.google.com ([2607:f8b0:4003:c06::234]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1b2xWN-000152-KG for pgadmin-hackers@postgresql.org; Wed, 18 May 2016 09:12:09 +0000 Received: by mail-oi0-x234.google.com with SMTP id v145so66662774oie.0 for ; Wed, 18 May 2016 02:12:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to; bh=K6l351w2UE67zB2H/CnghenQXfgMSTKTN2LP/U7syUM=; b=pCRMlEdjq79di4Y0UaiNukjYOA0LHSV+7JL3eypZXmQixzjZgWkip5ohe3Co6Cjwiy I/0zgHLa6i40uSOZxkghIZpWw9LtJPYQiCUf8CEx2h/hvFzPDIcCLQbm90cCYHtbl5sy d45SE/7R6gr4aH/7q/UBZUXj/KAMJu7cbtYnbHzQZeDDFQtTgBvdzkzYz3f2EN/dpLxc K5lunFJXiMXxeK6Aa9T5BU/0FqpEr7Kem6owsyXoErnSw69euBBive5lKxb1lQKjZQNc PAl8RfAqL8wMykVU1CYE9csSdrgxqXpsLgUq/y25bM5UG3cLimFFchAVqTORLD3wnhGC oI0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to; bh=K6l351w2UE67zB2H/CnghenQXfgMSTKTN2LP/U7syUM=; b=O8v31lUZZMPAnfRd2e88exjutMM5seJPS7lgv76+2g7mq+oWjDGiahqn4gMU1dqWBW mfRqHfPjmF2m8jnp8WKd7g5VWJUUEWw37vrOKMXyWtuXMZy+kXNNOHRCYJ2QGBMkQin8 0Bsmx7TmKQrjrK2obt0ejUNpAODr5bGUnwwYXfBH/KFLxIqE2wVLkMvyKeo/LyIV8OP6 urTnRLLfUTP2znhVndnFzKnyPcqgv3CdGVuDQPAMqcmTqeFQQ8nUL3pdaSISDQ3OpnZZ WtNNJEHZi3Q60gp8WA3gVVsXMz9TH+UJYAHA/polwN+izkD239CEwO9vpPMNXXhqJpTl 2XEg== X-Gm-Message-State: AOPr4FXvVtjrl/TK3BPTPhXu4w+FYjuli4f6Oe4pif7XMia9zhtGlnF6OPRbYYLnVhh/l4aRLa9WaepAXkIRK1CA MIME-Version: 1.0 X-Received: by 10.157.20.217 with SMTP id r25mr3978149otr.72.1463562721624; Wed, 18 May 2016 02:12:01 -0700 (PDT) Received: by 10.157.5.172 with HTTP; Wed, 18 May 2016 02:12:01 -0700 (PDT) In-Reply-To: References: Date: Wed, 18 May 2016 14:42:01 +0530 Message-ID: Subject: Re: [PATCH] Tables node (pgAdmin4) From: Harshal Dhumal To: pgadmin-hackers , Sanket Mehta Content-Type: multipart/mixed; boundary=001a113e2a76214a0d05331a40ce 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 --001a113e2a76214a0d05331a40ce Content-Type: multipart/alternative; boundary=001a113e2a76214a0905331a40cc --001a113e2a76214a0905331a40cc Content-Type: text/plain; charset=UTF-8 Hi, PFA patch for table node (version 8.1). apply this patch on version 7 patch. Not all issue are fixed in this patch. Murtuza will be sending version 8.2 witch will have resolution for remaining issues. Apply version 8.2 patch on version 8.1 -- *Harshal Dhumal* *Software Engineer * EenterpriseDB On Tue, May 17, 2016 at 10:12 PM, Sanket Mehta < sanket.mehta@enterprisedb.com> wrote: > Hi Harshal, > > > Below are my review comments: > > I got below warning when I tried to apply the patch for table node as > mentioned below: > > Table creation: > > - Trailing white spaces warnings > > $ git apply > /projects/patches/pgadmin4/Table/table_14_May_V6.patch > > /projects/patches/pgadmin4/Table/table_14_May_V6.patch:6008: trailing > whitespace. > return false; > > /projects/patches/pgadmin4/Table/table_14_May_V6.patch:6016: trailing > whitespace. > return false; > warning: 2 lines add whitespace errors. > Fixed (These were introduced due to rules node.) > > - In Table creation dialog, while adding a new primary key, it does > not allow to change the tablespace to empty. (which is not the case in case > of tablespace in table) > > Fixed > > - In Table creation dialog, while adding a new column, data type and > name field must be mandatory. otherwise while clicking on save it gives > below error > > File > "/projects/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py", > line 1319, in _parse_format_columns > c['cltype'] = self._cltype_formatter(c['cltype']) > KeyError: 'cltype > Fixed > > - In Table creation dialog, While adding a new column, in primary > check box is needed to click twice in order to check it. Ideally it should > be checked by only one click. > > This is Backgrid behaviour. > > - In Table creation dialog, While adding a new column, primary key > should not be allowed to added unless user has provided name and data type > for at least one column. > > Fixed > > - currently if user has clicked on add column button and immediately > click on add primary key button, it will add a row in primary key data grid > > Fixed > > - When delete table/drop cascade is apply on any table, i got a > javascript error as mentioned below > > node.js:94 Uncaught TypeError: self.canDrop.apply is not > a function > Already fixed in other commit. > > - Once the above error generated, every time user tries to open a > context menu by right clicking on any existing table, that same error comes > > Already fixed in other commit. > > - In table creation dialog, if table is inherited from another table, > if a new primary key is added manually there, the create sql will not have > an entry for primary key > > Fixed > > - In table creation dialog, if primary key check box is checked while > adding the row, a new row is added in primary key datagrid but unchecking > the primary key checkbox from column datagrid, does not removes that row > from primary key data grid. > > Fixed. > > - In AutoVacuum tab, if user provides any invalid value to any > parameter, then a error message should be prompted, only background color > change would not tell user to change the value. > > Expected behaviour. > > - In table creation dialog, security label are not being added. > javascript error is coming as mentioned below: > {"success": 0, "info": "", "result": null, "data": null, "errormsg": > "can't adapt type 'Undefined'"} > > Fixed > > - In Table creation dialog, while adding foreign key, in action tab. > if user click on 'x' button in "on update" or "on delete" select2 control, > it gives error "Uncaught SyntaxError: Unexpected end of input" > > Fixed > > - In Table creation dialog, while adding a check constraint, > "validated" button does not work properly > > Fixed. > > - After successfully creation of table, "table name cannot be empty" > error is not getting cleared. > > Not reproducible. > > - In Table creation dialog, if user has added an empty column without > entering its name or type and trying to add check constraint, it will add > an empty constraint > > Expected behaviour (Columns are not mandatory for check constrains) > > - In Table creation dialog, while adding an exclude constraint, for > "character varying" column type, no operators are being listed > > There are no operators for character varying data type. > > - In Table creation dialog, while adding an exclude constraint, below > mentioned error comes if user removes operator class by clicking 'x' on > that control Uncaught TypeError: Cannot read property 'id' of undefined > > TODO > > - In Table creation dialog, SQL is not getting generated for exclude > constraint > > Fixed > > - In Table creation dialog, schema should be prefixed with table name > in "of type" control > > Fixed > > - In Table creation dialog, while adding privileges, it always shows > default privileges even if user has selected different privileges. (This > works fine once user edit the privileges in edit table mode and shows only > those privileges which user selects). Ashesh, please confirm the behaviour. > > Privileges are set correctly. Only it shows in incorrect order. > Table edit mode: > > - If in edit mode, any constraint is already having any comment, then > remove it. It will not create the SQL for the same. > > Fixed > > - Changing Schema will give server error > > This is generic issue for each node. > Column Creation: > > - Save button is enabled by default > - Data type validation is not provided. Save button is enabled just > after providing column name > - Length field limitation is not provided. (i.e. for numeric type, > length should be allowed greater than 1000) > > Exclusion constraint creation: > > - Access method should not be allowed to be empty. (currently by > clicking 'x' will remove the selection in it) > > Access method is optional. > Index creation: > > - No error message for name field when empty > - No error message when column name is not provided while adding a > column in index > - While adding a column if no name is provided, "None" appears in SQL > tab which will give error on OK button click > - when comment is provided while creation, it gives error saying index > does not exists. because schema name is not added before it. > > Rule creation: > > - Name is empty error does not come till user enters something in > definition tab > - DO INSTEAD button does not make any difference to SQL (it works in > edit mode) > > Rule edit mode: > > - Add comment in edit mode, check the SQL in sql tab. Now come back to > general tab and removes comment and check the sql tab again. > SQL for comment is still there with empty string as comment > > Trigger Creation: > > - SQL is not proper when creating a trigger. "()" should be appended > to function name in SQL. > It gives error while creating a trigger > - "+" sign is visible in browser tree in front of trigger. either On > expanding trigger, it should show the trigger function name or that "+" > sign should not appear > > Trigger edit node: > > - On removing comment, nothing happens. No sql is being created. > Comment is still there in properties. > > > > Regards, > Sanket Mehta > Sr Software engineer > Enterprisedb > --001a113e2a76214a0905331a40cc Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

PFA patch for table node (version 8.= 1). apply this patch on version 7 patch. Not all issue are fixed in this pa= tch. Murtuza will be sending version 8.2 witch will have resolution for rem= aining issues. Apply version 8.2 patch on version 8.1

=
--=C2=A0
Harshal Dhumal
Softw= are Engineer=C2=A0




On Tue, May 17, 2016 at 10:12 PM, Sanket Meh= ta <sanket.mehta@enterprisedb.com> wrote:
Hi Harshal,


Below are my review comments:

=C2=A0I got below = warning when I tried to apply the patch for table node as mentioned below:<= /div>

Table creation:
  • =C2=A0Trail= ing white spaces warnings=C2=A0
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 $ git apply /projects/patc= hes/pgadmin4/Table/table_14_May_V6.patch
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /projects/patches/pgadmin4/Ta= ble/table_14_May_V6.patch:6008: trailing whitespace.
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 return false;=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/projects/patches/pgadmin4/Tab= le/table_14_May_V6.patch:6016: trailing whitespace.
=C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 return false;=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0warning: 2 lines add whitespace e= rrors.

Fixed (These were introduced = due to rules node.)
=C2=A0
  • In Table creation dialog, while adding a new primary key,= it does not allow to change the tablespace to empty. (which is not the cas= e in case of tablespace in table)
Fi= xed=C2=A0
  • In Table crea= tion dialog, while adding a new column, data type and name field must be ma= ndatory. otherwise while clicking on save it gives below error
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 File= "/projects/pgadmin4/web/pgadmin/browser/server_groups/servers/databas= es/schemas/tables/__init__.py", line 1319, in _parse_format_columns
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0c['cltype'] =3D self._cltype_formatter(c['cltype'])
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= KeyError: 'cltype
Fixed
=C2= =A0
  • In Table creation d= ialog, While adding a new column, in primary check box is needed to click t= wice in order to check it. Ideally it should be checked by only one click.<= br>
This is Backgrid behaviour.
  • In Table creation dialog, W= hile adding a new column, primary key should not be allowed to added unless= user has provided name and data type for at least one column.
=C2=A0Fixed
  • currently if user has clicked on add column button = and immediately click on add primary key button, it will add a row in prima= ry key data grid
Fixed=C2=A0
  • When delete table/drop cas= cade is apply on any table, i got a javascript error as mentioned below
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0no= de.js:94 Uncaught TypeError: self.canDrop.apply is not a function
Already fixed in other commit.
=C2=A0
  • Once the above error gen= erated, every time user tries to open a context menu by right clicking on a= ny existing table, that same error comes=C2=A0
Already fixed in other commit.
  • In table creation dialog, if table is inherited from ano= ther table, if a new primary key is added manually there, the create sql wi= ll not have an entry for primary key
Fixed=C2=A0
  • In table c= reation dialog, if primary key check box is checked while adding the row, a= new row is added in primary key datagrid but unchecking the primary key ch= eckbox from column datagrid, does not removes that row from primary key dat= a grid.
Fixed.=C2=A0
  • In AutoVacuum tab, if user provide= s any invalid value to any parameter, then a error message should be prompt= ed, only background color change would not tell user to change the value.
Expected =C2=A0behaviour.
  • In table creation dialog, security= label are not being added. javascript error is coming as mentioned below:<= br>=C2=A0=C2=A0{"= ;success": 0, "info": "", "result": null= , "data": null, "errormsg": "can't adapt type = 'Undefined'"}
= =C2=A0Fixed
  • In Table creation dialog,= while adding foreign key, in action tab. if user click on 'x' but= ton in "on update" or "on delete" select2 control, it g= ives error "Uncaught SyntaxError: Unexpected end of input"=
Fixed
  • In Table creation dialog, while adding a check constra= int, "validated" button does not work properly
  • =
Fixed.=C2=A0
  • After successfully creation of table, "table name cannot be= empty" error is not getting cleared.
Not reproducible.=C2=A0
  • In Table creation dialog, if user has added an empty column wit= hout entering its name or type and trying to add check constraint, it will = add an empty constraint
=C2=A0Expected =C2=A0behaviour (Columns are not mandatory for check const= rains)
  • In Table creation dialog, whil= e adding an exclude constraint, for "character varying" column ty= pe, no operators are being listed
=C2=A0There are no operators for=C2=A0character varying data type.
  • In Table creation dialog, while adding an exclu= de constraint, below mentioned error comes if user removes operator class b= y clicking 'x' on that control Uncaught TypeError: Cannot read property 'id' of unde= fined
=C2=A0TODO
=
  • In Table creation dialog, SQL is not getti= ng generated for exclude constraint
Fixed
  • In Table creation= dialog, schema should be prefixed with table name in "of type" c= ontrol
=C2=A0Fixed
  • In Table creation dialog, while adding p= rivileges, it always shows default privileges even if user has selected dif= ferent privileges. (This works fine once user edit the privileges in edit t= able mode and shows only those privileges which user selects).=20 Ashesh, please confirm the behaviour.
= Privileges are set correctly. Only it shows in incorrect order.
<= /div>
=C2=A0
Table edit mode:=
  • If in edit mode, any constraint is already having any comment, = then remove it. It will not create the SQL for the same.
  • =

Fixed=C2=A0
  • <= span style=3D"white-space:pre-wrap">Changing Schema will give server error<= /span>
This is generic = issue for each node.
=C2=A0
Co= lumn Creation:
  • Save button is enabled by default
  • = Data type validation is not provided. Save button is enabled just after pro= viding column name
  • Length field limitation is not provided. (i.e. f= or numeric type, length should be allowed greater than 1000)<= /li>
= Exclusion constraint creation:
  • Access method should= not be allowed to be empty. (currently by clicking 'x' will remove= the selection in it)
Access method i= s optional.
=C2=A0
Index creation:
  • No error message= for name field when empty
  • No error message when column name is not= provided while adding a column in index
  • While adding a column if n= o name is provided, "None" appears in SQL tab which will give err= or on OK button click
  • when comment is provided while creation, it g= ives error saying index does not exists. because schema name is not added b= efore it.
Rule creation:
  • Name i= s empty error does not come till user enters something in definition tab
  • DO INSTEAD button does not make any difference to SQL (it works in ed= it mode)
Rule edit mode:
  • Add comment = in edit mode, check the SQL in sql tab. Now come back to general tab and re= moves comment and check the sql tab again.
    SQL for comment is still ther= e with empty string as comment
Trigger Creation:
<= div>
  • SQL is not proper when creating a trigger. "()" shoul= d be appended to function name in SQL.
    It gives error while creating a t= rigger
  • "+" sign is visible in browser tree in front of tr= igger. =C2=A0either On expanding trigger, it should show the trigger functi= on name or that "+" sign should not appear
Trigger = edit node:
  • On removing comment, nothing happens. No sql is being cre= ated. Comment is still there in properties.=C2=A0

<= /div>

Regards,
Sanket Mehta
Sr Software engineer
Enterprisedb

--001a113e2a76214a0905331a40cc-- --001a113e2a76214a0d05331a40ce Content-Type: text/x-patch; charset=US-ASCII; name="table_addon_V8_1.patch" Content-Disposition: attachment; filename="table_addon_V8_1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iocnbmqf0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9fX2luaXRfXy5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9fX2luaXRfXy5weQppbmRleCBj NTYxMTU5Li45ZmNhZmU4IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L19faW5pdF9fLnB5CkBAIC01ODEsNyArNTgxLDcgQEAgY2xhc3MgVGFibGVW aWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIsIFZhY3V1bVNl dHRpbmdzKToKICAgICAgICAgICAgICAgICBzZWNsYWJlbHMgPSBbXQogICAg ICAgICAgICAgICAgIGZvciBzZWNsYmxzIGluIGNvbHVtblsnc2VjbGFiZWxz J106CiAgICAgICAgICAgICAgICAgICAgIGssIHYgPSBzZWNsYmxzLnNwbGl0 KCc9JykKLSAgICAgICAgICAgICAgICAgICAgc2VjbGFiZWxzLmFwcGVuZCh7 J3Byb3ZpZGVyJzogaywgJ3NlY3VyaXR5X2xhYmVsJzogdn0pCisgICAgICAg ICAgICAgICAgICAgIHNlY2xhYmVscy5hcHBlbmQoeydwcm92aWRlcic6IGss ICdsYWJlbCc6IHZ9KQogCiAgICAgICAgICAgICAgICAgY29sdW1uWydzZWNs YWJlbHMnXSA9IHNlY2xhYmVscwogCkBAIC05NDUsNyArOTQ1LDcgQEAgY2xh c3MgVGFibGVWaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIs IFZhY3V1bVNldHRpbmdzKToKICAgICAgICAgICAgIHNlY2xhYmVscyA9IFtd CiAgICAgICAgICAgICBmb3Igc2VjbGJscyBpbiBkYXRhWydzZWNsYWJlbHMn XToKICAgICAgICAgICAgICAgICBrLCB2ID0gc2VjbGJscy5zcGxpdCgnPScp Ci0gICAgICAgICAgICAgICAgc2VjbGFiZWxzLmFwcGVuZCh7J3Byb3ZpZGVy JzogaywgJ3NlY3VyaXR5X2xhYmVsJzogdn0pCisgICAgICAgICAgICAgICAg c2VjbGFiZWxzLmFwcGVuZCh7J3Byb3ZpZGVyJzogaywgJ2xhYmVsJzogdn0p CiAKICAgICAgICAgICAgIGRhdGFbJ3NlY2xhYmVscyddID0gc2VjbGFiZWxz CiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJh aW50cy9jaGVja19jb25zdHJhaW50L3RlbXBsYXRlcy9jaGVja19jb25zdHJh aW50L2pzL2NoZWNrX2NvbnN0cmFpbnQuanMgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWludC90ZW1wbGF0ZXMv Y2hlY2tfY29uc3RyYWludC9qcy9jaGVja19jb25zdHJhaW50LmpzCmluZGV4 IDZkYmFhYzYuLmFmYzViYTkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3RlbXBsYXRl cy9jaGVja19jb25zdHJhaW50L2pzL2NoZWNrX2NvbnN0cmFpbnQuanMKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2Nv bnN0cmFpbnQvdGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQvanMvY2hlY2tf Y29uc3RyYWludC5qcwpAQCAtMTM2LDcgKzEzNiw3IEBAIGZ1bmN0aW9uKCQs IF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgQWxlcnRpZnkpIHsKICAgICAg ICAgICAgICAgIV8uaXNVbmRlZmluZWQobS5nZXQoJ29pZCcpKSkgfHwgKF8u aXNGdW5jdGlvbihtLmlzTmV3KSAmJiAhbS5pc05ldygpKSk7CiAgICAgICAg ICAgfQogICAgICAgICB9LHsKLSAgICAgICAgICBpZDogJ2NvbnZhbGlkYXRl ZCcsIGxhYmVsOiAie3sgXygiVmFsaWRhdGVkPyIpIH19IiwgdHlwZTogJ3N3 aXRjaCcsIGNlbGw6CisgICAgICAgICAgaWQ6ICdjb252YWxpZGF0ZWQnLCBs YWJlbDogInt7IF8oIkRvbid0IHZhbGlkYXRlIikgfX0iLCB0eXBlOiAnc3dp dGNoJywgY2VsbDoKICAgICAgICAgICAnYm9vbGVhbicsIGdyb3VwOiAne3sg XygnRGVmaW5pdGlvbicpIH19JywgbWluX3ZlcnNpb246IDkwMjAwLAogICAg ICAgICAgIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICBp ZiAoKF8uaXNGdW5jdGlvbihtLmlzTmV3KSAmJiAhbS5pc05ldygpKSB8fApk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRz L2V4Y2x1c2lvbl9jb25zdHJhaW50L3RlbXBsYXRlcy9leGNsdXNpb25fY29u c3RyYWludC9qcy9leGNsdXNpb25fY29uc3RyYWludC5qcyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9leGNsdXNpb25fY29uc3RyYWlu dC90ZW1wbGF0ZXMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvanMvZXhjbHVzaW9u X2NvbnN0cmFpbnQuanMKaW5kZXggZDZiNmFjZi4uMjYzMzVkZiAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2V4Y2x1 c2lvbl9jb25zdHJhaW50L3RlbXBsYXRlcy9leGNsdXNpb25fY29uc3RyYWlu dC9qcy9leGNsdXNpb25fY29uc3RyYWludC5qcworKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvY29uc3RyYWludHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQv dGVtcGxhdGVzL2V4Y2x1c2lvbl9jb25zdHJhaW50L2pzL2V4Y2x1c2lvbl9j b25zdHJhaW50LmpzCkBAIC0xNTYsNiArMTU2LDggQEAgZnVuY3Rpb24oJCwg XywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBBbGVydGlmeSkgewogICAgICAg ICAgICAgbSA9IHNlbGYubW9kZWwsCiAgICAgICAgICAgICBjb2xfdHlwZSA9 IHNlbGYubW9kZWwuZ2V0KCdjb2xfdHlwZScpOwogCisgICAgICAgICAgICBz ZWxmLmNvbHVtbi5zZXQoJ29wdGlvbnMnLCBbXSk7CisKICAgICAgICAgICAg IGlmICh1cmwgJiYgIV8uaXNVbmRlZmluZWQoY29sX3R5cGUpICYmICFfLmlz TnVsbChjb2xfdHlwZSkgJiYgY29sX3R5cGUgIT0gJycpIHsKICAgICAgICAg ICAgICAgdmFyIG5vZGUgPSB0aGlzLmNvbHVtbi5nZXQoJ3NjaGVtYV9ub2Rl JyksCiAgICAgICAgICAgICAgICAgICBldmVudEhhbmRsZXIgPSBtLnRvcCB8 fCBtLApAQCAtMTk0LDI1ICsxOTYsMTEgQEAgZnVuY3Rpb24oJCwgXywgUywg cGdBZG1pbiwgcGdCcm93c2VyLCBBbGVydGlmeSkgewogICAgICAgICAgICAg ICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHNlbGYuY29sdW1uLnNldCgn b3B0aW9ucycsIGRhdGEpOwogICAgICAgICAgICAgICB9Ci0gICAgICAgICAg ICB9IGVsc2UgewotICAgICAgICAgICAgICBzZWxmLmNvbHVtbi5zZXQoJ29w dGlvbnMnLCBbXSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgfQogICAg ICAgICB9KQogICAgICAgfQotICAgIF0sCi0gICAgdmFsaWRhdGU6IGZ1bmN0 aW9uKCkgewotICAgICAgdmFyIGVyciA9IHt9LAotICAgICAgICAgIGVycm1z ZyA9IG51bGwsCi0gICAgICAgICAgZGF0YSA9IHRoaXMudG9KU09OKCk7Ci0K LSAgICAgIGlmIChfLmlzVW5kZWZpbmVkKGRhdGEub3BlcmF0b3IpIHx8Ci0g ICAgICAgIF8uaXNOdWxsKGRhdGEub3BlcmF0b3IpIHx8Ci0gICAgICAgIFN0 cmluZyhkYXRhLm9wZXJhdG9yKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycp ID09ICcnKSB7Ci0gICAgICAgIHJldHVybiAne3sgXygnUGxlYXNlIHNwZWNp ZnkgdmFsdWUgZm9yIG9wZXJhdG9yLicpfX0nOwotICAgICAgfQotICAgICAg cmV0dXJuIG51bGw7Ci0gICAgfQorICAgIF0KICAgfSk7CiAKICAgdmFyIEV4 Y2x1c2lvbkNvbnN0cmFpbnRDb2x1bW5Db250cm9sID0gIEJhY2tmb3JtLkV4 Y2x1c2lvbkNvbnN0cmFpbnRDb2x1bW5Db250cm9sID0KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9mb3JlaWduX2tl eS90ZW1wbGF0ZXMvZm9yZWlnbl9rZXkvanMvZm9yZWlnbl9rZXkuanMgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvZm9yZWlnbl9rZXkv dGVtcGxhdGVzL2ZvcmVpZ25fa2V5L2pzL2ZvcmVpZ25fa2V5LmpzCmluZGV4 IGE0N2YzYWQuLjA2ZDZiNTMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9jb25zdHJhaW50cy9mb3JlaWduX2tleS90ZW1wbGF0ZXMvZm9y ZWlnbl9rZXkvanMvZm9yZWlnbl9rZXkuanMKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3RlbXBsYXRlcy9m b3JlaWduX2tleS9qcy9mb3JlaWduX2tleS5qcwpAQCAtODc5LDcgKzg3OSw3 IEBAIGZ1bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgQWxl cnRpZnkpIHsKICAgICAgICAgfSx7CiAgICAgICAgICAgaWQ6ICdjb25mdXBk dHlwZScsIGxhYmVsOid7eyBfKCdPbiB1cGRhdGUnKSB9fScsCiAgICAgICAg ICAgdHlwZToic2VsZWN0MiIsIGdyb3VwOiAne3sgXygnQWN0aW9uJykgfX0n LCBtb2RlOiBbJ2VkaXQnLCdjcmVhdGUnXSwKLSAgICAgICAgICBzZWxlY3Qy Ont3aWR0aDoiNTAlIn0sCisgICAgICAgICAgc2VsZWN0Mjp7d2lkdGg6IjUw JSIsIGFsbG93Q2xlYXI6IGZhbHNlfSwKICAgICAgICAgICBvcHRpb25zOiBb CiAgICAgICAgICAgICB7bGFiZWw6ICJOTyBBQ1RJT04iLCB2YWx1ZTogImEi fSwKICAgICAgICAgICAgIHtsYWJlbDogIlJFU1RSSUNUIiwgdmFsdWU6ICJy In0sCkBAIC04OTksNyArODk5LDcgQEAgZnVuY3Rpb24oJCwgXywgUywgcGdB ZG1pbiwgcGdCcm93c2VyLCBBbGVydGlmeSkgewogICAgICAgICB9LHsKICAg ICAgICAgICBpZDogJ2NvbmZkZWx0eXBlJywgbGFiZWw6J3t7IF8oJ09uIGRl bGV0ZScpIH19JywKICAgICAgICAgICB0eXBlOiJzZWxlY3QyIiwgZ3JvdXA6 ICd7eyBfKCdBY3Rpb24nKSB9fScsIG1vZGU6IFsnZWRpdCcsJ2NyZWF0ZSdd LAotICAgICAgICAgIHNlbGVjdDI6e3dpZHRoOiI1MCUifSwKKyAgICAgICAg ICBzZWxlY3QyOnt3aWR0aDoiNTAlIiwgYWxsb3dDbGVhcjogZmFsc2V9LAog ICAgICAgICAgIG9wdGlvbnM6IFsKICAgICAgICAgICAgIHtsYWJlbDogIk5P IEFDVElPTiIsIHZhbHVlOiAiYSJ9LAogICAgICAgICAgICAge2xhYmVsOiAi UkVTVFJJQ1QiLCB2YWx1ZTogInIifSwKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rl bXBsYXRlcy9pbmRleF9jb25zdHJhaW50L2pzL2luZGV4X2NvbnN0cmFpbnQu anMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5kZXhf Y29uc3RyYWludC90ZW1wbGF0ZXMvaW5kZXhfY29uc3RyYWludC9qcy9pbmRl eF9jb25zdHJhaW50LmpzCmluZGV4IGQ2MzE3YmEuLmM1YWZlM2EgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRl eF9jb25zdHJhaW50L3RlbXBsYXRlcy9pbmRleF9jb25zdHJhaW50L2pzL2lu ZGV4X2NvbnN0cmFpbnQuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvdGVtcGxhdGVzL2luZGV4 X2NvbnN0cmFpbnQvanMvaW5kZXhfY29uc3RyYWludC5qcwpAQCAtMTQ5LDkg KzE0OSwxMyBAQCBmdW5jdGlvbigkLCBfLCBTLCBwZ0FkbWluLCBwZ0Jyb3dz ZXIsIGFsZXJ0aWZ5KSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJhY2tn cmlkLlN0cmluZ0NlbGwucHJvdG90eXBlLnJlbmRlci5hcHBseSh0aGlzLCBh cmd1bWVudHMpOwogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICBy ZW1vdmU6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIHZhciB0YWJs ZUNvbHMgPSB0aGlzLm1vZGVsLnRvcC5nZXQoJ2NvbHVtbnMnKTsKKyAgICAg ICAgICAgICAgICB2YXIgdGFibGVDb2xzID0gdGhpcy5tb2RlbC50b3AuZ2V0 KCdjb2x1bW5zJyksCisgICAgICAgICAgICAgICAgcHJpbWFyeV9rZXlfY29s ID0gdGhpcy5tb2RlbC5nZXQoJ2NvbHVtbnMnKTsKKworICAgICAgICAgICAg ICAgIGlmIChwcmltYXJ5X2tleV9jb2wpIHsKKyAgICAgICAgICAgICAgICAg IHByaW1hcnlfa2V5X2NvbC5vZmYoJ3BnYWRtaW46bXVsdGljb2x1bW46dXBk YXRlZCcpOworICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAg IHRoaXMubW9kZWwuZ2V0KCdjb2x1bW5zJykub2ZmKCdwZ2FkbWluOm11bHRp Y29sdW1uOnVwZGF0ZWQnKTsKICAgICAgICAgICAgICAgICB7JSBpZiBub2Rl X3R5cGUgPT0gJ3ByaW1hcnlfa2V5JyAlfQogICAgICAgICAgICAgICAgIHRo aXMuc3RvcExpc3RlbmluZyh0YWJsZUNvbHMsICdyZW1vdmUnICwgc2VsZi5y ZXNldENvbE9wdGlvbnMpOwogICAgICAgICAgICAgICAgIHRoaXMuc3RvcExp c3RlbmluZyh0YWJsZUNvbHMsICdjaGFuZ2U6bmFtZScgLCBzZWxmLnJlc2V0 Q29sT3B0aW9ucyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL2pzL3J1bGVzLmpzIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3J1bGVzL3RlbXBsYXRlcy9ydWxlcy9qcy9ydWxl cy5qcwppbmRleCA3MTU0NDdmLi4yOTAyMmE2IDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMvdGVtcGxhdGVzL3J1bGVzL2pzL3J1 bGVzLmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZW1w bGF0ZXMvcnVsZXMvanMvcnVsZXMuanMKQEAgLTQ2LDcgKzQ2LDcgQEAgZnVu Y3Rpb24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBDb2RlTWlycm9y KSB7CiAgICAgICBjYW5Ecm9wOiBmdW5jdGlvbihpdGVtRGF0YSwgaXRlbSwg ZGF0YSl7CiAgICAgICAgIHBnQnJvd3Nlci5Ob2Rlc1snc2NoZW1hJ10uY2Fu Q2hpbGREcm9wLmFwcGx5KHRoaXMsIFtpdGVtRGF0YSwgaXRlbSwgZGF0YV0p OwogICAgICAgICBpZihpdGVtRGF0YS5sYWJlbCA9PT0gJ19SRVRVUk4nKQot ICAgICAgICAgIHJldHVybiBmYWxzZTsgCisgICAgICAgICAgcmV0dXJuIGZh bHNlOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICByZXR1cm4gdHJ1ZTsK ICAgICAgICAgfQpAQCAtNTQsNyArNTQsNyBAQCBmdW5jdGlvbigkLCBfLCBT LCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIENvZGVNaXJyb3IpIHsKICAgICAgIGNh bkRyb3BDYXNjYWRlOiBmdW5jdGlvbihpdGVtRGF0YSwgaXRlbSwgZGF0YSl7 CiAgICAgICAgIHBnQnJvd3Nlci5Ob2Rlc1snc2NoZW1hJ10uY2FuQ2hpbGRE cm9wLmFwcGx5KHRoaXMsIFtpdGVtRGF0YSwgaXRlbSwgZGF0YV0pOwogICAg ICAgICBpZihpdGVtRGF0YS5sYWJlbCA9PT0gJ19SRVRVUk4nKQotICAgICAg ICAgIHJldHVybiBmYWxzZTsgCisgICAgICAgICAgcmV0dXJuIGZhbHNlOwog ICAgICAgICBlbHNlIHsKICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg ICAgfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBs YXRlcy9jaGVja19jb25zdHJhaW50L3NxbC85LjFfcGx1cy91cGRhdGUuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9jaGVja19jb25z dHJhaW50L3NxbC85LjFfcGx1cy91cGRhdGUuc3FsCmluZGV4IDYwOGNiZjku LjU3ZDgxYzcgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90 ZW1wbGF0ZXMvY2hlY2tfY29uc3RyYWludC9zcWwvOS4xX3BsdXMvdXBkYXRl LnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2No ZWNrX2NvbnN0cmFpbnQvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwKQEAgLTEs NCArMSw0IEBACi17JSBpZiBkYXRhLmNvbW1lbnQgYW5kIGRhdGEuY29tbWVu dCAhPSBvX2RhdGEuY29tbWVudCAlfQoreyUgaWYgZGF0YS5jb21tZW50IGlz IGRlZmluZWQgYW5kIGRhdGEuY29tbWVudCAhPSBvX2RhdGEuY29tbWVudCAl fQogQ09NTUVOVCBPTiBDT05TVFJBSU5UIHt7IGNvbm58cXRJZGVudChvX2Rh dGEubmFtZSkgfX0gT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5uc3BuYW1l LCBvX2RhdGEucmVsbmFtZSkgfX0KICAgICBJUyB7eyBkYXRhLmNvbW1lbnR8 cXRMaXRlcmFsIH19OwogeyUgZW5kaWYgJX0KXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQvc3FsLzkuMl9wbHVzL3VwZGF0 ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2NoZWNr X2NvbnN0cmFpbnQvc3FsLzkuMl9wbHVzL3VwZGF0ZS5zcWwKaW5kZXggMDAw MDQ3ZC4uNmMyNzkyMyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3RlbXBsYXRlcy9jaGVja19jb25zdHJhaW50L3NxbC85LjJfcGx1cy91 cGRhdGUuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0 ZXMvY2hlY2tfY29uc3RyYWludC9zcWwvOS4yX3BsdXMvdXBkYXRlLnNxbApA QCAtNiw3ICs2LDcgQEAgQUxURVIgVEFCTEUge3sgY29ubnxxdElkZW50KG9f ZGF0YS5uc3BuYW1lLCBvX2RhdGEucmVsbmFtZSkgfX0KIAogQUxURVIgVEFC TEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5uc3BuYW1lLCBvX2RhdGEucmVs bmFtZSkgfX0KICAgICBWQUxJREFURSBDT05TVFJBSU5UIHt7IGNvbm58cXRJ ZGVudChkYXRhLm5hbWUpIH19O3slIGVuZGlmIC0lfQoteyUgaWYgZGF0YS5j b21tZW50IGFuZCBkYXRhLmNvbW1lbnQgIT0gb19kYXRhLmNvbW1lbnQgJX0K K3slIGlmIGRhdGEuY29tbWVudCBpcyBkZWZpbmVkIGFuZCBkYXRhLmNvbW1l bnQgIT0gb19kYXRhLmNvbW1lbnQgJX0KIAogQ09NTUVOVCBPTiBDT05TVFJB SU5UIHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19IE9OIHt7IGNvbm58 cXRJZGVudChvX2RhdGEubnNwbmFtZSwgb19kYXRhLnJlbG5hbWUpIH19CiAg ICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTt7JSBlbmRpZiAl fQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRl cy9jb2x1bW4vc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMvY3Jl YXRlLnNxbAppbmRleCAyYjBkNzhmLi41MWVlYTUyIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4x X3BsdXMvY3JlYXRlLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbApAQCAt MjEsNyArMjEsNyBAQCBDT01NRU5UIE9OIENPTFVNTiB7e2Nvbm58cXRJZGVu dChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgZGF0YS5uYW1lKX19CiB7IyMj ICBBZGQgdmFyaWFibGVzIHRvIGNvbHVtbiAjIyN9CiB7JSBpZiBkYXRhLmF0 dG9wdGlvbnMgJX0KIEFMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEu c2NoZW1hLCBkYXRhLnRhYmxlKX19Ci17eyBWQVJJQUJMRS5TRVQoY29ubiwg J0NPTFVNTicsIGRhdGEubmFtZSwgZGF0YS5hdHRvcHRpb25zKSB9fQorICAg IHt7IFZBUklBQkxFLlNFVChjb25uLCAnQ09MVU1OJywgZGF0YS5uYW1lLCBk YXRhLmF0dG9wdGlvbnMpIH19CiAKIHslIGVuZGlmICV9CiB7IyMjICBBQ0wg IyMjfQpAQCAtMzMsNiArMzMsNiBAQCBBTFRFUiBUQUJMRSB7e2Nvbm58cXRJ ZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9fQogeyMjIyAgU2VjdXJp dHkgTGFibGVzICMjI30KIHslIGlmIGRhdGEuc2VjbGFiZWxzICV9CiB7JSBm b3IgciBpbiBkYXRhLnNlY2xhYmVscyAlfQote3sgU0VDTEFCTEUuQVBQTFko Y29ubiwgJ0NPTFVNTicsZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIGRhdGEu bmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCkgfX0KK3t7IFNF Q0xBQkxFLkFQUExZKGNvbm4sICdDT0xVTU4nLGRhdGEuc2NoZW1hLCBkYXRh LnRhYmxlLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIubGFiZWwpIH19CiB7 JSBlbmRmb3IgJX0KIHslIGVuZGlmICV9ClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rl bXBsYXRlcy9jb2x1bW4vc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3Bs dXMvdXBkYXRlLnNxbAppbmRleCA0YzkwMmM1Li5hMzZjNmZjIDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2NvbHVtbi9z cWwvOS4xX3BsdXMvdXBkYXRlLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4xX3BsdXMvdXBkYXRlLnNx bApAQCAtNTIsMTUgKzUyLDE1IEBAIENPTU1FTlQgT04gQ09MVU1OIHt7Y29u bnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUp fX0KIHslIHNldCB2YXJpYWJsZXMgPSBkYXRhLmF0dG9wdGlvbnMgJX0KIHsl IGlmICdkZWxldGVkJyBpbiB2YXJpYWJsZXMgYW5kIHZhcmlhYmxlcy5kZWxl dGVkfGxlbmd0aCA+IDAgJX0KIEFMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50 KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlKX19Ci17eyBWQVJJQUJMRS5VTlNF VChjb25uLCAnQ09MVU1OJywgZGF0YS5uYW1lLCB2YXJpYWJsZXMuZGVsZXRl ZCkgfX0KKyAgICB7eyBWQVJJQUJMRS5VTlNFVChjb25uLCAnQ09MVU1OJywg ZGF0YS5uYW1lLCB2YXJpYWJsZXMuZGVsZXRlZCkgfX0KIHslIGVuZGlmICV9 CiB7JSBpZiAnYWRkZWQnIGluIHZhcmlhYmxlcyBhbmQgdmFyaWFibGVzLmFk ZGVkfGxlbmd0aCA+IDAgJX0KIEFMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50 KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlKX19Ci17eyBWQVJJQUJMRS5TRVQo Y29ubiwgJ0NPTFVNTicsIGRhdGEubmFtZSwgdmFyaWFibGVzLmFkZGVkKSB9 fQorICAgIHt7IFZBUklBQkxFLlNFVChjb25uLCAnQ09MVU1OJywgZGF0YS5u YW1lLCB2YXJpYWJsZXMuYWRkZWQpIH19CiB7JSBlbmRpZiAlfQogeyUgaWYg J2NoYW5nZWQnIGluIHZhcmlhYmxlcyBhbmQgdmFyaWFibGVzLmNoYW5nZWR8 bGVuZ3RoID4gMCAlfQogQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0 YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KLXt7IFZBUklBQkxFLlNFVChjb25u LCAnQ09MVU1OJywgZGF0YS5uYW1lLCB2YXJpYWJsZXMuY2hhbmdlZCkgfX0K KyAgICB7eyBWQVJJQUJMRS5TRVQoY29ubiwgJ0NPTFVNTicsIGRhdGEubmFt ZSwgdmFyaWFibGVzLmNoYW5nZWQpIH19CiB7JSBlbmRpZiAlfQogCiB7JSBl bmRpZiAlfQpAQCAtOTUsMTIgKzk1LDEyIEBAIEFMVEVSIFRBQkxFIHt7Y29u bnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlKX19CiB7JSBlbmRp ZiAlfQogeyUgaWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVs cy5hZGRlZHxsZW5ndGggPiAwICV9CiB7JSBmb3IgciBpbiBzZWNsYWJlbHMu YWRkZWQgJX0KLXt7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdDT0xVTU4nLGRh dGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIs IHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7eyBTRUNMQUJMRS5BUFBMWShjb25u LCAnQ09MVU1OJyxkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgZGF0YS5uYW1l LCByLnByb3ZpZGVyLCByLmxhYmVsKSB9fQogeyUgZW5kZm9yICV9CiB7JSBl bmRpZiAlfQogeyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBhbmQgc2Vj bGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQogeyUgZm9yIHIgaW4gc2Vj bGFiZWxzLmNoYW5nZWQgJX0KLXt7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdD T0xVTU4nLGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUsIHIu cHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7eyBTRUNMQUJMRS5B UFBMWShjb25uLCAnQ09MVU1OJyxkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwg ZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsKSB9fQogeyUgZW5kZm9y ICV9CiB7JSBlbmRpZiAlfQogCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4yX3BsdXMvY3JlYXRl LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1u L3NxbC85LjJfcGx1cy9jcmVhdGUuc3FsCmluZGV4IDJiMGQ3OGYuLjUxZWVh NTIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0 ZXMvY29sdW1uL3NxbC85LjJfcGx1cy9jcmVhdGUuc3FsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjJfcGx1 cy9jcmVhdGUuc3FsCkBAIC0yMSw3ICsyMSw3IEBAIENPTU1FTlQgT04gQ09M VU1OIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBk YXRhLm5hbWUpfX0KIHsjIyMgIEFkZCB2YXJpYWJsZXMgdG8gY29sdW1uICMj I30KIHslIGlmIGRhdGEuYXR0b3B0aW9ucyAlfQogQUxURVIgVEFCTEUge3tj b25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0KLXt7IFZB UklBQkxFLlNFVChjb25uLCAnQ09MVU1OJywgZGF0YS5uYW1lLCBkYXRhLmF0 dG9wdGlvbnMpIH19CisgICAge3sgVkFSSUFCTEUuU0VUKGNvbm4sICdDT0xV TU4nLCBkYXRhLm5hbWUsIGRhdGEuYXR0b3B0aW9ucykgfX0KIAogeyUgZW5k aWYgJX0KIHsjIyMgIEFDTCAjIyN9CkBAIC0zMyw2ICszMyw2IEBAIEFMVEVS IFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxl KX19CiB7IyMjICBTZWN1cml0eSBMYWJsZXMgIyMjfQogeyUgaWYgZGF0YS5z ZWNsYWJlbHMgJX0KIHslIGZvciByIGluIGRhdGEuc2VjbGFiZWxzICV9Ci17 eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnQ09MVU1OJyxkYXRhLnNjaGVtYSwg ZGF0YS50YWJsZSwgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5 X2xhYmVsKSB9fQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ0NPTFVNTics ZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIGRhdGEubmFtZSwgci5wcm92aWRl ciwgci5sYWJlbCkgfX0KIHslIGVuZGZvciAlfQogeyUgZW5kaWYgJX0KXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvOS4yX3BsdXMv dXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMv Y29sdW1uL3NxbC85LjJfcGx1cy91cGRhdGUuc3FsCmluZGV4IDgzZjIxZDQu LmJjZmI5MGMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90 ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjJfcGx1cy91cGRhdGUuc3FsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85 LjJfcGx1cy91cGRhdGUuc3FsCkBAIC01MiwxNSArNTIsMTUgQEAgQ09NTUVO VCBPTiBDT0xVTU4ge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEu dGFibGUsIGRhdGEubmFtZSl9fQogeyUgc2V0IHZhcmlhYmxlcyA9IGRhdGEu YXR0b3B0aW9ucyAlfQogeyUgaWYgJ2RlbGV0ZWQnIGluIHZhcmlhYmxlcyBh bmQgdmFyaWFibGVzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQogQUxURVIgVEFC TEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0K LXt7IFZBUklBQkxFLlVOU0VUKGNvbm4sICdDT0xVTU4nLCBkYXRhLm5hbWUs IHZhcmlhYmxlcy5kZWxldGVkKSB9fQorICAgIHt7IFZBUklBQkxFLlVOU0VU KGNvbm4sICdDT0xVTU4nLCBkYXRhLm5hbWUsIHZhcmlhYmxlcy5kZWxldGVk KSB9fQogeyUgZW5kaWYgJX0KIHslIGlmICdhZGRlZCcgaW4gdmFyaWFibGVz IGFuZCB2YXJpYWJsZXMuYWRkZWR8bGVuZ3RoID4gMCAlfQogQUxURVIgVEFC TEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpfX0K LXt7IFZBUklBQkxFLlNFVChjb25uLCAnQ09MVU1OJywgZGF0YS5uYW1lLCB2 YXJpYWJsZXMuYWRkZWQpIH19CisgICAge3sgVkFSSUFCTEUuU0VUKGNvbm4s ICdDT0xVTU4nLCBkYXRhLm5hbWUsIHZhcmlhYmxlcy5hZGRlZCkgfX0KIHsl IGVuZGlmICV9CiB7JSBpZiAnY2hhbmdlZCcgaW4gdmFyaWFibGVzIGFuZCB2 YXJpYWJsZXMuY2hhbmdlZHxsZW5ndGggPiAwICV9CiBBTFRFUiBUQUJMRSB7 e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSl9fQote3sg VkFSSUFCTEUuU0VUKGNvbm4sICdDT0xVTU4nLCBkYXRhLm5hbWUsIHZhcmlh Ymxlcy5jaGFuZ2VkKSB9fQorICAgIHt7IFZBUklBQkxFLlNFVChjb25uLCAn Q09MVU1OJywgZGF0YS5uYW1lLCB2YXJpYWJsZXMuY2hhbmdlZCkgfX0KIHsl IGVuZGlmICV9CiB7JSBlbmRpZiAlfQogeyMjIyBVcGRhdGUgY29sdW1uIHBy aXZpbGVnZXMgIyMjfQpAQCAtOTQsMTIgKzk0LDEyIEBAIEFMVEVSIFRBQkxF IHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlKX19CiB7 JSBlbmRpZiAlfQogeyUgaWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNl Y2xhYmVscy5hZGRlZHxsZW5ndGggPiAwICV9CiB7JSBmb3IgciBpbiBzZWNs YWJlbHMuYWRkZWQgJX0KLXt7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdDT0xV TU4nLGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUsIHIucHJv dmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7eyBTRUNMQUJMRS5BUFBM WShjb25uLCAnQ09MVU1OJyxkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgZGF0 YS5uYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsKSB9fQogeyUgZW5kZm9yICV9 CiB7JSBlbmRpZiAlfQogeyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBh bmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQogeyUgZm9yIHIg aW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KLXt7IFNFQ0xBQkxFLkFQUExZKGNv bm4sICdDT0xVTU4nLGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5h bWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7eyBTRUNM QUJMRS5BUFBMWShjb25uLCAnQ09MVU1OJyxkYXRhLnNjaGVtYSwgZGF0YS50 YWJsZSwgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsKSB9fQogeyUg ZW5kZm9yICV9CiB7JSBlbmRpZiAlfQogeyUgZW5kaWYgJX0KXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvdGVtcGxhdGVzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3NxbC85 LjFfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rl bXBsYXRlcy9leGNsdXNpb25fY29uc3RyYWludC9zcWwvOS4xX3BsdXMvdXBk YXRlLnNxbAppbmRleCBkMDYyZThiLi40ZDcwZjIxIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2V4Y2x1c2lvbl9jb25z dHJhaW50L3NxbC85LjFfcGx1cy91cGRhdGUuc3FsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvZXhjbHVzaW9uX2NvbnN0cmFpbnQv c3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwKQEAgLTE1LDcgKzE1LDcgQEAgQUxU RVIgSU5ERVgge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5h bWUpIH19CiAgICAgU0VUIChGSUxMRkFDVE9SPXt7IGRhdGEuZmlsbGZhY3Rv ciB9fSk7CiB7JSBlbmRpZiAlfQogeyMgPT09PSBUbyB1cGRhdGUgZXhjbHVz aW9uIGNvbnN0cmFpbnQgY29tbWVudHMgPT09PSAjfQoteyUgaWYgZGF0YS5j b21tZW50IGFuZCBkYXRhLmNvbW1lbnQgIT0gb19kYXRhLmNvbW1lbnQgJX0K K3slIGlmIGRhdGEuY29tbWVudCBpcyBkZWZpbmVkIGFuZCBkYXRhLmNvbW1l bnQgIT0gb19kYXRhLmNvbW1lbnQgJX0KIENPTU1FTlQgT04gQ09OU1RSQUlO VCB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fSBPTiB7eyBjb25ufHF0 SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpIH19CiAgICAgSVMge3sg ZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsKIHslIGVuZGlmICV9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2V4Y2x1 c2lvbl9jb25zdHJhaW50L3NxbC85LjJfcGx1cy91cGRhdGUuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9leGNsdXNpb25fY29uc3Ry YWludC9zcWwvOS4yX3BsdXMvdXBkYXRlLnNxbAppbmRleCBkMDYyZThiLi40 ZDcwZjIxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVt cGxhdGVzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3NxbC85LjJfcGx1cy91cGRh dGUuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMv ZXhjbHVzaW9uX2NvbnN0cmFpbnQvc3FsLzkuMl9wbHVzL3VwZGF0ZS5zcWwK QEAgLTE1LDcgKzE1LDcgQEAgQUxURVIgSU5ERVgge3sgY29ubnxxdElkZW50 KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19CiAgICAgU0VUIChGSUxMRkFD VE9SPXt7IGRhdGEuZmlsbGZhY3RvciB9fSk7CiB7JSBlbmRpZiAlfQogeyMg PT09PSBUbyB1cGRhdGUgZXhjbHVzaW9uIGNvbnN0cmFpbnQgY29tbWVudHMg PT09PSAjfQoteyUgaWYgZGF0YS5jb21tZW50IGFuZCBkYXRhLmNvbW1lbnQg IT0gb19kYXRhLmNvbW1lbnQgJX0KK3slIGlmIGRhdGEuY29tbWVudCBpcyBk ZWZpbmVkIGFuZCBkYXRhLmNvbW1lbnQgIT0gb19kYXRhLmNvbW1lbnQgJX0K IENPTU1FTlQgT04gQ09OU1RSQUlOVCB7eyBjb25ufHF0SWRlbnQoZGF0YS5u YW1lKSB9fSBPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEu dGFibGUpIH19CiAgICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9 fTsKIHslIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fa2V5L3NxbC91cGRhdGUuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX2tleS9z cWwvdXBkYXRlLnNxbAppbmRleCBhNzJmN2U1Li5lZThmOGE5IDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25f a2V5L3NxbC91cGRhdGUuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy90ZW1wbGF0ZXMvZm9yZWlnbl9rZXkvc3FsL3VwZGF0ZS5zcWwKQEAgLTEx LDcgKzExLDcgQEAgQUxURVIgVEFCTEUge3sgY29ubnxxdElkZW50KGRhdGEu c2NoZW1hLCBkYXRhLnRhYmxlKSB9fQogICAgIFZBTElEQVRFIENPTlNUUkFJ TlQge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07CiB7JSBlbmRpZiAl fQogeyMgPT09PSBUbyB1cGRhdGUgZm9yZWlnbiBrZXkgY29tbWVudHMgPT09 PSAjfQoteyUgaWYgZGF0YS5jb21tZW50IGFuZCBkYXRhLmNvbW1lbnQgIT0g b19kYXRhLmNvbW1lbnQgJX0KK3slIGlmIGRhdGEuY29tbWVudCBpcyBkZWZp bmVkIGFuZCBkYXRhLmNvbW1lbnQgIT0gb19kYXRhLmNvbW1lbnQgJX0KIENP TU1FTlQgT04gQ09OU1RSQUlOVCB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1l KSB9fSBPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFi bGUpIH19CiAgICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsK IHslIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvdGVtcGxhdGVzL2luZGV4X2NvbnN0cmFpbnQvc3FsL3VwZGF0ZS5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2luZGV4X2NvbnN0 cmFpbnQvc3FsL3VwZGF0ZS5zcWwKaW5kZXggYWY3NmQ4ZS4uNjYxODUzMiAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9p bmRleF9jb25zdHJhaW50L3NxbC91cGRhdGUuc3FsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvaW5kZXhfY29uc3RyYWludC9zcWwv dXBkYXRlLnNxbApAQCAtMTUsNyArMTUsNyBAQCBBTFRFUiBJTkRFWCB7eyBj b25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KICAgICBT RVQgKEZJTExGQUNUT1I9e3sgZGF0YS5maWxsZmFjdG9yIH19KTsKIHslIGVu ZGlmICV9CiB7IyA9PT09IFRvIHVwZGF0ZSBjb25zdHJhaW50IGNvbW1lbnRz ID09PT0gI30KLXslIGlmIGRhdGEuY29tbWVudCBhbmQgZGF0YS5jb21tZW50 ICE9IG9fZGF0YS5jb21tZW50ICV9Cit7JSBpZiBkYXRhLmNvbW1lbnQgaXMg ZGVmaW5lZCBhbmQgZGF0YS5jb21tZW50ICE9IG9fZGF0YS5jb21tZW50ICV9 CiBDT01NRU5UIE9OIENPTlNUUkFJTlQge3sgY29ubnxxdElkZW50KGRhdGEu bmFtZSkgfX0gT04ge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRh LnRhYmxlKSB9fQogICAgIElTIHt7IGRhdGEuY29tbWVudHxxdExpdGVyYWwg fX07CiB7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL3RlbXBsYXRlcy90YWJsZS9qcy90YWJsZS5qcyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUvanMvdGFibGUuanMKaW5k ZXggMDI1OGNhNy4uYzFkOGM0ZiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZS9qcy90YWJsZS5qcworKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlL2pzL3RhYmxl LmpzCkBAIC0zMDgsNyArMzA4LDggQEAgZnVuY3Rpb24oJCwgXywgUywgcGdB ZG1pbiwgcGdCcm93c2VyLCBhbGVydGlmeSkgewogICAgICAgICB9LHsKICAg ICAgICAgICBpZDogJ3NwY25hbWUnLCBsYWJlbDone3sgXygnVGFibGVzcGFj ZScpIH19JywgY2VsbDogJ3N0cmluZycsIGNvbnRyb2w6ICdub2RlLWxpc3Qt YnktbmFtZScsCiAgICAgICAgICAgdHlwZTogJ3RleHQnLCBtb2RlOiBbJ3By b3BlcnRpZXMnLCAnY3JlYXRlJywgJ2VkaXQnXSwgbm9kZTogJ3RhYmxlc3Bh Y2UnLAotICAgICAgICAgIGRpc2FibGVkOiAnaW5TY2hlbWEnLCBmaWx0ZXI6 IGZ1bmN0aW9uKGQpIHsKKyAgICAgICAgICBkaXNhYmxlZDogJ2luU2NoZW1h Jywgc2VsZWN0Mjp7YWxsb3dDbGVhcjpmYWxzZX0sCisgICAgICAgICAgZmls dGVyOiBmdW5jdGlvbihkKSB7CiAgICAgICAgICAgICAvLyBJZiB0YWJsZXNw YWNlIG5hbWUgaXMgbm90ICJwZ19nbG9iYWwiIHRoZW4gd2UgbmVlZCB0byBl eGNsdWRlIHRoZW0KICAgICAgICAgICAgIGlmKGQgJiYgZC5sYWJlbC5tYXRj aCgvcGdfZ2xvYmFsLykpCiAgICAgICAgICAgICB7CkBAIC01NTgsNiArNTU5 LDIwIEBAIGZ1bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3Nlciwg YWxlcnRpZnkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3Zl ZENvbHMgPSBwcmltYXJ5X2tleV9jb2x1bW5fY29sbC53aGVyZSh7Y29sdW1u OmNvbHVtbl9uYW1lfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo cmVtb3ZlZENvbHMubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgICAgICAg ICAgICAgICBwcmltYXJ5X2tleV9jb2x1bW5fY29sbC5yZW1vdmUocmVtb3Zl ZENvbHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICBfLmVhY2gocmVt b3ZlZENvbHMsIGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtLmRlc3Ryb3koKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgfSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByaW1hcnlf a2V5X2NvbHVtbl9jb2xsLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGVyZSB3aWxsIGJlIG9u bHkgb24gcHJpbWFyeSBrZXkgc28gcmVtb3ZlIHRoZSBmaXJzdCBvbmUuCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2tleV9jb2xs LnJlbW92ZShwcmltYXJ5X2tleV9jb2xsLmZpcnN0KCkpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogSWRlYWxseSBhYm92ZSBsaW5lIG9m IGNvZGUgc2hvdWxkIGJlICJwcmltYXJ5X2tleV9jb2xsLnJlc2V0KCkiLgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogQnV0IG91ciBjdXN0 b20gRGF0YUNvbGxlY3Rpb24gKGV4dGVuZGVkIGZyb20gQmFja2JvbmUgY29s bGVjdGlvbiBpbiBkYXRhbW9kZWwuanMpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKiBkb2VzIG5vdCByZXNwb25kIHRvIHJlc2V0IGV2ZW50 LCBpdCBvbmx5IHN1cHBvcnRzIGFkZCwgcmVtb3ZlLCBjaGFuZ2UgZXZlbnRz LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogQW5kIGhlbmNl IG5vIGN1c3RvbSBldmVudCBsaXN0ZW5lcnMvdmFsaWRhdG9ycyBnZXQgY2Fs bGVkIGZvciByZXNldCBldmVudC4KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEw KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFy eV9rZXlfY29sdW1uX2NvbGwudHJpZ2dlcigncGdhZG1pbjptdWx0aWNvbHVt bjp1cGRhdGVkJywgcHJpbWFyeV9rZXlfY29sdW1uX2NvbGwpOwogICAgICAg ICAgICAgICAgICAgICAgIH0KQEAgLTU5MywxMCArNjA4LDEyIEBAIGZ1bmN0 aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgYWxlcnRpZnkpIHsK ICAgICAgICAgICAgICAgICAgIGNvbHVtbnMgOiBbJ25hbWUnLCAnY29sdW1u cyddLAogICAgICAgICAgICAgICAgICAgY2FuQWRkOiB0cnVlLAogICAgICAg ICAgICAgICAgICAgY2FuQWRkUm93OiBmdW5jdGlvbihtKSB7Ci0gICAgICAg ICAgICAgICAgICAgLy8gVXNlIGNhbiBvbmx5IGFkZCBvbmUgcHJpbWFyeSBr ZXkKKyAgICAgICAgICAgICAgICAgICAvLyBVc2VyIGNhbiBvbmx5IGFkZCBv bmUgcHJpbWFyeSBrZXkKKyAgICAgICAgICAgICAgICAgICB2YXIgY29sdW1u cyA9IG0uZ2V0KCdjb2x1bW5zJyk7CisKICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gKG0uZ2V0KCdwcmltYXJ5X2tleScpICYmCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbS5nZXQoJ3ByaW1hcnlfa2V5JykubGVuZ3RoIDwg MSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0uZ2V0KCdjb2x1 bW5zJykubGVuZ3RoID4gMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXy5zb21lKGNvbHVtbnMucGx1Y2soJ25hbWUnKSkpOwogICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0sewogICAgICAgICAgICAg ICAgICAgaWQ6ICdmb3JlaWduX2tleScsIGxhYmVsOiAne3sgXygnRm9yZWln biBLZXknKSB9fScsCkBAIC02MDksOCArNjI2LDkgQEAgZnVuY3Rpb24oJCwg XywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBhbGVydGlmeSkgewogICAgICAg ICAgICAgICAgICAgY2FuQWRkOiB0cnVlLAogICAgICAgICAgICAgICAgICAg Y29sdW1ucyA6IFsnbmFtZScsICdjb2x1bW5zJ10sCiAgICAgICAgICAgICAg ICAgICBjYW5BZGRSb3c6IGZ1bmN0aW9uKG0pIHsKLSAgICAgICAgICAgICAg ICAgICAvLyBVc2UgY2FuIG9ubHkgYWRkIGlmIHRoZXJlIGFyZSBjb2x1bW5z IHByZXNlbnQKLSAgICAgICAgICAgICAgICAgICByZXR1cm4gbS5nZXQoJ2Nv bHVtbnMnKS5sZW5ndGggPiAwOworICAgICAgICAgICAgICAgICAgIC8vIFVz ZXIgY2FuIG9ubHkgYWRkIGlmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBjb2x1 bW4gd2l0aCBuYW1lLgorICAgICAgICAgICAgICAgICAgIHZhciBjb2x1bW5z ID0gbS5nZXQoJ2NvbHVtbnMnKTsKKyAgICAgICAgICAgICAgICAgICByZXR1 cm4gXy5zb21lKGNvbHVtbnMucGx1Y2soJ25hbWUnKSk7CiAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSx7CiAgICAgICAgICAgICAg ICAgICBpZDogJ2NoZWNrX2NvbnN0cmFpbnQnLCBsYWJlbDogJ3t7IF8oJ0No ZWNrIENvbnN0cmFpbnQnKSB9fScsCkBAIC02MjEsMTEgKzYzOSw3IEBAIGZ1 bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgYWxlcnRpZnkp IHsKICAgICAgICAgICAgICAgICAgIGNhbkVkaXQ6IHRydWUsIGNhbkRlbGV0 ZTogdHJ1ZSwKICAgICAgICAgICAgICAgICAgIGNvbnRyb2w6ICd1bmlxdWUt Y29sLWNvbGxlY3Rpb24nLAogICAgICAgICAgICAgICAgICAgY2FuQWRkOiB0 cnVlLAotICAgICAgICAgICAgICAgICAgY29sdW1ucyA6IFsnbmFtZScsICdj b25zcmMnXSwKLSAgICAgICAgICAgICAgICAgIGNhbkFkZFJvdzogZnVuY3Rp b24obSkgewotICAgICAgICAgICAgICAgICAgIC8vIFVzZSBjYW4gb25seSBh ZGQgaWYgdGhlcmUgYXJlIGNvbHVtbnMgcHJlc2VudAotICAgICAgICAgICAg ICAgICAgIHJldHVybiBtLmdldCgnY29sdW1ucycpLmxlbmd0aCA+IDA7Ci0g ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICBjb2x1bW5z IDogWyduYW1lJywgJ2NvbnNyYyddCiAgICAgICAgICAgICAgICAgfSx7CiAg ICAgICAgICAgICAgICAgICBpZDogJ3VuaXF1ZV9jb25zdHJhaW50JywgbGFi ZWw6ICd7eyBfKCdVbmlxdWUgQ29uc3RyYWludCcpIH19JywKICAgICAgICAg ICAgICAgICAgIG1vZGVsOiBwZ0Jyb3dzZXIuTm9kZXNbJ3VuaXF1ZV9jb25z dHJhaW50J10ubW9kZWwsCkBAIC02MzcsOCArNjUxLDkgQEAgZnVuY3Rpb24o JCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBhbGVydGlmeSkgewogICAg ICAgICAgICAgICAgICAgY29sdW1ucyA6IFsnbmFtZScsICdjb2x1bW5zJ10s CiAgICAgICAgICAgICAgICAgICBjYW5BZGQ6IHRydWUsCiAgICAgICAgICAg ICAgICAgICBjYW5BZGRSb3c6IGZ1bmN0aW9uKG0pIHsKLSAgICAgICAgICAg ICAgICAgICAvLyBVc2UgY2FuIG9ubHkgYWRkIGlmIHRoZXJlIGFyZSBjb2x1 bW5zIHByZXNlbnQKLSAgICAgICAgICAgICAgICAgICByZXR1cm4gbS5nZXQo J2NvbHVtbnMnKS5sZW5ndGggPiAwOworICAgICAgICAgICAgICAgICAgIC8v IFVzZXIgY2FuIG9ubHkgYWRkIGlmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBj b2x1bW4gd2l0aCBuYW1lLgorICAgICAgICAgICAgICAgICAgIHZhciBjb2x1 bW5zID0gbS5nZXQoJ2NvbHVtbnMnKTsKKyAgICAgICAgICAgICAgICAgICBy ZXR1cm4gXy5zb21lKGNvbHVtbnMucGx1Y2soJ25hbWUnKSk7CiAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSx7CiAgICAgICAgICAg ICAgICAgICBpZDogJ2V4Y2x1ZGVfY29uc3RyYWludCcsIGxhYmVsOiAne3sg XygnRXhjbHVkZSBDb25zdHJhaW50JykgfX0nLApAQCAtNjUxLDggKzY2Niw5 IEBAIGZ1bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgYWxl cnRpZnkpIHsKICAgICAgICAgICAgICAgICAgIGNvbHVtbnMgOiBbJ25hbWUn LCAnY29sdW1ucycsICdjb25zdHJhaW50J10sCiAgICAgICAgICAgICAgICAg ICBjYW5BZGQ6IHRydWUsCiAgICAgICAgICAgICAgICAgICBjYW5BZGRSb3c6 IGZ1bmN0aW9uKG0pIHsKLSAgICAgICAgICAgICAgICAgICAvLyBVc2UgY2Fu IG9ubHkgYWRkIGlmIHRoZXJlIGFyZSBjb2x1bW5zIHByZXNlbnQKLSAgICAg ICAgICAgICAgICAgICByZXR1cm4gbS5nZXQoJ2NvbHVtbnMnKS5sZW5ndGgg PiAwOworICAgICAgICAgICAgICAgICAgIC8vIFVzZXIgY2FuIG9ubHkgYWRk IGlmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBjb2x1bW4gd2l0aCBuYW1lLgor ICAgICAgICAgICAgICAgICAgIHZhciBjb2x1bW5zID0gbS5nZXQoJ2NvbHVt bnMnKTsKKyAgICAgICAgICAgICAgICAgICByZXR1cm4gXy5zb21lKGNvbHVt bnMucGx1Y2soJ25hbWUnKSk7CiAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICB9XQogICAgICAgICAgIH1dCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlL3NxbC85LjFfcGx1cy9j cmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90 YWJsZS9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbAppbmRleCA1MDc1NDA0Li5m NDVkYWE0IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVt cGxhdGVzL3RhYmxlL3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUvc3FsLzkuMV9w bHVzL2NyZWF0ZS5zcWwKQEAgLTE3LDcgKzE3LDcgQEAKIHslIGVuZGlmICV9 CiBDUkVBVEUgeyUgaWYgZGF0YS5yZWxwZXJzaXN0ZW5jZSAlfVVOTE9HR0VE IHslIGVuZGlmICV9VEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEs IGRhdGEubmFtZSl9fXt7ZW1wdHlfYnJhY2tldH19CiB7JSBpZiBkYXRhLnR5 cG5hbWUgJX0KLSAgICBPRiB7eyBjb25ufHF0SWRlbnQoZGF0YS50eXBuYW1l KSB9fQorICAgIE9GIHt7IGRhdGEudHlwbmFtZSB9fQogeyUgZW5kaWYgJX0K IHslIGlmIGRhdGEubGlrZV9yZWxhdGlvbiBvciBkYXRhLmNvbGxfaW5oZXJp dHMgb3IgZGF0YS5jb2x1bW5zfGxlbmd0aCA+IDAgJX0KICgKQEAgLTQ1LDE2 ICs0NSwxNyBAQCBDUkVBVEUgeyUgaWYgZGF0YS5yZWxwZXJzaXN0ZW5jZSAl fVVOTE9HR0VEIHslIGVuZGlmICV9VEFCTEUge3tjb25ufHF0SWRlbnQoZGF0 YQogeyUgZW5kaWYgJX0KICAgICB7e2Nvbm58cXRJZGVudChjLm5hbWUpfX0g e3tjLmNsdHlwZX19eyUgaWYgYy5hdHRsZW4gJX0KICh7e2MuYXR0bGVufX17 JSBpZiBjLmF0dHByZWNpc2lvbiV9LCB7e2MuYXR0cHJlY2lzaW9ufX17JSBl bmRpZiAlfSl7JSBlbmRpZiAlfXslIGlmIGMuaGFzU3FyQnJhY2tldCAlfQot W117JSBlbmRpZiAlfXslIGlmIGMuY29sbHNwY25hbWUgJX0gQ09MTEFURSB7 e2MuY29sbHNwY25hbWV9fXslIGVuZGlmICV9eyUgaWYgYy5hdHRub3RudWxs ICV9IE5PVCBOVUxMeyUgZW5kaWYgJX17JSBpZiBjLmRlZnZhbCAlfSBERUZB VUxUIHt7Yy5kZWZ2YWx8cXRMaXRlcmFsfX17JSBlbmRpZiAlfQorW117JSBl bmRpZiAlfXslIGlmIGMuY29sbHNwY25hbWUgJX0gQ09MTEFURSB7e2MuY29s bHNwY25hbWV9fXslIGVuZGlmICV9eyUgaWYgYy5hdHRub3RudWxsICV9IE5P VCBOVUxMeyUgZW5kaWYgJX17JSBpZiBjLmRlZnZhbCAlfSBERUZBVUxUIHt7 Yy5kZWZ2YWx9fXslIGVuZGlmICV9CiB7JSBlbmRpZiAlfQogeyUgZW5kZm9y ICV9Ci17IyBNYWNybyB0byByZW5kZXIgZm9yIGNvbnN0cmFpbnRzICN9Ci17 JSBpZiBkYXRhLnByaW1hcnlfa2V5fGxlbmd0aCA+IDAgJX0KLXt7Q09OU1RS QUlOVFMuUFJJTUFSWV9LRVkoY29ubiwgZGF0YS5wcmltYXJ5X2tleVswXSl9 fXslIGVuZGlmICV9eyUgaWYgZGF0YS51bmlxdWVfY29uc3RyYWludHxsZW5n dGggPiAwICV9Ci17e0NPTlNUUkFJTlRTLlVOSVFVRShjb25uLCBkYXRhLnVu aXF1ZV9jb25zdHJhaW50KX19eyUgZW5kaWYgJX17JSBpZiBkYXRhLmZvcmVp Z25fa2V5fGxlbmd0aCA+IDAgJX0KLXt7Q09OU1RSQUlOVFMuRk9SRUlHTl9L RVkoY29ubiwgZGF0YS5mb3JlaWduX2tleSl9fXslIGVuZGlmICV9eyUgaWYg ZGF0YS5jaGVja19jb25zdHJhaW50fGxlbmd0aCA+IDAgJX0KLXt7Q09OU1RS QUlOVFMuQ0hFQ0soY29ubiwgZGF0YS5jaGVja19jb25zdHJhaW50KX19eyUg ZW5kaWYgJX0KIHslIGVuZGlmICV9Cit7IyBNYWNybyB0byByZW5kZXIgZm9y IGNvbnN0cmFpbnRzICN9Cit7JSBpZiBkYXRhLnByaW1hcnlfa2V5fGxlbmd0 aCA+IDAgJX17JSBpZiBkYXRhLmNvbHVtbnN8bGVuZ3RoID4gMCAlfSx7JSBl bmRpZiAlfQore3tDT05TVFJBSU5UUy5QUklNQVJZX0tFWShjb25uLCBkYXRh LnByaW1hcnlfa2V5WzBdKX19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnVuaXF1 ZV9jb25zdHJhaW50fGxlbmd0aCA+IDAgJX17JSBpZiBkYXRhLmNvbHVtbnN8 bGVuZ3RoID4gMCBvciBkYXRhLnByaW1hcnlfa2V5fGxlbmd0aCA+IDAgJX0s eyUgZW5kaWYgJX0KK3t7Q09OU1RSQUlOVFMuVU5JUVVFKGNvbm4sIGRhdGEu dW5pcXVlX2NvbnN0cmFpbnQpfX17JSBlbmRpZiAlfXslIGlmIGRhdGEuZm9y ZWlnbl9rZXl8bGVuZ3RoID4gMCAlfXslIGlmIGRhdGEuY29sdW1uc3xsZW5n dGggPiAwIG9yIGRhdGEucHJpbWFyeV9rZXl8bGVuZ3RoID4gMCBvciBkYXRh LnVuaXF1ZV9jb25zdHJhaW50fGxlbmd0aCA+IDAgJX0seyUgZW5kaWYgJX0K K3t7Q09OU1RSQUlOVFMuRk9SRUlHTl9LRVkoY29ubiwgZGF0YS5mb3JlaWdu X2tleSl9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5jaGVja19jb25zdHJhaW50 fGxlbmd0aCA+IDAgJX17JSBpZiBkYXRhLmNvbHVtbnN8bGVuZ3RoID4gMCBv ciBkYXRhLnByaW1hcnlfa2V5fGxlbmd0aCA+IDAgb3IgZGF0YS51bmlxdWVf Y29uc3RyYWludHxsZW5ndGggPiAwIG9yIGRhdGEuZm9yZWlnbl9rZXl8bGVu Z3RoID4gMCAlfSx7JSBlbmRpZiAlfQore3tDT05TVFJBSU5UUy5DSEVDSyhj b25uLCBkYXRhLmNoZWNrX2NvbnN0cmFpbnQpfX17JSBlbmRpZiAlfXslIGlm IGRhdGEuZXhjbHVkZV9jb25zdHJhaW50fGxlbmd0aCA+IDAgJX17JSBpZiBk YXRhLmNvbHVtbnN8bGVuZ3RoID4gMCBvciBkYXRhLnByaW1hcnlfa2V5fGxl bmd0aCA+IDAgb3IgZGF0YS51bmlxdWVfY29uc3RyYWludHxsZW5ndGggPiAw IG9yIGRhdGEuZm9yZWlnbl9rZXl8bGVuZ3RoID4gMCBvciBkYXRhLmNoZWNr X2NvbnN0cmFpbnR8bGVuZ3RoID4gMCAlfSx7JSBlbmRpZiAlfQore3tDT05T VFJBSU5UUy5FWENMVURFKGNvbm4sIGRhdGEuZXhjbHVkZV9jb25zdHJhaW50 KX19eyUgZW5kaWYgJX0KIHslIGlmIGRhdGEubGlrZV9yZWxhdGlvbiBvciBk YXRhLmNvbGxfaW5oZXJpdHMgb3IgZGF0YS5jb2x1bW5zfGxlbmd0aCA+IDAg JX0KIAogKQpAQCAtOTMsNyArOTQsNyBAQCBBTFRFUiBUQUJMRSB7e2Nvbm58 cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKX19CiB7JSBpZiBkYXRh LnNlY2xhYmVscyBhbmQgZGF0YS5zZWNsYWJlbHN8bGVuZ3RoID4gMCAlfQog CiB7JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVscyAlfQote3sgU0VDTEFCTEUu U0VUKGNvbm4sICdUQUJMRScsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5z ZWN1cml0eV9sYWJlbCwgZGF0YS5zY2hlbWEpIH19Cit7eyBTRUNMQUJMRS5T RVQoY29ubiwgJ1RBQkxFJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLmxh YmVsLCBkYXRhLnNjaGVtYSkgfX0KIHslIGVuZGZvciAlfQogeyUgZW5kaWYg JX0KIHsjIyMgIEFDTCBvbiBUYWJsZSAjIyN9CkBAIC0xMzgsNyArMTM5LDcg QEAgQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRh dGEubmFtZSl9fQogeyUgaWYgYy5zZWNsYWJlbHMgYW5kIGMuc2VjbGFiZWxz fGxlbmd0aCA+IDAgJX0KIAogeyUgZm9yIHIgaW4gYy5zZWNsYWJlbHMgJX0K LXt7IENPTFVNTl9TRUNMQUJMRS5BUFBMWShjb25uLCAnQ09MVU1OJyxkYXRh LnNjaGVtYSwgZGF0YS5uYW1lLCBjLm5hbWUsIHIucHJvdmlkZXIsIHIuc2Vj dXJpdHlfbGFiZWwpIH19Cit7eyBDT0xVTU5fU0VDTEFCTEUuQVBQTFkoY29u biwgJ0NPTFVNTicsZGF0YS5zY2hlbWEsIGRhdGEubmFtZSwgYy5uYW1lLCBy LnByb3ZpZGVyLCByLmxhYmVsKSB9fQogeyUgZW5kZm9yICV9CiB7JSBlbmRp ZiAlfQogeyUgZW5kZm9yICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlL3NxbC85LjFfcGx1cy9nZXRfb2Z0 eXBlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFi bGUvc3FsLzkuMV9wbHVzL2dldF9vZnR5cGUuc3FsCmluZGV4IGJjYTdmNzcu LmFlZDQyZjIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90 ZW1wbGF0ZXMvdGFibGUvc3FsLzkuMV9wbHVzL2dldF9vZnR5cGUuc3FsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUvc3Fs LzkuMV9wbHVzL2dldF9vZnR5cGUuc3FsCkBAIC0xLDQgKzEsNSBAQAotU0VM RUNUIHQub2lkLCB0LnR5cG5hbWUKK1NFTEVDVCB0Lm9pZCwKKyAgcXVvdGVf aWRlbnQobi5uc3BuYW1lKXx8Jy4nfHxxdW90ZV9pZGVudCh0LnR5cG5hbWUp IEFTIHR5cG5hbWUKICAgRlJPTSBwZ190eXBlIHQsIHBnX25hbWVzcGFjZSBu CiBXSEVSRSB0LnR5cHR5cGU9J2MnIEFORCB0LnR5cG5hbWVzcGFjZT1uLm9p ZAogICBBTkQgTk9UIChuLm5zcG5hbWUgbGlrZSAncGdfJScgT1Igbi5uc3Bu YW1lPSdpbmZvcm1hdGlvbl9zY2hlbWEnKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZS9zcWwvOS4xX3BsdXMv dXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMv dGFibGUvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwKaW5kZXggMjcwYzZjOS4u YTk3YWMzMCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rl bXBsYXRlcy90YWJsZS9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlL3NxbC85LjFf cGx1cy91cGRhdGUuc3FsCkBAIC0xODksMTIgKzE4OSwxMiBAQCBDT01NRU5U IE9OIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5h bWUpfX0KIHslIGVuZGlmICV9CiB7JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVs cyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0KIHslIGZvciBy IGluIHNlY2xhYmVscy5hZGRlZCAlfQote3sgU0VDTEFCTEUuU0VUKGNvbm4s ICdUQUJMRScsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9s YWJlbCwgZGF0YS5zY2hlbWEpIH19Cit7eyBTRUNMQUJMRS5TRVQoY29ubiwg J1RBQkxFJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBkYXRh LnNjaGVtYSkgfX0KIHslIGVuZGZvciAlfQogeyUgZW5kaWYgJX0KIHslIGlm ICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2Vk fGxlbmd0aCA+IDAgJX0KIHslIGZvciByIGluIHNlY2xhYmVscy5jaGFuZ2Vk ICV9Ci17eyBTRUNMQUJMRS5TRVQoY29ubiwgJ1RBQkxFJywgZGF0YS5uYW1l LCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBkYXRhLnNjaGVtYSkg fX0KK3t7IFNFQ0xBQkxFLlNFVChjb25uLCAnVEFCTEUnLCBkYXRhLm5hbWUs IHIucHJvdmlkZXIsIHIubGFiZWwsIGRhdGEuc2NoZW1hKSB9fQogeyUgZW5k Zm9yICV9CiB7JSBlbmRpZiAlfQogCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlL3NxbC85LjVfcGx1cy9jcmVh dGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJs ZS9zcWwvOS41X3BsdXMvY3JlYXRlLnNxbAppbmRleCA1MDc1NDA0Li5mNDVk YWE0IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxh dGVzL3RhYmxlL3NxbC85LjVfcGx1cy9jcmVhdGUuc3FsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUvc3FsLzkuNV9wbHVz L2NyZWF0ZS5zcWwKQEAgLTE3LDcgKzE3LDcgQEAKIHslIGVuZGlmICV9CiBD UkVBVEUgeyUgaWYgZGF0YS5yZWxwZXJzaXN0ZW5jZSAlfVVOTE9HR0VEIHsl IGVuZGlmICV9VEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRh dGEubmFtZSl9fXt7ZW1wdHlfYnJhY2tldH19CiB7JSBpZiBkYXRhLnR5cG5h bWUgJX0KLSAgICBPRiB7eyBjb25ufHF0SWRlbnQoZGF0YS50eXBuYW1lKSB9 fQorICAgIE9GIHt7IGRhdGEudHlwbmFtZSB9fQogeyUgZW5kaWYgJX0KIHsl IGlmIGRhdGEubGlrZV9yZWxhdGlvbiBvciBkYXRhLmNvbGxfaW5oZXJpdHMg b3IgZGF0YS5jb2x1bW5zfGxlbmd0aCA+IDAgJX0KICgKQEAgLTQ1LDE2ICs0 NSwxNyBAQCBDUkVBVEUgeyUgaWYgZGF0YS5yZWxwZXJzaXN0ZW5jZSAlfVVO TE9HR0VEIHslIGVuZGlmICV9VEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YQog eyUgZW5kaWYgJX0KICAgICB7e2Nvbm58cXRJZGVudChjLm5hbWUpfX0ge3tj LmNsdHlwZX19eyUgaWYgYy5hdHRsZW4gJX0KICh7e2MuYXR0bGVufX17JSBp ZiBjLmF0dHByZWNpc2lvbiV9LCB7e2MuYXR0cHJlY2lzaW9ufX17JSBlbmRp ZiAlfSl7JSBlbmRpZiAlfXslIGlmIGMuaGFzU3FyQnJhY2tldCAlfQotW117 JSBlbmRpZiAlfXslIGlmIGMuY29sbHNwY25hbWUgJX0gQ09MTEFURSB7e2Mu Y29sbHNwY25hbWV9fXslIGVuZGlmICV9eyUgaWYgYy5hdHRub3RudWxsICV9 IE5PVCBOVUxMeyUgZW5kaWYgJX17JSBpZiBjLmRlZnZhbCAlfSBERUZBVUxU IHt7Yy5kZWZ2YWx8cXRMaXRlcmFsfX17JSBlbmRpZiAlfQorW117JSBlbmRp ZiAlfXslIGlmIGMuY29sbHNwY25hbWUgJX0gQ09MTEFURSB7e2MuY29sbHNw Y25hbWV9fXslIGVuZGlmICV9eyUgaWYgYy5hdHRub3RudWxsICV9IE5PVCBO VUxMeyUgZW5kaWYgJX17JSBpZiBjLmRlZnZhbCAlfSBERUZBVUxUIHt7Yy5k ZWZ2YWx9fXslIGVuZGlmICV9CiB7JSBlbmRpZiAlfQogeyUgZW5kZm9yICV9 Ci17IyBNYWNybyB0byByZW5kZXIgZm9yIGNvbnN0cmFpbnRzICN9Ci17JSBp ZiBkYXRhLnByaW1hcnlfa2V5fGxlbmd0aCA+IDAgJX0KLXt7Q09OU1RSQUlO VFMuUFJJTUFSWV9LRVkoY29ubiwgZGF0YS5wcmltYXJ5X2tleVswXSl9fXsl IGVuZGlmICV9eyUgaWYgZGF0YS51bmlxdWVfY29uc3RyYWludHxsZW5ndGgg PiAwICV9Ci17e0NPTlNUUkFJTlRTLlVOSVFVRShjb25uLCBkYXRhLnVuaXF1 ZV9jb25zdHJhaW50KX19eyUgZW5kaWYgJX17JSBpZiBkYXRhLmZvcmVpZ25f a2V5fGxlbmd0aCA+IDAgJX0KLXt7Q09OU1RSQUlOVFMuRk9SRUlHTl9LRVko Y29ubiwgZGF0YS5mb3JlaWduX2tleSl9fXslIGVuZGlmICV9eyUgaWYgZGF0 YS5jaGVja19jb25zdHJhaW50fGxlbmd0aCA+IDAgJX0KLXt7Q09OU1RSQUlO VFMuQ0hFQ0soY29ubiwgZGF0YS5jaGVja19jb25zdHJhaW50KX19eyUgZW5k aWYgJX0KIHslIGVuZGlmICV9Cit7IyBNYWNybyB0byByZW5kZXIgZm9yIGNv bnN0cmFpbnRzICN9Cit7JSBpZiBkYXRhLnByaW1hcnlfa2V5fGxlbmd0aCA+ IDAgJX17JSBpZiBkYXRhLmNvbHVtbnN8bGVuZ3RoID4gMCAlfSx7JSBlbmRp ZiAlfQore3tDT05TVFJBSU5UUy5QUklNQVJZX0tFWShjb25uLCBkYXRhLnBy aW1hcnlfa2V5WzBdKX19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnVuaXF1ZV9j b25zdHJhaW50fGxlbmd0aCA+IDAgJX17JSBpZiBkYXRhLmNvbHVtbnN8bGVu Z3RoID4gMCBvciBkYXRhLnByaW1hcnlfa2V5fGxlbmd0aCA+IDAgJX0seyUg ZW5kaWYgJX0KK3t7Q09OU1RSQUlOVFMuVU5JUVVFKGNvbm4sIGRhdGEudW5p cXVlX2NvbnN0cmFpbnQpfX17JSBlbmRpZiAlfXslIGlmIGRhdGEuZm9yZWln bl9rZXl8bGVuZ3RoID4gMCAlfXslIGlmIGRhdGEuY29sdW1uc3xsZW5ndGgg PiAwIG9yIGRhdGEucHJpbWFyeV9rZXl8bGVuZ3RoID4gMCBvciBkYXRhLnVu aXF1ZV9jb25zdHJhaW50fGxlbmd0aCA+IDAgJX0seyUgZW5kaWYgJX0KK3t7 Q09OU1RSQUlOVFMuRk9SRUlHTl9LRVkoY29ubiwgZGF0YS5mb3JlaWduX2tl eSl9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5jaGVja19jb25zdHJhaW50fGxl bmd0aCA+IDAgJX17JSBpZiBkYXRhLmNvbHVtbnN8bGVuZ3RoID4gMCBvciBk YXRhLnByaW1hcnlfa2V5fGxlbmd0aCA+IDAgb3IgZGF0YS51bmlxdWVfY29u c3RyYWludHxsZW5ndGggPiAwIG9yIGRhdGEuZm9yZWlnbl9rZXl8bGVuZ3Ro ID4gMCAlfSx7JSBlbmRpZiAlfQore3tDT05TVFJBSU5UUy5DSEVDSyhjb25u LCBkYXRhLmNoZWNrX2NvbnN0cmFpbnQpfX17JSBlbmRpZiAlfXslIGlmIGRh dGEuZXhjbHVkZV9jb25zdHJhaW50fGxlbmd0aCA+IDAgJX17JSBpZiBkYXRh LmNvbHVtbnN8bGVuZ3RoID4gMCBvciBkYXRhLnByaW1hcnlfa2V5fGxlbmd0 aCA+IDAgb3IgZGF0YS51bmlxdWVfY29uc3RyYWludHxsZW5ndGggPiAwIG9y IGRhdGEuZm9yZWlnbl9rZXl8bGVuZ3RoID4gMCBvciBkYXRhLmNoZWNrX2Nv bnN0cmFpbnR8bGVuZ3RoID4gMCAlfSx7JSBlbmRpZiAlfQore3tDT05TVFJB SU5UUy5FWENMVURFKGNvbm4sIGRhdGEuZXhjbHVkZV9jb25zdHJhaW50KX19 eyUgZW5kaWYgJX0KIHslIGlmIGRhdGEubGlrZV9yZWxhdGlvbiBvciBkYXRh LmNvbGxfaW5oZXJpdHMgb3IgZGF0YS5jb2x1bW5zfGxlbmd0aCA+IDAgJX0K IAogKQpAQCAtOTMsNyArOTQsNyBAQCBBTFRFUiBUQUJMRSB7e2Nvbm58cXRJ ZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKX19CiB7JSBpZiBkYXRhLnNl Y2xhYmVscyBhbmQgZGF0YS5zZWNsYWJlbHN8bGVuZ3RoID4gMCAlfQogCiB7 JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVscyAlfQote3sgU0VDTEFCTEUuU0VU KGNvbm4sICdUQUJMRScsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1 cml0eV9sYWJlbCwgZGF0YS5zY2hlbWEpIH19Cit7eyBTRUNMQUJMRS5TRVQo Y29ubiwgJ1RBQkxFJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLmxhYmVs LCBkYXRhLnNjaGVtYSkgfX0KIHslIGVuZGZvciAlfQogeyUgZW5kaWYgJX0K IHsjIyMgIEFDTCBvbiBUYWJsZSAjIyN9CkBAIC0xMzgsNyArMTM5LDcgQEAg QUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEu bmFtZSl9fQogeyUgaWYgYy5zZWNsYWJlbHMgYW5kIGMuc2VjbGFiZWxzfGxl bmd0aCA+IDAgJX0KIAogeyUgZm9yIHIgaW4gYy5zZWNsYWJlbHMgJX0KLXt7 IENPTFVNTl9TRUNMQUJMRS5BUFBMWShjb25uLCAnQ09MVU1OJyxkYXRhLnNj aGVtYSwgZGF0YS5uYW1lLCBjLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJp dHlfbGFiZWwpIH19Cit7eyBDT0xVTU5fU0VDTEFCTEUuQVBQTFkoY29ubiwg J0NPTFVNTicsZGF0YS5zY2hlbWEsIGRhdGEubmFtZSwgYy5uYW1lLCByLnBy b3ZpZGVyLCByLmxhYmVsKSB9fQogeyUgZW5kZm9yICV9CiB7JSBlbmRpZiAl fQogeyUgZW5kZm9yICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvdGVtcGxhdGVzL3RhYmxlL3NxbC85LjVfcGx1cy9nZXRfb2Z0eXBl LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUv c3FsLzkuNV9wbHVzL2dldF9vZnR5cGUuc3FsCmluZGV4IGJjYTdmNzcuLmFl ZDQyZjIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1w bGF0ZXMvdGFibGUvc3FsLzkuNV9wbHVzL2dldF9vZnR5cGUuc3FsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUvc3FsLzku NV9wbHVzL2dldF9vZnR5cGUuc3FsCkBAIC0xLDQgKzEsNSBAQAotU0VMRUNU IHQub2lkLCB0LnR5cG5hbWUKK1NFTEVDVCB0Lm9pZCwKKyAgcXVvdGVfaWRl bnQobi5uc3BuYW1lKXx8Jy4nfHxxdW90ZV9pZGVudCh0LnR5cG5hbWUpIEFT IHR5cG5hbWUKICAgRlJPTSBwZ190eXBlIHQsIHBnX25hbWVzcGFjZSBuCiBX SEVSRSB0LnR5cHR5cGU9J2MnIEFORCB0LnR5cG5hbWVzcGFjZT1uLm9pZAog ICBBTkQgTk9UIChuLm5zcG5hbWUgbGlrZSAncGdfJScgT1Igbi5uc3BuYW1l PSdpbmZvcm1hdGlvbl9zY2hlbWEnKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZS9zcWwvOS41X3BsdXMvdXBk YXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFi bGUvc3FsLzkuNV9wbHVzL3VwZGF0ZS5zcWwKaW5kZXggMjcwYzZjOS4uYTk3 YWMzMCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBs YXRlcy90YWJsZS9zcWwvOS41X3BsdXMvdXBkYXRlLnNxbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlL3NxbC85LjVfcGx1 cy91cGRhdGUuc3FsCkBAIC0xODksMTIgKzE4OSwxMiBAQCBDT01NRU5UIE9O IFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUp fX0KIHslIGVuZGlmICV9CiB7JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVscyBh bmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0KIHslIGZvciByIGlu IHNlY2xhYmVscy5hZGRlZCAlfQote3sgU0VDTEFCTEUuU0VUKGNvbm4sICdU QUJMRScsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJl bCwgZGF0YS5zY2hlbWEpIH19Cit7eyBTRUNMQUJMRS5TRVQoY29ubiwgJ1RB QkxFJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBkYXRhLnNj aGVtYSkgfX0KIHslIGVuZGZvciAlfQogeyUgZW5kaWYgJX0KIHslIGlmICdj aGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxl bmd0aCA+IDAgJX0KIHslIGZvciByIGluIHNlY2xhYmVscy5jaGFuZ2VkICV9 Ci17eyBTRUNMQUJMRS5TRVQoY29ubiwgJ1RBQkxFJywgZGF0YS5uYW1lLCBy LnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBkYXRhLnNjaGVtYSkgfX0K K3t7IFNFQ0xBQkxFLlNFVChjb25uLCAnVEFCTEUnLCBkYXRhLm5hbWUsIHIu cHJvdmlkZXIsIHIubGFiZWwsIGRhdGEuc2NoZW1hKSB9fQogeyUgZW5kZm9y ICV9CiB7JSBlbmRpZiAlfQogCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlL3NxbC9tYWNyb3MvY29uc3RyYWlu dHMubWFjcm8gYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3Rh YmxlL3NxbC9tYWNyb3MvY29uc3RyYWludHMubWFjcm8KaW5kZXggMmFjNDI5 Yy4uZmU3Mzg5YSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L3RlbXBsYXRlcy90YWJsZS9zcWwvbWFjcm9zL2NvbnN0cmFpbnRzLm1hY3Jv CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUv c3FsL21hY3Jvcy9jb25zdHJhaW50cy5tYWNybwpAQCAtNCw3ICs0LDggQEAK IHsjICAgIENSRUFURSBNT0RFIE9OTFkgICAgI30KIHsjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjI30KIHslIG1hY3JvIFBSSU1BUllfS0VZKGNvbm4sIGRh dGEpIC0lfQoteyUgaWYgZGF0YS5jb2x1bW5zfGxlbmd0aCA+IDAgJX0sCit7 JSBpZiBkYXRhLmNvbHVtbnN8bGVuZ3RoID4gMCAlfQorCiAgICAgeyUgaWYg ZGF0YS5uYW1lICV9Q09OU1RSQUlOVCB7e2Nvbm58cXRJZGVudChkYXRhLm5h bWUpfX0geyUgZW5kaWYgJX1QUklNQVJZIEtFWSAoeyUgZm9yIGMgaW4gZGF0 YS5jb2x1bW5zJX0KIHslIGlmIGxvb3AuaW5kZXggIT0gMSAlfSwgeyUgZW5k aWYgJX17e2Nvbm58cXRJZGVudChjLmNvbHVtbil9fXslIGVuZGZvciAlfSl7 JSBpZiBkYXRhLmZpbGxmYWN0b3IgJX0KIApAQCAtMTksNyArMjAsOCBAQAog eyUtIGVuZG1hY3JvICV9CiB7JSBtYWNybyBVTklRVUUoY29ubiwgdW5pcXVl X2RhdGEpIC0lfQogeyUgZm9yIGRhdGEgaW4gdW5pcXVlX2RhdGEgJX0KLXsl IGlmIGRhdGEuY29sdW1uc3xsZW5ndGggPiAwICV9LAoreyUgaWYgZGF0YS5j b2x1bW5zfGxlbmd0aCA+IDAgJX17JSBpZiBsb29wLmluZGV4ICE9MSAlfSx7 JSBlbmRpZiAlfQorCiAgICAgeyUgaWYgZGF0YS5uYW1lICV9Q09OU1RSQUlO VCB7e2Nvbm58cXRJZGVudChkYXRhLm5hbWUpfX0geyUgZW5kaWYgJX1VTklR VUUgKHslIGZvciBjIGluIGRhdGEuY29sdW1ucyV9CiB7JSBpZiBsb29wLmlu ZGV4ICE9IDEgJX0sIHslIGVuZGlmICV9e3tjb25ufHF0SWRlbnQoYy5jb2x1 bW4pfX17JSBlbmRmb3IgJX0peyUgaWYgZGF0YS5maWxsZmFjdG9yICV9CiAK QEAgLTM0LDE0ICszNiwxNSBAQAogeyUgZW5kZm9yICV9CiB7JS0gZW5kbWFj cm8gJX0KIHslIG1hY3JvIENIRUNLKGNvbm4sIGNoZWNrX2RhdGEpIC0lfQot eyUgZm9yIGRhdGEgaW4gY2hlY2tfZGF0YSAlfQotLAoreyUgZm9yIGRhdGEg aW4gY2hlY2tfZGF0YSAlfXslIGlmIGxvb3AuaW5kZXggIT0xICV9LHslIGVu ZGlmICV9CisKICAgICB7JSBpZiBkYXRhLm5hbWUgJX1DT05TVFJBSU5UIHt7 IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19IHslIGVuZGlmJX1DSEVDSyAo e3sgZGF0YS5jb25zcmMgfX0peyUgaWYgZGF0YS5jb252YWxpZGF0ZWQgJX0K ICBOT1QgVkFMSUR7JSBlbmRpZiAlfXslIGlmIGRhdGEuY29ubm9pbmhlcml0 ICV9IE5PIElOSEVSSVR7JSBlbmRpZiAlfQogeyUgZW5kZm9yICV9CiB7JS0g ZW5kbWFjcm8gJX0KIHslIG1hY3JvIEZPUkVJR05fS0VZKGNvbm4sIGZvcmVp Z25fa2V5X2RhdGEpIC0lfQoteyUgZm9yIGRhdGEgaW4gZm9yZWlnbl9rZXlf ZGF0YSAlfSwKK3slIGZvciBkYXRhIGluIGZvcmVpZ25fa2V5X2RhdGEgJX17 JSBpZiBsb29wLmluZGV4ICE9IDEgJX0seyUgZW5kaWYgJX0KKwogICAgIHsl IGlmIGRhdGEubmFtZSAlfUNPTlNUUkFJTlQge3tjb25ufHF0SWRlbnQoZGF0 YS5uYW1lKX19IHslIGVuZGlmICV9Rk9SRUlHTiBLRVkgKHslIGZvciBjb2x1 bW5vYmogaW4gZGF0YS5jb2x1bW5zICV9eyUgaWYgbG9vcC5pbmRleCAhPSAx ICV9CiAsIHslIGVuZGlmICV9e3sgY29ubnxxdElkZW50KGNvbHVtbm9iai5s b2NhbF9jb2x1bW4pfX17JSBlbmRmb3IgJX0pCiAgICAgICAgIFJFRkVSRU5D RVMge3sgY29ubnxxdElkZW50KGRhdGEucmVtb3RlX3NjaGVtYSwgZGF0YS5y ZW1vdGVfdGFibGUpIH19ICh7JSBmb3IgY29sdW1ub2JqIGluIGRhdGEuY29s dW1ucyAlfXslIGlmIGxvb3AuaW5kZXggIT0gMSAlfQpAQCAtNzEsNyArNzQs OCBAQAogeyUgZW5kZm9yICV9CiB7JS0gZW5kbWFjcm8gJX0KIHslIG1hY3Jv IEVYQ0xVREUoY29ubiwgZXhjbHVkZV9kYXRhKSAtJX0KLXslIGZvciBkYXRh IGluIGV4Y2x1ZGVfZGF0YSAlfSwKK3slIGZvciBkYXRhIGluIGV4Y2x1ZGVf ZGF0YSAlfXslIGlmIGxvb3AuaW5kZXggIT0gMSAlfSx7JSBlbmRpZiAlfQor CiAgICAgeyUgaWYgZGF0YS5uYW1lICV9Q09OU1RSQUlOVCB7eyBjb25ufHF0 SWRlbnQoZGF0YS5uYW1lKSB9fSB7JSBlbmRpZiV9RVhDTFVERSB7JSBpZiBk YXRhLmFtbmFtZSBhbmQgZGF0YS5hbW5hbWUgIT0gJycgJX1VU0lORyB7e2Rh dGEuYW1uYW1lfX17JSBlbmRpZiAlfSAoeyUgZm9yIGNvbCBpbiBkYXRhLmNv bHVtbnMgJX17JSBpZiBsb29wLmluZGV4ICE9IDEgJX0sCiAgICAgICAgIHsl IGVuZGlmICV9e3sgY29ubnxxdElkZW50KGNvbC5jb2x1bW4pfX0geyUgaWYg Y29sLm9wZXJfY2xhc3MgYW5kIGNvbC5vcGVyX2NsYXNzICE9ICcnICV9e3tj b2wub3Blcl9jbGFzc319IHslIGVuZGlmJX17JSBpZiBjb2wub3JkZXIgJX1B U0N7JSBlbHNlICV9REVTQ3slIGVuZGlmICV9IE5VTExTIHslIGlmIGNvbC5u dWxsc19vcmRlciAlfUZJUlNUeyUgZWxzZSAlfUxBU1R7JSBlbmRpZiAlfSBX SVRIIHt7Y29sLm9wZXJhdG9yfX17JSBlbmRmb3IgJX0peyUgaWYgZGF0YS5m aWxsZmFjdG9yICV9CiAK --001a113e2a76214a0d05331a40ce 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 --001a113e2a76214a0d05331a40ce--