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=0.8 required=5.0 tests=ALL_TRUSTED,PDS_OTHER_BAD_TLD, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 12255 invoked from network); 15 Feb 2022 22:13:05 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 15 Feb 2022 22:13:05 -0000 Content-Type: multipart/mixed; boundary="===============8255593680626379447==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_Update_libgdal_and_proj_and_rebuild_against_them?= To: ml@inbox.vuxu.org From: ar-jan Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Tue, 15 Feb 2022 23:13:05 +0100 List-Id: Message-ID: <20220215221305.5luHccOw1Qovl2E-CjNFYJ9wKHt_E36qXTOYIuEh_E8@z> GitHub notification mails are now in MIME to allow UTF8. --===============8255593680626379447== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgYXItamFuIGFnYWluc3QgbWFzdGVy IG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9hci1q YW4vdm9pZC1wYWNrYWdlcyBnZGFsLXByb2oKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgv dm9pZC1wYWNrYWdlcy9wdWxsLzMxNjg3CgpVcGRhdGUgbGliZ2RhbCBhbmQgcHJvaiBhbmQgcmVi dWlsZCBhZ2FpbnN0IHRoZW0KPCEtLSBNYXJrIGl0ZW1zIHdpdGggW3hdIHdoZXJlIGFwcGxpY2Fi bGUgLS0+DQoNCiMjIyMgR2VuZXJhbA0KLSBbIF0gVGhpcyBpcyBhIG5ldyBwYWNrYWdlIGFuZCBp dCBjb25mb3JtcyB0byB0aGUgW3F1YWxpdHkgcmVxdWlyZW1lbnRzXShodHRwczovL2dpdGh1Yi5j b20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL01hbnVhbC5tZCNxdWFsaXR5 LXJlcXVpcmVtZW50cykNCg0KIyMjIyBIYXZlIHRoZSByZXN1bHRzIG9mIHRoZSBwcm9wb3NlZCBj aGFuZ2VzIGJlZW4gdGVzdGVkPw0KLSBbIF0gSSB1c2UgdGhlIHBhY2thZ2VzIGFmZmVjdGVkIGJ5 IHRoZSBwcm9wb3NlZCBjaGFuZ2VzIG9uIGEgcmVndWxhciBiYXNpcyBhbmQgY29uZmlybSB0aGlz IFBSIHdvcmtzIGZvciBtZQ0KLSBbIF0gSSBnZW5lcmFsbHkgZG9uJ3QgdXNlIHRoZSBhZmZlY3Rl ZCBwYWNrYWdlcyBidXQgYnJpZWZseSB0ZXN0ZWQgdGhpcyBQUg0KDQo8IS0tDQpJZiBHaXRIdWIg Q0kgY2Fubm90IGJlIHVzZWQgdG8gdmFsaWRhdGUgdGhlIGJ1aWxkIHJlc3VsdCAoZm9yIGV4YW1w bGUsIGlmIHRoZQ0KYnVpbGQgaXMgbGlrZWx5IHRvIHRha2Ugc2V2ZXJhbCBob3VycyksIG1ha2Ug c3VyZSB0bw0KW3NraXAgQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24p Lg0KV2hlbiBza2lwcGluZyBDSSwgdW5jb21tZW50IGFuZCBmaWxsIG91dCB0aGUgZm9sbG93aW5n IHNlY3Rpb24uDQpOb3RlOiBmb3IgYnVpbGRzIHRoYXQgYXJlIGxpa2VseSB0byBjb21wbGV0ZSBp biBsZXNzIHRoYW4gMiBob3VycywgaXQgaXMgbm90DQphY2NlcHRhYmxlIHRvIHNraXAgQ0kuDQot LT4NCjwhLS0gDQojIyMjIERvZXMgaXQgYnVpbGQgYW5kIHJ1biBzdWNjZXNzZnVsbHk/IA0KKFBs ZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1cHBvcnRlZCwg YXQgbGVhc3Qgb25lIGNyb3NzIGJ1aWxkLiBNb3JlIGFyZSBiZXR0ZXIuKQ0KLSBbIF0gSSBidWls dCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIChBUkNILUxJQkMp DQotIFsgXSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgdGhlc2UgYXJjaGl0ZWN0dXJlcyAo aWYgc3VwcG9ydGVkLiBtYXJrIGNyb3NzYnVpbGRzKToNCiAgLSBbIF0gYWFyY2g2NC1tdXNsDQog IC0gWyBdIGFybXY3bA0KICAtIFsgXSBhcm12NmwtbXVzbA0KLS0+DQoKCkEgcGF0Y2ggZmlsZSBm cm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zMTY4 Ny5wYXRjaCBpcyBhdHRhY2hlZA== --===============8255593680626379447== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gdal-proj-31687.patch" RnJvbSA4OTgxNmI2ZDhlNmViYzMxNzU2MTVkNDY0Y2E2NWI2YWY5MDVjYWMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcmphbiBNb3NzZWwgPGFyamFubW9zc2VsQGdtYWlsLmNvbT4K RGF0ZTogU3VuLCAxMyBGZWIgMjAyMiAyMzoxODo0MyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDEv MTddIHByb2o6IHVwZGF0ZSB0byA3LjIuMS4KCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgIHwg IDIgKy0KIHNyY3BrZ3MvcHJvai90ZW1wbGF0ZSB8IDEzICsrKysrKystLS0tLS0KIDIgZmlsZXMg Y2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Nv bW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDBjNjAyNjBiNDY0Mi4uYjBmY2ZkMDQ5 MjZlIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTMw NjksNyArMzA2OSw3IEBAIGxpYndpdGhzY3RwLnNvLjEgbGtzY3RwLXRvb2xzLTEuMC4xN18xCiBs aWJuc3NfbGRhcC5zby4yIG5zcy1wYW0tbGRhcGQtMC45LjdfNAogbGlidW5zaGllbGQuc28uMCBs aWJ1bnNoaWVsZC0wLjZfMQogbGliTXlHVUlFbmdpbmUuc28uMy40LjEgbGlibXlndWktMy40LjFf MQotbGlicHJvai5zby4xOCBwcm9qLTYuMy4wXzEKK2xpYnByb2ouc28uMTkgcHJvai03LjIuMV8x CiBsaWJubG9wdC5zby4wIG5sb3B0LTIuNC4yXzEKIGxpYmViLnNvLjE2IGxpYmViLTQuMy4zXzEK IGxpYmNoaXBjYXJkLnNvLjYgbGliY2hpcGNhcmQtNS4wLjRfMQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9wcm9qL3RlbXBsYXRlIGIvc3JjcGtncy9wcm9qL3RlbXBsYXRlCmluZGV4IDUxYzQ2MzgyMzRi ZC4uZTNmYmQ0MzkwM2M3IDEwMDY0NAotLS0gYS9zcmNwa2dzL3Byb2ovdGVtcGxhdGUKKysrIGIv c3JjcGtncy9wcm9qL3RlbXBsYXRlCkBAIC0xLDE3ICsxLDE5IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdwcm9qJwogcGtnbmFtZT1wcm9qCi12ZXJzaW9uPTYuMy4yCit2ZXJzaW9uPTcuMi4xCiBy ZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9Ii1EUFJPSl9URVNU Uz1PRkYiCitjb25maWd1cmVfYXJncz0iLURCVUlMRF9URVNUSU5HPU9GRiIKIGhvc3RtYWtlZGVw ZW5kcz0icHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJzcWxpdGUtZGV2ZWwiCittYWtlZGVwZW5kcz0i bGliY3VybC1kZXZlbAorIHNxbGl0ZS1kZXZlbAorIHRpZmYtZGV2ZWwiCiBzaG9ydF9kZXNjPSJD YXJ0b2dyYXBoaWMgUHJvamVjdGlvbnMgTGlicmFyeSIKIG1haW50YWluZXI9IkpvaG4gPG1lQGpv aG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJNSVQiCi1ob21lcGFnZT0iaHR0cHM6Ly9wcm9qNC5v cmciCitob21lcGFnZT0iaHR0cHM6Ly9wcm9qLm9yZyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9kb3du bG9hZC5vc2dlby5vcmcvcHJvai9wcm9qLSR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09Y2I3 NzZhNzBmNDBjMzU1NzlhZTRiYTA0ZmI0YTM4OGMxZDFjZTAyNWExZGY2MTcxMzUwZGMxOWYyNWI4 MDMxMQorY2hlY2tzdW09YjM4NGY0MmU1ZmI5YzZkMDFmZTVmYTRkMzFkYTJlOTEzMjk2Njg4NjNh Njg0Zjk3YmU1ZDQ3NjBkYmJmMGExNAogCiBwb3N0X2luc3RhbGwoKSB7CiAJdmxpY2Vuc2UgQ09Q WUlORwpAQCAtMjIsNyArMjQsNiBAQCBwcm9qLWRldmVsX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVz Yys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3Iv aW5jbHVkZQotCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjMKIAkJdm1vdmUgdXNyL2xpYi9jbWFr ZQogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCX0KCkZyb20gYzU5NWVjNzRmMzU2ZTBmMzVkNTNl NTlhZTFiM2I2YmFlMjE1ZjZlMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJqYW4g TW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTUgRmViIDIwMjIgMTQ6 NDQ6NTQgKzAxMDAKU3ViamVjdDogW1BBVENIIDAyLzE3XSBOZXcgcGFja2FnZTogbGlicnR0b3Bv LTEuMS4wCgpUaGUgUlQgVG9wb2xvZ3kgTGlicmFyeSBleHBvc2VzIGFuIEFQSSB0byBjcmVhdGUg YW5kIG1hbmFnZSBzdGFuZGFyZAooSVNPIDEzMjQ5IGFrYSBTUUwvTU0pIHRvcG9sb2dpZXMgdXNp bmcgdXNlci1wcm92aWRlZCBkYXRhIHN0b3Jlcy4KCkl0IGlzIG5lZWRlZCB0byBidWlsZCBsaWJz cGF0aWFsaXRlIChhcyBvZiB2NS4wLjEpIHdpdGggdGVzdHMgcGFzc2luZy4KLS0tCiBjb21tb24v c2hsaWJzICAgICAgICAgICAgICB8ICAxICsKIHNyY3BrZ3MvbGlicnR0b3BvLWRldmVsICAgIHwg IDEgKwogc3JjcGtncy9saWJydHRvcG8vdGVtcGxhdGUgfCAyOSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMjAwMDAgc3JjcGtncy9saWJydHRvcG8tZGV2ZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2xpYnJ0dG9wby90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21t b24vc2hsaWJzCmluZGV4IGIwZmNmZDA0OTI2ZS4uNzM0YzE2MjgxZjBlIDEwMDY0NAotLS0gYS9j b21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTQxMTAsMyArNDExMCw0IEBAIGxp YmF3dF94YXd0LnNvIG9wZW5qZGsxNy1qcmUtMTcuMC4xKzEyXzEKIGxpYmphdmEuc28gb3Blbmpk azE3LWpyZS0xNy4wLjErMTJfMQogbGliamxpLnNvIG9wZW5qZGsxNy1qcmUtMTcuMC4xKzEyXzEK IGxpYmp2bS5zbyBvcGVuamRrMTctanJlLTE3LjAuMSsxMl8xCitsaWJydHRvcG8uc28uMSBsaWJy dHRvcG8tMS4xLjBfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJydHRvcG8tZGV2ZWwgYi9zcmNw a2dzL2xpYnJ0dG9wby1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAw MDAuLmFjZjM2MDdmNWZlYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGlicnR0b3BvLWRl dmVsCkBAIC0wLDAgKzEgQEAKK2xpYnJ0dG9wbwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlicnR0b3BvL3RlbXBsYXRlIGIvc3JjcGtncy9saWJydHRv cG8vdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iN2Y2 YjJhNzAwZDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYnJ0dG9wby90ZW1wbGF0ZQpA QCAtMCwwICsxLDI5IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJydHRvcG8nCitwa2duYW1l PWxpYnJ0dG9wbwordmVyc2lvbj0xLjEuMAorcmV2aXNpb249MQord3Jrc3JjPSIke3BrZ25hbWV9 IgorYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQoraG9zdG1ha2VkZXBlbmRzPSJiYXNlLWRldmVs IGF1dG9jb25mLWFyY2hpdmUiCittYWtlZGVwZW5kcz0iYmFzZS1kZXZlbCBhdXRvY29uZi1hcmNo aXZlIGdlb3MtZGV2ZWwiCitzaG9ydF9kZXNjPSJSVCBUb3BvbG9neSBMaWJyYXJ5IGV4cG9zZXMg YW4gQVBJIGZvciBtYW5hZ2luZyBzdGFuZGFyZCB0b3BvbG9naWVzIgorbWFpbnRhaW5lcj0iQXJq YW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+IgorbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciIKK2hvbWVwYWdlPSJodHRwczovL2dpdC5vc2dlby5vcmcvZ2l0ZWEvcnR0b3BvL2xpYnJ0 dG9wbyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXQub3NnZW8ub3JnL2dpdGVhL3J0dG9wby9saWJy dHRvcG8vYXJjaGl2ZS9saWJydHRvcG8tJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT0iMmUy ZmNhYmI0ODE5M2E3MTJhNmM3NmFjOWE5YmUyYTUzZjgyZTMyZjkxYTJiYzgzNGQ5ZjFiNGZhOWNk ODc5ZiIKKworcHJlX2NvbmZpZ3VyZSgpIHsKKwlhdXRvcmVjb25mIC1pZgorfQorCitsaWJydHRv cG8tZGV2ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSIkcGtnbmFtZT49JHt2ZXJzaW9ufV8ke3Jl dmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3Rh bGwoKSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlCisJCXZtb3ZlICJ1c3IvbGliLyouc28iCisJCXZt b3ZlICJ1c3IvbGliLyouYSIKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwl9Cit9CgpGcm9t IDM1ZjcyYzc4MGExMGFkNDllYTA5MDZlNTQyMmU4ZjM1YjU1N2E3YTEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IE55eDcwIDxuLnkueEBibHVld2luLmNoPgpEYXRlOiBUaHUsIDI2IE5v diAyMDIwIDE4OjQ3OjI1ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMy8xN10gTmV3IHBhY2thZ2U6 IGxpYmttbC0xLjMuMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICA2ICsrKysrKwogc3JjcGtncy9saWJrbWwtZGV2ZWwgICAgICAgICAgICAgICAgICAgfCAg MSArCiBzcmNwa2dzL2xpYmttbC9wYXRjaGVzL05PVU5DUllQVC5wYXRjaCB8IDE3ICsrKysrKysr KysrKysrKysKIHNyY3BrZ3MvbGlia21sL3RlbXBsYXRlICAgICAgICAgICAgICAgIHwgMjcgKysr KysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGlia21sLWRldmVsCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9saWJrbWwvcGF0Y2hlcy9OT1VOQ1JZUFQucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2xpYmttbC90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxp YnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDczNGMxNjI4MWYwZS4uN2NmODc2NjAwMDg5IDEwMDY0 NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTQxMTEsMyArNDEx MSw5IEBAIGxpYmphdmEuc28gb3BlbmpkazE3LWpyZS0xNy4wLjErMTJfMQogbGliamxpLnNvIG9w ZW5qZGsxNy1qcmUtMTcuMC4xKzEyXzEKIGxpYmp2bS5zbyBvcGVuamRrMTctanJlLTE3LjAuMSsx Ml8xCiBsaWJydHRvcG8uc28uMSBsaWJydHRvcG8tMS4xLjBfMQorbGlia21sYmFzZS5zby4xIGxp YmttbC0xLjMuMF8xCitsaWJrbWxkb20uc28uMSBsaWJrbWwtMS4zLjBfMQorbGlia21sZW5naW5l LnNvLjEgbGlia21sLTEuMy4wXzEKK2xpYmttbHJlZ2lvbmF0b3Iuc28uMSBsaWJrbWwtMS4zLjBf MQorbGlia21seHNkLnNvLjEgbGlia21sLTEuMy4wXzEKK2xpYmttbGNvbnZlbmllbmNlLnNvLjEg bGlia21sLTEuMy4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlia21sLWRldmVsIGIvc3JjcGtn cy9saWJrbWwtZGV2ZWwKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi5j ZjEyYmUxMDJmNDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYmttbC1kZXZlbApAQCAt MCwwICsxIEBACitsaWJrbWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS9zcmNwa2dzL2xpYmttbC9wYXRjaGVzL05PVU5DUllQVC5wYXRjaCBiL3NyY3BrZ3MvbGlia21s L3BhdGNoZXMvTk9VTkNSWVBULnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uNWI3ZTAxNmMwZTAyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJrbWwv cGF0Y2hlcy9OT1VOQ1JZUFQucGF0Y2gKQEAgLTAsMCArMSwxNyBAQAorbWluaXppcC9jcnlwdC5o IHdhcyByZW1vdmVkIGZyb20gdGhlIHBhY2tldCBtaW5pemlwLTEuMi4xMV8yLiAKKword2l0aCAi I2RlZmluZSBOT1VOQ1JZUFQiIGxpYmttbCBjYW4gYmUgYnVpbHQgd2l0aG91dCAiY3J5cHQuaCIK K2h0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvY29tbWl0Lzk1MmFj OTEzY2YKK2h0dHBzOi8vZ2l0aHViLmNvbS9tYWRsZXIvemxpYi9wdWxsLzIyOQorCistLS0gYS9z cmMva21sL2Jhc2UvY29udHJpYi9taW5pemlwL3VuemlwLmMJMjAxNS0xMi0yMSAxODoyMzowNS4w MDAwMDAwMDAgKzAxMDAKKysrKyBiL3NyYy9rbWwvYmFzZS9jb250cmliL21pbml6aXAvdW56aXAu YwkyMDIwLTExLTI2IDE1OjQ1OjU1LjAzMzgzNTgxNiArMDEwMAorQEAgLTQyLDcgKzQyLDcgQEAK KyAjaW5jbHVkZSA8emxpYi5oPiAvL1JSCisgI2luY2x1ZGUgInVuemlwLmgiCisgI2luY2x1ZGUg ImlvbWVtX3NpbXBsZS5oIgorLSN1bmRlZiBOT1VOQ1JZUFQKKysjZGVmaW5lIE5PVU5DUllQVAor IAorICNpZmRlZiBTVERDCisgIyAgaW5jbHVkZSA8c3RkZGVmLmg+CmRpZmYgLS1naXQgYS9zcmNw a2dzL2xpYmttbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlia21sL3RlbXBsYXRlCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjY3ZWVjZTRkOGJhCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9saWJrbWwvdGVtcGxhdGUKQEAgLTAsMCArMSwyNyBAQAorIyBUZW1wbGF0 ZSBmaWxlIGZvciAnbGlia21sJworcGtnbmFtZT1saWJrbWwKK3ZlcnNpb249MS4zLjAKK3Jldmlz aW9uPTEKK2J1aWxkX3N0eWxlPWNtYWtlCittYWtlZGVwZW5kcz0iYm9vc3QtZGV2ZWwKKyBleHBh dC1kZXZlbAorIG1pbml6aXAtZGV2ZWwKKyB1cmlwYXJzZXItZGV2ZWwKKyB6bGliLWRldmVsIgor c2hvcnRfZGVzYz0iTGlicmFyeSB0byBtYW5pcHVsYXRlIEtNTCBPR0MgZmlsZXMiCittYWludGFp bmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgorbGljZW5zZT0iR1BMLTMuMC1v ci1sYXRlciIKK2hvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vbGlia21sL2xpYmttbCIKK2Rp c3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2xpYmttbC9saWJrbWwvYXJjaGl2ZS8ke3ZlcnNp b259LnRhci5neiIKK2NoZWNrc3VtPTg4OTI0MzllNTU3MDA5MTk2NWFhZmZlMzBiMDg2MzFmZGY3 Y2E3ZjgxZjY0OTViNDY0OGYwOTUwZDdlYTc5NjMKKworbGlia21sLWRldmVsX3BhY2thZ2UoKSB7 CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXNob3J0 X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUg dXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwkJdm1vdmUgdXNyL2xpYi9j bWFrZQorCQl2bW92ZSAidXNyL2xpYi8qLnNvIgorCX0KK30KCkZyb20gZDBlMmQyMzYwNmZkNmJj YThmMmFiZmExODU3ZWQzYzQyNTczYzg4OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog QXJqYW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTUgRmViIDIw MjIgMjI6NDY6NDUgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0LzE3XSBOZXcgcGFja2FnZTogbGli c3BhdGlhbGl0ZS01LjAuMQoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAxMSArKysrKwogLi4uL3BhdGNoZXMvZGlzYWJsZV9jaGVja19kcm9wX3Jl bmFtZS5wYXRjaCAgIHwgMjggKysrKysrKysrKysrKwogLi4uL3BhdGNoZXMvZGlzYWJsZV9jaGVj a19zcWxfc3RtdC5wYXRjaCAgICAgIHwgMjkgKysrKysrKysrKysrKwogc3JjcGtncy9saWJzcGF0 aWFsaXRlL3RlbXBsYXRlICAgICAgICAgICAgICAgIHwgNDIgKysrKysrKysrKysrKysrKysrKwog NCBmaWxlcyBjaGFuZ2VkLCAxMTAgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbGlic3BhdGlhbGl0ZS9wYXRjaGVzL2Rpc2FibGVfY2hlY2tfZHJvcF9yZW5hbWUucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpYnNwYXRpYWxpdGUvcGF0Y2hlcy9kaXNh YmxlX2NoZWNrX3NxbF9zdG10LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saWJz cGF0aWFsaXRlL3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9z aGxpYnMKaW5kZXggN2NmODc2NjAwMDg5Li45OGEwNDA1ZDZhYmIgMTAwNjQ0Ci0tLSBhL2NvbW1v bi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtNDExNywzICs0MTE3LDE0IEBAIGxpYmtt bGVuZ2luZS5zby4xIGxpYmttbC0xLjMuMF8xCiBsaWJrbWxyZWdpb25hdG9yLnNvLjEgbGlia21s LTEuMy4wXzEKIGxpYmttbHhzZC5zby4xIGxpYmttbC0xLjMuMF8xCiBsaWJrbWxjb252ZW5pZW5j ZS5zby4xIGxpYmttbC0xLjMuMF8xCitsaWJzcGF0aWFsaXRlLnNvLjcgbGlic3BhdGlhbGl0ZS01 LjAuMV8xCittb2Rfc3BhdGlhbGl0ZS5zby43IGxpYnNwYXRpYWxpdGUtNS4wLjFfMQorbGliZ3Jh c3NfZGJtaWJhc2UuNy44LnNvIGdyYXNzLTcuOC43UkMxXzEKK2xpYmdyYXNzX2RibWljbGllbnQu Ny44LnNvIGdyYXNzLTcuOC43UkMxXzEKK2xpYmdyYXNzX2dpcy43Ljguc28gZ3Jhc3MtNy44LjdS QzFfMQorbGliZ3Jhc3NfZ3Byb2ouNy44LnNvIGdyYXNzLTcuOC43UkMxXzEKK2xpYmdyYXNzX2lt YWdlcnkuNy44LnNvIGdyYXNzLTcuOC43UkMxXzEKK2xpYmdyYXNzX3Jhc3Rlci43Ljguc28gZ3Jh c3MtNy44LjdSQzFfMQorbGliZ3Jhc3NfdmVjdG9yLjcuOC5zbyBncmFzcy03LjguN1JDMV8xCits aWJzdW1vY3BwLnNvIHN1bW8tMS45LjJfMQorbGlidHJhY2ljcHAuc28gc3Vtby0xLjkuMl8xCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2xpYnNwYXRpYWxpdGUvcGF0Y2hlcy9kaXNhYmxlX2NoZWNrX2Ry b3BfcmVuYW1lLnBhdGNoIGIvc3JjcGtncy9saWJzcGF0aWFsaXRlL3BhdGNoZXMvZGlzYWJsZV9j aGVja19kcm9wX3JlbmFtZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjMwYjY3ZjViOGY2MQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGlic3BhdGlh bGl0ZS9wYXRjaGVzL2Rpc2FibGVfY2hlY2tfZHJvcF9yZW5hbWUucGF0Y2gKQEAgLTAsMCArMSwy OCBAQAorRGlzYWJsZSBjaGVja19kcm9wX3JlbmFtZSB0ZXN0LiBJdCBmYWlscyB3aXRoOgorUmVu YW1lVGFibGUgInRhYmxlXzEiIGVycm9yOiBSZW5hbWVUYWJsZSBleGNlcHRpb24gLSBlcnJvciBp biB0cmlnZ2VyIElTT19tZXRhZGF0YV9yZWZlcmVuY2Vfcm93X2lkX3ZhbHVlX2luc2VydDogbm8g c3VjaCBjb2x1bW46IHJvd2lkLgorCitkaWZmIC0tZ2l0IGEvdGVzdC9NYWtlZmlsZS5hbSBiL3Rl c3QvTWFrZWZpbGUuYW0KK2luZGV4IGZlYzI1ZGQuLjUwYjE2YWUgMTAwNjQ0CistLS0gYS90ZXN0 L01ha2VmaWxlLmFtCisrKysgYi90ZXN0L01ha2VmaWxlLmFtCitAQCAtNzQsNyArNzQsNiBAQCBj aGVja19QUk9HUkFNUyA9IGNoZWNrX2VuZGlhbiBcCisgCQljaGVja19zZXF1ZW5jZSBcCisgCQlj aGVja19zdG9yZWRfcHJvYyBcCisgCQljaGVja193bXMgXAorLQkJY2hlY2tfZHJvcF9yZW5hbWUg XAorIAkJcm91dGluZ190ZXN0IFwKKyAJCWdlb2pzb25fdGVzdCBcCisgCQljaGVja196aXBzaHAK K2RpZmYgLS1naXQgYS90ZXN0L01ha2VmaWxlLmluIGIvdGVzdC9NYWtlZmlsZS5pbgoraW5kZXgg OGEwYjE1NC4uNTJhMTA2NiAxMDA2NDQKKy0tLSBhL3Rlc3QvTWFrZWZpbGUuaW4KKysrKyBiL3Rl c3QvTWFrZWZpbGUuaW4KK0BAIC0xMjQsNyArMTI0LDcgQEAgY2hlY2tfUFJPR1JBTVMgPSBjaGVj a19lbmRpYW4kKEVYRUVYVCkgY2hlY2tfdmVyc2lvbiQoRVhFRVhUKSBcCisgCWNoZWNrX25ldHdv cmsyZCQoRVhFRVhUKSBjaGVja19uZXR3b3JrM2QkKEVYRUVYVCkgXAorIAljaGVja19uZXR3b3Jr X2xvZyQoRVhFRVhUKSBjaGVja192aXJ0dWFsa25uJChFWEVFWFQpIFwKKyAJY2hlY2tfc2VxdWVu Y2UkKEVYRUVYVCkgY2hlY2tfc3RvcmVkX3Byb2MkKEVYRUVYVCkgXAorLQljaGVja193bXMkKEVY RUVYVCkgY2hlY2tfZHJvcF9yZW5hbWUkKEVYRUVYVCkgXAorKwljaGVja193bXMkKEVYRUVYVCkg XAorIAlyb3V0aW5nX3Rlc3QkKEVYRUVYVCkgZ2VvanNvbl90ZXN0JChFWEVFWFQpIFwKKyAJY2hl Y2tfemlwc2hwJChFWEVFWFQpICQoYW1fX0VYRUVYVF8xKQorIEBFTkFCTEVfR0VPUEFDS0FHRV9U UlVFQGFtX19hcHBlbmRfMSA9IFwKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlic3BhdGlhbGl0ZS9w YXRjaGVzL2Rpc2FibGVfY2hlY2tfc3FsX3N0bXQucGF0Y2ggYi9zcmNwa2dzL2xpYnNwYXRpYWxp dGUvcGF0Y2hlcy9kaXNhYmxlX2NoZWNrX3NxbF9zdG10LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMWRjM2I1NzA1OTU1Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9saWJzcGF0aWFsaXRlL3BhdGNoZXMvZGlzYWJsZV9jaGVja19zcWxfc3RtdC5wYXRj aApAQCAtMCwwICsxLDI5IEBACitEaXNhYmxlIGNoZWNrX3NxbF9zdG10IHRlc3RzCisKK2h0dHBz Oi8vd3d3LmdhaWEtZ2lzLml0L2Zvc3NpbC9saWJzcGF0aWFsaXRlL3RrdHZpZXcvM2U0NjM0OWJm MmJmYzU4YjNlMzA1MWQxZmY3Y2FiNzNlZWQxOWE4OD9wbGFpbnRleHQKKworLS0tIGEvdGVzdC9N YWtlZmlsZS5hbQkyMDIwLTA4LTIzIDE4OjQ2OjIzLjAwMDAwMDAwMCArMDIwMAorKysrIGIvdGVz dC9NYWtlZmlsZS5hbQkyMDIwLTEyLTIyIDE0OjQ1OjEwLjIwNjA4NTUxNSArMDEwMAorQEAgLTMx LDEwICszMSw2IEBACisgCQljaGVja19nYWlhX3V0ZjggXAorIAkJY2hlY2tfZXh0ZW5zaW9uIFwK KyAJCWNoZWNrX3JlY292ZXJfZ2VvbSBcCistCQljaGVja19zcWxfc3RtdCBcCistCQljaGVja19z cWxfc3RtdF90aW55IFwKKy0JCWNoZWNrX3NxbF9zdG10X2xlZ2FjeSBcCistCQljaGVja19zcWxf c3RtdF9leHRlbnNpb24gXAorIAkJY2hlY2tfbXVsdGl0aHJlYWQgXAorIAkJY2hlY2tfdmlydHVh bHRhYmxlMSBcCisgCQljaGVja192aXJ0dWFsdGFibGUyIFwKKy0tLSBhL3Rlc3QvTWFrZWZpbGUu aW4JMjAyMC0wOC0yMyAxODo0NjoyMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBiL3Rlc3QvTWFrZWZp bGUuaW4JMjAyMC0xMi0yMiAxNDo0MTowNi40MTYzMzU3MzcgKzAxMDAKK0BAIC0xMDIsOSArMTAy LDYgQEAKKyAJY2hlY2tfeGxzX2xvYWQkKEVYRUVYVCkgY2hlY2tfbWF0aF9mdW5jcyQoRVhFRVhU KSBcCisgCWNoZWNrX2dhaWFfdXRpbCQoRVhFRVhUKSBjaGVja19nYWlhX3V0ZjgkKEVYRUVYVCkg XAorIAljaGVja19leHRlbnNpb24kKEVYRUVYVCkgY2hlY2tfcmVjb3Zlcl9nZW9tJChFWEVFWFQp IFwKKy0JY2hlY2tfc3FsX3N0bXQkKEVYRUVYVCkgY2hlY2tfc3FsX3N0bXRfdGlueSQoRVhFRVhU KSBcCistCWNoZWNrX3NxbF9zdG10X2xlZ2FjeSQoRVhFRVhUKSBcCistCWNoZWNrX3NxbF9zdG10 X2V4dGVuc2lvbiQoRVhFRVhUKSBjaGVja19tdWx0aXRocmVhZCQoRVhFRVhUKSBcCisgCWNoZWNr X3ZpcnR1YWx0YWJsZTEkKEVYRUVYVCkgY2hlY2tfdmlydHVhbHRhYmxlMiQoRVhFRVhUKSBcCisg CWNoZWNrX3ZpcnR1YWx0YWJsZTMkKEVYRUVYVCkgY2hlY2tfdmlydHVhbHRhYmxlNCQoRVhFRVhU KSBcCisgCWNoZWNrX3ZpcnR1YWx0YWJsZTUkKEVYRUVYVCkgY2hlY2tfdmlydHVhbHRhYmxlNiQo RVhFRVhUKSBcCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYnNwYXRpYWxpdGUvdGVtcGxhdGUgYi9z cmNwa2dzL2xpYnNwYXRpYWxpdGUvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi4zMWMxMGE1NTc3ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xp YnNwYXRpYWxpdGUvdGVtcGxhdGUKQEAgLTAsMCArMSw0MiBAQAorIyBUZW1wbGF0ZSBmaWxlIGZv ciAnbGlic3BhdGlhbGl0ZScKK3BrZ25hbWU9bGlic3BhdGlhbGl0ZQordmVyc2lvbj01LjAuMQor cmV2aXNpb249MQorYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQoraG9zdG1ha2VkZXBlbmRzPSJw a2ctY29uZmlnIGxpYnJ0dG9wbyBnZW9zLWRldmVsIGxpYnhtbDIiCittYWtlZGVwZW5kcz0iZnJl ZXhsLWRldmVsCisgZ2Vvcy1kZXZlbAorIGxpYnJ0dG9wby1kZXZlbAorIGxpYnhtbDItZGV2ZWwK KyBtaW5pemlwLWRldmVsCisgcHJvai1kZXZlbAorIHNxbGl0ZS1kZXZlbAorIHpsaWItZGV2ZWwi CitkZXBlbmRzPSJzcWxpdGUiCitzaG9ydF9kZXNjPSJHZW9zcGF0aWFsIGV4dGVuc2lvbiBmb3Ig U1FMaXRlIgorbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKK2xp Y2Vuc2U9Ik1QTC0xLjAiCitob21lcGFnZT0iaHR0cHM6Ly93d3cuZ2FpYS1naXMuaXQvZm9zc2ls L2xpYnNwYXRpYWxpdGUvaW5kZXgiCitkaXN0ZmlsZXM9Imh0dHA6Ly93d3cuZ2FpYS1naXMuaXQv Z2FpYS1zaW5zLyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT1lZWNiYzk0 MzExYzc4MDEyZDA1OWViYzBmYWU4NmVhNWVmNmVlY2IxMzMwM2U2ZTgyYjM3NTNjMWIzNDA5ZTk4 CisKK0NGTEFHUz0iLURBQ0NFUFRfVVNFX09GX0RFUFJFQ0FURURfUFJPSl9BUElfSCIKKworaWYg WyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJaG9zdG1ha2VkZXBlbmRzKz0iIGxpYnRvb2wgZ2Vv cy1kZXZlbCIKK2ZpCisKK3Bvc3RfaW5zdGFsbCgpIHsKKwl2bGljZW5zZSBDT1BZSU5HCit9CisK K2xpYnNwYXRpYWxpdGUtZGV2ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSIkcGtnbmFtZT49JHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMi CisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlCisJCXZtb3ZlIHVzci9saWIv cGtnY29uZmlnCisJCXZtb3ZlICJ1c3IvbGliLyouc28iCisJCXZtb3ZlICJ1c3IvbGliLyouYSIK Kwl9Cit9CgpGcm9tIDNjNmRiMTM2NzRiYmMyMGE3Yjk5Mzc2YjhhNDI2YTZjM2Q3NWJhODQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFyamFuIE1vc3NlbCA8YXJqYW5tb3NzZWxAZ21h aWwuY29tPgpEYXRlOiBNb24sIDE0IEZlYiAyMDIyIDEzOjA3OjUxICswMTAwClN1YmplY3Q6IFtQ QVRDSCAwNS8xN10gbGliZ2RhbDogdXBkYXRlIHRvIDMuNC4xIGFuZCByZWJ1aWxkIGFnYWluc3Qg cHJvai03LjIuMQoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIC4uLmUxNmUyN2M1ZmM0YzQ5MWRlYmU1MGJmMmI3ZjNlOTRlZDMzNC5w YXRjaCB8ICA1MyAtLS0tLS0tLS0KIC4uLmM0ODkzZTZkMTRkNDg4ZGZlZDI1NzQ1ZDc5ZjExYmVl NDViOS5wYXRjaCB8ICAzMSAtLS0tLS0KIHNyY3BrZ3MvbGliZ2RhbC90ZW1wbGF0ZSAgICAgICAg ICAgICAgICAgICAgICB8IDEwNSArKysrKysrKysrKysrKysrLS0KIHNyY3BrZ3MvcHl0aG9uMy1n ZGFsICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiA1IGZpbGVzIGNoYW5nZWQsIDk1 IGluc2VydGlvbnMoKyksIDk3IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvbGliZ2RhbC9wYXRjaGVzLzllZjhlMTZlMjdjNWZjNGM0OTFkZWJlNTBiZjJiN2YzZTk0ZWQz MzQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpYmdkYWwvcGF0Y2hlcy9hYjcy YzQ4OTNlNmQxNGQ0ODhkZmVkMjU3NDVkNzlmMTFiZWU0NWI5LnBhdGNoCiBjcmVhdGUgbW9kZSAx MjAwMDAgc3JjcGtncy9weXRob24zLWdkYWwKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIv Y29tbW9uL3NobGlicwppbmRleCA5OGEwNDA1ZDZhYmIuLjVmN2U3YmFjODhkMyAxMDA2NDQKLS0t IGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0yNTEwLDcgKzI1MTAsNyBA QCBsaWJ1MmYtaG9zdC5zby4wIGxpYnUyZi1ob3N0LTEuMS4xMF81CiBsaWJ1MmYtc2VydmVyLnNv LjAgbGlidTJmLXNlcnZlci0xLjEuMF85CiBsaWJzcWxjaXBoZXIuc28uMCBzcWxjaXBoZXItNC4z LjBfMwogbGliZ3RhLnNvLjEgbGliZ3RhLTEuMi4wXzEKLWxpYmdkYWwuc28uMjYgbGliZ2RhbC0z LjAuNF85CitsaWJnZGFsLnNvLjMwIGxpYmdkYWwtMy40LjFfMQogbGlib3NnVmlld2VyLnNvLjEz MSBvc2ctMy40LjFfMQogbGlib3NnU2hhZG93LnNvLjEzMSBvc2ctMy40LjFfMQogbGlib3NnUGFy dGljbGUuc28uMTMxIG9zZy0zLjQuMV8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmdkYWwvcGF0 Y2hlcy85ZWY4ZTE2ZTI3YzVmYzRjNDkxZGViZTUwYmYyYjdmM2U5NGVkMzM0LnBhdGNoIGIvc3Jj cGtncy9saWJnZGFsL3BhdGNoZXMvOWVmOGUxNmUyN2M1ZmM0YzQ5MWRlYmU1MGJmMmI3ZjNlOTRl ZDMzNC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTY4ZWRlYjMyYzc3Li4w MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9saWJnZGFsL3BhdGNoZXMvOWVmOGUxNmUyN2M1ZmM0 YzQ5MWRlYmU1MGJmMmI3ZjNlOTRlZDMzNC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDUzICsw LDAgQEAKLUZyb20gOWVmOGUxNmUyN2M1ZmM0YzQ5MWRlYmU1MGJmMmI3ZjNlOTRlZDMzNCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEV2ZW4gUm91YXVsdCA8ZXZlbi5yb3VhdWx0QHNw YXRpYWx5cy5jb20+Ci1EYXRlOiBNb24sIDUgT2N0IDIwMjAgMTI6MTE6NTIgKzAyMDAKLVN1Ympl Y3Q6IFtQQVRDSF0gSlBFRzIwMDA6IG1ha2UgaXQgYnVpbGQgd2l0aCBKYXNwZXIgMi4wLjIxIChm aXhlcyAjMzAxMikKLQotLS0tCi0gZ2RhbC9mcm10cy9qcGVnMjAwMC9qcGVnMjAwMF92c2lsX2lv LmNwcCB8IDE2ICsrKysrKysrKy0tLS0tLS0KLSBnZGFsL2ZybXRzL2pwZWcyMDAwL2pwZWcyMDAw ZGF0YXNldC5jcHAgIHwgIDIgKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyks IDggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9nZGFsL2ZybXRzL2pwZWcyMDAwL2pwZWcy MDAwX3ZzaWxfaW8uY3BwIGIvZ2RhbC9mcm10cy9qcGVnMjAwMC9qcGVnMjAwMF92c2lsX2lvLmNw cAotaW5kZXggMTBhNGY5NmYwZWUuLmViY2FjNDAxMGNlIDEwMDY0NAotLS0tIGEvZnJtdHMvanBl ZzIwMDAvanBlZzIwMDBfdnNpbF9pby5jcHAKLSsrKyBiL2ZybXRzL2pwZWcyMDAwL2pwZWcyMDAw X3ZzaWxfaW8uY3BwCi1AQCAtOTQsMTMgKzk0LDI0IEBACi0gKiBGaWxlIHN0cmVhbSBvYmplY3Qu Ci0gXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotKyNpZiBkZWZpbmVkKFBSSWphc19zZXFlbnQp Ci0rc3RhdGljIGludCBKUEVHMjAwMF9WU0lMX3JlYWQoamFzX3N0cmVhbV9vYmpfdCAqb2JqLCBj aGFyICpidWYsIHVuc2lnbmVkIGNudCkKLSsjZWxzZQotIHN0YXRpYyBpbnQgSlBFRzIwMDBfVlNJ TF9yZWFkKGphc19zdHJlYW1fb2JqX3QgKm9iaiwgY2hhciAqYnVmLCBpbnQgY250KQotKyNlbmRp ZgotIHsKLSAgICAgamFzX3N0cmVhbV9WU0lGTF90ICpmaWxlb2JqID0gSkFTX0NBU1QoamFzX3N0 cmVhbV9WU0lGTF90ICosIG9iaik7Ci0gICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KFZTSUZS ZWFkTChidWYsIDEsIGNudCwgZmlsZW9iai0+ZnApKTsKLSB9Ci0KLSsjaWYgZGVmaW5lZChKQVNf SU5DTFVERV9KUDJfQ09ERUMpCi0rLy8gSmFzcGVyIDIuMC4yMQotK3N0YXRpYyBpbnQgSlBFRzIw MDBfVlNJTF93cml0ZShqYXNfc3RyZWFtX29ial90ICpvYmosIGNvbnN0IGNoYXIgKmJ1ZiwgdW5z aWduZWQgaW50IGNudCkKLSsjZWxpZiBkZWZpbmVkKFBSSWphc19zZXFlbnQpCi0rc3RhdGljIGlu dCBKUEVHMjAwMF9WU0lMX3dyaXRlKGphc19zdHJlYW1fb2JqX3QgKm9iaiwgY2hhciAqYnVmLCB1 bnNpZ25lZCBpbnQgY250KQotKyNlbHNlCi0gc3RhdGljIGludCBKUEVHMjAwMF9WU0lMX3dyaXRl KGphc19zdHJlYW1fb2JqX3QgKm9iaiwgY2hhciAqYnVmLCBpbnQgY250KQotKyNlbmRpZgotIHsK LSAgICAgamFzX3N0cmVhbV9WU0lGTF90ICpmaWxlb2JqID0gSkFTX0NBU1QoamFzX3N0cmVhbV9W U0lGTF90ICosIG9iaik7Ci0gICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KFZTSUZXcml0ZUwo YnVmLCAxLCBjbnQsIGZpbGVvYmotPmZwKSk7Ci0KLWRpZmYgLS1naXQgYS9nZGFsL2ZybXRzL2pw ZWcyMDAwL2pwZWcyMDAwZGF0YXNldC5jcHAgYi9nZGFsL2ZybXRzL2pwZWcyMDAwL2pwZWcyMDAw ZGF0YXNldC5jcHAKLWluZGV4IGE1YTZiMjU4ZWQ5Li5iZDFlNzc2MzE4NiAxMDA2NDQKLS0tLSBh L2ZybXRzL2pwZWcyMDAwL2pwZWcyMDAwZGF0YXNldC5jcHAKLSsrKyBiL2ZybXRzL2pwZWcyMDAw L2pwZWcyMDAwZGF0YXNldC5jcHAKLUBAIC01MTMsNyArNTEzLDcgQEAgaW50IEpQRUcyMDAwRGF0 YXNldDo6RGVjb2RlSW1hZ2UoKQotICAgICAgICAgZm9yICggaUJhbmQgPSAwOyBpQmFuZCA8IG5C YW5kczsgaUJhbmQrKyApCi0gICAgICAgICB7Ci0gICAgICAgICAgICAgSlBFRzIwMDBSYXN0ZXJC YW5kKiBwb0JhbmQgPSAoSlBFRzIwMDBSYXN0ZXJCYW5kKikgR2V0UmFzdGVyQmFuZChpQmFuZCsx KTsKLS0gICAgICAgICAgICBpZiAocG9CYW5kLT5pRGVwdGggIT0gamFzX2ltYWdlX2NtcHRwcmVj KCBwc0ltYWdlLCBpQmFuZCApIHx8Ci0rICAgICAgICAgICAgaWYgKHBvQmFuZC0+aURlcHRoICE9 IHN0YXRpY19jYXN0PGludD4oamFzX2ltYWdlX2NtcHRwcmVjKCBwc0ltYWdlLCBpQmFuZCApKSB8 fAotICAgICAgICAgICAgICAgICBwb0JhbmQtPmJTaWduZWRuZXNzICE9IGphc19pbWFnZV9jbXB0 c2duZCggcHNJbWFnZSwgaUJhbmQgKSkKLSAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg IENQTEVycm9yKENFX0ZhaWx1cmUsIENQTEVfQXBwRGVmaW5lZCwKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGliZ2RhbC9wYXRjaGVzL2FiNzJjNDg5M2U2ZDE0ZDQ4OGRmZWQyNTc0NWQ3OWYxMWJlZTQ1 YjkucGF0Y2ggYi9zcmNwa2dzL2xpYmdkYWwvcGF0Y2hlcy9hYjcyYzQ4OTNlNmQxNGQ0ODhkZmVk MjU3NDVkNzlmMTFiZWU0NWI5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2 NDNlYWM4ODJmNmYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xpYmdkYWwvcGF0Y2hlcy9h YjcyYzQ4OTNlNmQxNGQ0ODhkZmVkMjU3NDVkNzlmMTFiZWU0NWI5LnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMzEgKzAsMCBAQAotRnJvbSBhYjcyYzQ4OTNlNmQxNGQ0ODhkZmVkMjU3NDVkNzlm MTFiZWU0NWI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRXZlbiBSb3VhdWx0IDxl dmVuLnJvdWF1bHRAc3BhdGlhbHlzLmNvbT4KLURhdGU6IE1vbiwgMTAgQXVnIDIwMjAgMTc6MjY6 NTMgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gSlBFRzIwMDA6IGZpeCBidWlsZCB3aXRoIEphc3Bl ciAyLjAuMTcgKGZpeGVzICMyODQ0KQotCi0tLS0KLSBnZGFsL2ZybXRzL2pwZWcyMDAwL2pwZWcy MDAwZGF0YXNldC5jcHAgfCA0ICsrLS0KLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ2RhbC9mcm10cy9qcGVnMjAwMC9qcGVn MjAwMGRhdGFzZXQuY3BwIGIvZ2RhbC9mcm10cy9qcGVnMjAwMC9qcGVnMjAwMGRhdGFzZXQuY3Bw Ci1pbmRleCAzZTY2OGZmZTUwMy4uMmQzZjRlNDY4NzYgMTAwNjQ0Ci0tLS0gYS9mcm10cy9qcGVn MjAwMC9qcGVnMjAwMGRhdGFzZXQuY3BwCi0rKysgYi9mcm10cy9qcGVnMjAwMC9qcGVnMjAwMGRh dGFzZXQuY3BwCi1AQCAtNDg0LDcgKzQ4NCw3IEBAIGludCBKUEVHMjAwMERhdGFzZXQ6OkRlY29k ZUltYWdlKCkKLSAgICAgLyogdGhlIEpQMiBib3hlcyBtYXRjaCB0aGUgb25lcyBvZiB0aGUgY29k ZSBzdHJlYW0gKi8KLSAgICAgaWYgKG5CYW5kcyAhPSAwKQotICAgICB7Ci0tICAgICAgICBpZiAo bkJhbmRzICE9IGphc19pbWFnZV9udW1jbXB0cyggcHNJbWFnZSApKQotKyAgICAgICAgaWYgKG5C YW5kcyAhPSBzdGF0aWNfY2FzdDxpbnQ+KGphc19pbWFnZV9udW1jbXB0cyggcHNJbWFnZSApKSkK LSAgICAgICAgIHsKLSAgICAgICAgICAgICBDUExFcnJvcihDRV9GYWlsdXJlLCBDUExFX0FwcERl ZmluZWQsCi0gICAgICAgICAgICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgY29tcG9uZW50cyBp bmRpY2F0ZWQgaW4gdGhlIElIRFIgYm94ICglZCkgbWlzbWF0Y2ggIgotQEAgLTU5NSw3ICs1OTUs NyBAQCBHREFMRGF0YXNldCAqSlBFRzIwMDBEYXRhc2V0OjpPcGVuKCBHREFMT3BlbkluZm8gKiBw b09wZW5JbmZvICkKLSAKLSB7Ci0gICAgIGludCAgICAgICAgIGlGb3JtYXQ7Ci0tICAgIGNoYXIg ICAgICAgICpwc3pGb3JtYXROYW1lID0gbnVsbHB0cjsKLSsgICAgY29uc3QgY2hhciAqcHN6Rm9y bWF0TmFtZSA9IG51bGxwdHI7Ci0gCi0gICAgIGlmICghSWRlbnRpZnkocG9PcGVuSW5mbykpCi0g ICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliZ2RhbC90ZW1w bGF0ZSBiL3NyY3BrZ3MvbGliZ2RhbC90ZW1wbGF0ZQppbmRleCA4NzBhYjIyYjRjYmEuLjVmY2E1 Nzk5NTRmYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9saWJnZGFsL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvbGliZ2RhbC90ZW1wbGF0ZQpAQCAtMSwzMCArMSwxMDAgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2xpYmdkYWwnCiBwa2duYW1lPWxpYmdkYWwKLXZlcnNpb249My4wLjQKLXJldmlzaW9uPTEx Cit2ZXJzaW9uPTMuNC4xCityZXZpc2lvbj0xCiB3cmtzcmM9ImdkYWwtJHt2ZXJzaW9ufSIKIGJ1 aWxkX3N0eWxlPWdudS1jb25maWd1cmUKLWNvbmZpZ3VyZV9hcmdzPSItLXdpdGgtbGlibHptYSAt LXdpdGgtd2VicCAtLXdpdGgtenN0ZCAtLXdpdGgtcG9kb2ZvIC0td2l0aC1vcGVuY2w9eWVzIgot aG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0LWRldmVsIHBrZy1jb25maWcgcHl0aG9uLW51bXB5IGpz b24tYy1kZXZlbCIKLW1ha2VkZXBlbmRzPSJmcmVleGwtZGV2ZWwgZ2Vvcy1kZXZlbCBqYXNwZXIt ZGV2ZWwganNvbi1jLWRldmVsCi0gbGliY3VybC1kZXZlbCBsaWJvcGVuZXhyLWRldmVsIGxpYm9w ZW5qcGVnMi1kZXZlbCBsaWJwb2RvZm8tZGV2ZWwgbGlicWh1bGwtZGV2ZWwKLSBsaWJ3ZWJwLWRl dmVsIGxpYnhtbDItZGV2ZWwgbGlienN0ZC1kZXZlbCBuZXRjZGYtZGV2ZWwgb3BlbmNsMi1oZWFk ZXJzIHBjcmUyLWRldmVsCi0gcHJvai1kZXZlbCBzcWxpdGUtZGV2ZWwgb2NsLWljZC1kZXZlbCIK K2NvbmZpZ3VyZV9hcmdzPSIKKyAtLXdpdGgtZXhwYXQ9eWVzCisgLS13aXRoLWhkZjU9eWVzCisg LS13aXRoLWttbD15ZXMKKyAtLXdpdGgtbGlibHptYT15ZXMKKyAtLXdpdGgtb3BlbmNsPXllcwor IC0td2l0aC1wZz15ZXMKKyAtLXdpdGgtcG9kb2ZvPXllcworIC0td2l0aC1weXRob249eWVzCisg LS13aXRoLXNwYXRpYWxpdGU9eWVzCisgLS13aXRoLXNxbGl0ZTM9eWVzCisgLS13aXRoLXdlYnA9 eWVzCisgLS13aXRoLXpzdGQ9eWVzIgoraG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0LWRldmVsCisg anNvbi1jLWRldmVsCisgcGtnLWNvbmZpZworIHB5dGhvbjMtbnVtcHkKKyBzd2lnIgorbWFrZWRl cGVuZHM9ImJvb3N0LWRldmVsCisgZXhwYXQtZGV2ZWwKKyBmcmVleGwtZGV2ZWwKKyBnZW9zLWRl dmVsCisgamFzcGVyLWRldmVsCisganNvbi1jLWRldmVsCisgbGliY3VybC1kZXZlbAorIGxpYm9w ZW5leHItZGV2ZWwKKyBsaWJvcGVuanBlZzItZGV2ZWwKKyBsaWJwb2RvZm8tZGV2ZWwKKyBsaWJx aHVsbC1kZXZlbAorIGxpYnNwYXRpYWxpdGUtZGV2ZWwKKyBsaWJ3ZWJwLWRldmVsCisgbGlieG1s Mi1kZXZlbAorIGxpYnpzdGQtZGV2ZWwKKyBuZXRjZGYtZGV2ZWwKKyBvY2wtaWNkLWRldmVsCisg b3BlbmNsMi1oZWFkZXJzCisgcGNyZTItZGV2ZWwKKyBwcm9qLWRldmVsCisgcHl0aG9uMy1kZXZl bAorIHNxbGl0ZS1kZXZlbAorIGxpYmttbC1kZXZlbAorIHBvc3RncmVzcWwtbGlicy1kZXZlbCIK IHNob3J0X2Rlc2M9Ikdlb3NwYXRpYWwgRGF0YSBBYnN0cmFjdGlvbiBMaWJyYXJ5IgogbWFpbnRh aW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9Ik1JVCIKLWhv bWVwYWdlPSJodHRwOi8vd3d3LmdkYWwub3JnLyIKLWRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2Fk Lm9zZ2VvLm9yZy9nZGFsLyR7dmVyc2lvbn0vZ2RhbC0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPTU1NjlhNGRhYTFhYmNiYmE0N2E5ZDUzNTE3MmZjMzM1MTk0ZDkyMTRmZGI5NmNkMGYxMzli YjU3MzI5YWUyNzcKLXN1YnBhY2thZ2VzPSJsaWJnZGFsLWRldmVsIGxpYmdkYWwtdG9vbHMiCito b21lcGFnZT0iaHR0cHM6Ly9nZGFsLm9yZy8iCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNv bS9PU0dlby9nZGFsL3JlbGVhc2VzL2Rvd25sb2FkL3Yke3ZlcnNpb259L2dkYWwtJHt2ZXJzaW9u fS50YXIuZ3oiCitjaGVja3N1bT1lMzYwMzg3YmMyNWVjMjQ5NDBmNDZhZmJlYWRhNDgwMDJkNzJj NzRhYWY5ZWNjZjJhNDBlOGQ3NGU3MTFhMmU0CitzdWJwYWNrYWdlcz0icHl0aG9uMy1nZGFsIGxp YmdkYWwtZGV2ZWwgbGliZ2RhbC10b29scyIKKworYnVpbGRfb3B0aW9ucz0ia21sIHBvc3RncmVz cWwiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImttbCIKIAogaWYgWyAteiAiJENST1NTX0JVSUxE IiBdOyB0aGVuCiAJbWFrZWRlcGVuZHMrPSIgaGRmNS1kZXZlbCIKIGZpCitDRkxBR1M9Ii1wdGhy ZWFkIC1JJHtYQlBTX0NST1NTX0JBU0V9LyR7cHkzX2luY30iCitMREZMQUdTPSItTCR7WEJQU19D Uk9TU19CQVNFfS8ke3B5M19saWJ9IgorCitwb3N0X2J1aWxkKCkgeworCWlmIFsgIiRDUk9TU19C VUlMRCIgXTsgdGhlbgorCQlleHBvcnQgUFlQUkVGSVg9IiRYQlBTX0NST1NTX0JBU0UiCisJCWV4 cG9ydCBQWVRIT05QQVRIPSR7WEJQU19DUk9TU19CQVNFfS8ke3B5M19saWJ9CisJCWZvciBmIGlu ICR7WEJQU19DUk9TU19CQVNFfS8ke3B5M19saWJ9L19zeXNjb25maWdkYXRhXyo7IGRvCisJCQlm PSR7ZiMjKi99CisJCQlleHBvcnQgX1BZVEhPTl9TWVNDT05GSUdEQVRBX05BTUU9JHtmJS5weX0K KwkJZG9uZQorCWZpCisJZXhwb3J0IExEU0hBUkVEPSIke0NDfSAkQ0ZMQUdTIC1zaGFyZWQgJExE RkxBR1MiCisKKwlybSAtZiBzd2lnL3B5dGhvbi8qX3dyYXAuY3BwCisJbWFrZSAtQyBzd2lnL3B5 dGhvbiBnZW5lcmF0ZQorCWNkIHN3aWcvcHl0aG9uCisJcHl0aG9uMyBzZXR1cC5weSBidWlsZAor fQogCiBwb3N0X2luc3RhbGwoKSB7CiAJdmluc3RhbGwgZ2RhbC5wYyA2NDQgdXNyL2xpYi9wa2dj b25maWcKIAl2bGljZW5zZSBMSUNFTlNFLlRYVAorCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhl bgorCQlleHBvcnQgUFlQUkVGSVg9IiRYQlBTX0NST1NTX0JBU0UiCisJCWV4cG9ydCBQWVRIT05Q QVRIPSR7WEJQU19DUk9TU19CQVNFfS8ke3B5M19saWJ9CisJCWZvciBmIGluICR7WEJQU19DUk9T U19CQVNFfS8ke3B5M19saWJ9L19zeXNjb25maWdkYXRhXyo7IGRvCisJCQlmPSR7ZiMjKi99CisJ CQlleHBvcnQgX1BZVEhPTl9TWVNDT05GSUdEQVRBX05BTUU9JHtmJS5weX0KKwkJZG9uZQorCWZp CisJZXhwb3J0IExEU0hBUkVEPSIke0NDfSAkQ0ZMQUdTIC1zaGFyZWQgJExERkxBR1MiCisKKwlj ZCBzd2lnL3B5dGhvbgorCXB5dGhvbjMgc2V0dXAucHkgaW5zdGFsbCAtLXByZWZpeD0vdXNyIC0t cm9vdD0kREVTVERJUgogfQogCiBsaWJnZGFsLXRvb2xzX3BhY2thZ2UoKSB7CkBAIC00NiwzICsx MTYsMTQgQEAgbGliZ2RhbC1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSB1c3IvbGliLyouc28K IAl9CiB9CisKK3B5dGhvbjMtZ2RhbF9wYWNrYWdlKCkgeworCWRlcGVuZHM9IiR7c291cmNlcGtn fT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0gUHl0aG9uMyBiaW5k aW5ncyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9iaW4vKi5weSIKKwkJdm1vdmUg InVzci9saWIvcHl0aG9uKiIKKwkJdmRvYyBzd2lnL3B5dGhvbi9SRUFETUUucnN0CisJCXZta2Rp ciB1c3Ivc2hhcmUvcHl0aG9uMy1nZGFsCisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRo b24zLWdkYWwgYi9zcmNwa2dzL3B5dGhvbjMtZ2RhbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRl eCAwMDAwMDAwMDAwMDAuLjM3N2Q1MGRmYzJiOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv cHl0aG9uMy1nZGFsCkBAIC0wLDAgKzEgQEAKK2xpYmdkYWwKXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCgpGcm9tIDE0ZTEyZTY4YmE2MTc5MmUxNWI0ZjAyMWVhNWU5NzcyMjQ4MmY5NjEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFyamFuIE1vc3NlbCA8YXJqYW5tb3NzZWxAZ21h aWwuY29tPgpEYXRlOiBTdW4sIDI3IEp1biAyMDIxIDE5OjE2OjM0ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNi8xN10gcG9zdGdpczogdXBkYXRlIHRvIDMuMS41OyByZWJ1aWxkIGFnYWluc3QgbGli Z2RhbC0zLjQuMQogYW5kIHByb2otNy4yLjEKCi0tLQogc3JjcGtncy9wb3N0Z2lzL3RlbXBsYXRl IHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcG9zdGdpcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvcG9zdGdp cy90ZW1wbGF0ZQppbmRleCBjODc4ZGU4OWNmY2IuLmY1MmNkNjY1Nzk4OCAxMDA2NDQKLS0tIGEv c3JjcGtncy9wb3N0Z2lzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcG9zdGdpcy90ZW1wbGF0ZQpA QCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3Bvc3RnaXMnCiBwa2duYW1lPXBv c3RnaXMKLXZlcnNpb249My4xLjQKK3ZlcnNpb249My4xLjUKIHJldmlzaW9uPTEKIGJ1aWxkX3N0 eWxlPWdudS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSItLXdpdGgtcHJvamRpcj0ke1hCUFNf Q1JPU1NfQkFTRX0vdXNyCkBAIC0xOSw3ICsxOSw3IEBAIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9wb3N0Z2lzLm5ldC8iCiBjaGFuZ2Vsb2c9Imh0dHBzOi8v Z2l0Lm9zZ2VvLm9yZy9naXRlYS9wb3N0Z2lzL3Bvc3RnaXMvcmF3L3RhZy8ke3ZlcnNpb259L05F V1MiCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZG93bmxvYWQub3NnZW8ub3JnL3Bvc3RnaXMvc291cmNl L3Bvc3RnaXMtJHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT1kYzhlM2ZlOGJjNTMyZTQyMmY1 ZDcyNGM1YTdjNDM3ZjY1NTU1MTE3MTZmNjQxMGQ0ZDJkYjk3NjJlMWEzNzk2CitjaGVja3N1bT1m Y2IxMGQ5YjQ5OWZkNzkzOTliZDhkYjkwZjBiMzEzODM3ZDAwMjIzZDMwMDgwZGFjNDAzNDE5ZTA2 N2U0YzA2CiBub2Nyb3NzPSJGSVhNRTogQ2Fubm90IHJ1biB0ZXN0IHByb2dyYW0gdG8gZGV0ZXJt aW5lIFBST0ogdmVyc2lvbiIKIAogcHJlX2NvbmZpZ3VyZSgpIHsKCkZyb20gOWM5NzM3YTFmMDA5 MjUyNTkwNWViYzIyMjNhOWI5NmQxYjMxNzNmZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogQXJqYW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTQgRmVi IDIwMjIgMTM6MjI6NTkgKzAxMDAKU3ViamVjdDogW1BBVENIIDA3LzE3XSBwb3N0Z2lzLXBvc3Rn cmVzcWwxMzogdXBkYXRlIHRvIDMuMS41OyByZWJ1aWxkIGFnYWluc3QKIGxpYmdkYWwgYW5kIHBy b2oKCmxpYmdkYWwtMy40LjEKcHJvai03LjIuMQotLS0KIHNyY3BrZ3MvcG9zdGdpcy1wb3N0Z3Jl c3FsMTMvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Bvc3RnaXMtcG9zdGdyZXNx bDEzL3RlbXBsYXRlIGIvc3JjcGtncy9wb3N0Z2lzLXBvc3RncmVzcWwxMy90ZW1wbGF0ZQppbmRl eCA3MDZjOGZiOTY4MTAuLmEwZjVjODllZjRkYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9wb3N0Z2lz LXBvc3RncmVzcWwxMy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3Bvc3RnaXMtcG9zdGdyZXNxbDEz L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncG9zdGdpcy1w b3N0Z3Jlc3FsMTMnCiBwa2duYW1lPXBvc3RnaXMtcG9zdGdyZXNxbDEzCi12ZXJzaW9uPTMuMS40 Ci1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMS41CityZXZpc2lvbj0xCiB3cmtzcmM9InBvc3RnaXMt JHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSIK QEAgLTIwLDcgKzIwLDcgQEAgbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJo dHRwczovL3Bvc3RnaXMubmV0LyIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9naXQub3NnZW8ub3JnL2dp dGVhL3Bvc3RnaXMvcG9zdGdpcy9yYXcvdGFnLyR7dmVyc2lvbn0vTkVXUyIKIGRpc3RmaWxlcz0i aHR0cHM6Ly9kb3dubG9hZC5vc2dlby5vcmcvcG9zdGdpcy9zb3VyY2UvcG9zdGdpcy0ke3ZlcnNp b259LnRhci5neiIKLWNoZWNrc3VtPWRjOGUzZmU4YmM1MzJlNDIyZjVkNzI0YzVhN2M0MzdmNjU1 NTUxMTcxNmY2NDEwZDRkMmRiOTc2MmUxYTM3OTYKK2NoZWNrc3VtPWZjYjEwZDliNDk5ZmQ3OTM5 OWJkOGRiOTBmMGIzMTM4MzdkMDAyMjNkMzAwODBkYWM0MDM0MTllMDY3ZTRjMDYKIG5vY3Jvc3M9 IkZJWE1FOiBDYW5ub3QgcnVuIHRlc3QgcHJvZ3JhbSB0byBkZXRlcm1pbmUgUFJPSiB2ZXJzaW9u IgogCiBwcmVfY29uZmlndXJlKCkgewoKRnJvbSBjNDZlNmM2ZWZiYjRlNTQzNTg0MWQ0MGVkNTdm YjJmYTdiN2I2MjJiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcmphbiBNb3NzZWwg PGFyamFubW9zc2VsQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxNCBGZWIgMjAyMiAxMzoyNjo1OSAr MDEwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMTddIHBvc3RnaXMtcG9zdGdyZXNxbDE0OiB1cGRhdGUg dG8gMy4xLjU7IHJlYnVpbGQgYWdhaW5zdAogbGliZ2RhbCBhbmQgcHJvagoKbGliZ2RhbC0zLjQu MQpwcm9qLTcuMi4xCi0tLQogc3JjcGtncy9wb3N0Z2lzLXBvc3RncmVzcWwxNC90ZW1wbGF0ZSB8 IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL3Bvc3RnaXMtcG9zdGdyZXNxbDE0L3RlbXBsYXRlIGIvc3Jj cGtncy9wb3N0Z2lzLXBvc3RncmVzcWwxNC90ZW1wbGF0ZQppbmRleCA2Y2U0MjMxYjE3MjYuLmFk OGQwYzVjNDI1MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9wb3N0Z2lzLXBvc3RncmVzcWwxNC90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3Bvc3RnaXMtcG9zdGdyZXNxbDE0L3RlbXBsYXRlCkBAIC0xLDYg KzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncG9zdGdpcy1wb3N0Z3Jlc3FsMTQnCiBwa2du YW1lPXBvc3RnaXMtcG9zdGdyZXNxbDE0Ci12ZXJzaW9uPTMuMS40Cit2ZXJzaW9uPTMuMS41CiBy ZXZpc2lvbj0xCiB3cmtzcmM9InBvc3RnaXMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWdudS1j b25maWd1cmUKQEAgLTIwLDcgKzIwLDcgQEAgbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL3Bvc3RnaXMubmV0LyIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9naXQub3Nn ZW8ub3JnL2dpdGVhL3Bvc3RnaXMvcG9zdGdpcy9yYXcvdGFnLyR7dmVyc2lvbn0vTkVXUyIKIGRp c3RmaWxlcz0iaHR0cHM6Ly9kb3dubG9hZC5vc2dlby5vcmcvcG9zdGdpcy9zb3VyY2UvcG9zdGdp cy0ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPWRjOGUzZmU4YmM1MzJlNDIyZjVkNzI0YzVh N2M0MzdmNjU1NTUxMTcxNmY2NDEwZDRkMmRiOTc2MmUxYTM3OTYKK2NoZWNrc3VtPWZjYjEwZDli NDk5ZmQ3OTM5OWJkOGRiOTBmMGIzMTM4MzdkMDAyMjNkMzAwODBkYWM0MDM0MTllMDY3ZTRjMDYK IG5vY3Jvc3M9IkZJWE1FOiBDYW5ub3QgcnVuIHRlc3QgcHJvZ3JhbSB0byBkZXRlcm1pbmUgUFJP SiB2ZXJzaW9uIgogCiBwcmVfY29uZmlndXJlKCkgewoKRnJvbSBlZDUyNTFlMGMzY2I1OGM5ZjZk MTRjNzQ3MTU2NTExMzFhNDFjNzI0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcmph biBNb3NzZWwgPGFyamFubW9zc2VsQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA5IEF1ZyAyMDIxIDE5 OjUzOjE3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOS8xN10gd3hQeXRob240OiBiYWNrcG9ydCBw YXRjaGVzLCBhbmQgZml4IHRlc3RzCgpCYWNrcG9ydGVkIHBhdGNoZXM6Ci0gd3hQc2V1ZG9EQyBH SUwKLSBQeXRob24gMy4xMCBBR1cgRmxhdE5vdGVib29rIHBhdGNoCi0gUHl0aG9uIDMuMTAgU2Ny b2xsZWRXaW5kb3cgYXJndW1lbnQgdHlwZXMKLSBQeXRob24gMy4xMCBJbnRlZ2VyIGRpdmlzaW9u Ci0gd3guV2luZG93SUQgYW5kIHd4LlJlZ2lvbiBhcmd1bWVudHMKLS0tCiAuLi4vcGF0Y2hlcy8w MDAyLVB5dGhvbi0zLjEwLWlzc3Vlcy5wYXRjaCAgICAgfCAzMzE3ICsrKysrKysrKysrKysrKysr CiAuLi4vMDAwMy1QeXRob24tMy4xMC1BR1ctRmxhdE5vdGVib29rLnBhdGNoICAgfCAgIDU3ICsK IC4uLi9wYXRjaGVzL3Jlc3RvcmUtZ2lsLXBzZXVkb2RjLnBhdGNoICAgICAgICB8ICAgNTIgKwog c3JjcGtncy93eFB5dGhvbjQvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgIHwgICAgMyArLQog NCBmaWxlcyBjaGFuZ2VkLCAzNDI4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3d4UHl0aG9uNC9wYXRjaGVzLzAwMDItUHl0aG9uLTMuMTAt aXNzdWVzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy93eFB5dGhvbjQvcGF0Y2hl cy8wMDAzLVB5dGhvbi0zLjEwLUFHVy1GbGF0Tm90ZWJvb2sucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL3d4UHl0aG9uNC9wYXRjaGVzL3Jlc3RvcmUtZ2lsLXBzZXVkb2RjLnBhdGNo CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy93eFB5dGhvbjQvcGF0Y2hlcy8wMDAyLVB5dGhvbi0zLjEw LWlzc3Vlcy5wYXRjaCBiL3NyY3BrZ3Mvd3hQeXRob240L3BhdGNoZXMvMDAwMi1QeXRob24tMy4x MC1pc3N1ZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42 Yzg3ZmY5NjdkMDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3d4UHl0aG9uNC9wYXRjaGVz LzAwMDItUHl0aG9uLTMuMTAtaXNzdWVzLnBhdGNoCkBAIC0wLDAgKzEsMzMxNyBAQAorRnJvbSBm NTVhMTdjMmQzYjMzNmM4MmZiNDRmNzgxNmVjNjMyMTk4NDdmNGNjIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogU2NvdHQgVGFsYmVydCA8c3d0QHRlY2hpZS5uZXQ+CitEYXRlOiBEZWMg MjIgMjAyMSAyMDoyMzo1NCArMDAwMAorU3ViamVjdDogRml4IGEgYnVuY2ggb2YgUHl0aG9uIDMu MTAgaXNzdWVzCisKKworLS0tCisKK2RpZmYgLS1naXQgYS8wZDQ0OTYyNmQ2ZDI5OGFkOTZlYmQx ZDUxNGQwZTQyODMzYmNlNDcwLnBhdGNoIGIvMGQ0NDk2MjZkNmQyOThhZDk2ZWJkMWQ1MTRkMGU0 MjgzM2JjZTQ3MC5wYXRjaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmQy Y2NkZGMKKy0tLSAvZGV2L251bGwKKysrKyBiLzBkNDQ5NjI2ZDZkMjk4YWQ5NmViZDFkNTE0ZDBl NDI4MzNiY2U0NzAucGF0Y2gKK0BAIC0wLDAgKzEsMjIgQEAKKytGcm9tIDBkNDQ5NjI2ZDZkMjk4 YWQ5NmViZDFkNTE0ZDBlNDI4MzNiY2U0NzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCisrRnJv bTogQ2Fyb2xpbmEgRmVoZXIgZGEgU2lsdmEgPGNhcm9sZnN1QGdtYWlsLmNvbT4KKytEYXRlOiBU dWUsIDE2IE5vdiAyMDIxIDAxOjI0OjMxICswMDAwCisrU3ViamVjdDogW1BBVENIXSBGaXhlZCBp bnRlZ2VyIGRpdmlzaW9uIGluIFB5dGhvbiAzCisrCisrLS0tCisrIHd4L2xpYi9zdGF0dGV4dC5w eSB8IDIgKy0KKysgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0p CisrCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9zdGF0dGV4dC5weSBiL3d4L2xpYi9zdGF0dGV4dC5w eQorK2luZGV4IDJjZmI2ZTY1YS4uZTYwNmU1YTg5IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9zdGF0 dGV4dC5weQorKysrKyBiL3d4L2xpYi9zdGF0dGV4dC5weQorK0BAIC0zMDIsNyArMzAyLDcgQEAg ZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQpOgorKyAgICAgICAgICAgICBpZiBzdHlsZSAmIHd4LkFM SUdOX1JJR0hUOgorKyAgICAgICAgICAgICAgICAgeCA9IHdpZHRoIC0gdworKyAgICAgICAgICAg ICBpZiBzdHlsZSAmIHd4LkFMSUdOX0NFTlRFUjoKKystICAgICAgICAgICAgICAgIHggPSAod2lk dGggLSB3KS8yCisrKyAgICAgICAgICAgICAgICB4ID0gKHdpZHRoIC0gdykvLzIKKysgICAgICAg ICAgICAgZGMuRHJhd1RleHQobGluZSwgeCwgeSkKKysgICAgICAgICAgICAgeSArPSBoCisrIAor ZGlmZiAtLWdpdCBhLzNlYjllYjMyZGMzMjg1NDM1MDM5ZjZjNDIwYzM5ODY2NTM3MmExYWQucGF0 Y2ggYi8zZWI5ZWIzMmRjMzI4NTQzNTAzOWY2YzQyMGMzOTg2NjUzNzJhMWFkLnBhdGNoCituZXcg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uMDhlNThhMAorLS0tIC9kZXYvbnVsbAor KysrIGIvM2ViOWViMzJkYzMyODU0MzUwMzlmNmM0MjBjMzk4NjY1MzcyYTFhZC5wYXRjaAorQEAg LTAsMCArMSw4NCBAQAorK0Zyb20gM2ViOWViMzJkYzMyODU0MzUwMzlmNmM0MjBjMzk4NjY1Mzcy YTFhZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKKytGcm9tOiBHbGVuIFdoaXRuZXkgPGdsZW5A c3R1ZGlvaW5maW5pdHkub3JnPgorK0RhdGU6IFR1ZSwgMzEgQXVnIDIwMjEgMTE6MDY6MjcgLTA3 MDAKKytTdWJqZWN0OiBbUEFUQ0hdIGZpeDogQ29ycmVjdCB0eXBlcyBvZiBhcmd1bWVudHMgdG8K KysgU2Nyb2xsZWRXaW5kb3cuU2V0U2Nyb2xsYmFycworKworKy0tLQorKyBkZW1vL01hc2sucHkg ICAgICAgICAgICAgICAgICAgfCAgMiArLQorKyBkZW1vL09HTC5weSAgICAgICAgICAgICAgICAg ICAgfCAgMiArLQorKyB3eC9saWIvYWd3L3VsdGltYXRlbGlzdGN0cmwucHkgfCAxNCArKysrKysr LS0tLS0tLQorKyAzIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMo LSkKKysKKytkaWZmIC0tZ2l0IGEvZGVtby9NYXNrLnB5IGIvZGVtby9NYXNrLnB5CisraW5kZXgg NWYwYzJjZGRlLi4xMDliOGYzMGIgMTAwNjQ0CisrLS0tIGEvZGVtby9NYXNrLnB5CisrKysrIGIv ZGVtby9NYXNrLnB5CisrQEAgLTU2LDcgKzU2LDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVu dCk6CisrICAgICAgICAgbWFzayA9IHd4Lk1hc2soc2VsZi5ibXBfd2l0aGNvbG91cm1hc2ssIHd4 LldISVRFKQorKyAgICAgICAgIHNlbGYuYm1wX3dpdGhjb2xvdXJtYXNrLlNldE1hc2sobWFzaykK KysgCisrLSAgICAgICAgc2VsZi5TZXRTY3JvbGxiYXJzKDIwLCAyMCwgNzAwLzIwLCA0NjAvMjAp CisrKyAgICAgICAgc2VsZi5TZXRTY3JvbGxiYXJzKDIwLCAyMCwgNzAwLy8yMCwgNDYwLy8yMCkK KysgCisrICAgICAgICAgc2VsZi5CaW5kKHd4LkVWVF9QQUlOVCwgc2VsZi5PblBhaW50KQorKyAK KytkaWZmIC0tZ2l0IGEvZGVtby9PR0wucHkgYi9kZW1vL09HTC5weQorK2luZGV4IDcyY2E1NDNk ZC4uZDQ3NWU1MDExIDEwMDY0NAorKy0tLSBhL2RlbW8vT0dMLnB5CisrKysrIGIvZGVtby9PR0wu cHkKKytAQCAtMjcyLDcgKzI3Miw3IEBAIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQsIGxvZywg ZnJhbWUpOgorKyAKKysgICAgICAgICBtYXhXaWR0aCAgPSAxMDAwCisrICAgICAgICAgbWF4SGVp Z2h0ID0gMTAwMAorKy0gICAgICAgIHNlbGYuU2V0U2Nyb2xsYmFycygyMCwgMjAsIG1heFdpZHRo LzIwLCBtYXhIZWlnaHQvMjApCisrKyAgICAgICAgc2VsZi5TZXRTY3JvbGxiYXJzKDIwLCAyMCwg bWF4V2lkdGgvLzIwLCBtYXhIZWlnaHQvLzIwKQorKyAKKysgICAgICAgICBzZWxmLmxvZyA9IGxv ZworKyAgICAgICAgIHNlbGYuZnJhbWUgPSBmcmFtZQorK2RpZmYgLS1naXQgYS93eC9saWIvYWd3 L3VsdGltYXRlbGlzdGN0cmwucHkgYi93eC9saWIvYWd3L3VsdGltYXRlbGlzdGN0cmwucHkKKytp bmRleCBjNjA4Njc2ODQuLjE0ZmM0MWY4NiAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3VsdGlt YXRlbGlzdGN0cmwucHkKKysrKysgYi93eC9saWIvYWd3L3VsdGltYXRlbGlzdGN0cmwucHkKKytA QCAtOTY1NCw4ICs5NjU0LDggQEAgZGVmIFJlY2FsY3VsYXRlUG9zaXRpb25zKHNlbGYsIG5vUmVm cmVzaD1GYWxzZSk6CisrICAgICAgICAgICAgICAgICBzZWxmLl9saW5lc1BlclBhZ2UgPSBjbGll bnRIZWlnaHQvL2xpbmVIZWlnaHQKKysgCisrICAgICAgICAgICAgICAgICBzZWxmLlNldFNjcm9s bGJhcnMoU0NST0xMX1VOSVRfWCwgbGluZUhlaWdodCwKKystICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoc2VsZi5HZXRIZWFkZXJXaWR0aCgpLWRlY3JlbWVudCkvU0NST0xMX1VO SVRfWCwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW50aXJlSGVpZ2h0 ICsgbGluZUhlaWdodCAtIDEpL2xpbmVIZWlnaHQsCisrKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHNlbGYuR2V0SGVhZGVyV2lkdGgoKS1kZWNyZW1lbnQpLy9TQ1JPTExfVU5J VF9YLAorKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbnRpcmVIZWlnaHQg KyBsaW5lSGVpZ2h0IC0gMSkvL2xpbmVIZWlnaHQsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5HZXRTY3JvbGxQb3Mod3guSE9SSVpPTlRBTCksCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5HZXRTY3JvbGxQb3Mod3guVkVSVElDQUwp LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRydWUpCisrQEAgLTk2NzYs OCArOTY3Niw4IEBAIGRlZiBSZWNhbGN1bGF0ZVBvc2l0aW9ucyhzZWxmLCBub1JlZnJlc2g9RmFs c2UpOgorKyAgICAgICAgICAgICAgICAgICAgIGRlY3JlbWVudCA9IFNDUk9MTF9VTklUX1gKKysg CisrICAgICAgICAgICAgICAgICBzZWxmLlNldFNjcm9sbGJhcnMoU0NST0xMX1VOSVRfWCwgU0NS T0xMX1VOSVRfWSwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5H ZXRIZWFkZXJXaWR0aCgpLWRlY3JlbWVudCkvU0NST0xMX1VOSVRfWCwKKystICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoZW50aXJlSGVpZ2h0ICsgU0NST0xMX1VOSVRfWSAtIDEp L1NDUk9MTF9VTklUX1ksCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNl bGYuR2V0SGVhZGVyV2lkdGgoKS1kZWNyZW1lbnQpLy9TQ1JPTExfVU5JVF9YLAorKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbnRpcmVIZWlnaHQgKyBTQ1JPTExfVU5JVF9Z IC0gMSkvL1NDUk9MTF9VTklUX1ksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5HZXRTY3JvbGxQb3Mod3guSE9SSVpPTlRBTCksCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5HZXRTY3JvbGxQb3Mod3guVkVSVElDQUwpLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRydWUpCisrQEAgLTk3MjgsOCArOTcyOCw4 IEBAIGRlZiBSZWNhbGN1bGF0ZVBvc2l0aW9ucyhzZWxmLCBub1JlZnJlc2g9RmFsc2UpOgorKyAg ICAgICAgICAgICAgICAgICAgICAgICBsaW5lLl9naS5FeHRlbmRXaWR0aCh3aWR0aE1heCkKKysg CisrICAgICAgICAgICAgICAgICBzZWxmLlNldFNjcm9sbGJhcnMoU0NST0xMX1VOSVRfWCwgbGlu ZUhlaWdodCwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeCArIFNDUk9M TF9VTklUX1gpL1NDUk9MTF9VTklUX1gsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHkgKyBsaW5lSGVpZ2h0KS9saW5lSGVpZ2h0LAorKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICh4ICsgU0NST0xMX1VOSVRfWCkvL1NDUk9MTF9VTklUX1gsCisrKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHkgKyBsaW5lSGVpZ2h0KS8vbGluZUhl aWdodCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkdldFNjcm9s bFBvcyh3eC5IT1JJWk9OVEFMKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLkdldFNjcm9sbFBvcyh3eC5WRVJUSUNBTCksCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVHJ1ZSkKKytAQCAtOTc5Nyw3ICs5Nzk3LDcgQEAgZGVmIFJlY2FsY3Vs YXRlUG9zaXRpb25zKHNlbGYsIG5vUmVmcmVzaD1GYWxzZSk6CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhayAgIyBFdmVyeXRoaW5nIGZpdHMsIG5vIHNlY29uZCB0cnkgcmVxdWly ZWQuCisrIAorKyAgICAgICAgICAgICAgICAgc2VsZi5TZXRTY3JvbGxiYXJzKFNDUk9MTF9VTklU X1gsIGxpbmVIZWlnaHQsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVu dGlyZVdpZHRoICsgU0NST0xMX1VOSVRfWCkvU0NST0xMX1VOSVRfWCwKKysrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoZW50aXJlV2lkdGggKyBTQ1JPTExfVU5JVF9YKS8vU0NS T0xMX1VOSVRfWCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuR2V0U2Nyb2xsUG9zKHd4LkhP UklaT05UQUwpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCitkaWZm IC0tZ2l0IGEvOTA5NjQyNjYwMzI3MjY3MmQ5YTY3NmU4YmNkY2FkZjBhMWNmYTFhMi5wYXRjaCBi LzkwOTY0MjY2MDMyNzI2NzJkOWE2NzZlOGJjZGNhZGYwYTFjZmExYTIucGF0Y2gKK25ldyBmaWxl IG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5mMGI5ZjVkCistLS0gL2Rldi9udWxsCisrKysg Yi85MDk2NDI2NjAzMjcyNjcyZDlhNjc2ZThiY2RjYWRmMGExY2ZhMWEyLnBhdGNoCitAQCAtMCww ICsxLDE0MyBAQAorK0Zyb20gOTA5NjQyNjYwMzI3MjY3MmQ5YTY3NmU4YmNkY2FkZjBhMWNmYTFh MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKKytGcm9tOiBSb2JpbiBEdW5uIDxyb2JpbkBhbGxk dW5uLmNvbT4KKytEYXRlOiBXZWQsIDI2IEZlYiAyMDIwIDExOjEwOjI3IC0wODAwCisrU3ViamVj dDogW1BBVENIXSBBZGQgX19pbmRleF9fIHRvIHd4LldpbmRvd0lELCBhbmQgX19ib29sX18gdG8g d3guUmVnaW9uCisrCisrLS0tCisrIGV0Zy9yZWdpb24ucHkgICAgICAgICAgICAgIHwgIDUgKysr LS0KKysgZXRnL3dpbmRvd2lkLnB5ICAgICAgICAgICAgfCAzMiArKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLQorKyB1bml0dGVzdHMvdGVzdF93aW5kb3dpZC5weSB8IDIzICsrKysrKysr KysrKysrKysrKysrKy0tCisrIDMgZmlsZXMgY2hhbmdlZCwgNDEgaW5zZXJ0aW9ucygrKSwgMTkg ZGVsZXRpb25zKC0pCisrCisrZGlmZiAtLWdpdCBhL2V0Zy9yZWdpb24ucHkgYi9ldGcvcmVnaW9u LnB5CisraW5kZXggMDk4MmMxZmU1Li5kNWJjNDU3NTkgMTAwNjQ0CisrLS0tIGEvZXRnL3JlZ2lv bi5weQorKysrKyBiL2V0Zy9yZWdpb24ucHkKKytAQCAtODgsMTEgKzg4LDEyIEBAIGRlZiBuZXh0 KHNlbGYpOgorKyAgICAgYy5tdXN0SGF2ZUFwcCgpCisrICAgICBjLmZpbmQoJ29wZXJhdG9yKysn KS5pZ25vcmUoKQorKyAKKystICAgICMgU0lQIG1hcHMgb3BlcmF0b3IgYm9vbCgpIHRvIF9faW50 X18sIGJ1dCBDbGFzc2ljIHVzZWQgX19ub256ZXJvX18uIERvZXMKKystICAgICMgaXQgbWFrZSBh bnkgZGlmZmVyZW5jZSBlaXRoZXIgd2F5PworKyAgICAgYy5maW5kKCdvcGVyYXRvciBib29sJyku aWdub3JlKCkKKysgICAgIGMuYWRkQ3BwTWV0aG9kKCdpbnQnLCAnX19ub256ZXJvX18nLCAnKCkn LCAncmV0dXJuIChpbnQpc2VsZi0+b3BlcmF0b3IgYm9vbCgpOycsCisrICAgICAgICAgICAgICAg ICAgICAnUmV0dXJucyB0cnVlIHdoaWxlIHRoZXJlIGFyZSBzdGlsbCByZWN0YW5nbGVzIGF2YWls YWJsZSBpbiB0aGUgaXRlcmF0aW9uLicpCisrKyAgICBjLmFkZENwcE1ldGhvZCgnaW50JywgJ19f Ym9vbF9fJywgJygpJywgJ3JldHVybiAoaW50KXNlbGYtPm9wZXJhdG9yIGJvb2woKTsnLAorKysg ICAgICAgICAgICAgICAgICAgJ1JldHVybnMgdHJ1ZSB3aGlsZSB0aGVyZSBhcmUgc3RpbGwgcmVj dGFuZ2xlcyBhdmFpbGFibGUgaW4gdGhlIGl0ZXJhdGlvbi4nKQorKysKKysgCisrICAgICBjLmFk ZENwcE1ldGhvZCgndm9pZCcsICdOZXh0JywgJygpJywgJ3NlbGYtPm9wZXJhdG9yKysoKTsnLAor KyAgICAgICAgICAgICAgICAgICAgJ01vdmUgdGhlIGl0ZXJhdG9yIHRvIHRoZSBuZXh0IHJlY3Rh bmdsZSBpbiB0aGUgcmVnaW9uLicpCisrZGlmZiAtLWdpdCBhL2V0Zy93aW5kb3dpZC5weSBiL2V0 Zy93aW5kb3dpZC5weQorK2luZGV4IDI3YjA0MWIzZC4uZGEyZWQzOTVlIDEwMDY0NAorKy0tLSBh L2V0Zy93aW5kb3dpZC5weQorKysrKyBiL2V0Zy93aW5kb3dpZC5weQorK0BAIC01MywxMiArNTMs MTIgQEAgZGVmIHJ1bigpOgorKyAgICAgICAgICAgICAgICAgTWV0aG9kRGVmKG5hbWU9J3d4V2lu ZG93SURSZWYnLCBjbGFzc05hbWU9J3d4V2luZG93SURSZWYnLCBpc0N0b3I9VHJ1ZSwKKysgICAg ICAgICAgICAgICAgICAgICBicmllZkRvYz0nQ3JlYXRlIHJlZmVyZW5jZSBmcm9tIGFuIElEJywK KysgICAgICAgICAgICAgICAgICAgICBpdGVtcz1bIFBhcmFtRGVmKHR5cGU9J2ludCcsIG5hbWU9 J2lkJykgXSksCisrLSAgICAgICAgICAgICAgICAKKysrCisrICAgICAgICAgICAgICAgICBNZXRo b2REZWYobmFtZT0nd3hXaW5kb3dJRFJlZicsIGNsYXNzTmFtZT0nd3hXaW5kb3dJRFJlZicsIGlz Q3Rvcj1UcnVlLAorKyAgICAgICAgICAgICAgICAgICAgIGJyaWVmRG9jPSdDb3B5IGFuIElEIHJl ZmVyZW5jZScsCisrICAgICAgICAgICAgICAgICAgICAgaXRlbXM9WyBQYXJhbURlZih0eXBlPSdj b25zdCB3eFdpbmRvd0lEUmVmJicsIG5hbWU9J2lkcmVmJykgXSksCisrICAgICAgICAgICAgICAg ICBdKSwKKystICAgICAgICAgICAgCisrKworKyAgICAgICAgICAgICBNZXRob2REZWYobmFtZT0n fnd4V2luZG93SURSZWYnLCBjbGFzc05hbWU9J3d4V2luZG93SURSZWYnLCBpc0R0b3I9VHJ1ZSks CisrIAorKyAgICAgICAgICAgICBNZXRob2REZWYodHlwZT0naW50JywgbmFtZT0nR2V0VmFsdWUn LAorK0BAIC03MywxMSArNzMsMTMgQEAgZGVmIHJ1bigpOgorKyAgICAgICAgICAgICAiIiIpCisr IAorKyAgICAga2xhc3MuYWRkQ3BwTWV0aG9kKCdpbnQnLCAnX19pbnRfXycsICcoKScsCisrLSAg ICAgICAgZG9jPSJBbGlhcyBmb3IgR2V0VmFsdWUgYWxsb3dpbmcgdGhlIElEUmVmIHRvIGJlIHBh c3NlZCBhcyB0aGUgV2luZG93SUQgcGFyYW1ldGVyIHdoZW4gY3JlYXRpbmcgd2lkZ2V0cyBvciBl dGMuIiwKKystICAgICAgICBib2R5PSIiIlwKKystICAgICAgICAgICAgcmV0dXJuIHNlbGYtPkdl dFZhbHVlKCk7CisrLSAgICAgICAgICAgICIiIikKKystICAgIAorKysgICAgICAgIGRvYz0iQWxp YXMgZm9yIEdldFZhbHVlIGFsbG93aW5nIHRoZSBJRFJlZiB0byBiZSBwYXNzZWQgYXMgdGhlIFdp bmRvd0lEIHBhcmFtZXRlciB3aGVuIGNyZWF0aW5nIHdpZGdldHMgb3Igb3RoZXIgcGxhY2VzIGFu IGludGVnZXIgdHlwZSBpcyBuZWVkZWQuIiwKKysrICAgICAgICBib2R5PSJyZXR1cm4gc2VsZi0+ R2V0VmFsdWUoKTsiKQorKysgICAga2xhc3MuYWRkQ3BwTWV0aG9kKCdpbnQnLCAnX19pbmRleF9f JywgJygpJywKKysrICAgICAgICBkb2M9IlNlZSA6bWV0aDpgX19pbnRfX2AiLAorKysgICAgICAg IGJvZHk9InJldHVybiBzZWxmLT5HZXRWYWx1ZSgpOyIpCisrKworKysKKysgICAgIGtsYXNzLmFk ZENwcE1ldGhvZCgnYm9vbCcsICdfX2VxX18nLCAnKHd4V2luZG93SUQgaWQpJywgInJldHVybiBz ZWxmLT5HZXRWYWx1ZSgpID09IGlkOyIpCisrICAgICBrbGFzcy5hZGRDcHBNZXRob2QoJ2Jvb2wn LCAnX19uZV9fJywgJyh3eFdpbmRvd0lEIGlkKScsICJyZXR1cm4gc2VsZi0+R2V0VmFsdWUoKSAh PSBpZDsiKQorKyAgICAga2xhc3MuYWRkQ3BwTWV0aG9kKCdib29sJywgJ19fbHRfXycsICcod3hX aW5kb3dJRCBpZCknLCAicmV0dXJuIHNlbGYtPkdldFZhbHVlKCkgPCBpZDsiKQorK0BAIC05Miwx NyArOTQsMTcgQEAgZGVmIHJ1bigpOgorKyAgICAgIyBhbmQgZmluaXNoIGl0IHVwIGJ5IGFkZGlu ZyBpdCB0byB0aGUgbW9kdWxlCisrICAgICBtb2R1bGUuYWRkSXRlbShrbGFzcykKKysgCisrLSAg ICAjIE5vdywgbGV0J3MgYWRkIGEgbmV3IFB5dGhvbiBmdW5jdGlvbiB0byB0aGUgZ2xvYmFsIHNj b3BlIHRoYXQgcmVzZXJ2ZXMgYW4gCisrLSAgICAjIElEIChvciByYW5nZSkgYW5kIHJldHVybnMg YSByZWYgb2JqZWN0IGZvciBpdC4gCisrLSAgICBtb2R1bGUuYWRkUHlGdW5jdGlvbignTmV3SWRS ZWYnLCAnKGNvdW50PTEpJywgCisrKyAgICAjIE5vdywgbGV0J3MgYWRkIGEgbmV3IFB5dGhvbiBm dW5jdGlvbiB0byB0aGUgZ2xvYmFsIHNjb3BlIHRoYXQgcmVzZXJ2ZXMgYW4KKysrICAgICMgSUQg KG9yIHJhbmdlKSBhbmQgcmV0dXJucyBhIHJlZiBvYmplY3QgZm9yIGl0LgorKysgICAgbW9kdWxl LmFkZFB5RnVuY3Rpb24oJ05ld0lkUmVmJywgJyhjb3VudD0xKScsCisrICAgICAgICAgZG9jPSIi IlwKKystICAgICAgICAgICAgUmVzZXJ2ZXMgYSBuZXcgV2luZG93IElEIChvciByYW5nZSBvZiBX aW5kb3dJRHMpIGFuZCByZXR1cm5zIGEgCisrLSAgICAgICAgICAgIDpjbGFzczpgd3guV2luZG93 SURSZWZgIG9iamVjdCAob3IgbGlzdCBvZiB0aGVtKSB0aGF0IHdpbGwgaGVscCAKKysrICAgICAg ICAgICAgUmVzZXJ2ZXMgYSBuZXcgV2luZG93IElEIChvciByYW5nZSBvZiBXaW5kb3dJRHMpIGFu ZCByZXR1cm5zIGEKKysrICAgICAgICAgICAgOmNsYXNzOmB3eC5XaW5kb3dJRFJlZmAgb2JqZWN0 IChvciBsaXN0IG9mIHRoZW0pIHRoYXQgd2lsbCBoZWxwCisrICAgICAgICAgICAgIG1hbmFnZSB0 aGUgcmVzZXJ2YXRpb24gb2YgdGhhdCBJRC4KKysgCisrLSAgICAgICAgICAgIFRoaXMgZnVuY3Rp b24gaXMgaW50ZW5kZWQgdG8gYmUgYSBkcm9wLWluIHJlcGxhY2VtZW50IG9mIHRoZSBvbGQgCisr LSAgICAgICAgICAgIGFuZCBkZXByZWNhdGVkIDpmdW5jOmB3eC5OZXdJZGAgZnVuY3Rpb24sIHdp dGggdGhlIGFkZGVkIGJlbmVmaXQgCisrLSAgICAgICAgICAgIHRoYXQgdGhlIElEIHNob3VsZCBu ZXZlciBjb25mbGljdCB3aXRoIGFuIGluLXVzZSBJRCBvciBvdGhlciBJRHMgCisrKyAgICAgICAg ICAgIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgdG8gYmUgYSBkcm9wLWluIHJlcGxhY2VtZW50 IG9mIHRoZSBvbGQKKysrICAgICAgICAgICAgYW5kIGRlcHJlY2F0ZWQgOmZ1bmM6YHd4Lk5ld0lk YCBmdW5jdGlvbiwgd2l0aCB0aGUgYWRkZWQgYmVuZWZpdAorKysgICAgICAgICAgICB0aGF0IHRo ZSBJRCBzaG91bGQgbmV2ZXIgY29uZmxpY3Qgd2l0aCBhbiBpbi11c2UgSUQgb3Igb3RoZXIgSURz CisrICAgICAgICAgICAgIGdlbmVyYXRlZCBieSB0aGlzIGZ1bmN0aW9uLgorKyAgICAgICAgICAg ICAiIiIsCisrICAgICAgICAgYm9keT0iIiJcCisrZGlmZiAtLWdpdCBhL3VuaXR0ZXN0cy90ZXN0 X3dpbmRvd2lkLnB5IGIvdW5pdHRlc3RzL3Rlc3Rfd2luZG93aWQucHkKKytpbmRleCA0NTkzZTVh NjkuLmZjMzZjOWViOCAxMDA2NDQKKystLS0gYS91bml0dGVzdHMvdGVzdF93aW5kb3dpZC5weQor KysrKyBiL3VuaXR0ZXN0cy90ZXN0X3dpbmRvd2lkLnB5CisrQEAgLTMxLDkgKzMxLDkgQEAgZGVm IHRlc3RfbmV3SWRSZWYwMihzZWxmKToKKysgICAgIGRlZiB0ZXN0X25ld0lkUmVmMDMoc2VsZik6 CisrICAgICAgICAgIiIiQ2hlY2sgdGhhdCBBdXRvIElEIE1hbmFnZW1lbnQgaXMgZW5hYmxlZCAo LS1lbmFibGUtYXV0b2lkbWFuKSIiIgorKyAgICAgICAgICMgVGhpcyB0ZXN0IGlzIGV4cGVjdGVk IHRvIGZhaWwgaWYgYXV0b0lEIG1hbmdhZ2VtZW50IGlzIHR1cm5lZCBvbgorKy0gICAgICAgICMg YmVjYXVzZSBhIHJlZmVyZW5jZSB0byB0aGUgSUQgaXMgbm90IGJlaW5nIHNhdmVkLCBzbyBpdCB3 aWxsIGJlIAorKysgICAgICAgICMgYmVjYXVzZSBhIHJlZmVyZW5jZSB0byB0aGUgSUQgaXMgbm90 IGJlaW5nIHNhdmVkLCBzbyBpdCB3aWxsIGJlCisrICAgICAgICAgIyB1bnJlc2VydmVkIHdoZW4g dGhlIGZpcnN0IHdpZGdldCBpcyBkZXN0cm95ZWQuCisrLSAgICAgICAgCisrKworKyAgICAgICAg IGlkID0gd3guV2luZG93Lk5ld0NvbnRyb2xJZCgpCisrICAgICAgICAgYiA9IHd4LkJ1dHRvbihz ZWxmLmZyYW1lLCBpZCwgJ2J1dHRvbicpCisrICAgICAgICAgYi5EZXN0cm95KCkKKytAQCAtNzUs NiArNzUsNyBAQCBkZWYgdGVzdF9XaW5kb3dJRFJlZjAxKHNlbGYpOgorKyAgICAgICAgIHZhbCA9 IHJlZjEgPD0gcmVmMgorKyAgICAgICAgIGFzc2VydCB0eXBlKHZhbCkgPT0gYm9vbAorKyAKKysr CisrICAgICBkZWYgdGVzdF9XaW5kb3dJRFJlZjAyKHNlbGYpOgorKyAgICAgICAgIGQgPSB7d3gu TmV3SWRSZWYoKTogJ29uZScsCisrICAgICAgICAgICAgICB3eC5OZXdJZFJlZigpOiAndHdvJ30K KytAQCAtODIsNiArODMsMjQgQEAgZGVmIHRlc3RfV2luZG93SURSZWYwMihzZWxmKToKKysgICAg ICAgICBmb3IgayBpbiBrZXlzOgorKyAgICAgICAgICAgICB2YWwgPSBkW2tdCisrIAorKysKKysr ICAgIGRlZiB0ZXN0X1dpbmRvd0lEUmVmMDMoc2VsZik6CisrKyAgICAgICAgIyBFbnN1cmUgd3gu V2luZG93SURSZWYgY2FuIGJlIGNvbnZlcnRlZCB0byBpbnQgd2l0aG91dCB3YXJuaW5nIHdoZW4K KysrICAgICAgICAjIG1ha2luZyBhIGNhbGwgdG8gd2FycnBlZCBtZXRob2QuIEluIFB5My44KyB0 aGlzIG1lYW5zIHRoZXJlIG5lZWRzIHRvCisrKyAgICAgICAgIyBiZSBhbiBfX2luZGV4X18gbWV0 aG9kLgorKysKKysrICAgICAgICAjIFR1cm4gd2FybmluZ3MgaW50byBleGNlcHRpb25zIHNvIHRo aXMgdGVzdCB3aWxsIGZhaWwgaWYgdGhlcmUgaXMKKysrICAgICAgICAjIGEgd2FybmluZworKysg ICAgICAgIGltcG9ydCB3YXJuaW5ncworKysgICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcign ZXJyb3InKQorKysKKysrICAgICAgICB3aWQgPSB3eC5OZXdJZFJlZigpCisrKyAgICAgICAgYXNz ZXJ0IGlzaW5zdGFuY2Uod2lkLCB3eC5XaW5kb3dJRFJlZikKKysrCisrKyAgICAgICAgYiA9IHd4 LkJ1dHRvbihzZWxmLmZyYW1lLCB3aWQsICdidXR0b24nKQorKysgICAgICAgIGFzc2VydCBiLkdl dElkKCkgPT0gd2lkLkdldElkKCkKKysrCisrKworKyAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIAor KyAKKyAKK2RpZmYgLS1naXQgYS9weXRob24zLjEwLWZpeGVzLnBhdGNoIGIvcHl0aG9uMy4xMC1m aXhlcy5wYXRjaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLjI5ZThjNjEK Ky0tLSAvZGV2L251bGwKKysrKyBiL3B5dGhvbjMuMTAtZml4ZXMucGF0Y2gKK0BAIC0wLDAgKzEs MzAzNCBAQAorK0Zyb20gMTczZDA3OTY4MTBiYjY1ZGU5YmRmZGM2OTQxZDI0YTA0NjI4ZjZjMiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKKytGcm9tOiBTY290dCBUYWxiZXJ0IDxzd3RAdGVjaGll Lm5ldD4KKytEYXRlOiBXZWQsIDEgRGVjIDIwMjEgMTQ6MTk6MDAgLTA1MDAKKytTdWJqZWN0OiBb UEFUQ0hdIEZpeCBhIGJ1bmNoIG9mIFB5dGhvbiAzLjEwIGlzc3VlcyB3aXRoIHB1cmUtUHl0aG9u IGNsYXNzZXMKKysgYW5kIGRlbW9zCisrCisrSW4gUHl0aG9uIDMuMTAsIGEgY2hhbmdlWzFdIHdh cyBpbXBsZW1lbnRlZCB3aGVyZSBleHRlbnNpb24gZnVuY3Rpb25zCisrdGhhdCB0YWtlIGludGVn ZXIgYXJndW1lbnRzIHdpbGwgbm8gbG9uZ2VyIHNpbGVudGx5IGFjY2VwdCBub24taW50ZWdlcgor K2FyZ3VtZW50cyAoZS5nLiwgZmxvYXRzKSB0aGF0IGNhbiBvbmx5IGJlIGNvbnZlcnRlZCB0byBp bnRlZ2VycyB3aXRoIGEKKytsb3NzIG9mIHByZWNpc2lvbi4gIFRoaXMgUFIgZml4ZXMgbW9zdCBv ZiB0aGVzZSBpc3N1ZXMgaW4gdGhlIHB1cmUtUHl0aG9uCisrY2xhc3NlcyBhbmQgZGVtb3MgYnkg ZXhwbGljaXRseSBjb252ZXJ0aW5nIHRoZSBwYXJhbWV0ZXJzIHRvIGludCBiZWZvcmUKKytwYXNz aW5nIHRoZW0gdG8gd3hXaWRnZXRzLiAgVGhlcmUgaXMgbG9zcyBvZiBwcmVjaXNpb24sIGJ1dCB0 aGlzIHdhcworK2hhcHBlbmluZyBiZWZvcmUgKGF1dG9tYXRpY2FsbHkpIGFueXdheSBhcyBtb3N0 IHd4V2lkZ2V0cyBEZXZpY2VDb250ZXh0CisrZnVuY3Rpb25zIG9wZXJhdGUgdXNpbmcgaW50ZWdl cnMuCisrCisrQWRkaXRpb25hbGx5LCB0aGUgUFIgZml4ZXMgYSBmZXcgc2l6aW5nIGlzc3Vlcywg bW9zdGx5IHdpdGggU3BpbkN0cmxzIGJlaW5nCisrdG9vIHNtYWxsIG9uIEdUSzMuCisrCisrVGhp cyBpcyBhbiBleGFtcGxlIG9mIHRoZSByZWxldmFudCBleGNlcHRpb246CisrVHJhY2ViYWNrICht b3N0IHJlY2VudCBjYWxsIGxhc3QpOgorKyAgRmlsZSAiL3Vzci9saWI2NC9weXRob24zLjEwL3Np dGUtcGFja2FnZXMvd3gvbGliL2Fndy9weWdhdWdlLnB5IiwgbGluZSAzNTUsIGluIE9uUGFpbnQK KysgICAgci53aWR0aCA9IHcKKytUeXBlRXJyb3I6ICdmbG9hdCcgb2JqZWN0IGNhbm5vdCBiZSBp bnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyCisrCisrRml4ZXMgIzIwMzguCisrCisrWzFdIGh0dHBz Oi8vYnVncy5weXRob24ub3JnL2lzc3VlMzc5OTkKKystLS0KKysgZGVtby9HcmlkTGFiZWxSZW5k ZXJlci5weSAgICAgICAgICAgICAgIHwgICA0ICstCisrIGRlbW8vTWFzay5weSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgNCArLQorKyBkZW1vL092ZXJsYXkucHkgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDEgLQorKyBkZW1vL1BlbkFuZEJydXNoU3R5bGVzLnB5ICAgICAgICAg ICAgICAgfCAgIDIgKy0KKysgZGVtby9Qb3B1cFdpbmRvdy5weSAgICAgICAgICAgICAgICAgICAg IHwgICAyICstCisrIGRlbW8vUHJpbnRGcmFtZXdvcmsucHkgICAgICAgICAgICAgICAgICB8ICAg MiArLQorKyBkZW1vL1Byb3BlcnR5R3JpZC5weSAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K KysgZGVtby9TaXplcnMucHkgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCisrIGRl bW8vVUlBY3Rpb25TaW11bGF0b3IucHkgICAgICAgICAgICAgICB8ICAgMiArLQorKyBkZW1vL2Fn dy9BVUkucHkgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzIgKysrLS0tLQorKyBkZW1vL2Fn dy9NYWNMYXJnZURlbW8ucHkgICAgICAgICAgICAgICAgfCAgIDQgKy0KKysgZGVtby9hZ3cvUGVh a01ldGVyLnB5ICAgICAgICAgICAgICAgICAgIHwgICA2ICstCisrIGRlbW8vYWd3L1BlcnNpc3Rl bnRDb250cm9scy5weSAgICAgICAgICB8ICAgMiArLQorKyBkZW1vL2Fndy9SaWJib25CYXIucHkg ICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KKysgZGVtby9hZ3cvU3BlZWRNZXRlci5weSAgICAg ICAgICAgICAgICAgIHwgICAyICstCisrIGRlbW8vYWd3L1N1cGVyVG9vbFRpcC5weSAgICAgICAg ICAgICAgICB8ICAgMyArLQorKyBkZW1vL2Fndy9UaHVtYkRlbW9Db25maWcucHkgICAgICAgICAg ICAgfCAgIDEgKworKyBkZW1vL2Fndy9VbHRpbWF0ZVJlcG9ydERlbW8ucHkgICAgICAgICAgfCAg IDggKy0KKysgZGVtby9hZ3cvV2luZG93czdFeHBsb3Jlcl9Db250ZW50cy5weSAgIHwgIDE2ICsr LS0KKysgZGVtby9hZ3cvWm9vbUJhci5weSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCisr IHd4L2xpYi9hZ3cvYWR2YW5jZWRzcGxhc2gucHkgICAgICAgICAgICB8ICAgMiArLQorKyB3eC9s aWIvYWd3L2F1aS9hdWlfdXRpbGl0aWVzLnB5ICAgICAgICAgfCAgIDQgKy0KKysgd3gvbGliL2Fn dy9hdWkvYXVpYm9vay5weSAgICAgICAgICAgICAgIHwgICA0ICstCisrIHd4L2xpYi9hZ3cvYmFs bG9vbnRpcC5weSAgICAgICAgICAgICAgICB8ICAgNCArLQorKyB3eC9saWIvYWd3L2ZsYXRtZW51 LnB5ICAgICAgICAgICAgICAgICAgfCAgNjIgKysrKysrLS0tLS0tLQorKyB3eC9saWIvYWd3L2Zs YXRub3RlYm9vay5weSAgICAgICAgICAgICAgfCAgMTAgKy0tCisrIHd4L2xpYi9hZ3cvZmxvYXRz cGluLnB5ICAgICAgICAgICAgICAgICB8ICAgMiArLQorKyB3eC9saWIvYWd3L2dyYWRpZW50YnV0 dG9uLnB5ICAgICAgICAgICAgfCAgIDggKy0KKysgd3gvbGliL2Fndy9oeXBlcnRyZWVsaXN0LnB5 ICAgICAgICAgICAgIHwgICAyICstCisrIHd4L2xpYi9hZ3cva25vYmN0cmwucHkgICAgICAgICAg ICAgICAgICB8ICAxMiArLS0KKysgd3gvbGliL2Fndy9sYWJlbGJvb2sucHkgICAgICAgICAgICAg ICAgIHwgIDMyICsrKy0tLS0KKysgd3gvbGliL2Fndy9wZWFrbWV0ZXIucHkgICAgICAgICAgICAg ICAgIHwgICAyICstCisrIHd4L2xpYi9hZ3cvcHlnYXVnZS5weSAgICAgICAgICAgICAgICAgICB8 ICAgNCArLQorKyB3eC9saWIvYWd3L3JpYmJvbi9hcnRfYXVpLnB5ICAgICAgICAgICAgfCAgMjIg KystLS0KKysgd3gvbGliL2Fndy9yaWJib24vYXJ0X2ludGVybmFsLnB5ICAgICAgIHwgIDEyICst LQorKyB3eC9saWIvYWd3L3JpYmJvbi9hcnRfbXN3LnB5ICAgICAgICAgICAgfCAgODggKysrKysr KysrLS0tLS0tLS0tLQorKyB3eC9saWIvYWd3L3JpYmJvbi9iYXIucHkgICAgICAgICAgICAgICAg fCAgIDQgKy0KKysgd3gvbGliL2Fndy9yaWJib24vYnV0dG9uYmFyLnB5ICAgICAgICAgIHwgICA2 ICstCisrIHd4L2xpYi9hZ3cvcmliYm9uL2dhbGxlcnkucHkgICAgICAgICAgICB8ICAgOCArLQor KyB3eC9saWIvYWd3L3JpYmJvbi9wYW5lbC5weSAgICAgICAgICAgICAgfCAgMTYgKystLQorKyB3 eC9saWIvYWd3L3JpYmJvbi90b29sYmFyLnB5ICAgICAgICAgICAgfCAgIDIgKy0KKysgd3gvbGli L2Fndy9zY3JvbGxlZHRodW1ibmFpbC5weSAgICAgICAgIHwgIDI0ICsrKy0tLQorKyB3eC9saWIv YWd3L3NoYXBlZGJ1dHRvbi5weSAgICAgICAgICAgICAgfCAgMTAgKy0tCisrIHd4L2xpYi9hZ3cv c3BlZWRtZXRlci5weSAgICAgICAgICAgICAgICB8ICA3MiArKysrKysrKystLS0tLS0tCisrIHd4 L2xpYi9hZ3cvc3VwZXJ0b29sdGlwLnB5ICAgICAgICAgICAgICB8ICAyMCArKy0tLQorKyB3eC9s aWIvYWd3L3RvYXN0ZXJib3gucHkgICAgICAgICAgICAgICAgfCAgIDQgKy0KKysgd3gvbGliL2Fn dy91bHRpbWF0ZWxpc3RjdHJsLnB5ICAgICAgICAgIHwgIDIwICsrLS0tCisrIHd4L2xpYi9hZ3cv eGxzZ3JpZC5weSAgICAgICAgICAgICAgICAgICB8ICAgNCArLQorKyB3eC9saWIvYWd3L3pvb21i YXIucHkgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0tCisrIHd4L2xpYi9hbmFsb2djbG9jay9h bmFsb2djbG9jay5weSAgICAgICB8ICAgMiArLQorKyB3eC9saWIvYW5hbG9nY2xvY2svaGVscGVy cy5weSAgICAgICAgICAgfCAgMjIgKystLS0KKysgd3gvbGliL2FuYWxvZ2Nsb2NrL3NldHVwLnB5 ICAgICAgICAgICAgIHwgICA2ICstCisrIHd4L2xpYi9idXR0b25zLnB5ICAgICAgICAgICAgICAg ICAgICAgICB8ICAxMCArLS0KKysgd3gvbGliL2NvbG91cmNob29zZXIvcHljb2xvdXJjaG9vc2Vy LnB5IHwgICA0ICstCisrIHd4L2xpYi9jb2xvdXJjaG9vc2VyL3B5cGFsZXR0ZS5weSAgICAgICB8 ICAgMiArLQorKyB3eC9saWIvZmxvYXRjYW52YXMvRkNPYmplY3RzLnB5ICAgICAgICAgfCAgIDgg Ky0KKysgd3gvbGliL2dpem1vcy9sZWRjdHJsLnB5ICAgICAgICAgICAgICAgIHwgICA4ICstCisr IHd4L2xpYi9pbWFnZWJyb3dzZXIucHkgICAgICAgICAgICAgICAgICB8ICAgNCArLQorKyB3eC9s aWIvb2dsL2Jhc2ljLnB5ICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0tCisrIHd4L2xpYi9v Z2wvYm1wc2hhcGUucHkgICAgICAgICAgICAgICAgICB8ICAgMiArLQorKyB3eC9saWIvb2dsL2Nv bXBvc2l0LnB5ICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KKysgd3gvbGliL29nbC9kaXZpZGVk LnB5ICAgICAgICAgICAgICAgICAgIHwgICAyICstCisrIHd4L2xpYi9vZ2wvbGluZXMucHkgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArLQorKyB3eC9saWIvb2dsL29nbG1pc2MucHkgICAgICAg ICAgICAgICAgICAgfCAgIDQgKy0KKysgd3gvbGliL3Bsb3QvZXhhbXBsZXMvZGVtby5weSAgICAg ICAgICAgIHwgICA0ICstCisrIHd4L2xpYi9wbG90L3Bsb3RjYW52YXMucHkgICAgICAgICAgICAg ICB8IDExMCArKysrKysrKysrKystLS0tLS0tLS0tLS0KKysgd3gvbGliL3Bsb3QvcG9seW9iamVj dHMucHkgICAgICAgICAgICAgIHwgIDIyICsrKy0tCisrIHd4L2xpYi9wb3B1cGN0bC5weSAgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArLQorKyB3eC9saWIvc2Nyb2xsZWRwYW5lbC5weSAgICAg ICAgICAgICAgICAgfCAgIDIgKy0KKysgd3gvbGliL3Rocm9iYmVyLnB5ICAgICAgICAgICAgICAg ICAgICAgIHwgICA2ICstCisrIHd4L2xpYi90aWNrZXIucHkgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgNCArLQorKyA3MSBmaWxlcyBjaGFuZ2VkLCA0MTEgaW5zZXJ0aW9ucygrKSwgMzk4IGRl bGV0aW9ucygtKQorKworK2RpZmYgLS1naXQgYS9kZW1vL0dyaWRMYWJlbFJlbmRlcmVyLnB5IGIv ZGVtby9HcmlkTGFiZWxSZW5kZXJlci5weQorK2luZGV4IDc5NGRkNjRlOC4uMTQ0MGVmNDFiIDEw MDY0NAorKy0tLSBhL2RlbW8vR3JpZExhYmVsUmVuZGVyZXIucHkKKysrKysgYi9kZW1vL0dyaWRM YWJlbFJlbmRlcmVyLnB5CisrQEAgLTQ2LDggKzQ2LDggQEAgZGVmIF9faW5pdF9fKHNlbGYpOgor KyAgICAgICAgIHNlbGYuX2JtcCA9IGltYWdlcy5TbWlsZXMuR2V0Qml0bWFwKCkKKysgCisrICAg ICBkZWYgRHJhdyhzZWxmLCBncmlkLCBkYywgcmVjdCwgcmMpOgorKy0gICAgICAgIHggPSByZWN0 LmxlZnQgKyAocmVjdC53aWR0aCAtIHNlbGYuX2JtcC5HZXRXaWR0aCgpKSAvIDIKKystICAgICAg ICB5ID0gcmVjdC50b3AgKyAocmVjdC5oZWlnaHQgLSBzZWxmLl9ibXAuR2V0SGVpZ2h0KCkpIC8g MgorKysgICAgICAgIHggPSByZWN0LmxlZnQgKyAocmVjdC53aWR0aCAtIHNlbGYuX2JtcC5HZXRX aWR0aCgpKSAvLyAyCisrKyAgICAgICAgeSA9IHJlY3QudG9wICsgKHJlY3QuaGVpZ2h0IC0gc2Vs Zi5fYm1wLkdldEhlaWdodCgpKSAvLyAyCisrICAgICAgICAgZGMuRHJhd0JpdG1hcChzZWxmLl9i bXAsIHgsIHksIFRydWUpCisrIAorKyAKKytkaWZmIC0tZ2l0IGEvZGVtby9NYXNrLnB5IGIvZGVt by9NYXNrLnB5CisraW5kZXggMTA5YjhmMzBiLi5lOTI0Zjk1YjkgMTAwNjQ0CisrLS0tIGEvZGVt by9NYXNrLnB5CisrKysrIGIvZGVtby9NYXNrLnB5CisrQEAgLTkwLDkgKzkwLDkgQEAgZGVmIE9u UGFpbnQgKHNlbGYsIGUpOgorKyAKKysgICAgICAgICBmb3IgdGV4dCwgY29kZSBpbiBsb2dpY0xp c3Q6CisrICAgICAgICAgICAgIHgseSA9IDEyMCsxNTAqKGklNCksIDIwKzEwMCooaS80KQorKy0g ICAgICAgICAgICBkYy5EcmF3VGV4dCh0ZXh0LCB4LCB5LTIwKQorKysgICAgICAgICAgICBkYy5E cmF3VGV4dCh0ZXh0LCB4LCBpbnQoeS0yMCkpCisrICAgICAgICAgICAgIG1kYy5TZWxlY3RPYmpl Y3Qoc2VsZi5ibXBfd2l0aGNvbG91cm1hc2spCisrLSAgICAgICAgICAgIGRjLkJsaXQoeCx5LCBj eCxjeSwgbWRjLCAwLDAsIGNvZGUsIFRydWUpCisrKyAgICAgICAgICAgIGRjLkJsaXQoeCxpbnQo eSksIGN4LGN5LCBtZGMsIDAsMCwgY29kZSwgVHJ1ZSkKKysgICAgICAgICAgICAgaSA9IGkgKyAx CisrIAorKyAKKytkaWZmIC0tZ2l0IGEvZGVtby9PdmVybGF5LnB5IGIvZGVtby9PdmVybGF5LnB5 CisraW5kZXggNjUxNjRjZDg0Li5mYTY1YmUwMDMgMTAwNjQ0CisrLS0tIGEvZGVtby9PdmVybGF5 LnB5CisrKysrIGIvZGVtby9PdmVybGF5LnB5CisrQEAgLTU2LDcgKzU2LDYgQEAgZGVmIF9faW5p dF9fKHNlbGYsIHBhcmVudCwgbG9nKToKKysgICAgICAgICBzZWxmLnBlbnN0eWxlc0NvbWJvLlNl dFRvb2xUaXAoJ1BlbiBTdHlsZScpCisrIAorKyAgICAgICAgIHNlbGYub3ZlcmxheVBlbldpZHRo ID0gd3guU3BpbkN0cmwoc2VsZiwgLTEsIHZhbHVlPScnLAorKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0oNzUsIC0xKSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXd4LlNQX0FSUk9XX0tFWVMsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49MSwgbWF4PTI0LCBp bml0aWFsPTEpCisrICAgICAgICAgc2VsZi5vdmVybGF5UGVuV2lkdGguU2V0VG9vbFRpcCgnUGVu IFdpZHRoJykKKytkaWZmIC0tZ2l0IGEvZGVtby9QZW5BbmRCcnVzaFN0eWxlcy5weSBiL2RlbW8v UGVuQW5kQnJ1c2hTdHlsZXMucHkKKytpbmRleCAyNDA0MGIxZmMuLjExODNmNjg0YSAxMDA2NDQK KystLS0gYS9kZW1vL1BlbkFuZEJydXNoU3R5bGVzLnB5CisrKysrIGIvZGVtby9QZW5BbmRCcnVz aFN0eWxlcy5weQorK0BAIC0xMDAsNyArMTAwLDcgQEAgZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQp OgorKyAKKysgICAgICAgICBkYy5TZXRQZW4ocGVuKQorKyAgICAgICAgIHkgPSBsYWJlbEhlaWdo dCArIChoZWlnaHQgLSBsYWJlbEhlaWdodCkvMgorKy0gICAgICAgIGRjLkRyYXdMaW5lKDUsIHks IHdpZHRoLTUsIHkpCisrKyAgICAgICAgZGMuRHJhd0xpbmUoNSwgaW50KHkpLCB3aWR0aC01LCBp bnQoeSkpCisrIAorKyAKKysgY2xhc3MgQnJ1c2hQYW5lbChCYXNlUGFuZWwpOgorK2RpZmYgLS1n aXQgYS9kZW1vL1BvcHVwV2luZG93LnB5IGIvZGVtby9Qb3B1cFdpbmRvdy5weQorK2luZGV4IGQ4 ZTE3NTU3Ni4uYjU0Yjk4NzBkIDEwMDY0NAorKy0tLSBhL2RlbW8vUG9wdXBXaW5kb3cucHkKKysr KysgYi9kZW1vL1BvcHVwV2luZG93LnB5CisrQEAgLTg5LDcgKzg5LDcgQEAgZGVmIF9faW5pdF9f KHNlbGYsIHBhcmVudCwgc3R5bGUsIGxvZyk6CisrICAgICAgICAgICAgICAgICAgICAgICAgICAg IihvciBpdHMgZmlyc3QgY2hpbGQpIGxvc2VzIGZvY3VzIGluIFxuIgorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICJhbnkgb3RoZXIgd2F5LiIpCisrICAgICAgICAgYnRuID0gd3guQnV0dG9u KHBhbmVsLCAtMSwgIlByZXNzIE1lIikKKystICAgICAgICBzcGluID0gd3guU3BpbkN0cmwocGFu ZWwsIC0xLCAiSGVsbG8iLCBzaXplPSgxMDAsLTEpKQorKysgICAgICAgIHNwaW4gPSB3eC5TcGlu Q3RybChwYW5lbCwgLTEsICJIZWxsbyIpCisrICAgICAgICAgYnRuLkJpbmQod3guRVZUX0JVVFRP Tiwgc2VsZi5PbkJ1dHRvbikKKysgCisrICAgICAgICAgc2l6ZXIgPSB3eC5Cb3hTaXplcih3eC5W RVJUSUNBTCkKKytkaWZmIC0tZ2l0IGEvZGVtby9QcmludEZyYW1ld29yay5weSBiL2RlbW8vUHJp bnRGcmFtZXdvcmsucHkKKytpbmRleCBlN2EyOWEwNzcuLmYwODczYWU5NCAxMDA2NDQKKystLS0g YS9kZW1vL1ByaW50RnJhbWV3b3JrLnB5CisrKysrIGIvZGVtby9QcmludEZyYW1ld29yay5weQor K0BAIC04MSw3ICs4MSw3IEBAIGRlZiBPblByaW50UGFnZShzZWxmLCBwYWdlKToKKysgCisrICAg ICAgICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysgICAg ICAgICBzZWxmLmNhbnZhcy5Eb0RyYXdpbmcoZGMsIFRydWUpCisrLSAgICAgICAgZGMuRHJhd1Rl eHQoIlBhZ2U6ICVkIiAlIHBhZ2UsIG1hcmdpblgvMiwgbWF4WS1tYXJnaW5ZKQorKysgICAgICAg IGRjLkRyYXdUZXh0KCJQYWdlOiAlZCIgJSBwYWdlLCBtYXJnaW5YLy8yLCBtYXhZLW1hcmdpblkp CisrIAorKyAgICAgICAgIHJldHVybiBUcnVlCisrIAorK2RpZmYgLS1naXQgYS9kZW1vL1Byb3Bl cnR5R3JpZC5weSBiL2RlbW8vUHJvcGVydHlHcmlkLnB5CisraW5kZXggYzU2ZTA4YjYwLi5mYmVm MjllMzEgMTAwNjQ0CisrLS0tIGEvZGVtby9Qcm9wZXJ0eUdyaWQucHkKKysrKysgYi9kZW1vL1By b3BlcnR5R3JpZC5weQorK0BAIC0xNTAsNyArMTUwLDcgQEAgZGVmIF9Db252ZXJ0VmFsdWUoc2Vs ZiwgdmFsdWUpOgorKyAgICAgICAgICIiIiBVdGlsaXR5IGNvbnZlcnQgYXJiaXRyYXJ5IHZhbHVl IHRvIGEgcmVhbCB3eC5TaXplLgorKyAgICAgICAgICIiIgorKyAgICAgICAgIGltcG9ydCBjb2xs ZWN0aW9ucworKy0gICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGNvbGxlY3Rpb25zLlNlcXVl bmNlKSBvciBoYXNhdHRyKHZhbHVlLCAnX19nZXRpdGVtX18nKToKKysrICAgICAgICBpZiBpc2lu c3RhbmNlKHZhbHVlLCBjb2xsZWN0aW9ucy5hYmMuU2VxdWVuY2UpIG9yIGhhc2F0dHIodmFsdWUs ICdfX2dldGl0ZW1fXycpOgorKyAgICAgICAgICAgICB2YWx1ZSA9IHd4LlNpemUoKnZhbHVlKQor KyAgICAgICAgIHJldHVybiB2YWx1ZQorKyAKKytkaWZmIC0tZ2l0IGEvZGVtby9TaXplcnMucHkg Yi9kZW1vL1NpemVycy5weQorK2luZGV4IDZhYmFiZWRlOS4uYTAyNTA1MGYxIDEwMDY0NAorKy0t LSBhL2RlbW8vU2l6ZXJzLnB5CisrKysrIGIvZGVtby9TaXplcnMucHkKKytAQCAtNDUsNyArNDUs NyBAQCBkZWYgT25QYWludChzZWxmLCBldnQpOgorKyAgICAgICAgIGRjID0gd3guUGFpbnREQyhz ZWxmKQorKyAgICAgICAgIHcsaCA9IGRjLkdldFRleHRFeHRlbnQoc2VsZi50ZXh0KQorKyAgICAg ICAgIGRjLkNsZWFyKCkKKystICAgICAgICBkYy5EcmF3VGV4dChzZWxmLnRleHQsIChzei53aWR0 aC13KS8yLCAoc3ouaGVpZ2h0LWgpLzIpCisrKyAgICAgICAgZGMuRHJhd1RleHQoc2VsZi50ZXh0 LCAoc3oud2lkdGgtdykvLzIsIChzei5oZWlnaHQtaCkvLzIpCisrIAorKyAgICAgZGVmIE9uU2l6 ZShzZWxmLCBldnQpOgorKyAgICAgICAgIHNlbGYuUmVmcmVzaCgpCisrZGlmZiAtLWdpdCBhL2Rl bW8vVUlBY3Rpb25TaW11bGF0b3IucHkgYi9kZW1vL1VJQWN0aW9uU2ltdWxhdG9yLnB5CisraW5k ZXggY2JiYTE0ZjVjLi4wYTZmZDAyMzQgMTAwNjQ0CisrLS0tIGEvZGVtby9VSUFjdGlvblNpbXVs YXRvci5weQorKysrKyBiL2RlbW8vVUlBY3Rpb25TaW11bGF0b3IucHkKKytAQCAtODgsNyArODgs NyBAQCBkZWYgX3BsYXliYWNrS2V5KHNlbGYsIGV2dFR5cGUsIGtleSwgbW9kaWZpZXJzKToKKysg CisrICAgICBkZWYgX3NldE5leHRLZXlFdmVudChzZWxmKToKKysgICAgICAgICBldnRUeXBlLCBr ZXksIG1vZGlmaWVycywgbWlsbGkgPSBzZWxmLl9wbGF5YmFja0V2ZW50cy5wb3AoMCkKKystICAg ICAgICBtaWxsaSA9IG1heChtaWxsaS8yLCAxKSAjIHBsYXkgYmFjayBmYXN0ZXIgdGhhbiBpdCB3 YXMgcmVjb3JkZWQKKysrICAgICAgICBtaWxsaSA9IG1heChtaWxsaS8vMiwgMSkgIyBwbGF5IGJh Y2sgZmFzdGVyIHRoYW4gaXQgd2FzIHJlY29yZGVkCisrICAgICAgICAgcHJpbnQoZXZ0VHlwZSwg a2V5LCBtb2RpZmllcnMsIG1pbGxpKQorKyAgICAgICAgIHd4LkNhbGxMYXRlcihtaWxsaSwgc2Vs Zi5fcGxheWJhY2tLZXksIGV2dFR5cGUsIGtleSwgbW9kaWZpZXJzKQorKyAKKytkaWZmIC0tZ2l0 IGEvZGVtby9hZ3cvQVVJLnB5IGIvZGVtby9hZ3cvQVVJLnB5CisraW5kZXggN2MyMTk2ODY1Li5i MzgzMTNjODYgMTAwNjQ0CisrLS0tIGEvZGVtby9hZ3cvQVVJLnB5CisrKysrIGIvZGVtby9hZ3cv QVVJLnB5CisrQEAgLTM5Myw3ICszOTMsNyBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6Cisr ICAgICAgICAgZGMuU2V0UGVuKHd4LkxJR0hUX0dSRVlfUEVOKQorKyAgICAgICAgIGRjLkRyYXdM aW5lKDAsIDAsIHNpemUueCwgc2l6ZS55KQorKyAgICAgICAgIGRjLkRyYXdMaW5lKDAsIHNpemUu eSwgc2l6ZS54LCAwKQorKy0gICAgICAgIGRjLkRyYXdUZXh0KHMsIChzaXplLngtdykvMiwgKHNp emUueS1oZWlnaHQqNSkvMikKKysrICAgICAgICBkYy5EcmF3VGV4dChzLCAoc2l6ZS54LXcpLy8y LCAoc2l6ZS55LWhlaWdodCo1KS8vMikKKysgCisrICAgICAgICAgaWYgc2VsZi5fbWdyOgorKyAK KytAQCAtNDAxLDE5ICs0MDEsMTkgQEAgZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQpOgorKyAKKysg ICAgICAgICAgICAgcyA9ICJMYXllcjogJWQiJXBpLmRvY2tfbGF5ZXIKKysgICAgICAgICAgICAg dywgaCA9IGRjLkdldFRleHRFeHRlbnQocykKKystICAgICAgICAgICAgZGMuRHJhd1RleHQocywg KHNpemUueC13KS8yLCAoKHNpemUueS0oaGVpZ2h0KjUpKS8yKSsoaGVpZ2h0KjEpKQorKysgICAg ICAgICAgICBkYy5EcmF3VGV4dChzLCAoc2l6ZS54LXcpLy8yLCAoKHNpemUueS0oaGVpZ2h0KjUp KS8vMikrKGhlaWdodCoxKSkKKysgCisrICAgICAgICAgICAgIHMgPSAiRG9jazogJWQgUm93OiAl ZCIlKHBpLmRvY2tfZGlyZWN0aW9uLCBwaS5kb2NrX3JvdykKKysgICAgICAgICAgICAgdywgaCA9 IGRjLkdldFRleHRFeHRlbnQocykKKystICAgICAgICAgICAgZGMuRHJhd1RleHQocywgKHNpemUu eC13KS8yLCAoKHNpemUueS0oaGVpZ2h0KjUpKS8yKSsoaGVpZ2h0KjIpKQorKysgICAgICAgICAg ICBkYy5EcmF3VGV4dChzLCAoc2l6ZS54LXcpLy8yLCAoKHNpemUueS0oaGVpZ2h0KjUpKS8vMikr KGhlaWdodCoyKSkKKysgCisrICAgICAgICAgICAgIHMgPSAiUG9zaXRpb246ICVkIiVwaS5kb2Nr X3BvcworKyAgICAgICAgICAgICB3LCBoID0gZGMuR2V0VGV4dEV4dGVudChzKQorKy0gICAgICAg ICAgICBkYy5EcmF3VGV4dChzLCAoc2l6ZS54LXcpLzIsICgoc2l6ZS55LShoZWlnaHQqNSkpLzIp KyhoZWlnaHQqMykpCisrKyAgICAgICAgICAgIGRjLkRyYXdUZXh0KHMsIChzaXplLngtdykvLzIs ICgoc2l6ZS55LShoZWlnaHQqNSkpLy8yKSsoaGVpZ2h0KjMpKQorKyAKKysgICAgICAgICAgICAg cyA9ICJQcm9wb3J0aW9uOiAlZCIlcGkuZG9ja19wcm9wb3J0aW9uCisrICAgICAgICAgICAgIHcs IGggPSBkYy5HZXRUZXh0RXh0ZW50KHMpCisrLSAgICAgICAgICAgIGRjLkRyYXdUZXh0KHMsIChz aXplLngtdykvMiwgKChzaXplLnktKGhlaWdodCo1KSkvMikrKGhlaWdodCo0KSkKKysrICAgICAg ICAgICAgZGMuRHJhd1RleHQocywgKHNpemUueC13KS8vMiwgKChzaXplLnktKGhlaWdodCo1KSkv LzIpKyhoZWlnaHQqNCkpCisrIAorKyAKKysgICAgIGRlZiBPbkVyYXNlQmFja2dyb3VuZChzZWxm LCBldmVudCk6CisrQEAgLTQzNSw3ICs0MzUsNyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50 LCBmcmFtZSk6CisrIAorKyAgICAgICAgIHMxID0gd3guQm94U2l6ZXIod3guSE9SSVpPTlRBTCkK KysgICAgICAgICBzZWxmLl9ib3JkZXJfc2l6ZSA9IHd4LlNwaW5DdHJsKHNlbGYsIElEX1BhbmVC b3JkZXJTaXplLCAiJWQiJWZyYW1lLkdldERvY2tBcnQoKS5HZXRNZXRyaWMoYXVpLkFVSV9ET0NL QVJUX1BBTkVfQk9SREVSX1NJWkUpLAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgd3guRGVmYXVsdFBvc2l0aW9uLCB3eC5TaXplKDUwLCAyMCksIHd4LlNQX0FSUk9X X0tFWVMsIDAsIDEwMCwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHd4LkRlZmF1bHRQb3NpdGlvbiwgd3guRGVmYXVsdFNpemUsIHd4LlNQX0FSUk9XX0tFWVMsIDAs IDEwMCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLkdl dERvY2tBcnQoKS5HZXRNZXRyaWMoYXVpLkFVSV9ET0NLQVJUX1BBTkVfQk9SREVSX1NJWkUpKQor KyAgICAgICAgIHMxLkFkZCgoMSwgMSksIDEsIHd4LkVYUEFORCkKKysgICAgICAgICBzMS5BZGQo d3guU3RhdGljVGV4dChzZWxmLCAtMSwgIlBhbmUgQm9yZGVyIFNpemU6IikpCisrQEAgLTQ0NSw3 ICs0NDUsNyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCBmcmFtZSk6CisrIAorKyAgICAg ICAgIHMyID0gd3guQm94U2l6ZXIod3guSE9SSVpPTlRBTCkKKysgICAgICAgICBzZWxmLl9zYXNo X3NpemUgPSB3eC5TcGluQ3RybChzZWxmLCBJRF9TYXNoU2l6ZSwgIiVkIiVmcmFtZS5HZXREb2Nr QXJ0KCkuR2V0TWV0cmljKGF1aS5BVUlfRE9DS0FSVF9TQVNIX1NJWkUpLCB3eC5EZWZhdWx0UG9z aXRpb24sCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3guU2l6ZSg1 MCwgMjApLCB3eC5TUF9BUlJPV19LRVlTLCAwLCAxMDAsIGZyYW1lLkdldERvY2tBcnQoKS5HZXRN ZXRyaWMoYXVpLkFVSV9ET0NLQVJUX1NBU0hfU0laRSkpCisrKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgd3guRGVmYXVsdFNpemUsIHd4LlNQX0FSUk9XX0tFWVMsIDAsIDEw MCwgZnJhbWUuR2V0RG9ja0FydCgpLkdldE1ldHJpYyhhdWkuQVVJX0RPQ0tBUlRfU0FTSF9TSVpF KSkKKysgICAgICAgICBzMi5BZGQoKDEsIDEpLCAxLCB3eC5FWFBBTkQpCisrICAgICAgICAgczIu QWRkKHd4LlN0YXRpY1RleHQoc2VsZiwgLTEsICJTYXNoIFNpemU6IikpCisrICAgICAgICAgczIu QWRkKHNlbGYuX3Nhc2hfc2l6ZSkKKytAQCAtNDU0LDcgKzQ1NCw3IEBAIGRlZiBfX2luaXRfXyhz ZWxmLCBwYXJlbnQsIGZyYW1lKToKKysgCisrICAgICAgICAgczMgPSB3eC5Cb3hTaXplcih3eC5I T1JJWk9OVEFMKQorKyAgICAgICAgIHNlbGYuX2NhcHRpb25fc2l6ZSA9IHd4LlNwaW5DdHJsKHNl bGYsIElEX0NhcHRpb25TaXplLCAiJWQiJWZyYW1lLkdldERvY2tBcnQoKS5HZXRNZXRyaWMoYXVp LkFVSV9ET0NLQVJUX0NBUFRJT05fU0laRSksCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgd3guRGVmYXVsdFBvc2l0aW9uLCB3eC5TaXplKDUwLCAyMCksIHd4LlNQ X0FSUk9XX0tFWVMsIDAsIDEwMCwgZnJhbWUuR2V0RG9ja0FydCgpLkdldE1ldHJpYyhhdWkuQVVJ X0RPQ0tBUlRfQ0FQVElPTl9TSVpFKSkKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB3eC5EZWZhdWx0UG9zaXRpb24sIHd4LkRlZmF1bHRTaXplLCB3eC5TUF9BUlJP V19LRVlTLCAwLCAxMDAsIGZyYW1lLkdldERvY2tBcnQoKS5HZXRNZXRyaWMoYXVpLkFVSV9ET0NL QVJUX0NBUFRJT05fU0laRSkpCisrICAgICAgICAgczMuQWRkKCgxLCAxKSwgMSwgd3guRVhQQU5E KQorKyAgICAgICAgIHMzLkFkZCh3eC5TdGF0aWNUZXh0KHNlbGYsIC0xLCAiQ2FwdGlvbiBTaXpl OiIpKQorKyAgICAgICAgIHMzLkFkZChzZWxmLl9jYXB0aW9uX3NpemUpCisrQEAgLTgwNyw5ICs4 MDcsOSBAQCBkZWYgTGlnaHRDb2xvdXIoc2VsZiwgY29sb3VyLCBwZXJjZW50KToKKysgCisrICAg ICAgICAgIyBXZSB0YWtlIHRoZSBwZXJjZW50IHdheSBvZiB0aGUgY29sb3VyIGZyb20gY29sb3Vy IC0+IHdoaXRlCisrICAgICAgICAgaSA9IHBlcmNlbnQKKystICAgICAgICByID0gY29sb3VyLlJl ZCgpICsgKChpKnJkKjEwMCkvaGlnaCkvMTAwCisrLSAgICAgICAgZyA9IGNvbG91ci5HcmVlbigp ICsgKChpKmdkKjEwMCkvaGlnaCkvMTAwCisrLSAgICAgICAgYiA9IGNvbG91ci5CbHVlKCkgKyAo KGkqYmQqMTAwKS9oaWdoKS8xMDAKKysrICAgICAgICByID0gY29sb3VyLlJlZCgpICsgKChpKnJk KjEwMCkvL2hpZ2gpLy8xMDAKKysrICAgICAgICBnID0gY29sb3VyLkdyZWVuKCkgKyAoKGkqZ2Qq MTAwKS8vaGlnaCkvLzEwMAorKysgICAgICAgIGIgPSBjb2xvdXIuQmx1ZSgpICsgKChpKmJkKjEw MCkvL2hpZ2gpLy8xMDAKKysgCisrICAgICAgICAgcmV0dXJuIHd4LkNvbG91cihyLCBnLCBiKQor KyAKKytAQCAtODI2LDEwICs4MjYsMTAgQEAgZGVmIERyYXdQcm9ncmVzcyhzZWxmLCBkYywgeHNp emUsIHlzaXplLCBpbmNyZW1lbnQpOgorKyAgICAgICAgIHgsIHksIHdpZHRoLCBoZWlnaHQgPSBj bGllbnRSZWN0CisrICAgICAgICAgeCwgd2lkdGggPSBzZWxmLl9wb3MsIGludGVydmFsCisrIAor Ky0gICAgICAgIGdyYWRpZW50UmVjdC5TZXRIZWlnaHQoZ3JhZGllbnRSZWN0LkdldEhlaWdodCgp LzIpCisrKyAgICAgICAgZ3JhZGllbnRSZWN0LlNldEhlaWdodChncmFkaWVudFJlY3QuR2V0SGVp Z2h0KCkvLzIpCisrICAgICAgICAgdG9wU3RhcnQsIHRvcEVuZCA9IHNlbGYuX3RvcFN0YXJ0Q29s b3VyLCBzZWxmLl90b3BFbmRDb2xvdXIKKysgCisrLSAgICAgICAgcmMxID0gd3guUmVjdCh4LCB5 LCB3aWR0aCwgaGVpZ2h0LzIpCisrKyAgICAgICAgcmMxID0gd3guUmVjdChpbnQoeCksIHksIGlu dCh3aWR0aCksIGhlaWdodC8vMikKKysgICAgICAgICBwYXRoMSA9IHNlbGYuR2V0UGF0aChnYywg cmMxLCA4KQorKyAgICAgICAgIGJyMSA9IGdjLkNyZWF0ZUxpbmVhckdyYWRpZW50QnJ1c2goeCwg eSwgeCwgeStoZWlnaHQvMiwgdG9wU3RhcnQsIHRvcEVuZCkKKysgICAgICAgICBnYy5TZXRCcnVz aChicjEpCisrQEAgLTg0NSwxNCArODQ1LDE0IEBAIGRlZiBEcmF3UHJvZ3Jlc3Moc2VsZiwgZGMs IHhzaXplLCB5c2l6ZSwgaW5jcmVtZW50KToKKysgCisrICAgICAgICAgYm90dG9tU3RhcnQsIGJv dHRvbUVuZCA9IHNlbGYuX2JvdHRvbVN0YXJ0Q29sb3VyLCBzZWxmLl9ib3R0b21FbmRDb2xvdXIK KysgCisrLSAgICAgICAgcmMzID0gd3guUmVjdCh4LCB5K2hlaWdodC8yLCB3aWR0aCwgaGVpZ2h0 LzIpCisrKyAgICAgICAgcmMzID0gd3guUmVjdChpbnQoeCksIHkraGVpZ2h0Ly8yLCBpbnQod2lk dGgpLCBoZWlnaHQvLzIpCisrICAgICAgICAgcGF0aDMgPSBzZWxmLkdldFBhdGgoZ2MsIHJjMywg OCkKKysgICAgICAgICBicjMgPSBnYy5DcmVhdGVMaW5lYXJHcmFkaWVudEJydXNoKHgsIHkraGVp Z2h0LzIsIHgsIHkraGVpZ2h0LCBib3R0b21TdGFydCwgYm90dG9tRW5kKQorKyAgICAgICAgIGdj LlNldEJydXNoKGJyMykKKysgICAgICAgICBnYy5GaWxsUGF0aChwYXRoMykgI2RyYXcgbWFpbgor KyAKKysgICAgICAgICBwYXRoNCA9IGdjLkNyZWF0ZVBhdGgoKQorKy0gICAgICAgIHBhdGg0LkFk ZFJlY3RhbmdsZSh4LCB5K2hlaWdodC8yLCB3aWR0aCwgOCkKKysrICAgICAgICBwYXRoNC5BZGRS ZWN0YW5nbGUoeCwgeStoZWlnaHQvLzIsIHdpZHRoLCA4KQorKyAgICAgICAgIHBhdGg0LkNsb3Nl U3VicGF0aCgpCisrICAgICAgICAgZ2MuU2V0QnJ1c2goYnIzKQorKyAgICAgICAgIGdjLkZpbGxQ YXRoKHBhdGg0KQorK0BAIC0yNjEzLDcgKzI2MTMsNyBAQCBkZWYgQ3JlYXRlTm90ZWJvb2soc2Vs Zik6CisrICAgICAgICAgZmxleC5BZGQod3guVGV4dEN0cmwocGFuZWwsIC0xLCAiIiwgd3guRGVm YXVsdFBvc2l0aW9uLCB3eC5TaXplKDEwMCwgLTEpKSwKKysgICAgICAgICAgICAgICAgICAxLCB3 eC5BTEx8d3guQUxJR05fQ0VOVFJFLCA1KQorKyAgICAgICAgIGZsZXguQWRkKHd4LlN0YXRpY1Rl eHQocGFuZWwsIC0xLCAid3hTcGluQ3RybDoiKSwgMCwgd3guQUxMfHd4LkFMSUdOX0NFTlRSRSwg NSkKKystICAgICAgICBmbGV4LkFkZCh3eC5TcGluQ3RybChwYW5lbCwgLTEsICI1Iiwgd3guRGVm YXVsdFBvc2l0aW9uLCB3eC5TaXplKDEwMCwgLTEpLAorKysgICAgICAgIGZsZXguQWRkKHd4LlNw aW5DdHJsKHBhbmVsLCAtMSwgIjUiLCB3eC5EZWZhdWx0UG9zaXRpb24sIHd4LkRlZmF1bHRTaXpl LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHd4LlNQX0FSUk9XX0tFWVMsIDUsIDUw LCA1KSwgMCwgd3guQUxMfHd4LkFMSUdOX0NFTlRSRSwgNSkKKysgICAgICAgICBmbGV4LkFkZCgo NSwgNSkpCisrICAgICAgICAgZmxleC5BZGQoKDUsIDUpKQorK2RpZmYgLS1naXQgYS9kZW1vL2Fn dy9NYWNMYXJnZURlbW8ucHkgYi9kZW1vL2Fndy9NYWNMYXJnZURlbW8ucHkKKytpbmRleCA0ZDk2 N2E1NDYuLmE1YjhhMGUyNSAxMDA2NDQKKystLS0gYS9kZW1vL2Fndy9NYWNMYXJnZURlbW8ucHkK KysrKysgYi9kZW1vL2Fndy9NYWNMYXJnZURlbW8ucHkKKytAQCAtMjIzLDEyICsyMjMsMTIgQEAg ZGVmIERyYXdQcm9ncmVzc0JhcihzZWxmLCBkYywgeCwgeSwgdywgaCwgcGVyY2VudCk6CisrICAg ICAgICAgICAgIG1kYy5TZWxlY3RPYmplY3Qod3guTnVsbEJpdG1hcCkKKysgCisrICAgICAgICAg IyBDZW50ZXIgdGhlIHByb2dyZXNzIGJhciB2ZXJ0aWNhbGx5IGluIHRoZSBib3ggc3VwcGxpZWQK KystICAgICAgICB5ID0geSArIChoIC0gUElQRV9IRUlHSFQpLzIKKysrICAgICAgICB5ID0geSAr IChoIC0gUElQRV9IRUlHSFQpLy8yCisrIAorKyAgICAgICAgIGlmIHBlcmNlbnQgPT0gMDoKKysg ICAgICAgICAgICAgbWlkZGxlID0gMAorKyAgICAgICAgIGVsc2U6CisrLSAgICAgICAgICAgIG1p ZGRsZSA9ICh3ICogcGVyY2VudCkvMTAwCisrKyAgICAgICAgICAgIG1pZGRsZSA9IGludCgodyAq IHBlcmNlbnQpLzEwMCkKKysgCisrICAgICAgICAgaWYgdyA8IDE6CisrICAgICAgICAgICAgIHJl dHVybgorK2RpZmYgLS1naXQgYS9kZW1vL2Fndy9QZWFrTWV0ZXIucHkgYi9kZW1vL2Fndy9QZWFr TWV0ZXIucHkKKytpbmRleCBhN2M5YTZmNTEuLmU5ZGFiNzExNiAxMDA2NDQKKystLS0gYS9kZW1v L2Fndy9QZWFrTWV0ZXIucHkKKysrKysgYi9kZW1vL2Fndy9QZWFrTWV0ZXIucHkKKytAQCAtMTQ5 LDEwICsxNDksMTAgQEAgZGVmIE9uRmFsbG9mZihzZWxmLCBldmVudCk6CisrIAorKyAgICAgZGVm IE9uU3RhcnQoc2VsZiwgZXZlbnQpOgorKyAKKystICAgICAgICBzZWxmLnRpbWVyLlN0YXJ0KDEw MDAvMikgICAgICAgICMgMiBmcHMKKysrICAgICAgICBzZWxmLnRpbWVyLlN0YXJ0KDEwMDAvLzIp ICAgICAgICAjIDIgZnBzCisrIAorKy0gICAgICAgIHNlbGYudmVydFBlYWsuU3RhcnQoMTAwMC8x OCkgICAgICAgICMgMTggZnBzCisrLSAgICAgICAgc2VsZi5ob3J6UGVhay5TdGFydCgxMDAwLzIw KSAgICAgICAgIyAyMCBmcHMKKysrICAgICAgICBzZWxmLnZlcnRQZWFrLlN0YXJ0KDEwMDAvLzE4 KSAgICAgICAgIyAxOCBmcHMKKysrICAgICAgICBzZWxmLmhvcnpQZWFrLlN0YXJ0KDEwMDAvLzIw KSAgICAgICAgIyAyMCBmcHMKKysgCisrIAorKyAgICAgZGVmIE9uU3RvcChzZWxmLCBldmVudCk6 CisrZGlmZiAtLWdpdCBhL2RlbW8vYWd3L1BlcnNpc3RlbnRDb250cm9scy5weSBiL2RlbW8vYWd3 L1BlcnNpc3RlbnRDb250cm9scy5weQorK2luZGV4IGYxOWNjNGE5MS4uY2Y5N2RkOWYwIDEwMDY0 NAorKy0tLSBhL2RlbW8vYWd3L1BlcnNpc3RlbnRDb250cm9scy5weQorKysrKyBiL2RlbW8vYWd3 L1BlcnNpc3RlbnRDb250cm9scy5weQorK0BAIC0yMzQsNyArMjM0LDcgQEAgZGVmIEJ1aWxkUGFu ZXMoc2VsZik6CisrICAgICAgICAgc2l6ZXJfMS5BZGQobGFiZWxfMSwgMCwgd3guQUxMLCA1KQor KyAgICAgICAgIHNpemVyXzEuQWRkKGNvbWJvLCAwLCB3eC5MRUZUfHd4LlJJR0hULCA1KQorKyAg ICAgICAgIHNpemVyXzEuQWRkKCgyMCwgMjApLCAxKQorKy0gICAgICAgIGJveDIuQWRkKHNpemVy XzEsIDEsIHd4LkVYUEFORHx3eC5BTElHTl9DRU5URVIsIDApCisrKyAgICAgICAgYm94Mi5BZGQo c2l6ZXJfMSwgMSwgd3guRVhQQU5ELCAwKQorKyAgICAgICAgIGJveDIuQWRkKCgwLCAwKSwgMSwg MSkKKysgCisrICAgICAgICAgb3RoZXJQYW5lbC5TZXRTaXplcihib3gyKQorK2RpZmYgLS1naXQg YS9kZW1vL2Fndy9SaWJib25CYXIucHkgYi9kZW1vL2Fndy9SaWJib25CYXIucHkKKytpbmRleCA3 MTAzZTlkODEuLmQyOGEyYzY2YSAxMDA2NDQKKystLS0gYS9kZW1vL2Fndy9SaWJib25CYXIucHkK KysrKysgYi9kZW1vL2Fndy9SaWJib25CYXIucHkKKytAQCAtNzk5LDcgKzc5OSw3IEBAIGRlZiBB ZGRDb2xvdXJUb0dhbGxlcnkoc2VsZiwgZ2FsbGVyeSwgY29sb3VyLCBkYywgdmFsdWU9Tm9uZSk6 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjLkJsdWUoKSArIDE5 MikgJSAyNTYpCisrIAorKyAgICAgICAgICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZChmb3JlZ3Jv dW5kKQorKy0gICAgICAgICAgICBkYy5EcmF3VGV4dChjb2xvdXIsIChpV2lkdGggLSBzaXplLkdl dFdpZHRoKCkgKyAxKSAvIDIsIChpSGVpZ2h0IC0gc2l6ZS5HZXRIZWlnaHQoKSkgLyAyKQorKysg ICAgICAgICAgICBkYy5EcmF3VGV4dChjb2xvdXIsIChpV2lkdGggLSBzaXplLkdldFdpZHRoKCkg KyAxKSAvLyAyLCAoaUhlaWdodCAtIHNpemUuR2V0SGVpZ2h0KCkpIC8vIDIpCisrICAgICAgICAg ICAgIGRjLlNlbGVjdE9iamVjdEFzU291cmNlKHd4Lk51bGxCaXRtYXApCisrIAorKyAgICAgICAg ICAgICBpdGVtID0gZ2FsbGVyeS5BcHBlbmQoYml0bWFwLCB3eC5JRF9BTlkpCisrZGlmZiAtLWdp dCBhL2RlbW8vYWd3L1NwZWVkTWV0ZXIucHkgYi9kZW1vL2Fndy9TcGVlZE1ldGVyLnB5CisraW5k ZXggOWYwZmRlYmIyLi41NzVlODRhODAgMTAwNjQ0CisrLS0tIGEvZGVtby9hZ3cvU3BlZWRNZXRl ci5weQorKysrKyBiL2RlbW8vYWd3L1NwZWVkTWV0ZXIucHkKKytAQCAtNDE4LDcgKzQxOCw3IEBA IGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQsIGxvZyk6CisrICAgICAgICAgYnNpemVyMyA9IHd4 LkJveFNpemVyKHd4LlZFUlRJQ0FMKQorKyAKKysgICAgICAgICBoc2l6ZXIzID0gd3guQm94U2l6 ZXIod3guSE9SSVpPTlRBTCkKKystICAgICAgICBzYyA9IHd4LlNwaW5DdHJsKHBhbmVsMywgLTEs IHNpemU9KDYwLDIwKSkKKysrICAgICAgICBzYyA9IHd4LlNwaW5DdHJsKHBhbmVsMywgLTEpCisr ICAgICAgICAgc2MuU2V0UmFuZ2UoMSwgMjUwKQorKyAgICAgICAgIHNjLlNldFZhbHVlKDUwKQor KyAKKytkaWZmIC0tZ2l0IGEvZGVtby9hZ3cvU3VwZXJUb29sVGlwLnB5IGIvZGVtby9hZ3cvU3Vw ZXJUb29sVGlwLnB5CisraW5kZXggNWU2NWYwNmIxLi44ODcyOGU1NGUgMTAwNjQ0CisrLS0tIGEv ZGVtby9hZ3cvU3VwZXJUb29sVGlwLnB5CisrKysrIGIvZGVtby9hZ3cvU3VwZXJUb29sVGlwLnB5 CisrQEAgLTQzLDcgKzQzLDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCk6CisrICAgICAg ICAgc2VsZi50b3BDb2xvdXJQaWNrZXIgPSB3eC5Db2xvdXJQaWNrZXJDdHJsKHNlbGYubWFpblBh bmVsLCBjb2xvdXI9d3guV0hJVEUpCisrICAgICAgICAgc3lzdGVtID0gd3guU3lzdGVtU2V0dGlu Z3MuR2V0Q29sb3VyKHd4LlNZU19DT0xPVVJfQUNUSVZFQ0FQVElPTikKKysgICAgICAgICByLCBn LCBiLCBhID0gc3lzdGVtCisrLSAgICAgICAgc2VsZi5taWRkbGVDb2xvdXJQaWNrZXIgPSB3eC5D b2xvdXJQaWNrZXJDdHJsKHNlbGYubWFpblBhbmVsLCBjb2xvdXI9d3guQ29sb3VyKCgyNTUtcikv MiwgKDI1NS1nKS8yLCAoMjU1LWIpLzIpKQorKysgICAgICAgIHNlbGYubWlkZGxlQ29sb3VyUGlj a2VyID0gd3guQ29sb3VyUGlja2VyQ3RybChzZWxmLm1haW5QYW5lbCwgY29sb3VyPXd4LkNvbG91 cigoMjU1LXIpLy8yLCAoMjU1LWcpLy8yLCAoMjU1LWIpLy8yKSkKKysgICAgICAgICBzZWxmLmJv dHRvbUNvbG91clBpY2tlciA9IHd4LkNvbG91clBpY2tlckN0cmwoc2VsZi5tYWluUGFuZWwsIGNv bG91cj1zeXN0ZW0pCisrICAgICAgICAgc2VsZi5oZWFkZXJDaGVjayA9IHd4LkNoZWNrQm94KHNl bGYubWFpblBhbmVsLCAtMSwgIlNob3cgSGVhZGVyIikKKysgICAgICAgICBzZWxmLmhlYWRlclRl eHQgPSB3eC5UZXh0Q3RybChzZWxmLm1haW5QYW5lbCwgLTEsICJNZXJnZSBBbmQgQ2VudGVyIikK KytAQCAtMjMzLDcgKzIzMyw2IEBAIGRlZiBEb0xheW91dChzZWxmKToKKysgICAgICAgICBmcmFt ZVNpemVyLkFkZChzZWxmLm1haW5QYW5lbCwgMSwgd3guRVhQQU5ELCAwKQorKyAgICAgICAgIHNl bGYuU2V0U2l6ZXIoZnJhbWVTaXplcikKKysgICAgICAgICBmcmFtZVNpemVyLkxheW91dCgpCisr LSAgICAgICAgZnJhbWVTaXplci5GaXQoc2VsZikKKysgICAgICAgICBzZWxmLkxheW91dCgpCisr IAorKyAgICAgICAgIHd4LkNhbGxBZnRlcihtYWluU2l6ZXIuTGF5b3V0KQorK2RpZmYgLS1naXQg YS9kZW1vL2Fndy9VbHRpbWF0ZVJlcG9ydERlbW8ucHkgYi9kZW1vL2Fndy9VbHRpbWF0ZVJlcG9y dERlbW8ucHkKKytpbmRleCA0MGY0OWNiOGYuLmFkNDU1ODQ3YiAxMDA2NDQKKystLS0gYS9kZW1v L2Fndy9VbHRpbWF0ZVJlcG9ydERlbW8ucHkKKysrKysgYi9kZW1vL2Fndy9VbHRpbWF0ZVJlcG9y dERlbW8ucHkKKytAQCAtMjE2LDcgKzIxNiw3IEBAIGRlZiBEcmF3U3ViSXRlbShzZWxmLCBkYywg cmVjdCwgbGluZSwgaGlnaGxpZ2h0ZWQsIGVuYWJsZWQpOgorKyAgICAgICAgIG1kYy5TZXRGb250 KHd4LkZvbnQoOCwgd3guRk9OVEZBTUlMWV9TV0lTUywgd3guRk9OVFNUWUxFX05PUk1BTCwgd3gu Rk9OVFdFSUdIVF9CT0xEKSkKKysgICAgICAgICB0ZXh0ID0gIiVkIE1iIiVzZWxmLnByb2dyZXNz VmFsdWUKKysgICAgICAgICB0ZXh0V2lkdGgsIGR1bW15ID0gbWRjLkdldFRleHRFeHRlbnQodGV4 dCkKKystICAgICAgICBtZGMuRHJhd1RleHQodGV4dCwgcmVjdC53aWR0aC8yIC0gdGV4dFdpZHRo LzIsIHJlY3QuaGVpZ2h0LzIgLSBkdW1teS8yKQorKysgICAgICAgIG1kYy5EcmF3VGV4dCh0ZXh0 LCByZWN0LndpZHRoLy8yIC0gdGV4dFdpZHRoLy8yLCByZWN0LmhlaWdodC8vMiAtIGR1bW15Ly8y KQorKyAgICAgICAgIGRjLlNldENsaXBwaW5nUmVnaW9uKHJlY3QueCwgcmVjdC55LCByZWN0Lndp ZHRoLCByZWN0LmhlaWdodCkKKysgICAgICAgICBkYy5CbGl0KHJlY3QueCszLCByZWN0LnksIHJl Y3Qud2lkdGgtNiwgcmVjdC5oZWlnaHQsIG1kYywgMCwgMCkKKysgICAgICAgICBkYy5EZXN0cm95 Q2xpcHBpbmdSZWdpb24oKQorK0BAIC0yNzksMTIgKzI3OSwxMiBAQCBkZWYgRHJhd1Byb2dyZXNz QmFyKHNlbGYsIGRjLCB4LCB5LCB3LCBoLCBwZXJjZW50KToKKysgICAgICAgICAgICAgbWRjLlNl bGVjdE9iamVjdCh3eC5OdWxsQml0bWFwKQorKyAKKysgICAgICAgICAjIENlbnRlciB0aGUgcHJv Z3Jlc3MgYmFyIHZlcnRpY2FsbHkgaW4gdGhlIGJveCBzdXBwbGllZAorKy0gICAgICAgIHkgPSB5 ICsgKGggLSBQSVBFX0hFSUdIVCkvMgorKysgICAgICAgIHkgPSB5ICsgKGggLSBQSVBFX0hFSUdI VCkvLzIKKysgCisrICAgICAgICAgaWYgcGVyY2VudCA9PSAwOgorKyAgICAgICAgICAgICBtaWRk bGUgPSAwCisrICAgICAgICAgZWxzZToKKystICAgICAgICAgICAgbWlkZGxlID0gKHcgKiBwZXJj ZW50KS8xMDAKKysrICAgICAgICAgICAgbWlkZGxlID0gKHcgKiBwZXJjZW50KS8vMTAwCisrIAor KyAgICAgICAgIGlmIG1pZGRsZSA9PSAwOiAjIG5vdCBzdGFydGVkCisrICAgICAgICAgICAgIGJp dG1hcCA9IHNlbGYuUkVNQUlOSU5HX0JJVE1BUC5HZXRTdWJCaXRtYXAoKDEsIDAsIHcsIFBJUEVf SEVJR0hUKSkKKytAQCAtMzM1LDcgKzMzNSw3IEBAIGRlZiBEcmF3U3ViSXRlbShzZWxmLCBkYywg cmVjdCwgbGluZSwgaGlnaGxpZ2h0ZWQsIGVuYWJsZWQpOgorKyAgICAgICAgIGNvbG91cnMgPSBb d3guUkVELCB3eC5XSElURSwgd3guR1JFRU4sIHd4LkNvbG91cigiU0tZIEJMVUUiKV0KKysgICAg ICAgICB3LCBoID0gZGMuR2V0VGV4dEV4dGVudCgiSGciKQorKyAgICAgICAgIHggPSByZWN0Lngg KyAxCisrLSAgICAgICAgeSA9IHJlY3QueSArIHJlY3QuaGVpZ2h0LzIgLSBoLzIKKysrICAgICAg ICB5ID0gcmVjdC55ICsgcmVjdC5oZWlnaHQvLzIgLSBoLy8yCisrIAorKyAgICAgICAgIGZvciBj aCBpbiBzZWxmLnRleHQ6CisrICAgICAgICAgICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKHJhbmRv bS5jaG9pY2UoY29sb3VycykpCisrZGlmZiAtLWdpdCBhL2RlbW8vYWd3L1dpbmRvd3M3RXhwbG9y ZXJfQ29udGVudHMucHkgYi9kZW1vL2Fndy9XaW5kb3dzN0V4cGxvcmVyX0NvbnRlbnRzLnB5Cisr aW5kZXggZjc1NGQ3ODc5Li5iMjNkZjBlMWEgMTAwNjQ0CisrLS0tIGEvZGVtby9hZ3cvV2luZG93 czdFeHBsb3Jlcl9Db250ZW50cy5weQorKysrKyBiL2RlbW8vYWd3L1dpbmRvd3M3RXhwbG9yZXJf Q29udGVudHMucHkKKytAQCAtMTI3LDEzICsxMjcsMTMgQEAgZGVmIERyYXdTdWJJdGVtKHNlbGYs IGRjLCByZWN0LCBsaW5lLCBoaWdobGlnaHRlZCwgZW5hYmxlZCk6CisrICAgICAgICAgIiIiRHJh dyBhIGN1c3RvbSBwcm9ncmVzcyBiYXIgdXNpbmcgZG91YmxlIGJ1ZmZlcmluZyB0byBwcmV2ZW50 IGZsaWNrZXIiIiIKKysgCisrICAgICAgICAgYm1wV2lkdGgsIGJtcEhlaWdodCA9IHNlbGYuaWNv bi5HZXRXaWR0aCgpLCBzZWxmLmljb24uR2V0SGVpZ2h0KCkKKystICAgICAgICBkYy5EcmF3SWNv bihzZWxmLmljb24sIHJlY3QueCs1LCByZWN0LnkrKHJlY3QuaGVpZ2h0LWJtcEhlaWdodCkvMikK KysrICAgICAgICBkYy5EcmF3SWNvbihzZWxmLmljb24sIHJlY3QueCs1LCByZWN0LnkrKHJlY3Qu aGVpZ2h0LWJtcEhlaWdodCkvLzIpCisrIAorKyAgICAgICAgIGRjLlNldEZvbnQoc2VsZi5ub3Jt YWxGb250KQorKyAKKysgICAgICAgICB0ZXh0V2lkdGgsIHRleHRIZWlnaHQgPSBkYy5HZXRUZXh0 RXh0ZW50KHNlbGYudGV4dCkKKysgICAgICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZCh3eC5TeXN0 ZW1TZXR0aW5ncy5HZXRDb2xvdXIod3guU1lTX0NPTE9VUl9CVE5URVhUKSkKKystICAgICAgICBk Yy5EcmF3VGV4dChzZWxmLnRleHQsIHJlY3QueCtibXBXaWR0aCsxMCwgcmVjdC55KyhyZWN0Lmhl aWdodCAtIHRleHRIZWlnaHQpLzQpCisrKyAgICAgICAgZGMuRHJhd1RleHQoc2VsZi50ZXh0LCBy ZWN0LngrYm1wV2lkdGgrMTAsIHJlY3QueSsocmVjdC5oZWlnaHQgLSB0ZXh0SGVpZ2h0KS8vNCkK KysgCisrICAgICAgICAgaWYgbm90IHNlbGYuZGVzY3JpcHRpb246CisrICAgICAgICAgICAgIHJl dHVybgorK0BAIC0xNDQsMTAgKzE0NCwxMCBAQCBkZWYgRHJhd1N1Ykl0ZW0oc2VsZiwgZGMsIHJl Y3QsIGxpbmUsIGhpZ2hsaWdodGVkLCBlbmFibGVkKToKKysgICAgICAgICB0ZXh0V2lkdGgsIHRl eHRIZWlnaHQgPSBkYy5HZXRUZXh0RXh0ZW50KCJUeXBlOiAiICsgc2VsZi5kZXNjcmlwdGlvbikK KysgCisrICAgICAgICAgZGMuU2V0VGV4dEZvcmVncm91bmQoc2VsZi5ncmV5Q29sb3VyKQorKy0g ICAgICAgIGRjLkRyYXdUZXh0KCJUeXBlOiAiLCByZWN0LngrYm1wV2lkdGgrMTAsIHJlY3QueSsz KihyZWN0LmhlaWdodCAtIHRleHRIZWlnaHQpLzQpCisrKyAgICAgICAgZGMuRHJhd1RleHQoIlR5 cGU6ICIsIHJlY3QueCtibXBXaWR0aCsxMCwgcmVjdC55KzMqKHJlY3QuaGVpZ2h0IC0gdGV4dEhl aWdodCkvLzQpCisrIAorKyAgICAgICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKHd4LkJMQUNLKQor Ky0gICAgICAgIGRjLkRyYXdUZXh0KHNlbGYuZGVzY3JpcHRpb24sIHJlY3QueCtibXBXaWR0aCtk dW1teTErMTAsIHJlY3QueSszKihyZWN0LmhlaWdodCAtIHRleHRIZWlnaHQpLzQpCisrKyAgICAg ICAgZGMuRHJhd1RleHQoc2VsZi5kZXNjcmlwdGlvbiwgcmVjdC54K2JtcFdpZHRoK2R1bW15MSsx MCwgcmVjdC55KzMqKHJlY3QuaGVpZ2h0IC0gdGV4dEhlaWdodCkvLzQpCisrIAorKyAKKysgICAg IGRlZiBHZXRMaW5lSGVpZ2h0KHNlbGYpOgorK0BAIC0yMDcsMTAgKzIwNywxMCBAQCBkZWYgRHJh d1N1Ykl0ZW0oc2VsZiwgZGMsIHJlY3QsIGxpbmUsIGhpZ2hsaWdodGVkLCBlbmFibGVkKToKKysg ICAgICAgICB0ZXh0V2lkdGgsIHRleHRIZWlnaHQgPSBkYy5HZXRUZXh0RXh0ZW50KCJEYXRlIG1v ZGlmaWVkOiAiICsgZGF0ZSkKKysgCisrICAgICAgICAgZGMuU2V0VGV4dEZvcmVncm91bmQoc2Vs Zi5ncmV5Q29sb3VyKQorKy0gICAgICAgIGRjLkRyYXdUZXh0KCJEYXRlIG1vZGlmaWVkOiAiLCBy ZWN0LngrNSwgcmVjdC55KyhyZWN0LmhlaWdodCAtIHRleHRIZWlnaHQpLzQpCisrKyAgICAgICAg ZGMuRHJhd1RleHQoIkRhdGUgbW9kaWZpZWQ6ICIsIHJlY3QueCs1LCByZWN0LnkrKHJlY3QuaGVp Z2h0IC0gdGV4dEhlaWdodCkvLzQpCisrIAorKyAgICAgICAgIGRjLlNldFRleHRGb3JlZ3JvdW5k KHd4LkJMQUNLKQorKy0gICAgICAgIGRjLkRyYXdUZXh0KGRhdGUsIHJlY3QueCtkdW1teTErNSwg cmVjdC55KyhyZWN0LmhlaWdodCAtIHRleHRIZWlnaHQpLzQpCisrKyAgICAgICAgZGMuRHJhd1Rl eHQoZGF0ZSwgcmVjdC54K2R1bW15MSs1LCByZWN0LnkrKHJlY3QuaGVpZ2h0IC0gdGV4dEhlaWdo dCkvLzQpCisrIAorKyAgICAgICAgIGlmIG5vdCBzZWxmLnNpemU6CisrICAgICAgICAgICAgIHJl dHVybgorK0BAIC0yMTgsMTAgKzIxOCwxMCBAQCBkZWYgRHJhd1N1Ykl0ZW0oc2VsZiwgZGMsIHJl Y3QsIGxpbmUsIGhpZ2hsaWdodGVkLCBlbmFibGVkKToKKysgICAgICAgICBkdW1teTEsIGR1bW15 Mj0gZGMuR2V0VGV4dEV4dGVudCgiU2l6ZTogIikKKysgCisrICAgICAgICAgZGMuU2V0VGV4dEZv cmVncm91bmQoc2VsZi5ncmV5Q29sb3VyKQorKy0gICAgICAgIGRjLkRyYXdUZXh0KCJTaXplOiAi LCByZWN0LngrNSwgcmVjdC55KzMqKHJlY3QuaGVpZ2h0IC0gdGV4dEhlaWdodCkvNCkKKysrICAg ICAgICBkYy5EcmF3VGV4dCgiU2l6ZTogIiwgcmVjdC54KzUsIHJlY3QueSszKihyZWN0LmhlaWdo dCAtIHRleHRIZWlnaHQpLy80KQorKyAKKysgICAgICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZCh3 eC5CTEFDSykKKystICAgICAgICBkYy5EcmF3VGV4dChzZWxmLnNpemUsIHJlY3QueCtkdW1teTEr NSwgcmVjdC55KzMqKHJlY3QuaGVpZ2h0IC0gdGV4dEhlaWdodCkvNCkKKysrICAgICAgICBkYy5E cmF3VGV4dChzZWxmLnNpemUsIHJlY3QueCtkdW1teTErNSwgcmVjdC55KzMqKHJlY3QuaGVpZ2h0 IC0gdGV4dEhlaWdodCkvLzQpCisrIAorKyAKKysgICAgIGRlZiBHZXRMaW5lSGVpZ2h0KHNlbGYp OgorK2RpZmYgLS1naXQgYS9kZW1vL2Fndy9ab29tQmFyLnB5IGIvZGVtby9hZ3cvWm9vbUJhci5w eQorK2luZGV4IDM3NmNlMzQ5Yi4uMTRiMDI3OGU3IDEwMDY0NAorKy0tLSBhL2RlbW8vYWd3L1pv b21CYXIucHkKKysrKysgYi9kZW1vL2Fndy9ab29tQmFyLnB5CisrQEAgLTU1LDcgKzU1LDcgQEAg ZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgbG9nKToKKysgICAgICAgICByZWZsZWN0aW9ucyA9 IGdsb2IuZ2xvYihiaXRtYXBEaXIgKyAiLyo5NkZsaXA0MC5wbmciKQorKyAKKysgICAgICAgICBz ZXBhcmF0b3JJbWFnZSA9IGJpdG1hcERpciArICIvc2VwYXJhdG9yLmdpZiIKKystICAgICAgICBz ZXBhcmF0b3JSZWZsZWN0aW9uID0gYml0bWFwRGlyICsgIi9zZXBhcmF0b3JGbGlwLnBuZyIKKysr ICAgICAgICBzZXBhcmF0b3JSZWZsZWN0aW9uID0gYml0bWFwRGlyICsgIi9zZXBhcmF0b3JmbGlw LnBuZyIKKysgICAgICAgICBjb3VudCA9IDAKKysgCisrICAgICAgICAgZm9yIHN0ZCwgcmVmIGlu IHppcChzdGFuZGFyZCwgcmVmbGVjdGlvbnMpOgorK2RpZmYgLS1naXQgYS93eC9saWIvYWd3L2Fk dmFuY2Vkc3BsYXNoLnB5IGIvd3gvbGliL2Fndy9hZHZhbmNlZHNwbGFzaC5weQorK2luZGV4IDFm OGMzMmRmNS4uZDM1MWVhMDZlIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvYWR2YW5jZWRzcGxh c2gucHkKKysrKysgYi93eC9saWIvYWd3L2FkdmFuY2Vkc3BsYXNoLnB5CisrQEAgLTQzOCw3ICs0 MzgsNyBAQCBkZWYgU2V0VGV4dEZvbnQoc2VsZiwgZm9udD1Ob25lKToKKysgCisrICAgICAgICAg aWYgZm9udCBpcyBOb25lOgorKyAgICAgICAgICAgICBzZWxmLl90ZXh0Zm9udCA9IHd4LkZvbnQo MSwgd3guRk9OVEZBTUlMWV9TV0lTUywgd3guRk9OVFNUWUxFX05PUk1BTCwgd3guRk9OVFdFSUdI VF9CT0xELCBGYWxzZSkKKystICAgICAgICAgICAgc2VsZi5fdGV4dHNpemUgPSAxMC4wCisrKyAg ICAgICAgICAgIHNlbGYuX3RleHRzaXplID0gMTAKKysgICAgICAgICAgICAgc2VsZi5fdGV4dGZv bnQuU2V0UG9pbnRTaXplKHNlbGYuX3RleHRzaXplKQorKyAgICAgICAgIGVsc2U6CisrICAgICAg ICAgICAgIHNlbGYuX3RleHRmb250ID0gZm9udAorK2RpZmYgLS1naXQgYS93eC9saWIvYWd3L2F1 aS9hdWlib29rLnB5IGIvd3gvbGliL2Fndy9hdWkvYXVpYm9vay5weQorK2luZGV4IGJhN2NmNDcy MS4uZjVhZDJhNTY4IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvYXVpL2F1aWJvb2sucHkKKysr KysgYi93eC9saWIvYWd3L2F1aS9hdWlib29rLnB5CisrQEAgLTM0NTIsOCArMzQ1Miw4IEBAIGRl ZiBDYWxjdWxhdGVOZXdTcGxpdFNpemUoc2VsZik6CisrICAgICAgICAgIyBzaG91bGQgaGFwcGVu IGFyb3VuZCB0aGUgbWlkZGxlCisrICAgICAgICAgaWYgdGFiX2N0cmxfY291bnQgPCAyOgorKyAg ICAgICAgICAgICBuZXdfc3BsaXRfc2l6ZSA9IHNlbGYuR2V0Q2xpZW50U2l6ZSgpCisrLSAgICAg ICAgICAgIG5ld19zcGxpdF9zaXplLnggLz0gMgorKy0gICAgICAgICAgICBuZXdfc3BsaXRfc2l6 ZS55IC89IDIKKysrICAgICAgICAgICAgbmV3X3NwbGl0X3NpemUueCAvLz0gMgorKysgICAgICAg ICAgICBuZXdfc3BsaXRfc2l6ZS55IC8vPSAyCisrIAorKyAgICAgICAgIGVsc2U6CisrIAorK2Rp ZmYgLS1naXQgYS93eC9saWIvYWd3L2JhbGxvb250aXAucHkgYi93eC9saWIvYWd3L2JhbGxvb250 aXAucHkKKytpbmRleCBiNDE1NWQ3NGEuLjU3YmFjYTcyOSAxMDA2NDQKKystLS0gYS93eC9saWIv YWd3L2JhbGxvb250aXAucHkKKysrKysgYi93eC9saWIvYWd3L2JhbGxvb250aXAucHkKKytAQCAt NjE1LDcgKzYxNSw3IEBAIGRlZiBTZXRTdGFydERlbGF5KHNlbGYsIGRlbGF5PTEpOgorKyAgICAg ICAgIGlmIGRlbGF5IDwgMToKKysgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJcbkVSUk9S OiBEZWxheSBUaW1lIEZvciBCYWxsb29uVGlwIENyZWF0aW9uIFNob3VsZCBCZSBHcmVhdGVyIFRo YW4gMSBtcyIpCisrIAorKy0gICAgICAgIHNlbGYuX3N0YXJ0ZGVsYXl0aW1lID0gZmxvYXQoZGVs YXkpCisrKyAgICAgICAgc2VsZi5fc3RhcnRkZWxheXRpbWUgPSBpbnQoZGVsYXkpCisrIAorKyAK KysgICAgIGRlZiBHZXRTdGFydERlbGF5KHNlbGYpOgorK0BAIC02NDAsNyArNjQwLDcgQEAgZGVm IFNldEVuZERlbGF5KHNlbGYsIGRlbGF5PTFlNik6CisrICAgICAgICAgaWYgZGVsYXkgPCAxOgor KyAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIlxuRVJST1I6IERlbGF5IFRpbWUgRm9yIEJh bGxvb25UaXAgRGVzdHJ1Y3Rpb24gU2hvdWxkIEJlIEdyZWF0ZXIgVGhhbiAxIG1zIikKKysgCisr LSAgICAgICAgc2VsZi5fZW5kZGVsYXl0aW1lID0gZmxvYXQoZGVsYXkpCisrKyAgICAgICAgc2Vs Zi5fZW5kZGVsYXl0aW1lID0gaW50KGRlbGF5KQorKyAKKysgCisrICAgICBkZWYgR2V0RW5kRGVs YXkoc2VsZik6CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvZmxhdG1lbnUucHkgYi93eC9saWIv YWd3L2ZsYXRtZW51LnB5CisraW5kZXggNWJhMjhlNTg0Li44NWYyOTViODYgMTAwNjQ0CisrLS0t IGEvd3gvbGliL2Fndy9mbGF0bWVudS5weQorKysrKyBiL3d4L2xpYi9hZ3cvZmxhdG1lbnUucHkK KytAQCAtNzM2LDggKzczNiw4IEBAIGRlZiBEcmF3U2VwYXJhdG9yKHNlbGYsIGRjLCB4Q29vcmQs IHlDb29yZCwgdGV4dFgsIHNlcFdpZHRoKToKKysgICAgICAgICAiIiIKKysgCisrICAgICAgICAg ZGNzYXZlciA9IERDU2F2ZXIoZGMpCisrLSAgICAgICAgc2VwUmVjdDEgPSB3eC5SZWN0KHhDb29y ZCArIHRleHRYLCB5Q29vcmQgKyAxLCBzZXBXaWR0aC8yLCAxKQorKy0gICAgICAgIHNlcFJlY3Qy ID0gd3guUmVjdCh4Q29vcmQgKyB0ZXh0WCArIHNlcFdpZHRoLzIsIHlDb29yZCArIDEsIHNlcFdp ZHRoLzItMSwgMSkKKysrICAgICAgICBzZXBSZWN0MSA9IHd4LlJlY3QoeENvb3JkICsgdGV4dFgs IHlDb29yZCArIDEsIHNlcFdpZHRoLy8yLCAxKQorKysgICAgICAgIHNlcFJlY3QyID0gd3guUmVj dCh4Q29vcmQgKyB0ZXh0WCArIHNlcFdpZHRoLy8yLCB5Q29vcmQgKyAxLCBzZXBXaWR0aC8vMi0x LCAxKQorKyAKKysgICAgICAgICBhcnRNZ3IgPSBBcnRNYW5hZ2VyLkdldCgpCisrICAgICAgICAg YmFja0NvbG91ciA9IGFydE1nci5HZXRNZW51RmFjZUNvbG91cigpCisrQEAgLTgxNywxMSArODE3 LDExIEBAIGRlZiBEcmF3TWVudUl0ZW0oc2VsZiwgaXRlbSwgZGMsIHhDb29yZCwgeUNvb3JkLCBp bWFnZU1hcmdpblgsIG1hcmtlck1hcmdpblgsIHRlCisrICAgICAgICAgICAgIGltZ1dpZHRoICA9 IGJtcC5HZXRXaWR0aCgpCisrIAorKyAgICAgICAgICAgICBpZiBpbWFnZU1hcmdpblggPT0gMDoK KystICAgICAgICAgICAgICAgIHh4ID0gcmVjdC54ICsgKGxlZnRNYXJnaW5XaWR0aCAtIGltZ1dp ZHRoKS8yCisrKyAgICAgICAgICAgICAgICB4eCA9IHJlY3QueCArIChsZWZ0TWFyZ2luV2lkdGgg LSBpbWdXaWR0aCkvLzIKKysgICAgICAgICAgICAgZWxzZToKKystICAgICAgICAgICAgICAgIHh4 ID0gcmVjdC54ICsgKChsZWZ0TWFyZ2luV2lkdGggLSByZWN0LmhlaWdodCkgLSBpbWdXaWR0aCkv MiArIHJlY3QuaGVpZ2h0CisrKyAgICAgICAgICAgICAgICB4eCA9IHJlY3QueCArICgobGVmdE1h cmdpbldpZHRoIC0gcmVjdC5oZWlnaHQpIC0gaW1nV2lkdGgpLy8yICsgcmVjdC5oZWlnaHQKKysg CisrLSAgICAgICAgICAgIHl5ID0gcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC0gaW1nSGVpZ2h0KS8y CisrKyAgICAgICAgICAgIHl5ID0gcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC0gaW1nSGVpZ2h0KS8v MgorKyAgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGJtcCwgeHgsIHl5LCBUcnVlKQorKyAKKysg ICAgICAgICBpZiBpdGVtLkdldEtpbmQoKSA9PSB3eC5JVEVNX0NIRUNLOgorK0BAIC04MzcsNyAr ODM3LDcgQEAgZGVmIERyYXdNZW51SXRlbShzZWxmLCBpdGVtLCBkYywgeENvb3JkLCB5Q29vcmQs IGltYWdlTWFyZ2luWCwgbWFya2VyTWFyZ2luWCwgdGUKKysgICAgICAgICAgICAgICAgIGlmIG5v dCBzZWxlY3RlZCBhbmQgc2VsZi5oaWdobGlnaHRDaGVja0FuZFJhZGlvOgorKyAgICAgICAgICAg ICAgICAgICAgIHNlbGYuRHJhd0J1dHRvbihkYywgcnIsIENvbnRyb2xGb2N1cykKKysgCisrLSAg ICAgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGl0ZW0uX2NoZWNrTWFya0JtcCwgcnIueCArIChy ci53aWR0aCAtIDE2KS8yLCByci55ICsgKHJyLmhlaWdodCAtIDE2KS8yLCBUcnVlKQorKysgICAg ICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChpdGVtLl9jaGVja01hcmtCbXAsIHJyLnggKyAocnIu d2lkdGggLSAxNikvLzIsIHJyLnkgKyAocnIuaGVpZ2h0IC0gMTYpLy8yLCBUcnVlKQorKyAKKysg ICAgICAgICBpZiBpdGVtLkdldEtpbmQoKSA9PSB3eC5JVEVNX1JBRElPOgorKyAKKytAQCAtODUy LDcgKzg1Miw3IEBAIGRlZiBEcmF3TWVudUl0ZW0oc2VsZiwgaXRlbSwgZGMsIHhDb29yZCwgeUNv b3JkLCBpbWFnZU1hcmdpblgsIG1hcmtlck1hcmdpblgsIHRlCisrICAgICAgICAgICAgICAgICBp ZiBub3Qgc2VsZWN0ZWQgYW5kIHNlbGYuaGlnaGxpZ2h0Q2hlY2tBbmRSYWRpbzoKKysgICAgICAg ICAgICAgICAgICAgICBzZWxmLkRyYXdCdXR0b24oZGMsIHJyLCBDb250cm9sRm9jdXMpCisrIAor Ky0gICAgICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChpdGVtLl9yYWRpb01hcmtCbXAsIHJyLngg KyAocnIud2lkdGggLSAxNikvMiwgcnIueSArIChyci5oZWlnaHQgLSAxNikvMiwgVHJ1ZSkKKysr ICAgICAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAoaXRlbS5fcmFkaW9NYXJrQm1wLCByci54ICsg KHJyLndpZHRoIC0gMTYpLy8yLCByci55ICsgKHJyLmhlaWdodCAtIDE2KS8vMiwgVHJ1ZSkKKysg CisrICAgICAgICAgIyBEcmF3IHRleHQgLSB3aXRob3V0IGFjY2VsZXJhdG9ycworKyAgICAgICAg IHRleHQgPSBpdGVtLkdldExhYmVsKCkKKytAQCAtODkwLDcgKzg5MCw3IEBAIGRlZiBEcmF3TWVu dUl0ZW0oc2VsZiwgaXRlbSwgZGMsIHhDb29yZCwgeUNvb3JkLCBpbWFnZU1hcmdpblgsIG1hcmtl ck1hcmdpblgsIHRlCisrICAgICAgICAgICAgICAgICB3MywgZHVtbXkgPSBkYy5HZXRUZXh0RXh0 ZW50KHRleHQzKQorKyAKKysgICAgICAgICAgICAgICAgIHBvc3ggPSB4Q29vcmQgKyB0ZXh0WCAr IGJvcmRlclhTaXplCisrLSAgICAgICAgICAgICAgICBwb3N5ID0gKGl0ZW1IZWlnaHQgLSBoKS8y ICsgeUNvb3JkCisrKyAgICAgICAgICAgICAgICBwb3N5ID0gKGl0ZW1IZWlnaHQgLSBoKS8vMiAr IHlDb29yZAorKyAKKysgICAgICAgICAgICAgICAgICMgRHJhdyBmaXJzdCBwYXJ0CisrICAgICAg ICAgICAgICAgICBkYy5EcmF3VGV4dCh0ZXh0MSwgcG9zeCwgcG9zeSkKKytAQCAtOTEyLDcgKzkx Miw3IEBAIGRlZiBEcmF3TWVudUl0ZW0oc2VsZiwgaXRlbSwgZGMsIHhDb29yZCwgeUNvb3JkLCBp bWFnZU1hcmdpblgsIG1hcmtlck1hcmdpblgsIHRlCisrICAgICAgICAgICAgIGVsc2U6CisrIAor KyAgICAgICAgICAgICAgICAgdywgaCA9IGRjLkdldFRleHRFeHRlbnQodGV4dCkKKystICAgICAg ICAgICAgICAgIGRjLkRyYXdUZXh0KHRleHQsIHhDb29yZCArIHRleHRYICsgYm9yZGVyWFNpemUs IChpdGVtSGVpZ2h0IC0gaCkvMiArIHlDb29yZCkKKysrICAgICAgICAgICAgICAgIGRjLkRyYXdU ZXh0KHRleHQsIHhDb29yZCArIHRleHRYICsgYm9yZGVyWFNpemUsIChpdGVtSGVpZ2h0IC0gaCkv LzIgKyB5Q29vcmQpCisrIAorKyAKKysgICAgICAgICAjIE5vdyBkcmF3IGFjY2VsZXJhdG9yCisr QEAgLTkyMCw3ICs5MjAsNyBAQCBkZWYgRHJhd01lbnVJdGVtKHNlbGYsIGl0ZW0sIGRjLCB4Q29v cmQsIHlDb29yZCwgaW1hZ2VNYXJnaW5YLCBtYXJrZXJNYXJnaW5YLCB0ZQorKyAgICAgICAgIGlm IGl0ZW0uR2V0QWNjZWxTdHJpbmcoKToKKysgCisrICAgICAgICAgICAgIGFjY2VsV2lkdGgsIGFj Y2VsSGVpZ2h0ID0gZGMuR2V0VGV4dEV4dGVudChpdGVtLkdldEFjY2VsU3RyaW5nKCkpCisrLSAg ICAgICAgICAgIGRjLkRyYXdUZXh0KGl0ZW0uR2V0QWNjZWxTdHJpbmcoKSwgeENvb3JkICsgcmln aHRNYXJnaW5YIC0gYWNjZWxXaWR0aCwgKGl0ZW1IZWlnaHQgLSBhY2NlbEhlaWdodCkvMiArIHlD b29yZCkKKysrICAgICAgICAgICAgZGMuRHJhd1RleHQoaXRlbS5HZXRBY2NlbFN0cmluZygpLCB4 Q29vcmQgKyByaWdodE1hcmdpblggLSBhY2NlbFdpZHRoLCAoaXRlbUhlaWdodCAtIGFjY2VsSGVp Z2h0KS8vMiArIHlDb29yZCkKKysgCisrICAgICAgICAgIyBDaGVjayBpZiB0aGlzIGl0ZW0gaGFz IHN1Yi1tZW51IC0gaWYgaXQgZG9lcywgZHJhdworKyAgICAgICAgICMgcmlnaHQgYXJyb3cgb24g dGhlIHJpZ2h0IG1hcmdpbgorK0BAIC05MzIsNyArOTMyLDcgQEAgZGVmIERyYXdNZW51SXRlbShz ZWxmLCBpdGVtLCBkYywgeENvb3JkLCB5Q29vcmQsIGltYWdlTWFyZ2luWCwgbWFya2VyTWFyZ2lu WCwgdGUKKysgCisrICAgICAgICAgICAgIHh4ID0geENvb3JkICsgcmlnaHRNYXJnaW5YICsgYm9y ZGVyWFNpemUKKysgICAgICAgICAgICAgcnIgPSB3eC5SZWN0KHh4LCByZWN0LnkgKyAxLCByZWN0 LmhlaWdodC0yLCByZWN0LmhlaWdodC0yKQorKy0gICAgICAgICAgICBkYy5EcmF3Qml0bWFwKHJp Z2h0QXJyb3dCbXAsIHJyLnggKyA0LCByci55ICsocnIuaGVpZ2h0LTE2KS8yLCBUcnVlKQorKysg ICAgICAgICAgICBkYy5EcmF3Qml0bWFwKHJpZ2h0QXJyb3dCbXAsIHJyLnggKyA0LCByci55ICso cnIuaGVpZ2h0LTE2KS8vMiwgVHJ1ZSkKKysgCisrIAorKyAgICAgZGVmIERyYXdNZW51QmFyQnV0 dG9uKHNlbGYsIGRjLCByZWN0LCBzdGF0ZSk6CisrQEAgLTExNDIsNyArMTE0Miw3IEBAIGRlZiBE cmF3TWVudUJhcihzZWxmLCBtZW51YmFyLCBkYyk6CisrICAgICAgICAgICAgICMgR2V0IHRoZSBt ZW51IGl0ZW0gcmVjdAorKyAgICAgICAgICAgICB0ZXh0V2lkdGgsIHRleHRIZWlnaHQgPSBkYy5H ZXRUZXh0RXh0ZW50KGZpeGVkVGV4dCkKKysgICAgICAgICAgICAgI3JlY3QgPSB3eC5SZWN0KHBv c3grbWVudWJhci5fc3BhY2VyLzIsIHBvc3ksIHRleHRXaWR0aCwgdGV4dEhlaWdodCkKKystICAg ICAgICAgICAgcmVjdCA9IHd4LlJlY3QocG9zeCtwYWRkaW5nLzIsIHBvc3ksIHRleHRXaWR0aCwg dGV4dEhlaWdodCkKKysrICAgICAgICAgICAgcmVjdCA9IHd4LlJlY3QocG9zeCtwYWRkaW5nLy8y LCBwb3N5LCB0ZXh0V2lkdGgsIHRleHRIZWlnaHQpCisrIAorKyAgICAgICAgICAgICAjIENhbiB3 ZSBkcmF3IG1vcmU/PworKyAgICAgICAgICAgICAjIHRoZSArRFJPUF9ET1dOX0FSUk9XX1dJRFRI ICBpcyB0aGUgd2lkdGggb2YgdGhlIGRyb3AgZG93biBhcnJvdworK0BAIC0xMTcyLDcgKzExNzIs NyBAQCBkZWYgRHJhd01lbnVCYXIoc2VsZiwgbWVudWJhciwgZGMpOgorKyAgICAgICAgICAgICAg ICAgZGMuU2V0VGV4dEZvcmVncm91bmQodGV4dENvbG91cikKKysgCisrICAgICAgICAgICAgIHd3 LCBoaCA9IGRjLkdldFRleHRFeHRlbnQobGFiZWxPbmx5KQorKy0gICAgICAgICAgICB0ZXh0T2Zm c2V0ID0gKHJlY3Qud2lkdGggLSB3dykgLyAyCisrKyAgICAgICAgICAgIHRleHRPZmZzZXQgPSAo cmVjdC53aWR0aCAtIHd3KSAvLyAyCisrIAorKyAgICAgICAgICAgICBpZiBub3QgbWVudWJhci5f aXNMQ0QgYW5kIGl0ZW0uR2V0VGV4dEJpdG1hcCgpLklzT2soKSBhbmQgbm90IHNlbGVjdGVkOgor KyAgICAgICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChpdGVtLkdldFRleHRCaXRtYXAoKSwgcmVj dC54LCByZWN0LnksIFRydWUpCisrQEAgLTE1MDUsOCArMTUwNSw4IEBAIGRlZiBEcmF3QnV0dG9u Q29sb3VyKHNlbGYsIGRjLCByZWN0LCBzdGF0ZSwgY29sb3VyKToKKysgICAgICAgICBiYXNlQ29s b3VyID0gY29sb3VyCisrIAorKyAgICAgICAgICMgRGVmaW5lIHRoZSBtaWRkbGUgcG9pbnRzCisr LSAgICAgICAgbGVmdFB0ID0gd3guUG9pbnQocmVjdC54LCByZWN0LnkgKyAocmVjdC5oZWlnaHQg LyAyKSkKKystICAgICAgICByaWdodFB0ID0gd3guUG9pbnQocmVjdC54ICsgcmVjdC53aWR0aC0x LCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLyAyKSkKKysrICAgICAgICBsZWZ0UHQgPSB3eC5Qb2lu dChyZWN0LngsIHJlY3QueSArIChyZWN0LmhlaWdodCAvLyAyKSkKKysrICAgICAgICByaWdodFB0 ID0gd3guUG9pbnQocmVjdC54ICsgcmVjdC53aWR0aC0xLCByZWN0LnkgKyAocmVjdC5oZWlnaHQg Ly8gMikpCisrIAorKyAgICAgICAgICMgRGVmaW5lIHRoZSB0b3AgcmVnaW9uCisrICAgICAgICAg dG9wID0gd3guUmVjdCgocmVjdC5HZXRMZWZ0KCksIHJlY3QuR2V0VG9wKCkpLCByaWdodFB0KQor K0BAIC0xNTcyLDExICsxNTcyLDExIEBAIGRlZiBEcmF3TWVudUJhckJhY2tncm91bmQoc2VsZiwg ZGMsIHJlY3QpOgorKyAKKysgICAgICAgICBmYWN0b3IgPSBhcnRNZ3IuR2V0TWVudUJnRmFjdG9y KCkKKysgCisrLSAgICAgICAgbGVmdFB0MSA9IHd4LlBvaW50KHJlY3QueCwgcmVjdC55ICsgKHJl Y3QuaGVpZ2h0IC8gZmFjdG9yKSkKKystICAgICAgICBsZWZ0UHQyID0gd3guUG9pbnQocmVjdC54 LCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLyBmYWN0b3IpKihmYWN0b3ItMSkpCisrKyAgICAgICAg bGVmdFB0MSA9IHd4LlBvaW50KHJlY3QueCwgcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC8vIGZhY3Rv cikpCisrKyAgICAgICAgbGVmdFB0MiA9IHd4LlBvaW50KHJlY3QueCwgcmVjdC55ICsgKHJlY3Qu aGVpZ2h0IC8vIGZhY3RvcikqKGZhY3Rvci0xKSkKKysgCisrLSAgICAgICAgcmlnaHRQdDEgPSB3 eC5Qb2ludChyZWN0LnggKyByZWN0LndpZHRoLCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLyBmYWN0 b3IpKQorKy0gICAgICAgIHJpZ2h0UHQyID0gd3guUG9pbnQocmVjdC54ICsgcmVjdC53aWR0aCwg cmVjdC55ICsgKHJlY3QuaGVpZ2h0IC8gZmFjdG9yKSooZmFjdG9yLTEpKQorKysgICAgICAgIHJp Z2h0UHQxID0gd3guUG9pbnQocmVjdC54ICsgcmVjdC53aWR0aCwgcmVjdC55ICsgKHJlY3QuaGVp Z2h0IC8vIGZhY3RvcikpCisrKyAgICAgICAgcmlnaHRQdDIgPSB3eC5Qb2ludChyZWN0LnggKyBy ZWN0LndpZHRoLCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLy8gZmFjdG9yKSooZmFjdG9yLTEpKQor KyAKKysgICAgICAgICAjIERlZmluZSB0aGUgdG9wIHJlZ2lvbgorKyAgICAgICAgIHRvcFJlZyA9 IFt3eC5Qb2ludCgpIGZvciBpaSBpbiByYW5nZSg3KV0KKytAQCAtMjcwNyw3ICsyNzA3LDcgQEAg ZGVmIERyYXdUb29sYmFyKHNlbGYsIGRjLCByZWN0KToKKysgICAgICAgICAgICAgZWxpZiB0Ykl0 ZW0uSXNDdXN0b21Db250cm9sKCk6CisrICAgICAgICAgICAgICAgICBjb250cm9sID0gdGJJdGVt LkdldEN1c3RvbUNvbnRyb2woKQorKyAgICAgICAgICAgICAgICAgY3RybFNpemUgPSBjb250cm9s LkdldFNpemUoKQorKy0gICAgICAgICAgICAgICAgY3RybFBvcyA9IHd4LlBvaW50KHh4LCByZWN0 LnkgKyAocmVjdC5oZWlnaHQgLSBjdHJsU2l6ZS55KS8yKQorKysgICAgICAgICAgICAgICAgY3Ry bFBvcyA9IHd4LlBvaW50KHh4LCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLSBjdHJsU2l6ZS55KS8v MikKKysgICAgICAgICAgICAgICAgIGlmIGNvbnRyb2wuR2V0UG9zaXRpb24oKSAhPSBjdHJsUG9z OgorKyAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuU2V0UG9zaXRpb24oY3RybFBvcykKKysg CisrQEAgLTI3MjcsOSArMjcyNyw5IEBAIGRlZiBEcmF3VG9vbGJhcihzZWxmLCBkYywgcmVjdCk6 CisrICAgICAgICAgICAgICMgRHJhdyB0aGUgdG9vbGJhciBpbWFnZQorKyAgICAgICAgICAgICBp ZiBibXAuSXNPaygpOgorKyAKKystICAgICAgICAgICAgICAgIHggPSB4eCAtIHNlbGYuX3Rvb2xi YXJTcGFjZXIvMgorKysgICAgICAgICAgICAgICAgeCA9IHh4IC0gc2VsZi5fdG9vbGJhclNwYWNl ci8vMgorKyAgICAgICAgICAgICAgICAgI3kgPSByZWN0LnkgKyAocmVjdC5oZWlnaHQgLSBibXAu R2V0SGVpZ2h0KCkpLzIgLSAxCisrLSAgICAgICAgICAgICAgICB5ID0gcmVjdC55ICsgc2VsZi5f dG9vbGJhck1hcmdpbi8yCisrKyAgICAgICAgICAgICAgICB5ID0gcmVjdC55ICsgc2VsZi5fdG9v bGJhck1hcmdpbi8vMgorKyAKKysgICAgICAgICAgICAgICAgIGJ1dHRvblJlY3QgPSB3eC5SZWN0 KHgsIHksIGhpZ2hsaWdodF93aWR0aCwgaGlnaGxpZ2h0X2hlaWdodCkKKysgCisrQEAgLTI3NDUs OCArMjc0NSw4IEBAIGRlZiBEcmF3VG9vbGJhcihzZWxmLCBkYywgcmVjdCk6CisrICAgICAgICAg ICAgICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fdGJCdXR0 b25zW2ldLl9zdGF0ZSA9IENvbnRyb2xOb3JtYWwKKysgCisrLSAgICAgICAgICAgICAgICBpbWd4 ID0gYnV0dG9uUmVjdC54ICsgKGJ1dHRvblJlY3Qud2lkdGggLSBibXAuR2V0V2lkdGgoKSkvMgor Ky0gICAgICAgICAgICAgICAgaW1neSA9IGJ1dHRvblJlY3QueSArIChidXR0b25SZWN0LmhlaWdo dCAtIGJtcC5HZXRIZWlnaHQoKSkvMgorKysgICAgICAgICAgICAgICAgaW1neCA9IGJ1dHRvblJl Y3QueCArIChidXR0b25SZWN0LndpZHRoIC0gYm1wLkdldFdpZHRoKCkpLy8yCisrKyAgICAgICAg ICAgICAgICBpbWd5ID0gYnV0dG9uUmVjdC55ICsgKGJ1dHRvblJlY3QuaGVpZ2h0IC0gYm1wLkdl dEhlaWdodCgpKS8vMgorKyAKKysgICAgICAgICAgICAgICAgIGlmIHNlbGYuX3RiQnV0dG9uc1tp XS5fc3RhdGUgPT0gQ29udHJvbEZvY3VzIGFuZCBub3Qgc2VsZi5fdGJCdXR0b25zW2ldLl90Ykl0 ZW0uSXNTZWxlY3RlZCgpOgorKyAKKytAQCAtMjgyNyw4ICsyODI3LDggQEAgZGVmIERyYXdNb3Jl QnV0dG9uKHNlbGYsIGRjLCBzdGF0ZSk6CisrICAgICAgICAgZHJvcEFycm93Qm1wID0gc2VsZi5H ZXRSZW5kZXJlcigpLl9iaXRtYXBzWyJhcnJvd19kb3duIl0KKysgCisrICAgICAgICAgIyBDYWxj IHRoZSBpbWFnZSBjb29yZGluYXRlcworKy0gICAgICAgIHh4ID0gcmVjdC54ICsgKERST1BfRE9X Tl9BUlJPV19XSURUSCAtIGRyb3BBcnJvd0JtcC5HZXRXaWR0aCgpKS8yCisrLSAgICAgICAgeXkg PSByZWN0LnkgKyAocmVjdC5oZWlnaHQgLSBkcm9wQXJyb3dCbXAuR2V0SGVpZ2h0KCkpLzIKKysr ICAgICAgICB4eCA9IHJlY3QueCArIChEUk9QX0RPV05fQVJST1dfV0lEVEggLSBkcm9wQXJyb3dC bXAuR2V0V2lkdGgoKSkvLzIKKysrICAgICAgICB5eSA9IHJlY3QueSArIChyZWN0LmhlaWdodCAt IGRyb3BBcnJvd0JtcC5HZXRIZWlnaHQoKSkvLzIKKysgCisrICAgICAgICAgZGMuRHJhd0JpdG1h cChkcm9wQXJyb3dCbXAsIHh4LCB5eSArIHNlbGYuX3NwYWNlciwgVHJ1ZSkKKysgICAgICAgICBz ZWxmLl9kcm9wRG93bkJ1dHRvblN0YXRlID0gc3RhdGUKKytAQCAtMzI2OSw4ICszMjY5LDggQEAg ZGVmIERyYXdUb29sYmFySXRlbShzZWxmLCBkYywgaWR4LCBzdGF0ZSk6CisrIAorKyAgICAgICAg ICMgZHJhdyB0aGUgYml0bWFwIG92ZXIgdGhlIGhpZ2hsaWdodAorKyAgICAgICAgIGJ1dHRvblJl Y3QgPSB3eC5SZWN0KCpyZWN0KQorKy0gICAgICAgIHggPSByZWN0LnggKyAoYnV0dG9uUmVjdC53 aWR0aCAtIHNlbGYuX3RiQnV0dG9uc1tpZHhdLl90Ykl0ZW0uR2V0Qml0bWFwKCkuR2V0V2lkdGgo KSkvMgorKy0gICAgICAgIHkgPSByZWN0LnkgKyAoYnV0dG9uUmVjdC5oZWlnaHQgLSBzZWxmLl90 YkJ1dHRvbnNbaWR4XS5fdGJJdGVtLkdldEJpdG1hcCgpLkdldEhlaWdodCgpKS8yCisrKyAgICAg ICAgeCA9IHJlY3QueCArIChidXR0b25SZWN0LndpZHRoIC0gc2VsZi5fdGJCdXR0b25zW2lkeF0u X3RiSXRlbS5HZXRCaXRtYXAoKS5HZXRXaWR0aCgpKS8vMgorKysgICAgICAgIHkgPSByZWN0Lnkg KyAoYnV0dG9uUmVjdC5oZWlnaHQgLSBzZWxmLl90YkJ1dHRvbnNbaWR4XS5fdGJJdGVtLkdldEJp dG1hcCgpLkdldEhlaWdodCgpKS8vMgorKyAKKysgICAgICAgICBpZiBzdGF0ZSA9PSBDb250cm9s Rm9jdXM6CisrIAorK0BAIC0zNzg0LDcgKzM3ODQsNyBAQCBkZWYgUG9zaXRpb25BVUkoc2VsZiwg bWdyLCBmaXhUb29sYmFyPVRydWUpOgorKyAgICAgICAgIHBuLk5hbWUoImZsYXRfbWVudV9iYXIi KQorKyAgICAgICAgIHBuLkNhcHRpb24oIk1lbnUgQmFyIikKKysgICAgICAgICBwbi5Ub3AoKQor Ky0gICAgICAgIHBuLk1pblNpemUod3guU2l6ZSh4eC8yLCBzZWxmLl9iYXJIZWlnaHQpKQorKysg ICAgICAgIHBuLk1pblNpemUod3guU2l6ZSh4eC8vMiwgc2VsZi5fYmFySGVpZ2h0KSkKKysgICAg ICAgICBwbi5MZWZ0RG9ja2FibGUoRmFsc2UpCisrICAgICAgICAgcG4uUmlnaHREb2NrYWJsZShG YWxzZSkKKysgICAgICAgICBwbi5Ub29sYmFyUGFuZSgpCisrQEAgLTM5OTcsOCArMzk5Nyw4IEBA IGRlZiBEcmF3KHNlbGYsIGRjKToKKysgICAgICAgICAiIiIKKysgCisrICAgICAgICAgcmVjdCA9 IHd4LlJlY3Qoc2VsZi5fcG9zLCBzZWxmLl9zaXplKQorKy0gICAgICAgIHh4ID0gcmVjdC54ICsg KHJlY3Qud2lkdGggLSBzZWxmLl9ub3JtYWxCbXAuR2V0V2lkdGgoKSkvMgorKy0gICAgICAgIHl5 ID0gcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC0gc2VsZi5fbm9ybWFsQm1wLkdldEhlaWdodCgpKS8y CisrKyAgICAgICAgeHggPSByZWN0LnggKyAocmVjdC53aWR0aCAtIHNlbGYuX25vcm1hbEJtcC5H ZXRXaWR0aCgpKS8vMgorKysgICAgICAgIHl5ID0gcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC0gc2Vs Zi5fbm9ybWFsQm1wLkdldEhlaWdodCgpKS8vMgorKyAKKysgICAgICAgICBzZWxmLl9wYXJlbnQu R2V0UmVuZGVyZXIoKS5EcmF3U2Nyb2xsQnV0dG9uKGRjLCByZWN0LCBzZWxmLl9zdGF0ZSkKKysg ICAgICAgICBkYy5EcmF3Qml0bWFwKHNlbGYuX25vcm1hbEJtcCwgeHgsIHl5LCBUcnVlKQorK2Rp ZmYgLS1naXQgYS93eC9saWIvYWd3L2ZsYXRub3RlYm9vay5weSBiL3d4L2xpYi9hZ3cvZmxhdG5v dGVib29rLnB5CisraW5kZXggZjVlNTIwMGIyLi41NjE3NDliODkgMTAwNjQ0CisrLS0tIGEvd3gv bGliL2Fndy9mbGF0bm90ZWJvb2sucHkKKysrKysgYi93eC9saWIvYWd3L2ZsYXRub3RlYm9vay5w eQorK0BAIC04NTgsOSArODU4LDkgQEAgZGVmIFBhaW50U3RyYWlnaHRHcmFkaWVudEJveChkYywg cmVjdCwgc3RhcnRDb2xvdXIsIGVuZENvbG91ciwgdmVydGljYWw9VHJ1ZSk6CisrIAorKyAgICAg Zm9yIGkgaW4gcmFuZ2UoaGlnaCsxKToKKysgCisrLSAgICAgICAgciA9IHN0YXJ0Q29sb3VyLlJl ZCgpICsgKChpKnJkKjEwMCkvaGlnaCkvMTAwCisrLSAgICAgICAgZyA9IHN0YXJ0Q29sb3VyLkdy ZWVuKCkgKyAoKGkqZ2QqMTAwKS9oaWdoKS8xMDAKKystICAgICAgICBiID0gc3RhcnRDb2xvdXIu Qmx1ZSgpICsgKChpKmJkKjEwMCkvaGlnaCkvMTAwCisrKyAgICAgICAgciA9IHN0YXJ0Q29sb3Vy LlJlZCgpICsgKChpKnJkKjEwMCkvL2hpZ2gpLy8xMDAKKysrICAgICAgICBnID0gc3RhcnRDb2xv dXIuR3JlZW4oKSArICgoaSpnZCoxMDApLy9oaWdoKS8vMTAwCisrKyAgICAgICAgYiA9IHN0YXJ0 Q29sb3VyLkJsdWUoKSArICgoaSpiZCoxMDApLy9oaWdoKS8vMTAwCisrIAorKyAgICAgICAgIHAg PSB3eC5QZW4od3guQ29sb3VyKHIsIGcsIGIpKQorKyAgICAgICAgIGRjLlNldFBlbihwKQorK0BA IC0yNjMxLDkgKzI2MzEsOSBAQCBkZWYgRHJhd1RhYihzZWxmLCBwYWdlQ29udGFpbmVyLCBkYywg cG9zeCwgdGFiSWR4LCB0YWJXaWR0aCwgdGFiSGVpZ2h0LCBidG5TdGF0dQorKyAgICAgICAgIGlt YWdlWUNvb3JkID0gKHBjLkhhc0FHV0ZsYWcoRk5CX0JPVFRPTSkgYW5kIFs2XSBvciBbOF0pWzBd CisrIAorKyAgICAgICAgIGlmIGhhc0ltYWdlOgorKy0gICAgICAgICAgICB0ZXh0T2Zmc2V0ID0g MipwYy5fcFBhcmVudC5fblBhZGRpbmcgKyAxNiArIHNoYXBlUG9pbnRzLzIKKysrICAgICAgICAg ICAgdGV4dE9mZnNldCA9IDIqcGMuX3BQYXJlbnQuX25QYWRkaW5nICsgMTYgKyBzaGFwZVBvaW50 cy8vMgorKyAgICAgICAgIGVsc2U6CisrLSAgICAgICAgICAgIHRleHRPZmZzZXQgPSBwYy5fcFBh cmVudC5fblBhZGRpbmcgKyBzaGFwZVBvaW50cy8yCisrKyAgICAgICAgICAgIHRleHRPZmZzZXQg PSBwYy5fcFBhcmVudC5fblBhZGRpbmcgKyBzaGFwZVBvaW50cy8vMgorKyAKKysgICAgICAgICB0 ZXh0T2Zmc2V0ICs9IDIKKysgCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvZmxvYXRzcGluLnB5 IGIvd3gvbGliL2Fndy9mbG9hdHNwaW4ucHkKKytpbmRleCBiZGJhZjg1ZWMuLjQ1NTllYjVkZSAx MDA2NDQKKystLS0gYS93eC9saWIvYWd3L2Zsb2F0c3Bpbi5weQorKysrKyBiL3d4L2xpYi9hZ3cv ZmxvYXRzcGluLnB5CisrQEAgLTMzNiw3ICszMzYsNyBAQCBjbGFzcyBGbG9hdFNwaW4od3guQ29u dHJvbCk6CisrICAgICAiIiIKKysgCisrICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCBp ZD13eC5JRF9BTlksIHBvcz13eC5EZWZhdWx0UG9zaXRpb24sCisrLSAgICAgICAgICAgICAgICAg c2l6ZT0oOTUsLTEpLCBzdHlsZT0wLCB2YWx1ZT0wLjAsIG1pbl92YWw9Tm9uZSwgbWF4X3ZhbD1O b25lLAorKysgICAgICAgICAgICAgICAgIHNpemU9d3guRGVmYXVsdFNpemUsIHN0eWxlPTAsIHZh bHVlPTAuMCwgbWluX3ZhbD1Ob25lLCBtYXhfdmFsPU5vbmUsCisrICAgICAgICAgICAgICAgICAg aW5jcmVtZW50PTEuMCwgZGlnaXRzPS0xLCBhZ3dTdHlsZT1GU19MRUZULAorKyAgICAgICAgICAg ICAgICAgIG5hbWU9IkZsb2F0U3BpbiIpOgorKyAgICAgICAgICIiIgorK2RpZmYgLS1naXQgYS93 eC9saWIvYWd3L2dyYWRpZW50YnV0dG9uLnB5IGIvd3gvbGliL2Fndy9ncmFkaWVudGJ1dHRvbi5w eQorK2luZGV4IGM0NjMzYjI5Ni4uNTg2MjVjNTA4IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cv Z3JhZGllbnRidXR0b24ucHkKKysrKysgYi93eC9saWIvYWd3L2dyYWRpZW50YnV0dG9uLnB5Cisr QEAgLTQxMiwxNCArNDEyLDE0IEBAIGRlZiBPblBhaW50KHNlbGYsIGV2ZW50KToKKysgCisrICAg ICAgICAgeCwgeSwgd2lkdGgsIGhlaWdodCA9IGNsaWVudFJlY3QKKysgCisrLSAgICAgICAgZ3Jh ZGllbnRSZWN0LlNldEhlaWdodChncmFkaWVudFJlY3QuR2V0SGVpZ2h0KCkvMiArICgoY2FwdHVy ZT09c2VsZiBhbmQgWzFdIG9yIFswXSlbMF0pKQorKysgICAgICAgIGdyYWRpZW50UmVjdC5TZXRI ZWlnaHQoZ3JhZGllbnRSZWN0LkdldEhlaWdodCgpLy8yICsgKChjYXB0dXJlPT1zZWxmIGFuZCBb MV0gb3IgWzBdKVswXSkpCisrICAgICAgICAgaWYgY2FwdHVyZSAhPSBzZWxmOgorKyAgICAgICAg ICAgICBpZiBzZWxmLl9tb3VzZUFjdGlvbiA9PSBIT1ZFUjoKKysgICAgICAgICAgICAgICAgIHRv cFN0YXJ0LCB0b3BFbmQgPSBzZWxmLkxpZ2h0Q29sb3VyKHNlbGYuX3RvcFN0YXJ0Q29sb3VyLCAx MCksIHNlbGYuTGlnaHRDb2xvdXIoc2VsZi5fdG9wRW5kQ29sb3VyLCAxMCkKKysgICAgICAgICAg ICAgZWxzZToKKysgICAgICAgICAgICAgICAgIHRvcFN0YXJ0LCB0b3BFbmQgPSBzZWxmLl90b3BT dGFydENvbG91ciwgc2VsZi5fdG9wRW5kQ29sb3VyCisrIAorKy0gICAgICAgICAgICByYzEgPSB3 eC5SZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQvMikKKysrICAgICAgICAgICAgcmMxID0gd3guUmVj dCh4LCB5LCB3aWR0aCwgaGVpZ2h0Ly8yKQorKyAgICAgICAgICAgICBwYXRoMSA9IHNlbGYuR2V0 UGF0aChnYywgcmMxLCA4KQorKyAgICAgICAgICAgICBicjEgPSBnYy5DcmVhdGVMaW5lYXJHcmFk aWVudEJydXNoKHgsIHksIHgsIHkraGVpZ2h0LzIsIHRvcFN0YXJ0LCB0b3BFbmQpCisrICAgICAg ICAgICAgIGdjLlNldEJydXNoKGJyMSkKKytAQCAtNDQ4LDcgKzQ0OCw3IEBAIGRlZiBPblBhaW50 KHNlbGYsIGV2ZW50KToKKysgICAgICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgICAgIGJv dHRvbVN0YXJ0LCBib3R0b21FbmQgPSBzZWxmLl9ib3R0b21TdGFydENvbG91ciwgc2VsZi5fYm90 dG9tRW5kQ29sb3VyCisrIAorKy0gICAgICAgICAgICByYzMgPSB3eC5SZWN0KHgsIHkraGVpZ2h0 LzIsIHdpZHRoLCBoZWlnaHQvMikKKysrICAgICAgICAgICAgcmMzID0gd3guUmVjdCh4LCB5K2hl aWdodC8vMiwgd2lkdGgsIGhlaWdodC8vMikKKysgICAgICAgICAgICAgcGF0aDMgPSBzZWxmLkdl dFBhdGgoZ2MsIHJjMywgOCkKKysgICAgICAgICAgICAgYnIzID0gZ2MuQ3JlYXRlTGluZWFyR3Jh ZGllbnRCcnVzaCh4LCB5K2hlaWdodC8yLCB4LCB5K2hlaWdodCwgYm90dG9tU3RhcnQsIGJvdHRv bUVuZCkKKysgICAgICAgICAgICAgZ2MuU2V0QnJ1c2goYnIzKQorK0BAIC00NjMsNyArNDYzLDcg QEAgZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQpOgorKyAgICAgICAgICAgICBzaGFkb3dPZmZzZXQg PSAwCisrICAgICAgICAgZWxzZToKKysgCisrLSAgICAgICAgICAgIHJjMiA9IHd4LlJlY3QoeCsx LCBncmFkaWVudFJlY3QuaGVpZ2h0LzIsIGdyYWRpZW50UmVjdC53aWR0aCwgZ3JhZGllbnRSZWN0 LmhlaWdodCkKKysrICAgICAgICAgICAgcmMyID0gd3guUmVjdCh4KzEsIGdyYWRpZW50UmVjdC5o ZWlnaHQvLzIsIGdyYWRpZW50UmVjdC53aWR0aCwgZ3JhZGllbnRSZWN0LmhlaWdodCkKKysgICAg ICAgICAgICAgcGF0aDIgPSBzZWxmLkdldFBhdGgoZ2MsIHJjMiwgOCkKKysgICAgICAgICAgICAg Z2MuU2V0UGVuKHd4LlBlbihzZWxmLl9wcmVzc2VkQm90dG9tQ29sb3VyKSkKKysgICAgICAgICAg ICAgZ2MuU2V0QnJ1c2god3guQnJ1c2goc2VsZi5fcHJlc3NlZEJvdHRvbUNvbG91cikpCisrZGlm ZiAtLWdpdCBhL3d4L2xpYi9hZ3cvaHlwZXJ0cmVlbGlzdC5weSBiL3d4L2xpYi9hZ3cvaHlwZXJ0 cmVlbGlzdC5weQorK2luZGV4IDEyMzAyZjNiMC4uMzc3YWMwMTIxIDEwMDY0NAorKy0tLSBhL3d4 L2xpYi9hZ3cvaHlwZXJ0cmVlbGlzdC5weQorKysrKyBiL3d4L2xpYi9hZ3cvaHlwZXJ0cmVlbGlz dC5weQorK0BAIC0zNDM3LDcgKzM0MzcsNyBAQCBkZWYgUGFpbnRMZXZlbChzZWxmLCBpdGVtLCBk YywgbGV2ZWwsIHksIHhfbWFpbmNvbCk6CisrIAorKyAgICAgICAgICAgICBpZiBub3Qgc2VsZi5I YXNBR1dGbGFnKHd4LlRSX05PX0xJTkVTKSBhbmQgY2hpbGRyZW46CisrICAgICAgICAgICAgICAg ICBsYXN0X2NoaWxkID0gY2hpbGRyZW5bLTFdCisrLSAgICAgICAgICAgICAgICBZMSA9IGxhc3Rf Y2hpbGQuR2V0WSgpICsgbGFzdF9jaGlsZC5HZXRIZWlnaHQoKSAvIDIKKysrICAgICAgICAgICAg ICAgIFkxID0gbGFzdF9jaGlsZC5HZXRZKCkgKyBsYXN0X2NoaWxkLkdldEhlaWdodCgpIC8vIDIK KysgICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKHgsIG9sZFksIHgsIFkxKQorKyAKKysgICAg ICAgICByZXR1cm4geSwgeF9tYWluY29sCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cva25vYmN0 cmwucHkgYi93eC9saWIvYWd3L2tub2JjdHJsLnB5CisraW5kZXggNzQyMDk3YjA5Li4xZTUwNDVm ZjYgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9rbm9iY3RybC5weQorKysrKyBiL3d4L2xpYi9h Z3cva25vYmN0cmwucHkKKytAQCAtMzI1LDcgKzMyNSw3IEBAIGRlZiBPblNpemUoc2VsZixldmVu dCk6CisrICAgICAgICAgbWVtb3J5LkNsZWFyKCkKKysgCisrICAgICAgICAgbWlucmFkaXVzID0g bWluKDAuOSpzZWxmLldpZHRoLzIuMCwgMC45KnNlbGYuSGVpZ2h0LzIuMCkKKystICAgICAgICBt ZW1vcnkuRHJhd0NpcmNsZShzZWxmLldpZHRoLy8yLCBzZWxmLkhlaWdodC8vMiwgbWlucmFkaXVz KQorKysgICAgICAgIG1lbW9yeS5EcmF3Q2lyY2xlKHNlbGYuV2lkdGgvLzIsIHNlbGYuSGVpZ2h0 Ly8yLCBpbnQobWlucmFkaXVzKSkKKysgICAgICAgICBtZW1vcnkuU2VsZWN0T2JqZWN0KHd4Lk51 bGxCaXRtYXApCisrICAgICAgICAgc2VsZi5fcmVnaW9uID0gd3guUmVnaW9uKHNlbGYuX0J1ZmZl ciwgc2VsZi5HZXRCYWNrZ3JvdW5kQ29sb3VyKCkpCisrICAgICAgICAgc2VsZi5fbWlucmFkaXVz ID0gbWlucmFkaXVzCisrQEAgLTY0NSw4ICs2NDUsOCBAQCBkZWYgRHJhd1RhZ3Moc2VsZiwgZGMs IHNpemUpOgorKyAgICAgICAgICAgICBkeGkgPSBtYXRoLmNvcyhhbmdsZSkqKCh3aWR0aCAtIHhz aGlmdCArIHRhZ0xlbiAtIDYpLzIuMCAtIHRhZ0xlbikKKysgICAgICAgICAgICAgZHlpID0gbWF0 aC5zaW4oYW5nbGUpKigoaGVpZ2h0IC0geXNoaWZ0ICsgdGFnTGVuIC0gNikvMi4wIC0gdGFnTGVu KQorKyAKKystICAgICAgICAgICAgZGMuRHJhd0xpbmUod2lkdGgvLzIgLSBzeGksIGhlaWdodC8v MiAtIHN5aSwKKystICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgvLzIgLSBkeGksIGhlaWdo dC8vMiAtIGR5aSkKKysrICAgICAgICAgICAgZGMuRHJhd0xpbmUoaW50KHdpZHRoLy8yIC0gc3hp KSwgaW50KGhlaWdodC8vMiAtIHN5aSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgIGludCh3 aWR0aC8vMiAtIGR4aSksIGludChoZWlnaHQvLzIgLSBkeWkpKQorKyAKKysgCisrICAgICBkZWYg RHJhd0RpYWdvbmFsR3JhZGllbnQoc2VsZiwgZGMsIHNpemUpOgorK0BAIC03NTksOCArNzU5LDgg QEAgZGVmIERyYXdJbnNldENpcmNsZShzZWxmLCBkYywgcGVuY29sb3VyKToKKysgICAgICAgICBw MSA9IHd4LlBlbihzZWxmLk9mZnNldENvbG91cihwZW5jb2xvdXIsIC03MCksIDIpCisrICAgICAg ICAgcDIgPSB3eC5QZW4oc2VsZi5PZmZzZXRDb2xvdXIocGVuY29sb3VyLCAxMCksIDEpCisrIAor Ky0gICAgICAgIHB0MSA9IHd4LlBvaW50KGN4LXIqbWF0aC5zcXJ0KDIpLzIuMCwgY3krciptYXRo LnNxcnQoMikvMi4wKQorKy0gICAgICAgIHB0MiA9IHd4LlBvaW50KGN4K3IqbWF0aC5zcXJ0KDIp LzIuMCwgY3ktciptYXRoLnNxcnQoMikvMi4wKQorKysgICAgICAgIHB0MSA9IHd4LlBvaW50KGlu dChjeC1yKm1hdGguc3FydCgyKS8yLjApLCBpbnQoY3krciptYXRoLnNxcnQoMikvMi4wKSkKKysr ICAgICAgICBwdDIgPSB3eC5Qb2ludChpbnQoY3grciptYXRoLnNxcnQoMikvMi4wKSwgaW50KGN5 LXIqbWF0aC5zcXJ0KDIpLzIuMCkpCisrIAorKyAgICAgICAgIGRjLlNldFBlbihwMikKKysgICAg ICAgICBkYy5EcmF3QXJjKHB0MSwgcHQyLCAoY3gsIGN5KSkKKytAQCAtNzc5LDcgKzc3OSw3IEBA IGRlZiBEcmF3Qm91bmRpbmdDaXJjbGUoc2VsZiwgZGMsIHNpemUpOgorKyAgICAgICAgIHJhZGl1 cyA9IDAuOSptaW4oc2l6ZS54LCBzaXplLnkpLzIuMAorKyAgICAgICAgIGRjLlNldEJydXNoKHd4 LlRSQU5TUEFSRU5UX0JSVVNIKQorKyAgICAgICAgIGRjLlNldFBlbih3eC5QZW4oc2VsZi5fYm91 bmRpbmdjb2xvdXIpKQorKy0gICAgICAgIGRjLkRyYXdDaXJjbGUoc2VsZi5XaWR0aC8vMiwgc2Vs Zi5IZWlnaHQvLzIsIHJhZGl1cykKKysrICAgICAgICBkYy5EcmF3Q2lyY2xlKHNlbGYuV2lkdGgv LzIsIHNlbGYuSGVpZ2h0Ly8yLCBpbnQocmFkaXVzKSkKKysgCisrIAorKyAgICAgZGVmIENpcmNs ZUNvb3JkcyhzZWxmLCByYWRpdXMsIGFuZ2xlLCBjZW50ZXJYLCBjZW50ZXJZKToKKytkaWZmIC0t Z2l0IGEvd3gvbGliL2Fndy9sYWJlbGJvb2sucHkgYi93eC9saWIvYWd3L2xhYmVsYm9vay5weQor K2luZGV4IGI3MTZkZjNhMi4uZjhjOWNkNTRkIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvbGFi ZWxib29rLnB5CisrKysrIGIvd3gvbGliL2Fndy9sYWJlbGJvb2sucHkKKytAQCAtMTM3NiwxMyAr MTM3NiwxMyBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrIAorKyAgICAgICAgICAgICAg ICAgaWYgYlVzZVljb29yZDoKKysgCisrLSAgICAgICAgICAgICAgICAgICAgaW1nWGNvb3JkID0g c2VsZi5fbkltZ1NpemUgLyAyCisrLSAgICAgICAgICAgICAgICAgICAgaW1nWWNvb3JkID0gKHN0 eWxlICYgSU5CX1NIT1dfT05MWV9JTUFHRVMgYW5kIFtwb3MgKyBzZWxmLl9uSW1nU2l6ZSAvIDJd IG9yIFtwb3MgKyBpbWdUb3BQYWRkaW5nXSlbMF0KKysrICAgICAgICAgICAgICAgICAgICBpbWdY Y29vcmQgPSBzZWxmLl9uSW1nU2l6ZSAvLyAyCisrKyAgICAgICAgICAgICAgICAgICAgaW1nWWNv b3JkID0gKHN0eWxlICYgSU5CX1NIT1dfT05MWV9JTUFHRVMgYW5kIFtwb3MgKyBzZWxmLl9uSW1n U2l6ZSAvLyAyXSBvciBbcG9zICsgaW1nVG9wUGFkZGluZ10pWzBdCisrIAorKyAgICAgICAgICAg ICAgICAgZWxzZToKKysgCisrLSAgICAgICAgICAgICAgICAgICAgaW1nWGNvb3JkID0gcG9zICsg KHJlY3RXaWR0aCAvIDIpIC0gKHNlbGYuX25JbWdTaXplIC8gMikKKystICAgICAgICAgICAgICAg ICAgICBpbWdZY29vcmQgPSAoc3R5bGUgJiBJTkJfU0hPV19PTkxZX0lNQUdFUyBhbmQgW3NlbGYu X25JbWdTaXplIC8gMl0gb3IgW2ltZ1RvcFBhZGRpbmddKVswXQorKysgICAgICAgICAgICAgICAg ICAgIGltZ1hjb29yZCA9IHBvcyArIChyZWN0V2lkdGggLy8gMikgLSAoc2VsZi5fbkltZ1NpemUg Ly8gMikKKysrICAgICAgICAgICAgICAgICAgICBpbWdZY29vcmQgPSAoc3R5bGUgJiBJTkJfU0hP V19PTkxZX0lNQUdFUyBhbmQgW3NlbGYuX25JbWdTaXplIC8vIDJdIG9yIFtpbWdUb3BQYWRkaW5n XSlbMF0KKysgCisrICAgICAgICAgICAgICAgICBzZWxmLl9JbWFnZUxpc3QuRHJhdyhzZWxmLl9w YWdlc0luZm9WZWNbaV0uR2V0SW1hZ2VJbmRleCgpLCBkYywKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGltZ1hjb29yZCwgaW1nWWNvb3JkLAorK0BAIC0xNDA4LDE1ICsx NDA4LDE1IEBAIGRlZiBPblBhaW50KHNlbGYsIGV2ZW50KToKKysgCisrICAgICAgICAgICAgICAg ICBpZiBiVXNlWWNvb3JkOgorKyAKKystICAgICAgICAgICAgICAgICAgICB0ZXh0T2Zmc2V0WCA9 ICgocmVjdFdpZHRoIC0gdGV4dFdpZHRoKSAvIDIgKQorKysgICAgICAgICAgICAgICAgICAgIHRl eHRPZmZzZXRYID0gKChyZWN0V2lkdGggLSB0ZXh0V2lkdGgpIC8vIDIgKQorKyAgICAgICAgICAg ICAgICAgICAgIHRleHRPZmZzZXRZID0gKG5vdCBzdHlsZSAmIElOQl9TSE9XX09OTFlfVEVYVCAg YW5kIFtwb3MgKyBzZWxmLl9uSW1nU2l6ZSAgKyBpbWdUb3BQYWRkaW5nICsgM10gb3IgXAorKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcG9zICsgKChzZWxmLl9uSW1n U2l6ZSAqIDIgLSB0ZXh0SGVpZ2h0KSAvIDIgKV0pWzBdCisrKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFtwb3MgKyAoKHNlbGYuX25JbWdTaXplICogMiAtIHRleHRIZWln aHQpIC8vIDIgKV0pWzBdCisrIAorKyAgICAgICAgICAgICAgICAgZWxzZToKKysgCisrLSAgICAg ICAgICAgICAgICAgICAgdGV4dE9mZnNldFggPSAocmVjdFdpZHRoIC0gdGV4dFdpZHRoKSAvIDIg ICsgcG9zICsgblRleHRQYWRkaW5nTGVmdAorKysgICAgICAgICAgICAgICAgICAgIHRleHRPZmZz ZXRYID0gKHJlY3RXaWR0aCAtIHRleHRXaWR0aCkgLy8gMiAgKyBwb3MgKyBuVGV4dFBhZGRpbmdM ZWZ0CisrICAgICAgICAgICAgICAgICAgICAgdGV4dE9mZnNldFkgPSAobm90IHN0eWxlICYgSU5C X1NIT1dfT05MWV9URVhUIGFuZCBbc2VsZi5fbkltZ1NpemUgKyBpbWdUb3BQYWRkaW5nICsgM10g b3IgXAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKChzZWxmLl9u SW1nU2l6ZSAqIDIgLSB0ZXh0SGVpZ2h0KSAvIDIgKV0pWzBdCisrKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFsoKHNlbGYuX25JbWdTaXplICogMiAtIHRleHRIZWlnaHQp IC8vIDIgKV0pWzBdCisrIAorKyAgICAgICAgICAgICAgICAgZGMuU2V0VGV4dEZvcmVncm91bmQo d3guU3lzdGVtU2V0dGluZ3MuR2V0Q29sb3VyKHd4LlNZU19DT0xPVVJfV0lORE9XVEVYVCkpCisr ICAgICAgICAgICAgICAgICBkYy5EcmF3VGV4dChmaXhlZFRleHQsIHRleHRPZmZzZXRYLCB0ZXh0 T2Zmc2V0WSkKKytAQCAtMTU5MSw4ICsxNTkxLDggQEAgZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQp OgorKyAgICAgICAgICAgICAjIERyYXcgZ3JhZGllbnQgaW4gdGhlIGJhY2tncm91bmQgYXJlYQor KyAgICAgICAgICAgICBzdGFydENvbG91ciA9IHNlbGYuX2NvbG91cnNNYXBbSU5CX1RBQl9BUkVB X0JBQ0tHUk9VTkRfQ09MT1VSXQorKyAgICAgICAgICAgICBlbmRDb2xvdXIgICA9IEFydE1hbmFn ZXIuR2V0KCkuTGlnaHRDb2xvdXIoc2VsZi5fY29sb3Vyc01hcFtJTkJfVEFCX0FSRUFfQkFDS0dS T1VORF9DT0xPVVJdLCA1MCkKKystICAgICAgICAgICAgQXJ0TWFuYWdlci5HZXQoKS5QYWludFN0 cmFpZ2h0R3JhZGllbnRCb3goZGMsIHd4LlJlY3QoMCwgMCwgc2l6ZS54IC8gMiwgc2l6ZS55KSwg c3RhcnRDb2xvdXIsIGVuZENvbG91ciwgRmFsc2UpCisrLSAgICAgICAgICAgIEFydE1hbmFnZXIu R2V0KCkuUGFpbnRTdHJhaWdodEdyYWRpZW50Qm94KGRjLCB3eC5SZWN0KHNpemUueCAvIDIsIDAs IHNpemUueCAvIDIsIHNpemUueSksIGVuZENvbG91ciwgc3RhcnRDb2xvdXIsIEZhbHNlKQorKysg ICAgICAgICAgICBBcnRNYW5hZ2VyLkdldCgpLlBhaW50U3RyYWlnaHRHcmFkaWVudEJveChkYywg d3guUmVjdCgwLCAwLCBzaXplLnggLy8gMiwgc2l6ZS55KSwgc3RhcnRDb2xvdXIsIGVuZENvbG91 ciwgRmFsc2UpCisrKyAgICAgICAgICAgIEFydE1hbmFnZXIuR2V0KCkuUGFpbnRTdHJhaWdodEdy YWRpZW50Qm94KGRjLCB3eC5SZWN0KHNpemUueCAvLyAyLCAwLCBzaXplLnggLy8gMiwgc2l6ZS55 KSwgZW5kQ29sb3VyLCBzdGFydENvbG91ciwgRmFsc2UpCisrIAorKyAgICAgICAgIGVsc2U6Cisr IAorK0BAIC0xNjM4LDcgKzE2MzgsNyBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrIAor KyAgICAgICAgICAgICBpZiBzZWxmLkhhc0FHV0ZsYWcoSU5CX1NIT1dfT05MWV9URVhUKToKKysg ICAgICAgICAgICAgICAgIGZvbnQgPSB3eC5TeXN0ZW1TZXR0aW5ncy5HZXRGb250KHd4LlNZU19E RUZBVUxUX0dVSV9GT05UKQorKy0gICAgICAgICAgICAgICAgZm9udC5TZXRQb2ludFNpemUoZm9u dC5HZXRQb2ludFNpemUoKSAqIHNlbGYuR2V0UGFyZW50KCkuR2V0Rm9udFNpemVNdWx0aXBsZSgp KQorKysgICAgICAgICAgICAgICAgZm9udC5TZXRQb2ludFNpemUoaW50KGZvbnQuR2V0UG9pbnRT aXplKCkgKiBzZWxmLkdldFBhcmVudCgpLkdldEZvbnRTaXplTXVsdGlwbGUoKSkpCisrIAorKyAg ICAgICAgICAgICAgICAgaWYgc2VsZi5HZXRQYXJlbnQoKS5HZXRGb250Qm9sZCgpOgorKyAgICAg ICAgICAgICAgICAgICAgIGZvbnQuU2V0V2VpZ2h0KHd4LkZPTlRXRUlHSFRfQk9MRCkKKytAQCAt MTk1NCw3ICsxOTU0LDcgQEAgZGVmIERyYXdXZWJIb3ZlcihzZWxmLCBkYywgY2FwdGlvbiwgeENv b3JkLCB5Q29vcmQsIHNlbGVjdGVkKToKKysgCisrICAgICAgICAgIyBSZWRyYXcgdGhlIHRleHQg d2l0aCB1bmRlcmxpbmVkIGZvbnQKKysgICAgICAgICB1bmRlckxpbmVkRm9udCA9IHd4LlN5c3Rl bVNldHRpbmdzLkdldEZvbnQod3guU1lTX0RFRkFVTFRfR1VJX0ZPTlQpCisrLSAgICAgICAgdW5k ZXJMaW5lZEZvbnQuU2V0UG9pbnRTaXplKHVuZGVyTGluZWRGb250LkdldFBvaW50U2l6ZSgpICog c2VsZi5HZXRQYXJlbnQoKS5HZXRGb250U2l6ZU11bHRpcGxlKCkpCisrKyAgICAgICAgdW5kZXJM aW5lZEZvbnQuU2V0UG9pbnRTaXplKGludCh1bmRlckxpbmVkRm9udC5HZXRQb2ludFNpemUoKSAq IHNlbGYuR2V0UGFyZW50KCkuR2V0Rm9udFNpemVNdWx0aXBsZSgpKSkKKysgICAgICAgICBpZiBz ZWxmLkdldFBhcmVudCgpLkdldEZvbnRCb2xkKCk6CisrICAgICAgICAgICAgIHVuZGVyTGluZWRG b250LlNldFdlaWdodCh3eC5GT05UV0VJR0hUX0JPTEQpCisrICAgICAgICAgZWxpZiBzZWxmLkhh c0FHV0ZsYWcoSU5CX0JPTERfVEFCX1NFTEVDVElPTikgYW5kIHNlbGVjdGVkOgorK0BAIC0yMDUw LDcgKzIwNTAsNyBAQCBkZWYgRHJhd0xhYmVsKHNlbGYsIGRjLCByZWN0LCB0ZXh0LCBibXAsIGlt Z0luZm8sIG9yaWVudGF0aW9uTGVmdCwgaW1nSWR4LCBzZWxlYworKyAgICAgICAgIGltZ1JlY3Qg PSB3eC5SZWN0KCpyZWN0KQorKyAKKysgICAgICAgICBmb250ID0gd3guU3lzdGVtU2V0dGluZ3Mu R2V0Rm9udCh3eC5TWVNfREVGQVVMVF9HVUlfRk9OVCkKKystICAgICAgICBmb250LlNldFBvaW50 U2l6ZShmb250LkdldFBvaW50U2l6ZSgpICogc2VsZi5HZXRQYXJlbnQoKS5HZXRGb250U2l6ZU11 bHRpcGxlKCkpCisrKyAgICAgICAgZm9udC5TZXRQb2ludFNpemUoaW50KGZvbnQuR2V0UG9pbnRT aXplKCkgKiBzZWxmLkdldFBhcmVudCgpLkdldEZvbnRTaXplTXVsdGlwbGUoKSkpCisrIAorKyAg ICAgICAgIGlmIHNlbGYuR2V0UGFyZW50KCkuR2V0Rm9udEJvbGQoKToKKysgICAgICAgICAgICAg Zm9udC5TZXRXZWlnaHQod3guRk9OVFdFSUdIVF9CT0xEKQorK0BAIC0yMDY5LDcgKzIwNjksNyBA QCBkZWYgRHJhd0xhYmVsKHNlbGYsIGRjLCByZWN0LCB0ZXh0LCBibXAsIGltZ0luZm8sIG9yaWVu dGF0aW9uTGVmdCwgaW1nSWR4LCBzZWxlYworKyAKKysgICAgICAgICAjIFRleHQgYm91bmRpbmcg cmVjdGFuZ2xlCisrICAgICAgICAgdGV4dFJlY3QueCArPSBuUGFkZGluZworKy0gICAgICAgIHRl eHRSZWN0LnkgPSByZWN0LnkgKyAocmVjdC5oZWlnaHQgLSBoKS8yCisrKyAgICAgICAgdGV4dFJl Y3QueSA9IHJlY3QueSArIChyZWN0LmhlaWdodCAtIGgpLy8yCisrICAgICAgICAgdGV4dFJlY3Qu d2lkdGggPSByZWN0LndpZHRoIC0gMiAqIG5QYWRkaW5nCisrIAorKyAgICAgICAgIGlmIGJtcC5J c09rKCkgYW5kIG5vdCBzZWxmLkhhc0FHV0ZsYWcoSU5CX1NIT1dfT05MWV9URVhUKToKKytAQCAt MjA4Niw3ICsyMDg2LDcgQEAgZGVmIERyYXdMYWJlbChzZWxmLCBkYywgcmVjdCwgdGV4dCwgYm1w LCBpbWdJbmZvLCBvcmllbnRhdGlvbkxlZnQsIGltZ0lkeCwgc2VsZWMKKysgCisrICAgICAgICAg ICAgIGltZ1JlY3QueCArPSBuUGFkZGluZworKyAgICAgICAgICAgICBpbWdSZWN0LndpZHRoID0g Ym1wLkdldFdpZHRoKCkKKystICAgICAgICAgICAgaW1nUmVjdC55ID0gcmVjdC55ICsgKHJlY3Qu aGVpZ2h0IC0gYm1wLkdldEhlaWdodCgpKS8yCisrKyAgICAgICAgICAgIGltZ1JlY3QueSA9IHJl Y3QueSArIChyZWN0LmhlaWdodCAtIGJtcC5HZXRIZWlnaHQoKSkvLzIKKysgICAgICAgICAgICAg aW1nUmVjdC5oZWlnaHQgPSBibXAuR2V0SGVpZ2h0KCkKKysgCisrICAgICAgICAgIyBEcmF3IGJv dW5kaW5nIHJlY3RhbmdsZQorK0BAIC0yNDk2LDcgKzI0OTYsNyBAQCBkZWYgUmVzaXplVGFiQXJl YShzZWxmKToKKysgICAgICAgICAgICAgZGMgPSB3eC5NZW1vcnlEQygpCisrICAgICAgICAgICAg IGRjLlNlbGVjdE9iamVjdCh3eC5CaXRtYXAoMSwgMSkpCisrICAgICAgICAgICAgIGZvbnQgPSB3 eC5TeXN0ZW1TZXR0aW5ncy5HZXRGb250KHd4LlNZU19ERUZBVUxUX0dVSV9GT05UKQorKy0gICAg ICAgICAgICBmb250LlNldFBvaW50U2l6ZShmb250LkdldFBvaW50U2l6ZSgpKnNlbGYuX2ZvbnRT aXplTXVsdGlwbGUpCisrKyAgICAgICAgICAgIGZvbnQuU2V0UG9pbnRTaXplKGludChmb250Lkdl dFBvaW50U2l6ZSgpKnNlbGYuX2ZvbnRTaXplTXVsdGlwbGUpKQorKyAgICAgICAgICAgICBpZiBz ZWxmLkdldEZvbnRCb2xkKCkgb3IgYWd3U3R5bGUgJiBJTkJfQk9MRF9UQUJfU0VMRUNUSU9OOgor KyAgICAgICAgICAgICAgICAgZm9udC5TZXRXZWlnaHQod3guRk9OVFdFSUdIVF9CT0xEKQorKyAg ICAgICAgICAgICBkYy5TZXRGb250KGZvbnQpCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvcGVh a21ldGVyLnB5IGIvd3gvbGliL2Fndy9wZWFrbWV0ZXIucHkKKytpbmRleCAwNTVkYmVmODEuLmE1 Zjg4YTlkNSAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3BlYWttZXRlci5weQorKysrKyBiL3d4 L2xpYi9hZ3cvcGVha21ldGVyLnB5CisrQEAgLTc4NCw3ICs3ODQsNyBAQCBkZWYgRHJhd0hvcnpC YW5kKHNlbGYsIGRjLCByZWN0KToKKysgICAgICAgICAgICAgICAgIG1heFdpZHRoID0gc2l6ZS54 KmhvcnpCYW5kcworKyAgICAgICAgICAgICAgICAgcG9pbnRzID0gW3d4LlBvaW50KCkgZm9yIGkg aW4gcmFuZ2UoMildCisrICAgICAgICAgICAgICAgICBwb2ludHNbMF0ueSA9IHJlY3RQcmV2Lkdl dFRvcFJpZ2h0KCkueSAtIHlEZWNhbAorKy0gICAgICAgICAgICAgICAgcG9pbnRzWzBdLnggPSBy ZWN0UHJldi5HZXRCb3R0b21MZWZ0KCkueCArIHNlbGYuX21ldGVyRGF0YVt2ZXJ0XS5fZmFsbG9m ZiptYXhXaWR0aC9zZWxmLl9tYXhWYWx1ZQorKysgICAgICAgICAgICAgICAgcG9pbnRzWzBdLngg PSByZWN0UHJldi5HZXRCb3R0b21MZWZ0KCkueCArIHNlbGYuX21ldGVyRGF0YVt2ZXJ0XS5fZmFs bG9mZiptYXhXaWR0aC8vc2VsZi5fbWF4VmFsdWUKKysgICAgICAgICAgICAgICAgIHBvaW50c1sx XS55ID0gcmVjdFByZXYuR2V0Qm90dG9tTGVmdCgpLnkgKyB5RGVjYWwKKysgICAgICAgICAgICAg ICAgIHBvaW50c1sxXS54ID0gcG9pbnRzWzBdLngKKysgICAgICAgICAgICAgICAgIGRjLlNldFBl bihwZW4pCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvcHlnYXVnZS5weSBiL3d4L2xpYi9hZ3cv cHlnYXVnZS5weQorK2luZGV4IGJhYjQ1OWEzYS4uYjg2NTQ0MzZhIDEwMDY0NAorKy0tLSBhL3d4 L2xpYi9hZ3cvcHlnYXVnZS5weQorKysrKyBiL3d4L2xpYi9hZ3cvcHlnYXVnZS5weQorK0BAIC0z NDQsNyArMzQ0LDcgQEAgZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQpOgorKyAgICAgICAgICAgICAg ICAgYzEsYzIgPSBncmFkaWVudAorKyAgICAgICAgICAgICAgICAgdyA9IHJlY3Qud2lkdGggKiAo ZmxvYXQoc2VsZi5fdmFsdWVTb3J0ZWRbaV0pIC8gc2VsZi5fcmFuZ2UpCisrICAgICAgICAgICAg ICAgICByID0gY29weS5jb3B5KHJlY3QpCisrLSAgICAgICAgICAgICAgICByLndpZHRoID0gdwor KysgICAgICAgICAgICAgICAgci53aWR0aCA9IGludCh3KQorKyAgICAgICAgICAgICAgICAgZGMu R3JhZGllbnRGaWxsTGluZWFyKHIsIGMxLCBjMiwgd3guRUFTVCkKKysgICAgICAgICBlbHNlOgor KyAgICAgICAgICAgICBmb3IgaSwgY29sb3VyIGluIGVudW1lcmF0ZShzZWxmLl9iYXJDb2xvdXJT b3J0ZWQpOgorK0BAIC0zNTIsNyArMzUyLDcgQEAgZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQpOgor KyAgICAgICAgICAgICAgICAgZGMuU2V0UGVuKHd4LlBlbihjb2xvdXIpKQorKyAgICAgICAgICAg ICAgICAgdyA9IHJlY3Qud2lkdGggKiAoZmxvYXQoc2VsZi5fdmFsdWVTb3J0ZWRbaV0pIC8gc2Vs Zi5fcmFuZ2UpCisrICAgICAgICAgICAgICAgICByID0gY29weS5jb3B5KHJlY3QpCisrLSAgICAg ICAgICAgICAgICByLndpZHRoID0gdworKysgICAgICAgICAgICAgICAgci53aWR0aCA9IGludCh3 KQorKyAgICAgICAgICAgICAgICAgZGMuRHJhd1JlY3RhbmdsZShyKQorKyAKKysgCisrZGlmZiAt LWdpdCBhL3d4L2xpYi9hZ3cvcmliYm9uL2FydF9hdWkucHkgYi93eC9saWIvYWd3L3JpYmJvbi9h cnRfYXVpLnB5CisraW5kZXggYTFkMjU1ODQzLi4zMWZlZGY0ODcgMTAwNjQ0CisrLS0tIGEvd3gv bGliL2Fndy9yaWJib24vYXJ0X2F1aS5weQorKysrKyBiL3d4L2xpYi9hZ3cvcmliYm9uL2FydF9h dWkucHkKKytAQCAtMzkwLDcgKzM5MCw3IEBAIGRlZiBEcmF3VGFiKHNlbGYsIGRjLCB3bmQsIHRh Yik6CisrICAgICAgICAgICAgIGdyYWRfcmVjdCA9IHd4LlJlY3QoKnRhYi5yZWN0KQorKyAgICAg ICAgICAgICBncmFkX3JlY3QuaGVpZ2h0IC09IDQKKysgICAgICAgICAgICAgZ3JhZF9yZWN0Lndp ZHRoIC09IDEKKystICAgICAgICAgICAgZ3JhZF9yZWN0LmhlaWdodCAvPSAyCisrKyAgICAgICAg ICAgIGdyYWRfcmVjdC5oZWlnaHQgLy89IDIKKysgICAgICAgICAgICAgZ3JhZF9yZWN0LnkgPSBn cmFkX3JlY3QueSArIHRhYi5yZWN0LmhlaWdodCAtIGdyYWRfcmVjdC5oZWlnaHQgLSAxCisrICAg ICAgICAgICAgIGRjLlNldEJydXNoKHNlbGYuX3RhYl9hY3RpdmVfdG9wX2JhY2tncm91bmRfYnJ1 c2gpCisrICAgICAgICAgICAgIGRjLkRyYXdSZWN0YW5nbGUodGFiLnJlY3QueCwgdGFiLnJlY3Qu eSArIDMsIHRhYi5yZWN0LndpZHRoIC0gMSwgZ3JhZF9yZWN0LnkgLSB0YWIucmVjdC55IC0gMykK KytAQCAtNDAxLDcgKzQwMSw3IEBAIGRlZiBEcmF3VGFiKHNlbGYsIGRjLCB3bmQsIHRhYik6Cisr ICAgICAgICAgICAgIGJ0bV9yZWN0ID0gd3guUmVjdCgqdGFiLnJlY3QpCisrICAgICAgICAgICAg IGJ0bV9yZWN0LmhlaWdodCAtPSA0CisrICAgICAgICAgICAgIGJ0bV9yZWN0LndpZHRoIC09IDEK KystICAgICAgICAgICAgYnRtX3JlY3QuaGVpZ2h0IC89IDIKKysrICAgICAgICAgICAgYnRtX3Jl Y3QuaGVpZ2h0IC8vPSAyCisrICAgICAgICAgICAgIGJ0bV9yZWN0LnkgPSBidG1fcmVjdC55ICsg dGFiLnJlY3QuaGVpZ2h0IC0gYnRtX3JlY3QuaGVpZ2h0IC0gMQorKyAgICAgICAgICAgICBkYy5T ZXRCcnVzaChzZWxmLl90YWJfaG92ZXJfYmFja2dyb3VuZF9icnVzaCkKKysgICAgICAgICAgICAg ZGMuRHJhd1JlY3RhbmdsZShidG1fcmVjdC54LCBidG1fcmVjdC55LCBidG1fcmVjdC53aWR0aCwg YnRtX3JlY3QuaGVpZ2h0KQorK0BAIC00MzQsOCArNDM0LDggQEAgZGVmIERyYXdUYWIoc2VsZiwg ZGMsIHduZCwgdGFiKToKKysgICAgICAgICAgICAgaWNvbiA9IHRhYi5wYWdlLkdldEljb24oKQor KyAgICAgICAgICAgICBpZiBzZWxmLl9mbGFncyAmIFJJQkJPTl9CQVJfU0hPV19QQUdFX0xBQkVM UyA9PSAwOgorKyAgICAgICAgICAgICAgICAgaWYgaWNvbi5Jc09rKCk6CisrLSAgICAgICAgICAg ICAgICAgICAgeCA9IHRhYi5yZWN0LnggKyAodGFiLnJlY3Qud2lkdGggLSBpY29uLkdldFdpZHRo KCkpIC8gMgorKy0gICAgICAgICAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAoaWNvbiwgeCwgdGFi LnJlY3QueSArIDEgKyAodGFiLnJlY3QuaGVpZ2h0IC0gMSAtIGljb24uR2V0SGVpZ2h0KCkpIC8g MiwgVHJ1ZSkKKysrICAgICAgICAgICAgICAgICAgICB4ID0gdGFiLnJlY3QueCArICh0YWIucmVj dC53aWR0aCAtIGljb24uR2V0V2lkdGgoKSkgLy8gMgorKysgICAgICAgICAgICAgICAgICAgIGRj LkRyYXdCaXRtYXAoaWNvbiwgeCwgdGFiLnJlY3QueSArIDEgKyAodGFiLnJlY3QuaGVpZ2h0IC0g MSAtIGljb24uR2V0SGVpZ2h0KCkpIC8vIDIsIFRydWUpCisrIAorKyAgICAgICAgIGlmIHNlbGYu X2ZsYWdzICYgUklCQk9OX0JBUl9TSE9XX1BBR0VfTEFCRUxTOgorKyAgICAgICAgICAgICBsYWJl bCA9IHRhYi5wYWdlLkdldExhYmVsKCkKKytAQCAtNDUwLDcgKzQ1MCw3IEBAIGRlZiBEcmF3VGFi KHNlbGYsIGRjLCB3bmQsIHRhYik6CisrICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IGlj b24uR2V0V2lkdGgoKSArIDIKKysgCisrICAgICAgICAgICAgICAgICB0ZXh0X3dpZHRoLCB0ZXh0 X2hlaWdodCA9IGRjLkdldFRleHRFeHRlbnQobGFiZWwpCisrLSAgICAgICAgICAgICAgICB4ID0g KHRhYi5yZWN0LndpZHRoIC0gMiAtIHRleHRfd2lkdGggLSBvZmZzZXQpIC8gMgorKysgICAgICAg ICAgICAgICAgeCA9ICh0YWIucmVjdC53aWR0aCAtIDIgLSB0ZXh0X3dpZHRoIC0gb2Zmc2V0KSAv LyAyCisrICAgICAgICAgICAgICAgICBpZiB4ID4gODoKKysgICAgICAgICAgICAgICAgICAgICB4 ID0gOAorKyAgICAgICAgICAgICAgICAgZWxpZiB4IDwgMToKKytAQCAtNDU4LDcgKzQ1OCw3IEBA IGRlZiBEcmF3VGFiKHNlbGYsIGRjLCB3bmQsIHRhYik6CisrIAorKyAgICAgICAgICAgICAgICAg d2lkdGggPSB0YWIucmVjdC53aWR0aCAtIHggLSAyCisrICAgICAgICAgICAgICAgICB4ICs9IHRh Yi5yZWN0LnggKyBvZmZzZXQKKystICAgICAgICAgICAgICAgIHkgPSB0YWIucmVjdC55ICsgKHRh Yi5yZWN0LmhlaWdodCAtIHRleHRfaGVpZ2h0KSAvIDIKKysrICAgICAgICAgICAgICAgIHkgPSB0 YWIucmVjdC55ICsgKHRhYi5yZWN0LmhlaWdodCAtIHRleHRfaGVpZ2h0KSAvLyAyCisrIAorKyAg ICAgICAgICAgICAgICAgaWYgaWNvbi5Jc09rKCk6CisrICAgICAgICAgICAgICAgICAgICAgZGMu RHJhd0JpdG1hcChpY29uLCB4IC0gb2Zmc2V0LCB0YWIucmVjdC55ICsgKHRhYi5yZWN0LmhlaWdo dCAtIGljb24uR2V0SGVpZ2h0KCkpIC8gMiwgVHJ1ZSkKKytAQCAtODkyLDggKzg5Miw4IEBAIGRl ZiBEcmF3TWluaW1pc2VkUGFuZWwoc2VsZiwgZGMsIHduZCwgcmVjdCwgYml0bWFwKToKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BhZ2VfaG92ZXJfYmFja2dyb3Vu ZF9ncmFkaWVudF9jb2xvdXIsIHd4LlNPVVRIKQorKyAKKysgICAgICAgICBpZiBiaXRtYXAuSXNP aygpOgorKy0gICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGJpdG1hcCwgcHJldmlldy54ICsgKHBy ZXZpZXcud2lkdGggLSBiaXRtYXAuR2V0V2lkdGgoKSkgLyAyLAorKy0gICAgICAgICAgICAgICAg ICAgICAgICAgIHByZXZpZXcueSArIChwcmV2aWV3LmhlaWdodCAtIGJpdG1hcC5HZXRIZWlnaHQo KSkgLyAyLCBUcnVlKQorKysgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGJpdG1hcCwgcHJldmll dy54ICsgKHByZXZpZXcud2lkdGggLSBiaXRtYXAuR2V0V2lkdGgoKSkgLy8gMiwKKysrICAgICAg ICAgICAgICAgICAgICAgICAgICBwcmV2aWV3LnkgKyAocHJldmlldy5oZWlnaHQgLSBiaXRtYXAu R2V0SGVpZ2h0KCkpIC8vIDIsIFRydWUpCisrIAorKyAKKysgICAgIGRlZiBEcmF3UGFydGlhbFBh bmVsQmFja2dyb3VuZChzZWxmLCBkYywgd25kLCByZWN0KToKKytAQCAtMTAyNCw3ICsxMDI0LDcg QEAgZGVmIERyYXdHYWxsZXJ5QnV0dG9uKHNlbGYsIGRjLCByZWN0LCBzdGF0ZSwgYml0bWFwcyk6 CisrICAgICAgICAgICAgIGRjLkRyYXdSZWN0YW5nbGUocmVkdWNlZF9yZWN0LngsIHJlZHVjZWRf cmVjdC55LCByZWR1Y2VkX3JlY3Qud2lkdGgsIHJlZHVjZWRfcmVjdC5oZWlnaHQpCisrICAgICAg ICAgICAgIGJ0bl9iaXRtYXAgPSBiaXRtYXBzWzNdCisrIAorKy0gICAgICAgIGRjLkRyYXdCaXRt YXAoYnRuX2JpdG1hcCwgcmVkdWNlZF9yZWN0LnggKyByZWR1Y2VkX3JlY3Qud2lkdGggLyAyIC0g MiwgKHJlY3QueSArIHJlY3QuaGVpZ2h0IC8gMikgLSAyLCBUcnVlKQorKysgICAgICAgIGRjLkRy YXdCaXRtYXAoYnRuX2JpdG1hcCwgcmVkdWNlZF9yZWN0LnggKyByZWR1Y2VkX3JlY3Qud2lkdGgg Ly8gMiAtIDIsIChyZWN0LnkgKyByZWN0LmhlaWdodCAvLyAyKSAtIDIsIFRydWUpCisrIAorKyAK KysgICAgIGRlZiBEcmF3R2FsbGVyeUl0ZW1CYWNrZ3JvdW5kKHNlbGYsIGRjLCB3bmQsIHJlY3Qs IGl0ZW0pOgorK0BAIC0xMjc3LDcgKzEyNzcsNyBAQCBkZWYgRHJhd1Rvb2woc2VsZiwgZGMsIHdu ZCwgcmVjdCwgYml0bWFwLCBraW5kLCBzdGF0ZSk6CisrICAgICAgICAgICAgIGlmIGlzX3NwbGl0 X2h5YnJpZDoKKysgICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKHJlY3QueCArIGF2YWlsX3dp ZHRoICsgMSwgcmVjdC55LCByZWN0LnggKyBhdmFpbF93aWR0aCArIDEsIHJlY3QueSArIHJlY3Qu aGVpZ2h0KQorKyAKKystICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChzZWxmLl90b29sYmFyX2Ry b3BfYml0bWFwLCBiZ19yZWN0LnggKyBhdmFpbF93aWR0aCArIDIsIGJnX3JlY3QueSArIChiZ19y ZWN0LmhlaWdodCAvIDIpIC0gMiwgVHJ1ZSkKKysrICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChz ZWxmLl90b29sYmFyX2Ryb3BfYml0bWFwLCBiZ19yZWN0LnggKyBhdmFpbF93aWR0aCArIDIsIGJn X3JlY3QueSArIChiZ19yZWN0LmhlaWdodCAvLyAyKSAtIDIsIFRydWUpCisrIAorKy0gICAgICAg IGRjLkRyYXdCaXRtYXAoYml0bWFwLCBiZ19yZWN0LnggKyAoYXZhaWxfd2lkdGggLSBiaXRtYXAu R2V0V2lkdGgoKSkgLyAyLCBiZ19yZWN0LnkgKyAoYmdfcmVjdC5oZWlnaHQgLSBiaXRtYXAuR2V0 SGVpZ2h0KCkpIC8gMiwgVHJ1ZSkKKysrICAgICAgICBkYy5EcmF3Qml0bWFwKGJpdG1hcCwgYmdf cmVjdC54ICsgKGF2YWlsX3dpZHRoIC0gYml0bWFwLkdldFdpZHRoKCkpIC8vIDIsIGJnX3JlY3Qu eSArIChiZ19yZWN0LmhlaWdodCAtIGJpdG1hcC5HZXRIZWlnaHQoKSkgLy8gMiwgVHJ1ZSkKKysg CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvcmliYm9uL2FydF9pbnRlcm5hbC5weSBiL3d4L2xp Yi9hZ3cvcmliYm9uL2FydF9pbnRlcm5hbC5weQorK2luZGV4IDRhOGRjN2NlMC4uNzhlOGYzZmU0 IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvcmliYm9uL2FydF9pbnRlcm5hbC5weQorKysrKyBi L3d4L2xpYi9hZ3cvcmliYm9uL2FydF9pbnRlcm5hbC5weQorK0BAIC0zMiw5ICszMiw5IEBAIGRl ZiBSaWJib25JbnRlcnBvbGF0ZUNvbG91cihzdGFydF9jb2xvdXIsIGVuZF9jb2xvdXIsIHBvc2l0 aW9uLCBzdGFydF9wb3NpdGlvbiwKKysgICAgIHIgPSBlbmRfY29sb3VyLlJlZCgpIC0gc3RhcnRf Y29sb3VyLlJlZCgpCisrICAgICBnID0gZW5kX2NvbG91ci5HcmVlbigpIC0gc3RhcnRfY29sb3Vy LkdyZWVuKCkKKysgICAgIGIgPSBlbmRfY29sb3VyLkJsdWUoKSAtIHN0YXJ0X2NvbG91ci5CbHVl KCkKKystICAgIHIgPSBzdGFydF9jb2xvdXIuUmVkKCkgICArICgoKHIgKiBwb3NpdGlvbiAqIDEw MCkgLyBlbmRfcG9zaXRpb24pIC8gMTAwKQorKy0gICAgZyA9IHN0YXJ0X2NvbG91ci5HcmVlbigp ICsgKCgoZyAqIHBvc2l0aW9uICogMTAwKSAvIGVuZF9wb3NpdGlvbikgLyAxMDApCisrLSAgICBi ID0gc3RhcnRfY29sb3VyLkJsdWUoKSAgKyAoKChiICogcG9zaXRpb24gKiAxMDApIC8gZW5kX3Bv c2l0aW9uKSAvIDEwMCkKKysrICAgIHIgPSBzdGFydF9jb2xvdXIuUmVkKCkgICArICgoKHIgKiBw b3NpdGlvbiAqIDEwMCkgLy8gZW5kX3Bvc2l0aW9uKSAvLyAxMDApCisrKyAgICBnID0gc3RhcnRf Y29sb3VyLkdyZWVuKCkgKyAoKChnICogcG9zaXRpb24gKiAxMDApIC8vIGVuZF9wb3NpdGlvbikg Ly8gMTAwKQorKysgICAgYiA9IHN0YXJ0X2NvbG91ci5CbHVlKCkgICsgKCgoYiAqIHBvc2l0aW9u ICogMTAwKSAvLyBlbmRfcG9zaXRpb24pIC8vIDEwMCkKKysgCisrICAgICByZXR1cm4gd3guQ29s b3VyKHIsIGcsIGIpCisrIAorK0BAIC02MSw5ICs2MSw5IEBAIGRlZiBSaWJib25EcmF3UGFyYWxs ZWxHcmFkaWVudExpbmVzKGRjLCBubGluZXMsIGxpbmVfb3JpZ2lucywgc3RlcHgsIHN0ZXB5LCBu dW1zCisrICAgICBiZCA9IGVuZF9jb2xvdXIuQmx1ZSgpIC0gc3RhcnRfY29sb3VyLkJsdWUoKQor KyAKKysgICAgIGZvciBzdGVwIGluIHJhbmdlKG51bXN0ZXBzKToKKystICAgICAgICByID0gc3Rh cnRfY29sb3VyLlJlZCgpICsgKCgoc3RlcCpyZCoxMDApL251bXN0ZXBzKS8xMDApCisrLSAgICAg ICAgZyA9IHN0YXJ0X2NvbG91ci5HcmVlbigpICsgKCgoc3RlcCpnZCoxMDApL251bXN0ZXBzKS8x MDApCisrLSAgICAgICAgYiA9IHN0YXJ0X2NvbG91ci5CbHVlKCkgKyAoKChzdGVwKmJkKjEwMCkv bnVtc3RlcHMpLzEwMCkKKysrICAgICAgICByID0gc3RhcnRfY29sb3VyLlJlZCgpICsgKCgoc3Rl cCpyZCoxMDApLy9udW1zdGVwcykvLzEwMCkKKysrICAgICAgICBnID0gc3RhcnRfY29sb3VyLkdy ZWVuKCkgKyAoKChzdGVwKmdkKjEwMCkvL251bXN0ZXBzKS8vMTAwKQorKysgICAgICAgIGIgPSBz dGFydF9jb2xvdXIuQmx1ZSgpICsgKCgoc3RlcCpiZCoxMDApLy9udW1zdGVwcykvLzEwMCkKKysg CisrICAgICAgICAgcCA9IHd4LlBlbih3eC5Db2xvdXIociwgZywgYikpCisrICAgICAgICAgZGMu U2V0UGVuKHApCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvcmliYm9uL2FydF9tc3cucHkgYi93 eC9saWIvYWd3L3JpYmJvbi9hcnRfbXN3LnB5CisraW5kZXggZTczMTdkNTliLi4wMGMzZGZlMmIg MTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9yaWJib24vYXJ0X21zdy5weQorKysrKyBiL3d4L2xp Yi9hZ3cvcmliYm9uL2FydF9tc3cucHkKKytAQCAtOTgyLDcgKzk4Miw3IEBAIGRlZiBEcmF3VGFi KHNlbGYsIGRjLCB3bmQsIHRhYik6CisrICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLndpZHRo IC09IDQKKysgICAgICAgICAgICAgICAgIGJhY2tncm91bmQuaGVpZ2h0IC09IDMKKysgICAgICAg ICAgICAgICAgIGggPSBiYWNrZ3JvdW5kLmhlaWdodAorKy0gICAgICAgICAgICAgICAgYmFja2dy b3VuZC5oZWlnaHQgLz0gMgorKysgICAgICAgICAgICAgICAgYmFja2dyb3VuZC5oZWlnaHQgLy89 IDIKKysgICAgICAgICAgICAgICAgIGRjLkdyYWRpZW50RmlsbExpbmVhcihiYWNrZ3JvdW5kLCBz ZWxmLl90YWJfaG92ZXJfYmFja2dyb3VuZF90b3BfY29sb3VyLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3RhYl9ob3Zlcl9iYWNrZ3JvdW5kX3RvcF9ncmFk aWVudF9jb2xvdXIsIHd4LlNPVVRIKQorKyAKKytAQCAtMTAyNCw5ICsxMDI0LDkgQEAgZGVmIERy YXdUYWIoc2VsZiwgZGMsIHduZCwgdGFiKToKKysgICAgICAgICAgICAgaWYgaWNvbi5Jc09rKCk6 CisrICAgICAgICAgICAgICAgICB4ID0gdGFiLnJlY3QueCArIDQKKysgICAgICAgICAgICAgICAg IGlmIHNlbGYuX2ZsYWdzICYgUklCQk9OX0JBUl9TSE9XX1BBR0VfTEFCRUxTID09IDA6CisrLSAg ICAgICAgICAgICAgICAgICAgeCA9IHRhYi5yZWN0LnggKyAodGFiLnJlY3Qud2lkdGggLSBpY29u LkdldFdpZHRoKCkpIC8gMgorKysgICAgICAgICAgICAgICAgICAgIHggPSB0YWIucmVjdC54ICsg KHRhYi5yZWN0LndpZHRoIC0gaWNvbi5HZXRXaWR0aCgpKSAvLyAyCisrIAorKy0gICAgICAgICAg ICAgICAgZGMuRHJhd0JpdG1hcChpY29uLCB4LCB0YWIucmVjdC55ICsgMSArICh0YWIucmVjdC5o ZWlnaHQgLSAxIC0gaWNvbi5HZXRIZWlnaHQoKSkgLyAyLCBUcnVlKQorKysgICAgICAgICAgICAg ICAgZGMuRHJhd0JpdG1hcChpY29uLCB4LCB0YWIucmVjdC55ICsgMSArICh0YWIucmVjdC5oZWln aHQgLSAxIC0gaWNvbi5HZXRIZWlnaHQoKSkgLy8gMiwgVHJ1ZSkKKysgCisrICAgICAgICAgaWYg c2VsZi5fZmxhZ3MgJiBSSUJCT05fQkFSX1NIT1dfUEFHRV9MQUJFTFM6CisrICAgICAgICAgICAg IGxhYmVsID0gdGFiLnBhZ2UuR2V0TGFiZWwoKQorK0BAIC0xMDQzLDEzICsxMDQzLDEzIEBAIGRl ZiBEcmF3VGFiKHNlbGYsIGRjLCB3bmQsIHRhYik6CisrICAgICAgICAgICAgICAgICAgICAgeCAr PSAzICsgdGFiLnBhZ2UuR2V0SWNvbigpLkdldFdpZHRoKCkKKysgICAgICAgICAgICAgICAgICAg ICB3aWR0aCAtPSAzICsgdGFiLnBhZ2UuR2V0SWNvbigpLkdldFdpZHRoKCkKKysgCisrLSAgICAg ICAgICAgICAgICB5ID0gdGFiLnJlY3QueSArICh0YWIucmVjdC5oZWlnaHQgLSB0ZXh0X2hlaWdo dCkgLyAyCisrKyAgICAgICAgICAgICAgICB5ID0gdGFiLnJlY3QueSArICh0YWIucmVjdC5oZWln aHQgLSB0ZXh0X2hlaWdodCkgLy8gMgorKyAKKysgICAgICAgICAgICAgICAgIGlmIHdpZHRoIDw9 IHRleHRfd2lkdGg6CisrICAgICAgICAgICAgICAgICAgICAgZGMuU2V0Q2xpcHBpbmdSZWdpb24o eCwgdGFiLnJlY3QueSwgd2lkdGgsIHRhYi5yZWN0LmhlaWdodCkKKysgICAgICAgICAgICAgICAg ICAgICBkYy5EcmF3VGV4dChsYWJlbCwgeCwgeSkKKysgICAgICAgICAgICAgICAgIGVsc2U6Cisr LSAgICAgICAgICAgICAgICAgICAgZGMuRHJhd1RleHQobGFiZWwsIHggKyAod2lkdGggLSB0ZXh0 X3dpZHRoKSAvIDIgKyAxLCB5KQorKysgICAgICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0KGxh YmVsLCB4ICsgKHdpZHRoIC0gdGV4dF93aWR0aCkgLy8gMiArIDEsIHkpCisrIAorKyAKKysgICAg IGRlZiBEcmF3VGFiU2VwYXJhdG9yKHNlbGYsIGRjLCB3bmQsIHJlY3QsIHZpc2liaWxpdHkpOgor K0BAIC0xMDkzLDcgKzEwOTMsNyBAQCBkZWYgUmVhbGx5RHJhd1RhYlNlcGFyYXRvcihzZWxmLCB3 bmQsIHJlY3QsIHZpc2liaWxpdHkpOgorKyAgICAgICAgIGRjID0gd3guTWVtb3J5REMoc2VsZi5f Y2FjaGVkX3RhYl9zZXBhcmF0b3IpCisrICAgICAgICAgc2VsZi5EcmF3VGFiQ3RybEJhY2tncm91 bmQoZGMsIHduZCwgcmVjdCkKKysgCisrLSAgICAgICAgeCA9IHJlY3QueCArIHJlY3Qud2lkdGgg LyAyCisrKyAgICAgICAgeCA9IHJlY3QueCArIHJlY3Qud2lkdGggLy8gMgorKyAgICAgICAgIGgg PSBmbG9hdChyZWN0LmhlaWdodCAtIDEpCisrIAorKyAgICAgICAgIHIxID0gc2VsZi5fdGFiX2N0 cmxfYmFja2dyb3VuZF9icnVzaC5HZXRDb2xvdXIoKS5SZWQoKSAqICgxLjAgLSB2aXNpYmlsaXR5 KSArIDAuNQorK0BAIC0xMTQ2LDcgKzExNDYsNyBAQCBkZWYgRHJhd1BhcnRpYWxQYWdlQmFja2dy b3VuZDEoc2VsZiwgZGMsIHduZCwgcmVjdCwgcGFnZSwgb2Zmc2V0LCBob3ZlcmVkPUZhbHNlKQor KyAKKysgICAgICAgICAjIHVwcGVyX3JlY3QsIGxvd2VyX3JlY3QsIHBhaW50X3JlY3QgYXJlIGFs bCBpbiBwYWdlIGNvLW9yZGluYXRlcworKyAgICAgICAgIHVwcGVyX3JlY3QgPSB3eC5SZWN0KCpi YWNrZ3JvdW5kKQorKy0gICAgICAgIHVwcGVyX3JlY3QuaGVpZ2h0IC89IDUKKysrICAgICAgICB1 cHBlcl9yZWN0LmhlaWdodCAvLz0gNQorKyAKKysgICAgICAgICBsb3dlcl9yZWN0ID0gd3guUmVj dCgqYmFja2dyb3VuZCkKKysgICAgICAgICBsb3dlcl9yZWN0LnkgKz0gdXBwZXJfcmVjdC5oZWln aHQKKytAQCAtMTIyOSw3ICsxMjI5LDcgQEAgZGVmIERyYXdQYWdlQmFja2dyb3VuZChzZWxmLCBk Yywgd25kLCByZWN0KToKKysgICAgICAgICBiYWNrZ3JvdW5kLndpZHRoIC09IDQKKysgICAgICAg ICBiYWNrZ3JvdW5kLmhlaWdodCAtPSAyCisrIAorKy0gICAgICAgIGJhY2tncm91bmQuaGVpZ2h0 IC89IDUKKysrICAgICAgICBiYWNrZ3JvdW5kLmhlaWdodCAvLz0gNQorKyAgICAgICAgIGRjLkdy YWRpZW50RmlsbExpbmVhcihiYWNrZ3JvdW5kLCBzZWxmLl9wYWdlX2JhY2tncm91bmRfdG9wX2Nv bG91ciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFnZV9iYWNrZ3Jv dW5kX3RvcF9ncmFkaWVudF9jb2xvdXIsIHd4LlNPVVRIKQorKyAKKytAQCAtMTQ5MywxMCArMTQ5 MywxMCBAQCBkZWYgRHJhd1BhbmVsQmFja2dyb3VuZChzZWxmLCBkYywgd25kLCByZWN0KToKKysg CisrICAgICAgICAgaWYgY2xpcF9sYWJlbDoKKysgICAgICAgICAgICAgY2xpcCA9IHd4LkRDQ2xp cHBlcihkYywgbGFiZWxfcmVjdCkKKystICAgICAgICAgICAgZGMuRHJhd1RleHQobGFiZWwsIGxh YmVsX3JlY3QueCwgbGFiZWxfcmVjdC55ICsgKGxhYmVsX3JlY3QuR2V0SGVpZ2h0KCkgLSBsYWJl bF9zaXplLkdldEhlaWdodCgpKSAvIDIpCisrKyAgICAgICAgICAgIGRjLkRyYXdUZXh0KGxhYmVs LCBsYWJlbF9yZWN0LngsIGxhYmVsX3JlY3QueSArIChsYWJlbF9yZWN0LkdldEhlaWdodCgpIC0g bGFiZWxfc2l6ZS5HZXRIZWlnaHQoKSkgLy8gMikKKysgICAgICAgICBlbHNlOgorKy0gICAgICAg ICAgICBkYy5EcmF3VGV4dChsYWJlbCwgbGFiZWxfcmVjdC54ICsgKGxhYmVsX3JlY3QuR2V0V2lk dGgoKSAtIGxhYmVsX3NpemUuR2V0V2lkdGgoKSkgLyAyLAorKy0gICAgICAgICAgICAgICAgICAg ICAgICBsYWJlbF9yZWN0LnkgKyAobGFiZWxfcmVjdC5HZXRIZWlnaHQoKSAtIGxhYmVsX3NpemUu R2V0SGVpZ2h0KCkpIC8gMikKKysrICAgICAgICAgICAgZGMuRHJhd1RleHQobGFiZWwsIGxhYmVs X3JlY3QueCArIChsYWJlbF9yZWN0LkdldFdpZHRoKCkgLSBsYWJlbF9zaXplLkdldFdpZHRoKCkp IC8vIDIsCisrKyAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsX3JlY3QueSArIChsYWJlbF9y ZWN0LkdldEhlaWdodCgpIC0gbGFiZWxfc2l6ZS5HZXRIZWlnaHQoKSkgLy8gMikKKysgCisrICAg ICAgICAgaWYgaGFzX2V4dF9idXR0b246CisrICAgICAgICAgICAgIGlmIHduZC5Jc0V4dEJ1dHRv bkhvdmVyZWQoKToKKytAQCAtMTU3Nyw3ICsxNTc3LDcgQEAgZGVmIERyYXdHYWxsZXJ5QmFja2dy b3VuZENvbW1vbihzZWxmLCBkYywgd25kLCByZWN0KToKKysgICAgICAgICAgICAgIyBEaXZpZGVy IGJldHdlZW4gaXRlbXMgYW5kIGJ1dHRvbnMKKysgICAgICAgICAgICAgZGMuRHJhd0xpbmUocmVj dC54LCByZWN0LnkgKyByZWN0LmhlaWdodCAtIDE1LCByZWN0LnggKyByZWN0LndpZHRoLCByZWN0 LnkgKyByZWN0LmhlaWdodCAtIDE1KQorKyAKKystICAgICAgICAgICAgdXBfYnRuID0gd3guUmVj dChyZWN0LngsIHJlY3QueSArIHJlY3QuaGVpZ2h0IC0gMTUsIHJlY3Qud2lkdGggLyAzLCAxNSkK KysrICAgICAgICAgICAgdXBfYnRuID0gd3guUmVjdChyZWN0LngsIHJlY3QueSArIHJlY3QuaGVp Z2h0IC0gMTUsIHJlY3Qud2lkdGggLy8gMywgMTUpCisrICAgICAgICAgICAgIGRvd25fYnRuID0g d3guUmVjdCh1cF9idG4uR2V0UmlnaHQoKSArIDEsIHVwX2J0bi5HZXRUb3AoKSwgdXBfYnRuLkdl dFdpZHRoKCksIHVwX2J0bi5HZXRIZWlnaHQoKSkKKysgICAgICAgICAgICAgZGMuRHJhd0xpbmUo ZG93bl9idG4uR2V0TGVmdCgpLCBkb3duX2J0bi5HZXRUb3AoKSwgZG93bl9idG4uR2V0TGVmdCgp LCBkb3duX2J0bi5HZXRCb3R0b20oKSkKKysgICAgICAgICAgICAgZXh0X2J0biA9IHd4LlJlY3Qo ZG93bl9idG4uR2V0UmlnaHQoKSArIDEsIHVwX2J0bi5HZXRUb3AoKSwgcmVjdC53aWR0aCAtIHVw X2J0bi5HZXRXaWR0aCgpIC0gZG93bl9idG4uR2V0V2lkdGgoKSAtIDEsIHVwX2J0bi5HZXRIZWln aHQoKSkKKytAQCAtMTU4Nyw3ICsxNTg3LDcgQEAgZGVmIERyYXdHYWxsZXJ5QmFja2dyb3VuZENv bW1vbihzZWxmLCBkYywgd25kLCByZWN0KToKKysgICAgICAgICAgICAgIyBEaXZpZGVyIGJldHdl ZW4gaXRlbXMgYW5kIGJ1dHRvbnMKKysgICAgICAgICAgICAgZGMuRHJhd0xpbmUocmVjdC54ICsg cmVjdC53aWR0aCAtIDE1LCByZWN0LnksIHJlY3QueCArIHJlY3Qud2lkdGggLSAxNSwgcmVjdC55 ICsgcmVjdC5oZWlnaHQpCisrIAorKy0gICAgICAgICAgICB1cF9idG4gPSB3eC5SZWN0KHJlY3Qu eCArIHJlY3Qud2lkdGggLSAxNSwgcmVjdC55LCAxNSwgcmVjdC5oZWlnaHQgLyAzKQorKysgICAg ICAgICAgICB1cF9idG4gPSB3eC5SZWN0KHJlY3QueCArIHJlY3Qud2lkdGggLSAxNSwgcmVjdC55 LCAxNSwgcmVjdC5oZWlnaHQgLy8gMykKKysgICAgICAgICAgICAgZG93bl9idG4gPSB3eC5SZWN0 KHVwX2J0bi5HZXRMZWZ0KCksIHVwX2J0bi5HZXRCb3R0b20oKSArIDEsIHVwX2J0bi5HZXRXaWR0 aCgpLCB1cF9idG4uR2V0SGVpZ2h0KCkpCisrICAgICAgICAgICAgIGRjLkRyYXdMaW5lKGRvd25f YnRuLkdldExlZnQoKSwgZG93bl9idG4uR2V0VG9wKCksIGRvd25fYnRuLkdldFJpZ2h0KCksIGRv d25fYnRuLkdldFRvcCgpKQorKyAgICAgICAgICAgICBleHRfYnRuID0gd3guUmVjdCh1cF9idG4u R2V0TGVmdCgpLCBkb3duX2J0bi5HZXRCb3R0b20oKSArIDEsIHVwX2J0bi5HZXRXaWR0aCgpLCBy ZWN0LmhlaWdodCAtIHVwX2J0bi5HZXRIZWlnaHQoKSAtIGRvd25fYnRuLkdldEhlaWdodCgpIC0g MSkKKytAQCAtMTYzMywxNCArMTYzMywxNCBAQCBkZWYgRHJhd0dhbGxlcnlCdXR0b24oc2VsZiwg ZGMsIHJlY3QsIHN0YXRlLCBiaXRtYXBzKToKKysgCisrICAgICAgICAgZGMuU2V0UGVuKHd4LlRS QU5TUEFSRU5UX1BFTikKKysgICAgICAgICBkYy5TZXRCcnVzaChidG5fdG9wX2JydXNoKQorKy0g ICAgICAgIGRjLkRyYXdSZWN0YW5nbGUocmVjdC54LCByZWN0LnksIHJlY3Qud2lkdGgsIHJlY3Qu aGVpZ2h0IC8gMikKKysrICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKHJlY3QueCwgcmVjdC55LCBy ZWN0LndpZHRoLCByZWN0LmhlaWdodCAvLyAyKQorKyAKKysgICAgICAgICBsb3dlciA9IHd4LlJl Y3QoKnJlY3QpCisrLSAgICAgICAgbG93ZXIuaGVpZ2h0ID0gKGxvd2VyLmhlaWdodCArIDEpIC8g MgorKysgICAgICAgIGxvd2VyLmhlaWdodCA9IChsb3dlci5oZWlnaHQgKyAxKSAvLyAyCisrICAg ICAgICAgbG93ZXIueSArPSByZWN0LmhlaWdodCAtIGxvd2VyLmhlaWdodAorKyAgICAgICAgIGRj LkdyYWRpZW50RmlsbExpbmVhcihsb3dlciwgYnRuX2NvbG91ciwgYnRuX2dyYWRfY29sb3VyLCB3 eC5TT1VUSCkKKysgCisrLSAgICAgICAgZGMuRHJhd0JpdG1hcChidG5fYml0bWFwLCByZWN0Lngg KyByZWN0LndpZHRoIC8gMiAtIDIsIGxvd2VyLnkgLSAyLCBUcnVlKQorKysgICAgICAgIGRjLkRy YXdCaXRtYXAoYnRuX2JpdG1hcCwgcmVjdC54ICsgcmVjdC53aWR0aCAvLyAyIC0gMiwgbG93ZXIu eSAtIDIsIFRydWUpCisrIAorKyAKKysgICAgIGRlZiBEcmF3R2FsbGVyeUl0ZW1CYWNrZ3JvdW5k KHNlbGYsIGRjLCB3bmQsIHJlY3QsIGl0ZW0pOgorK0BAIC0xNjkxLDcgKzE2OTEsNyBAQCBkZWYg RHJhd0dhbGxlcnlJdGVtQmFja2dyb3VuZChzZWxmLCBkYywgd25kLCByZWN0LCBpdGVtKToKKysg ICAgICAgICB1cHBlci54ICs9IDEKKysgICAgICAgICB1cHBlci53aWR0aCAtPSAyCisrICAgICAg ICAgdXBwZXIueSArPSAxCisrLSAgICAgICAgdXBwZXIuaGVpZ2h0IC89IDMKKysrICAgICAgICB1 cHBlci5oZWlnaHQgLy89IDMKKysgICAgICAgICBkYy5TZXRQZW4od3guVFJBTlNQQVJFTlRfUEVO KQorKyAgICAgICAgIGRjLlNldEJydXNoKHRvcF9icnVzaCkKKysgICAgICAgICBkYy5EcmF3UmVj dGFuZ2xlKHVwcGVyLngsIHVwcGVyLnksIHVwcGVyLndpZHRoLCB1cHBlci5oZWlnaHQpCisrQEAg LTE3NjAsNyArMTc2MCw3IEBAIGRlZiBEcmF3TWluaW1pc2VkUGFuZWwoc2VsZiwgZGMsIHduZCwg cmVjdCwgYml0bWFwKToKKysgICAgICAgICAgICAgY2xpZW50X3JlY3QueCArPSAxCisrICAgICAg ICAgICAgIGNsaWVudF9yZWN0LndpZHRoIC09IDIKKysgICAgICAgICAgICAgY2xpZW50X3JlY3Qu eSArPSAxCisrLSAgICAgICAgICAgIGNsaWVudF9yZWN0LmhlaWdodCA9IChyZWN0LnkgKyByZWN0 LmhlaWdodCAvIDUpIC0gY2xpZW50X3JlY3QueAorKysgICAgICAgICAgICBjbGllbnRfcmVjdC5o ZWlnaHQgPSAocmVjdC55ICsgcmVjdC5oZWlnaHQgLy8gNSkgLSBjbGllbnRfcmVjdC54CisrICAg ICAgICAgICAgIGRjLkdyYWRpZW50RmlsbExpbmVhcihjbGllbnRfcmVjdCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BhbmVsX2FjdGl2ZV9iYWNrZ3JvdW5kX3Rv cF9jb2xvdXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wYW5l bF9hY3RpdmVfYmFja2dyb3VuZF90b3BfZ3JhZGllbnRfY29sb3VyLCB3eC5TT1VUSCkKKytAQCAt MTc4NSw3ICsxNzg1LDcgQEAgZGVmIERyYXdNaW5pbWlzZWRQYW5lbChzZWxmLCBkYywgd25kLCBy ZWN0LCBiaXRtYXApOgorKyAgICAgICAgIGRjLlNldFBlbih3eC5UUkFOU1BBUkVOVF9QRU4pCisr ICAgICAgICAgZGMuRHJhd1JlY3RhbmdsZShwcmV2aWV3LnggKyAxLCBwcmV2aWV3LnkgKyBwcmV2 aWV3LmhlaWdodCAtIDgsIHByZXZpZXcud2lkdGggLSAyLCA3KQorKyAKKystICAgICAgICBtaWRf cG9zID0gcmVjdC55ICsgcmVjdC5oZWlnaHQgLyA1IC0gcHJldmlldy55CisrKyAgICAgICAgbWlk X3BvcyA9IHJlY3QueSArIHJlY3QuaGVpZ2h0IC8vIDUgLSBwcmV2aWV3LnkKKysgCisrICAgICAg ICAgaWYgbWlkX3BvcyA8IDAgb3IgbWlkX3BvcyA+PSBwcmV2aWV3LmhlaWdodDoKKysgICAgICAg ICAgICAgZnVsbF9yZWN0ID0gd3guUmVjdCgqcHJldmlldykKKytAQCAtMTgxNiw4ICsxODE2LDgg QEAgZGVmIERyYXdNaW5pbWlzZWRQYW5lbChzZWxmLCBkYywgd25kLCByZWN0LCBiaXRtYXApOgor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFnZV9ob3Zlcl9iYWNr Z3JvdW5kX2dyYWRpZW50X2NvbG91ciwgd3guU09VVEgpCisrIAorKyAgICAgICAgIGlmIGJpdG1h cC5Jc09rKCk6CisrLSAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAoYml0bWFwLCBwcmV2aWV3Lngg KyAocHJldmlldy53aWR0aCAtIGJpdG1hcC5HZXRXaWR0aCgpKSAvIDIsCisrLSAgICAgICAgICAg ICAgICAgICAgICAgICAgcHJldmlldy55ICsgKHByZXZpZXcuaGVpZ2h0IC0gNyAtIGJpdG1hcC5H ZXRIZWlnaHQoKSkgLyAyLCBUcnVlKQorKysgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGJpdG1h cCwgcHJldmlldy54ICsgKHByZXZpZXcud2lkdGggLSBiaXRtYXAuR2V0V2lkdGgoKSkgLy8gMiwK KysrICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3LnkgKyAocHJldmlldy5oZWlnaHQg LSA3IC0gYml0bWFwLkdldEhlaWdodCgpKSAvLyAyLCBUcnVlKQorKyAKKysgICAgICAgICBzZWxm LkRyYXdQYW5lbEJvcmRlcihkYywgcHJldmlldywgc2VsZi5fcGFuZWxfYm9yZGVyX3Blbiwgc2Vs Zi5fcGFuZWxfYm9yZGVyX2dyYWRpZW50X3BlbikKKysgICAgICAgICBzZWxmLkRyYXdQYW5lbEJv cmRlcihkYywgdHJ1ZV9yZWN0LCBzZWxmLl9wYW5lbF9taW5pbWlzZWRfYm9yZGVyX3Blbiwgc2Vs Zi5fcGFuZWxfbWluaW1pc2VkX2JvcmRlcl9ncmFkaWVudF9wZW4pCisrQEAgLTE4MjksMjAgKzE4 MjksMjAgQEAgZGVmIERyYXdNaW5pbWlzZWRQYW5lbENvbW1vbihzZWxmLCBkYywgd25kLCB0cnVl X3JlY3QpOgorKyAKKysgICAgICAgICBpZiBzZWxmLl9mbGFncyAmIFJJQkJPTl9CQVJfRkxPV19W RVJUSUNBTDoKKysgICAgICAgICAgICAgcHJldmlldy54ID0gdHJ1ZV9yZWN0LnggKyA0CisrLSAg ICAgICAgICAgIHByZXZpZXcueSA9IHRydWVfcmVjdC55ICsgKHRydWVfcmVjdC5oZWlnaHQgLSBw cmV2aWV3LmhlaWdodCkgLyAyCisrKyAgICAgICAgICAgIHByZXZpZXcueSA9IHRydWVfcmVjdC55 ICsgKHRydWVfcmVjdC5oZWlnaHQgLSBwcmV2aWV3LmhlaWdodCkgLy8gMgorKyAgICAgICAgIGVs c2U6CisrLSAgICAgICAgICAgIHByZXZpZXcueCA9IHRydWVfcmVjdC54ICsgKHRydWVfcmVjdC53 aWR0aCAtIHByZXZpZXcud2lkdGgpIC8gMgorKysgICAgICAgICAgICBwcmV2aWV3LnggPSB0cnVl X3JlY3QueCArICh0cnVlX3JlY3Qud2lkdGggLSBwcmV2aWV3LndpZHRoKSAvLyAyCisrICAgICAg ICAgICAgIHByZXZpZXcueSA9IHRydWVfcmVjdC55ICsgNAorKyAKKysgICAgICAgICBkYy5TZXRG b250KHNlbGYuX3BhbmVsX2xhYmVsX2ZvbnQpCisrICAgICAgICAgbGFiZWxfd2lkdGgsIGxhYmVs X2hlaWdodCA9IGRjLkdldFRleHRFeHRlbnQod25kLkdldExhYmVsKCkpCisrIAorKy0gICAgICAg IHhwb3MgPSB0cnVlX3JlY3QueCArICh0cnVlX3JlY3Qud2lkdGggLSBsYWJlbF93aWR0aCArIDEp IC8gMgorKysgICAgICAgIHhwb3MgPSB0cnVlX3JlY3QueCArICh0cnVlX3JlY3Qud2lkdGggLSBs YWJlbF93aWR0aCArIDEpIC8vIDIKKysgICAgICAgICB5cG9zID0gcHJldmlldy55ICsgcHJldmll dy5oZWlnaHQgKyA1CisrIAorKyAgICAgICAgIGlmIHNlbGYuX2ZsYWdzICYgUklCQk9OX0JBUl9G TE9XX1ZFUlRJQ0FMOgorKyAgICAgICAgICAgICB4cG9zID0gcHJldmlldy54ICsgcHJldmlldy53 aWR0aCArIDUKKystICAgICAgICAgICAgeXBvcyA9IHRydWVfcmVjdC55ICsgKHRydWVfcmVjdC5o ZWlnaHQgLSBsYWJlbF9oZWlnaHQpIC8gMgorKysgICAgICAgICAgICB5cG9zID0gdHJ1ZV9yZWN0 LnkgKyAodHJ1ZV9yZWN0LmhlaWdodCAtIGxhYmVsX2hlaWdodCkgLy8gMgorKyAKKysgICAgICAg ICBkYy5TZXRUZXh0Rm9yZWdyb3VuZChzZWxmLl9wYW5lbF9taW5pbWlzZWRfbGFiZWxfY29sb3Vy KQorKyAgICAgICAgIGRjLkRyYXdUZXh0KHduZC5HZXRMYWJlbCgpLCB4cG9zLCB5cG9zKQorK0BA IC0xODUxLDEyICsxODUxLDEyIEBAIGRlZiBEcmF3TWluaW1pc2VkUGFuZWxDb21tb24oc2VsZiwg ZGMsIHduZCwgdHJ1ZV9yZWN0KToKKysgCisrICAgICAgICAgaWYgc2VsZi5fZmxhZ3MgJiBSSUJC T05fQkFSX0ZMT1dfVkVSVElDQUw6CisrICAgICAgICAgICAgIHhwb3MgKz0gbGFiZWxfd2lkdGgK KystICAgICAgICAgICAgYXJyb3dfcG9pbnRzWzBdID0gd3guUG9pbnQoeHBvcyArIDUsIHlwb3Mg KyBsYWJlbF9oZWlnaHQgLyAyKQorKysgICAgICAgICAgICBhcnJvd19wb2ludHNbMF0gPSB3eC5Q b2ludCh4cG9zICsgNSwgeXBvcyArIGxhYmVsX2hlaWdodCAvLyAyKQorKyAgICAgICAgICAgICBh cnJvd19wb2ludHNbMV0gPSBhcnJvd19wb2ludHNbMF0gKyB3eC5Qb2ludCgtMywgIDMpCisrICAg ICAgICAgICAgIGFycm93X3BvaW50c1syXSA9IGFycm93X3BvaW50c1swXSArIHd4LlBvaW50KC0z LCAtMykKKysgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICB5cG9zICs9IGxhYmVsX2hlaWdo dAorKy0gICAgICAgICAgICBhcnJvd19wb2ludHNbMF0gPSB3eC5Qb2ludCh0cnVlX3JlY3Qud2lk dGggLyAyLCB5cG9zICsgNSkKKysrICAgICAgICAgICAgYXJyb3dfcG9pbnRzWzBdID0gd3guUG9p bnQodHJ1ZV9yZWN0LndpZHRoIC8vIDIsIHlwb3MgKyA1KQorKyAgICAgICAgICAgICBhcnJvd19w b2ludHNbMV0gPSBhcnJvd19wb2ludHNbMF0gKyB3eC5Qb2ludCgtMywgLTMpCisrICAgICAgICAg ICAgIGFycm93X3BvaW50c1syXSA9IGFycm93X3BvaW50c1swXSArIHd4LlBvaW50KCAzLCAtMykK KysgCisrQEAgLTE5NjcsNyArMTk2Nyw3IEBAIGRlZiBEcmF3QnV0dG9uQmFyQnV0dG9uKHNlbGYs IGRjLCB3bmQsIHJlY3QsIGtpbmQsIHN0YXRlLCBsYWJlbCwgYml0bWFwX2xhcmdlLCBiCisrICAg ICAgICAgICAgIGJnX3JlY3QuaGVpZ2h0IC09IDIKKysgCisrICAgICAgICAgICAgIGJnX3JlY3Rf dG9wID0gd3guUmVjdCgqYmdfcmVjdCkKKystICAgICAgICAgICAgYmdfcmVjdF90b3AuaGVpZ2h0 IC89IDMKKysrICAgICAgICAgICAgYmdfcmVjdF90b3AuaGVpZ2h0IC8vPSAzCisrICAgICAgICAg ICAgIGJnX3JlY3QueSArPSBiZ19yZWN0X3RvcC5oZWlnaHQKKysgICAgICAgICAgICAgYmdfcmVj dC5oZWlnaHQgLT0gYmdfcmVjdF90b3AuaGVpZ2h0CisrIAorK0BAIC0yMDQzLDcgKzIwNDMsNyBA QCBkZWYgRHJhd0J1dHRvbkJhckJ1dHRvbkZvcmVncm91bmQoc2VsZiwgZGMsIHJlY3QsIGtpbmQs IHN0YXRlLCBsYWJlbCwgYml0bWFwX2xhcgorKyAgICAgICAgIGlmIHJlc3VsdCA9PSBSSUJCT05f QlVUVE9OQkFSX0JVVFRPTl9MQVJHRToKKysgCisrICAgICAgICAgICAgIHBhZGRpbmcgPSAyCisr LSAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAoYml0bWFwX2xhcmdlLCByZWN0LnggKyAocmVjdC53 aWR0aCAtIGJpdG1hcF9sYXJnZS5HZXRXaWR0aCgpKSAvIDIsCisrKyAgICAgICAgICAgIGRjLkRy YXdCaXRtYXAoYml0bWFwX2xhcmdlLCByZWN0LnggKyAocmVjdC53aWR0aCAtIGJpdG1hcF9sYXJn ZS5HZXRXaWR0aCgpKSAvLyAyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QueSAr IHBhZGRpbmcsIFRydWUpCisrICAgICAgICAgICAgIHlwb3MgPSByZWN0LnkgKyBwYWRkaW5nICsg Yml0bWFwX2xhcmdlLkdldEhlaWdodCgpICsgcGFkZGluZworKyAgICAgICAgICAgICBhcnJvd193 aWR0aCA9IChraW5kID09IFJJQkJPTl9CVVRUT05fTk9STUFMIGFuZCBbMF0gb3IgWzhdKVswXQor K0BAIC0yMDUyLDEwICsyMDUyLDEwIEBAIGRlZiBEcmF3QnV0dG9uQmFyQnV0dG9uRm9yZWdyb3Vu ZChzZWxmLCBkYywgcmVjdCwga2luZCwgc3RhdGUsIGxhYmVsLCBiaXRtYXBfbGFyCisrIAorKyAg ICAgICAgICAgICBpZiBsYWJlbF93ICsgMiAqIHBhZGRpbmcgPD0gcmVjdC53aWR0aDoKKysgCisr LSAgICAgICAgICAgICAgICBkYy5EcmF3VGV4dChsYWJlbCwgcmVjdC54ICsgKHJlY3Qud2lkdGgg LSBsYWJlbF93KSAvIDIsIHlwb3MpCisrKyAgICAgICAgICAgICAgICBkYy5EcmF3VGV4dChsYWJl bCwgcmVjdC54ICsgKHJlY3Qud2lkdGggLSBsYWJlbF93KSAvLyAyLCB5cG9zKQorKyAgICAgICAg ICAgICAgICAgaWYgYXJyb3dfd2lkdGggIT0gMDoKKystICAgICAgICAgICAgICAgICAgICBzZWxm LkRyYXdEcm9wZG93bkFycm93KGRjLCByZWN0LnggKyByZWN0LndpZHRoIC8gMiwKKystICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlwb3MgKyAobGFiZWxfaCAqIDMp IC8gMiwKKysrICAgICAgICAgICAgICAgICAgICBzZWxmLkRyYXdEcm9wZG93bkFycm93KGRjLCBy ZWN0LnggKyByZWN0LndpZHRoIC8vIDIsCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB5cG9zICsgKGxhYmVsX2ggKiAzKSAvLyAyLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fYnV0dG9uX2Jhcl9sYWJlbF9jb2xv dXIpCisrICAgICAgICAgICAgIGVsc2U6CisrICAgICAgICAgICAgICAgICBicmVha2kgPSBsZW4o bGFiZWwpCisrQEAgLTIwNjcsMTcgKzIwNjcsMTcgQEAgZGVmIERyYXdCdXR0b25CYXJCdXR0b25G b3JlZ3JvdW5kKHNlbGYsIGRjLCByZWN0LCBraW5kLCBzdGF0ZSwgbGFiZWwsIGJpdG1hcF9sYXIK KysgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxfdywgbGFiZWxfaCA9IGRjLkdldFRleHRF eHRlbnQobGFiZWxfdG9wKQorKyAKKysgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbGFiZWxf dyArIDIgKiBwYWRkaW5nIDw9IHJlY3Qud2lkdGg6CisrLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkYy5EcmF3VGV4dChsYWJlbF90b3AsIHJlY3QueCArIChyZWN0LndpZHRoIC0gbGFiZWxf dykgLyAyLCB5cG9zKQorKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGMuRHJhd1RleHQo bGFiZWxfdG9wLCByZWN0LnggKyAocmVjdC53aWR0aCAtIGxhYmVsX3cpIC8vIDIsIHlwb3MpCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5cG9zICs9IGxhYmVsX2gKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxhYmVsX2JvdHRvbSA9IGxhYmVsW2JyZWFraTpdCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsYWJlbF93LCBsYWJlbF9oID0gZGMuR2V0VGV4dEV4dGVu dChsYWJlbF9ib3R0b20pCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbF93ICs9 IGFycm93X3dpZHRoCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpWCA9IHJlY3QueCAr IChyZWN0LndpZHRoIC0gbGFiZWxfdykgLyAyCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpWCA9IHJlY3QueCArIChyZWN0LndpZHRoIC0gbGFiZWxfdykgLy8gMgorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGMuRHJhd1RleHQobGFiZWxfYm90dG9tLCBpWCwgeXBvcykKKysg CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBhcnJvd193aWR0aCAhPSAwOgorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuRHJhd0Ryb3Bkb3duQXJyb3coZGMs IGlYICsgMiArbGFiZWxfdyAtIGFycm93X3dpZHRoLAorKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeXBvcyArIGxhYmVsX2ggLyAyICsgMSwK KysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHlwb3MgKyBsYWJlbF9oIC8vIDIgKyAxLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fYnV0dG9uX2Jhcl9sYWJlbF9jb2xvdXIp CisrIAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKytAQCAtMjA4NSwxNCAr MjA4NSwxNCBAQCBkZWYgRHJhd0J1dHRvbkJhckJ1dHRvbkZvcmVncm91bmQoc2VsZiwgZGMsIHJl Y3QsIGtpbmQsIHN0YXRlLCBsYWJlbCwgYml0bWFwX2xhcgorKyAgICAgICAgIGVsaWYgcmVzdWx0 ID09IFJJQkJPTl9CVVRUT05CQVJfQlVUVE9OX01FRElVTToKKysgCisrICAgICAgICAgICAgIHhf Y3Vyc29yID0gcmVjdC54ICsgMgorKy0gICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGJpdG1hcF9z bWFsbCwgeF9jdXJzb3IsIHJlY3QueSArIChyZWN0LmhlaWdodCAtIGJpdG1hcF9zbWFsbC5HZXRI ZWlnaHQoKSkvMiwgVHJ1ZSkKKysrICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChiaXRtYXBfc21h bGwsIHhfY3Vyc29yLCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLSBiaXRtYXBfc21hbGwuR2V0SGVp Z2h0KCkpLy8yLCBUcnVlKQorKyAgICAgICAgICAgICB4X2N1cnNvciArPSBiaXRtYXBfc21hbGwu R2V0V2lkdGgoKSArIDIKKysgICAgICAgICAgICAgbGFiZWxfdywgbGFiZWxfaCA9IGRjLkdldFRl eHRFeHRlbnQobGFiZWwpCisrLSAgICAgICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsLCB4X2N1cnNv ciwgcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC0gbGFiZWxfaCkgLyAyKQorKysgICAgICAgICAgICBk Yy5EcmF3VGV4dChsYWJlbCwgeF9jdXJzb3IsIHJlY3QueSArIChyZWN0LmhlaWdodCAtIGxhYmVs X2gpIC8vIDIpCisrICAgICAgICAgICAgIHhfY3Vyc29yICs9IGxhYmVsX3cgKyAzCisrIAorKyAg ICAgICAgICAgICBpZiBraW5kICE9IFJJQkJPTl9CVVRUT05fTk9STUFMOgorKy0gICAgICAgICAg ICAgICAgc2VsZi5EcmF3RHJvcGRvd25BcnJvdyhkYywgeF9jdXJzb3IsIHJlY3QueSArIHJlY3Qu aGVpZ2h0IC8gMiwKKysrICAgICAgICAgICAgICAgIHNlbGYuRHJhd0Ryb3Bkb3duQXJyb3coZGMs IHhfY3Vyc29yLCByZWN0LnkgKyByZWN0LmhlaWdodCAvLyAyLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9idXR0b25fYmFyX2xhYmVsX2NvbG91cikKKysg CisrICAgICAgICAgZWxzZToKKytAQCAtMjE4NCw3ICsyMTg0LDcgQEAgZGVmIERyYXdUb29sKHNl bGYsIGRjLCB3bmQsIHJlY3QsIGJpdG1hcCwga2luZCwgc3RhdGUpOgorKyAKKysgICAgICAgICAj IEJhY2tncm91bmQKKysgICAgICAgICBiZ19yZWN0X3RvcCA9IHd4LlJlY3QoKmJnX3JlY3QpCisr LSAgICAgICAgYmdfcmVjdF90b3AuaGVpZ2h0ID0gKGJnX3JlY3RfdG9wLmhlaWdodCAqIDIpIC8g NQorKysgICAgICAgIGJnX3JlY3RfdG9wLmhlaWdodCA9IChiZ19yZWN0X3RvcC5oZWlnaHQgKiAy KSAvLyA1CisrICAgICAgICAgYmdfcmVjdF9idG0gPSB3eC5SZWN0KCpiZ19yZWN0KQorKyAgICAg ICAgIGJnX3JlY3RfYnRtLnkgKz0gYmdfcmVjdF90b3AuaGVpZ2h0CisrICAgICAgICAgYmdfcmVj dF9idG0uaGVpZ2h0IC09IGJnX3JlY3RfdG9wLmhlaWdodAorK0BAIC0yMjQ0LDEwICsyMjQ0LDEw IEBAIGRlZiBEcmF3VG9vbChzZWxmLCBkYywgd25kLCByZWN0LCBiaXRtYXAsIGtpbmQsIHN0YXRl KToKKysgICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKHJlY3QueCArIGF2YWlsX3dpZHRoICsg MSwgcmVjdC55LCByZWN0LnggKyBhdmFpbF93aWR0aCArIDEsIHJlY3QueSArIHJlY3QuaGVpZ2h0 KQorKyAKKysgICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChzZWxmLl90b29sYmFyX2Ryb3BfYml0 bWFwLCBiZ19yZWN0LnggKyBhdmFpbF93aWR0aCArIDIsCisrLSAgICAgICAgICAgICAgICAgICAg ICAgICAgYmdfcmVjdC55ICsgKGJnX3JlY3QuaGVpZ2h0IC8gMikgLSAyLCBUcnVlKQorKysgICAg ICAgICAgICAgICAgICAgICAgICAgIGJnX3JlY3QueSArIChiZ19yZWN0LmhlaWdodCAvLyAyKSAt IDIsIFRydWUpCisrIAorKy0gICAgICAgIGRjLkRyYXdCaXRtYXAoYml0bWFwLCBiZ19yZWN0Lngg KyAoYXZhaWxfd2lkdGggLSBiaXRtYXAuR2V0V2lkdGgoKSkgLyAyLAorKy0gICAgICAgICAgICAg ICAgICAgICAgYmdfcmVjdC55ICsgKGJnX3JlY3QuaGVpZ2h0IC0gYml0bWFwLkdldEhlaWdodCgp KSAvIDIsIFRydWUpCisrKyAgICAgICAgZGMuRHJhd0JpdG1hcChiaXRtYXAsIGJnX3JlY3QueCAr IChhdmFpbF93aWR0aCAtIGJpdG1hcC5HZXRXaWR0aCgpKSAvLyAyLAorKysgICAgICAgICAgICAg ICAgICAgICAgYmdfcmVjdC55ICsgKGJnX3JlY3QuaGVpZ2h0IC0gYml0bWFwLkdldEhlaWdodCgp KSAvLyAyLCBUcnVlKQorKyAKKysgCisrICAgICBkZWYgR2V0QmFyVGFiV2lkdGgoc2VsZiwgZGMs IHduZCwgbGFiZWwsIGJpdG1hcCwgaWRlYWw9Tm9uZSwgc21hbGxfYmVnaW5fbmVlZF9zZXBhcmF0 b3I9Tm9uZSwKKytAQCAtMjQ3NCw3ICsyNDc0LDcgQEAgZGVmIEdldEdhbGxlcnlDbGllbnRTaXpl KHNlbGYsIGRjLCB3bmQsIHNpemUsIGNsaWVudF9vZmZzZXQ9Tm9uZSwgc2Nyb2xsX3VwX2J1dHQK KysgICAgICAgICAgICAgc2Nyb2xsX3VwLnkgPSBzaXplLkdldEhlaWdodCgpIC0gMTUKKysgICAg ICAgICAgICAgc2Nyb2xsX3VwLmhlaWdodCA9IDE1CisrICAgICAgICAgICAgIHNjcm9sbF91cC54 ID0gMAorKy0gICAgICAgICAgICBzY3JvbGxfdXAud2lkdGggPSAoc2l6ZS5HZXRXaWR0aCgpICsg MikgLyAzCisrKyAgICAgICAgICAgIHNjcm9sbF91cC53aWR0aCA9IChzaXplLkdldFdpZHRoKCkg KyAyKSAvLyAzCisrICAgICAgICAgICAgIHNjcm9sbF9kb3duLnkgPSBzY3JvbGxfdXAueQorKyAg ICAgICAgICAgICBzY3JvbGxfZG93bi5oZWlnaHQgPSBzY3JvbGxfdXAuaGVpZ2h0CisrICAgICAg ICAgICAgIHNjcm9sbF9kb3duLnggPSBzY3JvbGxfdXAueCArIHNjcm9sbF91cC53aWR0aAorK0BA IC0yNDkxLDcgKzI0OTEsNyBAQCBkZWYgR2V0R2FsbGVyeUNsaWVudFNpemUoc2VsZiwgZGMsIHdu ZCwgc2l6ZSwgY2xpZW50X29mZnNldD1Ob25lLCBzY3JvbGxfdXBfYnV0dAorKyAgICAgICAgICAg ICBzY3JvbGxfdXAueCA9IHNpemUuR2V0V2lkdGgoKSAtIDE1CisrICAgICAgICAgICAgIHNjcm9s bF91cC53aWR0aCA9IDE1CisrICAgICAgICAgICAgIHNjcm9sbF91cC55ID0gMAorKy0gICAgICAg ICAgICBzY3JvbGxfdXAuaGVpZ2h0ID0gKHNpemUuR2V0SGVpZ2h0KCkgKyAyKSAvIDMKKysrICAg ICAgICAgICAgc2Nyb2xsX3VwLmhlaWdodCA9IChzaXplLkdldEhlaWdodCgpICsgMikgLy8gMwor KyAgICAgICAgICAgICBzY3JvbGxfZG93bi54ID0gc2Nyb2xsX3VwLngKKysgICAgICAgICAgICAg c2Nyb2xsX2Rvd24ud2lkdGggPSBzY3JvbGxfdXAud2lkdGgKKysgICAgICAgICAgICAgc2Nyb2xs X2Rvd24ueSA9IHNjcm9sbF91cC55ICsgc2Nyb2xsX3VwLmhlaWdodAorK2RpZmYgLS1naXQgYS93 eC9saWIvYWd3L3JpYmJvbi9iYXIucHkgYi93eC9saWIvYWd3L3JpYmJvbi9iYXIucHkKKytpbmRl eCBhZThiNmExOWMuLmIwZDI4Nzc2ZCAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3JpYmJvbi9i YXIucHkKKysrKysgYi93eC9saWIvYWd3L3JpYmJvbi9iYXIucHkKKytAQCAtNzQzLDcgKzc0Myw3 IEBAIGRlZiBSZWNhbGN1bGF0ZVRhYlNpemVzKHNlbGYpOgorKyAgICAgICAgICAgICAgICAgICAg IGRlbHRhID0gaW5mby5pZGVhbF93aWR0aCAtIGluZm8uc21hbGxfbXVzdF9oYXZlX3NlcGFyYXRv cl93aWR0aAorKyAgICAgICAgICAgICAgICAgICAgIGluZm8ucmVjdC54ID0geAorKyAgICAgICAg ICAgICAgICAgICAgIGluZm8ucmVjdC55ID0geQorKy0gICAgICAgICAgICAgICAgICAgIGluZm8u cmVjdC53aWR0aCA9IGluZm8uc21hbGxfbXVzdF9oYXZlX3NlcGFyYXRvcl93aWR0aCArIGRlbHRh Kih3aWR0aCAtIHRvdGFsX3NtYWxsX3dpZHRoKS90b3RhbF9kZWx0YQorKysgICAgICAgICAgICAg ICAgICAgIGluZm8ucmVjdC53aWR0aCA9IGluZm8uc21hbGxfbXVzdF9oYXZlX3NlcGFyYXRvcl93 aWR0aCArIGRlbHRhKih3aWR0aCAtIHRvdGFsX3NtYWxsX3dpZHRoKS8vdG90YWxfZGVsdGEKKysg ICAgICAgICAgICAgICAgICAgICBpbmZvLnJlY3QuaGVpZ2h0ID0gc2VsZi5fdGFiX2hlaWdodAor KyAKKysgICAgICAgICAgICAgICAgICAgICB4ICs9IGluZm8ucmVjdC53aWR0aCArIHRhYnNlcAor K0BAIC03OTcsNyArNzk3LDcgQEAgZGVmIFJlY2FsY3VsYXRlVGFiU2l6ZXMoc2VsZik6CisrICAg ICAgICAgICAgICAgICAgICAgICAgIGRlbHRhID0gc21hbGxlc3RfdGFiX3dpZHRoIC0gaW5mby5t aW5pbXVtX3dpZHRoCisrICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8ucmVjdC54ID0geAor KyAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnJlY3QueSA9IHkKKystICAgICAgICAgICAg ICAgICAgICAgICAgaW5mby5yZWN0LndpZHRoID0gaW5mby5taW5pbXVtX3dpZHRoICsgZGVsdGEq KHdpZHRoIC0gdG90YWxfc21hbGxfd2lkdGgpL3RvdGFsX2RlbHRhCisrKyAgICAgICAgICAgICAg ICAgICAgICAgIGluZm8ucmVjdC53aWR0aCA9IGluZm8ubWluaW11bV93aWR0aCArIGRlbHRhKih3 aWR0aCAtIHRvdGFsX3NtYWxsX3dpZHRoKS8vdG90YWxfZGVsdGEKKysgICAgICAgICAgICAgICAg ICAgICAgICAgaW5mby5yZWN0LmhlaWdodCA9IHNlbGYuX3RhYl9oZWlnaHQKKysgCisrICAgICAg ICAgICAgICAgICAgICAgICAgIHggKz0gaW5mby5yZWN0LndpZHRoICsgdGFic2VwCisrZGlmZiAt LWdpdCBhL3d4L2xpYi9hZ3cvcmliYm9uL2J1dHRvbmJhci5weSBiL3d4L2xpYi9hZ3cvcmliYm9u L2J1dHRvbmJhci5weQorK2luZGV4IDI1ZWU0OWE4Mi4uNDY5MGY0ODNkIDEwMDY0NAorKy0tLSBh L3d4L2xpYi9hZ3cvcmliYm9uL2J1dHRvbmJhci5weQorKysrKyBiL3d4L2xpYi9hZ3cvcmliYm9u L2J1dHRvbmJhci5weQorK0BAIC0zNTQsNyArMzU0LDcgQEAgZGVmIEluc2VydEJ1dHRvbihzZWxm LCBwb3MsIGJ1dHRvbl9pZCwgbGFiZWwsIGJpdG1hcCwgYml0bWFwX3NtYWxsPXd4Lk51bGxCaXRt YXAKKysgICAgICAgICAgICAgICAgIHNlbGYuX2JpdG1hcF9zaXplX2xhcmdlID0gYml0bWFwLkdl dFNpemUoKQorKyAgICAgICAgICAgICAgICAgaWYgbm90IGJpdG1hcF9zbWFsbC5Jc09rKCk6Cisr ICAgICAgICAgICAgICAgICAgICAgdywgaCA9IHNlbGYuX2JpdG1hcF9zaXplX2xhcmdlCisrLSAg ICAgICAgICAgICAgICAgICAgc2VsZi5fYml0bWFwX3NpemVfc21hbGwgPSB3eC5TaXplKDAuNSp3 LCAwLjUqaCkKKysrICAgICAgICAgICAgICAgICAgICBzZWxmLl9iaXRtYXBfc2l6ZV9zbWFsbCA9 IHd4LlNpemUody8vMiwgaC8vMikKKysgCisrICAgICAgICAgICAgIGlmIGJpdG1hcF9zbWFsbC5J c09rKCk6CisrIAorK0BAIC04NjcsOCArODY3LDggQEAgZGVmIE9uU2l6ZShzZWxmLCBldmVudCk6 CisrIAorKyAgICAgICAgICAgICBsYXlvdXRfc2l6ZSA9IHNlbGYuX2xheW91dHNbbGF5b3V0X2ld Lm92ZXJhbGxfc2l6ZQorKyAgICAgICAgICAgICBpZiBsYXlvdXRfc2l6ZS54IDw9IG5ld19zaXpl LnggYW5kIGxheW91dF9zaXplLnkgPD0gbmV3X3NpemUueToKKystICAgICAgICAgICAgICAgIHNl bGYuX2xheW91dF9vZmZzZXQueCA9IChuZXdfc2l6ZS54IC0gbGF5b3V0X3NpemUueCkvMgorKy0g ICAgICAgICAgICAgICAgc2VsZi5fbGF5b3V0X29mZnNldC55ID0gKG5ld19zaXplLnkgLSBsYXlv dXRfc2l6ZS55KS8yCisrKyAgICAgICAgICAgICAgICBzZWxmLl9sYXlvdXRfb2Zmc2V0LnggPSAo bmV3X3NpemUueCAtIGxheW91dF9zaXplLngpLy8yCisrKyAgICAgICAgICAgICAgICBzZWxmLl9s YXlvdXRfb2Zmc2V0LnkgPSAobmV3X3NpemUueSAtIGxheW91dF9zaXplLnkpLy8yCisrICAgICAg ICAgICAgICAgICBzZWxmLl9jdXJyZW50X2xheW91dCA9IGxheW91dF9pCisrICAgICAgICAgICAg ICAgICBicmVhaworKyAKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9yaWJib24vZ2FsbGVyeS5w eSBiL3d4L2xpYi9hZ3cvcmliYm9uL2dhbGxlcnkucHkKKytpbmRleCBiODMwZmFiN2QuLmI4NjUy ODg2NSAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3JpYmJvbi9nYWxsZXJ5LnB5CisrKysrIGIv d3gvbGliL2Fndy9yaWJib24vZ2FsbGVyeS5weQorK0BAIC04MDUsOCArODA1LDggQEAgZGVmIERv R2V0TmV4dFNtYWxsZXJTaXplKHNlbGYsIGRpcmVjdGlvbiwgcmVsYXRpdmVfdG8pOgorKyAgICAg ICAgIGlmIGNsaWVudC5HZXRXaWR0aCgpIDwgMCBvciBjbGllbnQuR2V0SGVpZ2h0KCkgPCAwOgor KyAgICAgICAgICAgICByZXR1cm4gcmVsYXRpdmVfdG8KKysgCisrLSAgICAgICAgY2xpZW50Lngg PSAoY2xpZW50LnggLyBzZWxmLl9iaXRtYXBfcGFkZGVkX3NpemUueCkgKiBzZWxmLl9iaXRtYXBf cGFkZGVkX3NpemUueAorKy0gICAgICAgIGNsaWVudC55ID0gKGNsaWVudC55IC8gc2VsZi5fYml0 bWFwX3BhZGRlZF9zaXplLnkpICogc2VsZi5fYml0bWFwX3BhZGRlZF9zaXplLnkKKysrICAgICAg ICBjbGllbnQueCA9IChjbGllbnQueCAvLyBzZWxmLl9iaXRtYXBfcGFkZGVkX3NpemUueCkgKiBz ZWxmLl9iaXRtYXBfcGFkZGVkX3NpemUueAorKysgICAgICAgIGNsaWVudC55ID0gKGNsaWVudC55 IC8vIHNlbGYuX2JpdG1hcF9wYWRkZWRfc2l6ZS55KSAqIHNlbGYuX2JpdG1hcF9wYWRkZWRfc2l6 ZS55CisrIAorKyAgICAgICAgIHNpemUgPSBzZWxmLl9hcnQuR2V0R2FsbGVyeVNpemUoZGMsIHNl bGYsIHd4LlNpemUoKmNsaWVudCkpCisrICAgICAgICAgbWluaW11bSA9IHNlbGYuR2V0TWluU2l6 ZSgpCisrQEAgLTg0OSw4ICs4NDksOCBAQCBkZWYgRG9HZXROZXh0TGFyZ2VyU2l6ZShzZWxmLCBk aXJlY3Rpb24sIHJlbGF0aXZlX3RvKToKKysgICAgICAgICBlbGlmIGRpcmVjdGlvbiA9PSB3eC5C T1RIOgorKyAgICAgICAgICAgICBjbGllbnQuSW5jQnkoc2VsZi5fYml0bWFwX3BhZGRlZF9zaXpl KQorKyAKKystICAgICAgICBjbGllbnQueCA9IChjbGllbnQueCAvIHNlbGYuX2JpdG1hcF9wYWRk ZWRfc2l6ZS54KSAqIHNlbGYuX2JpdG1hcF9wYWRkZWRfc2l6ZS54CisrLSAgICAgICAgY2xpZW50 LnkgPSAoY2xpZW50LnkgLyBzZWxmLl9iaXRtYXBfcGFkZGVkX3NpemUueSkgKiBzZWxmLl9iaXRt YXBfcGFkZGVkX3NpemUueQorKysgICAgICAgIGNsaWVudC54ID0gKGNsaWVudC54IC8vIHNlbGYu X2JpdG1hcF9wYWRkZWRfc2l6ZS54KSAqIHNlbGYuX2JpdG1hcF9wYWRkZWRfc2l6ZS54CisrKyAg ICAgICAgY2xpZW50LnkgPSAoY2xpZW50LnkgLy8gc2VsZi5fYml0bWFwX3BhZGRlZF9zaXplLnkp ICogc2VsZi5fYml0bWFwX3BhZGRlZF9zaXplLnkKKysgCisrICAgICAgICAgc2l6ZSA9IHNlbGYu X2FydC5HZXRHYWxsZXJ5U2l6ZShkYywgc2VsZiwgd3guU2l6ZSgqY2xpZW50KSkKKysgICAgICAg ICBtaW5pbXVtID0gc2VsZi5HZXRNaW5TaXplKCkKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9y aWJib24vcGFuZWwucHkgYi93eC9saWIvYWd3L3JpYmJvbi9wYW5lbC5weQorK2luZGV4IDc5ZmQ5 YmM1OC4uOTAxYzc2NWI2IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvcmliYm9uL3BhbmVsLnB5 CisrKysrIGIvd3gvbGliL2Fndy9yaWJib24vcGFuZWwucHkKKytAQCAtNTg0LDEyICs1ODQsMTIg QEAgZGVmIERvR2V0TmV4dFNtYWxsZXJTaXplKHNlbGYsIGRpcmVjdGlvbiwgcmVsYXRpdmVfdG8p OgorKyAgICAgICAgIG1pbmltdW0gPSB3eC5TaXplKCpzZWxmLkdldE1pblNpemUoKSkKKysgCisr ICAgICAgICAgaWYgZGlyZWN0aW9uICYgd3guSE9SSVpPTlRBTDoKKystICAgICAgICAgICAgY3Vy cmVudC54ID0gKGN1cnJlbnQueCAqIDQpIC8gNQorKysgICAgICAgICAgICBjdXJyZW50LnggPSAo Y3VycmVudC54ICogNCkgLy8gNQorKyAgICAgICAgICAgICBpZiBjdXJyZW50LnggPCBtaW5pbXVt Lng6CisrICAgICAgICAgICAgICAgICBjdXJyZW50LnggPSBtaW5pbXVtLngKKysgCisrICAgICAg ICAgaWYgZGlyZWN0aW9uICYgd3guVkVSVElDQUw6CisrLSAgICAgICAgICAgIGN1cnJlbnQueSA9 IChjdXJyZW50LnkgKiA0KSAvIDUKKysrICAgICAgICAgICAgY3VycmVudC55ID0gKGN1cnJlbnQu eSAqIDQpIC8vIDUKKysgICAgICAgICAgICAgaWYgY3VycmVudC55IDwgbWluaW11bS55OgorKyAg ICAgICAgICAgICAgICAgY3VycmVudC55ID0gbWluaW11bS55CisrIAorK0BAIC02NjgsMTAgKzY2 OCwxMCBAQCBkZWYgRG9HZXROZXh0TGFyZ2VyU2l6ZShzZWxmLCBkaXJlY3Rpb24sIHJlbGF0aXZl X3RvKToKKysgICAgICAgICBjdXJyZW50ID0gd3guU2l6ZSgqcmVsYXRpdmVfdG8pCisrIAorKyAg ICAgICAgIGlmIGRpcmVjdGlvbiAmIHd4LkhPUklaT05UQUw6CisrLSAgICAgICAgICAgIGN1cnJl bnQueCA9IChjdXJyZW50LnggKiA1ICsgMykgLyA0CisrKyAgICAgICAgICAgIGN1cnJlbnQueCA9 IChjdXJyZW50LnggKiA1ICsgMykgLy8gNAorKyAKKysgICAgICAgICBpZiBkaXJlY3Rpb24gJiB3 eC5WRVJUSUNBTDoKKystICAgICAgICAgICAgY3VycmVudC55ID0gKGN1cnJlbnQueSAqIDUgKyAz KSAvIDQKKysrICAgICAgICAgICAgY3VycmVudC55ID0gKGN1cnJlbnQueSAqIDUgKyAzKSAvLyA0 CisrIAorKyAgICAgICAgIHJldHVybiBjdXJyZW50CisrIAorK0BAIC0xMDc2LDI1ICsxMDc2LDI1 IEBAIGRlZiBHZXRFeHBhbmRlZFBvc2l0aW9uKHNlbGYsIHBhbmVsLCBleHBhbmRlZF9zaXplLCBk aXJlY3Rpb24pOgorKyAgICAgICAgIHBvcyA9IHd4LlBvaW50KCkKKysgCisrICAgICAgICAgaWYg ZGlyZWN0aW9uID09IHd4Lk5PUlRIOgorKy0gICAgICAgICAgICBwb3MueCA9IHBhbmVsLkdldFgo KSArIChwYW5lbC5HZXRXaWR0aCgpIC0gZXhwYW5kZWRfc2l6ZS5HZXRXaWR0aCgpKSAvIDIKKysr ICAgICAgICAgICAgcG9zLnggPSBwYW5lbC5HZXRYKCkgKyAocGFuZWwuR2V0V2lkdGgoKSAtIGV4 cGFuZGVkX3NpemUuR2V0V2lkdGgoKSkgLy8gMgorKyAgICAgICAgICAgICBwb3MueSA9IHBhbmVs LkdldFkoKSAtIGV4cGFuZGVkX3NpemUuR2V0SGVpZ2h0KCkKKysgICAgICAgICAgICAgcHJpbWFy eV94ID0gVHJ1ZQorKyAgICAgICAgICAgICBzZWNvbmRhcnlfeSA9IDEKKysgCisrICAgICAgICAg ZWxpZiBkaXJlY3Rpb24gPT0gd3guRUFTVDoKKysgICAgICAgICAgICAgcG9zLnggPSBwYW5lbC5H ZXRSaWdodCgpCisrLSAgICAgICAgICAgIHBvcy55ID0gcGFuZWwuR2V0WSgpICsgKHBhbmVsLkdl dEhlaWdodCgpIC0gZXhwYW5kZWRfc2l6ZS5HZXRIZWlnaHQoKSkgLyAyCisrKyAgICAgICAgICAg IHBvcy55ID0gcGFuZWwuR2V0WSgpICsgKHBhbmVsLkdldEhlaWdodCgpIC0gZXhwYW5kZWRfc2l6 ZS5HZXRIZWlnaHQoKSkgLy8gMgorKyAgICAgICAgICAgICBzZWNvbmRhcnlfeCA9IC0xCisrIAor KyAgICAgICAgIGVsaWYgZGlyZWN0aW9uID09IHd4LlNPVVRIOgorKy0gICAgICAgICAgICBwb3Mu eCA9IHBhbmVsLkdldFgoKSArIChwYW5lbC5HZXRXaWR0aCgpIC0gZXhwYW5kZWRfc2l6ZS5HZXRX aWR0aCgpKSAvIDIKKysrICAgICAgICAgICAgcG9zLnggPSBwYW5lbC5HZXRYKCkgKyAocGFuZWwu R2V0V2lkdGgoKSAtIGV4cGFuZGVkX3NpemUuR2V0V2lkdGgoKSkgLy8gMgorKyAgICAgICAgICAg ICBwb3MueSA9IHBhbmVsLkdldEJvdHRvbSgpCisrICAgICAgICAgICAgIHByaW1hcnlfeCA9IFRy dWUKKysgICAgICAgICAgICAgc2Vjb25kYXJ5X3kgPSAtMQorKyAKKysgICAgICAgICBlbHNlOgor KyAgICAgICAgICAgICBwb3MueCA9IHBhbmVsLkdldFgoKSAtIGV4cGFuZGVkX3NpemUuR2V0V2lk dGgoKQorKy0gICAgICAgICAgICBwb3MueSA9IHBhbmVsLkdldFkoKSArIChwYW5lbC5HZXRIZWln aHQoKSAtIGV4cGFuZGVkX3NpemUuR2V0SGVpZ2h0KCkpIC8gMgorKysgICAgICAgICAgICBwb3Mu eSA9IHBhbmVsLkdldFkoKSArIChwYW5lbC5HZXRIZWlnaHQoKSAtIGV4cGFuZGVkX3NpemUuR2V0 SGVpZ2h0KCkpIC8vIDIKKysgICAgICAgICAgICAgc2Vjb25kYXJ5X3ggPSAxCisrIAorKyAgICAg ICAgIGV4cGFuZGVkID0gd3guUmVjdChwb3MsIGV4cGFuZGVkX3NpemUpCisrZGlmZiAtLWdpdCBh L3d4L2xpYi9hZ3cvcmliYm9uL3Rvb2xiYXIucHkgYi93eC9saWIvYWd3L3JpYmJvbi90b29sYmFy LnB5CisraW5kZXggMTc3MWM2NTA2Li44YzZmOGI1MjIgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fn dy9yaWJib24vdG9vbGJhci5weQorKysrKyBiL3d4L2xpYi9hZ3cvcmliYm9uL3Rvb2xiYXIucHkK KytAQCAtMTE1OSw3ICsxMTU5LDcgQEAgZGVmIE9uU2l6ZShzZWxmLCBldmVudCk6CisrIAorKyAg ICAgICAgICMgU2V0IGdyb3VwIHkgcG9zaXRpb25zCisrICAgICAgICAgZm9yIGdyb3VwIGluIHNl bGYuX2dyb3VwczoKKystICAgICAgICAgICAgZ3JvdXAucG9zaXRpb24ueSA9IHJvd3lwb3NbZ3Jv dXAucG9zaXRpb24ueV0KKysrICAgICAgICAgICAgZ3JvdXAucG9zaXRpb24ueSA9IGludChyb3d5 cG9zW2dyb3VwLnBvc2l0aW9uLnldKQorKyAKKysgCisrICAgICBkZWYgR2V0QmVzdFNpemVGb3JQ YXJlbnRTaXplKHNlbGYsIHBhcmVudFNpemUpOgorK2RpZmYgLS1naXQgYS93eC9saWIvYWd3L3No YXBlZGJ1dHRvbi5weSBiL3d4L2xpYi9hZ3cvc2hhcGVkYnV0dG9uLnB5CisraW5kZXggZjAxNWQ0 ZTM5Li40OTUyMzM2NmEgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9zaGFwZWRidXR0b24ucHkK KysrKysgYi93eC9saWIvYWd3L3NoYXBlZGJ1dHRvbi5weQorK0BAIC01NjksOSArNTY5LDkgQEAg ZGVmIERyYXdNYWluQnV0dG9uKHNlbGYsIGRjLCB3aWR0aCwgaGVpZ2h0KToKKysgICAgICAgICAg ICAgICAgIHJlY3QyID0gdyptYWluLy9zZWNvbmRhcnkKKysgCisrICAgICAgICAgICAgIGlmIHNl bGYuX2lzdXA6CisrLSAgICAgICAgICAgICAgICBpbWcgPSBzZWxmLl9tYWluYnV0dG9udXAuU2Nh bGUocmVjdDIsIHJlY3QzKQorKysgICAgICAgICAgICAgICAgaW1nID0gc2VsZi5fbWFpbmJ1dHRv bnVwLlNjYWxlKGludChyZWN0MiksIGludChyZWN0MykpCisrICAgICAgICAgICAgIGVsc2U6Cisr LSAgICAgICAgICAgICAgICBpbWcgPSBzZWxmLl9tYWluYnV0dG9uZG93bi5TY2FsZShyZWN0Miwg cmVjdDMpCisrKyAgICAgICAgICAgICAgICBpbWcgPSBzZWxmLl9tYWluYnV0dG9uZG93bi5TY2Fs ZShpbnQocmVjdDIpLCBpbnQocmVjdDMpKQorKyAKKysgICAgICAgICBibXAgPSBpbWcuQ29udmVy dFRvQml0bWFwKCkKKysgCisrQEAgLTU5OSw3ICs1OTksNyBAQCBkZWYgRHJhd01haW5CdXR0b24o c2VsZiwgZGMsIHdpZHRoLCBoZWlnaHQpOgorKyAgICAgICAgICAgICAgICAgICAgIHlwb3MgPSAw CisrIAorKyAgICAgICAgICMgRHJhdyBGaW5hbGx5IFRoZSBCaXRtYXAKKystICAgICAgICBkYy5E cmF3Qml0bWFwKGJtcCwgeHBvcywgeXBvcywgVHJ1ZSkKKysrICAgICAgICBkYy5EcmF3Qml0bWFw KGJtcCwgaW50KHhwb3MpLCBpbnQoeXBvcyksIFRydWUpCisrIAorKyAgICAgICAgICMgU3RvcmUg Qml0bWFwIFBvc2l0aW9uIEFuZCBTaXplIFRvIERyYXcgQW4gRWxsaXB0aWNhbCBGb2N1cyBJbmRp Y2F0b3IKKysgICAgICAgICBzZWxmLl94cG9zID0geHBvcworK0BAIC02NDYsNyArNjQ2LDcgQEAg ZGVmIERyYXdMYWJlbChzZWxmLCBkYywgd2lkdGgsIGhlaWdodCwgZHc9MCwgZGg9MCk6CisrICAg ICAgICAgICAgIHhwID0geGMgLSAodHcvLzIpKiBjb3MoYW5nbGUpIC0gKHRoLy8yKSpzaW4oYW5n bGUpCisrICAgICAgICAgICAgIHlwID0geWMgKyAodHcvLzIpKnNpbihhbmdsZSkgLSAodGgvLzIp KmNvcyhhbmdsZSkKKysgCisrLSAgICAgICAgICAgIGRjLkRyYXdSb3RhdGVkVGV4dChsYWJlbCwg eHAgKyBkdywgeXAgKyBkaCAsIGFuZ2xlKjE4MC9waSkKKysrICAgICAgICAgICAgZGMuRHJhd1Jv dGF0ZWRUZXh0KGxhYmVsLCBpbnQoeHAgKyBkdyksIGludCh5cCArIGRoKSwgYW5nbGUqMTgwL3Bp KQorKyAKKysgCisrICAgICBkZWYgRHJhd0ZvY3VzSW5kaWNhdG9yKHNlbGYsIGRjLCB3aWR0aCwg aGVpZ2h0KToKKytAQCAtNjc2LDcgKzY3Niw3IEBAIGRlZiBEcmF3Rm9jdXNJbmRpY2F0b3Ioc2Vs ZiwgZGMsIHdpZHRoLCBoZWlnaHQpOgorKyAgICAgICAgIGVsc2U6CisrICAgICAgICAgICAgICMg VGhpcyBJcyBBbiBFbGxpcHNlCisrICAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgIl94cG9z Iik6CisrLSAgICAgICAgICAgICAgICBkYy5EcmF3RWxsaXBzZShzZWxmLl94cG9zICsgMiwgc2Vs Zi5feXBvcyArIDIsIHNlbGYuX2ltZ3ggLSA0LCBzZWxmLl9pbWd5IC0gNCkKKysrICAgICAgICAg ICAgICAgIGRjLkRyYXdFbGxpcHNlKGludChzZWxmLl94cG9zICsgMiksIGludChzZWxmLl95cG9z ICsgMiksIHNlbGYuX2ltZ3ggLSA0LCBzZWxmLl9pbWd5IC0gNCkKKysgCisrICAgICAgICAgZGMu U2V0TG9naWNhbEZ1bmN0aW9uKHd4LkNPUFkpCisrIAorK2RpZmYgLS1naXQgYS93eC9saWIvYWd3 L3NwZWVkbWV0ZXIucHkgYi93eC9saWIvYWd3L3NwZWVkbWV0ZXIucHkKKytpbmRleCBmMTk2YjUx ZjIuLjYwNjkwMWQyNyAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3NwZWVkbWV0ZXIucHkKKysr KysgYi93eC9saWIvYWd3L3NwZWVkbWV0ZXIucHkKKytAQCAtNTgwLDggKzU4MCw4IEBAIGRlZiBE cmF3KHNlbGYsIGRjKToKKysgICAgICAgICBkYy5TZXRCYWNrZ3JvdW5kKHd4LkJydXNoKHNwZWVk YmFja2dyb3VuZCkpCisrICAgICAgICAgZGMuQ2xlYXIoKQorKyAKKystICAgICAgICBjZW50ZXJY ID0gc2VsZi5mYWNlQml0bWFwLkdldFdpZHRoKCkvMgorKy0gICAgICAgIGNlbnRlclkgPSBzZWxm LmZhY2VCaXRtYXAuR2V0SGVpZ2h0KCkvMgorKysgICAgICAgIGNlbnRlclggPSBzZWxmLmZhY2VC aXRtYXAuR2V0V2lkdGgoKS8vMgorKysgICAgICAgIGNlbnRlclkgPSBzZWxmLmZhY2VCaXRtYXAu R2V0SGVpZ2h0KCkvLzIKKysgCisrICAgICAgICAgc2VsZi5DZW50ZXJYID0gY2VudGVyWAorKyAg ICAgICAgIHNlbGYuQ2VudGVyWSA9IGNlbnRlclkKKytAQCAtNjgxLDcgKzY4MSw3IEBAIGRlZiBE cmF3KHNlbGYsIGRjKToKKysgICAgICAgICAgICAgIyBEcmF3IFRoZSBGaWxsZXIgKEJvdGggSW4g IkFkdmFuY2UiIEFuZCAiUmV2ZXJzZSIgRGlyZWN0aW9ucykKKysgCisrICAgICAgICAgICAgIGRj LlNldEJydXNoKHd4LkJydXNoKGZpbGxlcmNvbG91cikpCisrLSAgICAgICAgICAgIGRjLkRyYXdB cmMoeHMyLCB5czIsIHhlMiwgeWUyLCBjZW50ZXJYLCBjZW50ZXJZKQorKysgICAgICAgICAgICBk Yy5EcmF3QXJjKHhzMiwgeXMyLCB4ZTIsIHllMiwgaW50KGNlbnRlclgpLCBpbnQoY2VudGVyWSkp CisrIAorKyAgICAgICAgICAgICBpZiBzZWxmLl9hZ3dTdHlsZSAmIFNNX0RSQVdfU0VDVE9SUyA9 PSAwOgorKyAgICAgICAgICAgICAgICAgZGMuU2V0QnJ1c2god3guQnJ1c2goc3BlZWRiYWNrZ3Jv dW5kKSkKKytAQCAtOTUyLDcgKzk1Miw3IEBAIGRlZiBEcmF3KHNlbGYsIGRjKToKKysgICAgICAg ICAgICAgICAgICAgICB5ID0geSAtIGhlaWdodC8yLjAgLSBoZWlnaHQqc2luKGFuZ2lzKS8yLjAK KysgICAgICAgICAgICAgICAgICAgICBmYW5jeXRleHQuUmVuZGVyVG9EQyhmYW5jeXN0ciwgZGMs IHgsIHkpCisrICAgICAgICAgICAgICAgICBlbHNlOgorKy0gICAgICAgICAgICAgICAgICAgIGRj LkRyYXdUZXh0KHN0cmluZ3MsIHgsIHkpCisrKyAgICAgICAgICAgICAgICAgICAgZGMuRHJhd1Rl eHQoc3RyaW5ncywgaW50KHgpLCBpbnQoeSkpCisrIAorKyAgICAgICAgICAgICAjIFRoaXMgSXMg VGhlIFNtYWxsIFJlY3RhbmdsZSAtLT4gVGljayBNYXJrCisrICAgICAgICAgICAgIHJlY3Rhbmds ZSA9IGNvbG91cmFuZ2xlc1tpaV0gKyBwaS8yLjAKKytAQCAtOTY5LDYgKzk2OSw3IEBAIGRlZiBE cmF3KHNlbGYsIGRjKToKKysgICAgICAgICAgICAgeTQgPSB5MyArIDMqc2VsZi5zY2FsZSpzaW5y ZWN0CisrIAorKyAgICAgICAgICAgICBwb2ludHMgPSBbKHgxLCB5MSksICh4MiwgeTIpLCAoeDQs IHk0KSwgKHgzLCB5MyldCisrKyAgICAgICAgICAgIHBvaW50cyA9IFsoaW50KHBbMF0pLCBpbnQo cFsxXSkpIGZvciBwIGluIHBvaW50c10KKysgCisrICAgICAgICAgICAgIGRjLkRyYXdQb2x5Z29u KHBvaW50cykKKysgCisrQEAgLTEwMDMsNiArMTAwNCw3IEBAIGRlZiBEcmF3KHNlbGYsIGRjKToK KysgICAgICAgICAgICAgICAgICAgICAgICAgeTQgPSB5MyArIHNlbGYuc2NhbGUqc2lucmVjdAor KyAKKysgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRzID0gWyh4MSwgeTEpLCAoeDIsIHky KSwgKHg0LCB5NCksICh4MywgeTMpXQorKysgICAgICAgICAgICAgICAgICAgICAgICBwb2ludHMg PSBbKGludChwWzBdKSwgaW50KHBbMV0pKSBmb3IgcCBpbiBwb2ludHNdCisrIAorKyAgICAgICAg ICAgICAgICAgICAgICAgICBkYy5EcmF3UG9seWdvbihwb2ludHMpCisrIAorK0BAIC0xMDE3LDcg KzEwMTksNyBAQCBkZWYgRHJhdyhzZWxmLCBkYyk6CisrICAgICAgICAgZGMuU2V0QnJ1c2god3gu VFJBTlNQQVJFTlRfQlJVU0gpCisrIAorKyAgICAgICAgIGlmIHNlbGYuX2RyYXdhcmM6CisrLSAg ICAgICAgICAgIGRjLlNldFBlbih3eC5QZW4oc2VsZi5HZXRBcmNDb2xvdXIoKSwgMi4wKSkKKysr ICAgICAgICAgICAgZGMuU2V0UGVuKHd4LlBlbihzZWxmLkdldEFyY0NvbG91cigpLCAyKSkKKysg ICAgICAgICAgICAgIyBJZiBJdCdzIE5vdCBBIENvbXBsZXRlIENpcmNsZSwgRHJhdyBUaGUgQ29u bmVjdGluZyBMaW5lcyBBbmQgVGhlIEFyYworKyAgICAgICAgICAgICBpZiBhYnMoYWJzKHN0YXJ0 YW5nbGUgLSBlbmRhbmdsZSkgLSAyKnBpKSA+IDEuMC8xODAuMDoKKysgICAgICAgICAgICAgICAg IGRjLkRyYXdBcmMoeHN0YXJ0LCB5c3RhcnQsIHhlbmQsIHllbmQsIGNlbnRlclgsIGNlbnRlclkp CisrQEAgLTEwNDYsNyArMTA0OCw3IEBAIGRlZiBEcmF3KHNlbGYsIGRjKToKKysgICAgICAgICAg ICAgbmV3eCA9IGNlbnRlclggKyAxLjUqbXcqY29zKG1pZGRsZWFuZ2xlKSAtIG13LzIuMAorKyAg ICAgICAgICAgICBuZXd5ID0gY2VudGVyWSAtIDEuNSptaCpzaW4obWlkZGxlYW5nbGUpIC0gbWgv Mi4wCisrICAgICAgICAgICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKG1pZGRsZWNvbG91cikKKyst ICAgICAgICAgICAgZGMuRHJhd1RleHQobWlkZGxldGV4dCwgbmV3eCwgbmV3eSkKKysrICAgICAg ICAgICAgZGMuRHJhd1RleHQobWlkZGxldGV4dCwgaW50KG5ld3gpLCBpbnQobmV3eSkpCisrIAor KyAgICAgICAgICMgSGVyZSBXZSBEcmF3IFRoZSBJY29uIEluIFRoZSBNaWRkbGUsIE5lYXIgVGhl IFN0YXJ0IE9mIFRoZSBBcnJvdyAoSWYgUHJlc2VudCkKKysgICAgICAgICAjIFRoaXMgSXMgTGlr ZSBUaGUgIkZ1ZWwiIEljb24gSW4gVGhlIENhcnMKKytAQCAtMTA1NCw4ICsxMDU2LDggQEAgZGVm IERyYXcoc2VsZiwgZGMpOgorKyAKKysgICAgICAgICAgICAgbWlkZGxlaWNvbiA9IHNlbGYuR2V0 TWlkZGxlSWNvbigpCisrICAgICAgICAgICAgIG1pZGRsZXdpZHRoLCBtaWRkbGVoZWlnaHQgPSBz ZWxmLkdldE1pZGRsZUljb25EaW1lbnMoKQorKy0gICAgICAgICAgICBtaWRkbGVpY29uLlNldFdp ZHRoKG1pZGRsZXdpZHRoKnNlbGYuc2NhbGUpCisrLSAgICAgICAgICAgIG1pZGRsZWljb24uU2V0 SGVpZ2h0KG1pZGRsZWhlaWdodCpzZWxmLnNjYWxlKQorKysgICAgICAgICAgICBtaWRkbGVpY29u LlNldFdpZHRoKGludChtaWRkbGV3aWR0aCpzZWxmLnNjYWxlKSkKKysrICAgICAgICAgICAgbWlk ZGxlaWNvbi5TZXRIZWlnaHQoaW50KG1pZGRsZWhlaWdodCpzZWxmLnNjYWxlKSkKKysgICAgICAg ICAgICAgbWlkZGxlYW5nbGUgPSAoc3RhcnRhbmdsZSArIGVuZGFuZ2xlKS8yLjAKKysgCisrICAg ICAgICAgICAgIG13ID0gbWlkZGxlaWNvbi5HZXRXaWR0aCgpCisrQEAgLTEwNjQsNyArMTA2Niw3 IEBAIGRlZiBEcmF3KHNlbGYsIGRjKToKKysgICAgICAgICAgICAgbmV3eCA9IGNlbnRlclggKyAx LjUqbXcqY29zKG1pZGRsZWFuZ2xlKSAtIG13LzIuMAorKyAgICAgICAgICAgICBuZXd5ID0gY2Vu dGVyWSAtIDEuNSptaCpzaW4obWlkZGxlYW5nbGUpIC0gbWgvMi4wCisrIAorKy0gICAgICAgICAg ICBkYy5EcmF3SWNvbihtaWRkbGVpY29uLCBuZXd4LCBuZXd5KQorKysgICAgICAgICAgICBkYy5E cmF3SWNvbihtaWRkbGVpY29uLCBpbnQobmV3eCksIGludChuZXd5KSkKKysgCisrICAgICAgICAg ICAgICMgUmVzdG9yZSBJY29uIERpbWVuc2lvbiwgSWYgTm90IFNvbWV0aGluZyBTdHJhbmdlIEhh cHBlbnMKKysgICAgICAgICAgICAgbWlkZGxlaWNvbi5TZXRXaWR0aChtaWRkbGV3aWR0aCkKKytA QCAtMTEwOSw1MyArMTExMSw2MSBAQCBkZWYgRHJhdyhzZWxmLCBkYyk6CisrICAgICAgICAgICAg ICAgICBpZiBoYW5kc3R5bGUgPT0gIkFycm93IjoKKysgICAgICAgICAgICAgICAgICAgICAjIERy YXcgVGhlIFNoYWRvdworKyAgICAgICAgICAgICAgICAgICAgIHNoYWRvd2NvbG91ciA9IHNlbGYu R2V0U2hhZG93Q29sb3VyKCkKKystICAgICAgICAgICAgICAgICAgICBkYy5TZXRQZW4od3guUGVu KHNoYWRvd2NvbG91ciwgNSpsb2coc2VsZi5zY2FsZSsxKSkpCisrKyAgICAgICAgICAgICAgICAg ICAgZGMuU2V0UGVuKHd4LlBlbihzaGFkb3djb2xvdXIsIGludCg1KmxvZyhzZWxmLnNjYWxlKzEp KSkpCisrICAgICAgICAgICAgICAgICAgICAgZGMuU2V0QnJ1c2god3guQnJ1c2goc2hhZG93Y29s b3VyKSkKKysgICAgICAgICAgICAgICAgICAgICBzaGFkb3dkaXN0YW5jZSA9IDIuMCpzZWxmLnNj YWxlCisrLSAgICAgICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUobmV3eCArIHNoYWRvd2Rpc3Rh bmNlLCBuZXd5ICsgc2hhZG93ZGlzdGFuY2UsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgeGFyciArIHNoYWRvd2Rpc3RhbmNlLCB5YXJyICsgc2hhZG93ZGlzdGFuY2UpCisrLQor Ky0gICAgICAgICAgICAgICAgICAgIGRjLkRyYXdQb2x5Z29uKFsoeDErc2hhZG93ZGlzdGFuY2Us IHkxK3NoYWRvd2Rpc3RhbmNlKSwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHgyK3NoYWRvd2Rpc3RhbmNlLCB5MitzaGFkb3dkaXN0YW5jZSksCisrLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICh4MytzaGFkb3dkaXN0YW5jZSwgeTMrc2hhZG93ZGlz dGFuY2UpXSkKKysrICAgICAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShpbnQobmV3eCArIHNo YWRvd2Rpc3RhbmNlKSwgaW50KG5ld3kgKyBzaGFkb3dkaXN0YW5jZSksCisrKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50KHhhcnIgKyBzaGFkb3dkaXN0YW5jZSksIGludCh5YXJy ICsgc2hhZG93ZGlzdGFuY2UpKQorKysKKysrICAgICAgICAgICAgICAgICAgICBwb2ludHMgPSBb KHgxK3NoYWRvd2Rpc3RhbmNlLCB5MStzaGFkb3dkaXN0YW5jZSksCisrKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICh4MitzaGFkb3dkaXN0YW5jZSwgeTIrc2hhZG93ZGlzdGFuY2UpLAor KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeDMrc2hhZG93ZGlzdGFuY2UsIHkzK3No YWRvd2Rpc3RhbmNlKV0KKysrICAgICAgICAgICAgICAgICAgICBwb2ludHMgPSBbKGludChwWzBd KSwgaW50KHBbMV0pKSBmb3IgcCBpbiBwb2ludHNdCisrKyAgICAgICAgICAgICAgICAgICAgZGMu RHJhd1BvbHlnb24ocG9pbnRzKQorKyAgICAgICAgICAgICAgICAgZWxzZToKKysgICAgICAgICAg ICAgICAgICAgICAjIERyYXcgVGhlIFNoYWRvdworKyAgICAgICAgICAgICAgICAgICAgIHNoYWRv d2NvbG91ciA9IHNlbGYuR2V0U2hhZG93Q29sb3VyKCkKKysgICAgICAgICAgICAgICAgICAgICBk Yy5TZXRCcnVzaCh3eC5CcnVzaChzaGFkb3djb2xvdXIpKQorKy0gICAgICAgICAgICAgICAgICAg IGRjLlNldFBlbih3eC5QZW4oc2hhZG93Y29sb3VyLCAxLjApKQorKysgICAgICAgICAgICAgICAg ICAgIGRjLlNldFBlbih3eC5QZW4oc2hhZG93Y29sb3VyLCAxKSkKKysgICAgICAgICAgICAgICAg ICAgICBzaGFkb3dkaXN0YW5jZSA9IDEuNSpzZWxmLnNjYWxlCisrIAorKy0gICAgICAgICAgICAg ICAgICAgIGRjLkRyYXdQb2x5Z29uKFsoeDErc2hhZG93ZGlzdGFuY2UsIHkxK3NoYWRvd2Rpc3Rh bmNlKSwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHgyK3NoYWRvd2Rp c3RhbmNlLCB5MitzaGFkb3dkaXN0YW5jZSksCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICh4MytzaGFkb3dkaXN0YW5jZSwgeTMrc2hhZG93ZGlzdGFuY2UpLAorKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeDQrc2hhZG93ZGlzdGFuY2UsIHk0K3No YWRvd2Rpc3RhbmNlKV0pCisrKyAgICAgICAgICAgICAgICAgICAgcG9pbnRzID0gWyh4MStzaGFk b3dkaXN0YW5jZSwgeTErc2hhZG93ZGlzdGFuY2UpLAorKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoeDIrc2hhZG93ZGlzdGFuY2UsIHkyK3NoYWRvd2Rpc3RhbmNlKSwKKysrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHgzK3NoYWRvd2Rpc3RhbmNlLCB5MytzaGFkb3dkaXN0 YW5jZSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4NCtzaGFkb3dkaXN0YW5j ZSwgeTQrc2hhZG93ZGlzdGFuY2UpXQorKysgICAgICAgICAgICAgICAgICAgIHBvaW50cyA9IFso aW50KHBbMF0pLCBpbnQocFsxXSkpIGZvciBwIGluIHBvaW50c10KKysrICAgICAgICAgICAgICAg ICAgICBkYy5EcmF3UG9seWdvbihwb2ludHMpCisrIAorKyAgICAgICAgICAgICBpZiBoYW5kc3R5 bGUgPT0gIkFycm93IjoKKysgCisrLSAgICAgICAgICAgICAgICBkYy5TZXRQZW4od3guUGVuKGhh bmRjb2xvdXIsIDEuNSkpCisrKyAgICAgICAgICAgICAgICBkYy5TZXRQZW4od3guUGVuKGhhbmRj b2xvdXIsIDEpKQorKyAKKysgICAgICAgICAgICAgICAgICMgRHJhdyBUaGUgU21hbGwgQ2lyY2xl IEluIFRoZSBDZW50ZXIgLS0+IFRoZSBIYW5kICJIb2xkZXIiCisrICAgICAgICAgICAgICAgICBk Yy5TZXRCcnVzaCh3eC5CcnVzaChzcGVlZGJhY2tncm91bmQpKQorKy0gICAgICAgICAgICAgICAg ZGMuRHJhd0NpcmNsZShjZW50ZXJYLCBjZW50ZXJZLCA0KnNlbGYuc2NhbGUpCisrKyAgICAgICAg ICAgICAgICBkYy5EcmF3Q2lyY2xlKGNlbnRlclgsIGNlbnRlclksIGludCg0KnNlbGYuc2NhbGUp KQorKyAKKystICAgICAgICAgICAgICAgIGRjLlNldFBlbih3eC5QZW4oaGFuZGNvbG91ciwgNSps b2coc2VsZi5zY2FsZSsxKSkpCisrKyAgICAgICAgICAgICAgICBkYy5TZXRQZW4od3guUGVuKGhh bmRjb2xvdXIsIGludCg1KmxvZyhzZWxmLnNjYWxlKzEpKSkpCisrICAgICAgICAgICAgICAgICAj IERyYXcgVGhlICJIYW5kIiwgQW4gQXJyb3cKKystICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5l KG5ld3gsIG5ld3ksIHhhcnIsIHlhcnIpCisrKyAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShp bnQobmV3eCksIGludChuZXd5KSwgaW50KHhhcnIpLCBpbnQoeWFycikpCisrIAorKyAgICAgICAg ICAgICAgICAgIyBEcmF3IFRoZSBBcnJvdyBQb2ludGVyCisrICAgICAgICAgICAgICAgICBkYy5T ZXRCcnVzaCh3eC5CcnVzaChoYW5kY29sb3VyKSkKKystICAgICAgICAgICAgICAgIGRjLkRyYXdQ b2x5Z29uKFsoeDEsIHkxKSwgKHgyLCB5MiksICh4MywgeTMpXSkKKysrICAgICAgICAgICAgICAg IHBvaW50cyA9IFsoeDEsIHkxKSwgKHgyLCB5MiksICh4MywgeTMpXQorKysgICAgICAgICAgICAg ICAgcG9pbnRzID0gWyhpbnQocFswXSksIGludChwWzFdKSkgZm9yIHAgaW4gcG9pbnRzXQorKysg ICAgICAgICAgICAgICAgZGMuRHJhd1BvbHlnb24ocG9pbnRzKQorKyAKKysgICAgICAgICAgICAg ZWxzZToKKysgCisrICAgICAgICAgICAgICAgICAjIERyYXcgVGhlIEhhbmQgUG9pbnRlcgorKy0g ICAgICAgICAgICAgICAgZGMuU2V0UGVuKHd4LlBlbihoYW5kY29sb3VyLCAxLjUpKQorKysgICAg ICAgICAgICAgICAgZGMuU2V0UGVuKHd4LlBlbihoYW5kY29sb3VyLCAxKSkKKysgICAgICAgICAg ICAgICAgIGRjLlNldEJydXNoKHd4LkJydXNoKGhhbmRjb2xvdXIpKQorKy0gICAgICAgICAgICAg ICAgZGMuRHJhd1BvbHlnb24oWyh4MSwgeTEpLCAoeDIsIHkyKSwgKHgzLCB5MyksICh4NCwgeTQp XSkKKysrICAgICAgICAgICAgICAgIHBvaW50cyA9IFsoeDEsIHkxKSwgKHgyLCB5MiksICh4Mywg eTMpLCAoeDQsIHk0KV0KKysrICAgICAgICAgICAgICAgIHBvaW50cyA9IFsoaW50KHBbMF0pLCBp bnQocFsxXSkpIGZvciBwIGluIHBvaW50c10KKysrICAgICAgICAgICAgICAgIGRjLkRyYXdQb2x5 Z29uKHBvaW50cykKKysgCisrICAgICAgICAgICAgICAgICAjIERyYXcgVGhlIFNtYWxsIENpcmNs ZSBJbiBUaGUgQ2VudGVyIC0tPiBUaGUgSGFuZCAiSG9sZGVyIgorKyAgICAgICAgICAgICAgICAg ZGMuU2V0QnJ1c2god3guQnJ1c2goc3BlZWRiYWNrZ3JvdW5kKSkKKystICAgICAgICAgICAgICAg IGRjLkRyYXdDaXJjbGUoY2VudGVyWCwgY2VudGVyWSwgNCpzZWxmLnNjYWxlKQorKysgICAgICAg ICAgICAgICAgZGMuRHJhd0NpcmNsZShjZW50ZXJYLCBjZW50ZXJZLCBpbnQoNCpzZWxmLnNjYWxl KSkKKysgCisrIAorKyAgICAgZGVmIFNldEludGVydmFscyhzZWxmLCBpbnRlcnZhbHM9Tm9uZSk6 CisrQEAgLTE1MjcsNyArMTUzNyw3IEBAIGRlZiBTZXRNaWRkbGVUZXh0Rm9udChzZWxmLCBmb250 PU5vbmUpOgorKyAKKysgICAgICAgICBpZiBmb250IGlzIE5vbmU6CisrICAgICAgICAgICAgIHNl bGYuX21pZGRsZXRleHRmb250ID0gd3guRm9udCgxLCB3eC5GT05URkFNSUxZX1NXSVNTLCB3eC5G T05UU1RZTEVfTk9STUFMLCB3eC5GT05UV0VJR0hUX0JPTEQsIEZhbHNlKQorKy0gICAgICAgICAg ICBzZWxmLl9taWRkbGV0ZXh0c2l6ZSA9IDEwLjAKKysrICAgICAgICAgICAgc2VsZi5fbWlkZGxl dGV4dHNpemUgPSAxMAorKyAgICAgICAgICAgICBzZWxmLl9taWRkbGV0ZXh0Zm9udC5TZXRQb2lu dFNpemUoc2VsZi5fbWlkZGxldGV4dHNpemUpCisrICAgICAgICAgZWxzZToKKysgICAgICAgICAg ICAgc2VsZi5fbWlkZGxldGV4dGZvbnQgPSBmb250CisrQEAgLTE1OTksNyArMTYwOSw3IEBAIGRl ZiBDaXJjbGVDb29yZHMoc2VsZiwgcmFkaXVzLCBhbmdsZSwgY2VudGVyWCwgY2VudGVyWSk6Cisr ICAgICAgICAgeCA9IHJhZGl1cypjb3MoYW5nbGUpICsgY2VudGVyWAorKyAgICAgICAgIHkgPSBy YWRpdXMqc2luKGFuZ2xlKSArIGNlbnRlclkKKysgCisrLSAgICAgICAgcmV0dXJuIHgsIHkKKysr ICAgICAgICByZXR1cm4gaW50KHgpLCBpbnQoeSkKKysgCisrIAorKyAgICAgZGVmIEdldEludGVy c2VjdGlvbihzZWxmLCBjdXJyZW50LCBpbnRlcnZhbHMpOgorK2RpZmYgLS1naXQgYS93eC9saWIv YWd3L3N1cGVydG9vbHRpcC5weSBiL3d4L2xpYi9hZ3cvc3VwZXJ0b29sdGlwLnB5CisraW5kZXgg YTkyY2UxMGQxLi5jZDBmMGM5ZjcgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9zdXBlcnRvb2x0 aXAucHkKKysrKysgYi93eC9saWIvYWd3L3N1cGVydG9vbHRpcC5weQorK0BAIC0yOTUsOCArMjk1 LDggQEAgZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQpOgorKyAKKysgICAgICAgICAjIEdldCB0aGUg dXNlciBvcHRpb25zIGZvciBoZWFkZXIsIGJpdG1hcHMgZXRjLi4uCisrICAgICAgICAgZHJhd0hl YWRlciwgZHJhd0Zvb3RlciA9IGNsYXNzUGFyZW50LkdldERyYXdIZWFkZXJMaW5lKCksIGNsYXNz UGFyZW50LkdldERyYXdGb290ZXJMaW5lKCkKKystICAgICAgICB0b3BSZWN0ID0gd3guUmVjdChm cmFtZVJlY3QueCwgZnJhbWVSZWN0LnksIGZyYW1lUmVjdC53aWR0aCwgZnJhbWVSZWN0LmhlaWdo dC8yKQorKy0gICAgICAgIGJvdHRvbVJlY3QgPSB3eC5SZWN0KGZyYW1lUmVjdC54LCBmcmFtZVJl Y3QueStmcmFtZVJlY3QuaGVpZ2h0LzIsIGZyYW1lUmVjdC53aWR0aCwgZnJhbWVSZWN0LmhlaWdo dC8yKzEpCisrKyAgICAgICAgdG9wUmVjdCA9IHd4LlJlY3QoZnJhbWVSZWN0LngsIGZyYW1lUmVj dC55LCBmcmFtZVJlY3Qud2lkdGgsIGZyYW1lUmVjdC5oZWlnaHQvLzIpCisrKyAgICAgICAgYm90 dG9tUmVjdCA9IHd4LlJlY3QoZnJhbWVSZWN0LngsIGZyYW1lUmVjdC55K2ZyYW1lUmVjdC5oZWln aHQvLzIsIGZyYW1lUmVjdC53aWR0aCwgZnJhbWVSZWN0LmhlaWdodC8vMisxKQorKyAgICAgICAg ICMgRmlsbCB0aGUgdHJpcGxlLWdyYWRpZW50CisrICAgICAgICAgZGMuR3JhZGllbnRGaWxsTGlu ZWFyKHRvcFJlY3QsIHRvcENvbG91ciwgbWlkZGxlQ29sb3VyLCB3eC5TT1VUSCkKKysgICAgICAg ICBkYy5HcmFkaWVudEZpbGxMaW5lYXIoYm90dG9tUmVjdCwgbWlkZGxlQ29sb3VyLCBib3R0b21D b2xvdXIsIHd4LlNPVVRIKQorK0BAIC0zMjQsOSArMzI0LDkgQEAgZGVmIE9uUGFpbnQoc2VsZiwg ZXZlbnQpOgorKyAgICAgICAgIG5vcm1hbFRleHQgPSBjbGFzc1BhcmVudC5HZXRUZXh0Q29sb3Vy KCkKKysgICAgICAgICBpZiBoZWFkZXI6CisrICAgICAgICAgICAgIGRjLlNldFRleHRGb3JlZ3Jv dW5kKG5vcm1hbFRleHQpCisrLSAgICAgICAgICAgIGRjLkRyYXdUZXh0KGhlYWRlciwgYm1wWFBv cytibXBXaWR0aCtzZWxmLl9zcGFjaW5nLCAoaGVpZ2h0LXRleHRIZWlnaHQrc2VsZi5fc3BhY2lu ZykvMikKKysrICAgICAgICAgICAgZGMuRHJhd1RleHQoaGVhZGVyLCBibXBYUG9zK2JtcFdpZHRo K3NlbGYuX3NwYWNpbmcsIChoZWlnaHQtdGV4dEhlaWdodCtzZWxmLl9zcGFjaW5nKS8vMikKKysg ICAgICAgICBpZiBoZWFkZXJCbXAgYW5kIGhlYWRlckJtcC5Jc09rKCk6CisrLSAgICAgICAgICAg IGRjLkRyYXdCaXRtYXAoaGVhZGVyQm1wLCBibXBYUG9zLCAoaGVpZ2h0LWJtcEhlaWdodCtzZWxm Ll9zcGFjaW5nKS8yLCBUcnVlKQorKysgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGhlYWRlckJt cCwgYm1wWFBvcywgKGhlaWdodC1ibXBIZWlnaHQrc2VsZi5fc3BhY2luZykvLzIsIFRydWUpCisr IAorKyAgICAgICAgIGlmIGhlYWRlciBvciAoaGVhZGVyQm1wIGFuZCBoZWFkZXJCbXAuSXNPaygp KToKKysgICAgICAgICAgICAgeVBvcyArPSBoZWlnaHQKKytAQCAtMzc2LDcgKzM3Niw3IEBAIGRl ZiBPblBhaW50KHNlbGYsIGV2ZW50KToKKysgICAgICAgICAgICAgICAgIG1lc3NhZ2VIZWlnaHQg Kz0gdGV4dEhlaWdodAorKyAKKysgICAgICAgICAgICAgICAgIHhUZXh0ID0gKGJtcFdpZHRoICsg MiAqIHNlbGYuX3NwYWNpbmcpIGlmIGJtcFdpZHRoID4gMCBlbHNlIHNlbGYuX3NwYWNpbmcKKyst ICAgICAgICAgICAgICAgIHlUZXh0ICs9IHRleHRIZWlnaHQvMitzZWxmLl9zcGFjaW5nCisrKyAg ICAgICAgICAgICAgICB5VGV4dCArPSB0ZXh0SGVpZ2h0Ly8yK3NlbGYuX3NwYWNpbmcKKysgICAg ICAgICAgICAgICAgIG1heFdpZHRoID0gbWF4KHhUZXh0ICsgdGV4dFdpZHRoICsgc2VsZi5fc3Bh Y2luZywgbWF4V2lkdGgpCisrICAgICAgICAgICAgICAgICBkYy5EcmF3VGV4dChsaW5lLCB4VGV4 dCwgeVRleHQpCisrICAgICAgICAgICAgICAgICBpZiBpc0xpbms6CisrQEAgLTQxMiw4ICs0MTIs OCBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrICAgICAgICAgICAgIGlmIGRyYXdGb290 ZXI6CisrICAgICAgICAgICAgICAgICAjIERyYXcgdGhlIHNlcGFyYXRvciBsaW5lIGJlZm9yZSB0 aGUgZm9vdGVyCisrICAgICAgICAgICAgICAgICBkYy5TZXRQZW4od3guR1JFWV9QRU4pCisrLSAg ICAgICAgICAgICAgICBkYy5EcmF3TGluZShzZWxmLl9zcGFjaW5nLCB5UG9zLXNlbGYuX3NwYWNp bmcvMit0b0FkZCwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLXNlbGYuX3Nw YWNpbmcsIHlQb3Mtc2VsZi5fc3BhY2luZy8yK3RvQWRkKQorKysgICAgICAgICAgICAgICAgZGMu RHJhd0xpbmUoc2VsZi5fc3BhY2luZywgeVBvcy1zZWxmLl9zcGFjaW5nLy8yK3RvQWRkLAorKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgtc2VsZi5fc3BhY2luZywgeVBvcy1zZWxm Ll9zcGFjaW5nLy8yK3RvQWRkKQorKyAgICAgICAgICMgRHJhdyB0aGUgZm9vdGVyIGFuZCBmb290 ZXIgYml0bWFwIChpZiBhbnkpCisrICAgICAgICAgZGMuU2V0VGV4dEZvcmVncm91bmQobm9ybWFs VGV4dCkKKysgICAgICAgICBoZWlnaHQgPSBtYXgodGV4dEhlaWdodCwgYm1wSGVpZ2h0KQorK0BA IC00MjQsNyArNDI0LDcgQEAgZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQpOgorKyAgICAgICAgICAg ICBtYXhXaWR0aCA9IG1heChibXBYUG9zICsgYm1wV2lkdGggKyAoc2VsZi5fc3BhY2luZyoyKSAr IHRleHRXaWR0aCwgbWF4V2lkdGgpCisrICAgICAgICAgaWYgZm9vdGVyQm1wIGFuZCBmb290ZXJC bXAuSXNPaygpOgorKyAgICAgICAgICAgICB0b0FkZCA9IChoZWlnaHQgLSBibXBIZWlnaHQgKyBz ZWxmLl9zcGFjaW5nKSAvIDIKKystICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChmb290ZXJCbXAs IGJtcFhQb3MsIHlQb3MgKyB0b0FkZCwgVHJ1ZSkKKysrICAgICAgICAgICAgZGMuRHJhd0JpdG1h cChmb290ZXJCbXAsIGJtcFhQb3MsIGludCh5UG9zICsgdG9BZGQpLCBUcnVlKQorKyAgICAgICAg ICAgICBtYXhXaWR0aCA9IG1heChmb290ZXJCbXAuR2V0U2l6ZSgpLkdldFdpZHRoKCkgKyBibXBY UG9zLCBtYXhXaWR0aCkKKysgCisrICAgICAgICAgbWF4SGVpZ2h0ID0geVBvcyArIGhlaWdodCAr IHRvQWRkCisrQEAgLTgxNSw3ICs4MTUsNyBAQCBkZWYgU2V0U3RhcnREZWxheShzZWxmLCBkZWxh eT0xKToKKysgICAgICAgICA6cGFyYW0gYGRlbGF5YDogdGhlIGRlbGF5IGluIHNlY29uZHMuCisr ICAgICAgICAgIiIiCisrIAorKy0gICAgICAgIHNlbGYuX3N0YXJ0RGVsYXlUaW1lID0gZmxvYXQo ZGVsYXkpCisrKyAgICAgICAgc2VsZi5fc3RhcnREZWxheVRpbWUgPSBpbnQoZGVsYXkpCisrIAor KyAKKysgICAgIGRlZiBHZXRTdGFydERlbGF5KHNlbGYpOgorK0BAIC04MzEsNyArODMxLDcgQEAg ZGVmIFNldEVuZERlbGF5KHNlbGYsIGRlbGF5PTFlNik6CisrICAgICAgICAgOnBhcmFtIGBkZWxh eWA6IHRoZSBkZWxheSBpbiBzZWNvbmRzLgorKyAgICAgICAgICIiIgorKyAKKystICAgICAgICBz ZWxmLl9lbmREZWxheVRpbWUgPSBmbG9hdChkZWxheSkKKysrICAgICAgICBzZWxmLl9lbmREZWxh eVRpbWUgPSBpbnQoZGVsYXkpCisrIAorKyAKKysgICAgIGRlZiBHZXRFbmREZWxheShzZWxmKToK KytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy90b2FzdGVyYm94LnB5IGIvd3gvbGliL2Fndy90b2Fz dGVyYm94LnB5CisraW5kZXggYjczNDI5ZGQyLi44ZWZiNTg2OWIgMTAwNjQ0CisrLS0tIGEvd3gv bGliL2Fndy90b2FzdGVyYm94LnB5CisrKysrIGIvd3gvbGliL2Fndy90b2FzdGVyYm94LnB5Cisr QEAgLTEzMTYsMTEgKzEzMTYsMTEgQEAgZGVmIF9nZXRUZXh0Q29vcmRzKHNlbGYsIGRjKToKKysg ICAgICAgICBmb3IgbGluZSBpbiBsaW5lczoKKysgICAgICAgICAgICAgdywgaCA9IGRjLkdldFRl eHRFeHRlbnQobGluZSkKKysgICAgICAgICAgICAgZmggKz0gaCArIHRleHRQYWRkaW5nCisrLSAg ICAgICAgeSA9ICh0aCAtIGZoKSAvIDI7IGNvb3JkcyA9IFtdCisrKyAgICAgICAgeSA9ICh0aCAt IGZoKSAvLyAyOyBjb29yZHMgPSBbXQorKyAKKysgICAgICAgICBmb3IgbGluZSBpbiBsaW5lczoK KysgICAgICAgICAgICAgdywgaCA9IGRjLkdldFRleHRFeHRlbnQobGluZSkKKystICAgICAgICAg ICAgeCA9ICh0dyAtIHcpIC8gMgorKysgICAgICAgICAgICB4ID0gKHR3IC0gdykgLy8gMgorKyAg ICAgICAgICAgICBjb29yZHMuYXBwZW5kKCh4LCB5KSkKKysgICAgICAgICAgICAgeSArPSBoICsg dGV4dFBhZGRpbmcKKysgCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvdWx0aW1hdGVsaXN0Y3Ry bC5weSBiL3d4L2xpYi9hZ3cvdWx0aW1hdGVsaXN0Y3RybC5weQorK2luZGV4IDE0ZmM0MWY4Ni4u Y2FhNWU1Y2Y0IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvdWx0aW1hdGVsaXN0Y3RybC5weQor KysrKyBiL3d4L2xpYi9hZ3cvdWx0aW1hdGVsaXN0Y3RybC5weQorK0BAIC05MTQsNyArOTE0LDcg QEAgZGVmIERyYXcoc2VsZiwgaW5kZXgsIGRjLCB4LCB5LCBmbGFncywgc29saWRCYWNrZ3JvdW5k PVRydWUpOgorKyAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIldyb25nIGluZGV4IGluIGlt YWdlIGxpc3QiKQorKyAKKysgICAgICAgICBibXAgPSBzZWxmLl9pbWFnZXNbaW5kZXhdCisrLSAg ICAgICAgZGMuRHJhd0JpdG1hcChibXAsIHgsIHksIChmbGFncyAmIHd4LklNQUdFTElTVF9EUkFX X1RSQU5TUEFSRU5UKSA+IDApCisrKyAgICAgICAgZGMuRHJhd0JpdG1hcChibXAsIHgsIGludCh5 KSwgKGZsYWdzICYgd3guSU1BR0VMSVNUX0RSQVdfVFJBTlNQQVJFTlQpID4gMCkKKysgCisrICAg ICAgICAgcmV0dXJuIFRydWUKKysgCisrQEAgLTQwMjIsNyArNDAyMiw3IEBAIGRlZiBTZXRQb3Np dGlvbihzZWxmLCB4LCB5LCBzcGFjaW5nKToKKysgCisrICAgICAgICAgICAgIGlmIGl0ZW0uSGFz SW1hZ2UoKToKKysgCisrLSAgICAgICAgICAgICAgICBzZWxmLl9naS5fcmVjdEljb24ueCA9IHNl bGYuX2dpLl9yZWN0QWxsLnggKyA0ICsgKHNlbGYuX2dpLl9yZWN0QWxsLndpZHRoIC0gc2VsZi5f Z2kuX3JlY3RJY29uLndpZHRoKS8yCisrKyAgICAgICAgICAgICAgICBzZWxmLl9naS5fcmVjdElj b24ueCA9IHNlbGYuX2dpLl9yZWN0QWxsLnggKyA0ICsgKHNlbGYuX2dpLl9yZWN0QWxsLndpZHRo IC0gc2VsZi5fZ2kuX3JlY3RJY29uLndpZHRoKS8vMgorKyAgICAgICAgICAgICAgICAgc2VsZi5f Z2kuX3JlY3RJY29uLnkgPSBzZWxmLl9naS5fcmVjdEFsbC55ICsgNAorKyAKKysgICAgICAgICAg ICAgaWYgaXRlbS5IYXNUZXh0KCk6CisrQEAgLTQwMzAsNyArNDAzMCw3IEBAIGRlZiBTZXRQb3Np dGlvbihzZWxmLCB4LCB5LCBzcGFjaW5nKToKKysgICAgICAgICAgICAgICAgIGlmIHNlbGYuX2dp Ll9yZWN0TGFiZWwud2lkdGggPiBzcGFjaW5nOgorKyAgICAgICAgICAgICAgICAgICAgIHNlbGYu X2dpLl9yZWN0TGFiZWwueCA9IHNlbGYuX2dpLl9yZWN0QWxsLnggKyAyCisrICAgICAgICAgICAg ICAgICBlbHNlOgorKy0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2dpLl9yZWN0TGFiZWwueCA9 IHNlbGYuX2dpLl9yZWN0QWxsLnggKyAyICsgKHNwYWNpbmcvMikgLSAoc2VsZi5fZ2kuX3JlY3RM YWJlbC53aWR0aC8yKQorKysgICAgICAgICAgICAgICAgICAgIHNlbGYuX2dpLl9yZWN0TGFiZWwu eCA9IHNlbGYuX2dpLl9yZWN0QWxsLnggKyAyICsgKHNwYWNpbmcvLzIpIC0gKHNlbGYuX2dpLl9y ZWN0TGFiZWwud2lkdGgvLzIpCisrIAorKyAgICAgICAgICAgICAgICAgc2VsZi5fZ2kuX3JlY3RM YWJlbC55ID0gc2VsZi5fZ2kuX3JlY3RBbGwueSArIHNlbGYuX2dpLl9yZWN0QWxsLmhlaWdodCAr IDIgLSBzZWxmLl9naS5fcmVjdExhYmVsLmhlaWdodAorKyAgICAgICAgICAgICAgICAgc2VsZi5f Z2kuX3JlY3RIaWdobGlnaHQueCA9IHNlbGYuX2dpLl9yZWN0TGFiZWwueCAtIDIKKytAQCAtNDU0 Niw3ICs0NTQ2LDcgQEAgZGVmIERyYXdJblJlcG9ydE1vZGUoc2VsZiwgZGMsIGxpbmUsIHJlY3Qs IHJlY3RITCwgaGlnaGxpZ2h0ZWQsIGN1cnJlbnQsIGVuYWJsZWQKKysgICAgICAgICAgICAgICAg ICMgV2UgZ290IGEgY2hlY2tib3gtdHlwZSBpdGVtCisrICAgICAgICAgICAgICAgICBpeCwgaXkg PSBzZWxmLl9vd25lci5HZXRDaGVja2JveEltYWdlU2l6ZSgpCisrICAgICAgICAgICAgICAgICBj aGVja2VkID0gaXRlbS5Jc0NoZWNrZWQoKQorKy0gICAgICAgICAgICAgICAgc2VsZi5fb3duZXIu RHJhd0NoZWNrYm94KGRjLCB4T2xkLCB5ICsgKGhlaWdodC1peSsxKS8yLCBpdGVtLkdldEtpbmQo KSwgY2hlY2tlZCwgZW5hYmxlZCkKKysrICAgICAgICAgICAgICAgIHNlbGYuX293bmVyLkRyYXdD aGVja2JveChkYywgeE9sZCwgeSArIChoZWlnaHQtaXkrMSkvLzIsIGl0ZW0uR2V0S2luZCgpLCBj aGVja2VkLCBlbmFibGVkKQorKyAgICAgICAgICAgICAgICAgeE9sZCArPSBpeAorKyAgICAgICAg ICAgICAgICAgd2lkdGggLT0gaXgKKysgCisrQEAgLTQ1NTcsNyArNDU1Nyw3IEBAIGRlZiBEcmF3 SW5SZXBvcnRNb2RlKHNlbGYsIGRjLCBsaW5lLCByZWN0LCByZWN0SEwsIGhpZ2hsaWdodGVkLCBj dXJyZW50LCBlbmFibGVkCisrICAgICAgICAgICAgICAgICBmb3IgaW1nIGluIGltYWdlczoKKysg CisrICAgICAgICAgICAgICAgICAgICAgaXgsIGl5ID0gc2VsZi5fb3duZXIuR2V0SW1hZ2VTaXpl KFtpbWddKQorKy0gICAgICAgICAgICAgICAgICAgIHNlbGYuX293bmVyLkRyYXdJbWFnZShpbWcs IGRjLCB4T2xkLCB5ICsgKGhlaWdodC1peSkvMiwgZW5hYmxlZCkKKysrICAgICAgICAgICAgICAg ICAgICBzZWxmLl9vd25lci5EcmF3SW1hZ2UoaW1nLCBkYywgeE9sZCwgeSArIChoZWlnaHQtaXkp Ly8yLCBlbmFibGVkKQorKyAKKysgICAgICAgICAgICAgICAgICAgICB4T2xkICs9IGl4CisrICAg ICAgICAgICAgICAgICAgICAgd2lkdGggLT0gaXgKKytAQCAtNTIzMCw3ICs1MjMwLDcgQEAgZGVm IE9uUGFpbnQoc2VsZiwgZXZlbnQpOgorKyAgICAgICAgICAgICAgICAgIyBXZSBnb3QgYSBjaGVj a2JveC10eXBlIGl0ZW0KKysgICAgICAgICAgICAgICAgIGl4LCBpeSA9IHNlbGYuX293bmVyLkdl dENoZWNrYm94SW1hZ2VTaXplKCkKKysgICAgICAgICAgICAgICAgICMgV2UgZHJhdyBpdCBvbiB0 aGUgbGVmdCwgYWx3YXlzCisrLSAgICAgICAgICAgICAgICBzZWxmLl9vd25lci5EcmF3Q2hlY2ti b3goZGMsIHggKyBIRUFERVJfT0ZGU0VUX1gsIEhFQURFUl9PRkZTRVRfWSArIChoIC0gNCAtIGl5 KS8yLCBraW5kLCBjaGVja2VkLCBlbmFibGVkKQorKysgICAgICAgICAgICAgICAgc2VsZi5fb3du ZXIuRHJhd0NoZWNrYm94KGRjLCB4ICsgSEVBREVSX09GRlNFVF9YLCBIRUFERVJfT0ZGU0VUX1kg KyAoaCAtIDQgLSBpeSkvLzIsIGtpbmQsIGNoZWNrZWQsIGVuYWJsZWQpCisrICAgICAgICAgICAg ICAgICB3Y2hlY2sgKz0gaXggKyBIRUFERVJfSU1BR0VfTUFSR0lOX0lOX1JFUE9SVF9NT0RFCisr ICAgICAgICAgICAgICAgICBjdyAtPSBpeCArIEhFQURFUl9JTUFHRV9NQVJHSU5fSU5fUkVQT1JU X01PREUKKysgCisrQEAgLTY4MTksNyArNjgxOSw3IEBAIGRlZiBIaXRUZXN0TGluZShzZWxmLCBs aW5lLCB4LCB5KToKKysgICAgICAgICAgICAgICAgICAgICAjIFdlIGdvdCBhIGNoZWNrYm94LXR5 cGUgaXRlbQorKyAgICAgICAgICAgICAgICAgICAgIGl4LCBpeSA9IHNlbGYuR2V0Q2hlY2tib3hJ bWFnZVNpemUoKQorKyAgICAgICAgICAgICAgICAgICAgIExIID0gc2VsZi5HZXRMaW5lSGVpZ2h0 KGxpbmUpCisrLSAgICAgICAgICAgICAgICAgICAgcmVjdCA9IHd4LlJlY3QoeE9sZCwgbGluZVkg KyBMSC8yIC0gaXkvMiwgaXgsIGl5KQorKysgICAgICAgICAgICAgICAgICAgIHJlY3QgPSB3eC5S ZWN0KHhPbGQsIGxpbmVZICsgTEgvLzIgLSBpeS8vMiwgaXgsIGl5KQorKyAgICAgICAgICAgICAg ICAgICAgIGlmIHJlY3QuQ29udGFpbnMoKHgsIHkpKToKKysgICAgICAgICAgICAgICAgICAgICAg ICAgbmV3SXRlbSA9IHNlbGYuR2V0UGFyZW50KCkuR2V0SXRlbShsaW5lLCBjb2wpCisrICAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdJdGVtLCBVTENfSElUVEVTVF9PTklURU1DSEVD SworK0BAIC03OTM3LDEzICs3OTM3LDEzIEBAIGRlZiBNb3ZlVG9JdGVtKHNlbGYsIGl0ZW0pOgor KyAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHN0YXJ0X3kgPiB2aWV3X3k6CisrICAgICAgICAg ICAgICAgICAgICAgICAgIHN0YXJ0X3kgLT0gU0NST0xMX1VOSVRfWQorKyAKKystICAgICAgICAg ICAgICAgICAgICBzZWxmLlNjcm9sbCgtMSwgc3RhcnRfeS9TQ1JPTExfVU5JVF9ZKQorKysgICAg ICAgICAgICAgICAgICAgIHNlbGYuU2Nyb2xsKC0xLCBzdGFydF95Ly9TQ1JPTExfVU5JVF9ZKQor KyAKKysgICAgICAgICAgICAgICAgIGlmIHN0YXJ0X3kgKyBoZWlnaHQgPiB2aWV3X3kgKyBjbGll bnRfaDoKKysgICAgICAgICAgICAgICAgICAgICB3aGlsZSBzdGFydF95ICsgaGVpZ2h0IDwgdmll d195ICsgY2xpZW50X2g6CisrICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X3kgKz0gU0NS T0xMX1VOSVRfWQorKyAKKystICAgICAgICAgICAgICAgICAgICBzZWxmLlNjcm9sbCgtMSwgKHN0 YXJ0X3kraGVpZ2h0LWNsaWVudF9oK1NDUk9MTF9VTklUX1kpL1NDUk9MTF9VTklUX1kpCisrKyAg ICAgICAgICAgICAgICAgICAgc2VsZi5TY3JvbGwoLTEsIChzdGFydF95K2hlaWdodC1jbGllbnRf aCtTQ1JPTExfVU5JVF9ZKS8vU0NST0xMX1VOSVRfWSkKKysgCisrICAgICAgICAgZWxzZTogIyAh cmVwb3J0CisrIAorK0BAIC03OTYwLDcgKzc5NjAsNyBAQCBkZWYgTW92ZVRvSXRlbShzZWxmLCBp dGVtKToKKysgICAgICAgICAgICAgaWYgcmVjdC55ICsgcmVjdC5oZWlnaHQgLSA1ID4gdmlld195 ICsgY2xpZW50X2g6CisrICAgICAgICAgICAgICAgICBzeSA9IChyZWN0LnkgKyByZWN0LmhlaWdo dCAtIGNsaWVudF9oICsgaExpbmUpL2hMaW5lCisrIAorKy0gICAgICAgICAgICBzZWxmLlNjcm9s bChzeCwgc3kpCisrKyAgICAgICAgICAgIHNlbGYuU2Nyb2xsKGludChzeCksIGludChzeSkpCisr IAorKyAKKysgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cv eGxzZ3JpZC5weSBiL3d4L2xpYi9hZ3cveGxzZ3JpZC5weQorK2luZGV4IGI1MDVhZWJiNC4uMTcy NjdmYWJjIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cveGxzZ3JpZC5weQorKysrKyBiL3d4L2xp Yi9hZ3cveGxzZ3JpZC5weQorK0BAIC05NjUsNyArOTY1LDcgQEAgZGVmIERyYXcoc2VsZiwgZGMs IHJlY3QpOgorKyAgICAgICAgICAgICB4cCA9IHhjIC0gKHRleHRfd2lkdGgvMikqeHNoaWZ0IC0g KHRleHRfaGVpZ2h0LzIpKnlzaGlmdAorKyAgICAgICAgICAgICB5cCA9IHljICsgKHRleHRfd2lk dGgvMikqeXNoaWZ0IC0gKHRleHRfaGVpZ2h0LzIpKnhzaGlmdAorKyAKKystICAgICAgICAgICAg ZGMuRHJhd1JvdGF0ZWRUZXh0KHZhbHVlLCB4cCwgeXAsIHNlbGYucm90YXRpb24pCisrKyAgICAg ICAgICAgIGRjLkRyYXdSb3RhdGVkVGV4dCh2YWx1ZSwgaW50KHhwKSwgaW50KHlwKSwgc2VsZi5y b3RhdGlvbikKKysgCisrICAgICAgICAgZWxzZToKKysgCisrQEAgLTExMjUsNyArMTEyNSw3IEBA IGRlZiBEcmF3KHNlbGYsIGRjLCByZWN0KToKKysgICAgICAgICAgICAgaWYgZm9udC5lc2NhcGVt ZW50ID09IDE6CisrICAgICAgICAgICAgICAgICB5cG9zID0geXBvcyAtIG1heEggKyBoZWlnaHQK KysgCisrLSAgICAgICAgICAgIGRjLkRyYXdUZXh0KGNodW5rLCBzdGFydCwgeXBvcykKKysrICAg ICAgICAgICAgZGMuRHJhd1RleHQoY2h1bmssIHN0YXJ0LCBpbnQoeXBvcykpCisrICAgICAgICAg ICAgIHN0YXJ0ICs9IHdpZHRoCisrIAorKyAKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy96b29t YmFyLnB5IGIvd3gvbGliL2Fndy96b29tYmFyLnB5CisraW5kZXggMWU2ZWM1ZGEzLi44YzJhZmQw NTggMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy96b29tYmFyLnB5CisrKysrIGIvd3gvbGliL2Fn dy96b29tYmFyLnB5CisrQEAgLTQ2Myw3ICs0NjMsNyBAQCBkZWYgU2V0U2l6ZShzZWxmLCB3aWR0 aCwgaGVpZ2h0KToKKysgICAgIGRlZiBHZXRQb3NpdGlvbihzZWxmKToKKysgICAgICAgICAiIiIg UmV0dXJucyB0aGUgYnV0dG9uIHBvc2l0aW9uLiAiIiIKKysgCisrLSAgICAgICAgcmV0dXJuIHd4 LlBvaW50KHNlbGYuX2xlZnQsIHNlbGYuX3RvcCkKKysrICAgICAgICByZXR1cm4gd3guUG9pbnQo aW50KHNlbGYuX2xlZnQpLCBpbnQoc2VsZi5fdG9wKSkKKysgCisrIAorKyAgICAgZGVmIEdldFNp emUoc2VsZik6CisrQEAgLTYwMSw3ICs2MDEsNyBAQCBkZWYgX19pbml0X18oc2VsZiwgYml0bWFw PU5vbmUpOgorKyAgICAgZGVmIEdldFBvc2l0aW9uKHNlbGYpOgorKyAgICAgICAgICIiIiBSZXR1 cm5zIHRoZSBwb3NpdGlvbiBvZiA6Y2xhc3M6YHd4LkltYWdlQmFyYCwgYXMgYSA6Y2xhc3M6YHd4 LlBvaW50YC4gIiIiCisrIAorKy0gICAgICAgIHJldHVybiB3eC5Qb2ludChzZWxmLl9sZWZ0LCBz ZWxmLl90b3ApCisrKyAgICAgICAgcmV0dXJuIHd4LlBvaW50KGludChzZWxmLl9sZWZ0KSwgaW50 KHNlbGYuX3RvcCkpCisrIAorKyAKKysgICAgIGRlZiBHZXRTaXplKHNlbGYpOgorK0BAIC02NjAs NyArNjYwLDcgQEAgZGVmIFNldEJhckNvbG91cihzZWxmLCBjb2xvdXIsIHhTaXplPU5vbmUsIHlT aXplPU5vbmUpOgorKyAgICAgICAgIGlmIHhTaXplIGlzIG5vdCBOb25lOgorKyAgICAgICAgICAg ICBzZWxmLl9zaXplID0gd3guU2l6ZSh4U2l6ZSwgeVNpemUpCisrIAorKy0gICAgICAgIGJpdG1h cC5SZXNjYWxlKHNlbGYuX3NpemUud2lkdGgsIHNlbGYuX3NpemUuaGVpZ2h0LzIpCisrKyAgICAg ICAgYml0bWFwLlJlc2NhbGUoc2VsZi5fc2l6ZS53aWR0aCwgc2VsZi5fc2l6ZS5oZWlnaHQvLzIp CisrIAorKyAgICAgICAgIHIxLCBnMSwgYjEgPSBzZWxmLl9zdGFydENvbG91ci5SZWQoKSwgc2Vs Zi5fc3RhcnRDb2xvdXIuR3JlZW4oKSwgc2VsZi5fc3RhcnRDb2xvdXIuQmx1ZSgpCisrICAgICAg ICAgcjIsIGcyLCBiMiA9IGNvbG91ci5SZWQoKSwgY29sb3VyLkdyZWVuKCksIGNvbG91ci5CbHVl KCkKKytAQCAtMTA2NSw3ICsxMDY1LDcgQEAgZGVmIFJlc2V0U2l6ZShzZWxmKToKKysgICAgICAg ICAgICAgeVNpemUgKz0geWV4dGVudAorKyAKKysgICAgICAgICBpZiBzZWxmLl9zaG93UmVmbGVj dGlvbnM6CisrLSAgICAgICAgICAgIHlTaXplICs9IHNlbGYuX2J1dHRvblNpemUvMgorKysgICAg ICAgICAgICB5U2l6ZSArPSBzZWxmLl9idXR0b25TaXplLy8yCisrICAgICAgICAgaWYgc2VsZi5f Y2VudGVyWm9vbToKKysgICAgICAgICAgICAgeVNpemUgKz0gc2VsZi5fYnV0dG9uU2l6ZQorKyAK KytAQCAtMTI0MCw3ICsxMjQwLDcgQEAgZGVmIERyYXdMYWJlbHMoc2VsZiwgZGMpOgorKyAgICAg ICAgICAgICB0ZXh0V2lkdGgsIHRleHRIZWlnaHQgPSBkYy5HZXRUZXh0RXh0ZW50KGxhYmVsKQor KyAgICAgICAgICAgICBidXR0b25Qb3MgPSBidXR0b24uR2V0UG9zaXRpb24oKQorKyAgICAgICAg ICAgICBidXR0b25TaXplID0gYnV0dG9uLkdldFNpemUoKQorKy0gICAgICAgICAgICB4cG9zID0g YnV0dG9uUG9zLnggKyAoYnV0dG9uU2l6ZS53aWR0aCAtIHRleHRXaWR0aCkvMgorKysgICAgICAg ICAgICB4cG9zID0gYnV0dG9uUG9zLnggKyAoYnV0dG9uU2l6ZS53aWR0aCAtIHRleHRXaWR0aCkv LzIKKysgICAgICAgICAgICAgeXBvcyA9IGJ1dHRvblBvcy55IC0gdGV4dEhlaWdodCAtIDIKKysg CisrICAgICAgICAgICAgIGRjLkRyYXdSZWN0YW5nbGUoeHBvcy0yLCB5cG9zLTEsIHRleHRXaWR0 aCs0LCB0ZXh0SGVpZ2h0KzIpCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hbmFsb2djbG9jay9hbmFs b2djbG9jay5weSBiL3d4L2xpYi9hbmFsb2djbG9jay9hbmFsb2djbG9jay5weQorK2luZGV4IDdj NGIxODk3OS4uMWVlMWQ2NzQyIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hbmFsb2djbG9jay9hbmFs b2djbG9jay5weQorKysrKyBiL3d4L2xpYi9hbmFsb2djbG9jay9hbmFsb2djbG9jay5weQorK0BA IC0xNzMsNyArMTczLDcgQEAgZGVmIF9yZWNhbGNDb29yZHMoc2VsZiwgc2l6ZSk6CisrICAgICAg ICAgc2NhbGUgPSBtaW4oW2Zsb2F0KHNpemUud2lkdGgpIC8gc2VsZi5iYXNlc2l6ZS53aWR0aCwK KysgICAgICAgICAgICAgICAgICAgICAgZmxvYXQoc2l6ZS5oZWlnaHQpIC8gc2VsZi5iYXNlc2l6 ZS5oZWlnaHRdKQorKyAKKystICAgICAgICBjZW50cmUgPSB3eC5Qb2ludChzaXplLndpZHRoIC8g Mi4sIHNpemUuaGVpZ2h0IC8gMi4pCisrKyAgICAgICAgY2VudHJlID0gd3guUG9pbnQoc2l6ZS53 aWR0aCAvLyAyLCBzaXplLmhlaWdodCAvLyAyKQorKyAKKysgICAgICAgICBzZWxmLkJveC5SZWNh bGNDb29yZHMoc2l6ZSwgY2VudHJlLCBzY2FsZSkKKysgICAgICAgICBzZWxmLkhhbmRzLlJlY2Fs Y0Nvb3JkcyhzaXplLCBjZW50cmUsIHNjYWxlKQorK2RpZmYgLS1naXQgYS93eC9saWIvYW5hbG9n Y2xvY2svaGVscGVycy5weSBiL3d4L2xpYi9hbmFsb2djbG9jay9oZWxwZXJzLnB5CisraW5kZXgg ODhkMTk4YmVlLi45Njc0ZGU5MTIgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2FuYWxvZ2Nsb2NrL2hl bHBlcnMucHkKKysrKysgYi93eC9saWIvYW5hbG9nY2xvY2svaGVscGVycy5weQorK0BAIC0zNyw3 ICszNyw3IEBAIGRlZiBfX2luaXRfXyhzZWxmLCBpZHg9MCwgcG9zPU5vbmUsIHNpemU9Tm9uZSwg b2Zmc2V0PTAsIGNsb2Nrc2l6ZT1Ob25lLAorKyAKKysgCisrICAgICBkZWYgX3BvbDJyZWN0KHNl bGYsIG0sIHQpOgorKy0gICAgICAgIHJldHVybiBtICogbWF0aC5jb3MobWF0aC5yYWRpYW5zKHQp KSwgbSAqIG1hdGguc2luKG1hdGgucmFkaWFucyh0KSkKKysrICAgICAgICByZXR1cm4gaW50KG0g KiBtYXRoLmNvcyhtYXRoLnJhZGlhbnModCkpKSwgaW50KG0gKiBtYXRoLnNpbihtYXRoLnJhZGlh bnModCkpKQorKyAKKysgCisrICAgICBkZWYgX3JlY3QycG9sKHNlbGYsIHgsIHkpOgorK0BAIC0x NzQsNyArMTc0LDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKKysgCisrICAgICBk ZWYgRHJhdyhzZWxmLCBkYyk6CisrICAgICAgICAgc2VsZi5keWVyLlNlbGVjdChkYykKKystICAg ICAgICBkYy5EcmF3Q2lyY2xlKHNlbGYucG9zLngsIHNlbGYucG9zLnksIHNlbGYucmFkaXVzKQor KysgICAgICAgIGRjLkRyYXdDaXJjbGUoc2VsZi5wb3MueCwgc2VsZi5wb3MueSwgaW50KHNlbGYu cmFkaXVzKSkKKysgCisrIAorKyAgICAgZGVmIFJlY2FsY0Nvb3JkcyhzZWxmLCBjbG9ja3NpemUs IGNlbnRyZSwgc2NhbGUpOgorK0BAIC0yMDUsNyArMjA1LDcgQEAgZGVmIERyYXcoc2VsZiwgZGMs IGVuZCwgb2Zmc2V0PTApOgorKyAgICAgICAgICAgICBtLCB0ID0gc2VsZi5fcmVjdDJwb2woeCwg eSkKKysgICAgICAgICAgICAgcG9seWdvbltpXSA9IHNlbGYuX3BvbDJyZWN0KG0sIHQgLSBhbmds ZSkKKysgCisrLSAgICAgICAgZGMuRHJhd1BvbHlnb24ocG9seWdvbiwgY2VudHJlLnggKyBvZmZz ZXQsIGNlbnRyZS55ICsgb2Zmc2V0KQorKysgICAgICAgIGRjLkRyYXdQb2x5Z29uKHBvbHlnb24s IGludChjZW50cmUueCArIG9mZnNldCksIGludChjZW50cmUueSArIG9mZnNldCkpCisrIAorKyAK KysgICAgIGRlZiBSZWNhbGNDb29yZHMoc2VsZiwgY2xvY2tzaXplLCBjZW50cmUsIHNjYWxlKToK KytAQCAtMjI2LDcgKzIyNiw3IEBAIGRlZiBEcmF3KHNlbGYsIGRjLCBvZmZzZXQ9MCk6CisrICAg ICAgICAgeCA9IHNlbGYucG9zLnggLSB3aWR0aCAvIDIuCisrICAgICAgICAgeSA9IHNlbGYucG9z LnkgLSBoZWlnaHQgLyAyLgorKyAKKystICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKHggKyBvZmZz ZXQsIHkgKyBvZmZzZXQsIHdpZHRoLCBoZWlnaHQpCisrKyAgICAgICAgZGMuRHJhd1JlY3Rhbmds ZShpbnQoeCArIG9mZnNldCksIGludCh5ICsgb2Zmc2V0KSwgaW50KHdpZHRoKSwgaW50KGhlaWdo dCkpCisrIAorKyAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyAKKytAQCAtMjQyLDcgKzI0Miw3IEBAIGRlZiBE cmF3KHNlbGYsIGRjLCBvZmZzZXQ9MCk6CisrICAgICAgICAgeCA9IHNlbGYucG9zLngKKysgICAg ICAgICB5ID0gc2VsZi5wb3MueQorKyAKKystICAgICAgICBkYy5EcmF3Q2lyY2xlKHggKyBvZmZz ZXQsIHkgKyBvZmZzZXQsIHJhZGl1cykKKysrICAgICAgICBkYy5EcmF3Q2lyY2xlKGludCh4ICsg b2Zmc2V0KSwgaW50KHkgKyBvZmZzZXQpLCBpbnQocmFkaXVzKSkKKysgCisrICMtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisrIAorK0BAIC0yNzMsNyArMjczLDcgQEAgZGVmIERyYXdTdHJhaWdodChzZWxmLCBkYywg b2Zmc2V0PTApOgorKyAgICAgICAgIHggPSBzZWxmLnBvcy54IC0gd2lkdGggLyAyLgorKyAgICAg ICAgIHkgPSBzZWxmLnBvcy55IC0gaGVpZ2h0IC8gMi4KKysgCisrLSAgICAgICAgZGMuRHJhd1Bv bHlnb24ocG9seWdvbiwgeCArIG9mZnNldCwgeSArIG9mZnNldCkKKysrICAgICAgICBkYy5EcmF3 UG9seWdvbihwb2x5Z29uLCBpbnQoeCArIG9mZnNldCksIGludCh5ICsgb2Zmc2V0KSkKKysgCisr IAorKyAgICAgZGVmIERyYXdSb3RhdGVkKHNlbGYsIGRjLCBvZmZzZXQ9MCk6CisrQEAgLTI5MCw3 ICsyOTAsNyBAQCBkZWYgRHJhd1JvdGF0ZWQoc2VsZiwgZGMsIG9mZnNldD0wKToKKysgICAgICAg ICB4ID0gc2VsZi5wb3MueCAtIG1hdGguY29zKHIpICogd2lkdGggLyAyLiAtIG1hdGguc2luKHIp ICogaGVpZ2h0IC8gMi4KKysgICAgICAgICB5ID0gc2VsZi5wb3MueSAtIG1hdGguY29zKHIpICog aGVpZ2h0IC8gMi4gKyBtYXRoLnNpbihyKSAqIHdpZHRoIC8gMi4KKysgCisrLSAgICAgICAgZGMu RHJhd1BvbHlnb24ocG9seWdvbiwgeCArIG9mZnNldCwgeSArIG9mZnNldCkKKysrICAgICAgICBk Yy5EcmF3UG9seWdvbihwb2x5Z29uLCBpbnQoeCArIG9mZnNldCksIGludCh5ICsgb2Zmc2V0KSkK KysgCisrICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIAorK0BAIC0zMDksNyArMzA5LDcgQEAgZGVmIERyYXdT dHJhaWdodChzZWxmLCBkYywgb2Zmc2V0PTApOgorKyAgICAgICAgIHggPSBzZWxmLnBvcy54IC0g d2lkdGggLyAyLgorKyAgICAgICAgIHkgPSBzZWxmLnBvcy55IC0gaGVpZ2h0IC8gMi4KKysgCisr LSAgICAgICAgZGMuRHJhd1RleHQoc2VsZi50ZXh0LCB4ICsgb2Zmc2V0LCB5ICsgb2Zmc2V0KQor KysgICAgICAgIGRjLkRyYXdUZXh0KHNlbGYudGV4dCwgaW50KHggKyBvZmZzZXQpLCBpbnQoeSAr IG9mZnNldCkpCisrIAorKyAKKysgICAgIGRlZiBEcmF3Um90YXRlZChzZWxmLCBkYywgb2Zmc2V0 PTApOgorK0BAIC0zMjEsNyArMzIxLDcgQEAgZGVmIERyYXdSb3RhdGVkKHNlbGYsIGRjLCBvZmZz ZXQ9MCk6CisrICAgICAgICAgeCA9IHNlbGYucG9zLnggLSBtYXRoLmNvcyhyKSAqIHdpZHRoIC8g Mi4gLSBtYXRoLnNpbihyKSAqIGhlaWdodCAvIDIuCisrICAgICAgICAgeSA9IHNlbGYucG9zLnkg LSBtYXRoLmNvcyhyKSAqIGhlaWdodCAvIDIuICsgbWF0aC5zaW4ocikgKiB3aWR0aCAvIDIuCisr IAorKy0gICAgICAgIGRjLkRyYXdSb3RhdGVkVGV4dChzZWxmLnRleHQsIHggKyBvZmZzZXQsIHkg KyBvZmZzZXQsIGFuZ2xlKQorKysgICAgICAgIGRjLkRyYXdSb3RhdGVkVGV4dChzZWxmLnRleHQs IGludCh4ICsgb2Zmc2V0KSwgaW50KHkgKyBvZmZzZXQpLCBpbnQoYW5nbGUpKQorKyAKKysgCisr ICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrQEAgLTY1Niw3ICs2NTYsNyBAQCBkZWYgUmVjYWxjQ29vcmRzKHNl bGYsIGNsb2Nrc2l6ZSwgY2VudHJlLCBzY2FsZSk6CisrIAorKyAgICAgICAgICMgVHJ5IHRvIGZp bmQgYSAnZ29vZCcgbWF4IHNpemUgZm9yIHRleHQtYmFzZWQgdGlja3MuCisrICAgICAgICAgaWYg YV90aWNrLnRleHQgaXMgbm90IE5vbmU6CisrLSAgICAgICAgICAgIHNlbGYuZm9udC5TZXRQb2lu dFNpemUoc2l6ZSkKKysrICAgICAgICAgICAgc2VsZi5mb250LlNldFBvaW50U2l6ZShpbnQoc2l6 ZSkpCisrICAgICAgICAgICAgIGRjID0gd3guTWVtb3J5REMoKQorKyAgICAgICAgICAgICBkYy5T ZWxlY3RPYmplY3Qod3guQml0bWFwKCpjbG9ja3NpemUuR2V0KCkpKQorKyAgICAgICAgICAgICBk Yy5TZXRGb250KHNlbGYuZm9udCkKKytAQCAtNjg2LDcgKzY4Niw3IEBAIGRlZiBSZWNhbGNDb29y ZHMoc2VsZiwgY2xvY2tzaXplLCBjZW50cmUsIHNjYWxlKToKKysgICAgICAgICAgICAgeCA9IGNl bnRyZS54ICsgcmFkaXVzICogbWF0aC5zaW4oYW5nbGUpCisrICAgICAgICAgICAgIHkgPSBjZW50 cmUueSArIHJhZGl1cyAqIG1hdGguY29zKGFuZ2xlKQorKyAKKystICAgICAgICAgICAgdGljay5T ZXRQb3NpdGlvbih3eC5Qb2ludCh4LCB5KSkKKysrICAgICAgICAgICAgdGljay5TZXRQb3NpdGlv bih3eC5Qb2ludChpbnQoeCksIGludCh5KSkpCisrIAorKyAKKysgICAgIGRlZiBHZXRTaXplKHNl bGYpOgorK2RpZmYgLS1naXQgYS93eC9saWIvYW5hbG9nY2xvY2svc2V0dXAucHkgYi93eC9saWIv YW5hbG9nY2xvY2svc2V0dXAucHkKKytpbmRleCBhODNjODYzOWQuLmE3ZGZmYjkwMSAxMDA2NDQK KystLS0gYS93eC9saWIvYW5hbG9nY2xvY2svc2V0dXAucHkKKysrKysgYi93eC9saWIvYW5hbG9n Y2xvY2svc2V0dXAucHkKKytAQCAtMTc5LDcgKzE3OSw3IEBAIGRlZiBfX2luaXRfXyhzZWxmLCBw YXJlbnQsIHRpdGxlLCBncm91cD0iSGFuZHMiKToKKysgICAgICAgICBwLlNldEN1c3RvbUNvbG91 cnMoc2VsZi5jdXN0b21jb2xvdXJzKQorKyAgICAgICAgIHNpemVyLkFkZChwLCBwb3M9KDAsIDEp LCBmbGFnPXd4LkFMSUdOX0NFTlRSRV9WRVJUSUNBTCkKKysgCisrLSAgICAgICAgcCA9IHNlbGYu YncgPSB3eC5TcGluQ3RybChzZWxmLCBzaXplPSg3NSwgMjEpLAorKysgICAgICAgIHAgPSBzZWxm LmJ3ID0gd3guU3BpbkN0cmwoc2VsZiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1pbj0wLCBtYXg9MTAwLCB2YWx1ZT0iNzUiKQorKyAgICAgICAgIHNpemVyLkFkZChwLCBw b3M9KDAsIDIpLCBzcGFuPSgxLCAyKSwgZmxhZz13eC5BTElHTl9DRU5UUkVfVkVSVElDQUwpCisr IAorK0BAIC0xOTMsNyArMTkzLDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgdGl0bGUs IGdyb3VwPSJIYW5kcyIpOgorKyAgICAgICAgIHAgPSBzZWxmLmxzID0gd3guU3RhdGljVGV4dChz ZWxmLCBsYWJlbD0iU2l6ZToiKQorKyAgICAgICAgIHNpemVyLkFkZChwLCBwb3M9KDIsIDApLCBm bGFnPXd4LkFMSUdOX0NFTlRSRV9WRVJUSUNBTCkKKysgCisrLSAgICAgICAgcCA9IHNlbGYuc3og PSB3eC5TcGluQ3RybChzZWxmLCBzaXplPSg3NSwgMjEpLAorKysgICAgICAgIHAgPSBzZWxmLnN6 ID0gd3guU3BpbkN0cmwoc2VsZiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG1pbj0wLCBtYXg9MTAwLCB2YWx1ZT0iNzUiKQorKyAgICAgICAgIHNpemVyLkFkZChwLCBwb3M9 KDIsIDEpLCBzcGFuPSgxLCAzKSwgZmxhZz13eC5BTElHTl9DRU5UUkVfVkVSVElDQUwpCisrIAor K0BAIC0yMTIsNyArMjEyLDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgdGl0bGUsIGdy b3VwPSJUaWNrcyIpOgorKyAgICAgICAgIHAgPSB3eC5TdGF0aWNUZXh0KHNlbGYsIGxhYmVsPSJP ZmZzZXQ6IikKKysgICAgICAgICBzaXplci5BZGQocCwgcG9zPSgzLCAwKSwgZmxhZz13eC5BTElH Tl9DRU5UUkVfVkVSVElDQUwpCisrIAorKy0gICAgICAgIHAgPSBzZWxmLm9mID0gd3guU3BpbkN0 cmwoc2VsZiwgc2l6ZT0oNzUsIDIxKSwKKysrICAgICAgICBwID0gc2VsZi5vZiA9IHd4LlNwaW5D dHJsKHNlbGYsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49MCwgbWF4 PTEwMCwgdmFsdWU9Ijc1IikKKysgICAgICAgICBzaXplci5BZGQocCwgcG9zPSgzLCAxKSwgc3Bh bj0oMSwgMyksIGZsYWc9d3guQUxJR05fQ0VOVFJFX1ZFUlRJQ0FMKQorKyAKKytkaWZmIC0tZ2l0 IGEvd3gvbGliL2J1dHRvbnMucHkgYi93eC9saWIvYnV0dG9ucy5weQorK2luZGV4IDQ2ZDFiODc0 Ny4uZjAxYTU0ZDQxIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9idXR0b25zLnB5CisrKysrIGIvd3gv bGliL2J1dHRvbnMucHkKKytAQCAtNDUzLDcgKzQ1Myw3IEBAIGRlZiBEcmF3TGFiZWwoc2VsZiwg ZGMsIHdpZHRoLCBoZWlnaHQsIGR4PTAsIGR5PTApOgorKyAgICAgICAgIHR3LCB0aCA9IGRjLkdl dFRleHRFeHRlbnQobGFiZWwpCisrICAgICAgICAgaWYgbm90IHNlbGYudXA6CisrICAgICAgICAg ICAgIGR4ID0gZHkgPSBzZWxmLmxhYmVsRGVsdGEKKystICAgICAgICBkYy5EcmF3VGV4dChsYWJl bCwgKHdpZHRoLXR3KS8yK2R4LCAoaGVpZ2h0LXRoKS8yK2R5KQorKysgICAgICAgIGRjLkRyYXdU ZXh0KGxhYmVsLCAod2lkdGgtdHcpLy8yK2R4LCAoaGVpZ2h0LXRoKS8vMitkeSkKKysgCisrIAor KyAgICAgZGVmIERyYXdGb2N1c0luZGljYXRvcihzZWxmLCBkYywgdywgaCk6CisrQEAgLTg0NCw3 ICs4NDQsNyBAQCBkZWYgRHJhd0xhYmVsKHNlbGYsIGRjLCB3aWR0aCwgaGVpZ2h0LCBkeD0wLCBk eT0wKToKKysgICAgICAgICBpZiBub3Qgc2VsZi51cDoKKysgICAgICAgICAgICAgZHggPSBkeSA9 IHNlbGYubGFiZWxEZWx0YQorKyAgICAgICAgIGhhc01hc2sgPSBibXAuR2V0TWFzaygpICE9IE5v bmUKKystICAgICAgICBkYy5EcmF3Qml0bWFwKGJtcCwgKHdpZHRoLWJ3KS8yK2R4LCAoaGVpZ2h0 LWJoKS8yK2R5LCBoYXNNYXNrKQorKysgICAgICAgIGRjLkRyYXdCaXRtYXAoYm1wLCAod2lkdGgt YncpLy8yK2R4LCAoaGVpZ2h0LWJoKS8vMitkeSwgaGFzTWFzaykKKysgCisrIAorKyAjLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorK0BAIC05MjYsMTIgKzkyNiwxMiBAQCBkZWYgRHJhd0xhYmVsKHNlbGYsIGRjLCB3 aWR0aCwgaGVpZ2h0LCBkeD0wLCBkeT0wKToKKysgICAgICAgICBpZiBub3Qgc2VsZi51cDoKKysg ICAgICAgICAgICAgZHggPSBkeSA9IHNlbGYubGFiZWxEZWx0YQorKyAKKystICAgICAgICBwb3Nf eCA9ICh3aWR0aC1idy10dykvMitkeCAgICAgICMgYWRqdXN0IGZvciBiaXRtYXAgYW5kIHRleHQg dG8gY2VudHJlCisrKyAgICAgICAgcG9zX3ggPSAod2lkdGgtYnctdHcpLy8yK2R4ICAgICAgIyBh ZGp1c3QgZm9yIGJpdG1hcCBhbmQgdGV4dCB0byBjZW50cmUKKysgICAgICAgICBpZiBibXAgaXMg bm90IE5vbmU6CisrLSAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAoYm1wLCBwb3NfeCwgKGhlaWdo dC1iaCkvMitkeSwgaGFzTWFzaykgIyBkcmF3IGJpdG1hcCBpZiBhdmFpbGFibGUKKysrICAgICAg ICAgICAgZGMuRHJhd0JpdG1hcChibXAsIHBvc194LCAoaGVpZ2h0LWJoKS8vMitkeSwgaGFzTWFz aykgIyBkcmF3IGJpdG1hcCBpZiBhdmFpbGFibGUKKysgICAgICAgICAgICAgcG9zX3ggPSBwb3Nf eCArIDIgICAjIGV4dHJhIHNwYWNpbmcgZnJvbSBiaXRtYXAKKysgCisrLSAgICAgICAgZGMuRHJh d1RleHQobGFiZWwsIHBvc194ICsgZHgrYncsIChoZWlnaHQtdGgpLzIrZHkpICAgICAgIyBkcmF3 IHRoZSB0ZXh0CisrKyAgICAgICAgZGMuRHJhd1RleHQobGFiZWwsIHBvc194ICsgZHgrYncsICho ZWlnaHQtdGgpLy8yK2R5KSAgICAgICMgZHJhdyB0aGUgdGV4dAorKyAKKysgCisrICMtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9jb2xvdXJjaG9vc2VyL3B5Y29sb3VyY2hvb3Nl ci5weSBiL3d4L2xpYi9jb2xvdXJjaG9vc2VyL3B5Y29sb3VyY2hvb3Nlci5weQorK2luZGV4IDYx ZGJjMDJkMi4uMTI0Mzc2NDgzIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9jb2xvdXJjaG9vc2VyL3B5 Y29sb3VyY2hvb3Nlci5weQorKysrKyBiL3d4L2xpYi9jb2xvdXJjaG9vc2VyL3B5Y29sb3VyY2hv b3Nlci5weQorK0BAIC0xODgsNyArMTg4LDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwg aWQpOgorKyAgICAgICAgIHNlbGYuY29sb3VyX3NsaWRlci5CaW5kKHd4LkVWVF9NT1RJT04sIHNl bGYub25TbGlkZXJNb3Rpb24pCisrICAgICAgICAgc2VsZi5zbGlkZXIgPSB3eC5TbGlkZXIoCisr ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYsIHNlbGYuaWRTQ1JPTEwsIDg2LCAwLCBzZWxm LmNvbG91cl9zbGlkZXIuSEVJR0hUIC0gMSwKKystICAgICAgICAgICAgICAgICAgICAgICAgc3R5 bGU9d3guU0xfVkVSVElDQUwsIHNpemU9KDE1LCBzZWxmLmNvbG91cl9zbGlkZXIuSEVJR0hUKQor KysgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT13eC5TTF9WRVJUSUNBTCwgc2l6ZT0oLTEs IHNlbGYuY29sb3VyX3NsaWRlci5IRUlHSFQpCisrICAgICAgICAgICAgICAgICAgICAgICAgICkK KysgCisrICAgICAgICAgc2VsZi5CaW5kKHd4LkVWVF9DT01NQU5EX1NDUk9MTCwgc2VsZi5vblNj cm9sbCwgc2VsZi5zbGlkZXIpCisrQEAgLTMzOCw3ICszMzgsNyBAQCBkZWYgc2V0U2xpZGVyVG9W KHNlbGYsIHYpOgorKyAgICAgICAgIG1pbiA9IHNlbGYuc2xpZGVyLkdldE1pbigpCisrICAgICAg ICAgbWF4ID0gc2VsZi5zbGlkZXIuR2V0TWF4KCkKKysgICAgICAgICB2YWwgPSAoMSAtIHYpICog bWF4CisrLSAgICAgICAgc2VsZi5zbGlkZXIuU2V0VmFsdWUodmFsKQorKysgICAgICAgIHNlbGYu c2xpZGVyLlNldFZhbHVlKGludCh2YWwpKQorKyAKKysgICAgIGRlZiBnZXRWRnJvbVNsaWRlcihz ZWxmKToKKysgICAgICAgICAiIiJHZXQgdGhlIGN1cnJlbnQgdmFsdWUgb2YgIlYiIGZyb20gdGhl IHYgc2xpZGVyLiIiIgorK2RpZmYgLS1naXQgYS93eC9saWIvY29sb3VyY2hvb3Nlci9weXBhbGV0 dGUucHkgYi93eC9saWIvY29sb3VyY2hvb3Nlci9weXBhbGV0dGUucHkKKytpbmRleCBmZjFmYjg0 MGMuLjcxYjlmYzJkZiAxMDA2NDQKKystLS0gYS93eC9saWIvY29sb3VyY2hvb3Nlci9weXBhbGV0 dGUucHkKKysrKysgYi93eC9saWIvY29sb3VyY2hvb3Nlci9weXBhbGV0dGUucHkKKytAQCAtMTY1 LDcgKzE2NSw3IEBAIGRlZiBEcmF3QnVmZmVyKHNlbGYpOgorKyAgICAgICAgICAgICBjb2xvdXIg PSB3eC5Db2xvdXIoMCwgMCwgMCkKKysgICAgICAgICAgICAgc2VsZi5idWZmZXIuU2V0UGVuKHd4 LlBlbihjb2xvdXIsIDEsIHd4LlBFTlNUWUxFX1NPTElEKSkKKysgICAgICAgICAgICAgc2VsZi5i dWZmZXIuU2V0QnJ1c2god3guQnJ1c2goY29sb3VyLCB3eC5CUlVTSFNUWUxFX1RSQU5TUEFSRU5U KSkKKystICAgICAgICAgICAgc2VsZi5idWZmZXIuRHJhd0NpcmNsZShzZWxmLnBvaW50WzBdLCBz ZWxmLnBvaW50WzFdLCAzKQorKysgICAgICAgICAgICBzZWxmLmJ1ZmZlci5EcmF3Q2lyY2xlKGlu dChzZWxmLnBvaW50WzBdKSwgaW50KHNlbGYucG9pbnRbMV0pLCAzKQorKyAKKysgICAgIGRlZiBI aWdobGlnaHRQb2ludChzZWxmLCB4LCB5KToKKysgICAgICAgICAiIiJIaWdobGlnaHRzIGFuIGFy ZWEgb2YgdGhlIHBhbGV0dGUgd2l0aCBhIGxpdHRsZSBjaXJjbGUgYXJvdW5kCisrZGlmZiAtLWdp dCBhL3d4L2xpYi9mbG9hdGNhbnZhcy9GQ09iamVjdHMucHkgYi93eC9saWIvZmxvYXRjYW52YXMv RkNPYmplY3RzLnB5CisraW5kZXggNThiZWNkMzhjLi5jZGY4Y2M1M2UgMTAwNjQ0CisrLS0tIGEv d3gvbGliL2Zsb2F0Y2FudmFzL0ZDT2JqZWN0cy5weQorKysrKyBiL3d4L2xpYi9mbG9hdGNhbnZh cy9GQ09iamVjdHMucHkKKytAQCAtMjk2LDcgKzI5Niw3IEBAIGRlZiBTZXRQZW4oc2VsZiwgTGlu ZUNvbG9yLCBMaW5lU3R5bGUsIExpbmVXaWR0aCk6CisrICAgICAgICAgZWxzZToKKysgICAgICAg ICAgICAgc2VsZi5QZW4gPSBzZWxmLlBlbkxpc3Quc2V0ZGVmYXVsdCgKKysgICAgICAgICAgICAg ICAgIChMaW5lQ29sb3IsIExpbmVTdHlsZSwgTGluZVdpZHRoKSwKKystICAgICAgICAgICAgICAg IHd4LlBlbihMaW5lQ29sb3IsIExpbmVXaWR0aCwgc2VsZi5MaW5lU3R5bGVMaXN0W0xpbmVTdHls ZV0pKQorKysgICAgICAgICAgICAgICAgd3guUGVuKExpbmVDb2xvciwgaW50KExpbmVXaWR0aCks IHNlbGYuTGluZVN0eWxlTGlzdFtMaW5lU3R5bGVdKSkKKysgCisrICAgICBkZWYgU2V0SGl0QnJ1 c2goc2VsZiwgSGl0Q29sb3IpOgorKyAgICAgICAgICIiIgorK0BAIC0xMjAyLDE0ICsxMjAyLDE0 IEBAIGRlZiBfRHJhdyhzZWxmLCBkYyAsIFdvcmxkVG9QaXhlbCwgU2NhbGVXb3JsZFRvUGl4ZWws IEhUZGM9Tm9uZSk6CisrICAgICAgICAgICAgIHggPSB4YyAtIFNpemUvMi4wCisrICAgICAgICAg ICAgIHkgPSB5YyAtIFNpemUvMi4wCisrICAgICAgICAgICAgIGRjLlNldEJydXNoKHNlbGYuQnJ1 c2gpCisrLSAgICAgICAgICAgIGRjLkRyYXdSZWN0YW5nbGUoeCwgeSwgU2l6ZSwgU2l6ZSkKKysr ICAgICAgICAgICAgZGMuRHJhd1JlY3RhbmdsZShpbnQoeCksIGludCh5KSwgU2l6ZSwgU2l6ZSkK KysgICAgICAgICBpZiBIVGRjIGFuZCBzZWxmLkhpdEFibGU6CisrICAgICAgICAgICAgIEhUZGMu U2V0UGVuKHNlbGYuSGl0UGVuKQorKyAgICAgICAgICAgICBpZiBzZWxmLlNpemUgPD0gMToKKysg ICAgICAgICAgICAgICAgIEhUZGMuRHJhd1BvaW50KHhjLCB4YykKKysgICAgICAgICAgICAgZWxz ZToKKysgICAgICAgICAgICAgICAgIEhUZGMuU2V0QnJ1c2goc2VsZi5IaXRCcnVzaCkKKystICAg ICAgICAgICAgICAgIEhUZGMuRHJhd1JlY3RhbmdsZSh4LCB5LCBTaXplLCBTaXplKQorKysgICAg ICAgICAgICAgICAgSFRkYy5EcmF3UmVjdGFuZ2xlKGludCh4KSwgaW50KHkpLCBTaXplLCBTaXpl KQorKyAKKysgY2xhc3MgUmVjdEVsbGlwc2UoWFlPYmplY3RNaXhpbiwgTGluZUFuZEZpbGxNaXhp biwgRHJhd09iamVjdCk6CisrICAgICAiIiJBIFJlY3RFbGxpcHNlIGRyYXcgb2JqZWN0LiIiIgor K0BAIC0yMTYxLDcgKzIxNjEsNyBAQCBkZWYgX0RyYXcoc2VsZiwgZGMgLCBXb3JsZFRvUGl4ZWws IFNjYWxlV29ybGRUb1BpeGVsLCBIVGRjPU5vbmUpOgorKyAgICAgICAgIFcgPSBIICogKHNlbGYu Ym1wV2lkdGggLyBzZWxmLmJtcEhlaWdodCkKKysgICAgICAgICBpZiAoc2VsZi5TY2FsZWRCaXRt YXAgaXMgTm9uZSkgb3IgKEggIT0gc2VsZi5TY2FsZWRIZWlnaHQpIDoKKysgICAgICAgICAgICAg c2VsZi5TY2FsZWRIZWlnaHQgPSBICisrLSAgICAgICAgICAgIEltZyA9IHNlbGYuSW1hZ2UuU2Nh bGUoVywgSCkKKysrICAgICAgICAgICAgSW1nID0gc2VsZi5JbWFnZS5TY2FsZShpbnQoVyksIGlu dChIKSkKKysgICAgICAgICAgICAgc2VsZi5TY2FsZWRCaXRtYXAgPSB3eC5CaXRtYXAoSW1nKQor KyAKKysgICAgICAgICBYWSA9IHNlbGYuU2hpZnRGdW4oWFlbMF0sIFhZWzFdLCBXLCBIKQorK2Rp ZmYgLS1naXQgYS93eC9saWIvZ2l6bW9zL2xlZGN0cmwucHkgYi93eC9saWIvZ2l6bW9zL2xlZGN0 cmwucHkKKytpbmRleCBmMTg1ZDUxMDUuLjdmNGQzZmNmOSAxMDA2NDQKKystLS0gYS93eC9saWIv Z2l6bW9zL2xlZGN0cmwucHkKKysrKysgYi93eC9saWIvZ2l6bW9zL2xlZGN0cmwucHkKKytAQCAt MjkzLDcgKzI5Myw3IEBAIGRlZiBfZHJhd0RpZ2l0KHNlbGYsIGRjLCBkaWdpdCwgY29sdW1uKToK KysgCisrICAgICAgICAgaWYgZGlnaXQgJiBjLkNPTE9OOgorKyAgICAgICAgICAgICBkYy5TZXRC cnVzaCh3eC5CcnVzaChsaW5lQ29sb3IpKQorKy0gICAgICAgICAgICBjZW50ZXJYID0gWFBvcyAr IChzZWxmLm1fbGluZUxlbmd0aCArIHNlbGYubV9kaWdpdE1hcmdpbikgLyAyCisrLSAgICAgICAg ICAgIHJhZGl1cyA9IHNlbGYubV9saW5lV2lkdGggLyAyCisrLSAgICAgICAgICAgIGRjLkRyYXdD aXJjbGUoY2VudGVyWCwgKHNlbGYubV9saW5lTGVuZ3RoICsgKHNlbGYubV9saW5lTWFyZ2luICog MykpIC8gMiwgcmFkaXVzKQorKy0gICAgICAgICAgICBkYy5EcmF3Q2lyY2xlKGNlbnRlclgsIChz ZWxmLm1fbGluZUxlbmd0aCAqIDIgKyAoc2VsZi5tX2xpbmVNYXJnaW4gKiA1KSkgKiAzIC8gNCwg cmFkaXVzKQorKysgICAgICAgICAgICBjZW50ZXJYID0gWFBvcyArIChzZWxmLm1fbGluZUxlbmd0 aCArIHNlbGYubV9kaWdpdE1hcmdpbikgLy8gMgorKysgICAgICAgICAgICByYWRpdXMgPSBzZWxm Lm1fbGluZVdpZHRoIC8vIDIKKysrICAgICAgICAgICAgZGMuRHJhd0NpcmNsZShjZW50ZXJYLCAo c2VsZi5tX2xpbmVMZW5ndGggKyAoc2VsZi5tX2xpbmVNYXJnaW4gKiAzKSkgLy8gMiwgcmFkaXVz KQorKysgICAgICAgICAgICBkYy5EcmF3Q2lyY2xlKGNlbnRlclgsIChzZWxmLm1fbGluZUxlbmd0 aCAqIDIgKyAoc2VsZi5tX2xpbmVNYXJnaW4gKiA1KSkgKiAzIC8vIDQsIHJhZGl1cykKKytkaWZm IC0tZ2l0IGEvd3gvbGliL2ltYWdlYnJvd3Nlci5weSBiL3d4L2xpYi9pbWFnZWJyb3dzZXIucHkK KytpbmRleCA3OTVlOTBkY2EuLjhlMTQ3MjdlNyAxMDA2NDQKKystLS0gYS93eC9saWIvaW1hZ2Vi cm93c2VyLnB5CisrKysrIGIvd3gvbGliL2ltYWdlYnJvd3Nlci5weQorK0BAIC0zNDcsOCArMzQ3 LDggQEAgZGVmIERyYXdJbWFnZShzZWxmLCBkYyk6CisrICAgICAgICAgb3dpZHRoID0gaW50KHNj YWxlKml3aWR0aCkKKysgICAgICAgICBvaGVpZ2h0ID0gaW50KHNjYWxlKmloZWlnaHQpCisrIAor Ky0gICAgICAgIGRpZmZ4ID0gKHd3aWR0aCAtIG93aWR0aCkvMiAgICMgY2VudGVyIGNhbGMKKyst ICAgICAgICBkaWZmeSA9ICh3aGVpZ2h0IC0gb2hlaWdodCkvMiAgICMgY2VudGVyIGNhbGMKKysr ICAgICAgICBkaWZmeCA9ICh3d2lkdGggLSBvd2lkdGgpLy8yICAgIyBjZW50ZXIgY2FsYworKysg ICAgICAgIGRpZmZ5ID0gKHdoZWlnaHQgLSBvaGVpZ2h0KS8vMiAgICMgY2VudGVyIGNhbGMKKysg CisrICAgICAgICAgaWYgbm90IGJtcDoKKysgICAgICAgICAgICAgaWYgb3dpZHRoIT1pd2lkdGgg b3Igb2hlaWdodCE9aWhlaWdodDoKKytkaWZmIC0tZ2l0IGEvd3gvbGliL29nbC9iYXNpYy5weSBi L3d4L2xpYi9vZ2wvYmFzaWMucHkKKytpbmRleCBiMDg4NTlhYjkuLjAxMDdmMjFmYyAxMDA2NDQK KystLS0gYS93eC9saWIvb2dsL2Jhc2ljLnB5CisrKysrIGIvd3gvbGliL29nbC9iYXNpYy5weQor K0BAIC0xMDUxLDcgKzEwNTEsNyBAQCBkZWYgT25FcmFzZUNvbnRlbnRzKHNlbGYsIGRjKToKKysg ICAgICAgICBkYy5TZXRQZW4oc2VsZi5HZXRCYWNrZ3JvdW5kUGVuKCkpCisrICAgICAgICAgZGMu U2V0QnJ1c2goc2VsZi5HZXRCYWNrZ3JvdW5kQnJ1c2goKSkKKysgCisrLSAgICAgICAgZGMuRHJh d1JlY3RhbmdsZSh0b3BMZWZ0WCAtIHBlbldpZHRoLCB0b3BMZWZ0WSAtIHBlbldpZHRoLCBtYXhY ICsgcGVuV2lkdGggKiAyICsgNCwgbWF4WSArIHBlbldpZHRoICogMiArIDQpCisrKyAgICAgICAg ZGMuRHJhd1JlY3RhbmdsZShpbnQodG9wTGVmdFggLSBwZW5XaWR0aCksIGludCh0b3BMZWZ0WSAt IHBlbldpZHRoKSwgaW50KG1heFggKyBwZW5XaWR0aCAqIDIgKyA0KSwgaW50KG1heFkgKyBwZW5X aWR0aCAqIDIgKyA0KSkKKysgCisrICAgICBkZWYgRXJhc2VMaW5rcyhzZWxmLCBkYywgYXR0YWNo bWVudCA9IC0xLCByZWN1cnNlID0gRmFsc2UpOgorKyAgICAgICAgICIiIgorK0BAIC0yNzY5LDkg KzI3NjksOSBAQCBkZWYgT25EcmF3KHNlbGYsIGRjKToKKysgICAgICAgICAgICAgZGMuU2V0QnJ1 c2goc2VsZi5fYnJ1c2gpCisrIAorKyAgICAgICAgIGlmIHNlbGYuX2Nvcm5lclJhZGl1czoKKyst ICAgICAgICAgICAgZGMuRHJhd1JvdW5kZWRSZWN0YW5nbGUoeDEsIHkxLCBzZWxmLl93aWR0aCwg c2VsZi5faGVpZ2h0LCBzZWxmLl9jb3JuZXJSYWRpdXMpCisrKyAgICAgICAgICAgIGRjLkRyYXdS b3VuZGVkUmVjdGFuZ2xlKGludCh4MSksIGludCh5MSksIHNlbGYuX3dpZHRoLCBzZWxmLl9oZWln aHQsIHNlbGYuX2Nvcm5lclJhZGl1cykKKysgICAgICAgICBlbHNlOgorKy0gICAgICAgICAgICBk Yy5EcmF3UmVjdGFuZ2xlKHgxLCB5MSwgc2VsZi5fd2lkdGgsIHNlbGYuX2hlaWdodCkKKysrICAg ICAgICAgICAgZGMuRHJhd1JlY3RhbmdsZShpbnQoeDEpLCBpbnQoeTEpLCBzZWxmLl93aWR0aCwg c2VsZi5faGVpZ2h0KQorKyAKKysgICAgIGRlZiBHZXRCb3VuZGluZ0JveE1pbihzZWxmKToKKysg ICAgICAgICAiIiJHZXQgdGhlIGJvdW5kaW5nIGJveCBtaW5pbXVtLiIiIgorK0BAIC0yODgyLDcg KzI4ODIsNyBAQCBkZWYgQ3JlYXRlKHNlbGYsIHRoZV9wb2ludHMgPSBOb25lKToKKysgICAgICAg ICAgICAgIyBEdXBsaWNhdGUgdGhlIGxpc3Qgb2YgcG9pbnRzCisrICAgICAgICAgICAgIHNlbGYu X3BvaW50cyA9IFtdCisrICAgICAgICAgICAgIGZvciBwb2ludCBpbiB0aGVfcG9pbnRzOgorKy0g ICAgICAgICAgICAgICAgbmV3X3BvaW50ID0gd3guUG9pbnQocG9pbnRbMF0sIHBvaW50WzFdKQor KysgICAgICAgICAgICAgICAgbmV3X3BvaW50ID0gd3guUG9pbnQoaW50KHBvaW50WzBdKSwgaW50 KHBvaW50WzFdKSkKKysgICAgICAgICAgICAgICAgIHNlbGYuX3BvaW50cy5hcHBlbmQobmV3X3Bv aW50KQorKyAgICAgICAgICAgICBzZWxmLkNhbGN1bGF0ZUJvdW5kaW5nQm94KCkKKysgICAgICAg ICAgICAgc2VsZi5fb3JpZ2luYWxXaWR0aCA9IHNlbGYuX2JvdW5kV2lkdGgKKytAQCAtMzQ0NCw3 ICszNDQ0LDcgQEAgZGVmIE9uRHJhdyhzZWxmLCBkYyk6CisrICAgICAgICAgICAgICAgICBkYy5T ZXRQZW4oc2VsZi5fcGVuKQorKyAgICAgICAgIGlmIHNlbGYuX2JydXNoOgorKyAgICAgICAgICAg ICBkYy5TZXRCcnVzaChzZWxmLl9icnVzaCkKKystICAgICAgICBkYy5EcmF3RWxsaXBzZShzZWxm Ll94cG9zIC0gc2VsZi5HZXRXaWR0aCgpIC8gMi4wLCBzZWxmLl95cG9zIC0gc2VsZi5HZXRIZWln aHQoKSAvIDIuMCwgc2VsZi5HZXRXaWR0aCgpLCBzZWxmLkdldEhlaWdodCgpKQorKysgICAgICAg IGRjLkRyYXdFbGxpcHNlKGludChzZWxmLl94cG9zIC0gc2VsZi5HZXRXaWR0aCgpIC8gMi4wKSwg aW50KHNlbGYuX3lwb3MgLSBzZWxmLkdldEhlaWdodCgpIC8gMi4wKSwgc2VsZi5HZXRXaWR0aCgp LCBzZWxmLkdldEhlaWdodCgpKQorKyAKKysgICAgIGRlZiBTZXRTaXplKHNlbGYsIHgsIHksIHJl Y3Vyc2l2ZSA9IFRydWUpOgorKyAgICAgICAgICIiIgorK2RpZmYgLS1naXQgYS93eC9saWIvb2ds L2JtcHNoYXBlLnB5IGIvd3gvbGliL29nbC9ibXBzaGFwZS5weQorK2luZGV4IGVlMjg1OTUyNy4u ZTUzZGRiMTM2IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9vZ2wvYm1wc2hhcGUucHkKKysrKysgYi93 eC9saWIvb2dsL2JtcHNoYXBlLnB5CisrQEAgLTMyLDcgKzMyLDcgQEAgZGVmIE9uRHJhdyhzZWxm LCBkYyk6CisrIAorKyAgICAgICAgIHggPSBzZWxmLl94cG9zIC0gc2VsZi5fYml0bWFwLkdldFdp ZHRoKCkgLyAyLjAKKysgICAgICAgICB5ID0gc2VsZi5feXBvcyAtIHNlbGYuX2JpdG1hcC5HZXRI ZWlnaHQoKSAvIDIuMAorKy0gICAgICAgIGRjLkRyYXdCaXRtYXAoc2VsZi5fYml0bWFwLCB4LCB5 LCBUcnVlKQorKysgICAgICAgIGRjLkRyYXdCaXRtYXAoc2VsZi5fYml0bWFwLCBpbnQoeCksIGlu dCh5KSwgVHJ1ZSkKKysgCisrICAgICBkZWYgU2V0U2l6ZShzZWxmLCB3LCBoLCByZWN1cnNpdmUg PSBUcnVlKToKKysgICAgICAgICAiIiIKKytkaWZmIC0tZ2l0IGEvd3gvbGliL29nbC9jb21wb3Np dC5weSBiL3d4L2xpYi9vZ2wvY29tcG9zaXQucHkKKytpbmRleCBjM2I2MjM5NTIuLmVlY2FhZmIz ZiAxMDA2NDQKKystLS0gYS93eC9saWIvb2dsL2NvbXBvc2l0LnB5CisrKysrIGIvd3gvbGliL29n bC9jb21wb3NpdC5weQorK0BAIC0xMTMxLDExICsxMTMxLDExIEBAIGRlZiBPbkRyYXcoc2VsZiwg ZGMpOgorKyAKKysgICAgICAgICBpZiBzZWxmLl9sZWZ0U2lkZToKKysgICAgICAgICAgICAgZGMu U2V0UGVuKHNlbGYuX2xlZnRTaWRlUGVuKQorKy0gICAgICAgICAgICBkYy5EcmF3TGluZSh4MSwg eTIsIHgxLCB5MSkKKysrICAgICAgICAgICAgZGMuRHJhd0xpbmUoaW50KHgxKSwgaW50KHkyKSwg aW50KHgxKSwgaW50KHkxKSkKKysgCisrICAgICAgICAgaWYgc2VsZi5fdG9wU2lkZToKKysgICAg ICAgICAgICAgZGMuU2V0UGVuKHNlbGYuX3RvcFNpZGVQZW4pCisrLSAgICAgICAgICAgIGRjLkRy YXdMaW5lKHgxLCB5MSwgeDIsIHkxKQorKysgICAgICAgICAgICBkYy5EcmF3TGluZShpbnQoeDEp LCBpbnQoeTEpLCBpbnQoeDIpLCBpbnQoeTEpKQorKyAKKysgICAgICAgICAjIEZvciB0ZXN0aW5n IHB1cnBvc2VzLCBkcmF3IGEgcmVjdGFuZ2xlIHNvIHdlIGtub3cKKysgICAgICAgICAjIGhvdyBi aWcgdGhlIGRpdmlzaW9uIGlzLgorK2RpZmYgLS1naXQgYS93eC9saWIvb2dsL2RpdmlkZWQucHkg Yi93eC9saWIvb2dsL2RpdmlkZWQucHkKKytpbmRleCAwYmZiMTkxOWYuLjA4MDliZTU4YyAxMDA2 NDQKKystLS0gYS93eC9saWIvb2dsL2RpdmlkZWQucHkKKysrKysgYi93eC9saWIvb2dsL2Rpdmlk ZWQucHkKKytAQCAtMjMxLDcgKzIzMSw3IEBAIGRlZiBPbkRyYXdDb250ZW50cyhzZWxmLCBkYyk6 CisrICAgICAgICAgICAgICAgICByZWdpb25QZW4gPSByZWdpb24uR2V0QWN0dWFsUGVuKCkKKysg ICAgICAgICAgICAgICAgIGlmIHJlZ2lvblBlbjoKKysgICAgICAgICAgICAgICAgICAgICBkYy5T ZXRQZW4ocmVnaW9uUGVuKQorKy0gICAgICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKGxlZnRY LCB5LCByaWdodFgsIHkpCisrKyAgICAgICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUoaW50KGxl ZnRYKSwgaW50KHkpLCBpbnQocmlnaHRYKSwgaW50KHkpKQorKyAKKysgICAgICAgICAgICAgY3Vy cmVudFkgPSBhY3R1YWxZCisrIAorK2RpZmYgLS1naXQgYS93eC9saWIvb2dsL2xpbmVzLnB5IGIv d3gvbGliL29nbC9saW5lcy5weQorK2luZGV4IDk0OGI4NWQ4Mi4uNTBjMDdlMDQ2IDEwMDY0NAor Ky0tLSBhL3d4L2xpYi9vZ2wvbGluZXMucHkKKysrKysgYi93eC9saWIvb2dsL2xpbmVzLnB5Cisr QEAgLTEyMDAsNyArMTIwMCw3IEBAIGRlZiBPbkRyYXcoc2VsZiwgZGMpOgorKyAKKysgICAgICAg ICBwb2ludHMgPSBbXQorKyAgICAgICAgIGZvciBwb2ludCBpbiBzZWxmLl9saW5lQ29udHJvbFBv aW50czoKKystICAgICAgICAgICAgcG9pbnRzLmFwcGVuZCh3eC5Qb2ludChwb2ludFswXSwgcG9p bnRbMV0pKQorKysgICAgICAgICAgICBwb2ludHMuYXBwZW5kKHd4LlBvaW50KGludChwb2ludFsw XSksIGludChwb2ludFsxXSkpKQorKyAKKysgICAgICAgICBpZiBzZWxmLl9pc1NwbGluZToKKysg ICAgICAgICAgICAgZGMuRHJhd1NwbGluZShwb2ludHMpCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9v Z2wvb2dsbWlzYy5weSBiL3d4L2xpYi9vZ2wvb2dsbWlzYy5weQorK2luZGV4IDg1ODhhNzJiNy4u YThiZTNmYzUzIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9vZ2wvb2dsbWlzYy5weQorKysrKyBiL3d4 L2xpYi9vZ2wvb2dsbWlzYy5weQorK0BAIC0zMDAsMTAgKzMwMCwxMCBAQCBkZWYgRHJhd0Zvcm1h dHRlZFRleHQoZGMsIHRleHRfbGlzdCwgeHBvcywgeXBvcywgd2lkdGgsIGhlaWdodCwgZm9ybWF0 TW9kZSk6CisrICAgICAgICAgeW9mZnNldCA9IHlwb3MgLSBoZWlnaHQgLyAyLjAKKysgCisrICAg ICAjICsxIHRvIGFsbG93IGZvciByb3VuZGluZyBlcnJvcnMKKystICAgIGRjLlNldENsaXBwaW5n UmVnaW9uKHhwb3MgLSB3aWR0aCAvIDIuMCwgeXBvcyAtIGhlaWdodCAvIDIuMCwgd2lkdGggKyAx LCBoZWlnaHQgKyAxKQorKysgICAgZGMuU2V0Q2xpcHBpbmdSZWdpb24oaW50KHhwb3MgLSB3aWR0 aCAvIDIuMCksIGludCh5cG9zIC0gaGVpZ2h0IC8gMi4wKSwgaW50KHdpZHRoICsgMSksIGludCho ZWlnaHQgKyAxKSkKKysgCisrICAgICBmb3IgbGluZSBpbiB0ZXh0X2xpc3Q6CisrLSAgICAgICAg ZGMuRHJhd1RleHQobGluZS5HZXRUZXh0KCksIHhvZmZzZXQgKyBsaW5lLkdldFgoKSwgeW9mZnNl dCArIGxpbmUuR2V0WSgpKQorKysgICAgICAgIGRjLkRyYXdUZXh0KGxpbmUuR2V0VGV4dCgpLCBp bnQoeG9mZnNldCArIGxpbmUuR2V0WCgpKSwgaW50KHlvZmZzZXQgKyBsaW5lLkdldFkoKSkpCisr IAorKyAgICAgZGMuRGVzdHJveUNsaXBwaW5nUmVnaW9uKCkKKysgCisrZGlmZiAtLWdpdCBhL3d4 L2xpYi9wbG90L2V4YW1wbGVzL2RlbW8ucHkgYi93eC9saWIvcGxvdC9leGFtcGxlcy9kZW1vLnB5 CisraW5kZXggOThmYmFhZDNhLi4wMmJlYzFkOWYgMTAwNjQ0CisrLS0tIGEvd3gvbGliL3Bsb3Qv ZXhhbXBsZXMvZGVtby5weQorKysrKyBiL3d4L2xpYi9wbG90L2V4YW1wbGVzL2RlbW8ucHkKKytA QCAtOTg0LDcgKzk4NCw3IEBAIGRlZiBEcmF3UG9pbnRMYWJlbChzZWxmLCBkYywgbURhdGFEaWN0 KToKKysgCisrICAgICAgICAgc3gsIHN5ID0gbURhdGFEaWN0WyJzY2FsZWRYWSJdICAjIHNjYWxl ZCB4LHkgb2YgY2xvc2VzdCBwb2ludAorKyAgICAgICAgICMgMTBieTEwIHNxdWFyZSBjZW50ZXJl ZCBvbiBwb2ludAorKy0gICAgICAgIGRjLkRyYXdSZWN0YW5nbGUoc3ggLSA1LCBzeSAtIDUsIDEw LCAxMCkKKysrICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKGludChzeCAtIDUpLCBpbnQoc3kgLSA1 KSwgMTAsIDEwKQorKyAgICAgICAgIHB4LCBweSA9IG1EYXRhRGljdFsicG9pbnRYWSJdCisrICAg ICAgICAgY051bSA9IG1EYXRhRGljdFsiY3VydmVOdW0iXQorKyAgICAgICAgIHBudEluID0gbURh dGFEaWN0WyJwSW5kZXgiXQorK0BAIC05OTIsNyArOTkyLDcgQEAgZGVmIERyYXdQb2ludExhYmVs KHNlbGYsIGRjLCBtRGF0YURpY3QpOgorKyAgICAgICAgICMgbWFrZSBhIHN0cmluZyB0byBkaXNw bGF5CisrICAgICAgICAgcyA9ICJDcnYjICVpLCAnJXMnLCBQdC4gKCUuMmYsJS4yZiksIFB0SW5k ICVpIiAlICgKKysgICAgICAgICAgICAgY051bSwgbGVnZW5kLCBweCwgcHksIHBudEluKQorKy0g ICAgICAgIGRjLkRyYXdUZXh0KHMsIHN4LCBzeSArIDEpCisrKyAgICAgICAgZGMuRHJhd1RleHQo cywgaW50KHN4KSwgaW50KHN5ICsgMSkpCisrIAorKyAKKysgZGVmIHJ1bl9kZW1vKCk6CisrZGlm ZiAtLWdpdCBhL3d4L2xpYi9wbG90L3Bsb3RjYW52YXMucHkgYi93eC9saWIvcGxvdC9wbG90Y2Fu dmFzLnB5CisraW5kZXggZGQzZjc3ZDUyLi5hYmVlNDdlZmIgMTAwNjQ0CisrLS0tIGEvd3gvbGli L3Bsb3QvcGxvdGNhbnZhcy5weQorKysrKyBiL3d4L2xpYi9wbG90L3Bsb3RjYW52YXMucHkKKytA QCAtMTc0LDI0ICsxNzQsMjQgQEAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgaWQ9d3guSURf QU5ZLCBwb3M9d3guRGVmYXVsdFBvc2l0aW9uLAorKyAKKysgICAgICAgICAjIERlZmF1bHQgUGVu cworKyAgICAgICAgIHNlbGYuX2dyaWRQZW4gPSB3eC5QZW4od3guQ29sb3VyKDE4MCwgMTgwLCAx ODAsIDI1NSksCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wb2ludFNp emVbMF0sCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQoc2VsZi5fcG9pbnRT aXplWzBdKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHd4LlBFTlNUWUxFX0RP VCkKKysgCisrICAgICAgICAgc2VsZi5fY2VudGVyTGluZVBlbiA9IHd4LlBlbih3eC5SRUQsCisr LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wb2ludFNpemVbMF0s CisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQoc2VsZi5fcG9pbnRT aXplWzBdKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHd4LlBFTlNU WUxFX1NIT1JUX0RBU0gpCisrIAorKyAgICAgICAgIHNlbGYuX2F4ZXNQZW4gPSB3eC5QZW4od3gu QkxBQ0ssCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wb2ludFNpemVb MF0sCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQoc2VsZi5fcG9pbnRTaXpl WzBdKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHd4LlBFTlNUWUxFX1NPTElE KQorKyAKKysgICAgICAgICBzZWxmLl90aWNrUGVuID0gd3guUGVuKHd4LkJMQUNLLAorKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcG9pbnRTaXplWzBdLAorKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50KHNlbGYuX3BvaW50U2l6ZVswXSksCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB3eC5QRU5TVFlMRV9TT0xJRCkKKysgICAgICAgICBz ZWxmLl90aWNrTGVuZ3RoID0gdHVwbGUoLXggKiAyIGZvciB4IGluIHNlbGYuX3BvaW50U2l6ZSkK KysgCisrICAgICAgICAgc2VsZi5fZGlhZ29uYWxQZW4gPSB3eC5QZW4od3guQkxVRSwKKystICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wb2ludFNpemVbMF0sCisrKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KHNlbGYuX3BvaW50U2l6ZVswXSks CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3guUEVOU1RZTEVfRE9UX0RB U0gpCisrIAorKyAgICAgZGVmIFNldEN1cnNvcihzZWxmLCBjdXJzb3IpOgorK0BAIC0xOTI1LDEw ICsxOTI1LDEwIEBAIGRlZiBfRHJhdyhzZWxmLCBncmFwaGljcywgeEF4aXM9Tm9uZSwgeUF4aXM9 Tm9uZSwgZGM9Tm9uZSk6CisrICAgICAgICAgIyBzZXQgY2xpcHBpbmcgYXJlYSBzbyBkcmF3aW5n IGRvZXMgbm90IG9jY3VyIG91dHNpZGUgYXhpcyBib3gKKysgICAgICAgICBwdHgsIHB0eSwgcmVj dFdpZHRoLCByZWN0SGVpZ2h0ID0gc2VsZi5fcG9pbnQyQ2xpZW50Q29vcmQocDEsIHAyKQorKyAg ICAgICAgICMgYWxsb3cgZ3JhcGggdG8gb3ZlcmxhcCBheGlzIGxpbmVzIGJ5IGFkZGluZyB1bml0 cyB0byB3IGFuZCBoCisrLSAgICAgICAgZGMuU2V0Q2xpcHBpbmdSZWdpb24ocHR4ICogc2VsZi5f cG9pbnRTaXplWzBdLAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0eSAqIHNlbGYu X3BvaW50U2l6ZVsxXSwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0V2lkdGgg KiBzZWxmLl9wb2ludFNpemVbMF0gKyAyLAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJlY3RIZWlnaHQgKiBzZWxmLl9wb2ludFNpemVbMV0gKyAxKQorKysgICAgICAgIGRjLlNldENs aXBwaW5nUmVnaW9uKGludChwdHggKiBzZWxmLl9wb2ludFNpemVbMF0pLAorKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludChwdHkgKiBzZWxmLl9wb2ludFNpemVbMV0pLAorKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludChyZWN0V2lkdGggKiBzZWxmLl9wb2ludFNpemVb MF0gKyAyKSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQocmVjdEhlaWdodCAq IHNlbGYuX3BvaW50U2l6ZVsxXSArIDEpKQorKyAgICAgICAgICMgRHJhdyB0aGUgbGluZXMgYW5k IG1hcmtlcnMKKysgIyAgICAgICAgc3RhcnQgPSBfdGltZS5wZXJmX2NvdW50ZXIoKQorKyAgICAg ICAgIGdyYXBoaWNzLmRyYXcoZGMpCisrQEAgLTIyODAsNyArMjI4MCw3IEBAIGRlZiBfZHJhd0xl Z2VuZChzZWxmLCBkYywgZ3JhcGhpY3MsIHJoc1csIHRvcEgsIGxlZ2VuZEJveFdILAorKyAgICAg ICAgICAgICBwbnQgPSAoKHRyaGNbMF0gKyBsZWdlbmRMSFMgKyBsZWdlbmRTeW1FeHRbMF0KKysg ICAgICAgICAgICAgICAgICAgICArIDUgKiBzZWxmLl9wb2ludFNpemVbMF0pLAorKyAgICAgICAg ICAgICAgICAgICAgdHJoY1sxXSArIHMgKyBsaW5lSGVpZ2h0IC8gMi4gLSBsZWdlbmRUZXh0RXh0 WzFdIC8gMikKKystICAgICAgICAgICAgZGMuRHJhd1RleHQoby5nZXRMZWdlbmQoKSwgcG50WzBd LCBwbnRbMV0pCisrKyAgICAgICAgICAgIGRjLkRyYXdUZXh0KG8uZ2V0TGVnZW5kKCksIGludChw bnRbMF0pLCBpbnQocG50WzFdKSkKKysgICAgICAgICBkYy5TZXRGb250KHNlbGYuX2dldEZvbnQo c2VsZi5fZm9udFNpemVBeGlzKSkgICMgcmVzZXQKKysgCisrICAgICBkZWYgX3RpdGxlTGFibGVz V0goc2VsZiwgZGMsIGdyYXBoaWNzKToKKytAQCAtMjMyOSw3ICsyMzI5LDcgQEAgZGVmIF9kcmF3 UnViYmVyQmFuZChzZWxmLCBjb3JuZXIxLCBjb3JuZXIyKToKKysgICAgICAgICBkYy5TZXRQZW4o d3guUGVuKHd4LkJMQUNLKSkKKysgICAgICAgICBkYy5TZXRCcnVzaCh3eC5CcnVzaCh3eC5XSElU RSwgd3guQlJVU0hTVFlMRV9UUkFOU1BBUkVOVCkpCisrICAgICAgICAgZGMuU2V0TG9naWNhbEZ1 bmN0aW9uKHd4LklOVkVSVCkKKystICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKHB0eCwgcHR5LCBy ZWN0V2lkdGgsIHJlY3RIZWlnaHQpCisrKyAgICAgICAgZGMuRHJhd1JlY3RhbmdsZShpbnQocHR4 KSwgaW50KHB0eSksIGludChyZWN0V2lkdGgpLCBpbnQocmVjdEhlaWdodCkpCisrICAgICAgICAg ZGMuU2V0TG9naWNhbEZ1bmN0aW9uKHd4LkNPUFkpCisrIAorKyAgICAgZGVmIF9nZXRGb250KHNl bGYsIHNpemUpOgorK0BAIC0yNDIzLDcgKzI0MjMsNyBAQCBkZWYgX2RyYXdHcmlkKHNlbGYsIGRj LCBwMSwgcDIsIHNjYWxlLCBzaGlmdCwgeHRpY2tzLCB5dGlja3MpOgorKyAgICAgICAgICMgaW5j cmVhc2VzIHRoaWNrbmVzcyBmb3IgcHJpbnRpbmcgb25seQorKyAgICAgICAgIHBlbiA9IHNlbGYu Z3JpZFBlbgorKyAgICAgICAgIHBlbldpZHRoID0gc2VsZi5wcmludGVyU2NhbGUgKiBwZW4uR2V0 V2lkdGgoKQorKy0gICAgICAgIHBlbi5TZXRXaWR0aChwZW5XaWR0aCkKKysrICAgICAgICBwZW4u U2V0V2lkdGgoaW50KHBlbldpZHRoKSkKKysgICAgICAgICBkYy5TZXRQZW4ocGVuKQorKyAKKysg ICAgICAgICB4LCB5LCB3aWR0aCwgaGVpZ2h0ID0gc2VsZi5fcG9pbnQyQ2xpZW50Q29vcmQocDEs IHAyKQorK0BAIC0yNDMyLDEzICsyNDMyLDEzIEBAIGRlZiBfZHJhd0dyaWQoc2VsZiwgZGMsIHAx LCBwMiwgc2NhbGUsIHNoaWZ0LCB4dGlja3MsIHl0aWNrcyk6CisrICAgICAgICAgICAgIGlmIHNl bGYuZW5hYmxlR3JpZFswXToKKysgICAgICAgICAgICAgICAgIGZvciB4LCBfIGluIHh0aWNrczoK KysgICAgICAgICAgICAgICAgICAgICBwdCA9IHNjYWxlX2FuZF9zaGlmdF9wb2ludCh4LCBwMVsx XSwgc2NhbGUsIHNoaWZ0KQorKy0gICAgICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKHB0WzBd LCBwdFsxXSwgcHRbMF0sIHB0WzFdIC0gaGVpZ2h0KQorKysgICAgICAgICAgICAgICAgICAgIGRj LkRyYXdMaW5lKGludChwdFswXSksIGludChwdFsxXSksIGludChwdFswXSksIGludChwdFsxXSAt IGhlaWdodCkpCisrIAorKyAgICAgICAgIGlmIHNlbGYuX3lTcGVjICE9ICdub25lJzoKKysgICAg ICAgICAgICAgaWYgc2VsZi5lbmFibGVHcmlkWzFdOgorKyAgICAgICAgICAgICAgICAgZm9yIHks IGxhYmVsIGluIHl0aWNrczoKKysgICAgICAgICAgICAgICAgICAgICBwdCA9IHNjYWxlX2FuZF9z aGlmdF9wb2ludChwMVswXSwgeSwgc2NhbGUsIHNoaWZ0KQorKy0gICAgICAgICAgICAgICAgICAg IGRjLkRyYXdMaW5lKHB0WzBdLCBwdFsxXSwgcHRbMF0gKyB3aWR0aCwgcHRbMV0pCisrKyAgICAg ICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUoaW50KHB0WzBdKSwgaW50KHB0WzFdKSwgaW50KHB0 WzBdICsgd2lkdGgpLCBpbnQocHRbMV0pKQorKyAKKysgICAgIEBUZW1wU3R5bGUoJ3BlbicpCisr ICAgICBkZWYgX2RyYXdUaWNrcyhzZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQsIHh0aWNr cywgeXRpY2tzKToKKytAQCAtMjQ3MSw3ICsyNDcxLDcgQEAgZGVmIF9kcmF3VGlja3Moc2VsZiwg ZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0LCB4dGlja3MsIHl0aWNrcyk6CisrICAgICAgICAgIyBp bmNyZWFzZXMgdGhpY2tuZXNzIGZvciBwcmludGluZyBvbmx5CisrICAgICAgICAgcGVuID0gc2Vs Zi50aWNrUGVuCisrICAgICAgICAgcGVuV2lkdGggPSBzZWxmLnByaW50ZXJTY2FsZSAqIHBlbi5H ZXRXaWR0aCgpCisrLSAgICAgICAgcGVuLlNldFdpZHRoKHBlbldpZHRoKQorKysgICAgICAgIHBl bi5TZXRXaWR0aChpbnQocGVuV2lkdGgpKQorKyAgICAgICAgIGRjLlNldFBlbihwZW4pCisrIAor KyAgICAgICAgICMgbGVuZ3RoZW4gbGluZXMgZm9yIHByaW50aW5nCisrQEAgLTI0ODQsMTMgKzI0 ODQsMTMgQEAgZGVmIF9kcmF3VGlja3Moc2VsZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0LCB4 dGlja3MsIHl0aWNrcyk6CisrICAgICAgICAgICAgICAgICBsaW5lcyA9IFtdCisrICAgICAgICAg ICAgICAgICBmb3IgeCwgbGFiZWwgaW4geHRpY2tzOgorKyAgICAgICAgICAgICAgICAgICAgIHB0 ID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50KHgsIHAxWzFdLCBzY2FsZSwgc2hpZnQpCisrLSAgICAg ICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKChwdFswXSwgcHRbMV0sIHB0WzBdLCBwdFsxXSAt IHhUaWNrTGVuZ3RoKSkKKysrICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoKGludChw dFswXSksIGludChwdFsxXSksIGludChwdFswXSksIGludChwdFsxXSAtIHhUaWNrTGVuZ3RoKSkp CisrICAgICAgICAgICAgICAgICBkYy5EcmF3TGluZUxpc3QobGluZXMpCisrICAgICAgICAgICAg IGlmIHRpY2tzLnRvcDoKKysgICAgICAgICAgICAgICAgIGxpbmVzID0gW10KKysgICAgICAgICAg ICAgICAgIGZvciB4LCBsYWJlbCBpbiB4dGlja3M6CisrICAgICAgICAgICAgICAgICAgICAgcHQg PSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQoeCwgcDJbMV0sIHNjYWxlLCBzaGlmdCkKKystICAgICAg ICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoKHB0WzBdLCBwdFsxXSwgcHRbMF0sIHB0WzFdICsg eFRpY2tMZW5ndGgpKQorKysgICAgICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgoaW50KHB0 WzBdKSwgaW50KHB0WzFdKSwgaW50KHB0WzBdKSwgaW50KHB0WzFdICsgeFRpY2tMZW5ndGgpKSkK KysgICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lTGlzdChsaW5lcykKKysgCisrICAgICAgICAg aWYgc2VsZi55U3BlYyAhPSAnbm9uZSc6CisrQEAgLTI0OTgsMTMgKzI0OTgsMTMgQEAgZGVmIF9k cmF3VGlja3Moc2VsZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0LCB4dGlja3MsIHl0aWNrcyk6 CisrICAgICAgICAgICAgICAgICBsaW5lcyA9IFtdCisrICAgICAgICAgICAgICAgICBmb3IgeSwg bGFiZWwgaW4geXRpY2tzOgorKyAgICAgICAgICAgICAgICAgICAgIHB0ID0gc2NhbGVfYW5kX3No aWZ0X3BvaW50KHAxWzBdLCB5LCBzY2FsZSwgc2hpZnQpCisrLSAgICAgICAgICAgICAgICAgICAg bGluZXMuYXBwZW5kKChwdFswXSwgcHRbMV0sIHB0WzBdICsgeVRpY2tMZW5ndGgsIHB0WzFdKSkK KysrICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoKGludChwdFswXSksIGludChwdFsx XSksIGludChwdFswXSArIHlUaWNrTGVuZ3RoKSwgaW50KHB0WzFdKSkpCisrICAgICAgICAgICAg ICAgICBkYy5EcmF3TGluZUxpc3QobGluZXMpCisrICAgICAgICAgICAgIGlmIHRpY2tzLnJpZ2h0 OgorKyAgICAgICAgICAgICAgICAgbGluZXMgPSBbXQorKyAgICAgICAgICAgICAgICAgZm9yIHks IGxhYmVsIGluIHl0aWNrczoKKysgICAgICAgICAgICAgICAgICAgICBwdCA9IHNjYWxlX2FuZF9z aGlmdF9wb2ludChwMlswXSwgeSwgc2NhbGUsIHNoaWZ0KQorKy0gICAgICAgICAgICAgICAgICAg IGxpbmVzLmFwcGVuZCgocHRbMF0sIHB0WzFdLCBwdFswXSAtIHlUaWNrTGVuZ3RoLCBwdFsxXSkp CisrKyAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKChpbnQocHRbMF0pLCBpbnQocHRb MV0pLCBpbnQocHRbMF0gLSB5VGlja0xlbmd0aCksIGludChwdFsxXSkpKQorKyAgICAgICAgICAg ICAgICAgZGMuRHJhd0xpbmVMaXN0KGxpbmVzKQorKyAKKysgICAgIEBUZW1wU3R5bGUoJ3Blbicp CisrQEAgLTI1MzEsMjUgKzI1MzEsMjUgQEAgZGVmIF9kcmF3Q2VudGVyTGluZXMoc2VsZiwgZGMs IHAxLCBwMiwgc2NhbGUsIHNoaWZ0KToKKysgICAgICAgICAjIGluY3JlYXNlcyB0aGlja25lc3Mg Zm9yIHByaW50aW5nIG9ubHkKKysgICAgICAgICBwZW4gPSBzZWxmLmNlbnRlckxpbmVQZW4KKysg ICAgICAgICBwZW5XaWR0aCA9IHNlbGYucHJpbnRlclNjYWxlICogcGVuLkdldFdpZHRoKCkKKyst ICAgICAgICBwZW4uU2V0V2lkdGgocGVuV2lkdGgpCisrKyAgICAgICAgcGVuLlNldFdpZHRoKGlu dChwZW5XaWR0aCkpCisrICAgICAgICAgZGMuU2V0UGVuKHBlbikKKysgCisrICAgICAgICAgaWYg c2VsZi5fY2VudGVyTGluZXNFbmFibGVkIGluICgnSG9yaXpvbnRhbCcsIFRydWUpOgorKyAgICAg ICAgICAgICB5MSA9IHNjYWxlWzFdICogcDFbMV0gKyBzaGlmdFsxXQorKyAgICAgICAgICAgICB5 MiA9IHNjYWxlWzFdICogcDJbMV0gKyBzaGlmdFsxXQorKyAgICAgICAgICAgICB5ID0gKHkxIC0g eTIpIC8gMi4wICsgeTIKKystICAgICAgICAgICAgZGMuRHJhd0xpbmUoc2NhbGVbMF0gKiBwMVsw XSArIHNoaWZ0WzBdLAorKy0gICAgICAgICAgICAgICAgICAgICAgICB5LAorKy0gICAgICAgICAg ICAgICAgICAgICAgICBzY2FsZVswXSAqIHAyWzBdICsgc2hpZnRbMF0sCisrLSAgICAgICAgICAg ICAgICAgICAgICAgIHkpCisrKyAgICAgICAgICAgIGRjLkRyYXdMaW5lKGludChzY2FsZVswXSAq IHAxWzBdICsgc2hpZnRbMF0pLAorKysgICAgICAgICAgICAgICAgICAgICAgICBpbnQoeSksCisr KyAgICAgICAgICAgICAgICAgICAgICAgIGludChzY2FsZVswXSAqIHAyWzBdICsgc2hpZnRbMF0p LAorKysgICAgICAgICAgICAgICAgICAgICAgICBpbnQoeSkpCisrICAgICAgICAgaWYgc2VsZi5f Y2VudGVyTGluZXNFbmFibGVkIGluICgnVmVydGljYWwnLCBUcnVlKToKKysgICAgICAgICAgICAg eDEgPSBzY2FsZVswXSAqIHAxWzBdICsgc2hpZnRbMF0KKysgICAgICAgICAgICAgeDIgPSBzY2Fs ZVswXSAqIHAyWzBdICsgc2hpZnRbMF0KKysgICAgICAgICAgICAgeCA9ICh4MSAtIHgyKSAvIDIu MCArIHgyCisrLSAgICAgICAgICAgIGRjLkRyYXdMaW5lKHgsCisrLSAgICAgICAgICAgICAgICAg ICAgICAgIHNjYWxlWzFdICogcDFbMV0gKyBzaGlmdFsxXSwKKystICAgICAgICAgICAgICAgICAg ICAgICAgeCwKKystICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVbMV0gKiBwMlsxXSArIHNo aWZ0WzFdKQorKysgICAgICAgICAgICBkYy5EcmF3TGluZShpbnQoeCksCisrKyAgICAgICAgICAg ICAgICAgICAgICAgIGludChzY2FsZVsxXSAqIHAxWzFdICsgc2hpZnRbMV0pLAorKysgICAgICAg ICAgICAgICAgICAgICAgICBpbnQoeCksCisrKyAgICAgICAgICAgICAgICAgICAgICAgIGludChz Y2FsZVsxXSAqIHAyWzFdICsgc2hpZnRbMV0pKQorKyAKKysgICAgIEBUZW1wU3R5bGUoJ3Blbicp CisrICAgICBkZWYgX2RyYXdEaWFnb25hbHMoc2VsZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0 KToKKytAQCAtMjU3NSwxOSArMjU3NSwxOSBAQCBkZWYgX2RyYXdEaWFnb25hbHMoc2VsZiwgZGMs IHAxLCBwMiwgc2NhbGUsIHNoaWZ0KToKKysgICAgICAgICAiIiIKKysgICAgICAgICBwZW4gPSBz ZWxmLmRpYWdvbmFsUGVuCisrICAgICAgICAgcGVuV2lkdGggPSBzZWxmLnByaW50ZXJTY2FsZSAq IHBlbi5HZXRXaWR0aCgpCisrLSAgICAgICAgcGVuLlNldFdpZHRoKHBlbldpZHRoKQorKysgICAg ICAgIHBlbi5TZXRXaWR0aChpbnQocGVuV2lkdGgpKQorKyAgICAgICAgIGRjLlNldFBlbihwZW4p CisrIAorKyAgICAgICAgIGlmIHNlbGYuX2RpYWdvbmFsc0VuYWJsZWQgaW4gKCdCb3R0b21sZWZ0 LVRvcHJpZ2h0JywgVHJ1ZSk6CisrLSAgICAgICAgICAgIGRjLkRyYXdMaW5lKHNjYWxlWzBdICog cDFbMF0gKyBzaGlmdFswXSwKKystICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVbMV0gKiBw MVsxXSArIHNoaWZ0WzFdLAorKy0gICAgICAgICAgICAgICAgICAgICAgICBzY2FsZVswXSAqIHAy WzBdICsgc2hpZnRbMF0sCisrLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlWzFdICogcDJb MV0gKyBzaGlmdFsxXSkKKysrICAgICAgICAgICAgZGMuRHJhd0xpbmUoaW50KHNjYWxlWzBdICog cDFbMF0gKyBzaGlmdFswXSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgIGludChzY2FsZVsx XSAqIHAxWzFdICsgc2hpZnRbMV0pLAorKysgICAgICAgICAgICAgICAgICAgICAgICBpbnQoc2Nh bGVbMF0gKiBwMlswXSArIHNoaWZ0WzBdKSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgaW50 KHNjYWxlWzFdICogcDJbMV0gKyBzaGlmdFsxXSkpCisrICAgICAgICAgaWYgc2VsZi5fZGlhZ29u YWxzRW5hYmxlZCBpbiAoJ0JvdHRvbXJpZ2h0LVRvcGxlZnQnLCBUcnVlKToKKystICAgICAgICAg ICAgZGMuRHJhd0xpbmUoc2NhbGVbMF0gKiBwMVswXSArIHNoaWZ0WzBdLAorKy0gICAgICAgICAg ICAgICAgICAgICAgICBzY2FsZVsxXSAqIHAyWzFdICsgc2hpZnRbMV0sCisrLSAgICAgICAgICAg ICAgICAgICAgICAgIHNjYWxlWzBdICogcDJbMF0gKyBzaGlmdFswXSwKKystICAgICAgICAgICAg ICAgICAgICAgICAgc2NhbGVbMV0gKiBwMVsxXSArIHNoaWZ0WzFdKQorKysgICAgICAgICAgICBk Yy5EcmF3TGluZShpbnQoc2NhbGVbMF0gKiBwMVswXSArIHNoaWZ0WzBdKSwKKysrICAgICAgICAg ICAgICAgICAgICAgICAgaW50KHNjYWxlWzFdICogcDJbMV0gKyBzaGlmdFsxXSksCisrKyAgICAg ICAgICAgICAgICAgICAgICAgIGludChzY2FsZVswXSAqIHAyWzBdICsgc2hpZnRbMF0pLAorKysg ICAgICAgICAgICAgICAgICAgICAgICBpbnQoc2NhbGVbMV0gKiBwMVsxXSArIHNoaWZ0WzFdKSkK KysgCisrICAgICBAVGVtcFN0eWxlKCdwZW4nKQorKyAgICAgZGVmIF9kcmF3QXhlcyhzZWxmLCBk YywgcDEsIHAyLCBzY2FsZSwgc2hpZnQpOgorK0BAIC0yNjE0LDcgKzI2MTQsNyBAQCBkZWYgX2Ry YXdBeGVzKHNlbGYsIGRjLCBwMSwgcDIsIHNjYWxlLCBzaGlmdCk6CisrICAgICAgICAgIyBpbmNy ZWFzZXMgdGhpY2tuZXNzIGZvciBwcmludGluZyBvbmx5CisrICAgICAgICAgcGVuID0gc2VsZi5h eGVzUGVuCisrICAgICAgICAgcGVuV2lkdGggPSBzZWxmLnByaW50ZXJTY2FsZSAqIHBlbi5HZXRX aWR0aCgpCisrLSAgICAgICAgcGVuLlNldFdpZHRoKHBlbldpZHRoKQorKysgICAgICAgIHBlbi5T ZXRXaWR0aChpbnQocGVuV2lkdGgpKQorKyAgICAgICAgIGRjLlNldFBlbihwZW4pCisrIAorKyAg ICAgICAgIGF4ZXMgPSBzZWxmLmVuYWJsZUF4ZXMKKytAQCAtMjYyMywyNCArMjYyMywyNCBAQCBk ZWYgX2RyYXdBeGVzKHNlbGYsIGRjLCBwMSwgcDIsIHNjYWxlLCBzaGlmdCk6CisrICAgICAgICAg ICAgICAgICBsb3dlciwgdXBwZXIgPSBwMVswXSwgcDJbMF0KKysgICAgICAgICAgICAgICAgIGEx ID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50KGxvd2VyLCBwMVsxXSwgc2NhbGUsIHNoaWZ0KQorKyAg ICAgICAgICAgICAgICAgYTIgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQodXBwZXIsIHAxWzFdLCBz Y2FsZSwgc2hpZnQpCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShhMVswXSwgYTFbMV0s IGEyWzBdLCBhMlsxXSkKKysrICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKGludChhMVswXSks IGludChhMVsxXSksIGludChhMlswXSksIGludChhMlsxXSkpCisrICAgICAgICAgICAgIGlmIGF4 ZXMudG9wOgorKyAgICAgICAgICAgICAgICAgbG93ZXIsIHVwcGVyID0gcDFbMF0sIHAyWzBdCisr ICAgICAgICAgICAgICAgICBhMSA9IHNjYWxlX2FuZF9zaGlmdF9wb2ludChsb3dlciwgcDJbMV0s IHNjYWxlLCBzaGlmdCkKKysgICAgICAgICAgICAgICAgIGEyID0gc2NhbGVfYW5kX3NoaWZ0X3Bv aW50KHVwcGVyLCBwMlsxXSwgc2NhbGUsIHNoaWZ0KQorKy0gICAgICAgICAgICAgICAgZGMuRHJh d0xpbmUoYTFbMF0sIGExWzFdLCBhMlswXSwgYTJbMV0pCisrKyAgICAgICAgICAgICAgICBkYy5E cmF3TGluZShpbnQoYTFbMF0pLCBpbnQoYTFbMV0pLCBpbnQoYTJbMF0pLCBpbnQoYTJbMV0pKQor KyAKKysgICAgICAgICBpZiBzZWxmLnlTcGVjICE9ICdub25lJzoKKysgICAgICAgICAgICAgaWYg YXhlcy5sZWZ0OgorKyAgICAgICAgICAgICAgICAgbG93ZXIsIHVwcGVyID0gcDFbMV0sIHAyWzFd CisrICAgICAgICAgICAgICAgICBhMSA9IHNjYWxlX2FuZF9zaGlmdF9wb2ludChwMVswXSwgbG93 ZXIsIHNjYWxlLCBzaGlmdCkKKysgICAgICAgICAgICAgICAgIGEyID0gc2NhbGVfYW5kX3NoaWZ0 X3BvaW50KHAxWzBdLCB1cHBlciwgc2NhbGUsIHNoaWZ0KQorKy0gICAgICAgICAgICAgICAgZGMu RHJhd0xpbmUoYTFbMF0sIGExWzFdLCBhMlswXSwgYTJbMV0pCisrKyAgICAgICAgICAgICAgICBk Yy5EcmF3TGluZShpbnQoYTFbMF0pLCBpbnQoYTFbMV0pLCBpbnQoYTJbMF0pLCBpbnQoYTJbMV0p KQorKyAgICAgICAgICAgICBpZiBheGVzLnJpZ2h0OgorKyAgICAgICAgICAgICAgICAgbG93ZXIs IHVwcGVyID0gcDFbMV0sIHAyWzFdCisrICAgICAgICAgICAgICAgICBhMSA9IHNjYWxlX2FuZF9z aGlmdF9wb2ludChwMlswXSwgbG93ZXIsIHNjYWxlLCBzaGlmdCkKKysgICAgICAgICAgICAgICAg IGEyID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50KHAyWzBdLCB1cHBlciwgc2NhbGUsIHNoaWZ0KQor Ky0gICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUoYTFbMF0sIGExWzFdLCBhMlswXSwgYTJbMV0p CisrKyAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShpbnQoYTFbMF0pLCBpbnQoYTFbMV0pLCBp bnQoYTJbMF0pLCBpbnQoYTJbMV0pKQorKyAKKysgICAgIEBUZW1wU3R5bGUoJ3BlbicpCisrICAg ICBkZWYgX2RyYXdBeGVzVmFsdWVzKHNlbGYsIGRjLCBwMSwgcDIsIHNjYWxlLCBzaGlmdCwgeHRp Y2tzLCB5dGlja3MpOgorK0BAIC0yNjg2LDggKzI2ODYsOCBAQCBkZWYgX2RyYXdBeGVzVmFsdWVz KHNlbGYsIGRjLCBwMSwgcDIsIHNjYWxlLCBzaGlmdCwgeHRpY2tzLCB5dGlja3MpOgorKyAgICAg ICAgICAgICAgICAgICAgIHcgPSBkYy5HZXRUZXh0RXh0ZW50KGxhYmVsKVswXQorKyAgICAgICAg ICAgICAgICAgICAgIHB0ID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50KHgsIHAxWzFdLCBzY2FsZSwg c2hpZnQpCisrICAgICAgICAgICAgICAgICAgICAgY29vcmRzLmFwcGVuZCgKKystICAgICAgICAg ICAgICAgICAgICAgICAgKHB0WzBdIC0gdy8yLAorKy0gICAgICAgICAgICAgICAgICAgICAgICAg cHRbMV0gKyAyICogc2VsZi5fcG9pbnRTaXplWzFdIC0geFRpY2tMZW5ndGgpCisrKyAgICAgICAg ICAgICAgICAgICAgICAgIChpbnQocHRbMF0gLSB3LzIpLAorKysgICAgICAgICAgICAgICAgICAg ICAgICAgaW50KHB0WzFdICsgMiAqIHNlbGYuX3BvaW50U2l6ZVsxXSAtIHhUaWNrTGVuZ3RoKSkK KysgICAgICAgICAgICAgICAgICAgICApCisrICAgICAgICAgICAgICAgICBkYy5EcmF3VGV4dExp c3QobGFiZWxzLCBjb29yZHMpCisrIAorK0BAIC0yNjk4LDggKzI2OTgsOCBAQCBkZWYgX2RyYXdB eGVzVmFsdWVzKHNlbGYsIGRjLCBwMSwgcDIsIHNjYWxlLCBzaGlmdCwgeHRpY2tzLCB5dGlja3Mp OgorKyAgICAgICAgICAgICAgICAgICAgIHcsIGggPSBkYy5HZXRUZXh0RXh0ZW50KGxhYmVsKQor KyAgICAgICAgICAgICAgICAgICAgIHB0ID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50KHgsIHAyWzFd LCBzY2FsZSwgc2hpZnQpCisrICAgICAgICAgICAgICAgICAgICAgY29vcmRzLmFwcGVuZCgKKyst ICAgICAgICAgICAgICAgICAgICAgICAgKHB0WzBdIC0gdy8yLAorKy0gICAgICAgICAgICAgICAg ICAgICAgICAgcHRbMV0gLSAyICogc2VsZi5fcG9pbnRTaXplWzFdIC0gaCAtIHhUaWNrTGVuZ3Ro KQorKysgICAgICAgICAgICAgICAgICAgICAgICAoaW50KHB0WzBdIC0gdy8yKSwKKysrICAgICAg ICAgICAgICAgICAgICAgICAgIGludChwdFsxXSAtIDIgKiBzZWxmLl9wb2ludFNpemVbMV0gLSBo IC0geFRpY2tMZW5ndGgpKQorKyAgICAgICAgICAgICAgICAgICAgICkKKysgICAgICAgICAgICAg ICAgIGRjLkRyYXdUZXh0TGlzdChsYWJlbHMsIGNvb3JkcykKKysgCisrQEAgLTI3MTIsOCArMjcx Miw4IEBAIGRlZiBfZHJhd0F4ZXNWYWx1ZXMoc2VsZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0 LCB4dGlja3MsIHl0aWNrcyk6CisrICAgICAgICAgICAgICAgICAgICAgdyA9IGRjLkdldFRleHRF eHRlbnQobGFiZWwpWzBdCisrICAgICAgICAgICAgICAgICAgICAgcHQgPSBzY2FsZV9hbmRfc2hp ZnRfcG9pbnQocDFbMF0sIHksIHNjYWxlLCBzaGlmdCkKKysgICAgICAgICAgICAgICAgICAgICBj b29yZHMuYXBwZW5kKAorKy0gICAgICAgICAgICAgICAgICAgICAgICAocHRbMF0gLSB3IC0gMyAq IHNlbGYuX3BvaW50U2l6ZVswXSArIHlUaWNrTGVuZ3RoLAorKy0gICAgICAgICAgICAgICAgICAg ICAgICAgcHRbMV0gLSAwLjUgKiBoKQorKysgICAgICAgICAgICAgICAgICAgICAgICAoaW50KHB0 WzBdIC0gdyAtIDMgKiBzZWxmLl9wb2ludFNpemVbMF0gKyB5VGlja0xlbmd0aCksCisrKyAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQocHRbMV0gLSAwLjUgKiBoKSkKKysgICAgICAgICAgICAg ICAgICAgICApCisrICAgICAgICAgICAgICAgICBkYy5EcmF3VGV4dExpc3QobGFiZWxzLCBjb29y ZHMpCisrIAorK0BAIC0yNzI1LDggKzI3MjUsOCBAQCBkZWYgX2RyYXdBeGVzVmFsdWVzKHNlbGYs IGRjLCBwMSwgcDIsIHNjYWxlLCBzaGlmdCwgeHRpY2tzLCB5dGlja3MpOgorKyAgICAgICAgICAg ICAgICAgICAgIHcgPSBkYy5HZXRUZXh0RXh0ZW50KGxhYmVsKVswXQorKyAgICAgICAgICAgICAg ICAgICAgIHB0ID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50KHAyWzBdLCB5LCBzY2FsZSwgc2hpZnQp CisrICAgICAgICAgICAgICAgICAgICAgY29vcmRzLmFwcGVuZCgKKystICAgICAgICAgICAgICAg ICAgICAgICAgKHB0WzBdICsgMyAqIHNlbGYuX3BvaW50U2l6ZVswXSArIHlUaWNrTGVuZ3RoLAor Ky0gICAgICAgICAgICAgICAgICAgICAgICAgcHRbMV0gLSAwLjUgKiBoKQorKysgICAgICAgICAg ICAgICAgICAgICAgICAoaW50KHB0WzBdICsgMyAqIHNlbGYuX3BvaW50U2l6ZVswXSArIHlUaWNr TGVuZ3RoKSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgIGludChwdFsxXSAtIDAuNSAqIGgp KQorKyAgICAgICAgICAgICAgICAgICAgICkKKysgICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0 TGlzdChsYWJlbHMsIGNvb3JkcykKKysgCisrQEAgLTI3ODUsNyArMjc4NSw3IEBAIGRlZiBfZHJh d1Bsb3RUaXRsZShzZWxmLCBkYywgZ3JhcGhpY3MsIGxoc1csIHJoc1csIHRpdGxlV0gpOgorKyAg ICAgICAgICAgICArIChzZWxmLnBsb3Rib3hfc2l6ZVswXSAtIGxoc1cgLSByaHNXKSAvIDIuIC0g dGl0bGVXSFswXSAvIDIuLAorKyAgICAgICAgICAgICBzZWxmLnBsb3Rib3hfb3JpZ2luWzFdIC0g c2VsZi5wbG90Ym94X3NpemVbMV0KKysgICAgICAgICApCisrLSAgICAgICAgZGMuRHJhd1RleHQo Z3JhcGhpY3MudGl0bGUsIHRpdGxlUG9zWzBdLCB0aXRsZVBvc1sxXSkKKysrICAgICAgICBkYy5E cmF3VGV4dChncmFwaGljcy50aXRsZSwgaW50KHRpdGxlUG9zWzBdKSwgaW50KHRpdGxlUG9zWzFd KSkKKysgCisrICAgICBkZWYgX2RyYXdBeGVzTGFiZWxzKHNlbGYsIGRjLCBncmFwaGljcywgbGhz VywgcmhzVywgYm90dG9tSCwgdG9wSCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgeExhYmVs V0gsIHlMYWJlbFdIKToKKytAQCAtMjgwNiw3ICsyODA2LDcgQEAgZGVmIF9kcmF3QXhlc0xhYmVs cyhzZWxmLCBkYywgZ3JhcGhpY3MsIGxoc1csIHJoc1csIGJvdHRvbUgsIHRvcEgsCisrICAgICAg ICAgICAgICsgKHNlbGYucGxvdGJveF9zaXplWzBdIC0gbGhzVyAtIHJoc1cpIC8gMi4gLSB4TGFi ZWxXSFswXSAvIDIuLAorKyAgICAgICAgICAgICBzZWxmLnBsb3Rib3hfb3JpZ2luWzFdIC0geExh YmVsV0hbMV0gLSB5VGlja0xlbmd0aAorKyAgICAgICAgICkKKystICAgICAgICBkYy5EcmF3VGV4 dChncmFwaGljcy54TGFiZWwsIHhMYWJlbFBvc1swXSwgeExhYmVsUG9zWzFdKQorKysgICAgICAg IGRjLkRyYXdUZXh0KGdyYXBoaWNzLnhMYWJlbCwgaW50KHhMYWJlbFBvc1swXSksIGludCh4TGFi ZWxQb3NbMV0pKQorKyAgICAgICAgIHlMYWJlbFBvcyA9ICgKKysgICAgICAgICAgICAgc2VsZi5w bG90Ym94X29yaWdpblswXSAtIDMgKiBzZWxmLl9wb2ludFNpemVbMF0gKyB4VGlja0xlbmd0aCwK KysgICAgICAgICAgICAgc2VsZi5wbG90Ym94X29yaWdpblsxXSAtIGJvdHRvbUgKKytAQCAtMjgx NCw3ICsyODE0LDcgQEAgZGVmIF9kcmF3QXhlc0xhYmVscyhzZWxmLCBkYywgZ3JhcGhpY3MsIGxo c1csIHJoc1csIGJvdHRvbUgsIHRvcEgsCisrICAgICAgICAgKQorKyAgICAgICAgIGlmIGdyYXBo aWNzLnlMYWJlbDogICMgYnVnIGZpeCBmb3IgTGludXgKKysgICAgICAgICAgICAgZGMuRHJhd1Jv dGF0ZWRUZXh0KAorKy0gICAgICAgICAgICAgICAgZ3JhcGhpY3MueUxhYmVsLCB5TGFiZWxQb3Nb MF0sIHlMYWJlbFBvc1sxXSwgOTApCisrKyAgICAgICAgICAgICAgICBncmFwaGljcy55TGFiZWws IGludCh5TGFiZWxQb3NbMF0pLCBpbnQoeUxhYmVsUG9zWzFdKSwgOTApCisrIAorKyAgICAgQFRl bXBTdHlsZSgncGVuJykKKysgICAgIGRlZiBfZHJhd1Bsb3RBcmVhTGFiZWxzKHNlbGYsIGRjLCBn cmFwaGljcywgbGhzVywgcmhzVywgdGl0bGVXSCwKKytAQCAtMjk0Miw3ICsyOTQyLDcgQEAgZGVm IF9hZGp1c3RTY3JvbGxiYXJzKHNlbGYpOgorKyAgICAgICAgIGlmIHBvcyA+PSAwOgorKyAgICAg ICAgICAgICBwYWdlc2l6ZSA9IGludCgocl9jdXJyZW50WzFdIC0gcl9jdXJyZW50WzBdKSAvIHVu aXQpCisrIAorKy0gICAgICAgICAgICBzZWxmLnNiX2hvci5TZXRTY3JvbGxiYXIocG9zLCBwYWdl c2l6ZSwgc2JmdWxscmFuZ2UsIHBhZ2VzaXplKQorKysgICAgICAgICAgICBzZWxmLnNiX2hvci5T ZXRTY3JvbGxiYXIocG9zLCBwYWdlc2l6ZSwgaW50KHNiZnVsbHJhbmdlKSwgcGFnZXNpemUpCisr ICAgICAgICAgICAgIHNlbGYuX3NiX3h1bml0ID0gdW5pdAorKyAgICAgICAgICAgICBuZWVkU2Ny b2xsYmFycyA9IG5lZWRTY3JvbGxiYXJzIG9yIChwYWdlc2l6ZSAhPSBzYmZ1bGxyYW5nZSkKKysg ICAgICAgICBlbHNlOgorK0BAIC0yOTY0LDcgKzI5NjQsNyBAQCBkZWYgX2FkanVzdFNjcm9sbGJh cnMoc2VsZik6CisrICAgICAgICAgaWYgcG9zID49IDA6CisrICAgICAgICAgICAgIHBhZ2VzaXpl ID0gaW50KChyX2N1cnJlbnRbMV0gLSByX2N1cnJlbnRbMF0pIC8gdW5pdCkKKysgICAgICAgICAg ICAgcG9zID0gKHNiZnVsbHJhbmdlIC0gMSAtIHBvcyAtIHBhZ2VzaXplKQorKy0gICAgICAgICAg ICBzZWxmLnNiX3ZlcnQuU2V0U2Nyb2xsYmFyKHBvcywgcGFnZXNpemUsIHNiZnVsbHJhbmdlLCBw YWdlc2l6ZSkKKysrICAgICAgICAgICAgc2VsZi5zYl92ZXJ0LlNldFNjcm9sbGJhcihpbnQocG9z KSwgcGFnZXNpemUsIGludChzYmZ1bGxyYW5nZSksIHBhZ2VzaXplKQorKyAgICAgICAgICAgICBz ZWxmLl9zYl95dW5pdCA9IHVuaXQKKysgICAgICAgICAgICAgbmVlZFNjcm9sbGJhcnMgPSBuZWVk U2Nyb2xsYmFycyBvciAocGFnZXNpemUgIT0gc2JmdWxscmFuZ2UpCisrICAgICAgICAgZWxzZToK KytkaWZmIC0tZ2l0IGEvd3gvbGliL3Bsb3QvcG9seW9iamVjdHMucHkgYi93eC9saWIvcGxvdC9w b2x5b2JqZWN0cy5weQorK2luZGV4IDI2YTU0ZjhmNy4uNzI1YjAxNjRlIDEwMDY0NAorKy0tLSBh L3d4L2xpYi9wbG90L3BvbHlvYmplY3RzLnB5CisrKysrIGIvd3gvbGliL3Bsb3QvcG9seW9iamVj dHMucHkKKytAQCAtNDE3LDcgKzQxNyw3IEBAIGRlZiBkcmF3KHNlbGYsIGRjLCBwcmludGVyU2Nh bGUsIGNvb3JkPU5vbmUpOgorKyAKKysgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShjb2xvdXIs IHd4LkNvbG91cik6CisrICAgICAgICAgICAgIGNvbG91ciA9IHd4LkNvbG91cihjb2xvdXIpCisr LSAgICAgICAgcGVuID0gd3guUGVuKGNvbG91ciwgd2lkdGgsIHN0eWxlKQorKysgICAgICAgIHBl biA9IHd4LlBlbihjb2xvdXIsIGludCh3aWR0aCksIHN0eWxlKQorKyAgICAgICAgIHBlbi5TZXRD YXAod3guQ0FQX0JVVFQpCisrICAgICAgICAgZGMuU2V0UGVuKHBlbikKKysgICAgICAgICBpZiBj b29yZCBpcyBOb25lOgorK0BAIC01MTgsNyArNTE4LDcgQEAgZGVmIGRyYXcoc2VsZiwgZGMsIHBy aW50ZXJTY2FsZSwgY29vcmQ9Tm9uZSk6CisrICAgICAgICAgc3R5bGUgPSBzZWxmLmF0dHJpYnV0 ZXNbJ3N0eWxlJ10KKysgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShjb2xvdXIsIHd4LkNvbG91 cik6CisrICAgICAgICAgICAgIGNvbG91ciA9IHd4LkNvbG91cihjb2xvdXIpCisrLSAgICAgICAg cGVuID0gd3guUGVuKGNvbG91ciwgd2lkdGgsIHN0eWxlKQorKysgICAgICAgIHBlbiA9IHd4LlBl bihjb2xvdXIsIGludCh3aWR0aCksIHN0eWxlKQorKyAgICAgICAgIHBlbi5TZXRDYXAod3guQ0FQ X1JPVU5EKQorKyAgICAgICAgIGRjLlNldFBlbihwZW4pCisrICAgICAgICAgaWYgY29vcmQgaXMg Tm9uZToKKytAQCAtNTkwLDcgKzU5MCw3IEBAIGRlZiBkcmF3KHNlbGYsIGRjLCBwcmludGVyU2Nh bGUsIGNvb3JkPU5vbmUpOgorKyAgICAgICAgIGlmIGZpbGxjb2xvdXIgYW5kIG5vdCBpc2luc3Rh bmNlKGZpbGxjb2xvdXIsIHd4LkNvbG91cik6CisrICAgICAgICAgICAgIGZpbGxjb2xvdXIgPSB3 eC5Db2xvdXIoZmlsbGNvbG91cikKKysgCisrLSAgICAgICAgZGMuU2V0UGVuKHd4LlBlbihjb2xv dXIsIHdpZHRoKSkKKysrICAgICAgICBkYy5TZXRQZW4od3guUGVuKGNvbG91ciwgaW50KHdpZHRo KSkpCisrICAgICAgICAgaWYgZmlsbGNvbG91cjoKKysgICAgICAgICAgICAgZGMuU2V0QnJ1c2go d3guQnJ1c2goZmlsbGNvbG91ciwgZmlsbHN0eWxlKSkKKysgICAgICAgICBlbHNlOgorK0BAIC02 MTgsNiArNjE4LDcgQEAgZGVmIF9jaXJjbGUoc2VsZiwgZGMsIGNvb3Jkcywgc2l6ZT0xKToKKysg ICAgICAgICBkYy5EcmF3RWxsaXBzZUxpc3QocmVjdC5hc3R5cGUobnAuaW50MzIpKQorKyAKKysg ICAgIGRlZiBfZG90KHNlbGYsIGRjLCBjb29yZHMsIHNpemU9MSk6CisrKyAgICAgICAgY29vcmRz ID0gWyhpbnQoY1swXSksIGludChjWzFdKSkgZm9yIGMgaW4gY29vcmRzXQorKyAgICAgICAgIGRj LkRyYXdQb2ludExpc3QoY29vcmRzKQorKyAKKysgICAgIGRlZiBfc3F1YXJlKHNlbGYsIGRjLCBj b29yZHMsIHNpemU9MSk6CisrQEAgLTY5OSw3ICs3MDAsNyBAQCBkZWYgc2V0X3Blbl9hbmRfYnJ1 c2goc2VsZiwgZGMsIHByaW50ZXJTY2FsZSk6CisrIAorKyAgICAgICAgIGlmIG5vdCBpc2luc3Rh bmNlKHBlbmNvbG91ciwgd3guQ29sb3VyKToKKysgICAgICAgICAgICAgcGVuY29sb3VyID0gd3gu Q29sb3VyKHBlbmNvbG91cikKKystICAgICAgICBwZW4gPSB3eC5QZW4ocGVuY29sb3VyLCBwZW53 aWR0aCwgcGVuc3R5bGUpCisrKyAgICAgICAgcGVuID0gd3guUGVuKHBlbmNvbG91ciwgaW50KHBl bndpZHRoKSwgcGVuc3R5bGUpCisrICAgICAgICAgcGVuLlNldENhcCh3eC5DQVBfQlVUVCkKKysg CisrICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZmlsbGNvbG91ciwgd3guQ29sb3VyKToKKytA QCAtNzkwLDYgKzc5MSw3IEBAIGRlZiBkcmF3KHNlbGYsIGRjLCBwcmludGVyU2NhbGUsIGNvb3Jk PU5vbmUpOgorKyAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKGVycl9zdHIuZm9ybWF0 KHR5cGUoYmFyd2lkdGgpKSkKKysgCisrICAgICAgICAgICAgIHJlY3RzID0gW3NlbGYuY2FsY19y ZWN0KHgsIHksIHcpIGZvciB4LCB5LCB3IGluIHB0c10KKysrICAgICAgICAgICAgcmVjdHMgPSBb KGludChyWzBdKSwgaW50KHJbMV0pLCBpbnQoclsyXSksIGludChyWzNdKSkgZm9yIHIgaW4gcmVj dHNdCisrICAgICAgICAgICAgIGRjLkRyYXdSZWN0YW5nbGVMaXN0KHJlY3RzKQorKyAgICAgICAg IGVsc2U6CisrICAgICAgICAgICAgIGRjLkRyYXdMaW5lcyhjb29yZCkgICMgZHJhdyBsZWdlbmQg bGluZQorK0BAIC04NTgsNiArODYwLDggQEAgZGVmIGRyYXcoc2VsZiwgZGMsIHByaW50ZXJTY2Fs ZSwgY29vcmQ9Tm9uZSk6CisrICAgICAgICAgICAgIHJlY3RzID0gW3NlbGYuY2FsY19yZWN0KHks IGxvdywgaGlnaCkKKysgICAgICAgICAgICAgICAgICAgICAgZm9yIHksIChsb3csIGhpZ2gpCisr ICAgICAgICAgICAgICAgICAgICAgIGluIHppcChzZWxmLmhpc3QsIHNlbGYuYmlucyldCisrKyAg ICAgICAgICAgIHJlY3RzID0gWyhpbnQoclswXSksIGludChyWzFdKSwgaW50KHJbMl0pLCBpbnQo clszXSkpCisrKyAgICAgICAgICAgICAgICAgICAgIGZvciByIGluIHJlY3RzXQorKyAKKysgICAg ICAgICAgICAgZGMuRHJhd1JlY3RhbmdsZUxpc3QocmVjdHMpCisrICAgICAgICAgZWxzZToKKytA QCAtMTExNCwxMCArMTExOCwxMCBAQCBkZWYgX2RyYXdfaXFyX2JveChzZWxmLCBkYywgcHJpbnRl clNjYWxlKToKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmN1 cnJlbnRTaGlmdCkKKysgCisrICAgICAgICAgIyByZWN0YW5nbGVzIGFyZSBkcmF3biAobGVmdCwg dG9wLCB3aWR0aCwgaGVpZ2h0KSBzbyBhZGp1c3QKKystICAgICAgICBpcXJfYm94ID0gW2lxcl9i b3hbMF1bMF0sICAgICAgICAgICAgICAgICAgICMgWCAobGVmdCkKKystICAgICAgICAgICAgICAg ICAgIGlxcl9ib3hbMF1bMV0sICAgICAgICAgICAgICAgICAgICMgWSAodG9wKQorKy0gICAgICAg ICAgICAgICAgICAgaXFyX2JveFsxXVswXSAtIGlxcl9ib3hbMF1bMF0sICAgIyBXaWR0aAorKy0g ICAgICAgICAgICAgICAgICAgaXFyX2JveFsxXVsxXSAtIGlxcl9ib3hbMF1bMV1dICAgIyBIZWln aHQKKysrICAgICAgICBpcXJfYm94ID0gW2ludChpcXJfYm94WzBdWzBdKSwgICAgICAgICAgICAg ICAgICAgIyBYIChsZWZ0KQorKysgICAgICAgICAgICAgICAgICAgaW50KGlxcl9ib3hbMF1bMV0p LCAgICAgICAgICAgICAgICAgICAjIFkgKHRvcCkKKysrICAgICAgICAgICAgICAgICAgIGludChp cXJfYm94WzFdWzBdIC0gaXFyX2JveFswXVswXSksICAgIyBXaWR0aAorKysgICAgICAgICAgICAg ICAgICAgaW50KGlxcl9ib3hbMV1bMV0gLSBpcXJfYm94WzBdWzFdKV0gICAjIEhlaWdodAorKyAK KysgICAgICAgICBib3hfcGVuID0gd3guUGVuKHd4LkJMQUNLLCAzLCB3eC5QRU5TVFlMRV9TT0xJ RCkKKysgICAgICAgICBib3hfYnJ1c2ggPSB3eC5CcnVzaCh3eC5HUkVFTiwgd3guQlJVU0hTVFlM RV9TT0xJRCkKKytAQCAtMTUwMyw3ICsxNTA3LDcgQEAgZGVmIE9uUHJpbnRQYWdlKHNlbGYsIHBh Z2UpOgorKyAgICAgICAgIHNlbGYuZ3JhcGguX3NldFNpemUocGxvdEFyZWFXLCBwbG90QXJlYUgp CisrIAorKyAgICAgICAgICMgU2V0IG9mZnNldCBhbmQgc2NhbGUKKystICAgICAgICBkYy5TZXRE ZXZpY2VPcmlnaW4ocGl4TGVmdCwgcGl4VG9wKQorKysgICAgICAgIGRjLlNldERldmljZU9yaWdp bihpbnQocGl4TGVmdCksIGludChwaXhUb3ApKQorKyAKKysgICAgICAgICAjIFRoaWNrZW4gdXAg cGVucyBhbmQgaW5jcmVhc2UgbWFya2VyIHNpemUgZm9yIHByaW50aW5nCisrICAgICAgICAgcmF0 aW9XID0gZmxvYXQocGxvdEFyZWFXKSAvIGNsaWVudERjU2l6ZVswXQorK2RpZmYgLS1naXQgYS93 eC9saWIvcG9wdXBjdGwucHkgYi93eC9saWIvcG9wdXBjdGwucHkKKytpbmRleCA4ODNiZTVhZTUu LjIzNjUwMWY2ZCAxMDA2NDQKKystLS0gYS93eC9saWIvcG9wdXBjdGwucHkKKysrKysgYi93eC9s aWIvcG9wdXBjdGwucHkKKytAQCAtMTI0LDcgKzEyNCw3IEBAIGRlZiBEaXNwbGF5KHNlbGYpOgor KyAgICAgICAgIHNlbGZTaXplID0gc2VsZi5HZXRTaXplKCkKKysgICAgICAgICB0Y1NpemUgPSBz ZWxmLmN0cmwuR2V0U2l6ZSgpCisrIAorKy0gICAgICAgIHBvcy54IC09IChzZWxmU2l6ZS53aWR0 aCAtIHRjU2l6ZS53aWR0aCkgLyAyCisrKyAgICAgICAgcG9zLnggLT0gKHNlbGZTaXplLndpZHRo IC0gdGNTaXplLndpZHRoKSAvLyAyCisrICAgICAgICAgaWYgcG9zLnggKyBzZWxmU2l6ZS53aWR0 aCA+IGRTaXplLndpZHRoOgorKyAgICAgICAgICAgICBwb3MueCA9IGRTaXplLndpZHRoIC0gc2Vs ZlNpemUud2lkdGgKKysgICAgICAgICBpZiBwb3MueCA8IDA6CisrZGlmZiAtLWdpdCBhL3d4L2xp Yi9zY3JvbGxlZHBhbmVsLnB5IGIvd3gvbGliL3Njcm9sbGVkcGFuZWwucHkKKytpbmRleCBlNGM0 ODJhZjkuLjFmNzgzZWE5NyAxMDA2NDQKKystLS0gYS93eC9saWIvc2Nyb2xsZWRwYW5lbC5weQor KysrKyBiL3d4L2xpYi9zY3JvbGxlZHBhbmVsLnB5CisrQEAgLTIyMiw0ICsyMjIsNCBAQCBkZWYg U2Nyb2xsQ2hpbGRJbnRvVmlldyhzZWxmLCBjaGlsZCk6CisrICAgICAgICAgIyBpZiB3ZSBuZWVk IHRvIGFkanVzdAorKyAgICAgICAgIGlmIG5ld192c194ICE9IC0xIG9yIG5ld192c195ICE9IC0x OgorKyAgICAgICAgICAgICAjcHJpbnQoIiVzOiAoJXMsICVzKSIgJSAoc2VsZi5HZXROYW1lKCks IG5ld192c194LCBuZXdfdnNfeSkpCisrLSAgICAgICAgICAgIHNlbGYuU2Nyb2xsKG5ld192c194 LCBuZXdfdnNfeSkKKysrICAgICAgICAgICAgc2VsZi5TY3JvbGwoaW50KG5ld192c194KSwgaW50 KG5ld192c195KSkKKytkaWZmIC0tZ2l0IGEvd3gvbGliL3Rocm9iYmVyLnB5IGIvd3gvbGliL3Ro cm9iYmVyLnB5CisraW5kZXggOTk1NGQ2YjI3Li5lZThjNTEyMDkgMTAwNjQ0CisrLS0tIGEvd3gv bGliL3Rocm9iYmVyLnB5CisrKysrIGIvd3gvbGliL3Rocm9iYmVyLnB5CisrQEAgLTIwMCwxMSAr MjAwLDExIEBAIGRlZiBEcmF3KHNlbGYsIGRjKToKKysgICAgICAgICAiIiIKKysgICAgICAgICBk Yy5EcmF3Qml0bWFwKHNlbGYuc3VibWFwc1tzZWxmLnNlcXVlbmNlW3NlbGYuY3VycmVudF1dLCAw LCAwLCBUcnVlKQorKyAgICAgICAgIGlmIHNlbGYub3ZlcmxheSBhbmQgc2VsZi5zaG93T3Zlcmxh eToKKystICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChzZWxmLm92ZXJsYXksIHNlbGYub3Zlcmxh eVgsIHNlbGYub3ZlcmxheVksIFRydWUpCisrKyAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAoc2Vs Zi5vdmVybGF5LCBpbnQoc2VsZi5vdmVybGF5WCksIGludChzZWxmLm92ZXJsYXlZKSwgVHJ1ZSkK KysgICAgICAgICBpZiBzZWxmLmxhYmVsIGFuZCBzZWxmLnNob3dMYWJlbDoKKystICAgICAgICAg ICAgZGMuRHJhd1RleHQoc2VsZi5sYWJlbCwgc2VsZi5sYWJlbFgsIHNlbGYubGFiZWxZKQorKysg ICAgICAgICAgICBkYy5EcmF3VGV4dChzZWxmLmxhYmVsLCBpbnQoc2VsZi5sYWJlbFgpLCBpbnQo c2VsZi5sYWJlbFkpKQorKyAgICAgICAgICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZCh3eC5XSElU RSkKKystICAgICAgICAgICAgZGMuRHJhd1RleHQoc2VsZi5sYWJlbCwgc2VsZi5sYWJlbFgtMSwg c2VsZi5sYWJlbFktMSkKKysrICAgICAgICAgICAgZGMuRHJhd1RleHQoc2VsZi5sYWJlbCwgaW50 KHNlbGYubGFiZWxYLTEpLCBpbnQoc2VsZi5sYWJlbFktMSkpCisrIAorKyAKKysgICAgIGRlZiBP blBhaW50KHNlbGYsIGV2ZW50KToKKytkaWZmIC0tZ2l0IGEvd3gvbGliL3RpY2tlci5weSBiL3d4 L2xpYi90aWNrZXIucHkKKytpbmRleCAwNGFiZjBkNDQuLjRlNjg0YjRjZCAxMDA2NDQKKystLS0g YS93eC9saWIvdGlja2VyLnB5CisrKysrIGIvd3gvbGliL3RpY2tlci5weQorK0BAIC04Niw3ICs4 Niw3IEBAIGRlZiBTdG9wKHNlbGYpOgorKyAgICAgZGVmIFN0YXJ0KHNlbGYpOgorKyAgICAgICAg ICIiIlN0YXJ0cyB0aGUgdGV4dCBtb3ZpbmciIiIKKysgICAgICAgICBpZiBub3Qgc2VsZi50aW1l ci5Jc1J1bm5pbmcoKToKKystICAgICAgICAgICAgc2VsZi50aW1lci5TdGFydCgxMDAwIC8gc2Vs Zi5fZnBzKQorKysgICAgICAgICAgICBzZWxmLnRpbWVyLlN0YXJ0KDEwMDAgLy8gc2VsZi5fZnBz KQorKyAKKysgCisrICAgICBkZWYgSXNUaWNraW5nKHNlbGYpOgorK0BAIC0yMDgsNyArMjA4LDcg QEAgZGVmIERyYXdUZXh0KHNlbGYsIGRjKToKKysgICAgICAgICAgICAgb2ZmeCA9IHNlbGYuX29m ZnNldCAtIHNlbGYuX2V4dGVudFswXQorKyAgICAgICAgIGVsc2U6CisrICAgICAgICAgICAgIG9m ZnggPSBzZWxmLkdldFNpemUoKVswXSAtIHNlbGYuX29mZnNldAorKy0gICAgICAgIG9mZnkgPSAo c2VsZi5HZXRTaXplKClbMV0gLSBzZWxmLl9leHRlbnRbMV0pIC8gMiAjY2VudGVyZWQgdmVydGlj YWxseQorKysgICAgICAgIG9mZnkgPSAoc2VsZi5HZXRTaXplKClbMV0gLSBzZWxmLl9leHRlbnRb MV0pIC8vIDIgI2NlbnRlcmVkIHZlcnRpY2FsbHkKKysgICAgICAgICBkYy5EcmF3VGV4dChzZWxm Ll90ZXh0LCBvZmZ4LCBvZmZ5KQorKyAKKysgCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvd3hQeXRo b240L3BhdGNoZXMvMDAwMy1QeXRob24tMy4xMC1BR1ctRmxhdE5vdGVib29rLnBhdGNoIGIvc3Jj cGtncy93eFB5dGhvbjQvcGF0Y2hlcy8wMDAzLVB5dGhvbi0zLjEwLUFHVy1GbGF0Tm90ZWJvb2su cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44OGMzY2ExODk2 NDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3d4UHl0aG9uNC9wYXRjaGVzLzAwMDMtUHl0 aG9uLTMuMTAtQUdXLUZsYXROb3RlYm9vay5wYXRjaApAQCAtMCwwICsxLDU3IEBACitGcm9tIDFk NWZkNzJkZmY2M2Q2MmRkMTliNzdlNDg5ZDQxMTUyNDVkNGQ0NTMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBTY290dCBUYWxiZXJ0IDxzd3RAdGVjaGllLm5ldD4KK0RhdGU6IERlYyAy OCAyMDIxIDAyOjU4OjEyICswMDAwCitTdWJqZWN0OiBGaXggbW9yZSBQeXRob24gMy4xMCBpc3N1 ZXMgd2l0aCBBR1cgRmxhdE5vdGVib29rICgjMjAzNTc5MCkKKworCistLS0KKworZGlmZiAtLWdp dCBhL2FhM2RjYTBlNDBiZDA3MDFlODJjZTQwMjk3YTk4MmI1Yjg0ODQ0ZGMucGF0Y2ggYi9hYTNk Y2EwZTQwYmQwNzAxZTgyY2U0MDI5N2E5ODJiNWI4NDg0NGRjLnBhdGNoCituZXcgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggMDAwMDAwMC4uZThiNzRhYworLS0tIC9kZXYvbnVsbAorKysrIGIvYWEz ZGNhMGU0MGJkMDcwMWU4MmNlNDAyOTdhOTgyYjViODQ4NDRkYy5wYXRjaAorQEAgLTAsMCArMSw0 MyBAQAorK0Zyb20gYWEzZGNhMGU0MGJkMDcwMWU4MmNlNDAyOTdhOTgyYjViODQ4NDRkYyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKKytGcm9tOiBTY290dCBUYWxiZXJ0IDxzd3RAdGVjaGllLm5l dD4KKytEYXRlOiBNb24sIDI3IERlYyAyMDIxIDE5OjQ4OjU1IC0wNTAwCisrU3ViamVjdDogW1BB VENIXSBGaXggYWRkaXRpb25hbCBQeXRob24gMy4xMCBpc3N1ZXMgd2l0aCBBR1cgRmxhdE5vdGVi b29rCisrCisrLS0tCisrIHd4L2xpYi9hZ3cvZmxhdG5vdGVib29rLnB5IHwgMTQgKysrKysrKy0t LS0tLS0KKysgMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkK KysKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9mbGF0bm90ZWJvb2sucHkgYi93eC9saWIvYWd3 L2ZsYXRub3RlYm9vay5weQorK2luZGV4IGQzM2Y3MWQ1MS4uNjFiYzRlZmIzIDEwMDY0NAorKy0t LSBhL3d4L2xpYi9hZ3cvZmxhdG5vdGVib29rLnB5CisrKysrIGIvd3gvbGliL2Fndy9mbGF0bm90 ZWJvb2sucHkKKytAQCAtOTI1LDE0ICs5MjUsMTQgQEAgZGVmIERyYXdCdXR0b24oZGMsIHJlY3Qs IGZvY3VzLCB1cHBlclRhYnMpOgorKyAKKysgICAgIGlmIGZvY3VzOgorKyAgICAgICAgIGlmIHVw cGVyVGFiczoKKystICAgICAgICAgICAgbGVmdFB0ID0gd3guUG9pbnQocmVjdC54LCByZWN0Lnkg KyAocmVjdC5oZWlnaHQgLyAxMCkqOCkKKystICAgICAgICAgICAgcmlnaHRQdCA9IHd4LlBvaW50 KHJlY3QueCArIHJlY3Qud2lkdGggLSAyLCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLyAxMCkqOCkK KysrICAgICAgICAgICAgbGVmdFB0ID0gd3guUG9pbnQocmVjdC54LCBpbnQocmVjdC55ICsgKHJl Y3QuaGVpZ2h0IC8gMTApKjgpKQorKysgICAgICAgICAgICByaWdodFB0ID0gd3guUG9pbnQocmVj dC54ICsgcmVjdC53aWR0aCAtIDIsIGludChyZWN0LnkgKyAocmVjdC5oZWlnaHQgLyAxMCkqOCkp CisrICAgICAgICAgZWxzZToKKystICAgICAgICAgICAgbGVmdFB0ID0gd3guUG9pbnQocmVjdC54 LCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLyAxMCkqNSkKKystICAgICAgICAgICAgcmlnaHRQdCA9 IHd4LlBvaW50KHJlY3QueCArIHJlY3Qud2lkdGggLSAyLCByZWN0LnkgKyAocmVjdC5oZWlnaHQg LyAxMCkqNSkKKysrICAgICAgICAgICAgbGVmdFB0ID0gd3guUG9pbnQocmVjdC54LCBpbnQocmVj dC55ICsgKHJlY3QuaGVpZ2h0IC8gMTApKjUpKQorKysgICAgICAgICAgICByaWdodFB0ID0gd3gu UG9pbnQocmVjdC54ICsgcmVjdC53aWR0aCAtIDIsIGludChyZWN0LnkgKyAocmVjdC5oZWlnaHQg LyAxMCkqNSkpCisrICAgICBlbHNlOgorKy0gICAgICAgIGxlZnRQdCA9IHd4LlBvaW50KHJlY3Qu eCwgcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC8gMikpCisrLSAgICAgICAgcmlnaHRQdCA9IHd4LlBv aW50KHJlY3QueCArIHJlY3Qud2lkdGggLSAyLCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLyAyKSkK KysrICAgICAgICBsZWZ0UHQgPSB3eC5Qb2ludChyZWN0LngsIGludChyZWN0LnkgKyAocmVjdC5o ZWlnaHQgLyAyKSkpCisrKyAgICAgICAgcmlnaHRQdCA9IHd4LlBvaW50KHJlY3QueCArIHJlY3Qu d2lkdGggLSAyLCBpbnQocmVjdC55ICsgKHJlY3QuaGVpZ2h0IC8gMikpKQorKyAKKysgICAgICMg RGVmaW5lIHRoZSB0b3AgcmVnaW9uCisrICAgICB0b3AgPSB3eC5SZWN0KHJlY3QuR2V0VG9wTGVm dCgpLCByaWdodFB0KQorK0BAIC0yNzY2LDcgKzI3NjYsNyBAQCBkZWYgRHJhd1RhYihzZWxmLCBw YWdlQ29udGFpbmVyLCBkYywgcG9zeCwgdGFiSWR4LCB0YWJXaWR0aCwgdGFiSGVpZ2h0LCBidG5T dGF0dQorKyAgICAgICAgIGlmIHBhZ2VUZXh0Q29sb3VyIGlzIG5vdCBOb25lOgorKyAgICAgICAg ICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZChwYWdlVGV4dENvbG91cikKKysgCisrLSAgICAgICAg ZGMuRHJhd1RleHQocGMuR2V0UGFnZVRleHQodGFiSWR4KSwgcG9zeCArIHRleHRPZmZzZXQsIGlt YWdlWUNvb3JkKQorKysgICAgICAgIGRjLkRyYXdUZXh0KHBjLkdldFBhZ2VUZXh0KHRhYklkeCks IGludChwb3N4ICsgdGV4dE9mZnNldCksIGltYWdlWUNvb3JkKQorKyAKKysgICAgICAgICAjIGRy YXcgJ3gnIG9uIHRhYiAoaWYgZW5hYmxlZCkKKysgICAgICAgICBpZiBwYy5IYXNBR1dGbGFnKEZO Ql9YX09OX1RBQikgYW5kIHRhYklkeCA9PSBwYy5HZXRTZWxlY3Rpb24oKToKZGlmZiAtLWdpdCBh L3NyY3BrZ3Mvd3hQeXRob240L3BhdGNoZXMvcmVzdG9yZS1naWwtcHNldWRvZGMucGF0Y2ggYi9z cmNwa2dzL3d4UHl0aG9uNC9wYXRjaGVzL3Jlc3RvcmUtZ2lsLXBzZXVkb2RjLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNmYyMWVjYjdhNzE4Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy93eFB5dGhvbjQvcGF0Y2hlcy9yZXN0b3JlLWdpbC1wc2V1ZG9k Yy5wYXRjaApAQCAtMCwwICsxLDUyIEBACitCYWNrcG9ydCBodHRwczovL2dpdGh1Yi5jb20vd3hX aWRnZXRzL1Bob2VuaXgvcHVsbC8xODQ5CitSZWdhcmRpbmcgc2VnZmF1bHQgYXMgaW4gaHR0cHM6 Ly9naXRodWIuY29tL09TR2VvL2dyYXNzL2lzc3Vlcy8xMTIzCisKK0Zyb20gNWNhY2U0N2FhZWNl M2NjNGYyZTZlYTk3ZDdmZDViYjhlZDMxNmFjOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IFJvYmluIER1bm4gPHJvYmluQGFsbGR1bm4uY29tPgorRGF0ZTogV2VkLCAxOCBOb3YgMjAy MCAxMDo1Mjo1MyAtMDgwMAorU3ViamVjdDogW1BBVENIXSBSZXN0b3JlIEdJTCBhY3F1aXNpdGlv biBpbiB3eFBzZXVkb0RDOjpGaW5kT2JqZWN0cyoKKworLS0tCisgc3JjL3BzZXVkb2RjLmNwcCB8 IDggKysrLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9u cygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL3BzZXVkb2RjLmNwcCBiL3NyYy9wc2V1ZG9kYy5jcHAK K2luZGV4IDU4OTBlZDdlMi4uZWQ0YmNkMDZhIDEwMDY0NAorLS0tIGEvc3JjL3BzZXVkb2RjLmNw cAorKysrIGIvc3JjL3BzZXVkb2RjLmNwcAorQEAgLTQ4Myw3ICs0ODMsNyBAQCBib29sIHd4UHNl dWRvREM6OkdldElkR3JleWVkT3V0KGludCBpZCkKKyAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg UHlPYmplY3QgKnd4UHNldWRvREM6OkZpbmRPYmplY3RzQnlCQm94KHd4Q29vcmQgeCwgd3hDb29y ZCB5KQorIHsKKy0gICAgLy93eFB5QmxvY2tfdCBibG9ja2VkID0gd3hQeUJlZ2luQmxvY2tUaHJl YWRzKCk7CisrICAgIHd4UHlUaHJlYWRCbG9ja2VyIGJsb2NrZXI7CisgICAgIHBkY09iamVjdExp c3Q6OmNvbXBhdGliaWxpdHlfaXRlcmF0b3IgcHQgPSBtX29iamVjdGxpc3QuR2V0Rmlyc3QoKTsK KyAgICAgcGRjT2JqZWN0ICpvYmo7CisgICAgIFB5T2JqZWN0KiBweUxpc3QgPSBOVUxMOworQEAg LTUwMSw3ICs1MDEsNiBAQCBQeU9iamVjdCAqd3hQc2V1ZG9EQzo6RmluZE9iamVjdHNCeUJCb3go d3hDb29yZCB4LCB3eENvb3JkIHkpCisgICAgICAgICB9CisgICAgICAgICBwdCA9IHB0LT5HZXRO ZXh0KCk7CisgICAgIH0KKy0gICAgLy93eFB5RW5kQmxvY2tUaHJlYWRzKGJsb2NrZWQpOworICAg ICByZXR1cm4gcHlMaXN0OworIH0KKyAKK0BAIC01MTEsNyArNTEwLDcgQEAgUHlPYmplY3QgKnd4 UHNldWRvREM6OkZpbmRPYmplY3RzQnlCQm94KHd4Q29vcmQgeCwgd3hDb29yZCB5KQorIFB5T2Jq ZWN0ICp3eFBzZXVkb0RDOjpGaW5kT2JqZWN0cyh3eENvb3JkIHgsIHd4Q29vcmQgeSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3hDb29yZCByYWRpdXMsIGNvbnN0IHd4Q29s b3ImIGJnKQorIHsKKy0gICAgLy93eFB5QmxvY2tfdCBibG9ja2VkID0gd3hQeUJlZ2luQmxvY2tU aHJlYWRzKCk7CisrICAgIHd4UHlUaHJlYWRCbG9ja2VyIGJsb2NrZXI7CisgICAgIHBkY09iamVj dExpc3Q6OmNvbXBhdGliaWxpdHlfaXRlcmF0b3IgcHQgPSBtX29iamVjdGxpc3QuR2V0Rmlyc3Qo KTsKKyAgICAgcGRjT2JqZWN0ICpvYmo7CisgICAgIFB5T2JqZWN0KiBweUxpc3QgPSBOVUxMOwor QEAgLTYxMSw4ICs2MTAsNyBAQCBQeU9iamVjdCAqd3hQc2V1ZG9EQzo6RmluZE9iamVjdHMod3hD b29yZCB4LCB3eENvb3JkIHksCisgICAgICAgICBtYXNrZGMuU2VsZWN0T2JqZWN0KHd4TnVsbEJp dG1hcCk7CisgICAgICAgICBtZW1kYy5TZWxlY3RPYmplY3Qod3hOdWxsQml0bWFwKTsKKyAgICAg fQorLSAgICAvL3d4UHlFbmRCbG9ja1RocmVhZHMoYmxvY2tlZCk7CistICAgIHJldHVybiBweUxp c3Q7CisrICAgICByZXR1cm4gcHlMaXN0OworIH0KKyAKKyAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CmRpZmYgLS1naXQgYS9zcmNwa2dzL3d4UHl0aG9uNC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvd3hQeXRo b240L3RlbXBsYXRlCmluZGV4IDU1NDE3NDEwNWEzNi4uYWZlYTFiNTViZjkwIDEwMDY0NAotLS0g YS9zcmNwa2dzL3d4UHl0aG9uNC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3d4UHl0aG9uNC90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3d4UHl0aG9uNCcKIHBr Z25hbWU9d3hQeXRob240CiB2ZXJzaW9uPTQuMC43Ci1yZXZpc2lvbj00CityZXZpc2lvbj01CiB3 cmtzcmM9Ind4UHl0aG9uLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1weXRob24zLW1vZHVsZQog bWFrZV9idWlsZF9hcmdzPSItLXNraXAtYnVpbGQiCkBAIC0xMCw2ICsxMCw3IEBAIGhvc3RtYWtl ZGVwZW5kcz0icGtnLWNvbmZpZyBweXRob24zLXNldHVwdG9vbHMgcHl0aG9uMy1wYXRobGliMiIK IG1ha2VkZXBlbmRzPSJweXRob24zLWRldmVsIHd4V2lkZ2V0cy1ndGszLWRldmVsIFNETDItZGV2 ZWwgd2Via2l0Mmd0ay1kZXZlbAogIGdzdC1wbHVnaW5zLWJhc2UxLWRldmVsIgogZGVwZW5kcz0i cHl0aG9uMyBweXRob24zLXNpeCBweXRob24zLW51bXB5IHB5dGhvbjMtUGlsbG93IgorY2hlY2tk ZXBlbmRzPSJweXRob24zLXNpeCBweXRob24zLW51bXB5IHB5dGhvbjMtUGlsbG93Igogc2hvcnRf ZGVzYz0iV3hXaWRnZXRzIEdVSSB0b29sa2l0IGxpYnJhcnkgKFB5dGhvbjMgQmluZGluZ3MpIgog bWFpbnRhaW5lcj0iSmFzcGVyIENoYW4gPGphc3BlcmNoYW41MTVAZ21haWwuY29tPiIKIGxpY2Vu c2U9ImN1c3RvbTp3eFdpbmRvd3MiCgpGcm9tIDA1ODc0OTBjYWU3NjBmMjNmZWVjODFjMDQ1Y2Nj NWNkNWQ0ZGZlZjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFyamFuIE1vc3NlbCA8 YXJqYW5tb3NzZWxAZ21haWwuY29tPgpEYXRlOiBNb24sIDE0IEZlYiAyMDIyIDIxOjU2OjAzICsw MTAwClN1YmplY3Q6IFtQQVRDSCAxMC8xN10gZ3Jhc3M6IHVwZGF0ZSB0byA3LjguN1JDMTsgcmVi dWlsZCBhZ2FpbnN0IGxpYmdkYWwgYW5kCiBwcm9qCgpWZXJzaW9uIDcuOC43UkMxIGluY2x1ZGVz IGEgd29ya2Fyb3VuZCBmb3IgYSB3eFB5dGhvbiBpc3N1ZQpodHRwczovL2dpdGh1Yi5jb20vT1NH ZW8vZ3Jhc3MvaXNzdWVzLzE5NzEjaXNzdWVjb21tZW50LTk5MzYyMjYxMwotLS0KIHNyY3BrZ3Mv Z3Jhc3MvcGF0Y2hlcy9tdXNsLWJ1aWxkLWZpeC5wYXRjaCB8ICAxMyArKysKIHNyY3BrZ3MvZ3Jh c3MvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICB8IDEyOCArKysrKysrKysrKysrKysrKy0t LS0KIDIgZmlsZXMgY2hhbmdlZCwgMTIwIGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ3Jhc3MvcGF0Y2hlcy9tdXNsLWJ1aWxkLWZpeC5w YXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3Jhc3MvcGF0Y2hlcy9tdXNsLWJ1aWxkLWZpeC5w YXRjaCBiL3NyY3BrZ3MvZ3Jhc3MvcGF0Y2hlcy9tdXNsLWJ1aWxkLWZpeC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjM2NGVlMzBiZTRkOQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvZ3Jhc3MvcGF0Y2hlcy9tdXNsLWJ1aWxkLWZpeC5wYXRjaApAQCAt MCwwICsxLDEzIEBACitlcnJvcjogdW5rbm93biB0eXBlIG5hbWUgJ2ludDY0X3QnIHBhdGNoIGZv ciBtdXNsCisKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2dpcy5oIGIvaW5jbHVkZS9naXMuaAorLS0t IGEvaW5jbHVkZS9naXMuaAorKysrIGIvaW5jbHVkZS9naXMuaAorQEAgLTI0LDYgKzI0LDcgQEAK KyAjaW5jbHVkZSA8c3RkaW8uaD4KKyAjaW5jbHVkZSA8c3RkYXJnLmg+CisgI2luY2x1ZGUgPHN0 ZGJvb2wuaD4KKysjaW5jbHVkZSA8c3RkaW50Lmg+CisgCisgCisgLyogR3Jhc3MgYW5kIGxvY2Fs IGluY2x1ZGUgZmlsZXMgKi8KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3Jhc3MvdGVtcGxhdGUgYi9z cmNwa2dzL2dyYXNzL3RlbXBsYXRlCmluZGV4IGJjY2Q2OTFhODExNi4uMTY3ZmFhNDAxMzg1IDEw MDY0NAotLS0gYS9zcmNwa2dzL2dyYXNzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ3Jhc3MvdGVt cGxhdGUKQEAgLTEsMzAgKzEsMTE2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdncmFzcycKIHBr Z25hbWU9Z3Jhc3MKLXZlcnNpb249Ny42LjEKLXJldmlzaW9uPTQKLV9iaW52ZXI9JHt2ZXJzaW9u Ly8uL30KLV9iaW52ZXI9JHtfYmludmVyOjA6Mn0KK3ZlcnNpb249Ny44LjdSQzEKK3JldmlzaW9u PTEKK19iaW52ZXJzaW9uPSR7dmVyc2lvbi8vLi99CitfYmludmVyc2lvbj0ke19iaW52ZXJzaW9u OjA6Mn0KIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKLWNvbmZpZ3VyZV9hcmdzPSItLXByZWZp eD1cJHtERVNURElSfS91c3Ivc2hhcmUgLS1iaW5kaXI9XCR7REVTVERJUn0vdXNyL2JpbgotIC0t d2l0aC1mcmVldHlwZS1pbmNsdWRlcz0ke1hCUFNfQ1JPU1NfQkFTRX0vdXNyL2luY2x1ZGUvZnJl ZXR5cGUyIgotaG9zdG1ha2VkZXBlbmRzPSJmbGV4IGxpYmdkYWwtdG9vbHMgcGtnLWNvbmZpZyBw eXRob24tbnVtcHkgdGFyIgotbWFrZWRlcGVuZHM9InByb2otZGV2ZWwgdGlmZi1kZXZlbCBsaWJn ZGFsLWRldmVsIHNxbGl0ZS1kZXZlbAotIGZmdHctZGV2ZWwgY2Fpcm8tZGV2ZWwgZ2x1LWRldmVs IHd4UHl0aG9uLWRldmVsIgotZGVwZW5kcz0icHl0aG9uLW51bXB5IHd4UHl0aG9uIgotc2hvcnRf ZGVzYz0iR2VvZ3JhcGhpYyBSZXNvdXJjZXMgQW5hbHlzaXMgU3VwcG9ydCBTeXN0ZW0gLSBHSVMi Ci1tYWludGFpbmVyPSJBbGV4IEphcm9zY2ggPHJlc2VhcmNoQGFsZXhqLmF0PiIKK2NvbmZpZ3Vy ZV9hcmdzPSItLXByZWZpeD0vdXNyL2xpYgorIC0tYmluZGlyPS91c3IvYmluCisgLS1saWJkaXI9 L3Vzci9saWIKKyAtLWxpYmV4ZWM9L3Vzci9saWJleGVjCisgLS1lbmFibGUtbGFyZ2VmaWxlCisg LS13aXRoLWJsYXMKKyAtLXdpdGgtYmxhcy1pbmNsdWRlcz0vdXNyL2luY2x1ZGUKKyAtLXdpdGgt YnppcDIKKyAtLXdpdGgtYnpsaWIKKyAtLXdpdGgtY2Fpcm8KKyAtLXdpdGgtY3h4CisgLS13aXRo LWZyZWV0eXBlCisgLS13aXRoLWZyZWV0eXBlLWluY2x1ZGVzPS91c3IvaW5jbHVkZS9mcmVldHlw ZTIKKyAtLXdpdGgtZ2RhbAorIC0td2l0aC1nZW9zCisgLS13aXRoLWdsdworIC0td2l0aC1sYXBh Y2sKKyAtLXdpdGgtbGFwYWNrLWluY2x1ZGVzPS91c3IvaW5jbHVkZQorIC0td2l0aC1teXNxbAor IC0td2l0aC1teXNxbC1pbmNsdWRlcz0vdXNyL2luY2x1ZGUvbXlzcWwKKyAtLXdpdGgtbmV0Y2Rm PS91c3IvYmluL25jLWNvbmZpZworIC0td2l0aC1ubHMKKyAtLXdpdGgtb3Blbm1wCisgLS13aXRo LXBvc3RncmVzCisgLS13aXRoLXBvc3RncmVzLWluY2x1ZGVzPS91c3IvaW5jbHVkZS9wb3N0Z3Jl c3FsCisgLS13aXRoLXBvc3RncmVzLWxpYnM9L3Vzci9saWIvcHNxbDE0L2xpYi9wb3N0Z3Jlc3Fs CisgLS13aXRoLXByb2oKKyAtLXdpdGgtcHJvai1zaGFyZT0vdXNyL3NoYXJlCisgLS13aXRoLXB0 aHJlYWQKKyAtLXdpdGgtcHl0aG9uPS91c3IvYmluL3B5dGhvbjMtY29uZmlnCisgLS13aXRoLXJl YWRsaW5lCisgLS13aXRoLXJlZ2V4CisgLS13aXRoLXNxbGl0ZQorIC0td2l0aC13eHdpZGdldHMi Citob3N0bWFrZWRlcGVuZHM9ImZsZXgKKyBnZXR0ZXh0CisgbGliZ2RhbC10b29scworIHBrZy1j b25maWcKKyBweXRob24zLW51bXB5CisgcHl0aG9uMy1zaXgKKyB0YXIiCittYWtlZGVwZW5kcz0i Ymlzb24KKyBibGFzLWRldmVsCisgYnppcDItZGV2ZWwKKyBjYWlyby1kZXZlbAorIGZmdHctZGV2 ZWwKKyBmcmVldHlwZS1kZXZlbAorIGdlb3MtZGV2ZWwKKyBnZXR0ZXh0LWRldmVsCisgZ2x1LWRl dmVsCisgbGFwYWNrLWRldmVsCisgbGliZ2RhbC1kZXZlbAorIGxpYmdvbXAtZGV2ZWwKKyBsaWJt eXNxbGNsaWVudC1kZXZlbAorIGxpYnBuZy1kZXZlbAorIGxpYnpzdGQtZGV2ZWwKKyBuZXRjZGYt ZGV2ZWwKKyBwb3N0Z3Jlc3FsLWxpYnMtZGV2ZWwKKyBwcm9qLWRldmVsCisgcHl0aG9uMy1kZXZl bAorIHB5dGhvbjMtUGlsbG93CisgcHl0aG9uMy1zaXgKKyByZWFkbGluZS1kZXZlbAorIHNxbGl0 ZS1kZXZlbAorIHRpZmYtZGV2ZWwKKyB6bGliLWRldmVsIgorZGVwZW5kcz0ibGliZ2RhbCBweXRo b24zLW51bXB5IHd4UHl0aG9uNCIKK3Nob3J0X2Rlc2M9Ikdlb2dyYXBoaWMgUmVzb3VyY2VzIEFu YWx5c2lzIFN1cHBvcnQgU3lzdGVtIgorbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lk bGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly9ncmFzcy5vc2dlby5vcmcvIgotZGlzdGZpbGVzPSJodHRwczovL2dyYXNzLm9zZ2VvLm9yZy9n cmFzcyR7X2JpbnZlcn0vc291cmNlLyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVj a3N1bT05ZTI1Yzk5Y2FmZDE2ZWQ4ZjVlMmRjYTc1YjVhMTBkYzJhZjA1NjhkYmVkZjNmYzM5ZjFj NWEwYTljODQwYjBiCi1weXRob25fdmVyc2lvbj0yICN1bnZlcmlmaWVkCitkaXN0ZmlsZXM9Imh0 dHBzOi8vZ2l0aHViLmNvbS9PU0dlby9ncmFzcy9hcmNoaXZlLyR7dmVyc2lvbn0udGFyLmd6Igor Y2hlY2tzdW09ZmExZDZjY2MxZmRlNGNiZWEwYmUwOTUyNTY3Mjk0MjFjNDFjMWExMmJmNjIxZmUx MjRkMGQyYzhlODI2ZGU2YQogbm9jcm9zcz0idHJpZXMgdG8gZXhlY3V0ZSB0YXJnZXQgYmluYXJp ZXMiCiAKK3NobGliX3Byb3ZpZGVzPSIKKyBsaWJncmFzc19kYm1pYmFzZS4ke3ZlcnNpb24lLip9 LnNvCisgbGliZ3Jhc3NfZGJtaWNsaWVudC4ke3ZlcnNpb24lLip9LnNvCisgbGliZ3Jhc3NfZ2lz LiR7dmVyc2lvbiUuKn0uc28KKyBsaWJncmFzc19ncHJvai4ke3ZlcnNpb24lLip9LnNvCisgbGli Z3Jhc3NfaW1hZ2VyeS4ke3ZlcnNpb24lLip9LnNvCisgbGliZ3Jhc3NfcmFzdGVyLiR7dmVyc2lv biUuKn0uc28KKyBsaWJncmFzc192ZWN0b3IuJHt2ZXJzaW9uJS4qfS5zbyIKKwogcG9zdF9pbnN0 YWxsKCkgewotCSMgbW92ZSBncmFzczc2IGxpYnJhcmllcyBmcm9tIC91c3Ivc2hhcmUgdG8gL3Vz ci9saWIKLQl2bWtkaXIgdXNyL2xpYgotCW12ICR7REVTVERJUn0vdXNyL3NoYXJlL2dyYXNzKiAk e0RFU1RESVJ9L3Vzci9saWIKLQkjIGZpeGVzIGEgdG9kbyBpbiBHSVNCQVNFCi0Jc2VkIC1pICR7 REVTVERJUn0vdXNyL2Jpbi9ncmFzcyR7X2JpbnZlcn0gXAotCQktZSAiMTA1cztcKGdpc2Jhc2Ug PVwpLio7XDEgXCIvdXNyL2xpYi9ncmFzcy0ke3ZlcnNpb259XCI7IgorCSMgcmVtb3ZlICRERVNU RElSIGluIHBhdGhzCisJdnNlZCAtaSAtZSAic3wke0RFU1RESVJ9fHwiIFwKKwkJJHtERVNURElS fS91c3IvYmluL2dyYXNzNzggXAorCQkke0RFU1RESVJ9L3Vzci9saWIvZ3Jhc3M3OC9ldGMvZm9u dGNhcCBcCisJCSR7REVTVERJUn0vdXNyL2xpYi9ncmFzczc4L2RlbW9sb2NhdGlvbi8uZ3Jhc3Ny Yzc4IFwKKwkJJHtERVNURElSfS91c3IvbGliL2dyYXNzNzgvaW5jbHVkZS9NYWtlL1BsYXRmb3Jt Lm1ha2UgXAorCQkke0RFU1RESVJ9L3Vzci9saWIvZ3Jhc3M3OC9pbmNsdWRlL01ha2UvR3Jhc3Mu bWFrZQorCisJIyBsZC5zby5jb25mCisJbWtkaXIgLXAgJHtERVNURElSfS9ldGMvbGQuc28uY29u Zi5kCisJZWNobyAiL3Vzci9saWIvZ3Jhc3Mke19iaW52ZXJzaW9ufS9saWIiID4ke0RFU1RESVJ9 L2V0Yy9sZC5zby5jb25mLmQvZ3Jhc3Mke19iaW52ZXJzaW9ufS5jb25mCisJIyBwcm9maWxlcwor CW1rZGlyIC1wICR7REVTVERJUn0vZXRjL3Byb2ZpbGUuZAorCWVjaG8gJ2V4cG9ydCBQQVRIPSIv dXNyL2xpYi9ncmFzcycke19iaW52ZXJzaW9ufScvYmluOiRQQVRIIicgPiR7REVTVERJUn0vZXRj L3Byb2ZpbGUuZC9ncmFzcyR7X2JpbnZlcnNpb259LnNoCisKKwl2aW5zdGFsbCBncmFzcy5wYyA2 NDQgdXNyL3NoYXJlL3BrZ2NvbmZpZworCXZpbnN0YWxsIGd1aS9pY29ucy9ncmFzcy5kZXNrdG9w IDY0NCB1c3Ivc2hhcmUvYXBwbGljYXRpb25zCisKKwlsb2NhbCBpY29uIHJlcworCWZvciBpY29u IGluIGd1aS9pY29ucy9ncmFzcy1bMC05XSp4WzAtOV0qLnBuZzsgZG8KKwkJcmVzPSQoZWNobyAk aWNvbiB8c2VkIC1FIC1lICdzfC4qLShbMC05XSt4WzAtOV0rKS5wbmd8XDF8JykKKwkJdmluc3Rh bGwgJGljb24gMDY0NCAvdXNyL3NoYXJlL2ljb25zL2hpY29sb3IvJHJlcy9hcHBzIGdyYXNzLnBu ZworCWRvbmUKIH0KCkZyb20gZDFjMWZiZDZmOGE2OWY3MjUyMWIyNThjODNiOTBkZDExOTU0OGU4 NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJqYW4gTW9zc2VsIDxhcmphbm1vc3Nl bEBnbWFpbC5jb20+CkRhdGU6IFN1biwgMjcgSnVuIDIwMjEgMjI6MTg6NDYgKzAyMDAKU3ViamVj dDogW1BBVENIIDExLzE3XSBtZXJrYWFydG9yOiByZWJ1aWxkIGFnYWluc3QgbGliZ2RhbC0zLjQu MSBhbmQKIHByb2otNy4yLjEKCi0tLQogc3JjcGtncy9tZXJrYWFydG9yL3RlbXBsYXRlIHwgMiAr LQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9tZXJrYWFydG9yL3RlbXBsYXRlIGIvc3JjcGtncy9tZXJrYWFydG9yL3Rl bXBsYXRlCmluZGV4IGNmZmNmYmExY2YwMS4uNjYwMzM3NjExMWYyIDEwMDY0NAotLS0gYS9zcmNw a2dzL21lcmthYXJ0b3IvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9tZXJrYWFydG9yL3RlbXBsYXRl CkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbWVya2FhcnRvcicKIHBrZ25h bWU9bWVya2FhcnRvcgogdmVyc2lvbj0wLjE5LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1 aWxkX3N0eWxlPXFtYWtlCiBjb25maWd1cmVfYXJncz0iU1lTVEVNX1FVQVpJUD0xIFNZU1RFTV9R VUFaSVBfTERGTEFHUz0tbHF1YXppcDUiCiBob3N0bWFrZWRlcGVuZHM9InF0NS1xbWFrZSBsaWJn ZGFsLXRvb2xzIHF0NS1ob3N0LXRvb2xzIgoKRnJvbSAyYjlmYmJhNzA5Zjk5MzljMDI3ZTMyMDYx OTg4YzBhOWVkM2Y2NDhkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcmphbiBNb3Nz ZWwgPGFyamFubW9zc2VsQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyOSBKdW4gMjAyMSAwMDoyMToy NyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMTddIE9wZW5PcmllbnRlZXJpbmctTWFwcGVyOiBy ZWJ1aWxkIGFnYWluc3QgbGliZ2RhbC0zLjQuMQogYW5kIHByb2otNy4yLjEKCi0tLQogc3JjcGtn cy9PcGVuT3JpZW50ZWVyaW5nLU1hcHBlci90ZW1wbGF0ZSB8IDExICsrKysrKysrKy0tCiAxIGZp bGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvT3Blbk9yaWVudGVlcmluZy1NYXBwZXIvdGVtcGxhdGUgYi9zcmNwa2dzL09wZW5P cmllbnRlZXJpbmctTWFwcGVyL3RlbXBsYXRlCmluZGV4IGZkMjlhMDhlNzViNi4uNmE2NTJhNmE3 Yjk3IDEwMDY0NAotLS0gYS9zcmNwa2dzL09wZW5PcmllbnRlZXJpbmctTWFwcGVyL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvT3Blbk9yaWVudGVlcmluZy1NYXBwZXIvdGVtcGxhdGUKQEAgLTEsMTQg KzEsMTUgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ09wZW5PcmllbnRlZXJpbmctTWFwcGVyJwog cGtnbmFtZT1PcGVuT3JpZW50ZWVyaW5nLU1hcHBlcgogdmVyc2lvbj0wLjkuNQotcmV2aXNpb249 MQorcmV2aXNpb249Mgogd3Jrc3JjPSJtYXBwZXItJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWNt YWtlCiBob3N0bWFrZWRlcGVuZHM9ImRveHlnZW4gcXQ1LWhvc3QtdG9vbHMgcXQ1LXBsdWdpbi1z cWxpdGUgcXQ1LXFtYWtlIHF0NS10b29scyIKIG1ha2VkZXBlbmRzPSJxdDUtZGV2ZWwgY2xpcHBl ci1kZXZlbCBwcm9qLWRldmVsIHpsaWItZGV2ZWwgbGliZ2RhbC1kZXZlbAogIHF0NS10b29scy1k ZXZlbCBzcWxpdGUtZGV2ZWwgY3Vwcy1kZXZlbCAkKHZvcHRfaWYgbG9jYXRpb24gcXQ1LWxvY2F0 aW9uLWRldmVsKQogICQodm9wdF9pZiBzZW5zb3JzIHF0NS1zZW5zb3JzLWRldmVsKQotIHF0NS1w bHVnaW4tbXlzcWwgcXQ1LXBsdWdpbi1vZGJjIHF0NS1wbHVnaW4tcGdzcWwgcXQ1LXBsdWdpbi1z cWxpdGUgcXQ1LXBsdWdpbi10ZHMiCisgcXQ1LXBsdWdpbi1teXNxbCBxdDUtcGx1Z2luLW9kYmMg cXQ1LXBsdWdpbi1wZ3NxbCBxdDUtcGx1Z2luLXNxbGl0ZSBxdDUtcGx1Z2luLXRkcworIHRpZmYt ZGV2ZWwgbGliY3VybC1kZXZlbCIKIHNob3J0X2Rlc2M9Ik9yaWVudGVlcmluZyBtYXBtYWtpbmcg cHJvZ3JhbSIKIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNl PSJHUEwtMy4wLW9yLWxhdGVyIgpAQCAtMTgsMyArMTksOSBAQCBjaGVja3N1bT02MTkxNTJjYTAx YTM3MDg3NWMxNWUxOTMwOTE4Y2U5NjEyODRjY2JmNWQyMzcxYzE0N2Q1MGNhZjVlNWMyZjAwCiAK IGJ1aWxkX29wdGlvbnM9ImxvY2F0aW9uIHNlbnNvcnMiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9 ImxvY2F0aW9uIHNlbnNvcnMiCisKK2RvX2NoZWNrKCkgeworICAgICMgc2Vuc29yc190IHRlc3Qg ZmFpbHMgb24gdGVzdCBydW5uZXIKKwljZCBidWlsZAorCWN0ZXN0IC1FICdzZW5zb3JzX3QnCit9 CgpGcm9tIGJhNjViMGRkODNjZDk2NTA5ODc5MWNlYmE1ZjE5MWE3Mjk1OTYzOGYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEFyamFuIE1vc3NlbCA8YXJqYW5tb3NzZWxAZ21haWwuY29t PgpEYXRlOiBUdWUsIDI5IEp1biAyMDIxIDAwOjM4OjM1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAx My8xN10gb3NnOiByZWJ1aWxkIGFnYWluc3QgbGliZ2RhbC0zLjQuMSwgZml4IGxpY2Vuc2UKCi0t LQogc3JjcGtncy9vc2cvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vc2cvdGVtcGxh dGUgYi9zcmNwa2dzL29zZy90ZW1wbGF0ZQppbmRleCAwOGJmNmQ0YjY1OTEuLmY1MTUzNWM1NzE5 ZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9vc2cvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9vc2cvdGVt cGxhdGUKQEAgLTIsNyArMiw3IEBACiBwa2duYW1lPW9zZwogcmV2ZXJ0cz0zLjYuMF8xCiB2ZXJz aW9uPTMuNC4xCi1yZXZpc2lvbj0xMgorcmV2aXNpb249MTMKIHdya3NyYz1PcGVuU2NlbmVHcmFw aC1PcGVuU2NlbmVHcmFwaC0ke3ZlcnNpb259CiBidWlsZF9zdHlsZT1jbWFrZQogYnVpbGRfaGVs cGVyPSJxZW11IgpAQCAtMTksNyArMTksNyBAQCBtYWtlZGVwZW5kcz0iTWVzYUxpYi1kZXZlbCBn dGtnbGV4dC1kZXZlbCBsaWJjdXJsLWRldmVsIGdpZmxpYi1kZXZlbCBsaWJyc3ZnLWRldgogZGVw ZW5kcz0ieHJhbmRyIgogc2hvcnRfZGVzYz0iT3BlblNjZW5lR3JhcGg6IGhpZ2ggcGVyZm9ybWFu Y2UgcmVhbC10aW1lIGdyYXBoaWNzIHRvb2xraXQiCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3Jw aGFuQHZvaWRsaW51eC5vcmc+IgotbGljZW5zZT0iT1NHUEwtMi4wLW9yLWxhdGVyIgorbGljZW5z ZT0iY3VzdG9tOk9wZW5TY2VuZUdyYXBoLVB1YmxpYy1MaWNlbnNlLTAuMCIKIGhvbWVwYWdlPSJo dHRwOi8vd3d3Lm9wZW5zY2VuZWdyYXBoLm9yZyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIu Y29tL29wZW5zY2VuZWdyYXBoL09wZW5TY2VuZUdyYXBoL2FyY2hpdmUvT3BlblNjZW5lR3JhcGgt JHt2ZXJzaW9ufS50YXIuZ3oiCiBjaGVja3N1bT05MzBlYjQ2ZjA1NzgxYTc2ODgzZWMxNmM1ZjQ5 Y2ZiMjlhMDU5NDIxZGIxMzEwMDVkNzViZWM0ZDc4NDAxZmQ1CgpGcm9tIGM3YTM4YjVmNzczMDEy NzBjNjU4YzIxNTEyMjA3Y2I3YjNlMDM3MDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEFyamFuIE1vc3NlbCA8YXJqYW5tb3NzZWxAZ21haWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1biAy MDIxIDE3OjM1OjQ3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNC8xN10gc3VtbzogdXBkYXRlIHRv IDEuOS4yOyByZWJ1aWxkIGFnYWluc3QgbGliZ2RhbC0zLjQuMQogYW5kIHByb2otNy4yLjEKCi0g QnVpbGQgVHJhYVMuamFyIHVzaW5nIE1hdmVuIChmaXhlcyB0ZXN0cykKLSBBZGQgRWlnZW4zIGRl cGVuZGVuY3kKLS0tCiBzcmNwa2dzL3N1bW8vdGVtcGxhdGUgfCAyMiArKysrKysrKysrKysrKysr LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL3N1bW8vdGVtcGxhdGUgYi9zcmNwa2dzL3N1bW8vdGVtcGxh dGUKaW5kZXggZTc2MGZkZDQ1YWVlLi4zYzBlZWE5OTE2YWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv c3Vtby90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3N1bW8vdGVtcGxhdGUKQEAgLTEsMTggKzEsMjgg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3N1bW8nCiBwa2duYW1lPXN1bW8KLXZlcnNpb249MS41 LjAKLXJldmlzaW9uPTQKK3ZlcnNpb249MS45LjIKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNt YWtlCi1weXRob25fdmVyc2lvbj0zCi1ob3N0bWFrZWRlcGVuZHM9ImxpYmdkYWwtdG9vbHMgcGtn LWNvbmZpZyBzd2lnIHB5dGhvbjMtc2V0dXB0b29scyIKLW1ha2VkZXBlbmRzPSJweXRob24zLWRl dmVsIGZmbXBlZy1kZXZlbCBmb3gtZGV2ZWwgZ2wycHMtZGV2ZWwgbGliZ2RhbC1kZXZlbCBsaWJ4 ZXJjZXMtYy1kZXZlbCBvc2ctZGV2ZWwgcHJvai1kZXZlbCIKK2hvc3RtYWtlZGVwZW5kcz0ibGli Z2RhbC10b29scyBwa2ctY29uZmlnIHN3aWcgcHl0aG9uMy1zZXR1cHRvb2xzCisgYXBhY2hlLW1h dmVuIG9wZW5qZGsxMSBnaXQiCittYWtlZGVwZW5kcz0icHl0aG9uMy1kZXZlbCBmZm1wZWctZGV2 ZWwgZm94LWRldmVsIGdsMnBzLWRldmVsIGxpYmdkYWwtZGV2ZWwKKyBsaWJ4ZXJjZXMtYy1kZXZl bCBvc2ctZGV2ZWwgcHJvai1kZXZlbCBlaWdlbiIKK2NoZWNrZGVwZW5kcz0iZ3Rlc3QiCiBzaG9y dF9kZXNjPSJTVU1PIChTaW11bGF0aW9uIG9mIFVyYmFuIE1PYmlsaXR5KSBhbmQgaW5jbHVkZWQg YXBwbGljYXRpb25zIgogbWFpbnRhaW5lcj0iV2FycmlvciBHcmFwaCA8bWFycXVlc0BsYXJjZXMu dWVjZS5icj4iCiBsaWNlbnNlPSJFUEwtMi4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vc3Vtby5kbHIu ZGUiCiBkaXN0ZmlsZXM9Imh0dHBzOi8vc3Vtby5kbHIuZGUvcmVsZWFzZXMvJHt2ZXJzaW9ufS9z dW1vLXNyYy0ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPWRjZjUzMzlmZGRhMDY1OWZhNDRm Y2ZkNjlmZTNmNGUwMzAwOWFhOWE1OTg0OTYyNGYyYTNjZmU3MmVkYTlmOGUKK2NoZWNrc3VtPTE5 M2E4YWIxNGJiMzA1ZDM5Njc2MjVkNzZjZDI5MWY1YzU1YmI5MDY4MTc0NjVmMmExMmMyZTY5ZjRi ODA4MTMKK3B5dGhvbl92ZXJzaW9uPTMKKworcHJlX2J1aWxkKCkgeworCWNkIHRvb2xzL2NvbnRy aWJ1dGVkL3RyYWFzCisJbXZuIHBhY2thZ2UKKwltdiB0YXJnZXQvdHJhYXMqLmphciAke3dya3Ny Y30vYmluL1RyYWFTLmphcgorfQogCiBwb3N0X2luc3RhbGwoKSB7CiAJcm0gLWYgJHtERVNURElS fS91c3Ivc2hhcmUvc3Vtby90b29scy9saWJzdW1vLyouc28KKwlybSAtZiAke0RFU1RESVJ9L3Vz ci9zaGFyZS9zdW1vL3Rvb2xzL2xpYnRyYWNpL19saWJ0cmFjaS5zbwogfQoKRnJvbSA5MDM2MTky ZjY4MGYzM2ZiZmUyOWM5ZjM0OTg5NjQ1ZDE1NzFmYzY5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBBcmphbiBNb3NzZWwgPGFyamFubW9zc2VsQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAy OSBKdW4gMjAyMSAxODo0MzowNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMTddIHZ0azogcmVi dWlsZCBhZ2FpbnN0IHByb2otNy4yLjEKCi0tLQogc3JjcGtncy92dGsvdGVtcGxhdGUgfCAyICst CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3Z0ay90ZW1wbGF0ZSBiL3NyY3BrZ3MvdnRrL3RlbXBsYXRlCmluZGV4IDg1 OGFhMzFiOWMwMy4uNTUzY2Y5MTk4NDY1IDEwMDY0NAotLS0gYS9zcmNwa2dzL3Z0ay90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3Z0ay90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ3Z0aycKIHBrZ25hbWU9dnRrCiB2ZXJzaW9uPTkuMC4xCi1yZXZpc2lvbj03City ZXZpc2lvbj04CiB3cmtzcmM9VlRLLSR7dmVyc2lvbn0KIGJ1aWxkX3N0eWxlPWNtYWtlCiAjIHZ0 ayBjYW4gYmUgaHVnZSwgZXNwZWNpYWxseSB3aXRoIC1EVlRLX0JVSUxEX0FMTF9NT0RVTEVTPU9O IgoKRnJvbSAwZjEzYjMyNDM5MDcwMTk2ODVkN2M1NzVmYmY2MmI5ODczYWViMWIxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcmphbiBNb3NzZWwgPGFyamFubW9zc2VsQGdtYWlsLmNv bT4KRGF0ZTogVHVlLCAyOSBKdW4gMjAyMSAxOToyNDo0MyArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MTYvMTddIG9zbTJwZ3NxbDogcmVidWlsZCBhZ2FpbnN0IHByb2otNy4yLjEKCi0tLQogc3JjcGtn cy9vc20ycGdzcWwvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29zbTJwZ3NxbC90ZW1wbGF0 ZSBiL3NyY3BrZ3Mvb3NtMnBnc3FsL3RlbXBsYXRlCmluZGV4IDFjNTNjNDUwNTA0Ny4uMWQ1Zjcx YjcwMTQwIDEwMDY0NAotLS0gYS9zcmNwa2dzL29zbTJwZ3NxbC90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL29zbTJwZ3NxbC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ29zbTJwZ3NxbCcKIHBrZ25hbWU9b3NtMnBnc3FsCiB2ZXJzaW9uPTEuNi4wCi1yZXZpc2lv bj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogaG9zdG1ha2VkZXBlbmRzPSJib29z dCIKIG1ha2VkZXBlbmRzPSJleHBhdC1kZXZlbCBwcm9qLWRldmVsIGJ6aXAyLWRldmVsIHpsaWIt ZGV2ZWwgYm9vc3QtZGV2ZWwKCkZyb20gYmM4NGUwNDdmNDgxNjI1MWNmMzkzYmVjNjk0NDIxOGZm OWJkOTlkMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJqYW4gTW9zc2VsIDxhcmph bm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjkgSnVuIDIwMjEgMTk6MjY6NTcgKzAyMDAK U3ViamVjdDogW1BBVENIIDE3LzE3XSBYeUdyaWI6IHJlYnVpbGQgYWdhaW5zdCBwcm9qLTcuMi4x CgpEbyBub3QgdXNlIG5pbmphICgidW5rbm93biB0YXJnZXQiIGVycm9yKQotLS0KIHNyY3BrZ3Mv WHlHcmliL3RlbXBsYXRlIHwgNSArKysrLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvWHlHcmliL3RlbXBsYXRlIGIv c3JjcGtncy9YeUdyaWIvdGVtcGxhdGUKaW5kZXggZTRhYTNhMmUwMjY1Li45OTVlYzNlZWVhYmIg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvWHlHcmliL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvWHlHcmli L3RlbXBsYXRlCkBAIC0xLDggKzEsOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnWHlHcmliJwog cGtnbmFtZT1YeUdyaWIKIHZlcnNpb249MS4yLjYuMQotcmV2aXNpb249MworcmV2aXNpb249NAog YnVpbGRfc3R5bGU9Y21ha2UKK21ha2VfY21kPW1ha2UKIGhvc3RtYWtlZGVwZW5kcz0icXQ1LWRl dmVsIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iamFzcGVyLWRldmVsIGxpYm5vdmEtZGV2ZWwg bmV0dGxlLWRldmVsIHByb2otZGV2ZWwgcXQ1LWRldmVsCiAgcXd0LWRldmVsIGxpYm9wZW5qcGVn Mi1kZXZlbCIKQEAgLTEzLDYgKzE0LDggQEAgaG9tZXBhZ2U9Imh0dHBzOi8vb3BlbmdyaWJzLm9y Zy8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuZ3JpYnMvWHlHcmliL2FyY2hp dmUvdiR7dmVyc2lvbn0udGFyLmd6IgogY2hlY2tzdW09MmRjNjA5OTI5M2FlNmY3YTRiZmJmYzBj YWI1OTBjZjdhZDQ4MjQxZDYwOGU2ZDdhNzZlMzU5NjFiOWZjMjE1NwogCitleHBvcnQgQ01BS0Vf R0VORVJBVE9SPSJVbml4IE1ha2VmaWxlcyIKKwogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVu CiAJbWFrZV9idWlsZF9hcmdzPSJMSU5LPSR7WEJQU19DUk9TU19UUklQTEVUfS1jKysiCiBmaQo= --===============8255593680626379447==--