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.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 15666 invoked from network); 12 Aug 2021 12:24:10 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 12 Aug 2021 12:24:10 -0000 Content-Type: multipart/mixed; boundary="===============3335797875149527857==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_libXft=3A_update_and_include_big_fixes?= To: ml@inbox.vuxu.org From: vigoux Reply-to: ml@inbox.vuxu.org Message-ID: Date: Thu, 12 Aug 2021 14:24:09 +0200 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============3335797875149527857== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IHZpZ291eCBhZ2FpbnN0IG1hc3RlciBvbiB0 aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vdmlnb3V4L3Zv aWQtcGFja2FnZXMgbGlieGZ0LWZpeApodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lk LXBhY2thZ2VzL3B1bGwvMzI0NjkKCmxpYlhmdDogdXBkYXRlIGFuZCBpbmNsdWRlIGJpZyBmaXhl cwo8IS0tIE1hcmsgaXRlbXMgd2l0aCBbeF0gd2hlcmUgYXBwbGljYWJsZSAtLT4NCiMjIyMgR2Vu ZXJhbA0KLSBbIF0gVGhpcyBpcyBhIG5ldyBwYWNrYWdlIGFuZCBpdCBjb25mb3JtcyB0byB0aGUg W3F1YWxpdHkgcmVxdWlyZW1lbnRzXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lk LXBhY2thZ2VzL2Jsb2IvbWFzdGVyL01hbnVhbC5tZCNxdWFsaXR5LXJlcXVpcmVtZW50cykNCg0K IyMjIyBIYXZlIHRoZSByZXN1bHRzIG9mIHRoZSBwcm9wb3NlZCBjaGFuZ2VzIGJlZW4gdGVzdGVk Pw0KLSBbeF0gSSB1c2UgdGhlIHBhY2thZ2VzIGFmZmVjdGVkIGJ5IHRoZSBwcm9wb3NlZCBjaGFu Z2VzIG9uIGEgcmVndWxhciBiYXNpcyBhbmQgY29uZmlybSB0aGlzIFBSIHdvcmtzIGZvciBtZQ0K LSBbIF0gSSBnZW5lcmFsbHkgZG9uJ3QgdXNlIHRoZSBhZmZlY3RlZCBwYWNrYWdlcyBidXQgYnJp ZWZseSB0ZXN0ZWQgdGhpcyBQUg0KDQo8IS0tDQpJZiBHaXRIdWIgQ0kgY2Fubm90IGJlIHVzZWQg dG8gdmFsaWRhdGUgdGhlIGJ1aWxkIHJlc3VsdCAoZm9yIGV4YW1wbGUsIGlmIHRoZQ0KYnVpbGQg aXMgbGlrZWx5IHRvIHRha2Ugc2V2ZXJhbCBob3VycyksIG1ha2Ugc3VyZSB0bw0KW3NraXAgQ0ld KGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIv Q09OVFJJQlVUSU5HLm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24pLg0KV2hlbiBza2lwcGluZyBD SSwgdW5jb21tZW50IGFuZCBmaWxsIG91dCB0aGUgZm9sbG93aW5nIHNlY3Rpb24uDQpOb3RlOiBm b3IgYnVpbGRzIHRoYXQgYXJlIGxpa2VseSB0byBjb21wbGV0ZSBpbiBsZXNzIHRoYW4gMiBob3Vy cywgaXQgaXMgbm90DQphY2NlcHRhYmxlIHRvIHNraXAgQ0kuDQotLT4NCiMjIyMgRG9lcyBpdCBi dWlsZCBhbmQgcnVuIHN1Y2Nlc3NmdWxseT8gDQooUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUg bmF0aXZlIGJ1aWxkIGFuZCwgaWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jvc3MgYnVpbGQu IE1vcmUgYXJlIGJldHRlci4pDQotIFt4XSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgbXkg bmF0aXZlIGFyY2hpdGVjdHVyZSwgKHg4Nl82NC1nbnUpDQotIFsgXSBJIGJ1aWx0IHRoaXMgUFIg bG9jYWxseSBmb3IgdGhlc2UgYXJjaGl0ZWN0dXJlcyAoaWYgc3VwcG9ydGVkLiBtYXJrIGNyb3Nz YnVpbGRzKToNCiAgLSBbIF0gYWFyY2g2NC1tdXNsDQogIC0gWyBdIGFybXY3bA0KICAtIFsgXSBh cm12NmwtbXVzbA0KDQojIyMjIE90aGVyDQoNClRoaXMgUFIgaW5jbHVkZXMgcGF0Y2hlcyB0aGF0 IGFyZSB3YWl0aW5nIHRvIGJlIG1lcmdlZCB1cHN0cmVhbSwgYW5kDQpmaXggYSBidWcuIEluY2x1 ZGluZyB0aGVzZSBwYXRjaGVkIHNvbHZlZCBudW1lcm91cyBpc3N1ZXMgd2l0aCBgc3RgLA0Kd2hl cmUgY29sb3JlZCBlbW9qaXMgY2F1c2VkIGEgaGFyZCBjcmFzaCBvZiB0aGUgdGVybWluYWwgZW11 bGF0b3IuDQoKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4 L3ZvaWQtcGFja2FnZXMvcHVsbC8zMjQ2OS5wYXRjaCBpcyBhdHRhY2hlZA== --===============3335797875149527857== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-libxft-fix-32469.patch" RnJvbSBiMjg2MzAyMDE5YzU3ZGNmNGNjYWJiMDU4ODZhZDVjMDJmMmY0MTcxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgVmlnb3Vyb3V4IDx0b212aWczOEBnbWFpbC5jb20+ CkRhdGU6IFRodSwgMTIgQXVnIDIwMjEgMTQ6MTc6NTMgKzAyMDAKU3ViamVjdDogW1BBVENIIDEv Ml0gbGliWGZ0OiB1cGRhdGUgdG8gMi4zLjQKCi0tLQogc3JjcGtncy9saWJYZnQvdGVtcGxhdGUg fCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJYZnQvdGVtcGxhdGUgYi9zcmNwa2dzL2xpYlhmdC90 ZW1wbGF0ZQppbmRleCBkZDYyNjNkM2E0MjAuLjFlODZjZDY4ZmRjMyAxMDA2NDQKLS0tIGEvc3Jj cGtncy9saWJYZnQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9saWJYZnQvdGVtcGxhdGUKQEAgLTEs NiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJYZnQnCiBwa2duYW1lPWxpYlhmdAot dmVyc2lvbj0yLjMuMwordmVyc2lvbj0yLjMuNAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251 LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIgpAQCAtMTAsNyArMTAsNyBA QCBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0i TUlUIgogaG9tZXBhZ2U9IiRYT1JHX1NJVEUiCiBkaXN0ZmlsZXM9IiR7WE9SR19TSVRFfS9saWIv JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci5iejIiCi1jaGVja3N1bT0yMjVjNjhlNjE2ZGQyOWRi YjI3ODA5ZTQ1ZTllYWRmMThlNGQ3NGM1MGJlNDMwMjBlZjIwMDE1Mjc0NTI5MjE2CitjaGVja3N1 bT01N2RlZGFhYjIwOTE0MDAyMTQ2YmRhZTBjYjBjNzY5YmEzZjc1MjE0YzRjOTFiZDI2MTNkNmVm NzlmYzlhYmRkCiAKIHBvc3RfaW5zdGFsbCgpIHsKIAl2bGljZW5zZSBDT1BZSU5HCgpGcm9tIDll ZGRhZThlN2Y1YzcwMjliMTFlZjJlYmM0ZDhmMmQ3ODVjYjBmZDEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFRob21hcyBWaWdvdXJvdXggPHRvbXZpZzM4QGdtYWlsLmNvbT4KRGF0ZTog VGh1LCAxMiBBdWcgMjAyMSAxNDoxODoxNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBsaWJY ZnQ6IGZpeCBjb2xvcmVkIGVtb2ppIGJ1ZwoKSW5jbHVkZSB0aGUgcGF0Y2hlcyBmcm9tIGh0dHBz Oi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy94b3JnL2xpYi9saWJ4ZnQvLS9tZXJnZV9yZXF1ZXN0 cy8xCi0tLQogLi4uLV9YZnRDb21wb3NpdGVTdHJpbmctaGVscGVyLWZ1bmN0aW9uLnBhdGNoIHwg IDk0ICsrKwogLi4uLWEtX1hmdENvbXBvc2l0ZVRleHQtaGVscGVyLWZ1bmN0aW9uLnBhdGNoIHwg MTIzICsrKysKIC4uLi1mb3ItQkdSQS1nbHlwaHMtZGlzcGxheS1hbmQtc2NhbGluZy5wYXRjaCB8 IDY0MiArKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgODU5IGluc2VydGlvbnMo KykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpYlhmdC9wYXRjaGVzLzAwMDEtSW50cm9k dWNlLWEtX1hmdENvbXBvc2l0ZVN0cmluZy1oZWxwZXItZnVuY3Rpb24ucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xpYlhmdC9wYXRjaGVzLzAwMDItSW50cm9kdWNlLWEtX1hmdENv bXBvc2l0ZVRleHQtaGVscGVyLWZ1bmN0aW9uLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9saWJYZnQvcGF0Y2hlcy8wMDAzLUFkZC1zdXBwb3J0LWZvci1CR1JBLWdseXBocy1kaXNw bGF5LWFuZC1zY2FsaW5nLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJYZnQvcGF0Y2hl cy8wMDAxLUludHJvZHVjZS1hLV9YZnRDb21wb3NpdGVTdHJpbmctaGVscGVyLWZ1bmN0aW9uLnBh dGNoIGIvc3JjcGtncy9saWJYZnQvcGF0Y2hlcy8wMDAxLUludHJvZHVjZS1hLV9YZnRDb21wb3Np dGVTdHJpbmctaGVscGVyLWZ1bmN0aW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uM2JhM2Q3MjU5MGIwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s aWJYZnQvcGF0Y2hlcy8wMDAxLUludHJvZHVjZS1hLV9YZnRDb21wb3NpdGVTdHJpbmctaGVscGVy LWZ1bmN0aW9uLnBhdGNoCkBAIC0wLDAgKzEsOTQgQEAKK0Zyb20gNzIzMDkyZWNlMDg4NTU5ZjFh ZjI5OTIzNjMwNTkxMWY0ZWU0ZDQ1MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1h eGltZSBDb3N0ZSA8bWF3d3dAa2Frb3VuZS5vcmc+CitEYXRlOiBUaHUsIDI4IEphbiAyMDIxIDE5 OjU5OjEwICsxMTAwCitTdWJqZWN0OiBbUEFUQ0ggMS8zXSBJbnRyb2R1Y2UgYSBfWGZ0Q29tcG9z aXRlU3RyaW5nIGhlbHBlciBmdW5jdGlvbgorCitEaXNwYXRjaCB0byBYUmVuZGVyQ29tcG9zaXRl U3RyaW5nezgsMTYsMzJ9IGJhc2VkIG9mZiB0aGUgZ2l2ZW4gd2lkdGguCisKK1NpZ25lZC1vZmYt Ynk6IE1heGltZSBDb3N0ZSA8bWF3d3dAa2Frb3VuZS5vcmc+CistLS0KKyBzcmMveGZ0cmVuZGVy LmMgfCA2MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t CisgMSBmaWxlIGNoYW5nZWQsIDQzIGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQorCitk aWZmIC0tZ2l0IGEvc3JjL3hmdHJlbmRlci5jIGIvc3JjL3hmdHJlbmRlci5jCitpbmRleCBhMzUy NzM3Li4xODFjMjdhIDEwMDY0NAorLS0tIGEvc3JjL3hmdHJlbmRlci5jCisrKysgYi9zcmMveGZ0 cmVuZGVyLmMKK0BAIC0yNSw2ICsyNSw0NyBAQAorICNkZWZpbmUgTlVNX0xPQ0FMCTEwMjQKKyAj ZGVmaW5lIE5VTV9FTFRfTE9DQUwJMTI4CisgCisrLyoKKysgKiBEaXNwYXRjaCBnbHlwaCBkcmF3 aW5nIHRvIHRoZSBjb3JyZWN0IFhSZW5kZXJDb21wb3NpdGVTdHJpbmcgZnVuY3Rpb24KKysgKi8K KytzdGF0aWMgdm9pZAorK19YZnRDb21wb3NpdGVTdHJpbmcgKERpc3BsYXkgICAgICAgICAgICpk cHksCisrICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgb3AsCisrICAgICAg ICAgICAgICAgICAgICAgUGljdHVyZSAgICAgICAgICAgc3JjLAorKyAgICAgICAgICAgICAgICAg ICAgIFBpY3R1cmUgICAgICAgICAgIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICBYUmVuZGVy UGljdEZvcm1hdCAqZm9ybWF0LAorKyAgICAgICAgICAgICAgICAgICAgIEdseXBoU2V0ICAgICAg ICAgIGdseXBoc2V0LAorKyAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgIHNy Y3gsCisrICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgc3JjeSwKKysgICAg ICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICBkc3R4LAorKyAgICAgICAgICAgICAg ICAgICAgIGludCAgICAgICAgICAgICAgIGRzdHksCisrICAgICAgICAgICAgICAgICAgICAgaW50 ICAgICAgICAgICAgICAgY2hhcndpZHRoLAorKyAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCAgICAgICpjaGFycywKKysgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAg ICBuY2hhcnMpCisreworKyAgICBpZiAobmNoYXJzID09IDApCisrICAgICAgICByZXR1cm47Cisr CisrICAgIHN3aXRjaCAoY2hhcndpZHRoKSB7CisrICAgIGNhc2UgMToKKysgICAgZGVmYXVsdDoK KysJWFJlbmRlckNvbXBvc2l0ZVN0cmluZzggKGRweSwgb3AsCisrCQkJCSBzcmMsIGRzdCwgZm9y bWF0LCBnbHlwaHNldCwKKysJCQkJIHNyY3gsIHNyY3ksIGRzdHgsIGRzdHksIChjaGFyKiljaGFy cywgbmNoYXJzKTsKKysJYnJlYWs7CisrICAgIGNhc2UgMjoKKysJWFJlbmRlckNvbXBvc2l0ZVN0 cmluZzE2KGRweSwgb3AsCisrCQkJCSBzcmMsIGRzdCwgZm9ybWF0LCBnbHlwaHNldCwKKysJCQkJ IHNyY3gsIHNyY3ksIGRzdHgsIGRzdHksICh1bnNpZ25lZCBzaG9ydCopY2hhcnMsIG5jaGFycyk7 CisrCWJyZWFrOworKyAgICBjYXNlIDQ6CisrCVhSZW5kZXJDb21wb3NpdGVTdHJpbmczMihkcHks IG9wLAorKwkJCQkgc3JjLCBkc3QsIGZvcm1hdCwgZ2x5cGhzZXQsCisrCQkJCSBzcmN4LCBzcmN5 LCBkc3R4LCBkc3R5LCAodW5zaWduZWQgaW50KiljaGFycywgbmNoYXJzKTsKKysJYnJlYWs7Cisr ICAgIH0KKyt9CisrCisgLyoKKyAgKiBVc2UgdGhlIFJlbmRlciBleHRlbnNpb24gdG8gZHJhdyB0 aGUgZ2x5cGhzCisgICovCitAQCAtMTE0LDI0ICsxNTUsOCBAQCBYZnRHbHlwaFJlbmRlciAoRGlz cGxheQkJKmRweSwKKyAJY2FzZSA0OiBjaGFyMzJbaV0gPSAodW5zaWduZWQgaW50KSB3aXJlOyBi cmVhazsKKyAJfQorICAgICB9CistICAgIHN3aXRjaCAod2lkdGgpIHsKKy0gICAgY2FzZSAxOgor LSAgICBkZWZhdWx0OgorLQlYUmVuZGVyQ29tcG9zaXRlU3RyaW5nOCAoZHB5LCBvcCwKKy0JCQkJ IHNyYywgZHN0LCBmb250LT5mb3JtYXQsIGZvbnQtPmdseXBoc2V0LAorLQkJCQkgc3JjeCwgc3Jj eSwgeCwgeSwgY2hhcjgsIG5nbHlwaHMpOworLQlicmVhazsKKy0gICAgY2FzZSAyOgorLQlYUmVu ZGVyQ29tcG9zaXRlU3RyaW5nMTYoZHB5LCBvcCwKKy0JCQkJIHNyYywgZHN0LCBmb250LT5mb3Jt YXQsIGZvbnQtPmdseXBoc2V0LAorLQkJCQkgc3JjeCwgc3JjeSwgeCwgeSwgY2hhcjE2LCBuZ2x5 cGhzKTsKKy0JYnJlYWs7CistICAgIGNhc2UgNDoKKy0JWFJlbmRlckNvbXBvc2l0ZVN0cmluZzMy KGRweSwgb3AsCistCQkJCSBzcmMsIGRzdCwgZm9udC0+Zm9ybWF0LCBmb250LT5nbHlwaHNldCwK Ky0JCQkJIHNyY3gsIHNyY3ksIHgsIHksIGNoYXIzMiwgbmdseXBocyk7CistCWJyZWFrOworLSAg ICB9CisrICAgIF9YZnRDb21wb3NpdGVTdHJpbmcoZHB5LCBvcCwgc3JjLCBkc3QsIGZvbnQtPmZv cm1hdCwgZm9udC0+Z2x5cGhzZXQsCisrICAgICAgICAgICAgICAgICAgICAgICAgc3JjeCwgc3Jj eSwgeCwgeSwgd2lkdGgsIGNoYXJzLCBuZ2x5cGhzKTsKKyAgICAgaWYgKGNoYXJzICE9IGNoYXJf bG9jYWwpCisgCWZyZWUgKGNoYXJzKTsKKyBiYWlsMToKKy0tIAorMi4zMi4wCisKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbGliWGZ0L3BhdGNoZXMvMDAwMi1JbnRyb2R1Y2UtYS1fWGZ0Q29tcG9zaXRl VGV4dC1oZWxwZXItZnVuY3Rpb24ucGF0Y2ggYi9zcmNwa2dzL2xpYlhmdC9wYXRjaGVzLzAwMDIt SW50cm9kdWNlLWEtX1hmdENvbXBvc2l0ZVRleHQtaGVscGVyLWZ1bmN0aW9uLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjExMmMzOWU0ZDhhCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9saWJYZnQvcGF0Y2hlcy8wMDAyLUludHJvZHVjZS1hLV9YZnRD b21wb3NpdGVUZXh0LWhlbHBlci1mdW5jdGlvbi5wYXRjaApAQCAtMCwwICsxLDEyMyBAQAorRnJv bSBlMGZjNGNlN2U4N2FiOWM0YjQ3ZTVjOGU2OTNmMDcwZGZkMGQyZjdiIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogTWF4aW1lIENvc3RlIDxtYXd3d0BrYWtvdW5lLm9yZz4KK0RhdGU6 IFRodSwgMjggSmFuIDIwMjEgMjA6MDU6MTMgKzExMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzNdIElu dHJvZHVjZSBhIF9YZnRDb21wb3NpdGVUZXh0IGhlbHBlciBmdW5jdGlvbgorCitEaXNwYXRjaCB0 byBYUmVuZGVyQ29tcG9zaXRlVGV4dHs4LDE2LDMyfSBiYXNlZCBvZmYgdGhlIGdpdmVuIHdpZHRo LgorCitTaWduZWQtb2ZmLWJ5OiBNYXhpbWUgQ29zdGUgPG1hd3d3QGtha291bmUub3JnPgorLS0t Cisgc3JjL3hmdHJlbmRlci5jIHwgODMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCAzNCBk ZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy94ZnRyZW5kZXIuYyBiL3NyYy94ZnRyZW5k ZXIuYworaW5kZXggMTgxYzI3YS4uNTg1MmIyZSAxMDA2NDQKKy0tLSBhL3NyYy94ZnRyZW5kZXIu YworKysrIGIvc3JjL3hmdHJlbmRlci5jCitAQCAtMTY0LDYgKzE2NCw0OSBAQCBiYWlsMToKKyAJ X1hmdEZvbnRNYW5hZ2VNZW1vcnkgKGRweSwgcHViKTsKKyB9CisgCisrLyoKKysgKiBEaXNwYXRj aCBnbHlwaCBkcmF3aW5nIHRvIHRoZSBjb3JyZWN0IFhSZW5kZXJDb21wb3NpdGVUZXh0IGZ1bmN0 aW9uCisrICovCisrc3RhdGljIHZvaWQKKytfWGZ0Q29tcG9zaXRlVGV4dCAoRGlzcGxheSAgICAg ICAgICAgKmRweSwKKysgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgb3AsCisr ICAgICAgICAgICAgICAgICAgIFBpY3R1cmUgICAgICAgICAgIHNyYywKKysgICAgICAgICAgICAg ICAgICAgUGljdHVyZSAgICAgICAgICAgZHN0LAorKyAgICAgICAgICAgICAgICAgICBYUmVuZGVy UGljdEZvcm1hdCAqZm9ybWF0LAorKyAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAg ICBzcmN4LAorKyAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICBzcmN5LAorKyAg ICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICBkc3R4LAorKyAgICAgICAgICAgICAg ICAgICBpbnQgICAgICAgICAgICAgICBkc3R5LAorKyAgICAgICAgICAgICAgICAgICBpbnQgICAg ICAgICAgICAgICBlbHR3aWR0aCwKKysgICAgICAgICAgICAgICAgICAgWEdseXBoRWx0OCAgICAg ICAgKmVsdHMsCisrICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgIG5lbHQpCisr eworKyAgICBpZiAobmVsdCA9PSAwKQorKyAgICAgICAgcmV0dXJuOworKworKyAgICBzd2l0Y2gg KGVsdHdpZHRoKSB7CisrICAgIGNhc2UgMToKKysgICAgZGVmYXVsdDoKKysJWFJlbmRlckNvbXBv c2l0ZVRleHQ4IChkcHksIG9wLAorKwkJCSAgICAgICBzcmMsIGRzdCwgZm9ybWF0LAorKwkJCSAg ICAgICBzcmN4LCBzcmN5LCBkc3R4LCBkc3R5LAorKwkgICAgICAgICAgICAgICAgICAgICAgIChY R2x5cGhFbHQ4KillbHRzLCBuZWx0KTsKKysJYnJlYWs7CisrICAgIGNhc2UgMjoKKysJWFJlbmRl ckNvbXBvc2l0ZVRleHQxNihkcHksIG9wLAorKwkJCSAgICAgICBzcmMsIGRzdCwgZm9ybWF0LAor KwkJCSAgICAgICBzcmN4LCBzcmN5LCBkc3R4LCBkc3R5LAorKwkgICAgICAgICAgICAgICAgICAg ICAgIChYR2x5cGhFbHQxNiopZWx0cywgbmVsdCk7CisrCWJyZWFrOworKyAgICBjYXNlIDQ6Cisr CVhSZW5kZXJDb21wb3NpdGVUZXh0MzIoZHB5LCBvcCwKKysJCQkgICAgICAgc3JjLCBkc3QsIGZv cm1hdCwKKysJCQkgICAgICAgc3JjeCwgc3JjeSwgZHN0eCwgZHN0eSwKKysJICAgICAgICAgICAg ICAgICAgICAgICAoWEdseXBoRWx0MzIqKWVsdHMsIG5lbHQpOworKwlicmVhazsKKysgICAgfQor K30KKysKKyBfWF9FWFBPUlQgdm9pZAorIFhmdEdseXBoU3BlY1JlbmRlciAoRGlzcGxheQkJICAg ICpkcHksCisgCQkgICAgaW50CQkJICAgIG9wLAorQEAgLTM0NSwyMyArMzg4LDkgQEAgWGZ0R2x5 cGhTcGVjUmVuZGVyIChEaXNwbGF5CQkgICAgKmRweSwKKyAJZWx0c1tuZWx0XS5uY2hhcnMgPSBu OworIAluZWx0Kys7CisgICAgIH0KKy0gICAgc3dpdGNoICh3aWR0aCkgeworLSAgICBjYXNlIDE6 CistCVhSZW5kZXJDb21wb3NpdGVUZXh0OCAoZHB5LCBvcCwgc3JjLCBkc3QsIGZvbnQtPmZvcm1h dCwKKy0JCQkgICAgICAgc3JjeCwgc3JjeSwgZ2x5cGhzWzBdLngsIGdseXBoc1swXS55LAorLQkJ CSAgICAgICBlbHRzLCBuZWx0KTsKKy0JYnJlYWs7CistICAgIGNhc2UgMjoKKy0JWFJlbmRlckNv bXBvc2l0ZVRleHQxNiAoZHB5LCBvcCwgc3JjLCBkc3QsIGZvbnQtPmZvcm1hdCwKKy0JCQkJc3Jj eCwgc3JjeSwgZ2x5cGhzWzBdLngsIGdseXBoc1swXS55LAorLQkJCQkoWEdseXBoRWx0MTYgKikg ZWx0cywgbmVsdCk7CistCWJyZWFrOworLSAgICBjYXNlIDQ6CistCVhSZW5kZXJDb21wb3NpdGVU ZXh0MzIgKGRweSwgb3AsIHNyYywgZHN0LCBmb250LT5mb3JtYXQsCistCQkJCXNyY3gsIHNyY3ks IGdseXBoc1swXS54LCBnbHlwaHNbMF0ueSwKKy0JCQkJKFhHbHlwaEVsdDMyICopIGVsdHMsIG5l bHQpOworLQlicmVhazsKKy0gICAgfQorKyAgICBfWGZ0Q29tcG9zaXRlVGV4dChkcHksIG9wLCBz cmMsIGRzdCwgZm9udC0+Zm9ybWF0LAorKwkJICAgICAgc3JjeCwgc3JjeSwgZ2x5cGhzWzBdLngs IGdseXBoc1swXS55LAorKwkJICAgICAgd2lkdGgsIGVsdHMsIG5lbHQpOworIAorICAgICBpZiAo ZWx0cyAhPSBlbHRzX2xvY2FsKQorIAlmcmVlIChlbHRzKTsKK0BAIC02MzUsMjMgKzY2NCw5IEBA IFhmdEdseXBoRm9udFNwZWNSZW5kZXIgKERpc3BsYXkJCQkgICAgKmRweSwKKyAJZWx0c1tuZWx0 XS5uY2hhcnMgPSBuOworIAluZWx0Kys7CisgICAgIH0KKy0gICAgc3dpdGNoICh3aWR0aCkgewor LSAgICBjYXNlIDE6CistCVhSZW5kZXJDb21wb3NpdGVUZXh0OCAoZHB5LCBvcCwgc3JjLCBkc3Qs IGZvcm1hdCwKKy0JCQkgICAgICAgc3JjeCwgc3JjeSwgZ2x5cGhzWzBdLngsIGdseXBoc1swXS55 LAorLQkJCSAgICAgICBlbHRzLCBuZWx0KTsKKy0JYnJlYWs7CistICAgIGNhc2UgMjoKKy0JWFJl bmRlckNvbXBvc2l0ZVRleHQxNiAoZHB5LCBvcCwgc3JjLCBkc3QsIGZvcm1hdCwKKy0JCQkJc3Jj eCwgc3JjeSwgZ2x5cGhzWzBdLngsIGdseXBoc1swXS55LAorLQkJCQkoWEdseXBoRWx0MTYgKikg ZWx0cywgbmVsdCk7CistCWJyZWFrOworLSAgICBjYXNlIDQ6CistCVhSZW5kZXJDb21wb3NpdGVU ZXh0MzIgKGRweSwgb3AsIHNyYywgZHN0LCBmb3JtYXQsCistCQkJCXNyY3gsIHNyY3ksIGdseXBo c1swXS54LCBnbHlwaHNbMF0ueSwKKy0JCQkJKFhHbHlwaEVsdDMyICopIGVsdHMsIG5lbHQpOwor LQlicmVhazsKKy0gICAgfQorKyAgICBfWGZ0Q29tcG9zaXRlVGV4dChkcHksIG9wLCBzcmMsIGRz dCwgZm9ybWF0LAorKwkJICAgICAgc3JjeCwgc3JjeSwgZ2x5cGhzWzBdLngsIGdseXBoc1swXS55 LAorKwkJICAgICAgd2lkdGgsIGVsdHMsIG5lbHQpOworIAorICAgICBpZiAoZWx0cyAhPSBlbHRz X2xvY2FsKQorIAlmcmVlIChlbHRzKTsKKy0tIAorMi4zMi4wCisKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGliWGZ0L3BhdGNoZXMvMDAwMy1BZGQtc3VwcG9ydC1mb3ItQkdSQS1nbHlwaHMtZGlzcGxh eS1hbmQtc2NhbGluZy5wYXRjaCBiL3NyY3BrZ3MvbGliWGZ0L3BhdGNoZXMvMDAwMy1BZGQtc3Vw cG9ydC1mb3ItQkdSQS1nbHlwaHMtZGlzcGxheS1hbmQtc2NhbGluZy5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjczYTc4NDJiNjM0OAotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvbGliWGZ0L3BhdGNoZXMvMDAwMy1BZGQtc3VwcG9ydC1mb3ItQkdSQS1n bHlwaHMtZGlzcGxheS1hbmQtc2NhbGluZy5wYXRjaApAQCAtMCwwICsxLDY0MiBAQAorRnJvbSBk Mzg1YWEzZTUzMjBkMTg5MTg0MTNkZjBlOGFlZjNhNzEzYTQ3ZTBiIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogTWF4aW1lIENvc3RlIDxtYXd3d0BrYWtvdW5lLm9yZz4KK0RhdGU6IFR1 ZSwgMjIgT2N0IDIwMTkgMjI6NDY6NDkgKzExMDAKK1N1YmplY3Q6IFtQQVRDSCAzLzNdIEFkZCBz dXBwb3J0IGZvciBCR1JBIGdseXBocyBkaXNwbGF5IGFuZCBzY2FsaW5nCisKK0Rpc3BsYXkgaXMg ZG9uZSB1c2luZyBhbiBYUmVuZGVyIFBpY3R1cmUsIGFzIFhSZW5kZXIKK2dseXBocyBhcmUgaW5j b21wYXRpYmxlIHdpdGggQkdSQSByZW5kZXJpbmcgZHVlIHRvCit0aGVpciB1c2Ugb2YgdGhlIGds eXBoIGJpdG1hcCBhcyBhIG1hc2suCisKK1NjYWxpbmcgaXMgZG9uZSBieSBhdmVyYWdpbmcgYWxs IHJlbGV2YW50IHBpeGVsLCB3aGljaCBnaXZlcworbXVjaCBiZXR0ZXIgcmVzdWx0IHRoYW4gbmVh cmVzdCBwaXhlbCBzYW1wbGluZyB3aGlsZSBzdGF5aW5nCitzaW1wbGUgZW5vdWdoIGFuZCBub3Qg dG9vIGNvbXB1dGF0aW9uYWxseSBleHBlbnNpdmUuCisKK1RoaXMgZW5hYmxlcyBjb2xvciBlbW9q aSByZW5kZXJpbmcgc3VwcG9ydC4KKworRml4ZXM6ICM2CisKK1NpZ25lZC1vZmYtYnk6IE1heGlt ZSBDb3N0ZSA8bWF3d3dAa2Frb3VuZS5vcmc+CistLS0KKyBzcmMveGZ0ZnJlZXR5cGUuYyB8ICAx OCArKystCisgc3JjL3hmdGdseXBocy5jICAgfCAyMzQgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLQorIHNyYy94ZnRpbnQuaCAgICAgIHwgICAyICsKKyBzcmMv eGZ0cmVuZGVyLmMgICB8ICA2OSArKysrKysrKysrKy0tLQorIDQgZmlsZXMgY2hhbmdlZCwgMjkz IGluc2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL3hmdGZy ZWV0eXBlLmMgYi9zcmMveGZ0ZnJlZXR5cGUuYworaW5kZXggMWY3OWE4MS4uNDMyNWQ2NSAxMDA2 NDQKKy0tLSBhL3NyYy94ZnRmcmVldHlwZS5jCisrKysgYi9zcmMveGZ0ZnJlZXR5cGUuYworQEAg LTUyMyw3ICs1MjMsNyBAQCBYZnRGb250SW5mb0ZpbGwgKERpc3BsYXkgKmRweSwgX1hjb25zdCBG Y1BhdHRlcm4gKnBhdHRlcm4sIFhmdEZvbnRJbmZvICpmaSkKKyAgICAgLyoKKyAgICAgICogQ29t cHV0ZSBnbHlwaCBsb2FkIGZsYWdzCisgICAgICAqLworLSAgICBmaS0+bG9hZF9mbGFncyA9IEZU X0xPQURfREVGQVVMVDsKKysgICAgZmktPmxvYWRfZmxhZ3MgPSBGVF9MT0FEX0RFRkFVTFQgfCBG VF9MT0FEX0NPTE9SOworIAorICNpZm5kZWYgWEZUX0VNQkVEREVEX0JJVE1BUAorICNkZWZpbmUg WEZUX0VNQkVEREVEX0JJVE1BUCAiZW1iZWRkZWRiaXRtYXAiCitAQCAtNzc1LDYgKzc3NSw3IEBA IFhmdEZvbnRPcGVuSW5mbyAoRGlzcGxheQkqZHB5LAorICAgICBGY0NoYXIzMgkJaGFzaF92YWx1 ZTsKKyAgICAgRmNDaGFyMzIJCXJlaGFzaF92YWx1ZTsKKyAgICAgRmNCb29sCQlhbnRpYWxpYXM7 CisrICAgIEZjQm9vbAkJY29sb3I7CisgICAgIGludAkJCW1heF9nbHlwaF9tZW1vcnk7CisgICAg IGludAkJCWFsbG9jX3NpemU7CisgICAgIGludAkJCWFzY2VudCwgZGVzY2VudCwgaGVpZ2h0Owor QEAgLTgzMSwxMiArODMyLDE4IEBAIFhmdEZvbnRPcGVuSW5mbyAoRGlzcGxheQkqZHB5LAorICAg ICBpZiAoIShmYWNlLT5mYWNlX2ZsYWdzICYgRlRfRkFDRV9GTEFHX1NDQUxBQkxFKSkKKyAJYW50 aWFsaWFzID0gRmNGYWxzZTsKKyAKKysgICAgY29sb3IgPSBGVF9IQVNfQ09MT1IoZmFjZSkgPyBG Y1RydWUgOiBGY0ZhbHNlOworKworICAgICAvKgorICAgICAgKiBGaW5kIHRoZSBhcHByb3ByaWF0 ZSBwaWN0dXJlIGZvcm1hdAorICAgICAgKi8KKyAgICAgaWYgKGZpLT5yZW5kZXIpCisgICAgIHsK Ky0JaWYgKGFudGlhbGlhcykKKysJaWYgKGNvbG9yKQorKwl7CisrCSAgICBmb3JtYXQgPSBYUmVu ZGVyRmluZFN0YW5kYXJkRm9ybWF0IChkcHksIFBpY3RTdGFuZGFyZEFSR0IzMik7CisrCX0KKysJ ZWxzZSBpZiAoYW50aWFsaWFzKQorIAl7CisgCSAgICBzd2l0Y2ggKGZpLT5yZ2JhKSB7CisgCSAg ICBjYXNlIEZDX1JHQkFfUkdCOgorQEAgLTk2OCw2ICs5NzUsMTMgQEAgWGZ0Rm9udE9wZW5JbmZv IChEaXNwbGF5CSpkcHksCisgICAgICAqIHdoaWNoIGRvZXNuJ3QgaGFwcGVuIGluIFhmdEZvbnRJ bmZvRmlsbAorICAgICAgKi8KKyAgICAgZm9udC0+aW5mby5hbnRpYWxpYXMgPSBhbnRpYWxpYXM7 CisrCisrICAgIC8qCisrICAgICAqIFNldCBjb2xvciB2YWx1ZSwgd2hpY2ggaXMgb25seSBrbm93 biBvbmNlIHRoZQorKyAgICAgKiBmb250IHdhcyBsb2FkZWQKKysgICAgICovCisrICAgIGZvbnQt PmluZm8uY29sb3IgPSBjb2xvcjsKKysKKyAgICAgLyoKKyAgICAgICogYnVtcCBYZnRGaWxlIHJl ZmVyZW5jZSBjb3VudAorICAgICAgKi8KK2RpZmYgLS1naXQgYS9zcmMveGZ0Z2x5cGhzLmMgYi9z cmMveGZ0Z2x5cGhzLmMKK2luZGV4IGI1MzZkZjQuLmUwYmFkMTAgMTAwNjQ0CistLS0gYS9zcmMv eGZ0Z2x5cGhzLmMKKysrKyBiL3NyYy94ZnRnbHlwaHMuYworQEAgLTI2LDYgKzI2LDggQEAKKyAK KyAjaW5jbHVkZSBGVF9TWU5USEVTSVNfSAorIAorKyNpbmNsdWRlIEZUX0dMWVBIX0gKKysKKyAv KgorICAqIFZhbGlkYXRlIHRoZSBtZW1vcnkgaW5mbyBmb3IgYSBmb250CisgICovCitAQCAtNzgs OSArODAsMTEgQEAgX1hmdEZvbnRWYWxpZGF0ZU1lbW9yeSAoRGlzcGxheSAqZHB5LCBYZnRGb250 ICpwdWJsaWMpCisgc3RhdGljIGludAorIF9jb21wdXRlX3hyZW5kZXJfYml0bWFwX3NpemUoIEZU X0JpdG1hcCoJdGFyZ2V0LAorIAkJCSAgICAgIEZUX0dseXBoU2xvdAlzbG90LAorLQkJCSAgICAg IEZUX1JlbmRlcl9Nb2RlCW1vZGUgKQorKwkJCSAgICAgIEZUX1JlbmRlcl9Nb2RlCW1vZGUsCisr CQkJICAgICAgRlRfTWF0cml4KiAgICAgICAgbWF0cml4ICkKKyB7CisgICAgIEZUX0JpdG1hcCoJ ZnRiaXQ7CisrICAgIEZUX1ZlY3Rvcgl2ZWN0b3I7CisgICAgIGludAkJd2lkdGgsIGhlaWdodCwg cGl0Y2g7CisgCisgICAgIGlmICggc2xvdC0+Zm9ybWF0ICE9IEZUX0dMWVBIX0ZPUk1BVF9CSVRN QVAgKQorQEAgLTkxLDYgKzk1LDE2IEBAIF9jb21wdXRlX3hyZW5kZXJfYml0bWFwX3NpemUoIEZU X0JpdG1hcCoJdGFyZ2V0LAorIAorICAgICB3aWR0aCA9IChpbnQpZnRiaXQtPndpZHRoOworICAg ICBoZWlnaHQgPSAoaW50KWZ0Yml0LT5yb3dzOworKworKyAgICBpZiAoIG1hdHJpeCAmJiBtb2Rl ID09IEZUX1JFTkRFUl9NT0RFX05PUk1BTCApCisrICAgIHsKKysJdmVjdG9yLnggPSBmdGJpdC0+ d2lkdGg7CisrCXZlY3Rvci55ID0gZnRiaXQtPnJvd3M7CisrCUZUX1ZlY3Rvcl9UcmFuc2Zvcm0o JnZlY3RvciwgbWF0cml4KTsKKysKKysJd2lkdGggPSAoaW50KXZlY3Rvci54OworKwloZWlnaHQg PSAoaW50KXZlY3Rvci55OworKyAgICB9CisgICAgIHBpdGNoID0gKHdpZHRoKzMpICYgfjM7Cisg CisgICAgIHN3aXRjaCAoIGZ0Yml0LT5waXhlbF9tb2RlICkKK0BAIC0xMTIsNiArMTI2LDEwIEBA IF9jb21wdXRlX3hyZW5kZXJfYml0bWFwX3NpemUoIEZUX0JpdG1hcCoJdGFyZ2V0LAorIAl9Cisg CWJyZWFrOworIAorKyAgICBjYXNlIEZUX1BJWEVMX01PREVfQkdSQToKKysJcGl0Y2ggPSB3aWR0 aCAqIDQ7CisrCWJyZWFrOworKworICAgICBjYXNlIEZUX1BJWEVMX01PREVfTENEOgorIAlpZiAo IG1vZGUgIT0gRlRfUkVOREVSX01PREVfTENEICkKKyAJICAgIHJldHVybiAtMTsKK0BAIC0xNDIs NiArMTYwLDEwNSBAQCBfY29tcHV0ZV94cmVuZGVyX2JpdG1hcF9zaXplKCBGVF9CaXRtYXAqCXRh cmdldCwKKyAgICAgcmV0dXJuIHBpdGNoICogaGVpZ2h0OworIH0KKyAKKysvKiB0aGlzIGZ1bmN0 aW9ucyBjb252ZXJ0cyB0aGUgZ2x5cGggYml0bWFwIGZvdW5kIGluIGEgRlRfR2x5cGhTbG90Cisr ICogaW50byBhIGRpZmZlcmVudCBmb3JtYXQgd2hpbGUgc2NhbGluZyBieSBhcHBseWluZyB0aGUg Z2l2ZW4gbWF0cml4CisrICogKHNlZSBfY29tcHV0ZV94cmVuZGVyX2JpdG1hcF9zaXplKQorKyAq CisrICogeW91IHNob3VsZCBjYWxsIHRoaXMgZnVuY3Rpb24gYWZ0ZXIgX2NvbXB1dGVfeHJlbmRl cl9iaXRtYXBfc2l6ZQorKyAqCisrICogdGFyZ2V0IDo6IHRhcmdldCBiaXRtYXAgZGVzY3JpcHRv ci4gTm90ZSB0aGF0IGl0cyAnYnVmZmVyJyBwb2ludGVyCisrICogICAgICAgICAgIG11c3QgcG9p bnQgdG8gbWVtb3J5IGFsbG9jYXRlZCBieSB0aGUgY2FsbGVyCisrICoKKysgKiBzb3VyY2UgOjog dGhlIHNvdXJjZSBiaXRtYXAgZGVzY3JpcHRvcgorKyAqCisrICogbWF0cml4IDo6IHRoZSBzY2Fs aW5nIG1hdHJpeCB0byBhcHBseQorKyAqLworK3N0YXRpYyB2b2lkCisrX3NjYWxlZF9maWxsX3hy ZW5kZXJfYml0bWFwKCBGVF9CaXRtYXAqCXRhcmdldCwKKysJCSAgICAgICAgICAgICBGVF9CaXRt YXAqIHNvdXJjZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZUX01hdHJp eCogbWF0cml4ICkKKyt7CisrICAgIHVuc2lnbmVkIGNoYXIqCXNyY19idWYJICA9IHNvdXJjZS0+ YnVmZmVyOworKyAgICB1bnNpZ25lZCBjaGFyKglkc3RfbGluZSAgPSB0YXJnZXQtPmJ1ZmZlcjsK KysgICAgaW50CQkJc3JjX3BpdGNoID0gc291cmNlLT5waXRjaDsKKysgICAgaW50CQkJd2lkdGgg ICAgID0gdGFyZ2V0LT53aWR0aDsKKysgICAgaW50CQkJaGVpZ2h0ICAgID0gdGFyZ2V0LT5yb3dz OworKyAgICBpbnQJCQlwaXRjaCAgICAgPSB0YXJnZXQtPnBpdGNoOworKyAgICBpbnQJCQloOwor KyAgICBGVF9WZWN0b3IJCXZlY3RvcjsKKysgICAgRlRfTWF0cml4CQlpbnZlcnNlCSAgPSAqbWF0 cml4OworKyAgICBpbnQJCQlzYW1wbGluZ193aWR0aDsKKysgICAgaW50CQkJc2FtcGxpbmdfaGVp Z2h0OworKyAgICBpbnQJCQlzYW1wbGVfY291bnQ7CisrCisrICAgIGlmICggc3JjX3BpdGNoIDwg MCApCisrCXNyY19idWYgLT0gc3JjX3BpdGNoICogKHNvdXJjZS0+cm93cyAtIDEpOworKworKyAg ICBGVF9NYXRyaXhfSW52ZXJ0KCZpbnZlcnNlKTsKKysKKysgICAgLyogY29tcHV0ZSBob3cgbWFu eSBzb3VyY2UgcGl4ZWxzIGEgdGFyZ2V0IHBpeGVsIHNwYW5zICovCisrICAgIHZlY3Rvci54ID0g MTsKKysgICAgdmVjdG9yLnkgPSAxOworKyAgICBGVF9WZWN0b3JfVHJhbnNmb3JtKCZ2ZWN0b3Is ICZpbnZlcnNlKTsKKysgICAgc2FtcGxpbmdfd2lkdGggPSB2ZWN0b3IueCAvIDI7CisrICAgIHNh bXBsaW5nX2hlaWdodCA9IHZlY3Rvci55IC8gMjsKKysgICAgc2FtcGxlX2NvdW50ID0gKDIgKiBz YW1wbGluZ193aWR0aCArIDEpICogKDIgKiBzYW1wbGluZ19oZWlnaHQgKyAxKTsKKysKKysgICAg Zm9yCSggaCA9IGhlaWdodDsgaAk+IDA7IGgtLSwgZHN0X2xpbmUgKz0gcGl0Y2ggKQorKyAgICB7 CisrCWludCB4OworKworKwlmb3IgKCB4CT0gMDsgeCA8IHdpZHRoOwl4KysgKQorKwl7CisrCSAg ICB1bnNpZ25lZCBjaGFyKiBzcmM7CisrCisrI2RlZmluZSBDTEFNUCh4LCBtaW4sIG1heCkgKCh4 KSA8IChtaW4pID8gKG1pbikgOiAoKHgpID4gKG1heCkgPyAobWF4KSA6ICh4KSkpCisrCisrICAg ICAgICAgICAgLyogY29tcHV0ZSB0YXJnZXQgcGl4ZWwgbG9jYXRpb24gaW4gc291cmNlIHNwYWNl ICovCisrCSAgICB2ZWN0b3IueCA9ICh4ICAgICAgICAgICAgKiAweDEwMDAwKSArIDB4MTAwMDAg LyAyOworKwkgICAgdmVjdG9yLnkgPSAoKGhlaWdodCAtIGgpICogMHgxMDAwMCkgKyAweDEwMDAw IC8gMjsKKysJICAgIEZUX1ZlY3Rvcl9UcmFuc2Zvcm0oJnZlY3RvciwgJmludmVyc2UpOworKwkg ICAgdmVjdG9yLnggPSBDTEFNUChGVF9Sb3VuZEZpeCh2ZWN0b3IueCkgLyAweDEwMDAwLCAwLCBz b3VyY2UtPndpZHRoIC0gMSk7CisrCSAgICB2ZWN0b3IueSA9IENMQU1QKEZUX1JvdW5kRml4KHZl Y3Rvci55KSAvIDB4MTAwMDAsIDAsIHNvdXJjZS0+cm93cyAgLSAxKTsKKysKKysJICAgIHN3aXRj aCAoIHNvdXJjZS0+cGl4ZWxfbW9kZQkpCisrCSAgICB7CisrCSAgICBjYXNlIEZUX1BJWEVMX01P REVfTU9OTzogLyogY29udmVydCBtb25vIHRvIDgtYml0IGdyYXksIHNjYWxlIHVzaW5nIG5lYXJl c3QgcGl4ZWwgKi8KKysJCXNyYyA9IHNyY19idWYgKyAodmVjdG9yLnkgKiBzcmNfcGl0Y2gpOwor KwkJaWYgKCBzcmNbKHZlY3Rvci54ID4+IDMpXSAmICgweDgwID4+ICh2ZWN0b3IueCAmIDcpKSAp CisrCQkgICAgZHN0X2xpbmVbeF0gPSAweGZmOworKwkJYnJlYWs7CisrCisrCSAgICBjYXNlIEZU X1BJWEVMX01PREVfR1JBWTogLyogc2NhbGUgdXNpbmcgbmVhcmVzdCBwaXhlbCAqLworKwkJc3Jj ID0gc3JjX2J1ZiArICh2ZWN0b3IueSAqIHNyY19waXRjaCk7CisrCQlkc3RfbGluZVt4XSA9IHNy Y1t2ZWN0b3IueF07CisrCQlicmVhazsKKysKKysJICAgIGNhc2UgRlRfUElYRUxfTU9ERV9CR1JB OiAvKiBzY2FsZSBieSBhdmVyYWdpbmcgYWxsIHJlbGV2YW50IHNvdXJjZSBwaXhlbHMsIGtlZXAg QkdSQSBmb3JtYXQgKi8KKysJICAgIHsKKysJCWludCBzYW1wbGVfeCwgc2FtcGxlX3k7CisrCQlp bnQgYmdyYVs0XSA9IHt9OworKwkJZm9yIChzYW1wbGVfeSA9IC0gc2FtcGxpbmdfaGVpZ2h0OyBz YW1wbGVfeSA8IHNhbXBsaW5nX2hlaWdodCArIDE7ICsrc2FtcGxlX3kpCisrCQl7CisrCQkgICAg aW50IHNyY195ID0gQ0xBTVAodmVjdG9yLnkgKyBzYW1wbGVfeSwgMCwgc291cmNlLT5yb3dzIC0g MSk7CisrCQkgICAgc3JjID0gc3JjX2J1ZiArIChzcmNfeSAqIHNyY19waXRjaCk7CisrCQkgICAg Zm9yIChzYW1wbGVfeCA9IC0gc2FtcGxpbmdfd2lkdGg7IHNhbXBsZV94IDwgc2FtcGxpbmdfd2lk dGggKyAxOyArK3NhbXBsZV94KQorKwkJICAgIHsKKysJCQlpbnQgc3JjX3ggPSBDTEFNUCh2ZWN0 b3IueCArIHNhbXBsZV94LCAwLCBzb3VyY2UtPndpZHRoIC0gMSk7CisrCQkJZm9yIChpbnQgaSA9 IDA7IGkgPCA0OyArK2kpCisrCQkJICAgIGJncmFbaV0gKz0gc3JjW3NyY194ICogNCArIGldOwor KwkJICAgIH0KKysJCX0KKysKKysJCWZvciAoaW50IGkgPSAwOyBpIDwgNDsgKytpKQorKwkJICAg IGRzdF9saW5lWzQgKiB4ICsgaV0gPSBiZ3JhW2ldIC8gc2FtcGxlX2NvdW50OworKwkJYnJlYWs7 CisrCSAgICB9CisrCSAgICB9CisrCX0KKysgICAgfQorK30KKysKKyAvKiB0aGlzIGZ1bmN0aW9u cyBjb252ZXJ0cyB0aGUgZ2x5cGggYml0bWFwIGZvdW5kIGluIGEgRlRfR2x5cGhTbG90CisgICog aW50byBhIGRpZmZlcmVudCBmb3JtYXQgKHNlZSBfY29tcHV0ZV94cmVuZGVyX2JpdG1hcF9zaXpl KQorICAqCitAQCAtMjQ0LDYgKzM2MSwxMSBAQCBfZmlsbF94cmVuZGVyX2JpdG1hcCggRlRfQml0 bWFwKgl0YXJnZXQsCisgCSAgICB9CisgCSAgICBicmVhazsKKyAKKysJY2FzZSBGVF9QSVhFTF9N T0RFX0JHUkE6IC8qIFByZXNlcnZlIEJHUkEgZm9ybWF0ICovCisrCSAgICBmb3IgKCBoID0gaGVp Z2h0OyBoID4gMDsgaC0tLCBzcmNMaW5lICs9IHNyY19waXRjaCwgZHN0TGluZSArPSBwaXRjaCAp CisrCQltZW1jcHkoIGRzdExpbmUsIHNyY0xpbmUsIHdpZHRoICogNCApOworKwkgICAgYnJlYWs7 CisrCisgCWNhc2UgRlRfUElYRUxfTU9ERV9MQ0Q6CisgCSAgICBpZiAoICFiZ3IgKQorIAkgICAg eworQEAgLTMzOSw2ICs0NjEsNTUgQEAgX2ZpbGxfeHJlbmRlcl9iaXRtYXAoIEZUX0JpdG1hcCoJ dGFyZ2V0LAorICAgICB9CisgfQorIAorKy8qIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIFBpY3R1 cmUgZm9yIHRoZSBnaXZlbiBnbHlwaCBvbiB0aGUgZGVmYXVsdCByb290IHdpbmRvdworKyAqIEl0 IHdpbGwgb25seSB3b3JrIGluIFhpbmVyYW1hIG1vZGUKKysgKiAKKysgKiBkcHkgICAgOjogdGFy Z2V0IGRpc3BsYXkKKysgKiAKKysgKiBmb3JtYXQgOjogdGFyZ2V0IHBpeG1hcCBmb3JtYXQKKysg KiAKKysgKiB3aWR0aCAgOjogcGljdHVyZSB3aWR0aAorKyAqIAorKyAqIHdpZHRoICA6OiBwaWN0 dXJlIGhlaWdodAorKyAqIAorKyAqIGRhdGEgICA6OiBiaXRtYXAgZGF0YQorKyAqIAorKyAqLwor K3N0YXRpYyBQaWN0dXJlCisrX2NyZWF0ZV9nbHlwaF9iZ3JhX3BpY3R1cmUgKERpc3BsYXkgICAg ICAgICAgICpkcHksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhSZW5kZXJQaWN0Rm9y bWF0ICpmb3JtYXQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAg ICAgIHdpZHRoLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAg ICBoZWlnaHQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgICAg ICpkYXRhKQorK3sKKysgICAgWEltYWdlIGltYWdlID0geworKyAgICAgICAgd2lkdGgsIGhlaWdo dCwgMCwgWlBpeG1hcCwgKGNoYXIgKilkYXRhLAorKyAgICAgICAgZHB5LT5ieXRlX29yZGVyLCBk cHktPmJpdG1hcF91bml0LCBkcHktPmJpdG1hcF9iaXRfb3JkZXIsIDMyLAorKyAgICAgICAgMzIs IDAsIDMyLAorKyAgICAgICAgMCwgMCwgMAorKyAgICB9OworKyAgICBQaWN0dXJlIHBpY3R1cmU7 CisrICAgIFBpeG1hcCBwaXhtYXA7CisrICAgIEdDIGdjOworKworKyAgICBwaXhtYXAgPSBYQ3Jl YXRlUGl4bWFwKGRweSwgRGVmYXVsdFJvb3RXaW5kb3coZHB5KSwgd2lkdGgsIGhlaWdodCwgMzIp OworKyAgICBpZiAoIXBpeG1hcCkKKysgICAgICAgIHJldHVybiBOb25lOworKworKyAgICBnYyA9 IFhDcmVhdGVHQyhkcHksIHBpeG1hcCwgMCwgTlVMTCk7CisrICAgIGlmICghZ2MpCisrICAgICAg ICByZXR1cm4gTm9uZTsKKysKKysgICAgWEluaXRJbWFnZSgmaW1hZ2UpOworKyAgICBYUHV0SW1h Z2UoZHB5LCBwaXhtYXAsIGdjLCAmaW1hZ2UsIDAsIDAsIDAsIDAsIHdpZHRoLCBoZWlnaHQpOwor KyAgICBwaWN0dXJlID0gWFJlbmRlckNyZWF0ZVBpY3R1cmUoZHB5LCBwaXhtYXAsIGZvcm1hdCwg MCwgTlVMTCk7CisrCisrICAgIFhGcmVlR0MoZHB5LCBnYyk7CisrICAgIFhGcmVlUGl4bWFwKGRw eSwgcGl4bWFwKTsKKysKKysgICAgcmV0dXJuIHBpY3R1cmU7CisrfQorKworIF9YX0VYUE9SVCB2 b2lkCisgWGZ0Rm9udExvYWRHbHlwaHMgKERpc3BsYXkJICAgICpkcHksCisgCQkgICBYZnRGb250 CSAgICAqcHViLAorQEAgLTM2NSw2ICs1MzYsOCBAQCBYZnRGb250TG9hZEdseXBocyAoRGlzcGxh eQkgICAgKmRweSwKKyAgICAgRlRfVmVjdG9yCSAgICB2ZWN0b3I7CisgICAgIEZUX0ZhY2UJICAg IGZhY2U7CisgICAgIEZUX1JlbmRlcl9Nb2RlICBtb2RlID0gRlRfUkVOREVSX01PREVfTU9OTzsK KysgICAgRmNCb29sCSAgICB0cmFuc2Zvcm07CisrICAgIEZjQm9vbAkgICAgZ2x5cGhfdHJhbnNm b3JtOworIAorICAgICBpZiAoIWluZm8pCisgCXJldHVybjsKK0BAIC0zNzQsNiArNTQ3LDggQEAg WGZ0Rm9udExvYWRHbHlwaHMgKERpc3BsYXkJICAgICpkcHksCisgICAgIGlmICghZmFjZSkKKyAJ cmV0dXJuOworIAorKyAgICBpZiAoZm9udC0+aW5mby5jb2xvcikKKysgICAgICAgIG1vZGUgPSBG VF9SRU5ERVJfTU9ERV9OT1JNQUw7CisgICAgIGlmIChmb250LT5pbmZvLmFudGlhbGlhcykKKyAg ICAgeworIAlzd2l0Y2ggKGZvbnQtPmluZm8ucmdiYSkgeworQEAgLTM5MCw2ICs1NjUsOCBAQCBY ZnRGb250TG9hZEdseXBocyAoRGlzcGxheQkgICAgKmRweSwKKyAJfQorICAgICB9CisgCisrICAg IHRyYW5zZm9ybSA9IGZvbnQtPmluZm8udHJhbnNmb3JtICYmIG1vZGUgIT0gRlRfUkVOREVSX01P REVfTU9OTzsKKysKKyAgICAgd2hpbGUgKG5nbHlwaC0tKQorICAgICB7CisgCWdseXBoaW5kZXgg PSAqZ2x5cGhzKys7CitAQCAtNDQwLDcgKzYxNyw3IEBAIFhmdEZvbnRMb2FkR2x5cGhzIChEaXNw bGF5CSAgICAqZHB5LAorIAkvKgorIAkgKiBDb21wdXRlIGdseXBoIG1ldHJpY3MgZnJvbSBGcmVl VHlwZSBpbmZvcm1hdGlvbgorIAkgKi8KKy0JaWYoZm9udC0+aW5mby50cmFuc2Zvcm0gJiYgZ2x5 cGhzbG90LT5mb3JtYXQgIT0gRlRfR0xZUEhfRk9STUFUX0JJVE1BUCkKKysJaWYgKHRyYW5zZm9y bSkKKyAJeworIAkgICAgLyoKKyAJICAgICAqIGNhbGN1bGF0ZSB0aGUgdHJ1ZSB3aWR0aCBieSB0 cmFuc2Zvcm1pbmcgYWxsIGZvdXIgY29ybmVycy4KK0BAIC00ODcsNyArNjY0LDcgQEAgWGZ0Rm9u dExvYWRHbHlwaHMgKERpc3BsYXkJICAgICpkcHksCisgCSAqIENsaXAgY2hhcmNlbGwgZ2x5cGhz IHRvIHRoZSBib3VuZGluZyBib3gKKyAJICogWFhYIHRyYW5zZm9ybWVkPworIAkgKi8KKy0JaWYg KGZvbnQtPmluZm8uc3BhY2luZyA+PSBGQ19DSEFSQ0VMTCAmJiAhZm9udC0+aW5mby50cmFuc2Zv cm0pCisrCWlmIChmb250LT5pbmZvLnNwYWNpbmcgPj0gRkNfQ0hBUkNFTEwgJiYgIXRyYW5zZm9y bSkKKyAJeworIAkgICAgaWYgKGZvbnQtPmluZm8ubG9hZF9mbGFncyAmIEZUX0xPQURfVkVSVElD QUxfTEFZT1VUKQorIAkgICAgeworQEAgLTUxOSwxOCArNjk2LDIwIEBAIFhmdEZvbnRMb2FkR2x5 cGhzIChEaXNwbGF5CSAgICAqZHB5LAorIAkgICAgfQorIAl9CisgCisrCWdseXBoX3RyYW5zZm9y bSA9IHRyYW5zZm9ybTsKKyAJaWYgKCBnbHlwaHNsb3QtPmZvcm1hdCAhPSBGVF9HTFlQSF9GT1JN QVRfQklUTUFQICkKKyAJeworIAkgICAgZXJyb3IgPSBGVF9SZW5kZXJfR2x5cGgoIGZhY2UtPmds eXBoLCBtb2RlICk7CisgCSAgICBpZiAoZXJyb3IpCisgCQljb250aW51ZTsKKysJICAgIGdseXBo X3RyYW5zZm9ybSA9IEZhbHNlOworIAl9CisgCisgCUZUX0xpYnJhcnlfU2V0TGNkRmlsdGVyKCBf WGZ0RlRsaWJyYXJ5LCBGVF9MQ0RfRklMVEVSX05PTkUgKTsKKyAKKyAJaWYgKGZvbnQtPmluZm8u c3BhY2luZyA+PSBGQ19NT05PKQorIAl7CistCSAgICBpZiAoZm9udC0+aW5mby50cmFuc2Zvcm0p CisrCSAgICBpZiAodHJhbnNmb3JtKQorIAkgICAgeworIAkJaWYgKGZvbnQtPmluZm8ubG9hZF9m bGFncyAmIEZUX0xPQURfVkVSVElDQUxfTEFZT1VUKQorIAkJeworQEAgLTYxMywxNCArNzkyLDI3 IEBAIFhmdEZvbnRMb2FkR2x5cGhzIChEaXNwbGF5CSAgICAqZHB5LAorIAkgICAgfQorIAl9Cisg CistCXNpemUgPSBfY29tcHV0ZV94cmVuZGVyX2JpdG1hcF9zaXplKCAmbG9jYWwsIGdseXBoc2xv dCwgbW9kZSApOworKwlzaXplID0gX2NvbXB1dGVfeHJlbmRlcl9iaXRtYXBfc2l6ZSggJmxvY2Fs LCBnbHlwaHNsb3QsIG1vZGUsIGdseXBoX3RyYW5zZm9ybSA/ICZmb250LT5pbmZvLm1hdHJpeCA6 IE5VTEwgKTsKKyAJaWYgKCBzaXplIDwgMCApCisgCSAgICBjb250aW51ZTsKKyAKKyAJeGZ0Zy0+ bWV0cmljcy53aWR0aCAgPSAodW5zaWduZWQgc2hvcnQpbG9jYWwud2lkdGg7CisgCXhmdGctPm1l dHJpY3MuaGVpZ2h0ID0gKHVuc2lnbmVkIHNob3J0KWxvY2FsLnJvd3M7CistCXhmdGctPm1ldHJp Y3MueCAgICAgID0gKHNob3J0KSgtIGdseXBoc2xvdC0+Yml0bWFwX2xlZnQpOworLQl4ZnRnLT5t ZXRyaWNzLnkgICAgICA9IChzaG9ydCkoICBnbHlwaHNsb3QtPmJpdG1hcF90b3ApOworKwlpZiAo dHJhbnNmb3JtKQorKwl7CisrCSAgICB2ZWN0b3IueCA9IC0gZ2x5cGhzbG90LT5iaXRtYXBfbGVm dDsKKysJICAgIHZlY3Rvci55ID0gICBnbHlwaHNsb3QtPmJpdG1hcF90b3A7CisrCisrCSAgICBG VF9WZWN0b3JfVHJhbnNmb3JtKCZ2ZWN0b3IsICZmb250LT5pbmZvLm1hdHJpeCk7CisrCisrCSAg ICB4ZnRnLT5tZXRyaWNzLnggPSAoc2hvcnQpdmVjdG9yLng7CisrCSAgICB4ZnRnLT5tZXRyaWNz LnkgPSAoc2hvcnQpdmVjdG9yLnk7CisrCX0KKysJZWxzZQorKwl7CisrCSAgICB4ZnRnLT5tZXRy aWNzLnggPSAoc2hvcnQpKC0gZ2x5cGhzbG90LT5iaXRtYXBfbGVmdCk7CisrCSAgICB4ZnRnLT5t ZXRyaWNzLnkgPSAoc2hvcnQpKCAgZ2x5cGhzbG90LT5iaXRtYXBfdG9wKTsKKysJfQorIAorIAkv KgorIAkgKiBJZiB0aGUgZ2x5cGggaXMgcmVsYXRpdmVseSBsYXJnZSAoPiAxJSBvZiBzZXJ2ZXIg bWVtb3J5KSwKK0BAIC02NDUsOSArODM3LDEyIEBAIFhmdEZvbnRMb2FkR2x5cGhzIChEaXNwbGF5 CSAgICAqZHB5LAorIAorIAlsb2NhbC5idWZmZXIgPSBidWZCaXRtYXA7CisgCistCV9maWxsX3hy ZW5kZXJfYml0bWFwKCAmbG9jYWwsIGdseXBoc2xvdCwgbW9kZSwKKy0JCQkgICAgICAoZm9udC0+ aW5mby5yZ2JhID09IEZDX1JHQkFfQkdSIHx8CistCQkJICAgICAgIGZvbnQtPmluZm8ucmdiYSA9 PSBGQ19SR0JBX1ZCR1IgKSApOworKyAgICAgICAgaWYgKG1vZGUgPT0gRlRfUkVOREVSX01PREVf Tk9STUFMICYmIGdseXBoX3RyYW5zZm9ybSkKKysgICAgICAgICAgICBfc2NhbGVkX2ZpbGxfeHJl bmRlcl9iaXRtYXAoJmxvY2FsLCAmZ2x5cGhzbG90LT5iaXRtYXAsICZmb250LT5pbmZvLm1hdHJp eCk7CisrICAgICAgICBlbHNlCisrCSAgICBfZmlsbF94cmVuZGVyX2JpdG1hcCggJmxvY2FsLCBn bHlwaHNsb3QsIG1vZGUsCisrCQkJICAgICAgICAgIChmb250LT5pbmZvLnJnYmEgPT0gRkNfUkdC QV9CR1IgfHwKKysJCQkgICAgICAgICAgIGZvbnQtPmluZm8ucmdiYSA9PSBGQ19SR0JBX1ZCR1Ig KSApOworIAorIAkvKgorIAkgKiBDb3B5IG9yIGNvbnZlcnQgaW50byBsb2NhbCBidWZmZXIuCitA QCAtNjYyLDYgKzg1Nyw3IEBAIFhmdEZvbnRMb2FkR2x5cGhzIChEaXNwbGF5CSAgICAqZHB5LAor IAkgKi8KKyAJZ2x5cGggPSAoR2x5cGgpIGdseXBoaW5kZXg7CisgCisrCXhmdGctPnBpY3R1cmUg PSAwOworIAl4ZnRnLT5nbHlwaF9tZW1vcnkgPSAoc2l6ZV90KXNpemUgKyBzaXplb2YgKFhmdEds eXBoKTsKKyAJaWYgKGZvbnQtPmZvcm1hdCkKKyAJeworQEAgLTY4NSwxNSArODgxLDIxIEBAIFhm dEZvbnRMb2FkR2x5cGhzIChEaXNwbGF5CSAgICAqZHB5LAorIAkJICAgIH0KKyAJCX0KKyAJICAg IH0KKy0JICAgIGVsc2UgaWYgKCBtb2RlICE9IEZUX1JFTkRFUl9NT0RFX05PUk1BTCApCisrCSAg ICBlbHNlIGlmIChnbHlwaHNsb3QtPmJpdG1hcC5waXhlbF9tb2RlID09IEZUX1BJWEVMX01PREVf QkdSQSB8fCBtb2RlICE9IEZUX1JFTkRFUl9NT0RFX05PUk1BTCkKKyAJICAgIHsKKyAJCS8qIGlu dmVydCBBUkdCIDw9PiBCR1JBICovCisgCQlpZiAoSW1hZ2VCeXRlT3JkZXIgKGRweSkgIT0gWGZ0 TmF0aXZlQnl0ZU9yZGVyICgpKQorIAkJICAgIFhmdFN3YXBDQVJEMzIgKChDQVJEMzIgKikgYnVm Qml0bWFwLCBzaXplID4+IDIpOworIAkgICAgfQorLQkgICAgWFJlbmRlckFkZEdseXBocyAoZHB5 LCBmb250LT5nbHlwaHNldCwgJmdseXBoLAorLQkJCSAgICAgICZ4ZnRnLT5tZXRyaWNzLCAxLAor LQkJCSAgICAgIChjaGFyICopIGJ1ZkJpdG1hcCwgc2l6ZSk7CisrCisrCSAgICBpZiAoZ2x5cGhz bG90LT5iaXRtYXAucGl4ZWxfbW9kZSA9PSBGVF9QSVhFTF9NT0RFX0JHUkEpCisrICAgIAkgICAg ICAgIHhmdGctPnBpY3R1cmUgPSBfY3JlYXRlX2dseXBoX2JncmFfcGljdHVyZShkcHksIGZvbnQt PmZvcm1hdCwKKysgICAgCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxvY2FsLndpZHRoLCBsb2NhbC5yb3dzLAorKyAgICAJICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmQml0bWFwKTsKKysJICAgIGVs c2UKKysJCVhSZW5kZXJBZGRHbHlwaHMgKGRweSwgZm9udC0+Z2x5cGhzZXQsICZnbHlwaCwKKysJ CQkJICAmeGZ0Zy0+bWV0cmljcywgMSwKKysJCQkJICAoY2hhciAqKSBidWZCaXRtYXAsIHNpemUp OworIAl9CisgCWVsc2UKKyAJeworQEAgLTc0NCw3ICs5NDYsOSBAQCBYZnRGb250VW5sb2FkR2x5 cGhzIChEaXNwbGF5CQkqZHB5LAorIAl7CisgCSAgICBpZiAoZm9udC0+Zm9ybWF0KQorIAkgICAg eworLQkJaWYgKGZvbnQtPmdseXBoc2V0KQorKwkJaWYgKHhmdGctPnBpY3R1cmUpCisrCQkgICAg WFJlbmRlckZyZWVQaWN0dXJlKGRweSwgeGZ0Zy0+cGljdHVyZSk7CisrCQllbHNlIGlmIChmb250 LT5nbHlwaHNldCkKKyAJCXsKKyAJCSAgICBnbHlwaEJ1ZltudXNlZCsrXSA9IChHbHlwaCkgZ2x5 cGhpbmRleDsKKyAJCSAgICBpZiAobnVzZWQgPT0gc2l6ZW9mIChnbHlwaEJ1ZikgLyBzaXplb2Yg KGdseXBoQnVmWzBdKSkKK2RpZmYgLS1naXQgYS9zcmMveGZ0aW50LmggYi9zcmMveGZ0aW50LmgK K2luZGV4IGNlZDlhMDIuLjFhZjQwZmUgMTAwNjQ0CistLS0gYS9zcmMveGZ0aW50LmgKKysrKyBi L3NyYy94ZnRpbnQuaAorQEAgLTg1LDYgKzg1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1hmdEdseXBo IHsKKyAgICAgWEdseXBoSW5mbwkgICAgbWV0cmljczsKKyAgICAgdm9pZAkgICAgKmJpdG1hcDsK KyAgICAgdW5zaWduZWQgbG9uZyAgIGdseXBoX21lbW9yeTsKKysgICAgUGljdHVyZSAgICAgICAg IHBpY3R1cmU7CisgfSBYZnRHbHlwaDsKKyAKKyAvKgorQEAgLTEzNCw2ICsxMzUsNyBAQCBzdHJ1 Y3QgX1hmdEZvbnRJbmZvIHsKKyAgICAgRlRfRjI2RG90NgkJeHNpemUsIHlzaXplOwkvKiBwaXhl bCBzaXplICovCisgICAgIEZjQm9vbAkJYW50aWFsaWFzOwkvKiBkb2luZyBhbnRpYWxpYXNpbmcg Ki8KKyAgICAgRmNCb29sCQllbWJvbGRlbjsJLyogZm9yY2UgZW1ib2xkZW5pbmcgKi8KKysgICAg RmNCb29sCQljb2xvcjsJCS8qIGNvbnRhaW5zIGNvbG9yIGdseXBocyAqLworICAgICBpbnQJCQly Z2JhOwkJLyogc3VicGl4ZWwgb3JkZXIgKi8KKyAgICAgaW50CQkJbGNkX2ZpbHRlcjsJLyogbGNk IGZpbHRlciAqLworICAgICBGVF9NYXRyaXgJCW1hdHJpeDsJCS8qIGdseXBoIHRyYW5zZm9ybWF0 aW9uIG1hdHJpeCAqLworZGlmZiAtLWdpdCBhL3NyYy94ZnRyZW5kZXIuYyBiL3NyYy94ZnRyZW5k ZXIuYworaW5kZXggNTg1MmIyZS4uYmQwMDFiZSAxMDA2NDQKKy0tLSBhL3NyYy94ZnRyZW5kZXIu YworKysrIGIvc3JjL3hmdHJlbmRlci5jCitAQCAtODQsMTIgKzg0LDE0IEBAIFhmdEdseXBoUmVu ZGVyIChEaXNwbGF5CQkqZHB5LAorIAkJaW50CQluZ2x5cGhzKQorIHsKKyAgICAgWGZ0Rm9udElu dAkgICAgKmZvbnQgPSAoWGZ0Rm9udEludCAqKSBwdWI7CistICAgIGludAkJICAgIGk7CisrICAg IGludAkJICAgIGksIGo7CisgICAgIEZUX1VJbnQJICAgIG1pc3NpbmdbWEZUX05NSVNTSU5HXTsK KyAgICAgaW50CQkgICAgbm1pc3Npbmc7CisgICAgIEZUX1VJbnQJICAgIGcsIG1heDsKKyAgICAg aW50CQkgICAgc2l6ZSwgd2lkdGg7CisrICAgIGludAkJICAgIGRzdHgsIGRzdHk7CisgICAgIEds eXBoCSAgICB3aXJlOworKyAgICBYZnRHbHlwaCogICAgICAgZ2x5cGg7CisgICAgIGNoYXIJICAg ICpjaGFyODsKKyAgICAgdW5zaWduZWQgc2hvcnQgICpjaGFyMTY7CisgICAgIHVuc2lnbmVkIGlu dCAgICAqY2hhcjMyOworQEAgLTE0MSwyMiArMTQzLDQ2IEBAIFhmdEdseXBoUmVuZGVyIChEaXNw bGF5CQkqZHB5LAorIAlpZiAoIWNoYXJzKQorIAkgICAgZ290byBiYWlsMTsKKyAgICAgfQorKyAg ICBkc3R4ID0geDsKKysgICAgZHN0eSA9IHk7CisgICAgIGNoYXI4ID0gKGNoYXIgKikgY2hhcnM7 CisgICAgIGNoYXIxNiA9ICh1bnNpZ25lZCBzaG9ydCAqKSBjaGFyczsKKyAgICAgY2hhcjMyID0g KHVuc2lnbmVkIGludCAqKSBjaGFyczsKKy0gICAgZm9yIChpID0gMDsgaSA8IG5nbHlwaHM7IGkr KykKKysgICAgZm9yIChpID0gMCwgaiA9IDA7IGkgPCBuZ2x5cGhzOyBpKyspCisgICAgIHsKKyAJ d2lyZSA9IChHbHlwaCkgZ2x5cGhzW2ldOworIAlpZiAod2lyZSA+PSBmb250LT5udW1fZ2x5cGhz IHx8ICFmb250LT5nbHlwaHNbd2lyZV0pCisgCSAgICB3aXJlID0gMDsKKy0Jc3dpdGNoICh3aWR0 aCkgeworLQljYXNlIDE6IGNoYXI4W2ldID0gKGNoYXIpIHdpcmU7IGJyZWFrOworLQljYXNlIDI6 IGNoYXIxNltpXSA9ICh1bnNpZ25lZCBzaG9ydCkgd2lyZTsgYnJlYWs7CistCWNhc2UgNDogY2hh cjMyW2ldID0gKHVuc2lnbmVkIGludCkgd2lyZTsgYnJlYWs7CisrICAgICAgICBnbHlwaCA9IGZv bnQtPmdseXBoc1t3aXJlXTsKKysJaWYgKGdseXBoLT5waWN0dXJlKQorKwl7CisrCSAgICBfWGZ0 Q29tcG9zaXRlU3RyaW5nKGRweSwgb3AsIHNyYywgZHN0LCBmb250LT5mb3JtYXQsIGZvbnQtPmds eXBoc2V0LAorKwkgICAgICAgICAgICAgICAgICAgICAgICBzcmN4LCBzcmN5LCB4LCB5LCB3aWR0 aCwgY2hhcnMsIGopOworKwkgICAgWFJlbmRlckNvbXBvc2l0ZShkcHksIFBpY3RPcE92ZXIsIGds eXBoLT5waWN0dXJlLCBOb25lLAorKwkgICAgICAgICAgICAgICAgICAgICBkc3QsIDAsIDAsIDAs IDAsIGRzdHgsIGRzdHkgLSBnbHlwaC0+bWV0cmljcy55LAorKwkgICAgICAgICAgICAgICAgICAg ICBnbHlwaC0+bWV0cmljcy53aWR0aCwgZ2x5cGgtPm1ldHJpY3MuaGVpZ2h0KTsKKysKKysJICAg IGRzdHggKz0gZ2x5cGgtPm1ldHJpY3MueE9mZjsKKysJICAgIGRzdHkgKz0gZ2x5cGgtPm1ldHJp Y3MueU9mZjsKKysKKysJICAgIHggPSBkc3R4OworKwkgICAgeSA9IGRzdHk7CisrCSAgICBqID0g MDsKKysJfQorKwllbHNlCisrCXsKKysJICAgIHN3aXRjaCAod2lkdGgpIHsKKysJICAgIGNhc2Ug MTogY2hhcjhbal0gPSAoY2hhcikgd2lyZTsgYnJlYWs7CisrCSAgICBjYXNlIDI6IGNoYXIxNltq XSA9ICh1bnNpZ25lZCBzaG9ydCkgd2lyZTsgYnJlYWs7CisrCSAgICBjYXNlIDQ6IGNoYXIzMltq XSA9ICh1bnNpZ25lZCBpbnQpIHdpcmU7IGJyZWFrOworKwkgICAgfQorKwkgICAgZHN0eCArPSBn bHlwaC0+bWV0cmljcy54T2ZmOworKwkgICAgZHN0eSArPSBnbHlwaC0+bWV0cmljcy55T2ZmOwor KwkgICAgKytqOworIAl9CisgICAgIH0KKyAgICAgX1hmdENvbXBvc2l0ZVN0cmluZyhkcHksIG9w LCBzcmMsIGRzdCwgZm9udC0+Zm9ybWF0LCBmb250LT5nbHlwaHNldCwKKy0gICAgICAgICAgICAg ICAgICAgICAgICBzcmN4LCBzcmN5LCB4LCB5LCB3aWR0aCwgY2hhcnMsIG5nbHlwaHMpOworKyAg ICAgICAgICAgICAgICAgICAgICAgIHNyY3gsIHNyY3ksIHgsIHksIHdpZHRoLCBjaGFycywgaik7 CisgICAgIGlmIChjaGFycyAhPSBjaGFyX2xvY2FsKQorIAlmcmVlIChjaGFycyk7CisgYmFpbDE6 CitAQCAtMzE5LDkgKzM0NSwxMCBAQCBYZnRHbHlwaFNwZWNSZW5kZXIgKERpc3BsYXkJCSAgICAq ZHB5LAorIAkgICAgZyA9IDA7CisgCS8qCisgCSAqIGNoZWNrIHRvIHNlZSBpZiB0aGUgZ2x5cGgg aXMgcGxhY2VkIHdoZXJlIGl0IHdvdWxkCistCSAqIGZhbGwgdXNpbmcgdGhlIG5vcm1hbCBzcGFj aW5nCisrCSAqIGZhbGwgdXNpbmcgdGhlIG5vcm1hbCBzcGFjaW5nIGFuZCBpZiBpdCB3b3VsZCBy ZW5kZXIKKysJICogYXMgYSBYUmVuZGVyIGdseXBoCisgCSAqLworLQlpZiAoKGdseXBoID0gZm9u dC0+Z2x5cGhzW2ddKSkKKysJaWYgKChnbHlwaCA9IGZvbnQtPmdseXBoc1tnXSkgJiYgIWdseXBo LT5waWN0dXJlKQorIAl7CisgCSAgICBpZiAoeCAhPSBnbHlwaHNbaV0ueCB8fCB5ICE9IGdseXBo c1tpXS55KQorIAkgICAgeworQEAgLTMzNSw3ICszNjIsNyBAQCBYZnRHbHlwaFNwZWNSZW5kZXIg KERpc3BsYXkJCSAgICAqZHB5LAorICAgICB9CisgCisgICAgIGVsdHMgPSBlbHRzX2xvY2FsOwor LSAgICBpZiAobmVsdCA+IE5VTV9FTFRfTE9DQUwpCisrICAgIGlmICghZm9udC0+aW5mby5jb2xv ciAmJiBuZWx0ID4gTlVNX0VMVF9MT0NBTCkKKyAgICAgeworIAllbHRzID0gbWFsbG9jICgoc2l6 ZV90KW5lbHQgKiBzaXplb2YgKFhHbHlwaEVsdDgpKTsKKyAJaWYgKCFlbHRzKQorQEAgLTM0Myw3 ICszNzAsNyBAQCBYZnRHbHlwaFNwZWNSZW5kZXIgKERpc3BsYXkJCSAgICAqZHB5LAorICAgICB9 CisgCisgICAgIC8qCistICAgICAqIEdlbmVyYXRlIHRoZSBsaXN0IG9mIGdseXBoIGVsdHMKKysg ICAgICogR2VuZXJhdGUgdGhlIGxpc3Qgb2YgZ2x5cGggZWx0cyBvciByZW5kZXIgY29sb3IgZ2x5 cGhzCisgICAgICAqLworICAgICBuZWx0ID0gMDsKKyAgICAgeCA9IHkgPSAwOworQEAgLTM1Nyw2 ICszODQsMTQgQEAgWGZ0R2x5cGhTcGVjUmVuZGVyIChEaXNwbGF5CQkgICAgKmRweSwKKyAJICAg IGcgPSAwOworIAlpZiAoKGdseXBoID0gZm9udC0+Z2x5cGhzW2ddKSkKKyAJeworKwkgICAgaWYg KGdseXBoLT5waWN0dXJlKQorKwkgICAgeworKyAgICAgICAgICAgICAgICBYUmVuZGVyQ29tcG9z aXRlKGRweSwgUGljdE9wT3ZlciwgZ2x5cGgtPnBpY3R1cmUsIE5vbmUsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZHN0LCAwLCAwLCAwLCAwLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdseXBoc1tpXS54LCBnbHlwaHNbaV0ueSAtIGdseXBoLT5tZXRyaWNz LnksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGgtPm1ldHJpY3Mud2lk dGgsIGdseXBoLT5tZXRyaWNzLmhlaWdodCk7CisrICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor KwkgICAgfQorIAkgICAgaWYgKCFpIHx8IHggIT0gZ2x5cGhzW2ldLnggfHwgeSAhPSBnbHlwaHNb aV0ueSkKKyAJICAgIHsKKyAJCWlmIChuKQorQEAgLTU4OSw3ICs2MjQsNyBAQCBYZnRHbHlwaEZv bnRTcGVjUmVuZGVyIChEaXNwbGF5CQkJICAgICpkcHksCisgCSAqIGNoZWNrIHRvIHNlZSBpZiB0 aGUgZ2x5cGggaXMgcGxhY2VkIHdoZXJlIGl0IHdvdWxkCisgCSAqIGZhbGwgdXNpbmcgdGhlIG5v cm1hbCBzcGFjaW5nCisgCSAqLworLQlpZiAoKGdseXBoID0gZm9udC0+Z2x5cGhzW2ddKSkKKysJ aWYgKChnbHlwaCA9IGZvbnQtPmdseXBoc1tnXSkgJiYgIWdseXBoLT5waWN0dXJlKQorIAl7Cisg CSAgICBpZiAocHViICE9IHByZXZQdWJsaWMgfHwgeCAhPSBnbHlwaHNbaV0ueCB8fCB5ICE9IGds eXBoc1tpXS55KQorIAkgICAgeworQEAgLTYxNCw3ICs2NDksNyBAQCBYZnRHbHlwaEZvbnRTcGVj UmVuZGVyIChEaXNwbGF5CQkJICAgICpkcHksCisgICAgIH0KKyAKKyAgICAgLyoKKy0gICAgICog R2VuZXJhdGUgdGhlIGxpc3Qgb2YgZ2x5cGggZWx0cworKyAgICAgKiBHZW5lcmF0ZSB0aGUgbGlz dCBvZiBnbHlwaCBlbHRzIGFuZCByZW5kZXIgY29sb3IgZ2x5cGhzCisgICAgICAqLworICAgICBu ZWx0ID0gMDsKKyAgICAgeCA9IHkgPSAwOworQEAgLTYzMiw2ICs2NjcsMTQgQEAgWGZ0R2x5cGhG b250U3BlY1JlbmRlciAoRGlzcGxheQkJCSAgICAqZHB5LAorIAkgICAgZyA9IDA7CisgCWlmICgo Z2x5cGggPSBmb250LT5nbHlwaHNbZ10pKQorIAl7CisrCSAgICBpZiAoZ2x5cGgtPnBpY3R1cmUp CisrCSAgICB7CisrICAgICAgICAgICAgICAgIFhSZW5kZXJDb21wb3NpdGUoZHB5LCBQaWN0T3BP dmVyLCBnbHlwaC0+cGljdHVyZSwgTm9uZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkc3QsIDAsIDAsIDAsIDAsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z2x5cGhzW2ldLngsIGdseXBoc1tpXS55IC0gZ2x5cGgtPm1ldHJpY3MueSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBnbHlwaC0+bWV0cmljcy53aWR0aCwgZ2x5cGgtPm1ldHJp Y3MuaGVpZ2h0KTsKKysgICAgICAgICAgICAgICAgY29udGludWU7CisrCSAgICB9CisgCSAgICBp ZiAoIWkgfHwgcHViICE9IHByZXZQdWJsaWMgfHwgeCAhPSBnbHlwaHNbaV0ueCB8fCB5ICE9IGds eXBoc1tpXS55KQorIAkgICAgeworIAkJaWYgKG4pCistLSAKKzIuMzIuMAorCg== --===============3335797875149527857==--