From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 29466 invoked from network); 9 Jul 2022 10:27:45 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 9 Jul 2022 10:27:45 -0000 Content-Type: multipart/mixed; boundary="===============1193121324596829731==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_New_package=3A_7zip-22=2E00?= To: ml@inbox.vuxu.org From: r-ricci Reply-to: ml@inbox.vuxu.org Message-ID: Date: Sat, 09 Jul 2022 12:27:45 +0200 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============1193121324596829731== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IHItcmljY2kgYWdhaW5zdCBtYXN0ZXIgb24g dGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL3ItcmljY2kv dm9pZC1wYWNrYWdlcyA3emlwCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvcHVsbC8zNzk0MAoKTmV3IHBhY2thZ2U6IDd6aXAtMjIuMDAKPCEtLSBVbmNvbW1lbnQg cmVsZXZhbnQgc2VjdGlvbnMgYW5kIGRlbGV0ZSBvcHRpb25zIHdoaWNoIGFyZSBub3QgYXBwbGlj YWJsZSAtLT4NCg0KIyMjIyBUZXN0aW5nIHRoZSBjaGFuZ2VzDQotIEkgdGVzdGVkIHRoZSBjaGFu Z2VzIGluIHRoaXMgUFI6ICoqYnJpZWZseSoqDQoNCjwhLS0NCiMjIyMgTmV3IHBhY2thZ2UNCi0g VGhpcyBuZXcgcGFja2FnZSBjb25mb3JtcyB0byB0aGUgW3F1YWxpdHkgcmVxdWlyZW1lbnRzXSho dHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL01h bnVhbC5tZCNxdWFsaXR5LXJlcXVpcmVtZW50cyk6ICoqWUVTKip8KipOTyoqDQotLT4NCg0KPCEt LSBOb3RlOiBJZiB0aGUgYnVpbGQgaXMgbGlrZWx5IHRvIHRha2UgbW9yZSB0aGFuIDIgaG91cnMs IHBsZWFzZSBhZGQgY2kgc2tpcCB0YWcgYXMgZGVzY3JpYmVkIGluDQpodHRwczovL2dpdGh1Yi5j b20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCNj b250aW51b3VzLWludGVncmF0aW9uDQphbmQgdGVzdCBhdCBsZWFzdCBvbmUgbmF0aXZlIGJ1aWxk IGFuZCwgaWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jvc3MgYnVpbGQuDQpJZ25vcmUgdGhp cyBzZWN0aW9uIGlmIHRoaXMgUFIgaXMgbm90IHNraXBwaW5nIENJLg0KLS0+DQo8IS0tDQojIyMj IExvY2FsIGJ1aWxkIHRlc3RpbmcNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5h dGl2ZSBhcmNoaXRlY3R1cmUsIChBUkNILUxJQkMpDQotIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5 IGZvciB0aGVzZSBhcmNoaXRlY3R1cmVzIChpZiBzdXBwb3J0ZWQuIG1hcmsgY3Jvc3NidWlsZHMp Og0KICAtIGFhcmNoNjQtbXVzbA0KICAtIGFybXY3bA0KICAtIGFybXY2bC1tdXNsDQotLT4NCg0K SSBkb24ndCB0aGluayB0aGVyZSdzIGFueSByZWFzb24gdG8gc2hpcCB0aGUgZnVsbCBhbmQgdGhl IHJlZHVjZWQgdmVyc2lvbnMgaW4gdGhlIHNhbWUgcGFja2FnZSwgc28gSSBqdXN0IGNvbXBpbGUg dGhlIGZ1bGwgb25lIGFuZCBjcmVhdGUgc3ltbGlua3MgZm9yIGNvbXBhdGliaWxpdHkuDQoNClRP RE86DQoNCi0gZml4IG11c2w6IGl0IHVzZXMgc29tZSBmdW5jdGlvbnMgcmVxdWlyaW5nIGBfR05V X1NPVVJDRWAsIGJ1dCBvdGhlciBwYXJ0cyBvZiB0aGUgc291cmNlIGRlZmluZSBpdCB3aXRob3V0 IGNoZWNraW5nIGlmIGl0J3MgYWxyZWFkeSBkZWZpbmVkLCBzbyBJIGdldCBjb21waWxhdGlvbiBl cnJvcnMgaWYgSSBqdXN0IGRlZmluZSBpdCBnbG9iYWxseS4NCi0gYnVpbGQgd2l0aCBhc3NlbWJs eSB3aGVyZSBwb3NzaWJsZQ0KLSBidWlsZCBhIHZlcnNpb24gd2l0aCBSQVIgc3VwcG9ydCAobm9u ZnJlZSByZXBvKQ0KLSB1c2Ugb3VyIGNvbXBpbGUgYW5kIGxpbmsgZmxhZ3MNCi0gd2hhdCdzIHRo ZSBtb3N0IGFwcHJvcHJpYXRlIG5hbWUgZm9yIHRoZSBwYWNrYWdlPyA3emlwLCA3LXppcCBvciA3 ej8NCg0KY2xvc2VzICMzNzg3NQoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29t L3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM3OTQwLnBhdGNoIGlzIGF0dGFjaGVk --===============1193121324596829731== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-7zip-37940.patch" RnJvbSAwYjQ5NGQ5Nzk1NDkyMmZjMDAyMTIyMzhmNTY5OGI5MDU5MjUwYjFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JlcnRvIFJpY2NpIDxyaWNjaUBkaXNyb290Lm9yZz4KRGF0 ZTogU2F0LCA5IEp1bCAyMDIyIDEyOjA1OjIyICswMjAwClN1YmplY3Q6IFtQQVRDSF0gTmV3IHBh Y2thZ2U6IDd6aXAtMjIuMDAKCi0tLQogc3JjcGtncy83emlwL2ZpbGVzLzd6ei4xICAgICAgICAg ICAgICAgICAgICAgIHwgMjE1ICsrKysrKysrKysrKwogc3JjcGtncy83emlwL3RlbXBsYXRlICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDQ4ICsrKwogc3JjcGtncy9wN3ppcCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyY3BrZ3MvcDd6aXAtdW5yYXIgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBzcmNwa2dzL3A3emlwL3BhdGNoZXMvMjAtQ1ZF LTIwMTgtNTk5Ni5wYXRjaCAgfCAyMjEgLS0tLS0tLS0tLS0tLQogc3JjcGtncy9wN3ppcC9wYXRj aGVzLzMwLUNWRS0yMDE4LTEwMTE1LnBhdGNoIHwgMzExIC0tLS0tLS0tLS0tLS0tLS0tLQogc3Jj cGtncy9wN3ppcC9wYXRjaGVzL0NWRS0yMDE2LTkyOTYucGF0Y2ggICAgIHwgIDEyIC0KIHNyY3Br Z3MvcDd6aXAvcGF0Y2hlcy9DVkUtMjAxNy0xNzk2OS5wYXRjaCAgICB8ICAyNiAtLQogc3JjcGtn cy9wN3ppcC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ3IC0tLQogc3JjcGtn cy9wN3ppcC91cGRhdGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxIC0KIDEwIGZpbGVz IGNoYW5nZWQsIDI2NCBpbnNlcnRpb25zKCspLCA2MTkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy83emlwL2ZpbGVzLzd6ei4xCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy83emlwL3RlbXBsYXRlCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9wN3ppcAogZGVs ZXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvcDd6aXAtdW5yYXIKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3A3emlwL3BhdGNoZXMvMjAtQ1ZFLTIwMTgtNTk5Ni5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvcDd6aXAvcGF0Y2hlcy8zMC1DVkUtMjAxOC0xMDExNS5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcDd6aXAvcGF0Y2hlcy9DVkUtMjAxNi05Mjk2LnBhdGNo CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9wN3ppcC9wYXRjaGVzL0NWRS0yMDE3LTE3OTY5 LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9wN3ppcC90ZW1wbGF0ZQogZGVsZXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcDd6aXAvdXBkYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy83 emlwL2ZpbGVzLzd6ei4xIGIvc3JjcGtncy83emlwL2ZpbGVzLzd6ei4xCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmUxNTliZDk0YmI0Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy83emlwL2ZpbGVzLzd6ei4xCkBAIC0wLDAgKzEsMjE1IEBACisuVEggN1paICIx IiAiRmVicnVhcnkgMTQsIDIwMjIiCisuU0ggTkFNRQorN3p6IFwtIFN0YW5kYWxvbmUgY29uc29s ZSB2ZXJzaW9uIG9mIHRoZSA3LVppcCBmaWxlIGFyY2hpdmVyCisuU0ggU1lOT1BTSVMKKy5CIDd6 egorLlwiIFxmSVwsPGNvbW1hbmQ+IFwvW1xmSVwsPHN3aXRjaD5cLy4uLl0gXGZJXCw8YXJjaGl2 ZV9uYW1lPiBcL1tcZklcLDxmaWxlX25hbWVzPlwvLi4uXSBbXGZJXCxAbGlzdF9maWxlXC9dCisu QlIgPGNvbW1hbmQ+CisuQlIgWzxzd2l0Y2g+Li4uXQorLkJSIDxhcmNoaXZlX25hbWU+CisuQlIg WzxmaWxlX25hbWVzPl0KKy5CUiBbQGxpc3RmaWxlXQorLlNIIERFU0NSSVBUSU9OCis3XC1aaXAg aXMgYSBmaWxlIGFyY2hpdmVyIHdpdGggYSBoaWdoIGNvbXByZXNzaW9uIHJhdGlvLiBTdXBwb3J0 ZWQgZm9ybWF0czoKKy5JUAorUGFja2luZyBhbmQgdW5wYWNraW5nOiA3eiwgWFosIEJaSVAyLCBH WklQLCBUQVIsIFpJUCBhbmQgV0lNLgorLklQCitVbnBhY2tpbmcgb25seTogQVIsIEFSSiwgQ0FC LCBDSE0sIENQSU8sIENyYW1GUywgRE1HLCBFWFQsIEZBVCwgR1BULCBIRlMsIElIRVgsIElTTywg TFpILCBMWk1BLCBNQlIsIE1TSSwgTlNJUywgTlRGUywgUUNPVzIsIFJBUiwgUlBNLCBTcXVhc2hG UywgVURGLCBVRUZJLCBWREksIFZIRCwgVkhEWCwgVk1ESywgV0lNLCBYQVIgYW5kIFouCisuU0gg Q29tbWFuZHMKKy5UUAorLkJSIGEKK0FkZCBmaWxlcyB0byBhcmNoaXZlCisuVFAKKy5CUiBiCitC ZW5jaG1hcmsKKy5UUAorLkJSIGQKK0RlbGV0ZSBmaWxlcyBmcm9tIGFyY2hpdmUKKy5UUAorLkJS IGUKK0V4dHJhY3QgZmlsZXMgZnJvbSBhcmNoaXZlICh3aXRob3V0IHVzaW5nIGRpcmVjdG9yeSBu YW1lcykKKy5UUAorLkJSIGgKK0NhbGN1bGF0ZSBoYXNoIHZhbHVlcyBmb3IgZmlsZXMKKy5UUAor LkJSIGkKK1Nob3cgaW5mb3JtYXRpb24gYWJvdXQgc3VwcG9ydGVkIGZvcm1hdHMKKy5UUAorLkJS IGwKK0xpc3QgY29udGVudHMgb2YgYXJjaGl2ZQorLlRQCisuQlIgcm4KK1JlbmFtZSBmaWxlcyBp biBhcmNoaXZlCisuVFAKKy5CUiB0CitUZXN0IGludGVncml0eSBvZiBhcmNoaXZlCisuVFAKKy5C UiB1CitVcGRhdGUgZmlsZXMgdG8gYXJjaGl2ZQorLlRQCisuQlIgeAorRXh0cmFjdCBmaWxlcyB3 aXRoIGZ1bGwgcGF0aHMKKy5TSCBTd2l0Y2hlcworLlRQCisuQlIgXC1cLQorU3RvcCBzd2l0Y2hl cyBhbmQgQGxpc3RmaWxlIHBhcnNpbmcKKy5UUAorLkJSIFwtYWlbcltcLXwwXV17QGxpc3RmaWxl fCF3aWxkY2FyZH0KK0luY2x1ZGUgYXJjaGl2ZXMKKy5UUAorLkJSIFwtYXhbcltcLXwwXV17QGxp c3RmaWxlfCF3aWxkY2FyZH0KK0V4Y2x1ZGUgYXJjaGl2ZXMKKy5UUAorLkJSIFwtYW97YXxzfHR8 dX0KK1NldCBPdmVyd3JpdGUgbW9kZQorLlRQCisuQlIgXC1hbgorRGlzYWJsZSBhcmNoaXZlX25h bWUgZmllbGQKKy5UUAorLkJSIFwtYmJbMFwtM10KK1NldCBvdXRwdXQgbG9nIGxldmVsCisuVFAK Ky5CUiBcLWJkCitEaXNhYmxlIHByb2dyZXNzIGluZGljYXRvcgorLlRQCisuQlIgXC1ic3tvfGV8 cH17MHwxfDJ9CitTZXQgb3V0cHV0IHN0cmVhbSBmb3Igb3V0cHV0L2Vycm9yL3Byb2dyZXNzIGxp bmUKKy5UUAorLkJSIFwtYnQKK3Nob3cgZXhlY3V0aW9uIHRpbWUgc3RhdGlzdGljcworLlRQCisu QlIgXC1pW3JbXC18MF1de0BsaXN0ZmlsZXwhd2lsZGNhcmR9CitJbmNsdWRlIGZpbGVuYW1lcwor LlRQCisuQlIgXC1te1BhcmFtZXRlcnN9CitTZXQgY29tcHJlc3Npb24gTWV0aG9kCisuVFAKKy5C UiBcLW1tdFtOXQorU2V0IG51bWJlciBvZiBDUFUgdGhyZWFkcworLlRQCisuQlIgXC1teFtOXQor U2V0IGNvbXByZXNzaW9uIGxldmVsOiBcLW14MSAoZmFzdGVzdCkgLi4uIFwtbXg5ICh1bHRyYSkK Ky5UUAorLkJSIFwtb3tEaXJlY3Rvcnl9CitTZXQgT3V0cHV0IGRpcmVjdG9yeQorLlRQCisuQlIg XC1we1Bhc3N3b3JkfQorU2V0IFBhc3N3b3JkCisuVFAKKy5CUiBcLXJbXC18MF0KK1JlY3Vyc2Ug c3ViZGlyZWN0b3JpZXMgZm9yIG5hbWUgc2VhcmNoCisuVFAKKy5CUiBcLXNhe2F8ZXxzfQorU2V0 IEFyY2hpdmUgbmFtZSBtb2RlCisuVFAKKy5CUiBcLXNjY3tVVEZcLTh8V0lOfERPU30KK1NldCBj aGFyc2V0IGZvciBmb3IgY29uc29sZSBpbnB1dC9vdXRwdXQKKy5UUAorLkJSIFwtc2Nze1VURlwt OHxVVEZcLTE2TEV8VVRGXC0xNkJFfFdJTnxET1N8e2lkfX0KK1NldCBjaGFyc2V0IGZvciBsaXN0 IGZpbGVzCisuVFAKKy5CUiBcLXNjcmNbQ1JDMzJ8Q1JDNjR8U0hBMXxTSEEyNTZ8Kl0KK1NldCBo YXNoIGZ1bmN0aW9uIGZvciB4LCBlLCBoIGNvbW1hbmRzCisuVFAKKy5CUiBcLXNkZWwKK0RlbGV0 ZSBmaWxlcyBhZnRlciBjb21wcmVzc2lvbgorLlRQCisuQlIgXC1zZW1sWy5dCitTZW5kIGFyY2hp dmUgYnkgZW1haWwKKy5UUAorLkJSIFwtc2Z4W3tuYW1lfV0KK0NyZWF0ZSBTRlggYXJjaGl2ZQor LlRQCisuQlIgXC1zaVt7bmFtZX1dCitSZWFkIGRhdGEgZnJvbSBzdGRpbgorLlRQCisuQlIgXC1z bHAKK1NldCBMYXJnZSBQYWdlcyBtb2RlCisuVFAKKy5CUiBcLXNsdAorU2hvdyB0ZWNobmljYWwg aW5mb3JtYXRpb24gZm9yIGwgKExpc3QpIGNvbW1hbmQKKy5UUAorLkJSIFwtc25oCitTdG9yZSBo YXJkIGxpbmtzIGFzIGxpbmtzCisuVFAKKy5CUiBcLXNubAorU3RvcmUgc3ltYm9saWMgbGlua3Mg YXMgbGlua3MKKy5UUAorLkJSIFwtc25pCitTdG9yZSBOVCBzZWN1cml0eSBpbmZvcm1hdGlvbgor LlRQCisuQlIgXC1zbnNbXC1dCitTdG9yZSBOVEZTIGFsdGVybmF0ZSBzdHJlYW1zCisuVFAKKy5C UiBcLXNvCitXcml0ZSBkYXRhIHRvIHN0ZG91dAorLlRQCisuQlIgXC1zcGQKK0Rpc2FibGUgd2ls ZGNhcmQgbWF0Y2hpbmcgZm9yIGZpbGUgbmFtZXMKKy5UUAorLkJSIFwtc3BlCitFbGltaW5hdGUg ZHVwbGljYXRpb24gb2Ygcm9vdCBmb2xkZXIgZm9yIGV4dHJhY3QgY29tbWFuZAorLlRQCisuQlIg XC1zcGYKK1VzZSBmdWxseSBxdWFsaWZpZWQgZmlsZSBwYXRocworLlRQCisuQlIgXC1zc2NbXC1d CitTZXQgc2Vuc2l0aXZlIGNhc2UgbW9kZQorLlRQCisuQlIgXC1zc2UKK1N0b3AgYXJjaGl2ZSBj cmVhdGluZywgaWYgaXQgY2FuJ3Qgb3BlbiBzb21lIGlucHV0IGZpbGUKKy5UUAorLkJSIFwtc3Nw CitEbyBub3QgY2hhbmdlIExhc3QgQWNjZXNzIFRpbWUgb2Ygc291cmNlIGZpbGVzIHdoaWxlIGFy Y2hpdmluZworLlRQCisuQlIgXC1zc3cKK0NvbXByZXNzIHNoYXJlZCBmaWxlcworLlRQCisuQlIg XC1zdGwKK1NldCBhcmNoaXZlIHRpbWVzdGFtcCBmcm9tIHRoZSBtb3N0IHJlY2VudGx5IG1vZGlm aWVkIGZpbGUKKy5UUAorLkJSIFwtc3Rte0hleE1hc2t9CitTZXQgQ1BVIHRocmVhZCBhZmZpbml0 eSBtYXNrIChoZXhhZGVjaW1hbCBudW1iZXIpCisuVFAKKy5CUiBcLXN0eHtUeXBlfQorRXhjbHVk ZSBhcmNoaXZlIHR5cGUKKy5UUAorLkJSIFwtdHtUeXBlfQorU2V0IHR5cGUgb2YgYXJjaGl2ZQor LlRQCisuQlIgXC11W1wtXVtwI11bcSNdW3IjXVt4I11beSNdW3ojXVshbmV3QXJjaGl2ZU5hbWVd CitVcGRhdGUgb3B0aW9ucworLlRQCisuQlIgXC12e1NpemV9W2J8a3xtfGddCitDcmVhdGUgdm9s dW1lcworLlRQCisuQlIgXC13W3twYXRofV0KK1NldCB3b3JraW5nIGRpcmVjdG9yeS4gRW1wdHkg cGF0aCBtZWFucyBhIHRlbXBvcmFyeSBkaXJlY3RvcnkKKy5UUAorLkJSIFwteFtyW1wtfDBdXXtA bGlzdGZpbGV8IXdpbGRjYXJkfQorRXhjbHVkZSBmaWxlbmFtZXMKKy5UUAorLkJSIFwteQorQXNz dW1lIFllcyBvbiBhbGwgcXVlcmllcworLlNIIExpc3RmaWxlCitZb3UgY2FuIHN1cHBseSBvbmUg b3IgbW9yZSBmaWxlbmFtZXMgb3Igd2lsZGNhcmRzIGZvciBzcGVjaWFsIGxpc3QgZmlsZXMgKGZp bGVzIGNvbnRhaW5pbmcgbGlzdHMgb2YgZmlsZXMpLiBUaGUgZmlsZW5hbWVzIGluIHN1Y2ggbGlz dCBmaWxlIG11c3QgYmUgc2VwYXJhdGVkIGJ5IG5ldyBsaW5lIHN5bWJvbChzKS4gRm9yIGxpc3Qg ZmlsZXMsIDdcLVppcCB1c2VzIFVURlwtOCBlbmNvZGluZyBieSBkZWZhdWx0LiBZb3UgY2FuIGNo YW5nZSBlbmNvZGluZyB1c2luZworLkJSIFwtc2NzCitzd2l0Y2guIE11bHRpcGxlIGxpc3QgZmls ZXMgYXJlIHN1cHBvcnRlZC4KKy5QUAorRm9yIGV4YW1wbGUsIGlmIHRoZSBmaWxlICJsaXN0Zmls ZS50eHQiIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmc6CisuSVAKK015IHByb2dyYW1zXFwqLmNwcAor LmJyCitTcmNcXCouY3BwCisuUFAKK3RoZW4gdGhlIGNvbW1hbmQKKy5JUAorLkIgN3ogYSBcLXR6 aXAgYXJjaGl2ZS56aXAgQGxpc3RmaWxlLnR4dAorLlBQCithZGRzIHRvIHRoZSBhcmNoaXZlICJh cmNoaXZlLnppcCIgYWxsICIqLmNwcCIgZmlsZXMgZnJvbSBkaXJlY3RvcmllcyAiTXkgcHJvZ3Jh bXMiIGFuZCAiU3JjIi4KKy5TSCAiU0VFIEFMU08iCisuQlIgeHogKDEpCisuYnIKK0ZyZXF1ZW50 bHkgQXNrZWQgUXVlc3Rpb25zOiA8aHR0cHM6Ly93d3cuNy16aXAub3JnL2ZhcS5odG1sPgorLmJy CitSZWNvdmVyIGNvcnJ1cHRlZCA3eiBhcmNoaXZlOiA8aHR0cHM6Ly93d3cuNy16aXAub3JnL3Jl Y292ZXIuaHRtbD4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvN3ppcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mv N3ppcC90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjA4 ZmEwNGIzYzE4OAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvN3ppcC90ZW1wbGF0ZQpAQCAt MCwwICsxLDQ4IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICc3emlwJworcGtnbmFtZT03emlwCit2 ZXJzaW9uPTIyLjAwCityZXZpc2lvbj0xCit3cmtzcmM9Ijd6aXAtJHt2ZXJzaW9ufSIKK2NyZWF0 ZV93cmtzcmM9eWVzCitzaG9ydF9kZXNjPSJGaWxlIGFyY2hpdmVyIHdpdGggYSBoaWdoIGNvbXBy ZXNzaW9uIHJhdGlvIgorbWFpbnRhaW5lcj0iUm9iZXJ0byBSaWNjaSA8cmljY2lAZGlzcm9vdC5v cmc+IgorbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIsIEJTRC0zLUNsYXVzZSIKK2hvbWVwYWdl PSJodHRwczovL3d3dy43LXppcC5vcmciCitjaGFuZ2Vsb2c9Imh0dHBzOi8vd3d3LjctemlwLm9y Zy9oaXN0b3J5LnR4dCIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly93d3cuNy16aXAub3JnL2EvN3oke3Zl cnNpb24vLy4vfS1zcmMudGFyLnh6IgorY2hlY2tzdW09NDA5NjlmNjAxZTg2YWZmNDlhYWEwYmEw ZGY1Y2U2ZmQzOTdjZjdlMjY4M2E4NGI1OTFiMDA4MWU0NjFlZjY3NQorCitkb19idWlsZCgpIHsK KwljZCBDUFAvN3ppcC9CdW5kbGVzL0Fsb25lMgorCW1ha2UgIiRtYWtlam9icyIgLWYgbWFrZWZp bGUuZ2NjIENDPSIkQ0MiIENYWD0iJENYWCIgRElTQUJMRV9SQVJfQ09NUFJFU1M9MQorfQorCitk b19pbnN0YWxsKCkgeworCXZiaW4gQ1BQLzd6aXAvQnVuZGxlcy9BbG9uZTIvX28vN3p6CisJZm9y IGkgaW4gN3ogN3phIDd6cjsgZG8KKwkJbG4gLXNmIDd6eiAke0RFU1RESVJ9L3Vzci9iaW4vJHtp fQorCWRvbmUKKworCXZsaWNlbnNlIERPQy9MaWNlbnNlLnR4dAorCisJIyBodHRwczovL2NnaXQu ZnJlZWJzZC5vcmcvcG9ydHMvcGxhaW4vYXJjaGl2ZXJzLzctemlwL2ZpbGVzLzd6ei4xCisJdm1h biAke0ZJTEVTRElSfS83enouMQorfQorCisjN3ppcC1yYXJfcGFja2FnZSgpIHsKKwkjcmVwb3Np dG9yeT1ub25mcmVlCisJI2NvbmZsaWN0cz03emlwCisJI3Nob3J0X2Rlc2MrPSIgd2l0aCBSQVIg c3VwcG9ydCIKKyN9CisKK3A3emlwX3BhY2thZ2UoKSB7CisJYnVpbGRfc3R5bGU9bWV0YQorCWRl cGVuZHM9N3ppcAorCXNob3J0X2Rlc2M9IkNvbW1hbmQtbGluZSB2ZXJzaW9uIG9mIHRoZSA3emlw IGNvbXByZXNzZWQgZmlsZSBhcmNoaXZlICh0cmFuc2l0aW9uYWwgZHVtbXkgcGFja2FnZSkiCit9 CisKKyNwN3ppcC11bnJhcl9wYWNrYWdlIHsKKwkjYnVpbGRfc3R5bGU9bWV0YQorCSNkZXBlbmRz PTd6aXAtcmFyCisJI3Nob3J0X2Rlc2M9IkNvbW1hbmQtbGluZSB2ZXJzaW9uIG9mIHRoZSA3emlw IGNvbXByZXNzZWQgZmlsZSBhcmNoaXZlIC0gUkFSIHN1cHBvcnQgKHRyYW5zaXRpb25hbCBkdW1t eSBwYWNrYWdlKSIKKyN9CmRpZmYgLS1naXQgYS9zcmNwa2dzL3A3emlwIGIvc3JjcGtncy9wN3pp cApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLjI4NDMxMjU5NWE0Ywot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcDd6aXAKQEAgLTAsMCArMSBAQAorN3ppcApcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcDd6aXAtdW5yYXIg Yi9zcmNwa2dzL3A3emlwLXVucmFyCmRlbGV0ZWQgZmlsZSBtb2RlIDEyMDAwMAppbmRleCBiZjUz NDllZTY2NjYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3A3emlwLXVucmFyCisrKyAvZGV2 L251bGwKQEAgLTEgKzAsMCBAQAotcDd6aXAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3A3emlwL3BhdGNoZXMvMjAtQ1ZFLTIwMTgtNTk5Ni5wYXRjaCBi L3NyY3BrZ3MvcDd6aXAvcGF0Y2hlcy8yMC1DVkUtMjAxOC01OTk2LnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCA2NzMzYmZmOTE4OTUuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL3A3emlwL3BhdGNoZXMvMjAtQ1ZFLTIwMTgtNTk5Ni5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDIyMSArMCwwIEBACi1Gcm9tOiBSb2JlcnQgTHViZXJkYSA8cm9iZXJ0QGRlYmlhbi5vcmc+ Ci1EYXRlOiBTdW4sIDI4IEphbiAyMDE4IDIzOjQ3OjQwICswMTAwCi1TdWJqZWN0OiBDVkUtMjAx OC01OTk2Ci0KLUhvcGVmdWxseSBmaXggTWVtb3J5IENvcnJ1cHRpb25zIHZpYSBSQVIgUFBNZCAo Q1ZFLTIwMTgtNTk5NikgYnkKLWFwcGx5aW5nIGEgZmV3IGNoYW5nZXMgZnJvbSA3WmlwIDE4LjAw LWJldGEuCi0KLUJ1Zy1EZWJpYW46IGh0dHBzOi8vYnVncy5kZWJpYW4ub3JnLyM4ODgzMTQKLS0t LQotIENQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmNwcCB8IDEzICsrKysrKysrKy0tLS0K LSBDUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5oICAgfCAgMSArCi0gQ1BQLzd6aXAvQ29t cHJlc3MvUmFyMkRlY29kZXIuY3BwIHwgMTAgKysrKysrKysrLQotIENQUC83emlwL0NvbXByZXNz L1JhcjJEZWNvZGVyLmggICB8ICAxICsKLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5j cHAgfCAyMyArKysrKysrKysrKysrKysrKysrKy0tLQotIENQUC83emlwL0NvbXByZXNzL1JhcjNE ZWNvZGVyLmggICB8ICAyICsrCi0gNiBmaWxlcyBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCA4 IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29k ZXIuY3BwIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuY3BwCi1pbmRleCAxYWFlZGNj Li42ODAzMGM3IDEwMDY0NAotLS0tIGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuY3Bw Ci0rKysgYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5jcHAKLUBAIC0yOSw3ICsyOSw3 IEBAIHB1YmxpYzoKLSB9OwotICovCi0gCi0tQ0RlY29kZXI6OkNEZWNvZGVyKCk6IG1fSXNTb2xp ZChmYWxzZSkgeyB9Ci0rQ0RlY29kZXI6OkNEZWNvZGVyKCk6IG1fSXNTb2xpZChmYWxzZSksIF9l cnJvck1vZGUoZmFsc2UpIHsgfQotIAotIHZvaWQgQ0RlY29kZXI6OkluaXRTdHJ1Y3R1cmVzKCkK LSB7Ci1AQCAtNDA2LDkgKzQwNiwxNCBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJU2Vx dWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0gKgotICAgSW5p dERhdGEoKTsKLSAgIGlmICghbV9Jc1NvbGlkKQotICAgewotKyAgICBfZXJyb3JNb2RlID0gZmFs c2U7Ci0gICAgIEluaXRTdHJ1Y3R1cmVzKCk7Ci0gICAgIEluaXRIdWZmKCk7Ci0gICB9Ci0rCi0r ICBpZiAoX2Vycm9yTW9kZSkKLSsgICAgcmV0dXJuIFNfRkFMU0U7Ci0rCi0gICBpZiAobV9VbnBh Y2tTaXplID4gMCkKLSAgIHsKLSAgICAgR2V0RmxhZ3NCdWYoKTsKLUBAIC00NzcsOSArNDgyLDkg QEAgU1RETUVUSE9ESU1QIENEZWNvZGVyOjpDb2RlKElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3Ry ZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbQotICAgICBjb25zdCBVSW50NjQgKmluU2l6ZSwgY29u c3QgVUludDY0ICpvdXRTaXplLCBJQ29tcHJlc3NQcm9ncmVzc0luZm8gKnByb2dyZXNzKQotIHsK LSAgIHRyeSB7IHJldHVybiBDb2RlUmVhbChpblN0cmVhbSwgb3V0U3RyZWFtLCBpblNpemUsIG91 dFNpemUsIHByb2dyZXNzKTsgfQotLSAgY2F0Y2goY29uc3QgQ0luQnVmZmVyRXhjZXB0aW9uICZl KSB7IHJldHVybiBlLkVycm9yQ29kZTsgfQotLSAgY2F0Y2goY29uc3QgQ0x6T3V0V2luZG93RXhj ZXB0aW9uICZlKSB7IHJldHVybiBlLkVycm9yQ29kZTsgfQotLSAgY2F0Y2goLi4uKSB7IHJldHVy biBTX0ZBTFNFOyB9Ci0rICBjYXRjaChjb25zdCBDSW5CdWZmZXJFeGNlcHRpb24gJmUpIHsgX2Vy cm9yTW9kZSA9IHRydWU7IHJldHVybiBlLkVycm9yQ29kZTsgfQotKyAgY2F0Y2goY29uc3QgQ0x6 T3V0V2luZG93RXhjZXB0aW9uICZlKSB7IF9lcnJvck1vZGUgPSB0cnVlOyByZXR1cm4gZS5FcnJv ckNvZGU7IH0KLSsgIGNhdGNoKC4uLikgeyBfZXJyb3JNb2RlID0gdHJ1ZTsgcmV0dXJuIFNfRkFM U0U7IH0KLSB9Ci0gCi0gU1RETUVUSE9ESU1QIENEZWNvZGVyOjpTZXREZWNvZGVyUHJvcGVydGll czIoY29uc3QgQnl0ZSAqZGF0YSwgVUludDMyIHNpemUpCi1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAv Q29tcHJlc3MvUmFyMURlY29kZXIuaCBiL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmgK LWluZGV4IDYzMGYwODkuLjAxYjYwNmIgMTAwNjQ0Ci0tLS0gYS9DUFAvN3ppcC9Db21wcmVzcy9S YXIxRGVjb2Rlci5oCi0rKysgYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5oCi1AQCAt MzksNiArMzksNyBAQCBwdWJsaWM6Ci0gCi0gICBJbnQ2NCBtX1VucGFja1NpemU7Ci0gICBib29s IG1fSXNTb2xpZDsKLSsgIGJvb2wgX2Vycm9yTW9kZTsKLSAKLSAgIFVJbnQzMiBSZWFkQml0cyhp bnQgbnVtQml0cyk7Ci0gICBIUkVTVUxUIENvcHlCbG9jayhVSW50MzIgZGlzdGFuY2UsIFVJbnQz MiBsZW4pOwotZGlmZiAtLWdpdCBhL0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmNwcCBi L0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmNwcAotaW5kZXggYjNmMmI0Yi4uMDU4MGM4 ZCAxMDA2NDQKLS0tLSBhL0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmNwcAotKysrIGIv Q1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuY3BwCi1AQCAtODAsNyArODAsOCBAQCBzdGF0 aWMgY29uc3QgVUludDMyIGtIaXN0b3J5U2l6ZSA9IDEgPDwgMjA7Ci0gc3RhdGljIGNvbnN0IFVJ bnQzMiBrV2luZG93UmVzZXJ2U2l6ZSA9ICgxIDw8IDIyKSArIDI1NjsKLSAKLSBDRGVjb2Rlcjo6 Q0RlY29kZXIoKToKLS0gIG1fSXNTb2xpZChmYWxzZSkKLSsgIG1fSXNTb2xpZChmYWxzZSksCi0r ICBtX1RhYmxlc09LKGZhbHNlKQotIHsKLSB9Ci0gCi1AQCAtMTAwLDYgKzEwMSw4IEBAIFVJbnQz MiBDRGVjb2Rlcjo6UmVhZEJpdHModW5zaWduZWQgbnVtQml0cykgeyByZXR1cm4gbV9JbkJpdFN0 cmVhbS5SZWFkQml0cyhudW1CCi0gCi0gYm9vbCBDRGVjb2Rlcjo6UmVhZFRhYmxlcyh2b2lkKQot IHsKLSsgIG1fVGFibGVzT0sgPSBmYWxzZTsKLSsKLSAgIEJ5dGUgbGV2ZWxMZXZlbHNba0xldmVs VGFibGVTaXplXTsKLSAgIEJ5dGUgbmV3TGV2ZWxzW2tNYXhUYWJsZVNpemVdOwotICAgbV9BdWRp b01vZGUgPSAoUmVhZEJpdHMoMSkgPT0gMSk7Ci1AQCAtMTcwLDYgKzE3Myw4IEBAIGJvb2wgQ0Rl Y29kZXI6OlJlYWRUYWJsZXModm9pZCkKLSAgIH0KLSAgIAotICAgbWVtY3B5KG1fTGFzdExldmVs cywgbmV3TGV2ZWxzLCBrTWF4VGFibGVTaXplKTsKLSsgIG1fVGFibGVzT0sgPSB0cnVlOwotKwot ICAgcmV0dXJuIHRydWU7Ci0gfQotIAotQEAgLTM0NCw2ICszNDksOSBAQCBIUkVTVUxUIENEZWNv ZGVyOjpDb2RlUmVhbChJU2VxdWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxP dXRTdHJlYW0gKgotICAgICAgIHJldHVybiBTX0ZBTFNFOwotICAgfQotIAotKyAgaWYgKCFtX1Rh Ymxlc09LKQotKyAgICByZXR1cm4gU19GQUxTRTsKLSsKLSAgIFVJbnQ2NCBzdGFydFBvcyA9IG1f T3V0V2luZG93U3RyZWFtLkdldFByb2Nlc3NlZFNpemUoKTsKLSAgIHdoaWxlIChwb3MgPCB1blBh Y2tTaXplKQotICAgewotZGlmZiAtLWdpdCBhL0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVy LmggYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5oCi1pbmRleCAzYTA1MzVjLi4wZTkw MDVmIDEwMDY0NAotLS0tIGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuaAotKysrIGIv Q1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuaAotQEAgLTEzOSw2ICsxMzksNyBAQCBjbGFz cyBDRGVjb2RlciA6Ci0gCi0gICBVSW50NjQgbV9QYWNrU2l6ZTsKLSAgIGJvb2wgbV9Jc1NvbGlk OwotKyAgYm9vbCBtX1RhYmxlc09LOwotIAotICAgdm9pZCBJbml0U3RydWN0dXJlcygpOwotICAg VUludDMyIFJlYWRCaXRzKHVuc2lnbmVkIG51bUJpdHMpOwotZGlmZiAtLWdpdCBhL0NQUC83emlw L0NvbXByZXNzL1JhcjNEZWNvZGVyLmNwcCBiL0NQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVy LmNwcAotaW5kZXggM2JmMjUxMy4uNmNiOGE2YSAxMDA2NDQKLS0tLSBhL0NQUC83emlwL0NvbXBy ZXNzL1JhcjNEZWNvZGVyLmNwcAotKysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIu Y3BwCi1AQCAtOTIsNyArOTIsOCBAQCBDRGVjb2Rlcjo6Q0RlY29kZXIoKToKLSAgIF93cml0dGVu RmlsZVNpemUoMCksCi0gICBfdm1EYXRhKDApLAotICAgX3ZtQ29kZSgwKSwKLS0gIG1fSXNTb2xp ZChmYWxzZSkKLSsgIG1fSXNTb2xpZChmYWxzZSksCi0rICBfZXJyb3JNb2RlKGZhbHNlKQotIHsK LSAgIFBwbWQ3X0NvbnN0cnVjdCgmX3BwbWQpOwotIH0KLUBAIC01NDUsNiArNTQ2LDkgQEAgSFJF U1VMVCBDRGVjb2Rlcjo6UmVhZFRhYmxlcyhib29sICZrZWVwRGVjb21wcmVzc2luZykKLSAgICAg cmV0dXJuIEluaXRQUE0oKTsKLSAgIH0KLSAKLSsgIFRhYmxlc1JlYWQgPSBmYWxzZTsKLSsgIFRh Ymxlc09LID0gZmFsc2U7Ci0rCi0gICBfbHpNb2RlID0gdHJ1ZTsKLSAgIFByZXZBbGlnbkJpdHMg PSAwOwotICAgUHJldkFsaWduQ291bnQgPSAwOwotQEAgLTYwNiw2ICs2MTAsOSBAQCBIUkVTVUxU IENEZWNvZGVyOjpSZWFkVGFibGVzKGJvb2wgJmtlZXBEZWNvbXByZXNzaW5nKQotICAgICAgIH0K LSAgICAgfQotICAgfQotKyAgaWYgKElucHV0RW9mRXJyb3IoKSkKLSsgICAgcmV0dXJuIFNfRkFM U0U7Ci0rCi0gICBUYWJsZXNSZWFkID0gdHJ1ZTsKLSAKLSAgIC8vIG9yaWdpbmFsIGNvZGUgaGFz IGNoZWNrIGhlcmU6Ci1AQCAtNjIzLDYgKzYzMCw5IEBAIEhSRVNVTFQgQ0RlY29kZXI6OlJlYWRU YWJsZXMoYm9vbCAma2VlcERlY29tcHJlc3NpbmcpCi0gICBSSUYobV9MZW5EZWNvZGVyLkJ1aWxk KCZuZXdMZXZlbHNba01haW5UYWJsZVNpemUgKyBrRGlzdFRhYmxlU2l6ZSArIGtBbGlnblRhYmxl U2l6ZV0pKTsKLSAKLSAgIG1lbWNweShtX0xhc3RMZXZlbHMsIG5ld0xldmVscywga1RhYmxlc1Np emVzU3VtKTsKLSsKLSsgIFRhYmxlc09LID0gdHJ1ZTsKLSsKLSAgIHJldHVybiBTX09LOwotIH0K LSAKLUBAIC04MjQsNyArODM0LDEyIEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFsKElDb21w cmVzc1Byb2dyZXNzSW5mbyAqcHJvZ3Jlc3MpCi0gICAgIFBwbUVzY0NoYXIgPSAyOwotICAgICBQ cG1FcnJvciA9IHRydWU7Ci0gICAgIEluaXRGaWx0ZXJzKCk7Ci0rICAgIF9lcnJvck1vZGUgPSBm YWxzZTsKLSAgIH0KLSsKLSsgIGlmIChfZXJyb3JNb2RlKQotKyAgICByZXR1cm4gU19GQUxTRTsK LSsKLSAgIGlmICghbV9Jc1NvbGlkIHx8ICFUYWJsZXNSZWFkKQotICAgewotICAgICBib29sIGtl ZXBEZWNvbXByZXNzaW5nOwotQEAgLTgzOCw2ICs4NTMsOCBAQCBIUkVTVUxUIENEZWNvZGVyOjpD b2RlUmVhbChJQ29tcHJlc3NQcm9ncmVzc0luZm8gKnByb2dyZXNzKQotICAgICBib29sIGtlZXBE ZWNvbXByZXNzaW5nOwotICAgICBpZiAoX2x6TW9kZSkKLSAgICAgewotKyAgICAgIGlmICghVGFi bGVzT0spCi0rICAgICAgICByZXR1cm4gU19GQUxTRTsKLSAgICAgICBSSU5PSyhEZWNvZGVMWihr ZWVwRGVjb21wcmVzc2luZykpCi0gICAgIH0KLSAgICAgZWxzZQotQEAgLTkwMSw4ICs5MTgsOCBA QCBTVERNRVRIT0RJTVAgQ0RlY29kZXI6OkNvZGUoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5TdHJl YW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtCi0gICAgIF91bnBhY2tTaXplID0gb3V0U2l6ZSA/ICpv dXRTaXplIDogKFVJbnQ2NCkoSW50NjQpLTE7Ci0gICAgIHJldHVybiBDb2RlUmVhbChwcm9ncmVz cyk7Ci0gICB9Ci0tICBjYXRjaChjb25zdCBDSW5CdWZmZXJFeGNlcHRpb24gJmUpICB7IHJldHVy biBlLkVycm9yQ29kZTsgfQotLSAgY2F0Y2goLi4uKSB7IHJldHVybiBTX0ZBTFNFOyB9Ci0rICBj YXRjaChjb25zdCBDSW5CdWZmZXJFeGNlcHRpb24gJmUpICB7IF9lcnJvck1vZGUgPSB0cnVlOyBy ZXR1cm4gZS5FcnJvckNvZGU7IH0KLSsgIGNhdGNoKC4uLikgeyBfZXJyb3JNb2RlID0gdHJ1ZTsg cmV0dXJuIFNfRkFMU0U7IH0KLSAgIC8vIENOZXdFeGNlcHRpb24gaXMgcG9zc2libGUgaGVyZS4g QnV0IHByb2JhYmx5IENOZXdFeGNlcHRpb24gaXMgY2F1c2VkCi0gICAvLyBieSBlcnJvciBpbiBk YXRhIHN0cmVhbS4KLSB9Ci1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29k ZXIuaCBiL0NQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmgKLWluZGV4IGMxMzBjZWMuLjJm NzJkN2QgMTAwNjQ0Ci0tLS0gYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5oCi0rKysg Yi9DUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5oCi1AQCAtMTkyLDYgKzE5Miw3IEBAIGNs YXNzIENEZWNvZGVyOgotICAgVUludDMyIF9sYXN0RmlsdGVyOwotIAotICAgYm9vbCBtX0lzU29s aWQ7Ci0rICBib29sIF9lcnJvck1vZGU7Ci0gCi0gICBib29sIF9sek1vZGU7Ci0gICBib29sIF91 bnN1cHBvcnRlZEZpbHRlcjsKLUBAIC0yMDAsNiArMjAxLDcgQEAgY2xhc3MgQ0RlY29kZXI6Ci0g ICBVSW50MzIgUHJldkFsaWduQ291bnQ7Ci0gCi0gICBib29sIFRhYmxlc1JlYWQ7Ci0rICBib29s IFRhYmxlc09LOwotIAotICAgQ1BwbWQ3IF9wcG1kOwotICAgaW50IFBwbUVzY0NoYXI7CmRpZmYg LS1naXQgYS9zcmNwa2dzL3A3emlwL3BhdGNoZXMvMzAtQ1ZFLTIwMTgtMTAxMTUucGF0Y2ggYi9z cmNwa2dzL3A3emlwL3BhdGNoZXMvMzAtQ1ZFLTIwMTgtMTAxMTUucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDdkOWM0YmY4MWYwMC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvcDd6aXAvcGF0Y2hlcy8zMC1DVkUtMjAxOC0xMDExNS5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDMxMSArMCwwIEBACi1Gcm9tOiBSb2JlcnQgTHViZXJkYSA8cm9iZXJ0QGRlYmlhbi5vcmc+ Ci1EYXRlOiBUdWUsIDI5IE1heSAyMDE4IDIzOjU5OjA5ICswMjAwCi1TdWJqZWN0OiBGaXggQ1ZF LTIwMTgtMTAxMTUKLQotQXBwbHkgInBhdGNoIiB0YWtlbiBmcm9tIGh0dHBzOi8vbGFuZGF2ZS5p by9maWxlcy9wYXRjaF83emlwX0NWRS0yMDE4LTEwMTE1LnR4dAotCi0KLUJ1Z3MtRGViaWFuOiBo dHRwczovL2J1Z3MuZGViaWFuLm9yZy84OTc2NzQKLS0tLQotIENQUC83emlwL0NvbXByZXNzL1Jh cjFEZWNvZGVyLmNwcCB8IDE2ICsrKysrKysrKysrLS0tLS0KLSBDUFAvN3ppcC9Db21wcmVzcy9S YXIxRGVjb2Rlci5oICAgfCAgMyArKy0KLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5j cHAgfCAxNyArKysrKysrKysrKysrLS0tLQotIENQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVy LmggICB8ICAzICsrLQotIENQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmNwcCB8IDE5ICsr KysrKysrKysrKysrKy0tLS0KLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5oICAgfCAg MyArKy0KLSBDUFAvN3ppcC9Db21wcmVzcy9SYXI1RGVjb2Rlci5jcHAgfCAgOCArKysrKysrKwot IENQUC83emlwL0NvbXByZXNzL1JhcjVEZWNvZGVyLmggICB8ICAxICsKLSA4IGZpbGVzIGNoYW5n ZWQsIDU0IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvQ1BQ Lzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuY3BwIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURl Y29kZXIuY3BwCi1pbmRleCA2ODAzMGM3Li44Yzg5MGM4IDEwMDY0NAotLS0tIGEvQ1BQLzd6aXAv Q29tcHJlc3MvUmFyMURlY29kZXIuY3BwCi0rKysgYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVj b2Rlci5jcHAKLUBAIC0yOSw3ICsyOSw3IEBAIHB1YmxpYzoKLSB9OwotICovCi0gCi0tQ0RlY29k ZXI6OkNEZWNvZGVyKCk6IG1fSXNTb2xpZChmYWxzZSksIF9lcnJvck1vZGUoZmFsc2UpIHsgfQot K0NEZWNvZGVyOjpDRGVjb2RlcigpOiBfaXNTb2xpZChmYWxzZSksIF9zb2xpZEFsbG93ZWQoZmFs c2UpLCBfZXJyb3JNb2RlKGZhbHNlKSB7IH0KLSAKLSB2b2lkIENEZWNvZGVyOjpJbml0U3RydWN0 dXJlcygpCi0gewotQEAgLTM0NSw3ICszNDUsNyBAQCB2b2lkIENEZWNvZGVyOjpHZXRGbGFnc0J1 ZigpCi0gCi0gdm9pZCBDRGVjb2Rlcjo6SW5pdERhdGEoKQotIHsKLS0gIGlmICghbV9Jc1NvbGlk KQotKyAgaWYgKCFfaXNTb2xpZCkKLSAgIHsKLSAgICAgQXZyUGxjQiA9IEF2ckxuMSA9IEF2ckxu MiA9IEF2ckxuMyA9IE51bUh1ZiA9IEJ1ZjYwID0gMDsKLSAgICAgQXZyUGxjID0gMHgzNTAwOwot QEAgLTM5MSw2ICszOTEsMTEgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVlbnRp YWxJblN0cmVhbSAqaW5TdHJlYW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtICoKLSAgIGlmIChpblNp emUgPT0gTlVMTCB8fCBvdXRTaXplID09IE5VTEwpCi0gICAgIHJldHVybiBFX0lOVkFMSURBUkc7 Ci0gCi0rICBpZiAoX2lzU29saWQgJiYgIV9zb2xpZEFsbG93ZWQpCi0rICAgIHJldHVybiBTX0ZB TFNFOwotKwotKyAgX3NvbGlkQWxsb3dlZCA9IGZhbHNlOwotKwotICAgaWYgKCFtX091dFdpbmRv d1N0cmVhbS5DcmVhdGUoa0hpc3RvcnlTaXplKSkKLSAgICAgcmV0dXJuIEVfT1VUT0ZNRU1PUlk7 Ci0gICBpZiAoIW1fSW5CaXRTdHJlYW0uQ3JlYXRlKDEgPDwgMjApKQotQEAgLTM5OCwxMyArNDAz LDEzIEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFsKElTZXF1ZW50aWFsSW5TdHJlYW0gKmlu U3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbSAqCi0gCi0gICBtX1VucGFja1NpemUgPSAoSW50 NjQpKm91dFNpemU7Ci0gICBtX091dFdpbmRvd1N0cmVhbS5TZXRTdHJlYW0ob3V0U3RyZWFtKTsK LS0gIG1fT3V0V2luZG93U3RyZWFtLkluaXQobV9Jc1NvbGlkKTsKLSsgIG1fT3V0V2luZG93U3Ry ZWFtLkluaXQoX2lzU29saWQpOwotICAgbV9JbkJpdFN0cmVhbS5TZXRTdHJlYW0oaW5TdHJlYW0p OwotICAgbV9JbkJpdFN0cmVhbS5Jbml0KCk7Ci0gCi0gICAvLyBDQ29kZXJSZWxlYXNlciBjb2Rl clJlbGVhc2VyKHRoaXMpOwotICAgSW5pdERhdGEoKTsKLS0gIGlmICghbV9Jc1NvbGlkKQotKyAg aWYgKCFfaXNTb2xpZCkKLSAgIHsKLSAgICAgX2Vycm9yTW9kZSA9IGZhbHNlOwotICAgICBJbml0 U3RydWN0dXJlcygpOwotQEAgLTQ3NSw2ICs0ODAsNyBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2Rl UmVhbChJU2VxdWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0g KgotICAgfQotICAgaWYgKG1fVW5wYWNrU2l6ZSA8IDApCi0gICAgIHJldHVybiBTX0ZBTFNFOwot KyAgX3NvbGlkQWxsb3dlZCA9IHRydWU7Ci0gICByZXR1cm4gbV9PdXRXaW5kb3dTdHJlYW0uRmx1 c2goKTsKLSB9Ci0gCi1AQCAtNDkxLDcgKzQ5Nyw3IEBAIFNURE1FVEhPRElNUCBDRGVjb2Rlcjo6 U2V0RGVjb2RlclByb3BlcnRpZXMyKGNvbnN0IEJ5dGUgKmRhdGEsIFVJbnQzMiBzaXplKQotIHsK LSAgIGlmIChzaXplIDwgMSkKLSAgICAgcmV0dXJuIEVfSU5WQUxJREFSRzsKLS0gIG1fSXNTb2xp ZCA9ICgoZGF0YVswXSAmIDEpICE9IDApOwotKyAgX2lzU29saWQgPSAoKGRhdGFbMF0gJiAxKSAh PSAwKTsKLSAgIHJldHVybiBTX09LOwotIH0KLSAKLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21w cmVzcy9SYXIxRGVjb2Rlci5oIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuaAotaW5k ZXggMDFiNjA2Yi4uOGFiYjNhMyAxMDA2NDQKLS0tLSBhL0NQUC83emlwL0NvbXByZXNzL1JhcjFE ZWNvZGVyLmgKLSsrKyBiL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmgKLUBAIC0zOCw3 ICszOCw4IEBAIHB1YmxpYzoKLSAgIFVJbnQzMiBMYXN0TGVuZ3RoOwotIAotICAgSW50NjQgbV9V bnBhY2tTaXplOwotLSAgYm9vbCBtX0lzU29saWQ7Ci0rICBib29sIF9pc1NvbGlkOwotKyAgYm9v bCBfc29saWRBbGxvd2VkOwotICAgYm9vbCBfZXJyb3JNb2RlOwotIAotICAgVUludDMyIFJlYWRC aXRzKGludCBudW1CaXRzKTsKLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVj b2Rlci5jcHAgYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5jcHAKLWluZGV4IDA1ODBj OGQuLmJlOGQ4NDIgMTAwNjQ0Ci0tLS0gYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5j cHAKLSsrKyBiL0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmNwcAotQEAgLTgwLDcgKzgw LDggQEAgc3RhdGljIGNvbnN0IFVJbnQzMiBrSGlzdG9yeVNpemUgPSAxIDw8IDIwOwotIHN0YXRp YyBjb25zdCBVSW50MzIga1dpbmRvd1Jlc2VydlNpemUgPSAoMSA8PCAyMikgKyAyNTY7Ci0gCi0g Q0RlY29kZXI6OkNEZWNvZGVyKCk6Ci0tICBtX0lzU29saWQoZmFsc2UpLAotKyAgX2lzU29saWQo ZmFsc2UpLAotKyAgX3NvbGlkQWxsb3dlZChmYWxzZSksCi0gICBtX1RhYmxlc09LKGZhbHNlKQot IHsKLSB9Ci1AQCAtMzIwLDYgKzMyMSwxMCBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJ U2VxdWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0gKgotICAg aWYgKGluU2l6ZSA9PSBOVUxMIHx8IG91dFNpemUgPT0gTlVMTCkKLSAgICAgcmV0dXJuIEVfSU5W QUxJREFSRzsKLSAKLSsgIGlmIChfaXNTb2xpZCAmJiAhX3NvbGlkQWxsb3dlZCkKLSsgICAgcmV0 dXJuIFNfRkFMU0U7Ci0rICBfc29saWRBbGxvd2VkID0gZmFsc2U7Ci0rCi0gICBpZiAoIW1fT3V0 V2luZG93U3RyZWFtLkNyZWF0ZShrSGlzdG9yeVNpemUpKQotICAgICByZXR1cm4gRV9PVVRPRk1F TU9SWTsKLSAgIGlmICghbV9JbkJpdFN0cmVhbS5DcmVhdGUoMSA8PCAyMCkpCi1AQCAtMzMwLDEy ICszMzUsMTIgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVlbnRpYWxJblN0cmVh bSAqaW5TdHJlYW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtICoKLSAgIFVJbnQ2NCBwb3MgPSAwLCB1 blBhY2tTaXplID0gKm91dFNpemU7Ci0gICAKLSAgIG1fT3V0V2luZG93U3RyZWFtLlNldFN0cmVh bShvdXRTdHJlYW0pOwotLSAgbV9PdXRXaW5kb3dTdHJlYW0uSW5pdChtX0lzU29saWQpOwotKyAg bV9PdXRXaW5kb3dTdHJlYW0uSW5pdChfaXNTb2xpZCk7Ci0gICBtX0luQml0U3RyZWFtLlNldFN0 cmVhbShpblN0cmVhbSk7Ci0gICBtX0luQml0U3RyZWFtLkluaXQoKTsKLSAKLSAgIC8vIENDb2Rl clJlbGVhc2VyIGNvZGVyUmVsZWFzZXIodGhpcyk7Ci0tICBpZiAoIW1fSXNTb2xpZCkKLSsgIGlm ICghX2lzU29saWQpCi0gICB7Ci0gICAgIEluaXRTdHJ1Y3R1cmVzKCk7Ci0gICAgIGlmICh1blBh Y2tTaXplID09IDApCi1AQCAtMzQzLDYgKzM0OCw3IEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVS ZWFsKElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbSAq Ci0gICAgICAgaWYgKG1fSW5CaXRTdHJlYW0uR2V0UHJvY2Vzc2VkU2l6ZSgpICsgMiA8PSBtX1Bh Y2tTaXplKSAvLyB0ZXN0IGl0OiBwcm9iYWJseSBpbmNvcnJlY3Q7Ci0gICAgICAgICBpZiAoIVJl YWRUYWJsZXMoKSkKLSAgICAgICAgICAgcmV0dXJuIFNfRkFMU0U7Ci0rICAgICAgX3NvbGlkQWxs b3dlZCA9IHRydWU7Ci0gICAgICAgcmV0dXJuIFNfT0s7Ci0gICAgIH0KLSAgICAgaWYgKCFSZWFk VGFibGVzKCkpCi1AQCAtMzg2LDYgKzM5Miw5IEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFs KElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbSAqCi0g Ci0gICBpZiAoIVJlYWRMYXN0VGFibGVzKCkpCi0gICAgIHJldHVybiBTX0ZBTFNFOwotKwotKyAg X3NvbGlkQWxsb3dlZCA9IHRydWU7Ci0rCi0gICByZXR1cm4gbV9PdXRXaW5kb3dTdHJlYW0uRmx1 c2goKTsKLSB9Ci0gCi1AQCAtNDAyLDcgKzQxMSw3IEBAIFNURE1FVEhPRElNUCBDRGVjb2Rlcjo6 U2V0RGVjb2RlclByb3BlcnRpZXMyKGNvbnN0IEJ5dGUgKmRhdGEsIFVJbnQzMiBzaXplKQotIHsK LSAgIGlmIChzaXplIDwgMSkKLSAgICAgcmV0dXJuIEVfSU5WQUxJREFSRzsKLS0gIG1fSXNTb2xp ZCA9ICgoZGF0YVswXSAmIDEpICE9IDApOwotKyAgX2lzU29saWQgPSAoKGRhdGFbMF0gJiAxKSAh PSAwKTsKLSAgIHJldHVybiBTX09LOwotIH0KLSAKLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21w cmVzcy9SYXIyRGVjb2Rlci5oIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuaAotaW5k ZXggMGU5MDA1Zi4uMzcwYmNlMiAxMDA2NDQKLS0tLSBhL0NQUC83emlwL0NvbXByZXNzL1JhcjJE ZWNvZGVyLmgKLSsrKyBiL0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmgKLUBAIC0xMzgs NyArMTM4LDggQEAgY2xhc3MgQ0RlY29kZXIgOgotICAgQnl0ZSBtX0xhc3RMZXZlbHNba01heFRh YmxlU2l6ZV07Ci0gCi0gICBVSW50NjQgbV9QYWNrU2l6ZTsKLS0gIGJvb2wgbV9Jc1NvbGlkOwot KyAgYm9vbCBfaXNTb2xpZDsKLSsgIGJvb2wgX3NvbGlkQWxsb3dlZDsKLSAgIGJvb2wgbV9UYWJs ZXNPSzsKLSAKLSAgIHZvaWQgSW5pdFN0cnVjdHVyZXMoKTsKLWRpZmYgLS1naXQgYS9DUFAvN3pp cC9Db21wcmVzcy9SYXIzRGVjb2Rlci5jcHAgYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rl ci5jcHAKLWluZGV4IDZjYjhhNmEuLjdiODU4MzMgMTAwNjQ0Ci0tLS0gYS9DUFAvN3ppcC9Db21w cmVzcy9SYXIzRGVjb2Rlci5jcHAKLSsrKyBiL0NQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVy LmNwcAotQEAgLTkyLDcgKzkyLDggQEAgQ0RlY29kZXI6OkNEZWNvZGVyKCk6Ci0gICBfd3JpdHRl bkZpbGVTaXplKDApLAotICAgX3ZtRGF0YSgwKSwKLSAgIF92bUNvZGUoMCksCi0tICBtX0lzU29s aWQoZmFsc2UpLAotKyAgX2lzU29saWQoZmFsc2UpLAotKyAgX3NvbGlkQWxsb3dlZChmYWxzZSks Ci0gICBfZXJyb3JNb2RlKGZhbHNlKQotIHsKLSAgIFBwbWQ3X0NvbnN0cnVjdCgmX3BwbWQpOwot QEAgLTgyMSw3ICs4MjIsNyBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJQ29tcHJlc3NQ cm9ncmVzc0luZm8gKnByb2dyZXNzKQotIHsKLSAgIF93cml0dGVuRmlsZVNpemUgPSAwOwotICAg X3Vuc3VwcG9ydGVkRmlsdGVyID0gZmFsc2U7Ci0tICBpZiAoIW1fSXNTb2xpZCkKLSsgIGlmICgh X2lzU29saWQpCi0gICB7Ci0gICAgIF9selNpemUgPSAwOwotICAgICBfd2luUG9zID0gMDsKLUBA IC04NDAsMTIgKzg0MSwxNSBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJQ29tcHJlc3NQ cm9ncmVzc0luZm8gKnByb2dyZXNzKQotICAgaWYgKF9lcnJvck1vZGUpCi0gICAgIHJldHVybiBT X0ZBTFNFOwotIAotLSAgaWYgKCFtX0lzU29saWQgfHwgIVRhYmxlc1JlYWQpCi0rICBpZiAoIV9p c1NvbGlkIHx8ICFUYWJsZXNSZWFkKQotICAgewotICAgICBib29sIGtlZXBEZWNvbXByZXNzaW5n OwotICAgICBSSU5PSyhSZWFkVGFibGVzKGtlZXBEZWNvbXByZXNzaW5nKSk7Ci0gICAgIGlmICgh a2VlcERlY29tcHJlc3NpbmcpCi0rICAgIHsKLSsgICAgICBfc29saWRBbGxvd2VkID0gdHJ1ZTsK LSAgICAgICByZXR1cm4gU19PSzsKLSsgICAgfQotICAgfQotIAotICAgZm9yICg7OykKLUBAIC04 NzAsNiArODc0LDkgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSUNvbXByZXNzUHJvZ3Jl c3NJbmZvICpwcm9ncmVzcykKLSAgICAgaWYgKCFrZWVwRGVjb21wcmVzc2luZykKLSAgICAgICBi cmVhazsKLSAgIH0KLSsKLSsgIF9zb2xpZEFsbG93ZWQgPSB0cnVlOwotKwotICAgUklOT0soV3Jp dGVCdWYoKSk7Ci0gICBVSW50NjQgcGFja1NpemUgPSBtX0luQml0U3RyZWFtLkJpdERlY29kZXIu R2V0UHJvY2Vzc2VkU2l6ZSgpOwotICAgUklOT0socHJvZ3Jlc3MtPlNldFJhdGlvSW5mbygmcGFj a1NpemUsICZfd3JpdHRlbkZpbGVTaXplKSk7Ci1AQCAtODkwLDYgKzg5NywxMCBAQCBTVERNRVRI T0RJTVAgQ0RlY29kZXI6OkNvZGUoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5TdHJlYW0sIElTZXF1 ZW50aWFsT3V0U3RyZWFtCi0gICAgIGlmICghaW5TaXplKQotICAgICAgIHJldHVybiBFX0lOVkFM SURBUkc7Ci0gCi0rICAgIGlmIChfaXNTb2xpZCAmJiAhX3NvbGlkQWxsb3dlZCkKLSsgICAgICBy ZXR1cm4gU19GQUxTRTsKLSsgICAgX3NvbGlkQWxsb3dlZCA9IGZhbHNlOwotKwotICAgICBpZiAo IV92bURhdGEpCi0gICAgIHsKLSAgICAgICBfdm1EYXRhID0gKEJ5dGUgKik6Ok1pZEFsbG9jKGtW bURhdGFTaXplTWF4ICsga1ZtQ29kZVNpemVNYXgpOwotQEAgLTkyOCw3ICs5MzksNyBAQCBTVERN RVRIT0RJTVAgQ0RlY29kZXI6OlNldERlY29kZXJQcm9wZXJ0aWVzMihjb25zdCBCeXRlICpkYXRh LCBVSW50MzIgc2l6ZSkKLSB7Ci0gICBpZiAoc2l6ZSA8IDEpCi0gICAgIHJldHVybiBFX0lOVkFM SURBUkc7Ci0tICBtX0lzU29saWQgPSAoKGRhdGFbMF0gJiAxKSAhPSAwKTsKLSsgIF9pc1NvbGlk ID0gKChkYXRhWzBdICYgMSkgIT0gMCk7Ci0gICByZXR1cm4gU19PSzsKLSB9Ci0gCi1kaWZmIC0t Z2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuaCBiL0NQUC83emlwL0NvbXByZXNz L1JhcjNEZWNvZGVyLmgKLWluZGV4IDJmNzJkN2QuLjMyYzg5NDMgMTAwNjQ0Ci0tLS0gYS9DUFAv N3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5oCi0rKysgYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIz RGVjb2Rlci5oCi1AQCAtMTkxLDcgKzE5MSw4IEBAIGNsYXNzIENEZWNvZGVyOgotICAgQ1JlY29y ZFZlY3RvcjxDVGVtcEZpbHRlciAqPiAgX3RlbXBGaWx0ZXJzOwotICAgVUludDMyIF9sYXN0Rmls dGVyOwotIAotLSAgYm9vbCBtX0lzU29saWQ7Ci0rICBib29sIF9pc1NvbGlkOwotKyAgYm9vbCBf c29saWRBbGxvd2VkOwotICAgYm9vbCBfZXJyb3JNb2RlOwotIAotICAgYm9vbCBfbHpNb2RlOwot ZGlmZiAtLWdpdCBhL0NQUC83emlwL0NvbXByZXNzL1JhcjVEZWNvZGVyLmNwcCBiL0NQUC83emlw L0NvbXByZXNzL1JhcjVEZWNvZGVyLmNwcAotaW5kZXggZGM4ODMwZi4uYTgyNmQ1YSAxMDA2NDQK LS0tLSBhL0NQUC83emlwL0NvbXByZXNzL1JhcjVEZWNvZGVyLmNwcAotKysrIGIvQ1BQLzd6aXAv Q29tcHJlc3MvUmFyNURlY29kZXIuY3BwCi1AQCAtNzIsNiArNzIsNyBAQCBDRGVjb2Rlcjo6Q0Rl Y29kZXIoKToKLSAgICAgX3dyaXR0ZW5GaWxlU2l6ZSgwKSwKLSAgICAgX2RpY3RTaXplTG9nKDAp LAotICAgICBfaXNTb2xpZChmYWxzZSksCi0rICAgIF9zb2xpZEFsbG93ZWQoZmFsc2UpLAotICAg ICBfd2FzSW5pdChmYWxzZSksCi0gICAgIF9pbnB1dEJ1ZihOVUxMKQotIHsKLUBAIC04MDEsNyAr ODAyLDEwIEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFsKCkKLSAgICovCi0gCi0gICBpZiAo cmVzID09IFNfT0spCi0rICB7Ci0rICAgIF9zb2xpZEFsbG93ZWQgPSB0cnVlOwotICAgICByZXMg PSByZXMyOwotKyAgfQotICAgICAgCi0gICBpZiAocmVzID09IFNfT0sgJiYgX3VucGFja1NpemVf RGVmaW5lZCAmJiBfd3JpdHRlbkZpbGVTaXplICE9IF91bnBhY2tTaXplKQotICAgICByZXR1cm4g U19GQUxTRTsKLUBAIC04MjEsNiArODI1LDEwIEBAIFNURE1FVEhPRElNUCBDRGVjb2Rlcjo6Q29k ZShJU2VxdWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0KLSB7 Ci0gICB0cnkKLSAgIHsKLSsgICAgaWYgKF9pc1NvbGlkICYmICFfc29saWRBbGxvd2VkKQotKyAg ICAgIHJldHVybiBTX0ZBTFNFOwotKyAgICBfc29saWRBbGxvd2VkID0gZmFsc2U7Ci0rCi0gICAg IGlmIChfZGljdFNpemVMb2cgPj0gc2l6ZW9mKHNpemVfdCkgKiA4KQotICAgICAgIHJldHVybiBF X05PVElNUEw7Ci0gCi1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyNURlY29kZXIu aCBiL0NQUC83emlwL0NvbXByZXNzL1JhcjVEZWNvZGVyLmgKLWluZGV4IGIwYTRkZDEuLjNkYjUw MTggMTAwNjQ0Ci0tLS0gYS9DUFAvN3ppcC9Db21wcmVzcy9SYXI1RGVjb2Rlci5oCi0rKysgYi9D UFAvN3ppcC9Db21wcmVzcy9SYXI1RGVjb2Rlci5oCi1AQCAtMjcxLDYgKzI3MSw3IEBAIGNsYXNz IENEZWNvZGVyOgotICAgQnl0ZSBfZGljdFNpemVMb2c7Ci0gICBib29sIF90YWJsZVdhc0ZpbGxl ZDsKLSAgIGJvb2wgX2lzU29saWQ7Ci0rICBib29sIF9zb2xpZEFsbG93ZWQ7Ci0gICBib29sIF93 YXNJbml0OwotIAotICAgVUludDMyIF9yZXBzW2tOdW1SZXBzXTsKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcDd6aXAvcGF0Y2hlcy9DVkUtMjAxNi05Mjk2LnBhdGNoIGIvc3JjcGtncy9wN3ppcC9wYXRj aGVzL0NWRS0yMDE2LTkyOTYucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZi YmIzMzc3MzdlNS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcDd6aXAvcGF0Y2hlcy9DVkUt MjAxNi05Mjk2LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotLS0tIGEvQ1BQ Lzd6aXAvQXJjaGl2ZS83ei83ekluLmNwcAlTdW4gTm92IDIwIDA5OjI5OjQxIDIwMTYKLSsrKyBi L0NQUC83emlwL0FyY2hpdmUvN3ovN3pJbi5jcHAJU3VuIE5vdiAyMCAwOTozMToyMiAyMDE2Ci1A QCAtMTA5Nyw3ICsxMDk3LDggQEAgSFJFU1VMVCBDSW5BcmNoaXZlOjpSZWFkQW5kRGVjb2RlUGFj a2VkU3RyZWFtcygKLSAgICAgICBpZiAoQ3JjQ2FsYyhkYXRhLCB1bnBhY2tTaXplKSAhPSBmb2xk ZXJzLkZvbGRlckNSQ3MuVmFsc1tpXSkKLSAgICAgICAgIFRocm93SW5jb3JyZWN0KCk7Ci0gICB9 Ci0tICBIZWFkZXJzU2l6ZSArPSBmb2xkZXJzLlBhY2tQb3NpdGlvbnNbZm9sZGVycy5OdW1QYWNr U3RyZWFtc107Ci0rICBpZiAoZm9sZGVycy5QYWNrUG9zaXRpb25zKQotKyAgICAgIEhlYWRlcnNT aXplICs9IGZvbGRlcnMuUGFja1Bvc2l0aW9uc1tmb2xkZXJzLk51bVBhY2tTdHJlYW1zXTsKLSAg IHJldHVybiBTX09LOwotIH0KLSAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcDd6aXAvcGF0Y2hlcy9D VkUtMjAxNy0xNzk2OS5wYXRjaCBiL3NyY3BrZ3MvcDd6aXAvcGF0Y2hlcy9DVkUtMjAxNy0xNzk2 OS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWE4MjBhZjczMDY3Li4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9wN3ppcC9wYXRjaGVzL0NWRS0yMDE3LTE3OTY5LnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotRnJvbTogPT91dGYtOD9xP0FudG9pbmVf QmVhdXByPUMzPUE5Pz0gPGFuYXJjYXRAZGViaWFuLm9yZz4KLURhdGU6IFN1biwgMjggSmFuIDIw MTggMjE6MTk6NTAgKzAxMDAKLVN1YmplY3Q6IGJhY2twb3J0IG9mIHRoZSBDVkUtMjAxNy0xNzk2 OSBmaXggZnJvbSA3emlwIDE4LjAwLWJldGEKLQotLS0tCi0gQ1BQLzd6aXAvQ29tcHJlc3MvU2hy aW5rRGVjb2Rlci5jcHAgfCA3ICsrKysrKy0KLSAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21wcmVzcy9TaHJp bmtEZWNvZGVyLmNwcCBiL0NQUC83emlwL0NvbXByZXNzL1Nocmlua0RlY29kZXIuY3BwCi1pbmRl eCA4MGI3ZTY3Li40YWNkY2U1IDEwMDY0NAotLS0tIGEvQ1BQLzd6aXAvQ29tcHJlc3MvU2hyaW5r RGVjb2Rlci5jcHAKLSsrKyBiL0NQUC83emlwL0NvbXByZXNzL1Nocmlua0RlY29kZXIuY3BwCi1A QCAtMTIxLDcgKzEyMSwxMiBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJU2VxdWVudGlh bEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0gKgotICAgICB7Ci0gICAg ICAgX3N0YWNrW2krK10gPSBfc3VmZml4ZXNbY3VyXTsKLSAgICAgICBjdXIgPSBfcGFyZW50c1tj dXJdOwotLSAgICB9Ci0rICAgICAgaWYgKGkgPj0ga051bUl0ZW1zKQotKyAgICAgICAgYnJlYWs7 Ci0rICAgICB9Ci0rCi0rICAgIGlmIChpID49IGtOdW1JdGVtcykKLSsgICAgICBicmVhazsKLSAg ICAgCi0gICAgIF9zdGFja1tpKytdID0gKEJ5dGUpY3VyOwotICAgICBsYXN0Q2hhcjIgPSAoQnl0 ZSljdXI7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3A3emlwL3RlbXBsYXRlIGIvc3JjcGtncy9wN3pp cC90ZW1wbGF0ZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjQyZTI0YWRhZjUyLi4w MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9wN3ppcC90ZW1wbGF0ZQorKysgL2Rldi9udWxsCkBA IC0xLDQ3ICswLDAgQEAKLSMgVGVtcGxhdGUgZmlsZSBmb3IgJ3A3emlwJwotcGtnbmFtZT1wN3pp cAotdmVyc2lvbj0xNi4wMgotcmV2aXNpb249NQotd3Jrc3JjPSIke3BrZ25hbWV9XyR7dmVyc2lv bn0iCi1ob3N0bWFrZWRlcGVuZHM9Inlhc20gbmFzbSIKLXNob3J0X2Rlc2M9IkNvbW1hbmQtbGlu ZSB2ZXJzaW9uIG9mIHRoZSA3emlwIGNvbXByZXNzZWQgZmlsZSBhcmNoaXZlIgotbWFpbnRhaW5l cj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKLWxpY2Vuc2U9IkxHUEwtMi4xLW9y LWxhdGVyIgotaG9tZXBhZ2U9Imh0dHA6Ly9wN3ppcC5zb3VyY2Vmb3JnZS5uZXQvIgotZGlzdGZp bGVzPSIke1NPVVJDRUZPUkdFX1NJVEV9LyR7cGtnbmFtZX0vJHtwa2duYW1lfV8ke3ZlcnNpb259 X3NyY19hbGwudGFyLmJ6MiIKLWNoZWNrc3VtPTVlYjIwYWMwZTI5NDRmNmNiOWMyZDUxZGQ2YzQ1 MTg5NDFjMTg1MzQ3ZDQwODllYTg5MDg3ZmZkZDZlMjM0MWYKLQotQ1hYRkxBR1M9Ii1Xbm8tbmFy cm93aW5nIgotCi1kb19jb25maWd1cmUoKSB7Ci0JY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUi IGluCi0JCWk2ODYqKSBjcCBtYWtlZmlsZS5saW51eF94ODZfYXNtX2djY180LlggbWFrZWZpbGUu bWFjaGluZTs7Ci0JCXg4Nl82NCopIGNwIG1ha2VmaWxlLmxpbnV4X2FtZDY0X2FzbSBtYWtlZmls ZS5tYWNoaW5lOzsKLQkJKikgY3AgbWFrZWZpbGUubGludXhfYW55X2NwdV9nY2NfNC5YIG1ha2Vm aWxlLm1hY2hpbmU7OwotCWVzYWMKLQlzZWQgLWUgInMsZysrLCR7Q1hYfSwiIC1pIG1ha2VmaWxl Lm1hY2hpbmUKLQlzZWQgLWUgInMsZ2NjLCR7Q0N9LCIgLWkgbWFrZWZpbGUubWFjaGluZQotfQot ZG9fYnVpbGQoKSB7Ci0JbWFrZSBhbGwzIE9QVEZMQUdTPSIkQ1hYRkxBR1MiICR7bWFrZWpvYnN9 Ci19Ci1kb19pbnN0YWxsKCkgewotCW1ha2UgaW5zdGFsbCBERVNUX0RJUj0iJHtERVNURElSfSIg REVTVF9IT01FPSIvdXNyIiBcCi0JCURFU1RfTUFOPSIvdXNyL3NoYXJlL21hbiIgXAotCQlERVNU X1NIQVJFX0RPQz0iL3Vzci9zaGFyZS9kb2MvJHtwa2duYW1lfSIKLQlmaW5kICR7REVTVERJUn0v dXNyL3NoYXJlL2RvYy8kcGtnbmFtZSAtdHlwZSBkIC1leGVjIGNobW9kIDc1NSB7fSBcOwotCW1r ZGlyIC1wICR7REVTVERJUn0vdXNyL3NoYXJlL2xpY2Vuc2VzL3A3emlwLwotCW12ICR7REVTVERJ Un0vdXNyL3NoYXJlL2RvYy9wN3ppcC9ET0MvY29weWluZy50eHQgXAotCSAgICR7REVTVERJUn0v dXNyL3NoYXJlL2xpY2Vuc2VzL3A3emlwL0xJQ0VOU0UKLX0KLQotcDd6aXAtdW5yYXJfcGFja2Fn ZSgpIHsKLQlzaG9ydF9kZXNjKz0iIC0gUkFSIHN1cHBvcnQiCi0JbGljZW5zZT0iY3VzdG9tOmZy ZWV3YXJlIgotCWRlcGVuZHM9IiR7c291cmNlcGtnfS0ke3ZlcnNpb259XyR7cmV2aXNpb259Igot CXJlcG9zaXRvcnk9bm9uZnJlZQotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSB1c3IvbGliL3A3 emlwL0NvZGVjcy9SYXIuc28KLQkJdmxpY2Vuc2UgRE9DL3VuUmFyTGljZW5zZS50eHQgTElDRU5T RQotCX0KLX0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcDd6aXAvdXBkYXRlIGIvc3JjcGtncy9wN3pp cC91cGRhdGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0ZWQ0NmQ3NGExYS4uMDAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcDd6aXAvdXBkYXRlCisrKyAvZGV2L251bGwKQEAgLTEg KzAsMCBAQAotcGF0dGVybj0ncDd6aXBfXEtbLlxkXSsnCg== --===============1193121324596829731==--