Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vqJNX-008YcR-2M for pgsql-www@arkaria.postgresql.org; Wed, 11 Feb 2026 23:12:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vqJNV-006MeK-2O for pgsql-www@arkaria.postgresql.org; Wed, 11 Feb 2026 23:12:14 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vqJNV-006MeC-0S for pgsql-www@lists.postgresql.org; Wed, 11 Feb 2026 23:12:14 +0000 Received: from mail-oi1-x229.google.com ([2607:f8b0:4864:20::229]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vqJNT-00000000CB0-0YKM for pgsql-www@lists.postgresql.org; Wed, 11 Feb 2026 23:12:13 +0000 Received: by mail-oi1-x229.google.com with SMTP id 5614622812f47-45effa36208so1707785b6e.1 for ; Wed, 11 Feb 2026 15:12:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1770851531; cv=none; d=google.com; s=arc-20240605; b=Y7/X3jHNHTKPyQwo3hZ8JnhjR1y1zyNGTPJCCE9B3oVZNZWsO8O05QwKxKKzDX6X68 vbTD3jyGftxskBAxrSz017lJHxesyYfCd6apkP4oH3QamsKz38Ju/pxy4/uCivk3NP8N B87fLZEgmWbS8PK06bU/YH5ObgVPZL8lfj0N7Xp5vsB2Atsf5Un8yO1RCC0JfNSO6PRw CWG0f/VKMExTykOt63l7bDEZOdQBEKusBraijrvKTMH5M+mPXueVfl22ULWsdTWpfF6x RB8xzZlaHaykXpfg58Hwnl9ol2ZVu8fQ0+uRxw2e4l098OimMiKNcsYdYgGUqW+BWemd llRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=ounQw79qn6bq/2f2znk1fLg+Dd42TCxK+mCIm+eWxRA=; fh=7rvG7MJu+fwcEjIBUW5+EFyIzsNPmpKlNuiPBv50FbA=; b=X7G9r7j7JHMPTUobI3nvIG2cDQVfKU5y2Whfh49REeHJsxJ36aOuIuEmScbusZeYy9 Sq8jfJ5iEo7rq/7AG9JachFx+IFAtmDfqaASBTSirrw3tPaVjU8oyOaXnXl4vTqddEp/ lpO/QQ7yuNOwZUUPu8Yhqi5Vg+DEdeg+Ab/Tf166wUKtxWBKhVXMJRO98RifH3I5WTJ5 itMwK4157izFE307Qj3Wj/LXrCxQ08yrKVbeCXCRiEwMOsZekt4EFJetT6ZzqQHvOqcJ DZRzLzzK4zrZdvELpmKmJmyzUezmjHzRNweaQxBK+1axS8lkanEpPH6BSNx8exH4ZsYD qE3Q==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770851531; x=1771456331; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=ounQw79qn6bq/2f2znk1fLg+Dd42TCxK+mCIm+eWxRA=; b=fNcoBoD8OqBb2vixkNNh4KO219rdn4CYhlqOY91NG2CD6uRzBAIxM/G7ownrAnwaPo yNDB+8jsJhwfOPPUOgu46gEjSqnnfsRgS5s470DYZdYTG09A/TdZWjqRAPasToP2r33v s7gOH+pcEQHKWH/h1VbjHqvpXpm1+HNZ6uEhFXgs2PkwDPY6xzD21s+523gqPZXbcP4D jWBVVapgt5xKzhEi80u6TaIHmYG+q4qmzoLPMo6e6P5yo1XzIrUFmbb90/79QE5REmEZ yn04+EnJWQt+SCpQAh36br4uUH0t980nQxThO8K6pQabT4mEbznccC2cBBABx4jJRMQi eDfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770851531; x=1771456331; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ounQw79qn6bq/2f2znk1fLg+Dd42TCxK+mCIm+eWxRA=; b=tUIBWGnJuGac136jx0LeXhUwNkH57cMtfQrd912nU0zbWKZsdgZ81Ft/69tDoDpLPB j7ZZ5i0nN2evIEIG8d3NLGfsio0Dbf1XN+U1vVd4V+QogGmsOQ8SyfuQGxB1dQckmFBp wtxCxLqIJS9afmfBU91IiXIOAEz3VGKl+dCnZGfvramNDYxrSnMK5U19UxqFnQwoOg3m ZKM8SwxCQ/KPuIXOlR3N3+MmRF0PL29qEzl8UXa0J56tZbM7crOfapqN8RTuNDWbcg2E Bs609UZSre4Y6Yhxu+YcCLsHcMsaJdUFBzrfxQVjB3I+gbPAdDQg5lL+zJNJJPfbf+r/ g6CA== X-Gm-Message-State: AOJu0Yys2drlyMgcYeFucfXVtsKyN4Yza/ZtXruhoaFCF3T2S4JqW7Nz JlqVll8ire4Dd+2JLfqh7F0f0aHWvExhRVsELooqCFpJbxt3fN96TjMVjYqzrwp88YEPIpZa6gW 1MerrK54nFCe5vU/2xhVXtfBokBu9DZdBGOo+yz8= X-Gm-Gg: AZuq6aIc3/bm17TT7PYWrvVq4NiBNxBdZ1eLqLVq6rZON2fM4wK8YONS3ch3Wy9/mEl Hlpvbl1dDEHEhAiaP211tYUvNo7enQHY4U6tIWO16lpg0dWBKkDRBl0EUeMzmDUqyfnG1WCcNXH 13qTN6avZd5e7CYZ5ZUNvNac6QvJ6E3ldCRE4f6PXIkhDAlwAzlu5V7ENPgKk9vhsR6SUIKAE82 EfWrgtYG7X28pSJ3CXZunZl5UGBYHWo+LYs6BLmRxRJc1u2NNa89DBppCHlxKcUo8wLO4Dviw6N UwSIvnHs X-Received: by 2002:a05:6808:1a1c:b0:462:a915:31aa with SMTP id 5614622812f47-4637fd22fc7mr235966b6e.63.1770851530868; Wed, 11 Feb 2026 15:12:10 -0800 (PST) MIME-Version: 1.0 From: "David G. Johnston" Date: Wed, 11 Feb 2026 16:11:35 -0700 X-Gm-Features: AZwV_QjAGcdguLNRz5z4vWg-QrOwmSRDtNrzdD6zf7ow_Tl3biH2sHAplQp7cG4 Message-ID: Subject: Feedback Wanted for Contributions to pgarchive To: pgsql-www@lists.postgresql.org Content-Type: multipart/mixed; boundary="00000000000072a504064a94802f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000072a504064a94802f Content-Type: multipart/alternative; boundary="00000000000072a503064a94802d" --00000000000072a503064a94802d Content-Type: text/plain; charset="UTF-8" Hi, This is the same material I posted back in May [1]. I'm loath to actually make any changes until someone responds to me in an encouraging manner. I post just the pgarchive changes now in hopes of improving my odds of that happening. The commit messages in the files are quite extensive. David J. 1. https://www.postgresql.org/message-id/CAKFQuwb0Q655=EYRdpKaVoES9uDbZ3RdWn3=1xOnaZbdpykiLw@mail.gmail.com --00000000000072a503064a94802d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

This is the same material I po= sted back in May [1].=C2=A0 I'm loath to actually make any changes unti= l someone responds to me in an encouraging manner.=C2=A0 I post=C2=A0just t= he pgarchive=C2=A0changes now in hopes of improving my odds of that happeni= ng.

The commit messages in the files are quite extensi= ve.

David J.

--00000000000072a503064a94802d-- --00000000000072a504064a94802f Content-Type: application/octet-stream; name="polobo-pgarchives_cfapp-integration_v0-0001-Modernize-setup-and-development-runtime-environment.patch" Content-Disposition: attachment; filename="polobo-pgarchives_cfapp-integration_v0-0001-Modernize-setup-and-development-runtime-environment.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlin8z3q1 RnJvbSBkMTNhZWNjZjhjZDEwNTZmMWQ5ODM4OGU3OGU1ZWNkYzRkZTU2Y2VhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiRGF2aWQgRy4gSm9obnN0b24iIDxkYXZpZC5nLmpvaG5zdG9u QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyOCBBcHIgMjAyNSAxMTo0NToxMyAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMS8yXSBNb2Rlcm5pemUgc2V0dXAgYW5kIGRldmVsb3BtZW50IHJ1bnRpbWUgZW52 aXJvbm1lbnQKClRoYW5rcyB0byBKZWx0ZSBmb3IgbW9zdCBvZiB0aGlzLiAgSSBiYXNpY2FsbHkg anVzdCBtb3ZlZCB0aGUgU1FMCmNvZGUgdG8gYSBtaWdyYXRpb24gYW5kIHN0b29kIHVwIGEgZGV2 IGVudmlyb25tZW50IHZpYSBtYWtlLgoKVGhlIGRvd25ncmFkaW5nIG9mIHBhcmVudGlkIHRvIG51 bGwtYWJsZSB3YXMgcmVxdWlyZWQgdGhvdWdoIEkgZG8Kbm90IGtub3cgd2h5LgoKSSBhZGRlZCBh IGNvdXBsZSBvZiB2aWV3cyB0byBtYWtlIGludGVyYWN0aXZlICJzZWxlY3QgKiIgZG9hYmxlLgoK QWRkZWQgYW4gdXBzZXJ0IHRvIGVuc3VyZSB0aGF0IGEgZGV2IHNldHVwIGhhcyBhIGxpc3QuCgpJ IHJld29ya2VkIHRoZSB0ZXh0IHNlYXJjaCBjb25maWd1cmF0aW9ucyBmcm9tIHdoYXQgd2FzIGlu IHNjaGVtYS5zcWwuCkkgY291bGRuJ3QgZmlndXJlIG91dCBob3cgdG8gbWFrZSB0aGUgZXhpc3Rp bmcgY29kZSB3b3JrIGFuZCBmb3IgbXkKZGV2ZWxvcG1lbnQgbmVlZHMgaXQgd2Fzbid0IGltcG9y dGFudC4KLS0tCiAuZ2l0aWdub3JlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDYgKwogTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDEwICsrCiBSRUFETUUubWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg NzcgKysrKysrKysrCiBkZXZfcmVxdWlyZW1lbnRzLnR4dCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKwogZGphbmdvL2FyY2hpdmVzL2V4YW1wbGVfc2V0dGluZ3NfbG9jYWwucHkgICAg IHwgIDE5ICsrKwogLi4uL21pZ3JhdGlvbnMvMDAwNV9zeW5jX3dpdGhfbG9hZGVyLnB5ICAgICAg IHwgMTMxICsrKysrKysrKysrKysrCiAuLi4vbWlncmF0aW9ucy8wMDA2X2FsdGVyX21lc3NhZ2Vf cGFyZW50aWQucHkgfCAgMTggKysKIGRqYW5nby9hcmNoaXZlcy9tYWlsYXJjaGl2ZXMvbW9kZWxz LnB5ICAgICAgICB8ICAgMiArLQogZGphbmdvL3J1bl9kZXYucHkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIyICsrKwogZGphbmdvL3V3c2dpX2Rldi5pbmkgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDEwICsrCiBsb2FkZXIvYXJjaGl2ZXMuaW5pLnNhbXBsZSAgICAgICAgICAg ICAgICAgICAgfCAgMTYgKy0KIGxvYWRlci9saWIvcGFyc2VyLnB5ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgMiArLQogbG9hZGVyL3NxbC9zY2hlbWEuc3FsICAgICAgICAgICAgICAgICAg ICAgICAgIHwgMTYwIC0tLS0tLS0tLS0tLS0tLS0tLQogcmVxdWlyZW1lbnRzLnR4dCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICsKIDE0IGZpbGVzIGNoYW5nZWQsIDMxMiBpbnNl cnRpb25zKCspLCAxNzAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgLmdpdGlnbm9y ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IE1ha2VmaWxlCiBjcmVhdGUgbW9kZSAxMDA2NDQgUkVBRE1F Lm1kCiBjcmVhdGUgbW9kZSAxMDA2NDQgZGV2X3JlcXVpcmVtZW50cy50eHQKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkamFuZ28vYXJjaGl2ZXMvZXhhbXBsZV9zZXR0aW5nc19sb2NhbC5weQogY3JlYXRl IG1vZGUgMTAwNjQ0IGRqYW5nby9hcmNoaXZlcy9tYWlsYXJjaGl2ZXMvbWlncmF0aW9ucy8wMDA1 X3N5bmNfd2l0aF9sb2FkZXIucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkamFuZ28vYXJjaGl2ZXMv bWFpbGFyY2hpdmVzL21pZ3JhdGlvbnMvMDAwNl9hbHRlcl9tZXNzYWdlX3BhcmVudGlkLnB5CiBj cmVhdGUgbW9kZSAxMDA3NTUgZGphbmdvL3J1bl9kZXYucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBk amFuZ28vdXdzZ2lfZGV2LmluaQogZGVsZXRlIG1vZGUgMTAwNjQ0IGxvYWRlci9zcWwvc2NoZW1h LnNxbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHJlcXVpcmVtZW50cy50eHQKCmRpZmYgLS1naXQgYS8u Z2l0aWdub3JlIGIvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5hZTFiN2QxCi0tLSAvZGV2L251bGwKKysrIGIvLmdpdGlnbm9yZQpAQCAtMCwwICsxLDYgQEAK KyMgSWdub3JlIGZpbGVzIGluIHRoZSBQeXRob24gdmlydHVhbCBlbnZpcm9ubWVudAorL2Vudi8K KworIyBBIGNvbnZlbmllbnQgcGxhY2UgdG8gc3RvcmUgZG93bmxvYWRlZCBtYm94IGZpbGVzIGZy b20gcHJvZHVjdGlvbgorIyB0byBmYWNpbGl0YXRlIHRlc3RpbmcsIGFuZCBhdXRvbWF0aW9uLgor L21ib3hlcy8KZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMDhjYzIwZAotLS0gL2Rldi9udWxsCisrKyBiL01ha2VmaWxl CkBAIC0wLDAgKzEsMTAgQEAKKyMgQSBoYW5keSB0YXJnZXQgdG8gcmVzZXQgdGhlIGRldmVsb3Bt ZW50IGVudmlyb25tZW50IGJhY2sgdG8gYSBjbGVhbiBzbGF0ZQorIyBhbmQgcnVuIHRoZSBkZXZl bG9wbWVudCBzZXJ2ZXIuCisjIFhYWDogRm9yIG5vdyBqdXN0IHVzZSB0aGUgc2luZ2xlIG1ib3gg ZmlsZSB0aGF0IHdhcyBwcmV2aW91c2x5IGRvd25sb2FkZWQuCisjICAgICAgQWRkaXRpb25hbCB3 b3JrIGluIHRoaXMgYXJlYSwgZm9yIHRlc3RpbmcgdXNlIGNhc2VzLCBpcyBuZWVkZWQuCitkZXYt cmVidWlsZC1hbmQtcnVuOgorCWRyb3BkYiAtLWlmLWV4aXN0cyBhcmNoaXZlcworCWNyZWF0ZWRi IGFyY2hpdmVzCisJZGphbmdvL21hbmFnZS5weSBtaWdyYXRlCisJbG9hZGVyL2xvYWRfbWVzc2Fn ZS5weSAtLWxpc3QgcGdzcWwtaGFja2VycyAtLW1ib3ggbWJveGVzL3Bnc3FsLWhhY2tlcnMuMjAy NTA0ID4vZGV2L251bGwKKwljZCAuL2RqYW5nbyAmJiAuL3J1bl9kZXYucHkKZGlmZiAtLWdpdCBh L1JFQURNRS5tZCBiL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5mNWFlNTRhCi0tLSAvZGV2L251bGwKKysrIGIvUkVBRE1FLm1kCkBAIC0wLDAgKzEsNzcgQEAK KyMgUEcgYXJjaGl2ZXMKKworVGhpcyBhcHBsaWNhdGlvbiBtYW5hZ2VzIFBvc3RncmVTUUwgbWFp bGluZyBsaXN0IGFyY2hpdmVzLiAgSG93ZXZlciwgdGhlIHNlYXJjaAorZmVhdHVyZSBpcyBpbXBs ZW1lbnRlZCBpbiBwZ3dlYi4KKworIyMgVGhlIEFwcGxpY2F0aW9uCisKK1RoaXMgaXMgYSBEamFu Z28gNC4yIGFwcGxpY2F0aW9uIGJhY2tlZCBieSBQb3N0Z3JlU1FMIGFuZCBydW5uaW5nIG9uIFB5 dGhvbiAzLnguCisKKyMjIEdldHRpbmcgU3RhcnRlZAorCisjIyMgVWJ1bnR1IGluc3RydWN0aW9u cworCitGaXJzdCwgcHJlcGFyZSB5b3VyIGRldmVsb3BtZW50IGVudmlyb25tZW50IGJ5IGluc3Rh bGxpbmcgcHl0aG9uMywgcG9zdGdyZXNxbC1zZXJ2ZXItZGV2LVguWSwgZm9ybWFpbCBhbmQgbGli dGlkeSAodXNlIGAtLW5vLWluc3RhbGwtcmVjb21tZW5kc2AgdG8gYXZvaWQgaW5zdGFsbGluZyBw b3N0Zml4KToKKworYGBgYmFzaAorc3VkbyBhcHQgaW5zdGFsbCBweXRob24zIHBvc3RncmVzcWwt c2VydmVyLWRldi0xNCBwcm9jbWFpbCBsaWJ0aWR5NWRlYjEgLS1uby1pbnN0YWxsLXJlY29tbWVu ZHMKK2BgYAorCitOZXh0LCBjb25maWd1cmUgeW91ciBsb2NhbCBlbnZpcm9ubWVudCB3aXRoIHZp cnR1YWxlbnYgYW5kIGluc3RhbGwgbG9jYWwgZGVwZW5kZW5jaWVzLgorCitgYGBiYXNoCitweXRo b24zIC1tIHZlbnYgZW52Citzb3VyY2UgZW52L2Jpbi9hY3RpdmF0ZQorcGlwIGluc3RhbGwgLXIg ZGV2X3JlcXVpcmVtZW50cy50eHQKK2BgYAorCitDcmVhdGUgYSBkYXRhYmFzZSBmb3IgdGhlIGFw cGxpY2F0aW9uOgorCitgYGBiYXNoCitjcmVhdGVkYiBhcmNoaXZlcworY2QgZGphbmdvCisuL21h bmFnZS5weSBtaWdyYXRlCisjIENyZWF0ZXMgcGdzcWwtaGFja2VycyBsaXN0IHdpdGggSUQgMSBp ZiBvcGVuLgorYGBgCisKK0NyZWF0ZSBjb25maWcgZm9yIHRoZSBsb2FkZXIgc2NyaXB0czoKKwor YGBgYmFzaAorY3AgbG9hZGVyL2FyY2hpdmVzLmluaS5zYW1wbGUgbG9hZGVyL2FyY2hpdmVzLmlu aQorYGBgCisKK0xvYWQgc29tZSBlbWFpbHMgZnJvbSB0aGUgYWN0dWFsIFBvc3RncmVTUUwgYXJj aGl2ZXMgYnkgZG93bmxvYWRpbmcgYW4gbWJveAorZmlsZSBmcm9tIDxodHRwczovL3d3dy5wb3N0 Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL3Bnc3FsLWhhY2tlcnMvPiBhbmQgcnVubmluZyB0aGUKK2Zv bGxvd2luZyBjb21tYW5kLiBOT1RFOiBpdCdzIHRvdGFsbHkgZmluZSBpZiBzb21lIG9mIHRoZSBl bWFpbHMgd2lsbCBmYWlsIHRvCitsb2FkLgorCitgYGBiYXNoCitsb2FkZXIvbG9hZF9tZXNzYWdl LnB5IC0tbGlzdCBwZ3NxbC1oYWNrZXJzIC0tbWJveCAvcGF0aC90by9kb3dubG9hZGVkL21ib3gv ZmlsZQorYGBgCisKK1RoZW4gZ28gdG8gdGhlIGBkamFuZ29gIGRpcmVjdG9yeSwgdGhhdCdzIHdo ZXJlIHRoZSBhY3R1YWwgd2ViIGFwcGxpY2F0aW9uIGlzLgorCitgYGBiYXNoCitjZCBkamFuZ28K K2BgYAorCitDcmVhdGUgYSBsb2NhbCBzZXR0aW5ncyBmaWxlIChmZWVsIGZyZWUgdG8gZWRpdCBp dCk6CisKK2BgYGJhc2gKK2NwIGFyY2hpdmVzL2V4YW1wbGVfc2V0dGluZ3NfbG9jYWwucHkgYXJj aGl2ZXMvc2V0dGluZ3NfbG9jYWwucHkKK2BgYAorCitGaW5hbGx5LCB5b3UncmUgcmVhZHkgdG8g c3RhcnQgdGhlIHdlYiBhcHBsaWNhdGlvbjoKKworYGBgYmFzaAorLi9ydW5fZGV2LnB5CitgYGAK KworT3IsIGRvd25sb2FkIHRoZSBBcHJpbCAyMDI1IG1ib3ggZmlsZSBmcm9tIHRoZSBQb3N0Z3Jl U1FMIGFyY2hpdmVzIGFuZCBwbGFjZSBpdCBpbiAvbWJveGVzLgorVGhlbiBydW46CitgYGBiYXNo CittYWtlIGRldi1yZWJ1aWxkLWFuZC1ydW4KK2BgYAorCitUaGVuIG9wZW4gPGh0dHA6Ly9sb2Nh bGhvc3Q6ODAwMS9saXN0L3Bnc3FsLWhhY2tlcnM+IHRvIHZpZXcgeW91ciBsb2NhbCBtYWlsaW5n CitsaXN0IGFyY2hpdmVzLgpkaWZmIC0tZ2l0IGEvZGV2X3JlcXVpcmVtZW50cy50eHQgYi9kZXZf cmVxdWlyZW1lbnRzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYjg3 OGEzCi0tLSAvZGV2L251bGwKKysrIGIvZGV2X3JlcXVpcmVtZW50cy50eHQKQEAgLTAsMCArMSwy IEBACistciByZXF1aXJlbWVudHMudHh0Cit1d3NnaQpkaWZmIC0tZ2l0IGEvZGphbmdvL2FyY2hp dmVzL2V4YW1wbGVfc2V0dGluZ3NfbG9jYWwucHkgYi9kamFuZ28vYXJjaGl2ZXMvZXhhbXBsZV9z ZXR0aW5nc19sb2NhbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NjU3 YjYyCi0tLSAvZGV2L251bGwKKysrIGIvZGphbmdvL2FyY2hpdmVzL2V4YW1wbGVfc2V0dGluZ3Nf bG9jYWwucHkKQEAgLTAsMCArMSwxOSBAQAorIyBFbmFibGUgbW9yZSBkZWJ1Z2dpbmcgaW5mb3Jt YXRpb24KK0RFQlVHID0gVHJ1ZQorIyBQcmV2ZW50IGxvZ2dpbmcgdG8gdHJ5IHRvIHNlbmQgZW1h aWxzIHRvIHBvc3RncmVzcWwub3JnIGFkbWlucy4KKyMgVXNlIHRoZSBkZWZhdWx0IERqYW5nbyBs b2dnaW5nIHNldHRpbmdzIGluc3RlYWQuCitMT0dHSU5HID0gTm9uZQorCitEQVRBQkFTRVMgPSB7 CisgICAgImRlZmF1bHQiOiB7CisgICAgICAgICJFTkdJTkUiOiAiZGphbmdvLmRiLmJhY2tlbmRz LnBvc3RncmVzcWxfcHN5Y29wZzIiLAorICAgICAgICAiTkFNRSI6ICJhcmNoaXZlcyIsCisgICAg ICAgICJVU0VSIjogInBvc3RncmVzIiwKKyAgICAgICAgIlBBU1NXT1JEIjogInBvc3RncmVzIiwK KyAgICAgICAgIkhPU1QiOiAiMC4wLjAuMCIsCisgICAgfQorfQorCisjIEFsbG93IEFQSSBhY2Nl c3MgdG8gYWxsIGNsaWVudHMKK1BVQkxJQ19BUkNISVZFUyA9IFRydWUKK0FMTE9XRURfSE9TVFMg PSBbIioiXQpkaWZmIC0tZ2l0IGEvZGphbmdvL2FyY2hpdmVzL21haWxhcmNoaXZlcy9taWdyYXRp b25zLzAwMDVfc3luY193aXRoX2xvYWRlci5weSBiL2RqYW5nby9hcmNoaXZlcy9tYWlsYXJjaGl2 ZXMvbWlncmF0aW9ucy8wMDA1X3N5bmNfd2l0aF9sb2FkZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uYzEyYmI1MgotLS0gL2Rldi9udWxsCisrKyBiL2RqYW5nby9hcmNo aXZlcy9tYWlsYXJjaGl2ZXMvbWlncmF0aW9ucy8wMDA1X3N5bmNfd2l0aF9sb2FkZXIucHkKQEAg LTAsMCArMSwxMzEgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCisjIEdlbmVyYXRlZCBieSBE amFuZ28gMS4xMS4xOCBvbiAyMDE5LTA2LTE5IDE5OjAyCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0 IHVuaWNvZGVfbGl0ZXJhbHMKKworZnJvbSBkamFuZ28uY29uZiBpbXBvcnQgc2V0dGluZ3MKK2Zy b20gZGphbmdvLmRiIGltcG9ydCBtaWdyYXRpb25zLCBtb2RlbHMKK2ltcG9ydCBkamFuZ28uZGIu bW9kZWxzLmRlbGV0aW9uCisKKworY2xhc3MgTWlncmF0aW9uKG1pZ3JhdGlvbnMuTWlncmF0aW9u KToKKworICAgIGRlcGVuZGVuY2llcyA9IFsKKyAgICAgICAgKCdtYWlsYXJjaGl2ZXMnLCAnMDAw NF9yZXNlbmRfcmF0ZV9saW1pdCcpLAorICAgIF0KKworICAgIG9wZXJhdGlvbnMgPSBbCisgICAg ICAgIG1pZ3JhdGlvbnMuUnVuU1FMKAorICAgICAgICAgICAgIiIiCitBTFRFUiBUQUJMRSBtZXNz YWdlcyBBREQgQ09MVU1OIHJhd3R4dCBieXRlYSBOT1QgTlVMTDsKK0FMVEVSIFRBQkxFIG1lc3Nh Z2VzIEFERCBDT0xVTU4gZnRpIHRzdmVjdG9yIE5PVCBOVUxMOworQUxURVIgVEFCTEUgYXR0YWNo bWVudHMgQUREIENPTFVNTiBhdHRhY2htZW50IGJ5dGVhIE5PVCBOVUxMOworQ1JFQVRFIFRBQkxF IGxvYWRlcnJvcnMoCisgICBpZCBTRVJJQUwgTk9UIE5VTEwgUFJJTUFSWSBLRVksCisgICBsaXN0 aWQgaW50IE5PVCBOVUxMLAorICAgZGF0IHRpbWVzdGFtcHR6IE5PVCBOVUxMIERFRkFVTFQgQ1VS UkVOVF9USU1FU1RBTVAsCisgICBtc2dpZCB0ZXh0IE5PVCBOVUxMLAorICAgc3JjdHlwZSB0ZXh0 IE5PVCBOVUxMLAorICAgc3JjIHRleHQgTk9UIE5VTEwsCisgICBlcnIgdGV4dCBOT1QgTlVMTAor KTsKK0NSRUFURSBTRVFVRU5DRSB0aHJlYWRpZF9zZXE7CitDUkVBVEUgVEFCTEUgbGlzdF9tb250 aHMoCisgICBsaXN0aWQgaW50IE5PVCBOVUxMIFJFRkVSRU5DRVMgbGlzdHMobGlzdGlkKSwKKyAg IHllYXIgaW50IE5PVCBOVUxMLAorICAgbW9udGggaW50IE5PVCBOVUxMLAorICAgQ09OU1RSQUlO VCBsaXN0X21vbnRoc19wayBQUklNQVJZIEtFWSAobGlzdGlkLCB5ZWFyLCBtb250aCkKKyk7CitD UkVBVEUgVEFCTEUgbGlzdF90aHJlYWRzKAorICAgdGhyZWFkaWQgaW50IE5PVCBOVUxMLCAvKiBj b21lcyBmcm9tIHRocmVhZGlkX3NlcSAqLworICAgbGlzdGlkIGludCBOT1QgTlVMTCBSRUZFUkVO Q0VTIGxpc3RzKGxpc3RpZCksCisgICBDT05TVFJBSU5UIHBnX2xpc3RfdGhyZWFkcyBQUklNQVJZ IEtFWSAodGhyZWFkaWQsIGxpc3RpZCkKKyk7CitDUkVBVEUgSU5ERVggbGlzdF90aHJlYWRzX2xp c3RpZF9pZHggT04gbGlzdF90aHJlYWRzKGxpc3RpZCk7CitDUkVBVEUgVEFCTEUgdW5yZXNvbHZl ZF9tZXNzYWdlcygKKyAgIG1lc3NhZ2UgaW50IE5PVCBOVUxMIFJFRkVSRU5DRVMgbWVzc2FnZXMs CisgICBwcmlvcml0eSBpbnQgTk9UIE5VTEwsCisgICBtc2dpZCB0ZXh0IE5PVCBOVUxMLAorICAg Q09OU1RSQUlOVCB1bnJlc29sdmVkX21lc3NhZ2VzX3BrZXkgUFJJTUFSWSBLRVkgKG1lc3NhZ2Us IHByaW9yaXR5KQorKTsKK0NSRUFURSBVTklRVUUgSU5ERVggaWR4X3VucmVzb2x2ZWRfbXNnaWRf bWVzc2FnZSBPTiB1bnJlc29sdmVkX21lc3NhZ2VzKG1zZ2lkLCBtZXNzYWdlKTsKKworLyogQSBj b3VwbGUgb2YgY29udmVuaWVuY2Ugdmlld3MgdGhhdCBleGNsdWRlIHRoZSBjb250ZW50IGZpZWxk cy4gKi8KK0NSRUFURSBWSUVXIG1lc3NhZ2VzX21ldGEgQVMKKyAgIFNFTEVDVAorICAgICAgaWQs CisgICAgICBwYXJlbnRpZCwKKyAgICAgIHRocmVhZGlkLAorICAgICAgX2Zyb20sCisgICAgICBf dG8sCisgICAgICBjYywKKyAgICAgIHN1YmplY3QsCisgICAgICBkYXRlLAorICAgICAgaGFzX2F0 dGFjaG1lbnQsCisgICAgICBoaWRkZW5zdGF0dXMsCisgICAgICBtZXNzYWdlaWQKKyAgIEZST00g bWVzc2FnZXM7CisKK0NSRUFURSBWSUVXIGF0dGFjaG1lbnRzX21ldGEgQVMKKyAgIFNFTEVDVAor ICAgICAgaWQsCisgICAgICBtZXNzYWdlLAorICAgICAgZmlsZW5hbWUsCisgICAgICBjb250ZW50 dHlwZQorICAgRlJPTSBhdHRhY2htZW50czsKKworSU5TRVJUIElOVE8gbGlzdGdyb3VwcyAoZ3Jv dXBpZCwgZ3JvdXBuYW1lLCBzb3J0a2V5KSBWQUxVRVMgKDEsICdEZXZlbG9wZXIgbGlzdHMnLCAx KQorICAgIE9OIENPTkZMSUNUIChncm91cGlkKSBETyBOT1RISU5HOworCitJTlNFUlQgSU5UTyBs aXN0cyAobGlzdGlkLCBsaXN0bmFtZSwgc2hvcnRkZXNjLCBkZXNjcmlwdGlvbiwgYWN0aXZlLCBn cm91cGlkLCBzdWJzY3JpYmVyX2FjY2VzcykKKyAgIFZBTFVFUyAoMSwgJ3Bnc3FsLWhhY2tlcnMn LCAncGdzcWwtaGFja2VycycsIC0tIGltcGxpY2l0IGNvbmNhdGVudGF0aW9uIGJlbG93CisgICAg ICAnVGhlIFBvc3RncmVTUUwgZGV2ZWxvcGVycyB0ZWFtIGxpdmVzIGhlcmUuICcKKyAgICAgICdE aXNjdXNzaW9uIG9mIGN1cnJlbnQgZGV2ZWxvcG1lbnQgaXNzdWVzLCBwcm9ibGVtcyBhbmQgYnVn cywgYW5kIHByb3Bvc2VkIG5ldyBmZWF0dXJlcy4gJworICAgICAgJ0lmIHlvdXIgcXVlc3Rpb24g Y2Fubm90IGJlIGFuc3dlcmVkIGJ5IHBlb3BsZSBpbiB0aGUgb3RoZXIgbGlzdHMsICcKKyAgICAg ICdhbmQgaXQgaXMgbGlrZWx5IHRoYXQgb25seSBhIGRldmVsb3BlciB3aWxsIGtub3cgdGhlIGFu c3dlciwgeW91IG1heSByZS1wb3N0IHlvdXIgcXVlc3Rpb24gaW4gdGhpcyBsaXN0LiAnCisgICAg ICAnWW91IG11c3QgdHJ5IGVsc2V3aGVyZSBmaXJzdCEnLCBUcnVlLCAxLCBUcnVlKQorICAgICAg T04gQ09ORkxJQ1QgKGxpc3RpZCkgRE8gTk9USElORzsKKworQ1JFQVRFIFRFWFQgU0VBUkNIIENP TkZJR1VSQVRJT04gcGcgKENPUFk9cGdfY2F0YWxvZy5lbmdsaXNoKTsKKworLyoKK0NSRUFURSBU RVhUIFNFQVJDSCBESUNUSU9OQVJZIGVuZ2xpc2hfaXNwZWxsICgKKyAgIFRFTVBMQVRFID0gaXNw ZWxsLAorICAgRGljdEZpbGUgPSBlbmdsaXNoLAorICAgQWZmRmlsZSA9IGVuZ2xpc2gsCisgICBT dG9wV29yZHMgPSBlbmdsaXNoCispOworQ1JFQVRFIFRFWFQgU0VBUkNIIERJQ1RJT05BUlkgcGdf ZGljdCAoCisgICBURU1QTEFURSA9IHN5bm9ueW0sCisgICBTWU5PTllNUyA9IHBnX2RpY3QKKyk7 CitDUkVBVEUgVEVYVCBTRUFSQ0ggRElDVElPTkFSWSBwZ19zdG9wICgKKyAgIFRFTVBMQVRFID0g c2ltcGxlLAorICAgU3RvcFdvcmRzID0gcGdfZGljdAorKTsKKyovCitBTFRFUiBURVhUIFNFQVJD SCBDT05GSUdVUkFUSU9OIHBnCisgICBBTFRFUiBNQVBQSU5HIEZPUiBhc2NpaXdvcmQsIGFzY2lp aHdvcmQsIGh3b3JkX2FzY2lpcGFydCwKKyAgICAgICAgICAgICAgICAgICAgIHdvcmQsIGh3b3Jk LCBod29yZF9wYXJ0CisgICAgV0lUSCBlbmdsaXNoX3N0ZW07CisKK0FMVEVSIFRFWFQgU0VBUkNI IENPTkZJR1VSQVRJT04gcGcKKyAgIERST1AgTUFQUElORyBGT1IgZW1haWwsIHVybCwgdXJsX3Bh dGgsIHNmbG9hdCwgZmxvYXQ7CisKK0NSRUFURSBGVU5DVElPTiBtZXNzYWdlc19mdGlfdHJpZ2dl cl9mdW5jKCkgUkVUVVJOUyB0cmlnZ2VyIEFTICQkCitCRUdJTgorICAgTkVXLmZ0aSA9IHNldHdl aWdodCh0b190c3ZlY3RvcigncHVibGljLnBnJywgY29hbGVzY2UobmV3LnN1YmplY3QsICcnKSks ICdBJykgfHwKKyAgICAgICAgICAgICBzZXR3ZWlnaHQodG9fdHN2ZWN0b3IoJ3B1YmxpYy5wZycs IGNvYWxlc2NlKG5ldy5ib2R5dHh0LCAnJykpLCAnRCcpOworICAgUkVUVVJOIE5FVzsKK0VORAor JCQgTEFOR1VBR0UgJ3BscGdzcWwnOworCitDUkVBVEUgVFJJR0dFUiBtZXNzYWdlc19mdGlfdHJp Z2dlcgorIEJFRk9SRSBJTlNFUlQgT1IgVVBEQVRFIE9GIHN1YmplY3QsIGJvZHl0eHQgT04gIG1l c3NhZ2VzCisgRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIG1lc3NhZ2VzX2Z0aV90cmln Z2VyX2Z1bmMoKTsKKworQ1JFQVRFIElOREVYIG1lc3NhZ2VzX2Z0aV9pZHggT04gbWVzc2FnZXMg VVNJTkcgZ2luKGZ0aSk7CisKKyAgICAgICAgICAgICIiIiwKKyAgICAgICAgKSwKKworICAgIF0K ZGlmZiAtLWdpdCBhL2RqYW5nby9hcmNoaXZlcy9tYWlsYXJjaGl2ZXMvbWlncmF0aW9ucy8wMDA2 X2FsdGVyX21lc3NhZ2VfcGFyZW50aWQucHkgYi9kamFuZ28vYXJjaGl2ZXMvbWFpbGFyY2hpdmVz L21pZ3JhdGlvbnMvMDAwNl9hbHRlcl9tZXNzYWdlX3BhcmVudGlkLnB5Cm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2ZDU2YmMKLS0tIC9kZXYvbnVsbAorKysgYi9kamFuZ28v YXJjaGl2ZXMvbWFpbGFyY2hpdmVzL21pZ3JhdGlvbnMvMDAwNl9hbHRlcl9tZXNzYWdlX3BhcmVu dGlkLnB5CkBAIC0wLDAgKzEsMTggQEAKKyMgR2VuZXJhdGVkIGJ5IERqYW5nbyA0LjIuMjAgb24g MjAyNS0wNC0yOCAxODozNworCitmcm9tIGRqYW5nby5kYiBpbXBvcnQgbWlncmF0aW9ucywgbW9k ZWxzCisKKworY2xhc3MgTWlncmF0aW9uKG1pZ3JhdGlvbnMuTWlncmF0aW9uKToKKworICAgIGRl cGVuZGVuY2llcyA9IFsKKyAgICAgICAgKCdtYWlsYXJjaGl2ZXMnLCAnMDAwNV9zeW5jX3dpdGhf bG9hZGVyJyksCisgICAgXQorCisgICAgb3BlcmF0aW9ucyA9IFsKKyAgICAgICAgbWlncmF0aW9u cy5BbHRlckZpZWxkKAorICAgICAgICAgICAgbW9kZWxfbmFtZT0nbWVzc2FnZScsCisgICAgICAg ICAgICBuYW1lPSdwYXJlbnRpZCcsCisgICAgICAgICAgICBmaWVsZD1tb2RlbHMuSW50ZWdlckZp ZWxkKGJsYW5rPVRydWUsIG51bGw9VHJ1ZSksCisgICAgICAgICksCisgICAgXQpkaWZmIC0tZ2l0 IGEvZGphbmdvL2FyY2hpdmVzL21haWxhcmNoaXZlcy9tb2RlbHMucHkgYi9kamFuZ28vYXJjaGl2 ZXMvbWFpbGFyY2hpdmVzL21vZGVscy5weQppbmRleCA0NGM0NDY5Li40Zjc1YWNjIDEwMDY0NAot LS0gYS9kamFuZ28vYXJjaGl2ZXMvbWFpbGFyY2hpdmVzL21vZGVscy5weQorKysgYi9kamFuZ28v YXJjaGl2ZXMvbWFpbGFyY2hpdmVzL21vZGVscy5weQpAQCAtMjUsNyArMjUsNyBAQCBjbGFzcyBN ZXNzYWdlKG1vZGVscy5Nb2RlbCk6CiAgICAgbWVzc2FnZWlkID0gbW9kZWxzLlRleHRGaWVsZChu dWxsPUZhbHNlKQogICAgIGJvZHl0eHQgPSBtb2RlbHMuVGV4dEZpZWxkKG51bGw9RmFsc2UpCiAg ICAgIyByYXd0eHQgaXMgYSBieXRlYSBmaWVsZCwgd2hpY2ggZGphbmdvIGRvZXNuJ3Qgc3VwcG9y dCAoZWFzaWx5KQotICAgIHBhcmVudGlkID0gbW9kZWxzLkludGVnZXJGaWVsZChudWxsPUZhbHNl LCBibGFuaz1GYWxzZSkKKyAgICBwYXJlbnRpZCA9IG1vZGVscy5JbnRlZ2VyRmllbGQobnVsbD1U cnVlLCBibGFuaz1UcnVlKQogICAgIGhhc19hdHRhY2htZW50ID0gbW9kZWxzLkJvb2xlYW5GaWVs ZChudWxsPUZhbHNlLCBkZWZhdWx0PUZhbHNlKQogICAgIGhpZGRlbnN0YXR1cyA9IG1vZGVscy5J bnRlZ2VyRmllbGQobnVsbD1UcnVlKQogICAgICMgZnRpIGlzIGEgdHN2ZWN0b3IgZmllbGQsIHdo aWNoIGRqYW5nbyBkb2Vzbid0IHN1cHBvcnQgKGVhc2lseSkKZGlmZiAtLWdpdCBhL2RqYW5nby9y dW5fZGV2LnB5IGIvZGphbmdvL3J1bl9kZXYucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXgg MDAwMDAwMC4uMjY4Y2Q4MwotLS0gL2Rldi9udWxsCisrKyBiL2RqYW5nby9ydW5fZGV2LnB5CkBA IC0wLDAgKzEsMjIgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbjMKK2Zyb20gaW1wb3J0bGliLm1h Y2hpbmVyeSBpbXBvcnQgUGF0aEZpbmRlcgoraW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBzeXMK KworZGphbmdvX3BhdGggPSBQYXRoRmluZGVyKCkuZmluZF9zcGVjKCJkamFuZ28iKS5zdWJtb2R1 bGVfc2VhcmNoX2xvY2F0aW9uc1swXQorCitkamFuZ29fYWRtaW5fcGF0aCA9IGRqYW5nb19wYXRo ICsgIi9jb250cmliL2FkbWluL3N0YXRpYy9hZG1pbiIKKworaWYgbGVuKHN5cy5hcmd2KSA+IDE6 CisgICAgaW5pX2ZpbGUgPSBzeXMuYXJndlsxXQorZWxzZToKKyAgICBpbmlfZmlsZSA9ICJ1d3Nn aV9kZXYuaW5pIgorCitzdWJwcm9jZXNzLnJ1bigKKyAgICBbCisgICAgICAgICJ1d3NnaSIsCisg ICAgICAgICItLXN0YXRpYy1tYXAiLAorICAgICAgICBmIi9zdGF0aWMvYWRtaW49e2RqYW5nb19w YXRofS9jb250cmliL2FkbWluL3N0YXRpYy9hZG1pbiIsCisgICAgICAgIGluaV9maWxlLAorICAg IF0KKykKZGlmZiAtLWdpdCBhL2RqYW5nby91d3NnaV9kZXYuaW5pIGIvZGphbmdvL3V3c2dpX2Rl di5pbmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWFiMjZiMgotLS0gL2Rl di9udWxsCisrKyBiL2RqYW5nby91d3NnaV9kZXYuaW5pCkBAIC0wLDAgKzEsMTAgQEAKK1t1d3Nn aV0KK3RocmVhZHM9MQorZW52PURKQU5HT19TRVRUSU5HU19NT0RVTEU9YXJjaGl2ZXMuc2V0dGlu Z3MKK21vZHVsZT1hcmNoaXZlcy53c2dpOmFwcGxpY2F0aW9uCitweS1hdXRvcmVsb2FkPTEKK3Rv dWNoLXJlbG9hZCA9IGFyY2hpdmVzL3NldHRpbmdzLnB5Cit0b3VjaC1yZWxvYWQgPSBhcmNoaXZl cy9zZXR0aW5nc19sb2NhbC5weQordG91Y2gtcmVsb2FkID0gdXdzZ2lfZGV2LmluaQoraHR0cD0x MjcuMC4wLjE6ODAwMQorc3RhdGljLW1hcD0vbWVkaWEtYXJjaGl2ZXM9bWVkaWEKZGlmZiAtLWdp dCBhL2xvYWRlci9hcmNoaXZlcy5pbmkuc2FtcGxlIGIvbG9hZGVyL2FyY2hpdmVzLmluaS5zYW1w bGUKaW5kZXggYTE0NmY2OS4uMWMzYzZlMiAxMDA2NDQKLS0tIGEvbG9hZGVyL2FyY2hpdmVzLmlu aS5zYW1wbGUKKysrIGIvbG9hZGVyL2FyY2hpdmVzLmluaS5zYW1wbGUKQEAgLTIsMTYgKzIsMTYg QEAKIGNvbm5zdHI9ZGJuYW1lPWFyY2hpdmVzCiAKIFt2YXJuaXNoXQotcHVyZ2V1cmw9aHR0cHM6 Ly93cmlnbGV5cy5wb3N0Z3Jlc3FsLm9yZy9hcGkvdmFybmlzaC9wdXJnZS8KKyNwdXJnZXVybD1o dHRwczovL3dyaWdsZXlzLnBvc3RncmVzcWwub3JnL2FwaS92YXJuaXNoL3B1cmdlLwogCiBbc210 cF0KLXNlcnZlcj1sb2NhbGhvc3Q6OTkxMQotaGVsb25hbWU9bG9jYWxob3N0Ci1yZXNlbmRlcj1u b3JlcGx5QGV4YW1wbGUuY29tCisjc2VydmVyPWxvY2FsaG9zdDo5OTExCisjaGVsb25hbWU9bG9j YWxob3N0CisjcmVzZW5kZXI9bm9yZXBseUBleGFtcGxlLmNvbQogCiBbcGdsaXN0ZXJdCiAjIHN5 bmNocm9uaXplIHN1YnNjcmliZXJzIGJldHdlZW4gcGdhcmNoaXZlcyBhbmQgcGdsaXN0ZXIKLXN1 YnNjcmliZXJzPTAKLXJvb3Q9L3BhdGgvdG8vcGdsaXN0ZXIKLW15bmFtZT1wZ2FyY2hpdmVzCi1h cGlrZXk9Q0hBTkdFTUUKKyNzdWJzY3JpYmVycz0wCisjcm9vdD0vcGF0aC90by9wZ2xpc3Rlcgor I215bmFtZT1wZ2FyY2hpdmVzCisjYXBpa2V5PUNIQU5HRU1FCmRpZmYgLS1naXQgYS9sb2FkZXIv bGliL3BhcnNlci5weSBiL2xvYWRlci9saWIvcGFyc2VyLnB5CmluZGV4IDAyN2VkNTMuLmU4MWIx OTMgMTAwNjQ0Ci0tLSBhL2xvYWRlci9saWIvcGFyc2VyLnB5CisrKyBiL2xvYWRlci9saWIvcGFy c2VyLnB5CkBAIC02Miw3ICs2Miw3IEBAIGNsYXNzIEFyY2hpdmVzUGFyc2VyKG9iamVjdCk6CiAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZGF0ZSA9IGxvd2RhdGUKICAgICAgICAgICAgICAgICAj IEVsc2Ugd2UncmUgZ29pbmcgdG8gZ28gd2l0aCB3aGF0IHdlIGZvdW5kCiAgICAgICAgIHNlbGYu Ym9keXR4dCA9IHNlbGYuZ2V0X2JvZHkoKQotICAgICAgICBzZWxmLmF0dGFjaG1lbnRzID0gW10K KyAgICAgICAgc2VsZi5hdHRhY2htZW50cyA9IFtdICMgKGZpbGVuYW1lLCBjb250ZW50dHlwZSwg cGF5bG9hZCkKICAgICAgICAgc2VsZi5nZXRfYXR0YWNobWVudHMoKQogICAgICAgICBpZiBsZW4o c2VsZi5hdHRhY2htZW50cykgPiAwOgogICAgICAgICAgICAgbG9nLnN0YXR1cygiRm91bmQgJXMg YXR0YWNobWVudHMiICUgbGVuKHNlbGYuYXR0YWNobWVudHMpKQpkaWZmIC0tZ2l0IGEvbG9hZGVy L3NxbC9zY2hlbWEuc3FsIGIvbG9hZGVyL3NxbC9zY2hlbWEuc3FsCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBiZTczNWQ5Li4wMDAwMDAwCi0tLSBhL2xvYWRlci9zcWwvc2NoZW1hLnNx bAorKysgL2Rldi9udWxsCkBAIC0xLDE2MCArMCwwIEBACi1cc2V0IE9OX0VSUk9SX1NUT1Agb24K LQotQkVHSU47Ci0KLUNSRUFURSBUQUJMRSBtZXNzYWdlcyAoCi0gICBpZCBTRVJJQUwgTk9UIE5V TEwgUFJJTUFSWSBLRVksCi0gICBwYXJlbnRpZCBpbnQgUkVGRVJFTkNFUyBtZXNzYWdlcywKLSAg IHRocmVhZGlkIGludCBOT1QgTlVMTCwKLSAgIF9mcm9tIHRleHQgTk9UIE5VTEwsCi0gICBfdG8g dGV4dCBOT1QgTlVMTCwKLSAgIGNjIHRleHQgTk9UIE5VTEwsCi0gICBzdWJqZWN0IHRleHQgTk9U IE5VTEwsCi0gICBkYXRlIHRpbWVzdGFtcHR6IE5PVCBOVUxMLAotICAgbG9hZGRhdGUgdGltZXN0 YW1wdHogTk9UIE5VTEwgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUCwKLSAgIGhhc19hdHRhY2ht ZW50IGJvb2xlYW4gTk9UIE5VTEwsCi0gICBoaWRkZW5zdGF0dXMgaW50IE5VTEwsCi0gICBtZXNz YWdlaWQgdGV4dCBOT1QgTlVMTCwKLSAgIGJvZHl0eHQgdGV4dCBOT1QgTlVMTCwKLSAgIHJhd3R4 dCBieXRlYSBOT1QgTlVMTCwKLSAgIGZ0aSB0c3ZlY3RvciBOT1QgTlVMTAotKTsKLUNSRUFURSBJ TkRFWCBpZHhfbWVzc2FnZXNfdGhyZWFkaWQgT04gbWVzc2FnZXModGhyZWFkaWQpOwotQ1JFQVRF IFVOSVFVRSBJTkRFWCBpZHhfbWVzc2FnZXNfbXNnaWQgT04gbWVzc2FnZXMobWVzc2FnZWlkKTsK LUNSRUFURSBJTkRFWCBpZHhfbWVzc2FnZXNfZGF0ZSBPTiBtZXNzYWdlcyhkYXRlKTsKLUNSRUFU RSBJTkRFWCBpZHhfbWVzc2FnZXNfcGFyZW50aWQgT04gbWVzc2FnZXMocGFyZW50aWQpOwotCi1D UkVBVEUgVEFCTEUgbWVzc2FnZV9oaWRlX3JlYXNvbnMgKAotICAgbWVzc2FnZSBpbnQgTk9UIE5V TEwgUFJJTUFSWSBLRVkgUkVGRVJFTkNFUyBtZXNzYWdlcywKLSAgIGR0IHRpbWVzdGFtcHR6LAot ICAgcmVhc29uIHRleHQsCi0gICBieSB0ZXh0Ci0pOwotCi1DUkVBVEUgU0VRVUVOQ0UgdGhyZWFk aWRfc2VxOwotCi1DUkVBVEUgVEFCTEUgdW5yZXNvbHZlZF9tZXNzYWdlcygKLSAgIG1lc3NhZ2Ug aW50IE5PVCBOVUxMIFJFRkVSRU5DRVMgbWVzc2FnZXMsCi0gICBwcmlvcml0eSBpbnQgTk9UIE5V TEwsCi0gICBtc2dpZCB0ZXh0IE5PVCBOVUxMLAotICAgQ09OU1RSQUlOVCB1bnJlc29sdmVkX21l c3NhZ2VzX3BrZXkgUFJJTUFSWSBLRVkgKG1lc3NhZ2UsIHByaW9yaXR5KQotKTsKLQotQ1JFQVRF IFVOSVFVRSBJTkRFWCBpZHhfdW5yZXNvbHZlZF9tc2dpZF9tZXNzYWdlIE9OIHVucmVzb2x2ZWRf bWVzc2FnZXMobXNnaWQsIG1lc3NhZ2UpOwotCi1DUkVBVEUgVEFCTEUgbGlzdGdyb3VwcygKLSAg IGdyb3VwaWQgaW50IE5PVCBOVUxMIFBSSU1BUlkgS0VZLAotICAgZ3JvdXBuYW1lIHRleHQgTk9U IE5VTEwgVU5JUVVFLAotICAgc29ydGtleSBpbnQgTk9UIE5VTEwKLSk7Ci0KLUNSRUFURSBUQUJM RSBsaXN0cygKLSAgIGxpc3RpZCBpbnQgTk9UIE5VTEwgUFJJTUFSWSBLRVksCi0gICBsaXN0bmFt ZSB0ZXh0IE5PVCBOVUxMIFVOSVFVRSwKLSAgIHNob3J0ZGVzYyB0ZXh0IE5PVCBOVUxMLAotICAg ZGVzY3JpcHRpb24gdGV4dCBOT1QgTlVMTCwKLSAgIGFjdGl2ZSBib29sZWFuIE5PVCBOVUxMLAot ICAgZ3JvdXBpZCBpbnQgTk9UIE5VTEwgUkVGRVJFTkNFUyBsaXN0Z3JvdXBzKGdyb3VwaWQpCi0p OwotCi1DUkVBVEUgVEFCTEUgbGlzdF9tb250aHMoCi0gICBsaXN0aWQgaW50IE5PVCBOVUxMIFJF RkVSRU5DRVMgbGlzdHMobGlzdGlkKSwKLSAgIHllYXIgaW50IE5PVCBOVUxMLAotICAgbW9udGgg aW50IE5PVCBOVUxMLAotICAgQ09OU1RSQUlOVCBsaXN0X21vbnRoc19wayBQUklNQVJZIEtFWSAo bGlzdGlkLCB5ZWFyLCBtb250aCkKLSk7Ci0KLUNSRUFURSBUQUJMRSBsaXN0X3RocmVhZHMoCi0g ICB0aHJlYWRpZCBpbnQgTk9UIE5VTEwsIC8qIGNvbWVzIGZyb20gdGhyZWFkaWRfc2VxICovCi0g ICBsaXN0aWQgaW50IE5PVCBOVUxMIFJFRkVSRU5DRVMgbGlzdHMobGlzdGlkKSwKLSAgIENPTlNU UkFJTlQgcGdfbGlzdF90aHJlYWRzIFBSSU1BUlkgS0VZICh0aHJlYWRpZCwgbGlzdGlkKQotKTsK LUNSRUFURSBJTkRFWCBsaXN0X3RocmVhZHNfbGlzdGlkX2lkeCBPTiBsaXN0X3RocmVhZHMobGlz dGlkKTsKLQotQ1JFQVRFIFRBQkxFIGF0dGFjaG1lbnRzKAotICAgaWQgc2VyaWFsIG5vdCBudWxs IHByaW1hcnkga2V5LAotICAgbWVzc2FnZSBpbnQgbm90IG51bGwgcmVmZXJlbmNlcyBtZXNzYWdl cyhpZCksCi0gICBmaWxlbmFtZSB0ZXh0IG5vdCBudWxsLAotICAgY29udGVudHR5cGUgdGV4dCBu b3QgbnVsbCwKLSAgIGF0dGFjaG1lbnQgYnl0ZWEgbm90IG51bGwKLSk7Ci1DUkVBVEUgSU5ERVgg aWR4X2F0dGFjaG1lbnRzX21zZyBPTiBhdHRhY2htZW50cyhtZXNzYWdlKTsKLQotQ1JFQVRFIFRB QkxFIGxvYWRlcnJvcnMoCi0gICBpZCBTRVJJQUwgTk9UIE5VTEwgUFJJTUFSWSBLRVksCi0gICBs aXN0aWQgaW50IE5PVCBOVUxMLAotICAgZGF0IHRpbWVzdGFtcHR6IE5PVCBOVUxMIERFRkFVTFQg Q1VSUkVOVF9USU1FU1RBTVAsCi0gICBtc2dpZCB0ZXh0IE5PVCBOVUxMLAotICAgc3JjdHlwZSB0 ZXh0IE5PVCBOVUxMLAotICAgc3JjIHRleHQgTk9UIE5VTEwsCi0gICBlcnIgdGV4dCBOT1QgTlVM TAotKTsKLQotLyogdGV4dHNlYXJjaCBjb25maWdzICovCi1DUkVBVEUgVEVYVCBTRUFSQ0ggQ09O RklHVVJBVElPTiBwZyAoUEFSU0VSPXRzcGFyc2VyKTsKLQotQ1JFQVRFIFRFWFQgU0VBUkNIIERJ Q1RJT05BUlkgZW5nbGlzaF9pc3BlbGwgKAotICAgVEVNUExBVEUgPSBpc3BlbGwsCi0gICBEaWN0 RmlsZSA9IGVuX3VzLAotICAgQWZmRmlsZSA9IGVuX3VzLAotICAgU3RvcFdvcmRzID0gZW5nbGlz aAotKTsKLUNSRUFURSBURVhUIFNFQVJDSCBESUNUSU9OQVJZIHBnX2RpY3QgKAotICAgVEVNUExB VEUgPSBzeW5vbnltLAotICAgU1lOT05ZTVMgPSBwZ19kaWN0Ci0pOwotQ1JFQVRFIFRFWFQgU0VB UkNIIERJQ1RJT05BUlkgcGdfc3RvcCAoCi0gICBURU1QTEFURSA9IHNpbXBsZSwKLSAgIFN0b3BX b3JkcyA9IHBnX2RpY3QKLSk7Ci1BTFRFUiBURVhUIFNFQVJDSCBDT05GSUdVUkFUSU9OIHBnCi0g ICBBTFRFUiBNQVBQSU5HIEZPUiBhc2NpaXdvcmQsIGFzY2lpaHdvcmQsIGh3b3JkX2FzY2lpcGFy dCwKLSAgICAgICAgICAgICAgICAgICAgIHdvcmQsIGh3b3JkLCBod29yZF9wYXJ0Ci0gICAgV0lU SCBwZ19zdG9wLCBwZ19kaWN0LCBlbmdsaXNoX2lzcGVsbCwgZW5nbGlzaF9zdGVtOwotQUxURVIg VEVYVCBTRUFSQ0ggQ09ORklHVVJBVElPTiBwZwotICAgRFJPUCBNQVBQSU5HIEZPUiBlbWFpbCwg dXJsLCB1cmxfcGF0aCwgc2Zsb2F0LCBmbG9hdDsKLQotQ1JFQVRFIEZVTkNUSU9OIG1lc3NhZ2Vz X2Z0aV90cmlnZ2VyX2Z1bmMoKSBSRVRVUk5TIHRyaWdnZXIgQVMgJCQKLUJFR0lOCi0gICBORVcu ZnRpID0gc2V0d2VpZ2h0KHRvX3RzdmVjdG9yKCdwdWJsaWMucGcnLCBjb2FsZXNjZShuZXcuc3Vi amVjdCwgJycpKSwgJ0EnKSB8fAotICAgICAgICAgICAgIHNldHdlaWdodCh0b190c3ZlY3Rvcign cHVibGljLnBnJywgY29hbGVzY2UobmV3LmJvZHl0eHQsICcnKSksICdEJyk7Ci0gICBSRVRVUk4g TkVXOwotRU5ECi0kJCBMQU5HVUFHRSAncGxwZ3NxbCc7Ci0KLUNSRUFURSBUUklHR0VSIG1lc3Nh Z2VzX2Z0aV90cmlnZ2VyCi0gQkVGT1JFIElOU0VSVCBPUiBVUERBVEUgT0Ygc3ViamVjdCwgYm9k eXR4dCBPTiAgbWVzc2FnZXMKLSBGT1IgRUFDSCBST1cgRVhFQ1VURSBQUk9DRURVUkUgbWVzc2Fn ZXNfZnRpX3RyaWdnZXJfZnVuYygpOwotQ1JFQVRFIElOREVYIG1lc3NhZ2VzX2Z0aV9pZHggT04g bWVzc2FnZXMgVVNJTkcgZ2luKGZ0aSk7Ci0KLUNSRUFURSBUQUJMRSBsZWdhY3ltYXAoCi0gICAg ICAgbGlzdGlkIGludCBub3QgbnVsbCwKLSAgICAgICB5ZWFyIGludCBub3QgbnVsbCwKLSAgICAg ICBtb250aCBpbnQgbm90IG51bGwsCi0gICAgICAgbXNnbnVtIGludCBub3QgbnVsbCwKLSAgICAg ICBtc2dpZCB0ZXh0IG5vdCBudWxsLAotQ09OU1RSQUlOVCBsZWdhY3ltYXBfcGsgUFJJTUFSWSBL RVkgKGxpc3RpZCwgeWVhciwgbW9udGgsIG1zZ251bSkKLSk7Ci0KLS8qIFNpbXBsZSBBUEkgZm9y IGhpZGluZyBtZXNzYWdlcyAqLwotQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaGlkZV9tZXNz YWdlKG1zZ2lkX3R4dCB0ZXh0LCByZWFzb25fY29kZSBpbnRlZ2VyLCB1c2VyX3R4dCB0ZXh0LCBy ZWFzb25fdHh0IHRleHQpCi0gIFJFVFVSTlMgaW50ZWdlciBBUwotJEJPRFkkCi1ERUNMQVJFCi0g ICAgcmV0dXJuZWRfaWQgaW50ZWdlcjsKLUJFR0lOCi0gICAgVVBEQVRFIG1lc3NhZ2VzIFNFVCBo aWRkZW5zdGF0dXMgPSByZWFzb25fY29kZSBXSEVSRSBtZXNzYWdlaWQgPSBtc2dpZF90eHQgUkVU VVJOSU5HIGlkIElOVE8gcmV0dXJuZWRfaWQ7Ci0KLSAgICBJRiBOT1QgRk9VTkQgVEhFTgotCVJB SVNFIEVYQ0VQVElPTiAnVGhlIHNwZWNpZmllZCBtZXNzYWdlICglKSBjb3VsZCBub3QgYmUgZm91 bmQuJywgbXNnaWRfdHh0OwotICAgIEVORCBJRjsKLQotICAgIElOU0VSVCBJTlRPIG1lc3NhZ2Vf aGlkZV9yZWFzb25zIChtZXNzYWdlLCBkdCwgcmVhc29uLCBieSkgVkFMVUVTIChyZXR1cm5lZF9p ZCwgbm93KCksIHJlYXNvbl90eHQsIHVzZXJfdHh0KTsKLQotICAgIFJFVFVSTiByZXR1cm5lZF9p ZDsKLUVORDsKLSRCT0RZJAotICBMQU5HVUFHRSBwbHBnc3FsIFZPTEFUSUxFCi0gIENPU1QgMTAw OwotCi1cZWNobyBEb250IGZvcmdldCB0byBjb21taXQhCmRpZmYgLS1naXQgYS9yZXF1aXJlbWVu dHMudHh0IGIvcmVxdWlyZW1lbnRzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4wMDY0MTcyCi0tLSAvZGV2L251bGwKKysrIGIvcmVxdWlyZW1lbnRzLnR4dApAQCAtMCww ICsxLDcgQEAKK2RqYW5nbz49NC4yLDw0LjMKK3BzeWNvcGcyCityZXF1ZXN0cworcHljcnlwdG9k b21lCitweWNyeXB0b2RvbWV4CitweXRob24tZGF0ZXV0aWwKK3B5dGlkeWxpYgotLSAKMi4zNC4x Cgo= --00000000000072a504064a94802f Content-Type: application/octet-stream; name="polobo-pgarchives_cfapp-integration_v0-0002-Implement-Advanced-Searching-Features-and-CFApp-Inte.patch" Content-Disposition: attachment; filename="polobo-pgarchives_cfapp-integration_v0-0002-Implement-Advanced-Searching-Features-and-CFApp-Inte.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlin8z3l0 RnJvbSBjYjhmZjE2OGU0ODZhMDQyM2M4YTI0MTg1ZDNlNjkyNzkzMWZmNzRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiRGF2aWQgRy4gSm9obnN0b24iIDxkYXZpZC5nLmpvaG5zdG9u QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyOCBBcHIgMjAyNSAxMzoxMjoyMCAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMi8yXSBJbXBsZW1lbnQgQWR2YW5jZWQgU2VhcmNoaW5nIEZlYXR1cmVzIGFuZCBD RkFwcAogSW50ZWdyYXRpb24KCk5vdGU6IE5vbmUgb2YgdGhpcyBpcyBmdWxseSBmbGVzaGVkIG91 dC4gIE1haW5seSBiZWNhdXNlIGl0IGlzbid0Cm15IHByaW1hcnkgZm9jdXMgYXQgdGhlIG1vbWVu dDsgSSBqdXN0IG5lZWRlZCB0byBkbyBlbm91Z2ggdG8KYWxsb3cgdGhpcyB0byBpbnRlcm9wZXJh dGUgd2l0aCBDRkFwcC4KClRoaXMgcGF0Y2ggcmVtb3ZlcyBhbGwgcmVsaWFuY2Ugb24gcGd3ZWIg dG8gc2VhcmNoIGFuZCB2aWV3IHRoZQphcmNoaXZlLiAgSXQgc2hvdWxkIGJlIGZhaXJseSBzaW1w bGUgdG8gaW5jb3Jwb3JhdGUgdGhlIHJlbGV2YW50CmNoYW5nZXMgaW50byBwZ3dlYiBpZiBkZXNp cmVkIGJ1dCBpZGVhbGx5IHRoaXMgYXBwbGljYXRpb24gc2hvdWxkCnByb3ZpZGUgYm90aCB0aGUg YXJjaGl2ZSBhbmQgdGhlIHVzZXIgaW50ZXJmYWNlLgoKVGhlIHByZXNlbnQgcmVsaWFuY2Ugb2Yg cGd3ZWIgdG8gZ2VuZXJhdGUgc3RyaW5nIGh0bWwgYW5kIHdyaXRlIGl0Cm91dCB1c2luZyB7e2h0 bWwgfCBzYWZlfX0gaXMgbGFyZ2VseSBhYm9saXNoZWQgaW4gZmF2b3Igb2YgcHJvcGVyCmh0bWwg ZWxlbWVudCB1c2FnZSAtIGRpdnMgYW5kIHNwYW4gd2l0aCBjbGFzc2VzLiAgTm90ZSBpbiBwYXJ0 aWN1bGFyCnRoZSBhYnN0cmFjdF9mb3VuZCBhbmQgYWJzdHJhY3RfYWZ0ZXIgcmV3b3JraW5nLgoK VGhlIGFkZGVkIF9fc3RyX18gb3ZlcnJpZGVzIG9uIGxpc3QgYW5kIGdyb3VwcyBhbGxvd3MgdGhl IGRyb3AtZG93bgpzZWxlY3Rpb24gbGlzdCB0byBzaG93IHRoZSBwcm9wZXIgbGFiZWxzLgoKVGhl IHJlbGF0ZWQgd29yayBpbiB2aWV3cy5weSBpcyBiYXNpY2FsbHkgdG8gY29udGludWUgdG8gaGFu ZGxlIGJvdGgKdGhlIHBnd2ViL3NpbXBsZSBzZWFyY2ggaW50ZXJmYWNlIGFzIHdlbGwgYXMgdGhp cyBuZXcgYWR2YW5jZWQgc2VhcmNoCmludGVyZmFjZS4gIFRoZSBzZWFyY2ggaW1wbGVtZW50YXRp b24gaGFzIGJlZW4gZmFjdG9yZWQgb3V0IGFuZCB0aGUKbmV3IHNlYXJjaCB2aWV3IGFkZGVkIGZv ciBsb2NhbCBzZWFyY2ggLSBsZWF2aW5nIGFyY2hpdmUtc2VhcmNoIGZvciBwZ3dlYi4KCkEgd2hp bGUgYmFjayBJIG1hZGUgYSBmZWF0dXJlIHJlcXVlc3QgdG8gbGltaXQgc2VhcmNoIHJlc3VsdHMg dG8KYSBzaW5nbGUgbWVzc2FnZSBwZXIgdGhyZWFkLiAgSSd2ZSBpbXBsZW1lbnRlZCBhbiBpbml0 aWFsIHZlcnNpb24Kb2YgdGhhdCBoZXJlLiAgVGhlIGFkdmFuY2VkIHNlYXJjaCBwYWdlIHJlLWlt cGxlbWVudGVkIGhlcmUgYWRkcwphIGNoZWNrYm94IHRvIGVuYWJsZSB0aGlzIG1vZGU7IGFuZCB0 aGUgcmVzdWx0cyBzaG93IGJvdGggdGhlCnRocmVhZCBpZCBhbmQgcmFua2luZyB3aXRoaW4gdGhl IHRocmVhZCwgd2hldGhlciAib25lcGVydGhyZWFkIgppcyBjaGVja2VkIG9yIG5vdC4KClRoaXMg cGF0Y2ggYWxzbyBpbnRyb2R1Y2VzIGEgbmV3IGZ1bmN0aW9uIG5hbWVkIGlzX3BhdGNoLiAgVGhp cwp1c2VzIHRoZSBzYW1lIGV4YWN0IGNyaXRlcmlhIHRoYXQgQ0ZCb3QgdXNlcy4gIFRoZSB0aGlu a2luZyBoZXJlCmlzIHRoYXQga25vd2luZyB3aGljaCBtZXNzYWdlcyBhbmQgdGhyZWFkcyBjb250 YWlucyBwYXRjaGVzIGlzCnVzZWZ1bCBjb250ZXh0IHRvIHVzZSB3aGlsZSBzZWFyY2hpbmcgb3Ig d2l0aGluIHNlYXJjaCByZXN1bHRzLgpUaGUgaW1tZWRpYXRlIHVzZSBmb3IgdGhpcyBpbmZvcm1h dGlvbiBpcyB0aGUgbmV3bHkgYWRkZWQgdGhyZWFkcwp2aWV3LiAgUHJlc2VudGx5IGNvZGVkIGZv ciBkZW1vbnN0cmF0aW9uIHB1cnBvc2VzIG9ubHksIHRoaXMgdmlldwpwcmVzZW50cyB0aGUgbW9z dCByZWNlbnQgdGhyZWFkcyB0aGF0IGNvbnRhaW4gcGF0Y2hlcy4gIFdpdGggdGhpcwppbmZvcm1h dGlvbiBpdCBpcyBwb3NzaWJsZSwgYW5kIGRlbW9uc3RyYXRlZCwgdG8gYWN0dWFsbHkgcHVzaAph bGwgb2YgdGhlIG5lZWRlZCBpbmZvcm1hdGlvbiBmcm9tIHBnYXJjaHZpZXMgdG8gcGdjb21taXRm ZXN0CnRvIGNyZWF0ZSBhIG5ldyBwYXRjaCwgd2l0aCByZWFzb25hYmxlIGRlZmF1bHRzLiAgRm9y IHRoZSBtb21lbnQKaXQgaXMgY3JlYXRlZCB1c2luZyBDRkJvdCBhcyB0aGUgY3JlYXRvciBidXQg Z2l2ZW4gb3VyIHNpbmdsZQpzaWduLW9uIGF1dGhlbnRpY2F0aW9uIGZpbHRlcmluZyB0aGUgdGhy ZWFkIHJlc3VsdHMgb24gdXNlciBhbmQKY3JlYXRpbmcgdGhlIHBhdGNoIHdpdGggdGhlbSBhcyBh dXRob3Igc2hvdWxkIGJlIGRvYWJsZS4KCkNvbnRlbnQtVHlwZSBub3cgZ2V0cyBwYXNzZWQgYXJv dW5kIGluIHRoZSBhdHRhY2htZW50IG1ldGFkYXRhLgotLS0KIGRqYW5nby9hcmNoaXZlcy9leGFt cGxlX3NldHRpbmdzX2xvY2FsLnB5ICAgICB8ICAgMiArCiBkamFuZ28vYXJjaGl2ZXMvbWFpbGFy Y2hpdmVzL2FwaS5weSAgICAgICAgICAgfCAxNzEgKysrKysrKysrKy0KIC4uLi9taWdyYXRpb25z LzAwMDdfYWRkX2lzX3BhdGNoX2Z1bmN0aW9uLnB5ICB8ICAyNCArKwogZGphbmdvL2FyY2hpdmVz L21haWxhcmNoaXZlcy9tb2RlbHMucHkgICAgICAgIHwgICA2ICsKIC4uLi90ZW1wbGF0ZXMvYWR2 YW5jZWRzZWFyY2guaHRtbCAgICAgICAgICAgICB8ICA4MSArKysrKysKIC4uLi9tYWlsYXJjaGl2 ZXMvdGVtcGxhdGVzL3RocmVhZHMuaHRtbCAgICAgICB8IDExNyArKysrKysrKwogZGphbmdvL2Fy Y2hpdmVzL21haWxhcmNoaXZlcy92aWV3cy5weSAgICAgICAgIHwgMjY2ICsrKysrKysrKysrKysr LS0tLQogZGphbmdvL2FyY2hpdmVzL3VybHMucHkgICAgICAgICAgICAgICAgICAgICAgIHwgICA1 ICsKIDggZmlsZXMgY2hhbmdlZCwgNjA5IGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRqYW5nby9hcmNoaXZlcy9tYWlsYXJjaGl2ZXMvbWlncmF0aW9u cy8wMDA3X2FkZF9pc19wYXRjaF9mdW5jdGlvbi5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRqYW5n by9hcmNoaXZlcy9tYWlsYXJjaGl2ZXMvdGVtcGxhdGVzL2FkdmFuY2Vkc2VhcmNoLmh0bWwKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkamFuZ28vYXJjaGl2ZXMvbWFpbGFyY2hpdmVzL3RlbXBsYXRlcy90 aHJlYWRzLmh0bWwKCmRpZmYgLS1naXQgYS9kamFuZ28vYXJjaGl2ZXMvZXhhbXBsZV9zZXR0aW5n c19sb2NhbC5weSBiL2RqYW5nby9hcmNoaXZlcy9leGFtcGxlX3NldHRpbmdzX2xvY2FsLnB5Cmlu ZGV4IDQ2NTdiNjIuLjZmZjI5ZmUgMTAwNjQ0Ci0tLSBhL2RqYW5nby9hcmNoaXZlcy9leGFtcGxl X3NldHRpbmdzX2xvY2FsLnB5CisrKyBiL2RqYW5nby9hcmNoaXZlcy9leGFtcGxlX3NldHRpbmdz X2xvY2FsLnB5CkBAIC0xNywzICsxNyw1IEBAIERBVEFCQVNFUyA9IHsKICMgQWxsb3cgQVBJIGFj Y2VzcyB0byBhbGwgY2xpZW50cwogUFVCTElDX0FSQ0hJVkVTID0gVHJ1ZQogQUxMT1dFRF9IT1NU UyA9IFsiKiJdCisKK1BHV0VCX0FERFJFU1MgPSAnaHR0cDovL2xvY2FsaG9zdDo4MDAxJwpkaWZm IC0tZ2l0IGEvZGphbmdvL2FyY2hpdmVzL21haWxhcmNoaXZlcy9hcGkucHkgYi9kamFuZ28vYXJj aGl2ZXMvbWFpbGFyY2hpdmVzL2FwaS5weQppbmRleCBhNmIyNTM2Li4xMzVmYzBjIDEwMDY0NAot LS0gYS9kamFuZ28vYXJjaGl2ZXMvbWFpbGFyY2hpdmVzL2FwaS5weQorKysgYi9kamFuZ28vYXJj aGl2ZXMvbWFpbGFyY2hpdmVzL2FwaS5weQpAQCAtMSwxMyArMSwxNSBAQAogZnJvbSBkamFuZ28u aHR0cCBpbXBvcnQgSHR0cFJlc3BvbnNlLCBIdHRwUmVzcG9uc2VGb3JiaWRkZW4KIGZyb20gZGph bmdvLnNob3J0Y3V0cyBpbXBvcnQgZ2V0X29iamVjdF9vcl80MDQKIGZyb20gZGphbmdvLmNvbmYg aW1wb3J0IHNldHRpbmdzCitmcm9tIGRqYW5nby5kYiBpbXBvcnQgY29ubmVjdGlvbgogaW1wb3J0 IGlwYWRkcmVzcwogCiBmcm9tIC52aWV3cyBpbXBvcnQgY2FjaGUKIGZyb20gLm1vZGVscyBpbXBv cnQgTWVzc2FnZSwgTGlzdAogCiBpbXBvcnQganNvbgotCitpbXBvcnQgcmVxdWVzdHMKK2Zyb20g ZGphbmdvLmh0dHAgaW1wb3J0IEpzb25SZXNwb25zZQogCiBkZWYgaXNfaG9zdF9hbGxvd2VkKHJl cXVlc3QpOgogICAgIGZvciBpcF9yYW5nZSBpbiBzZXR0aW5ncy5BUElfQ0xJRU5UUzoKQEAgLTEx Nyw5ICsxMTksMTc0IEBAIGRlZiB0aHJlYWQocmVxdWVzdCwgbXNnaWQpOgogICAgICAgICAgICAg J2RhdGUnOiBtLmRhdGUuaXNvZm9ybWF0KCksCiAgICAgICAgICAgICAnZnJvbSc6IG0ubWFpbGZy b20sCiAgICAgICAgICAgICAnc3Viaic6IG0uc3ViamVjdCwKLSAgICAgICAgICAgICdhdHRzJzog W3snaWQnOiBhLmlkLCAnbmFtZSc6IGEuZmlsZW5hbWV9IGZvciBhIGluIG0uYXR0YWNobWVudF9z ZXQuYWxsKCldLAorICAgICAgICAgICAgJ2F0dHMnOiBbeydpZCc6IGEuaWQsICduYW1lJzogYS5m aWxlbmFtZSwgJ2lzX3BhdGNoJzogYS5pc19wYXRjaCwgJ2NvbnRlbnRfdHlwZSc6IGEuY29udGVu dHR5cGV9CisgICAgICAgICAgICAgICAgICAgIGZvciBhIGluIG0uYXR0YWNobWVudF9zZXQuZXh0 cmEoc2VsZWN0PXsnaXNfcGF0Y2gnOiAnYXR0YWNobWVudHMuaXNfcGF0Y2gnfSkuYWxsKCldLAog ICAgICAgICB9CiAgICAgICAgIGZvciBtIGluIG1saXN0XSwgcmVzcCkKICAgICBpZiBzZXR0aW5n cy5QVUJMSUNfQVJDSElWRVM6CiAgICAgICAgIHJlc3BbJ3hrZXknXSA9ICdwZ2F0X3swfScuZm9y bWF0KG1zZy50aHJlYWRpZCkKICAgICByZXR1cm4gcmVzcAorCitkZWYgdGhyZWFkc193aXRoX3Bh dGNoZXMocmVxdWVzdCk6CisgICAgaWYgbm90IHNldHRpbmdzLlBVQkxJQ19BUkNISVZFUzoKKyAg ICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZUZvcmJpZGRlbignTm8gQVBJIGFjY2VzcyBvbiBwcml2 YXRlIGFyY2hpdmVzIGZvciBub3cnKQorCisgICAgd2l0aCBjb25uZWN0aW9uLmN1cnNvcigpIGFz IGN1cnNvcjoKKyAgICAgICAgY3Vyc29yLmV4ZWN1dGUoIiIiLS0gRmluZCB0aHJlYWRzIHdpdGgg cGF0Y2hlcworICAgICAgICAgICAgICAgIHNlbGVjdCAqCisgICAgICAgICAgICAgICAgZnJvbSAo CisgICAgICAgICAgICAgICAgICAgIHNlbGVjdCBkaXN0aW5jdCBvbiAodGhyZWFkaWQpCisgICAg ICAgICAgICAgICAgICAgICAgICBwbS50aHJlYWRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAg IHBtLmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgcG0uX2Zyb20sCisgICAgICAgICAgICAg ICAgICAgICAgICBwbS5zdWJqZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgcG0ubWVzc2Fn ZWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgbWEucGF0Y2hfY291bnQsCisgICAgICAgICAg ICAgICAgICAgICAgICB0bS5zdWJqZWN0IEFTIHRocmVhZF9zdWJqZWN0LAorICAgICAgICAgICAg ICAgICAgICAgICAgcG0uZGF0ZSBBUyBwYXRjaF9kYXRlLAorICAgICAgICAgICAgICAgICAgICAg ICAgdG0uZGF0ZSBBUyB0aHJlYWRfZGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtLm1l c3NhZ2VpZCBBUyB0aHJlYWRfbWVzc2FnZWlkCisgICAgICAgICAgICAgICAgICAgIGZyb20gbWVz c2FnZXMgQVMgcG0gLS1wYXRjaCBtZXNzYWdlCisgICAgICAgICAgICAgICAgICAgIC0tIHRocmVh ZGlkIGlzIGEgc2hhcmVkIHZhbHVlIGJ1dCBub3QgYSBmb3JlaWduIGtleSB0byBhbnl0aGluZwor ICAgICAgICAgICAgICAgICAgICAtLSBpbiBwYXJ0aWN1bGFyLCBpdCBpcyBub3QgYSBzZWxmLWpv aW4gb2YgbWVzc2FnZXMKKyAgICAgICAgICAgICAgICAgICAgam9pbiBsYXRlcmFsICgKKyAgICAg ICAgICAgICAgICAgICAgICAgc2VsZWN0ICoKKyAgICAgICAgICAgICAgICAgICAgICAgZnJvbSBt ZXNzYWdlcyBhcyBpbQorICAgICAgICAgICAgICAgICAgICAgICB3aGVyZSBpbS50aHJlYWRpZCA9 IHBtLnRocmVhZGlkCisgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyIGJ5IGltLmRhdGUgYXNj CisgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0IDEKKyAgICAgICAgICAgICAgICAgICAgKSBB UyB0bSBvbiB0cnVlIC0tdGhyZWFkIG1lc3NhZ2UgaXMgZmlyc3Qga25vd24gbWVzc2FnZQorICAg ICAgICAgICAgICAgICAgICBqb2luIGxhdGVyYWwgKAorICAgICAgICAgICAgICAgICAgICAgICBz ZWxlY3QgY291bnQoKikgYXMgcGF0Y2hfY291bnQKKyAgICAgICAgICAgICAgICAgICAgICAgZnJv bSBhdHRhY2htZW50cworICAgICAgICAgICAgICAgICAgICAgICB3aGVyZSBwbS5pZCA9IGF0dGFj aG1lbnRzLm1lc3NhZ2UgYW5kIGlzX3BhdGNoKGF0dGFjaG1lbnRzKQorICAgICAgICAgICAgICAg ICAgICApIGFzIG1hIG9uIHRydWUKKyAgICAgICAgICAgICAgICAgICAgd2hlcmUgcG0uaGFzX2F0 dGFjaG1lbnQgYW5kIG1hLnBhdGNoX2NvdW50ID4gMCBhbmQgcG0uaGlkZGVuc3RhdHVzIGlzIG51 bGwKKyAgICAgICAgICAgICAgICAgICAgb3JkZXIgYnkgcG0udGhyZWFkaWQsIHBtLmRhdGUgZGVz YworICAgICAgICAgICAgICAgICkgYXMgdGhyZWFkc193aXRoX3BhdGNoZXMKKyAgICAgICAgICAg ICAgICBvcmRlciBieSBwYXRjaF9kYXRlIERFU0MKKyAgICAgICAgICAgICAgICBsaW1pdCAxMDsK KyAgICAgICAgICAgICAgICAgICAgICAgIiIiKQorICAgICAgICByb3dzID0gY3Vyc29yLmZldGNo YWxsKCkKKworICAgICMgQ29udmVydCB0aGUgU1FMIHJlc3VsdCBpbnRvIHRocmVhZF9saXN0Cisg ICAgdGhyZWFkX2xpc3QgPSBbCisgICAgICAgIHsKKyAgICAgICAgICAgICJ0aHJlYWRfaWQiOiBz dHIocm93WzBdKSwKKyAgICAgICAgICAgICJtZXNzYWdlX2lkIjogcm93WzFdLAorICAgICAgICAg ICAgImZpbGVfY291bnQiOiByb3dbNV0sCisgICAgICAgICAgICAiZmlsZV92ZXJzaW9uIjogTm9u ZSwKKyAgICAgICAgICAgICJjb21taXRfc2hhIjogTm9uZSwKKyAgICAgICAgICAgICJwYXRjaF9p ZCI6IE5vbmUsCisgICAgICAgICAgICAic3ViamVjdF9saW5lIjogcm93WzNdLAorICAgICAgICAg ICAgInRocmVhZF9zdWJqZWN0Ijogcm93WzZdLAorICAgICAgICAgICAgInNlbmRlciI6IHJvd1sy XSwKKyAgICAgICAgICAgICJpZCI6IHJvd1sxXSwKKyAgICAgICAgICAgICJwYXRjaF9kYXRlIjog cm93WzddLnN0cmZ0aW1lKCclWS0lbS0lZCAlSDolTTolUycpIGlmIHJvd1s3XSBlbHNlIE5vbmUs CisgICAgICAgICAgICAidGhyZWFkX2RhdGUiOiByb3dbOF0uc3RyZnRpbWUoJyVZLSVtLSVkICVI OiVNOiVTJykgaWYgcm93WzhdIGVsc2UgTm9uZSwKKyAgICAgICAgICAgICJtZXNzYWdlX2NvZGUi OiByb3dbNF0sCisgICAgICAgICAgICAidGhyZWFkX2NvZGUiOiByb3dbOV0KKyAgICAgICAgfQor ICAgICAgICBmb3Igcm93IGluIHJvd3MKKyAgICBdCisKKyAgICByZXNwID0gSHR0cFJlc3BvbnNl KGNvbnRlbnRfdHlwZT0nYXBwbGljYXRpb24vanNvbicpCisgICAganNvbi5kdW1wKHRocmVhZF9s aXN0LCByZXNwKQorCisgICAgcmV0dXJuIHJlc3AKKworZGVmIGdldF9wYXRjaF9kYXRhX2FzX2pz b24odGhyZWFkaWQsIG1lc3NhZ2VpZCk6CisgICAgd2l0aCBjb25uZWN0aW9uLmN1cnNvcigpIGFz IGN1cnNvcjoKKyAgICAgICAgY3Vyc29yLmV4ZWN1dGUoIiIiLS0gRmluZCB0aHJlYWRzIHdpdGgg cGF0Y2hlcworICAgICAgICAgICAgICAgICAgICBzZWxlY3QKKyAgICAgICAgICAgICAgICAgICAg ICAgIHBtLnRocmVhZGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgcG0uaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICB0bS5tZXNzYWdlaWQgYXMgdGhyZWFkX21lc3NhZ2VpZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgIG1ybS5tb3N0cmVjZW50X21lc3NhZ2VpZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgIHBtLm1lc3NhZ2VpZCBhcyBwYXRjaF9tZXNzYWdlaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICBtYS5maWxlc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgcG0uX2Zy b20gYXMgcGF0Y2hfZnJvbV9hdXRob3IsCisgICAgICAgICAgICAgICAgICAgICAgICB0bS5kYXRl IGFzIHRocmVhZF9tZXNzYWdlZGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1ybS5tb3N0 cmVjZW50X21lc3NhZ2VkYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgcG0uZGF0ZSBhcyBw YXRjaF9tZXNzYWdlZGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtLnN1YmplY3QgYXMg dGhyZWFkX3N1YmplY3RfbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1ybS5tb3N0X3Jl Y2VudF9zdWJqZWN0X2xpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICBtcm0ubW9zdF9yZWNl bnRfZnJvbV9hdXRob3IsCisgICAgICAgICAgICAgICAgICAgICAgICB0bS5fZnJvbSBhcyB0aHJl YWRfZnJvbV9hdXRob3IKKyAgICAgICAgICAgICAgICAgICAgZnJvbSBtZXNzYWdlcyBBUyBwbSAt LXBhdGNoIG1lc3NhZ2UKKyAgICAgICAgICAgICAgICAgICAgam9pbiBsYXRlcmFsICgKKyAgICAg ICAgICAgICAgICAgICAgICAgc2VsZWN0ICoKKyAgICAgICAgICAgICAgICAgICAgICAgZnJvbSBt ZXNzYWdlcyBhcyBpbQorICAgICAgICAgICAgICAgICAgICAgICB3aGVyZSBpbS50aHJlYWRpZCA9 IHBtLnRocmVhZGlkCisgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyIGJ5IGltLmRhdGUgYXNj CisgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0IDEKKyAgICAgICAgICAgICAgICAgICAgKSBB UyB0bSBvbiB0cnVlIC0tdGhyZWFkIG1lc3NhZ2UgaXMgZmlyc3Qga25vd24gbWVzc2FnZQorICAg ICAgICAgICAgICAgICAgICBqb2luIGxhdGVyYWwgKAorICAgICAgICAgICAgICAgICAgICAgICAg c2VsZWN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgYXMgbW9zdHJlY2VudF9pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlaWQgYXMgbW9zdHJlY2VudF9tZXNz YWdlaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZSBhcyBtb3N0cmVjZW50X21l c3NhZ2VkYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmplY3QgYXMgbW9zdF9y ZWNlbnRfc3ViamVjdF9saW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9mcm9tIGFz IG1vc3RfcmVjZW50X2Zyb21fYXV0aG9yCisgICAgICAgICAgICAgICAgICAgICAgICBmcm9tIG1l c3NhZ2VzCisgICAgICAgICAgICAgICAgICAgICAgICB3aGVyZSB0aHJlYWRpZCA9IHBtLnRocmVh ZGlkCisgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyIGJ5IGRhdGUgZGVzYyBsaW1pdCAxCisg ICAgICAgICAgICAgICAgICAgICkgYXMgbXJtIG9uIHRydWUKKyAgICAgICAgICAgICAgICAgICAg am9pbiBsYXRlcmFsICgKKyAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0IGpzb25iX2FnZygK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNvbmJfYnVpbGRfb2JqZWN0KAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2F0dGFjaG1lbnRfaWQnLCBhLmlkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpbGVuYW1lJywgYS5maWxlbmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb250ZW50X3R5cGUnLCBh LmNvbnRlbnR0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzX3Bh dGNoJywgaXNfcGF0Y2goYSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBvcmRl ciBieSBhLmZpbGVuYW1lKSBhcyBmaWxlc2V0CisgICAgICAgICAgICAgICAgICAgICAgIGZyb20g YXR0YWNobWVudHMgYXMgYQorICAgICAgICAgICAgICAgICAgICAgICB3aGVyZSBwbS5pZCA9IGEu bWVzc2FnZQorICAgICAgICAgICAgICAgICAgICApIGFzIG1hIG9uIHRydWUKKyAgICAgICAgICAg ICAgICAgICAgd2hlcmUgcG0uaWQgPSAlczsKKyAgICAgICAgICAgICAgICAgICAgICAgIiIiLAor ICAgICAgICAgICAgICAgICAgICAgICAobWVzc2FnZWlkLCkpCisgICAgICAgIHJvdyA9IGN1cnNv ci5mZXRjaG9uZSgpCisKKyAgICAjIENvbnZlcnQgdGhlIFNRTCByZXN1bHQgaW50byBwYXRjaF9k YXRhCisgICAgcGF0Y2hfZGF0YSA9IHsKKyAgICAgICAgInRocmVhZF9pZCI6IHJvd1swXSwKKyAg ICAgICAgIm1lc3NhZ2VfaWQiOiByb3dbMV0sCisgICAgICAgICJ0aHJlYWRfbWVzc2FnZV9pZCI6 IHJvd1syXSwKKyAgICAgICAgIm1vc3RfcmVjZW50X21lc3NhZ2VfaWQiOiByb3dbM10sCisgICAg ICAgICJwYXRjaF9tZXNzYWdlX2lkIjogcm93WzRdLAorICAgICAgICAicGF0Y2hfZnJvbV9hdXRo b3IiOiByb3dbNl0sCisgICAgICAgICJmaWxlc2V0IjoganNvbi5sb2Fkcyhyb3dbNV0pIGlmIHJv d1s1XSBlbHNlIFtdLAorICAgICAgICAidGhyZWFkX21lc3NhZ2VfZGF0ZSI6IHJvd1s3XS5pc29m b3JtYXQoKSBpZiByb3dbN10gZWxzZSBOb25lLAorICAgICAgICAibW9zdF9yZWNlbnRfbWVzc2Fn ZV9kYXRlIjogcm93WzhdLmlzb2Zvcm1hdCgpIGlmIHJvd1s4XSBlbHNlIE5vbmUsCisgICAgICAg ICJwYXRjaF9tZXNzYWdlX2RhdGUiOiByb3dbOV0uaXNvZm9ybWF0KCkgaWYgcm93WzldIGVsc2Ug Tm9uZSwKKyAgICAgICAgInRocmVhZF9zdWJqZWN0X2xpbmUiOiByb3dbMTBdLAorICAgICAgICAi bW9zdF9yZWNlbnRfc3ViamVjdF9saW5lIjogcm93WzExXSwKKyAgICAgICAgIm1vc3RfcmVjZW50 X2Zyb21fYXV0aG9yIjogcm93WzEyXSwKKyAgICAgICAgInRocmVhZF9mcm9tX2F1dGhvciI6IHJv d1sxM10sCisgICAgfQorCisgICAgcmV0dXJuIGpzb24uZHVtcHMocGF0Y2hfZGF0YSkKKworZGVm IGNyZWF0ZV9jZmFwcF9wYXRjaChyZXF1ZXN0KToKKyAgICBpZiBub3Qgc2V0dGluZ3MuUFVCTElD X0FSQ0hJVkVTOgorICAgICAgICByZXR1cm4gSHR0cFJlc3BvbnNlRm9yYmlkZGVuKCdObyBBUEkg YWNjZXNzIG9uIHByaXZhdGUgYXJjaGl2ZXMgZm9yIG5vdycpCisKKyAgICBpZiByZXF1ZXN0Lm1l dGhvZCAhPSAnUE9TVCc6CisgICAgICAgIHJldHVybiBKc29uUmVzcG9uc2UoeydlcnJvcic6ICdJ bnZhbGlkIHJlcXVlc3QgbWV0aG9kJ30sIHN0YXR1cz00MDUpCisKKyAgICBib2R5X3N0cmluZyA9 IHJlcXVlc3QuYm9keS5kZWNvZGUoInV0Zi04IikKKyAgICBib2R5X2pzb24gPSBqc29uLmxvYWRz KGJvZHlfc3RyaW5nKQorCisgICAgdHJ5OgorICAgICAgICAjIEZvcndhcmQgdGhlIHJlcXVlc3Qg Ym9keSB0byB0aGUgZXh0ZXJuYWwgc2VydmljZQorICAgICAgICByZXNwb25zZSA9IHJlcXVlc3Rz LnBvc3QoCisgICAgICAgICAgICAnaHR0cDovL2xvY2FsaG9zdDo4MDA3L2FwaS90ZXN0L2NmYXBw L2NyZWF0ZV9wYXRjaCcsCisgICAgICAgICAgICBoZWFkZXJzPXsnQ29udGVudC1UeXBlJzogJ2Fw cGxpY2F0aW9uL2pzb24nfSwKKyAgICAgICAgICAgIGRhdGE9Z2V0X3BhdGNoX2RhdGFfYXNfanNv bihib2R5X2pzb25bInRocmVhZF9pZCJdLCBib2R5X2pzb25bIm1lc3NhZ2VfaWQiXSksCisgICAg ICAgICkKKworICAgICAgICAjIFJldHVybiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgZXh0ZXJuYWwg c2VydmljZQorICAgICAgICByZXR1cm4gSnNvblJlc3BvbnNlKHJlc3BvbnNlLmpzb24oKSwgc3Rh dHVzPXJlc3BvbnNlLnN0YXR1c19jb2RlKQorICAgIGV4Y2VwdCByZXF1ZXN0cy5SZXF1ZXN0RXhj ZXB0aW9uIGFzIGU6CisgICAgICAgIHJldHVybiBKc29uUmVzcG9uc2UoeydlcnJvcic6IGYnRmFp bGVkIHRvIHByb3h5IHJlcXVlc3Q6IHtzdHIoZSl9J30sIHN0YXR1cz01MDApCmRpZmYgLS1naXQg YS9kamFuZ28vYXJjaGl2ZXMvbWFpbGFyY2hpdmVzL21pZ3JhdGlvbnMvMDAwN19hZGRfaXNfcGF0 Y2hfZnVuY3Rpb24ucHkgYi9kamFuZ28vYXJjaGl2ZXMvbWFpbGFyY2hpdmVzL21pZ3JhdGlvbnMv MDAwN19hZGRfaXNfcGF0Y2hfZnVuY3Rpb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMTQyMDkyNgotLS0gL2Rldi9udWxsCisrKyBiL2RqYW5nby9hcmNoaXZlcy9tYWls YXJjaGl2ZXMvbWlncmF0aW9ucy8wMDA3X2FkZF9pc19wYXRjaF9mdW5jdGlvbi5weQpAQCAtMCww ICsxLDI0IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorIyBHZW5lcmF0ZWQgYnkgRGphbmdv IDEuMTEuMTggb24gMjAxOS0wNi0xOSAxOTowMgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1bmlj b2RlX2xpdGVyYWxzCisKK2Zyb20gZGphbmdvLmRiIGltcG9ydCBtaWdyYXRpb25zCisKK2NsYXNz IE1pZ3JhdGlvbihtaWdyYXRpb25zLk1pZ3JhdGlvbik6CisKKyAgICBkZXBlbmRlbmNpZXMgPSBb CisgICAgICAgICgnbWFpbGFyY2hpdmVzJywgJzAwMDZfYWx0ZXJfbWVzc2FnZV9wYXJlbnRpZCcp LAorICAgIF0KKworICAgIG9wZXJhdGlvbnMgPSBbCisgICAgICAgIG1pZ3JhdGlvbnMuUnVuU1FM KAorICAgICAgICAgICAgIiIiCitDUkVBVEUgRlVOQ1RJT04gaXNfcGF0Y2goYXR0IGF0dGFjaG1l bnRzKSBSRVRVUk5TIGJvb2xlYW4gTEFOR1VBR0Ugc3FsIElNTVVUQUJMRSBTVFJJQ1QKKyAgICBS RVRVUk4gKGF0dCkuZmlsZW5hbWUgfiAnXC4oZGlmZnxkaWZmXC5nenxwYXRjaHxwYXRjaFwuZ3p8 dGFyXC5nenx0Z3p8dGFyXC5iejJ8emlwKSQnOworOworICAgICAgICAgICAgIiIiLAorICAgICAg ICAgICAgcmV2ZXJzZV9zcWw9IiIiCitEUk9QIEZVTkNUSU9OIGlzX3BhdGNoKGF0dCBhdHRhY2ht ZW50cyk7CisgICAgICAgICAgICAiIiIsCisgICAgICAgICksCisgICAgXQpkaWZmIC0tZ2l0IGEv ZGphbmdvL2FyY2hpdmVzL21haWxhcmNoaXZlcy9tb2RlbHMucHkgYi9kamFuZ28vYXJjaGl2ZXMv bWFpbGFyY2hpdmVzL21vZGVscy5weQppbmRleCA0Zjc1YWNjLi5jMGZmNmVhIDEwMDY0NAotLS0g YS9kamFuZ28vYXJjaGl2ZXMvbWFpbGFyY2hpdmVzL21vZGVscy5weQorKysgYi9kamFuZ28vYXJj aGl2ZXMvbWFpbGFyY2hpdmVzL21vZGVscy5weQpAQCAtNzQsNiArNzQsOSBAQCBjbGFzcyBMaXN0 R3JvdXAobW9kZWxzLk1vZGVsKToKICAgICBncm91cG5hbWUgPSBtb2RlbHMuQ2hhckZpZWxkKG1h eF9sZW5ndGg9MjAwLCBudWxsPUZhbHNlLCBibGFuaz1GYWxzZSkKICAgICBzb3J0a2V5ID0gbW9k ZWxzLkludGVnZXJGaWVsZChudWxsPUZhbHNlKQogCisgICAgZGVmIF9fc3RyX18oc2VsZik6Cisg ICAgICAgIHJldHVybiBzZWxmLmdyb3VwbmFtZQorCiAgICAgY2xhc3MgTWV0YToKICAgICAgICAg ZGJfdGFibGUgPSAnbGlzdGdyb3VwcycKIApAQCAtOTMsNiArOTYsOSBAQCBjbGFzcyBMaXN0KG1v ZGVscy5Nb2RlbCk6CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5zaG9ydGRlc2MKICAgICAgICAg cmV0dXJuIHNlbGYubGlzdG5hbWUKIAorICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICBy ZXR1cm4gc2VsZi5saXN0bmFtZQorCiAgICAgY2xhc3MgTWV0YToKICAgICAgICAgZGJfdGFibGUg PSAnbGlzdHMnCiAKZGlmZiAtLWdpdCBhL2RqYW5nby9hcmNoaXZlcy9tYWlsYXJjaGl2ZXMvdGVt cGxhdGVzL2FkdmFuY2Vkc2VhcmNoLmh0bWwgYi9kamFuZ28vYXJjaGl2ZXMvbWFpbGFyY2hpdmVz L3RlbXBsYXRlcy9hZHZhbmNlZHNlYXJjaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjdmOWQ5YjEKLS0tIC9kZXYvbnVsbAorKysgYi9kamFuZ28vYXJjaGl2ZXMvbWFp bGFyY2hpdmVzL3RlbXBsYXRlcy9hZHZhbmNlZHNlYXJjaC5odG1sCkBAIC0wLDAgKzEsODEgQEAK K3slZXh0ZW5kcyAicGFnZS5odG1sIiV9Cit7JWJsb2NrIHRpdGxlJX1Qb3N0Z3JlU1FMIE1haWxp bmcgTGlzdHMgU2VhcmNoeyVlbmRibG9jayV9CisKK3slYmxvY2sgY29udGVudHMlfQorPGgxPlBv c3RncmVTUUwgTWFpbGluZyBMaXN0cyBTZWFyY2ggPGkgY2xhc3M9ImZhIGZhLXNlYXJjaCI+PC9p PjwvaDE+CisKKzxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249Ii9zZWFyY2gvIj4KKzxkaXYgY2xh c3M9InJvdyI+CisgICAgPGRpdiBjbGFzcz0iY29sLWxnLTYiPgorICAgIDxsYWJlbCBmb3I9InNl YXJjaC10ZXJtIj5TZWFyY2ggdGVybTo8L2xhYmVsPgorICAgIDxkaXYgY2xhc3M9ImlucHV0LWdy b3VwIj4KKyAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJzZWFyY2gtdGVybSIgbmFtZT0i cSIgdmFsdWU9Int7cXVlcnl9fSIgY2xhc3M9ImZvcm0tY29udHJvbCIgcGxhY2Vob2xkZXI9IlNl YXJjaCBmb3IuLi4iPgorICAgICAgICA8c3BhbiBjbGFzcz0iaW5wdXQtZ3JvdXAtYnRuIj4KKyAg ICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiB0eXBlPSJzdWJtaXQiPgorICAg ICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS1zZWFyY2giPjwvaT4KKyAgICAgICAgPC9idXR0b24+ CisgICAgICAgIDwvc3Bhbj4KKyAgICA8L2Rpdj48IS0tIC9pbnB1dC1ncm91cCAtLT4KKyAgICA8 ZGl2PgorICAgICAgICA8ZGl2PkV4YW1wbGVzIDIwMjUtMDQgKGVhcmx5KTwvZGl2PgorICAgICAg ICA8ZGl2PkNBTnF0Ri1wZ2I4N3FRcjk0ck1lV0tzQWEySkdCdzlZZ29fd0gyYnp2VlpwaTRNbmFp Z0BtYWlsLmdtYWlsLmNvbTwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImZvcm0t Z3JvdXAiPgorICAgICAgICA8bGFiZWwgZm9yPSJzZWFyY2gtbGlzdHMiPkxpc3Q6PC9sYWJlbD4K KyAgICAgICAgPHNlbGVjdCBpZD0ic2VhcmNoLWxpc3RzIiBjbGFzcz0iY3VzdG9tLXNlbGVjdCIg bmFtZT0ibCI+CisgICAgICAgIDxvcHRpb24gdmFsdWU9IiI+LS0gQWxsIGxpc3RzPC9vcHRpb24+ CisgICAgICAgIHslZm9yIGwgaW4gbGlzdHMgJX0KKyAgICAgICAgICAgIHslaWZjaGFuZ2VkIGwu Z3JvdXAlfQorICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ie3tsLmdyb3VwLm5lZ2lkfX0ieyVp ZiBsLmdyb3VwLm5lZ2lkID09IGxpc3RpZCV9IFNFTEVDVEVEeyVlbmRpZiV9Pi0tIHt7bC5ncm91 cH19PC9vcHRpb24+CisgICAgICAgICAgICB7JWVuZGlmY2hhbmdlZCV9CisgICAgICAgICAgICA8 b3B0aW9uIHZhbHVlPSJ7e2wubGlzdGlkfX0ieyVpZiBsLmxpc3RpZCA9PSBsaXN0aWQlfSBTRUxF Q1RFRHslZW5kaWYlfT57e2x9fTwvb3B0aW9uPgorICAgICAgICB7JWVuZGZvciV9CisgICAgICAg IDwvc2VsZWN0PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgorICAg ICAgICA8bGFiZWwgZm9yPSJzZWFyY2gtcG9zdGRhdGUiPkRhdGU6PC9sYWJlbD4KKyAgICAgICAg PHNlbGVjdCBpZD0ic2VhcmNoLXBvc3RkYXRlIiBjbGFzcz0iY3VzdG9tLXNlbGVjdCIgbmFtZT0i ZCI+eyVmb3IgZCBpbiBkYXRlcyV9CisgICAgICAgIDxvcHRpb24gdmFsdWU9Int7ZC52YWx9fSJ7 JWlmIGQudmFsID09IGRhdGV2YWwgJX0gU0VMRUNURUR7JWVuZGlmJX0+e3tkLnRleHR9fTwvb3B0 aW9uPnslZW5kZm9yJX0KKyAgICAgICAgPC9zZWxlY3Q+CisgICAgPC9kaXY+CisgICAgPGRpdiBj bGFzcz0iZm9ybS1ncm91cCI+CisgICAgICAgIDxsYWJlbCBmb3I9InNlYXJjaC1zb3J0YnkiPlNv cnQgQnk6PC9sYWJlbD4KKyAgICAgICAgPHNlbGVjdCBpZD0ic2VhcmNoLXNvcnRieSIgY2xhc3M9 ImN1c3RvbS1zZWxlY3QiIG5hbWU9InMiPnslZm9yIHMgaW4gc29ydG9wdGlvbnMlfQorICAgICAg ICA8b3B0aW9uIHZhbHVlPSJ7e3MudmFsfX0ieyVpZiBzLnNlbGVjdGVkJX0gU0VMRUNURUR7JWVu ZGlmJX0+e3tzLnRleHR9fTwvb3B0aW9uPnslZW5kZm9yJX0KKyAgICAgICAgPC9zZWxlY3Q+Cisg ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CisgICAgICAgIDxsYWJlbD4K KyAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InNlYXJjaC1yZWNlbnQiIG5h bWU9InIiIHZhbHVlPSIxIiB7JWlmIG9uZXBlcnRocmVhZCA9PSAnMSclfWNoZWNrZWR7JWVuZGlm JX0+CisgICAgICAgICAgICBMaW1pdCB0byBmaXJzdCBtZXNzYWdlIHBlciB0aHJlYWQKKyAgICAg ICAgPC9sYWJlbD4KKyAgICA8L2Rpdj4KKyAgICA8L2Rpdj48IS0tIC8uY29sLWxnLTYgLS0+Cis8 L2Rpdj48IS0tIC8ucm93IC0tPgorPC9mb3JtPgorCit7JWlmIHNlYXJjaF9lcnJvciAlfQorPGRp dj57e3NlYXJjaF9lcnJvcn19PC9kaXY+Cit7JWVsaWYgcXVlcnkgPT0gJycgJX0KKzxkaXY+Q2xp Y2sgdGhlIG1hZ25pZnlpbmcgZ2xhc3Mgb24gdGhlIHF1ZXJ5IGJveCB0byBzZWFyY2guPC9kaXY+ Cit7JWVsc2UlfQorICAgIDwhLS0gZG9jYm90IGdvZXMgaGVyZSAtLT4KKyAgICB7JWlmIGhpdGNv dW50ID09IDAgJX0KKyAgICAgICAgPHA+WW91ciBzZWFyY2ggZm9yIDxzdHJvbmc+e3txdWVyeX19 PC9zdHJvbmc+IHJldHVybmVkIG5vIGhpdHMuPC9wPgorICAgIHslZWxzZSV9CisgICAgICAgIDxo Mj5SZXN1bHRzIHt7Zmlyc3RoaXR9fS17e2xhc3RoaXR9fSBvZiB7JWlmIGhpdGNvdW50ID09IDEw MDAlfW1vcmUgdGhhbiAxMDAweyVlbHNlJX17e2hpdGNvdW50fX17JWVuZGlmJX0uPC9oMj4KKyAg ICAgICAgeyVpZiBwYWdlbGlua3MgJX1SZXN1bHQgcGFnZXM6IHt7cGFnZWxpbmtzfHNhZmV9fTxi ci8+PGJyLz57JWVuZGlmJX0KKyAgICAgICAgeyVmb3IgaGl0IGluIGhpdHMgJX0KKyAgICAgICAg PGRpdiBzdHlsZT0ibWFyZ2luOiAxZW0gMDsiPgorICAgICAgICAgICAgPGRpdj57e2Zvcmxvb3Au Y291bnRlcjB8YWRkOmZpcnN0aGl0fX0uIDxhIGhyZWY9Ii9tZXNzYWdlLWlkL3t7aGl0Lm1lc3Nh Z2VpZHx1cmxlbmNvZGV9fSI+e3toaXQuc3ViamVjdH19PC9hPiBbe3toaXQucmFua3xmbG9hdGZv cm1hdDoyfX1dPC9kaXY+CisgICAgICAgICAgICA8ZGl2PkZyb20ge3toaXQuYXV0aG9yfX0gb24g e3toaXQuZGF0ZX19LjwvZGl2PgorICAgICAgICAgICAgPGRpdj5UaHJlYWQjIHt7aGl0LnRocmVh ZGlkfX0gUmFuazoge3toaXQudGhyZWFkX3Jhbmt9fTwvZGl2PgorICAgICAgICAgICAgPGRpdj48 Yj57e2hpdC5hYnN0cmFjdF9mb3VuZH19PC9iPiB7e2hpdC5hYnN0cmFjdF9hZnRlcn19PC9kaXY+ CisgICAgICAgICAgICA8ZGl2PjxhIGhyZWY9Int7UEdXRUJfQUREUkVTU319L21lc3NhZ2UtaWQv e3toaXQubWVzc2FnZWlkfHVybGVuY29kZX19Ij57e1BHV0VCX0FERFJFU1N9fS9tZXNzYWdlLWlk L3t7aGl0Lm1lc3NhZ2VpZH19PC9hPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgeyVl bmRmb3IlfQorICAgICAgICB7JWlmIHBhZ2VsaW5rcyAlfVJlc3VsdCBwYWdlczoge3twYWdlbGlu a3N8c2FmZX19PGJyLz48YnIvPnslZW5kaWYlfQorICAgIHslZW5kaWYlfQoreyVlbmRpZiV9CisK K3slZW5kYmxvY2slfQpkaWZmIC0tZ2l0IGEvZGphbmdvL2FyY2hpdmVzL21haWxhcmNoaXZlcy90 ZW1wbGF0ZXMvdGhyZWFkcy5odG1sIGIvZGphbmdvL2FyY2hpdmVzL21haWxhcmNoaXZlcy90ZW1w bGF0ZXMvdGhyZWFkcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlk ZWYzOWMKLS0tIC9kZXYvbnVsbAorKysgYi9kamFuZ28vYXJjaGl2ZXMvbWFpbGFyY2hpdmVzL3Rl bXBsYXRlcy90aHJlYWRzLmh0bWwKQEAgLTAsMCArMSwxMTcgQEAKK3slZXh0ZW5kcyAicGFnZS5o dG1sIiV9Cit7JWJsb2NrIHRpdGxlJX1Qb3N0Z3JlU1FMIE1haWxpbmcgTGlzdCBBcmNoaXZlc3sl ZW5kYmxvY2slfQoreyVsb2FkIHBnZmlsdGVycyV9Cit7JWJsb2NrIGNvbnRlbnRzJX0KKzxoMj5U aHJlYWQgVmlld2VyPC9oMj4KKworPGJ1dHRvbiBvbmNsaWNrPSJsb2FkVGhyZWFkc1dpdGhQYXRj aGVzKCkiPkxvYWQgVGhyZWFkcyB3aXRoIFBhdGNoZXM8L2J1dHRvbj4KKworPHRhYmxlIGlkPSJ0 aHJlYWRzLXRhYmxlIiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsiPgorICAgIDx0 aGVhZD4KKyAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRoIHN0eWxlPSJib3JkZXI6IDFweCBz b2xpZCBibGFjazsgcGFkZGluZzogOHB4OyI+U3ViamVjdCBMaW5lPC90aD4KKyAgICAgICAgICAg IDx0aCBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IHBhZGRpbmc6IDhweDsiPlNlbmRl cjwvdGg+CisgICAgICAgICAgICA8dGggc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyBw YWRkaW5nOiA4cHg7Ij5UaHJlYWQgU3ViamVjdDwvdGg+CisgICAgICAgICAgICA8dGggc3R5bGU9 ImJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOiA4cHg7Ij5GaWxlIENvdW50PC90aD4K KyAgICAgICAgICAgIDx0aCBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IHBhZGRpbmc6 IDhweDsiPkZpbGUgVmVyc2lvbjwvdGg+CisgICAgICAgICAgICA8dGggc3R5bGU9ImJvcmRlcjog MXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOiA4cHg7Ij5Db21taXQgU0hBPC90aD4KKyAgICAgICAg ICAgIDx0aCBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IHBhZGRpbmc6IDhweDsiPlBh dGNoIElEPC90aD4KKyAgICAgICAgICAgIDx0aCBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgYmxh Y2s7IHBhZGRpbmc6IDhweDsiPlBhdGNoIERhdGU8L3RoPgorICAgICAgICAgICAgPHRoIHN0eWxl PSJib3JkZXI6IDFweCBzb2xpZCBibGFjazsgcGFkZGluZzogOHB4OyI+VGhyZWFkIERhdGU8L3Ro PgorICAgICAgICAgICAgPHRoIHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCBibGFjazsgcGFkZGlu ZzogOHB4OyI+SUQ8L3RoPgorICAgICAgICAgICAgPHRoIHN0eWxlPSJib3JkZXI6IDFweCBzb2xp ZCBibGFjazsgcGFkZGluZzogOHB4OyI+QWN0aW9uPC90aD4KKyAgICAgICAgPC90cj4KKyAgICA8 L3RoZWFkPgorICAgIDx0Ym9keT4KKyAgICAgICAgPCEtLSBSb3dzIHdpbGwgYmUgcG9wdWxhdGVk IGJ5IEphdmFTY3JpcHQgLS0+CisgICAgPC90Ym9keT4KKzwvdGFibGU+CisKKzxzY3JpcHQ+Cisg ICAgZnVuY3Rpb24gY3JlYXRlUGF0Y2goYnV0dG9uKSB7CisgICAgICAgIC8vIEZpbmQgdGhlIHJv dyBjb250YWluaW5nIHRoZSBidXR0b24KKyAgICAgICAgY29uc3Qgcm93ID0gYnV0dG9uLmNsb3Nl c3QoJ3RyJyk7CisKKyAgICAgICAgLy8gRXh0cmFjdCB0aHJlYWRfaWQgYW5kIG1lc3NhZ2VfaWQg ZnJvbSBkYXRhIGF0dHJpYnV0ZXMKKyAgICAgICAgY29uc3QgdGhyZWFkSWQgPSByb3cuZ2V0QXR0 cmlidXRlKCdkYXRhLXRocmVhZC1pZCcpOworICAgICAgICBjb25zdCBtZXNzYWdlSWQgPSByb3cu Z2V0QXR0cmlidXRlKCdkYXRhLW1lc3NhZ2UtaWQnKTsKKworICAgICAgICAvLyBIaWRlIHRoZSBi dXR0b24KKyAgICAgICAgYnV0dG9uLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisKKyAgICAgICAg Ly8gRmluZCB0aGUgY2VsbCB3aXRoIHRoZSBjbGFzcyAicGF0Y2gtaWQtY2VsbCIKKyAgICAgICAg Y29uc3QgcGF0Y2hJZENlbGwgPSByb3cucXVlcnlTZWxlY3RvcignLnBhdGNoLWlkLWNlbGwnKTsK KworICAgICAgICAvLyBQb3N0IHRoZSBkYXRhIHRvIHRoZSBBUEkKKyAgICAgICAgZmV0Y2goJy9h cGkvY3JlYXRlX2NmYXBwX3BhdGNoJywgeworICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsCisg ICAgICAgICAgICBoZWFkZXJzOiB7CisgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdh cHBsaWNhdGlvbi9qc29uJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBib2R5OiBKU09O LnN0cmluZ2lmeSh7IHRocmVhZF9pZDogdGhyZWFkSWQsIG1lc3NhZ2VfaWQ6IG1lc3NhZ2VJZCB9 KSwKKyAgICAgICAgfSkKKyAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4geworICAgICAgICAgICAg aWYgKCFyZXNwb25zZS5vaykgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTmV0 d29yayByZXNwb25zZSB3YXMgbm90IG9rJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBy ZXR1cm4gcmVzcG9uc2UuanNvbigpOworICAgICAgICB9KQorICAgICAgICAudGhlbihkYXRhID0+ IHsKKyAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgcGF0Y2hJZENlbGwgd2l0aCB0aGUgcmV0dXJu ZWQgcGF0Y2ggSUQKKyAgICAgICAgICAgIHBhdGNoSWRDZWxsLnRleHRDb250ZW50ID0gZGF0YS5w YXRjaF9pZCB8fCAnTi9BJzsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKCdQYXRjaCBjcmVhdGVk IHN1Y2Nlc3NmdWxseTonLCBkYXRhKTsKKyAgICAgICAgfSkKKyAgICAgICAgLmNhdGNoKGVycm9y ID0+IHsKKyAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNyZWF0aW5nIHBhdGNoOics IGVycm9yKTsKKyAgICAgICAgICAgIC8vIFNob3cgdGhlIGJ1dHRvbiBhZ2FpbiBpZiB0aGVyZSB3 YXMgYW4gZXJyb3IKKyAgICAgICAgICAgIGJ1dHRvbi5zdHlsZS5kaXNwbGF5ID0gJ2lubGluZSc7 CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGxvYWRUaHJlYWRzV2l0aFBhdGNo ZXMoKSB7CisgICAgICAgIGZldGNoKCcvYXBpL3RocmVhZHNfd2l0aF9wYXRjaGVzLycpCisgICAg ICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25z ZS5vaykgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05ldHdvcmsgcmVz cG9uc2Ugd2FzIG5vdCBvaycpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBy ZXR1cm4gcmVzcG9uc2UuanNvbigpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVu KGRhdGEgPT4geworICAgICAgICAgICAgICAgIGNvbnN0IHRhYmxlQm9keSA9IGRvY3VtZW50LnF1 ZXJ5U2VsZWN0b3IoJyN0aHJlYWRzLXRhYmxlIHRib2R5Jyk7CisgICAgICAgICAgICAgICAgdGFi bGVCb2R5LmlubmVySFRNTCA9ICcnOyAvLyBDbGVhciBleGlzdGluZyByb3dzCisKKyAgICAgICAg ICAgICAgICBkYXRhLmZvckVhY2godGhyZWFkID0+IHsKKyAgICAgICAgICAgICAgICAgICAgY29u c3Qgcm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKKyAgICAgICAgICAgICAgICAg ICAgcm93LnNldEF0dHJpYnV0ZSgnZGF0YS10aHJlYWQtaWQnLCB0aHJlYWQudGhyZWFkX2lkKTsK KyAgICAgICAgICAgICAgICAgICAgcm93LnNldEF0dHJpYnV0ZSgnZGF0YS1tZXNzYWdlLWlkJywg dGhyZWFkLm1lc3NhZ2VfaWQpOworCisgICAgICAgICAgICAgICAgICAgIHJvdy5pbm5lckhUTUwg PSBgCisgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlk IGJsYWNrOyBwYWRkaW5nOiA4cHg7Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBo cmVmPSIvbWVzc2FnZS1pZC8ke3RocmVhZC5tZXNzYWdlX2NvZGV9Ij4ke3RocmVhZC5zdWJqZWN0 X2xpbmV9PC9hPgorICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAg ICAgICAgICAgIDx0ZCBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IHBhZGRpbmc6IDhw eDsiPiR7dGhyZWFkLnNlbmRlcn08L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0 eWxlPSJib3JkZXI6IDFweCBzb2xpZCBibGFjazsgcGFkZGluZzogOHB4OyI+CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL21lc3NhZ2UtaWQvJHt0aHJlYWQudGhyZWFkX2Nv ZGV9Ij4ke3RocmVhZC50aHJlYWRfc3ViamVjdH08L2E+CisgICAgICAgICAgICAgICAgICAgICAg ICA8L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPSJib3JkZXI6IDFweCBz b2xpZCBibGFjazsgcGFkZGluZzogOHB4OyI+JHt0aHJlYWQuZmlsZV9jb3VudCB8fCAnLSd9PC90 ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQg YmxhY2s7IHBhZGRpbmc6IDhweDsiPiR7dGhyZWFkLmZpbGVfdmVyc2lvbiB8fCAnLSd9PC90ZD4K KyAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgYmxh Y2s7IHBhZGRpbmc6IDhweDsiPiR7dGhyZWFkLmNvbW1pdF9zaGEgfHwgJy0nfTwvdGQ+CisgICAg ICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyBw YWRkaW5nOiA4cHg7IiBjbGFzcz0icGF0Y2gtaWQtY2VsbCI+JHt0aHJlYWQucGF0Y2hfaWQgfHwg Jy0nfTwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9ImJvcmRlcjogMXB4 IHNvbGlkIGJsYWNrOyBwYWRkaW5nOiA4cHg7Ij4ke3RocmVhZC5wYXRjaF9kYXRlIHx8ICctJ308 L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPSJib3JkZXI6IDFweCBzb2xp ZCBibGFjazsgcGFkZGluZzogOHB4OyI+JHt0aHJlYWQudGhyZWFkX2RhdGUgfHwgJy0nfTwvdGQ+ CisgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkIGJs YWNrOyBwYWRkaW5nOiA4cHg7Ij4ke3RocmVhZC5pZCB8fCAnLSd9PC90ZD4KKyAgICAgICAgICAg ICAgICAgICAgICAgIDx0ZCBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IHBhZGRpbmc6 IDhweDsiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7IXRocmVhZC5jb21taXRfc2hh ICYmICF0aHJlYWQucGF0Y2hfaWQgPyAnPGJ1dHRvbiBvbmNsaWNrPSJjcmVhdGVQYXRjaCh0aGlz KSI+Q3JlYXRlIFBhdGNoPC9idXR0b24+JyA6ICcnfQorICAgICAgICAgICAgICAgICAgICAgICAg PC90ZD4KKyAgICAgICAgICAgICAgICAgICAgYDsKKworICAgICAgICAgICAgICAgICAgICB0YWJs ZUJvZHkuYXBwZW5kQ2hpbGQocm93KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg IH0pCisgICAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4geworICAgICAgICAgICAgICAgIGNvbnNv bGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIHRocmVhZHMgd2l0aCBwYXRjaGVzOicsIGVycm9yKTsK KyAgICAgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorCit7JWVuZGJsb2NrJX0KZGlmZiAt LWdpdCBhL2RqYW5nby9hcmNoaXZlcy9tYWlsYXJjaGl2ZXMvdmlld3MucHkgYi9kamFuZ28vYXJj aGl2ZXMvbWFpbGFyY2hpdmVzL3ZpZXdzLnB5CmluZGV4IDY5MTcyYmQuLjY0N2Y1NjEgMTAwNjQ0 Ci0tLSBhL2RqYW5nby9hcmNoaXZlcy9tYWlsYXJjaGl2ZXMvdmlld3MucHkKKysrIGIvZGphbmdv L2FyY2hpdmVzL21haWxhcmNoaXZlcy92aWV3cy5weQpAQCAtNzA2LDY3ICs3MDYsMzIgQEAgZGVm IHJlc2VuZF9jb21wbGV0ZShyZXF1ZXN0LCBtZXNzYWdlaWQpOgogICAgIH0pCiAKIAotQGNzcmZf ZXhlbXB0Ci1kZWYgc2VhcmNoKHJlcXVlc3QpOgotICAgIGlmIG5vdCBzZXR0aW5ncy5QVUJMSUNf QVJDSElWRVM6Ci0gICAgICAgICMgV2UgZG9uJ3Qgc3VwcG9ydCBzZWFyY2hpbmcgb2Ygbm9uLXB1 YmxpYyBhcmNoaXZlcyBhdCBhbGwgYXQgdGhpcyBwb2ludC4KLSAgICAgICAgIyBYWFg6IHJvb20g Zm9yIGZ1dHVyZSBpbXByb3ZlbWVudAotICAgICAgICByZXR1cm4gSHR0cFJlc3BvbnNlRm9yYmlk ZGVuKCdOb3QgcHVibGljIGFyY2hpdmVzJykKIAotICAgICMgT25seSBjZXJ0YWluIGhvc3RzIGFy ZSBhbGxvd2VkIHRvIGNhbGwgdGhlIHNlYXJjaCBBUEkKLSAgICBhbGxvd2VkID0gRmFsc2UKLSAg ICBmb3IgaXBfcmFuZ2UgaW4gc2V0dGluZ3MuU0VBUkNIX0NMSUVOVFM6Ci0gICAgICAgIGlmIGlw YWRkcmVzcy5pcF9hZGRyZXNzKHJlcXVlc3QuTUVUQVsnUkVNT1RFX0FERFInXSkgaW4gaXBhZGRy ZXNzLmlwX25ldHdvcmsoaXBfcmFuZ2UpOgotICAgICAgICAgICAgYWxsb3dlZCA9IFRydWUKLSAg ICAgICAgICAgIGJyZWFrCi0gICAgaWYgbm90IGFsbG93ZWQ6Ci0gICAgICAgIHJldHVybiBIdHRw UmVzcG9uc2VGb3JiaWRkZW4oJ0ludmFsaWQgaG9zdCcpCitkZWYgcGVyZm9ybV9zZWFyY2gocXVl cnksIGRhdGVjb2RlLCBzb3J0Y29kZSwgb25lcGVydGhyZWFkPUZhbHNlLCBsaXN0aWQ9Tm9uZSwg bGlzdG5hbWVzPU5vbmUsIHN0cmVhbWVyPU5vbmUpOgorICAgIGlmIG5vdCBxdWVyeSBhbmQgbm90 IHN0cmVhbWVyOgorICAgICAgICByZXR1cm4gW10KIAotICAgIGN1cnMgPSBjb25uZWN0aW9uLmN1 cnNvcigpCisgICAgaWYgbm90IHF1ZXJ5IGFuZCBzdHJlYW1lcjoKKyAgICAgICAgcmV0dXJuIEZh bHNlCiAKLSAgICAjIFBlcmZvcm0gYSBzZWFyY2ggb2YgdGhlIGFyY2hpdmVzIGFuZCByZXR1cm4g YSBKU09OIGRvY3VtZW50LgotICAgICMgRXhwZWN0cyB0aGUgZm9sbG93aW5nIChvcHRpb25hbCkg UE9TVCBwYXJhbWV0ZXJzOgotICAgICMgcSA9IHF1ZXJ5IHRvIHNlYXJjaCBmb3IKLSAgICAjIGxu ID0gY29tbWEgc2VwYXJhdGUgbGlzdCBvZiBsaXN0bmFtZXMgdG8gc2VhcmNoIGluCi0gICAgIyBk ID0gbnVtYmVyIG9mIGRheXMgYmFjayB0byBzZWFyY2ggZm9yLCBvciAtMSAob3Igbm90IHNwZWNp ZmllZCkKLSAgICAjICAgICAgdG8gc2VhcmNoIHRoZSBmdWxsIGFyY2hpdmVzCi0gICAgIyBzID0g c29ydCByZXN1bHRzIGJ5IFsncic9cmFuaywgJ2QnPWRhdGUsICdpJz1pbnZlcnNlIGRhdGVdCi0g ICAgaWYgbm90IHJlcXVlc3QubWV0aG9kID09ICdQT1NUJzoKLSAgICAgICAgcmFpc2UgSHR0cDQw NCgnSSBvbmx5IHJlc3BvbmQgdG8gUE9TVCcpCisgICAgaWYgbGlzdGlkIGFuZCBsaXN0bmFtZXM6 CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ2Fubm90IHNwZWNpZnkgYm90aCBsaXN0aWQgYW5k IGxpc3RuYW1lIikKIAotICAgIGlmICdxJyBub3QgaW4gcmVxdWVzdC5QT1NUOgotICAgICAgICBy YWlzZSBIdHRwNDA0KCdObyBzZWFyY2ggcXVlcnkgc3BlY2lmaWVkJykKLSAgICBxdWVyeSA9IHJl cXVlc3QuUE9TVFsncSddCisgICAgY3VycyA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKIAotICAgIGlm ICdsbicgaW4gcmVxdWVzdC5QT1NUOgorICAgIGxpc3RzID0gTm9uZQorICAgIGlmIGxpc3RuYW1l czoKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgY3Vycy5leGVjdXRlKCJTRUxFQ1QgbGlzdGlk IEZST00gbGlzdHMgV0hFUkUgbGlzdG5hbWU9QU5ZKCUobmFtZXMpcykiLCB7Ci0gICAgICAgICAg ICAgICAgJ25hbWVzJzogcmVxdWVzdC5QT1NUWydsbiddLnNwbGl0KCcsJyksCisgICAgICAgICAg ICAgICAgJ25hbWVzJzogbGlzdG5hbWVzLnNwbGl0KCcsJyksCiAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgbGlzdHMgPSBbeCBmb3IgeCwgaW4gY3Vycy5mZXRjaGFsbCgpXQogICAgICAgICBl eGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAgIyBJZiBmYWlsaW5nIHRvIHBhcnNlIGxpc3Qg b2YgbGlzdHMsIGp1c3Qgc2VhcmNoIGFsbAogICAgICAgICAgICAgbGlzdHMgPSBOb25lCi0gICAg ZWxzZToKLSAgICAgICAgbGlzdHMgPSBOb25lCiAKLSAgICBpZiAnZCcgaW4gcmVxdWVzdC5QT1NU OgotICAgICAgICBkYXlzID0gaW50KHJlcXVlc3QuUE9TVFsnZCddKQotICAgICAgICBpZiBkYXlz IDwgMSBvciBkYXlzID4gMzY1OgotICAgICAgICAgICAgZmlyc3RkYXRlID0gTm9uZQotICAgICAg ICBlbHNlOgotICAgICAgICAgICAgZmlyc3RkYXRlID0gZGF0ZXRpbWUubm93KCkgLSB0aW1lZGVs dGEoZGF5cz1kYXlzKQotICAgIGVsc2U6Ci0gICAgICAgIGZpcnN0ZGF0ZSA9IE5vbmUKLQotICAg IGlmICdzJyBpbiByZXF1ZXN0LlBPU1Q6Ci0gICAgICAgIGxpc3Rfc29ydCA9IHJlcXVlc3QuUE9T VFsncyddCi0gICAgICAgIGlmIGxpc3Rfc29ydCBub3QgaW4gKCdkJywgJ3InLCAnaScpOgotICAg ICAgICAgICAgbGlzdF9zdG9ydCA9ICdyJwotICAgIGVsc2U6Ci0gICAgICAgIGxpc3Rfc29ydCA9 ICdyJwotCi0gICAgIyBPaywgd2UgaGF2ZSBhbGwgd2UgbmVlZCB0byBkbyB0aGUgc2VhcmNoCisg ICAgaWYgbGlzdGlkOgorICAgICAgICBsaXN0cyA9IFtsaXN0aWRdCiAKICAgICBpZiBxdWVyeS5m aW5kKCdAJykgPiAwOgogICAgICAgICBjbGVhbmVkX2lkID0gcXVlcnkuc3RyaXAoKS5yZW1vdmVw cmVmaXgoJzwnKS5yZW1vdmVzdWZmaXgoJz4nKQpAQCAtNzc4LDE1ICs3NDMsNTkgQEAgZGVmIHNl YXJjaChyZXF1ZXN0KToKICAgICAgICAgfSkKICAgICAgICAgYSA9IGN1cnMuZmV0Y2hhbGwoKQog ICAgICAgICBpZiBsZW4oYSkgPT0gMToKLSAgICAgICAgICAgICMgWXVwLCB0aGlzIHdhcyBhIG1l c3NhZ2VpZAotICAgICAgICAgICAgcmVzcCA9IEh0dHBSZXNwb25zZShjb250ZW50X3R5cGU9J2Fw cGxpY2F0aW9uL2pzb24nKQotCi0gICAgICAgICAgICBqc29uLmR1bXAoeydtZXNzYWdlaWRtYXRj aCc6IDF9LCByZXNwKQotICAgICAgICAgICAgcmV0dXJuIHJlc3AKKyAgICAgICAgICAgIGlmIHN0 cmVhbWVyOgorICAgICAgICAgICAgICAgIGpzb24uZHVtcCh7J21lc3NhZ2VpZG1hdGNoJzogMX0s IHN0cmVhbWVyKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gW3sn bWVzc2FnZWlkbWF0Y2gnOiBjbGVhbmVkX2lkfV0KICAgICAgICAgIyBJZiBub3QgZm91bmQsIGZh bGwgdGhyb3VnaCB0byBhIHJlZ3VsYXIgc2VhcmNoCiAKKyAgICBmaXJzdGRhdGUgPSBOb25lCisg ICAgaWYgZGF0ZWNvZGU6CisgICAgICAgIGRheXMgPSBpbnQoZGF0ZWNvZGUpCisgICAgICAgIGlm IGRheXMgPj0gMSBhbmQgZGF5cyA8PSAzNjU6CisgICAgICAgICAgICBmaXJzdGRhdGUgPSBkYXRl dGltZS5ub3coKSAtIHRpbWVkZWx0YShkYXlzPWRheXMpCisKKyAgICBsaXN0X3NvcnQgPSAnaScK KyAgICBpZiBzb3J0Y29kZToKKyAgICAgICAgaWYgc29ydGNvZGUgaW4gKCdkJywgJ3InLCAnaScp OgorICAgICAgICAgICAgbGlzdF9zb3J0ID0gc29ydGNvZGUKKwogICAgIGN1cnMuZXhlY3V0ZSgi U0VUIGdpbl9mdXp6eV9zZWFyY2hfbGltaXQ9MTAwMDAiKQotICAgIHFzdHIgPSAiU0VMRUNUIG1l c3NhZ2VpZCwgZGF0ZSwgc3ViamVjdCwgX2Zyb20sIHRzX3JhbmtfY2QoZnRpLCBwbGFpbnRvX3Rz cXVlcnkoJ3B1YmxpYy5wZycsICUocSlzKSksIHRzX2hlYWRsaW5lKGJvZHl0eHQsIHBsYWludG9f dHNxdWVyeSgncHVibGljLnBnJywgJShxKXMpLCdTdGFydFNlbD1cIltbW1tbW1wiLFN0b3BTZWw9 XCJdXV1dXV1cIicpIEZST00gbWVzc2FnZXMgbSBXSEVSRSBmdGkgQEAgcGxhaW50b190c3F1ZXJ5 KCdwdWJsaWMucGcnLCAlKHEpcykiCisKKyAgICBxc3RyID0gIiIiLS0gU2VhcmNoIGZvciBtZXNz YWdlcyBtYXRjaGluZyBxdWVyeSAtLQorU0VMRUNUICogRlJPTSAoCitTRUxFQ1QKKyAgICAqLAor IiIiCisgICAgcXN0ciArPSAiICAgIHJvd19udW1iZXIoKSBvdmVyIChwYXJ0aXRpb24gYnkgdGhy ZWFkaWQgb3JkZXIgYnkgIgorICAgIGlmIGxpc3Rfc29ydCA9PSAncic6CisgICAgICAgIHFzdHIg Kz0gInRzX3JhbmtfY2QgREVTQyIKKyAgICBlbGlmIGxpc3Rfc29ydCA9PSAnZCc6CisgICAgICAg IHFzdHIgKz0gImRhdGUgREVTQyIKKyAgICBlbHNlOgorICAgICAgICBxc3RyICs9ICJkYXRlIEFT QyIKKyAgICBxc3RyICs9ICIpIEFTIHRocmVhZF9yYW5rIgorCisgICAgcXN0ciArPSIiIgorRlJP TQorKAorICAgIFNFTEVDVAorICAgICAgICBtZXNzYWdlaWQsCisgICAgICAgIHRocmVhZGlkLAor ICAgICAgICBkYXRlLAorICAgICAgICBzdWJqZWN0LAorICAgICAgICBfZnJvbSwKKyAgICAgICAg dHNfcmFua19jZChmdGksIHBsYWludG9fdHNxdWVyeSgncHVibGljLnBnJywgJShxKXMpKSwKKyAg ICAgICAgdHNfaGVhZGxpbmUoCisgICAgICAgICAgICBib2R5dHh0LAorICAgICAgICAgICAgcGxh aW50b190c3F1ZXJ5KCdwdWJsaWMucGcnLCAlKHEpcyksCisgICAgICAgICAgICAnU3RhcnRTZWw9 XCJbW1tbW1tcIiwKKyAgICAgICAgICAgIFN0b3BTZWw9XCJdXV1dXV1cIicKKyAgICAgICAgKQor ICAgIEZST00gbWVzc2FnZXMgbQorICAgIFdIRVJFIGZ0aSBAQCBwbGFpbnRvX3RzcXVlcnkoJ3B1 YmxpYy5wZycsICUocSlzKQorIiIiCisKICAgICBwYXJhbXMgPSB7CiAgICAgICAgICdxJzogcXVl cnksCiAgICAgfQpAQCAtNzk2LDE4ICs4MDUsMjIgQEAgZGVmIHNlYXJjaChyZXF1ZXN0KToKICAg ICBpZiBmaXJzdGRhdGU6CiAgICAgICAgIHFzdHIgKz0gIiBBTkQgbS5kYXRlID4gJShkYXRlKXMi CiAgICAgICAgIHBhcmFtc1snZGF0ZSddID0gZmlyc3RkYXRlCisKKyAgICBxc3RyICs9ICIpIEFT IGZpbmRpbmcgKSBBUyByYW5raW5nIgorCisgICAgaWYgb25lcGVydGhyZWFkOgorICAgICAgICBx c3RyICs9ICIgV0hFUkUgdGhyZWFkX3JhbmsgPSAxIgorCiAgICAgaWYgbGlzdF9zb3J0ID09ICdy JzoKLSAgICAgICAgcXN0ciArPSAiIE9SREVSIEJZIHRzX3JhbmtfY2QoZnRpLCBwbGFpbnRvX3Rz cXVlcnkoJShxKXMpKSBERVNDIExJTUlUIDEwMDAiCisgICAgICAgIHFzdHIgKz0gIiBPUkRFUiBC WSB0c19yYW5rX2NkIERFU0MgTElNSVQgMTAwMCIKICAgICBlbGlmIGxpc3Rfc29ydCA9PSAnZCc6 CiAgICAgICAgIHFzdHIgKz0gIiBPUkRFUiBCWSBkYXRlIERFU0MgTElNSVQgMTAwMCIKICAgICBl bHNlOgogICAgICAgICBxc3RyICs9ICIgT1JERVIgQlkgZGF0ZSBBU0MgTElNSVQgMTAwMCIKIAog ICAgIGN1cnMuZXhlY3V0ZShxc3RyLCBwYXJhbXMpCi0KLSAgICByZXNwID0gSHR0cFJlc3BvbnNl KGNvbnRlbnRfdHlwZT0nYXBwbGljYXRpb24vanNvbicpCi0KLSAgICBqc29uLmR1bXAoWworICAg IGlmIHN0cmVhbWVyOgorICAgICAgICBqc29uLmR1bXAoWwogICAgICAgICB7CiAgICAgICAgICAg ICAnbSc6IG1lc3NhZ2VpZCwKICAgICAgICAgICAgICdkJzogZGF0ZS5pc29mb3JtYXQoKSwKQEAg LTgxNSwxMCArODI4LDE0MSBAQCBkZWYgc2VhcmNoKHJlcXVlc3QpOgogICAgICAgICAgICAgJ2Yn OiBtYWlsZnJvbSwKICAgICAgICAgICAgICdyJzogcmFuaywKICAgICAgICAgICAgICdhJzogYWJz dHJhY3QucmVwbGFjZSgiW1tbW1tbIiwgIjxiPiIpLnJlcGxhY2UoIl1dXV1dXSIsICI8L2I+Iiks Ci0gICAgICAgIH0gZm9yIG1lc3NhZ2VpZCwgZGF0ZSwgc3ViamVjdCwgbWFpbGZyb20sIHJhbmss IGFic3RyYWN0IGluIGN1cnMuZmV0Y2hhbGwoKV0sCi0gICAgICAgIHJlc3ApCisgICAgICAgIH0g Zm9yIG1lc3NhZ2VpZCwgdGhyZWFkaWQsIGRhdGUsIHN1YmplY3QsIG1haWxmcm9tLCByYW5rLCBh YnN0cmFjdCwgdGhyZWFkX3JhbmsgaW4gY3Vycy5mZXRjaGFsbCgpXSwKKyAgICAgICAgc3RyZWFt ZXIpCisgICAgICAgIHJldHVybiBUcnVlCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIFsKKyAg ICAgICAgeworICAgICAgICAgICAgJ20nOiBtZXNzYWdlaWQsCisgICAgICAgICAgICAndCc6IHRo cmVhZGlkLAorICAgICAgICAgICAgJ3RyJzogdGhyZWFkX3JhbmssCisgICAgICAgICAgICAnZCc6 IGRhdGUuaXNvZm9ybWF0KCksCisgICAgICAgICAgICAncyc6IHN1YmplY3QsCisgICAgICAgICAg ICAnZic6IG1haWxmcm9tLAorICAgICAgICAgICAgJ3InOiByYW5rLAorICAgICAgICAgICAgJ2En OiBhYnN0cmFjdC5yZXBsYWNlKCJbW1tbW1siLCAiPGI+IikucmVwbGFjZSgiXV1dXV1dIiwgIjwv Yj4iKSwKKyAgICAgICAgICAgICdhX2ZvdW5kJzogYWJzdHJhY3RbYWJzdHJhY3QuZmluZCgiW1tb W1tbIikgKyA2OmFic3RyYWN0LmZpbmQoIl1dXV1dXSIpXSwKKyAgICAgICAgICAgICdhX2FmdGVy JzogYWJzdHJhY3QucmVwbGFjZShhYnN0cmFjdFthYnN0cmFjdC5maW5kKCJbW1tbW1siKTphYnN0 cmFjdC5maW5kKCJdXV1dXV0iKSArIDZdLCAiIikucmVwbGFjZSgiW1tbW1tbIiwgIiIpLnJlcGxh Y2UoIl1dXV1dXSIsICIiKSwKKyAgICAgICAgfSBmb3IgbWVzc2FnZWlkLCB0aHJlYWRpZCwgZGF0 ZSwgc3ViamVjdCwgbWFpbGZyb20sIHJhbmssIGFic3RyYWN0LCB0aHJlYWRfcmFuayBpbiBjdXJz LmZldGNoYWxsKCldCisKKworZGVmIGFkdmFuY2VkX3NlYXJjaChyZXF1ZXN0KToKKyAgICAiIiIK KyAgICAncGFnZWxpbmtzJzogIiZuYnNwOyIuam9pbigKKyAgICBnZW5lcmF0ZV9wYWdlbGlua3Mo cGFnZW51bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICh0b3RhbGhpdHMgLSAxKSAvLyBoaXRz cGVycGFnZSArIDEsCisgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeXN0cikpLAorICAgICIi IgorICAgIHF1ZXJ5dmFsID0gcmVxdWVzdC5HRVQuZ2V0KCdxJywgTm9uZSkKKyAgICBzb3J0dmFs ID0gcmVxdWVzdC5HRVQuZ2V0KCdzJywgJ2QnKQorICAgIGRhdGV2YWwgPSByZXF1ZXN0LkdFVC5n ZXQoJ2QnLCAnLTEnKQorICAgIG9uZXBlcnRocmVhZCA9IHJlcXVlc3QuR0VULmdldCgncicsICcw JykKKworICAgIGxpc3RpZCA9IDEKKworICAgIGhpdHMgPSBwZXJmb3JtX3NlYXJjaChxdWVyeXZh bCwgZGF0ZXZhbCwgc29ydHZhbCwgb25lcGVydGhyZWFkPT0nMScsIGxpc3RpZD1saXN0aWQpCisK KyAgICB0b3RhbGhpdHMgPSBsZW4oaGl0cykKKworICAgIGlmIHRvdGFsaGl0cyA9PSAxOgorICAg ICAgICAjIG1pZ2h0IGJlIGEgbWVzc2FnZWlkIG1hdGNoCisgICAgICAgIGlmICdtZXNzYWdlaWRt YXRjaCcgaW4gaGl0c1swXToKKyAgICAgICAgICAgIHJldHVybiBIdHRwUmVzcG9uc2VSZWRpcmVj dCgnL21lc3NhZ2UtaWQvJXMnICUgaGl0c1swXVsnbWVzc2FnZWlkbWF0Y2gnXSkKKworICAgIGZp cnN0aGl0ID0gMQorICAgIGhpdHNwZXJwYWdlID0gMjAKKworICAgIHNvcnRvcHRpb25zID0gKAor ICAgICAgICB7J3ZhbCc6ICdyJywgJ3RleHQnOiAnUmFuaycsICdzZWxlY3RlZCc6IHJlcXVlc3Qu R0VULmdldCgncycsICcnKSBub3QgaW4gKCdkJywgJ2knKX0sCisgICAgICAgIHsndmFsJzogJ2Qn LCAndGV4dCc6ICdEYXRlJywgJ3NlbGVjdGVkJzogcmVxdWVzdC5HRVQuZ2V0KCdzJywgJycpID09 ICdkJ30sCisgICAgICAgIHsndmFsJzogJ2knLCAndGV4dCc6ICdSZXZlcnNlIGRhdGUnLCAnc2Vs ZWN0ZWQnOiByZXF1ZXN0LkdFVC5nZXQoJ3MnLCAnJykgPT0gJ2knfSwKKyAgICApCisKKyAgICBk YXRlb3B0aW9ucyA9ICgKKyAgICAgICAgeyd2YWwnOiAtMSwgJ3RleHQnOiAnYW55dGltZSd9LAor ICAgICAgICB7J3ZhbCc6IDEsICd0ZXh0JzogJ3dpdGhpbiBsYXN0IGRheSd9LAorICAgICAgICB7 J3ZhbCc6IDcsICd0ZXh0JzogJ3dpdGhpbiBsYXN0IHdlZWsnfSwKKyAgICAgICAgeyd2YWwnOiAz MSwgJ3RleHQnOiAnd2l0aGluIGxhc3QgbW9udGgnfSwKKyAgICAgICAgeyd2YWwnOiAxODYsICd0 ZXh0JzogJ3dpdGhpbiBsYXN0IDYgbW9udGhzJ30sCisgICAgICAgIHsndmFsJzogMzY1LCAndGV4 dCc6ICd3aXRoaW4gbGFzdCB5ZWFyJ30sCisgICAgKQorCisgICAgKGdyb3VwcywgbGlzdGdyb3Vw aWQpID0gZ2V0X2FsbF9ncm91cHNfYW5kX2xpc3RzKHJlcXVlc3QpCisgICAgcmV0dXJuIHJlbmRl cl9uYXYoTmF2Q29udGV4dChyZXF1ZXN0LCBhbGxfZ3JvdXBzPWdyb3VwcyksICdhZHZhbmNlZHNl YXJjaC5odG1sJywgeworICAgICAgICAnZ3JvdXBzJzogW3snZ3JvdXBuYW1lJzogZ1snZ3JvdXBu YW1lJ10sICdsaXN0cyc6IGdbJ2xpc3RzJ119IGZvciBnIGluIGdyb3Vwc10sCisgICAgICAgICdo aXRjb3VudCc6IHRvdGFsaGl0cywKKyAgICAgICAgJ2ZpcnN0aGl0JzogZmlyc3RoaXQsCisgICAg ICAgICdsYXN0aGl0JzogbWluKHRvdGFsaGl0cywgZmlyc3RoaXQgKyBoaXRzcGVycGFnZSAtIDEp LAorICAgICAgICAncXVlcnknOiByZXF1ZXN0LkdFVFsncSddIGlmICdxJyBpbiByZXF1ZXN0LkdF VCBlbHNlICcnLAorICAgICAgICAnYXJjaGl2ZXNfcm9vdCc6ICcvJywgI3NldHRpbmdzLkFSQ0hJ VkVTX0ZST05UX0FERFJFU1MsCisgICAgICAgICdwYWdlbGlua3MnOiAnJywKKyAgICAgICAgJ2hp dHMnOiBbeworICAgICAgICAgICAgJ2RhdGUnOiBoWydkJ10sCisgICAgICAgICAgICAnc3ViamVj dCc6IGhbJ3MnXSwKKyAgICAgICAgICAgICdhdXRob3InOiBoWydmJ10sCisgICAgICAgICAgICAn bWVzc2FnZWlkJzogaFsnbSddLAorICAgICAgICAgICAgJ3RocmVhZGlkJzogaFsndCddLAorICAg ICAgICAgICAgJ3RocmVhZF9yYW5rJzogaFsndHInXSwKKyAgICAgICAgICAgICdhYnN0cmFjdCc6 IGhbJ2EnXSwKKyAgICAgICAgICAgICdhYnN0cmFjdF9mb3VuZCc6IGhbJ2FfZm91bmQnXSwKKyAg ICAgICAgICAgICdhYnN0cmFjdF9hZnRlcic6IGhbJ2FfYWZ0ZXInXSwKKyAgICAgICAgICAgICdy YW5rJzogaFsnciddLAorICAgICAgICB9IGZvciBoIGluIGhpdHNbZmlyc3RoaXQgLSAxOmZpcnN0 aGl0ICsgaGl0c3BlcnBhZ2UgLSAxXV0sCisgICAgICAgICdzb3J0b3B0aW9ucyc6IHNvcnRvcHRp b25zLAorICAgICAgICAnbGlzdHMnOiBMaXN0Lm9iamVjdHMuYWxsKCkub3JkZXJfYnkoImdyb3Vw X19zb3J0a2V5IiksCisgICAgICAgICdsaXN0aWQnOiBsaXN0aWQsCisgICAgICAgICdkYXRlcyc6 IGRhdGVvcHRpb25zLAorICAgICAgICAnZGF0ZXZhbCc6IGRhdGV2YWwsCisgICAgICAgICdvbmVw ZXJ0aHJlYWQnOiBvbmVwZXJ0aHJlYWQsCisgICAgfSkKKworQGNzcmZfZXhlbXB0CitkZWYgc2Vh cmNoKHJlcXVlc3QpOgorICAgIGlmIG5vdCBzZXR0aW5ncy5QVUJMSUNfQVJDSElWRVM6CisgICAg ICAgICMgV2UgZG9uJ3Qgc3VwcG9ydCBzZWFyY2hpbmcgb2Ygbm9uLXB1YmxpYyBhcmNoaXZlcyBh dCBhbGwgYXQgdGhpcyBwb2ludC4KKyAgICAgICAgIyBYWFg6IHJvb20gZm9yIGZ1dHVyZSBpbXBy b3ZlbWVudAorICAgICAgICByZXR1cm4gSHR0cFJlc3BvbnNlRm9yYmlkZGVuKCdOb3QgcHVibGlj IGFyY2hpdmVzJykKKworICAgICMgT25seSBjZXJ0YWluIGhvc3RzIGFyZSBhbGxvd2VkIHRvIGNh bGwgdGhlIHNlYXJjaCBBUEkKKyAgICBhbGxvd2VkID0gRmFsc2UKKyAgICBmb3IgaXBfcmFuZ2Ug aW4gc2V0dGluZ3MuU0VBUkNIX0NMSUVOVFM6CisgICAgICAgIGlmIGlwYWRkcmVzcy5pcF9hZGRy ZXNzKHJlcXVlc3QuTUVUQVsnUkVNT1RFX0FERFInXSkgaW4gaXBhZGRyZXNzLmlwX25ldHdvcmso aXBfcmFuZ2UpOgorICAgICAgICAgICAgYWxsb3dlZCA9IFRydWUKKyAgICAgICAgICAgIGJyZWFr CisgICAgaWYgbm90IGFsbG93ZWQ6CisgICAgICAgIHJldHVybiBIdHRwUmVzcG9uc2VGb3JiaWRk ZW4oJ0ludmFsaWQgaG9zdCcpCisKKyAgICAjIFBlcmZvcm0gYSBzZWFyY2ggb2YgdGhlIGFyY2hp dmVzIGFuZCByZXR1cm4gYSBKU09OIGRvY3VtZW50LgorICAgICMgRXhwZWN0cyB0aGUgZm9sbG93 aW5nIChvcHRpb25hbCkgUE9TVCBwYXJhbWV0ZXJzOgorICAgICMgcSA9IHF1ZXJ5IHRvIHNlYXJj aCBmb3IKKyAgICAjIGxuID0gY29tbWEgc2VwYXJhdGUgbGlzdCBvZiBsaXN0bmFtZXMgdG8gc2Vh cmNoIGluCisgICAgIyBkID0gbnVtYmVyIG9mIGRheXMgYmFjayB0byBzZWFyY2ggZm9yLCBvciAt MSAob3Igbm90IHNwZWNpZmllZCkKKyAgICAjICAgICAgdG8gc2VhcmNoIHRoZSBmdWxsIGFyY2hp dmVzCisgICAgIyBzID0gc29ydCByZXN1bHRzIGJ5IFsncic9cmFuaywgJ2QnPWRhdGUsICdpJz1p bnZlcnNlIGRhdGVdCisgICAgaWYgbm90IHJlcXVlc3QubWV0aG9kID09ICdQT1NUJzoKKyAgICAg ICAgcmFpc2UgSHR0cDQwNCgnSSBvbmx5IHJlc3BvbmQgdG8gUE9TVCcpCisKKyAgICBpZiAncScg bm90IGluIHJlcXVlc3QuUE9TVDoKKyAgICAgICAgcmFpc2UgSHR0cDQwNCgnTm8gc2VhcmNoIHF1 ZXJ5IHNwZWNpZmllZCcpCisgICAgcXVlcnkgPSByZXF1ZXN0LlBPU1RbJ3EnXQorICAgIGxuID0g cmVxdWVzdC5QT1NUWydsbiddIGlmICdsbicgaW4gcmVxdWVzdC5QT1NUIGVsc2UgTm9uZQorCisg ICAgZGF0ZXZhbCA9IHJlcXVlc3QuUE9TVC5nZXQoJ2QnLCAnLTEnKQorICAgIHNvcnR2YWwgPSBy ZXF1ZXN0LlBPU1QuZ2V0KCdzJywgJ2knKQorCisgICAgcmVzcCA9IEh0dHBSZXNwb25zZShjb250 ZW50X3R5cGU9J2FwcGxpY2F0aW9uL2pzb24nKQorICAgIHBlcmZvcm1fc2VhcmNoKHF1ZXJ5LCBk YXRldmFsLCBzb3J0dmFsLCBsaXN0bmFtZT1sbiwgc3RyZWFtZXI9cmVzcCkKICAgICByZXR1cm4g cmVzcAogCitkZWYgdGhyZWFkcyhyZXF1ZXN0KToKKyAgICByZXR1cm4gcmVuZGVyKAorICAgICAg ICByZXF1ZXN0LAorICAgICAgICAndGhyZWFkcy5odG1sJywKKyAgICAgICAgeworICAgICAgICAg ICAgJ3JlcXVlc3QnOiByZXF1ZXN0LAorICAgICAgICB9KQorCiAKIEBjYWNoZShzZWNvbmRzPTEw KQogZGVmIHdlYl9zeW5jX3RpbWVzdGFtcChyZXF1ZXN0KToKZGlmZiAtLWdpdCBhL2RqYW5nby9h cmNoaXZlcy91cmxzLnB5IGIvZGphbmdvL2FyY2hpdmVzL3VybHMucHkKaW5kZXggOTkzYzlmOS4u ZTEwZmIwMCAxMDA2NDQKLS0tIGEvZGphbmdvL2FyY2hpdmVzL3VybHMucHkKKysrIGIvZGphbmdv L2FyY2hpdmVzL3VybHMucHkKQEAgLTksNiArOSwxMCBAQCBpbXBvcnQgYXJjaGl2ZXMubWFpbGFy Y2hpdmVzLnZpZXdzCiBpbXBvcnQgYXJjaGl2ZXMubWFpbGFyY2hpdmVzLmFwaQogCiB1cmxwYXR0 ZXJucyA9IFsKKyAgICByZV9wYXRoKHInXnRocmVhZHMvJywgYXJjaGl2ZXMubWFpbGFyY2hpdmVz LnZpZXdzLnRocmVhZHMpLAorICAgIHJlX3BhdGgocideYXBpL3RocmVhZHNfd2l0aF9wYXRjaGVz LycsIGFyY2hpdmVzLm1haWxhcmNoaXZlcy5hcGkudGhyZWFkc193aXRoX3BhdGNoZXMpLAorICAg IHJlX3BhdGgocideYXBpL2NyZWF0ZV9jZmFwcF9wYXRjaCQnLCBhcmNoaXZlcy5tYWlsYXJjaGl2 ZXMuYXBpLmNyZWF0ZV9jZmFwcF9wYXRjaCksCisKICAgICAjIEV4YW1wbGVzOgogICAgICMgcmVf cGF0aChyJ14kJywgJ2FyY2hpdmVzLnZpZXdzLmhvbWUnLCBuYW1lPSdob21lKSwKICAgICAjIHJl X3BhdGgocideYXJjaGl2ZXMvJywgaW5jbHVkZSgnYXJjaGl2ZXMuZm9vLnVybHMnKSksCkBAIC00 NCw2ICs0OCw3IEBAIHVybHBhdHRlcm5zID0gWwogCiAgICAgIyBTZWFyY2gKICAgICByZV9wYXRo KHInXmFyY2hpdmVzLXNlYXJjaC8nLCBhcmNoaXZlcy5tYWlsYXJjaGl2ZXMudmlld3Muc2VhcmNo KSwKKyAgICByZV9wYXRoKHInXnNlYXJjaC8kJywgYXJjaGl2ZXMubWFpbGFyY2hpdmVzLnZpZXdz LmFkdmFuY2VkX3NlYXJjaCksCiAKICAgICAjIERhdGUgZXRjIGluZGV4ZXMKICAgICByZV9wYXRo KHInXmxpc3QvKFtcdy1dKykvJCcsIGFyY2hpdmVzLm1haWxhcmNoaXZlcy52aWV3cy5tb250aGxp c3QpLAotLSAKMi4zNC4xCgo= --00000000000072a504064a94802f--