From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 24202 invoked from network); 10 Nov 2021 22:20:44 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 10 Nov 2021 22:20:44 -0000 Content-Type: multipart/mixed; boundary="===============4796882675767772710==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_New_package=3A_frescobaldi-3=2E1=2E3?= To: ml@inbox.vuxu.org From: chili-b Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 10 Nov 2021 23:20:44 +0100 List-Id: Message-ID: <20211110222044.OgvHi65lUoBhhXQ21RiNvL00fALCGS0U2X92F8gCepU@z> GitHub notification mails are now in MIME to allow UTF8. --===============4796882675767772710== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgY2hpbGktYiBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vY2hp bGktYi92b2lkLXBhY2thZ2VzIG1hc3RlcgpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92 b2lkLXBhY2thZ2VzL3B1bGwvMzMyNzkKCk5ldyBwYWNrYWdlOiBmcmVzY29iYWxkaS0zLjEuMwo8 IS0tIE1hcmsgaXRlbXMgd2l0aCBbeF0gd2hlcmUgYXBwbGljYWJsZSAtLT4NCg0KIyMjIyBHZW5l cmFsDQotIFt4XSBUaGlzIGlzIGEgbmV3IHBhY2thZ2UgYW5kIGl0IGNvbmZvcm1zIHRvIHRoZSBb cXVhbGl0eSByZXF1aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQt cGFja2FnZXMvYmxvYi9tYXN0ZXIvTWFudWFsLm1kI3F1YWxpdHktcmVxdWlyZW1lbnRzKQ0KDQoj IyMjIEhhdmUgdGhlIHJlc3VsdHMgb2YgdGhlIHByb3Bvc2VkIGNoYW5nZXMgYmVlbiB0ZXN0ZWQ/ DQotIFsgXSBJIHVzZSB0aGUgcGFja2FnZXMgYWZmZWN0ZWQgYnkgdGhlIHByb3Bvc2VkIGNoYW5n ZXMgb24gYSByZWd1bGFyIGJhc2lzIGFuZCBjb25maXJtIHRoaXMgUFIgd29ya3MgZm9yIG1lDQot IFt4XSBJIGdlbmVyYWxseSBkb24ndCB1c2UgdGhlIGFmZmVjdGVkIHBhY2thZ2VzIGJ1dCBicmll Zmx5IHRlc3RlZCB0aGlzIFBSDQoNCjwhLS0NCklmIEdpdEh1YiBDSSBjYW5ub3QgYmUgdXNlZCB0 byB2YWxpZGF0ZSB0aGUgYnVpbGQgcmVzdWx0IChmb3IgZXhhbXBsZSwgaWYgdGhlDQpidWlsZCBp cyBsaWtlbHkgdG8gdGFrZSBzZXZlcmFsIGhvdXJzKSwgbWFrZSBzdXJlIHRvDQpbc2tpcCBDSV0o aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21hc3Rlci9D T05UUklCVVRJTkcubWQjY29udGludW91cy1pbnRlZ3JhdGlvbikuDQpXaGVuIHNraXBwaW5nIENJ LCB1bmNvbW1lbnQgYW5kIGZpbGwgb3V0IHRoZSBmb2xsb3dpbmcgc2VjdGlvbi4NCk5vdGU6IGZv ciBidWlsZHMgdGhhdCBhcmUgbGlrZWx5IHRvIGNvbXBsZXRlIGluIGxlc3MgdGhhbiAyIGhvdXJz LCBpdCBpcyBub3QNCmFjY2VwdGFibGUgdG8gc2tpcCBDSS4NCi0tPg0KPCEtLSANCiMjIyMgRG9l cyBpdCBidWlsZCBhbmQgcnVuIHN1Y2Nlc3NmdWxseT8gDQooUGxlYXNlIGNob29zZSBhdCBsZWFz dCBvbmUgbmF0aXZlIGJ1aWxkIGFuZCwgaWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jvc3Mg YnVpbGQuIE1vcmUgYXJlIGJldHRlci4pDQotIFt4XSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBm b3IgbXkgbmF0aXZlIGFyY2hpdGVjdHVyZSwgKHg4Nl82NC1nbGliYykNCi0gWyBdIEkgYnVpbHQg dGhpcyBQUiBsb2NhbGx5IGZvciB0aGVzZSBhcmNoaXRlY3R1cmVzIChpZiBzdXBwb3J0ZWQuIG1h cmsgY3Jvc3NidWlsZHMpOg0KICAtIFsgXSBhYXJjaDY0LW11c2wNCiAgLSBbIF0gYXJtdjdsDQog IC0gWyBdIGFybXY2bC1tdXNsDQotLT4NCg0KVGhpcyBQUiBhbHNvIGluY2x1ZGVzIHRoZSBuZXcg cGFja2FnZXMsIGBweXRob24zLWx5LTAuOS43YCBhbmQgYHB5dGhvbjMtcG9wcGxlci1xdDUtMC43 NS4wYCwgd2hpY2ggYXJlIGRlcGVuZGVuY2llcyBmb3IgZnJlc2NvYmFsZGkuDQoKCkEgcGF0Y2gg ZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVs bC8zMzI3OS5wYXRjaCBpcyBhdHRhY2hlZA== --===============4796882675767772710== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-master-33279.patch" RnJvbSBkYWIwOTQ3N2M4NjE4MjQ3ZThkODExMTRjMTI1NmFlYTYwMjkwYzliIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBjaGlsaS1iIDxkZXh0ZXIuZ2FvbnNoYXRmb3JkQGdtYWlsLmNv bT4KRGF0ZTogU2F0LCAyIE9jdCAyMDIxIDIxOjA3OjU2IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAx LzNdIE5ldyBwYWNrYWdlOiBweXRob24zLWx5LTAuOS43CgpQeXRob24gbW9kdWxlcyBwYXJzZSwg bWFuaXB1bGF0ZSBvciBjcmVhdGUgZG9jdW1lbnRzIGluIExpbHlQb25kIGZvcm1hdC4KRGVwZW5k ZWQgdXBvbiBieSB0aGUgRnJlc2NvYmFsZGkgTGlseVBvbmQgZWRpdG9yLgotLS0KIHNyY3BrZ3Mv cHl0aG9uMy1seS90ZW1wbGF0ZSB8IDE0ICsrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwg MTQgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcHl0aG9uMy1seS90 ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uMy1seS90ZW1wbGF0ZSBiL3NyY3Br Z3MvcHl0aG9uMy1seS90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLmE3OTUwMTMwOTZkYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcHl0aG9uMy1s eS90ZW1wbGF0ZQpAQCAtMCwwICsxLDE0IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdweXRob24z LWx5JworcGtnbmFtZT1weXRob24zLWx5Cit2ZXJzaW9uPTAuOS43CityZXZpc2lvbj0xCit3cmtz cmM9InB5dGhvbi1seS0ke3ZlcnNpb259IgorYnVpbGRfc3R5bGU9cHl0aG9uMy1tb2R1bGUKK2hv c3RtYWtlZGVwZW5kcz0icHl0aG9uMy1zZXR1cHRvb2xzIgorc2hvcnRfZGVzYz0iTW9kdWxlcyB0 byBwYXJzZSwgbWFuaXB1bGF0ZSBvciBjcmVhdGUgZG9jdW1lbnRzIGluIExpbHlQb25kIGZvcm1h dCIKK21haW50YWluZXI9ImNoaWxpLWIgPGRleHRlci5nYW9uc2hhdGZvcmRAZ21haWwuY29tPiIK K2xpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6Ly9naXRodWIuY29t L2ZyZXNjb2JhbGRpL3B5dGhvbi1seSIKK2NoYW5nZWxvZz0iaHR0cHM6Ly9naXRodWIuY29tL2Zy ZXNjb2JhbGRpL3B5dGhvbi1seS9ibG9iL3Yke3ZlcnNpb259L0NoYW5nZUxvZyIKK2Rpc3RmaWxl cz0iJHtQWVBJX1NJVEV9L3AvcHl0aG9uLWx5L3B5dGhvbi1seS0ke3ZlcnNpb259LnRhci5neiIK K2NoZWNrc3VtPWQ0ZDJiNjhlYjBlZjgwNzMyMDAxNTQyNDdjYzliZDkxZWQ3ZmIyNjcxYWM5NjZl ZjNkMjg1MzI4MWMxNWQ3YTgKCkZyb20gZTQ3ODQ2NGI5ZGYxNmU5YTBhZWVlZDU2NTI3OGUzMDRl MTA2YzBlYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogY2hpbGktYiA8ZGV4dGVyLmdh b25zaGF0Zm9yZEBnbWFpbC5jb20+CkRhdGU6IFN1biwgMTAgT2N0IDIwMjEgMTU6MjA6NTMgLTA0 MDAKU3ViamVjdDogW1BBVENIIDIvM10gTmV3IHBhY2thZ2U6IHB5dGhvbjMtcG9wcGxlci1xdDUt MC43NS4wCgotLS0KIHNyY3BrZ3MvcHl0aG9uMy1wb3BwbGVyLXF0NS90ZW1wbGF0ZSB8IDI4ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAyOCBpbnNlcnRpb25z KCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9weXRob24zLXBvcHBsZXItcXQ1L3RlbXBs YXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24zLXBvcHBsZXItcXQ1L3RlbXBsYXRlIGIv c3JjcGtncy9weXRob24zLXBvcHBsZXItcXQ1L3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uZWZiZDNjNjVkMzU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9weXRob24zLXBvcHBsZXItcXQ1L3RlbXBsYXRlCkBAIC0wLDAgKzEsMjggQEAKKyMgVGVt cGxhdGUgZmlsZSBmb3IgJ3B5dGhvbjMtcG9wcGxlci1xdDUnCitwa2duYW1lPXB5dGhvbjMtcG9w cGxlci1xdDUKK3ZlcnNpb249MC43NS4wCityZXZpc2lvbj0xCit3cmtzcmM9InB5dGhvbi1wb3Bw bGVyLXF0NS0ke3ZlcnNpb259IgorYnVpbGRfc3R5bGU9cHl0aG9uMy1tb2R1bGUKK2hvc3RtYWtl ZGVwZW5kcz0icHl0aG9uMy1zaXAtZGV2ZWwgcGtnLWNvbmZpZyBxdDUtZGV2ZWwgcG9wcGxlci1x dDUtZGV2ZWwKKyBweXRob24zLVB5UXQ1LWRldmVsIHB5dGhvbjMtZGV2ZWwiCittYWtlZGVwZW5k cz0icHl0aG9uMy1zaXAtZGV2ZWwgcGtnLWNvbmZpZyBxdDUtZGV2ZWwgcG9wcGxlci1xdDUtZGV2 ZWwKKyBweXRob24zLVB5UXQ1LWRldmVsIHB5dGhvbjMtZGV2ZWwiCitkZXBlbmRzPSJwb3BwbGVy LXF0NSBweXRob24zLVB5UXQ1Igorc2hvcnRfZGVzYz0iUHl0aG9uIGJpbmRpbmdzIGZvciBsaWJw b3BwbGVyLXF0NSIKK21haW50YWluZXI9ImNoaWxpLWIgPGRleHRlci5nYW9uc2hhdGZvcmRAZ21h aWwuY29tPiIKK2xpY2Vuc2U9IkxHUEwtMy4wLW9yLWxhdGVyIgoraG9tZXBhZ2U9Imh0dHBzOi8v Z2l0aHViLmNvbS9mcmVzY29iYWxkaS9weXRob24tcG9wcGxlci1xdDUiCitjaGFuZ2Vsb2c9Imh0 dHBzOi8vZ2l0aHViLmNvbS9mcmVzY29iYWxkaS9weXRob24tcG9wcGxlci1xdDUvYmxvYi92JHt2 ZXJzaW9ufS9DaGFuZ2VMb2ciCitkaXN0ZmlsZXM9IiR7UFlQSV9TSVRFfS9wL3B5dGhvbi1wb3Bw bGVyLXF0NS9weXRob24tcG9wcGxlci1xdDUtJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT1l YTBlYzllYmU5OTU3MDVhYjE5YTMwMTI5MDM2NTY1MmU2MmJhYjVjOWIwNWRiNTY5N2M3YmYyMTcz MzM1MTA3CisKK2RvX2J1aWxkKCkgeworCSMgQ2x1ZGdlIHRvIGZpeCBidWlsZCB1bmRlciBhcm12 N2wsIGFybXY2bAorCWlmIFtbICRYQlBTX1RBUkdFVF9NQUNISU5FID09IGFybSogXV07IHRoZW4K KwkJZXhwb3J0IENGTEFHUz0iLW10dW5lPWdlbmVyaWMtYXJtdjctYSAiCisJCWV4cG9ydCBDRkxB R1MrPSItSSR7WEJQU19DUk9TU19CQVNFfS8ke3B5M19pbmN9IgorCWZpCisKKwlweXRob24gc2V0 dXAucHkgYnVpbGRfZXh0IC0tcHlxdC1zaXAtZGlyPS8ke3B5M19zaXRlbGlifS9QeVF0NS9iaW5k aW5ncworfQoKRnJvbSBiNjEwNTY2NjQxMDYyMDJiMmE2NzcyZTdmMWFjMzhhZDU5ZGY2NWIyIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBjaGlsaS1iIDxkZXh0ZXIuZ2FvbnNoYXRmb3Jk QGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAxMCBPY3QgMjAyMSAxNTozMzozNiAtMDQwMApTdWJqZWN0 OiBbUEFUQ0ggMy8zXSBOZXcgcGFja2FnZTogZnJlc2NvYmFsZGktMy4xLjMKCi0tLQogLi4uZi1w eS0zLjEwLWZsb2F0LWludC1maXhlcy1pc3N1ZS0xMzk4LnBhdGNoIHwgNTMwICsrKysrKysrKysr KysrKysrKwogLi4uZS1weS0zLjEwLWZsb2F0LWludC1maXhlcy1pc3N1ZS0xMzk4LnBhdGNoIHwg MjA5ICsrKysrKysKIC4uLm5nZXMtdG8tZml4LWVycm9ycy11bmRlci1QeXRob24tMy4xMC5wYXRj aCB8ICA1MCArKwogc3JjcGtncy9mcmVzY29iYWxkaS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAg IHwgIDIwICsKIDQgZmlsZXMgY2hhbmdlZCwgODA5IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2ZyZXNjb2JhbGRpL3BhdGNoZXMvMDAwMS1maXJzdC1iYXRjaC1vZi1w eS0zLjEwLWZsb2F0LWludC1maXhlcy1pc3N1ZS0xMzk4LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9mcmVzY29iYWxkaS9wYXRjaGVzLzAwMDItbW9yZS1weS0zLjEwLWZsb2F0LWlu dC1maXhlcy1pc3N1ZS0xMzk4LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mcmVz Y29iYWxkaS9wYXRjaGVzLzAwMDMtTW9yZS1jaGFuZ2VzLXRvLWZpeC1lcnJvcnMtdW5kZXItUHl0 aG9uLTMuMTAucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2ZyZXNjb2JhbGRpL3Rl bXBsYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mcmVzY29iYWxkaS9wYXRjaGVzLzAwMDEtZmly c3QtYmF0Y2gtb2YtcHktMy4xMC1mbG9hdC1pbnQtZml4ZXMtaXNzdWUtMTM5OC5wYXRjaCBiL3Ny Y3BrZ3MvZnJlc2NvYmFsZGkvcGF0Y2hlcy8wMDAxLWZpcnN0LWJhdGNoLW9mLXB5LTMuMTAtZmxv YXQtaW50LWZpeGVzLWlzc3VlLTEzOTgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi4xYjgwZWQ4NzlmOTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Zy ZXNjb2JhbGRpL3BhdGNoZXMvMDAwMS1maXJzdC1iYXRjaC1vZi1weS0zLjEwLWZsb2F0LWludC1m aXhlcy1pc3N1ZS0xMzk4LnBhdGNoCkBAIC0wLDAgKzEsNTMwIEBACitGcm9tIDUxODg2ZGJhOGEz Y2IzZGI2ZWJhOWE2Y2YxZDY1YmQ4ZWFmODc3YWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitG cm9tOiBXaWxiZXJ0IEJlcmVuZHNlbiA8d2Jzb2Z0QHhzNGFsbC5ubD4KK0RhdGU6IFN1biwgNyBO b3YgMjAyMSAxNDo1MzozMyArMDEwMAorU3ViamVjdDogW1BBVENIIDEvMl0gZmlyc3QgYmF0Y2gg b2YgcHkgMy4xMCBmbG9hdC0+aW50IGZpeGVzLCBpc3N1ZSAjMTM5OAorCistLS0KKyBmcmVzY29i YWxkaV9hcHAvcXBhZ2V2aWV3L21hZ25pZmllci5weSAgICB8IDEwICsrKy0tLQorIGZyZXNjb2Jh bGRpX2FwcC9xcGFnZXZpZXcvcG9wcGxlci5weSAgICAgIHwgMTggKysrKystLS0tLS0KKyBmcmVz Y29iYWxkaV9hcHAvcXBhZ2V2aWV3L3JlbmRlci5weSAgICAgICB8IDE4ICsrKysrLS0tLS0tCisg ZnJlc2NvYmFsZGlfYXBwL3FwYWdldmlldy9ydWJiZXJiYW5kLnB5ICAgfCAzOCArKysrKysrKysr Ky0tLS0tLS0tLS0tLQorIGZyZXNjb2JhbGRpX2FwcC9xcGFnZXZpZXcvc2Nyb2xsYXJlYS5weSAg IHwgMzQgKysrKysrKysrKy0tLS0tLS0tLS0KKyBmcmVzY29iYWxkaV9hcHAvcXBhZ2V2aWV3L3No YWRvdy5weSAgICAgICB8IDEyICsrKy0tLS0KKyBmcmVzY29iYWxkaV9hcHAvd2lkZ2V0cy9saW5l bnVtYmVyYXJlYS5weSB8ICA0ICstLQorIGZyZXNjb2JhbGRpX2FwcC93aWRnZXRzL3Byb2dyZXNz YmFyLnB5ICAgIHwgIDQgKy0tCisgOCBmaWxlcyBjaGFuZ2VkLCA2OSBpbnNlcnRpb25zKCspLCA2 OSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2ZyZXNjb2JhbGRpX2FwcC9xcGFnZXZpZXcv bWFnbmlmaWVyLnB5IGIvZnJlc2NvYmFsZGlfYXBwL3FwYWdldmlldy9tYWduaWZpZXIucHkKK2lu ZGV4IDNhMjc1OWZiLi5iOTNkMDViZSAxMDA2NDQKKy0tLSBhL2ZyZXNjb2JhbGRpX2FwcC9xcGFn ZXZpZXcvbWFnbmlmaWVyLnB5CisrKysgYi9mcmVzY29iYWxkaV9hcHAvcXBhZ2V2aWV3L21hZ25p Zmllci5weQorQEAgLTE1Niw3ICsxNTYsNyBAQCBjbGFzcyBNYWduaWZpZXIoUVdpZGdldCk6Cisg CisgICAgIGRlZiBtb3ZlRXZlbnQoc2VsZiwgZXYpOgorICAgICAgICAgIiIiQ2FsbGVkIG9uIG1v dmUsIHVwZGF0ZXMgdGhlIGNvbnRlbnRzLiIiIgorLSAgICAgICAgIyB3ZSBhbHNvIHVwZGF0ZSBv biBwYWludCBldmVudHMsIGJ1dCB0aGV5IGFyZSBub3QgZ2VuZXJhdGVkIGlmIHRoZSAKKysgICAg ICAgICMgd2UgYWxzbyB1cGRhdGUgb24gcGFpbnQgZXZlbnRzLCBidXQgdGhleSBhcmUgbm90IGdl bmVyYXRlZCBpZiB0aGUKKyAgICAgICAgICMgbWFnbmlmaWVycyBmdWxseSBjb3ZlcnMgdGhlIHZp ZXdwb3J0CisgICAgICAgICBzZWxmLnVwZGF0ZSgpCisgCitAQCAtMjQwLDggKzI0MCw4IEBAIGNs YXNzIE1hZ25pZmllcihRV2lkZ2V0KToKKyAgICAgICAgICAgICAgICAgZmFjdG9yID0gMS4xICoq IChldi5hbmdsZURlbHRhKCkueSgpIC8gMTIwKQorICAgICAgICAgICAgICAgICBnID0gc2VsZi5n ZW9tZXRyeSgpCisgICAgICAgICAgICAgICAgIGMgPSBnLmNlbnRlcigpCistICAgICAgICAgICAg ICAgIGcuc2V0V2lkdGgobWluKG1heChnLndpZHRoKCkgKiBmYWN0b3IsIHNlbGYuTUlOX1NJWkUp LCBzZWxmLk1BWF9TSVpFKSkKKy0gICAgICAgICAgICAgICAgZy5zZXRIZWlnaHQobWluKG1heChn LmhlaWdodCgpICogZmFjdG9yLCBzZWxmLk1JTl9TSVpFKSwgc2VsZi5NQVhfU0laRSkpCisrICAg ICAgICAgICAgICAgIGcuc2V0V2lkdGgoaW50KG1pbihtYXgoZy53aWR0aCgpICogZmFjdG9yLCBz ZWxmLk1JTl9TSVpFKSwgc2VsZi5NQVhfU0laRSkpKQorKyAgICAgICAgICAgICAgICBnLnNldEhl aWdodChpbnQobWluKG1heChnLmhlaWdodCgpICogZmFjdG9yLCBzZWxmLk1JTl9TSVpFKSwgc2Vs Zi5NQVhfU0laRSkpKQorICAgICAgICAgICAgICAgICBnLm1vdmVDZW50ZXIoYykKKyAgICAgICAg ICAgICAgICAgc2VsZi5zZXRHZW9tZXRyeShnKQorICAgICAgICAgICAgIGVsc2U6CitAQCAtMjc4 LDEzICsyNzgsMTMgQEAgY2xhc3MgTWFnbmlmaWVyKFFXaWRnZXQpOgorIAorICAgICAgICAgIyB0 aGUgdmlydHVhbCBwb3NpdGlvbiBvZiB0aGUgd2hvbGUgc2NhbGVkLXVwIGxheW91dAorICAgICAg ICAgZXZfcmVjdCA9IGV2LnJlY3QoKS50cmFuc2xhdGVkKG91cl9yZWN0LnRvcExlZnQoKSkKKy0g ICAgICAgIAorKworICAgICAgICAgIyBkcmF3IHNoYWRvdyBib3JkZXI/CisgICAgICAgICBzaGFk b3cgPSBGYWxzZQorICAgICAgICAgaWYgaGFzYXR0cih2aWV3LCAiZHJhd0Ryb3BTaGFkb3ciKSBh bmQgdmlldy5kcm9wU2hhZG93RW5hYmxlZDoKKyAgICAgICAgICAgICBzaGFkb3cgPSBUcnVlCisg ICAgICAgICAgICAgc2hhZG93X3dpZHRoID0gbGF5b3V0LnNwYWNpbmcgKiBzY2FsZSAvLyAyCist ICAgICAgICAKKysKKyAgICAgICAgIHBhaW50ZXIgPSBRUGFpbnRlcihzZWxmKQorICAgICAgICAg Zm9yIHAgaW4gbGF5b3V0LnBhZ2VzQXQocmVnaW9uLmJvdW5kaW5nUmVjdCgpKToKKyAgICAgICAg ICAgICAjIGdldCBhIChyZXVzZWQpIHRoZSBjb3B5IG9mIHRoZSBwYWdlCitkaWZmIC0tZ2l0IGEv ZnJlc2NvYmFsZGlfYXBwL3FwYWdldmlldy9wb3BwbGVyLnB5IGIvZnJlc2NvYmFsZGlfYXBwL3Fw YWdldmlldy9wb3BwbGVyLnB5CitpbmRleCAxNzMxMmQ3OC4uMjY3NjgzNTYgMTAwNjQ0CistLS0g YS9mcmVzY29iYWxkaV9hcHAvcXBhZ2V2aWV3L3BvcHBsZXIucHkKKysrKyBiL2ZyZXNjb2JhbGRp X2FwcC9xcGFnZXZpZXcvcG9wcGxlci5weQorQEAgLTYyLDcgKzYyLDcgQEAgY2xhc3MgTGluayhs aW5rLkxpbmspOgorICAgICBkZWYgX19pbml0X18oc2VsZiwgbGlua29iaik6CisgICAgICAgICBz ZWxmLmxpbmtvYmogPSBsaW5rb2JqCisgICAgICAgICBzZWxmLmFyZWEgPSBsaW5rLkFyZWEoKmxp bmtvYmoubGlua0FyZWEoKS5ub3JtYWxpemVkKCkuZ2V0Q29vcmRzKCkpCistICAgIAorKworICAg ICBAcHJvcGVydHkKKyAgICAgZGVmIHVybChzZWxmKToKKyAgICAgICAgIGlmIGlzaW5zdGFuY2Uo c2VsZi5saW5rb2JqLCBwb3BwbGVycXQ1LlBvcHBsZXIuTGlua0Jyb3dzZSk6CitAQCAtMTA1LDgg KzEwNSw4IEBAIGNsYXNzIFBvcHBsZXJQYWdlKHBhZ2UuQWJzdHJhY3RSZW5kZXJlZFBhZ2UpOgor ICAgICBkZWYgbG9hZChjbHMsIGZpbGVuYW1lLCByZW5kZXJlcj1Ob25lKToKKyAgICAgICAgICIi IkxvYWQgYSBQb3BwbGVyIGRvY3VtZW50LCBhbmQgeWllbGQgb2YgaW5zdGFuY2VzIG9mIHRoaXMg Y2xhc3MuCisgCistICAgICAgICBUaGUgZmlsZW5hbWUgY2FuIGFsc28gYmUgYSBRQnl0ZUFycmF5 IG9yIGEgcG9wcGxlcnF0NS5Qb3BwbGVyLkRvY3VtZW50IAorLSAgICAgICAgaW5zdGFuY2UuIFRo ZSBzcGVjaWZpZWQgUmVuZGVyZXIgaXMgdXNlZCwgb3IgZWxzZSB0aGUgZ2xvYmFsIHBvcHBsZXIg CisrICAgICAgICBUaGUgZmlsZW5hbWUgY2FuIGFsc28gYmUgYSBRQnl0ZUFycmF5IG9yIGEgcG9w cGxlcnF0NS5Qb3BwbGVyLkRvY3VtZW50CisrICAgICAgICBpbnN0YW5jZS4gVGhlIHNwZWNpZmll ZCBSZW5kZXJlciBpcyB1c2VkLCBvciBlbHNlIHRoZSBnbG9iYWwgcG9wcGxlcgorICAgICAgICAg cmVuZGVyZXIuCisgCisgICAgICAgICAiIiIKK0BAIC0xMTYsMTEgKzExNiwxMSBAQCBjbGFzcyBQ b3BwbGVyUGFnZShwYWdlLkFic3RyYWN0UmVuZGVyZWRQYWdlKToKKyAgICAgZGVmIG11dGV4KHNl bGYpOgorICAgICAgICAgIiIiTm8gdHdvIHBhZ2VzIG9mIHNhbWUgUG9wcGxlciBkb2N1bWVudCBh cmUgcmVuZGVyZWQgYXQgdGhlIHNhbWUgdGltZS4iIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmRv Y3VtZW50CistICAgIAorKworICAgICBkZWYgZ3JvdXAoc2VsZik6CisgICAgICAgICAiIiJSZWlt cGxlbWVudGVkIHRvIHJldHVybiB0aGUgUG9wcGxlciBkb2N1bWVudCBvdXIgcGFnZSBkaXNwbGF5 cyBhIHBhZ2UgZnJvbS4iIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmRvY3VtZW50CistICAgIAor KworICAgICBkZWYgaWRlbnQoc2VsZik6CisgICAgICAgICAiIiJSZWltcGxlbWVudGVkIHRvIHJl dHVybiB0aGUgcGFnZSBudW1iZXIgb2YgdGhpcyBwYWdlLiIiIgorICAgICAgICAgcmV0dXJuIHNl bGYucGFnZU51bWJlcgorQEAgLTEzMSw3ICsxMzEsNyBAQCBjbGFzcyBQb3BwbGVyUGFnZShwYWdl LkFic3RyYWN0UmVuZGVyZWRQYWdlKToKKyAgICAgICAgIHdpdGggbG9ja2luZy5sb2NrKHNlbGYu ZG9jdW1lbnQpOgorICAgICAgICAgICAgIHBhZ2UgPSBzZWxmLmRvY3VtZW50LnBhZ2Uoc2VsZi5w YWdlTnVtYmVyKQorICAgICAgICAgICAgIHJldHVybiBwYWdlLnRleHQocmVjdCkKKy0gICAgCisr CisgICAgIGRlZiBsaW5rcyhzZWxmKToKKyAgICAgICAgICIiIlJlaW1wbGVtZW50ZWQgdG8gdXNl IGEgZGlmZmVyZW50IGNhY2hpbmcgbWVjaGFuaXNtLiIiIgorICAgICAgICAgZG9jdW1lbnQsIHBh Z2VOdW1iZXIgPSBzZWxmLmRvY3VtZW50LCBzZWxmLnBhZ2VOdW1iZXIKK0BAIC0xODQsNyArMTg0 LDcgQEAgY2xhc3MgUG9wcGxlclJlbmRlcmVyKHJlbmRlci5BYnN0cmFjdFJlbmRlcmVyKToKKyAg ICAgICAgIHJlbmRlckJhY2tlbmQgPSBwcmludFJlbmRlckJhY2tlbmQgPSAwCisgCisgICAgIG92 ZXJzYW1wbGVUaHJlc2hvbGQgPSA5NgorLSAgICAKKysKKyAgICAgZGVmIHJlbmRlcihzZWxmLCBw YWdlLCBrZXksIHRpbGUsIHBhcGVyQ29sb3I9Tm9uZSk6CisgICAgICAgICAiIiJHZW5lcmF0ZSBh biBpbWFnZSBmb3IgdGhlIFBhZ2UgcmVmZXJyZWQgdG8gYnkga2V5LiIiIgorICAgICAgICAgaWYg cGFwZXJDb2xvciBpcyBOb25lOgorQEAgLTIwNSw4ICsyMDUsOCBAQCBjbGFzcyBQb3BwbGVyUmVu ZGVyZXIocmVuZGVyLkFic3RyYWN0UmVuZGVyZXIpOgorICAgICAgICAgICAgIGtleS5yb3RhdGlv biwgcGFwZXJDb2xvcikKKyAgICAgICAgIGlmIG11bHRpcGxpZXIgPT0gMjoKKyAgICAgICAgICAg ICBpbWFnZSA9IGltYWdlLnNjYWxlZFRvV2lkdGgodGlsZS53LCBRdC5TbW9vdGhUcmFuc2Zvcm1h dGlvbikKKy0gICAgICAgIGltYWdlLnNldERvdHNQZXJNZXRlclgoeHJlcyAqIDM5LjM3KQorLSAg ICAgICAgaW1hZ2Uuc2V0RG90c1Blck1ldGVyWSh5cmVzICogMzkuMzcpCisrICAgICAgICBpbWFn ZS5zZXREb3RzUGVyTWV0ZXJYKGludCh4cmVzICogMzkuMzcpKQorKyAgICAgICAgaW1hZ2Uuc2V0 RG90c1Blck1ldGVyWShpbnQoeXJlcyAqIDM5LjM3KSkKKyAgICAgICAgIHJldHVybiBpbWFnZQor IAorICAgICBkZWYgc2V0UmVuZGVySGludHMoc2VsZiwgZG9jKToKK2RpZmYgLS1naXQgYS9mcmVz Y29iYWxkaV9hcHAvcXBhZ2V2aWV3L3JlbmRlci5weSBiL2ZyZXNjb2JhbGRpX2FwcC9xcGFnZXZp ZXcvcmVuZGVyLnB5CitpbmRleCBhOGMwMGRlMS4uNTU2MGZhMmYgMTAwNjQ0CistLS0gYS9mcmVz Y29iYWxkaV9hcHAvcXBhZ2V2aWV3L3JlbmRlci5weQorKysrIGIvZnJlc2NvYmFsZGlfYXBwL3Fw YWdldmlldy9yZW5kZXIucHkKK0BAIC0xNDYsMTEgKzE0NiwxMSBAQCBjbGFzcyBBYnN0cmFjdFJl bmRlcmVyOgorIAorICAgICBkZWYgbWFwKHNlbGYsIGtleSwgYm94KToKKyAgICAgICAgICIiIlJl dHVybiBhIFFUcmFuc2Zvcm0gY29udmVydGluZyBmcm9tIEtleSBjb29yZGluYXRlcyB0byBhIGJv eC4KKy0gICAgICAgIAorKworICAgICAgICAgVGhlIGJveCBzaG91bGQgYmUgYSBRUmVjdEYgb3Ig UVJlY3QsIGFuZCBkZXNjcmliZXMgdGhlIG9yaWdpbmFsIGFyZWEgb2YKKyAgICAgICAgIHRoZSBw YWdlLiAgVGhlIHJldHVybmVkIG1hdHJpeCBjYW4gYmUgdXNlZCB0byBjb252ZXJ0IGUuZy4gdGls ZQorICAgICAgICAgY29vcmRpbmF0ZXMgdG8gdGhlIHBvc2l0aW9uIG9uIHRoZSBvcmlnaW5hbCBw YWdlLgorLSAgICAgICAgCisrCisgICAgICAgICAiIiIKKyAgICAgICAgIHQgPSBRVHJhbnNmb3Jt KCkKKyAgICAgICAgIHQudHJhbnNsYXRlKGJveC54KCksIGJveC55KCkpCitAQCAtMTgyLDE3ICsx ODIsMTcgQEAgY2xhc3MgQWJzdHJhY3RSZW5kZXJlcjoKKyAKKyAgICAgZGVmIHJlbmRlcihzZWxm LCBwYWdlLCBrZXksIHRpbGUsIHBhcGVyQ29sb3I9Tm9uZSk6CisgICAgICAgICAiIiJHZW5lcmF0 ZSBhIFFJbWFnZSBmb3IgdGlsZSBvZiB0aGUgUGFnZS4KKy0gICAgICAgIAorKworICAgICAgICAg VGhlIHdpZHRoLCBoZWlnaHQgYW5kIHJvdGF0aW9uIHRvIHJlbmRlciBhdCBzaG91bGQgYmUgdGFr ZW4gZnJvbSB0aGUKKyAgICAgICAgIGtleSwgYXMgdGhlIHBhZ2UgY291bGQgYmUgcmVzaXplZCBv ciByb3RhdGVkIGluIHRoZSBtZWFuIHRpbWUuCistICAgICAgICAKKysKKyAgICAgICAgIFRoZSBk ZWZhdWx0IGltcGxlbWVudGF0aW9uIHByZXBhcmVzIHRoZSBpbWFnZSwgYSBwYWludGVyIGFuZCB0 aGVuCisgICAgICAgICBjYWxscyBkcmF3KCkgdG8gYWN0dWFsbHkgZHJhdyB0aGUgY29udGVudHMu CistICAgICAgICAKKysKKyAgICAgICAgIElmIHRoZSBwYXBlckNvbG9yIGlzIG5vdCBzcGVjaWZp ZWQsIGl0IHdpbGwgYmUgcmVhZCBmcm9tIHRoZSBQYWdlJ3MKKyAgICAgICAgIHBhcGVyQ29sb3Ig YXR0cmlidXRlIChpZiBub3QgTm9uZSkgb3IgZWxzZSBmcm9tIHRoZSByZW5kZXJlcidzCisgICAg ICAgICBwYXBlckNvbG9yIGF0dHJpYnV0ZS4KKy0gICAgICAgIAorKworICAgICAgICAgIiIiCisg ICAgICAgICBpZiBwYXBlckNvbG9yIGlzIE5vbmU6CisgICAgICAgICAgICAgcGFwZXJDb2xvciA9 IHBhZ2UucGFwZXJDb2xvciBvciBzZWxmLnBhcGVyQ29sb3IKK0BAIC0yMDAsNyArMjAwLDcgQEAg Y2xhc3MgQWJzdHJhY3RSZW5kZXJlcjoKKyAgICAgICAgIGkgPSBRSW1hZ2UodGlsZS53LCB0aWxl LmgsIHNlbGYuaW1hZ2VGb3JtYXQpCisgICAgICAgICBpLmZpbGwocGFwZXJDb2xvcikKKyAgICAg ICAgIHBhaW50ZXIgPSBRUGFpbnRlcihpKQorLSAgICAgICAgCisrCisgICAgICAgICAjIHJvdGF0 ZSB0aGUgcGFpbnRlciBhY2NvcmRpbmdseQorICAgICAgICAgdXRpbC5yb3RhdGUocGFpbnRlciwg a2V5LnJvdGF0aW9uLCB0aWxlLncsIHRpbGUuaCwgVHJ1ZSkKKyAKK0BAIC0yNDEsNyArMjQxLDcg QEAgY2xhc3MgQWJzdHJhY3RSZW5kZXJlcjoKKyAgICAgICAgIGtleSA9IHNlbGYua2V5KHBhZ2Us IHJhdGlvKQorIAorICAgICAgICAgIyBwYWludCByZWN0IGluIHRpbGUgY29vcmRpbmF0ZXMKKy0g ICAgICAgIHRhcmdldCA9IFFSZWN0KHJlY3QueCgpICogcmF0aW8sIHJlY3QueSgpICogcmF0aW8s IHJlY3Qud2lkdGgoKSAqIHJhdGlvLCByZWN0LmhlaWdodCgpICogcmF0aW8pCisrICAgICAgICB0 YXJnZXQgPSBRUmVjdChpbnQocmVjdC54KCkgKiByYXRpbyksIGludChyZWN0LnkoKSAqIHJhdGlv KSwgaW50KHJlY3Qud2lkdGgoKSAqIHJhdGlvKSwgaW50KHJlY3QuaGVpZ2h0KCkgKiByYXRpbykp CisgCisgICAgICAgICAjIHRpbGVzIHRvIHBhaW50CisgICAgICAgICB0aWxlcyA9IFt0IGZvciB0 IGluIHNlbGYudGlsZXMoa2V5LndpZHRoLCBrZXkuaGVpZ2h0KSBpZiBRUmVjdCgqdCkgJiB0YXJn ZXRdCitAQCAtMzE0LDcgKzMxNCw3IEBAIGNsYXNzIEFic3RyYWN0UmVuZGVyZXI6CisgICAgICAg ICAgICAgICAgIHZzY2FsZSA9IGtleS5oZWlnaHQgLyBoZWlnaHQKKyAgICAgICAgICAgICAgICAg Zm9yIHQgaW4gdGlsZXNldDoKKyAgICAgICAgICAgICAgICAgICAgICMgc2NhbGUgdG8gb3VyIGlt YWdlIHNpemUKKy0gICAgICAgICAgICAgICAgICAgIHIgPSBRUmVjdCh0LnggKiBoc2NhbGUsIHQu eSAqIHZzY2FsZSwgdC53ICogaHNjYWxlLCB0LmggKiB2c2NhbGUpICYgdGFyZ2V0CisrICAgICAg ICAgICAgICAgICAgICByID0gUVJlY3QoaW50KHQueCAqIGhzY2FsZSksIGludCh0LnkgKiB2c2Nh bGUpLCBpbnQodC53ICogaHNjYWxlKSwgaW50KHQuaCAqIHZzY2FsZSkpICYgdGFyZ2V0CisgICAg ICAgICAgICAgICAgICAgICBpZiByIGFuZCBRUmVnaW9uKHIpLnN1YnRyYWN0ZWQocmVnaW9uKToK KyAgICAgICAgICAgICAgICAgICAgICAgICAjIHdlIGhhdmUgYW4gaW1hZ2UgdGhhdCBjYW4gYmUg ZHJhd24gaW4gcmVjdCByCisgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlID0gUVJlY3RG KHIueCgpIC8gaHNjYWxlIC0gdC54LCByLnkoKSAvIHZzY2FsZSAtIHQueSwKK2RpZmYgLS1naXQg YS9mcmVzY29iYWxkaV9hcHAvcXBhZ2V2aWV3L3J1YmJlcmJhbmQucHkgYi9mcmVzY29iYWxkaV9h cHAvcXBhZ2V2aWV3L3J1YmJlcmJhbmQucHkKK2luZGV4IGRiYWI3NzJhLi40YTA3M2JjOCAxMDA2 NDQKKy0tLSBhL2ZyZXNjb2JhbGRpX2FwcC9xcGFnZXZpZXcvcnViYmVyYmFuZC5weQorKysrIGIv ZnJlc2NvYmFsZGlfYXBwL3FwYWdldmlldy9ydWJiZXJiYW5kLnB5CitAQCAtNDEsNyArNDEsNyBA QCBjbGFzcyBSdWJiZXJiYW5kKFFXaWRnZXQpOgorICAgICAiIiJBIFJ1YmJlcmJhbmQgdG8gc2Vs ZWN0IGEgcmVjdGFuZ3VsYXIgcmVnaW9uLgorIAorICAgICBBIFJ1YmJlcmJhbmQgaXMgYWRkZWQg dG8gYSBWaWV3IHdpdGggdmlldy5zZXRSdWJiZXJiYW5kKCkuCistICAgIAorKworICAgICBUaGUg UnViYmVyYmFuZCBsZXRzIHRoZSB1c2VyIHNlbGVjdCBhIHJlY3Rhbmd1bGFyIHJlZ2lvbi4gV2hl biB0aGUKKyAgICAgc2VsZWN0aW9uIGlzIGNoYW5nZWQsIHRoZSBgc2VsZWN0aW9uQ2hhbmdlZGAg c2lnbmFsIGlzIGVtaXR0ZWQsIGhhdmluZyB0aGUKKyAgICAgc2VsZWN0aW9uIHJlY3RhbmdsZSBp biBsYXlvdXQgY29vcmRpbmF0ZXMgYXMgYXJndW1lbnQuCitAQCAtNTEsNyArNTEsNyBAQCBjbGFz cyBSdWJiZXJiYW5kKFFXaWRnZXQpOgorICAgICAgICAgc2hvd2J1dHRvbiAoUXQuUmlnaHRCdXR0 b24pLCB0aGUgYnV0dG9uIHVzZWQgdG8gZHJhZyBhIG5ldyByZWN0YW5nbGUKKyAKKyAgICAgICAg IGRyYWdidXR0b24gKFF0LkxlZnRCdXR0b24pLCB0aGUgYnV0dG9uIHRvIGFsdGVyIGFuIGV4aXN0 aW5nIHJlY3RhbmdsZQorLSAgICAgICAgCisrCisgICAgICAgICB0cmFja1NlbGVjdGlvbiAoRmFs c2UpLCB3aGV0aGVyIHRvIGNvbnRpbnVvdXNseSBlbWl0IHNlbGVjdGlvbkNoYW5nZWQoKS4KKyAg ICAgICAgICAgICAgICAgV2hlbiBUcnVlLCBzZWxlY3Rpb25DaGFuZ2VkKCkgaXMgZW1pdHRlZCBv biBldmVyeSBjaGFuZ2UsIHdoZW4KKyAgICAgICAgICAgICAgICAgRmFsc2UsIHRoZSBzaWduYWwg aXMgb25seSBlbWl0dGVkIHdoZW4gdGhlIG1vdXNlIGJ1dHRvbiBpcworQEAgLTkzLDcgKzkzLDcg QEAgY2xhc3MgUnViYmVyYmFuZChRV2lkZ2V0KToKKyAgICAgICAgIGNvbG9yLnNldEFscGhhKDE1 MCkKKyAgICAgICAgIHBhaW50ZXIuc2V0UGVuKGNvbG9yKQorICAgICAgICAgIyBYWFggY2FuIHRo aXMgYWRqdXN0bWVudCBiZSBkb25lIHNtYXJ0ZXI/CistICAgICAgICBhZGp1c3QgPSAtMSAvIHNl bGYuZGV2aWNlUGl4ZWxSYXRpbygpCisrICAgICAgICBhZGp1c3QgPSBpbnQoLTEgLyBzZWxmLmRl dmljZVBpeGVsUmF0aW8oKSkKKyAgICAgICAgIHBhaW50ZXIuZHJhd1JlY3Qoc2VsZi5yZWN0KCku YWRqdXN0ZWQoMCwgMCwgYWRqdXN0LCBhZGp1c3QpKQorIAorICAgICAgICAgIyBQc2V1ZG8taGFu ZGxlcyBhdCB0aGUgY29ybmVycyBhbmQgc2lkZXMKK0BAIC0xNDgsMjEgKzE0OCwyMSBAQCBjbGFz cyBSdWJiZXJiYW5kKFFXaWRnZXQpOgorICAgICAgICAgICAgIHNlbGYuc2V0Q3Vyc29yKGN1cnNv cikKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgc2VsZi51bnNldEN1cnNvcigpCistICAg IAorKworICAgICBkZWYgaGFzU2VsZWN0aW9uKHNlbGYpOgorICAgICAgICAgIiIiUmV0dXJuIFRy dWUgd2hlbiB0aGVyZSBpcyBhIHNlbGVjdGlvbi4iIiIKKyAgICAgICAgIHJldHVybiBib29sKHNl bGYuX3NlbGVjdGlvbikKKy0gICAgCisrCisgICAgIGRlZiBzZWxlY3Rpb24oc2VsZik6CisgICAg ICAgICAiIiJSZXR1cm4gb3VyIHNlbGVjdGlvbiByZWN0YW5nbGUsIHJlbGF0aXZlIHRvIHRoZSB2 aWV3J3MgbGF5b3V0IHBvc2l0aW9uLiIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX3NlbGVjdGlv bgorLSAgICAKKysKKyAgICAgZGVmIHNlbGVjdGVkUGFnZXMoc2VsZik6CisgICAgICAgICAiIiJZ aWVsZCB0dXBsZXMgKHBhZ2UsIHJlY3QpIGRlc2NyaWJpbmcgdGhlIHNlbGVjdGlvbi4KKy0gICAg ICAgIAorKworICAgICAgICAgRXZlcnkgcmVjdCBpcyBpbnRlcnNlY3RlZCB3aXRoIHRoZSBwYWdl IHJlY3QgYW5kIHRyYW5zbGF0ZWQgdG8gdGhlCisgICAgICAgICBwYWdlJ3MgcG9zaXRpb24uCist ICAgICAgICAKKysKKyAgICAgICAgICIiIgorICAgICAgICAgcmVjdCA9IHNlbGYuc2VsZWN0aW9u KCkKKyAgICAgICAgIGlmIHJlY3Q6CitAQCAtMTcwLDcgKzE3MCw3IEBAIGNsYXNzIFJ1YmJlcmJh bmQoUVdpZGdldCk6CisgICAgICAgICAgICAgbGF5b3V0ID0gdmlldy5wYWdlTGF5b3V0KCkKKyAg ICAgICAgICAgICBmb3IgcGFnZSBpbiBsYXlvdXQucGFnZXNBdChyZWN0KToKKyAgICAgICAgICAg ICAgICAgeWllbGQgcGFnZSwgcmVjdC5pbnRlcnNlY3RlZChwYWdlLmdlb21ldHJ5KCkpLnRyYW5z bGF0ZWQoLXBhZ2UucG9zKCkpCistICAgIAorKworICAgICBkZWYgc2VsZWN0ZWRQYWdlKHNlbGYp OgorICAgICAgICAgIiIiUmV0dXJucyAocGFnZSwgcmVjdCkgaWYgdGhlcmUgaXMgYSBzZWxlY3Rp b24uCisgCitAQCAtMjExLDEwICsyMTEsMTAgQEAgY2xhc3MgUnViYmVyYmFuZChRV2lkZ2V0KToK KyAKKyAgICAgZGVmIHNlbGVjdGVkTGlua3Moc2VsZik6CisgICAgICAgICAiIiJZaWVsZCB0dXBs ZXMgKHBhZ2UsIGxpbmtzKSBmb3IgZXZlcnkgcGFnZSBpbiB0aGUgc2VsZWN0aW9uLgorLSAgICAg ICAgCisrCisgICAgICAgICBsaW5rcyBpcyBhIG5vbi1lbXB0eSBzZXQoKSBvZiBMaW5rIGluc3Rh bmNlcyBvbiB0aGF0IHBhZ2UgdGhhdCBpbnRlcnNlY3QKKyAgICAgICAgIHdpdGggdGhlIHNlbGVj dGlvbi4KKy0gICAgICAgIAorKworICAgICAgICAgIiIiCisgICAgICAgICBmb3IgcGFnZSwgcmVj dCBpbiBzZWxmLnNlbGVjdGVkUGFnZXMoKToKKyAgICAgICAgICAgICBsaW5rcyA9IHBhZ2UubGlu a3NJbihyZWN0KQorQEAgLTIzNCwxOSArMjM0LDE5IEBAIGNsYXNzIFJ1YmJlcmJhbmQoUVdpZGdl dCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHNlbGYuaGlkZSgpCisgICAgICAgICAg ICAgc2VsZi5fc2V0U2VsZWN0aW9uRnJvbUdlb21ldHJ5KFFSZWN0KCkpCistICAgIAorKworICAg ICBkZWYgY2xlYXJTZWxlY3Rpb24oc2VsZik6CisgICAgICAgICAiIiJIaWRlIG91cnNlbHZlcyBh bmQgY2xlYXIgdGhlIHNlbGVjdGlvbi4iIiIKKyAgICAgICAgIHNlbGYuaGlkZSgpCisgICAgICAg ICBzZWxmLl9kcmFnZ2luZyA9IEZhbHNlCisgICAgICAgICBzZWxmLl9zZXRTZWxlY3Rpb25Gcm9t R2VvbWV0cnkoUVJlY3QoKSkKKy0gICAgICAgIAorKworICAgICBkZWYgX3NldFNlbGVjdGlvbkZy b21HZW9tZXRyeShzZWxmLCByZWN0KToKKyAgICAgICAgICIiIihJbnRlcm5hbCkgQ2FsbGVkIHRv IGVtaXQgdGhlIHNlbGVjdGlvbkNoYW5nZWQgc2lnbmFsLgorLSAgICAgICAgCisrCisgICAgICAg ICBPbmx5IGVtaXRzIHRoZSBzaWduYWwgd2hlbiB0aGUgc2VsZWN0aW9uIHJlYWxseSBjaGFuZ2Vk LgorICAgICAgICAgVGhlIHJlY3Qgc2hvdWxkIGJlIG91ciBnZW9tZXRyeSBvciBhbiBlbXB0eSBR UmVjdCgpLgorLSAgICAgICAgCisrCisgICAgICAgICAiIiIKKyAgICAgICAgIGlmIHJlY3Q6Cisg ICAgICAgICAgICAgdmlldyA9IHNlbGYucGFyZW50KCkucGFyZW50KCkKK0BAIC0yNTQsMTYgKzI1 NCwxNiBAQCBjbGFzcyBSdWJiZXJiYW5kKFFXaWRnZXQpOgorICAgICAgICAgb2xkLCBzZWxmLl9z ZWxlY3Rpb24gPSBzZWxmLl9zZWxlY3Rpb24sIHJlY3QKKyAgICAgICAgIGlmIHJlY3QgIT0gb2xk OgorICAgICAgICAgICAgIHNlbGYuc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHJlY3QpCistICAgIAor KworICAgICBkZWYgX3NldExheW91dE9mZnNldChzZWxmLCBwb3MpOgorICAgICAgICAgIiIiU3Rv cmUgdGhlIHBvc2l0aW9uIGFzIG9mZnNldCBmcm9tIHRoZSBsYXlvdXQsIGFuZCBhbHNvIGZyb20g dGhlIHBhZ2UKKyAgICAgICAgIGF0IHRoYXQgcG9zaXRpb24uIFVzZWQgZm9yIGtlZXBpbmcgdGhl IHNhbWUgc3BvdCBvbiB6b29tIGNoYW5nZS4KKy0gICAgICAgIAorKworICAgICAgICAgIiIiCisg ICAgICAgICB2aWV3ID0gc2VsZi5wYXJlbnQoKS5wYXJlbnQoKQorICAgICAgICAgcG9zID0gcG9z IC0gdmlldy5sYXlvdXRQb3NpdGlvbigpCisgICAgICAgICBzZWxmLl9sYXlvdXRPZmZzZXQgPSB2 aWV3LnBhZ2VMYXlvdXQoKS5wb3Myb2Zmc2V0KHBvcykKKy0gICAgCisrCisgICAgIGRlZiBfZ2V0 TGF5b3V0T2Zmc2V0KHNlbGYpOgorICAgICAgICAgIiIiR2V0IHRoZSBzdG9yZWQgbGF5b3V0IG9m ZnNldCBwb3NpdGlvbiBiYWNrLCBhZnRlciB6b29tIG9yIG1vdmUuIiIiCisgICAgICAgICB2aWV3 ID0gc2VsZi5wYXJlbnQoKS5wYXJlbnQoKQorQEAgLTM0MCw3ICszNDAsNyBAQCBjbGFzcyBSdWJi ZXJiYW5kKFFXaWRnZXQpOgorICAgICAgICAgICAgIGdlb20gPSBRUmVjdChzZWxmLl9nZXRMYXlv dXRPZmZzZXQoKSwgc2VsZi5zaXplKCkgKiBmYWN0b3IpCisgICAgICAgICAgICAgc2VsZi5zZXRH ZW9tZXRyeShnZW9tKQorICAgICAgICAgICAgIHNlbGYuX3NldFNlbGVjdGlvbkZyb21HZW9tZXRy eShnZW9tKQorLSAgICAKKysKKyAgICAgZGVmIGV2ZW50RmlsdGVyKHNlbGYsIHZpZXdwb3J0LCBl dik6CisgICAgICAgICAiIiJBY3Qgb24gZXZlbnRzIGluIHRoZSB2aWV3cG9ydDoKKyAKK2RpZmYg LS1naXQgYS9mcmVzY29iYWxkaV9hcHAvcXBhZ2V2aWV3L3Njcm9sbGFyZWEucHkgYi9mcmVzY29i YWxkaV9hcHAvcXBhZ2V2aWV3L3Njcm9sbGFyZWEucHkKK2luZGV4IDZmNGRjYWYxLi41YTBjNTYz MSAxMDA2NDQKKy0tLSBhL2ZyZXNjb2JhbGRpX2FwcC9xcGFnZXZpZXcvc2Nyb2xsYXJlYS5weQor KysrIGIvZnJlc2NvYmFsZGlfYXBwL3FwYWdldmlldy9zY3JvbGxhcmVhLnB5CitAQCAtNDYsNyAr NDYsNyBAQCBjbGFzcyBTY3JvbGxBcmVhKFFBYnN0cmFjdFNjcm9sbEFyZWEpOgorICAgICAgICAg ZHJhZ2dpbmdFbmFibGVkIChUcnVlKToKKyAgICAgICAgICAgICBJZiBlbmFibGVkLCB0aGUgdXNl ciBjYW4gZHJhZyB0aGUgY29udGVudHMgb2YgdGhlIHNjcm9sbGFyZWEgdG8KKyAgICAgICAgICAg ICBtb3ZlIGl0IHdpdGggdGhlIG1vdXNlLgorLSAgICAgICAgICAgIAorKworICAgICAiIiIKKyAK KyAgICAgYWxpZ25tZW50ID0gUXQuQWxpZ25DZW50ZXIKK0BAIC0xMDksMTAgKzEwOSwxMCBAQCBj bGFzcyBTY3JvbGxBcmVhKFFBYnN0cmFjdFNjcm9sbEFyZWEpOgorIAorICAgICBkZWYgYXJlYVBv cyhzZWxmKToKKyAgICAgICAgICIiIlJldHVybiB0aGUgcG9zaXRpb24gb2YgdGhlIGFyZWEgcmVs YXRpdmUgdG8gdGhlIHZpZXdwb3J0LgorLSAgICAgICAgCisrCisgICAgICAgICBUaGUgYWxpZ25t ZW50IGF0dHJpYnV0ZSBpcyB0YWtlbiBpbnRvIGFjY291bnQgd2hlbiB0aGUgYXJlYSBpcyBzbWFs bGVyCisgICAgICAgICB0aGFuIHRoZSB2aWV3cG9ydCAoaG9yaXpvbnRhbGx5IGFuZC9vciB2ZXJ0 aWNhbGx5KS4KKy0gICAgICAgIAorKworICAgICAgICAgIiIiCisgICAgICAgICB3LCBoID0gc2Vs Zi5fYXJlYVNpemUKKyAgICAgICAgIHZ3ID0gc2VsZi52aWV3cG9ydCgpLndpZHRoKCkKK0BAIC0x MjMsMTMgKzEyMywxMyBAQCBjbGFzcyBTY3JvbGxBcmVhKFFBYnN0cmFjdFNjcm9sbEFyZWEpOgor ICAgICAgICAgaWYgdG9wIDwgMDoKKyAgICAgICAgICAgICB0b3AgPSAtc2VsZi52ZXJ0aWNhbFNj cm9sbEJhcigpLnZhbHVlKCkKKyAgICAgICAgIHJldHVybiBRUG9pbnQobGVmdCwgdG9wKQorLSAg ICAKKysKKyAgICAgZGVmIHZpc2libGVBcmVhKHNlbGYpOgorICAgICAgICAgIiIiUmV0dXJuIGEg cmVjdGFuZ2xlIGRlc2NyaWJpbmcgdGhlIHBhcnQgb2YgdGhlIGFyZWEgdGhhdCBpcyB2aXNpYmxl LiIiIgorICAgICAgICAgcG9zID0gc2VsZi5hcmVhUG9zKCkKKyAgICAgICAgIHIgPSBzZWxmLnZp ZXdwb3J0KCkucmVjdCgpICYgUVJlY3QocG9zLCBzZWxmLmFyZWFTaXplKCkpCisgICAgICAgICBy ZXR1cm4gci50cmFuc2xhdGVkKC1wb3MpCistICAgICAgICAKKysKKyAgICAgZGVmIG9mZnNldFRv RW5zdXJlVmlzaWJsZShzZWxmLCByZWN0KToKKyAgICAgICAgICIiIlJldHVybiBhbiBvZmZzZXQg UVBvaW50IHdpdGggdGhlIG1pbmltYWwgc2Nyb2xsIHRvIG1ha2UgcmVjdCB2aXNpYmxlLgorIAor QEAgLTE1MywxMiArMTUzLDEyIEBAIGNsYXNzIFNjcm9sbEFyZWEoUUFic3RyYWN0U2Nyb2xsQXJl YSk6CisgCisgICAgIGRlZiBlbnN1cmVWaXNpYmxlKHNlbGYsIHJlY3QsIG1hcmdpbnM9Tm9uZSwg YWxsb3dLaW5ldGljPVRydWUpOgorICAgICAgICAgIiIiUGVyZm9ybXMgdGhlIG1pbmltYWwgc2Ny b2xsIHRvIG1ha2UgcmVjdCB2aXNpYmxlLgorLSAgICAgICAgCisrCisgICAgICAgICBJZiB0aGUg cmVjdCBpcyBub3QgY29tcGxldGVseSB2aXNpYmxlIGl0IGlzIHNjcm9sbGVkIGludG8gdmlldywg YWRkaW5nCisgICAgICAgICB0aGUgbWFyZ2lucyBpZiBnaXZlbiAoYSBRTWFyZ2lucyBpbnN0YW5j ZSkuIElmIGFsbG93S2luZXRpYyBpcyBGYWxzZSwKKyAgICAgICAgIGltbWVkaWF0ZWx5IGp1bXBz IHRvIHRoZSBwb3NpdGlvbiwgb3RoZXJ3aXNlIHNjcm9sbHMgc21vb3RobHkgKGlmCisgICAgICAg ICBraW5ldGljIHNjcm9sbGluZyBpcyBlbmFibGVkKS4KKy0gICAgICAgIAorKworICAgICAgICAg IiIiCisgICAgICAgICBpZiByZWN0IG5vdCBpbiBzZWxmLnZpc2libGVBcmVhKCk6CisgICAgICAg ICAgICAgaWYgbWFyZ2lucyBpcyBub3QgTm9uZToKK0BAIC0xNzEsOSArMTcxLDkgQEAgY2xhc3Mg U2Nyb2xsQXJlYShRQWJzdHJhY3RTY3JvbGxBcmVhKToKKyAKKyAgICAgZGVmIF91cGRhdGVTY3Jv bGxCYXJzKHNlbGYpOgorICAgICAgICAgIiIiSW50ZXJuYWwuIEFkanVzdCB0aGUgcmFuZ2Ugb2Yg dGhlIHNjcm9sbGJhcnMgdG8gdGhlIGFyZWEgc2l6ZS4KKy0gICAgICAgIAorKworICAgICAgICAg Q2FsbGVkIGluIHNldEFyZWFTaXplKCkgYW5kIHJlc2l6ZUV2ZW50KCkuCistICAgICAgICAKKysK KyAgICAgICAgICIiIgorICAgICAgICAgdywgaCA9IHNlbGYuX2FyZWFTaXplCisgICAgICAgICBt YXhzaXplID0gc2VsZi5tYXhpbXVtVmlld3BvcnRTaXplKCkKK0BAIC0xODYsMTAgKzE4NiwxMCBA QCBjbGFzcyBTY3JvbGxBcmVhKFFBYnN0cmFjdFNjcm9sbEFyZWEpOgorICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICB2aWV3cG9ydCA9IHNlbGYudmlld3BvcnQoKQorICAgICAgICAgICAgIHZi YXIuc2V0UmFuZ2UoMCwgaCAtIHZpZXdwb3J0LmhlaWdodCgpKQorLSAgICAgICAgICAgIHZiYXIu c2V0UGFnZVN0ZXAodmlld3BvcnQuaGVpZ2h0KCkgKiAuOSkKKysgICAgICAgICAgICB2YmFyLnNl dFBhZ2VTdGVwKGludCh2aWV3cG9ydC5oZWlnaHQoKSAqIC45KSkKKyAgICAgICAgICAgICBoYmFy LnNldFJhbmdlKDAsIHcgLSB2aWV3cG9ydC53aWR0aCgpKQorLSAgICAgICAgICAgIGhiYXIuc2V0 UGFnZVN0ZXAodmlld3BvcnQud2lkdGgoKSAqIC45KQorLSAgICAgICAgCisrICAgICAgICAgICAg aGJhci5zZXRQYWdlU3RlcChpbnQodmlld3BvcnQud2lkdGgoKSAqIC45KSkKKysKKyAgICAgZGVm IHNjcm9sbE9mZnNldChzZWxmKToKKyAgICAgICAgICIiIlJldHVybiB0aGUgY3VycmVudCBzY3Jv bGwgb2Zmc2V0LiIiIgorICAgICAgICAgeCA9IHNlbGYuaG9yaXpvbnRhbFNjcm9sbEJhcigpLnZh bHVlKCkKK0BAIC0yOTUsNyArMjk1LDcgQEAgY2xhc3MgU2Nyb2xsQXJlYShRQWJzdHJhY3RTY3Jv bGxBcmVhKToKKyAgICAgICAgICIiIkJlZ2luIGEgc2Nyb2xsaW5nIG9wZXJhdGlvbiB1c2luZyB0 aGUgc3BlY2lmaWVkIHNjcm9sbGVyLiIiIgorICAgICAgICAgc2VsZi5fc2Nyb2xsZXIgPSBzY3Jv bGxlcgorICAgICAgICAgaWYgc2VsZi5fc2Nyb2xsVGltZXIgaXMgTm9uZToKKy0gICAgICAgICAg ICBzZWxmLl9zY3JvbGxUaW1lciA9IHNlbGYuc3RhcnRUaW1lcigxMDAwIC8gc2VsZi5zY3JvbGx1 cGRhdGVzcGVyc2VjKQorKyAgICAgICAgICAgIHNlbGYuX3Njcm9sbFRpbWVyID0gc2VsZi5zdGFy dFRpbWVyKGludCgxMDAwIC8vIHNlbGYuc2Nyb2xsdXBkYXRlc3BlcnNlYykpCisgCisgICAgIGRl ZiBzdG9wU2Nyb2xsaW5nKHNlbGYpOgorICAgICAgICAgIiIiU3RvcCBzY3JvbGxpbmcuIiIiCitA QCAtMzA3LDcgKzMwNyw3IEBAIGNsYXNzIFNjcm9sbEFyZWEoUUFic3RyYWN0U2Nyb2xsQXJlYSk6 CisgICAgIGRlZiBpc1Njcm9sbGluZyhzZWxmKToKKyAgICAgICAgICIiIlJldHVybiBUcnVlIGlm IGEgc2Nyb2xsaW5nIG1vdmVtZW50IGlzIGFjdGl2ZS4iIiIKKyAgICAgICAgIHJldHVybiBzZWxm Ll9zY3JvbGxlciBpcyBub3QgTm9uZQorLSAgICAKKysKKyAgICAgZGVmIHJlbWFpbmluZ1Njcm9s bFRpbWUoc2VsZik6CisgICAgICAgICAiIiJJZiBhIGtpbmV0aWMgc2Nyb2xsIGlzIGFjdGl2ZSwg cmV0dXJuIGhvdyBtYW55IG1zZWNzIHRoZSBzY3JvbGwgd2lsIGxhc3QuCisgCitAQCAtMzc1LDcg KzM3NSw3IEBAIGNsYXNzIFNjcm9sbEFyZWEoUUFic3RyYWN0U2Nyb2xsQXJlYSk6CisgICAgICAg ICAgICAgc2VsZi5fZHJhZ1RpbWUgPSBOb25lCisgICAgICAgICAgICAgc2VsZi5fZHJhZ1NwZWVk ID0gTm9uZQorICAgICAgICAgc3VwZXIoKS5tb3VzZVJlbGVhc2VFdmVudChldikKKy0gICAgICAg IAorKworIAorIGNsYXNzIFNjcm9sbGVyOgorICAgICAiIiJBYnN0cmFjdCBiYXNlIGNsYXNzLCBl bmNhcHN1bGF0ZXMgc2Nyb2xsaW5nIGJlaGF2aW91ci4KK0BAIC00NTMsMTMgKzQ1MywxMyBAQCBj bGFzcyBLaW5ldGljU2Nyb2xsZXIoU2Nyb2xsZXIpOgorICAgICAgICAgIyAoVE9ETzogYWRhcHQg Zm9yIG90aGVyIHRpY2tlciBzcGVlZHM/IFdCKQorICAgICAgICAgaWYgc3kgPiAxMDA6CisgICAg ICAgICAgICAgc3kgPSAxMDAKKy0gICAgICAgIG9mZnkgPSBhYnMoZHkpIC0gc3kgKiAoc3kgKyAx KSAvLyAyCisrICAgICAgICBvZmZ5ID0gaW50KGFicyhkeSkgLSBzeSAqIChzeSArIDEpIC8vIDIp CisgCisgICAgICAgICAjIEFsdGhvdWdoIGl0IGlzIGxlc3MgbGlrZWx5IHRvIGdvIGJleW9uZCB0 aGF0IGxpbWl0IGZvciBob3Jpem9udGFsIHNjcm9sbGluZywKKyAgICAgICAgICMgZG8gaXQgZm9y IHggYXMgd2VsbC4KKyAgICAgICAgIGlmIHN4ID4gMTAwOgorICAgICAgICAgICAgIHN4ID0gMTAw CistICAgICAgICBvZmZ4ID0gYWJzKGR4KSAtIHN4ICogKHN4ICsgMSkgLy8gMgorKyAgICAgICAg b2ZmeCA9IGludChhYnMoZHgpIC0gc3ggKiAoc3ggKyAxKSAvLyAyKQorIAorICAgICAgICAgIyBh ZGp1c3QgZGlyZWN0aW9ucworICAgICAgICAgaWYgZHggPCAwOgorZGlmZiAtLWdpdCBhL2ZyZXNj b2JhbGRpX2FwcC9xcGFnZXZpZXcvc2hhZG93LnB5IGIvZnJlc2NvYmFsZGlfYXBwL3FwYWdldmll dy9zaGFkb3cucHkKK2luZGV4IGM3ZDFjOGQ1Li41YjBjZDE3YiAxMDA2NDQKKy0tLSBhL2ZyZXNj b2JhbGRpX2FwcC9xcGFnZXZpZXcvc2hhZG93LnB5CisrKysgYi9mcmVzY29iYWxkaV9hcHAvcXBh Z2V2aWV3L3NoYWRvdy5weQorQEAgLTM3LDEwICszNywxMCBAQCBjbGFzcyBTaGFkb3dWaWV3TWl4 aW46CisgCisgICAgIGRlZiBwYWludEV2ZW50KHNlbGYsIGV2KToKKyAgICAgICAgIGlmIHNlbGYu ZHJvcFNoYWRvd0VuYWJsZWQ6CistICAgICAgICAgICAgd2lkdGggPSBzZWxmLl9wYWdlTGF5b3V0 LnNwYWNpbmcgLyAyCisrICAgICAgICAgICAgd2lkdGggPSByb3VuZChzZWxmLl9wYWdlTGF5b3V0 LnNwYWNpbmcgLyAyLjApCisgICAgICAgICAgICAgIyBtYWtlIHRoZSByZWN0IHNsaWdodGx5IGxh cmdlciwgc28gd2UgInNlZSIgc2hhZG93IG9mIHBhZ2VzIHRoYXQKKyAgICAgICAgICAgICAjIHdv dWxkIGJlIG91dHNpZGUgdmlldyBub3JtYWxseS4KKy0gICAgICAgICAgICByZWN0ID0gZXYucmVj dCgpLmFkanVzdGVkKC13aWR0aCwgLXdpZHRoLCB3aWR0aCAvIDIsIHdpZHRoIC8gMikKKysgICAg ICAgICAgICByZWN0ID0gZXYucmVjdCgpLmFkanVzdGVkKC13aWR0aCwgLXdpZHRoLCBpbnQod2lk dGggLy8gMiksIGludCh3aWR0aCAvLyAyKSkKKyAgICAgICAgICAgICBwYWludGVyID0gUVBhaW50 ZXIoc2VsZi52aWV3cG9ydCgpKQorICAgICAgICAgICAgIGZvciBwYWdlLCByZWN0IGluIHNlbGYu cGFnZXNUb1BhaW50KHJlY3QsIHBhaW50ZXIpOgorICAgICAgICAgICAgICAgICBzZWxmLmRyYXdE cm9wU2hhZG93KHBhZ2UsIHBhaW50ZXIsIHdpZHRoKQorQEAgLTQ4LDE5ICs0OCwxOSBAQCBjbGFz cyBTaGFkb3dWaWV3TWl4aW46CisgCisgICAgIGRlZiBkcmF3RHJvcFNoYWRvdyhzZWxmLCBwYWdl LCBwYWludGVyLCB3aWR0aCk6CisgICAgICAgICAiIiJEcmF3IGEgZHJvcCBzaGFkb3cgb2Ygd2lk dGggcGl4ZWxzIGFyb3VuZCB0aGUgUGFnZS4KKy0gICAgICAgIAorKworICAgICAgICAgVGhlIHBh aW50ZXIgaXMgYWxyZWFkeSB0cmFuc2xhdGVkIHRvIHRoZSB0b3BsZWZ0IGNvcm5lciBvZiB0aGUg UGFnZS4KKy0gICAgICAgIAorKworICAgICAgICAgIiIiCisgICAgICAgICB3aWR0aCA9IHJvdW5k KHdpZHRoKQorLSAgICAgICAgcmVjdCA9IHBhZ2UucmVjdCgpLmFkanVzdGVkKHdpZHRoIC8gMiwg d2lkdGggLyAyLCAwLCAwKQorKyAgICAgICAgcmVjdCA9IHBhZ2UucmVjdCgpLmFkanVzdGVkKGlu dCh3aWR0aCAvLyAyKSwgaW50KHdpZHRoIC8vIDIpLCAwLCAwKQorICAgICAgICAgY29sb3IgPSBR Q29sb3IoUXQuYmxhY2spCisgICAgICAgICBwZW4gPSBRUGVuKCkKKyAgICAgICAgIHBlbi5zZXRX aWR0aCgxKQorICAgICAgICAgcGVuLnNldEpvaW5TdHlsZShRdC5NaXRlckpvaW4pCisgICAgICAg ICBmb3IgaSBpbiByYW5nZSh3aWR0aCk6CisgICAgICAgICAgICAgZiA9ICh3aWR0aC1pKS93aWR0 aAorLSAgICAgICAgICAgIGNvbG9yLnNldEFscGhhKDIwMCoqZiArIDU1KmYpCisrICAgICAgICAg ICAgY29sb3Iuc2V0QWxwaGEoaW50KDIwMCoqZiArIDU1KmYpKQorICAgICAgICAgICAgIHBlbi5z ZXRDb2xvcihjb2xvcikKKyAgICAgICAgICAgICBwYWludGVyLnNldFBlbihwZW4pCisgICAgICAg ICAgICAgcGFpbnRlci5kcmF3UmVjdChyZWN0LmFkanVzdGVkKC1pLCAtaSwgaSwgaSkpCitkaWZm IC0tZ2l0IGEvZnJlc2NvYmFsZGlfYXBwL3dpZGdldHMvbGluZW51bWJlcmFyZWEucHkgYi9mcmVz Y29iYWxkaV9hcHAvd2lkZ2V0cy9saW5lbnVtYmVyYXJlYS5weQoraW5kZXggZjA5NzcyNmMuLmZm MzhiY2M2IDEwMDY0NAorLS0tIGEvZnJlc2NvYmFsZGlfYXBwL3dpZGdldHMvbGluZW51bWJlcmFy ZWEucHkKKysrKyBiL2ZyZXNjb2JhbGRpX2FwcC93aWRnZXRzL2xpbmVudW1iZXJhcmVhLnB5CitA QCAtMjEsNyArMjEsNyBAQAorIEEgbGluZSBudW1iZXIgYXJlYSB0byBiZSB1c2VkIGluIGEgUVBs YWluVGV4dEVkaXQuCisgIiIiCisgCistZnJvbSBQeVF0NS5RdENvcmUgaW1wb3J0IFFFdmVudCwg UVBvaW50LCBRUmVjdCwgUVNpemUsIFF0CisrZnJvbSBQeVF0NS5RdENvcmUgaW1wb3J0IFFFdmVu dCwgUVBvaW50LCBRUmVjdEYsIFFTaXplLCBRdAorIGZyb20gUHlRdDUuUXRHdWkgaW1wb3J0IFFG b250TWV0cmljcywgUU1vdXNlRXZlbnQsIFFQYWludGVyCisgZnJvbSBQeVF0NS5RdFdpZGdldHMg aW1wb3J0IFFBcHBsaWNhdGlvbiwgUVdpZGdldAorIAorQEAgLTcyLDcgKzcyLDcgQEAgY2xhc3Mg TGluZU51bWJlckFyZWEoUVdpZGdldCk6CisgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICBw YWludGVyID0gUVBhaW50ZXIoc2VsZikKKyAgICAgICAgIHBhaW50ZXIuc2V0Rm9udChlZGl0LmZv bnQoKSkKKy0gICAgICAgIHJlY3QgPSBRUmVjdCgwLCAwLCBzZWxmLndpZHRoKCkgLSAyLCBRRm9u dE1ldHJpY3MoZWRpdC5mb250KCkpLmhlaWdodCgpKQorKyAgICAgICAgcmVjdCA9IFFSZWN0Rigw LCAwLCBzZWxmLndpZHRoKCkgLSAyLCBRRm9udE1ldHJpY3MoZWRpdC5mb250KCkpLmhlaWdodCgp KQorICAgICAgICAgYmxvY2sgPSBlZGl0LmZpcnN0VmlzaWJsZUJsb2NrKCkKKyAgICAgICAgIHdo aWxlIGJsb2NrLmlzVmFsaWQoKToKKyAgICAgICAgICAgICBnZW9tID0gZWRpdC5ibG9ja0JvdW5k aW5nR2VvbWV0cnkoYmxvY2spCitkaWZmIC0tZ2l0IGEvZnJlc2NvYmFsZGlfYXBwL3dpZGdldHMv cHJvZ3Jlc3NiYXIucHkgYi9mcmVzY29iYWxkaV9hcHAvd2lkZ2V0cy9wcm9ncmVzc2Jhci5weQor aW5kZXggNjcwYmYwZjUuLjE4M2FiNjI1IDEwMDY0NAorLS0tIGEvZnJlc2NvYmFsZGlfYXBwL3dp ZGdldHMvcHJvZ3Jlc3NiYXIucHkKKysrKyBiL2ZyZXNjb2JhbGRpX2FwcC93aWRnZXRzL3Byb2dy ZXNzYmFyLnB5CitAQCAtNzEsOCArNzEsOCBAQCBjbGFzcyBUaW1lZFByb2dyZXNzQmFyKFFQcm9n cmVzc0Jhcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIHNlbGYuX2hpZGVUaW1lci5zdG9wKCkK KyAgICAgICAgIHNlbGYuX3RpbWVsaW5lLnN0b3AoKQorLSAgICAgICAgc2VsZi5fdGltZWxpbmUu c2V0RHVyYXRpb24odG90YWwgKiAxMDAwKQorLSAgICAgICAgc2VsZi5fdGltZWxpbmUuc2V0Q3Vy cmVudFRpbWUoZWxhcHNlZCAqIDEwMDApCisrICAgICAgICBzZWxmLl90aW1lbGluZS5zZXREdXJh dGlvbihpbnQodG90YWwgKiAxMDAwKSkKKysgICAgICAgIHNlbGYuX3RpbWVsaW5lLnNldEN1cnJl bnRUaW1lKGludChlbGFwc2VkICogMTAwMCkpCisgICAgICAgICBzZWxmLnNldFZhbHVlKHNlbGYu X3RpbWVsaW5lLmN1cnJlbnRGcmFtZSgpKQorICAgICAgICAgc2VsZi5fdGltZWxpbmUucmVzdW1l KCkKKyAgICAgICAgIGlmIHNlbGYuX2hpZGVXaGlsZUlkbGUgYW5kIG5vdCBzZWxmLl9oaWRkZW46 CistLSAKKzIuMzMuMQorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZyZXNjb2JhbGRpL3BhdGNoZXMv MDAwMi1tb3JlLXB5LTMuMTAtZmxvYXQtaW50LWZpeGVzLWlzc3VlLTEzOTgucGF0Y2ggYi9zcmNw a2dzL2ZyZXNjb2JhbGRpL3BhdGNoZXMvMDAwMi1tb3JlLXB5LTMuMTAtZmxvYXQtaW50LWZpeGVz LWlzc3VlLTEzOTgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li44MzM4Y2EyYTM2MmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2ZyZXNjb2JhbGRpL3Bh dGNoZXMvMDAwMi1tb3JlLXB5LTMuMTAtZmxvYXQtaW50LWZpeGVzLWlzc3VlLTEzOTgucGF0Y2gK QEAgLTAsMCArMSwyMDkgQEAKK0Zyb20gYmQ0ZGZlMDM2YjhkYmM1ZDc1NTUyZmU2YjZiMDgxYzAy NGU1YmVlYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFdpbGJlcnQgQmVyZW5kc2Vu IDx3YnNvZnRAeHM0YWxsLm5sPgorRGF0ZTogTW9uLCA4IE5vdiAyMDIxIDA5OjM1OjU5ICswMTAw CitTdWJqZWN0OiBbUEFUQ0ggMi8yXSBtb3JlIHB5IDMuMTAgZmxvYXQtPmludCBmaXhlcywgaXNz dWUgIzEzOTgKKworLS0tCisgZnJlc2NvYmFsZGlfYXBwL3FwYWdldmlldy9wYWdlLnB5ICAgICAg IHwgNTAgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQorIGZyZXNjb2JhbGRpX2FwcC9xcGFnZXZp ZXcvcG9wcGxlci5weSAgICB8ICAyICstCisgZnJlc2NvYmFsZGlfYXBwL3FwYWdldmlldy9zY3Jv bGxhcmVhLnB5IHwgIDggKystLQorIDMgZmlsZXMgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwg MzAgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9mcmVzY29iYWxkaV9hcHAvcXBhZ2V2aWV3 L3BhZ2UucHkgYi9mcmVzY29iYWxkaV9hcHAvcXBhZ2V2aWV3L3BhZ2UucHkKK2luZGV4IGY5M2Zh OWUyLi43NTRkMjczNiAxMDA2NDQKKy0tLSBhL2ZyZXNjb2JhbGRpX2FwcC9xcGFnZXZpZXcvcGFn ZS5weQorKysrIGIvZnJlc2NvYmFsZGlfYXBwL3FwYWdldmlldy9wYWdlLnB5CitAQCAtNDgsNyAr NDgsNyBAQCBjbGFzcyBBYnN0cmFjdFBhZ2UodXRpbC5SZWN0YW5ndWxhcik6CisgCisgICAgIC4u LnRoYXQgbm9ybWFsbHkgZG8gbm90IGNoYW5nZSBkdXJpbmcgaXRzIGxpZmV0aW1lOgorIAorLSAg ICAgICAgYHBhZ2VXaWR0aGAgICAgIHRoZSBvcmlnaW5hbCB3aWR0aCAgKGJ5IGRlZmF1bHQgaW4g cG9pbnRzLCBgZHBpYCBpcyA3Mi4wIAorKyAgICAgICAgYHBhZ2VXaWR0aGAgICAgIHRoZSBvcmln aW5hbCB3aWR0aCAgKGJ5IGRlZmF1bHQgaW4gcG9pbnRzLCBgZHBpYCBpcyA3Mi4wCisgICAgICAg ICBgcGFnZUhlaWdodGAgICAgdGhlIG9yaWdpbmFsIGhlaWdodCAgIGJ1dCBjYW4gYmUgY2hhbmdl ZCBhdCBjbGFzcyBsZXZlbCkKKyAKKyAgICAgLi4uIHRoYXQgY2FuIGJlIG1vZGlmaWVkIGJ5IHRo ZSB1c2VyIChoYXZpbmcgZGVmYXVsdHMgYXQgdGhlIGNsYXNzIGxldmVsKToKK0BAIC0xNzQsMTUg KzE3NCwxNSBAQCBjbGFzcyBBYnN0cmFjdFBhZ2UodXRpbC5SZWN0YW5ndWxhcik6CisgCisgICAg IGRlZiBkZWZhdWx0U2l6ZShzZWxmKToKKyAgICAgICAgICIiIlJldHVybiB0aGUgcGFnZVNpemUo KSBzY2FsZWQgYW5kIHJvdGF0ZWQgKGlmIG5lZWRlZCkuCistICAgICAgICAKKysKKyAgICAgICAg IEJhc2VkIG9uIHNjYWxlWCwgc2NhbGVZLCBhbmQgY29tcHV0ZWRSb3RhdGlvbiBhdHRyaWJ1dGVz LgorLSAgICAgICAgCisrCisgICAgICAgICAiIiIKKyAgICAgICAgIHMgPSBRU2l6ZUYoc2VsZi5w YWdlV2lkdGggKiBzZWxmLnNjYWxlWCwgc2VsZi5wYWdlSGVpZ2h0ICogc2VsZi5zY2FsZVkpCisg ICAgICAgICBpZiBzZWxmLmNvbXB1dGVkUm90YXRpb24gJiAxOgorICAgICAgICAgICAgIHMudHJh bnNwb3NlKCkKKyAgICAgICAgIHJldHVybiBzCistICAgICAgICAKKysKKyAgICAgZGVmIHVwZGF0 ZVNpemUoc2VsZiwgZHBpWCwgZHBpWSwgem9vbUZhY3Rvcik6CisgICAgICAgICAiIiJTZXQgdGhl IHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiB0aGUgcGFnZS4KKyAKK0BAIC0yODYsNyAr Mjg2LDcgQEAgY2xhc3MgQWJzdHJhY3RQYWdlKHV0aWwuUmVjdGFuZ3VsYXIpOgorIAorICAgICAg ICAgcGRmID0gUVBkZldyaXRlcihmaWxlbmFtZSkKKyAgICAgICAgIHBkZi5zZXRDcmVhdG9yKCJx cGFnZXZpZXciKQorLSAgICAgICAgcGRmLnNldFJlc29sdXRpb24ocmVzb2x1dGlvbikKKysgICAg ICAgIHBkZi5zZXRSZXNvbHV0aW9uKGludChyZXNvbHV0aW9uKSkKKyAKKyAgICAgICAgIGxheW91 dCA9IHBkZi5wYWdlTGF5b3V0KCkKKyAgICAgICAgIGxheW91dC5zZXRNb2RlKGxheW91dC5GdWxs UGFnZU1vZGUpCitAQCAtMzUwLDcgKzM1MCw3IEBAIGNsYXNzIEFic3RyYWN0UGFnZSh1dGlsLlJl Y3Rhbmd1bGFyKToKKyAgICAgICAgICAgICBzdmcuc2V0RmlsZU5hbWUoZmlsZW5hbWUpCisgICAg ICAgICBlbHNlOgorICAgICAgICAgICAgIHN2Zy5zZXRPdXRwdXREZXZpY2UoZmlsZW5hbWUpCist ICAgICAgICBzdmcuc2V0UmVzb2x1dGlvbihyZXNvbHV0aW9uKQorKyAgICAgICAgc3ZnLnNldFJl c29sdXRpb24oaW50KHJlc29sdXRpb24pKQorICAgICAgICAgc3ZnLnNldFNpemUodGFyZ2V0U2l6 ZS50b1NpemUoKSkKKyAgICAgICAgIHN2Zy5zZXRWaWV3Qm94KFFSZWN0RigwLCAwLCB0YXJnZXRT aXplLndpZHRoKCksIHRhcmdldFNpemUuaGVpZ2h0KCkpKQorICAgICAgICAgcmV0dXJuIHNlbGYu b3V0cHV0KHN2Zywgc291cmNlLCBwYXBlckNvbG9yKQorQEAgLTM4MSwzMSArMzgxLDMxIEBAIGNs YXNzIEFic3RyYWN0UGFnZSh1dGlsLlJlY3Rhbmd1bGFyKToKKyAKKyAgICAgZGVmIGdyb3VwKHNl bGYpOgorICAgICAgICAgIiIiUmV0dXJuIHRoZSBncm91cCB0aGUgcGFnZSBiZWxvbmdzIHRvLgor LSAgICAgICAgCisrCisgICAgICAgICBUaGlzIGNvdWxkIGJlIHNvbWUgZG9jdW1lbnQgc3RydWN0 dXJlLCBzbyB0aGF0IGRpZmZlcmVudCBQYWdlIG9iamVjdHMKKyAgICAgICAgIGNvdWxkIHJlZmVy IHRvIHRoZSBzYW1lIGdyYXBoaWNhbCBjb250ZW50cywgcHJldmVudGluZyBkb3VibGUgY2FjaGlu Zy4KKy0gICAgICAgIAorKworICAgICAgICAgVGhpcyBvYmplY3QgaXMgdXNlZCB0b2dldGhlciB3 aXRoIHRoZSB2YWx1ZSByZXR1cm5lZCBieSBpZGVudCgpIGFzIGEga2V5CisgICAgICAgICB0byBj YWNoZSB0aGUgcGFnZS4gVGhlIGlkZWEgaXMgdGhhdCB0aGUgY29udGVudHMgb2YgdGhlIHBhZ2Ug YXJlCisgICAgICAgICB1bmlxdWVseSBpZGVudGlmaWVkIGJ5IHRoZSBvYmplY3RzIHJldHVybmVk IGJ5IGdyb3VwKCkgYW5kIGlkZW50KCkuCistICAgICAgICAKKysKKyAgICAgICAgIFRoaXMgd2F5 LCB3aGVuIHRoZSBzYW1lIGRvY3VtZW50IGlzIG9wZW5lZCBpbiBtdWx0aXBsZSBwYWdlIGluc3Rh bmNlcywKKyAgICAgICAgIG9ubHkgb25lIGNvcHkgcmVzaWRlcyBpbiB0aGUgKGdsb2JhbCkgY2Fj aGUuCistICAgICAgICAKKysKKyAgICAgICAgIEJ5IGRlZmF1bHQsIHRoZSBwYWdlIG9iamVjdCBp dHNlbGYgaXMgcmV0dXJuZWQuCistICAgICAgICAKKysKKyAgICAgICAgICIiIgorICAgICAgICAg cmV0dXJuIHNlbGYKKy0gICAgICAgIAorKworICAgICBkZWYgaWRlbnQoc2VsZik6CisgICAgICAg ICAiIiJSZXR1cm4gYSB2YWx1ZSB0aGF0IGlkZW50aWZpZXMgdGhlIHBhZ2Ugd2l0aGluIHRoZSBn cm91cCByZXR1cm5lZAorICAgICAgICAgYnkgZ3JvdXAoKS4KKy0gICAgICAgIAorKworICAgICAg ICAgQnkgZGVmYXVsdCwgTm9uZSBpcyByZXR1cm5lZC4KKy0gICAgICAgIAorKworICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gTm9uZQorLSAgICAKKysKKyAgICAgZGVmIG1hcFRvUGFnZShz ZWxmLCB3aWR0aD1Ob25lLCBoZWlnaHQ9Tm9uZSk6CisgICAgICAgICAiIiJSZXR1cm4gYSBNYXBU b1BhZ2Ugb2JqZWN0LCB0aGF0IGNhbiBtYXAgb3JpZ2luYWwgdG8gUGFnZSBjb29yZGluYXRlcy4K KyAKK0BAIC00MjYsMTAgKzQyNiwxMCBAQCBjbGFzcyBBYnN0cmFjdFBhZ2UodXRpbC5SZWN0YW5n dWxhcik6CisgCisgICAgIGRlZiB0ZXh0KHNlbGYsIHJlY3QpOgorICAgICAgICAgIiIiSW1wbGVt ZW50IHRoaXMgbWV0aG9kIHRvIGdldCB0aGUgdGV4dCBhdCB0aGUgc3BlY2lmaWVkIHJlY3Rhbmds ZS4KKy0gICAgICAgIAorKworICAgICAgICAgVGhlIHJlY3RhbmdsZSBzaG91bGQgYmUgaW4gcGFn ZSBjb29yZGluYXRlcy4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24KKyAgICAgICAgIHNpbXBs eSByZXR1cm5zIGFuIGVtcHR5IHN0cmluZy4KKy0gICAgICAgIAorKworICAgICAgICAgIiIiCisg ICAgICAgICByZXR1cm4gIiIKKyAKK0BAIC00MzcsMjIgKzQzNywyMiBAQCBjbGFzcyBBYnN0cmFj dFBhZ2UodXRpbC5SZWN0YW5ndWxhcik6CisgICAgICAgICAiIiJJbXBsZW1lbnQgdGhpcyBtZXRo b2QgdG8gbG9hZCBvdXIgbGlua3MuIiIiCisgICAgICAgICBmcm9tIC4gaW1wb3J0IGxpbmsKKyAg ICAgICAgIHJldHVybiBsaW5rLkxpbmtzKCkKKy0gICAgCisrCisgICAgIGRlZiBsaW5rcyhzZWxm KToKKyAgICAgICAgICIiIlJldHVybiB0aGUgTGlua3Mgb2JqZWN0LCBjb250YWluaW5nIExpbmsg b2JqZWN0cy4KKy0gICAgICAgIAorKworICAgICAgICAgRXZlcnkgTGluayBkZW5vdGVzIGEgY2xp Y2thYmxlIGFyZWEgb24gYSBQYWdlLCBpbiBjb29yZGluYXRlcyAwLjAtMS4wLgorICAgICAgICAg VGhlIExpbmtzIG9iamVjdCBtYWtlcyBpdCBwb3NzaWJsZSB0byBxdWlja2x5IGZpbmQgYSBsaW5r IG9uIGEgUGFnZS4KKyAgICAgICAgIFRoaXMgaXMgY2FjaGVkIGFmdGVyIHRoZSBmaXJzdCByZXF1 ZXN0LCB5b3Ugc2hvdWxkIGltcGxlbWVudCB0aGUKKyAgICAgICAgIGdldExpbmtzKCkgbWV0aG9k IHRvIGxvYWQgdGhlIGxpbmtzLgorLSAgICAgICAgCisrCisgICAgICAgICAiIiIKKyAgICAgICAg IHRyeToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fbGlua3MKKyAgICAgICAgIGV4Y2VwdCBB dHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICBsaW5rcyA9IHNlbGYuX2xpbmtzID0gc2VsZi5n ZXRMaW5rcygpCisgICAgICAgICByZXR1cm4gbGlua3MKKy0gICAgCisrCisgICAgIGRlZiBsaW5r c0F0KHNlbGYsIHBvaW50KToKKyAgICAgICAgICIiIlJldHVybiBhIGxpc3QoKSBvZiB6ZXJvIG9y IG1vcmUgbGlua3MgdG91Y2hlZCBieSBRUG9pbnQgcG9pbnQuCisgCitAQCAtNDY4LDkgKzQ2OCw5 IEBAIGNsYXNzIEFic3RyYWN0UGFnZSh1dGlsLlJlY3Rhbmd1bGFyKToKKyAKKyAgICAgZGVmIGxp bmtzSW4oc2VsZiwgcmVjdCk6CisgICAgICAgICAiIiJSZXR1cm4gYW4gdW5vcmRlcmVkIHNldCBv ZiBsaW5rcyBlbmNsb3NlZCBpbiByZWN0YW5nbGUuCistICAgICAgICAKKysKKyAgICAgICAgIFRo ZSByZWN0YW5nbGUgaXMgaW4gcGFnZSBjb29yZGluYXRlcy4KKy0gICAgICAgIAorKworICAgICAg ICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5saW5rcygpLmluc2lkZSgqc2VsZi5tYXBGcm9t UGFnZSgxLCAxKS5yZWN0KHJlY3QpLmdldENvb3JkcygpKQorIAorQEAgLTQ4MSw5ICs0ODEsOSBA QCBjbGFzcyBBYnN0cmFjdFBhZ2UodXRpbC5SZWN0YW5ndWxhcik6CisgCisgY2xhc3MgQWJzdHJh Y3RSZW5kZXJlZFBhZ2UoQWJzdHJhY3RQYWdlKToKKyAgICAgIiIiQSBQYWdlIHRoYXQgaGFzIGEg cmVuZGVyZXIgdGhhdCBwZXJmb3JtcyBjYWNoaW5nIGFuZCBwYWludGluZy4KKy0gICAgCisrCisg ICAgIFRoZSByZW5kZXJlciBsaXZlcyBpbiB0aGUgcmVuZGVyZXIgYXR0cmlidXRlLgorLSAgICAK KysKKyAgICAgIiIiCisgICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZW5kZXJlcj1Ob25lKToKKyAg ICAgICAgIGlmIHJlbmRlcmVyIGlzIG5vdCBOb25lOgorZGlmZiAtLWdpdCBhL2ZyZXNjb2JhbGRp X2FwcC9xcGFnZXZpZXcvcG9wcGxlci5weSBiL2ZyZXNjb2JhbGRpX2FwcC9xcGFnZXZpZXcvcG9w cGxlci5weQoraW5kZXggMjY3NjgzNTYuLjgxMGRiY2E1IDEwMDY0NAorLS0tIGEvZnJlc2NvYmFs ZGlfYXBwL3FwYWdldmlldy9wb3BwbGVyLnB5CisrKysgYi9mcmVzY29iYWxkaV9hcHAvcXBhZ2V2 aWV3L3BvcHBsZXIucHkKK0BAIC0yNTksNyArMjU5LDcgQEAgY2xhc3MgUG9wcGxlclJlbmRlcmVy KHJlbmRlci5BYnN0cmFjdFJlbmRlcmVyKToKKyAgICAgICAgIChTZWUgQWJzdHJhY3RQYWdlLnBy aW50KCkuKQorIAorICAgICAgICAgIiIiCistICAgICAgICBzb3VyY2UgPSBzZWxmLm1hcChrZXks IHBhZ2UucGFnZVJlY3QoKSkubWFwUmVjdChRUmVjdEYoKnRpbGUpKQorKyAgICAgICAgc291cmNl ID0gc2VsZi5tYXAoa2V5LCBwYWdlLnBhZ2VSZWN0KCkpLm1hcFJlY3QoUVJlY3RGKCp0aWxlKSku dG9SZWN0KCkgICAjIHJvdW5kZWQKKyAgICAgICAgIHRhcmdldCA9IFFSZWN0RigwLCAwLCB0aWxl LncsIHRpbGUuaCkKKyAgICAgICAgIGlmIGtleS5yb3RhdGlvbiAmIDE6CisgICAgICAgICAgICAg dGFyZ2V0LnNldFNpemUodGFyZ2V0LnNpemUoKS50cmFuc3Bvc2VkKCkpCitkaWZmIC0tZ2l0IGEv ZnJlc2NvYmFsZGlfYXBwL3FwYWdldmlldy9zY3JvbGxhcmVhLnB5IGIvZnJlc2NvYmFsZGlfYXBw L3FwYWdldmlldy9zY3JvbGxhcmVhLnB5CitpbmRleCA1YTBjNTYzMS4uNjcyMmE2ZGIgMTAwNjQ0 CistLS0gYS9mcmVzY29iYWxkaV9hcHAvcXBhZ2V2aWV3L3Njcm9sbGFyZWEucHkKKysrKyBiL2Zy ZXNjb2JhbGRpX2FwcC9xcGFnZXZpZXcvc2Nyb2xsYXJlYS5weQorQEAgLTM2NSw5ICszNjUsOSBA QCBjbGFzcyBTY3JvbGxBcmVhKFFBYnN0cmFjdFNjcm9sbEFyZWEpOgorICAgICAgICAgICAgICAg ICBzcGVlZCA9IHNwZWVkICogMTAwMCAvIHNlbGYuc2Nyb2xsdXBkYXRlc3BlcnNlYyAvIHRpbWUK KyAgICAgICAgICAgICAgICAgIyBjb21wdXRlIGRpZmYgdG8gc2Nyb2xsCisgICAgICAgICAgICAg ICAgIHN4ID0gYWJzKHNwZWVkLngoKSkKKy0gICAgICAgICAgICAgICAgZGlmZnggPSBzeCAqIChz eCArIDEpIC8gMgorKyAgICAgICAgICAgICAgICBkaWZmeCA9IGludChzeCAqIChzeCArIDEpIC8g MikKKyAgICAgICAgICAgICAgICAgc3kgPSBhYnMoc3BlZWQueSgpKQorLSAgICAgICAgICAgICAg ICBkaWZmeSA9IHN5ICogKHN5ICsgMSkgLyAyCisrICAgICAgICAgICAgICAgIGRpZmZ5ID0gaW50 KHN5ICogKHN5ICsgMSkgLyAyKQorICAgICAgICAgICAgICAgICBpZiBzcGVlZC54KCkgPCAwOiBk aWZmeCA9IC1kaWZmeAorICAgICAgICAgICAgICAgICBpZiBzcGVlZC55KCkgPCAwOiBkaWZmeSA9 IC1kaWZmeQorICAgICAgICAgICAgICAgICBzZWxmLmtpbmV0aWNTY3JvbGxCeShRUG9pbnQoZGlm ZngsIGRpZmZ5KSkKK0BAIC00NDQsOCArNDQ0LDggQEAgY2xhc3MgS2luZXRpY1Njcm9sbGVyKFNj cm9sbGVyKToKKyAgICAgICAgIGR5ID0gZGlmZi55KCkKKyAKKyAgICAgICAgICMgc29sdmUgc3Bl ZWQqKHNwZWVkKzEpLzIgPSBkZWx0YSB0byBlbnN1cmUgMSsyKzMrLi4uK3NwZWVkIGlzIGFzIGNs b3NlIGFzIHBvc3NpYmxlIHVuZGVyIGRlbHRhLi4KKy0gICAgICAgIHN4ID0gKG1hdGguc3FydCgx ICsgOCAqIGFicyhkeCkpIC0gMSkgLy8gMgorLSAgICAgICAgc3kgPSAobWF0aC5zcXJ0KDEgKyA4 ICogYWJzKGR5KSkgLSAxKSAvLyAyCisrICAgICAgICBzeCA9IGludChtYXRoLnNxcnQoMSArIDgg KiBhYnMoZHgpKSAtIDEpIC8vIDIKKysgICAgICAgIHN5ID0gaW50KG1hdGguc3FydCgxICsgOCAq IGFicyhkeSkpIC0gMSkgLy8gMgorIAorICAgICAgICAgIyBjb21wdXRlIHRoZSBhbW91bnQgb2Yg ZGlzcGxhY2VtZW50IHN0aWxsIG5lZWRlZCBiZWNhdXNlIHdlJ3JlIGRlYWxpbmcgd2l0aCBpbnRl Z2VyIHZhbHVlcy4KKyAgICAgICAgICMgU2luY2UgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZm9y IGV4YWN0IG1vdmVzIChub3QgZnJlZSBzY3JvbGxpbmcpCistLSAKKzIuMzMuMQorCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2ZyZXNjb2JhbGRpL3BhdGNoZXMvMDAwMy1Nb3JlLWNoYW5nZXMtdG8tZml4 LWVycm9ycy11bmRlci1QeXRob24tMy4xMC5wYXRjaCBiL3NyY3BrZ3MvZnJlc2NvYmFsZGkvcGF0 Y2hlcy8wMDAzLU1vcmUtY2hhbmdlcy10by1maXgtZXJyb3JzLXVuZGVyLVB5dGhvbi0zLjEwLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjIxMmI1MTVlOGFi Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9mcmVzY29iYWxkaS9wYXRjaGVzLzAwMDMtTW9y ZS1jaGFuZ2VzLXRvLWZpeC1lcnJvcnMtdW5kZXItUHl0aG9uLTMuMTAucGF0Y2gKQEAgLTAsMCAr MSw1MCBAQAorRnJvbSA0ZTkxMGU1NWY2NzAwZmFmZTE2ODNhZjc3MGU0YmMyOTljZGQ3MWEyIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGV4dGVyIEdhb24tU2hhdGZvcmQgPGRleHRl ckBnYW9uc2hhdGZvcmQuY2E+CitEYXRlOiBXZWQsIDEwIE5vdiAyMDIxIDE3OjA0OjM0IC0wNTAw CitTdWJqZWN0OiBbUEFUQ0hdIE1vcmUgY2hhbmdlcyB0byBmaXggZXJyb3JzIHVuZGVyIFB5dGhv biAzLjEwCisKK1RoZXJlIGFyZSBhIGZldyBlcnJvcnMgdGhhdCBhcmUgZW5jb3VudGVyZWQgd2hl biBlbmdyYXZpbmcgYSBzY29yZSBpbgordGhlIGVkaXRvciB0aGF0IHdlcmUgbm90IGFkZHJlc3Nl ZCBpbiB0aGUgY2hhbmdlcyBtYWRlIGJ5IHdic29mdAorLS0tCisgZnJlc2NvYmFsZGlfYXBwL3Zp ZXdtYW5hZ2VyLnB5ICAgICAgICAgICAgfCA0ICsrLS0KKyBmcmVzY29iYWxkaV9hcHAvd2lkZ2V0 cy9saW5lbnVtYmVyYXJlYS5weSB8IDIgKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2ZyZXNjb2JhbGRpX2FwcC92aWV3 bWFuYWdlci5weSBiL2ZyZXNjb2JhbGRpX2FwcC92aWV3bWFuYWdlci5weQoraW5kZXggZTEyOTRj OTEuLjA0NmM3MGRmIDEwMDY0NAorLS0tIGEvZnJlc2NvYmFsZGlfYXBwL3ZpZXdtYW5hZ2VyLnB5 CisrKysgYi9mcmVzY29iYWxkaV9hcHAvdmlld21hbmFnZXIucHkKK0BAIC0zMzIsNyArMzMyLDcg QEAgY2xhc3MgVmlld01hbmFnZXIoUVNwbGl0dGVyKToKKyAgICAgICAgICAgICBzcGxpdHRlci5z ZXRPcmllbnRhdGlvbihvcmllbnRhdGlvbikKKyAgICAgICAgICAgICBzaXplID0gc3BsaXR0ZXIu c2l6ZXMoKVswXQorICAgICAgICAgICAgIHNwbGl0dGVyLmFkZFdpZGdldChuZXdzcGFjZSkKKy0g ICAgICAgICAgICBzcGxpdHRlci5zZXRTaXplcyhbc2l6ZSAvIDIsIHNpemUgLyAyXSkKKysgICAg ICAgICAgICBzcGxpdHRlci5zZXRTaXplcyhbc2l6ZSAvLyAyLCBzaXplIC8vIDJdKQorICAgICAg ICAgZWxpZiBzcGxpdHRlci5vcmllbnRhdGlvbigpID09IG9yaWVudGF0aW9uOgorICAgICAgICAg ICAgIGluZGV4ID0gc3BsaXR0ZXIuaW5kZXhPZih2aWV3c3BhY2UpCisgICAgICAgICAgICAgc3Bs aXR0ZXIuaW5zZXJ0V2lkZ2V0KGluZGV4ICsgMSwgbmV3c3BhY2UpCitAQCAtMzQ2LDcgKzM0Niw3 IEBAIGNsYXNzIFZpZXdNYW5hZ2VyKFFTcGxpdHRlcik6CisgICAgICAgICAgICAgc3BsaXR0ZXIu c2V0U2l6ZXMoc2l6ZXMpCisgICAgICAgICAgICAgc2l6ZSA9IG5ld3NwbGl0dGVyLnNpemVzKClb MF0KKyAgICAgICAgICAgICBuZXdzcGxpdHRlci5hZGRXaWRnZXQobmV3c3BhY2UpCistICAgICAg ICAgICAgbmV3c3BsaXR0ZXIuc2V0U2l6ZXMoW3NpemUgLyAyLCBzaXplIC8gMl0pCisrICAgICAg ICAgICAgbmV3c3BsaXR0ZXIuc2V0U2l6ZXMoW3NpemUgLy8gMiwgc2l6ZSAvLyAyXSkKKyAgICAg ICAgIHNlbGYuX3ZpZXdTcGFjZXMuaW5zZXJ0KDAsIG5ld3NwYWNlKQorICAgICAgICAgbmV3c3Bh Y2Uuc2hvd0RvY3VtZW50KHZpZXdzcGFjZS5kb2N1bWVudCgpKQorICAgICAgICAgaWYgYWN0aXZl OgorZGlmZiAtLWdpdCBhL2ZyZXNjb2JhbGRpX2FwcC93aWRnZXRzL2xpbmVudW1iZXJhcmVhLnB5 IGIvZnJlc2NvYmFsZGlfYXBwL3dpZGdldHMvbGluZW51bWJlcmFyZWEucHkKK2luZGV4IGZmMzhi Y2M2Li5hYTEzM2FjNyAxMDA2NDQKKy0tLSBhL2ZyZXNjb2JhbGRpX2FwcC93aWRnZXRzL2xpbmVu dW1iZXJhcmVhLnB5CisrKysgYi9mcmVzY29iYWxkaV9hcHAvd2lkZ2V0cy9saW5lbnVtYmVyYXJl YS5weQorQEAgLTgwLDcgKzgwLDcgQEAgY2xhc3MgTGluZU51bWJlckFyZWEoUVdpZGdldCk6Cisg ICAgICAgICAgICAgaWYgZ2VvbS50b3AoKSA+PSBldi5yZWN0KCkuYm90dG9tKCk6CisgICAgICAg ICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgaWYgYmxvY2suaXNWaXNpYmxlKCkgYW5kIGdl b20uYm90dG9tKCkgPiBldi5yZWN0KCkudG9wKCkgKyAxOgorLSAgICAgICAgICAgICAgICByZWN0 Lm1vdmVUb3AoZ2VvbS50b3AoKSkKKysgICAgICAgICAgICAgICAgcmVjdC5tb3ZlVG9wKGludChn ZW9tLnRvcCgpKSkKKyAgICAgICAgICAgICAgICAgdGV4dCA9IGZvcm1hdChibG9jay5ibG9ja051 bWJlcigpICsgMSwgJ2QnKQorICAgICAgICAgICAgICAgICBwYWludGVyLmRyYXdUZXh0KHJlY3Qs IFF0LkFsaWduUmlnaHQsIHRleHQpCisgICAgICAgICAgICAgYmxvY2sgPSBibG9jay5uZXh0KCkK Ky0tIAorMi4zMy4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZnJlc2NvYmFsZGkvdGVtcGxhdGUg Yi9zcmNwa2dzL2ZyZXNjb2JhbGRpL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uYmY2MWNmMTE1NWM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9m cmVzY29iYWxkaS90ZW1wbGF0ZQpAQCAtMCwwICsxLDIwIEBACisjIFRlbXBsYXRlIGZpbGUgZm9y ICdmcmVzY29iYWxkaScKK3BrZ25hbWU9ZnJlc2NvYmFsZGkKK3ZlcnNpb249My4xLjMKK3Jldmlz aW9uPTEKK2J1aWxkX3N0eWxlPXB5dGhvbjMtbW9kdWxlCittYWtlX2NoZWNrX3RhcmdldD0iY2hl Y2siCitob3N0bWFrZWRlcGVuZHM9InB5dGhvbjMtc2V0dXB0b29scyBnZXR0ZXh0IgorZGVwZW5k cz0icHl0aG9uMy1QeVF0NSBweXRob24zLVB5UXQ1LXN2ZyBwb3BwbGVyLXF0NSBwb3J0bWlkaQor IHB5dGhvbjMtY3VwcyBweXRob24zLWx5IGxpbHlwb25kIHB5dGhvbjMtcG9wcGxlci1xdDUiCitz aG9ydF9kZXNjPSJQb3dlcmZ1bCwgbGlnaHR3ZWlnaHQgYW5kIGVhc3kgdG8gdXNlIExpbHlQb25k IHNoZWV0IG11c2ljIHRleHQgZWRpdG9yIgorbWFpbnRhaW5lcj0iY2hpbGktYiA8ZGV4dGVyLmdh b25zaGF0Zm9yZEBnbWFpbC5jb20+IgorbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKK2hvbWVw YWdlPSJodHRwczovL2ZyZXNjb2JhbGRpLm9yZy8iCitjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0aHVi LmNvbS9mcmVzY29iYWxkaS9mcmVzY29iYWxkaS9ibG9iL3Yke3ZlcnNpb259L0NoYW5nZUxvZyIK K2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2ZyZXNjb2JhbGRpL2ZyZXNjb2JhbGRpL2Fy Y2hpdmUvdiR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09Zjk3MjU2Y2UxNWFiNjIxNTkzNTM2 ZTIxOTU4NGEyZWQ3NDRjMTkzMzE0OGFjN2VkOThmY2VmNmEzYTk1MTBhNgorCitwcmVfYnVpbGQo KSB7CisJbWFrZSAtQyBsaW51eAorfQo= --===============4796882675767772710==--