From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: Include gcc -g3 .debug_macro implementation by Tom Tromey. Date: Sat, 27 Jun 2026 23:55:12 GMT Message-ID: <178260451291.1.3627872404706543948.rpms-gdb-9a9da3171ccc@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 9a9da3171ccc13955157d2c5d15fd43d766fd7b0 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGdkYi0xNy4yLXJlYmFzZS1mNDQKQ29tbWl0IDogOWE5ZGEzMTcxY2NjMTM5NTUxNTdkMmM1ZDE1 ZmQ0M2Q3NjZmZDdiMApBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4KRGF0ZSAgIDogMjAxMS0wNy0yOVQxODo1OTozNiswMjowMApTdGF0cyAgOiArOTQ1 Ly0zIGluIDIgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9y cG1zL2dkYi9jLzlhOWRhMzE3MWNjYzEzOTU1MTU3ZDJjNWQxNWZkNDNkNzY2ZmQ3YjA/YnJhbmNo PWdkYi0xNy4yLXJlYmFzZS1mNDQKCkxvZzoKSW5jbHVkZSBnY2MgLWczIC5kZWJ1Z19tYWNybyBp bXBsZW1lbnRhdGlvbiBieSBUb20gVHJvbWV5LgoKLS0tCmRpZmYgLS1naXQgYS9nZGItdXBzdHJl YW0ucGF0Y2ggYi9nZGItdXBzdHJlYW0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uYjczZDRkMgotLS0gL2Rldi9udWxsCisrKyBiL2dkYi11cHN0cmVhbS5wYXRjaApA QCAtMCwwICsxLDkzOSBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2JpbnV0aWxzLWN2cy8y MDExLTA3L21zZzAwMTE2Lmh0bWwKKworIyMjIHNyYy9pbmNsdWRlL0NoYW5nZUxvZwkyMDExLzA3 LzIyIDE0OjM3OjUwCTEuNTQ2CisjIyMgc3JjL2luY2x1ZGUvQ2hhbmdlTG9nCTIwMTEvMDcvMjIg MjA6Mzc6NTAJMS41NDcKKyMjIC0xLDUgKzEsOCBAQAorIDIwMTEtMDctMjIgIEpha3ViIEplbGlu ZWsgIDxqYWt1YkByZWRoYXQuY29tPgorIAorKwkqIGR3YXJmMi5oIChEV19BVF9HTlVfbWFjcm9z KTogTmV3LgorKwkoZW51bSBkd2FyZl9tYWNyb19yZWNvcmRfdHlwZSk6IE5ldyBlbnVtLiAgQWRk IERXX01BQ1JPX0dOVV8qLgorKworIAlQUiBjKysvNDk3NTYKKyAJKiBsaWJpYmVydHkuaCAoc3Rh Y2tfbGltaXRfaW5jcmVhc2UpOiBOZXcgcHJvdG90eXBlLgorIAorLS0tIHNyYy9pbmNsdWRlL2R3 YXJmMi5oCTIwMTEvMDYvMjIgMTU6MDM6MTkJMS4yNgorKysrIHNyYy9pbmNsdWRlL2R3YXJmMi5o CTIwMTEvMDcvMjIgMjA6Mzc6NTAJMS4yNworQEAgLTM2Niw2ICszNjYsOCBAQAorICAgICBEV19B VF9HTlVfYWxsX3RhaWxfY2FsbF9zaXRlcyA9IDB4MjExNiwKKyAgICAgRFdfQVRfR05VX2FsbF9j YWxsX3NpdGVzID0gMHgyMTE3LAorICAgICBEV19BVF9HTlVfYWxsX3NvdXJjZV9jYWxsX3NpdGVz ID0gMHgyMTE4LAorKyAgICAvKiBTZWN0aW9uIG9mZnNldCBpbnRvIC5kZWJ1Z19tYWNybyBzZWN0 aW9uLiAgKi8KKysgICAgRFdfQVRfR05VX21hY3JvcyA9IDB4MjExOSwKKyAgICAgLyogVk1TIGV4 dGVuc2lvbnMuICAqLworICAgICBEV19BVF9WTVNfcnRuYmVnX3BkX2FkZHJlc3MgPSAweDIyMDEs CisgICAgIC8qIEdOQVQgZXh0ZW5zaW9ucy4gICovCitAQCAtODc5LDYgKzg4MSwyMCBAQAorICAg ICBEV19NQUNJTkZPX2VuZF9maWxlID0gNCwKKyAgICAgRFdfTUFDSU5GT192ZW5kb3JfZXh0ID0g MjU1CisgICB9OworKworKy8qIE5hbWVzIGFuZCBjb2RlcyBmb3IgbmV3IHN0eWxlIG1hY3JvIGlu Zm9ybWF0aW9uLiAgKi8KKytlbnVtIGR3YXJmX21hY3JvX3JlY29yZF90eXBlCisrICB7CisrICAg IERXX01BQ1JPX0dOVV9kZWZpbmUgPSAxLAorKyAgICBEV19NQUNST19HTlVfdW5kZWYgPSAyLAor KyAgICBEV19NQUNST19HTlVfc3RhcnRfZmlsZSA9IDMsCisrICAgIERXX01BQ1JPX0dOVV9lbmRf ZmlsZSA9IDQsCisrICAgIERXX01BQ1JPX0dOVV9kZWZpbmVfaW5kaXJlY3QgPSA1LAorKyAgICBE V19NQUNST19HTlVfdW5kZWZfaW5kaXJlY3QgPSA2LAorKyAgICBEV19NQUNST19HTlVfdHJhbnNw YXJlbnRfaW5jbHVkZSA9IDcsCisrICAgIERXX01BQ1JPX0dOVV9sb191c2VyID0gMHhlMCwKKysg ICAgRFdfTUFDUk9fR05VX2hpX3VzZXIgPSAweGZmCisrICB9OworIAwKKyAvKiBAQEAgRm9yIHVz ZSB3aXRoIEdOVSBmcmFtZSB1bndpbmQgaW5mb3JtYXRpb24uICAqLworIAorCisKKworRllJOiBp bXBsZW1lbnQgbmV3IERXQVJGIG1hY3JvIHByb3Bvc2FsCitodHRwOi8vc291cmNld2FyZS5vcmcv bWwvZ2RiLXBhdGNoZXMvMjAxMS0wNy9tc2cwMDczMi5odG1sCitodHRwOi8vc291cmNld2FyZS5v cmcvbWwvZ2RiLWN2cy8yMDExLTA3L21zZzAwMjEyLmh0bWwKKworIyMjIHNyYy9nZGIvQ2hhbmdl TG9nCTIwMTEvMDcvMjYgMTU6MjQ6MDEJMS4xMzIyNAorIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIw MTEvMDcvMjYgMTc6MDQ6MjEJMS4xMzIyNQorIyMgLTEsMyArMSwyMCBAQAorKzIwMTEtMDctMjYg IFRvbSBUcm9tZXkgIDx0cm9tZXlAcmVkaGF0LmNvbT4KKysKKysJKiBzeW1maWxlLmggKHN0cnVj dCBkd2FyZjJfZGVidWdfc2VjdGlvbnMpIDxtYWNybz46IE5ldyBmaWVsZC4KKysJKiBkd2FyZjJy ZWFkLmMgKHJlYWRfaW5kaXJlY3Rfc3RyaW5nX2F0X29mZnNldCk6IE5ldyBmdW5jdGlvbi4KKysJ KHJlYWRfaW5kaXJlY3Rfc3RyaW5nKTogVXNlIGl0LgorKwkoZHdhcmZfZGVjb2RlX21hY3JvX2J5 dGVzKTogTmV3IGZ1bmN0aW9uLCB0YWtlbiBmcm9tCisrCWR3YXJmX2RlY29kZV9tYWNyb3MuICBI YW5kbGUgRFdfTUFDUk9fR05VXyouCisrCShkd2FyZl9kZWNvZGVfbWFjcm9zKTogVXNlIGl0LiAg aGFuZGxlIERXX01BQ1JPX0dOVV8qLgorKwkoZHdhcmZfcGFyc2VfbWFjcm9faGVhZGVyLCBza2lw X2Zvcm1fYnl0ZXMsIHNraXBfdW5rbm93bl9vcGNvZGUpOgorKwlOZXcgZnVuY3Rpb25zLgorKwko c3RydWN0IGR3YXJmMl9wZXJfb2JqZmlsZSkgPG1hY3JvPjogTmV3IGZpZWxkLgorKwkoZHdhcmYy X2VsZl9uYW1lcyk6IEFkZCAuZGVidWdfbWFjcm8uCisrCShkd2FyZjJfbWFjcm9zX3Rvb19sb25n X2NvbXBsYWludCk6IEFkZCAnc2VjdGlvbicgYXJndW1lbnQuCisrCShkd2FyZjJfbG9jYXRlX3Nl Y3Rpb25zKTogSGFuZGxlIG5ldyBzZWN0aW9uLgorKwkocmVhZF9maWxlX3Njb3BlKTogSGFuZGxl IERXX0FUX0dOVV9tYWNyb3MuCisrCShkd2FyZjJfcGVyX29iamZpbGVfZnJlZSk6IFVubWFwIHRo ZSAuZGVidWdfbWFjcm8gc2VjdGlvbi4KKysKKyAyMDExLTA3LTI2ICBQYXVsIFBsdXpobmlrb3Yg IDxwcGx1emhuaWtvdkBnb29nbGUuY29tPgorIAorIAkqIE5FV1M6IE1lbnRpb24gZGNhY2hlIGNv bmZpZ3VyYXRpb24uCistLS0gc3JjL2dkYi9kd2FyZjJyZWFkLmMJMjAxMS8wNy8yMCAxNToxMzo0 OQkxLjU1NAorKysrIHNyYy9nZGIvZHdhcmYycmVhZC5jCTIwMTEvMDcvMjYgMTc6MDQ6MjMJMS41 NTUKK0BAIC0xODcsNiArMTg3LDcgQEAKKyAgIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvIGxp bmU7CisgICBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyBsb2M7CisgICBzdHJ1Y3QgZHdhcmYy X3NlY3Rpb25faW5mbyBtYWNpbmZvOworKyAgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gbWFj cm87CisgICBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyBzdHI7CisgICBzdHJ1Y3QgZHdhcmYy X3NlY3Rpb25faW5mbyByYW5nZXM7CisgICBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyBmcmFt ZTsKK0BAIC0yNjQsNiArMjY1LDcgQEAKKyAgIHsgIi5kZWJ1Z19saW5lIiwgIi56ZGVidWdfbGlu ZSIgfSwKKyAgIHsgIi5kZWJ1Z19sb2MiLCAiLnpkZWJ1Z19sb2MiIH0sCisgICB7ICIuZGVidWdf bWFjaW5mbyIsICIuemRlYnVnX21hY2luZm8iIH0sCisrICB7ICIuZGVidWdfbWFjcm8iLCAiLnpk ZWJ1Z19tYWNybyIgfSwKKyAgIHsgIi5kZWJ1Z19zdHIiLCAiLnpkZWJ1Z19zdHIiIH0sCisgICB7 ICIuZGVidWdfcmFuZ2VzIiwgIi56ZGVidWdfcmFuZ2VzIiB9LAorICAgeyAiLmRlYnVnX3R5cGVz IiwgIi56ZGVidWdfdHlwZXMiIH0sCitAQCAtODU4LDEwICs4NjAsMTEgQEAKKyB9CisgCisgc3Rh dGljIHZvaWQKKy1kd2FyZjJfbWFjcm9zX3Rvb19sb25nX2NvbXBsYWludCAodm9pZCkKKytkd2Fy ZjJfbWFjcm9zX3Rvb19sb25nX2NvbXBsYWludCAoc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8g KnNlY3Rpb24pCisgeworICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAorLQkgICAg IF8oIm1hY3JvIGluZm8gcnVucyBvZmYgZW5kIG9mIGAuZGVidWdfbWFjaW5mbycgc2VjdGlvbiIp KTsKKysJICAgICBfKCJtYWNybyBpbmZvIHJ1bnMgb2ZmIGVuZCBvZiBgJXMnIHNlY3Rpb24iKSwK KysJICAgICBzZWN0aW9uLT5hc2VjdGlvbi0+bmFtZSk7CisgfQorIAorIHN0YXRpYyB2b2lkCitA QCAtMTIzMyw3ICsxMjM2LDkgQEAKKyAJCQkJIHN0cnVjdCBkd2FyZjJfY3UgKik7CisgCisgc3Rh dGljIHZvaWQgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICosIHVuc2ln bmVkIGludCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICosIGJmZCAq LCBzdHJ1Y3QgZHdhcmYyX2N1ICopOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNoYXIgKiwgYmZkICosIHN0cnVjdCBkd2FyZjJfY3UgKiwKKysJCQkJIHN0cnVjdCBkd2FyZjJf c2VjdGlvbl9pbmZvICosCisrCQkJCSBpbnQpOworIAorIHN0YXRpYyBpbnQgYXR0cl9mb3JtX2lz X2Jsb2NrIChzdHJ1Y3QgYXR0cmlidXRlICopOworIAorQEAgLTE0MzgsNiArMTQ0MywxMSBAQAor ICAgICAgIGR3YXJmMl9wZXJfb2JqZmlsZS0+bWFjaW5mby5hc2VjdGlvbiA9IHNlY3RwOworICAg ICAgIGR3YXJmMl9wZXJfb2JqZmlsZS0+bWFjaW5mby5zaXplID0gYmZkX2dldF9zZWN0aW9uX3Np emUgKHNlY3RwKTsKKyAgICAgfQorKyAgZWxzZSBpZiAoc2VjdGlvbl9pc19wIChzZWN0cC0+bmFt ZSwgJm5hbWVzLT5tYWNybykpCisrICAgIHsKKysgICAgICBkd2FyZjJfcGVyX29iamZpbGUtPm1h Y3JvLmFzZWN0aW9uID0gc2VjdHA7CisrICAgICAgZHdhcmYyX3Blcl9vYmpmaWxlLT5tYWNyby5z aXplID0gYmZkX2dldF9zZWN0aW9uX3NpemUgKHNlY3RwKTsKKysgICAgfQorICAgZWxzZSBpZiAo c2VjdGlvbl9pc19wIChzZWN0cC0+bmFtZSwgJm5hbWVzLT5zdHIpKQorICAgICB7CisgICAgICAg ZHdhcmYyX3Blcl9vYmpmaWxlLT5zdHIuYXNlY3Rpb24gPSBzZWN0cDsKK0BAIC01NjQxLDEzICs1 NjUxLDI4IEBACisgICAgICByZWZlcnMgdG8gaW5mb3JtYXRpb24gaW4gdGhlIGxpbmUgbnVtYmVy IGluZm8gc3RhdGVtZW50IHByb2dyYW0KKyAgICAgIGhlYWRlciwgc28gd2UgY2FuIG9ubHkgcmVh ZCBpdCBpZiB3ZSd2ZSByZWFkIHRoZSBoZWFkZXIKKyAgICAgIHN1Y2Nlc3NmdWxseS4gICovCist ICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfbWFjcm9faW5mbywgY3UpOworKyAgYXR0 ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX0dOVV9tYWNyb3MsIGN1KTsKKyAgIGlmIChhdHRy ICYmIGN1LT5saW5lX2hlYWRlcikKKyAgICAgeworLSAgICAgIHVuc2lnbmVkIGludCBtYWNyb19v ZmZzZXQgPSBEV19VTlNORCAoYXR0cik7CisrICAgICAgaWYgKGR3YXJmMl9hdHRyIChkaWUsIERX X0FUX21hY3JvX2luZm8sIGN1KSkKKysJY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAor KwkJICAgXygiQ1UgcmVmZXJzIHRvIGJvdGggRFdfQVRfR05VX21hY3JvcyBhbmQgRFdfQVRfbWFj cm9faW5mbyIpKTsKKysKKysgICAgICBkd2FyZl9kZWNvZGVfbWFjcm9zIChjdS0+bGluZV9oZWFk ZXIsIERXX1VOU05EIChhdHRyKSwKKysJCQkgICBjb21wX2RpciwgYWJmZCwgY3UsCisrCQkJICAg JmR3YXJmMl9wZXJfb2JqZmlsZS0+bWFjcm8sIDEpOworKyAgICB9CisrICBlbHNlCisrICAgIHsK KysgICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfbWFjcm9faW5mbywgY3UpOwor KyAgICAgIGlmIChhdHRyICYmIGN1LT5saW5lX2hlYWRlcikKKysJeworKwkgIHVuc2lnbmVkIGlu dCBtYWNyb19vZmZzZXQgPSBEV19VTlNORCAoYXR0cik7CisgCistICAgICAgZHdhcmZfZGVjb2Rl X21hY3JvcyAoY3UtPmxpbmVfaGVhZGVyLCBtYWNyb19vZmZzZXQsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29tcF9kaXIsIGFiZmQsIGN1KTsKKysJICBkd2FyZl9kZWNvZGVfbWFjcm9z IChjdS0+bGluZV9oZWFkZXIsIG1hY3JvX29mZnNldCwKKysJCQkgICAgICAgY29tcF9kaXIsIGFi ZmQsIGN1LAorKwkJCSAgICAgICAmZHdhcmYyX3Blcl9vYmpmaWxlLT5tYWNpbmZvLCAwKTsKKysJ fQorICAgICB9CisgICBkb19jbGVhbnVwcyAoYmFja190byk7CisgfQorQEAgLTEwMjYyLDMyICsx MDI4NywzMiBAQAorIH0KKyAKKyBzdGF0aWMgY2hhciAqCistcmVhZF9pbmRpcmVjdF9zdHJpbmcg KGJmZCAqYWJmZCwgZ2RiX2J5dGUgKmJ1ZiwKKy0JCSAgICAgIGNvbnN0IHN0cnVjdCBjb21wX3Vu aXRfaGVhZCAqY3VfaGVhZGVyLAorLQkJICAgICAgdW5zaWduZWQgaW50ICpieXRlc19yZWFkX3B0 cikKKytyZWFkX2luZGlyZWN0X3N0cmluZ19hdF9vZmZzZXQgKGJmZCAqYWJmZCwgTE9OR0VTVCBz dHJfb2Zmc2V0KQorIHsKKy0gIExPTkdFU1Qgc3RyX29mZnNldCA9IHJlYWRfb2Zmc2V0IChhYmZk LCBidWYsIGN1X2hlYWRlciwgYnl0ZXNfcmVhZF9wdHIpOworLQorICAgZHdhcmYyX3JlYWRfc2Vj dGlvbiAoZHdhcmYyX3Blcl9vYmpmaWxlLT5vYmpmaWxlLCAmZHdhcmYyX3Blcl9vYmpmaWxlLT5z dHIpOworICAgaWYgKGR3YXJmMl9wZXJfb2JqZmlsZS0+c3RyLmJ1ZmZlciA9PSBOVUxMKQorLSAg ICB7CistICAgICAgZXJyb3IgKF8oIkRXX0ZPUk1fc3RycCB1c2VkIHdpdGhvdXQgLmRlYnVnX3N0 ciBzZWN0aW9uIFtpbiBtb2R1bGUgJXNdIiksCistCQkgICAgICBiZmRfZ2V0X2ZpbGVuYW1lIChh YmZkKSk7CistICAgICAgcmV0dXJuIE5VTEw7CistICAgIH0KKysgICAgZXJyb3IgKF8oIkRXX0ZP Uk1fc3RycCB1c2VkIHdpdGhvdXQgLmRlYnVnX3N0ciBzZWN0aW9uIFtpbiBtb2R1bGUgJXNdIiks CisrCSAgIGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQpKTsKKyAgIGlmIChzdHJfb2Zmc2V0ID49IGR3 YXJmMl9wZXJfb2JqZmlsZS0+c3RyLnNpemUpCistICAgIHsKKy0gICAgICBlcnJvciAoXygiRFdf Rk9STV9zdHJwIHBvaW50aW5nIG91dHNpZGUgb2YgIgorLQkgICAgICAgIi5kZWJ1Z19zdHIgc2Vj dGlvbiBbaW4gbW9kdWxlICVzXSIpLAorLQkgICAgIGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQpKTsK Ky0gICAgICByZXR1cm4gTlVMTDsKKy0gICAgfQorKyAgICBlcnJvciAoXygiRFdfRk9STV9zdHJw IHBvaW50aW5nIG91dHNpZGUgb2YgIgorKwkgICAgICIuZGVidWdfc3RyIHNlY3Rpb24gW2luIG1v ZHVsZSAlc10iKSwKKysJICAgYmZkX2dldF9maWxlbmFtZSAoYWJmZCkpOworICAgZ2RiX2Fzc2Vy dCAoSE9TVF9DSEFSX0JJVCA9PSA4KTsKKyAgIGlmIChkd2FyZjJfcGVyX29iamZpbGUtPnN0ci5i dWZmZXJbc3RyX29mZnNldF0gPT0gJ1wwJykKKyAgICAgcmV0dXJuIE5VTEw7CisgICByZXR1cm4g KGNoYXIgKikgKGR3YXJmMl9wZXJfb2JqZmlsZS0+c3RyLmJ1ZmZlciArIHN0cl9vZmZzZXQpOwor IH0KKyAKKytzdGF0aWMgY2hhciAqCisrcmVhZF9pbmRpcmVjdF9zdHJpbmcgKGJmZCAqYWJmZCwg Z2RiX2J5dGUgKmJ1ZiwKKysJCSAgICAgIGNvbnN0IHN0cnVjdCBjb21wX3VuaXRfaGVhZCAqY3Vf aGVhZGVyLAorKwkJICAgICAgdW5zaWduZWQgaW50ICpieXRlc19yZWFkX3B0cikKKyt7CisrICBM T05HRVNUIHN0cl9vZmZzZXQgPSByZWFkX29mZnNldCAoYWJmZCwgYnVmLCBjdV9oZWFkZXIsIGJ5 dGVzX3JlYWRfcHRyKTsKKysKKysgIHJldHVybiByZWFkX2luZGlyZWN0X3N0cmluZ19hdF9vZmZz ZXQgKGFiZmQsIHN0cl9vZmZzZXQpOworK30KKysKKyBzdGF0aWMgdW5zaWduZWQgbG9uZworIHJl YWRfdW5zaWduZWRfbGViMTI4IChiZmQgKmFiZmQsIGdkYl9ieXRlICpidWYsIHVuc2lnbmVkIGlu dCAqYnl0ZXNfcmVhZF9wdHIpCisgeworQEAgLTE0NjY5LDExNyArMTQ2OTQsMjA1IEBACisgICAg IGR3YXJmMl9tYWNyb19tYWxmb3JtZWRfZGVmaW5pdGlvbl9jb21wbGFpbnQgKGJvZHkpOworIH0K KyAKKysvKiBTa2lwIHNvbWUgYnl0ZXMgZnJvbSBCWVRFUyBhY2NvcmRpbmcgdG8gdGhlIGZvcm0g Z2l2ZW4gaW4gRk9STS4KKysgICBSZXR1cm5zIHRoZSBuZXcgcG9pbnRlci4gICovCisgCistc3Rh dGljIHZvaWQKKy1kd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1 bnNpZ25lZCBpbnQgb2Zmc2V0LAorLSAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmNvbXBfZGly LCBiZmQgKmFiZmQsCistICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGR3YXJmMl9jdSAqY3Up Cisrc3RhdGljIGdkYl9ieXRlICoKKytza2lwX2Zvcm1fYnl0ZXMgKGJmZCAqYWJmZCwgZ2RiX2J5 dGUgKmJ5dGVzLAorKwkJIGVudW0gZHdhcmZfZm9ybSBmb3JtLAorKwkJIHVuc2lnbmVkIGludCBv ZmZzZXRfc2l6ZSwKKysJCSBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqc2VjdGlvbikKKyB7 CistICBnZGJfYnl0ZSAqbWFjX3B0ciwgKm1hY19lbmQ7CistICBzdHJ1Y3QgbWFjcm9fc291cmNl X2ZpbGUgKmN1cnJlbnRfZmlsZSA9IDA7CistICBlbnVtIGR3YXJmX21hY2luZm9fcmVjb3JkX3R5 cGUgbWFjaW5mb190eXBlOworLSAgaW50IGF0X2NvbW1hbmRsaW5lOworKyAgdW5zaWduZWQgaW50 IGJ5dGVzX3JlYWQ7CisgCistICBkd2FyZjJfcmVhZF9zZWN0aW9uIChkd2FyZjJfcGVyX29iamZp bGUtPm9iamZpbGUsCistCQkgICAgICAgJmR3YXJmMl9wZXJfb2JqZmlsZS0+bWFjaW5mbyk7Cist ICBpZiAoZHdhcmYyX3Blcl9vYmpmaWxlLT5tYWNpbmZvLmJ1ZmZlciA9PSBOVUxMKQorKyAgc3dp dGNoIChmb3JtKQorICAgICB7CistICAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRz LCBfKCJtaXNzaW5nIC5kZWJ1Z19tYWNpbmZvIHNlY3Rpb24iKSk7CistICAgICAgcmV0dXJuOwor KyAgICBjYXNlIERXX0ZPUk1fZGF0YTE6CisrICAgIGNhc2UgRFdfRk9STV9mbGFnOgorKyAgICAg ICsrYnl0ZXM7CisrICAgICAgYnJlYWs7CisrCisrICAgIGNhc2UgRFdfRk9STV9kYXRhMjoKKysg ICAgICBieXRlcyArPSAyOworKyAgICAgIGJyZWFrOworKworKyAgICBjYXNlIERXX0ZPUk1fZGF0 YTQ6CisrICAgICAgYnl0ZXMgKz0gNDsKKysgICAgICBicmVhazsKKysKKysgICAgY2FzZSBEV19G T1JNX2RhdGE4OgorKyAgICAgIGJ5dGVzICs9IDg7CisrICAgICAgYnJlYWs7CisrCisrICAgIGNh c2UgRFdfRk9STV9zdHJpbmc6CisrICAgICAgcmVhZF9kaXJlY3Rfc3RyaW5nIChhYmZkLCBieXRl cywgJmJ5dGVzX3JlYWQpOworKyAgICAgIGJ5dGVzICs9IGJ5dGVzX3JlYWQ7CisrICAgICAgYnJl YWs7CisrCisrICAgIGNhc2UgRFdfRk9STV9zZWNfb2Zmc2V0OgorKyAgICBjYXNlIERXX0ZPUk1f c3RycDoKKysgICAgICBieXRlcyArPSBvZmZzZXRfc2l6ZTsKKysgICAgICBicmVhazsKKysKKysg ICAgY2FzZSBEV19GT1JNX2Jsb2NrOgorKyAgICAgIGJ5dGVzICs9IHJlYWRfdW5zaWduZWRfbGVi MTI4IChhYmZkLCBieXRlcywgJmJ5dGVzX3JlYWQpOworKyAgICAgIGJ5dGVzICs9IGJ5dGVzX3Jl YWQ7CisrICAgICAgYnJlYWs7CisrCisrICAgIGNhc2UgRFdfRk9STV9ibG9jazE6CisrICAgICAg Ynl0ZXMgKz0gMSArIHJlYWRfMV9ieXRlIChhYmZkLCBieXRlcyk7CisrICAgICAgYnJlYWs7Cisr ICAgIGNhc2UgRFdfRk9STV9ibG9jazI6CisrICAgICAgYnl0ZXMgKz0gMiArIHJlYWRfMl9ieXRl cyAoYWJmZCwgYnl0ZXMpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIERXX0ZPUk1fYmxvY2s0 OgorKyAgICAgIGJ5dGVzICs9IDQgKyByZWFkXzRfYnl0ZXMgKGFiZmQsIGJ5dGVzKTsKKysgICAg ICBicmVhazsKKysKKysgICAgY2FzZSBEV19GT1JNX3NkYXRhOgorKyAgICBjYXNlIERXX0ZPUk1f dWRhdGE6CisrICAgICAgYnl0ZXMgPSBza2lwX2xlYjEyOCAoYWJmZCwgYnl0ZXMpOworKyAgICAg IGJyZWFrOworKworKyAgICBkZWZhdWx0OgorKyAgICAgIHsKKysgICAgICBjb21wbGFpbjoKKysJ Y29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAorKwkJICAgXygiaW52YWxpZCBmb3JtIDB4 JXggaW4gYCVzJyIpLAorKwkJICAgZm9ybSwKKysJCSAgIHNlY3Rpb24tPmFzZWN0aW9uLT5uYW1l KTsKKysJcmV0dXJuIE5VTEw7CisrICAgICAgfQorICAgICB9CisgCistICAvKiBGaXJzdCBwYXNz OiBGaW5kIHRoZSBuYW1lIG9mIHRoZSBiYXNlIGZpbGVuYW1lLgorLSAgICAgVGhpcyBmaWxlbmFt ZSBpcyBuZWVkZWQgaW4gb3JkZXIgdG8gcHJvY2VzcyBhbGwgbWFjcm9zIHdob3NlIGRlZmluaXRp b24KKy0gICAgIChvciB1bmRlZmluaXRpb24pIGNvbWVzIGZyb20gdGhlIGNvbW1hbmQgbGluZS4g IFRoZXNlIG1hY3JvcyBhcmUgZGVmaW5lZAorLSAgICAgYmVmb3JlIHRoZSBmaXJzdCBEV19NQUNJ TkZPX3N0YXJ0X2ZpbGUgZW50cnksIGFuZCB5ZXQgc3RpbGwgbmVlZCB0byBiZQorLSAgICAgYXNz b2NpYXRlZCB0byB0aGUgYmFzZSBmaWxlLgorKyAgcmV0dXJuIGJ5dGVzOworK30KKyAKKy0gICAg IFRvIGRldGVybWluZSB0aGUgYmFzZSBmaWxlIG5hbWUsIHdlIHNjYW4gdGhlIG1hY3JvIGRlZmlu aXRpb25zIHVudGlsIHdlCistICAgICByZWFjaCB0aGUgZmlyc3QgRFdfTUFDSU5GT19zdGFydF9m aWxlIGVudHJ5LiAgV2UgdGhlbiBpbml0aWFsaXplCistICAgICBDVVJSRU5UX0ZJTEUgYWNjb3Jk aW5nbHkgc28gdGhhdCBhbnkgbWFjcm8gZGVmaW5pdGlvbiBmb3VuZCBiZWZvcmUgdGhlCistICAg ICBmaXJzdCBEV19NQUNJTkZPX3N0YXJ0X2ZpbGUgY2FuIHN0aWxsIGJlIGFzc29jaWF0ZWQgdG8g dGhlIGJhc2UgZmlsZS4gICovCisrLyogQSBoZWxwZXIgZm9yIGR3YXJmX2RlY29kZV9tYWNyb3Mg dGhhdCBoYW5kbGVzIHNraXBwaW5nIGFuIHVua25vd24KKysgICBvcGNvZGUuICBSZXR1cm5zIGFu IHVwZGF0ZWQgcG9pbnRlciB0byB0aGUgbWFjcm8gZGF0YSBidWZmZXI7IG9yLAorKyAgIG9uIGVy cm9yLCBpc3N1ZXMgYSBjb21wbGFpbnQgYW5kIHJldHVybnMgTlVMTC4gICovCisgCistICBtYWNf cHRyID0gZHdhcmYyX3Blcl9vYmpmaWxlLT5tYWNpbmZvLmJ1ZmZlciArIG9mZnNldDsKKy0gIG1h Y19lbmQgPSBkd2FyZjJfcGVyX29iamZpbGUtPm1hY2luZm8uYnVmZmVyCistICAgICsgZHdhcmYy X3Blcl9vYmpmaWxlLT5tYWNpbmZvLnNpemU7Cisrc3RhdGljIGdkYl9ieXRlICoKKytza2lwX3Vu a25vd25fb3Bjb2RlICh1bnNpZ25lZCBpbnQgb3Bjb2RlLAorKwkJICAgICBnZGJfYnl0ZSAqKm9w Y29kZV9kZWZpbml0aW9ucywKKysJCSAgICAgZ2RiX2J5dGUgKm1hY19wdHIsCisrCQkgICAgIGJm ZCAqYWJmZCwKKysJCSAgICAgdW5zaWduZWQgaW50IG9mZnNldF9zaXplLAorKwkJICAgICBzdHJ1 Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqc2VjdGlvbikKKyt7CisrICB1bnNpZ25lZCBpbnQgYnl0 ZXNfcmVhZCwgaTsKKysgIHVuc2lnbmVkIGxvbmcgYXJnOworKyAgZ2RiX2J5dGUgKmRlZm47Cisg CistICBkbworKyAgaWYgKG9wY29kZV9kZWZpbml0aW9uc1tvcGNvZGVdID09IE5VTEwpCisgICAg IHsKKy0gICAgICAvKiBEbyB3ZSBhdCBsZWFzdCBoYXZlIHJvb20gZm9yIGEgbWFjaW5mbyB0eXBl IGJ5dGU/ICAqLworLSAgICAgIGlmIChtYWNfcHRyID49IG1hY19lbmQpCistICAgICAgICB7Cist CSAgLyogQ29tcGxhaW50IGlzIHByaW50ZWQgZHVyaW5nIHRoZSBzZWNvbmQgcGFzcyBhcyBHREIg d2lsbCBwcm9iYWJseQorLQkgICAgIHN0b3AgdGhlIGZpcnN0IHBhc3MgZWFybGllciB1cG9uIGZp bmRpbmcKKy0JICAgICBEV19NQUNJTkZPX3N0YXJ0X2ZpbGUuICAqLworLQkgIGJyZWFrOworLSAg ICAgICAgfQorKyAgICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKKysJCSBfKCJ1 bnJlY29nbml6ZWQgRFdfTUFDRklOTyBvcGNvZGUgMHgleCIpLAorKwkJIG9wY29kZSk7CisrICAg ICAgcmV0dXJuIE5VTEw7CisrICAgIH0KKyAKKy0gICAgICBtYWNpbmZvX3R5cGUgPSByZWFkXzFf Ynl0ZSAoYWJmZCwgbWFjX3B0cik7CistICAgICAgbWFjX3B0cisrOworKyAgZGVmbiA9IG9wY29k ZV9kZWZpbml0aW9uc1tvcGNvZGVdOworKyAgYXJnID0gcmVhZF91bnNpZ25lZF9sZWIxMjggKGFi ZmQsIGRlZm4sICZieXRlc19yZWFkKTsKKysgIGRlZm4gKz0gYnl0ZXNfcmVhZDsKKyAKKy0gICAg ICBzd2l0Y2ggKG1hY2luZm9fdHlwZSkKKy0gICAgICAgIHsKKy0gICAgICAgICAgLyogQSB6ZXJv IG1hY2luZm8gdHlwZSBpbmRpY2F0ZXMgdGhlIGVuZCBvZiB0aGUgbWFjcm8KKy0gICAgICAgICAg ICAgaW5mb3JtYXRpb24uICAqLworLSAgICAgICAgY2FzZSAwOgorLQkgIGJyZWFrOworKyAgZm9y IChpID0gMDsgaSA8IGFyZzsgKytpKQorKyAgICB7CisrICAgICAgbWFjX3B0ciA9IHNraXBfZm9y bV9ieXRlcyAoYWJmZCwgbWFjX3B0ciwgZGVmbltpXSwgb2Zmc2V0X3NpemUsIHNlY3Rpb24pOwor KyAgICAgIGlmIChtYWNfcHRyID09IE5VTEwpCisrCXsKKysJICAvKiBza2lwX2Zvcm1fYnl0ZXMg YWxyZWFkeSBpc3N1ZWQgdGhlIGNvbXBsYWludC4gICovCisrCSAgcmV0dXJuIE5VTEw7CisrCX0K KysgICAgfQorIAorLQljYXNlIERXX01BQ0lORk9fZGVmaW5lOgorLQljYXNlIERXX01BQ0lORk9f dW5kZWY6CistCSAgLyogT25seSBza2lwIHRoZSBkYXRhIGJ5IE1BQ19QVFIuICAqLworLQkgIHsK Ky0JICAgIHVuc2lnbmVkIGludCBieXRlc19yZWFkOworKyAgcmV0dXJuIG1hY19wdHI7CisrfQor IAorLQkgICAgcmVhZF91bnNpZ25lZF9sZWIxMjggKGFiZmQsIG1hY19wdHIsICZieXRlc19yZWFk KTsKKy0JICAgIG1hY19wdHIgKz0gYnl0ZXNfcmVhZDsKKy0JICAgIHJlYWRfZGlyZWN0X3N0cmlu ZyAoYWJmZCwgbWFjX3B0ciwgJmJ5dGVzX3JlYWQpOworLQkgICAgbWFjX3B0ciArPSBieXRlc19y ZWFkOworLQkgIH0KKy0JICBicmVhazsKKysvKiBBIGhlbHBlciBmdW5jdGlvbiB3aGljaCBwYXJz ZXMgdGhlIGhlYWRlciBvZiBhIG1hY3JvIHNlY3Rpb24uCisrICAgSWYgdGhlIG1hY3JvIHNlY3Rp b24gaXMgdGhlIGV4dGVuZGVkIChmb3Igbm93IGNhbGxlZCAiR05VIikgdHlwZSwKKysgICB0aGVu IHRoaXMgdXBkYXRlcyAqT0ZGU0VUX1NJWkUuICBSZXR1cm5zIGEgcG9pbnRlciB0byBqdXN0IGFm dGVyCisrICAgdGhlIGhlYWRlciwgb3IgaXNzdWVzIGEgY29tcGxhaW50IGFuZCByZXR1cm5zIE5V TEwgb24gZXJyb3IuICAqLworIAorLQljYXNlIERXX01BQ0lORk9fc3RhcnRfZmlsZToKKy0JICB7 CistCSAgICB1bnNpZ25lZCBpbnQgYnl0ZXNfcmVhZDsKKy0JICAgIGludCBsaW5lLCBmaWxlOwor K3N0YXRpYyBnZGJfYnl0ZSAqCisrZHdhcmZfcGFyc2VfbWFjcm9faGVhZGVyIChnZGJfYnl0ZSAq Km9wY29kZV9kZWZpbml0aW9ucywKKysJCQkgIGJmZCAqYWJmZCwKKysJCQkgIGdkYl9ieXRlICpt YWNfcHRyLAorKwkJCSAgdW5zaWduZWQgaW50ICpvZmZzZXRfc2l6ZSwKKysJCQkgIGludCBzZWN0 aW9uX2lzX2dudSkKKyt7CisrICBtZW1zZXQgKG9wY29kZV9kZWZpbml0aW9ucywgMCwgMjU2ICog c2l6ZW9mIChnZGJfYnl0ZSAqKSk7CisgCistCSAgICBsaW5lID0gcmVhZF91bnNpZ25lZF9sZWIx MjggKGFiZmQsIG1hY19wdHIsICZieXRlc19yZWFkKTsKKy0JICAgIG1hY19wdHIgKz0gYnl0ZXNf cmVhZDsKKy0JICAgIGZpbGUgPSByZWFkX3Vuc2lnbmVkX2xlYjEyOCAoYWJmZCwgbWFjX3B0ciwg JmJ5dGVzX3JlYWQpOworLQkgICAgbWFjX3B0ciArPSBieXRlc19yZWFkOworKyAgaWYgKHNlY3Rp b25faXNfZ251KQorKyAgICB7CisrICAgICAgdW5zaWduZWQgaW50IHZlcnNpb24sIGZsYWdzOwor IAorLQkgICAgY3VycmVudF9maWxlID0gbWFjcm9fc3RhcnRfZmlsZSAoZmlsZSwgbGluZSwgY3Vy cmVudF9maWxlLAorLQkJCQkJICAgICBjb21wX2RpciwgbGgsIGN1LT5vYmpmaWxlKTsKKy0JICB9 CistCSAgYnJlYWs7CisrICAgICAgdmVyc2lvbiA9IHJlYWRfMl9ieXRlcyAoYWJmZCwgbWFjX3B0 cik7CisrICAgICAgaWYgKHZlcnNpb24gIT0gNCkKKysJeworKwkgIGNvbXBsYWludCAoJnN5bWZp bGVfY29tcGxhaW50cywKKysJCSAgICAgXygidW5yZWNvZ25pemVkIHZlcnNpb24gYCVkJyBpbiAu ZGVidWdfbWFjcm8gc2VjdGlvbiIpLAorKwkJICAgICB2ZXJzaW9uKTsKKysJICByZXR1cm4gTlVM TDsKKysJfQorKyAgICAgIG1hY19wdHIgKz0gMjsKKyAKKy0JY2FzZSBEV19NQUNJTkZPX2VuZF9m aWxlOgorLQkgIC8qIE5vIGRhdGEgdG8gc2tpcCBieSBNQUNfUFRSLiAgKi8KKy0JICBicmVhazsK KysgICAgICBmbGFncyA9IHJlYWRfMV9ieXRlIChhYmZkLCBtYWNfcHRyKTsKKysgICAgICArK21h Y19wdHI7CisrICAgICAgKm9mZnNldF9zaXplID0gKGZsYWdzICYgMSkgPyA4IDogNDsKKyAKKy0J Y2FzZSBEV19NQUNJTkZPX3ZlbmRvcl9leHQ6CistCSAgLyogT25seSBza2lwIHRoZSBkYXRhIGJ5 IE1BQ19QVFIuICAqLworLQkgIHsKKy0JICAgIHVuc2lnbmVkIGludCBieXRlc19yZWFkOworKyAg ICAgIGlmICgoZmxhZ3MgJiAyKSAhPSAwKQorKwkvKiBXZSBkb24ndCBuZWVkIHRoZSBsaW5lIHRh YmxlIG9mZnNldC4gICovCisrCW1hY19wdHIgKz0gKm9mZnNldF9zaXplOworIAorLQkgICAgcmVh ZF91bnNpZ25lZF9sZWIxMjggKGFiZmQsIG1hY19wdHIsICZieXRlc19yZWFkKTsKKy0JICAgIG1h Y19wdHIgKz0gYnl0ZXNfcmVhZDsKKy0JICAgIHJlYWRfZGlyZWN0X3N0cmluZyAoYWJmZCwgbWFj X3B0ciwgJmJ5dGVzX3JlYWQpOworLQkgICAgbWFjX3B0ciArPSBieXRlc19yZWFkOworLQkgIH0K Ky0JICBicmVhazsKKysgICAgICAvKiBWZW5kb3Igb3Bjb2RlIGRlc2NyaXB0aW9ucy4gICovCisr ICAgICAgaWYgKChmbGFncyAmIDQpICE9IDApCisrCXsKKysJICB1bnNpZ25lZCBpbnQgaSwgY291 bnQ7CisgCistCWRlZmF1bHQ6CistCSAgYnJlYWs7CisrCSAgY291bnQgPSByZWFkXzFfYnl0ZSAo YWJmZCwgbWFjX3B0cik7CisrCSAgKyttYWNfcHRyOworKwkgIGZvciAoaSA9IDA7IGkgPCBjb3Vu dDsgKytpKQorKwkgICAgeworKwkgICAgICB1bnNpZ25lZCBpbnQgb3Bjb2RlLCBieXRlc19yZWFk OworKwkgICAgICB1bnNpZ25lZCBsb25nIGFyZzsKKysKKysJICAgICAgb3Bjb2RlID0gcmVhZF8x X2J5dGUgKGFiZmQsIG1hY19wdHIpOworKwkgICAgICArK21hY19wdHI7CisrCSAgICAgIG9wY29k ZV9kZWZpbml0aW9uc1tvcGNvZGVdID0gbWFjX3B0cjsKKysJICAgICAgYXJnID0gcmVhZF91bnNp Z25lZF9sZWIxMjggKGFiZmQsIG1hY19wdHIsICZieXRlc19yZWFkKTsKKysJICAgICAgbWFjX3B0 ciArPSBieXRlc19yZWFkOworKwkgICAgICBtYWNfcHRyICs9IGFyZzsKKysJICAgIH0KKyAJfQor LSAgICB9IHdoaWxlIChtYWNpbmZvX3R5cGUgIT0gMCAmJiBjdXJyZW50X2ZpbGUgPT0gTlVMTCk7 CisrICAgIH0KKyAKKy0gIC8qIFNlY29uZCBwYXNzOiBQcm9jZXNzIGFsbCBlbnRyaWVzLgorKyAg cmV0dXJuIG1hY19wdHI7CisrfQorIAorLSAgICAgVXNlIHRoZSBBVF9DT01NQU5EX0xJTkUgZmxh ZyB0byBkZXRlcm1pbmUgd2hldGhlciB3ZSBhcmUgc3RpbGwgcHJvY2Vzc2luZworLSAgICAgY29t bWFuZC1saW5lIG1hY3JvIGRlZmluaXRpb25zL3VuZGVmaW5pdGlvbnMuICBUaGlzIGZsYWcgaXMg dW5zZXQgd2hlbiB3ZQorLSAgICAgcmVhY2ggdGhlIGZpcnN0IERXX01BQ0lORk9fc3RhcnRfZmls ZSBlbnRyeS4gICovCisrLyogQSBoZWxwZXIgZm9yIGR3YXJmX2RlY29kZV9tYWNyb3MgdGhhdCBo YW5kbGVzIHRoZSBHTlUgZXh0ZW5zaW9ucywKKysgICBpbmNsdWRpbmcgRFdfR05VX01BQ0lORk9f dHJhbnNwYXJlbnRfaW5jbHVkZS4gICovCisrCisrc3RhdGljIHZvaWQKKytkd2FyZl9kZWNvZGVf bWFjcm9fYnl0ZXMgKGJmZCAqYWJmZCwgZ2RiX2J5dGUgKm1hY19wdHIsIGdkYl9ieXRlICptYWNf ZW5kLAorKwkJCSAgc3RydWN0IG1hY3JvX3NvdXJjZV9maWxlICpjdXJyZW50X2ZpbGUsCisrCQkJ ICBzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCBjaGFyICpjb21wX2RpciwKKysJCQkgIHN0cnVjdCBk d2FyZjJfc2VjdGlvbl9pbmZvICpzZWN0aW9uLAorKwkJCSAgaW50IHNlY3Rpb25faXNfZ251LAor KwkJCSAgdW5zaWduZWQgaW50IG9mZnNldF9zaXplLAorKwkJCSAgc3RydWN0IG9iamZpbGUgKm9i amZpbGUpCisreworKyAgZW51bSBkd2FyZl9tYWNyb19yZWNvcmRfdHlwZSBtYWNpbmZvX3R5cGU7 CisrICBpbnQgYXRfY29tbWFuZGxpbmU7CisrICBnZGJfYnl0ZSAqb3Bjb2RlX2RlZmluaXRpb25z WzI1Nl07CisgCistICBtYWNfcHRyID0gZHdhcmYyX3Blcl9vYmpmaWxlLT5tYWNpbmZvLmJ1ZmZl ciArIG9mZnNldDsKKysgIG1hY19wdHIgPSBkd2FyZl9wYXJzZV9tYWNyb19oZWFkZXIgKG9wY29k ZV9kZWZpbml0aW9ucywgYWJmZCwgbWFjX3B0ciwKKysJCQkJICAgICAgJm9mZnNldF9zaXplLCBz ZWN0aW9uX2lzX2dudSk7CisrICBpZiAobWFjX3B0ciA9PSBOVUxMKQorKyAgICB7CisrICAgICAg LyogV2UgYWxyZWFkeSBpc3N1ZWQgYSBjb21wbGFpbnQuICAqLworKyAgICAgIHJldHVybjsKKysg ICAgfQorIAorICAgLyogRGV0ZXJtaW5lcyBpZiBHREIgaXMgc3RpbGwgYmVmb3JlIGZpcnN0IERX X01BQ0lORk9fc3RhcnRfZmlsZS4gIElmIHRydWUKKyAgICAgIEdEQiBpcyBzdGlsbCByZWFkaW5n IHRoZSBkZWZpbml0aW9ucyBmcm9tIGNvbW1hbmQgbGluZS4gIEZpcnN0CitAQCAtMTQ3OTUsMTMg KzE0OTA4LDE1IEBACisgICAgICAgLyogRG8gd2UgYXQgbGVhc3QgaGF2ZSByb29tIGZvciBhIG1h Y2luZm8gdHlwZSBieXRlPyAgKi8KKyAgICAgICBpZiAobWFjX3B0ciA+PSBtYWNfZW5kKQorIAl7 CistCSAgZHdhcmYyX21hY3Jvc190b29fbG9uZ19jb21wbGFpbnQgKCk7CisrCSAgZHdhcmYyX21h Y3Jvc190b29fbG9uZ19jb21wbGFpbnQgKHNlY3Rpb24pOworIAkgIGJyZWFrOworIAl9CisgCisg ICAgICAgbWFjaW5mb190eXBlID0gcmVhZF8xX2J5dGUgKGFiZmQsIG1hY19wdHIpOworICAgICAg IG1hY19wdHIrKzsKKyAKKysgICAgICAvKiBOb3RlIHRoYXQgd2UgcmVseSBvbiB0aGUgZmFjdCB0 aGF0IHRoZSBjb3JyZXNwb25kaW5nIEdOVSBhbmQKKysJIERXQVJGIGNvbnN0YW50cyBhcmUgdGhl IHNhbWUuICAqLworICAgICAgIHN3aXRjaCAobWFjaW5mb190eXBlKQorIAl7CisgCSAgLyogQSB6 ZXJvIG1hY2luZm8gdHlwZSBpbmRpY2F0ZXMgdGhlIGVuZCBvZiB0aGUgbWFjcm8KK0BAIC0xNDgw OSwyOSArMTQ5MjQsNDUgQEAKKyAJY2FzZSAwOgorIAkgIGJyZWFrOworIAorLSAgICAgICAgY2Fz ZSBEV19NQUNJTkZPX2RlZmluZToKKy0gICAgICAgIGNhc2UgRFdfTUFDSU5GT191bmRlZjoKKysg ICAgICAgIGNhc2UgRFdfTUFDUk9fR05VX2RlZmluZToKKysgICAgICAgIGNhc2UgRFdfTUFDUk9f R05VX3VuZGVmOgorKwljYXNlIERXX01BQ1JPX0dOVV9kZWZpbmVfaW5kaXJlY3Q6CisrCWNhc2Ug RFdfTUFDUk9fR05VX3VuZGVmX2luZGlyZWN0OgorICAgICAgICAgICB7CisgICAgICAgICAgICAg dW5zaWduZWQgaW50IGJ5dGVzX3JlYWQ7CisgICAgICAgICAgICAgaW50IGxpbmU7CisgICAgICAg ICAgICAgY2hhciAqYm9keTsKKysJICAgIGludCBpc19kZWZpbmU7CisgCistICAgICAgICAgICAg bGluZSA9IHJlYWRfdW5zaWduZWRfbGViMTI4IChhYmZkLCBtYWNfcHRyLCAmYnl0ZXNfcmVhZCk7 CistICAgICAgICAgICAgbWFjX3B0ciArPSBieXRlc19yZWFkOworLSAgICAgICAgICAgIGJvZHkg PSByZWFkX2RpcmVjdF9zdHJpbmcgKGFiZmQsIG1hY19wdHIsICZieXRlc19yZWFkKTsKKy0gICAg ICAgICAgICBtYWNfcHRyICs9IGJ5dGVzX3JlYWQ7CisrCSAgICBsaW5lID0gcmVhZF91bnNpZ25l ZF9sZWIxMjggKGFiZmQsIG1hY19wdHIsICZieXRlc19yZWFkKTsKKysJICAgIG1hY19wdHIgKz0g Ynl0ZXNfcmVhZDsKKysKKysJICAgIGlmIChtYWNpbmZvX3R5cGUgPT0gRFdfTUFDUk9fR05VX2Rl ZmluZQorKwkJfHwgbWFjaW5mb190eXBlID09IERXX01BQ1JPX0dOVV91bmRlZikKKysJICAgICAg eworKwkJYm9keSA9IHJlYWRfZGlyZWN0X3N0cmluZyAoYWJmZCwgbWFjX3B0ciwgJmJ5dGVzX3Jl YWQpOworKwkJbWFjX3B0ciArPSBieXRlc19yZWFkOworKwkgICAgICB9CisrCSAgICBlbHNlCisr CSAgICAgIHsKKysJCUxPTkdFU1Qgc3RyX29mZnNldDsKKysKKysJCXN0cl9vZmZzZXQgPSByZWFk X29mZnNldF8xIChhYmZkLCBtYWNfcHRyLCBvZmZzZXRfc2l6ZSk7CisrCQltYWNfcHRyICs9IG9m ZnNldF9zaXplOworIAorKwkJYm9keSA9IHJlYWRfaW5kaXJlY3Rfc3RyaW5nX2F0X29mZnNldCAo YWJmZCwgc3RyX29mZnNldCk7CisrCSAgICAgIH0KKysKKysJICAgIGlzX2RlZmluZSA9IChtYWNp bmZvX3R5cGUgPT0gRFdfTUFDUk9fR05VX2RlZmluZQorKwkJCSB8fCBtYWNpbmZvX3R5cGUgPT0g RFdfTUFDUk9fR05VX2RlZmluZV9pbmRpcmVjdCk7CisgICAgICAgICAgICAgaWYgKCEgY3VycmVu dF9maWxlKQorIAkgICAgICB7CisgCQkvKiBEV0FSRiB2aW9sYXRpb24gYXMgbm8gbWFpbiBzb3Vy Y2UgaXMgcHJlc2VudC4gICovCisgCQljb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCisg CQkJICAgXygiZGVidWcgaW5mbyB3aXRoIG5vIG1haW4gc291cmNlIGdpdmVzIG1hY3JvICVzICIK KyAJCQkgICAgICJvbiBsaW5lICVkOiAlcyIpLAorLQkJCSAgIG1hY2luZm9fdHlwZSA9PSBEV19N QUNJTkZPX2RlZmluZSA/CistCQkJICAgICBfKCJkZWZpbml0aW9uIikgOgorLQkJCSAgICAgICBt YWNpbmZvX3R5cGUgPT0gRFdfTUFDSU5GT191bmRlZiA/CistCQkJCSBfKCJ1bmRlZmluaXRpb24i KSA6CistCQkJCSBfKCJzb21ldGhpbmctb3Itb3RoZXIiKSwgbGluZSwgYm9keSk7CisrCQkJICAg aXNfZGVmaW5lID8gXygiZGVmaW5pdGlvbiIpIDogXygidW5kZWZpbml0aW9uIiksCisrCQkJICAg bGluZSwgYm9keSk7CisgCQlicmVhazsKKyAJICAgICAgfQorIAkgICAgaWYgKChsaW5lID09IDAg JiYgIWF0X2NvbW1hbmRsaW5lKQorQEAgLTE0ODM5LDIxICsxNDk3MCwyMSBAQAorIAkgICAgICBj b21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCisgCQkJIF8oImRlYnVnIGluZm8gZ2l2ZXMg JXMgbWFjcm8gJXMgd2l0aCAlcyBsaW5lICVkOiAlcyIpLAorIAkJCSBhdF9jb21tYW5kbGluZSA/ IF8oImNvbW1hbmQtbGluZSIpIDogXygiaW4tZmlsZSIpLAorLQkJCSBtYWNpbmZvX3R5cGUgPT0g RFdfTUFDSU5GT19kZWZpbmUgPworLQkJCSAgIF8oImRlZmluaXRpb24iKSA6CistCQkJICAgICBt YWNpbmZvX3R5cGUgPT0gRFdfTUFDSU5GT191bmRlZiA/CistCQkJICAgICAgIF8oInVuZGVmaW5p dGlvbiIpIDoKKy0JCQkgICAgICAgXygic29tZXRoaW5nLW9yLW90aGVyIiksCisrCQkJIGlzX2Rl ZmluZSA/IF8oImRlZmluaXRpb24iKSA6IF8oInVuZGVmaW5pdGlvbiIpLAorIAkJCSBsaW5lID09 IDAgPyBfKCJ6ZXJvIikgOiBfKCJub24temVybyIpLCBsaW5lLCBib2R5KTsKKyAKKy0JICAgIGlm IChtYWNpbmZvX3R5cGUgPT0gRFdfTUFDSU5GT19kZWZpbmUpCisrCSAgICBpZiAoaXNfZGVmaW5l KQorIAkgICAgICBwYXJzZV9tYWNyb19kZWZpbml0aW9uIChjdXJyZW50X2ZpbGUsIGxpbmUsIGJv ZHkpOworLQkgICAgZWxzZSBpZiAobWFjaW5mb190eXBlID09IERXX01BQ0lORk9fdW5kZWYpCist CSAgICAgIG1hY3JvX3VuZGVmIChjdXJyZW50X2ZpbGUsIGxpbmUsIGJvZHkpOworKwkgICAgZWxz ZQorKwkgICAgICB7CisrCQlnZGJfYXNzZXJ0IChtYWNpbmZvX3R5cGUgPT0gRFdfTUFDUk9fR05V X3VuZGVmCisrCQkJICAgIHx8IG1hY2luZm9fdHlwZSA9PSBEV19NQUNST19HTlVfdW5kZWZfaW5k aXJlY3QpOworKwkJbWFjcm9fdW5kZWYgKGN1cnJlbnRfZmlsZSwgbGluZSwgYm9keSk7CisrCSAg ICAgIH0KKyAgICAgICAgICAgfQorICAgICAgICAgICBicmVhazsKKyAKKy0gICAgICAgIGNhc2Ug RFdfTUFDSU5GT19zdGFydF9maWxlOgorKyAgICAgICAgY2FzZSBEV19NQUNST19HTlVfc3RhcnRf ZmlsZToKKyAgICAgICAgICAgeworICAgICAgICAgICAgIHVuc2lnbmVkIGludCBieXRlc19yZWFk OworICAgICAgICAgICAgIGludCBsaW5lLCBmaWxlOworQEAgLTE0ODczLDE3ICsxNTAwNCwxOCBA QAorIAorIAkgICAgaWYgKGF0X2NvbW1hbmRsaW5lKQorIAkgICAgICB7CistCQkvKiBUaGlzIERX X01BQ0lORk9fc3RhcnRfZmlsZSB3YXMgZXhlY3V0ZWQgaW4gdGhlIHBhc3Mgb25lLiAgKi8KKysJ CS8qIFRoaXMgRFdfTUFDUk9fR05VX3N0YXJ0X2ZpbGUgd2FzIGV4ZWN1dGVkIGluIHRoZQorKwkJ ICAgcGFzcyBvbmUuICAqLworIAkJYXRfY29tbWFuZGxpbmUgPSAwOworIAkgICAgICB9CisgCSAg ICBlbHNlCisgCSAgICAgIGN1cnJlbnRfZmlsZSA9IG1hY3JvX3N0YXJ0X2ZpbGUgKGZpbGUsIGxp bmUsCisgCQkJCQkgICAgICAgY3VycmVudF9maWxlLCBjb21wX2RpciwKKy0JCQkJCSAgICAgICBs aCwgY3UtPm9iamZpbGUpOworKwkJCQkJICAgICAgIGxoLCBvYmpmaWxlKTsKKyAgICAgICAgICAg fQorICAgICAgICAgICBicmVhazsKKyAKKy0gICAgICAgIGNhc2UgRFdfTUFDSU5GT19lbmRfZmls ZToKKysgICAgICAgIGNhc2UgRFdfTUFDUk9fR05VX2VuZF9maWxlOgorICAgICAgICAgICBpZiAo ISBjdXJyZW50X2ZpbGUpCisgCSAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCisg CQkgICAgICAgXygibWFjcm8gZGVidWcgaW5mbyBoYXMgYW4gdW5tYXRjaGVkICIKK0BAIC0xNDg5 Myw3ICsxNTAyNSw3IEBACisgICAgICAgICAgICAgICBjdXJyZW50X2ZpbGUgPSBjdXJyZW50X2Zp bGUtPmluY2x1ZGVkX2J5OworICAgICAgICAgICAgICAgaWYgKCEgY3VycmVudF9maWxlKQorICAg ICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgZW51bSBkd2FyZl9tYWNpbmZvX3Jl Y29yZF90eXBlIG5leHRfdHlwZTsKKysgICAgICAgICAgICAgICAgICBlbnVtIGR3YXJmX21hY3Jv X3JlY29yZF90eXBlIG5leHRfdHlwZTsKKyAKKyAgICAgICAgICAgICAgICAgICAvKiBHQ0MgY2ly Y2EgTWFyY2ggMjAwMiBkb2Vzbid0IHByb2R1Y2UgdGhlIHplcm8KKyAgICAgICAgICAgICAgICAg ICAgICB0eXBlIGJ5dGUgbWFya2luZyB0aGUgZW5kIG9mIHRoZSBjb21waWxhdGlvbgorQEAgLTE0 OTAzLDcgKzE1MDM1LDcgQEAKKyAgICAgICAgICAgICAgICAgICAvKiBEbyB3ZSBhdCBsZWFzdCBo YXZlIHJvb20gZm9yIGEgbWFjaW5mbyB0eXBlIGJ5dGU/ICAqLworICAgICAgICAgICAgICAgICAg IGlmIChtYWNfcHRyID49IG1hY19lbmQpCisgICAgICAgICAgICAgICAgICAgICB7CistCQkgICAg ICBkd2FyZjJfbWFjcm9zX3Rvb19sb25nX2NvbXBsYWludCAoKTsKKysJCSAgICAgIGR3YXJmMl9t YWNyb3NfdG9vX2xvbmdfY29tcGxhaW50IChzZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICAgfQorIAorQEAgLTE0OTIwLDIzICsxNTA1 MiwxOTkgQEAKKyAgICAgICAgICAgICB9CisgICAgICAgICAgIGJyZWFrOworIAorKwljYXNlIERX X01BQ1JPX0dOVV90cmFuc3BhcmVudF9pbmNsdWRlOgorKwkgIHsKKysJICAgIExPTkdFU1Qgb2Zm c2V0OworKworKwkgICAgb2Zmc2V0ID0gcmVhZF9vZmZzZXRfMSAoYWJmZCwgbWFjX3B0ciwgb2Zm c2V0X3NpemUpOworKwkgICAgbWFjX3B0ciArPSBvZmZzZXRfc2l6ZTsKKysKKysJICAgIGR3YXJm X2RlY29kZV9tYWNyb19ieXRlcyAoYWJmZCwKKysJCQkJICAgICAgc2VjdGlvbi0+YnVmZmVyICsg b2Zmc2V0LAorKwkJCQkgICAgICBtYWNfZW5kLCBjdXJyZW50X2ZpbGUsCisrCQkJCSAgICAgIGxo LCBjb21wX2RpciwKKysJCQkJICAgICAgc2VjdGlvbiwgc2VjdGlvbl9pc19nbnUsCisrCQkJCSAg ICAgIG9mZnNldF9zaXplLCBvYmpmaWxlKTsKKysJICB9CisrCSAgYnJlYWs7CisrCisgICAgICAg ICBjYXNlIERXX01BQ0lORk9fdmVuZG9yX2V4dDoKKy0gICAgICAgICAgeworLSAgICAgICAgICAg IHVuc2lnbmVkIGludCBieXRlc19yZWFkOworLSAgICAgICAgICAgIGludCBjb25zdGFudDsKKysJ ICBpZiAoIXNlY3Rpb25faXNfZ251KQorKwkgICAgeworKwkgICAgICB1bnNpZ25lZCBpbnQgYnl0 ZXNfcmVhZDsKKysJICAgICAgaW50IGNvbnN0YW50OworIAorLSAgICAgICAgICAgIGNvbnN0YW50 ID0gcmVhZF91bnNpZ25lZF9sZWIxMjggKGFiZmQsIG1hY19wdHIsICZieXRlc19yZWFkKTsKKy0g ICAgICAgICAgICBtYWNfcHRyICs9IGJ5dGVzX3JlYWQ7CistICAgICAgICAgICAgcmVhZF9kaXJl Y3Rfc3RyaW5nIChhYmZkLCBtYWNfcHRyLCAmYnl0ZXNfcmVhZCk7CistICAgICAgICAgICAgbWFj X3B0ciArPSBieXRlc19yZWFkOworKwkgICAgICBjb25zdGFudCA9IHJlYWRfdW5zaWduZWRfbGVi MTI4IChhYmZkLCBtYWNfcHRyLCAmYnl0ZXNfcmVhZCk7CisrCSAgICAgIG1hY19wdHIgKz0gYnl0 ZXNfcmVhZDsKKysJICAgICAgcmVhZF9kaXJlY3Rfc3RyaW5nIChhYmZkLCBtYWNfcHRyLCAmYnl0 ZXNfcmVhZCk7CisrCSAgICAgIG1hY19wdHIgKz0gYnl0ZXNfcmVhZDsKKyAKKy0gICAgICAgICAg ICAvKiBXZSBkb24ndCByZWNvZ25pemUgYW55IHZlbmRvciBleHRlbnNpb25zLiAgKi8KKy0gICAg ICAgICAgfQorLSAgICAgICAgICBicmVhazsKKysJICAgICAgLyogV2UgZG9uJ3QgcmVjb2duaXpl IGFueSB2ZW5kb3IgZXh0ZW5zaW9ucy4gICovCisrCSAgICAgIGJyZWFrOworKwkgICAgfQorKwkg IC8qIEZBTExUSFJPVUdIICovCisrCisrCWRlZmF1bHQ6CisrCSAgbWFjX3B0ciA9IHNraXBfdW5r bm93bl9vcGNvZGUgKG1hY2luZm9fdHlwZSwgb3Bjb2RlX2RlZmluaXRpb25zLAorKwkJCQkJIG1h Y19wdHIsIGFiZmQsIG9mZnNldF9zaXplLAorKwkJCQkJIHNlY3Rpb24pOworKwkgIGlmIChtYWNf cHRyID09IE5VTEwpCisrCSAgICByZXR1cm47CisrCSAgYnJlYWs7CisgICAgICAgICB9CisgICAg IH0gd2hpbGUgKG1hY2luZm9fdHlwZSAhPSAwKTsKKyB9CisgCisrc3RhdGljIHZvaWQKKytkd2Fy Zl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zm c2V0LAorKyAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmNvbXBfZGlyLCBiZmQgKmFiZmQsCisr ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGR3YXJmMl9jdSAqY3UsCisrCQkgICAgIHN0cnVj dCBkd2FyZjJfc2VjdGlvbl9pbmZvICpzZWN0aW9uLAorKwkJICAgICBpbnQgc2VjdGlvbl9pc19n bnUpCisreworKyAgZ2RiX2J5dGUgKm1hY19wdHIsICptYWNfZW5kOworKyAgc3RydWN0IG1hY3Jv X3NvdXJjZV9maWxlICpjdXJyZW50X2ZpbGUgPSAwOworKyAgZW51bSBkd2FyZl9tYWNyb19yZWNv cmRfdHlwZSBtYWNpbmZvX3R5cGU7CisrICB1bnNpZ25lZCBpbnQgb2Zmc2V0X3NpemUgPSBjdS0+ aGVhZGVyLm9mZnNldF9zaXplOworKyAgZ2RiX2J5dGUgKm9wY29kZV9kZWZpbml0aW9uc1syNTZd OworKworKyAgZHdhcmYyX3JlYWRfc2VjdGlvbiAoZHdhcmYyX3Blcl9vYmpmaWxlLT5vYmpmaWxl LCBzZWN0aW9uKTsKKysgIGlmIChzZWN0aW9uLT5idWZmZXIgPT0gTlVMTCkKKysgICAgeworKyAg ICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywgXygibWlzc2luZyAlcyBzZWN0aW9u IiksCisrCQkgc2VjdGlvbi0+YXNlY3Rpb24tPm5hbWUpOworKyAgICAgIHJldHVybjsKKysgICAg fQorKworKyAgLyogRmlyc3QgcGFzczogRmluZCB0aGUgbmFtZSBvZiB0aGUgYmFzZSBmaWxlbmFt ZS4KKysgICAgIFRoaXMgZmlsZW5hbWUgaXMgbmVlZGVkIGluIG9yZGVyIHRvIHByb2Nlc3MgYWxs IG1hY3JvcyB3aG9zZSBkZWZpbml0aW9uCisrICAgICAob3IgdW5kZWZpbml0aW9uKSBjb21lcyBm cm9tIHRoZSBjb21tYW5kIGxpbmUuICBUaGVzZSBtYWNyb3MgYXJlIGRlZmluZWQKKysgICAgIGJl Zm9yZSB0aGUgZmlyc3QgRFdfTUFDSU5GT19zdGFydF9maWxlIGVudHJ5LCBhbmQgeWV0IHN0aWxs IG5lZWQgdG8gYmUKKysgICAgIGFzc29jaWF0ZWQgdG8gdGhlIGJhc2UgZmlsZS4KKysKKysgICAg IFRvIGRldGVybWluZSB0aGUgYmFzZSBmaWxlIG5hbWUsIHdlIHNjYW4gdGhlIG1hY3JvIGRlZmlu aXRpb25zIHVudGlsIHdlCisrICAgICByZWFjaCB0aGUgZmlyc3QgRFdfTUFDSU5GT19zdGFydF9m aWxlIGVudHJ5LiAgV2UgdGhlbiBpbml0aWFsaXplCisrICAgICBDVVJSRU5UX0ZJTEUgYWNjb3Jk aW5nbHkgc28gdGhhdCBhbnkgbWFjcm8gZGVmaW5pdGlvbiBmb3VuZCBiZWZvcmUgdGhlCisrICAg ICBmaXJzdCBEV19NQUNJTkZPX3N0YXJ0X2ZpbGUgY2FuIHN0aWxsIGJlIGFzc29jaWF0ZWQgdG8g dGhlIGJhc2UgZmlsZS4gICovCisrCisrICBtYWNfcHRyID0gc2VjdGlvbi0+YnVmZmVyICsgb2Zm c2V0OworKyAgbWFjX2VuZCA9IHNlY3Rpb24tPmJ1ZmZlciArIHNlY3Rpb24tPnNpemU7CisrCisr ICBtYWNfcHRyID0gZHdhcmZfcGFyc2VfbWFjcm9faGVhZGVyIChvcGNvZGVfZGVmaW5pdGlvbnMs IGFiZmQsIG1hY19wdHIsCisrCQkJCSAgICAgICZvZmZzZXRfc2l6ZSwgc2VjdGlvbl9pc19nbnUp OworKyAgaWYgKG1hY19wdHIgPT0gTlVMTCkKKysgICAgeworKyAgICAgIC8qIFdlIGFscmVhZHkg aXNzdWVkIGEgY29tcGxhaW50LiAgKi8KKysgICAgICByZXR1cm47CisrICAgIH0KKysKKysgIGRv CisrICAgIHsKKysgICAgICAvKiBEbyB3ZSBhdCBsZWFzdCBoYXZlIHJvb20gZm9yIGEgbWFjaW5m byB0eXBlIGJ5dGU/ICAqLworKyAgICAgIGlmIChtYWNfcHRyID49IG1hY19lbmQpCisrICAgICAg ICB7CisrCSAgLyogQ29tcGxhaW50IGlzIHByaW50ZWQgZHVyaW5nIHRoZSBzZWNvbmQgcGFzcyBh cyBHREIgd2lsbCBwcm9iYWJseQorKwkgICAgIHN0b3AgdGhlIGZpcnN0IHBhc3MgZWFybGllciB1 cG9uIGZpbmRpbmcKKysJICAgICBEV19NQUNJTkZPX3N0YXJ0X2ZpbGUuICAqLworKwkgIGJyZWFr OworKyAgICAgICAgfQorKworKyAgICAgIG1hY2luZm9fdHlwZSA9IHJlYWRfMV9ieXRlIChhYmZk LCBtYWNfcHRyKTsKKysgICAgICBtYWNfcHRyKys7CisrCisrICAgICAgLyogTm90ZSB0aGF0IHdl IHJlbHkgb24gdGhlIGZhY3QgdGhhdCB0aGUgY29ycmVzcG9uZGluZyBHTlUgYW5kCisrCSBEV0FS RiBjb25zdGFudHMgYXJlIHRoZSBzYW1lLiAgKi8KKysgICAgICBzd2l0Y2ggKG1hY2luZm9fdHlw ZSkKKysgICAgICAgIHsKKysgICAgICAgICAgLyogQSB6ZXJvIG1hY2luZm8gdHlwZSBpbmRpY2F0 ZXMgdGhlIGVuZCBvZiB0aGUgbWFjcm8KKysgICAgICAgICAgICAgaW5mb3JtYXRpb24uICAqLwor KyAgICAgICAgY2FzZSAwOgorKwkgIGJyZWFrOworKworKwljYXNlIERXX01BQ1JPX0dOVV9kZWZp bmU6CisrCWNhc2UgRFdfTUFDUk9fR05VX3VuZGVmOgorKwkgIC8qIE9ubHkgc2tpcCB0aGUgZGF0 YSBieSBNQUNfUFRSLiAgKi8KKysJICB7CisrCSAgICB1bnNpZ25lZCBpbnQgYnl0ZXNfcmVhZDsK KysKKysJICAgIHJlYWRfdW5zaWduZWRfbGViMTI4IChhYmZkLCBtYWNfcHRyLCAmYnl0ZXNfcmVh ZCk7CisrCSAgICBtYWNfcHRyICs9IGJ5dGVzX3JlYWQ7CisrCSAgICByZWFkX2RpcmVjdF9zdHJp bmcgKGFiZmQsIG1hY19wdHIsICZieXRlc19yZWFkKTsKKysJICAgIG1hY19wdHIgKz0gYnl0ZXNf cmVhZDsKKysJICB9CisrCSAgYnJlYWs7CisrCisrCWNhc2UgRFdfTUFDUk9fR05VX3N0YXJ0X2Zp bGU6CisrCSAgeworKwkgICAgdW5zaWduZWQgaW50IGJ5dGVzX3JlYWQ7CisrCSAgICBpbnQgbGlu ZSwgZmlsZTsKKysKKysJICAgIGxpbmUgPSByZWFkX3Vuc2lnbmVkX2xlYjEyOCAoYWJmZCwgbWFj X3B0ciwgJmJ5dGVzX3JlYWQpOworKwkgICAgbWFjX3B0ciArPSBieXRlc19yZWFkOworKwkgICAg ZmlsZSA9IHJlYWRfdW5zaWduZWRfbGViMTI4IChhYmZkLCBtYWNfcHRyLCAmYnl0ZXNfcmVhZCk7 CisrCSAgICBtYWNfcHRyICs9IGJ5dGVzX3JlYWQ7CisrCisrCSAgICBjdXJyZW50X2ZpbGUgPSBt YWNyb19zdGFydF9maWxlIChmaWxlLCBsaW5lLCBjdXJyZW50X2ZpbGUsCisrCQkJCQkgICAgIGNv bXBfZGlyLCBsaCwgY3UtPm9iamZpbGUpOworKwkgIH0KKysJICBicmVhazsKKysKKysJY2FzZSBE V19NQUNST19HTlVfZW5kX2ZpbGU6CisrCSAgLyogTm8gZGF0YSB0byBza2lwIGJ5IE1BQ19QVFIu ICAqLworKwkgIGJyZWFrOworKworKwljYXNlIERXX01BQ1JPX0dOVV9kZWZpbmVfaW5kaXJlY3Q6 CisrCWNhc2UgRFdfTUFDUk9fR05VX3VuZGVmX2luZGlyZWN0OgorKwkgIHsKKysJICAgIHVuc2ln bmVkIGludCBieXRlc19yZWFkOworKworKwkgICAgcmVhZF91bnNpZ25lZF9sZWIxMjggKGFiZmQs IG1hY19wdHIsICZieXRlc19yZWFkKTsKKysJICAgIG1hY19wdHIgKz0gYnl0ZXNfcmVhZDsKKysJ ICAgIG1hY19wdHIgKz0gb2Zmc2V0X3NpemU7CisrCSAgfQorKwkgIGJyZWFrOworKworKwljYXNl IERXX01BQ1JPX0dOVV90cmFuc3BhcmVudF9pbmNsdWRlOgorKwkgIC8qIE5vdGUgdGhhdCwgYWNj b3JkaW5nIHRvIHRoZSBzcGVjLCBhIHRyYW5zcGFyZW50IGluY2x1ZGUKKysJICAgICBjaGFpbiBj YW5ub3QgY2FsbCBEV19NQUNST19HTlVfc3RhcnRfZmlsZS4gIFNvLCB3ZSBjYW4ganVzdAorKwkg ICAgIHNraXAgdGhpcyBvcGNvZGUuICAqLworKwkgIG1hY19wdHIgKz0gb2Zmc2V0X3NpemU7Cisr CSAgYnJlYWs7CisrCisrCWNhc2UgRFdfTUFDSU5GT192ZW5kb3JfZXh0OgorKwkgIC8qIE9ubHkg c2tpcCB0aGUgZGF0YSBieSBNQUNfUFRSLiAgKi8KKysJICBpZiAoIXNlY3Rpb25faXNfZ251KQor KwkgICAgeworKwkgICAgICB1bnNpZ25lZCBpbnQgYnl0ZXNfcmVhZDsKKysKKysJICAgICAgcmVh ZF91bnNpZ25lZF9sZWIxMjggKGFiZmQsIG1hY19wdHIsICZieXRlc19yZWFkKTsKKysJICAgICAg bWFjX3B0ciArPSBieXRlc19yZWFkOworKwkgICAgICByZWFkX2RpcmVjdF9zdHJpbmcgKGFiZmQs IG1hY19wdHIsICZieXRlc19yZWFkKTsKKysJICAgICAgbWFjX3B0ciArPSBieXRlc19yZWFkOwor KwkgICAgfQorKwkgIC8qIEZBTExUSFJPVUdIICovCisrCisrCWRlZmF1bHQ6CisrCSAgbWFjX3B0 ciA9IHNraXBfdW5rbm93bl9vcGNvZGUgKG1hY2luZm9fdHlwZSwgb3Bjb2RlX2RlZmluaXRpb25z LAorKwkJCQkJIG1hY19wdHIsIGFiZmQsIG9mZnNldF9zaXplLAorKwkJCQkJIHNlY3Rpb24pOwor KwkgIGlmIChtYWNfcHRyID09IE5VTEwpCisrCSAgICByZXR1cm47CisrCSAgYnJlYWs7CisrCX0K KysgICAgfSB3aGlsZSAobWFjaW5mb190eXBlICE9IDAgJiYgY3VycmVudF9maWxlID09IE5VTEwp OworKworKyAgLyogU2Vjb25kIHBhc3M6IFByb2Nlc3MgYWxsIGVudHJpZXMuCisrCisrICAgICBV c2UgdGhlIEFUX0NPTU1BTkRfTElORSBmbGFnIHRvIGRldGVybWluZSB3aGV0aGVyIHdlIGFyZSBz dGlsbCBwcm9jZXNzaW5nCisrICAgICBjb21tYW5kLWxpbmUgbWFjcm8gZGVmaW5pdGlvbnMvdW5k ZWZpbml0aW9ucy4gIFRoaXMgZmxhZyBpcyB1bnNldCB3aGVuIHdlCisrICAgICByZWFjaCB0aGUg Zmlyc3QgRFdfTUFDSU5GT19zdGFydF9maWxlIGVudHJ5LiAgKi8KKysKKysgIGR3YXJmX2RlY29k ZV9tYWNyb19ieXRlcyAoYWJmZCwgc2VjdGlvbi0+YnVmZmVyICsgb2Zmc2V0LCBtYWNfZW5kLAor KwkJCSAgICBjdXJyZW50X2ZpbGUsIGxoLCBjb21wX2Rpciwgc2VjdGlvbiwgc2VjdGlvbl9pc19n bnUsCisrCQkJICAgIG9mZnNldF9zaXplLCBjdS0+b2JqZmlsZSk7CisrfQorKworIC8qIENoZWNr IGlmIHRoZSBhdHRyaWJ1dGUncyBmb3JtIGlzIGEgRFdfRk9STV9ibG9jayoKKyAgICBpZiBzbyBy ZXR1cm4gdHJ1ZSBlbHNlIGZhbHNlLiAgKi8KKyBzdGF0aWMgaW50CitAQCAtMTU2NjMsNiArMTU5 NzEsNyBAQAorICAgbXVubWFwX3NlY3Rpb25fYnVmZmVyICgmZGF0YS0+bGluZSk7CisgICBtdW5t YXBfc2VjdGlvbl9idWZmZXIgKCZkYXRhLT5sb2MpOworICAgbXVubWFwX3NlY3Rpb25fYnVmZmVy ICgmZGF0YS0+bWFjaW5mbyk7CisrICBtdW5tYXBfc2VjdGlvbl9idWZmZXIgKCZkYXRhLT5tYWNy byk7CisgICBtdW5tYXBfc2VjdGlvbl9idWZmZXIgKCZkYXRhLT5zdHIpOworICAgbXVubWFwX3Nl Y3Rpb25fYnVmZmVyICgmZGF0YS0+cmFuZ2VzKTsKKyAgIG11bm1hcF9zZWN0aW9uX2J1ZmZlciAo JmRhdGEtPmZyYW1lKTsKKy0tLSBzcmMvZ2RiL3N5bWZpbGUuaAkyMDExLzA2LzEwIDIxOjQ4OjA0 CTEuOTMKKysrKyBzcmMvZ2RiL3N5bWZpbGUuaAkyMDExLzA3LzI2IDE3OjA0OjIzCTEuOTQKK0BA IC01ODIsNiArNTgyLDcgQEAKKyAgIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9uYW1lcyBsaW5lOwor ICAgc3RydWN0IGR3YXJmMl9zZWN0aW9uX25hbWVzIGxvYzsKKyAgIHN0cnVjdCBkd2FyZjJfc2Vj dGlvbl9uYW1lcyBtYWNpbmZvOworKyAgc3RydWN0IGR3YXJmMl9zZWN0aW9uX25hbWVzIG1hY3Jv OworICAgc3RydWN0IGR3YXJmMl9zZWN0aW9uX25hbWVzIHN0cjsKKyAgIHN0cnVjdCBkd2FyZjJf c2VjdGlvbl9uYW1lcyByYW5nZXM7CisgICBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25fbmFtZXMgdHlw ZXM7CisKKworCitSZTogRllJOiBpbXBsZW1lbnQgbmV3IERXQVJGIG1hY3JvIHByb3Bvc2FsCito dHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMS0wNy9tc2cwMDc1OS5odG1s CitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8yMDExLTA3L21zZzAwMjI0Lmh0bWwK KworIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTEvMDcvMjYgMjE6MDk6MDUJMS4xMzIyOQorIyMj IHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTEvMDcvMjcgMTQ6NDU6MzYJMS4xMzIzMAorIyMgLTEsMyAr MSwxMCBAQAorKzIwMTEtMDctMjcgIFRvbSBUcm9tZXkgIDx0cm9tZXlAcmVkaGF0LmNvbT4KKysK KysJKiB4Y29mZnJlYWQuYyAoZHdhcmYyX3hjb2ZmX25hbWVzKTogQWRkICdtYWNybycgYW5kICdz ZW50aW5lbCcKKysJZW50cmllcy4KKysJKiBzeW1maWxlLmggKHN0cnVjdCBkd2FyZjJfZGVidWdf c2VjdGlvbnMpIDxzZW50aW5lbD46IE5ldyBmaWVsZC4KKysJKiBkd2FyZjJyZWFkLmMgKGR3YXJm Ml9lbGZfbmFtZXMpOiBBZGQgc2VudGluZWwgZW50cnkuCisrCisgMjAxMS0wNy0yNiAgU3Rlcmxp bmcgQXVndXN0aW5lICA8c2F1Z3VzdGluZUBnb29nbGUuY29tPgorIAorIAkqIGNsaS9jbGktZHVt cC5jIChkdW1wX2JpbmFyeV9maWxlKTogQ2hhbmdlIHBhcmFtZXRlciB0eXBlIHRvCistLS0gc3Jj L2dkYi9kd2FyZjJyZWFkLmMJMjAxMS8wNy8yNiAxNzowNDoyMwkxLjU1NQorKysrIHNyYy9nZGIv ZHdhcmYycmVhZC5jCTIwMTEvMDcvMjcgMTQ6NDU6MzcJMS41NTYKK0BAIC0yNzEsNyArMjcxLDgg QEAKKyAgIHsgIi5kZWJ1Z190eXBlcyIsICIuemRlYnVnX3R5cGVzIiB9LAorICAgeyAiLmRlYnVn X2ZyYW1lIiwgIi56ZGVidWdfZnJhbWUiIH0sCisgICB7ICIuZWhfZnJhbWUiLCBOVUxMIH0sCist ICB7ICIuZ2RiX2luZGV4IiwgIi56Z2RiX2luZGV4IiB9CisrICB7ICIuZ2RiX2luZGV4IiwgIi56 Z2RiX2luZGV4IiB9LAorKyAgMjMKKyB9OworIAorIC8qIGxvY2FsIGRhdGEgdHlwZXMgKi8KKy0t LSBzcmMvZ2RiL3N5bWZpbGUuaAkyMDExLzA3LzI2IDE3OjA0OjIzCTEuOTQKKysrKyBzcmMvZ2Ri L3N5bWZpbGUuaAkyMDExLzA3LzI3IDE0OjQ1OjM3CTEuOTUKK0BAIC01ODksNiArNTg5LDkgQEAK KyAgIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9uYW1lcyBmcmFtZTsKKyAgIHN0cnVjdCBkd2FyZjJf c2VjdGlvbl9uYW1lcyBlaF9mcmFtZTsKKyAgIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9uYW1lcyBn ZGJfaW5kZXg7CisrICAvKiBUaGlzIGZpZWxkIGhhcyBubyBtZWFuaW5nLCBidXQgZXhpc3RzIHNv bGVseSB0byBjYXRjaCBjaGFuZ2VzIHRvCisrICAgICB0aGlzIHN0cnVjdHVyZSB3aGljaCBhcmUg bm90IHJlZmxlY3RlZCBpbiBzb21lIGluc3RhbmNlLiAgKi8KKysgIGludCBzZW50aW5lbDsKKyB9 OworIAorIGV4dGVybiBpbnQgZHdhcmYyX2hhc19pbmZvIChzdHJ1Y3Qgb2JqZmlsZSAqLAorLS0t IHNyYy9nZGIveGNvZmZyZWFkLmMJMjAxMS8wNi8wNyAxMjozMTowNwkxLjg5CisrKysgc3JjL2dk Yi94Y29mZnJlYWQuYwkyMDExLzA3LzI3IDE0OjQ1OjM3CTEuOTAKK0BAIC0xNjAsMTIgKzE2MCwx NCBAQAorICAgeyAiLmR3bGluZSIsIE5VTEwgfSwKKyAgIHsgIi5kd2xvYyIsIE5VTEwgfSwKKyAg IHsgTlVMTCwgTlVMTCB9LCAvKiBkZWJ1Z19tYWNpbmZvICovCisrICB7IE5VTEwsIE5VTEwgfSwg LyogZGVidWdfbWFjcm8gKi8KKyAgIHsgIi5kd3N0ciIsIE5VTEwgfSwKKyAgIHsgIi5kd3JuZ2Vz IiwgTlVMTCB9LAorICAgeyBOVUxMLCBOVUxMIH0sIC8qIGRlYnVnX3R5cGVzICovCisgICB7ICIu ZHdmcmFtZSIsIE5VTEwgfSwKKyAgIHsgTlVMTCwgTlVMTCB9LCAvKiBlaF9mcmFtZSAqLworLSAg eyBOVUxMLCBOVUxMIH0gLyogZ2RiX2luZGV4ICovCisrICB7IE5VTEwsIE5VTEwgfSwgLyogZ2Ri X2luZGV4ICovCisrICAyMworIH07CisgCisgc3RhdGljIHZvaWQKCmRpZmYgLS1naXQgYS9nZGIu c3BlYyBiL2dkYi5zcGVjCmluZGV4IGYyZWVmNmIuLjc4ODU3MGIgMTAwNjQ0Ci0tLSBhL2dkYi5z cGVjCisrKyBiL2dkYi5zcGVjCkBAIC0yNyw3ICsyNyw3IEBAIFZlcnNpb246IDcuMy41MC4yMDEx MDcyMgogCiAjIFRoZSByZWxlYXNlIGFsd2F5cyBjb250YWlucyBhIGxlYWRpbmcgcmVzZXJ2ZWQg bnVtYmVyLCBzdGFydCBpdCBhdCAxLgogIyBgdXBzdHJlYW0nIGlzIG5vdCBhIHBhcnQgb2YgYG5h bWUnIHRvIHN0YXkgZnVsbHkgcnBtIGRlcGVuZGVuY2llcyBjb21wYXRpYmxlIGZvciB0aGUgdGVz dGluZy4KLVJlbGVhc2U6IDElez9fd2l0aF91cHN0cmVhbToudXBzdHJlYW19JXs/ZGlzdH0KK1Jl bGVhc2U6IDIlez9fd2l0aF91cHN0cmVhbToudXBzdHJlYW19JXs/ZGlzdH0KIAogTGljZW5zZTog R1BMdjMrIGFuZCBHUEx2Mysgd2l0aCBleGNlcHRpb25zIGFuZCBHUEx2MisgYW5kIEdQTHYyKyB3 aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTCsgYW5kIExHUEx2MisgYW5kIEJTRCBhbmQgUHVibGljIERv bWFpbgogR3JvdXA6IERldmVsb3BtZW50L0RlYnVnZ2VycwpAQCAtMjYwLDcgKzI2MCw3IEBAIFBh dGNoMjMxOiBnZGItNi4zLWJ6MjAyNjg5LWV4ZWMtZnJvbS1wdGhyZWFkLXRlc3QucGF0Y2gKIAog IyBCYWNrcG9ydGVkIGZpeHVwcyBwb3N0IHRoZSBzb3VyY2UgdGFyYmFsbC4KICNYZHJvcDogSnVz dCBiYWNrcG9ydHMuCi0jUGF0Y2gyMzI6IGdkYi11cHN0cmVhbS5wYXRjaAorUGF0Y2gyMzI6IGdk Yi11cHN0cmVhbS5wYXRjaAogCiAjIFRlc3RjYXNlIGZvciBQUEMgUG93ZXI2L0RGUCBpbnN0cnVj dGlvbnMgZGlzYXNzZW1ibHkgKEJaIDIzMDAwMCkuCiAjPWZlZG9yYXRlc3QrcHBjCkBAIC02ODcs NyArNjg3LDcgQEAgcm0gLWYgZ2RiL2p2LWV4cC5jIGdkYi9tMi1leHAuYyBnZGIvb2JqYy1leHAu YyBnZGIvcC1leHAuYwogCiAlaWYgMCV7IT9fd2l0aF91cHN0cmVhbToxfQogCi0jcGF0Y2gyMzIg LXAxCislcGF0Y2gyMzIgLXAxCiAlcGF0Y2gzNDkgLXAxCiAlcGF0Y2gxIC1wMQogJXBhdGNoMyAt cDEKQEAgLTEyMTMsNiArMTIxMyw5IEBAIGZpCiAle19pbmZvZGlyfS9nZGIuaW5mbyoKIAogJWNo YW5nZWxvZworKiBGcmkgSnVsIDI5IDIwMTEgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2Nodmls QHJlZGhhdC5jb20+IC0gNy4zLjUwLjIwMTEwNzIyLTIuZmMxNgorLSBJbmNsdWRlIGdjYyAtZzMg LmRlYnVnX21hY3JvIGltcGxlbWVudGF0aW9uIGJ5IFRvbSBUcm9tZXkuCisKICogU2F0IEp1bCAy MyAyMDExIEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMy41 MC4yMDExMDcyMi0xLmZjMTYKIC0gUmViYXNlIHRvIEZTRiBHREIgNy4zLjUwLjIwMTEwNzIyLgog LSBJbXByb3ZlIGdjYy00LjYgc3RkYXJnIGZhbHNlIHByb2xvZ3VlIGVuZCB3b3JrYXJvdW5kIChH REIgUFIgMTI0MzUgKyBHQ0MgUFIgNDc0NzEpLgo=