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 22851 invoked from network); 26 Dec 2023 22:40:44 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 26 Dec 2023 22:40:44 -0000 Content-Type: multipart/mixed; boundary="===============4169126092897631744==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_glibc=3A_fix_memalign_performance_regression?= To: ml@inbox.vuxu.org From: tornaria Reply-to: ml@inbox.vuxu.org Message-ID: Date: Tue, 26 Dec 2023 23:40:44 +0100 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============4169126092897631744== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IHRvcm5hcmlhIGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS90b3JuYXJp YS92b2lkLXBhY2thZ2VzIGdsaWJjCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQt cGFja2FnZXMvcHVsbC80NzkxNAoKZ2xpYmM6IGZpeCBtZW1hbGlnbiBwZXJmb3JtYW5jZSByZWdy ZXNzaW9uCjwhLS0gVW5jb21tZW50IHJlbGV2YW50IHNlY3Rpb25zIGFuZCBkZWxldGUgb3B0aW9u cyB3aGljaCBhcmUgbm90IGFwcGxpY2FibGUgLS0+DQoNClRoZSB1cGdyYWRlIHRvIDIuMzggYnJv dWdodCBhIHZlcnkgc2FkIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24gaW4gc2FnZW1hdGg6DQpgYGAN CiQgdGltZSBweXRob24gLWMgJ2Zyb20gc2FnZS5ncmFwaHMuZ2VuZXJhdG9ycy5kaXN0YW5jZV9y ZWd1bGFyIGltcG9ydCBEb3VibGVHcmFzc21hbm5HcmFwaDsgcHJpbnQoRG91YmxlR3Jhc3NtYW5u R3JhcGgoMiwyKSknDQo8c3RyaW5nPjoxOiBVc2VyV2FybmluZzogUmVzb2x2aW5nIGxhenkgaW1w b3J0IEdGIGR1cmluZyBzdGFydHVwDQo8c3RyaW5nPjoxOiBVc2VyV2FybmluZzogUmVzb2x2aW5n IGxhenkgaW1wb3J0IFZlY3RvclNwYWNlIGR1cmluZyBzdGFydHVwDQpEb3VibGUgR3Jhc3NtYW5u IGdyYXBoICg1LCAyLCAyKQ0KDQpyZWFsCTBtMzAuMTAxcw0KdXNlcgkwbTI5Ljk1OXMNCnN5cwkw bTAuMDYwcw0KYGBgDQp3aGlsZSB0aGUgc2FtZSB0aGluZyBpbiAyLjM2IChvciBhZnRlciB0aGlz IFBSKSB0YWtlcyB+IDEtMiBzZWNvbmRzLg0KDQpUaGFua3MgdG8gQG9yZW82MzkgZm9yIGZpZ3Vy aW5nIG91dCBpdCB3YXMgaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5j Z2k/aWQ9MzA3MjMNCg0KSW5kZWVkLCBhbGwgdGhlIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb25zIEkg d2FzIHNlZWluZyBhcmUgZ29uZSBub3cuDQoNCiMjIyMgVGVzdGluZyB0aGUgY2hhbmdlcw0KLSBJ IHRlc3RlZCB0aGUgY2hhbmdlcyBpbiB0aGlzIFBSOiAqKmJyaWVmbHkqKg0KDQo8IS0tDQojIyMj IE5ldyBwYWNrYWdlDQotIFRoaXMgbmV3IHBhY2thZ2UgY29uZm9ybXMgdG8gdGhlIFtwYWNrYWdl IHJlcXVpcmVtZW50c10oaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdl cy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQjcGFja2FnZS1yZXF1aXJlbWVudHMpOiAqKllF UyoqfCoqTk8qKg0KLS0+DQoNCjwhLS0gTm90ZTogSWYgdGhlIGJ1aWxkIGlzIGxpa2VseSB0byB0 YWtlIG1vcmUgdGhhbiAyIGhvdXJzLCBwbGVhc2UgYWRkIGNpIHNraXAgdGFnIGFzIGRlc2NyaWJl ZCBpbg0KaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21h c3Rlci9DT05UUklCVVRJTkcubWQjY29udGludW91cy1pbnRlZ3JhdGlvbg0KYW5kIHRlc3QgYXQg bGVhc3Qgb25lIG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1cHBvcnRlZCwgYXQgbGVhc3Qgb25lIGNy b3NzIGJ1aWxkLg0KSWdub3JlIHRoaXMgc2VjdGlvbiBpZiB0aGlzIFBSIGlzIG5vdCBza2lwcGlu ZyBDSS4NCi0tPg0KPCEtLQ0KIyMjIyBMb2NhbCBidWlsZCB0ZXN0aW5nDQotIEkgYnVpbHQgdGhp cyBQUiBsb2NhbGx5IGZvciBteSBuYXRpdmUgYXJjaGl0ZWN0dXJlLCAoQVJDSC1MSUJDKQ0KLSBJ IGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgdGhlc2UgYXJjaGl0ZWN0dXJlcyAoaWYgc3VwcG9y dGVkLiBtYXJrIGNyb3NzYnVpbGRzKToNCiAgLSBhYXJjaDY0LW11c2wNCiAgLSBhcm12N2wNCiAg LSBhcm12NmwtbXVzbA0KLS0+DQoKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNv bS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC80NzkxNC5wYXRjaCBpcyBhdHRhY2hlZA== --===============4169126092897631744== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-glibc-47914.patch" RnJvbSA2N2IxYzY4ZjFkN2JkN2YzNDNlOTc3OGYzYTE5YzE0OTVlMTUxMTZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R29uemFsbz0yMFRvcm5hcj1DMz1BRGE/PSA8 dG9ybmFyaWFAY21hdC5lZHUudXk+CkRhdGU6IFR1ZSwgMjYgRGVjIDIwMjMgMTk6Mjg6MzkgLTAz MDAKU3ViamVjdDogW1BBVENIXSBnbGliYzogZml4IG1lbWFsaWduIHBlcmZvcm1hbmNlIHJlZ3Jl c3Npb24KCi0tLQogLi4uMTEwNTg1MjU2OGMzZWJjNzEyMjI1YWU3OGI4YzhiYTMxYTc4LnBhdGNo IHwgMjk2ICsrKysrKysrKysrKysrKysrKwogLi4uZmMxY2YwOTQ0MDZhMTM4ZTRkMWJjZjk1NTNl NTllZGNmODlkLnBhdGNoIHwgMjUyICsrKysrKysrKysrKysrKwogc3JjcGtncy9nbGliYy90ZW1w bGF0ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiAzIGZpbGVzIGNoYW5nZWQsIDU0 OSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9nbGliYy9wYXRjaGVzLzMwNzIzLTEtNTQyYjExMDU4NTI1NjhjM2ViYzcxMjIyNWFlNzhiOGM4 YmEzMWE3OC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy8z MDcyMy0yLTBkYzdmYzFjZjA5NDQwNmExMzhlNGQxYmNmOTU1M2U1OWVkY2Y4OWQucGF0Y2gKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvMzA3MjMtMS01NDJiMTEwNTg1MjU2OGMz ZWJjNzEyMjI1YWU3OGI4YzhiYTMxYTc4LnBhdGNoIGIvc3JjcGtncy9nbGliYy9wYXRjaGVzLzMw NzIzLTEtNTQyYjExMDU4NTI1NjhjM2ViYzcxMjIyNWFlNzhiOGM4YmEzMWE3OC5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi41NmQ1ZDQ3YzAzMWEwCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9nbGliYy9wYXRjaGVzLzMwNzIzLTEtNTQyYjExMDU4NTI1 NjhjM2ViYzcxMjIyNWFlNzhiOGM4YmEzMWE3OC5wYXRjaApAQCAtMCwwICsxLDI5NiBAQAorRnJv bSA1NDJiMTEwNTg1MjU2OGMzZWJjNzEyMjI1YWU3OGI4YzhiYTMxYTc4IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0Rh dGU6IEZyaSwgMTEgQXVnIDIwMjMgMTE6MTg6MTcgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gbWFs bG9jOiBFbmFibGUgbWVyZ2luZyBvZiByZW1haW5kZXJzIGluIG1lbWFsaWduIChidWcgMzA3MjMp CisKK1ByZXZpb3VzbHksIGNhbGxpbmcgX2ludF9mcmVlIGZyb20gX2ludF9tZW1hbGlnbiBjb3Vs ZCBwdXQgcmVtYWluZGVycworaW50byB0aGUgdGNhY2hlIG9yIGludG8gZmFzdGJpbnMsIHdoZXJl IHRoZXkgYXJlIGludmlzaWJsZSB0byB0aGUKK2xvdy1sZXZlbCBhbGxvY2F0b3IuICBUaGlzIHJl c3VsdHMgaW4gbWlzc2VkIG1lcmdlIG9wcG9ydHVuaXRpZXMKK2JlY2F1c2Ugb25jZSB0aGVzZSBm cmVlZCBjaHVua3MgYmVjb21lIGF2YWlsYWJsZSB0byB0aGUgbG93LWxldmVsCithbGxvY2F0b3Is IGZ1cnRoZXIgbWVtYWxpZ24gYWxsb2NhdGlvbnMgKGV2ZW4gb2YgdGhlIHNhbWUgc2l6ZSBhcmUp CitsaWtlbHkgb2JzdHJ1Y3RpbmcgbWVyZ2VzLgorCitGdXJ0aGVybW9yZSwgZHVyaW5nIGZvcndh cmRzIG1lcmdpbmcgaW4gX2ludF9tZW1hbGlnbiwgZG8gbm90Citjb21wbGV0ZWx5IGdpdmUgdXAg d2hlbiB0aGUgcmVtYWluZGVyIGlzIHRvbyBzbWFsbCB0byBzZXJ2ZSBhcyBhCitjaHVuayBvbiBp dHMgb3duLiAgV2UgY2FuIHN0aWxsIGdpdmUgaXQgYmFjayBpZiBpdCBjYW4gYmUgbWVyZ2VkCit3 aXRoIHRoZSBmb2xsb3dpbmcgdW51c2VkIGNodW5rLiAgVGhpcyBtYWtlcyBpdCBtb3JlIGxpa2Vs eSB0aGF0CittZW1hbGlnbiBjYWxscyBpbiBhIGxvb3AgYWNoaWV2ZSBhIGNvbXBhY3QgbWVtb3J5 IGxheW91dCwKK2luZGVwZW5kZW50bHkgb2YgaW5pdGlhbCBoZWFwIGxheW91dC4KKworRHJvcCBz b21lIHVzZWxlc3MgKHVuc2lnbmVkIGxvbmcpIGNhc3RzIGFsb25nIHRoZSB3YXksIGFuZCB0d2Vh awordGhlIHN0eWxlIHRvIG1vcmUgY2xvc2VseSBtYXRjaCBHTlUgb24gY2hhbmdlZCBsaW5lcy4K KworUmV2aWV3ZWQtYnk6IERKIERlbG9yaWUgPGRqQHJlZGhhdC5jb20+CistLS0KKyBtYWxsb2Mv bWFsbG9jLmMgfCAxOTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDEyMSBpbnNlcnRpb25zKCspLCA3NiBkZWxldGlvbnMo LSkKKworZGlmZiAtLWdpdCBhL21hbGxvYy9tYWxsb2MuYyBiL21hbGxvYy9tYWxsb2MuYworaW5k ZXggZTJmMWE2MTVhNC4uOTQ4Zjk3NTlhZiAxMDA2NDQKKy0tLSBhL21hbGxvYy9tYWxsb2MuYwor KysrIGIvbWFsbG9jL21hbGxvYy5jCitAQCAtMTA4Niw2ICsxMDg2LDExIEBAIHR5cGVkZWYgc3Ry dWN0IG1hbGxvY19jaHVuayogbWNodW5rcHRyOworIAorIHN0YXRpYyB2b2lkKiAgX2ludF9tYWxs b2MobXN0YXRlLCBzaXplX3QpOworIHN0YXRpYyB2b2lkICAgICBfaW50X2ZyZWUobXN0YXRlLCBt Y2h1bmtwdHIsIGludCk7Cisrc3RhdGljIHZvaWQgX2ludF9mcmVlX21lcmdlX2NodW5rIChtc3Rh dGUsIG1jaHVua3B0ciwgSU5URVJOQUxfU0laRV9UKTsKKytzdGF0aWMgSU5URVJOQUxfU0laRV9U IF9pbnRfZnJlZV9jcmVhdGVfY2h1bmsgKG1zdGF0ZSwKKysJCQkJCSAgICAgICBtY2h1bmtwdHIs IElOVEVSTkFMX1NJWkVfVCwKKysJCQkJCSAgICAgICBtY2h1bmtwdHIsIElOVEVSTkFMX1NJWkVf VCk7Cisrc3RhdGljIHZvaWQgX2ludF9mcmVlX21heWJlX2NvbnNvbGlkYXRlIChtc3RhdGUsIElO VEVSTkFMX1NJWkVfVCk7Cisgc3RhdGljIHZvaWQqICBfaW50X3JlYWxsb2MobXN0YXRlLCBtY2h1 bmtwdHIsIElOVEVSTkFMX1NJWkVfVCwKKyAJCQkgICBJTlRFUk5BTF9TSVpFX1QpOworIHN0YXRp YyB2b2lkKiAgX2ludF9tZW1hbGlnbihtc3RhdGUsIHNpemVfdCwgc2l6ZV90KTsKK0BAIC00NjM3 LDMxICs0NjQyLDUyIEBAIF9pbnRfZnJlZSAobXN0YXRlIGF2LCBtY2h1bmtwdHIgcCwgaW50IGhh dmVfbG9jaykKKyAgICAgaWYgKCFoYXZlX2xvY2spCisgICAgICAgX19saWJjX2xvY2tfbG9jayAo YXYtPm11dGV4KTsKKyAKKy0gICAgbmV4dGNodW5rID0gY2h1bmtfYXRfb2Zmc2V0KHAsIHNpemUp OworLQorLSAgICAvKiBMaWdodHdlaWdodCB0ZXN0czogY2hlY2sgd2hldGhlciB0aGUgYmxvY2sg aXMgYWxyZWFkeSB0aGUKKy0gICAgICAgdG9wIGJsb2NrLiAgKi8KKy0gICAgaWYgKF9fZ2xpYmNf dW5saWtlbHkgKHAgPT0gYXYtPnRvcCkpCistICAgICAgbWFsbG9jX3ByaW50ZXJyICgiZG91Ymxl IGZyZWUgb3IgY29ycnVwdGlvbiAodG9wKSIpOworLSAgICAvKiBPciB3aGV0aGVyIHRoZSBuZXh0 IGNodW5rIGlzIGJleW9uZCB0aGUgYm91bmRhcmllcyBvZiB0aGUgYXJlbmEuICAqLworLSAgICBp ZiAoX19idWlsdGluX2V4cGVjdCAoY29udGlndW91cyAoYXYpCistCQkJICAmJiAoY2hhciAqKSBu ZXh0Y2h1bmsKKy0JCQkgID49ICgoY2hhciAqKSBhdi0+dG9wICsgY2h1bmtzaXplKGF2LT50b3Ap KSwgMCkpCistCW1hbGxvY19wcmludGVyciAoImRvdWJsZSBmcmVlIG9yIGNvcnJ1cHRpb24gKG91 dCkiKTsKKy0gICAgLyogT3Igd2hldGhlciB0aGUgYmxvY2sgaXMgYWN0dWFsbHkgbm90IG1hcmtl ZCB1c2VkLiAgKi8KKy0gICAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKCFwcmV2X2ludXNlKG5leHRj aHVuaykpKQorLSAgICAgIG1hbGxvY19wcmludGVyciAoImRvdWJsZSBmcmVlIG9yIGNvcnJ1cHRp b24gKCFwcmV2KSIpOworLQorLSAgICBuZXh0c2l6ZSA9IGNodW5rc2l6ZShuZXh0Y2h1bmspOwor LSAgICBpZiAoX19idWlsdGluX2V4cGVjdCAoY2h1bmtzaXplX25vbWFzayAobmV4dGNodW5rKSA8 PSBDSFVOS19IRFJfU1osIDApCistCXx8IF9fYnVpbHRpbl9leHBlY3QgKG5leHRzaXplID49IGF2 LT5zeXN0ZW1fbWVtLCAwKSkKKy0gICAgICBtYWxsb2NfcHJpbnRlcnIgKCJmcmVlKCk6IGludmFs aWQgbmV4dCBzaXplIChub3JtYWwpIik7CisrICAgIF9pbnRfZnJlZV9tZXJnZV9jaHVuayAoYXYs IHAsIHNpemUpOworIAorLSAgICBmcmVlX3BlcnR1cmIgKGNodW5rMm1lbShwKSwgc2l6ZSAtIENI VU5LX0hEUl9TWik7CisrICAgIGlmICghaGF2ZV9sb2NrKQorKyAgICAgIF9fbGliY19sb2NrX3Vu bG9jayAoYXYtPm11dGV4KTsKKysgIH0KKysgIC8qCisrICAgIElmIHRoZSBjaHVuayB3YXMgYWxs b2NhdGVkIHZpYSBtbWFwLCByZWxlYXNlIHZpYSBtdW5tYXAoKS4KKysgICovCisrCisrICBlbHNl IHsKKysgICAgbXVubWFwX2NodW5rIChwKTsKKysgIH0KKyt9CisrCisrLyogVHJ5IHRvIG1lcmdl IGNodW5rIFAgb2YgU0laRSBieXRlcyB3aXRoIGl0cyBuZWlnaGJvcnMuICBQdXQgdGhlCisrICAg cmVzdWx0aW5nIGNodW5rIG9uIHRoZSBhcHByb3ByaWF0ZSBiaW4gbGlzdC4gIFAgbXVzdCBub3Qg YmUgb24gYQorKyAgIGJpbiBsaXN0IHlldCwgYW5kIGl0IGNhbiBiZSBpbiB1c2UuICAqLworK3N0 YXRpYyB2b2lkCisrX2ludF9mcmVlX21lcmdlX2NodW5rIChtc3RhdGUgYXYsIG1jaHVua3B0ciBw LCBJTlRFUk5BTF9TSVpFX1Qgc2l6ZSkKKyt7CisrICBtY2h1bmtwdHIgbmV4dGNodW5rID0gY2h1 bmtfYXRfb2Zmc2V0KHAsIHNpemUpOworKworKyAgLyogTGlnaHR3ZWlnaHQgdGVzdHM6IGNoZWNr IHdoZXRoZXIgdGhlIGJsb2NrIGlzIGFscmVhZHkgdGhlCisrICAgICB0b3AgYmxvY2suICAqLwor KyAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKHAgPT0gYXYtPnRvcCkpCisrICAgIG1hbGxvY19wcmlu dGVyciAoImRvdWJsZSBmcmVlIG9yIGNvcnJ1cHRpb24gKHRvcCkiKTsKKysgIC8qIE9yIHdoZXRo ZXIgdGhlIG5leHQgY2h1bmsgaXMgYmV5b25kIHRoZSBib3VuZGFyaWVzIG9mIHRoZSBhcmVuYS4g ICovCisrICBpZiAoX19idWlsdGluX2V4cGVjdCAoY29udGlndW91cyAoYXYpCisrCQkJJiYgKGNo YXIgKikgbmV4dGNodW5rCisrCQkJPj0gKChjaGFyICopIGF2LT50b3AgKyBjaHVua3NpemUoYXYt PnRvcCkpLCAwKSkKKysgICAgbWFsbG9jX3ByaW50ZXJyICgiZG91YmxlIGZyZWUgb3IgY29ycnVw dGlvbiAob3V0KSIpOworKyAgLyogT3Igd2hldGhlciB0aGUgYmxvY2sgaXMgYWN0dWFsbHkgbm90 IG1hcmtlZCB1c2VkLiAgKi8KKysgIGlmIChfX2dsaWJjX3VubGlrZWx5ICghcHJldl9pbnVzZShu ZXh0Y2h1bmspKSkKKysgICAgbWFsbG9jX3ByaW50ZXJyICgiZG91YmxlIGZyZWUgb3IgY29ycnVw dGlvbiAoIXByZXYpIik7CisrCisrICBJTlRFUk5BTF9TSVpFX1QgbmV4dHNpemUgPSBjaHVua3Np emUobmV4dGNodW5rKTsKKysgIGlmIChfX2J1aWx0aW5fZXhwZWN0IChjaHVua3NpemVfbm9tYXNr IChuZXh0Y2h1bmspIDw9IENIVU5LX0hEUl9TWiwgMCkKKysgICAgICB8fCBfX2J1aWx0aW5fZXhw ZWN0IChuZXh0c2l6ZSA+PSBhdi0+c3lzdGVtX21lbSwgMCkpCisrICAgIG1hbGxvY19wcmludGVy ciAoImZyZWUoKTogaW52YWxpZCBuZXh0IHNpemUgKG5vcm1hbCkiKTsKKysKKysgIGZyZWVfcGVy dHVyYiAoY2h1bmsybWVtKHApLCBzaXplIC0gQ0hVTktfSERSX1NaKTsKKyAKKy0gICAgLyogY29u c29saWRhdGUgYmFja3dhcmQgKi8KKy0gICAgaWYgKCFwcmV2X2ludXNlKHApKSB7CistICAgICAg cHJldnNpemUgPSBwcmV2X3NpemUgKHApOworKyAgLyogQ29uc29saWRhdGUgYmFja3dhcmQuICAq LworKyAgaWYgKCFwcmV2X2ludXNlKHApKQorKyAgICB7CisrICAgICAgSU5URVJOQUxfU0laRV9U IHByZXZzaXplID0gcHJldl9zaXplIChwKTsKKyAgICAgICBzaXplICs9IHByZXZzaXplOworICAg ICAgIHAgPSBjaHVua19hdF9vZmZzZXQocCwgLSgobG9uZykgcHJldnNpemUpKTsKKyAgICAgICBp ZiAoX19nbGliY191bmxpa2VseSAoY2h1bmtzaXplKHApICE9IHByZXZzaXplKSkKK0BAIC00NjY5 LDkgKzQ2OTUsMjUgQEAgX2ludF9mcmVlIChtc3RhdGUgYXYsIG1jaHVua3B0ciBwLCBpbnQgaGF2 ZV9sb2NrKQorICAgICAgIHVubGlua19jaHVuayAoYXYsIHApOworICAgICB9CisgCistICAgIGlm IChuZXh0Y2h1bmsgIT0gYXYtPnRvcCkgeworKyAgLyogV3JpdGUgdGhlIGNodW5rIGhlYWRlciwg bWF5YmUgYWZ0ZXIgbWVyZ2luZyB3aXRoIHRoZSBmb2xsb3dpbmcgY2h1bmsuICAqLworKyAgc2l6 ZSA9IF9pbnRfZnJlZV9jcmVhdGVfY2h1bmsgKGF2LCBwLCBzaXplLCBuZXh0Y2h1bmssIG5leHRz aXplKTsKKysgIF9pbnRfZnJlZV9tYXliZV9jb25zb2xpZGF0ZSAoYXYsIHNpemUpOworK30KKysK KysvKiBDcmVhdGUgYSBjaHVuayBhdCBQIG9mIFNJWkUgYnl0ZXMsIHdpdGggU0laRSBwb3RlbnRp YWxseSBpbmNyZWFzZWQKKysgICB0byBjb3ZlciB0aGUgaW1tZWRpYXRlbHkgZm9sbG93aW5nIGNo dW5rIE5FWFRDSFVOSyBvZiBORVhUU0laRQorKyAgIGJ5dGVzIChpZiBORVhUQ0hVTksgaXMgdW51 c2VkKS4gIFRoZSBjaHVuayBhdCBQIGlzIG5vdCBhY3R1YWxseQorKyAgIHJlYWQgYW5kIGRvZXMg bm90IGhhdmUgdG8gYmUgaW5pdGlhbGl6ZWQuICBBZnRlciBjcmVhdGlvbiwgaXQgaXMKKysgICBw bGFjZWQgb24gdGhlIGFwcHJvcHJpYXRlIGJpbiBsaXN0LiAgVGhlIGZ1bmN0aW9uIHJldHVybnMg dGhlIHNpemUKKysgICBvZiB0aGUgbmV3IGNodW5rLiAgKi8KKytzdGF0aWMgSU5URVJOQUxfU0la RV9UCisrX2ludF9mcmVlX2NyZWF0ZV9jaHVuayAobXN0YXRlIGF2LCBtY2h1bmtwdHIgcCwgSU5U RVJOQUxfU0laRV9UIHNpemUsCisrCQkJbWNodW5rcHRyIG5leHRjaHVuaywgSU5URVJOQUxfU0la RV9UIG5leHRzaXplKQorK3sKKysgIGlmIChuZXh0Y2h1bmsgIT0gYXYtPnRvcCkKKysgICAgewor ICAgICAgIC8qIGdldCBhbmQgY2xlYXIgaW51c2UgYml0ICovCistICAgICAgbmV4dGludXNlID0g aW51c2VfYml0X2F0X29mZnNldChuZXh0Y2h1bmssIG5leHRzaXplKTsKKysgICAgICBib29sIG5l eHRpbnVzZSA9IGludXNlX2JpdF9hdF9vZmZzZXQgKG5leHRjaHVuaywgbmV4dHNpemUpOworIAor ICAgICAgIC8qIGNvbnNvbGlkYXRlIGZvcndhcmQgKi8KKyAgICAgICBpZiAoIW5leHRpbnVzZSkg eworQEAgLTQ2ODYsOCArNDcyOCw4IEBAIF9pbnRfZnJlZSAobXN0YXRlIGF2LCBtY2h1bmtwdHIg cCwgaW50IGhhdmVfbG9jaykKKyAJYmVlbiBnaXZlbiBvbmUgY2hhbmNlIHRvIGJlIHVzZWQgaW4g bWFsbG9jLgorICAgICAgICovCisgCistICAgICAgYmNrID0gdW5zb3J0ZWRfY2h1bmtzKGF2KTsK Ky0gICAgICBmd2QgPSBiY2stPmZkOworKyAgICAgIG1jaHVua3B0ciBiY2sgPSB1bnNvcnRlZF9j aHVua3MgKGF2KTsKKysgICAgICBtY2h1bmtwdHIgZndkID0gYmNrLT5mZDsKKyAgICAgICBpZiAo X19nbGliY191bmxpa2VseSAoZndkLT5iayAhPSBiY2spKQorIAltYWxsb2NfcHJpbnRlcnIgKCJm cmVlKCk6IGNvcnJ1cHRlZCB1bnNvcnRlZCBjaHVua3MiKTsKKyAgICAgICBwLT5mZCA9IGZ3ZDsK K0BAIC00NzA2LDYxICs0NzQ4LDUyIEBAIF9pbnRfZnJlZSAobXN0YXRlIGF2LCBtY2h1bmtwdHIg cCwgaW50IGhhdmVfbG9jaykKKyAgICAgICBjaGVja19mcmVlX2NodW5rKGF2LCBwKTsKKyAgICAg fQorIAorLSAgICAvKgorLSAgICAgIElmIHRoZSBjaHVuayBib3JkZXJzIHRoZSBjdXJyZW50IGhp Z2ggZW5kIG9mIG1lbW9yeSwKKy0gICAgICBjb25zb2xpZGF0ZSBpbnRvIHRvcAorLSAgICAqLwor LQorLSAgICBlbHNlIHsKKysgIGVsc2UKKysgICAgeworKyAgICAgIC8qIElmIHRoZSBjaHVuayBi b3JkZXJzIHRoZSBjdXJyZW50IGhpZ2ggZW5kIG9mIG1lbW9yeSwKKysJIGNvbnNvbGlkYXRlIGlu dG8gdG9wLiAgKi8KKyAgICAgICBzaXplICs9IG5leHRzaXplOworICAgICAgIHNldF9oZWFkKHAs IHNpemUgfCBQUkVWX0lOVVNFKTsKKyAgICAgICBhdi0+dG9wID0gcDsKKyAgICAgICBjaGVja19j aHVuayhhdiwgcCk7CisgICAgIH0KKyAKKy0gICAgLyoKKy0gICAgICBJZiBmcmVlaW5nIGEgbGFy Z2Ugc3BhY2UsIGNvbnNvbGlkYXRlIHBvc3NpYmx5LXN1cnJvdW5kaW5nCistICAgICAgY2h1bmtz LiBUaGVuLCBpZiB0aGUgdG90YWwgdW51c2VkIHRvcG1vc3QgbWVtb3J5IGV4Y2VlZHMgdHJpbQor LSAgICAgIHRocmVzaG9sZCwgYXNrIG1hbGxvY190cmltIHRvIHJlZHVjZSB0b3AuCistCistICAg ICAgVW5sZXNzIG1heF9mYXN0IGlzIDAsIHdlIGRvbid0IGtub3cgaWYgdGhlcmUgYXJlIGZhc3Ri aW5zCistICAgICAgYm9yZGVyaW5nIHRvcCwgc28gd2UgY2Fubm90IHRlbGwgZm9yIHN1cmUgd2hl dGhlciB0aHJlc2hvbGQKKy0gICAgICBoYXMgYmVlbiByZWFjaGVkIHVubGVzcyBmYXN0YmlucyBh cmUgY29uc29saWRhdGVkLiAgQnV0IHdlCistICAgICAgZG9uJ3Qgd2FudCB0byBjb25zb2xpZGF0 ZSBvbiBlYWNoIGZyZWUuICBBcyBhIGNvbXByb21pc2UsCistICAgICAgY29uc29saWRhdGlvbiBp cyBwZXJmb3JtZWQgaWYgRkFTVEJJTl9DT05TT0xJREFUSU9OX1RIUkVTSE9MRAorLSAgICAgIGlz IHJlYWNoZWQuCistICAgICovCisrICByZXR1cm4gc2l6ZTsKKyt9CisgCistICAgIGlmICgodW5z aWduZWQgbG9uZykoc2l6ZSkgPj0gRkFTVEJJTl9DT05TT0xJREFUSU9OX1RIUkVTSE9MRCkgewor Ky8qIElmIGZyZWVpbmcgYSBsYXJnZSBzcGFjZSwgY29uc29saWRhdGUgcG9zc2libHktc3Vycm91 bmRpbmcKKysgICBjaHVua3MuICBUaGVuLCBpZiB0aGUgdG90YWwgdW51c2VkIHRvcG1vc3QgbWVt b3J5IGV4Y2VlZHMgdHJpbQorKyAgIHRocmVzaG9sZCwgYXNrIG1hbGxvY190cmltIHRvIHJlZHVj ZSB0b3AuICAqLworK3N0YXRpYyB2b2lkCisrX2ludF9mcmVlX21heWJlX2NvbnNvbGlkYXRlICht c3RhdGUgYXYsIElOVEVSTkFMX1NJWkVfVCBzaXplKQorK3sKKysgIC8qIFVubGVzcyBtYXhfZmFz dCBpcyAwLCB3ZSBkb24ndCBrbm93IGlmIHRoZXJlIGFyZSBmYXN0YmlucworKyAgICAgYm9yZGVy aW5nIHRvcCwgc28gd2UgY2Fubm90IHRlbGwgZm9yIHN1cmUgd2hldGhlciB0aHJlc2hvbGQgaGFz CisrICAgICBiZWVuIHJlYWNoZWQgdW5sZXNzIGZhc3RiaW5zIGFyZSBjb25zb2xpZGF0ZWQuICBC dXQgd2UgZG9uJ3Qgd2FudAorKyAgICAgdG8gY29uc29saWRhdGUgb24gZWFjaCBmcmVlLiAgQXMg YSBjb21wcm9taXNlLCBjb25zb2xpZGF0aW9uIGlzCisrICAgICBwZXJmb3JtZWQgaWYgRkFTVEJJ Tl9DT05TT0xJREFUSU9OX1RIUkVTSE9MRCBpcyByZWFjaGVkLiAgKi8KKysgIGlmIChzaXplID49 IEZBU1RCSU5fQ09OU09MSURBVElPTl9USFJFU0hPTEQpCisrICAgIHsKKyAgICAgICBpZiAoYXRv bWljX2xvYWRfcmVsYXhlZCAoJmF2LT5oYXZlX2Zhc3RjaHVua3MpKQorIAltYWxsb2NfY29uc29s aWRhdGUoYXYpOworIAorLSAgICAgIGlmIChhdiA9PSAmbWFpbl9hcmVuYSkgeworKyAgICAgIGlm IChhdiA9PSAmbWFpbl9hcmVuYSkKKysJeworICNpZm5kZWYgTU9SRUNPUkVfQ0FOTk9UX1RSSU0K Ky0JaWYgKCh1bnNpZ25lZCBsb25nKShjaHVua3NpemUoYXYtPnRvcCkpID49CistCSAgICAodW5z aWduZWQgbG9uZykobXBfLnRyaW1fdGhyZXNob2xkKSkKKy0JICBzeXN0cmltKG1wXy50b3BfcGFk LCBhdik7CisrCSAgaWYgKGNodW5rc2l6ZSAoYXYtPnRvcCkgPj0gbXBfLnRyaW1fdGhyZXNob2xk KQorKwkgICAgc3lzdHJpbSAobXBfLnRvcF9wYWQsIGF2KTsKKyAjZW5kaWYKKy0gICAgICB9IGVs c2UgeworLQkvKiBBbHdheXMgdHJ5IGhlYXBfdHJpbSgpLCBldmVuIGlmIHRoZSB0b3AgY2h1bmsg aXMgbm90CistCSAgIGxhcmdlLCBiZWNhdXNlIHRoZSBjb3JyZXNwb25kaW5nIGhlYXAgbWlnaHQg Z28gYXdheS4gICovCistCWhlYXBfaW5mbyAqaGVhcCA9IGhlYXBfZm9yX3B0cih0b3AoYXYpKTsK KysJfQorKyAgICAgIGVsc2UKKysJeworKwkgIC8qIEFsd2F5cyB0cnkgaGVhcF90cmltLCBldmVu IGlmIHRoZSB0b3AgY2h1bmsgaXMgbm90IGxhcmdlLAorKwkgICAgIGJlY2F1c2UgdGhlIGNvcnJl c3BvbmRpbmcgaGVhcCBtaWdodCBnbyBhd2F5LiAgKi8KKysJICBoZWFwX2luZm8gKmhlYXAgPSBo ZWFwX2Zvcl9wdHIgKHRvcCAoYXYpKTsKKyAKKy0JYXNzZXJ0KGhlYXAtPmFyX3B0ciA9PSBhdik7 CistCWhlYXBfdHJpbShoZWFwLCBtcF8udG9wX3BhZCk7CistICAgICAgfQorKwkgIGFzc2VydCAo aGVhcC0+YXJfcHRyID09IGF2KTsKKysJICBoZWFwX3RyaW0gKGhlYXAsIG1wXy50b3BfcGFkKTsK KysJfQorICAgICB9CistCistICAgIGlmICghaGF2ZV9sb2NrKQorLSAgICAgIF9fbGliY19sb2Nr X3VubG9jayAoYXYtPm11dGV4KTsKKy0gIH0KKy0gIC8qCistICAgIElmIHRoZSBjaHVuayB3YXMg YWxsb2NhdGVkIHZpYSBtbWFwLCByZWxlYXNlIHZpYSBtdW5tYXAoKS4KKy0gICovCistCistICBl bHNlIHsKKy0gICAgbXVubWFwX2NodW5rIChwKTsKKy0gIH0KKyB9CisgCisgLyoKK0BAIC01MjIx LDcgKzUyNTQsNyBAQCBfaW50X21lbWFsaWduIChtc3RhdGUgYXYsIHNpemVfdCBhbGlnbm1lbnQs IHNpemVfdCBieXRlcykKKyAgICAgICAgICAgICAgICAgKGF2ICE9ICZtYWluX2FyZW5hID8gTk9O X01BSU5fQVJFTkEgOiAwKSk7CisgICAgICAgc2V0X2ludXNlX2JpdF9hdF9vZmZzZXQgKG5ld3As IG5ld3NpemUpOworICAgICAgIHNldF9oZWFkX3NpemUgKHAsIGxlYWRzaXplIHwgKGF2ICE9ICZt YWluX2FyZW5hID8gTk9OX01BSU5fQVJFTkEgOiAwKSk7CistICAgICAgX2ludF9mcmVlIChhdiwg cCwgMSk7CisrICAgICAgX2ludF9mcmVlX21lcmdlX2NodW5rIChhdiwgcCwgbGVhZHNpemUpOwor ICAgICAgIHAgPSBuZXdwOworIAorICAgICAgIGFzc2VydCAobmV3c2l6ZSA+PSBuYiAmJgorQEAg LTUyMzIsMTUgKzUyNjUsMjcgQEAgX2ludF9tZW1hbGlnbiAobXN0YXRlIGF2LCBzaXplX3QgYWxp Z25tZW50LCBzaXplX3QgYnl0ZXMpCisgICBpZiAoIWNodW5rX2lzX21tYXBwZWQgKHApKQorICAg ICB7CisgICAgICAgc2l6ZSA9IGNodW5rc2l6ZSAocCk7CistICAgICAgaWYgKCh1bnNpZ25lZCBs b25nKSAoc2l6ZSkgPiAodW5zaWduZWQgbG9uZykgKG5iICsgTUlOU0laRSkpCisrICAgICAgbWNo dW5rcHRyIG5leHRjaHVuayA9IGNodW5rX2F0X29mZnNldChwLCBzaXplKTsKKysgICAgICBJTlRF Uk5BTF9TSVpFX1QgbmV4dHNpemUgPSBjaHVua3NpemUobmV4dGNodW5rKTsKKysgICAgICBpZiAo c2l6ZSA+IG5iKQorICAgICAgICAgeworICAgICAgICAgICByZW1haW5kZXJfc2l6ZSA9IHNpemUg LSBuYjsKKy0gICAgICAgICAgcmVtYWluZGVyID0gY2h1bmtfYXRfb2Zmc2V0IChwLCBuYik7Cist ICAgICAgICAgIHNldF9oZWFkIChyZW1haW5kZXIsIHJlbWFpbmRlcl9zaXplIHwgUFJFVl9JTlVT RSB8CistICAgICAgICAgICAgICAgICAgICAoYXYgIT0gJm1haW5fYXJlbmEgPyBOT05fTUFJTl9B UkVOQSA6IDApKTsKKy0gICAgICAgICAgc2V0X2hlYWRfc2l6ZSAocCwgbmIpOworLSAgICAgICAg ICBfaW50X2ZyZWUgKGF2LCByZW1haW5kZXIsIDEpOworLSAgICAgICAgfQorKwkgIGlmIChyZW1h aW5kZXJfc2l6ZSA+PSBNSU5TSVpFCisrCSAgICAgIHx8IG5leHRjaHVuayA9PSBhdi0+dG9wCisr CSAgICAgIHx8ICFpbnVzZV9iaXRfYXRfb2Zmc2V0IChuZXh0Y2h1bmssIG5leHRzaXplKSkKKysJ ICAgIHsKKysJICAgICAgLyogV2UgY2FuIG9ubHkgZ2l2ZSBiYWNrIHRoZSB0YWlsIGlmIGl0IGlz IGxhcmdlciB0aGFuCisrCQkgTUlOU0laRSwgb3IgaWYgdGhlIGZvbGxvd2luZyBjaHVuayBpcyB1 bnVzZWQgKHRvcAorKwkJIGNodW5rIG9yIHVudXNlZCBpbi1oZWFwIGNodW5rKS4gIE90aGVyd2lz ZSB3ZSB3b3VsZAorKwkJIGNyZWF0ZSBhIGNodW5rIHRoYXQgaXMgc21hbGxlciB0aGFuIE1JTlNJ WkUuICAqLworKwkgICAgICByZW1haW5kZXIgPSBjaHVua19hdF9vZmZzZXQgKHAsIG5iKTsKKysJ ICAgICAgc2V0X2hlYWRfc2l6ZSAocCwgbmIpOworKwkgICAgICByZW1haW5kZXJfc2l6ZSA9IF9p bnRfZnJlZV9jcmVhdGVfY2h1bmsgKGF2LCByZW1haW5kZXIsCisrCQkJCQkJICAgICAgIHJlbWFp bmRlcl9zaXplLAorKwkJCQkJCSAgICAgICBuZXh0Y2h1bmssIG5leHRzaXplKTsKKysJICAgICAg X2ludF9mcmVlX21heWJlX2NvbnNvbGlkYXRlIChhdiwgcmVtYWluZGVyX3NpemUpOworKwkgICAg fQorKwl9CisgICAgIH0KKyAKKyAgIGNoZWNrX2ludXNlX2NodW5rIChhdiwgcCk7CmRpZmYgLS1n aXQgYS9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvMzA3MjMtMi0wZGM3ZmMxY2YwOTQ0MDZhMTM4ZTRk MWJjZjk1NTNlNTllZGNmODlkLnBhdGNoIGIvc3JjcGtncy9nbGliYy9wYXRjaGVzLzMwNzIzLTIt MGRjN2ZjMWNmMDk0NDA2YTEzOGU0ZDFiY2Y5NTUzZTU5ZWRjZjg5ZC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi40NjE1YzdiMDM1Y2M3Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9nbGliYy9wYXRjaGVzLzMwNzIzLTItMGRjN2ZjMWNmMDk0NDA2YTEz OGU0ZDFiY2Y5NTUzZTU5ZWRjZjg5ZC5wYXRjaApAQCAtMCwwICsxLDI1MiBAQAorRnJvbSAwZGM3 ZmMxY2YwOTQ0MDZhMTM4ZTRkMWJjZjk1NTNlNTllZGNmODlkIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IFRo dSwgMTAgQXVnIDIwMjMgMTk6MzY6NTYgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gbWFsbG9jOiBS ZW1vdmUgYmluIHNjYW5uaW5nIGZyb20gbWVtYWxpZ24gKGJ1ZyAzMDcyMykKKworT24gdGhlIHRl c3Qgd29ya2xvYWQgKG1wdiAtLWNhY2hlPXllcyB3aXRoIFZQOSB2aWRlbyBkZWNvZGluZyksIHRo ZQorYmluIHNjYW5uaW5nIGhhcyBhIHZlcnkgcG9vciBzdWNjZXNzIHJhdGUgKGxlc3MgdGhhbiAy JSkuICBUaGUgdGNhY2hlCitzY2FubmluZyBoYXMgYWJvdXQgNTAlIHN1Y2Nlc3MgcmF0ZSwgc28g a2VlcCB0aGF0LgorCitVcGRhdGUgY29tbWVudHMgaW4gbWFsbG9jL3RzdC1tZW1hbGlnbi0yIHRv IGluZGljYXRlIHRoZSBwdXJwb3NlCitvZiB0aGUgdGVzdHMuICBFdmVuIHdpdGggdGhlIHNjYW5u aW5nIHJlbW92ZWQsIHRoZSBhZGRpdGlvbmFsCittZXJnaW5nIG9wcG9ydHVuaXRpZXMgc2luY2Ug Y29tbWl0IDU0MmIxMTA1ODUyNTY4YzNlYmM3MTIyMjVhZTc4YgorKCJtYWxsb2M6IEVuYWJsZSBt ZXJnaW5nIG9mIHJlbWFpbmRlcnMgaW4gbWVtYWxpZ24gKGJ1ZyAzMDcyMykiKQorYXJlIHN1ZmZp Y2llbnQgdG8gcGFzcyB0aGUgZXhpc3RpbmcgbGFyZ2UgYmlucyB0ZXN0LgorCitSZW1vdmUgbGVm dG92ZXIgdmFyaWFibGVzIGZyb20gX2ludF9mcmVlIGZyb20gcmVmYWN0b3JpbmcgaW4gdGhlCitz YW1lIGNvbW1pdC4KKworUmV2aWV3ZWQtYnk6IERKIERlbG9yaWUgPGRqQHJlZGhhdC5jb20+Cist LS0KKyBtYWxsb2MvbWFsbG9jLmMgICAgICAgICB8IDE2OSArKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgbWFsbG9jL3RzdC1tZW1hbGlnbi0yLmMgfCAgIDcgKy0KKyAy IGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDE2NiBkZWxldGlvbnMoLSkKKworZGlm ZiAtLWdpdCBhL21hbGxvYy9tYWxsb2MuYyBiL21hbGxvYy9tYWxsb2MuYworaW5kZXggOTQ4Zjk3 NTlhZi4uZDBiYmJmMzcxMCAxMDA2NDQKKy0tLSBhL21hbGxvYy9tYWxsb2MuYworKysrIGIvbWFs bG9jL21hbGxvYy5jCitAQCAtNDQ4OCwxMiArNDQ4OCw2IEBAIF9pbnRfZnJlZSAobXN0YXRlIGF2 LCBtY2h1bmtwdHIgcCwgaW50IGhhdmVfbG9jaykKKyB7CisgICBJTlRFUk5BTF9TSVpFX1Qgc2l6 ZTsgICAgICAgIC8qIGl0cyBzaXplICovCisgICBtZmFzdGJpbnB0ciAqZmI7ICAgICAgICAgICAg IC8qIGFzc29jaWF0ZWQgZmFzdGJpbiAqLworLSAgbWNodW5rcHRyIG5leHRjaHVuazsgICAgICAg ICAvKiBuZXh0IGNvbnRpZ3VvdXMgY2h1bmsgKi8KKy0gIElOVEVSTkFMX1NJWkVfVCBuZXh0c2l6 ZTsgICAgLyogaXRzIHNpemUgKi8KKy0gIGludCBuZXh0aW51c2U7ICAgICAgICAgICAgICAgLyog dHJ1ZSBpZiBuZXh0Y2h1bmsgaXMgdXNlZCAqLworLSAgSU5URVJOQUxfU0laRV9UIHByZXZzaXpl OyAgICAvKiBzaXplIG9mIHByZXZpb3VzIGNvbnRpZ3VvdXMgY2h1bmsgKi8KKy0gIG1jaHVua3B0 ciBiY2s7ICAgICAgICAgICAgICAgLyogbWlzYyB0ZW1wIGZvciBsaW5raW5nICovCistICBtY2h1 bmtwdHIgZndkOyAgICAgICAgICAgICAgIC8qIG1pc2MgdGVtcCBmb3IgbGlua2luZyAqLworIAor ICAgc2l6ZSA9IGNodW5rc2l6ZSAocCk7CisgCitAQCAtNTAzMiw0MiArNTAyNiw2IEBAIF9pbnRf cmVhbGxvYyAobXN0YXRlIGF2LCBtY2h1bmtwdHIgb2xkcCwgSU5URVJOQUxfU0laRV9UIG9sZHNp emUsCisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIG1lbWFsaWduIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAqLworIAorLS8qIFJldHVybnMgMCBpZiB0aGUgY2h1 bmsgaXMgbm90IGFuZCBkb2VzIG5vdCBjb250YWluIHRoZSByZXF1ZXN0ZWQKKy0gICBhbGlnbmVk IHN1Yi1jaHVuaywgZWxzZSByZXR1cm5zIHRoZSBhbW91bnQgb2YgIndhc3RlIiBmcm9tCistICAg dHJpbW1pbmcuICBOQiBpcyB0aGUgKmNodW5rKiBieXRlIHNpemUsIG5vdCB0aGUgdXNlciBieXRl CistICAgc2l6ZS4gICovCistc3RhdGljIHNpemVfdAorLWNodW5rX29rX2Zvcl9tZW1hbGlnbiAo bWNodW5rcHRyIHAsIHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBuYikKKy17CistICB2b2lkICpt ID0gY2h1bmsybWVtIChwKTsKKy0gIElOVEVSTkFMX1NJWkVfVCBzaXplID0gY2h1bmtzaXplIChw KTsKKy0gIHZvaWQgKmFsaWduZWRfbSA9IG07CistCistICBpZiAoX19nbGliY191bmxpa2VseSAo bWlzYWxpZ25lZF9jaHVuayAocCkpKQorLSAgICBtYWxsb2NfcHJpbnRlcnIgKCJfaW50X21lbWFs aWduKCk6IHVuYWxpZ25lZCBjaHVuayBkZXRlY3RlZCIpOworLQorLSAgYWxpZ25lZF9tID0gUFRS X0FMSUdOX1VQIChtLCBhbGlnbm1lbnQpOworLQorLSAgSU5URVJOQUxfU0laRV9UIGZyb250X2V4 dHJhID0gKGludHB0cl90KSBhbGlnbmVkX20gLSAoaW50cHRyX3QpIG07CistCistICAvKiBXZSBj YW4ndCB0cmltIG9mZiB0aGUgZnJvbnQgYXMgaXQncyB0b28gc21hbGwuICAqLworLSAgaWYgKGZy b250X2V4dHJhID4gMCAmJiBmcm9udF9leHRyYSA8IE1JTlNJWkUpCistICAgIHJldHVybiAwOwor LQorLSAgLyogSWYgaXQncyBhIHBlcmZlY3QgZml0LCBpdCdzIGFuIGV4Y2VwdGlvbiB0byB0aGUg cmV0dXJuIHZhbHVlIHJ1bGUKKy0gICAgICh3ZSB3b3VsZCByZXR1cm4gemVybyB3YXN0ZSwgd2hp Y2ggbG9va3MgbGlrZSAibm90IHVzYWJsZSIpLCBzbworLSAgICAgaGFuZGxlIGl0IGhlcmUgYnkg cmV0dXJuaW5nIGEgc21hbGwgbm9uLXplcm8gdmFsdWUgaW5zdGVhZC4gICovCistICBpZiAoc2l6 ZSA9PSBuYiAmJiBmcm9udF9leHRyYSA9PSAwKQorLSAgICByZXR1cm4gMTsKKy0KKy0gIC8qIElm IHRoZSBibG9jayB3ZSBuZWVkIGZpdHMgaW4gdGhlIGNodW5rLCBjYWxjdWxhdGUgdG90YWwgd2Fz dGUuICAqLworLSAgaWYgKHNpemUgPiBuYiArIGZyb250X2V4dHJhKQorLSAgICByZXR1cm4gc2l6 ZSAtIG5iOworLQorLSAgLyogQ2FuJ3QgdXNlIHRoaXMgY2h1bmsuICAqLworLSAgcmV0dXJuIDA7 CistfQorLQorIC8qIEJZVEVTIGlzIHVzZXIgcmVxdWVzdGVkIGJ5dGVzLCBub3QgcmVxdWVzdGVk IGNodW5rc2l6ZSBieXRlcy4gICovCisgc3RhdGljIHZvaWQgKgorIF9pbnRfbWVtYWxpZ24gKG1z dGF0ZSBhdiwgc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IGJ5dGVzKQorQEAgLTUwODIsNyArNTA0 MCw2IEBAIF9pbnRfbWVtYWxpZ24gKG1zdGF0ZSBhdiwgc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90 IGJ5dGVzKQorICAgbWNodW5rcHRyIHJlbWFpbmRlcjsgICAgICAgICAgICAvKiBzcGFyZSByb29t IGF0IGVuZCB0byBzcGxpdCBvZmYgKi8KKyAgIHVuc2lnbmVkIGxvbmcgcmVtYWluZGVyX3NpemU7 ICAgLyogaXRzIHNpemUgKi8KKyAgIElOVEVSTkFMX1NJWkVfVCBzaXplOworLSAgbWNodW5rcHRy IHZpY3RpbTsKKyAKKyAgIG5iID0gY2hlY2tlZF9yZXF1ZXN0MnNpemUgKGJ5dGVzKTsKKyAgIGlm IChuYiA9PSAwKQorQEAgLTUxMDEsMTI5ICs1MDU4LDEzIEBAIF9pbnRfbWVtYWxpZ24gKG1zdGF0 ZSBhdiwgc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IGJ5dGVzKQorICAgICAgd2UgZG9uJ3QgZmlu ZCBhbnl0aGluZyBpbiB0aG9zZSBiaW5zLCB0aGUgY29tbW9uIG1hbGxvYyBjb2RlIHdpbGwKKyAg ICAgIHNjYW4gc3RhcnRpbmcgYXQgMnguICAqLworIAorLSAgLyogVGhpcyB3aWxsIGJlIHNldCBp ZiB3ZSBmb3VuZCBhIGNhbmRpZGF0ZSBjaHVuay4gICovCistICB2aWN0aW0gPSBOVUxMOworLQor LSAgLyogRmFzdCBiaW5zIGFyZSBzaW5nbHktbGlua2VkLCBoYXJkIHRvIHJlbW92ZSBhIGNodW5r IGZyb20gdGhlIG1pZGRsZQorLSAgICAgYW5kIHVubGlrZWx5IHRvIG1lZXQgb3VyIGFsaWdubWVu dCByZXF1aXJlbWVudHMuICBXZSBoYXZlIG5vdCBkb25lCistICAgICBhbnkgZXhwZXJpbWVudGF0 aW9uIHdpdGggc2VhcmNoaW5nIGZvciBhbGlnbmVkIGZhc3RiaW5zLiAgKi8KKy0KKy0gIGlmIChh diAhPSBOVUxMKQorLSAgICB7CistICAgICAgaW50IGZpcnN0X2Jpbl9pbmRleDsKKy0gICAgICBp bnQgZmlyc3RfbGFyZ2ViaW5faW5kZXg7CistICAgICAgaW50IGxhc3RfYmluX2luZGV4OworLQor LSAgICAgIGlmIChpbl9zbWFsbGJpbl9yYW5nZSAobmIpKQorLQlmaXJzdF9iaW5faW5kZXggPSBz bWFsbGJpbl9pbmRleCAobmIpOworLSAgICAgIGVsc2UKKy0JZmlyc3RfYmluX2luZGV4ID0gbGFy Z2ViaW5faW5kZXggKG5iKTsKKy0KKy0gICAgICBpZiAoaW5fc21hbGxiaW5fcmFuZ2UgKG5iICog MikpCistCWxhc3RfYmluX2luZGV4ID0gc21hbGxiaW5faW5kZXggKG5iICogMik7CistICAgICAg ZWxzZQorLQlsYXN0X2Jpbl9pbmRleCA9IGxhcmdlYmluX2luZGV4IChuYiAqIDIpOworLQorLSAg ICAgIGZpcnN0X2xhcmdlYmluX2luZGV4ID0gbGFyZ2ViaW5faW5kZXggKE1JTl9MQVJHRV9TSVpF KTsKKy0KKy0gICAgICBpbnQgdmljdGltX2luZGV4OyAgICAgICAgICAgICAgICAgLyogaXRzIGJp biBpbmRleCAqLworLQorLSAgICAgIGZvciAodmljdGltX2luZGV4ID0gZmlyc3RfYmluX2luZGV4 OworLQkgICB2aWN0aW1faW5kZXggPCBsYXN0X2Jpbl9pbmRleDsKKy0JICAgdmljdGltX2luZGV4 ICsrKQorLQl7CistCSAgdmljdGltID0gTlVMTDsKKy0KKy0JICBpZiAodmljdGltX2luZGV4IDwg Zmlyc3RfbGFyZ2ViaW5faW5kZXgpCistCSAgICB7CistCSAgICAgIC8qIENoZWNrIHNtYWxsIGJp bnMuICBTbWFsbCBiaW4gY2h1bmtzIGFyZSBkb3VibHktbGlua2VkIGRlc3BpdGUKKy0JCSBiZWlu ZyB0aGUgc2FtZSBzaXplLiAgKi8KKy0KKy0JICAgICAgbWNodW5rcHRyIGZ3ZDsgICAgICAgICAg ICAgICAgICAgIC8qIG1pc2MgdGVtcCBmb3IgbGlua2luZyAqLworLQkgICAgICBtY2h1bmtwdHIg YmNrOyAgICAgICAgICAgICAgICAgICAgLyogbWlzYyB0ZW1wIGZvciBsaW5raW5nICovCistCist CSAgICAgIGJjayA9IGJpbl9hdCAoYXYsIHZpY3RpbV9pbmRleCk7CistCSAgICAgIGZ3ZCA9IGJj ay0+ZmQ7CistCSAgICAgIHdoaWxlIChmd2QgIT0gYmNrKQorLQkJeworLQkJICBpZiAoY2h1bmtf b2tfZm9yX21lbWFsaWduIChmd2QsIGFsaWdubWVudCwgbmIpID4gMCkKKy0JCSAgICB7CistCQkg ICAgICB2aWN0aW0gPSBmd2Q7CistCistCQkgICAgICAvKiBVbmxpbmsgaXQgKi8KKy0JCSAgICAg IHZpY3RpbS0+ZmQtPmJrID0gdmljdGltLT5iazsKKy0JCSAgICAgIHZpY3RpbS0+YmstPmZkID0g dmljdGltLT5mZDsKKy0JCSAgICAgIGJyZWFrOworLQkJICAgIH0KKy0KKy0JCSAgZndkID0gZndk LT5mZDsKKy0JCX0KKy0JICAgIH0KKy0JICBlbHNlCistCSAgICB7CistCSAgICAgIC8qIENoZWNr IGxhcmdlIGJpbnMuICAqLworLQkgICAgICBtY2h1bmtwdHIgZndkOyAgICAgICAgICAgICAgICAg ICAgLyogbWlzYyB0ZW1wIGZvciBsaW5raW5nICovCistCSAgICAgIG1jaHVua3B0ciBiY2s7ICAg ICAgICAgICAgICAgICAgICAvKiBtaXNjIHRlbXAgZm9yIGxpbmtpbmcgKi8KKy0JICAgICAgbWNo dW5rcHRyIGJlc3QgPSBOVUxMOworLQkgICAgICBzaXplX3QgYmVzdF9zaXplID0gMDsKKy0KKy0J ICAgICAgYmNrID0gYmluX2F0IChhdiwgdmljdGltX2luZGV4KTsKKy0JICAgICAgZndkID0gYmNr LT5mZDsKKysgIC8qIENhbGwgbWFsbG9jIHdpdGggd29yc3QgY2FzZSBwYWRkaW5nIHRvIGhpdCBh bGlnbm1lbnQuICovCisrICBtID0gKGNoYXIgKikgKF9pbnRfbWFsbG9jIChhdiwgbmIgKyBhbGln bm1lbnQgKyBNSU5TSVpFKSk7CisgCistCSAgICAgIHdoaWxlIChmd2QgIT0gYmNrKQorLQkJewor LQkJICBpbnQgZXh0cmE7CistCistCQkgIGlmIChjaHVua3NpemUgKGZ3ZCkgPCBuYikKKy0JCSAg ICBicmVhazsKKy0JCSAgZXh0cmEgPSBjaHVua19va19mb3JfbWVtYWxpZ24gKGZ3ZCwgYWxpZ25t ZW50LCBuYik7CistCQkgIGlmIChleHRyYSA+IDAKKy0JCSAgICAgICYmIChleHRyYSA8PSBiZXN0 X3NpemUgfHwgYmVzdCA9PSBOVUxMKSkKKy0JCSAgICB7CistCQkgICAgICBiZXN0ID0gZndkOwor LQkJICAgICAgYmVzdF9zaXplID0gZXh0cmE7CistCQkgICAgfQorKyAgaWYgKG0gPT0gMCkKKysg ICAgcmV0dXJuIDA7ICAgICAgICAgICAvKiBwcm9wYWdhdGUgZmFpbHVyZSAqLworIAorLQkJICBm d2QgPSBmd2QtPmZkOworLQkJfQorLQkgICAgICB2aWN0aW0gPSBiZXN0OworLQorLQkgICAgICBp ZiAodmljdGltICE9IE5VTEwpCistCQl7CistCQkgIHVubGlua19jaHVuayAoYXYsIHZpY3RpbSk7 CistCQkgIGJyZWFrOworLQkJfQorLQkgICAgfQorLQorLQkgIGlmICh2aWN0aW0gIT0gTlVMTCkK Ky0JICAgIGJyZWFrOworLQl9CistICAgIH0KKy0KKy0gIC8qIFN0cmF0ZWd5OiBmaW5kIGEgc3Bv dCB3aXRoaW4gdGhhdCBjaHVuayB0aGF0IG1lZXRzIHRoZSBhbGlnbm1lbnQKKy0gICAgIHJlcXVl c3QsIGFuZCB0aGVuIHBvc3NpYmx5IGZyZWUgdGhlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHNwYWNl LgorLSAgICAgVGhpcyBzdHJhdGVneSBpcyBpbmNyZWRpYmx5IGNvc3RseSBhbmQgY2FuIGxlYWQg dG8gZXh0ZXJuYWwKKy0gICAgIGZyYWdtZW50YXRpb24gaWYgaGVhZGVyIGFuZCBmb290ZXIgY2h1 bmtzIGFyZSB1bnVzZWQuICAqLworLQorLSAgaWYgKHZpY3RpbSAhPSBOVUxMKQorLSAgICB7Cist ICAgICAgcCA9IHZpY3RpbTsKKy0gICAgICBtID0gY2h1bmsybWVtIChwKTsKKy0gICAgICBzZXRf aW51c2UgKHApOworLSAgICAgIGlmIChhdiAhPSAmbWFpbl9hcmVuYSkKKy0Jc2V0X25vbl9tYWlu X2FyZW5hIChwKTsKKy0gICAgfQorLSAgZWxzZQorLSAgICB7CistICAgICAgLyogQ2FsbCBtYWxs b2Mgd2l0aCB3b3JzdCBjYXNlIHBhZGRpbmcgdG8gaGl0IGFsaWdubWVudC4gKi8KKy0KKy0gICAg ICBtID0gKGNoYXIgKikgKF9pbnRfbWFsbG9jIChhdiwgbmIgKyBhbGlnbm1lbnQgKyBNSU5TSVpF KSk7CistCistICAgICAgaWYgKG0gPT0gMCkKKy0JcmV0dXJuIDA7ICAgICAgICAgICAvKiBwcm9w YWdhdGUgZmFpbHVyZSAqLworLQorLSAgICAgIHAgPSBtZW0yY2h1bmsgKG0pOworLSAgICB9Cisr ICBwID0gbWVtMmNodW5rIChtKTsKKyAKKyAgIGlmICgoKCh1bnNpZ25lZCBsb25nKSAobSkpICUg YWxpZ25tZW50KSAhPSAwKSAgIC8qIG1pc2FsaWduZWQgKi8KKyAgICAgeworZGlmZiAtLWdpdCBh L21hbGxvYy90c3QtbWVtYWxpZ24tMi5jIGIvbWFsbG9jL3RzdC1tZW1hbGlnbi0yLmMKK2luZGV4 IGYyMjkyODNkYmYuLmVjZDZmYTI0OWUgMTAwNjQ0CistLS0gYS9tYWxsb2MvdHN0LW1lbWFsaWdu LTIuYworKysrIGIvbWFsbG9jL3RzdC1tZW1hbGlnbi0yLmMKK0BAIC04Niw3ICs4Niw4IEBAIGRv X3Rlc3QgKHZvaWQpCisgICAgICAgVEVTVF9WRVJJRlkgKHRjYWNoZV9hbGxvY3NbaV0ucHRyMSA9 PSB0Y2FjaGVfYWxsb2NzW2ldLnB0cjIpOworICAgICB9CisgCistICAvKiBUZXN0IGZvciBub24t aGVhZCB0Y2FjaGUgaGl0cy4gICovCisrICAvKiBUZXN0IGZvciBub24taGVhZCB0Y2FjaGUgaGl0 cy4gIFRoaXMgZXhlcmNpc2VzIHRoZSBtZW1hbGlnbgorKyAgICAgc2Nhbm5pbmcgY29kZSB0byBm aW5kIG1hdGNoaW5nIGFsbG9jYXRpb25zLiAgKi8KKyAgIGZvciAoaSA9IDA7IGkgPCBhcnJheV9s ZW5ndGggKHB0cik7ICsrIGkpCisgICAgIHsKKyAgICAgICBpZiAoaSA9PSA0KQorQEAgLTExMyw3 ICsxMTQsOSBAQCBkb190ZXN0ICh2b2lkKQorICAgZnJlZSAocCk7CisgICBURVNUX1ZFUklGWSAo Y291bnQgPiAwKTsKKyAKKy0gIC8qIExhcmdlIGJpbnMgdGVzdC4gICovCisrICAvKiBMYXJnZSBi aW5zIHRlc3QuICBUaGlzIHZlcmlmaWVzIHRoYXQgdGhlIG92ZXItYWxsb2NhdGVkIHBhcnRzCisr ICAgICB0aGF0IG1lbWFsaWduIHJlbGVhc2VzIGZvciBmdXR1cmUgYWxsb2NhdGlvbnMgY2FuIGJl IHJldXNlZCBieQorKyAgICAgbWVtYWxpZ24gaXRzZWxmIGF0IGxlYXN0IGluIHNvbWUgY2FzZXMu ICAqLworIAorICAgZm9yIChpID0gMDsgaSA8IExOOyArKyBpKQorICAgICB7CmRpZmYgLS1naXQg YS9zcmNwa2dzL2dsaWJjL3RlbXBsYXRlIGIvc3JjcGtncy9nbGliYy90ZW1wbGF0ZQppbmRleCAy MDgwNWZiNTJlODE2Li5jZjdjZDA3M2E5NTAwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dsaWJjL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2xpYmMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdnbGliYycKIHBrZ25hbWU9Z2xpYmMKIHZlcnNpb249Mi4zOAotcmV2 aXNpb249MQorcmV2aXNpb249MgogYm9vdHN0cmFwPXllcwogc2hvcnRfZGVzYz0iR05VIEMgbGli cmFyeSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCg== --===============4169126092897631744==--