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.7 required=5.0 tests=ALL_TRUSTED,URIBL_BLACK autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 6447 invoked from network); 18 Apr 2022 13:52:42 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 18 Apr 2022 13:52:42 -0000 Content-Type: multipart/mixed; boundary="===============5926516177359043528==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_bubblewrap=3A_update_to_0=2E5=2E0=2E?= To: ml@inbox.vuxu.org From: UsernameRandomlyGenerated Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Mon, 18 Apr 2022 15:52:42 +0200 List-Id: Message-ID: <20220418135242.AyyC5KRa_cI01W6YZpFJudP9dBBpA3bc_ybWbeIu8OU@z> GitHub notification mails are now in MIME to allow UTF8. --===============5926516177359043528== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgVXNlcm5hbWVSYW5kb21seUdlbmVy YXRlZCBhZ2FpbnN0IG1hc3RlciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRw czovL2dpdGh1Yi5jb20vVXNlcm5hbWVSYW5kb21seUdlbmVyYXRlZC92b2lkLXBhY2thZ2VzIGJ3 cmFwMDUwCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8z MzM3MgoKYnViYmxld3JhcDogdXBkYXRlIHRvIDAuNS4wLgpNdXNsIHByb2JsZW0gc2VlbXMgdG8g YmUgcmVzb2x2ZWQsIHRlc3RlZCBmbGF0cGFrIHN0ZWFtLCBydW5zIGZpbmUuDQoNCg0KPCEtLSBN YXJrIGl0ZW1zIHdpdGggW3hdIHdoZXJlIGFwcGxpY2FibGUgLS0+DQoNCiMjIyMgR2VuZXJhbA0K LSBbIF0gVGhpcyBpcyBhIG5ldyBwYWNrYWdlIGFuZCBpdCBjb25mb3JtcyB0byB0aGUgW3F1YWxp dHkgcmVxdWlyZW1lbnRzXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2th Z2VzL2Jsb2IvbWFzdGVyL01hbnVhbC5tZCNxdWFsaXR5LXJlcXVpcmVtZW50cykNCg0KIyMjIyBI YXZlIHRoZSByZXN1bHRzIG9mIHRoZSBwcm9wb3NlZCBjaGFuZ2VzIGJlZW4gdGVzdGVkPw0KLSBb eF0gSSB1c2UgdGhlIHBhY2thZ2VzIGFmZmVjdGVkIGJ5IHRoZSBwcm9wb3NlZCBjaGFuZ2VzIG9u IGEgcmVndWxhciBiYXNpcyBhbmQgY29uZmlybSB0aGlzIFBSIHdvcmtzIGZvciBtZQ0KLSBbIF0g SSBnZW5lcmFsbHkgZG9uJ3QgdXNlIHRoZSBhZmZlY3RlZCBwYWNrYWdlcyBidXQgYnJpZWZseSB0 ZXN0ZWQgdGhpcyBQUg0KDQo8IS0tDQpJZiBHaXRIdWIgQ0kgY2Fubm90IGJlIHVzZWQgdG8gdmFs aWRhdGUgdGhlIGJ1aWxkIHJlc3VsdCAoZm9yIGV4YW1wbGUsIGlmIHRoZQ0KYnVpbGQgaXMgbGlr ZWx5IHRvIHRha2Ugc2V2ZXJhbCBob3VycyksIG1ha2Ugc3VyZSB0bw0KW3NraXAgQ0ldKGh0dHBz Oi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJ QlVUSU5HLm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24pLg0KV2hlbiBza2lwcGluZyBDSSwgdW5j b21tZW50IGFuZCBmaWxsIG91dCB0aGUgZm9sbG93aW5nIHNlY3Rpb24uDQpOb3RlOiBmb3IgYnVp bGRzIHRoYXQgYXJlIGxpa2VseSB0byBjb21wbGV0ZSBpbiBsZXNzIHRoYW4gMiBob3VycywgaXQg aXMgbm90DQphY2NlcHRhYmxlIHRvIHNraXAgQ0kuDQotLT4NCjwhLS0gDQojIyMjIERvZXMgaXQg YnVpbGQgYW5kIHJ1biBzdWNjZXNzZnVsbHk/IA0KKFBsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25l IG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1cHBvcnRlZCwgYXQgbGVhc3Qgb25lIGNyb3NzIGJ1aWxk LiBNb3JlIGFyZSBiZXR0ZXIuKQ0KLSBbIF0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15 IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIChBUkNILUxJQkMpDQotIFsgXSBJIGJ1aWx0IHRoaXMgUFIg bG9jYWxseSBmb3IgdGhlc2UgYXJjaGl0ZWN0dXJlcyAoaWYgc3VwcG9ydGVkLiBtYXJrIGNyb3Nz YnVpbGRzKToNCiAgLSBbIF0gYWFyY2g2NC1tdXNsDQogIC0gWyBdIGFybXY3bA0KICAtIFsgXSBh cm12NmwtbXVzbA0KLS0+DQoNCgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29t L3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzMzMzcyLnBhdGNoIGlzIGF0dGFjaGVk --===============5926516177359043528== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-bwrap050-33372.patch" RnJvbSA3MDI5Y2FmMDk4NDliYjgzMTgzZTliNjhkZDFkY2U3OGRiNDk0YzNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBVc2VybmFtZVJhbmRvbWx5R2VuZXJhdGVkIDxvdmVydHdpc3Rf d3RAYWxlZWFzLmNvbT4KRGF0ZTogU2F0LCA1IEZlYiAyMDIyIDE3OjUwOjIxICswMTAwClN1Ympl Y3Q6IFtQQVRDSCAxLzJdIG11c2w6IGFkZCByZWFkbGluayBhbmQgcmVhbHBhdGggcGF0Y2hlcywg dXBkYXRlIGhvbWVwYWdlCgotLS0KIHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3JlYWRsaW5rLnBhdGNo IHwgIDQxICsrKysrKysKIHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3JlYWxwYXRoLnBhdGNoIHwgMTg0 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvbXVzbC90ZW1wbGF0ZSAgICAg ICAgICAgICAgIHwgICA2ICstCiAzIGZpbGVzIGNoYW5nZWQsIDIyOCBpbnNlcnRpb25zKCspLCAz IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3Jl YWRsaW5rLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvcmVh bHBhdGgucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9yZWFkbGluay5w YXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL3JlYWRsaW5rLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMDZmMzU5MTY4YTJkCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvcmVhZGxpbmsucGF0Y2gKQEAgLTAsMCArMSw0MSBAQAor ZGlmZiAtLWdpdCBhL3NyYy91bmlzdGQvcmVhZGxpbmsuYyBiL3NyYy91bmlzdGQvcmVhZGxpbmsu YworaW5kZXggYTE1MmQ1MjQuLjMyZjQ1MzdmIDEwMDY0NAorLS0tIGEvc3JjL3VuaXN0ZC9yZWFk bGluay5jCisrKysgYi9zcmMvdW5pc3RkL3JlYWRsaW5rLmMKK0BAIC00LDkgKzQsMTYgQEAKKyAK KyBzc2l6ZV90IHJlYWRsaW5rKGNvbnN0IGNoYXIgKnJlc3RyaWN0IHBhdGgsIGNoYXIgKnJlc3Ry aWN0IGJ1Ziwgc2l6ZV90IGJ1ZnNpemUpCisgeworKwljaGFyIGR1bW15WzFdOworKwlpZiAoIWJ1 ZnNpemUpIHsKKysJCWJ1ZiA9IGR1bW15OworKwkJYnVmc2l6ZSA9IDE7CisrCX0KKyAjaWZkZWYg U1lTX3JlYWRsaW5rCistCXJldHVybiBzeXNjYWxsKFNZU19yZWFkbGluaywgcGF0aCwgYnVmLCBi dWZzaXplKTsKKysJaW50IHIgPSBfX3N5c2NhbGwoU1lTX3JlYWRsaW5rLCBwYXRoLCBidWYsIGJ1 ZnNpemUpOworICNlbHNlCistCXJldHVybiBzeXNjYWxsKFNZU19yZWFkbGlua2F0LCBBVF9GRENX RCwgcGF0aCwgYnVmLCBidWZzaXplKTsKKysJaW50IHIgPSBfX3N5c2NhbGwoU1lTX3JlYWRsaW5r YXQsIEFUX0ZEQ1dELCBwYXRoLCBidWYsIGJ1ZnNpemUpOworICNlbmRpZgorKwlpZiAoYnVmID09 IGR1bW15ICYmIHIgPiAwKSByID0gMDsKKysJcmV0dXJuIF9fc3lzY2FsbF9yZXQocik7CisgfQor ZGlmZiAtLWdpdCBhL3NyYy91bmlzdGQvcmVhZGxpbmthdC5jIGIvc3JjL3VuaXN0ZC9yZWFkbGlu a2F0LmMKK2luZGV4IDlhZjQ1Y2Q1Li5mNzlkM2QxNCAxMDA2NDQKKy0tLSBhL3NyYy91bmlzdGQv cmVhZGxpbmthdC5jCisrKysgYi9zcmMvdW5pc3RkL3JlYWRsaW5rYXQuYworQEAgLTMsNSArMywx MiBAQAorIAorIHNzaXplX3QgcmVhZGxpbmthdChpbnQgZmQsIGNvbnN0IGNoYXIgKnJlc3RyaWN0 IHBhdGgsIGNoYXIgKnJlc3RyaWN0IGJ1Ziwgc2l6ZV90IGJ1ZnNpemUpCisgeworLQlyZXR1cm4g c3lzY2FsbChTWVNfcmVhZGxpbmthdCwgZmQsIHBhdGgsIGJ1ZiwgYnVmc2l6ZSk7CisrCWNoYXIg ZHVtbXlbMV07CisrCWlmICghYnVmc2l6ZSkgeworKwkJYnVmID0gZHVtbXk7CisrCQlidWZzaXpl ID0gMTsKKysJfQorKwlpbnQgciA9IF9fc3lzY2FsbChTWVNfcmVhZGxpbmthdCwgZmQsIHBhdGgs IGJ1ZiwgYnVmc2l6ZSk7CisrCWlmIChidWYgPT0gZHVtbXkgJiYgciA+IDApIHIgPSAwOworKwly ZXR1cm4gX19zeXNjYWxsX3JldChyKTsKKyB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0 Y2hlcy9yZWFscGF0aC5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL3JlYWxwYXRoLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uM2Q0YmM5YWUwNzlkCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvcmVhbHBhdGgucGF0Y2gKQEAg LTAsMCArMSwxODQgQEAKK2RpZmYgLS1naXQgYS9zcmMvbWlzYy9yZWFscGF0aC5jIGIvc3JjL21p c2MvcmVhbHBhdGguYworaW5kZXggZDI3MDhlNTkuLmRiOGI3NGRjIDEwMDY0NAorLS0tIGEvc3Jj L21pc2MvcmVhbHBhdGguYworKysrIGIvc3JjL21pc2MvcmVhbHBhdGguYworQEAgLTEsNDMgKzEs MTU2IEBACisgI2luY2x1ZGUgPHN0ZGxpYi5oPgorICNpbmNsdWRlIDxsaW1pdHMuaD4KKy0jaW5j bHVkZSA8c3lzL3N0YXQuaD4KKy0jaW5jbHVkZSA8ZmNudGwuaD4KKyAjaW5jbHVkZSA8ZXJybm8u aD4KKyAjaW5jbHVkZSA8dW5pc3RkLmg+CisgI2luY2x1ZGUgPHN0cmluZy5oPgorLSNpbmNsdWRl ICJzeXNjYWxsLmgiCisrCisrc3RhdGljIHNpemVfdCBzbGFzaF9sZW4oY29uc3QgY2hhciAqcykK Kyt7CisrCWNvbnN0IGNoYXIgKnMwID0gczsKKysJd2hpbGUgKCpzID09ICcvJykgcysrOworKwly ZXR1cm4gcy1zMDsKKyt9CisgCisgY2hhciAqcmVhbHBhdGgoY29uc3QgY2hhciAqcmVzdHJpY3Qg ZmlsZW5hbWUsIGNoYXIgKnJlc3RyaWN0IHJlc29sdmVkKQorIHsKKy0JaW50IGZkOworLQlzc2l6 ZV90IHI7CistCXN0cnVjdCBzdGF0IHN0MSwgc3QyOworLQljaGFyIGJ1ZlsxNSszKnNpemVvZihp bnQpXTsKKy0JY2hhciB0bXBbUEFUSF9NQVhdOworKwljaGFyIHN0YWNrW1BBVEhfTUFYKzFdOwor KwljaGFyIG91dHB1dFtQQVRIX01BWF07CisrCXNpemVfdCBwLCBxLCBsLCBsMCwgY250PTAsIG51 cD0wOworKwlpbnQgY2hlY2tfZGlyPTA7CisgCisgCWlmICghZmlsZW5hbWUpIHsKKyAJCWVycm5v ID0gRUlOVkFMOworIAkJcmV0dXJuIDA7CisgCX0KKysJbCA9IHN0cm5sZW4oZmlsZW5hbWUsIHNp emVvZiBzdGFjayk7CisrCWlmICghbCkgeworKwkJZXJybm8gPSBFTk9FTlQ7CisrCQlyZXR1cm4g MDsKKysJfQorKwlpZiAobCA+PSBQQVRIX01BWCkgZ290byB0b29sb25nOworKwlwID0gc2l6ZW9m IHN0YWNrIC0gbCAtIDE7CisrCXEgPSAwOworKwltZW1jcHkoc3RhY2srcCwgZmlsZW5hbWUsIGwr MSk7CisrCisrCS8qIE1haW4gbG9vcC4gRWFjaCBpdGVyYXRpb24gcG9wcyB0aGUgbmV4dCBwYXJ0 IGZyb20gc3RhY2sgb2YKKysJICogcmVtYWluaW5nIHBhdGggY29tcG9uZW50cyBhbmQgY29uc3Vt ZXMgYW55IHNsYXNoZXMgdGhhdCBmb2xsb3cuCisrCSAqIElmIG5vdCBhIGxpbmssIGl0J3MgbW92 ZWQgdG8gb3V0cHV0OyBpZiBhIGxpbmssIGNvbnRlbnRzIGFyZQorKwkgKiBwdXNoZWQgdG8gdGhl IHN0YWNrLiAqLworK3Jlc3RhcnQ6CisrCWZvciAoOyA7IHArPXNsYXNoX2xlbihzdGFjaytwKSkg eworKwkJLyogSWYgc3RhY2sgc3RhcnRzIHdpdGggLywgdGhlIHdob2xlIGNvbXBvbmVudCBpcyAv IG9yIC8vCisrCQkgKiBhbmQgdGhlIG91dHB1dCBzdGF0ZSBtdXN0IGJlIHJlc2V0LiAqLworKwkJ aWYgKHN0YWNrW3BdID09ICcvJykgeworKwkJCWNoZWNrX2Rpcj0wOworKwkJCW51cD0wOworKwkJ CXE9MDsKKysJCQlvdXRwdXRbcSsrXSA9ICcvJzsKKysJCQlwKys7CisrCQkJLyogSW5pdGlhbCAv LyBpcyBzcGVjaWFsLiAqLworKwkJCWlmIChzdGFja1twXSA9PSAnLycgJiYgc3RhY2tbcCsxXSAh PSAnLycpCisrCQkJCW91dHB1dFtxKytdID0gJy8nOworKwkJCWNvbnRpbnVlOworKwkJfQorKwor KwkJY2hhciAqeiA9IF9fc3RyY2hybnVsKHN0YWNrK3AsICcvJyk7CisrCQlsMCA9IGwgPSB6LShz dGFjaytwKTsKKyAKKy0JZmQgPSBzeXNfb3BlbihmaWxlbmFtZSwgT19QQVRIfE9fTk9OQkxPQ0t8 T19DTE9FWEVDKTsKKy0JaWYgKGZkIDwgMCkgcmV0dXJuIDA7CistCV9fcHJvY2ZkbmFtZShidWYs IGZkKTsKKysJCWlmICghbCAmJiAhY2hlY2tfZGlyKSBicmVhazsKKyAKKy0JciA9IHJlYWRsaW5r KGJ1ZiwgdG1wLCBzaXplb2YgdG1wIC0gMSk7CistCWlmIChyIDwgMCkgZ290byBlcnI7CistCXRt cFtyXSA9IDA7CisrCQkvKiBTa2lwIGFueSAuIGNvbXBvbmVudCBidXQgcHJlc2VydmUgY2hlY2tf ZGlyIHN0YXR1cy4gKi8KKysJCWlmIChsPT0xICYmIHN0YWNrW3BdPT0nLicpIHsKKysJCQlwICs9 IGw7CisrCQkJY29udGludWU7CisrCQl9CisgCistCWZzdGF0KGZkLCAmc3QxKTsKKy0JciA9IHN0 YXQodG1wLCAmc3QyKTsKKy0JaWYgKHI8MCB8fCBzdDEuc3RfZGV2ICE9IHN0Mi5zdF9kZXYgfHwg c3QxLnN0X2lubyAhPSBzdDIuc3RfaW5vKSB7CistCQlpZiAoIXIpIGVycm5vID0gRUxPT1A7Cist CQlnb3RvIGVycjsKKysJCS8qIENvcHkgbmV4dCBjb21wb25lbnQgb250byBvdXRwdXQgYXQgbGVh c3QgdGVtcG9yYXJpbHksIHRvCisrCQkgKiBjYWxsIHJlYWRsaW5rLCBidXQgd2FpdCB0byBhZHZh bmNlIG91dHB1dCBwb3NpdGlvbiB1bnRpbAorKwkJICogZGV0ZXJtaW5pbmcgaXQncyBub3QgYSBs aW5rLiAqLworKwkJaWYgKHEgJiYgb3V0cHV0W3EtMV0gIT0gJy8nKSB7CisrCQkJaWYgKCFwKSBn b3RvIHRvb2xvbmc7CisrCQkJc3RhY2tbLS1wXSA9ICcvJzsKKysJCQlsKys7CisrCQl9CisrCQlp ZiAocStsID49IFBBVEhfTUFYKSBnb3RvIHRvb2xvbmc7CisrCQltZW1jcHkob3V0cHV0K3EsIHN0 YWNrK3AsIGwpOworKwkJb3V0cHV0W3ErbF0gPSAwOworKwkJcCArPSBsOworKworKwkJaW50IHVw ID0gMDsKKysJCWlmIChsMD09MiAmJiBzdGFja1twLTJdPT0nLicgJiYgc3RhY2tbcC0xXT09Jy4n KSB7CisrCQkJdXAgPSAxOworKwkJCS8qIEFueSBub24tLi4gcGF0aCBjb21wb25lbnRzIHdlIGNv dWxkIGNhbmNlbCBzdGFydAorKwkJCSAqIGFmdGVyIG51cCByZXBldGl0aW9ucyBvZiB0aGUgMy1i eXRlIHN0cmluZyAiLi4vIjsKKysJCQkgKiBpZiB0aGVyZSBhcmUgbm9uZSwgYWNjdW11bGF0ZSAu LiBjb21wb25lbnRzIHRvCisrCQkJICogbGF0ZXIgYXBwbHkgdG8gY3dkLCBpZiBuZWVkZWQuICov CisrCQkJaWYgKHEgPD0gMypudXApIHsKKysJCQkJbnVwKys7CisrCQkJCXEgKz0gbDsKKysJCQkJ Y29udGludWU7CisrCQkJfQorKwkJCS8qIFdoZW4gcHJldmlvdXMgY29tcG9uZW50cyBhcmUgYWxy ZWFkeSBrbm93biB0byBiZQorKwkJCSAqIGRpcmVjdG9yaWVzLCBwcm9jZXNzaW5nIC4uIGNhbiBz a2lwIHJlYWRsaW5rLiAqLworKwkJCWlmICghY2hlY2tfZGlyKSBnb3RvIHNraXBfcmVhZGxpbms7 CisrCQl9CisrCQlzc2l6ZV90IGsgPSByZWFkbGluayhvdXRwdXQsIHN0YWNrLCBwKTsKKysJCWlm IChrPT1wKSBnb3RvIHRvb2xvbmc7CisrCQlpZiAoIWspIHsKKysJCQllcnJubyA9IEVOT0VOVDsK KysJCQlyZXR1cm4gMDsKKysJCX0KKysJCWlmIChrPDApIHsKKysJCQlpZiAoZXJybm8gIT0gRUlO VkFMKSByZXR1cm4gMDsKKytza2lwX3JlYWRsaW5rOgorKwkJCWNoZWNrX2RpciA9IDA7CisrCQkJ aWYgKHVwKSB7CisrCQkJCXdoaWxlKHEgJiYgb3V0cHV0W3EtMV0hPScvJykgcS0tOworKwkJCQlp ZiAocT4xICYmIChxPjIgfHwgb3V0cHV0WzBdIT0nLycpKSBxLS07CisrCQkJCWNvbnRpbnVlOwor KwkJCX0KKysJCQlpZiAobDApIHEgKz0gbDsKKysJCQljaGVja19kaXIgPSBzdGFja1twXTsKKysJ CQljb250aW51ZTsKKysJCX0KKysJCWlmICgrK2NudCA9PSBTWU1MT09QX01BWCkgeworKwkJCWVy cm5vID0gRUxPT1A7CisrCQkJcmV0dXJuIDA7CisrCQl9CisrCisrCQkvKiBJZiBsaW5rIGNvbnRl bnRzIGVuZCBpbiAvLCBzdHJpcCBhbnkgc2xhc2hlcyBhbHJlYWR5IG9uCisrCQkgKiBzdGFjayB0 byBhdm9pZCAvLT4vLyBvciAvLy0+Ly8vIG9yIHNwdXJpb3VzIHRvb2xvbmcuICovCisrCQlpZiAo c3RhY2tbay0xXT09Jy8nKSB3aGlsZSAoc3RhY2tbcF09PScvJykgcCsrOworKwkJcCAtPSBrOwor KwkJbWVtbW92ZShzdGFjaytwLCBzdGFjaywgayk7CisrCisrCQkvKiBTa2lwIHRoZSBzdGFjayBh ZHZhbmNlbWVudCBpbiBjYXNlIHdlIGhhdmUgYSBuZXcKKysJCSAqIGFic29sdXRlIGJhc2UgcGF0 aC4gKi8KKysJCWdvdG8gcmVzdGFydDsKKyAJfQorIAorLQlfX3N5c2NhbGwoU1lTX2Nsb3NlLCBm ZCk7CistCXJldHVybiByZXNvbHZlZCA/IHN0cmNweShyZXNvbHZlZCwgdG1wKSA6IHN0cmR1cCh0 bXApOworLWVycjoKKy0JX19zeXNjYWxsKFNZU19jbG9zZSwgZmQpOworKyAJb3V0cHV0W3FdID0g MDsKKysKKysJaWYgKG91dHB1dFswXSAhPSAnLycpIHsKKysJCWlmICghZ2V0Y3dkKHN0YWNrLCBz aXplb2Ygc3RhY2spKSByZXR1cm4gMDsKKysJCWwgPSBzdHJsZW4oc3RhY2spOworKwkJLyogQ2Fu Y2VsIGFueSBpbml0aWFsIC4uIGNvbXBvbmVudHMuICovCisrCQlwID0gMDsKKysJCXdoaWxlIChu dXAtLSkgeworKwkJCXdoaWxlKGw+MSAmJiBzdGFja1tsLTFdIT0nLycpIGwtLTsKKysJCQlpZiAo bD4xKSBsLS07CisrCQkJcCArPSAyOworKwkJCWlmIChwPHEpIHArKzsKKysJCX0KKysJCWlmIChx LXAgJiYgc3RhY2tbbC0xXSE9Jy8nKSBzdGFja1tsKytdID0gJy8nOworKwkJaWYgKGwgKyAocS1w KSArIDEgPj0gUEFUSF9NQVgpIGdvdG8gdG9vbG9uZzsKKysJCW1lbW1vdmUob3V0cHV0ICsgbCwg b3V0cHV0ICsgcCwgcSAtIHAgKyAxKTsKKysJCW1lbWNweShvdXRwdXQsIHN0YWNrLCBsKTsKKysJ CXEgPSBsICsgcS1wOworKwl9CisrCisrCWlmIChyZXNvbHZlZCkgcmV0dXJuIG1lbWNweShyZXNv bHZlZCwgb3V0cHV0LCBxKzEpOworKwllbHNlIHJldHVybiBzdHJkdXAob3V0cHV0KTsKKysKKyt0 b29sb25nOgorKwllcnJubyA9IEVOQU1FVE9PTE9ORzsKKyAJcmV0dXJuIDA7CisgfQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9tdXNsL3RlbXBsYXRlIGIvc3JjcGtncy9tdXNsL3RlbXBsYXRlCmluZGV4 IGQzMGM5OWE1NjNhMC4uYTczNzk0NTA5MDJjIDEwMDY0NAotLS0gYS9zcmNwa2dzL211c2wvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9tdXNsL3RlbXBsYXRlCkBAIC0yLDcgKzIsNyBAQAogcGtnbmFt ZT1tdXNsCiByZXZlcnRzPSIxLjIuMF8xIgogdmVyc2lvbj0xLjEuMjQKLXJldmlzaW9uPTkKK3Jl dmlzaW9uPTEwCiBhcmNocz0iKi1tdXNsIgogYm9vdHN0cmFwPXllcwogYnVpbGRfc3R5bGU9Z251 LWNvbmZpZ3VyZQpAQCAtMTAsOCArMTAsOCBAQCBjb25maWd1cmVfYXJncz0iLS1wcmVmaXg9L3Vz ciAtLWRpc2FibGUtZ2NjLXdyYXBwZXIiCiBzaG9ydF9kZXNjPSJNdXNsIEMgbGlicmFyeSIKIG1h aW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJN SVQiCi1ob21lcGFnZT0iaHR0cDovL3d3dy5tdXNsLWxpYmMub3JnLyIKLWRpc3RmaWxlcz0iaHR0 cDovL3d3dy5tdXNsLWxpYmMub3JnL3JlbGVhc2VzL211c2wtJHt2ZXJzaW9ufS50YXIuZ3oiCito b21lcGFnZT0iaHR0cHM6Ly9tdXNsLmxpYmMub3JnLyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9tdXNs LmxpYmMub3JnL3JlbGVhc2VzL211c2wtJHt2ZXJzaW9ufS50YXIuZ3oiCiBjaGVja3N1bT0xMzcw YzlhODEyYjJjZjJhN2Q5MjgwMjUxMGNjYTAwNThjYzM3ZTY2YTdiZWRkNzAwNTFmMGEzNDAxNTAy MmEzCiAKIG5vc3RyaXBfZmlsZXM9ImxpYmMuc28iCgpGcm9tIDZiZjM5ZWFkNjJjYjQwYTQ0MDM2 NDAxOTZiZjViZDQ4MDdlNGViMGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFVzZXJu YW1lUmFuZG9tbHlHZW5lcmF0ZWQgPG92ZXJ0d2lzdF93dEBhbGVlYXMuY29tPgpEYXRlOiBTYXQs IDUgRmViIDIwMjIgMTc6NTA6MjggKzAxMDAKU3ViamVjdDogW1BBVENIIDIvMl0gYnViYmxld3Jh cDogdXBkYXRlIHRvIDAuNi4xLgoKLS0tCiAuLi4vZml4LVRFTVBfRkFJTFRVUkVfUkVUUlktbXVz bC5wYXRjaCAgICAgICAgfCAgMTkgLS0KIC4uLi9wYXRjaGVzL3JlYWxwYXRoLXdvcmthcm91bmQu cGF0Y2ggICAgICAgICB8IDI0OSAtLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvYnViYmxld3Jh cC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICB8ICAxMiArLQogMyBmaWxlcyBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDI3NyBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2J1YmJsZXdyYXAvcGF0Y2hlcy9maXgtVEVNUF9GQUlMVFVSRV9SRVRSWS1tdXNsLnBhdGNo CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9idWJibGV3cmFwL3BhdGNoZXMvcmVhbHBhdGgt d29ya2Fyb3VuZC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYnViYmxld3JhcC9wYXRjaGVz L2ZpeC1URU1QX0ZBSUxUVVJFX1JFVFJZLW11c2wucGF0Y2ggYi9zcmNwa2dzL2J1YmJsZXdyYXAv cGF0Y2hlcy9maXgtVEVNUF9GQUlMVFVSRV9SRVRSWS1tdXNsLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAxYWZhOWU0Zjk4MzIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dz L2J1YmJsZXdyYXAvcGF0Y2hlcy9maXgtVEVNUF9GQUlMVFVSRV9SRVRSWS1tdXNsLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotLS0tIGEvYnViYmxld3JhcC5jCi0rKysgYi9i dWJibGV3cmFwLmMKLUBAIC00Miw2ICs0MiwxNiBAQAotICNkZWZpbmUgQ0xPTkVfTkVXQ0dST1VQ IDB4MDIwMDAwMDAgLyogTmV3IGNncm91cCBuYW1lc3BhY2UgKi8KLSAjZW5kaWYKLSAKLSsvKiB0 YWtlbiBmcm9tIGdsaWJjIHVuaXN0ZC5oIGFuZCBmaXhlcyBtdXNsICovCi0rI2lmbmRlZiBURU1Q X0ZBSUxVUkVfUkVUUlkKLSsjZGVmaW5lIFRFTVBfRkFJTFVSRV9SRVRSWShleHByZXNzaW9uKSBc Ci0rICAoX19leHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAgICAoeyBsb25nIGludCBfX3Jlc3VsdDsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAg ICAgZG8gX19yZXN1bHQgPSAobG9uZyBpbnQpIChleHByZXNzaW9uKTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCi0rICAgICAgIHdoaWxlIChfX3Jlc3VsdCA9PSAtMUwgJiYgZXJy bm8gPT0gRUlOVFIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAgICAgICBfX3Jl c3VsdDsgfSkpCi0rI2VuZGlmCi0rCi0gLyogR2xvYmFscyB0byBhdm9pZCBoYXZpbmcgdG8gdXNl IGdldHVpZCgpLCBzaW5jZSB0aGUgdWlkL2dpZCBjaGFuZ2VzIGR1cmluZyBydW50aW1lICovCi0g c3RhdGljIHVpZF90IHJlYWxfdWlkOwotIHN0YXRpYyBnaWRfdCByZWFsX2dpZDsKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvYnViYmxld3JhcC9wYXRjaGVzL3JlYWxwYXRoLXdvcmthcm91bmQucGF0Y2gg Yi9zcmNwa2dzL2J1YmJsZXdyYXAvcGF0Y2hlcy9yZWFscGF0aC13b3JrYXJvdW5kLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NWQxZmQ2MjMxYjYuLjAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2J1YmJsZXdyYXAvcGF0Y2hlcy9yZWFscGF0aC13b3JrYXJvdW5kLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsMjQ5ICswLDAgQEAKLS0tLSAvZGV2L251bGwJMjAyMC0xMC0x OCAwOToyNjozMi4zMTI3NDU3NTUgKzAyMDAKLSsrKyBiL0xJQ0VOU0UucmVhbHBhdGgJMjAyMC0x MC0xOCAxMTowOToxNC4xMTk5MjkwNzYgKzAyMDAKLUBAIC0wLDAgKzEsMjkgQEAKLStDb3B5cmln aHQgKGMpIDE5ODksIDE5OTEsIDE5OTMsIDE5OTUKLSsgICAgIFRoZSBSZWdlbnRzIG9mIHRoZSBV bml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotKwotK1RoaXMg Y29kZSBpcyBkZXJpdmVkIGZyb20gc29mdHdhcmUgY29udHJpYnV0ZWQgdG8gQmVya2VsZXkgYnkK LStKYW4tU2ltb24gUGVuZHJ5LgotKwotK1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotK21vZGlmaWNhdGlvbiwgYXJlIHBl cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotK2FyZSBtZXQ6 Ci0rMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92 ZSBjb3B5cmlnaHQKLSsgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0rMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSsgICBub3RpY2UsIHRoaXMgbGlz dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0rICAg ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp c3RyaWJ1dGlvbi4KLSszLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0 aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwotKyAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQotKyAgIHdpdGhv dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotKwotK1RISVMgU09GVFdBUkUg SVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E Ci0rQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg TElNSVRFRCBUTywgVEhFCi0rSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKLStBUkUgRElTQ0xBSU1FRC4gIElO IE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKLStG T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg T1IgQ09OU0VRVUVOVElBTAotK0RBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCi0rT1IgU0VSVklDRVM7IExPU1MgT0Yg VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCi0rSE9XRVZF UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS QUNULCBTVFJJQ1QKLStMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCi0rT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotK1NVQ0ggREFN QUdFLgotLS0tIGEvYmluZC1tb3VudC5jCTIwMTgtMDktMjYgMTQ6NTU6MTcuMDAwMDAwMDAwICsw MjAwCi0rKysgYi9iaW5kLW1vdW50LmMJMjAyMC0xMC0xOCAxMTowODozNy44MjI5MzE0NTIgKzAy MDAKLUBAIC0yMiw2ICsyMiwxOTggQEAKLSAKLSAjaW5jbHVkZSAidXRpbHMuaCIKLSAjaW5jbHVk ZSAiYmluZC1tb3VudC5oIgotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsjaW5jbHVkZSA8c3RyaW5n Lmg+Ci0rI2luY2x1ZGUgPGxpbWl0cy5oPgotKyNpbmNsdWRlIDx1bmlzdGQuaD4KLSsjaW5jbHVk ZSA8c3lzL3N0YXQuaD4KLSsjaW5jbHVkZSA8ZXJybm8uaD4KLSsjaW5jbHVkZSA8ZmNudGwuaD4K LSsjaW5jbHVkZSA8c3lzL3BhcmFtLmg+Ci0rCi0rI2lmbmRlZiBfX0dMSUJDX18KLSsvKgotKyAq IENvcHlyaWdodCAoYykgMTk4OSwgMTk5MSwgMTk5MywgMTk5NQotKyAqICAgICAgVGhlIFJlZ2Vu dHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu Ci0rICoKLSsgKiBUaGlzIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHNvZnR3YXJlIGNvbnRyaWJ1dGVk IHRvIEJlcmtlbGV5IGJ5Ci0rICogSmFuLVNpbW9uIFBlbmRyeS4KLSsgKgotKyAqIFJlZGlzdHJp YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91 dAotKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs b3dpbmcgY29uZGl0aW9ucwotKyAqIGFyZSBtZXQ6Ci0rICogMS4gUmVkaXN0cmlidXRpb25zIG9m IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSsgKiAgICBub3Rp Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu Ci0rICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo ZSBhYm92ZSBjb3B5cmlnaHQKLSsgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0rICogICAgZG9jdW1lbnRhdGlv biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K LSsgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMg b2YgaXRzIGNvbnRyaWJ1dG9ycwotKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQotKyAqICAgIHdpdGhvdXQg c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotKyAqCi0rICogVEhJUyBTT0ZUV0FS RSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB TkQKLSsgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSsgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotKyAqIEFSRSBESVND TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJF IExJQUJMRQotKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0rICogREFNQUdFUyAoSU5DTFVESU5HLCBC VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKLSsgKiBP UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO VEVSUlVQVElPTikKLSsgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAotKyAqIExJQUJJTElUWSwgT1IgVE9S VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkK LSsgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg VEhFIFBPU1NJQklMSVRZIE9GCi0rICogU1VDSCBEQU1BR0UuCi0rICovCi0rY2hhciAqcmVhbHBh dGhfaW50KGNvbnN0IGNoYXIgKiwgY2hhciopOwotK2NoYXIgKgotK3JlYWxwYXRoX2ludChjb25z dCBjaGFyICogcGF0aCwgY2hhciAqIHJlc29sdmVkKQotK3sKLSsgICAgICAgIHN0cnVjdCBzdGF0 IHNiOwotKyAgICAgICAgaW50IGlkeCA9IDAsIG5sbmsgPSAwOwotKyAgICAgICAgY29uc3QgY2hh ciAqcTsKLSsgICAgICAgIGNoYXIgKnAsIHdidWZbMl1bTUFYUEFUSExFTl0sICpmcmVzOwotKyAg ICAgICAgc2l6ZV90IGxlbjsKLSsgICAgICAgIHNzaXplX3QgbjsKLSsKLSsgICAgICAgIC8qIFBP U0lYIHNleiB3ZSBtdXN0IHRlc3QgZm9yIHRoaXMgKi8KLSsgICAgICAgIGlmIChwYXRoID09IE5V TEwpIHsKLSsgICAgICAgICAgICAgICAgZXJybm8gPSBFSU5WQUw7Ci0rICAgICAgICAgICAgICAg IHJldHVybiBOVUxMOwotKyAgICAgICAgfQotKwotKyAgICAgICAgaWYgKHJlc29sdmVkID09IE5V TEwpIHsKLSsgICAgICAgICAgICAgICAgZnJlcyA9IHJlc29sdmVkID0gbWFsbG9jKE1BWFBBVEhM RU4pOwotKyAgICAgICAgICAgICAgICBpZiAocmVzb2x2ZWQgPT0gTlVMTCkKLSsgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSsgICAgICAgIH0gZWxzZQotKyAgICAgICAgICAg ICAgICBmcmVzID0gTlVMTDsKLSsKLSsKLSsgICAgICAgIC8qCi0rICAgICAgICAgKiBCdWlsZCBy ZWFsIHBhdGggb25lIGJ5IG9uZSB3aXRoIHBheWluZyBhbiBhdHRlbnRpb24gdG8gLiwKLSsgICAg ICAgICAqIC4uIGFuZCBzeW1ib2xpYyBsaW5rLgotKyAgICAgICAgICovCi0rCi0rICAgICAgICAv KgotKyAgICAgICAgICogYHAnIGlzIHdoZXJlIHdlJ2xsIHB1dCBhIG5ldyBjb21wb25lbnQgd2l0 aCBwcmVwZW5kaW5nCi0rICAgICAgICAgKiBhIGRlbGltaXRlci4KLSsgICAgICAgICAqLwotKyAg ICAgICAgcCA9IHJlc29sdmVkOwotKwotKyAgICAgICAgaWYgKCpwYXRoID09ICdcMCcpIHsKLSsg ICAgICAgICAgICAgICAgKnAgPSAnXDAnOwotKyAgICAgICAgICAgICAgICBlcnJubyA9IEVOT0VO VDsKLSsgICAgICAgICAgICAgICAgZ290byBvdXQ7Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICAv KiBJZiByZWxhdGl2ZSBwYXRoLCBzdGFydCBmcm9tIGN1cnJlbnQgd29ya2luZyBkaXJlY3Rvcnku ICovCi0rICAgICAgICBpZiAoKnBhdGggIT0gJy8nKSB7Ci0rICAgICAgICAgICAgICAgIC8qIGNo ZWNrIGZvciByZXNvbHZlZCBwb2ludGVyIHRvIGFwcGVhc2UgY292ZXJpdHkgKi8KLSsgICAgICAg ICAgICAgICAgaWYgKHJlc29sdmVkICYmIGdldGN3ZChyZXNvbHZlZCwgTUFYUEFUSExFTikgPT0g TlVMTCkgewotKyAgICAgICAgICAgICAgICAgICAgICAgIHBbMF0gPSAnLic7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgcFsxXSA9ICdcMCc7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgZ290 byBvdXQ7Ci0rICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgbGVuID0gc3RybGVu KHJlc29sdmVkKTsKLSsgICAgICAgICAgICAgICAgaWYgKGxlbiA+IDEpCi0rICAgICAgICAgICAg ICAgICAgICAgICAgcCArPSBsZW47Ci0rICAgICAgICB9Ci0rCi0rbG9vcDoKLSsgICAgICAgIC8q IFNraXAgYW55IHNsYXNoLiAqLwotKyAgICAgICAgd2hpbGUgKCpwYXRoID09ICcvJykKLSsgICAg ICAgICAgICAgICAgcGF0aCsrOwotKwotKyAgICAgICAgaWYgKCpwYXRoID09ICdcMCcpIHsKLSsg ICAgICAgICAgICAgICAgaWYgKHAgPT0gcmVzb2x2ZWQpCi0rICAgICAgICAgICAgICAgICAgICAg ICAgKnArKyA9ICcvJzsKLSsgICAgICAgICAgICAgICAgKnAgPSAnXDAnOwotKyAgICAgICAgICAg ICAgICByZXR1cm4gcmVzb2x2ZWQ7Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICAvKiBGaW5kIHRo ZSBlbmQgb2YgdGhpcyBjb21wb25lbnQuICovCi0rICAgICAgICBxID0gcGF0aDsKLSsgICAgICAg IGRvCi0rICAgICAgICAgICAgICAgIHErKzsKLSsgICAgICAgIHdoaWxlICgqcSAhPSAnLycgJiYg KnEgIT0gJ1wwJyk7Ci0rCi0rICAgICAgICAvKiBUZXN0IC4gb3IgLi4gKi8KLSsgICAgICAgIGlm IChwYXRoWzBdID09ICcuJykgewotKyAgICAgICAgICAgICAgICBpZiAocSAtIHBhdGggPT0gMSkg ewotKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggPSBxOwotKyAgICAgICAgICAgICAgICAg ICAgICAgIGdvdG8gbG9vcDsKLSsgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICBp ZiAocGF0aFsxXSA9PSAnLicgJiYgcSAtIHBhdGggPT0gMikgewotKyAgICAgICAgICAgICAgICAg ICAgICAgIC8qIFRyaW0gdGhlIGxhc3QgY29tcG9uZW50LiAqLwotKyAgICAgICAgICAgICAgICAg ICAgICAgIGlmIChwICE9IHJlc29sdmVkKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgd2hpbGUgKCotLXAgIT0gJy8nKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb250aW51ZTsKLSsgICAgICAgICAgICAgICAgICAgICAgICBwYXRoID0gcTsKLSsg ICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGxvb3A7Ci0rICAgICAgICAgICAgICAgIH0KLSsg ICAgICAgIH0KLSsKLSsgICAgICAgIC8qIEFwcGVuZCB0aGlzIGNvbXBvbmVudC4gKi8KLSsgICAg ICAgIGlmIChwIC0gcmVzb2x2ZWQgKyAxICsgcSAtIHBhdGggKyAxID4gTUFYUEFUSExFTikgewot KyAgICAgICAgICAgICAgICBlcnJubyA9IEVOQU1FVE9PTE9ORzsKLSsgICAgICAgICAgICAgICAg aWYgKHAgPT0gcmVzb2x2ZWQpCi0rICAgICAgICAgICAgICAgICAgICAgICAgKnArKyA9ICcvJzsK LSsgICAgICAgICAgICAgICAgKnAgPSAnXDAnOwotKyAgICAgICAgICAgICAgICBnb3RvIG91dDsK LSsgICAgICAgIH0KLSsgICAgICAgIHBbMF0gPSAnLyc7Ci0rICAgICAgICBtZW1jcHkoJnBbMV0s IHBhdGgsCi0rICAgICAgICAgICAgLyogTElOVEVEIFdlIGtub3cgcSA+IHBhdGguICovCi0rICAg ICAgICAgICAgcSAtIHBhdGgpOwotKyAgICAgICAgcFsxICsgcSAtIHBhdGhdID0gJ1wwJzsKLSsK LSsgICAgICAgIC8qCi0rICAgICAgICAgKiBJZiB0aGlzIGNvbXBvbmVudCBpcyBhIHN5bWxpbmss IHRvc3MgaXQgYW5kIHByZXBlbmQgbGluawotKyAgICAgICAgICogdGFyZ2V0IHRvIHVucmVzb2x2 ZWQgcGF0aC4KLSsgICAgICAgICAqLwotKyAgICAgICAgaWYgKGxzdGF0KHJlc29sdmVkLCAmc2Ip ID09IC0xKQotKyAgICAgICAgICAgICAgICBnb3RvIG91dDsKLSsKLSsgICAgICAgIGlmIChTX0lT TE5LKHNiLnN0X21vZGUpKSB7Ci0rICAgICAgICAgICAgICAgIGlmIChubG5rKysgPj0gTUFYU1lN TElOS1MpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICBlcnJubyA9IEVMT09QOwotKyAgICAg ICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0OwotKyAgICAgICAgICAgICAgICB9Ci0rICAgICAg ICAgICAgICAgIG4gPSByZWFkbGluayhyZXNvbHZlZCwgd2J1ZltpZHhdLCBzaXplb2Yod2J1Zlsw XSkgLSAxKTsKLSsgICAgICAgICAgICAgICAgaWYgKG4gPCAwKQotKyAgICAgICAgICAgICAgICAg ICAgICAgIGdvdG8gb3V0OwotKyAgICAgICAgICAgICAgICBpZiAobiA9PSAwKSB7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgZXJybm8gPSBFTk9FTlQ7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgZ290byBvdXQ7Ci0rICAgICAgICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgICAgICAgLyog QXBwZW5kIHVucmVzb2x2ZWQgcGF0aCB0byBsaW5rIHRhcmdldCBhbmQgc3dpdGNoIHRvIGl0LiAq LwotKyAgICAgICAgICAgICAgICBpZiAobiArIChsZW4gPSBzdHJsZW4ocSkpICsgMSA+IHNpemVv Zih3YnVmWzBdKSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgIGVycm5vID0gRU5BTUVUT09M T05HOwotKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0OwotKyAgICAgICAgICAgICAg ICB9Ci0rICAgICAgICAgICAgICAgIG1lbWNweSgmd2J1ZltpZHhdW25dLCBxLCBsZW4gKyAxKTsK LSsgICAgICAgICAgICAgICAgcGF0aCA9IHdidWZbaWR4XTsKLSsgICAgICAgICAgICAgICAgaWR4 IF49IDE7Ci0rCi0rICAgICAgICAgICAgICAgIC8qIElmIGFic29sdXRlIHN5bWxpbmssIHN0YXJ0 IGZyb20gcm9vdC4gKi8KLSsgICAgICAgICAgICAgICAgaWYgKCpwYXRoID09ICcvJykKLSsgICAg ICAgICAgICAgICAgICAgICAgICBwID0gcmVzb2x2ZWQ7Ci0rICAgICAgICAgICAgICAgIGdvdG8g bG9vcDsKLSsgICAgICAgIH0KLSsgICAgICAgIGlmICgqcSA9PSAnLycgJiYgIVNfSVNESVIoc2Iu c3RfbW9kZSkpIHsKLSsgICAgICAgICAgICAgICAgZXJybm8gPSBFTk9URElSOwotKyAgICAgICAg ICAgICAgICBnb3RvIG91dDsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIC8qIEFkdmFuY2UgYm90 aCByZXNvbHZlZCBhbmQgdW5yZXNvbHZlZCBwYXRoLiAqLwotKyAgICAgICAgcCArPSAxICsgcSAt IHBhdGg7Ci0rICAgICAgICBwYXRoID0gcTsKLSsgICAgICAgIGdvdG8gbG9vcDsKLStvdXQ6Ci0r ICAgICAgICBmcmVlKGZyZXMpOwotKyAgICAgICAgcmV0dXJuIE5VTEw7Ci0rfQotKyNlbmRpZgot IAotIHN0YXRpYyBjaGFyICoKLSBza2lwX3Rva2VuIChjaGFyICpsaW5lLCBib29sIGVhdF93aGl0 ZXNwYWNlKQotQEAgLTM5NSw5ICs1ODcsMTQgQEAKLSAKLSAgIC8qIFRoZSBtb3VudCBvcGVyYXRp b24gd2lsbCByZXNvbHZlIGFueSBzeW1saW5rcyBpbiB0aGUgZGVzdGluYXRpb24KLSAgICAgIHBh dGgsIHNvIHRvIGZpbmQgaXQgaW4gdGhlIG1vdW50IHRhYmxlIHdlIG5lZWQgdG8gZG8gdGhhdCB0 b28uICovCi0rI2lmZGVmIF9fR0xJQkNfXwotICAgcmVzb2x2ZWRfZGVzdCA9IHJlYWxwYXRoIChk ZXN0LCBOVUxMKTsKLS0gIGlmIChyZXNvbHZlZF9kZXN0ID09IE5VTEwpCi0rI2Vsc2UKLSsgIHJl c29sdmVkX2Rlc3QgPSByZWFscGF0aF9pbnQgKGRlc3QsIE5VTEwpOwotKyNlbmRpZgotKyAgaWYg KHJlc29sdmVkX2Rlc3QgPT0gTlVMTCkgewotICAgICByZXR1cm4gMjsKLSsgIH0KLSAKLSAgIG1v dW50X3RhYiA9IHBhcnNlX21vdW50aW5mbyAocHJvY19mZCwgcmVzb2x2ZWRfZGVzdCk7Ci0gICBp ZiAobW91bnRfdGFiWzBdLm1vdW50cG9pbnQgPT0gTlVMTCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv YnViYmxld3JhcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvYnViYmxld3JhcC90ZW1wbGF0ZQppbmRleCA0 ZGYxZGFjNTkzOTUuLmVhZWRlM2E3MTc4YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9idWJibGV3cmFw L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYnViYmxld3JhcC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2J1YmJsZXdyYXAnCiBwa2duYW1lPWJ1YmJsZXdyYXAK LXZlcnNpb249MC40LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249MC42LjEKK3JldmlzaW9uPTEKIGJ1 aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0ibGlieHNsdCBkb2Nib29r LXhzbCBwa2ctY29uZmlnIgogbWFrZWRlcGVuZHM9ImxpYmNhcC1kZXZlbCIKQEAgLTEwLDEwICsx MCw0IEBAIG1haW50YWluZXI9IkR1bmNhZW4gPGR1bmNhZW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNl bnNlPSJMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vY29u dGFpbmVycy9idWJibGV3cmFwIgogZGlzdGZpbGVzPSIke2hvbWVwYWdlfS9yZWxlYXNlcy9kb3du bG9hZC92JHt2ZXJzaW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 YjljNjliOWIxYzYxYTYwOGYzNDMyNWM4ZTFhNDk1MjI5YmFjZjZlNGEwN2NiYjBjODBjZjdhODE0 ZDdjY2MwMwotCi1wb3N0X2luc3RhbGwoKSB7Ci0JaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0g Im11c2wiIF07IHRoZW4KLQkJdmxpY2Vuc2UgTElDRU5TRS5yZWFscGF0aAotCWZpCi19CitjaGVj a3N1bT05NjA5YzdkYzE2MmJjNjhhYmMyOWFiZmFiNTY2OTM0ZmRjYTM3NTIwYTE1ZWQwMWI2NzVh ZGNmM2E0MzAzMjgyCg== --===============5926516177359043528==--