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] fix-dup-patch: - Support constant DW_AT_data_member_location by GCC PR debug/40659 (BZ Date: Thu, 23 Jul 2026 18:29:08 GMT Message-ID: <178483134872.1.2056968513251048522.rpms-gdb-912c39689b95@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 912c39689b95407e0f3a29da17b465fd1b708e82 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogOTEyYzM5Njg5Yjk1NDA3ZTBmM2EyOWRhMTdiNDY1ZmQxYjcwOGU4Mgog ICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amtyYXRvY2hAZmVkb3JhcHJvamVj dC5vcmc+CiAgICAgICAgICAgIERhdGUgICA6IDIwMDktMDgtMTFUMTQ6NDI6NDcrMDA6MDAKICAg ICAgICAgICAgU3RhdHMgIDogKzM0Ni8tNjc1IGluIDYgZmlsZShzKQogICAgICAgICAgICBVUkwg ICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dkYi9jLzkxMmMzOTY4OWI5 NTQwN2UwZjNhMjlkYTE3YjQ2NWZkMWI3MDhlODI/YnJhbmNoPWZpeC1kdXAtcGF0Y2gKCiAgICAg ICAgICAgIExvZzoKICAgICAgICAgICAgLSBTdXBwb3J0IGNvbnN0YW50IERXX0FUX2RhdGFfbWVt YmVyX2xvY2F0aW9uIGJ5IEdDQyBQUiBkZWJ1Zy80MDY1OSAoQloKICAgIDUxNTM3NykuCi0gRml4 IC5zcGVjIFVSTC4KLSBhcmNoZXItamFua3JhdG9jaHZpbC1mZWRvcmExMiBjb21taXQ6CiAgICA4 MWRlM2M2YWJhZTRmN2UzNzM4YWE5YmNjMGFiMmY4NzI1Y2NlMjUyCgotLS0KZGlmZiAtLWdpdCBh Ly5jdnNpZ25vcmUgYi8uY3ZzaWdub3JlCmluZGV4IDc4YTYwMTEuLjlmYzE1OTUgMTAwNjQ0Ci0t LSBhLy5jdnNpZ25vcmUKKysrIGIvLmN2c2lnbm9yZQpAQCAtMSArMSBAQAotZ2RiLTYuOC41MC4y MDA5MDgxMC50YXIuYnoyCitnZGItNi44LjUwLjIwMDkwODExLnRhci5iejIKCmRpZmYgLS1naXQg YS9nZGItNi4zLXBpZS0yMDA1MDExMC5wYXRjaCBiL2dkYi02LjMtcGllLTIwMDUwMTEwLnBhdGNo CmluZGV4IGUxNzM2YjMuLmMxOTg4MTQgMTAwNjQ0Ci0tLSBhL2dkYi02LjMtcGllLTIwMDUwMTEw LnBhdGNoCisrKyBiL2dkYi02LjMtcGllLTIwMDUwMTEwLnBhdGNoCkBAIC0xMDIxLDcgKzEwMjEs NyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwOS9nZGIvc29saWIuYwogIC8qCiAgCiAgICAg R0xPQkFMIEZVTkNUSU9OCi1AQCAtNDQ5LDE0ICs0NTMsMzggQEAgc3ltYm9sX2FkZF9zdHViIChz dHJ1Y3Qgc29fbGlzdCAqc28sIGludAorQEAgLTQ1MywxNCArNDUzLDM4IEBAIHN5bWJvbF9hZGRf c3R1YiAoc3RydWN0IHNvX2xpc3QgKnNvLCBpbnQKICAgIC8qIEhhdmUgd2UgYWxyZWFkeSBsb2Fk ZWQgdGhpcyBzaGFyZWQgb2JqZWN0PyAgKi8KICAgIEFMTF9PQkpGSUxFUyAoc28tPm9iamZpbGUp CiAgICAgIHsKQEAgLTEwNjEsNyArMTA2MSw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODA5 L2dkYi9zb2xpYi5jCiArCiAgICBwX3JlZmNvdW50ID0geG1hbGxvYyAoc2l6ZW9mICgqcF9yZWZj b3VudCkpOwogICAgKnBfcmVmY291bnQgPSAyOyAgLyogQm90aCBzb2xpYiBhbmQgb2JqZmlsZSBy ZWZlciB0byB0aGlzIGFiZmQuICAqLwotICAgc28tPmFiZmQtPnVzcmRhdGEgPSBwX3JlZmNvdW50 OworICAgYmZkX3VzcmRhdGEgKHNvLT5hYmZkKSA9IHBfcmVmY291bnQ7CiBAQCAtNjAwLDYgKzYy OCwxMCBAQCB1cGRhdGVfc29saWJfbGlzdCAoaW50IGZyb21fdHR5LCBzdHJ1Y3QgCiAgCSAgICB9 CiAgCSAgZWxzZQoKZGlmZiAtLWdpdCBhL2dkYi02LjUtYnoyMTY3MTEtY2xvbmUtaXMtb3V0ZXJt b3N0LnBhdGNoIGIvZ2RiLTYuNS1iejIxNjcxMS1jbG9uZS1pcy1vdXRlcm1vc3QucGF0Y2gKaW5k ZXggODlkMWRiNi4uYjJkYzQ1MSAxMDA2NDQKLS0tIGEvZ2RiLTYuNS1iejIxNjcxMS1jbG9uZS1p cy1vdXRlcm1vc3QucGF0Y2gKKysrIGIvZ2RiLTYuNS1iejIxNjcxMS1jbG9uZS1pcy1vdXRlcm1v c3QucGF0Y2gKQEAgLTEzOCwyOCArMTM4LDI0IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAy L2dkYi9hbWQ2NC10ZGVwLmMKICAgICgqdGhpc19pZCkgPSBmcmFtZV9pZF9idWlsZCAoY2FjaGUt PmJhc2UgKyAxNiwgY2FjaGUtPnBjKTsKICB9CiAgCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgw Mi9nZGIvaTM4Ni10ZGVwLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAyLm9y aWcvZ2RiL2kzODYtdGRlcC5jCTIwMDktMDctMTIgMTk6NDY6MjEuMDAwMDAwMDAwICswMjAwCi0r KysgZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvaTM4Ni10ZGVwLmMJMjAwOS0wOC0wMyAxNTo1MDow OC4wMDAwMDAwMDAgKzAyMDAKLUBAIC01MzA3LDYgKzUzMDcsOSBAQCBpMzg2X2dkYmFyY2hfaW5p dCAoc3RydWN0IGdkYmFyY2hfaW5mbyBpCistLS0gZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvaTM4 Ni10ZGVwLmMub3JpZwkyMDA5LTA4LTEwIDA1OjAyOjM5LjAwMDAwMDAwMCArMDIwMAorKysrIGdk Yi02LjguNTAuMjAwOTA4MTEvZ2RiL2kzODYtdGRlcC5jCTIwMDktMDgtMTEgMTY6MzM6NTEuMDAw MDAwMDAwICswMjAwCitAQCAtNTQzMiw2ICs1NDMyLDkgQEAgaTM4Nl9nZGJhcmNoX2luaXQgKHN0 cnVjdCBnZGJhcmNoX2luZm8gaQogICAgdGRlcC0+c2NfcGNfb2Zmc2V0ID0gLTE7CiAgICB0ZGVw LT5zY19zcF9vZmZzZXQgPSAtMTsKICAKICsgIC8qIFVud2luZGluZyBzdG9wcyBvbiBpMzg2IGF1 dG9tYXRpY2FsbHkuICAqLwogKyAgdGRlcC0+b3V0ZXJtb3N0X2ZyYW1lX3AgPSBOVUxMOwogKwor ICAgdGRlcC0+cmVjb3JkX3JlZ21hcCA9IGkzODZfcmVjb3JkX3JlZ21hcDsKKyAKICAgIC8qIFRo ZSBmb3JtYXQgdXNlZCBmb3IgYGxvbmcgZG91YmxlJyBvbiBhbG1vc3QgYWxsIGkzODYgdGFyZ2V0 cyBpcwotICAgICAgdGhlIGkzODcgZXh0ZW5kZWQgZmxvYXRpbmctcG9pbnQgZm9ybWF0LiAgSW4g ZmFjdCwgb2YgYWxsIHRhcmdldHMKLSAgICAgIGluIHRoZSBHQ0MgMi45NSB0cmVlLCBvbmx5IE9T Ri8xIGRvZXMgaXQgZGlmZmVyZW50LCBhbmQgaW5zaXN0cwotSW5kZXg6IGdkYi02LjguNTAuMjAw OTA4MDIvZ2RiL2kzODYtdGRlcC5oCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgw Mi5vcmlnL2dkYi9pMzg2LXRkZXAuaAkyMDA5LTA3LTAyIDE5OjI1OjU0LjAwMDAwMDAwMCArMDIw MAotKysrIGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL2kzODYtdGRlcC5oCTIwMDktMDgtMDMgMTU6 NTA6MjkuMDAwMDAwMDAwICswMjAwCi1AQCAtMTE1LDYgKzExNSw5IEBAIHN0cnVjdCBnZGJhcmNo X3RkZXAKLSAgIGludCAoKmkzODZfaW50eDgwX3JlY29yZCkgKHN0cnVjdCByZWdjYWNoZSAqcmVn Y2FjaGUpOwotICAgLyogUGFyc2Ugc3lzZW50ZXIgYXJncy4gICovCistLS0gZ2RiLTYuOC41MC4y MDA5MDgxMS9nZGIvaTM4Ni10ZGVwLmgub3JpZwkyMDA5LTA4LTEwIDA1OjAyOjM5LjAwMDAwMDAw MCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL2kzODYtdGRlcC5oCTIwMDktMDgt MTEgMTY6MzQ6MDguMDAwMDAwMDAwICswMjAwCitAQCAtMTIwLDYgKzEyMCw5IEBAIHN0cnVjdCBn ZGJhcmNoX3RkZXAKICAgIGludCAoKmkzODZfc3lzZW50ZXJfcmVjb3JkKSAoc3RydWN0IHJlZ2Nh Y2hlICpyZWdjYWNoZSk7CisgICAvKiBQYXJzZSBzeXNjYWxsIGFyZ3MuICAqLworICAgaW50ICgq aTM4Nl9zeXNjYWxsX3JlY29yZCkgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUpOwogKwogKyAg LyogRGV0ZWN0IE9TIGRlcGVuZGVudCBvdXRlcm1vc3QgZnJhbWVzOyBzdWNoIGFzIGBjbG9uZScu ICAqLwogKyAgaW50ICgqb3V0ZXJtb3N0X2ZyYW1lX3ApIChzdHJ1Y3QgZnJhbWVfaW5mbyAqdGhp c19mcmFtZSk7CgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci5wYXRjaCBiL2dkYi1hcmNoZXIucGF0 Y2gKaW5kZXggOGExMWUzNi4uNmEwMTBlNCAxMDA2NDQKLS0tIGEvZ2RiLWFyY2hlci5wYXRjaAor KysgYi9nZGItYXJjaGVyLnBhdGNoCkBAIC0yLDcgKzIsNyBAQCBodHRwOi8vc291cmNld2FyZS5v cmcvZ2RiL3dpa2kvUHJvamVjdEFyY2hlcgogaHR0cDovL3NvdXJjZXdhcmUub3JnL2dkYi93aWtp L0FyY2hlckJyYW5jaE1hbmFnZW1lbnQKIAogR0lUIHNuYXBzaG90OgotY29tbWl0IDkzZWMxNmU2 ZjUwMDBkZDY0ZDQzM2Q4NjY3NGU4MjBlZDBmMzViNzIKK2NvbW1pdCA4MWRlM2M2YWJhZTRmN2Uz NzM4YWE5YmNjMGFiMmY4NzI1Y2NlMjUyCiAKIGJyYW5jaCBgYXJjaGVyJyAtIHRoZSBtZXJnZSBv ZiBicmFuY2hlczoKIGFyY2hlci10cm9tZXktY2FsbC1mcmFtZS1jZmEKQEAgLTE0LDI4NSArMTQs NiBAQCBhcmNoZXIta2VpdGhzLWV4cHItY3VtdWxhdGl2ZQogYXJjaGVyLXRyb21leS1weXRob24K IAogCi1kaWZmIC0tZ2l0IGEvYmZkL2NvZmYtc3RnbzMyLmMgYi9iZmQvY29mZi1zdGdvMzIuYwot aW5kZXggYjg5MjhiZS4uOGJmNzY2NyAxMDA2NDQKLS0tLSBhL2JmZC9jb2ZmLXN0Z28zMi5jCi0r KysgYi9iZmQvY29mZi1zdGdvMzIuYwotQEAgLTEwMiw5ICsxMDIsNiBAQCBzdGF0aWMgYmZkX2Jv b2xlYW4KLSAKLSAjaW5jbHVkZSAiY29mZi1pMzg2LmMiCi0gCi0tLyogSSBob2xkIGluIHRoZSB1 c3JkYXRhIHRoZSBzdHViLiAgKi8KLS0jZGVmaW5lIGJmZF9jb2ZmX2dvMzJzdHViIGJmZF91c3Jk YXRhCi0tCi0gLyogVGhpcyBtYWNybyBpcyB1c2VkLCBiZWNhdXNlIEkgY2Fubm90IGFzc3VtZSB0 aGUgZW5kaWFuZXNzIG9mIHRoZQotICAgIGhvc3Qgc3lzdGVtLiAgKi8KLSAjZGVmaW5lIF9IKGlu ZGV4KSAoSF9HRVRfMTYgKGFiZmQsIChoZWFkZXIraW5kZXgqMikpKQotQEAgLTExMiw3ICsxMDks NyBAQCBzdGF0aWMgYmZkX2Jvb2xlYW4KLSAvKiBUaGVzZSBieXRlcyBhcmUgYSAyMDQ4LWJ5dGUg RE9TIGV4ZWN1dGFibGUsIHdoaWNoIGxvYWRzIHRoZSBDT0ZGCi0gICAgaW1hZ2UgaW50byBtZW1v cnkgYW5kIHRoZW4gcnVucyBpdC4gSXQgaXMgY2FsbGVkICdzdHViJy4gICovCi0gCi0tc3RhdGlj IGNvbnN0IHVuc2lnbmVkIGNoYXIgc3R1Yl9ieXRlc1tTVFVCU0laRV0gPQotK3N0YXRpYyBjb25z dCB1bnNpZ25lZCBjaGFyIHN0dWJfYnl0ZXNbR08zMl9TVFVCU0laRV0gPQotIHsKLSAjaW5jbHVk ZSAiZ28zMnN0dWIuaCIKLSB9OwotQEAgLTEyMCw3ICsxMTcsNyBAQCBzdGF0aWMgY29uc3QgdW5z aWduZWQgY2hhciBzdHViX2J5dGVzW1NUVUJTSVpFXSA9Ci0gLyoKLSAgICBJIGhhdmUgbm90IGNv bW1lbnRlZCBlYWNoIHN3YXAgZnVuY3Rpb24gYmVsb3csIGJlY2F1c2UgdGhlCi0gICAgdGVjaG5p cXVlIGlzIGluIGFueSBmdW5jdGlvbiB0aGUgc2FtZS4gRm9yIHRoZSAuLi5pbiBmdW5jdGlvbiwK LS0gICBhbGwgdGhlIHBvaW50ZXJzIGFyZSBhZGp1c3RlZCBieSBhZGRpbmcgU1RVQlNJWkUgYW5k IGZvciB0aGUKLSsgICBhbGwgdGhlIHBvaW50ZXJzIGFyZSBhZGp1c3RlZCBieSBhZGRpbmcgR08z Ml9TVFVCU0laRSBhbmQgZm9yIHRoZQotICAgIC4uLm91dCBmdW5jdGlvbiwgaXQgaXMgc3VidHJh Y3RlZCBmaXJzdCBhbmQgYWZ0ZXIgY2FsbGluZyB0aGUKLSAgICBzdGFuZGFyZCBzd2FwIGZ1bmN0 aW9uIGl0IGlzIHJlc2V0IHRvIHRoZSBvbGQgdmFsdWUuICAqLwotIAotQEAgLTEzMiwyNSArMTI5 LDIwIEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHN0dWJfYnl0ZXNbU1RVQlNJWkVdID0K LSAKLSBzdGF0aWMgdm9pZAotIGFkanVzdF9maWxlaGRyX2luX3Bvc3QgIChhYmZkLCBzcmMsIGRz dCkKLS0gICAgIGJmZCAqYWJmZDsKLSsgICAgIGJmZCAqYWJmZCBBVFRSSUJVVEVfVU5VU0VEOwot ICAgICAgUFRSIHNyYzsKLSAgICAgIFBUUiBkc3Q7Ci0gewotICAgRklMSERSICpmaWxlaGRyX3Ny YyA9IChGSUxIRFIgKikgc3JjOwotICAgc3RydWN0IGludGVybmFsX2ZpbGVoZHIgKmZpbGVoZHJf ZHN0ID0gKHN0cnVjdCBpbnRlcm5hbF9maWxlaGRyICopIGRzdDsKLSAKLS0gIEFESlVTVF9WQUwg KGZpbGVoZHJfZHN0LT5mX3N5bXB0ciwgU1RVQlNJWkUpOwotKyAgQURKVVNUX1ZBTCAoZmlsZWhk cl9kc3QtPmZfc3ltcHRyLCBHTzMyX1NUVUJTSVpFKTsKLSAKLS0gIC8qIFNhdmUgbm93IHRoZSBz dHViIHRvIGJlIHVzZWQgbGF0ZXIuICAqLwotLSAgYmZkX2NvZmZfZ28zMnN0dWIgKGFiZmQpID0g KFBUUikgYmZkX2FsbG9jIChhYmZkLCAoYmZkX3NpemVfdHlwZSkgU1RVQlNJWkUpOwotLQotLSAg LyogU2luY2UgdGhpcyBmdW5jdGlvbiByZXR1cm5zIG5vIHN0YXR1cywgSSBkbyBub3Qgc2V0IGhl cmUKLS0gICAgIGFueSBiZmRfZXJyb3JfLi4uCi0tICAgICBUaGF0IG1lYW5zLCBiZWZvcmUgdGhl IHVzZSBvZiBiZmRfY29mZl9nbzMyc3R1YiAoKSwgdGhpcyB2YWx1ZQotLSAgICAgc2hvdWxkIGJl IGNoZWNrZWQgaWYgaXQgaXMgIT0gTlVMTC4gICovCi0tICBpZiAoYmZkX2NvZmZfZ28zMnN0dWIg KGFiZmQpID09IE5VTEwpCi0tICAgIHJldHVybjsKLS0gIG1lbWNweSAoYmZkX2NvZmZfZ28zMnN0 dWIgKGFiZmQpLCBmaWxlaGRyX3NyYy0+c3R1YiwgU1RVQlNJWkUpOwotKyAgLyogU2F2ZSBub3cg dGhlIHN0dWIgdG8gYmUgdXNlZCBsYXRlci4gIFB1dCB0aGUgc3R1YiBkYXRhIHRvIEZJTEVIRFJf RFNUCi0rICAgICBmaXJzdCBhcyBjb2ZmX2RhdGEgKGFiZmQpIHN0aWxsIGRvZXMgbm90IGV4aXN0 LiAgSXQgbWF5IG5vdCBldmVuIGJlIGV2ZXIKLSsgICAgIGNyZWF0ZWQgYXMgd2UgYXJlIGp1c3Qg Y2hlY2tpbmcgdGhlIGZpbGUgZm9ybWF0IG9mIEFCRkQuICAqLwotKyAgbWVtY3B5IChmaWxlaGRy X2RzdC0+Z28zMnN0dWIsIGZpbGVoZHJfc3JjLT5zdHViLCBHTzMyX1NUVUJTSVpFKTsKLSsgIGZp bGVoZHJfZHN0LT5mX2ZsYWdzIHw9IEZfR08zMlNUVUI7Ci0gfQotIAotIHN0YXRpYyB2b2lkCi1A QCAtMTY2LDEzICsxNTgsMTMgQEAgYWRqdXN0X2ZpbGVoZHJfb3V0X3ByZSAgKGFiZmQsIGluLCBv dXQpCi0gICBjcmVhdGVfZ28zMl9zdHViIChhYmZkKTsKLSAKLSAgIC8qIENvcHkgdGhlIHN0dWIg dG8gdGhlIGZpbGUgaGVhZGVyLiAgKi8KLS0gIGlmIChiZmRfY29mZl9nbzMyc3R1YiAoYWJmZCkg IT0gTlVMTCkKLS0gICAgbWVtY3B5IChmaWxlaGRyX291dC0+c3R1YiwgYmZkX2NvZmZfZ28zMnN0 dWIgKGFiZmQpLCBTVFVCU0laRSk7Ci0rICBpZiAoY29mZl9kYXRhIChhYmZkKS0+Z28zMnN0dWIg IT0gTlVMTCkKLSsgICAgbWVtY3B5IChmaWxlaGRyX291dC0+c3R1YiwgY29mZl9kYXRhIChhYmZk KS0+Z28zMnN0dWIsIEdPMzJfU1RVQlNJWkUpOwotICAgZWxzZQotICAgICAvKiBVc2UgdGhlIGRl ZmF1bHQuICAqLwotLSAgICBtZW1jcHkgKGZpbGVoZHJfb3V0LT5zdHViLCBzdHViX2J5dGVzLCBT VFVCU0laRSk7Ci0rICAgIG1lbWNweSAoZmlsZWhkcl9vdXQtPnN0dWIsIHN0dWJfYnl0ZXMsIEdP MzJfU1RVQlNJWkUpOwotIAotLSAgQURKVVNUX1ZBTCAoZmlsZWhkcl9pbi0+Zl9zeW1wdHIsIC1T VFVCU0laRSk7Ci0rICBBREpVU1RfVkFMIChmaWxlaGRyX2luLT5mX3N5bXB0ciwgLUdPMzJfU1RV QlNJWkUpOwotIH0KLSAKLSBzdGF0aWMgdm9pZAotQEAgLTE4Myw3ICsxNzUsNyBAQCBhZGp1c3Rf ZmlsZWhkcl9vdXRfcG9zdCAgKGFiZmQsIGluLCBvdXQpCi0gewotICAgc3RydWN0IGludGVybmFs X2ZpbGVoZHIgKmZpbGVoZHJfaW4gPSAoc3RydWN0IGludGVybmFsX2ZpbGVoZHIgKikgaW47Ci0g ICAvKiBVbmRvIHRoZSBhYm92ZSBjaGFuZ2UuICAqLwotLSAgQURKVVNUX1ZBTCAoZmlsZWhkcl9p bi0+Zl9zeW1wdHIsIFNUVUJTSVpFKTsKLSsgIEFESlVTVF9WQUwgKGZpbGVoZHJfaW4tPmZfc3lt cHRyLCBHTzMyX1NUVUJTSVpFKTsKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLUBAIC0xOTQsOSArMTg2 LDkgQEAgYWRqdXN0X3Njbmhkcl9pbl9wb3N0ICAoYWJmZCwgZXh0LCBpbikKLSB7Ci0gICBzdHJ1 Y3QgaW50ZXJuYWxfc2NuaGRyICpzY25oZHJfaW50ID0gKHN0cnVjdCBpbnRlcm5hbF9zY25oZHIg KikgaW47Ci0gCi0tICBBREpVU1RfVkFMIChzY25oZHJfaW50LT5zX3NjbnB0ciwgU1RVQlNJWkUp OwotLSAgQURKVVNUX1ZBTCAoc2NuaGRyX2ludC0+c19yZWxwdHIsIFNUVUJTSVpFKTsKLS0gIEFE SlVTVF9WQUwgKHNjbmhkcl9pbnQtPnNfbG5ub3B0ciwgU1RVQlNJWkUpOwotKyAgQURKVVNUX1ZB TCAoc2NuaGRyX2ludC0+c19zY25wdHIsIEdPMzJfU1RVQlNJWkUpOwotKyAgQURKVVNUX1ZBTCAo c2NuaGRyX2ludC0+c19yZWxwdHIsIEdPMzJfU1RVQlNJWkUpOwotKyAgQURKVVNUX1ZBTCAoc2Nu aGRyX2ludC0+c19sbm5vcHRyLCBHTzMyX1NUVUJTSVpFKTsKLSB9Ci0gCi0gc3RhdGljIHZvaWQK LUBAIC0yMDcsOSArMTk5LDkgQEAgYWRqdXN0X3Njbmhkcl9vdXRfcHJlICAoYWJmZCwgaW4sIG91 dCkKLSB7Ci0gICBzdHJ1Y3QgaW50ZXJuYWxfc2NuaGRyICpzY25oZHJfaW50ID0gKHN0cnVjdCBp bnRlcm5hbF9zY25oZHIgKikgaW47Ci0gCi0tICBBREpVU1RfVkFMIChzY25oZHJfaW50LT5zX3Nj bnB0ciwgLVNUVUJTSVpFKTsKLS0gIEFESlVTVF9WQUwgKHNjbmhkcl9pbnQtPnNfcmVscHRyLCAt U1RVQlNJWkUpOwotLSAgQURKVVNUX1ZBTCAoc2NuaGRyX2ludC0+c19sbm5vcHRyLCAtU1RVQlNJ WkUpOwotKyAgQURKVVNUX1ZBTCAoc2NuaGRyX2ludC0+c19zY25wdHIsIC1HTzMyX1NUVUJTSVpF KTsKLSsgIEFESlVTVF9WQUwgKHNjbmhkcl9pbnQtPnNfcmVscHRyLCAtR08zMl9TVFVCU0laRSk7 Ci0rICBBREpVU1RfVkFMIChzY25oZHJfaW50LT5zX2xubm9wdHIsIC1HTzMyX1NUVUJTSVpFKTsK LSB9Ci0gCi0gc3RhdGljIHZvaWQKLUBAIC0yMjAsOSArMjEyLDkgQEAgYWRqdXN0X3Njbmhkcl9v dXRfcG9zdCAoYWJmZCwgaW4sIG91dCkKLSB7Ci0gICBzdHJ1Y3QgaW50ZXJuYWxfc2NuaGRyICpz Y25oZHJfaW50ID0gKHN0cnVjdCBpbnRlcm5hbF9zY25oZHIgKikgaW47Ci0gCi0tICBBREpVU1Rf VkFMIChzY25oZHJfaW50LT5zX3NjbnB0ciwgU1RVQlNJWkUpOwotLSAgQURKVVNUX1ZBTCAoc2Nu aGRyX2ludC0+c19yZWxwdHIsIFNUVUJTSVpFKTsKLS0gIEFESlVTVF9WQUwgKHNjbmhkcl9pbnQt PnNfbG5ub3B0ciwgU1RVQlNJWkUpOwotKyAgQURKVVNUX1ZBTCAoc2NuaGRyX2ludC0+c19zY25w dHIsIEdPMzJfU1RVQlNJWkUpOwotKyAgQURKVVNUX1ZBTCAoc2NuaGRyX2ludC0+c19yZWxwdHIs IEdPMzJfU1RVQlNJWkUpOwotKyAgQURKVVNUX1ZBTCAoc2NuaGRyX2ludC0+c19sbm5vcHRyLCBH TzMyX1NUVUJTSVpFKTsKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLUBAIC0yMzksNyArMjMxLDcgQEAg YWRqdXN0X2F1eF9pbl9wb3N0ICAoYWJmZCwgZXh0MSwgdHlwZSwgY2xhc3MsIGluZHgsIG51bWF1 eCwgaW4xKQotIAotICAgaWYgKGNsYXNzID09IENfQkxPQ0sgfHwgY2xhc3MgPT0gQ19GQ04gfHwg SVNGQ04gKHR5cGUpIHx8IElTVEFHIChjbGFzcykpCi0gICAgIHsKLS0gICAgICBBREpVU1RfVkFM IChpbi0+eF9zeW0ueF9mY25hcnkueF9mY24ueF9sbm5vcHRyLCBTVFVCU0laRSk7Ci0rICAgICAg QURKVVNUX1ZBTCAoaW4tPnhfc3ltLnhfZmNuYXJ5LnhfZmNuLnhfbG5ub3B0ciwgR08zMl9TVFVC U0laRSk7Ci0gICAgIH0KLSB9Ci0gCi1AQCAtMjU3LDcgKzI0OSw3IEBAIGFkanVzdF9hdXhfb3V0 X3ByZSAgKGFiZmQsIGlucCwgdHlwZSwgY2xhc3MsIGluZHgsIG51bWF1eCwgZXh0cCkKLSAKLSAg IGlmIChjbGFzcyA9PSBDX0JMT0NLIHx8IGNsYXNzID09IENfRkNOIHx8IElTRkNOICh0eXBlKSB8 fCBJU1RBRyAoY2xhc3MpKQotICAgICB7Ci0tICAgICAgQURKVVNUX1ZBTCAoaW4tPnhfc3ltLnhf ZmNuYXJ5LnhfZmNuLnhfbG5ub3B0ciwgLVNUVUJTSVpFKTsKLSsgICAgICBBREpVU1RfVkFMIChp bi0+eF9zeW0ueF9mY25hcnkueF9mY24ueF9sbm5vcHRyLCAtR08zMl9TVFVCU0laRSk7Ci0gICAg IH0KLSB9Ci0gCi1AQCAtMjc1LDcgKzI2Nyw3IEBAIGFkanVzdF9hdXhfb3V0X3Bvc3QgKGFiZmQs IGlucCwgdHlwZSwgY2xhc3MsIGluZHgsIG51bWF1eCwgZXh0cCkKLSAKLSAgIGlmIChjbGFzcyA9 PSBDX0JMT0NLIHx8IGNsYXNzID09IENfRkNOIHx8IElTRkNOICh0eXBlKSB8fCBJU1RBRyAoY2xh c3MpKQotICAgICB7Ci0tICAgICAgQURKVVNUX1ZBTCAoaW4tPnhfc3ltLnhfZmNuYXJ5LnhfZmNu LnhfbG5ub3B0ciwgU1RVQlNJWkUpOwotKyAgICAgIEFESlVTVF9WQUwgKGluLT54X3N5bS54X2Zj bmFyeS54X2Zjbi54X2xubm9wdHIsIEdPMzJfU1RVQlNJWkUpOwotICAgICB9Ci0gfQotIAotQEAg LTI5Niw3ICsyODgsNyBAQCBjcmVhdGVfZ28zMl9zdHViIChhYmZkKQotICAgICAgYmZkICphYmZk OwotIHsKLSAgIC8qIERvIGl0IG9ubHkgb25jZS4gICovCi0tICBpZiAoYmZkX2NvZmZfZ28zMnN0 dWIgKGFiZmQpID09IE5VTEwpCi0rICBpZiAoY29mZl9kYXRhIChhYmZkKS0+Z28zMnN0dWIgPT0g TlVMTCkKLSAgICAgewotICAgICAgIGNoYXIgKnN0dWI7Ci0gICAgICAgc3RydWN0IHN0YXQgc3Q7 Ci1AQCAtMzYyLDMyICszNTQsMzIgQEAgY3JlYXRlX2dvMzJfc3R1YiAoYWJmZCkKLSAJICBnb3Rv IHN0dWJfZW5kOwotIAl9Ci0gICAgICAgLyogTm93IHdlIGZvdW5kIGEgY29ycmVjdCBzdHViICho b3BlZnVsbHkpLiAgKi8KLS0gICAgICBiZmRfY29mZl9nbzMyc3R1YiAoYWJmZCkKLSsgICAgICBj b2ZmX2RhdGEgKGFiZmQpLT5nbzMyc3R1YgotIAk9IChQVFIpIGJmZF9hbGxvYyAoYWJmZCwgKGJm ZF9zaXplX3R5cGUpIGNvZmZfc3RhcnQpOwotLSAgICAgIGlmIChiZmRfY29mZl9nbzMyc3R1YiAo YWJmZCkgPT0gTlVMTCkKLSsgICAgICBpZiAoY29mZl9kYXRhIChhYmZkKS0+Z28zMnN0dWIgPT0g TlVMTCkKLSAJewotIAkgIGNsb3NlIChmKTsKLSAJICByZXR1cm47Ci0gCX0KLSAgICAgICBsc2Vl ayAoZiwgMEwsIFNFRUtfU0VUKTsKLS0gICAgICBpZiAoKHVuc2lnbmVkIGxvbmcpIHJlYWQgKGYs IGJmZF9jb2ZmX2dvMzJzdHViIChhYmZkKSwgY29mZl9zdGFydCkKLSsgICAgICBpZiAoKHVuc2ln bmVkIGxvbmcpIHJlYWQgKGYsIGNvZmZfZGF0YSAoYWJmZCktPmdvMzJzdHViLCBjb2ZmX3N0YXJ0 KQotIAkgICE9IGNvZmZfc3RhcnQpCi0gCXsKLS0JICBiZmRfcmVsZWFzZSAoYWJmZCwgYmZkX2Nv ZmZfZ28zMnN0dWIgKGFiZmQpKTsKLS0JICBiZmRfY29mZl9nbzMyc3R1YiAoYWJmZCkgPSBOVUxM OwotKwkgIGJmZF9yZWxlYXNlIChhYmZkLCBjb2ZmX2RhdGEgKGFiZmQpLT5nbzMyc3R1Yik7Ci0r CSAgY29mZl9kYXRhIChhYmZkKS0+Z28zMnN0dWIgPSBOVUxMOwotIAl9Ci0gICAgICAgY2xvc2Ug KGYpOwotICAgICB9Ci0gc3R1Yl9lbmQ6Ci0gICAvKiBUaGVyZSB3YXMgc29tZXRoaW5nIHdyb25n IGFib3ZlLCBzbyB1c2Ugbm93IHRoZSBzdGFuZGFyZCBidWlsdGluCi0gICAgICBzdHViLiAgKi8K LS0gIGlmIChiZmRfY29mZl9nbzMyc3R1YiAoYWJmZCkgPT0gTlVMTCkKLSsgIGlmIChjb2ZmX2Rh dGEgKGFiZmQpLT5nbzMyc3R1YiA9PSBOVUxMKQotICAgICB7Ci0tICAgICAgYmZkX2NvZmZfZ28z MnN0dWIgKGFiZmQpCi0tCT0gKFBUUikgYmZkX2FsbG9jIChhYmZkLCAoYmZkX3NpemVfdHlwZSkg U1RVQlNJWkUpOwotLSAgICAgIGlmIChiZmRfY29mZl9nbzMyc3R1YiAoYWJmZCkgPT0gTlVMTCkK LSsgICAgICBjb2ZmX2RhdGEgKGFiZmQpLT5nbzMyc3R1YgotKwk9IChQVFIpIGJmZF9hbGxvYyAo YWJmZCwgKGJmZF9zaXplX3R5cGUpIEdPMzJfU1RVQlNJWkUpOwotKyAgICAgIGlmIChjb2ZmX2Rh dGEgKGFiZmQpLT5nbzMyc3R1YiA9PSBOVUxMKQotIAlyZXR1cm47Ci0tICAgICAgbWVtY3B5IChi ZmRfY29mZl9nbzMyc3R1YiAoYWJmZCksIHN0dWJfYnl0ZXMsIFNUVUJTSVpFKTsKLSsgICAgICBt ZW1jcHkgKGNvZmZfZGF0YSAoYWJmZCktPmdvMzJzdHViLCBzdHViX2J5dGVzLCBHTzMyX1NUVUJT SVpFKTsKLSAgICAgfQotIH0KLSAKLUBAIC00MDMsMTMgKzM5NSwyMCBAQCBnbzMyX3N0dWJiZWRf Y29mZl9iZmRfY29weV9wcml2YXRlX2JmZF9kYXRhICAoaWJmZCwgb2JmZCkKLSAgIGlmIChpYmZk LT54dmVjICE9IG9iZmQtPnh2ZWMpCi0gICAgIHJldHVybiBUUlVFOwotIAotLSAgLyogQ2hlY2sg aWYgYm90aCBoYXZlIGEgdmFsaWQgc3R1Yi4gICovCi0tICBpZiAoYmZkX2NvZmZfZ28zMnN0dWIg KGliZmQpID09IE5VTEwKLS0gICAgICB8fCBiZmRfY29mZl9nbzMyc3R1YiAob2JmZCkgPT0gTlVM TCkKLSsgIC8qIENoZWNrIGlmIHdlIGhhdmUgYSBzb3VyY2Ugc3R1Yi4gICovCi0rICBpZiAoY29m Zl9kYXRhIChpYmZkKS0+Z28zMnN0dWIgPT0gTlVMTCkKLSAgICAgcmV0dXJuIFRSVUU7Ci0gCi0r ICAvKiBBcyBhZGp1c3RfZmlsZWhkcl9vdXRfcHJlIG1heSBnZXQgY2FsbGVkIG9ubHkgYWZ0ZXIg dGhpcyBmdW5jdGlvbiwKLSsgICAgIG9wdGlvbmFsbHkgYWxsb2NhdGUgdGhlIG91dHB1dCBzdHVi LiAgKi8KLSsgIGlmIChjb2ZmX2RhdGEgKG9iZmQpLT5nbzMyc3R1YiA9PSBOVUxMKQotKyAgICBj b2ZmX2RhdGEgKG9iZmQpLT5nbzMyc3R1YiA9IChQVFIpIGJmZF9hbGxvYyAob2JmZCwKLSsJCQkJ CQkoYmZkX3NpemVfdHlwZSkgR08zMl9TVFVCU0laRSk7Ci0rCi0gICAvKiBOb3cgY29weSB0aGUg c3R1Yi4gICovCi0tICBtZW1jcHkgKGJmZF9jb2ZmX2dvMzJzdHViIChvYmZkKSwgYmZkX2NvZmZf Z28zMnN0dWIgKGliZmQpLCBTVFVCU0laRSk7Ci0rICBpZiAoY29mZl9kYXRhIChvYmZkKS0+Z28z MnN0dWIgIT0gTlVMTCkKLSsgICAgbWVtY3B5IChjb2ZmX2RhdGEgKG9iZmQpLT5nbzMyc3R1Yiwg Y29mZl9kYXRhIChpYmZkKS0+Z28zMnN0dWIsCi0rCSAgICBHTzMyX1NUVUJTSVpFKTsKLSAKLSAg IHJldHVybiBUUlVFOwotIH0KLWRpZmYgLS1naXQgYS9iZmQvY29mZmNvZGUuaCBiL2JmZC9jb2Zm Y29kZS5oCi1pbmRleCA0Yjc0OGI0Li4xY2M4NjBhIDEwMDY0NAotLS0tIGEvYmZkL2NvZmZjb2Rl LmgKLSsrKyBiL2JmZC9jb2ZmY29kZS5oCi1AQCAtMTk5Miw2ICsxOTkyLDExIEBAIGNvZmZfbWtv YmplY3RfaG9vayAoYmZkICogYWJmZCwKLSAgICAgYWJmZC0+ZmxhZ3MgfD0gSEFTX0RFQlVHOwot ICNlbmRpZgotIAotKyAgaWYgKChpbnRlcm5hbF9mLT5mX2ZsYWdzICYgRl9HTzMyU1RVQikgIT0g MCkKLSsgICAgY29mZi0+Z28zMnN0dWIgPSAoY2hhciAqKSBiZmRfYWxsb2MgKGFiZmQsIChiZmRf c2l6ZV90eXBlKSBHTzMyX1NUVUJTSVpFKTsKLSsgIGlmIChjb2ZmLT5nbzMyc3R1YiAhPSBOVUxM KQotKyAgICBtZW1jcHkgKGNvZmYtPmdvMzJzdHViLCBpbnRlcm5hbF9mLT5nbzMyc3R1YiwgR08z Ml9TVFVCU0laRSk7Ci0rCi0gICByZXR1cm4gY29mZjsKLSB9Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0 IGEvYmZkL2xpYmNvZmYtaW4uaCBiL2JmZC9saWJjb2ZmLWluLmgKLWluZGV4IDE2YjZjN2IuLmYz MTA4ZWUgMTAwNjQ0Ci0tLS0gYS9iZmQvbGliY29mZi1pbi5oCi0rKysgYi9iZmQvbGliY29mZi1p bi5oCi1AQCAtMTA2LDYgKzEwNiw5IEBAIHR5cGVkZWYgc3RydWN0IGNvZmZfdGRhdGEKLSAgICAg IHVzZWQgYnkgQVJNIGNvZGUuICAqLwotICAgZmxhZ3dvcmQgZmxhZ3M7Ci0gCi0rICAvKiBjb2Zm LXN0Z28zMiBFWEUgc3R1YiBoZWFkZXIgYWZ0ZXIgQkZEIHRkYXRhIGhhcyBiZWVuIGFsbG9jYXRl ZC4gIEl0cyBkYXRhCi0rICAgICBpcyBrZXB0IGluIGludGVybmFsX2ZpbGVoZHIuZ28zMnN0dWIg YmVmb3JlaGFuZC4gICovCi0rICBjaGFyICpnbzMyc3R1YjsKLSB9IGNvZmZfZGF0YV90eXBlOwot IAotIC8qIFRkYXRhIGZvciBwZSBpbWFnZSBmaWxlcy4gICovCi1kaWZmIC0tZ2l0IGEvYmZkL2xp YmNvZmYuaCBiL2JmZC9saWJjb2ZmLmgKLWluZGV4IGE0YWI0MDUuLjRiYjQzZjMgMTAwNjQ0Ci0t LS0gYS9iZmQvbGliY29mZi5oCi0rKysgYi9iZmQvbGliY29mZi5oCi1AQCAtMTEwLDYgKzExMCw5 IEBAIHR5cGVkZWYgc3RydWN0IGNvZmZfdGRhdGEKLSAgICAgIHVzZWQgYnkgQVJNIGNvZGUuICAq LwotICAgZmxhZ3dvcmQgZmxhZ3M7Ci0gCi0rICAvKiBjb2ZmLXN0Z28zMiBFWEUgc3R1YiBoZWFk ZXIgYWZ0ZXIgQkZEIHRkYXRhIGhhcyBiZWVuIGFsbG9jYXRlZC4gIEl0cyBkYXRhCi0rICAgICBp cyBrZXB0IGluIGludGVybmFsX2ZpbGVoZHIuZ28zMnN0dWIgYmVmb3JlaGFuZC4gICovCi0rICBj aGFyICpnbzMyc3R1YjsKLSB9IGNvZmZfZGF0YV90eXBlOwotIAotIC8qIFRkYXRhIGZvciBwZSBp bWFnZSBmaWxlcy4gICovCiBkaWZmIC0tZ2l0IGEvZ2RiL01ha2VmaWxlLmluIGIvZ2RiL01ha2Vm aWxlLmluCiBpbmRleCBjY2M0ZGI4Li40OTZjOWYyIDEwMDY0NAogLS0tIGEvZ2RiL01ha2VmaWxl LmluCkBAIC00MzkyLDcgKzQxMTMsNyBAQCBpbmRleCAwYmZjZmNhLi4wMTAxOGQ2IDEwMDY0NAog IAogICNlbmRpZiAvKiBkd2FyZjJsb2MuaCAqLwogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJyZWFk LmMgYi9nZGIvZHdhcmYycmVhZC5jCi1pbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAoraW5k ZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKIC0tLSBhL2dkYi9kd2FyZjJyZWFkLmMKICsrKyBi L2dkYi9kd2FyZjJyZWFkLmMKIEBAIC0xLDggKzEsNyBAQApAQCAtNDUzNCwyMyArNDI1NSwxNyBA QCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIHN0YXRpYyB2b2lkIHJlYWRfbW9kdWxl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpOwogIAogIHN0YXRp YyB2b2lkIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKik7Ci1AQCAtMTA3OCw3ICsxMTAxLDE0IEBAIHN0YXRpYyBpbnQgaXNfcmVm X2F0dHIgKHN0cnVjdCBhdHRyaWJ1dGUgKik7CitAQCAtMTA3OCw3ICsxMTAxLDggQEAgc3RhdGlj IGludCBpc19yZWZfYXR0ciAoc3RydWN0IGF0dHJpYnV0ZSAqKTsKICAKICBzdGF0aWMgdW5zaWdu ZWQgaW50IGR3YXJmMl9nZXRfcmVmX2RpZV9vZmZzZXQgKHN0cnVjdCBhdHRyaWJ1dGUgKik7CiAg CiAtc3RhdGljIGludCBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKHN0cnVjdCBhdHRy aWJ1dGUgKiwgaW50KTsKLStlbnVtIGdldF9hdHRyX2NvbnN0YW50X3ZhbHVlCi0rICB7Ci0rICAg IGR3YXJmMl9hdHRyX3Vua25vd24sCi0rICAgIGR3YXJmMl9hdHRyX2NvbnN0LAotKyAgICBkd2Fy ZjJfYXR0cl9ibG9jawotKyAgfTsKLStzdGF0aWMgZW51bSBnZXRfYXR0cl9jb25zdGFudF92YWx1 ZSBnZXRfYXR0cl9jb25zdGFudF92YWx1ZQotKyAgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIGlu dCAqdmFsX3JldHVybik7Cisrc3RhdGljIENPUkVfQUREUiBkd2FyZjJfZ2V0X2F0dHJfY29uc3Rh bnRfdmFsdWUgKHN0cnVjdCBhdHRyaWJ1dGUgKiwgQ09SRV9BRERSLAorKwkJCQkJICAgc3RydWN0 IGR3YXJmMl9jdSAqKTsKICAKICBzdGF0aWMgc3RydWN0IGRpZV9pbmZvICpmb2xsb3dfZGllX3Jl Zl9vcl9zaWcgKHN0cnVjdCBkaWVfaW5mbyAqLAogIAkJCQkJICAgICAgIHN0cnVjdCBhdHRyaWJ1 dGUgKiwKLUBAIC0xMTUwLDYgKzExODAsOSBAQCBzdGF0aWMgdm9pZCBhZ2VfY2FjaGVkX2NvbXBf dW5pdHMgKHZvaWQpOworQEAgLTExNTAsNiArMTE3NCw5IEBAIHN0YXRpYyB2b2lkIGFnZV9jYWNo ZWRfY29tcF91bml0cyAodm9pZCk7CiAgCiAgc3RhdGljIHZvaWQgZnJlZV9vbmVfY2FjaGVkX2Nv bXBfdW5pdCAodm9pZCAqKTsKICAKQEAgLTQ1NjAsNyArNDI3NSw3IEBAIGluZGV4IDQ0NWJhYjgu LjUxNjk5YmIgMTAwNjQ0CiAgc3RhdGljIHN0cnVjdCB0eXBlICpzZXRfZGllX3R5cGUgKHN0cnVj dCBkaWVfaW5mbyAqLCBzdHJ1Y3QgdHlwZSAqLAogIAkJCQkgIHN0cnVjdCBkd2FyZjJfY3UgKik7 CiAgCi1AQCAtMTE2OSwyMiArMTIwMiwzMSBAQCBzdGF0aWMgdm9pZCBkd2FyZjJfY2xlYXJfbWFy a3MgKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKik7CitAQCAtMTE2OSwyMiArMTE5NiwzMSBA QCBzdGF0aWMgdm9pZCBkd2FyZjJfY2xlYXJfbWFya3MgKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2Rh dGEgKik7CiAgCiAgc3RhdGljIHN0cnVjdCB0eXBlICpnZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSk7CiAgCkBAIC00NjAxLDcgKzQzMTYsNyBA QCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIH0KICAKICAvKiBXaGVuIGxvYWRpbmcg c2VjdGlvbnMsIHdlIGNhbiBlaXRoZXIgbG9vayBmb3IgIi48bmFtZT4iLCBvciBmb3IKLUBAIC0x Mjc3LDEwICsxMzE5LDEzIEBAIGR3YXJmMl9sb2NhdGVfc2VjdGlvbnMgKGJmZCAqYWJmZCwgYXNl Y3Rpb24gKnNlY3RwLCB2b2lkICppZ25vcmVfcHRyKQorQEAgLTEyNzcsMTAgKzEzMTMsMTMgQEAg ZHdhcmYyX2xvY2F0ZV9zZWN0aW9ucyAoYmZkICphYmZkLCBhc2VjdGlvbiAqc2VjdHAsIHZvaWQg Kmlnbm9yZV9wdHIpCiAgfQogIAogIC8qIERlY29tcHJlc3MgYSBzZWN0aW9uIHRoYXQgd2FzIGNv bXByZXNzZWQgdXNpbmcgemxpYi4gIFN0b3JlIHRoZQpAQCAtNDYxNyw3ICs0MzMyLDcgQEAgaW5k ZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Ri X2J5dGUgKipvdXRidWYsIGJmZF9zaXplX3R5cGUgKm91dHNpemUpCiAgewogICAgYmZkICphYmZk ID0gb2JqZmlsZS0+b2JmZDsKLUBAIC0xMjk3LDYgKzEzNDIsNyBAQCB6bGliX2RlY29tcHJlc3Nf c2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGFzZWN0aW9uICpzZWN0cCwKK0BAIC0x Mjk3LDYgKzEzMzYsNyBAQCB6bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUg Km9iamZpbGUsIGFzZWN0aW9uICpzZWN0cCwKICAgIHpfc3RyZWFtIHN0cm07CiAgICBpbnQgcmM7 CiAgICBpbnQgaGVhZGVyX3NpemUgPSAxMjsKQEAgLTQ2MjUsNyArNDM0MCw3IEBAIGluZGV4IDQ0 NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgCiAgICBpZiAoYmZkX3NlZWsgKGFiZmQsIHNlY3RwLT5m aWxlcG9zLCBTRUVLX1NFVCkgIT0gMAogICAgICAgIHx8IGJmZF9icmVhZCAoY29tcHJlc3NlZF9i dWZmZXIsIGNvbXByZXNzZWRfc2l6ZSwgYWJmZCkgIT0gY29tcHJlc3NlZF9zaXplKQotQEAgLTEz MjYsOCArMTM3MiwxMyBAQCB6bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUg Km9iamZpbGUsIGFzZWN0aW9uICpzZWN0cCwKK0BAIC0xMzI2LDggKzEzNjYsMTMgQEAgemxpYl9k ZWNvbXByZXNzX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBhc2VjdGlvbiAqc2Vj dHAsCiAgICBzdHJtLmF2YWlsX2luID0gY29tcHJlc3NlZF9zaXplIC0gaGVhZGVyX3NpemU7CiAg ICBzdHJtLm5leHRfaW4gPSAoQnl0ZWYqKSBjb21wcmVzc2VkX2J1ZmZlciArIGhlYWRlcl9zaXpl OwogICAgc3RybS5hdmFpbF9vdXQgPSB1bmNvbXByZXNzZWRfc2l6ZTsKQEAgLTQ2NDEsNyArNDM1 Niw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgICByYyA9IGluZmxhdGVJbml0 ICgmc3RybSk7CiAgICB3aGlsZSAoc3RybS5hdmFpbF9pbiA+IDApCiAgICAgIHsKLUBAIC0xMzQ4 LDI2ICsxMzk5LDEzNiBAQCB6bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUg Km9iamZpbGUsIGFzZWN0aW9uICpzZWN0cCwKK0BAIC0xMzQ4LDI2ICsxMzkzLDEzNiBAQCB6bGli X2RlY29tcHJlc3Nfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGFzZWN0aW9uICpz ZWN0cCwKICAgICAgZXJyb3IgKF8oIkR3YXJmIEVycm9yOiBjb25jbHVkaW5nIERXQVJGIHVuY29t cHJlc3Npb24gaW4gJyVzJzogJWQiKSwKICAgICAgICAgICAgIGJmZF9nZXRfZmlsZW5hbWUgKGFi ZmQpLCByYyk7CiAgCkBAIC00NzgzLDcgKzQ0OTgsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJi IDEwMDY0NAogIAogICAgaWYgKGluZm8tPmFzZWN0aW9uID09IE5VTEwgfHwgaW5mby0+c2l6ZSA9 PSAwKQogICAgICByZXR1cm47Ci1AQCAtMTM4MCw3ICsxNTQxLDcgQEAgZHdhcmYyX3JlYWRfc2Vj dGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZv ICppbmZvKQorQEAgLTEzODAsNyArMTUzNSw3IEBAIGR3YXJmMl9yZWFkX3NlY3Rpb24gKHN0cnVj dCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqaW5mbykKICAg ICAgICAvKiBVcG9uIGRlY29tcHJlc3Npb24sIHVwZGF0ZSB0aGUgYnVmZmVyIGFuZCBpdHMgc2l6 ZS4gICovCiAgICAgICAgaWYgKHN0cm5jbXAgKGhlYWRlciwgIlpMSUIiLCBzaXplb2YgKGhlYWRl cikpID09IDApCiAgICAgICAgICB7CkBAIC00NzkyLDcgKzQ1MDcsNyBAQCBpbmRleCA0NDViYWI4 Li41MTY5OWJiIDEwMDY0NAogIAkJCQkgICAmaW5mby0+c2l6ZSk7CiAgICAgICAgICAgIHJldHVy bjsKICAgICAgICAgIH0KLUBAIC0xNDAzLDcgKzE1NjQsNyBAQCBkd2FyZjJfcmVhZF9zZWN0aW9u IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gKmlu Zm8pCitAQCAtMTQwMyw3ICsxNTU4LDcgQEAgZHdhcmYyX3JlYWRfc2VjdGlvbiAoc3RydWN0IG9i amZpbGUgKm9iamZpbGUsIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvICppbmZvKQogIAogICAg ICAgIGlmIChyZXRidWYgIT0gTUFQX0ZBSUxFRCkKICAJewpAQCAtNDgwMSw3ICs0NTE2LDcgQEAg aW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAJICBpbmZvLT5idWZmZXIgPSByZXRidWYg KyAoc2VjdHAtPmZpbGVwb3MgJiAocGFnZXNpemUgLSAxKSkgOwogIAkgIHJldHVybjsKICAJfQot QEAgLTE0MTEsOCArMTU3MiwxNSBAQCBkd2FyZjJfcmVhZF9zZWN0aW9uIChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSwgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gKmluZm8pCitAQCAtMTQxMSw4 ICsxNTY2LDE1IEBAIGR3YXJmMl9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl LCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqaW5mbykKICAjZW5kaWYKICAKICAgIC8qIElm IHdlIGdldCBoZXJlLCB3ZSBhcmUgYSBub3JtYWwsIG5vdC1jb21wcmVzc2VkIHNlY3Rpb24uICAq LwpAQCAtNDgxOSw3ICs0NTM0LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAK ICAgIC8qIFdoZW4gZGVidWdnaW5nIC5vIGZpbGVzLCB3ZSBtYXkgbmVlZCB0byBhcHBseSByZWxv Y2F0aW9uczsgc2VlCiAgICAgICBodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMv MjAwMi0wNC9tc2cwMDEzNi5odG1sIC4KLUBAIC0xNDIxLDYgKzE1ODksOCBAQCBkd2FyZjJfcmVh ZF9zZWN0aW9uIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3RydWN0IGR3YXJmMl9zZWN0aW9u X2luZm8gKmluZm8pCitAQCAtMTQyMSw2ICsxNTgzLDggQEAgZHdhcmYyX3JlYWRfc2VjdGlvbiAo c3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvICppbmZv KQogICAgcmV0YnVmID0gc3ltZmlsZV9yZWxvY2F0ZV9kZWJ1Z19zZWN0aW9uIChhYmZkLCBzZWN0 cCwgYnVmKTsKICAgIGlmIChyZXRidWYgIT0gTlVMTCkKICAgICAgewpAQCAtNDgyOCw3ICs0NTQz LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgICAgICBpbmZvLT5idWZmZXIg PSByZXRidWY7CiAgICAgICAgcmV0dXJuOwogICAgICB9Ci1AQCAtMTQyOSw2ICsxNTk5LDE5IEBA IGR3YXJmMl9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdh cmYyX3NlY3Rpb25faW5mbyAqaW5mbykKK0BAIC0xNDI5LDYgKzE1OTMsMTkgQEAgZHdhcmYyX3Jl YWRfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN0cnVjdCBkd2FyZjJfc2VjdGlv bl9pbmZvICppbmZvKQogICAgICAgIHx8IGJmZF9icmVhZCAoYnVmLCBpbmZvLT5zaXplLCBhYmZk KSAhPSBpbmZvLT5zaXplKQogICAgICBlcnJvciAoXygiRHdhcmYgRXJyb3I6IENhbid0IHJlYWQg RFdBUkYgZGF0YSBmcm9tICclcyciKSwKICAJICAgYmZkX2dldF9maWxlbmFtZSAoYWJmZCkpOwpA QCAtNDg0OCw3ICs0NTYzLDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICB9CiAg CiAgLyogRmlsbCBpbiBTRUNUUCwgQlVGUCBhbmQgU0laRVAgd2l0aCBzZWN0aW9uIGluZm8sIGdp dmVuIE9CSkZJTEUgYW5kCi1AQCAtMTY2NiwxMSArMTg0OSw3IEBAIGR3YXJmMl9jcmVhdGVfaW5j bHVkZV9wc3ltdGFiIChjaGFyICpuYW1lLCBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBzdCwKK0BA IC0xNjY2LDExICsxODQzLDcgQEAgZHdhcmYyX2NyZWF0ZV9pbmNsdWRlX3BzeW10YWIgKGNoYXIg Km5hbWUsIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqcHN0LAogIAogIC8qIFJlYWQgdGhlIExpbmUg TnVtYmVyIFByb2dyYW0gZGF0YSBhbmQgZXh0cmFjdCB0aGUgbGlzdCBvZiBmaWxlcwogICAgIGlu Y2x1ZGVkIGJ5IHRoZSBzb3VyY2UgZmlsZSByZXByZXNlbnRlZCBieSBQU1QuICBCdWlsZCBhbiBp bmNsdWRlCkBAIC00ODYxLDcgKzQ1NzYsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0 NAogIAogIHN0YXRpYyB2b2lkCiAgZHdhcmYyX2J1aWxkX2luY2x1ZGVfcHN5bXRhYnMgKHN0cnVj dCBkd2FyZjJfY3UgKmN1LAotQEAgLTE4MTIsNiArMTk5MSwzNyBAQCBsb29rdXBfc2lnbmF0dXJl ZF90eXBlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgVUxPTkdFU1Qgc2lnKQorQEAgLTE4MTIs NiArMTk4NSwzNyBAQCBsb29rdXBfc2lnbmF0dXJlZF90eXBlIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZSwgVUxPTkdFU1Qgc2lnKQogICAgcmV0dXJuIGVudHJ5OwogIH0KICAKQEAgLTQ4OTksNyAr NDYxNCw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgLyogU3Vicm91dGluZSBv ZiBwcm9jZXNzX3R5cGVfY29tcF91bml0IGFuZCBkd2FyZjJfYnVpbGRfcHN5bXRhYnNfaGFyZAog ICAgIHRvIGNvbWJpbmUgdGhlIGNvbW1vbiBwYXJ0cy4KICAgICBQcm9jZXNzIGEgY29tcGlsYXRp b24gdW5pdCBmb3IgYSBwc3ltdGFiLgotQEAgLTE4NzgsNyArMjA4OCw3IEBAIHByb2Nlc3NfcHN5 bXRhYl9jb21wX3VuaXQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTE4NzgsNyArMjA4 Miw3IEBAIHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl LAogICAgICB9CiAgCiAgICAvKiBTZXQgdGhlIGxhbmd1YWdlIHdlJ3JlIGRlYnVnZ2luZy4gICov CkBAIC00OTA4LDcgKzQ2MjMsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIAog ICAgLyogQWxsb2NhdGUgYSBuZXcgcGFydGlhbCBzeW1ib2wgdGFibGUgc3RydWN0dXJlLiAgKi8K ICAgIHBzdCA9IHN0YXJ0X3BzeW10YWJfY29tbW9uIChvYmpmaWxlLCBvYmpmaWxlLT5zZWN0aW9u X29mZnNldHMsCi1AQCAtMTkyOSw4ICsyMTM5LDggQEAgcHJvY2Vzc19wc3ltdGFiX2NvbXBfdW5p dCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtMTkyOSw4ICsyMTMzLDggQEAgcHJvY2Vz c19wc3ltdGFiX2NvbXBfdW5pdCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgICAgIH0KICAg IGVsc2UgaWYgKGNvbXBfdW5pdF9kaWUuaGFzX3BjX2luZm8KICAJICAgJiYgY29tcF91bml0X2Rp ZS5sb3dwYyA8IGNvbXBfdW5pdF9kaWUuaGlnaHBjKQpAQCAtNDkxOSw3ICs0NjM0LDcgQEAgaW5k ZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgICAgYWRkcm1hcF9zZXRfZW1wdHkgKG9iamZp bGUtPnBzeW10YWJzX2FkZHJtYXAsCiAgCQkgICAgICAgY29tcF91bml0X2RpZS5sb3dwYyArIGJh c2VhZGRyLAogIAkJICAgICAgIGNvbXBfdW5pdF9kaWUuaGlnaHBjICsgYmFzZWFkZHIgLSAxLCBw c3QpOwotQEAgLTIzNjEsNyArMjU3MSw3IEBAIHBhcnRpYWxfZGllX3BhcmVudF9zY29wZSAoc3Ry dWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwKK0BAIC0yMzYxLDcgKzI1NjUsNyBAQCBwYXJ0aWFs X2RpZV9wYXJlbnRfc2NvcGUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksCiAgCSBpZ25v cmluZyB0aGVtLiAgKi8KICAgICAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCiAg CQkgXygidW5oYW5kbGVkIGNvbnRhaW5pbmcgRElFIHRhZyAlZCBmb3IgRElFIGF0ICVkIiksCkBA IC00OTI4LDcgKzQ2NDMsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogICAgICAg IHBhcmVudC0+c2NvcGUgPSBncmFuZHBhcmVudF9zY29wZTsKICAgICAgfQogIAotQEAgLTIzNzYs MTIgKzI1ODYsMjIgQEAgcGFydGlhbF9kaWVfZnVsbF9uYW1lIChzdHJ1Y3QgcGFydGlhbF9kaWVf aW5mbyAqcGRpLAorQEAgLTIzNzYsMTIgKzI1ODAsMjIgQEAgcGFydGlhbF9kaWVfZnVsbF9uYW1l IChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLAogIAkJICAgICAgIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQogIHsKICAgIGNoYXIgKnBhcmVudF9zY29wZTsKQEAgLTQ5NTUsNyArNDY3MCw3IEBA IGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgfQogIAogIHN0YXRpYyB2b2lkCi1AQCAt MjM5NywxMiArMjYxNyw5IEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGll X2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMjM5NywxMiArMjYxMSw5IEBA IGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCiAgCiAgICBiYXNlYWRkciA9IEFOT0ZGU0VUIChvYmpmaWxlLT5zZWN0 aW9uX29mZnNldHMsIFNFQ1RfT0ZGX1RFWFQgKG9iamZpbGUpKTsKICAKQEAgLTQ5NzEsNyArNDY4 Niw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgCiAgICBpZiAoYWN0dWFsX25h bWUgPT0gTlVMTCkKICAgICAgYWN0dWFsX25hbWUgPSBwZGktPm5hbWU7Ci1AQCAtMjUzNCwyMiAr Mjc1MSw2IEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBk aSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMjUzNCwyMiArMjc0NSw2IEBAIGFkZF9wYXJ0 aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAKQEAgLTQ5OTQsNyArNDcwOSw3IEBAIGlu ZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgICBpZiAoYnVpbHRfYWN0dWFsX25hbWUpCiAg ICAgIHhmcmVlIChhY3R1YWxfbmFtZSk7CiAgfQotQEAgLTI1NTksOSArMjc2MCw5IEBAIGFkZF9w YXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCitAQCAtMjU1OSw5ICsyNzU0LDkgQEAgYWRkX3BhcnRpYWxfc3ltYm9sIChzdHJ1 Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICBuYW1l IGxpc3RlZCBpbiB0aGUgZGllLiAgKi8KICAKICBzdGF0aWMgaW50CkBAIC01MDA2LDcgKzQ3MjEs NyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogICAgICB7CiAgICAgIGNhc2UgRFdf VEFHX25hbWVzcGFjZToKICAgICAgY2FzZSBEV19UQUdfdHlwZWRlZjoKLUBAIC0yNTcxLDcgKzI3 NzIsMjMgQEAgcGRpX25lZWRzX25hbWVzcGFjZSAoZW51bSBkd2FyZl90YWcgdGFnKQorQEAgLTI1 NzEsNyArMjc2NiwyMyBAQCBwZGlfbmVlZHNfbmFtZXNwYWNlIChlbnVtIGR3YXJmX3RhZyB0YWcp CiAgICAgIGNhc2UgRFdfVEFHX3VuaW9uX3R5cGU6CiAgICAgIGNhc2UgRFdfVEFHX2VudW1lcmF0 aW9uX3R5cGU6CiAgICAgIGNhc2UgRFdfVEFHX2VudW1lcmF0b3I6CkBAIC01MDMwLDcgKzQ3NDUs NyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogICAgICBkZWZhdWx0OgogICAgICAg IHJldHVybiAwOwogICAgICB9Ci1AQCAtMjcwMCwyNyArMjkxNyw2IEBAIGd1ZXNzX3N0cnVjdHVy ZV9uYW1lIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqc3RydWN0X3BkaSwKK0BAIC0yNzAwLDI3 ICsyOTExLDYgQEAgZ3Vlc3Nfc3RydWN0dXJlX25hbWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZv ICpzdHJ1Y3RfcGRpLAogIAogICAgICAgIGlmIChyZWFsX3BkaS0+ZGllX3BhcmVudCAhPSBOVUxM KQogIAlyZXR1cm47CkBAIC01MDU4LDcgKzQ3NzMsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJi IDEwMDY0NAogICAgICB9CiAgfQogIAotQEAgLTMxNzAsNyArMzM2Niw2IEBAIHByb2Nlc3NfZnVs bF9jb21wX3VuaXQgKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnBlcl9jdSkKK0BAIC0zMTcw LDcgKzMzNjAsNiBAQCBwcm9jZXNzX2Z1bGxfY29tcF91bml0IChzdHJ1Y3QgZHdhcmYyX3Blcl9j dV9kYXRhICpwZXJfY3UpCiAgICBDT1JFX0FERFIgbG93cGMsIGhpZ2hwYzsKICAgIHN0cnVjdCBz eW10YWIgKnN5bXRhYjsKICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwpAQCAtNTA2Niw3ICs0 NzgxLDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgIENPUkVfQUREUiBiYXNl YWRkcjsKICAKICAgIGJhc2VhZGRyID0gQU5PRkZTRVQgKG9iamZpbGUtPnNlY3Rpb25fb2Zmc2V0 cywgU0VDVF9PRkZfVEVYVCAob2JqZmlsZSkpOwotQEAgLTMxODAsMzAgKzMzNzUsNyBAQCBwcm9j ZXNzX2Z1bGxfY29tcF91bml0IChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UpCitA QCAtMzE4MCwzMCArMzM2OSw3IEBAIHByb2Nlc3NfZnVsbF9jb21wX3VuaXQgKHN0cnVjdCBkd2Fy ZjJfcGVyX2N1X2RhdGEgKnBlcl9jdSkKICAKICAgIGN1LT5saXN0X2luX3Njb3BlID0gJmZpbGVf c3ltYm9sczsKICAKQEAgLTUwOTgsNyArNDgxMyw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIg MTAwNjQ0CiAgCiAgICAvKiBEbyBsaW5lIG51bWJlciBkZWNvZGluZyBpbiByZWFkX2ZpbGVfc2Nv cGUgKCkgKi8KICAgIHByb2Nlc3NfZGllIChjdS0+ZGllcywgY3UpOwotQEAgLTMyMzQsNiArMzQw Niw3IEBAIHByb2Nlc3NfZnVsbF9jb21wX3VuaXQgKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEg KnBlcl9jdSkKK0BAIC0zMjM0LDYgKzM0MDAsNyBAQCBwcm9jZXNzX2Z1bGxfY29tcF91bml0IChz dHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UpCiAgc3RhdGljIHZvaWQKICBwcm9jZXNz X2RpZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIHsKQEAg LTUxMDYsNyArNDgyMSw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgICBzd2l0 Y2ggKGRpZS0+dGFnKQogICAgICB7CiAgICAgIGNhc2UgRFdfVEFHX3BhZGRpbmc6Ci1AQCAtMzMx Miw0MiArMzQ4NSw2OSBAQCBwcm9jZXNzX2RpZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQorQEAgLTMzMTIsNDIgKzM0NzksNjkgQEAgcHJvY2Vzc19kaWUgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAvKiBSZXR1cm4gdGhl IGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIERJRSwgYmFzZWQgb24gaXRzIERXX0FUX25hbWUuCiAg ICAgSWYgc2NvcGUgcXVhbGlmaWVycyBhcmUgYXBwcm9wcmlhdGUgdGhleSB3aWxsIGJlIGFkZGVk LiAgVGhlIHJlc3VsdAogICAgIHdpbGwgYmUgYWxsb2NhdGVkIG9uIHRoZSBvYmpmaWxlX29ic3Rh Y2ssIG9yIE5VTEwgaWYgdGhlIERJRSBkb2VzCkBAIC01MTk4LDcgKzQ5MTMsNyBAQCBpbmRleCA0 NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIAogIHN0YXRpYyB2b2lkCiAgcmVhZF9pbXBvcnRfc3Rh dGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCi1AQCAt MzM1Niw5ICszNTU2LDE1IEBAIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTMzNTYsOSArMzU1MCwxNSBAQCByZWFk X2ltcG9ydF9zdGF0ZW1lbnQgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKICAgIHN0cnVjdCBkaWVfaW5mbyAqaW1wb3J0ZWRfZGllOwogICAgY29uc3QgY2hhciAq aW1wb3J0ZWRfbmFtZTsKICAgIGNvbnN0IGNoYXIgKmltcG9ydGVkX25hbWVfcHJlZml4OwpAQCAt NTIxNiw3ICs0OTMxLDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgIGltcG9y dF9hdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfaW1wb3J0LCBjdSk7CiAgICBpZiAoaW1w b3J0X2F0dHIgPT0gTlVMTCkKICAgICAgewotQEAgLTM0MDYsMjkgKzM2MTIsNDUgQEAgcmVhZF9p bXBvcnRfc3RhdGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCitAQCAtMzQwNiwyOSArMzYwNiw0NSBAQCByZWFkX2ltcG9ydF9zdGF0ZW1lbnQgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICByZXR1cm47CiAg ICAgIH0KICAKQEAgLTUyNzUsNyArNDk5MCw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAw NjQ0CiAgfQogIAogIHN0YXRpYyB2b2lkCi1AQCAtMzY3Niw3ICszODk4LDcgQEAgdW5zaWduZWRf aW50X2NvbXBhciAoY29uc3Qgdm9pZCAqYXAsIGNvbnN0IHZvaWQgKmJwKQorQEAgLTM2NzYsNyAr Mzg5Miw3IEBAIHVuc2lnbmVkX2ludF9jb21wYXIgKGNvbnN0IHZvaWQgKmFwLCBjb25zdCB2b2lk ICpicCkKICAKICAgIHJldHVybiAoYSA+IGIpIC0gKGIgPiBhKTsKICB9CkBAIC01Mjg0LDcgKzQ5 OTksNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIC8qIERXX0FUX2Fic3RyYWN0 X29yaWdpbiBpbmhlcml0cyB3aG9sZSBESUVzIChub3QganVzdCB0aGVpciBhdHRyaWJ1dGVzKS4K ICAgICBJbmhlcml0IG9ubHkgdGhlIGNoaWxkcmVuIG9mIHRoZSBEV19BVF9hYnN0cmFjdF9vcmln aW4gRElFIG5vdCBiZWluZyBhbHJlYWR5CiAgICAgcmVmZXJlbmNlZCBieSBEV19BVF9hYnN0cmFj dF9vcmlnaW4gZnJvbSB0aGUgY2hpbGRyZW4gb2YgdGhlIGN1cnJlbnQgRElFLiAgKi8KLUBAIC0z Njk3LDYgKzM5MTksMTQgQEAgaW5oZXJpdF9hYnN0cmFjdF9kaWVzIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzY5Nyw2ICszOTEzLDE0IEBAIGluaGVy aXRfYWJzdHJhY3RfZGllcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICAKICAgIGF0dHIgPSBkd2FyZjJfYXR0 ciAoZGllLCBEV19BVF9hYnN0cmFjdF9vcmlnaW4sIGN1KTsKQEAgLTUyOTksNyArNTAxNCw3IEBA IGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgICBpZiAoIWF0dHIpCiAgICAgIHJldHVy bjsKICAKLUBAIC0zNzk1LDYgKzQwMjUsNyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zNzk1LDYgKzQwMTksNyBAQCBy ZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKICAgIGNoYXIgKm5hbWU7CiAgICBDT1JFX0FERFIgYmFzZWFkZHI7CiAgICBzdHJ1Y3QgYmxv Y2sgKmJsb2NrOwpAQCAtNTMwNyw3ICs1MDIyLDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAx MDA2NDQKICAgIGludCBpbmxpbmVkX2Z1bmMgPSAoZGllLT50YWcgPT0gRFdfVEFHX2lubGluZWRf c3Vicm91dGluZSk7CiAgCiAgICBpZiAoaW5saW5lZF9mdW5jKQotQEAgLTM4MTMsMTMgKzQwNDQs MjMgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCitAQCAtMzgxMywxMyArNDAzOCwyMyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAKICAgIGJhc2VhZGRyID0g QU5PRkZTRVQgKG9iamZpbGUtPnNlY3Rpb25fb2Zmc2V0cywgU0VDVF9PRkZfVEVYVCAob2JqZmls ZSkpOwogIApAQCAtNTMzNCw3ICs1MDQ5LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2 NDQKICAgIGxvd3BjICs9IGJhc2VhZGRyOwogICAgaGlnaHBjICs9IGJhc2VhZGRyOwogIAotQEAg LTM4NDYsMTQgKzQwODcsMTIgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzg0NiwxNCArNDA4MSwxMiBAQCByZWFkX2Z1 bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAK ICAgIGN1LT5saXN0X2luX3Njb3BlID0gJmxvY2FsX3N5bWJvbHM7CiAgCkBAIC01MzU0LDcgKzUw NjksNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogICAgICB9CiAgCiAgICBpbmhl cml0X2Fic3RyYWN0X2RpZXMgKGRpZSwgY3UpOwotQEAgLTM5MDUsNyArNDE0NCw3IEBAIHJlYWRf bGV4aWNhbF9ibG9ja19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQorQEAgLTM5MDUsNyArNDEzOCw3IEBAIHJlYWRfbGV4aWNhbF9ibG9ja19zY29wZSAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgYXMgbXVs dGlwbGUgbGV4aWNhbCBibG9ja3M/ICBIYW5kbGluZyBjaGlsZHJlbiBpbiBhIHNhbmUgd2F5IHdv dWxkCiAgICAgICBiZSBuYXN0eS4gIE1pZ2h0IGJlIGVhc2llciB0byBwcm9wZXJseSBleHRlbmQg Z2VuZXJpYyBibG9ja3MgdG8gCiAgICAgICBkZXNjcmliZSByYW5nZXMuICAqLwpAQCAtNTM2Myw3 ICs1MDc4LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgICAgcmV0dXJuOwog ICAgbG93cGMgKz0gYmFzZWFkZHI7CiAgICBoaWdocGMgKz0gYmFzZWFkZHI7Ci1AQCAtMzkyMiw3 ICs0MTYxLDcgQEAgcmVhZF9sZXhpY2FsX2Jsb2NrX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzkyMiw3ICs0MTU1LDcgQEAgcmVhZF9sZXhp Y2FsX2Jsb2NrX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCiAgICAgIH0KICAgIG5ldyA9IHBvcF9jb250ZXh0ICgpOwogIApAQCAtNTM3Miw3ICs1MDg3 LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgICAgewogICAgICAgIHN0cnVj dCBibG9jayAqYmxvY2sKICAgICAgICAgID0gZmluaXNoX2Jsb2NrICgwLCAmbG9jYWxfc3ltYm9s cywgbmV3LT5vbGRfYmxvY2tzLCBuZXctPnN0YXJ0X2FkZHIsCi1AQCAtNDA3Nyw3ICs0MzE2LDgg QEAgZHdhcmYyX3Jhbmdlc19yZWFkICh1bnNpZ25lZCBvZmZzZXQsIENPUkVfQUREUiAqbG93X3Jl dHVybiwKK0BAIC00MDc3LDcgKzQzMTAsOCBAQCBkd2FyZjJfcmFuZ2VzX3JlYWQgKHVuc2lnbmVk IG9mZnNldCwgQ09SRV9BRERSICpsb3dfcmV0dXJuLAogICAgIGRpc2NvbnRpbnVvdXMsIGkuZS4g ZGVyaXZlZCBmcm9tIERXX0FUX3JhbmdlcyBpbmZvcm1hdGlvbi4gICovCiAgc3RhdGljIGludAog IGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICps b3dwYywKQEAgLTUzODIsNyArNTA5Nyw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0 CiAgewogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICAgIENPUkVfQUREUiBsb3cgPSAwOwot QEAgLTQxMDUsNyArNDM0NSw3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKK0BAIC00MTA1LDcgKzQzMzksNyBAQCBkd2FyZjJf Z2V0X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIENPUkVfQUREUiAqbG93cGMsCiAg CXsKICAJICAvKiBWYWx1ZSBvZiB0aGUgRFdfQVRfcmFuZ2VzIGF0dHJpYnV0ZSBpcyB0aGUgb2Zm c2V0IGluIHRoZQogIAkgICAgIC5kZWJ1Z19yYW5nZXMgc2VjdGlvbi4gICovCkBAIC01MzkxLDcg KzUxMDYsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIAkgICAgcmV0dXJuIDA7 CiAgCSAgLyogRm91bmQgZGlzY29udGludW91cyByYW5nZSBvZiBhZGRyZXNzZXMuICAqLwogIAkg IHJldCA9IC0xOwotQEAgLTQxNDQsNyArNDM4NCw3IEBAIGR3YXJmMl9nZXRfc3VicHJvZ3JhbV9w Y19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAorQEAgLTQxNDQsNyArNDM3OCw3IEBAIGR3 YXJmMl9nZXRfc3VicHJvZ3JhbV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAg Q09SRV9BRERSIGxvdywgaGlnaDsKICAgIHN0cnVjdCBkaWVfaW5mbyAqY2hpbGQgPSBkaWUtPmNo aWxkOwogIApAQCAtNTQwMCw3ICs1MTE1LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2 NDQKICAgICAgewogICAgICAgICpsb3dwYyA9IG1pbiAoKmxvd3BjLCBsb3cpOwogICAgICAgICpo aWdocGMgPSBtYXggKCpoaWdocGMsIGhpZ2gpOwotQEAgLTQxODEsNyArNDQyMSw3IEBAIGdldF9z Y29wZV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAorQEAgLTQxODEsNyArNDQxNSw3 IEBAIGdldF9zY29wZV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAgQ09SRV9B RERSIGJlc3RfaGlnaCA9IChDT1JFX0FERFIpIDA7CiAgICBDT1JFX0FERFIgY3VycmVudF9sb3cs IGN1cnJlbnRfaGlnaDsKICAKQEAgLTU0MDksMjEgKzUxMjQsMzEgQEAgaW5kZXggNDQ1YmFiOC4u NTE2OTliYiAxMDA2NDQKICAgICAgewogICAgICAgIGJlc3RfbG93ID0gY3VycmVudF9sb3c7CiAg ICAgICAgYmVzdF9oaWdoID0gY3VycmVudF9oaWdoOwotQEAgLTQzOTMsNyArNDYzMywxMiBAQCBk d2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8g KmRpZSwKLSAgICAgICAgICAgICAgIGJ5dGVfb2Zmc2V0ID0gMDsKLSAgICAgICAgICAgICB9Ci0g ICAgICAgICAgIGVsc2UgaWYgKGF0dHJfZm9ybV9pc19jb25zdGFudCAoYXR0cikpCitAQCAtNDM4 NCwyMSArNDYxOCw4IEBAIGR3YXJmMl9hZGRfZmllbGQgKHN0cnVjdCBmaWVsZF9pbmZvICpmaXAs IHN0cnVjdCBkaWVfaW5mbyAqZGllLAorICAgICAgIC8qIEdldCBiaXQgb2Zmc2V0IG9mIGZpZWxk LiAgKi8KKyAgICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfZGF0YV9tZW1iZXJf bG9jYXRpb24sIGN1KTsKKyAgICAgICBpZiAoYXR0cikKKy0JeworLSAgICAgICAgICBpbnQgYnl0 ZV9vZmZzZXQ7CistCistICAgICAgICAgIGlmIChhdHRyX2Zvcm1faXNfc2VjdGlvbl9vZmZzZXQg KGF0dHIpKQorLSAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgIGR3YXJmMl9jb21wbGV4X2xv Y2F0aW9uX2V4cHJfY29tcGxhaW50ICgpOworLSAgICAgICAgICAgICAgYnl0ZV9vZmZzZXQgPSAw OworLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgZWxzZSBpZiAoYXR0cl9mb3JtX2lzX2NvbnN0 YW50IChhdHRyKSkKIC0gICAgICAgICAgICBieXRlX29mZnNldCA9IGR3YXJmMl9nZXRfYXR0cl9j b25zdGFudF92YWx1ZSAoYXR0ciwgMCk7Ci0rICAgICAgICAgICAgewotKwkgICAgICBlbnVtIGdl dF9hdHRyX2NvbnN0YW50X3ZhbHVlIHR5cGU7Ci0rCSAgICAgIAotKwkgICAgICB0eXBlID0gZ2V0 X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsICZieXRlX29mZnNldCk7Ci0rCSAgICAgIGdkYl9h c3NlcnQgKHR5cGUgPT0gZHdhcmYyX2F0dHJfY29uc3QpOwotKwkgICAgfQotICAgICAgICAgICBl bHNlCi0gICAgICAgICAgICAgYnl0ZV9vZmZzZXQgPSBkZWNvZGVfbG9jZGVzYyAoRFdfQkxPQ0sg KGF0dHIpLCBjdSk7Ci0gCi1AQCAtNDQ3Niw3ICs0NzIxLDExIEBAIGR3YXJmMl9hZGRfZmllbGQg KHN0cnVjdCBmaWVsZF9pbmZvICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAorLSAgICAgICAg ICBlbHNlCistICAgICAgICAgICAgYnl0ZV9vZmZzZXQgPSBkZWNvZGVfbG9jZGVzYyAoRFdfQkxP Q0sgKGF0dHIpLCBjdSk7CistCistICAgICAgICAgIFNFVF9GSUVMRF9CSVRQT1MgKCpmcCwgYnl0 ZV9vZmZzZXQgKiBiaXRzX3Blcl9ieXRlKTsKKy0JfQorKwlTRVRfRklFTERfQklUUE9TICgqZnAs IGR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92YWx1ZSAoYXR0ciwgMCwgY3UpCisrCQkJICAgICAg ICogYml0c19wZXJfYnl0ZSk7CisgICAgICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FU X2JpdF9vZmZzZXQsIGN1KTsKKyAgICAgICBpZiAoYXR0cikKKyAJeworQEAgLTQ0NzYsNyArNDY5 NywxMSBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwKICAgICAgICBpZiAoZmllbGRuYW1lID09IE5VTEwpCiAgCXJldHVybjsK ICAKQEAgLTU0MzYsNyArNTE2MSwxNiBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAog ICAgICAgIHBoeXNuYW1lID0gZHdhcmYyX2xpbmthZ2VfbmFtZSAoZGllLCBjdSk7CiAgCiAgICAg ICAgLyogVGhlIG5hbWUgaXMgYWxyZWFkeSBhbGxvY2F0ZWQgYWxvbmcgd2l0aCB0aGlzIG9iamZp bGUsIHNvIHdlIGRvbid0Ci1AQCAtNDYwNyw3ICs0ODU2LDExIEBAIGR3YXJmMl9hZGRfbWVtYmVy X2ZuIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKK0BAIC00 NDkwLDcgKzQ3MTUsNyBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlw LCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKKyAgICAgICAvKiBDKysgYmFzZSBjbGFzcyBmaWVsZC4g ICovCisgICAgICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2RhdGFfbWVtYmVyX2xv Y2F0aW9uLCBjdSk7CisgICAgICAgaWYgKGF0dHIpCistCVNFVF9GSUVMRF9CSVRQT1MgKCpmcCwg ZGVjb2RlX2xvY2Rlc2MgKERXX0JMT0NLIChhdHRyKSwgY3UpCisrCVNFVF9GSUVMRF9CSVRQT1Mg KCpmcCwgZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAwLCBjdSkKKyAJCQkg ICAgICAgKiBiaXRzX3Blcl9ieXRlKTsKKyAgICAgICBGSUVMRF9CSVRTSVpFICgqZnApID0gMDsK KyAgICAgICBGSUVMRF9UWVBFICgqZnApID0gZGllX3R5cGUgKGRpZSwgY3UpOworQEAgLTQ2MDcs NyArNDgzMiwxMSBAQCBkd2FyZjJfYWRkX21lbWJlcl9mbiAoc3RydWN0IGZpZWxkX2luZm8gKmZp cCwgc3RydWN0IGRpZV9pbmZvICpkaWUsCiAgICBpZiAoZmllbGRuYW1lID09IE5VTEwpCiAgICAg IHJldHVybjsKICAKQEAgLTU0NDksNyArNTE4Myw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIg MTAwNjQ0CiAgICBwaHlzbmFtZSA9IGR3YXJmMl9saW5rYWdlX25hbWUgKGRpZSwgY3UpOwogIAog ICAgLyogTG9vayB1cCBtZW1iZXIgZnVuY3Rpb24gbmFtZSBpbiBmaWVsZGxpc3QuICAqLwotQEAg LTQ2NTIsNyArNDkwNSw3IEBAIGR3YXJmMl9hZGRfbWVtYmVyX2ZuIChzdHJ1Y3QgZmllbGRfaW5m byAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKK0BAIC00NjUyLDcgKzQ4ODEsNyBAQCBkd2Fy ZjJfYWRkX21lbWJlcl9mbiAoc3RydWN0IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0IGRpZV9pbmZv ICpkaWUsCiAgICAvKiBUaGUgbmFtZSBpcyBhbHJlYWR5IGFsbG9jYXRlZCBhbG9uZyB3aXRoIHRo aXMgb2JqZmlsZSwgc28gd2UgZG9uJ3QKICAgICAgIG5lZWQgdG8gZHVwbGljYXRlIGl0IGZvciB0 aGUgdHlwZS4gICovCiAgICBmbnAtPnBoeXNuYW1lID0gcGh5c25hbWUgPyBwaHlzbmFtZSA6ICIi OwpAQCAtNTQ1OCw3ICs1MTkyLDMxIEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAg ICB0aGlzX3R5cGUgPSByZWFkX3R5cGVfZGllIChkaWUsIGN1KTsKICAgIGlmICh0aGlzX3R5cGUg JiYgVFlQRV9DT0RFICh0aGlzX3R5cGUpID09IFRZUEVfQ09ERV9GVU5DKQogICAgICB7Ci1AQCAt NDgzNiw3ICs1MDg5LDcgQEAgcXVpcmtfZ2NjX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNDcwOSwyMiArNDkz OCw3IEBAIGR3YXJmMl9hZGRfbWVtYmVyX2ZuIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1 Y3QgZGllX2luZm8gKmRpZSwKKyAgIC8qIEdldCBpbmRleCBpbiB2aXJ0dWFsIGZ1bmN0aW9uIHRh YmxlIGlmIGl0IGlzIGEgdmlydHVhbCBtZW1iZXIgZnVuY3Rpb24uICAqLworICAgYXR0ciA9IGR3 YXJmMl9hdHRyIChkaWUsIERXX0FUX3Z0YWJsZV9lbGVtX2xvY2F0aW9uLCBjdSk7CisgICBpZiAo YXR0cikKKy0gICAgeworLSAgICAgIC8qIFN1cHBvcnQgdGhlIC5kZWJ1Z19sb2Mgb2Zmc2V0cyAq LworLSAgICAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQorLSAgICAgICAgeworLSAg ICAgICAgICBmbnAtPnZvZmZzZXQgPSBkZWNvZGVfbG9jZGVzYyAoRFdfQkxPQ0sgKGF0dHIpLCBj dSkgKyAyOworLSAgICAgICAgfQorLSAgICAgIGVsc2UgaWYgKGF0dHJfZm9ybV9pc19zZWN0aW9u X29mZnNldCAoYXR0cikpCistICAgICAgICB7CistCSAgZHdhcmYyX2NvbXBsZXhfbG9jYXRpb25f ZXhwcl9jb21wbGFpbnQgKCk7CistICAgICAgICB9CistICAgICAgZWxzZQorLSAgICAgICAgewor LQkgIGR3YXJmMl9pbnZhbGlkX2F0dHJpYl9jbGFzc19jb21wbGFpbnQgKCJEV19BVF92dGFibGVf ZWxlbV9sb2NhdGlvbiIsCistCQkJCQkJIGZpZWxkbmFtZSk7CistICAgICAgICB9CistICAgfQor KyAgICBmbnAtPnZvZmZzZXQgPSBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIs IC0yLCBjdSkgKyAyOworIH0KKyAKKyAvKiBDcmVhdGUgdGhlIHZlY3RvciBvZiBtZW1iZXIgZnVu Y3Rpb24gZmllbGRzLCBhbmQgYXR0YWNoIGl0IHRvIHRoZSB0eXBlLiAgKi8KK0BAIC00ODM2LDcg KzUwNTAsNyBAQCBxdWlya19nY2NfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgcmV0dXJuIE5VTEw7CiAgCiAg ICBkb21haW5fdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKFRZUEVfRklFTERfVFlQRSAocGZuX3R5 cGUsIDApKTsKQEAgLTU0NjcsNyArNTIyNSw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAw NjQ0CiAgICBzbWFzaF90b19tZXRob2RfdHlwZSAodHlwZSwgZG9tYWluX3R5cGUsIFRZUEVfVEFS R0VUX1RZUEUgKHBmbl90eXBlKSwKICAJCQlUWVBFX0ZJRUxEUyAocGZuX3R5cGUpLCBUWVBFX05G SUVMRFMgKHBmbl90eXBlKSwKICAJCQlUWVBFX1ZBUkFSR1MgKHBmbl90eXBlKSk7Ci1AQCAtNDg4 OSw3ICs1MTQyLDcgQEAgcmVhZF9zdHJ1Y3R1cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTQ4ODksNyArNTEwMyw3IEBAIHJlYWRfc3RydWN0 dXJlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAg ICAgICByZXR1cm4gc2V0X2RpZV90eXBlIChkaWUsIHR5cGUsIGN1KTsKICAgICAgfQogIApAQCAt NTQ3Niw3ICs1MjM0LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgIElOSVRf Q1BMVVNfU1BFQ0lGSUMgKHR5cGUpOwogIAogICAgbmFtZSA9IGR3YXJmMl9uYW1lIChkaWUsIGN1 KTsKLUBAIC00ODk4LDE0ICs1MTUxLDE4IEBAIHJlYWRfc3RydWN0dXJlX3R5cGUgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC00ODk4LDE0ICs1MTEyLDE4 IEBAIHJlYWRfc3RydWN0dXJlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSkKICAgICAgICBpZiAoY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2NwbHVzCiAg CSAgfHwgY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2phdmEpCiAgCXsKQEAgLTU0OTgsNyArNTI1 Niw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgCX0KICAgICAgfQogIAotQEAg LTUxMTUsNyArNTM3Miw3IEBAIHJlYWRfZW51bWVyYXRpb25fdHlwZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTUxMTUsNyArNTMzMyw3IEBAIHJlYWRf ZW51bWVyYXRpb25fdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQogICAgICAgIHJldHVybiBzZXRfZGllX3R5cGUgKGRpZSwgdHlwZSwgY3UpOwogICAgICB9 CiAgCkBAIC01NTA3LDcgKzUyNjUsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAog IAogICAgVFlQRV9DT0RFICh0eXBlKSA9IFRZUEVfQ09ERV9FTlVNOwogICAgbmFtZSA9IGR3YXJm Ml9mdWxsX25hbWUgKGRpZSwgY3UpOwotQEAgLTUxNDMsNTEgKzU0MDAsNiBAQCByZWFkX2VudW1l cmF0aW9uX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK K0BAIC01MTQzLDUxICs1MzYxLDYgQEAgcmVhZF9lbnVtZXJhdGlvbl90eXBlIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICByZXR1cm4gc2V0X2RpZV90eXBl IChkaWUsIHR5cGUsIGN1KTsKICB9CiAgCkBAIC01NTU5LDcgKzUzMTcsNyBAQCBpbmRleCA0NDVi YWI4Li41MTY5OWJiIDEwMDY0NAogIC8qIEdpdmVuIGEgcG9pbnRlciB0byBhIGRpZSB3aGljaCBi ZWdpbnMgYW4gZW51bWVyYXRpb24sIHByb2Nlc3MgYWxsCiAgICAgdGhlIGRpZXMgdGhhdCBkZWZp bmUgdGhlIG1lbWJlcnMgb2YgdGhlIGVudW1lcmF0aW9uLCBhbmQgY3JlYXRlIHRoZQogICAgIHN5 bWJvbCBmb3IgdGhlIGVudW1lcmF0aW9uIHR5cGUuCi1AQCAtNTI2NSw2ICs1NDc3LDI5IEBAIHBy b2Nlc3NfZW51bWVyYXRpb25fc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSkKK0BAIC01MjY1LDYgKzU0MzgsMjkgQEAgcHJvY2Vzc19lbnVtZXJhdGlvbl9z Y29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgbmV3 X3N5bWJvbCAoZGllLCB0aGlzX3R5cGUsIGN1KTsKICB9CiAgCkBAIC01NTg5LDcgKzUzNDcsNyBA QCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIC8qIEV4dHJhY3QgYWxsIGluZm9ybWF0 aW9uIGZyb20gYSBEV19UQUdfYXJyYXlfdHlwZSBESUUgYW5kIHB1dCBpdCBpbgogICAgIHRoZSBE SUUncyB0eXBlIGZpZWxkLiAgRm9yIG5vdywgdGhpcyBvbmx5IGhhbmRsZXMgb25lIGRpbWVuc2lv bmFsCiAgICAgYXJyYXlzLiAgKi8KLUBAIC01Mjc4LDcgKzU1MTMsNyBAQCByZWFkX2FycmF5X3R5 cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC01Mjc4 LDcgKzU0NzQsNyBAQCByZWFkX2FycmF5X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCB0eXBlICplbGVtZW50X3R5cGUsICpyYW5nZV90 eXBlLCAqaW5kZXhfdHlwZTsKICAgIHN0cnVjdCB0eXBlICoqcmFuZ2VfdHlwZXMgPSBOVUxMOwog ICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTU1OTgsNyArNTM1Niw3IEBAIGluZGV4IDQ0 NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKICAgIGNo YXIgKm5hbWU7CiAgCi1AQCAtNTMyNSwxNiArNTU2MCwxMSBAQCByZWFkX2FycmF5X3R5cGUgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC01MzI1LDE2ICs1 NTIxLDExIEBAIHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQogICAgdHlwZSA9IGVsZW1lbnRfdHlwZTsKICAKICAgIGlmIChyZWFkX2Fy cmF5X29yZGVyIChkaWUsIGN1KSA9PSBEV19PUkRfY29sX21ham9yKQpAQCAtNTYyMCw3ICs1Mzc4 LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAKICAgIC8qIFVuZGVyc3RhbmQg RHdhcmYyIHN1cHBvcnQgZm9yIHZlY3RvciB0eXBlcyAobGlrZSB0aGV5IG9jY3VyIG9uCiAgICAg ICB0aGUgUG93ZXJQQyB3LyBBbHRpVmVjKS4gIEdjYyBqdXN0IGFkZHMgYW5vdGhlciBhdHRyaWJ1 dGUgdG8gdGhlCi1AQCAtNTQwMSwxMiArNTYzMSwxNCBAQCByZWFkX3NldF90eXBlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTQwMSw0OSArNTU5Miw4 MyBAQCByZWFkX3NldF90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCiAgICByZXR1cm4gc2V0X2RpZV90eXBlIChkaWUsIHNldF90eXBlLCBjdSk7CiAgfQog IApAQCAtNTYzNyw4ICs1Mzk1LDI2IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAg ICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwogICAgc3RydWN0IHN5bWJvbCAqc3ltOwogICAgQ09S RV9BRERSIGJhc2UgPSAoQ09SRV9BRERSKSAwOwotQEAgLTU0MzEsMTAgKzU2NjMsNDAgQEAgcmVh ZF9jb21tb25fYmxvY2sgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKLSAgICAgfQorIAorICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2xvY2F0aW9u LCBjdSk7CisgICBpZiAoYXR0cikKKy0gICAgeworLSAgICAgIC8qIFN1cHBvcnQgdGhlIC5kZWJ1 Z19sb2Mgb2Zmc2V0cyAqLworLSAgICAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQor LSAgICAgICAgeworLSAgICAgICAgICBiYXNlID0gZGVjb2RlX2xvY2Rlc2MgKERXX0JMT0NLIChh dHRyKSwgY3UpOworLSAgICAgICAgfQorLSAgICAgIGVsc2UgaWYgKGF0dHJfZm9ybV9pc19zZWN0 aW9uX29mZnNldCAoYXR0cikpCistICAgICAgICB7CistCSAgZHdhcmYyX2NvbXBsZXhfbG9jYXRp b25fZXhwcl9jb21wbGFpbnQgKCk7CistICAgICAgICB9CistICAgICAgZWxzZQorLSAgICAgICAg eworLQkgIGR3YXJmMl9pbnZhbGlkX2F0dHJpYl9jbGFzc19jb21wbGFpbnQgKCJEV19BVF9sb2Nh dGlvbiIsCistCQkJCQkJICJjb21tb24gYmxvY2sgbWVtYmVyIik7CistICAgICAgICB9CistICAg IH0KKysgICAgYmFzZSA9IGR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92YWx1ZSAoYXR0ciwgMCwg Y3UpOwogICAgaWYgKGRpZS0+Y2hpbGQgIT0gTlVMTCkKICAgICAgewogKyAgICAgIHN0cnVjdCBv YmpmaWxlICpvYmpmaWxlID0gY3UtPm9iamZpbGU7CkBAIC01NjUzLDkgKzU0MjksOSBAQCBpbmRl eCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogKyAgICAgIC8qIEFydGlmaWNpYWwgdHlwZSB0byBi ZSB1c2VkIG9ubHkgYnkgYGluZm8gY29tbW9uJy4gICovCiArICAgICAgVFlQRV9OQU1FICh0eXBl KSA9ICI8Y29tbW9uPiI7CiArCi0rICAgICAgY2hpbGRfZGllID0gZGllLT5jaGlsZDsKLSsgICAg ICB3aGlsZSAoY2hpbGRfZGllICYmIGNoaWxkX2RpZS0+dGFnKQotKwl7CisgICAgICAgY2hpbGRf ZGllID0gZGllLT5jaGlsZDsKKyAgICAgICB3aGlsZSAoY2hpbGRfZGllICYmIGNoaWxkX2RpZS0+ dGFnKQorIAl7CiArCSAgVFlQRV9ORklFTERTICh0eXBlKSsrOwogKwkgIGNoaWxkX2RpZSA9IHNp YmxpbmdfZGllIChjaGlsZF9kaWUpOwogKwl9CkBAIC01NjY3LDkgKzU0NDMsOSBAQCBpbmRleCA0 NDViYWI4Li41MTY5OWJiIDEwMDY0NAogKwkJCQkgICAgICogVFlQRV9ORklFTERTICh0eXBlKSk7 CiArICAgICAgCiArICAgICAgZmllbGQgPSBUWVBFX0ZJRUxEUyAodHlwZSk7Ci0gICAgICAgY2hp bGRfZGllID0gZGllLT5jaGlsZDsKLSAgICAgICB3aGlsZSAoY2hpbGRfZGllICYmIGNoaWxkX2Rp ZS0+dGFnKQotIAl7CisrICAgICAgY2hpbGRfZGllID0gZGllLT5jaGlsZDsKKysgICAgICB3aGls ZSAoY2hpbGRfZGllICYmIGNoaWxkX2RpZS0+dGFnKQorKwl7CiArCSAgLyogQ3JlYXRlIHRoZSBz eW1ib2wgaW4gdGhlIERXX1RBR19jb21tb25fYmxvY2sgYmxvY2sgaW4gdGhlIGN1cnJlbnQKICsJ ICAgICBzeW1ib2wgc2NvcGUuICAqLwogIAkgIHN5bSA9IG5ld19zeW1ib2wgKGNoaWxkX2RpZSwg TlVMTCwgY3UpOwpAQCAtNTY3OCw4ICs1NDU0LDkgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAx MDA2NDQKICAJICBhdHRyID0gZHdhcmYyX2F0dHIgKGNoaWxkX2RpZSwgRFdfQVRfZGF0YV9tZW1i ZXJfbG9jYXRpb24sIGN1KTsKICAJICBpZiAoYXR0cikKICAJICAgIHsKLUBAIC01NDQyLDggKzU3 MDQsMjUgQEAgcmVhZF9jb21tb25fYmxvY2sgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKLSAJCWJhc2UgKyBkZWNvZGVfbG9jZGVzYyAoRFdfQkxPQ0sgKGF0dHIp LCBjdSk7CisgCSAgICAgIFNZTUJPTF9WQUxVRV9BRERSRVNTIChzeW0pID0KKy0JCWJhc2UgKyBk ZWNvZGVfbG9jZGVzYyAoRFdfQkxPQ0sgKGF0dHIpLCBjdSk7CisrCQliYXNlICsgZHdhcmYyX2dl dF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAwLCBjdSk7CiAgCSAgICAgIGFkZF9zeW1ib2xf dG9fbGlzdCAoc3ltLCAmZ2xvYmFsX3N5bWJvbHMpOwogIAkgICAgfQogKwpAQCAtNTcwNCw3ICs1 NDgxLDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgICAgfQogIH0KICAKLUBA IC01NTExLDcgKzU3OTAsNyBAQCByZWFkX25hbWVzcGFjZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU1MTEsNyArNTczNiw3IEBAIHJlYWRfbmFtZXNw YWNlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgICAg aWYgKGlzX2Fub255bW91cykKICAJewogIAkgIGNvbnN0IGNoYXIgKnByZXZpb3VzX3ByZWZpeCA9 IGRldGVybWluZV9wcmVmaXggKGRpZSwgY3UpOwpAQCAtNTcxMyw3ICs1NDkwLDcgQEAgaW5kZXgg NDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAJfQogICAgICB9CiAgCi1AQCAtNTcwNSwyOSArNTk4 NCw5NSBAQCByZWFkX3RhZ19zdHJpbmdfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQorQEAgLTU3MDUsMjkgKzU5MzAsOTMgQEAgcmVhZF90YWdfc3RyaW5n X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7CiAgICBz dHJ1Y3QgdHlwZSAqdHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBlLCAqY2hhcl90eXBlOwog ICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTU3MzQsOTIgKzU1MTEsODYgQEAgaW5kZXgg NDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKIC0gIGlmIChhdHRyKQogLSAgICB7CiAtICAgICAgbGVu Z3RoID0gRFdfVU5TTkQgKGF0dHIpOwotLSAgICB9Ci0tICBlbHNlCi0tICAgIHsKLS0gICAgICAv KiBjaGVjayBmb3IgdGhlIERXX0FUX2J5dGVfc2l6ZSBhdHRyaWJ1dGUgKi8KLSsgIHN3aXRjaCAo Z2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsICZsZW5ndGgpKQorKyAgaWYgKGF0dHIgJiYg YXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKICsgICAgewotKyAgICBjYXNlIGR3YXJmMl9hdHRy X2NvbnN0OgotKyAgICAgIC8qIFdlIGN1cnJlbnRseSBkbyBub3Qgc3VwcG9ydCBhIGNvbnN0YW50 IGFkZHJlc3Mgd2hlcmUgdGhlIGxvY2F0aW9uCi0rCSBzaG91bGQgYmUgcmVhZCBmcm9tIC0gRFdB UkYyX0FUVFJfQkxPQ0sgaXMgZXhwZWN0ZWQgaW5zdGVhZC4gIFNlZQotKwkgRFdBUkYgZm9yIHRo ZSBEV19BVF9TVFJJTkdfTEVOR1RIIHZzLiBEV19BVF9CWVRFX1NJWkUgZGlmZmVyZW5jZS4gICov Ci0rICAgICAgLyogUEFTU1RIUlUgKi8KLSsgICAgY2FzZSBkd2FyZjJfYXR0cl91bmtub3duOgor KyAgICAgIC8qIFNlY3VyaXR5IGNoZWNrIGZvciBhIHNpemUgb3ZlcmZsb3cuICAqLworKyAgICAg IGlmIChEV19CTE9DSyAoYXR0ciktPnNpemUgKyAyIDwgRFdfQkxPQ0sgKGF0dHIpLT5zaXplKQor KwlUWVBFX0hJR0hfQk9VTkQgKHJhbmdlX3R5cGUpID0gMTsKKysgICAgICAvKiBFeHRlbmQgdGhl IERXQVJGIGJsb2NrIGJ5IGEgbmV3IERXX09QX2RlcmVmL0RXX09QX2RlcmVmX3NpemUKKysJIGlu c3RydWN0aW9uIGFzIERXX0FUX3N0cmluZ19sZW5ndGggc3BlY2lmaWVzIHRoZSBsZW5ndGggbG9j YXRpb24sIG5vdAorKwkgaXRzIHZhbHVlLiAgKi8KKysgICAgICBlbHNlCisrCXsKKysJICBzdHJ1 Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gKmxlbmd0aF9iYXRvbjsKKysJICBzdHJ1Y3QgYXR0cmli dXRlICpzaXplX2F0dHI7CisrCisrCSAgbGVuZ3RoX2JhdG9uID0gb2JzdGFja19hbGxvYyAoJmN1 LT5jb21wX3VuaXRfb2JzdGFjaywKKysJCQkJCXNpemVvZiAoKmxlbmd0aF9iYXRvbikpOworKwkg IGxlbmd0aF9iYXRvbi0+cGVyX2N1ID0gY3UtPnBlcl9jdTsKKysJICBsZW5ndGhfYmF0b24tPmRh dGEgPSBvYnN0YWNrX2FsbG9jICgmY3UtPmNvbXBfdW5pdF9vYnN0YWNrLAorKwkJCQkJICAgICAg RFdfQkxPQ0sgKGF0dHIpLT5zaXplICsgMik7CisrCSAgbWVtY3B5IChsZW5ndGhfYmF0b24tPmRh dGEsIERXX0JMT0NLIChhdHRyKS0+ZGF0YSwKKysJCSAgRFdfQkxPQ0sgKGF0dHIpLT5zaXplKTsK KysKKysJICAvKiBEV19BVF9CWVRFX1NJWkUgZXhpc3RpbmcgdG9nZXRoZXIgd2l0aCBEV19BVF9T VFJJTkdfTEVOR1RICisrCSAgICAgc3BlY2lmaWVzIHRoZSBzaXplIG9mIGFuIGludGVnZXIgdG8g ZmV0Y2guICAqLworKworKwkgIHNpemVfYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5 dGVfc2l6ZSwgY3UpOworKwkgIGlmIChzaXplX2F0dHIpCisrCSAgICB7CisrCSAgICAgIGxlbmd0 aF9iYXRvbi0+c2l6ZSA9IERXX0JMT0NLIChhdHRyKS0+c2l6ZSArIDI7CisrCSAgICAgIGxlbmd0 aF9iYXRvbi0+ZGF0YVtEV19CTE9DSyAoYXR0ciktPnNpemVdID0gRFdfT1BfZGVyZWZfc2l6ZTsK KysJICAgICAgbGVuZ3RoX2JhdG9uLT5kYXRhW0RXX0JMT0NLIChhdHRyKS0+c2l6ZSArIDFdCisr CQkJCQkJCSA9IERXX1VOU05EIChzaXplX2F0dHIpOworKwkgICAgICBpZiAobGVuZ3RoX2JhdG9u LT5kYXRhW0RXX0JMT0NLIChhdHRyKS0+c2l6ZSArIDFdCisrCQkgICE9IERXX1VOU05EIChzaXpl X2F0dHIpKQorKwkJY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAorKwkJCSAgIF8oIkRX X0FUX3N0cmluZ19sZW5ndGgncyBEV19BVF9ieXRlX3NpemUgaW50ZWdlciAiCisrCQkJICAgICAi ZXhjZWVkcyB0aGUgYnl0ZSBzaXplIHN0b3JhZ2UiKSk7CisrCSAgICB9CisrCSAgZWxzZQorKwkg ICAgeworKwkgICAgICBsZW5ndGhfYmF0b24tPnNpemUgPSBEV19CTE9DSyAoYXR0ciktPnNpemUg KyAxOworKwkgICAgICBsZW5ndGhfYmF0b24tPmRhdGFbRFdfQkxPQ0sgKGF0dHIpLT5zaXplXSA9 IERXX09QX2RlcmVmOworKwkgICAgfQorKworKwkgIFRZUEVfUkFOR0VfQk9VTkRfU0VUX0RXQVJG X0JMT0NLIChyYW5nZV90eXBlLCAxKTsKKysJICBUWVBFX0ZJRUxEX0RXQVJGX0JMT0NLIChyYW5n ZV90eXBlLCAxKSA9IGxlbmd0aF9iYXRvbjsKKysJICBUWVBFX0RZTkFNSUMgKHJhbmdlX3R5cGUp ID0gMTsKKysJfQorICAgICB9CisgICBlbHNlCisgICAgIHsKKy0gICAgICAvKiBjaGVjayBmb3Ig dGhlIERXX0FUX2J5dGVfc2l6ZSBhdHRyaWJ1dGUgKi8KKysgICAgICBpZiAoYXR0ciAmJiBhdHRy X2Zvcm1faXNfY29uc3RhbnQgKGF0dHIpKQorKwl7CisrCSAgLyogV2UgY3VycmVudGx5IGRvIG5v dCBzdXBwb3J0IGEgY29uc3RhbnQgYWRkcmVzcyB3aGVyZSB0aGUgbG9jYXRpb24KKysJICAgICBz aG91bGQgYmUgcmVhZCBmcm9tIC0gYXR0cl9mb3JtX2lzX2Jsb2NrIGlzIGV4cGVjdGVkIGluc3Rl YWQuICBTZWUKKysJICAgICBEV0FSRiBmb3IgdGhlIERXX0FUX1NUUklOR19MRU5HVEggdnMuIERX X0FUX0JZVEVfU0laRSBkaWZmZXJlbmNlLgorKwkgICAgICovCisrCSAgLyogUEFTU1RIUlUgKi8K KysJfQorKwogICAgICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9ieXRlX3NpemUs IGN1KTsKIC0gICAgICBpZiAoYXR0cikKIC0gICAgICAgIHsKIC0gICAgICAgICAgbGVuZ3RoID0g RFdfVU5TTkQgKGF0dHIpOwogLSAgICAgICAgfQotLSAgICAgIGVsc2UKLS0gICAgICAgIHsKLS0g ICAgICAgICAgbGVuZ3RoID0gMTsKLS0gICAgICAgIH0KLSsgICAgICBzd2l0Y2ggKGdldF9hdHRy X2NvbnN0YW50X3ZhbHVlIChhdHRyLCAmbGVuZ3RoKSkKKysgICAgICBpZiAoYXR0ciAmJiBhdHRy X2Zvcm1faXNfYmxvY2sgKGF0dHIpKQogKwl7Ci0rCWNhc2UgZHdhcmYyX2F0dHJfdW5rbm93bjoK LSsJICBsZW5ndGggPSAxOwotKwkgIC8qIFBBU1NUSFJVICovCi0rCWNhc2UgZHdhcmYyX2F0dHJf Y29uc3Q6Ci0rCSAgVFlQRV9ISUdIX0JPVU5EIChyYW5nZV90eXBlKSA9IGxlbmd0aDsKLSsJICBi cmVhazsKLSsJY2FzZSBkd2FyZjJfYXR0cl9ibG9jazoKICsJICBUWVBFX1JBTkdFX0JPVU5EX1NF VF9EV0FSRl9CTE9DSyAocmFuZ2VfdHlwZSwgMSk7CiArCSAgVFlQRV9GSUVMRF9EV0FSRl9CTE9D SyAocmFuZ2VfdHlwZSwgMSkgPQogKwkJCQkJZHdhcmYyX2F0dHJfdG9fbG9jZXhwcl9iYXRvbiAo YXR0ciwgY3UpOwogKwkgIFRZUEVfRFlOQU1JQyAocmFuZ2VfdHlwZSkgPSAxOwotKwkgIGJyZWFr OwogKwl9Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgZHdhcmYyX2F0dHJfYmxvY2s6Ci0rICAg ICAgLyogU2VjdXJpdHkgY2hlY2sgZm9yIGEgc2l6ZSBvdmVyZmxvdy4gICovCi0rICAgICAgaWYg KERXX0JMT0NLIChhdHRyKS0+c2l6ZSArIDIgPCBEV19CTE9DSyAoYXR0ciktPnNpemUpCi0rCXsK LSsJICBUWVBFX0hJR0hfQk9VTkQgKHJhbmdlX3R5cGUpID0gMTsKLSsJICBicmVhazsKLSsJfQot KyAgICAgIC8qIEV4dGVuZCB0aGUgRFdBUkYgYmxvY2sgYnkgYSBuZXcgRFdfT1BfZGVyZWYvRFdf T1BfZGVyZWZfc2l6ZQotKwkgaW5zdHJ1Y3Rpb24gYXMgRFdfQVRfc3RyaW5nX2xlbmd0aCBzcGVj aWZpZXMgdGhlIGxlbmd0aCBsb2NhdGlvbiwgbm90Ci0rCSBpdHMgdmFsdWUuICAqLwotKyAgICAg IHsKLSsJc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uICpsZW5ndGhfYmF0b247Ci0rCXN0cnVj dCBhdHRyaWJ1dGUgKnNpemVfYXR0cjsKLSsKLSsJbGVuZ3RoX2JhdG9uID0gb2JzdGFja19hbGxv YyAoJmN1LT5jb21wX3VuaXRfb2JzdGFjaywKLSsJCQkJICAgICAgc2l6ZW9mICgqbGVuZ3RoX2Jh dG9uKSk7Ci0rCWxlbmd0aF9iYXRvbi0+cGVyX2N1ID0gY3UtPnBlcl9jdTsKLSsJbGVuZ3RoX2Jh dG9uLT5kYXRhID0gb2JzdGFja19hbGxvYyAoJmN1LT5jb21wX3VuaXRfb2JzdGFjaywKLSsJCQkJ CSAgICBEV19CTE9DSyAoYXR0ciktPnNpemUgKyAyKTsKLSsJbWVtY3B5IChsZW5ndGhfYmF0b24t PmRhdGEsIERXX0JMT0NLIChhdHRyKS0+ZGF0YSwKLSsJCURXX0JMT0NLIChhdHRyKS0+c2l6ZSk7 Ci0rCi0rCS8qIERXX0FUX0JZVEVfU0laRSBleGlzdGluZyB0b2dldGhlciB3aXRoIERXX0FUX1NU UklOR19MRU5HVEggc3BlY2lmaWVzCi0rCSAgIHRoZSBzaXplIG9mIGFuIGludGVnZXIgdG8gZmV0 Y2guICAqLwotKwotKwlzaXplX2F0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9ieXRlX3Np emUsIGN1KTsKLSsJaWYgKHNpemVfYXR0cikKLSsJICB7Ci0rCSAgICBsZW5ndGhfYmF0b24tPnNp emUgPSBEV19CTE9DSyAoYXR0ciktPnNpemUgKyAyOwotKwkgICAgbGVuZ3RoX2JhdG9uLT5kYXRh W0RXX0JMT0NLIChhdHRyKS0+c2l6ZV0gPSBEV19PUF9kZXJlZl9zaXplOwotKwkgICAgbGVuZ3Ro X2JhdG9uLT5kYXRhW0RXX0JMT0NLIChhdHRyKS0+c2l6ZSArIDFdCi0rCQkJCQkJCSA9IERXX1VO U05EIChzaXplX2F0dHIpOwotKwkgICAgaWYgKGxlbmd0aF9iYXRvbi0+ZGF0YVtEV19CTE9DSyAo YXR0ciktPnNpemUgKyAxXQotKwkgICAgICAgICE9IERXX1VOU05EIChzaXplX2F0dHIpKQotKwkg ICAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCi0rCSAgICAgICAgICAgICAgICAg XygiRFdfQVRfc3RyaW5nX2xlbmd0aCdzIERXX0FUX2J5dGVfc2l6ZSBpbnRlZ2VyICIKLSsJCQkg ICAiZXhjZWVkcyB0aGUgYnl0ZSBzaXplIHN0b3JhZ2UiKSk7Ci0rCSAgfQotKwllbHNlCi0rCSAg ewotKwkgICAgbGVuZ3RoX2JhdG9uLT5zaXplID0gRFdfQkxPQ0sgKGF0dHIpLT5zaXplICsgMTsK LSsJICAgIGxlbmd0aF9iYXRvbi0+ZGF0YVtEV19CTE9DSyAoYXR0ciktPnNpemVdID0gRFdfT1Bf ZGVyZWY7Ci0rCSAgfQotKwotKwlUWVBFX1JBTkdFX0JPVU5EX1NFVF9EV0FSRl9CTE9DSyAocmFu Z2VfdHlwZSwgMSk7Ci0rCVRZUEVfRklFTERfRFdBUkZfQkxPQ0sgKHJhbmdlX3R5cGUsIDEpID0g bGVuZ3RoX2JhdG9uOwotKwlUWVBFX0RZTkFNSUMgKHJhbmdlX3R5cGUpID0gMTsKLSsgICAgICB9 Ci0rICAgICAgYnJlYWs7CisrICAgICAgZWxzZSBpZiAoYXR0ciAmJiBhdHRyX2Zvcm1faXNfY29u c3RhbnQgKGF0dHIpKQorKwlUWVBFX0hJR0hfQk9VTkQgKHJhbmdlX3R5cGUpID0gZHdhcmYyX2dl dF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAwLAorKwkJCQkJCQkJICAgICAgIGN1KTsKKyAg ICAgICBlbHNlCistICAgICAgICB7CistICAgICAgICAgIGxlbmd0aCA9IDE7CistICAgICAgICB9 CisrCVRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSkgPSAxOwogICAgICB9CiAgCiAtICBpbmRl eF90eXBlID0gb2JqZmlsZV90eXBlIChvYmpmaWxlKS0+YnVpbHRpbl9pbnQ7CkBAIC01ODI3LDcg KzU1OTgsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogICAgY2hhcl90eXBlID0g bGFuZ3VhZ2Vfc3RyaW5nX2NoYXJfdHlwZSAoY3UtPmxhbmd1YWdlX2RlZm4sIGdkYmFyY2gpOwog ICAgdHlwZSA9IGNyZWF0ZV9zdHJpbmdfdHlwZSAoTlVMTCwgY2hhcl90eXBlLCByYW5nZV90eXBl KTsKICAKLUBAIC01ODIyLDcgKzYxNjcsNiBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKgorQEAgLTU4 MjIsNyArNjExMSw2IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCiAgcmVhZF90eXBlZGVmIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgewogICAgc3RydWN0IG9i amZpbGUgKm9iamZpbGUgPSBjdS0+b2JqZmlsZTsKQEAgLTU4MzUsMTggKzU2MDYsMTcgQEAgaW5k ZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMOwog ICAgc3RydWN0IHR5cGUgKnRoaXNfdHlwZTsKICAKLUBAIC01OTMwLDggKzYyNzQsOCBAQCByZWFk X3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKK0BAIC01OTMwLDggKzYyMTgsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCB0eXBlICpiYXNlX3R5 cGU7CiAgICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0 dHI7CiAtICBpbnQgbG93ID0gMDsKIC0gIGludCBoaWdoID0gLTE7Ci0rICBpbnQgbG93LCBoaWdo LCBieXRlX3N0cmlkZV9pbnQ7Ci0rICBlbnVtIGdldF9hdHRyX2NvbnN0YW50X3ZhbHVlIGhpZ2hf dHlwZTsKKysgIGludCBsb3c7CiAgICBjaGFyICpuYW1lOwogICAgCiAgICBiYXNlX3R5cGUgPSBk aWVfdHlwZSAoZGllLCBjdSk7Ci1AQCAtNTk0NCw0MiArNjI4OCw5MCBAQCByZWFkX3N1YnJhbmdl X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC01 OTQ0LDQyICs2MjMxLDkxIEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAkJICAgICAwLCBOVUxMLCBjdS0+b2JqZmlsZSk7 CiAgICAgIH0KICAKQEAgLTU4NjQsMzQgKzU2MzQsMzYgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTli YiAxMDA2NDQKICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9sb3dlcl9ib3VuZCwg Y3UpOwogLSAgaWYgKGF0dHIpCiAtICAgIGxvdyA9IGR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92 YWx1ZSAoYXR0ciwgMCk7Ci0rICBzd2l0Y2ggKGdldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRy LCAmbG93KSkKKysgIGlmIChhdHRyICYmIGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikpCiArICAg IHsKLSsgICAgY2FzZSBkd2FyZjJfYXR0cl91bmtub3duOgotKyAgICAgIGlmIChjdS0+bGFuZ3Vh Z2UgPT0gbGFuZ3VhZ2VfZm9ydHJhbikKLSsJewotKwkgIC8qIEZPUlRSQU4gaW1wbGllcyBhIGxv d2VyIGJvdW5kIG9mIDEsIGlmIG5vdCBnaXZlbi4gICovCi0rCSAgbG93ID0gMTsKLSsJfQotKyAg ICAgIGVsc2UKLSsgICAgICAgIHsKLSsJICAvKiBBY2NvcmRpbmcgdG8gRFdBUkYgd2Ugc2hvdWxk IGFzc3VtZSB0aGUgdmFsdWUgMCBvbmx5IGZvcgotKwkgICAgIExBTkdVQUdFX0MgYW5kIExBTkdV QUdFX0NQTFVTLiAgKi8KLSsJICBsb3cgPSAwOwotKwl9Ci0rICAgICAgLyogUEFTU1RIUlUgKi8K LSsgICAgY2FzZSBkd2FyZjJfYXR0cl9jb25zdDoKLSsgICAgICBUWVBFX0xPV19CT1VORCAocmFu Z2VfdHlwZSkgPSBsb3c7Ci0rICAgICAgaWYgKGxvdyA+PSAwKQotKwlUWVBFX1VOU0lHTkVEIChy YW5nZV90eXBlKSA9IDE7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgZHdhcmYyX2F0dHJfYmxv Y2s6CiArICAgICAgVFlQRV9SQU5HRV9CT1VORF9TRVRfRFdBUkZfQkxPQ0sgKHJhbmdlX3R5cGUs IDApOwogKyAgICAgIFRZUEVfRklFTERfRFdBUkZfQkxPQ0sgKHJhbmdlX3R5cGUsIDApID0gZHdh cmYyX2F0dHJfdG9fbG9jZXhwcl9iYXRvbgogKwkJCQkJCQkJICAgICAoYXR0ciwgY3UpOwogKyAg ICAgIFRZUEVfRFlOQU1JQyAocmFuZ2VfdHlwZSkgPSAxOwogKyAgICAgIC8qIEZvciBzZXR0aW5n IGEgZGVmYXVsdCBpZiBEV19BVF9VUFBFUl9CT1VORCB3b3VsZCBiZSBtaXNzaW5nLiAgKi8KICsg ICAgICBsb3cgPSAwOwotKyAgICAgIGJyZWFrOworKyAgICB9CisrICBlbHNlCisrICAgIHsKKysg ICAgICBpZiAoYXR0ciAmJiBhdHRyX2Zvcm1faXNfY29uc3RhbnQgKGF0dHIpKQorKwlsb3cgPSBk d2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsIDAsIGN1KTsKKysgICAgICBlbHNl CisrCXsKKysJICBpZiAoY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2ZvcnRyYW4pCisrCSAgICB7 CisrCSAgICAgIC8qIEZPUlRSQU4gaW1wbGllcyBhIGxvd2VyIGJvdW5kIG9mIDEsIGlmIG5vdCBn aXZlbi4gICovCisrCSAgICAgIGxvdyA9IDE7CisrCSAgICB9CisrCSAgZWxzZQorKwkgICAgewor KwkgICAgICAvKiBBY2NvcmRpbmcgdG8gRFdBUkYgd2Ugc2hvdWxkIGFzc3VtZSB0aGUgdmFsdWUg MCBvbmx5IGZvcgorKwkJIExBTkdVQUdFX0MgYW5kIExBTkdVQUdFX0NQTFVTLiAgKi8KKysJICAg ICAgbG93ID0gMDsKKysJICAgIH0KKysJfQorKyAgICAgIFRZUEVfTE9XX0JPVU5EIChyYW5nZV90 eXBlKSA9IGxvdzsKKysgICAgICBpZiAobG93ID49IDApCisrCVRZUEVfVU5TSUdORUQgKHJhbmdl X3R5cGUpID0gMTsKICsgICAgfQogIAogICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FU X3VwcGVyX2JvdW5kLCBjdSk7CkBAIC01OTEyLDYyICs1Njg0LDYwIEBAIGluZGV4IDQ0NWJhYjgu LjUxNjk5YmIgMTAwNjQ0CiAtICAgICAgICAgICAgIHRoZSBsb3dlciBib3VuZCB3ZSd2ZSBjb21w dXRlZCBhYm92ZS4gICovCiAtICAgICAgICAgIGhpZ2ggPSBsb3cgLSAxOwogLSAgICAgICAgfQot LSAgICAgIGVsc2UKLS0gICAgICAgIGhpZ2ggPSBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFs dWUgKGF0dHIsIDEpOwotKyAgaGlnaF90eXBlID0gZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0 dHIsICZoaWdoKTsKLSsgIGlmIChoaWdoX3R5cGUgPT0gZHdhcmYyX2F0dHJfdW5rbm93bikKKysg IGlmICghYXR0ciB8fCAoIWF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikgJiYgIWF0dHJfZm9ybV9p c19jb25zdGFudCAoYXR0cikpKQogKyAgICB7CiArICAgICAgYXR0ciA9IGR3YXJmMl9hdHRyIChk aWUsIERXX0FUX2NvdW50LCBjdSk7Ci0rICAgICAgaGlnaF90eXBlID0gZ2V0X2F0dHJfY29uc3Rh bnRfdmFsdWUgKGF0dHIsICZoaWdoKTsKICsgICAgICAvKiBJdCBkb2VzIG5vdCBodXJ0IGJ1dCBp dCBpcyBuZWVkbGVzc2x5IGluZWZmZWN0aXZlIGluIGNoZWNrX3R5cGVkZWYuICAqLwotKyAgICAg IGlmIChoaWdoX3R5cGUgIT0gZHdhcmYyX2F0dHJfdW5rbm93bikKKysgICAgICBpZiAoYXR0ciAm JiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSB8fCBhdHRyX2Zvcm1faXNfY29uc3RhbnQgKGF0 dHIpKSkKICsgICAgICAJewogKwkgIFRZUEVfUkFOR0VfSElHSF9CT1VORF9JU19DT1VOVCAocmFu Z2VfdHlwZSkgPSAxOwogKwkgIFRZUEVfRFlOQU1JQyAocmFuZ2VfdHlwZSkgPSAxOwogKwl9CiAr ICAgICAgLyogUGFzcyBpdCBub3cgYXMgdGhlIHJlZ3VsYXIgRFdfQVRfdXBwZXJfYm91bmQuICAq LwogKyAgICB9Ci0rICBzd2l0Y2ggKGhpZ2hfdHlwZSkKKysKKysgIGlmIChhdHRyICYmIGF0dHJf Zm9ybV9pc19ibG9jayAoYXR0cikpCiArICAgIHsKLSsgICAgY2FzZSBkd2FyZjJfYXR0cl91bmtu b3duOgotKyAgICAgIFRZUEVfUkFOR0VfVVBQRVJfQk9VTkRfSVNfVU5ERUZJTkVEIChyYW5nZV90 eXBlKSA9IDE7Ci0rICAgICAgaGlnaCA9IGxvdyAtIDE7Ci0rICAgICAgLyogUEFTU1RIUlUgKi8K LSsgICAgY2FzZSBkd2FyZjJfYXR0cl9jb25zdDoKLSsgICAgICBUWVBFX0hJR0hfQk9VTkQgKHJh bmdlX3R5cGUpID0gaGlnaDsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBkd2FyZjJfYXR0cl9i bG9jazoKICsgICAgICBUWVBFX1JBTkdFX0JPVU5EX1NFVF9EV0FSRl9CTE9DSyAocmFuZ2VfdHlw ZSwgMSk7CiArICAgICAgVFlQRV9GSUVMRF9EV0FSRl9CTE9DSyAocmFuZ2VfdHlwZSwgMSkgPSBk d2FyZjJfYXR0cl90b19sb2NleHByX2JhdG9uCiArCQkJCQkJCQkgICAgIChhdHRyLCBjdSk7CiAr ICAgICAgVFlQRV9EWU5BTUlDIChyYW5nZV90eXBlKSA9IDE7Ci0rICAgICAgYnJlYWs7CisrICAg IH0KKysgIGVsc2UKKysgICAgeworKyAgICAgIGlmIChhdHRyICYmIGF0dHJfZm9ybV9pc19jb25z dGFudCAoYXR0cikpCisrCVRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSkgPSBkd2FyZjJfZ2V0 X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsIDAsCisrCQkJCQkJCQkgICAgICAgY3UpOworICAg ICAgIGVsc2UKKy0gICAgICAgIGhpZ2ggPSBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUg KGF0dHIsIDEpOworKwl7CisrCSAgVFlQRV9SQU5HRV9VUFBFUl9CT1VORF9JU19VTkRFRklORUQg KHJhbmdlX3R5cGUpID0gMTsKKysJICBUWVBFX0hJR0hfQk9VTkQgKHJhbmdlX3R5cGUpID0gbG93 IC0gMTsKKysJfQogICAgICB9CiAgCiAtICByYW5nZV90eXBlID0gY3JlYXRlX3JhbmdlX3R5cGUg KE5VTEwsIGJhc2VfdHlwZSwgbG93LCBoaWdoKTsKICsgIC8qIERXX0FUX2JpdF9zdHJpZGUgaXMg Y3VycmVudGx5IHVuc3VwcG9ydGVkIGFzIHdlIGNvdW50IGluIGJ5dGVzLiAgKi8KICsgIGF0dHIg PSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9ieXRlX3N0cmlkZSwgY3UpOwotKyAgc3dpdGNoIChn ZXRfYXR0cl9jb25zdGFudF92YWx1ZSAoYXR0ciwgJmJ5dGVfc3RyaWRlX2ludCkpCisrICBpZiAo YXR0ciAmJiBhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQogKyAgICB7Ci0rICAgIGNhc2UgZHdh cmYyX2F0dHJfdW5rbm93bjoKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBkd2FyZjJfYXR0cl9j b25zdDoKLSsgICAgICBpZiAoYnl0ZV9zdHJpZGVfaW50ID09IDApCi0rCWNvbXBsYWludCAoJnN5 bWZpbGVfY29tcGxhaW50cywKLSsJCSAgIF8oIkZvdW5kIERXX0FUX2J5dGVfc3RyaWRlIHdpdGgg dW5zdXBwb3J0ZWQgdmFsdWUgMCIpKTsKLSsgICAgICBUWVBFX0JZVEVfU1RSSURFIChyYW5nZV90 eXBlKSA9IGJ5dGVfc3RyaWRlX2ludDsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBkd2FyZjJf YXR0cl9ibG9jazoKICsgICAgICBUWVBFX1JBTkdFX0JPVU5EX1NFVF9EV0FSRl9CTE9DSyAocmFu Z2VfdHlwZSwgMik7CiArICAgICAgVFlQRV9GSUVMRF9EV0FSRl9CTE9DSyAocmFuZ2VfdHlwZSwg MikgPSBkd2FyZjJfYXR0cl90b19sb2NleHByX2JhdG9uCiArCQkJCQkJCQkgICAgIChhdHRyLCBj dSk7CiArICAgICAgVFlQRV9EWU5BTUlDIChyYW5nZV90eXBlKSA9IDE7Ci0rICAgICAgYnJlYWs7 CisrICAgIH0KKysgIGVsc2UgaWYgKGF0dHIgJiYgYXR0cl9mb3JtX2lzX2NvbnN0YW50IChhdHRy KSkKKysgICAgeworKyAgICAgIFRZUEVfQllURV9TVFJJREUgKHJhbmdlX3R5cGUpID0gZHdhcmYy X2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAwLAorKwkJCQkJCQkJICAgICAgY3UpOwor KyAgICAgIGlmIChUWVBFX0JZVEVfU1RSSURFIChyYW5nZV90eXBlKSA9PSAwKQorKwljb21wbGFp bnQgKCZzeW1maWxlX2NvbXBsYWludHMsCisrCQkgICBfKCJGb3VuZCBEV19BVF9ieXRlX3N0cmlk ZSB3aXRoIHVuc3VwcG9ydGVkIHZhbHVlIDAiKSk7CiArICAgIH0KICAKICAgIG5hbWUgPSBkd2Fy ZjJfbmFtZSAoZGllLCBjdSk7CiAgICBpZiAobmFtZSkKLUBAIC02NjcwLDkgKzcwNjIsNiBAQCBy ZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCitAQCAt NjY3MCw5ICs3MDA2LDYgQEAgcmVhZF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBhcnRpYWxfZGllX2lu Zm8gKnBhcnRfZGllLAogIAkgIGlmIChwYXJ0X2RpZS0+ZGlybmFtZSA9PSBOVUxMKQogIAkgICAg cGFydF9kaWUtPmRpcm5hbWUgPSBEV19TVFJJTkcgKCZhdHRyKTsKICAJICBicmVhazsKQEAgLTU5 NzcsNyArNTc0Nyw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgCWNhc2UgRFdf QVRfbG93X3BjOgogIAkgIGhhc19sb3dfcGNfYXR0ciA9IDE7CiAgCSAgcGFydF9kaWUtPmxvd3Bj ID0gRFdfQUREUiAoJmF0dHIpOwotQEAgLTY3NDQsMTAgKzcxMzMsMTAgQEAgcmVhZF9wYXJ0aWFs X2RpZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBhcnRfZGllLAorQEAgLTY3NDQsMTAgKzcw NzcsMTAgQEAgcmVhZF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBhcnRf ZGllLAogIAkgIGVsc2UKICAJICAgIHBhcnRfZGllLT5zaWJsaW5nID0gYnVmZmVyICsgZHdhcmYy X2dldF9yZWZfZGllX29mZnNldCAoJmF0dHIpOwogIAkgIGJyZWFrOwpAQCAtNTk5Miw3ICs1NzYy LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgICAgICAgIGNhc2UgRFdfQVRf Ynl0ZV9zaXplOgogICAgICAgICAgICBwYXJ0X2RpZS0+aGFzX2J5dGVfc2l6ZSA9IDE7CiAgICAg ICAgICAgIGJyZWFrOwotQEAgLTY3ODksMTMgKzcxNzgsNiBAQCByZWFkX3BhcnRpYWxfZGllIChz dHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCitAQCAtNjc4OSwxMyArNzEyMiw2IEBA IHJlYWRfcGFydGlhbF9kaWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwYXJ0X2RpZSwKICAJ ICB8fCBkd2FyZjJfcGVyX29iamZpbGUtPmhhc19zZWN0aW9uX2F0X3plcm8pKQogICAgICBwYXJ0 X2RpZS0+aGFzX3BjX2luZm8gPSAxOwogIApAQCAtNjAwNiw3ICs1Nzc2LDcgQEAgaW5kZXggNDQ1 YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgIHJldHVybiBpbmZvX3B0cjsKICB9CiAgCi1AQCAtNjkw NCw3ICs3Mjg2LDggQEAgZml4dXBfcGFydGlhbF9kaWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZv ICpwYXJ0X2RpZSwKK0BAIC02OTA0LDcgKzcyMzAsOCBAQCBmaXh1cF9wYXJ0aWFsX2RpZSAoc3Ry dWN0IHBhcnRpYWxfZGllX2luZm8gKnBhcnRfZGllLAogICAgLyogSWYgd2UgZm91bmQgYSByZWZl cmVuY2UgYXR0cmlidXRlIGFuZCB0aGUgRElFIGhhcyBubyBuYW1lLCB0cnkKICAgICAgIHRvIGZp bmQgYSBuYW1lIGluIHRoZSByZWZlcnJlZCB0byBESUUuICAqLwogIApAQCAtNjAxNiw3ICs1Nzg2 LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgICAgewogICAgICAgIHN0cnVj dCBwYXJ0aWFsX2RpZV9pbmZvICpzcGVjX2RpZTsKICAKLUBAIC04MjQ0LDEwICs4NjI3LDEyIEBA IHZhcl9kZWNvZGVfbG9jYXRpb24gKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBzeW1i b2wgKnN5bSwKK0BAIC04MjQ0LDEwICs4NTcxLDEyIEBAIHZhcl9kZWNvZGVfbG9jYXRpb24gKHN0 cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBzeW1ib2wgKnN5bSwKICAgICAgIChpLmUuIHdo ZW4gdGhlIHZhbHVlIG9mIGEgcmVnaXN0ZXIgb3IgbWVtb3J5IGxvY2F0aW9uIGlzCiAgICAgICBy ZWZlcmVuY2VkLCBvciBhIHRocmVhZC1sb2NhbCBibG9jaywgZXRjLikuICBUaGVuIGFnYWluLCBp dCBtaWdodAogICAgICAgbm90IGJlIHdvcnRod2hpbGUuICBJJ20gYXNzdW1pbmcgdGhhdCBpdCBp c24ndCB1bmxlc3MgcGVyZm9ybWFuY2UKQEAgLTYwMzEsNyArNTgwMSw3IEBAIGluZGV4IDQ0NWJh YjguLjUxNjk5YmIgMTAwNjQ0CiAgfQogIAogIC8qIEdpdmVuIGEgcG9pbnRlciB0byBhIERXQVJG IGluZm9ybWF0aW9uIGVudHJ5LCBmaWd1cmUgb3V0IGlmIHdlIG5lZWQKLUBAIC04MjY5LDIxICs4 NjU0LDI0IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAq dHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtODI2OSwyMSArODU5OCwyNCBAQCBuZXdf c3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQogIAogICAgYmFzZWFkZHIgPSBBTk9GRlNFVCAob2JqZmlsZS0+c2VjdGlv bl9vZmZzZXRzLCBTRUNUX09GRl9URVhUIChvYmpmaWxlKSk7CiAgCkBAIC02MDYzLDcgKzU4MzMs NyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIAogICAgICAgIC8qIERlZmF1bHQg YXNzdW1wdGlvbnMuCiAgICAgICAgICAgVXNlIHRoZSBwYXNzZWQgdHlwZSBvciBkZWNvZGUgaXQg ZnJvbSB0aGUgZGllLiAgKi8KLUBAIC04MzgxLDcgKzg3NjksMTUgQEAgbmV3X3N5bWJvbCAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKK0BAIC04MzgxLDcgKzg3MTMsMTUgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAJICBpZiAoYXR0 cikKICAJICAgIHsKICAJICAgICAgdmFyX2RlY29kZV9sb2NhdGlvbiAoYXR0ciwgc3ltLCBjdSk7 CkBAIC02MDc5LDcgKzU4NDksNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIAkg ICAgICBpZiAoYXR0cjIgJiYgKERXX1VOU05EIChhdHRyMikgIT0gMCkpCiAgCQlhZGRfc3ltYm9s X3RvX2xpc3QgKHN5bSwgJmdsb2JhbF9zeW1ib2xzKTsKICAJICAgICAgZWxzZQotQEAgLTg1MTMs NyArODkwOSw3IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlw ZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtODUxMyw3ICs4ODUzLDcgQEAgbmV3 X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKICAJICBhZGRfc3ltYm9sX3RvX2xpc3QgKHN5bSwgY3UtPmxpc3RfaW5f c2NvcGUpOwogIAkgIGJyZWFrOwogIAljYXNlIERXX1RBR19lbnVtZXJhdG9yOgpAQCAtNjA4OCw3 ICs1ODU4LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAJICBhdHRyID0gZHdh cmYyX2F0dHIgKGRpZSwgRFdfQVRfY29uc3RfdmFsdWUsIGN1KTsKICAJICBpZiAoYXR0cikKICAJ ICAgIHsKLUBAIC04NTM3LDYgKzg5MzMsMTEgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04NTM3 LDYgKzg4NzcsMTEgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0 eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAJICBTWU1CT0xfQ0xBU1MgKHN5bSkg PSBMT0NfVFlQRURFRjsKICAJICBhZGRfc3ltYm9sX3RvX2xpc3QgKHN5bSwgJmdsb2JhbF9zeW1i b2xzKTsKICAJICBicmVhazsKQEAgLTYxMDAsNyArNTg3MCw3IEBAIGluZGV4IDQ0NWJhYjguLjUx Njk5YmIgMTAwNjQ0CiAgCWRlZmF1bHQ6CiAgCSAgLyogTm90IGEgdGFnIHdlIHJlY29nbml6ZS4g IEhvcGVmdWxseSB3ZSBhcmVuJ3QgcHJvY2Vzc2luZwogIAkgICAgIHRyYXNoIGRhdGEsIGJ1dCBz aW5jZSB3ZSBtdXN0IHNwZWNpZmljYWxseSBpZ25vcmUgdGhpbmdzCi1AQCAtODU1MCw4ICs4OTUx LDcgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBl LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04NTUwLDggKzg4OTUsNyBAQCBuZXdfc3ltYm9s IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQogICAgICAgIC8qIEZvciB0aGUgYmVuZWZpdCBvZiBvbGQgdmVyc2lvbnMgb2YgR0ND LCBjaGVjayBmb3IgYW5vbnltb3VzCiAgCSBuYW1lc3BhY2VzIGJhc2VkIG9uIHRoZSBkZW1hbmds ZWQgbmFtZS4gICovCiAgICAgICAgaWYgKCFwcm9jZXNzaW5nX2hhc19uYW1lc3BhY2VfaW5mbwpA QCAtNjExMCw3ICs1ODgwLDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAJY3Bf c2Nhbl9mb3JfYW5vbnltb3VzX25hbWVzcGFjZXMgKHN5bSk7CiAgICAgIH0KICAgIHJldHVybiAo c3ltKTsKLUBAIC04ODA4LDYgKzkyMDgsOSBAQCByZWFkX3R5cGVfZGllIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtODgwOCw2ICs5MTUyLDkgQEAgcmVh ZF90eXBlX2RpZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQog ICAgICAgIGJyZWFrOwogICAgICB9CiAgCkBAIC02MTIwLDcgKzU4OTAsNyBAQCBpbmRleCA0NDVi YWI4Li41MTY5OWJiIDEwMDY0NAogICAgcmV0dXJuIHRoaXNfdHlwZTsKICB9CiAgCi1AQCAtODg4 OSwxMCArOTI5Miw5NyBAQCBkZXRlcm1pbmVfcHJlZml4IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtODg4OSwxMCArOTIzNiw5NyBAQCBkZXRlcm1pbmVf cHJlZml4IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCSAg ICAgU28gaXQgZG9lcyBub3QgbmVlZCBhIHByZWZpeC4gICovCiAgCSAgcmV0dXJuICIiOwogICAg ICAgIGRlZmF1bHQ6CkBAIC02MjE5LDE0ICs1OTg5LDE4IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5 YmIgMTAwNjQ0CiAgLyogUmV0dXJuIGEgbmV3bHktYWxsb2NhdGVkIHN0cmluZyBmb3JtZWQgYnkg Y29uY2F0ZW5hdGluZyBQUkVGSVggYW5kCiAgICAgU1VGRklYIHdpdGggYXBwcm9wcmlhdGUgc2Vw YXJhdG9yLiAgSWYgUFJFRklYIG9yIFNVRkZJWCBpcyBOVUxMIG9yIGVtcHR5LCB0aGVuCiAgICAg c2ltcGx5IGNvcHkgdGhlIFNVRkZJWCBvciBQUkVGSVgsIHJlc3BlY3RpdmVseS4gIElmIE9CUyBp cyBub24tbnVsbCwKLUBAIC04OTQ4LDE0ICs5NDM4LDc1IEBAIHN0YXRpYyBjaGFyICoKK0BAIC04 OTQ4LDE0ICs5MzgyLDc1IEBAIHN0YXRpYyBjaGFyICoKICBkd2FyZjJfbGlua2FnZV9uYW1lIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgewogICAgc3RydWN0 IGF0dHJpYnV0ZSAqYXR0cjsKICsgIGNoYXIgKm5hbWU7CiArCiArICBuYW1lID0gZHdhcmYyX25h bWUgKGRpZSwgY3UpOwotKworIAorLSAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX01J UFNfbGlua2FnZV9uYW1lLCBjdSk7CistICBpZiAoYXR0ciAmJiBEV19TVFJJTkcgKGF0dHIpKQor LSAgICByZXR1cm4gRFdfU1RSSU5HIChhdHRyKTsKKy0gIHJldHVybiBkd2FyZjJfbmFtZSAoZGll LCBjdSk7CiArICAvKiBUaGVzZSBhcmUgdGhlIG9ubHkgbGFuZ3VhZ2VzIHdlIGtub3cgaG93IHRv IHF1YWxpZnkgbmFtZXMgaW4uICAqLwogKyAgaWYgKGN1LT5sYW5ndWFnZSAhPSBsYW5ndWFnZV9j cGx1cwogKyAgICAgICYmIGN1LT5sYW5ndWFnZSAhPSBsYW5ndWFnZV9qYXZhKQpAQCAtNjI1NSwx MSArNjAyOSw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiArCSAgJiYgZGllLT50 YWcgPT0gRFdfVEFHX3N1YnByb2dyYW0pCiArCXsKICsJICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IHJl YWRfdHlwZV9kaWUgKGRpZSwgY3UpOwotIAotLSAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERX X0FUX01JUFNfbGlua2FnZV9uYW1lLCBjdSk7Ci0tICBpZiAoYXR0ciAmJiBEV19TVFJJTkcgKGF0 dHIpKQotLSAgICByZXR1cm4gRFdfU1RSSU5HIChhdHRyKTsKLS0gIHJldHVybiBkd2FyZjJfbmFt ZSAoZGllLCBjdSk7CisrCiArCSAgY190eXBlX3ByaW50X2FyZ3MgKHR5cGUsIGJ1ZiwgMCwgY3Ut Pmxhbmd1YWdlKTsKICsKICsJICBpZiAoY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2phdmEpCkBA IC02MzAwLDU4ICs2MDcwLDMyIEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgCiAg c3RhdGljIGNoYXIgKgogIGR3YXJmMl9jYW5vbmljYWxpemVfbmFtZSAoY2hhciAqbmFtZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UsCi1AQCAtMTAxODEsMjYgKzEwNzMyLDM1IEBAIGR3YXJmMl9nZXRf cmVmX2RpZV9vZmZzZXQgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIpCitAQCAtMTAxODEsMTEgKzEw Njc2LDEyIEBAIGR3YXJmMl9nZXRfcmVmX2RpZV9vZmZzZXQgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0 dHIpCiAgICByZXR1cm4gMDsKICB9CiAgCiAtLyogUmV0dXJuIHRoZSBjb25zdGFudCB2YWx1ZSBo ZWxkIGJ5IHRoZSBnaXZlbiBhdHRyaWJ1dGUuICBSZXR1cm4gLTEKLS0gICBpZiB0aGUgdmFsdWUg aGVsZCBieSB0aGUgYXR0cmlidXRlIGlzIG5vdCBjb25zdGFudC4gICovCi0rLyogKCp2YWxfcmV0 dXJuKSBpcyBmaWxsZWQgb25seSBpZiByZXR1cm5pbmcgZHdhcmYyX2F0dHJfY29uc3QuICAqLwor Ky8qIFJldHVybiB0aGUgY29uc3RhbnQgdmFsdWUgaGVsZCBieSB0aGUgZ2l2ZW4gYXR0cmlidXRl LiAgUmV0dXJuIERFRkFVTFRfVkFMVUUKKyAgICBpZiB0aGUgdmFsdWUgaGVsZCBieSB0aGUgYXR0 cmlidXRlIGlzIG5vdCBjb25zdGFudC4gICovCiAgCiAtc3RhdGljIGludAogLWR3YXJmMl9nZXRf YXR0cl9jb25zdGFudF92YWx1ZSAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgaW50IGRlZmF1bHRf dmFsdWUpCi0rc3RhdGljIGVudW0gZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUKLStnZXRfYXR0cl9j b25zdGFudF92YWx1ZSAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgaW50ICp2YWxfcmV0dXJuKQor K3N0YXRpYyBDT1JFX0FERFIKKytkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKHN0cnVj dCBhdHRyaWJ1dGUgKmF0dHIsIENPUkVfQUREUiBkZWZhdWx0X3ZhbHVlLAorKwkJCQlzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKICB7Ci0rICBpZiAoYXR0ciA9PSBOVUxMKQotKyAgICByZXR1cm4gZHdh cmYyX2F0dHJfdW5rbm93bjsKICAgIGlmIChhdHRyLT5mb3JtID09IERXX0ZPUk1fc2RhdGEpCi0t ICAgIHJldHVybiBEV19TTkQgKGF0dHIpOwotLSAgZWxzZSBpZiAoYXR0ci0+Zm9ybSA9PSBEV19G T1JNX3VkYXRhCi0tICAgICAgICAgICB8fCBhdHRyLT5mb3JtID09IERXX0ZPUk1fZGF0YTEKLS0g ICAgICAgICAgIHx8IGF0dHItPmZvcm0gPT0gRFdfRk9STV9kYXRhMgotLSAgICAgICAgICAgfHwg YXR0ci0+Zm9ybSA9PSBEV19GT1JNX2RhdGE0Ci0tICAgICAgICAgICB8fCBhdHRyLT5mb3JtID09 IERXX0ZPUk1fZGF0YTgpCi0tICAgIHJldHVybiBEV19VTlNORCAoYXR0cik7Ci0tICBlbHNlCisg ICAgIHJldHVybiBEV19TTkQgKGF0dHIpOworQEAgLTEwMTk1LDYgKzEwNjkxLDggQEAgZHdhcmYy X2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBpbnQgZGVm YXVsdF92YWx1ZSkKKyAgICAgICAgICAgIHx8IGF0dHItPmZvcm0gPT0gRFdfRk9STV9kYXRhNAor ICAgICAgICAgICAgfHwgYXR0ci0+Zm9ybSA9PSBEV19GT1JNX2RhdGE4KQorICAgICByZXR1cm4g RFdfVU5TTkQgKGF0dHIpOworKyAgZWxzZSBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkK KysgICAgcmV0dXJuIGRlY29kZV9sb2NkZXNjIChEV19CTE9DSyAoYXR0ciksIGN1KTsKKyAgIGVs c2UKICAgICAgewotLSAgICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywgXygiQXR0 cmlidXRlIHZhbHVlIGlzIG5vdCBhIGNvbnN0YW50ICglcykiKSwKLS0gICAgICAgICAgICAgICAg IGR3YXJmX2Zvcm1fbmFtZSAoYXR0ci0+Zm9ybSkpOwotLSAgICAgIHJldHVybiBkZWZhdWx0X3Zh bHVlOwotKyAgICAgICp2YWxfcmV0dXJuID0gRFdfU05EIChhdHRyKTsKLSsgICAgICByZXR1cm4g ZHdhcmYyX2F0dHJfY29uc3Q7Ci0gICAgIH0KLSsgIGlmIChhdHRyLT5mb3JtID09IERXX0ZPUk1f dWRhdGEKLSsgICAgICB8fCBhdHRyLT5mb3JtID09IERXX0ZPUk1fZGF0YTEKLSsgICAgICB8fCBh dHRyLT5mb3JtID09IERXX0ZPUk1fZGF0YTIKLSsgICAgICB8fCBhdHRyLT5mb3JtID09IERXX0ZP Uk1fZGF0YTQKLSsgICAgICB8fCBhdHRyLT5mb3JtID09IERXX0ZPUk1fZGF0YTgpCi0rICAgIHsK LSsgICAgICAqdmFsX3JldHVybiA9IERXX1VOU05EIChhdHRyKTsKLSsgICAgICByZXR1cm4gZHdh cmYyX2F0dHJfY29uc3Q7Ci0rICAgIH0KLSsgIGlmIChhdHRyLT5mb3JtID09IERXX0ZPUk1fYmxv Y2sKLSsgICAgICB8fCBhdHRyLT5mb3JtID09IERXX0ZPUk1fYmxvY2sxCi0rICAgICAgfHwgYXR0 ci0+Zm9ybSA9PSBEV19GT1JNX2Jsb2NrMgotKyAgICAgIHx8IGF0dHItPmZvcm0gPT0gRFdfRk9S TV9ibG9jazQpCi0rICAgIHJldHVybiBkd2FyZjJfYXR0cl9ibG9jazsKLSsgIGNvbXBsYWludCAo JnN5bWZpbGVfY29tcGxhaW50cywgXygiQXR0cmlidXRlIHZhbHVlIGlzIG5vdCBhIGNvbnN0YW50 ICglcykiKSwKLSsgICAgICAgICAgICAgZHdhcmZfZm9ybV9uYW1lIChhdHRyLT5mb3JtKSk7Ci0r ICByZXR1cm4gZHdhcmYyX2F0dHJfdW5rbm93bjsKLSB9Ci0gCi0gLyogVEhJU19DVSBoYXMgYSBy ZWZlcmVuY2UgdG8gUEVSX0NVLiAgSWYgbmVjZXNzYXJ5LCBsb2FkIHRoZSBuZXcgY29tcGlsYXRp b24KLUBAIC0xMDk5MCw4ICsxMTU1MCw2IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBs aW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCisgICAgICAgY29tcGxhaW50ICgm c3ltZmlsZV9jb21wbGFpbnRzLCBfKCJBdHRyaWJ1dGUgdmFsdWUgaXMgbm90IGEgY29uc3RhbnQg KCVzKSIpLAorQEAgLTEwOTkwLDggKzExNDg4LDYgQEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3Ry dWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9mZnNldCwKICB7CiAgICBnZGJfYnl0 ZSAqbWFjX3B0ciwgKm1hY19lbmQ7CiAgICBzdHJ1Y3QgbWFjcm9fc291cmNlX2ZpbGUgKmN1cnJl bnRfZmlsZSA9IDA7CkBAIC02MzYwLDcgKzYxMDQsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJi IDEwMDY0NAogIAogICAgaWYgKGR3YXJmMl9wZXJfb2JqZmlsZS0+bWFjaW5mby5idWZmZXIgPT0g TlVMTCkKICAgICAgewotQEAgLTEwOTk5LDI5ICsxMTU1NywxOSBAQCBkd2FyZl9kZWNvZGVfbWFj cm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorQEAgLTEw OTk5LDI5ICsxMTQ5NSwxOSBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFk ZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogICAgICAgIHJldHVybjsKICAgICAgfQogIApA QCAtNjM5NSw3ICs2MTM5LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgICAg ICAgIH0KICAKICAgICAgICBtYWNpbmZvX3R5cGUgPSByZWFkXzFfYnl0ZSAoYWJmZCwgbWFjX3B0 cik7Ci1AQCAtMTEwMzIsOTIgKzExNTgwLDcgQEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0 IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9mZnNldCwKK0BAIC0xMTAzMiw5MiArMTE1 MTgsNyBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNp Z25lZCBpbnQgb2Zmc2V0LAogICAgICAgICAgICAvKiBBIHplcm8gbWFjaW5mbyB0eXBlIGluZGlj YXRlcyB0aGUgZW5kIG9mIHRoZSBtYWNybwogICAgICAgICAgICAgICBpbmZvcm1hdGlvbi4gICov CiAgICAgICAgICBjYXNlIDA6CkBAIC02NDg5LDcgKzYyMzMsNyBAQCBpbmRleCA0NDViYWI4Li41 MTY5OWJiIDEwMDY0NAogIAogICAgICAgICAgY2FzZSBEV19NQUNJTkZPX2RlZmluZToKICAgICAg ICAgIGNhc2UgRFdfTUFDSU5GT191bmRlZjoKLUBAIC0xMTEzMiwzMSArMTE1OTUsMTkgQEAgZHdh cmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9m ZnNldCwKK0BAIC0xMTEzMiwzMSArMTE1MzMsMTkgQEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3Ry dWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9mZnNldCwKICAgICAgICAgICAgICBt YWNfcHRyICs9IGJ5dGVzX3JlYWQ7CiAgCiAgICAgICAgICAgICAgaWYgKCEgY3VycmVudF9maWxl KQpAQCAtNjUzMiw3ICs2Mjc2LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAg ICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAKLUBAIC0xMTE3MCwyMiArMTE2MjEsOSBA QCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBp bnQgb2Zmc2V0LAorQEAgLTExMTcwLDIyICsxMTU1OSw5IEBAIGR3YXJmX2RlY29kZV9tYWNyb3Mg KHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgICAg ICAgZmlsZSA9IHJlYWRfdW5zaWduZWRfbGViMTI4IChhYmZkLCBtYWNfcHRyLCAmYnl0ZXNfcmVh ZCk7CiAgICAgICAgICAgICAgbWFjX3B0ciArPSBieXRlc19yZWFkOwogIApAQCAtNjU1OCw3ICs2 MzAyLDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgICAgICAgICAgfQogICAg ICAgICAgICBicmVhazsKICAKLUBAIC0xMTIzOSw3ICsxMTY3Nyw3IEBAIGR3YXJmX2RlY29kZV9t YWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCitAQCAt MTEyMzksNyArMTE2MTUsNyBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFk ZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogICAgICAgICAgICB9CiAgICAgICAgICAgIGJy ZWFrOwogICAgICAgICAgfQpAQCAtNjU2NywxNiArNjMxMSw3IEBAIGluZGV4IDQ0NWJhYjguLjUx Njk5YmIgMTAwNjQ0CiAgfQogIAogIC8qIENoZWNrIGlmIHRoZSBhdHRyaWJ1dGUncyBmb3JtIGlz IGEgRFdfRk9STV9ibG9jayoKLUBAIC0xMTI3Miw3ICsxMTcxMCw3IEBAIGF0dHJfZm9ybV9pc19z ZWN0aW9uX29mZnNldCAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0cikKLSAKLSAvKiBSZXR1cm4gbm9u LXplcm8gaWYgQVRUUidzIHZhbHVlIGZhbGxzIGluIHRoZSAnY29uc3RhbnQnIGNsYXNzLCBvcgot ICAgIHplcm8gb3RoZXJ3aXNlLiAgV2hlbiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSwgeW91 IGNhbiBhcHBseQotLSAgIGR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92YWx1ZSB0byBpdC4KLSsg ICBnZXRfYXR0cl9jb25zdGFudF92YWx1ZSB0byBpdC4KLSAKLSAgICBIb3dldmVyLCBub3RlIHRo YXQgZm9yIHNvbWUgYXR0cmlidXRlcyB5b3UgbXVzdCBjaGVjawotICAgIGF0dHJfZm9ybV9pc19z ZWN0aW9uX29mZnNldCBiZWZvcmUgdXNpbmcgdGhpcyB0ZXN0LiAgRFdfRk9STV9kYXRhNAotQEAg LTExMjk5LDYgKzExNzM3LDM0IEBAIGF0dHJfZm9ybV9pc19jb25zdGFudCAoc3RydWN0IGF0dHJp YnV0ZSAqYXR0cikKK0BAIC0xMTI5OSw2ICsxMTY3NSwzNCBAQCBhdHRyX2Zvcm1faXNfY29uc3Rh bnQgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIpCiAgICAgIH0KICB9CiAgCkBAIC02NjExLDcgKzYz NDYsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIHN0YXRpYyB2b2lkCiAgZHdh cmYyX3N5bWJvbF9tYXJrX2NvbXB1dGVkIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qg c3ltYm9sICpzeW0sCiAgCQkJICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLUBAIC0xMTMyOCwz NSArMTE3OTQsMjUgQEAgZHdhcmYyX3N5bWJvbF9tYXJrX2NvbXB1dGVkIChzdHJ1Y3QgYXR0cmli dXRlICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCitAQCAtMTEzMjgsMzUgKzExNzMyLDI1IEBA IGR3YXJmMl9zeW1ib2xfbWFya19jb21wdXRlZCAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3Ry dWN0IHN5bWJvbCAqc3ltLAogICAgICAgIFNZTUJPTF9DT01QVVRFRF9PUFMgKHN5bSkgPSAmZHdh cmYyX2xvY2xpc3RfZnVuY3M7CiAgICAgICAgU1lNQk9MX0xPQ0FUSU9OX0JBVE9OIChzeW0pID0g YmF0b247CiAgICAgIH0KQEAgLTY2NjIsNyArNjM5Nyw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5 YmIgMTAwNjQ0CiAgICAgIH0KICB9CiAgCi1AQCAtMTE2NDQsNiArMTIxMDAsMzEgQEAgb2Zmc2V0 X2FuZF90eXBlX2VxIChjb25zdCB2b2lkICppdGVtX2xocywgY29uc3Qgdm9pZCAqaXRlbV9yaHMp CitAQCAtMTE2NDQsNiArMTIwMzgsMzEgQEAgb2Zmc2V0X2FuZF90eXBlX2VxIChjb25zdCB2b2lk ICppdGVtX2xocywgY29uc3Qgdm9pZCAqaXRlbV9yaHMpCiAgICByZXR1cm4gb2ZzX2xocy0+b2Zm c2V0ID09IG9mc19yaHMtPm9mZnNldDsKICB9CiAgCkBAIC02Njk0LDcgKzY0MjksNyBAQCBpbmRl eCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIC8qIFNldCB0aGUgdHlwZSBhc3NvY2lhdGVkIHdp dGggRElFIHRvIFRZUEUuICBTYXZlIGl0IGluIENVJ3MgaGFzaAogICAgIHRhYmxlIGlmIG5lY2Vz c2FyeS4gIEZvciBjb252ZW5pZW5jZSwgcmV0dXJuIFRZUEUuICAqLwogIAotQEAgLTExNjUyLDYg KzEyMTMzLDggQEAgc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5 cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTExNjUyLDYgKzEyMDcxLDggQEAg c2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQogIHsKICAgIHN0cnVjdCBkd2FyZjJfb2Zmc2V0X2FuZF90eXBl ICoqc2xvdCwgb2ZzOwogIApAQCAtNjcwMyw3ICs2NDM4LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2 OTliYiAxMDA2NDQKICAgIGlmIChjdS0+dHlwZV9oYXNoID09IE5VTEwpCiAgICAgIHsKICAgICAg ICBnZGJfYXNzZXJ0IChjdS0+cGVyX2N1ICE9IE5VTEwpOwotQEAgLTExNzk0LDIzICsxMjI3Nywx MyBAQCBzaG93X2R3YXJmMl9jbWQgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKK0BAIC0xMTc5 NCwyMyArMTIyMTUsMTMgQEAgc2hvd19kd2FyZjJfY21kIChjaGFyICphcmdzLCBpbnQgZnJvbV90 dHkpCiAgICBjbWRfc2hvd19saXN0IChzaG93X2R3YXJmMl9jbWRsaXN0LCBmcm9tX3R0eSwgIiIp OwogIH0KICAKQEAgLTY3MzEsNyArNjQ2Niw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAw NjQ0CiAgfQogIAogIC8qIG11bm1hcCBkZWJ1ZyBzZWN0aW9ucyBmb3IgT0JKRklMRSwgaWYgbmVj ZXNzYXJ5LiAgKi8KLUBAIC0xMTgxOSwxNSArMTIyOTIsMTUgQEAgc3RhdGljIHZvaWQKK0BAIC0x MTgxOSwxNSArMTIyMzAsMTUgQEAgc3RhdGljIHZvaWQKICBkd2FyZjJfcGVyX29iamZpbGVfY2xl YW51cCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHZvaWQgKmQpCiAgewogICAgc3RydWN0IGR3 YXJmMl9wZXJfb2JqZmlsZSAqZGF0YSA9IGQ7CkBAIC02NzU2LDcgKzY0OTEsNyBAQCBpbmRleCA0 NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIH0KICAKICB2b2lkIF9pbml0aWFsaXplX2R3YXJmMl9y ZWFkICh2b2lkKTsKLUBAIC0xMTgzNSw2ICsxMjMwOCw3IEBAIHZvaWQgX2luaXRpYWxpemVfZHdh cmYyX3JlYWQgKHZvaWQpOworQEAgLTExODM1LDYgKzEyMjQ2LDcgQEAgdm9pZCBfaW5pdGlhbGl6 ZV9kd2FyZjJfcmVhZCAodm9pZCk7CiAgdm9pZAogIF9pbml0aWFsaXplX2R3YXJmMl9yZWFkICh2 b2lkKQogIHsKQEAgLTEwNzE1LDcgKzEwNDUwLDcgQEAgaW5kZXggYTg0MDAzZi4uOTI0YzFjNSAx MDA2NDQKICAgIGRlZmF1bHRfc3ltZmlsZV9vZmZzZXRzLAkvKiBzeW1fb2Zmc2V0czogZHVtbXkg RklYTUUgdGlsIGltcGxlbSBzeW0gcmVsb2MgKi8KICAgIGRlZmF1bHRfc3ltZmlsZV9zZWdtZW50 cywJLyogc3ltX3NlZ21lbnRzOiBHZXQgc2VnbWVudCBpbmZvcm1hdGlvbiBmcm9tCiBkaWZmIC0t Z2l0IGEvZ2RiL29iamZpbGVzLmMgYi9nZGIvb2JqZmlsZXMuYwotaW5kZXggNDNjNTE3NC4uNWFk NGY4ZCAxMDA2NDQKK2luZGV4IDU4NmY1ZDAuLmE0YmY3MTkgMTAwNjQ0CiAtLS0gYS9nZGIvb2Jq ZmlsZXMuYwogKysrIGIvZ2RiL29iamZpbGVzLmMKIEBAIC00MzIsMTAgKzQzMiw5IEBAIGZyZWVf b2JqZmlsZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCkBAIC0xNzUwMSwxMCArMTcyMzYsMTAg QEAgaW5kZXggY2MzMzE5YS4uZDBkNDcwMiAxMDA2NDQKICAgICAgICBpZiAoKGdkYl9vdXRwdXRf c3ltID09IE5VTEwpIHx8IChnZGJfb3V0cHV0X2xlbl9zeW0gPT0gTlVMTCkpCiAgCXJldCA9IC0x OwogZGlmZiAtLWdpdCBhL2dkYi9zb2xpYi1kYXJ3aW4uYyBiL2dkYi9zb2xpYi1kYXJ3aW4uYwot aW5kZXggOTdjYzI5Yy4uZjY1NTk1NiAxMDA2NDQKK2luZGV4IDhiOTZhNmYuLjk0MjhkOTIgMTAw NjQ0CiAtLS0gYS9nZGIvc29saWItZGFyd2luLmMKICsrKyBiL2dkYi9zb2xpYi1kYXJ3aW4uYwot QEAgLTQwMSw3ICs0MDEsNiBAQCBkYXJ3aW5fcmVsb2NhdGVfc2VjdGlvbl9hZGRyZXNzZXMgKHN0 cnVjdCBzb19saXN0ICpzbywKK0BAIC0zODksNyArMzg5LDYgQEAgZGFyd2luX3JlbG9jYXRlX3Nl Y3Rpb25fYWRkcmVzc2VzIChzdHJ1Y3Qgc29fbGlzdCAqc28sCiAgc3RhdGljIHN0cnVjdCBzeW1i b2wgKgogIGRhcndpbl9sb29rdXBfbGliX3N5bWJvbCAoY29uc3Qgc3RydWN0IG9iamZpbGUgKm9i amZpbGUsCiAgCQkJICBjb25zdCBjaGFyICpuYW1lLApAQCAtMTc1NTcsNyArMTcyOTIsNyBAQCBp bmRleCA2Y2ZhYTg1Li42OGFhZGMwIDEwMDY0NAogIAogIGV4dGVybiBpbml0aWFsaXplX2ZpbGVf ZnR5cGUgX2luaXRpYWxpemVfc3ZyNF9zb2xpYjsgLyogLVdtaXNzaW5nLXByb3RvdHlwZXMgKi8K IGRpZmYgLS1naXQgYS9nZGIvc29saWIuYyBiL2dkYi9zb2xpYi5jCi1pbmRleCA1NjRhNTVjLi44 Yzc1YjgxIDEwMDY0NAoraW5kZXggYWFkMmQ1OS4uZGVmMDJmOCAxMDA2NDQKIC0tLSBhL2dkYi9z b2xpYi5jCiArKysgYi9nZGIvc29saWIuYwogQEAgLTEwNjYsMTMgKzEwNjYsMTIgQEAgc2hvd19h dXRvX3NvbGliX2FkZCAoc3RydWN0IHVpX2ZpbGUgKmZpbGUsIGludCBmcm9tX3R0eSwKQEAgLTE3 Njk5LDcgKzE3NDM0LDcgQEAgaW5kZXggMWMzNzgwMS4uNTk0ZWIxNiAxMDA2NDQKICAJICBwcmlu dF92YXJpYWJsZV9hbmRfdmFsdWUgKE5VTEwsIHN5bSwgZnJhbWUsIHN0cmVhbSwgNCAqIG51bV90 YWJzKTsKICAJICBicmVhazsKIGRpZmYgLS1naXQgYS9nZGIvc3ltZmlsZS5jIGIvZ2RiL3N5bWZp bGUuYwotaW5kZXggNGJkYWI5MS4uZThjMDIzNiAxMDA2NDQKK2luZGV4IGMxODJmYWEuLjhiOTcx ZmIgMTAwNjQ0CiAtLS0gYS9nZGIvc3ltZmlsZS5jCiArKysgYi9nZGIvc3ltZmlsZS5jCiBAQCAt NTIsNyArNTIsNiBAQApAQCAtMTc3OTMsNyArMTc1MjgsNyBAQCBpbmRleCA0YmRhYjkxLi5lOGMw MjM2IDEwMDY0NAogICAgaWYgKGZyb21fdHR5KQogICAgICBwcmludGZfdW5maWx0ZXJlZCAoXygi Tm8gc3ltYm9sIGZpbGUgbm93LlxuIikpOwogIH0KLUBAIC0yMzQ2LDcgKzIzNjksNyBAQCByZXJl YWRfc3ltYm9scyAodm9pZCkKK0BAIC0yMzQ5LDcgKzIzNzIsNyBAQCByZXJlYWRfc3ltYm9scyAo dm9pZCkKICAKICAJICAgICAgLyogUmVtb3ZlIGFueSByZWZlcmVuY2VzIHRvIHRoaXMgb2JqZmls ZSBpbiB0aGUgZ2xvYmFsCiAgCQkgdmFsdWUgbGlzdHMuICAqLwpAQCAtMTc4MDIsNyArMTc1Mzcs NyBAQCBpbmRleCA0YmRhYjkxLi5lOGMwMjM2IDEwMDY0NAogIAogIAkgICAgICAvKiBOdWtlIGFs bCB0aGUgc3RhdGUgdGhhdCB3ZSB3aWxsIHJlLXJlYWQuICBNdWNoIG9mIHRoZSBmb2xsb3dpbmcK ICAJICAgICAgICAgY29kZSB3aGljaCBzZXRzIHRoaW5ncyB0byBOVUxMIHJlYWxseSBpcyBuZWNl c3NhcnkgdG8gdGVsbAotQEAgLTI0MzQsMTMgKzI0NTcsMTUgQEAgcmVyZWFkX3N5bWJvbHMgKHZv aWQpCitAQCAtMjQzNywxMyArMjQ2MCwxNSBAQCByZXJlYWRfc3ltYm9scyAodm9pZCkKICAJICAg ICAgICAgemVybyBpcyBPSyBzaW5jZSBkYnhyZWFkLmMgYWxzbyBkb2VzIHdoYXQgaXQgbmVlZHMg dG8gZG8gaWYKICAJICAgICAgICAgb2JqZmlsZS0+Z2xvYmFsX3BzeW1ib2xzLnNpemUgaXMgMC4g ICovCiAgCSAgICAgICgqb2JqZmlsZS0+c2YtPnN5bV9yZWFkKSAob2JqZmlsZSwgMCk7CkBAIC0x NzgxOSw3ICsxNzU1NCw3IEBAIGluZGV4IDRiZGFiOTEuLmU4YzAyMzYgMTAwNjQ0CiAgCSAgICAg IC8qIFdlJ3JlIGRvbmUgcmVhZGluZyB0aGUgc3ltYm9sIGZpbGU7IGZpbmlzaCBvZmYgY29tcGxh aW50cy4gICovCiAgCSAgICAgIGNsZWFyX2NvbXBsYWludHMgKCZzeW1maWxlX2NvbXBsYWludHMs IDAsIDEpOwogIAotQEAgLTI0NDksNiArMjQ3NCw5IEBAIHJlcmVhZF9zeW1ib2xzICh2b2lkKQor QEAgLTI0NTIsNiArMjQ3Nyw5IEBAIHJlcmVhZF9zeW1ib2xzICh2b2lkKQogIAogIAkgICAgICBy ZWluaXRfZnJhbWVfY2FjaGUgKCk7CiAgCkBAIC0xNzgyOSw3ICsxNzU2NCw3IEBAIGluZGV4IDRi ZGFiOTEuLmU4YzAyMzYgMTAwNjQ0CiAgCSAgICAgIC8qIERpc2NhcmQgY2xlYW51cHMgYXMgc3lt Ym9sIHJlYWRpbmcgd2FzIHN1Y2Nlc3NmdWwuICAqLwogIAkgICAgICBkaXNjYXJkX2NsZWFudXBz IChvbGRfY2xlYW51cHMpOwogIAotQEAgLTI3MzgsNyArMjc2Niw3IEBAIGFsbG9jYXRlX3N5bXRh YiAoY2hhciAqZmlsZW5hbWUsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorQEAgLTI3NDEsNyAr Mjc2OSw3IEBAIGFsbG9jYXRlX3N5bXRhYiAoY2hhciAqZmlsZW5hbWUsIHN0cnVjdCBvYmpmaWxl ICpvYmpmaWxlKQogIH0KICAKICBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKgpAQCAtMTc4MzgsNyAr MTc1NzMsNyBAQCBpbmRleCA0YmRhYjkxLi5lOGMwMjM2IDEwMDY0NAogIHsKICAgIHN0cnVjdCBw YXJ0aWFsX3N5bXRhYiAqcHN5bXRhYjsKICAKLUBAIC0yODI5LDEwICsyODU3LDYgQEAgY2xlYXJf c3ltdGFiX3VzZXJzICh2b2lkKQorQEAgLTI4MzIsMTAgKzI4NjAsNiBAQCBjbGVhcl9zeW10YWJf dXNlcnMgKHZvaWQpCiAgICAgICBiZXR3ZWVuIGV4cHJlc3Npb25zIGFuZCB3aGljaCBvdWdodCB0 byBiZSByZXNldCBlYWNoIHRpbWUuICAqLwogICAgZXhwcmVzc2lvbl9jb250ZXh0X2Jsb2NrID0g TlVMTDsKICAgIGlubmVybW9zdF9ibG9jayA9IE5VTEw7CkBAIC0xNzg0OSw3ICsxNzU4NCw3IEBA IGluZGV4IDRiZGFiOTEuLmU4YzAyMzYgMTAwNjQ0CiAgfQogIAogIHN0YXRpYyB2b2lkCi1AQCAt MzA1Miw3ICszMDc2LDggQEAgYWdhaW4yOgorQEAgLTMwNTUsNyArMzA3OSw4IEBAIGFnYWluMjoK ICAKICBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKgogIHN0YXJ0X3BzeW10YWJfY29tbW9uIChzdHJ1 Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKQEAgLTI2NTczLDY4ICsyNjMwOCwzIEBAIGluZGV4IGM1NmFi ODYuLmRhY2Y5MTMgMTAwNjQ0CiAgICB4Y29mZl9zeW1maWxlX2ZpbmlzaCwJCS8qIHN5bV9maW5p c2g6IGZpbmlzaGVkIHdpdGggZmlsZSwgY2xlYW51cCAqLwogICAgeGNvZmZfc3ltZmlsZV9vZmZz ZXRzLAkvKiBzeW1fb2Zmc2V0czogeGxhdGUgb2Zmc2V0cyBleHQtPmludCBmb3JtICovCiAgICBk ZWZhdWx0X3N5bWZpbGVfc2VnbWVudHMsCS8qIHN5bV9zZWdtZW50czogR2V0IHNlZ21lbnQgaW5m b3JtYXRpb24gZnJvbQotZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29mZi9nbzMyZXhlLmggYi9pbmNs dWRlL2NvZmYvZ28zMmV4ZS5oCi1pbmRleCBjODVkYTBjLi4yMjQ4ZmYyIDEwMDY0NAotLS0tIGEv aW5jbHVkZS9jb2ZmL2dvMzJleGUuaAotKysrIGIvaW5jbHVkZS9jb2ZmL2dvMzJleGUuaAotQEAg LTE2LDExICsxNiw5IEBACi0gICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3Jp dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAgICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp biBTdHJlZXQgLSBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuICAqLwot IAotLSNkZWZpbmUgU1RVQlNJWkUgMjA0OAotLQotIHN0cnVjdCBleHRlcm5hbF9maWxlaGRyX2dv MzJfZXhlCi0gICB7Ci0tICAgIGNoYXIgc3R1YltTVFVCU0laRV07LyogdGhlIHN0dWIgdG8gbG9h ZCB0aGUgaW1hZ2UJKi8KLSsgICAgY2hhciBzdHViW0dPMzJfU1RVQlNJWkVdOyAvKiB0aGUgc3R1 YiB0byBsb2FkIHRoZSBpbWFnZSAqLwotIAkJCS8qIHRoZSBzdGFuZGFyZCBDT0ZGIGhlYWRlciAg ICAgKi8KLSAgICAgY2hhciBmX21hZ2ljWzJdOwkvKiBtYWdpYyBudW1iZXIJCQkqLwotICAgICBj aGFyIGZfbnNjbnNbMl07CS8qIG51bWJlciBvZiBzZWN0aW9ucwkJKi8KLUBAIC0zNCw0ICszMiw0 IEBAIHN0cnVjdCBleHRlcm5hbF9maWxlaGRyX2dvMzJfZXhlCi0gI3VuZGVmIEZJTEhEUgotICNk ZWZpbmUJRklMSERSCXN0cnVjdCBleHRlcm5hbF9maWxlaGRyX2dvMzJfZXhlCi0gI3VuZGVmIEZJ TEhTWgotLSNkZWZpbmUJRklMSFNaCVNUVUJTSVpFKzIwCi0rI2RlZmluZQlGSUxIU1oJR08zMl9T VFVCU0laRSsyMAotZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29mZi9pbnRlcm5hbC5oIGIvaW5jbHVk ZS9jb2ZmL2ludGVybmFsLmgKLWluZGV4IGM1ZDZjZDEuLjM2ZDAzZWIgMTAwNjQ0Ci0tLS0gYS9p bmNsdWRlL2NvZmYvaW50ZXJuYWwuaAotKysrIGIvaW5jbHVkZS9jb2ZmL2ludGVybmFsLmgKLUBA IC01OCwxMCArNTgsMTkgQEAgc3RydWN0IGludGVybmFsX2V4dHJhX3BlX2ZpbGVoZHIKLSAgIGJm ZF92bWEgIG50X3NpZ25hdHVyZTsgICAJLyogcmVxdWlyZWQgTlQgc2lnbmF0dXJlLCAweDQ1NTAg Ki8gCi0gfTsKLSAKLSsjZGVmaW5lIEdPMzJfU1RVQlNJWkUgMjA0OAotKwotIHN0cnVjdCBpbnRl cm5hbF9maWxlaGRyCi0gewotICAgc3RydWN0IGludGVybmFsX2V4dHJhX3BlX2ZpbGVoZHIgcGU7 Ci0gCi0rICAvKiBjb2ZmLXN0Z28zMiBFWEUgc3R1YiBoZWFkZXIgYmVmb3JlIEJGRCB0ZGF0YSBo YXMgYmVlbiBhbGxvY2F0ZWQuCi0rICAgICBJdHMgZGF0YSBpcyBrZXB0IGluIElOVEVSTkFMX0ZJ TEVIRFIuR08zMlNUVUIgYWZ0ZXJ3YXJkcy4KLSsgICAgIAotKyAgICAgRl9HTzMyU1RVQiBpcyBz ZXQgaWZmIGdvMzJzdHViIGNvbnRhaW5zIGEgdmFsaWQgZGF0YS4gIEFydGlmaWNhbCBoZWFkZXJz Ci0rICAgICBjcmVhdGVkIGluIEJGRCBoYXZlIG5vIHByZS1zZXQgZ28zMnN0dWIuICAqLwotKyAg Y2hhciBnbzMyc3R1YltHTzMyX1NUVUJTSVpFXTsKLSsKLSAgIC8qIFN0YW5kYXJkIGNvZmYgaW50 ZXJuYWwgaW5mby4gICovCi0gICB1bnNpZ25lZCBzaG9ydCBmX21hZ2ljOwkvKiBtYWdpYyBudW1i ZXIJCQkqLwotICAgdW5zaWduZWQgc2hvcnQgZl9uc2NuczsJLyogbnVtYmVyIG9mIHNlY3Rpb25z CQkqLwotQEAgLTg0LDcgKzkzLDggQEAgc3RydWN0IGludGVybmFsX2ZpbGVoZHIKLSAgCUZfQVIz MlcJCWZpbGUgaXMgMzItYml0IGJpZy1lbmRpYW4KLSAgCUZfRFlOTE9BRAlycy82MDAwIGFpeDog ZHluYW1pY2FsbHkgbG9hZGFibGUgdy9pbXBvcnRzICYgZXhwb3J0cwotICAJRl9TSFJPQkoJcnMv NjAwMCBhaXg6IGZpbGUgaXMgYSBzaGFyZWQgb2JqZWN0Ci0tICAgICAgICBGX0RMTCAgICAgICAg ICAgUEUgZm9ybWF0IERMTC4gICovCi0rCUZfRExMICAgICAgICAgICBQRSBmb3JtYXQgRExMCi0r CUZfR08zMlNUVUIgICAgICBGaWVsZCBnbzMyc3R1YiBjb250YWlucyB2YWxpZCBkYXRhLiAgKi8K LSAKLSAjZGVmaW5lCUZfUkVMRkxHCSgweDAwMDEpCi0gI2RlZmluZQlGX0VYRUMJCSgweDAwMDIp Ci1AQCAtOTYsNiArMTA2LDcgQEAgc3RydWN0IGludGVybmFsX2ZpbGVoZHIKLSAjZGVmaW5lCUZf RFlOTE9BRAkoMHgxMDAwKQotICNkZWZpbmUJRl9TSFJPQkoJKDB4MjAwMCkKLSAjZGVmaW5lIEZf RExMICAgICAgICAgICAoMHgyMDAwKQotKyNkZWZpbmUgRl9HTzMyU1RVQiAgICAgICgweDQwMDAp Ci0gCi0gLyogRXh0cmEgc3RydWN0dXJlIHdoaWNoIGlzIHVzZWQgaW4gdGhlIG9wdGlvbmFsIGhl YWRlci4gICovCi0gdHlwZWRlZiBzdHJ1Y3QgX0lNQUdFX0RBVEFfRElSRUNUT1JZIAoKZGlmZiAt LWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXggY2IyZjdhNC4uYzExNzFmMiAxMDA2NDQK LS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTEwLDE1ICsxMCwxNSBAQCBOYW1lOiBn ZGIlez9fd2l0aF9kZWJ1ZzotZGVidWd9CiAjIFNldCB2ZXJzaW9uIHRvIGNvbnRlbnRzIG9mIGdk Yi92ZXJzaW9uLmluLgogIyBOT1RFOiB0aGUgRlNGIGdkYiB2ZXJzaW9ucyBhcmUgbnVtYmVyZWQg Ti5NIGZvciBvZmZpY2lhbCByZWxlYXNlcywgbGlrZSA2LjMgCiAjIGFuZCwgc2luY2UgSmFudWFy eSAyMDA1LCBYLlkuWi5kYXRlIGZvciBkYWlseSBzbmFwc2hvdHMsIGxpa2UgNi4zLjUwLjIwMDUw MTEyICMgKGRhaWx5IHNuYXBzaG90IGZyb20gbWFpbGluZSksIG9yIDYuMy4wLjIwMDQwMTEyICho ZWFkIG9mIHRoZSByZWxlYXNlIGJyYW5jaCkuCi1WZXJzaW9uOiA2LjguNTAuMjAwOTA4MTAKK1Zl cnNpb246IDYuOC41MC4yMDA5MDgxMQogCiAjIFRoZSByZWxlYXNlIGFsd2F5cyBjb250YWlucyBh IGxlYWRpbmcgcmVzZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBhdCAxLgogIyBgdXBzdHJlYW0nIGlz IG5vdCBhIHBhcnQgb2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkgcnBtIGRlcGVuZGVuY2llcyBjb21w YXRpYmxlIGZvciB0aGUgdGVzdGluZy4KLVJlbGVhc2U6IDIlez9fd2l0aF91cHN0cmVhbToudXBz dHJlYW19JXs/ZGlzdH0KK1JlbGVhc2U6IDElez9fd2l0aF91cHN0cmVhbToudXBzdHJlYW19JXs/ ZGlzdH0KIAogTGljZW5zZTogR1BMdjMrCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJzCi1T b3VyY2U6IGZ0cDovL3NvdXJjZXdhcmUub3JnL3B1Yi9nZGIvcmVsZWFzZXMvZ2RiLSV7dmVyc2lv bn0udGFyLmJ6MgorU291cmNlOiBmdHA6Ly9zb3VyY2V3YXJlLm9yZy9wdWIvZ2RiL3NuYXBzaG90 cy9jdXJyZW50L2dkYi0le3ZlcnNpb259LnRhci5iejIKIEJ1aWxkcm9vdDogJShta3RlbXAgLXVk ICV7X3RtcHBhdGh9LyV7bmFtZX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9LVhYWFhYWCkKIFVSTDog aHR0cDovL2dudS5vcmcvc29mdHdhcmUvZ2RiLwogCkBAIC0yMTcsOCArMjE3LDggQEAgUGF0Y2gy Mjk6IGdkYi02LjMtYnoxNDA1MzItcHBjLXVud2luZGluZy10ZXN0LnBhdGNoCiAjIFRlc3RjYXNl IGZvciBleGVjKCkgZnJvbSB0aHJlYWRlZCBwcm9ncmFtIChCWiAyMDI2ODkpLgogUGF0Y2gyMzE6 IGdkYi02LjMtYnoyMDI2ODktZXhlYy1mcm9tLXB0aHJlYWQtdGVzdC5wYXRjaAogCi0jIEJhY2tw b3J0ZWQgcG9zdCBnZGItNi44LjUwLjIwMDkwODEwIHNuYXBzaG90IGZpeHVwcy4KLSNQYXRjaDIz MjogZ2RiLTYuOC41MC4yMDA5MDgxMC11cHN0cmVhbS5wYXRjaAorIyBCYWNrcG9ydGVkIHBvc3Qg Z2RiLTYuOC41MC4yMDA5MDgxMSBzbmFwc2hvdCBmaXh1cHMuCisjUGF0Y2gyMzI6IGdkYi02Ljgu NTAuMjAwOTA4MTEtdXBzdHJlYW0ucGF0Y2gKIAogIyBUZXN0Y2FzZSBmb3IgUFBDIFBvd2VyNi9E RlAgaW5zdHJ1Y3Rpb25zIGRpc2Fzc2VtYmx5IChCWiAyMzAwMDApLgogUGF0Y2gyMzQ6IGdkYi02 LjYtYnoyMzAwMDAtcG93ZXI2LWRpc2Fzc2VtYmx5LXRlc3QucGF0Y2gKQEAgLTgyNSw3ICs4MjUs MTIgQEAgZmkKICVlbmRpZgogCiAlY2hhbmdlbG9nCi0qIE1vbiBBdWcgMTAgMjAwOSBKYW4gS3Jh dG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA2LjguNTAuMjAwOTA4MTAtMQor KiBUdWUgQXVnIDExIDIwMDkgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+IC0gNi44LjUwLjIwMDkwODExLTEKKy0gU3VwcG9ydCBjb25zdGFudCBEV19BVF9kYXRhX21l bWJlcl9sb2NhdGlvbiBieSBHQ0MgUFIgZGVidWcvNDA2NTkgKEJaIDUxNTM3NykuCistIEZpeCAu c3BlYyBVUkwuCistIGFyY2hlci1qYW5rcmF0b2NodmlsLWZlZG9yYTEyIGNvbW1pdDogODFkZTNj NmFiYWU0ZjdlMzczOGFhOWJjYzBhYjJmODcyNWNjZTI1MgorCisqIE1vbiBBdWcgMTAgMjAwOSBK YW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA2LjguNTAuMjAwOTA4 MTAtMgogLSBVcGdyYWRlIHRvIHRoZSBGU0YgR0RCIGdkYi02LjguNTAgc25hcHNob3Q6IDYuOC41 MC4yMDA5MDgxMAogLSBhcmNoZXItamFua3JhdG9jaHZpbC1mZWRvcmExMiBjb21taXQ6IDkzZWMx NmU2ZjUwMDBkZDY0ZDQzM2Q4NjY3NGU4MjBlZDBmMzViNzIKIAoKZGlmZiAtLWdpdCBhL3NvdXJj ZXMgYi9zb3VyY2VzCmluZGV4IDQ2NmFkYTUuLmZmYmFjYzIgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMK KysrIGIvc291cmNlcwpAQCAtMSArMSBAQAotYjQ1NDk0OTgzNDU4NDk0NTg0NjRjOGZlMjUwM2Ez N2MgIGdkYi02LjguNTAuMjAwOTA4MTAudGFyLmJ6MgorZjNlMGNmY2UxMjc5ODJkMGYxNDc3NzE4 OGQ4ZmE0YzUgIGdkYi02LjguNTAuMjAwOTA4MTEudGFyLmJ6Mgo=