Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d879P-0002y7-MB for pgadmin-hackers@arkaria.postgresql.org; Tue, 09 May 2017 15:34:12 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1d879O-000281-JY for pgadmin-hackers@arkaria.postgresql.org; Tue, 09 May 2017 15:34:10 +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 1d8794-0001hd-SO for pgadmin-hackers@postgresql.org; Tue, 09 May 2017 15:33:51 +0000 Received: from mail-io0-x230.google.com ([2607:f8b0:4001:c06::230]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1d878z-0007rV-Pj for pgadmin-hackers@postgresql.org; Tue, 09 May 2017 15:33:50 +0000 Received: by mail-io0-x230.google.com with SMTP id o12so4171478iod.3 for ; Tue, 09 May 2017 08:33:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pivotal-io.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=tQPKFmDVdWwMzanaPojHpjyDtzWCw8s/d14fPFLw0+M=; b=ZBfAgmxZM//pKW+NF6liN4rfCd+xQ27EGXyg74YafKJXlM/3mY39peXhGD76G6qaGF Fhfa0QWLDAsTCni3o8pEF4qzuxX8d75pHtgiDNsPw1TutWdO6z7Hm52/ggt/QxrdC0wA /Y/dZrig11Uk3VI+GGdV+u/YCBw6U9icmkZ2gOf9URXkzjES63t1GyVCNNCawtlKF6CG JXjDXVdgaK/Me4sdCoFLOS4neJPa186VHGjkDER0g7d3BQoGlfTnX17e6khU2mQOt/I5 wOm/kbkVbpKjeAoEo3hN7qm9ZFP46z0WvMuBfm8GY3gfwtLJxxkK1d1W/nITxSRRSUVS Tphw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=tQPKFmDVdWwMzanaPojHpjyDtzWCw8s/d14fPFLw0+M=; b=pdHrXdd6kdctbzll1caZ+7mmaQELkwhTLIOT1r45AbQzWDa+n+0UugbV8OOyAKLA0b 0G7fgRUUeubYaTVvoR7fzfAb1/+5u+0tk28sx3EZ2RUi6tQkOOEjufIC30jPC72ApI8o vt6PDD6JaznzfWg7QW5gdUfpjcvX5eKYCDkmnhAKd1zyL0+YYR4im3MWO2Qt4tDuMrGr JsSphE3GDvz1haR+b3MGbkyNmEtYgajkm35O4LqGCh3KKFcTeBSJd/Y8UVAnQ/pjnoUW oxewVDJuhdAZQ46axoo/mGRh7qXIcd/P40PDKUnk2/l/QTr1AT6Hco+aiKBHMFSrw74q I2/w== X-Gm-Message-State: AODbwcAquUlSwBcH7A2voo+wnWcGMd7rayFit9LQB+U+NLtDn89eE48q P28Q4hDACCSNigiaBlNqywe1Rfpgwo9B X-Received: by 10.107.185.10 with SMTP id j10mr563712iof.3.1494344023700; Tue, 09 May 2017 08:33:43 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.58.138 with HTTP; Tue, 9 May 2017 08:33:22 -0700 (PDT) In-Reply-To: References: From: Sarah McAlear Date: Tue, 9 May 2017 11:33:22 -0400 Message-ID: Subject: Re: [patch] Dependents and Dependencies in GreenPlum To: Akshay Joshi Cc: Dave Page , Robert Eckhardt , Joao Pedro De Almeida Pereira , Ashesh Vashi , pgadmin-hackers , Matthew Kleiman Content-Type: multipart/mixed; boundary=94eb2c06f5c6b505b5054f1914ba 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 --94eb2c06f5c6b505b5054f1914ba Content-Type: multipart/alternative; boundary=94eb2c06f5c6b505a4054f1914b8 --94eb2c06f5c6b505a4054f1914b8 Content-Type: text/plain; charset=UTF-8 Hi Akshay! > Some test file names ended with "*_sql_template.py*" do we need to add > that string ? we added this suffix after moving the tests up a level to tables/tests to clarify what subject they applied to. we changed the suffix to "_sql.py" - Files "test_column_acl_sql_template.py" and "test_column_properties_sql_ > template.py" should be moved from tables->tests to tables->column->tests. > As it's related to column. > - Files "test_trigger_get_oid_sql_template.py" and "test_trigger_nodes_sql > _template.py" should be moved from tables->tests to > tables->triggers->tests. As its related to triggers. these tests are related to the sql files in tables/templates/column, not tables/column, so moving them into tables/column would be more confusing. Following test cases are failing Thank you, fixed, see new patch. Can you confirm that TestTablesNodeSql doesn't fail in your environment? Thanks, George & Sarah --94eb2c06f5c6b505a4054f1914b8 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Akshay!
=C2=A0
Some test file names ended with "_sql_template.py" do we need to add that = string ?=C2=A0
we added this suffix after moving th= e tests up a level to tables/tests to clarify what subject they applied to.= we changed the suffix to "_sql.py"

- Files "te= st_column_acl_sql_template.py" and "test_column_properties_sql_template.py" should be moved from tables->tests to tables-= >column->tests. As it's related to column.
- Files "= test_trigger_get_oid_sql= _template.py" and "test_trigger_nodes_sql_template.py" should be moved from tab= les->tests to tables->triggers->tests. As its related to triggers.=
these tests are related to the sql files in tables= /templates/column, not tables/column, so moving them into tables/column wou= ld be more confusing.=C2=A0

Following test cases are failing
Thank you, fixed, see new patch. Can you confirm that Te= stTablesNodeSql doesn't fail in your environment?

<= div>Thanks,
George & Sarah

--94eb2c06f5c6b505a4054f1914b8-- --94eb2c06f5c6b505b5054f1914ba Content-Type: application/octet-stream; name="0001-Fix-error-while-checking-Dependents-and-Dependencies.patch" Content-Disposition: attachment; filename="0001-Fix-error-while-checking-Dependents-and-Dependencies.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j2hpsb4x0 RnJvbSAwY2YxYjkzOGZmMDI0ZTllOWY4YzcwMTdiNDZhYWE5YzU3YmZlNzJm IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHZW9yZ2UgR2VsYXNo dmlsaSBhbmQgU2FyYWggTWNBbGVhcgogPHBhaXIrZ2dlbGFzaHZpbGkrc21j YWxlYXJAcGl2b3RhbC5pbz4KRGF0ZTogVHVlLCA5IE1heSAyMDE3IDExOjMw OjI4IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gRml4IGVycm9yIHdoaWxlIGNo ZWNraW5nIERlcGVuZGVudHMgYW5kIERlcGVuZGVuY2llcyBvZgogb2JqZWN0 IGluIEdyZWVuUGx1bToKCi0gTWFrZSBTUUwgdGVtcGxhdGUgVVQgdmlzaWJs ZSB0byBydW50ZXN0Ci0gQWRkIFNRTCB0byByZXRyaWV2ZSBkZXBlbmRlbmNp ZXMgZm9yIEdyZWVuUGx1bQotIEV4dHJhY3QgUm9sZSBEZXBlbmRlbmNpZXMg ZnJvbSBzaW5nbGUgZGVwZW5kZW50cyBmaWxlCi0gU3BsaXQgdGVtcGxhdGUg Zm9yIGRlcGVuZGVudHMgU1FMCi0gQWRkICdTRVQgTE9DQUwgam9pbl9jb2xs YXBzZV9saW1pdD04OycgdG8gZGVwZW5kZW5jeS9kZXBlbmRlbnRzIHRvIG1h a2UgdGhlbSBmYXN0ZXIuIE9ubHkgY2F2ZWF0IGlzIHRoYXQgdGhpcyB3aWxs IHJlbWFpbiB1bmNoYW5nZWQgZm9yIHRoZSBzZXNzaW9uCi0gQWRkIG1vcmUg ZXhwZWN0YXRpb25zIHRvIHJvbGUgZGVwZW5kZW5jaWVzCi0gU3BlY2lmeSBv cmRlciBvZiBxdWVyeSBpbiBjb3B5X3NlbGVjdGVkX3F1ZXJ5X3Jlc3VsdHNf ZmVhdHVyZV90ZXN0IHRvIG1ha2UgdGVzdHMgcGFzcwotIEdyZWVuUGx1bSBh bmQgUG9zdGdyZXMgb3JkZXIgdGhlc2UgcmVzdWx0cyBkaWZmZXJlbnRseSBi eSBkZWZhdWx0IHdpdGhvdXQgYW4gb3JkZXIgY2xhdXNlIHNwZWNpZmllZC4K LSBTa2lwIFhTUyB0ZXN0IGZvciBHcmVlblBsdW0KLSBNb3ZlZCB0ZXN0cyB0 byB0aGUgY29ycmVjdCBmb2xkZXJzCi0tLQogLi4uL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy90ZW1wbGF0ZXMvX19pbml0X18ucHkgfCAgMAogLi4uL3Nj aGVtYXMvdGFibGVzL3RlbXBsYXRlcy9jb2x1bW4vX19pbml0X18ucHkgICAg fCAgMAogLi4uL3RlbXBsYXRlcy9jb2x1bW4vc3FsLzkuMl9wbHVzL19faW5p dF9fLnB5ICAgICAgfCAgMAogLi4uL3RlbXBsYXRlcy9jb2x1bW4vc3FsL2Rl ZmF1bHQvX19pbml0X18ucHkgICAgICAgfCAgMAogLi4uL3RlbXBsYXRlcy9j b2x1bW4vc3FsL3Rlc3RzL3Rlc3RfY29sdW1uX2FjbC5weSAgfCA0NyAtLS0t LS0tLS0tLS0tCiAuLi4vY29sdW1uL3NxbC90ZXN0cy90ZXN0X2NvbHVtbl9w cm9wZXJ0aWVzLnB5ICAgICB8IDU2IC0tLS0tLS0tLS0tLS0tLS0KIC4uLi9z Y2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUvX19pbml0X18ucHkgICAg IHwgIDAKIC4uLi9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUvc3Fs L19faW5pdF9fLnB5IHwgIDAKIC4uLi90YWJsZXMvdGVtcGxhdGVzL3RhYmxl L3NxbC90ZXN0cy9fX2luaXRfXy5weSAgIHwgIDAKIC4uLi90ZW1wbGF0ZXMv dGFibGUvc3FsL3Rlc3RzL3Rlc3RfdGFibGVzX2FjbC5weSAgIHwgNjYgLS0t LS0tLS0tLS0tLS0tLS0tLQogLi4uL3RlbXBsYXRlcy90YWJsZS9zcWwvdGVz dHMvdGVzdF90YWJsZXNfbm9kZS5weSAgfCA3NCAtLS0tLS0tLS0tLS0tLS0t LS0tLS0KIC4uLi90YWJsZS9zcWwvdGVzdHMvdGVzdF90YWJsZXNfcHJvcGVy dGllcy5weSAgICAgIHwgNzcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLi4u L3RlbXBsYXRlcy90cmlnZ2VyL3NxbC85LjFfcGx1cy9fX2luaXRfXy5weSAg ICAgfCAgMAogLi4uL3RhYmxlcy90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvX19p bml0X18ucHkgICAgICAgfCAgMAogLi4uL3RlbXBsYXRlcy90cmlnZ2VyL3Nx bC9kZWZhdWx0L19faW5pdF9fLnB5ICAgICAgfCAgMAogLi4uL3RhYmxlcy90 ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvdGVzdHMvX19pbml0X18ucHkgfCAgMAog Li4uL3RyaWdnZXIvc3FsL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9nZXRfb2lkLnB5 ICAgICAgfCA2MCAtLS0tLS0tLS0tLS0tLS0tLQogLi4uL3NjaGVtYXMvdGFi bGVzL3Rlc3RzL3Rlc3RfY29sdW1uX2FjbF9zcWwucHkgICAgfCA1MSArKysr KysrKysrKysrKwogLi4uL3RhYmxlcy90ZXN0cy90ZXN0X2NvbHVtbl9wcm9w ZXJ0aWVzX3NxbC5weSAgICAgfCA1MiArKysrKysrKysrKysrKysKIC4uLi9z Y2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxlc19hY2xfc3FsLnB5ICAg IHwgNTQgKysrKysrKysrKysrKysrCiAuLi4vc2NoZW1hcy90YWJsZXMvdGVz dHMvdGVzdF90YWJsZXNfbm9kZV9zcWwucHkgICB8IDU1ICsrKysrKysrKysr KysrKysKIC4uLi90YWJsZXMvdGVzdHMvdGVzdF90YWJsZXNfcHJvcGVydGll c19zcWwucHkgICAgIHwgNzIgKysrKysrKysrKysrKysrKysrKysKIC4uLi90 YWJsZXMvdGVzdHMvdGVzdF90cmlnZ2VyX2dldF9vaWRfc3FsLnB5ICAgICAg IHwgNTIgKysrKysrKysrKysrKysrCiAuLi4vc2NoZW1hcy90YWJsZXMvdGVz dHMvdGVzdF90cmlnZ2VyX25vZGVzX3NxbC5weSB8IDQzICsrKysrKysrKysr KwogLi4uL2RlcGVuZHMvc3FsLzkuMV9wbHVzL2RlcGVuZGVuY2llcy5zcWwg ICAgICAgICAgfCA0NSArKysrKysrKysrKysrCiAuLi4vdGVtcGxhdGVzL2Rl cGVuZHMvc3FsLzkuMV9wbHVzL2RlcGVuZGVudHMuc3FsICB8IDQ0ICsrKysr KysrKysrKysKIC4uLi90ZW1wbGF0ZXMvZGVwZW5kcy9zcWwvZGVmYXVsdC9k ZXBlbmRlbmNpZXMuc3FsIHwgNDIgKysrKysrKysrKysrCiAuLi4vdGVtcGxh dGVzL2RlcGVuZHMvc3FsL2RlZmF1bHQvZGVwZW5kZW50cy5zcWwgICB8IDY2 ICstLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9kZXBlbmRzL3NxbC9kZWZhdWx0 L3JvbGVfZGVwZW5kZW5jaWVzLnNxbCAgICAgIHwgIDQgKysKIC4uLi9zZXJ2 ZXJzL3Rlc3RzL3Rlc3RfZGVwZW5kZW5jaWVzX3NxbC5weSAgICAgICAgIHwg NTEgKysrKysrKysrKysrKysKIC4uLi9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfZGVw ZW5kZW50c19zcWwucHkgICAgICAgICAgIHwgNTEgKysrKysrKysrKysrKysK IC4uLi9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfcm9sZV9kZXBlbmRlbmNpZXNfc3Fs LnB5ICAgIHwgNTEgKysrKysrKysrKysrKysKIHdlYi9wZ2FkbWluL2Jyb3dz ZXIvdXRpbHMucHkgICAgICAgICAgICAgICAgICAgICAgIHwgMTAgKy0tCiAu Li4vY29weV9zZWxlY3RlZF9xdWVyeV9yZXN1bHRzX2ZlYXR1cmVfdGVzdC5w eSAgICB8IDExICsrKy0KIC4uLi94c3NfY2hlY2tzX3BnYWRtaW5fZGVidWdn ZXJfdGVzdC5weSAgICAgICAgICAgIHwgIDYgKy0KIC4uLi9weXRob25fdGVz dF91dGlscy9zcWxfdGVtcGxhdGVfdGVzdF9iYXNlLnB5fSAgIHwgNTIgKysr KysrKystLS0tLS0tCiAzNiBmaWxlcyBjaGFuZ2VkLCA3MjAgaW5zZXJ0aW9u cygrKSwgNDcyIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHdl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvX19pbml0X18ucHkKIGRl bGV0ZSBtb2RlIDEwMDY0NCB3ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxh dGVzL2NvbHVtbi9fX2luaXRfXy5weQogZGVsZXRlIG1vZGUgMTAwNjQ0IHdl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjJf cGx1cy9fX2luaXRfXy5weQogZGVsZXRlIG1vZGUgMTAwNjQ0IHdlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1uL3NxbC9kZWZhdWx0L19f aW5pdF9fLnB5CiBkZWxldGUgbW9kZSAxMDA2NDQgd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL3RlbXBsYXRlcy9jb2x1bW4vc3FsL3Rlc3RzL3Rlc3RfY29sdW1u X2FjbC5weQogZGVsZXRlIG1vZGUgMTAwNjQ0IHdlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90ZW1wbGF0ZXMvY29sdW1uL3NxbC90ZXN0cy90ZXN0X2NvbHVtbl9w cm9wZXJ0aWVzLnB5CiBkZWxldGUgbW9kZSAxMDA2NDQgd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZS9fX2luaXRfXy5weQogZGVsZXRl IG1vZGUgMTAwNjQ0IHdlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMv dGFibGUvc3FsL19faW5pdF9fLnB5CiBkZWxldGUgbW9kZSAxMDA2NDQgd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZS9zcWwvdGVzdHMv X19pbml0X18ucHkKIGRlbGV0ZSBtb2RlIDEwMDY0NCB3ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlL3NxbC90ZXN0cy90ZXN0X3RhYmxl c19hY2wucHkKIGRlbGV0ZSBtb2RlIDEwMDY0NCB3ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvdGVtcGxhdGVzL3RhYmxlL3NxbC90ZXN0cy90ZXN0X3RhYmxlc19u b2RlLnB5CiBkZWxldGUgbW9kZSAxMDA2NDQgd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3RlbXBsYXRlcy90YWJsZS9zcWwvdGVzdHMvdGVzdF90YWJsZXNfcHJv cGVydGllcy5weQogZGVsZXRlIG1vZGUgMTAwNjQ0IHdlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvOS4xX3BsdXMvX19pbml0 X18ucHkKIGRlbGV0ZSBtb2RlIDEwMDY0NCB3ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvdGVtcGxhdGVzL3RyaWdnZXIvc3FsL19faW5pdF9fLnB5CiBkZWxldGUg bW9kZSAxMDA2NDQgd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90 cmlnZ2VyL3NxbC9kZWZhdWx0L19faW5pdF9fLnB5CiBkZWxldGUgbW9kZSAx MDA2NDQgd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90cmlnZ2Vy L3NxbC90ZXN0cy9fX2luaXRfXy5weQogZGVsZXRlIG1vZGUgMTAwNjQ0IHdl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvdGVz dHMvdGVzdF90cmlnZ2VyX2dldF9vaWQucHkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCB3ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF9jb2x1bW5fYWNs X3NxbC5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHdlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90ZXN0cy90ZXN0X2NvbHVtbl9wcm9wZXJ0aWVzX3NxbC5weQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHdlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90 ZXN0X3RhYmxlc19hY2xfc3FsLnB5CiBjcmVhdGUgbW9kZSAxMDA2NDQgd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVzX25vZGVfc3Fs LnB5CiBjcmVhdGUgbW9kZSAxMDA2NDQgd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L3Rlc3RzL3Rlc3RfdGFibGVzX3Byb3BlcnRpZXNfc3FsLnB5CiBjcmVhdGUg bW9kZSAxMDA2NDQgd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3Rf dHJpZ2dlcl9nZXRfb2lkX3NxbC5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHdl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RyaWdnZXJfbm9kZXNf c3FsLnB5CiBjcmVhdGUgbW9kZSAxMDA2NDQgd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVtcGxhdGVzL2RlcGVuZHMvc3Fs LzkuMV9wbHVzL2RlcGVuZGVuY2llcy5zcWwKIGNyZWF0ZSBtb2RlIDEwMDY0 NCB3ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90 ZW1wbGF0ZXMvZGVwZW5kcy9zcWwvOS4xX3BsdXMvZGVwZW5kZW50cy5zcWwK IGNyZWF0ZSBtb2RlIDEwMDY0NCB3ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy90ZW1wbGF0ZXMvZGVwZW5kcy9zcWwvZGVmYXVs dC9kZXBlbmRlbmNpZXMuc3FsCiBjcmVhdGUgbW9kZSAxMDA2NDQgd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVtcGxhdGVz L2RlcGVuZHMvc3FsL2RlZmF1bHQvcm9sZV9kZXBlbmRlbmNpZXMuc3FsCiBj cmVhdGUgbW9kZSAxMDA2NDQgd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9kZXBlbmRlbmNpZXNfc3FsLnB5 CiBjcmVhdGUgbW9kZSAxMDA2NDQgd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9kZXBlbmRlbnRzX3NxbC5w eQogY3JlYXRlIG1vZGUgMTAwNjQ0IHdlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfcm9sZV9kZXBlbmRlbmNp ZXNfc3FsLnB5CiByZW5hbWUgd2ViL3twZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1w bGF0ZXMvdHJpZ2dlci9zcWwvdGVzdHMvdGVzdF90cmlnZ2VyX25vZGVzLnB5 ID0+IHJlZ3Jlc3Npb24vcHl0aG9uX3Rlc3RfdXRpbHMvc3FsX3RlbXBsYXRl X3Rlc3RfYmFzZS5weX0gKDU5JSkKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVtcGxhdGVzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL3RlbXBsYXRlcy9fX2luaXRfXy5weQpkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggZTY5ZGUyOWIuLjAwMDAwMDAwCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2NvbHVt bi9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0 ZXMvY29sdW1uL19faW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBlNjlkZTI5Yi4uMDAwMDAwMDAKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1uL3NxbC85LjJfcGx1 cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0 ZXMvY29sdW1uL3NxbC85LjJfcGx1cy9fX2luaXRfXy5weQpkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggZTY5ZGUyOWIuLjAwMDAwMDAwCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2NvbHVt bi9zcWwvZGVmYXVsdC9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90ZW1wbGF0ZXMvY29sdW1uL3NxbC9kZWZhdWx0L19faW5pdF9fLnB5 CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjlkZTI5Yi4uMDAw MDAwMDAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1w bGF0ZXMvY29sdW1uL3NxbC90ZXN0cy90ZXN0X2NvbHVtbl9hY2wucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2NvbHVtbi9zcWwvdGVz dHMvdGVzdF9jb2x1bW5fYWNsLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCA3YmU5NDVjNy4uMDAwMDAwMDAKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL3RlbXBsYXRlcy9jb2x1bW4vc3FsL3Rlc3RzL3Rlc3RfY29s dW1uX2FjbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLWlt cG9ydCBvcwotaW1wb3J0IHN5cwotCi1mcm9tIHBnYWRtaW4udXRpbHMuZHJp dmVyIGltcG9ydCBEcml2ZXJSZWdpc3RyeQotZnJvbSByZWdyZXNzaW9uLnB5 dGhvbl90ZXN0X3V0aWxzLnRlbXBsYXRlX2hlbHBlciBpbXBvcnQgZmlsZV9h c190ZW1wbGF0ZQotCi1Ecml2ZXJSZWdpc3RyeS5sb2FkX2RyaXZlcnMoKQot ZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVy YXRvcgotZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9y dCB0ZXN0X3V0aWxzCi0KLWlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPj0gMzoK LSAgICBsb25nID0gaW50Ci0KLQotY2xhc3MgVGVzdENvbHVtbkFjbChCYXNl VGVzdEdlbmVyYXRvcik6Ci0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAg ICAgICIiIiBXaGVuIHRoZXJlIGFyZSBubyBwZXJtaXNzaW9ucyBvbiB0aGUg Y29sdW1uLCBpdCByZXR1cm5zIGFuIGVtcHR5IHJlc3VsdCAiIiIKLSAgICAg ICAgd2l0aCB0ZXN0X3V0aWxzLkRhdGFiYXNlKHNlbGYuc2VydmVyKSBhcyAo Y29ubmVjdGlvbiwgZGF0YWJhc2VfbmFtZSk6Ci0gICAgICAgICAgICB0ZXN0 X3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgZGF0YWJhc2VfbmFt ZSwgInRlc3RfdGFibGUiKQotCi0gICAgICAgICAgICBjdXJzb3IgPSBjb25u ZWN0aW9uLmN1cnNvcigpCi0gICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZSgi U0VMRUNUIHBnX2NsYXNzLm9pZCBhcyB0YWJsZV9pZCwgIgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgInBnX2F0dHJpYnV0ZS5hdHRudW0gYXMgY29s dW1uX2lkICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJGUk9NIHBn X2NsYXNzIGpvaW4gcGdfYXR0cmlidXRlIG9uIGF0dHJlbGlkPXBnX2NsYXNz Lm9pZCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAid2hlcmUgcGdf Y2xhc3MucmVsbmFtZT0ndGVzdF90YWJsZSciCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAiIGFuZCBwZ19hdHRyaWJ1dGUuYXR0bmFtZSA9ICdzb21l X2NvbHVtbiciKQotICAgICAgICAgICAgdGFibGVfaWQsIGNvbHVtbl9pZCA9 IGN1cnNvci5mZXRjaG9uZSgpCi0KLSAgICAgICAgICAgIGlmIGNvbm5lY3Rp b24uc2VydmVyX3ZlcnNpb24gPCA5MDEwMDoKLSAgICAgICAgICAgICAgICBz ZWxmLnZlcnNpb25zX3RvX3Rlc3QgPSBbJ2RlZmF1bHQnXQotICAgICAgICAg ICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLnZlcnNpb25zX3RvX3Rl c3QgPSBbJzkuMV9wbHVzJ10KLQotICAgICAgICAgICAgZm9yIHZlcnNpb24g aW4gc2VsZi52ZXJzaW9uc190b190ZXN0OgotICAgICAgICAgICAgICAgIHRl bXBsYXRlX2ZpbGUgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9f ZmlsZV9fKSwgIi4uIiwgdmVyc2lvbiwgImFjbC5zcWwiKQotICAgICAgICAg ICAgICAgIHRlbXBsYXRlID0gZmlsZV9hc190ZW1wbGF0ZSh0ZW1wbGF0ZV9m aWxlKQotCi0gICAgICAgICAgICAgICAgcHVibGljX3NjaGVtYV9pZCA9IDIy MDAKLSAgICAgICAgICAgICAgICBzcWwgPSB0ZW1wbGF0ZS5yZW5kZXIoc2Np ZD1wdWJsaWNfc2NoZW1hX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0aWQ9dGFibGVfaWQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNsaWQ9Y29sdW1uX2lkCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLQotICAgICAgICAg ICAgICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKLSAgICAgICAg ICAgICAgICBjdXJzb3IuZXhlY3V0ZShzcWwpCi0gICAgICAgICAgICAgICAg ZmV0Y2hfcmVzdWx0ID0gY3Vyc29yLmZldGNoYWxsKCkKLSAgICAgICAgICAg ICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihmZXRjaF9yZXN1bHQpKQpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1uL3NxbC90ZXN0cy90 ZXN0X2NvbHVtbl9wcm9wZXJ0aWVzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3RlbXBsYXRlcy9jb2x1bW4vc3FsL3Rlc3RzL3Rlc3RfY29sdW1uX3By b3BlcnRpZXMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIx OTg0YmRhLi4wMDAwMDAwMAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dGVtcGxhdGVzL2NvbHVtbi9zcWwvdGVzdHMvdGVzdF9jb2x1bW5fcHJvcGVy dGllcy5weQorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLSMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIHBnQWRtaW4gNCAtIFBv c3RncmVTUUwgVG9vbHMKLSMKLSMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAx NywgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQotIyBUaGlzIHNvZnR3 YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UK LSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWltcG9ydCBv cwotaW1wb3J0IHN5cwotCi1mcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGlt cG9ydCBEcml2ZXJSZWdpc3RyeQotZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90 ZXN0X3V0aWxzLnRlbXBsYXRlX2hlbHBlciBpbXBvcnQgZmlsZV9hc190ZW1w bGF0ZQotCi1Ecml2ZXJSZWdpc3RyeS5sb2FkX2RyaXZlcnMoKQotZnJvbSBw Z2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgot ZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0 X3V0aWxzCi0KLWlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPj0gMzoKLSAgICBs b25nID0gaW50Ci0KLQotY2xhc3MgVGVzdENvbHVtblByb3BlcnRpZXMoQmFz ZVRlc3RHZW5lcmF0b3IpOgotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAg ICAgICAiIiIgVGhpcyB0ZXN0cyB0aGF0IGNvbHVtbiBwcm9wZXJ0aWVzIGFy ZSByZXR1cm5lZCIiIgotICAgICAgICB3aXRoIHRlc3RfdXRpbHMuRGF0YWJh c2Uoc2VsZi5zZXJ2ZXIpIGFzIChjb25uZWN0aW9uLCBkYXRhYmFzZV9uYW1l KToKLSAgICAgICAgICAgIHRlc3RfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYu c2VydmVyLCBkYXRhYmFzZV9uYW1lLCAidGVzdF90YWJsZSIpCi0KLSAgICAg ICAgICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKLSAgICAgICAg ICAgIGN1cnNvci5leGVjdXRlKCJTRUxFQ1Qgb2lkIEZST00gcGdfY2xhc3Mg d2hlcmUgcmVsbmFtZT0ndGVzdF90YWJsZSciKQotICAgICAgICAgICAgdGFi bGVfaWQgPSBjdXJzb3IuZmV0Y2hvbmUoKVswXQotCi0gICAgICAgICAgICBp ZiBjb25uZWN0aW9uLnNlcnZlcl92ZXJzaW9uIDwgOTAxMDA6Ci0gICAgICAg ICAgICAgICAgc2VsZi52ZXJzaW9uc190b190ZXN0ID0gWydkZWZhdWx0J10K LSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi52ZXJz aW9uc190b190ZXN0ID0gWyc5LjFfcGx1cyddCi0KLSAgICAgICAgICAgIGZv ciB2ZXJzaW9uIGluIHNlbGYudmVyc2lvbnNfdG9fdGVzdDoKLSAgICAgICAg ICAgICAgICB0ZW1wbGF0ZV9maWxlID0gb3MucGF0aC5qb2luKG9zLnBhdGgu ZGlybmFtZShfX2ZpbGVfXyksICIuLiIsIHZlcnNpb24sICJwcm9wZXJ0aWVz LnNxbCIpCi0gICAgICAgICAgICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3Rl bXBsYXRlKHRlbXBsYXRlX2ZpbGUpCi0gICAgICAgICAgICAgICAgcHVibGlj X3NjaGVtYV9pZCA9IDIyMDAKLSAgICAgICAgICAgICAgICBzcWwgPSB0ZW1w bGF0ZS5yZW5kZXIoc2NpZD1wdWJsaWNfc2NoZW1hX2lkLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQ9dGFibGVfaWQKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotCi0gICAg ICAgICAgICAgICAgY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQotICAg ICAgICAgICAgICAgIGN1cnNvci5leGVjdXRlKHNxbCkKLSAgICAgICAgICAg ICAgICBmZXRjaF9yZXN1bHQgPSBjdXJzb3IuZmV0Y2hhbGwoKQotICAgICAg ICAgICAgICAgIGZpcnN0X3JvdyA9IHt9Ci0gICAgICAgICAgICAgICAgZm9y IGluZGV4LCBkZXNjcmlwdGlvbiBpbiBlbnVtZXJhdGUoY3Vyc29yLmRlc2Ny aXB0aW9uKToKLSAgICAgICAgICAgICAgICAgICAgZmlyc3Rfcm93W2Rlc2Ny aXB0aW9uLm5hbWVdID0gZmV0Y2hfcmVzdWx0WzBdW2luZGV4XQotCi0gICAg ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnc29tZV9jb2x1bW4nLCBm aXJzdF9yb3dbJ25hbWUnXSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKCdjaGFyYWN0ZXIgdmFyeWluZycsIGZpcnN0X3Jvd1snY2x0eXBl J10pCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4o ZmV0Y2hfcmVzdWx0KSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90ZW1wbGF0ZXMvdGFibGUvX19pbml0X18ucHkgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlL19faW5pdF9fLnB5CmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjlkZTI5Yi4uMDAwMDAwMDAK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMv dGFibGUvc3FsL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L3RlbXBsYXRlcy90YWJsZS9zcWwvX19pbml0X18ucHkKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGU2OWRlMjliLi4wMDAwMDAwMApkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZS9z cWwvdGVzdHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dGVtcGxhdGVzL3RhYmxlL3NxbC90ZXN0cy9fX2luaXRfXy5weQpkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTY5ZGUyOWIuLjAwMDAwMDAwCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3Rh YmxlL3NxbC90ZXN0cy90ZXN0X3RhYmxlc19hY2wucHkgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlL3NxbC90ZXN0cy90ZXN0X3Rh Ymxlc19hY2wucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEw ZjdmOTRlLi4wMDAwMDAwMAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dGVtcGxhdGVzL3RhYmxlL3NxbC90ZXN0cy90ZXN0X3RhYmxlc19hY2wucHkK KysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0jIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIwotIwotIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FM IFRvb2xzCi0jCi0jIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTcsIFRoZSBw Z0FkbWluIERldmVsb3BtZW50IFRlYW0KLSMgVGhpcyBzb2Z0d2FyZSBpcyBy ZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCi0jCi0jIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1pbXBvcnQgb3MKLWltcG9y dCBzeXMKLQotZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgRHJp dmVyUmVnaXN0cnkKLWZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGls cy50ZW1wbGF0ZV9oZWxwZXIgaW1wb3J0IGZpbGVfYXNfdGVtcGxhdGUKLQot RHJpdmVyUmVnaXN0cnkubG9hZF9kcml2ZXJzKCkKLWZyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVn cmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscwot Ci1pZiBzeXMudmVyc2lvbl9pbmZvWzBdID49IDM6Ci0gICAgbG9uZyA9IGlu dAotCi0KLWNsYXNzIFRlc3RUYWJsZXNBY2woQmFzZVRlc3RHZW5lcmF0b3Ip OgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCJUZXN0IHF1ZXJ5IHJl dHVybnMgdGhlIHBlcm1pc3Npb25zIHdoZW4gdGhlcmUgYXJlIHBlcm1pc3Np b25zIHNldCB1cCIKLSAgICAgICAgICIgb24gdGhlIHRhYmxlIiwgZGljdCgp KQotICAgIF0KLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAi IiIgVGhpcyB0ZXN0cyB0aGF0IHdoZW4gdGhlcmUgYXJlIHBlcm1pc3Npb25z IHNldCB1cCBvbiB0aGUgdGFibGUsIGFjbCBxdWVyeSByZXR1cm5zIHRoZSBw ZXJtaXNzaW9ucyIiIgotICAgICAgICB3aXRoIHRlc3RfdXRpbHMuRGF0YWJh c2Uoc2VsZi5zZXJ2ZXIpIGFzIChjb25uZWN0aW9uLCBkYXRhYmFzZV9uYW1l KToKLSAgICAgICAgICAgIHRlc3RfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYu c2VydmVyLCBkYXRhYmFzZV9uYW1lLCAidGVzdF90YWJsZSIpCi0KLSAgICAg ICAgICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKLSAgICAgICAg ICAgIGN1cnNvci5leGVjdXRlKCJHUkFOVCBTRUxFQ1QgT04gdGVzdF90YWJs ZSBUTyBQVUJMSUMiKQotCi0gICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0 aW9uLmN1cnNvcigpCi0gICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZSgiU0VM RUNUIG9pZCBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWU9J3Rlc3RfdGFi bGUnIikKLSAgICAgICAgICAgIHRhYmxlX2lkID0gY3Vyc29yLmZldGNob25l KClbMF0KLQotICAgICAgICAgICAgaWYgY29ubmVjdGlvbi5zZXJ2ZXJfdmVy c2lvbiA8IDkwMTAwOgotICAgICAgICAgICAgICAgIHNlbGYudmVyc2lvbnNf dG9fdGVzdCA9IFsnZGVmYXVsdCddCi0gICAgICAgICAgICBlbHNlOgotICAg ICAgICAgICAgICAgIHNlbGYudmVyc2lvbnNfdG9fdGVzdCA9IFsnOS4xX3Bs dXMnXQotCi0gICAgICAgICAgICBmb3IgdmVyc2lvbiBpbiBzZWxmLnZlcnNp b25zX3RvX3Rlc3Q6Ci0gICAgICAgICAgICAgICAgdGVtcGxhdGVfZmlsZSA9 IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4i LCB2ZXJzaW9uLCAiYWNsLnNxbCIpCi0gICAgICAgICAgICAgICAgdGVtcGxh dGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRlX2ZpbGUpCi0gICAgICAg ICAgICAgICAgcHVibGljX3NjaGVtYV9pZCA9IDIyMDAKLSAgICAgICAgICAg ICAgICBzcWwgPSB0ZW1wbGF0ZS5yZW5kZXIoc2NpZD1wdWJsaWNfc2NoZW1h X2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 aWQ9dGFibGVfaWQpCi0KLSAgICAgICAgICAgICAgICBjdXJzb3IgPSBjb25u ZWN0aW9uLmN1cnNvcigpCi0gICAgICAgICAgICAgICAgY3Vyc29yLmV4ZWN1 dGUoc3FsKQotICAgICAgICAgICAgICAgIGZldGNoX3Jlc3VsdCA9IGN1cnNv ci5mZXRjaGFsbCgpCi0gICAgICAgICAgICAgICAgcHVibGljX2FjbHMgPSBs aXN0KGZpbHRlcihsYW1iZGEgYWNsOiBhY2xbMV0gPT0gJ1BVQkxJQycsIGZl dGNoX3Jlc3VsdCkpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh bChsZW4ocHVibGljX2FjbHMpLCAxKQotCi0gICAgICAgICAgICAgICAgbmV3 X2FjbF9tYXAgPSBkaWN0KHppcChtYXAobGFtYmRhIGNvbHVtbjogY29sdW1u Lm5hbWUsIGN1cnNvci5kZXNjcmlwdGlvbiksIHB1YmxpY19hY2xzWzBdKSkK LQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BVQkxJQycs IG5ld19hY2xfbWFwWydncmFudGVlJ10pCi0gICAgICAgICAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbChzZWxmLnNlcnZlclsndXNlcm5hbWUnXSwgbmV3X2Fj bF9tYXBbJ2dyYW50b3InXSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKCdyZWxhY2wnLCBuZXdfYWNsX21hcFsnZGVmdHlwZSddKQotICAg ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydyJ10sIG5ld19hY2xf bWFwWydwcml2aWxlZ2VzJ10pCi0gICAgICAgICAgICAgICAgc2VsZi5hc3Nl cnRFcXVhbChbRmFsc2VdLCBuZXdfYWNsX21hcFsnZ3JhbnRhYmxlJ10pClwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZS9zcWwvdGVzdHMvdGVz dF90YWJsZXNfbm9kZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1w bGF0ZXMvdGFibGUvc3FsL3Rlc3RzL3Rlc3RfdGFibGVzX25vZGUucHkKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxZWMzMjc1Li4wMDAwMDAw MAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxl L3NxbC90ZXN0cy90ZXN0X3RhYmxlc19ub2RlLnB5CisrKyAvZGV2L251bGwK QEAgLTEsNzQgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKLSMKLSMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwotIwotIyBD b3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE3LCBUaGUgcGdBZG1pbiBEZXZlbG9w bWVudCBUZWFtCi0jIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIg dGhlIFBvc3RncmVTUUwgTGljZW5jZQotIwotIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKLQotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi0KLWZyb20g amluamEyIGltcG9ydCBCYXNlTG9hZGVyCi1mcm9tIGppbmphMiBpbXBvcnQg RW52aXJvbm1lbnQKLQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90 ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzCi0KLWlmIHN5cy52ZXJzaW9u X2luZm9bMF0gPj0gMzoKLSAgICBsb25nID0gaW50Ci0KLQotY2xhc3MgVGVz dFRhYmxlc05vZGUoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgIHNjZW5hcmlv cyA9IFsKLSAgICAgICAgKCJUaGlzIHNjZW5hcmlvIHRlc3RzIHRoYXQgYWxs IGFwcGxpY2FibGUgc3FsIHRlbXBsYXRlIHZlcnNpb25zIGNhbiAiCi0gICAg ICAgICAiZmV0Y2ggdGFibGUgbmFtZXMiLCBkaWN0KCkpCi0gICAgXQotCi0g ICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIHRlc3Rz IHRoYXQgYWxsIGFwcGxpY2FibGUgc3FsIHRlbXBsYXRlIHZlcnNpb25zIGNh biBmZXRjaCB0YWJsZSBuYW1lcyAiIiIKLSAgICAgICAgd2l0aCB0ZXN0X3V0 aWxzLkRhdGFiYXNlKHNlbGYuc2VydmVyKSBhcyAoY29ubmVjdGlvbiwgZGF0 YWJhc2VfbmFtZSk6Ci0gICAgICAgICAgICB0ZXN0X3V0aWxzLmNyZWF0ZV90 YWJsZShzZWxmLnNlcnZlciwgZGF0YWJhc2VfbmFtZSwgInRlc3RfdGFibGUi KQotCi0gICAgICAgICAgICBpZiBjb25uZWN0aW9uLnNlcnZlcl92ZXJzaW9u IDwgOTEwMDA6Ci0gICAgICAgICAgICAgICAgc2VsZi52ZXJzaW9uc190b190 ZXN0ID0gWydkZWZhdWx0J10KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg ICAgICAgICAgc2VsZi52ZXJzaW9uc190b190ZXN0ID0gWydkZWZhdWx0Jywg JzkuMV9wbHVzJ10KLQotICAgICAgICAgICAgZm9yIHZlcnNpb24gaW4gc2Vs Zi52ZXJzaW9uc190b190ZXN0OgotICAgICAgICAgICAgICAgIHRlbXBsYXRl X2ZpbGUgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9f KSwgIi4uIiwgdmVyc2lvbiwgIm5vZGVzLnNxbCIpCi0gICAgICAgICAgICAg ICAgZmlsZV9jb250ZW50ID0gb3Blbih0ZW1wbGF0ZV9maWxlLCAncicpLnJl YWQoKQotCi0gICAgICAgICAgICAgICAgZW52ID0gRW52aXJvbm1lbnQobG9h ZGVyPVNpbXBsZVRlbXBsYXRlTG9hZGVyKGZpbGVfY29udGVudCkpCi0KLSAg ICAgICAgICAgICAgICB0ZW1wbGF0ZSA9IGVudi5nZXRfdGVtcGxhdGUoIiIp Ci0gICAgICAgICAgICAgICAgcHVibGljX3NjaGVtYV9pZCA9IDIyMDAKLSAg ICAgICAgICAgICAgICBzcWwgPSB0ZW1wbGF0ZS5yZW5kZXIoc2NpZD1wdWJs aWNfc2NoZW1hX2lkKQotCi0gICAgICAgICAgICAgICAgY3Vyc29yID0gY29u bmVjdGlvbi5jdXJzb3IoKQotICAgICAgICAgICAgICAgIGN1cnNvci5leGVj dXRlKHNxbCkKLSAgICAgICAgICAgICAgICBmZXRjaF9yZXN1bHQgPSBjdXJz b3IuZmV0Y2hhbGwoKQotCi0gICAgICAgICAgICAgICAgZmlyc3Rfcm93ID0g e30KLSAgICAgICAgICAgICAgICBmb3IgaW5kZXgsIGRlc2NyaXB0aW9uIGlu IGVudW1lcmF0ZShjdXJzb3IuZGVzY3JpcHRpb24pOgotICAgICAgICAgICAg ICAgICAgICBmaXJzdF9yb3dbZGVzY3JpcHRpb24ubmFtZV0gPSBmZXRjaF9y ZXN1bHRbMF1baW5kZXhdCi0KLSAgICAgICAgICAgICAgICBvaWQgPSBmaXJz dF9yb3dbJ29pZCddCi0gICAgICAgICAgICAgICAgbmFtZSA9IGZpcnN0X3Jv d1snbmFtZSddCi0gICAgICAgICAgICAgICAgdHJpZ2dlcmNvdW50ID0gZmly c3Rfcm93Wyd0cmlnZ2VyY291bnQnXQotICAgICAgICAgICAgICAgIGhhc19l bmFibGVfdHJpZ2dlcnMgPSBmaXJzdF9yb3dbJ2hhc19lbmFibGVfdHJpZ2dl cnMnXQotCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUo bG9uZyhvaWQpKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo J3Rlc3RfdGFibGUnLCBuYW1lKQotICAgICAgICAgICAgICAgICMgdHJpZ2dl cmNvdW50IGlzIHNvbWV0aW1lcyByZXR1cm5lZCBhcyBhIHN0cmluZyBmb3Ig c29tZSByZWFzb24KLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs KDAsIGxvbmcodHJpZ2dlcmNvdW50KSkKLSAgICAgICAgICAgICAgICBzZWxm LmFzc2VydElzTm90Tm9uZShsb25nKGhhc19lbmFibGVfdHJpZ2dlcnMpKQot Ci0KLWNsYXNzIFNpbXBsZVRlbXBsYXRlTG9hZGVyKEJhc2VMb2FkZXIpOgot ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlX2NvbnRlbnQpOgotICAgICAg ICBzZWxmLmZpbGVfY29udGVudCA9IGZpbGVfY29udGVudAotCi0gICAgZGVm IGdldF9zb3VyY2Uoc2VsZiwgKmFyZ3MpOgotICAgICAgICByZXR1cm4gc2Vs Zi5maWxlX2NvbnRlbnQsICJyZXF1aXJlZC1yZXR1cm4tbm90LWEtcmVhbC1m aWxlLnR4dCIsIFRydWUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90ZW1wbGF0ZXMvdGFibGUvc3FsL3Rlc3RzL3Rlc3RfdGFibGVzX3By b3BlcnRpZXMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVz L3RhYmxlL3NxbC90ZXN0cy90ZXN0X3RhYmxlc19wcm9wZXJ0aWVzLnB5CmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OTg0YmRhNS4uMDAwMDAw MDAKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJs ZS9zcWwvdGVzdHMvdGVzdF90YWJsZXNfcHJvcGVydGllcy5weQorKysgL2Rl di9udWxsCkBAIC0xLDc3ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCi0jCi0jIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMK LSMKLSMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNywgVGhlIHBnQWRtaW4g RGV2ZWxvcG1lbnQgVGVhbQotIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKLSMKLSMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCi0KLWltcG9ydCBvcwotaW1wb3J0IHN5cwot Ci1mcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBEcml2ZXJSZWdp c3RyeQotZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzLnRlbXBs YXRlX2hlbHBlciBpbXBvcnQgZmlsZV9hc190ZW1wbGF0ZQotCi1Ecml2ZXJS ZWdpc3RyeS5sb2FkX2RyaXZlcnMoKQotZnJvbSBwZ2FkbWluLnV0aWxzLnJv dXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9u LnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzCi0KLWlmIHN5 cy52ZXJzaW9uX2luZm9bMF0gPj0gMzoKLSAgICBsb25nID0gaW50Ci0KLQot Y2xhc3MgVGVzdFRhYmxlc1Byb3BlcnRpZXMoQmFzZVRlc3RHZW5lcmF0b3Ip OgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCJUaGlzIHNjZW5hcmlv IHRlc3RzIHRoYXQgYWxsIGFwcGxpY2FibGUgc3FsIHRlbXBsYXRlIHZlcnNp b25zIGNhbiAiCi0gICAgICAgICAiZmV0Y2ggc29tZSBkZGwiLCBkaWN0KCkp Ci0gICAgXQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIi IiBUaGlzIHRlc3RzIHRoYXQgYWxsIGFwcGxpY2FibGUgc3FsIHRlbXBsYXRl IHZlcnNpb25zIGNhbiBmZXRjaCBzb21lIGRkbCAiIiIKLSAgICAgICAgd2l0 aCB0ZXN0X3V0aWxzLkRhdGFiYXNlKHNlbGYuc2VydmVyKSBhcyAoY29ubmVj dGlvbiwgZGF0YWJhc2VfbmFtZSk6Ci0gICAgICAgICAgICB0ZXN0X3V0aWxz LmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgZGF0YWJhc2VfbmFtZSwgInRl c3RfdGFibGUiKQotCi0gICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9u LmN1cnNvcigpCi0gICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZSh1IiIiCi0g ICAgICAgICAgICBTRUxFQ1QKLSAgICAgICAgICAgICAgICBkYi5vaWQgYXMg ZGlkLCBkYXRsYXN0c3lzb2lkCi0gICAgICAgICAgICBGUk9NCi0gICAgICAg ICAgICAgICAgcGdfZGF0YWJhc2UgZGIKLSAgICAgICAgICAgIFdIRVJFIGRi LmRhdG5hbWUgPSAnezB9JyIiIi5mb3JtYXQoZGF0YWJhc2VfbmFtZSkKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgIGRhdGFi YXNlX2lkLCBsYXN0X3N5c3RlbV9vaWQgPSBjdXJzb3IuZmV0Y2hvbmUoKQot Ci0gICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCi0g ICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZSgiU0VMRUNUIG9pZCBGUk9NIHBn X2NsYXNzIHdoZXJlIHJlbG5hbWU9J3Rlc3RfdGFibGUnIikKLSAgICAgICAg ICAgIHRhYmxlX2lkID0gY3Vyc29yLmZldGNob25lKClbMF0KLQotICAgICAg ICAgICAgaWYgY29ubmVjdGlvbi5zZXJ2ZXJfdmVyc2lvbiA8IDkwMTAwOgot ICAgICAgICAgICAgICAgIHNlbGYudmVyc2lvbnNfdG9fdGVzdCA9IFsnZGVm YXVsdCddCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNl bGYudmVyc2lvbnNfdG9fdGVzdCA9IFsnOS4xX3BsdXMnXQotCi0gICAgICAg ICAgICBmb3IgdmVyc2lvbiBpbiBzZWxmLnZlcnNpb25zX3RvX3Rlc3Q6Ci0g ICAgICAgICAgICAgICAgdGVtcGxhdGVfZmlsZSA9IG9zLnBhdGguam9pbihv cy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCB2ZXJzaW9uLCAicHJv cGVydGllcy5zcWwiKQotICAgICAgICAgICAgICAgIHRlbXBsYXRlID0gZmls ZV9hc190ZW1wbGF0ZSh0ZW1wbGF0ZV9maWxlKQotCi0gICAgICAgICAgICAg ICAgcHVibGljX3NjaGVtYV9pZCA9IDIyMDAKLSAgICAgICAgICAgICAgICBz cWwgPSB0ZW1wbGF0ZS5yZW5kZXIoc2NpZD1wdWJsaWNfc2NoZW1hX2lkLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWQ9ZGF0 YWJhc2VfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGxhc3RzeXNvaWQ9bGFzdF9zeXN0ZW1fb2lkLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQ9dGFibGVfaWQKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotCi0gICAg ICAgICAgICAgICAgY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQotICAg ICAgICAgICAgICAgIGN1cnNvci5leGVjdXRlKHNxbCkKLSAgICAgICAgICAg ICAgICBmZXRjaF9yZXN1bHQgPSBjdXJzb3IuZmV0Y2hvbmUoKQotCi0gICAg ICAgICAgICAgICAgZmlyc3Rfcm93ID0ge30KLSAgICAgICAgICAgICAgICBm b3IgaW5kZXgsIGRlc2NyaXB0aW9uIGluIGVudW1lcmF0ZShjdXJzb3IuZGVz Y3JpcHRpb24pOgotICAgICAgICAgICAgICAgICAgICBmaXJzdF9yb3dbZGVz Y3JpcHRpb24ubmFtZV0gPSBmZXRjaF9yZXN1bHRbaW5kZXhdCi0KLSAgICAg ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCd0ZXN0X3RhYmxlJywgZmly c3Rfcm93WyduYW1lJ10pCi0gICAgICAgICAgICAgICAgIyB0cmlnZ2VyY291 bnQgaXMgc29tZXRpbWVzIHJldHVybmVkIGFzIGEgc3RyaW5nIGZvciBzb21l IHJlYXNvbgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwg bG9uZyhmaXJzdF9yb3dbJ3RyaWdnZXJjb3VudCddKSkKLSAgICAgICAgICAg ICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGZpcnN0X3Jvd1sndHlwbmFt ZSddKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW10sIGZp cnN0X3Jvd1snY29sbF9pbmhlcml0cyddKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90cmlnZ2VyL3NxbC85LjFfcGx1 cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0 ZXMvdHJpZ2dlci9zcWwvOS4xX3BsdXMvX19pbml0X18ucHkKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2OWRlMjliLi4wMDAwMDAwMApkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90cmln Z2VyL3NxbC9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90 ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvX19pbml0X18ucHkKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGU2OWRlMjliLi4wMDAwMDAwMApkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90cmlnZ2Vy L3NxbC9kZWZhdWx0L19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3RlbXBsYXRlcy90cmlnZ2VyL3NxbC9kZWZhdWx0L19faW5pdF9fLnB5 CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjlkZTI5Yi4uMDAw MDAwMDAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1w bGF0ZXMvdHJpZ2dlci9zcWwvdGVzdHMvX19pbml0X18ucHkgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RyaWdnZXIvc3FsL3Rlc3RzL19f aW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjlk ZTI5Yi4uMDAwMDAwMDAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvdGVzdHMvdGVzdF90cmlnZ2Vy X2dldF9vaWQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVz L3RyaWdnZXIvc3FsL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9nZXRfb2lkLnB5CmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMmI2MzdlZS4uMDAwMDAw MDAKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90cmln Z2VyL3NxbC90ZXN0cy90ZXN0X3RyaWdnZXJfZ2V0X29pZC5weQorKysgL2Rl di9udWxsCkBAIC0xLDYwICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCi0jCi0jIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMK LSMKLSMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNywgVGhlIHBnQWRtaW4g RGV2ZWxvcG1lbnQgVGVhbQotIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKLSMKLSMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCi0KLWltcG9ydCBvcwotaW1wb3J0IHN5cwot Ci1pbXBvcnQgamluamEyCi0KLWZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIg aW1wb3J0IERyaXZlclJlZ2lzdHJ5Ci1mcm9tIHJlZ3Jlc3Npb24ucHl0aG9u X3Rlc3RfdXRpbHMudGVtcGxhdGVfaGVscGVyIGltcG9ydCBmaWxlX2FzX3Rl bXBsYXRlCi0KLURyaXZlclJlZ2lzdHJ5LmxvYWRfZHJpdmVycygpCi1mcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Ci1mcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRl c3RfdXRpbHMKLQotaWYgc3lzLnZlcnNpb25faW5mb1swXSA+PSAzOgotICAg IGxvbmcgPSBpbnQKLQotCi1jbGFzcyBUZXN0VHJpZ2dlckdldE9pZChCYXNl VGVzdEdlbmVyYXRvcik6Ci0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAg ICAgICIiIiBXaGVuIHRoZXJlIGFyZSBubyBwZXJtaXNzaW9ucyBvbiB0aGUg Y29sdW1uLCBpdCByZXR1cm5zIGFuIGVtcHR5IHJlc3VsdCAiIiIKLSAgICAg ICAgd2l0aCB0ZXN0X3V0aWxzLkRhdGFiYXNlKHNlbGYuc2VydmVyKSBhcyAo Y29ubmVjdGlvbiwgZGF0YWJhc2VfbmFtZSk6Ci0gICAgICAgICAgICB0ZXN0 X3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgZGF0YWJhc2VfbmFt ZSwgInRlc3RfdGFibGUiKQotCi0gICAgICAgICAgICBjdXJzb3IgPSBjb25u ZWN0aW9uLmN1cnNvcigpCi0gICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZSgi U0VMRUNUIHBnX2NsYXNzLm9pZCBhcyB0YWJsZV9pZCwgIgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgInBnX2F0dHJpYnV0ZS5hdHRudW0gYXMgY29s dW1uX2lkICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJGUk9NIHBn X2NsYXNzIGpvaW4gcGdfYXR0cmlidXRlIG9uIGF0dHJlbGlkPXBnX2NsYXNz Lm9pZCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAid2hlcmUgcGdf Y2xhc3MucmVsbmFtZT0ndGVzdF90YWJsZSciCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAiIGFuZCBwZ19hdHRyaWJ1dGUuYXR0bmFtZSA9ICdzb21l X2NvbHVtbiciKQotICAgICAgICAgICAgdGFibGVfaWQsIGNvbHVtbl9pZCA9 IGN1cnNvci5mZXRjaG9uZSgpCi0KLSAgICAgICAgICAgIGlmIGNvbm5lY3Rp b24uc2VydmVyX3ZlcnNpb24gPCA5MDEwMDoKLSAgICAgICAgICAgICAgICBz ZWxmLnZlcnNpb25zX3RvX3Rlc3QgPSBbJ2RlZmF1bHQnXQotICAgICAgICAg ICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLnZlcnNpb25zX3RvX3Rl c3QgPSBbJzkuMV9wbHVzJ10KLQotICAgICAgICAgICAgZm9yIHZlcnNpb24g aW4gc2VsZi52ZXJzaW9uc190b190ZXN0OgotICAgICAgICAgICAgICAgIHRl bXBsYXRlX2ZpbGUgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9f ZmlsZV9fKSwgIi4uIiwgdmVyc2lvbiwgImdldF9vaWQuc3FsIikKLQotICAg ICAgICAgICAgICAgIGppbmphMi5maWx0ZXJzLkZJTFRFUlNbJ3F0TGl0ZXJh bCddID0gbGFtYmRhIHZhbHVlOiAiTlVMTCIKLSAgICAgICAgICAgICAgICB0 ZW1wbGF0ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxhdGVfZmlsZSkKLQot ICAgICAgICAgICAgICAgIHNxbCA9IHRlbXBsYXRlLnJlbmRlcihkYXRhPXsn bmFtZSc6IE5vbmV9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0aWQ9dGFibGVfaWQKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAgICAgY3Vyc29yID0g Y29ubmVjdGlvbi5jdXJzb3IoKQotICAgICAgICAgICAgICAgIGN1cnNvci5l eGVjdXRlKHNxbCkKLSAgICAgICAgICAgICAgICBmZXRjaF9yZXN1bHQgPSBj dXJzb3IuZmV0Y2hhbGwoKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWwoMCwgbGVuKGZldGNoX3Jlc3VsdCkpCi0KLQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfY29sdW1uX2FjbF9z cWwucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF9jb2x1 bW5fYWNsX3NxbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMC4uNWJhNTYwZmQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVzdHMvdGVzdF9jb2x1bW5fYWNsX3NxbC5weQpAQCAt MCwwICsxLDUxIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHly aWdodCAoQykgMjAxMyAtIDIwMTcsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50 IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUg UG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworCitpbXBvcnQgb3MKKworZnJvbSByZWdyZXNzaW9uLnB5dGhv bl90ZXN0X3V0aWxzLnNxbF90ZW1wbGF0ZV90ZXN0X2Jhc2UgaW1wb3J0IFNR TFRlbXBsYXRlVGVzdEJhc2UKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVz dF91dGlscy50ZW1wbGF0ZV9oZWxwZXIgaW1wb3J0IGZpbGVfYXNfdGVtcGxh dGUKKworCitjbGFzcyBUZXN0Q29sdW1uQWNsU3FsKFNRTFRlbXBsYXRlVGVz dEJhc2UpOgorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGlu ZyBkZWZhdWx0IFVSTCBmb3Igc2NoZW1hIG5vZGUuCisgICAgICAgICgnVGVz dCBDb2x1bW4gQUNMIFNRTCBmaWxlJywgZGljdCgpKQorICAgIF0KKworICAg IGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc3VwZXIoVGVzdENvbHVt bkFjbFNxbCwgc2VsZikuX19pbml0X18oKQorICAgICAgICBzZWxmLnRhYmxl X2lkID0gLTEKKyAgICAgICAgc2VsZi5jb2x1bW5faWQgPSAtMQorCisgICAg ZGVmIHRlc3Rfc2V0dXAoc2VsZiwgY29ubmVjdGlvbiwgY3Vyc29yKToKKyAg ICAgICAgY3Vyc29yLmV4ZWN1dGUoIlNFTEVDVCBwZ19jbGFzcy5vaWQgQVMg dGFibGVfaWQsICIKKyAgICAgICAgICAgICAgICAgICAgICAgInBnX2F0dHJp YnV0ZS5hdHRudW0gQVMgY29sdW1uX2lkICIKKyAgICAgICAgICAgICAgICAg ICAgICAgIkZST00gcGdfY2xhc3MgSk9JTiBwZ19hdHRyaWJ1dGUgT04gYXR0 cmVsaWQ9cGdfY2xhc3Mub2lkICIKKyAgICAgICAgICAgICAgICAgICAgICAg IldIRVJFIHBnX2NsYXNzLnJlbG5hbWU9J3Rlc3RfdGFibGUnIgorICAgICAg ICAgICAgICAgICAgICAgICAiIEFORCBwZ19hdHRyaWJ1dGUuYXR0bmFtZSA9 ICdzb21lX2NvbHVtbiciKQorICAgICAgICBzZWxmLnRhYmxlX2lkLCBzZWxm LmNvbHVtbl9pZCA9IGN1cnNvci5mZXRjaG9uZSgpCisKKyAgICBkZWYgZ2Vu ZXJhdGVfc3FsKHNlbGYsIHZlcnNpb24pOgorICAgICAgICB0ZW1wbGF0ZV9m aWxlID0gc2VsZi5nZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCAiYWNsLnNx bCIpCisgICAgICAgIHRlbXBsYXRlID0gZmlsZV9hc190ZW1wbGF0ZSh0ZW1w bGF0ZV9maWxlKQorICAgICAgICBwdWJsaWNfc2NoZW1hX2lkID0gMjIwMAor ICAgICAgICBzcWwgPSB0ZW1wbGF0ZS5yZW5kZXIoc2NpZD1wdWJsaWNfc2No ZW1hX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlkPXNl bGYudGFibGVfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj bGlkPXNlbGYuY29sdW1uX2lkCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICApCisKKyAgICAgICAgcmV0dXJuIHNxbAorCisgICAgZGVmIGFzc2Vy dGlvbnMoc2VsZiwgZmV0Y2hfcmVzdWx0LCBkZXNjcmlwdGlvbnMpOgorICAg ICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihmZXRjaF9yZXN1bHQpKQor CisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBnZXRfdGVtcGxhdGVfZmls ZSh2ZXJzaW9uLCBmaWxlbmFtZSk6CisgICAgICAgIHJldHVybiBvcy5wYXRo LmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgInRlbXBs YXRlcyIsICJjb2x1bW4iLCAic3FsIiwgdmVyc2lvbiwgZmlsZW5hbWUpCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF9j b2x1bW5fcHJvcGVydGllc19zcWwucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvdGVzdHMvdGVzdF9jb2x1bW5fcHJvcGVydGllc19zcWwucHkKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLmNlNmZhOTcyCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rl c3RfY29sdW1uX3Byb3BlcnRpZXNfc3FsLnB5CkBAIC0wLDAgKzEsNTIgQEAK KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4g NCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEz IC0gMjAxNywgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlz IHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExp Y2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2lt cG9ydCBvcworCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMu c3FsX3RlbXBsYXRlX3Rlc3RfYmFzZSBpbXBvcnQgU1FMVGVtcGxhdGVUZXN0 QmFzZQorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzLnRlbXBs YXRlX2hlbHBlciBpbXBvcnQgZmlsZV9hc190ZW1wbGF0ZQorCisKK2NsYXNz IFRlc3RDb2x1bW5Qcm9wZXJ0aWVzU3FsKFNRTFRlbXBsYXRlVGVzdEJhc2Up OgorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZh dWx0IFVSTCBmb3Igc2NoZW1hIG5vZGUuCisgICAgICAgICgnVGVzdCBDb2x1 bW4gUHJvcGVydGllcyBTUUwgZmlsZScsIGRpY3QoKSkKKyAgICBdCisKKyAg ICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHN1cGVyKFRlc3RDb2x1 bW5Qcm9wZXJ0aWVzU3FsLCBzZWxmKS5fX2luaXRfXygpCisgICAgICAgIHNl bGYudGFibGVfaWQgPSAtMQorCisgICAgZGVmIHRlc3Rfc2V0dXAoc2VsZiwg Y29ubmVjdGlvbiwgY3Vyc29yKToKKyAgICAgICAgY3Vyc29yLmV4ZWN1dGUo IlNFTEVDVCBvaWQgRlJPTSBwZ19jbGFzcyB3aGVyZSByZWxuYW1lPSd0ZXN0 X3RhYmxlJyIpCisKKyAgICAgICAgc2VsZi50YWJsZV9pZCA9IGN1cnNvci5m ZXRjaG9uZSgpWzBdCisKKyAgICBkZWYgZ2VuZXJhdGVfc3FsKHNlbGYsIHZl cnNpb24pOgorICAgICAgICB0ZW1wbGF0ZV9maWxlID0gc2VsZi5nZXRfdGVt cGxhdGVfZmlsZSh2ZXJzaW9uLCAicHJvcGVydGllcy5zcWwiKQorICAgICAg ICB0ZW1wbGF0ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxhdGVfZmlsZSkK KyAgICAgICAgcHVibGljX3NjaGVtYV9pZCA9IDIyMDAKKyAgICAgICAgc3Fs ID0gdGVtcGxhdGUucmVuZGVyKHNjaWQ9cHVibGljX3NjaGVtYV9pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD1zZWxmLnRhYmxlX2lk CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisKKyAgICAgICAg cmV0dXJuIHNxbAorCisgICAgZGVmIGFzc2VydGlvbnMoc2VsZiwgZmV0Y2hf cmVzdWx0LCBkZXNjcmlwdGlvbnMpOgorICAgICAgICBmaXJzdF9yb3cgPSB7 fQorICAgICAgICBmb3IgaW5kZXgsIGRlc2NyaXB0aW9uIGluIGVudW1lcmF0 ZShkZXNjcmlwdGlvbnMpOgorICAgICAgICAgICAgZmlyc3Rfcm93W2Rlc2Ny aXB0aW9uLm5hbWVdID0gZmV0Y2hfcmVzdWx0WzBdW2luZGV4XQorCisgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3NvbWVfY29sdW1uJywgZmlyc3Rfcm93 WyduYW1lJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2NoYXJhY3Rl ciB2YXJ5aW5nJywgZmlyc3Rfcm93WydjbHR5cGUnXSkKKyAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbCgyLCBsZW4oZmV0Y2hfcmVzdWx0KSkKKworICAgIEBz dGF0aWNtZXRob2QKKyAgICBkZWYgZ2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lv biwgZmlsZW5hbWUpOgorICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKG9z LnBhdGguZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICJ0ZW1wbGF0ZXMiLCAi Y29sdW1uIiwgInNxbCIsIHZlcnNpb24sIGZpbGVuYW1lKQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVzX2Fj bF9zcWwucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90 YWJsZXNfYWNsX3NxbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMC4uZGU0OTg1MmMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZXNfYWNsX3NxbC5weQpA QCAtMCwwICsxLDU0IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENv cHlyaWdodCAoQykgMjAxMyAtIDIwMTcsIFRoZSBwZ0FkbWluIERldmVsb3Bt ZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCitpbXBvcnQgb3MKK2Zyb20gcmVncmVzc2lvbi5weXRo b25fdGVzdF91dGlscy50ZW1wbGF0ZV9oZWxwZXIgaW1wb3J0IGZpbGVfYXNf dGVtcGxhdGUKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscy5z cWxfdGVtcGxhdGVfdGVzdF9iYXNlIGltcG9ydCBTUUxUZW1wbGF0ZVRlc3RC YXNlCisKKworY2xhc3MgVGVzdFRhYmxlc0FjbFNxbChTUUxUZW1wbGF0ZVRl c3RCYXNlKToKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICgiVGVzdCBx dWVyeSByZXR1cm5zIHRoZSBwZXJtaXNzaW9ucyB3aGVuIHRoZXJlIGFyZSBw ZXJtaXNzaW9ucyBzZXQgdXAiCisgICAgICAgICAiIG9uIHRoZSB0YWJsZSIs IGRpY3QoKSkKKyAgICBdCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6Cisg ICAgICAgIHN1cGVyKFRlc3RUYWJsZXNBY2xTcWwsIHNlbGYpLl9faW5pdF9f KCkKKyAgICAgICAgc2VsZi50YWJsZV9pZCA9IC0xCisKKyAgICBkZWYgdGVz dF9zZXR1cChzZWxmLCBjb25uZWN0aW9uLCBjdXJzb3IpOgorICAgICAgICBj dXJzb3IuZXhlY3V0ZSgiR1JBTlQgU0VMRUNUIE9OIHRlc3RfdGFibGUgVE8g UFVCTElDIikKKyAgICAgICAgY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3Io KQorICAgICAgICBjdXJzb3IuZXhlY3V0ZSgiU0VMRUNUIG9pZCBGUk9NIHBn X2NsYXNzIFdIRVJFIHJlbG5hbWU9J3Rlc3RfdGFibGUnIikKKyAgICAgICAg c2VsZi50YWJsZV9pZCA9IGN1cnNvci5mZXRjaG9uZSgpWzBdCisKKyAgICBk ZWYgZ2VuZXJhdGVfc3FsKHNlbGYsIHZlcnNpb24pOgorICAgICAgICB0ZW1w bGF0ZV9maWxlID0gc2VsZi5nZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCAi YWNsLnNxbCIpCisgICAgICAgIHRlbXBsYXRlID0gZmlsZV9hc190ZW1wbGF0 ZSh0ZW1wbGF0ZV9maWxlKQorICAgICAgICBwdWJsaWNfc2NoZW1hX2lkID0g MjIwMAorICAgICAgICBzcWwgPSB0ZW1wbGF0ZS5yZW5kZXIoc2NpZD1wdWJs aWNfc2NoZW1hX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGlkPXNlbGYudGFibGVfaWQpCisgICAgICAgIHJldHVybiBzcWwKKworICAg IGRlZiBhc3NlcnRpb25zKHNlbGYsIGZldGNoX3Jlc3VsdCwgZGVzY3JpcHRp b25zKToKKyAgICAgICAgcHVibGljX2FjbHMgPSBsaXN0KGZpbHRlcihsYW1i ZGEgYWNsOiBhY2xbMV0gPT0gJ1BVQkxJQycsIGZldGNoX3Jlc3VsdCkpCisg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHB1YmxpY19hY2xzKSwgMSkK KworICAgICAgICBuZXdfYWNsX21hcCA9IGRpY3QoemlwKG1hcChsYW1iZGEg Y29sdW1uOiBjb2x1bW4ubmFtZSwgZGVzY3JpcHRpb25zKSwgcHVibGljX2Fj bHNbMF0pKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BVQkxJQycs IG5ld19hY2xfbWFwWydncmFudGVlJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWwoc2VsZi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sIG5ld19hY2xfbWFwWydn cmFudG9yJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3JlbGFjbCcs IG5ld19hY2xfbWFwWydkZWZ0eXBlJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWwoWydyJ10sIG5ld19hY2xfbWFwWydwcml2aWxlZ2VzJ10pCisgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWwoW0ZhbHNlXSwgbmV3X2FjbF9tYXBbJ2dy YW50YWJsZSddKQorICAgICAgICByZXR1cm4gcHVibGljX2FjbHMKKworICAg IEBzdGF0aWNtZXRob2QKKyAgICBkZWYgZ2V0X3RlbXBsYXRlX2ZpbGUodmVy c2lvbiwgZmlsZW5hbWUpOgorICAgICAgICByZXR1cm4gb3MucGF0aC5qb2lu KG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICJ0ZW1wbGF0ZXMi LCAidGFibGUiLCAic3FsIiwgdmVyc2lvbiwgZmlsZW5hbWUpCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZXNf bm9kZV9zcWwucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVz dF90YWJsZXNfbm9kZV9zcWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAuLjFmMzQ0ZGEzCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVzX25vZGVfc3Fs LnB5CkBAIC0wLDAgKzEsNTUgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMK KyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNywgVGhlIHBnQWRtaW4gRGV2 ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVu ZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworCitm cm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMuc3FsX3RlbXBsYXRl X3Rlc3RfYmFzZSBpbXBvcnQgU1FMVGVtcGxhdGVUZXN0QmFzZQorZnJvbSBy ZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzLnRlbXBsYXRlX2hlbHBlciBp bXBvcnQgZmlsZV9hc190ZW1wbGF0ZQorCitpZiBzeXMudmVyc2lvbl9pbmZv WzBdID49IDM6CisgICAgbG9uZyA9IGludAorCisKK2NsYXNzIFRlc3RUYWJs ZXNOb2RlU3FsKFNRTFRlbXBsYXRlVGVzdEJhc2UpOgorICAgIHNjZW5hcmlv cyA9IFsKKyAgICAgICAgKCJUaGlzIHNjZW5hcmlvIHRlc3RzIHRoYXQgYWxs IGFwcGxpY2FibGUgc3FsIHRlbXBsYXRlIHZlcnNpb25zIGNhbiAiCisgICAg ICAgICAiZmV0Y2ggdGFibGUgbmFtZXMiLCBkaWN0KCkpCisgICAgXQorCisg ICAgZGVmIHRlc3Rfc2V0dXAoc2VsZiwgY29ubmVjdGlvbiwgY3Vyc29yKToK KyAgICAgICAgcGFzcworCisgICAgZGVmIGdlbmVyYXRlX3NxbChzZWxmLCB2 ZXJzaW9uKToKKyAgICAgICAgdGVtcGxhdGVfZmlsZSA9IHNlbGYuZ2V0X3Rl bXBsYXRlX2ZpbGUodmVyc2lvbiwgIm5vZGVzLnNxbCIpCisgICAgICAgIHRl bXBsYXRlID0gZmlsZV9hc190ZW1wbGF0ZSh0ZW1wbGF0ZV9maWxlKQorICAg ICAgICBwdWJsaWNfc2NoZW1hX2lkID0gMjIwMAorICAgICAgICBzcWwgPSB0 ZW1wbGF0ZS5yZW5kZXIoc2NpZD1wdWJsaWNfc2NoZW1hX2lkKQorICAgICAg ICByZXR1cm4gc3FsCisKKyAgICBkZWYgYXNzZXJ0aW9ucyhzZWxmLCBmZXRj aF9yZXN1bHQsIGRlc2NyaXB0aW9ucyk6CisKKyAgICAgICAgZmlyc3Rfcm93 ID0ge30KKyAgICAgICAgZm9yIGluZGV4LCBkZXNjcmlwdGlvbiBpbiBlbnVt ZXJhdGUoZGVzY3JpcHRpb25zKToKKyAgICAgICAgICAgIGZpcnN0X3Jvd1tk ZXNjcmlwdGlvbi5uYW1lXSA9IGZldGNoX3Jlc3VsdFswXVtpbmRleF0KKwor ICAgICAgICBvaWQgPSBmaXJzdF9yb3dbJ29pZCddCisgICAgICAgIG5hbWUg PSBmaXJzdF9yb3dbJ25hbWUnXQorICAgICAgICB0cmlnZ2VyY291bnQgPSBm aXJzdF9yb3dbJ3RyaWdnZXJjb3VudCddCisgICAgICAgIGhhc19lbmFibGVf dHJpZ2dlcnMgPSBmaXJzdF9yb3dbJ2hhc19lbmFibGVfdHJpZ2dlcnMnXQor CisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKGxvbmcob2lkKSkKKyAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgndGVzdF90YWJsZScsIG5hbWUpCisg ICAgICAgICMgdHJpZ2dlcmNvdW50IGlzIHNvbWV0aW1lcyByZXR1cm5lZCBh cyBhIHN0cmluZyBmb3Igc29tZSByZWFzb24KKyAgICAgICAgc2VsZi5hc3Nl cnRFcXVhbCgwLCBsb25nKHRyaWdnZXJjb3VudCkpCisgICAgICAgIHNlbGYu YXNzZXJ0SXNOb3ROb25lKGxvbmcoaGFzX2VuYWJsZV90cmlnZ2VycykpCisK KyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGdldF90ZW1wbGF0ZV9maWxl KHZlcnNpb24sIGZpbGVuYW1lKToKKyAgICAgICAgcmV0dXJuIG9zLnBhdGgu am9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAidGVtcGxh dGVzIiwgInRhYmxlIiwgInNxbCIsIHZlcnNpb24sIGZpbGVuYW1lKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFi bGVzX3Byb3BlcnRpZXNfc3FsLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L3Rlc3RzL3Rlc3RfdGFibGVzX3Byb3BlcnRpZXNfc3FsLnB5Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi44NjE1NjJiOAotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0 X3RhYmxlc19wcm9wZXJ0aWVzX3NxbC5weQpAQCAtMCwwICsxLDcyIEBACisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMTcsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl bmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBv cnQgb3MKK2ltcG9ydCBzeXMKKworZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90 ZXN0X3V0aWxzLnRlbXBsYXRlX2hlbHBlciBpbXBvcnQgZmlsZV9hc190ZW1w bGF0ZQorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzLnNxbF90 ZW1wbGF0ZV90ZXN0X2Jhc2UgaW1wb3J0IFNRTFRlbXBsYXRlVGVzdEJhc2UK KworCitpZiBzeXMudmVyc2lvbl9pbmZvWzBdID49IDM6CisgICAgbG9uZyA9 IGludAorCisKK2NsYXNzIFRlc3RUYWJsZXNQcm9wZXJ0aWVzU3FsKFNRTFRl bXBsYXRlVGVzdEJhc2UpOgorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAg KCJUaGlzIHNjZW5hcmlvIHRlc3RzIHRoYXQgYWxsIGFwcGxpY2FibGUgc3Fs IHRlbXBsYXRlIHZlcnNpb25zIGNhbiAiCisgICAgICAgICAiZmV0Y2ggc29t ZSBkZGwiLCBkaWN0KCkpCisgICAgXQorCisgICAgZGVmIF9faW5pdF9fKHNl bGYpOgorICAgICAgICBzdXBlcihUZXN0VGFibGVzUHJvcGVydGllc1NxbCwg c2VsZikuX19pbml0X18oKQorICAgICAgICBzZWxmLmRhdGFiYXNlX2lkID0g LTEKKyAgICAgICAgc2VsZi5sYXN0X3N5c3RlbV9vaWQgPSAtMQorICAgICAg ICBzZWxmLnRhYmxlX2lkID0gLTEKKworICAgIGRlZiBhc3NlcnRpb25zKHNl bGYsIGZldGNoX3Jlc3VsdCwgZGVzY3JpcHRpb25zKToKKworICAgICAgICBm aXJzdF9yb3cgPSB7fQorICAgICAgICBmb3IgaW5kZXgsIGRlc2NyaXB0aW9u IGluIGVudW1lcmF0ZShkZXNjcmlwdGlvbnMpOgorICAgICAgICAgICAgZmly c3Rfcm93W2Rlc2NyaXB0aW9uLm5hbWVdID0gZmV0Y2hfcmVzdWx0WzBdW2lu ZGV4XQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3Rlc3RfdGFibGUn LCBmaXJzdF9yb3dbJ25hbWUnXSkKKyAgICAgICAgIyB0cmlnZ2VyY291bnQg aXMgc29tZXRpbWVzIHJldHVybmVkIGFzIGEgc3RyaW5nIGZvciBzb21lIHJl YXNvbgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxvbmcoZmlyc3Rf cm93Wyd0cmlnZ2VyY291bnQnXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWwoTm9uZSwgZmlyc3Rfcm93Wyd0eXBuYW1lJ10pCisgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWwoW10sIGZpcnN0X3Jvd1snY29sbF9pbmhlcml0cyddKQor CisgICAgZGVmIGdlbmVyYXRlX3NxbChzZWxmLCB2ZXJzaW9uKToKKyAgICAg ICAgdGVtcGxhdGVfZmlsZSA9IHNlbGYuZ2V0X3RlbXBsYXRlX2ZpbGUodmVy c2lvbiwgInByb3BlcnRpZXMuc3FsIikKKyAgICAgICAgdGVtcGxhdGUgPSBm aWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRlX2ZpbGUpCisgICAgICAgIHB1Ymxp Y19zY2hlbWFfaWQgPSAyMjAwCisgICAgICAgIHNxbCA9IHRlbXBsYXRlLnJl bmRlcihzY2lkPXB1YmxpY19zY2hlbWFfaWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkaWQ9c2VsZi5kYXRhYmFzZV9pZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRhdGxhc3RzeXNvaWQ9c2VsZi5sYXN0 X3N5c3RlbV9vaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 aWQ9c2VsZi50YWJsZV9pZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKQorICAgICAgICByZXR1cm4gc3FsCisKKyAgICBkZWYgdGVzdF9zZXR1 cChzZWxmLCBjb25uZWN0aW9uLCBjdXJzb3IpOgorICAgICAgICBjdXJzb3Iu ZXhlY3V0ZSh1IiIiCisgICAgICAgICAgICBTRUxFQ1QKKyAgICAgICAgICAg ICAgICBkYi5vaWQgYXMgZGlkLCBkYXRsYXN0c3lzb2lkCisgICAgICAgICAg ICBGUk9NCisgICAgICAgICAgICAgICAgcGdfZGF0YWJhc2UgZGIKKyAgICAg ICAgICAgIFdIRVJFIGRiLmRhdG5hbWUgPSAnezB9JyIiIi5mb3JtYXQoc2Vs Zi5kYXRhYmFzZV9uYW1lKQorICAgICAgICAgICAgICAgICAgICAgICApCisg ICAgICAgIHNlbGYuZGF0YWJhc2VfaWQsIHNlbGYubGFzdF9zeXN0ZW1fb2lk ID0gY3Vyc29yLmZldGNob25lKCkKKworICAgICAgICBjdXJzb3IuZXhlY3V0 ZSgiU0VMRUNUIG9pZCBGUk9NIHBnX2NsYXNzIHdoZXJlIHJlbG5hbWU9J3Rl c3RfdGFibGUnIikKKyAgICAgICAgc2VsZi50YWJsZV9pZCA9IGN1cnNvci5m ZXRjaG9uZSgpWzBdCisKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYg Z2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lvbiwgZmlsZW5hbWUpOgorICAgICAg ICByZXR1cm4gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVf XyksICIuLiIsICJ0ZW1wbGF0ZXMiLCAidGFibGUiLCAic3FsIiwgdmVyc2lv biwgZmlsZW5hbWUpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdHJp Z2dlcl9nZXRfb2lkX3NxbC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90 ZXN0cy90ZXN0X3RyaWdnZXJfZ2V0X29pZF9zcWwucHkKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjMzMDZmYjdhCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdHJp Z2dlcl9nZXRfb2lkX3NxbC5weQpAQCAtMCwwICsxLDUyIEBACisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0 Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTcs IFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2Fy ZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisj CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgb3MK KworaW1wb3J0IGppbmphMgorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0 X3V0aWxzLnNxbF90ZW1wbGF0ZV90ZXN0X2Jhc2UgaW1wb3J0IFNRTFRlbXBs YXRlVGVzdEJhc2UKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGls cy50ZW1wbGF0ZV9oZWxwZXIgaW1wb3J0IGZpbGVfYXNfdGVtcGxhdGUKKwor CitjbGFzcyBUZXN0VHJpZ2dlckdldE9pZFNxbChTUUxUZW1wbGF0ZVRlc3RC YXNlKToKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICgnVGVzdCBUcmln Z2VyIHRvIHJldHJpZXZlIE9JRCBTUUwgZmlsZScsIGRpY3QoKSkKKyAgICBd CisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHN1cGVyKFRl c3RUcmlnZ2VyR2V0T2lkU3FsLCBzZWxmKS5fX2luaXRfXygpCisgICAgICAg IHNlbGYudGFibGVfaWQgPSAtMQorICAgICAgICBzZWxmLmNvbHVtbl9pZCA9 IC0xCisKKyAgICBkZWYgdGVzdF9zZXR1cChzZWxmLCBjb25uZWN0aW9uLCBj dXJzb3IpOgorICAgICAgICBjdXJzb3IuZXhlY3V0ZSgiU0VMRUNUIHBnX2Ns YXNzLm9pZCBBUyB0YWJsZV9pZCwgIgorICAgICAgICAgICAgICAgICAgICAg ICAicGdfYXR0cmlidXRlLmF0dG51bSBBUyBjb2x1bW5faWQgIgorICAgICAg ICAgICAgICAgICAgICAgICAiRlJPTSBwZ19jbGFzcyBKT0lOIHBnX2F0dHJp YnV0ZSBPTiBhdHRyZWxpZD1wZ19jbGFzcy5vaWQgIgorICAgICAgICAgICAg ICAgICAgICAgICAiV0hFUkUgcGdfY2xhc3MucmVsbmFtZT0ndGVzdF90YWJs ZSciCisgICAgICAgICAgICAgICAgICAgICAgICIgQU5EIHBnX2F0dHJpYnV0 ZS5hdHRuYW1lID0gJ3NvbWVfY29sdW1uJyIpCisgICAgICAgIHNlbGYudGFi bGVfaWQsIHNlbGYuY29sdW1uX2lkID0gY3Vyc29yLmZldGNob25lKCkKKwor ICAgIGRlZiBnZW5lcmF0ZV9zcWwoc2VsZiwgdmVyc2lvbik6CisgICAgICAg IHRlbXBsYXRlX2ZpbGUgPSBzZWxmLmdldF90ZW1wbGF0ZV9maWxlKHZlcnNp b24sICJnZXRfb2lkLnNxbCIpCisgICAgICAgIGppbmphMi5maWx0ZXJzLkZJ TFRFUlNbJ3F0TGl0ZXJhbCddID0gbGFtYmRhIHZhbHVlOiAiTlVMTCIKKyAg ICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRlX2Zp bGUpCisKKyAgICAgICAgc3FsID0gdGVtcGxhdGUucmVuZGVyKGRhdGE9eydu YW1lJzogTm9uZX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 aWQ9c2VsZi50YWJsZV9pZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKQorCisgICAgICAgIHJldHVybiBzcWwKKworICAgIGRlZiBhc3NlcnRp b25zKHNlbGYsIGZldGNoX3Jlc3VsdCwgZGVzY3JpcHRpb25zKToKKyAgICAg ICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4oZmV0Y2hfcmVzdWx0KSkKKwor ICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgZ2V0X3RlbXBsYXRlX2ZpbGUo dmVyc2lvbiwgZmlsZW5hbWUpOgorICAgICAgICByZXR1cm4gb3MucGF0aC5q b2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICJ0ZW1wbGF0 ZXMiLCAidHJpZ2dlciIsICJzcWwiLCB2ZXJzaW9uLCBmaWxlbmFtZSkKKwpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3Rf dHJpZ2dlcl9ub2Rlc19zcWwucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dGVzdHMvdGVzdF90cmlnZ2VyX25vZGVzX3NxbC5weQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMC4uOGYzMjhhNjAKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90cmln Z2VyX25vZGVzX3NxbC5weQpAQCAtMCwwICsxLDQzIEBACisjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3Jl U1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTcsIFRo ZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBp cyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgb3MKKwor ZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzLnNxbF90ZW1wbGF0 ZV90ZXN0X2Jhc2UgaW1wb3J0IFNRTFRlbXBsYXRlVGVzdEJhc2UKK2Zyb20g cmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscy50ZW1wbGF0ZV9oZWxwZXIg aW1wb3J0IGZpbGVfYXNfdGVtcGxhdGUKKworCitjbGFzcyBUZXN0VHJpZ2dl ck5vZGVzU3FsKFNRTFRlbXBsYXRlVGVzdEJhc2UpOgorICAgIHNjZW5hcmlv cyA9IFsKKyAgICAgICAgKCdUZXN0IFRyaWdnZXIgTm9kZXMgU1FMIGZpbGUn LCBkaWN0KCkpCisgICAgXQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgor ICAgICAgICBzdXBlcihUZXN0VHJpZ2dlck5vZGVzU3FsLCBzZWxmKS5fX2lu aXRfXygpCisgICAgICAgIHNlbGYudGFibGVfaWQgPSAtMQorCisgICAgZGVm IHRlc3Rfc2V0dXAoc2VsZiwgY29ubmVjdGlvbiwgY3Vyc29yKToKKyAgICAg ICAgY3Vyc29yLmV4ZWN1dGUoIlNFTEVDVCBwZ19jbGFzcy5vaWQgQVMgdGFi bGVfaWQgIgorICAgICAgICAgICAgICAgICAgICAgICAiRlJPTSBwZ19jbGFz cyAiCisgICAgICAgICAgICAgICAgICAgICAgICJXSEVSRSBwZ19jbGFzcy5y ZWxuYW1lPSd0ZXN0X3RhYmxlJyIpCisgICAgICAgIHNlbGYudGFibGVfaWQg PSBjdXJzb3IuZmV0Y2hvbmUoKVswXQorCisgICAgZGVmIGdlbmVyYXRlX3Nx bChzZWxmLCB2ZXJzaW9uKToKKyAgICAgICAgdGVtcGxhdGVfZmlsZSA9IHNl bGYuZ2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lvbiwgIm5vZGVzLnNxbCIpCisg ICAgICAgIHRlbXBsYXRlID0gZmlsZV9hc190ZW1wbGF0ZSh0ZW1wbGF0ZV9m aWxlKQorICAgICAgICBzcWwgPSB0ZW1wbGF0ZS5yZW5kZXIodGlkPXNlbGYu dGFibGVfaWQpCisKKyAgICAgICAgcmV0dXJuIHNxbAorCisgICAgZGVmIGFz c2VydGlvbnMoc2VsZiwgZmV0Y2hfcmVzdWx0LCBkZXNjcmlwdGlvbnMpOgor ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihmZXRjaF9yZXN1bHQp KQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBnZXRfdGVtcGxhdGVf ZmlsZSh2ZXJzaW9uLCBmaWxlbmFtZSk6CisgICAgICAgIHJldHVybiBvcy5w YXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgInRl bXBsYXRlcyIsICJ0cmlnZ2VyIiwgInNxbCIsIHZlcnNpb24sIGZpbGVuYW1l KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvdGVtcGxhdGVzL2RlcGVuZHMvc3FsLzkuMV9wbHVzL2Rl cGVuZGVuY2llcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy90ZW1wbGF0ZXMvZGVwZW5kcy9zcWwvOS4xX3BsdXMv ZGVwZW5kZW5jaWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMC4uZTViYjhjYjYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZW1wbGF0ZXMv ZGVwZW5kcy9zcWwvOS4xX3BsdXMvZGVwZW5kZW5jaWVzLnNxbApAQCAtMCww ICsxLDQ1IEBACitTRUxFQ1QgRElTVElOQ1QgZGVwLmRlcHR5cGUsIGRlcC5y ZWZjbGFzc2lkLCBjbC5yZWxraW5kLCBhZC5hZGJpbiwgYWQuYWRzcmMsCisg ICAgQ0FTRSBXSEVOIGNsLnJlbGtpbmQgSVMgTk9UIE5VTEwgVEhFTiBjbC5y ZWxraW5kIHx8IENPQUxFU0NFKGRlcC5yZWZvYmpzdWJpZDo6Y2hhcmFjdGVy IHZhcnlpbmcsICcnKQorICAgICAgICBXSEVOIHRnLm9pZCBJUyBOT1QgTlVM TCBUSEVOICdUJzo6dGV4dAorICAgICAgICBXSEVOIHR5Lm9pZCBJUyBOT1Qg TlVMTCBBTkQgdHkudHlwYmFzZXR5cGUgPSAwIFRIRU4gJ3knOjp0ZXh0Cisg ICAgICAgIFdIRU4gdHkub2lkIElTIE5PVCBOVUxMIEFORCB0eS50eXBiYXNl dHlwZSAhPSAwIFRIRU4gJ2QnOjp0ZXh0CisgICAgICAgIFdIRU4gbnMub2lk IElTIE5PVCBOVUxMIFRIRU4gJ24nOjp0ZXh0CisgICAgICAgIFdIRU4gcHIu b2lkIElTIE5PVCBOVUxMIFRIRU4gJ3AnOjp0ZXh0CisgICAgICAgIFdIRU4g bGEub2lkIElTIE5PVCBOVUxMIFRIRU4gJ2wnOjp0ZXh0CisgICAgICAgIFdI RU4gcncub2lkIElTIE5PVCBOVUxMIFRIRU4gJ1InOjp0ZXh0CisgICAgICAg IFdIRU4gY28ub2lkIElTIE5PVCBOVUxMIFRIRU4gJ0MnOjp0ZXh0IHx8IGNv bnR5cGUKKyAgICAgICAgV0hFTiBhZC5vaWQgSVMgTk9UIE5VTEwgVEhFTiAn QSc6OnRleHQKKyAgICAgICAgV0hFTiBmcy5vaWQgSVMgTk9UIE5VTEwgVEhF TiAnRic6OnRleHQKKyAgICAgICAgV0hFTiBmZHcub2lkIElTIE5PVCBOVUxM IFRIRU4gJ2YnOjp0ZXh0CisgICAgRUxTRSAnJworICAgIEVORCBBUyB0eXBl LAorICAgIENPQUxFU0NFKGNvYy5yZWxuYW1lLCBjbHJ3LnJlbG5hbWUpIEFT IG93bmVydGFibGUsCisgICAgQ0FTRSBXSEVOIGNsLnJlbG5hbWUgSVMgTk9U IE5VTEwgT1IgYXR0LmF0dG5hbWUgSVMgTk9UIE5VTEwgVEhFTiBjbC5yZWxu YW1lIHx8ICcuJyB8fCBhdHQuYXR0bmFtZQorICAgIEVMU0UgQ09BTEVTQ0Uo Y2wucmVsbmFtZSwgY28uY29ubmFtZSwgcHIucHJvbmFtZSwgdGcudGduYW1l LCB0eS50eXBuYW1lLCBsYS5sYW5uYW1lLCBydy5ydWxlbmFtZSwgbnMubnNw bmFtZSwgZnMuc3J2bmFtZSwgZmR3LmZkd25hbWUpCisgICAgRU5EIEFTIHJl Zm5hbWUsCisgICAgQ09BTEVTQ0UobnNjLm5zcG5hbWUsIG5zby5uc3BuYW1l LCBuc3AubnNwbmFtZSwgbnN0Lm5zcG5hbWUsIG5zcncubnNwbmFtZSkgQVMg bnNwbmFtZQorRlJPTSBwZ19kZXBlbmQgZGVwCitMRUZUIEpPSU4gcGdfY2xh c3MgY2wgT04gZGVwLnJlZm9iamlkPWNsLm9pZAorTEVGVCBKT0lOIHBnX2F0 dHJpYnV0ZSBhdHQgT04gZGVwLnJlZm9iamlkPWF0dC5hdHRyZWxpZCBBTkQg ZGVwLnJlZm9ianN1YmlkPWF0dC5hdHRudW0KK0xFRlQgSk9JTiBwZ19uYW1l c3BhY2UgbnNjIE9OIGNsLnJlbG5hbWVzcGFjZT1uc2Mub2lkCitMRUZUIEpP SU4gcGdfcHJvYyBwciBPTiBkZXAucmVmb2JqaWQ9cHIub2lkCitMRUZUIEpP SU4gcGdfbmFtZXNwYWNlIG5zcCBPTiBwci5wcm9uYW1lc3BhY2U9bnNwLm9p ZAorTEVGVCBKT0lOIHBnX3RyaWdnZXIgdGcgT04gZGVwLnJlZm9iamlkPXRn Lm9pZAorTEVGVCBKT0lOIHBnX3R5cGUgdHkgT04gZGVwLnJlZm9iamlkPXR5 Lm9pZAorTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc3QgT04gdHkudHlwbmFt ZXNwYWNlPW5zdC5vaWQKK0xFRlQgSk9JTiBwZ19jb25zdHJhaW50IGNvIE9O IGRlcC5yZWZvYmppZD1jby5vaWQKK0xFRlQgSk9JTiBwZ19jbGFzcyBjb2Mg T04gY28uY29ucmVsaWQ9Y29jLm9pZAorTEVGVCBKT0lOIHBnX25hbWVzcGFj ZSBuc28gT04gY28uY29ubmFtZXNwYWNlPW5zby5vaWQKK0xFRlQgSk9JTiBw Z19yZXdyaXRlIHJ3IE9OIGRlcC5yZWZvYmppZD1ydy5vaWQKK0xFRlQgSk9J TiBwZ19jbGFzcyBjbHJ3IE9OIGNscncub2lkPXJ3LmV2X2NsYXNzCitMRUZU IEpPSU4gcGdfbmFtZXNwYWNlIG5zcncgT04gY2xydy5yZWxuYW1lc3BhY2U9 bnNydy5vaWQKK0xFRlQgSk9JTiBwZ19sYW5ndWFnZSBsYSBPTiBkZXAucmVm b2JqaWQ9bGEub2lkCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zIE9OIGRl cC5yZWZvYmppZD1ucy5vaWQKK0xFRlQgSk9JTiBwZ19hdHRyZGVmIGFkIE9O IGFkLmFkcmVsaWQ9YXR0LmF0dHJlbGlkIEFORCBhZC5hZG51bT1hdHQuYXR0 bnVtCitMRUZUIEpPSU4gcGdfZm9yZWlnbl9zZXJ2ZXIgZnMgT04gZnMub2lk PWRlcC5yZWZvYmppZAorTEVGVCBKT0lOIHBnX2ZvcmVpZ25fZGF0YV93cmFw cGVyIGZkdyBPTiBmZHcub2lkPWRlcC5yZWZvYmppZAore3t3aGVyZV9jbGF1 c2V9fSBBTkQKK3JlZmNsYXNzaWQgSU4gKCBTRUxFQ1Qgb2lkIEZST00gcGdf Y2xhc3MgV0hFUkUgcmVsbmFtZSBJTgorICAgKCdwZ19jbGFzcycsICdwZ19j b25zdHJhaW50JywgJ3BnX2NvbnZlcnNpb24nLCAncGdfbGFuZ3VhZ2UnLCAn cGdfcHJvYycsICdwZ19yZXdyaXRlJywgJ3BnX25hbWVzcGFjZScsCisgICAn cGdfdHJpZ2dlcicsICdwZ190eXBlJywgJ3BnX2F0dHJkZWYnLCAncGdfZXZl bnRfdHJpZ2dlcicsICdwZ19mb3JlaWduX3NlcnZlcicsICdwZ19mb3JlaWdu X2RhdGFfd3JhcHBlcicpKQorT1JERVIgQlkgcmVmY2xhc3NpZCwgY2wucmVs a2luZApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rl bXBsYXRlcy9kZXBlbmRzL3NxbC85LjFfcGx1cy9kZXBlbmRlbnRzLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rl bXBsYXRlcy9kZXBlbmRzL3NxbC85LjFfcGx1cy9kZXBlbmRlbnRzLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uMTI4MTY3MmYK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy90ZW1wbGF0ZXMvZGVwZW5kcy9zcWwvOS4xX3Bs dXMvZGVwZW5kZW50cy5zcWwKQEAgLTAsMCArMSw0NCBAQAorU0VMRUNUIERJ U1RJTkNUIGRlcC5kZXB0eXBlLCBkZXAuY2xhc3NpZCwgY2wucmVsa2luZCwg YWQuYWRiaW4sIGFkLmFkc3JjLAorICAgIENBU0UgV0hFTiBjbC5yZWxraW5k IElTIE5PVCBOVUxMIFRIRU4gY2wucmVsa2luZCB8fCBDT0FMRVNDRShkZXAu b2Jqc3ViaWQ6OnRleHQsICcnKQorICAgICAgICBXSEVOIHRnLm9pZCBJUyBO T1QgTlVMTCBUSEVOICdUJzo6dGV4dAorICAgICAgICBXSEVOIHR5Lm9pZCBJ UyBOT1QgTlVMTCBUSEVOICd5Jzo6dGV4dAorICAgICAgICBXSEVOIG5zLm9p ZCBJUyBOT1QgTlVMTCBUSEVOICduJzo6dGV4dAorICAgICAgICBXSEVOIHBy Lm9pZCBJUyBOT1QgTlVMTCBUSEVOICdwJzo6dGV4dAorICAgICAgICBXSEVO IGxhLm9pZCBJUyBOT1QgTlVMTCBUSEVOICdsJzo6dGV4dAorICAgICAgICBX SEVOIHJ3Lm9pZCBJUyBOT1QgTlVMTCBUSEVOICdSJzo6dGV4dAorICAgICAg ICBXSEVOIGNvLm9pZCBJUyBOT1QgTlVMTCBUSEVOICdDJzo6dGV4dCB8fCBj b250eXBlCisgICAgICAgIFdIRU4gYWQub2lkIElTIE5PVCBOVUxMIFRIRU4g J0EnOjp0ZXh0CisgICAgICAgIFdIRU4gZnMub2lkIElTIE5PVCBOVUxMIFRI RU4gJ0YnOjp0ZXh0CisgICAgICAgIFdIRU4gZmR3Lm9pZCBJUyBOT1QgTlVM TCBUSEVOICdmJzo6dGV4dAorICAgICAgICBFTFNFICcnCisgICAgRU5EIEFT IHR5cGUsCisgICAgQ09BTEVTQ0UoY29jLnJlbG5hbWUsIGNscncucmVsbmFt ZSkgQVMgb3duZXJ0YWJsZSwKKyAgICBDQVNFIFdIRU4gY2wucmVsbmFtZSBJ UyBOT1QgTlVMTCBBTkQgYXR0LmF0dG5hbWUgSVMgTk9UIE5VTEwgVEhFTiBj bC5yZWxuYW1lIHx8ICcuJyB8fCBhdHQuYXR0bmFtZQorICAgIEVMU0UgQ09B TEVTQ0UoY2wucmVsbmFtZSwgY28uY29ubmFtZSwgcHIucHJvbmFtZSwgdGcu dGduYW1lLCB0eS50eXBuYW1lLCBsYS5sYW5uYW1lLCBydy5ydWxlbmFtZSwg bnMubnNwbmFtZSwgZnMuc3J2bmFtZSwgZmR3LmZkd25hbWUpCisgICAgRU5E IEFTIHJlZm5hbWUsCisgICAgQ09BTEVTQ0UobnNjLm5zcG5hbWUsIG5zby5u c3BuYW1lLCBuc3AubnNwbmFtZSwgbnN0Lm5zcG5hbWUsIG5zcncubnNwbmFt ZSkgQVMgbnNwbmFtZQorRlJPTSBwZ19kZXBlbmQgZGVwCitMRUZUIEpPSU4g cGdfY2xhc3MgY2wgT04gZGVwLm9iamlkPWNsLm9pZAorTEVGVCBKT0lOIHBn X2F0dHJpYnV0ZSBhdHQgT04gZGVwLm9iamlkPWF0dC5hdHRyZWxpZCBBTkQg ZGVwLm9ianN1YmlkPWF0dC5hdHRudW0KK0xFRlQgSk9JTiBwZ19uYW1lc3Bh Y2UgbnNjIE9OIGNsLnJlbG5hbWVzcGFjZT1uc2Mub2lkCitMRUZUIEpPSU4g cGdfcHJvYyBwciBPTiBkZXAub2JqaWQ9cHIub2lkCitMRUZUIEpPSU4gcGdf bmFtZXNwYWNlIG5zcCBPTiBwci5wcm9uYW1lc3BhY2U9bnNwLm9pZAorTEVG VCBKT0lOIHBnX3RyaWdnZXIgdGcgT04gZGVwLm9iamlkPXRnLm9pZAorTEVG VCBKT0lOIHBnX3R5cGUgdHkgT04gZGVwLm9iamlkPXR5Lm9pZAorTEVGVCBK T0lOIHBnX25hbWVzcGFjZSBuc3QgT04gdHkudHlwbmFtZXNwYWNlPW5zdC5v aWQKK0xFRlQgSk9JTiBwZ19jb25zdHJhaW50IGNvIE9OIGRlcC5vYmppZD1j by5vaWQKK0xFRlQgSk9JTiBwZ19jbGFzcyBjb2MgT04gY28uY29ucmVsaWQ9 Y29jLm9pZAorTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc28gT04gY28uY29u bmFtZXNwYWNlPW5zby5vaWQKK0xFRlQgSk9JTiBwZ19yZXdyaXRlIHJ3IE9O IGRlcC5vYmppZD1ydy5vaWQKK0xFRlQgSk9JTiBwZ19jbGFzcyBjbHJ3IE9O IGNscncub2lkPXJ3LmV2X2NsYXNzCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNl IG5zcncgT04gY2xydy5yZWxuYW1lc3BhY2U9bnNydy5vaWQKK0xFRlQgSk9J TiBwZ19sYW5ndWFnZSBsYSBPTiBkZXAub2JqaWQ9bGEub2lkCitMRUZUIEpP SU4gcGdfbmFtZXNwYWNlIG5zIE9OIGRlcC5vYmppZD1ucy5vaWQKK0xFRlQg Sk9JTiBwZ19hdHRyZGVmIGFkIE9OIGFkLm9pZD1kZXAub2JqaWQKK0xFRlQg Sk9JTiBwZ19mb3JlaWduX3NlcnZlciBmcyBPTiBmcy5vaWQ9ZGVwLm9iamlk CitMRUZUIEpPSU4gcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIgZmR3IE9OIGZk dy5vaWQ9ZGVwLm9iamlkCit7e3doZXJlX2NsYXVzZX19IEFORAorY2xhc3Np ZCBJTiAoIFNFTEVDVCBvaWQgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1l IElOCisgICAoJ3BnX2NsYXNzJywgJ3BnX2NvbnN0cmFpbnQnLCAncGdfY29u dmVyc2lvbicsICdwZ19sYW5ndWFnZScsICdwZ19wcm9jJywgJ3BnX3Jld3Jp dGUnLCAncGdfbmFtZXNwYWNlJywKKyAgICdwZ190cmlnZ2VyJywgJ3BnX3R5 cGUnLCAncGdfYXR0cmRlZicsICdwZ19ldmVudF90cmlnZ2VyJywgJ3BnX2Zv cmVpZ25fc2VydmVyJywgJ3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVyJykpCitP UkRFUiBCWSBjbGFzc2lkLCBjbC5yZWxraW5kCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZW1wbGF0 ZXMvZGVwZW5kcy9zcWwvZGVmYXVsdC9kZXBlbmRlbmNpZXMuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVtcGxh dGVzL2RlcGVuZHMvc3FsL2RlZmF1bHQvZGVwZW5kZW5jaWVzLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uYWFlNTk4MmUKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy90ZW1wbGF0ZXMvZGVwZW5kcy9zcWwvZGVmYXVsdC9k ZXBlbmRlbmNpZXMuc3FsCkBAIC0wLDAgKzEsNDIgQEAKK1NFVCBMT0NBTCBq b2luX2NvbGxhcHNlX2xpbWl0PTg7CitTRUxFQ1QgRElTVElOQ1QgZGVwLmRl cHR5cGUsIGRlcC5yZWZjbGFzc2lkLCBjbC5yZWxraW5kLCBhZC5hZGJpbiwg YWQuYWRzcmMsCisgICAgQ0FTRSBXSEVOIGNsLnJlbGtpbmQgSVMgTk9UIE5V TEwgVEhFTiBjbC5yZWxraW5kIHx8IENPQUxFU0NFKGRlcC5yZWZvYmpzdWJp ZDo6Y2hhcmFjdGVyIHZhcnlpbmcsICcnKQorICAgICAgICBXSEVOIHRnLm9p ZCBJUyBOT1QgTlVMTCBUSEVOICdUJzo6dGV4dAorICAgICAgICBXSEVOIHR5 Lm9pZCBJUyBOT1QgTlVMTCBBTkQgdHkudHlwYmFzZXR5cGUgPSAwIFRIRU4g J3knOjp0ZXh0CisgICAgICAgIFdIRU4gdHkub2lkIElTIE5PVCBOVUxMIEFO RCB0eS50eXBiYXNldHlwZSAhPSAwIFRIRU4gJ2QnOjp0ZXh0CisgICAgICAg IFdIRU4gbnMub2lkIElTIE5PVCBOVUxMIFRIRU4gJ24nOjp0ZXh0CisgICAg ICAgIFdIRU4gcHIub2lkIElTIE5PVCBOVUxMIFRIRU4gJ3AnOjp0ZXh0Cisg ICAgICAgIFdIRU4gbGEub2lkIElTIE5PVCBOVUxMIFRIRU4gJ2wnOjp0ZXh0 CisgICAgICAgIFdIRU4gcncub2lkIElTIE5PVCBOVUxMIFRIRU4gJ1InOjp0 ZXh0CisgICAgICAgIFdIRU4gY28ub2lkIElTIE5PVCBOVUxMIFRIRU4gJ0Mn Ojp0ZXh0IHx8IGNvbnR5cGUKKyAgICAgICAgV0hFTiBhZC5vaWQgSVMgTk9U IE5VTEwgVEhFTiAnQSc6OnRleHQKKyAgICBFTFNFICcnCisgICAgRU5EIEFT IHR5cGUsCisgICAgQ09BTEVTQ0UoY29jLnJlbG5hbWUsIGNscncucmVsbmFt ZSkgQVMgb3duZXJ0YWJsZSwKKyAgICBDQVNFIFdIRU4gY2wucmVsbmFtZSBJ UyBOT1QgTlVMTCBPUiBhdHQuYXR0bmFtZSBJUyBOT1QgTlVMTCBUSEVOIGNs LnJlbG5hbWUgfHwgJy4nIHx8IGF0dC5hdHRuYW1lCisgICAgRUxTRSBDT0FM RVNDRShjbC5yZWxuYW1lLCBjby5jb25uYW1lLCBwci5wcm9uYW1lLCB0Zy50 Z25hbWUsIHR5LnR5cG5hbWUsIGxhLmxhbm5hbWUsIHJ3LnJ1bGVuYW1lLCBu cy5uc3BuYW1lKQorICAgIEVORCBBUyByZWZuYW1lLAorICAgIENPQUxFU0NF KG5zYy5uc3BuYW1lLCBuc28ubnNwbmFtZSwgbnNwLm5zcG5hbWUsIG5zdC5u c3BuYW1lLCBuc3J3Lm5zcG5hbWUpIEFTIG5zcG5hbWUKK0ZST00gcGdfZGVw ZW5kIGRlcAorTEVGVCBKT0lOIHBnX2NsYXNzIGNsIE9OIGRlcC5yZWZvYmpp ZD1jbC5vaWQKK0xFRlQgSk9JTiBwZ19hdHRyaWJ1dGUgYXR0IE9OIGRlcC5y ZWZvYmppZD1hdHQuYXR0cmVsaWQgQU5EIGRlcC5yZWZvYmpzdWJpZD1hdHQu YXR0bnVtCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zYyBPTiBjbC5yZWxu YW1lc3BhY2U9bnNjLm9pZAorTEVGVCBKT0lOIHBnX3Byb2MgcHIgT04gZGVw LnJlZm9iamlkPXByLm9pZAorTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc3Ag T04gcHIucHJvbmFtZXNwYWNlPW5zcC5vaWQKK0xFRlQgSk9JTiBwZ190cmln Z2VyIHRnIE9OIGRlcC5yZWZvYmppZD10Zy5vaWQKK0xFRlQgSk9JTiBwZ190 eXBlIHR5IE9OIGRlcC5yZWZvYmppZD10eS5vaWQKK0xFRlQgSk9JTiBwZ19u YW1lc3BhY2UgbnN0IE9OIHR5LnR5cG5hbWVzcGFjZT1uc3Qub2lkCitMRUZU IEpPSU4gcGdfY29uc3RyYWludCBjbyBPTiBkZXAucmVmb2JqaWQ9Y28ub2lk CitMRUZUIEpPSU4gcGdfY2xhc3MgY29jIE9OIGNvLmNvbnJlbGlkPWNvYy5v aWQKK0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnNvIE9OIGNvLmNvbm5hbWVz cGFjZT1uc28ub2lkCitMRUZUIEpPSU4gcGdfcmV3cml0ZSBydyBPTiBkZXAu cmVmb2JqaWQ9cncub2lkCitMRUZUIEpPSU4gcGdfY2xhc3MgY2xydyBPTiBj bHJ3Lm9pZD1ydy5ldl9jbGFzcworTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBu c3J3IE9OIGNscncucmVsbmFtZXNwYWNlPW5zcncub2lkCitMRUZUIEpPSU4g cGdfbGFuZ3VhZ2UgbGEgT04gZGVwLnJlZm9iamlkPWxhLm9pZAorTEVGVCBK T0lOIHBnX25hbWVzcGFjZSBucyBPTiBkZXAucmVmb2JqaWQ9bnMub2lkCitM RUZUIEpPSU4gcGdfYXR0cmRlZiBhZCBPTiBhZC5hZHJlbGlkPWF0dC5hdHRy ZWxpZCBBTkQgYWQuYWRudW09YXR0LmF0dG51bQore3t3aGVyZV9jbGF1c2V9 fSBBTkQKK3JlZmNsYXNzaWQgSU4gKCBTRUxFQ1Qgb2lkIEZST00gcGdfY2xh c3MgV0hFUkUgcmVsbmFtZSBJTgorICAgKCdwZ19jbGFzcycsICdwZ19jb25z dHJhaW50JywgJ3BnX2NvbnZlcnNpb24nLCAncGdfbGFuZ3VhZ2UnLCAncGdf cHJvYycsICdwZ19yZXdyaXRlJywgJ3BnX25hbWVzcGFjZScsCisgICAncGdf dHJpZ2dlcicsICdwZ190eXBlJywgJ3BnX2F0dHJkZWYnLCAncGdfZXZlbnRf dHJpZ2dlcicsICdwZ19mb3JlaWduX3NlcnZlcicsICdwZ19mb3JlaWduX2Rh dGFfd3JhcHBlcicpKQorT1JERVIgQlkgcmVmY2xhc3NpZCwgY2wucmVsa2lu ZApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RlbXBs YXRlcy9kZXBlbmRzL3NxbC9kZWZhdWx0L2RlcGVuZGVudHMuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVtcGxh dGVzL2RlcGVuZHMvc3FsL2RlZmF1bHQvZGVwZW5kZW50cy5zcWwKaW5kZXgg ZTJiYTNkNmIuLjJmZTJlZjNlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZW1wbGF0ZXMvZGVwZW5k cy9zcWwvZGVmYXVsdC9kZXBlbmRlbnRzLnNxbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZW1wbGF0ZXMvZGVw ZW5kcy9zcWwvZGVmYXVsdC9kZXBlbmRlbnRzLnNxbApAQCAtMSw1OSArMSw0 IEBACi17JSBpZiBmZXRjaF9kZXBlbmRlbmNpZXMgJX0KLVNFTEVDVCBESVNU SU5DVCBkZXAuZGVwdHlwZSwgZGVwLnJlZmNsYXNzaWQsIGNsLnJlbGtpbmQs IGFkLmFkYmluLCBhZC5hZHNyYywKLSAgICBDQVNFIFdIRU4gY2wucmVsa2lu ZCBJUyBOT1QgTlVMTCBUSEVOIGNsLnJlbGtpbmQgfHwgQ09BTEVTQ0UoZGVw LnJlZm9ianN1YmlkOjpjaGFyYWN0ZXIgdmFyeWluZywgJycpCi0gICAgICAg IFdIRU4gdGcub2lkIElTIE5PVCBOVUxMIFRIRU4gJ1QnOjp0ZXh0Ci0gICAg ICAgIFdIRU4gdHkub2lkIElTIE5PVCBOVUxMIEFORCB0eS50eXBiYXNldHlw ZSA9IDAgVEhFTiAneSc6OnRleHQKLSAgICAgICAgV0hFTiB0eS5vaWQgSVMg Tk9UIE5VTEwgQU5EIHR5LnR5cGJhc2V0eXBlICE9IDAgVEhFTiAnZCc6OnRl eHQKLSAgICAgICAgV0hFTiBucy5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnbic6 OnRleHQKLSAgICAgICAgV0hFTiBwci5vaWQgSVMgTk9UIE5VTEwgVEhFTiAn cCc6OnRleHQKLSAgICAgICAgV0hFTiBsYS5vaWQgSVMgTk9UIE5VTEwgVEhF TiAnbCc6OnRleHQKLSAgICAgICAgV0hFTiBydy5vaWQgSVMgTk9UIE5VTEwg VEhFTiAnUic6OnRleHQKLSAgICAgICAgV0hFTiBjby5vaWQgSVMgTk9UIE5V TEwgVEhFTiAnQyc6OnRleHQgfHwgY29udHlwZQotICAgICAgICBXSEVOIGFk Lm9pZCBJUyBOT1QgTlVMTCBUSEVOICdBJzo6dGV4dAotICAgICAgICBXSEVO IGZzLm9pZCBJUyBOT1QgTlVMTCBUSEVOICdGJzo6dGV4dAotICAgICAgICBX SEVOIGZkdy5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnZic6OnRleHQKLSAgICBF TFNFICcnCi0gICAgRU5EIEFTIHR5cGUsCi0gICAgQ09BTEVTQ0UoY29jLnJl bG5hbWUsIGNscncucmVsbmFtZSkgQVMgb3duZXJ0YWJsZSwKLSAgICBDQVNF IFdIRU4gY2wucmVsbmFtZSBJUyBOT1QgTlVMTCBPUiBhdHQuYXR0bmFtZSBJ UyBOT1QgTlVMTCBUSEVOIGNsLnJlbG5hbWUgfHwgJy4nIHx8IGF0dC5hdHRu YW1lCi0gICAgRUxTRSBDT0FMRVNDRShjbC5yZWxuYW1lLCBjby5jb25uYW1l LCBwci5wcm9uYW1lLCB0Zy50Z25hbWUsIHR5LnR5cG5hbWUsIGxhLmxhbm5h bWUsIHJ3LnJ1bGVuYW1lLCBucy5uc3BuYW1lLCBmcy5zcnZuYW1lLCBmZHcu ZmR3bmFtZSkKLSAgICBFTkQgQVMgcmVmbmFtZSwKLSAgICBDT0FMRVNDRShu c2MubnNwbmFtZSwgbnNvLm5zcG5hbWUsIG5zcC5uc3BuYW1lLCBuc3QubnNw bmFtZSwgbnNydy5uc3BuYW1lKSBBUyBuc3BuYW1lCi1GUk9NIHBnX2RlcGVu ZCBkZXAKLUxFRlQgSk9JTiBwZ19jbGFzcyBjbCBPTiBkZXAucmVmb2JqaWQ9 Y2wub2lkCi1MRUZUIEpPSU4gcGdfYXR0cmlidXRlIGF0dCBPTiBkZXAucmVm b2JqaWQ9YXR0LmF0dHJlbGlkIEFORCBkZXAucmVmb2Jqc3ViaWQ9YXR0LmF0 dG51bQotTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc2MgT04gY2wucmVsbmFt ZXNwYWNlPW5zYy5vaWQKLUxFRlQgSk9JTiBwZ19wcm9jIHByIE9OIGRlcC5y ZWZvYmppZD1wci5vaWQKLUxFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnNwIE9O IHByLnByb25hbWVzcGFjZT1uc3Aub2lkCi1MRUZUIEpPSU4gcGdfdHJpZ2dl ciB0ZyBPTiBkZXAucmVmb2JqaWQ9dGcub2lkCi1MRUZUIEpPSU4gcGdfdHlw ZSB0eSBPTiBkZXAucmVmb2JqaWQ9dHkub2lkCi1MRUZUIEpPSU4gcGdfbmFt ZXNwYWNlIG5zdCBPTiB0eS50eXBuYW1lc3BhY2U9bnN0Lm9pZAotTEVGVCBK T0lOIHBnX2NvbnN0cmFpbnQgY28gT04gZGVwLnJlZm9iamlkPWNvLm9pZAot TEVGVCBKT0lOIHBnX2NsYXNzIGNvYyBPTiBjby5jb25yZWxpZD1jb2Mub2lk Ci1MRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zbyBPTiBjby5jb25uYW1lc3Bh Y2U9bnNvLm9pZAotTEVGVCBKT0lOIHBnX3Jld3JpdGUgcncgT04gZGVwLnJl Zm9iamlkPXJ3Lm9pZAotTEVGVCBKT0lOIHBnX2NsYXNzIGNscncgT04gY2xy dy5vaWQ9cncuZXZfY2xhc3MKLUxFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnNy dyBPTiBjbHJ3LnJlbG5hbWVzcGFjZT1uc3J3Lm9pZAotTEVGVCBKT0lOIHBn X2xhbmd1YWdlIGxhIE9OIGRlcC5yZWZvYmppZD1sYS5vaWQKLUxFRlQgSk9J TiBwZ19uYW1lc3BhY2UgbnMgT04gZGVwLnJlZm9iamlkPW5zLm9pZAotTEVG VCBKT0lOIHBnX2F0dHJkZWYgYWQgT04gYWQuYWRyZWxpZD1hdHQuYXR0cmVs aWQgQU5EIGFkLmFkbnVtPWF0dC5hdHRudW0KLUxFRlQgSk9JTiBwZ19mb3Jl aWduX3NlcnZlciBmcyBPTiBmcy5vaWQ9ZGVwLnJlZm9iamlkCi1MRUZUIEpP SU4gcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIgZmR3IE9OIGZkdy5vaWQ9ZGVw LnJlZm9iamlkCi17e3doZXJlX2NsYXVzZX19IEFORAotcmVmY2xhc3NpZCBJ TiAoIFNFTEVDVCBvaWQgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lIElO Ci0gICAoJ3BnX2NsYXNzJywgJ3BnX2NvbnN0cmFpbnQnLCAncGdfY29udmVy c2lvbicsICdwZ19sYW5ndWFnZScsICdwZ19wcm9jJywgJ3BnX3Jld3JpdGUn LCAncGdfbmFtZXNwYWNlJywKLSAgICdwZ190cmlnZ2VyJywgJ3BnX3R5cGUn LCAncGdfYXR0cmRlZicsICdwZ19ldmVudF90cmlnZ2VyJywgJ3BnX2ZvcmVp Z25fc2VydmVyJywgJ3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVyJykpCi1PUkRF UiBCWSByZWZjbGFzc2lkLCBjbC5yZWxraW5kCi17JSBlbmRpZiAlfQotCi17 JSBpZiBmZXRjaF9yb2xlX2RlcGVuZGVuY2llcyAlfQotU0VMRUNUIHJvbG5h bWUgQVMgcmVmbmFtZSwgcmVmY2xhc3NpZCwgZGVwdHlwZQotRlJPTSBwZ19z aGRlcGVuZCBkZXAKLUxFRlQgSk9JTiBwZ19yb2xlcyByIE9OIHJlZmNsYXNz aWQ9MTI2MCBBTkQgcmVmb2JqaWQ9ci5vaWQKLXt7d2hlcmVfY2xhdXNlfX0g T1JERVIgQlkgMQoteyUgZW5kaWYgJX0KLQoteyUgaWYgZmV0Y2hfZGVwZW5k ZW50cyAlfQorU0VUIExPQ0FMIGpvaW5fY29sbGFwc2VfbGltaXQ9ODsKIFNF TEVDVCBESVNUSU5DVCBkZXAuZGVwdHlwZSwgZGVwLmNsYXNzaWQsIGNsLnJl bGtpbmQsIGFkLmFkYmluLCBhZC5hZHNyYywKICAgICBDQVNFIFdIRU4gY2wu cmVsa2luZCBJUyBOT1QgTlVMTCBUSEVOIGNsLnJlbGtpbmQgfHwgQ09BTEVT Q0UoZGVwLm9ianN1YmlkOjp0ZXh0LCAnJykKICAgICAgICAgV0hFTiB0Zy5v aWQgSVMgTk9UIE5VTEwgVEhFTiAnVCc6OnRleHQKQEAgLTY0LDEzICs5LDEx IEBAIFNFTEVDVCBESVNUSU5DVCBkZXAuZGVwdHlwZSwgZGVwLmNsYXNzaWQs IGNsLnJlbGtpbmQsIGFkLmFkYmluLCBhZC5hZHNyYywKICAgICAgICAgV0hF TiBydy5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnUic6OnRleHQKICAgICAgICAg V0hFTiBjby5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnQyc6OnRleHQgfHwgY29u dHlwZQogICAgICAgICBXSEVOIGFkLm9pZCBJUyBOT1QgTlVMTCBUSEVOICdB Jzo6dGV4dAotICAgICAgICBXSEVOIGZzLm9pZCBJUyBOT1QgTlVMTCBUSEVO ICdGJzo6dGV4dAotICAgICAgICBXSEVOIGZkdy5vaWQgSVMgTk9UIE5VTEwg VEhFTiAnZic6OnRleHQKICAgICAgICAgRUxTRSAnJwogICAgIEVORCBBUyB0 eXBlLAogICAgIENPQUxFU0NFKGNvYy5yZWxuYW1lLCBjbHJ3LnJlbG5hbWUp IEFTIG93bmVydGFibGUsCiAgICAgQ0FTRSBXSEVOIGNsLnJlbG5hbWUgSVMg Tk9UIE5VTEwgQU5EIGF0dC5hdHRuYW1lIElTIE5PVCBOVUxMIFRIRU4gY2wu cmVsbmFtZSB8fCAnLicgfHwgYXR0LmF0dG5hbWUKLSAgICBFTFNFIENPQUxF U0NFKGNsLnJlbG5hbWUsIGNvLmNvbm5hbWUsIHByLnByb25hbWUsIHRnLnRn bmFtZSwgdHkudHlwbmFtZSwgbGEubGFubmFtZSwgcncucnVsZW5hbWUsIG5z Lm5zcG5hbWUsIGZzLnNydm5hbWUsIGZkdy5mZHduYW1lKQorICAgIEVMU0Ug Q09BTEVTQ0UoY2wucmVsbmFtZSwgY28uY29ubmFtZSwgcHIucHJvbmFtZSwg dGcudGduYW1lLCB0eS50eXBuYW1lLCBsYS5sYW5uYW1lLCBydy5ydWxlbmFt ZSwgbnMubnNwbmFtZSkKICAgICBFTkQgQVMgcmVmbmFtZSwKICAgICBDT0FM RVNDRShuc2MubnNwbmFtZSwgbnNvLm5zcG5hbWUsIG5zcC5uc3BuYW1lLCBu c3QubnNwbmFtZSwgbnNydy5uc3BuYW1lKSBBUyBuc3BuYW1lCiBGUk9NIHBn X2RlcGVuZCBkZXAKQEAgLTkxLDExICszNCw4IEBAIExFRlQgSk9JTiBwZ19u YW1lc3BhY2UgbnNydyBPTiBjbHJ3LnJlbG5hbWVzcGFjZT1uc3J3Lm9pZAog TEVGVCBKT0lOIHBnX2xhbmd1YWdlIGxhIE9OIGRlcC5vYmppZD1sYS5vaWQK IExFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnMgT04gZGVwLm9iamlkPW5zLm9p ZAogTEVGVCBKT0lOIHBnX2F0dHJkZWYgYWQgT04gYWQub2lkPWRlcC5vYmpp ZAotTEVGVCBKT0lOIHBnX2ZvcmVpZ25fc2VydmVyIGZzIE9OIGZzLm9pZD1k ZXAub2JqaWQKLUxFRlQgSk9JTiBwZ19mb3JlaWduX2RhdGFfd3JhcHBlciBm ZHcgT04gZmR3Lm9pZD1kZXAub2JqaWQKIHt7d2hlcmVfY2xhdXNlfX0gQU5E CiBjbGFzc2lkIElOICggU0VMRUNUIG9pZCBGUk9NIHBnX2NsYXNzIFdIRVJF IHJlbG5hbWUgSU4KICAgICgncGdfY2xhc3MnLCAncGdfY29uc3RyYWludCcs ICdwZ19jb252ZXJzaW9uJywgJ3BnX2xhbmd1YWdlJywgJ3BnX3Byb2MnLCAn cGdfcmV3cml0ZScsICdwZ19uYW1lc3BhY2UnLAogICAgJ3BnX3RyaWdnZXIn LCAncGdfdHlwZScsICdwZ19hdHRyZGVmJywgJ3BnX2V2ZW50X3RyaWdnZXIn LCAncGdfZm9yZWlnbl9zZXJ2ZXInLCAncGdfZm9yZWlnbl9kYXRhX3dyYXBw ZXInKSkKLU9SREVSIEJZIGNsYXNzaWQsIGNsLnJlbGtpbmQKLXslIGVuZGlm ICV9CitPUkRFUiBCWSBjbGFzc2lkLCBjbC5yZWxraW5kOwpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv dGVtcGxhdGVzL2RlcGVuZHMvc3FsL2RlZmF1bHQvcm9sZV9kZXBlbmRlbmNp ZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGVtcGxhdGVzL2RlcGVuZHMvc3FsL2RlZmF1bHQvcm9sZV9kZXBl bmRlbmNpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwLi4yNWZjM2Y4NQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RlbXBsYXRlcy9kZXBl bmRzL3NxbC9kZWZhdWx0L3JvbGVfZGVwZW5kZW5jaWVzLnNxbApAQCAtMCww ICsxLDQgQEAKK1NFTEVDVCByb2xuYW1lIEFTIHJlZm5hbWUsIHJlZmNsYXNz aWQsIGRlcHR5cGUKK0ZST00gcGdfc2hkZXBlbmQgZGVwCitMRUZUIEpPSU4g cGdfcm9sZXMgciBPTiByZWZjbGFzc2lkPTEyNjAgQU5EIHJlZm9iamlkPXIu b2lkCit7e3doZXJlX2NsYXVzZX19IE9SREVSIEJZIDEKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rl c3RzL3Rlc3RfZGVwZW5kZW5jaWVzX3NxbC5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfZGVwZW5k ZW5jaWVzX3NxbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMC4uMmEwMjM1YTIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2Rl cGVuZGVuY2llc19zcWwucHkKQEAgLTAsMCArMSw1MSBAQAorIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdy ZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE3LCBU aGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUg aXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIwor IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IG9zCisK K2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscy5zcWxfdGVtcGxh dGVfdGVzdF9iYXNlIGltcG9ydCBTUUxUZW1wbGF0ZVRlc3RCYXNlCitmcm9t IHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMudGVtcGxhdGVfaGVscGVy IGltcG9ydCBmaWxlX2FzX3RlbXBsYXRlCisKKworY2xhc3MgVGVzdERlcGVu ZGVuY2llc1NxbChTUUxUZW1wbGF0ZVRlc3RCYXNlKToKKyAgICBzY2VuYXJp b3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHNj aGVtYSBub2RlLgorICAgICAgICAoJ1Rlc3QgZGVwZW5kZW5jaWVzIFNRTCBm aWxlJywgZGljdCgpKQorICAgIF0KKworICAgIGRlZiBfX2luaXRfXyhzZWxm KToKKyAgICAgICAgc3VwZXIoVGVzdERlcGVuZGVuY2llc1NxbCwgc2VsZiku X19pbml0X18oKQorICAgICAgICBzZWxmLnRhYmxlX2lkID0gLTEKKworICAg IGRlZiB0ZXN0X3NldHVwKHNlbGYsIGNvbm5lY3Rpb24sIGN1cnNvcik6Cisg ICAgICAgIGN1cnNvci5leGVjdXRlKCJTRUxFQ1QgcGdfY2xhc3Mub2lkIEFT IHRhYmxlX2lkICIKKyAgICAgICAgICAgICAgICAgICAgICAgIkZST00gcGdf Y2xhc3MgIgorICAgICAgICAgICAgICAgICAgICAgICAiV0hFUkUgcGdfY2xh c3MucmVsbmFtZT0ndGVzdF90YWJsZSciKQorICAgICAgICBzZWxmLnRhYmxl X2lkID0gY3Vyc29yLmZldGNob25lKClbMF0KKworICAgIGRlZiBnZW5lcmF0 ZV9zcWwoc2VsZiwgdmVyc2lvbik6CisgICAgICAgIHRlbXBsYXRlX2ZpbGUg PSBzZWxmLmdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sICJkZXBlbmRlbmNp ZXMuc3FsIikKKyAgICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRl KHRlbXBsYXRlX2ZpbGUpCisgICAgICAgIHNxbCA9IHRlbXBsYXRlLnJlbmRl cih3aGVyZV9jbGF1c2U9IldIRVJFIGRlcC5vYmppZD0lczo6b2lkIiAlIHNl bGYudGFibGVfaWQpCisKKyAgICAgICAgcmV0dXJuIHNxbAorCisgICAgZGVm IGFzc2VydGlvbnMoc2VsZiwgZmV0Y2hfcmVzdWx0LCBkZXNjcmlwdGlvbnMp OgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihmZXRjaF9yZXN1 bHQpKQorCisgICAgICAgIGZpcnN0X3JvdyA9IHt9CisgICAgICAgIGZvciBp bmRleCwgZGVzY3JpcHRpb24gaW4gZW51bWVyYXRlKGRlc2NyaXB0aW9ucyk6 CisgICAgICAgICAgICBmaXJzdF9yb3dbZGVzY3JpcHRpb24ubmFtZV0gPSBm ZXRjaF9yZXN1bHRbMF1baW5kZXhdCisKKyAgICAgICAgc2VsZi5hc3NlcnRF cXVhbCgnbicsIGZpcnN0X3Jvd1siZGVwdHlwZSJdKQorICAgICAgICBzZWxm LmFzc2VydEVxdWFsKCdwdWJsaWMnLCBmaXJzdF9yb3dbInJlZm5hbWUiXSkK KworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgZ2V0X3RlbXBsYXRlX2Zp bGUodmVyc2lvbiwgZmlsZW5hbWUpOgorICAgICAgICByZXR1cm4gb3MucGF0 aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICJ0ZW1w bGF0ZXMiLCAiZGVwZW5kcyIsICJzcWwiLCB2ZXJzaW9uLCBmaWxlbmFtZSkK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfZGVwZW5kZW50c19zcWwucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90 ZXN0X2RlcGVuZGVudHNfc3FsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwLi5iODJkZTZkOQotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3Rz L3Rlc3RfZGVwZW5kZW50c19zcWwucHkKQEAgLTAsMCArMSw1MSBAQAorIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0g UG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAy MDE3LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29m dHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5j ZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0 IG9zCisKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscy5zcWxf dGVtcGxhdGVfdGVzdF9iYXNlIGltcG9ydCBTUUxUZW1wbGF0ZVRlc3RCYXNl Citmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMudGVtcGxhdGVf aGVscGVyIGltcG9ydCBmaWxlX2FzX3RlbXBsYXRlCisKKworY2xhc3MgVGVz dERlcGVuZGVudHNTcWwoU1FMVGVtcGxhdGVUZXN0QmFzZSk6CisgICAgc2Nl bmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZv ciBzY2hlbWEgbm9kZS4KKyAgICAgICAgKCdUZXN0IGRlcGVuZGVuY2llcyBT UUwgZmlsZScsIGRpY3QoKSkKKyAgICBdCisKKyAgICBkZWYgX19pbml0X18o c2VsZik6CisgICAgICAgIHN1cGVyKFRlc3REZXBlbmRlbnRzU3FsLCBzZWxm KS5fX2luaXRfXygpCisgICAgICAgIHNlbGYudGFibGVfaWQgPSAtMQorCisg ICAgZGVmIHRlc3Rfc2V0dXAoc2VsZiwgY29ubmVjdGlvbiwgY3Vyc29yKToK KyAgICAgICAgY3Vyc29yLmV4ZWN1dGUoIlNFTEVDVCBwZ19jbGFzcy5vaWQg QVMgdGFibGVfaWQgIgorICAgICAgICAgICAgICAgICAgICAgICAiRlJPTSBw Z19jbGFzcyAiCisgICAgICAgICAgICAgICAgICAgICAgICJXSEVSRSBwZ19j bGFzcy5yZWxuYW1lPSd0ZXN0X3RhYmxlJyIpCisgICAgICAgIHNlbGYudGFi bGVfaWQgPSBjdXJzb3IuZmV0Y2hvbmUoKVswXQorCisgICAgZGVmIGdlbmVy YXRlX3NxbChzZWxmLCB2ZXJzaW9uKToKKyAgICAgICAgdGVtcGxhdGVfZmls ZSA9IHNlbGYuZ2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lvbiwgImRlcGVuZGVu dHMuc3FsIikKKyAgICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRl KHRlbXBsYXRlX2ZpbGUpCisgICAgICAgIHNxbCA9IHRlbXBsYXRlLnJlbmRl cih3aGVyZV9jbGF1c2U9IldIRVJFIGRlcC5vYmppZD0lczo6b2lkIiAlIHNl bGYudGFibGVfaWQpCisKKyAgICAgICAgcmV0dXJuIHNxbAorCisgICAgZGVm IGFzc2VydGlvbnMoc2VsZiwgZmV0Y2hfcmVzdWx0LCBkZXNjcmlwdGlvbnMp OgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihmZXRjaF9yZXN1 bHQpKQorCisgICAgICAgIGZpcnN0X3JvdyA9IHt9CisgICAgICAgIGZvciBp bmRleCwgZGVzY3JpcHRpb24gaW4gZW51bWVyYXRlKGRlc2NyaXB0aW9ucyk6 CisgICAgICAgICAgICBmaXJzdF9yb3dbZGVzY3JpcHRpb24ubmFtZV0gPSBm ZXRjaF9yZXN1bHRbMF1baW5kZXhdCisKKyAgICAgICAgc2VsZi5hc3NlcnRF cXVhbCgnbicsIGZpcnN0X3Jvd1siZGVwdHlwZSJdKQorICAgICAgICBzZWxm LmFzc2VydEVxdWFsKCd0ZXN0X3RhYmxlJywgZmlyc3Rfcm93WyJyZWZuYW1l Il0pCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGdldF90ZW1wbGF0 ZV9maWxlKHZlcnNpb24sIGZpbGVuYW1lKToKKyAgICAgICAgcmV0dXJuIG9z LnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAi dGVtcGxhdGVzIiwgImRlcGVuZHMiLCAic3FsIiwgdmVyc2lvbiwgZmlsZW5h bWUpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3JvbGVfZGVwZW5kZW5jaWVzX3Nx bC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3Rlc3RzL3Rlc3Rfcm9sZV9kZXBlbmRlbmNpZXNfc3FsLnB5Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi42NWFkZDc5OAotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfcm9sZV9kZXBlbmRlbmNpZXNfc3Fs LnB5CkBAIC0wLDAgKzEsNTEgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMK KyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNywgVGhlIHBnQWRtaW4gRGV2 ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVu ZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBvcworCitmcm9tIHJlZ3Jlc3Np b24ucHl0aG9uX3Rlc3RfdXRpbHMuc3FsX3RlbXBsYXRlX3Rlc3RfYmFzZSBp bXBvcnQgU1FMVGVtcGxhdGVUZXN0QmFzZQorZnJvbSByZWdyZXNzaW9uLnB5 dGhvbl90ZXN0X3V0aWxzLnRlbXBsYXRlX2hlbHBlciBpbXBvcnQgZmlsZV9h c190ZW1wbGF0ZQorCisKK2NsYXNzIFRlc3RSb2xlRGVwZW5kZW5jaWVzU3Fs KFNRTFRlbXBsYXRlVGVzdEJhc2UpOgorICAgIHNjZW5hcmlvcyA9IFsKKyAg ICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3Igc2NoZW1hIG5vZGUu CisgICAgICAgICgnVGVzdCBSb2xlIERlcGVuZGVuY2llcyBTUUwgZmlsZScs IGRpY3QoKSkKKyAgICBdCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6Cisg ICAgICAgIHN1cGVyKFRlc3RSb2xlRGVwZW5kZW5jaWVzU3FsLCBzZWxmKS5f X2luaXRfXygpCisgICAgICAgIHNlbGYudGFibGVfaWQgPSAtMQorCisgICAg ZGVmIHRlc3Rfc2V0dXAoc2VsZiwgY29ubmVjdGlvbiwgY3Vyc29yKToKKyAg ICAgICAgY3Vyc29yLmV4ZWN1dGUoIlNFTEVDVCBwZ19jbGFzcy5vaWQgQVMg dGFibGVfaWQgIgorICAgICAgICAgICAgICAgICAgICAgICAiRlJPTSBwZ19j bGFzcyAiCisgICAgICAgICAgICAgICAgICAgICAgICJXSEVSRSBwZ19jbGFz cy5yZWxuYW1lPSd0ZXN0X3RhYmxlJyIpCisgICAgICAgIHNlbGYudGFibGVf aWQgPSBjdXJzb3IuZmV0Y2hvbmUoKVswXQorICAgICAgICBzZWxmLnZlcnNp b25zX3RvX3Rlc3QgPSBbJ2RlZmF1bHQnXQorCisgICAgZGVmIGdlbmVyYXRl X3NxbChzZWxmLCB2ZXJzaW9uKToKKyAgICAgICAgdGVtcGxhdGVfZmlsZSA9 IHNlbGYuZ2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lvbiwgInJvbGVfZGVwZW5k ZW5jaWVzLnNxbCIpCisgICAgICAgIHRlbXBsYXRlID0gZmlsZV9hc190ZW1w bGF0ZSh0ZW1wbGF0ZV9maWxlKQorICAgICAgICBzcWwgPSB0ZW1wbGF0ZS5y ZW5kZXIod2hlcmVfY2xhdXNlPSJXSEVSRSBkZXAub2JqaWQ9JXM6Om9pZCIg JSBzZWxmLnRhYmxlX2lkKQorCisgICAgICAgIHJldHVybiBzcWwKKworICAg IGRlZiBhc3NlcnRpb25zKHNlbGYsIGZldGNoX3Jlc3VsdCwgZGVzY3JpcHRp b25zKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4oZmV0Y2hf cmVzdWx0KSkKKworICAgICAgICBmaXJzdF9yb3cgPSB7fQorICAgICAgICBm b3IgaW5kZXgsIGRlc2NyaXB0aW9uIGluIGVudW1lcmF0ZShkZXNjcmlwdGlv bnMpOgorICAgICAgICAgICAgZmlyc3Rfcm93W2Rlc2NyaXB0aW9uLm5hbWVd ID0gZmV0Y2hfcmVzdWx0WzBdW2luZGV4XQorCisgICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWwoJ28nLCBmaXJzdF9yb3dbImRlcHR5cGUiXSkKKworICAgIEBz dGF0aWNtZXRob2QKKyAgICBkZWYgZ2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lv biwgZmlsZW5hbWUpOgorICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKG9z LnBhdGguZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICJ0ZW1wbGF0ZXMiLCAi ZGVwZW5kcyIsICJzcWwiLCB2ZXJzaW9uLCBmaWxlbmFtZSkKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdXRpbHMucHkgYi93ZWIvcGdhZG1p bi9icm93c2VyL3V0aWxzLnB5CmluZGV4IGQyODk5ODc1Li43MDhiZmRmYiAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci91dGlscy5weQorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3V0aWxzLnB5CkBAIC0zNTMsMTUgKzM1 MywxNSBAQCBjbGFzcyBQR0NoaWxkTm9kZVZpZXcoTm9kZVZpZXcpOgogICAg ICAgICBlbHNlOgogICAgICAgICAgICAgd2hlcmVfY2xhdXNlID0gd2hlcmUK IAotICAgICAgICBxdWVyeSA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c3FsX3BhdGgsICdkZXBlbmRlbnRzLnNxbCddKSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZmV0Y2hfZGVwZW5kZW5jaWVzPVRydWUsIHdo ZXJlX2NsYXVzZT13aGVyZV9jbGF1c2UpCisgICAgICAgIHF1ZXJ5ID0gcmVu ZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzcWxfcGF0aCwgJ2RlcGVuZGVuY2ll cy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdo ZXJlX2NsYXVzZT13aGVyZV9jbGF1c2UpCiAgICAgICAgICMgZmV0Y2ggdGhl IGRlcGVuZGVuY3kgZm9yIHRoZSBzZWxlY3RlZCBvYmplY3QKICAgICAgICAg ZGVwZW5kZW5jaWVzID0gc2VsZi5fX2ZldGNoX2RlcGVuZGVuY3koY29ubiwg cXVlcnkpCiAKICAgICAgICAgIyBmZXRjaCByb2xlIGRlcGVuZGVuY2llcwog ICAgICAgICBpZiB3aGVyZV9jbGF1c2UuZmluZCgnc3ViaWQnKSA8IDA6Ci0g ICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3Nx bF9wYXRoLCAnZGVwZW5kZW50cy5zcWwnXSksCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZmV0Y2hfcm9sZV9kZXBlbmRlbmNpZXM9VHJ1 ZSwgd2hlcmVfY2xhdXNlPXdoZXJlX2NsYXVzZSkKKyAgICAgICAgICAgIHNx bCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc3FsX3BhdGgsICdyb2xl X2RlcGVuZGVuY2llcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgd2hlcmVfY2xhdXNlPXdoZXJlX2NsYXVzZSkKIAogICAg ICAgICAgICAgc3RhdHVzLCByZXN1bHQgPSBjb25uLmV4ZWN1dGVfZGljdChz cWwpCiAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgpAQCAtNDAyLDcgKzQw Miw3IEBAIGNsYXNzIFBHQ2hpbGROb2RlVmlldyhOb2RlVmlldyk6CiAgICAg ICAgICAgICB3aGVyZV9jbGF1c2UgPSB3aGVyZQogCiAgICAgICAgIHF1ZXJ5 ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzcWxfcGF0aCwgJ2RlcGVu ZGVudHMuc3FsJ10pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmZXRjaF9kZXBlbmRlbnRzPVRydWUsIHdoZXJlX2NsYXVzZT13aGVyZV9j bGF1c2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoZXJl X2NsYXVzZT13aGVyZV9jbGF1c2UpCiAgICAgICAgICMgZmV0Y2ggdGhlIGRl cGVuZGVuY3kgZm9yIHRoZSBzZWxlY3RlZCBvYmplY3QKICAgICAgICAgZGVw ZW5kZW50cyA9IHNlbGYuX19mZXRjaF9kZXBlbmRlbmN5KGNvbm4sIHF1ZXJ5 KQogCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL2Nv cHlfc2VsZWN0ZWRfcXVlcnlfcmVzdWx0c19mZWF0dXJlX3Rlc3QucHkgYi93 ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL2NvcHlfc2VsZWN0ZWRfcXVlcnlf cmVzdWx0c19mZWF0dXJlX3Rlc3QucHkKaW5kZXggMjIzNTc5ZWUuLjMzOGU1 ZjcxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL2Nv cHlfc2VsZWN0ZWRfcXVlcnlfcmVzdWx0c19mZWF0dXJlX3Rlc3QucHkKKysr IGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9jb3B5X3NlbGVjdGVkX3F1 ZXJ5X3Jlc3VsdHNfZmVhdHVyZV90ZXN0LnB5CkBAIC0xLDMgKzEsMTIgQEAK KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4g NCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEz IC0gMjAxNywgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlz IHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExp Y2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKIGlt cG9ydCBweXBlcmNsaXAKIGltcG9ydCB0aW1lCiAKQEAgLTM3LDcgKzQ2LDcg QEAgY2xhc3MgQ29weVNlbGVjdGVkUXVlcnlSZXN1bHRzRmVhdHVyZVRlc3Qo QmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgc2VsZi5wYWdlLmZpbmRfYnlf cGFydGlhbF9saW5rX3RleHQoIlF1ZXJ5IFRvb2wiKS5jbGljaygpCiAgICAg ICAgIHNlbGYucGFnZS5jbGlja190YWIoJ1F1ZXJ5LTEnKQogICAgICAgICB0 aW1lLnNsZWVwKDUpCi0gICAgICAgIEFjdGlvbkNoYWlucyhzZWxmLnBhZ2Uu ZHJpdmVyKS5zZW5kX2tleXMoIlNFTEVDVCAqIEZST00gdGVzdF90YWJsZSIp LnBlcmZvcm0oKQorICAgICAgICBBY3Rpb25DaGFpbnMoc2VsZi5wYWdlLmRy aXZlcikuc2VuZF9rZXlzKCJTRUxFQ1QgKiBGUk9NIHRlc3RfdGFibGUgT1JE RVIgQlkgc29tZV9jb2x1bW4iKS5wZXJmb3JtKCkKICAgICAgICAgc2VsZi5w YWdlLmRyaXZlci5zd2l0Y2hfdG9fZnJhbWUoc2VsZi5wYWdlLmRyaXZlci5m aW5kX2VsZW1lbnRfYnlfdGFnX25hbWUoImlmcmFtZSIpKQogICAgICAgICBz ZWxmLnBhZ2UuZmluZF9ieV9pZCgiYnRuLWZsYXNoIikuY2xpY2soKQogCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVj a3NfcGdhZG1pbl9kZWJ1Z2dlcl90ZXN0LnB5IGIvd2ViL3BnYWRtaW4vZmVh dHVyZV90ZXN0cy94c3NfY2hlY2tzX3BnYWRtaW5fZGVidWdnZXJfdGVzdC5w eQppbmRleCA4YjAxOGZlZC4uMTdiYzdiZjUgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL2ZlYXR1cmVfdGVzdHMveHNzX2NoZWNrc19wZ2FkbWluX2RlYnVn Z2VyX3Rlc3QucHkKKysrIGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy94 c3NfY2hlY2tzX3BnYWRtaW5fZGVidWdnZXJfdGVzdC5weQpAQCAtMTYsMTAg KzE2LDE0IEBAIGNsYXNzIENoZWNrRGVidWdnZXJGb3JYc3NGZWF0dXJlVGVz dChCYXNlRmVhdHVyZVRlc3QpOgogICAgICIiIlRlc3RzIHRvIGNoZWNrIGlm IERlYnVnZ2VyIGlzIHZ1bG5lcmFibGUgdG8gWFNTLiIiIgogCiAgICAgc2Nl bmFyaW9zID0gWwotICAgICAgICAoIlRlc3QgdGFibGUgRERMIGdlbmVyYXRp b24iLCBkaWN0KCkpCisgICAgICAgICgiVGVzdHMgdG8gY2hlY2sgaWYgRGVi dWdnZXIgaXMgdnVsbmVyYWJsZSB0byBYU1MiLCBkaWN0KCkpCiAgICAgXQog CiAgICAgZGVmIGJlZm9yZShzZWxmKToKKyAgICAgICAgd2l0aCB0ZXN0X3V0 aWxzLkRhdGFiYXNlKHNlbGYuc2VydmVyKSBhcyAoY29ubmVjdGlvbiwgXyk6 CisgICAgICAgICAgICBpZiBjb25uZWN0aW9uLnNlcnZlcl92ZXJzaW9uIDwg OTAxMDA6CisgICAgICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgiRnVuY3Rp b25zIHRyZWUgbm9kZSBpcyBub3QgcHJlc2VudCBpbiBwZ0FkbWluIGJlbG93 IFBHIHY5LjEiKQorCiAgICAgICAgICMgU29tZSB0ZXN0IGZ1bmN0aW9uIGlz IG5lZWRlZCBmb3IgZGVidWdnZXIKICAgICAgICAgdGVzdF91dGlscy5jcmVh dGVfZGVidWdfZnVuY3Rpb24oc2VsZi5zZXJ2ZXIsICJwb3N0Z3JlcyIsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X2Z1bmN0 aW9uIikKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1w bGF0ZXMvdHJpZ2dlci9zcWwvdGVzdHMvdGVzdF90cmlnZ2VyX25vZGVzLnB5 IGIvd2ViL3JlZ3Jlc3Npb24vcHl0aG9uX3Rlc3RfdXRpbHMvc3FsX3RlbXBs YXRlX3Rlc3RfYmFzZS5weQpzaW1pbGFyaXR5IGluZGV4IDU5JQpyZW5hbWUg ZnJvbSB3ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RyaWdnZXIv c3FsL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9ub2Rlcy5weQpyZW5hbWUgdG8gd2Vi L3JlZ3Jlc3Npb24vcHl0aG9uX3Rlc3RfdXRpbHMvc3FsX3RlbXBsYXRlX3Rl c3RfYmFzZS5weQppbmRleCBiMjNiZjYwYS4uODAwOWUzMWUgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdHJpZ2dlci9z cWwvdGVzdHMvdGVzdF90cmlnZ2VyX25vZGVzLnB5CisrKyBiL3dlYi9yZWdy ZXNzaW9uL3B5dGhvbl90ZXN0X3V0aWxzL3NxbF90ZW1wbGF0ZV90ZXN0X2Jh c2UucHkKQEAgLTcsNDUgKzcsNTMgQEAKICMKICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCiAKLWltcG9ydCBvcwotaW1wb3J0IHN5cwotCitmcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Citmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRl c3RfdXRpbHMKIGZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IERy aXZlclJlZ2lzdHJ5Ci1mcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRp bHMudGVtcGxhdGVfaGVscGVyIGltcG9ydCBmaWxlX2FzX3RlbXBsYXRlCiAK IERyaXZlclJlZ2lzdHJ5LmxvYWRfZHJpdmVycygpCi1mcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJl Z3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMK IAotaWYgc3lzLnZlcnNpb25faW5mb1swXSA+PSAzOgotICAgIGxvbmcgPSBp bnQKIAorY2xhc3MgU1FMVGVtcGxhdGVUZXN0QmFzZShCYXNlVGVzdEdlbmVy YXRvcik6CisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAoInBhcmVudCB0 ZXN0IGNsYXNzIiwgZGljdChpZ25vcmVfdGVzdD1UcnVlKSkKKyAgICBdCisK KyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHN1cGVyKFNRTFRl bXBsYXRlVGVzdEJhc2UsIHNlbGYpLl9faW5pdF9fKCkKKyAgICAgICAgc2Vs Zi5kYXRhYmFzZV9uYW1lID0gLTEKKyAgICAgICAgc2VsZi52ZXJzaW9uc190 b190ZXN0ID0gLTEKKworICAgIGRlZiB0ZXN0X3NldHVwKHNlbGYsIGNvbm5l Y3Rpb24sIGN1cnNvcik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBnZW5l cmF0ZV9zcWwoc2VsZiwgdmVyc2lvbik6CisgICAgICAgIHBhc3MKKworICAg IGRlZiBhc3NlcnRpb25zKHNlbGYsIGZldGNoX3Jlc3VsdCwgZGVzY3JpcHRp b25zKToKKyAgICAgICAgcGFzcwogCi1jbGFzcyBUZXN0VHJpZ2dlck5vZGVz KEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICBkZWYgcnVuVGVzdChzZWxmKToK LSAgICAgICAgIiIiIFdoZW4gdGhlcmUgYXJlIG5vIHRyaWdnZXJzLCBpdCBy ZXR1cm5zIGFuIGVtcHR5IHJlc3VsdCAiIiIKKyAgICAgICAgaWYgaGFzYXR0 cihzZWxmLCAiaWdub3JlX3Rlc3QiKToKKyAgICAgICAgICAgIHJldHVybgor CiAgICAgICAgIHdpdGggdGVzdF91dGlscy5EYXRhYmFzZShzZWxmLnNlcnZl cikgYXMgKGNvbm5lY3Rpb24sIGRhdGFiYXNlX25hbWUpOgogICAgICAgICAg ICAgdGVzdF91dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsIGRhdGFi YXNlX25hbWUsICJ0ZXN0X3RhYmxlIikKLQotICAgICAgICAgICAgY3Vyc29y ID0gY29ubmVjdGlvbi5jdXJzb3IoKQotICAgICAgICAgICAgY3Vyc29yLmV4 ZWN1dGUoIlNFTEVDVCBwZ19jbGFzcy5vaWQgQVMgdGFibGVfaWQgIgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgIkZST00gcGdfY2xhc3MgIgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgIldIRVJFIHBnX2NsYXNzLnJlbG5h bWU9J3Rlc3RfdGFibGUnIikKLSAgICAgICAgICAgIHRhYmxlX2lkID0gY3Vy c29yLmZldGNob25lKClbMF0KKyAgICAgICAgICAgIHNlbGYuZGF0YWJhc2Vf bmFtZSA9IGRhdGFiYXNlX25hbWUKIAogICAgICAgICAgICAgaWYgY29ubmVj dGlvbi5zZXJ2ZXJfdmVyc2lvbiA8IDkwMTAwOgogICAgICAgICAgICAgICAg IHNlbGYudmVyc2lvbnNfdG9fdGVzdCA9IFsnZGVmYXVsdCddCiAgICAgICAg ICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHNlbGYudmVyc2lvbnNfdG9f dGVzdCA9IFsnOS4xX3BsdXMnXQogCi0gICAgICAgICAgICBmb3IgdmVyc2lv biBpbiBzZWxmLnZlcnNpb25zX3RvX3Rlc3Q6Ci0gICAgICAgICAgICAgICAg dGVtcGxhdGVfZmlsZSA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUo X19maWxlX18pLCAiLi4iLCB2ZXJzaW9uLCAibm9kZXMuc3FsIikKLQotICAg ICAgICAgICAgICAgIHRlbXBsYXRlID0gZmlsZV9hc190ZW1wbGF0ZSh0ZW1w bGF0ZV9maWxlKQorICAgICAgICAgICAgY3Vyc29yID0gY29ubmVjdGlvbi5j dXJzb3IoKQorICAgICAgICAgICAgc2VsZi50ZXN0X3NldHVwKGNvbm5lY3Rp b24sIGN1cnNvcikKIAotICAgICAgICAgICAgICAgIHNxbCA9IHRlbXBsYXRl LnJlbmRlcih0aWQ9dGFibGVfaWQpCisgICAgICAgICAgICBmb3IgdmVyc2lv biBpbiBzZWxmLnZlcnNpb25zX3RvX3Rlc3Q6CisgICAgICAgICAgICAgICAg c3FsID0gc2VsZi5nZW5lcmF0ZV9zcWwodmVyc2lvbikKIAogICAgICAgICAg ICAgICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKICAgICAgICAg ICAgICAgICBjdXJzb3IuZXhlY3V0ZShzcWwpCiAgICAgICAgICAgICAgICAg ZmV0Y2hfcmVzdWx0ID0gY3Vyc29yLmZldGNoYWxsKCkKLSAgICAgICAgICAg ICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihmZXRjaF9yZXN1bHQpKQor CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRpb25zKGZldGNoX3Jlc3Vs dCwgY3Vyc29yLmRlc2NyaXB0aW9uKQotLSAKMi4xMi4wCgo= --94eb2c06f5c6b505b5054f1914ba 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 --94eb2c06f5c6b505b5054f1914ba--