From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: Rebase to FSF GDB 7.7. Date: Sat, 27 Jun 2026 23:56:27 GMT Message-ID: <178260458762.1.3502171732861268710.rpms-gdb-2c55a5441d00@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 2c55a5441d00bc3f00df01ed3184da81461c6cb2 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQK ICAgICAgICAgICAgQ29tbWl0IDogMmM1NWE1NDQxZDAwYmMzZjAwZGYwMWVkMzE4NGRhODE0NjFj NmNiMgogICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxA cmVkaGF0LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxNC0wMi0wN1QxOTozODoxNCswMTow MAogICAgICAgICAgICBTdGF0cyAgOiArMzA5OC8tNDc0OSBpbiAzNyBmaWxlKHMpCiAgICAgICAg ICAgIFVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvMmM1 NWE1NDQxZDAwYmMzZjAwZGYwMWVkMzE4NGRhODE0NjFjNmNiMj9icmFuY2g9Z2RiLTE3LjItcmVi YXNlLWY0NAoKICAgICAgICAgICAgTG9nOgogICAgICAgICAgICBSZWJhc2UgdG8gRlNGIEdEQiA3 LjcuCgotIE5ldyBycG1idWlsZCBvcHRpb246IC0td2l0aCBhc2FuCgotLS0KZGlmZiAtLWdpdCBh Ly5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDUyYjA0MmIuLjEyNWRmODMgMTAwNjQ0Ci0t LSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMSwzICsxLDIgQEAKIC9nZGItbGli c3RkYysrLXYzLXB5dGhvbi1yMTU1OTc4LnRhci5iejIKLS9nZGItNy42LjUwLjIwMTMwNjI0LnRh ci5iejIKLS9nZGItNy42LjUwLjIwMTMwNzMxLWN2cy50YXIuYnoyCisvZ2RiLTcuNy50YXIuYnoy CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuMy1nc3RhY2stMjAwNTA0MTEucGF0Y2ggYi9nZGItNi4zLWdz dGFjay0yMDA1MDQxMS5wYXRjaAppbmRleCBiNzNlZWZmLi5mMWU5ZTNhIDEwMDY0NAotLS0gYS9n ZGItNi4zLWdzdGFjay0yMDA1MDQxMS5wYXRjaAorKysgYi9nZGItNi4zLWdzdGFjay0yMDA1MDQx MS5wYXRjaApAQCAtNCwxMSArNCwxMSBAQAogCXRvIGluc3RhbGwgYW5kIHVuaW5zdGFsbC4KIAkq IGdzdGFjay5zaCwgZ3N0YWNrLjE6IE5ldyBmaWxlcy4KIAotSW5kZXg6IGdkYi03LjYvZ2RiL01h a2VmaWxlLmluCitJbmRleDogZ2RiLTcuNy9nZGIvTWFrZWZpbGUuaW4KID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy42Lm9yaWcvZ2RiL01ha2VmaWxlLmluCTIwMTMtMDUtMjEgMTM6MjY6MzMuNDk2ODIw NzYzICswMjAwCi0rKysgZ2RiLTcuNi9nZGIvTWFrZWZpbGUuaW4JMjAxMy0wNS0yMSAxMzoyNjoz My42MDk4MTk1NzkgKzAyMDAKLUBAIC0xMDI5LDcgKzEwMjksNyBAQCBpbmZvIGluc3RhbGwtaW5m byBjbGVhbi1pbmZvIGR2aSBwZGYgaW5zCistLS0gZ2RiLTcuNy5vcmlnL2dkYi9NYWtlZmlsZS5p bgkyMDE0LTAyLTA2IDIwOjI5OjA5LjQwMTIxNDMzOSArMDEwMAorKysrIGdkYi03LjcvZ2RiL01h a2VmaWxlLmluCTIwMTQtMDItMDYgMjA6Mjk6MDkuNTAxMjE0MzYwICswMTAwCitAQCAtMTA2Nyw3 ICsxMDY3LDcgQEAgaW5mbyBpbnN0YWxsLWluZm8gY2xlYW4taW5mbyBkdmkgcGRmIGlucwogIGlu c3RhbGw6IGFsbAogIAlAJChNQUtFKSAkKEZMQUdTX1RPX1BBU1MpIGluc3RhbGwtb25seQogIApA QCAtMTcsNyArMTcsNyBAQCBJbmRleDogZ2RiLTcuNi9nZGIvTWFrZWZpbGUuaW4KICAJdHJhbnNm b3JtZWRfbmFtZT1gdD0nJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKSc7IFwKICAJCQkgIGVjaG8g Z2RiIHwgc2VkIC1lICIkJHQiYCA7IFwKICAJCWlmIHRlc3QgIngkJHRyYW5zZm9ybWVkX25hbWUi ID0geDsgdGhlbiBcCi1AQCAtMTA2MCw3ICsxMDYwLDI1IEBAIGluc3RhbGwtb25seTogJChDT05G SUdfSU5TVEFMTCkKK0BAIC0xMTA0LDcgKzExMDQsMjUgQEAgaW5zdGFsbC1zdHJpcDoKICBpbnN0 YWxsLXB5dGhvbjoKICAJJChTSEVMTCkgJChzcmNkaXIpLy4uL21raW5zdGFsbGRpcnMgJChERVNU RElSKSQoR0RCX0RBVEFESVIpL3B5dGhvbi9nZGIKICAKQEAgLTQ0LDcgKzQ0LDcgQEAgSW5kZXg6 IGdkYi03LjYvZ2RiL01ha2VmaWxlLmluCiAgCXRyYW5zZm9ybWVkX25hbWU9YHQ9JyQocHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZSknOyBcCiAgCQkJICBlY2hvIGdkYiB8IHNlZCAtZSAkJHRgIDsgXAog IAkJaWYgdGVzdCAieCQkdHJhbnNmb3JtZWRfbmFtZSIgPSB4OyB0aGVuIFwKLUBAIC0xMDgzLDYg KzExMDEsMTggQEAgdW5pbnN0YWxsOiBmb3JjZSAkKENPTkZJR19VTklOU1RBTEwpCitAQCAtMTEy Nyw2ICsxMTQ1LDE4IEBAIHVuaW5zdGFsbDogZm9yY2UgJChDT05GSUdfVU5JTlNUQUxMKQogIAlm aQogIAlAJChNQUtFKSBETz11bmluc3RhbGwgIkRPRElSUz0kKFNVQkRJUlMpIiAkKEZMQUdTX1RP X1BBU1MpIHN1YmRpcl9kbwogIApAQCAtNjMsMTAgKzYzLDEwIEBAIEluZGV4OiBnZGItNy42L2dk Yi9NYWtlZmlsZS5pbgogICMgVGhlIEMrKyBuYW1lIHBhcnNlciBjYW4gYmUgYnVpbHQgc3RhbmRh bG9uZSBmb3IgdGVzdGluZy4KICB0ZXN0LWNwLW5hbWUtcGFyc2VyLm86IGNwLW5hbWUtcGFyc2Vy LmMKICAJJChDT01QSUxFKSAtRFRFU1RfQ1BOQU1FUyBjcC1uYW1lLXBhcnNlci5jCi1JbmRleDog Z2RiLTcuNi9nZGIvZ3N0YWNrLnNoCitJbmRleDogZ2RiLTcuNy9nZGIvZ3N0YWNrLnNoCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuNi9nZGIvZ3N0YWNrLnNoCTIwMTMtMDUtMjEgMTM6MjY6NTUuNDM0NjI1OTA4 ICswMjAwCisrKysgZ2RiLTcuNy9nZGIvZ3N0YWNrLnNoCTIwMTQtMDItMDYgMjA6Mjk6MDkuNTAx MjE0MzYwICswMTAwCiBAQCAtMCwwICsxLDQzIEBACiArIyEvYmluL3NoCiArCkBAIC0xMTEsMTAg KzExMSwxMCBAQCBJbmRleDogZ2RiLTcuNi9nZGIvZ3N0YWNrLnNoCiArICAgIC1lICdzL15cKChn ZGIpIFwpKi8vJyBcCiArICAgIC1lICcvXiMvcCcgXAogKyAgICAtZSAnL15UaHJlYWQvcCcKLUlu ZGV4OiBnZGItNy42L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZ3N0YWNrLmV4cAorSW5kZXg6IGdk Yi03LjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9nc3RhY2suZXhwCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu Ni9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2dzdGFjay5leHAJMjAxMy0wNS0yMSAxMzoyNjo1NS40 MzQ2MjU5MDggKzAyMDAKKysrKyBnZGItNy43L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZ3N0YWNr LmV4cAkyMDE0LTAyLTA2IDIwOjQzOjE3Ljc3NDc0NzM1MiArMDEwMAogQEAgLTAsMCArMSw2NiBA QAogKyMgQ29weXJpZ2h0IChDKSAyMDEyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgog KwpAQCAtMTMzLDcgKzEzMyw3IEBAIEluZGV4OiBnZGItNy42L2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvZ3N0YWNrLmV4cAogKwogK3NldCB0ZXN0ZmlsZSBnc3RhY2sKICtzZXQgZXhlY3V0YWJsZSAk e3Rlc3RmaWxlfQotK3NldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJGV4ZWN1dGFibGUK KytzZXQgYmluZmlsZSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJGV4ZWN1dGFibGVdCiAraWYge1ti dWlsZF9leGVjdXRhYmxlICR7dGVzdGZpbGV9ICR7ZXhlY3V0YWJsZX0gIiIge2RlYnVnfV0gPT0g LTF9IHsKICsgICAgcmV0dXJuIC0xCiArfQpAQCAtMTgyLDEwICsxODIsMTAgQEAgSW5kZXg6IGdk Yi03LjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9nc3RhY2suZXhwCiArZ2RiX2V4aXQKICsKICty ZW1vdGVfZXhlYyBob3N0ICJraWxsIC05ICRwaWQiCi1JbmRleDogZ2RiLTcuNi9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL2dzdGFjay5jCitJbmRleDogZ2RiLTcuNy9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2dzdGFjay5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6 MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2dz dGFjay5jCTIwMTMtMDUtMjEgMTM6MjY6MzMuNjEwODE5NTY5ICswMjAwCisrKysgZ2RiLTcuNy9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2dzdGFjay5jCTIwMTQtMDItMDYgMjA6Mjk6MDkuNTAyMjE0 MzYwICswMTAwCiBAQCAtMCwwICsxLDQzIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9m IEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKCmRpZmYgLS1naXQgYS9nZGItNi4zLXJlYWRuZXZl ci0yMDA1MDkwNy5wYXRjaCBiL2dkYi02LjMtcmVhZG5ldmVyLTIwMDUwOTA3LnBhdGNoCmluZGV4 IDk0NGUxMDQuLjdmZjFkYzcgMTAwNjQ0Ci0tLSBhL2dkYi02LjMtcmVhZG5ldmVyLTIwMDUwOTA3 LnBhdGNoCisrKyBiL2dkYi02LjMtcmVhZG5ldmVyLTIwMDUwOTA3LnBhdGNoCkBAIC0xMSwxMSAr MTEsMTEgQEAKIAogICAgICAgICAqIGdkYi50ZXhpbmZvIChGaWxlIE9wdGlvbnMpOiBEb2N1bWVu dCAtLXJlYWRuZXZlci4KIAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kb2Mv Z2RiLnRleGluZm8KK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9kb2MvZ2RiLnRleGlu Zm8KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9kb2Mv Z2RiLnRleGluZm8JMjAxMy0wOC0wMiAxNjoxMjo1NC45NzAwODU5NDIgKzAyMDAKLSsrKyBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTMtMDgtMDIgMTY6MjA6 MjEuMTY0Njg3ODg2ICswMjAwCi1AQCAtMTAzMCw2ICsxMDMwLDEyIEBAIFJlYWQgZWFjaCBzeW1i b2wgZmlsZSdzIGVudGlyZSBzeW1ib2wgdGEKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcv Z2RiL2RvYy9nZGIudGV4aW5mbwkyMDE0LTAxLTI3IDIyOjQyOjUzLjE1MDU3MzYwMyArMDEwMAor KysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE0LTAxLTI3IDIy OjQyOjU2LjY5NDU3NjMxOSArMDEwMAorQEAgLTEwMzEsNiArMTAzMSwxMiBAQCBSZWFkIGVhY2gg c3ltYm9sIGZpbGUncyBlbnRpcmUgc3ltYm9sIHRhCiAgdGhlIGRlZmF1bHQsIHdoaWNoIGlzIHRv IHJlYWQgaXQgaW5jcmVtZW50YWxseSBhcyBpdCBpcyBuZWVkZWQuCiAgVGhpcyBtYWtlcyBzdGFy dHVwIHNsb3dlciwgYnV0IG1ha2VzIGZ1dHVyZSBvcGVyYXRpb25zIGZhc3Rlci4KICAKQEAgLTI4 LDExICsyOCwxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2RvYy9nZGIu dGV4aW5mbwogIEBlbmQgdGFibGUKICAKICBAbm9kZSBNb2RlIE9wdGlvbnMKLUluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbWFpbi5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvbWFpbi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3Jp Zy9nZGIvbWFpbi5jCTIwMTMtMDgtMDIgMTY6MTI6NTQuOTc0MDg1OTQ4ICswMjAwCi0rKysgZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL21haW4uYwkyMDEzLTA4LTAyIDE2OjIwOjUzLjcwNDcz MTQ0OSArMDIwMAotQEAgLTQ1OSw2ICs0NTksNyBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRh KQorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvbWFpbi5jCTIwMTQtMDEtMjcgMjI6 NDI6NTMuMTUzNTczNjA2ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbWFpbi5j CTIwMTQtMDEtMjcgMjI6NDI6NTYuNjk1NTc2MzE5ICswMTAwCitAQCAtNDczLDYgKzQ3Myw3IEBA IGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCiAgICAgICAgeyJ4ZGIiLCBub19hcmd1bWVudCwg JnhkYl9jb21tYW5kcywgMX0sCiAgICAgICAgeyJkYngiLCBub19hcmd1bWVudCwgJmRieF9jb21t YW5kcywgMX0sCiAgICAgICAgeyJyZWFkbm93Iiwgbm9fYXJndW1lbnQsICZyZWFkbm93X3N5bWJv bF9maWxlcywgMX0sCkBAIC00MCw3ICs0MCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvbWFpbi5jCiAgICAgICAgeyJyIiwgbm9fYXJndW1lbnQsICZyZWFkbm93X3N5bWJv bF9maWxlcywgMX0sCiAgICAgICAgeyJxdWlldCIsIG5vX2FyZ3VtZW50LCAmcXVpZXQsIDF9LAog ICAgICAgIHsicSIsIG5vX2FyZ3VtZW50LCAmcXVpZXQsIDF9LAotQEAgLTExNTQsNiArMTE1NSw3 IEBAIFNlbGVjdGlvbiBvZiBkZWJ1Z2dlZSBhbmQgaXRzIGZpbGVzOlxuXG4KK0BAIC0xMTY0LDYg KzExNjUsNyBAQCBTZWxlY3Rpb24gb2YgZGVidWdnZWUgYW5kIGl0cyBmaWxlczpcblxuCiAgICAt LXNlPUZJTEUgICAgICAgICAgVXNlIEZJTEUgYXMgc3ltYm9sIGZpbGUgYW5kIGV4ZWN1dGFibGUg ZmlsZS5cblwKICAgIC0tc3ltYm9scz1TWU1GSUxFICBSZWFkIHN5bWJvbHMgZnJvbSBTWU1GSUxF LlxuXAogICAgLS1yZWFkbm93ICAgICAgICAgIEZ1bGx5IHJlYWQgc3ltYm9sIGZpbGVzIG9uIGZp cnN0IGFjY2Vzcy5cblwKQEAgLTQ4LDEwICs0OCwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL21haW4uYwogICAgLS13cml0ZSAgICAgICAgICAgIFNldCB3cml0aW5nIGlu dG8gZXhlY3V0YWJsZSBhbmQgY29yZSBmaWxlcy5cblxuXAogICIpLCBzdHJlYW0pOwogICAgZnB1 dHNfdW5maWx0ZXJlZCAoXygiXAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9z eW1maWxlLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9zeW1maWxlLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9zeW1maWxlLmMJMjAx My0wOC0wMiAxNjoxMjo1NC45NzUwODU5NDkgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvc3ltZmlsZS5jCTIwMTMtMDgtMDIgMTY6MjA6MjEuMTY1Njg3ODg4ICswMjAwCist LS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9zeW1maWxlLmMJMjAxNC0wMS0yNyAyMjo0 Mjo1My4xNTQ1NzM2MDcgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9zeW1maWxl LmMJMjAxNC0wMS0yNyAyMjo0Mjo1Ni42OTY1NzYzMjAgKzAxMDAKIEBAIC04Miw2ICs4Miw3IEBA IHN0YXRpYyB2b2lkIGNsZWFyX3N5bXRhYl91c2Vyc19jbGVhbnVwICgKICAKICAvKiBHbG9iYWwg dmFyaWFibGVzIG93bmVkIGJ5IHRoaXMgZmlsZS4gICovCkBAIC02MCwzNCArNjAsMzIgQEAgSW5k ZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zeW1maWxlLmMKICAKICAvKiBGdW5jdGlv bnMgdGhpcyBmaWxlIGRlZmluZXMuICAqLwogIAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi9kd2FyZjJyZWFkLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9kd2Fy ZjJyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dk Yi9kd2FyZjJyZWFkLmMJMjAxMy0wOC0wMiAxNjoxMjo1NC45NzkwODU5NTQgKzAyMDAKLSsrKyBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZHdhcmYycmVhZC5jCTIwMTMtMDgtMDIgMTY6MjA6 MzcuMTkwNzA5Njg5ICswMjAwCi1AQCAtNjksNiArNjksNyBAQAotICNpbmNsdWRlICJmLWxhbmcu aCIKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE0LTAx LTI3IDIyOjQyOjU2LjcwMDU3NjMyMyArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2Ri L2R3YXJmMnJlYWQuYwkyMDE0LTAxLTI3IDIyOjQ0OjIxLjkxNTY0MTU2MCArMDEwMAorQEAgLTcw LDYgKzcwLDcgQEAKICAjaW5jbHVkZSAic291cmNlLmgiCiAgI2luY2x1ZGUgImZpbGVzdHVmZi5o IgorICNpbmNsdWRlICJidWlsZC1pZC5oIgogKyNpbmNsdWRlICJ0b3AuaCIKICAKICAjaW5jbHVk ZSA8ZmNudGwuaD4KLSAjaW5jbHVkZSAiZ2RiX3N0cmluZy5oIgotQEAgLTE4MzQsOCArMTgzNSw5 IEBAIGR3YXJmMl9oYXNfaW5mbyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUKKyAjaW5jbHVkZSA8 c3RyaW5nLmg+CitAQCAtMTk3NSw3ICsxOTc2LDggQEAgZHdhcmYyX2hhc19pbmZvIChzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikg bmFtZXMpOwogICAgICAgIGR3YXJmMl9wZXJfb2JqZmlsZS0+b2JqZmlsZSA9IG9iamZpbGU7CiAg ICAgIH0KLS0gIHJldHVybiAoZHdhcmYyX3Blcl9vYmpmaWxlLT5pbmZvLmFzZWN0aW9uICE9IE5V TEwKLS0JICAmJiBkd2FyZjJfcGVyX29iamZpbGUtPmFiYnJldi5hc2VjdGlvbiAhPSBOVUxMKTsK LSsgIHJldHVybiAoISByZWFkbmV2ZXJfc3ltYm9sX2ZpbGVzCi0rCSAgJiYgKGR3YXJmMl9wZXJf b2JqZmlsZS0+aW5mby5hc2VjdGlvbiAhPSBOVUxMCi0rCSAgICAgICYmIGR3YXJmMl9wZXJfb2Jq ZmlsZS0+YWJicmV2LmFzZWN0aW9uICE9IE5VTEwpKTsKLSB9Ci0gCi0gLyogV2hlbiBsb2FkaW5n IHNlY3Rpb25zLCB3ZSBsb29rIGVpdGhlciBmb3IgdW5jb21wcmVzc2VkIHNlY3Rpb24gb3IgZm9y Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3RvcC5oCistICByZXR1cm4gKCFk d2FyZjJfcGVyX29iamZpbGUtPmluZm8uaXNfdmlydHVhbAorKyAgcmV0dXJuICFyZWFkbmV2ZXJf c3ltYm9sX2ZpbGVzICYmCisrCSAoIWR3YXJmMl9wZXJfb2JqZmlsZS0+aW5mby5pc192aXJ0dWFs CisgCSAgJiYgZHdhcmYyX3Blcl9vYmpmaWxlLT5pbmZvLnMuYXNlY3Rpb24gIT0gTlVMTAorIAkg ICYmICFkd2FyZjJfcGVyX29iamZpbGUtPmFiYnJldi5pc192aXJ0dWFsCisgCSAgJiYgZHdhcmYy X3Blcl9vYmpmaWxlLT5hYmJyZXYucy5hc2VjdGlvbiAhPSBOVUxMKTsKK0luZGV4OiBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi90b3AuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzLm9yaWcvZ2RiL3RvcC5oCTIwMTMtMDgtMDIgMTY6MTI6NTQuOTgwMDg1OTU2ICswMjAw Ci0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3RvcC5oCTIwMTMtMDgtMDIgMTY6MjA6 MjEuMTY5Njg3ODkzICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90b3Au aAkyMDE0LTAxLTI3IDIyOjQyOjUzLjE1OTU3MzYxMCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAx NDAxMjcvZ2RiL3RvcC5oCTIwMTQtMDEtMjcgMjI6NDI6NTYuNzAxNTc2MzI0ICswMTAwCiBAQCAt NTksNiArNTksNyBAQCBleHRlcm4gdm9pZCBzZXRfcHJvbXB0IChjb25zdCBjaGFyICpzKTsKICAK ICAvKiBGcm9tIHJhbmRvbSBwbGFjZXMuICAqLwoKZGlmZiAtLWdpdCBhL2dkYi02LjMtdGVzdC1w aWUtMjAwNTAxMDcucGF0Y2ggYi9nZGItNi4zLXRlc3QtcGllLTIwMDUwMTA3LnBhdGNoCmluZGV4 IGM2YThjYmMuLmYzOGMwYmYgMTAwNjQ0Ci0tLSBhL2dkYi02LjMtdGVzdC1waWUtMjAwNTAxMDcu cGF0Y2gKKysrIGIvZ2RiLTYuMy10ZXN0LXBpZS0yMDA1MDEwNy5wYXRjaApAQCAtMSwyNSArMSwy NSBAQAotSW5kZXg6IGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUu YWMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvY29uZmlndXJlLmFj CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNS45MS4yMDEzMDMyMy5vcmlnL2dkYi90ZXN0c3VpdGUv Y29uZmlndXJlLmFjCTIwMTMtMDMtMTEgMDk6NTk6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgZ2Ri LTcuNS45MS4yMDEzMDMyMy9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZS5hYwkyMDEzLTAzLTIzIDE5 OjQ3OjI0LjE4OTY4MzU1NSArMDEwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIv dGVzdHN1aXRlL2NvbmZpZ3VyZS5hYwkyMDE0LTAxLTI3IDIyOjQxOjE5LjI4MTUwMTY4OCArMDEw MAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUuYWMJMjAx NC0wMS0yNyAyMjo0MTozOS43MzY1MTczNjAgKzAxMDAKIEBAIC05Niw2ICs5Niw2IEBAIEFDX09V VFBVVChbTWFrZWZpbGUgXAogICAgZ2RiLmhwL2dkYi5hQ0MvTWFrZWZpbGUgZ2RiLmhwL2dkYi5j b21wYXQvTWFrZWZpbGUgXAogICAgZ2RiLmhwL2dkYi5kZWZlY3RzL01ha2VmaWxlIGdkYi5saW5l c3BlYy9NYWtlZmlsZSBcCiAgICBnZGIubWkvTWFrZWZpbGUgZ2RiLm1vZHVsYTIvTWFrZWZpbGUg Z2RiLm11bHRpL01ha2VmaWxlIFwKIC0gIGdkYi5vYmpjL01ha2VmaWxlIGdkYi5vcGVuY2wvTWFr ZWZpbGUgZ2RiLm9wdC9NYWtlZmlsZSBnZGIucGFzY2FsL01ha2VmaWxlIFwKICsgIGdkYi5vYmpj L01ha2VmaWxlIGdkYi5vcGVuY2wvTWFrZWZpbGUgZ2RiLm9wdC9NYWtlZmlsZSBnZGIucGFzY2Fs L01ha2VmaWxlIGdkYi5waWUvTWFrZWZpbGUgXAotICAgZ2RiLnB5dGhvbi9NYWtlZmlsZSBnZGIu cmV2ZXJzZS9NYWtlZmlsZSBnZGIuc3RhYnMvTWFrZWZpbGUgXAorICAgZ2RiLnBlcmYvTWFrZWZp bGUgZ2RiLnB5dGhvbi9NYWtlZmlsZSBnZGIucmV2ZXJzZS9NYWtlZmlsZSBnZGIuc3RhYnMvTWFr ZWZpbGUgXAogICAgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01ha2VmaWxlIGdkYi54 bWwvTWFrZWZpbGVdKQotSW5kZXg6IGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL3Rlc3RzdWl0ZS9j b25maWd1cmUKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvY29uZmln dXJlCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNS45MS4yMDEzMDMyMy5vcmlnL2dkYi90ZXN0c3Vp dGUvY29uZmlndXJlCTIwMTMtMDMtMTEgMDk6NTk6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgZ2Ri LTcuNS45MS4yMDEzMDMyMy9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZQkyMDEzLTAzLTIzIDE5OjQ3 OjQ3LjI1NjgyMjMxMiArMDEwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvdGVz dHN1aXRlL2NvbmZpZ3VyZQkyMDE0LTAxLTI3IDIyOjQxOjE5LjI4MzUwMTY4OSArMDEwMAorKysr IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUJMjAxNC0wMS0yNyAy Mjo0MTo0OS45MzM1MjUxNzIgKzAxMDAKIEBAIC0zNDQ4LDcgKzM0NDgsNyBAQCBkb25lCiAgCiAg CiAgCi0tYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1ha2VmaWxlIGdkYi5hZGEv TWFrZWZpbGUgZ2RiLmFyY2gvTWFrZWZpbGUgZ2RiLmFzbS9NYWtlZmlsZSBnZGIuYmFzZS9NYWtl ZmlsZSBnZGIuYnRyYWNlL01ha2VmaWxlIGdkYi5jZWxsL01ha2VmaWxlIGdkYi5jcC9NYWtlZmls ZSBnZGIuZGlzYXNtL01ha2VmaWxlIGdkYi5kd2FyZjIvTWFrZWZpbGUgZ2RiLmZvcnRyYW4vTWFr ZWZpbGUgZ2RiLmdvL01ha2VmaWxlIGdkYi5zZXJ2ZXIvTWFrZWZpbGUgZ2RiLmphdmEvTWFrZWZp bGUgZ2RiLmhwL01ha2VmaWxlIGdkYi5ocC9nZGIub2JqZGJnL01ha2VmaWxlIGdkYi5ocC9nZGIu YmFzZS1ocC9NYWtlZmlsZSBnZGIuaHAvZ2RiLmFDQy9NYWtlZmlsZSBnZGIuaHAvZ2RiLmNvbXBh dC9NYWtlZmlsZSBnZGIuaHAvZ2RiLmRlZmVjdHMvTWFrZWZpbGUgZ2RiLmxpbmVzcGVjL01ha2Vm aWxlIGdkYi5taS9NYWtlZmlsZSBnZGIubW9kdWxhMi9NYWtlZmlsZSBnZGIubXVsdGkvTWFrZWZp bGUgZ2RiLm9iamMvTWFrZWZpbGUgZ2RiLm9wZW5jbC9NYWtlZmlsZSBnZGIub3B0L01ha2VmaWxl IGdkYi5wYXNjYWwvTWFrZWZpbGUgZ2RiLnB5dGhvbi9NYWtlZmlsZSBnZGIucmV2ZXJzZS9NYWtl ZmlsZSBnZGIuc3RhYnMvTWFrZWZpbGUgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01h a2VmaWxlIGdkYi54bWwvTWFrZWZpbGUiCi0rYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2Zp bGVzIE1ha2VmaWxlIGdkYi5hZGEvTWFrZWZpbGUgZ2RiLmFyY2gvTWFrZWZpbGUgZ2RiLmFzbS9N YWtlZmlsZSBnZGIuYmFzZS9NYWtlZmlsZSBnZGIuYnRyYWNlL01ha2VmaWxlIGdkYi5jZWxsL01h a2VmaWxlIGdkYi5jcC9NYWtlZmlsZSBnZGIuZGlzYXNtL01ha2VmaWxlIGdkYi5kd2FyZjIvTWFr ZWZpbGUgZ2RiLmZvcnRyYW4vTWFrZWZpbGUgZ2RiLmdvL01ha2VmaWxlIGdkYi5zZXJ2ZXIvTWFr ZWZpbGUgZ2RiLmphdmEvTWFrZWZpbGUgZ2RiLmhwL01ha2VmaWxlIGdkYi5ocC9nZGIub2JqZGJn L01ha2VmaWxlIGdkYi5ocC9nZGIuYmFzZS1ocC9NYWtlZmlsZSBnZGIuaHAvZ2RiLmFDQy9NYWtl ZmlsZSBnZGIuaHAvZ2RiLmNvbXBhdC9NYWtlZmlsZSBnZGIuaHAvZ2RiLmRlZmVjdHMvTWFrZWZp bGUgZ2RiLmxpbmVzcGVjL01ha2VmaWxlIGdkYi5taS9NYWtlZmlsZSBnZGIubW9kdWxhMi9NYWtl ZmlsZSBnZGIubXVsdGkvTWFrZWZpbGUgZ2RiLm9iamMvTWFrZWZpbGUgZ2RiLm9wZW5jbC9NYWtl ZmlsZSBnZGIub3B0L01ha2VmaWxlIGdkYi5wYXNjYWwvTWFrZWZpbGUgZ2RiLnBpZS9NYWtlZmls ZSBnZGIucHl0aG9uL01ha2VmaWxlIGdkYi5yZXZlcnNlL01ha2VmaWxlIGdkYi5zdGFicy9NYWtl ZmlsZSBnZGIudGhyZWFkcy9NYWtlZmlsZSBnZGIudHJhY2UvTWFrZWZpbGUgZ2RiLnhtbC9NYWtl ZmlsZSIKKy1hY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgZ2RiLmFk YS9NYWtlZmlsZSBnZGIuYXJjaC9NYWtlZmlsZSBnZGIuYXNtL01ha2VmaWxlIGdkYi5iYXNlL01h a2VmaWxlIGdkYi5idHJhY2UvTWFrZWZpbGUgZ2RiLmNlbGwvTWFrZWZpbGUgZ2RiLmNwL01ha2Vm aWxlIGdkYi5kaXNhc20vTWFrZWZpbGUgZ2RiLmR3YXJmMi9NYWtlZmlsZSBnZGIuZm9ydHJhbi9N YWtlZmlsZSBnZGIuZ28vTWFrZWZpbGUgZ2RiLnNlcnZlci9NYWtlZmlsZSBnZGIuamF2YS9NYWtl ZmlsZSBnZGIuaHAvTWFrZWZpbGUgZ2RiLmhwL2dkYi5vYmpkYmcvTWFrZWZpbGUgZ2RiLmhwL2dk Yi5iYXNlLWhwL01ha2VmaWxlIGdkYi5ocC9nZGIuYUNDL01ha2VmaWxlIGdkYi5ocC9nZGIuY29t cGF0L01ha2VmaWxlIGdkYi5ocC9nZGIuZGVmZWN0cy9NYWtlZmlsZSBnZGIubGluZXNwZWMvTWFr ZWZpbGUgZ2RiLm1pL01ha2VmaWxlIGdkYi5tb2R1bGEyL01ha2VmaWxlIGdkYi5tdWx0aS9NYWtl ZmlsZSBnZGIub2JqYy9NYWtlZmlsZSBnZGIub3BlbmNsL01ha2VmaWxlIGdkYi5vcHQvTWFrZWZp bGUgZ2RiLnBhc2NhbC9NYWtlZmlsZSBnZGIucGVyZi9NYWtlZmlsZSBnZGIucHl0aG9uL01ha2Vm aWxlIGdkYi5yZXZlcnNlL01ha2VmaWxlIGdkYi5zdGFicy9NYWtlZmlsZSBnZGIudGhyZWFkcy9N YWtlZmlsZSBnZGIudHJhY2UvTWFrZWZpbGUgZ2RiLnhtbC9NYWtlZmlsZSIKKythY19jb25maWdf ZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgZ2RiLmFkYS9NYWtlZmlsZSBnZGIuYXJj aC9NYWtlZmlsZSBnZGIuYXNtL01ha2VmaWxlIGdkYi5iYXNlL01ha2VmaWxlIGdkYi5idHJhY2Uv TWFrZWZpbGUgZ2RiLmNlbGwvTWFrZWZpbGUgZ2RiLmNwL01ha2VmaWxlIGdkYi5kaXNhc20vTWFr ZWZpbGUgZ2RiLmR3YXJmMi9NYWtlZmlsZSBnZGIuZm9ydHJhbi9NYWtlZmlsZSBnZGIuZ28vTWFr ZWZpbGUgZ2RiLnNlcnZlci9NYWtlZmlsZSBnZGIuamF2YS9NYWtlZmlsZSBnZGIuaHAvTWFrZWZp bGUgZ2RiLmhwL2dkYi5vYmpkYmcvTWFrZWZpbGUgZ2RiLmhwL2dkYi5iYXNlLWhwL01ha2VmaWxl IGdkYi5ocC9nZGIuYUNDL01ha2VmaWxlIGdkYi5ocC9nZGIuY29tcGF0L01ha2VmaWxlIGdkYi5o cC9nZGIuZGVmZWN0cy9NYWtlZmlsZSBnZGIubGluZXNwZWMvTWFrZWZpbGUgZ2RiLm1pL01ha2Vm aWxlIGdkYi5tb2R1bGEyL01ha2VmaWxlIGdkYi5tdWx0aS9NYWtlZmlsZSBnZGIub2JqYy9NYWtl ZmlsZSBnZGIub3BlbmNsL01ha2VmaWxlIGdkYi5vcHQvTWFrZWZpbGUgZ2RiLnBhc2NhbC9NYWtl ZmlsZSBnZGIucGllL01ha2VmaWxlIGdkYi5wZXJmL01ha2VmaWxlIGdkYi5weXRob24vTWFrZWZp bGUgZ2RiLnJldmVyc2UvTWFrZWZpbGUgZ2RiLnN0YWJzL01ha2VmaWxlIGdkYi50aHJlYWRzL01h a2VmaWxlIGdkYi50cmFjZS9NYWtlZmlsZSBnZGIueG1sL01ha2VmaWxlIgogIAogIGNhdCA+Y29u ZmNhY2hlIDw8XF9BQ0VPRgogICMgVGhpcyBmaWxlIGlzIGEgc2hlbGwgc2NyaXB0IHRoYXQgY2Fj aGVzIHRoZSByZXN1bHRzIG9mIGNvbmZpZ3VyZQpAQCAtMjgsMTMgKzI4LDEzIEBAIEluZGV4OiBn ZGItNy41LjkxLjIwMTMwMzIzL2dkYi90ZXN0c3VpdGUvY29uZmlndXJlCiAgICAgICJnZGIub3B0 L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5vcHQvTWFrZWZpbGUi IDs7CiAgICAgICJnZGIucGFzY2FsL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJ TEVTIGdkYi5wYXNjYWwvTWFrZWZpbGUiIDs7CiArICAgICJnZGIucGllL01ha2VmaWxlIikgQ09O RklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5waWUvTWFrZWZpbGUiIDs7CisgICAgICJnZGIu cGVyZi9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBnZGIucGVyZi9NYWtl ZmlsZSIgOzsKICAgICAgImdkYi5weXRob24vTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05G SUdfRklMRVMgZ2RiLnB5dGhvbi9NYWtlZmlsZSIgOzsKICAgICAgImdkYi5yZXZlcnNlL01ha2Vm aWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5yZXZlcnNlL01ha2VmaWxlIiA7 OwotICAgICAiZ2RiLnN0YWJzL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVT IGdkYi5zdGFicy9NYWtlZmlsZSIgOzsKLUluZGV4OiBnZGItNy41LjkxLjIwMTMwMzIzL2dkYi90 ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2Ri L3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNS45MS4yMDEzMDMy My9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmMJMjAxMy0wMy0yMyAxOTo0NzoyNC4xOTE2 ODM0NjYgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLnBp ZS9hdHRhY2guYwkyMDE0LTAxLTI3IDIyOjQxOjE5LjI4NDUwMTY5MCArMDEwMAogQEAgLTAsMCAr MSwyMCBAQAogKy8qIFRoaXMgcHJvZ3JhbSBpcyBpbnRlbmRlZCB0byBiZSBzdGFydGVkIG91dHNp ZGUgb2YgZ2RiLCBhbmQgdGhlbgogKyAgIGF0dGFjaGVkIHRvIGJ5IGdkYi4gIFRodXMsIGl0IHNp bXBseSBzcGlucyBpbiBhIGxvb3AuICBUaGUgbG9vcApAQCAtNTYsMTAgKzU2LDEwIEBAIEluZGV4 OiBnZGItNy41LjkxLjIwMTMwMzIzL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guYwogKyAg ICB9CiArICByZXR1cm4gMDsKICt9Ci1JbmRleDogZ2RiLTcuNS45MS4yMDEzMDMyMy9nZGIvdGVz dHN1aXRlL2dkYi5waWUvYXR0YWNoMi5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIv dGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoMi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNS45MS4yMDEzMDMy My9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoMi5jCTIwMTMtMDMtMjMgMTk6NDc6MjQuMTky NjgzNDIxICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5w aWUvYXR0YWNoMi5jCTIwMTQtMDEtMjcgMjI6NDE6MTkuMjg0NTAxNjkwICswMTAwCiBAQCAtMCww ICsxLDI0IEBACiArLyogVGhpcyBwcm9ncmFtIGlzIGludGVuZGVkIHRvIGJlIHN0YXJ0ZWQgb3V0 c2lkZSBvZiBnZGIsIGFuZCB0aGVuCiArICAgYXR0YWNoZWQgdG8gYnkgZ2RiLiAgVGh1cywgaXQg c2ltcGx5IHNwaW5zIGluIGEgbG9vcC4gIFRoZSBsb29wCkBAIC04NSwxMCArODUsMTAgQEAgSW5k ZXg6IGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaDIuYwog KyAgICB9CiArICByZXR1cm4gKDApOwogK30KLUluZGV4OiBnZGItNy41LjkxLjIwMTMwMzIzL2dk Yi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkx OTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjUuOTEuMjAxMzAz MjMvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmMJMjAxMy0wMy0yMyAxOTo0NzoyNC4xOTI2 ODM0MjEgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLnBp ZS9icmVhay5jCTIwMTQtMDEtMjcgMjI6NDE6MTkuMjg0NTAxNjkwICswMTAwCiBAQCAtMCwwICsx LDE0NiBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdn ZXIuCiArCkBAIC0yMzYsMTAgKzIzNiwxMCBAQCBJbmRleDogZ2RiLTcuNS45MS4yMDEzMDMyMy9n ZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuYwogKyAgICB9CiArICByZXR1cm4gMDsKICt9Ci1J bmRleDogZ2RiLTcuNS45MS4yMDEzMDMyMy9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsxLmMK K0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhazEu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2Jy ZWFrMS5jCTIwMTMtMDMtMjMgMTk6NDc6MjQuMTkyNjgzNDIxICswMTAwCisrKysgZ2RiLTcuNi45 MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsxLmMJMjAxNC0wMS0yNyAyMjo0 MToxOS4yODQ1MDE2OTAgKzAxMDAKIEBAIC0wLDAgKzEsNDQgQEAKICsvKiBUaGlzIHRlc3RjYXNl IGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMjg1LDEwICsyODUsMTAg QEAgSW5kZXg6IGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFr MS5jCiArdm9pZCBtYXJrZXIzIChhLCBiKSBjaGFyICphLCAqYjsge30JLyogc2V0IGJyZWFrcG9p bnQgMTggaGVyZSAqLwogK3ZvaWQgbWFya2VyNCAoZCkgbG9uZyBkOyB7fQkJLyogc2V0IGJyZWFr cG9pbnQgMTMgaGVyZSAqLwogKyNlbmRpZgotSW5kZXg6IGdkYi03LjUuOTEuMjAxMzAzMjMvZ2Ri L3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVtYWtlci5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZW1ha2VyLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy41Ljkx LjIwMTMwMzIzL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlbWFrZXIuYwkyMDEzLTAzLTIzIDE5 OjQ3OjI0LjE5MjY4MzQyMSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3Rz dWl0ZS9nZGIucGllL2NvcmVtYWtlci5jCTIwMTQtMDEtMjcgMjI6NDE6MTkuMjg0NTAxNjkwICsw MTAwCiBAQCAtMCwwICsxLDE0MiBAQAogKy8qIENvcHlyaWdodCAxOTkyLCAxOTkzLCAxOTk0LCAx OTk1LCAxOTk2LCAxOTk5CiArICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCkBAIC00 MzIsMTAgKzQzMiwxMCBAQCBJbmRleDogZ2RiLTcuNS45MS4yMDEzMDMyMy9nZGIvdGVzdHN1aXRl L2dkYi5waWUvY29yZW1ha2VyLmMKICsgIHJldHVybiAwOwogK30KICsKLUluZGV4OiBnZGItNy41 LjkxLjIwMTMwMzIzL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guZXhwCitJbmRleDogZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmV4cAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAot KysrIGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5leHAJ MjAxMy0wMy0yMyAxOTo0NzoyNC4xOTM2ODMzNzcgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQw MTI3L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guZXhwCTIwMTQtMDEtMjcgMjI6NDE6MTku Mjg1NTAxNjkxICswMTAwCiBAQCAtMCwwICsxLDQxNyBAQAogKyMgICBDb3B5cmlnaHQgMTk5Nywg MTk5OSwgMjAwMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTg1NCwxMCAr ODU0LDEwIEBAIEluZGV4OiBnZGItNy41LjkxLjIwMTMwMzIzL2dkYi90ZXN0c3VpdGUvZ2RiLnBp ZS9hdHRhY2guZXhwCiArZG9fY2FsbF9hdHRhY2hfdGVzdHMKICsKICtyZXR1cm4gMAotSW5kZXg6 IGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmV4cAorSW5k ZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmV4cAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFr LmV4cAkyMDEzLTAzLTIzIDE5OjQ3OjI0LjE5NDY4MzMzMiArMDEwMAorKysrIGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmV4cAkyMDE0LTAxLTI3IDIyOjQx OjE5LjI4NjUwMTY5MSArMDEwMAogQEAgLTAsMCArMSw5NjIgQEAKICsjICAgQ29weXJpZ2h0IDE5 ODgsIDE5OTAsIDE5OTEsIDE5OTIsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTks CiArIyAgIDIwMDAsIDIwMDIsIDIwMDMsIDIwMDQKQEAgLTE4MjEsMTAgKzE4MjEsMTAgQEAgSW5k ZXg6IGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmV4cAog KyAgICBzZW5kX2dkYiAic2V0IGFyZ3MgbWFpblxuIgogKyAgICBnZGJfZXhwZWN0IC1yZSAiLiok Z2RiX3Byb21wdCAkIiB7fQogK30KLUluZGV4OiBnZGItNy41LjkxLjIwMTMwMzIzL2dkYi90ZXN0 c3VpdGUvZ2RiLnBpZS9jb3JlZmlsZS5leHAKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dk Yi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlZmlsZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy41LjkxLjIw MTMwMzIzL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlZmlsZS5leHAJMjAxMy0wMy0yMyAxOTo0 NzoyNC4xOTQ2ODMzMzIgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3Vp dGUvZ2RiLnBpZS9jb3JlZmlsZS5leHAJMjAxNC0wMS0yNyAyMjo0MToxOS4yODY1MDE2OTEgKzAx MDAKIEBAIC0wLDAgKzEsMjMzIEBACiArIyBDb3B5cmlnaHQgMTk5MiwgMTk5MywgMTk5NCwgMTk5 NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMAogKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCkBAIC0yMDU5LDEwICsyMDU5LDEwIEBAIEluZGV4OiBnZGItNy41LjkxLjIwMTMw MzIzL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlZmlsZS5leHAKICtnZGJfdGVzdCAidXAiICIj XFswLTlcXSogKlxbMC05eGEtZkgnXF0qIGluIC4qIFxcKC4qXFwpLioiICJ1cCBpbiBjb3JlZmls ZS5leHAgKHJlaW5pdCkiCiArCiArZ2RiX3Rlc3QgImNvcmUiICJObyBjb3JlIGZpbGUgbm93LiIK LUluZGV4OiBnZGItNy41LjkxLjIwMTMwMzIzL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9NYWtlZmls ZS5pbgorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL01h a2VmaWxlLmluCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNS45MS4yMDEzMDMyMy9nZGIvdGVzdHN1aXRlL2dk Yi5waWUvTWFrZWZpbGUuaW4JMjAxMy0wMy0yMyAxOTo0NzoyNC4xOTQ2ODMzMzIgKzAxMDAKKysr KyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9NYWtlZmlsZS5pbgky MDE0LTAxLTI3IDIyOjQxOjE5LjI4NjUwMTY5MSArMDEwMAogQEAgLTAsMCArMSwxOSBAQAogK1ZQ QVRIID0gQHNyY2RpckAKICtzcmNkaXIgPSBAc3JjZGlyQAoKZGlmZiAtLWdpdCBhL2dkYi02LjMt dGVzdC1zZWxmLTIwMDUwMTEwLnBhdGNoIGIvZ2RiLTYuMy10ZXN0LXNlbGYtMjAwNTAxMTAucGF0 Y2gKaW5kZXggM2E1NzQ1Yi4uMjA3M2FmMiAxMDA2NDQKLS0tIGEvZ2RiLTYuMy10ZXN0LXNlbGYt MjAwNTAxMTAucGF0Y2gKKysrIGIvZ2RiLTYuMy10ZXN0LXNlbGYtMjAwNTAxMTAucGF0Y2gKQEAg LTYsMjAgKzYsMjAgQEAKICAgICAgICAgKiBnZGIuZ2RiL3hmdWxscGF0aC5leHA6IERpdHRvLgog ICAgICAgICAqIGdkYi5nZGIvb2JzZXJ2ZXIuZXhwOiBEaXR0by4KIAotSW5kZXg6IGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzL2dkYi90ZXN0c3VpdGUvbGliL3NlbGZ0ZXN0LXN1cHBvcnQuZXhwCitJ bmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2xpYi9zZWxmdGVzdC1zdXBw b3J0LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2Ri L3Rlc3RzdWl0ZS9saWIvc2VsZnRlc3Qtc3VwcG9ydC5leHAJMjAxMy0wOC0wMiAxNjoxMToyOS4x OTU5NzE5MjIgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRl L2xpYi9zZWxmdGVzdC1zdXBwb3J0LmV4cAkyMDEzLTA4LTAyIDE2OjEyOjIwLjQwNDA0MDM3OCAr MDIwMAotQEAgLTEzMCwxOCArMTMwLDE4IEBAIHByb2MgZG9fc2VsZl90ZXN0cyB7ZnVuY3Rpb24g Ym9keX0gewotICAgICBzZXQgR0RCX0ZVTExQQVRIIFtmaW5kX2dkYiAkR0RCXQorLS0tIGdkYi03 LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9zZWxmdGVzdC1zdXBwb3J0LmV4 cAkyMDE0LTAxLTI3IDIyOjQyOjA0LjAyMjUzNTk2NiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAx NDAxMjcvZ2RiL3Rlc3RzdWl0ZS9saWIvc2VsZnRlc3Qtc3VwcG9ydC5leHAJMjAxNC0wMS0yNyAy Mjo0Mjo0Mi42MzA1NjU2NzUgKzAxMDAKK0BAIC0xMzYsMTggKzEzNiwxOCBAQCBwcm9jIGRvX3Nl bGZfdGVzdHMge2Z1bmN0aW9uIGJvZHl9IHsKKyAgICAgfQogIAogICAgICAjIFJlbW92ZSBhbnkg b2xkIGNvcHkgbHlpbmcgYXJvdW5kLgotLSAgICByZW1vdGVfZmlsZSBob3N0IGRlbGV0ZSB4JHRv b2wKLSsgICAgI3JlbW90ZV9maWxlIGhvc3QgZGVsZXRlIHgkdG9vbAorLSAgICByZW1vdGVfZmls ZSBob3N0IGRlbGV0ZSAkeGdkYgorKyAgICAjcmVtb3RlX2ZpbGUgaG9zdCBkZWxldGUgJHhnZGIK ICAKICAgICAgZ2RiX3N0YXJ0Ci0tICAgIHNldCBmaWxlIFtyZW1vdGVfZG93bmxvYWQgaG9zdCAk R0RCX0ZVTExQQVRIIHgkdG9vbF0KLSsgICAgI3NldCBmaWxlIFtyZW1vdGVfZG93bmxvYWQgaG9z dCAkR0RCX0ZVTExQQVRIIHgkdG9vbF0KKy0gICAgc2V0IGZpbGUgW3JlbW90ZV9kb3dubG9hZCBo b3N0ICRHREJfRlVMTFBBVEggJHhnZGJdCisrICAgICNzZXQgZmlsZSBbcmVtb3RlX2Rvd25sb2Fk IGhvc3QgJEdEQl9GVUxMUEFUSCAkeGdkYl0KICAKIC0gICAgc2V0IHJlc3VsdCBbc2VsZnRlc3Rf c2V0dXAgJGZpbGUgJGZ1bmN0aW9uXQogKyAgICBzZXQgcmVzdWx0IFtzZWxmdGVzdF9zZXR1cCAk R0RCX0ZVTExQQVRIICRmdW5jdGlvbl0KCmRpZmYgLS1naXQgYS9nZGItNi41LWJ6MjE2NzExLWNs b25lLWlzLW91dGVybW9zdC5wYXRjaCBiL2dkYi02LjUtYnoyMTY3MTEtY2xvbmUtaXMtb3V0ZXJt b3N0LnBhdGNoCmluZGV4IDQxYTg4N2EuLjlmYjIzZWQgMTAwNjQ0Ci0tLSBhL2dkYi02LjUtYnoy MTY3MTEtY2xvbmUtaXMtb3V0ZXJtb3N0LnBhdGNoCisrKyBiL2dkYi02LjUtYnoyMTY3MTEtY2xv bmUtaXMtb3V0ZXJtb3N0LnBhdGNoCkBAIC0yMywxMSArMjMsMTEgQEAgaW5zdGVhZC4KIAogCVBv cnQgdG8gR0RCLTYuNy4KIAotSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2FtZDY0LWxp bnV4LXRkZXAuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FtZDY0LWxpbnV4LXRk ZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA3MDMub3JpZy9nZGIvYW1kNjQt bGludXgtdGRlcC5jCTIwMTItMDYtMTMgMjI6MzY6NDguMDAwMDAwMDAwICswMjAwCi0rKysgZ2Ri LTcuNC41MC4yMDEyMDcwMy9nZGIvYW1kNjQtbGludXgtdGRlcC5jCTIwMTItMDctMDMgMTc6MzI6 NDYuNTQ3NTYzMzYzICswMjAwCi1AQCAtMjcxLDYgKzI3MSw4MCBAQCBhbWQ2NF9saW51eF9yZWdp c3Rlcl9yZWdncm91cF9wIChzdHJ1Y3QKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2Ri L2FtZDY0LWxpbnV4LXRkZXAuYwkyMDE0LTAyLTA0IDIzOjQwOjA2LjI2MzQ4MzQ2OSArMDEwMAor KysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FtZDY0LWxpbnV4LXRkZXAuYwkyMDE0LTAyLTA0 IDIzOjQ3OjE4LjQzODAwOTI5MCArMDEwMAorQEAgLTI4OSw2ICsyODksODAgQEAgYW1kNjRfbGlu dXhfcmVnaXN0ZXJfcmVnZ3JvdXBfcCAoc3RydWN0CiAgCiAgLyogU2V0IHRoZSBwcm9ncmFtIGNv dW50ZXIgZm9yIHByb2Nlc3MgUFRJRCB0byBQQy4gICovCiAgCkBAIC0xMDgsMjAgKzEwOCwyMCBA QCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvYW1kNjQtbGludXgtdGRlcC5jCiAgc3Rh dGljIHZvaWQKICBhbWQ2NF9saW51eF93cml0ZV9wYyAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNo ZSwgQ09SRV9BRERSIHBjKQogIHsKLUBAIC0xNTQ3LDYgKzE2MjEsOCBAQCBhbWQ2NF9saW51eF9p bml0X2FiaSAoc3RydWN0IGdkYmFyY2hfaW5mCitAQCAtMTYwNyw2ICsxNjgxLDggQEAgYW1kNjRf bGludXhfaW5pdF9hYmlfY29tbW9uKHN0cnVjdCBnZGJhcgogIAotICAgYW1kNjRfbGludXhfaW5p dF9hYmlfY29tbW9uIChpbmZvLCBnZGJhcmNoKTsKKyAgIHRkZXAtPnhzYXZlX3hjcjBfb2Zmc2V0 ID0gSTM4Nl9MSU5VWF9YU0FWRV9YQ1IwX09GRlNFVDsKICAKICsgIHRkZXAtPm91dGVybW9zdF9m cmFtZV9wID0gYW1kNjRfbGludXhfb3V0ZXJtb3N0X2ZyYW1lOwogKwotICAgLyogR05VL0xpbnV4 IHVzZXMgU1ZSNC1zdHlsZSBzaGFyZWQgbGlicmFyaWVzLiAgKi8KLSAgIHNldF9zb2xpYl9zdnI0 X2ZldGNoX2xpbmtfbWFwX29mZnNldHMKLSAgICAgKGdkYmFyY2gsIHN2cjRfbHA2NF9mZXRjaF9s aW5rX21hcF9vZmZzZXRzKTsKLUluZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9hbWQ2NC10 ZGVwLmMKKyAgIC8qIEFkZCB0aGUgJW9yaWdfcmF4IHJlZ2lzdGVyIHVzZWQgZm9yIHN5c2NhbGwg cmVzdGFydGluZy4gICovCisgICBzZXRfZ2RiYXJjaF93cml0ZV9wYyAoZ2RiYXJjaCwgYW1kNjRf bGludXhfd3JpdGVfcGMpOworIAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FtZDY0 LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA3MDMub3JpZy9nZGIvYW1k NjQtdGRlcC5jCTIwMTItMDYtMTYgMTc6MjA6MjIuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcu NC41MC4yMDEyMDcwMy9nZGIvYW1kNjQtdGRlcC5jCTIwMTItMDctMDMgMTc6MzI6MTIuMzM1NjA0 NDE1ICswMjAwCi1AQCAtMjMyNCw2ICsyMzI0LDcgQEAgYW1kNjRfZnJhbWVfdW53aW5kX3N0b3Bf cmVhc29uIChzdHJ1Y3QgZgorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvYW1kNjQt dGRlcC5jCTIwMTQtMDItMDQgMjM6NDA6MDYuMjY1NDgzNDcxICswMTAwCisrKysgZ2RiLTcuNi45 MC4yMDE0MDEyNy9nZGIvYW1kNjQtdGRlcC5jCTIwMTQtMDItMDQgMjM6NDU6NDAuODQ2ODkxNjUz ICswMTAwCitAQCAtMjM1OSw2ICsyMzU5LDcgQEAgYW1kNjRfZnJhbWVfdW53aW5kX3N0b3BfcmVh c29uIChzdHJ1Y3QgZgogIHsKICAgIHN0cnVjdCBhbWQ2NF9mcmFtZV9jYWNoZSAqY2FjaGUgPQog ICAgICBhbWQ2NF9mcmFtZV9jYWNoZSAodGhpc19mcmFtZSwgdGhpc19jYWNoZSk7CkBAIC0xMjks NyArMTI5LDcgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2FtZDY0LXRkZXAuYwog IAogICAgaWYgKCFjYWNoZS0+YmFzZV9wKQogICAgICByZXR1cm4gVU5XSU5EX1VOQVZBSUxBQkxF OwotQEAgLTIzMzIsNiArMjMzMywxMCBAQCBhbWQ2NF9mcmFtZV91bndpbmRfc3RvcF9yZWFzb24g KHN0cnVjdCBmCitAQCAtMjM2Nyw2ICsyMzY4LDEwIEBAIGFtZDY0X2ZyYW1lX3Vud2luZF9zdG9w X3JlYXNvbiAoc3RydWN0IGYKICAgIGlmIChjYWNoZS0+YmFzZSA9PSAwKQogICAgICByZXR1cm4g VU5XSU5EX09VVEVSTU9TVDsKICAKQEAgLTE0MCwzMCArMTQwLDMxIEBAIEluZGV4OiBnZGItNy40 LjUwLjIwMTIwNzAzL2dkYi9hbWQ2NC10ZGVwLmMKICAgIHJldHVybiBVTldJTkRfTk9fUkVBU09O OwogIH0KICAKLUBAIC0yMzQxLDYgKzIzNDYsNyBAQCBhbWQ2NF9mcmFtZV90aGlzX2lkIChzdHJ1 Y3QgZnJhbWVfaW5mbyAqCitAQCAtMjQ5OCw2ICsyNTAzLDcgQEAgYW1kNjRfc2lndHJhbXBfZnJh bWVfdGhpc19pZCAoc3RydWN0IGZyYQogIHsKICAgIHN0cnVjdCBhbWQ2NF9mcmFtZV9jYWNoZSAq Y2FjaGUgPQotICAgICBhbWQ2NF9mcmFtZV9jYWNoZSAodGhpc19mcmFtZSwgdGhpc19jYWNoZSk7 CisgICAgIGFtZDY0X3NpZ3RyYW1wX2ZyYW1lX2NhY2hlICh0aGlzX2ZyYW1lLCB0aGlzX2NhY2hl KTsKICsgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdldF9mcmFt ZV9hcmNoICh0aGlzX2ZyYW1lKSk7CiAgCiAgICBpZiAoIWNhY2hlLT5iYXNlX3ApCi0gICAgIHJl dHVybjsKLUBAIC0yMzQ5LDYgKzIzNTUsMTAgQEAgYW1kNjRfZnJhbWVfdGhpc19pZCAoc3RydWN0 IGZyYW1lX2luZm8gKgotICAgaWYgKGNhY2hlLT5iYXNlID09IDApCi0gICAgIHJldHVybjsKLSAK LSsgIC8qIERldGVjdCBPUyBkZXBlbmRlbnQgb3V0ZXJtb3N0IGZyYW1lczsgc3VjaCBhcyBgY2xv bmUnLiAgKi8KLSsgIGlmICh0ZGVwLT5vdXRlcm1vc3RfZnJhbWVfcCAmJiB0ZGVwLT5vdXRlcm1v c3RfZnJhbWVfcCAodGhpc19mcmFtZSkpCi0rICAgIHJldHVybjsKLSsKLSAgICgqdGhpc19pZCkg PSBmcmFtZV9pZF9idWlsZCAoY2FjaGUtPmJhc2UgKyAxNiwgY2FjaGUtPnBjKTsKKyAgICAgKCp0 aGlzX2lkKSA9IGZyYW1lX2lkX2J1aWxkX3VuYXZhaWxhYmxlX3N0YWNrIChnZXRfZnJhbWVfcGMg KHRoaXNfZnJhbWUpKTsKK0BAIC0yNTA2LDYgKzI1MTIsMTEgQEAgYW1kNjRfc2lndHJhbXBfZnJh bWVfdGhpc19pZCAoc3RydWN0IGZyYQorICAgICAgIC8qIFRoaXMgbWFya3MgdGhlIG91dGVybW9z dCBmcmFtZS4gICovCisgICAgICAgcmV0dXJuOworICAgICB9CisrICBlbHNlIGlmICh0ZGVwLT5v dXRlcm1vc3RfZnJhbWVfcCAmJiB0ZGVwLT5vdXRlcm1vc3RfZnJhbWVfcCAodGhpc19mcmFtZSkp CisrICAgIHsKKysgICAgICAvKiBEZXRlY3QgT1MgZGVwZW5kZW50IG91dGVybW9zdCBmcmFtZXM7 IHN1Y2ggYXMgYGNsb25lJy4gICovCisrICAgICAgcmV0dXJuOworKyAgICB9CisgICBlbHNlCisg ICAgICgqdGhpc19pZCkgPSBmcmFtZV9pZF9idWlsZCAoY2FjaGUtPmJhc2UgKyAxNiwgZ2V0X2Zy YW1lX3BjICh0aGlzX2ZyYW1lKSk7CiAgfQotIAotSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMv Z2RiL2kzODYtdGRlcC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvaTM4Ni10ZGVw LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy40LjUwLjIwMTIwNzAzLm9yaWcvZ2RiL2kzODYtdGRl cC5jCTIwMTItMDYtMTggMTk6MzE6MzQuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNC41MC4y MDEyMDcwMy9nZGIvaTM4Ni10ZGVwLmMJMjAxMi0wNy0wMyAxNzozMjoxMi4zMzk2MDQ0MDkgKzAy MDAKLUBAIC03NjU1LDYgKzc2NTUsOSBAQCBpMzg2X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFy Y2hfaW5mbyBpCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9pMzg2LXRkZXAuYwky MDE0LTAyLTA0IDIzOjQwOjA2LjI2NzQ4MzQ3MyArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL2kzODYtdGRlcC5jCTIwMTQtMDItMDQgMjM6NDM6MzMuMDQ4NzM0OTc0ICswMTAwCitA QCAtNzgzMCw2ICs3ODMwLDkgQEAgaTM4Nl9nZGJhcmNoX2luaXQgKHN0cnVjdCBnZGJhcmNoX2lu Zm8gaQogIAogICAgdGRlcC0+eHNhdmVfeGNyMF9vZmZzZXQgPSAtMTsKICAKQEAgLTE3MywxMSAr MTc0LDExIEBAIEluZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9pMzg2LXRkZXAuYwogICAg dGRlcC0+cmVjb3JkX3JlZ21hcCA9IGkzODZfcmVjb3JkX3JlZ21hcDsKICAKICAgIHNldF9nZGJh cmNoX2xvbmdfbG9uZ19hbGlnbl9iaXQgKGdkYmFyY2gsIDMyKTsKLUluZGV4OiBnZGItNy40LjUw LjIwMTIwNzAzL2dkYi9pMzg2LXRkZXAuaAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2Ri L2kzODYtdGRlcC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNC41MC4yMDEyMDcwMy5vcmlnL2dk Yi9pMzg2LXRkZXAuaAkyMDEyLTA2LTEzIDIyOjI5OjE1LjAwMDAwMDAwMCArMDIwMAotKysrIGdk Yi03LjQuNTAuMjAxMjA3MDMvZ2RiL2kzODYtdGRlcC5oCTIwMTItMDctMDMgMTc6MzI6MTIuMzQw NjA0NDA4ICswMjAwCi1AQCAtMjE5LDYgKzIxOSw5IEBAIHN0cnVjdCBnZGJhcmNoX3RkZXAKKy0t LSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2kzODYtdGRlcC5oCTIwMTQtMDItMDQgMjM6 NDA6MDYuMjY4NDgzNDc1ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvaTM4Ni10 ZGVwLmgJMjAxNC0wMi0wNCAyMzo0MzozMy4wNDg3MzQ5NzQgKzAxMDAKK0BAIC0xOTIsNiArMTky LDkgQEAgc3RydWN0IGdkYmFyY2hfdGRlcAogICAgaW50ICgqaTM4Nl9zeXNlbnRlcl9yZWNvcmQp IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlKTsKICAgIC8qIFBhcnNlIHN5c2NhbGwgYXJncy4g ICovCiAgICBpbnQgKCppMzg2X3N5c2NhbGxfcmVjb3JkKSAoc3RydWN0IHJlZ2NhY2hlICpyZWdj YWNoZSk7CkBAIC0xODcsMTAgKzE4OCwxMCBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9n ZGIvaTM4Ni10ZGVwLmgKICB9OwogIAogIC8qIEZsb2F0aW5nLXBvaW50IHJlZ2lzdGVycy4gICov Ci1JbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvaWE2NC10ZGVwLmMKK0luZGV4OiBnZGIt Ny42LjkwLjIwMTQwMTI3L2dkYi9pYTY0LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQu NTAuMjAxMjA3MDMub3JpZy9nZGIvaWE2NC10ZGVwLmMJMjAxMi0wNy0wMyAxNzozMDowOS4wMDAw MDAwMDAgKzAyMDAKLSsrKyBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9pYTY0LXRkZXAuYwkyMDEy LTA3LTAzIDE3OjMyOjEyLjM0MzYwNDQwNSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcu b3JpZy9nZGIvaWE2NC10ZGVwLmMJMjAxNC0wMi0wNCAyMzo0MDowNi4yNzA0ODM0NzcgKzAxMDAK KysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9pYTY0LXRkZXAuYwkyMDE0LTAyLTA0IDIzOjQz OjMzLjA0OTczNDk3NSArMDEwMAogQEAgLTIxNzYsNiArMjE3NiwxMzggQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBmcmFtZV91bndpbmQgaWE2NF9mcgogICAgZGVmYXVsdF9mcmFtZV9zbmlmZmVyCiAg fTsKQEAgLTMzMCw3ICszMzEsNyBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvaWE2 NC10ZGVwLmMKICAvKiBTaWduYWwgdHJhbXBvbGluZXMuICAqLwogIAogIHN0YXRpYyB2b2lkCi1A QCAtNDE0Niw2ICs0Mjc4LDcgQEAgaWE2NF9nZGJhcmNoX2luaXQgKHN0cnVjdCBnZGJhcmNoX2lu Zm8gaQorQEAgLTQwMjMsNiArNDE1NSw3IEBAIGlhNjRfZ2RiYXJjaF9pbml0IChzdHJ1Y3QgZ2Ri YXJjaF9pbmZvIGkKICAgIHNldF9nZGJhcmNoX2R1bW15X2lkIChnZGJhcmNoLCBpYTY0X2R1bW15 X2lkKTsKICAKICAgIHNldF9nZGJhcmNoX3Vud2luZF9wYyAoZ2RiYXJjaCwgaWE2NF91bndpbmRf cGMpOwpAQCAtMzM4LDEwICszMzksMTAgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2Ri L2lhNjQtdGRlcC5jCiAgI2lmZGVmIEhBVkVfTElCVU5XSU5EX0lBNjRfSAogICAgZnJhbWVfdW53 aW5kX2FwcGVuZF91bndpbmRlciAoZ2RiYXJjaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZpYTY0X2xpYnVud2luZF9zaWd0cmFtcF9mcmFtZV91bndpbmQpOwotSW5kZXg6IGdk Yi03LjQuNTAuMjAxMjA3MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9idC1jbG9uZS1zdG9w LmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMv YnQtY2xvbmUtc3RvcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvdGVzdHN1 aXRlL2dkYi50aHJlYWRzL2J0LWNsb25lLXN0b3AuYwkyMDEyLTA3LTAzIDE3OjMyOjEyLjM0NDYw NDQwNCArMDIwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhy ZWFkcy9idC1jbG9uZS1zdG9wLmMJMjAxNC0wMi0wNCAyMzo0MzozMy4wNTA3MzQ5NzYgKzAxMDAK IEBAIC0wLDAgKzEsMzkgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUg R05VIGRlYnVnZ2VyLgogKwpAQCAtMzgyLDEwICszODMsMTAgQEAgSW5kZXg6IGdkYi03LjQuNTAu MjAxMjA3MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9idC1jbG9uZS1zdG9wLmMKICsJZm9y ICg7OykKICsJCXBhdXNlKCk7CiArfQotSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL3Rl c3RzdWl0ZS9nZGIudGhyZWFkcy9idC1jbG9uZS1zdG9wLmV4cAorSW5kZXg6IGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9idC1jbG9uZS1zdG9wLmV4cAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAw MAotKysrIGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9idC1j bG9uZS1zdG9wLmV4cAkyMDEyLTA3LTAzIDE3OjMyOjEyLjM0NDYwNDQwNCArMDIwMAorKysrIGdk Yi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9idC1jbG9uZS1zdG9w LmV4cAkyMDE0LTAyLTA0IDIzOjQzOjMzLjA1MDczNDk3NiArMDEwMAogQEAgLTAsMCArMSw2MSBA QAogKyMgQ29weXJpZ2h0IDIwMDYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCgpk aWZmIC0tZ2l0IGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1jb3JlLWFzLWFyZy5wYXRjaCBiL2dk Yi02LjYtYnVpbGRpZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2gKaW5kZXggZGZkNWExZS4uZmZl MGI0MCAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1jb3JlLWFzLWFyZy5wYXRj aAorKysgYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoCkBAIC01OCwx MyArNTgsMTMgQEAgSHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTAtMDEv bXNnMDA1MTcuaHRtbAogCSogZXhlYy5jIChleGVjX2ZpbGVfYXR0YWNoKTogUHJpbnQgYSBtb3Jl IHVzZWZ1bCBlcnJvciBtZXNzYWdlIGlmIHRoZQogCXVzZXIgZGlkICJnZGIgY29yZSIuCiAKLUlu ZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZXhjZXB0aW9ucy5oCitJbmRleDogZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvZXhjZXB0aW9ucy5oCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvZXhjZXB0aW9ucy5oCTIwMTMtMDgtMDIgMTY6Mjk6 NDQuNzcwNDQwMjYyICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2V4Y2Vw dGlvbnMuaAkyMDEzLTA4LTAyIDE2OjMwOjA2LjE5NzQ2ODcyNyArMDIwMAotQEAgLTkwLDYgKzkw LDkgQEAgZW51bSBlcnJvcnMgewotICAgICAgYWJvcnRlZCBhcyB0aGUgaW5mZXJpb3Igc3RhdGUg aXMgbm8gbG9uZ2VyIHZhbGlkLiAgKi8KLSAgIFRBUkdFVF9DTE9TRV9FUlJPUiwKKy0tLSBnZGIt Ny42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2V4Y2VwdGlvbnMuaAkyMDE0LTAyLTA2IDE3OjMxOjAw LjE0ODUyOTczNiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2V4Y2VwdGlvbnMu aAkyMDE0LTAyLTA2IDE3OjMxOjE3LjU2MDU0ODUyNSArMDEwMAorQEAgLTk3LDYgKzk3LDkgQEAg ZW51bSBlcnJvcnMgeworICAgLyogQW4gdW5kZWZpbmVkIGNvbW1hbmQgd2FzIGV4ZWN1dGVkLiAg Ki8KKyAgIFVOREVGSU5FRF9DT01NQU5EX0VSUk9SLAogIAogKyAgLyogQXR0ZW1wdCB0byBsb2Fk IGEgY29yZSBmaWxlIGFzIGV4ZWN1dGFibGUuICAqLwogKyAgSVNfQ09SRV9FUlJPUiwKQEAgLTcy LDEwICs3MiwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2V4Y2VwdGlv bnMuaAogICAgLyogQWRkIG1vcmUgZXJyb3JzIGhlcmUuICAqLwogICAgTlJfRVJST1JTCiAgfTsK LUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZXhlYy5jCitJbmRleDogZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvZXhlYy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMub3JpZy9nZGIvZXhlYy5jCTIwMTMtMDgtMDIgMTY6Mjk6NDQuNzcxNDQwMjY0ICsw MjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2V4ZWMuYwkyMDEzLTA4LTAyIDE2 OjMxOjMwLjEwMDYxODY1NyArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIv ZXhlYy5jCTIwMTQtMDItMDYgMTc6MzA6NTguMjY2NTI3NzA4ICswMTAwCisrKysgZ2RiLTcuNi45 MC4yMDE0MDEyNy9nZGIvZXhlYy5jCTIwMTQtMDItMDYgMTc6MzE6MDAuMTQ5NTI5NzM3ICswMTAw CiBAQCAtMzQsNiArMzQsNyBAQAogICNpbmNsdWRlICJnZGJ0aHJlYWQuaCIKICAjaW5jbHVkZSAi cHJvZ3NwYWNlLmgiCkBAIC04NCw3ICs4NCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvZXhlYy5jCiAgCiAgI2luY2x1ZGUgPGZjbnRsLmg+CiAgI2luY2x1ZGUgInJlYWRs aW5lL3JlYWRsaW5lLmgiCi1AQCAtMjE3LDEyICsyMTgsMjcgQEAgZXhlY19maWxlX2F0dGFjaCAo Y2hhciAqZmlsZW5hbWUsIGludCBmcgorQEAgLTIyOCwxMiArMjI5LDI3IEBAIGV4ZWNfZmlsZV9h dHRhY2ggKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnIKICAKICAgICAgICBpZiAoIWJmZF9jaGVja19m b3JtYXRfbWF0Y2hlcyAoZXhlY19iZmQsIGJmZF9vYmplY3QsICZtYXRjaGluZykpCiAgCXsKQEAg LTExNSwxMSArMTE1LDExIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZXhl Yy5jCiAgCX0KICAKICAgICAgICBpZiAoYnVpbGRfc2VjdGlvbl90YWJsZSAoZXhlY19iZmQsICZz ZWN0aW9ucywgJnNlY3Rpb25zX2VuZCkpCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMv Z2RiL21haW4uYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL21haW4uYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL21haW4uYwkyMDEzLTA4 LTAyIDE2OjI5OjQ0Ljc3MjQ0MDI2NSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi9tYWluLmMJMjAxMy0wOC0wMiAxNjozMDowNi4xOTk0Njg3MzAgKzAyMDAKLUBAIC0zMDAs NiArMzAwLDM2IEBAIHR5cGVkZWYgc3RydWN0IGNtZGFyZyB7CistLS0gZ2RiLTcuNi45MC4yMDE0 MDEyNy5vcmlnL2dkYi9tYWluLmMJMjAxNC0wMi0wNiAxNzozMDo1OC4yNjc1Mjc3MDkgKzAxMDAK KysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9tYWluLmMJMjAxNC0wMi0wNiAxNzozMjozMi4y MzI2MjkwNTIgKzAxMDAKK0BAIC0zMDcsNiArMzA3LDM2IEBAIHR5cGVkZWYgc3RydWN0IGNtZGFy ZyB7CiAgLyogRGVmaW5lIHR5cGUgVkVDIChjbWRhcmdfcykuICAqLwogIERFRl9WRUNfTyAoY21k YXJnX3MpOwogIApAQCAtMTU2LDcgKzE1Niw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvbWFpbi5jCiAgc3RhdGljIGludAogIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEp CiAgewotQEAgLTgxMCw2ICs4NDAsOCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQorQEAg LTgyNCw2ICs4NTQsOCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogIAl7CiAgCSAgc3lt YXJnID0gYXJndltvcHRpbmRdOwogIAkgIGV4ZWNhcmcgPSBhcmd2W29wdGluZF07CkBAIC0xNjUs NyArMTY1LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9tYWluLmMKICAJ ICBvcHRpbmQrKzsKICAJfQogIAotQEAgLTk3NSwxMSArMTAwNywyNSBAQCBjYXB0dXJlZF9tYWlu ICh2b2lkICpkYXRhKQorQEAgLTk4NywxMSArMTAxOSwyNSBAQCBjYXB0dXJlZF9tYWluICh2b2lk ICpkYXRhKQogICAgICAgICYmIHN5bWFyZyAhPSBOVUxMCiAgICAgICAgJiYgc3RyY21wIChleGVj YXJnLCBzeW1hcmcpID09IDApCiAgICAgIHsKQEAgLTE5MSw2ICsxOTEsNiBAQCBJbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL21haW4uYwogKwkgYXMgYSBjb3JlIGZpbGUuICAqLwog KyAgICAgIGlmIChjYXRjaF9jb21tYW5kX2Vycm9ycyAoZnVuYywgZXhlY2FyZywgIWJhdGNoX2Zs YWcsIFJFVFVSTl9NQVNLX0FMTCkKICsJICAmJiBjb3JlX2JmZCA9PSBOVUxMKQotIAljYXRjaF9j b21tYW5kX2Vycm9ycyAoc3ltYm9sX2ZpbGVfYWRkX21haW4sIHN5bWFyZywKLSAJCQkgICAgICAh YmF0Y2hfZmxhZywgUkVUVVJOX01BU0tfQUxMKTsKKyAJY2F0Y2hfY29tbWFuZF9lcnJvcnNfY29u c3QgKHN5bWJvbF9maWxlX2FkZF9tYWluLCBzeW1hcmcsCisgCQkJCSAgICAhYmF0Y2hfZmxhZywg UkVUVVJOX01BU0tfQUxMKTsKICAgICAgfQoKZGlmZiAtLWdpdCBhL2dkYi02LjYtYnVpbGRpZC1s b2NhdGUtcnBtLWxpYnJwbS13b3JrYXJvdW5kLnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0 ZS1ycG0tbGlicnBtLXdvcmthcm91bmQucGF0Y2gKaW5kZXggNjE3YmVmOS4uMzM3ODcxNyAxMDA2 NDQKLS0tIGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0tbGlicnBtLXdvcmthcm91bmQucGF0 Y2gKKysrIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0tbGlicnBtLXdvcmthcm91bmQucGF0 Y2gKQEAgLTEsOCArMSwyMCBAQAotSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA2MDIvZ2RiL2VsZnJl YWQuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Byb2Mtc2VydmljZS5saXN0CiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuNC41MC4yMDEyMDYwMi5vcmlnL2dkYi9lbGZyZWFkLmMJMjAx Mi0wNi0wMiAyMTozNTowOS42Njk1MTA3NTcgKzAyMDAKLSsrKyBnZGItNy40LjUwLjIwMTIwNjAy L2dkYi9lbGZyZWFkLmMJMjAxMi0wNi0wMiAyMTozNTozMS4xMDY1MDI2NjAgKzAyMDAKLUBAIC0x NjU4LDYgKzE2NTgsMTkgQEAgYnVpbGRfaWRfdG9fZmlsZW5hbWUgKHN0cnVjdCBidWlsZF9pZCAq YgorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvcHJvYy1zZXJ2aWNlLmxpc3QJMjAx NC0wMi0wNiAxNzozMjo0Mi44MTA2NDAzMjAgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3 L2dkYi9wcm9jLXNlcnZpY2UubGlzdAkyMDE0LTAyLTA2IDE3OjMzOjM1LjQwNjY5Njk2NCArMDEw MAorQEAgLTM3LDQgKzM3LDcgQEAKKyAgIHBzX3BzdG9wOworICAgcHNfcHRyZWFkOworICAgcHNf cHR3cml0ZTsKKysKKysgIC8qIGdkYi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLnBhdGNoICovCisr ICBycG1zcUVuYWJsZTsKKyB9OworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2J1aWxk LWlkLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2J1aWxk LWlkLmMJMjAxNC0wMi0wNiAxNzozMDoxNC4yMzA0ODAyNjQgKzAxMDAKKysrKyBnZGItNy42Ljkw LjIwMTQwMTI3L2dkYi9idWlsZC1pZC5jCTIwMTQtMDItMDYgMTc6MzQ6MjguODQ2NzU0MjgzICsw MTAwCitAQCAtNjc3LDYgKzY3NywxOSBAQCBidWlsZF9pZF90b19maWxlbmFtZSAoY29uc3Qgc3Ry dWN0IGVsZl9iCiAgI2luY2x1ZGUgPGRsZmNuLmg+CiAgI2VuZGlmCiAgCkBAIC0yMiwxNSArMzQs MyBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDYwMi9nZGIvZWxmcmVhZC5jCiAgLyogVGhpcyBN SVNTSU5HX1JQTV9IQVNIIHRyYWNrZXIgaXMgdXNlZCB0byBjb2xsZWN0IGFsbCB0aGUgbWlzc2lu ZyBycG0gZmlsZXMKICAgICBhbmQgYXZvaWQgdGhlaXIgZHVwbGljaXRpZXMgZHVyaW5nIGEgc2lu Z2xlIGluZmVyaW9yIHJ1bi4gICovCiAgCi1JbmRleDogZ2RiLTcuNC41MC4yMDEyMDYwMi9nZGIv cHJvYy1zZXJ2aWNlLmxpc3QKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy40LjUwLjIwMTIwNjAyLm9y aWcvZ2RiL3Byb2Mtc2VydmljZS5saXN0CTIwMTItMDYtMDIgMjE6MzU6MDkuNjY5NTEwNzU3ICsw MjAwCi0rKysgZ2RiLTcuNC41MC4yMDEyMDYwMi9nZGIvcHJvYy1zZXJ2aWNlLmxpc3QJMjAxMi0w Ni0wMiAyMTozNToxNC4yOTY1MDg5ODkgKzAyMDAKLUBAIC0zNyw0ICszNyw3IEBACi0gICBwc19w c3RvcDsKLSAgIHBzX3B0cmVhZDsKLSAgIHBzX3B0d3JpdGU7Ci0rCi0rICAvKiBnZGItNi42LWJ1 aWxkaWQtbG9jYXRlLXJwbS5wYXRjaCAqLwotKyAgcnBtc3FFbmFibGU7Ci0gfTsKCmRpZmYgLS1n aXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS1zY2wucGF0Y2ggYi9nZGItNi42LWJ1aWxk aWQtbG9jYXRlLXJwbS1zY2wucGF0Y2gKaW5kZXggMGZlODg3Ny4uZDU1MzNlOCAxMDA2NDQKLS0t IGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0tc2NsLnBhdGNoCisrKyBiL2dkYi02LjYtYnVp bGRpZC1sb2NhdGUtcnBtLXNjbC5wYXRjaApAQCAtMSw5ICsxLDExIEBACiB3YXJuaW5nOiBTa2lw cGluZyBkZXByZWNhdGVkIC5nZGJfaW5kZXggc2VjdGlvbgogaHR0cHM6Ly9idWd6aWxsYS5yZWRo YXQuY29tL3Nob3dfYnVnLmNnaT9pZD05NTM1ODUKIAotLS0tIGdkYi03LjUuOTEuMjAxMzA0MDct b3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTMtMDQtMjIgMTU6NDc6MTguODM3ODA2NzUyICswMjAw Ci0rKysgZ2RiLTcuNS45MS4yMDEzMDQwNy9nZGIvZHdhcmYycmVhZC5jCTIwMTMtMDQtMjIgMTY6 MTI6NTUuMDQzMTcxODgxICswMjAwCi1AQCAtMjcwMCw2ICsyNzAwLDE0IEBAIHJlYWRfaW5kZXhf ZnJvbV9zZWN0aW9uIChzdHJ1Y3Qgb2JqZmlsZQorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcv Z2RiL2R3YXJmMnJlYWQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3Jp Zy9nZGIvZHdhcmYycmVhZC5jCTIwMTQtMDItMDYgMTg6Mjg6MjMuNzU2MjMyMDI2ICswMTAwCisr KysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZHdhcmYycmVhZC5jCTIwMTQtMDItMDYgMTg6Mjg6 NDguOTY5MjU5MTIyICswMTAwCitAQCAtMzAzNSw2ICszMDM1LDE0IEBAIHJlYWRfaW5kZXhfZnJv bV9zZWN0aW9uIChzdHJ1Y3Qgb2JqZmlsZQogICAgICAgInNldCB1c2UtZGVwcmVjYXRlZC1pbmRl eC1zZWN0aW9ucyBvbiIuICAqLwogICAgaWYgKHZlcnNpb24gPCA2ICYmICFkZXByZWNhdGVkX29r KQogICAgICB7CkBAIC0xOCw3ICsyMCw3IEBAIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9z aG93X2J1Zy5jZ2k/aWQ9OTUzNTg1CiAgICAgICAgc3RhdGljIGludCB3YXJuaW5nX3ByaW50ZWQg PSAwOwogICAgICAgIGlmICghd2FybmluZ19wcmludGVkKQogIAl7Ci1AQCAtMjcxMSw2ICsyNzE5 LDggQEAgdG8gdXNlIHRoZSBzZWN0aW9uIGFueXdheS4iKSwKK0BAIC0zMDQ2LDYgKzMwNTQsOCBA QCB0byB1c2UgdGhlIHNlY3Rpb24gYW55d2F5LiIpLAogIAkgIHdhcm5pbmdfcHJpbnRlZCA9IDE7 CiAgCX0KICAgICAgICByZXR1cm4gMDsKQEAgLTI2LDEwICsyOCwxMiBAQCBodHRwczovL2J1Z3pp bGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTk1MzU4NQogKyAgICAgIH0KICAgICAgfQog ICAgLyogVmVyc2lvbiA3IGluZGljZXMgZ2VuZXJhdGVkIGJ5IGdvbGQgcmVmZXIgdG8gdGhlIENV IGZvciBhIHN5bWJvbCBpbnN0ZWFkCi0gICAgICBvZiB0aGUgVFUgKGZvciBzeW1ib2xzIGNvbWlu ZyBmcm9tIFRVcykuICBJdCdzIGp1c3QgYSBwZXJmb3JtYW5jZSBidWcsIGFuZAotLS0tIGdkYi03 LjUuOTEuMjAxMzA0MDctb3JpZy9nZGIvZWxmcmVhZC5jCTIwMTMtMDQtMjIgMTU6NDc6MTguNjM3 ODA3MjAwICswMjAwCi0rKysgZ2RiLTcuNS45MS4yMDEzMDQwNy9nZGIvZWxmcmVhZC5jCTIwMTMt MDQtMjIgMTY6MDQ6MDkuMjU5NDI5MDM0ICswMjAwCi1AQCAtMTY3NCw3ICsxNjc0LDcgQEAgc3Rh dGljIGludCBtaXNzaW5nX3JwbV9saXN0X2VudHJpZXM7CisgICAgICBvZiB0aGUgVFUgKGZvciBz eW1ib2xzIGNvbWluZyBmcm9tIFRVcyksCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIv YnVpbGQtaWQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIv YnVpbGQtaWQuYwkyMDE0LTAyLTA2IDE4OjI4OjIzLjc1ODIzMjAyOSArMDEwMAorKysrIGdkYi03 LjYuOTAuMjAxNDAxMjcvZ2RiL2J1aWxkLWlkLmMJMjAxNC0wMi0wNiAxODoyODoyNi44MTQyMzUz MTIgKzAxMDAKK0BAIC03MTEsNyArNzExLDcgQEAgc3RhdGljIGludCBtaXNzaW5nX3JwbV9saXN0 X2VudHJpZXM7CiAgLyogUmV0dXJucyB0aGUgY291bnQgb2YgbmV3bHkgYWRkZWQgcnBtcy4gICov CiAgCiAgc3RhdGljIGludApAQCAtMzgsNyArNDIsNyBAQCBodHRwczovL2J1Z3ppbGxhLnJlZGhh dC5jb20vc2hvd19idWcuY2dpP2lkPTk1MzU4NQogIHsKICAgIHN0YXRpYyBpbnQgcnBtX2luaXRf ZG9uZSA9IDA7CiAgICBycG10cyB0czsKLUBAIC0xNzc4LDcgKzE3NzgsNyBAQCBtaXNzaW5nX3Jw bV9lbmxpc3QgKGNvbnN0IGNoYXIgKmZpbGVuYW1lCitAQCAtODE1LDcgKzgxNSw3IEBAIG1pc3Np bmdfcnBtX2VubGlzdCAoY29uc3QgY2hhciAqZmlsZW5hbWUKICAgIG1pID0gcnBtdHNJbml0SXRl cmF0b3JfcCAodHMsIFJQTVRBR19CQVNFTkFNRVMsIGZpbGVuYW1lLCAwKTsKICAgIGlmIChtaSAh PSBOVUxMKQogICAgICB7CkBAIC00Nyw3ICs1MSw3IEBAIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0 LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9OTUzNTg1CiAgCXsKICAJICBIZWFkZXIgaDsKICAJICBjaGFy ICpkZWJ1Z2luZm8sICoqc2xvdCwgKnMsICpzMjsKLUBAIC0xODk3LDYgKzE4OTcsMzUgQEAgbWlz c2luZ19ycG1fZW5saXN0IChjb25zdCBjaGFyICpmaWxlbmFtZQorQEAgLTkzMyw2ICs5MzMsMzUg QEAgbWlzc2luZ19ycG1fZW5saXN0IChjb25zdCBjaGFyICpmaWxlbmFtZQogIAkgICAgeGZyZWUg KGRlYnVnaW5mbyk7CiAgCSAgY291bnQrKzsKICAJfQpAQCAtODMsNyArODcsNyBAQCBodHRwczov L2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTk1MzU4NQogIAogICAgICAgIHJw bWRiRnJlZUl0ZXJhdG9yX3AgKG1pKTsKICAgICAgfQotQEAgLTE5MDcsNiArMTkzNiwxOSBAQCBt aXNzaW5nX3JwbV9lbmxpc3QgKGNvbnN0IGNoYXIgKmZpbGVuYW1lCitAQCAtOTQzLDYgKzk3Miwx OSBAQCBtaXNzaW5nX3JwbV9lbmxpc3QgKGNvbnN0IGNoYXIgKmZpbGVuYW1lCiAgfQogIAogIHN0 YXRpYyBpbnQKCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaCBi L2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLnBhdGNoCmluZGV4IDMxOTJlZTEuLjc3YjJjYTQg MTAwNjQ0Ci0tLSBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLnBhdGNoCisrKyBiL2dkYi02 LjYtYnVpbGRpZC1sb2NhdGUtcnBtLnBhdGNoCkBAIC0xLDcgKzEsNyBAQAotSW5kZXg6IGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9ldmVudC10b3AuYworSW5kZXg6IGdkYi03LjYuOTAuMjAx NDAxMjcvZ2RiL2V2ZW50LXRvcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMub3JpZy9nZGIvZXZlbnQtdG9wLmMJMjAxMy0wOC0wMiAxNjoyNToyNC45NjgwOTQzOTgg KzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZXZlbnQtdG9wLmMJMjAxMy0w OC0wMiAxNjoyNTozOC42MzgxMTI4NzQgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9y aWcvZ2RiL2V2ZW50LXRvcC5jCTIwMTQtMDItMDYgMTc6MTg6MjYuOTY1NzE3MjEwICswMTAwCisr KysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZXZlbnQtdG9wLmMJMjAxNC0wMi0wNiAxNjo1OToy My4xNzQ0NzQ0MDQgKzAxMDAKIEBAIC0zNyw2ICszNyw3IEBACiAgI2luY2x1ZGUgImdkYmNtZC5o IgkJLyogZm9yIGRvbnRfcmVwZWF0KCkgKi8KICAjaW5jbHVkZSAiYW5ub3RhdGUuaCIKQEAgLTEw LDE2ICsxMCwxNiBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2V2ZW50LXRv cC5jCiAgCiAgLyogcmVhZGxpbmUgaW5jbHVkZSBmaWxlcy4gICovCiAgI2luY2x1ZGUgInJlYWRs aW5lL3JlYWRsaW5lLmgiCi1AQCAtMTcxLDYgKzE3Miw4IEBAIHJsX2NhbGxiYWNrX3JlYWRfY2hh cl93cmFwcGVyIChnZGJfY2xpZW4KK0BAIC0xNzMsNiArMTc0LDggQEAgcmxfY2FsbGJhY2tfcmVh ZF9jaGFyX3dyYXBwZXIgKGdkYl9jbGllbgogIHZvaWQKLSBjbGlfY29tbWFuZF9sb29wICh2b2lk KQorIGNsaV9jb21tYW5kX2xvb3AgKHZvaWQgKmRhdGEpCiAgewogKyAgZGVidWdfZmx1c2hfbWlz c2luZyAoKTsKICsKICAgIGRpc3BsYXlfZ2RiX3Byb21wdCAoMCk7CiAgCiAgICAvKiBOb3cgaXQn cyB0aW1lIHRvIHN0YXJ0IHRoZSBldmVudCBsb29wLiAgKi8KLUBAIC0yMzgsNiArMjQxLDggQEAg ZGlzcGxheV9nZGJfcHJvbXB0IChjaGFyICpuZXdfcHJvbXB0KQorQEAgLTI0MCw2ICsyNDMsOCBA QCBkaXNwbGF5X2dkYl9wcm9tcHQgKGNoYXIgKm5ld19wcm9tcHQpCiAgICAvKiBSZXNldCB0aGUg bmVzdGluZyBkZXB0aCB1c2VkIHdoZW4gdHJhY2UtY29tbWFuZHMgaXMgc2V0LiAgKi8KICAgIHJl c2V0X2NvbW1hbmRfbmVzdF9kZXB0aCAoKTsKICAKQEAgLTI4LDgxNSArMjgsOTE2IEBAIEluZGV4 OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZXZlbnQtdG9wLmMKICAgIC8qIEVhY2ggaW50 ZXJwcmV0ZXIgaGFzIGl0cyBvd24gcnVsZXMgb24gZGlzcGxheWluZyB0aGUgY29tbWFuZAogICAg ICAgcHJvbXB0LiAgKi8KICAgIGlmICghY3VycmVudF9pbnRlcnBfZGlzcGxheV9wcm9tcHRfcCAo KSkKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZWxmcmVhZC5jCitJbmRleDog Z2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvc3ltZmlsZS5oCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvZWxmcmVhZC5jCTIwMTMtMDgtMDIgMTY6MjU6MjQu OTcwMDk0NDAxICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2VsZnJlYWQu YwkyMDEzLTA4LTAyIDE2OjI1OjI3LjMzNjA5NzU1NyArMDIwMAotQEAgLTQ5LDYgKzQ5LDcgQEAK LSAjaW5jbHVkZSAiZ2RiY29yZS5oIgotICNpbmNsdWRlICJnZGJjbWQuaCIKLSAjaW5jbHVkZSAi b2JzZXJ2ZXIuaCIKLSsjaW5jbHVkZSAiZWxmL2V4dGVybmFsLmgiCi0gI2luY2x1ZGUgPHN5cy9z dGF0Lmg+CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9zeW1maWxlLmgJMjAxNC0w Mi0wNiAxNzoxODozMy44NjU3MjQ2NjYgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dk Yi9zeW1maWxlLmgJMjAxNC0wMi0wNiAxNzowODo1Ni4yODIwOTkxNTAgKzAxMDAKK0BAIC01NTcs NiArNTU3LDggQEAgZXh0ZXJuIHN0cnVjdCBjbGVhbnVwICppbmNyZW1lbnRfcmVhZGluZworIC8q IGJ1aWxkLWlkIHN1cHBvcnQuICAqLworIGV4dGVybiBzdHJ1Y3QgZWxmX2J1aWxkX2lkICpidWls ZF9pZF9hZGRyX2dldCAoQ09SRV9BRERSIGFkZHIpOworIGV4dGVybiB2b2lkIGRlYnVnX3ByaW50 X21pc3NpbmcgKGNvbnN0IGNoYXIgKmJpbmFyeSwgY29uc3QgY2hhciAqZGVidWcpOworK2V4dGVy biB2b2lkIGRlYnVnX2ZsdXNoX21pc3NpbmcgKHZvaWQpOworKyNkZWZpbmUgQlVJTERfSURfTUFJ Tl9FWEVDVVRBQkxFX0ZJTEVOQU1FIF8oInRoZSBtYWluIGV4ZWN1dGFibGUgZmlsZSIpCiAgCi0g ZXh0ZXJuIHZvaWQgX2luaXRpYWxpemVfZWxmcmVhZCAodm9pZCk7Ci1AQCAtMTcwMSw4ICsxNzAy LDM2MCBAQCBidWlsZF9pZF90b19maWxlbmFtZSAoY29uc3Qgc3RydWN0IGVsZl9iCi0gICByZXR1 cm4gcmV0dmFsOwotIH0KKyAvKiBGcm9tIGR3YXJmMnJlYWQuYyAqLwogIAotKyNpZmRlZiBIQVZF X0xJQlJQTQorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ri LmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvdGVzdHN1 aXRlL2xpYi9nZGIuZXhwCTIwMTQtMDItMDYgMTc6MTg6MjYuOTY5NzE3MjE0ICswMTAwCisrKysg Z2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTQtMDItMDYg MTc6MTg6MzMuODY2NzI0NjY3ICswMTAwCitAQCAtMTUwNCw3ICsxNTA0LDcgQEAgcHJvYyBkZWZh dWx0X2dkYl9zdGFydCB7IH0geworIAkgICAgd2FybmluZyAiQ291bGRuJ3Qgc2V0IHRoZSB3aWR0 aCB0byAwLiIKKyAJfQorICAgICB9CistICAgICMgVHVybiBvZmYgdGhlIG1pc3Npbmcgd2Fybmlu Z3MgYXMgdGhlIHRlc3RzdWl0ZSBkb2VzIG5vdCBleHBlY3QgaXQuCisrICAgICMgVHVybiBvZmYg dGhlIG1pc3NpbmcgUlBNcyB3YXJuaW5ncyBhcyB0aGUgdGVzdHN1aXRlIGRvZXMgbm90IGV4cGVj dCBpdC4KKyAgICAgc2VuZF9nZGIgInNldCBidWlsZC1pZC12ZXJib3NlIDBcbiIKKyAgICAgZ2Ri X2V4cGVjdCAxMCB7CisgCS1yZSAiJGdkYl9wcm9tcHQgJCIgeworSW5kZXg6IGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKKz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t LSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5l eHAJMjAxNC0wMi0wNiAxNzoxODoyNi45NzA3MTcyMTUgKzAxMDAKKysrKyBnZGItNy42LjkwLjIw MTQwMTI3L2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTQtMDItMDYgMTc6MTg6 MzMuODY3NzI0NjY4ICswMTAwCitAQCAtMjEyLDcgKzIxMiw3IEBAIHByb2MgZGVmYXVsdF9taV9n ZGJfc3RhcnQgeyBhcmdzIH0geworIAkgICAgd2FybmluZyAiQ291bGRuJ3Qgc2V0IHRoZSB3aWR0 aCB0byAwLiIKKyAJfQorICAgICB9CistICAgICMgVHVybiBvZmYgdGhlIG1pc3Npbmcgd2Fybmlu Z3MgYXMgdGhlIHRlc3RzdWl0ZSBkb2VzIG5vdCBleHBlY3QgaXQuCisrICAgICMgVHVybiBvZmYg dGhlIG1pc3NpbmcgUlBNcyB3YXJuaW5ncyBhcyB0aGUgdGVzdHN1aXRlIGRvZXMgbm90IGV4cGVj dCBpdC4KKyAgICAgc2VuZF9nZGIgIjE5MC1nZGItc2V0IGJ1aWxkLWlkLXZlcmJvc2UgMFxuIgor ICAgICBnZGJfZXhwZWN0IDEwIHsKKyAJLXJlICIuKjE5MC1nZGItc2V0IGJ1aWxkLWlkLXZlcmJv c2UgMFxyXG4xOTBcXFxeZG9uZVxyXG4kbWlfZ2RiX3Byb21wdCQiIHsKK0luZGV4OiBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi90dWkvdHVpLWludGVycC5jCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcu Ni45MC4yMDE0MDEyNy5vcmlnL2dkYi90dWkvdHVpLWludGVycC5jCTIwMTQtMDItMDYgMTc6MTg6 MjYuOTcwNzE3MjE1ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdHVpL3R1aS1p bnRlcnAuYwkyMDE0LTAyLTA2IDE3OjE4OjMzLjg2NzcyNDY2OCArMDEwMAorQEAgLTMwLDYgKzMw LDcgQEAKKyAjaW5jbHVkZSAidHVpL3R1aS5oIgorICNpbmNsdWRlICJ0dWkvdHVpLWlvLmgiCisg I2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKKysjaW5jbHVkZSAic3ltZmlsZS5oIgorIAorIC8qIFNl dCB0byAxIHdoZW4gdGhlIFRVSSBtb2RlIG11c3QgYmUgYWN0aXZhdGVkIHdoZW4gd2UgZmlyc3Qg c3RhcnQKKyAgICBnZGIuICAqLworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FjbG9j YWwubTQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2FjbG9j YWwubTQJMjAxNC0wMi0wNiAxNzoxODozMy44Njg3MjQ2NjkgKzAxMDAKKysrKyBnZGItNy42Ljkw LjIwMTQwMTI3L2dkYi9hY2xvY2FsLm00CTIwMTQtMDItMDYgMTc6MDk6NDkuODc3MTU3NDA1ICsw MTAwCitAQCAtMTEsNiArMTEsMjIxIEBACisgIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisgIyBQQVJUSUNVTEFSIFBVUlBPU0Uu CisgCisrIyBwa2cubTQgLSBNYWNyb3MgdG8gbG9jYXRlIGFuZCB1dGlsaXNlIHBrZy1jb25maWcu ICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQorKyMgc2VyaWFsIDEgKHBrZy1jb25maWctMC4y NCkKKysjIAorKyMgQ29weXJpZ2h0IMKpIDIwMDQgU2NvdHQgSmFtZXMgUmVtbmFudCA8c2NvdHRA bmV0c3BsaXQuY29tPi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu c2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLCBidXQKKysjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrIyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrIyBGb3VuZGF0aW9uLCBJ bmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywg VVNBLgorKyMKKysjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlLCBpZiB5b3UKKysjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2Yg YSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQorKyMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJh dGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKKysjIHRoZSBzYW1lIGRp c3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3Jh bS4KICsKLSsjaW5jbHVkZSA8cnBtL3JwbWxpYi5oPgotKyNpbmNsdWRlIDxycG0vcnBtdHMuaD4K LSsjaW5jbHVkZSA8cnBtL3JwbWRiLmg+Ci0rI2luY2x1ZGUgPHJwbS9oZWFkZXIuaD4KLSsjaWZk ZWYgRExPUEVOX0xJQlJQTQotKyNpbmNsdWRlIDxkbGZjbi5oPgotKyNlbmRpZgorKyMgUEtHX1BS T0dfUEtHX0NPTkZJRyhbTUlOLVZFUlNJT05dKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorK0FDX0RFRlVOKFtQS0dfUFJPR19QS0dfQ09ORklHXSwKKytbbTRfcGF0dGVy bl9mb3JiaWQoW15fP1BLR19bQS1aX10rJF0pCisrbTRfcGF0dGVybl9hbGxvdyhbXlBLR19DT05G SUcoXyhQQVRIfExJQkRJUnxTWVNST09UX0RJUnxBTExPV19TWVNURU1fKENGTEFHU3xMSUJTKSkp PyRdKQorK200X3BhdHRlcm5fYWxsb3coW15QS0dfQ09ORklHXyhESVNBQkxFX1VOSU5TVEFMTEVE fFRPUF9CVUlMRF9ESVJ8REVCVUdfU1BFVykkXSkKKytBQ19BUkdfVkFSKFtQS0dfQ09ORklHXSwg W3BhdGggdG8gcGtnLWNvbmZpZyB1dGlsaXR5XSkKKytBQ19BUkdfVkFSKFtQS0dfQ09ORklHX1BB VEhdLCBbZGlyZWN0b3JpZXMgdG8gYWRkIHRvIHBrZy1jb25maWcncyBzZWFyY2ggcGF0aF0pCisr QUNfQVJHX1ZBUihbUEtHX0NPTkZJR19MSUJESVJdLCBbcGF0aCBvdmVycmlkaW5nIHBrZy1jb25m aWcncyBidWlsdC1pbiBzZWFyY2ggcGF0aF0pCiArCi0rLyogVGhpcyBNSVNTSU5HX1JQTV9IQVNI IHRyYWNrZXIgaXMgdXNlZCB0byBjb2xsZWN0IGFsbCB0aGUgbWlzc2luZyBycG0gZmlsZXMKLSsg ICBhbmQgYXZvaWQgdGhlaXIgZHVwbGljaXRpZXMgZHVyaW5nIGEgc2luZ2xlIGluZmVyaW9yIHJ1 bi4gICovCisraWYgdGVzdCAieCRhY19jdl9lbnZfUEtHX0NPTkZJR19zZXQiICE9ICJ4c2V0Ijsg dGhlbgorKwlBQ19QQVRIX1RPT0woW1BLR19DT05GSUddLCBbcGtnLWNvbmZpZ10pCisrZmkKKytp ZiB0ZXN0IC1uICIkUEtHX0NPTkZJRyI7IHRoZW4KKysJX3BrZ19taW5fdmVyc2lvbj1tNF9kZWZh dWx0KFskMV0sIFswLjkuMF0pCisrCUFDX01TR19DSEVDS0lORyhbcGtnLWNvbmZpZyBpcyBhdCBs ZWFzdCB2ZXJzaW9uICRfcGtnX21pbl92ZXJzaW9uXSkKKysJaWYgJFBLR19DT05GSUcgLS1hdGxl YXN0LXBrZ2NvbmZpZy12ZXJzaW9uICRfcGtnX21pbl92ZXJzaW9uOyB0aGVuCisrCQlBQ19NU0df UkVTVUxUKFt5ZXNdKQorKwllbHNlCisrCQlBQ19NU0dfUkVTVUxUKFtub10pCisrCQlQS0dfQ09O RklHPSIiCisrCWZpCisrZmlbXWRubAorK10pIyBQS0dfUFJPR19QS0dfQ09ORklHCiArCi0rc3Rh dGljIHN0cnVjdCBodGFiICptaXNzaW5nX3JwbV9oYXNoOworKyMgUEtHX0NIRUNLX0VYSVNUUyhN T0RVTEVTLCBbQUNUSU9OLUlGLUZPVU5EXSwgW0FDVElPTi1JRi1OT1QtRk9VTkRdKQorKyMKKysj IENoZWNrIHRvIHNlZSB3aGV0aGVyIGEgcGFydGljdWxhciBzZXQgb2YgbW9kdWxlcyBleGlzdHMu ICBTaW1pbGFyCisrIyB0byBQS0dfQ0hFQ0tfTU9EVUxFUygpLCBidXQgZG9lcyBub3Qgc2V0IHZh cmlhYmxlcyBvciBwcmludCBlcnJvcnMuCisrIworKyMgUGxlYXNlIHJlbWVtYmVyIHRoYXQgbTQg ZXhwYW5kcyBBQ19SRVFVSVJFKFtQS0dfUFJPR19QS0dfQ09ORklHXSkKKysjIG9ubHkgYXQgdGhl IGZpcnN0IG9jY3VyZW5jZSBpbiBjb25maWd1cmUuYWMsIHNvIGlmIHRoZSBmaXJzdCBwbGFjZQor KyMgaXQncyBjYWxsZWQgbWlnaHQgYmUgc2tpcHBlZCAoc3VjaCBhcyBpZiBpdCBpcyB3aXRoaW4g YW4gImlmIiwgeW91CisrIyBoYXZlIHRvIGNhbGwgUEtHX0NIRUNLX0VYSVNUUyBtYW51YWxseQor KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKytBQ19ERUZVTihbUEtHX0NIRUNLX0VYSVNUU10sCisrW0FDX1JFUVVJUkUoW1BL R19QUk9HX1BLR19DT05GSUddKWRubAorK2lmIHRlc3QgLW4gIiRQS0dfQ09ORklHIiAmJiBcCisr ICAgIEFDX1JVTl9MT0coWyRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICIkMSJd KTsgdGhlbgorKyAgbTRfZGVmYXVsdChbJDJdLCBbOl0pCisrbTRfaWZ2YWxuKFskM10sIFtlbHNl CisrICAkM10pZG5sCisrZmldKQogKwotKy8qIFRoaXMgTUlTU0lOR19SUE1fTElTVCB0cmFja2Vy IGlzIHVzZWQgdG8gY29sbGVjdCBhbmQgcHJpbnQgYXMgYSBzaW5nbGUgbGluZQotKyAgIGFsbCB0 aGUgcnBtcyByaWdodCBiZWZvcmUgdGhlIG5lYXJlc3QgR0RCIHByb21wdC4gIEl0IGdldHMgY2xl YXJlZCBhZnRlcgotKyAgIGVhY2ggc3VjaCBwcmludCAoaXQgaXMgcXVlc3Rpb25hYmxlIGlmIHdl IHNob3VsZCBjbGVhciBpdCBhZnRlciB0aGUgcHJpbnQpLgotKyAgICovCisrIyBfUEtHX0NPTkZJ RyhbVkFSSUFCTEVdLCBbQ09NTUFORF0sIFtNT0RVTEVTXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZmluZShbX1BLR19DT05GSUddLAor K1tpZiB0ZXN0IC1uICIkJDEiOyB0aGVuCisrICAgIHBrZ19jdl9bXSQxPSIkJDEiCisrIGVsaWYg dGVzdCAtbiAiJFBLR19DT05GSUciOyB0aGVuCisrICAgIFBLR19DSEVDS19FWElTVFMoWyQzXSwK KysgICAgICAgICAgICAgICAgICAgICBbcGtnX2N2X1tdJDE9YCRQS0dfQ09ORklHIC0tW10kMiAi JDMiIDI+L2Rldi9udWxsYAorKwkJICAgICAgdGVzdCAieCQ/IiAhPSAieDAiICYmIHBrZ19mYWls ZWQ9eWVzIF0sCisrCQkgICAgIFtwa2dfZmFpbGVkPXllc10pCisrIGVsc2UKKysgICAgcGtnX2Zh aWxlZD11bnRyaWVkCisrZmlbXWRubAorK10pIyBfUEtHX0NPTkZJRwogKwotK3N0cnVjdCBtaXNz aW5nX3JwbQotKyAgewotKyAgICBzdHJ1Y3QgbWlzc2luZ19ycG0gKm5leHQ7Ci0rICAgIGNoYXIg cnBtWzFdOwotKyAgfTsKLStzdGF0aWMgc3RydWN0IG1pc3NpbmdfcnBtICptaXNzaW5nX3JwbV9s aXN0OwotK3N0YXRpYyBpbnQgbWlzc2luZ19ycG1fbGlzdF9lbnRyaWVzOworKyMgX1BLR19TSE9S VF9FUlJPUlNfU1VQUE9SVEVECisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK0FD X0RFRlVOKFtfUEtHX1NIT1JUX0VSUk9SU19TVVBQT1JURURdLAorK1tBQ19SRVFVSVJFKFtQS0df UFJPR19QS0dfQ09ORklHXSkKKytpZiAkUEtHX0NPTkZJRyAtLWF0bGVhc3QtcGtnY29uZmlnLXZl cnNpb24gMC4yMDsgdGhlbgorKyAgICAgICAgX3BrZ19zaG9ydF9lcnJvcnNfc3VwcG9ydGVkPXll cworK2Vsc2UKKysgICAgICAgIF9wa2dfc2hvcnRfZXJyb3JzX3N1cHBvcnRlZD1ubworK2ZpW11k bmwKKytdKSMgX1BLR19TSE9SVF9FUlJPUlNfU1VQUE9SVEVECiArCi0rLyogUmV0dXJucyB0aGUg Y291bnQgb2YgbmV3bHkgYWRkZWQgcnBtcy4gICovCiArCi0rc3RhdGljIGludAotK21pc3Npbmdf cnBtX2VubGlzdCAoY29uc3QgY2hhciAqZmlsZW5hbWUpCi0rewotKyAgc3RhdGljIGludCBycG1f aW5pdF9kb25lID0gMDsKLSsgIHJwbXRzIHRzOwotKyAgcnBtZGJNYXRjaEl0ZXJhdG9yIG1pOwot KyAgaW50IGNvdW50ID0gMDsKKysjIFBLR19DSEVDS19NT0RVTEVTKFZBUklBQkxFLVBSRUZJWCwg TU9EVUxFUywgW0FDVElPTi1JRi1GT1VORF0sCisrIyBbQUNUSU9OLUlGLU5PVC1GT1VORF0pCisr IworKyMKKysjIE5vdGUgdGhhdCBpZiB0aGVyZSBpcyBhIHBvc3NpYmlsaXR5IHRoZSBmaXJzdCBj YWxsIHRvCisrIyBQS0dfQ0hFQ0tfTU9EVUxFUyBtaWdodCBub3QgaGFwcGVuLCB5b3Ugc2hvdWxk IGJlIHN1cmUgdG8gaW5jbHVkZSBhbgorKyMgZXhwbGljaXQgY2FsbCB0byBQS0dfUFJPR19QS0df Q09ORklHIGluIHlvdXIgY29uZmlndXJlLmFjCisrIworKyMKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4o W1BLR19DSEVDS19NT0RVTEVTXSwKKytbQUNfUkVRVUlSRShbUEtHX1BST0dfUEtHX0NPTkZJR10p ZG5sCisrQUNfQVJHX1ZBUihbJDFdW19DRkxBR1NdLCBbQyBjb21waWxlciBmbGFncyBmb3IgJDEs IG92ZXJyaWRpbmcgcGtnLWNvbmZpZ10pZG5sCisrQUNfQVJHX1ZBUihbJDFdW19MSUJTXSwgW2xp bmtlciBmbGFncyBmb3IgJDEsIG92ZXJyaWRpbmcgcGtnLWNvbmZpZ10pZG5sCiArCi0rI2lmZGVm IERMT1BFTl9MSUJSUE0KLSsgIC8qIER1cGxpY2F0ZSBoZXJlIHRoZSBkZWNsYXJhdGlvbnMgdG8g dmVyaWZ5IHRoZXkgbWF0Y2guICBUaGUgc2FtZSBzYW5pdHkKLSsgICAgIGNoZWNrIGlzIHByZXNl bnQgYWxzbyBpbiBgY29uZmlndXJlLmFjJy4gICovCi0rICBleHRlcm4gY2hhciAqIGhlYWRlckZv cm1hdChIZWFkZXIgaCwgY29uc3QgY2hhciAqIGZtdCwgZXJybXNnX3QgKiBlcnJtc2cpOwotKyAg c3RhdGljIGNoYXIgKigqaGVhZGVyRm9ybWF0X3ApIChIZWFkZXIgaCwgY29uc3QgY2hhciAqIGZt dCwgZXJybXNnX3QgKmVycm1zZyk7Ci0rICBleHRlcm4gaW50IHJwbVJlYWRDb25maWdGaWxlcyhj b25zdCBjaGFyICogZmlsZSwgY29uc3QgY2hhciAqIHRhcmdldCk7Ci0rICBzdGF0aWMgaW50ICgq cnBtUmVhZENvbmZpZ0ZpbGVzX3ApIChjb25zdCBjaGFyICogZmlsZSwgY29uc3QgY2hhciAqIHRh cmdldCk7Ci0rICBleHRlcm4gcnBtZGJNYXRjaEl0ZXJhdG9yIHJwbWRiRnJlZUl0ZXJhdG9yKHJw bWRiTWF0Y2hJdGVyYXRvciBtaSk7Ci0rICBzdGF0aWMgcnBtZGJNYXRjaEl0ZXJhdG9yICgqcnBt ZGJGcmVlSXRlcmF0b3JfcCkgKHJwbWRiTWF0Y2hJdGVyYXRvciBtaSk7Ci0rICBleHRlcm4gSGVh ZGVyIHJwbWRiTmV4dEl0ZXJhdG9yKHJwbWRiTWF0Y2hJdGVyYXRvciBtaSk7Ci0rICBzdGF0aWMg SGVhZGVyICgqcnBtZGJOZXh0SXRlcmF0b3JfcCkgKHJwbWRiTWF0Y2hJdGVyYXRvciBtaSk7Ci0r ICBleHRlcm4gcnBtdHMgcnBtdHNDcmVhdGUodm9pZCk7Ci0rICBzdGF0aWMgcnBtdHMgKCpycG10 c0NyZWF0ZV9wKSAodm9pZCk7Ci0rICBleHRlcm4gcnBtdHMgcnBtdHNGcmVlKHJwbXRzIHRzKTsK LSsgIHN0YXRpYyBycG10cyAoKnJwbXRzRnJlZV9wKSAocnBtdHMgdHMpOwotKyAgZXh0ZXJuIHJw bWRiTWF0Y2hJdGVyYXRvciBycG10c0luaXRJdGVyYXRvcihjb25zdCBycG10cyB0cywgcnBtVGFn IHJwbXRhZywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3Qgdm9pZCAqIGtleXAsIHNpemVfdCBrZXlsZW4pOwotKyAgc3RhdGljIHJwbWRiTWF0Y2hJ dGVyYXRvciAoKnJwbXRzSW5pdEl0ZXJhdG9yX3ApIChjb25zdCBycG10cyB0cywKLSsJCQkJCQkg ICAgcnBtVGFnIHJwbXRhZywKLSsJCQkJCQkgICAgY29uc3Qgdm9pZCAqa2V5cCwKLSsJCQkJCQkg ICAgc2l6ZV90IGtleWxlbik7Ci0rI2Vsc2UJLyogIURMT1BFTl9MSUJSUE0gKi8KLSsjIGRlZmlu ZSBoZWFkZXJGb3JtYXRfcCBoZWFkZXJGb3JtYXQKLSsjIGRlZmluZSBycG1SZWFkQ29uZmlnRmls ZXNfcCBycG1SZWFkQ29uZmlnRmlsZXMKLSsjIGRlZmluZSBycG1kYkZyZWVJdGVyYXRvcl9wIHJw bWRiRnJlZUl0ZXJhdG9yCi0rIyBkZWZpbmUgcnBtZGJOZXh0SXRlcmF0b3JfcCBycG1kYk5leHRJ dGVyYXRvcgotKyMgZGVmaW5lIHJwbXRzQ3JlYXRlX3AgcnBtdHNDcmVhdGUKLSsjIGRlZmluZSBy cG10c0ZyZWVfcCBycG10c0ZyZWUKLSsjIGRlZmluZSBycG10c0luaXRJdGVyYXRvcl9wIHJwbXRz SW5pdEl0ZXJhdG9yCi0rI2VuZGlmCS8qICFETE9QRU5fTElCUlBNICovCisrcGtnX2ZhaWxlZD1u bworK0FDX01TR19DSEVDS0lORyhbZm9yICQxXSkKICsKLSsgIGdkYl9hc3NlcnQgKGZpbGVuYW1l ICE9IE5VTEwpOworK19QS0dfQ09ORklHKFskMV1bX0NGTEFHU10sIFtjZmxhZ3NdLCBbJDJdKQor K19QS0dfQ09ORklHKFskMV1bX0xJQlNdLCBbbGlic10sIFskMl0pCiArCi0rICBpZiAoc3RyY21w IChmaWxlbmFtZSwgQlVJTERfSURfTUFJTl9FWEVDVVRBQkxFX0ZJTEVOQU1FKSA9PSAwKQotKyAg ICByZXR1cm4gMDsKKyttNF9kZWZpbmUoW19QS0dfVEVYVF0sIFtBbHRlcm5hdGl2ZWx5LCB5b3Ug bWF5IHNldCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzICQxW11fQ0ZMQUdTCisrYW5kICQxW11f TElCUyB0byBhdm9pZCB0aGUgbmVlZCB0byBjYWxsIHBrZy1jb25maWcuCisrU2VlIHRoZSBwa2ct Y29uZmlnIG1hbiBwYWdlIGZvciBtb3JlIGRldGFpbHMuXSkKICsKLSsgIGlmIChmaWxlbmFtZVsw XSAhPSAnLycpCi0rICAgIHsKLSsgICAgICB3YXJuaW5nIChfKCJJZ25vcmluZyBub24tYWJzb2x1 dGUgZmlsZW5hbWU6IDwlcz4iKSwgZmlsZW5hbWUpOwotKyAgICAgIHJldHVybiAwOwotKyAgICB9 CisraWYgdGVzdCAkcGtnX2ZhaWxlZCA9IHllczsgdGhlbgorKyAgIAlBQ19NU0dfUkVTVUxUKFtu b10pCisrICAgICAgICBfUEtHX1NIT1JUX0VSUk9SU19TVVBQT1JURUQKKysgICAgICAgIGlmIHRl c3QgJF9wa2dfc2hvcnRfZXJyb3JzX3N1cHBvcnRlZCA9IHllczsgdGhlbgorKwkgICAgICAgICQx W11fUEtHX0VSUk9SUz1gJFBLR19DT05GSUcgLS1zaG9ydC1lcnJvcnMgLS1wcmludC1lcnJvcnMg LS1jZmxhZ3MgLS1saWJzICIkMiIgMj4mMWAKKysgICAgICAgIGVsc2UgCisrCSAgICAgICAgJDFb XV9QS0dfRVJST1JTPWAkUEtHX0NPTkZJRyAtLXByaW50LWVycm9ycyAtLWNmbGFncyAtLWxpYnMg IiQyIiAyPiYxYAorKyAgICAgICAgZmkKKysJIyBQdXQgdGhlIG5hc3R5IGVycm9yIG1lc3NhZ2Ug aW4gY29uZmlnLmxvZyB3aGVyZSBpdCBiZWxvbmdzCisrCWVjaG8gIiQkMVtdX1BLR19FUlJPUlMi ID4mQVNfTUVTU0FHRV9MT0dfRkQKICsKLSsgIGlmICghcnBtX2luaXRfZG9uZSkKLSsgICAgewot KyAgICAgIHN0YXRpYyBpbnQgaW5pdF90cmllZDsKKysJbTRfZGVmYXVsdChbJDRdLCBbQUNfTVNH X0VSUk9SKAorK1tQYWNrYWdlIHJlcXVpcmVtZW50cyAoJDIpIHdlcmUgbm90IG1ldDoKICsKLSsg ICAgICAvKiBBbHJlYWR5IGZhaWxlZCB0aGUgaW5pdGlhbGl6YXRpb24gYmVmb3JlPyAgKi8KLSsg ICAgICBpZiAoaW5pdF90cmllZCkKLSsgICAgICAJcmV0dXJuIDA7Ci0rICAgICAgaW5pdF90cmll ZCA9IDE7CisrJCQxX1BLR19FUlJPUlMKICsKLSsjaWZkZWYgRExPUEVOX0xJQlJQTQotKyAgICAg IHsKLSsJdm9pZCAqaDsKKytDb25zaWRlciBhZGp1c3RpbmcgdGhlIFBLR19DT05GSUdfUEFUSCBl bnZpcm9ubWVudCB2YXJpYWJsZSBpZiB5b3UKKytpbnN0YWxsZWQgc29mdHdhcmUgaW4gYSBub24t c3RhbmRhcmQgcHJlZml4LgogKwotKwloID0gZGxvcGVuIChETE9QRU5fTElCUlBNLCBSVExEX0xB WlkpOwotKwlpZiAoIWgpCi0rCSAgewotKwkgICAgd2FybmluZyAoXygiVW5hYmxlIHRvIG9wZW4g XCIlc1wiICglcyksICIKLSsJCSAgICAgICJtaXNzaW5nIGRlYnVnaW5mb3Mgbm90aWZpY2F0aW9u cyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQiKSwKLSsJCSAgICAgRExPUEVOX0xJQlJQTSwgZGxlcnJv ciAoKSk7Ci0rCSAgICByZXR1cm4gMDsKLSsJICB9CisrX1BLR19URVhUXSlbXWRubAorKyAgICAg ICAgXSkKKytlbGlmIHRlc3QgJHBrZ19mYWlsZWQgPSB1bnRyaWVkOyB0aGVuCisrICAgICAJQUNf TVNHX1JFU1VMVChbbm9dKQorKwltNF9kZWZhdWx0KFskNF0sIFtBQ19NU0dfRkFJTFVSRSgKKytb VGhlIHBrZy1jb25maWcgc2NyaXB0IGNvdWxkIG5vdCBiZSBmb3VuZCBvciBpcyB0b28gb2xkLiAg TWFrZSBzdXJlIGl0CisraXMgaW4geW91ciBQQVRIIG9yIHNldCB0aGUgUEtHX0NPTkZJRyBlbnZp cm9ubWVudCB2YXJpYWJsZSB0byB0aGUgZnVsbAorK3BhdGggdG8gcGtnLWNvbmZpZy4KICsKLSsJ aWYgKCEoKGhlYWRlckZvcm1hdF9wID0gZGxzeW0gKGgsICJoZWFkZXJGb3JtYXQiKSkKLSsJICAg ICAgJiYgKHJwbVJlYWRDb25maWdGaWxlc19wID0gZGxzeW0gKGgsICJycG1SZWFkQ29uZmlnRmls ZXMiKSkKLSsJICAgICAgJiYgKHJwbWRiRnJlZUl0ZXJhdG9yX3AgPSBkbHN5bSAoaCwgInJwbWRi RnJlZUl0ZXJhdG9yIikpCi0rCSAgICAgICYmIChycG1kYk5leHRJdGVyYXRvcl9wID0gZGxzeW0g KGgsICJycG1kYk5leHRJdGVyYXRvciIpKQotKwkgICAgICAmJiAocnBtdHNDcmVhdGVfcCA9IGRs c3ltIChoLCAicnBtdHNDcmVhdGUiKSkKLSsJICAgICAgJiYgKHJwbXRzRnJlZV9wID0gZGxzeW0g KGgsICJycG10c0ZyZWUiKSkKLSsJICAgICAgJiYgKHJwbXRzSW5pdEl0ZXJhdG9yX3AgPSBkbHN5 bSAoaCwgInJwbXRzSW5pdEl0ZXJhdG9yIikpKSkKLSsJICB7Ci0rCSAgICB3YXJuaW5nIChfKCJP cGVuZWQgbGlicmFyeSBcIiVzXCIgaXMgaW5jb21wYXRpYmxlICglcyksICIKLSsJCSAgICAgICJt aXNzaW5nIGRlYnVnaW5mb3Mgbm90aWZpY2F0aW9ucyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQiKSwK LSsJCSAgICAgRExPUEVOX0xJQlJQTSwgZGxlcnJvciAoKSk7Ci0rCSAgICBpZiAoZGxjbG9zZSAo aCkpCi0rCSAgICAgIHdhcm5pbmcgKF8oIkVycm9yIGNsb3NpbmcgbGlicmFyeSBcIiVzXCI6ICVz XG4iKSwgRExPUEVOX0xJQlJQTSwKLSsJCSAgICAgICBkbGVycm9yICgpKTsKLSsJICAgIHJldHVy biAwOwotKwkgIH0KLSsgICAgICB9Ci0rI2VuZGlmCS8qIERMT1BFTl9MSUJSUE0gKi8KLSsKLSsg ICAgICBpZiAocnBtUmVhZENvbmZpZ0ZpbGVzX3AgKE5VTEwsIE5VTEwpICE9IDApCi0rCXsKLSsJ ICB3YXJuaW5nIChfKCJFcnJvciByZWFkaW5nIHRoZSBycG0gY29uZmlndXJhdGlvbiBmaWxlcyIp KTsKLSsJICByZXR1cm4gMDsKLSsJfQorK19QS0dfVEVYVAogKwotKyAgICAgIHJwbV9pbml0X2Rv bmUgPSAxOwotKyAgICB9CisrVG8gZ2V0IHBrZy1jb25maWcsIHNlZSA8aHR0cDovL3BrZy1jb25m aWcuZnJlZWRlc2t0b3Aub3JnLz4uXSlbXWRubAorKyAgICAgICAgXSkKKytlbHNlCisrCSQxW11f Q0ZMQUdTPSRwa2dfY3ZfW10kMVtdX0NGTEFHUworKwkkMVtdX0xJQlM9JHBrZ19jdl9bXSQxW11f TElCUworKyAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKKysJJDMKKytmaVtdZG5sCisrXSkj IFBLR19DSEVDS19NT0RVTEVTCiArCi0rICB0cyA9IHJwbXRzQ3JlYXRlX3AgKCk7CiArCi0rICBt aSA9IHJwbXRzSW5pdEl0ZXJhdG9yX3AgKHRzLCBSUE1UQUdfQkFTRU5BTUVTLCBmaWxlbmFtZSwg MCk7Ci0rICBpZiAobWkgIT0gTlVMTCkKLSsgICAgewotKyAgICAgIGZvciAoOzspCi0rCXsKLSsJ ICBIZWFkZXIgaDsKLSsJICBjaGFyICpkZWJ1Z2luZm8sICoqc2xvdCwgKnMsICpzMjsKLSsJICBl cnJtc2dfdCBlcnI7Ci0rCSAgc2l6ZV90IHNyY3JwbWxlbiA9IHNpemVvZiAoIi5zcmMucnBtIikg LSAxOwotKwkgIHNpemVfdCBkZWJ1Z2luZm9sZW4gPSBzaXplb2YgKCItZGVidWdpbmZvIikgLSAx OwotKwkgIHJwbWRiTWF0Y2hJdGVyYXRvciBtaV9kZWJ1Z2luZm87CisrIyBQS0dfSU5TVEFMTERJ UihESVJFQ1RPUlkpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBTdWJzdGl0dXRl cyB0aGUgdmFyaWFibGUgcGtnY29uZmlnZGlyIGFzIHRoZSBsb2NhdGlvbiB3aGVyZSBhIG1vZHVs ZQorKyMgc2hvdWxkIGluc3RhbGwgcGtnLWNvbmZpZyAucGMgZmlsZXMuIEJ5IGRlZmF1bHQgdGhl IGRpcmVjdG9yeSBpcworKyMgJGxpYmRpci9wa2djb25maWcsIGJ1dCB0aGUgZGVmYXVsdCBjYW4g YmUgY2hhbmdlZCBieSBwYXNzaW5nCisrIyBESVJFQ1RPUlkuIFRoZSB1c2VyIGNhbiBvdmVycmlk ZSB0aHJvdWdoIHRoZSAtLXdpdGgtcGtnY29uZmlnZGlyCisrIyBwYXJhbWV0ZXIuCisrQUNfREVG VU4oW1BLR19JTlNUQUxMRElSXSwKKytbbTRfcHVzaGRlZihbcGtnX2RlZmF1bHRdLCBbbTRfZGVm YXVsdChbJDFdLCBbJyR7bGliZGlyfS9wa2djb25maWcnXSldKQorK200X3B1c2hkZWYoW3BrZ19k ZXNjcmlwdGlvbl0sCisrICAgIFtwa2ctY29uZmlnIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgQDw6 QF1wa2dfZGVmYXVsdFtAOj5AXSkKKytBQ19BUkdfV0lUSChbcGtnY29uZmlnZGlyXSwKKysgICAg W0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtcGtnY29uZmlnZGlyXSwgcGtnX2Rlc2NyaXB0aW9uKV0s LAorKyAgICBbd2l0aF9wa2djb25maWdkaXI9XXBrZ19kZWZhdWx0KQorK0FDX1NVQlNUKFtwa2dj b25maWdkaXJdLCBbJHdpdGhfcGtnY29uZmlnZGlyXSkKKyttNF9wb3BkZWYoW3BrZ19kZWZhdWx0 XSkKKyttNF9wb3BkZWYoW3BrZ19kZXNjcmlwdGlvbl0pCisrXSkgZG5sIFBLR19JTlNUQUxMRElS CisrCisrCisrIyBQS0dfTk9BUkNIX0lOU1RBTExESVIoRElSRUNUT1JZKQorKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorKyMgU3Vic3RpdHV0ZXMgdGhlIHZhcmlhYmxlIG5vYXJjaF9wa2dj b25maWdkaXIgYXMgdGhlIGxvY2F0aW9uIHdoZXJlIGEKKysjIG1vZHVsZSBzaG91bGQgaW5zdGFs bCBhcmNoLWluZGVwZW5kZW50IHBrZy1jb25maWcgLnBjIGZpbGVzLiBCeQorKyMgZGVmYXVsdCB0 aGUgZGlyZWN0b3J5IGlzICRkYXRhZGlyL3BrZ2NvbmZpZywgYnV0IHRoZSBkZWZhdWx0IGNhbiBi ZQorKyMgY2hhbmdlZCBieSBwYXNzaW5nIERJUkVDVE9SWS4gVGhlIHVzZXIgY2FuIG92ZXJyaWRl IHRocm91Z2ggdGhlCisrIyAtLXdpdGgtbm9hcmNoLXBrZ2NvbmZpZ2RpciBwYXJhbWV0ZXIuCisr QUNfREVGVU4oW1BLR19OT0FSQ0hfSU5TVEFMTERJUl0sCisrW200X3B1c2hkZWYoW3BrZ19kZWZh dWx0XSwgW200X2RlZmF1bHQoWyQxXSwgWycke2RhdGFkaXJ9L3BrZ2NvbmZpZyddKV0pCisrbTRf cHVzaGRlZihbcGtnX2Rlc2NyaXB0aW9uXSwKKysgICAgW3BrZy1jb25maWcgYXJjaC1pbmRlcGVu ZGVudCBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IEA8OkBdcGtnX2RlZmF1bHRbQDo+QF0pCisrQUNf QVJHX1dJVEgoW25vYXJjaC1wa2djb25maWdkaXJdLAorKyAgICBbQVNfSEVMUF9TVFJJTkcoWy0t d2l0aC1ub2FyY2gtcGtnY29uZmlnZGlyXSwgcGtnX2Rlc2NyaXB0aW9uKV0sLAorKyAgICBbd2l0 aF9ub2FyY2hfcGtnY29uZmlnZGlyPV1wa2dfZGVmYXVsdCkKKytBQ19TVUJTVChbbm9hcmNoX3Br Z2NvbmZpZ2Rpcl0sIFskd2l0aF9ub2FyY2hfcGtnY29uZmlnZGlyXSkKKyttNF9wb3BkZWYoW3Br Z19kZWZhdWx0XSkKKyttNF9wb3BkZWYoW3BrZ19kZXNjcmlwdGlvbl0pCisrXSkgZG5sIFBLR19O T0FSQ0hfSU5TVEFMTERJUgorKworKworKyMgUEtHX0NIRUNLX1ZBUihWQVJJQUJMRSwgTU9EVUxF LCBDT05GSUctVkFSSUFCTEUsCisrIyBbQUNUSU9OLUlGLUZPVU5EXSwgW0FDVElPTi1JRi1OT1Qt Rk9VTkRdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KyMgUmV0cmlldmVzIHRoZSB2YWx1ZSBvZiB0aGUgcGtnLWNvbmZpZyB2YXJpYWJsZSBmb3IgdGhl IGdpdmVuIG1vZHVsZS4KKytBQ19ERUZVTihbUEtHX0NIRUNLX1ZBUl0sCisrW0FDX1JFUVVJUkUo W1BLR19QUk9HX1BLR19DT05GSUddKWRubAorK0FDX0FSR19WQVIoWyQxXSwgW3ZhbHVlIG9mICQz IGZvciAkMiwgb3ZlcnJpZGluZyBwa2ctY29uZmlnXSlkbmwKICsKLSsJICBoID0gcnBtZGJOZXh0 SXRlcmF0b3JfcCAobWkpOwotKwkgIGlmIChoID09IE5VTEwpCi0rCSAgICBicmVhazsKKytfUEtH X0NPTkZJRyhbJDFdLCBbdmFyaWFibGU9Il1bJDNdWyJdLCBbJDJdKQorK0FTX1ZBUl9DT1BZKFsk MV0sIFtwa2dfY3ZfXVskMV0pCiArCi0rCSAgLyogVmVyaWZ5IHRoZSBkZWJ1Z2luZm8gZmlsZSBp cyBub3QgYWxyZWFkeSBpbnN0YWxsZWQuICAqLworK0FTX1ZBUl9JRihbJDFdLCBbIiJdLCBbJDVd LCBbJDRdKWRubAorK10pIyBQS0dfQ0hFQ0tfVkFSCiArCi0rCSAgZGVidWdpbmZvID0gaGVhZGVy Rm9ybWF0X3AgKGgsICIle3NvdXJjZXJwbX0tZGVidWdpbmZvLiV7YXJjaH0iLAotKwkJCQkgICAg ICAmZXJyKTsKLSsJICBpZiAoIWRlYnVnaW5mbykKLSsJICAgIHsKLSsJICAgICAgd2FybmluZyAo XygiRXJyb3IgcXVlcnlpbmcgdGhlIHJwbSBmaWxlIGAlcyc6ICVzIiksIGZpbGVuYW1lLAotKwkg ICAgICAgICAgICAgICBlcnIpOwotKwkgICAgICBjb250aW51ZTsKLSsJICAgIH0KLSsJICAvKiBz ID0gYC5zcmMucnBtLWRlYnVnaW5mby4le2FyY2h9JyAqLwotKwkgIHMgPSBzdHJyY2hyIChkZWJ1 Z2luZm8sICctJykgLSBzcmNycG1sZW47Ci0rCSAgczIgPSBOVUxMOwotKwkgIGlmIChzID4gZGVi dWdpbmZvICYmIG1lbWNtcCAocywgIi5zcmMucnBtIiwgc3JjcnBtbGVuKSA9PSAwKQotKwkgICAg ewotKwkgICAgICAvKiBzMiA9IGAtJXtyZWxlYXNlfS5zcmMucnBtLWRlYnVnaW5mby4le2FyY2h9 JyAqLwotKwkgICAgICBzMiA9IG1lbXJjaHIgKGRlYnVnaW5mbywgJy0nLCBzIC0gZGVidWdpbmZv KTsKLSsJICAgIH0KLSsJICBpZiAoczIpCi0rCSAgICB7Ci0rCSAgICAgIC8qIHMyID0gYC0le3Zl cnNpb259LSV7cmVsZWFzZX0uc3JjLnJwbS1kZWJ1Z2luZm8uJXthcmNofScgKi8KLSsJICAgICAg czIgPSBtZW1yY2hyIChkZWJ1Z2luZm8sICctJywgczIgLSBkZWJ1Z2luZm8pOwotKwkgICAgfQot KwkgIGlmICghczIpCi0rCSAgICB7Ci0rCSAgICAgIHdhcm5pbmcgKF8oIkVycm9yIHF1ZXJ5aW5n IHRoZSBycG0gZmlsZSBgJXMnOiAlcyIpLCBmaWxlbmFtZSwKLSsJICAgICAgICAgICAgICAgZGVi dWdpbmZvKTsKLSsJICAgICAgeGZyZWUgKGRlYnVnaW5mbyk7Ci0rCSAgICAgIGNvbnRpbnVlOwot KwkgICAgfQotKwkgIC8qIHMgPSBgLnNyYy5ycG0tZGVidWdpbmZvLiV7YXJjaH0nICovCi0rCSAg LyogczIgPSBgLSV7dmVyc2lvbn0tJXtyZWxlYXNlfS5zcmMucnBtLWRlYnVnaW5mby4le2FyY2h9 JyAqLwotKwkgIG1lbW1vdmUgKHMyICsgZGVidWdpbmZvbGVuLCBzMiwgcyAtIHMyKTsKLSsJICBt ZW1jcHkgKHMyLCAiLWRlYnVnaW5mbyIsIGRlYnVnaW5mb2xlbik7Ci0rCSAgLyogcyA9IGBYWFhY LiV7YXJjaH0nICovCi0rCSAgLyogc3RybGVuICgiWFhYWCIpID09IHNyY3JwbWxlbiArIGRlYnVn aW5mb2xlbiAqLwotKwkgIC8qIHMyID0gYC1kZWJ1Z2luZm8tJXt2ZXJzaW9ufS0le3JlbGVhc2V9 WFguJXthcmNofScgKi8KLSsJICAvKiBzdHJsZW4gKCJYWCIpID09IHNyY3JwbWxlbiAqLwotKwkg IG1lbW1vdmUgKHMgKyBkZWJ1Z2luZm9sZW4sIHMgKyBzcmNycG1sZW4gKyBkZWJ1Z2luZm9sZW4s Ci0rCQkgICBzdHJsZW4gKHMgKyBzcmNycG1sZW4gKyBkZWJ1Z2luZm9sZW4pICsgMSk7Ci0rCSAg LyogcyA9IGAtZGVidWdpbmZvLSV7dmVyc2lvbn0tJXtyZWxlYXNlfS4le2FyY2h9JyAqLworICMg QU1fQVVYX0RJUl9FWFBBTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC0qLSBBdXRvY29uZiAtKi0KKyAKKyAjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMywgMjAwNSAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvY29uZmlnLmluCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmln L2dkYi9jb25maWcuaW4JMjAxNC0wMi0wNiAxNzoxODoyNi45NzE3MTcyMTYgKzAxMDAKKysrKyBn ZGItNy42LjkwLjIwMTQwMTI3L2dkYi9jb25maWcuaW4JMjAxNC0wMi0wNiAxNzoxODozMy44Njg3 MjQ2NjkgKzAxMDAKK0BAIC0zMyw2ICszMyw5IEBACisgLyogRGVmaW5lIHRvIEJGRCdzIGRlZmF1 bHQgdGFyZ2V0IHZlY3Rvci4gKi8KKyAjdW5kZWYgREVGQVVMVF9CRkRfVkVDCisgCisrLyogbGli cnBtIHZlcnNpb24gc3BlY2lmaWMgbGlicmFyeSBuYW1lIHRvIGRsb3Blbi4gKi8KKysjdW5kZWYg RExPUEVOX0xJQlJQTQogKwotKwkgIC8qIFJQTURCSV9QQUNLQUdFUyByZXF1aXJlcyBrZXlsZW4g PT0gc2l6ZW9mIChpbnQpLiAgKi8KLSsJICAvKiBSUE1EQklfTEFCRUwgaXMgYW4gaW50ZXJmYWNl IGZvciBOVlItYmFzZWQgZGJpRmluZEJ5TGFiZWwoKS4gICovCi0rCSAgbWlfZGVidWdpbmZvID0g cnBtdHNJbml0SXRlcmF0b3JfcCAodHMsIFJQTURCSV9MQUJFTCwgZGVidWdpbmZvLCAwKTsKLSsJ ICB4ZnJlZSAoZGVidWdpbmZvKTsKLSsJICBpZiAobWlfZGVidWdpbmZvKQotKwkgICAgewotKwkg ICAgICBycG1kYkZyZWVJdGVyYXRvcl9wIChtaV9kZWJ1Z2luZm8pOwotKwkgICAgICBjb3VudCA9 IDA7Ci0rCSAgICAgIGJyZWFrOwotKwkgICAgfQorIC8qIERlZmluZSB0byAxIGlmIHRyYW5zbGF0 aW9uIG9mIHByb2dyYW0gbWVzc2FnZXMgdG8gdGhlIHVzZXIncyBuYXRpdmUKKyAgICBsYW5ndWFn ZSBpcyByZXF1ZXN0ZWQuICovCisgI3VuZGVmIEVOQUJMRV9OTFMKK0BAIC0yMDcsNiArMjEwLDkg QEAKKyAvKiBEZWZpbmUgaWYgUHl0aG9uIDIuNyBpcyBiZWluZyB1c2VkLiAqLworICN1bmRlZiBI QVZFX0xJQlBZVEhPTjJfNworIAorKy8qIERlZmluZSBpZiBsaWJycG0gbGlicmFyeSBpcyBiZWlu ZyB1c2VkLiAqLworKyN1bmRlZiBIQVZFX0xJQlJQTQogKwotKwkgIC8qIFRoZSBhbGxvY2F0ZWQg bWVtb3J5IGdldHMgdXRpbGl6ZWQgYmVsb3cgZm9yIE1JU1NJTkdfUlBNX0hBU0guICAqLwotKwkg IGRlYnVnaW5mbyA9IGhlYWRlckZvcm1hdF9wIChoLAotKwkJCQkgICAgICAiJXtuYW1lfS0le3Zl cnNpb259LSV7cmVsZWFzZX0uJXthcmNofSIsCi0rCQkJCSAgICAgICZlcnIpOwotKwkgIGlmICgh ZGVidWdpbmZvKQotKwkgICAgewotKwkgICAgICB3YXJuaW5nIChfKCJFcnJvciBxdWVyeWluZyB0 aGUgcnBtIGZpbGUgYCVzJzogJXMiKSwgZmlsZW5hbWUsCi0rCSAgICAgICAgICAgICAgIGVycik7 Ci0rCSAgICAgIGNvbnRpbnVlOwotKwkgICAgfQorIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZl IHRoZSA8bGlidW53aW5kLWlhNjQuaD4gaGVhZGVyIGZpbGUuICovCisgI3VuZGVmIEhBVkVfTElC VU5XSU5EX0lBNjRfSAorIAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NvbmZpZ3Vy ZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvY29uZmlndXJl CTIwMTQtMDItMDYgMTc6MTg6MjYuOTc2NzE3MjIxICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0 MDEyNy9nZGIvY29uZmlndXJlCTIwMTQtMDItMDYgMTc6MTg6MzMuODcyNzI0NjczICswMTAwCitA QCAtNjg5LDYgKzY4OSwxMSBAQCBQS0dWRVJTSU9OCisgSEFWRV9OQVRJVkVfR0NPUkVfVEFSR0VU CisgVEFSR0VUX09CUworIHN1YmRpcnMKKytSUE1fTElCUworK1JQTV9DRkxBR1MKKytQS0dfQ09O RklHX0xJQkRJUgorK1BLR19DT05GSUdfUEFUSAorK1BLR19DT05GSUcKKyBHREJfREFUQURJUgor IERFQlVHRElSCisgTUFLRUlORk9fRVhUUkFfRkxBR1MKK0BAIC03OTIsNiArNzk3LDcgQEAgd2l0 aF9nZGJfZGF0YWRpcgorIHdpdGhfcmVsb2NhdGVkX3NvdXJjZXMKKyB3aXRoX2F1dG9fbG9hZF9k aXIKKyB3aXRoX2F1dG9fbG9hZF9zYWZlX3BhdGgKKyt3aXRoX3JwbQorIGVuYWJsZV90YXJnZXRz CisgZW5hYmxlXzY0X2JpdF9iZmQKKyBlbmFibGVfZ2RiY2xpCitAQCAtODQyLDYgKzg0OCwxMSBA QCBDUFBGTEFHUworIENQUAorIE1BS0VJTkZPCisgTUFLRUlORk9GTEFHUworK1BLR19DT05GSUcK KytQS0dfQ09ORklHX1BBVEgKKytQS0dfQ09ORklHX0xJQkRJUgorK1JQTV9DRkxBR1MKKytSUE1f TElCUworIFlBQ0MKKyBZRkxBR1MKKyBYTUtNRicKK0BAIC0xNTEyLDYgKzE1MjMsOCBAQCBPcHRp b25hbCBQYWNrYWdlczoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFstLXdpdGgtYXV0by1s b2FkLWRpcl0KKyAgIC0td2l0aG91dC1hdXRvLWxvYWQtc2FmZS1wYXRoCisgICAgICAgICAgICAg ICAgICAgICAgICAgICBkbyBub3QgcmVzdHJpY3QgYXV0by1sb2FkZWQgZmlsZXMgbG9jYXRpb25z CisrICAtLXdpdGgtcnBtICAgICAgICAgICAgICBxdWVyeSBycG0gZGF0YWJhc2UgZm9yIG1pc3Np bmcgZGVidWdpbmZvcyAoeWVzL25vLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmLiBh dXRvPWxpYnJwbS5zbykKKyAgIC0td2l0aC1saWJ1bndpbmQtaWE2NCAgIHVzZSBsaWJ1bndpbmQg ZnJhbWUgdW53aW5kaW5nIGZvciBpYTY0IHRhcmdldHMKKyAgIC0td2l0aC1jdXJzZXMgICAgICAg ICAgIHVzZSB0aGUgY3Vyc2VzIGxpYnJhcnkgaW5zdGVhZCBvZiB0aGUgdGVybWNhcAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGlicmFyeQorQEAgLTE1NTksNiArMTU3MiwxMyBAQCBTb21l IGluZmx1ZW50aWFsIGVudmlyb25tZW50IHZhcmlhYmxlczoKKyAgIE1BS0VJTkZPICAgIFBhcmVu dCBjb25maWd1cmUgZGV0ZWN0cyBpZiBpdCBpcyBvZiBzdWZmaWNpZW50IHZlcnNpb24uCisgICBN QUtFSU5GT0ZMQUdTCisgICAgICAgICAgICAgICBQYXJhbWV0ZXJzIGZvciBNQUtFSU5GTy4KKysg IFBLR19DT05GSUcgIHBhdGggdG8gcGtnLWNvbmZpZyB1dGlsaXR5CisrICBQS0dfQ09ORklHX1BB VEgKKysgICAgICAgICAgICAgIGRpcmVjdG9yaWVzIHRvIGFkZCB0byBwa2ctY29uZmlnJ3Mgc2Vh cmNoIHBhdGgKKysgIFBLR19DT05GSUdfTElCRElSCisrICAgICAgICAgICAgICBwYXRoIG92ZXJy aWRpbmcgcGtnLWNvbmZpZydzIGJ1aWx0LWluIHNlYXJjaCBwYXRoCisrICBSUE1fQ0ZMQUdTICBD IGNvbXBpbGVyIGZsYWdzIGZvciBSUE0sIG92ZXJyaWRpbmcgcGtnLWNvbmZpZworKyAgUlBNX0xJ QlMgICAgbGlua2VyIGZsYWdzIGZvciBSUE0sIG92ZXJyaWRpbmcgcGtnLWNvbmZpZworICAgWUFD QyAgICAgICAgVGhlIGBZZXQgQW5vdGhlciBDIENvbXBpbGVyJyBpbXBsZW1lbnRhdGlvbiB0byB1 c2UuIERlZmF1bHRzIHRvCisgICAgICAgICAgICAgICB0aGUgZmlyc3QgcHJvZ3JhbSBmb3VuZCBv dXQgb2Y6IGBiaXNvbiAteScsIGBieWFjYycsIGB5YWNjJy4KKyAgIFlGTEFHUyAgICAgIFRoZSBs aXN0IG9mIGFyZ3VtZW50cyB0aGF0IHdpbGwgYmUgcGFzc2VkIGJ5IGRlZmF1bHQgdG8gJFlBQ0Mu CitAQCAtNTE1NCw2ICs1MTc0LDQ5MSBAQCBfQUNFT0YKKyB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHdpdGhfYXV0b19sb2FkX3NhZmVfcGF0aCIgPiY1 CisgJGFzX2VjaG8gIiR3aXRoX2F1dG9fbG9hZF9zYWZlX3BhdGgiID4mNjsgfQorIAorKyMgSW50 ZWdyYXRpb24gd2l0aCBycG0gbGlicmFyeSB0byBzdXBwb3J0IG1pc3NpbmcgZGVidWdpbmZvIHN1 Z2dlc3Rpb25zLgorKyMgLS13aXRob3V0LXJwbTogRGlzYWJsZSBhbnkgcnBtIHN1cHBvcnQuCisr IyAtLXdpdGgtcnBtPWxpYm5hbWUuc286IFRyeSB0byBkeW5hbWljYWxseSBvcGVuIGBsaWJuYW1l LnNvJyBkdXJpbmcgcnVudGltZS4KKysjICAgRXZlbiB3aXRoIHJ1bnRpbWUgbWlzc2luZyBgbGli bmFtZS5zbycgR0RCIHdpbGwgc3RpbGwgb3RoZXIgcnVuIGNvcnJlY3RseS4KKysjICAgTWlzc2lu ZyBgbGlibmFtZS5zbycgZHVyaW5nIC4vY29uZmlndXJlIHdpbGwgYWJvcnQgdGhlIGNvbmZpZ3Vy YXRpb24uCisrIyAtLXdpdGgtcnBtPWxpYnJwbS5zbzogTGlrZSBgLS13aXRoLXJwbT1saWJuYW1l LnNvJyBidXQgdHJ5IHRvIGZpbmQgc3BlY2lmaWMKKysjICAgbWlub3IgdmVyc2lvbiBmaXJzdCBz dWNoIGFzIGBsaWJycG0tNC42LnNvJyBhcyBtaW5vciB2ZXJzaW9uIGRpZmZlcmVuY2VzCisrIyAg IG1lYW4gQVBJK0FCSSBpbmNvbXBhdGliaWxpdHkuICBJZiB0aGUgc3BlY2lmaWMgbWF0Y2ggdmVy c2lvbmVkIGxpYnJhcnkgbmFtZQorKyMgICBjb3VsZCBub3QgYmUgZm91bmQgc3RpbGwgb3BlbiBk eW5hbWljYWxseSBhdCBsZWFzdCBgbGlicnBtLnNvJy4KKysjIC0td2l0aC1ycG06IExpa2UgYC0t d2l0aC1ycG09bGlicnBtLnNvJyBidXQgaWYgYW55IG9mIGl0cyBkZXRlY3Rpb24gZmFpbHMgdHJ5 CisrIyAgIHRvIGZpbmQgbGlicnBtIGZvciBjb21waWxhdGlvbi10aW1lIGxpbmtpbmcgYnkgcGtn LWNvbmZpZy4gIEdEQiBiaW5hcnkgd2lsbAorKyMgICBiZSBwcm9iYWJseSBsaW5rZWQgd2l0aCB0 aGUgdmVyc2lvbiBzcGVjaWZpYyBsaWJyYXJ5IChhcyBgbGlicnBtLTQuNi5zbycpLgorKyMgICBG YWlsdXJlIHRvIGZpbmQgbGlicnBtIGJ5IHBrZy1jb25maWcgd2lsbCBhYm9ydCB0aGUgY29uZmln dXJhdGlvbi4KKysjIChkZWZhdWx0KSAtLXdpdGgtcnBtPWF1dG86IExpa2UgYC0td2l0aC1ycG09 bGlicnBtLnNvJyBidXQgaWYgZXZlbiBwa2ctY29uZmlnCisrIyAgIGNhbm5vdCBmaW5kIGxpYnJw bSB1c2UgdG8gdGhlIHJwbWxlc3MgY29tcGlsYXRpb24gKGxpa2UgYC0td2l0aG91dC1ycG0nKS4K ICsKLSsJICAvKiBCYXNlIHBhY2thZ2UgbmFtZSBmb3IgYGRlYnVnaW5mby1pbnN0YWxsJy4gIFdl IGRvIG5vdCB1c2UgdGhlCi0rCSAgICAgYHl1bScgY29tbWFuZCBkaXJlY3RseSBhcyB0aGUgbGlu ZQotKwkJIHl1bSAtLWVuYWJsZXJlcG89JypkZWJ1ZyonIGluc3RhbGwgTkFNRS1kZWJ1Z2luZm8u QVJDSAotKwkgICAgIHdvdWxkIGJlIG1vcmUgY29tcGxpY2F0ZWQgdGhhbiBqdXN0OgotKwkJIGRl YnVnaW5mby1pbnN0YWxsIE5BTUUtVkVSU0lPTi1SRUxFQVNFLkFSQ0gKLSsJICAgICBEbyBub3Qg c3VwcGx5IHRoZSBycG0gYmFzZSBuYW1lIChkZXJpdmVkIGZyb20gLnNyYy5ycG0gbmFtZSkgYXMK LSsJICAgICBkZWJ1Z2luZm8taW5zdGFsbCBpcyB1bmFibGUgdG8gaW5zdGFsbCB0aGUgZGVidWdp bmZvIHBhY2thZ2UgaWYKLSsJICAgICB0aGUgYmFzZSBuYW1lIFBLRyBiaW5hcnkgcnBtIGlzIG5v dCBpbnN0YWxsZWQgd2hpbGUgZm9yIGV4YW1wbGUKLSsJICAgICBQS0ctbGlicyB3b3VsZCBiZSBp bnN0YWxsZWQgKFJIIEJ1ZyA0Njc5MDEpLgotKwkgICAgIEZVVFVSRTogQWZ0ZXIgbXVsdGlwbGUg ZGVidWdpbmZvIHZlcnNpb25zIHNpbXVsdGFuZW91c2x5IGluc3RhbGxlZAotKwkgICAgIGdldCBz dXBwb3J0ZWQgdGhlIHN1cHBvcnQgZm9yIHRoZSBWRVJTSU9OLVJFTEVBU0UgdGFncyBoYW5kbGlu ZwotKwkgICAgIG1heSBuZWVkIGFuIHVwZGF0ZS4gICovCiArCi0rCSAgaWYgKG1pc3NpbmdfcnBt X2hhc2ggPT0gTlVMTCkKLSsJICAgIHsKLSsJICAgICAgLyogREVMX0YgaXMgcGFzc2VkIE5VTEwg YXMgTUlTU0lOR19SUE1fTElTVCdzIEhUQUJfREVMRVRFCi0rCQkgc2hvdWxkIG5vdCBkZWFsbG9j YXRlIHRoZSBlbnRyaWVzLiAgKi8KKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLXJwbSB3YXMgZ2l2 ZW4uCisraWYgdGVzdCAiJHt3aXRoX3JwbStzZXR9IiA9IHNldDsgdGhlbiA6CisrICB3aXRodmFs PSR3aXRoX3JwbTsKKytlbHNlCisrICB3aXRoX3JwbT0iYXV0byIKKytmaQogKwotKwkgICAgICBt aXNzaW5nX3JwbV9oYXNoID0gaHRhYl9jcmVhdGVfYWxsb2MgKDY0LCBodGFiX2hhc2hfc3RyaW5n LAotKwkJCSAgICAgICAoaW50ICgqKSAoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICopKSBzdHJl cSwKLSsJCQkJCQkgICAgTlVMTCwgeGNhbGxvYywgeGZyZWUpOwotKwkgICAgfQotKwkgIHNsb3Qg PSAoY2hhciAqKikgaHRhYl9maW5kX3Nsb3QgKG1pc3NpbmdfcnBtX2hhc2gsIGRlYnVnaW5mbywg SU5TRVJUKTsKLSsJICAvKiBYQ0FMTE9DIG5ldmVyIHJldHVybnMgTlVMTC4gICovCi0rCSAgZ2Ri X2Fzc2VydCAoc2xvdCAhPSBOVUxMKTsKLSsJICBpZiAoKnNsb3QgPT0gTlVMTCkKLSsJICAgIHsK LSsJICAgICAgc3RydWN0IG1pc3NpbmdfcnBtICptaXNzaW5nX3JwbTsKICsKLSsJICAgICAgKnNs b3QgPSBkZWJ1Z2luZm87CiArCi0rCSAgICAgIG1pc3NpbmdfcnBtID0geG1hbGxvYyAoc2l6ZW9m ICgqbWlzc2luZ19ycG0pICsgc3RybGVuIChkZWJ1Z2luZm8pKTsKLSsJICAgICAgc3RyY3B5ICht aXNzaW5nX3JwbS0+cnBtLCBkZWJ1Z2luZm8pOwotKwkgICAgICBtaXNzaW5nX3JwbS0+bmV4dCA9 IG1pc3NpbmdfcnBtX2xpc3Q7Ci0rCSAgICAgIG1pc3NpbmdfcnBtX2xpc3QgPSBtaXNzaW5nX3Jw bTsKLSsJICAgICAgbWlzc2luZ19ycG1fbGlzdF9lbnRyaWVzKys7Ci0rCSAgICB9Ci0rCSAgZWxz ZQotKwkgICAgeGZyZWUgKGRlYnVnaW5mbyk7Ci0rCSAgY291bnQrKzsKLSsJfQogKwotKyAgICAg IHJwbWRiRnJlZUl0ZXJhdG9yX3AgKG1pKTsKLSsgICAgfQorK2lmIHRlc3QgIngkd2l0aF9ycG0i ICE9ICJ4bm8iOyB0aGVuCisrICBpZiB0ZXN0ICJ4JHdpdGhfcnBtIiA9ICJ4eWVzIjsgdGhlbgor KyAgICBMSUJSUE09ImxpYnJwbS5zbyIKKysgICAgUlBNX1JFUVVJUkU9dHJ1ZQorKyAgICBETE9Q RU5fUkVRVUlSRT1mYWxzZQorKyAgZWxpZiB0ZXN0ICJ4JHdpdGhfcnBtIiA9ICJ4YXV0byI7IHRo ZW4KKysgICAgTElCUlBNPSJsaWJycG0uc28iCisrICAgIFJQTV9SRVFVSVJFPWZhbHNlCisrICAg IERMT1BFTl9SRVFVSVJFPWZhbHNlCisrICBlbHNlCisrICAgIExJQlJQTT0iJHdpdGhfcnBtIgor KyAgICBSUE1fUkVRVUlSRT10cnVlCisrICAgIERMT1BFTl9SRVFVSVJFPXRydWUKKysgIGZpCisr ICBMSUJSUE1fU1RSSU5HPSciJyIkTElCUlBNIiciJwogKwotKyAgcnBtdHNGcmVlX3AgKHRzKTsK KysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgc3Bl Y2lmaWMgbGlicnBtIHZlcnNpb24iID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHNwZWNpZmlj IGxpYnJwbSB2ZXJzaW9uLi4uICIgPiY2OyB9CisrICBIQVZFX0RMT1BFTl9MSUJSUE09ZmFsc2UK KysgIHNhdmVfTElCUz0iJExJQlMiCisrICBMSUJTPSIkTElCUyAtbGRsIgorKyAgaWYgdGVzdCAi JGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4gOgorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2Vj aG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQorK2FzX2ZuX2Vycm9yICJj YW5ub3QgcnVuIHRlc3QgcHJvZ3JhbSB3aGlsZSBjcm9zcyBjb21waWxpbmcKKytTZWUgXGBjb25m aWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgIiRMSU5FTk8iIDU7IH0KKytlbHNlCisrICBjYXQg Y29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZz LmguICAqLwogKwotKyAgcmV0dXJuIGNvdW50OwotK30KKysjaW5jbHVkZSA8cnBtL3JwbWxpYi5o PgorKyNpbmNsdWRlIDxkbGZjbi5oPgorKyNpbmNsdWRlIDxlcnJuby5oPgogKwotK3N0YXRpYyBp bnQKLSttaXNzaW5nX3JwbV9saXN0X2NvbXBhciAoY29uc3QgY2hhciAqY29uc3QgKmFwLCBjb25z dCBjaGFyICpjb25zdCAqYnApCisraW50CisrbWFpbiAoKQogK3sKLSsgIHJldHVybiBzdHJjb2xs ICgqYXAsICpicCk7Ci0rfQogKwotKy8qIEl0IHJldHVybnMgYSBOVUxMLXRlcm1pbmF0ZWQgYXJy YXkgb2Ygc3RyaW5ncyBuZWVkaW5nIHRvIGJlIEZSRUVkLiAgSXQgbWF5Ci0rICAgYWxzbyByZXR1 cm4gb25seSBOVUxMLiAgKi8KKysgICAgdm9pZCAqaDsKKysgICAgY29uc3QgY2hhciAqY29uc3Qg KnJwbXZlcnA7CisrICAgIEZJTEUgKmY7CiArCi0rc3RhdGljIHZvaWQKLSttaXNzaW5nX3JwbV9s aXN0X3ByaW50ICh2b2lkKQotK3sKLSsgIGNoYXIgKiphcnJheSwgKiphcnJheV9pdGVyOwotKyAg c3RydWN0IG1pc3NpbmdfcnBtICpsaXN0X2l0ZXI7Ci0rICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51 cHM7CisrICAgIGYgPSBmb3BlbiAoImNvbmZ0ZXN0Lm91dCIsICJ3Iik7CisrICAgIGlmICghZikK KysgICAgICB7CisrCWZwcmludGYgKHN0ZGVyciwgIkNhbm5vdCB3cml0ZSBcIiVzXCI6ICVzXG4i LCAiY29uZnRlc3Qub3V0IiwKKysJCSBzdHJlcnJvciAoZXJybm8pKTsKKysJcmV0dXJuIDE7Cisr ICAgICAgfQorKyAgICBoID0gZGxvcGVuICgkTElCUlBNX1NUUklORywgUlRMRF9MQVpZKTsKKysg ICAgaWYgKCFoKQorKyAgICAgIHsKKysJZnByaW50ZiAoc3RkZXJyLCAiZGxvcGVuIChcIiVzXCIp OiAlc1xuIiwgJExJQlJQTV9TVFJJTkcsIGRsZXJyb3IgKCkpOworKwlyZXR1cm4gMTsKKysgICAg ICB9CisrICAgIHJwbXZlcnAgPSBkbHN5bSAoaCwgIlJQTVZFUlNJT04iKTsKKysgICAgaWYgKCFy cG12ZXJwKQorKyAgICAgIHsKKysJZnByaW50ZiAoc3RkZXJyLCAiZGxzeW0gKFwiUlBNVkVSU0lP TlwiKTogJXNcbiIsIGRsZXJyb3IgKCkpOworKwlyZXR1cm4gMTsKKysgICAgICB9CisrICAgIGZw cmludGYgKHN0ZGVyciwgIlJQTVZFUlNJT04gaXM6IFwiIik7CisrICAgIGZwcmludGYgKHN0ZGVy ciwgIiVzXCJcbiIsICpycG12ZXJwKTsKICsKLSsgIGlmIChtaXNzaW5nX3JwbV9saXN0X2VudHJp ZXMgPT0gMCkKLSsgICAgcmV0dXJuOworKyAgICAvKiBUcnkgdG8gZmluZCB0aGUgc3BlY2lmaWMg bGlicnBtIHZlcnNpb24gb25seSBmb3IgImxpYnJwbS5zbyIgYXMgd2UgZG8KKysgICAgICAgbm90 IGtub3cgaG93IHRvIGFzc2VtYmxlIHRoZSB2ZXJzaW9uIHN0cmluZyBvdGhlcndpc2UuICAqLwog KwotKyAgYXJyYXkgPSB4bWFsbG9jIChzaXplb2YgKCphcnJheSkgKiBtaXNzaW5nX3JwbV9saXN0 X2VudHJpZXMpOwotKyAgY2xlYW51cHMgPSBtYWtlX2NsZWFudXAgKHhmcmVlLCBhcnJheSk7Cisr ICAgIGlmIChzdHJjbXAgKCJsaWJycG0uc28iLCAkTElCUlBNX1NUUklORykgIT0gMCkKKysgICAg ICB7CisrCWZwcmludGYgKGYsICIlc1xuIiwgJExJQlJQTV9TVFJJTkcpOworKwlyZXR1cm4gMDsK KysgICAgICB9CisrICAgIGVsc2UKKysgICAgICB7CisrCWNoYXIgKmgyX25hbWU7CisrCXZvaWQg KmgyOworKwlpbnQgbWFqb3IsIG1pbm9yOwogKwotKyAgYXJyYXlfaXRlciA9IGFycmF5OwotKyAg Zm9yIChsaXN0X2l0ZXIgPSBtaXNzaW5nX3JwbV9saXN0OyBsaXN0X2l0ZXIgIT0gTlVMTDsKLSsg ICAgICAgbGlzdF9pdGVyID0gbGlzdF9pdGVyLT5uZXh0KQotKyAgICB7Ci0rICAgICAgKmFycmF5 X2l0ZXIrKyA9IGxpc3RfaXRlci0+cnBtOwotKyAgICB9Ci0rICBnZGJfYXNzZXJ0IChhcnJheV9p dGVyID09IGFycmF5ICsgbWlzc2luZ19ycG1fbGlzdF9lbnRyaWVzKTsKKysJaWYgKHNzY2FuZiAo KnJwbXZlcnAsICIlZC4lZCIsICZtYWpvciwgJm1pbm9yKSAhPSAyKQorKwkgIHsKKysJICAgIGZw cmludGYgKHN0ZGVyciwgIlVuYWJsZSB0byBwYXJzZSBSUE1WRVJTSU9OLlxuIik7CisrCSAgICBm cHJpbnRmIChmLCAiJXNcbiIsICRMSUJSUE1fU1RSSU5HKTsKKysJICAgIHJldHVybiAwOworKwkg IH0KKysJLyogQXZvaWQgdGhlIHNxdWFyZSBicmFja2V0cyBieSBtYWxsb2MuICAqLworKwloMl9u YW1lID0gbWFsbG9jICg2NCk7CisrCXNwcmludGYgKGgyX25hbWUsICJsaWJycG0tJWQuJWQuc28i LCBtYWpvciwgbWlub3IpOworKwloMiA9IGRsb3BlbiAoaDJfbmFtZSwgUlRMRF9MQVpZKTsKKysJ aWYgKCFoMikKKysJICB7CisrCSAgICBmcHJpbnRmIChzdGRlcnIsICJkbG9wZW4gKFwiJXNcIik6 ICVzXG4iLCBoMl9uYW1lLCBkbGVycm9yICgpKTsKKysJICAgIGZwcmludGYgKGYsICIlc1xuIiwg JExJQlJQTV9TVFJJTkcpOworKwkgICAgcmV0dXJuIDA7CisrCSAgfQorKwlpZiAoaDIgIT0gaCkK KysJICB7CisrCSAgICBmcHJpbnRmIChzdGRlcnIsICJkbG9wZW4gb2YgXCIlc1wiIGFuZCBcIiVz XCIgYXJlIGRpZmZlcmVudC5cbiIsCisrCQkgICAgICRMSUJSUE1fU1RSSU5HLCBoMl9uYW1lKTsK KysJICAgIGZwcmludGYgKGYsICIlc1xuIiwgJExJQlJQTV9TVFJJTkcpOworKwkgICAgcmV0dXJu IDA7CisrCSAgfQorKwkvKiBGb3VuZCB0aGUgdmFsaWQgLnNvIG5hbWUgd2l0aCBhIHNwZWNpZmlj IHZlcnNpb24uICAqLworKwlmcHJpbnRmIChmLCAiJXNcbiIsIGgyX25hbWUpOworKwlyZXR1cm4g MDsKKysgICAgICB9CiArCi0rICBxc29ydCAoYXJyYXksIG1pc3NpbmdfcnBtX2xpc3RfZW50cmll cywgc2l6ZW9mICgqYXJyYXkpLAotKwkgKGludCAoKikgKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9p ZCAqKSkgbWlzc2luZ19ycG1fbGlzdF9jb21wYXIpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQor K19BQ0VPRgorK2lmIGFjX2ZuX2NfdHJ5X3J1biAiJExJTkVOTyI7IHRoZW4gOgogKwotKyAgcHJp bnRmX3VuZmlsdGVyZWQgKF8oIk1pc3Npbmcgc2VwYXJhdGUgZGVidWdpbmZvcywgdXNlOiAlcyIp LAotKwkJICAgICAiZGVidWdpbmZvLWluc3RhbGwiKTsKLSsgIGZvciAoYXJyYXlfaXRlciA9IGFy cmF5OyBhcnJheV9pdGVyIDwgYXJyYXkgKyBtaXNzaW5nX3JwbV9saXN0X2VudHJpZXM7Ci0rICAg ICAgIGFycmF5X2l0ZXIrKykKLSsgICAgewotKyAgICAgIHB1dGNoYXJfdW5maWx0ZXJlZCAoJyAn KTsKLSsgICAgICBwdXRzX3VuZmlsdGVyZWQgKCphcnJheV9pdGVyKTsKLSsgICAgfQotKyAgcHV0 Y2hhcl91bmZpbHRlcmVkICgnXG4nKTsKKysgICAgRExPUEVOX0xJQlJQTT0iYGNhdCBjb25mdGVz dC5vdXRgIgorKyAgICBpZiB0ZXN0ICJ4JERMT1BFTl9MSUJSUE0iICE9ICJ4IjsgdGhlbgorKyAg ICAgIEhBVkVfRExPUEVOX0xJQlJQTT10cnVlCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRETE9QRU5fTElCUlBNIiA+JjUKKyskYXNfZWNo byAiJERMT1BFTl9MSUJSUE0iID4mNjsgfQorKyAgICBmaQogKwotKyAgd2hpbGUgKG1pc3Npbmdf cnBtX2xpc3QgIT0gTlVMTCkKLSsgICAgewotKyAgICAgIGxpc3RfaXRlciA9IG1pc3NpbmdfcnBt X2xpc3Q7Ci0rICAgICAgbWlzc2luZ19ycG1fbGlzdCA9IGxpc3RfaXRlci0+bmV4dDsKLSsgICAg ICB4ZnJlZSAobGlzdF9pdGVyKTsKLSsgICAgfQotKyAgbWlzc2luZ19ycG1fbGlzdF9lbnRyaWVz ID0gMDsKKytmaQorK3JtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBi Yi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IFwKKysgIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QuYmVhbSBjb25mdGVzdC4kYWNfZXh0CisrZmkKICsKLSsgIGRvX2NsZWFudXBzIChjbGVhbnVw cyk7Ci0rfQorKyAgcm0gLWYgY29uZnRlc3Qub3V0CiArCi0rc3RhdGljIHZvaWQKLSttaXNzaW5n X3JwbV9jaGFuZ2UgKHZvaWQpCi0rewotKyAgZGVidWdfZmx1c2hfbWlzc2luZyAoKTsKICsKLSsg IGdkYl9hc3NlcnQgKG1pc3NpbmdfcnBtX2xpc3QgPT0gTlVMTCk7Ci0rICBpZiAobWlzc2luZ19y cG1faGFzaCAhPSBOVUxMKQotKyAgICB7Ci0rICAgICAgaHRhYl9kZWxldGUgKG1pc3NpbmdfcnBt X2hhc2gpOwotKyAgICAgIG1pc3NpbmdfcnBtX2hhc2ggPSBOVUxMOwotKyAgICB9Ci0rfQogKwot K2VudW0gbWlzc2luZ19leGVjCi0rICB7Ci0rICAgIC8qIEluaXQgc3RhdGUuICBFWEVDX0JGRCBh bHNvIHN0aWxsIGNvdWxkIGJlIE5VTEwuICAqLwotKyAgICBNSVNTSU5HX0VYRUNfTk9UX1RSSUVE LAotKyAgICAvKiBXZSBzYXcgYSBub24tTlVMTCBFWEVDX0JGRCBidXQgUlBNIGhhcyBubyBpbmZv IGFib3V0IGl0LiAgKi8KLSsgICAgTUlTU0lOR19FWEVDX05PVF9GT1VORCwKLSsgICAgLyogV2Ug Zm91bmQgRVhFQ19CRkQgYnkgUlBNIGFuZCB3ZSBlaXRoZXIgaGF2ZSBpdHMgc3ltYm9scyAoZWl0 aGVyIGVtYmVkZGVkCi0rICAgICAgIG9yIHNlcGFyYXRlKSBvciB0aGUgbWFpbiBleGVjdXRhYmxl J3MgUlBNIGlzIG5vdyBjb250YWluZWQgaW4KLSsgICAgICAgTUlTU0lOR19SUE1fSEFTSC4gICov Ci0rICAgIE1JU1NJTkdfRVhFQ19FTkxJU1RFRAotKyAgfTsKLStzdGF0aWMgZW51bSBtaXNzaW5n X2V4ZWMgbWlzc2luZ19leGVjID0gTUlTU0lOR19FWEVDX05PVF9UUklFRDsKKysgIGlmICRIQVZF X0RMT1BFTl9MSUJSUE07IHRoZW4KICsKLSsjZW5kaWYJLyogSEFWRV9MSUJSUE0gKi8KKysgICAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBycG0gbGli cmFyeSBBUEkgY29tcGF0aWJpbGl0eSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgcnBtIGxp YnJhcnkgQVBJIGNvbXBhdGliaWxpdHkuLi4gIiA+JjY7IH0KKysgICAgIyBUaGUgY29tcGlsYXRp b24gcmVxdWlyZXMgLVdlcnJvciB0byB2ZXJpZnkgYW55dGhpbmcuCisrICAgIHNhdmVfQ0ZMQUdT PSIkQ0ZMQUdTIgorKyAgICBDRkxBR1M9IiRDRkxBR1MgLVdlcnJvciIKKysgICAgY2F0IGNvbmZk ZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KICsKLSt2b2lkCi0rZGVidWdfZmx1c2hfbWlzc2luZyAodm9pZCkKKysvKiBEdXBsaWNhdGUg aGVyZSB0aGUgZGVjbGFyYXRpb25zIHRvIHZlcmlmeSB0aGV5IG1hdGNoICJlbGZyZWFkLmMiLiAg Ki8KKysjaW5jbHVkZSA8cnBtL3JwbWxpYi5oPgorKyNpbmNsdWRlIDxycG0vcnBtdHMuaD4KKysj aW5jbHVkZSA8cnBtL3JwbWRiLmg+CisrI2luY2x1ZGUgPHJwbS9oZWFkZXIuaD4KKytleHRlcm4g Y2hhciAqIGhlYWRlckZvcm1hdChIZWFkZXIgaCwgY29uc3QgY2hhciAqIGZtdCwgZXJybXNnX3Qg KiBlcnJtc2cpOworK2V4dGVybiBpbnQgcnBtUmVhZENvbmZpZ0ZpbGVzKGNvbnN0IGNoYXIgKiBm aWxlLCBjb25zdCBjaGFyICogdGFyZ2V0KTsKKytleHRlcm4gcnBtZGJNYXRjaEl0ZXJhdG9yIHJw bWRiRnJlZUl0ZXJhdG9yKHJwbWRiTWF0Y2hJdGVyYXRvciBtaSk7CisrZXh0ZXJuIEhlYWRlciBy cG1kYk5leHRJdGVyYXRvcihycG1kYk1hdGNoSXRlcmF0b3IgbWkpOworK2V4dGVybiBycG10cyBy cG10c0NyZWF0ZSh2b2lkKTsKKytleHRlcm4gcnBtdHMgcnBtdHNGcmVlKHJwbXRzIHRzKTsKKytl eHRlcm4gcnBtZGJNYXRjaEl0ZXJhdG9yIHJwbXRzSW5pdEl0ZXJhdG9yKGNvbnN0IHJwbXRzIHRz LCBycG1UYWcgcnBtdGFnLAorKwkJCQkJICAgIGNvbnN0IHZvaWQgKiBrZXlwLCBzaXplX3Qga2V5 bGVuKTsKKysKKytpbnQKKyttYWluICgpCiArewotKyNpZmRlZiBIQVZFX0xJQlJQTQotKyAgbWlz c2luZ19ycG1fbGlzdF9wcmludCAoKTsKLSsjZW5kaWYKLSt9CiArCi0gLyogVGhpcyBNSVNTSU5H X0ZJTEVQQUlSX0hBU0ggdHJhY2tlciBpcyB1c2VkIG9ubHkgZm9yIHRoZSBkdXBsaWNpdGUgbWVz c2FnZXMKLS0gICAgIFRyeSB0byBpbnN0YWxsIHRoZSBoYXNoIGZpbGUgLi4uCi0rICAgICB5dW0g LS1lbmFibGVyZXBvPScqZGVidWcqJyBpbnN0YWxsIC4uLgotICAgIGF2b2lkYW5jZS4gICovCi0g Ci0gc3RydWN0IG1pc3NpbmdfZmlsZXBhaXIKLUBAIC0xNzU2LDExICsyMTA5LDE3IEBAIG1pc3Np bmdfZmlsZXBhaXJfY2hhbmdlICh2b2lkKQotICAgICAgIC8qIEFsbCB0aGVpciBtZW1vcnkgY2Ft ZSBqdXN0IGZyb20gbWlzc2luZ19maWxlcGFpcl9PQlNUQUNLLiAgKi8KLSAgICAgICBtaXNzaW5n X2ZpbGVwYWlyX2hhc2ggPSBOVUxMOwotICAgICB9Ci0rI2lmZGVmIEhBVkVfTElCUlBNCi0rICBt aXNzaW5nX2V4ZWMgPSBNSVNTSU5HX0VYRUNfTk9UX1RSSUVEOwotKyNlbmRpZgotIH0KLSAKLSBz dGF0aWMgdm9pZAotIGRlYnVnX3ByaW50X2V4ZWN1dGFibGVfY2hhbmdlZCAodm9pZCkKLSB7Ci0r I2lmZGVmIEhBVkVfTElCUlBNCi0rICBtaXNzaW5nX3JwbV9jaGFuZ2UgKCk7Ci0rI2VuZGlmCi0g ICBtaXNzaW5nX2ZpbGVwYWlyX2NoYW5nZSAoKTsKLSB9Ci0gCi1AQCAtMTgyNywxNCArMjE4Niwz NCBAQCBkZWJ1Z19wcmludF9taXNzaW5nIChjb25zdCBjaGFyICpiaW5hcnksCi0gCi0gICAqc2xv dCA9IG1pc3NpbmdfZmlsZXBhaXI7Ci0gCi0tICAvKiBXZSBkbyBub3QgY29sbGVjdCBhbmQgZmx1 c2ggdGhlc2UgbWVzc2FnZXMgYXMgZWFjaCBzdWNoIG1lc3NhZ2UKLS0gICAgIGFscmVhZHkgcmVx dWlyZXMgaXRzIG93biBzZXBhcmF0ZSBsaW5lcy4gICovCi0rI2lmZGVmIEhBVkVfTElCUlBNCi0r ICBpZiAobWlzc2luZ19leGVjID09IE1JU1NJTkdfRVhFQ19OT1RfVFJJRUQpCi0rICAgIHsKLSsg ICAgICBjaGFyICpleGVjZmlsZW5hbWU7Ci0gCi0tICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9z dGRsb2csCi0tCQkgICAgICBfKCJNaXNzaW5nIHNlcGFyYXRlIGRlYnVnaW5mbyBmb3IgJXNcbiIp LCBiaW5hcnkpOwotLSAgaWYgKGRlYnVnICE9IE5VTEwpCi0tICAgIGZwcmludGZfdW5maWx0ZXJl ZCAoZ2RiX3N0ZGxvZywgXygiVHJ5IHRvIGluc3RhbGwgdGhlIGhhc2ggZmlsZSAlc1xuIiksCi0t CQkJZGVidWcpOwotKyAgICAgIGV4ZWNmaWxlbmFtZSA9IGdldF9leGVjX2ZpbGUgKDApOwotKyAg ICAgIGlmIChleGVjZmlsZW5hbWUgIT0gTlVMTCkKLSsJewotKwkgIGlmIChtaXNzaW5nX3JwbV9l bmxpc3QgKGV4ZWNmaWxlbmFtZSkgPT0gMCkKLSsJICAgIG1pc3NpbmdfZXhlYyA9IE1JU1NJTkdf RVhFQ19OT1RfRk9VTkQ7Ci0rCSAgZWxzZQotKwkgICAgbWlzc2luZ19leGVjID0gTUlTU0lOR19F WEVDX0VOTElTVEVEOwotKwl9Ci0rICAgIH0KLSsgIGlmIChtaXNzaW5nX2V4ZWMgIT0gTUlTU0lO R19FWEVDX0VOTElTVEVEKQotKyAgICBpZiAoKGJpbmFyeVswXSA9PSAwIHx8IG1pc3NpbmdfcnBt X2VubGlzdCAoYmluYXJ5KSA9PSAwKQotKwkmJiAoZGVidWcgPT0gTlVMTCB8fCBtaXNzaW5nX3Jw bV9lbmxpc3QgKGRlYnVnKSA9PSAwKSkKLSsjZW5kaWYJLyogSEFWRV9MSUJSUE0gKi8KLSsgICAg ICB7Ci0rCS8qIFdlIGRvIG5vdCBjb2xsZWN0IGFuZCBmbHVzaCB0aGVzZSBtZXNzYWdlcyBhcyBl YWNoIHN1Y2ggbWVzc2FnZQotKwkgICBhbHJlYWR5IHJlcXVpcmVzIGl0cyBvd24gc2VwYXJhdGUg bGluZXMuICAqLworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2Nf dHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKICsKLSsJZnByaW50Zl91bmZpbHRlcmVkIChn ZGJfc3RkbG9nLAotKwkJCSAgICBfKCJNaXNzaW5nIHNlcGFyYXRlIGRlYnVnaW5mbyBmb3IgJXNc biIpLCBiaW5hcnkpOwotKyAgICAgICAgaWYgKGRlYnVnICE9IE5VTEwpCi0rCSAgZnByaW50Zl91 bmZpbHRlcmVkIChnZGJfc3RkbG9nLCBfKCJUcnk6ICVzICVzXG4iKSwKLSsJCQkgICAgICAieXVt IC0tZW5hYmxlcmVwbz0nKmRlYnVnKicgaW5zdGFsbCIsIGRlYnVnKTsKLSsgICAgICB9Ci0gfQot IAotIHN0YXRpYyBjaGFyICoKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvc3lt ZmlsZS5oCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIv c3ltZmlsZS5oCTIwMTMtMDgtMDIgMTY6MjU6MjQuOTcxMDk0NDAyICswMjAwCi0rKysgZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL3N5bWZpbGUuaAkyMDEzLTA4LTAyIDE2OjI1OjI3LjMzNjA5 NzU1NyArMDIwMAotQEAgLTYwMiw2ICs2MDIsOCBAQCBleHRlcm4gc3RydWN0IGVsZl9idWlsZF9p ZCAqYnVpbGRfaWRfYWRkCi0gZXh0ZXJuIGNoYXIgKmJ1aWxkX2lkX3RvX2ZpbGVuYW1lIChjb25z dCBzdHJ1Y3QgZWxmX2J1aWxkX2lkICpidWlsZF9pZCwKLSAJCQkJICAgY2hhciAqKmxpbmtfcmV0 dXJuLCBpbnQgYWRkX2RlYnVnX3N1ZmZpeCk7Ci0gZXh0ZXJuIHZvaWQgZGVidWdfcHJpbnRfbWlz c2luZyAoY29uc3QgY2hhciAqYmluYXJ5LCBjb25zdCBjaGFyICpkZWJ1Zyk7Ci0rZXh0ZXJuIHZv aWQgZGVidWdfZmx1c2hfbWlzc2luZyAodm9pZCk7Ci0rI2RlZmluZSBCVUlMRF9JRF9NQUlOX0VY RUNVVEFCTEVfRklMRU5BTUUgXygidGhlIG1haW4gZXhlY3V0YWJsZSBmaWxlIikKLSAKLSAvKiBG cm9tIGR3YXJmMnJlYWQuYyAqLwotIAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi90ZXN0c3VpdGUvbGliL2dkYi5leHAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxMy0wOC0wMiAxNjoyNToy NC45NzIwOTQ0MDQgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1 aXRlL2xpYi9nZGIuZXhwCTIwMTMtMDgtMDIgMTY6MjU6MjcuMzM3MDk3NTU5ICswMjAwCi1AQCAt MTQ4Miw3ICsxNDgyLDcgQEAgcHJvYyBkZWZhdWx0X2dkYl9zdGFydCB7IH0gewotIAkgICAgd2Fy bmluZyAiQ291bGRuJ3Qgc2V0IHRoZSB3aWR0aCB0byAwLiIKLSAJfQotICAgICB9Ci0tICAgICMg VHVybiBvZmYgdGhlIG1pc3Npbmcgd2FybmluZ3MgYXMgdGhlIHRlc3RzdWl0ZSBkb2VzIG5vdCBl eHBlY3QgaXQuCi0rICAgICMgVHVybiBvZmYgdGhlIG1pc3NpbmcgUlBNcyB3YXJuaW5ncyBhcyB0 aGUgdGVzdHN1aXRlIGRvZXMgbm90IGV4cGVjdCBpdC4KLSAgICAgc2VuZF9nZGIgInNldCBidWls ZC1pZC12ZXJib3NlIDBcbiIKLSAgICAgZ2RiX2V4cGVjdCAxMCB7Ci0gCS1yZSAiJGdkYl9wcm9t cHQgJCIgewotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90ZXN0c3VpdGUvbGli L21pLXN1cHBvcnQuZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMu b3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDEzLTA4LTAyIDE2OjI1OjI0 Ljk3MzA5NDQwNSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90ZXN0c3Vp dGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTMtMDgtMDIgMTY6MjU6MjcuMzM4MDk3NTYwICswMjAw Ci1AQCAtMjEyLDcgKzIxMiw3IEBAIHByb2MgZGVmYXVsdF9taV9nZGJfc3RhcnQgeyBhcmdzIH0g ewotIAkgICAgd2FybmluZyAiQ291bGRuJ3Qgc2V0IHRoZSB3aWR0aCB0byAwLiIKLSAJfQotICAg ICB9Ci0tICAgICMgVHVybiBvZmYgdGhlIG1pc3Npbmcgd2FybmluZ3MgYXMgdGhlIHRlc3RzdWl0 ZSBkb2VzIG5vdCBleHBlY3QgaXQuCi0rICAgICMgVHVybiBvZmYgdGhlIG1pc3NpbmcgUlBNcyB3 YXJuaW5ncyBhcyB0aGUgdGVzdHN1aXRlIGRvZXMgbm90IGV4cGVjdCBpdC4KLSAgICAgc2VuZF9n ZGIgIjE5MC1nZGItc2V0IGJ1aWxkLWlkLXZlcmJvc2UgMFxuIgotICAgICBnZGJfZXhwZWN0IDEw IHsKLSAJLXJlICIuKjE5MC1nZGItc2V0IGJ1aWxkLWlkLXZlcmJvc2UgMFxyXG4xOTBcXFxeZG9u ZVxyXG4kbWlfZ2RiX3Byb21wdCQiIHsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9n ZGIvdHVpL3R1aS1pbnRlcnAuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzLm9yaWcvZ2RiL3R1aS90dWktaW50ZXJwLmMJMjAxMy0wOC0wMiAxNjoyNToyNC45NzQwOTQ0 MDYgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdHVpL3R1aS1pbnRlcnAu YwkyMDEzLTA4LTAyIDE2OjI1OjI3LjMzODA5NzU2MCArMDIwMAotQEAgLTMwLDYgKzMwLDcgQEAK LSAjaW5jbHVkZSAidHVpL3R1aS5oIgotICNpbmNsdWRlICJ0dWkvdHVpLWlvLmgiCi0gI2luY2x1 ZGUgImV4Y2VwdGlvbnMuaCIKLSsjaW5jbHVkZSAic3ltZmlsZS5oIgotIAotIC8qIFNldCB0byAx IHdoZW4gdGhlIFRVSSBtb2RlIG11c3QgYmUgYWN0aXZhdGVkIHdoZW4gd2UgZmlyc3Qgc3RhcnQK LSAgICBnZGIuICAqLwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hY2xvY2Fs Lm00Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvYWNs b2NhbC5tNAkyMDEzLTA4LTAyIDE2OjI1OjI0Ljk3NDA5NDQwNiArMDIwMAotKysrIGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzL2dkYi9hY2xvY2FsLm00CTIwMTMtMDgtMDIgMTY6MjU6MjcuMzM5MDk3 NTYxICswMjAwCi1AQCAtMTEsNiArMTEsMTY0IEBACi0gIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0gIyBQQVJUSUNVTEFSIFBV UlBPU0UuCi0gCi0rIyBwa2cubTQgLSBNYWNyb3MgdG8gbG9jYXRlIGFuZCB1dGlsaXNlIHBrZy1j b25maWcuICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQotKyMgc2VyaWFsIDEgKHBrZy1jb25m aWctMC4yNCkKLSsjIAotKyMgQ29weXJpZ2h0IMKpIDIwMDQgU2NvdHQgSmFtZXMgUmVtbmFudCA8 c2NvdHRAbmV0c3BsaXQuY29tPi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK LSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhl IExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMK LSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLCBidXQKLSsjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0rIyBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rIyBGb3VuZGF0 aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEt MTMwNywgVVNBLgotKyMKLSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKLSsjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBh cnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQotKyMgY29uZmlndXJhdGlvbiBzY3JpcHQg Z2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKLSsjIHRoZSBz YW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQg cHJvZ3JhbS4KLSsKLSsjIFBLR19QUk9HX1BLR19DT05GSUcoW01JTi1WRVJTSU9OXSkKLSsjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19ERUZVTihbUEtHX1BST0dfUEtH X0NPTkZJR10sCi0rW200X3BhdHRlcm5fZm9yYmlkKFteXz9QS0dfW0EtWl9dKyRdKQotK200X3Bh dHRlcm5fYWxsb3coW15QS0dfQ09ORklHKF9QQVRIKT8kXSkKLStBQ19BUkdfVkFSKFtQS0dfQ09O RklHXSwgW3BhdGggdG8gcGtnLWNvbmZpZyB1dGlsaXR5XSkKLStBQ19BUkdfVkFSKFtQS0dfQ09O RklHX1BBVEhdLCBbZGlyZWN0b3JpZXMgdG8gYWRkIHRvIHBrZy1jb25maWcncyBzZWFyY2ggcGF0 aF0pCi0rQUNfQVJHX1ZBUihbUEtHX0NPTkZJR19MSUJESVJdLCBbcGF0aCBvdmVycmlkaW5nIHBr Zy1jb25maWcncyBidWlsdC1pbiBzZWFyY2ggcGF0aF0pCisrICAgICAgTElCUlBNX0NPTVBBVD10 cnVlCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CiArCi0raWYgdGVzdCAieCRhY19j dl9lbnZfUEtHX0NPTkZJR19zZXQiICE9ICJ4c2V0IjsgdGhlbgotKwlBQ19QQVRIX1RPT0woW1BL R19DT05GSUddLCBbcGtnLWNvbmZpZ10pCi0rZmkKLStpZiB0ZXN0IC1uICIkUEtHX0NPTkZJRyI7 IHRoZW4KLSsJX3BrZ19taW5fdmVyc2lvbj1tNF9kZWZhdWx0KFskMV0sIFswLjkuMF0pCi0rCUFD X01TR19DSEVDS0lORyhbcGtnLWNvbmZpZyBpcyBhdCBsZWFzdCB2ZXJzaW9uICRfcGtnX21pbl92 ZXJzaW9uXSkKLSsJaWYgJFBLR19DT05GSUcgLS1hdGxlYXN0LXBrZ2NvbmZpZy12ZXJzaW9uICRf cGtnX21pbl92ZXJzaW9uOyB0aGVuCi0rCQlBQ19NU0dfUkVTVUxUKFt5ZXNdKQotKwllbHNlCi0r CQlBQ19NU0dfUkVTVUxUKFtub10pCi0rCQlQS0dfQ09ORklHPSIiCi0rCWZpCi0rZmlbXWRubAot K10pIyBQS0dfUFJPR19QS0dfQ09ORklHCisrZWxzZQogKwotKyMgUEtHX0NIRUNLX0VYSVNUUyhN T0RVTEVTLCBbQUNUSU9OLUlGLUZPVU5EXSwgW0FDVElPTi1JRi1OT1QtRk9VTkRdKQotKyMKLSsj IENoZWNrIHRvIHNlZSB3aGV0aGVyIGEgcGFydGljdWxhciBzZXQgb2YgbW9kdWxlcyBleGlzdHMu ICBTaW1pbGFyCi0rIyB0byBQS0dfQ0hFQ0tfTU9EVUxFUygpLCBidXQgZG9lcyBub3Qgc2V0IHZh cmlhYmxlcyBvciBwcmludCBlcnJvcnMuCi0rIwotKyMgUGxlYXNlIHJlbWVtYmVyIHRoYXQgbTQg ZXhwYW5kcyBBQ19SRVFVSVJFKFtQS0dfUFJPR19QS0dfQ09ORklHXSkKLSsjIG9ubHkgYXQgdGhl IGZpcnN0IG9jY3VyZW5jZSBpbiBjb25maWd1cmUuYWMsIHNvIGlmIHRoZSBmaXJzdCBwbGFjZQot KyMgaXQncyBjYWxsZWQgbWlnaHQgYmUgc2tpcHBlZCAoc3VjaCBhcyBpZiBpdCBpcyB3aXRoaW4g YW4gImlmIiwgeW91Ci0rIyBoYXZlIHRvIGNhbGwgUEtHX0NIRUNLX0VYSVNUUyBtYW51YWxseQot KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLStBQ19ERUZVTihbUEtHX0NIRUNLX0VYSVNUU10sCi0rW0FDX1JFUVVJUkUoW1BL R19QUk9HX1BLR19DT05GSUddKWRubAotK2lmIHRlc3QgLW4gIiRQS0dfQ09ORklHIiAmJiBcCi0r ICAgIEFDX1JVTl9MT0coWyRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICIkMSJd KTsgdGhlbgotKyAgbTRfZGVmYXVsdChbJDJdLCBbOl0pCi0rbTRfaWZ2YWxuKFskM10sIFtlbHNl Ci0rICAkM10pZG5sCi0rZmldKQorKyAgICAgIExJQlJQTV9DT01QQVQ9ZmFsc2UKKysgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQor KyRhc19lY2hvICJubyIgPiY2OyB9CiArCi0rIyBfUEtHX0NPTkZJRyhbVkFSSUFCTEVdLCBbQ09N TUFORF0sIFtNT0RVTEVTXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotK200X2RlZmluZShbX1BLR19DT05GSUddLAotK1tpZiB0ZXN0IC1uICIkJDEi OyB0aGVuCi0rICAgIHBrZ19jdl9bXSQxPSIkJDEiCi0rIGVsaWYgdGVzdCAtbiAiJFBLR19DT05G SUciOyB0aGVuCi0rICAgIFBLR19DSEVDS19FWElTVFMoWyQzXSwKLSsgICAgICAgICAgICAgICAg ICAgICBbcGtnX2N2X1tdJDE9YCRQS0dfQ09ORklHIC0tW10kMiAiJDMiIDI+L2Rldi9udWxsYF0s Ci0rCQkgICAgIFtwa2dfZmFpbGVkPXllc10pCi0rIGVsc2UKLSsgICAgcGtnX2ZhaWxlZD11bnRy aWVkCi0rZmlbXWRubAotK10pIyBfUEtHX0NPTkZJRworK2ZpCisrcm0gLWYgY29yZSBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrICAgIENGTEFHUz0i JHNhdmVfQ0ZMQUdTIgogKwotKyMgX1BLR19TSE9SVF9FUlJPUlNfU1VQUE9SVEVECi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtfUEtHX1NIT1JUX0VSUk9SU19T VVBQT1JURURdLAotK1tBQ19SRVFVSVJFKFtQS0dfUFJPR19QS0dfQ09ORklHXSkKLStpZiAkUEtH X0NPTkZJRyAtLWF0bGVhc3QtcGtnY29uZmlnLXZlcnNpb24gMC4yMDsgdGhlbgotKyAgICAgICAg X3BrZ19zaG9ydF9lcnJvcnNfc3VwcG9ydGVkPXllcwotK2Vsc2UKLSsgICAgICAgIF9wa2dfc2hv cnRfZXJyb3JzX3N1cHBvcnRlZD1ubwotK2ZpW11kbmwKLStdKSMgX1BLR19TSE9SVF9FUlJPUlNf U1VQUE9SVEVECisrICAgIGlmICEgJExJQlJQTV9DT01QQVQ7IHRoZW4KKysgICAgICBIQVZFX0RM T1BFTl9MSUJSUE09ZmFsc2UKKysgICAgZmkKKysgIGZpCiArCisrICBpZiAkSEFWRV9ETE9QRU5f TElCUlBNOyB0aGVuCisrICAgIERMT1BFTl9MSUJSUE1fU1RSSU5HPSciJyIkRExPUEVOX0xJQlJQ TSInIicKICsKLSsjIFBLR19DSEVDS19NT0RVTEVTKFZBUklBQkxFLVBSRUZJWCwgTU9EVUxFUywg W0FDVElPTi1JRi1GT1VORF0sCi0rIyBbQUNUSU9OLUlGLU5PVC1GT1VORF0pCi0rIwotKyMKLSsj IE5vdGUgdGhhdCBpZiB0aGVyZSBpcyBhIHBvc3NpYmlsaXR5IHRoZSBmaXJzdCBjYWxsIHRvCi0r IyBQS0dfQ0hFQ0tfTU9EVUxFUyBtaWdodCBub3QgaGFwcGVuLCB5b3Ugc2hvdWxkIGJlIHN1cmUg dG8gaW5jbHVkZSBhbgotKyMgZXhwbGljaXQgY2FsbCB0byBQS0dfUFJPR19QS0dfQ09ORklHIGlu IHlvdXIgY29uZmlndXJlLmFjCi0rIwotKyMKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW1BLR19DSEVD S19NT0RVTEVTXSwKLStbQUNfUkVRVUlSRShbUEtHX1BST0dfUEtHX0NPTkZJR10pZG5sCi0rQUNf QVJHX1ZBUihbJDFdW19DRkxBR1NdLCBbQyBjb21waWxlciBmbGFncyBmb3IgJDEsIG92ZXJyaWRp bmcgcGtnLWNvbmZpZ10pZG5sCi0rQUNfQVJHX1ZBUihbJDFdW19MSUJTXSwgW2xpbmtlciBmbGFn cyBmb3IgJDEsIG92ZXJyaWRpbmcgcGtnLWNvbmZpZ10pZG5sCisrY2F0ID4+Y29uZmRlZnMuaCA8 PF9BQ0VPRgorKyNkZWZpbmUgRExPUEVOX0xJQlJQTSAkRExPUEVOX0xJQlJQTV9TVFJJTkcKKytf QUNFT0YKICsKLStwa2dfZmFpbGVkPW5vCi0rQUNfTVNHX0NIRUNLSU5HKFtmb3IgJDFdKQogKwot K19QS0dfQ09ORklHKFskMV1bX0NGTEFHU10sIFtjZmxhZ3NdLCBbJDJdKQotK19QS0dfQ09ORklH KFskMV1bX0xJQlNdLCBbbGlic10sIFskMl0pCisrJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9MSUJS UE0gMSIgPj5jb25mZGVmcy5oCiArCi0rbTRfZGVmaW5lKFtfUEtHX1RFWFRdLCBbQWx0ZXJuYXRp dmVseSwgeW91IG1heSBzZXQgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyAkMVtdX0NGTEFHUwot K2FuZCAkMVtdX0xJQlMgdG8gYXZvaWQgdGhlIG5lZWQgdG8gY2FsbCBwa2ctY29uZmlnLgotK1Nl ZSB0aGUgcGtnLWNvbmZpZyBtYW4gcGFnZSBmb3IgbW9yZSBkZXRhaWxzLl0pCisrICBlbHNlCisr ICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIg PiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysgICAgTElCUz0iJHNhdmVfTElCUyIKKysgICAg aWYgJERMT1BFTl9SRVFVSVJFOyB0aGVuCisrICAgICAgYXNfZm5fZXJyb3IgIlNwZWNpZmljIG5h bWUgJExJQlJQTSB3YXMgcmVxdWVzdGVkIGJ1dCBpdCBjb3VsZCBub3QgYmUgb3BlbmVkLiIgIiRM SU5FTk8iIDUKKysgICAgZmkKICsKLStpZiB0ZXN0ICRwa2dfZmFpbGVkID0geWVzOyB0aGVuCi0r ICAgCUFDX01TR19SRVNVTFQoW25vXSkKLSsgICAgICAgIF9QS0dfU0hPUlRfRVJST1JTX1NVUFBP UlRFRAotKyAgICAgICAgaWYgdGVzdCAkX3BrZ19zaG9ydF9lcnJvcnNfc3VwcG9ydGVkID0geWVz OyB0aGVuCi0rCSAgICAgICAgJDFbXV9QS0dfRVJST1JTPWAkUEtHX0NPTkZJRyAtLXNob3J0LWVy cm9ycyAtLXByaW50LWVycm9ycyAiJDIiIDI+JjFgCi0rICAgICAgICBlbHNlIAotKwkgICAgICAg ICQxW11fUEtHX0VSUk9SUz1gJFBLR19DT05GSUcgLS1wcmludC1lcnJvcnMgIiQyIiAyPiYxYAot KyAgICAgICAgZmkKLSsJIyBQdXQgdGhlIG5hc3R5IGVycm9yIG1lc3NhZ2UgaW4gY29uZmlnLmxv ZyB3aGVyZSBpdCBiZWxvbmdzCi0rCWVjaG8gIiQkMVtdX1BLR19FUlJPUlMiID4mQVNfTUVTU0FH RV9MT0dfRkQKICsKLSsJbTRfZGVmYXVsdChbJDRdLCBbQUNfTVNHX0VSUk9SKAotK1tQYWNrYWdl IHJlcXVpcmVtZW50cyAoJDIpIHdlcmUgbm90IG1ldDoKICsKLSskJDFfUEtHX0VSUk9SUwogKwot K0NvbnNpZGVyIGFkanVzdGluZyB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25tZW50IHZhcmlh YmxlIGlmIHlvdQotK2luc3RhbGxlZCBzb2Z0d2FyZSBpbiBhIG5vbi1zdGFuZGFyZCBwcmVmaXgu CiArCi0rX1BLR19URVhUXSkKLSsgICAgICAgIF0pCi0rZWxpZiB0ZXN0ICRwa2dfZmFpbGVkID0g dW50cmllZDsgdGhlbgotKyAgICAgCUFDX01TR19SRVNVTFQoW25vXSkKLSsJbTRfZGVmYXVsdChb JDRdLCBbQUNfTVNHX0ZBSUxVUkUoCi0rW1RoZSBwa2ctY29uZmlnIHNjcmlwdCBjb3VsZCBub3Qg YmUgZm91bmQgb3IgaXMgdG9vIG9sZC4gIE1ha2Ugc3VyZSBpdAotK2lzIGluIHlvdXIgUEFUSCBv ciBzZXQgdGhlIFBLR19DT05GSUcgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gdGhlIGZ1bGwKLStw YXRoIHRvIHBrZy1jb25maWcuCiArCi0rX1BLR19URVhUCisraWYgdGVzdCAieCRhY19jdl9lbnZf UEtHX0NPTkZJR19zZXQiICE9ICJ4c2V0IjsgdGhlbgorKwlpZiB0ZXN0IC1uICIkYWNfdG9vbF9w cmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9w cmVmaXh9cGtnLWNvbmZpZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3Mu Cisrc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9cGtnLWNvbmZpZzsgYWNfd29yZD0kMgorK3sg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193 b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0K KytpZiB0ZXN0ICIke2FjX2N2X3BhdGhfUEtHX0NPTkZJRytzZXR9IiA9IHNldDsgdGhlbiA6Cisr ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhc2UgJFBLR19DT05GSUcg aW4KKysgIFtcXC9dKiB8ID86W1xcL10qKQorKyAgYWNfY3ZfcGF0aF9QS0dfQ09ORklHPSIkUEtH X0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisr ICA7OworKyAgKikKKysgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytm b3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXog IiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhl Y3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IjsgfTsgdGhlbgorKyAgICBhY19jdl9wYXRoX1BLR19DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiCisrICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisr ICBmaQorK2RvbmUKKysgIGRvbmUKKytJRlM9JGFzX3NhdmVfSUZTCiArCi0rVG8gZ2V0IHBrZy1j b25maWcsIHNlZSA8aHR0cDovL3BrZy1jb25maWcuZnJlZWRlc2t0b3Aub3JnLz4uXSkKLSsgICAg ICAgIF0pCisrICA7OworK2VzYWMKKytmaQorK1BLR19DT05GSUc9JGFjX2N2X3BhdGhfUEtHX0NP TkZJRworK2lmIHRlc3QgLW4gIiRQS0dfQ09ORklHIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRQS0dfQ09ORklHIiA+JjUKKyskYXNf ZWNobyAiJFBLR19DT05GSUciID4mNjsgfQogK2Vsc2UKLSsJJDFbXV9DRkxBR1M9JHBrZ19jdl9b XSQxW11fQ0ZMQUdTCi0rCSQxW11fTElCUz0kcGtnX2N2X1tdJDFbXV9MSUJTCi0rICAgICAgICBB Q19NU0dfUkVTVUxUKFt5ZXNdKQotKwkkMwotK2ZpW11kbmwKLStdKSMgUEtHX0NIRUNLX01PRFVM RVMKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBu byIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQogKwotICMgQU1fQ09ORElUSU9OQUwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAt Ki0KLSAKLSAjIENvcHlyaWdodCAoQykgMTk5NywgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwgMjAw NSwgMjAwNiwgMjAwOAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jb25maWcu aW4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9jb25m aWcuaW4JMjAxMy0wOC0wMiAxNjoyNToyNC45NzUwOTQ0MDcgKzAyMDAKLSsrKyBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvY29uZmlnLmluCTIwMTMtMDgtMDIgMTY6MjU6MjcuMzM5MDk3NTYx ICswMjAwCi1AQCAtMzMsNiArMzMsOSBAQAotIC8qIERlZmluZSB0byBCRkQncyBkZWZhdWx0IHRh cmdldCB2ZWN0b3IuICovCi0gI3VuZGVmIERFRkFVTFRfQkZEX1ZFQwotIAotKy8qIGxpYnJwbSB2 ZXJzaW9uIHNwZWNpZmljIGxpYnJhcnkgbmFtZSB0byBkbG9wZW4uICovCi0rI3VuZGVmIERMT1BF Tl9MSUJSUE0KICsKLSAvKiBEZWZpbmUgdG8gMSBpZiB0cmFuc2xhdGlvbiBvZiBwcm9ncmFtIG1l c3NhZ2VzIHRvIHRoZSB1c2VyJ3MgbmF0aXZlCi0gICAgbGFuZ3VhZ2UgaXMgcmVxdWVzdGVkLiAq LwotICN1bmRlZiBFTkFCTEVfTkxTCi1AQCAtMjE5LDYgKzIyMiw5IEBACi0gLyogRGVmaW5lIGlm IFB5dGhvbiAyLjcgaXMgYmVpbmcgdXNlZC4gKi8KLSAjdW5kZWYgSEFWRV9MSUJQWVRIT04yXzcK LSAKLSsvKiBEZWZpbmUgaWYgbGlicnBtIGxpYnJhcnkgaXMgYmVpbmcgdXNlZC4gKi8KLSsjdW5k ZWYgSEFWRV9MSUJSUE0KKytmaQorK2lmIHRlc3QgLXogIiRhY19jdl9wYXRoX1BLR19DT05GSUci OyB0aGVuCisrICBhY19wdF9QS0dfQ09ORklHPSRQS0dfQ09ORklHCisrICAjIEV4dHJhY3QgdGhl IGZpcnN0IHdvcmQgb2YgInBrZy1jb25maWciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmdzLgorK3NldCBkdW1teSBwa2ctY29uZmlnOyBhY193b3JkPSQyCisreyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRl c3QgIiR7YWNfY3ZfcGF0aF9hY19wdF9QS0dfQ09ORklHK3NldH0iID0gc2V0OyB0aGVuIDoKKysg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2FzZSAkYWNfcHRfUEtHX0NP TkZJRyBpbgorKyAgW1xcL10qIHwgPzpbXFwvXSopCisrICBhY19jdl9wYXRoX2FjX3B0X1BLR19D T05GSUc9IiRhY19wdF9QS0dfQ09ORklHIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dCB3aXRoIGEgcGF0aC4KKysgIDs7CisrICAqKQorKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQ QVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZl X0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICAgZm9yIGFjX2V4ZWNf ZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3BhdGhfYWNfcHRfUEtHX0NP TkZJRz0iJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIKKysgICAgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQorK0lGUz0kYXNfc2F2 ZV9JRlMKICsKLSAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpYnVud2luZC1pYTY0 Lmg+IGhlYWRlciBmaWxlLiAqLwotICN1bmRlZiBIQVZFX0xJQlVOV0lORF9JQTY0X0gKLSAKLUlu ZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29uZmlndXJlCi09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvY29uZmlndXJlCTIwMTMtMDgtMDIg MTY6MjU6MjQuOTgxMDk0NDE1ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L2NvbmZpZ3VyZQkyMDEzLTA4LTAyIDE2OjI1OjI3LjM0MzA5NzU2NyArMDIwMAotQEAgLTY4OSw2 ICs2ODksMTEgQEAgUEtHVkVSU0lPTgotIEhBVkVfTkFUSVZFX0dDT1JFX1RBUkdFVAotIFRBUkdF VF9PQlMKLSBzdWJkaXJzCi0rUlBNX0xJQlMKLStSUE1fQ0ZMQUdTCi0rUEtHX0NPTkZJR19MSUJE SVIKLStQS0dfQ09ORklHX1BBVEgKLStQS0dfQ09ORklHCi0gR0RCX0RBVEFESVIKLSBERUJVR0RJ UgotIE1BS0VJTkZPX0VYVFJBX0ZMQUdTCi1AQCAtNzg5LDYgKzc5NCw3IEBAIHdpdGhfZ2RiX2Rh dGFkaXIKLSB3aXRoX3JlbG9jYXRlZF9zb3VyY2VzCi0gd2l0aF9hdXRvX2xvYWRfZGlyCi0gd2l0 aF9hdXRvX2xvYWRfc2FmZV9wYXRoCi0rd2l0aF9ycG0KLSBlbmFibGVfdGFyZ2V0cwotIGVuYWJs ZV82NF9iaXRfYmZkCi0gZW5hYmxlX2dkYmNsaQotQEAgLTgzOSw2ICs4NDUsMTEgQEAgQ1BQRkxB R1MKLSBDUFAKLSBNQUtFSU5GTwotIE1BS0VJTkZPRkxBR1MKLStQS0dfQ09ORklHCi0rUEtHX0NP TkZJR19QQVRICi0rUEtHX0NPTkZJR19MSUJESVIKLStSUE1fQ0ZMQUdTCi0rUlBNX0xJQlMKLSBZ QUNDCi0gWUZMQUdTCi0gWE1LTUYnCi1AQCAtMTUwOSw2ICsxNTIwLDggQEAgT3B0aW9uYWwgUGFj a2FnZXM6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBbLS13aXRoLWF1dG8tbG9hZC1kaXJd Ci0gICAtLXdpdGhvdXQtYXV0by1sb2FkLXNhZmUtcGF0aAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgZG8gbm90IHJlc3RyaWN0IGF1dG8tbG9hZGVkIGZpbGVzIGxvY2F0aW9ucwotKyAgLS13 aXRoLXJwbSAgICAgICAgICAgICAgcXVlcnkgcnBtIGRhdGFiYXNlIGZvciBtaXNzaW5nIGRlYnVn aW5mb3MgKHllcy9ubywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZi4gYXV0bz1saWJy cG0uc28pCi0gICAtLXdpdGgtbGlidW53aW5kLWlhNjQgICB1c2UgbGlidW53aW5kIGZyYW1lIHVu d2luZGluZyBmb3IgaWE2NCB0YXJnZXRzCi0gICAtLXdpdGgtY3Vyc2VzICAgICAgICAgICB1c2Ug dGhlIGN1cnNlcyBsaWJyYXJ5IGluc3RlYWQgb2YgdGhlIHRlcm1jYXAKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYnJhcnkKLUBAIC0xNTU2LDYgKzE1NjksMTMgQEAgU29tZSBpbmZsdWVu dGlhbCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Ci0gICBNQUtFSU5GTyAgICBQYXJlbnQgY29uZmln dXJlIGRldGVjdHMgaWYgaXQgaXMgb2Ygc3VmZmljaWVudCB2ZXJzaW9uLgotICAgTUFLRUlORk9G TEFHUwotICAgICAgICAgICAgICAgUGFyYW1ldGVycyBmb3IgTUFLRUlORk8uCi0rICBQS0dfQ09O RklHICBwYXRoIHRvIHBrZy1jb25maWcgdXRpbGl0eQotKyAgUEtHX0NPTkZJR19QQVRICi0rICAg ICAgICAgICAgICBkaXJlY3RvcmllcyB0byBhZGQgdG8gcGtnLWNvbmZpZydzIHNlYXJjaCBwYXRo Ci0rICBQS0dfQ09ORklHX0xJQkRJUgotKyAgICAgICAgICAgICAgcGF0aCBvdmVycmlkaW5nIHBr Zy1jb25maWcncyBidWlsdC1pbiBzZWFyY2ggcGF0aAotKyAgUlBNX0NGTEFHUyAgQyBjb21waWxl ciBmbGFncyBmb3IgUlBNLCBvdmVycmlkaW5nIHBrZy1jb25maWcKLSsgIFJQTV9MSUJTICAgIGxp bmtlciBmbGFncyBmb3IgUlBNLCBvdmVycmlkaW5nIHBrZy1jb25maWcKLSAgIFlBQ0MgICAgICAg IFRoZSBgWWV0IEFub3RoZXIgQyBDb21waWxlcicgaW1wbGVtZW50YXRpb24gdG8gdXNlLiBEZWZh dWx0cyB0bwotICAgICAgICAgICAgICAgdGhlIGZpcnN0IHByb2dyYW0gZm91bmQgb3V0IG9mOiBg Ymlzb24gLXknLCBgYnlhY2MnLCBgeWFjYycuCi0gICBZRkxBR1MgICAgICBUaGUgbGlzdCBvZiBh cmd1bWVudHMgdGhhdCB3aWxsIGJlIHBhc3NlZCBieSBkZWZhdWx0IHRvICRZQUNDLgotQEAgLTUw MzksNiArNTA1OSw0OTEgQEAgX0FDRU9GCi0geyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6ICR3aXRoX2F1dG9fbG9hZF9zYWZlX3BhdGgiID4mNQotICRhc19l Y2hvICIkd2l0aF9hdXRvX2xvYWRfc2FmZV9wYXRoIiA+JjY7IH0KLSAKLSsjIEludGVncmF0aW9u IHdpdGggcnBtIGxpYnJhcnkgdG8gc3VwcG9ydCBtaXNzaW5nIGRlYnVnaW5mbyBzdWdnZXN0aW9u cy4KLSsjIC0td2l0aG91dC1ycG06IERpc2FibGUgYW55IHJwbSBzdXBwb3J0LgotKyMgLS13aXRo LXJwbT1saWJuYW1lLnNvOiBUcnkgdG8gZHluYW1pY2FsbHkgb3BlbiBgbGlibmFtZS5zbycgZHVy aW5nIHJ1bnRpbWUuCi0rIyAgIEV2ZW4gd2l0aCBydW50aW1lIG1pc3NpbmcgYGxpYm5hbWUuc28n IEdEQiB3aWxsIHN0aWxsIG90aGVyIHJ1biBjb3JyZWN0bHkuCi0rIyAgIE1pc3NpbmcgYGxpYm5h bWUuc28nIGR1cmluZyAuL2NvbmZpZ3VyZSB3aWxsIGFib3J0IHRoZSBjb25maWd1cmF0aW9uLgot KyMgLS13aXRoLXJwbT1saWJycG0uc286IExpa2UgYC0td2l0aC1ycG09bGlibmFtZS5zbycgYnV0 IHRyeSB0byBmaW5kIHNwZWNpZmljCi0rIyAgIG1pbm9yIHZlcnNpb24gZmlyc3Qgc3VjaCBhcyBg bGlicnBtLTQuNi5zbycgYXMgbWlub3IgdmVyc2lvbiBkaWZmZXJlbmNlcwotKyMgICBtZWFuIEFQ SStBQkkgaW5jb21wYXRpYmlsaXR5LiAgSWYgdGhlIHNwZWNpZmljIG1hdGNoIHZlcnNpb25lZCBs aWJyYXJ5IG5hbWUKLSsjICAgY291bGQgbm90IGJlIGZvdW5kIHN0aWxsIG9wZW4gZHluYW1pY2Fs bHkgYXQgbGVhc3QgYGxpYnJwbS5zbycuCi0rIyAtLXdpdGgtcnBtOiBMaWtlIGAtLXdpdGgtcnBt PWxpYnJwbS5zbycgYnV0IGlmIGFueSBvZiBpdHMgZGV0ZWN0aW9uIGZhaWxzIHRyeQotKyMgICB0 byBmaW5kIGxpYnJwbSBmb3IgY29tcGlsYXRpb24tdGltZSBsaW5raW5nIGJ5IHBrZy1jb25maWcu ICBHREIgYmluYXJ5IHdpbGwKLSsjICAgYmUgcHJvYmFibHkgbGlua2VkIHdpdGggdGhlIHZlcnNp b24gc3BlY2lmaWMgbGlicmFyeSAoYXMgYGxpYnJwbS00LjYuc28nKS4KLSsjICAgRmFpbHVyZSB0 byBmaW5kIGxpYnJwbSBieSBwa2ctY29uZmlnIHdpbGwgYWJvcnQgdGhlIGNvbmZpZ3VyYXRpb24u Ci0rIyAoZGVmYXVsdCkgLS13aXRoLXJwbT1hdXRvOiBMaWtlIGAtLXdpdGgtcnBtPWxpYnJwbS5z bycgYnV0IGlmIGV2ZW4gcGtnLWNvbmZpZwotKyMgICBjYW5ub3QgZmluZCBsaWJycG0gdXNlIHRv IHRoZSBycG1sZXNzIGNvbXBpbGF0aW9uIChsaWtlIGAtLXdpdGhvdXQtcnBtJykuCisrICA7Owor K2VzYWMKKytmaQorK2FjX3B0X1BLR19DT05GSUc9JGFjX2N2X3BhdGhfYWNfcHRfUEtHX0NPTkZJ RworK2lmIHRlc3QgLW4gIiRhY19wdF9QS0dfQ09ORklHIjsgdGhlbgorKyAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19wdF9QS0dfQ09ORklHIiA+ JjUKKyskYXNfZWNobyAiJGFjX3B0X1BLR19DT05GSUciID4mNjsgfQorK2Vsc2UKKysgIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFz X2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19wdF9QS0dfQ09ORklH IiA9IHg7IHRoZW4KKysgICAgUEtHX0NPTkZJRz0iIgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9z c19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBw cmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklO RzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7 fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgUEtHX0NPTkZJRz0kYWNfcHRf UEtHX0NPTkZJRworKyAgZmkKKytlbHNlCisrICBQS0dfQ09ORklHPSIkYWNfY3ZfcGF0aF9QS0df Q09ORklHIgorK2ZpCisrCisrZmkKKytpZiB0ZXN0IC1uICIkUEtHX0NPTkZJRyI7IHRoZW4KKysJ X3BrZ19taW5fdmVyc2lvbj0wLjkuMAorKwl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGNoZWNraW5nIHBrZy1jb25maWcgaXMgYXQgbGVhc3QgdmVyc2lvbiAkX3BrZ19t aW5fdmVyc2lvbiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgcGtnLWNvbmZpZyBpcyBhdCBs ZWFzdCB2ZXJzaW9uICRfcGtnX21pbl92ZXJzaW9uLi4uICIgPiY2OyB9CisrCWlmICRQS0dfQ09O RklHIC0tYXRsZWFzdC1wa2djb25maWctdmVyc2lvbiAkX3BrZ19taW5fdmVyc2lvbjsgdGhlbgor KwkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIg PiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrCWVsc2UKKysJCXsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+ JjY7IH0KKysJCVBLR19DT05GSUc9IiIKKysJZmkKKytmaQogKworK3BrZ19mYWlsZWQ9bm8KKyt7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBSUE0i ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBSUE0uLi4gIiA+JjY7IH0KICsKLSsjIENo ZWNrIHdoZXRoZXIgLS13aXRoLXJwbSB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX3JwbStz ZXR9IiA9IHNldDsgdGhlbiA6Ci0rICB3aXRodmFsPSR3aXRoX3JwbTsKKytpZiB0ZXN0IC1uICIk UlBNX0NGTEFHUyI7IHRoZW4KKysgICAgcGtnX2N2X1JQTV9DRkxBR1M9IiRSUE1fQ0ZMQUdTIgor KyBlbGlmIHRlc3QgLW4gIiRQS0dfQ09ORklHIjsgdGhlbgorKyAgICBpZiB0ZXN0IC1uICIkUEtH X0NPTkZJRyIgJiYgXAorKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogXCRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzIFwicnBtXCIiOyB9ID4m NQorKyAgKCRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJycG0iKSAyPiY1Cisr ICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfTsgdGhlbgor KyAgcGtnX2N2X1JQTV9DRkxBR1M9YCRQS0dfQ09ORklHIC0tY2ZsYWdzICJycG0iIDI+L2Rldi9u dWxsYAogK2Vsc2UKLSsgIHdpdGhfcnBtPSJhdXRvIgorKyAgcGtnX2ZhaWxlZD15ZXMKKytmaQor KyBlbHNlCisrICAgIHBrZ19mYWlsZWQ9dW50cmllZAorK2ZpCisraWYgdGVzdCAtbiAiJFJQTV9M SUJTIjsgdGhlbgorKyAgICBwa2dfY3ZfUlBNX0xJQlM9IiRSUE1fTElCUyIKKysgZWxpZiB0ZXN0 IC1uICIkUEtHX0NPTkZJRyI7IHRoZW4KKysgICAgaWYgdGVzdCAtbiAiJFBLR19DT05GSUciICYm IFwKKysgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkUEtH X0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyBcInJwbVwiIjsgfSA+JjUKKysgICgkUEtH X0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAicnBtIikgMj4mNQorKyAgYWNfc3RhdHVz PSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKKysgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IHRoZW4KKysgIHBrZ19jdl9S UE1fTElCUz1gJFBLR19DT05GSUcgLS1saWJzICJycG0iIDI+L2Rldi9udWxsYAorK2Vsc2UKKysg IHBrZ19mYWlsZWQ9eWVzCisrZmkKKysgZWxzZQorKyAgICBwa2dfZmFpbGVkPXVudHJpZWQKICtm aQogKwogKwogKworK2lmIHRlc3QgJHBrZ19mYWlsZWQgPSB5ZXM7IHRoZW4KKysgICAJeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNf ZWNobyAibm8iID4mNjsgfQogKwotK2lmIHRlc3QgIngkd2l0aF9ycG0iICE9ICJ4bm8iOyB0aGVu Ci0rICBpZiB0ZXN0ICJ4JHdpdGhfcnBtIiA9ICJ4eWVzIjsgdGhlbgotKyAgICBMSUJSUE09Imxp YnJwbS5zbyIKLSsgICAgUlBNX1JFUVVJUkU9dHJ1ZQotKyAgICBETE9QRU5fUkVRVUlSRT1mYWxz ZQotKyAgZWxpZiB0ZXN0ICJ4JHdpdGhfcnBtIiA9ICJ4YXV0byI7IHRoZW4KLSsgICAgTElCUlBN PSJsaWJycG0uc28iCi0rICAgIFJQTV9SRVFVSVJFPWZhbHNlCi0rICAgIERMT1BFTl9SRVFVSVJF PWZhbHNlCi0rICBlbHNlCi0rICAgIExJQlJQTT0iJHdpdGhfcnBtIgotKyAgICBSUE1fUkVRVUlS RT10cnVlCi0rICAgIERMT1BFTl9SRVFVSVJFPXRydWUKLSsgIGZpCi0rICBMSUJSUE1fU1RSSU5H PSciJyIkTElCUlBNIiciJworK2lmICRQS0dfQ09ORklHIC0tYXRsZWFzdC1wa2djb25maWctdmVy c2lvbiAwLjIwOyB0aGVuCisrICAgICAgICBfcGtnX3Nob3J0X2Vycm9yc19zdXBwb3J0ZWQ9eWVz CisrZWxzZQorKyAgICAgICAgX3BrZ19zaG9ydF9lcnJvcnNfc3VwcG9ydGVkPW5vCisrZmkKKysg ICAgICAgIGlmIHRlc3QgJF9wa2dfc2hvcnRfZXJyb3JzX3N1cHBvcnRlZCA9IHllczsgdGhlbgor KwkgICAgICAgIFJQTV9QS0dfRVJST1JTPWAkUEtHX0NPTkZJRyAtLXNob3J0LWVycm9ycyAtLXBy aW50LWVycm9ycyAicnBtIiAyPiYxYAorKyAgICAgICAgZWxzZQorKwkgICAgICAgIFJQTV9QS0df RVJST1JTPWAkUEtHX0NPTkZJRyAtLXByaW50LWVycm9ycyAicnBtIiAyPiYxYAorKyAgICAgICAg ZmkKKysJIyBQdXQgdGhlIG5hc3R5IGVycm9yIG1lc3NhZ2UgaW4gY29uZmlnLmxvZyB3aGVyZSBp dCBiZWxvbmdzCisrCWVjaG8gIiRSUE1fUEtHX0VSUk9SUyIgPiY1CiArCi0rICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHNwZWNpZmljIGxpYnJwbSB2 ZXJzaW9uIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBzcGVjaWZpYyBsaWJycG0gdmVyc2lv bi4uLiAiID4mNjsgfQotKyAgSEFWRV9ETE9QRU5fTElCUlBNPWZhbHNlCi0rICBzYXZlX0xJQlM9 IiRMSUJTIgotKyAgTElCUz0iJExJQlMgLWxkbCIKLSsgIGlmIHRlc3QgIiRjcm9zc19jb21waWxp bmciID0geWVzOyB0aGVuIDoKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLSthc19mbl9lcnJvciAiY2Fubm90IHJ1biB0ZXN0 IHByb2dyYW0gd2hpbGUgY3Jvc3MgY29tcGlsaW5nCi0rU2VlIFxgY29uZmlnLmxvZycgZm9yIG1v cmUgZGV0YWlscy4iICIkTElORU5PIiA1OyB9CisrCUhBVkVfTElCUlBNPWZhbHNlCisrZWxpZiB0 ZXN0ICRwa2dfZmFpbGVkID0gdW50cmllZDsgdGhlbgorKyAgICAgCXsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+ JjY7IH0KKysJSEFWRV9MSUJSUE09ZmFsc2UKICtlbHNlCi0rICBjYXQgY29uZmRlZnMuaCAtIDw8 X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLworKwlSUE1f Q0ZMQUdTPSRwa2dfY3ZfUlBNX0NGTEFHUworKwlSUE1fTElCUz0kcGtnX2N2X1JQTV9MSUJTCisr ICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog eWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKysJSEFWRV9MSUJSUE09dHJ1ZQorK2Zp CiArCi0rI2luY2x1ZGUgPHJwbS9ycG1saWIuaD4KLSsjaW5jbHVkZSA8ZGxmY24uaD4KLSsjaW5j bHVkZSA8ZXJybm8uaD4KKysgICAgaWYgJEhBVkVfTElCUlBNOyB0aGVuCiArCi0raW50Ci0rbWFp biAoKQotK3sKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBycG0gbGlicmFyeSBBUEkgY29tcGF0aWJpbGl0eSIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgcnBtIGxpYnJhcnkgQVBJIGNvbXBhdGliaWxpdHkuLi4gIiA+JjY7IH0KKysgICAg IyBUaGUgY29tcGlsYXRpb24gcmVxdWlyZXMgLVdlcnJvciB0byB2ZXJpZnkgYW55dGhpbmcuCisr ICAgIHNhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgorKyAgICBDRkxBR1M9IiRDRkxBR1MgLVdlcnJvciIK KysgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KICsKLSsgICAgdm9pZCAqaDsKLSsgICAgY29uc3QgY2hhciAqY29u c3QgKnJwbXZlcnA7Ci0rICAgIEZJTEUgKmY7CisrLyogRHVwbGljYXRlIGhlcmUgdGhlIGRlY2xh cmF0aW9ucyB0byB2ZXJpZnkgdGhleSBtYXRjaCAiZWxmcmVhZC5jIi4gICovCisrI2luY2x1ZGUg PHJwbS9ycG1saWIuaD4KKysjaW5jbHVkZSA8cnBtL3JwbXRzLmg+CisrI2luY2x1ZGUgPHJwbS9y cG1kYi5oPgorKyNpbmNsdWRlIDxycG0vaGVhZGVyLmg+CisrZXh0ZXJuIGNoYXIgKiBoZWFkZXJG b3JtYXQoSGVhZGVyIGgsIGNvbnN0IGNoYXIgKiBmbXQsIGVycm1zZ190ICogZXJybXNnKTsKKytl eHRlcm4gaW50IHJwbVJlYWRDb25maWdGaWxlcyhjb25zdCBjaGFyICogZmlsZSwgY29uc3QgY2hh ciAqIHRhcmdldCk7CisrZXh0ZXJuIHJwbWRiTWF0Y2hJdGVyYXRvciBycG1kYkZyZWVJdGVyYXRv cihycG1kYk1hdGNoSXRlcmF0b3IgbWkpOworK2V4dGVybiBIZWFkZXIgcnBtZGJOZXh0SXRlcmF0 b3IocnBtZGJNYXRjaEl0ZXJhdG9yIG1pKTsKKytleHRlcm4gcnBtdHMgcnBtdHNDcmVhdGUodm9p ZCk7CisrZXh0ZXJuIHJwbXRzIHJwbXRzRnJlZShycG10cyB0cyk7CisrZXh0ZXJuIHJwbWRiTWF0 Y2hJdGVyYXRvciBycG10c0luaXRJdGVyYXRvcihjb25zdCBycG10cyB0cywgcnBtVGFnIHJwbXRh ZywKKysJCQkJCSAgICBjb25zdCB2b2lkICoga2V5cCwgc2l6ZV90IGtleWxlbik7CisrCisraW50 CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBh Y19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CisrCisrICAgICAgTElCUlBNX0NP TVBBVD10cnVlCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrCisrZWxzZQorKwor KyAgICAgIExJQlJQTV9DT01QQVQ9ZmFsc2UKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9 CisrCisrZmkKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0LiRhY19leHQKKysgICAgQ0ZMQUdTPSIkc2F2ZV9DRkxBR1MiCisrCisrICAgICAgaWYg ISAkTElCUlBNX0NPTVBBVDsgdGhlbgorKwlIQVZFX0xJQlJQTT1mYWxzZQorKwlSUE1fUEtHX0VS Uk9SUz0iRm91bmQgJExJQlJQTSBBUEkgaXMgaW5jb21wYXRpYmlsZSB3aXRoIHRoaXMgR0RCIgor KyAgICAgIGZpCisrICAgIGZpCisrCisrICAgIGlmICRIQVZFX0xJQlJQTTsgdGhlbgorKworKyRh c19lY2hvICIjZGVmaW5lIEhBVkVfTElCUlBNIDEiID4+Y29uZmRlZnMuaAorKworKyAgICAgIENG TEFHUz0iJENGTEFHUyAkUlBNX0NGTEFHUyIKKysgICAgICBMSUJTPSIkTElCUyAkUlBNX0xJQlMi CisrICAgIGVsc2UKKysgICAgICBpZiAkUlBNX1JFUVVJUkU7IHRoZW4KKysJYXNfZm5fZXJyb3Ig IiRSUE1fUEtHX0VSUk9SUyIgIiRMSU5FTk8iIDUKKysgICAgICBlbHNlCisrCXsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogJFJQTV9QS0dfRVJST1JTIiA+ JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkUlBNX1BLR19FUlJPUlMiID4mMjt9Cisr ICAgICAgZmkKKysgICAgZmkKKysgIGZpCisrZmkKKysKKyAKKyAKKyBzdWJkaXJzPSIkc3ViZGly cyB0ZXN0c3VpdGUiCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvY29uZmlndXJlLmFj Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9jb25maWd1cmUu YWMJMjAxNC0wMi0wNiAxNzoxODoyNi45Nzc3MTcyMjMgKzAxMDAKKysrKyBnZGItNy42LjkwLjIw MTQwMTI3L2dkYi9jb25maWd1cmUuYWMJMjAxNC0wMi0wNiAxNzoxODozMy44NzM3MjQ2NzQgKzAx MDAKK0BAIC0xNjUsNiArMTY1LDE5OSBAQCBBQ19ERUZJTkVfRElSKEFVVE9fTE9BRF9TQUZFX1BB VEgsIGVzY2FwCisgCSAgICAgIFtEaXJlY3RvcmllcyBzYWZlIHRvIGhvbGQgYXV0by1sb2FkZWQg ZmlsZXMuXSkKKyBBQ19NU0dfUkVTVUxUKFskd2l0aF9hdXRvX2xvYWRfc2FmZV9wYXRoXSkKKyAK KysjIEludGVncmF0aW9uIHdpdGggcnBtIGxpYnJhcnkgdG8gc3VwcG9ydCBtaXNzaW5nIGRlYnVn aW5mbyBzdWdnZXN0aW9ucy4KKysjIC0td2l0aG91dC1ycG06IERpc2FibGUgYW55IHJwbSBzdXBw b3J0LgorKyMgLS13aXRoLXJwbT1saWJuYW1lLnNvOiBUcnkgdG8gZHluYW1pY2FsbHkgb3BlbiBg bGlibmFtZS5zbycgZHVyaW5nIHJ1bnRpbWUuCisrIyAgIEV2ZW4gd2l0aCBydW50aW1lIG1pc3Np bmcgYGxpYm5hbWUuc28nIEdEQiB3aWxsIHN0aWxsIG90aGVyIHJ1biBjb3JyZWN0bHkuCisrIyAg IE1pc3NpbmcgYGxpYm5hbWUuc28nIGR1cmluZyAuL2NvbmZpZ3VyZSB3aWxsIGFib3J0IHRoZSBj b25maWd1cmF0aW9uLgorKyMgLS13aXRoLXJwbT1saWJycG0uc286IExpa2UgYC0td2l0aC1ycG09 bGlibmFtZS5zbycgYnV0IHRyeSB0byBmaW5kIHNwZWNpZmljCisrIyAgIG1pbm9yIHZlcnNpb24g Zmlyc3Qgc3VjaCBhcyBgbGlicnBtLTQuNi5zbycgYXMgbWlub3IgdmVyc2lvbiBkaWZmZXJlbmNl cworKyMgICBtZWFuIEFQSStBQkkgaW5jb21wYXRpYmlsaXR5LiAgSWYgdGhlIHNwZWNpZmljIG1h dGNoIHZlcnNpb25lZCBsaWJyYXJ5IG5hbWUKKysjICAgY291bGQgbm90IGJlIGZvdW5kIHN0aWxs IG9wZW4gZHluYW1pY2FsbHkgYXQgbGVhc3QgYGxpYnJwbS5zbycuCisrIyAtLXdpdGgtcnBtOiBM aWtlIGAtLXdpdGgtcnBtPWxpYnJwbS5zbycgYnV0IGlmIGFueSBvZiBpdHMgZGV0ZWN0aW9uIGZh aWxzIHRyeQorKyMgICB0byBmaW5kIGxpYnJwbSBmb3IgY29tcGlsYXRpb24tdGltZSBsaW5raW5n IGJ5IHBrZy1jb25maWcuICBHREIgYmluYXJ5IHdpbGwKKysjICAgYmUgcHJvYmFibHkgbGlua2Vk IHdpdGggdGhlIHZlcnNpb24gc3BlY2lmaWMgbGlicmFyeSAoYXMgYGxpYnJwbS00LjYuc28nKS4K KysjICAgRmFpbHVyZSB0byBmaW5kIGxpYnJwbSBieSBwa2ctY29uZmlnIHdpbGwgYWJvcnQgdGhl IGNvbmZpZ3VyYXRpb24uCisrIyAoZGVmYXVsdCkgLS13aXRoLXJwbT1hdXRvOiBMaWtlIGAtLXdp dGgtcnBtPWxpYnJwbS5zbycgYnV0IGlmIGV2ZW4gcGtnLWNvbmZpZworKyMgICBjYW5ub3QgZmlu ZCBsaWJycG0gdXNlIHRvIHRoZSBycG1sZXNzIGNvbXBpbGF0aW9uIChsaWtlIGAtLXdpdGhvdXQt cnBtJykuCisrCisrQUNfQVJHX1dJVEgoW3JwbV0sCisrICBbQVNfSEVMUF9TVFJJTkcoWy0td2l0 aC1ycG1dLAorKyAgICAgICAgICAgICAgICAgIFtxdWVyeSBycG0gZGF0YWJhc2UgZm9yIG1pc3Np bmcgZGVidWdpbmZvcyAoeWVzL25vLCBkZWYuIGF1dG89bGlicnBtLnNvKV0pXSwgW10sIFt3aXRo X3JwbT0iYXV0byJdKQorKworK200X3BhdHRlcm5fYWxsb3coW15BQ19NU0dfRVJST1IkXSkKKytt NF9wYXR0ZXJuX2FsbG93KFteQUNfTVNHX1dBUk4kXSkKKytpZiB0ZXN0ICJ4JHdpdGhfcnBtIiAh PSAieG5vIjsgdGhlbgorKyAgaWYgdGVzdCAieCR3aXRoX3JwbSIgPSAieHllcyI7IHRoZW4KKysg ICAgTElCUlBNPSJsaWJycG0uc28iCisrICAgIFJQTV9SRVFVSVJFPXRydWUKKysgICAgRExPUEVO X1JFUVVJUkU9ZmFsc2UKKysgIGVsaWYgdGVzdCAieCR3aXRoX3JwbSIgPSAieGF1dG8iOyB0aGVu CisrICAgIExJQlJQTT0ibGlicnBtLnNvIgorKyAgICBSUE1fUkVRVUlSRT1mYWxzZQorKyAgICBE TE9QRU5fUkVRVUlSRT1mYWxzZQorKyAgZWxzZQorKyAgICBMSUJSUE09IiR3aXRoX3JwbSIKKysg ICAgUlBNX1JFUVVJUkU9dHJ1ZQorKyAgICBETE9QRU5fUkVRVUlSRT10cnVlCisrICBmaQorKyAg TElCUlBNX1NUUklORz0nIiciJExJQlJQTSInIicKKysKKysgIEFDX01TR19DSEVDS0lORyhbc3Bl Y2lmaWMgbGlicnBtIHZlcnNpb25dKQorKyAgSEFWRV9ETE9QRU5fTElCUlBNPWZhbHNlCisrICBz YXZlX0xJQlM9IiRMSUJTIgorKyAgTElCUz0iJExJQlMgLWxkbCIKKysgIEFDX1JVTl9JRkVMU0Uo QUNfTEFOR19QUk9HUkFNKFtbCisrI2luY2x1ZGUgPHJwbS9ycG1saWIuaD4KKysjaW5jbHVkZSA8 ZGxmY24uaD4KKysjaW5jbHVkZSA8ZXJybm8uaD4KKysgIF1dLCBbWworKyAgICB2b2lkICpoOwor KyAgICBjb25zdCBjaGFyICpjb25zdCAqcnBtdmVycDsKKysgICAgRklMRSAqZjsKICsKICsgICAg ZiA9IGZvcGVuICgiY29uZnRlc3Qub3V0IiwgInciKTsKICsgICAgaWYgKCFmKQpAQCAtOTAxLDM5 ICsxMDAyLDIxIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29uZmlndXJl CiArCWZwcmludGYgKGYsICIlc1xuIiwgaDJfbmFtZSk7CiArCXJldHVybiAwOwogKyAgICAgIH0K LSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jX3RyeV9ydW4g IiRMSU5FTk8iOyB0aGVuIDoKLSsKKysgIF1dKSwgWwogKyAgICBETE9QRU5fTElCUlBNPSJgY2F0 IGNvbmZ0ZXN0Lm91dGAiCiArICAgIGlmIHRlc3QgIngkRExPUEVOX0xJQlJQTSIgIT0gIngiOyB0 aGVuCiArICAgICAgSEFWRV9ETE9QRU5fTElCUlBNPXRydWUKLSsgICAgICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJERMT1BFTl9MSUJSUE0iID4mNQot KyRhc19lY2hvICIkRExPUEVOX0xJQlJQTSIgPiY2OyB9CisrICAgICAgQUNfTVNHX1JFU1VMVCgk RExPUEVOX0xJQlJQTSkKICsgICAgZmkKLSsKLStmaQotK3JtIC1mIGNvcmUgKi5jb3JlIGNvcmUu Y29uZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IFwKLSsgIGNvbmZ0 ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuYmVhbSBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSsKKysg IF0pCiArICBybSAtZiBjb25mdGVzdC5vdXQKICsKLSsKLSsKLSsgIGlmICRIQVZFX0RMT1BFTl9M SUJSUE07IHRoZW4KLSsKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyBycG0gbGlicmFyeSBBUEkgY29tcGF0aWJpbGl0eSIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgcnBtIGxpYnJhcnkgQVBJIGNvbXBhdGliaWxpdHkuLi4gIiA+JjY7IH0K KysgIG00X2RlZmluZShbQ0hFQ0tfTElCUlBNX0NPTVBBVF0sIFsKKysgICAgQUNfTVNHX0NIRUNL SU5HKFtycG0gbGlicmFyeSBBUEkgY29tcGF0aWJpbGl0eV0pCiArICAgICMgVGhlIGNvbXBpbGF0 aW9uIHJlcXVpcmVzIC1XZXJyb3IgdG8gdmVyaWZ5IGFueXRoaW5nLgogKyAgICBzYXZlX0NGTEFH Uz0iJENGTEFHUyIKICsgICAgQ0ZMQUdTPSIkQ0ZMQUdTIC1XZXJyb3IiCi0rICAgIGNhdCBjb25m ZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4g ICovCi0rCisrICAgIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbWwogKy8qIER1 cGxpY2F0ZSBoZXJlIHRoZSBkZWNsYXJhdGlvbnMgdG8gdmVyaWZ5IHRoZXkgbWF0Y2ggImVsZnJl YWQuYyIuICAqLwogKyNpbmNsdWRlIDxycG0vcnBtbGliLmg+CiArI2luY2x1ZGUgPHJwbS9ycG10 cy5oPgpAQCAtOTQ3LDMxICsxMDMwLDE4IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIvY29uZmlndXJlCiArZXh0ZXJuIHJwbXRzIHJwbXRzRnJlZShycG10cyB0cyk7CiArZXh0 ZXJuIHJwbWRiTWF0Y2hJdGVyYXRvciBycG10c0luaXRJdGVyYXRvcihjb25zdCBycG10cyB0cywg cnBtVGFnIHJwbXRhZywKICsJCQkJCSAgICBjb25zdCB2b2lkICoga2V5cCwgc2l6ZV90IGtleWxl bik7Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStf QUNFT0YKLStpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6Ci0rCisrICAg IF1dKSwgWwogKyAgICAgIExJQlJQTV9DT01QQVQ9dHJ1ZQotKyAgICAgIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5 ZXMiID4mNjsgfQotKwotK2Vsc2UKLSsKKysgICAgICBBQ19NU0dfUkVTVUxUKHllcykKKysgICAg XSwgWwogKyAgICAgIExJQlJQTV9DT01QQVQ9ZmFsc2UKLSsgICAgICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIg PiY2OyB9Ci0rCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysgICAgICBBQ19NU0dfUkVTVUxUKG5vKQorKyAgICBdKQog KyAgICBDRkxBR1M9IiRzYXZlX0NGTEFHUyIKKysgIF0pCiArCisrICBpZiAkSEFWRV9ETE9QRU5f TElCUlBNOyB0aGVuCisrICAgIENIRUNLX0xJQlJQTV9DT01QQVQKICsgICAgaWYgISAkTElCUlBN X0NPTVBBVDsgdGhlbgogKyAgICAgIEhBVkVfRExPUEVOX0xJQlJQTT1mYWxzZQogKyAgICBmaQpA QCAtOTc5LDQ5OCArMTA0OSw0ODUgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi9jb25maWd1cmUKICsKICsgIGlmICRIQVZFX0RMT1BFTl9MSUJSUE07IHRoZW4KICsgICAgRExP UEVOX0xJQlJQTV9TVFJJTkc9JyInIiRETE9QRU5fTElCUlBNIiciJwotKwotK2NhdCA+PmNvbmZk ZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIERMT1BFTl9MSUJSUE0gJERMT1BFTl9MSUJSUE1fU1RS SU5HCi0rX0FDRU9GCi0rCi0rCi0rJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9MSUJSUE0gMSIgPj5j b25mZGVmcy5oCi0rCisrICAgIEFDX0RFRklORV9VTlFVT1RFRChETE9QRU5fTElCUlBNLCAkRExP UEVOX0xJQlJQTV9TVFJJTkcsIFtsaWJycG0gdmVyc2lvbiBzcGVjaWZpYyBsaWJyYXJ5IG5hbWUg dG8gZGxvcGVuLl0pCisrICAgIEFDX0RFRklORShIQVZFX0xJQlJQTSwgMSwgW0RlZmluZSBpZiBs aWJycG0gbGlicmFyeSBpcyBiZWluZyB1c2VkLl0pCiArICBlbHNlCi0rICAgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8g Im5vIiA+JjY7IH0KKysgICAgQUNfTVNHX1JFU1VMVChubykKICsgICAgTElCUz0iJHNhdmVfTElC UyIKICsgICAgaWYgJERMT1BFTl9SRVFVSVJFOyB0aGVuCi0rICAgICAgYXNfZm5fZXJyb3IgIlNw ZWNpZmljIG5hbWUgJExJQlJQTSB3YXMgcmVxdWVzdGVkIGJ1dCBpdCBjb3VsZCBub3QgYmUgb3Bl bmVkLiIgIiRMSU5FTk8iIDUKKysgICAgICBBQ19NU0dfRVJST1IoW1NwZWNpZmljIG5hbWUgJExJ QlJQTSB3YXMgcmVxdWVzdGVkIGJ1dCBpdCBjb3VsZCBub3QgYmUgb3BlbmVkLl0pCiArICAgIGZp CisrICAgIFBLR19DSEVDS19NT0RVTEVTKFJQTSwgcnBtLCBbSEFWRV9MSUJSUE09dHJ1ZV0sIFtI QVZFX0xJQlJQTT1mYWxzZV0pCiArCisrICAgIGlmICRIQVZFX0xJQlJQTTsgdGhlbgorKyAgICAg IENIRUNLX0xJQlJQTV9DT01QQVQKKysgICAgICBpZiAhICRMSUJSUE1fQ09NUEFUOyB0aGVuCisr CUhBVkVfTElCUlBNPWZhbHNlCisrCVJQTV9QS0dfRVJST1JTPSJGb3VuZCAkTElCUlBNIEFQSSBp cyBpbmNvbXBhdGliaWxlIHdpdGggdGhpcyBHREIiCisrICAgICAgZmkKKysgICAgZmkKICsKKysg ICAgaWYgJEhBVkVfTElCUlBNOyB0aGVuCisrICAgICAgQUNfREVGSU5FKEhBVkVfTElCUlBNLCAx LCBbRGVmaW5lIGlmIGxpYnJwbSBsaWJyYXJ5IGlzIGJlaW5nIHVzZWQuXSkKKysgICAgICBDRkxB R1M9IiRDRkxBR1MgJFJQTV9DRkxBR1MiCisrICAgICAgTElCUz0iJExJQlMgJFJQTV9MSUJTIgor KyAgICBlbHNlCisrICAgICAgaWYgJFJQTV9SRVFVSVJFOyB0aGVuCisrCUFDX01TR19FUlJPUigk UlBNX1BLR19FUlJPUlMpCisrICAgICAgZWxzZQorKwlBQ19NU0dfV0FSTigkUlBNX1BLR19FUlJP UlMpCisrICAgICAgZmkKKysgICAgZmkKKysgIGZpCisrZmkKKysgCisgQUNfQ09ORklHX1NVQkRJ UlModGVzdHN1aXRlKQorIAorICMgQ2hlY2sgd2hldGhlciB0byBzdXBwb3J0IGFsdGVybmF0aXZl IHRhcmdldCBjb25maWd1cmF0aW9ucworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2Nv cmVsb3cuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvY29y ZWxvdy5jCTIwMTQtMDItMDYgMTc6MTg6MjYuOTc4NzE3MjI0ICswMTAwCisrKysgZ2RiLTcuNi45 MC4yMDE0MDEyNy9nZGIvY29yZWxvdy5jCTIwMTQtMDItMDYgMTc6MTg6MzMuODczNzI0Njc0ICsw MTAwCitAQCAtMzE1LDcgKzMxNSw3IEBAIGJ1aWxkX2lkX2xvY2F0ZV9leGVjIChpbnQgZnJvbV90 dHkpCisgICAgICAgICBzeW1maWxlX29iamZpbGUtPmZsYWdzIHw9IE9CSkZfQlVJTERfSURfQ09S RV9MT0FERUQ7CisgICAgIH0KKyAgIGVsc2UKKy0gICAgZGVidWdfcHJpbnRfbWlzc2luZyAoXygi dGhlIG1haW4gZXhlY3V0YWJsZSBmaWxlIiksIGJ1aWxkX2lkX2ZpbGVuYW1lKTsKKysgICAgZGVi dWdfcHJpbnRfbWlzc2luZyAoQlVJTERfSURfTUFJTl9FWEVDVVRBQkxFX0ZJTEVOQU1FLCBidWls ZF9pZF9maWxlbmFtZSk7CisgCisgICBkb19jbGVhbnVwcyAoYmFja190byk7CisgCitJbmRleDog Z2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYnVpbGQtaWQuYworPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03 LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvYnVpbGQtaWQuYwkyMDE0LTAyLTA2IDE3OjE4OjI2Ljg0 MjcxNzA3NyArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2J1aWxkLWlkLmMJMjAx NC0wMi0wNiAxNzowODoxOC4zNDEwNjAyOTUgKzAxMDAKK0BAIC0zMiw2ICszMiw3IEBACisgI2lu Y2x1ZGUgImdkYmNtZC5oIgorICNpbmNsdWRlICJvYnNlcnZlci5oIgorICNpbmNsdWRlIDxzeXMv c3RhdC5oPgorKyNpbmNsdWRlICJlbGYvZXh0ZXJuYWwuaCIKKyAKKyAjZGVmaW5lIEJVSUxEX0lE X1ZFUkJPU0VfTk9ORSAwCisgI2RlZmluZSBCVUlMRF9JRF9WRVJCT1NFX0ZJTEVOQU1FUyAxCitA QCAtNjY2LDggKzY2NywzNjAgQEAgYnVpbGRfaWRfdG9fZmlsZW5hbWUgKGNvbnN0IHN0cnVjdCBl bGZfYgorICAgcmV0dXJuIHJlc3VsdDsKKyB9CisgCisrI2lmZGVmIEhBVkVfTElCUlBNCiArCisr I2luY2x1ZGUgPHJwbS9ycG1saWIuaD4KKysjaW5jbHVkZSA8cnBtL3JwbXRzLmg+CisrI2luY2x1 ZGUgPHJwbS9ycG1kYi5oPgorKyNpbmNsdWRlIDxycG0vaGVhZGVyLmg+CisrI2lmZGVmIERMT1BF Tl9MSUJSUE0KKysjaW5jbHVkZSA8ZGxmY24uaD4KKysjZW5kaWYKICsKKysvKiBUaGlzIE1JU1NJ TkdfUlBNX0hBU0ggdHJhY2tlciBpcyB1c2VkIHRvIGNvbGxlY3QgYWxsIHRoZSBtaXNzaW5nIHJw bSBmaWxlcworKyAgIGFuZCBhdm9pZCB0aGVpciBkdXBsaWNpdGllcyBkdXJpbmcgYSBzaW5nbGUg aW5mZXJpb3IgcnVuLiAgKi8KICsKKytzdGF0aWMgc3RydWN0IGh0YWIgKm1pc3NpbmdfcnBtX2hh c2g7CiArCi0raWYgdGVzdCAieCRhY19jdl9lbnZfUEtHX0NPTkZJR19zZXQiICE9ICJ4c2V0Ijsg dGhlbgotKwlpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAjIEV4dHJhY3Qg dGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9cGtnLWNvbmZpZyIsIHNvIGl0IGNh biBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVm aXh9cGtnLWNvbmZpZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3BhdGhfUEtH X0NPTkZJRytzZXR9IiA9IHNldDsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgotK2Vsc2UKLSsgIGNhc2UgJFBLR19DT05GSUcgaW4KLSsgIFtcXC9dKiB8ID86W1xcL10qKQot KyAgYWNfY3ZfcGF0aF9QS0dfQ09ORklHPSIkUEtHX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3Zl cnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rICA7OwotKyAgKikKLSsgIGFzX3NhdmVfSUZT PSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsg IElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAg IGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAg aWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94 ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wYXRo X1BLR19DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCi0rICAgICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9 JGFzX3NhdmVfSUZTCisrLyogVGhpcyBNSVNTSU5HX1JQTV9MSVNUIHRyYWNrZXIgaXMgdXNlZCB0 byBjb2xsZWN0IGFuZCBwcmludCBhcyBhIHNpbmdsZSBsaW5lCisrICAgYWxsIHRoZSBycG1zIHJp Z2h0IGJlZm9yZSB0aGUgbmVhcmVzdCBHREIgcHJvbXB0LiAgSXQgZ2V0cyBjbGVhcmVkIGFmdGVy CisrICAgZWFjaCBzdWNoIHByaW50IChpdCBpcyBxdWVzdGlvbmFibGUgaWYgd2Ugc2hvdWxkIGNs ZWFyIGl0IGFmdGVyIHRoZSBwcmludCkuCisrICAgKi8KICsKLSsgIDs7Ci0rZXNhYwotK2ZpCi0r UEtHX0NPTkZJRz0kYWNfY3ZfcGF0aF9QS0dfQ09ORklHCi0raWYgdGVzdCAtbiAiJFBLR19DT05G SUciOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogJFBLR19DT05GSUciID4mNQotKyRhc19lY2hvICIkUEtHX0NPTkZJRyIgPiY2OyB9Ci0r ZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCisrc3RydWN0IG1pc3NpbmdfcnBt CisrICB7CisrICAgIHN0cnVjdCBtaXNzaW5nX3JwbSAqbmV4dDsKKysgICAgY2hhciBycG1bMV07 CisrICB9OworK3N0YXRpYyBzdHJ1Y3QgbWlzc2luZ19ycG0gKm1pc3NpbmdfcnBtX2xpc3Q7Cisr c3RhdGljIGludCBtaXNzaW5nX3JwbV9saXN0X2VudHJpZXM7CiArCisrLyogUmV0dXJucyB0aGUg Y291bnQgb2YgbmV3bHkgYWRkZWQgcnBtcy4gICovCiArCi0rZmkKLStpZiB0ZXN0IC16ICIkYWNf Y3ZfcGF0aF9QS0dfQ09ORklHIjsgdGhlbgotKyAgYWNfcHRfUEtHX0NPTkZJRz0kUEtHX0NPTkZJ RwotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJwa2ctY29uZmlnIiwgc28gaXQgY2Fu IGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgcGtnLWNvbmZpZzsgYWNf d29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQu Li4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3BhdGhfYWNfcHRfUEtHX0NPTkZJRytzZXR9 IiA9IHNldDsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsg IGNhc2UgJGFjX3B0X1BLR19DT05GSUcgaW4KLSsgIFtcXC9dKiB8ID86W1xcL10qKQotKyAgYWNf Y3ZfcGF0aF9hY19wdF9QS0dfQ09ORklHPSIkYWNfcHRfUEtHX0NPTkZJRyIgIyBMZXQgdGhlIHVz ZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rICA7OwotKyAgKikKLSsgIGFzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0r ZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0u Ci0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBk bwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNf dGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19j dl9wYXRoX2FjX3B0X1BLR19DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCi0r ICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsg IGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCisrc3RhdGljIGludAorK21pc3NpbmdfcnBtX2VubGlz dCAoY29uc3QgY2hhciAqZmlsZW5hbWUpCisreworKyAgc3RhdGljIGludCBycG1faW5pdF9kb25l ID0gMDsKKysgIHJwbXRzIHRzOworKyAgcnBtZGJNYXRjaEl0ZXJhdG9yIG1pOworKyAgaW50IGNv dW50ID0gMDsKICsKLSsgIDs7Ci0rZXNhYwotK2ZpCi0rYWNfcHRfUEtHX0NPTkZJRz0kYWNfY3Zf cGF0aF9hY19wdF9QS0dfQ09ORklHCi0raWYgdGVzdCAtbiAiJGFjX3B0X1BLR19DT05GSUciOyB0 aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog JGFjX3B0X1BLR19DT05GSUciID4mNQotKyRhc19lY2hvICIkYWNfcHRfUEtHX0NPTkZJRyIgPiY2 OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCisrI2lmZGVmIERMT1BF Tl9MSUJSUE0KKysgIC8qIER1cGxpY2F0ZSBoZXJlIHRoZSBkZWNsYXJhdGlvbnMgdG8gdmVyaWZ5 IHRoZXkgbWF0Y2guICBUaGUgc2FtZSBzYW5pdHkKKysgICAgIGNoZWNrIGlzIHByZXNlbnQgYWxz byBpbiBgY29uZmlndXJlLmFjJy4gICovCisrICBleHRlcm4gY2hhciAqIGhlYWRlckZvcm1hdChI ZWFkZXIgaCwgY29uc3QgY2hhciAqIGZtdCwgZXJybXNnX3QgKiBlcnJtc2cpOworKyAgc3RhdGlj IGNoYXIgKigqaGVhZGVyRm9ybWF0X3ApIChIZWFkZXIgaCwgY29uc3QgY2hhciAqIGZtdCwgZXJy bXNnX3QgKmVycm1zZyk7CisrICBleHRlcm4gaW50IHJwbVJlYWRDb25maWdGaWxlcyhjb25zdCBj aGFyICogZmlsZSwgY29uc3QgY2hhciAqIHRhcmdldCk7CisrICBzdGF0aWMgaW50ICgqcnBtUmVh ZENvbmZpZ0ZpbGVzX3ApIChjb25zdCBjaGFyICogZmlsZSwgY29uc3QgY2hhciAqIHRhcmdldCk7 CisrICBleHRlcm4gcnBtZGJNYXRjaEl0ZXJhdG9yIHJwbWRiRnJlZUl0ZXJhdG9yKHJwbWRiTWF0 Y2hJdGVyYXRvciBtaSk7CisrICBzdGF0aWMgcnBtZGJNYXRjaEl0ZXJhdG9yICgqcnBtZGJGcmVl SXRlcmF0b3JfcCkgKHJwbWRiTWF0Y2hJdGVyYXRvciBtaSk7CisrICBleHRlcm4gSGVhZGVyIHJw bWRiTmV4dEl0ZXJhdG9yKHJwbWRiTWF0Y2hJdGVyYXRvciBtaSk7CisrICBzdGF0aWMgSGVhZGVy ICgqcnBtZGJOZXh0SXRlcmF0b3JfcCkgKHJwbWRiTWF0Y2hJdGVyYXRvciBtaSk7CisrICBleHRl cm4gcnBtdHMgcnBtdHNDcmVhdGUodm9pZCk7CisrICBzdGF0aWMgcnBtdHMgKCpycG10c0NyZWF0 ZV9wKSAodm9pZCk7CisrICBleHRlcm4gcnBtdHMgcnBtdHNGcmVlKHJwbXRzIHRzKTsKKysgIHN0 YXRpYyBycG10cyAoKnJwbXRzRnJlZV9wKSAocnBtdHMgdHMpOworKyAgZXh0ZXJuIHJwbWRiTWF0 Y2hJdGVyYXRvciBycG10c0luaXRJdGVyYXRvcihjb25zdCBycG10cyB0cywgcnBtVGFnIHJwbXRh ZywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg dm9pZCAqIGtleXAsIHNpemVfdCBrZXlsZW4pOworKyAgc3RhdGljIHJwbWRiTWF0Y2hJdGVyYXRv ciAoKnJwbXRzSW5pdEl0ZXJhdG9yX3ApIChjb25zdCBycG10cyB0cywKKysJCQkJCQkgICAgcnBt VGFnIHJwbXRhZywKKysJCQkJCQkgICAgY29uc3Qgdm9pZCAqa2V5cCwKKysJCQkJCQkgICAgc2l6 ZV90IGtleWxlbik7CisrI2Vsc2UJLyogIURMT1BFTl9MSUJSUE0gKi8KKysjIGRlZmluZSBoZWFk ZXJGb3JtYXRfcCBoZWFkZXJGb3JtYXQKKysjIGRlZmluZSBycG1SZWFkQ29uZmlnRmlsZXNfcCBy cG1SZWFkQ29uZmlnRmlsZXMKKysjIGRlZmluZSBycG1kYkZyZWVJdGVyYXRvcl9wIHJwbWRiRnJl ZUl0ZXJhdG9yCisrIyBkZWZpbmUgcnBtZGJOZXh0SXRlcmF0b3JfcCBycG1kYk5leHRJdGVyYXRv cgorKyMgZGVmaW5lIHJwbXRzQ3JlYXRlX3AgcnBtdHNDcmVhdGUKKysjIGRlZmluZSBycG10c0Zy ZWVfcCBycG10c0ZyZWUKKysjIGRlZmluZSBycG10c0luaXRJdGVyYXRvcl9wIHJwbXRzSW5pdEl0 ZXJhdG9yCisrI2VuZGlmCS8qICFETE9QRU5fTElCUlBNICovCiArCi0rICBpZiB0ZXN0ICJ4JGFj X3B0X1BLR19DT05GSUciID0geDsgdGhlbgotKyAgICBQS0dfQ09ORklHPSIiCi0rICBlbHNlCi0r ICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jv c3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKLSskYXNfZWNobyAi JGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0 IHRyaXBsZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0rZXNhYwotKyAgICBQS0df Q09ORklHPSRhY19wdF9QS0dfQ09ORklHCi0rICBmaQotK2Vsc2UKLSsgIFBLR19DT05GSUc9IiRh Y19jdl9wYXRoX1BLR19DT05GSUciCi0rZmkKKysgIGdkYl9hc3NlcnQgKGZpbGVuYW1lICE9IE5V TEwpOwogKwotK2ZpCi0raWYgdGVzdCAtbiAiJFBLR19DT05GSUciOyB0aGVuCi0rCV9wa2dfbWlu X3ZlcnNpb249MC45LjAKLSsJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBjaGVja2luZyBwa2ctY29uZmlnIGlzIGF0IGxlYXN0IHZlcnNpb24gJF9wa2dfbWluX3ZlcnNp b24iID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHBrZy1jb25maWcgaXMgYXQgbGVhc3QgdmVy c2lvbiAkX3BrZ19taW5fdmVyc2lvbi4uLiAiID4mNjsgfQotKwlpZiAkUEtHX0NPTkZJRyAtLWF0 bGVhc3QtcGtnY29uZmlnLXZlcnNpb24gJF9wa2dfbWluX3ZlcnNpb247IHRoZW4KLSsJCXsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQotKyRh c19lY2hvICJ5ZXMiID4mNjsgfQotKwllbHNlCi0rCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0r CQlQS0dfQ09ORklHPSIiCi0rCWZpCi0rZmkKKysgIGlmIChzdHJjbXAgKGZpbGVuYW1lLCBCVUlM RF9JRF9NQUlOX0VYRUNVVEFCTEVfRklMRU5BTUUpID09IDApCisrICAgIHJldHVybiAwOwogKwot K3BrZ19mYWlsZWQ9bm8KLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGNoZWNraW5nIGZvciBSUE0iID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBSUE0uLi4g IiA+JjY7IH0KKysgIGlmIChmaWxlbmFtZVswXSAhPSAnLycpCisrICAgIHsKKysgICAgICB3YXJu aW5nIChfKCJJZ25vcmluZyBub24tYWJzb2x1dGUgZmlsZW5hbWU6IDwlcz4iKSwgZmlsZW5hbWUp OworKyAgICAgIHJldHVybiAwOworKyAgICB9CiArCi0raWYgdGVzdCAtbiAiJFJQTV9DRkxBR1Mi OyB0aGVuCi0rICAgIHBrZ19jdl9SUE1fQ0ZMQUdTPSIkUlBNX0NGTEFHUyIKLSsgZWxpZiB0ZXN0 IC1uICIkUEtHX0NPTkZJRyI7IHRoZW4KLSsgICAgaWYgdGVzdCAtbiAiJFBLR19DT05GSUciICYm IFwKLSsgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkUEtH X0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyBcInJwbVwiIjsgfSA+JjUKLSsgICgkUEtH X0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAicnBtIikgMj4mNQotKyAgYWNfc3RhdHVz PSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKLSsgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IHRoZW4KLSsgIHBrZ19jdl9S UE1fQ0ZMQUdTPWAkUEtHX0NPTkZJRyAtLWNmbGFncyAicnBtIiAyPi9kZXYvbnVsbGAKLStlbHNl Ci0rICBwa2dfZmFpbGVkPXllcwotK2ZpCi0rIGVsc2UKLSsgICAgcGtnX2ZhaWxlZD11bnRyaWVk Ci0rZmkKLStpZiB0ZXN0IC1uICIkUlBNX0xJQlMiOyB0aGVuCi0rICAgIHBrZ19jdl9SUE1fTElC Uz0iJFJQTV9MSUJTIgotKyBlbGlmIHRlc3QgLW4gIiRQS0dfQ09ORklHIjsgdGhlbgotKyAgICBp ZiB0ZXN0IC1uICIkUEtHX0NPTkZJRyIgJiYgXAotKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogXCRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3Jz IFwicnBtXCIiOyB9ID4mNQotKyAgKCRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3Jz ICJycG0iKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgdGVzdCAkYWNfc3RhdHVz ID0gMDsgfTsgdGhlbgotKyAgcGtnX2N2X1JQTV9MSUJTPWAkUEtHX0NPTkZJRyAtLWxpYnMgInJw bSIgMj4vZGV2L251bGxgCi0rZWxzZQotKyAgcGtnX2ZhaWxlZD15ZXMKLStmaQotKyBlbHNlCi0r ICAgIHBrZ19mYWlsZWQ9dW50cmllZAotK2ZpCisrICBpZiAoIXJwbV9pbml0X2RvbmUpCisrICAg IHsKKysgICAgICBzdGF0aWMgaW50IGluaXRfdHJpZWQ7CiArCisrICAgICAgLyogQWxyZWFkeSBm YWlsZWQgdGhlIGluaXRpYWxpemF0aW9uIGJlZm9yZT8gICovCisrICAgICAgaWYgKGluaXRfdHJp ZWQpCisrICAgICAgCXJldHVybiAwOworKyAgICAgIGluaXRfdHJpZWQgPSAxOwogKworKyNpZmRl ZiBETE9QRU5fTElCUlBNCisrICAgICAgeworKwl2b2lkICpoOwogKwotK2lmIHRlc3QgJHBrZ19m YWlsZWQgPSB5ZXM7IHRoZW4KLSsgICAJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQorKwloID0gZGxv cGVuIChETE9QRU5fTElCUlBNLCBSVExEX0xBWlkpOworKwlpZiAoIWgpCisrCSAgeworKwkgICAg d2FybmluZyAoXygiVW5hYmxlIHRvIG9wZW4gXCIlc1wiICglcyksICIKKysJCSAgICAgICJtaXNz aW5nIGRlYnVnaW5mb3Mgbm90aWZpY2F0aW9ucyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQiKSwKKysJ CSAgICAgRExPUEVOX0xJQlJQTSwgZGxlcnJvciAoKSk7CisrCSAgICByZXR1cm4gMDsKKysJICB9 CiArCi0raWYgJFBLR19DT05GSUcgLS1hdGxlYXN0LXBrZ2NvbmZpZy12ZXJzaW9uIDAuMjA7IHRo ZW4KLSsgICAgICAgIF9wa2dfc2hvcnRfZXJyb3JzX3N1cHBvcnRlZD15ZXMKLStlbHNlCi0rICAg ICAgICBfcGtnX3Nob3J0X2Vycm9yc19zdXBwb3J0ZWQ9bm8KLStmaQotKyAgICAgICAgaWYgdGVz dCAkX3BrZ19zaG9ydF9lcnJvcnNfc3VwcG9ydGVkID0geWVzOyB0aGVuCi0rCSAgICAgICAgUlBN X1BLR19FUlJPUlM9YCRQS0dfQ09ORklHIC0tc2hvcnQtZXJyb3JzIC0tcHJpbnQtZXJyb3JzICJy cG0iIDI+JjFgCi0rICAgICAgICBlbHNlCi0rCSAgICAgICAgUlBNX1BLR19FUlJPUlM9YCRQS0df Q09ORklHIC0tcHJpbnQtZXJyb3JzICJycG0iIDI+JjFgCi0rICAgICAgICBmaQotKwkjIFB1dCB0 aGUgbmFzdHkgZXJyb3IgbWVzc2FnZSBpbiBjb25maWcubG9nIHdoZXJlIGl0IGJlbG9uZ3MKLSsJ ZWNobyAiJFJQTV9QS0dfRVJST1JTIiA+JjUKKysJaWYgKCEoKGhlYWRlckZvcm1hdF9wID0gZGxz eW0gKGgsICJoZWFkZXJGb3JtYXQiKSkKKysJICAgICAgJiYgKHJwbVJlYWRDb25maWdGaWxlc19w ID0gZGxzeW0gKGgsICJycG1SZWFkQ29uZmlnRmlsZXMiKSkKKysJICAgICAgJiYgKHJwbWRiRnJl ZUl0ZXJhdG9yX3AgPSBkbHN5bSAoaCwgInJwbWRiRnJlZUl0ZXJhdG9yIikpCisrCSAgICAgICYm IChycG1kYk5leHRJdGVyYXRvcl9wID0gZGxzeW0gKGgsICJycG1kYk5leHRJdGVyYXRvciIpKQor KwkgICAgICAmJiAocnBtdHNDcmVhdGVfcCA9IGRsc3ltIChoLCAicnBtdHNDcmVhdGUiKSkKKysJ ICAgICAgJiYgKHJwbXRzRnJlZV9wID0gZGxzeW0gKGgsICJycG10c0ZyZWUiKSkKKysJICAgICAg JiYgKHJwbXRzSW5pdEl0ZXJhdG9yX3AgPSBkbHN5bSAoaCwgInJwbXRzSW5pdEl0ZXJhdG9yIikp KSkKKysJICB7CisrCSAgICB3YXJuaW5nIChfKCJPcGVuZWQgbGlicmFyeSBcIiVzXCIgaXMgaW5j b21wYXRpYmxlICglcyksICIKKysJCSAgICAgICJtaXNzaW5nIGRlYnVnaW5mb3Mgbm90aWZpY2F0 aW9ucyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQiKSwKKysJCSAgICAgRExPUEVOX0xJQlJQTSwgZGxl cnJvciAoKSk7CisrCSAgICBpZiAoZGxjbG9zZSAoaCkpCisrCSAgICAgIHdhcm5pbmcgKF8oIkVy cm9yIGNsb3NpbmcgbGlicmFyeSBcIiVzXCI6ICVzXG4iKSwgRExPUEVOX0xJQlJQTSwKKysJCSAg ICAgICBkbGVycm9yICgpKTsKKysJICAgIHJldHVybiAwOworKwkgIH0KKysgICAgICB9CisrI2Vu ZGlmCS8qIERMT1BFTl9MSUJSUE0gKi8KICsKLSsJSEFWRV9MSUJSUE09ZmFsc2UKLStlbGlmIHRl c3QgJHBrZ19mYWlsZWQgPSB1bnRyaWVkOyB0aGVuCi0rICAgICAJeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4m NjsgfQotKwlIQVZFX0xJQlJQTT1mYWxzZQotK2Vsc2UKLSsJUlBNX0NGTEFHUz0kcGtnX2N2X1JQ TV9DRkxBR1MKLSsJUlBNX0xJQlM9JHBrZ19jdl9SUE1fTElCUwotKyAgICAgICAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2Vj aG8gInllcyIgPiY2OyB9Ci0rCUhBVkVfTElCUlBNPXRydWUKLStmaQorKyAgICAgIGlmIChycG1S ZWFkQ29uZmlnRmlsZXNfcCAoTlVMTCwgTlVMTCkgIT0gMCkKKysJeworKwkgIHdhcm5pbmcgKF8o IkVycm9yIHJlYWRpbmcgdGhlIHJwbSBjb25maWd1cmF0aW9uIGZpbGVzIikpOworKwkgIHJldHVy biAwOworKwl9CiArCi0rICAgIGlmICRIQVZFX0xJQlJQTTsgdGhlbgorKyAgICAgIHJwbV9pbml0 X2RvbmUgPSAxOworKyAgICB9CiArCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogY2hlY2tpbmcgcnBtIGxpYnJhcnkgQVBJIGNvbXBhdGliaWxpdHkiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIHJwbSBsaWJyYXJ5IEFQSSBjb21wYXRpYmlsaXR5Li4uICIg PiY2OyB9Ci0rICAgICMgVGhlIGNvbXBpbGF0aW9uIHJlcXVpcmVzIC1XZXJyb3IgdG8gdmVyaWZ5 IGFueXRoaW5nLgotKyAgICBzYXZlX0NGTEFHUz0iJENGTEFHUyIKLSsgICAgQ0ZMQUdTPSIkQ0ZM QUdTIC1XZXJyb3IiCi0rICAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRh Y19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCisrICB0cyA9IHJwbXRzQ3JlYXRlX3AgKCk7 CiArCi0rLyogRHVwbGljYXRlIGhlcmUgdGhlIGRlY2xhcmF0aW9ucyB0byB2ZXJpZnkgdGhleSBt YXRjaCAiZWxmcmVhZC5jIi4gICovCi0rI2luY2x1ZGUgPHJwbS9ycG1saWIuaD4KLSsjaW5jbHVk ZSA8cnBtL3JwbXRzLmg+Ci0rI2luY2x1ZGUgPHJwbS9ycG1kYi5oPgotKyNpbmNsdWRlIDxycG0v aGVhZGVyLmg+Ci0rZXh0ZXJuIGNoYXIgKiBoZWFkZXJGb3JtYXQoSGVhZGVyIGgsIGNvbnN0IGNo YXIgKiBmbXQsIGVycm1zZ190ICogZXJybXNnKTsKLStleHRlcm4gaW50IHJwbVJlYWRDb25maWdG aWxlcyhjb25zdCBjaGFyICogZmlsZSwgY29uc3QgY2hhciAqIHRhcmdldCk7Ci0rZXh0ZXJuIHJw bWRiTWF0Y2hJdGVyYXRvciBycG1kYkZyZWVJdGVyYXRvcihycG1kYk1hdGNoSXRlcmF0b3IgbWkp OwotK2V4dGVybiBIZWFkZXIgcnBtZGJOZXh0SXRlcmF0b3IocnBtZGJNYXRjaEl0ZXJhdG9yIG1p KTsKLStleHRlcm4gcnBtdHMgcnBtdHNDcmVhdGUodm9pZCk7Ci0rZXh0ZXJuIHJwbXRzIHJwbXRz RnJlZShycG10cyB0cyk7Ci0rZXh0ZXJuIHJwbWRiTWF0Y2hJdGVyYXRvciBycG10c0luaXRJdGVy YXRvcihjb25zdCBycG10cyB0cywgcnBtVGFnIHJwbXRhZywKLSsJCQkJCSAgICBjb25zdCB2b2lk ICoga2V5cCwgc2l6ZV90IGtleWxlbik7CisrICBtaSA9IHJwbXRzSW5pdEl0ZXJhdG9yX3AgKHRz LCBSUE1UQUdfQkFTRU5BTUVTLCBmaWxlbmFtZSwgMCk7CisrICBpZiAobWkgIT0gTlVMTCkKKysg ICAgeworKyAgICAgIGZvciAoOzspCisrCXsKKysJICBIZWFkZXIgaDsKKysJICBjaGFyICpkZWJ1 Z2luZm8sICoqc2xvdCwgKnMsICpzMjsKKysJICBlcnJtc2dfdCBlcnI7CisrCSAgc2l6ZV90IHNy Y3JwbWxlbiA9IHNpemVvZiAoIi5zcmMucnBtIikgLSAxOworKwkgIHNpemVfdCBkZWJ1Z2luZm9s ZW4gPSBzaXplb2YgKCItZGVidWdpbmZvIikgLSAxOworKwkgIHJwbWRiTWF0Y2hJdGVyYXRvciBt aV9kZWJ1Z2luZm87CiArCi0raW50Ci0rbWFpbiAoKQotK3sKKysJICBoID0gcnBtZGJOZXh0SXRl cmF0b3JfcCAobWkpOworKwkgIGlmIChoID09IE5VTEwpCisrCSAgICBicmVhazsKICsKLSsgIDsK LSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElO RU5PIjsgdGhlbiA6CisrCSAgLyogVmVyaWZ5IHRoZSBkZWJ1Z2luZm8gZmlsZSBpcyBub3QgYWxy ZWFkeSBpbnN0YWxsZWQuICAqLwogKwotKyAgICAgIExJQlJQTV9DT01QQVQ9dHJ1ZQotKyAgICAg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4m NQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQorKwkgIGRlYnVnaW5mbyA9IGhlYWRlckZvcm1hdF9w IChoLCAiJXtzb3VyY2VycG19LWRlYnVnaW5mby4le2FyY2h9IiwKKysJCQkJICAgICAgJmVycik7 CisrCSAgaWYgKCFkZWJ1Z2luZm8pCisrCSAgICB7CisrCSAgICAgIHdhcm5pbmcgKF8oIkVycm9y IHF1ZXJ5aW5nIHRoZSBycG0gZmlsZSBgJXMnOiAlcyIpLCBmaWxlbmFtZSwKKysJICAgICAgICAg ICAgICAgZXJyKTsKKysJICAgICAgY29udGludWU7CisrCSAgICB9CisrCSAgLyogcyA9IGAuc3Jj LnJwbS1kZWJ1Z2luZm8uJXthcmNofScgKi8KKysJICBzID0gc3RycmNociAoZGVidWdpbmZvLCAn LScpIC0gc3JjcnBtbGVuOworKwkgIHMyID0gTlVMTDsKKysJICBpZiAocyA+IGRlYnVnaW5mbyAm JiBtZW1jbXAgKHMsICIuc3JjLnJwbSIsIHNyY3JwbWxlbikgPT0gMCkKKysJICAgIHsKKysJICAg ICAgLyogczIgPSBgLSV7cmVsZWFzZX0uc3JjLnJwbS1kZWJ1Z2luZm8uJXthcmNofScgKi8KKysJ ICAgICAgczIgPSBtZW1yY2hyIChkZWJ1Z2luZm8sICctJywgcyAtIGRlYnVnaW5mbyk7CisrCSAg ICB9CisrCSAgaWYgKHMyKQorKwkgICAgeworKwkgICAgICAvKiBzMiA9IGAtJXt2ZXJzaW9ufS0l e3JlbGVhc2V9LnNyYy5ycG0tZGVidWdpbmZvLiV7YXJjaH0nICovCisrCSAgICAgIHMyID0gbWVt cmNociAoZGVidWdpbmZvLCAnLScsIHMyIC0gZGVidWdpbmZvKTsKKysJICAgIH0KKysJICBpZiAo IXMyKQorKwkgICAgeworKwkgICAgICB3YXJuaW5nIChfKCJFcnJvciBxdWVyeWluZyB0aGUgcnBt IGZpbGUgYCVzJzogJXMiKSwgZmlsZW5hbWUsCisrCSAgICAgICAgICAgICAgIGRlYnVnaW5mbyk7 CisrCSAgICAgIHhmcmVlIChkZWJ1Z2luZm8pOworKwkgICAgICBjb250aW51ZTsKKysJICAgIH0K KysJICAvKiBzID0gYC5zcmMucnBtLWRlYnVnaW5mby4le2FyY2h9JyAqLworKwkgIC8qIHMyID0g YC0le3ZlcnNpb259LSV7cmVsZWFzZX0uc3JjLnJwbS1kZWJ1Z2luZm8uJXthcmNofScgKi8KKysJ ICBtZW1tb3ZlIChzMiArIGRlYnVnaW5mb2xlbiwgczIsIHMgLSBzMik7CisrCSAgbWVtY3B5IChz MiwgIi1kZWJ1Z2luZm8iLCBkZWJ1Z2luZm9sZW4pOworKwkgIC8qIHMgPSBgWFhYWC4le2FyY2h9 JyAqLworKwkgIC8qIHN0cmxlbiAoIlhYWFgiKSA9PSBzcmNycG1sZW4gKyBkZWJ1Z2luZm9sZW4g Ki8KKysJICAvKiBzMiA9IGAtZGVidWdpbmZvLSV7dmVyc2lvbn0tJXtyZWxlYXNlfVhYLiV7YXJj aH0nICovCisrCSAgLyogc3RybGVuICgiWFgiKSA9PSBzcmNycG1sZW4gKi8KKysJICBtZW1tb3Zl IChzICsgZGVidWdpbmZvbGVuLCBzICsgc3JjcnBtbGVuICsgZGVidWdpbmZvbGVuLAorKwkJICAg c3RybGVuIChzICsgc3JjcnBtbGVuICsgZGVidWdpbmZvbGVuKSArIDEpOworKwkgIC8qIHMgPSBg LWRlYnVnaW5mby0le3ZlcnNpb259LSV7cmVsZWFzZX0uJXthcmNofScgKi8KICsKLStlbHNlCisr CSAgLyogUlBNREJJX1BBQ0tBR0VTIHJlcXVpcmVzIGtleWxlbiA9PSBzaXplb2YgKGludCkuICAq LworKwkgIC8qIFJQTURCSV9MQUJFTCBpcyBhbiBpbnRlcmZhY2UgZm9yIE5WUi1iYXNlZCBkYmlG aW5kQnlMYWJlbCgpLiAgKi8KKysJICBtaV9kZWJ1Z2luZm8gPSBycG10c0luaXRJdGVyYXRvcl9w ICh0cywgUlBNREJJX0xBQkVMLCBkZWJ1Z2luZm8sIDApOworKwkgIHhmcmVlIChkZWJ1Z2luZm8p OworKwkgIGlmIChtaV9kZWJ1Z2luZm8pCisrCSAgICB7CisrCSAgICAgIHJwbWRiRnJlZUl0ZXJh dG9yX3AgKG1pX2RlYnVnaW5mbyk7CisrCSAgICAgIGNvdW50ID0gMDsKKysJICAgICAgYnJlYWs7 CisrCSAgICB9CiArCi0rICAgICAgTElCUlBNX0NPTVBBVD1mYWxzZQotKyAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2Vj aG8gIm5vIiA+JjY7IH0KKysJICAvKiBUaGUgYWxsb2NhdGVkIG1lbW9yeSBnZXRzIHV0aWxpemVk IGJlbG93IGZvciBNSVNTSU5HX1JQTV9IQVNILiAgKi8KKysJICBkZWJ1Z2luZm8gPSBoZWFkZXJG b3JtYXRfcCAoaCwKKysJCQkJICAgICAgIiV7bmFtZX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9LiV7 YXJjaH0iLAorKwkJCQkgICAgICAmZXJyKTsKKysJICBpZiAoIWRlYnVnaW5mbykKKysJICAgIHsK KysJICAgICAgd2FybmluZyAoXygiRXJyb3IgcXVlcnlpbmcgdGhlIHJwbSBmaWxlIGAlcyc6ICVz IiksIGZpbGVuYW1lLAorKwkgICAgICAgICAgICAgICBlcnIpOworKwkgICAgICBjb250aW51ZTsK KysJICAgIH0KICsKLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3QuJGFjX2V4dAotKyAgICBDRkxBR1M9IiRzYXZlX0NGTEFHUyIKKysJICAv KiBCYXNlIHBhY2thZ2UgbmFtZSBmb3IgYGRlYnVnaW5mby1pbnN0YWxsJy4gIFdlIGRvIG5vdCB1 c2UgdGhlCisrCSAgICAgYHl1bScgY29tbWFuZCBkaXJlY3RseSBhcyB0aGUgbGluZQorKwkJIHl1 bSAtLWVuYWJsZXJlcG89JypkZWJ1ZyonIGluc3RhbGwgTkFNRS1kZWJ1Z2luZm8uQVJDSAorKwkg ICAgIHdvdWxkIGJlIG1vcmUgY29tcGxpY2F0ZWQgdGhhbiBqdXN0OgorKwkJIGRlYnVnaW5mby1p bnN0YWxsIE5BTUUtVkVSU0lPTi1SRUxFQVNFLkFSQ0gKKysJICAgICBEbyBub3Qgc3VwcGx5IHRo ZSBycG0gYmFzZSBuYW1lIChkZXJpdmVkIGZyb20gLnNyYy5ycG0gbmFtZSkgYXMKKysJICAgICBk ZWJ1Z2luZm8taW5zdGFsbCBpcyB1bmFibGUgdG8gaW5zdGFsbCB0aGUgZGVidWdpbmZvIHBhY2th Z2UgaWYKKysJICAgICB0aGUgYmFzZSBuYW1lIFBLRyBiaW5hcnkgcnBtIGlzIG5vdCBpbnN0YWxs ZWQgd2hpbGUgZm9yIGV4YW1wbGUKKysJICAgICBQS0ctbGlicyB3b3VsZCBiZSBpbnN0YWxsZWQg KFJIIEJ1ZyA0Njc5MDEpLgorKwkgICAgIEZVVFVSRTogQWZ0ZXIgbXVsdGlwbGUgZGVidWdpbmZv IHZlcnNpb25zIHNpbXVsdGFuZW91c2x5IGluc3RhbGxlZAorKwkgICAgIGdldCBzdXBwb3J0ZWQg dGhlIHN1cHBvcnQgZm9yIHRoZSBWRVJTSU9OLVJFTEVBU0UgdGFncyBoYW5kbGluZworKwkgICAg IG1heSBuZWVkIGFuIHVwZGF0ZS4gICovCiArCi0rICAgICAgaWYgISAkTElCUlBNX0NPTVBBVDsg dGhlbgotKwlIQVZFX0xJQlJQTT1mYWxzZQotKwlSUE1fUEtHX0VSUk9SUz0iRm91bmQgJExJQlJQ TSBBUEkgaXMgaW5jb21wYXRpYmlsZSB3aXRoIHRoaXMgR0RCIgotKyAgICAgIGZpCi0rICAgIGZp CisrCSAgaWYgKG1pc3NpbmdfcnBtX2hhc2ggPT0gTlVMTCkKKysJICAgIHsKKysJICAgICAgLyog REVMX0YgaXMgcGFzc2VkIE5VTEwgYXMgTUlTU0lOR19SUE1fTElTVCdzIEhUQUJfREVMRVRFCisr CQkgc2hvdWxkIG5vdCBkZWFsbG9jYXRlIHRoZSBlbnRyaWVzLiAgKi8KICsKLSsgICAgaWYgJEhB VkVfTElCUlBNOyB0aGVuCisrCSAgICAgIG1pc3NpbmdfcnBtX2hhc2ggPSBodGFiX2NyZWF0ZV9h bGxvYyAoNjQsIGh0YWJfaGFzaF9zdHJpbmcsCisrCQkJICAgICAgIChpbnQgKCopIChjb25zdCB2 b2lkICosIGNvbnN0IHZvaWQgKikpIHN0cmVxLAorKwkJCQkJCSAgICBOVUxMLCB4Y2FsbG9jLCB4 ZnJlZSk7CisrCSAgICB9CisrCSAgc2xvdCA9IChjaGFyICoqKSBodGFiX2ZpbmRfc2xvdCAobWlz c2luZ19ycG1faGFzaCwgZGVidWdpbmZvLCBJTlNFUlQpOworKwkgIC8qIFhDQUxMT0MgbmV2ZXIg cmV0dXJucyBOVUxMLiAgKi8KKysJICBnZGJfYXNzZXJ0IChzbG90ICE9IE5VTEwpOworKwkgIGlm ICgqc2xvdCA9PSBOVUxMKQorKwkgICAgeworKwkgICAgICBzdHJ1Y3QgbWlzc2luZ19ycG0gKm1p c3NpbmdfcnBtOwogKwotKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfTElCUlBNIDEiID4+Y29uZmRl ZnMuaAorKwkgICAgICAqc2xvdCA9IGRlYnVnaW5mbzsKICsKLSsgICAgICBDRkxBR1M9IiRDRkxB R1MgJFJQTV9DRkxBR1MiCi0rICAgICAgTElCUz0iJExJQlMgJFJQTV9MSUJTIgotKyAgICBlbHNl Ci0rICAgICAgaWYgJFJQTV9SRVFVSVJFOyB0aGVuCi0rCWFzX2ZuX2Vycm9yICIkUlBNX1BLR19F UlJPUlMiICIkTElORU5PIiA1Ci0rICAgICAgZWxzZQotKwl7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6ICRSUE1fUEtHX0VSUk9SUyIgPiY1Ci0rJGFzX2Vj aG8gIiRhc19tZTogV0FSTklORzogJFJQTV9QS0dfRVJST1JTIiA+JjI7fQotKyAgICAgIGZpCi0r ICAgIGZpCi0rICBmaQotK2ZpCisrCSAgICAgIG1pc3NpbmdfcnBtID0geG1hbGxvYyAoc2l6ZW9m ICgqbWlzc2luZ19ycG0pICsgc3RybGVuIChkZWJ1Z2luZm8pKTsKKysJICAgICAgc3RyY3B5ICht aXNzaW5nX3JwbS0+cnBtLCBkZWJ1Z2luZm8pOworKwkgICAgICBtaXNzaW5nX3JwbS0+bmV4dCA9 IG1pc3NpbmdfcnBtX2xpc3Q7CisrCSAgICAgIG1pc3NpbmdfcnBtX2xpc3QgPSBtaXNzaW5nX3Jw bTsKKysJICAgICAgbWlzc2luZ19ycG1fbGlzdF9lbnRyaWVzKys7CisrCSAgICB9CisrCSAgZWxz ZQorKwkgICAgeGZyZWUgKGRlYnVnaW5mbyk7CisrCSAgY291bnQrKzsKKysJfQogKwotIAotIAot IHN1YmRpcnM9IiRzdWJkaXJzIHRlc3RzdWl0ZSIKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvY29uZmlndXJlLmFjCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMub3JpZy9nZGIvY29uZmlndXJlLmFjCTIwMTMtMDgtMDIgMTY6MjU6MjQuOTgzMDk0NDE4 ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2NvbmZpZ3VyZS5hYwkyMDEz LTA4LTAyIDE2OjI1OjI3LjM0NDA5NzU2OCArMDIwMAotQEAgLTE2NCw2ICsxNjQsMTk5IEBAIEFD X0RFRklORV9ESVIoQVVUT19MT0FEX1NBRkVfUEFUSCwgZXNjYXAKLSAJICAgICAgW0RpcmVjdG9y aWVzIHNhZmUgdG8gaG9sZCBhdXRvLWxvYWRlZCBmaWxlcy5dKQotIEFDX01TR19SRVNVTFQoWyR3 aXRoX2F1dG9fbG9hZF9zYWZlX3BhdGhdKQotIAotKyMgSW50ZWdyYXRpb24gd2l0aCBycG0gbGli cmFyeSB0byBzdXBwb3J0IG1pc3NpbmcgZGVidWdpbmZvIHN1Z2dlc3Rpb25zLgotKyMgLS13aXRo b3V0LXJwbTogRGlzYWJsZSBhbnkgcnBtIHN1cHBvcnQuCi0rIyAtLXdpdGgtcnBtPWxpYm5hbWUu c286IFRyeSB0byBkeW5hbWljYWxseSBvcGVuIGBsaWJuYW1lLnNvJyBkdXJpbmcgcnVudGltZS4K LSsjICAgRXZlbiB3aXRoIHJ1bnRpbWUgbWlzc2luZyBgbGlibmFtZS5zbycgR0RCIHdpbGwgc3Rp bGwgb3RoZXIgcnVuIGNvcnJlY3RseS4KLSsjICAgTWlzc2luZyBgbGlibmFtZS5zbycgZHVyaW5n IC4vY29uZmlndXJlIHdpbGwgYWJvcnQgdGhlIGNvbmZpZ3VyYXRpb24uCi0rIyAtLXdpdGgtcnBt PWxpYnJwbS5zbzogTGlrZSBgLS13aXRoLXJwbT1saWJuYW1lLnNvJyBidXQgdHJ5IHRvIGZpbmQg c3BlY2lmaWMKLSsjICAgbWlub3IgdmVyc2lvbiBmaXJzdCBzdWNoIGFzIGBsaWJycG0tNC42LnNv JyBhcyBtaW5vciB2ZXJzaW9uIGRpZmZlcmVuY2VzCi0rIyAgIG1lYW4gQVBJK0FCSSBpbmNvbXBh dGliaWxpdHkuICBJZiB0aGUgc3BlY2lmaWMgbWF0Y2ggdmVyc2lvbmVkIGxpYnJhcnkgbmFtZQot KyMgICBjb3VsZCBub3QgYmUgZm91bmQgc3RpbGwgb3BlbiBkeW5hbWljYWxseSBhdCBsZWFzdCBg bGlicnBtLnNvJy4KLSsjIC0td2l0aC1ycG06IExpa2UgYC0td2l0aC1ycG09bGlicnBtLnNvJyBi dXQgaWYgYW55IG9mIGl0cyBkZXRlY3Rpb24gZmFpbHMgdHJ5Ci0rIyAgIHRvIGZpbmQgbGlicnBt IGZvciBjb21waWxhdGlvbi10aW1lIGxpbmtpbmcgYnkgcGtnLWNvbmZpZy4gIEdEQiBiaW5hcnkg d2lsbAotKyMgICBiZSBwcm9iYWJseSBsaW5rZWQgd2l0aCB0aGUgdmVyc2lvbiBzcGVjaWZpYyBs aWJyYXJ5IChhcyBgbGlicnBtLTQuNi5zbycpLgotKyMgICBGYWlsdXJlIHRvIGZpbmQgbGlicnBt IGJ5IHBrZy1jb25maWcgd2lsbCBhYm9ydCB0aGUgY29uZmlndXJhdGlvbi4KLSsjIChkZWZhdWx0 KSAtLXdpdGgtcnBtPWF1dG86IExpa2UgYC0td2l0aC1ycG09bGlicnBtLnNvJyBidXQgaWYgZXZl biBwa2ctY29uZmlnCi0rIyAgIGNhbm5vdCBmaW5kIGxpYnJwbSB1c2UgdG8gdGhlIHJwbWxlc3Mg Y29tcGlsYXRpb24gKGxpa2UgYC0td2l0aG91dC1ycG0nKS4KKysgICAgICBycG1kYkZyZWVJdGVy YXRvcl9wIChtaSk7CisrICAgIH0KICsKLStBQ19BUkdfV0lUSChbcnBtXSwKLSsgIFtBU19IRUxQ X1NUUklORyhbLS13aXRoLXJwbV0sCi0rICAgICAgICAgICAgICAgICAgW3F1ZXJ5IHJwbSBkYXRh YmFzZSBmb3IgbWlzc2luZyBkZWJ1Z2luZm9zICh5ZXMvbm8sIGRlZi4gYXV0bz1saWJycG0uc28p XSldLCBbXSwgW3dpdGhfcnBtPSJhdXRvIl0pCisrICBycG10c0ZyZWVfcCAodHMpOwogKwotK200 X3BhdHRlcm5fYWxsb3coW15BQ19NU0dfRVJST1IkXSkKLSttNF9wYXR0ZXJuX2FsbG93KFteQUNf TVNHX1dBUk4kXSkKLStpZiB0ZXN0ICJ4JHdpdGhfcnBtIiAhPSAieG5vIjsgdGhlbgotKyAgaWYg dGVzdCAieCR3aXRoX3JwbSIgPSAieHllcyI7IHRoZW4KLSsgICAgTElCUlBNPSJsaWJycG0uc28i Ci0rICAgIFJQTV9SRVFVSVJFPXRydWUKLSsgICAgRExPUEVOX1JFUVVJUkU9ZmFsc2UKLSsgIGVs aWYgdGVzdCAieCR3aXRoX3JwbSIgPSAieGF1dG8iOyB0aGVuCi0rICAgIExJQlJQTT0ibGlicnBt LnNvIgotKyAgICBSUE1fUkVRVUlSRT1mYWxzZQotKyAgICBETE9QRU5fUkVRVUlSRT1mYWxzZQot KyAgZWxzZQotKyAgICBMSUJSUE09IiR3aXRoX3JwbSIKLSsgICAgUlBNX1JFUVVJUkU9dHJ1ZQot KyAgICBETE9QRU5fUkVRVUlSRT10cnVlCi0rICBmaQotKyAgTElCUlBNX1NUUklORz0nIiciJExJ QlJQTSInIicKKysgIHJldHVybiBjb3VudDsKKyt9CiArCi0rICBBQ19NU0dfQ0hFQ0tJTkcoW3Nw ZWNpZmljIGxpYnJwbSB2ZXJzaW9uXSkKLSsgIEhBVkVfRExPUEVOX0xJQlJQTT1mYWxzZQotKyAg c2F2ZV9MSUJTPSIkTElCUyIKLSsgIExJQlM9IiRMSUJTIC1sZGwiCi0rICBBQ19SVU5fSUZFTFNF KEFDX0xBTkdfUFJPR1JBTShbWwotKyNpbmNsdWRlIDxycG0vcnBtbGliLmg+Ci0rI2luY2x1ZGUg PGRsZmNuLmg+Ci0rI2luY2x1ZGUgPGVycm5vLmg+Ci0rICBdXSwgW1sKLSsgICAgdm9pZCAqaDsK LSsgICAgY29uc3QgY2hhciAqY29uc3QgKnJwbXZlcnA7Ci0rICAgIEZJTEUgKmY7Cisrc3RhdGlj IGludAorK21pc3NpbmdfcnBtX2xpc3RfY29tcGFyIChjb25zdCBjaGFyICpjb25zdCAqYXAsIGNv bnN0IGNoYXIgKmNvbnN0ICpicCkKKyt7CisrICByZXR1cm4gc3RyY29sbCAoKmFwLCAqYnApOwor K30KICsKLSsgICAgZiA9IGZvcGVuICgiY29uZnRlc3Qub3V0IiwgInciKTsKLSsgICAgaWYgKCFm KQotKyAgICAgIHsKLSsJZnByaW50ZiAoc3RkZXJyLCAiQ2Fubm90IHdyaXRlIFwiJXNcIjogJXNc biIsICJjb25mdGVzdC5vdXQiLAotKwkJIHN0cmVycm9yIChlcnJubykpOwotKwlyZXR1cm4gMTsK LSsgICAgICB9Ci0rICAgIGggPSBkbG9wZW4gKCRMSUJSUE1fU1RSSU5HLCBSVExEX0xBWlkpOwot KyAgICBpZiAoIWgpCi0rICAgICAgewotKwlmcHJpbnRmIChzdGRlcnIsICJkbG9wZW4gKFwiJXNc Iik6ICVzXG4iLCAkTElCUlBNX1NUUklORywgZGxlcnJvciAoKSk7Ci0rCXJldHVybiAxOwotKyAg ICAgIH0KLSsgICAgcnBtdmVycCA9IGRsc3ltIChoLCAiUlBNVkVSU0lPTiIpOwotKyAgICBpZiAo IXJwbXZlcnApCi0rICAgICAgewotKwlmcHJpbnRmIChzdGRlcnIsICJkbHN5bSAoXCJSUE1WRVJT SU9OXCIpOiAlc1xuIiwgZGxlcnJvciAoKSk7Ci0rCXJldHVybiAxOwotKyAgICAgIH0KLSsgICAg ZnByaW50ZiAoc3RkZXJyLCAiUlBNVkVSU0lPTiBpczogXCIiKTsKLSsgICAgZnByaW50ZiAoc3Rk ZXJyLCAiJXNcIlxuIiwgKnJwbXZlcnApOworKy8qIEl0IHJldHVybnMgYSBOVUxMLXRlcm1pbmF0 ZWQgYXJyYXkgb2Ygc3RyaW5ncyBuZWVkaW5nIHRvIGJlIEZSRUVkLiAgSXQgbWF5CisrICAgYWxz byByZXR1cm4gb25seSBOVUxMLiAgKi8KICsKLSsgICAgLyogVHJ5IHRvIGZpbmQgdGhlIHNwZWNp ZmljIGxpYnJwbSB2ZXJzaW9uIG9ubHkgZm9yICJsaWJycG0uc28iIGFzIHdlIGRvCi0rICAgICAg IG5vdCBrbm93IGhvdyB0byBhc3NlbWJsZSB0aGUgdmVyc2lvbiBzdHJpbmcgb3RoZXJ3aXNlLiAg Ki8KKytzdGF0aWMgdm9pZAorK21pc3NpbmdfcnBtX2xpc3RfcHJpbnQgKHZvaWQpCisreworKyAg Y2hhciAqKmFycmF5LCAqKmFycmF5X2l0ZXI7CisrICBzdHJ1Y3QgbWlzc2luZ19ycG0gKmxpc3Rf aXRlcjsKKysgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwczsKICsKLSsgICAgaWYgKHN0cmNtcCAo ImxpYnJwbS5zbyIsICRMSUJSUE1fU1RSSU5HKSAhPSAwKQotKyAgICAgIHsKLSsJZnByaW50ZiAo ZiwgIiVzXG4iLCAkTElCUlBNX1NUUklORyk7Ci0rCXJldHVybiAwOwotKyAgICAgIH0KLSsgICAg ZWxzZQotKyAgICAgIHsKLSsJY2hhciAqaDJfbmFtZTsKLSsJdm9pZCAqaDI7Ci0rCWludCBtYWpv ciwgbWlub3I7CisrICBpZiAobWlzc2luZ19ycG1fbGlzdF9lbnRyaWVzID09IDApCisrICAgIHJl dHVybjsKICsKLSsJaWYgKHNzY2FuZiAoKnJwbXZlcnAsICIlZC4lZCIsICZtYWpvciwgJm1pbm9y KSAhPSAyKQotKwkgIHsKLSsJICAgIGZwcmludGYgKHN0ZGVyciwgIlVuYWJsZSB0byBwYXJzZSBS UE1WRVJTSU9OLlxuIik7Ci0rCSAgICBmcHJpbnRmIChmLCAiJXNcbiIsICRMSUJSUE1fU1RSSU5H KTsKLSsJICAgIHJldHVybiAwOwotKwkgIH0KLSsJLyogQXZvaWQgdGhlIHNxdWFyZSBicmFja2V0 cyBieSBtYWxsb2MuICAqLwotKwloMl9uYW1lID0gbWFsbG9jICg2NCk7Ci0rCXNwcmludGYgKGgy X25hbWUsICJsaWJycG0tJWQuJWQuc28iLCBtYWpvciwgbWlub3IpOwotKwloMiA9IGRsb3BlbiAo aDJfbmFtZSwgUlRMRF9MQVpZKTsKLSsJaWYgKCFoMikKLSsJICB7Ci0rCSAgICBmcHJpbnRmIChz dGRlcnIsICJkbG9wZW4gKFwiJXNcIik6ICVzXG4iLCBoMl9uYW1lLCBkbGVycm9yICgpKTsKLSsJ ICAgIGZwcmludGYgKGYsICIlc1xuIiwgJExJQlJQTV9TVFJJTkcpOwotKwkgICAgcmV0dXJuIDA7 Ci0rCSAgfQotKwlpZiAoaDIgIT0gaCkKLSsJICB7Ci0rCSAgICBmcHJpbnRmIChzdGRlcnIsICJk bG9wZW4gb2YgXCIlc1wiIGFuZCBcIiVzXCIgYXJlIGRpZmZlcmVudC5cbiIsCi0rCQkgICAgICRM SUJSUE1fU1RSSU5HLCBoMl9uYW1lKTsKLSsJICAgIGZwcmludGYgKGYsICIlc1xuIiwgJExJQlJQ TV9TVFJJTkcpOwotKwkgICAgcmV0dXJuIDA7Ci0rCSAgfQotKwkvKiBGb3VuZCB0aGUgdmFsaWQg LnNvIG5hbWUgd2l0aCBhIHNwZWNpZmljIHZlcnNpb24uICAqLwotKwlmcHJpbnRmIChmLCAiJXNc biIsIGgyX25hbWUpOwotKwlyZXR1cm4gMDsKLSsgICAgICB9Ci0rICBdXSksIFsKLSsgICAgRExP UEVOX0xJQlJQTT0iYGNhdCBjb25mdGVzdC5vdXRgIgotKyAgICBpZiB0ZXN0ICJ4JERMT1BFTl9M SUJSUE0iICE9ICJ4IjsgdGhlbgotKyAgICAgIEhBVkVfRExPUEVOX0xJQlJQTT10cnVlCi0rICAg ICAgQUNfTVNHX1JFU1VMVCgkRExPUEVOX0xJQlJQTSkKLSsgICAgZmkKLSsgIF0pCi0rICBybSAt ZiBjb25mdGVzdC5vdXQKKysgIGFycmF5ID0geG1hbGxvYyAoc2l6ZW9mICgqYXJyYXkpICogbWlz c2luZ19ycG1fbGlzdF9lbnRyaWVzKTsKKysgIGNsZWFudXBzID0gbWFrZV9jbGVhbnVwICh4ZnJl ZSwgYXJyYXkpOwogKwotKyAgbTRfZGVmaW5lKFtDSEVDS19MSUJSUE1fQ09NUEFUXSwgWwotKyAg ICBBQ19NU0dfQ0hFQ0tJTkcoW3JwbSBsaWJyYXJ5IEFQSSBjb21wYXRpYmlsaXR5XSkKLSsgICAg IyBUaGUgY29tcGlsYXRpb24gcmVxdWlyZXMgLVdlcnJvciB0byB2ZXJpZnkgYW55dGhpbmcuCi0r ICAgIHNhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgotKyAgICBDRkxBR1M9IiRDRkxBR1MgLVdlcnJvciIK LSsgICAgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbCi0rLyogRHVwbGljYXRl IGhlcmUgdGhlIGRlY2xhcmF0aW9ucyB0byB2ZXJpZnkgdGhleSBtYXRjaCAiZWxmcmVhZC5jIi4g ICovCi0rI2luY2x1ZGUgPHJwbS9ycG1saWIuaD4KLSsjaW5jbHVkZSA8cnBtL3JwbXRzLmg+Ci0r I2luY2x1ZGUgPHJwbS9ycG1kYi5oPgotKyNpbmNsdWRlIDxycG0vaGVhZGVyLmg+Ci0rZXh0ZXJu IGNoYXIgKiBoZWFkZXJGb3JtYXQoSGVhZGVyIGgsIGNvbnN0IGNoYXIgKiBmbXQsIGVycm1zZ190 ICogZXJybXNnKTsKLStleHRlcm4gaW50IHJwbVJlYWRDb25maWdGaWxlcyhjb25zdCBjaGFyICog ZmlsZSwgY29uc3QgY2hhciAqIHRhcmdldCk7Ci0rZXh0ZXJuIHJwbWRiTWF0Y2hJdGVyYXRvciBy cG1kYkZyZWVJdGVyYXRvcihycG1kYk1hdGNoSXRlcmF0b3IgbWkpOwotK2V4dGVybiBIZWFkZXIg cnBtZGJOZXh0SXRlcmF0b3IocnBtZGJNYXRjaEl0ZXJhdG9yIG1pKTsKLStleHRlcm4gcnBtdHMg cnBtdHNDcmVhdGUodm9pZCk7Ci0rZXh0ZXJuIHJwbXRzIHJwbXRzRnJlZShycG10cyB0cyk7Ci0r ZXh0ZXJuIHJwbWRiTWF0Y2hJdGVyYXRvciBycG10c0luaXRJdGVyYXRvcihjb25zdCBycG10cyB0 cywgcnBtVGFnIHJwbXRhZywKLSsJCQkJCSAgICBjb25zdCB2b2lkICoga2V5cCwgc2l6ZV90IGtl eWxlbik7Ci0rICAgIF1dKSwgWwotKyAgICAgIExJQlJQTV9DT01QQVQ9dHJ1ZQotKyAgICAgIEFD X01TR19SRVNVTFQoeWVzKQotKyAgICBdLCBbCi0rICAgICAgTElCUlBNX0NPTVBBVD1mYWxzZQot KyAgICAgIEFDX01TR19SRVNVTFQobm8pCi0rICAgIF0pCi0rICAgIENGTEFHUz0iJHNhdmVfQ0ZM QUdTIgotKyAgXSkKKysgIGFycmF5X2l0ZXIgPSBhcnJheTsKKysgIGZvciAobGlzdF9pdGVyID0g bWlzc2luZ19ycG1fbGlzdDsgbGlzdF9pdGVyICE9IE5VTEw7CisrICAgICAgIGxpc3RfaXRlciA9 IGxpc3RfaXRlci0+bmV4dCkKKysgICAgeworKyAgICAgICphcnJheV9pdGVyKysgPSBsaXN0X2l0 ZXItPnJwbTsKKysgICAgfQorKyAgZ2RiX2Fzc2VydCAoYXJyYXlfaXRlciA9PSBhcnJheSArIG1p c3NpbmdfcnBtX2xpc3RfZW50cmllcyk7CiArCi0rICBpZiAkSEFWRV9ETE9QRU5fTElCUlBNOyB0 aGVuCi0rICAgIENIRUNLX0xJQlJQTV9DT01QQVQKLSsgICAgaWYgISAkTElCUlBNX0NPTVBBVDsg dGhlbgotKyAgICAgIEhBVkVfRExPUEVOX0xJQlJQTT1mYWxzZQotKyAgICBmaQotKyAgZmkKKysg IHFzb3J0IChhcnJheSwgbWlzc2luZ19ycG1fbGlzdF9lbnRyaWVzLCBzaXplb2YgKCphcnJheSks CisrCSAoaW50ICgqKSAoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICopKSBtaXNzaW5nX3JwbV9s aXN0X2NvbXBhcik7CiArCi0rICBpZiAkSEFWRV9ETE9QRU5fTElCUlBNOyB0aGVuCi0rICAgIERM T1BFTl9MSUJSUE1fU1RSSU5HPSciJyIkRExPUEVOX0xJQlJQTSInIicKLSsgICAgQUNfREVGSU5F X1VOUVVPVEVEKERMT1BFTl9MSUJSUE0sICRETE9QRU5fTElCUlBNX1NUUklORywgW2xpYnJwbSB2 ZXJzaW9uIHNwZWNpZmljIGxpYnJhcnkgbmFtZSB0byBkbG9wZW4uXSkKLSsgICAgQUNfREVGSU5F KEhBVkVfTElCUlBNLCAxLCBbRGVmaW5lIGlmIGxpYnJwbSBsaWJyYXJ5IGlzIGJlaW5nIHVzZWQu XSkKLSsgIGVsc2UKLSsgICAgQUNfTVNHX1JFU1VMVChubykKLSsgICAgTElCUz0iJHNhdmVfTElC UyIKLSsgICAgaWYgJERMT1BFTl9SRVFVSVJFOyB0aGVuCi0rICAgICAgQUNfTVNHX0VSUk9SKFtT cGVjaWZpYyBuYW1lICRMSUJSUE0gd2FzIHJlcXVlc3RlZCBidXQgaXQgY291bGQgbm90IGJlIG9w ZW5lZC5dKQotKyAgICBmaQotKyAgICBQS0dfQ0hFQ0tfTU9EVUxFUyhSUE0sIHJwbSwgW0hBVkVf TElCUlBNPXRydWVdLCBbSEFWRV9MSUJSUE09ZmFsc2VdKQorKyAgcHJpbnRmX3VuZmlsdGVyZWQg KF8oIk1pc3Npbmcgc2VwYXJhdGUgZGVidWdpbmZvcywgdXNlOiAlcyIpLAorKwkJICAgICAiZGVi dWdpbmZvLWluc3RhbGwiKTsKKysgIGZvciAoYXJyYXlfaXRlciA9IGFycmF5OyBhcnJheV9pdGVy IDwgYXJyYXkgKyBtaXNzaW5nX3JwbV9saXN0X2VudHJpZXM7CisrICAgICAgIGFycmF5X2l0ZXIr KykKKysgICAgeworKyAgICAgIHB1dGNoYXJfdW5maWx0ZXJlZCAoJyAnKTsKKysgICAgICBwdXRz X3VuZmlsdGVyZWQgKCphcnJheV9pdGVyKTsKKysgICAgfQorKyAgcHV0Y2hhcl91bmZpbHRlcmVk ICgnXG4nKTsKICsKLSsgICAgaWYgJEhBVkVfTElCUlBNOyB0aGVuCi0rICAgICAgQ0hFQ0tfTElC UlBNX0NPTVBBVAotKyAgICAgIGlmICEgJExJQlJQTV9DT01QQVQ7IHRoZW4KLSsJSEFWRV9MSUJS UE09ZmFsc2UKLSsJUlBNX1BLR19FUlJPUlM9IkZvdW5kICRMSUJSUE0gQVBJIGlzIGluY29tcGF0 aWJpbGUgd2l0aCB0aGlzIEdEQiIKLSsgICAgICBmaQotKyAgICBmaQorKyAgd2hpbGUgKG1pc3Np bmdfcnBtX2xpc3QgIT0gTlVMTCkKKysgICAgeworKyAgICAgIGxpc3RfaXRlciA9IG1pc3Npbmdf cnBtX2xpc3Q7CisrICAgICAgbWlzc2luZ19ycG1fbGlzdCA9IGxpc3RfaXRlci0+bmV4dDsKKysg ICAgICB4ZnJlZSAobGlzdF9pdGVyKTsKKysgICAgfQorKyAgbWlzc2luZ19ycG1fbGlzdF9lbnRy aWVzID0gMDsKICsKLSsgICAgaWYgJEhBVkVfTElCUlBNOyB0aGVuCi0rICAgICAgQUNfREVGSU5F KEhBVkVfTElCUlBNLCAxLCBbRGVmaW5lIGlmIGxpYnJwbSBsaWJyYXJ5IGlzIGJlaW5nIHVzZWQu XSkKLSsgICAgICBDRkxBR1M9IiRDRkxBR1MgJFJQTV9DRkxBR1MiCi0rICAgICAgTElCUz0iJExJ QlMgJFJQTV9MSUJTIgotKyAgICBlbHNlCi0rICAgICAgaWYgJFJQTV9SRVFVSVJFOyB0aGVuCi0r CUFDX01TR19FUlJPUigkUlBNX1BLR19FUlJPUlMpCi0rICAgICAgZWxzZQotKwlBQ19NU0dfV0FS TigkUlBNX1BLR19FUlJPUlMpCi0rICAgICAgZmkKLSsgICAgZmkKLSsgIGZpCi0rZmkKLSsgCi0g QUNfQ09ORklHX1NVQkRJUlModGVzdHN1aXRlKQorKyAgZG9fY2xlYW51cHMgKGNsZWFudXBzKTsK Kyt9CisrCisrc3RhdGljIHZvaWQKKyttaXNzaW5nX3JwbV9jaGFuZ2UgKHZvaWQpCisreworKyAg ZGVidWdfZmx1c2hfbWlzc2luZyAoKTsKKysKKysgIGdkYl9hc3NlcnQgKG1pc3NpbmdfcnBtX2xp c3QgPT0gTlVMTCk7CisrICBpZiAobWlzc2luZ19ycG1faGFzaCAhPSBOVUxMKQorKyAgICB7Cisr ICAgICAgaHRhYl9kZWxldGUgKG1pc3NpbmdfcnBtX2hhc2gpOworKyAgICAgIG1pc3NpbmdfcnBt X2hhc2ggPSBOVUxMOworKyAgICB9CisrfQorKworK2VudW0gbWlzc2luZ19leGVjCisrICB7Cisr ICAgIC8qIEluaXQgc3RhdGUuICBFWEVDX0JGRCBhbHNvIHN0aWxsIGNvdWxkIGJlIE5VTEwuICAq LworKyAgICBNSVNTSU5HX0VYRUNfTk9UX1RSSUVELAorKyAgICAvKiBXZSBzYXcgYSBub24tTlVM TCBFWEVDX0JGRCBidXQgUlBNIGhhcyBubyBpbmZvIGFib3V0IGl0LiAgKi8KKysgICAgTUlTU0lO R19FWEVDX05PVF9GT1VORCwKKysgICAgLyogV2UgZm91bmQgRVhFQ19CRkQgYnkgUlBNIGFuZCB3 ZSBlaXRoZXIgaGF2ZSBpdHMgc3ltYm9scyAoZWl0aGVyIGVtYmVkZGVkCisrICAgICAgIG9yIHNl cGFyYXRlKSBvciB0aGUgbWFpbiBleGVjdXRhYmxlJ3MgUlBNIGlzIG5vdyBjb250YWluZWQgaW4K KysgICAgICAgTUlTU0lOR19SUE1fSEFTSC4gICovCisrICAgIE1JU1NJTkdfRVhFQ19FTkxJU1RF RAorKyAgfTsKKytzdGF0aWMgZW51bSBtaXNzaW5nX2V4ZWMgbWlzc2luZ19leGVjID0gTUlTU0lO R19FWEVDX05PVF9UUklFRDsKKysKKysjZW5kaWYJLyogSEFWRV9MSUJSUE0gKi8KKysKKyt2b2lk CisrZGVidWdfZmx1c2hfbWlzc2luZyAodm9pZCkKKyt7CisrI2lmZGVmIEhBVkVfTElCUlBNCisr ICBtaXNzaW5nX3JwbV9saXN0X3ByaW50ICgpOworKyNlbmRpZgorK30KKysKKyAvKiBUaGlzIE1J U1NJTkdfRklMRVBBSVJfSEFTSCB0cmFja2VyIGlzIHVzZWQgb25seSBmb3IgdGhlIGR1cGxpY2l0 ZSBtZXNzYWdlcworLSAgICAgVHJ5IHRvIGluc3RhbGwgdGhlIGhhc2ggZmlsZSAuLi4KKysgICAg IHl1bSAtLWVuYWJsZXJlcG89JypkZWJ1ZyonIGluc3RhbGwgLi4uCisgICAgYXZvaWRhbmNlLiAg Ki8KICAKLSAjIENoZWNrIHdoZXRoZXIgdG8gc3VwcG9ydCBhbHRlcm5hdGl2ZSB0YXJnZXQgY29u ZmlndXJhdGlvbnMKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29yZWxvdy5j Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvY29yZWxv dy5jCTIwMTMtMDgtMDIgMTY6MjU6MjQuOTg0MDk0NDE5ICswMjAwCi0rKysgZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL2NvcmVsb3cuYwkyMDEzLTA4LTAyIDE2OjI1OjI3LjM0NDA5NzU2OCAr MDIwMAotQEAgLTMxNiw3ICszMTYsNyBAQCBidWlsZF9pZF9sb2NhdGVfZXhlYyAoaW50IGZyb21f dHR5KQotICAgICAgICAgc3ltZmlsZV9vYmpmaWxlLT5mbGFncyB8PSBPQkpGX0JVSUxEX0lEX0NP UkVfTE9BREVEOworIHN0cnVjdCBtaXNzaW5nX2ZpbGVwYWlyCitAQCAtNzIxLDExICsxMDc0LDE3 IEBAIG1pc3NpbmdfZmlsZXBhaXJfY2hhbmdlICh2b2lkKQorICAgICAgIC8qIEFsbCB0aGVpciBt ZW1vcnkgY2FtZSBqdXN0IGZyb20gbWlzc2luZ19maWxlcGFpcl9PQlNUQUNLLiAgKi8KKyAgICAg ICBtaXNzaW5nX2ZpbGVwYWlyX2hhc2ggPSBOVUxMOwogICAgICB9Ci0gICBlbHNlCi0tICAgIGRl YnVnX3ByaW50X21pc3NpbmcgKF8oInRoZSBtYWluIGV4ZWN1dGFibGUgZmlsZSIpLCBidWlsZF9p ZF9maWxlbmFtZSk7Ci0rICAgIGRlYnVnX3ByaW50X21pc3NpbmcgKEJVSUxEX0lEX01BSU5fRVhF Q1VUQUJMRV9GSUxFTkFNRSwgYnVpbGRfaWRfZmlsZW5hbWUpOworKyNpZmRlZiBIQVZFX0xJQlJQ TQorKyAgbWlzc2luZ19leGVjID0gTUlTU0lOR19FWEVDX05PVF9UUklFRDsKKysjZW5kaWYKKyB9 CiAgCi0gICBkb19jbGVhbnVwcyAoYmFja190byk7Cisgc3RhdGljIHZvaWQKKyBkZWJ1Z19wcmlu dF9leGVjdXRhYmxlX2NoYW5nZWQgKHZvaWQpCisgeworKyNpZmRlZiBIQVZFX0xJQlJQTQorKyAg bWlzc2luZ19ycG1fY2hhbmdlICgpOworKyNlbmRpZgorICAgbWlzc2luZ19maWxlcGFpcl9jaGFu Z2UgKCk7CisgfQorIAorQEAgLTc5MiwxNCArMTE1MSwzNCBAQCBkZWJ1Z19wcmludF9taXNzaW5n IChjb25zdCBjaGFyICpiaW5hcnksCisgCisgICAqc2xvdCA9IG1pc3NpbmdfZmlsZXBhaXI7Cisg CistICAvKiBXZSBkbyBub3QgY29sbGVjdCBhbmQgZmx1c2ggdGhlc2UgbWVzc2FnZXMgYXMgZWFj aCBzdWNoIG1lc3NhZ2UKKy0gICAgIGFscmVhZHkgcmVxdWlyZXMgaXRzIG93biBzZXBhcmF0ZSBs aW5lcy4gICovCisrI2lmZGVmIEhBVkVfTElCUlBNCisrICBpZiAobWlzc2luZ19leGVjID09IE1J U1NJTkdfRVhFQ19OT1RfVFJJRUQpCisrICAgIHsKKysgICAgICBjaGFyICpleGVjZmlsZW5hbWU7 CisgCistICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCistCQkgICAgICBfKCJNaXNz aW5nIHNlcGFyYXRlIGRlYnVnaW5mbyBmb3IgJXNcbiIpLCBiaW5hcnkpOworLSAgaWYgKGRlYnVn ICE9IE5VTEwpCistICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywgXygiVHJ5IHRv IGluc3RhbGwgdGhlIGhhc2ggZmlsZSAlc1xuIiksCistCQkJZGVidWcpOworKyAgICAgIGV4ZWNm aWxlbmFtZSA9IGdldF9leGVjX2ZpbGUgKDApOworKyAgICAgIGlmIChleGVjZmlsZW5hbWUgIT0g TlVMTCkKKysJeworKwkgIGlmIChtaXNzaW5nX3JwbV9lbmxpc3QgKGV4ZWNmaWxlbmFtZSkgPT0g MCkKKysJICAgIG1pc3NpbmdfZXhlYyA9IE1JU1NJTkdfRVhFQ19OT1RfRk9VTkQ7CisrCSAgZWxz ZQorKwkgICAgbWlzc2luZ19leGVjID0gTUlTU0lOR19FWEVDX0VOTElTVEVEOworKwl9CisrICAg IH0KKysgIGlmIChtaXNzaW5nX2V4ZWMgIT0gTUlTU0lOR19FWEVDX0VOTElTVEVEKQorKyAgICBp ZiAoKGJpbmFyeVswXSA9PSAwIHx8IG1pc3NpbmdfcnBtX2VubGlzdCAoYmluYXJ5KSA9PSAwKQor KwkmJiAoZGVidWcgPT0gTlVMTCB8fCBtaXNzaW5nX3JwbV9lbmxpc3QgKGRlYnVnKSA9PSAwKSkK KysjZW5kaWYJLyogSEFWRV9MSUJSUE0gKi8KKysgICAgICB7CisrCS8qIFdlIGRvIG5vdCBjb2xs ZWN0IGFuZCBmbHVzaCB0aGVzZSBtZXNzYWdlcyBhcyBlYWNoIHN1Y2ggbWVzc2FnZQorKwkgICBh bHJlYWR5IHJlcXVpcmVzIGl0cyBvd24gc2VwYXJhdGUgbGluZXMuICAqLworKworKwlmcHJpbnRm X3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCisrCQkJICAgIF8oIk1pc3Npbmcgc2VwYXJhdGUgZGVi dWdpbmZvIGZvciAlc1xuIiksIGJpbmFyeSk7CisrICAgICAgICBpZiAoZGVidWcgIT0gTlVMTCkK KysJICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csIF8oIlRyeTogJXMgJXNcbiIpLAor KwkJCSAgICAgICJ5dW0gLS1lbmFibGVyZXBvPScqZGVidWcqJyBpbnN0YWxsIiwgZGVidWcpOwor KyAgICAgIH0KKyB9CiAgCisgLyogU2VlIGJ1aWxkLWlkLmguICAqLwoKZGlmZiAtLWdpdCBhL2dk Yi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNo CmluZGV4IDBiOTY3ZmQuLmQzYmM0YTUgMTAwNjQ0Ci0tLSBhL2dkYi02LjYtYnVpbGRpZC1sb2Nh dGUucGF0Y2gKKysrIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaApAQCAtMSwxOCArMSwx OSBAQAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jb3JlbG93LmMKK0luZGV4 OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9jb3JlbG93LmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9jb3JlbG93LmMJMjAxMy0wOC0wMiAxNzowNzox Ny44ODY3Mzk1MTMgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29yZWxv dy5jCTIwMTMtMDgtMDIgMTc6MDc6MjguNDM0NzUzMjkzICswMjAwCi1AQCAtNDgsNiArNDgsOSBA QAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvY29yZWxvdy5jCTIwMTQtMDEtMjcg MDI6NTc6NTMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvY29y ZWxvdy5jCTIwMTQtMDItMDYgMTY6NDY6NTIuMjYxNjQ2NDk5ICswMTAwCitAQCAtNDgsNiArNDgs MTAgQEAKICAjaW5jbHVkZSAiZ2RiX2JmZC5oIgogICNpbmNsdWRlICJjb21wbGV0ZXIuaCIKICAj aW5jbHVkZSAiZmlsZXN0dWZmLmgiCiArI2luY2x1ZGUgImF1eHYuaCIKICsjaW5jbHVkZSAiZWxm L2NvbW1vbi5oIgogKyNpbmNsdWRlICJnZGJjbWQuaCIKKysjaW5jbHVkZSAiYnVpbGQtaWQuaCIK ICAKICAjaWZuZGVmIE9fTEFSR0VGSUxFCiAgI2RlZmluZSBPX0xBUkdFRklMRSAwCi1AQCAtMjcz LDYgKzI3Niw1MyBAQCBhZGRfdG9fdGhyZWFkX2xpc3QgKGJmZCAqYWJmZCwgYXNlY3Rpb24KK0BA IC0yNzEsNiArMjc1LDUzIEBAIGFkZF90b190aHJlYWRfbGlzdCAoYmZkICphYmZkLCBhc2VjdGlv bgogICAgICBpbmZlcmlvcl9wdGlkID0gcHRpZDsJCQkvKiBZZXMsIG1ha2UgaXQgY3VycmVudC4g ICovCiAgfQogIApAQCAtNDQsNyArNDUsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL2NvcmVsb3cuYwogKyAgICAgZmlsZSAtIHN1Y2ggLmVoX2ZyYW1lIHdvdWxkIG5vdCBi ZSBmb3VuZCBpZiBTWU1GSUxFX09CSkZJTEUgd291bGQgcmVmZXIKICsgICAgIGRpcmVjdGx5IHRv IHRoZSBzZXBhcmF0ZSBkZWJ1ZyBpbmZvIGZpbGUuICAqLwogKwotKyAgZXhlY2ZpbGVuYW1lID0g YnVpbGRfaWRfdG9fZmlsZW5hbWUgKGJ1aWxkX2lkLCAmYnVpbGRfaWRfZmlsZW5hbWUsIDApOwor KyAgZXhlY2ZpbGVuYW1lID0gYnVpbGRfaWRfdG9fZmlsZW5hbWUgKGJ1aWxkX2lkLCAmYnVpbGRf aWRfZmlsZW5hbWUpOwogKyAgbWFrZV9jbGVhbnVwICh4ZnJlZSwgYnVpbGRfaWRfZmlsZW5hbWUp OwogKwogKyAgaWYgKGV4ZWNmaWxlbmFtZSAhPSBOVUxMKQpAQCAtNjYsNyArNjcsNyBAQCBJbmRl eDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2NvcmVsb3cuYwogIC8qIFRoaXMgcm91dGlu ZSBvcGVucyBhbmQgc2V0cyB1cCB0aGUgY29yZSBmaWxlIGJmZC4gICovCiAgCiAgc3RhdGljIHZv aWQKLUBAIC00MTEsNiArNDYxLDE0IEBAIGNvcmVfb3BlbiAoY2hhciAqZmlsZW5hbWUsIGludCBm cm9tX3R0eSkKK0BAIC00MDksNiArNDYwLDE0IEBAIGNvcmVfb3BlbiAoY2hhciAqZmlsZW5hbWUs IGludCBmcm9tX3R0eSkKICAJc3dpdGNoX3RvX3RocmVhZCAodGhyZWFkLT5wdGlkKTsKICAgICAg fQogIApAQCAtODEsNyArODIsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L2NvcmVsb3cuYwogICAgcG9zdF9jcmVhdGVfaW5mZXJpb3IgKCZjb3JlX29wcywgZnJvbV90dHkp OwogIAogICAgLyogTm93IGdvIHRocm91Z2ggdGhlIHRhcmdldCBzdGFjayBsb29raW5nIGZvciB0 aHJlYWRzIHNpbmNlIHRoZXJlCi1AQCAtOTc0LDQgKzEwMzIsMTEgQEAgX2luaXRpYWxpemVfY29y ZWxvdyAodm9pZCkKK0BAIC05ODAsNCArMTAzOSwxMSBAQCBfaW5pdGlhbGl6ZV9jb3JlbG93ICh2 b2lkKQogICAgaW5pdF9jb3JlX29wcyAoKTsKICAKICAgIGFkZF90YXJnZXRfd2l0aF9jb21wbGV0 ZXIgKCZjb3JlX29wcywgZmlsZW5hbWVfY29tcGxldGVyKTsKQEAgLTkzLDExICs5NCwxMSBAQCBJ bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2NvcmVsb3cuYwogKwkJCSAgIE5VTEws IE5VTEwsIE5VTEwsCiArCQkJICAgJnNldGxpc3QsICZzaG93bGlzdCk7CiAgfQotSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kb2MvZ2RiLnRleGluZm8KK0luZGV4OiBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi9kb2MvZ2RiLnRleGluZm8KID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxMy0wOC0wMiAxNzow NzoxNy44ODY3Mzk1MTMgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZG9j L2dkYi50ZXhpbmZvCTIwMTMtMDgtMDIgMTc6MDc6MjguNDQzNzUzMzA0ICswMjAwCi1AQCAtMTcx MTksNiArMTcxMTksMjcgQEAgaW5mb3JtYXRpb24gZmlsZXMuCistLS0gZ2RiLTcuNi45MC4yMDE0 MDEyNy5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxNC0wMi0wNiAxNjo0Njo1MS44MDQ2NDU5 ODkgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAx NC0wMi0wNiAxNjo0Njo1Mi4xMTA2NDYzMzEgKzAxMDAKK0BAIC0xNzQxMyw2ICsxNzQxMywyNyBA QCBpbmZvcm1hdGlvbiBmaWxlcy4KICAKICBAZW5kIHRhYmxlCiAgCkBAIC0xMjUsMTEgKzEyNiwx OSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2RvYy9nZGIudGV4aW5mbwog IEBjaW5kZXggQGNvZGV7LmdudV9kZWJ1Z2xpbmt9IHNlY3Rpb25zCiAgQGNpbmRleCBkZWJ1ZyBs aW5rIHNlY3Rpb25zCiAgQSBkZWJ1ZyBsaW5rIGlzIGEgc3BlY2lhbCBzZWN0aW9uIG9mIHRoZSBl eGVjdXRhYmxlIGZpbGUgbmFtZWQKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIv c29saWItc3ZyNC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvc29saWItc3ZyNC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvc29saWIt c3ZyNC5jCTIwMTMtMDgtMDIgMTc6MDc6MTcuODg2NzM5NTEzICswMjAwCi0rKysgZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL3NvbGliLXN2cjQuYwkyMDEzLTA4LTAyIDE3OjA3OjI4LjQ0NDc1 MzMwNSArMDIwMAotQEAgLTEzNjUsOSArMTM2NSw1MiBAQCBzdnI0X3JlYWRfc29fbGlzdCAoQ09S RV9BRERSIGxtLCBDT1JFX0FECistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9zb2xp Yi1zdnI0LmMJMjAxNC0wMS0yNyAwMjo1Nzo1My4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi9zb2xpYi1zdnI0LmMJMjAxNC0wMi0wNiAxNjo0OToyNy41MDg4MTkx NzQgKzAxMDAKK0BAIC00Nyw2ICs0Nyw3IEBACisgI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKKyAj aW5jbHVkZSAiZ2RiX2JmZC5oIgorICNpbmNsdWRlICJwcm9iZS5oIgorKyNpbmNsdWRlICJidWls ZC1pZC5oIgorIAorIHN0YXRpYyBzdHJ1Y3QgbGlua19tYXBfb2Zmc2V0cyAqc3ZyNF9mZXRjaF9s aW5rX21hcF9vZmZzZXRzICh2b2lkKTsKKyBzdGF0aWMgaW50IHN2cjRfaGF2ZV9saW5rX21hcF9v ZmZzZXRzICh2b2lkKTsKK0BAIC0xMzY5LDkgKzEzNzAsNTIgQEAgc3ZyNF9yZWFkX3NvX2xpc3Qg KENPUkVfQUREUiBsbSwgQ09SRV9BRAogIAkgIGNvbnRpbnVlOwogIAl9CiAgCkBAIC0xNTEsNyAr MTYwLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zb2xpYi1zdnI0LmMK ICsKICsJICAgIC8qIE1pc3NpbmcgdGhlIGJ1aWxkLWlkIG1hdGNoaW5nIHNlcGFyYXRlIGRlYnVn IGluZm8gZmlsZQogKwkgICAgICAgd291bGQgYmUgaGFuZGxlZCB3aGlsZSBTT19OQU1FIGdldHMg bG9hZGVkLiAgKi8KLSsJICAgIG5hbWUgPSBidWlsZF9pZF90b19maWxlbmFtZSAoYnVpbGRfaWQs ICZidWlsZF9pZF9maWxlbmFtZSwgMCk7CisrCSAgICBuYW1lID0gYnVpbGRfaWRfdG9fZmlsZW5h bWUgKGJ1aWxkX2lkLCAmYnVpbGRfaWRfZmlsZW5hbWUpOwogKwkgICAgaWYgKG5hbWUgIT0gTlVM TCkKICsJICAgICAgewogKwkJc3RybmNweSAobmV3LT5zb19uYW1lLCBuYW1lLCBTT19OQU1FX01B WF9QQVRIX1NJWkUgLSAxKTsKQEAgLTE4NSwyNyArMTk0LDE2MCBAQCBJbmRleDogZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL3NvbGliLXN2cjQuYwogICAgICAgIHhmcmVlIChidWZmZXIpOwog IAogICAgICAgIC8qIElmIHRoaXMgZW50cnkgaGFzIG5vIG5hbWUsIG9yIGl0cyBuYW1lIG1hdGNo ZXMgdGhlIG5hbWUKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZWxmcmVhZC5j CitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZWxmcmVhZC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvZWxmcmVhZC5jCTIwMTMtMDgtMDIg MTc6MDc6MTcuODg2NzM5NTEzICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L2VsZnJlYWQuYwkyMDEzLTA4LTAyIDE3OjA5OjA2LjQ2MDg4MTUwMyArMDIwMAotQEAgLTQ1LDYg KzQ1LDExIEBACi0gI2luY2x1ZGUgInJlZ2NhY2hlLmgiCi0gI2luY2x1ZGUgImJjYWNoZS5oIgot ICNpbmNsdWRlICJnZGJfYmZkLmgiCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9l bGZyZWFkLmMJMjAxNC0wMS0yNyAwMjo1Nzo1My4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi9lbGZyZWFkLmMJMjAxNC0wMi0wNiAxNjo0Njo1Mi4yNDk2NDY0ODYg KzAxMDAKK0BAIC0xMzE2LDkgKzEzMTYsMTAgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0IG9i amZpbGUgKm9iamZpbAorIAkgICAmJiBvYmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlID09 IE5VTEwKKyAJICAgJiYgb2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZV9iYWNrbGluayA9 PSBOVUxMKQorICAgICB7CistICAgICAgY2hhciAqZGVidWdmaWxlOworKyAgICAgIGNoYXIgKmRl YnVnZmlsZSwgKmJ1aWxkX2lkX2ZpbGVuYW1lOworIAorLSAgICAgIGRlYnVnZmlsZSA9IGZpbmRf c2VwYXJhdGVfZGVidWdfZmlsZV9ieV9idWlsZGlkIChvYmpmaWxlKTsKKysgICAgICBkZWJ1Z2Zp bGUgPSBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAob2JqZmlsZSwKKysJCQkJ CQkgICAgICAgJmJ1aWxkX2lkX2ZpbGVuYW1lKTsKKyAKKyAgICAgICBpZiAoZGVidWdmaWxlID09 IE5VTEwpCisgCWRlYnVnZmlsZSA9IGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9ieV9kZWJ1Z2xp bmsgKG9iamZpbGUpOworQEAgLTEzMzIsNiArMTMzMywxMiBAQCBlbGZfc3ltZmlsZV9yZWFkIChz dHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsCisgCSAgc3ltYm9sX2ZpbGVfYWRkX3NlcGFyYXRlIChhYmZk LCBkZWJ1Z2ZpbGUsIHN5bWZpbGVfZmxhZ3MsIG9iamZpbGUpOworIAkgIGRvX2NsZWFudXBzIChj bGVhbnVwKTsKKyAJfQorKyAgICAgIC8qIENoZWNrIGlmIGFueSBzZXBhcmF0ZSBkZWJ1ZyBpbmZv IGhhcyBiZWVuIGV4dHJhY3RlZCBvdXQuICAqLworKyAgICAgIGVsc2UgaWYgKGJmZF9nZXRfc2Vj dGlvbl9ieV9uYW1lIChvYmpmaWxlLT5vYmZkLCAiLmdudV9kZWJ1Z2xpbmsiKQorKwkgICAgICAg IT0gTlVMTCkKKysJZGVidWdfcHJpbnRfbWlzc2luZyAob2JqZmlsZV9uYW1lIChvYmpmaWxlKSwg YnVpbGRfaWRfZmlsZW5hbWUpOworKworKyAgICAgIHhmcmVlIChidWlsZF9pZF9maWxlbmFtZSk7 CisgICAgIH0KKyB9CisgCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvc3ltZmlsZS5o Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9zeW1maWxlLmgJ MjAxNC0wMS0yNyAwMjo1Nzo1My4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQw MTI3L2dkYi9zeW1maWxlLmgJMjAxNC0wMi0wNiAxNjo0Njo1Mi4yNTA2NDY0ODcgKzAxMDAKK0BA IC01NTQsNiArNTU0LDEwIEBAIHZvaWQgZnJlZV9zeW1maWxlX3NlZ21lbnRfZGF0YSAoc3RydWN0 IHMKKyAKKyBleHRlcm4gc3RydWN0IGNsZWFudXAgKmluY3JlbWVudF9yZWFkaW5nX3N5bXRhYiAo dm9pZCk7CisgCisrLyogYnVpbGQtaWQgc3VwcG9ydC4gICovCisrZXh0ZXJuIHN0cnVjdCBlbGZf YnVpbGRfaWQgKmJ1aWxkX2lkX2FkZHJfZ2V0IChDT1JFX0FERFIgYWRkcik7CisrZXh0ZXJuIHZv aWQgZGVidWdfcHJpbnRfbWlzc2luZyAoY29uc3QgY2hhciAqYmluYXJ5LCBjb25zdCBjaGFyICpk ZWJ1Zyk7CisrCisgLyogRnJvbSBkd2FyZjJyZWFkLmMgKi8KKyAKKyAvKiBOYW1lcyBmb3IgYSBk d2FyZjIgZGVidWdnaW5nIHNlY3Rpb24uICBUaGUgZmllbGQgTk9STUFMIGlzIHRoZSBub3JtYWwK K0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIv Z2RiLmV4cAkyMDE0LTAyLTA2IDE2OjQ2OjUxLjY0MzY0NTgxMCArMDEwMAorKysrIGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE0LTAyLTA2IDE2OjQ2OjUy LjI1MTY0NjQ4OCArMDEwMAorQEAgLTE1MDQsNiArMTUwNCwxNiBAQCBwcm9jIGRlZmF1bHRfZ2Ri X3N0YXJ0IHsgfSB7CisgCSAgICB3YXJuaW5nICJDb3VsZG4ndCBzZXQgdGhlIHdpZHRoIHRvIDAu IgorIAl9CisgICAgIH0KKysgICAgIyBUdXJuIG9mZiB0aGUgbWlzc2luZyB3YXJuaW5ncyBhcyB0 aGUgdGVzdHN1aXRlIGRvZXMgbm90IGV4cGVjdCBpdC4KKysgICAgc2VuZF9nZGIgInNldCBidWls ZC1pZC12ZXJib3NlIDBcbiIKKysgICAgZ2RiX2V4cGVjdCAxMCB7CisrCS1yZSAiJGdkYl9wcm9t cHQgJCIgeworKwkgICAgdmVyYm9zZSAiRGlzYWJsZWQgdGhlIG1pc3NpbmcgZGVidWcgaW5mb3Mg d2FybmluZ3MuIiAyCisrCX0KKysJdGltZW91dCB7CisrCSAgICB3YXJuaW5nICJDb3VsZCBub3Qg ZGlzYWJsZSB0aGUgbWlzc2luZyBkZWJ1ZyBpbmZvcyB3YXJuaW5ncy4uIgorKwl9CisrICAgIH0K KyAgICAgcmV0dXJuIDAKKyB9CisgCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVz dHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjYuOTAuMjAx NDAxMjcub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDE0LTAxLTI3IDAy OjU3OjU0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3Rz dWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNC0wMi0wNiAxNjo0Njo1Mi4yNTI2NDY0ODkgKzAx MDAKK0BAIC0yMTIsNiArMjEyLDE2IEBAIHByb2MgZGVmYXVsdF9taV9nZGJfc3RhcnQgeyBhcmdz IH0geworIAkgICAgd2FybmluZyAiQ291bGRuJ3Qgc2V0IHRoZSB3aWR0aCB0byAwLiIKKyAJfQor ICAgICB9CisrICAgICMgVHVybiBvZmYgdGhlIG1pc3Npbmcgd2FybmluZ3MgYXMgdGhlIHRlc3Rz dWl0ZSBkb2VzIG5vdCBleHBlY3QgaXQuCisrICAgIHNlbmRfZ2RiICIxOTAtZ2RiLXNldCBidWls ZC1pZC12ZXJib3NlIDBcbiIKKysgICAgZ2RiX2V4cGVjdCAxMCB7CisrCS1yZSAiLioxOTAtZ2Ri LXNldCBidWlsZC1pZC12ZXJib3NlIDBcclxuMTkwXFxcXmRvbmVcclxuJG1pX2dkYl9wcm9tcHQk IiB7CisrCSAgICB2ZXJib3NlICJEaXNhYmxlZCB0aGUgbWlzc2luZyBkZWJ1ZyBpbmZvcyB3YXJu aW5ncy4iIDIKKysJfQorKwl0aW1lb3V0IHsKKysJICAgIHdhcm5pbmcgIkNvdWxkIG5vdCBkaXNh YmxlIHRoZSBtaXNzaW5nIGRlYnVnIGluZm9zIHdhcm5pbmdzLi4iCisrCX0KKysgICAgfQorICAg ICAjIElmIGFsbG93aW5nIHRoZSBpbmZlcmlvciB0byBoYXZlIGl0cyBvd24gUFRZIHRoZW4gYXNz aWduIHRoZSBpbmZlcmlvcgorICAgICAjIGl0cyBvd24gdGVybWluYWwgZGV2aWNlIGhlcmUuCisg ICAgIGlmIHsgJHNlcGFyYXRlX2luZmVyaW9yX3B0eSB9IHsKK0luZGV4OiBnZGItNy42LjkwLjIw MTQwMTI3L2dkYi9vYmpmaWxlcy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNi45MC4yMDE0MDEy Ny5vcmlnL2dkYi9vYmpmaWxlcy5oCTIwMTQtMDEtMjcgMDI6NTc6NTMuMDAwMDAwMDAwICswMTAw CisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvb2JqZmlsZXMuaAkyMDE0LTAyLTA2IDE2OjQ2 OjUyLjExMzY0NjMzNCArMDEwMAorQEAgLTQzNiw2ICs0MzYsMTAgQEAgc3RydWN0IG9iamZpbGUK KyAKKyAjZGVmaW5lIE9CSkZfTk9UX0ZJTEVOQU1FICgxIDw8IDYpCisgCisrLyogVGhpcyBmaWxl IHdhcyBsb2FkZWQgYWNjb3JkaW5nIHRvIHRoZSBCVUlMRF9JRF9DT1JFX0xPQURTIHJ1bGVzLiAg Ki8KKysKKysjZGVmaW5lIE9CSkZfQlVJTERfSURfQ09SRV9MT0FERUQgKDEgPDwgMTIpCisrCisg LyogRGVjbGFyYXRpb25zIGZvciBmdW5jdGlvbnMgZGVmaW5lZCBpbiBvYmpmaWxlcy5jICovCisg CisgZXh0ZXJuIHN0cnVjdCBvYmpmaWxlICphbGxvY2F0ZV9vYmpmaWxlIChiZmQgKiwgY29uc3Qg Y2hhciAqbmFtZSwgaW50KTsKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNi45MC4yMDE0 MDEyNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTQtMDEtMjcg MDI6NTc6NTQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAkyMDE0LTAyLTA2IDE2OjQ2OjUyLjExMzY0NjMz NCArMDEwMAorQEAgLTI4MSwzICsyODEsMzMgQEAgZ2RiX3Rlc3RfbXVsdGlwbGUgImNvcmUtZmls ZSAkY29yZWZpbGUiCisgCXBhc3MgJHRlc3QKKyAgICAgfQorIH0KKysKKysKKysjIFRlc3QgYXV0 by1sb2FkaW5nIG9mIGJpbmFyeSBmaWxlcyB0aHJvdWdoIGJ1aWxkLWlkIGZyb20gdGhlIGNvcmUg ZmlsZS4KKytzZXQgYnVpbGRpZCBbYnVpbGRfaWRfZGVidWdfZmlsZW5hbWVfZ2V0ICRiaW5maWxl XQorK3NldCB3aG9sZXRlc3QgImJpbmZpbGUgZm91bmQgYnkgYnVpbGQtaWQiCisraWYgeyRidWls ZGlkID09ICIifSB7CisrICAgIHVudGVzdGVkICIkd2hvbGV0ZXN0IChiaW5hcnkgaGFzIG5vIGJ1 aWxkLWlkKSIKKyt9IGVsc2UgeworKyAgICBnZGJfZXhpdAorKyAgICBnZGJfc3RhcnQKKysKKysg ICAgcmVnc3ViIHtcLmRlYnVnJH0gJGJ1aWxkaWQge30gYnVpbGRpZAorKyAgICBzZXQgZGVidWdk aXIgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfS1kZWJ1Z2RpcgorKyAgICBmaWxlIGRl bGV0ZSAtZm9yY2UgLS0gJGRlYnVnZGlyCisrICAgIGZpbGUgbWtkaXIgJGRlYnVnZGlyL1tmaWxl IGRpcm5hbWUgJGJ1aWxkaWRdCisrICAgIGZpbGUgY29weSAkYmluZmlsZSAkZGVidWdkaXIvJGJ1 aWxkaWQKKysKKysgICAgc2V0IHRlc3QgInNob3cgZGVidWctZmlsZS1kaXJlY3RvcnkiCisrICAg IGdkYl90ZXN0X211bHRpcGxlICR0ZXN0ICR0ZXN0IHsKKysJLXJlICJUaGUgZGlyZWN0b3J5IHdo ZXJlIHNlcGFyYXRlIGRlYnVnIHN5bWJvbHMgYXJlIHNlYXJjaGVkIGZvciBpcyBcIiguKilcIlxc LlxyXG4kZ2RiX3Byb21wdCAkIiB7CisrCSAgICBzZXQgZGVidWdkaXJfb3JpZyAkZXhwZWN0X291 dCgxLHN0cmluZykKKysJICAgIHBhc3MgJHRlc3QKKysJfQorKyAgICB9CisrICAgIGdkYl90ZXN0 X25vX291dHB1dCAic2V0IGRlYnVnLWZpbGUtZGlyZWN0b3J5ICRkZWJ1Z2RpcjokZGVidWdkaXJf b3JpZyIgInNldCBkZWJ1Zy1maWxlLWRpcmVjdG9yeSIKKysgICAgZ2RiX3Rlc3QgInNob3cgYnVp bGQtaWQtY29yZS1sb2FkcyIge1doZXRoZXIgQ09SRS1GSUxFIGxvYWRzIHRoZSBidWlsZC1pZCBh c3NvY2lhdGVkIGZpbGVzIGF1dG9tYXRpY2FsbHkgaXMgb25cLn0KKysgICAgZ2RiX3Rlc3QgImNv cmUtZmlsZSAkY29yZWZpbGUiICJcclxuUHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggLioiICJjb3Jl LWZpbGUgd2l0aG91dCBleGVjdXRhYmxlIgorKyAgICBnZGJfdGVzdCAiaW5mbyBmaWxlcyIgIkxv Y2FsIGV4ZWMgZmlsZTpcclxuXFsgXHRcXSpgW3N0cmluZ190b19yZWdleHAgJGRlYnVnZGlyLyRi dWlsZGlkXScsIGZpbGUgdHlwZSAuKiIKKysgICAgcGFzcyAkd2hvbGV0ZXN0CisrfQorSW5kZXg6 IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2J1aWxkLWlkLmMKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGIt Ny42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2J1aWxkLWlkLmMJMjAxNC0wMS0yNyAwMjo1Nzo1My4w MDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9idWlsZC1pZC5jCTIw MTQtMDItMDYgMTY6NDY6NTIuMTEzNjQ2MzM0ICswMTAwCitAQCAtMjcsMTEgKzI3LDY1IEBACisg I2luY2x1ZGUgInN5bWZpbGUuaCIKKyAjaW5jbHVkZSAib2JqZmlsZXMuaCIKKyAjaW5jbHVkZSAi ZmlsZW5hbWVzLmgiCiArI2luY2x1ZGUgImxpYmJmZC5oIgogKyNpbmNsdWRlICJnZGJjb3JlLmgi CiArI2luY2x1ZGUgImdkYmNtZC5oIgogKyNpbmNsdWRlICJvYnNlcnZlci5oIgogKyNpbmNsdWRl IDxzeXMvc3RhdC5oPgotIAotIGV4dGVybiB2b2lkIF9pbml0aWFsaXplX2VsZnJlYWQgKHZvaWQp OwotIAotQEAgLTEwODcsMTAgKzEwOTIsNTkgQEAgZWxmX2dudV9pZnVuY19yZXNvbHZlcl9yZXR1 cm5fc3RvcCAoc3RydQotICAgdXBkYXRlX2JyZWFrcG9pbnRfbG9jYXRpb25zIChiLCBzYWxzLCBz YWxzX2VuZCk7Ci0gfQotIAotLS8qIExvY2F0ZSBOVF9HTlVfQlVJTERfSUQgZnJvbSBBQkZEIGFu ZCByZXR1cm4gaXRzIGNvbnRlbnQuICAqLworKwogKyNkZWZpbmUgQlVJTERfSURfVkVSQk9TRV9O T05FIDAKICsjZGVmaW5lIEJVSUxEX0lEX1ZFUkJPU0VfRklMRU5BTUVTIDEKICsjZGVmaW5lIEJV SUxEX0lEX1ZFUkJPU0VfQklOQVJZX1BBUlNFIDIKQEAgLTIyMCw3ICszNjIsOCBAQCBJbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2VsZnJlYWQuYwogKwogKy8qIExvY2F0ZSBOVF9H TlVfQlVJTERfSUQgYW5kIHJldHVybiBpdHMgbWF0Y2hpbmcgZGVidWcgZmlsZW5hbWUuCiArICAg RklYTUU6IE5PVEUgZGVjb2Rpbmcgc2hvdWxkIGJlIHVuaWZpZWQgd2l0aCB0aGUgQkZEIGNvcmUg bm90ZXMgZGVjb2RpbmcuICAqLwotKworIAorLS8qIExvY2F0ZSBOVF9HTlVfQlVJTERfSUQgZnJv bSBBQkZEIGFuZCByZXR1cm4gaXRzIGNvbnRlbnQuICAqLwogK3N0YXRpYyBzdHJ1Y3QgZWxmX2J1 aWxkX2lkICoKICtidWlsZF9pZF9idWZfZ2V0IChiZmQgKnRlbXBsLCBnZGJfYnl0ZSAqYnVmLCBi ZmRfc2l6ZV90eXBlIHNpemUpCiArewpAQCAtMjUzLDE3ICszOTYsMTcgQEAgSW5kZXg6IGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9lbGZyZWFkLmMKICsgICAgfQogKyAgcmV0dXJuIE5VTEw7 CiArfQotKworIAogKy8qIFNlcGFyYXRlIGRlYnVnaW5mbyBmaWxlcyBoYXZlIGNvcnJ1cHRlZCBQ SERSIGJ1dCBTSERSIGlzIGNvcnJlY3QgdGhlcmUuCiArICAgTG9jYXRlIE5UX0dOVV9CVUlMRF9J RCBmcm9tIEFCRkQgYW5kIHJldHVybiBpdHMgY29udGVudC4gICovCi0gCisrIAogIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZWxmX2J1aWxkX2lkICoKIC1idWlsZF9pZF9iZmRfZ2V0IChiZmQgKmFiZmQp CiArYnVpbGRfaWRfYmZkX3NoZHJfZ2V0IChiZmQgKmFiZmQpCiAgewogICAgaWYgKCFiZmRfY2hl Y2tfZm9ybWF0IChhYmZkLCBiZmRfb2JqZWN0KQogICAgICAgIHx8IGJmZF9nZXRfZmxhdm91ciAo YWJmZCkgIT0gYmZkX3RhcmdldF9lbGZfZmxhdm91cgotQEAgLTExMDAsNiArMTE1NCwzNDggQEAg YnVpbGRfaWRfYmZkX2dldCAoYmZkICphYmZkKQorQEAgLTQ1LDYgKzk5LDM0OCBAQCBidWlsZF9p ZF9iZmRfZ2V0IChiZmQgKmFiZmQpCiAgICByZXR1cm4gZWxmX3RkYXRhIChhYmZkKS0+YnVpbGRf aWQ7CiAgfQogIApAQCAtNjA5LDIzICs3NTIsMjMgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi9lbGZyZWFkLmMKICsgIHJldHVybiByZXR2YWw7CiArfQogKwotIC8qIFJldHVy biBpZiBGSUxFTkFNRSBoYXMgTlRfR05VX0JVSUxEX0lEIG1hdGNoaW5nIHRoZSBDSEVDSyB2YWx1 ZS4gICovCisgLyogU2VlIGJ1aWxkLWlkLmguICAqLwogIAotIHN0YXRpYyBpbnQKLUBAIC0xMTE0 LDcgKzE1MTAsNyBAQCBidWlsZF9pZF92ZXJpZnkgKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjCi0g ICBpZiAoYWJmZCA9PSBOVUxMKQotICAgICByZXR1cm4gMDsKKyBpbnQKK0BAIC01Myw3ICs0NDks NyBAQCBidWlsZF9pZF92ZXJpZnkgKGJmZCAqYWJmZCwgc2l6ZV90IGNoZWNrCisgICBjb25zdCBz dHJ1Y3QgZWxmX2J1aWxkX2lkICpmb3VuZDsKKyAgIGludCByZXR2YWwgPSAwOwogIAogLSAgZm91 bmQgPSBidWlsZF9pZF9iZmRfZ2V0IChhYmZkKTsKICsgIGZvdW5kID0gYnVpbGRfaWRfYmZkX3No ZHJfZ2V0IChhYmZkKTsKICAKICAgIGlmIChmb3VuZCA9PSBOVUxMKQotICAgICB3YXJuaW5nIChf KCJGaWxlIFwiJXNcIiBoYXMgbm8gYnVpbGQtaWQsIGZpbGUgc2tpcHBlZCIpLCBmaWxlbmFtZSk7 Ci1AQCAtMTEzMSwxNiArMTUyNyw1MyBAQCBidWlsZF9pZF92ZXJpZnkgKGNvbnN0IGNoYXIgKmZp bGVuYW1lLCBjCisgICAgIHdhcm5pbmcgKF8oIkZpbGUgXCIlc1wiIGhhcyBubyBidWlsZC1pZCwg ZmlsZSBza2lwcGVkIiksCitAQCAtNjgsMjAgKzQ2NCw1NiBAQCBidWlsZF9pZF92ZXJpZnkgKGJm ZCAqYWJmZCwgc2l6ZV90IGNoZWNrCisgICByZXR1cm4gcmV0dmFsOwogIH0KICAKLSBzdGF0aWMg Y2hhciAqCi0tYnVpbGRfaWRfdG9fZGVidWdfZmlsZW5hbWUgKGNvbnN0IHN0cnVjdCBlbGZfYnVp bGRfaWQgKmJ1aWxkX2lkKQorK3N0YXRpYyBjaGFyICoKICtsaW5rX3Jlc29sdmUgKGNvbnN0IGNo YXIgKnN5bWxpbmssIGludCBsZXZlbCkKICt7CiArICBjaGFyIGJ1ZltQQVRIX01BWCArIDFdLCAq dGFyZ2V0LCAqcmV0dmFsOwpAQCAtNjYxLDI4ICs4MDQsMzMgQEAgSW5kZXg6IGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9lbGZyZWFkLmMKICsgIHJldHVybiByZXR2YWw7CiArfQogKwotK2No YXIgKgotK2J1aWxkX2lkX3RvX2ZpbGVuYW1lIChjb25zdCBzdHJ1Y3QgZWxmX2J1aWxkX2lkICpi dWlsZF9pZCwgY2hhciAqKmxpbmtfcmV0dXJuLAotKwkJICAgICAgaW50IGFkZF9kZWJ1Z19zdWZm aXgpCisgLyogU2VlIGJ1aWxkLWlkLmguICAqLworIAorIGJmZCAqCistYnVpbGRfaWRfdG9fZGVi dWdfYmZkIChzaXplX3QgYnVpbGRfaWRfbGVuLCBjb25zdCBiZmRfYnl0ZSAqYnVpbGRfaWQpCisr YnVpbGRfaWRfdG9fZGVidWdfYmZkIChzaXplX3QgYnVpbGRfaWRfbGVuLCBjb25zdCBiZmRfYnl0 ZSAqYnVpbGRfaWQsCisrCQkgICAgICAgY2hhciAqKmxpbmtfcmV0dXJuLCBpbnQgYWRkX2RlYnVn X3N1ZmZpeCkKICB7Ci0gICBjaGFyICpsaW5rLCAqZGVidWdkaXIsICpyZXR2YWwgPSBOVUxMOwot KyAgY2hhciAqbGlua19hbGwgPSBOVUxMOworLSAgY2hhciAqbGluaywgKmRlYnVnZGlyOworKyAg Y2hhciAqbGluaywgKmRlYnVnZGlyLCAqbGlua19hbGwgPSBOVUxMOwogICAgVkVDIChjaGFyX3B0 cikgKmRlYnVnZGlyX3ZlYzsKICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogICAgaW50IGl4 OworICAgYmZkICphYmZkID0gTlVMTDsKICAKICAgIC8qIERFQlVHX0ZJTEVfRElSRUNUT1JZLy5i dWlsZC1pZC9hYi9jZGVmICovCiAtICBsaW5rID0gYWxsb2NhIChzdHJsZW4gKGRlYnVnX2ZpbGVf ZGlyZWN0b3J5KSArIChzaXplb2YgIi8uYnVpbGQtaWQvIiAtIDEpICsgMQotLQkJICsgMiAqIGJ1 aWxkX2lkLT5zaXplICsgKHNpemVvZiAiLmRlYnVnIiAtIDEpICsgMSk7Ci0rICBsaW5rID0geG1h bGxvYyAoc3RybGVuIChkZWJ1Z19maWxlX2RpcmVjdG9yeSkgKyAyICogYnVpbGRfaWQtPnNpemUg KyA1MCk7CistCQkgKyAyICogYnVpbGRfaWRfbGVuICsgKHNpemVvZiAiLmRlYnVnIiAtIDEpICsg MSk7CisrICBsaW5rID0geG1hbGxvYyAoc3RybGVuIChkZWJ1Z19maWxlX2RpcmVjdG9yeSkgKyAy ICogYnVpbGRfaWRfbGVuICsgNTApOwogIAogICAgLyogS2VlcCBiYWNrd2FyZCBjb21wYXRpYmls aXR5IHNvIHRoYXQgREVCVUdfRklMRV9ESVJFQ1RPUlkgYmVpbmcgIiIgd2lsbAogICAgICAgY2F1 c2UgIi8uYnVpbGQtaWQvLi4uIiBsb29rdXBzLiAgKi8KLUBAIC0xMTUzLDcgKzE1ODYsMTAgQEAg YnVpbGRfaWRfdG9fZGVidWdfZmlsZW5hbWUgKGNvbnN0IHN0cnVjdAorQEAgLTk0LDggKzUyNiwx MSBAQCBidWlsZF9pZF90b19kZWJ1Z19iZmQgKHNpemVfdCBidWlsZF9pZF9sCiAgICAgICAgc2l6 ZV90IGRlYnVnZGlyX2xlbiA9IHN0cmxlbiAoZGVidWdkaXIpOwotICAgICAgIGNvbnN0IGdkYl9i eXRlICpkYXRhID0gYnVpbGRfaWQtPmRhdGE7Ci0gICAgICAgc2l6ZV90IHNpemUgPSBidWlsZF9p ZC0+c2l6ZTsKKyAgICAgICBjb25zdCBnZGJfYnl0ZSAqZGF0YSA9IGJ1aWxkX2lkOworICAgICAg IHNpemVfdCBzaXplID0gYnVpbGRfaWRfbGVuOwogLSAgICAgIGNoYXIgKnM7CisgICAgICAgY2hh ciAqZmlsZW5hbWUgPSBOVUxMOwogKyAgICAgIHVuc2lnbmVkIHNlcW5vOwogKyAgICAgIHN0cnVj dCBzdGF0IHN0YXRidWZfdHJhc2g7CiArICAgICAgLyogSW5pdGlhbGl6ZSBpdCBqdXN0IHRvIGF2 b2lkIGEgR0NDIGZhbHNlIHdhcm5pbmcuICAqLwpAQCAtNjkwLDE5ICs4MzgsMTggQEAgSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9lbGZyZWFkLmMKICAKICAgICAgICBtZW1jcHkg KGxpbmssIGRlYnVnZGlyLCBkZWJ1Z2Rpcl9sZW4pOwogICAgICAgIHMgPSAmbGlua1tkZWJ1Z2Rp cl9sZW5dOwotQEAgLTExNjcsMzcgKzE2MDMsMjU2IEBAIGJ1aWxkX2lkX3RvX2RlYnVnX2ZpbGVu YW1lIChjb25zdCBzdHJ1Y3QKK0BAIC0xMDksNDQgKzU0NCwyODIgQEAgYnVpbGRfaWRfdG9fZGVi dWdfYmZkIChzaXplX3QgYnVpbGRfaWRfbAogIAkqcysrID0gJy8nOwogICAgICAgIHdoaWxlIChz aXplLS0gPiAwKQogIAlzICs9IHNwcmludGYgKHMsICIlMDJ4IiwgKHVuc2lnbmVkKSAqZGF0YSsr KTsKIC0gICAgICBzdHJjcHkgKHMsICIuZGVidWciKTsKLSAKLS0gICAgICAvKiBscmVhbHBhdGgo KSBpcyBleHBlbnNpdmUgZXZlbiBmb3IgdGhlIHVzdWFsbHkgbm9uLWV4aXN0ZW50IGZpbGVzLiAg Ki8KLS0gICAgICBpZiAoYWNjZXNzIChsaW5rLCBGX09LKSA9PSAwKQotLQlyZXR2YWwgPSBscmVh bHBhdGggKGxpbmspOwogKyAgICAgIGZvciAoc2Vxbm8gPSAwOzsgc2Vxbm8rKykKICsJewogKwkg IGNoYXIgKnMyOwotKworIAorLSAgICAgIC8qIGxyZWFscGF0aCgpIGlzIGV4cGVuc2l2ZSBldmVu IGZvciB0aGUgdXN1YWxseSBub24tZXhpc3RlbnQgZmlsZXMuICAqLworLSAgICAgIGlmIChhY2Nl c3MgKGxpbmssIEZfT0spID09IDApCistCWZpbGVuYW1lID0gbHJlYWxwYXRoIChsaW5rKTsKICsJ ICBpZiAoc2Vxbm8pCiArCSAgICB7CiArCSAgICAgIC8qIFRoZXJlIGNhbiBiZSBtdWx0aXBsZSBi dWlsZC1pZCBzeW1saW5rcyBwb2ludGluZyB0byByZWFsIGZpbGVzCkBAIC03MzMsMjEgKzg4MCwz OSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2VsZnJlYWQuYwogKwkgICAg ICBicmVhazsKICsJICAgIH0KICsKLSsJICByZXR2YWwgPSBscmVhbHBhdGggKGxpbmspOworKwkg IGZpbGVuYW1lID0gbHJlYWxwYXRoIChsaW5rKTsKKysJICBpZiAoZmlsZW5hbWUgPT0gTlVMTCkK KysJICAgIGNvbnRpbnVlOwogKwotKwkgIGlmIChyZXR2YWwgIT0gTlVMTCAmJiAhYnVpbGRfaWRf dmVyaWZ5IChyZXR2YWwsIGJ1aWxkX2lkKSkKKysJICAvKiBXZSBleHBlY3QgdG8gYmUgc2lsZW50 IG9uIHRoZSBub24tZXhpc3RpbmcgZmlsZXMuICAqLworKwkgIGFiZmQgPSBnZGJfYmZkX29wZW5f bWF5YmVfcmVtb3RlIChmaWxlbmFtZSk7CisrCSAgaWYgKGFiZmQgPT0gTlVMTCkKICsJICAgIHsK LSsJICAgICAgeGZyZWUgKHJldHZhbCk7Ci0rCSAgICAgIHJldHZhbCA9IE5VTEw7CisrCSAgICAg IHhmcmVlIChmaWxlbmFtZSk7CisrCSAgICAgIGNvbnRpbnVlOwogKwkgICAgfQotKwotKwkgIGlm IChyZXR2YWwpCisgCistICAgICAgaWYgKGZpbGVuYW1lID09IE5VTEwpCistCWNvbnRpbnVlOwor KwkgIGlmIChidWlsZF9pZF92ZXJpZnkgKGFiZmQsIGJ1aWxkX2lkX2xlbiwgYnVpbGRfaWQpKQog KwkgICAgYnJlYWs7CisgCistICAgICAgLyogV2UgZXhwZWN0IHRvIGJlIHNpbGVudCBvbiB0aGUg bm9uLWV4aXN0aW5nIGZpbGVzLiAgKi8KKy0gICAgICBhYmZkID0gZ2RiX2JmZF9vcGVuX21heWJl X3JlbW90ZSAoZmlsZW5hbWUpOworLSAgICAgIGlmIChhYmZkID09IE5VTEwpCistCWNvbnRpbnVl OworKwkgIGdkYl9iZmRfdW5yZWYgKGFiZmQpOworKwkgIGFiZmQgPSBOVUxMOworIAorLSAgICAg IGlmIChidWlsZF9pZF92ZXJpZnkgKGFiZmQsIGJ1aWxkX2lkX2xlbiwgYnVpbGRfaWQpKQorLQli cmVhazsKKysJICB4ZnJlZSAoZmlsZW5hbWUpOworKwkgIGZpbGVuYW1lID0gTlVMTDsKICsJfQog KwotKyAgICAgIGlmIChyZXR2YWwgIT0gTlVMTCkKKysgICAgICBpZiAoZmlsZW5hbWUgIT0gTlVM TCkKICsJewotKwkgIC8qIExJTktfQUxMIGlzIG5vdCB1c2VkIGJlbG93IGluIHRoaXMgbm9uLU5V TEwgUkVUVkFMIGNhc2UuICAqLworKwkgIC8qIExJTktfQUxMIGlzIG5vdCB1c2VkIGJlbG93IGlu IHRoaXMgbm9uLU5VTEwgRklMRU5BTUUgY2FzZS4gICovCiArCSAgeGZyZWUgKGxpbmswKTsKICsJ ICBicmVhazsKICsJfQpAQCAtNzU3LDE0ICs5MjIsMTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi9lbGZyZWFkLmMKICsgICAgICAgICBodHRwczovL2J1Z3ppbGxhLnJlZGhh dC5jb20vc2hvd19idWcuY2dpP2lkPTk4MTE1NCAgKi8KICsgICAgICBsaW5rMF9yZXNvbHZlZCA9 IGxpbmtfcmVzb2x2ZSAobGluazAsIDApOwogKyAgICAgIHhmcmVlIChsaW5rMCk7Ci0gCi0tICAg ICAgaWYgKHJldHZhbCAhPSBOVUxMICYmICFidWlsZF9pZF92ZXJpZnkgKHJldHZhbCwgYnVpbGRf aWQpKQorKwogKyAgICAgIGlmIChsaW5rX2FsbCA9PSBOVUxMKQotKwlsaW5rX2FsbCA9IHhzdHJk dXAgKGxpbmswX3Jlc29sdmVkKTsKKysJbGlua19hbGwgPSBsaW5rMF9yZXNvbHZlZDsKICsgICAg ICBlbHNlCi0gCXsKLS0JICB4ZnJlZSAocmV0dmFsKTsKLS0JICByZXR2YWwgPSBOVUxMOworKwl7 CiArCSAgc2l6ZV90IGxlbl9vcmlnID0gc3RybGVuIChsaW5rX2FsbCk7CiArCiArCSAgbGlua19h bGwgPSB4cmVhbGxvYyAobGlua19hbGwsCkBAIC03NzMsMTYgKzkzNSwxNyBAQCBJbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2VsZnJlYWQuYwogKwkgIC8qIFVzZSB3aGl0ZXNwYWNl IGluc3RlYWQgb2YgRElSTkFNRV9TRVBBUkFUT1IgdG8gYmUgY29tcGF0aWJsZSB3aXRoCiArCSAg ICAgaXRzIHBvc3NpYmxlIHVzZSBhcyBhbiBhcmd1bWVudCBmb3IgaW5zdGFsbGF0aW9uIGNvbW1h bmQuICAqLwogKwkgIGxpbmtfYWxsW2xlbl9vcmlnXSA9ICcgJzsKLSsKKyAKKy0gICAgICBnZGJf YmZkX3VucmVmIChhYmZkKTsKKy0gICAgICBhYmZkID0gTlVMTDsKICsJICBzdHJjcHkgKCZsaW5r X2FsbFtsZW5fb3JpZyArIDFdLCBsaW5rMF9yZXNvbHZlZCk7Ci0gCX0KLSsgICAgICB4ZnJlZSAo bGluazBfcmVzb2x2ZWQpOworKwkgIHhmcmVlIChsaW5rMF9yZXNvbHZlZCk7CisrCX0KICsgICAg fQotIAorKwogKyAgaWYgKGxpbmtfcmV0dXJuICE9IE5VTEwpCiArICAgIHsKLSAgICAgICBpZiAo cmV0dmFsICE9IE5VTEwpCi0tCWJyZWFrOworKyAgICAgIGlmIChhYmZkICE9IE5VTEwpCiArCXsK ICsJICAqbGlua19yZXR1cm4gPSBsaW5rOwogKwkgIGxpbmsgPSBOVUxMOwpAQCAtNzk3LDkgKzk2 MCwyNCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2VsZnJlYWQuYwogKyAg eGZyZWUgKGxpbmtfYWxsKTsKICAKICAgIGRvX2NsZWFudXBzIChiYWNrX3RvKTsKLSAgIHJldHVy biByZXR2YWw7CisgICByZXR1cm4gYWJmZDsKICB9CiAgCisrY2hhciAqCisrYnVpbGRfaWRfdG9f ZmlsZW5hbWUgKGNvbnN0IHN0cnVjdCBlbGZfYnVpbGRfaWQgKmJ1aWxkX2lkLCBjaGFyICoqbGlu a19yZXR1cm4pCisreworKyAgYmZkICphYmZkOworKyAgY2hhciAqcmVzdWx0OworKyAgCisrICBh YmZkID0gYnVpbGRfaWRfdG9fZGVidWdfYmZkIChidWlsZF9pZC0+c2l6ZSwgYnVpbGRfaWQtPmRh dGEsIGxpbmtfcmV0dXJuLCAwKTsKKysgIGlmIChhYmZkID09IE5VTEwpCisrICAgIHJldHVybiBO VUxMOworKworKyAgcmVzdWx0ID0geHN0cmR1cCAoYmZkX2dldF9maWxlbmFtZSAoYWJmZCkpOwor KyAgZ2RiX2JmZF91bnJlZiAoYWJmZCk7CisrICByZXR1cm4gcmVzdWx0OworK30KKysKICsvKiBU aGlzIE1JU1NJTkdfRklMRVBBSVJfSEFTSCB0cmFja2VyIGlzIHVzZWQgb25seSBmb3IgdGhlIGR1 cGxpY2l0ZSBtZXNzYWdlcwogKyAgICAgVHJ5IHRvIGluc3RhbGwgdGhlIGhhc2ggZmlsZSAuLi4K ICsgICBhdm9pZGFuY2UuICAqLwpAQCAtOTM2LDcgKzExMTQsOSBAQCBJbmRleDogZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL2VsZnJlYWQuYwogKwkJCWRlYnVnKTsKICt9CiArCi0gc3RhdGlj IGNoYXIgKgorIC8qIFNlZSBidWlsZC1pZC5oLiAgKi8KKyAKKyBjaGFyICoKIC1maW5kX3NlcGFy YXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiArZmlu ZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl LAogKwkJCQkgICAgIGNoYXIgKipidWlsZF9pZF9maWxlbmFtZV9yZXR1cm4pCkBAIC05NTAsNTQg KzExMzAsMjQgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9lbGZyZWFkLmMK ICsgIGJ1aWxkX2lkID0gYnVpbGRfaWRfYmZkX3NoZHJfZ2V0IChvYmpmaWxlLT5vYmZkKTsKICAg IGlmIChidWlsZF9pZCAhPSBOVUxMKQogICAgICB7Ci0gICAgICAgY2hhciAqYnVpbGRfaWRfbmFt ZTsKKyAgICAgICBiZmQgKmFiZmQ7CiAgCi0tICAgICAgYnVpbGRfaWRfbmFtZSA9IGJ1aWxkX2lk X3RvX2RlYnVnX2ZpbGVuYW1lIChidWlsZF9pZCk7Ci0rICAgICAgYnVpbGRfaWRfbmFtZSA9IGJ1 aWxkX2lkX3RvX2ZpbGVuYW1lIChidWlsZF9pZCwgYnVpbGRfaWRfZmlsZW5hbWVfcmV0dXJuLAot KwkJCQkJICAgIDEpOworLSAgICAgIGFiZmQgPSBidWlsZF9pZF90b19kZWJ1Z19iZmQgKGJ1aWxk X2lkLT5zaXplLCBidWlsZF9pZC0+ZGF0YSk7CisrICAgICAgYWJmZCA9IGJ1aWxkX2lkX3RvX2Rl YnVnX2JmZCAoYnVpbGRfaWQtPnNpemUsIGJ1aWxkX2lkLT5kYXRhLAorKwkJCQkgICAgYnVpbGRf aWRfZmlsZW5hbWVfcmV0dXJuLCAxKTsKICAgICAgICAvKiBQcmV2ZW50IGxvb3Bpbmcgb24gYSBz dHJpcHBlZCAuZGVidWcgZmlsZS4gICovCi0gICAgICAgaWYgKGJ1aWxkX2lkX25hbWUgIT0gTlVM TAotIAkgICYmIGZpbGVuYW1lX2NtcCAoYnVpbGRfaWRfbmFtZSwgb2JqZmlsZS0+bmFtZSkgPT0g MCkKLUBAIC0xMjA3LDcgKzE4NjIsNyBAQCBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVp bGRpZCAoc3RyCi0gCSAgeGZyZWUgKGJ1aWxkX2lkX25hbWUpOwotIAl9Ci0gICAgICAgZWxzZSBp ZiAoYnVpbGRfaWRfbmFtZSAhPSBOVUxMKQotLSAgICAgICAgcmV0dXJuIGJ1aWxkX2lkX25hbWU7 Ci0rCXJldHVybiBidWlsZF9pZF9uYW1lOworICAgICAgIGlmIChhYmZkICE9IE5VTEwKKyAJICAm JiBmaWxlbmFtZV9jbXAgKGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQpLAorQEAgLTE2NiwzICs4Mzks MjEgQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0cgogICAgICB9CiAg ICByZXR1cm4gTlVMTDsKICB9Ci1AQCAtMTQ0NSw5ICsyMTAwLDEwIEBAIGVsZl9zeW1maWxlX3Jl YWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWwKLSAJICAgJiYgb2JqZmlsZS0+c2VwYXJhdGVfZGVi dWdfb2JqZmlsZSA9PSBOVUxMCi0gCSAgICYmIG9iamZpbGUtPnNlcGFyYXRlX2RlYnVnX29iamZp bGVfYmFja2xpbmsgPT0gTlVMTCkKLSAgICAgewotLSAgICAgIGNoYXIgKmRlYnVnZmlsZTsKLSsg ICAgICBjaGFyICpkZWJ1Z2ZpbGUsICpidWlsZF9pZF9maWxlbmFtZTsKLSAKLS0gICAgICBkZWJ1 Z2ZpbGUgPSBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAob2JqZmlsZSk7Ci0r ICAgICAgZGVidWdmaWxlID0gZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKG9i amZpbGUsCi0rCQkJCQkJICAgICAgICZidWlsZF9pZF9maWxlbmFtZSk7Ci0gCi0gICAgICAgaWYg KGRlYnVnZmlsZSA9PSBOVUxMKQotIAlkZWJ1Z2ZpbGUgPSBmaW5kX3NlcGFyYXRlX2RlYnVnX2Zp bGVfYnlfZGVidWdsaW5rIChvYmpmaWxlKTsKLUBAIC0xNDYxLDYgKzIxMTcsMTIgQEAgZWxmX3N5 bWZpbGVfcmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbAotIAkgIHN5bWJvbF9maWxlX2FkZF9z ZXBhcmF0ZSAoYWJmZCwgc3ltZmlsZV9mbGFncywgb2JqZmlsZSk7Ci0gCSAgZG9fY2xlYW51cHMg KGNsZWFudXApOwotIAl9Ci0rICAgICAgLyogQ2hlY2sgaWYgYW55IHNlcGFyYXRlIGRlYnVnIGlu Zm8gaGFzIGJlZW4gZXh0cmFjdGVkIG91dC4gICovCi0rICAgICAgZWxzZSBpZiAoYmZkX2dldF9z ZWN0aW9uX2J5X25hbWUgKG9iamZpbGUtPm9iZmQsICIuZ251X2RlYnVnbGluayIpCi0rCSAgICAg ICAhPSBOVUxMKQotKwlkZWJ1Z19wcmludF9taXNzaW5nIChvYmpmaWxlLT5uYW1lLCBidWlsZF9p ZF9maWxlbmFtZSk7CiArCi0rICAgICAgeGZyZWUgKGJ1aWxkX2lkX2ZpbGVuYW1lKTsKLSAgICAg fQotIH0KLSAKLUBAIC0xNzkwLDQgKzI0NTIsMTYgQEAgX2luaXRpYWxpemVfZWxmcmVhZCAodm9p ZCkKLSAKLSAgIGVsZl9vYmpmaWxlX2dudV9pZnVuY19jYWNoZV9kYXRhID0gcmVnaXN0ZXJfb2Jq ZmlsZV9kYXRhICgpOwotICAgZ251X2lmdW5jX2Zuc19wID0gJmVsZl9nbnVfaWZ1bmNfZm5zOwor K2V4dGVybiB2b2lkIF9pbml0aWFsaXplX2J1aWxkX2lkICh2b2lkKTsKICsKKyt2b2lkCisrX2lu aXRpYWxpemVfYnVpbGRfaWQgKHZvaWQpCisrewogKyAgYWRkX3NldHNob3dfemludGVnZXJfY21k ICgiYnVpbGQtaWQtdmVyYm9zZSIsIG5vX2NsYXNzLCAmYnVpbGRfaWRfdmVyYm9zZSwKICsJCQkg ICAgXygiXAogK1NldCBkZWJ1Z2dpbmcgbGV2ZWwgb2YgdGhlIGJ1aWxkLWlkIGxvY2F0b3IuIiks IF8oIlwKQEAgLTEwMDksMTE2ICsxMTU5LDQyIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvZWxmcmVhZC5jCiArCQkJICAgICZzZXRsaXN0LCAmc2hvd2xpc3QpOwogKwogKyAg b2JzZXJ2ZXJfYXR0YWNoX2V4ZWN1dGFibGVfY2hhbmdlZCAoZGVidWdfcHJpbnRfZXhlY3V0YWJs ZV9jaGFuZ2VkKTsKLSB9Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3N5bWZp bGUuaAorK30KK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9idWlsZC1pZC5oCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvc3ltZmlsZS5oCTIw MTMtMDgtMDIgMTc6MDc6MTcuODg2NzM5NTEzICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL3N5bWZpbGUuaAkyMDEzLTA4LTAyIDE3OjA3OjI4LjQ0Njc1MzMwOCArMDIwMAot QEAgLTU5Nyw2ICs1OTcsMTIgQEAgdm9pZCBmcmVlX3N5bWZpbGVfc2VnbWVudF9kYXRhIChzdHJ1 Y3QgcwotIAotIGV4dGVybiBzdHJ1Y3QgY2xlYW51cCAqaW5jcmVtZW50X3JlYWRpbmdfc3ltdGFi ICh2b2lkKTsKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2J1aWxkLWlkLmgJMjAx NC0wMS0yNyAwMjo1Nzo1My4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3 L2dkYi9idWlsZC1pZC5oCTIwMTQtMDItMDYgMTY6NDY6NTIuMTE0NjQ2MzM1ICswMTAwCitAQCAt MzIsMTMgKzMyLDE4IEBAIGV4dGVybiBpbnQgYnVpbGRfaWRfdmVyaWZ5IChiZmQgKmFiZmQsCisg ICAgdGhlIGNhbGxlci4gICovCiAgCi0rLyogYnVpbGQtaWQgc3VwcG9ydC4gICovCi0rZXh0ZXJu IHN0cnVjdCBlbGZfYnVpbGRfaWQgKmJ1aWxkX2lkX2FkZHJfZ2V0IChDT1JFX0FERFIgYWRkcik7 Ci0rZXh0ZXJuIGNoYXIgKmJ1aWxkX2lkX3RvX2ZpbGVuYW1lIChjb25zdCBzdHJ1Y3QgZWxmX2J1 aWxkX2lkICpidWlsZF9pZCwKLSsJCQkJICAgY2hhciAqKmxpbmtfcmV0dXJuLCBpbnQgYWRkX2Rl YnVnX3N1ZmZpeCk7Ci0rZXh0ZXJuIHZvaWQgZGVidWdfcHJpbnRfbWlzc2luZyAoY29uc3QgY2hh ciAqYmluYXJ5LCBjb25zdCBjaGFyICpkZWJ1Zyk7CisgZXh0ZXJuIGJmZCAqYnVpbGRfaWRfdG9f ZGVidWdfYmZkIChzaXplX3QgYnVpbGRfaWRfbGVuLAorLQkJCQkgICBjb25zdCBiZmRfYnl0ZSAq YnVpbGRfaWQpOworKwkJCQkgICBjb25zdCBiZmRfYnl0ZSAqYnVpbGRfaWQsIGNoYXIgKipsaW5r X3JldHVybiwKKysJCQkJICAgaW50IGFkZF9kZWJ1Z19zdWZmaXgpOwogKwotIC8qIEZyb20gZHdh cmYycmVhZC5jICovCisrZXh0ZXJuIGNoYXIgKmJ1aWxkX2lkX3RvX2ZpbGVuYW1lIChjb25zdCBz dHJ1Y3QgZWxmX2J1aWxkX2lkICpidWlsZF9pZCwKKysJCQkJICAgY2hhciAqKmxpbmtfcmV0dXJu KTsKICAKLSAvKiBOYW1lcyBmb3IgYSBkd2FyZjIgZGVidWdnaW5nIHNlY3Rpb24uICBUaGUgZmll bGQgTk9STUFMIGlzIHRoZSBub3JtYWwKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9n ZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTMtMDgtMDIgMTc6MDc6 MTcuODg2NzM5NTEzICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3Rlc3Rz dWl0ZS9saWIvZ2RiLmV4cAkyMDEzLTA4LTAyIDE3OjA3OjI4LjQ0Njc1MzMwOCArMDIwMAotQEAg LTE0ODIsNiArMTQ4MiwxNiBAQCBwcm9jIGRlZmF1bHRfZ2RiX3N0YXJ0IHsgfSB7Ci0gCSAgICB3 YXJuaW5nICJDb3VsZG4ndCBzZXQgdGhlIHdpZHRoIHRvIDAuIgotIAl9Ci0gICAgIH0KLSsgICAg IyBUdXJuIG9mZiB0aGUgbWlzc2luZyB3YXJuaW5ncyBhcyB0aGUgdGVzdHN1aXRlIGRvZXMgbm90 IGV4cGVjdCBpdC4KLSsgICAgc2VuZF9nZGIgInNldCBidWlsZC1pZC12ZXJib3NlIDBcbiIKLSsg ICAgZ2RiX2V4cGVjdCAxMCB7Ci0rCS1yZSAiJGdkYl9wcm9tcHQgJCIgewotKwkgICAgdmVyYm9z ZSAiRGlzYWJsZWQgdGhlIG1pc3NpbmcgZGVidWcgaW5mb3Mgd2FybmluZ3MuIiAyCi0rCX0KLSsJ dGltZW91dCB7Ci0rCSAgICB3YXJuaW5nICJDb3VsZCBub3QgZGlzYWJsZSB0aGUgbWlzc2luZyBk ZWJ1ZyBpbmZvcyB3YXJuaW5ncy4uIgotKwl9Ci0rICAgIH0KLSAgICAgcmV0dXJuIDAKLSB9Cisg LyogRmluZCB0aGUgc2VwYXJhdGUgZGVidWcgZmlsZSBmb3IgT0JKRklMRSwgYnkgdXNpbmcgdGhl IGJ1aWxkLWlkCisgICAgYXNzb2NpYXRlZCB3aXRoIE9CSkZJTEUncyBCRkQuICBJZiBzdWNjZXNz ZnVsLCByZXR1cm5zIGEgbWFsbG9jJ2QKKyAgICBmaWxlIG5hbWUgZm9yIHRoZSBzZXBhcmF0ZSBk ZWJ1ZyBmaWxlLiAgVGhlIGNhbGxlciBtdXN0IGZyZWUgdGhpcy4KKyAgICBPdGhlcndpc2UsIHJl dHVybnMgTlVMTC4gICovCisgCistZXh0ZXJuIGNoYXIgKmZpbmRfc2VwYXJhdGVfZGVidWdfZmls ZV9ieV9idWlsZGlkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSk7CisrZXh0ZXJuIGNoYXIgKmZp bmRfc2VwYXJhdGVfZGVidWdfZmlsZV9ieV9idWlsZGlkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmls ZSwKKysJCQkJCSAgICAgICBjaGFyICoqYnVpbGRfaWRfZmlsZW5hbWVfcmV0dXJuKTsKICAKLUlu ZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0 LmV4cAorICNlbmRpZiAvKiBCVUlMRF9JRF9IICovCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvZHdhcmYycmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDEzLTA4LTAyIDE3OjA3 OjE3Ljg4NjczOTUxMyArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90ZXN0 c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTMtMDgtMDIgMTc6MDc6MjguNDQ3NzUzMzEwICsw MjAwCi1AQCAtMjEyLDYgKzIxMiwxNiBAQCBwcm9jIGRlZmF1bHRfbWlfZ2RiX3N0YXJ0IHsgYXJn cyB9IHsKLSAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNldCB0aGUgd2lkdGggdG8gMC4iCi0gCX0K Ky0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE0LTAyLTA2 IDE2OjQ2OjUxLjgwOTY0NTk5NSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2R3 YXJmMnJlYWQuYwkyMDE0LTAyLTA2IDE2OjQ5OjU1LjY3OTg1MDQxNCArMDEwMAorQEAgLTI0Mjks NyArMjQyOSw3IEBAIGR3YXJmMl9nZXRfZHd6X2ZpbGUgKHZvaWQpCiAgICAgIH0KLSsgICAgIyBU dXJuIG9mZiB0aGUgbWlzc2luZyB3YXJuaW5ncyBhcyB0aGUgdGVzdHN1aXRlIGRvZXMgbm90IGV4 cGVjdCBpdC4KLSsgICAgc2VuZF9nZGIgIjE5MC1nZGItc2V0IGJ1aWxkLWlkLXZlcmJvc2UgMFxu IgotKyAgICBnZGJfZXhwZWN0IDEwIHsKLSsJLXJlICIuKjE5MC1nZGItc2V0IGJ1aWxkLWlkLXZl cmJvc2UgMFxyXG4xOTBcXFxeZG9uZVxyXG4kbWlfZ2RiX3Byb21wdCQiIHsKLSsJICAgIHZlcmJv c2UgIkRpc2FibGVkIHRoZSBtaXNzaW5nIGRlYnVnIGluZm9zIHdhcm5pbmdzLiIgMgotKwl9Ci0r CXRpbWVvdXQgewotKwkgICAgd2FybmluZyAiQ291bGQgbm90IGRpc2FibGUgdGhlIG1pc3Npbmcg ZGVidWcgaW5mb3Mgd2FybmluZ3MuLiIKLSsJfQotKyAgICB9Ci0gICAgICMgSWYgYWxsb3dpbmcg dGhlIGluZmVyaW9yIHRvIGhhdmUgaXRzIG93biBQVFkgdGhlbiBhc3NpZ24gdGhlIGluZmVyaW9y Ci0gICAgICMgaXRzIG93biB0ZXJtaW5hbCBkZXZpY2UgaGVyZS4KLSAgICAgaWYgeyAkc2VwYXJh dGVfaW5mZXJpb3JfcHR5IH0gewotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9v YmpmaWxlcy5oCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9n ZGIvb2JqZmlsZXMuaAkyMDEzLTA4LTAyIDE3OjA3OjE3Ljg4NjczOTUxMyArMDIwMAotKysrIGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9vYmpmaWxlcy5oCTIwMTMtMDgtMDIgMTc6MDc6Mjgu NDQ3NzUzMzEwICswMjAwCi1AQCAtNDI5LDYgKzQyOSwxMCBAQCBzdHJ1Y3Qgb2JqZmlsZQotIAot ICNkZWZpbmUgT0JKRl9NQUlOTElORSAoMSA8PCA1KQotIAotKy8qIFRoaXMgZmlsZSB3YXMgbG9h ZGVkIGFjY29yZGluZyB0byB0aGUgQlVJTERfSURfQ09SRV9MT0FEUyBydWxlcy4gICovCi0rCi0r I2RlZmluZSBPQkpGX0JVSUxEX0lEX0NPUkVfTE9BREVEICgxIDw8IDEyKQotKwotIC8qIFRoZSBv YmplY3QgZmlsZSB0aGF0IGNvbnRhaW5zIHRoZSBydW50aW1lIGNvbW1vbiBtaW5pbWFsIHN5bWJv bHMKLSAgICBmb3IgU3VuT1M0LiAgTm90ZSB0aGF0IHRoaXMgb2JqZmlsZSBoYXMgbm8gYXNzb2Np YXRlZCBCRkQuICAqLwogIAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAkyMDEz LTA4LTAyIDE3OjA3OjE3Ljg4NjczOTUxMyArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTMtMDgtMDIgMTc6MDc6 MjguNDQ3NzUzMzEwICswMjAwCi1AQCAtMjU1LDMgKzI1NSwzMyBAQCBpZiAhW2lzX3JlbW90ZSB0 YXJnZXRdIHsKKyAgIGlmIChkd3pfYmZkID09IE5VTEwpCistICAgIGR3el9iZmQgPSBidWlsZF9p ZF90b19kZWJ1Z19iZmQgKGJ1aWxkaWRfbGVuLCBidWlsZGlkKTsKKysgICAgZHd6X2JmZCA9IGJ1 aWxkX2lkX3RvX2RlYnVnX2JmZCAoYnVpbGRpZF9sZW4sIGJ1aWxkaWQsIE5VTEwsIDEpOwogIAot ICAgICBnZGJfZXhpdAotIH0KLSsKLSsKLSsjIFRlc3QgYXV0by1sb2FkaW5nIG9mIGJpbmFyeSBm aWxlcyB0aHJvdWdoIGJ1aWxkLWlkIGZyb20gdGhlIGNvcmUgZmlsZS4KLStzZXQgYnVpbGRpZCBb YnVpbGRfaWRfZGVidWdfZmlsZW5hbWVfZ2V0ICRiaW5maWxlXQotK3NldCB3aG9sZXRlc3QgImJp bmZpbGUgZm91bmQgYnkgYnVpbGQtaWQiCi0raWYgeyRidWlsZGlkID09ICIifSB7Ci0rICAgIHVu dGVzdGVkICIkd2hvbGV0ZXN0IChiaW5hcnkgaGFzIG5vIGJ1aWxkLWlkKSIKLSt9IGVsc2Ugewot KyAgICBnZGJfZXhpdAotKyAgICBnZGJfc3RhcnQKLSsKLSsgICAgcmVnc3ViIHtcLmRlYnVnJH0g JGJ1aWxkaWQge30gYnVpbGRpZAotKyAgICBzZXQgZGVidWdkaXIgJHtvYmpkaXJ9LyR7c3ViZGly fS8ke3Rlc3RmaWxlfS1kZWJ1Z2RpcgotKyAgICBmaWxlIGRlbGV0ZSAtZm9yY2UgLS0gJGRlYnVn ZGlyCi0rICAgIGZpbGUgbWtkaXIgJGRlYnVnZGlyL1tmaWxlIGRpcm5hbWUgJGJ1aWxkaWRdCi0r ICAgIGZpbGUgY29weSAkYmluZmlsZSAkZGVidWdkaXIvJGJ1aWxkaWQKLSsKLSsgICAgc2V0IHRl c3QgInNob3cgZGVidWctZmlsZS1kaXJlY3RvcnkiCi0rICAgIGdkYl90ZXN0X211bHRpcGxlICR0 ZXN0ICR0ZXN0IHsKLSsJLXJlICJUaGUgZGlyZWN0b3J5IHdoZXJlIHNlcGFyYXRlIGRlYnVnIHN5 bWJvbHMgYXJlIHNlYXJjaGVkIGZvciBpcyBcIiguKilcIlxcLlxyXG4kZ2RiX3Byb21wdCAkIiB7 Ci0rCSAgICBzZXQgZGVidWdkaXJfb3JpZyAkZXhwZWN0X291dCgxLHN0cmluZykKLSsJICAgIHBh c3MgJHRlc3QKLSsJfQotKyAgICB9Ci0rICAgIGdkYl90ZXN0X25vX291dHB1dCAic2V0IGRlYnVn LWZpbGUtZGlyZWN0b3J5ICRkZWJ1Z2RpcjokZGVidWdkaXJfb3JpZyIgInNldCBkZWJ1Zy1maWxl LWRpcmVjdG9yeSIKLSsgICAgZ2RiX3Rlc3QgInNob3cgYnVpbGQtaWQtY29yZS1sb2FkcyIge1do ZXRoZXIgQ09SRS1GSUxFIGxvYWRzIHRoZSBidWlsZC1pZCBhc3NvY2lhdGVkIGZpbGVzIGF1dG9t YXRpY2FsbHkgaXMgb25cLn0KLSsgICAgZ2RiX3Rlc3QgImNvcmUtZmlsZSAkY29yZWZpbGUiICJc clxuUHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggLioiICJjb3JlLWZpbGUgd2l0aG91dCBleGVjdXRh YmxlIgotKyAgICBnZGJfdGVzdCAiaW5mbyBmaWxlcyIgIkxvY2FsIGV4ZWMgZmlsZTpcclxuXFsg XHRcXSpgW3N0cmluZ190b19yZWdleHAgJGRlYnVnZGlyLyRidWlsZGlkXScsIGZpbGUgdHlwZSAu KiIKLSsgICAgcGFzcyAkd2hvbGV0ZXN0Ci0rfQorICAgaWYgKGR3el9iZmQgPT0gTlVMTCkKKyAg ICAgZXJyb3IgKF8oImNvdWxkIG5vdCBmaW5kICcuZ251X2RlYnVnYWx0bGluaycgZmlsZSBmb3Ig JXMiKSwKCmRpZmYgLS1naXQgYS9nZGItNi42LWJ6MjM1MTk3LWZvcmstZGV0YWNoLWluZm8ucGF0 Y2ggYi9nZGItNi42LWJ6MjM1MTk3LWZvcmstZGV0YWNoLWluZm8ucGF0Y2gKaW5kZXggZDcyNjNm Zi4uZDZkOTQxNiAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1iejIzNTE5Ny1mb3JrLWRldGFjaC1pbmZv LnBhdGNoCisrKyBiL2dkYi02LjYtYnoyMzUxOTctZm9yay1kZXRhY2gtaW5mby5wYXRjaApAQCAt MywxMiArMywxMiBAQAogCVBvcnQgdG8gR0RCLTYuOHByZS4KIAlSZW1vdmUgdGhlIGBbJyBjaGFy YWN0ZXIgZnJvbSB0aGUgR0RCLTYuOCBkZWZhdWx0IG1lc3NhZ2UuCiAKLUluZGV4OiBnZGItNy4y LjUwLjIwMTEwMzIwL2dkYi9saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcv Z2RiL2xpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDExMDMyMC5vcmln L2dkYi9saW51eC1uYXQuYwkyMDExLTAzLTIwIDE2OjU5OjUxLjAwMDAwMDAwMCArMDEwMAotKysr IGdkYi03LjIuNTAuMjAxMTAzMjAvZ2RiL2xpbnV4LW5hdC5jCTIwMTEtMDMtMjAgMTY6NTk6NTEu MDAwMDAwMDAwICswMTAwCi1AQCAtNzE2LDcgKzcxNiw3IEBAIGhvbGRpbmcgdGhlIGNoaWxkIHN0 b3BwZWQuICBUcnkgXCJzZXQgZGUKLSAJICAgICAgcmVtb3ZlX2JyZWFrcG9pbnRzX3BpZCAoR0VU X1BJRCAoaW5mZXJpb3JfcHRpZCkpOworLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIv bGludXgtbmF0LmMJMjAxNC0wMi0wNCAyMzo0NzozOS4yNzUwMzQ0OTEgKzAxMDAKKysrKyBnZGIt Ny42LjkwLjIwMTQwMTI3L2dkYi9saW51eC1uYXQuYwkyMDE0LTAyLTA0IDIzOjQ4OjExLjk0MzA3 NDEzMiArMDEwMAorQEAgLTQyNiw3ICs0MjYsNyBAQCBob2xkaW5nIHRoZSBjaGlsZCBzdG9wcGVk LiAgVHJ5IFwic2V0IGRlCisgCSAgICAgIHJlbW92ZV9icmVha3BvaW50c19waWQgKHB0aWRfZ2V0 X3BpZCAoaW5mZXJpb3JfcHRpZCkpOwogIAkgICAgfQogIAogLQkgIGlmIChpbmZvX3ZlcmJvc2Ug fHwgZGVidWdfbGludXhfbmF0KQpAQCAtMTYsMTAgKzE2LDEwIEBAIEluZGV4OiBnZGItNy4yLjUw LjIwMTEwMzIwL2dkYi9saW51eC1uYXQuYwogIAkgICAgewogIAkgICAgICB0YXJnZXRfdGVybWlu YWxfb3VycyAoKTsKICAJICAgICAgZnByaW50Zl9maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKLUluZGV4 OiBnZGItNy4yLjUwLjIwMTEwMzIwL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZm9yay1kZXRhY2gu YworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3Jr LWRldGFjaC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMi41MC4yMDExMDMyMC9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2ZvcmstZGV0YWNoLmMJMjAxMS0wMy0yMCAxNjo1OTo1MS4wMDAwMDAwMDAgKzAxMDAK KysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZm9yay1kZXRh Y2guYwkyMDE0LTAyLTA0IDIzOjQ3OjM5LjI3NTAzNDQ5MSArMDEwMAogQEAgLTAsMCArMSw1NyBA QAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiAr CkBAIC03OCwxMCArNzgsMTAgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAzMjAvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9mb3JrLWRldGFjaC5jCiArICAgIH0KICsgIHJldHVybiAwOwogK30KLUlu ZGV4OiBnZGItNy4yLjUwLjIwMTEwMzIwL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZm9yay1kZXRh Y2guZXhwCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2ZvcmstZGV0YWNoLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAw OjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjIuNTAuMjAxMTAzMjAvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9mb3JrLWRldGFjaC5leHAJMjAxMS0wMy0yMCAxNzoxMjoyMi4wMDAwMDAw MDAgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv Zm9yay1kZXRhY2guZXhwCTIwMTQtMDItMDQgMjM6NDc6MzkuMjc2MDM0NDkzICswMTAwCiBAQCAt MCwwICsxLDM2IEBACiArIyBDb3B5cmlnaHQgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KICsKCmRpZmYgLS1naXQgYS9nZGItNi42LXNjaGVkdWxlcl9sb2NraW5nLXN0ZXAtaXMt ZGVmYXVsdC5wYXRjaCBiL2dkYi02LjYtc2NoZWR1bGVyX2xvY2tpbmctc3RlcC1pcy1kZWZhdWx0 LnBhdGNoCmluZGV4IDExMzI0NDkuLjY3ZTM1YzIgMTAwNjQ0Ci0tLSBhL2dkYi02LjYtc2NoZWR1 bGVyX2xvY2tpbmctc3RlcC1pcy1kZWZhdWx0LnBhdGNoCisrKyBiL2dkYi02LjYtc2NoZWR1bGVy X2xvY2tpbmctc3RlcC1pcy1kZWZhdWx0LnBhdGNoCkBAIC0xLDggKzEsOCBAQAotSW5kZXg6IGdk Yi03LjUuNTAuMjAxMzAxMTgvZ2RiL2luZnJ1bi5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvaW5mcnVuLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy41LjUwLjIwMTMwMTE4Lm9yaWcv Z2RiL2luZnJ1bi5jCTIwMTMtMDEtMTkgMjA6NTY6MzQuMTQyOTE3NDE2ICswMTAwCi0rKysgZ2Ri LTcuNS41MC4yMDEzMDExOC9nZGIvaW5mcnVuLmMJMjAxMy0wMS0xOSAyMDo1NjozNC42NjI5MTg0 NzQgKzAxMDAKLUBAIC0xNjI4LDcgKzE2MjgsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qg c2NoZWR1bGVyX2VudW1zCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9pbmZydW4u YwkyMDE0LTAyLTA0IDIzOjQ4OjI3LjI2MjA5Mjg2OSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAx NDAxMjcvZ2RiL2luZnJ1bi5jCTIwMTQtMDItMDQgMjM6NDg6MzEuNjc0MDk2NjEzICswMTAwCitA QCAtMTYxOCw3ICsxNjE4LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHNjaGVkdWxlcl9l bnVtcwogICAgc2NoZWRsb2NrX3N0ZXAsCiAgICBOVUxMCiAgfTsKQEAgLTExLDEwICsxMSwxMCBA QCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvaW5mcnVuLmMKICBzdGF0aWMgdm9pZAog IHNob3dfc2NoZWR1bGVyX21vZGUgKHN0cnVjdCB1aV9maWxlICpmaWxlLCBpbnQgZnJvbV90dHks CiAgCQkgICAgIHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjLCBjb25zdCBjaGFyICp2YWx1ZSkK LUluZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNsaS5l eHAKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNs aS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy41LjUwLjIwMTMwMTE4Lm9yaWcvZ2RiL3Rlc3Rz dWl0ZS9nZGIubWkvbWktY2xpLmV4cAkyMDEzLTAxLTAxIDA3OjQxOjI0LjAwMDAwMDAwMCArMDEw MAotKysrIGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktY2xpLmV4 cAkyMDEzLTAxLTE5IDIwOjU2OjM0LjY2MjkxODQ3NCArMDEwMAorLS0tIGdkYi03LjYuOTAuMjAx NDAxMjcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1jbGkuZXhwCTIwMTQtMDItMDQgMjM6 NDg6MjcuMjYzMDkyODcxICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1 aXRlL2dkYi5taS9taS1jbGkuZXhwCTIwMTQtMDItMDQgMjM6NDg6MzEuNjc0MDk2NjEzICswMTAw CiBAQCAtMTYzLDcgKzE2Myw3IEBAIG1pX2V4ZWN1dGVfdG8gImV4ZWMtY29udGludWUiICJicmVh a3BvaW4KICAjIFRlc3QgdGhhdCB0aGUgdG9rZW4gaXMgb3V0cHV0IGV2ZW4gZm9yIENMSSBjb21t YW5kcwogICMgQWxzbyB0ZXN0IHRoYXQgKnN0b3BwZWQgaW5jbHVkZXMgZnJhbWUgaW5mb3JtYXRp b24uCkBAIC0yNCwxMCArMjQsMTAgQEAgSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rl c3RzdWl0ZS9nZGIubWkvbWktY2xpLmV4cAogICAgICAiMzQgbmV4dDogcnVuIgogIAogIGlmIHsh JGFzeW5jfSB7Ci1JbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2dkYi5t aS9taS1sb2dnaW5nLmV4cAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0 ZS9nZGIubWkvbWktbG9nZ2luZy5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy41LjUwLjIwMTMw MTE4Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktbG9nZ2luZy5leHAJMjAxMy0wMS0wMSAw Nzo0MToyNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi90ZXN0 c3VpdGUvZ2RiLm1pL21pLWxvZ2dpbmcuZXhwCTIwMTMtMDEtMTkgMjA6NTY6MzQuNjYyOTE4NDc0 ICswMTAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1p L21pLWxvZ2dpbmcuZXhwCTIwMTQtMDItMDQgMjM6NDg6MjcuMjYzMDkyODcxICswMTAwCisrKysg Z2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1sb2dnaW5nLmV4cAky MDE0LTAyLTA0IDIzOjQ4OjMxLjY3NDA5NjYxMyArMDEwMAogQEAgLTUzLDcgKzUzLDcgQEAgY2xv c2UgJGNoYW4KICAKICBzZXQgbWlfbG9nX3Byb21wdCAiXFsoXF1nZGJcWylcXSBcW1xyXG5cXSsi CkBAIC00NiwxNyArNDYsMTcgQEAgSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3Rz dWl0ZS9nZGIubWkvbWktbG9nZ2luZy5leHAKICAgICAgcGFzcyAiUmVkaXJlY3QgbG9nIGZpbGUg Y29udGVudHMiCiAgfSBlbHNlIHsKICAgICAgZmFpbCAiUmVkaXJlY3QgbG9nIGZpbGUgY29udGVu dHMiCi1JbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1j b25zb2xlLmV4cAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIu bWkvbWktY29uc29sZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy41LjUwLjIwMTMwMTE4Lm9y aWcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktY29uc29sZS5leHAJMjAxMy0wMS0wMSAwNzo0MToy NC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUv Z2RiLm1pL21pLWNvbnNvbGUuZXhwCTIwMTMtMDEtMTkgMjA6NTY6NTUuNzgzOTYxMTQ1ICswMTAw Ci1AQCAtNDUsNiArNDUsOSBAQCBpZiAgeyBbZ2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRp cn0vCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21p LWNvbnNvbGUuZXhwCTIwMTQtMDItMDQgMjM6NDg6MzEuNjc1MDk2NjY2ICswMTAwCisrKysgZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1jb25zb2xlLmV4cAkyMDE0 LTAyLTA0IDIzOjQ4OjU1Ljk4MTEyNzk2MyArMDEwMAorQEAgLTYwLDYgKzYwLDkgQEAgaWYgIHsg W2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LwogIAogIG1pX3J1bl90b19tYWluCiAg CiArIyB0aHJlYWQtaWQ9XCJhbGxcIiB2cy4gdGhyZWFkLWlkPVwiMVwiIGJlbG93OgogK21pX2dk Yl90ZXN0ICIyMTAtZ2RiLXNldCBzY2hlZHVsZXItbG9ja2luZyBvZmYiICIyMTBcXF5kb25lIiAi c2V0IHNjaGVkdWxlci1sb2NraW5nIG9mZiIKICsKLSAjIE5leHQgb3ZlciB0aGUgaGVsbG8oKSBj YWxsIHdoaWNoIHdpbGwgcHJvZHVjZSBsb3RzIG9mIG91dHB1dAotIG1pX2dkYl90ZXN0ICIyMjAt ZXhlYy1uZXh0IiBcCi0gCSAgICAiMjIwXFxecnVubmluZyhcclxuXFwqcnVubmluZyx0aHJlYWQt aWQ9XCJhbGxcIik/IiBcCisgIyBUaGUgb3V0cHV0IHdlIGdldCBmcm9tIHRoZSB0YXJnZXQgZGVw ZW5kcyBvbiBob3cgaXQgaXMgaG9zdGVkLiAgSWYKKyAjIHdlIGFyZSBzZW1paG9zdGVkIChlLmcu LCB0aGUgc2ltIG9yIGEgcmVtb3RlIHRhcmdldCB0aGF0IHN1cHBvcnRzCisgIyB0aGUgRmlsZSBJ L08gcmVtb3RlIHByb3RvY29sIGV4dGVuc2lvbiksIHdlIHNlZSB0aGUgdGFyZ2V0IEkvTwoKZGlm ZiAtLWdpdCBhL2dkYi02LjYtc2NoZWR1bGVyX2xvY2tpbmctc3RlcC1zdy13YXRjaHBvaW50czIu cGF0Y2ggYi9nZGItNi42LXNjaGVkdWxlcl9sb2NraW5nLXN0ZXAtc3ctd2F0Y2hwb2ludHMyLnBh dGNoCmluZGV4IDRkNGZkNmIuLjc1ZGRhMWEgMTAwNjQ0Ci0tLSBhL2dkYi02LjYtc2NoZWR1bGVy X2xvY2tpbmctc3RlcC1zdy13YXRjaHBvaW50czIucGF0Y2gKKysrIGIvZ2RiLTYuNi1zY2hlZHVs ZXJfbG9ja2luZy1zdGVwLXN3LXdhdGNocG9pbnRzMi5wYXRjaApAQCAtMjEsMTEgKzIxLDExIEBA CiAKIAlQb3J0IHRvIEdEQi02LjhwcmUuCiAKLUluZGV4OiBnZGItNy41LjUwLjIwMTMwMjE1L2dk Yi9pbmZlcmlvci5oCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvaW5mZXJpb3IuaAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjUuNTAuMjAxMzAyMTUub3JpZy9nZGIvaW5mZXJpb3IuaAky MDEzLTAxLTE2IDE4OjMxOjM4LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjUuNTAuMjAxMzAy MTUvZ2RiL2luZmVyaW9yLmgJMjAxMy0wMi0xNSAyMjozMTo0Mi45OTM5NDQ5NTcgKzAxMDAKLUBA IC0xNjAsNyArMTYwLDE1IEBAIGV4dGVybiB2b2lkIHJlb3Blbl9leGVjX2ZpbGUgKHZvaWQpOwor LS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvaW5mZXJpb3IuaAkyMDE0LTAxLTI3IDIy OjA1OjI4LjgwMTg5NTM0NyArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2luZmVy aW9yLmgJMjAxNC0wMS0yNyAyMjozMzo0NS4yMzAxNTc4MTMgKzAxMDAKK0BAIC0xNTUsNyArMTU1 LDE1IEBAIGV4dGVybiB2b2lkIHJlb3Blbl9leGVjX2ZpbGUgKHZvaWQpOwogIC8qIFRoZSBgcmVz dW1lJyByb3V0aW5lIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBpbiBzcGVjaWFsIGNpcmN1bXN0YW5j ZXMuCiAgICAgTm9ybWFsbHksIHVzZSBgcHJvY2VlZCcsIHdoaWNoIGhhbmRsZXMgYSBsb3Qgb2Yg Ym9va2tlZXBpbmcuICAqLwogIApAQCAtNDIsMTEgKzQyLDExIEBAIEluZGV4OiBnZGItNy41LjUw LjIwMTMwMjE1L2dkYi9pbmZlcmlvci5oCiAgCiAgZXh0ZXJuIHB0aWRfdCB1c2VyX3Zpc2libGVf cmVzdW1lX3B0aWQgKGludCBzdGVwKTsKICAKLUluZGV4OiBnZGItNy41LjUwLjIwMTMwMjE1L2dk Yi9pbmZydW4uYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2luZnJ1bi5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuNS41MC4yMDEzMDIxNS5vcmlnL2dkYi9pbmZydW4uYwkyMDEzLTAx LTMxIDIwOjE4OjU4LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjUuNTAuMjAxMzAyMTUvZ2Ri L2luZnJ1bi5jCTIwMTMtMDItMTUgMjI6MzQ6MDcuMTMyMTQ0NTE5ICswMTAwCi1AQCAtODEsNyAr ODEsNyBAQCBzdGF0aWMgaW50IGZvbGxvd19mb3JrICh2b2lkKTsKKy0tLSBnZGItNy42LjkwLjIw MTQwMTI3Lm9yaWcvZ2RiL2luZnJ1bi5jCTIwMTQtMDEtMjcgMjI6MDU6MjguODA0ODk1MzQ5ICsw MTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvaW5mcnVuLmMJMjAxNC0wMS0yNyAyMjoz NToxMi43ODEyMjQyNzkgKzAxMDAKK0BAIC04Myw3ICs4Myw3IEBAIHN0YXRpYyBpbnQgZm9sbG93 X2ZvcmsgKHZvaWQpOwogIHN0YXRpYyB2b2lkIHNldF9zY2hlZGxvY2tfZnVuYyAoY2hhciAqYXJn cywgaW50IGZyb21fdHR5LAogIAkJCQlzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqYyk7CiAgCkBA IC01NSw3ICs1NSw3IEBAIEluZGV4OiBnZGItNy41LjUwLjIwMTMwMjE1L2dkYi9pbmZydW4uYwog IAogIHN0YXRpYyBpbnQgY3VycmVudGx5X3N0ZXBwaW5nX29yX25leHRpbmdfY2FsbGJhY2sgKHN0 cnVjdCB0aHJlYWRfaW5mbyAqdHAsCiAgCQkJCQkJICAgdm9pZCAqZGF0YSk7Ci1AQCAtMTcwOSw3 ICsxNzA5LDggQEAgdXNlcl92aXNpYmxlX3Jlc3VtZV9wdGlkIChpbnQgc3RlcCkKK0BAIC0xNjk5 LDcgKzE2OTksOCBAQCB1c2VyX3Zpc2libGVfcmVzdW1lX3B0aWQgKGludCBzdGVwKQogICAgICB9 CiAgICBlbHNlIGlmICgoc2NoZWR1bGVyX21vZGUgPT0gc2NoZWRsb2NrX29uKQogIAkgICB8fCAo c2NoZWR1bGVyX21vZGUgPT0gc2NoZWRsb2NrX3N0ZXAKQEAgLTY1LDcgKzY1LDcgQEAgSW5kZXg6 IGdkYi03LjUuNTAuMjAxMzAyMTUvZ2RiL2luZnJ1bi5jCiAgICAgIHsKICAgICAgICAvKiBVc2Vy LXNldHRhYmxlICdzY2hlZHVsZXInIG1vZGUgcmVxdWlyZXMgc29sbyB0aHJlYWQgcmVzdW1lLiAg Ki8KICAgICAgICByZXN1bWVfcHRpZCA9IGluZmVyaW9yX3B0aWQ7Ci1AQCAtMTcyNyw3ICsxNzI4 LDcgQEAgdXNlcl92aXNpYmxlX3Jlc3VtZV9wdGlkIChpbnQgc3RlcCkKK0BAIC0xNzE3LDcgKzE3 MTgsNyBAQCB1c2VyX3Zpc2libGVfcmVzdW1lX3B0aWQgKGludCBzdGVwKQogICAgIFNURVAgbm9u emVybyBpZiB3ZSBzaG91bGQgc3RlcCAoemVybyB0byBjb250aW51ZSBpbnN0ZWFkKS4KICAgICBT SUcgaXMgdGhlIHNpZ25hbCB0byBnaXZlIHRoZSBpbmZlcmlvciAoemVybyBmb3Igbm9uZSkuICAq LwogIHZvaWQKQEAgLTc0LDIzICs3NCwyMyBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDIxNS9n ZGIvaW5mcnVuLmMKICB7CiAgICBpbnQgc2hvdWxkX3Jlc3VtZSA9IDE7CiAgICBzdHJ1Y3QgY2xl YW51cCAqb2xkX2NsZWFudXBzID0gbWFrZV9jbGVhbnVwIChyZXN1bWVfY2xlYW51cHMsIDApOwot QEAgLTE3NjAsOSArMTc2MSwxMyBAQCByZXN1bWUgKGludCBzdGVwLCBlbnVtIGdkYl9zaWduYWwg c2lnKQorQEAgLTE3NTAsOSArMTc1MSwxMyBAQCByZXN1bWUgKGludCBzdGVwLCBlbnVtIGdkYl9z aWduYWwgc2lnKQogIAogICAgaWYgKGRlYnVnX2luZnJ1bikKICAgICAgZnByaW50Zl91bmZpbHRl cmVkIChnZGJfc3RkbG9nLAotLSAgICAgICAgICAgICAgICAgICAgICAgICJpbmZydW46IHJlc3Vt ZSAoc3RlcD0lZCwgc2lnbmFsPSVkKSwgIgotKyAgICAgICAgICAgICAgICAgICAgICAgICJpbmZy dW46IHJlc3VtZSAoc3RlcD0lcywgc2lnbmFsPSVkKSwgIgorLQkJCSJpbmZydW46IHJlc3VtZSAo c3RlcD0lZCwgc2lnbmFsPSVzKSwgIgorKwkJCSJpbmZydW46IHJlc3VtZSAoc3RlcD0lcywgc2ln bmFsPSVzKSwgIgogIAkJCSJ0cmFwX2V4cGVjdGVkPSVkLCBjdXJyZW50IHRocmVhZCBbJXNdIGF0 ICVzXG4iLAotLSAJCQlzdGVwLCBzaWcsIHRwLT5jb250cm9sLnRyYXBfZXhwZWN0ZWQsCistCQkJ c3RlcCwgZ2RiX3NpZ25hbF90b19zeW1ib2xfc3RyaW5nIChzaWcpLAogKwkJCShzdGVwID09IFJF U1VNRV9TVEVQX0NPTlRJTlVFCiArCQkJID8gIlJFU1VNRV9TVEVQX0NPTlRJTlVFIgogKwkJCSA6 IChzdGVwID09IFJFU1VNRV9TVEVQX1VTRVIgPyAiUkVTVU1FX1NURVBfVVNFUiIKICsJCQkJCQkg ICAgIDogIlJFU1VNRV9TVEVQX05FRURFRCIpKSwKLSsgCQkJc2lnLCB0cC0+Y29udHJvbC50cmFw X2V4cGVjdGVkLAorKwkJCWdkYl9zaWduYWxfdG9fc3ltYm9sX3N0cmluZyAoc2lnKSwKKyAJCQl0 cC0+Y29udHJvbC50cmFwX2V4cGVjdGVkLAogIAkJCXRhcmdldF9waWRfdG9fc3RyIChpbmZlcmlv cl9wdGlkKSwKICAJCQlwYWRkcmVzcyAoZ2RiYXJjaCwgcGMpKTsKLSAKLUBAIC0yMTQwLDcgKzIx NDUsNyBAQCBwcm9jZWVkIChDT1JFX0FERFIgYWRkciwgZW51bSBnZGJfc2lnbmFsCitAQCAtMjE0 Nyw3ICsyMTUyLDcgQEAgcHJvY2VlZCAoQ09SRV9BRERSIGFkZHIsIGVudW0gZ2RiX3NpZ25hbAog ICAgQ09SRV9BRERSIHBjOwogICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmFzcGFjZTsKICAgIC8q IEdEQiBtYXkgZm9yY2UgdGhlIGluZmVyaW9yIHRvIHN0ZXAgZHVlIHRvIHZhcmlvdXMgcmVhc29u cy4gICovCkBAIC05OSw3ICs5OSw3IEBAIEluZGV4OiBnZGItNy41LjUwLjIwMTMwMjE1L2dkYi9p bmZydW4uYwogIAogICAgLyogSWYgd2UncmUgc3RvcHBlZCBhdCBhIGZvcmsvdmZvcmssIGZvbGxv dyB0aGUgYnJhbmNoIHNldCBieSB0aGUKICAgICAgICJzZXQgZm9sbG93LWZvcmstbW9kZSIgY29t bWFuZDsgb3RoZXJ3aXNlLCB3ZSdsbCBqdXN0IHByb2NlZWQKLUBAIC0yMTgwLDEzICsyMTg1LDEz IEBAIHByb2NlZWQgKENPUkVfQUREUiBhZGRyLCBlbnVtIGdkYl9zaWduYWwKK0BAIC0yMTg3LDEz ICsyMTkyLDEzIEBAIHByb2NlZWQgKENPUkVfQUREUiBhZGRyLCBlbnVtIGdkYl9zaWduYWwKICAJ ICAgYWN0dWFsbHkgYmUgZXhlY3V0aW5nIHRoZSBicmVha3BvaW50IGluc24gYW55d2F5LgogIAkg ICBXZSdsbCBiZSAodW4tKWV4ZWN1dGluZyB0aGUgcHJldmlvdXMgaW5zdHJ1Y3Rpb24uICAqLwog IApAQCAtMTE1LDcgKzExNSw3IEBAIEluZGV4OiBnZGItNy41LjUwLjIwMTMwMjE1L2dkYi9pbmZy dW4uYwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKLUBAIC0yMjE3LDEzICsyMjIyLDEzIEBAIHBy b2NlZWQgKENPUkVfQUREUiBhZGRyLCBlbnVtIGdkYl9zaWduYWwKK0BAIC0yMjI1LDEzICsyMjMw LDEzIEBAIHByb2NlZWQgKENPUkVfQUREUiBhZGRyLCBlbnVtIGdkYl9zaWduYWwKICAJIGlzIHJl cXVpcmVkIGl0IHJldHVybnMgVFJVRSBhbmQgc2V0cyB0aGUgY3VycmVudCB0aHJlYWQgdG8KICAJ IHRoZSBvbGQgdGhyZWFkLiAgKi8KICAgICAgICBpZiAocHJlcGFyZV90b19wcm9jZWVkIChzdGVw KSkKQEAgLTEzMSw3ICsxMzEsNyBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDIxNS9nZGIvaW5m cnVuLmMKICAgICAgewogICAgICAgIHRwLT5jb250cm9sLnRyYXBfZXhwZWN0ZWQgPSAxOwogICAg ICAgIC8qIElmIGRpc3BsYWNlZCBzdGVwcGluZyBpcyBlbmFibGVkLCB3ZSBjYW4gc3RlcCBvdmVy IHRoZQotQEAgLTIzMTAsOSArMjMxNSwxMyBAQCBwcm9jZWVkIChDT1JFX0FERFIgYWRkciwgZW51 bSBnZGJfc2lnbmFsCitAQCAtMjMxOCw5ICsyMzIzLDEzIEBAIHByb2NlZWQgKENPUkVfQUREUiBh ZGRyLCBlbnVtIGdkYl9zaWduYWwKICAgIC8qIFJlc2V0IHRvIG5vcm1hbCBzdGF0ZS4gICovCiAg ICBpbml0X2luZndhaXRfc3RhdGUgKCk7CiAgCkBAIC0xNDcsNyArMTQ3LDcgQEAgSW5kZXg6IGdk Yi03LjUuNTAuMjAxMzAyMTUvZ2RiL2luZnJ1bi5jCiAgCiAgICAvKiBXYWl0IGZvciBpdCB0byBz dG9wIChpZiBub3Qgc3RhbmRhbG9uZSkKICAgICAgIGFuZCBpbiBhbnkgY2FzZSBkZWNvZGUgd2h5 IGl0IHN0b3BwZWQsIGFuZCBhY3QgYWNjb3JkaW5nbHkuICAqLwotQEAgLTUyNDcsMTMgKzUyNTYs MTggQEAgcHJvY2Vzc19ldmVudF9zdG9wX3Rlc3Q6CitAQCAtNTMzMiwxMyArNTM0MSwxOCBAQCBz d2l0Y2hfYmFja190b19zdGVwcGVkX3RocmVhZCAoc3RydWN0IGV4CiAgCiAgLyogSXMgdGhyZWFk IFRQIGluIHRoZSBtaWRkbGUgb2Ygc2luZ2xlLXN0ZXBwaW5nPyAgKi8KICAKQEAgLTE3MSwxMSAr MTcxLDExIEBAIEluZGV4OiBnZGItNy41LjUwLjIwMTMwMjE1L2dkYi9pbmZydW4uYwogIH0KICAK ICAvKiBSZXR1cm5zIHRydWUgaWYgYW55IHRocmVhZCAqYnV0KiB0aGUgb25lIHBhc3NlZCBpbiAi ZGF0YSIgaXMgaW4gdGhlCi1JbmRleDogZ2RiLTcuNS41MC4yMDEzMDIxNS9nZGIvbGludXgtbmF0 LmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9saW51eC1uYXQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjUuNTAuMjAxMzAyMTUub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxMy0wMi0x MyAxNTo1OTo0OS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy41LjUwLjIwMTMwMjE1L2dkYi9s aW51eC1uYXQuYwkyMDEzLTAyLTE1IDIyOjMxOjQyLjk5Nzk0NDk2NyArMDEwMAotQEAgLTI5NzEs NyArMjk3MSwxMSBAQCBzdGF0aWMgaW50CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dk Yi9saW51eC1uYXQuYwkyMDE0LTAxLTI3IDIyOjA1OjI4LjgwNjg5NTM1MCArMDEwMAorKysrIGdk Yi03LjYuOTAuMjAxNDAxMjcvZ2RiL2xpbnV4LW5hdC5jCTIwMTQtMDEtMjcgMjI6MzM6NDUuMzMw MTU3ODg5ICswMTAwCitAQCAtMjY5Nyw3ICsyNjk3LDExIEBAIHN0YXRpYyBpbnQKICBzZWxlY3Rf c2luZ2xlc3RlcF9sd3BfY2FsbGJhY2sgKHN0cnVjdCBsd3BfaW5mbyAqbHAsIHZvaWQgKmRhdGEp CiAgewogICAgaWYgKGxwLT5sYXN0X3Jlc3VtZV9raW5kID09IHJlc3VtZV9zdGVwCkBAIC0xODgs MTEgKzE4OCwxMSBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDIxNS9nZGIvbGludXgtbmF0LmMK ICAgICAgcmV0dXJuIDE7CiAgICBlbHNlCiAgICAgIHJldHVybiAwOwotSW5kZXg6IGdkYi03LjUu NTAuMjAxMzAyMTUvZ2RiL2xpbnV4LW5hdC5oCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvbGludXgtbmF0LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy41LjUwLjIwMTMwMjE1Lm9yaWcv Z2RiL2xpbnV4LW5hdC5oCTIwMTMtMDItMTMgMTU6NTk6NDkuMDAwMDAwMDAwICswMTAwCi0rKysg Z2RiLTcuNS41MC4yMDEzMDIxNS9nZGIvbGludXgtbmF0LmgJMjAxMy0wMi0xNSAyMjozMTo0Mi45 OTg5NDQ5NjkgKzAxMDAKLUBAIC03Myw4ICs3Myw4IEBAIHN0cnVjdCBsd3BfaW5mbworLS0tIGdk Yi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvbGludXgtbmF0LmgJMjAxNC0wMS0yNyAyMjowNToy OC44MDc4OTUzNTEgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9saW51eC1uYXQu aAkyMDE0LTAxLTI3IDIyOjMzOjQ1LjMzNDE1Nzg5MiArMDEwMAorQEAgLTU5LDggKzU5LDggQEAg c3RydWN0IGx3cF9pbmZvCiAgICAvKiBJZiBub24temVybywgYSBwZW5kaW5nIHdhaXQgc3RhdHVz LiAgKi8KICAgIGludCBzdGF0dXM7CiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNy10ZXN0c3VpdGUt c3RhYmxlLXJlc3VsdHMucGF0Y2ggYi9nZGItNi43LXRlc3RzdWl0ZS1zdGFibGUtcmVzdWx0cy5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzk3YzA2MS4uMDAwMDAwMAotLS0g YS9nZGItNi43LXRlc3RzdWl0ZS1zdGFibGUtcmVzdWx0cy5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDEwOCArMCwwIEBACi1nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ZpbGVpby5jOgotZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9maWxlaW8uZXhwOgotMjAwNy0xMi0wOCAgSmFuIEtyYXRvY2h2aWwg IDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JKiBnZGIuYmFzZS9maWxlaW8uYyAoUk9P VFNVQkRJUik6IE5ldyBtYWNyby4KLQkobWFpbik6IENIRElSIGludG8gUk9PVFNVQkRJUi4gIENI T1dOIFJPT1RTVUJESVIgYW5kIENIRElSIGludG8KLQlST09UU1VCRElSIGlmIHdlIGFyZSBiZWlu ZyBydW4gYXMgcm9vdC4KLQkqIGdkYi5iYXNlL2ZpbGVpby5leHA6IENoYW5nZSB0aGUgc3RhcnR1 cCBhbmQgZmluaXNoIGNsZWFudXAuCi0JQ2hhbmdlIHRoZSB0ZXN0IGZpbGUgcmVmZXJlbmNlIHRv IGJlIGludG8gdGhlIGBmaWxlaW8uZGlyJyBkaXJlY3RvcnkuCi0KLQotc291cmNlcy9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2R1bXAuZXhwOgotRm91bmQgb24gUkhFTC01LnMzOTB4LgotCi0KLWdk Yi02LjguNTAuMjAwOTAyMDkvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdXh2LmV4cDoKLXJhbmRv bSBGQUlMOiBnZGIuYmFzZS9hdXh2LmV4cDogbWF0Y2hpbmcgYXV4diBkYXRhIGZyb20gbGl2ZSBh bmQgZ2NvcmUKLQotCi1nZGItNi44LjUwLjIwMDkwMjA5L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv YW5ub3RhMS5leHA6Ci1mcmFtZXMtaW52YWxpZCBjYW4gaGFwcGVuIGFzeW5jaHJvbm91c2x5Lgot Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9m aWxlaW8uYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9maWxlaW8uYwkyMDEzLTA4LTAyIDE2OjI1OjQ5LjQ2NjEyNzA3 NCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvZmlsZWlvLmMJMjAxMy0wOC0wMiAxNjoyNjoxMS43MjQxNTY3NTAgKzAyMDAKLUBAIC01OCw2 ICs1OCw4IEBAIHN5c3RlbSAoY29uc3QgY2hhciAqIHN0cmluZyk7Ci0gMSkgSW52YWxpZCBzdHJp bmcvY29tbWFuZC4gLSAgcmV0dXJucyAxMjcuICAqLwotIHN0YXRpYyBjb25zdCBjaGFyICpzdHJl cnJubyAoaW50IGVycik7Ci0gCi0rI2RlZmluZSBST09UU1VCRElSICJmaWxlaW8uZGlyIgotKwot ICNkZWZpbmUgRklMRU5BTUUgICAgImZvby5maWxlaW8udGVzdCIKLSAjZGVmaW5lIFJFTkFNRUQg ICAgICJiYXIuZmlsZWlvLnRlc3QiCi0gI2RlZmluZSBOT05FWElTVEFOVCAibm9mb28uZmlsZWlv LnRlc3QiCi1AQCAtNTQyLDYgKzU0NCwzNyBAQCBzdHJlcnJubyAoaW50IGVycikKLSBpbnQKLSBt YWluICgpCi0gewotKyAgLyogUk9PVFNVQkRJUiBpcyBhbHJlYWR5IHByZXBhcmVkIGJ5IGZpbGVp by5leHAuICBXZSB1c2UgaXQgZm9yIGVhc3kgY2xlYW51cAotKyAgICAgKGJ5IGZpbGVpby5leHAp IGlmIHdlIGFyZSBydW4gYnkgbXVsdGlwbGUgdXNlcnMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LiAg Ki8KLSsKLSsgIGlmIChjaGRpciAoUk9PVFNVQkRJUikgIT0gMCkKLSsgICAgewotKyAgICAgIHBy aW50ZiAoImNoZGlyICIgUk9PVFNVQkRJUiAiOiAlc1xuIiwgc3RyZXJyb3IgKGVycm5vKSk7Ci0r ICAgICAgZXhpdCAoMSk7Ci0rICAgIH0KLSsKLSsgIC8qIFRoZXNlIHRlc3RzCi0rICAgICAgIE9w ZW4gZm9yIHdyaXRlIGJ1dCBubyB3cml0ZSBwZXJtaXNzaW9uIHJldHVybnMgRUFDQ0VTCi0rICAg ICAgIFVubGlua2luZyBhIGZpbGUgaW4gYSBkaXJlY3Rvcnkgdy9vIHdyaXRlIGFjY2VzcyByZXR1 cm5zIEVBQ0NFUwotKyAgICAgZmFpbCBpZiB3ZSBhcmUgYmVpbmcgcnVuIGFzIHJvb3QgLSBkcm9w IHRoZSBwcml2aWxlZ2VzIGhlcmUuICAqLwotKwotKyAgaWYgKGdldGV1aWQgKCkgPT0gMCkKLSsg ICAgewotKyAgICAgIHVpZF90IHVpZCA9IDk5OwotKwotKyAgICAgIGlmIChjaG93biAoIi4iLCB1 aWQsIHVpZCkgIT0gMCkKLSsJewotKwkgIHByaW50ZiAoImNob3duICVkLiVkICIgUk9PVFNVQkRJ UiAiOiAlc1xuIiwgKGludCkgdWlkLCAoaW50KSB1aWQsCi0rCQkgIHN0cmVycm9yIChlcnJubykp OwotKwkgIGV4aXQgKDEpOwotKwl9Ci0rICAgICAgaWYgKHNldHVpZCAodWlkKSB8fCBnZXRldWlk ICgpID09IDApCi0rCXsKLSsJICBwcmludGYgKCJzZXR1aWQgJWQ6ICVzXG4iLCAoaW50KSB1aWQs IHN0cmVycm9yIChlcnJubykpOwotKwkgIGV4aXQgKDEpOwotKwl9Ci0rICAgIH0KLSsKLSAgIC8q IERvbid0IGNoYW5nZSB0aGUgb3JkZXIgb2YgdGhlIGNhbGxzLiAgVGhleSBwYXJ0bHkgZGVwZW5k IG9uIGVhY2ggb3RoZXIgKi8KLSAgIHRlc3Rfb3BlbiAoKTsKLSAgIHRlc3Rfd3JpdGUgKCk7Ci1J bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9maWxl aW8uZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2ZpbGVpby5leHAJMjAxMy0wOC0wMiAxNjoyNTo0OS40NjcxMjcw NzUgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2ZpbGVpby5leHAJMjAxMy0wOC0wMiAxNjoyNzoxMC4xNDIyMzQ2MTggKzAyMDAKLUBAIC0z NSw4ICszNSw4IEBAIGlmIFtnZXRfY29tcGlsZXJfaW5mb10gewotICAgICByZXR1cm4gLTEKLSB9 Ci0gCi0tcmVtb3RlX2V4ZWMgYnVpbGQge3NoIC14YyB0ZXN0XCAtclwgZGlyMi5maWxlaW8udGVz dFwgJiZcIGNobW9kXCAtZlwgK3dcIGRpcjIuZmlsZWlvLnRlc3R9Ci0tcmVtb3RlX2V4ZWMgYnVp bGQge3NoIC14YyBybVwgLXJmXCAqLmZpbGVpby50ZXN0fQotK3JlbW90ZV9leGVjIGJ1aWxkIHtz aCAteGMgcm1cIC1yZlwgZmlsZWlvLmRpcn0KLStyZW1vdGVfZXhlYyBidWlsZCB7c2ggLXhjIG1r ZGlyXCAtbTc3N1wgZmlsZWlvLmRpcn0KLSAKLSBzZXQgb2xkdGltZW91dCAkdGltZW91dAotIHNl dCB0aW1lb3V0IFtleHByICIkdGltZW91dCArIDYwIl0KLUBAIC03OCw3ICs3OCw3IEBAIGdkYl90 ZXN0IGNvbnRpbnVlIFwKLSAKLSBnZGJfdGVzdCAiY29udGludWUiICIuKiIgIiIKLSAKLS1jYXRj aCAic3lzdGVtIFwiY2htb2QgLWYgLXcgbm93cnQuZmlsZWlvLnRlc3RcIiIKLStjYXRjaCAic3lz dGVtIFwiY2htb2QgLWYgLXcgZmlsZWlvLmRpci9ub3dydC5maWxlaW8udGVzdFwiIgotIAotIGdk Yl90ZXN0IGNvbnRpbnVlIFwKLSAiQ29udGludWluZ1xcLi4qb3BlbiA1Oi4qRUFDQ0VTJHN0b3Bf bXNnIiBcCi1AQCAtMjQ0LDggKzI0NCw4IEBAIGdkYl9leGl0Ci0gIyBXYWl0IHRpbGwgR0RCIHJl YWxseSBleGl0cy4KLSBzbGVlcCAxCi0gCi0tcmVtb3RlX2V4ZWMgYnVpbGQge3NoIC14YyB0ZXN0 XCAtclwgZGlyMi5maWxlaW8udGVzdFwgJiZcIGNobW9kXCAtZlwgK3dcIGRpcjIuZmlsZWlvLnRl c3R9Ci0tcmVtb3RlX2V4ZWMgYnVpbGQge3NoIC14YyBybVwgLXJmXCAqLmZpbGVpby50ZXN0fQot K3JlbW90ZV9leGVjIGJ1aWxkIHtzaCAteGMgdGVzdFwgLXJcIGZpbGVpby5kaXIvZGlyMi5maWxl aW8udGVzdFwgJiZcIGNobW9kXCAtZlwgK3dcIGZpbGVpby5kaXIvZGlyMi5maWxlaW8udGVzdH0K LStyZW1vdGVfZXhlYyBidWlsZCB7c2ggLXhjIHJtXCAtcmZcIGZpbGVpby5kaXJ9Ci0gCi0gc2V0 IHRpbWVvdXQgJG9sZHRpbWVvdXQKLSByZXR1cm4gMAoKZGlmZiAtLWdpdCBhL2dkYi03LjIuNTAt c3BhcmMtYWRkLXdvcmthcm91bmQtdG8tYnJva2VuLWRlYnVnLWZpbGVzLnBhdGNoIGIvZ2RiLTcu Mi41MC1zcGFyYy1hZGQtd29ya2Fyb3VuZC10by1icm9rZW4tZGVidWctZmlsZXMucGF0Y2gKaW5k ZXggZDUzZWYwMy4uYzU5MzdmMyAxMDA2NDQKLS0tIGEvZ2RiLTcuMi41MC1zcGFyYy1hZGQtd29y a2Fyb3VuZC10by1icm9rZW4tZGVidWctZmlsZXMucGF0Y2gKKysrIGIvZ2RiLTcuMi41MC1zcGFy Yy1hZGQtd29ya2Fyb3VuZC10by1icm9rZW4tZGVidWctZmlsZXMucGF0Y2gKQEAgLTEsOCArMSw4 IEBACi1JbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvZ2RiX2JmZC5jCitJbmRleDogZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvZ2RiX2JmZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNS41 MC4yMDEzMDExOC5vcmlnL2dkYi9nZGJfYmZkLmMJMjAxMy0wMS0xOCAyMzoxMToxOC4xNTg3MTg3 MDkgKzAxMDAKLSsrKyBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi9nZGJfYmZkLmMJMjAxMy0wMS0x OCAyMzoxMjowNi44NDE3ODc4OTMgKzAxMDAKLUBAIC0yNywxMiArMjcsMTQgQEAKKy0tLSBnZGIt Ny42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2dkYl9iZmQuYwkyMDE0LTAyLTA2IDE3OjM5OjQ2LjM3 MDA5NjI5MCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2dkYl9iZmQuYwkyMDE0 LTAyLTA2IDE3OjQwOjE0Ljk5NjEyNzI0NyArMDEwMAorQEAgLTI5LDEyICsyOSwxNCBAQAogICNp ZmRlZiBIQVZFX1pMSUJfSAogICNpbmNsdWRlIDx6bGliLmg+CiAgI2VuZGlmCkBAIC0xNSw5ICsx NSw5IEBAIEluZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi9nZGJfYmZkLmMKICAjZW5kaWYK ICsjZW5kaWYKICAKLSAvKiBBbiBvYmplY3Qgb2YgdGhpcyB0eXBlIGlzIHN0b3JlZCBpbiB0aGUg c2VjdGlvbidzIHVzZXIgZGF0YSB3aGVuCi0gICAgbWFwcGluZyBhIHNlY3Rpb24uICAqLwotQEAg LTIwNSw2ICsyMDcsNyBAQCBmcmVlX29uZV9iZmRfc2VjdGlvbiAoYmZkICphYmZkLCBhc2VjdGlv CisgdHlwZWRlZiBiZmQgKmJmZHA7CisgREVGX1ZFQ19QIChiZmRwKTsKK0BAIC0yMTAsNiArMjEy LDcgQEAgZnJlZV9vbmVfYmZkX3NlY3Rpb24gKGJmZCAqYWJmZCwgYXNlY3RpbwogIAogICAgaWYg KHNlY3QgIT0gTlVMTCAmJiBzZWN0LT5kYXRhICE9IE5VTEwpCiAgICAgIHsKQEAgLTI1LDcgKzI1 LDcgQEAgSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL2dkYl9iZmQuYwogICNpZmRlZiBI QVZFX01NQVAKICAgICAgICBpZiAoc2VjdC0+bWFwX2FkZHIgIT0gTlVMTCkKICAJewotQEAgLTIx NSw2ICsyMTgsNyBAQCBmcmVlX29uZV9iZmRfc2VjdGlvbiAoYmZkICphYmZkLCBhc2VjdGlvCitA QCAtMjIwLDYgKzIyMyw3IEBAIGZyZWVfb25lX2JmZF9zZWN0aW9uIChiZmQgKmFiZmQsIGFzZWN0 aW8KICAJfQogICAgICAgIGVsc2UKICAjZW5kaWYKQEAgLTMzLDcgKzMzLDcgQEAgSW5kZXg6IGdk Yi03LjUuNTAuMjAxMzAxMTgvZ2RiL2dkYl9iZmQuYwogIAl4ZnJlZSAoc2VjdC0+ZGF0YSk7CiAg ICAgIH0KICB9Ci1AQCAtMzYwLDYgKzM2NCw3IEBAIGdkYl9iZmRfbWFwX3NlY3Rpb24gKGFzZWN0 aW9uICpzZWN0cCwgYmYKK0BAIC0zNzEsNiArMzc1LDcgQEAgZ2RiX2JmZF9tYXBfc2VjdGlvbiAo YXNlY3Rpb24gKnNlY3RwLCBiZgogICAgaWYgKGRlc2NyaXB0b3ItPmRhdGEgIT0gTlVMTCkKICAg ICAgZ290byBkb25lOwogIApAQCAtNDEsNyArNDEsNyBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEz MDExOC9nZGIvZ2RiX2JmZC5jCiAgI2lmZGVmIEhBVkVfTU1BUAogICAgaWYgKCFiZmRfaXNfc2Vj dGlvbl9jb21wcmVzc2VkIChhYmZkLCBzZWN0cCkpCiAgICAgIHsKLUBAIC0zOTQsNiArMzk5LDcg QEAgZ2RiX2JmZF9tYXBfc2VjdGlvbiAoYXNlY3Rpb24gKnNlY3RwLCBiZgorQEAgLTQwNSw2ICs0 MTAsNyBAQCBnZGJfYmZkX21hcF9zZWN0aW9uIChhc2VjdGlvbiAqc2VjdHAsIGJmCiAgCX0KICAg ICAgfQogICNlbmRpZiAvKiBIQVZFX01NQVAgKi8KCmRpZmYgLS1naXQgYS9nZGItYXJjaGVyLnBh dGNoIGIvZ2RiLWFyY2hlci5wYXRjaAppbmRleCA5OGZmMGY2Li42Njk0ZGMwIDEwMDY0NAotLS0g YS9nZGItYXJjaGVyLnBhdGNoCisrKyBiL2dkYi1hcmNoZXIucGF0Y2gKQEAgLTIsMjAgKzIsMjAg QEAgaHR0cDovL3NvdXJjZXdhcmUub3JnL2dkYi93aWtpL1Byb2plY3RBcmNoZXIKIGh0dHA6Ly9z b3VyY2V3YXJlLm9yZy9nZGIvd2lraS9BcmNoZXJCcmFuY2hNYW5hZ2VtZW50CiAKIEdJVCBzbmFw c2hvdDoKLWNvbW1pdCBhOTgwYmUzYjljYzY2Nzc0YWRmYjlhMjVkYTgwNWY2NWNmZWQ0MjQ1Citj b21taXQgMjFjOGFjOGZhYTQyNTZmMjdkNDc1MWQ4ZjBkMmIyMThmMmQyMzJhOAogCi1icmFuY2gg amFua3JhdG9jaHZpbC9mZWRvcmEyMCAtIHRoZSBtZXJnZSBvZiBicmFuY2hlczoKK2JyYW5jaCBq YW5rcmF0b2NodmlsL2ZlZG9yYWdkYjc3IC0gdGhlIG1lcmdlIG9mIGJyYW5jaGVzOgogamFua3Jh dG9jaHZpbC92bGEKIHRyb21leS9weXRob24KIAogCiBkaWZmIC0tZ2l0IGEvUkVBRE1FLmFyY2hl ciBiL1JFQURNRS5hcmNoZXIKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi4y MTM1N2U0CitpbmRleCAwMDAwMDAwLi41YWU1ODdlCiAtLS0gL2Rldi9udWxsCiArKysgYi9SRUFE TUUuYXJjaGVyCiBAQCAtMCwwICsxLDEzIEBACi0rTWVyZ2UgZm9yIEZlZG9yYSAyMDogaHR0cDov L3BrZ3MuZmVkb3JhcHJvamVjdC5vcmcvY2dpdC9nZGIuZ2l0LworK01lcmdlIGZvciBGZWRvcmEg MjE6IGh0dHA6Ly9wa2dzLmZlZG9yYXByb2plY3Qub3JnL2NnaXQvZ2RiLmdpdC8KICsKICtqYW5r cmF0b2NodmlsL3ZsYQogK3Ryb21leS9weXRob24KQEAgLTI5LDEwICsyOSwxMCBAQCBpbmRleCAw MDAwMDAwLi4yMTM1N2U0CiAraW1wbGVtZW50YXRpb24gcGxhbjogICAgICAgICAgICAgaHR0cDov L3NvdXJjZXdhcmUub3JnL21sL2dkYi8yMDEyLTExL21zZzAwMDk0Lmh0bWwKICtleHBsYW5hdGlv biBvZiBpdHMgbWVyZ2Ugc3RhdHVzOiBodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLzIwMTEt MDMvbXNnMDAwMjEuaHRtbAogZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtl ZmlsZS5pbgotaW5kZXggOGY0ZWU5ZS4uZTkxNGRmYiAxMDA2NDQKK2luZGV4IDgyNGIyNmIuLjU2 ZjA1MmEgMTAwNjQ0CiAtLS0gYS9nZGIvTWFrZWZpbGUuaW4KICsrKyBiL2dkYi9NYWtlZmlsZS5p bgotQEAgLTEzNTEsNiArMTM1MSwxMiBAQCBzdGFtcC1oOiAkKHNyY2RpcikvY29uZmlnLmluIGNv bmZpZy5zdGF0dXMKK0BAIC0xMzcyLDYgKzEzNzIsMTIgQEAgc3RhbXAtaDogJChzcmNkaXIpL2Nv bmZpZy5pbiBjb25maWcuc3RhdHVzCiAgCSAgQ09ORklHX0xJTktTPSBcCiAgCSAgJChTSEVMTCkg Y29uZmlnLnN0YXR1cwogIApAQCAtNDYsMTAgKzQ2LDEwIEBAIGluZGV4IDhmNGVlOWUuLmU5MTRk ZmIgMTAwNjQ0CiAgCSQoU0hFTEwpIGNvbmZpZy5zdGF0dXMgLS1yZWNoZWNrCiAgCiBkaWZmIC0t Z2l0IGEvZ2RiL2FkYS1sYW5nLmMgYi9nZGIvYWRhLWxhbmcuYwotaW5kZXggZGM1ZjJiNi4uNWZl YWM0OSAxMDA2NDQKK2luZGV4IGU3MGEzM2IuLjk3N2YzZTIgMTAwNjQ0CiAtLS0gYS9nZGIvYWRh LWxhbmcuYwogKysrIGIvZ2RiL2FkYS1sYW5nLmMKLUBAIC0xMjMwOSw2ICsxMjMwOSw3IEBAIGFk YV9vcGVyYXRvcl9sZW5ndGggKGNvbnN0IHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCBwYywg aW50ICpvcGxlbnAsCitAQCAtMTI3MDMsNiArMTI3MDMsNyBAQCBhZGFfb3BlcmF0b3JfbGVuZ3Ro IChjb25zdCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcGMsIGludCAqb3BsZW5wLAogIAog IHN0YXRpYyBpbnQKICBhZGFfb3BlcmF0b3JfY2hlY2sgKHN0cnVjdCBleHByZXNzaW9uICpleHAs IGludCBwb3MsCkBAIC01Nyw3ICs1Nyw3IEBAIGluZGV4IGRjNWYyYjYuLjVmZWFjNDkgMTAwNjQ0 CiAgCQkgICAgaW50ICgqb2JqZmlsZV9mdW5jKSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHZv aWQgKmRhdGEpLAogIAkJICAgIHZvaWQgKmRhdGEpCiAgewotQEAgLTEyMzIzLDEyICsxMjMyNCwx NSBAQCBhZGFfb3BlcmF0b3JfY2hlY2sgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCBwb3Ms CitAQCAtMTI3MTcsMTIgKzEyNzE4LDE1IEBAIGFkYV9vcGVyYXRvcl9jaGVjayAoc3RydWN0IGV4 cHJlc3Npb24gKmV4cCwgaW50IHBvcywKICAJYnJlYWs7CiAgCiAgICAgICAgZGVmYXVsdDoKQEAg LTc2LDcgKzc2LDcgQEAgaW5kZXggZGM1ZjJiNi4uNWZlYWM0OSAxMDA2NDQKICAgICAgcmV0dXJu IDE7CiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL2Jsb2NrLmMgYi9nZGIvYmxvY2suYwotaW5kZXggNjQz ZTE0NC4uNzRjNTE2YiAxMDA2NDQKK2luZGV4IDJhZTZlZTIuLjM3NmExZTggMTAwNjQ0CiAtLS0g YS9nZGIvYmxvY2suYwogKysrIGIvZ2RiL2Jsb2NrLmMKIEBAIC02OTMsMyArNjkzLDIxIEBAIGJs b2NrX2l0ZXJfbWF0Y2hfbmV4dCAoY29uc3QgY2hhciAqbmFtZSwKQEAgLTEwMiw3ICsxMDIsNyBA QCBpbmRleCA2NDNlMTQ0Li43NGM1MTZiIDEwMDY0NAogKyAgcmV0dXJuIFNZTUJPTF9TWU1UQUIg KGZ1bmMpLT5vYmpmaWxlOwogK30KIGRpZmYgLS1naXQgYS9nZGIvYmxvY2suaCBiL2dkYi9ibG9j ay5oCi1pbmRleCAwMmU3ZThiLi4yOTMxNDAxIDEwMDY0NAoraW5kZXggY2ExNDNhOS4uMGYwNjVm OCAxMDA2NDQKIC0tLSBhL2dkYi9ibG9jay5oCiArKysgYi9nZGIvYmxvY2suaAogQEAgLTI3OSw0 ICsyNzksNiBAQCBleHRlcm4gc3RydWN0IHN5bWJvbCAqYmxvY2tfaXRlcl9tYXRjaF9uZXh0IChj b25zdCBjaGFyICpuYW1lLApAQCAtMTEzLDEwICsxMTMsMTAgQEAgaW5kZXggMDJlN2U4Yi4uMjkz MTQwMSAxMDA2NDQKICsKICAjZW5kaWYgLyogQkxPQ0tfSCAqLwogZGlmZiAtLWdpdCBhL2dkYi9i cmVha3BvaW50LmMgYi9nZGIvYnJlYWtwb2ludC5jCi1pbmRleCAxZTg5NDA3Li4xZjRkZTMzIDEw MDY0NAoraW5kZXggNjZhNjliNS4uOTUyZTFjNSAxMDA2NDQKIC0tLSBhL2dkYi9icmVha3BvaW50 LmMKICsrKyBiL2dkYi9icmVha3BvaW50LmMKLUBAIC0xNTYwNSw2ICsxNTYwNSwyNCBAQCBhbGxf dHJhY2Vwb2ludHMgKHZvaWQpCitAQCAtMTU3MzQsNiArMTU3MzQsMjQgQEAgYWxsX3RyYWNlcG9p bnRzICh2b2lkKQogICAgcmV0dXJuIHRwX3ZlYzsKICB9CiAgCkBAIC0xNDEsMTYgKzE0MSwxNiBA QCBpbmRleCAxZTg5NDA3Li4xZjRkZTMzIDEwMDY0NAogIAwKICAvKiBUaGlzIGhlbHAgc3RyaW5n IGlzIHVzZWQgZm9yIHRoZSBicmVhaywgaGJyZWFrLCB0YnJlYWsgYW5kIHRoYnJlYWsKICAgICBj b21tYW5kcy4gIEl0IGlzIGRlZmluZWQgYXMgYSBtYWNybyB0byBwcmV2ZW50IGR1cGxpY2F0aW9u LgotQEAgLTE2NTY4LDQgKzE2NTg2LDcgQEAgYWdlbnQtcHJpbnRmIFwicHJpbnRmIGZvcm1hdCBz dHJpbmdcIiwgYXJnMSwgYXJnMiwgYXJnMywgLi4uLCBhcmduXG5cCi0gICBhdXRvbWF0aWNfaGFy ZHdhcmVfYnJlYWtwb2ludHMgPSAxOworQEAgLTE2Njk5LDQgKzE2NzE3LDcgQEAgYWdlbnQtcHJp bnRmIFwicHJpbnRmIGZvcm1hdCBzdHJpbmdcIiwgYXJnMSwgYXJnMiwgYXJnMywgLi4uLCBhcmdu XG5cCiAgCiAgICBvYnNlcnZlcl9hdHRhY2hfYWJvdXRfdG9fcHJvY2VlZCAoYnJlYWtwb2ludF9h Ym91dF90b19wcm9jZWVkKTsKKyAgIG9ic2VydmVyX2F0dGFjaF90aHJlYWRfZXhpdCAocmVtb3Zl X3RocmVhZGVkX2JyZWFrcG9pbnRzKTsKICsjaWYgMAogKyAgb2JzZXJ2ZXJfYXR0YWNoX21hcmtf dXNlZCAoYnJlYWtwb2ludF90eXBlc19tYXJrX3VzZWQpOwogKyNlbmRpZgogIH0KIGRpZmYgLS1n aXQgYS9nZGIvYy10eXBlcHJpbnQuYyBiL2dkYi9jLXR5cGVwcmludC5jCi1pbmRleCBiZjQ1NjRm Li5lOGQwMjgxIDEwMDY0NAoraW5kZXggNGVkYzllYy4uMjkyZWRkYiAxMDA2NDQKIC0tLSBhL2dk Yi9jLXR5cGVwcmludC5jCiArKysgYi9nZGIvYy10eXBlcHJpbnQuYwogQEAgLTY4OSw3ICs2ODks MTMgQEAgY190eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAg LTE2OSw3ICsxNjksNyBAQCBpbmRleCBiZjQ1NjRmLi5lOGQwMjgxIDEwMDY0NAogIAkJCSAgICBw bG9uZ2VzdCAoaGlnaF9ib3VuZCAtIGxvd19ib3VuZCArIDEpKTsKICAJZnByaW50Zl9maWx0ZXJl ZCAoc3RyZWFtLCAoaXNfdmVjdG9yID8gIikpKSIgOiAiXSIpKTsKIGRpZmYgLS1naXQgYS9nZGIv Y2xlYW51cHMuYyBiL2dkYi9jbGVhbnVwcy5jCi1pbmRleCA4OThlNTI2Li4xOGViYWVlIDEwMDY0 NAoraW5kZXggZTUyOTFhYi4uNDgyMDk3MiAxMDA2NDQKIC0tLSBhL2dkYi9jbGVhbnVwcy5jCiAr KysgYi9nZGIvY2xlYW51cHMuYwogQEAgLTI2MSw5ICsyNjEsMTEgQEAgc2F2ZV9maW5hbF9jbGVh bnVwcyAodm9pZCkKQEAgLTE4NSwxMiArMTg1LDEyIEBAIGluZGV4IDg5OGU1MjYuLjE4ZWJhZWUg MTAwNjQ0CiAgICAqcG15X2NoYWluID0gY2hhaW47CiAgfQogZGlmZiAtLWdpdCBhL2dkYi9kYXRh LWRpcmVjdG9yeS9NYWtlZmlsZS5pbiBiL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgot aW5kZXggZGVjNjIwNy4uZmJiNGRjMCAxMDA2NDQKK2luZGV4IGU1MzUzMTYuLjQ0NGRlOWQgMTAw NjQ0CiAtLS0gYS9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4KICsrKyBiL2dkYi9kYXRh LWRpcmVjdG9yeS9NYWtlZmlsZS5pbgotQEAgLTYxLDEzICs2MSwyMSBAQCBQWVRIT05fRklMRVMg PSBcCi0gCWdkYi9wcmludGluZy5weSBcCitAQCAtNjMsMTMgKzYzLDIxIEBAIFBZVEhPTl9GSUxF UyA9IFwKICAJZ2RiL3Byb21wdC5weSBcCisgCWdkYi9jb21tYW5kL2JvdW5kX3JlZ2lzdGVycy5w eSBcCiAgCWdkYi9jb21tYW5kL19faW5pdF9fLnB5IFwKICsJZ2RiL2NvbW1hbmQvaWdub3JlX2Vy cm9ycy5weSBcCiArCWdkYi9jb21tYW5kL3BhaG9sZS5weSBcCkBAIC0yMTIsMTAgKzIxMiwxMCBA QCBpbmRleCBkZWM2MjA3Li5mYmI0ZGMwIDEwMDY0NAogIFNZU1RFTV9HREJJTklUX0RJUiA9IHN5 c3RlbS1nZGJpbml0CiAgU1lTVEVNX0dEQklOSVRfSU5TVEFMTF9ESVIgPSAkKERFU1RESVIpJChH REJfREFUQURJUikvJChTWVNURU1fR0RCSU5JVF9ESVIpCiBkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9n ZGIudGV4aW5mbyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KLWluZGV4IGNiMzkzZTguLjFkZmNhMjIg MTAwNjQ0CitpbmRleCA3NGRkY2Y1Li5jNDVlMWViIDEwMDY0NAogLS0tIGEvZ2RiL2RvYy9nZGIu dGV4aW5mbwogKysrIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwotQEAgLTEyMjEsNiArMTIyMSwxNiBA QCBmb3IgcmVtb3RlIGRlYnVnZ2luZy4KK0BAIC0xMjIyLDYgKzEyMjIsMTYgQEAgZm9yIHJlbW90 ZSBkZWJ1Z2dpbmcuCiAgUnVuIHVzaW5nIEB2YXJ7ZGV2aWNlfSBmb3IgeW91ciBwcm9ncmFtJ3Mg c3RhbmRhcmQgaW5wdXQgYW5kIG91dHB1dC4KICBAYyBGSVhNRToga2luZ2RvbiB0aGlua3MgdGhl cmUgaXMgbW9yZSB0byAtdHR5LiAgSW52ZXN0aWdhdGUuCiAgCkBAIC0yMzIsNyArMjMyLDcgQEAg aW5kZXggY2IzOTNlOC4uMWRmY2EyMiAxMDA2NDQKICBAYyByZXNvbHZlIHRoZSBzaXR1YXRpb24g b2YgdGhlc2UgZXZlbnR1YWxseQogIEBpdGVtIC10dWkKICBAY2luZGV4IEBjb2Rley0tdHVpfQot QEAgLTIzMTg5LDggKzIzMTk5LDYgQEAgY29udGFpbmluZyBAY29kZXtlbmR9LiAgRm9yIGV4YW1w bGU6CitAQCAtMjM1MjEsOCArMjM1MzEsNiBAQCBjb250YWluaW5nIEBjb2Rle2VuZH0uICBGb3Ig ZXhhbXBsZToKICAKICBAc21hbGxleGFtcGxlCiAgKEB2YWx1ZXtHREJQfSkgcHl0aG9uCkBAIC0y NDEsNyArMjQxLDcgQEAgaW5kZXggY2IzOTNlOC4uMWRmY2EyMiAxMDA2NDQKICA+cHJpbnQgMjMK ICA+ZW5kCiAgMjMKLUBAIC0yMzIwNCw2ICsyMzIxMiwxNCBAQCBjb250cm9sbGVkIHVzaW5nIEBj b2Rle3NldCBweXRob24gcHJpbnQtc3RhY2t9OiBpZiBAY29kZXtmdWxsfSwgdGhlbgorQEAgLTIz NTM2LDYgKzIzNTQ0LDE0IEBAIGNvbnRyb2xsZWQgdXNpbmcgQGNvZGV7c2V0IHB5dGhvbiBwcmlu dC1zdGFja306IGlmIEBjb2Rle2Z1bGx9LCB0aGVuCiAgZnVsbCBQeXRob24gc3RhY2sgcHJpbnRp bmcgaXMgZW5hYmxlZDsgaWYgQGNvZGV7bm9uZX0sIHRoZW4gUHl0aG9uIHN0YWNrCiAgYW5kIG1l c3NhZ2UgcHJpbnRpbmcgaXMgZGlzYWJsZWQ7IGlmIEBjb2Rle21lc3NhZ2V9LCB0aGUgZGVmYXVs dCwgb25seQogIHRoZSBtZXNzYWdlIGNvbXBvbmVudCBvZiB0aGUgZXJyb3IgaXMgcHJpbnRlZC4K QEAgLTI1NiwxNDAgKzI1NiwxMSBAQCBpbmRleCBjYjM5M2U4Li4xZGZjYTIyIDEwMDY0NAogIEBl bmQgdGFibGUKICAKICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGV4ZWN1dGUgYSBQeXRob24gc2Ny aXB0IGZyb20gdGhlIEB2YWx1ZXtHREJOfQotZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiaW50LnRl eGluZm8gYi9nZGIvZG9jL2dkYmludC50ZXhpbmZvCi1pbmRleCA2MDgwNWFkLi41NDExMDEyIDEw MDY0NAotLS0tIGEvZ2RiL2RvYy9nZGJpbnQudGV4aW5mbwotKysrIGIvZ2RiL2RvYy9nZGJpbnQu dGV4aW5mbwotQEAgLTIxNDYsNiArMjE0NiwxOCBAQCB0aW1lLCBhbmQgc28gd2UgYXR0ZW1wdCB0 byBoYW5kbGUgc3ltYm9scyBpbmNyZW1lbnRhbGx5LiAgRm9yIGluc3RhbmNlLAotIHdlIGNyZWF0 ZSBAZGZue3BhcnRpYWwgc3ltYm9sIHRhYmxlc30gY29uc2lzdGluZyBvZiBvbmx5IHNlbGVjdGVk Ci0gc3ltYm9scywgYW5kIG9ubHkgZXhwYW5kIHRoZW0gdG8gZnVsbCBzeW1ib2wgdGFibGVzIHdo ZW4gbmVjZXNzYXJ5LgotIAotK0BtZW51Ci0rKiBTeW1ib2wgUmVhZGluZzo6Ci0rKiBQYXJ0aWFs IFN5bWJvbCBUYWJsZXM6OgotKyogVHlwZXM6OgotKyogT2JqZWN0IEZpbGUgRm9ybWF0czo6Ci0r KiBEZWJ1Z2dpbmcgRmlsZSBGb3JtYXRzOjoKLSsqIEFkZGluZyBhIE5ldyBTeW1ib2wgUmVhZGVy IHRvIEdEQjo6Ci0rKiBNZW1vcnkgTWFuYWdlbWVudCBmb3IgU3ltYm9sIEZpbGVzOjoKLSsqIE1l bW9yeSBNYW5hZ2VtZW50IGZvciBUeXBlczo6Ci0rQGVuZCBtZW51Ci0rCi0rQG5vZGUgU3ltYm9s IFJlYWRpbmcKLSBAc2VjdGlvbiBTeW1ib2wgUmVhZGluZwotIAotIEBjaW5kZXggc3ltYm9sIHJl YWRpbmcKLUBAIC0yMjM4LDYgKzIyNTAsNyBAQCBzeW10YWIuICBVcG9uIHJldHVybiwgQGNvZGV7 cHN0LT5yZWFkaW59IHNob3VsZCBoYXZlIGJlZW4gc2V0IHRvIDEsIGFuZAotIHplcm8gaWYgdGhl cmUgd2VyZSBubyBzeW1ib2xzIGluIHRoYXQgcGFydCBvZiB0aGUgc3ltYm9sIGZpbGUuCi0gQGVu ZCB0YWJsZQotIAotK0Bub2RlIFBhcnRpYWwgU3ltYm9sIFRhYmxlcwotIEBzZWN0aW9uIFBhcnRp YWwgU3ltYm9sIFRhYmxlcwotIAotIEB2YWx1ZXtHREJOfSBoYXMgdGhyZWUgdHlwZXMgb2Ygc3lt Ym9sIHRhYmxlczoKLUBAIC0yMzM5LDYgKzIzNTIsNyBAQCBhbmQgcGFydGlhbCBzeW1ib2wgdGFi bGVzIGJlaGluZCBhIHNldCBvZiBmdW5jdGlvbiBwb2ludGVycyBrbm93biBhcwotIHRoZSBAZGZu e3F1aWNrIHN5bWJvbCBmdW5jdGlvbnN9LiAgVGhlc2UgYXJlIGRvY3VtZW50ZWQgaW4KLSBAZmls ZXtzeW1maWxlLmh9LgotIAotK0Bub2RlIFR5cGVzCi0gQHNlY3Rpb24gVHlwZXMKLSAKLSBAdW5u dW1iZXJlZHN1YnNlYyBGdW5kYW1lbnRhbCBUeXBlcyAoZS5nLiwgQGNvZGV7RlRfVk9JRH0sIEBj b2Rle0ZUX0JPT0xFQU59KS4KLUBAIC0yMzYxLDYgKzIzNzUsNyBAQCB0eXBlcyBtYXAgdG8gb25l IEBjb2Rle1RZUEVfQ09ERV8qfSB0eXBlLCBhbmQgYXJlIGRpc3Rpbmd1aXNoZWQgYnkKLSBvdGhl ciBtZW1iZXJzIG9mIHRoZSB0eXBlIHN0cnVjdCwgc3VjaCBhcyB3aGV0aGVyIHRoZSB0eXBlIGlz IHNpZ25lZAotIG9yIHVuc2lnbmVkLCBhbmQgaG93IG1hbnkgYml0cyBpdCB1c2VzLgotIAotK0Bh bmNob3J7QnVpbHRpbiBUeXBlc30KLSBAdW5udW1iZXJlZHN1YnNlYyBCdWlsdGluIFR5cGVzIChl LmcuLCBAY29kZXtidWlsdGluX3R5cGVfdm9pZH0sIEBjb2Rle2J1aWx0aW5fdHlwZV9jaGFyfSku Ci0gCi0gVGhlc2UgYXJlIGluc3RhbmNlcyBvZiB0eXBlIHN0cnVjdHMgdGhhdCByb3VnaGx5IGNv cnJlc3BvbmQgdG8KLUBAIC0yMzc1LDYgKzIzOTAsNyBAQCBvbmx5IG9uZSBpbnN0YW5jZSBleGlz dHMsIHdoaWxlIEBmaWxle2MtbGFuZy5jfSBidWlsZHMgYXMgbWFueQotIEBjb2Rle1RZUEVfQ09E RV9JTlR9IHR5cGVzIGFzIG5lZWRlZCwgd2l0aCBlYWNoIG9uZSBhc3NvY2lhdGVkIHdpdGgKLSBz b21lIHBhcnRpY3VsYXIgb2JqZmlsZS4KLSAKLStAbm9kZSBPYmplY3QgRmlsZSBGb3JtYXRzCi0g QHNlY3Rpb24gT2JqZWN0IEZpbGUgRm9ybWF0cwotIEBjaW5kZXggb2JqZWN0IGZpbGUgZm9ybWF0 cwotIAotQEAgLTI0NjAsNiArMjQ3Niw3IEBAIFNPTSwgd2hpY2ggaXMgYSBjcm9zcy1sYW5ndWFn ZSBBQkkpLgotIAotIFRoZSBTT00gcmVhZGVyIGlzIGluIEBmaWxle3NvbXJlYWQuY30uCi0gCi0r QG5vZGUgRGVidWdnaW5nIEZpbGUgRm9ybWF0cwotIEBzZWN0aW9uIERlYnVnZ2luZyBGaWxlIEZv cm1hdHMKLSAKLSBUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIGNoYXJhY3RlcmlzdGljcyBvZiBkZWJ1 Z2dpbmcgaW5mb3JtYXRpb24gdGhhdAotQEAgLTI1MzEsNiArMjU0OCw3IEBAIERXQVJGIDMgaXMg YW4gaW1wcm92ZWQgdmVyc2lvbiBvZiBEV0FSRiAyLgotIEBjaW5kZXggU09NIGRlYnVnZ2luZyBp bmZvCi0gTGlrZSBDT0ZGLCB0aGUgU09NIGRlZmluaXRpb24gaW5jbHVkZXMgZGVidWdnaW5nIGlu Zm9ybWF0aW9uLgotIAotK0Bub2RlIEFkZGluZyBhIE5ldyBTeW1ib2wgUmVhZGVyIHRvIEdEQgot IEBzZWN0aW9uIEFkZGluZyBhIE5ldyBTeW1ib2wgUmVhZGVyIHRvIEB2YWx1ZXtHREJOfQotIAot IEBjaW5kZXggYWRkaW5nIGRlYnVnZ2luZyBpbmZvIHJlYWRlcgotQEAgLTI1NTMsNiArMjU3MSw3 IEBAIHdpbGwgb25seSBldmVyIGJlIGltcGxlbWVudGVkIGJ5IG9uZSBvYmplY3QgZmlsZSBmb3Jt YXQgbWF5IGJlIGNhbGxlZAotIGRpcmVjdGx5LiAgVGhpcyBpbnRlcmZhY2Ugc2hvdWxkIGJlIGRl c2NyaWJlZCBpbiBhIGZpbGUKLSBAZmlsZXtiZmQvbGliQHZhcnt4eXp9Lmh9LCB3aGljaCBpcyBp bmNsdWRlZCBieSBAdmFsdWV7R0RCTn0uCi0gCi0rQG5vZGUgTWVtb3J5IE1hbmFnZW1lbnQgZm9y IFN5bWJvbCBGaWxlcwotIEBzZWN0aW9uIE1lbW9yeSBNYW5hZ2VtZW50IGZvciBTeW1ib2wgRmls ZXMKLSAKLSBNb3N0IG1lbW9yeSBhc3NvY2lhdGVkIHdpdGggYSBsb2FkZWQgc3ltYm9sIGZpbGUg aXMgc3RvcmVkIG9uCi1AQCAtMjU2NCwxMCArMjU4Myw0NSBAQCByZWxlYXNlZCB3aGVuIHRoZSBv YmpmaWxlIGlzIHVubG9hZGVkIG9yIHJlbG9hZGVkLiAgVGhlcmVmb3JlIG9uZQotIG9iamZpbGUg bXVzdCBub3QgcmVmZXJlbmNlIHN5bWJvbCBvciB0eXBlIGRhdGEgZnJvbSBhbm90aGVyIG9iamZp bGU7Ci0gdGhleSBjb3VsZCBiZSB1bmxvYWRlZCBhdCBkaWZmZXJlbnQgdGltZXMuCi0gCi0tVXNl ciBjb252ZW5pZW5jZSB2YXJpYWJsZXMsIGV0IGNldGVyYSwgaGF2ZSBhc3NvY2lhdGVkIHR5cGVz LiAgTm9ybWFsbHkKLS10aGVzZSB0eXBlcyBsaXZlIGluIHRoZSBhc3NvY2lhdGVkIG9iamZpbGUu ICBIb3dldmVyLCB3aGVuIHRoZSBvYmpmaWxlCi0taXMgdW5sb2FkZWQsIHRob3NlIHR5cGVzIGFy ZSBkZWVwIGNvcGllZCB0byBnbG9iYWwgbWVtb3J5LCBzbyB0aGF0Ci0tdGhlIHZhbHVlcyBvZiB0 aGUgdXNlciB2YXJpYWJsZXMgYW5kIGhpc3RvcnkgaXRlbXMgYXJlIG5vdCBsb3N0LgotK0Bub2Rl IE1lbW9yeSBNYW5hZ2VtZW50IGZvciBUeXBlcwotK0BzZWN0aW9uIE1lbW9yeSBNYW5hZ2VtZW50 IGZvciBUeXBlcwotK0BjaW5kZXggbWVtb3J5IG1hbmFnZW1lbnQgZm9yIHR5cGVzCi0rCi0rQGZp bmRleCBUWVBFX09CSkZJTEUKLStAY29kZXtUWVBFX09CSkZJTEV9IG1hY3JvIGluZGljYXRlcyB0 aGUgY3VycmVudCBtZW1vcnkgb3duZXIgb2YgdGhlIHR5cGUuCi0rTm9uLUBjb2Rle05VTEx9IHZh bHVlIGluZGljYXRlcyBpdCBpcyBvd25lZCBieSBhbiBvYmpmaWxlIChzcGVjaWZpY2FsbHkgYnkg aXRzCi0rb2JzdGFjaykgYW5kIGluIHN1Y2ggY2FzZSB0aGUgdHlwZSByZW1haW5zIHZhbGlkIHRp bGwgdGhlIG9iamZpbGUgaXMgdW5sb2FkZWQKLStvciByZWxvYWRlZC4gIEZvciBzdWNoIHR5cGVz IHdpdGggYW4gYXNzb2NpYXRlZCBvYmpmaWxlIG5vIHJlZmVyZW5jZSBjb3VudGluZwotK2lzIGJl aW5nIG1hZGUuCi0rCi0rVXNlciBjb252ZW5pZW5jZSB2YXJpYWJsZXMsIGV0IGNldGVyYSwgaGF2 ZSBhc3NvY2lhdGVkIHR5cGVzLiAgTm9ybWFsbHkgdGhlc2UKLSt0eXBlcyBsaXZlIGluIHRoZSBh c3NvY2lhdGVkIG9iamZpbGUuICBIb3dldmVyLCB3aGVuIHRoZSBvYmpmaWxlIGlzIHVubG9hZGVk LAotK3Rob3NlIHR5cGVzIGFyZSBkZWVwIGNvcGllZCB0byBnbG9iYWwgbWVtb3J5LCBzbyB0aGF0 IHRoZSB2YWx1ZXMgb2YgdGhlIHVzZXIKLSt2YXJpYWJsZXMgYW5kIGhpc3RvcnkgaXRlbXMgYXJl IG5vdCBsb3N0LiAgRHVyaW5nIHRoZSBjb3B5IHRoZXkgd2lsbCBnZXQgdGhlaXIKLStAY29kZXtU WVBFX09CSkZJTEV9IHNldCB0byBAY29kZXtOVUxMfSBhbmQgYmVjb21lIHNvLWNhbGxlZCBAZGZu e3JlY2xhaW1hYmxlfQotK3R5cGVzLgotKwotK1R5cGVzIHdpdGggbnVsbCBAY29kZXtUWVBFX09C SkZJTEV9IGNhbiBiZSBlaXRoZXIgcGVybWFuZW50IHR5cGVzCi0rKEBweHJlZntCdWlsdGluIFR5 cGVzfSkgb3IgcmVjbGFpbWFibGUgdHlwZXMgd2hpY2ggd2lsbCBiZSBkZWFsbG9jYXRlZCBhdCB0 aGUKLStmaXJzdCBpZGxlIEB2YWx1ZXtHREJOfSBtb21lbnQgaWYgdGhlIGxhc3Qgb2JqZWN0IHJl ZmVyZW5jaW5nIHRoZW0gaXMgcmVtb3ZlZC4KLStQZXJtYW5lbnQgdHlwZXMgYXJlIGFsbG9jYXRl ZCBieSB0aGUgZnVuY3Rpb24gQGNvZGV7YWxsb2NfdHlwZX0gKGFuZCBpdHMKLStkZXJpdmF0aW9u cyBsaWtlIEBjb2Rle2luaXRfdHlwZX0pIHNwZWNpZnlpbmcgb2JqZmlsZSBhcyBAY29kZXtOVUxM fS4gIFRoZQotK3JlY2xhaW1hYmxlIHR5cGVzIGFyZSBjcmVhdGVkIHRoZSBzYW1lIHdheSBidXQg bW9yZW92ZXIgdGhleSBuZWVkIHRvIGhhdmUKLStAY29kZXt0eXBlX2luaXRfZ3JvdXB9IGNhbGxl ZCB0byBzdGFydCB0aGVpciB0cmFja2luZyBhcyBiZWluZyBwb3NzaWJseQotK2RlYWxsb2NhdGFi bGUuCi0rCi0rQGZpbmRleCBmcmVlX2FsbF90eXBlcwotK1doZW4gQHZhbHVle0dEQk59IGdldHMg aWRsZSBpdCBhbHdheXMgY2FsbHMgdGhlIEBjb2Rle2ZyZWVfYWxsX3R5cGVzfSBmdW5jdGlvbgot K3doaWNoIGRlYWxsb2NhdGVzIGFueSB1bnVzZWQgdHlwZXMuICBBbGwgdHlwZXMgY3VycmVudGx5 IG5vdCBvd25lZCBieSBhbgotK29iamZpbGUgbXVzdCBiZSBtYXJrZWQgYXMgdXNlZCBvbiBlYWNo IEBjb2Rle2ZyZWVfYWxsX3R5cGVzfSBjYWxsIGFzIHRoZXkgd291bGQKLStnZXQgZGVhbGxvY2F0 ZWQgYXMgdW51c2VkIG90aGVyd2lzZS4KLSsKLStAY29kZXtmcmVlX2FsbF90eXBlc30gYXV0b21h dGljYWxseSBjaGVja3MgZm9yIGFueSBjcm9zcy10eXBlIHJlZmVyZW5jZXMgc3VjaAotK2FzIHRo cm91Z2ggQGNvZGV7VFlQRV9UQVJHRVRfVFlQRX0sIEBjb2Rle1RZUEVfUE9JTlRFUl9UWVBFfSBl dGMuQDogYW5kCi0rcHJldmVudHMgZWFybHkgZGVhbGxvY2F0aW9uIGZvciBhbnkgc3VjaCBleGlz dGluZyByZWZlcmVuY2VzLiAgUmVjbGFpbWFibGUKLSt0eXBlcyBtYXkgcmVmZXJlbmNlIGFueSBv dGhlciByZWNsYWltYWJsZSB0eXBlcyBvciBldmVuIHBlcm1hbmVudCB0eXBlcy4gIEJ1dAotK3Bl cm1hbmVudCB0eXBlcyBtdXN0IG5vdCByZWZlcmVuY2UgcmVjbGFpbWFibGUgdHlwZXMgKG5vciBh biBvYmpmaWxlIGFzc29jaWF0ZWQKLSt0eXBlKS4KLSAKLSAKLSBAbm9kZSBMYW5ndWFnZSBTdXBw b3J0CiBkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9vYnNlcnZlci50ZXhpIGIvZ2RiL2RvYy9vYnNlcnZl ci50ZXhpCi1pbmRleCBhZGI3MDg1Li41ZWM1YjVhIDEwMDY0NAoraW5kZXggNjFhY2JiMi4uYWMz NzMyNCAxMDA2NDQKIC0tLSBhL2dkYi9kb2Mvb2JzZXJ2ZXIudGV4aQogKysrIGIvZ2RiL2RvYy9v YnNlcnZlci50ZXhpCi1AQCAtMjQ5LDYgKzI0OSwxMSBAQCBUaGUgdHJhY2Ugc3RhdGUgdmFyaWFi bGUgQHZhcnt0c3Z9IGlzIGRlbGV0ZWQuICBJZiBAdmFye3Rzdn0gaXMKK0BAIC0yNTMsNiArMjUz LDExIEBAIFRoZSB0cmFjZSBzdGF0ZSB2YXJpYWJsZSBAdmFye3Rzdn0gaXMgZGVsZXRlZC4gIElm IEB2YXJ7dHN2fSBpcwogIFRoZSB0cmFjZSBzdGF0ZSB2YWx1ZSBAdmFye3Rzdn0gaXMgbW9kaWZp ZWQuCiAgQGVuZCBkZWZ0eXBlZnVuCiAgCkBAIC00MDIsMTAgKzI3MywxMCBAQCBpbmRleCBhZGI3 MDg1Li41ZWM1YjVhIDEwMDY0NAogIFRoaXMgb2JzZXJ2ZXIgaXMgdXNlZCBmb3IgaW50ZXJuYWwg dGVzdGluZy4gIERvIG5vdCB1c2UuICAKICBTZWUgdGVzdHN1aXRlL2dkYi5nZGIvb2JzZXJ2ZXIu ZXhwLgogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJleHByLmMgYi9nZGIvZHdhcmYyZXhwci5jCi1p bmRleCA3NTJkNzgyLi5hYjBhM2ViIDEwMDY0NAoraW5kZXggMzZjOWY2Ni4uMWYyMTc2NiAxMDA2 NDQKIC0tLSBhL2dkYi9kd2FyZjJleHByLmMKICsrKyBiL2dkYi9kd2FyZjJleHByLmMKLUBAIC0x NDc5LDYgKzE0NzksMTQgQEAgZXhlY3V0ZV9zdGFja19vcCAoc3RydWN0IGR3YXJmX2V4cHJfY29u dGV4dCAqY3R4LAorQEAgLTE0NzgsNiArMTQ3OCwxNCBAQCBleGVjdXRlX3N0YWNrX29wIChzdHJ1 Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpjdHgsCiAgCSAgfQogIAkgIGJyZWFrOwogIApAQCAtNDIx LDEwICsyOTIsMTAgQEAgaW5kZXggNzUyZDc4Mi4uYWIwYTNlYiAxMDA2NDQKICAJICBlcnJvciAo XygiVW5oYW5kbGVkIGR3YXJmIGV4cHJlc3Npb24gb3Bjb2RlIDB4JXgiKSwgb3ApOwogIAl9CiBk aWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmV4cHIuaCBiL2dkYi9kd2FyZjJleHByLmgKLWluZGV4IGU4 NTQ4NmEuLmU3YWM3OTkgMTAwNjQ0CitpbmRleCAzOWRhZGYzLi44Y2ViYmU4IDEwMDY0NAogLS0t IGEvZ2RiL2R3YXJmMmV4cHIuaAogKysrIGIvZ2RiL2R3YXJmMmV4cHIuaAotQEAgLTc3LDEyICs3 Nyw4IEBAIHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHRfZnVuY3MKK0BAIC04NCwxMiArODQsOCBA QCBzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0X2Z1bmNzCiAgICAgICBUaGlzIGNhbiB0aHJvdyBh biBleGNlcHRpb24gaWYgdGhlIGluZGV4IGlzIG91dCBvZiByYW5nZS4gICovCiAgICBDT1JFX0FE RFIgKCpnZXRfYWRkcl9pbmRleCkgKHZvaWQgKmJhdG9uLCB1bnNpZ25lZCBpbnQgaW5kZXgpOwog IApAQCAtNDM4LDcgKzMwOSw3IEBAIGluZGV4IGU4NTQ4NmEuLmU3YWM3OTkgMTAwNjQ0CiAgCiAg LyogVGhlIGxvY2F0aW9uIG9mIGEgdmFsdWUuICAqLwogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJs b2MuYyBiL2dkYi9kd2FyZjJsb2MuYwotaW5kZXggMDJhZmNkZi4uNWEyMTYyOSAxMDA2NDQKK2lu ZGV4IGRkOTIxZWMuLjAxYTg1NjYgMTAwNjQ0CiAtLS0gYS9nZGIvZHdhcmYybG9jLmMKICsrKyBi L2dkYi9kd2FyZjJsb2MuYwogQEAgLTMwNiw2ICszMDYsOSBAQCBzdHJ1Y3QgZHdhcmZfZXhwcl9i YXRvbgpAQCAtNDUxLDcgKzMyMiw3IEBAIGluZGV4IDAyYWZjZGYuLjVhMjE2MjkgMTAwNjQ0CiAg fTsKICAKICAvKiBIZWxwZXIgZnVuY3Rpb25zIGZvciBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2Mu ICAqLwotQEAgLTQyMSw3ICs0MjQsNyBAQCBkd2FyZl9leHByX2ZyYW1lX2Jhc2VfMSAoc3RydWN0 IHN5bWJvbCAqZnJhbWVmdW5jLCBDT1JFX0FERFIgcGMsCitAQCAtNDMzLDcgKzQzNiw3IEBAIGR3 YXJmX2V4cHJfZnJhbWVfYmFzZV8xIChzdHJ1Y3Qgc3ltYm9sICpmcmFtZWZ1bmMsIENPUkVfQURE UiBwYywKICAKICAgIGlmICgqbGVuZ3RoID09IDApCiAgICAgIGVycm9yIChfKCJDb3VsZCBub3Qg ZmluZCB0aGUgZnJhbWUgYmFzZSBmb3IgXCIlc1wiLiIpLApAQCAtNDYwLDcgKzMzMSw3IEBAIGlu ZGV4IDAyYWZjZGYuLjVhMjE2MjkgMTAwNjQ0CiAgfQogIAogIC8qIEhlbHBlciBmdW5jdGlvbiBm b3IgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjLiAgQ29tcHV0ZXMgdGhlIENGQSBmb3IKLUBAIC00 ODgsNiArNDkxLDg1IEBAIGR3YXJmX2V4cHJfZHdhcmZfY2FsbCAoc3RydWN0IGR3YXJmX2V4cHJf Y29udGV4dCAqY3R4LCBjdV9vZmZzZXQgZGllX29mZnNldCkKK0BAIC01MDAsNiArNTAzLDg1IEBA IGR3YXJmX2V4cHJfZHdhcmZfY2FsbCAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4LCBj dV9vZmZzZXQgZGllX29mZnNldCkKICAJCSAgICAgY3R4LT5mdW5jcy0+Z2V0X2ZyYW1lX3BjLCBj dHgtPmJhdG9uKTsKICB9CiAgCkBAIC01NDYsNyArNDE3LDcgQEAgaW5kZXggMDJhZmNkZi4uNWEy MTYyOSAxMDA2NDQKICAvKiBDYWxsYmFjayBmdW5jdGlvbiBmb3IgZHdhcmYyX2V2YWx1YXRlX2xv Y19kZXNjLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKgotQEAgLTEyMDIsMTAgKzEyODQs MTIgQEAgZHdhcmZfZXhwcl9wdXNoX2R3YXJmX3JlZ19lbnRyeV92YWx1ZSAoc3RydWN0IGR3YXJm X2V4cHJfY29udGV4dCAqY3R4LAorQEAgLTEyMTUsMTAgKzEyOTcsMTIgQEAgZHdhcmZfZXhwcl9w dXNoX2R3YXJmX3JlZ19lbnRyeV92YWx1ZSAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4 LAogIAogICAgc2F2ZWRfY3R4LmdkYmFyY2ggPSBjdHgtPmdkYmFyY2g7CiAgICBzYXZlZF9jdHgu YWRkcl9zaXplID0gY3R4LT5hZGRyX3NpemU7CkBAIC01NTksNyArNDMwLDcgQEAgaW5kZXggMDJh ZmNkZi4uNWEyMTYyOSAxMDA2NDQKICAgIGN0eC0+b2Zmc2V0ID0gZHdhcmYyX3Blcl9jdV90ZXh0 X29mZnNldCAoYmF0b25fbG9jYWwucGVyX2N1KTsKICAgIGN0eC0+YmF0b24gPSAmYmF0b25fbG9j YWw7CiAgCi1AQCAtMTIxMywxMCArMTI5Nyw5NSBAQCBkd2FyZl9leHByX3B1c2hfZHdhcmZfcmVn X2VudHJ5X3ZhbHVlIChzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpjdHgsCitAQCAtMTIyNiwx MCArMTMxMCw3OCBAQCBkd2FyZl9leHByX3B1c2hfZHdhcmZfcmVnX2VudHJ5X3ZhbHVlIChzdHJ1 Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpjdHgsCiAgCiAgICBjdHgtPmdkYmFyY2ggPSBzYXZlZF9j dHguZ2RiYXJjaDsKICAgIGN0eC0+YWRkcl9zaXplID0gc2F2ZWRfY3R4LmFkZHJfc2l6ZTsKQEAg LTU3MCwyMyArNDQxLDYgQEAgaW5kZXggMDJhZmNkZi4uNWEyMTYyOSAxMDA2NDQKICAKICtzdGF0 aWMgQ09SRV9BRERSIGR3YXJmX2V4cHJfZ2V0X2FkZHJfaW5kZXggKHZvaWQgKmJhdG9uLCB1bnNp Z25lZCBpbnQgaW5kZXgpOwogKwotKy8qIFZpcnR1YWwgbWV0aG9kIHRhYmxlIGZvciBkd2FyZjJf ZXZhbHVhdGVfbG9jX2Rlc2NfZnVsbCBiZWxvdy4gICovCi0rCi0rc3RhdGljIGNvbnN0IHN0cnVj dCBkd2FyZl9leHByX2NvbnRleHRfZnVuY3MgZHdhcmZfZXhwcl9jdHhfZnVuY3MgPQotK3sKLSsg IGR3YXJmX2V4cHJfcmVhZF9yZWcsCi0rICBkd2FyZl9leHByX3JlYWRfbWVtLAotKyAgZHdhcmZf ZXhwcl9mcmFtZV9iYXNlLAotKyAgZHdhcmZfZXhwcl9mcmFtZV9jZmEsCi0rICBkd2FyZl9leHBy X2ZyYW1lX3BjLAotKyAgZHdhcmZfZXhwcl90bHNfYWRkcmVzcywKLSsgIGR3YXJmX2V4cHJfZHdh cmZfY2FsbCwKLSsgIGR3YXJmX2V4cHJfZ2V0X2Jhc2VfdHlwZSwKLSsgIGR3YXJmX2V4cHJfcHVz aF9kd2FyZl9yZWdfZW50cnlfdmFsdWUsCi0rICBkd2FyZl9leHByX2dldF9hZGRyX2luZGV4LAot KyAgZHdhcmZfZXhwcl9vYmplY3RfYWRkcmVzcwotK307Ci0rCiArLyogRXZhbHVhdGUgRFdBUkYg ZXhwcmVzc2lvbiBhdCBEQVRBIC4uLiBEQVRBICsgU0laRSB3aXRoIGl0cyByZXN1bHQgcmVhZGFi bGUKICsgICBieSBkd2FyZl9leHByX2ZldGNoIChSRVRWQUwsIDApLiAgRlJBTUUgcGFyYW1ldGVy IGNhbiBiZSBOVUxMIHRvIGNhbGwKICsgICBnZXRfc2VsZWN0ZWRfZnJhbWUgdG8gZmluZCBpdC4g IFJldHVybmVkIGR3YXJmX2V4cHJfY29udGV4dCBmcmVlaW5nIGlzCkBAIC02NTUsMzAgKzUwOSwx NyBAQCBpbmRleCAwMmFmY2RmLi41YTIxNjI5IDEwMDY0NAogIC8qIENhbGxiYWNrIGZ1bmN0aW9u IGZvciBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2MuCiAgICAgRmV0Y2ggdGhlIGFkZHJlc3MgaW5k ZXhlZCBieSBEV19PUF9HTlVfYWRkcl9pbmRleC4gICovCiAgCi1AQCAtMjE3NywyMiArMjM0Niw2 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbHZhbF9mdW5jcyBwaWVjZWRfdmFsdWVfZnVuY3MgPSB7 Ci0gICBmcmVlX3BpZWNlZF92YWx1ZV9jbG9zdXJlCitAQCAtMjIwNSw3ICsyMzU3LDggQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHRfZnVuY3MgZHdhcmZfZXhwcl9jdHhf ZnVuY3MgPQorICAgZHdhcmZfZXhwcl9kd2FyZl9jYWxsLAorICAgZHdhcmZfZXhwcl9nZXRfYmFz ZV90eXBlLAorICAgZHdhcmZfZXhwcl9wdXNoX2R3YXJmX3JlZ19lbnRyeV92YWx1ZSwKKy0gIGR3 YXJmX2V4cHJfZ2V0X2FkZHJfaW5kZXgKKysgIGR3YXJmX2V4cHJfZ2V0X2FkZHJfaW5kZXgsCisr ICBkd2FyZl9leHByX29iamVjdF9hZGRyZXNzCiAgfTsKICAKLS0vKiBWaXJ0dWFsIG1ldGhvZCB0 YWJsZSBmb3IgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgYmVsb3cuICAqLwotLQotLXN0 YXRpYyBjb25zdCBzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0X2Z1bmNzIGR3YXJmX2V4cHJfY3R4 X2Z1bmNzID0KLS17Ci0tICBkd2FyZl9leHByX3JlYWRfcmVnLAotLSAgZHdhcmZfZXhwcl9yZWFk X21lbSwKLS0gIGR3YXJmX2V4cHJfZnJhbWVfYmFzZSwKLS0gIGR3YXJmX2V4cHJfZnJhbWVfY2Zh LAotLSAgZHdhcmZfZXhwcl9mcmFtZV9wYywKLS0gIGR3YXJmX2V4cHJfdGxzX2FkZHJlc3MsCi0t ICBkd2FyZl9leHByX2R3YXJmX2NhbGwsCi0tICBkd2FyZl9leHByX2dldF9iYXNlX3R5cGUsCi0t ICBkd2FyZl9leHByX3B1c2hfZHdhcmZfcmVnX2VudHJ5X3ZhbHVlLAotLSAgZHdhcmZfZXhwcl9n ZXRfYWRkcl9pbmRleAotLX07Ci0tCiAgLyogRXZhbHVhdGUgYSBsb2NhdGlvbiBkZXNjcmlwdGlv biwgc3RhcnRpbmcgYXQgREFUQSBhbmQgd2l0aCBsZW5ndGgKLSAgICBTSVpFLCB0byBmaW5kIHRo ZSBjdXJyZW50IGxvY2F0aW9uIG9mIHZhcmlhYmxlIG9mIFRZUEUgaW4gdGhlCi0gICAgY29udGV4 dCBvZiBGUkFNRS4gIEJZVEVfT0ZGU0VUIGlzIGFwcGxpZWQgYWZ0ZXIgdGhlIGNvbnRlbnRzIGFy ZQotQEAgLTIyMDUsNyArMjM1OCw2IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsIChz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLAorQEAgLTIyMjAsNyAr MjM3Myw2IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLAogIAkJCSAgICAgICBMT05HRVNUIGJ5dGVfb2Zm c2V0KQogIHsKICAgIHN0cnVjdCB2YWx1ZSAqcmV0dmFsOwpAQCAtNjg2LDcgKzUyNyw3IEBAIGlu ZGV4IDAyYWZjZGYuLjVhMjE2MjkgMTAwNjQ0CiAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0 ICpjdHg7CiAgICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2NoYWluLCAqdmFsdWVfY2hhaW47CiAgICBz dHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSA9IGR3YXJmMl9wZXJfY3Vfb2JqZmlsZSAocGVyX2N1KTsK LUBAIC0yMjE3LDI5ICsyMzY5LDE4IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsIChz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLAorQEAgLTIyMzIsMjkg KzIzODQsMTggQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eXBlICp0 eXBlLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCiAgICBpZiAoc2l6ZSA9PSAwKQogICAgICBy ZXR1cm4gYWxsb2NhdGVfb3B0aW1pemVkX291dF92YWx1ZSAodHlwZSk7CiAgCkBAIC03MTcsNyAr NTU4LDcgQEAgaW5kZXggMDJhZmNkZi4uNWEyMTYyOSAxMDA2NDQKICAJICByZXR2YWwgPSBhbGxv Y2F0ZV92YWx1ZSAodHlwZSk7CiAgCSAgbWFya192YWx1ZV9ieXRlc191bmF2YWlsYWJsZSAocmV0 dmFsLCAwLCBUWVBFX0xFTkdUSCAodHlwZSkpOwogIAkgIHJldHVybiByZXR2YWw7Ci1AQCAtMjMw Myw2ICsyNDQ0LDE2IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHlw ZSAqdHlwZSwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLAorQEAgLTIzMjksNiArMjQ3MCwxNiBA QCBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2NfZnVsbCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVj dCBmcmFtZV9pbmZvICpmcmFtZSwKICAJICAgIGludCBpbl9zdGFja19tZW1vcnkgPSBkd2FyZl9l eHByX2ZldGNoX2luX3N0YWNrX21lbW9yeSAoY3R4LCAwKTsKICAKICAJICAgIGRvX2NsZWFudXBz ICh2YWx1ZV9jaGFpbik7CkBAIC03MzEsMTAgKzU3MiwxMCBAQCBpbmRleCAwMmFmY2RmLi41YTIx NjI5IDEwMDY0NAogKwkgICAgICAgRFdfT1BfcHVzaF9vYmplY3RfYWRkcmVzcy4gICovCiArCSAg ICBvYmplY3RfYWRkcmVzc19zZXQgKGFkZHJlc3MpOwogKwotIAkgICAgcmV0dmFsID0gYWxsb2Nh dGVfdmFsdWVfbGF6eSAodHlwZSk7Ci0gCSAgICBWQUxVRV9MVkFMIChyZXR2YWwpID0gbHZhbF9t ZW1vcnk7CisgCSAgICByZXR2YWwgPSB2YWx1ZV9hdF9sYXp5ICh0eXBlLCBhZGRyZXNzICsgYnl0 ZV9vZmZzZXQpOwogIAkgICAgaWYgKGluX3N0YWNrX21lbW9yeSkKLUBAIC00MjA0LDggKzQzNTUs NyBAQCBsb2NsaXN0X3RyYWNlcG9pbnRfdmFyX3JlZiAoc3RydWN0IHN5bWJvbCAqc3ltYm9sLCBz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKKyAJICAgICAgc2V0X3ZhbHVlX3N0YWNrIChyZXR2YWws IDEpOworQEAgLTQyNDEsOCArNDM5Miw3IEBAIGxvY2xpc3RfdHJhY2Vwb2ludF92YXJfcmVmIChz dHJ1Y3Qgc3ltYm9sICpzeW1ib2wsIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogIAkJCSAgICAg ICBkbGJhdG9uLT5wZXJfY3UpOwogIH0KICAKQEAgLTc0NSw3ICs1ODYsNyBAQCBpbmRleCAwMmFm Y2RmLi41YTIxNjI5IDEwMDY0NAogICAgbG9jbGlzdF9yZWFkX3ZhcmlhYmxlLAogICAgbG9jbGlz dF9yZWFkX3ZhcmlhYmxlX2F0X2VudHJ5LAogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJsb2MuaCBi L2dkYi9kd2FyZjJsb2MuaAotaW5kZXggOWJjOGNhNS4uMjg0NjdkYyAxMDA2NDQKK2luZGV4IDc4 NmU3N2MuLjU1ZmY0ZTYgMTAwNjQ0CiAtLS0gYS9nZGIvZHdhcmYybG9jLmgKICsrKyBiL2dkYi9k d2FyZjJsb2MuaAogQEAgLTEzNyw2ICsxMzcsMTUgQEAgc3RydWN0IGR3YXJmMl9sb2NsaXN0X2Jh dG9uCkBAIC03NjUsMTAgKzYwNiwxMCBAQCBpbmRleCA5YmM4Y2E1Li4yODQ2N2RjIDEwMDY0NAog IGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3ltYm9sX2Jsb2NrX29wcyBkd2FyZjJfYmxvY2tfZnJhbWVf YmFzZV9sb2NleHByX2Z1bmNzOwogIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3ltYm9sX2Jsb2NrX29w cyBkd2FyZjJfYmxvY2tfZnJhbWVfYmFzZV9sb2NsaXN0X2Z1bmNzOwogZGlmZiAtLWdpdCBhL2dk Yi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdhcmYycmVhZC5jCi1pbmRleCBkMThlYWVkLi45MWM0NzZj IDEwMDY0NAoraW5kZXggMjNiY2ZlMC4uY2E5ZmZkYSAxMDA2NDQKIC0tLSBhL2dkYi9kd2FyZjJy ZWFkLmMKICsrKyBiL2dkYi9kd2FyZjJyZWFkLmMKLUBAIC0xNjYxLDYgKzE2NjEsOSBAQCBzdGF0 aWMgdm9pZCBmaWxsX2luX2xvY2xpc3RfYmF0b24gKHN0cnVjdCBkd2FyZjJfY3UgKmN1LAorQEAg LTE3MzgsNiArMTczOCw5IEBAIHN0YXRpYyB2b2lkIGZpbGxfaW5fbG9jbGlzdF9iYXRvbiAoc3Ry dWN0IGR3YXJmMl9jdSAqY3UsCiAgCQkJCSAgIHN0cnVjdCBkd2FyZjJfbG9jbGlzdF9iYXRvbiAq YmF0b24sCiAgCQkJCSAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIpOwogIApAQCAtNzc4 LDcgKzYxOSw3IEBAIGluZGV4IGQxOGVhZWQuLjkxYzQ3NmMgMTAwNjQ0CiAgc3RhdGljIHZvaWQg ZHdhcmYyX3N5bWJvbF9tYXJrX2NvbXB1dGVkIChjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRy LAogIAkJCQkJIHN0cnVjdCBzeW1ib2wgKnN5bSwKICAJCQkJCSBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSwKLUBAIC0xNjk0LDYgKzE2OTcsOSBAQCBzdGF0aWMgdm9pZCBhZ2VfY2FjaGVkX2NvbXBfdW5p dHMgKHZvaWQpOworQEAgLTE3NzEsNiArMTc3NCw5IEBAIHN0YXRpYyB2b2lkIGFnZV9jYWNoZWRf Y29tcF91bml0cyAodm9pZCk7CiAgCiAgc3RhdGljIHZvaWQgZnJlZV9vbmVfY2FjaGVkX2NvbXBf dW5pdCAoc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqKTsKICAKQEAgLTc4OCw3ICs2MjksNyBA QCBpbmRleCBkMThlYWVkLi45MWM0NzZjIDEwMDY0NAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqc2V0 X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0IHR5cGUgKiwKICAJCQkJICBzdHJ1 Y3QgZHdhcmYyX2N1ICopOwogIAotQEAgLTE3MjIsNiArMTcyOCw5IEBAIHN0YXRpYyBzdHJ1Y3Qg dHlwZSAqZ2V0X2RpZV90eXBlX2F0X29mZnNldCAoc2VjdF9vZmZzZXQsCitAQCAtMTc5OSw2ICsx ODA1LDkgQEAgc3RhdGljIHN0cnVjdCB0eXBlICpnZXRfZGllX3R5cGVfYXRfb2Zmc2V0IChzZWN0 X29mZnNldCwKICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKmdldF9kaWVfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KTsKICAKQEAgLTc5OCw3ICs2MzksNyBA QCBpbmRleCBkMThlYWVkLi45MWM0NzZjIDEwMDY0NAogIHN0YXRpYyB2b2lkIGR3YXJmMl9yZWxl YXNlX3F1ZXVlICh2b2lkICpkdW1teSk7CiAgCiAgc3RhdGljIHZvaWQgcXVldWVfY29tcF91bml0 IChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UsCi1AQCAtMTIyNjMsNiArMTIyNzIs MjkgQEAgcHJvY2Vzc19lbnVtZXJhdGlvbl9zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTEzMjI3LDYgKzEzMjM2LDI5IEBAIHByb2Nlc3NfZW51 bWVyYXRpb25fc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKICAgIG5ld19zeW1ib2wgKGRpZSwgdGhpc190eXBlLCBjdSk7CiAgfQogIApAQCAtODI4LDcg KzY2OSw3IEBAIGluZGV4IGQxOGVhZWQuLjkxYzQ3NmMgMTAwNjQ0CiAgLyogRXh0cmFjdCBhbGwg aW5mb3JtYXRpb24gZnJvbSBhIERXX1RBR19hcnJheV90eXBlIERJRSBhbmQgcHV0IGl0IGluCiAg ICAgdGhlIERJRSdzIHR5cGUgZmllbGQuICBGb3Igbm93LCB0aGlzIG9ubHkgaGFuZGxlcyBvbmUg ZGltZW5zaW9uYWwKICAgICBhcnJheXMuICAqLwotQEAgLTEyMjc2LDcgKzEyMzA4LDcgQEAgcmVh ZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CitAQCAtMTMyNDAsNyArMTMyNzIsNyBAQCByZWFkX2FycmF5X3R5cGUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCB0eXBlICplbGVtZW50X3R5 cGUsICpyYW5nZV90eXBlLCAqaW5kZXhfdHlwZTsKICAgIHN0cnVjdCB0eXBlICoqcmFuZ2VfdHlw ZXMgPSBOVUxMOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTgzNyw3ICs2NzgsNyBA QCBpbmRleCBkMThlYWVkLi45MWM0NzZjIDEwMDY0NAogICAgc3RydWN0IGNsZWFudXAgKmJhY2tf dG87CiAgICBjb25zdCBjaGFyICpuYW1lOwogIAotQEAgLTEyMzI5LDE3ICsxMjM2MSwxOSBAQCBy ZWFkX2FycmF5X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKK0BAIC0xMzI5MywxNyArMTMzMjUsMTkgQEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICB0eXBlID0gZWxlbWVudF90eXBl OwogIAogICAgaWYgKHJlYWRfYXJyYXlfb3JkZXIgKGRpZSwgY3UpID09IERXX09SRF9jb2xfbWFq b3IpCkBAIC04NjgsNyArNzA5LDcgQEAgaW5kZXggZDE4ZWFlZC4uOTFjNDc2YyAxMDA2NDQKICAK ICAgIC8qIFVuZGVyc3RhbmQgRHdhcmYyIHN1cHBvcnQgZm9yIHZlY3RvciB0eXBlcyAobGlrZSB0 aGV5IG9jY3VyIG9uCiAgICAgICB0aGUgUG93ZXJQQyB3LyBBbHRpVmVjKS4gIEdjYyBqdXN0IGFk ZHMgYW5vdGhlciBhdHRyaWJ1dGUgdG8gdGhlCi1AQCAtMTI5NzMsMjkgKzEzMDA3LDExNCBAQCBy ZWFkX3RhZ19zdHJpbmdfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQorQEAgLTEzOTQyLDI5ICsxMzk3NiwxMTQgQEAgcmVhZF90YWdfc3RyaW5nX3R5cGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7CiAgICBzdHJ1Y3Qg dHlwZSAqdHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBlLCAqY2hhcl90eXBlOwogICAgc3Ry dWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTk5Niw3ICs4MzcsNyBAQCBpbmRleCBkMThlYWVkLi45 MWM0NzZjIDEwMDY0NAogICAgY2hhcl90eXBlID0gbGFuZ3VhZ2Vfc3RyaW5nX2NoYXJfdHlwZSAo Y3UtPmxhbmd1YWdlX2RlZm4sIGdkYmFyY2gpOwogICAgdHlwZSA9IGNyZWF0ZV9zdHJpbmdfdHlw ZSAoTlVMTCwgY2hhcl90eXBlLCByYW5nZV90eXBlKTsKICAKLUBAIC0xMzMyMCw3ICsxMzQzOSw3 IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQorQEAgLTE0Mjg5LDcgKzE0NDA4LDcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBzdHJ1Y3QgdHlw ZSAqYmFzZV90eXBlLCAqb3JpZ19iYXNlX3R5cGU7CiAgICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlw ZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CkBAIC0xMDA1LDkgKzg0Niw5IEBAIGluZGV4 IGQxOGVhZWQuLjkxYzQ3NmMgMTAwNjQ0CiAgICBpbnQgbG93X2RlZmF1bHRfaXNfdmFsaWQ7CiAg ICBjb25zdCBjaGFyICpuYW1lOwogICAgTE9OR0VTVCBuZWdhdGl2ZV9tYXNrOwotQEAgLTEzMzc5 LDQyICsxMzQ5OCw2IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTE0MzQ4LDQyICsxNDQ2Nyw2IEBAIHJlYWRfc3Vi cmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQog IAkJCQkgICAgICAiLSBESUUgYXQgMHgleCBbaW4gbW9kdWxlICVzXSIpLAotIAkgICAgICAgZGll LT5vZmZzZXQuc2VjdF9vZmYsIGN1LT5vYmpmaWxlLT5uYW1lKTsKKyAJICAgICAgIGRpZS0+b2Zm c2V0LnNlY3Rfb2ZmLCBvYmpmaWxlX25hbWUgKGN1LT5vYmpmaWxlKSk7CiAgCiAtICBhdHRyID0g ZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfdXBwZXJfYm91bmQsIGN1KTsKIC0gIGlmIChhdHRyKQpA QCAtMTA0OCw3ICs4ODksNyBAQCBpbmRleCBkMThlYWVkLi45MWM0NzZjIDEwMDY0NAogICAgLyog RHdhcmYtMiBzcGVjaWZpY2F0aW9ucyBleHBsaWNpdGx5IGFsbG93cyB0byBjcmVhdGUgc3VicmFu Z2UgdHlwZXMKICAgICAgIHdpdGhvdXQgc3BlY2lmeWluZyBhIGJhc2UgdHlwZS4KICAgICAgIElu IHRoYXQgY2FzZSwgdGhlIGJhc2UgdHlwZSBtdXN0IGJlIHNldCB0byB0aGUgdHlwZSBvZgotQEAg LTEzNDUzLDI0ICsxMzUzNiwxNjMgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMTQ0MjIsMjQgKzE0NTA1LDE2MyBA QCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKICAJfQogICAgICB9CiAgCkBAIC0xMjI2LDcgKzEwNjcsNyBAQCBpbmRleCBkMThl YWVkLi45MWM0NzZjIDEwMDY0NAogIAogICAgbmFtZSA9IGR3YXJmMl9uYW1lIChkaWUsIGN1KTsK ICAgIGlmIChuYW1lKQotQEAgLTE2MzgwLDExICsxNjYwMiwxNCBAQCB2YXJfZGVjb2RlX2xvY2F0 aW9uIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCitAQCAtMTcz NjEsMTEgKzE3NTgzLDE0IEBAIHZhcl9kZWNvZGVfbG9jYXRpb24gKHN0cnVjdCBhdHRyaWJ1dGUg KmF0dHIsIHN0cnVjdCBzeW1ib2wgKnN5bSwKICAgICAgIChpLmUuIHdoZW4gdGhlIHZhbHVlIG9m IGEgcmVnaXN0ZXIgb3IgbWVtb3J5IGxvY2F0aW9uIGlzCiAgICAgICByZWZlcmVuY2VkLCBvciBh IHRocmVhZC1sb2NhbCBibG9jaywgZXRjLikuICBUaGVuIGFnYWluLCBpdCBtaWdodAogICAgICAg bm90IGJlIHdvcnRod2hpbGUuICBJJ20gYXNzdW1pbmcgdGhhdCBpdCBpc24ndCB1bmxlc3MgcGVy Zm9ybWFuY2UKQEAgLTEyNDMsNyArMTA4NCw3IEBAIGluZGV4IGQxOGVhZWQuLjkxYzQ3NmMgMTAw NjQ0CiAgICAgIGN1LT5oYXNfbG9jbGlzdCA9IDE7CiAgfQogIAotQEAgLTE3MjI1LDYgKzE3NDUw LDkgQEAgcmVhZF90eXBlX2RpZV8xIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCitAQCAtMTgyMTIsNiArMTg0MzcsOSBAQCByZWFkX3R5cGVfZGllXzEgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICBicmVhazsKICAg ICAgfQogIApAQCAtMTI1Myw3ICsxMDk0LDcgQEAgaW5kZXggZDE4ZWFlZC4uOTFjNDc2YyAxMDA2 NDQKICAgIHJldHVybiB0aGlzX3R5cGU7CiAgfQogIAotQEAgLTE5OTEwLDY2ICsyMDEzOCwxMDkg QEAgZmlsbF9pbl9sb2NsaXN0X2JhdG9uIChzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKK0BAIC0yMDg5 NCw2NiArMjExMjIsMTA5IEBAIGZpbGxfaW5fbG9jbGlzdF9iYXRvbiAoc3RydWN0IGR3YXJmMl9j dSAqY3UsCiAgICBiYXRvbi0+ZnJvbV9kd28gPSBjdS0+ZHdvX3VuaXQgIT0gTlVMTDsKICB9CiAg CkBAIC0xNDAyLDcgKzEyNDMsNyBAQCBpbmRleCBkMThlYWVkLi45MWM0NzZjIDEwMDY0NAogICAg ICB9CiAgfQogIAotQEAgLTIwMzQyLDYgKzIwNjEzLDI1IEBAIHBlcl9jdV9vZmZzZXRfYW5kX3R5 cGVfZXEgKGNvbnN0IHZvaWQgKml0ZW1fbGhzLCBjb25zdCB2b2lkICppdGVtX3JocykKK0BAIC0y MTMyNiw2ICsyMTU5NywyNSBAQCBwZXJfY3Vfb2Zmc2V0X2FuZF90eXBlX2VxIChjb25zdCB2b2lk ICppdGVtX2xocywgY29uc3Qgdm9pZCAqaXRlbV9yaHMpCiAgCSAgJiYgb2ZzX2xocy0+b2Zmc2V0 LnNlY3Rfb2ZmID09IG9mc19yaHMtPm9mZnNldC5zZWN0X29mZik7CiAgfQogIApAQCAtMTQyOCw3 ICsxMjY5LDcgQEAgaW5kZXggZDE4ZWFlZC4uOTFjNDc2YyAxMDA2NDQKICAvKiBTZXQgdGhlIHR5 cGUgYXNzb2NpYXRlZCB3aXRoIERJRSB0byBUWVBFLiAgU2F2ZSBpdCBpbiBDVSdzIGhhc2gKICAg ICB0YWJsZSBpZiBuZWNlc3NhcnkuICBGb3IgY29udmVuaWVuY2UsIHJldHVybiBUWVBFLgogIAot QEAgLTIwMzY2LDYgKzIwNjU2LDggQEAgc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTIxMzUwLDYg KzIxNjQwLDggQEAgc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5 cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0IGR3YXJmMl9wZXJfY3Vf b2Zmc2V0X2FuZF90eXBlICoqc2xvdCwgb2ZzOwogICAgc3RydWN0IG9iamZpbGUgKm9iamZpbGUg PSBjdS0+b2JqZmlsZTsKICAKQEAgLTE0MzgsNyArMTI3OSw3IEBAIGluZGV4IGQxOGVhZWQuLjkx YzQ3NmMgMTAwNjQ0CiAgICAgICBpbml0aWFsaXplZCAoaWYgbm90IGFscmVhZHkgc2V0KS4gIFRo ZXJlIGFyZSBhIGZldyB0eXBlcyB3aGVyZQogICAgICAgd2Ugc2hvdWxkIG5vdCBiZSBkb2luZyBz bywgYmVjYXVzZSB0aGUgdHlwZS1zcGVjaWZpYyBhcmVhIGlzCiBkaWZmIC0tZ2l0IGEvZ2RiL2V2 YWwuYyBiL2dkYi9ldmFsLmMKLWluZGV4IDUzOTQ4OWYuLjEzYmExYTkgMTAwNjQ0CitpbmRleCBi ZmJlMzE5Li4zZmRjNWQ1IDEwMDY0NAogLS0tIGEvZ2RiL2V2YWwuYwogKysrIGIvZ2RiL2V2YWwu YwogQEAgLTQxLDYgKzQxLDcgQEAKQEAgLTE0NDksNyArMTI5MCw3IEBAIGluZGV4IDUzOTQ4OWYu LjEzYmExYTkgMTAwNjQ0CiAgCiAgI2luY2x1ZGUgImdkYl9hc3NlcnQuaCIKICAKLUBAIC0zOTMs MjcgKzM5NCwyMjEgQEAgaW5pdF9hcnJheV9lbGVtZW50IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBz dHJ1Y3QgdmFsdWUgKmVsZW1lbnQsCitAQCAtMzk3LDI3ICszOTgsMjIyIEBAIGluaXRfYXJyYXlf ZWxlbWVudCAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IHZhbHVlICplbGVtZW50LAogIH0K ICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTE2NzMsNyArMTUxNCw4IEBAIGluZGV4IDUz OTQ4OWYuLjEzYmExYTkgMTAwNjQ0CiArICAgIHsKICsgICAgICBnZGJfYXNzZXJ0IChUWVBFX0xF TkdUSCAobmV3X2FycmF5X3R5cGUpCiArCQkgIDw9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlIChz YXZlZF9hcnJheSkpKTsKLSsgICAgICBhbGxvY2F0ZV92YWx1ZV9jb250ZW50cyAoYXJyYXkpOwor KyAgICAgIC8qIEZJWE1FOiBJdCBzaW11bGF0ZXMgbm9uLXB1YmxpYyBhbGxvY2F0ZV92YWx1ZV9j b250ZW50cy4gICovCisrICAgICAgdmFsdWVfY29udGVudHNfYWxsX3JhdyAoYXJyYXkpOwogKyAg ICAgIHNldF92YWx1ZV9sYXp5IChhcnJheSwgMCk7CiArCiArICAgICAgbWVtY3B5ICh2YWx1ZV9j b250ZW50c193cml0ZWFibGUgKGFycmF5KSwKQEAgLTE2ODcsNyArMTUyOSw3IEBAIGluZGV4IDUz OTQ4OWYuLjEzYmExYTkgMTAwNjQ0CiAgfQogIAogIAotQEAgLTcxMCw2ICs5MDUsNyBAQCBldmFs dWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC03MTQs NiArOTEwLDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0 X3R5cGUsCiAgICBpbnQgc2F2ZV9wb3MxOwogICAgc3RydWN0IHN5bWJvbCAqZnVuY3Rpb24gPSBO VUxMOwogICAgY2hhciAqZnVuY3Rpb25fbmFtZSA9IE5VTEw7CkBAIC0xNjk1LDcgKzE1MzcsNyBA QCBpbmRleCA1Mzk0ODlmLi4xM2JhMWE5IDEwMDY0NAogIAogICAgcGMgPSAoKnBvcykrKzsKICAg IG9wID0gZXhwLT5lbHRzW3BjXS5vcGNvZGU7Ci1AQCAtMTc3Niw2ICsxOTcyLDggQEAgZXZhbHVh dGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMTc4MCw2 ICsxOTc3LDggQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0 X3R5cGUsCiAgCiAgICAgICAgLyogRmlyc3QgZGV0ZXJtaW5lIHRoZSB0eXBlIGNvZGUgd2UgYXJl IGRlYWxpbmcgd2l0aC4gICovCiAgICAgICAgYXJnMSA9IGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9U WVBFLCBleHAsIHBvcywgbm9zaWRlKTsKQEAgLTE3MDQsNyArMTU0Niw3IEBAIGluZGV4IDUzOTQ4 OWYuLjEzYmExYTkgMTAwNjQ0CiAgICAgICAgdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5 cGUgKGFyZzEpKTsKICAgICAgICBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKICAKLUBAIC0xNzk2 LDIzICsxOTk0LDEzIEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4 cGVjdF90eXBlLAorQEAgLTE4MDAsMjMgKzE5OTksMTMgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5k YXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCSAgICAgIGNvZGUgPSBUWVBFX0NPREUg KHR5cGUpOwogIAkgICAgfQogIAl9IApAQCAtMTczMCw3ICsxNTcyLDcgQEAgaW5kZXggNTM5NDg5 Zi4uMTNiYTFhOSAxMDA2NDQKICAKICAJY2FzZSBUWVBFX0NPREVfUFRSOgogIAljYXNlIFRZUEVf Q09ERV9GVU5DOgotQEAgLTIyMjUsNDkgKzI0MTMsNiBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRh cmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0yMjI5LDQ5ICsyNDE4LDYgQEAgZXZh bHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCX0KICAg ICAgICByZXR1cm4gKGFyZzEpOwogIApAQCAtMTc4MCw3ICsxNjIyLDcgQEAgaW5kZXggNTM5NDg5 Zi4uMTNiYTFhOSAxMDA2NDQKICAgICAgY2FzZSBCSU5PUF9MT0dJQ0FMX0FORDoKICAgICAgICBh cmcxID0gZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwgcG9zLCBub3NpZGUpOwogICAg ICAgIGlmIChub3NpZGUgPT0gRVZBTF9TS0lQKQotQEAgLTI0OTksMTUgKzI2NDQsMjMgQEAgZXZh bHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMjUw MywxNSArMjY0OSwyMyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpl eHBlY3RfdHlwZSwKICAgICAgICBpZiAoZXhwZWN0X3R5cGUgJiYgVFlQRV9DT0RFIChleHBlY3Rf dHlwZSkgPT0gVFlQRV9DT0RFX1BUUikKICAJZXhwZWN0X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBF IChjaGVja190eXBlZGVmIChleHBlY3RfdHlwZSkpOwogICAgICAgIGFyZzEgPSBldmFsdWF0ZV9z dWJleHAgKGV4cGVjdF90eXBlLCBleHAsIHBvcywgbm9zaWRlKTsKQEAgLTE4MDYsNyArMTY0OCw3 IEBAIGluZGV4IDUzOTQ4OWYuLjEzYmExYTkgMTAwNjQ0CiAgICAgICAgZWxzZSBpZiAobm9zaWRl ID09IEVWQUxfQVZPSURfU0lERV9FRkZFQ1RTKQogIAl7CiAgCSAgdHlwZSA9IGNoZWNrX3R5cGVk ZWYgKHZhbHVlX3R5cGUgKGFyZzEpKTsKLUBAIC0yNTE2LDEyICsyNjY5LDE4IEBAIGV2YWx1YXRl X3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTI1MjAsMTIg KzI2NzQsMTggQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0 X3R5cGUsCiAgCSAgLyogSW4gQyB5b3UgY2FuIGRlcmVmZXJlbmNlIGFuIGFycmF5IHRvIGdldCB0 aGUgMXN0IGVsdC4gICovCiAgCSAgICAgIHx8IFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RF X0FSUkFZCiAgCSAgICApCkBAIC0xODMwLDcgKzE2NzIsNyBAQCBpbmRleCA1Mzk0ODlmLi4xM2Jh MWE5IDEwMDY0NAogIAkgIGVsc2UKICAJICAgIGVycm9yIChfKCJBdHRlbXB0IHRvIHRha2UgY29u dGVudHMgb2YgYSBub24tcG9pbnRlciB2YWx1ZS4iKSk7CiAgCX0KLUBAIC0yNTMxLDkgKzI2OTAs MTQgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUs CitAQCAtMjUzNSw5ICsyNjk1LDE0IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0 IHR5cGUgKmV4cGVjdF90eXBlLAogIAkgZG8uICAibG9uZyBsb25nIiB2YXJpYWJsZXMgYXJlIHJh cmUgZW5vdWdoIHRoYXQKICAJIEJVSUxUSU5fVFlQRV9MT05HRVNUIHdvdWxkIHNlZW0gdG8gYmUg YSBtaXN0YWtlLiAgKi8KICAgICAgICBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVf SU5UKQpAQCAtMTg0OCw3ICsxNjkwLDcgQEAgaW5kZXggNTM5NDg5Zi4uMTNiYTFhOSAxMDA2NDQK ICAKICAgICAgY2FzZSBVTk9QX0FERFI6CiAgICAgICAgLyogQysrOiBjaGVjayBmb3IgYW5kIGhh bmRsZSBwb2ludGVyIHRvIG1lbWJlcnMuICAqLwotQEAgLTI5NjMsNyArMzEyNyw3IEBAIGV2YWx1 YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorQEAgLTI5 NjcsNyArMzEzMiw3IEBAIGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uIChzdHJ1Y3QgZXhw cmVzc2lvbiAqZXhwLAogIHsKICAgIGVudW0gZXhwX29wY29kZSBvcDsKICAgIGludCBwYzsKQEAg LTE4NTcsNyArMTY5OSw3IEBAIGluZGV4IDUzOTQ4OWYuLjEzYmExYTkgMTAwNjQ0CiAgICBzdHJ1 Y3Qgc3ltYm9sICp2YXI7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKICAKLUBAIC0yOTc0LDEzICsz MTM4LDE4IEBAIGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uIChzdHJ1Y3QgZXhwcmVzc2lv biAqZXhwLAorQEAgLTI5NzgsMTMgKzMxNDMsMTggQEAgZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29l cmNpb24gKHN0cnVjdCBleHByZXNzaW9uICpleHAsCiAgICAgIHsKICAgICAgY2FzZSBPUF9WQVJf VkFMVUU6CiAgICAgICAgdmFyID0gZXhwLT5lbHRzW3BjICsgMl0uc3ltYm9sOwpAQCAtMTg3Nyw3 ICsxNzE5LDcgQEAgaW5kZXggNTM5NDg5Zi4uMTNiYTFhOSAxMDA2NDQKICAJICByZXR1cm4gdmFs dWVfY2FzdCAobG9va3VwX3BvaW50ZXJfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpLAog IAkJCSAgICAgdmFsKTsKICAJfQotQEAgLTMwMzgsOSArMzIwNywxMyBAQCBldmFsdWF0ZV9zdWJl eHBfZm9yX3NpemVvZiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MpCitAQCAtMzA0 Miw5ICszMjEyLDEzIEBAIGV2YWx1YXRlX3N1YmV4cF9mb3Jfc2l6ZW9mIChzdHJ1Y3QgZXhwcmVz c2lvbiAqZXhwLCBpbnQgKnBvcykKICAKICAgICAgY2FzZSBPUF9WQVJfVkFMVUU6CiAgICAgICAg KCpwb3MpICs9IDQ7CkBAIC0xODk0LDcgKzE3MzYsNyBAQCBpbmRleCA1Mzk0ODlmLi4xM2JhMWE5 IDEwMDY0NAogIAogICAgICBkZWZhdWx0OgogICAgICAgIHZhbCA9IGV2YWx1YXRlX3N1YmV4cCAo TlVMTF9UWVBFLCBleHAsIHBvcywgRVZBTF9BVk9JRF9TSURFX0VGRkVDVFMpOwotQEAgLTMwNzEs MTggKzMyNDQsMjUgQEAgcGFyc2VfYW5kX2V2YWxfdHlwZSAoY2hhciAqcCwgaW50IGxlbmd0aCkK K0BAIC0zMDc1LDE4ICszMjQ5LDI1IEBAIHBhcnNlX2FuZF9ldmFsX3R5cGUgKGNoYXIgKnAsIGlu dCBsZW5ndGgpCiAgaW50CiAgY2FsY19mNzdfYXJyYXlfZGltcyAoc3RydWN0IHR5cGUgKmFycmF5 X3R5cGUpCiAgewpAQCAtMTkzMSw3ICsxNzczLDcgQEAgaW5kZXggNTM5NDg5Zi4uMTNiYTFhOSAx MDA2NDQKICsKICB9CiBkaWZmIC0tZ2l0IGEvZ2RiL2YtZXhwLnkgYi9nZGIvZi1leHAueQotaW5k ZXggODQ2Y2MwMi4uOTI4MzE4MyAxMDA2NDQKK2luZGV4IDdhOTRiMTUuLmE2YmE3ODQgMTAwNjQ0 CiAtLS0gYS9nZGIvZi1leHAueQogKysrIGIvZ2RiL2YtZXhwLnkKIEBAIC0yOTcsNyArMjk3LDkg QEAgYXJnbGlzdCA6CXN1YnJhbmdlCkBAIC0xOTQ2LDcgKzE3ODgsNyBAQCBpbmRleCA4NDZjYzAy Li45MjgzMTgzIDEwMDY0NAogIAk7CiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL2YtbGFuZy5oIGIvZ2Ri L2YtbGFuZy5oCi1pbmRleCA0ZWYxYWNmLi44ZGEwMTZiIDEwMDY0NAoraW5kZXggMmQ2N2E0OC4u NGQyZjQxMSAxMDA2NDQKIC0tLSBhL2dkYi9mLWxhbmcuaAogKysrIGIvZ2RiL2YtbGFuZy5oCiBA QCAtMjksNiArMjksMTAgQEAgZXh0ZXJuIHZvaWQgZl9lcnJvciAoY2hhciAqKTsJLyogRGVmaW5l ZCBpbiBmLWV4cC55ICovCkBAIC0xOTYxLDE5ICsxODAzLDE4IEBAIGluZGV4IDRlZjFhY2YuLjhk YTAxNmIgMTAwNjQ0CiAgCQkJIHN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkgY29uc3Qgc3Ry dWN0IHZhbHVlICosCiBkaWZmIC0tZ2l0IGEvZ2RiL2YtdHlwZXByaW50LmMgYi9nZGIvZi10eXBl cHJpbnQuYwotaW5kZXggYWEzMzIzMS4uZGY5OThjNCAxMDA2NDQKK2luZGV4IDgzNTZhYWIuLjUw NTAyNTUgMTAwNjQ0CiAtLS0gYS9nZGIvZi10eXBlcHJpbnQuYwogKysrIGIvZ2RiL2YtdHlwZXBy aW50LmMKLUBAIC0zMCw3ICszMCw3IEBACitAQCAtMzAsNiArMzAsNyBAQAogICNpbmNsdWRlICJn ZGJjb3JlLmgiCiAgI2luY2x1ZGUgInRhcmdldC5oIgogICNpbmNsdWRlICJmLWxhbmcuaCIKLS0K ICsjaW5jbHVkZSAiZHdhcmYybG9jLmgiCi0gI2luY2x1ZGUgImdkYl9zdHJpbmcuaCIKLSAjaW5j bHVkZSA8ZXJybm8uaD4KICAKLUBAIC00Nyw2ICs0NywzNCBAQCB2b2lkIGZfdHlwZV9wcmludF92 YXJzcGVjX3ByZWZpeCAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHVpX2ZpbGUgKiwKKyAjaW5jbHVk ZSA8c3RyaW5nLmg+CisgI2luY2x1ZGUgPGVycm5vLmg+CitAQCAtNDcsNiArNDgsMzQgQEAgdm9p ZCBmX3R5cGVfcHJpbnRfdmFyc3BlY19wcmVmaXggKHN0cnVjdCB0eXBlICosIHN0cnVjdCB1aV9m aWxlICosCiAgdm9pZCBmX3R5cGVfcHJpbnRfYmFzZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHVp X2ZpbGUgKiwgaW50LCBpbnQpOwogIAwKICAKQEAgLTIwMDgsNyArMTg0OSw3IEBAIGluZGV4IGFh MzMyMzEuLmRmOTk4YzQgMTAwNjQ0CiAgLyogTEVWRUwgaXMgdGhlIGRlcHRoIHRvIGluZGVudCBs aW5lcyBieS4gICovCiAgCiAgdm9pZAotQEAgLTU2LDYgKzg0LDkgQEAgZl9wcmludF90eXBlIChz dHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgY2hhciAqdmFyc3RyaW5nLCBzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtLAorQEAgLTU2LDYgKzg1LDkgQEAgZl9wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgY29uc3QgY2hhciAqdmFyc3RyaW5nLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAogICAgZW51 bSB0eXBlX2NvZGUgY29kZTsKICAgIGludCBkZW1hbmdsZWRfYXJnczsKICAKQEAgLTIwMTgsNyAr MTg1OSw3IEBAIGluZGV4IGFhMzMyMzEuLmRmOTk4YzQgMTAwNjQ0CiAgICBmX3R5cGVfcHJpbnRf YmFzZSAodHlwZSwgc3RyZWFtLCBzaG93LCBsZXZlbCk7CiAgICBjb2RlID0gVFlQRV9DT0RFICh0 eXBlKTsKICAgIGlmICgodmFyc3RyaW5nICE9IE5VTEwgJiYgKnZhcnN0cmluZyAhPSAnXDAnKQot QEAgLTE2Miw2ICsxOTMsOSBAQCBmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVjdCB0 eXBlICp0eXBlLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorQEAgLTE2Miw2ICsxOTQsOSBAQCBm X3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtLAogIAogICAgUVVJVDsKICAKQEAgLTIwMjksNyArMTg3MCw3IEBAIGluZGV4 IGFhMzMyMzEuLmRmOTk4YzQgMTAwNjQ0CiAgICAgIHsKICAgICAgY2FzZSBUWVBFX0NPREVfQVJS QVk6CiBkaWZmIC0tZ2l0IGEvZ2RiL2YtdmFscHJpbnQuYyBiL2dkYi9mLXZhbHByaW50LmMKLWlu ZGV4IGQwMWQ2ZWMuLjhhMjExNDkgMTAwNjQ0CitpbmRleCBkOGM3NjdmLi40YWEwZDVlIDEwMDY0 NAogLS0tIGEvZ2RiL2YtdmFscHJpbnQuYwogKysrIGIvZ2RiL2YtdmFscHJpbnQuYwogQEAgLTUx LDE1ICs1MSwxNyBAQCBpbnQgZjc3X2FycmF5X29mZnNldF90YmxbTUFYX0ZPUlRSQU5fRElNUyAr IDFdWzJdOwpAQCAtMjE2OCw3ICsyMDA5LDcgQEAgaW5kZXggZDAxZDZlYy4uOGEyMTE0OSAxMDA2 NDQKICAgIHN3aXRjaCAoVFlQRV9DT0RFICh0eXBlKSkKICAgICAgewogZGlmZiAtLWdpdCBhL2dk Yi9maW5kdmFyLmMgYi9nZGIvZmluZHZhci5jCi1pbmRleCBmNTg2Y2UyLi44ZmQ1YTA4IDEwMDY0 NAoraW5kZXggMDY0N2MwZi4uYTJhMGE0ZiAxMDA2NDQKIC0tLSBhL2dkYi9maW5kdmFyLmMKICsr KyBiL2dkYi9maW5kdmFyLmMKIEBAIC0zNCw2ICszNCw3IEBACkBAIC0yMTc5LDcgKzIwMjAsNyBA QCBpbmRleCBmNTg2Y2UyLi44ZmQ1YTA4IDEwMDY0NAogIAogIC8qIEJhc2ljIGJ5dGUtc3dhcHBp bmcgcm91dGluZXMuICBBbGwgJ2V4dHJhY3QnIGZ1bmN0aW9ucyByZXR1cm4gYQogICAgIGhvc3Qt Zm9ybWF0IGludGVnZXIgZnJvbSBhIHRhcmdldC1mb3JtYXQgaW50ZWdlciBhdCBBRERSIHdoaWNo IGlzCi1AQCAtNDQzLDcgKzQ0NCwxMCBAQCBtaW5zeW1fbG9va3VwX2l0ZXJhdG9yX2NiIChzdHJ1 Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgdm9pZCAqY2JfZGF0YSkKK0BAIC00MTYsNyArNDE3LDEwIEBA IG1pbnN5bV9sb29rdXBfaXRlcmF0b3JfY2IgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCB2b2lk ICpjYl9kYXRhKQogIH0KICAKICAvKiBBIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9yIHRoZSAi bGFfcmVhZF92YXJfdmFsdWUiIGhvb2sgaW4KQEAgLTIxOTEsNyArMjAzMiw3IEBAIGluZGV4IGY1 ODZjZTIuLjhmZDVhMDggMTAwNjQ0CiAgCiAgc3RydWN0IHZhbHVlICoKICBkZWZhdWx0X3JlYWRf dmFyX3ZhbHVlIChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkK LUBAIC00NTIsMTMgKzQ1Niw2IEBAIGRlZmF1bHRfcmVhZF92YXJfdmFsdWUgKHN0cnVjdCBzeW1i b2wgKnZhciwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQorQEAgLTQyNSwxMyArNDI5LDYgQEAg ZGVmYXVsdF9yZWFkX3Zhcl92YWx1ZSAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVf aW5mbyAqZnJhbWUpCiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IFNZTUJPTF9UWVBFICh2YXIpOwog ICAgQ09SRV9BRERSIGFkZHI7CiAgCkBAIC0yMjA1LDczICsyMDQ2LDE3IEBAIGluZGV4IGY1ODZj ZTIuLjhmZDVhMDggMTAwNjQ0CiAgICBpZiAoc3ltYm9sX3JlYWRfbmVlZHNfZnJhbWUgKHZhcikp CiAgICAgIGdkYl9hc3NlcnQgKGZyYW1lKTsKICAKLUBAIC01MDIsNyArNDk5LDYgQEAgZGVmYXVs dF9yZWFkX3Zhcl92YWx1ZSAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAq ZnJhbWUpCi0gICAgICAgcmV0dXJuIHY7Ci0gCi0gICAgIGNhc2UgTE9DX1NUQVRJQzoKLS0gICAg ICB2ID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAodHlwZSk7Ci0gICAgICAgaWYgKG92ZXJsYXlfZGVi dWdnaW5nKQotIAlhZGRyID0gc3ltYm9sX292ZXJsYXllZF9hZGRyZXNzIChTWU1CT0xfVkFMVUVf QUREUkVTUyAodmFyKSwKLSAJCQkJCSBTWU1CT0xfT0JKX1NFQ1RJT04gKFNZTUJPTF9PQkpGSUxF ICh2YXIpLAotQEAgLTUxNyw3ICs1MTMsNiBAQCBkZWZhdWx0X3JlYWRfdmFyX3ZhbHVlIChzdHJ1 Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKLSAJZXJyb3IgKF8oIlVu a25vd24gYXJndW1lbnQgbGlzdCBhZGRyZXNzIGZvciBgJXMnLiIpLAotIAkgICAgICAgU1lNQk9M X1BSSU5UX05BTUUgKHZhcikpOwotICAgICAgIGFkZHIgKz0gU1lNQk9MX1ZBTFVFICh2YXIpOwot LSAgICAgIHYgPSBhbGxvY2F0ZV92YWx1ZV9sYXp5ICh0eXBlKTsKLSAgICAgICBicmVhazsKLSAK LSAgICAgY2FzZSBMT0NfUkVGX0FSRzoKLUBAIC01MzIsMTQgKzUyNywxMiBAQCBkZWZhdWx0X3Jl YWRfdmFyX3ZhbHVlIChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFt ZSkKLSAJYXJncmVmICs9IFNZTUJPTF9WQUxVRSAodmFyKTsKLSAJcmVmID0gdmFsdWVfYXQgKGxv b2t1cF9wb2ludGVyX3R5cGUgKHR5cGUpLCBhcmdyZWYpOwotIAlhZGRyID0gdmFsdWVfYXNfYWRk cmVzcyAocmVmKTsKLS0JdiA9IGFsbG9jYXRlX3ZhbHVlX2xhenkgKHR5cGUpOwotIAlicmVhazsK LSAgICAgICB9Ci0gCi0gICAgIGNhc2UgTE9DX0xPQ0FMOgotICAgICAgIGFkZHIgPSBnZXRfZnJh bWVfbG9jYWxzX2FkZHJlc3MgKGZyYW1lKTsKLSAgICAgICBhZGRyICs9IFNZTUJPTF9WQUxVRSAo dmFyKTsKLS0gICAgICB2ID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAodHlwZSk7Ci0gICAgICAgYnJl YWs7Ci0gCi0gICAgIGNhc2UgTE9DX1RZUEVERUY6Ci1AQCAtNTQ4LDcgKzU0MSw2IEBAIGRlZmF1 bHRfcmVhZF92YXJfdmFsdWUgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1lX2luZm8g KmZyYW1lKQotICAgICAgIGJyZWFrOwotIAotICAgICBjYXNlIExPQ19CTE9DSzoKLS0gICAgICB2 ID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAodHlwZSk7Ci0gICAgICAgaWYgKG92ZXJsYXlfZGVidWdn aW5nKQotIAlhZGRyID0gc3ltYm9sX292ZXJsYXllZF9hZGRyZXNzCi0gCSAgKEJMT0NLX1NUQVJU IChTWU1CT0xfQkxPQ0tfVkFMVUUgKHZhcikpLCBTWU1CT0xfT0JKX1NFQ1RJT04gKFNZTUJPTF9P QkpGSUxFICh2YXIpLAotQEAgLTU3NSw3ICs1NjcsNiBAQCBkZWZhdWx0X3JlYWRfdmFyX3ZhbHVl IChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKLSAJICAgICAg ICAgICAgIFNZTUJPTF9QUklOVF9OQU1FICh2YXIpKTsKLSAKLSAJICAgIGFkZHIgPSB2YWx1ZV9h c19hZGRyZXNzIChyZWd2YWwpOwotLQkgICAgdiA9IGFsbG9jYXRlX3ZhbHVlX2xhenkgKHR5cGUp OwotIAkgIH0KLSAJZWxzZQotIAkgIHsKLUBAIC02MjAsNyArNjExLDYgQEAgZGVmYXVsdF9yZWFk X3Zhcl92YWx1ZSAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUp Ci0gCWlmIChvYmpfc2VjdGlvbgotIAkgICAgJiYgKG9ial9zZWN0aW9uLT50aGVfYmZkX3NlY3Rp b24tPmZsYWdzICYgU0VDX1RIUkVBRF9MT0NBTCkgIT0gMCkKLSAJICBhZGRyID0gdGFyZ2V0X3Ry YW5zbGF0ZV90bHNfYWRkcmVzcyAob2JqX3NlY3Rpb24tPm9iamZpbGUsIGFkZHIpOwotLQl2ID0g YWxsb2NhdGVfdmFsdWVfbGF6eSAodHlwZSk7Ci0gICAgICAgfQotICAgICAgIGJyZWFrOwotIAot QEAgLTYzMyw2ICs2MjMsMTAgQEAgZGVmYXVsdF9yZWFkX3Zhcl92YWx1ZSAoc3RydWN0IHN5bWJv bCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUpCitAQCAtNTk5LDYgKzU5Niw5IEBAIGRl ZmF1bHRfcmVhZF92YXJfdmFsdWUgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1lX2lu Zm8gKmZyYW1lKQogICAgICAgIGJyZWFrOwogICAgICB9CiAgCiArICAvKiBBRERSIGlzIHNldCBo ZXJlIGZvciBBTExPQ0FURV9WQUxVRSdzIENIRUNLX1RZUEVERUYgZm9yCiArICAgICBEV19PUF9Q VVNIX09CSkVDVF9BRERSRVNTLiAgKi8KICsgIG9iamVjdF9hZGRyZXNzX3NldCAoYWRkcik7Ci0r ICB2ID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAodHlwZSk7Ci0gICBWQUxVRV9MVkFMICh2KSA9IGx2 YWxfbWVtb3J5OwotICAgc2V0X3ZhbHVlX2FkZHJlc3MgKHYsIGFkZHIpOworICAgdiA9IHZhbHVl X2F0X2xhenkgKHR5cGUsIGFkZHIpOwogICAgcmV0dXJuIHY7Ci1AQCAtNzM3LDEwICs3MzEsMTEg QEAgc3RydWN0IHZhbHVlICoKKyB9CitAQCAtNzAyLDEwICs3MDIsMTEgQEAgc3RydWN0IHZhbHVl ICoKICB2YWx1ZV9mcm9tX3JlZ2lzdGVyIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IHJlZ251bSwg c3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo ID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKQEAgLTIyODUsNyArMjA3MCw3IEBAIGluZGV4IGY1 ODZjZTIuLjhmZDVhMDggMTAwNjQ0CiAgICAgIHsKICAgICAgICBpbnQgb3B0aW0sIHVuYXZhaWws IG9rOwogIAotQEAgLTc1NSw3ICs3NTAsNyBAQCB2YWx1ZV9mcm9tX3JlZ2lzdGVyIChzdHJ1Y3Qg dHlwZSAqdHlwZSwgaW50IHJlZ251bSwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQorQEAgLTcy MCw3ICs3MjEsNyBAQCB2YWx1ZV9mcm9tX3JlZ2lzdGVyIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50 IHJlZ251bSwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQogICAgICAgIFZBTFVFX0xWQUwgKHYp ID0gbHZhbF9yZWdpc3RlcjsKICAgICAgICBWQUxVRV9GUkFNRV9JRCAodikgPSBnZXRfZnJhbWVf aWQgKGZyYW1lKTsKICAgICAgICBWQUxVRV9SRUdOVU0gKHYpID0gcmVnbnVtOwpAQCAtMjMxNSwy MCArMjEwMCwxOSBAQCBpbmRleCAwNWEzOGIyLi45ODAxZmRmIDEwMDY0NAogICAgc2V0IHZhcmlh YmxlICRnZGJfaW5pdF9kb25lID0gMQogIAogZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIv Z2RiL2dkYnR5cGVzLmMKLWluZGV4IGQxOWM1OTMuLjM5OTU5MTMgMTAwNjQ0CitpbmRleCA4ZTMw OTBkLi43NThiM2M1IDEwMDY0NAogLS0tIGEvZ2RiL2dkYnR5cGVzLmMKICsrKyBiL2dkYi9nZGJ0 eXBlcy5jCi1AQCAtMzgsNiArMzgsOSBAQAotICNpbmNsdWRlICJoYXNodGFiLmgiCi0gI2luY2x1 ZGUgImV4Y2VwdGlvbnMuaCIKK0BAIC00MCw2ICs0MCw4IEBACiAgI2luY2x1ZGUgImNwLXN1cHBv cnQuaCIKKyAjaW5jbHVkZSAiYmNhY2hlLmgiCisgI2luY2x1ZGUgImR3YXJmMmxvYy5oIgogKyNp bmNsdWRlICJvYnNlcnZlci5oIgogKyNpbmNsdWRlICJkd2FyZjJleHByLmgiCi0rI2luY2x1ZGUg ImR3YXJmMmxvYy5oIgogIAogIC8qIEluaXRpYWxpemUgQkFETkVTUyBjb25zdGFudHMuICAqLwog IAotQEAgLTE4Niw2ICsxODksNDMgQEAgYWxsb2NfdHlwZSAoc3RydWN0IG9iamZpbGUgKm9iamZp bGUpCitAQCAtMTg4LDYgKzE5MCw0MyBAQCBhbGxvY190eXBlIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZSkKICAgIHJldHVybiB0eXBlOwogIH0KICAKQEAgLTIzNzIsNyArMjE1Niw3IEBAIGluZGV4 IGQxOWM1OTMuLjM5OTU5MTMgMTAwNjQ0CiAgLyogQWxsb2NhdGUgYSBuZXcgR0RCQVJDSC1hc3Nv Y2lhdGVkIHR5cGUgc3RydWN0dXJlIGFuZCBmaWxsIGl0CiAgICAgd2l0aCBzb21lIGRlZmF1bHRz LiAgU3BhY2UgZm9yIHRoZSB0eXBlIHN0cnVjdHVyZSBpcyBhbGxvY2F0ZWQKICAgICBvbiB0aGUg aGVhcC4gICovCi1AQCAtMzExLDcgKzM1MSw3IEBAIG1ha2VfcG9pbnRlcl90eXBlIChzdHJ1Y3Qg dHlwZSAqdHlwZSwgc3RydWN0IHR5cGUgKip0eXBlcHRyKQorQEAgLTMyOCw3ICszNjcsNyBAQCBt YWtlX3BvaW50ZXJfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB0eXBlICoqdHlwZXB0 cikKICAKICAgIGlmICh0eXBlcHRyID09IDAgfHwgKnR5cGVwdHIgPT0gMCkJLyogV2UnbGwgbmVl ZCB0byBhbGxvY2F0ZSBvbmUuICAqLwogICAgICB7CkBAIC0yMzgxLDcgKzIxNjUsNyBAQCBpbmRl eCBkMTljNTkzLi4zOTk1OTEzIDEwMDY0NAogICAgICAgIGlmICh0eXBlcHRyKQogIAkqdHlwZXB0 ciA9IG50eXBlOwogICAgICB9Ci1AQCAtMzg0LDcgKzQyNCw3IEBAIG1ha2VfcmVmZXJlbmNlX3R5 cGUgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdHlwZSAqKnR5cGVwdHIpCitAQCAtNDAxLDcg KzQ0MCw3IEBAIG1ha2VfcmVmZXJlbmNlX3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3Qg dHlwZSAqKnR5cGVwdHIpCiAgCiAgICBpZiAodHlwZXB0ciA9PSAwIHx8ICp0eXBlcHRyID09IDAp CS8qIFdlJ2xsIG5lZWQgdG8gYWxsb2NhdGUgb25lLiAgKi8KICAgICAgewpAQCAtMjM5MCw3ICsy MTc0LDcgQEAgaW5kZXggZDE5YzU5My4uMzk5NTkxMyAxMDA2NDQKICAgICAgICBpZiAodHlwZXB0 cikKICAJKnR5cGVwdHIgPSBudHlwZTsKICAgICAgfQotQEAgLTgwNyw2ICs4NDcsNyBAQCBjcmVh dGVfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90eXBlLCBzdHJ1Y3QgdHlwZSAqaW5k ZXhfdHlwZSwKK0BAIC04MjQsNiArODYzLDcgQEAgY3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVjdCB0 eXBlICpyZXN1bHRfdHlwZSwgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUsCiAgICAgIFRZUEVfWkFM TE9DIChyZXN1bHRfdHlwZSwgc2l6ZW9mIChzdHJ1Y3QgcmFuZ2VfYm91bmRzKSk7CiAgICBUWVBF X0xPV19CT1VORCAocmVzdWx0X3R5cGUpID0gbG93X2JvdW5kOwogICAgVFlQRV9ISUdIX0JPVU5E IChyZXN1bHRfdHlwZSkgPSBoaWdoX2JvdW5kOwpAQCAtMjM5OCw3ICsyMTgyLDcgQEAgaW5kZXgg ZDE5YzU5My4uMzk5NTkxMyAxMDA2NDQKICAKICAgIGlmIChsb3dfYm91bmQgPj0gMCkKICAgICAg VFlQRV9VTlNJR05FRCAocmVzdWx0X3R5cGUpID0gMTsKLUBAIC05MjcsNiArOTY4LDEwIEBAIGdl dF9hcnJheV9ib3VuZHMgKHN0cnVjdCB0eXBlICp0eXBlLCBMT05HRVNUICpsb3dfYm91bmQsIExP TkdFU1QgKmhpZ2hfYm91bmQpCitAQCAtOTQ0LDYgKzk4NCwxMCBAQCBnZXRfYXJyYXlfYm91bmRz IChzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VTVCAqbG93X2JvdW5kLCBMT05HRVNUICpoaWdoX2Jv dW5kKQogICAgcmV0dXJuIDE7CiAgfQogIApAQCAtMjQwOSw3ICsyMTkzLDcgQEAgaW5kZXggZDE5 YzU5My4uMzk5NTkxMyAxMDA2NDQKICAvKiBDcmVhdGUgYW4gYXJyYXkgdHlwZSB1c2luZyBlaXRo ZXIgYSBibGFuayB0eXBlIHN1cHBsaWVkIGluCiAgICAgUkVTVUxUX1RZUEUsIG9yIGNyZWF0aW5n IGEgbmV3IHR5cGUsIGluaGVyaXRpbmcgdGhlIG9iamZpbGUgZnJvbQogICAgIFJBTkdFX1RZUEUu Ci1AQCAtOTUwLDI2ICs5OTUsMzEgQEAgY3JlYXRlX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICpy ZXN1bHRfdHlwZSwKK0BAIC05NjcsMjYgKzEwMTEsMzEgQEAgY3JlYXRlX2FycmF5X3R5cGUgKHN0 cnVjdCB0eXBlICpyZXN1bHRfdHlwZSwKICAKICAgIFRZUEVfQ09ERSAocmVzdWx0X3R5cGUpID0g VFlQRV9DT0RFX0FSUkFZOwogICAgVFlQRV9UQVJHRVRfVFlQRSAocmVzdWx0X3R5cGUpID0gZWxl bWVudF90eXBlOwpAQCAtMjQ1NCw3ICsyMjM4LDcgQEAgaW5kZXggZDE5YzU5My4uMzk5NTkxMyAx MDA2NDQKICAKICAgIHJldHVybiByZXN1bHRfdHlwZTsKICB9Ci1AQCAtMTQ5MCw2ICsxNTQwLDEw NSBAQCBzdHViX25vbmFtZV9jb21wbGFpbnQgKHZvaWQpCitAQCAtMTUwOCw2ICsxNTU3LDEwNSBA QCBzdHViX25vbmFtZV9jb21wbGFpbnQgKHZvaWQpCiAgICBjb21wbGFpbnQgKCZzeW1maWxlX2Nv bXBsYWludHMsIF8oInN0dWIgdHlwZSBoYXMgTlVMTCBuYW1lIikpOwogIH0KICAKQEAgLTI1NjAs NyArMjM0NCw3IEBAIGluZGV4IGQxOWM1OTMuLjM5OTU5MTMgMTAwNjQ0CiAgLyogRmluZCB0aGUg cmVhbCB0eXBlIG9mIFRZUEUuICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHJlYWwgdHlwZSwK ICAgICBhZnRlciByZW1vdmluZyBhbGwgbGF5ZXJzIG9mIHR5cGVkZWZzLCBhbmQgY29tcGxldGlu ZyBvcGFxdWUgb3Igc3R1YgogICAgIHR5cGVzLiAgQ29tcGxldGlvbiBjaGFuZ2VzIHRoZSBUWVBF IGFyZ3VtZW50LCBidXQgc3RyaXBwaW5nIG9mCi1AQCAtMTY1Niw1MiArMTgwNSwzNyBAQCBjaGVj a190eXBlZGVmIChzdHJ1Y3QgdHlwZSAqdHlwZSkKK0BAIC0xNjc0LDUyICsxODIyLDM3IEBAIGNo ZWNrX3R5cGVkZWYgKHN0cnVjdCB0eXBlICp0eXBlKQogICAgICAgICAgfQogICAgICB9CiAgCkBA IC0yNjM0LDcgKzI0MTgsNyBAQCBpbmRleCBkMTljNTkzLi4zOTk1OTEzIDEwMDY0NAogIAkgIFRZ UEVfVEFSR0VUX1NUVUIgKHR5cGUpID0gMDsKICAJfQogICAgICAgIGVsc2UgaWYgKFRZUEVfQ09E RSAodHlwZSkgPT0gVFlQRV9DT0RFX1JBTkdFKQotQEAgLTE3MDksNiArMTg0Myw3IEBAIGNoZWNr X3R5cGVkZWYgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTE3MjcsNiArMTg2MCw3IEBAIGNoZWNr X3R5cGVkZWYgKHN0cnVjdCB0eXBlICp0eXBlKQogIAkgIFRZUEVfTEVOR1RIICh0eXBlKSA9IFRZ UEVfTEVOR1RIICh0YXJnZXRfdHlwZSk7CiAgCSAgVFlQRV9UQVJHRVRfU1RVQiAodHlwZSkgPSAw OwogIAl9CkBAIC0yNjQyLDcgKzI0MjYsNyBAQCBpbmRleCBkMTljNTkzLi4zOTk1OTEzIDEwMDY0 NAogICAgICB9CiAgCiAgICB0eXBlID0gbWFrZV9xdWFsaWZpZWRfdHlwZSAodHlwZSwgaW5zdGFu Y2VfZmxhZ3MsIE5VTEwpOwotQEAgLTM0MDQsMzMgKzM1MzksNDIgQEAgdHlwZV9wYWlyX2VxIChj b25zdCB2b2lkICppdGVtX2xocywgY29uc3Qgdm9pZCAqaXRlbV9yaHMpCitAQCAtMzYzMiwzMyAr Mzc2Niw0MiBAQCB0eXBlX3BhaXJfZXEgKGNvbnN0IHZvaWQgKml0ZW1fbGhzLCBjb25zdCB2b2lk ICppdGVtX3JocykKICB9CiAgCiAgLyogQWxsb2NhdGUgdGhlIGhhc2ggdGFibGUgdXNlZCBieSBj b3B5X3R5cGVfcmVjdXJzaXZlIHRvIHdhbGsKQEAgLTI3MDAsNyArMjQ4NCw3IEBAIGluZGV4IGQx OWM1OTMuLjM5OTU5MTMgMTAwNjQ0CiAgICAgIHJldHVybiB0eXBlOwogIAogICAgLyogVGhpcyB0 eXBlIHNob3VsZG4ndCBiZSBwb2ludGluZyB0byBhbnkgdHlwZXMgaW4gb3RoZXIgb2JqZmlsZXM7 Ci1AQCAtMzQ0NSw5ICszNTg5LDEwIEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLAorQEAgLTM2NzMsOSArMzgxNiwxMCBAQCBjb3B5X3R5cGVfcmVjdXJzaXZl IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAgIG5ld190eXBlID0gYWxsb2NfdHlwZV9hcmNo IChnZXRfdHlwZV9hcmNoICh0eXBlKSk7CiAgCiAgICAvKiBXZSBtdXN0IGFkZCB0aGUgbmV3IHR5 cGUgdG8gdGhlIGhhc2ggdGFibGUgaW1tZWRpYXRlbHksIGluIGNhc2UKQEAgLTI3MTQsNyArMjQ5 OCw3IEBAIGluZGV4IGQxOWM1OTMuLjM5OTU5MTMgMTAwNjQ0CiAgICBzdG9yZWQtPm9sZCA9IHR5 cGU7CiAgICBzdG9yZWQtPm5ldyA9IG5ld190eXBlOwogICAgKnNsb3QgPSBzdG9yZWQ7Ci1AQCAt MzQ1OCw2ICszNjAzLDIxIEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlLAorQEAgLTM2ODYsNiArMzgzMCwyMSBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1 Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAgIFRZUEVfT0JKRklMRV9PV05FRCAobmV3X3R5cGUpID0g MDsKICAgIFRZUEVfT1dORVIgKG5ld190eXBlKS5nZGJhcmNoID0gZ2V0X3R5cGVfYXJjaCAodHlw ZSk7CiAgCkBAIC0yNzM2LDcgKzI1MjAsNyBAQCBpbmRleCBkMTljNTkzLi4zOTk1OTEzIDEwMDY0 NAogICAgaWYgKFRZUEVfTkFNRSAodHlwZSkpCiAgICAgIFRZUEVfTkFNRSAobmV3X3R5cGUpID0g eHN0cmR1cCAoVFlQRV9OQU1FICh0eXBlKSk7CiAgICBpZiAoVFlQRV9UQUdfTkFNRSAodHlwZSkp Ci1AQCAtMzQ2NiwxMiArMzYyNiw0OCBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2Jq ZmlsZSAqb2JqZmlsZSwKK0BAIC0zNjk0LDEyICszODUzLDQ4IEBAIGNvcHlfdHlwZV9yZWN1cnNp dmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogICAgVFlQRV9JTlNUQU5DRV9GTEFHUyAobmV3 X3R5cGUpID0gVFlQRV9JTlNUQU5DRV9GTEFHUyAodHlwZSk7CiAgICBUWVBFX0xFTkdUSCAobmV3 X3R5cGUpID0gVFlQRV9MRU5HVEggKHR5cGUpOwogIApAQCAtMjc4NSw3ICsyNTY5LDcgQEAgaW5k ZXggZDE5YzU5My4uMzk5NTkxMyAxMDA2NDQKICAgICAgICBUWVBFX0ZJRUxEUyAobmV3X3R5cGUp ID0gWENBTExPQyAobmZpZWxkcywgc3RydWN0IGZpZWxkKTsKICAgICAgICBmb3IgKGkgPSAwOyBp IDwgbmZpZWxkczsgaSsrKQogIAl7Ci1AQCAtMzQ4MCw4ICszNjc2LDggQEAgY29weV90eXBlX3Jl Y3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtMzcwOCw4ICszOTAzLDggQEAg Y29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgCSAgVFlQRV9G SUVMRF9CSVRTSVpFIChuZXdfdHlwZSwgaSkgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGkp OwogIAkgIGlmIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGkpKQogIAkgICAgVFlQRV9GSUVMRF9U WVBFIChuZXdfdHlwZSwgaSkKQEAgLTI3OTYsNyArMjU4MCw3IEBAIGluZGV4IGQxOWM1OTMuLjM5 OTU5MTMgMTAwNjQ0CiAgCSAgaWYgKFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSkpCiAgCSAgICBU WVBFX0ZJRUxEX05BTUUgKG5ld190eXBlLCBpKSA9IAogIAkgICAgICB4c3RyZHVwIChUWVBFX0ZJ RUxEX05BTUUgKHR5cGUsIGkpKTsKLUBAIC0zNTEyLDI0ICszNzA4LDE4NCBAQCBjb3B5X3R5cGVf cmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BAIC0zNzQwLDI0ICszOTM1LDE4 NCBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAJfQog ICAgICB9CiAgCkBAIC0yOTg4LDcgKzI3NzIsNyBAQCBpbmRleCBkMTljNTkzLi4zOTk1OTEzIDEw MDY0NAogICAgLyogTWF5YmUgY29weSB0aGUgdHlwZV9zcGVjaWZpYyBiaXRzLgogIAogICAgICAg Tk9URSBkcm93LzIwMDUtMTItMDk6IFdlIGRvIG5vdCBjb3B5IHRoZSBDKystc3BlY2lmaWMgYml0 cyBsaWtlCi1AQCAtMzU0Niw2ICszOTAyLDE3IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVj dCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTM3NzQsNiArNDEyOSwxNyBAQCBjb3B5X3R5cGVfcmVj dXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAgIHJldHVybiBuZXdfdHlwZTsKICB9 CiAgCkBAIC0zMDA2LDcgKzI3OTAsNyBAQCBpbmRleCBkMTljNTkzLi4zOTk1OTEzIDEwMDY0NAog IC8qIE1ha2UgYSBjb3B5IG9mIHRoZSBnaXZlbiBUWVBFLCBleGNlcHQgdGhhdCB0aGUgcG9pbnRl ciAmIHJlZmVyZW5jZQogICAgIHR5cGVzIGFyZSBub3QgcHJlc2VydmVkLgogICAgIAotQEAgLTQx MTAsNiArNDQ3NywxMyBAQCB2b2lkCitAQCAtNDMzMCw2ICs0Njk2LDEzIEBAIHZvaWQKICBfaW5p dGlhbGl6ZV9nZGJ0eXBlcyAodm9pZCkKICB7CiAgICBnZGJ0eXBlc19kYXRhID0gZ2RiYXJjaF9k YXRhX3JlZ2lzdGVyX3Bvc3RfaW5pdCAoZ2RidHlwZXNfcG9zdF9pbml0KTsKQEAgLTMwMjEsNyAr MjgwNSw3IEBAIGluZGV4IGQxOWM1OTMuLjM5OTU5MTMgMTAwNjQ0CiAgCiAgICBhZGRfc2V0c2hv d196dWludGVnZXJfY21kICgib3ZlcmxvYWQiLCBub19jbGFzcywgJm92ZXJsb2FkX2RlYnVnLAog ZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5oIGIvZ2RiL2dkYnR5cGVzLmgKLWluZGV4IDBjYTdh ODcuLmM2MDI5ZGMgMTAwNjQ0CitpbmRleCA2MWRkZWZmLi5mYzZmMjc2IDEwMDY0NAogLS0tIGEv Z2RiL2dkYnR5cGVzLmgKICsrKyBiL2dkYi9nZGJ0eXBlcy5oCiBAQCAtMjI2LDYgKzIyNiwxMSBA QCBlbnVtIHR5cGVfaW5zdGFuY2VfZmxhZ192YWx1ZQpAQCAtMzIxMiw3ICsyOTk2LDcgQEAgaW5k ZXggMGNhN2E4Ny4uYzYwMjlkYyAxMDA2NDQKICAKICAvKiBDKysgKi8KICAKLUBAIC0xNTI5LDYg KzE2MzQsMTggQEAgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZSAoc3RydWN0 IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKK0BAIC0xNTMzLDYgKzE2MzgsMTggQEAgZXh0ZXJuIHN0 cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUg KiwKICAJCQkJICAgICAgIHN0cnVjdCB0eXBlICopOwogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqbG9v a3VwX2FycmF5X3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICosIExPTkdFU1QsIExPTkdFU1QpOwog IApAQCAtMzIzMSw3ICszMDE1LDcgQEAgaW5kZXggMGNhN2E4Ny4uYzYwMjlkYyAxMDA2NDQKICBl eHRlcm4gc3RydWN0IHR5cGUgKmNyZWF0ZV9zdHJpbmdfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3Ry dWN0IHR5cGUgKiwKICAJCQkJCXN0cnVjdCB0eXBlICopOwogIGV4dGVybiBzdHJ1Y3QgdHlwZSAq bG9va3VwX3N0cmluZ19yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqLCBMT05HRVNULCBMT05HRVNU KTsKLUBAIC0xNTc0LDYgKzE2OTEsMTAgQEAgZXh0ZXJuIGludCBpc19wdWJsaWNfYW5jZXN0b3Ig KHN0cnVjdCB0eXBlICosIHN0cnVjdCB0eXBlICopOworQEAgLTE1NzgsNiArMTY5NSwxMCBAQCBl eHRlcm4gaW50IGlzX3B1YmxpY19hbmNlc3RvciAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUg Kik7CiAgCiAgZXh0ZXJuIGludCBpc191bmlxdWVfYW5jZXN0b3IgKHN0cnVjdCB0eXBlICosIHN0 cnVjdCB2YWx1ZSAqKTsKICAKQEAgLTMyNDIsNyArMzAyNiw3IEBAIGluZGV4IDBjYTdhODcuLmM2 MDI5ZGMgMTAwNjQ0CiAgLyogT3ZlcmxvYWQgcmVzb2x1dGlvbiAqLwogIAogICNkZWZpbmUgTEVO R1RIX01BVENIKGJ2KSAoKGJ2KS0+cmFua1swXSkKLUBAIC0xNjUyLDggKzE3NzMsNyBAQCBleHRl cm4gdm9pZCBtYWludGVuYW5jZV9wcmludF90eXBlIChjaGFyICosIGludCk7CitAQCAtMTY1Niw4 ICsxNzc3LDcgQEAgZXh0ZXJuIHZvaWQgbWFpbnRlbmFuY2VfcHJpbnRfdHlwZSAoY2hhciAqLCBp bnQpOwogIAogIGV4dGVybiBodGFiX3QgY3JlYXRlX2NvcGllZF90eXBlc19oYXNoIChzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZSk7CiAgCkBAIC0zMjUzLDcgKzMwMzcsNyBAQCBpbmRleCAwY2E3YTg3 Li5jNjAyOWRjIDEwMDY0NAogIAogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqY29weV90eXBlIChjb25z dCBzdHJ1Y3QgdHlwZSAqdHlwZSk7CiBkaWZmIC0tZ2l0IGEvZ2RiL21haW4uYyBiL2dkYi9tYWlu LmMKLWluZGV4IDY3N2Y1ODcuLjMwYjg0OWUgMTAwNjQ0CitpbmRleCAwYzgzNDllLi5hMDdmNDFh IDEwMDY0NAogLS0tIGEvZ2RiL21haW4uYwogKysrIGIvZ2RiL21haW4uYwogQEAgLTM3LDYgKzM3 LDcgQEAKQEAgLTMyNjQsNyArMzA0OCw3IEBAIGluZGV4IDY3N2Y1ODcuLjMwYjg0OWUgMTAwNjQ0 CiAgI2luY2x1ZGUgInNvdXJjZS5oIgogICNpbmNsdWRlICJjbGkvY2xpLWNtZHMuaCIKICAjaW5j bHVkZSAicHl0aG9uL3B5dGhvbi5oIgotQEAgLTMxOCw2ICszMTksOCBAQCBjYXB0dXJlZF9tYWlu ICh2b2lkICpkYXRhKQorQEAgLTMyNSw2ICszMjYsOCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpk YXRhKQogICAgY2hhciAqY2RhcmcgPSBOVUxMOwogICAgY2hhciAqdHR5YXJnID0gTlVMTDsKICAK QEAgLTMyNzMsNyArMzA1Nyw3IEBAIGluZGV4IDY3N2Y1ODcuLjMwYjg0OWUgMTAwNjQ0CiAgICAv KiBUaGVzZSBhcmUgc3RhdGljIHNvIHRoYXQgd2UgY2FuIHRha2UgdGhlaXIgYWRkcmVzcyBpbiBh bgogICAgICAgaW5pdGlhbGl6ZXIuICAqLwogICAgc3RhdGljIGludCBwcmludF9oZWxwOwotQEAg LTUxNywxMCArNTIwLDE0IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCitAQCAtNTMxLDEw ICs1MzQsMTQgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAgICAgICB7ImFyZ3MiLCBu b19hcmd1bWVudCwgJnNldF9hcmdzLCAxfSwKICAgICAgICB7ImwiLCByZXF1aXJlZF9hcmd1bWVu dCwgMCwgJ2wnfSwKICAgICAgICB7InJldHVybi1jaGlsZC1yZXN1bHQiLCBub19hcmd1bWVudCwg JnJldHVybl9jaGlsZF9yZXN1bHQsIDF9LApAQCAtMzI4OSw3ICszMDczLDcgQEAgaW5kZXggNjc3 ZjU4Ny4uMzBiODQ5ZSAxMDA2NDQKICAgICAgICB7CiAgCWludCBvcHRpb25faW5kZXg7CiAgCi1A QCAtNTM4LDYgKzU0NSw5IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCitAQCAtNTUyLDYg KzU1OSw5IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCiAgCSAgY2FzZSAwOgogIAkgICAg LyogTG9uZyBvcHRpb24gdGhhdCBqdXN0IHNldHMgYSBmbGFnLiAgKi8KICAJICAgIGJyZWFrOwpA QCAtMzI5OSw3ICszMDgzLDcgQEAgaW5kZXggNjc3ZjU4Ny4uMzBiODQ5ZSAxMDA2NDQKICAJICBj YXNlIE9QVF9TRToKICAJICAgIHN5bWFyZyA9IG9wdGFyZzsKICAJICAgIGV4ZWNhcmcgPSBvcHRh cmc7Ci1AQCAtNzQ3LDcgKzc1NywzMSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQorQEAg LTc2MSw3ICs3NzEsMzEgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAKICAgIC8qIE5v dyB0aGF0IGdkYl9pbml0IGhhcyBjcmVhdGVkIHRoZSBpbml0aWFsIGluZmVyaW9yLCB3ZSdyZSBp bgogICAgICAgcG9zaXRpb24gdG8gc2V0IGFyZ3MgZm9yIHRoYXQgaW5mZXJpb3IuICAqLwpAQCAt MzMzMiw3ICszMTE2LDcgQEAgaW5kZXggNjc3ZjU4Ny4uMzBiODQ5ZSAxMDA2NDQKICAgICAgewog ICAgICAgIC8qIFRoZSByZW1haW5pbmcgb3B0aW9ucyBhcmUgdGhlIGNvbW1hbmQtbGluZSBvcHRp b25zIGZvciB0aGUKICAJIGluZmVyaW9yLiAgVGhlIGZpcnN0IG9uZSBpcyB0aGUgc3ltL2V4ZWMg ZmlsZSwgYW5kIHRoZSByZXN0Ci1AQCAtMTAzNyw3ICsxMDcxLDggQEAgY2FwdHVyZWRfbWFpbiAo dm9pZCAqZGF0YSkKK0BAIC0xMDQ3LDcgKzEwODEsOCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpk YXRhKQogIAogICAgLyogUmVhZCBpbiB0aGUgb2xkIGhpc3RvcnkgYWZ0ZXIgYWxsIHRoZSBjb21t YW5kIGZpbGVzIGhhdmUgYmVlbgogICAgICAgcmVhZC4gICovCkBAIC0zMzQyLDcgKzMxMjYsNyBA QCBpbmRleCA2NzdmNTg3Li4zMGI4NDllIDEwMDY0NAogIAogICAgaWYgKGJhdGNoX2ZsYWcpCiAg ICAgIHsKLUBAIC0xMDQ4LDEzICsxMDgzLDI1IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEp CitAQCAtMTA1OCwxMyArMTA5MywyNSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogICAg LyogU2hvdyB0aW1lIGFuZC9vciBzcGFjZSB1c2FnZS4gICovCiAgICBkb19jbGVhbnVwcyAocHJl X3N0YXRfY2hhaW4pOwogIApAQCAtMzM3NCw3ICszMTU4LDcgQEAgaW5kZXggNjc3ZjU4Ny4uMzBi ODQ5ZSAxMDA2NDQKICAgICAgfQogICAgLyogTm8gZXhpdCAtLSBleGl0IGlzIHRocm91Z2ggcXVp dF9jb21tYW5kLiAgKi8KICB9Ci1AQCAtMTA4OSw2ICsxMTM2LDEyIEBAIHByaW50X2dkYl9oZWxw IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQorQEAgLTEwOTksNiArMTE0NiwxMiBAQCBwcmludF9n ZGJfaGVscCAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8o IlwKICBUaGlzIGlzIHRoZSBHTlUgZGVidWdnZXIuICBVc2FnZTpcblxuXAogICAgICBnZGIgW29w dGlvbnNdIFtleGVjdXRhYmxlLWZpbGUgW2NvcmUtZmlsZSBvciBwcm9jZXNzLWlkXV1cblwKQEAg LTMzODcsNyArMzE3MSw3IEBAIGluZGV4IDY3N2Y1ODcuLjMwYjg0OWUgMTAwNjQ0CiAgICAgIGdk YiBbb3B0aW9uc10gLS1hcmdzIGV4ZWN1dGFibGUtZmlsZSBbaW5mZXJpb3ItYXJndW1lbnRzIC4u Ll1cblxuXAogICIpLCBzdHJlYW0pOwogICAgZnB1dHNfdW5maWx0ZXJlZCAoXygiXAotQEAgLTEx MzQsNiArMTE4NywxMyBAQCBPdXRwdXQgYW5kIHVzZXIgaW50ZXJmYWNlIGNvbnRyb2w6XG5cblwK K0BAIC0xMTQ0LDYgKzExOTcsMTMgQEAgT3V0cHV0IGFuZCB1c2VyIGludGVyZmFjZSBjb250cm9s OlxuXG5cCiAgICBmcHV0c191bmZpbHRlcmVkIChfKCJcCiAgICAtLWRieCAgICAgICAgICAgICAg REJYIGNvbXBhdGliaWxpdHkgbW9kZS5cblwKICAgIC0teGRiICAgICAgICAgICAgICBYREIgY29t cGF0aWJpbGl0eSBtb2RlLlxuXApAQCAtMzQwMiw3ICszMTg2LDcgQEAgaW5kZXggNjc3ZjU4Ny4u MzBiODQ5ZSAxMDA2NDQKICAiKSwgc3RyZWFtKTsKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwK IGRpZmYgLS1naXQgYS9nZGIvcC12YWxwcmludC5jIGIvZ2RiL3AtdmFscHJpbnQuYwotaW5kZXgg MDVkNGM2Zi4uYWNlYzJhMiAxMDA2NDQKK2luZGV4IGE4N2YxZjQuLjBmOTMyNzEgMTAwNjQ0CiAt LS0gYS9nZGIvcC12YWxwcmludC5jCiArKysgYi9nZGIvcC12YWxwcmludC5jCiBAQCAtMzgsNiAr MzgsNyBAQApAQCAtMzQ4MiwxMCArMzI2NiwxMCBAQCBpbmRleCAwNWQ0YzZmLi5hY2VjMmEyIDEw MDY0NAogIAwKICB2b2lkCiBkaWZmIC0tZ2l0IGEvZ2RiL3BhcnNlLmMgYi9nZGIvcGFyc2UuYwot aW5kZXggMTM2OTlhOC4uN2I5MzBjMSAxMDA2NDQKK2luZGV4IDExNzEyODkuLjJhZmRiODUgMTAw NjQ0CiAtLS0gYS9nZGIvcGFyc2UuYwogKysrIGIvZ2RiL3BhcnNlLmMKLUBAIC0xNzgwLDYgKzE3 ODAsNyBAQCBwYXJzZXJfZnByaW50ZiAoRklMRSAqeCwgY29uc3QgY2hhciAqeSwgLi4uKQorQEAg LTE3NzMsNiArMTc3Myw3IEBAIHBhcnNlcl9mcHJpbnRmIChGSUxFICp4LCBjb25zdCBjaGFyICp5 LCAuLi4pCiAgCiAgaW50CiAgb3BlcmF0b3JfY2hlY2tfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNz aW9uICpleHAsIGludCBwb3MsCkBAIC0zNDkzLDcgKzMyNzcsNyBAQCBpbmRleCAxMzY5OWE4Li43 YjkzMGMxIDEwMDY0NAogIAkJCSBpbnQgKCpvYmpmaWxlX2Z1bmMpIChzdHJ1Y3Qgb2JqZmlsZSAq b2JqZmlsZSwKICAJCQkJCSAgICAgIHZvaWQgKmRhdGEpLAogIAkJCSB2b2lkICpkYXRhKQotQEAg LTE4MTksNyArMTgyMCw3IEBAIG9wZXJhdG9yX2NoZWNrX3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVz c2lvbiAqZXhwLCBpbnQgcG9zLAorQEAgLTE4MTIsNyArMTgxMyw3IEBAIG9wZXJhdG9yX2NoZWNr X3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLAogIAkgICAgc3RydWN0 IHR5cGUgKnR5cGUgPSBlbHRzW3BvcyArIDIgKyBhcmddLnR5cGU7CiAgCSAgICBzdHJ1Y3Qgb2Jq ZmlsZSAqb2JqZmlsZSA9IFRZUEVfT0JKRklMRSAodHlwZSk7CiAgCkBAIC0zNTAyLDcgKzMyODYs NyBAQCBpbmRleCAxMzY5OWE4Li43YjkzMGMxIDEwMDY0NAogIAkgICAgICByZXR1cm4gMTsKICAJ ICB9CiAgICAgICAgfQotQEAgLTE4MzcsNyArMTgzOCw4IEBAIG9wZXJhdG9yX2NoZWNrX3N0YW5k YXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLAorQEAgLTE4MzAsNyArMTgzMSw4 IEBAIG9wZXJhdG9yX2NoZWNrX3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQg cG9zLAogIAogIAkvKiBDaGVjayBvYmpmaWxlIHdoZXJlIHRoZSB2YXJpYWJsZSBpdHNlbGYgaXMg cGxhY2VkLgogIAkgICBTWU1CT0xfT0JKX1NFQ1RJT04gKHN5bWJvbCkgbWF5IGJlIE5VTEwuICAq LwpAQCAtMzUxMiw3ICszMjk2LDcgQEAgaW5kZXggMTM2OTlhOC4uN2I5MzBjMSAxMDA2NDQKICAJ ICByZXR1cm4gMTsKICAKICAJLyogQ2hlY2sgb2JqZmlsZSB3aGVyZSBpcyBwbGFjZWQgdGhlIGNv ZGUgdG91Y2hpbmcgdGhlIHZhcmlhYmxlLiAgKi8KLUBAIC0xODUwLDI0ICsxODUyLDI3IEBAIG9w ZXJhdG9yX2NoZWNrX3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLAor QEAgLTE4NDMsMjQgKzE4NDUsMjcgQEAgb3BlcmF0b3JfY2hlY2tfc3RhbmRhcmQgKHN0cnVjdCBl eHByZXNzaW9uICpleHAsIGludCBwb3MsCiAgCiAgICAvKiBJbnZva2UgY2FsbGJhY2tzIGZvciBU WVBFIGFuZCBPQkpGSUxFIGlmIHRoZXkgd2VyZSBzZXQgYXMgbm9uLU5VTEwuICAqLwogIApAQCAt MzU0OCw3ICszMzMyLDcgQEAgaW5kZXggMTM2OTlhOC4uN2I5MzBjMSAxMDA2NDQKICAJICAgICBp bnQgKCpvYmpmaWxlX2Z1bmMpIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgdm9pZCAqZGF0YSks CiAgCSAgICAgdm9pZCAqZGF0YSkKICB7Ci1AQCAtMTg4Miw3ICsxODg3LDkgQEAgZXhwX2l0ZXJh dGUgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCitAQCAtMTg3NSw3ICsxODgwLDkgQEAgZXhwX2l0 ZXJhdGUgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCiAgCiAgICAgICAgcG9zID0gZW5kcG9zIC0g b3BsZW47CiAgICAgICAgaWYgKGV4cC0+bGFuZ3VhZ2VfZGVmbi0+bGFfZXhwX2Rlc2MtPm9wZXJh dG9yX2NoZWNrIChleHAsIHBvcywKQEAgLTM1NTksNyArMzM0Myw3IEBAIGluZGV4IDEzNjk5YTgu LjdiOTMwYzEgMTAwNjQ0CiAgCXJldHVybiAxOwogIAogICAgICAgIGVuZHBvcyA9IHBvczsKLUBA IC0xOTEzLDggKzE5MjAsMjkgQEAgZXhwX3VzZXNfb2JqZmlsZSAoc3RydWN0IGV4cHJlc3Npb24g KmV4cCwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCitAQCAtMTkwNiw4ICsxOTEzLDI5IEBAIGV4 cF91c2VzX29iamZpbGUgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlKQogIHsKICAgIGdkYl9hc3NlcnQgKG9iamZpbGUtPnNlcGFyYXRlX2RlYnVnX29iamZp bGVfYmFja2xpbmsgPT0gTlVMTCk7CiAgCkBAIC0zNTkxLDcgKzMzNzUsNyBAQCBpbmRleCAxMzY5 OWE4Li43YjkzMGMxIDEwMDY0NAogIHZvaWQKICBfaW5pdGlhbGl6ZV9wYXJzZSAodm9pZCkKIGRp ZmYgLS1naXQgYS9nZGIvcGFyc2VyLWRlZnMuaCBiL2dkYi9wYXJzZXItZGVmcy5oCi1pbmRleCA1 ZmJhZTBkLi4xZmRhZDQ2IDEwMDY0NAoraW5kZXggYzNmMjYwNy4uZmEwYWY3YiAxMDA2NDQKIC0t LSBhL2dkYi9wYXJzZXItZGVmcy5oCiArKysgYi9nZGIvcGFyc2VyLWRlZnMuaAogQEAgLTI0NSw2 ICsyNDUsOCBAQCBleHRlcm4gdm9pZCBvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQgKGNvbnN0IHN0 cnVjdCBleHByZXNzaW9uICosIGludCwgaW50ICosCkBAIC0zNjEyLDEwICszMzk2LDEwIEBAIGlu ZGV4IDVmYmFlMGQuLjFmZGFkNDYgMTAwNjQ0CiAgCQkJCQkJdm9pZCAqZGF0YSksCiAgCQkJICAg dm9pZCAqZGF0YSk7CiBkaWZmIC0tZ2l0IGEvZ2RiL3ByaW50Y21kLmMgYi9nZGIvcHJpbnRjbWQu YwotaW5kZXggMWNjMjQ4ZC4uZWVmMGM2NiAxMDA2NDQKK2luZGV4IDEwZDNjMjMuLjU3NTlkNWMg MTAwNjQ0CiAtLS0gYS9nZGIvcHJpbnRjbWQuYwogKysrIGIvZ2RiL3ByaW50Y21kLmMKLUBAIC01 MSw2ICs1MSw3IEBACitAQCAtNTAsNiArNTAsNyBAQAogICNpbmNsdWRlICJjbGkvY2xpLXV0aWxz LmgiCiAgI2luY2x1ZGUgImZvcm1hdC5oIgogICNpbmNsdWRlICJzb3VyY2UuaCIKQEAgLTM2MjMs NyArMzQwNyw3IEBAIGluZGV4IDFjYzI0OGQuLmVlZjBjNjYgMTAwNjQ0CiAgCiAgI2lmZGVmIFRV SQogICNpbmNsdWRlICJ0dWkvdHVpLmgiCQkvKiBGb3IgdHVpX2FjdGl2ZSBldCBhbC4gICAqLwot QEAgLTk4MCw2ICs5ODEsMTEgQEAgcHJpbnRfY29tbWFuZF8xIChjb25zdCBjaGFyICpleHAsIGlu dCB2b2lkcHJpbnQpCitAQCAtOTc5LDYgKzk4MCwxMSBAQCBwcmludF9jb21tYW5kXzEgKGNvbnN0 IGNoYXIgKmV4cCwgaW50IHZvaWRwcmludCkKICAgIGVsc2UKICAgICAgdmFsID0gYWNjZXNzX3Zh bHVlX2hpc3RvcnkgKDApOwogIApAQCAtMzYzNSw3ICszNDE5LDcgQEAgaW5kZXggMWNjMjQ4ZC4u ZWVmMGM2NiAxMDA2NDQKICAgIGlmICh2b2lkcHJpbnQgfHwgKHZhbCAmJiB2YWx1ZV90eXBlICh2 YWwpICYmCiAgCQkgICAgVFlQRV9DT0RFICh2YWx1ZV90eXBlICh2YWwpKSAhPSBUWVBFX0NPREVf Vk9JRCkpCiAgICAgIHsKLUBAIC0xMDYxLDYgKzEwNjcsOSBAQCBvdXRwdXRfY29tbWFuZF9jb25z dCAoY29uc3QgY2hhciAqZXhwLCBpbnQgZnJvbV90dHkpCitAQCAtMTA2MCw2ICsxMDY2LDkgQEAg b3V0cHV0X2NvbW1hbmRfY29uc3QgKGNvbnN0IGNoYXIgKmV4cCwgaW50IGZyb21fdHR5KQogIAog ICAgdmFsID0gZXZhbHVhdGVfZXhwcmVzc2lvbiAoZXhwcik7CiAgCkBAIC0zNjQ1LDcgKzM0Mjks NyBAQCBpbmRleCAxY2MyNDhkLi5lZWYwYzY2IDEwMDY0NAogICAgYW5ub3RhdGVfdmFsdWVfYmVn aW4gKHZhbHVlX3R5cGUgKHZhbCkpOwogIAogICAgZ2V0X2Zvcm1hdHRlZF9wcmludF9vcHRpb25z ICgmb3B0cywgZm9ybWF0KTsKLUBAIC0xNDk1LDYgKzE1MDQsMjQgQEAgeF9jb21tYW5kIChjaGFy ICpleHAsIGludCBmcm9tX3R0eSkKK0BAIC0xNDk0LDYgKzE1MDMsMjQgQEAgeF9jb21tYW5kIChj aGFyICpleHAsIGludCBmcm9tX3R0eSkKICAJc2V0X2ludGVybmFsdmFyIChsb29rdXBfaW50ZXJu YWx2YXIgKCJfXyIpLCBsYXN0X2V4YW1pbmVfdmFsdWUpOwogICAgICB9CiAgfQpAQCAtMzY3MCw3 ICszNDU0LDcgQEAgaW5kZXggMWNjMjQ4ZC4uZWVmMGM2NiAxMDA2NDQKICAMCiAgCiAgLyogQWRk IGFuIGV4cHJlc3Npb24gdG8gdGhlIGF1dG8tZGlzcGxheSBjaGFpbi4KLUBAIC0xOTkzLDYgKzIw MjAsMTAgQEAgcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1 Y3Qgc3ltYm9sICp2YXIsCitAQCAtMTk5NSw2ICsyMDIyLDEwIEBAIHByaW50X3ZhcmlhYmxlX2Fu ZF92YWx1ZSAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHN5bWJvbCAqdmFyLAogICAgICAgIHN0 cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHM7CiAgCiAgICAgICAgdmFsID0gcmVhZF92YXJf dmFsdWUgKHZhciwgZnJhbWUpOwpAQCAtMzY4MSw3ICszNDY1LDcgQEAgaW5kZXggMWNjMjQ4ZC4u ZWVmMGM2NiAxMDA2NDQKICAgICAgICBnZXRfdXNlcl9wcmludF9vcHRpb25zICgmb3B0cyk7CiAg ICAgICAgb3B0cy5kZXJlZl9yZWYgPSAxOwogICAgICAgIGNvbW1vbl92YWxfcHJpbnQgKHZhbCwg c3RyZWFtLCBpbmRlbnQsICZvcHRzLCBjdXJyZW50X2xhbmd1YWdlKTsKLUBAIC0yNjQ4LDQgKzI2 NzksOCBAQCBTaG93IHByaW50aW5nIG9mIHNvdXJjZSBmaWxlbmFtZSBhbmQgbGluZSBudW1iZXIg d2l0aCA8c3ltYm9sPi4iKSwgTlVMTCwKK0BAIC0yNjUxLDQgKzI2ODIsOCBAQCBTaG93IHByaW50 aW5nIG9mIHNvdXJjZSBmaWxlbmFtZSBhbmQgbGluZSBudW1iZXIgd2l0aCA8c3ltYm9sPi4iKSwg TlVMTCwKICAgIGFkZF9jb20gKCJldmFsIiwgbm9fY2xhc3MsIGV2YWxfY29tbWFuZCwgXygiXAog IENvbnZlcnQgXCJwcmludGYgZm9ybWF0IHN0cmluZ1wiLCBhcmcxLCBhcmcyLCBhcmczLCAuLi4s IGFyZ24gdG9cblwKICBhIGNvbW1hbmQgbGluZSwgYW5kIGNhbGwgaXQuIikpOwpAQCAtMzkzOCwx OSArMzcyMiwxOSBAQCBpbmRleCAwMDAwMDAwLi5kZWJiM2JiCiArCiArSW5TY29wZSAoKQogZGlm ZiAtLWdpdCBhL2dkYi9weXRob24vcHktdHlwZS5jIGIvZ2RiL3B5dGhvbi9weS10eXBlLmMKLWlu ZGV4IDMzN2UzMDcuLmJlOTFjNWEgMTAwNjQ0CitpbmRleCAxNmJiNDQyLi44Y2Y2ZGViIDEwMDY0 NAogLS0tIGEvZ2RiL3B5dGhvbi9weS10eXBlLmMKICsrKyBiL2dkYi9weXRob24vcHktdHlwZS5j Ci1AQCAtMzEsNiArMzEsOCBAQAotICNpbmNsdWRlICJiY2FjaGUuaCIKLSAjaW5jbHVkZSAiZHdh cmYybG9jLmgiCitAQCAtMjksNiArMjksOCBAQAorICNpbmNsdWRlICJsYW5ndWFnZS5oIgorICNp bmNsdWRlICJ2ZWMuaCIKICAjaW5jbHVkZSAidHlwZXByaW50LmgiCiArI2luY2x1ZGUgIm9ic2Vy dmVyLmgiCiArI2luY2x1ZGUgImdkYl9hc3NlcnQuaCIKICAKICB0eXBlZGVmIHN0cnVjdCBweXR5 X3R5cGVfb2JqZWN0CiAgewotQEAgLTM5LDExICs0MSwxOSBAQCB0eXBlZGVmIHN0cnVjdCBweXR5 X3R5cGVfb2JqZWN0CitAQCAtMzcsMTEgKzM5LDE5IEBAIHR5cGVkZWYgc3RydWN0IHB5dHlfdHlw ZV9vYmplY3QKICAKICAgIC8qIElmIGEgVHlwZSBvYmplY3QgaXMgYXNzb2NpYXRlZCB3aXRoIGFu IG9iamZpbGUsIGl0IGlzIGtlcHQgb24gYQogICAgICAgZG91Ymx5LWxpbmtlZCBsaXN0LCByb290 ZWQgaW4gdGhlIG9iamZpbGUuICBUaGlzIGxldHMgdXMgY29weSB0aGUKQEAgLTM5NzEsNyArMzc1 NSw3IEBAIGluZGV4IDMzN2UzMDcuLmJlOTFjNWEgMTAwNjQ0CiAgc3RhdGljIFB5VHlwZU9iamVj dCB0eXBlX29iamVjdF90eXBlCiAgICAgIENQWUNIRUNLRVJfVFlQRV9PQkpFQ1RfRk9SX1RZUEVE RUYgKCJ0eXBlX29iamVjdCIpOwogIAotQEAgLTExODAsOCArMTE5MCw2MyBAQCB0eXB5X3JpY2hj b21wYXJlIChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm90aGVyLCBpbnQgb3ApCitAQCAtMTAy NCw4ICsxMDM0LDYzIEBAIHR5cHlfcmljaGNvbXBhcmUgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVj dCAqb3RoZXIsIGludCBvcCkKICAKICAMCiAgCkBAIC00MDM1LDcgKzM4MTksNyBAQCBpbmRleCAz MzdlMzA3Li5iZTkxYzVhIDEwMDY0NAogIHN0YXRpYyB2b2lkCiAgc2F2ZV9vYmpmaWxlX3R5cGVz IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgdm9pZCAqZGF0dW0pCiAgewotQEAgLTEyMDIsMTIg KzEyNjcsMTMgQEAgc2F2ZV9vYmpmaWxlX3R5cGVzIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwg dm9pZCAqZGF0dW0pCitAQCAtMTA0NiwxMiArMTExMSwxMyBAQCBzYXZlX29iamZpbGVfdHlwZXMg KHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCB2b2lkICpkYXR1bSkKICAgICAgewogICAgICAgIHR5 cGVfb2JqZWN0ICpuZXh0ID0gb2JqLT5uZXh0OwogIApAQCAtNDA1Myw3ICszODM3LDcgQEAgaW5k ZXggMzM3ZTMwNy4uYmU5MWM1YSAxMDA2NDQKICAKICAgICAgICBvYmogPSBuZXh0OwogICAgICB9 Ci1AQCAtMTIxOCw0MyArMTI4NCwyOCBAQCBzYXZlX29iamZpbGVfdHlwZXMgKHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLCB2b2lkICpkYXR1bSkKK0BAIC0xMDYyLDQzICsxMTI4LDI4IEBAIHNhdmVf b2JqZmlsZV90eXBlcyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHZvaWQgKmRhdHVtKQogIH0K ICAKICBzdGF0aWMgdm9pZApAQCAtNDExMSw3ICszODk1LDcgQEAgaW5kZXggMzM3ZTMwNy4uYmU5 MWM1YSAxMDA2NDQKICAKICAvKiBSZXR1cm4gbnVtYmVyIG9mIGZpZWxkcyAoImxlbmd0aCIgb2Yg dGhlIGZpZWxkIGRpY3Rpb25hcnkpLiAgKi8KICAKLUBAIC0xNDc0LDcgKzE1MjUsMTAgQEAgdHlw ZV90b190eXBlX29iamVjdCAoc3RydWN0IHR5cGUgKnR5cGUpCitAQCAtMTMxOCw3ICsxMzY5LDEw IEBAIHR5cGVfdG9fdHlwZV9vYmplY3QgKHN0cnVjdCB0eXBlICp0eXBlKQogIAogICAgdHlwZV9v YmogPSBQeU9iamVjdF9OZXcgKHR5cGVfb2JqZWN0LCAmdHlwZV9vYmplY3RfdHlwZSk7CiAgICBp ZiAodHlwZV9vYmopCkBAIC00MTI0LDcgKzM5MDgsNyBAQCBpbmRleCAzMzdlMzA3Li5iZTkxYzVh IDEwMDY0NAogICAgcmV0dXJuIChQeU9iamVjdCAqKSB0eXBlX29iajsKICB9CiBkaWZmIC0tZ2l0 IGEvZ2RiL3B5dGhvbi9weS12YWx1ZS5jIGIvZ2RiL3B5dGhvbi9weS12YWx1ZS5jCi1pbmRleCAw ZDg3MjE5Li5jMDE5MTg0IDEwMDY0NAoraW5kZXggNGFiNzgyZC4uZWVkOTFiODc4IDEwMDY0NAog LS0tIGEvZ2RiL3B5dGhvbi9weS12YWx1ZS5jCiArKysgYi9nZGIvcHl0aG9uL3B5LXZhbHVlLmMK IEBAIC0yOSw2ICsyOSw3IEBACkBAIC00MTM1LDcgKzM5MTksNyBAQCBpbmRleCAwZDg3MjE5Li5j MDE5MTg0IDEwMDY0NAogIAogICNpZmRlZiBIQVZFX1BZVEhPTgogIAotQEAgLTEzODUsMTIgKzEz ODYsMjggQEAgZ2RicHlfaXNfdmFsdWVfb2JqZWN0IChQeU9iamVjdCAqb2JqKQorQEAgLTE1MDMs MTIgKzE1MDQsMjggQEAgZ2RicHlfaXNfdmFsdWVfb2JqZWN0IChQeU9iamVjdCAqb2JqKQogICAg cmV0dXJuIFB5T2JqZWN0X1R5cGVDaGVjayAob2JqLCAmdmFsdWVfb2JqZWN0X3R5cGUpOwogIH0K ICAKQEAgLTQxNjUsNyArMzk0OSw3IEBAIGluZGV4IDBkODcyMTkuLmMwMTkxODQgMTAwNjQ0CiAg CQkJCSAoUHlPYmplY3QgKikgJnZhbHVlX29iamVjdF90eXBlKTsKICB9CiBkaWZmIC0tZ2l0IGEv Z2RiL3B5dGhvbi9weXRob24uYyBiL2dkYi9weXRob24vcHl0aG9uLmMKLWluZGV4IDAwMDkyYzcu LmVjNDlmYzkgMTAwNjQ0CitpbmRleCAzMzdjMTcwLi44NzNjMGRjIDEwMDY0NAogLS0tIGEvZ2Ri L3B5dGhvbi9weXRob24uYwogKysrIGIvZ2RiL3B5dGhvbi9weXRob24uYwogQEAgLTY3LDYgKzY3 LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKmdkYnB5X3Nob3VsZF9wcmludF9zdGFjayA9IHB5dGhv bl9leGNwX21lc3NhZ2U7CkBAIC00MTc3LDcgKzM5NjEsNyBAQCBpbmRleCAwMDA5MmM3Li5lYzQ5 ZmM5IDEwMDY0NAogICNpbmNsdWRlICJ0YXJnZXQuaCIKICAjaW5jbHVkZSAiZ2RidGhyZWFkLmgi CiAgI2luY2x1ZGUgIm9ic2VydmVyLmgiCi1AQCAtMTExNiw2ICsxMTE4LDUzIEBAIGdkYnB5X3By aW50X3N0YWNrICh2b2lkKQorQEAgLTExMTYsNiArMTExOCw1NiBAQCBnZGJweV9wcmludF9zdGFj ayAodm9pZCkKICAKICAvKiBSZXR1cm4gdGhlIGN1cnJlbnQgUHJvZ3NwYWNlLgogICAgIFRoZXJl IGFsd2F5cyBpcyBvbmUuICAqLwpAQCAtNDE5NCw5ICszOTc4LDEyIEBAIGluZGV4IDAwMDkyYzcu LmVjNDlmYzkgMTAwNjQ0CiArewogKyAgaWYgKCEgcnVubmluZ19weXRob25fc2NyaXB0IHx8IGlu X2NsaSkKICsgICAgcmV0dXJuIFB5RXJyX0Zvcm1hdCAoUHlFeGNfUnVudGltZUVycm9yLCAiY2Fu bm90IGludm9rZSBDTEkgcmVjdXJzaXZlbHkiKTsKKysgIAorKyAgaWYgKHVpX291dF9pc19taV9s aWtlX3AgKGN1cnJlbnRfdWlvdXQpKQorKyAgICByZXR1cm4gUHlFcnJfRm9ybWF0IChQeUV4Y19S dW50aW1lRXJyb3IsIF8oIkNhbm5vdCBpbnZva2UgQ0xJIGZyb20gTUkuIikpOwogKwogKyAgaW5f Y2xpID0gMTsKLSsgIGNsaV9jb21tYW5kX2xvb3AgKCk7CisrICBjdXJyZW50X2ludGVycF9jb21t YW5kX2xvb3AgKCk7CiArICBpbl9jbGkgPSAwOwogKwogKyAgUHlfUkVUVVJOX05PTkU7CkBAIC00 MjMxLDIwICs0MDE4LDIwIEBAIGluZGV4IDAwMDkyYzcuLmVjNDlmYzkgMTAwNjQ0CiAgCiAgc3Rh dGljIFB5T2JqZWN0ICoKICBnZGJweV9nZXRfY3VycmVudF9wcm9nc3BhY2UgKFB5T2JqZWN0ICp1 bnVzZWQxLCBQeU9iamVjdCAqdW51c2VkMikKLUBAIC0xODI2LDYgKzE4NzUsOCBAQCBzdGF0aWMg UHlNZXRob2REZWYgR2RiTWV0aG9kc1tdID0KLSAgICAgIkdldCBhIHZhbHVlIGZyb20gaGlzdG9y eSIgfSwKLSAgIHsgImV4ZWN1dGUiLCAoUHlDRnVuY3Rpb24pIGV4ZWN1dGVfZ2RiX2NvbW1hbmQs IE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsCi0gICAgICJFeGVjdXRlIGEgZ2RiIGNvbW1h bmQiIH0sCitAQCAtMTgzMSw2ICsxODgzLDggQEAgc3RhdGljIFB5TWV0aG9kRGVmIEdkYk1ldGhv ZHNbXSA9CisgRXZhbHVhdGUgY29tbWFuZCwgYSBzdHJpbmcsIGFzIGEgZ2RiIENMSSBjb21tYW5k LiAgT3B0aW9uYWxseSByZXR1cm5zXG5cCisgYSBQeXRob24gU3RyaW5nIGNvbnRhaW5pbmcgdGhl IG91dHB1dCBvZiB0aGUgY29tbWFuZCBpZiB0b19zdHJpbmcgaXNcblwKKyBzZXQgdG8gVHJ1ZS4i IH0sCiArICB7ICJjbGkiLCBnZGJweV9jbGksIE1FVEhfTk9BUkdTLAogKyAgICAiRW50ZXIgdGhl IGdkYiBDTEkiIH0sCiAgICB7ICJwYXJhbWV0ZXIiLCBnZGJweV9wYXJhbWV0ZXIsIE1FVEhfVkFS QVJHUywKICAgICAgIlJldHVybiBhIGdkYiBwYXJhbWV0ZXIncyB2YWx1ZSIgfSwKICAKIGRpZmYg LS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi5oIGIvZ2RiL3B5dGhvbi9weXRob24uaAotaW5kZXgg MWExZTVjMi4uMzEyYmU5NCAxMDA2NDQKK2luZGV4IDk2YmY3YzIuLjc5YWQ2YzkgMTAwNjQ0CiAt LS0gYS9nZGIvcHl0aG9uL3B5dGhvbi5oCiArKysgYi9nZGIvcHl0aG9uL3B5dGhvbi5oCi1AQCAt OTUsNiArOTUsOCBAQCB2b2lkIGV2YWxfcHl0aG9uX2Zyb21fY29udHJvbF9jb21tYW5kIChzdHJ1 Y3QgY29tbWFuZF9saW5lICopOworQEAgLTEwOCw2ICsxMDgsOCBAQCB2b2lkIGV2YWxfcHl0aG9u X2Zyb21fY29udHJvbF9jb21tYW5kIChzdHJ1Y3QgY29tbWFuZF9saW5lICopOwogIAogIHZvaWQg c291cmNlX3B5dGhvbl9zY3JpcHQgKEZJTEUgKmZpbGUsIGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsK ICAKQEAgLTQyNTQsMTAgKzQwNDEsMTAgQEAgaW5kZXggMWExZTVjMi4uMzEyYmU5NCAxMDA2NDQK ICAJCQkgICAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKICAJCQkg ICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKIGRpZmYgLS1naXQgYS9n ZGIvc3RhY2suYyBiL2dkYi9zdGFjay5jCi1pbmRleCBkODlmZjg5Li4zMDFkNTY5IDEwMDY0NAor aW5kZXggMzE0ZTRkYS4uZDA3YTljMiAxMDA2NDQKIC0tLSBhL2dkYi9zdGFjay5jCiArKysgYi9n ZGIvc3RhY2suYwotQEAgLTUxMSw2ICs1MTEsMTAgQEAgcHJpbnRfZnJhbWVfYXJncyAoc3RydWN0 IHN5bWJvbCAqZnVuYywgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLAorQEAgLTUzNyw2ICs1Mzcs MTAgQEAgcHJpbnRfZnJhbWVfYXJncyAoc3RydWN0IHN5bWJvbCAqZnVuYywgc3RydWN0IGZyYW1l X2luZm8gKmZyYW1lLAogICAgc3RiID0gbWVtX2ZpbGVvcGVuICgpOwogICAgb2xkX2NoYWluID0g bWFrZV9jbGVhbnVwX3VpX2ZpbGVfZGVsZXRlIChzdGIpOwogIApAQCAtNDI2OSw3ICs0MDU2LDcg QEAgaW5kZXggZDg5ZmY4OS4uMzAxZDU2OSAxMDA2NDQKICAgICAgewogICAgICAgIHN0cnVjdCBi bG9jayAqYiA9IFNZTUJPTF9CTE9DS19WQUxVRSAoZnVuYyk7CiBkaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5hZGEv cGFja2VkX2FycmF5LmV4cAotaW5kZXggZTIyY2IzYS4uNWUxNjE4NiAxMDA2NDQKK2luZGV4IGFm YzE0NzUuLjdlOTRjNDkgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvcGFja2Vk X2FycmF5LmV4cAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAK IEBAIC01Niw1ICs1NiwxMSBAQCBnZGJfdGVzdF9tdWx0aXBsZSAiJHRlc3QiICIkdGVzdCIgewpA QCAtNTQ0OSw3ICs1MjM2LDcgQEAgaW5kZXggMDAwMDAwMC4uYjA1NDExZQogKwogK2dkYl90ZXN0 ICJwdHlwZSBhcnJheSIgInR5cGUgPSBjaGFyIFxcXFs3OFxcXF0iICJzZWNvbmQ6IHB0eXBlIGFy cmF5IgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYwotaW5kZXggMmNjOTM1Yi4uMzBjN2Y4NSAx MDA2NDQKK2luZGV4IDU4YmUwOGMuLjA0ZTM2Y2QgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2FycmF5aWR4LmMKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlp ZHguYwogQEAgLTE3LDYgKzE3LDEzIEBACkBAIC01NDY3LDcgKzUyNTQsNyBAQCBpbmRleCAyY2M5 MzViLi4zMGM3Zjg1IDEwMDY0NAogIG1haW4gKHZvaWQpCiAgewogZGlmZiAtLWdpdCBhL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9h cnJheWlkeC5leHAKLWluZGV4IDM3ZWQ0YzMuLjgyZjMwY2IgMTAwNjQ0CitpbmRleCAzNTQ1NGUz Li42MTQ0ZDM2IDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5l eHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCiBAQCAtNDksNCAr NDksMTIgQEAgZ2RiX3Rlc3QgInByaW50IGFycmF5IiBcCkBAIC01NTEyLDcgKzUyOTksNyBAQCBp bmRleCAwMDAwMDAwLi5lZWI3Yjg1CiArfSBzdGF0aWNzdHJ1Y3QgPSB7IDEgfTsKIGRpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmV4 cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuZXhw CiBuZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uNmQ4MmU3MworaW5kZXggMDAw MDAwMC4uMzNjOWU5NAogLS0tIC9kZXYvbnVsbAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9pbnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5leHAKIEBAIC0wLDAgKzEsMjYgQEAKQEAgLTU1 MzMsNyArNTMyMCw3IEBAIGluZGV4IDAwMDAwMDAuLjZkODJlNzMKICsKICtzZXQgdGVzdCBpbnRl cm5hbC12YXItZmllbGQtYWRkcmVzcwogK3NldCBiaW5maWxlICR7dGVzdH0ueAotK2lmICB7IFtn ZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3Rlc3R9LmMiICIke29iamRpcn0vJHtz dWJkaXJ9LyR7YmluZmlsZX0iIG9iamVjdCB7ZGVidWd9XSAhPSAiIiB9IHsKKytpZiAgeyBbZ2Ri X2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHt0ZXN0fS5jIiAiW3N0YW5kYXJkX291dHB1 dF9maWxlICR7YmluZmlsZX1dIiBvYmplY3Qge2RlYnVnfV0gIT0gIiIgfSB7CiArICAgIHVudGVz dGVkICJDb3VsZG4ndCBjb21waWxlIHRlc3QgcHJvZ3JhbSIKICsgICAgcmV0dXJuIC0xCiArfQpA QCAtNjQzOSw3ICs2MjI2LDcgQEAgaW5kZXggMDAwMDAwMC4uNWZjZGQ4NAogKwkuYnl0ZQkJMHgw CQkJLyogVGVybWluYXRvciAqLwogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJm Mi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4cAogbmV3IGZpbGUgbW9k ZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmM0MTE1MWMKK2luZGV4IDAwMDAwMDAuLmJjMzUyMDkK IC0tLSAvZGV2L251bGwKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0 LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4cAogQEAgLTAsMCArMSwzNyBAQApAQCAtNjQ3Myw3ICs2 MjYwLDcgQEAgaW5kZXggMDAwMDAwMC4uYzQxMTUxYwogK3NldCBzcmNmaWxlICR7dGVzdGZpbGV9 LlMKICtzZXQgYmluZmlsZSAke3Rlc3RmaWxlfS54CiArCi0raWYgIHsgW2dkYl9jb21waWxlICIk e3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke29iamRpcn0vJHtzdWJkaXJ9LyR7Ymlu ZmlsZX0iIG9iamVjdCB7bm9kZWJ1Z31dICE9ICIiIH0geworK2lmICB7IFtnZGJfY29tcGlsZSAi JHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiW3N0YW5kYXJkX291dHB1dF9maWxlICR7 YmluZmlsZX1dIiBvYmplY3Qge25vZGVidWd9XSAhPSAiIiB9IHsKICsgICAgcmV0dXJuIC0xCiAr fQogKwpAQCAtNjYwOSw3ICs2Mzk2LDcgQEAgaW5kZXggMDAwMDAwMC4uOWRiYmYzYwogKwkuYnl0 ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLwogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2Fy ZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuZXhwCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXgg MDAwMDAwMC4uYTEzZTM0NgoraW5kZXggMDAwMDAwMC4uY2VjNjczYwogLS0tIC9kZXYvbnVsbAog KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLmV4cAog QEAgLTAsMCArMSwzOSBAQApAQCAtNjY0Miw3ICs2NDI5LDcgQEAgaW5kZXggMDAwMDAwMC4uYTEz ZTM0NgogK3NldCB0ZXN0ZmlsZSBkdzItc3VicmFuZ2Utbm8tdHlwZQogK3NldCBzcmNmaWxlICR7 dGVzdGZpbGV9LlMKICtzZXQgZXhlY3V0YWJsZSAke3Rlc3RmaWxlfS54Ci0rc2V0IGJpbmZpbGUg JHtvYmpkaXJ9LyR7c3ViZGlyfS8ke2V4ZWN1dGFibGV9Cisrc2V0IGJpbmZpbGUgW3N0YW5kYXJk X291dHB1dF9maWxlICR7ZXhlY3V0YWJsZX1dCiArCiAraWYgeyBbZ2RiX2NvbXBpbGUgIiR7c3Jj ZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIG9iamVjdCB7fV0gIT0gIiIg fSB7CiArICAgIHJldHVybiAtMQpAQCAtNjc3OCw3ICs2NTY1LDcgQEAgaW5kZXggMDAwMDAwMC4u MjYxY2UxNwogK2VuZCBzdWJyb3V0aW5lIGJhcgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUuZXhwCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5k ZXggMDAwMDAwMC4uZmE0MWI4MAoraW5kZXggMDAwMDAwMC4uZTVhODJlZQogLS0tIC9kZXYvbnVs bAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZyYW1lLmV4 cAogQEAgLTAsMCArMSwzNyBAQApAQCAtNjgwMSw5ICs2NTg4LDkgQEAgaW5kZXggMDAwMDAwMC4u ZmE0MWI4MAogK3NldCB0ZXN0ZmlsZSAiZHluYW1pYy1vdGhlci1mcmFtZSIKICtzZXQgc3JjZmls ZTEgJHt0ZXN0ZmlsZX0uZjkwCiArc2V0IHNyY2ZpbGUyICR7dGVzdGZpbGV9LXN0dWIuZjkwCi0r c2V0IG9iamZpbGUyICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0tc3R1Yi5vCisrc2V0 IG9iamZpbGUyIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAke3Rlc3RmaWxlfS1zdHViLm9dCiArc2V0 IGV4ZWN1dGFibGUgJHt0ZXN0ZmlsZX0KLStzZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9 LyR7ZXhlY3V0YWJsZX0KKytzZXQgYmluZmlsZSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHtleGVj dXRhYmxlfV0KICsKICtpZiB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3Ny Y2ZpbGUyfSIgIiR7b2JqZmlsZTJ9IiBvYmplY3Qge2Y5MH1dICE9ICIiCiArICAgICB8fCBbZ2Ri X2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlMX0gJHtvYmpmaWxlMn0iICIk e2JpbmZpbGV9IiBleGVjdXRhYmxlIHtkZWJ1ZyBmOTB9XSAhPSAiIiB9IHsKQEAgLTczMzIsNyAr NzExOSw3IEBAIGluZGV4IDAwMDAwMDAuLjQ3NDdlYTkKICsgIHdyaXRlICgqLCopIGEgICAgICAg ICAgICAgICAgICEgYnJlYWstc3RhdGljCiArZW5kCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdC5l eHAKLWluZGV4IGQ3MDA3MTUuLjZlYmNhMGEgMTAwNjQ0CitpbmRleCAxZDAyNzc5Li5mOWY1YmU0 IDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAogKysrIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAogQEAgLTkyLDYgKzkyLDEwIEBAIHBy b2MgZG9fc3RlcHNfYW5kX25leHRzIHt9IHsKQEAgLTczODAsNyArNzE2Nyw3IEBAIGluZGV4IDAw MDAwMDAuLmViY2VkM2MKICt9CiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWky LXZhci1zdGFsZS10eXBlLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUt dHlwZS5leHAKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi45OWI2Y2M3Citp bmRleCAwMDAwMDAwLi44ODMyNmMwCiAtLS0gL2Rldi9udWxsCiArKysgYi9nZGIvdGVzdHN1aXRl L2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuZXhwCiBAQCAtMCwwICsxLDU3IEBACkBAIC03NDA5 LDcgKzcxOTYsNyBAQCBpbmRleCAwMDAwMDAwLi45OWI2Y2M3CiArCiArc2V0IHRlc3RmaWxlICJt aTItdmFyLXN0YWxlLXR5cGUiCiArc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uYwotK3NldCBiaW5m aWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KKytzZXQgYmluZmlsZSBbc3RhbmRh cmRfb3V0cHV0X2ZpbGUgJHt0ZXN0ZmlsZX1dCiAraWYge1tidWlsZF9leGVjdXRhYmxlICR7dGVz dGZpbGV9LmV4cCAkdGVzdGZpbGUgJHNyY2ZpbGVdID09IC0xfSB7CiArICAgIHJldHVybiAtMQog K30KQEAgLTc3NDEsNyArNzUyOCw3IEBAIGluZGV4IDAwMDAwMDAuLjI5NTYwMmQKICsgIHdyaXRl bG4ocyk7IHsgc2V0IGJyZWFrcG9pbnQgMiBoZXJlIH0KICtlbmQuCiBkaWZmIC0tZ2l0IGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZyYW1lLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9weS1mcmFtZS5leHAKLWluZGV4IDgwNmRhOTQuLmIyMjIzMWEgMTAwNjQ0CitpbmRleCAz NTE3ODI0Li40ZmEyYmQ4IDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5 LWZyYW1lLmV4cAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZyYW1lLmV4cAog QEAgLTk0LDMgKzk0LDUgQEAgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAoJ3Jlc3VsdCA9ICVzJyAl IGYwLnJlYWRfdmFyICgndmFyaWFibGVfd2hpY2hfc3VyZWx5X2RvZXMKQEAgLTc3NTEsMTAgKzc1 MzgsMTAgQEAgaW5kZXggODA2ZGE5NC4uYjIyMjMxYSAxMDA2NDQKICsKICtnZGJfdGVzdCAicHl0 aG9uIHByaW50ICgncmVzdWx0ID0gJXMnICUgKGYwLmJsb2NrICgpKSkiICI8Z2RiLkJsb2NrIG9i amVjdCBhdCAweFxbXFs6eGRpZ2l0OlxdXF0rPiIgInRlc3QgRnJhbWUuYmxvY2siCiBkaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4cCBiL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAKLWluZGV4IDkxNDJjNzIuLjI4NTUyMjAgMTAwNjQ0 CitpbmRleCBlZDMzMmRiLi4wNjQ2NmVjIDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu cHl0aG9uL3B5LXZhbHVlLmV4cAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZh bHVlLmV4cAotQEAgLTM2Niw2ICszNjYsMTUgQEAgcHJvYyB0ZXN0X3ZhbHVlX2FmdGVyX2RlYXRo IHt9IHsKK0BAIC0zODUsNiArMzg1LDE1IEBAIHByb2MgdGVzdF92YWx1ZV9hZnRlcl9kZWF0aCB7 fSB7CiAgICAgICJwcmludCB2YWx1ZSdzIHR5cGUiCiAgfQogIApAQCAtNzc3MCwxOSArNzU1Nywx OSBAQCBpbmRleCA5MTQyYzcyLi4yODU1MjIwIDEwMDY0NAogICMgUmVncmVzc2lvbiB0ZXN0IGZv ciBpbnZhbGlkIHN1YnNjcmlwdCBvcGVyYXRpb25zLiAgVGhlIGJ1ZyB3YXMgdGhhdAogICMgdGhl IHR5cGUgb2YgdGhlIHZhbHVlIHdhcyBub3QgYmVpbmcgY2hlY2tlZCBiZWZvcmUgYWxsb3dpbmcg YQogICMgc3Vic2NyaXB0IG9wZXJhdGlvbiB0byBwcm9jZWVkLgotQEAgLTQ5Miw2ICs1MDEsNyBA QCB0ZXN0X3ZhbHVlX2luX2luZmVyaW9yCitAQCAtNTEyLDYgKzUyMSw3IEBAIHRlc3RfdmFsdWVf aW5faW5mZXJpb3IKICB0ZXN0X2luZmVyaW9yX2Z1bmN0aW9uX2NhbGwKICB0ZXN0X2xhenlfc3Ry aW5ncwogIHRlc3RfdmFsdWVfYWZ0ZXJfZGVhdGgKICt0ZXN0X2Nhc3RfcmVncmVzc2lvbgogIAog ICMgVGVzdCBlaXRoZXIgQyBvciBDKysgdmFsdWVzLiAKLSB0ZXN0X3N1YnNjcmlwdF9yZWdyZXNz aW9uICIke2JpbmZpbGV9IiAiYyIKKyAKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2xpYi9n ZGIuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAotaW5kZXggNzBiNzk3ZS4uMzU4OGUx ZCAxMDA2NDQKK2luZGV4IDI3MTNkZGYuLjUzM2I4MWIgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1 aXRlL2xpYi9nZGIuZXhwCiArKysgYi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCi1AQCAtMTQz LDYgKzE0MywxMSBAQCBwcm9jIGdkYl91bmxvYWQge30geworQEAgLTE1MCw2ICsxNTAsMTEgQEAg cHJvYyBnZGJfdW5sb2FkIHt9IHsKICAJICAgIHNlbmRfZ2RiICJ5XG4iCiAgCSAgICBleHBfY29u dGludWUKICAJfQpAQCAtNzc5NSw3ICs3NTgyLDcgQEAgaW5kZXggNzBiNzk3ZS4uMzU4OGUxZCAx MDA2NDQKICAJICAgIHNlbmRfZ2RiICJ5XG4iCiAgCSAgICBleHBfY29udGludWUKIGRpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvcGFz Y2FsLmV4cAotaW5kZXggNzg0YWI2Yy4uOWUwYTg0NCAxMDA2NDQKK2luZGV4IDFiNDk0ZWUuLjNi YjhhZDkgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhwCiArKysgYi9n ZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhwCiBAQCAtMzcsNiArMzcsOSBAQCBwcm9jIHBhc2Nh bF9pbml0IHt9IHsKQEAgLTc4MzAsMTAgKzc2MTcsMTAgQEAgaW5kZXggNzg0YWI2Yy4uOWUwYTg0 NCAxMDA2NDQKICAgICAgc2V0IHBhc2NhbF9pbml0X2RvbmUgMQogIH0gICAKIGRpZmYgLS1naXQg YS9nZGIvdG9wLmMgYi9nZGIvdG9wLmMKLWluZGV4IDMzYTc4ZGEuLjIyOTkyYmEgMTAwNjQ0Citp bmRleCBkMDY4NDUwLi5lMmI0MTEwIDEwMDY0NAogLS0tIGEvZ2RiL3RvcC5jCiArKysgYi9nZGIv dG9wLmMKLUBAIC0zNDIsNiArMzQyLDkgQEAgcHJlcGFyZV9leGVjdXRlX2NvbW1hbmQgKHZvaWQp CitAQCAtMzMxLDYgKzMzMSw5IEBAIHByZXBhcmVfZXhlY3V0ZV9jb21tYW5kICh2b2lkKQogIAog ICAgbWFyayA9IHZhbHVlX21hcmsgKCk7CiAgICBjbGVhbnVwID0gbWFrZV9jbGVhbnVwX3ZhbHVl X2ZyZWVfdG9fbWFyayAobWFyayk7CkBAIC03ODQ0LDExICs3NjMxLDExIEBAIGluZGV4IDMzYTc4 ZGEuLjIyOTkyYmEgMTAwNjQ0CiAgICAvKiBXaXRoIG11bHRpcGxlIHRocmVhZHMgcnVubmluZyB3 aGlsZSB0aGUgb25lIHdlJ3JlIGV4YW1pbmluZyBpcwogICAgICAgc3RvcHBlZCwgdGhlIGRjYWNo ZSBjYW4gZ2V0IHN0YWxlIHdpdGhvdXQgdXMgYmVpbmcgYWJsZSB0byBkZXRlY3QKIGRpZmYgLS1n aXQgYS9nZGIvdHlwZXByaW50LmMgYi9nZGIvdHlwZXByaW50LmMKLWluZGV4IDRlNzA1OTMuLmU4 NDAyYTIgMTAwNjQ0CitpbmRleCAwOTk5M2RkLi45ZmNiM2IzIDEwMDY0NAogLS0tIGEvZ2RiL3R5 cGVwcmludC5jCiArKysgYi9nZGIvdHlwZXByaW50LmMKIEBAIC0zNCw2ICszNCw3IEBACi0gI2lu Y2x1ZGUgImdkYl9zdHJpbmcuaCIKKyAjaW5jbHVkZSA8c3RyaW5nLmg+CiAgI2luY2x1ZGUgImV4 Y2VwdGlvbnMuaCIKICAjaW5jbHVkZSAidmFscHJpbnQuaCIKICsjaW5jbHVkZSAiZHdhcmYybG9j LmgiCkBAIC03ODgyLDEwICs3NjY5LDEwIEBAIGluZGV4IDRlNzA1OTMuLmU4NDAyYTIgMTAwNjQ0 CiAgCiAgICBnZXRfdXNlcl9wcmludF9vcHRpb25zICgmb3B0cyk7CiBkaWZmIC0tZ2l0IGEvZ2Ri L3V0aWxzLmMgYi9nZGIvdXRpbHMuYwotaW5kZXggOTRlYmNlOC4uMjNhNDk4NiAxMDA2NDQKK2lu ZGV4IGUwNjJlODkuLjc3MzI0MmQgMTAwNjQ0CiAtLS0gYS9nZGIvdXRpbHMuYwogKysrIGIvZ2Ri L3V0aWxzLmMKLUBAIC0xNzI1LDYgKzE3MjUsMzYgQEAgc2V0X2JhdGNoX2ZsYWdfYW5kX21ha2Vf Y2xlYW51cF9yZXN0b3JlX3BhZ2VfaW5mbyAodm9pZCkKK0BAIC0xNzQ1LDYgKzE3NDUsMzYgQEAg c2V0X2JhdGNoX2ZsYWdfYW5kX21ha2VfY2xlYW51cF9yZXN0b3JlX3BhZ2VfaW5mbyAodm9pZCkK ICAgIHJldHVybiBiYWNrX3RvOwogIH0KICAKQEAgLTc5MjMsMTAgKzc3MTAsMTAgQEAgaW5kZXgg OTRlYmNlOC4uMjNhNDk4NiAxMDA2NDQKICAKICBzdGF0aWMgdm9pZAogZGlmZiAtLWdpdCBhL2dk Yi91dGlscy5oIGIvZ2RiL3V0aWxzLmgKLWluZGV4IDBmNmJiMDYuLjI4MzEzN2UgMTAwNjQ0Citp bmRleCA4YmJjYzVmLi4xMzQyZDY4IDEwMDY0NAogLS0tIGEvZ2RiL3V0aWxzLmgKICsrKyBiL2dk Yi91dGlscy5oCi1AQCAtMzg0LDQgKzM4NCw2IEBAIGV4dGVybiBVTE9OR0VTVCBhbGlnbl9kb3du IChVTE9OR0VTVCB2LCBpbnQgbik7CitAQCAtMzgyLDQgKzM4Miw2IEBAIGV4dGVybiBVTE9OR0VT VCBhbGlnbl9kb3duIChVTE9OR0VTVCB2LCBpbnQgbik7CiAgCiAgZXh0ZXJuIExPTkdFU1QgZ2Ri X3NpZ25fZXh0ZW5kIChMT05HRVNUIHZhbHVlLCBpbnQgYml0KTsKICAKQEAgLTc5MzQsNyArNzcy MSw3IEBAIGluZGV4IDBmNmJiMDYuLjI4MzEzN2UgMTAwNjQ0CiArCiAgI2VuZGlmIC8qIFVUSUxT X0ggKi8KIGRpZmYgLS1naXQgYS9nZGIvdmFsYXJpdGguYyBiL2dkYi92YWxhcml0aC5jCi1pbmRl eCAxOGMxNGZjLi4wYTNhM2FhIDEwMDY0NAoraW5kZXggOGU4NjNlMy4uOTdhOGIwZiAxMDA2NDQK IC0tLSBhL2dkYi92YWxhcml0aC5jCiArKysgYi9nZGIvdmFsYXJpdGguYwogQEAgLTE5NSw3ICsx OTUsMTAgQEAgdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBM T05HRVNUIGluZGV4LCBpbnQgbG93ZXJib3VuZCkKQEAgLTc5NjEsMTggKzc3NDgsMTggQEAgaW5k ZXggMThjMTRmYy4uMGEzYTNhYSAxMDA2NDQKICB9CiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL3ZhbG9w cy5jIGIvZ2RiL3ZhbG9wcy5jCi1pbmRleCBhM2FiMjRmLi41M2FmODQyIDEwMDY0NAoraW5kZXgg NTM4MmM0OS4uMGRlODAwOSAxMDA2NDQKIC0tLSBhL2dkYi92YWxvcHMuYwogKysrIGIvZ2RiL3Zh bG9wcy5jCi1AQCAtNDQsNiArNDQsNyBAQAorQEAgLTQyLDYgKzQyLDcgQEAKKyAjaW5jbHVkZSAi b2JzZXJ2ZXIuaCIKICAjaW5jbHVkZSAib2JqZmlsZXMuaCIKLSAjaW5jbHVkZSAic3ltdGFiLmgi CiAgI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKICsjaW5jbHVkZSAiZHdhcmYybG9jLmgiCiAgCiAg ZXh0ZXJuIHVuc2lnbmVkIGludCBvdmVybG9hZF9kZWJ1ZzsKICAvKiBMb2NhbCBmdW5jdGlvbnMu ICAqLwotQEAgLTkwMiw2ICs5MDMsNjUgQEAgdmFsdWVfb25lIChzdHJ1Y3QgdHlwZSAqdHlwZSkK K0BAIC05MDAsNiArOTAxLDY1IEBAIHZhbHVlX29uZSAoc3RydWN0IHR5cGUgKnR5cGUpCiAgICBy ZXR1cm4gdmFsOwogIH0KICAKQEAgLTgwMzgsNyArNzgyNSw3IEBAIGluZGV4IGEzYWIyNGYuLjUz YWY4NDIgMTAwNjQ0CiAgLyogSGVscGVyIGZ1bmN0aW9uIGZvciB2YWx1ZV9hdCwgdmFsdWVfYXRf bGF6eSwgYW5kIHZhbHVlX2F0X2xhenlfc3RhY2suICAqLwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFs dWUgKgotQEAgLTEzNjYsNyArMTQyNiwxOCBAQCBhZGRyZXNzX29mX3ZhcmlhYmxlIChzdHJ1Y3Qg c3ltYm9sICp2YXIsIGNvbnN0IHN0cnVjdCBibG9jayAqYikKK0BAIC0xMzY1LDcgKzE0MjUsMTgg QEAgYWRkcmVzc19vZl92YXJpYWJsZSAoc3RydWN0IHN5bWJvbCAqdmFyLCBjb25zdCBzdHJ1Y3Qg YmxvY2sgKmIpCiAgICBpZiAoKFZBTFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9tZW1vcnkgJiYgdmFs dWVfbGF6eSAodmFsKSkKICAgICAgICB8fCBUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9G VU5DKQogICAgICB7CkBAIC04MDU4LDcgKzc4NDUsNyBAQCBpbmRleCBhM2FiMjRmLi41M2FmODQy IDEwMDY0NAogIAogICAgICAgIHJldHVybiB2YWx1ZV9mcm9tX3BvaW50ZXIgKGxvb2t1cF9wb2lu dGVyX3R5cGUgKHR5cGUpLCBhZGRyKTsKICAgICAgfQotQEAgLTE0NzMsNiArMTU0NCw3IEBAIHN0 cnVjdCB2YWx1ZSAqCitAQCAtMTQ3Miw2ICsxNTQzLDcgQEAgc3RydWN0IHZhbHVlICoKICB2YWx1 ZV9jb2VyY2VfYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJnMSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAq dHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZzEpKTsKQEAgLTgwNjYsNyArNzg1 Myw3IEBAIGluZGV4IGEzYWIyNGYuLjUzYWY4NDIgMTAwNjQ0CiAgCiAgICAvKiBJZiB0aGUgdXNl ciB0cmllcyB0byBkbyBzb21ldGhpbmcgcmVxdWlyaW5nIGEgcG9pbnRlciB3aXRoIGFuCiAgICAg ICBhcnJheSB0aGF0IGhhcyBub3QgeWV0IGJlZW4gcHVzaGVkIHRvIHRoZSB0YXJnZXQsIHRoZW4g dGhpcyB3b3VsZAotQEAgLTE0ODIsOCArMTU1NCwxMiBAQCB2YWx1ZV9jb2VyY2VfYXJyYXkgKHN0 cnVjdCB2YWx1ZSAqYXJnMSkKK0BAIC0xNDgxLDggKzE1NTMsMTIgQEAgdmFsdWVfY29lcmNlX2Fy cmF5IChzdHJ1Y3QgdmFsdWUgKmFyZzEpCiAgICBpZiAoVkFMVUVfTFZBTCAoYXJnMSkgIT0gbHZh bF9tZW1vcnkpCiAgICAgIGVycm9yIChfKCJBdHRlbXB0IHRvIHRha2UgYWRkcmVzcyBvZiB2YWx1 ZSBub3QgbG9jYXRlZCBpbiBtZW1vcnkuIikpOwogIApAQCAtODA4MCw3ICs3ODY3LDcgQEAgaW5k ZXggYTNhYjI0Zi4uNTNhZjg0MiAxMDA2NDQKICB9CiAgCiAgLyogR2l2ZW4gYSB2YWx1ZSB3aGlj aCBpcyBhIGZ1bmN0aW9uLCByZXR1cm4gYSB2YWx1ZSB3aGljaCBpcyBhIHBvaW50ZXIKLUBAIC0z NTU4LDYgKzM2MzQsOCBAQCB2YWx1ZV9zbGljZSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxv d2JvdW5kLCBpbnQgbGVuZ3RoKQorQEAgLTM1NzEsNiArMzY0Nyw4IEBAIHZhbHVlX3NsaWNlIChz dHJ1Y3QgdmFsdWUgKmFycmF5LCBpbnQgbG93Ym91bmQsIGludCBsZW5ndGgpCiAgCQkJCQlUWVBF X1RBUkdFVF9UWVBFIChyYW5nZV90eXBlKSwKICAJCQkJCWxvd2JvdW5kLCAKICAJCQkJCWxvd2Jv dW5kICsgbGVuZ3RoIC0gMSk7CkBAIC04MDkwLDcgKzc4NzcsNyBAQCBpbmRleCBhM2FiMjRmLi41 M2FmODQyIDEwMDY0NAogICAgICB7CiAgICAgICAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZSA9 IFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpOwogZGlmZiAtLWdpdCBhL2dkYi92YWxwcmlu dC5jIGIvZ2RiL3ZhbHByaW50LmMKLWluZGV4IDc1M2FlMzQuLjZkODdkOWMgMTAwNjQ0CitpbmRl eCAwMTg4OWM1Li5lMjVlM2M4IDEwMDY0NAogLS0tIGEvZ2RiL3ZhbHByaW50LmMKICsrKyBiL2dk Yi92YWxwcmludC5jCiBAQCAtMzcsNiArMzcsNyBAQApAQCAtODEwMSw3ICs3ODg4LDcgQEAgaW5k ZXggNzUzYWUzNC4uNmQ4N2Q5YyAxMDA2NDQKICAKICAjaW5jbHVkZSA8ZXJybm8uaD4KICAKLUBA IC0yOTAsNyArMjkxLDYgQEAgc2NhbGFyX3R5cGVfcCAoc3RydWN0IHR5cGUgKnR5cGUpCitAQCAt MjkwLDcgKzI5MSw2IEBAIHZhbF9wcmludF9zY2FsYXJfdHlwZV9wIChzdHJ1Y3QgdHlwZSAqdHlw ZSkKICAgICAgY2FzZSBUWVBFX0NPREVfU1RSVUNUOgogICAgICBjYXNlIFRZUEVfQ09ERV9VTklP TjoKICAgICAgY2FzZSBUWVBFX0NPREVfU0VUOgpAQCAtODEwOSw3ICs3ODk2LDcgQEAgaW5kZXgg NzUzYWUzNC4uNmQ4N2Q5YyAxMDA2NDQKICAgICAgICByZXR1cm4gMDsKICAgICAgZGVmYXVsdDoK ICAgICAgICByZXR1cm4gMTsKLUBAIC0xNjA3LDYgKzE2MDcsNyBAQCB2YWxfcHJpbnRfYXJyYXlf ZWxlbWVudHMgKHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTE2MjUsNiArMTYyNSw3IEBAIHZhbF9w cmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKnR5cGUsCiAgewogICAgdW5zaWduZWQg aW50IHRoaW5nc19wcmludGVkID0gMDsKICAgIHVuc2lnbmVkIGxlbjsKQEAgLTgxMTcsNyArNzkw NCw3IEBAIGluZGV4IDc1M2FlMzQuLjZkODdkOWMgMTAwNjQ0CiAgICBzdHJ1Y3QgdHlwZSAqZWx0 dHlwZSwgKmluZGV4X3R5cGU7CiAgICB1bnNpZ25lZCBlbHRsZW47CiAgICAvKiBQb3NpdGlvbiBv ZiB0aGUgYXJyYXkgZWxlbWVudCB3ZSBhcmUgZXhhbWluaW5nIHRvIHNlZQotQEAgLTE2MTUsOSAr MTYxNiwzMyBAQCB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0eXBlICp0eXBlLAor QEAgLTE2MzMsOSArMTYzNCwzMyBAQCB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0 eXBlICp0eXBlLAogICAgLyogTnVtYmVyIG9mIHJlcGV0aXRpb25zIHdlIGhhdmUgZGV0ZWN0ZWQg c28gZmFyLiAgKi8KICAgIHVuc2lnbmVkIGludCByZXBzOwogICAgTE9OR0VTVCBsb3dfYm91bmQs IGhpZ2hfYm91bmQ7CkBAIC04MTUzLDcgKzc5NDAsNyBAQCBpbmRleCA3NTNhZTM0Li42ZDg3ZDlj IDEwMDY0NAogICAgaW5kZXhfdHlwZSA9IFRZUEVfSU5ERVhfVFlQRSAodHlwZSk7CiAgCiAgICBp ZiAoZ2V0X2FycmF5X2JvdW5kcyAodHlwZSwgJmxvd19ib3VuZCwgJmhpZ2hfYm91bmQpKQotQEAg LTE3MDQsNiArMTcyOSw4IEBAIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUg KnR5cGUsCitAQCAtMTcyMiw2ICsxNzQ3LDggQEAgdmFsX3ByaW50X2FycmF5X2VsZW1lbnRzIChz dHJ1Y3QgdHlwZSAqdHlwZSwKICAgICAgewogICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVh bSwgIi4uLiIpOwogICAgICB9CkBAIC04MTYzLDcgKzc5NTAsNyBAQCBpbmRleCA3NTNhZTM0Li42 ZDg3ZDljIDEwMDY0NAogIAogIC8qIFJlYWQgTEVOIGJ5dGVzIG9mIHRhcmdldCBtZW1vcnkgYXQg YWRkcmVzcyBNRU1BRERSLCBwbGFjaW5nIHRoZQogZGlmZiAtLWdpdCBhL2dkYi92YWx1ZS5jIGIv Z2RiL3ZhbHVlLmMKLWluZGV4IDhkNjM1YzcuLmNjZTg3YzYgMTAwNjQ0CitpbmRleCA4NTQyMzE2 Li5mNzVjZjM3IDEwMDY0NAogLS0tIGEvZ2RiL3ZhbHVlLmMKICsrKyBiL2dkYi92YWx1ZS5jCiBA QCAtNDMsNiArNDMsNyBAQApAQCAtODE3NCw3ICs3OTYxLDcgQEAgaW5kZXggOGQ2MzVjNy4uY2Nl ODdjNiAxMDA2NDQKICAKICAvKiBQcm90b3R5cGVzIGZvciBleHBvcnRlZCBmdW5jdGlvbnMuICAq LwogIAotQEAgLTE0NDgsMTIgKzE0NDksMTUgQEAgdm9pZAorQEAgLTE2MjMsMTIgKzE2MjQsMTUg QEAgdm9pZAogIHNldF92YWx1ZV9jb21wb25lbnRfbG9jYXRpb24gKHN0cnVjdCB2YWx1ZSAqY29t cG9uZW50LAogIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqd2hvbGUpCiAgewpAQCAtODE5 MCw3ICs3OTc3LDcgQEAgaW5kZXggOGQ2MzVjNy4uY2NlODdjNiAxMDA2NDQKICAgIGlmICh3aG9s ZS0+bHZhbCA9PSBsdmFsX2NvbXB1dGVkKQogICAgICB7CiAgICAgICAgY29uc3Qgc3RydWN0IGx2 YWxfZnVuY3MgKmZ1bmNzID0gd2hvbGUtPmxvY2F0aW9uLmNvbXB1dGVkLmZ1bmNzOwotQEAgLTE0 NjEsNiArMTQ2NSwxMiBAQCBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9uIChzdHJ1Y3QgdmFs dWUgKmNvbXBvbmVudCwKK0BAIC0xNjM2LDYgKzE2NDAsMTIgQEAgc2V0X3ZhbHVlX2NvbXBvbmVu dF9sb2NhdGlvbiAoc3RydWN0IHZhbHVlICpjb21wb25lbnQsCiAgICAgICAgaWYgKGZ1bmNzLT5j b3B5X2Nsb3N1cmUpCiAgICAgICAgICBjb21wb25lbnQtPmxvY2F0aW9uLmNvbXB1dGVkLmNsb3N1 cmUgPSBmdW5jcy0+Y29weV9jbG9zdXJlICh3aG9sZSk7CiAgICAgIH0KQEAgLTgyMDMsNyArNzk5 MCw3IEBAIGluZGV4IDhkNjM1YzcuLmNjZTg3YzYgMTAwNjQ0CiAgfQogIAogIAwKLUBAIC0xNTk0 LDYgKzE2MDQsMzEgQEAgc2hvd192YWx1ZXMgKGNoYXIgKm51bV9leHAsIGludCBmcm9tX3R0eSkK K0BAIC0xNzY5LDYgKzE3NzksMzEgQEAgc2hvd192YWx1ZXMgKGNoYXIgKm51bV9leHAsIGludCBm cm9tX3R0eSkKICAgICAgICBudW1fZXhwWzFdID0gJ1wwJzsKICAgICAgfQogIH0KQEAgLTgyMzUs NyArODAyMiw3IEBAIGluZGV4IDhkNjM1YzcuLmNjZTg3YzYgMTAwNjQ0CiAgDAogIC8qIEludGVy bmFsIHZhcmlhYmxlcy4gIFRoZXNlIGFyZSB2YXJpYWJsZXMgd2l0aGluIHRoZSBkZWJ1Z2dlcgog ICAgIHRoYXQgaG9sZCB2YWx1ZXMgYXNzaWduZWQgYnkgZGVidWdnZXIgY29tbWFuZHMuCi1AQCAt MjEyOSw2ICsyMTY0LDM4IEBAIGNhbGxfaW50ZXJuYWxfZnVuY3Rpb24gKHN0cnVjdCBnZGJhcmNo ICpnZGJhcmNoLAorQEAgLTIzMDQsNiArMjMzOSwzOCBAQCBjYWxsX2ludGVybmFsX2Z1bmN0aW9u IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICAgIHJldHVybiAoKmlmbi0+aGFuZGxlcikgKGdk YmFyY2gsIGxhbmd1YWdlLCBpZm4tPmNvb2tpZSwgYXJnYywgYXJndik7CiAgfQogIApAQCAtODI3 NCw3ICs4MDYxLDcgQEAgaW5kZXggOGQ2MzVjNy4uY2NlODdjNiAxMDA2NDQKICAvKiBUaGUgJ2Z1 bmN0aW9uJyBjb21tYW5kLiAgVGhpcyBkb2VzIG5vdGhpbmcgLS0gaXQgaXMganVzdCBhCiAgICAg cGxhY2Vob2xkZXIgdG8gbGV0ICJoZWxwIGZ1bmN0aW9uIE5BTUUiIHdvcmsuICBUaGlzIGlzIGFs c28gdXNlZCBhcwogICAgIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgc3ViLWNvbW1hbmQgdGhh dCBpcyBjcmVhdGVkIHdoZW4KLUBAIC0yMTc2LDExICsyMjQzLDEwIEBAIHByZXNlcnZlX29uZV92 YWx1ZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAt MjM1MSwxMSArMjQxOCwxMCBAQCBwcmVzZXJ2ZV9vbmVfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFs dWUsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogIAkJICAgIGh0YWJfdCBjb3BpZWRfdHlwZXMp CiAgewogICAgaWYgKFRZUEVfT0JKRklMRSAodmFsdWUtPnR5cGUpID09IG9iamZpbGUpCkBAIC04 Mjg4LDcgKzgwNzUsNyBAQCBpbmRleCA4ZDYzNWM3Li5jY2U4N2M2IDEwMDY0NAogIAkJCQkJCSBj b3BpZWRfdHlwZXMpOwogIH0KICAKLUBAIC0yMTk1LDcgKzIyNjEsNyBAQCBwcmVzZXJ2ZV9vbmVf aW50ZXJuYWx2YXIgKHN0cnVjdCBpbnRlcm5hbHZhciAqdmFyLCBzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZSwKK0BAIC0yMzcwLDcgKzI0MzYsNyBAQCBwcmVzZXJ2ZV9vbmVfaW50ZXJuYWx2YXIgKHN0 cnVjdCBpbnRlcm5hbHZhciAqdmFyLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAgICAgY2Fz ZSBJTlRFUk5BTFZBUl9JTlRFR0VSOgogICAgICAgIGlmICh2YXItPnUuaW50ZWdlci50eXBlICYm IFRZUEVfT0JKRklMRSAodmFyLT51LmludGVnZXIudHlwZSkgPT0gb2JqZmlsZSkKICAJdmFyLT51 LmludGVnZXIudHlwZQpAQCAtODI5Nyw3ICs4MDg0LDcgQEAgaW5kZXggOGQ2MzVjNy4uY2NlODdj NiAxMDA2NDQKICAgICAgICBicmVhazsKICAKICAgICAgY2FzZSBJTlRFUk5BTFZBUl9WQUxVRToK LUBAIC0zMzA4LDEwICszMzc0LDI3IEBAIHJlYWRqdXN0X2luZGlyZWN0X3ZhbHVlX3R5cGUgKHN0 cnVjdCB2YWx1ZSAqdmFsdWUsIHN0cnVjdCB0eXBlICplbmNfdHlwZSwKK0BAIC0zNDc5LDEwICsz NTQ1LDI3IEBAIHJlYWRqdXN0X2luZGlyZWN0X3ZhbHVlX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFs dWUsIHN0cnVjdCB0eXBlICplbmNfdHlwZSwKICBzdHJ1Y3QgdmFsdWUgKgogIGNvZXJjZV9yZWYg KHN0cnVjdCB2YWx1ZSAqYXJnKQogIHsKQEAgLTgzMjYsNyArODExMyw3IEBAIGluZGV4IDhkNjM1 YzcuLmNjZTg3YzYgMTAwNjQ0CiAgICByZXR2YWwgPSBjb2VyY2VfcmVmX2lmX2NvbXB1dGVkIChh cmcpOwogICAgaWYgKHJldHZhbCkKICAgICAgcmV0dXJuIHJldHZhbDsKLUBAIC0zNDE5LDcgKzM1 MDIsOCBAQCBpbnQKK0BAIC0zNTkwLDcgKzM2NzMsOCBAQCBpbnQKICB2YWx1ZV9mZXRjaF9sYXp5 IChzdHJ1Y3QgdmFsdWUgKnZhbCkKICB7CiAgICBnZGJfYXNzZXJ0ICh2YWx1ZV9sYXp5ICh2YWwp KTsKQEAgLTgzMzYsNyArODEyMyw3IEBAIGluZGV4IDhkNjM1YzcuLmNjZTg3YzYgMTAwNjQ0CiAg ICBpZiAodmFsdWVfYml0c2l6ZSAodmFsKSkKICAgICAgewogICAgICAgIC8qIFRvIHJlYWQgYSBs YXp5IGJpdGZpZWxkLCByZWFkIHRoZSBlbnRpcmUgZW5jbG9zaW5nIHZhbHVlLiAgVGhpcwotQEAg LTM0NTQsMTMgKzM1MzgsMjQgQEAgdmFsdWVfZmV0Y2hfbGF6eSAoc3RydWN0IHZhbHVlICp2YWwp CitAQCAtMzYyNSwxMyArMzcwOSwyNCBAQCB2YWx1ZV9mZXRjaF9sYXp5IChzdHJ1Y3QgdmFsdWUg KnZhbCkKICAgICAgfQogICAgZWxzZSBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX21lbW9y eSkKICAgICAgewpAQCAtODM2NywxMCArODE1NCwxMCBAQCBpbmRleCA4ZDYzNWM3Li5jY2U4N2M2 IDEwMDY0NAogICAgICB9CiAgICBlbHNlIGlmIChWQUxVRV9MVkFMICh2YWwpID09IGx2YWxfcmVn aXN0ZXIpCiAgICAgIHsKLUBAIC0zNTk5LDQgKzM2OTQsMTAgQEAgVkFSSUFCTEUgaXMgYWxyZWFk eSBpbml0aWFsaXplZC4iKSk7Ci0gICBhZGRfcHJlZml4X2NtZCAoImZ1bmN0aW9uIiwgbm9fY2xh c3MsIGZ1bmN0aW9uX2NvbW1hbmQsIF8oIlwKLSBQbGFjZWhvbGRlciBjb21tYW5kIGZvciBzaG93 aW5nIGhlbHAgb24gY29udmVuaWVuY2UgZnVuY3Rpb25zLiIpLAotIAkJICAmZnVuY3Rpb25saXN0 LCAiZnVuY3Rpb24gIiwgMCwgJmNtZGxpc3QpOworQEAgLTM4MTQsNCArMzkwOSwxMCBAQCBDaGVj ayB3aGV0aGVyIGFuIGV4cHJlc3Npb24gaXMgdm9pZC5cblwKKyBVc2FnZTogJF9pc3ZvaWQgKGV4 cHJlc3Npb24pXG5cCisgUmV0dXJuIDEgaWYgdGhlIGV4cHJlc3Npb24gaXMgdm9pZCwgemVybyBv dGhlcndpc2UuIiksCisgCQkJIGlzdm9pZF9pbnRlcm5hbF9mbiwgTlVMTCk7CiArCiArICBtYWtl X2ZpbmFsX2NsZWFudXAgKHZhbHVlX2hpc3RvcnlfY2xlYW51cCwgTlVMTCk7CiArCkBAIC04Mzc5 LDEwICs4MTY2LDEwIEBAIGluZGV4IDhkNjM1YzcuLmNjZTg3YzYgMTAwNjQ0CiArI2VuZGlmCiAg fQogZGlmZiAtLWdpdCBhL2dkYi92YWx1ZS5oIGIvZ2RiL3ZhbHVlLmgKLWluZGV4IDVlMDBjODku LmQ5ZWZlM2UgMTAwNjQ0CitpbmRleCA1OTI0YjJmLi5lYWUzNTUzIDEwMDY0NAogLS0tIGEvZ2Ri L3ZhbHVlLmgKICsrKyBiL2dkYi92YWx1ZS5oCi1AQCAtNTQ4LDYgKzU0OCwxMCBAQCBleHRlcm4g c3RydWN0IHZhbHVlICp2YWx1ZV9mcm9tX2RlY2Zsb2F0IChzdHJ1Y3QgdHlwZSAqdHlwZSwKK0BA IC01NzEsNiArNTcxLDEwIEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2Zyb21fZGVjZmxv YXQgKHN0cnVjdCB0eXBlICp0eXBlLAogIAkJCQkJICBjb25zdCBnZGJfYnl0ZSAqZGVjYnl0ZXMp OwogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2Zyb21faGlzdG9yeV9yZWYgKGNoYXIgKiwg Y2hhciAqKik7CiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5w YXRjaCBiL2dkYi1hdHRhY2gtZmFpbC1yZWFzb25zLTVvZjUucGF0Y2gKaW5kZXggNzNlM2Y5Ny4u MWY1OGQzNCAxMDA2NDQKLS0tIGEvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaAor KysgYi9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNoCkBAIC0zNywyMiArMzcsMjIg QEAgZ2RiL2dkYnNlcnZlci8KIAkobGludXhfY3JlYXRlX2luZmVyaW9yLCBsaW51eF90cmFjZWZv cmtfY2hpbGQpOiBDYWxsIGl0IGluc3RlYWQgb2YKIAlkaXJlY3QgcHRyYWNlLgogCi1JbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuYworSW5kZXg6 IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2NvbW1vbi9saW51eC1wdHJh Y2UuYwkyMDEzLTA4LTAyIDE2OjMzOjUyLjc2Nzg3MjQxMiArMDIwMAotKysrIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9jb21tb24vbGludXgtcHRyYWNlLmMJMjAxMy0wOC0wMiAxNjozNDox Ni4xMjI5MTA5MzQgKzAyMDAKLUBAIC0yOSw2ICsyOSwxMCBAQAotICNpbmNsdWRlICJnZGJfYXNz ZXJ0LmgiCi0gI2luY2x1ZGUgImdkYl93YWl0LmgiCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5v cmlnL2dkYi9jb21tb24vbGludXgtcHRyYWNlLmMJMjAxNC0wMi0wNiAxNzo0MDozMi41MzAxNDU5 NjAgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9jb21tb24vbGludXgtcHRyYWNl LmMJMjAxNC0wMi0wNiAxNzo0ODoxNi4zMjk2NDQ1MzQgKzAxMDAKK0BAIC0zMiw2ICszMiwxMCBA QAorIAorICNpbmNsdWRlIDxzdGRpbnQuaD4KICAKICsjaWZkZWYgSEFWRV9TRUxJTlVYX1NFTElO VVhfSAogKyMgaW5jbHVkZSA8c2VsaW51eC9zZWxpbnV4Lmg+CiArI2VuZGlmIC8qIEhBVkVfU0VM SU5VWF9TRUxJTlVYX0ggKi8KICsKLSAvKiBGaW5kIGFsbCBwb3NzaWJsZSByZWFzb25zIHdlIGNv dWxkIGZhaWwgdG8gYXR0YWNoIFBJRCBhbmQgYXBwZW5kIHRoZXNlCi0gICAgbmV3bGluZSB0ZXJt aW5hdGVkIHJlYXNvbiBzdHJpbmdzIHRvIGluaXRpYWxpemVkIEJVRkZFUi4gICdcMCcgdGVybWlu YXRpb24KLSAgICBvZiBCVUZGRVIgbXVzdCBiZSBkb25lIGJ5IHRoZSBjYWxsZXIuICAqLwotQEAg LTQ4LDYgKzUyLDggQEAgbGludXhfcHRyYWNlX2F0dGFjaF93YXJuaW5ncyAocGlkX3QgcGlkLAor IC8qIFN0b3JlcyB0aGUgY3VycmVudGx5IHN1cHBvcnRlZCBwdHJhY2Ugb3B0aW9ucy4gIEEgdmFs dWUgb2YKKyAgICAtMSBtZWFucyB3ZSBkaWQgbm90IGNoZWNrIGZvciBmZWF0dXJlcyB5ZXQuICBB IHZhbHVlIG9mIDAgbWVhbnMKKyAgICB0aGVyZSBhcmUgbm8gc3VwcG9ydGVkIGZlYXR1cmVzLiAg Ki8KK0BAIC01Niw2ICs2MCw4IEBAIGxpbnV4X3B0cmFjZV9hdHRhY2hfd2FybmluZ3MgKHBpZF90 IHBpZCwKICAgICAgYnVmZmVyX3htbF9wcmludGYgKGJ1ZmZlciwgXygid2FybmluZzogcHJvY2Vz cyAlZCBpcyBhIHpvbWJpZSAiCiAgCQkJCSAiLSB0aGUgcHJvY2VzcyBoYXMgYWxyZWFkeSB0ZXJt aW5hdGVkXG4iKSwKICAJCSAgICAgICAoaW50KSBwaWQpOwpAQCAtNjEsNyArNjEsNyBAQCBJbmRl eDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuYwogIH0K ICAKICAjaWYgZGVmaW5lZCBfX2kzODZfXyB8fCBkZWZpbmVkIF9feDg2XzY0X18KLUBAIC0yMzYs MyArMjQyLDE5IEBAIGxpbnV4X3B0cmFjZV9pbml0X3dhcm5pbmdzICh2b2lkKQorQEAgLTU0Miwz ICs1NDgsMTkgQEAgbGludXhfcHRyYWNlX2luaXRfd2FybmluZ3MgKHZvaWQpCiAgCiAgICBsaW51 eF9wdHJhY2VfdGVzdF9yZXRfdG9fbnggKCk7CiAgfQpAQCAtODEsMjIgKzgxLDIzIEBAIEluZGV4 OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29tbW9uL2xpbnV4LXB0cmFjZS5jCiArCQkJ ICIoZ2RiKSBzaGVsbCBzdWRvIHNldHNlYm9vbCBkZW55X3B0cmFjZT0wIikpOwogKyNlbmRpZiAv KiBIQVZFX0xJQlNFTElOVVggKi8KICt9Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMv Z2RiL2NvbW1vbi9saW51eC1wdHJhY2UuaAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2Ri L2NvbW1vbi9saW51eC1wdHJhY2UuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzLm9yaWcvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuaAkyMDEzLTA4LTAyIDE2OjMzOjUy Ljc2ODg3MjQxNCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jb21tb24v bGludXgtcHRyYWNlLmgJMjAxMy0wOC0wMiAxNjozNDoxNi4xMjI5MTA5MzQgKzAyMDAKLUBAIC02 OSw1ICs2OSw2IEBAIHN0cnVjdCBidWZmZXI7CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmln L2dkYi9jb21tb24vbGludXgtcHRyYWNlLmgJMjAxNC0wMi0wNiAxNzo0MDozNS41MDYxNDkxNjIg KzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9jb21tb24vbGludXgtcHRyYWNlLmgJ MjAxNC0wMi0wNiAxNzo0ODowMC42MDE2Mjc5OTUgKzAxMDAKK0BAIC04NSw2ICs4NSw3IEBAIHN0 cnVjdCBidWZmZXI7CiAgCiAgZXh0ZXJuIHZvaWQgbGludXhfcHRyYWNlX2F0dGFjaF93YXJuaW5n cyAocGlkX3QgcGlkLCBzdHJ1Y3QgYnVmZmVyICpidWZmZXIpOwogIGV4dGVybiB2b2lkIGxpbnV4 X3B0cmFjZV9pbml0X3dhcm5pbmdzICh2b2lkKTsKICtleHRlcm4gdm9pZCBsaW51eF9wdHJhY2Vf Y3JlYXRlX3dhcm5pbmdzIChzdHJ1Y3QgYnVmZmVyICpidWZmZXIpOwotIAotICNlbmRpZiAvKiBD T01NT05fTElOVVhfUFRSQUNFX0ggKi8KLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9n ZGIvY29uZmlndXJlLmFjCisgZXh0ZXJuIHZvaWQgbGludXhfZW5hYmxlX2V2ZW50X3JlcG9ydGlu ZyAocGlkX3QgcGlkKTsKKyBleHRlcm4gaW50IGxpbnV4X3N1cHBvcnRzX3RyYWNlZm9yayAodm9p ZCk7CisgZXh0ZXJuIGludCBsaW51eF9zdXBwb3J0c190cmFjZWNsb25lICh2b2lkKTsKK0luZGV4 OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9jb25maWd1cmUuYWMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9jb25maWd1cmUuYWMJMjAxMy0wOC0wMiAx NjozNDoxNi4xMjM5MTA5MzYgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIv Y29uZmlndXJlLmFjCTIwMTMtMDgtMDIgMTY6MzQ6NDYuNTE5OTYwMDYzICswMjAwCi1AQCAtMjA3 MSw2ICsyMDcxLDEwIEBAIGNhc2UgJGhvc3Rfb3MgaW4KKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3 Lm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDE0LTAyLTA2IDE3OjQwOjMyLjUzMjE0NTk2MiArMDEw MAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDE0LTAyLTA2IDE3 OjQwOjM1LjUwNzE0OTE2MyArMDEwMAorQEAgLTE5NzUsNiArMTk3NSwxMCBAQCBjYXNlICRob3N0 X29zIGluCiAgZXNhYwogIEFDX0RFRklORV9VTlFVT1RFRChHREJJTklULCIkZ2RiaW5pdCIsW1Ro ZSAuZ2RiaW5pdCBmaWxlbmFtZS5dKQogIApAQCAtMTA3LDExICsxMDgsMTEgQEAgSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jb25maWd1cmUuYWMKICBkbmwgSGFuZGxlIG9wdGlv bmFsIGZlYXR1cmVzIHRoYXQgY2FuIGJlIGVuYWJsZWQuCiAgCiAgIyBTdXBwb3J0IGZvciAtLXdp dGgtc3lzcm9vdCBpcyBhIGNvcHkgb2YgR0RCX0FDX1dJVEhfRElSLAotSW5kZXg6IGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCitJbmRleDogZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMJ MjAxMy0wOC0wMiAxNjozNDoxNi4xMjQ5MTA5MzggKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwkyMDEzLTA4LTAyIDE2OjM1OjA2LjYz NDk5MTg5MiArMDIwMAotQEAgLTQ3MSw2ICs0NzEsMTAgQEAgaWYgJHdhbnRfaXBhIDsgdGhlbgor LS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwky MDE0LTAyLTA2IDE3OjQwOjMyLjUzMjE0NTk2MiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMJMjAxNC0wMi0wNiAxNzo0MDozNS41MDcxNDkx NjMgKzAxMDAKK0BAIC00NTQsNiArNDU0LDEwIEBAIGlmICR3YW50X2lwYSA7IHRoZW4KICAgICBm aQogIGZpCiAgCkBAIC0xMjIsMTEgKzEyMywxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMKICBBQ19TVUJTVChHREJTRVJWRVJfREVQ RklMRVMpCiAgQUNfU1VCU1QoR0RCU0VSVkVSX0xJQlMpCiAgQUNfU1VCU1Qoc3J2X3htbGJ1aWx0 aW4pCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2dkYnNlcnZlci9saW51eC1s b3cuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2dkYnNl cnZlci9saW51eC1sb3cuYwkyMDEzLTA4LTAyIDE2OjMzOjUyLjc3Mjg3MjQyMSArMDIwMAotKysr IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMJMjAxMy0w OC0wMiAxNjozNDoxNi4xMjY5MTA5NDEgKzAyMDAKLUBAIC02MjIsNiArNjIyLDI5IEBAIGFkZF9s d3AgKHB0aWRfdCBwdGlkKQorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvZ2Ric2Vy dmVyL2xpbnV4LWxvdy5jCTIwMTQtMDItMDYgMTc6NDA6MzIuNTM0MTQ1OTY0ICswMTAwCisrKysg Z2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTQtMDItMDYg MTc6NDk6MzIuMzg1NzI2NTE0ICswMTAwCitAQCAtNTQzLDYgKzU0MywyOSBAQCBhZGRfbHdwIChw dGlkX3QgcHRpZCkKICAgIHJldHVybiBsd3A7CiAgfQogIApAQCAtMTQwLDcgKzE0MSw3IEBAIElu ZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCiAr CiArICBlcnJubyA9IDA7CiArICBpZiAocHRyYWNlIChQVFJBQ0VfVFJBQ0VNRSwgMCwKLSsJICAg ICAgKFBUUkFDRV9BUkczX1RZUEUpIDAsIChQVFJBQ0VfQVJHNF9UWVBFKSAwKSA9PSAwKQorKwkg ICAgICAoUFRSQUNFX1RZUEVfQVJHMykgMCwgKFBUUkFDRV9UWVBFX0FSRzQpIDApID09IDApCiAr ICAgIHJldHVybjsKICsKICsgIHNhdmVfZXJybm8gPSBlcnJubzsKQEAgLTE1NiwyOSArMTU3LDIw IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZ2Ric2VydmVyL2xpbnV4LWxv dy5jCiAgLyogU3RhcnQgYW4gaW5mZXJpb3IgcHJvY2VzcyBhbmQgcmV0dXJucyBpdHMgcGlkLgog ICAgIEFMTEFSR1MgaXMgYSB2ZWN0b3Igb2YgcHJvZ3JhbS1uYW1lIGFuZCBhcmdzLiAqLwogIAot QEAgLTY2Miw3ICs2ODUsNyBAQCBsaW51eF9jcmVhdGVfaW5mZXJpb3IgKGNoYXIgKnByb2dyYW0s IGNoCi0gCitAQCAtNTg0LDcgKzYwNyw3IEBAIGxpbnV4X2NyZWF0ZV9pbmZlcmlvciAoY2hhciAq cHJvZ3JhbSwgY2gKICAgIGlmIChwaWQgPT0gMCkKICAgICAgewotLSAgICAgIHB0cmFjZSAoUFRS QUNFX1RSQUNFTUUsIDAsIChQVFJBQ0VfQVJHM19UWVBFKSAwLCAoUFRSQUNFX0FSRzRfVFlQRSkg MCk7CisgICAgICAgY2xvc2VfbW9zdF9mZHMgKCk7CistICAgICAgcHRyYWNlIChQVFJBQ0VfVFJB Q0VNRSwgMCwgKFBUUkFDRV9UWVBFX0FSRzMpIDAsIChQVFJBQ0VfVFlQRV9BUkc0KSAwKTsKICsg ICAgICBsaW51eF90cmFjZW1lIChwcm9ncmFtKTsKICAKICAjaWZuZGVmIF9fQU5EUk9JRF9fIC8q IEJpb25pYyBkb2Vzbid0IHVzZSBTSUdSVE1JTiB0aGUgd2F5IGdsaWJjIGRvZXMuICAqLwogICAg ICAgIHNpZ25hbCAoX19TSUdSVE1JTiArIDEsIFNJR19ERkwpOwotQEAgLTQ2ODUsNyArNDcwOCw3 IEBAIGxpbnV4X3RyYWNlZm9ya19ncmFuZGNoaWxkICh2b2lkICphcmcpCi0gc3RhdGljIGludAot IGxpbnV4X3RyYWNlZm9ya19jaGlsZCAodm9pZCAqYXJnKQotIHsKLS0gIHB0cmFjZSAoUFRSQUNF X1RSQUNFTUUsIDAsIChQVFJBQ0VfQVJHM19UWVBFKSAwLCAoUFRSQUNFX0FSRzRfVFlQRSkgMCk7 Ci0rICBsaW51eF90cmFjZW1lICgiUFRSQUNFX09fVFJBQ0VGT1JLIHRlc3QiKTsKLSAgIGtpbGwg KGdldHBpZCAoKSwgU0lHU1RPUCk7Ci0gCi0gI2lmICEoZGVmaW5lZChfX1VDTElCQ19fKSAmJiBk ZWZpbmVkKEhBU19OT01NVSkpCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2lu Zi1wdHJhY2UuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2luZi1wdHJhY2UuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2luZi1wdHJh Y2UuYwkyMDEzLTA4LTAyIDE2OjMzOjUyLjc3Mjg3MjQyMSArMDIwMAotKysrIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9pbmYtcHRyYWNlLmMJMjAxMy0wOC0wMiAxNjozNDoxNi4xMjY5MTA5 NDEgKzAyMDAKLUBAIC0xMDQsNyArMTA0LDE1IEBAIHN0YXRpYyB2b2lkCistLS0gZ2RiLTcuNi45 MC4yMDE0MDEyNy5vcmlnL2dkYi9pbmYtcHRyYWNlLmMJMjAxNC0wMi0wNiAxNzo0MDozMi41MzUx NDU5NjUgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9pbmYtcHRyYWNlLmMJMjAx NC0wMi0wNiAxNzo0MDozNS41MTAxNDkxNjcgKzAxMDAKK0BAIC0xMDUsNyArMTA1LDE1IEBAIHN0 YXRpYyB2b2lkCiAgaW5mX3B0cmFjZV9tZSAodm9pZCkKICB7CiAgICAvKiAiVHJhY2UgbWUsIERy LiBNZW1vcnkhIiAgKi8KQEAgLTE5NCwxMSArMTg2LDExIEBAIEluZGV4OiBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvaW5mLXB0cmFjZS5jCiAgfQogIAogIC8qIFN0YXJ0IGEgbmV3IGluZmVy aW9yIFVuaXggY2hpbGQgcHJvY2Vzcy4gIEVYRUNfRklMRSBpcyB0aGUgZmlsZSB0bwotSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL2xpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxMy0wOC0wMiAxNjozMzo1Mi43NzQ4 NzI0MjQgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbGludXgtbmF0LmMJ MjAxMy0wOC0wMiAxNjozNDoxNi4xMjg5MTA5NDQgKzAyMDAKLUBAIC0xNTU0LDYgKzE1NTQsNyBA QCBsaW51eF9uYXRfY3JlYXRlX2luZmVyaW9yIChzdHJ1Y3QgdGFyZ2V0CistLS0gZ2RiLTcuNi45 MC4yMDE0MDEyNy5vcmlnL2dkYi9saW51eC1uYXQuYwkyMDE0LTAyLTA2IDE3OjQwOjMyLjUzNzE0 NTk2OCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2xpbnV4LW5hdC5jCTIwMTQt MDItMDYgMTc6NDA6MzUuNTExMTQ5MTY4ICswMTAwCitAQCAtMTI4Myw2ICsxMjgzLDcgQEAgbGlu dXhfbmF0X2NyZWF0ZV9pbmZlcmlvciAoc3RydWN0IHRhcmdldAogICNpZmRlZiBIQVZFX1BFUlNP TkFMSVRZCiAgICBpbnQgcGVyc29uYWxpdHlfb3JpZyA9IDAsIHBlcnNvbmFsaXR5X3NldCA9IDA7 CiAgI2VuZGlmIC8qIEhBVkVfUEVSU09OQUxJVFkgKi8KQEAgLTIwNiw3ICsxOTgsNyBAQCBJbmRl eDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2xpbnV4LW5hdC5jCiAgCiAgICAvKiBUaGUg Zm9ya19jaGlsZCBtZWNoYW5pc20gaXMgc3luY2hyb25vdXMgYW5kIGNhbGxzIHRhcmdldF93YWl0 LCBzbwogICAgICAgd2UgaGF2ZSB0byBtYXNrIHRoZSBhc3luYyBtb2RlLiAgKi8KLUBAIC0xNTc4 LDcgKzE1NzksMTAgQEAgbGludXhfbmF0X2NyZWF0ZV9pbmZlcmlvciAoc3RydWN0IHRhcmdldAor QEAgLTEzMDcsNyArMTMwOCwxMCBAQCBsaW51eF9uYXRfY3JlYXRlX2luZmVyaW9yIChzdHJ1Y3Qg dGFyZ2V0CiAgICAvKiBNYWtlIHN1cmUgd2UgcmVwb3J0IGFsbCBzaWduYWxzIGR1cmluZyBzdGFy dHVwLiAgKi8KICAgIGxpbnV4X25hdF9wYXNzX3NpZ25hbHMgKDAsIE5VTEwpOwogIApAQCAtMjE4 LDcgKzIxMCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbGludXgtbmF0 LmMKICAKICAjaWZkZWYgSEFWRV9QRVJTT05BTElUWQogICAgaWYgKHBlcnNvbmFsaXR5X3NldCkK LUBAIC0xNTkwLDYgKzE1OTQsMjQgQEAgbGludXhfbmF0X2NyZWF0ZV9pbmZlcmlvciAoc3RydWN0 IHRhcmdldAorQEAgLTEzMTksNiArMTMyMywyNCBAQCBsaW51eF9uYXRfY3JlYXRlX2luZmVyaW9y IChzdHJ1Y3QgdGFyZ2V0CiAgCQkgc2FmZV9zdHJlcnJvciAoZXJybm8pKTsKICAgICAgfQogICNl bmRpZiAvKiBIQVZFX1BFUlNPTkFMSVRZICovCkBAIC0yNDMsMTEgKzIzNSwxMSBAQCBJbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2xpbnV4LW5hdC5jCiAgfQogIAogIHN0YXRpYyB2 b2lkCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2NvbmZpZy5pbgorSW5kZXg6 IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NvbmZpZy5pbgogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2NvbmZpZy5pbgkyMDEzLTA4LTAyIDE2OjI1OjI3 LjMzOTA5NzU2MSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jb25maWcu aW4JMjAxMy0wOC0wMiAxNjozNjoxNi4yNDkwOTk4NDEgKzAyMDAKLUBAIC0yMjUsNiArMjI1LDkg QEAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2NvbmZpZy5pbgkyMDE0LTAyLTA2 IDE3OjQwOjMyLjUzODE0NTk2OSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2Nv bmZpZy5pbgkyMDE0LTAyLTA2IDE3OjQwOjM1LjUxMTE0OTE2OCArMDEwMAorQEAgLTIxMyw2ICsy MTMsOSBAQAogIC8qIERlZmluZSBpZiBsaWJycG0gbGlicmFyeSBpcyBiZWluZyB1c2VkLiAqLwog ICN1bmRlZiBIQVZFX0xJQlJQTQogIApAQCAtMjU3LDcgKzI0OSw3IEBAIEluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29uZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIDxsaWJ1bndpbmQtaWE2NC5oPiBoZWFkZXIgZmlsZS4gKi8KICAjdW5kZWYgSEFWRV9M SUJVTldJTkRfSUE2NF9ICiAgCi1AQCAtMzcyLDYgKzM3NSw5IEBACitAQCAtMzQ1LDYgKzM0OCw5 IEBACiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzYnJrJyBmdW5jdGlvbi4gKi8K ICAjdW5kZWYgSEFWRV9TQlJLCiAgCkBAIC0yNjcsMTEgKzI1OSwxMSBAQCBJbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAxIGlmIHlvdSBo YXZlIHRoZSBgc2V0bG9jYWxlJyBmdW5jdGlvbi4gKi8KICAjdW5kZWYgSEFWRV9TRVRMT0NBTEUK ICAKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29uZmlndXJlCitJbmRleDog Z2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvY29uZmlndXJlCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvY29uZmlndXJlCTIwMTMtMDgtMDIgMTY6MjU6Mjcu MzQzMDk3NTY3ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2NvbmZpZ3Vy ZQkyMDEzLTA4LTAyIDE2OjM2OjE0LjY2NTA5NzQzNCArMDIwMAotQEAgLTEyODUxLDYgKzEyODUx LDY0IEBAIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3 Lm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDE0LTAyLTA2IDE3OjQwOjMyLjU0MTE0NTk3MiArMDEwMAor KysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NvbmZpZ3VyZQkyMDE0LTAyLTA2IDE3OjQwOjM1 LjUxNTE0OTE3MiArMDEwMAorQEAgLTEyODYxLDYgKzEyODYxLDY0IEBAIGNhdCA+PmNvbmZkZWZz LmggPDxfQUNFT0YKICBfQUNFT0YKICAKICAKQEAgLTMzNiwyNCArMzI4LDIxIEBAIEluZGV4OiBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29uZmlndXJlCiAgCiAgIyBTdXBwb3J0IGZvciAt LXdpdGgtc3lzcm9vdCBpcyBhIGNvcHkgb2YgR0RCX0FDX1dJVEhfRElSLAogICMgZXhjZXB0IHRo YXQgdGhlIGFyZ3VtZW50IHRvIC0td2l0aC1zeXNyb290IGlzIG9wdGlvbmFsLgotSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCitJbmRleDogZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAx My0wNy0zMSAyMTo0MTo1NC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgkyMDEzLTA4LTAyIDE2OjM2OjIxLjcxOTEwODE0 MSArMDIwMAotQEAgLTc2LDYgKzc2LDEyIEBACi0gLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUg dGhlIGBkbCcgbGlicmFyeSAoLWxkbCkuICovCi0gI3VuZGVmIEhBVkVfTElCREwKKy0tLSBnZGIt Ny42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNC0wMi0wNiAx Nzo0MDozMi41NDIxNDU5NzMgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9nZGJz ZXJ2ZXIvY29uZmlnLmluCTIwMTQtMDItMDYgMTc6NTQ6MDYuOTIzMDIxNzk5ICswMTAwCitAQCAt NzgsNiArNzgsOSBAQAorIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWNoZWNrJyBs aWJyYXJ5ICgtbG1jaGVjaykuICovCisgI3VuZGVmIEhBVkVfTElCTUNIRUNLCiAgCi0rLyogRGVm aW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBtY2hlY2snIGxpYnJhcnkgKC1sbWNoZWNrKS4gKi8K LSsjdW5kZWYgSEFWRV9MSUJNQ0hFQ0sKLSsKICsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0 aGUgYHNlbGludXgnIGxpYnJhcnkgKC1sc2VsaW51eCkuICovCiArI3VuZGVmIEhBVkVfTElCU0VM SU5VWAogKwogIC8qIERlZmluZSBpZiB0aGUgdGFyZ2V0IHN1cHBvcnRzIGJyYW5jaCB0cmFjaW5n LiAqLwogICN1bmRlZiBIQVZFX0xJTlVYX0JUUkFDRQogIAotQEAgLTE0Niw2ICsxNTIsOSBAQAor QEAgLTE1MSw2ICsxNTQsOSBAQAogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcmVh ZGxpbmsnIGZ1bmN0aW9uLiAqLwogICN1bmRlZiBIQVZFX1JFQURMSU5LCiAgCkBAIC0zNjMsMTEg KzM1MiwxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2dkYnNlcnZlci9j b25maWcuaW4KICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHNndHR5Lmg+IGhlYWRl ciBmaWxlLiAqLwogICN1bmRlZiBIQVZFX1NHVFRZX0gKICAKLUluZGV4OiBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQorSW5kZXg6IGdkYi03LjYuOTAuMjAx NDAxMjcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCTIwMTMtMDctMzEgMjE6 NDE6NTQuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2dk YnNlcnZlci9jb25maWd1cmUJMjAxMy0wOC0wMiAxNjozNjoyMC4yMzcxMDU4OTQgKzAyMDAKLUBA IC02MDAzLDYgKzYwMDMsNjQgQEAgaWYgJHdhbnRfaXBhIDsgdGhlbgorLS0tIGdkYi03LjYuOTAu MjAxNDAxMjcub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQkyMDE0LTAyLTA2IDE3OjQwOjMy LjU0MzE0NTk3NCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2dkYnNlcnZlci9j b25maWd1cmUJMjAxNC0wMi0wNiAxNzo0MDozNS41MTYxNDkxNzMgKzAxMDAKK0BAIC02MTcwLDYg KzYxNzAsNjQgQEAgaWYgJHdhbnRfaXBhIDsgdGhlbgogICAgIGZpCiAgZmkKICAKCmRpZmYgLS1n aXQgYS9nZGItYno1NDE4NjYtcndhdGNoLWJlZm9yZS1ydW4ucGF0Y2ggYi9nZGItYno1NDE4NjYt cndhdGNoLWJlZm9yZS1ydW4ucGF0Y2gKaW5kZXggNDY2NTBlMy4uZTYwNzNlYiAxMDA2NDQKLS0t IGEvZ2RiLWJ6NTQxODY2LXJ3YXRjaC1iZWZvcmUtcnVuLnBhdGNoCisrKyBiL2dkYi1iejU0MTg2 Ni1yd2F0Y2gtYmVmb3JlLXJ1bi5wYXRjaApAQCAtMSwyMCArMSwyMCBAQAotSW5kZXg6IGdkYi03 LjUuOTEuMjAxMzAzMjMvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4NjQubWgKK0luZGV4OiBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuNS45MS4yMDEzMDMyMy5vcmlnL2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCTIwMTMt MDMtMTEgMDk6MjU6NTguMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuNS45MS4yMDEzMDMyMy9n ZGIvY29uZmlnL2kzODYvbGludXg2NC5taAkyMDEzLTAzLTIzIDE5OjQ4OjM3LjcwNzc2MTExNyAr MDEwMAotQEAgLTQsNyArNCw3IEBAIE5BVERFUEZJTEVTPSBpbmYtcHRyYWNlLm8gZm9yay1jaGls ZC5vIFwKLSAJbGludXgtbmF0Lm8gbGludXgtb3NkYXRhLm8gXAorLS0tIGdkYi03LjYuOTAuMjAx NDAxMjcub3JpZy9nZGIvY29uZmlnL2kzODYvbGludXg2NC5taAkyMDE0LTAyLTA2IDE3OjMwOjIz LjAyMTQ4OTczNiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NvbmZpZy9pMzg2 L2xpbnV4NjQubWgJMjAxNC0wMi0wNiAxNzozMDo0NC45ODQ1MTM0MDMgKzAxMDAKK0BAIC01LDcg KzUsNyBAQCBOQVRERVBGSUxFUz0gaW5mLXB0cmFjZS5vIGZvcmstY2hpbGQubyBcCiAgCXByb2Mt c2VydmljZS5vIGxpbnV4LXRocmVhZC1kYi5vIGxpbnV4LWZvcmsubyBcCi0gCWxpbnV4LXByb2Nm cy5vIGxpbnV4LXB0cmFjZS5vIGxpbnV4LWJ0cmFjZS5vCisgCWxpbnV4LXByb2Nmcy5vIGxpbnV4 LXB0cmFjZS5vIGxpbnV4LWJ0cmFjZS5vIFwKKyAJbGludXgtd2FpdHBpZC5vCiAtTkFUX0ZJTEU9 IGNvbmZpZy9ubS1saW51eC5oCiArTkFUX0ZJTEU9IG5tLWxpbnV4NjQuaAogIE5BVF9DREVQUyA9 ICQoc3JjZGlyKS9wcm9jLXNlcnZpY2UubGlzdAogIAogICMgVGhlIGR5bmFtaWNhbGx5IGxvYWRl ZCBsaWJ0aHJlYWRfZGIgbmVlZHMgYWNjZXNzIHRvIHN5bWJvbHMgaW4gdGhlCi1JbmRleDogZ2Ri LTcuNS45MS4yMDEzMDMyMy9nZGIvY29uZmlnL2kzODYvbGludXgubWgKK0luZGV4OiBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi9jb25maWcvaTM4Ni9saW51eC5taAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjUuOTEuMjAxMzAzMjMub3JpZy9nZGIvY29uZmlnL2kzODYvbGludXgubWgJMjAxMy0wMy0x MSAwOToyNTo1OC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy41LjkxLjIwMTMwMzIzL2dkYi9j b25maWcvaTM4Ni9saW51eC5taAkyMDEzLTAzLTIzIDE5OjQ4OjIyLjc1Nzk5MDI1NiArMDEwMAor LS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvY29uZmlnL2kzODYvbGludXgubWgJMjAx NC0wMi0wNiAxNzozMDoxNS44OTM0ODIwNTYgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3 L2dkYi9jb25maWcvaTM4Ni9saW51eC5taAkyMDE0LTAyLTA2IDE3OjMwOjIzLjAyMTQ4OTczNiAr MDEwMAogQEAgLTEsNiArMSw2IEBACiAgIyBIb3N0OiBJbnRlbCAzODYgcnVubmluZyBHTlUvTGlu dXguCiAgCkBAIC0yMywxMCArMjMsMTAgQEAgSW5kZXg6IGdkYi03LjUuOTEuMjAxMzAzMjMvZ2Ri L2NvbmZpZy9pMzg2L2xpbnV4Lm1oCiAgTkFUREVQRklMRVM9IGluZi1wdHJhY2UubyBmb3JrLWNo aWxkLm8gXAogIAlpMzg2LW5hdC5vIGkzODYtbGludXgtbmF0Lm8gXAogIAlwcm9jLXNlcnZpY2Uu byBsaW51eC10aHJlYWQtZGIubyBcCi1JbmRleDogZ2RiLTcuNS45MS4yMDEzMDMyMy9nZGIvY29u ZmlnL2kzODYvbm0tbGludXguaAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NvbmZp Zy9pMzg2L25tLWxpbnV4LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAw MDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy41LjkxLjIwMTMwMzIzL2dkYi9jb25m aWcvaTM4Ni9ubS1saW51eC5oCTIwMTMtMDMtMjMgMTk6NDg6MjIuNzU3OTkwMjU2ICswMTAwCisr KysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvY29uZmlnL2kzODYvbm0tbGludXguaAkyMDE0LTAy LTA2IDE3OjMwOjIzLjAyMTQ4OTczNiArMDEwMAogQEAgLTAsMCArMSwyOCBAQAogKy8qIE5hdGl2 ZSBzdXBwb3J0IGZvciBHTlUvTGludXggaTM4Ni4KICsKQEAgLTU2LDEwICs1NiwxMCBAQCBJbmRl eDogZ2RiLTcuNS45MS4yMDEzMDMyMy9nZGIvY29uZmlnL2kzODYvbm0tbGludXguaAogKyNkZWZp bmUgdGFyZ2V0X2Nhbl91c2VfaGFyZHdhcmVfd2F0Y2hwb2ludCh0eXBlLCBjbnQsIG90KSAxCiAr CiArI2VuZGlmIC8qIE5NX0xJTlVYNjRfSCAqLwotSW5kZXg6IGdkYi03LjUuOTEuMjAxMzAzMjMv Z2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4NjQuaAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcv Z2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4NjQuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkx OTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjUuOTEuMjAxMzAz MjMvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4NjQuaAkyMDEzLTAzLTIzIDE5OjQ4OjIyLjc1Nzk5 MDI1NiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NvbmZpZy9pMzg2L25tLWxp bnV4NjQuaAkyMDE0LTAyLTA2IDE3OjMwOjIzLjAyMTQ4OTczNiArMDEwMAogQEAgLTAsMCArMSwy OCBAQAogKy8qIE5hdGl2ZSBzdXBwb3J0IGZvciBHTlUvTGludXggYW1kNjQuCiArCkBAIC04OSwx MSArODksMTEgQEAgSW5kZXg6IGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL2NvbmZpZy9pMzg2L25t LWxpbnV4NjQuaAogKyNkZWZpbmUgdGFyZ2V0X2Nhbl91c2VfaGFyZHdhcmVfd2F0Y2hwb2ludCh0 eXBlLCBjbnQsIG90KSAxCiArCiArI2VuZGlmIC8qIE5NX0xJTlVYNjRfSCAqLwotSW5kZXg6IGdk Yi03LjUuOTEuMjAxMzAzMjMvZ2RiL3RhcmdldC5oCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvdGFyZ2V0LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy41LjkxLjIwMTMwMzIzLm9yaWcv Z2RiL3RhcmdldC5oCTIwMTMtMDMtMTEgMDk6NTA6MDUuMDAwMDAwMDAwICswMTAwCi0rKysgZ2Ri LTcuNS45MS4yMDEzMDMyMy9nZGIvdGFyZ2V0LmgJMjAxMy0wMy0yMyAxOTo0ODoyMi43NTg5OTAy MzggKzAxMDAKLUBAIC0xNTYzLDggKzE1NjMsMTAgQEAgZXh0ZXJuIGNoYXIgKnRhcmdldF90aHJl YWRfbmFtZSAoc3RydWN0CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90YXJnZXQu aAkyMDE0LTAyLTA2IDE3OjMwOjE1Ljg5NDQ4MjA1NyArMDEwMAorKysrIGdkYi03LjYuOTAuMjAx NDAxMjcvZ2RiL3RhcmdldC5oCTIwMTQtMDItMDYgMTc6MzA6MjMuMDIyNDg5NzM3ICswMTAwCitA QCAtMTUyMSw4ICsxNTIxLDEwIEBAIGV4dGVybiBjaGFyICp0YXJnZXRfdGhyZWFkX25hbWUgKHN0 cnVjdAogICAgIGJwX2hhcmR3YXJlX2JyZWFrcG9pbnQuICBDTlQgaXMgdGhlIG51bWJlciBvZiBz dWNoIHdhdGNocG9pbnRzIHVzZWQgc28gZmFyCiAgICAgKGluY2x1ZGluZyB0aGlzIG9uZT8pLiAg T1RIRVJUWVBFIGlzIHdobyBrbm93cyB3aGF0Li4uICAqLwogIApAQCAtMTA0LDEwICsxMDQsMTAg QEAgSW5kZXg6IGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL3RhcmdldC5oCiAgCiAgLyogUmV0dXJu cyB0aGUgbnVtYmVyIG9mIGRlYnVnIHJlZ2lzdGVycyBuZWVkZWQgdG8gd2F0Y2ggdGhlIGdpdmVu CiAgICAgbWVtb3J5IHJlZ2lvbiwgb3IgemVybyBpZiBub3Qgc3VwcG9ydGVkLiAgKi8KLUluZGV4 OiBnZGItNy41LjkxLjIwMTMwMzIzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvd2F0Y2hwb2ludC1o dy1iZWZvcmUtcnVuLmV4cAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS93YXRjaHBvaW50LWh3LWJlZm9yZS1ydW4uZXhwCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu NS45MS4yMDEzMDMyMy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHctYmVmb3Jl LXJ1bi5leHAJMjAxMy0wMy0yMyAxOTo0ODoyMi43NTg5OTAyMzggKzAxMDAKKysrKyBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvd2F0Y2hwb2ludC1ody1iZWZvcmUt cnVuLmV4cAkyMDE0LTAyLTA2IDE3OjMwOjIzLjAyMjQ4OTczNyArMDEwMAogQEAgLTAsMCArMSw0 MCBAQAogKyMgQ29weXJpZ2h0IDIwMDksIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCiArCgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NjAxODg3LWR3YXJmNC1yaC10ZXN0LnBhdGNoIGIv Z2RiLWJ6NjAxODg3LWR3YXJmNC1yaC10ZXN0LnBhdGNoCmluZGV4IDQ3NzRiZGEuLmExMDNkYTEg MTAwNjQ0Ci0tLSBhL2dkYi1iejYwMTg4Ny1kd2FyZjQtcmgtdGVzdC5wYXRjaAorKysgYi9nZGIt Yno2MDE4ODctZHdhcmY0LXJoLXRlc3QucGF0Y2gKQEAgLTEsNSArMSw3IEBACi0tLS0gL2Rldi9u dWxsCTIwMTAtMDYtMDggMjA6MzU6NDYuODAwMjc4NDUyICswMjAwCi0rKysgZ2RiLTcuMS9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvcmgtZHdhcmY0LXg4Nl82NC5TCTIwMTAtMDYtMDkgMTU6MjI6 NTcuMDAwMDAwMDAwICswMjAwCitJbmRleDogZ2RiLTcuNy9nZGIvdGVzdHN1aXRlL2dkYi5kd2Fy ZjIvcmgtZHdhcmY0LXg4Nl82NC5TCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuNy9nZGIvdGVzdHN1aXRlL2dk Yi5kd2FyZjIvcmgtZHdhcmY0LXg4Nl82NC5TCTIwMTQtMDItMDYgMjI6MDI6MjEuOTgxNDQ5NTU1 ICswMTAwCiBAQCAtMCwwICsxLDE2NyBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBH REIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0xNjgsOCArMTcwLDEwIEBACiArCS5zdHJpbmcJ Im1haW4iCiArCS5pZGVudAkiR0NDOiAoR05VKSA0LjQuNCAyMDEwMDUwMyAoUmVkIEhhdCA0LjQu NC0yKSIKICsJLnNlY3Rpb24JLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cwotLS0tIC9kZXYv bnVsbAkyMDEwLTA2LTA4IDIwOjM1OjQ2LjgwMDI3ODQ1MiArMDIwMAotKysrIGdkYi03LjEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL3JoLWR3YXJmNC14ODZfNjQuYwkyMDEwLTA2LTA5IDE1OjIx OjM1LjAwMDAwMDAwMCArMDIwMAorSW5kZXg6IGdkYi03LjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL3JoLWR3YXJmNC14ODZfNjQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAx LTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZHdhcmYyL3JoLWR3YXJmNC14ODZfNjQuYwkyMDE0LTAyLTA2IDIyOjAyOjIxLjk4MTQ0OTU1 NSArMDEwMAogQEAgLTAsMCArMSwyMiBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBH REIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0xOTMsOCArMTk3LDEwIEBACiArewogKyAgcmV0 dXJuIDA7CiArfQotLS0tIC9kZXYvbnVsbAkyMDEwLTA2LTA4IDIwOjM1OjQ2LjgwMDI3ODQ1MiAr MDIwMAotKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL3JoLWR3YXJmNC14ODZf NjQuZXhwCTIwMTAtMDYtMDkgMTU6MjY6MjEuMDAwMDAwMDAwICswMjAwCitJbmRleDogZ2RiLTcu Ny9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvcmgtZHdhcmY0LXg4Nl82NC5leHAKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysr KyBnZGItNy43L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9yaC1kd2FyZjQteDg2XzY0LmV4cAky MDE0LTAyLTA2IDIyOjEyOjEwLjc4ODAzMjQxNyArMDEwMAogQEAgLTAsMCArMSw0MiBAQAogKyMg Q29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0yMjks NyArMjM1LDcgQEAKICtzZXQgdGVzdGZpbGUgInJoLWR3YXJmNC14ODZfNjQiCiArc2V0IHNyY2Zp bGUgJHt0ZXN0ZmlsZX0uUwogK3NldCBleGVjdXRhYmxlICR7dGVzdGZpbGV9LngKLStzZXQgYmlu ZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7ZXhlY3V0YWJsZX0KKytzZXQgYmluZmlsZSBbc3Rh bmRhcmRfb3V0cHV0X2ZpbGUgJHtleGVjdXRhYmxlfV0KICsKICtpZiAgeyBbZ2RiX2NvbXBpbGUg IiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIG9iamVjdCB7fV0g IT0gIiIgfSB7CiArICAgIHJldHVybiAtMQoKZGlmZiAtLWdpdCBhL2dkYi1jb3JlLW9wZW4tdmRz by13YXJuaW5nLnBhdGNoIGIvZ2RiLWNvcmUtb3Blbi12ZHNvLXdhcm5pbmcucGF0Y2gKaW5kZXgg NmM0MmU1YS4uNWJkM2VmOSAxMDA2NDQKLS0tIGEvZ2RiLWNvcmUtb3Blbi12ZHNvLXdhcm5pbmcu cGF0Y2gKKysrIGIvZ2RiLWNvcmUtb3Blbi12ZHNvLXdhcm5pbmcucGF0Y2gKQEAgLTMsODkgKzMs MTAgQEAgU3ViamVjdDogW3BhdGNoXSBGaXggR05VL0xpbnV4IGNvcmUgb3BlbjogQ2FuJ3QgcmVh ZCBwYXRobmFtZSBmb3IgbG9hZCBtYXA6ICBJbnAKIAogWyBOZXcgcGF0Y2ggdmFyaWFudC4gIF0K IAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zb2xpYi1zdnI0LmMKLT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9zb2xpYi1zdnI0LmMJ MjAxMy0wOC0wMiAxNjoyNzoyOC44MzEyNTk0NjggKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvc29saWItc3ZyNC5jCTIwMTMtMDgtMDIgMTY6Mjc6NDcuODcxMjg0ODEzICsw MjAwCi1AQCAtMTM1OSw4ICsxMzU5LDE3IEBAIHN2cjRfcmVhZF9zb19saXN0IChDT1JFX0FERFIg bG0sIENPUkVfQUQKLSAJCQkgIFNPX05BTUVfTUFYX1BBVEhfU0laRSAtIDEsICZlcnJjb2RlKTsK LSAgICAgICBpZiAoZXJyY29kZSAhPSAwKQotIAl7Ci0tCSAgd2FybmluZyAoXygiQ2FuJ3QgcmVh ZCBwYXRobmFtZSBmb3IgbG9hZCBtYXA6ICVzLiIpLAotLQkJICAgc2FmZV9zdHJlcnJvciAoZXJy Y29kZSkpOwotKwkgIC8qIER1cmluZyB0aGUgZmlyc3QgZXZlciBEU08gbGlzdCByZWFkaW5nIHNv bWUgc3RyaW5ncyBtYXkgYmUKLSsJICAgICB1bnJlYWRhYmxlIGFzIHJlc2lkaW5nIGluIHRoZSBs ZC5zbyByZWFkb25seSBtZW1vcnkgbm90IGJlaW5nCi0rCSAgICAgcHJlc2VudCBpbiBhIGR1bXBl ZCBjb3JlIGZpbGUuICBEZWxheSB0aGUgZXJyb3IgY2hlY2sgYWZ0ZXIKLSsJICAgICB0aGUgZmly c3QgcGFzcyBvZiBEU08gbGlzdCBzY2FubmluZyB3aGVuIGxkLnNvIHNob3VsZCBiZQotKwkgICAg IGFscmVhZHkgbWFwcGVkIGluIGFuZCBhbGwgdGhlIERTTyBsaXN0IGxfbmFtZSBtZW1vcnkgZ2V0 cwotKwkgICAgIHJlYWRhYmxlLiAgKi8KLSsKLSsJICBpZiAobWFzdGVyX3NvX2xpc3QgKCkgIT0g TlVMTCkKLSsJICAgIHdhcm5pbmcgKF8oIkNhbid0IHJlYWQgcGF0aG5hbWUgZm9yIGxvYWQgbWFw OiAlcy4iKSwKLSsJCSAgICAgc2FmZV9zdHJlcnJvciAoZXJyY29kZSkpOwotKwotIAkgIGRvX2Ns ZWFudXBzIChvbGRfY2hhaW4pOwotIAkgIGNvbnRpbnVlOwotIAl9Ci1JbmRleDogZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL3NvbGliLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy5vcmlnL2dkYi9zb2xpYi5jCTIwMTMtMDgtMDIgMTY6Mjc6MjguODMyMjU5NDcw ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3NvbGliLmMJMjAxMy0wOC0w MiAxNjoyODo1MC40MjEzNjc2OTQgKzAyMDAKLUBAIC02NjksNyArNjY5LDcgQEAgc29saWJfdXNl ZCAoY29uc3Qgc3RydWN0IHNvX2xpc3QgKmNvbnN0Ci0gICAgcHJvY2Vzc2VzIHdlJ3ZlIGp1c3Qg YXR0YWNoZWQgdG8sIHNvIHRoYXQncyBva2F5LiAgKi8KLSAKLSBzdGF0aWMgdm9pZAotLXVwZGF0 ZV9zb2xpYl9saXN0IChpbnQgZnJvbV90dHksIHN0cnVjdCB0YXJnZXRfb3BzICp0YXJnZXQpCi0r dXBkYXRlX3NvbGliX2xpc3RfMSAoaW50IGZyb21fdHR5LCBzdHJ1Y3QgdGFyZ2V0X29wcyAqdGFy Z2V0KQotIHsKLSAgIGNvbnN0IHN0cnVjdCB0YXJnZXRfc29fb3BzICpvcHMgPSBzb2xpYl9vcHMg KHRhcmdldF9nZGJhcmNoICgpKTsKLSAgIHN0cnVjdCBzb19saXN0ICppbmZlcmlvciA9IG9wcy0+ Y3VycmVudF9zb3MoKTsKLUBAIC04NDAsNiArODQwLDIxIEBAIERvIHlvdSBuZWVkIFwic2V0IHNv bGliLXNlYXJjaC1wYXRoXCIgb3IKLSAgICAgfQotIH0KLSAKLSsvKiBXcmFwcGVyIGZvciBGZWRv cmE6IGdkYi1jb3JlLW9wZW4tdmRzby13YXJuaW5nLnBhdGNoICAqLwotKwotK3N0YXRpYyB2b2lk Ci0rdXBkYXRlX3NvbGliX2xpc3QgKGludCBmcm9tX3R0eSwgc3RydWN0IHRhcmdldF9vcHMgKnRh cmdldCkKLSt7Ci0rICBzdHJ1Y3Qgc29fbGlzdCAqc2F2ZWRfc29fbGlzdF9oZWFkID0gc29fbGlz dF9oZWFkOwotKwotKyAgdXBkYXRlX3NvbGliX2xpc3RfMSAoZnJvbV90dHksIHRhcmdldCk7Ci0r Ci0rICAvKiBJZiB0aGlzIHdhcyB0aGUgdmVyeSBmaXJzdCBEU08gbGlzdCBzY2FuIGFuZCB3ZSBw b3NzaWJseSByZWFkIGluIGxkLnNvCi0rICAgICByZWNoZWNrIGFsbCB0aGUgZm9ybWVybHkgdW5y ZWFkYWJsZSBEU08gbmFtZXMgc3RyaW5ncy4gICovCi0rCi0rICBpZiAoc2F2ZWRfc29fbGlzdF9o ZWFkID09IE5VTEwgJiYgc29fbGlzdF9oZWFkICE9IE5VTEwpCi0rICAgIHVwZGF0ZV9zb2xpYl9s aXN0XzEgKGZyb21fdHR5LCB0YXJnZXQpOwotK30KLSAKLSAvKiBSZXR1cm4gbm9uLXplcm8gaWYg TkFNRSBpcyB0aGUgbGlicHRocmVhZCBzaGFyZWQgbGlicmFyeS4KLSAKLUluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAotPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9jb3JlZmlsZS5leHAJMjAxMy0wOC0wMiAxNjoyNzoyOC44MzMyNTk0NzEgKzAyMDAK LSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVm aWxlLmV4cAkyMDEzLTA4LTAyIDE2OjI3OjQ3Ljg3MjI4NDgxNCArMDIwMAotQEAgLTI4NSwzICsy ODUsMTkgQEAgaWYgeyRidWlsZGlkID09ICIifSB7Ci0gICAgIGdkYl90ZXN0ICJpbmZvIGZpbGVz IiAiTG9jYWwgZXhlYyBmaWxlOlxyXG5cWyBcdFxdKmBbc3RyaW5nX3RvX3JlZ2V4cCAkZGVidWdk aXIvJGJ1aWxkaWRdJywgZmlsZSB0eXBlIC4qIgotICAgICBwYXNzICR3aG9sZXRlc3QKLSB9Ci0r Ci0rCi0rIyBUZXN0IExpbnV4IHNwZWNpZmljIHZEU08gd2FybmluZzoKLSsjIHdhcm5pbmc6IENh bid0IHJlYWQgcGF0aG5hbWUgZm9yIGxvYWQgbWFwOiBJbnB1dC9vdXRwdXQgZXJyb3IuCi0rCi0r Y2xlYW5fcmVzdGFydCAke3Rlc3RmaWxlfQotKwotK3NldCB0ZXN0ICJjb3JlLWZpbGUgdmRzbyB3 YXJuaW5nIgotK2dkYl90ZXN0X211bHRpcGxlICJjb3JlLWZpbGUgJGNvcmVmaWxlIiAkdGVzdCB7 Ci0rICAgIC1yZSAid2FybmluZzogQ2FuJ3QgcmVhZCBwYXRobmFtZSBmb3IgbG9hZCBtYXA6IElu cHV0L291dHB1dCBlcnJvclxcLlxyXG4uKlxyXG4kZ2RiX3Byb21wdCAkIiB7Ci0rCWZhaWwgJHRl c3QKLSsgICAgfQotKyAgICAtcmUgIlxyXG4kZ2RiX3Byb21wdCAkIiB7Ci0rCXBhc3MgJHRlc3QK LSsgICAgfQotK30KK2NvbW1pdCA3ZDc2MDA1MWZmYjhhMjNjZGM1MTM0MmQ0ZTYyNDNmYmM0NjJm NzNmCitBdXRob3I6IFVscmljaCBXZWlnYW5kIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgorRGF0ZTog ICBXZWQgU2VwIDI1IDExOjUyOjUwIDIwMTMgKzAwMDAKKwogSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc29saWItc3ltYm9sLmV4cAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9zb2xpYi1zeW1ib2wuZXhwCTIwMTMtMDgtMDIgMTY6Mjc6MjguODMzMjU5NDcxICswMjAw CgpkaWZmIC0tZ2l0IGEvZ2RiLWdkYi1hZGQtaW5kZXgtc2NyaXB0LnBhdGNoIGIvZ2RiLWdkYi1h ZGQtaW5kZXgtc2NyaXB0LnBhdGNoCmluZGV4IGQ2MzA3N2MuLmRhODg2NDIgMTAwNjQ0Ci0tLSBh L2dkYi1nZGItYWRkLWluZGV4LXNjcmlwdC5wYXRjaAorKysgYi9nZGItZ2RiLWFkZC1pbmRleC1z Y3JpcHQucGF0Y2gKQEAgLTQwLDEyICs0MCwxMiBAQCBTdWJqZWN0OiBbUEFUQ0ggNC80XSBhZGQg Z2RiLWFkZC1pbmRleAogIDUgZmlsZXMgY2hhbmdlZCwgNTcgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbnMoLSkKICBjcmVhdGUgbW9kZSAxMDA3NTUgZ2RiL2dkYi1hZGQtaW5kZXgKIAotSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9NYWtlZmlsZS5pbgorSW5kZXg6IGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL01ha2VmaWxlLmluCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMub3JpZy9nZGIvTWFrZWZpbGUuaW4JMjAxMy0wOC0wMiAxNjozMTo1OS42MDM2 NzQxOTQgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvTWFrZWZpbGUuaW4J MjAxMy0wOC0wMiAxNjozMjowOC4yNjA2OTAxNTYgKzAyMDAKLUBAIC0xMDcwLDYgKzEwNzAsMTUg QEAgaW5zdGFsbC1vbmx5OiBpbnN0YWxsLWdzdGFjayAkKENPTkZJR19JTgotIAkJICAkKElOU1RB TExfUFJPR1JBTSkgZ2NvcmUgXAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvTWFr ZWZpbGUuaW4JMjAxNC0wMi0wNiAxNzozNzo1NC41NTU5NzU5NTggKzAxMDAKKysrKyBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi9NYWtlZmlsZS5pbgkyMDE0LTAyLTA2IDE3OjM4OjUyLjExMDAzODQx NSArMDEwMAorQEAgLTEwOTMsNiArMTA5MywxNSBAQCBpbnN0YWxsLW9ubHk6IGluc3RhbGwtZ3N0 YWNrICQoQ09ORklHX0lOCisgCQkgICQoSU5TVEFMTF9TQ1JJUFQpIGdjb3JlIFwKICAJCQkgICQo REVTVERJUikkKGJpbmRpcikvJCR0cmFuc2Zvcm1lZF9uYW1lOyBcCiAgCWZpCiArCXRyYW5zZm9y bWVkX25hbWU9YHQ9JyQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSknOyBcCkBAIC01NSwxNiArNTUs MTYgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9NYWtlZmlsZS5pbgogKwkJ ZWxzZSBcCiArCQkgIHRydWUgOyBcCiArCQlmaSA7IFwKLSsJCSQoSU5TVEFMTF9QUk9HUkFNKSAk KHNyY2RpcikvZ2RiLWFkZC1pbmRleCBcCisrCQkkKElOU1RBTExfUFJPR1JBTSkgJChzcmNkaXIp L2NvbnRyaWIvZ2RiLWFkZC1pbmRleC5zaCBcCiArCQkJJChERVNURElSKSQoYmluZGlyKS8kJHRy YW5zZm9ybWVkX25hbWUkKEVYRUVYVCkKICAJQCQoTUFLRSkgRE89aW5zdGFsbCAiRE9ESVJTPSQo U1VCRElSUykiICQoRkxBR1NfVE9fUEFTUykgc3ViZGlyX2RvCiAgCi0gaW5zdGFsbC1weXRob246 Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2RvYy9nZGIudGV4aW5mbworIGlu c3RhbGwtc3RyaXA6CitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZG9jL2dkYi50ZXhp bmZvCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvZG9j L2dkYi50ZXhpbmZvCTIwMTMtMDgtMDIgMTY6MzE6NTkuNjE2Njc0MjE4ICswMjAwCi0rKysgZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDEzLTA4LTAyIDE2OjMy OjA4LjI3MTY5MDE3NiArMDIwMAotQEAgLTE3NDQ3LDYgKzE3NDQ3LDE0IEBAIFRoZXJlIGFyZSBj dXJyZW50bHkgc29tZSBsaW1pdGF0aW9uIG9uIGkKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9y aWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE0LTAyLTA2IDE3OjM3OjUwLjgyMjk3MTk0MCArMDEw MAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE0LTAyLTA2 IDE3OjM3OjU0LjU2NTk3NTk2OCArMDEwMAorQEAgLTE3NzQ5LDYgKzE3NzQ5LDE0IEBAIFRoZXJl IGFyZSBjdXJyZW50bHkgc29tZSBsaW1pdGF0aW9uIG9uIGkKICBmb3IgRFdBUkYgZGVidWdnaW5n IGluZm9ybWF0aW9uLCBub3Qgc3RhYnMuICBBbmQsIHRoZXkgZG8gbm90CiAgY3VycmVudGx5IHdv cmsgZm9yIHByb2dyYW1zIHVzaW5nIEFkYS4KICAKQEAgLTc5LDcgKzc5LDcgQEAgSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kb2MvZ2RiLnRleGluZm8KICBAbm9kZSBTeW1ib2wg RXJyb3JzCiAgQHNlY3Rpb24gRXJyb3JzIFJlYWRpbmcgU3ltYm9sIEZpbGVzCiAgCi1AQCAtNDMw NDQsNiArNDMwNTIsNyBAQCBzd2l0Y2ggKGRpZS0+dGFnKQorQEAgLTQzODc4LDYgKzQzODg2LDcg QEAgc3dpdGNoIChkaWUtPnRhZykKICAqIGdkYnNlcnZlciBtYW46OiAgICAgICAgICAgICAgIFJl bW90ZSBTZXJ2ZXIgZm9yIHRoZSBHTlUgRGVidWdnZXIgbWFuIHBhZ2UKICAqIGdjb3JlIG1hbjo6 ICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlIGEgY29yZSBmaWxlIG9mIGEgcnVubmluZyBwcm9n cmFtCiAgKiBnZGJpbml0IG1hbjo6ICAgICAgICAgICAgICAgICBnZGJpbml0IHNjcmlwdHMKQEAg LTg3LDcgKzg3LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kb2MvZ2Ri LnRleGluZm8KICBAZW5kIG1lbnUKICAKICBAbm9kZSBnZGIgbWFuCi1AQCAtNDM2OTYsNiArNDM3 MDUsNTQgQEAgZ2RiKDEpLCBAY29kZXtpbmZvIC1mIGdkYiAtbiBTdGFydHVwfQorQEAgLTQ0NTMw LDYgKzQ0NTM5LDU0IEBAIGdkYigxKSwgQGNvZGV7aW5mbyAtZiBnZGIgLW4gU3RhcnR1cH0KICBU aGUgZnVsbCBkb2N1bWVudGF0aW9uIGZvciBAdmFsdWV7R0RCTn0gaXMgbWFpbnRhaW5lZCBhcyBh IFRleGluZm8gbWFudWFsLgogIElmIHRoZSBAY29kZXtpbmZvfSBhbmQgQGNvZGV7Z2RifSBwcm9n cmFtcyBhbmQgQHZhbHVle0dEQk59J3MgVGV4aW5mbwogIGRvY3VtZW50YXRpb24gYXJlIHByb3Bl cmx5IGluc3RhbGxlZCBhdCB5b3VyIHNpdGUsIHRoZSBjb21tYW5kCkBAIC0xNDIsNDYgKzE0Miwx MSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2RvYy9nZGIudGV4aW5mbwog IAogIEBzbWFsbGV4YW1wbGUKICBpbmZvIGdkYgotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi9nZGItYWRkLWluZGV4CitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZG9j L01ha2VmaWxlLmluCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6 MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2dkYi1h ZGQtaW5kZXgJMjAxMy0wOC0wMiAxNjozMjowOC4yNzE2OTAxNzYgKzAyMDAKLUBAIC0wLDAgKzEs MzAgQEAKLSsjISAvYmluL3NoCi0rCi0rIyBBZGQgYSAuZ2RiX2luZGV4IHNlY3Rpb24gdG8gYSBm aWxlLgotKwotKyMgQ29weXJpZ2h0IChDKSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m Ci0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLStmaWxlPSIkMSIKLStkaXI9 IiR7ZmlsZSUvKn0iCi0rCi0rIyBXZSBkb24ndCBjYXJlIGlmIGdkYiBnaXZlcyBhbiBlcnJvci4K LStnZGIgLW54IC1pZXggJ3NldCBhdXRvLWxvYWQgbm8nIC0tYmF0Y2gtc2lsZW50IC1leCAiZmls ZSAkZmlsZSIgLWV4ICJzYXZlIGdkYi1pbmRleCAkZGlyIgotKwotK2lmIHRlc3QgLWYgIiR7Zmls ZX0uZ2RiLWluZGV4IjsgdGhlbgotKyAgIG9iamNvcHkgLS1hZGQtc2VjdGlvbiAuZ2RiX2luZGV4 PSIke2ZpbGV9LmdkYi1pbmRleCIgLS1zZXQtc2VjdGlvbi1mbGFncyAuZ2RiX2luZGV4PXJlYWRv bmx5ICIkZmlsZSIgIiRmaWxlIgotKyAgIHJtIC1mICIke2ZpbGV9LmdkYi1pbmRleCIKLStmaQot KwotK2V4aXQgMAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kb2MvTWFrZWZp bGUuaW4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9k b2MvTWFrZWZpbGUuaW4JMjAxMy0wOC0wMiAxNjozMTo1OS42MTg2NzQyMjIgKzAyMDAKLSsrKyBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZG9jL01ha2VmaWxlLmluCTIwMTMtMDgtMDIgMTY6 MzI6MjguODI4NzI3MzE0ICswMjAwCi1AQCAtMTc3LDcgKzE3Nyw3IEBAIFBPRDJNQU41ID0gcG9k Mm1hbiAtLWNlbnRlcj0iR05VIERldmVsb3AKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcv Z2RiL2RvYy9NYWtlZmlsZS5pbgkyMDE0LTAyLTA2IDE3OjM3OjUwLjgyNDk3MTk0MiArMDEwMAor KysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2RvYy9NYWtlZmlsZS5pbgkyMDE0LTAyLTA2IDE3 OjM3OjU0LjU2NTk3NTk2OCArMDEwMAorQEAgLTE2NSw3ICsxNjUsNyBAQCBQT0QyTUFONSA9IHBv ZDJtYW4gLS1jZW50ZXI9IkdOVSBEZXZlbG9wCiAgCQkgICAtLXJlbGVhc2U9ImdkYi1gc2VkIHEg dmVyc2lvbi5zdWJzdGAiIC0tc2VjdGlvbj01CiAgCiAgIyBMaXN0IG9mIG1hbiBwYWdlcyBnZW5l cmF0ZWQgZnJvbSBnZGIudGV4aQpAQCAtMTkwLDcgKzE1NSw3IEBAIEluZGV4OiBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvZG9jL01ha2VmaWxlLmluCiAgTUFONVMgPSBnZGJpbml0LjUKICBN QU5TID0gJChNQU4xUykgJChNQU41UykKICAKLUBAIC02MzAsNiArNjMwLDEzIEBAIGdjb3JlLjE6 ICQoR0RCX0RPQ19GSUxFUykKK0BAIC01OTAsNiArNTkwLDEzIEBAIGdjb3JlLjE6ICQoR0RCX0RP Q19GSUxFUykKICAJCW12IC1mICRALlQkJCQkICRAKSB8fCAocm0gLWYgJEAuVCQkJCQgJiYgZXhp dCAxKQogIAlybSAtZiBnY29yZS5wb2QKICAKCmRpZmYgLS1naXQgYS9nZGItZ2xpYmMtc3Ryc3Ry LXdvcmthcm91bmQucGF0Y2ggYi9nZGItZ2xpYmMtc3Ryc3RyLXdvcmthcm91bmQucGF0Y2gKaW5k ZXggZGM5MjQyZS4uYzYzODNkYiAxMDA2NDQKLS0tIGEvZ2RiLWdsaWJjLXN0cnN0ci13b3JrYXJv dW5kLnBhdGNoCisrKyBiL2dkYi1nbGliYy1zdHJzdHItd29ya2Fyb3VuZC5wYXRjaApAQCAtMSw4 ICsxLDggQEAKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZHdhcmYycmVhZC5j CitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZHdhcmYycmVhZC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTMt MDgtMDIgMTY6Mzc6NTEuNjE5MjQxNjk2ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL2R3YXJmMnJlYWQuYwkyMDEzLTA4LTAyIDE2OjM4OjE2LjE1OTI3NzQ2MSArMDIwMAot QEAgLTE2NjU0LDYgKzE2NjU0LDI1IEBAIG5ld19zeW1ib2xfZnVsbCAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHMKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwky MDE0LTAyLTA2IDE4OjE4OjA5LjY3NjU3MjI3MSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE0LTAyLTA2IDE4OjE4OjQyLjY2NDYwNzgyMyArMDEwMAor QEAgLTE3NjQ2LDYgKzE3NjQ2LDI1IEBAIG5ld19zeW1ib2xfZnVsbCAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHMKICAgICAgICAvKiBDYWNoZSB0aGlzIHN5bWJvbCdzIG5hbWUgYW5kIHRoZSBuYW1l J3MgZGVtYW5nbGVkIGZvcm0gKGlmIGFueSkuICAqLwogICAgICAgIFNZTUJPTF9TRVRfTEFOR1VB R0UgKHN5bSwgY3UtPmxhbmd1YWdlLCAmb2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrKTsKICAgICAg ICBsaW5rYWdlbmFtZSA9IGR3YXJmMl9waHlzbmFtZSAobmFtZSwgZGllLCBjdSk7CkBAIC0xMSw3 ICsxMSw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZHdhcmYycmVhZC5j CiArICAgICAgICogaW52YWxpZCBJRlVOQyBEV19BVF9saW5rYWdlX25hbWU6IG1lbW1vdmUgc3Ry c3RyIHRpbWUKICsgICAgICAgKiBodHRwOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19i dWcuY2dpP2lkPTE0MTY2ICAqLwogKyAgICAgIGlmIChzdHJjbXAgKGxpbmthZ2VuYW1lLCAic3Ry c3RyIikgPT0gMAotKwkgICYmIHN0cnN0ciAob2JqZmlsZS0+bmFtZSwgIi9saWJjIikgIT0gTlVM TCkKKysJICAmJiBzdHJzdHIgKG9iamZpbGVfbmFtZSAob2JqZmlsZSksICIvbGliYyIpICE9IE5V TEwpCiArCXsKICsJICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZV9tc3ltOwogKwkgIHN0cnVjdCBt aW5pbWFsX3N5bWJvbCAqbXN5bTsKQEAgLTI4LDEwICsyOCwxMCBAQCBJbmRleDogZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL2R3YXJmMnJlYWQuYwogICAgICAgIFNZTUJPTF9TRVRfTkFNRVMg KHN5bSwgbGlua2FnZW5hbWUsIHN0cmxlbiAobGlua2FnZW5hbWUpLCAwLCBvYmpmaWxlKTsKICAK ICAgICAgICAvKiBGb3J0cmFuIGRvZXMgbm90IGhhdmUgbWFuZ2xpbmcgc3RhbmRhcmQgYW5kIHRo ZSBtYW5nbGluZyBkb2VzIGRpZmZlcgotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvZ251LWlmdW5jLXN0cnN0ci13b3JrYXJvdW5kLmV4cAorSW5k ZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9nbnUtaWZ1bmMt c3Ryc3RyLXdvcmthcm91bmQuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9nbnUtaWZ1bmMtc3Ryc3RyLXdvcmthcm91bmQuZXhwCTIw MTMtMDgtMDIgMTY6Mzc6NTEuNjIwMjQxNjk3ICswMjAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2dudS1pZnVuYy1zdHJzdHItd29ya2Fyb3VuZC5leHAJ MjAxNC0wMi0wNiAxODoxODoxNi4yOTQ1NzkzODEgKzAxMDAKIEBAIC0wLDAgKzEsMTA4IEBACiAr IyBDb3B5cmlnaHQgKEMpIDIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCgpk aWZmIC0tZ2l0IGEvZ2RiLWltcGxpY2l0LXRoaXMucGF0Y2ggYi9nZGItaW1wbGljaXQtdGhpcy5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGNlNzJkZC4uMDAwMDAwMAotLS0g YS9nZGItaW1wbGljaXQtdGhpcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI5OSArMCwwIEBA Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2MtZXhwLnkKLT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9jLWV4cC55CTIwMTMtMTEtMDkg MTg6NDE6NDguNzA2NzE4MTI3ICswMTAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L2MtZXhwLnkJMjAxMy0xMS0wOSAxODo0MjoxOS4yOTE2OTc2NjEgKzAxMDAKLUBAIC0yOTQ0LDYg KzI5NDQsMzAgQEAgY2xhc3NpZnlfaW5uZXJfbmFtZSAoY29uc3Qgc3RydWN0IGJsb2NrCi0gICAg IHsKLSAgICAgY2FzZSBMT0NfQkxPQ0s6Ci0gICAgIGNhc2UgTE9DX0xBQkVMOgotKyAgICAgIHsK LSsJc3RydWN0IGZpZWxkX29mX3RoaXNfcmVzdWx0IGZvdDsKLSsKLSsJLyogV2UgbWlnaHQgaGF2 ZSBlcnJvbmVvdXNseSBmb3VuZCBhIGNvbnN0cnVjdG9yIHdoZXJlIHdlIHdhbnRlZAotKwkgICBh IHR5cGUgbmFtZS4gIFRoZSB0cmljayBpcyBhc2NlcnRhaW5pbmcgd2hhdCB0aGUgdXNlciB3YW50 ZWQuCi0rCSAgIElmIGNwX2xvb2t1cF9uZXN0ZWRfc3ltYm9sIGZvdW5kIGEgY29uc3RydWN0b3Is IGJ1dCBpdCBpcyBmb3IgYQotKwkgICBkaWZmZXJlbnQgdHlwZSB0aGFuIENPTlRFWFQsIHRoZW4g dGhpcyBpcyByZWFsbHkgYSB0eXBlLCBub3QgYQotKwkgICBjb25zdHJ1Y3Rvci4gIExvb2sgZm9y IHRoZSB0eXBlIGFuZCByZXR1cm4gdGhhdC4gICovCi0rCW1lbXNldCAoJmZvdCwgMCwgc2l6ZW9m IChmb3QpKTsKLSsJY2hlY2tfZmllbGQgKHR5cGUsIGNvcHksICZmb3QpOwotKwlpZiAoZm90LmZu X2ZpZWxkICE9IE5VTEwKLSsJICAgICYmIFRZUEVfRk5fRklFTERfQ09OU1RSVUNUT1IgKGZvdC5m bl9maWVsZC0+Zm5fZmllbGRzLCAwKQotKwkgICAgJiYgIXR5cGVzX2VxdWFsICh0eXBlLCBmb3Qu dHlwZSkpCi0rCSAgewotKwkgICAgc3RydWN0IHN5bWJvbCAqc3ltOwotKwotKwkgICAgc3ltID0g bG9va3VwX3N5bWJvbCAoY29weSwgYmxvY2ssIFNUUlVDVF9ET01BSU4sIE5VTEwpOwotKwkgICAg aWYgKHN5bSAhPSBOVUxMKQotKwkgICAgICB7Ci0rCQl5eWx2YWwudHN5bS50eXBlID0gU1lNQk9M X1RZUEUgKHN5bSk7Ci0rCQlyZXR1cm4gVFlQRU5BTUU7Ci0rCSAgICAgIH0KLSsJICB9Ci0rICAg ICAgfQotICAgICAgIHJldHVybiBFUlJPUjsKLSAKLSAgICAgY2FzZSBMT0NfVFlQRURFRjoKLUlu ZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvc3ltdGFiLmMKLT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9zeW10YWIuYwkyMDEzLTExLTA5IDE4 OjQxOjQ4LjcwODcxODEyNSArMDEwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9z eW10YWIuYwkyMDEzLTExLTA5IDE4OjQyOjE5LjI5MzY5NzY2MCArMDEwMAotQEAgLTEyOTMsNyAr MTI5Myw3IEBAIGxvb2t1cF9sYW5ndWFnZV90aGlzIChjb25zdCBzdHJ1Y3QgbGFuZ3UKLSAgICBy ZXR1cm4gMSBpZiB0aGUgY29tcG9uZW50IG5hbWVkIE5BTUUgZnJvbSB0aGUgdWx0aW1hdGUgdGFy Z2V0Ci0gICAgc3RydWN0dXJlL3VuaW9uIGlzIGRlZmluZWQsIG90aGVyd2lzZSwgcmV0dXJuIDAu ICAqLwotIAotLXN0YXRpYyBpbnQKLStpbnQKLSBjaGVja19maWVsZCAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGNoYXIgKm5hbWUsCi0gCSAgICAgc3RydWN0IGZpZWxkX29mX3RoaXNfcmVzdWx0 ICppc19hX2ZpZWxkX29mX3RoaXMpCi0gewotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi9zeW10YWIuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9y aWcvZ2RiL3N5bXRhYi5oCTIwMTMtMTEtMDkgMTg6NDI6MTkuMjkzNjk3NjYwICswMTAwCi0rKysg Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3N5bXRhYi5oCTIwMTMtMTEtMDkgMTg6NDI6MzQu MDIzNjg3ODcyICswMTAwCi1AQCAtMTM3Nyw0ICsxMzc3LDkgQEAgdm9pZCBpbml0aWFsaXplX3N5 bWJvbCAoc3RydWN0IHN5bWJvbCAqKQotIAotIHN0cnVjdCB0ZW1wbGF0ZV9zeW1ib2wgKmFsbG9j YXRlX3RlbXBsYXRlX3N5bWJvbCAoc3RydWN0IG9iamZpbGUgKik7Ci0gCi0rLyogU2VlIGNvbW1l bnQgaW4gc3ltdGFiLmMuICAqLwotKwotK2ludCBjaGVja19maWVsZCAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGNoYXIgKm5hbWUsCi0rCQkgc3RydWN0IGZpZWxkX29mX3RoaXNfcmVzdWx0ICpp c19hX2ZpZWxkX29mX3RoaXMpOwotKwotICNlbmRpZiAvKiAhZGVmaW5lZChTWU1UQUJfSCkgKi8K LUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsb3BzLmMKLT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi92YWxvcHMuYwkyMDEzLTExLTA5 IDE4OjQxOjQ4LjcxMjcxODEyMyArMDEwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi92YWxvcHMuYwkyMDEzLTExLTA5IDE4OjQyOjE5LjI5NDY5NzY1OSArMDEwMAotQEAgLTMyMjYs MTAgKzMyMjYsMzUgQEAgdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVmZXJlbmNlIChzdHJ1Y3QgdAot IAkgICAgcmV0dXJuIHZhbHVlX2Zyb21fbG9uZ2VzdAotIAkgICAgICAobG9va3VwX21lbWJlcnB0 cl90eXBlIChUWVBFX0ZJRUxEX1RZUEUgKHQsIGkpLCBkb21haW4pLAotIAkgICAgICAgb2Zmc2V0 ICsgKFRZUEVfRklFTERfQklUUE9TICh0LCBpKSA+PiAzKSk7Ci0tCSAgZWxzZSBpZiAobm9zaWRl ID09IEVWQUxfQVZPSURfU0lERV9FRkZFQ1RTKQotKwkgIGVsc2UgaWYgKG5vc2lkZSAhPSBFVkFM X05PUk1BTCkKLSAJICAgIHJldHVybiBhbGxvY2F0ZV92YWx1ZSAoVFlQRV9GSUVMRF9UWVBFICh0 LCBpKSk7Ci0gCSAgZWxzZQotLQkgICAgZXJyb3IgKF8oIkNhbm5vdCByZWZlcmVuY2Ugbm9uLXN0 YXRpYyBmaWVsZCBcIiVzXCIiKSwgbmFtZSk7Ci0rCSAgICB7Ci0rCSAgICAgIC8qIFRyeSB0byBl dmFsdWF0ZSBOQU1FIGFzIGEgcXVhbGlmaWVkIG5hbWUgd2l0aCBpbXBsaWNpdAotKwkJIHRoaXMg cG9pbnRlci4gIEluIHRoaXMgY2FzZSwgYXR0ZW1wdCB0byByZXR1cm4gdGhlCi0rCQkgZXF1aXZh bGVudCB0byBgdGhpcy0+KigmVFlQRTo6TkFNRSknLiAgKi8KLSsJICAgICAgdiA9IHZhbHVlX29m X3RoaXNfc2lsZW50IChjdXJyZW50X2xhbmd1YWdlKTsKLSsJICAgICAgaWYgKHYgIT0gTlVMTCkK LSsJCXsKLSsJCSAgc3RydWN0IHZhbHVlICpwdHI7Ci0rCQkgIGxvbmcgbWVtX29mZnNldDsKLSsJ CSAgc3RydWN0IHR5cGUgKnR5cGUsICp0bXA7Ci0rCi0rCQkgIHB0ciA9IHZhbHVlX2FnZ3JlZ2F0 ZV9lbHQgKGRvbWFpbiwgbmFtZSwgTlVMTCwgMSwgbm9zaWRlKTsKLSsJCSAgdHlwZSA9IGNoZWNr X3R5cGVkZWYgKHZhbHVlX3R5cGUgKHB0cikpOwotKwkJICBnZGJfYXNzZXJ0ICh0eXBlICE9IE5V TEwKLSsJCQkgICAgICAmJiBUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9NRU1CRVJQVFIp OwotKwkJICB0bXAgPSBsb29rdXBfcG9pbnRlcl90eXBlIChUWVBFX0RPTUFJTl9UWVBFICh0eXBl KSk7Ci0rCQkgIHYgPSB2YWx1ZV9jYXN0X3BvaW50ZXJzICh0bXAsIHYsIDEpOwotKwkJICBtZW1f b2Zmc2V0ID0gdmFsdWVfYXNfbG9uZyAocHRyKTsKLSsJCSAgdG1wID0gbG9va3VwX3BvaW50ZXJf dHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpOwotKwkJICByZXN1bHQgPSB2YWx1ZV9mcm9t X3BvaW50ZXIgKHRtcCwKLSsJCQkJCSAgICAgICB2YWx1ZV9hc19sb25nICh2KSArIG1lbV9vZmZz ZXQpOwotKwkJICByZXR1cm4gdmFsdWVfaW5kIChyZXN1bHQpOwotKwkJfQotKwotKwkgICAgICBl cnJvciAoXygiQ2Fubm90IHJlZmVyZW5jZSBub24tc3RhdGljIGZpZWxkIFwiJXNcIiIpLCBuYW1l KTsKLSsJICAgIH0KLSAJfQotICAgICB9Ci0gCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvaW1wbC10aGlzLmNjCi09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvaW1wbC10aGlzLmNjCTIwMTMtMTEt MDkgMTg6NDI6MTkuMjk0Njk3NjU5ICswMTAwCi1AQCAtMCwwICsxLDk2IEBACi0rLyogVGhpcyB0 ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KLSsKLSsgICBDb3B5cmln aHQgMjAxMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsgICBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eQotKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5Ci0rICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAg IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKLSsgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCi0rCi0rI2lmZGVmIERFQlVHCi0rI2luY2x1ZGUg PHN0ZGlvLmg+Ci0rI2VuZGlmCi0rCi0rY2xhc3MgQQotK3sKLStwdWJsaWM6Ci0rICBpbnQgaTsK LSsgIGludCB6OwotKyAgQSAoKSA6IGkgKDEpLCB6ICgxMCkge30KLSt9OwotKwotK2NsYXNzIEIg OiBwdWJsaWMgdmlydHVhbCBBCi0rewotK3B1YmxpYzoKLSsgIGludCBpOwotKyAgQiAoKSA6IGkg KDIpIHt9Ci0rfTsKLSsKLStjbGFzcyBDIDogcHVibGljIHZpcnR1YWwgQQotK3sKLStwdWJsaWM6 Ci0rICBpbnQgaTsKLSsgIGludCBjOwotKyAgQyAoKSA6IGkgKDMpLCBjICgzMCkge30KLSt9Owot KwotK2NsYXNzIEQgOiBwdWJsaWMgQiwgcHVibGljIEMKLSt7Ci0rcHVibGljOgotKyAgaW50IGk7 Ci0rICBpbnQgeDsKLSsgIEQgKCkgOiBpICg0KSwgeCAoNDApIHt9Ci0rCi0rI2lmZGVmIERFQlVH Ci0rI2RlZmluZSBTVU0oWCkJCQkJCVwKLSsgIGRvCQkJCQkJXAotKyAgICB7CQkJCQkJXAotKyAg ICAgIHN1bSArPSAoWCk7CQkJCVwKLSsgICAgICBwcmludGYgKCIiICNYICIgPSAlZFxuIiwgKFgp KTsJCVwKLSsgICAgfQkJCQkJCVwKLSsgIHdoaWxlICgwKQotKyNlbHNlCi0rI2RlZmluZSBTVU0o WCkgc3VtICs9IChYKQotKyNlbmRpZgotKwotK2ludAotK2YgKHZvaWQpCi0rICB7Ci0rICAgIGlu dCBzdW0gPSAwOwotKwotKyAgICBTVU0gKGkpOwotKyAgICBTVU0gKEQ6OmkpOwotKyAgICBTVU0g KEQ6OkI6OmkpOwotKyAgICBTVU0gKEI6OmkpOwotKyAgICBTVU0gKEQ6OkM6OmkpOwotKyAgICBT VU0gKEM6OmkpOwotKyAgICBTVU0gKEQ6OkI6OkE6OmkpOwotKyAgICBTVU0gKEI6OkE6OmkpOwot KyAgICBTVU0gKEE6OmkpOwotKyAgICBTVU0gKEQ6OkM6OkE6OmkpOwotKyAgICBTVU0gKEM6OkE6 OmkpOwotKyAgICBTVU0gKEQ6OngpOwotKyAgICBTVU0gKHgpOwotKyAgICBTVU0gKEQ6OkM6OmMp OwotKyAgICBTVU0gKEM6OmMpOwotKyAgICBTVU0gKGMpOwotKwotKyAgICByZXR1cm4gc3VtOwot KyAgfQotK307Ci0rCi0raW50Ci0rbWFpbiAodm9pZCkKLSt7Ci0rICBEIGQ7Ci0rCi0rICByZXR1 cm4gZC5mICgpOwotK30KLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1 aXRlL2dkYi5jcC9pbXBsLXRoaXMuZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAt MDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvaW1wbC10aGlzLmV4cAkyMDEzLTExLTA5IDE4OjQyOjE5 LjI5NTY5NzY1OSArMDEwMAotQEAgLTAsMCArMSw4OSBAQAotKyMgQ29weXJpZ2h0IDIwMTMgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LgotKwotKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGdkYiB0ZXN0c3VpdGUKLSsKLSsj IFRlc3QgZXhwcmVzc2lvbnMgd2hpY2ggYXNzdW1lIGFuIGltcGxpY2l0ICJ0aGlzIiB3aXRoIGEg cXVhbGlmaWVkCi0rIyBuYW1lLgotKwotK2lmIHtbc2tpcF9jcGx1c190ZXN0c119IHsgY29udGlu dWUgfQotKwotK3N0YW5kYXJkX3Rlc3RmaWxlIC5jYwotKwotK2lmIHtbcHJlcGFyZV9mb3JfdGVz dGluZyAkdGVzdGZpbGUuZXhwICR0ZXN0ZmlsZSAkc3JjZmlsZSB7ZGVidWcgYysrfV19IHsKLSsg ICAgcmV0dXJuIC0xCi0rfQotKwotKyMgRmlyc3QgdGVzdCBleHByZXNzaW9ucyB3aGVuIHRoZXJl IGlzIG5vIGNvbnRleHQuCi0rZ2RiX3Rlc3QgInByaW50IGkiICJObyBzeW1ib2wgXCJpXCIgaW4g Y3VycmVudCBjb250ZXh0LiIKLStnZGJfdGVzdCAicHJpbnQgRDo6aSIgIkNhbm5vdCByZWZlcmVu Y2Ugbm9uLXN0YXRpYyBmaWVsZCBcImlcIiIKLStnZGJfdGVzdCAicHJpbnQgRDo6Qjo6aSIgIkNh bm5vdCByZWZlcmVuY2Ugbm9uLXN0YXRpYyBmaWVsZCBcImlcIiIKLStnZGJfdGVzdCAicHJpbnQg Qjo6aSIgIkNhbm5vdCByZWZlcmVuY2Ugbm9uLXN0YXRpYyBmaWVsZCBcImlcIiIKLStnZGJfdGVz dCAicHJpbnQgRDo6Qzo6aSIgIkNhbm5vdCByZWZlcmVuY2Ugbm9uLXN0YXRpYyBmaWVsZCBcImlc IiIKLStnZGJfdGVzdCAicHJpbnQgQzo6aSIgIkNhbm5vdCByZWZlcmVuY2Ugbm9uLXN0YXRpYyBm aWVsZCBcImlcIiIKLStnZGJfdGVzdCAicHJpbnQgRDo6Qjo6QTo6aSIgIkNhbm5vdCByZWZlcmVu Y2Ugbm9uLXN0YXRpYyBmaWVsZCBcImlcIiIKLStnZGJfdGVzdCAicHJpbnQgQjo6QTo6aSIgIkNh bm5vdCByZWZlcmVuY2Ugbm9uLXN0YXRpYyBmaWVsZCBcImlcIiIKLStnZGJfdGVzdCAicHJpbnQg QTo6aSIgIkNhbm5vdCByZWZlcmVuY2Ugbm9uLXN0YXRpYyBmaWVsZCBcImlcIiIKLStnZGJfdGVz dCAicHJpbnQgRDo6Qzo6QTo6aSIgIkNhbm5vdCByZWZlcmVuY2Ugbm9uLXN0YXRpYyBmaWVsZCBc ImlcIiIKLStnZGJfdGVzdCAicHJpbnQgQzo6QTo6aSIgIkNhbm5vdCByZWZlcmVuY2Ugbm9uLXN0 YXRpYyBmaWVsZCBcImlcIiIKLStnZGJfdGVzdCAicHJpbnQgRDo6eCIgIkNhbm5vdCByZWZlcmVu Y2Ugbm9uLXN0YXRpYyBmaWVsZCBcInhcIiIKLStnZGJfdGVzdCAicHJpbnQgeCIgIk5vIHN5bWJv bCBcInhcIiBpbiBjdXJyZW50IGNvbnRleHQuIgotK2dkYl90ZXN0ICJwcmludCBEOjpDOjpjIiAi Q2Fubm90IHJlZmVyZW5jZSBub24tc3RhdGljIGZpZWxkIFwiY1wiIgotK2dkYl90ZXN0ICJwcmlu dCBDOjpjIiAiQ2Fubm90IHJlZmVyZW5jZSBub24tc3RhdGljIGZpZWxkIFwiY1wiIgotK2dkYl90 ZXN0ICJwcmludCBjIiAiTm8gc3ltYm9sIFwiY1wiIGluIGN1cnJlbnQgY29udGV4dC4iCi0rCi0r IyBSdW4gdG8gRDo6Zi4KLStpZiB7IVtydW50b19tYWluXX0gewotKyAgICBwZXJyb3IgImNvdWxk bid0IHJ1biB0byBtYWluIgotKyAgICBjb250aW51ZQotK30KLSsKLStnZGJfYnJlYWtwb2ludCAi RDo6ZiIKLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAicnVuIHRvIEQ6OmYiCi0rCi0rIyBO b3cgdGVzdCB2YWxpZCBleHByZXNzaW9ucyBpbiB0aGUgY2xhc3MgaGllcmFyY2h5IGZvciBELgot K2dkYl90ZXN0ICJwcmludCBpIiAiPSA0IgotK2dkYl90ZXN0ICJwcmludCBEOjppIiAiPSA0Igot K2dkYl90ZXN0ICJwcmludCBEOjpCOjppIiAiPSAyIgotK2dkYl90ZXN0ICJwcmludCBCOjppIiAi PSAyIgotK2dkYl90ZXN0ICJwcmludCBEOjpDOjppIiAiPSAzIgotK2dkYl90ZXN0ICJwcmludCBD OjppIiAiPSAzIgotK2dkYl90ZXN0ICJwcmludCBEOjpCOjpBOjppIiAiPSAxIgotK2dkYl90ZXN0 ICJwcmludCBCOjpBOjppIiAiPSAxIgotK2dkYl90ZXN0ICJwcmludCBBOjppIiAiPSAxIgotK2dk Yl90ZXN0ICJwcmludCBEOjpDOjpBOjppIiAiPSAxIgotK2dkYl90ZXN0ICJwcmludCBDOjpBOjpp IiAiPSAxIgotK2dkYl90ZXN0ICJwcmludCBEOjp4IiAiPSA0MCIKLStnZGJfdGVzdCAicHJpbnQg eCIgIj0gNDAiCi0rZ2RiX3Rlc3QgInByaW50IEQ6OkM6OmMiICI9IDMwIgotK2dkYl90ZXN0ICJw cmludCBDOjpjIiAiPSAzMCIKLStnZGJfdGVzdCAicHJpbnQgYyIgIj0gMzAiCi0rCi0rIyBUZXN0 IHNvbWUgaW52YWxpZCBleHByZXNzaW9ucwotK2dkYl90ZXN0ICJwcmludCBEOjpCOjpjIiAiVGhl cmUgaXMgbm8gZmllbGQgbmFtZWQgYyIKLStnZGJfdGVzdCAicHJpbnQgRDo6Qjo6QTo6YyIgIlRo ZXJlIGlzIG5vIGZpZWxkIG5hbWVkIGMiCi0rZ2RiX3Rlc3QgInByaW50IEQ6OkM6OkE6OmMiICJU aGVyZSBpcyBubyBmaWVsZCBuYW1lZCBjIgotK2dkYl90ZXN0ICJwcmludCBCOjpjIiAiVGhlcmUg aXMgbm8gZmllbGQgbmFtZWQgYyIKLStnZGJfdGVzdCAicHJpbnQgQjo6QTo6YyIgIlRoZXJlIGlz IG5vIGZpZWxkIG5hbWVkIGMiCi0rZ2RiX3Rlc3QgInByaW50IEM6OkE6OmMiICJUaGVyZSBpcyBu byBmaWVsZCBuYW1lZCBjIgotK2dkYl90ZXN0ICJwcmludCBEOjpCOjp4IiAiVGhlcmUgaXMgbm8g ZmllbGQgbmFtZWQgeCIKLStnZGJfdGVzdCAicHJpbnQgRDo6Qjo6QTo6eCIgIlRoZXJlIGlzIG5v IGZpZWxkIG5hbWVkIHgiCi0rZ2RiX3Rlc3QgInByaW50IEI6OngiICJUaGVyZSBpcyBubyBmaWVs ZCBuYW1lZCB4IgotK2dkYl90ZXN0ICJwcmludCBCOjpBOjp4IiAiVGhlcmUgaXMgbm8gZmllbGQg bmFtZWQgeCIKLStnZGJfdGVzdCAicHJpbnQgRDo6Qzo6eCIgIlRoZXJlIGlzIG5vIGZpZWxkIG5h bWVkIHgiCi0rZ2RiX3Rlc3QgInByaW50IEM6OngiICJUaGVyZSBpcyBubyBmaWVsZCBuYW1lZCB4 IgotK2dkYl90ZXN0ICJwcmludCBEOjpDOjpBOjp4IiAiVGhlcmUgaXMgbm8gZmllbGQgbmFtZWQg eCIKLStnZGJfdGVzdCAicHJpbnQgQzo6QTo6eCIgIlRoZXJlIGlzIG5vIGZpZWxkIG5hbWVkIHgi Ci0rCgpkaWZmIC0tZ2l0IGEvZ2RiLXB5dGhvbi1zdGFja3NtYXNoLnBhdGNoIGIvZ2RiLXB5dGhv bi1zdGFja3NtYXNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMz NmU2NWYKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcHl0aG9uLXN0YWNrc21hc2gucGF0Y2gKQEAg LTAsMCArMSw2NSBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTQt MDIvbXNnMDAyMTYuaHRtbAorU3ViamVjdDogW3BhdGNoXSBbcHl0aG9uXSBSZTogR0RCIGNyYXNo aW5nIG9uIGdkYi5weXRob24vcHktbGluZXRhYmxlLmV4cAorCisKKy0tN0FVYzJxTHk0akIzaEQ3 WgorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCitDb250ZW50LURp c3Bvc2l0aW9uOiBpbmxpbmUKKworT24gRnJpLCAwNyBGZWIgMjAxNCAxMTo0NTowNCArMDEwMCwg UGhpbCBNdWxkb29uIHdyb3RlOgorPiBJJ3ZlIHRyaWVkIG1vc3Qgb2YgdGhlIG1vcm5pbmcgdG8g cmVwcm9kdWNlIHRoaXMgb24gRmVkb3JhIDE5LCB3aXRoCis+IC1sbWNoZWNrIGFuZCBhZnRlciBz ZXZlcmFsIHRob3VzYW5kIHRlc3QgcnVucyBJIGNhbid0IHJlcHJvZHVjZS4KKworRHVlIHRvIHRo ZSByZXF1aXJlbWVudCBvZiBzcGVjaWZpYyBzdGFjayBsYXlvdXQgSSBmb3VuZCBpdCBpcyByZXBy b2R1Y2libGUgZm9yCittZSBvbiBGZWRvcmEgMjAgeDg2XzY0IHdpdGggKGl0IHN1cmUgY291bGQg YmUgcmVkdWNlZCk6CisKK0NGTEFHUz0iLU8yIC1nIC1waXBlIC1XYWxsIC1XcCwtRF9GT1JUSUZZ X1NPVVJDRT0yIC1mZXhjZXB0aW9ucyAtZnN0YWNrLXByb3RlY3Rvci1zdHJvbmcgLS1wYXJhbT1z c3AtYnVmZmVyLXNpemU9NCAtZ3JlY29yZC1nY2Mtc3dpdGNoZXMgIC1tNjQgLW10dW5lPWdlbmVy aWMiIExERkxBR1M9Ii1zdGF0aWMtbGlic3RkYysrIC1zdGF0aWMtbGliZ2NjIC1XbCwteixyZWxy byIgLi9jb25maWd1cmUgLS13aXRoLXN5c3RlbS1yZWFkbGluZTttYWtlCisodWxpbWl0IC1jIHVu bGltaXRlZDsvdXNyL2Jpbi9ydW50ZXN0IGdkYi5weXRob24vcHktbGluZXRhYmxlLmV4cCkKKwor VGhlIGZpeCBpcyBvYnZpb3VzLCBJIHdpbGwgY2hlY2sgaXQgaW4uCisKKy0gIGludCBweV9saW5l OworKyAgZ2RiX3B5X2xvbmdlc3QgcHlfbGluZTsKK1suLi5dCisKKworCitSZWdhcmRzLAorSmFu CisKKy0tN0FVYzJxTHk0akIzaEQ3WgorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0 PXVzLWFzY2lpCitDb250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPTEKKworZ2Ri LworMjAxNC0wMi0wNyAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29t PgorCisJRml4IFB5dGhvbiBzdGFjayBjb3JydXB0aW9uLgorCSogcHl0aG9uL3B5LWxpbmV0YWJs ZS5jIChsdHB5X2dldF9wY3NfZm9yX2xpbmUsIGx0cHlfaGFzX2xpbmUpOiBVc2UKKwlnZGJfcHlf bG9uZ2VzdC4KKworZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktbGluZXRhYmxlLmMgYi9nZGIv cHl0aG9uL3B5LWxpbmV0YWJsZS5jCitpbmRleCBlODNkNDZkLi44YjUzNjJiIDEwMDY0NAorLS0t IGEvZ2RiL3B5dGhvbi9weS1saW5ldGFibGUuYworKysrIGIvZ2RiL3B5dGhvbi9weS1saW5ldGFi bGUuYworQEAgLTE2OCw3ICsxNjgsNyBAQCBzdGF0aWMgUHlPYmplY3QgKgorIGx0cHlfZ2V0X3Bj c19mb3JfbGluZSAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQorIHsKKyAgIHN0cnVj dCBzeW10YWIgKnN5bXRhYjsKKy0gIGludCBweV9saW5lOworKyAgZ2RiX3B5X2xvbmdlc3QgcHlf bGluZTsKKyAgIHN0cnVjdCBsaW5ldGFibGVfZW50cnkgKmJlc3RfZW50cnkgPSBOVUxMOworICAg bGluZXRhYmxlX2VudHJ5X29iamVjdCAqcmVzdWx0OworICAgVkVDIChDT1JFX0FERFIpICpwY3Mg PSBOVUxMOworQEAgLTIwMCw3ICsyMDAsNyBAQCBzdGF0aWMgUHlPYmplY3QgKgorIGx0cHlfaGFz X2xpbmUgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKKyB7CisgICBzdHJ1Y3Qgc3lt dGFiICpzeW10YWI7CistICBpbnQgcHlfbGluZTsKKysgIGdkYl9weV9sb25nZXN0IHB5X2xpbmU7 CisgICBpbnQgaW5kZXg7CisgCisgICBMVFBZX1JFUVVJUkVfVkFMSUQgKHNlbGYsIHN5bXRhYik7 CisKKy0tN0FVYzJxTHk0akIzaEQ3Wi0tCisKCmRpZmYgLS1naXQgYS9nZGItcmhiejEwMTM0NTMt dmFsdWUtc3RydWN0LWVsdC1tZW1vcnktbGVhay5wYXRjaCBiL2dkYi1yaGJ6MTAxMzQ1My12YWx1 ZS1zdHJ1Y3QtZWx0LW1lbW9yeS1sZWFrLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCBhMWFmMGVhLi4wMDAwMDAwCi0tLSBhL2dkYi1yaGJ6MTAxMzQ1My12YWx1ZS1zdHJ1Y3Qt ZWx0LW1lbW9yeS1sZWFrLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTM2ICswLDAgQEAKLWh0 dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMy0wNy9tc2cwMDQ2OS5odG1s Ci0KLUhpLgotVGhpcyBwYXRjaCBhZGRzIHRoZSBtaXNzaW5nIGNhbGxzIHRvIGNoZWNrX3R5cGVk ZWYKLWFuZCBhZGRzIGEgdGVzdGNhc2UgdG8gc2hvdyB0aGUgaXNzdWUuCi0KLVRoZSBQUiBpcyBu b3QgY2xvc2VhYmxlIHlldCwgYnV0IHRoZSByZW1haW5pbmcgaXNzdWVzIGFyZSBtb3JlIGNsZWFu dXBzCi10aGFuIGFjdHVhbCBidWcgZml4ZXMuCi0KLVJlZ3Jlc3Npb24gdGVzdGVkIG9uIGFtZDY0 LWxpbnV4LgotCi1JIHdpbGwgY2hlY2sgdGhpcyBpbiBpbiBhIGZldyBkYXlzIGlmIHRoZXJlIGFy ZSBubyBvYmplY3Rpb25zLgotCi1bVGhlIG11bHRpcGxlIGNhbGxzIHRvIGNoZWNrX3R5cGVkZWYg KHZhbHVlX3R5cGUgKCphcmdwKSkgYXJlCi1ib3RoZXJzb21lLCBidXQgdGhlIGNvZGUgaXMgc2lt cGxlciB0aGlzIHdheSwgYW5kIEkgZXhwZWN0Ci1yZXNvbHZpbmcgdGhlIHJlc3Qgb2YgdGhlIGlz c3VlcyBpbiAxNTY5NSB0byBwb3RlbnRpYWxseSBjaGFuZ2UgdGhpcwotY29kZSBzaWduaWZpY2Fu dGx5Ll0KLQotLS0tCi0KLWNvbW1pdCBjYmIyNTE4OWI2OWU1MDFkZGNhNjQ5MTdkODEwYjU0YmIx NDY2YzkzCi1BdXRob3I6IERvdWcgRXZhbnMgPGRqZUBnb29nbGUuY29tPgotRGF0ZTogICBUaHUg QXVnIDEgMjM6NTk6NDcgMjAxMyArMDAwMAotCi0gICAgCVBSIHN5bXRhYi8xNTY5NQotICAgIAkq IHZhbG9wcy5jICh2YWx1ZV9zdHJ1Y3RfZWx0KTogQWRkIG1pc3NpbmcgY2FsbCB0byBjaGVja190 eXBlZGVmLgotICAgIAkodmFsdWVfZmluZF9vbG9hZF9tZXRob2RfbGlzdCk6IERpdHRvLgotICAg IAotICAgIAl0ZXN0c3VpdGUvCi0gICAgCSogZ2RiLmJhc2UvZnVuYy1wdHIuZXhwOiBOZXcgZmls ZS4KLSAgICAJKiBnZGIuYmFzZS9mdW5jLXB0ci5jOiBOZXcgZmlsZS4KLQotMjAxMy0wOC0wMSAg RG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgotIAotCVBSIHN5bXRhYi8xNTY5NQotCSogdmFs b3BzLmMgKHZhbHVlX3N0cnVjdF9lbHQpOiBBZGQgbWlzc2luZyBjYWxsIHRvIGNoZWNrX3R5cGVk ZWYuCi0JKHZhbHVlX2ZpbmRfb2xvYWRfbWV0aG9kX2xpc3QpOiBEaXR0by4KLQotMjAxMy0wOC0w MSAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgotCi0JUFIgc3ltdGFiLzE1Njk1Ci0JKiBn ZGIuYmFzZS9mdW5jLXB0ci5leHA6IE5ldyBmaWxlLgotCSogZ2RiLmJhc2UvZnVuYy1wdHIuYzog TmV3IGZpbGUuCi0KLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2Z1bmMtcHRyLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwKLSsrKyBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Z1bmMtcHRyLmMKLUBA IC0wLDAgKzEsMzAgQEAKLSsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05V IGRlYnVnZ2VyLgotKwotKyAgIENvcHlyaWdodCAyMDEzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv cgotKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws Ci0rICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKLSsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KLSsKLSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KLSsK LSt2b2lkCi0rYmFyICgpCi0rewotK30KLSsKLSt0eXBlZGVmIHZvaWQgZm9vICh2b2lkKTsKLStm b28gKnBiYXIgPSBiYXI7Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsgIHJldHVybiAwOwotK30K LUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Z1 bmMtcHRyLmV4cAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAotKysrIGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZnVuYy1wdHIuZXhwCi1AQCAtMCwwICsx LDMwIEBACi0rIyBDb3B5cmlnaHQgMjAxMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K LSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot KyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K LSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rIyBUaGlzIHRlc3RjYXNlIGV4 ZXJjaXNlcyBidWcgMTU2OTUuCi0rIyBUcnlpbmcgdG8gcHJpbnQgZm9vLT5iYXIgaWYgZm9vIGlz IGEgcG9pbnRlciB0byBhIHR5cGVkZWYgb2YgYSBwb2ludGVyCi0rIyB0byBhIGZ1bmN0aW9uIHdp bGwgcHV0IGdkYiBpbnRvIGFuIGluZmluaXRlIGxvb3AuCi0rCi0raWYgeyBbcHJlcGFyZV9mb3Jf dGVzdGluZyBmdW5jLXB0ci5leHAgImZ1bmMtcHRyIiB7ZnVuYy1wdHIuY30ge2RlYnVnfV0gfSB7 Ci0rICAgIHJldHVybiAtMQotK30KLSsKLStpZiAhW3J1bnRvX21haW5dIHsKLSsgICAgZmFpbCAi Q2FuJ3QgcnVuIHRvIG1haW4iCi0rICAgIHJldHVybiAwCi0rfQotKwotKyMgVGhpcyB3b3VsZCBw dXQgZ2RiIGludG8gYW4gaW5maW5pdGUgbG9vcC4KLStnZGJfdGVzdCAicHJpbnQgcGJhci0+YmF6 IiAiQXR0ZW1wdCB0byBleHRyYWN0IC4qIgotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi92YWxvcHMuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9y aWcvZ2RiL3ZhbG9wcy5jCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbG9wcy5j Ci1AQCAtMjI3NSw3ICsyMjc1LDcgQEAgdmFsdWVfc3RydWN0X2VsdCAoc3RydWN0IHZhbHVlICoq YXJncCwgcwotICAgICB7Ci0gICAgICAgKmFyZ3AgPSB2YWx1ZV9pbmQgKCphcmdwKTsKLSAgICAg ICAvKiBEb24ndCBjb2VyY2UgZm4gcG9pbnRlciB0byBmbiBhbmQgdGhlbiBiYWNrIGFnYWluISAg Ki8KLS0gICAgICBpZiAoVFlQRV9DT0RFICh2YWx1ZV90eXBlICgqYXJncCkpICE9IFRZUEVfQ09E RV9GVU5DKQotKyAgICAgIGlmIChUWVBFX0NPREUgKGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUg KCphcmdwKSkpICE9IFRZUEVfQ09ERV9GVU5DKQotIAkqYXJncCA9IGNvZXJjZV9hcnJheSAoKmFy Z3ApOwotICAgICAgIHQgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICgqYXJncCkpOwotICAg ICB9Ci1AQCAtMjQzOSw3ICsyNDM5LDcgQEAgdmFsdWVfZmluZF9vbG9hZF9tZXRob2RfbGlzdCAo c3RydWN0IHZhbAotICAgICB7Ci0gICAgICAgKmFyZ3AgPSB2YWx1ZV9pbmQgKCphcmdwKTsKLSAg ICAgICAvKiBEb24ndCBjb2VyY2UgZm4gcG9pbnRlciB0byBmbiBhbmQgdGhlbiBiYWNrIGFnYWlu ISAgKi8KLS0gICAgICBpZiAoVFlQRV9DT0RFICh2YWx1ZV90eXBlICgqYXJncCkpICE9IFRZUEVf Q09ERV9GVU5DKQotKyAgICAgIGlmIChUWVBFX0NPREUgKGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5 cGUgKCphcmdwKSkpICE9IFRZUEVfQ09ERV9GVU5DKQotIAkqYXJncCA9IGNvZXJjZV9hcnJheSAo KmFyZ3ApOwotICAgICAgIHQgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICgqYXJncCkpOwot ICAgICB9CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaCBi L2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2gKaW5kZXggNWZjNjM2OS4uYzBmMjc1 NSAxMDA2NDQKLS0tIGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaAorKysgYi9n ZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoCkBAIC00NjMsMTAgKzQ2MywxMCBAQCBD b250ZW50LVR5cGU6IHRleHQveC1wYXRjaAogQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2Jp dAogQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9Yml0cG9zLW1haW4u cGF0Y2gKIAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtbGFuZy5jCitJ bmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYWRhLWxhbmcuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2FkYS1sYW5nLmMJMjAxMy0wOC0wMiAx NjozODoyNi40MDgyOTIxNjAgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIv YWRhLWxhbmcuYwkyMDEzLTA4LTAyIDE2OjM5OjQ4LjA1MjQwODI1NiArMDIwMAorLS0tIGdkYi03 LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvYWRhLWxhbmcuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM0 MTkxMTA5MyArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FkYS1sYW5nLmMJMjAx NC0wMi0wNiAxODowNzo1OC44OTg5MTU5OTAgKzAxMDAKIEBAIC04MCw3ICs4MCw3IEBAIHN0YXRp YyBzdHJ1Y3QgdHlwZSAqZGVzY19ib3VuZHNfdHlwZSAoc3QKICAKICBzdGF0aWMgc3RydWN0IHZh bHVlICpkZXNjX2JvdW5kcyAoc3RydWN0IHZhbHVlICopOwpAQCAtNjgwLDcgKzY4MCw3IEBAIElu ZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYWRhLWxhbmcuYwogICAgCiAgICB2YWwg PSB2YWx1ZV9jYXN0ICh2YWx1ZV90eXBlIChjb21wb25lbnQpLCB2YWwpOwogIAotQEAgLTQwODIs NyArNDA4NSw3IEBAIGVuc3VyZV9sdmFsIChzdHJ1Y3QgdmFsdWUgKnZhbCkKK0BAIC00MDg1LDcg KzQwODgsNyBAQCBlbnN1cmVfbHZhbCAoc3RydWN0IHZhbHVlICp2YWwpCiAgICBpZiAoVkFMVUVf TFZBTCAodmFsKSA9PSBub3RfbHZhbAogICAgICAgIHx8IFZBTFVFX0xWQUwgKHZhbCkgPT0gbHZh bF9pbnRlcm5hbHZhcikKICAgICAgewpAQCAtNjg5LDcgKzY4OSw3IEBAIEluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvYWRhLWxhbmcuYwogICAgICAgIGNvbnN0IENPUkVfQUREUiBh ZGRyID0KICAgICAgICAgIHZhbHVlX2FzX2xvbmcgKHZhbHVlX2FsbG9jYXRlX3NwYWNlX2luX2lu ZmVyaW9yIChsZW4pKTsKICAKLUBAIC00MTU2LDcgKzQxNTksNyBAQCBzdGF0aWMgQ09SRV9BRERS CitAQCAtNDE1OSw3ICs0MTYyLDcgQEAgc3RhdGljIENPUkVfQUREUgogIHZhbHVlX3BvaW50ZXIg KHN0cnVjdCB2YWx1ZSAqdmFsdWUsIHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAgIHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoID0gZ2V0X3R5cGVfYXJjaCAodHlwZSk7CkBAIC02OTgsNyArNjk4LDcg QEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtbGFuZy5jCiAgICBnZGJf Ynl0ZSAqYnVmID0gYWxsb2NhIChsZW4pOwogICAgQ09SRV9BRERSIGFkZHI7CiAgCi1AQCAtNjA4 Nyw3ICs2MDkwLDcgQEAgdmFsdWVfdGFnX2Zyb21fY29udGVudHNfYW5kX2FkZHJlc3MgKHN0cgor QEAgLTYxNDUsNyArNjE0OCw3IEBAIHZhbHVlX3RhZ19mcm9tX2NvbnRlbnRzX2FuZF9hZGRyZXNz IChzdHIKICAJCQkJICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ09SRV9BRERSIGFkZHJlc3MpCiAgewpAQCAtNzA3LDcg KzcwNyw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYWRhLWxhbmcuYwog ICAgc3RydWN0IHR5cGUgKnRhZ190eXBlOwogIAogICAgaWYgKGZpbmRfc3RydWN0X2ZpZWxkICgi X3RhZyIsIHR5cGUsIDAsICZ0YWdfdHlwZSwgJnRhZ19ieXRlX29mZnNldCwKLUBAIC02NTUyLDcg KzY1NTUsNyBAQCBhZGFfaW5fdmFyaWFudCAoTE9OR0VTVCB2YWwsIHN0cnVjdCB0eXBlCitAQCAt NjYxMCw3ICs2NjEzLDcgQEAgYWRhX2luX3ZhcmlhbnQgKExPTkdFU1QgdmFsLCBzdHJ1Y3QgdHlw ZQogICAgIG9ubHkgaW4gdGhhdCBpdCBjYW4gaGFuZGxlIHBhY2tlZCB2YWx1ZXMgb2YgYXJiaXRy YXJ5IHR5cGUuICAqLwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgpAQCAtNzE2LDcgKzcxNiw3 IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYWRhLWxhbmcuYwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZSkKICB7CiAgICBzdHJ1 Y3QgdHlwZSAqdHlwZTsKLUBAIC02NTY0LDcgKzY1NjcsNyBAQCBhZGFfdmFsdWVfcHJpbWl0aXZl X2ZpZWxkIChzdHJ1Y3QgdmFsdWUKK0BAIC02NjIyLDcgKzY2MjUsNyBAQCBhZGFfdmFsdWVfcHJp bWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUKICAKICAgIGlmIChUWVBFX0ZJRUxEX0JJVFNJWkUg KGFyZ190eXBlLCBmaWVsZG5vKSAhPSAwKQogICAgICB7CkBAIC03MjUsNyArNzI1LDcgQEAgSW5k ZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtbGFuZy5jCiAgICAgICAgaW50IGJp dF9zaXplID0gVFlQRV9GSUVMRF9CSVRTSVpFIChhcmdfdHlwZSwgZmllbGRubyk7CiAgCiAgICAg ICAgcmV0dXJuIGFkYV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoYXJnMSwgdmFsdWVfY29u dGVudHMgKGFyZzEpLAotQEAgLTY1OTEsOSArNjU5NCw5IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVf ZmllbGQgKHN0cnVjdCB2YWx1ZQorQEAgLTY2NDksOSArNjY1Miw5IEBAIGFkYV92YWx1ZV9wcmlt aXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZQogICAgIFJldHVybnMgMSBpZiBmb3VuZCwgMCBvdGhl cndpc2UuICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTczNyw3ICs3MzcsNyBAQCBJbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2FkYS1sYW5nLmMKICAJCSAgIGludCAqaW5kZXhfcCkK ICB7CiAgICBpbnQgaTsKLUBAIC02NjExLDggKzY2MTQsOCBAQCBmaW5kX3N0cnVjdF9maWVsZCAo Y29uc3QgY2hhciAqbmFtZSwgc3RyCitAQCAtNjY2OSw4ICs2NjcyLDggQEAgZmluZF9zdHJ1Y3Rf ZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cgogIAogICAgZm9yIChpID0gMDsgaSA8IFRZUEVf TkZJRUxEUyAodHlwZSk7IGkgKz0gMSkKICAgICAgewpAQCAtNzQ4LDcgKzc0OCw3IEBAIEluZGV4 OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYWRhLWxhbmcuYwogICAgICAgIGNvbnN0IGNo YXIgKnRfZmllbGRfbmFtZSA9IFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSk7CiAgCiAgICAgICAg aWYgKHRfZmllbGRfbmFtZSA9PSBOVUxMKQotQEAgLTY2ODIsNyArNjY4NSw3IEBAIG51bV92aXNp YmxlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUpCitAQCAtNjc0MCw3ICs2NzQzLDcgQEAgbnVt X3Zpc2libGVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICBTZWFyY2hlcyByZWN1cnNp dmVseSB0aHJvdWdoIHdyYXBwZXIgZmllbGRzIChlLmcuLCAnX3BhcmVudCcpLiAgKi8KICAKICBz dGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTc1Nyw3ICs3NTcsNyBAQCBJbmRleDogZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL2FkYS1sYW5nLmMKICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgaW50IGk7Ci1AQCAtNjcxNSw3ICs2NzE4LDcgQEAg YWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNoYXIgKm5hbWUsIHN0cgorQEAgLTY3NzMsNyArNjc3 Niw3IEBAIGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChjaGFyICpuYW1lLCBzdHIKICAgICAgICAg ICAgaW50IGo7CiAgICAgICAgICAgIHN0cnVjdCB0eXBlICpmaWVsZF90eXBlID0gYWRhX2NoZWNr X3R5cGVkZWYgKFRZUEVfRklFTERfVFlQRSAodHlwZSwKICAJCQkJCQkJCQlpKSk7CkBAIC03NjYs NyArNzY2LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtbGFuZy5j CiAgCiAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBUWVBFX05GSUVMRFMgKGZpZWxkX3R5cGUp OyBqICs9IDEpCiAgICAgICAgICAgICAgewotQEAgLTY3MzMsOCArNjczNiw4IEBAIGFkYV9zZWFy Y2hfc3RydWN0X2ZpZWxkIChjaGFyICpuYW1lLCBzdHIKK0BAIC02NzkxLDggKzY3OTQsOCBAQCBh ZGFfc2VhcmNoX3N0cnVjdF9maWVsZCAoY2hhciAqbmFtZSwgc3RyCiAgICByZXR1cm4gTlVMTDsK ICB9CiAgCkBAIC03NzcsNyArNzc3LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi9hZGEtbGFuZy5jCiAgCiAgCiAgLyogUmV0dXJuIGZpZWxkICNJTkRFWCBpbiBBUkcsIHdo ZXJlIHRoZSBpbmRleCBpcyB0aGF0IHJldHVybmVkIGJ5Ci1AQCAtNjc0Myw3ICs2NzQ2LDcgQEAg c3RhdGljIHN0cnVjdCB2YWx1ZSAqYWRhX2luZGV4X3N0cnVjdF9maQorQEAgLTY4MDEsNyArNjgw NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV9pbmRleF9zdHJ1Y3RfZmkKICAgKiBJZiBm b3VuZCwgcmV0dXJuIHZhbHVlLCBlbHNlIHJldHVybiBOVUxMLiAgKi8KICAKICBzdGF0aWMgc3Ry dWN0IHZhbHVlICoKQEAgLTc4Niw3ICs3ODYsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL2FkYS1sYW5nLmMKICAJCQlzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICByZXR1 cm4gYWRhX2luZGV4X3N0cnVjdF9maWVsZF8xICgmaW5kZXgsIGFyZywgb2Zmc2V0LCB0eXBlKTsK LUBAIC02NzU1LDcgKzY3NTgsNyBAQCBhZGFfaW5kZXhfc3RydWN0X2ZpZWxkIChpbnQgaW5kZXgs IHN0cnVjCitAQCAtNjgxMyw3ICs2ODE2LDcgQEAgYWRhX2luZGV4X3N0cnVjdF9maWVsZCAoaW50 IGluZGV4LCBzdHJ1YwogICAqICpJTkRFWF9QLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVl ICoKQEAgLTc5NSw3ICs3OTUsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L2FkYS1sYW5nLmMKICAJCQkgIHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAgIGludCBpOwotQEAg LTY4NDUsNyArNjg0OCw4IEBAIGFkYV92YWx1ZV9zdHJ1Y3RfZWx0IChzdHJ1Y3QgdmFsdWUgKmFy ZywKK0BAIC02OTAzLDcgKzY5MDYsOCBAQCBhZGFfdmFsdWVfc3RydWN0X2VsdCAoc3RydWN0IHZh bHVlICphcmcsCiAgICAgIHYgPSBhZGFfc2VhcmNoX3N0cnVjdF9maWVsZCAobmFtZSwgYXJnLCAw LCB0KTsKICAgIGVsc2UKICAgICAgewpAQCAtODA1LDcgKzgwNSw3IEBAIEluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvYWRhLWxhbmcuYwogICAgICAgIHN0cnVjdCB0eXBlICpmaWVs ZF90eXBlOwogICAgICAgIENPUkVfQUREUiBhZGRyZXNzOwogIAotQEAgLTcxNTgsOCArNzE2Miw4 IEBAIGFkYV9jb2VyY2VfcmVmIChzdHJ1Y3QgdmFsdWUgKnZhbDApCitAQCAtNzIxNiw4ICs3MjIw LDggQEAgYWRhX2NvZXJjZV9yZWYgKHN0cnVjdCB2YWx1ZSAqdmFsMCkKICAvKiBSZXR1cm4gT0ZG IHJvdW5kZWQgdXB3YXJkIGlmIG5lY2Vzc2FyeSB0byBhIG11bHRpcGxlIG9mCiAgICAgQUxJR05N RU5UIChhIHBvd2VyIG9mIDIpLiAgKi8KICAKQEAgLTgxNiw3ICs4MTYsNyBAQCBJbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICByZXR1cm4gKG9mZiAr IGFsaWdubWVudCAtIDEpICYgfihhbGlnbm1lbnQgLSAxKTsKICB9Ci1AQCAtNzUzOCwxMCArNzU0 Miw5IEBAIGFkYV90ZW1wbGF0ZV90b19maXhlZF9yZWNvcmRfdHlwZV8xIChzdHIKK0BAIC03NTk2 LDEwICs3NjAwLDkgQEAgYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgog ICAgc3RydWN0IHZhbHVlICptYXJrID0gdmFsdWVfbWFyayAoKTsKICAgIHN0cnVjdCB2YWx1ZSAq ZHZhbDsKICAgIHN0cnVjdCB0eXBlICpydHlwZTsKQEAgLTgyOSw3ICs4MjksNyBAQCBJbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2FkYS1sYW5nLmMKICAgIGludCBmOwogIAogICAg LyogQ29tcHV0ZSB0aGUgbnVtYmVyIG9mIGZpZWxkcyBpbiB0aGlzIHJlY29yZCB0eXBlIHRoYXQg YXJlIGdvaW5nCi1AQCAtNzYxMiw3ICs3NjE1LDcgQEAgYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3Jl Y29yZF90eXBlXzEgKHN0cgorQEAgLTc2NzAsNyArNzY3Myw3IEBAIGFkYV90ZW1wbGF0ZV90b19m aXhlZF9yZWNvcmRfdHlwZV8xIChzdHIKICAJICAgICB0aGF0IGZvbGxvdyB0aGlzIG9uZS4gICov CiAgCSAgaWYgKGFkYV9pc19hbGlnbmVyX3R5cGUgKGZpZWxkX3R5cGUpKQogIAkgICAgewpAQCAt ODM4LDcgKzgzOCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYWRhLWxh bmcuYwogIAogIAkgICAgICBmaWVsZF92YWxhZGRyID0gY29uZF9vZmZzZXRfaG9zdCAoZmllbGRf dmFsYWRkciwgZmllbGRfb2Zmc2V0KTsKICAJICAgICAgZmllbGRfYWRkcmVzcyA9IGNvbmRfb2Zm c2V0X3RhcmdldCAoZmllbGRfYWRkcmVzcywgZmllbGRfb2Zmc2V0KTsKLUBAIC03NzQxLDExICs3 NzQ0LDExIEBAIGFkYV90ZW1wbGF0ZV90b19maXhlZF9yZWNvcmRfdHlwZV8xIChzdHIKK0BAIC03 Nzk5LDExICs3ODAyLDExIEBAIGFkYV90ZW1wbGF0ZV90b19maXhlZF9yZWNvcmRfdHlwZV8xIChz dHIKICAgIGlmIChUWVBFX0xFTkdUSCAodHlwZSkgPD0gMCkKICAgICAgewogICAgICAgIGlmIChU WVBFX05BTUUgKHJ0eXBlKSkKQEAgLTg1NCw3ICs4NTQsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL2FkYS1sYW5nLmMKICAgICAgfQogICAgZWxzZQogICAgICB7Ci1AQCAt ODA4Miw3ICs4MDg1LDggQEAgdG9fZml4ZWRfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUw LAorQEAgLTgxNDAsNyArODE0Myw4IEBAIHRvX2ZpeGVkX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBl ICp0eXBlMCwKICAJIHR5cGUgd2FzIGEgcmVndWxhciAobm9uLXBhY2tlZCkgYXJyYXkgdHlwZS4g IEFzIGEgcmVzdWx0LCB0aGUKICAJIGJpdHNpemUgb2YgdGhlIGFycmF5IGVsZW1lbnRzIG5lZWRz IHRvIGJlIHNldCBhZ2FpbiwgYW5kIHRoZSBhcnJheQogIAkgbGVuZ3RoIG5lZWRzIHRvIGJlIHJl Y29tcHV0ZWQgYmFzZWQgb24gdGhhdCBiaXRzaXplLiAgKi8KQEAgLTg2NCwxMSArODY0LDExIEBA IEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYWRhLWxhbmcuYwogICAgICAgIGlu dCBlbHRfYml0c2l6ZSA9IFRZUEVfRklFTERfQklUU0laRSAodHlwZTAsIDApOwogIAogICAgICAg IFRZUEVfRklFTERfQklUU0laRSAocmVzdWx0LCAwKSA9IFRZUEVfRklFTERfQklUU0laRSAodHlw ZTAsIDApOwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtbGFuZy5oCitJ bmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYWRhLWxhbmcuaAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2FkYS1sYW5nLmgJMjAxMy0wOC0wMiAx NjozODoyNi40MDkyOTIxNjIgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIv YWRhLWxhbmcuaAkyMDEzLTA4LTAyIDE2OjM4OjMyLjM0MzMwMDcxMyArMDIwMAotQEAgLTE2OSw3 ICsxNjksNyBAQCBleHRlcm4gdm9pZCBhZGFfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUKKy0tLSBn ZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2FkYS1sYW5nLmgJMjAxNC0wMi0wNiAxODowNzo1 NC4zNDI5MTEwOTQgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9hZGEtbGFuZy5o CTIwMTQtMDItMDYgMTg6MDc6NTguODk5OTE1OTkwICswMTAwCitAQCAtMTgwLDcgKzE4MCw3IEBA IGV4dGVybiB2b2lkIGFkYV9wcmludF90eXBlIChzdHJ1Y3QgdHlwZQogIGV4dGVybiB2b2lkIGFk YV9wcmludF90eXBlZGVmIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHN5bWJvbCAqbmV3X3N5 bWJvbCwKICAJCQkgICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7CiAgCkBAIC04NzcsNyAr ODc3LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtbGFuZy5oCiAg CQkJICAgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAogIAkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAq LAogIAkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwotQEAgLTE4NCw3 ICsxODQsNyBAQCBleHRlcm4gdm9pZCBhZGFfZW1pdF9jaGFyIChpbnQsIHN0cnVjdCB0CitAQCAt MTk1LDcgKzE5NSw3IEBAIGV4dGVybiB2b2lkIGFkYV9lbWl0X2NoYXIgKGludCwgc3RydWN0IHQK ICBleHRlcm4gdm9pZCBhZGFfcHJpbnRjaGFyIChpbnQsIHN0cnVjdCB0eXBlICosIHN0cnVjdCB1 aV9maWxlICopOwogIAogIGV4dGVybiB2b2lkIGFkYV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUg Kiwgc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwKQEAgLTg4Niw3ICs4ODYsNyBAQCBJ bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2FkYS1sYW5nLmgKICAJCQkgIGNvbnN0 IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwogIAogIHN0cnVjdCB2YWx1ZSAqYWRhX2Nv bnZlcnRfYWN0dWFsIChzdHJ1Y3QgdmFsdWUgKmFjdHVhbCwKLUBAIC0yNTcsNyArMjU3LDcgQEAg ZXh0ZXJuIGludCBhZGFfaXNfY29uc3RyYWluZWRfcGFja2VkX2FycgorQEAgLTI2OCw3ICsyNjgs NyBAQCBleHRlcm4gaW50IGFkYV9pc19jb25zdHJhaW5lZF9wYWNrZWRfYXJyCiAgCiAgZXh0ZXJu IHN0cnVjdCB2YWx1ZSAqYWRhX3ZhbHVlX3ByaW1pdGl2ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdmFs dWUgKiwKICAJCQkJCQkgICAgIGNvbnN0IGdkYl9ieXRlICosCkBAIC04OTUsMTAgKzg5NSwxMCBA QCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2FkYS1sYW5nLmgKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0eXBl ICopOwogIAogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqYWRhX2NvZXJjZV90b19zaW1wbGVfYXJyYXlf dHlwZSAoc3RydWN0IHR5cGUgKik7Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L2FkYS10eXBlcHJpbnQuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FkYS10eXBl cHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2Ri L2FkYS10eXBlcHJpbnQuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQyNDI5MjE4NCArMDIwMAotKysr IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtdHlwZXByaW50LmMJMjAxMy0wOC0wMiAx NjozODozMi4zNDMzMDA3MTMgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2Ri L2FkYS10eXBlcHJpbnQuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM0MjkxMTA5NCArMDEwMAorKysr IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE0LTAyLTA2IDE4OjA3 OjU4Ljg5OTkxNTk5MCArMDEwMAogQEAgLTgyOSw4ICs4MjksOCBAQCBhZGFfcHJpbnRfdHlwZSAo c3RydWN0IHR5cGUgKnR5cGUwLCBjb25zCiAgCSAgICBjb25zdCBjaGFyICpuYW1lID0gYWRhX3R5 cGVfbmFtZSAodHlwZSk7CiAgCkBAIC05MjAsMTIgKzkyMCwxMiBAQCBJbmRleDogZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL2FkYS10eXBlcHJpbnQuYwogIAlicmVhazsKICAgICAgICBjYXNl IFRZUEVfQ09ERV9FTlVNOgogIAlpZiAoc2hvdyA8IDApCi1JbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL2FkYS12YWxwcmludC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvYWRhLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy5vcmlnL2dkYi9hZGEtdmFscHJpbnQuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQyNTI5MjE4NSAr MDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtdmFscHJpbnQuYwkyMDEz LTA4LTAyIDE2OjM4OjMyLjM0NDMwMDcxNSArMDIwMAotQEAgLTQxLDE2ICs0MSwxNiBAQCBzdGF0 aWMgdm9pZCBwcmludF9yZWNvcmQgKHN0cnVjdCB0eXBlICosCi0gCQkJICBjb25zdCBzdHJ1Y3Qg dmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2Ri L2FkYS12YWxwcmludC5jCTIwMTQtMDItMDYgMTg6MDc6NTQuMzQzOTExMDk1ICswMTAwCisrKysg Z2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYWRhLXZhbHByaW50LmMJMjAxNC0wMi0wNiAxODoxNTow MC43NjYzNjg5ODEgKzAxMDAKK0BAIC0zNSwxMSArMzUsMTEgQEAKKyAjaW5jbHVkZSAib2JqZmls ZXMuaCIKICAKICBzdGF0aWMgaW50IHByaW50X2ZpZWxkX3ZhbHVlcyAoc3RydWN0IHR5cGUgKiwg Y29uc3QgZ2RiX2J5dGUgKiwKIC0JCQkgICAgICAgaW50LApAQCAtOTMzLDE5ICs5MzMsMTIgQEAg SW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtdmFscHJpbnQuYwogIAkJCSAg ICAgICBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqLAogIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqLAotLQkJ CSAgICAgICBpbnQsIHN0cnVjdCB0eXBlICosIGludCk7Ci0rCQkJICAgICAgIGludCwgc3RydWN0 IHR5cGUgKiwgTE9OR0VTVCk7Ci0gCi0gc3RhdGljIHZvaWQgYWRqdXN0X3R5cGVfc2lnbmVkbmVz cyAoc3RydWN0IHR5cGUgKik7Ci0gCi0tc3RhdGljIHZvaWQgYWRhX3ZhbF9wcmludF8xIChzdHJ1 Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLCBpbnQsIENPUkVfQUREUiwKLS0JCQkgICAgIHN0 cnVjdCB1aV9maWxlICosIGludCwKLStzdGF0aWMgdm9pZCBhZGFfdmFsX3ByaW50XzEgKHN0cnVj dCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosIExPTkdFU1QsCi0rCQkJICAgICBDT1JFX0FERFIs IHN0cnVjdCB1aV9maWxlICosIGludCwKLSAJCQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAot IAkJCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7CistCQkJICAgICAg IGludCwgc3RydWN0IHR5cGUgKiwgaW50LAorKwkJCSAgICAgICBpbnQsIHN0cnVjdCB0eXBlICos IExPTkdFU1QsCisgCQkJICAgICAgIGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICopOwogIAwK LUBAIC0xNDMsNyArMTQzLDcgQEAgdmFsX3ByaW50X3BhY2tlZF9hcnJheV9lbGVtZW50cyAoc3Ry dWN0CisgCitAQCAtMTMxLDcgKzEzMSw3IEBAIHZhbF9wcmludF9wYWNrZWRfYXJyYXlfZWxlbWVu dHMgKHN0cnVjdAogICAgdW5zaWduZWQgaW50IHRoaW5nc19wcmludGVkID0gMDsKICAgIHVuc2ln bmVkIGxlbjsKICAgIHN0cnVjdCB0eXBlICplbHR0eXBlLCAqaW5kZXhfdHlwZTsKQEAgLTk1NCw3 ICs5NDcsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2FkYS12YWxwcmlu dC5jCiAgICB1bnNpZ25lZCBsb25nIGJpdHNpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUs IDApOwogICAgc3RydWN0IHZhbHVlICptYXJrID0gdmFsdWVfbWFyayAoKTsKICAgIExPTkdFU1Qg bG93ID0gMDsKLUBAIC0yOTIsNyArMjkyLDcgQEAgYWRhX2VtaXRfY2hhciAoaW50IGMsIHN0cnVj dCB0eXBlICp0eXBlLAorQEAgLTI4MCw3ICsyODAsNyBAQCBhZGFfZW1pdF9jaGFyIChpbnQgYywg c3RydWN0IHR5cGUgKnR5cGUsCiAgICAgb2YgYSBjaGFyYWN0ZXIuICAqLwogIAogIHN0YXRpYyBp bnQKQEAgLTk2Myw3ICs5NTYsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L2FkYS12YWxwcmludC5jCiAgCSBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlcikKICB7CiAgICBp ZiAodHlwZV9sZW4gPT0gMSkKLUBAIC00NjIsMTEgKzQ2MiwxMSBAQCBhZGFfcHJpbnRfc2NhbGFy IChzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OCitAQCAtNDQyLDExICs0NDIsMTEgQEAgYWRhX3ByaW50 X3NjYWxhciAoc3RydWN0IHR5cGUgKnR5cGUsIExPTgogIAogIHN0YXRpYyB2b2lkCiAgcHJpbnRz dHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICplbHR0eXBlLCBjb25zdCBn ZGJfYnl0ZSAqc3RyaW5nLApAQCAtOTc3LDcgKzk3MCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvYWRhLXZhbHByaW50LmMKICAgIHVuc2lnbmVkIGludCB0aGluZ3NfcHJp bnRlZCA9IDA7CiAgICBpbnQgaW5fcXVvdGVzID0gMDsKICAgIGludCBuZWVkX2NvbW1hID0gMDsK LUBAIC00ODEsOSArNDgxLDkgQEAgcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0 cnVjdAorQEAgLTQ2MSw5ICs0NjEsOSBAQCBwcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSwgc3RydWN0CiAgICAgIHsKICAgICAgICAvKiBQb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyIHdl IGFyZSBleGFtaW5pbmcKICAgICAgICAgICB0byBzZWUgd2hldGhlciBpdCBpcyByZXBlYXRlZC4g ICovCkBAIC05ODksNyArOTgyLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi9hZGEtdmFscHJpbnQuYwogIAogICAgICAgIFFVSVQ7CiAgCi1AQCAtNTE0LDcgKzUxNCw4IEBA IHByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QKK0BAIC00OTQsNyArNDk0 LDggQEAgcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdAogIAkgIGFkYV9l bWl0X2NoYXIgKGNoYXJfYXQgKHN0cmluZywgaSwgdHlwZV9sZW4sIGJ5dGVfb3JkZXIpLAogIAkJ CSBlbHR0eXBlLCBzdHJlYW0sICdcJycsIHR5cGVfbGVuKTsKICAJICBmcHV0c19maWx0ZXJlZCAo IiciLCBzdHJlYW0pOwpAQCAtOTk5LDcgKzk5Miw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvYWRhLXZhbHByaW50LmMKICAJICBpID0gcmVwMSAtIDE7CiAgCSAgdGhpbmdz X3ByaW50ZWQgKz0gb3B0aW9ucy0+cmVwZWF0X2NvdW50X3RocmVzaG9sZDsKICAJICBuZWVkX2Nv bW1hID0gMTsKLUBAIC01NDIsNyArNTQzLDcgQEAgcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpz dHJlYW0sIHN0cnVjdAorQEAgLTUyMiw3ICs1MjMsNyBAQCBwcmludHN0ciAoc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwgc3RydWN0CiAgCiAgdm9pZAogIGFkYV9wcmludHN0ciAoc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0xMDA4LDQ1ICsxMDAxLDcgQEAgSW5k ZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtdmFscHJpbnQuYwogIAkgICAgICBj b25zdCBjaGFyICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkgICAgICBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7Ci1AQCAtNTU2LDcgKzU1Nyw3 IEBAIGFkYV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3QKLSAKLSB2b2lkCi0g YWRhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRy LAotLQkgICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0rCSAg ICAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0gCSAgICAg ICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAJICAgICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZSAqdmFsLAotIAkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKm9wdGlvbnMpCi1AQCAtNTg4LDggKzU4OSw4IEBAIGFkYV92YWxfcHJpbnRfYXJyYXkgKHN0 cnVjdCB0eXBlICp0eXBlLAotICAgICB7Ci0gICAgICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3Jk ZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdldF90eXBlX2FyY2ggKHR5cGUpKTsKLSAgICAgICBz dHJ1Y3QgdHlwZSAqZWx0dHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpOwotLSAgICAgIHVu c2lnbmVkIGludCBlbHRsZW47Ci0tICAgICAgdW5zaWduZWQgaW50IGxlbjsKLSsgICAgICBVTE9O R0VTVCBlbHRsZW47Ci0rICAgICAgVUxPTkdFU1QgbGVuOwotIAotICAgICAgIC8qIFdlIGtub3cg dGhhdCBFTFRUWVBFIGNhbm5vdCBwb3NzaWJseSBiZSBudWxsLCBiZWNhdXNlIHdlIGZvdW5kCi0g CSB0aGF0IFRZUEUgaXMgYSBzdHJpbmctbGlrZSB0eXBlLiAgU2ltaWxhcmx5LCB0aGUgc2l6ZSBv ZiBFTFRUWVBFCi1AQCAtNjA3LDcgKzYwOCw3IEBAIGFkYV92YWxfcHJpbnRfYXJyYXkgKHN0cnVj dCB0eXBlICp0eXBlLAotICAgICAgICAgIGVsZW1lbnRzIHVwIHRvIGl0LiAgKi8KLSAgICAgICBp ZiAob3B0aW9ucy0+c3RvcF9wcmludF9hdF9udWxsKQotICAgICAgICAgewotLSAgICAgICAgICBp bnQgdGVtcF9sZW47Ci0rICAgICAgICAgIExPTkdFU1QgdGVtcF9sZW47Ci0gCi0gICAgICAgICAg IC8qIExvb2sgZm9yIGEgTlVMTCBjaGFyLiAgKi8KLSAgICAgICAgICAgZm9yICh0ZW1wX2xlbiA9 IDA7Ci1AQCAtNjQwLDcgKzY0MSw3IEBAIGFkYV92YWxfcHJpbnRfYXJyYXkgKHN0cnVjdCB0eXBl ICp0eXBlLAotIAotIHN0YXRpYyB2b2lkCi0gYWRhX3ZhbF9wcmludF8xIChzdHJ1Y3QgdHlwZSAq dHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkgaW50IG9mZnNldCwgQ09SRV9BRERS IGFkZHJlc3MsCi0rCQkgTE9OR0VTVCBvZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotIAkJIHN0 cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAotIAkJIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqb3JpZ2luYWxfdmFsdWUsCi0gCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg Km9wdGlvbnMpCi1AQCAtOTE1LDEyICs5MTYsMTIgQEAgYWRhX3ZhbF9wcmludF8xIChzdHJ1Y3Qg dHlwZSAqdHlwZSwgY29ucworQEAgLTUzMiwxMiArNTMzLDEyIEBAIGFkYV9wcmludHN0ciAoc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3QKICAKICBzdGF0aWMgaW50CiAgcHJpbnRfdmFyaWFudF9w YXJ0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGZpZWxkX251bSwKQEAgLTEwNTYsMTIgKzEwMTEs MTIgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtdmFscHJpbnQuYwog IAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAogIAkJICAgIGludCBjb21tYV9uZWVkZWQsCi0tCQkg ICAgc3RydWN0IHR5cGUgKm91dGVyX3R5cGUsIGludCBvdXRlcl9vZmZzZXQpCi0rCQkgICAgc3Ry dWN0IHR5cGUgKm91dGVyX3R5cGUsIExPTkdFU1Qgb3V0ZXJfb2Zmc2V0KQorLQkJICAgIHN0cnVj dCB0eXBlICpvdXRlcl90eXBlLCBpbnQgb3V0ZXJfb2Zmc2V0LAorKwkJICAgIHN0cnVjdCB0eXBl ICpvdXRlcl90eXBlLCBMT05HRVNUIG91dGVyX29mZnNldCwKKyAJCSAgICBjb25zdCBzdHJ1Y3Qg bGFuZ3VhZ2VfZGVmbiAqbGFuZ3VhZ2UpCiAgewogICAgc3RydWN0IHR5cGUgKnZhcl90eXBlID0g VFlQRV9GSUVMRF9UWVBFICh0eXBlLCBmaWVsZF9udW0pOwotICAgaW50IHdoaWNoID0gYWRhX3do aWNoX3ZhcmlhbnRfYXBwbGllcyAodmFyX3R5cGUsIG91dGVyX3R5cGUsCi1AQCAtMTAyNywxMSAr MTAyOCwxMSBAQCBwcmludF9yZWNvcmQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnCitAQCAt NTczLDExICs1NzQsMTEgQEAgcHJpbnRfdmFyaWFudF9wYXJ0IChzdHJ1Y3QgdHlwZSAqdHlwZSwg aQogIAogIHN0YXRpYyBpbnQKICBwcmludF9maWVsZF92YWx1ZXMgKHN0cnVjdCB0eXBlICp0eXBl LCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTEwNzAsMTIgKzEwMjUsMTIgQEAgSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtdmFscHJpbnQuYwogIAkJICAgIGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICpvcHRpb25zLAogIAkJICAgIGludCBjb21tYV9uZWVkZWQsCi0tCQkgICAgc3RydWN0IHR5 cGUgKm91dGVyX3R5cGUsIGludCBvdXRlcl9vZmZzZXQpCi0rCQkgICAgc3RydWN0IHR5cGUgKm91 dGVyX3R5cGUsIExPTkdFU1Qgb3V0ZXJfb2Zmc2V0KQorLQkJICAgIHN0cnVjdCB0eXBlICpvdXRl cl90eXBlLCBpbnQgb3V0ZXJfb2Zmc2V0LAorKwkJICAgIHN0cnVjdCB0eXBlICpvdXRlcl90eXBl LCBMT05HRVNUIG91dGVyX29mZnNldCwKKyAJCSAgICBjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVm biAqbGFuZ3VhZ2UpCiAgewogICAgaW50IGksIGxlbjsKLSAKLUBAIC0xMDk3LDcgKzEwOTgsNyBA QCBwcmludF9maWVsZF92YWx1ZXMgKHN0cnVjdCB0eXBlICp0eXBlLCBjCitAQCAtNjQ0LDcgKzY0 NSw3IEBAIHByaW50X2ZpZWxkX3ZhbHVlcyAoc3RydWN0IHR5cGUgKnR5cGUsIGMKICAJICAgIH0K ICAJICBlbHNlCiAgCSAgICB7CkBAIC0xMDg0LDEwICsxMDM5LDQ4IEBAIEluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvYWRhLXZhbHByaW50LmMKICAJICAgICAgaW50IGJpdF9zaXpl ID0gVFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlLCBpKTsKICAJICAgICAgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgb3B0czsKICAKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIv YW5ub3RhdGUuYworQEAgLTY5MCw4ICs2OTEsOCBAQCBhZGFfdmFsX3ByaW50X3N0cmluZyAoc3Ry dWN0IHR5cGUgKnR5cGUsCisgeworICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJh cmNoX2J5dGVfb3JkZXIgKGdldF90eXBlX2FyY2ggKHR5cGUpKTsKKyAgIHN0cnVjdCB0eXBlICpl bHR0eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAodHlwZSk7CistICB1bnNpZ25lZCBpbnQgZWx0bGVu OworLSAgdW5zaWduZWQgaW50IGxlbjsKKysgIFVMT05HRVNUIGVsdGxlbjsKKysgIFVMT05HRVNU IGxlbjsKKyAKKyAgIC8qIFdlIGtub3cgdGhhdCBFTFRUWVBFIGNhbm5vdCBwb3NzaWJseSBiZSBu dWxsLCBiZWNhdXNlIHdlIGFzc3VtZQorICAgICAgdGhhdCB3ZSdyZSBjYWxsZWQgb25seSB3aGVu IFRZUEUgaXMgYSBzdHJpbmctbGlrZSB0eXBlLgorQEAgLTcxMCw3ICs3MTEsNyBAQCBhZGFfdmFs X3ByaW50X3N0cmluZyAoc3RydWN0IHR5cGUgKnR5cGUsCisgICAgICBlbGVtZW50cyB1cCB0byBp dC4gICovCisgICBpZiAob3B0aW9ucy0+c3RvcF9wcmludF9hdF9udWxsKQorICAgICB7CistICAg ICAgaW50IHRlbXBfbGVuOworKyAgICAgIExPTkdFU1QgdGVtcF9sZW47CisgCisgICAgICAgLyog TG9vayBmb3IgYSBOVUxMIGNoYXIuICAqLworICAgICAgIGZvciAodGVtcF9sZW4gPSAwOworQEAg LTEwNjksNyArMTA3MCw3IEBAIGFkYV92YWxfcHJpbnRfcmVmIChzdHJ1Y3QgdHlwZSAqdHlwZSwg Y28KKyAKKyBzdGF0aWMgdm9pZAorIGFkYV92YWxfcHJpbnRfMSAoc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJIGludCBvZmZzZXQsIENPUkVfQUREUiBhZGRy ZXNzLAorKwkJIExPTkdFU1Qgb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKyAJCSBzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKyAJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9y aWdpbmFsX3ZhbHVlLAorIAkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zLAorQEAgLTExNTAsNyArMTE1MSw3IEBAIGFkYV92YWxfcHJpbnRfMSAoc3RydWN0IHR5cGUg KnR5cGUsIGNvbnMKKyAKKyB2b2lkCisgYWRhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkgICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwg Q09SRV9BRERSIGFkZHJlc3MsCisrCSAgICAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09S RV9BRERSIGFkZHJlc3MsCisgCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVj dXJzZSwKKyAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkgICAgICAgY29uc3Qg c3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCitJbmRleDogZ2RiLTcuNi45MC4y MDE0MDEyNy9nZGIvYW5ub3RhdGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzLm9yaWcvZ2RiL2Fubm90YXRlLmMJMjAxMy0wOC0wMiAxNjozODoyNi40MjUyOTIxODUg KzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYW5ub3RhdGUuYwkyMDEzLTA4 LTAyIDE2OjM4OjMyLjM0NDMwMDcxNSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3Jp Zy9nZGIvYW5ub3RhdGUuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM0MzkxMTA5NSArMDEwMAorKysr IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2Fubm90YXRlLmMJMjAxNC0wMi0wNiAxODowNzo1OC45 MDA5MTU5OTIgKzAxMDAKIEBAIC01MjMsMjEgKzUyMywyMSBAQCBhbm5vdGF0ZV9mcmFtZV9lbmQg KHZvaWQpCiAgfQogIAwKQEAgLTExMTQsMTAgKzExMDcsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9hbm5vdGF0ZS5jCiAgfQogIAogIHZvaWQKLUluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvYW5ub3RhdGUuaAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL2Fubm90YXRlLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy5vcmlnL2dkYi9hbm5vdGF0ZS5oCTIwMTMtMDgtMDIgMTY6Mzg6MjYuNDI2MjkyMTg2ICswMjAw Ci0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2Fubm90YXRlLmgJMjAxMy0wOC0wMiAx NjozODozMi4zNDQzMDA3MTUgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2Ri L2Fubm90YXRlLmgJMjAxNC0wMi0wNiAxODowNzo1NC4zNDM5MTEwOTUgKzAxMDAKKysrKyBnZGIt Ny42LjkwLjIwMTQwMTI3L2dkYi9hbm5vdGF0ZS5oCTIwMTQtMDItMDYgMTg6MDc6NTguOTAxOTE1 OTkzICswMTAwCiBAQCAtOTIsOCArOTIsOCBAQCBleHRlcm4gdm9pZCBhbm5vdGF0ZV9mcmFtZV9z b3VyY2VfZW5kICh2CiAgZXh0ZXJuIHZvaWQgYW5ub3RhdGVfZnJhbWVfd2hlcmUgKHZvaWQpOwog IGV4dGVybiB2b2lkIGFubm90YXRlX2ZyYW1lX2VuZCAodm9pZCk7CkBAIC0xMTI5LDEwICsxMTIy LDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYW5ub3RhdGUuaAogIGV4 dGVybiB2b2lkIGFubm90YXRlX2VsdF9yZXBfZW5kICh2b2lkKTsKICBleHRlcm4gdm9pZCBhbm5v dGF0ZV9lbHQgKHZvaWQpOwogIGV4dGVybiB2b2lkIGFubm90YXRlX2FycmF5X3NlY3Rpb25fZW5k ICh2b2lkKTsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYXJtLWxpbnV4LW5h dC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYXJtLWxpbnV4LW5hdC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvYXJtLWxpbnV4LW5h dC5jCTIwMTMtMDgtMDIgMTY6Mzg6MjYuNDI2MjkyMTg2ICswMjAwCi0rKysgZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL2FybS1saW51eC1uYXQuYwkyMDEzLTA4LTAyIDE2OjM4OjMyLjM0NTMw MDcxNiArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvYXJtLWxpbnV4LW5h dC5jCTIwMTQtMDItMDYgMTg6MDc6NTQuMzQzOTExMDk1ICswMTAwCisrKysgZ2RiLTcuNi45MC4y MDE0MDEyNy9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTQtMDItMDYgMTg6MDc6NTguOTAxOTE1OTkz ICswMTAwCiBAQCAtMTA3Myw3ICsxMDczLDcgQEAgYXJtX2xpbnV4X3JlbW92ZV9od19icmVha3Bv aW50IChzdHJ1Y3QgZwogIC8qIEFyZSB3ZSBhYmxlIHRvIHVzZSBhIGhhcmR3YXJlIHdhdGNocG9p bnQgZm9yIHRoZSBMRU4gYnl0ZXMgc3RhcnRpbmcgYXQgCiAgICAgQUREUj8gICovCkBAIC0xMTQy LDExICsxMTM1LDExIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYXJtLWxp bnV4LW5hdC5jCiAgewogICAgY29uc3Qgc3RydWN0IGFybV9saW51eF9od2JwX2NhcCAqY2FwID0g YXJtX2xpbnV4X2dldF9od2JwX2NhcCAoKTsKICAgIENPUkVfQUREUiBtYXhfd3BfbGVuZ3RoLCBh bGlnbmVkX2FkZHI7Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2F4LWdkYi5j CitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYXgtZ2RiLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9heC1nZGIuYwkyMDEzLTA4LTAyIDE2 OjM4OjI2LjQyNzI5MjE4OCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9h eC1nZGIuYwkyMDEzLTA4LTAyIDE2OjM4OjMyLjM0NjMwMDcxNyArMDIwMAotQEAgLTgzLDEyICs4 MywxMiBAQCBzdGF0aWMgdm9pZCBnZW5fdHJhY2VkX3BvcCAoc3RydWN0IGdkYmFyCistLS0gZ2Ri LTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9heC1nZGIuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM0 NDkxMTA5NiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2F4LWdkYi5jCTIwMTQt MDItMDYgMTg6MDc6NTguOTAyOTE1OTk0ICswMTAwCitAQCAtODIsMTIgKzgyLDEyIEBAIHN0YXRp YyB2b2lkIGdlbl90cmFjZWRfcG9wIChzdHJ1Y3QgZ2RiYXIKICBzdGF0aWMgdm9pZCBnZW5fc2ln bl9leHRlbmQgKHN0cnVjdCBhZ2VudF9leHByICosIHN0cnVjdCB0eXBlICopOwogIHN0YXRpYyB2 b2lkIGdlbl9leHRlbmQgKHN0cnVjdCBhZ2VudF9leHByICosIHN0cnVjdCB0eXBlICopOwogIHN0 YXRpYyB2b2lkIGdlbl9mZXRjaCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7 CkBAIC0xMTYxLDcgKzExNTQsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L2F4LWdkYi5jCiAgc3RhdGljIHZvaWQgZ2VuX3N5bV9vZmZzZXQgKHN0cnVjdCBhZ2VudF9leHBy ICosIHN0cnVjdCBzeW1ib2wgKik7CiAgc3RhdGljIHZvaWQgZ2VuX3Zhcl9yZWYgKHN0cnVjdCBn ZGJhcmNoICosIHN0cnVjdCBhZ2VudF9leHByICpheCwKICAJCQkgc3RydWN0IGF4c192YWx1ZSAq dmFsdWUsIHN0cnVjdCBzeW1ib2wgKnZhcik7Ci1AQCAtMTM2LDE1ICsxMzYsMTYgQEAgc3RhdGlj IHZvaWQgZ2VuX2RlcmVmIChzdHJ1Y3QgYWdlbnRfZXhwcgorQEAgLTEzNSwxNSArMTM1LDE2IEBA IHN0YXRpYyB2b2lkIGdlbl9kZXJlZiAoc3RydWN0IGFnZW50X2V4cHIKICBzdGF0aWMgdm9pZCBn ZW5fYWRkcmVzc19vZiAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IGF4c192YWx1ZSAqKTsK ICBzdGF0aWMgdm9pZCBnZW5fYml0ZmllbGRfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBz dHJ1Y3QgYWdlbnRfZXhwciAqYXgsCiAgCQkJICAgICAgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUs CkBAIC0xMTgxLDcgKzExNzQsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L2F4LWdkYi5jCiAgCQkJCSAgICAgc3RydWN0IHR5cGUgKnR5cGUpOwogIHN0YXRpYyB2b2lkIGdl bl9zdHJ1Y3RfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdlbnRfZXhwciAq YXgsCiAgCQkJICAgIHN0cnVjdCBheHNfdmFsdWUgKnZhbHVlLAotQEAgLTUzOSw3ICs1NDAsNyBA QCBnZW5fZmV0Y2ggKHN0cnVjdCBhZ2VudF9leHByICpheCwgc3RydWN0CitAQCAtNTM4LDcgKzUz OSw3IEBAIGdlbl9mZXRjaCAoc3RydWN0IGFnZW50X2V4cHIgKmF4LCBzdHJ1Y3QKICAgICByaWdo dCBzaGlmdCBpdCBieSAtRElTVEFOQ0UgYml0cyBpZiBESVNUQU5DRSA8IDAuICBUaGlzIGdlbmVy YXRlcwogICAgIHVuc2lnbmVkIChsb2dpY2FsKSByaWdodCBzaGlmdHMuICAqLwogIHN0YXRpYyB2 b2lkCkBAIC0xMTkwLDcgKzExODMsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMv Z2RiL2F4LWdkYi5jCiAgewogICAgaWYgKGRpc3RhbmNlID4gMCkKICAgICAgewotQEAgLTU5Myw3 ICs1OTQsNyBAQCBnZW5fZnJhbWVfbG9jYWxzX2FkZHJlc3MgKHN0cnVjdCBnZGJhcmNoCitAQCAt NTkyLDcgKzU5Myw3IEBAIGdlbl9mcmFtZV9sb2NhbHNfYWRkcmVzcyAoc3RydWN0IGdkYmFyY2gK ICAgICBwcm9ncmFtbWluZyBpbiBNTCwgaXQgd291bGQgYmUgY2xlYXJlciB3aHkgdGhlc2UgYXJl IHRoZSBzYW1lCiAgICAgdGhpbmcuICAqLwogIHN0YXRpYyB2b2lkCkBAIC0xMTk5LDcgKzExOTIs NyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2F4LWdkYi5jCiAgewogICAg LyogSXQgd291bGQgc3VmZmljZSB0byBzaW1wbHkgcHVzaCB0aGUgb2Zmc2V0IGFuZCBhZGQgaXQs IGJ1dCB0aGlzCiAgICAgICBtYWtlcyBpdCBlYXNpZXIgdG8gcmVhZCBwb3NpdGl2ZSBhbmQgbmVn YXRpdmUgb2Zmc2V0cyBpbiB0aGUKLUBAIC0xMjQ5LDcgKzEyNTAsNyBAQCBnZW5fYWRkcmVzc19v ZiAoc3RydWN0IGFnZW50X2V4cHIgKmF4LCBzCitAQCAtMTI0OCw3ICsxMjQ5LDcgQEAgZ2VuX2Fk ZHJlc3Nfb2YgKHN0cnVjdCBhZ2VudF9leHByICpheCwgcwogIHN0YXRpYyB2b2lkCiAgZ2VuX2Jp dGZpZWxkX3JlZiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgc3RydWN0IGFnZW50X2V4cHIgKmF4 LAogIAkJICBzdHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwgc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0x MjA4LDcgKzEyMDEsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2F4LWdk Yi5jCiAgewogICAgLyogTm90ZSB0aGF0IG9wc1tpXSBmZXRjaGVzIDggPDwgaSBiaXRzLiAgKi8K ICAgIHN0YXRpYyBlbnVtIGFnZW50X29wIG9wc1tdCi1AQCAtMTI4NCwxMyArMTI4NSwxMyBAQCBn ZW5fYml0ZmllbGRfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwCitAQCAtMTI4MywxMyArMTI4 NCwxMyBAQCBnZW5fYml0ZmllbGRfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwCiAgCiAgICAv KiBUaGUgZmlyc3QgYW5kIG9uZS1hZnRlci1sYXN0IGJpdHMgaW4gdGhlIGZpZWxkLCBidXQgcm91 bmRlZCBkb3duCiAgICAgICBhbmQgdXAgdG8gYnl0ZSBib3VuZGFyaWVzLiAgKi8KQEAgLTEyMjcs NyArMTIyMCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYXgtZ2RiLmMK ICAKICAgIC8qIFRoZSBpbmRleCBpbiBvcHMgb2YgdGhlIG9wY29kZSB3ZSdyZSBjb25zaWRlcmlu Zy4gICovCiAgICBpbnQgb3A7Ci1AQCAtMTQwOSw3ICsxNDEwLDcgQEAgZ2VuX2JpdGZpZWxkX3Jl ZiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cAorQEAgLTE0MDgsNyArMTQwOSw3IEBAIGdlbl9iaXRm aWVsZF9yZWYgKHN0cnVjdCBleHByZXNzaW9uICpleHAKICBzdGF0aWMgdm9pZAogIGdlbl9wcmlt aXRpdmVfZmllbGQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCiAgCQkgICAgIHN0cnVjdCBhZ2Vu dF9leHByICpheCwgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUsCkBAIC0xMjM2LDcgKzEyMjksNyBA QCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2F4LWdkYi5jCiAgewogICAgLyog SXMgdGhpcyBhIGJpdGZpZWxkPyAgKi8KICAgIGlmIChUWVBFX0ZJRUxEX1BBQ0tFRCAodHlwZSwg ZmllbGRubykpCi1AQCAtMTQzNCw3ICsxNDM1LDcgQEAgZ2VuX3ByaW1pdGl2ZV9maWVsZCAoc3Ry dWN0IGV4cHJlc3Npb24gKgorQEAgLTE0MzMsNyArMTQzNCw3IEBAIGdlbl9wcmltaXRpdmVfZmll bGQgKHN0cnVjdCBleHByZXNzaW9uICoKICBzdGF0aWMgaW50CiAgZ2VuX3N0cnVjdF9yZWZfcmVj dXJzaXZlIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsCiAg CQkJICBzdHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwKQEAgLTEyNDUsMTAgKzEyMzgsMTAgQEAgSW5k ZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9heC1nZGIuYwogIHsKICAgIGludCBpLCBy c2x0OwogICAgaW50IG5iYXNlcyA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSk7Ci1JbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2F4LWdlbmVyYWwuYworSW5kZXg6IGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL2F4LWdlbmVyYWwuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2F4LWdlbmVyYWwuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQy ODI5MjE4OSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9heC1nZW5lcmFs LmMJMjAxMy0wOC0wMiAxNjozODozMi4zNDYzMDA3MTcgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIw MTQwMTI3Lm9yaWcvZ2RiL2F4LWdlbmVyYWwuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM0NTkxMTA5 NyArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2F4LWdlbmVyYWwuYwkyMDE0LTAy LTA2IDE4OjA3OjU4LjkwMjkxNTk5NCArMDEwMAogQEAgLTE5NSw3ICsxOTUsNyBAQCBheF96ZXJv X2V4dCAoc3RydWN0IGFnZW50X2V4cHIgKngsIGludCBuCiAgCiAgLyogQXBwZW5kIGEgdHJhY2Vf cXVpY2sgaW5zdHJ1Y3Rpb24gdG8gRVhQUiwgdG8gcmVjb3JkIE4gYnl0ZXMuICAqLwpAQCAtMTI1 OCwxMCArMTI1MSwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2F4LWdl bmVyYWwuYwogIHsKICAgIC8qIE4gbXVzdCBmaXQgaW4gYSBieXRlLiAgKi8KICAgIGlmIChuIDwg MCB8fCBuID4gMjU1KQotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9heC5oCitJ bmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYXguaAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2F4LmgJMjAxMy0wOC0wMiAxNjozODoyNi40Mjgy OTIxODkgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYXguaAkyMDEzLTA4 LTAyIDE2OjM4OjMyLjM0NjMwMDcxNyArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3Jp Zy9nZGIvYXguaAkyMDE0LTAyLTA2IDE4OjA3OjU0LjM0NTkxMTA5NyArMDEwMAorKysrIGdkYi03 LjYuOTAuMjAxNDAxMjcvZ2RiL2F4LmgJMjAxNC0wMi0wNiAxODowNzo1OC45MDI5MTU5OTQgKzAx MDAKIEBAIC0yMDcsNyArMjA3LDcgQEAgZXh0ZXJuIHZvaWQgYXhfZXh0IChzdHJ1Y3QgYWdlbnRf ZXhwciAqRQogIGV4dGVybiB2b2lkIGF4X3plcm9fZXh0IChzdHJ1Y3QgYWdlbnRfZXhwciAqRVhQ UiwgaW50IE4pOwogIApAQCAtMTI3MSwxMSArMTI2NCwxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL2F4LmgKICAKICAvKiBBcHBlbmQgYSBnb3RvIG9wIHRvIEVYUFIuICBP UCBpcyB0aGUgYWN0dWFsIG9wIChtdXN0IGJlIGFvcF9nb3RvIG9yCiAgICAgYW9wX2lmX2dvdG8p LiAgV2UgYXNzdW1lIHdlIGRvbid0IGtub3cgdGhlIHRhcmdldCBvZmZzZXQgeWV0LAotSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9icmVha3BvaW50LmMKK0luZGV4OiBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi9icmVha3BvaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9icmVha3BvaW50LmMJMjAxMy0wOC0wMiAxNjozODoyNi40 MzIyOTIxOTUgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYnJlYWtwb2lu dC5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzUwMzAwNzIzICswMjAwCi1AQCAtNjcxMCw3ICs2NzEw LDcgQEAgYnJlYWtwb2ludF9hZGRyZXNzX21hdGNoIChzdHJ1Y3QgYWRkcmVzcworLS0tIGdkYi03 LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvYnJlYWtwb2ludC5jCTIwMTQtMDItMDYgMTg6MDc6NTQu MzQ4OTExMTAwICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYnJlYWtwb2ludC5j CTIwMTQtMDItMDYgMTg6MDc6NTguOTA2OTE1OTk4ICswMTAwCitAQCAtNjc1NCw3ICs2NzU0LDcg QEAgYnJlYWtwb2ludF9hZGRyZXNzX21hdGNoIChzdHJ1Y3QgYWRkcmVzcwogIAogIHN0YXRpYyBp bnQKICBicmVha3BvaW50X2FkZHJlc3NfbWF0Y2hfcmFuZ2UgKHN0cnVjdCBhZGRyZXNzX3NwYWNl ICphc3BhY2UxLCBDT1JFX0FERFIgYWRkcjEsCkBAIC0xMjg0LDcgKzEyNzcsNyBAQCBJbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2JyZWFrcG9pbnQuYwogIAkJCQlDT1JFX0FERFIg YWRkcjIpCiAgewogICAgcmV0dXJuICgoZ2RiYXJjaF9oYXNfZ2xvYmFsX2JyZWFrcG9pbnRzICh0 YXJnZXRfZ2RiYXJjaCAoKSkKLUBAIC0xMTI0Nyw3ICsxMTI0Nyw3IEBAIGNhbl91c2VfaGFyZHdh cmVfd2F0Y2hwb2ludCAoc3RydWN0IHZhbHUKK0BAIC0xMTM1Myw3ICsxMTM1Myw3IEBAIGNhbl91 c2VfaGFyZHdhcmVfd2F0Y2hwb2ludCAoc3RydWN0IHZhbHUKICAJCSAgICAgICYmIFRZUEVfQ09E RSAodnR5cGUpICE9IFRZUEVfQ09ERV9BUlJBWSkpCiAgCQl7CiAgCQkgIENPUkVfQUREUiB2YWRk ciA9IHZhbHVlX2FkZHJlc3MgKHYpOwpAQCAtMTI5MywxMCArMTI4NiwxMCBAQCBJbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2JyZWFrcG9pbnQuYwogIAkJICBpbnQgbnVtX3JlZ3M7 CiAgCiAgCQkgIGxlbiA9ICh0YXJnZXRfZXhhY3Rfd2F0Y2hwb2ludHMKLUluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvYnJlYWtwb2ludC5oCitJbmRleDogZ2RiLTcuNi45MC4yMDE0 MDEyNy9nZGIvYnJlYWtwb2ludC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMub3JpZy9nZGIvYnJlYWtwb2ludC5oCTIwMTMtMDgtMDIgMTY6Mzg6MjYuNDM0MjkyMTk4 ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2JyZWFrcG9pbnQuaAkyMDEz LTA4LTAyIDE2OjM4OjMyLjM1MTMwMDcyNSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcu b3JpZy9nZGIvYnJlYWtwb2ludC5oCTIwMTQtMDItMDYgMTg6MDc6NTQuMzQ4OTExMTAwICswMTAw CisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYnJlYWtwb2ludC5oCTIwMTQtMDItMDYgMTg6 MDc6NTguOTA2OTE1OTk4ICswMTAwCiBAQCAtMjQyLDcgKzI0Miw3IEBAIHN0cnVjdCBicF90YXJn ZXRfaW5mbwogIAogICAgLyogSWYgdGhpcyBpcyBhIHJhbmdlZCBicmVha3BvaW50LCB0aGVuIHRo aXMgZmllbGQgY29udGFpbnMgdGhlCkBAIC0xMzE1LDExICsxMzA4LDExIEBAIEluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYnJlYWtwb2ludC5oCiAgCiAgICAvKiBUeXBlIG9mIGhh cmR3YXJlIHdhdGNocG9pbnQuICAqLwogICAgZW51bSB0YXJnZXRfaHdfYnBfdHlwZSB3YXRjaHBv aW50X3R5cGU7Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2MtbGFuZy5jCitJ bmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYy1sYW5nLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9jLWxhbmcuYwkyMDEzLTA4LTAyIDE2OjM4 OjI2LjQzNDI5MjE5OCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jLWxh bmcuYwkyMDEzLTA4LTAyIDE2OjM4OjMyLjM1MTMwMDcyNSArMDIwMAotQEAgLTE4OCw3ICsxODgs NyBAQCBjX3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLCBzCistLS0gZ2RiLTcu Ni45MC4yMDE0MDEyNy5vcmlnL2dkYi9jLWxhbmcuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM0OTkx MTEwMSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2MtbGFuZy5jCTIwMTQtMDIt MDYgMTg6MDc6NTguOTA3OTE1OTk5ICswMTAwCitAQCAtMTkwLDcgKzE5MCw3IEBAIGNfcHJpbnRj aGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5cGUsIHMKICAKICB2b2lkCiAgY19wcmludHN0ciAo c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsIApAQCAtMTMyOCw3ICsx MzIxLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jLWxhbmcuYwogIAkg ICAgY29uc3QgY2hhciAqdXNlcl9lbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkgICAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewotQEAgLTY2Myw3 ICs2NjMsNyBAQCBldmFsdWF0ZV9zdWJleHBfYyAoc3RydWN0IHR5cGUgKmV4cGVjdF90CitAQCAt Njc5LDcgKzY3OSw3IEBAIGV2YWx1YXRlX3N1YmV4cF9jIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3QK ICAJICB9CiAgCWVsc2UKICAJICB7CkBAIC0xMzM3LDcgKzEzMzAsNyBAQCBJbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL2MtbGFuZy5jCiAgCiAgCSAgICAvKiBXcml0ZSB0aGUgdGVy bWluYXRpbmcgY2hhcmFjdGVyLiAgKi8KICAJICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX0xFTkdU SCAodHlwZSk7ICsraSkKLUBAIC02NzIsNyArNjcyLDcgQEAgZXZhbHVhdGVfc3ViZXhwX2MgKHN0 cnVjdCB0eXBlICpleHBlY3RfdAorQEAgLTY4OCw3ICs2ODgsNyBAQCBldmFsdWF0ZV9zdWJleHBf YyAoc3RydWN0IHR5cGUgKmV4cGVjdF90CiAgCSAgICBpZiAoc2F0aXNmeV9leHBlY3RlZCkKICAJ ICAgICAgewogIAkJTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7CkBAIC0xMzQ2LDEwICsx MzM5LDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYy1sYW5nLmMKICAK ICAJCWlmIChnZXRfZGlzY3JldGVfYm91bmRzIChUWVBFX0lOREVYX1RZUEUgKGV4cGVjdF90eXBl KSwKICAJCQkJCSAmbG93X2JvdW5kLCAmaGlnaF9ib3VuZCkgPCAwKQotSW5kZXg6IGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzL2dkYi9jLWxhbmcuaAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcv Z2RiL2MtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3Jp Zy9nZGIvYy1sYW5nLmgJMjAxMy0wOC0wMiAxNjozODoyNi40MzQyOTIxOTggKzAyMDAKLSsrKyBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYy1sYW5nLmgJMjAxMy0wOC0wMiAxNjozODozMi4z NTEzMDA3MjUgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2MtbGFuZy5o CTIwMTQtMDItMDYgMTg6MDc6NTQuMzQ5OTExMTAxICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0 MDEyNy9nZGIvYy1sYW5nLmgJMjAxNC0wMi0wNiAxODowNzo1OC45MDc5MTU5OTkgKzAxMDAKIEBA IC03Myw3ICs3Myw3IEBAIGV4dGVybiB2b2lkIGNfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5cGUK ICAJCQkgICAgIHN0cnVjdCB1aV9maWxlICopOwogIApAQCAtMTM4NSwxMCArMTM3OCwxMCBAQCBJ bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2MtbGFuZy5oCiAgCQkJCQlzdHJ1Y3Qg dWlfZmlsZSAqLCBpbnQsCiAgCQkJCQljb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkJCWNvbnN0 IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICosCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL2MtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2Mt dmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcv Z2RiL2MtdmFscHJpbnQuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQzNTI5MjE5OSArMDIwMAotKysr IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jLXZhbHByaW50LmMJMjAxMy0wOC0wMiAxNjoz ODozMi4zNTIzMDA3MjYgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2Mt dmFscHJpbnQuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM0OTkxMTEwMSArMDEwMAorKysrIGdkYi03 LjYuOTAuMjAxNDAxMjcvZ2RiL2MtdmFscHJpbnQuYwkyMDE0LTAyLTA2IDE4OjA3OjU4LjkwNzkx NTk5OSArMDEwMAogQEAgLTEzMiw3ICsxMzIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVy aWNfdmFsX3ByaW50X2RlCiAgCiAgdm9pZApAQCAtMTQzMCwxMCArMTQyMywxMCBAQCBJbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2MtdmFscHJpbnQuYwogICAgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgb3B0cyA9ICpvcHRpb25zOwogIAogICAgb3B0cy5kZXJlZl9yZWYgPSAx OwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jcC1hYmkuYworSW5kZXg6IGdk Yi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NwLWFiaS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvY3AtYWJpLmMJMjAxMy0wOC0wMiAxNjozODoyNi40MzUy OTIxOTkgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY3AtYWJpLmMJMjAx My0wOC0wMiAxNjozODozMi4zNTIzMDA3MjYgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3 Lm9yaWcvZ2RiL2NwLWFiaS5jCTIwMTQtMDItMDYgMTg6MDc6NTQuMzUwOTExMTAzICswMTAwCisr KysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvY3AtYWJpLmMJMjAxNC0wMi0wNiAxODowNzo1OC45 MDg5MTYwMDEgKzAxMDAKIEBAIC02OCwxMyArNjgsMTMgQEAgaXNfb3BlcmF0b3JfbmFtZSAoY29u c3QgY2hhciAqbmFtZSkKICAgIHJldHVybiAoKmN1cnJlbnRfY3BfYWJpLmlzX29wZXJhdG9yX25h bWUpIChuYW1lKTsKICB9CkBAIC0xNDY5LDEwICsxNDYyLDEwIEBAIEluZGV4OiBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvY3AtYWJpLmMKICB7CiAgICBzdHJ1Y3QgdHlwZSAqcmV0ID0gTlVM TDsKICAgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGU7Ci1JbmRleDogZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL2NwLWFiaS5oCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvY3AtYWJpLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmln L2dkYi9jcC1hYmkuaAkyMDEzLTA4LTAyIDE2OjM4OjI2LjQzNTI5MjE5OSArMDIwMAotKysrIGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jcC1hYmkuaAkyMDEzLTA4LTAyIDE2OjM4OjMyLjM1 MjMwMDcyNiArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvY3AtYWJpLmgJ MjAxNC0wMi0wNiAxODowNzo1NC4zNTA5MTExMDMgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQw MTI3L2dkYi9jcC1hYmkuaAkyMDE0LTAyLTA2IDE4OjA3OjU4LjkwODkxNjAwMSArMDEwMAogQEAg LTEwOCw3ICsxMDgsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV92aXJ0dWFsX2ZuX2Zp CiAgCQkJCQkgICAgIHN0cnVjdCBmbl9maWVsZCAqZiwKICAJCQkJCSAgICAgaW50IGosCkBAIC0x NTI3LDEwICsxNTIwLDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY3At YWJpLmgKICAgIHZvaWQgKCpwcmludF9tZXRob2RfcHRyKSAoY29uc3QgZ2RiX2J5dGUgKmNvbnRl bnRzLAogIAkJCSAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJCQkgICAgc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSk7Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2NwLXZhbHByaW50 LmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9jcC12YWxwcmludC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvY3AtdmFscHJpbnQuYwky MDEzLTA4LTAyIDE2OjM4OjI2LjQzNjI5MjIwMSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi9jcC12YWxwcmludC5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzUzMzAwNzI3ICsw MjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9jcC12YWxwcmludC5jCTIwMTQt MDItMDYgMTg6MDc6NTQuMzUwOTExMTAzICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvY3AtdmFscHJpbnQuYwkyMDE0LTAyLTA2IDE4OjA3OjU4LjkwODkxNjAwMSArMDEwMAogQEAg LTgyLDcgKzgyLDcgQEAgc3RhdGljIHZvaWQgY3BfcHJpbnRfc3RhdGljX2ZpZWxkIChzdHJ1Ywog IAkJCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKICAKQEAgLTE1NDks NyArMTU0Miw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY3AtdmFscHJp bnQuYwogIAkJICAgICAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LAogIAkJICAgICAgIGludCByZWN1cnNlLCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCSAg ICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC0zNDIs NyArMzQyLDcgQEAgY3BfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZQorQEAg LTMzOSw3ICszMzksNyBAQCBjcF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBl CiAgCQl9CiAgCSAgICAgIGVsc2UgaWYgKGkgPT0gdnB0cl9maWVsZG5vICYmIHR5cGUgPT0gdnB0 cl9iYXNldHlwZSkKICAJCXsKQEAgLTE1NTgsNyArMTU1MSw3IEBAIEluZGV4OiBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvY3AtdmFscHJpbnQuYwogIAkJICBzdHJ1Y3QgdHlwZSAqaV90eXBl ID0gVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpKTsKICAKICAJCSAgaWYgKHZhbHByaW50X2NoZWNr X3ZhbGlkaXR5IChzdHJlYW0sIGlfdHlwZSwgaV9vZmZzZXQsIHZhbCkpCi1AQCAtNDI1LDcgKzQy NSw3IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUKK0BAIC00MjIs NyArNDIyLDcgQEAgY3BfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZQogIAog IHZvaWQKICBjcF9wcmludF92YWx1ZV9maWVsZHNfcnR0aSAoc3RydWN0IHR5cGUgKnR5cGUsCkBA IC0xNTY3LDcgKzE1NjAsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2Nw LXZhbHByaW50LmMKICAJCQkgICAgQ09SRV9BRERSIGFkZHJlc3MsCiAgCQkJICAgIHN0cnVjdCB1 aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUg KnZhbCwKLUBAIC00NDEsNyArNDQxLDggQEAgY3BfcHJpbnRfdmFsdWVfZmllbGRzX3J0dGkgKHN0 cnVjdCB0eXBlCitAQCAtNDM4LDcgKzQzOCw4IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkc19ydHRp IChzdHJ1Y3QgdHlwZQogIAkJCVRBUkdFVF9DSEFSX0JJVCAqIFRZUEVfTEVOR1RIICh0eXBlKSkp CiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVlOwpAQCAtMTU3Nyw3ICsxNTcwLDcg QEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jcC12YWxwcmludC5jCiAgCiAg ICAgICAgLyogVWdoLCB3ZSBoYXZlIHRvIGNvbnZlcnQgYmFjayB0byBhIHZhbHVlIGhlcmUuICAq LwogICAgICAgIHZhbHVlID0gdmFsdWVfZnJvbV9jb250ZW50c19hbmRfYWRkcmVzcyAodHlwZSwg dmFsYWRkciArIG9mZnNldCwKLUBAIC00NjUsNyArNDY2LDcgQEAgY3BfcHJpbnRfdmFsdWVfZmll bGRzX3J0dGkgKHN0cnVjdCB0eXBlCitAQCAtNDYyLDcgKzQ2Myw3IEBAIGNwX3ByaW50X3ZhbHVl X2ZpZWxkc19ydHRpIChzdHJ1Y3QgdHlwZQogIAogIHN0YXRpYyB2b2lkCiAgY3BfcHJpbnRfdmFs dWUgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlLApAQCAtMTU4Niw3 ICsxNTc5LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jcC12YWxwcmlu dC5jCiAgCQlDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJCWlu dCByZWN1cnNlLCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCWNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotQEAgLTQ3NSw3ICs0NzYsNyBAQCBjcF9wcmludF92 YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjCitAQCAtNDcyLDcgKzQ3Myw3IEBAIGNwX3By aW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWMKICAgICAgPSAoc3RydWN0IHR5cGUg KiopIG9ic3RhY2tfbmV4dF9mcmVlICgmZG9udF9wcmludF92Yl9vYnN0YWNrKTsKICAgIHN0cnVj dCBvYnN0YWNrIHRtcF9vYnN0YWNrID0gZG9udF9wcmludF92Yl9vYnN0YWNrOwogICAgaW50IGks IG5fYmFzZWNsYXNzZXMgPSBUWVBFX05fQkFTRUNMQVNTRVMgKHR5cGUpOwpAQCAtMTU5NSw3ICsx NTg4LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jcC12YWxwcmludC5j CiAgICBzdHJ1Y3QgdHlwZSAqdGhpc3R5cGU7CiAgCiAgICBpZiAoZG9udF9wcmludF92YiA9PSAw KQotQEAgLTQ4OSw3ICs0OTAsNyBAQCBjcF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUs IHN0cnVjCitAQCAtNDg2LDcgKzQ4Nyw3IEBAIGNwX3ByaW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAq dHlwZSwgc3RydWMKICAKICAgIGZvciAoaSA9IDA7IGkgPCBuX2Jhc2VjbGFzc2VzOyBpKyspCiAg ICAgIHsKQEAgLTE2MDQsMTAgKzE1OTcsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi9jcC12YWxwcmludC5jCiAgICAgICAgaW50IHNraXA7CiAgICAgICAgc3RydWN0IHR5 cGUgKmJhc2VjbGFzcyA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfQkFTRUNMQVNTICh0eXBlLCBpKSk7 CiAgICAgICAgY29uc3QgY2hhciAqYmFzZW5hbWUgPSBUWVBFX05BTUUgKGJhc2VjbGFzcyk7Ci1J bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2QtbGFuZy5oCitJbmRleDogZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvZC1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy5vcmlnL2dkYi9kLWxhbmcuaAkyMDEzLTA4LTAyIDE2OjM4OjI2LjQzNjI5MjIw MSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kLWxhbmcuaAkyMDEzLTA4 LTAyIDE2OjM4OjMyLjM1MzMwMDcyNyArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3Jp Zy9nZGIvZC1sYW5nLmgJMjAxNC0wMi0wNiAxODowNzo1NC4zNTE5MTExMDQgKzAxMDAKKysrKyBn ZGItNy42LjkwLjIwMTQwMTI3L2dkYi9kLWxhbmcuaAkyMDE0LTAyLTA2IDE4OjA3OjU4LjkwODkx NjAwMSArMDEwMAogQEAgLTI1LDcgKzI1LDcgQEAKICBleHRlcm4gY2hhciAqZF9kZW1hbmdsZSAo Y29uc3QgY2hhciAqbWFuZ2xlZCwgaW50IG9wdGlvbnMpOwogIApAQCAtMTYxNywxMCArMTYxMCwx MCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2QtbGFuZy5oCiAgCQkJIHN0 cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFs dWUgKnZhbCwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMp OwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kLXZhbHByaW50LmMKK0luZGV4 OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9kLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9kLXZhbHByaW50LmMJMjAxMy0wOC0wMiAx NjozODoyNi40MzYyOTIyMDEgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIv ZC12YWxwcmludC5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzUzMzAwNzI3ICswMjAwCistLS0gZ2Ri LTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9kLXZhbHByaW50LmMJMjAxNC0wMi0wNiAxODowNzo1 NC4zNTE5MTExMDQgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9kLXZhbHByaW50 LmMJMjAxNC0wMi0wNiAxODowNzo1OC45MDk5MTYwMDEgKzAxMDAKIEBAIC0yOSw3ICsyOSw3IEBA CiAgCiAgc3RhdGljIGludApAQCAtMTY0MywxMSArMTYzNiwxMSBAQCBJbmRleDogZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL2QtdmFscHJpbnQuYwogICAgICAgICAgICAgICBjb25zdCBzdHJ1 Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7CiAgICBpbnQgcmV0OwotSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kb3VibGVzdC5jCitJbmRleDogZ2RiLTcuNi45 MC4yMDE0MDEyNy9nZGIvZG91Ymxlc3QuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzLm9yaWcvZ2RiL2RvdWJsZXN0LmMJMjAxMy0wOC0wMiAxNjozODoyNi40MzYyOTIy MDEgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZG91Ymxlc3QuYwkyMDEz LTA4LTAyIDE2OjM4OjMyLjM1NDMwMDcyOSArMDIwMAotQEAgLTc0NCw3ICs3NDQsNyBAQCBmbG9h dGZvcm1hdF9mcm9tX2RvdWJsZXN0IChjb25zdCBzdHJ1Y3QKKy0tLSBnZGItNy42LjkwLjIwMTQw MTI3Lm9yaWcvZ2RiL2RvdWJsZXN0LmMJMjAxNC0wMi0wNiAxODowNzo1NC4zNTE5MTExMDQgKzAx MDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9kb3VibGVzdC5jCTIwMTQtMDItMDYgMTg6 MDc6NTguOTA5OTE2MDAxICswMTAwCitAQCAtNzY3LDcgKzc2Nyw3IEBAIGZsb2F0Zm9ybWF0X2Zy b21fZG91Ymxlc3QgKGNvbnN0IHN0cnVjdAogICAgIGJ1dCBub3QgcGFzc2VkIG9uIGJ5IEdEQi4g IFRoaXMgc2hvdWxkIGJlIGZpeGVkLiAgKi8KICAKICBzdGF0aWMgY29uc3Qgc3RydWN0IGZsb2F0 Zm9ybWF0ICoKQEAgLTE2NTYsNyArMTY0OSw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvZG91Ymxlc3QuYwogIHsKICAgIGNvbnN0IHN0cnVjdCBmbG9hdGZvcm1hdCAqZm9y bWF0OwogIAotQEAgLTc3Miw4ICs3NzIsOCBAQCBmbG9hdGZvcm1hdF9mcm9tX2xlbmd0aCAoc3Ry dWN0IGdkYmFyY2gKK0BAIC03OTUsOCArNzk1LDggQEAgZmxvYXRmb3JtYXRfZnJvbV9sZW5ndGgg KHN0cnVjdCBnZGJhcmNoCiAgICBlbHNlCiAgICAgIGZvcm1hdCA9IE5VTEw7CiAgICBpZiAoZm9y bWF0ID09IE5VTEwpCkBAIC0xNjY3LDExICsxNjYwLDExIEBAIEluZGV4OiBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvZG91Ymxlc3QuYwogICAgcmV0dXJuIGZvcm1hdDsKICB9CiAgCi1JbmRl eDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2R3YXJmMmxvYy5jCitJbmRleDogZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvZHdhcmYybG9jLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9kd2FyZjJsb2MuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQz ODI5MjIwNCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kd2FyZjJsb2Mu YwkyMDEzLTA4LTAyIDE2OjQyOjExLjIxNzYwNzcwMyArMDIwMAotQEAgLTE3MTMsMTkgKzE3MTMs MTkgQEAgaW5zZXJ0X2JpdHMgKHVuc2lnbmVkIGludCBkYXR1bSwKKy0tLSBnZGItNy42LjkwLjIw MTQwMTI3Lm9yaWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTQtMDItMDYgMTg6MDc6NTQuMzUyOTExMTA1 ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZHdhcmYybG9jLmMJMjAxNC0wMi0w NiAxODowNzo1OC45MTA5MTYwMDMgKzAxMDAKK0BAIC0xNzA5LDE5ICsxNzA5LDE5IEBAIGluc2Vy dF9iaXRzICh1bnNpZ25lZCBpbnQgZGF0dW0sCiAgICAgQklUU19CSUdfRU5ESUFOIGlzIHRha2Vu IGRpcmVjdGx5IGZyb20gZ2RiYXJjaC4gICovCiAgCiAgc3RhdGljIHZvaWQKQEAgLTE2OTcsNyAr MTY5MCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZHdhcmYybG9jLmMK ICAKICAgIGRlc3RfYXZhaWwgPSA4IC0gZGVzdF9vZmZzZXRfYml0cyAlIDg7CiAgCi1AQCAtMTc2 MywxMyArMTc2MywxMyBAQCBzdGF0aWMgdm9pZAorQEAgLTE3NTksMTMgKzE3NTksMTMgQEAgc3Rh dGljIHZvaWQKICByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQogIHsKICAgIGlu dCBpOwpAQCAtMTcxMyw3ICsxNzA2LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi9kd2FyZjJsb2MuYwogICAgc2l6ZV90IGJ1ZmZlcl9zaXplID0gMDsKICAgIGdkYl9ieXRl ICpidWZmZXIgPSBOVUxMOwogICAgc3RydWN0IGNsZWFudXAgKmNsZWFudXA7Ci1AQCAtMTc5Niw4 ICsxNzk2LDggQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKK0BAIC0xNzky LDggKzE3OTIsOCBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQogICAgZm9y IChpID0gMDsgaSA8IGMtPm5fcGllY2VzICYmIG9mZnNldCA8IHR5cGVfbGVuOyBpKyspCiAgICAg IHsKICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBA IC0xNzI0LDcgKzE3MTcsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2R3 YXJmMmxvYy5jCiAgICAgICAgY29uc3QgZ2RiX2J5dGUgKmludGVybWVkaWF0ZV9idWZmZXI7CiAg CiAgICAgICAgLyogQ29tcHV0ZSBzaXplLCBzb3VyY2UsIGFuZCBkZXN0aW5hdGlvbiBvZmZzZXRz IGZvciBjb3B5aW5nLCBpbgotQEAgLTE5NDYsMTMgKzE5NDYsMTMgQEAgc3RhdGljIHZvaWQKK0BA IC0xOTQyLDEzICsxOTQyLDEzIEBAIHN0YXRpYyB2b2lkCiAgd3JpdGVfcGllY2VkX3ZhbHVlIChz dHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20pCiAgewogICAgaW50IGk7CkBAIC0x NzQwLDcgKzE3MzMsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2R3YXJm MmxvYy5jCiAgICBzaXplX3QgYnVmZmVyX3NpemUgPSAwOwogICAgZ2RiX2J5dGUgKmJ1ZmZlciA9 IE5VTEw7CiAgICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cDsKLUBAIC0xOTgwLDggKzE5ODAsOCBA QCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdG8sIHN0CitAQCAtMTk3Niw4ICsx OTc2LDggQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdAogICAgZm9y IChpID0gMDsgaSA8IGMtPm5fcGllY2VzICYmIG9mZnNldCA8IHR5cGVfbGVuOyBpKyspCiAgICAg IHsKICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBA IC0xNzUxLDcgKzE3NDQsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2R3 YXJmMmxvYy5jCiAgICAgICAgaW50IG5lZWRfYml0d2lzZTsKICAgICAgICBjb25zdCBnZGJfYnl0 ZSAqc291cmNlX2J1ZmZlcjsKICAKLUBAIC0yMTEwLDggKzIxMTAsOCBAQCB3cml0ZV9waWVjZWRf dmFsdWUgKHN0cnVjdCB2YWx1ZSAqdG8sIHN0CitAQCAtMjEwNyw4ICsyMTA3LDggQEAgd3JpdGVf cGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdAogICAgIGltcGxpY2l0IHBvaW50ZXIu ICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTE3NjIsNyArMTc1NSw3IEBAIEluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvZHdhcmYybG9jLmMKICAJCQkgZW51bSBkd2FyZl92YWx1ZV9s b2NhdGlvbiBjaGVja19mb3IpCiAgewogICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmMKLUBAIC0y MTI3LDcgKzIxMjcsNyBAQCBjaGVja19waWVjZWRfdmFsdWVfYml0cyAoY29uc3Qgc3RydWN0IHZh CitAQCAtMjEyNCw3ICsyMTI0LDcgQEAgY2hlY2tfcGllY2VkX3ZhbHVlX2JpdHMgKGNvbnN0IHN0 cnVjdCB2YQogICAgZm9yIChpID0gMDsgaSA8IGMtPm5fcGllY2VzICYmIGJpdF9sZW5ndGggPiAw OyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5w aWVjZXNbaV07CkBAIC0xNzcxLDcgKzE3NjQsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL2R3YXJmMmxvYy5jCiAgCiAgICAgICAgaWYgKGJpdF9vZmZzZXQgPiAwKQogIAl7 Ci1AQCAtMjE2NSw4ICsyMTY1LDggQEAgY2hlY2tfcGllY2VkX3ZhbHVlX2JpdHMgKGNvbnN0IHN0 cnVjdCB2YQorQEAgLTIxNjIsOCArMjE2Miw4IEBAIGNoZWNrX3BpZWNlZF92YWx1ZV9iaXRzIChj b25zdCBzdHJ1Y3QgdmEKICB9CiAgCiAgc3RhdGljIGludApAQCAtMTc4Miw3ICsxNzc1LDcgQEAg SW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kd2FyZjJsb2MuYwogIHsKICAgIHJl dHVybiBjaGVja19waWVjZWRfdmFsdWVfYml0cyAodmFsdWUsIGJpdF9vZmZzZXQsIGJpdF9sZW5n dGgsCiAgCQkJCSAgRFdBUkZfVkFMVUVfTUVNT1JZKTsKLUBAIC0yMTg0LDggKzIxODQsOCBAQCBj aGVja19waWVjZWRfdmFsdWVfaW52YWxpZCAoY29uc3Qgc3RydWN0CitAQCAtMjE4MSw4ICsyMTgx LDggQEAgY2hlY2tfcGllY2VkX3ZhbHVlX2ludmFsaWQgKGNvbnN0IHN0cnVjdAogICAgIGEgc3lu dGhldGljIHBvaW50ZXIuICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTE3OTMsNyArMTc4Niw3IEBA IEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZHdhcmYybG9jLmMKICB7CiAgICBy ZXR1cm4gY2hlY2tfcGllY2VkX3ZhbHVlX2JpdHMgKHZhbHVlLCBiaXRfb2Zmc2V0LCBiaXRfbGVu Z3RoLAogIAkJCQkgIERXQVJGX1ZBTFVFX0lNUExJQ0lUX1BPSU5URVIpOwotQEAgLTIyMTAsOSAr MjIxMCwxMCBAQCBpbmRpcmVjdF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsCitAQCAt MjIwNyw5ICsyMjA3LDEwIEBAIGluZGlyZWN0X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2 YWwKICAgIHN0cnVjdCB0eXBlICp0eXBlOwogICAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lOwog ICAgc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uIGJhdG9uOwpAQCAtMTgwNiw3ICsxNzk5LDcg QEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kd2FyZjJsb2MuYwogIAogICAg dHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZhbHVlKSk7CiAgICBpZiAoVFlQRV9D T0RFICh0eXBlKSAhPSBUWVBFX0NPREVfUFRSKQotQEAgLTIyMjYsNyArMjIyNyw3IEBAIGluZGly ZWN0X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWwKK0BAIC0yMjIzLDcgKzIyMjQsNyBA QCBpbmRpcmVjdF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsCiAgICBmb3IgKGkgPSAw OyBpIDwgYy0+bl9waWVjZXMgJiYgYml0X2xlbmd0aCA+IDA7IGkrKykKICAgICAgewogICAgICAg IHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKQEAgLTE4MTUsNyAr MTgwOCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZHdhcmYybG9jLmMK ICAKICAgICAgICBpZiAoYml0X29mZnNldCA+IDApCiAgCXsKLUBAIC0yNDY3LDcgKzI0NjgsNyBA QCBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2NfZnVsbCAoc3RydWN0IHR5CitAQCAtMjQ5MSw3ICsy NDkyLDcgQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eQogIAkgICAg c3RydWN0IHZhbHVlICp2YWx1ZSA9IGR3YXJmX2V4cHJfZmV0Y2ggKGN0eCwgMCk7CiAgCSAgICBn ZGJfYnl0ZSAqY29udGVudHM7CiAgCSAgICBjb25zdCBnZGJfYnl0ZSAqdmFsX2J5dGVzOwpAQCAt MTgyNCwxMSArMTgxNywxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2R3 YXJmMmxvYy5jCiAgCiAgCSAgICBpZiAoYnl0ZV9vZmZzZXQgKyBUWVBFX0xFTkdUSCAodHlwZSkg PiBuKQogIAkgICAgICBpbnZhbGlkX3N5bnRoZXRpY19wb2ludGVyICgpOwotSW5kZXg6IGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kd2FyZjJyZWFkLmMKK0luZGV4OiBnZGItNy42LjkwLjIw MTQwMTI3L2dkYi9kd2FyZjJyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxMy0wOC0wMiAxNjozODoyNi40NDEyOTIy MDggKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZHdhcmYycmVhZC5jCTIw MTMtMDgtMDIgMTY6Mzg6MzIuMzU4MzAwNzM1ICswMjAwCi1AQCAtMTI1OCwxMiArMTI1OCwxMiBA QCBkd2FyZjJfY29tcGxleF9sb2NhdGlvbl9leHByX2NvbXBsYWludCAoCistLS0gZ2RiLTcuNi45 MC4yMDE0MDEyNy5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxNC0wMi0wNiAxODowNzo1NC4zNTY5 MTExMDkgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9kd2FyZjJyZWFkLmMJMjAx NC0wMi0wNiAxODowNzo1OC45MTM5MTYwMDYgKzAxMDAKK0BAIC0xODkzLDEyICsxODkzLDEyIEBA IGR3YXJmMl9jb21wbGV4X2xvY2F0aW9uX2V4cHJfY29tcGxhaW50ICgKICB9CiAgCiAgc3RhdGlj IHZvaWQKQEAgLTE4NDUsNyArMTgzOCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIvZHdhcmYycmVhZC5jCiAgfQogIAogIHN0YXRpYyB2b2lkCi1AQCAtMTEyMTUsOCArMTEy MTUsOCBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwCitAQCAtMTIx OTAsOCArMTIxOTAsOCBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlw CiAgCSAgICAgICAgIG9iamVjdCwgYW5kIHRoZW4gc3VidHJhY3Qgb2ZmIHRoZSBudW1iZXIgb2Yg Yml0cyBvZgogIAkgICAgICAgICB0aGUgZmllbGQgaXRzZWxmLiAgVGhlIHJlc3VsdCBpcyB0aGUg Yml0IG9mZnNldCBvZgogIAkgICAgICAgICB0aGUgTFNCIG9mIHRoZSBmaWVsZC4gICovCkBAIC0x ODU2LDExICsxODQ5LDExIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZHdh cmYycmVhZC5jCiAgCiAgCSAgICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9ieXRl X3NpemUsIGN1KTsKICAJICAgICAgaWYgKGF0dHIpCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL2V2YWwuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2V2YWwuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2V2YWwuYwky MDEzLTA4LTAyIDE2OjM4OjI2LjQ0MzI5MjIxMSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi9ldmFsLmMJMjAxMy0wOC0wMiAxNjozODozMi4zNTkzMDA3MzYgKzAyMDAKLUBA IC0yOTQsNyArMjk0LDggQEAgZXZhbHVhdGVfc3RydWN0X3R1cGxlIChzdHJ1Y3QgdmFsdWUgKnN0 cgorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvZXZhbC5jCTIwMTQtMDItMDYgMTg6 MDc6NTQuMzU4OTExMTExICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZXZhbC5j CTIwMTQtMDItMDYgMTg6MDc6NTguOTE0OTE2MDA3ICswMTAwCitAQCAtMjk4LDcgKzI5OCw4IEBA IGV2YWx1YXRlX3N0cnVjdF90dXBsZSAoc3RydWN0IHZhbHVlICpzdHIKICAgIHdoaWxlICgtLW5h cmdzID49IDApCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbCA9IE5VTEw7CkBAIC0x ODcwLDcgKzE4NjMsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2V2YWwu YwogICAgICAgIGJmZF9ieXRlICphZGRyOwogIAogICAgICAgIGZpZWxkbm8rKzsKLUBAIC0zNTYs NyArMzU3LDcgQEAgaW5pdF9hcnJheV9lbGVtZW50IChzdHJ1Y3QgdmFsdWUgKmFycmF5LAorQEAg LTM2MCw3ICszNjEsNyBAQCBpbml0X2FycmF5X2VsZW1lbnQgKHN0cnVjdCB2YWx1ZSAqYXJyYXks CiAgCQkgICAgZW51bSBub3NpZGUgbm9zaWRlLCBMT05HRVNUIGxvd19ib3VuZCwgTE9OR0VTVCBo aWdoX2JvdW5kKQogIHsKICAgIExPTkdFU1QgaW5kZXg7CkBAIC0xODc5LDcgKzE4NzIsNyBAQCBJ bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2V2YWwuYwogIAogICAgaWYgKGV4cC0+ ZWx0c1sqcG9zXS5vcGNvZGUgPT0gQklOT1BfQ09NTUEpCiAgICAgIHsKLUBAIC03MTMsMTEgKzcx NCwxMSBAQCBiaW5vcF9wcm9tb3RlIChjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmCitAQCAtNzE4 LDExICs3MTksMTEgQEAgYmlub3BfcHJvbW90ZSAoY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZgog ICAgICAvKiBGSVhNRTogQWxzbyBtaXhlZCBpbnRlZ3JhbC9ib29sZWFucywgd2l0aCByZXN1bHQg YW4gaW50ZWdlci4gICovCiAgICAgIHsKICAgICAgICBjb25zdCBzdHJ1Y3QgYnVpbHRpbl90eXBl ICpidWlsdGluID0gYnVpbHRpbl90eXBlIChnZGJhcmNoKTsKQEAgLTE4OTQsNyArMTg4Nyw3IEBA IEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZXZhbC5jCiAgICAgICAgaW50IHVu c2lnbmVkX29wZXJhdGlvbjsKICAKICAgICAgICAvKiBEZXRlcm1pbmUgdHlwZSBsZW5ndGggYW5k IHNpZ25lZG5lc3MgYWZ0ZXIgcHJvbW90aW9uIGZvcgotQEAgLTkwMCw3ICs5MDEsNyBAQCBldmFs dWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICplCitAQCAtOTA1LDcgKzkwNiw3IEBA IGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmUKICAgIHN0cnVjdCB2YWx1 ZSAqKmFyZ3ZlYzsKICAgIGludCBjb2RlOwogICAgaW50IGl4OwpAQCAtMTkwMyw3ICsxODk2LDcg QEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9ldmFsLmMKICAgIHN0cnVjdCB0 eXBlICoqYXJnX3R5cGVzOwogICAgaW50IHNhdmVfcG9zMTsKICAgIHN0cnVjdCBzeW1ib2wgKmZ1 bmN0aW9uID0gTlVMTDsKLUBAIC0xMDgwLDcgKzEwODEsNyBAQCBldmFsdWF0ZV9zdWJleHBfc3Rh bmRhcmQgKHN0cnVjdCB0eXBlICplCitAQCAtMTA4NSw3ICsxMDg2LDcgQEAgZXZhbHVhdGVfc3Vi ZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZQogIAkgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBl ID0gVFlQRV9JTkRFWF9UWVBFICh0eXBlKTsKICAJICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBl ID0gVFlQRV9UQVJHRVRfVFlQRSAodHlwZSk7CiAgCSAgc3RydWN0IHZhbHVlICphcnJheSA9IGFs bG9jYXRlX3ZhbHVlIChleHBlY3RfdHlwZSk7CkBAIC0xOTEyLDcgKzE5MDUsNyBAQCBJbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2V2YWwuYwogIAkgIExPTkdFU1QgbG93X2JvdW5k LCBoaWdoX2JvdW5kLCBpbmRleDsKICAKICAJICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFu Z2VfdHlwZSwgJmxvd19ib3VuZCwgJmhpZ2hfYm91bmQpIDwgMCkKLUBAIC0yMDc1LDcgKzIwNzYs OCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICplCitAQCAtMjA4MCw3 ICsyMDgxLDggQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZQogICAg ICAgIHsKICAgICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnMSk7CiAg ICAgICAgICBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlOwpAQCAtMTkyMiwxMSArMTkxNSwxMSBAQCBJ bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2V2YWwuYwogIAlzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyBvcHRzOwogIAogIAlnZXRfdXNlcl9wcmludF9vcHRpb25zICgmb3B0cyk7 Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2YtbGFuZy5jCitJbmRleDogZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvZi1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9mLWxhbmcuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ0MzI5 MjIxMSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9mLWxhbmcuYwkyMDEz LTA4LTAyIDE2OjM4OjMyLjM1OTMwMDczNiArMDIwMAotQEAgLTEwMyw3ICsxMDMsNyBAQCBmX3By aW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLCBzCistLS0gZ2RiLTcuNi45MC4yMDE0 MDEyNy5vcmlnL2dkYi9mLWxhbmcuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM1ODkxMTExMSArMDEw MAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2YtbGFuZy5jCTIwMTQtMDItMDYgMTg6MDc6 NTguOTE0OTE2MDA3ICswMTAwCitAQCAtMTA0LDcgKzEwNCw3IEBAIGZfcHJpbnRjaGFyIChpbnQg Yywgc3RydWN0IHR5cGUgKnR5cGUsIHMKICAKICBzdGF0aWMgdm9pZAogIGZfcHJpbnRzdHIgKHN0 cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAq c3RyaW5nLApAQCAtMTkzNSwxMCArMTkyOCwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL2YtbGFuZy5jCiAgCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyAqb3B0aW9ucykKICB7CiAgICBjb25zdCBjaGFyICp0eXBlX2VuY29kaW5nID0gZl9nZXRfZW5j b2RpbmcgKHR5cGUpOwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9mLWxhbmcu aAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2YtbGFuZy5oCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvZi1sYW5nLmgJMjAxMy0wOC0wMiAx NjozODoyNi40NDMyOTIyMTEgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIv Zi1sYW5nLmgJMjAxMy0wOC0wMiAxNjozODozMi4zNTkzMDA3MzYgKzAyMDAKKy0tLSBnZGItNy42 LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2YtbGFuZy5oCTIwMTQtMDItMDYgMTg6MDc6NTQuMzU4OTEx MTExICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZi1sYW5nLmgJMjAxNC0wMi0w NiAxODowNzo1OC45MTQ5MTYwMDcgKzAxMDAKIEBAIC0zMyw3ICszMyw3IEBAIGV4dGVybiBjb25z dCBjaGFyICpmX29iamVjdF9hZGRyZXNzX2RhdGEKICAgIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSk7CiAgZXh0ZXJuIHZvaWQgZl9vYmplY3RfYWRkcmVzc19kYXRh X3ZhbGlkX29yX2Vycm9yIChzdHJ1Y3QgdHlwZSAqdHlwZSk7CkBAIC0xOTQ4LDEwICsxOTQxLDEw IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZi1sYW5nLmgKICAJCQkgc3Ry dWN0IHVpX2ZpbGUgKiwgaW50LAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL2YtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2Ri L2YtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9y aWcvZ2RiL2YtdmFscHJpbnQuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ0NDI5MjIxMiArMDIwMAot KysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9mLXZhbHByaW50LmMJMjAxMy0wOC0wMiAx NjozODozMi4zNTkzMDA3MzYgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2Ri L2YtdmFscHJpbnQuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM1OTkxMTExMiArMDEwMAorKysrIGdk Yi03LjYuOTAuMjAxNDAxMjcvZ2RiL2YtdmFscHJpbnQuYwkyMDE0LTAyLTA2IDE4OjA3OjU4Ljkx NTkxNjAwOCArMDEwMAogQEAgLTQzLDcgKzQzLDcgQEAgc3RhdGljIHZvaWQgZjc3X2NyZWF0ZV9h cnJheXByaW50X29mZnNldAogIAkJCQkJICAgICAgc3RydWN0IHVpX2ZpbGUgKik7CiAgc3RhdGlj IHZvaWQgZjc3X2dldF9keW5hbWljX2xlbmd0aF9vZl9hZ2dyZWdhdGUgKHN0cnVjdCB0eXBlICop OwpAQCAtMjAxNiwxMSArMjAwOSwxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMv Z2RiL2YtdmFscHJpbnQuYwogIAogICAgICAgICAgICB2YWxfcHJpbnQgKFRZUEVfRklFTERfVFlQ RSAodHlwZSwgaW5kZXgpLCB2YWxhZGRyLAogIAkJICAgICBlbWJlZGRlZF9vZmZzZXQgKyBvZmZz ZXQsCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2ZpbmR2YXIuYworSW5kZXg6 IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2ZpbmR2YXIuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2ZpbmR2YXIuYwkyMDEzLTA4LTAyIDE2OjM4OjI2 LjQ0NDI5MjIxMiArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9maW5kdmFy LmMJMjAxMy0wOC0wMiAxNjozODozMi4zNjAzMDA3MzggKzAyMDAKLUBAIC02NTIsNyArNjUyLDcg QEAgZGVmYXVsdF92YWx1ZV9mcm9tX3JlZ2lzdGVyIChzdHJ1Y3QgdHlwZQorLS0tIGdkYi03LjYu OTAuMjAxNDAxMjcub3JpZy9nZGIvZmluZHZhci5jCTIwMTQtMDItMDYgMTg6MDc6NTQuMzU5OTEx MTEyICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZmluZHZhci5jCTIwMTQtMDIt MDYgMTg6MDc6NTguOTE1OTE2MDA4ICswMTAwCitAQCAtNjIzLDcgKzYyMyw3IEBAIGRlZmF1bHRf dmFsdWVfZnJvbV9yZWdpc3RlciAoc3RydWN0IHR5cGUKICAJCQkgICAgIHN0cnVjdCBmcmFtZV9p bmZvICpmcmFtZSkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9h cmNoIChmcmFtZSk7CkBAIC0yMDI5LDcgKzIwMjIsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL2ZpbmR2YXIuYwogICAgc3RydWN0IHZhbHVlICp2YWx1ZSA9IGFsbG9jYXRl X3ZhbHVlICh0eXBlKTsKICAKICAgIFZBTFVFX0xWQUwgKHZhbHVlKSA9IGx2YWxfcmVnaXN0ZXI7 Ci1AQCAtNjg1LDEwICs2ODUsMTAgQEAgdm9pZAorQEAgLTY1NiwxMCArNjU2LDEwIEBAIHZvaWQK ICByZWFkX2ZyYW1lX3JlZ2lzdGVyX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3Qg ZnJhbWVfaW5mbyAqZnJhbWUpCiAgewogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRf ZnJhbWVfYXJjaCAoZnJhbWUpOwpAQCAtMjA0Myw3ICsyMDM2LDcgQEAgSW5kZXg6IGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzL2dkYi9maW5kdmFyLmMKICAKICAgIGdkYl9hc3NlcnQgKFZBTFVFX0xW QUwgKHZhbHVlKSA9PSBsdmFsX3JlZ2lzdGVyKTsKICAKLUBAIC03MDMsNyArNzAzLDcgQEAgcmVh ZF9mcmFtZV9yZWdpc3Rlcl92YWx1ZSAoc3RydWN0IHZhbHVlCitAQCAtNjc0LDcgKzY3NCw3IEBA IHJlYWRfZnJhbWVfcmVnaXN0ZXJfdmFsdWUgKHN0cnVjdCB2YWx1ZQogICAgd2hpbGUgKGxlbiA+ IDApCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKnJlZ3ZhbCA9IGdldF9mcmFtZV9yZWdp c3Rlcl92YWx1ZSAoZnJhbWUsIHJlZ251bSk7CkBAIC0yMDUyLDExICsyMDQ1LDExIEBAIEluZGV4 OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZmluZHZhci5jCiAgCiAgICAgICAgaWYgKHZh bHVlX29wdGltaXplZF9vdXQgKHJlZ3ZhbCkpCiAgCXsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvZnJhbWUuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2ZyYW1l LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9mcmFt ZS5jCTIwMTMtMDgtMDIgMTY6Mzg6MjYuNDQ1MjkyMjE0ICswMjAwCi0rKysgZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL2ZyYW1lLmMJMjAxMy0wOC0wMiAxNjozODozMi4zNjAzMDA3MzggKzAy MDAKLUBAIC0xMTgyLDcgKzExODIsNyBAQCBkZXByZWNhdGVkX2ZyYW1lX3JlZ2lzdGVyX3JlYWQg KHN0cnVjdCBmCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9mcmFtZS5jCTIwMTQt MDItMDYgMTg6MDc6NTQuMzYwOTExMTEzICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvZnJhbWUuYwkyMDE0LTAyLTA2IDE4OjA3OjU4LjkxNTkxNjAwOCArMDEwMAorQEAgLTEyNDcs NyArMTI0Nyw3IEBAIGRlcHJlY2F0ZWRfZnJhbWVfcmVnaXN0ZXJfcmVhZCAoc3RydWN0IGYKICAK ICBpbnQKICBnZXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFt ZSwgaW50IHJlZ251bSwKQEAgLTIwNjUsNyArMjA1OCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvZnJhbWUuYwogIAkJCSAgaW50ICpvcHRpbWl6ZWRwLCBpbnQgKnVuYXZh aWxhYmxlcCkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9hcmNo IChmcmFtZSk7Ci1AQCAtMTIxMSw3ICsxMjExLDcgQEAgZ2V0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVz IChzdHJ1Y3QgZnJhbWVfaQorQEAgLTEyNzYsNyArMTI3Niw3IEBAIGdldF9mcmFtZV9yZWdpc3Rl cl9ieXRlcyAoc3RydWN0IGZyYW1lX2kKICAgICAgfQogICAgaWYgKGxlbiA+IG1heHNpemUpCiAg ICAgIGVycm9yIChfKCJCYWQgZGVidWcgaW5mb3JtYXRpb24gZGV0ZWN0ZWQ6ICIKQEAgLTIwNzQs MTEgKzIwNjcsMTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9mcmFtZS5j CiAgCiAgICAvKiBDb3B5IHRoZSBkYXRhLiAgKi8KICAgIHdoaWxlIChsZW4gPiAwKQotSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9mcmFtZS5oCitJbmRleDogZ2RiLTcuNi45MC4y MDE0MDEyNy9nZGIvZnJhbWUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzLm9yaWcvZ2RiL2ZyYW1lLmgJMjAxMy0wOC0wMiAxNjozODoyNi40NDUyOTIyMTQgKzAyMDAK LSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZnJhbWUuaAkyMDEzLTA4LTAyIDE2OjM4 OjMyLjM2MDMwMDczOCArMDIwMAotQEAgLTUzMiw3ICs1MzIsNyBAQCBleHRlcm4gdm9pZCBwdXRf ZnJhbWVfcmVnaXN0ZXIgKHN0cnVjdCBmCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dk Yi9mcmFtZS5oCTIwMTQtMDItMDYgMTg6MDc6NTQuMzYwOTExMTEzICswMTAwCisrKysgZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvZnJhbWUuaAkyMDE0LTAyLTA2IDE4OjA3OjU4LjkxNjkxNjAwOSAr MDEwMAorQEAgLTU1Niw3ICs1NTYsNyBAQCBleHRlcm4gdm9pZCBwdXRfZnJhbWVfcmVnaXN0ZXIg KHN0cnVjdCBmCiAgICAgY29udGVudHMgYXJlIG9wdGltaXplZCBvdXQgb3IgdW5hdmFpbGFibGUs IHNldCAqT1BUSU1JWkVEUCwKICAgICAqVU5BVkFJTEFCTEVQIGFjY29yZGluZ2x5LiAgKi8KICBl eHRlcm4gaW50IGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoc3RydWN0IGZyYW1lX2luZm8gKmZy YW1lLCBpbnQgcmVnbnVtLApAQCAtMjA4NywxMSArMjA4MCwxMSBAQCBJbmRleDogZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL2ZyYW1lLmgKICAJCQkJICAgICBnZGJfYnl0ZSAqbXlhZGRyLAog IAkJCQkgICAgIGludCAqb3B0aW1pemVkcCwgaW50ICp1bmF2YWlsYWJsZXApOwogIAotSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9nZGJ0eXBlcy5jCitJbmRleDogZ2RiLTcuNi45 MC4yMDE0MDEyNy9nZGIvZ2RidHlwZXMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzLm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxMy0wOC0wMiAxNjozODoyNi40NDYyOTIy MTUgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZ2RidHlwZXMuYwkyMDEz LTA4LTAyIDE2OjM4OjMyLjM2MTMwMDczOSArMDIwMAotQEAgLTIwOTEsNyArMjA5MSw3IEBAIGFs bG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnVjdCB0eXBlICp0eXAKKy0tLSBnZGItNy42LjkwLjIw MTQwMTI3Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNC0wMi0wNiAxODowNzo1NC4zNjE5MTExMTQg KzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9nZGJ0eXBlcy5jCTIwMTQtMDItMDYg MTg6MDc6NTguOTE2OTE2MDA5ICswMTAwCitAQCAtMjEwOCw3ICsyMTA4LDcgQEAgYWxsb2NhdGVf Z25hdF9hdXhfdHlwZSAoc3RydWN0IHR5cGUgKnR5cAogICAgIGxlYXN0IGFzIGxvbmcgYXMgT0JK RklMRS4gICovCiAgCiAgc3RydWN0IHR5cGUgKgpAQCAtMjEwMCw3ICsyMDkzLDcgQEAgSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9nZGJ0eXBlcy5jCiAgCSAgIGNvbnN0IGNoYXIg Km5hbWUsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogIHsKICAgIHN0cnVjdCB0eXBlICp0eXBl OwotQEAgLTIzMjIsOCArMjMyMiw4IEBAIGlzX3B1YmxpY19hbmNlc3RvciAoc3RydWN0IHR5cGUg KmJhc2UsIHMKK0BAIC0yMzM5LDggKzIzMzksOCBAQCBpc19wdWJsaWNfYW5jZXN0b3IgKHN0cnVj dCB0eXBlICpiYXNlLCBzCiAgCiAgc3RhdGljIGludAogIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3Jr ZXIgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdHlwZSAqZGNsYXNzLApAQCAtMjExMSw3ICsy MTA0LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9nZGJ0eXBlcy5jCiAg CQkJICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB2YWx1ZSAqdmFsKQogIHsKICAgIGludCBp LCBjb3VudCA9IDA7Ci1AQCAtMjMzNCw3ICsyMzM0LDcgQEAgaXNfdW5pcXVlX2FuY2VzdG9yX3dv cmtlciAoc3RydWN0IHR5cGUgKgorQEAgLTIzNTEsNyArMjM1MSw3IEBAIGlzX3VuaXF1ZV9hbmNl c3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICoKICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX05fQkFT RUNMQVNTRVMgKGRjbGFzcykgJiYgY291bnQgPCAyOyArK2kpCiAgICAgIHsKICAgICAgICBzdHJ1 Y3QgdHlwZSAqaXRlcjsKQEAgLTIxMjAsNyArMjExMyw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvZ2RidHlwZXMuYwogIAogICAgICAgIGl0ZXIgPSBjaGVja190eXBlZGVm IChUWVBFX0JBU0VDTEFTUyAoZGNsYXNzLCBpKSk7CiAgCi1AQCAtMjM3NSw3ICsyMzc1LDcgQEAg aXNfdW5pcXVlX2FuY2VzdG9yX3dvcmtlciAoc3RydWN0IHR5cGUgKgorQEAgLTIzOTIsNyArMjM5 Miw3IEBAIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICoKICBpbnQKICBp c191bmlxdWVfYW5jZXN0b3IgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdmFsdWUgKnZhbCkK ICB7CkBAIC0yMTI5LDcgKzIxMjIsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMv Z2RiL2dkYnR5cGVzLmMKICAKICAgIHJldHVybiBpc191bmlxdWVfYW5jZXN0b3Jfd29ya2VyIChi YXNlLCB2YWx1ZV90eXBlICh2YWwpLCAmb2Zmc2V0LAogIAkJCQkgICAgdmFsdWVfY29udGVudHNf Zm9yX3ByaW50aW5nICh2YWwpLAotQEAgLTMzMDMsNyArMzMwMyw3IEBAIHJlY3Vyc2l2ZV9kdW1w X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTM1MzAsNyArMzUzMCw3IEBAIHJlY3Vyc2l2 ZV9kdW1wX3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLAogICAgICAgIGJyZWFrOwogICAgICB9CiAg ICBwdXRzX2ZpbHRlcmVkICgiXG4iKTsKQEAgLTIxMzgsNyArMjEzMSw3IEBAIEluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZ2RidHlwZXMuYwogICAgaWYgKFRZUEVfT0JKRklMRV9P V05FRCAodHlwZSkpCiAgICAgIHsKICAgICAgICBwcmludGZpX2ZpbHRlcmVkIChzcGFjZXMsICJv YmpmaWxlICIpOwotQEAgLTM0MjcsOCArMzQyNyw4IEBAIHJlY3Vyc2l2ZV9kdW1wX3R5cGUgKHN0 cnVjdCB0eXBlICp0eXBlLAorQEAgLTM2NTQsOCArMzY1NCw4IEBAIHJlY3Vyc2l2ZV9kdW1wX3R5 cGUgKHN0cnVjdCB0eXBlICp0eXBlLAogIAkJCSAgaWR4LCBwbG9uZ2VzdCAoVFlQRV9GSUVMRF9F TlVNVkFMICh0eXBlLCBpZHgpKSk7CiAgICAgICAgZWxzZQogIAlwcmludGZpX2ZpbHRlcmVkIChz cGFjZXMgKyAyLApAQCAtMjE0OSw3ICsyMTQyLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi9nZGJ0eXBlcy5jCiAgCQkJICBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGlk eCkpOwogICAgICAgIGdkYl9wcmludF9ob3N0X2FkZHJlc3MgKFRZUEVfRklFTERfVFlQRSAodHlw ZSwgaWR4KSwgZ2RiX3N0ZG91dCk7CiAgICAgICAgcHJpbnRmX2ZpbHRlcmVkICgiIG5hbWUgJyVz JyAoIiwKLUBAIC0zOTQyLDcgKzM5NDIsNyBAQCBjb3B5X3R5cGUgKGNvbnN0IHN0cnVjdCB0eXBl ICp0eXBlKQorQEAgLTQxNjksNyArNDE2OSw3IEBAIGNvcHlfdHlwZSAoY29uc3Qgc3RydWN0IHR5 cGUgKnR5cGUpCiAgCiAgc3RydWN0IHR5cGUgKgogIGFyY2hfdHlwZSAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsCkBAIC0yMTU4LDEwICsyMTUxLDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvZ2RidHlwZXMuYwogIHsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwogIAotSW5k ZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9nZGJ0eXBlcy5oCitJbmRleDogZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvZ2RidHlwZXMuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2dkYnR5cGVzLmgJMjAxMy0wOC0wMiAxNjozODoyNi40NDcy OTIyMTcgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZ2RidHlwZXMuaAky MDEzLTA4LTAyIDE2OjM4OjMyLjM2MTMwMDczOSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAx Mjcub3JpZy9nZGIvZ2RidHlwZXMuaAkyMDE0LTAyLTA2IDE4OjA3OjU0LjM2MjkxMTExNSArMDEw MAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2dkYnR5cGVzLmgJMjAxNC0wMi0wNiAxODox MTo0Ni40MzExNjA2NTAgKzAxMDAKIEBAIC02MDYsNyArNjA2LDcgQEAgc3RydWN0IG1haW5fdHlw ZQogIAkgICBnZGJhcmNoX2JpdHNfYmlnX2VuZGlhbj0wIHRhcmdldHMsIGl0IGlzIHRoZSBiaXQg b2Zmc2V0IHRvCiAgCSAgIHRoZSBMU0IuICAqLwpAQCAtMjE4MCw4ICsyMTczLDggQEAgSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9nZGJ0eXBlcy5oCiAgCiAgICAvKiBDb3JlIHR5 cGUsIHNoYXJlZCBieSBhIGdyb3VwIG9mIHF1YWxpZmllZCB0eXBlcy4gICovCiAgICBzdHJ1Y3Qg bWFpbl90eXBlICptYWluX3R5cGU7Ci1AQCAtMTU0MiwxMSArMTU0MiwxMiBAQCBleHRlcm4gc3Ry dWN0IHR5cGUgKmFsbG9jX3R5cGVfY29weSAoY29uCi0gZXh0ZXJuIHN0cnVjdCBnZGJhcmNoICpn ZXRfdHlwZV9hcmNoIChjb25zdCBzdHJ1Y3QgdHlwZSAqKTsKK0BAIC0xNTQ2LDExICsxNTQ2LDEy IEBAIGV4dGVybiBzdHJ1Y3QgZ2RiYXJjaCAqZ2V0X3R5cGVfYXJjaCAoY28KKyBleHRlcm4gc3Ry dWN0IHR5cGUgKmdldF90YXJnZXRfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUpOwogIAogIC8qIEhl bHBlciBmdW5jdGlvbiB0byBjb25zdHJ1Y3Qgb2JqZmlsZS1vd25lZCB0eXBlcy4gICovCiAtZXh0 ZXJuIHN0cnVjdCB0eXBlICppbml0X3R5cGUgKGVudW0gdHlwZV9jb2RlLCBpbnQsIGludCwgY29u c3QgY2hhciAqLApAQCAtMjE5NSwxMCArMjE4OCwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL2dkYnR5cGVzLmgKICBleHRlcm4gc3RydWN0IHR5cGUgKmFyY2hfaW50ZWdl cl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBpbnQsIGludCwgY2hhciAqKTsKICBleHRlcm4gc3Ry dWN0IHR5cGUgKmFyY2hfY2hhcmFjdGVyX3R5cGUgKHN0cnVjdCBnZGJhcmNoICosIGludCwgaW50 LCBjaGFyICopOwogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF9ib29sZWFuX3R5cGUgKHN0cnVj dCBnZGJhcmNoICosIGludCwgaW50LCBjaGFyICopOwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi9nbnUtdjItYWJpLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9n bnUtdjItYWJpLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmln L2dkYi9nbnUtdjItYWJpLmMJMjAxMy0wOC0wMiAxNjozODoyNi40NDcyOTIyMTcgKzAyMDAKLSsr KyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZ251LXYyLWFiaS5jCTIwMTMtMDgtMDIgMTY6 Mzg6MzIuMzYyMzAwNzQwICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9n bnUtdjItYWJpLmMJMjAxNC0wMi0wNiAxODowNzo1NC4zNjI5MTExMTUgKzAxMDAKKysrKyBnZGIt Ny42LjkwLjIwMTQwMTI3L2dkYi9nbnUtdjItYWJpLmMJMjAxNC0wMi0wNiAxODowNzo1OC45MTc5 MTYwMTAgKzAxMDAKIEBAIC04NSw3ICs4NSw3IEBAIGdudXYyX2lzX29wZXJhdG9yX25hbWUgKGNv bnN0IGNoYXIgKm5hbWUKICAgICBUWVBFIGlzIHRoZSB0eXBlIGluIHdoaWNoIEYgaXMgbG9jYXRl ZC4gICovCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC0yMjUwLDEwICsyMjQzLDEwIEBAIElu ZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZ251LXYyLWFiaS5jCiAgCSAgICBnbnV2 Ml9iYXNlY2xhc3Nfb2Zmc2V0ICh0eXBlLCBpLCB2YWxhZGRyLAogIAkJCQkgICAgZW1iZWRkZWRf b2Zmc2V0LCBhZGRyZXNzLCB2YWwpOwogIAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi9nbnUtdjMtYWJpLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9nbnUtdjMt YWJpLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9n bnUtdjMtYWJpLmMJMjAxMy0wOC0wMiAxNjozODoyNi40NDgyOTIyMTggKzAyMDAKLSsrKyBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZ251LXYzLWFiaS5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIu MzYyMzAwNzQwICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9nbnUtdjMt YWJpLmMJMjAxNC0wMi0wNiAxODowNzo1NC4zNjM5MTExMTYgKzAxMDAKKysrKyBnZGItNy42Ljkw LjIwMTQwMTI3L2dkYi9nbnUtdjMtYWJpLmMJMjAxNC0wMi0wNiAxODowNzo1OC45MTg5MTYwMTEg KzAxMDAKIEBAIC0xMTIsNyArMTEyLDcgQEAgYnVpbGRfZ2RiX3Z0YWJsZV90eXBlIChzdHJ1Y3Qg Z2RiYXJjaCAqYQogIHsKICAgIHN0cnVjdCB0eXBlICp0OwpAQCAtMjMyOCwxMCArMjMyMSwxMCBA QCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2dudS12My1hYmkuYwogICAgICAg IHN0cnVjdCB0eXBlICpiYXNldHlwZTsKICAKICAgICAgICBpZiAoQkFTRVRZUEVfVklBX1ZJUlRV QUwgKGRvbWFpbiwgaSkpCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2dvLWxh bmcuaAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2dvLWxhbmcuaAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2dvLWxhbmcuaAkyMDEzLTA4 LTAyIDE2OjM4OjI2LjQ0ODI5MjIxOCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi9nby1sYW5nLmgJMjAxMy0wOC0wMiAxNjozODozMi4zNjIzMDA3NDAgKzAyMDAKKy0tLSBn ZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2dvLWxhbmcuaAkyMDE0LTAyLTA2IDE4OjA3OjU0 LjM2MzkxMTExNiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2dvLWxhbmcuaAky MDE0LTAyLTA2IDE4OjA3OjU4LjkxODkxNjAxMSArMDEwMAogQEAgLTgzLDcgKzgzLDcgQEAgZXh0 ZXJuIHZvaWQgZ29fcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKgogIC8qIERlZmluZWQgaW4gZ28t dmFscHJpbnQuYy4gICovCiAgCkBAIC0yMzQxLDEwICsyMzM0LDEwIEBAIEluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvZ28tbGFuZy5oCiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtLCBpbnQgcmVjdXJzZSwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9nby12YWxwcmludC5jCitJbmRleDogZ2RiLTcuNi45MC4y MDE0MDEyNy9nZGIvZ28tdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzLm9yaWcvZ2RiL2dvLXZhbHByaW50LmMJMjAxMy0wOC0wMiAxNjozODoyNi40NDgy OTIyMTggKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZ28tdmFscHJpbnQu YwkyMDEzLTA4LTAyIDE2OjM4OjMyLjM2MjMwMDc0MCArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAx NDAxMjcub3JpZy9nZGIvZ28tdmFscHJpbnQuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM2MzkxMTEx NiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2dvLXZhbHByaW50LmMJMjAxNC0w Mi0wNiAxODowNzo1OC45MTg5MTYwMTEgKzAxMDAKIEBAIC0zNyw3ICszNyw3IEBACiAgCiAgc3Rh dGljIHZvaWQKQEAgLTIzNjcsMTAgKzIzNjAsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi9nby12YWxwcmludC5jCiAgCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICpvcHRpb25zKQogIHsKICAgIENIRUNLX1RZUEVERUYgKHR5cGUpOwotSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9pMzg2LW5hdC5jCitJbmRleDogZ2RiLTcuNi45 MC4yMDE0MDEyNy9nZGIvaTM4Ni1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzLm9yaWcvZ2RiL2kzODYtbmF0LmMJMjAxMy0wOC0wMiAxNjozODoyNi40NDgyOTIy MTggKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvaTM4Ni1uYXQuYwkyMDEz LTA4LTAyIDE2OjM4OjMyLjM2MjMwMDc0MCArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcu b3JpZy9nZGIvaTM4Ni1uYXQuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM2MzkxMTExNiArMDEwMAor KysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2kzODYtbmF0LmMJMjAxNC0wMi0wNiAxODowNzo1 OC45MTg5MTYwMTEgKzAxMDAKIEBAIC0yOTAsNyArMjkwLDcgQEAgc3RhdGljIGludCBpMzg2X3Jl bW92ZV9hbGlnbmVkX3dhdGNocG9pbgogICAgIHZhbGlkIHZhbHVlLCBib21icyB0aHJvdWdoIGlu dGVybmFsX2Vycm9yLiAgKi8KICBzdGF0aWMgaW50IGkzODZfaGFuZGxlX25vbmFsaWduZWRfd2F0 Y2hwb2ludCAoc3RydWN0IGkzODZfZGVidWdfcmVnX3N0YXRlICpzdGF0ZSwKQEAgLTI0MDAsMTAg KzIzOTMsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9pMzg2LW5hdC5j CiAgewogICAgc3RydWN0IGkzODZfZGVidWdfcmVnX3N0YXRlICpzdGF0ZQogICAgICA9IGkzODZf ZGVidWdfcmVnX3N0YXRlIChwdGlkX2dldF9waWQgKGluZmVyaW9yX3B0aWQpKTsKLUluZGV4OiBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvaW5mLXR0cmFjZS5jCitJbmRleDogZ2RiLTcuNi45 MC4yMDE0MDEyNy9nZGIvaW5mLXR0cmFjZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMub3JpZy9nZGIvaW5mLXR0cmFjZS5jCTIwMTMtMDgtMDIgMTY6Mzg6MjYuNDQ5 MjkyMjIwICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2luZi10dHJhY2Uu YwkyMDEzLTA4LTAyIDE2OjM4OjMyLjM2MzMwMDc0MiArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAx NDAxMjcub3JpZy9nZGIvaW5mLXR0cmFjZS5jCTIwMTQtMDItMDYgMTg6MDc6NTQuMzY0OTExMTE3 ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvaW5mLXR0cmFjZS5jCTIwMTQtMDIt MDYgMTg6MDc6NTguOTE4OTE2MDExICswMTAwCiBAQCAtMzY1LDcgKzM2NSw3IEBAIGluZl90dHJh Y2VfY2FuX3VzZV9od19icmVha3BvaW50IChpbnQgdHkKICB9CiAgCkBAIC0yNDEzLDEwICsyNDA2 LDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvaW5mLXR0cmFjZS5jCiAg ewogICAgcmV0dXJuIDE7CiAgfQotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9q di1sYW5nLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9qdi1sYW5nLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9qdi1sYW5nLmMJMjAx My0wOC0wMiAxNjozODoyNi40NDkyOTIyMjAgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvanYtbGFuZy5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzYzMzAwNzQyICswMjAwCist LS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9qdi1sYW5nLmMJMjAxNC0wMi0wNiAxODow Nzo1NC4zNjQ5MTExMTcgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9qdi1sYW5n LmMJMjAxNC0wMi0wNiAxODowNzo1OC45MTk5MTYwMTIgKzAxMDAKIEBAIC00MzYsNyArNDM2LDcg QEAgamF2YV9saW5rX2NsYXNzX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZAogICAgZm9yIChpID0g VFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKTsgaSA8IG5maWVsZHM7IGkrKykKICAgICAgewpAQCAt MjQzNSwxMCArMjQyOCwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2p2 LWxhbmcuYwogIAkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlv bnMpCiAgewogICAgY29uc3QgY2hhciAqdHlwZV9lbmNvZGluZyA9IGphdmFfZ2V0X2VuY29kaW5n ICh0eXBlKTsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvanYtbGFuZy5oCitJ bmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvanYtbGFuZy5oCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvanYtbGFuZy5oCTIwMTMtMDgtMDIgMTY6 Mzg6MjYuNDQ5MjkyMjIwICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2p2 LWxhbmcuaAkyMDEzLTA4LTAyIDE2OjM4OjMyLjM2MzMwMDc0MiArMDIwMAorLS0tIGdkYi03LjYu OTAuMjAxNDAxMjcub3JpZy9nZGIvanYtbGFuZy5oCTIwMTQtMDItMDYgMTg6MDc6NTQuMzY0OTEx MTE3ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvanYtbGFuZy5oCTIwMTQtMDIt MDYgMTg6MDc6NTguOTE5OTE2MDEyICswMTAwCiBAQCAtNDIsOCArNDIsOCBAQCBzdHJ1Y3QgYnVp bHRpbl9qYXZhX3R5cGUKICAKICBleHRlcm4gY29uc3Qgc3RydWN0IGJ1aWx0aW5famF2YV90eXBl ICpidWlsdGluX2phdmFfdHlwZSAoc3RydWN0IGdkYmFyY2ggKik7CkBAIC0yNDUwLDEwICsyNDQz LDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvanYtbGFuZy5oCiAgCQkJ ICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJp bnRfb3B0aW9ucyAqKTsKICAKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvanYt dmFscHJpbnQuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2p2LXZhbHByaW50LmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9qdi12YWxw cmludC5jCTIwMTMtMDgtMDIgMTY6Mzg6MjYuNDUwMjkyMjIxICswMjAwCi0rKysgZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL2p2LXZhbHByaW50LmMJMjAxMy0wOC0wMiAxNjozODozMi4zNjMz MDA3NDIgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2p2LXZhbHByaW50 LmMJMjAxNC0wMi0wNiAxODowNzo1NC4zNjU5MTExMTkgKzAxMDAKKysrKyBnZGItNy42LjkwLjIw MTQwMTI3L2dkYi9qdi12YWxwcmludC5jCTIwMTQtMDItMDYgMTg6MDc6NTguOTE5OTE2MDEyICsw MTAwCiBAQCAtMjY2LDcgKzI2Niw3IEBAIGphdmFfdmFsdWVfcHJpbnQgKHN0cnVjdCB2YWx1ZSAq dmFsLCBzdHIKICAKICBzdGF0aWMgdm9pZApAQCAtMjQ2Myw3ICsyNDU2LDcgQEAgSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9qdi12YWxwcmludC5jCiAgCQkJIENPUkVfQUREUiBh ZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAogIAkJCSBpbnQgcmVjdXJzZSwKICAJCQkg Y29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi1AQCAtNDY1LDcgKzQ2NSw3IEBAIGphdmFfcHJpbnRf dmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHkKK0BAIC00NTksNyArNDU5LDcgQEAgamF2YV9w cmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eQogIAogIHZvaWQKICBqYXZhX3ZhbF9w cmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMjQ3 MiwxMSArMjQ2NSwxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2p2LXZh bHByaW50LmMKICAJCXN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJY29u c3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyAqb3B0aW9ucykKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbGFuZ3VhZ2Uu YworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2xhbmd1YWdlLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9sYW5ndWFnZS5jCTIwMTMtMDgt MDIgMTY6Mzg6MjYuNDUwMjkyMjIxICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMv Z2RiL2xhbmd1YWdlLmMJMjAxMy0wOC0wMiAxNjozODozMi4zNjQzMDA3NDMgKzAyMDAKLUBAIC03 MjEsNyArNzIxLDcgQEAgdW5rX2xhbmdfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKgor LS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvbGFuZ3VhZ2UuYwkyMDE0LTAyLTA2IDE4 OjA3OjU0LjM2NTkxMTExOSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2xhbmd1 YWdlLmMJMjAxNC0wMi0wNiAxODowNzo1OC45MTk5MTYwMTIgKzAxMDAKK0BAIC03MjIsNyArNzIy LDcgQEAgdW5rX2xhbmdfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKgogIAogIHN0YXRp YyB2b2lkCiAgdW5rX2xhbmdfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVj dCB0eXBlICp0eXBlLApAQCAtMjQ4NSw3ICsyNDc4LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi9sYW5ndWFnZS5jCiAgCQkgICBjb25zdCBjaGFyICplbmNvZGluZywgaW50 IGZvcmNlX2VsbGlwc2VzLAogIAkJICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg Km9wdGlvbnMpCiAgewotQEAgLTc0MCw3ICs3NDAsNyBAQCB1bmtfbGFuZ19wcmludF90eXBlIChz dHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC03NDEsNyArNzQxLDcgQEAgdW5rX2xhbmdfcHJpbnRfdHlw ZSAoc3RydWN0IHR5cGUgKnR5cGUsCiAgCiAgc3RhdGljIHZvaWQKICB1bmtfbGFuZ192YWxfcHJp bnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTI0OTQs MTEgKzI0ODcsMTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9sYW5ndWFn ZS5jCiAgCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkgICAg Y29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50 X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2xh bmd1YWdlLmgKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9sYW5ndWFnZS5oCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvbGFuZ3VhZ2UuaAky MDEzLTA4LTAyIDE2OjM4OjI2LjQ1MDI5MjIyMSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi9sYW5ndWFnZS5oCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzY0MzAwNzQzICswMjAw Ci1AQCAtMTc1LDcgKzE3NSw3IEBAIHN0cnVjdCBsYW5ndWFnZV9kZWZuCistLS0gZ2RiLTcuNi45 MC4yMDE0MDEyNy5vcmlnL2dkYi9sYW5ndWFnZS5oCTIwMTQtMDItMDYgMTg6MDc6NTQuMzY1OTEx MTE5ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbGFuZ3VhZ2UuaAkyMDE0LTAy LTA2IDE4OjA3OjU4LjkxOTkxNjAxMiArMDEwMAorQEAgLTE4Miw3ICsxODIsNyBAQCBzdHJ1Y3Qg bGFuZ3VhZ2VfZGVmbgogIAkJCSAgc3RydWN0IHVpX2ZpbGUgKiBzdHJlYW0pOwogIAogICAgICB2 b2lkICgqbGFfcHJpbnRzdHIpIChzdHJ1Y3QgdWlfZmlsZSAqIHN0cmVhbSwgc3RydWN0IHR5cGUg KmVsdHR5cGUsCkBAIC0yNTA3LDcgKzI1MDAsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL2xhbmd1YWdlLmgKICAJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3Jj ZV9lbGxpcHNlcywKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7CiAg Ci1AQCAtMjE3LDcgKzIxNyw3IEBAIHN0cnVjdCBsYW5ndWFnZV9kZWZuCitAQCAtMjI0LDcgKzIy NCw3IEBAIHN0cnVjdCBsYW5ndWFnZV9kZWZuCiAgCiAgICAgIHZvaWQgKCpsYV92YWxfcHJpbnQp IChzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJCQkgIGNvbnN0IGdkYl9ieXRlICpjb250ZW50cywKQEAg LTI1MTYsMTEgKzI1MDksMTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9s YW5ndWFnZS5oCiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJ CQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi9tMi1sYW5nLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9tMi1sYW5nLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9tMi1sYW5nLmMJ MjAxMy0wOC0wMiAxNjozODoyNi40NTAyOTIyMjEgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvbTItbGFuZy5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzY0MzAwNzQzICswMjAw Ci1AQCAtMTAzLDEwICsxMDMsMTAgQEAgbTJfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUg KnR5cGUsCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9tMi1sYW5nLmMJMjAxNC0w Mi0wNiAxODowNzo1NC4zNjY5MTExMjAgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dk Yi9tMi1sYW5nLmMJMjAxNC0wMi0wNiAxODowNzo1OC45MjA5MTYwMTMgKzAxMDAKK0BAIC0xMDQs MTAgKzEwNCwxMCBAQCBtMl9wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAK ICBzdGF0aWMgdm9pZAogIG0yX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1 Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnN0cmluZywKQEAgLTI1MzMsNyArMjUyNiw3 IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbTItbGFuZy5jCiAgICB1bnNp Z25lZCBpbnQgdGhpbmdzX3ByaW50ZWQgPSAwOwogICAgaW50IGluX3F1b3RlcyA9IDA7CiAgICBp bnQgbmVlZF9jb21tYSA9IDA7Ci1AQCAtMTIxLDkgKzEyMSw5IEBAIG0yX3ByaW50c3RyIChzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHIKK0BAIC0xMjIsOSArMTIyLDkgQEAgbTJfcHJpbnRzdHIg KHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cgogICAgICB7CiAgICAgICAgLyogUG9zaXRpb24g b2YgdGhlIGNoYXJhY3RlciB3ZSBhcmUgZXhhbWluaW5nCiAgICAgICAgICAgdG8gc2VlIHdoZXRo ZXIgaXQgaXMgcmVwZWF0ZWQuICAqLwpAQCAtMjU0NSw3ICsyNTM4LDcgQEAgSW5kZXg6IGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9tMi1sYW5nLmMKICAKICAgICAgICBRVUlUOwogIAotQEAg LTE0OSw3ICsxNDksNyBAQCBtMl9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3Ry CitAQCAtMTUwLDcgKzE1MCw3IEBAIG0yX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LCBzdHIKICAJICAgICAgaW5fcXVvdGVzID0gMDsKICAJICAgIH0KICAJICBtMl9wcmludGNoYXIg KHN0cmluZ1tpXSwgdHlwZSwgc3RyZWFtKTsKQEAgLTI1NTQsMTAgKzI1NDcsMTAgQEAgSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9tMi1sYW5nLmMKICAJICBpID0gcmVwMSAtIDE7 CiAgCSAgdGhpbmdzX3ByaW50ZWQgKz0gb3B0aW9ucy0+cmVwZWF0X2NvdW50X3RocmVzaG9sZDsK ICAJICBuZWVkX2NvbW1hID0gMTsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIv bTItbGFuZy5oCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbTItbGFuZy5oCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvbTItbGFuZy5oCTIw MTMtMDgtMDIgMTY6Mzg6MjYuNDUxMjkyMjIyICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL20yLWxhbmcuaAkyMDEzLTA4LTAyIDE2OjM4OjMyLjM2NDMwMDc0MyArMDIwMAor LS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvbTItbGFuZy5oCTIwMTQtMDItMDYgMTg6 MDc6NTQuMzY2OTExMTIwICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbTItbGFu Zy5oCTIwMTQtMDItMDYgMTg6MDc6NTguOTIwOTE2MDEzICswMTAwCiBAQCAtMzMsNyArMzMsNyBA QCBleHRlcm4gdm9pZCBtMl9wcmludF90eXBlZGVmIChzdHJ1Y3QgdHlwCiAgZXh0ZXJuIGludCBt Ml9pc19sb25nX3NldCAoc3RydWN0IHR5cGUgKnR5cGUpOwogIGV4dGVybiBpbnQgbTJfaXNfdW5i b3VuZGVkX2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSk7CkBAIC0yNTY3LDEwICsyNTYwLDEwIEBA IEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbTItbGFuZy5oCiAgCQkJICBzdHJ1 Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgIGNv bnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwotSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi9tMi10eXBlcHJpbnQuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcv Z2RiL20yLXR5cGVwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMub3JpZy9nZGIvbTItdHlwZXByaW50LmMJMjAxMy0wOC0wMiAxNjozODoyNi40NTEyOTIyMjIg KzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbTItdHlwZXByaW50LmMJMjAx My0wOC0wMiAxNjozODozMi4zNjQzMDA3NDMgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3 Lm9yaWcvZ2RiL20yLXR5cGVwcmludC5jCTIwMTQtMDItMDYgMTg6MDc6NTQuMzY2OTExMTIwICsw MTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbTItdHlwZXByaW50LmMJMjAxNC0wMi0w NiAxODowNzo1OC45MjA5MTYwMTMgKzAxMDAKIEBAIC0yMzMsOSArMjMzLDEyIEBAIHN0YXRpYyB2 b2lkIG0yX2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJICBtMl9wcmludF9ib3VuZHMgKFRZ UEVfSU5ERVhfVFlQRSAodHlwZSksIHN0cmVhbSwgc2hvdywgLTEsIDEpOwogIAl9CkBAIC0yNTg3 LDEwICsyNTgwLDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbTItdHlw ZXByaW50LmMKICAgICAgfQogICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiXSBPRiAiKTsK ICAgIG0yX3ByaW50X3R5cGUgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCAiIiwgc3RyZWFtLCBz aG93LCBsZXZlbCwgZmxhZ3MpOwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9t Mi12YWxwcmludC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbTItdmFscHJpbnQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL20yLXZh bHByaW50LmMJMjAxMy0wOC0wMiAxNjozODoyNi40NTEyOTIyMjIgKzAyMDAKLSsrKyBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvbTItdmFscHJpbnQuYwkyMDEzLTA4LTAyIDE2OjM4OjMyLjM2 NTMwMDc0NSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvbTItdmFscHJp bnQuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM2NjkxMTEyMCArMDEwMAorKysrIGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL20yLXZhbHByaW50LmMJMjAxNC0wMi0wNiAxODowNzo1OC45MjA5MTYwMTMg KzAxMDAKIEBAIC0zNSw3ICszNSw3IEBAIHN0YXRpYyBpbnQgcHJpbnRfdW5wYWNrZWRfcG9pbnRl ciAoc3RydWMKICAJCQkJICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7CiAgc3RhdGljIHZvaWQK QEAgLTI2NTYsMTAgKzI2NDksMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi9tMi12YWxwcmludC5jCiAgCiAgCQkgIC8qIExvb2sgZm9yIGEgTlVMTCBjaGFyLiAgKi8KICAJ CSAgZm9yICh0ZW1wX2xlbiA9IDA7Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L21lbXJhbmdlLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9tZW1yYW5nZS5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvbWVtcmFuZ2Uu YwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ1MTI5MjIyMiArMDIwMAotKysrIGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi9tZW1yYW5nZS5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzY1MzAwNzQ1ICsw MjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9tZW1yYW5nZS5jCTIwMTQtMDIt MDYgMTg6MDc6NTQuMzY2OTExMTIwICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIv bWVtcmFuZ2UuYwkyMDE0LTAyLTA2IDE4OjA3OjU4LjkyMDkxNjAxMyArMDEwMAogQEAgLTIxLDgg KzIxLDggQEAKICAjaW5jbHVkZSAibWVtcmFuZ2UuaCIKICAKQEAgLTI2NzEsMTAgKzI2NjQsMTAg QEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9tZW1yYW5nZS5jCiAgewogICAg VUxPTkdFU1QgaCwgbDsKICAKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbWVt cmFuZ2UuaAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL21lbXJhbmdlLmgKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9tZW1yYW5nZS5oCTIw MTMtMDgtMDIgMTY6Mzg6MjYuNDUyMjkyMjI0ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL21lbXJhbmdlLmgJMjAxMy0wOC0wMiAxNjozODozMi4zNjUzMDA3NDUgKzAyMDAK Ky0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL21lbXJhbmdlLmgJMjAxNC0wMi0wNiAx ODowNzo1NC4zNjc5MTExMjEgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9tZW1y YW5nZS5oCTIwMTQtMDItMDYgMTg6MDc6NTguOTIxOTE2MDE0ICswMTAwCiBAQCAtMzAsNyArMzAs NyBAQCBzdHJ1Y3QgbWVtX3JhbmdlCiAgICBDT1JFX0FERFIgc3RhcnQ7CiAgCkBAIC0yNjk1LDEw ICsyNjg4LDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbWVtcmFuZ2Uu aAogIAogIC8qIFNvcnQgcmFuZ2VzIGJ5IHN0YXJ0IGFkZHJlc3MsIHRoZW4gY29hbGVzY2UgY29u dGlndW91cyBvcgogICAgIG92ZXJsYXBwaW5nIHJhbmdlcy4gICovCi1JbmRleDogZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL21pcHMtbGludXgtbmF0LmMKK0luZGV4OiBnZGItNy42LjkwLjIw MTQwMTI3L2dkYi9taXBzLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMub3JpZy9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDEzLTA4LTAyIDE2OjM4OjI2 LjQ1MjI5MjIyNCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9taXBzLWxp bnV4LW5hdC5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzY1MzAwNzQ1ICswMjAwCistLS0gZ2RiLTcu Ni45MC4yMDE0MDEyNy5vcmlnL2dkYi9taXBzLWxpbnV4LW5hdC5jCTIwMTQtMDItMDYgMTg6MDc6 NTQuMzY3OTExMTIxICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbWlwcy1saW51 eC1uYXQuYwkyMDE0LTAyLTA2IDE4OjA3OjU4LjkyMTkxNjAxNCArMDEwMAogQEAgLTU4OCw3ICs1 ODgsNyBAQCBtaXBzX2xpbnV4X3N0b3BwZWRfZGF0YV9hZGRyZXNzIChzdHJ1Y3QKICAgICB0aGUg c3BlY2lmaWVkIHJlZ2lvbiBjYW4gYmUgY292ZXJlZCBieSB0aGUgd2F0Y2ggcmVnaXN0ZXJzLiAg Ki8KICAKQEAgLTI3MDgsMTAgKzI3MDEsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi9taXBzLWxpbnV4LW5hdC5jCiAgewogICAgc3RydWN0IHB0X3dhdGNoX3JlZ3MgZHVt bXlfcmVnczsKICAgIGludCBpOwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9v cGVuY2wtbGFuZy5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvb3BlbmNsLWxhbmcu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL29wZW5j bC1sYW5nLmMJMjAxMy0wOC0wMiAxNjozODoyNi40NTIyOTIyMjQgKzAyMDAKLSsrKyBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvb3BlbmNsLWxhbmcuYwkyMDEzLTA4LTAyIDE2OjM4OjMyLjM2 NTMwMDc0NSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvb3BlbmNsLWxh bmcuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM2NzkxMTEyMSArMDEwMAorKysrIGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL29wZW5jbC1sYW5nLmMJMjAxNC0wMi0wNiAxODowNzo1OC45MjE5MTYwMTQg KzAxMDAKIEBAIC04MCwxMSArODAsMTEgQEAgYnVpbHRpbl9vcGVuY2xfdHlwZSAoc3RydWN0IGdk YmFyY2ggKmdkYgogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCkBAIC0yODM4LDExICsyODMxLDEx IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvb3BlbmNsLWxhbmcuYwogIAog ICAgICAgIGlmICghdmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRlciAoYy0+dmFsLAogIAkJCQkJ IGMtPmluZGljZXNbaV0gKiBlbHNpemUgKyBjb21wX29mZnNldCwKLUluZGV4OiBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvcC1sYW5nLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dk Yi9wLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcv Z2RiL3AtbGFuZy5jCTIwMTMtMDgtMDIgMTY6Mzg6MjYuNDUzMjkyMjI1ICswMjAwCi0rKysgZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3AtbGFuZy5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzY2 MzAwNzQ2ICswMjAwCi1AQCAtOTUsOCArOTUsOCBAQCBwYXNjYWxfbWFpbl9uYW1lICh2b2lkKQor LS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvcC1sYW5nLmMJMjAxNC0wMi0wNiAxODow Nzo1NC4zNjg5MTExMjIgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9wLWxhbmcu YwkyMDE0LTAyLTA2IDE4OjA3OjU4LjkyMTkxNjAxNCArMDEwMAorQEAgLTk2LDggKzk2LDggQEAg cGFzY2FsX21haW5fbmFtZSAodm9pZCkKICAgICBhcmUgbm90IG11bHRpcGxlIG9mIFRBUkdFVF9D SEFSX0JJVCB0aGVuIHRoZSByZXN1bHRzIGFyZSB3cm9uZwogICAgIGJ1dCB0aGlzIGRvZXMgbm90 IGhhcHBlbiBmb3IgRnJlZSBQYXNjYWwgbm9yIGZvciBHUEMuICAqLwogIGludApAQCAtMjg1Myw3 ICsyODQ2LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9wLWxhbmcuYwog IAkJICAgICAgIHN0cnVjdCB0eXBlICoqY2hhcl90eXBlLAogIAkJICAgICAgIGNvbnN0IGNoYXIg KiphcnJheW5hbWUpCiAgewotQEAgLTIxNiwxMiArMjE2LDEyIEBAIHBhc2NhbF9wcmludGNoYXIg KGludCBjLCBzdHJ1Y3QgdHlwZSAqdHkKK0BAIC0yMTcsMTIgKzIxNywxMiBAQCBwYXNjYWxfcHJp bnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5CiAgCiAgdm9pZAogIHBhc2NhbF9wcmludHN0 ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0yODY4LDcg KzI4NjEsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3AtbGFuZy5jCiAg ICB1bnNpZ25lZCBpbnQgdGhpbmdzX3ByaW50ZWQgPSAwOwogICAgaW50IGluX3F1b3RlcyA9IDA7 CiAgICBpbnQgbmVlZF9jb21tYSA9IDA7Ci1AQCAtMjQ5LDkgKzI0OSw5IEBAIHBhc2NhbF9wcmlu dHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKK0BAIC0yNTAsOSArMjUwLDkgQEAgcGFzY2Fs X3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAogICAgICB7CiAgICAgICAgLyogUG9z aXRpb24gb2YgdGhlIGNoYXJhY3RlciB3ZSBhcmUgZXhhbWluaW5nCiAgICAgICAgICAgdG8gc2Vl IHdoZXRoZXIgaXQgaXMgcmVwZWF0ZWQuICAqLwpAQCAtMjg4MCw3ICsyODczLDcgQEAgSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9wLWxhbmcuYwogICAgICAgIHVuc2lnbmVkIGxv bmcgaW50IGN1cnJlbnRfY2hhcjsKICAKICAgICAgICBRVUlUOwotQEAgLTI4Myw3ICsyODMsNyBA QCBwYXNjYWxfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCitAQCAtMjg0LDcgKzI4 NCw3IEBAIHBhc2NhbF9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJICAgICAg aW5fcXVvdGVzID0gMDsKICAJICAgIH0KICAJICBwYXNjYWxfcHJpbnRjaGFyIChjdXJyZW50X2No YXIsIHR5cGUsIHN0cmVhbSk7CkBAIC0yODg5LDEwICsyODgyLDEwIEBAIEluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvcC1sYW5nLmMKICAJICBpID0gcmVwMSAtIDE7CiAgCSAgdGhp bmdzX3ByaW50ZWQgKz0gb3B0aW9ucy0+cmVwZWF0X2NvdW50X3RocmVzaG9sZDsKICAJICBuZWVk X2NvbW1hID0gMTsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvcC1sYW5nLmgK K0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9wLWxhbmcuaAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3AtbGFuZy5oCTIwMTMtMDgtMDIgMTY6 Mzg6MjYuNDUzMjkyMjI1ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3At bGFuZy5oCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzY2MzAwNzQ2ICswMjAwCistLS0gZ2RiLTcuNi45 MC4yMDE0MDEyNy5vcmlnL2dkYi9wLWxhbmcuaAkyMDE0LTAyLTA2IDE4OjA3OjU0LjM2ODkxMTEy MiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3AtbGFuZy5oCTIwMTQtMDItMDYg MTg6MDc6NTguOTIyOTE2MDE2ICswMTAwCiBAQCAtMzUsNyArMzUsNyBAQCBleHRlcm4gdm9pZCBw YXNjYWxfcHJpbnRfdHlwZSAoc3RydWN0IHR5CiAgZXh0ZXJuIHZvaWQgcGFzY2FsX3ByaW50X3R5 cGVkZWYgKHN0cnVjdCB0eXBlICosIHN0cnVjdCBzeW1ib2wgKiwKICAJCQkJICBzdHJ1Y3QgdWlf ZmlsZSAqKTsKQEAgLTI5MjcsMTAgKzI5MjAsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi9wLWxhbmcuaAogIAkJCQkJICAgICAgQ09SRV9BRERSLCBzdHJ1Y3QgdWlfZmls ZSAqLAogIAkJCQkJICAgICAgaW50LAogIAkJCQkJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICos Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3AtdmFscHJpbnQuYworSW5kZXg6 IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3AtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3AtdmFscHJpbnQuYwkyMDEzLTA4LTAyIDE2 OjM4OjI2LjQ1MzI5MjIyNSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9w LXZhbHByaW50LmMJMjAxMy0wOC0wMiAxNjozODozMi4zNjYzMDA3NDYgKzAyMDAKKy0tLSBnZGIt Ny42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3AtdmFscHJpbnQuYwkyMDE0LTAyLTA2IDE4OjA3OjU0 LjM2ODkxMTEyMiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3AtdmFscHJpbnQu YwkyMDE0LTAyLTA2IDE4OjA3OjU4LjkyMjkxNjAxNiArMDEwMAogQEAgLTU4LDcgKzU4LDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBnZW5lcmljX3ZhbF9wcmludF9kZQogIAogIHZvaWQKQEAgLTI5 OTIsMTAgKzI5ODUsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9wLXZh bHByaW50LmMKICAgICAgICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBleDsKICAgICAg ICBpbnQgc2tpcCA9IDA7CiAgCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3Bw Yy1saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3BwYy1saW51eC1u YXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3Bw Yy1saW51eC1uYXQuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ1NDI5MjIyNyArMDIwMAotKysrIGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9wcGMtbGludXgtbmF0LmMJMjAxMy0wOC0wMiAxNjoz ODozMi4zNjYzMDA3NDYgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3Bw Yy1saW51eC1uYXQuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM2OTkxMTEyMyArMDEwMAorKysrIGdk Yi03LjYuOTAuMjAxNDAxMjcvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE0LTAyLTA2IDE4OjA3OjU4 LjkyMjkxNjAxNiArMDEwMAogQEAgLTE0OTYsNyArMTQ5Niw3IEBAIHBwY19saW51eF9jYW5fdXNl X2h3X2JyZWFrcG9pbnQgKGludCB0eXAKICB9CiAgCkBAIC0zMDA1LDExICsyOTk4LDExIEBAIElu ZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvcHBjLWxpbnV4LW5hdC5jCiAgewogICAg LyogSGFuZGxlIHN1Yi04LWJ5dGUgcXVhbnRpdGllcy4gICovCiAgICBpZiAobGVuIDw9IDApCi1J bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ByaW50Y21kLmMKK0luZGV4OiBnZGIt Ny42LjkwLjIwMTQwMTI3L2dkYi9wcmludGNtZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvcHJpbnRjbWQuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ1 NDI5MjIyNyArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9wcmludGNtZC5j CTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzY3MzAwNzQ4ICswMjAwCi1AQCAtMjkwLDcgKzI5MCw3IEBA IHByaW50X2Zvcm1hdHRlZCAoc3RydWN0IHZhbHVlICp2YWwsIGludAorLS0tIGdkYi03LjYuOTAu MjAxNDAxMjcub3JpZy9nZGIvcHJpbnRjbWQuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM3MDkxMTEy NCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3ByaW50Y21kLmMJMjAxNC0wMi0w NiAxODowNzo1OC45MjM5MTYwMTcgKzAxMDAKK0BAIC0yODksNyArMjg5LDcgQEAgcHJpbnRfZm9y bWF0dGVkIChzdHJ1Y3QgdmFsdWUgKnZhbCwgaW50CiAgCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUg KHZhbCkpOwpAQCAtMzAxOCw3ICszMDExLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi9wcmludGNtZC5jCiAgCiAgICBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX21l bW9yeSkKICAgICAgbmV4dF9hZGRyZXNzID0gdmFsdWVfYWRkcmVzcyAodmFsKSArIGxlbjsKLUBA IC0zNjgsNyArMzY4LDcgQEAgcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZCAoY29uc3Qgdm9pZCAqdmFs YQorQEAgLTM2Nyw3ICszNjcsNyBAQCBwcmludF9zY2FsYXJfZm9ybWF0dGVkIChjb25zdCB2b2lk ICp2YWxhCiAgewogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfdHlwZV9hcmNoICh0 eXBlKTsKICAgIExPTkdFU1QgdmFsX2xvbmcgPSAwOwpAQCAtMzAyNywxMSArMzAyMCwxMSBAQCBJ bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ByaW50Y21kLmMKICAgIGVudW0gYmZk X2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAKICAg IC8qIFN0cmluZyBwcmludGluZyBzaG91bGQgZ28gdGhyb3VnaCB2YWxfcHJpbnRfc2NhbGFyX2Zv cm1hdHRlZC4gICovCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3Byb2Nmcy5j CitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvcHJvY2ZzLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9wcm9jZnMuYwkyMDEzLTA4LTAyIDE2 OjM4OjI2LjQ1NTI5MjIyOCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9w cm9jZnMuYwkyMDEzLTA4LTAyIDE2OjM4OjMyLjM2ODMwMDc0OSArMDIwMAotQEAgLTQ5MjYsNyAr NDkyNiw3IEBAIHByb2Nmc19yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIKKy0tLSBn ZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3Byb2Nmcy5jCTIwMTQtMDItMDYgMTg6MDc6NTQu MzcwOTExMTI0ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvcHJvY2ZzLmMJMjAx NC0wMi0wNiAxODowNzo1OC45MjQ5MTYwMTggKzAxMDAKK0BAIC00OTI0LDcgKzQ5MjQsNyBAQCBw cm9jZnNfcmVtb3ZlX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyCiAgfQogIAogIHN0YXRpYyBp bnQKQEAgLTMwNDAsMTAgKzMwMzMsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi9wcm9jZnMuYwogIHsKICAgIC8qIFRoZSBtYW4gcGFnZSBmb3IgcHJvYyg0KSBvbiBTb2xh cmlzIDIuNiBhbmQgdXAgc2F5cyB0aGF0IHRoZQogICAgICAgc3lzdGVtIGNhbiBzdXBwb3J0ICJ0 aG91c2FuZHMiIG9mIGhhcmR3YXJlIHdhdGNocG9pbnRzLCBidXQgZ2l2ZXMKLUluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMKK0luZGV4OiBn ZGItNy42LjkwLjIwMTQwMTI3L2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3B5dGhvbi9weS1wcmV0dHlw cmludC5jCTIwMTMtMDgtMDIgMTY6Mzg6MjYuNDU2MjkyMjMwICswMjAwCi0rKysgZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCTIwMTMtMDgtMDIgMTY6 Mzg6MzIuMzY4MzAwNzQ5ICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9w eXRob24vcHktcHJldHR5cHJpbnQuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM3MTkxMTEyNSArMDEw MAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCTIw MTQtMDItMDYgMTg6MDc6NTguOTI0OTE2MDE4ICswMTAwCiBAQCAtNjg4LDcgKzY4OCw3IEBAIHBy aW50X2NoaWxkcmVuIChQeU9iamVjdCAqcHJpbnRlciwgY29uc3QKICAKICBpbnQKQEAgLTMwNjIs MTEgKzMwNTUsMTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9weXRob24v cHktcHJldHR5cHJpbnQuYwogIAkJCSAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vy c2UsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi9weXRob24vcHl0aG9uLmgKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9w eXRob24vcHl0aG9uLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5v cmlnL2dkYi9weXRob24vcHl0aG9uLmgJMjAxMy0wOC0wMiAxNjozODoyNi40NTYyOTIyMzAgKzAy MDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvcHl0aG9uL3B5dGhvbi5oCTIwMTMt MDgtMDIgMTY6Mzg6MzIuMzY4MzAwNzQ5ICswMjAwCi1AQCAtOTgsNyArOTgsNyBAQCB2b2lkIHNv dXJjZV9weXRob25fc2NyaXB0IChGSUxFICpmaWxlLCBjCistLS0gZ2RiLTcuNi45MC4yMDE0MDEy Ny5vcmlnL2dkYi9weXRob24vcHl0aG9uLmgJMjAxNC0wMi0wNiAxODowNzo1NC4zNzE5MTExMjUg KzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9weXRob24vcHl0aG9uLmgJMjAxNC0w Mi0wNiAxODowNzo1OC45MjQ5MTYwMTggKzAxMDAKK0BAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBz b3VyY2VfcHl0aG9uX3NjcmlwdCAoRklMRSAqZmlsZSwgYwogIHZvaWQgcnVuX3B5dGhvbl9zY3Jp cHQgKGludCBhcmdjLCBjaGFyICoqYXJndik7CiAgCiAgaW50IGFwcGx5X3ZhbF9wcmV0dHlfcHJp bnRlciAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMzA3 NSwxMCArMzA2OCwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3B5dGhv bi9weXRob24uaAogIAkJCSAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNl LAogIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSAgICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi9yZWdjYWNoZS5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIv cmVnY2FjaGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcv Z2RiL3JlZ2NhY2hlLmMJMjAxMy0wOC0wMiAxNjozODoyNi40NTcyOTIyMzEgKzAyMDAKLSsrKyBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvcmVnY2FjaGUuYwkyMDEzLTA4LTAyIDE2OjM4OjMy LjM2ODMwMDc0OSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvcmVnY2Fj aGUuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM3MjkxMTEyNiArMDEwMAorKysrIGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL3JlZ2NhY2hlLmMJMjAxNC0wMi0wNiAxODowNzo1OC45MjQ5MTYwMTggKzAx MDAKIEBAIC04OTksNyArODk5LDcgQEAgdHlwZWRlZiB2b2lkIChyZWdjYWNoZV93cml0ZV9mdHlw ZSkgKHN0cgogIAogIHN0YXRpYyBlbnVtIHJlZ2lzdGVyX3N0YXR1cwpAQCAtMzEyNCwxMCArMzEx NywxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3JlZ2NhY2hlLmMKICB7 CiAgICBzdHJ1Y3QgcmVnY2FjaGVfZGVzY3IgKmRlc2NyID0gcmVnY2FjaGUtPmRlc2NyOwogIAot SW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9yZWdjYWNoZS5oCitJbmRleDogZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvcmVnY2FjaGUuaAogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3JlZ2NhY2hlLmgJMjAxMy0wOC0wMiAxNjozODoyNi40 NTcyOTIyMzEgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvcmVnY2FjaGUu aAkyMDEzLTA4LTAyIDE2OjM4OjMyLjM2ODMwMDc0OSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAx NDAxMjcub3JpZy9nZGIvcmVnY2FjaGUuaAkyMDE0LTAyLTA2IDE4OjA3OjU0LjM3MjkxMTEyNiAr MDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3JlZ2NhY2hlLmgJMjAxNC0wMi0wNiAx ODowNzo1OC45MjU5MTYwMTkgKzAxMDAKIEBAIC04OSw5ICs4OSw5IEBAIGV4dGVybiB2b2lkIHJl Z2NhY2hlX3Jhd193cml0ZV91bnNpZ25lZAogIAogIGV4dGVybiBlbnVtIHJlZ2lzdGVyX3N0YXR1 cwpAQCAtMzE1NSwxMSArMzE0OCwxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMv Z2RiL3JlZ2NhY2hlLmgKICAKICAvKiBTcGVjaWFsIHJvdXRpbmVzIHRvIHJlYWQvd3JpdGUgdGhl IFBDLiAgKi8KICAKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvcmVtb3RlLmMK K0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9yZW1vdGUuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3JlbW90ZS5jCTIwMTMtMDgtMDIgMTY6 Mzg6MjYuNDU5MjkyMjM0ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3Jl bW90ZS5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzcwMzAwNzUyICswMjAwCi1AQCAtODM2OCw3ICs4 MzY4LDcgQEAgaW50IHJlbW90ZV9od193YXRjaHBvaW50X2xlbmd0aF9saW1pdCA9CistLS0gZ2Ri LTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9yZW1vdGUuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM3 NDkxMTEyOCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3JlbW90ZS5jCTIwMTQt MDItMDYgMTg6MDc6NTguOTI2OTE2MDIwICswMTAwCitAQCAtODQxMyw3ICs4NDEzLDcgQEAgaW50 IHJlbW90ZV9od193YXRjaHBvaW50X2xlbmd0aF9saW1pdCA9CiAgaW50IHJlbW90ZV9od19icmVh a3BvaW50X2xpbWl0ID0gLTE7CiAgCiAgc3RhdGljIGludApAQCAtMzE2OCwyMyArMzE2MSwxMCBA QCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3JlbW90ZS5jCiAgewogICAgaWYg KHJlbW90ZV9od193YXRjaHBvaW50X2xlbmd0aF9saW1pdCA9PSAwKQogICAgICByZXR1cm4gMDsK LUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvczM5MC1uYXQuYworSW5kZXg6IGdk Yi03LjYuOTAuMjAxNDAxMjcvZ2RiL3NwdS1tdWx0aWFyY2guYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3MzOTAtbmF0LmMJMjAxMy0wOC0wMiAxNjoz ODoyNi40NTkyOTIyMzQgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvczM5 MC1uYXQuYwkyMDEzLTA4LTAyIDE2OjM4OjMyLjM3MDMwMDc1MiArMDIwMAotQEAgLTU3MSw3ICs1 NzEsNyBAQCBzMzkwX2Nhbl91c2VfaHdfYnJlYWtwb2ludCAoaW50IHR5cGUsIGluCi0gfQotIAot IHN0YXRpYyBpbnQKLS1zMzkwX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoQ09SRV9BRERS IGFkZHIsIGludCBjbnQpCi0rczM5MF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVf QUREUiBhZGRyLCBMT05HRVNUIGNudCkKLSB7Ci0gICByZXR1cm4gMTsKLSB9Ci1JbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3NwdS1tdWx0aWFyY2guYwotPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDEzLTA4 LTAyIDE2OjM4OjI2LjQ1OTI5MjIzNCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxMy0wOC0wMiAxNjozODozMi4zNzAzMDA3NTIgKzAyMDAK Ky0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDE0LTAy LTA2IDE4OjA3OjU0LjM3NDkxMTEyOCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2Ri L3NwdS1tdWx0aWFyY2guYwkyMDE0LTAyLTA2IDE4OjA3OjU4LjkyNzkxNjAyMSArMDEwMAogQEAg LTExOCw3ICsxMTgsNyBAQCBzcHVfdGhyZWFkX2FyY2hpdGVjdHVyZSAoc3RydWN0IHRhcmdldF9v CiAgCiAgLyogT3ZlcnJpZGUgdGhlIHRvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCByb3V0 aW5lLiAgKi8KQEAgLTMxOTQsMTEgKzMxNzQsMTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi9zcHUtbXVsdGlhcmNoLmMKICB7CiAgICBzdHJ1Y3QgdGFyZ2V0X29wcyAqb3Bz X2JlbmVhdGggPSBmaW5kX3RhcmdldF9iZW5lYXRoICgmc3B1X29wcyk7CiAgICB3aGlsZSAob3Bz X2JlbmVhdGggJiYgIW9wc19iZW5lYXRoLT50b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQp Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3N0YWNrLmMKK0luZGV4OiBnZGIt Ny42LjkwLjIwMTQwMTI3L2dkYi9zdGFjay5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMub3JpZy9nZGIvc3RhY2suYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ2MDI5MjIz NiArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zdGFjay5jCTIwMTMtMDgt MDIgMTY6Mzg6MzIuMzcxMzAwNzU0ICswMjAwCi1AQCAtMTc4LDcgKzE3OCw3IEBAIHByaW50X3N0 YWNrX2ZyYW1lIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnIKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3 Lm9yaWcvZ2RiL3N0YWNrLmMJMjAxNC0wMi0wNiAxODowNzo1NC4zNzU5MTExMjkgKzAxMDAKKysr KyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9zdGFjay5jCTIwMTQtMDItMDYgMTg6MDc6NTguOTI3 OTE2MDIxICswMTAwCitAQCAtMTgwLDcgKzE4MCw3IEBAIHByaW50X3N0YWNrX2ZyYW1lIChzdHJ1 Y3QgZnJhbWVfaW5mbyAqZnIKICAgICBhcmd1bWVudCAobm90IGp1c3QgdGhlIGZpcnN0IG5hbWVs ZXNzIGFyZ3VtZW50KS4gICovCiAgCiAgc3RhdGljIHZvaWQKQEAgLTMyMDcsNyArMzE4Nyw3IEBA IEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvc3RhY2suYwogIAkJCSAgIGludCBm aXJzdCwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7Ci1AQCAtNTAwLDcgKzUwMCw3IEBAIHByaW50 X2ZyYW1lX2FyZ3MgKHN0cnVjdCBzeW1ib2wgKmZ1bmMsIHMKK0BAIC01MjYsNyArNTI2LDcgQEAg cHJpbnRfZnJhbWVfYXJncyAoc3RydWN0IHN5bWJvbCAqZnVuYywgcwogICAgLyogT2Zmc2V0IG9m IG5leHQgc3RhY2sgYXJndW1lbnQgYmV5b25kIHRoZSBvbmUgd2UgaGF2ZSBzZWVuIHRoYXQgaXMK ICAgICAgIGF0IHRoZSBoaWdoZXN0IG9mZnNldCwgb3IgLTEgaWYgd2UgaGF2ZW4ndCBjb21lIHRv IGEgc3RhY2sKICAgICAgIGFyZ3VtZW50IHlldC4gICovCkBAIC0zMjE2LDcgKzMxOTYsNyBAQCBJ bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3N0YWNrLmMKICAgIC8qIE51bWJlciBv ZiBpbnRzIG9mIGFyZ3VtZW50cyB0aGF0IHdlIGhhdmUgcHJpbnRlZCBzbyBmYXIuICAqLwogICAg aW50IGFyZ3NfcHJpbnRlZCA9IDA7CiAgICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2NoYWluOwotQEAg LTUzOCw4ICs1MzgsOCBAQCBwcmludF9mcmFtZV9hcmdzIChzdHJ1Y3Qgc3ltYm9sICpmdW5jLCBz CitAQCAtNTY0LDggKzU2NCw4IEBAIHByaW50X2ZyYW1lX2FyZ3MgKHN0cnVjdCBzeW1ib2wgKmZ1 bmMsIHMKICAJICAgIGNhc2UgTE9DX0FSRzoKICAJICAgIGNhc2UgTE9DX1JFRl9BUkc6CiAgCSAg ICAgIHsKQEAgLTMyMjcsNyArMzIwNyw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIvc3RhY2suYwogIAogIAkJLyogQ29tcHV0ZSBhZGRyZXNzIG9mIG5leHQgYXJndW1lbnQg YnkgYWRkaW5nIHRoZSBzaXplIG9mCiAgCQkgICB0aGlzIGFyZ3VtZW50IGFuZCByb3VuZGluZyB0 byBhbiBpbnQgYm91bmRhcnkuICAqLwotQEAgLTY3NCw3ICs2NzQsNyBAQCBwcmludF9mcmFtZV9h cmdzIChzdHJ1Y3Qgc3ltYm9sICpmdW5jLCBzCitAQCAtNzAwLDcgKzcwMCw3IEBAIHByaW50X2Zy YW1lX2FyZ3MgKHN0cnVjdCBzeW1ib2wgKmZ1bmMsIHMKICAgICAgIGVub3VnaCBhYm91dCB0aGUg c3RhY2sgdG8gZmluZCB0aGVtLiAgKi8KICAgIGlmIChudW0gIT0gLTEpCiAgICAgIHsKQEAgLTMy MzYsMTEgKzMyMTYsMTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zdGFj ay5jCiAgCiAgICAgICAgaWYgKGhpZ2hlc3Rfb2Zmc2V0ID09IC0xKQogIAlzdGFydCA9IGdkYmFy Y2hfZnJhbWVfYXJnc19za2lwIChnZXRfZnJhbWVfYXJjaCAoZnJhbWUpKTsKLUluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvc3ltbWlzYy5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0 MDEyNy9nZGIvc3ltbWlzYy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMub3JpZy9nZGIvc3ltbWlzYy5jCTIwMTMtMDgtMDIgMTY6Mzg6MjYuNDYwMjkyMjM2ICswMjAw Ci0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3N5bW1pc2MuYwkyMDEzLTA4LTAyIDE2 OjM4OjMyLjM3MTMwMDc1NCArMDIwMAotQEAgLTUzNCwxMSArNTM0LDExIEBAIHByaW50X3N5bWJv bCAodm9pZCAqYXJncykKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3N5bW1pc2Mu YwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM3NTkxMTEyOSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAx NDAxMjcvZ2RiL3N5bW1pc2MuYwkyMDE0LTAyLTA2IDE4OjA3OjU4LjkyNzkxNjAyMSArMDEwMAor QEAgLTUyOSwxMSArNTI5LDExIEBAIHByaW50X3N5bWJvbCAodm9pZCAqYXJncykKICAKICAJY2Fz ZSBMT0NfQ09OU1RfQllURVM6CiAgCSAgewpAQCAtMzI1NSwxMSArMzIzNSwxMSBAQCBJbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3N5bW1pc2MuYwogIAkgICAgZm9yIChpID0gMDsg aSA8IFRZUEVfTEVOR1RIICh0eXBlKTsgaSsrKQogIAkgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChv dXRmaWxlLCAiICUwMngiLAogIAkJCQkodW5zaWduZWQpIFNZTUJPTF9WQUxVRV9CWVRFUyAoc3lt Ym9sKVtpXSk7Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3RhcmdldC5jCitJ bmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGFyZ2V0LmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi90YXJnZXQuYwkyMDEzLTA4LTAyIDE2OjM4 OjI2LjQ2MTI5MjIzNyArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90YXJn ZXQuYwkyMDEzLTA4LTAyIDE2OjM4OjMyLjM3MjMwMDc1NSArMDIwMAotQEAgLTUxLDcgKzUxLDcg QEAgc3RhdGljIHZvaWQgZGVmYXVsdF90ZXJtaW5hbF9pbmZvIChjb25zdAorLS0tIGdkYi03LjYu OTAuMjAxNDAxMjcub3JpZy9nZGIvdGFyZ2V0LmMJMjAxNC0wMi0wNiAxODowNzo1NC4zNzY5MTEx MzAgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90YXJnZXQuYwkyMDE0LTAyLTA2 IDE4OjA3OjU4LjkyODkxNjAyMiArMDEwMAorQEAgLTUyLDcgKzUyLDcgQEAgc3RhdGljIHZvaWQg ZGVmYXVsdF90ZXJtaW5hbF9pbmZvIChjb25zdAogIHN0YXRpYyBpbnQgZGVmYXVsdF93YXRjaHBv aW50X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1Y3QgdGFyZ2V0X29wcyAqLAogIAkJCQkJCSBDT1JF X0FERFIsIENPUkVfQUREUiwgaW50KTsKICAKQEAgLTMyNjgsNyArMzI0OCw3IEBAIEluZGV4OiBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGFyZ2V0LmMKICAKICBzdGF0aWMgdm9pZCB0Y29t cGxhaW4gKHZvaWQpIEFUVFJJQlVURV9OT1JFVFVSTjsKICAKLUBAIC0xMjcsNyArMTI3LDcgQEAg c3RhdGljIGludCBkZWJ1Z190b19zdG9wcGVkX2RhdGFfYWRkcmVzcworQEAgLTExNiw3ICsxMTYs NyBAQCBzdGF0aWMgaW50IGRlYnVnX3RvX3N0b3BwZWRfZGF0YV9hZGRyZXNzCiAgc3RhdGljIGlu dCBkZWJ1Z190b193YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1Y3QgdGFyZ2V0X29w cyAqLAogIAkJCQkJCSAgQ09SRV9BRERSLCBDT1JFX0FERFIsIGludCk7CiAgCkBAIC0zMjc3LDcg KzMyNTcsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3RhcmdldC5jCiAg CiAgc3RhdGljIGludCBkZWJ1Z190b19jYW5fYWNjZWxfd2F0Y2hwb2ludF9jb25kaXRpb24gKENP UkVfQUREUiwgaW50LCBpbnQsCiAgCQkJCQkJICAgIHN0cnVjdCBleHByZXNzaW9uICopOwotQEAg LTM1ODYsNyArMzU4Niw3IEBAIHRhcmdldF9maWxlaW9fcmVhZF9zdHJhbGxvYyAoY29uc3QgY2hh cgorQEAgLTM1OTksNyArMzU5OSw3IEBAIHRhcmdldF9maWxlaW9fcmVhZF9zdHJhbGxvYyAoY29u c3QgY2hhcgogIAogIAogIHN0YXRpYyBpbnQKQEAgLTMyODYsNyArMzI2Niw3IEBAIEluZGV4OiBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGFyZ2V0LmMKICB7CiAgICByZXR1cm4gKGxlbiA8 PSBnZGJhcmNoX3B0cl9iaXQgKHRhcmdldF9nZGJhcmNoICgpKSAvIFRBUkdFVF9DSEFSX0JJVCk7 CiAgfQotQEAgLTQ1NDEsNyArNDU0MSw3IEBAIGRlYnVnX3RvX2Nhbl91c2VfaHdfYnJlYWtwb2lu dCAoaW50IHR5cGUKK0BAIC00NTY2LDcgKzQ1NjYsNyBAQCBkZWJ1Z190b19jYW5fdXNlX2h3X2Jy ZWFrcG9pbnQgKGludCB0eXBlCiAgfQogIAogIHN0YXRpYyBpbnQKQEAgLTMyOTUsMTEgKzMyNzUs MTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90YXJnZXQuYwogIHsKICAg IENPUkVfQUREUiByZXR2YWw7CiAgCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L3RhcmdldC5oCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGFyZ2V0LmgKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi90YXJnZXQuaAkyMDEz LTA4LTAyIDE2OjM4OjI2LjQ2MjI5MjIzOCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi90YXJnZXQuaAkyMDEzLTA4LTAyIDE2OjM4OjMyLjM3MjMwMDc1NSArMDIwMAotQEAg LTM4OSw3ICszODksNyBAQCBzdHJ1Y3QgdGFyZ2V0X29wcworLS0tIGdkYi03LjYuOTAuMjAxNDAx Mjcub3JpZy9nZGIvdGFyZ2V0LmgJMjAxNC0wMi0wNiAxODowNzo1NC4zNzc5MTExMzEgKzAxMDAK KysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90YXJnZXQuaAkyMDE0LTAyLTA2IDE4OjA3OjU4 LjkyOTkxNjAyMyArMDEwMAorQEAgLTQyOCw3ICs0MjgsNyBAQCBzdHJ1Y3QgdGFyZ2V0X29wcwog IAogICAgICAvKiBEb2N1bWVudGF0aW9uIG9mIHRoaXMgcm91dGluZSBpcyBwcm92aWRlZCB3aXRo IHRoZSBjb3JyZXNwb25kaW5nCiAgICAgICAgIHRhcmdldF8qIG1hY3JvLiAgKi8KQEAgLTMzMDgs MTEgKzMyODgsMTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90YXJnZXQu aAogIAogICAgICBpbnQgKCp0b19jYW5fYWNjZWxfd2F0Y2hwb2ludF9jb25kaXRpb24pIChDT1JF X0FERFIsIGludCwgaW50LAogIAkJCQkJICAgICAgc3RydWN0IGV4cHJlc3Npb24gKik7Ci1JbmRl eDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3RyYWNlcG9pbnQuYworSW5kZXg6IGdkYi03 LjYuOTAuMjAxNDAxMjcvZ2RiL3RyYWNlcG9pbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3RyYWNlcG9pbnQuYwkyMDEzLTA4LTAyIDE2OjM4OjI2 LjQ2NDI5MjI0MSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90cmFjZXBv aW50LmMJMjAxMy0wOC0wMiAxNjo0MDo1My4wMTg0OTk3NjkgKzAyMDAKLUBAIC05NDAsMTMgKzk0 MCwxMyBAQCBhZGRfcmVnaXN0ZXIgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKmNvCistLS0gZ2Ri LTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90cmFjZXBvaW50LmMJMjAxNC0wMi0wNiAxODowNzo1 NC4zNzk5MTExMzQgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90cmFjZXBvaW50 LmMJMjAxNC0wMi0wNiAxODowNzo1OC45MzA5MTYwMjQgKzAxMDAKK0BAIC05MzUsMTMgKzkzNSwx MyBAQCBhZGRfcmVnaXN0ZXIgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKmNvCiAgc3RhdGljIHZv aWQKICBhZGRfbWVtcmFuZ2UgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKm1lbXJhbmdlcywgCiAg CSAgICAgIGludCB0eXBlLCBiZmRfc2lnbmVkX3ZtYSBiYXNlLApAQCAtMzMyOCw3ICszMzA4LDcg QEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90cmFjZXBvaW50LmMKICAgICAg fQogIAogICAgLyogdHlwZTogbWVtcmFuZ2VfYWJzb2x1dGUgPT0gbWVtb3J5LCBvdGhlciBuID09 IGJhc2VyZWcgKi8KLUBAIC05NzYsNyArOTc2LDcgQEAgY29sbGVjdF9zeW1ib2wgKHN0cnVjdCBj b2xsZWN0aW9uX2xpc3QgKgorQEAgLTk3MSw3ICs5NzEsNyBAQCBjb2xsZWN0X3N5bWJvbCAoc3Ry dWN0IGNvbGxlY3Rpb25fbGlzdCAqCiAgCQlDT1JFX0FERFIgc2NvcGUsCiAgCQlpbnQgdHJhY2Vf c3RyaW5nKQogIHsKQEAgLTMzMzcsNyArMzMxNyw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvdHJhY2Vwb2ludC5jCiAgICB1bnNpZ25lZCBpbnQgcmVnOwogICAgYmZkX3Np Z25lZF92bWEgb2Zmc2V0OwogICAgaW50IHRyZWF0X2FzX2V4cHIgPSAwOwotQEAgLTEwMDAsOCAr MTAwMCw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BAIC05 OTUsOCArOTk1LDggQEAgY29sbGVjdF9zeW1ib2wgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKgog IAkgIGNoYXIgdG1wWzQwXTsKICAKICAJICBzcHJpbnRmX3ZtYSAodG1wLCBvZmZzZXQpOwpAQCAt MzM0OCw3ICszMzI4LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90cmFj ZXBvaW50LmMKICAJCQkgICB0bXAgLyogYWRkcmVzcyAqLyk7CiAgCX0KICAgICAgICAvKiBBIHN0 cnVjdCBtYXkgYmUgYSBDKysgY2xhc3Mgd2l0aCBzdGF0aWMgZmllbGRzLCBnbyB0byBnZW5lcmFs Ci1AQCAtMTAzMyw4ICsxMDMzLDggQEAgY29sbGVjdF9zeW1ib2wgKHN0cnVjdCBjb2xsZWN0aW9u X2xpc3QgKgorQEAgLTEwMjgsOCArMTAyOCw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29s bGVjdGlvbl9saXN0ICoKICAgICAgICBvZmZzZXQgPSBmcmFtZV9vZmZzZXQgKyBTWU1CT0xfVkFM VUUgKHN5bSk7CiAgICAgICAgaWYgKGluZm9fdmVyYm9zZSkKICAJewpAQCAtMzM1OSw3ICszMzM5 LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90cmFjZXBvaW50LmMKICAJ ICBwcmludGZfdm1hIChvZmZzZXQpOwogIAkgIHByaW50Zl9maWx0ZXJlZCAoIiBmcm9tIGZyYW1l IHB0ciByZWcgJWRcbiIsIHJlZyk7CiAgCX0KLUBAIC0xMDQ1LDggKzEwNDUsOCBAQCBjb2xsZWN0 X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqCitAQCAtMTA0MCw4ICsxMDQwLDggQEAg Y29sbGVjdF9zeW1ib2wgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKgogICAgICAgIG9mZnNldCA9 IDA7CiAgICAgICAgaWYgKGluZm9fdmVyYm9zZSkKICAJewpAQCAtMzM3MCw3ICszMzUwLDcgQEAg SW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90cmFjZXBvaW50LmMKICAJICBwcmlu dGZfdm1hIChvZmZzZXQpOwogIAkgIHByaW50Zl9maWx0ZXJlZCAoIiBmcm9tIHJlZyAlZFxuIiwg cmVnKTsKICAJfQotQEAgLTEwNTcsOCArMTA1Nyw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3Qg Y29sbGVjdGlvbl9saXN0ICoKK0BAIC0xMDUyLDggKzEwNTIsOCBAQCBjb2xsZWN0X3N5bWJvbCAo c3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqCiAgICAgICAgb2Zmc2V0ID0gZnJhbWVfb2Zmc2V0ICsg U1lNQk9MX1ZBTFVFIChzeW0pOwogICAgICAgIGlmIChpbmZvX3ZlcmJvc2UpCiAgCXsKQEAgLTMz ODEsNyArMzM2MSw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdHJhY2Vw b2ludC5jCiAgCSAgcHJpbnRmX3ZtYSAob2Zmc2V0KTsKICAJICBwcmludGZfZmlsdGVyZWQgKCIg ZnJvbSBmcmFtZSBwdHIgcmVnICVkXG4iLCByZWcpOwogIAl9Ci1AQCAtMjcxNiw3ICsyNzE2LDgg QEAgc2NvcGVfaW5mbyAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQorQEAgLTI3MTEsNyArMjcx MSw4IEBAIHNjb3BlX2luZm8gKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKICAgIGNvbnN0IGNo YXIgKnN5bW5hbWU7CiAgICBjaGFyICpzYXZlX2FyZ3MgPSBhcmdzOwogICAgc3RydWN0IGJsb2Nr X2l0ZXJhdG9yIGl0ZXI7CkBAIC0zMzkxLDcgKzMzNzEsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL3RyYWNlcG9pbnQuYwogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2g7 CiAgICBpbnQgcmVnbm87CiAgCi1AQCAtMjg1Miw4ICsyODUzLDExIEBAIHNjb3BlX2luZm8gKGNo YXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKK0BAIC0yODQ3LDggKzI4NDgsMTEgQEAgc2NvcGVfaW5m byAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQogIAkJfQogIAkgICAgfQogIAkgIGlmIChTWU1C T0xfVFlQRSAoc3ltKSkKQEAgLTM0MDUsMTAgKzMzODUsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi90cmFjZXBvaW50LmMKICAJfQogICAgICAgIGlmIChCTE9DS19GVU5D VElPTiAoYmxvY2spKQogIAlicmVhazsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9n ZGIvdHlwZXByaW50LmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90eXBlcHJpbnQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3R5cGVw cmludC5jCTIwMTMtMDgtMDIgMTY6Mzg6MjYuNDY0MjkyMjQxICswMjAwCi0rKysgZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL3R5cGVwcmludC5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzc0MzAw NzU4ICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90eXBlcHJpbnQuYwky MDE0LTAyLTA2IDE4OjA3OjU0LjM3OTkxMTEzNCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL3R5cGVwcmludC5jCTIwMTQtMDItMDYgMTg6MDc6NTguOTMwOTE2MDI0ICswMTAwCiBA QCAtNDA5LDcgKzQwOSw3IEBAIHdoYXRpc19leHAgKGNoYXIgKmV4cCwgaW50IHNob3cpCiAgICBz dHJ1Y3QgdHlwZSAqcmVhbF90eXBlID0gTlVMTDsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwpAQCAt MzQxOCwxMCArMzM5OCwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3R5 cGVwcmludC5jCiAgICBpbnQgdXNpbmdfZW5jID0gMDsKICAgIHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zIG9wdHM7CiAgICBzdHJ1Y3QgdHlwZV9wcmludF9vcHRpb25zIGZsYWdzID0gZGVmYXVs dF9wdHlwZV9mbGFnczsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsYXJp dGguYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3ZhbGFyaXRoLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTMt MDgtMDIgMTY6Mzg6MjYuNDY1MjkyMjQzICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL3ZhbGFyaXRoLmMJMjAxMy0wOC0wMiAxNjozODozMi4zNzQzMDA3NTggKzAyMDAKKy0t LSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNC0wMi0wNiAxODow Nzo1NC4zODA5MTExMzUgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi92YWxhcml0 aC5jCTIwMTQtMDItMDYgMTg6MDc6NTguOTMwOTE2MDI0ICswMTAwCiBAQCAtMTkwLDE1ICsxOTAs MTUgQEAgdmFsdWVfc3Vic2NyaXB0IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBMTwogICAgIHRvIGRv dWJsZXMsIGJ1dCBubyBsb25nZXIgZG9lcy4gICovCiAgCkBAIC0zNDc1LDExICszNDU1LDExIEBA IEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsYXJpdGguYwogIAogICAgZm9y IChpID0gMDsgaSA8IGxlbjsgaSsrKQogICAgICB7Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL3ZhbG9wcy5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdmFsb3Bz LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi92YWxv cHMuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ2NzI5MjI0NiArMDIwMAotKysrIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi92YWxvcHMuYwkyMDEzLTA4LTAyIDE2OjM4OjMyLjM3NTMwMDc1OSAr MDIwMAotQEAgLTUzLDExICs1MywxMSBAQCBzdGF0aWMgaW50IHR5cGVjbXAgKGludCBzdGF0aWNw LCBpbnQgdmFyCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi92YWxvcHMuYwkyMDE0 LTAyLTA2IDE4OjA3OjU0LjM4MjkxMTEzNyArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcv Z2RiL3ZhbG9wcy5jCTIwMTQtMDItMDYgMTg6MTE6MDkuMDcyMTE5OTE4ICswMTAwCitAQCAtNTEs MTEgKzUxLDExIEBAIHN0YXRpYyBpbnQgdHlwZWNtcCAoaW50IHN0YXRpY3AsIGludCB2YXIKICAJ CSAgICBzdHJ1Y3QgZmllbGQgdDFbXSwgc3RydWN0IHZhbHVlICp0MltdKTsKICAKICBzdGF0aWMg c3RydWN0IHZhbHVlICpzZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICosIHN0cnVjdCB2 YWx1ZSAqLCAKQEAgLTM0OTMsNyArMzQ3Myw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvdmFsb3BzLmMKICAKICBzdGF0aWMgaW50IGZpbmRfb2xvYWRfY2hhbXBfbmFtZXNw YWNlIChzdHJ1Y3QgdmFsdWUgKiosIGludCwKICAJCQkJICAgICAgIGNvbnN0IGNoYXIgKiwgY29u c3QgY2hhciAqLAotQEAgLTg1LDcgKzg1LDcgQEAgb2xvYWRfY2xhc3NpZmljYXRpb24gY2xhc3Np Znlfb2xvYWRfbWF0YworQEAgLTgzLDcgKzgzLDcgQEAgb2xvYWRfY2xhc3NpZmljYXRpb24gY2xh c3NpZnlfb2xvYWRfbWF0YwogIAkJCQkJICAgaW50LCBpbnQpOwogIAogIHN0YXRpYyBzdHJ1Y3Qg dmFsdWUgKnZhbHVlX3N0cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAoc3RydWN0IHR5cGUgKiwKQEAg LTM1MDIsNyArMzQ4Miw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFs b3BzLmMKICAJCQkJCQkgICAgIGNoYXIgKiwKICAJCQkJCQkgICAgIHN0cnVjdCB0eXBlICosCiAg CQkJCQkJICAgICBpbnQsIGVudW0gbm9zaWRlKTsKLUBAIC0xMDIsOCArMTAyLDggQEAgc3RhdGlj IENPUkVfQUREUiBhbGxvY2F0ZV9zcGFjZV9pbl9pbmZlcgorQEAgLTEwMCw4ICsxMDAsOCBAQCBz dGF0aWMgQ09SRV9BRERSIGFsbG9jYXRlX3NwYWNlX2luX2luZmVyCiAgc3RhdGljIHN0cnVjdCB2 YWx1ZSAqY2FzdF9pbnRvX2NvbXBsZXggKHN0cnVjdCB0eXBlICosIHN0cnVjdCB2YWx1ZSAqKTsK ICAKICBzdGF0aWMgc3RydWN0IGZuX2ZpZWxkICpmaW5kX21ldGhvZF9saXN0IChzdHJ1Y3QgdmFs dWUgKiosIGNvbnN0IGNoYXIgKiwKQEAgLTM1MTMsNyArMzQ5Myw3IEBAIEluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsb3BzLmMKICAKICB2b2lkIF9pbml0aWFsaXplX3ZhbG9w cyAodm9pZCk7CiAgCi1AQCAtMTg4LDcgKzE4OCw3IEBAIGZpbmRfZnVuY3Rpb25faW5faW5mZXJp b3IgKGNvbnN0IGNoYXIgKm4KK0BAIC0xODYsNyArMTg2LDcgQEAgZmluZF9mdW5jdGlvbl9pbl9p bmZlcmlvciAoY29uc3QgY2hhciAqbgogICAgIHNwYWNlLiAgKi8KICAKICBzdHJ1Y3QgdmFsdWUg KgpAQCAtMzUyMiw3ICszNTAyLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi92YWxvcHMuYwogIHsKICAgIHN0cnVjdCBvYmpmaWxlICpvYmpmOwogICAgc3RydWN0IHZhbHVl ICp2YWwgPSBmaW5kX2Z1bmN0aW9uX2luX2luZmVyaW9yICgibWFsbG9jIiwgJm9iamYpOwotQEAg LTI2MSw3ICsyNjEsOCBAQCB2YWx1ZV9jYXN0X3N0cnVjdHMgKHN0cnVjdCB0eXBlICp0eXBlLCBz CitAQCAtMjU5LDcgKzI1OSw4IEBAIHZhbHVlX2Nhc3Rfc3RydWN0cyAoc3RydWN0IHR5cGUgKnR5 cGUsIHMKICAgIGlmIChUWVBFX05BTUUgKHQyKSAhPSBOVUxMKQogICAgICB7CiAgICAgICAgLyog VHJ5IGRvd25jYXN0aW5nIHVzaW5nIHRoZSBydW4tdGltZSB0eXBlIG9mIHRoZSB2YWx1ZS4gICov CkBAIC0zNTMyLDcgKzM1MTIsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L3ZhbG9wcy5jCiAgICAgICAgc3RydWN0IHR5cGUgKnJlYWxfdHlwZTsKICAKICAgICAgICByZWFs X3R5cGUgPSB2YWx1ZV9ydHRpX3R5cGUgKHYyLCAmZnVsbCwgJnRvcCwgJnVzaW5nX2VuYyk7Ci1A QCAtNDAwLDEyICs0MDEsMTIgQEAgdmFsdWVfY2FzdCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVj dCB2YQorQEAgLTM5OCwxMiArMzk5LDEyIEBAIHZhbHVlX2Nhc3QgKHN0cnVjdCB0eXBlICp0eXBl LCBzdHJ1Y3QgdmEKICAgIGlmIChjb2RlMSA9PSBUWVBFX0NPREVfQVJSQVkpCiAgICAgIHsKICAg ICAgICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAodHlwZSk7 CkBAIC0zNTQ3LDcgKzM1MjcsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L3ZhbG9wcy5jCiAgCSAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQsIG5ld19sZW5ndGg7 CiAgCiAgCSAgaWYgKGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZsb3dfYm91bmQs ICZoaWdoX2JvdW5kKSA8IDApCi1AQCAtNjM5LDcgKzY0MCw3IEBAIHZhbHVlX3JlaW50ZXJwcmV0 X2Nhc3QgKHN0cnVjdCB0eXBlICp0eXAKK0BAIC02MzcsNyArNjM4LDcgQEAgdmFsdWVfcmVpbnRl cnByZXRfY2FzdCAoc3RydWN0IHR5cGUgKnR5cAogIHN0YXRpYyBpbnQKICBkeW5hbWljX2Nhc3Rf Y2hlY2tfMSAoc3RydWN0IHR5cGUgKmRlc2lyZWRfdHlwZSwKICAJCSAgICAgIGNvbnN0IGdkYl9i eXRlICp2YWxhZGRyLApAQCAtMzU1Niw3ICszNTM2LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi92YWxvcHMuYwogIAkJICAgICAgQ09SRV9BRERSIGFkZHJlc3MsCiAgCQkg ICAgICBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCSAgICAgIHN0cnVjdCB0eXBlICpzZWFyY2hfdHlw ZSwKLUBAIC02NTEsOCArNjUyLDggQEAgZHluYW1pY19jYXN0X2NoZWNrXzEgKHN0cnVjdCB0eXBl ICpkZXNpcgorQEAgLTY0OSw4ICs2NTAsOCBAQCBkeW5hbWljX2Nhc3RfY2hlY2tfMSAoc3RydWN0 IHR5cGUgKmRlc2lyCiAgCiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VDTEFTU0VTIChz ZWFyY2hfdHlwZSkgJiYgcmVzdWx0X2NvdW50IDwgMjsgKytpKQogICAgICB7CkBAIC0zNTY3LDcg KzM1NDcsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbG9wcy5jCiAg CiAgICAgICAgaWYgKGNsYXNzX3R5cGVzX3NhbWVfcCAoZGVzaXJlZF90eXBlLCBUWVBFX0JBU0VD TEFTUyAoc2VhcmNoX3R5cGUsIGkpKSkKICAJewotQEAgLTY4Niw3ICs2ODcsNyBAQCBkeW5hbWlj X2Nhc3RfY2hlY2tfMSAoc3RydWN0IHR5cGUgKmRlc2lyCitAQCAtNjg0LDcgKzY4NSw3IEBAIGR5 bmFtaWNfY2FzdF9jaGVja18xIChzdHJ1Y3QgdHlwZSAqZGVzaXIKICBzdGF0aWMgaW50CiAgZHlu YW1pY19jYXN0X2NoZWNrXzIgKHN0cnVjdCB0eXBlICpkZXNpcmVkX3R5cGUsCiAgCQkgICAgICBj b25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTM1NzYsNyArMzU1Niw3IEBAIEluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsb3BzLmMKICAJCSAgICAgIENPUkVfQUREUiBhZGRy ZXNzLAogIAkJICAgICAgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkgICAgICBzdHJ1Y3QgdHlwZSAq c2VhcmNoX3R5cGUsCi1AQCAtNjk2LDcgKzY5Nyw3IEBAIGR5bmFtaWNfY2FzdF9jaGVja18yIChz dHJ1Y3QgdHlwZSAqZGVzaXIKK0BAIC02OTQsNyArNjk1LDcgQEAgZHluYW1pY19jYXN0X2NoZWNr XzIgKHN0cnVjdCB0eXBlICpkZXNpcgogIAogICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTl9CQVNF Q0xBU1NFUyAoc2VhcmNoX3R5cGUpICYmIHJlc3VsdF9jb3VudCA8IDI7ICsraSkKICAgICAgewpA QCAtMzU4NSw3ICszNTY1LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92 YWxvcHMuYwogIAogICAgICAgIGlmICghIEJBU0VUWVBFX1ZJQV9QVUJMSUMgKHNlYXJjaF90eXBl LCBpKSkKICAJY29udGludWU7Ci1AQCAtNzI3LDcgKzcyOCw4IEBAIGR5bmFtaWNfY2FzdF9jaGVj a18yIChzdHJ1Y3QgdHlwZSAqZGVzaXIKK0BAIC03MjUsNyArNzI2LDggQEAgZHluYW1pY19jYXN0 X2NoZWNrXzIgKHN0cnVjdCB0eXBlICpkZXNpcgogIHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVfZHlu YW1pY19jYXN0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHZhbHVlICphcmcpCiAgewpAQCAt MzU5NSw3ICszNTc1LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxv cHMuYwogICAgc3RydWN0IHR5cGUgKnJlc29sdmVkX3R5cGUgPSBjaGVja190eXBlZGVmICh0eXBl KTsKICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUg KGFyZykpOwogICAgc3RydWN0IHR5cGUgKmNsYXNzX3R5cGUsICpydHRpX3R5cGU7Ci1AQCAtMTAw Nyw3ICsxMDA5LDcgQEAgdmFsdWVfYXRfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUsIENPUkVfQQor QEAgLTEwMDUsNyArMTAwNyw3IEBAIHZhbHVlX2F0X2xhenkgKHN0cnVjdCB0eXBlICp0eXBlLCBD T1JFX0EKICB9CiAgCiAgdm9pZApAQCAtMzYwNCw3ICszNTg0LDcgQEAgSW5kZXg6IGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxvcHMuYwogIAkJICAgaW50IHN0YWNrLCBDT1JFX0FERFIg bWVtYWRkciwKICAJCSAgIGdkYl9ieXRlICpidWZmZXIsIHNpemVfdCBsZW5ndGgpCiAgewotQEAg LTExNTcsNyArMTE1OSw3IEBAIHZhbHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0b3ZhbCwgc3Ry dWMKK0BAIC0xMTU1LDcgKzExNTcsNyBAQCB2YWx1ZV9hc3NpZ24gKHN0cnVjdCB2YWx1ZSAqdG92 YWwsIHN0cnVjCiAgICAgICAgewogIAljb25zdCBnZGJfYnl0ZSAqZGVzdF9idWZmZXI7CiAgCUNP UkVfQUREUiBjaGFuZ2VkX2FkZHI7CkBAIC0zNjEzLDcgKzM1OTMsNyBAQCBJbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbG9wcy5jCiAgICAgICAgICBnZGJfYnl0ZSBidWZmZXJb c2l6ZW9mIChMT05HRVNUKV07CiAgCiAgCWlmICh2YWx1ZV9iaXRzaXplICh0b3ZhbCkpCi1AQCAt MTIzNiw3ICsxMjM4LDcgQEAgdmFsdWVfYXNzaWduIChzdHJ1Y3QgdmFsdWUgKnRvdmFsLCBzdHJ1 YworQEAgLTEyMzQsNyArMTIzNiw3IEBAIHZhbHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0b3Zh bCwgc3RydWMKICAJICAgIGlmICh2YWx1ZV9iaXRzaXplICh0b3ZhbCkpCiAgCSAgICAgIHsKICAJ CXN0cnVjdCB2YWx1ZSAqcGFyZW50ID0gdmFsdWVfcGFyZW50ICh0b3ZhbCk7CkBAIC0zNjIyLDcg KzM2MDIsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbG9wcy5jCiAg CQlpbnQgY2hhbmdlZF9sZW47CiAgCQlnZGJfYnl0ZSBidWZmZXJbc2l6ZW9mIChMT05HRVNUKV07 CiAgCQlpbnQgb3B0aW0sIHVuYXZhaWw7Ci1AQCAtMTcxNiw3ICsxNzE4LDcgQEAgdmFsdWVfYXJy YXkgKGludCBsb3dib3VuZCwgaW50IGhpZ2hib3VuZAorQEAgLTE3MTUsNyArMTcxNyw3IEBAIHZh bHVlX2FycmF5IChpbnQgbG93Ym91bmQsIGludCBoaWdoYm91bmQKICB7CiAgICBpbnQgbmVsZW07 CiAgICBpbnQgaWR4OwpAQCAtMzYzMSw3ICszNjExLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi92YWxvcHMuYwogICAgc3RydWN0IHZhbHVlICp2YWw7CiAgICBzdHJ1Y3Qg dHlwZSAqYXJyYXl0eXBlOwogIAotQEAgLTE4OTEsNyArMTg5Myw3IEBAIHR5cGVjbXAgKGludCBz dGF0aWNwLCBpbnQgdmFyYXJncywgaW50IG4KK0BAIC0xODkwLDcgKzE4OTIsNyBAQCB0eXBlY21w IChpbnQgc3RhdGljcCwgaW50IHZhcmFyZ3MsIGludCBuCiAgCiAgc3RhdGljIHZvaWQKICB1cGRh dGVfc2VhcmNoX3Jlc3VsdCAoc3RydWN0IHZhbHVlICoqcmVzdWx0X3B0ciwgc3RydWN0IHZhbHVl ICp2LApAQCAtMzY0MCw3ICszNjIwLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi92YWxvcHMuYwogIAkJICAgICAgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHR5cGUgKnR5 cGUpCiAgewogICAgaWYgKHYgIT0gTlVMTCkKLUBAIC0xOTE1LDEwICsxOTE3LDEwIEBAIHVwZGF0 ZV9zZWFyY2hfcmVzdWx0IChzdHJ1Y3QgdmFsdWUgKipyZXMKK0BAIC0xOTE0LDEwICsxOTE2LDEw IEBAIHVwZGF0ZV9zZWFyY2hfcmVzdWx0IChzdHJ1Y3QgdmFsdWUgKipyZXMKICAgICBsb29rdXAg aXMgYW1iaWd1b3VzLiAgKi8KICAKICBzdGF0aWMgdm9pZApAQCAtMzY1Myw3ICszNjMzLDcgQEAg SW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxvcHMuYwogIAkJCXN0cnVjdCB0 eXBlICpvdXRlcm1vc3RfdHlwZSkKICB7CiAgICBpbnQgaTsKLUBAIC0xOTczLDcgKzE5NzUsNyBA QCBkb19zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lCitAQCAtMTk2Niw3ICsx OTY4LDcgQEAgZG9fc2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtZQogIAkJICAg PHZhcmlhbnQgZmllbGQ+LiAgKi8KICAKICAJCXN0cnVjdCB2YWx1ZSAqdiA9IE5VTEw7CkBAIC0z NjYyLDcgKzM2NDIsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbG9w cy5jCiAgCiAgCQkvKiBUaGlzIGlzIHByZXR0eSBncm9zcy4gIEluIEcrKywgdGhlIG9mZnNldCBp biBhbgogIAkJICAgYW5vbnltb3VzIHVuaW9uIGlzIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcg b2YgdGhlCi1AQCAtMjAxMiw3ICsyMDE0LDcgQEAgZG9fc2VhcmNoX3N0cnVjdF9maWVsZCAoY29u c3QgY2hhciAqbmFtZQorQEAgLTIwMDUsNyArMjAwNyw3IEBAIGRvX3NlYXJjaF9zdHJ1Y3RfZmll bGQgKGNvbnN0IGNoYXIgKm5hbWUKICAJCQkgICAgICYmIChzdHJjbXBfaXcgKG5hbWUsIAogIAkJ CQkJICAgIFRZUEVfQkFTRUNMQVNTX05BTUUgKHR5cGUsIAogIAkJCQkJCQkJIGkpKSA9PSAwKSk7 CkBAIC0zNjcxLDcgKzM2NTEsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L3ZhbG9wcy5jCiAgCiAgICAgICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMICh0eXBlLCBpKSkK ICAJewotQEAgLTIwODcsMTEgKzIwODksMTEgQEAgZG9fc2VhcmNoX3N0cnVjdF9maWVsZCAoY29u c3QgY2hhciAqbmFtZQorQEAgLTIwNzgsMTEgKzIwODAsMTEgQEAgZG9fc2VhcmNoX3N0cnVjdF9m aWVsZCAoY29uc3QgY2hhciAqbmFtZQogICAgIGZpZWxkcywgbG9vayBmb3IgYSBiYXNlY2xhc3Mg bmFtZWQgTkFNRS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC0zNjg1LDcgKzM2 NjUsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbG9wcy5jCiAgCiAg ICBkb19zZWFyY2hfc3RydWN0X2ZpZWxkIChuYW1lLCBhcmcxLCBvZmZzZXQsIHR5cGUsIGxvb2tp bmdfZm9yX2Jhc2VjbGFzcywKICAJCQkgICZyZXN1bHQsICZib2Zmc2V0LCB0eXBlKTsKLUBAIC0y MTA4LDcgKzIxMTAsNyBAQCBzZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBz CitAQCAtMjA5OSw3ICsyMTAxLDcgQEAgc2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAq bmFtZSwgcwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgogIHNlYXJjaF9zdHJ1Y3RfbWV0aG9k IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKiphcmcxcCwKQEAgLTM2OTQsNyArMzY3 NCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsb3BzLmMKICAJCSAg ICAgIGludCAqc3RhdGljX21lbWZ1bmNwLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBpbnQg aTsKLUBAIC0yMTcyLDggKzIxNzQsOCBAQCBzZWFyY2hfc3RydWN0X21ldGhvZCAoY29uc3QgY2hh ciAqbmFtZSwKK0BAIC0yMTYzLDggKzIxNjUsOCBAQCBzZWFyY2hfc3RydWN0X21ldGhvZCAoY29u c3QgY2hhciAqbmFtZSwKICAKICAgIGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSkg LSAxOyBpID49IDA7IGktLSkKICAgICAgewpAQCAtMzcwNSw3ICszNjg1LDcgQEAgSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxvcHMuYwogIAogICAgICAgIGlmIChCQVNFVFlQ RV9WSUFfVklSVFVBTCAodHlwZSwgaSkpCiAgCXsKLUBAIC0yMzU1LDggKzIzNTcsOCBAQCB2YWx1 ZV9zdHJ1Y3RfZWx0IChzdHJ1Y3QgdmFsdWUgKiphcmdwLCBzCitAQCAtMjM5MSw4ICsyMzkzLDgg QEAgdmFsdWVfc3RydWN0X2VsdF9iaXRwb3MgKHN0cnVjdCB2YWx1ZSAqKgogIAogIHN0YXRpYyBz dHJ1Y3QgZm5fZmllbGQgKgogIGZpbmRfbWV0aG9kX2xpc3QgKHN0cnVjdCB2YWx1ZSAqKmFyZ3As IGNvbnN0IGNoYXIgKm1ldGhvZCwKQEAgLTM3MTYsNyArMzY5Niw3IEBAIEluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsb3BzLmMKICB7CiAgICBpbnQgaTsKICAgIHN0cnVjdCBm bl9maWVsZCAqZjsKLUBAIC0yMzg5LDcgKzIzOTEsNyBAQCBmaW5kX21ldGhvZF9saXN0IChzdHJ1 Y3QgdmFsdWUgKiphcmdwLCBjCitAQCAtMjQyNSw3ICsyNDI3LDcgQEAgZmluZF9tZXRob2RfbGlz dCAoc3RydWN0IHZhbHVlICoqYXJncCwgYwogICAgLyogTm90IGZvdW5kIGluIG9iamVjdCwgY2hl Y2sgaW4gYmFzZSBzdWJvYmplY3RzLiAgKi8KICAgIGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NF UyAodHlwZSkgLSAxOyBpID49IDA7IGktLSkKICAgICAgewpAQCAtMzcyNSw3ICszNzA1LDcgQEAg SW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxvcHMuYwogIAogICAgICAgIGlm IChCQVNFVFlQRV9WSUFfVklSVFVBTCAodHlwZSwgaSkpCiAgCXsKLUBAIC0yNDI1LDcgKzI0Mjcs NyBAQCBmaW5kX21ldGhvZF9saXN0IChzdHJ1Y3QgdmFsdWUgKiphcmdwLCBjCitAQCAtMjQ2MSw3 ICsyNDYzLDcgQEAgZmluZF9tZXRob2RfbGlzdCAoc3RydWN0IHZhbHVlICoqYXJncCwgYwogIHN0 YXRpYyBzdHJ1Y3QgZm5fZmllbGQgKgogIHZhbHVlX2ZpbmRfb2xvYWRfbWV0aG9kX2xpc3QgKHN0 cnVjdCB2YWx1ZSAqKmFyZ3AsIGNvbnN0IGNoYXIgKm1ldGhvZCwKICAJCQkgICAgICBpbnQgb2Zm c2V0LCBpbnQgKm51bV9mbnMsIApAQCAtMzczNCw3ICszNzE0LDcgQEAgSW5kZXg6IGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxvcHMuYwogIHsKICAgIHN0cnVjdCB0eXBlICp0OwogIAot QEAgLTI1MTUsNyArMjUxNyw3IEBAIGZpbmRfb3ZlcmxvYWRfbWF0Y2ggKHN0cnVjdCB2YWx1ZSAq KmFyZ3MKK0BAIC0yNTUxLDcgKzI1NTMsNyBAQCBmaW5kX292ZXJsb2FkX21hdGNoIChzdHJ1Y3Qg dmFsdWUgKiphcmdzCiAgICAvKiBOdW1iZXIgb2Ygb3ZlcmxvYWRlZCBpbnN0YW5jZXMgYmVpbmcg Y29uc2lkZXJlZC4gICovCiAgICBpbnQgbnVtX2ZucyA9IDA7CiAgICBzdHJ1Y3QgdHlwZSAqYmFz ZXR5cGUgPSBOVUxMOwpAQCAtMzc0Myw3ICszNzIzLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi92YWxvcHMuYwogIAogICAgc3RydWN0IGNsZWFudXAgKmFsbF9jbGVhbnVw cyA9IG1ha2VfY2xlYW51cCAobnVsbF9jbGVhbnVwLCBOVUxMKTsKICAKLUBAIC0zMTg1LDcgKzMx ODcsNyBAQCBjb21wYXJlX3BhcmFtZXRlcnMgKHN0cnVjdCB0eXBlICp0MSwgc3RyCitAQCAtMzIy MSw3ICszMjIzLDcgQEAgY29tcGFyZV9wYXJhbWV0ZXJzIChzdHJ1Y3QgdHlwZSAqdDEsIHN0cgog ICAgIHRoZSBmb3JtICJET01BSU46Ok5BTUUiLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVl ICoKQEAgLTM3NTIsMTYgKzM3MzIsMTYgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi92YWxvcHMuYwogIAkJCQlzdHJ1Y3QgdHlwZSAqY3VydHlwZSwgY2hhciAqbmFtZSwKICAJ CQkJc3RydWN0IHR5cGUgKmludHlwZSwgCiAgCQkJCWludCB3YW50X2FkZHJlc3MsCi1AQCAtMzIy Miw3ICszMjI0LDcgQEAgdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVmZXJlbmNlIChzdHJ1Y3QgdAor QEAgLTMyNTUsNyArMzI1Nyw3IEBAIHZhbHVlX3N0cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAoc3Ry dWN0IHQKICAJICBpZiAod2FudF9hZGRyZXNzKQogIAkgICAgcmV0dXJuIHZhbHVlX2Zyb21fbG9u Z2VzdAogIAkgICAgICAobG9va3VwX21lbWJlcnB0cl90eXBlIChUWVBFX0ZJRUxEX1RZUEUgKHQs IGkpLCBkb21haW4pLAogLQkgICAgICAgb2Zmc2V0ICsgKExPTkdFU1QpIChUWVBFX0ZJRUxEX0JJ VFBPUyAodCwgaSkgPj4gMykpOwogKwkgICAgICAgb2Zmc2V0ICsgKFRZUEVfRklFTERfQklUUE9T ICh0LCBpKSA+PiAzKSk7Ci0gCSAgZWxzZSBpZiAobm9zaWRlID09IEVWQUxfQVZPSURfU0lERV9F RkZFQ1RTKQorIAkgIGVsc2UgaWYgKG5vc2lkZSAhPSBFVkFMX05PUk1BTCkKICAJICAgIHJldHVy biBhbGxvY2F0ZV92YWx1ZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBpKSk7CiAgCSAgZWxzZQotQEAg LTMzNjUsNyArMzM2Nyw3IEBAIHZhbHVlX3N0cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAoc3RydWN0 IHQKK0BAIC0zNDIzLDcgKzM0MjUsNyBAQCB2YWx1ZV9zdHJ1Y3RfZWx0X2Zvcl9yZWZlcmVuY2Ug KHN0cnVjdCB0CiAgICBmb3IgKGkgPSBUWVBFX05fQkFTRUNMQVNTRVMgKHQpIC0gMTsgaSA+PSAw OyBpLS0pCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKnY7CkBAIC0zNzcwLDcgKzM3NTAs NyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbG9wcy5jCiAgCiAgICAg ICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMICh0LCBpKSkKICAJYmFzZV9vZmZzZXQgPSAwOwot QEAgLTM0NTUsNyArMzQ1Nyw3IEBAIHZhbHVlX21heWJlX25hbWVzcGFjZV9lbHQgKGNvbnN0IHN0 cnVjdAorQEAgLTM1MTMsNyArMzUxNSw3IEBAIHZhbHVlX21heWJlX25hbWVzcGFjZV9lbHQgKGNv bnN0IHN0cnVjdAogIAogIHN0cnVjdCB0eXBlICoKICB2YWx1ZV9ydHRpX2luZGlyZWN0X3R5cGUg KHN0cnVjdCB2YWx1ZSAqdiwgaW50ICpmdWxsLCAKQEAgLTM3NzksNyArMzc1OSw3IEBAIEluZGV4 OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsb3BzLmMKICB7CiAgICBzdHJ1Y3QgdmFs dWUgKnRhcmdldDsKICAgIHN0cnVjdCB0eXBlICp0eXBlLCAqcmVhbF90eXBlLCAqdGFyZ2V0X3R5 cGU7Ci1AQCAtMzUwNSwxMiArMzUwNywxMiBAQCB2YWx1ZV9ydHRpX2luZGlyZWN0X3R5cGUgKHN0 cnVjdCB2YWx1ZSAqCitAQCAtMzU2MywxMiArMzU2NSwxMiBAQCB2YWx1ZV9ydHRpX2luZGlyZWN0 X3R5cGUgKHN0cnVjdCB2YWx1ZSAqCiAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV9mdWxsX29iamVj dCAoc3RydWN0IHZhbHVlICphcmdwLCAKICAJCSAgIHN0cnVjdCB0eXBlICpydHlwZSwgCkBAIC0z Nzk0LDExICszNzc0LDExIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFs b3BzLmMKICAgIGludCB1c2luZ19lbmMgPSAwOwogICAgc3RydWN0IHZhbHVlICpuZXdfdmFsOwog IAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxwcmludC5jCitJbmRleDog Z2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3ZhbHByaW50LmMJMjAxMy0wOC0wMiAxNjozODoy Ni40NjgyOTIyNDcgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFscHJp bnQuYwkyMDEzLTA4LTAyIDE2OjM4OjMyLjM3NjMwMDc2MSArMDIwMAotQEAgLTMwMiw3ICszMDIs NyBAQCBzY2FsYXJfdHlwZV9wIChzdHJ1Y3QgdHlwZSAqdHlwZSkKKy0tLSBnZGItNy42LjkwLjIw MTQwMTI3Lm9yaWcvZ2RiL3ZhbHByaW50LmMJMjAxNC0wMi0wNiAxODowNzo1NC4zODM5MTExMzgg KzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi92YWxwcmludC5jCTIwMTQtMDItMDYg MTg6MDc6NTguOTMyOTE2MDI2ICswMTAwCitAQCAtMzAyLDcgKzMwMiw3IEBAIHZhbF9wcmludF9z Y2FsYXJfdHlwZV9wIChzdHJ1Y3QgdHlwZSAqdHkKICBpbnQKICB2YWxwcmludF9jaGVja192YWxp ZGl0eSAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJCQkgc3RydWN0IHR5cGUgKnR5cGUsCkBA IC0zODA3LDcgKzM3ODcsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3Zh bHByaW50LmMKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpCiAgewogICAgQ0hFQ0tfVFlQ RURFRiAodHlwZSk7Ci1AQCAtMzY2LDcgKzM2Niw3IEBAIHZhbF9wcmludF9pbnZhbGlkX2FkZHJl c3MgKHN0cnVjdCB1aV9maWwKK0BAIC0zNzUsNyArMzc1LDcgQEAgdmFsX3ByaW50X2ludmFsaWRf YWRkcmVzcyAoc3RydWN0IHVpX2ZpbAogIAogIHZvaWQKICBnZW5lcmljX3ZhbF9wcmludCAoc3Ry dWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMzgxNiw3ICszNzk2 LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxwcmludC5jCiAgCQkg ICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCSAgIGNvbnN0IHN0cnVj dCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCiAgCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRf b3B0aW9ucyAqb3B0aW9ucywKLUBAIC03MjgsNyArNzI4LDcgQEAgZ2VuZXJpY192YWxfcHJpbnQg KHN0cnVjdCB0eXBlICp0eXBlLCBjbworQEAgLTczNyw3ICs3MzcsNyBAQCBnZW5lcmljX3ZhbF9w cmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCiAgICAgUkVDVVJTRS4gICovCiAgCiAgdm9pZApA QCAtMzgyNSw3ICszODA1LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92 YWxwcmludC5jCiAgCSAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LCBpbnQgcmVjdXJzZSwKICAJICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCSAgIGNvbnN0 IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotQEAgLTk0MCw3ICs5NDAsNyBA QCB2YWxfcHJpbnRfdHlwZV9jb2RlX2ZsYWdzIChzdHJ1Y3QgdHlwZSAqCitAQCAtOTU4LDcgKzk1 OCw3IEBAIHZhbF9wcmludF90eXBlX2NvZGVfZmxhZ3MgKHN0cnVjdCB0eXBlICoKICAKICB2b2lk CiAgdmFsX3ByaW50X3NjYWxhcl9mb3JtYXR0ZWQgKHN0cnVjdCB0eXBlICp0eXBlLApAQCAtMzgz NCw3ICszODE0LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxwcmlu dC5jCiAgCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSAgICBjb25zdCBzdHJ1 Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKICAJCQkgICAgaW50IHNpemUsCi1AQCAt MTQ4MSw3ICsxNDgxLDcgQEAgcHJpbnRfZGVjaW1hbF9jaGFycyAoc3RydWN0IHVpX2ZpbGUgKnN0 cgorQEAgLTE0OTksNyArMTQ5OSw3IEBAIHByaW50X2RlY2ltYWxfY2hhcnMgKHN0cnVjdCB1aV9m aWxlICpzdHIKICAKICB2b2lkCiAgcHJpbnRfaGV4X2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTM4NDMsNyArMzgyMyw3IEBAIEluZGV4 OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFscHJpbnQuYwogIHsKICAgIGNvbnN0IGdk Yl9ieXRlICpwOwogIAotQEAgLTE1OTgsMjMgKzE1OTgsMjMgQEAgbWF5YmVfcHJpbnRfYXJyYXlf aW5kZXggKHN0cnVjdCB0eXBlICppbgorQEAgLTE2MTYsMjMgKzE2MTYsMjMgQEAgbWF5YmVfcHJp bnRfYXJyYXlfaW5kZXggKHN0cnVjdCB0eXBlICppbgogIAogIHZvaWQKICB2YWxfcHJpbnRfYXJy YXlfZWxlbWVudHMgKHN0cnVjdCB0eXBlICp0eXBlLApAQCAtMzg3Myw3ICszODUzLDcgQEAgSW5k ZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxwcmludC5jCiAgICBMT05HRVNUIGxv d19ib3VuZCwgaGlnaF9ib3VuZDsKICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogICAgQ09S RV9BRERSIHNhdmVkX2FkZHJlc3MgPSBhZGRyZXNzOwotQEAgLTE3MDksNyArMTcwOSw3IEBAIHZh bF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKnQKK0BAIC0xNzI3LDcgKzE3Mjcs NyBAQCB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0eXBlICp0CiAgCQkgICAgIGFk ZHJlc3MsIHN0cmVhbSwgcmVjdXJzZSArIDEsIHZhbCwgb3B0aW9ucywKICAJCSAgICAgY3VycmVu dF9sYW5ndWFnZSk7CiAgCSAgYW5ub3RhdGVfZWx0X3JlcCAocmVwcyk7CkBAIC0zODgyLDcgKzM4 NjIsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHByaW50LmMKICAJ ICBhbm5vdGF0ZV9lbHRfcmVwX2VuZCAoKTsKICAKICAJICBpID0gcmVwMSAtIDE7Ci1AQCAtMjM2 MCw3ICsyMzYwLDcgQEAgcHJpbnRfY29udmVydGVkX2NoYXJzX3RvX29ic3RhY2sgKHN0cnVjdAor QEAgLTIzODIsNyArMjM4Miw3IEBAIHByaW50X2NvbnZlcnRlZF9jaGFyc190b19vYnN0YWNrIChz dHJ1Y3QKICAKICB2b2lkCiAgZ2VuZXJpY19wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSwgc3RydWN0IHR5cGUgKnR5cGUsIApAQCAtMzg5MSwxMCArMzg3MSwxMCBAQCBJbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHByaW50LmMKICAJCSAgY29uc3QgY2hhciAqZW5j b2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJCSAgaW50IHF1b3RlX2NoYXIsIGludCBjX3N0 eWxlX3Rlcm1pbmF0b3IsCiAgCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpv cHRpb25zKQotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxwcmludC5oCitJ bmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdmFscHJpbnQuaAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3ZhbHByaW50LmgJMjAxMy0wOC0wMiAx NjozODoyNi40NjkyOTIyNDggKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIv dmFscHJpbnQuaAkyMDEzLTA4LTAyIDE2OjM4OjMyLjM3NjMwMDc2MSArMDIwMAorLS0tIGdkYi03 LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvdmFscHJpbnQuaAkyMDE0LTAyLTA2IDE4OjA3OjU0LjM4 NDkxMTEzOSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3ZhbHByaW50LmgJMjAx NC0wMi0wNiAxODowNzo1OC45MzI5MTYwMjYgKzAxMDAKIEBAIC0xMTUsMTEgKzExNSwxMSBAQCBl eHRlcm4gdm9pZCBtYXliZV9wcmludF9hcnJheV9pbmRleCAoc3RyCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCiAgCQkJCSAgICAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7CkBAIC0zOTI3LDcgKzM5MDcsNyBA QCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHByaW50LmgKICAKICBleHRl cm4gdm9pZCBwcmludF9jaGFyX2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAqLCBzdHJ1Y3QgdHlwZSAq LAogIAkJCSAgICAgIGNvbnN0IGdkYl9ieXRlICosIHVuc2lnbmVkIGludCwgZW51bSBiZmRfZW5k aWFuKTsKLUBAIC0xOTAsNyArMTkwLDcgQEAgc3RydWN0IGdlbmVyaWNfdmFsX3ByaW50X2RlY29y YXRpb25zCitAQCAtMTk0LDcgKzE5NCw3IEBAIHN0cnVjdCBnZW5lcmljX3ZhbF9wcmludF9kZWNv cmF0aW9ucwogIAogIAogIGV4dGVybiB2b2lkIGdlbmVyaWNfdmFsX3ByaW50IChzdHJ1Y3QgdHlw ZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0zOTM2LDcgKzM5MTYsNyBAQCBJ bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHByaW50LmgKICAJCQkgICAgICAg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJICAgICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotQEAgLTIwMCw3ICsyMDAsNyBAQCBleHRlcm4gdm9p ZCBnZW5lcmljX2VtaXRfY2hhciAoaW50IGMsIHN0CitAQCAtMjA0LDcgKzIwNCw3IEBAIGV4dGVy biB2b2lkIGdlbmVyaWNfZW1pdF9jaGFyIChpbnQgYywgc3QKICAJCQkgICAgICAgaW50IHF1b3Rl ciwgY29uc3QgY2hhciAqZW5jb2RpbmcpOwogIAogIGV4dGVybiB2b2lkIGdlbmVyaWNfcHJpbnRz dHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLCAKQEAgLTM5NDUs MTAgKzM5MjUsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxwcmlu dC5oCiAgCQkJICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywK ICAJCQkgICAgICBpbnQgcXVvdGVfY2hhciwgaW50IGNfc3R5bGVfdGVybWluYXRvciwKICAJCQkg ICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1JbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHVlLmMKK0luZGV4OiBnZGItNy42LjkwLjIw MTQwMTI3L2dkYi92YWx1ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMub3JpZy9nZGIvdmFsdWUuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ3MTI5MjI1MSArMDIwMAot KysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWx1ZS5jCTIwMTMtMDgtMDIgMTY6NDE6 MTMuMTA1NTI3NDgzICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi92YWx1 ZS5jCTIwMTQtMDItMDYgMTg6MDc6NTQuMzg2OTExMTQxICswMTAwCisrKysgZ2RiLTcuNi45MC4y MDE0MDEyNy9nZGIvdmFsdWUuYwkyMDE0LTAyLTA2IDE4OjEwOjM5LjM3NjA4ODYyNSArMDEwMAog QEAgLTY5LDEwICs2OSwxMCBAQCBzdHJ1Y3QgaW50ZXJuYWxfZnVuY3Rpb24KICBzdHJ1Y3QgcmFu Z2UKICB7CkBAIC0zOTgyLDcgKzM5NjIsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL3ZhbHVlLmMKICB7CiAgICByYW5nZV9zIHdoYXQ7CiAgICBpbnQgaTsKLUBAIC0yNDEs NyArMjQxLDcgQEAgc3RydWN0IHZhbHVlCitAQCAtMjQ2LDcgKzI0Niw3IEBAIHN0cnVjdCB2YWx1 ZQogICAgICAgbHZhbCA9PSBsdmFsX3JlZ2lzdGVyLCB0aGlzIGlzIGEgZnVydGhlciBvZmZzZXQg ZnJvbQogICAgICAgbG9jYXRpb24uYWRkcmVzcyB3aXRoaW4gdGhlIHJlZ2lzdGVycyBzdHJ1Y3R1 cmUuICBOb3RlIGFsc28gdGhlCiAgICAgICBtZW1iZXIgZW1iZWRkZWRfb2Zmc2V0IGJlbG93LiAg Ki8KQEAgLTM5OTEsNyArMzk3MSw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9n ZGIvdmFsdWUuYwogIAogICAgLyogT25seSB1c2VkIGZvciBiaXRmaWVsZHM7IG51bWJlciBvZiBi aXRzIGNvbnRhaW5lZCBpbiB0aGVtLiAgKi8KICAgIGludCBiaXRzaXplOwotQEAgLTMxMSw4ICsz MTEsOCBAQCBzdHJ1Y3QgdmFsdWUKK0BAIC0zMTYsOCArMzE2LDggQEAgc3RydWN0IHZhbHVlCiAg ICAgICBgdHlwZScsIGFuZCBgZW1iZWRkZWRfb2Zmc2V0JyBpcyB6ZXJvLCBzbyBldmVyeXRoaW5n IHdvcmtzCiAgICAgICBub3JtYWxseS4gICovCiAgICBzdHJ1Y3QgdHlwZSAqZW5jbG9zaW5nX3R5 cGU7CkBAIC00MDAyLDE3ICszOTgyLDE3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIvdmFsdWUuYwogIAogICAgLyogVmFsdWVzIGFyZSBzdG9yZWQgaW4gYSBjaGFpbiwgc28g dGhhdCB0aGV5IGNhbiBiZSBkZWxldGVkIGVhc2lseQogICAgICAgb3ZlciBjYWxscyB0byB0aGUg aW5mZXJpb3IuICBWYWx1ZXMgYXNzaWduZWQgdG8gaW50ZXJuYWwKLUBAIC0zMzQsNyArMzM0LDgg QEAgc3RydWN0IHZhbHVlCi0gfTsKK0BAIC0zNDgsNyArMzQ4LDggQEAgdmFsdWVfYml0c19hdmFp bGFibGUgKGNvbnN0IHN0cnVjdCB2YWx1ZQorIH0KICAKICBpbnQKIC12YWx1ZV9ieXRlc19hdmFp bGFibGUgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBvZmZzZXQsIGludCBsZW5ndGgp CiArdmFsdWVfYnl0ZXNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05H RVNUIG9mZnNldCwKICsJCSAgICAgICBMT05HRVNUIGxlbmd0aCkKICB7Ci0gICBnZGJfYXNzZXJ0 ICghdmFsdWUtPmxhenkpOwotIAotQEAgLTM1NSw3ICszNTYsOCBAQCB2YWx1ZV9lbnRpcmVseV9h dmFpbGFibGUgKHN0cnVjdCB2YWx1ZSAqCisgICByZXR1cm4gdmFsdWVfYml0c19hdmFpbGFibGUg KHZhbHVlLAorIAkJCSAgICAgICBvZmZzZXQgKiBUQVJHRVRfQ0hBUl9CSVQsCitAQCAtNTU1LDcg KzU1Niw4IEBAIG1hcmtfdmFsdWVfYml0c191bmF2YWlsYWJsZSAoc3RydWN0IHZhbHUKICB9CiAg CiAgdm9pZApAQCAtNDAyMCw5ICs0MDAwLDkgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi92YWx1ZS5jCiArbWFya192YWx1ZV9ieXRlc191bmF2YWlsYWJsZSAoc3RydWN0IHZh bHVlICp2YWx1ZSwgTE9OR0VTVCBvZmZzZXQsCiArCQkJICAgICAgTE9OR0VTVCBsZW5ndGgpCiAg ewotICAgcmFuZ2VfcyBuZXdyOwotICAgaW50IGk7Ci1AQCAtNTI2LDcgKzUyOCw3IEBAIG1hcmtf dmFsdWVfYnl0ZXNfdW5hdmFpbGFibGUgKHN0cnVjdCB2YWwKKyAgIG1hcmtfdmFsdWVfYml0c191 bmF2YWlsYWJsZSAodmFsdWUsCisgCQkJICAgICAgIG9mZnNldCAqIFRBUkdFVF9DSEFSX0JJVCwK K0BAIC01NjksNyArNTcxLDcgQEAgbWFya192YWx1ZV9ieXRlc191bmF2YWlsYWJsZSAoc3RydWN0 IHZhbAogIAogIHN0YXRpYyBpbnQKICBmaW5kX2ZpcnN0X3JhbmdlX292ZXJsYXAgKFZFQyhyYW5n ZV9zKSAqcmFuZ2VzLCBpbnQgcG9zLApAQCAtNDAzMSw3ICs0MDExLDcgQEAgSW5kZXg6IGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWx1ZS5jCiAgewogICAgcmFuZ2VfcyAqcjsKICAgIGlu dCBpOwotQEAgLTUzOSw5ICs1NDEsOSBAQCBmaW5kX2ZpcnN0X3JhbmdlX292ZXJsYXAgKFZFQyhy YW5nZV9zKSAqCitAQCAtNzYwLDkgKzc2Miw5IEBAIHZhbHVlX2F2YWlsYWJsZV9jb250ZW50c19i aXRzX2VxIChjb25zdAogIH0KICAKICBpbnQKQEAgLTQwNDIsOSArNDAyMiw5IEBAIEluZGV4OiBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuYwogKwkJCSAgICAgY29uc3Qgc3RydWN0 IHZhbHVlICp2YWwyLCBMT05HRVNUIG9mZnNldDIsCiArCQkJICAgICBMT05HRVNUIGxlbmd0aCkK ICB7Ci0gICBpbnQgaWR4MSA9IDAsIGlkeDIgPSAwOwotIAotQEAgLTc2NywxMyArNzY5LDEzIEBA IGRlcHJlY2F0ZWRfc2V0X3ZhbHVlX3R5cGUgKHN0cnVjdCB2YWx1ZQorICAgcmV0dXJuIHZhbHVl X2F2YWlsYWJsZV9jb250ZW50c19iaXRzX2VxICh2YWwxLCBvZmZzZXQxICogVEFSR0VUX0NIQVJf QklULAorIAkJCQkJICAgdmFsMiwgb2Zmc2V0MiAqIFRBUkdFVF9DSEFSX0JJVCwKK0BAIC05Mjcs MTMgKzkyOSwxMyBAQCBkZXByZWNhdGVkX3NldF92YWx1ZV90eXBlIChzdHJ1Y3QgdmFsdWUKICAg IHZhbHVlLT50eXBlID0gdHlwZTsKICB9CiAgCkBAIC00MDYwLDcgKzQwNDAsNyBAQCBJbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHVlLmMKICB7CiAgICB2YWx1ZS0+b2Zmc2V0 ID0gb2Zmc2V0OwogIH0KLUBAIC05MzIsOCArOTM0LDkgQEAgdmFsdWVfY29udGVudHNfYWxsIChz dHJ1Y3QgdmFsdWUgKnZhbHVlKQorQEAgLTExMDMsOCArMTEwNSw5IEBAIHZhbHVlX2NvbnRlbnRz X2FsbCAoc3RydWN0IHZhbHVlICp2YWx1ZSkKICAgICBEU1RfT0ZGU0VUK0xFTkdUSCkgcmFuZ2Ug YXJlIHdob2xseSBhdmFpbGFibGUuICAqLwogIAogIHZvaWQKQEAgLTQwNzIsNyArNDA1Miw3IEBA IEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuYwogIHsKICAgIHJhbmdl X3MgKnI7CiAgICBpbnQgaTsKLUBAIC05ODEsOCArOTg0LDggQEAgdmFsdWVfY29udGVudHNfY29w eV9yYXcgKHN0cnVjdCB2YWx1ZSAqZAorQEAgLTExNTYsOCArMTE1OSw4IEBAIHZhbHVlX2NvbnRl bnRzX2NvcHlfcmF3IChzdHJ1Y3QgdmFsdWUgKmQKICAgICBEU1RfT0ZGU0VUK0xFTkdUSCkgcmFu Z2UgYXJlIHdob2xseSBhdmFpbGFibGUuICAqLwogIAogIHZvaWQKQEAgLTQwODMsNyArNDA2Myw3 IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuYwogIHsKICAgIHJl cXVpcmVfbm90X29wdGltaXplZF9vdXQgKHNyYyk7CiAgCi1AQCAtMTA4Nyw3ICsxMDkwLDcgQEAg dmFsdWVfZW50aXJlbHlfb3B0aW1pemVkX291dCAoY29uc3Qgc3RydQorQEAgLTEyNjIsNyArMTI2 NSw3IEBAIHZhbHVlX2VudGlyZWx5X29wdGltaXplZF9vdXQgKGNvbnN0IHN0cnUKICB9CiAgCiAg aW50CkBAIC00MDkyLDcgKzQwNzIsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMv Z2RiL3ZhbHVlLmMKICB7CiAgICBpZiAoIXZhbHVlLT5vcHRpbWl6ZWRfb3V0KQogICAgICByZXR1 cm4gMTsKLUBAIC0xMTAwLDcgKzExMDMsNyBAQCB2YWx1ZV9iaXRzX3ZhbGlkIChjb25zdCBzdHJ1 Y3QgdmFsdWUgKnZhCitAQCAtMTI3NSw3ICsxMjc4LDcgQEAgdmFsdWVfYml0c192YWxpZCAoY29u c3Qgc3RydWN0IHZhbHVlICp2YQogIAogIGludAogIHZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50 ZXIgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsCkBAIC00MTAxLDcgKzQwODEsNyBAQCBJbmRl eDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHVlLmMKICB7CiAgICBpZiAodmFsdWUt Pmx2YWwgIT0gbHZhbF9jb21wdXRlZAogICAgICAgIHx8ICF2YWx1ZS0+bG9jYXRpb24uY29tcHV0 ZWQuZnVuY3MtPmNoZWNrX3N5bnRoZXRpY19wb2ludGVyKQotQEAgLTExMTAsMjYgKzExMTMsMjYg QEAgdmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3RydQorQEAgLTEyODUsMjYg KzEyODgsMjYgQEAgdmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3RydQogIAkJ CQkJCQkJICBsZW5ndGgpOwogIH0KICAKQEAgLTQxMzIsNyArNDExMiw3IEBAIEluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuYwogIHsKICAgIHZhbHVlLT5wb2ludGVkX3Rv X29mZnNldCA9IHZhbDsKICB9Ci1AQCAtMTk4Miw3ICsxOTg1LDcgQEAgZ2V0X2ludGVybmFsdmFy X2Z1bmN0aW9uIChzdHJ1Y3QgaW50ZXJuYQorQEAgLTIxNTcsNyArMjE2MCw3IEBAIGdldF9pbnRl cm5hbHZhcl9mdW5jdGlvbiAoc3RydWN0IGludGVybmEKICB9CiAgCiAgdm9pZApAQCAtNDE0MSw3 ICs0MTIxLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWx1ZS5jCiAg CQkJICAgaW50IGJpdHNpemUsIHN0cnVjdCB2YWx1ZSAqbmV3dmFsKQogIHsKICAgIGdkYl9ieXRl ICphZGRyOwotQEAgLTI2ODksNyArMjY5Miw3IEBAIHNldF92YWx1ZV9lbmNsb3NpbmdfdHlwZSAo c3RydWN0IHZhbHVlICoKK0BAIC0yODYzLDcgKzI4NjYsNyBAQCBzZXRfdmFsdWVfZW5jbG9zaW5n X3R5cGUgKHN0cnVjdCB2YWx1ZSAqCiAgICAgRklFTEROTyBzYXlzIHdoaWNoIGZpZWxkLiAgKi8K ICAKICBzdHJ1Y3QgdmFsdWUgKgpAQCAtNDE1MCw3ICs0MTMwLDcgQEAgSW5kZXg6IGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzL2dkYi92YWx1ZS5jCiAgCQkgICAgICAgaW50IGZpZWxkbm8sIHN0cnVj dCB0eXBlICphcmdfdHlwZSkKICB7CiAgICBzdHJ1Y3QgdmFsdWUgKnY7Ci1AQCAtMjcxNyw3ICsy NzIwLDcgQEAgdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZworQEAgLTI4 OTEsNyArMjg5NCw3IEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcK ICAJIGJpdC4gIEFzc3VtZSB0aGF0IHRoZSBhZGRyZXNzLCBvZmZzZXQsIGFuZCBlbWJlZGRlZCBv ZmZzZXQKICAJIGFyZSBzdWZmaWNpZW50bHkgYWxpZ25lZC4gICovCiAgCkBAIC00MTU5LDcgKzQx MzksNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHVlLmMKICAgICAg ICBpbnQgY29udGFpbmVyX2JpdHNpemUgPSBUWVBFX0xFTkdUSCAodHlwZSkgKiA4OwogIAogICAg ICAgIGlmIChhcmcxLT5vcHRpbWl6ZWRfb3V0KQotQEAgLTI3NDQsNyArMjc0Nyw3IEBAIHZhbHVl X3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcKK0BAIC0yOTE4LDcgKzI5MjEsNyBA QCB2YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnCiAgICAgICAgLyogVGhp cyBmaWVsZCBpcyBhY3R1YWxseSBhIGJhc2Ugc3Vib2JqZWN0LCBzbyBwcmVzZXJ2ZSB0aGUKICAJ IGVudGlyZSBvYmplY3QncyBjb250ZW50cyBmb3IgbGF0ZXIgcmVmZXJlbmNlcyB0byB2aXJ0dWFs CiAgCSBiYXNlcywgZXRjLiAgKi8KQEAgLTQxNjgsNyArNDE0OCw3IEBAIEluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuYwogIAogICAgICAgIC8qIExhenkgcmVnaXN0ZXIg dmFsdWVzIHdpdGggb2Zmc2V0cyBhcmUgbm90IHN1cHBvcnRlZC4gICovCiAgICAgICAgaWYgKFZB TFVFX0xWQUwgKGFyZzEpID09IGx2YWxfcmVnaXN0ZXIgJiYgdmFsdWVfbGF6eSAoYXJnMSkpCi1A QCAtMjgzNCw3ICsyODM3LDcgQEAgdmFsdWVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50 IGZpZQorQEAgLTMwMDgsNyArMzAxMSw3IEBAIHZhbHVlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFy ZzEsIGludCBmaWUKICBzdHJ1Y3QgdmFsdWUgKgogIHZhbHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFs dWUgKiphcmcxcCwgc3RydWN0IGZuX2ZpZWxkICpmLAogIAkJaW50IGosIHN0cnVjdCB0eXBlICp0 eXBlLApAQCAtNDE3Nyw3ICs0MTU3LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi92YWx1ZS5jCiAgewogICAgc3RydWN0IHZhbHVlICp2OwogICAgc3RydWN0IHR5cGUgKmZ0 eXBlID0gVFlQRV9GTl9GSUVMRF9UWVBFIChmLCBqKTsKLUBAIC0yODk0LDggKzI4OTcsOCBAQCB2 YWx1ZV9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqYXJnMXAsIHN0CitAQCAtMzA2OCw4ICszMDcx LDggQEAgdmFsdWVfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKmFyZzFwLCBzdAogIAogIHN0YXRp YyBpbnQKICB1bnBhY2tfdmFsdWVfYml0c19hc19sb25nXzEgKHN0cnVjdCB0eXBlICpmaWVsZF90 eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQxODgsNyArNDE2OCw3IEBAIEluZGV4 OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuYwogIAkJCSAgICAgTE9OR0VTVCAq cmVzdWx0KQogIHsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRl X29yZGVyIChnZXRfdHlwZV9hcmNoIChmaWVsZF90eXBlKSk7Ci1AQCAtMjkwMyw3ICsyOTA2LDcg QEAgdW5wYWNrX3ZhbHVlX2JpdHNfYXNfbG9uZ18xIChzdHJ1Y3QgdHlwZQorQEAgLTMwNzcsNyAr MzA4MCw3IEBAIHVucGFja192YWx1ZV9iaXRzX2FzX2xvbmdfMSAoc3RydWN0IHR5cGUKICAgIFVM T05HRVNUIHZhbG1hc2s7CiAgICBpbnQgbHNiY291bnQ7CiAgICBpbnQgYnl0ZXNfcmVhZDsKQEAg LTQxOTcsNyArNDE3Nyw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFs dWUuYwogIAogICAgLyogUmVhZCB0aGUgbWluaW11bSBudW1iZXIgb2YgYnl0ZXMgcmVxdWlyZWQ7 IHRoZXJlIG1heSBub3QgYmUKICAgICAgIGVub3VnaCBieXRlcyB0byByZWFkIGFuIGVudGlyZSBV TE9OR0VTVC4gICovCi1AQCAtMjk3Myw3ICsyOTc2LDcgQEAgdW5wYWNrX3ZhbHVlX2JpdHNfYXNf bG9uZ18xIChzdHJ1Y3QgdHlwZQorQEAgLTMxNDcsNyArMzE1MCw3IEBAIHVucGFja192YWx1ZV9i aXRzX2FzX2xvbmdfMSAoc3RydWN0IHR5cGUKICAKICBpbnQKICB1bnBhY2tfdmFsdWVfYml0c19h c19sb25nIChzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIs CkBAIC00MjA2LDcgKzQxODYsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L3ZhbHVlLmMKICAJCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkJ CSAgIExPTkdFU1QgKnJlc3VsdCkKICB7Ci1AQCAtMjk5MSwxMCArMjk5NCwxMCBAQCB1bnBhY2tf dmFsdWVfYml0c19hc19sb25nIChzdHJ1Y3QgdHlwZSAqCitAQCAtMzE2NSwxMCArMzE2OCwxMCBA QCB1bnBhY2tfdmFsdWVfYml0c19hc19sb25nIChzdHJ1Y3QgdHlwZSAqCiAgCiAgc3RhdGljIGlu dAogIHVucGFja192YWx1ZV9maWVsZF9hc19sb25nXzEgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25z dCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQyMTksNyArNDE5OSw3IEBAIEluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuYwogICAgaW50IGJpdHNpemUgPSBUWVBFX0ZJRUxE X0JJVFNJWkUgKHR5cGUsIGZpZWxkbm8pOwogICAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGUgPSBU WVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGZpZWxkbm8pOwogIAotQEAgLTMwMTAsNyArMzAxMyw3IEBA IHVucGFja192YWx1ZV9maWVsZF9hc19sb25nXzEgKHN0cnVjdCB0eXAKK0BAIC0zMTg0LDcgKzMx ODcsNyBAQCB1bnBhY2tfdmFsdWVfZmllbGRfYXNfbG9uZ18xIChzdHJ1Y3QgdHlwCiAgCiAgaW50 CiAgdW5wYWNrX3ZhbHVlX2ZpZWxkX2FzX2xvbmcgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQyMjgsNyArNDIwOCw3IEBAIEluZGV4OiBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuYwogIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZh bCwgTE9OR0VTVCAqcmVzdWx0KQogIHsKICAgIGdkYl9hc3NlcnQgKHZhbCAhPSBOVUxMKTsKLUBA IC0zMDQyLDcgKzMwNDUsNyBAQCB1bnBhY2tfZmllbGRfYXNfbG9uZyAoc3RydWN0IHR5cGUgKnR5 cGUsCitAQCAtMzIxNiw3ICszMjE5LDcgQEAgdW5wYWNrX2ZpZWxkX2FzX2xvbmcgKHN0cnVjdCB0 eXBlICp0eXBlLAogIHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVj dCB0eXBlICp0eXBlLCBpbnQgZmllbGRubywKICAJCSAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxh ZGRyLApAQCAtNDIzNyw3ICs0MjE3LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi92YWx1ZS5jCiAgewogICAgTE9OR0VTVCBsOwogIAotQEAgLTMwNjksMTIgKzMwNzIsMTIg QEAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTMyNDMsMTIg KzMyNDYsMTIgQEAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLAogIAog IHZvaWQKICBtb2RpZnlfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBnZGJfYnl0ZSAqYWRkciwK QEAgLTQyNTIsMTAgKzQyMzIsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi92YWx1ZS5jCiAgCiAgICAvKiBOb3JtYWxpemUgQklUUE9TLiAgKi8KICAgIGFkZHIgKz0gYml0 cG9zIC8gODsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuaAorSW5k ZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3ZhbHVlLmgKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi92YWx1ZS5oCTIwMTMtMDgtMDIgMTY6Mzg6MjYu NDcyMjkyMjUzICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHVlLmgJ MjAxMy0wOC0wMiAxNjozOToxNS43MjEzNjI1NzcgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQw MTI3Lm9yaWcvZ2RiL3ZhbHVlLmgJMjAxNC0wMi0wNiAxODowNzo1NC4zODc5MTExNDIgKzAxMDAK KysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi92YWx1ZS5oCTIwMTQtMDItMDYgMTg6MDk6MjMu MDY0MDA2MzYwICswMTAwCiBAQCAtODIsOCArODIsOCBAQCBleHRlcm4gdm9pZCBzZXRfdmFsdWVf cGFyZW50IChzdHJ1Y3QgdmFsCiAgICAgd2l0aGluIHRoZSByZWdpc3RlcnMgc3RydWN0dXJlLiAg Tm90ZSBhbHNvIHRoZSBtZW1iZXIKICAgICBlbWJlZGRlZF9vZmZzZXQgYmVsb3cuICAqLwpAQCAt NDMxMCw3ICs0MjkwLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWx1 ZS5oCiAgCQkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCk7CiAgCiAgZXh0ZXJuIHN0cnVj dCB2YWx1ZSAqYWxsb2NhdGVfb3B0aW1pemVkX291dF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUp OwotQEAgLTQxNSwxMyArNDE2LDEzIEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmNvZXJjZV9hcnJh eSAoc3RydWMKK0BAIC00MjAsMTMgKzQyMSwxMyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICpjb2Vy Y2VfYXJyYXkgKHN0cnVjCiAgICAgYml0cyBpbiB0aGUgZ2l2ZW4gcmFuZ2UgYXJlIHZhbGlkLCB6 ZXJvIGlmIGFueSBiaXQgaXMgaW52YWxpZC4gICovCiAgCiAgZXh0ZXJuIGludCB2YWx1ZV9iaXRz X3ZhbGlkIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLApAQCAtNDMyNiwyNSArNDMwNiwyNSBA QCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHVlLmgKICAKICAvKiBHaXZl biBhIHZhbHVlLCBkZXRlcm1pbmUgd2hldGhlciB0aGUgY29udGVudHMgYnl0ZXMgc3RhcnRpbmcg YXQKICAgICBPRkZTRVQgYW5kIGV4dGVuZGluZyBmb3IgTEVOR1RIIGJ5dGVzIGFyZSBhdmFpbGFi bGUuICBUaGlzIHJldHVybnMKLUBAIC00MjksNyArNDMwLDcgQEAgZXh0ZXJuIGludCB2YWx1ZV9i aXRzX3N5bnRoZXRpY19wb2ludGVyCitAQCAtNDM0LDcgKzQzNSw3IEBAIGV4dGVybiBpbnQgdmFs dWVfYml0c19zeW50aGV0aWNfcG9pbnRlcgogICAgIGJ5dGUgaXMgdW5hdmFpbGFibGUuICAqLwog IAogIGV4dGVybiBpbnQgdmFsdWVfYnl0ZXNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUg KnZhbHVlLAogLQkJCQkgIGludCBvZmZzZXQsIGludCBsZW5ndGgpOwogKwkJCQkgIExPTkdFU1Qg b2Zmc2V0LCBMT05HRVNUIGxlbmd0aCk7CiAgCi0gLyogTGlrZSB2YWx1ZV9ieXRlc19hdmFpbGFi bGUsIGJ1dCByZXR1cm4gZmFsc2UgaWYgYW55IGJ5dGUgaW4gdGhlCi0gICAgd2hvbGUgb2JqZWN0 IGlzIHVuYXZhaWxhYmxlLiAgKi8KLUBAIC00MzksNyArNDQwLDcgQEAgZXh0ZXJuIGludCB2YWx1 ZV9lbnRpcmVseV9hdmFpbGFibGUgKHN0cgorIC8qIEdpdmVuIGEgdmFsdWUsIGRldGVybWluZSB3 aGV0aGVyIHRoZSBjb250ZW50cyBiaXRzIHN0YXJ0aW5nIGF0CisgICAgT0ZGU0VUIGFuZCBleHRl bmRpbmcgZm9yIExFTkdUSCBiaXRzIGFyZSBhdmFpbGFibGUuICBUaGlzIHJldHVybnMKK0BAIC00 NTYsNyArNDU3LDcgQEAgZXh0ZXJuIGludCB2YWx1ZV9lbnRpcmVseV91bmF2YWlsYWJsZSAocwog ICAgIExFTkdUSCBieXRlcyBhcyB1bmF2YWlsYWJsZS4gICovCiAgCiAgZXh0ZXJuIHZvaWQgbWFy a192YWx1ZV9ieXRlc191bmF2YWlsYWJsZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwKIC0JCQkJCSAg aW50IG9mZnNldCwgaW50IGxlbmd0aCk7CiArCQkJCQkgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNU IGxlbmd0aCk7CiAgCi0gLyogQ29tcGFyZSBMRU5HVEggYnl0ZXMgb2YgVkFMMSdzIGNvbnRlbnRz IHN0YXJ0aW5nIGF0IE9GRlNFVDEgd2l0aAotICAgIExFTkdUSCBieXRlcyBvZiBWQUwyJ3MgY29u dGVudHMgc3RhcnRpbmcgYXQgT0ZGU0VUMi4KLUBAIC00NDksNyArNDUwLDcgQEAgZXh0ZXJuIHZv aWQgbWFya192YWx1ZV9ieXRlc191bmF2YWlsYWJsZQorIC8qIE1hcmsgVkFMVUUncyBjb250ZW50 IGJpdHMgc3RhcnRpbmcgYXQgT0ZGU0VUIGFuZCBleHRlbmRpbmcgZm9yCisgICAgTEVOR1RIIGJp dHMgYXMgdW5hdmFpbGFibGUuICAqLworQEAgLTQ3Miw3ICs0NzMsNyBAQCBleHRlcm4gdm9pZCBt YXJrX3ZhbHVlX2JpdHNfdW5hdmFpbGFibGUKICAgICBleGFtcGxlLCB0byBjb21wYXJlIGEgY29t cGxldGUgb2JqZWN0IHZhbHVlIHdpdGggaXRzZWxmLCBpbmNsdWRpbmcKICAgICBpdHMgZW5jbG9z aW5nIHR5cGUgY2h1bmssIHlvdSdkIGRvOgogIApAQCAtNDM1Myw3ICs0MzMzLDcgQEAgSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWx1ZS5oCiAgICAgICB2YWx1ZV9hdmFpbGFi bGVfY29udGVudHMgKHZhbCwgMCwgdmFsLCAwLCBsZW4pOwogIAogICAgIFJldHVybnMgdHJ1ZSBp ZmYgdGhlIHNldCBvZiBhdmFpbGFibGUgY29udGVudHMgbWF0Y2guICBVbmF2YWlsYWJsZQotQEAg LTQ3Niw5ICs0NzcsOSBAQCBleHRlcm4gdm9pZCBtYXJrX3ZhbHVlX2J5dGVzX3VuYXZhaWxhYmxl CitAQCAtNDk5LDkgKzUwMCw5IEBAIGV4dGVybiB2b2lkIG1hcmtfdmFsdWVfYml0c191bmF2YWls YWJsZQogICAgIGdvbmUsIGl0IHdvcmtzIHdpdGggY29uc3QgdmFsdWVzLiAgVGhlcmVmb3JlLCB0 aGlzIHJvdXRpbmUgbXVzdCBub3QKICAgICBiZSBjYWxsZWQgd2l0aCBsYXp5IHZhbHVlcy4gICov CiAgCkBAIC00MzY2LDcgKzQzNDYsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMv Z2RiL3ZhbHVlLmgKICAKICAvKiBSZWFkIExFTkdUSCBieXRlcyBvZiBtZW1vcnkgc3RhcnRpbmcg YXQgTUVNQUREUiBpbnRvIEJVRkZFUiwgd2hpY2gKICAgICBpcyAob3Igd2lsbCBiZSBjb3BpZWQg dG8pIFZBTCdzIGNvbnRlbnRzIGJ1ZmZlciBvZmZzZXQgYnkKLUBAIC00ODcsNyArNDg4LDcgQEAg ZXh0ZXJuIGludCB2YWx1ZV9hdmFpbGFibGVfY29udGVudHNfZXEgKAorQEAgLTUxMCw3ICs1MTEs NyBAQCBleHRlcm4gaW50IHZhbHVlX2F2YWlsYWJsZV9jb250ZW50c19lcSAoCiAgICAgbWVtb3J5 IGlzIGxpa2V3aXNlIHVuYXZhaWxhYmxlLiAgU1RBQ0sgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIG1l bW9yeQogICAgIGlzIGtub3duIHRvIGJlIHN0YWNrIG1lbW9yeS4gICovCiAgCkBAIC00Mzc1LDcg KzQzNTUsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHVlLmgKICAJ CQkgICAgICAgaW50IHN0YWNrLCBDT1JFX0FERFIgbWVtYWRkciwKICAJCQkgICAgICAgZ2RiX2J5 dGUgKmJ1ZmZlciwgc2l6ZV90IGxlbmd0aCk7CiAgCi1AQCAtNTIxLDcgKzUyMiw3IEBAIGV4dGVy biBDT1JFX0FERFIgdW5wYWNrX3BvaW50ZXIgKHN0cnVjdAorQEAgLTU0NCw3ICs1NDUsNyBAQCBl eHRlcm4gQ09SRV9BRERSIHVucGFja19wb2ludGVyIChzdHJ1Y3QKICAKICBleHRlcm4gaW50IHVu cGFja192YWx1ZV9iaXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpmaWVsZF90eXBlLAogIAkJCQkg ICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQzODQsNyArNDM2NCw3IEBAIEluZGV4 OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuaAogIAkJCQkgICAgICBpbnQgYml0 c2l6ZSwKICAJCQkJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJ CQkJICAgICAgTE9OR0VTVCAqcmVzdWx0KTsKLUBAIC01MzAsMTIgKzUzMSwxMiBAQCBleHRlcm4g TE9OR0VTVCB1bnBhY2tfZmllbGRfYXNfbG9uZyAoc3RyCitAQCAtNTUzLDEyICs1NTQsMTIgQEAg ZXh0ZXJuIExPTkdFU1QgdW5wYWNrX2ZpZWxkX2FzX2xvbmcgKHN0cgogIAkJCQkgICAgIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLAogIAkJCQkgICAgIGludCBmaWVsZG5vKTsKICBleHRlcm4gaW50 IHVucGFja192YWx1ZV9maWVsZF9hc19sb25nIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2Ri X2J5dGUgKnZhbGFkZHIsCkBAIC00Mzk5LDEwICs0Mzc5LDEwIEBAIEluZGV4OiBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuaAogIAkJCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlICp2 YWwpOwogIAogIGV4dGVybiB2b2lkIHBhY2tfbG9uZyAoZ2RiX2J5dGUgKmJ1Ziwgc3RydWN0IHR5 cGUgKnR5cGUsIExPTkdFU1QgbnVtKTsKLUBAIC01OTQsMTIgKzU5NSwxMiBAQCBleHRlcm4gc3Ry dWN0IHZhbHVlICpkZWZhdWx0X3JlYWRfdmFyX3ZhCitAQCAtNjE2LDEyICs2MTcsMTIgQEAgZXh0 ZXJuIHN0cnVjdCB2YWx1ZSAqZGVmYXVsdF9yZWFkX3Zhcl92YQorIAogIGV4dGVybiBzdHJ1Y3Qg dmFsdWUgKmFsbG9jYXRlX3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSk7CiAgZXh0ZXJuIHN0cnVj dCB2YWx1ZSAqYWxsb2NhdGVfdmFsdWVfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUpOwotIGV4dGVy biB2b2lkIGFsbG9jYXRlX3ZhbHVlX2NvbnRlbnRzIChzdHJ1Y3QgdmFsdWUgKnZhbHVlKTsKIC1l eHRlcm4gdm9pZCB2YWx1ZV9jb250ZW50c19jb3B5IChzdHJ1Y3QgdmFsdWUgKmRzdCwgaW50IGRz dF9vZmZzZXQsCiAtCQkJCSBzdHJ1Y3QgdmFsdWUgKnNyYywgaW50IHNyY19vZmZzZXQsCiAtCQkJ CSBpbnQgbGVuZ3RoKTsKQEAgLTQ0MTgsNyArNDM5OCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvdmFsdWUuaAogIAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRl X3JlcGVhdF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBjb3VudCk7CiAgCi1AQCAtNjcx LDE2ICs2NzIsMTYgQEAgZXh0ZXJuIGludCBmaW5kX292ZXJsb2FkX21hdGNoIChzdHJ1Y3Qgdgor QEAgLTY5OCwxNiArNjk5LDE2IEBAIGV4dGVybiBpbnQgZmluZF9vdmVybG9hZF9tYXRjaCAoc3Ry dWN0IHYKICAKICBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9maWVsZCAoc3RydWN0IHZhbHVl ICphcmcxLCBpbnQgZmllbGRubyk7CiAgCkBAIC00NDM4LDcgKzQ0MTgsNyBAQCBJbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHVlLmgKICAKICBleHRlcm4gc3RydWN0IHZhbHVl ICp2YWx1ZV9jYXN0X3BvaW50ZXJzIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdmFsdWUgKiwgaW50 KTsKICAKLUBAIC03NzQsNyArNzc1LDcgQEAgZXh0ZXJuIHZvaWQgc2V0X2ludGVybmFsdmFyX3N0 cmluZyAoc3RydQorQEAgLTgwMiw3ICs4MDMsNyBAQCBleHRlcm4gdm9pZCBzZXRfaW50ZXJuYWx2 YXJfc3RyaW5nIChzdHJ1CiAgZXh0ZXJuIHZvaWQgY2xlYXJfaW50ZXJuYWx2YXIgKHN0cnVjdCBp bnRlcm5hbHZhciAqdmFyKTsKICAKICBleHRlcm4gdm9pZCBzZXRfaW50ZXJuYWx2YXJfY29tcG9u ZW50IChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhciwKQEAgLTQ0NDcsNyArNDQyNyw3IEBAIEluZGV4 OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuaAogIAkJCQkgICAgICAgaW50IGJp dHBvcywgaW50IGJpdHNpemUsCiAgCQkJCSAgICAgICBzdHJ1Y3QgdmFsdWUgKm5ld3ZhbHVlKTsK ICAKLUBAIC04NTYsNyArODU3LDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfeF91bm9w IChzdHJ1YworQEAgLTg4Myw3ICs4ODQsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV94 X3Vub3AgKHN0cnVjCiAgCQkJCSAgIGVudW0gbm9zaWRlIG5vc2lkZSk7CiAgCiAgZXh0ZXJuIHN0 cnVjdCB2YWx1ZSAqdmFsdWVfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKmFyZzFwLCBzdHJ1Y3Qg Zm5fZmllbGQgKmYsCkBAIC00NDU2LDcgKzQ0MzYsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL3ZhbHVlLmgKICAKICBleHRlcm4gaW50IGJpbm9wX3R5cGVzX3VzZXJfZGVm aW5lZF9wIChlbnVtIGV4cF9vcGNvZGUgb3AsCiAgCQkJCSAgICAgICBzdHJ1Y3QgdHlwZSAqdHlw ZTEsCi1AQCAtODg0LDcgKzg4NSw4IEBAIGV4dGVybiB2b2lkIHJlbGVhc2VfdmFsdWVfb3JfaW5j cmVmIChzdHIKK0BAIC05MTEsNyArOTEyLDggQEAgZXh0ZXJuIHZvaWQgcmVsZWFzZV92YWx1ZV9v cl9pbmNyZWYgKHN0cgogIGV4dGVybiBpbnQgcmVjb3JkX2xhdGVzdF92YWx1ZSAoc3RydWN0IHZh bHVlICp2YWwpOwogIAogIGV4dGVybiB2b2lkIG1vZGlmeV9maWVsZCAoc3RydWN0IHR5cGUgKnR5 cGUsIGdkYl9ieXRlICphZGRyLApAQCAtNDQ2Niw3ICs0NDQ2LDcgQEAgSW5kZXg6IGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzL2dkYi92YWx1ZS5oCiAgCiAgZXh0ZXJuIHZvaWQgdHlwZV9wcmludCAo c3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKnZhcnN0cmluZywKICAJCQlzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtLCBpbnQgc2hvdyk7Ci1AQCAtOTE0LDcgKzkxNiw3IEBAIGV4dGVybiB2b2lk IHZhbHVlX3ByaW50X2FycmF5X2VsZW1lbnRzICgKK0BAIC05NDEsNyArOTQzLDcgQEAgZXh0ZXJu IHZvaWQgdmFsdWVfcHJpbnRfYXJyYXlfZWxlbWVudHMgKAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUg KnZhbHVlX3JlbGVhc2VfdG9fbWFyayAoc3RydWN0IHZhbHVlICptYXJrKTsKICAKICBleHRlcm4g dm9pZCB2YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRk ciwKQEAgLTQ0NzUsNyArNDQ1NSw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9n ZGIvdmFsdWUuaAogIAkJICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNl LAogIAkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJICAgICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotQEAgLTk2MywxMCArOTY1LDExIEBA IGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2xpdGVyYWxfY29tcGwKK0BAIC05OTAsMTAgKzk5 MiwxMSBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9saXRlcmFsX2NvbXBsCiAgZXh0ZXJu IHN0cnVjdCB2YWx1ZSAqZmluZF9mdW5jdGlvbl9pbl9pbmZlcmlvciAoY29uc3QgY2hhciAqLAog IAkJCQkJCXN0cnVjdCBvYmpmaWxlICoqKTsKICAKCmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQy NC1iaXRwb3MtMjFvZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIxb2YyNS5wYXRj aAppbmRleCA4MTEyNGZiLi43ZDBiNmZlIDEwMDY0NAotLS0gYS9nZGItcmhiejc5NTQyNC1iaXRw b3MtMjFvZjI1LnBhdGNoCisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMW9mMjUucGF0Y2gK QEAgLTUyLDEwICs1MiwxMCBAQCBDb250ZW50LVR5cGU6IHRleHQveC1wYXRjaAogQ29udGVudC1U cmFuc2Zlci1FbmNvZGluZzogN2JpdAogQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsg ZmlsZW5hbWU9Yml0cG9zLWVuc3VyZS1zaXplX3QucGF0Y2gKIAotSW5kZXg6IGdkYi03LjUuNTAu MjAxMzAxMTgvZ2RiL2FscGhhLXRkZXAuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2Ri L2FscGhhLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjUuNTAuMjAxMzAxMTgub3JpZy9n ZGIvYWxwaGEtdGRlcC5jCTIwMTMtMDEtMTggMjM6MzM6NTkuMjc3MDQ3MzI0ICswMTAwCi0rKysg Z2RiLTcuNS41MC4yMDEzMDExOC9nZGIvYWxwaGEtdGRlcC5jCTIwMTMtMDEtMTggMjM6MzQ6MDIu Njc4MDUxODQ2ICswMTAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9hbHBoYS10 ZGVwLmMJMjAxNC0wMi0wNiAxODoxODo1MS4wMDU2MTY2NzYgKzAxMDAKKysrKyBnZGItNy42Ljkw LjIwMTQwMTI3L2dkYi9hbHBoYS10ZGVwLmMJMjAxNC0wMi0wNiAxODoxODo1My42NzE2MjEzNDkg KzAxMDAKIEBAIC00MTQsNiArNDE0LDEzIEBAIGFscGhhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0 IGdkYmFyY2ggKmcKICAgICAgYWNjdW11bGF0ZV9zaXplID0gMDsKICAgIGVsc2UKQEAgLTcwLDEx ICs3MCwxMSBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvYWxwaGEtdGRlcC5jCiAg ICBzcCAtPSBhY2N1bXVsYXRlX3NpemU7CiAgCiAgICAvKiBLZWVwIHNwIGFsaWduZWQgdG8gYSBt dWx0aXBsZSBvZiAxNiBhcyB0aGUgQUJJIHJlcXVpcmVzLiAgKi8KLUluZGV4OiBnZGItNy41LjUw LjIwMTMwMTE4L2dkYi9jcC12YWxwcmludC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvY3AtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjUuNTAuMjAxMzAxMTgub3Jp Zy9nZGIvY3AtdmFscHJpbnQuYwkyMDEzLTAxLTE4IDIzOjMzOjU5LjI3ODA0NzMyNiArMDEwMAot KysrIGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL2NwLXZhbHByaW50LmMJMjAxMy0wMS0xOCAyMzoz NDowMi42NzkwNTE4NDggKzAxMDAKLUBAIC01NDAsNiArNTQwLDggQEAgY3BfcHJpbnRfdmFsdWUg KHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1YworLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9n ZGIvY3AtdmFscHJpbnQuYwkyMDE0LTAyLTA2IDE4OjE4OjUxLjAwNjYxNjY3NyArMDEwMAorKysr IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NwLXZhbHByaW50LmMJMjAxNC0wMi0wNiAxODoxODo1 My42NzE2MjEzNDkgKzAxMDAKK0BAIC01MzcsNiArNTM3LDggQEAgY3BfcHJpbnRfdmFsdWUgKHN0 cnVjdCB0eXBlICp0eXBlLCBzdHJ1YwogIAkJICBnZGJfYnl0ZSAqYnVmOwogIAkJICBzdHJ1Y3Qg Y2xlYW51cCAqYmFja190bzsKICAKQEAgLTgzLDExICs4MywxMSBAQCBJbmRleDogZ2RiLTcuNS41 MC4yMDEzMDExOC9nZGIvY3AtdmFscHJpbnQuYwogIAkJICBidWYgPSB4bWFsbG9jIChUWVBFX0xF TkdUSCAoYmFzZWNsYXNzKSk7CiAgCQkgIGJhY2tfdG8gPSBtYWtlX2NsZWFudXAgKHhmcmVlLCBi dWYpOwogIAotSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL2R3YXJmMmxvYy5jCitJbmRl eDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZHdhcmYybG9jLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy41LjUwLjIwMTMwMTE4Lm9yaWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTMtMDEtMTggMjM6MzM6 NTkuMjgwMDQ3MzMyICswMTAwCi0rKysgZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvZHdhcmYybG9j LmMJMjAxMy0wMS0xOCAyMzozNDowMi42ODAwNTE4NTEgKzAxMDAKLUBAIC0xNzg0LDYgKzE3ODQs OCBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorLS0tIGdkYi03LjYuOTAu MjAxNDAxMjcub3JpZy9nZGIvZHdhcmYybG9jLmMJMjAxNC0wMi0wNiAxODoxODo1MS4wMDc2MTY2 NzggKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9kd2FyZjJsb2MuYwkyMDE0LTAy LTA2IDE4OjE4OjUzLjY3MjYyMTI5MyArMDEwMAorQEAgLTE4MjEsNiArMTgyMSw4IEBAIHJlYWRf cGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYpCiAgCiAgICAgICAgdGhpc19zaXplID0gKHRo aXNfc2l6ZV9iaXRzICsgc291cmNlX29mZnNldF9iaXRzICUgOCArIDcpIC8gODsKICAgICAgICBz b3VyY2Vfb2Zmc2V0ID0gc291cmNlX29mZnNldF9iaXRzIC8gODsKQEAgLTk2LDcgKzk2LDcgQEAg SW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL2R3YXJmMmxvYy5jCiAgICAgICAgaWYgKGJ1 ZmZlcl9zaXplIDwgdGhpc19zaXplKQogIAl7CiAgCSAgYnVmZmVyX3NpemUgPSB0aGlzX3NpemU7 Ci1AQCAtMTk3NSw2ICsxOTc3LDcgQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUg KnRvLCBzdAorQEAgLTIwMTIsNiArMjAxNCw3IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0 IHZhbHVlICp0bywgc3QKICAJfQogICAgICAgIGVsc2UKICAJewpAQCAtMTA0LDExICsxMDQsMTEg QEAgSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL2R3YXJmMmxvYy5jCiAgCSAgaWYgKGJ1 ZmZlcl9zaXplIDwgdGhpc19zaXplKQogIAkgICAgewogIAkgICAgICBidWZmZXJfc2l6ZSA9IHRo aXNfc2l6ZTsKLUluZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi9maW5kY21kLmMKK0luZGV4 OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9maW5kY21kLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny41LjUwLjIwMTMwMTE4Lm9yaWcvZ2RiL2ZpbmRjbWQuYwkyMDEzLTAxLTE4IDIzOjMzOjU5LjI4 MDA0NzMzMiArMDEwMAotKysrIGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL2ZpbmRjbWQuYwkyMDEz LTAxLTE4IDIzOjM0OjAyLjY4MDA1MTg1MSArMDEwMAotQEAgLTE4Nyw2ICsxODcsNyBAQCBwYXJz ZV9maW5kX2FyZ3MgKGNoYXIgKmFyZ3MsIFVMT05HRVNUICptCistLS0gZ2RiLTcuNi45MC4yMDE0 MDEyNy5vcmlnL2dkYi9maW5kY21kLmMJMjAxNC0wMi0wNiAxODoxODo1MS4wMDg2MTY2NzkgKzAx MDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9maW5kY21kLmMJMjAxNC0wMi0wNiAxODox ODo1My42NzM2MjEyMzkgKzAxMDAKK0BAIC0xODUsNiArMTg1LDcgQEAgcGFyc2VfZmluZF9hcmdz IChjaGFyICphcmdzLCBVTE9OR0VTVCAqbQogIAkgIHNpemVfdCBjdXJyZW50X29mZnNldCA9IHBh dHRlcm5fYnVmX2VuZCAtIHBhdHRlcm5fYnVmOwogIAogIAkgIHBhdHRlcm5fYnVmX3NpemUgPSBw YXR0ZXJuX2J1Zl9zaXplX25lZWQgKiAyOwpAQCAtMTE2LDExICsxMTYsMTEgQEAgSW5kZXg6IGdk Yi03LjUuNTAuMjAxMzAxMTgvZ2RiL2ZpbmRjbWQuYwogIAkgIHBhdHRlcm5fYnVmID0geHJlYWxs b2MgKHBhdHRlcm5fYnVmLCBwYXR0ZXJuX2J1Zl9zaXplKTsKICAJICBwYXR0ZXJuX2J1Zl9lbmQg PSBwYXR0ZXJuX2J1ZiArIGN1cnJlbnRfb2Zmc2V0OwogIAl9Ci1JbmRleDogZ2RiLTcuNS41MC4y MDEzMDExOC9nZGIvcC12YWxwcmludC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIv cC12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNS41MC4yMDEzMDExOC5vcmlnL2dk Yi9wLXZhbHByaW50LmMJMjAxMy0wMS0xOCAyMzozMzo1OS4yODEwNDczMzQgKzAxMDAKLSsrKyBn ZGItNy41LjUwLjIwMTMwMTE4L2dkYi9wLXZhbHByaW50LmMJMjAxMy0wMS0xOCAyMzozNDowMi42 ODAwNTE4NTEgKzAxMDAKLUBAIC03OTcsNiArNzk3LDcgQEAgcGFzY2FsX29iamVjdF9wcmludF92 YWx1ZSAoc3RydWN0IHR5cGUgKgorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvcC12 YWxwcmludC5jCTIwMTQtMDItMDYgMTg6MTg6NTEuMDA4NjE2Njc5ICswMTAwCisrKysgZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvcC12YWxwcmludC5jCTIwMTQtMDItMDYgMTg6MTg6NTMuNjczNjIx MjM5ICswMTAwCitAQCAtNzk4LDYgKzc5OCw3IEBAIHBhc2NhbF9vYmplY3RfcHJpbnRfdmFsdWUg KHN0cnVjdCB0eXBlICoKICAJICAgICAgZ2RiX2J5dGUgKmJ1ZjsKICAJICAgICAgc3RydWN0IGNs ZWFudXAgKmJhY2tfdG87CiAgCkBAIC0xMjgsMTEgKzEyOCwxMSBAQCBJbmRleDogZ2RiLTcuNS41 MC4yMDEzMDExOC9nZGIvcC12YWxwcmludC5jCiAgCSAgICAgIGJ1ZiA9IHhtYWxsb2MgKFRZUEVf TEVOR1RIIChiYXNlY2xhc3MpKTsKICAJICAgICAgYmFja190byA9IG1ha2VfY2xlYW51cCAoeGZy ZWUsIGJ1Zik7CiAgCi1JbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdXRpbHMuYworSW5k ZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3V0aWxzLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny41LjUwLjIwMTMwMTE4Lm9yaWcvZ2RiL3V0aWxzLmMJMjAxMy0wMS0xOCAyMzozMzo1OS4yODIw NDczMzYgKzAxMDAKLSsrKyBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi91dGlscy5jCTIwMTMtMDEt MTggMjM6MzQ6MDIuNjgxMDUxODU0ICswMTAwCi1AQCAtMzIxOSw2ICszMjE5LDE4IEBAIGhvc3Rf YWRkcmVzc190b19zdHJpbmcgKGNvbnN0IHZvaWQgKmFkZHIKKy0tLSBnZGItNy42LjkwLjIwMTQw MTI3Lm9yaWcvZ2RiL3V0aWxzLmMJMjAxNC0wMi0wNiAxODoxODo1MS4wMDg2MTY2NzkgKzAxMDAK KysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi91dGlscy5jCTIwMTQtMDItMDYgMTg6MTg6NTMu Njc0NjIxMTg2ICswMTAwCitAQCAtMzE2OSw2ICszMTY5LDE4IEBAIGhvc3RfYWRkcmVzc190b19z dHJpbmcgKGNvbnN0IHZvaWQgKmFkZHIKICAgIHJldHVybiBzdHI7CiAgfQogIApAQCAtMTUxLDEx ICsxNTEsMTEgQEAgSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3V0aWxzLmMKICBjaGFy ICoKICBnZGJfcmVhbHBhdGggKGNvbnN0IGNoYXIgKmZpbGVuYW1lKQogIHsKLUluZGV4OiBnZGIt Ny41LjUwLjIwMTMwMTE4L2dkYi92YWxvcHMuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcv Z2RiL3ZhbG9wcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNS41MC4yMDEzMDExOC5vcmlnL2dk Yi92YWxvcHMuYwkyMDEzLTAxLTE4IDIzOjMzOjU5LjI4MzA0NzMzOCArMDEwMAotKysrIGdkYi03 LjUuNTAuMjAxMzAxMTgvZ2RiL3ZhbG9wcy5jCTIwMTMtMDEtMTggMjM6MzQ6MDIuNjgyMDUxODU2 ICswMTAwCi1AQCAtMjM2OSw2ICsyMzY5LDcgQEAgc2VhcmNoX3N0cnVjdF9tZXRob2QgKGNvbnN0 IGNoYXIgKm5hbWUsCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi92YWxvcHMuYwky MDE0LTAyLTA2IDE4OjE4OjUxLjAwOTYxNjY4MCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL3ZhbG9wcy5jCTIwMTQtMDItMDYgMTg6MTg6NTMuNjc1NjIxMTM1ICswMTAwCitAQCAt MjE4NCw2ICsyMTg0LDcgQEAgc2VhcmNoX3N0cnVjdF9tZXRob2QgKGNvbnN0IGNoYXIgKm5hbWUs CiAgCSAgICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogIAkgICAgICBDT1JFX0FERFIgYWRk cmVzczsKICAKQEAgLTE2MywxMSArMTYzLDExIEBAIEluZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4 L2dkYi92YWxvcHMuYwogIAkgICAgICB0bXAgPSB4bWFsbG9jIChUWVBFX0xFTkdUSCAoYmFzZWNs YXNzKSk7CiAgCSAgICAgIGJhY2tfdG8gPSBtYWtlX2NsZWFudXAgKHhmcmVlLCB0bXApOwogIAkg ICAgICBhZGRyZXNzID0gdmFsdWVfYWRkcmVzcyAoKmFyZzFwKTsKLUluZGV4OiBnZGItNy41LjUw LjIwMTMwMTE4L2dkYi92YWx1ZS5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdmFs dWUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjUuNTAuMjAxMzAxMTgub3JpZy9nZGIvdmFsdWUu YwkyMDEzLTAxLTE4IDIzOjMzOjU5LjI4NTA0NzM0MiArMDEwMAotKysrIGdkYi03LjUuNTAuMjAx MzAxMTgvZ2RiL3ZhbHVlLmMJMjAxMy0wMS0xOCAyMzozNDowMi42ODMwNTE4NTggKzAxMDAKLUBA IC02NjMsNiArNjYzLDcgQEAgYWxsb2NhdGVfdmFsdWVfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUp CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi92YWx1ZS5jCTIwMTQtMDItMDYgMTg6 MTg6NTEuMDEwNjE2NjgxICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdmFsdWUu YwkyMDE0LTAyLTA2IDE4OjE5OjEwLjI2MTYzNzM5OCArMDEwMAorQEAgLTgyMiw2ICs4MjIsNyBA QCBhbGxvY2F0ZV92YWx1ZV9sYXp5IChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICAgIGRlc2NyaXB0 aW9uIGNvcnJlY3RseS4gICovCiAgICBjaGVja190eXBlZGVmICh0eXBlKTsKICAKQEAgLTE3NSw4 ICsxNzUsOCBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdmFsdWUuYwogICAgdmFs ID0gKHN0cnVjdCB2YWx1ZSAqKSB4emFsbG9jIChzaXplb2YgKHN0cnVjdCB2YWx1ZSkpOwogICAg dmFsLT5jb250ZW50cyA9IE5VTEw7CiAgICB2YWwtPm5leHQgPSBhbGxfdmFsdWVzOwotQEAgLTY5 NCw2ICs2OTUsOCBAQCBhbGxvY2F0ZV92YWx1ZV9sYXp5IChzdHJ1Y3QgdHlwZSAqdHlwZSkKLSB2 b2lkCitAQCAtODUzLDYgKzg1NCw4IEBAIGFsbG9jYXRlX3ZhbHVlX2xhenkgKHN0cnVjdCB0eXBl ICp0eXBlKQorIHN0YXRpYyB2b2lkCiAgYWxsb2NhdGVfdmFsdWVfY29udGVudHMgKHN0cnVjdCB2 YWx1ZSAqdmFsKQogIHsKICsgIHVsb25nZXN0X2ZpdHNfaG9zdF9vcl9lcnJvciAoVFlQRV9MRU5H VEggKHZhbC0+ZW5jbG9zaW5nX3R5cGUpKTsKQEAgLTE4NCw3ICsxODQsNyBAQCBJbmRleDogZ2Ri LTcuNS41MC4yMDEzMDExOC9nZGIvdmFsdWUuYwogICAgaWYgKCF2YWwtPmNvbnRlbnRzKQogICAg ICB2YWwtPmNvbnRlbnRzID0gKGdkYl9ieXRlICopIHh6YWxsb2MgKFRZUEVfTEVOR1RIICh2YWwt PmVuY2xvc2luZ190eXBlKSk7CiAgfQotQEAgLTI2NzIsOCArMjY3NSwxMiBAQCB2b2lkCitAQCAt Mjg1NCw4ICsyODU3LDEyIEBAIHZvaWQKICBzZXRfdmFsdWVfZW5jbG9zaW5nX3R5cGUgKHN0cnVj dCB2YWx1ZSAqdmFsLCBzdHJ1Y3QgdHlwZSAqbmV3X2VuY2xfdHlwZSkKICB7CiAgICBpZiAoVFlQ RV9MRU5HVEggKG5ld19lbmNsX3R5cGUpID4gVFlQRV9MRU5HVEggKHZhbHVlX2VuY2xvc2luZ190 eXBlICh2YWwpKSkgCkBAIC0xOTksMTAgKzE5OSwxMCBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEz MDExOC9nZGIvdmFsdWUuYwogIAogICAgdmFsLT5lbmNsb3NpbmdfdHlwZSA9IG5ld19lbmNsX3R5 cGU7CiAgfQotSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3ZheC10ZGVwLmMKK0luZGV4 OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi92YXgtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuNS41MC4yMDEzMDExOC5vcmlnL2dkYi92YXgtdGRlcC5jCTIwMTMtMDEtMTggMjM6MzQ6MDIu NjgzMDUxODU4ICswMTAwCi0rKysgZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdmF4LXRkZXAuYwky MDEzLTAxLTE4IDIzOjM0OjM0Ljk1MDA5NDE5OCArMDEwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAx Mjcub3JpZy9nZGIvdmF4LXRkZXAuYwkyMDE0LTAyLTA2IDE4OjE4OjUxLjM3MDYxNzA2OCArMDEw MAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3ZheC10ZGVwLmMJMjAxNC0wMi0wNiAxODox ODo1My42NzY2MjEwODYgKzAxMDAKIEBAIC0yMjMsNiArMjIzLDcgQEAgdmF4X3JldHVybl92YWx1 ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyYwogIAkgIFVMT05HRVNUIGFkZHI7CiAgCkBAIC0yMTEs MTEgKzIxMSwxMSBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdmF4LXRkZXAuYwog IAkgIHJlYWRfbWVtb3J5IChhZGRyLCByZWFkYnVmLCBsZW4pOwogIAl9CiAgCi1JbmRleDogZ2Ri LTcuNS41MC4yMDEzMDExOC9nZGIvZGVmcy5oCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvZGVmcy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNS41MC4yMDEzMDExOC5vcmlnL2dkYi9k ZWZzLmgJMjAxMy0wMS0xOCAyMzozNDowMi42ODQwNTE4NjAgKzAxMDAKLSsrKyBnZGItNy41LjUw LjIwMTMwMTE4L2dkYi9kZWZzLmgJMjAxMy0wMS0xOCAyMzozNDoxNC4yMzgwNjcxOTMgKzAxMDAK LUBAIC04MDEsNCArODAxLDYgQEAgZW51bSBibG9ja19lbnVtCistLS0gZ2RiLTcuNi45MC4yMDE0 MDEyNy5vcmlnL2dkYi9kZWZzLmgJMjAxNC0wMi0wNiAxODoxODo1MS4zNzA2MTcwNjggKzAxMDAK KysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9kZWZzLmgJMjAxNC0wMi0wNiAxODoxODo1My42 Nzc2MjEwMzggKzAxMDAKK0BAIC03NjgsNCArNzY4LDYgQEAgZW51bSBibG9ja19lbnVtCiAgCiAg I2luY2x1ZGUgInV0aWxzLmgiCiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9z LTIyb2YyNS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMm9mMjUucGF0Y2gKaW5kZXgg YzM5NjU1NC4uNTA4MmI5ZiAxMDA2NDQKLS0tIGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIyb2Yy NS5wYXRjaAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjJvZjI1LnBhdGNoCkBAIC03MSw3 ICs3MSw3IEBAIGdkYi9DaGFuZ2VMb2c6CiAJKHJlbW90ZV9yZW1vdmVfd2F0Y2hwb2ludCk6IExp a2V3aXNlLgogCShyZW1vdGVfd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSk6IEV4cGFuZCBw YXJhbWV0ZXIgTEVOR1RICiAJdG8gTE9OR0VTVC4KLQkqIHMzOTAtbmF0LmMgKHMzOTBfaW5zZXJ0 X3dhdGNocG9pbnQpOiBFeHBhbmQgcGFyYW1ldGVyIExFTiB0bworCSogczM5MC1saW51eC1uYXQu YyAoczM5MF9pbnNlcnRfd2F0Y2hwb2ludCk6IEV4cGFuZCBwYXJhbWV0ZXIgTEVOIHRvCiAJTE9O R0VTVC4KIAkoczM5MF9yZW1vdmVfd2F0Y2hwb2ludCk6IExpa2V3aXNlLgogCSogdGFyZ2V0LmMg KHVwZGF0ZV9jdXJyZW50X3RhcmdldCk6IEV4cGFuZCBwYXJhbWV0ZXIgTEVOIGZvcgpAQCAtNDkz LDEwICs0OTMsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9yZW1vdGUu YwogICAgcHV0cGt0IChycy0+YnVmKTsKICAgIGdldHBrdCAoJnJzLT5idWYsICZycy0+YnVmX3Np emUsIDApOwogIAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zMzkwLW5hdC5j CitJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3MzOTAtbGludXgtbmF0LmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9zMzkwLW5hdC5j CTIwMTMtMDgtMDIgMTY6NDI6MjkuNTc4NjMyOTEzICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL3MzOTAtbmF0LmMJMjAxMy0wOC0wMiAxNjo0MjozNC4xMDM2MzkxMTYgKzAy MDAKKy0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9zMzkwLWxpbnV4LW5hdC5j CTIwMTMtMDgtMDIgMTY6NDI6MjkuNTc4NjMyOTEzICswMjAwCisrKysgZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL3MzOTAtbGludXgtbmF0LmMJMjAxMy0wOC0wMiAxNjo0MjozNC4xMDM2Mzkx MTYgKzAyMDAKIEBAIC01MTYsNyArNTE2LDcgQEAgczM5MF9maXhfd2F0Y2hfcG9pbnRzIChzdHJ1 Y3QgbHdwX2luZm8gKgogIH0KICAKCmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3Mt MjNvZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIzb2YyNS5wYXRjaAppbmRleCA4 MjdkNjRkLi4wZjgyOWE3IDEwMDY0NAotLS0gYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjNvZjI1 LnBhdGNoCisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0Y2gKQEAgLTk2LDcg Kzk2LDcgQEAgZ2RiL0NoYW5nZUxvZwogCUxFTiB0byBMT05HRVNULgogCShyYW5fb3V0X29mX3Jl Z2lzdGVyc19mb3JfYXJndW1lbnRzKTogRXhwYW5kIFNQQUNFLCBKSiB0bwogCUxPTkdFU1QuCi0J KiBzMzkwLXRkZXAuYyAoczM5MF92YWx1ZV9mcm9tX3JlZ2lzdGVyKTogRXhwYW5kIExFTiB0byBM T05HRVNULgorCSogczM5MC1saW51eC10ZGVwLmMgKHMzOTBfdmFsdWVfZnJvbV9yZWdpc3Rlcik6 IEV4cGFuZCBMRU4gdG8gTE9OR0VTVC4KIAkoaXNfcG93ZXJfb2ZfdHdvKTogRXhwYW5kIHBhcmFt ZXRlciBOIHRvIFVMT05HRVNULgogCShzMzkwX3B1c2hfZHVtbXlfY2FsbCk6IEV4cGFuZCBMRU5H VEggdG8gVUxPTkdFU1QuCiAJKiBzY29yZS10ZGVwLmMgKHNjb3JlX3B1c2hfZHVtbXlfY2FsbCk6 IEV4cGFuZCBBUkdMRU4gdG8KQEAgLTEzNywxMCArMTM3LDEwIEBAIENvbnRlbnQtVHlwZTogdGV4 dC94LXBhdGNoCiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CiBDb250ZW50LURpc3Bv c2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1iaXRwb3MtdGRlcC5wYXRjaAogCi1JbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2FscGhhLXRkZXAuYworSW5kZXg6IGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL2FscGhhLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2FscGhhLXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjAxLjEy ODY3NjA5NCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hbHBoYS10ZGVw LmMJMjAxMy0wOC0wMiAxNjo0MzowNC43MjM2ODEwMDQgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIw MTQwMTI3Lm9yaWcvZ2RiL2FscGhhLXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjUyLjk3MDc0Nzcx NiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FscGhhLXRkZXAuYwkyMDE0LTAy LTA2IDE4OjIwOjU3LjI5NDc1MjM2MiArMDEwMAogQEAgLTI5OSwxOCArMjk5LDE4IEBAIGFscGhh X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKICB7CiAgICBlbnVtIGJmZF9lbmRp YW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CkBAIC0xODQsMjIg KzE4NCwyMiBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2FscGhhLXRkZXAu YwogIAkgICAgICBtZW1jcHkgKGFyZ19yZWdfYnVmZmVyICsgb2Zmc2V0LCBjb250ZW50cywgdGxl bik7CiAgCSAgICAgIG9mZnNldCArPSB0bGVuOwogIAkgICAgICBjb250ZW50cyArPSB0bGVuOwot SW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hbWQ2NC10ZGVwLmMKK0luZGV4OiBn ZGItNy42LjkwLjIwMTQwMTI3L2dkYi9hbWQ2NC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9hbWQ2NC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0 MzowMS4xMzA2NzYwOTcgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYW1k NjQtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDQuNzI0NjgxMDA2ICswMjAwCi1AQCAtNjE2LDcg KzYxNiw3IEBAIGFtZDY0X3JldHVybl92YWx1ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmEKKy0tLSBn ZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2FtZDY0LXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIw OjUyLjk3Mjc0NzcxOCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FtZDY0LXRk ZXAuYwkyMDE0LTAyLTA2IDE4OjIxOjUxLjEwNjgxMDgxNCArMDEwMAorQEAgLTYzMyw3ICs2MzMs NyBAQCBhbWQ2NF9yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhCisgCQkgICAgZ2Ri X2J5dGUgKnJlYWRidWYsIGNvbnN0IGdkYl9ieXRlICp3cml0ZWJ1ZikKICB7Ci0gICBzdHJ1Y3Qg Z2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKICAgIGVudW0gYW1k NjRfcmVnX2NsYXNzIGNsYXNzWzJdOwogLSAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsK ICsgIExPTkdFU1QgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOwogICAgc3RhdGljIGludCBpbnRl Z2VyX3JlZ251bVtdID0geyBBTUQ2NF9SQVhfUkVHTlVNLCBBTUQ2NF9SRFhfUkVHTlVNIH07CiAg ICBzdGF0aWMgaW50IHNzZV9yZWdudW1bXSA9IHsgQU1ENjRfWE1NMF9SRUdOVU0sIEFNRDY0X1hN TTFfUkVHTlVNIH07CiAgICBpbnQgaW50ZWdlcl9yZWcgPSAwOwotQEAgLTc2OSw4ICs3NjksOCBA QCBhbWQ2NF9wdXNoX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlICpyCi0gICAgICB0aGF0IHJl Z2lzdGVyIG51bWJlciAob3IgYSBuZWdhdGl2ZSB2YWx1ZSBvdGhlcndpc2UpLiAgKi8KLSAgIGlu dCAqYXJnX2FkZHJfcmVnbm8gPSBhbGxvY2EgKG5hcmdzICogc2l6ZW9mIChpbnQpKTsKK0BAIC03 ODQsOCArNzg0LDggQEAgYW1kNjRfcHVzaF9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcgor ICAgfTsKKyAgIHN0cnVjdCB2YWx1ZSAqKnN0YWNrX2FyZ3MgPSBhbGxvY2EgKG5hcmdzICogc2l6 ZW9mIChzdHJ1Y3QgdmFsdWUgKikpOwogICAgaW50IG51bV9zdGFja19hcmdzID0gMDsKIC0gIGlu dCBudW1fZWxlbWVudHMgPSAwOwogLSAgaW50IGVsZW1lbnQgPSAwOwpAQCAtMjA4LDcgKzIwOCw3 IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYW1kNjQtdGRlcC5jCiAgICBp bnQgaW50ZWdlcl9yZWcgPSAwOwogICAgaW50IHNzZV9yZWcgPSAwOwogICAgaW50IGk7Ci1AQCAt Nzg0LDcgKzc4NCw3IEBAIGFtZDY0X3B1c2hfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUgKnIK K0BAIC03OTcsNyArNzk3LDcgQEAgYW1kNjRfcHVzaF9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNo ZSAqcgogICAgZm9yIChpID0gMDsgaSA8IG5hcmdzOyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1 Y3QgdHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZ3NbaV0pOwpAQCAtMjE3LDExICsyMTcsMTEg QEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hbWQ2NC10ZGVwLmMKICAgICAg ICBlbnVtIGFtZDY0X3JlZ19jbGFzcyBjbGFzc1syXTsKICAgICAgICBpbnQgbmVlZGVkX2ludGVn ZXJfcmVncyA9IDA7CiAgICAgICAgaW50IG5lZWRlZF9zc2VfcmVncyA9IDA7Ci1JbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCitJbmRleDogZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwky MDEzLTA4LTAyIDE2OjQzOjAxLjEzNTY3NjEwNCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjA0LjcyNDY4 MTAwNiArMDIwMAotQEAgLTc5LDcgKzc5LDcgQEAgYW1kNjRfd2luZG93c19yZXR1cm5fdmFsdWUg KHN0cnVjdCBnZGJhcgorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvYW1kNjQtd2lu ZG93cy10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Mi45NzM3NDc3MjAgKzAxMDAKKysrKyBnZGIt Ny42LjkwLjIwMTQwMTI3L2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIw OjU3LjI5Njc1MjM2NCArMDEwMAorQEAgLTI4OCw3ICsyODgsNyBAQCBhbWQ2NF93aW5kb3dzX3Jl dHVybl92YWx1ZSAoc3RydWN0IGdkYmFyCiAgCQkJICAgIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1 Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAogIAkJCSAgICBnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3Qg Z2RiX2J5dGUgKndyaXRlYnVmKQogIHsKQEAgLTIzMCwxMCArMjMwLDEwIEBAIEluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMKICAgIGludCByZWdu dW0gPSAtMTsKICAKICAgIC8qIFNlZSBpZiBvdXIgdmFsdWUgaXMgcmV0dXJuZWQgdGhyb3VnaCBh IHJlZ2lzdGVyLiAgSWYgaXQgaXMsIHRoZW4KLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIvYXJtLXRkZXAuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FybS10ZGVw LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9hcm0t dGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDEuMTQwNjc2MTEwICswMjAwCi0rKysgZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL2FybS10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowNC43Mjc2ODEw MTAgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2FybS10ZGVwLmMJMjAx NC0wMi0wNiAxODoyMDo1Mi45Nzg3NDc3MjUgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3 L2dkYi9hcm0tdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTcuMjk5NzUyMzY3ICswMTAwCiBAQCAt MzQ5OCw3ICszNDk4LDcgQEAgYXJtX3ZmcF9jcHJjX3JlZ19jaGFyIChlbnVtIGFybV92ZnBfY3By YwogICAgIGFycmF5KS4gIFZlY3RvcnMgYW5kIGNvbXBsZXggdHlwZXMgYXJlIG5vdCBjdXJyZW50 bHkgc3VwcG9ydGVkLAogICAgIG1hdGNoaW5nIHRoZSBnZW5lcmljIEFBUENTIHN1cHBvcnQuICAq LwpAQCAtMzA4LDExICszMDgsMTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi9hcm0tdGRlcC5jCiAgICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBlOwogICAgICAgIHN0cnVj dCB0eXBlICp0YXJnZXRfdHlwZTsKICAgICAgICBlbnVtIHR5cGVfY29kZSB0eXBlY29kZTsKLUlu ZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYXZyLXRkZXAuYworSW5kZXg6IGdkYi03 LjYuOTAuMjAxNDAxMjcvZ2RiL2F2ci10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9hdnItdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDEuMTQy Njc2MTEzICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2F2ci10ZGVwLmMJ MjAxMy0wOC0wMiAxNjo0MzowNC43Mjg2ODEwMTEgKzAyMDAKLUBAIC0xMTcwLDEzICsxMTcwLDE0 IEBAIGF2cl9kdW1teV9pZCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHMKKy0tLSBnZGItNy42 LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2F2ci10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Mi45ODA3 NDc3MjcgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9hdnItdGRlcC5jCTIwMTQt MDItMDYgMTg6MjA6NTcuMjk5NzUyMzY3ICswMTAwCitAQCAtMTE2NywxMyArMTE2NywxNCBAQCBh dnJfZHVtbXlfaWQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzCiAgCiAgc3RydWN0IHN0YWNr X2l0ZW0KICB7CkBAIC0zMjksNyArMzI5LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi9hdnItdGRlcC5jCiAgewogICAgc3RydWN0IHN0YWNrX2l0ZW0gKnNpOwogICAgc2kg PSB4bWFsbG9jIChzaXplb2YgKHN0cnVjdCBzdGFja19pdGVtKSk7Ci1AQCAtMTI2NSwxMiArMTI2 NiwxMiBAQCBhdnJfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCitAQCAtMTI2 MiwxMiArMTI2MywxMiBAQCBhdnJfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri CiAgCiAgICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKICAgICAgewpAQCAtMzQ1LDEwICsz NDUsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hdnItdGRlcC5jCiAg CiAgICAgICAgLyogQ2FsY3VsYXRlIHRoZSBwb3RlbnRpYWwgbGFzdCByZWdpc3RlciBuZWVkZWQu ICAqLwogICAgICAgIGxhc3RfcmVnbnVtID0gcmVnbnVtIC0gKGxlbiArIChsZW4gJiAxKSk7Ci1J bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2JmaW4tdGRlcC5jCitJbmRleDogZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvYmZpbi10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9iZmluLXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjAx LjE0MjY3NjExMyArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9iZmluLXRk ZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjA0LjcyODY4MTAxMSArMDIwMAorLS0tIGdkYi03LjYuOTAu MjAxNDAxMjcub3JpZy9nZGIvYmZpbi10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Mi45ODA3NDc3 MjcgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9iZmluLXRkZXAuYwkyMDE0LTAy LTA2IDE4OjIwOjU3LjMwMDc1MjM2OCArMDEwMAogQEAgLTUwNiw3ICs1MDYsNyBAQCBiZmluX3B1 c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCiAgICBnZGJfYnl0ZSBidWZbNF07CiAg ICBpbnQgaTsKQEAgLTM2NywxMSArMzY3LDExIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvYmZpbi10ZGVwLmMKICAKICAgICAgICBzcCAtPSBjb250YWluZXJfbGVuOwogICAg ICAgIHdyaXRlX21lbW9yeSAoc3AsIHZhbHVlX2NvbnRlbnRzX3dyaXRlYWJsZSAoYXJnc1tpXSks IGNvbnRhaW5lcl9sZW4pOwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jcmlz LXRkZXAuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NyaXMtdGRlcC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvY3Jpcy10ZGVwLmMJ MjAxMy0wOC0wMiAxNjo0MzowNC43Mjk2ODEwMTIgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvY3Jpcy10ZGVwLmMJMjAxMy0wOC0wMiAxNjo1MjoyOC4zMTY0OTE1NjEgKzAy MDAKLUBAIC02NzAsMTMgKzY3MCwxMyBAQCBzdGF0aWMgQ09SRV9BRERSIGNyaXNfdW53aW5kX3Nw IChzdHJ1Y3QKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2NyaXMtdGRlcC5jCTIw MTQtMDItMDYgMTg6MjA6NTIuOTgxNzQ3NzI4ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvY3Jpcy10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Ny4zMDE3NTIzNjkgKzAxMDAKK0BA IC02NjUsMTMgKzY2NSwxMyBAQCBzdGF0aWMgQ09SRV9BRERSIGNyaXNfdW53aW5kX3NwIChzdHJ1 Y3QKICAKICBzdHJ1Y3Qgc3RhY2tfaXRlbQogIHsKQEAgLTM4Nyw3ICszODcsNyBAQCBJbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2NyaXMtdGRlcC5jCiAgewogICAgc3RydWN0IHN0 YWNrX2l0ZW0gKnNpOwogICAgc2kgPSB4bWFsbG9jIChzaXplb2YgKHN0cnVjdCBzdGFja19pdGVt KSk7Ci1AQCAtODQ5LDEzICs4NDksMTMgQEAgY3Jpc19wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBn ZGJhcmNoICpnZAorQEAgLTg0NCwxMyArODQ0LDEzIEBAIGNyaXNfcHVzaF9kdW1teV9jYWxsIChz dHJ1Y3QgZ2RiYXJjaCAqZ2QKICAKICAgIGZvciAoYXJnbnVtID0gMDsgYXJnbnVtIDwgbmFyZ3M7 IGFyZ251bSsrKQogICAgICB7CkBAIC00MDUsMTAgKzQwNSwxMCBAQCBJbmRleDogZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL2NyaXMtdGRlcC5jCiAgICAgICAgCiAgICAgICAgLyogSG93IG1h eSByZWdpc3RlcnMgd29ydGggb2Ygc3RvcmFnZSBkbyB3ZSBuZWVkIGZvciB0aGlzIGFyZ3VtZW50 PyAgKi8KICAgICAgICByZWdfZGVtYW5kID0gKGxlbiAvIDQpICsgKGxlbiAlIDQgIT0gMCA/IDEg OiAwKTsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvaDgzMDAtdGRlcC5jCitJ bmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvaDgzMDAtdGRlcC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvaDgzMDAtdGRlcC5jCTIwMTMtMDgt MDIgMTY6NDM6MDEuMTQ0Njc2MTE2ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMv Z2RiL2g4MzAwLXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjA0LjczMDY4MTAxNCArMDIwMAorLS0t IGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvaDgzMDAtdGRlcC5jCTIwMTQtMDItMDYgMTg6 MjA6NTIuOTgxNzQ3NzI4ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvaDgzMDAt dGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTcuMzAxNzUyMzY5ICswMTAwCiBAQCAtNjQwLDcgKzY0 MCw3IEBAIGg4MzAwX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKICAJCSAgICAg ICBpbnQgc3RydWN0X3JldHVybiwgQ09SRV9BRERSIHN0cnVjdF9hZGRyKQogIHsKQEAgLTQ0MSwx MCArNDQxLDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvaDgzMDAtdGRl cC5jCiAgCiAgCSAgICAgIGZvciAob2Zmc2V0ID0gMDsgb2Zmc2V0IDwgcGFkZGVkX2xlbjsgb2Zm c2V0ICs9IHdvcmRzaXplKQogIAkJewotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi9ocHBhLXRkZXAuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2hwcGEtdGRlcC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvaHBwYS10 ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowMS4xNDU2NzYxMTcgKzAyMDAKLSsrKyBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvaHBwYS10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowNC43MzE2ODEw MTUgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2hwcGEtdGRlcC5jCTIw MTQtMDItMDYgMTg6MjA6NTIuOTgyNzQ3NzI5ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvaHBwYS10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Ny4zMDI3NTIzNzEgKzAxMDAKIEBA IC05NjEsNyArOTYxLDcgQEAgaHBwYTY0X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gg KgogICAgICB7CiAgICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2ldOwpAQCAtNDYzLDEx ICs0NjMsMTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9ocHBhLXRkZXAu YwogICAgaW50IHJlZ251bSwgb2Zmc2V0OwogIAogICAgaWYgKGxlbiA+IDE2KQotSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9pMzg2LWRhcndpbi10ZGVwLmMKK0luZGV4OiBnZGIt Ny42LjkwLjIwMTQwMTI3L2dkYi9pMzg2LWRhcndpbi10ZGVwLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9pMzg2LWRhcndpbi10ZGVwLmMJMjAxMy0w OC0wMiAxNjo0MzowMS4xNDU2NzYxMTcgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDQuNzMxNjgxMDE1ICsw MjAwCi1AQCAtMTY2LDcgKzE2Niw3IEBAIGkzODZfZGFyd2luX3B1c2hfZHVtbXlfY2FsbCAoc3Ry dWN0IGdkYmEKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2kzODYtZGFyd2luLXRk ZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjUyLjk4Mjc0NzcyOSArMDEwMAorKysrIGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjU3LjMwMjc1 MjM3MSArMDEwMAorQEAgLTE2NCw3ICsxNjQsNyBAQCBpMzg2X2Rhcndpbl9wdXNoX2R1bW15X2Nh bGwgKHN0cnVjdCBnZGJhCiAgCiAgICBmb3IgKHdyaXRlX3Bhc3MgPSAwOyB3cml0ZV9wYXNzIDwg Mjsgd3JpdGVfcGFzcysrKQogICAgICB7CkBAIC00NzYsMTEgKzQ3NiwxMSBAQCBJbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwogICAgICAgIGludCBu dW1fbTEyOCA9IDA7CiAgCiAgICAgICAgaWYgKHN0cnVjdF9yZXR1cm4pCi1JbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL2kzODYtdGRlcC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0 MDEyNy9nZGIvaTM4Ni10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy5vcmlnL2dkYi9pMzg2LXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjAxLjE0NzY3NjEyMCAr MDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9pMzg2LXRkZXAuYwkyMDEzLTA4 LTAyIDE2OjQzOjA0LjczMzY4MTAxOCArMDIwMAotQEAgLTI0MDcsNyArMjQwNyw3IEBAIGkzODZf cHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKy0tLSBnZGItNy42LjkwLjIwMTQw MTI3Lm9yaWcvZ2RiL2kzODYtdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTIuOTg1NzQ3NzMyICsw MTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvaTM4Ni10ZGVwLmMJMjAxNC0wMi0wNiAx ODoyMDo1Ny4zMDM3NTIzNzIgKzAxMDAKK0BAIC0yNDczLDcgKzI0NzMsNyBAQCBpMzg2X3B1c2hf ZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCiAgICBnZGJfYnl0ZSBidWZbNF07CiAgICBp bnQgaTsKICAgIGludCB3cml0ZV9wYXNzOwpAQCAtNDg5LDcgKzQ4OSw3IEBAIEluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvaTM4Ni10ZGVwLmMKICAKICAgIC8qIERldGVybWluZSB0 aGUgdG90YWwgc3BhY2UgcmVxdWlyZWQgZm9yIGFyZ3VtZW50cyBhbmQgc3RydWN0CiAgICAgICBy ZXR1cm4gYWRkcmVzcyBpbiBhIGZpcnN0IHBhc3MgKGFsbG93aW5nIGZvciAxNi1ieXRlLWFsaWdu ZWQKLUBAIC0yNDE1LDcgKzI0MTUsNyBAQCBpMzg2X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdk YmFyY2ggKmdkCitAQCAtMjQ4MSw3ICsyNDgxLDcgQEAgaTM4Nl9wdXNoX2R1bW15X2NhbGwgKHN0 cnVjdCBnZGJhcmNoICpnZAogIAogICAgZm9yICh3cml0ZV9wYXNzID0gMDsgd3JpdGVfcGFzcyA8 IDI7IHdyaXRlX3Bhc3MrKykKICAgICAgewpAQCAtNDk4LDcgKzQ5OCw3IEBAIEluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvaTM4Ni10ZGVwLmMKICAKICAgICAgICBpZiAoc3RydWN0 X3JldHVybikKICAJewotQEAgLTI0MzIsNyArMjQzMiw3IEBAIGkzODZfcHVzaF9kdW1teV9jYWxs IChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKK0BAIC0yNDk4LDcgKzI0OTgsNyBAQCBpMzg2X3B1c2hfZHVt bXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCiAgCiAgICAgICAgZm9yIChpID0gMDsgaSA8IG5h cmdzOyBpKyspCiAgCXsKQEAgLTUwNyw3ICs1MDcsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL2kzODYtdGRlcC5jCiAgCiAgCSAgaWYgKHdyaXRlX3Bhc3MpCiAgCSAgICB7 Ci1AQCAtMjYzOSw3ICsyNjM5LDcgQEAgaTM4Nl9yZWdfc3RydWN0X3JldHVybl9wIChzdHJ1Y3Qg Z2RiYXJjaAorQEAgLTI3MDUsNyArMjcwNSw3IEBAIGkzODZfcmVnX3N0cnVjdF9yZXR1cm5fcCAo c3RydWN0IGdkYmFyY2gKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJj aF90ZGVwIChnZGJhcmNoKTsKICAgIGVudW0gdHlwZV9jb2RlIGNvZGUgPSBUWVBFX0NPREUgKHR5 cGUpOwpAQCAtNTE2LDcgKzUxNiw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9n ZGIvaTM4Ni10ZGVwLmMKICAKICAgIGdkYl9hc3NlcnQgKGNvZGUgPT0gVFlQRV9DT0RFX1NUUlVD VAogICAgICAgICAgICAgICAgfHwgY29kZSA9PSBUWVBFX0NPREVfVU5JT04KLUBAIC0zMDk0LDcg KzMwOTQsNyBAQCBzdGF0aWMgaW50CitAQCAtMzI0OSw3ICszMjQ5LDcgQEAgc3RhdGljIGludAog IGkzODZfY29udmVydF9yZWdpc3Rlcl9wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICAJCQkg aW50IHJlZ251bSwgc3RydWN0IHR5cGUgKnR5cGUpCiAgewpAQCAtNTI1LDcgKzUyNSw3IEBAIElu ZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvaTM4Ni10ZGVwLmMKICAKICAgIC8qIFZh bHVlcyBtYXkgYmUgc3ByZWFkIGFjcm9zcyBtdWx0aXBsZSByZWdpc3RlcnMuICBNb3N0IGRlYnVn Z2luZwogICAgICAgZm9ybWF0cyBhcmVuJ3QgZXhwcmVzc2l2ZSBlbm91Z2ggdG8gc3BlY2lmeSB0 aGUgbG9jYXRpb25zLCBzbwotQEAgLTMxMjcsNyArMzEyNyw3IEBAIGkzODZfcmVnaXN0ZXJfdG9f dmFsdWUgKHN0cnVjdCBmcmFtZV9pbmYKK0BAIC0zMjgyLDcgKzMyODIsNyBAQCBpMzg2X3JlZ2lz dGVyX3RvX3ZhbHVlIChzdHJ1Y3QgZnJhbWVfaW5mCiAgCQkJaW50ICpvcHRpbWl6ZWRwLCBpbnQg KnVuYXZhaWxhYmxlcCkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFt ZV9hcmNoIChmcmFtZSk7CkBAIC01MzQsNyArNTM0LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi9pMzg2LXRkZXAuYwogIAogICAgaWYgKGkzODZfZnBfcmVnbnVtX3AgKGdk YmFyY2gsIHJlZ251bSkpCiAgICAgIHJldHVybiBpMzg3X3JlZ2lzdGVyX3RvX3ZhbHVlIChmcmFt ZSwgcmVnbnVtLCB0eXBlLCB0bywKLUBAIC0zMTYzLDcgKzMxNjMsNyBAQCBzdGF0aWMgdm9pZAor QEAgLTMzMTgsNyArMzMxOCw3IEBAIHN0YXRpYyB2b2lkCiAgaTM4Nl92YWx1ZV90b19yZWdpc3Rl ciAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBpbnQgcmVnbnVtLAogIAkJCXN0cnVjdCB0eXBl ICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqZnJvbSkKICB7CkBAIC01NDMsMTEgKzU0MywxMSBAQCBJ bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2kzODYtdGRlcC5jCiAgCiAgICBpZiAo aTM4Nl9mcF9yZWdudW1fcCAoZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKSwgcmVnbnVtKSkKICAgICAg ewotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9pYTY0LXRkZXAuYworSW5kZXg6 IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2lhNjQtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvaWE2NC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0 MzowMS4xNDg2NzYxMjEgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvaWE2 NC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowNC43MzQ2ODEwMTkgKzAyMDAKLUBAIC0zOTc0LDgg KzM5NzQsMTAgQEAgaWE2NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAorLS0t IGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvaWE2NC10ZGVwLmMJMjAxNC0wMi0wNiAxODoy MDo1Mi45ODY3NDc3MzMgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9pYTY0LXRk ZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjU3LjMwNDc1MjM3MyArMDEwMAorQEAgLTM4NTEsOCArMzg1 MSwxMCBAQCBpYTY0X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCiAgICBpbnQg YXJnbm87CiAgICBzdHJ1Y3QgdmFsdWUgKmFyZzsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwpAQCAt NTYwLDEwICs1NjAsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9pYTY0 LXRkZXAuYwogICAgaW50IGZsb2F0cmVnOwogICAgVUxPTkdFU1QgYnNwOwogICAgQ09SRV9BRERS IGZ1bmNkZXNjYWRkciwgcGMsIGdsb2JhbF9wb2ludGVyOwotSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi9pcTIwMDAtdGRlcC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvaXEyMDAwLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz Lm9yaWcvZ2RiL2lxMjAwMC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowMS4xNDk2NzYxMjMgKzAy MDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvaXEyMDAwLXRkZXAuYwkyMDEzLTA4 LTAyIDE2OjQzOjA0LjczNDY4MTAxOSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3Jp Zy9nZGIvaXEyMDAwLXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjUyLjk4Njc0NzczMyArMDEwMAor KysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2lxMjAwMC10ZGVwLmMJMjAxNC0wMi0wNiAxODoy MDo1Ny4zMDQ3NTIzNzMgKzAxMDAKIEBAIC02NTQsOCArNjU0LDkgQEAgaXEyMDAwX3B1c2hfZHVt bXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgogICAgY29uc3QgYmZkX2J5dGUgKnZhbDsKICAgIGJm ZF9ieXRlIGJ1Zls0XTsKQEAgLTU3NiwxMCArNTc2LDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvaXEyMDAwLXRkZXAuYwogICAgLyogVXNlZCB0byBjb3B5IHN0cnVjdCBh cmd1bWVudHMgaW50byB0aGUgc3RhY2suICAqLwogICAgQ09SRV9BRERSIHN0cnVjdF9wdHI7CiAg Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL20zMnItdGRlcC5jCitJbmRleDog Z2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbTMyci10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9tMzJyLXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQz OjAxLjE0OTY3NjEyMyArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9tMzJy LXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjA0LjczNDY4MTAxOSArMDIwMAorLS0tIGdkYi03LjYu OTAuMjAxNDAxMjcub3JpZy9nZGIvbTMyci10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Mi45ODY3 NDc3MzMgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9tMzJyLXRkZXAuYwkyMDE0 LTAyLTA2IDE4OjIwOjU3LjMwNDc1MjM3MyArMDEwMAogQEAgLTY4OSw3ICs2ODksNyBAQCBtMzJy X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCiAgICBDT1JFX0FERFIgcmVndmFs OwogICAgZ2RiX2J5dGUgKnZhbDsKQEAgLTU4OSwxMCArNTg5LDEwIEBAIEluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvbTMyci10ZGVwLmMKICAKICAgIC8qIEZpcnN0IGZvcmNlIHNw IHRvIGEgNC1ieXRlIGFsaWdubWVudC4gICovCiAgICBzcCA9IHNwICYgfjM7Ci1JbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL202OGstdGRlcC5jCitJbmRleDogZ2RiLTcuNi45MC4y MDE0MDEyNy9nZGIvbTY4ay10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy5vcmlnL2dkYi9tNjhrLXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjAxLjE0OTY3NjEy MyArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9tNjhrLXRkZXAuYwkyMDEz LTA4LTAyIDE2OjQzOjA0LjczNTY4MTAyMSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcu b3JpZy9nZGIvbTY4ay10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Mi45ODc3NDc3MzUgKzAxMDAK KysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9tNjhrLXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIw OjU3LjMwNTc1MjM3NCArMDEwMAogQEAgLTM4NCw3ICszODQsNyBAQCBtNjhrX3JlZ19zdHJ1Y3Rf cmV0dXJuX3AgKHN0cnVjdCBnZGJhcmNoCiAgewogICAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRl cCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CkBAIC02MTUsMTAgKzYxNSwxMCBAQCBJbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL202OGstdGRlcC5jCiAgCiAgICAgICAgLyogTm9u LXNjYWxhcnMgYmlnZ2VyIHRoYW4gNCBieXRlcyBhcmUgbGVmdCBhbGlnbmVkLCBvdGhlcnMgYXJl CiAgCSByaWdodCBhbGlnbmVkLiAgKi8KLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9n ZGIvbTg4ay10ZGVwLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9tODhrLXRkZXAu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL204OGst dGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDEuMTUwNjc2MTI0ICswMjAwCi0rKysgZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL204OGstdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDQuNzM1Njgx MDIxICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9tODhrLXRkZXAuYwky MDE0LTAyLTA2IDE4OjIwOjUyLjk4Nzc0NzczNSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL204OGstdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTcuMzA1NzUyMzc0ICswMTAwCiBA QCAtMjYwLDEzICsyNjAsMTMgQEAgbTg4a19zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNo ZSAqcgogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2gg KHJlZ2NhY2hlKTsKQEAgLTY0NiwxMCArNjQ2LDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvbTg4ay10ZGVwLmMKICAKICAgICAgICBpZiAobTg4a19pbl9yZWdpc3Rlcl9w ICh0eXBlKSkKICAJewotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9tZXAtdGRl cC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbWVwLXRkZXAuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL21lcC10ZGVwLmMJMjAxMy0w OC0wMiAxNjo0MzowMS4xNTA2NzYxMjQgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIvbWVwLXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjA0LjczNTY4MTAyMSArMDIwMAorLS0t IGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvbWVwLXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIw OjUyLjk4Nzc0NzczNSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL21lcC10ZGVw LmMJMjAxNC0wMi0wNiAxODoyMDo1Ny4zMDY3NTIzNzUgKzAxMDAKIEBAIC0yMjcyLDcgKzIyNzIs NyBAQCBwdXNoX2xhcmdlX2FyZ3VtZW50cyAoQ09SRV9BRERSIHNwLCBpbnQKICAKICAgIGZvciAo aSA9IDA7IGkgPCBhcmdjOyBpKyspCkBAIC02NTksMTAgKzY1OSwxMCBAQCBJbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL21lcC10ZGVwLmMKICAKICAgICAgICBpZiAoYXJnX2xlbiA+ IE1FUF9HUFJfU0laRSkKICAgICAgICAgIHsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIvbWlwcy10ZGVwLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9taXBzLXRk ZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL21p cHMtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDEuMTUzNjc2MTI4ICswMjAwCi0rKysgZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL21pcHMtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDQuNzM3 NjgxMDIzICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9taXBzLXRkZXAu YwkyMDE0LTAyLTA2IDE4OjIwOjUyLjk5MDc0NzczOCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAx NDAxMjcvZ2RiL21pcHMtdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTcuMzA3NzUyMzc2ICswMTAw CiBAQCAtNDAyLDcgKzQwMiw3IEBAIHN0YXRpYyB2b2lkCiAgbWlwc194ZmVyX3JlZ2lzdGVyIChz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKICAJCSAg ICBpbnQgcmVnX251bSwgaW50IGxlbmd0aCwKQEAgLTgwOCwxMSArODA4LDExIEBAIEluZGV4OiBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbWlwcy10ZGVwLmMKICAKICAgICAgICB2YWwgPSB2 YWx1ZV9jb250ZW50cyAoYXJnKTsKICAKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9n ZGIvbW4xMDMwMC10ZGVwLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9tbjEwMzAw LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2Ri L21uMTAzMDAtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDQuNzM3NjgxMDIzICswMjAwCi0rKysg Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL21uMTAzMDAtdGRlcC5jCTIwMTMtMDgtMDIgMTY6 NTA6MzQuMjEyMzIwNjk4ICswMjAwCi1AQCAtMTIyOCw3ICsxMjI4LDcgQEAgbW4xMDMwMF9wdXNo X2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmln L2dkYi9tbjEwMzAwLXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjUyLjk5MTc0NzczOSArMDEwMAor KysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL21uMTAzMDAtdGRlcC5jCTIwMTQtMDItMDYgMTg6 MjA6NTcuMzA4NzUyMzc3ICswMTAwCitAQCAtMTIyNyw3ICsxMjI3LDcgQEAgbW4xMDMwMF9wdXNo X2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoCiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRl ciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBjb25zdCBpbnQgcHVzaF9zaXpl ID0gcmVnaXN0ZXJfc2l6ZSAoZ2RiYXJjaCwgRV9QQ19SRUdOVU0pOwogICAgaW50IHJlZ3NfdXNl ZDsKQEAgLTgyMSwxMCArODIxLDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9n ZGIvbW4xMDMwMC10ZGVwLmMKICAgIGludCBzdGFja19vZmZzZXQgPSAwOwogICAgaW50IGFyZ251 bTsKICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL210LXRkZXAuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL210LXRkZXAu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL210LXRk ZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjAxLjE1NDY3NjEzMCArMDIwMAotKysrIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9tdC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowNC43Mzc2ODEwMjMg KzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL210LXRkZXAuYwkyMDE0LTAy LTA2IDE4OjIwOjUyLjk5MTc0NzczOSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2Ri L210LXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjU3LjMwODc1MjM3NyArMDEwMAogQEAgLTc4Myw5 ICs3ODMsOSBAQCBtdF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGJhCiAgICBn ZGJfYnl0ZSBidWZbTVRfTUFYX1NUUlVDVF9TSVpFXTsKICAgIGludCBhcmdyZWcgPSBNVF8xU1Rf QVJHUkVHOwpAQCAtODM3LDEwICs4MzcsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi9tdC10ZGVwLmMKICAgIGludCBpLCBqOwogIAogICAgLyogRmlyc3QgaGFuZGxlIGhv d2V2ZXIgbWFueSBhcmdzIHdlIGNhbiBmaXQgaW50byBNVF8xU1RfQVJHUkVHIHRocnUKLUluZGV4 OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvcHBjLXN5c3YtdGRlcC5jCitJbmRleDogZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvcHBjLXN5c3YtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvcHBjLXN5c3YtdGRlcC5jCTIwMTMtMDgtMDIg MTY6NDM6MDEuMTU1Njc2MTMxICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L3BwYy1zeXN2LXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjA0LjczODY4MTAyNSArMDIwMAorLS0t IGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvcHBjLXN5c3YtdGRlcC5jCTIwMTQtMDItMDYg MTg6MjA6NTIuOTkyNzQ3NzQwICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvcHBj LXN5c3YtdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTcuMzA4NzUyMzc3ICswMTAwCiBAQCAtNjgs NyArNjgsNyBAQCBwcGNfc3lzdl9hYmlfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiCiAgICBl bnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7 CiAgICBpbnQgb3BlbmNsX2FiaSA9IHBwY19zeXN2X3VzZV9vcGVuY2xfYWJpICh2YWx1ZV90eXBl IChmdW5jdGlvbikpOwpAQCAtODk3LDExICs4OTcsMTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi9wcGMtc3lzdi10ZGVwLmMKICAJCSAgaWYgKGxlbiA8IHRkZXAtPndvcmRz aXplKQogIAkJICAgIHdyaXRlX21lbW9yeSAoZ3BhcmFtICsgdGRlcC0+d29yZHNpemUgLSBsZW4s IHZhbCwgbGVuKTsKICAJCSAgZWxzZQotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi9ybDc4LXRkZXAuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3JsNzgtdGRlcC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvcmw3OC10 ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowMS4xNTU2NzYxMzEgKzAyMDAKLSsrKyBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvcmw3OC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowNC43Mzg2ODEw MjUgKzAyMDAKLUBAIC0xMDMwLDggKzEwMzAsOCBAQCBybDc4X3B1c2hfZHVtbXlfY2FsbCAoc3Ry dWN0IGdkYmFyY2ggKmdkCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9ybDc4LXRk ZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjUyLjk5Mjc0Nzc0MCArMDEwMAorKysrIGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL3JsNzgtdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTcuMzA5NzUyMzc4ICsw MTAwCitAQCAtMTA1Miw4ICsxMDUyLDggQEAgcmw3OF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBn ZGJhcmNoICpnZAogICAgZm9yIChpID0gbmFyZ3MgLSAxOyBpID49IDA7IGktLSkKICAgICAgewog ICAgICAgIHN0cnVjdCB0eXBlICp2YWx1ZV90eXBlID0gdmFsdWVfZW5jbG9zaW5nX3R5cGUgKGFy Z3NbaV0pOwpAQCAtOTEyLDEwICs5MTIsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi9ybDc4LXRkZXAuYwogIAogICAgICAgIHNwIC09IGNvbnRhaW5lcl9sZW47CiAgICAg ICAgd3JpdGVfbWVtb3J5IChybDc4X21ha2VfZGF0YV9hZGRyZXNzIChzcCksCi1JbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCitJbmRleDogZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvcnM2MDAwLWFpeC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9yczYwMDAtYWl4LXRkZXAuYwkyMDEzLTA4LTAy IDE2OjQzOjAxLjE1NTY3NjEzMSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi9yczYwMDAtYWl4LXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjA0LjczODY4MTAyNSArMDIwMAor LS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvcnM2MDAwLWFpeC10ZGVwLmMJMjAxNC0w Mi0wNiAxODoyMDo1Mi45OTM3NDc3NDEgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dk Yi9yczYwMDAtYWl4LXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjU3LjMwOTc1MjM3OCArMDEwMAog QEAgLTE5Niw5ICsxOTYsOSBAQCByczYwMDBfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJj aCAqCiAgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNo KTsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChn ZGJhcmNoKTsKQEAgLTkzNywxMSArOTM3LDExIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvcnM2MDAwLWFpeC10ZGVwLmMKICAKICAgICAgICBpZiAoYXJnYnl0ZXMpCiAgCXsK LUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvczM5MC10ZGVwLmMKK0luZGV4OiBn ZGItNy42LjkwLjIwMTQwMTI3L2dkYi9zMzkwLWxpbnV4LXRkZXAuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3MzOTAtdGRlcC5jCTIwMTMtMDgtMDIg MTY6NDM6MDEuMTU2Njc2MTMyICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L3MzOTAtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDQuNzM5NjgxMDI2ICswMjAwCi1AQCAtMjQ4 Myw3ICsyNDgzLDcgQEAgaXNfZmxvYXRfbGlrZSAoc3RydWN0IHR5cGUgKnR5cGUpCistLS0gZ2Ri LTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9zMzkwLWxpbnV4LXRkZXAuYwkyMDE0LTAyLTA2IDE4 OjIwOjUyLjk5Mzc0Nzc0MSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3MzOTAt bGludXgtdGRlcC5jCTIwMTQtMDItMDYgMTg6MjI6MTcuMzMwODM4Mzg5ICswMTAwCitAQCAtMjUy Niw3ICsyNTI2LDcgQEAgaXNfZmxvYXRfbGlrZSAoc3RydWN0IHR5cGUgKnR5cGUpCiAgCiAgCiAg c3RhdGljIGludApAQCAtOTUwLDE5ICs5NTAsMTkgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi9zMzkwLXRkZXAuYwogIHsKICAgIHJldHVybiAoKG4gJiAobiAtIDEpKSA9PSAw KTsKICB9Ci1AQCAtMjY2OSw3ICsyNjY5LDcgQEAgczM5MF9wdXNoX2R1bW15X2NhbGwgKHN0cnVj dCBnZGJhcmNoICpnZAorQEAgLTI3MTIsNyArMjcxMiw3IEBAIHMzOTBfcHVzaF9kdW1teV9jYWxs IChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKICAgICAgICB7Ci0gICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFy ZyA9IGFyZ3NbaV07Ci0gICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYg KHZhbHVlX3R5cGUgKGFyZykpOwotLSAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0gVFlQRV9MRU5H VEggKHR5cGUpOwotKyAgICAgICAgVUxPTkdFU1QgbGVuZ3RoID0gVFlQRV9MRU5HVEggKHR5cGUp OworIAlzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbaV07CisgCXN0cnVjdCB0eXBlICp0eXBlID0g Y2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CistCXVuc2lnbmVkIGxlbmd0aCA9IFRZ UEVfTEVOR1RIICh0eXBlKTsKKysJVUxPTkdFU1QgbGVuZ3RoID0gVFlQRV9MRU5HVEggKHR5cGUp OwogIAogIAlpZiAoczM5MF9mdW5jdGlvbl9hcmdfcGFzc19ieV9yZWZlcmVuY2UgKHR5cGUpKQog IAkgIHsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvc2NvcmUtdGRlcC5jCitJ bmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvc2NvcmUtdGRlcC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvc2NvcmUtdGRlcC5jCTIwMTMtMDgt MDIgMTY6NDM6MDEuMTU3Njc2MTM0ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMv Z2RiL3Njb3JlLXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjA0LjczOTY4MTAyNiArMDIwMAorLS0t IGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvc2NvcmUtdGRlcC5jCTIwMTQtMDItMDYgMTg6 MjA6NTIuOTk0NzQ3NzQyICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvc2NvcmUt dGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTcuMzEwNzUyMzc5ICswMTAwCiBAQCAtNTE1LDcgKzUx NSw3IEBAIHNjb3JlX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKICAgIGVudW0g YmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAg IGludCBhcmdudW07CkBAIC05NzIsMTAgKzk3MiwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL3Njb3JlLXRkZXAuYwogICAgQ09SRV9BRERSIHN0YWNrX29mZnNldCA9IDA7 CiAgICBDT1JFX0FERFIgYWRkciA9IDA7CiAgCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL3NoLXRkZXAuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3NoLXRkZXAu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3NoLXRk ZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjAxLjE1NzY3NjEzNCArMDIwMAotKysrIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9zaC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo1MToyOS42MDQ0MDQ1NTMg KzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3NoLXRkZXAuYwkyMDE0LTAy LTA2IDE4OjIwOjUyLjk5NTc0Nzc0MyArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2Ri L3NoLXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjU3LjMxMDc1MjM3OSArMDEwMAogQEAgLTgwNyw3 ICs4MDcsNyBAQCBzaF9za2lwX3Byb2xvZ3VlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjCiAgc3Rh dGljIGludAogIHNoX3VzZV9zdHJ1Y3RfY29udmVudGlvbiAoaW50IHJlbmVzYXNfYWJpLCBzdHJ1 Y3QgdHlwZSAqdHlwZSkKQEAgLTEwMTQsMTAgKzEwMTQsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9zaC10ZGVwLmMKICAgIGludCBwYXNzX29uX3N0YWNrID0gMDsKICAg IGludCBsYXN0X3JlZ19hcmcgPSBJTlRfTUFYOwogIAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi9zaDY0LXRkZXAuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3No NjQtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9n ZGIvc2g2NC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowMS4xNTg2NzYxMzUgKzAyMDAKLSsrKyBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvc2g2NC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo1MDo0 OS43NDAzNDQxMjUgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3NoNjQt dGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTIuOTk1NzQ3NzQzICswMTAwCisrKysgZ2RiLTcuNi45 MC4yMDE0MDEyNy9nZGIvc2g2NC10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Ny4zMTE3NTIzODAg KzAxMDAKIEBAIC0xMDU4LDcgKzEwNTgsNyBAQCBzaDY0X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0 IGdkYmFyY2ggKmdkCiAgCQkgICAgICBDT1JFX0FERFIgc3RydWN0X2FkZHIpCiAgewpAQCAtMTAz NiwxMSArMTAzNiwxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3NoNjQt dGRlcC5jCiAgICBpbnQgYXJncmVnX3NpemU7CiAgICBpbnQgZnBfYXJnc1sxMl07CiAgCi1JbmRl eDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3NwYXJjLXRkZXAuYworSW5kZXg6IGdkYi03 LjYuOTAuMjAxNDAxMjcvZ2RiL3NwYXJjLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3NwYXJjLXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjAx LjE1OTY3NjEzNiArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zcGFyYy10 ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowNC43NDA2ODEwMjcgKzAyMDAKLUBAIC00NzEsNyArNDcx LDcgQEAgc3BhcmMzMl9zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZQorLS0tIGdkYi03 LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvc3BhcmMtdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTIu OTk2NzQ3NzQ0ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvc3BhcmMtdGRlcC5j CTIwMTQtMDItMDYgMTg6MjA6NTcuMzExNzUyMzgwICswMTAwCitAQCAtNTAyLDcgKzUwMiw3IEBA IHNwYXJjMzJfc3RvcmVfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUKICAgIGZvciAoaSA9IDA7 IGkgPCBuYXJnczsgaSsrKQogICAgICB7CiAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSB2YWx1 ZV90eXBlIChhcmdzW2ldKTsKQEAgLTEwNDksMTAgKzEwNDksMTAgQEAgSW5kZXg6IGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzL2dkYi9zcGFyYy10ZGVwLmMKICAKICAgICAgICBpZiAoc3BhcmNfc3Ry dWN0dXJlX29yX3VuaW9uX3AgKHR5cGUpCiAgCSAgfHwgKHNwYXJjX2Zsb2F0aW5nX3AgKHR5cGUp ICYmIGxlbiA9PSAxNikKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvc3BhcmM2 NC10ZGVwLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9zcGFyYzY0LXRkZXAuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3NwYXJjNjQt dGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDEuMTU5Njc2MTM2ICswMjAwCi0rKysgZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL3NwYXJjNjQtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDQuNzQx NjgxMDI5ICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9zcGFyYzY0LXRk ZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjUyLjk5Njc0Nzc0NCArMDEwMAorKysrIGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL3NwYXJjNjQtdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTcuMzExNzUyMzgw ICswMTAwCiBAQCAtNjM5LDcgKzYzOSw4IEBAIHNwYXJjNjRfMTZfYnl0ZV9hbGlnbl9wIChzdHJ1 Y3QgdHlwZSAqdHkKICAKICBzdGF0aWMgdm9pZApAQCAtMTEwOCwxMCArMTEwOCwxMCBAQCBJbmRl eDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3NwYXJjNjQtdGRlcC5jCiAgICAgICAgaW50 IHJlZ251bSA9IC0xOwogICAgICAgIGdkYl9ieXRlIGJ1ZlsxNl07CiAgCi1JbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL3NwdS10ZGVwLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQw MTI3L2dkYi9zcHUtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMub3JpZy9nZGIvc3B1LXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjAxLjE2MDY3NjEzOCArMDIw MAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zcHUtdGRlcC5jCTIwMTMtMDgtMDIg MTY6NDM6MDQuNzQxNjgxMDI5ICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dk Yi9zcHUtdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTIuOTk3NzQ3NzQ1ICswMTAwCisrKysgZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvc3B1LXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjU3LjMxMjc1 MjM4MSArMDEwMAogQEAgLTEzNzYsNyArMTM3Niw3IEBAIHNwdV9wdXNoX2R1bW15X2NhbGwgKHN0 cnVjdCBnZGJhcmNoICpnZGIKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbaV07CiAg ICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcp KTsKQEAgLTExMzAsMTAgKzExMzAsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi9zcHUtdGRlcC5jCiAgCSAgaW50IHByZWZlcnJlZF9zbG90OwogIAkgIAogIAkgIGlmIChz cHVfc2NhbGFyX3ZhbHVlX3AgKHR5cGUpKQotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi90aWM2eC10ZGVwLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90aWM2eC10 ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi90 aWM2eC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowMS4xNjA2NzYxMzggKzAyMDAKLSsrKyBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGljNngtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDQu NzQyNjgxMDMwICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90aWM2eC10 ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Mi45OTc3NDc3NDUgKzAxMDAKKysrKyBnZGItNy42Ljkw LjIwMTQwMTI3L2dkYi90aWM2eC10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Ny4zMTI3NTIzODEg KzAxMDAKIEBAIC04OTYsNyArODk2LDcgQEAgdGljNnhfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3Qg Z2RiYXJjaCAqZwogICAgaW50IGFyZ3JlZyA9IDA7CiAgICBpbnQgYXJnbnVtOwpAQCAtMTE3MSwx MSArMTE3MSwxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3RpYzZ4LXRk ZXAuYwogIAogIAkgIGFkZHIgPSBzcCArIHN0YWNrX29mZnNldDsKICAJICB3cml0ZV9tZW1vcnkg KGFkZHIsIHZhbCwgbGVuKTsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGls ZWd4LXRkZXAuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3RpbGVneC10ZGVwLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi90aWxlZ3gt dGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDEuMTYxNjc2MTM5ICswMjAwCi0rKysgZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL3RpbGVneC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowNC43NDI2 ODEwMzAgKzAyMDAKLUBAIC0yOTEsNyArMjkxLDcgQEAgdGlsZWd4X3B1c2hfZHVtbXlfY2FsbCAo c3RydWN0IGdkYmFyY2ggKgorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvdGlsZWd4 LXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjUyLjk5ODc0Nzc0NiArMDEwMAorKysrIGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Ny4zMTI3NTIz ODEgKzAxMDAKK0BAIC0yOTAsNyArMjkwLDcgQEAgdGlsZWd4X3B1c2hfZHVtbXlfY2FsbCAoc3Ry dWN0IGdkYmFyY2ggKgogICAgQ09SRV9BRERSIHN0YWNrX2Rlc3QgPSBzcDsKICAgIGludCBhcmdy ZWcgPSBUSUxFR1hfUjBfUkVHTlVNOwogICAgaW50IGksIGo7CkBAIC0xMTg0LDEwICsxMTg0LDEw IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGlsZWd4LXRkZXAuYwogICAg c3RhdGljIGNvbnN0IGdkYl9ieXRlIGZvdXJfemVyb193b3Jkc1sxNl0gPSB7IDAgfTsKICAKICAg IC8qIElmIHN0cnVjdF9yZXR1cm4gaXMgMSwgdGhlbiB0aGUgc3RydWN0IHJldHVybiBhZGRyZXNz IHdpbGwKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdjg1MC10ZGVwLmMKK0lu ZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi92ODUwLXRkZXAuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3Y4NTAtdGRlcC5jCTIwMTMtMDgtMDIg MTY6NDM6MDEuMTYxNjc2MTM5ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L3Y4NTAtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NTI6NTUuMjE5NTMxMTAxICswMjAwCistLS0gZ2Ri LTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi92ODUwLXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjUy Ljk5ODc0Nzc0NiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Y4NTAtdGRlcC5j CTIwMTQtMDItMDYgMTg6MjA6NTcuMzEzNzUyMzgzICswMTAwCiBAQCAtMTAyMSw3ICsxMDIxLDcg QEAgdjg1MF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAogICAgZW51bSBiZmRf ZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgaW50 IGFyZ3JlZzsKQEAgLTEyMDYsMTAgKzEyMDYsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi92ODUwLXRkZXAuYwogICAgICAgIGdkYl9ieXRlICp2YWw7CiAgICAgICAgZ2Ri X2J5dGUgdmFsYnVmW3Y4NTBfcmVnX3NpemVdOwogIAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi92YXgtdGRlcC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdmF4 LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2Ri L3ZheC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowMS4xNjE2NzYxMzkgKzAyMDAKLSsrKyBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmF4LXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjA0Ljc0 MjY4MTAzMCArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvdmF4LXRkZXAu YwkyMDE0LTAyLTA2IDE4OjIwOjUyLjk5ODc0Nzc0NiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAx NDAxMjcvZ2RiL3ZheC10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Ny4zMTM3NTIzODMgKzAxMDAK IEBAIC0xMTUsNyArMTE1LDcgQEAgdmF4X3N0b3JlX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hl ICpyZQogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfcmVnY2FjaGVfYXJjaCAocmVn Y2FjaGUpOwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3Jk ZXIgKGdkYmFyY2gpOwpAQCAtMTIyOCwxMCArMTIyOCwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL3ZheC10ZGVwLmMKICAKICAgICAgICBzcCAtPSAobGVuICsgMykgJiB+ MzsKICAgICAgICBjb3VudCArPSAobGVuICsgMykgLyA0OwotSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi94c3Rvcm15MTYtdGRlcC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIveHN0b3JteTE2LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzLm9yaWcvZ2RiL3hzdG9ybXkxNi10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowMS4xNjI2 NzYxNDEgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIveHN0b3JteTE2LXRk ZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjA0Ljc0MzY4MTAzMiArMDIwMAorLS0tIGdkYi03LjYuOTAu MjAxNDAxMjcub3JpZy9nZGIveHN0b3JteTE2LXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjUyLjk5 OTc0Nzc0OCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3hzdG9ybXkxNi10ZGVw LmMJMjAxNC0wMi0wNiAxODoyMDo1Ny4zMTM3NTIzODMgKzAxMDAKIEBAIC0yMzUsOCArMjM1LDkg QEAgeHN0b3JteTE2X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyYwogICAgZW51bSBiZmRf ZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgQ09S RV9BRERSIHN0YWNrX2Rlc3QgPSBzcDsKQEAgLTEyNDQsMTEgKzEyNDQsMTEgQEAgSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi94c3Rvcm15MTYtdGRlcC5jCiAgICBjb25zdCBnZGJf Ynl0ZSAqdmFsOwogICAgZ2RiX2J5dGUgYnVmW3hzdG9ybXkxNl9wY19zaXplXTsKICAKLUluZGV4 OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIveHRlbnNhLXRkZXAuYworSW5kZXg6IGdkYi03 LjYuOTAuMjAxNDAxMjcvZ2RiL3h0ZW5zYS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi94dGVuc2EtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6 MDEuMTYzNjc2MTQyICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3h0ZW5z YS10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowNC43NDM2ODEwMzIgKzAyMDAKLUBAIC0xNjUzLDgg KzE2NTMsNyBAQCB4dGVuc2Ffc3RvcmVfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgdHlwZSAqCistLS0g Z2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi94dGVuc2EtdGRlcC5jCTIwMTQtMDItMDYgMTg6 MjA6NTMuMDAwNzQ3NzQ5ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIveHRlbnNh LXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjU3LjMxNDc1MjM4NCArMDEwMAorQEAgLTE2NTIsOCAr MTY1Miw3IEBAIHh0ZW5zYV9zdG9yZV9yZXR1cm5fdmFsdWUgKHN0cnVjdCB0eXBlICoKICAKICAg ICAgICBpZiAobGVuID4gKGNhbGxzaXplID4gOCA/IDggOiAxNikpCiAgCWludGVybmFsX2Vycm9y IChfX0ZJTEVfXywgX19MSU5FX18sCkBAIC0xMjU4LDcgKzEyNTgsNyBAQCBJbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL3h0ZW5zYS10ZGVwLmMKICAgICAgICBhcmVnID0gYXJyZWdf bnVtYmVyIChnZGJhcmNoLAogIAkJCSAgIGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCktPmEwX2Jhc2Ug KyAyICsgY2FsbHNpemUsIHdiKTsKICAKLUBAIC0xNzI4LDE4ICsxNzI3LDE4IEBAIHh0ZW5zYV9w dXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICoKK0BAIC0xNzI3LDE4ICsxNzI2LDE4IEBA IHh0ZW5zYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICoKICB7CiAgICBlbnVtIGJm ZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBp bnQgaTsKQEAgLTEyODAsNyArMTI4MCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIveHRlbnNhLXRkZXAuYwogICAgICAgIGludCByZWdubzsJCS8qIHJlZ25vIGlmIGluIHJl Z2lzdGVyLiAgKi8KICAgICAgfSB1OwogICAgfTsKLUBAIC0xNzYzLDkgKzE3NjIsMTAgQEAgeHRl bnNhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgorQEAgLTE3NjIsOSArMTc2MSwx MCBAQCB4dGVuc2FfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCiAgICAgICAgICB7 CiAgCSAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2ldOwogIAkgIHN0cnVjdCB0eXBlICphcmdf dHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOwpAQCAtMTI5NCw3ICsxMjk0 LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi94dGVuc2EtdGRlcC5jCiAg CSAgc3dpdGNoIChUWVBFX0NPREUgKGFyZ190eXBlKSkKICAJICAgIHsKICAJICAgIGNhc2UgVFlQ RV9DT0RFX0lOVDoKLUBAIC0xODM1LDggKzE4MzUsOCBAQCB4dGVuc2FfcHVzaF9kdW1teV9jYWxs IChzdHJ1Y3QgZ2RiYXJjaCAqCitAQCAtMTgzNCw4ICsxODM0LDggQEAgeHRlbnNhX3B1c2hfZHVt bXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgogIAkgIGluZm8tPmFsaWduID0gVFlQRV9MRU5HVEgg KGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5fbG9uZyk7CiAgCSAgYnJlYWs7CiAgCX0K QEAgLTEzMDQsNyArMTMwNCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIv eHRlbnNhLXRkZXAuYwogIAogICAgICAgIC8qIEFsaWduIHNpemUgYW5kIG9uc3RhY2tfc2l6ZS4g ICovCiAgICAgICAgc2l6ZSA9IChzaXplICsgaW5mby0+YWxpZ24gLSAxKSAmIH4oaW5mby0+YWxp Z24gLSAxKTsKLUBAIC0xODgxLDcgKzE4ODEsNyBAQCB4dGVuc2FfcHVzaF9kdW1teV9jYWxsIChz dHJ1Y3QgZ2RiYXJjaCAqCitAQCAtMTg4MCw3ICsxODgwLDcgQEAgeHRlbnNhX3B1c2hfZHVtbXlf Y2FsbCAoc3RydWN0IGdkYmFyY2ggKgogIAogICAgICAgIGlmIChpbmZvLT5vbnN0YWNrKQogIAl7 CkBAIC0xMzEzLDcgKzEzMTMsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L3h0ZW5zYS10ZGVwLmMKICAJICBDT1JFX0FERFIgb2Zmc2V0ID0gc3AgKyBpbmZvLT51Lm9mZnNl dDsKICAKICAJICAvKiBPZGQtc2l6ZWQgc3RydWN0cyBhcmUgYWxpZ25lZCB0byB0aGUgbG93ZXIg c2lkZSBvZiBhIG1lbW9yeQotQEAgLTE4OTcsNyArMTg5Nyw3IEBAIHh0ZW5zYV9wdXNoX2R1bW15 X2NhbGwgKHN0cnVjdCBnZGJhcmNoICoKK0BAIC0xODk2LDcgKzE4OTYsNyBAQCB4dGVuc2FfcHVz aF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCiAgCX0KICAgICAgICBlbHNlCiAgCXsKCmRp ZmYgLS1naXQgYS9nZGItcmhlbDUtZ2NjNDQucGF0Y2ggYi9nZGItcmhlbDUtZ2NjNDQucGF0Y2gK aW5kZXggMTcyZDA2Ny4uNmZmYmIyYSAxMDA2NDQKLS0tIGEvZ2RiLXJoZWw1LWdjYzQ0LnBhdGNo CisrKyBiL2dkYi1yaGVsNS1nY2M0NC5wYXRjaApAQCAtMSwxMCArMSwxMCBAQAogU29tZSBmdW5j dGlvbmFsaXR5IGlzIGF2YWlsYWJsZSBvbiBSSEVMLTUuNCsgb25seSB3aXRoIGdjYzQ0IGFuZCBn Zm9ydHJhbjQ0IGFzCiB0aGUgZGVmYXVsdCBnY2MgYW5kIGdmb3J0cmFuIGJpbmFyaWVzIGFyZSBm cm9tIGdjYy00LjEuCiAKLUluZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvdmxhLmV4cAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS92bGEuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNS41MC4yMDEzMDExOC5v cmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmV4cAkyMDEzLTAxLTE4IDIzOjQzOjA0LjQ1 NTc1NjM2MiArMDEwMAotKysrIGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS92bGEuZXhwCTIwMTMtMDEtMTggMjM6NDM6MDguMDgyNzYxMTY0ICswMTAwCistLS0gZ2Ri LTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmV4cAkyMDE0 LTAyLTA2IDE4OjI2OjA1LjExNTA4MzA3NyArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuZXhwCTIwMTQtMDItMDYgMTg6MjY6MDYuNjg5MDg0 NzY1ICswMTAwCiBAQCAtMTYsNyArMTYsMjUgQEAKICBzZXQgdGVzdGZpbGUgdmxhCiAgc2V0IHNy Y2ZpbGUgJHt0ZXN0ZmlsZX0uYwpAQCAtMzIsMTAgKzMyLDEwIEBAIEluZGV4OiBnZGItNy41LjUw LjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmV4cAogICAgICB1bnRlc3RlZCAi Q291bGRuJ3QgY29tcGlsZSB0ZXN0IHByb2dyYW0iCiAgICAgIHJldHVybiAtMQogIH0KLUluZGV4 OiBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYnJlYWstaW50ZXJw LmV4cAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9i cmVhay1pbnRlcnAuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNS41MC4yMDEzMDExOC5vcmln L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYnJlYWstaW50ZXJwLmV4cAkyMDEzLTAxLTE4IDIzOjQz OjA0LjQ1Njc1NjM2NSArMDEwMAotKysrIGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9icmVhay1pbnRlcnAuZXhwCTIwMTMtMDEtMTggMjM6NDM6MDguMDgyNzYxMTY0 ICswMTAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvYnJlYWstaW50ZXJwLmV4cAkyMDE0LTAyLTA2IDE4OjI2OjA1LjExNjA4MzA3OCArMDEwMAor KysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9icmVhay1pbnRl cnAuZXhwCTIwMTQtMDItMDYgMTg6MjY6MDYuNjg5MDg0NzY1ICswMTAwCiBAQCAtMzQsOSArMzQs MjkgQEAgaWYgW2dldF9jb21waWxlcl9pbmZvXSB7CiAgICAgIHJldHVybiAtMQogIH0KQEAgLTY3 LDEwICs2NywxMCBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2JyZWFrLWludGVycC5leHAKICAgICAgcmV0dXJuIC0xCiAgfQogIAotSW5kZXg6IGdk Yi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9jb21tb24tYmxvY2su ZXhwCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L2NvbW1vbi1ibG9jay5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy41LjUwLjIwMTMwMTE4Lm9y aWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9jb21tb24tYmxvY2suZXhwCTIwMTMtMDEtMTgg MjM6NDM6MDguMDgyNzYxMTY0ICswMTAwCi0rKysgZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL2NvbW1vbi1ibG9jay5leHAJMjAxMy0wMS0xOCAyMzo0NDoyMy4w NDc4NTYxODIgKzAxMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9jb21tb24tYmxvY2suZXhwCTIwMTQtMDItMDYgMTg6MjY6MDUuMTE2MDgz MDc4ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL2NvbW1vbi1ibG9jay5leHAJMjAxNC0wMi0wNiAxODoyNjowNi42OTAwODQ3NjAgKzAxMDAK IEBAIC0yMiw4ICsyMiwyNSBAQCBpZiB7W3NraXBfZm9ydHJhbl90ZXN0c119IHsKICAKICBzdGFu ZGFyZF90ZXN0ZmlsZSAuZjkwCkBAIC05OSwxMCArOTksMTAgQEAgSW5kZXg6IGdkYi03LjUuNTAu MjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9jb21tb24tYmxvY2suZXhwCiAgICAg IHJldHVybiAtMQogIH0KICAKLUluZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmV4cAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZXhwCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuNS41MC4yMDEzMDExOC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v ZHdhcmYtc3RyaWRlLmV4cAkyMDEzLTAxLTE4IDIzOjQzOjA0LjQ1Njc1NjM2NSArMDEwMAotKysr IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJp ZGUuZXhwCTIwMTMtMDEtMTggMjM6NDM6MDguMDgzNzYxMTQ4ICswMTAwCistLS0gZ2RiLTcuNi45 MC4yMDE0MDEyNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmV4 cAkyMDE0LTAyLTA2IDE4OjI2OjA1LjExNzA4MzA3OSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAx NDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZXhwCTIwMTQtMDIt MDYgMTg6MjY6MDYuNjkwMDg0NzYwICswMTAwCiBAQCAtMjcsNyArMjcsMjUgQEAKICBzZXQgdGVz dGZpbGUgZHdhcmYtc3RyaWRlCiAgc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uZjkwCkBAIC0xMzAs MTAgKzEzMCwxMCBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5leHAKICAgICAgcmV0dXJuIC0xCiAgfQogIAotSW5kZXg6 IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4 cAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9k eW5hbWljLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjUuNTAuMjAxMzAxMTgub3JpZy9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCTIwMTMtMDEtMTggMjM6NDM6MDQuNDU3 NzU2MzY3ICswMTAwCi0rKysgZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL2R5bmFtaWMuZXhwCTIwMTMtMDEtMTggMjM6NDM6MDguMDgzNzYxMTQ4ICswMTAwCist LS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHlu YW1pYy5leHAJMjAxNC0wMi0wNiAxODoyNjowNS4xMTcwODMwNzkgKzAxMDAKKysrKyBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5leHAJMjAxNC0w Mi0wNiAxODoyNjowNi42OTAwODQ3NjAgKzAxMDAKIEBAIC0yNSw3ICsyNSwyNSBAQCBzZXQgdGVz dGZpbGUgImR5bmFtaWMiCiAgc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uZjkwCiAgc2V0IGJpbmZp bGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfQpAQCAtMTYxLDEwICsxNjEsMTAgQEAg SW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5h bWljLmV4cAogICAgICB1bnRlc3RlZCAiQ291bGRuJ3QgY29tcGlsZSAke3NyY2ZpbGV9IgogICAg ICByZXR1cm4gLTEKICB9Ci1JbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL2xpYnJhcnktbW9kdWxlLmV4cAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9saWJyYXJ5LW1vZHVsZS5leHAKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy41LjUwLjIwMTMwMTE4Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9saWJyYXJ5LW1vZHVsZS5leHAJMjAxMy0wMS0xOCAyMzo0MzowNC40NTc3NTYzNjcgKzAxMDAK LSsrKyBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vbGlicmFy eS1tb2R1bGUuZXhwCTIwMTMtMDEtMTggMjM6NDM6MDguMDgzNzYxMTQ4ICswMTAwCistLS0gZ2Ri LTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vbGlicmFyeS1t b2R1bGUuZXhwCTIwMTQtMDItMDYgMTg6MjY6MDUuMTE3MDgzMDc5ICswMTAwCisrKysgZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2xpYnJhcnktbW9kdWxlLmV4 cAkyMDE0LTAyLTA2IDE4OjI2OjA2LjY5MDA4NDc2MCArMDEwMAogQEAgLTIzLDE2ICsyMywzNCBA QCBpZiBbZ2V0X2NvbXBpbGVyX2luZm9dIHsKICAgICByZXR1cm4gLTEKICB9CkBAIC0yMDQsMTAg KzIwNCwxMCBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL2xpYnJhcnktbW9kdWxlLmV4cAogICAgICB1bnRlc3RlZCAiQ291bGRuJ3QgY29tcGls ZSAke3NyY2ZpbGV9IgogICAgICByZXR1cm4gLTEKICB9Ci1JbmRleDogZ2RiLTcuNS41MC4yMDEz MDExOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL21vZHVsZS5leHAKK0luZGV4OiBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vbW9kdWxlLmV4cAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjUuNTAuMjAxMzAxMTgub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL21vZHVsZS5leHAJMjAxMy0wMS0xOCAyMzo0MzowNC40NTc3NTYzNjcgKzAxMDAKLSsrKyBn ZGItNy41LjUwLjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vbW9kdWxlLmV4cAky MDEzLTAxLTE4IDIzOjQzOjA4LjA4Mzc2MTE0OCArMDEwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAx Mjcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL21vZHVsZS5leHAJMjAxNC0wMi0wNiAx ODoyNjowNS4xMTgwODMwODAgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vbW9kdWxlLmV4cAkyMDE0LTAyLTA2IDE4OjI2OjA2LjY5MDA4NDc2 MCArMDEwMAogQEAgLTE1LDcgKzE1LDI1IEBACiAgCiAgc3RhbmRhcmRfdGVzdGZpbGUgLmY5MApA QCAtMjM1LDEwICsyMzUsMTAgQEAgSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9tb2R1bGUuZXhwCiAgICAgIHJldHVybiAtMQogIH0KICAKLUluZGV4 OiBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmV4 cAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9z dHJpbmcuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNS41MC4yMDEzMDExOC5vcmlnL2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmV4cAkyMDEzLTAxLTE4IDIzOjQzOjA0LjQ1Nzc1 NjM2NyArMDEwMAotKysrIGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9zdHJpbmcuZXhwCTIwMTMtMDEtMTggMjM6NDM6MDguMDgzNzYxMTQ4ICswMTAwCistLS0g Z2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5n LmV4cAkyMDE0LTAyLTA2IDE4OjI2OjA1LjExODA4MzA4MCArMDEwMAorKysrIGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZXhwCTIwMTQtMDItMDYg MTg6MjY6MDYuNjkxMDg0NzYzICswMTAwCiBAQCAtMjMsNyArMjMsMjUgQEAgc2V0IHRlc3RmaWxl ICJzdHJpbmciCiAgc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uZjkwCiAgc2V0IGJpbmZpbGUgJHtv YmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfQpAQCAtMjY2LDEwICsyNjYsMTAgQEAgSW5kZXg6 IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZXhw CiAgICAgIHVudGVzdGVkICJDb3VsZG4ndCBjb21waWxlICR7c3JjZmlsZX0iCiAgICAgIHJldHVy biAtMQogIH0KLUluZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vb21wLXN0ZXAuZXhwCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL29tcC1zdGVwLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjUuNTAu MjAxMzAxMTgub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL29tcC1zdGVwLmV4cAkyMDEz LTAxLTE4IDIzOjQzOjA0LjQ1ODc1NjM2OSArMDEwMAotKysrIGdkYi03LjUuNTAuMjAxMzAxMTgv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9vbXAtc3RlcC5leHAJMjAxMy0wMS0xOCAyMzo0Mzow OC4wODM3NjExNDggKzAxMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9vbXAtc3RlcC5leHAJMjAxNC0wMi0wNiAxODoyNjowNS4xMTgwODMw ODAgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vb21wLXN0ZXAuZXhwCTIwMTQtMDItMDYgMTg6MjY6MDYuNjkxMDg0NzYzICswMTAwCiBAQCAt MTUsNyArMTUsMjYgQEAKICAKICBzZXQgdGVzdGZpbGUgIm9tcC1zdGVwIgpAQCAtMjk4LDEwICsy OTgsMTAgQEAgSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9vbXAtc3RlcC5leHAKICAgICAgcmV0dXJuIC0xCiAgfQogIAotSW5kZXg6IGdkYi03LjUu NTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kZXJpdmVkLXR5cGUuZXhwCitJ bmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2Rlcml2 ZWQtdHlwZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy41LjUwLjIwMTMwMTE4Lm9yaWcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kZXJpdmVkLXR5cGUuZXhwCTIwMTMtMDEtMTggMjM6NDM6 MDQuNDU4NzU2MzY5ICswMTAwCi0rKysgZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL2Rlcml2ZWQtdHlwZS5leHAJMjAxMy0wMS0xOCAyMzo0MzowOC4wODQ3NjEx MzUgKzAxMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi9kZXJpdmVkLXR5cGUuZXhwCTIwMTQtMDItMDYgMTg6MjY6MDUuMTE5MDgzMDgyICsw MTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2Rl cml2ZWQtdHlwZS5leHAJMjAxNC0wMi0wNiAxODoyNjowNi42OTEwODQ3NjMgKzAxMDAKIEBAIC0y Miw3ICsyMiwyNSBAQCBpZiB7IFtza2lwX2ZvcnRyYW5fdGVzdHNdIH0geyByZXR1cm4gLTEKICAK ICBzdGFuZGFyZF90ZXN0ZmlsZSAuZjkwCkBAIC0zMjksMTAgKzMyOSwxMCBAQCBJbmRleDogZ2Ri LTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2Rlcml2ZWQtdHlwZS5l eHAKICAgICAgcmV0dXJuIC0xCiAgfQogIAotSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJhcnJheS5leHAKK0luZGV4OiBnZGItNy42LjkwLjIw MTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3ViYXJyYXkuZXhwCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuNS41MC4yMDEzMDExOC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v c3ViYXJyYXkuZXhwCTIwMTMtMDEtMTggMjM6NDM6MDQuNDU4NzU2MzY5ICswMTAwCi0rKysgZ2Ri LTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YmFycmF5LmV4cAky MDEzLTAxLTE4IDIzOjQzOjA4LjA4NDc2MTEzNSArMDEwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAx Mjcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YmFycmF5LmV4cAkyMDE0LTAyLTA2 IDE4OjI2OjA1LjExOTA4MzA4MiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJhcnJheS5leHAJMjAxNC0wMi0wNiAxODoyNjowNi42OTEw ODQ3NjMgKzAxMDAKIEBAIC0yMiw3ICsyMiwyNSBAQCBpZiB7IFtza2lwX2ZvcnRyYW5fdGVzdHNd IH0geyByZXR1cm4gLTEKICAKICBzdGFuZGFyZF90ZXN0ZmlsZSAuZgpAQCAtMzYwLDEwICszNjAs MTAgQEAgSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9zdWJhcnJheS5leHAKICAgICAgcmV0dXJuIC0xCiAgfQogIAotSW5kZXg6IGdkYi03LjUuNTAu MjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy90bHMtc2VwZGVidWcuZXhwCitJbmRl eDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3Rscy1zZXBk ZWJ1Zy5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy41LjUwLjIwMTMwMTE4Lm9yaWcvZ2RiL3Rl c3RzdWl0ZS9nZGIudGhyZWFkcy90bHMtc2VwZGVidWcuZXhwCTIwMTMtMDEtMTggMjM6NDM6MDQu NDU5NzU2MzcxICswMTAwCi0rKysgZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2dk Yi50aHJlYWRzL3Rscy1zZXBkZWJ1Zy5leHAJMjAxMy0wMS0xOCAyMzo0MzowOC4wODQ3NjExMzUg KzAxMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhy ZWFkcy90bHMtc2VwZGVidWcuZXhwCTIwMTQtMDItMDYgMTg6MjY6MDUuMTE5MDgzMDgyICswMTAw CisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3Rscy1z ZXBkZWJ1Zy5leHAJMjAxNC0wMi0wNiAxODoyNjowNi42OTEwODQ3NjMgKzAxMDAKIEBAIC0zMiw3 ICszMiwyNSBAQCBzZXQgYmluc2hhcmVkZGVidWdmaWxlICR7b2JqZGlyfS8ke3N1YmRpCiAgCiAg IyBGSVhNRTogZ2NjIGRlcGVuZGVuY3kgKC1XbCwtc29uYW1lKS4KQEAgLTM5MSwxMyArMzkxLDEz IEBAIEluZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMv dGxzLXNlcGRlYnVnLmV4cAogICAgICB1bnRlc3RlZCAiQ291bGRuJ3QgY29tcGlsZSB0ZXN0IGxp YnJhcnkiCiAgICAgIHJldHVybiAtMQogIH0KLUluZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4L2dk Yi90ZXN0c3VpdGUvbGliL3ByZWxpbmstc3VwcG9ydC5leHAKK0luZGV4OiBnZGItNy42LjkwLjIw MTQwMTI3L2dkYi90ZXN0c3VpdGUvbGliL3ByZWxpbmstc3VwcG9ydC5leHAKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy41LjUwLjIwMTMwMTE4Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvcHJlbGluay1z dXBwb3J0LmV4cAkyMDEzLTAxLTE4IDIzOjQzOjA0LjQ1OTc1NjM3MSArMDEwMAotKysrIGdkYi03 LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9saWIvcHJlbGluay1zdXBwb3J0LmV4cAkyMDEz LTAxLTE4IDIzOjQzOjA4LjA4NDc2MTEzNSArMDEwMAotQEAgLTExOSw5ICsxMTksMzEgQEAgcHJv YyBmaWxlX2NvcHkge3NyYyBkZXN0fSB7CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dk Yi90ZXN0c3VpdGUvbGliL3ByZWxpbmstc3VwcG9ydC5leHAJMjAxNC0wMi0wNiAxODoyNjowNi42 OTIwODQ3NjcgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvbGli L3ByZWxpbmstc3VwcG9ydC5leHAJMjAxNC0wMi0wNiAxODoyNzo0NC45NjAxOTAxOTIgKzAxMDAK K0BAIC0xMTgsOSArMTE4LDMxIEBAIHByb2MgZmlsZV9jb3B5IHtzcmMgZGVzdH0gewogIHByb2Mg YnVpbGRfZXhlY3V0YWJsZV9vd25fbGlicyB7dGVzdG5hbWUgZXhlY3V0YWJsZSBzb3VyY2VzIG9w dGlvbnMge2ludGVycCAiIn0ge2RpciAiIn19IHsKLSAgICAgZ2xvYmFsIG9iamRpciBzdWJkaXIK KyAgICAgZ2xvYmFsIHN1YmRpcgogIAogLSAgICBpZiB7W2J1aWxkX2V4ZWN1dGFibGUgJHRlc3Ru YW1lICRleGVjdXRhYmxlICRzb3VyY2VzICRvcHRpb25zXSA9PSAtMX0gewogLQlyZXR1cm4gIiIK QEAgLTQyNiw2ICs0MjYsNiBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1 aXRlL2xpYi9wcmVsaW5rLXN1cHBvcnQuZXhwCiArCXJldHVybiAiIiAgIAogKyAgICB9CiArCi0g ICAgIHNldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtleGVjdXRhYmxlfQorICAgICBz ZXQgYmluZmlsZSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHtleGVjdXRhYmxlfV0KICAKLSAgICAg c2V0IGNvbW1hbmQgImxkZCAkYmluZmlsZSIKKyAgICAgc2V0IGxkZCBbZ2RiX2ZpbmRfbGRkXQoK ZGlmZiAtLWdpdCBhL2dkYi10ZXN0LWJ0LWNmaS13aXRob3V0LWRpZS5wYXRjaCBiL2dkYi10ZXN0 LWJ0LWNmaS13aXRob3V0LWRpZS5wYXRjaAppbmRleCA1ZjFmOTY3Li44MmY5ZDJkIDEwMDY0NAot LS0gYS9nZGItdGVzdC1idC1jZmktd2l0aG91dC1kaWUucGF0Y2gKKysrIGIvZ2RiLXRlc3QtYnQt Y2ZpLXdpdGhvdXQtZGllLnBhdGNoCkBAIC03MCwxMSArNzAsMTAgQEAgZ2RiL3Rlc3RzdWl0ZS8K ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jZmktd2l0aG91dC1k aWUtbWFpbi5jCiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY2Zp LXdpdGhvdXQtZGllLmV4cAogCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9j Zmktd2l0aG91dC1kaWUtY2FsbGVyLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NmaS13aXRo b3V0LWRpZS1jYWxsZXIuYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmFm ZGZkNTMKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY2ZpLXdp dGhvdXQtZGllLWNhbGxlci5jCitJbmRleDogZ2RiLTcuNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2NmaS13aXRob3V0LWRpZS1jYWxsZXIuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjcvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9jZmktd2l0aG91dC1kaWUtY2FsbGVyLmMJMjAxNC0wMi0wNiAxOTozNToyMy40 ODU4NjM4MTkgKzAxMDAKIEBAIC0wLDAgKzEsMjggQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBh cnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTA0LDExICsxMDMsMTAgQEAgaW5k ZXggMDAwMDAwMC4uYWZkZmQ1MwogKyAgLyogTW9kaWZ5IHRoZSByZXR1cm4gdmFsdWUgdG8gcHJl dmVudCBhbnkgdGFpbC1jYWxsIG9wdGltaXphdGlvbi4gICovCiArICByZXR1cm4gKCpjYWxsYmFj aykgKCkgLSBvbmU7CiArfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY2Zp LXdpdGhvdXQtZGllLW1haW4uYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY2ZpLXdpdGhvdXQt ZGllLW1haW4uYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjg0NTFjNGIK LS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY2ZpLXdpdGhvdXQt ZGllLW1haW4uYworSW5kZXg6IGdkYi03LjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jZmktd2l0 aG91dC1kaWUtbWFpbi5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2NmaS13aXRob3V0LWRpZS1tYWluLmMJMjAxNC0wMi0wNiAxOTozNToyMy40ODU4NjM4MTkgKzAx MDAKIEBAIC0wLDAgKzEsMzIgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0 aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTQyLDExICsxNDAsMTAgQEAgaW5kZXggMDAwMDAwMC4u ODQ1MWM0YgogK3sKICsgIHJldHVybiBjYWxsZXIgKGNhbGxiYWNrKTsKICt9Ci1kaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jZmktd2l0aG91dC1kaWUuZXhwIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9jZmktd2l0aG91dC1kaWUuZXhwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAot aW5kZXggMDAwMDAwMC4uZGI2ZDI0OAotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9jZmktd2l0aG91dC1kaWUuZXhwCitJbmRleDogZ2RiLTcuNy9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL2NmaS13aXRob3V0LWRpZS5leHAKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy43L2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvY2ZpLXdpdGhvdXQtZGllLmV4cAkyMDE0LTAyLTA2IDIwOjI2OjAw Ljc3NTIwODg0NyArMDEwMAogQEAgLTAsMCArMSw2NyBAQAogKyMgQ29weXJpZ2h0IDIwMTAgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xNjksOSArMTY2LDkgQEAgaW5kZXgg MDAwMDAwMC4uZGI2ZDI0OAogK3NldCBzcmNtYWluZmlsZSAke3Rlc3RmaWxlfS1tYWluLmMKICtz ZXQgc3JjY2FsbGVyZmlsZSAke3Rlc3RmaWxlfS1jYWxsZXIuYwogK3NldCBleGVjdXRhYmxlICR7 dGVzdGZpbGV9Ci0rc2V0IG9iam1haW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0Zmls ZX0tbWFpbi5vCi0rc2V0IG9iamNhbGxlcmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3Rm aWxlfS1jYWxsZXIubwotK3NldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtleGVjdXRh YmxlfQorK3NldCBvYmptYWluZmlsZSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHt0ZXN0ZmlsZX0t bWFpbi5vXQorK3NldCBvYmpjYWxsZXJmaWxlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAke3Rlc3Rm aWxlfS1jYWxsZXIub10KKytzZXQgYmluZmlsZSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHtleGVj dXRhYmxlfV0KICsKICtpZiB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3Ny Y2NhbGxlcmZpbGV9IiAke29iamNhbGxlcmZpbGV9IFwKICsgICAgICBvYmplY3QgW2xpc3Qge2Fk ZGl0aW9uYWxfZmxhZ3M9LWZvbWl0LWZyYW1lLXBvaW50ZXIgLWZuby11bndpbmQtdGFibGVzIC1m bm8tYXN5bmNocm9ub3VzLXVud2luZC10YWJsZXN9XV0gIT0gIiIKQEAgLTIxNSw2ICsyMTIsMyBA QCBpbmRleCAwMDAwMDAwLi5kYjZkMjQ4CiArIyAjMSAgMHgwMDAwMDAwMDAwNDAwNGU5IGluIGNh bGxlciAoKQogKyMgIzIgIDB4MDAwMDAwMDAwMDQwMDRjZCBpbiBtYWluICgpIGF0IC4uLgogK2dk Yl90ZXN0ICJidCIgIiMwICtjYWxsYmFjayBcW15cclxuXF0rXHJcbiMxIFxbXlxyXG5cXSsgaW4g Y2FsbGVyIFxbXlxyXG5cXStcclxuIzIgXFteXHJcblxdKyBpbiBtYWluIFxbXlxyXG5cXSsiICJ2 ZXJpZnkgdW53aW5kaW4gd29ya3MgZm9yIENGSSB3aXRob3V0IERJRXMiCi0tLSAKLTEuNy4xLjEK LQoKZGlmZiAtLWdpdCBhL2dkYi10ZXN0LWR3Mi1hcmFuZ2VzLnBhdGNoIGIvZ2RiLXRlc3QtZHcy LWFyYW5nZXMucGF0Y2gKaW5kZXggNWRkY2Y5ZC4uM2QwZjQyOSAxMDA2NDQKLS0tIGEvZ2RiLXRl c3QtZHcyLWFyYW5nZXMucGF0Y2gKKysrIGIvZ2RiLXRlc3QtZHcyLWFyYW5nZXMucGF0Y2gKQEAg LTIwLDExICsyMCwxMCBAQCBEYXRlOiAgIFNhdCBBdWcgMTUgMTU6MDU6NTQgMjAwOSArMDIwMAog ICAgIAogICAgIAkqIGdkYi5kd2FyZjIvZHcyLWFyYW5nZXMuZXhwLCBnZGIuZHdhcmYyL2R3Mi1h cmFuZ2VzLlM6IE5ldyBmaWxlcy4KIAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9kdzItYXJhbmdlcy5TIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1hcmFuZ2Vz LlMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5kNWI5Y2E1YQotLS0tIC9k ZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1hcmFuZ2VzLlMKK0lu ZGV4OiBnZGItNy43L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYXJhbmdlcy5TCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw CisrKysgZ2RiLTcuNy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWFyYW5nZXMuUwkyMDE0 LTAyLTA2IDIyOjAyOjIyLjA4NzQ0OTY2MCArMDEwMAogQEAgLTAsMCArMSwxNDAgQEAKICsvKiBU aGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTY2 LDExICsxNjUsMTAgQEAgaW5kZXggMDAwMDAwMC4uZDViOWNhNWEKICsJLmJ5dGUJCTAJCQkvKiBh cmFuZ2VzIHNlZ21lbnRfc2l6ZSAqLwogKwogKy5MYXJhbmdlc19lbmQ6Ci1kaWZmIC0tZ2l0IGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1hcmFuZ2VzLmV4cCBiL2dkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi9kdzItYXJhbmdlcy5leHAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAw MDAwMDAwLi4zOTYzMmQ1Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5k d2FyZjIvZHcyLWFyYW5nZXMuZXhwCitJbmRleDogZ2RiLTcuNy9nZGIvdGVzdHN1aXRlL2dkYi5k d2FyZjIvZHcyLWFyYW5nZXMuZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuNy9nZGIvdGVzdHN1aXRlL2dk Yi5kd2FyZjIvZHcyLWFyYW5nZXMuZXhwCTIwMTQtMDItMDYgMjI6MDk6MDguMzIyODUyNzcxICsw MTAwCiBAQCAtMCwwICsxLDQwIEBACiArIyBDb3B5cmlnaHQgMjAwNCwgMjAwNSwgMjAwNywgMjAw OCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIwMiw3ICsyMDAs NyBAQCBpbmRleCAwMDAwMDAwLi4zOTYzMmQ1CiArCiArc2V0IHRlc3RmaWxlICJkdzItYXJhbmdl cyIKICtzZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5TCi0rc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7 c3ViZGlyfS8ke3Rlc3RmaWxlfQorK3NldCBiaW5maWxlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAk e3Rlc3RmaWxlfV0KICsKICtpZiAgeyBbZ2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0v JHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4ZWN1dGFibGUge25vZGVidWd9XSAhPSAiIiB9IHsK ICsgICAgcmV0dXJuIC0xCgpkaWZmIC0tZ2l0IGEvZ2RiLXRlc3RzdWl0ZS1ub2hvc3RpZC5wYXRj aCBiL2dkYi10ZXN0c3VpdGUtbm9ob3N0aWQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uZGM4ODBhOAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi10ZXN0c3VpdGUtbm9o b3N0aWQucGF0Y2gKQEAgLTAsMCArMSw1MCBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dk Yi1wYXRjaGVzLzIwMTQtMDIvbXNnMDAxNTguaHRtbAorU3ViamVjdDogW3BhdGNoXSB0ZXN0c3Vp dGU6IEZpeCAiRVJST1I6IG5vIGZpbGVpZCBmb3IiCisKKworLS1hekxIRk55TjMyWUNRR0NVCitD b250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKK0NvbnRlbnQtRGlzcG9z aXRpb246IGlubGluZQorCitIaSwKKworYTM1Y2ZiNDAwN2NlZThjYjg0MTA2NDEyY2QxN2Y0ZTEy ZjEzMzQ1YiBpcyB0aGUgZmlyc3QgYmFkIGNvbW1pdAorY29tbWl0IGEzNWNmYjQwMDdjZWU4Y2I4 NDEwNjQxMmNkMTdmNGUxMmYxMzM0NWIKK0F1dGhvcjogTWFjaWVqIFcuIFJvenlja2kgPG1hY3Jv QGNvZGVzb3VyY2VyeS5jb20+CitEYXRlOiAgIFRodSBPY3QgMjQgMjM6MzI6MzAgMjAxMyArMDEw MAorCiskIHJ1bnRlc3QgZ2RiLmJhc2Uvc29saWItZGlzYy5leHAKK1J1bm5pbmcgLi9nZGIuYmFz ZS9zb2xpYi1kaXNjLmV4cCAuLi4KK0VSUk9SOiBubyBmaWxlaWQgZm9yIGhvc3QxCitbLi4uXQor CisKK0phbgorCistLWF6TEhGTnlOMzJZQ1FHQ1UKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsg Y2hhcnNldD11cy1hc2NpaQorQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lOyBmaWxlbmFtZT0i Z2RiZmluaXNoLnBhdGNoIgorCitnZGIvdGVzdHN1aXRlLworMjAxNC0wMi0wNiAgSmFuIEtyYXRv Y2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJRml4ICJFUlJPUjogbm8gZmls ZWlkIGZvciIgaW4gdGhlIHRlc3RzdWl0ZS4KKwkqIGxpYi9nZGIuZXhwIChnZGJfZmluaXNoKTog Q2hlY2sgZ2RiX3NwYXduX2lkLgorCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ri LmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKK2luZGV4IDUzM2I4MWIuLjVjNTNjZGYg MTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCisrKysgYi9nZGIvdGVzdHN1 aXRlL2xpYi9nZGIuZXhwCitAQCAtMzcwOCw3ICszNzA4LDggQEAgcHJvYyBnZGJfZmluaXNoIHsg fSB7CisgICAgIGdsb2JhbCBjbGVhbmZpbGVzCisgCisgICAgICMgR2l2ZSBwZXJzaXN0ZW50IGdk YnNlcnZlciBhIGNoYW5jZSB0byB0ZXJtaW5hdGUgYmVmb3JlIEdEQiBpcyBraWxsZWQuCistICAg IGlmIHtbaW5mbyBleGlzdHMgZ2Ric2VydmVyX3JlY29ubmVjdF9wXSAmJiAkZ2Ric2VydmVyX3Jl Y29ubmVjdF9wfSB7CisrICAgIGlmIHtbaW5mbyBleGlzdHMgZ2Ric2VydmVyX3JlY29ubmVjdF9w XSAmJiAkZ2Ric2VydmVyX3JlY29ubmVjdF9wCisrCSYmIFtpbmZvIGV4aXN0cyBnZGJfc3Bhd25f aWRdfSB7CisgCXNlbmRfZ2RiICJraWxsXG4iOworIAlnZGJfZXhwZWN0IDEwIHsKKyAJICAgIC1y ZSAieSBvciBuIiB7CisKKy0tYXpMSEZOeU4zMllDUUdDVS0tCisKCmRpZmYgLS1naXQgYS9nZGIt dXBzdHJlYW0ucGF0Y2ggYi9nZGItdXBzdHJlYW0ucGF0Y2gKaW5kZXggNzJiY2NlNC4uMDkzNmUx YyAxMDA2NDQKLS0tIGEvZ2RiLXVwc3RyZWFtLnBhdGNoCisrKyBiL2dkYi11cHN0cmVhbS5wYXRj aApAQCAtMSwxMDYxICsxLDY2IEBACi1jb21taXQgMWFhNGNkNzc0Y2E2NzRlZTYwNjFlMjA2OGE0 MTBiYjY3YzhiYzgxMgotQXV0aG9yOiBBbmRyZXcgUGluc2tpIDxhcGluc2tpQGNhdml1bS5jb20+ Ci1EYXRlOiAgIFRodSBTZXAgMTIgMDc6MTQ6MzcgMjAxMyArMDAwMAotCi0gICAgMjAxMy0wOS0x MiAgQW5kcmV3IFBpbnNraSAgPGFwaW5za2lAY2F2aXVtLmNvbT4KLSAgICAKLSAgICAJKiBhYXJj aDY0LWxpbnV4LW5hdC5jIChhYXJjaDY0X2xpbnV4X3NldF9kZWJ1Z19yZWdzKTogWmVybyBvdXQg cmVncy4KLQotZGlmZiAtLWdpdCBhL2dkYi9DaGFuZ2VMb2cgYi9nZGIvQ2hhbmdlTG9nCi1pbmRl eCBmYTNkZTE2Li45MDNkY2JhIDEwMDY0NAotIyMjIGEvZ2RiL0NoYW5nZUxvZwotIyMjIGIvZ2Ri L0NoYW5nZUxvZwotIyMgLTEsMyArMSw3IEBACi0rMjAxMy0wOS0xMiAgQW5kcmV3IFBpbnNraSAg PGFwaW5za2lAY2F2aXVtLmNvbT4KLSsKLSsJKiBhYXJjaDY0LWxpbnV4LW5hdC5jIChhYXJjaDY0 X2xpbnV4X3NldF9kZWJ1Z19yZWdzKTogWmVybyBvdXQgcmVncy4KLSsKLSAyMDEzLTA5LTEwICBB bmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgotIAotIAkqIGNvbmZpZy9z MzkwL3MzOTAubWggKE5BVERFUEZJTEVTKTogQWRkIGxpbnV4LXdhaXRwaWQuby4KLWRpZmYgLS1n aXQgYS9nZGIvYWFyY2g2NC1saW51eC1uYXQuYyBiL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCi1p bmRleCA4NDZmMTU2Li5mNjg1NjE5IDEwMDY0NAotLS0tIGEvZ2RiL2FhcmNoNjQtbGludXgtbmF0 LmMKLSsrKyBiL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCi1AQCAtMzEyLDYgKzMxMiw3IEBAIGFh cmNoNjRfbGludXhfc2V0X2RlYnVnX3JlZ3MgKGNvbnN0IHN0cnVjdCBhYXJjaDY0X2RlYnVnX3Jl Z19zdGF0ZSAqc3RhdGUsCi0gICBjb25zdCBDT1JFX0FERFIgKmFkZHI7Ci0gICBjb25zdCB1bnNp Z25lZCBpbnQgKmN0cmw7Ci0gCi0rICBtZW1zZXQgKCZyZWdzLCAwLCBzaXplb2YgKHJlZ3MpKTsK LSAgIGlvdi5pb3ZfYmFzZSA9ICZyZWdzOwotICAgaW92Lmlvdl9sZW4gPSBzaXplb2YgKHJlZ3Mp OwotICAgY291bnQgPSB3YXRjaHBvaW50ID8gYWFyY2g2NF9udW1fd3BfcmVncyA6IGFhcmNoNjRf bnVtX2JwX3JlZ3M7Ci0KLQotCi1jb21taXQgMDVmZWIxOTMzZjgwZjJkNTVlMTMyYWRjNjU3ZDMx NTI5NDdhZjNkMQotQXV0aG9yOiBXaWxsIE5ld3RvbiA8d2lsbG5ld3RvbkBzb3VyY2V3YXJlLm9y Zz4KLURhdGU6ICAgVGh1IE9jdCAxMCAxMDo0MDo0MiAyMDEzICswMDAwCi0KLSAgICBnZGIvYWFy Y2g2NC1saW51eC10ZGVwLmM6IENhbGwgbGludXhfaW5pdF9hYmkuCi0gICAgCi0gICAgSWYgd2Ug YXJlIHJ1bm5pbmcgb24gYSBMaW51eCBwbGF0Zm9ybSB3ZSBzaG91bGQgY2FsbCBsaW51eF9pbml0 X2FiaQotICAgIGluIG9yZGVyIHRvIGdldCBhbGwgdGhlIHVzZWZ1bCBob29rcyBpdCBlbmFibGVz LgotICAgIAotICAgIGdkYi9DaGFuZ2VMb2c6Ci0gICAgCi0gICAgMjAxMy0xMC0xMCAgV2lsbCBO ZXd0b24gIDx3aWxsLm5ld3RvbkBsaW5hcm8ub3JnPgotICAgIAotICAgIAkqIGFhcmNoNjQtbGlu dXgtdGRlcC5jIChhYXJjaDY0X2xpbnV4X2luaXRfYWJpKTogQ2FsbAotICAgIAlsaW51eF9pbml0 X2FiaS4KLQotZGlmZiAtLWdpdCBhL2dkYi9DaGFuZ2VMb2cgYi9nZGIvQ2hhbmdlTG9nCi1pbmRl eCA0MzcyNTc5Li43YTQxOTY3IDEwMDY0NAotIyMjIGEvZ2RiL0NoYW5nZUxvZwotIyMjIGIvZ2Ri L0NoYW5nZUxvZwotIyMgLTEsMyArMSw4IEBACi0rMjAxMy0xMC0xMCAgV2lsbCBOZXd0b24gIDx3 aWxsLm5ld3RvbkBsaW5hcm8ub3JnPgotKwotKwkqIGFhcmNoNjQtbGludXgtdGRlcC5jIChhYXJj aDY0X2xpbnV4X2luaXRfYWJpKTogQ2FsbAotKwlsaW51eF9pbml0X2FiaS4KLSsKLSAyMDEzLTEw LTEwICBKb2VsIEJyb2JlY2tlciAgPGJyb2JlY2tlckBhZGFjb3JlLmNvbT4KLSAKLSAJKiBjbGkv Y2xpLWNtZHMuYyAoc2hvd19iYXVkX3JhdGUpOiBNb3ZlZCB0byBzZXJpYWwuYyBhcwotZGlmZiAt LWdpdCBhL2dkYi9hYXJjaDY0LWxpbnV4LXRkZXAuYyBiL2dkYi9hYXJjaDY0LWxpbnV4LXRkZXAu YwotaW5kZXggOGU2NjQyNS4uYmNmY2NlMiAxMDA2NDQKLS0tLSBhL2dkYi9hYXJjaDY0LWxpbnV4 LXRkZXAuYwotKysrIGIvZ2RiL2FhcmNoNjQtbGludXgtdGRlcC5jCi1AQCAtMjcwLDYgKzI3MCw4 IEBAIGFhcmNoNjRfbGludXhfaW5pdF9hYmkgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbywgc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gpCi0gCi0gICB0ZGVwLT5sb3dlc3RfcGMgPSAweDgwMDA7Ci0g Ci0rICBsaW51eF9pbml0X2FiaSAoaW5mbywgZ2RiYXJjaCk7Ci0rCi0gICBzZXRfc29saWJfc3Zy NF9mZXRjaF9saW5rX21hcF9vZmZzZXRzIChnZGJhcmNoLAotIAkJCQkJIHN2cjRfbHA2NF9mZXRj aF9saW5rX21hcF9vZmZzZXRzKTsKLSAKLQotCi0KLXByZS1yZXEgZm9yOgotW1BBVENILCBBQXJj aDY0XSBGaXggYnVnIGluIGhhcmR3YXJlIHdhdGNocG9pbnQvYnJlYWtwb2ludCBoYW5kbGluZwot Y29tbWl0IGM2MjNhNmVmNzJhOGQ3ZGJiYjY0NjM0NWY3NTY0NjcxMGNiOWJiNjgKLUF1dGhvcjog V2lsbCBOZXd0b24gPHdpbGxuZXd0b25Ac291cmNld2FyZS5vcmc+Ci1EYXRlOiAgIE1vbiBTZXAg MTYgMTQ6MjI6MTkgMjAxMyArMDAwMAotCi0gICAgZ2Ric2VydmVyLCBhYXJjaDY0OiBaZXJvIG91 dCByZWdzIGluIGFhcmNoNjRfbGludXhfc2V0X2RlYnVnX3JlZ3MuCi0gICAgCi0gICAgQXBwbHkg dGhlIHNhbWUgZml4IHRoYXQgd2FzIGFwcGxpZWQgdG8gYWFyY2g2NC1saW51eC1uYXQuYy4KLSAg ICAKLSAgICAyMDEzLTA5LTE2ICBXaWxsIE5ld3RvbiAgPHdpbGwubmV3dG9uQGxpbmFyby5vcmc+ Ci0gICAgCi0gICAgCSogbGludXgtYWFyY2g2NC1sb3cuYyAoYWFyY2g2NF9saW51eF9zZXRfZGVi dWdfcmVncyk6IFplcm8KLSAgICAJb3V0IHJlZ3MuCi0KLWRpZmYgLS1naXQgYS9nZGIvZ2Ric2Vy dmVyL0NoYW5nZUxvZyBiL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nCi1pbmRleCA3MzE5MWY0Li4x MDgyZTc4IDEwMDY0NAotIyMjIGEvZ2RiL2dkYnNlcnZlci9DaGFuZ2VMb2cKLSMjIyBiL2dkYi9n ZGJzZXJ2ZXIvQ2hhbmdlTG9nCi0jIyAtMSwzICsxLDggQEAKLSsyMDEzLTA5LTE2ICBXaWxsIE5l d3RvbiAgPHdpbGwubmV3dG9uQGxpbmFyby5vcmc+Ci0rCi0rCSogbGludXgtYWFyY2g2NC1sb3cu YyAoYWFyY2g2NF9saW51eF9zZXRfZGVidWdfcmVncyk6IFplcm8KLSsJb3V0IHJlZ3MuCi0rCi0g MjAxMy0wOS0wNiAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAKLSAJKiBNYWtl ZmlsZS5pbiAoZ2RiX3Byb2Nfc2VydmljZV9oLCByZWdkZWZfaCwgcmVnY2FjaGVfaCkKLWRpZmYg LS1naXQgYS9nZGIvZ2Ric2VydmVyL2xpbnV4LWFhcmNoNjQtbG93LmMgYi9nZGIvZ2Ric2VydmVy L2xpbnV4LWFhcmNoNjQtbG93LmMKLWluZGV4IGUzN2Y2MDIuLjkzMjQ2YjMgMTAwNjQ0Ci0tLS0g YS9nZGIvZ2Ric2VydmVyL2xpbnV4LWFhcmNoNjQtbG93LmMKLSsrKyBiL2dkYi9nZGJzZXJ2ZXIv bGludXgtYWFyY2g2NC1sb3cuYwotQEAgLTYwMCw2ICs2MDAsNyBAQCBhYXJjaDY0X2xpbnV4X3Nl dF9kZWJ1Z19yZWdzIChjb25zdCBzdHJ1Y3QgYWFyY2g2NF9kZWJ1Z19yZWdfc3RhdGUgKnN0YXRl LAotICAgY29uc3QgQ09SRV9BRERSICphZGRyOwotICAgY29uc3QgdW5zaWduZWQgaW50ICpjdHJs OwotIAotKyAgbWVtc2V0ICgmcmVncywgMCwgc2l6ZW9mIChyZWdzKSk7Ci0gICBpb3YuaW92X2Jh c2UgPSAmcmVnczsKLSAgIGlvdi5pb3ZfbGVuID0gc2l6ZW9mIChyZWdzKTsKLSAgIGNvdW50ID0g d2F0Y2hwb2ludCA/IGFhcmNoNjRfbnVtX3dwX3JlZ3MgOiBhYXJjaDY0X251bV9icF9yZWdzOwot Ci0KLQotW1BBVENILCBBQXJjaDY0XSBGaXggYnVnIGluIGhhcmR3YXJlIHdhdGNocG9pbnQvYnJl YWtwb2ludCBoYW5kbGluZwotaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8y MDEzLTEyL21zZzAwNzA3Lmh0bWwKLWNvbW1pdCBmNDVjODJkYTM4MWUwY2U1Y2U1MWI3ZmIyNGQw ZDI4NjExZDI2NmI4Ci1BdXRob3I6IFl1ZmVuZyBaaGFuZyA8eXVmZW5nLnpoYW5nQGFybS5jb20+ Ci1EYXRlOiAgIFdlZCBEZWMgMTggMTY6NDc6MzMgMjAxMyArMDAwMAotCi0gICAgZ2RiLwotICAg IAotICAgIAkqIGFhcmNoNjQtbGludXgtbmF0LmMgKGFhcmNoNjRfbGludXhfc2V0X2RlYnVnX3Jl Z3MpOiBTZXQKLSAgICAJaW92Lmlvdl9sZW4gd2l0aCB0aGUgcmVhbCBsZW5ndGggaW4gdXNlLgot ICAgIAotICAgIGdkYi9nZGJzZXJ2ZXIvCi0gICAgCi0gICAgCSogbGludXgtYWFyY2g2NC1sb3cu YyAoYWFyY2g2NF9saW51eF9zZXRfZGVidWdfcmVncyk6IFNldAotICAgIAlpb3YuaW92X2xlbiB3 aXRoIHRoZSByZWFsIGxlbmd0aCBpbiB1c2UuCi0KLWRpZmYgLS1naXQgYS9nZGIvQ2hhbmdlTG9n IGIvZ2RiL0NoYW5nZUxvZwotaW5kZXggN2Q5MzA4Zi4uNTEzYzU5MyAxMDA2NDQKLSMjIyBhL2dk Yi9DaGFuZ2VMb2cKLSMjIyBiL2dkYi9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEsOCBAQAotKzIwMTMt MTItMTggIFl1ZmVuZyBaaGFuZyAgPHl1ZmVuZy56aGFuZ0Bhcm0uY29tPgotKwotKwkqIGFhcmNo NjQtbGludXgtbmF0LmMgKGFhcmNoNjRfbGludXhfc2V0X2RlYnVnX3JlZ3MpOiBTZXQKLSsJaW92 Lmlvdl9sZW4gd2l0aCB0aGUgcmVhbCBsZW5ndGggaW4gdXNlLgotKwotIDIwMTMtMTItMTggIFlh byBRaSAgPHlhb0Bjb2Rlc291cmNlcnkuY29tPgotIAotIAkqIHRhcmdldC5oICh0YXJnZXRfeGZl cl9wYXJ0aWFsX2Z0eXBlKTogTmV3IHR5cGVkZWYuCi1kaWZmIC0tZ2l0IGEvZ2RiL2FhcmNoNjQt bGludXgtbmF0LmMgYi9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwotaW5kZXggMjU2NzI1Yi4uN2Q3 NjgzMyAxMDA2NDQKLS0tLSBhL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCi0rKysgYi9nZGIvYWFy Y2g2NC1saW51eC1uYXQuYwotQEAgLTMxNCwxMCArMzE0LDEzIEBAIGFhcmNoNjRfbGludXhfc2V0 X2RlYnVnX3JlZ3MgKGNvbnN0IHN0cnVjdCBhYXJjaDY0X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUs Ci0gCi0gICBtZW1zZXQgKCZyZWdzLCAwLCBzaXplb2YgKHJlZ3MpKTsKLSAgIGlvdi5pb3ZfYmFz ZSA9ICZyZWdzOwotLSAgaW92Lmlvdl9sZW4gPSBzaXplb2YgKHJlZ3MpOwotICAgY291bnQgPSB3 YXRjaHBvaW50ID8gYWFyY2g2NF9udW1fd3BfcmVncyA6IGFhcmNoNjRfbnVtX2JwX3JlZ3M7Ci0g ICBhZGRyID0gd2F0Y2hwb2ludCA/IHN0YXRlLT5kcl9hZGRyX3dwIDogc3RhdGUtPmRyX2FkZHJf YnA7Ci0gICBjdHJsID0gd2F0Y2hwb2ludCA/IHN0YXRlLT5kcl9jdHJsX3dwIDogc3RhdGUtPmRy X2N0cmxfYnA7Ci0rICBpZiAoY291bnQgPT0gMCkKLSsgICAgcmV0dXJuOwotKyAgaW92Lmlvdl9s ZW4gPSAob2Zmc2V0b2YgKHN0cnVjdCB1c2VyX2h3ZGVidWdfc3RhdGUsIGRiZ19yZWdzW2NvdW50 IC0gMV0pCi0rCQkgKyBzaXplb2YgKHJlZ3MuZGJnX3JlZ3MgW2NvdW50IC0gMV0pKTsKLSAKLSAg IGZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKQotICAgICB7Ci1kaWZmIC0tZ2l0IGEvZ2RiL2dk YnNlcnZlci9DaGFuZ2VMb2cgYi9nZGIvZ2Ric2VydmVyL0NoYW5nZUxvZwotaW5kZXggYzczODQw Zi4uMjg0Nzc5NiAxMDA2NDQKLSMjIyBhL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nCi0jIyMgYi9n ZGIvZ2Ric2VydmVyL0NoYW5nZUxvZwotIyMgLTEsMyArMSw4IEBACi0rMjAxMy0xMi0xOCAgWXVm ZW5nIFpoYW5nICA8eXVmZW5nLnpoYW5nQGFybS5jb20+Ci0rCi0rCSogbGludXgtYWFyY2g2NC1s b3cuYyAoYWFyY2g2NF9saW51eF9zZXRfZGVidWdfcmVncyk6IFNldAotKwlpb3YuaW92X2xlbiB3 aXRoIHRoZSByZWFsIGxlbmd0aCBpbiB1c2UuCi0rCi0gMjAxMy0xMi0xMyAgSm9lbCBCcm9iZWNr ZXIgIDxicm9iZWNrZXJAYWRhY29yZS5jb20+Ci0gCi0gCSogTWFrZWZpbGUuaW4gKHNhZmUtY3R5 cGUubywgbGJhc2VuYW1lLm8pOiBOZXcgcnVsZXMuCi1kaWZmIC0tZ2l0IGEvZ2RiL2dkYnNlcnZl ci9saW51eC1hYXJjaDY0LWxvdy5jIGIvZ2RiL2dkYnNlcnZlci9saW51eC1hYXJjaDY0LWxvdy5j Ci1pbmRleCA5MzI0NmIzLi5jMmQyNzFhIDEwMDY0NAotLS0tIGEvZ2RiL2dkYnNlcnZlci9saW51 eC1hYXJjaDY0LWxvdy5jCi0rKysgYi9nZGIvZ2Ric2VydmVyL2xpbnV4LWFhcmNoNjQtbG93LmMK LUBAIC02MDIsMTAgKzYwMiwxMyBAQCBhYXJjaDY0X2xpbnV4X3NldF9kZWJ1Z19yZWdzIChjb25z dCBzdHJ1Y3QgYWFyY2g2NF9kZWJ1Z19yZWdfc3RhdGUgKnN0YXRlLAotIAotICAgbWVtc2V0ICgm cmVncywgMCwgc2l6ZW9mIChyZWdzKSk7Ci0gICBpb3YuaW92X2Jhc2UgPSAmcmVnczsKLS0gIGlv di5pb3ZfbGVuID0gc2l6ZW9mIChyZWdzKTsKLSAgIGNvdW50ID0gd2F0Y2hwb2ludCA/IGFhcmNo NjRfbnVtX3dwX3JlZ3MgOiBhYXJjaDY0X251bV9icF9yZWdzOwotICAgYWRkciA9IHdhdGNocG9p bnQgPyBzdGF0ZS0+ZHJfYWRkcl93cCA6IHN0YXRlLT5kcl9hZGRyX2JwOwotICAgY3RybCA9IHdh dGNocG9pbnQgPyBzdGF0ZS0+ZHJfY3RybF93cCA6IHN0YXRlLT5kcl9jdHJsX2JwOwotKyAgaWYg KGNvdW50ID09IDApCi0rICAgIHJldHVybjsKLSsgIGlvdi5pb3ZfbGVuID0gKG9mZnNldG9mIChz dHJ1Y3QgdXNlcl9od2RlYnVnX3N0YXRlLCBkYmdfcmVnc1tjb3VudCAtIDFdKQotKwkJICsgc2l6 ZW9mIChyZWdzLmRiZ19yZWdzIFtjb3VudCAtIDFdKSk7Ci0gCi0gICBmb3IgKGkgPSAwOyBpIDwg Y291bnQ7IGkrKykKLSAgICAgewotCitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNo ZXMvMjAxNC0wMi9tc2cwMDE3OS5odG1sCitTdWJqZWN0OiBbb2J2XSB0ZXN0c3VpdGU6IEZpeCBp Mzg2LXNzZS1zdGFjay1hbGlnbi5leHAgcmVncmVzc2lvbiBzaW5jZSBHREJfUEFSQUxMRUwKIAog Ci1jb21taXQgOWE5NWU3NWVlOTk0NGNiZTZmZTMwMjFiOTJhN2M0ZGU4N2JlNmZlMQotQXV0aG9y OiBZYW8gUWkgPHlhb0Bjb2Rlc291cmNlcnkuY29tPgotRGF0ZTogICBXZWQgQXVnIDE0IDExOjUz OjExIDIwMTMgKzAwMDAKLQotICAgIGdkYi8KLSAgICAKLSAgICAJUFIgZ2RiLzE1ODM3OgotICAg IAkqIGZyYW1lLmggKHJlYWRfZnJhbWVfbG9jYWwpOiBEZWNsYXJlLgotICAgIAkqIG1pL21pLWNt ZC1zdGFjay5jIChsaXN0X2FyZ3Nfb3JfbG9jYWxzKTogQ2FsbAotICAgIAlyZWFkX2ZyYW1lX2xv Y2FsLgotICAgIAkqIHN0YWNrLmMgKHJlYWRfZnJhbWVfbG9jYWwpOiBOZXcuCi0KLSMjIyBhL2dk Yi9DaGFuZ2VMb2cKLSMjIyBiL2dkYi9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEsMTEgQEAKLSsyMDEz LTA4LTE0ICBZYW8gUWkgIDx5YW9AY29kZXNvdXJjZXJ5LmNvbT4KLSsKLSsJUFIgZ2RiLzE1ODM3 OgotKwkqIGZyYW1lLmggKHJlYWRfZnJhbWVfbG9jYWwpOiBEZWNsYXJlLgotKwkqIG1pL21pLWNt ZC1zdGFjay5jIChsaXN0X2FyZ3Nfb3JfbG9jYWxzKTogQ2FsbAotKwlyZWFkX2ZyYW1lX2xvY2Fs LgotKwkqIHN0YWNrLmMgKHJlYWRfZnJhbWVfbG9jYWwpOiBOZXcuCi0rCi0gMjAxMy0wNi0yOCAg UGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAKLSAJUFIgdHVpLzE0ODgwCi0tLS0g YS9nZGIvZnJhbWUuaAotKysrIGIvZ2RiL2ZyYW1lLmgKLUBAIC03MTQsNiArNzE0LDggQEAgc3Ry dWN0IGZyYW1lX2FyZwotIGV4dGVybiB2b2lkIHJlYWRfZnJhbWVfYXJnIChzdHJ1Y3Qgc3ltYm9s ICpzeW0sIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKLSAJCQkgICAgc3RydWN0IGZyYW1lX2Fy ZyAqYXJncCwKLSAJCQkgICAgc3RydWN0IGZyYW1lX2FyZyAqZW50cnlhcmdwKTsKLStleHRlcm4g dm9pZCByZWFkX2ZyYW1lX2xvY2FsIChzdHJ1Y3Qgc3ltYm9sICpzeW0sIHN0cnVjdCBmcmFtZV9p bmZvICpmcmFtZSwKLSsJCQkgICAgICBzdHJ1Y3QgZnJhbWVfYXJnICphcmdwKTsKLSAKLSBleHRl cm4gdm9pZCBhcmdzX2luZm8gKGNoYXIgKiwgaW50KTsKLSAKLS0tLSBhL2dkYi9taS9taS1jbWQt c3RhY2suYwotKysrIGIvZ2RiL21pL21pLWNtZC1zdGFjay5jCi1AQCAtNDE3LDcgKzQxNywxMCBA QCBsaXN0X2FyZ3Nfb3JfbG9jYWxzIChlbnVtIHdoYXRfdG9fbGlzdCB3aGF0LCBlbnVtIHByaW50 X3ZhbHVlcyB2YWx1ZXMsCi0gCQkgICAgICAmJiBUWVBFX0NPREUgKHR5cGUpICE9IFRZUEVfQ09E RV9VTklPTikKLSAJCSAgICB7Ci0gCQljYXNlIFBSSU5UX0FMTF9WQUxVRVM6Ci0tCQkgICAgICBy ZWFkX2ZyYW1lX2FyZyAoc3ltMiwgZmksICZhcmcsICZlbnRyeWFyZyk7Ci0rCQkgIGlmIChTWU1C T0xfSVNfQVJHVU1FTlQgKHN5bSkpCi0rCQkgICAgcmVhZF9mcmFtZV9hcmcgKHN5bTIsIGZpLCAm YXJnLCAmZW50cnlhcmcpOwotKwkJICBlbHNlCi0rCQkgICAgcmVhZF9mcmFtZV9sb2NhbCAoc3lt MiwgZmksICZhcmcpOwotIAkJICAgIH0KLSAJCSAgYnJlYWs7Ci0gCQl9Ci0tLS0gYS9nZGIvc3Rh Y2suYwotKysrIGIvZ2RiL3N0YWNrLmMKLUBAIC0yOTYsNiArMjk2LDI3IEBAIHByaW50X2ZyYW1l X2FyZyAoY29uc3Qgc3RydWN0IGZyYW1lX2FyZyAqYXJnKQotICAgYW5ub3RhdGVfYXJnX2VuZCAo KTsKLSB9Ci0gCi0rLyogUmVhZCBpbiBpbmZlcmlvciBmdW5jdGlvbiBsb2NhbCBTWU0gYXQgRlJB TUUgaW50byBBUkdQLiAgQ2FsbGVyIGlzCi0rICAgcmVzcG9uc2libGUgZm9yIHhmcmVlIG9mIEFS R1AtPkVSUk9SLiAgVGhpcyBmdW5jdGlvbiBuZXZlciB0aHJvd3MgYW4KLSsgICBleGNlcHRpb24u ICAqLwotKwotK3ZvaWQKLStyZWFkX2ZyYW1lX2xvY2FsIChzdHJ1Y3Qgc3ltYm9sICpzeW0sIHN0 cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKLSsJCSAgc3RydWN0IGZyYW1lX2FyZyAqYXJncCkKLSt7 Ci0rICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBleGNlcHQ7Ci0rICBzdHJ1Y3QgdmFs dWUgKnZhbCA9IE5VTEw7Ci0rCi0rICBUUllfQ0FUQ0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tfRVJS T1IpCi0rICAgIHsKLSsgICAgICB2YWwgPSByZWFkX3Zhcl92YWx1ZSAoc3ltLCBmcmFtZSk7Ci0r ICAgIH0KLSsKLSsgIGFyZ3AtPmVycm9yID0gKHZhbCA9PSBOVUxMKSA/IHhzdHJkdXAgKGV4Y2Vw dC5tZXNzYWdlKSA6IE5VTEw7Ci0rICBhcmdwLT5zeW0gPSBzeW07Ci0rICBhcmdwLT52YWwgPSB2 YWw7Ci0rfQotKwotIC8qIFJlYWQgaW4gaW5mZXJpb3IgZnVuY3Rpb24gcGFyYW1ldGVyIFNZTSBh dCBGUkFNRSBpbnRvIEFSR1AuICBDYWxsZXIgaXMKLSAgICByZXNwb25zaWJsZSBmb3IgeGZyZWUg b2YgQVJHUC0+RVJST1IuICBUaGlzIGZ1bmN0aW9uIG5ldmVyIHRocm93cyBhbgotICAgIGV4Y2Vw dGlvbi4gICovCi0KLQotCi1jb21taXQgNGIwZjVmYmIyNTNmYmJlOWMyZjQ1NzhlYmQ3ZGQ5NDIw NGE0NjQ3NwotQXV0aG9yOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KLURhdGU6ICAgVGh1IEF1ZyAyOSAxNDoyNDoxNiAyMDEzICswMDAwCi0KLSAgICBQUiBzZXJ2 ZXIvMTU2MDQKLSAgICAKLSAgICBnZGIvZ2Ric2VydmVyLwotICAgIDIwMTMtMDgtMjkgIEphbiBL cmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSAgICAKLSAgICAJUFIgc2Vy dmVyLzE1NjA0Ci0gICAgCSogbGludXgtbG93LmMKLSAgICAJKGxpbnV4X2NyZWF0ZV9pbmZlcmlv cikgPHBpZCA9PSAwICYmICFyZW1vdGVfY29ubmVjdGlvbl9pc19zdGRpbyAoKT46Ci0gICAgCUNs b3NlIExJU1RFTl9ERVNDIGFuZCBvcHRpb25hbGx5IFJFTU9URV9ERVNDLgotICAgIAkobHlueF9j cmVhdGVfaW5mZXJpb3IpIDxwaWQgPT0gMCAmJiAhcmVtb3RlX2Nvbm5lY3Rpb25faXNfc3RkaW8g KCk+OgotICAgIAlDbG9zZSBMSVNURU5fREVTQyBhbmQgb3B0aW9uYWxseSBSRU1PVEVfREVTQy4K LSAgICAJKiByZW1vdGUtdXRpbHMuYyAocmVtb3RlX2Rlc2MsIGxpc3Rlbl9kZXNjKTogUmVtb3Zl IHN0YXRpYyBxdWFsaWZpZXIuCi0gICAgCSogc2VydmVyLmggKHJlbW90ZV9kZXNjLCBsaXN0ZW5f ZGVzYyk6IE5ldyBkZWNsYXJhdGlvbi4KLSAgICAJKiBzcHUtbG93LmMKLSAgICAJKHNwdV9jcmVh dGVfaW5mZXJpb3IpIDxwaWQgPT0gMCAmJiAhcmVtb3RlX2Nvbm5lY3Rpb25faXNfc3RkaW8gKCk+ OgotICAgIAlDbG9zZSBMSVNURU5fREVTQyBhbmQgb3B0aW9uYWxseSBSRU1PVEVfREVTQy4KLQot IyMjIGEvZ2RiL2dkYnNlcnZlci9DaGFuZ2VMb2cKLSMjIyBiL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdl TG9nCi0jIyAtMSwzICsxLDE3IEBACi0rMjAxMy0wOC0yOSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPgotKwotKwlQUiBzZXJ2ZXIvMTU2MDQKLSsJKiBsaW51eC1s b3cuYwotKwkobGludXhfY3JlYXRlX2luZmVyaW9yKSA8cGlkID09IDAgJiYgIXJlbW90ZV9jb25u ZWN0aW9uX2lzX3N0ZGlvICgpPjoKLSsJQ2xvc2UgTElTVEVOX0RFU0MgYW5kIG9wdGlvbmFsbHkg UkVNT1RFX0RFU0MuCi0rCShseW54X2NyZWF0ZV9pbmZlcmlvcikgPHBpZCA9PSAwICYmICFyZW1v dGVfY29ubmVjdGlvbl9pc19zdGRpbyAoKT46Ci0rCUNsb3NlIExJU1RFTl9ERVNDIGFuZCBvcHRp b25hbGx5IFJFTU9URV9ERVNDLgotKwkqIHJlbW90ZS11dGlscy5jIChyZW1vdGVfZGVzYywgbGlz dGVuX2Rlc2MpOiBSZW1vdmUgc3RhdGljIHF1YWxpZmllci4KLSsJKiBzZXJ2ZXIuaCAocmVtb3Rl X2Rlc2MsIGxpc3Rlbl9kZXNjKTogTmV3IGRlY2xhcmF0aW9uLgotKwkqIHNwdS1sb3cuYwotKwko c3B1X2NyZWF0ZV9pbmZlcmlvcikgPHBpZCA9PSAwICYmICFyZW1vdGVfY29ubmVjdGlvbl9pc19z dGRpbyAoKT46Ci0rCUNsb3NlIExJU1RFTl9ERVNDIGFuZCBvcHRpb25hbGx5IFJFTU9URV9ERVND LgotKwotIDIwMTMtMDUtMzEgIERvdWcgRXZhbnMgIDxkamVAZ29vZ2xlLmNvbT4KLSAKLSAJUFIg c2VydmVyLzE1NTk0Ci0tLS0gYS9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCi0rKysgYi9nZGIv Z2Ric2VydmVyL2xpbnV4LWxvdy5jCi1AQCAtNjY4LDYgKzY2OCwxMiBAQCBsaW51eF9jcmVhdGVf aW5mZXJpb3IgKGNoYXIgKnByb2dyYW0sIGNoYXIgKiphbGxhcmdzKQotIAkgICAgICAvKiBFcnJv cnMgaWdub3JlZC4gICovOwotIAkgICAgfQotIAl9Ci0rICAgICAgZWxzZQotKwl7Ci0rCSAgY2xv c2UgKGxpc3Rlbl9kZXNjKTsKLSsJICBpZiAoZ2RiX2Nvbm5lY3RlZCAoKSkKLSsJICAgIGNsb3Nl IChyZW1vdGVfZGVzYyk7Ci0rCX0KLSAKLSAgICAgICBleGVjdiAocHJvZ3JhbSwgYWxsYXJncyk7 Ci0gICAgICAgaWYgKGVycm5vID09IEVOT0VOVCkKLS0tLSBhL2dkYi9nZGJzZXJ2ZXIvbHlueC1s b3cuYwotKysrIGIvZ2RiL2dkYnNlcnZlci9seW54LWxvdy5jCi1AQCAtMjE4LDYgKzIxOCwxMiBA QCBseW54X2NyZWF0ZV9pbmZlcmlvciAoY2hhciAqcHJvZ3JhbSwgY2hhciAqKmFsbGFyZ3MpCi0g ICAgICAgcGdycCA9IGdldHBpZCgpOwotICAgICAgIHNldHBnaWQgKDAsIHBncnApOwotICAgICAg IGlvY3RsICgwLCBUSU9DU1BHUlAsICZwZ3JwKTsKLSsgICAgICBpZiAoIXJlbW90ZV9jb25uZWN0 aW9uX2lzX3N0ZGlvICgpKQotKwl7Ci0rCSAgY2xvc2UgKGxpc3Rlbl9kZXNjKTsKLSsJICBpZiAo Z2RiX2Nvbm5lY3RlZCAoKSkKLSsJICAgIGNsb3NlIChyZW1vdGVfZGVzYyk7Ci0rCX0KLSAgICAg ICBseW54X3B0cmFjZSAoUFRSQUNFX1RSQUNFTUUsIG51bGxfcHRpZCwgMCwgMCwgMCk7Ci0gICAg ICAgZXhlY3YgKHByb2dyYW0sIGFsbGFyZ3MpOwotICAgICAgIGZwcmludGYgKHN0ZGVyciwgIkNh bm5vdCBleGVjICVzOiAlcy5cbiIsIHByb2dyYW0sIHN0cmVycm9yIChlcnJubykpOwotLS0tIGEv Z2RiL2dkYnNlcnZlci9yZW1vdGUtdXRpbHMuYwotKysrIGIvZ2RiL2dkYnNlcnZlci9yZW1vdGUt dXRpbHMuYwotQEAgLTEwOCw4ICsxMDgsOCBAQCBzdHJ1Y3QgdWlfZmlsZSAqZ2RiX3N0ZGxvZzsK LSAKLSBzdGF0aWMgaW50IHJlbW90ZV9pc19zdGRpbyA9IDA7Ci0gCi0tc3RhdGljIGdkYl9maWxk ZXNfdCByZW1vdGVfZGVzYyA9IElOVkFMSURfREVTQ1JJUFRPUjsKLS1zdGF0aWMgZ2RiX2ZpbGRl c190IGxpc3Rlbl9kZXNjID0gSU5WQUxJRF9ERVNDUklQVE9SOwotK2dkYl9maWxkZXNfdCByZW1v dGVfZGVzYyA9IElOVkFMSURfREVTQ1JJUFRPUjsKLStnZGJfZmlsZGVzX3QgbGlzdGVuX2Rlc2Mg PSBJTlZBTElEX0RFU0NSSVBUT1I7Ci0gCi0gLyogRklYTUUgaGVhZGVyaXplPyAqLwotIGV4dGVy biBpbnQgdXNpbmdfdGhyZWFkczsKLS0tLSBhL2dkYi9nZGJzZXJ2ZXIvc2VydmVyLmgKLSsrKyBi L2dkYi9nZGJzZXJ2ZXIvc2VydmVyLmgKLUBAIC0yNzQsNiArMjc0LDggQEAgZXh0ZXJuIHZvaWQg aG9zdGlvX2xhc3RfZXJyb3JfZnJvbV9lcnJubyAoY2hhciAqb3duX2J1Zik7Ci0gLyogRnJvbSBy ZW1vdGUtdXRpbHMuYyAqLwotIAotIGV4dGVybiBpbnQgcmVtb3RlX2RlYnVnOwotK2V4dGVybiBn ZGJfZmlsZGVzX3QgcmVtb3RlX2Rlc2M7Ci0rZXh0ZXJuIGdkYl9maWxkZXNfdCBsaXN0ZW5fZGVz YzsKLSBleHRlcm4gaW50IG5vYWNrX21vZGU7Ci0gZXh0ZXJuIGludCB0cmFuc3BvcnRfaXNfcmVs aWFibGU7Ci0gCi0tLS0gYS9nZGIvZ2Ric2VydmVyL3NwdS1sb3cuYwotKysrIGIvZ2RiL2dkYnNl cnZlci9zcHUtbG93LmMKLUBAIC0yNzMsNiArMjczLDEyIEBAIHNwdV9jcmVhdGVfaW5mZXJpb3Ig KGNoYXIgKnByb2dyYW0sIGNoYXIgKiphbGxhcmdzKQotIAotICAgaWYgKHBpZCA9PSAwKQotICAg ICB7Ci0rICAgICAgaWYgKCFyZW1vdGVfY29ubmVjdGlvbl9pc19zdGRpbyAoKSkKLSsJewotKwkg IGNsb3NlIChsaXN0ZW5fZGVzYyk7Ci0rCSAgaWYgKGdkYl9jb25uZWN0ZWQgKCkpCi0rCSAgICBj bG9zZSAocmVtb3RlX2Rlc2MpOwotKwl9Ci0gICAgICAgcHRyYWNlIChQVFJBQ0VfVFJBQ0VNRSwg MCwgMCwgMCk7Ci0gCi0gICAgICAgc2V0cGdpZCAoMCwgMCk7CistLXUzL3JaUm14TDZNbWtLMjQK K0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQorQ29udGVudC1EaXNw b3NpdGlvbjogaW5saW5lCiAKK0hpIFRvbSwKIAorJCBtYWtlIGNoZWNrLy91bml4Ly1tMzIgUlVO VEVTVEZMQUdTPSJnZGIuYXJjaC9pMzg2LXNzZS1zdGFjay1hbGlnbi5leHAgR0RCX1BBUkFMTEVM PTEiCitbLi4uXQorUnVubmluZyAvaG9tZS9qa3JhdG9jaC9yZWRoYXQvZ2RiLWNsZWFuL2dkYi90 ZXN0c3VpdGUvZ2RiLmFyY2gvaTM4Ni1zc2Utc3RhY2stYWxpZ24uZXhwIC4uLgorRVJST1I6ICgv aG9tZS9qa3JhdG9jaC9yZWRoYXQvZ2RiLWNsZWFuL2dkYi90ZXN0c3VpdGUudW5peC4tbTMyL291 dHB1dHMvZ2RiLmFyY2gvaTM4Ni1zc2Utc3RhY2stYWxpZ24vaTM4Ni1zc2Utc3RhY2stYWxpZ24p IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKIAotY29tbWl0IDUxMDYwNGVlZTc4OTJjNTRkOThl ZWZhMjg5M2FmYjgyM2M3MjE0MDYKLUF1dGhvcjogSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2No dmlsQHJlZGhhdC5jb20+Ci1EYXRlOiAgIFdlZCBBdWcgMjggMTc6NTU6NTYgMjAxMyArMDAwMAog Ci0gICAgUFIgZ2RiLzE1NDE1Ci0gICAgCi0gICAgZ2RiLwotICAgIDIwMTMtMDgtMjcgIEphbiBL cmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSAgICAKLSAgICAJUFIgZ2Ri LzE1NDE1Ci0gICAgCSogY29yZWZpbGUuYyAoZ2V0X2V4ZWNfZmlsZSk6IFVzZSBleGVjX2ZpbGVu YW1lLgotICAgIAkqIGRlZnMuaCAoT1BGX0RJU0FCTEVfUkVBTFBBVEgpOiBOZXcgZGVmaW5pdGlv bi4gIEFkZCBuZXcgY29tbWVudC4KLSAgICAJKiBleGVjLmMgKGV4ZWNfY2xvc2UpOiBGcmVlIEVY RUNfRklMRU5BTUUuCi0gICAgCShleGVjX2ZpbGVfYXR0YWNoKTogTmV3IHZhcmlhYmxlIGNhbm9u aWNhbF9wYXRobmFtZS4gIFVzZQotICAgIAlPUEZfRElTQUJMRV9SRUFMUEFUSC4gIENhbGwgZ2Ri X3JlYWxwYXRoIGV4cGxpY2l0bHkuICBTZXQKLSAgICAJRVhFQ19GSUxFTkFNRS4KLSAgICAJKiBl eGVjLmggKGV4ZWNfZmlsZW5hbWUpOiBOZXcuCi0gICAgCSogaW5mZXJpb3IuYyAocHJpbnRfaW5m ZXJpb3IsIGluZmVyaW9yX2NvbW1hbmQpOiBVc2UKLSAgICAJUFNQQUNFX0VYRUNfRklMRU5BTUUu Ci0gICAgCSogbWkvbWktbWFpbi5jIChwcmludF9vbmVfaW5mZXJpb3IpOiBMaWtld2lzZS4KLSAg ICAJKiBwcm9nc3BhY2UuYyAoY2xvbmVfcHJvZ3JhbV9zcGFjZSwgcHJpbnRfcHJvZ3JhbV9zcGFj ZSk6IExpa2V3aXNlLgotICAgIAkqIHByb2dzcGFjZS5oIChzdHJ1Y3QgcHJvZ3JhbV9zcGFjZSk6 IE5ldyBmaWVsZCBwc3BhY2VfZXhlY19maWxlbmFtZS4KLSAgICAJKiBzb3VyY2UuYyAob3BlbnAp OiBEZXNjcmliZSBPUEZfRElTQUJMRV9SRUFMUEFUSC4gIE5ldyB2YXJpYWJsZQotICAgIAlyZWFs cGF0aF9mcHRyLCBpbml0aWFsaXplIGl0IGZyb20gT1BGX0RJU0FCTEVfUkVBTFBBVEgsIHVzZSBp dC4KLSAgICAKLSAgICBnZGIvdGVzdHN1aXRlLwotICAgIDIwMTMtMDgtMjcgIEphbiBLcmF0b2No dmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSAgICAKLSAgICAJUFIgZ2RiLzE1NDE1 Ci0gICAgCSogZ2RiLmJhc2UvYXJndjAtc3ltbGluay5jOiBOZXcgZmlsZS4KLSAgICAJKiBnZGIu YmFzZS9hcmd2MC1zeW1saW5rLmV4cDogTmV3IGZpbGUuCitDaGVja2VkIGluLgogCi1kaWZmIC1k dXAgLXJ1TnAgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMtb3JpZy9nZGIvY29yZWZpbGUuYyBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29yZWZpbGUuYwotLS0tIGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzLW9yaWcvZ2RiL2NvcmVmaWxlLmMJMjAxMy0wNy0zMSAyMTo0MTo1NC4wMDAwMDAwMDAg KzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29yZWZpbGUuYwkyMDE0LTAx LTE5IDE2OjI0OjQ2LjIzODMyMzA1NCArMDEwMAotQEAgLTE4Miw4ICsxODIsOCBAQCB2YWxpZGF0 ZV9maWxlcyAodm9pZCkKLSBjaGFyICoKLSBnZXRfZXhlY19maWxlIChpbnQgZXJyKQotIHsKLS0g IGlmIChleGVjX2JmZCkKLS0gICAgcmV0dXJuIGJmZF9nZXRfZmlsZW5hbWUgKGV4ZWNfYmZkKTsK LSsgIGlmIChleGVjX2ZpbGVuYW1lKQotKyAgICByZXR1cm4gZXhlY19maWxlbmFtZTsKLSAgIGlm ICghZXJyKQotICAgICByZXR1cm4gTlVMTDsKLSAKLWRpZmYgLWR1cCAtcnVOcCBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy1vcmlnL2dkYi9kZWZzLmggZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L2RlZnMuaAotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLW9yaWcvZ2RiL2RlZnMuaAkyMDEz LTA3LTMxIDIxOjQxOjU0LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi9kZWZzLmgJMjAxNC0wMS0xOSAxNjoyNDo0Ni4yMzkzMjMwNTQgKzAxMDAKLUBAIC0z NDYsOCArMzQ2LDEwIEBAIGV4dGVybiBjb25zdCBjaGFyICpwY19wcmVmaXggKENPUkVfQUREUikK LSAKLSAvKiBGcm9tIHNvdXJjZS5jICovCi0gCi0rLyogU2VlIG9wZW5wIGZ1bmN0aW9uIGRlZmlu aXRpb24gZm9yIHRoZWlyIGRlc2NyaXB0aW9uLiAgKi8KLSAjZGVmaW5lIE9QRl9UUllfQ1dEX0ZJ UlNUICAgICAweDAxCi0gI2RlZmluZSBPUEZfU0VBUkNIX0lOX1BBVEggICAgMHgwMgotKyNkZWZp bmUgT1BGX0RJU0FCTEVfUkVBTFBBVEggIDB4MDQKLSAKLSBleHRlcm4gaW50IG9wZW5wIChjb25z dCBjaGFyICosIGludCwgY29uc3QgY2hhciAqLCBpbnQsIGNoYXIgKiopOwotIAotZGlmZiAtZHVw IC1ydU5wIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLW9yaWcvZ2RiL2V4ZWMuYyBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvZXhlYy5jCi0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMtb3Jp Zy9nZGIvZXhlYy5jCTIwMTMtMDctMzEgMjE6NDE6NTQuMDAwMDAwMDAwICswMjAwCi0rKysgZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2V4ZWMuYwkyMDE0LTAxLTE5IDE2OjI1OjE4LjYxNjMx NTM1NCArMDEwMAotQEAgLTEwMiw2ICsxMDIsOSBAQCBleGVjX2Nsb3NlICh2b2lkKQotICAgICAg IGV4ZWNfYmZkX210aW1lID0gMDsKLSAKLSAgICAgICByZW1vdmVfdGFyZ2V0X3NlY3Rpb25zICgm ZXhlY19iZmQpOwotKwotKyAgICAgIHhmcmVlIChleGVjX2ZpbGVuYW1lKTsKLSsgICAgICBleGVj X2ZpbGVuYW1lID0gTlVMTDsKLSAgICAgfQotIH0KLSAKLUBAIC0xNzksMTIgKzE4MiwxMyBAQCBl eGVjX2ZpbGVfYXR0YWNoIChjaGFyICpmaWxlbmFtZSwgaW50IGZyCi0gICBlbHNlCi0gICAgIHsK LSAgICAgICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cHM7Ci0tICAgICAgY2hhciAqc2NyYXRjaF9w YXRobmFtZTsKLSsgICAgICBjaGFyICpzY3JhdGNoX3BhdGhuYW1lLCAqY2Fub25pY2FsX3BhdGhu YW1lOwotICAgICAgIGludCBzY3JhdGNoX2NoYW47Ci0gICAgICAgc3RydWN0IHRhcmdldF9zZWN0 aW9uICpzZWN0aW9ucyA9IE5VTEwsICpzZWN0aW9uc19lbmQgPSBOVUxMOwotICAgICAgIGNoYXIg KiptYXRjaGluZzsKLSAKLS0gICAgICBzY3JhdGNoX2NoYW4gPSBvcGVucCAoZ2V0ZW52ICgiUEFU SCIpLCBPUEZfVFJZX0NXRF9GSVJTVCwgZmlsZW5hbWUsCi0rICAgICAgc2NyYXRjaF9jaGFuID0g b3BlbnAgKGdldGVudiAoIlBBVEgiKSwKLSsJCQkgICAgT1BGX1RSWV9DV0RfRklSU1QgfCBPUEZf RElTQUJMRV9SRUFMUEFUSCwgZmlsZW5hbWUsCi0gCQkgICB3cml0ZV9maWxlcyA/IE9fUkRXUiB8 IE9fQklOQVJZIDogT19SRE9OTFkgfCBPX0JJTkFSWSwKLSAJCQkgICAgJnNjcmF0Y2hfcGF0aG5h bWUpOwotICNpZiBkZWZpbmVkKF9fR08zMl9fKSB8fCBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5l ZChfX0NZR1dJTl9fKQotQEAgLTE5Myw3ICsxOTcsOSBAQCBleGVjX2ZpbGVfYXR0YWNoIChjaGFy ICpmaWxlbmFtZSwgaW50IGZyCi0gCSAgY2hhciAqZXhlbmFtZSA9IGFsbG9jYSAoc3RybGVuIChm aWxlbmFtZSkgKyA1KTsKLSAKLSAJICBzdHJjYXQgKHN0cmNweSAoZXhlbmFtZSwgZmlsZW5hbWUp LCAiLmV4ZSIpOwotLQkgIHNjcmF0Y2hfY2hhbiA9IG9wZW5wIChnZXRlbnYgKCJQQVRIIiksIE9Q Rl9UUllfQ1dEX0ZJUlNULCBleGVuYW1lLAotKwkgIHNjcmF0Y2hfY2hhbiA9IG9wZW5wIChnZXRl bnYgKCJQQVRIIiksCi0rCQkJCU9QRl9UUllfQ1dEX0ZJUlNUIHwgT1BGX0RJU0FCTEVfUkVBTFBB VEgsCi0rCQkJCWV4ZW5hbWUsCi0gCSAgICAgd3JpdGVfZmlsZXMgPyBPX1JEV1IgfCBPX0JJTkFS WSA6IE9fUkRPTkxZIHwgT19CSU5BUlksCi0gCSAgICAgJnNjcmF0Y2hfcGF0aG5hbWUpOwotIAl9 Ci1AQCAtMjAzLDExICsyMDksMTYgQEAgZXhlY19maWxlX2F0dGFjaCAoY2hhciAqZmlsZW5hbWUs IGludCBmcgotIAotICAgICAgIGNsZWFudXBzID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgc2NyYXRj aF9wYXRobmFtZSk7Ci0gCi0rICAgICAgLyogZ2RiX2JmZF9vcGVuIChhbmQgaXRzIHZhcmlhbnRz KSBwcmVmZXJzIGNhbm9uaWNhbGl6ZWQgcGF0aG5hbWUgZm9yCi0rCSBiZXR0ZXIgQkZEIGNhY2hp bmcuICAqLwotKyAgICAgIGNhbm9uaWNhbF9wYXRobmFtZSA9IGdkYl9yZWFscGF0aCAoc2NyYXRj aF9wYXRobmFtZSk7Ci0rICAgICAgbWFrZV9jbGVhbnVwICh4ZnJlZSwgY2Fub25pY2FsX3BhdGhu YW1lKTsKLSsKLSAgICAgICBpZiAod3JpdGVfZmlsZXMpCi0tCWV4ZWNfYmZkID0gZ2RiX2JmZF9m b3BlbiAoc2NyYXRjaF9wYXRobmFtZSwgZ251dGFyZ2V0LAotKwlleGVjX2JmZCA9IGdkYl9iZmRf Zm9wZW4gKGNhbm9uaWNhbF9wYXRobmFtZSwgZ251dGFyZ2V0LAotIAkJCQkgIEZPUEVOX1JVQiwg c2NyYXRjaF9jaGFuKTsKLSAgICAgICBlbHNlCi0tCWV4ZWNfYmZkID0gZ2RiX2JmZF9vcGVuIChz Y3JhdGNoX3BhdGhuYW1lLCBnbnV0YXJnZXQsIHNjcmF0Y2hfY2hhbik7Ci0rCWV4ZWNfYmZkID0g Z2RiX2JmZF9vcGVuIChjYW5vbmljYWxfcGF0aG5hbWUsIGdudXRhcmdldCwgc2NyYXRjaF9jaGFu KTsKLSAKLSAgICAgICBpZiAoIWV4ZWNfYmZkKQotIAl7Ci1AQCAtMjE1LDYgKzIyNiw5IEBAIGV4 ZWNfZmlsZV9hdHRhY2ggKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnIKLSAJCSBzY3JhdGNoX3BhdGhu YW1lLCBiZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgpKSk7Ci0gCX0KLSAKLSsgICAgICBnZGJf YXNzZXJ0IChleGVjX2ZpbGVuYW1lID09IE5VTEwpOwotKyAgICAgIGV4ZWNfZmlsZW5hbWUgPSB4 c3RyZHVwIChzY3JhdGNoX3BhdGhuYW1lKTsKLSsKLSAgICAgICBpZiAoIWJmZF9jaGVja19mb3Jt YXRfbWF0Y2hlcyAoZXhlY19iZmQsIGJmZF9vYmplY3QsICZtYXRjaGluZykpCi0gCXsKLSAJICAv KiBNYWtlIHN1cmUgdG8gY2xvc2UgZXhlY19iZmQsIG9yIGVsc2UgInJ1biIgbWlnaHQgdHJ5IHRv IHVzZQotZGlmZiAtZHVwIC1ydU5wIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLW9yaWcvZ2RiL2V4 ZWMuaCBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZXhlYy5oCi0tLS0gZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMtb3JpZy9nZGIvZXhlYy5oCTIwMTMtMDctMzEgMjE6NDE6NTQuMDAwMDAwMDAw ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2V4ZWMuaAkyMDE0LTAxLTE5 IDE2OjI0OjQ2LjI2MjMyMzA0OSArMDEwMAotQEAgLTMyLDYgKzMyLDcgQEAgZXh0ZXJuIHN0cnVj dCB0YXJnZXRfb3BzIGV4ZWNfb3BzOwotIAotICNkZWZpbmUgZXhlY19iZmQgY3VycmVudF9wcm9n cmFtX3NwYWNlLT5lYmZkCi0gI2RlZmluZSBleGVjX2JmZF9tdGltZSBjdXJyZW50X3Byb2dyYW1f c3BhY2UtPmViZmRfbXRpbWUKLSsjZGVmaW5lIGV4ZWNfZmlsZW5hbWUgY3VycmVudF9wcm9ncmFt X3NwYWNlLT5wc3BhY2VfZXhlY19maWxlbmFtZQotIAotIC8qIEJ1aWxkcyBhIHNlY3Rpb24gdGFi bGUsIGdpdmVuIGFyZ3MgQkZELCBTRUNUQUJMRV9QVFIsIFNFQ0VORF9QVFIuCi0gICAgUmV0dXJu cyAwIGlmIE9LLCAxIG9uIGVycm9yLiAgKi8KLWRpZmYgLWR1cCAtcnVOcCBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy1vcmlnL2dkYi9pbmZlcmlvci5jIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi9pbmZlcmlvci5jCi0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMtb3JpZy9nZGIvaW5mZXJp b3IuYwkyMDEzLTA3LTMxIDIxOjQxOjU0LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9pbmZlcmlvci5jCTIwMTQtMDEtMTkgMTY6MjQ6NDYuMjY0MzIzMDQ4 ICswMTAwCi1AQCAtNTg4LDkgKzU4OCw4IEBAIHByaW50X2luZmVyaW9yIChzdHJ1Y3QgdWlfb3V0 ICp1aW91dCwgY2gKLSAgICAgICB1aV9vdXRfZmllbGRfc3RyaW5nICh1aW91dCwgInRhcmdldC1p ZCIsCi0gCQkJICAgaW5mZXJpb3JfcGlkX3RvX3N0ciAoaW5mLT5waWQpKTsKLSAKLS0gICAgICBp ZiAoaW5mLT5wc3BhY2UtPmViZmQpCi0tCXVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAiZXhl YyIsCi0tCQkJICAgICBiZmRfZ2V0X2ZpbGVuYW1lIChpbmYtPnBzcGFjZS0+ZWJmZCkpOwotKyAg ICAgIGlmIChpbmYtPnBzcGFjZS0+cHNwYWNlX2V4ZWNfZmlsZW5hbWUgIT0gTlVMTCkKLSsJdWlf b3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsICJleGVjIiwgaW5mLT5wc3BhY2UtPnBzcGFjZV9leGVj X2ZpbGVuYW1lKTsKLSAgICAgICBlbHNlCi0gCXVpX291dF9maWVsZF9za2lwICh1aW91dCwgImV4 ZWMiKTsKLSAKLUBAIC03MDQsOCArNzAzLDggQEAgaW5mZXJpb3JfY29tbWFuZCAoY2hhciAqYXJn cywgaW50IGZyb21fdAotICAgcHJpbnRmX2ZpbHRlcmVkIChfKCJbU3dpdGNoaW5nIHRvIGluZmVy aW9yICVkIFslc10gKCVzKV1cbiIpLAotIAkJICAgaW5mLT5udW0sCi0gCQkgICBpbmZlcmlvcl9w aWRfdG9fc3RyIChpbmYtPnBpZCksCi0tCQkgICAoaW5mLT5wc3BhY2UtPmViZmQKLS0JCSAgICA/ IGJmZF9nZXRfZmlsZW5hbWUgKGluZi0+cHNwYWNlLT5lYmZkKQotKwkJICAgKGluZi0+cHNwYWNl LT5wc3BhY2VfZXhlY19maWxlbmFtZSAhPSBOVUxMCi0rCQkgICAgPyBpbmYtPnBzcGFjZS0+cHNw YWNlX2V4ZWNfZmlsZW5hbWUKLSAJCSAgICA6IF8oIjxub2V4ZWM+IikpKTsKLSAKLSAgIGlmIChp bmYtPnBpZCAhPSAwKQotZGlmZiAtZHVwIC1ydU5wIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLW9y aWcvZ2RiL21pL21pLW1haW4uYyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbWkvbWktbWFp bi5jCi0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMtb3JpZy9nZGIvbWkvbWktbWFpbi5jCTIw MTMtMDctMzEgMjE6NDE6NTQuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL21pL21pLW1haW4uYwkyMDE0LTAxLTE5IDE2OjI0OjQ2LjI3MzMyMzA0NiArMDEw MAotQEAgLTU3MywxMCArNTczLDEwIEBAIHByaW50X29uZV9pbmZlcmlvciAoc3RydWN0IGluZmVy aW9yICppbmYKLSAgICAgICBpZiAoaW5mZXJpb3ItPnBpZCAhPSAwKQotIAl1aV9vdXRfZmllbGRf aW50ICh1aW91dCwgInBpZCIsIGluZmVyaW9yLT5waWQpOwotIAotLSAgICAgIGlmIChpbmZlcmlv ci0+cHNwYWNlLT5lYmZkKQotKyAgICAgIGlmIChpbmZlcmlvci0+cHNwYWNlLT5wc3BhY2VfZXhl Y19maWxlbmFtZSAhPSBOVUxMKQotIAl7Ci0gCSAgdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQs ICJleGVjdXRhYmxlIiwKLS0JCQkgICAgICAgYmZkX2dldF9maWxlbmFtZSAoaW5mZXJpb3ItPnBz cGFjZS0+ZWJmZCkpOwotKwkJCSAgICAgICBpbmZlcmlvci0+cHNwYWNlLT5wc3BhY2VfZXhlY19m aWxlbmFtZSk7Ci0gCX0KLSAKLSAgICAgICBkYXRhLmNvcmVzID0gMDsKLWRpZmYgLWR1cCAtcnVO cCBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy1vcmlnL2dkYi9wcm9nc3BhY2UuYyBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvcHJvZ3NwYWNlLmMKLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy1vcmlnL2dkYi9wcm9nc3BhY2UuYwkyMDEzLTAxLTAyIDAyOjU0OjU2LjAwMDAwMDAwMCArMDEw MAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9wcm9nc3BhY2UuYwkyMDE0LTAxLTE5 IDE2OjI0OjQ2LjI3NTMyMzA0NSArMDEwMAotQEAgLTE5Niw4ICsxOTYsOCBAQCBjbG9uZV9wcm9n cmFtX3NwYWNlIChzdHJ1Y3QgcHJvZ3JhbV9zcGFjCi0gCi0gICBzZXRfY3VycmVudF9wcm9ncmFt X3NwYWNlIChkZXN0KTsKLSAKLS0gIGlmIChzcmMtPmViZmQgIT0gTlVMTCkKLS0gICAgZXhlY19m aWxlX2F0dGFjaCAoYmZkX2dldF9maWxlbmFtZSAoc3JjLT5lYmZkKSwgMCk7Ci0rICBpZiAoc3Jj LT5wc3BhY2VfZXhlY19maWxlbmFtZSAhPSBOVUxMKQotKyAgICBleGVjX2ZpbGVfYXR0YWNoIChz cmMtPnBzcGFjZV9leGVjX2ZpbGVuYW1lLCAwKTsKLSAKLSAgIGlmIChzcmMtPnN5bWZpbGVfb2Jq ZWN0X2ZpbGUgIT0gTlVMTCkKLSAgICAgc3ltYm9sX2ZpbGVfYWRkX21haW4gKHNyYy0+c3ltZmls ZV9vYmplY3RfZmlsZS0+bmFtZSwgMCk7Ci1AQCAtMzM2LDkgKzMzNiw4IEBAIHByaW50X3Byb2dy YW1fc3BhY2UgKHN0cnVjdCB1aV9vdXQgKnVpb3UKLSAKLSAgICAgICB1aV9vdXRfZmllbGRfaW50 ICh1aW91dCwgImlkIiwgcHNwYWNlLT5udW0pOwotIAotLSAgICAgIGlmIChwc3BhY2UtPmViZmQp Ci0tCXVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAiZXhlYyIsCi0tCQkJICAgICBiZmRfZ2V0 X2ZpbGVuYW1lIChwc3BhY2UtPmViZmQpKTsKLSsgICAgICBpZiAocHNwYWNlLT5wc3BhY2VfZXhl Y19maWxlbmFtZSkKLSsJdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsICJleGVjIiwgcHNwYWNl LT5wc3BhY2VfZXhlY19maWxlbmFtZSk7Ci0gICAgICAgZWxzZQotIAl1aV9vdXRfZmllbGRfc2tp cCAodWlvdXQsICJleGVjIik7Ci0gCi1kaWZmIC1kdXAgLXJ1TnAgZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMtb3JpZy9nZGIvcHJvZ3NwYWNlLmggZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3By b2dzcGFjZS5oCi0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMtb3JpZy9nZGIvcHJvZ3NwYWNl LmgJMjAxMy0wMS0wMiAwMjo1NDo1Ni4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvcHJvZ3NwYWNlLmgJMjAxNC0wMS0xOSAxNjoyNDo0Ni4yNzYzMjMwNDUg KzAxMDAKLUBAIC0xNDgsNiArMTQ4LDEwIEBAIHN0cnVjdCBwcm9ncmFtX3NwYWNlCi0gICAgIGJm ZCAqZWJmZDsKLSAgICAgLyogVGhlIGxhc3QtbW9kaWZpZWQgdGltZSwgZnJvbSB3aGVuIHRoZSBl eGVjIHdhcyBicm91Z2h0IGluLiAgKi8KLSAgICAgbG9uZyBlYmZkX210aW1lOwotKyAgICAvKiBT aW1pbGFyIHRvIGJmZF9nZXRfZmlsZW5hbWUgKGV4ZWNfYmZkKSBidXQgaW4gb3JpZ2luYWwgZm9y bSBnaXZlbgotKyAgICAgICBieSB1c2VyLCB3aXRob3V0IHN5bWJvbGljIGxpbmtzIGFuZCBwYXRo bmFtZSByZXNvbHZlZC4KLSsgICAgICAgSXQgbmVlZHMgdG8gYmUgZnJlZWQgYnkgeGZyZWUuICBJ dCBpcyBub3QgTlVMTCBpZmYgRUJGRCBpcyBub3QgTlVMTC4gICovCi0rICAgIGNoYXIgKnBzcGFj ZV9leGVjX2ZpbGVuYW1lOwotIAotICAgICAvKiBUaGUgYWRkcmVzcyBzcGFjZSBhdHRhY2hlZCB0 byB0aGlzIHByb2dyYW0gc3BhY2UuICBNb3JlIHRoYW4gb25lCi0gICAgICAgIHByb2dyYW0gc3Bh Y2UgbWF5IGJlIGJvdW5kIHRvIHRoZSBzYW1lIGFkZHJlc3Mgc3BhY2UuICBJbiB0aGUKLWRpZmYg LWR1cCAtcnVOcCBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy1vcmlnL2dkYi9zb3VyY2UuYyBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvc291cmNlLmMKLS0tLSBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy1vcmlnL2dkYi9zb3VyY2UuYwkyMDEzLTA3LTMxIDIxOjQxOjU0LjAwMDAwMDAwMCArMDIw MAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zb3VyY2UuYwkyMDE0LTAxLTE5IDE2 OjI0OjQ2LjI3ODMyMzA0NSArMDEwMAotQEAgLTY5Miw2ICs2OTIsMTEgQEAgaXNfcmVndWxhcl9m aWxlIChjb25zdCBjaGFyICpuYW1lKQotICAgIGFuZCB0aGUgZmlsZSwgc2lnaCEgIEVtYWNzIGdl dHMgY29uZnV6emVkIGJ5IHRoaXMgd2hlbiB3ZSBwcmludCB0aGUKLSAgICBzb3VyY2UgZmlsZSBu YW1lISEhIAotIAotKyAgIElmIE9QVFMgZG9lcyBub3QgaGF2ZSBPUEZfRElTQUJMRV9SRUFMUEFU SCBzZXQgcmV0dXJuIEZJTEVOQU1FX09QRU5FRAotKyAgIHJlc29sdmVkIGJ5IGdkYl9yZWFscGF0 aC4gIEV2ZW4gd2l0aCBPUEZfRElTQUJMRV9SRUFMUEFUSCB0aGlzIGZ1bmN0aW9uCi0rICAgc3Rp bGwgcmV0dXJucyBmaWxlbmFtZSBzdGFydGluZyB3aXRoICIvIi4gIElmIEZJTEVOQU1FX09QRU5F RCBpcyBOVUxMCi0rICAgdGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdC4KLSsKLSAgICBJZiBhIGZp bGUgaXMgZm91bmQsIHJldHVybiB0aGUgZGVzY3JpcHRvci4KLSAgICBPdGhlcndpc2UsIHJldHVy biAtMSwgd2l0aCBlcnJubyBzZXQgZm9yIHRoZSBsYXN0IG5hbWUgd2UgdHJpZWQgdG8gb3Blbi4g ICovCi0gCi1AQCAtODUxLDE5ICs4NTYsMjcgQEAgZG9uZToKLSAgICAgICAvKiBJZiBhIGZpbGUg d2FzIG9wZW5lZCwgY2Fub25pY2FsaXplIGl0cyBmaWxlbmFtZS4gICovCi0gICAgICAgaWYgKGZk IDwgMCkKLSAJKmZpbGVuYW1lX29wZW5lZCA9IE5VTEw7Ci0tICAgICAgZWxzZSBpZiAoSVNfQUJT T0xVVEVfUEFUSCAoZmlsZW5hbWUpKQotLQkqZmlsZW5hbWVfb3BlbmVkID0gZ2RiX3JlYWxwYXRo IChmaWxlbmFtZSk7Ci0gICAgICAgZWxzZQotIAl7Ci0tCSAgLyogQmV3YXJlIHRoZSAvLyBteSBz b24sIHRoZSBFbWFjcyBiYXJmcywgdGhlIGJvdGNoIHRoYXQgY2F0Y2guLi4gICovCi0rCSAgY2hh ciAqKCpyZWFscGF0aF9mcHRyKSAoY29uc3QgY2hhciAqKTsKLSAKLS0JICBjaGFyICpmID0gY29u Y2F0IChjdXJyZW50X2RpcmVjdG9yeSwKLS0JCQkgICAgSVNfRElSX1NFUEFSQVRPUiAoY3VycmVu dF9kaXJlY3Rvcnlbc3RybGVuIChjdXJyZW50X2RpcmVjdG9yeSkgLSAxXSkKLS0JCQkgICAgPyAi IiA6IFNMQVNIX1NUUklORywKLS0JCQkgICAgZmlsZW5hbWUsIChjaGFyICopTlVMTCk7Ci0rCSAg cmVhbHBhdGhfZnB0ciA9ICgob3B0cyAmIE9QRl9ESVNBQkxFX1JFQUxQQVRIKSAhPSAwCi0rCQkJ ICAgPyB4c3RyZHVwIDogZ2RiX3JlYWxwYXRoKTsKLSAKLS0JICAqZmlsZW5hbWVfb3BlbmVkID0g Z2RiX3JlYWxwYXRoIChmKTsKLS0JICB4ZnJlZSAoZik7Ci0rCSAgaWYgKElTX0FCU09MVVRFX1BB VEggKGZpbGVuYW1lKSkKLSsJICAgICpmaWxlbmFtZV9vcGVuZWQgPSByZWFscGF0aF9mcHRyIChm aWxlbmFtZSk7Ci0rCSAgZWxzZQotKwkgICAgewotKwkgICAgICAvKiBCZXdhcmUgdGhlIC8vIG15 IHNvbiwgdGhlIEVtYWNzIGJhcmZzLCB0aGUgYm90Y2ggdGhhdCBjYXRjaC4uLiAgKi8KLSsKLSsJ ICAgICAgY2hhciAqZiA9IGNvbmNhdCAoY3VycmVudF9kaXJlY3RvcnksCi0rCQkJCUlTX0RJUl9T RVBBUkFUT1IgKGN1cnJlbnRfZGlyZWN0b3J5W3N0cmxlbiAoY3VycmVudF9kaXJlY3RvcnkpIC0g MV0pCi0rCQkJCT8gIiIgOiBTTEFTSF9TVFJJTkcsCi0rCQkJCWZpbGVuYW1lLCAoY2hhciAqKU5V TEwpOwotKwotKwkgICAgICAqZmlsZW5hbWVfb3BlbmVkID0gcmVhbHBhdGhfZnB0ciAoZik7Ci0r CSAgICAgIHhmcmVlIChmKTsKLSsJICAgIH0KLSAJfQotICAgICB9Ci0gCi1kaWZmIC1kdXAgLXJ1 TnAgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMtb3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Fy Z3YwLXN5bWxpbmsuYyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2FyZ3YwLXN5bWxpbmsuYwotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLW9yaWcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcmd2MC1zeW1saW5rLmMJMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2FyZ3YwLXN5bWxpbmsuYwkyMDE0LTAxLTE5IDE2OjI0OjQ2LjI4NjMyMzA0MyAr MDEwMAotQEAgLTAsMCArMSwyMiBAQAotKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIs IHRoZSBHTlUgZGVidWdnZXIuCi0rCi0rICAgQ29weXJpZ2h0IDIwMTMgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsgICBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyAg IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExp Y2Vuc2UsIG9yCi0rICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsKLSsg ICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rICAgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u ICAqLwotKwotK2ludAotK21haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKLSt7Ci0rICByZXR1 cm4gMDsKLSt9Ci1kaWZmIC1kdXAgLXJ1TnAgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMtb3JpZy9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhwIGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJndjAtc3ltbGluay5leHAKLS0tLSBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy1vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJndjAtc3lt bGluay5leHAJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhw CTIwMTQtMDEtMTkgMTY6MjQ6NDYuMjg3MzIzMDQzICswMTAwCi1AQCAtMCwwICsxLDYyIEBACi0r IyBDb3B5cmlnaHQgMjAxMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQot KyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rc3RhbmRhcmRfdGVzdGZpbGUKLSsKLStpZiB7 IFtidWlsZF9leGVjdXRhYmxlICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9 XSA9PSAtMSB9IHsKLSsgICAgcmV0dXJuIC0xCi0rfQotKwotK3NldCB0ZXN0ICJrZXB0IGZpbGUg c3ltYm9saWMgbGluayBuYW1lIgotK3NldCBmaWxlbGluayAiJHt0ZXN0ZmlsZX0tZmlsZWxpbmsi Ci0rCi0rcmVtb3RlX2ZpbGUgaG9zdCBkZWxldGUgW3N0YW5kYXJkX291dHB1dF9maWxlICRmaWxl bGlua10KLStzZXQgc3RhdHVzIFtyZW1vdGVfZXhlYyBob3N0ICJsbiAtc2YgJHt0ZXN0ZmlsZX0g W3N0YW5kYXJkX291dHB1dF9maWxlICRmaWxlbGlua10iXQotK2lmIHtbbGluZGV4ICRzdGF0dXMg MF0gIT0gMH0gewotKyAgICB1bnN1cHBvcnRlZCAiJHRlc3QgKGhvc3QgZG9lcyBub3Qgc3VwcG9y dCBzeW1ib2xpYyBsaW5rcykiCi0rICAgIHJldHVybiAwCi0rfQotKwotK2NsZWFuX3Jlc3RhcnQg IiRmaWxlbGluayIKLSsKLStpZiAhW3J1bnRvX21haW5dIHsKLSsgICAgdW50ZXN0ZWQgImNvdWxk IG5vdCBydW4gdG8gbWFpbiIKLSsgICAgcmV0dXJuIC0xCi0rfQotKwotK2dkYl90ZXN0IHtwcmlu dCBhcmd2WzBdfSAiLyRmaWxlbGlua1wiIiAkdGVzdAotKwotKwotK3NldCB0ZXN0ICJrZXB0IGRp cmVjdG9yeSBzeW1ib2xpYyBsaW5rIG5hbWUiCi0rc2V0IGRpcmxpbmsgIiR7dGVzdGZpbGV9LWRp cmxpbmsiCi0rCi0rIyAnbG4gLXNmJyBkb2VzIG5vdCBvdmVyd3JpdGUgc3ltYm9sIGxpbmsgdG8g YSBkaXJlY3RvcnkuCi0rIyAncmVtb3RlX2ZpbGUgaG9zdCBkZWxldGUnIHVzZXMgc3RhdCAobm90 IGxzdGF0KSwgdGhlcmVmb3JlIGl0IHJlZnVzZXMgdG8KLSsjIGRlbGV0ZSBhIGRpcmVjdG9yeS4K LStyZW1vdGVfZXhlYyBob3N0ICJybSAtZiBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJGRpcmxpbmtd IgotK3NldCBzdGF0dXMgW3JlbW90ZV9leGVjIGhvc3QgImxuIC1zZiAuIFtzdGFuZGFyZF9vdXRw dXRfZmlsZSAkZGlybGlua10iXQotK2lmIHtbbGluZGV4ICRzdGF0dXMgMF0gIT0gMH0gewotKyAg ICB1bnN1cHBvcnRlZCAiJHRlc3QgKGhvc3QgZG9lcyBub3Qgc3VwcG9ydCBzeW1ib2xpYyBsaW5r cykiCi0rICAgIHJldHVybiAwCi0rfQotKwotK2NsZWFuX3Jlc3RhcnQgIiRkaXJsaW5rLyRmaWxl bGluayIKLSsKLStpZiAhW3J1bnRvX21haW5dIHsKLSsgICAgdW50ZXN0ZWQgImNvdWxkIG5vdCBy dW4gdG8gbWFpbiIKLSsgICAgcmV0dXJuIC0xCi0rfQotKwotK2dkYl90ZXN0IHtwcmludCBhcmd2 WzBdfSAiLyRkaXJsaW5rLyRmaWxlbGlua1wiIiAkdGVzdAogCitKYW4KIAorLS11My9yWlJteEw2 TW1rSzI0CitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKK0NvbnRl bnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9MQogCi1jb21taXQgNDg1NmI2YmM4MzVl MjVhYjBmNDg0NjIxMDQxNTI3MDFjODY0ODU4YworY29tbWl0IDNjNzdmYWYzM2RjNGM3YmI2OTNm MDVmNDQwNzdlZDY4N2U5ZjgyMTcKIEF1dGhvcjogSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2No dmlsQHJlZGhhdC5jb20+Ci1EYXRlOiAgIFN1biBPY3QgMTMgMTY6MTE6MDggMjAxMyArMDAwMAor RGF0ZTogICBUaHUgRmViIDYgMjM6MTQ6MjAgMjAxNCArMDEwMAogCi0gICAgSW1wcm92ZSBFeGVj dXRhYmxlIGRpc3BsYXllZCBwYXRoIChQUiAxNTQxNSByZWdyZXNzaW9uIGtpbmQgIzIpCi0gICAg Ci0gICAgZ2RiLwotICAgIDIwMTMtMTAtMTMgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2 aWxAcmVkaGF0LmNvbT4KLSAgICAKLSAgICAJQ2Fub25pY2FsaXplIGRpcmVjdG9yaWVzIGZvciBF WEVDX0ZJTEVOQU1FLgotICAgIAkqIGV4ZWMuYyAoZXhlY19maWxlX2F0dGFjaCk6IFVzZSBnZGJf cmVhbHBhdGhfa2VlcGZpbGUgZm9yCi0gICAgCWV4ZWNfZmlsZW5hbWUuCi0gICAgCSogdXRpbHMu YyAoZ2RiX3JlYWxwYXRoX2tlZXBmaWxlKTogTmV3IGZ1bmN0aW9uLgotICAgIAkqIHV0aWxzLmgg KGdkYl9yZWFscGF0aF9rZWVwZmlsZSk6IE5ldyBkZWNsYXJhdGlvbi4KKyAgICBGaXggaTM4Ni1z c2Utc3RhY2stYWxpZ24uZXhwIHJlZ3Jlc3Npb24gc2luY2UgR0RCX1BBUkFMTEVMLgogICAgIAog ICAgIGdkYi90ZXN0c3VpdGUvCi0gICAgMjAxMy0xMC0xMyAgSmFuIEtyYXRvY2h2aWwgIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPgorICAgIDIwMTQtMDItMDYgIEphbiBLcmF0b2NodmlsICA8 amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KICAgICAKLSAgICAJQ2Fub25pY2FsaXplIGRpcmVj dG9yaWVzIGZvciBFWEVDX0ZJTEVOQU1FLgotICAgIAkqIGdkYi5iYXNlL2FyZ3YwLXN5bWxpbmsu ZXhwCi0gICAgCShrZXB0IGZpbGUgc3ltYm9saWMgbGluayBuYW1lIGZvciBpbmZvIGluZmVyaW9y cyk6IE5ldy4KLSAgICAJKGtlcHQgZGlyZWN0b3J5IHN5bWJvbGljIGxpbmsgbmFtZSk6IFNldHVw IGtmYWlsLgotICAgIAkoa2VwdCBkaXJlY3Rvcnkgc3ltYm9saWMgbGluayBuYW1lIGZvciBpbmZv IGluZmVyaW9ycyk6IE5ldy4KKyAgICAJRml4IGkzODYtc3NlLXN0YWNrLWFsaWduLmV4cCByZWdy ZXNzaW9uIHNpbmNlIEdEQl9QQVJBTExFTC4KKyAgICAJKiBnZGIuYXJjaC9pMzg2LXNzZS1zdGFj ay1hbGlnbi5leHA6IFVzZSBzdGFuZGFyZF9vdXRwdXRfZmlsZS4KIAotIyMjIGEvZ2RiL0NoYW5n ZUxvZwotIyMjIGIvZ2RiL0NoYW5nZUxvZwotIyMgLTEsMyArMSwxMSBAQAotKzIwMTMtMTAtMTMg IEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSsKLSsJQ2Fub25p Y2FsaXplIGRpcmVjdG9yaWVzIGZvciBFWEVDX0ZJTEVOQU1FLgotKwkqIGV4ZWMuYyAoZXhlY19m aWxlX2F0dGFjaCk6IFVzZSBnZGJfcmVhbHBhdGhfa2VlcGZpbGUgZm9yCi0rCWV4ZWNfZmlsZW5h bWUuCi0rCSogdXRpbHMuYyAoZ2RiX3JlYWxwYXRoX2tlZXBmaWxlKTogTmV3IGZ1bmN0aW9uLgot KwkqIHV0aWxzLmggKGdkYl9yZWFscGF0aF9rZWVwZmlsZSk6IE5ldyBkZWNsYXJhdGlvbi4KLSsK LSAyMDEzLTEwLTExICBEb3VnIEV2YW5zICA8ZGplQGdvb2dsZS5jb20+Ci0gCi0gCSogTWFrZWZp bGUuaW4gKEdEQkZMQUdTKTogTmV3IHZhcmlhYmxlLgotLS0tIGEvZ2RiL2V4ZWMuYwotKysrIGIv Z2RiL2V4ZWMuYwotQEAgLTIyNCw3ICsyMjQsNyBAQCBleGVjX2ZpbGVfYXR0YWNoIChjaGFyICpm aWxlbmFtZSwgaW50IGZyb21fdHR5KQotIAl9Ci0gCi0gICAgICAgZ2RiX2Fzc2VydCAoZXhlY19m aWxlbmFtZSA9PSBOVUxMKTsKLS0gICAgICBleGVjX2ZpbGVuYW1lID0geHN0cmR1cCAoc2NyYXRj aF9wYXRobmFtZSk7Ci0rICAgICAgZXhlY19maWxlbmFtZSA9IGdkYl9yZWFscGF0aF9rZWVwZmls ZSAoc2NyYXRjaF9wYXRobmFtZSk7Ci0gCi0gICAgICAgaWYgKCFiZmRfY2hlY2tfZm9ybWF0X21h dGNoZXMgKGV4ZWNfYmZkLCBiZmRfb2JqZWN0LCAmbWF0Y2hpbmcpKQotIAl7CitkaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cgYi9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZworaW5k ZXggOGM4NDZiOC4uMTNjY2FmMyAxMDA2NDQKICMjIyBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9n CiAjIyMgYi9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotIyMgLTEsMyArMSwxMSBAQAotKzIwMTMt MTAtMTMgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSsKLSsJ Q2Fub25pY2FsaXplIGRpcmVjdG9yaWVzIGZvciBFWEVDX0ZJTEVOQU1FLgotKwkqIGdkYi5iYXNl L2FyZ3YwLXN5bWxpbmsuZXhwCi0rCShrZXB0IGZpbGUgc3ltYm9saWMgbGluayBuYW1lIGZvciBp bmZvIGluZmVyaW9ycyk6IE5ldy4KLSsJKGtlcHQgZGlyZWN0b3J5IHN5bWJvbGljIGxpbmsgbmFt ZSk6IFNldHVwIGtmYWlsLgotKwkoa2VwdCBkaXJlY3Rvcnkgc3ltYm9saWMgbGluayBuYW1lIGZv ciBpbmZvIGluZmVyaW9ycyk6IE5ldy4KLSsKLSAyMDEzLTEwLTExICBBbmRyZWFzIEFybmV6ICA8 YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgotIAotIAkqIGdkYi5hcmNoL3MzOTAtbXVsdGlhcmNo LmV4cDogTmV3IGZpbGUuCi0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FyZ3YwLXN5bWxp bmsuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhwCi1A QCAtMzcsNiArMzcsNyBAQCBpZiAhW3J1bnRvX21haW5dIHsKLSB9Ci0gCi0gZ2RiX3Rlc3Qge3By aW50IGFyZ3ZbMF19ICIvJGZpbGVsaW5rXCIiICR0ZXN0Ci0rZ2RiX3Rlc3QgImluZm8gaW5mZXJp b3JzIiAiLyRzdWJkaXIvJGZpbGVsaW5rICoiICIkdGVzdCBmb3IgaW5mbyBpbmZlcmlvcnMiCi0g Ci0gCi0gc2V0IHRlc3QgImtlcHQgZGlyZWN0b3J5IHN5bWJvbGljIGxpbmsgbmFtZSIKLUBAIC01 OSw0ICs2MCw5IEBAIGlmICFbcnVudG9fbWFpbl0gewotICAgICByZXR1cm4gLTEKLSB9Ci0gCi0r IyBnZGJzZXJ2ZXIgZG9lcyBub3QgaGF2ZSB0aGlzIGlzc3VlLgotK2lmICFbaXNfcmVtb3RlIHRh cmdldF0gewotKyAgICBzZXR1cF9rZmFpbCAiKi0qLSoiIGdkYi8xNTkzNAotK30KLSBnZGJfdGVz dCB7cHJpbnQgYXJndlswXX0gIi8kZGlybGluay8kZmlsZWxpbmtcIiIgJHRlc3QKLStnZGJfdGVz dCAiaW5mbyBpbmZlcmlvcnMiICIvJHN1YmRpci8kZmlsZWxpbmsgKiIgIiR0ZXN0IGZvciBpbmZv IGluZmVyaW9ycyIKLS0tLSBhL2dkYi91dGlscy5jCi0rKysgYi9nZGIvdXRpbHMuYwotQEAgLTMy MzMsNiArMzIzMyw1MiBAQCBnZGJfcmVhbHBhdGggKGNvbnN0IGNoYXIgKmZpbGVuYW1lKQotICAg cmV0dXJuIHhzdHJkdXAgKGZpbGVuYW1lKTsKLSB9Ci0gCi0rLyogUmV0dXJuIGEgY29weSBvZiBG SUxFTkFNRSwgd2l0aCBpdHMgZGlyZWN0b3J5IHByZWZpeCBjYW5vbmljYWxpemVkCi0rICAgYnkg Z2RiX3JlYWxwYXRoLiAgKi8KLSsKLStjaGFyICoKLStnZGJfcmVhbHBhdGhfa2VlcGZpbGUgKGNv bnN0IGNoYXIgKmZpbGVuYW1lKQotK3sKLSsgIGNvbnN0IGNoYXIgKmJhc2VfbmFtZSA9IGxiYXNl bmFtZSAoZmlsZW5hbWUpOwotKyAgY2hhciAqZGlyX25hbWU7Ci0rICBjaGFyICpyZWFsX3BhdGg7 Ci0rICBjaGFyICpyZXN1bHQ7Ci0rCi0rICAvKiBFeHRyYWN0IHRoZSBiYXNlbmFtZSBvZiBmaWxl bmFtZSwgYW5kIHJldHVybiBpbW1lZGlhdGVseSAKLSsgICAgIGEgY29weSBvZiBmaWxlbmFtZSBp ZiBpdCBkb2VzIG5vdCBjb250YWluIGFueSBkaXJlY3RvcnkgcHJlZml4LiAgKi8KLSsgIGlmIChi YXNlX25hbWUgPT0gZmlsZW5hbWUpCi0rICAgIHJldHVybiB4c3RyZHVwIChmaWxlbmFtZSk7Ci0r Ci0rICBkaXJfbmFtZSA9IGFsbG9jYSAoKHNpemVfdCkgKGJhc2VfbmFtZSAtIGZpbGVuYW1lICsg MikpOwotKyAgLyogQWxsb2NhdGUgZW5vdWdoIHNwYWNlIHRvIHN0b3JlIHRoZSBkaXJfbmFtZSAr IHBsdXMgb25lIGV4dHJhCi0rICAgICBjaGFyYWN0ZXIgc29tZXRpbWVzIG5lZWRlZCB1bmRlciBX aW5kb3dzIChzZWUgYmVsb3cpLCBhbmQKLSsgICAgIHRoZW4gdGhlIGNsb3NpbmcgXDAwMCBjaGFy YWN0ZXIuICAqLwotKyAgc3RybmNweSAoZGlyX25hbWUsIGZpbGVuYW1lLCBiYXNlX25hbWUgLSBm aWxlbmFtZSk7Ci0rICBkaXJfbmFtZVtiYXNlX25hbWUgLSBmaWxlbmFtZV0gPSAnXDAwMCc7Ci0r Ci0rI2lmZGVmIEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNCi0rICAvKiBXZSBuZWVkIHRvIGJl IGNhcmVmdWwgd2hlbiBmaWxlbmFtZSBpcyBvZiB0aGUgZm9ybSAnZDpmb28nLCB3aGljaAotKyAg ICAgaXMgZXF1aXZhbGVudCBvZiBkOi4vZm9vLCB3aGljaCBpcyB0b3RhbGx5IGRpZmZlcmVudCBm cm9tIGQ6L2Zvby4gICovCi0rICBpZiAoc3RybGVuIChkaXJfbmFtZSkgPT0gMiAmJiBpc2FscGhh IChkaXJfbmFtZVswXSkgJiYgZGlyX25hbWVbMV0gPT0gJzonKQotKyAgICB7Ci0rICAgICAgZGly X25hbWVbMl0gPSAnLic7Ci0rICAgICAgZGlyX25hbWVbM10gPSAnXDAwMCc7Ci0rICAgIH0KLSsj ZW5kaWYKLSsKLSsgIC8qIENhbm9uaWNhbGl6ZSB0aGUgZGlyZWN0b3J5IHByZWZpeCwgYW5kIGJ1 aWxkIHRoZSByZXN1bHRpbmcKLSsgICAgIGZpbGVuYW1lLiAgSWYgdGhlIGRpcm5hbWUgcmVhbHBh dGggYWxyZWFkeSBjb250YWlucyBhbiBlbmRpbmcKLSsgICAgIGRpcmVjdG9yeSBzZXBhcmF0b3Is IGF2b2lkIGRvdWJsaW5nIGl0LiAgKi8KLSsgIHJlYWxfcGF0aCA9IGdkYl9yZWFscGF0aCAoZGly X25hbWUpOwotKyAgaWYgKElTX0RJUl9TRVBBUkFUT1IgKHJlYWxfcGF0aFtzdHJsZW4gKHJlYWxf cGF0aCkgLSAxXSkpCi0rICAgIHJlc3VsdCA9IGNvbmNhdCAocmVhbF9wYXRoLCBiYXNlX25hbWUs IChjaGFyICopIE5VTEwpOwotKyAgZWxzZQotKyAgICByZXN1bHQgPSBjb25jYXQgKHJlYWxfcGF0 aCwgU0xBU0hfU1RSSU5HLCBiYXNlX25hbWUsIChjaGFyICopIE5VTEwpOwotKwotKyAgeGZyZWUg KHJlYWxfcGF0aCk7Ci0rICByZXR1cm4gcmVzdWx0OwotK30KLSsKLSBVTE9OR0VTVAotIGFsaWdu X3VwIChVTE9OR0VTVCB2LCBpbnQgbikKLSB7Ci0tLS0gYS9nZGIvdXRpbHMuaAotKysrIGIvZ2Ri L3V0aWxzLmgKLUBAIC0xMjgsNiArMTI4LDggQEAgZXh0ZXJuIHN0cnVjdCBjbGVhbnVwICptYWtl X2Jwc3RhdF9jbGVhcl9hY3Rpb25zX2NsZWFudXAgKHZvaWQpOwotIAotIGV4dGVybiBjaGFyICpn ZGJfcmVhbHBhdGggKGNvbnN0IGNoYXIgKik7Ci0gCi0rZXh0ZXJuIGNoYXIgKmdkYl9yZWFscGF0 aF9rZWVwZmlsZSAoY29uc3QgY2hhciAqKTsKLSsKLSBleHRlcm4gaW50IGdkYl9maWxlbmFtZV9m bm1hdGNoIChjb25zdCBjaGFyICpwYXR0ZXJuLCBjb25zdCBjaGFyICpzdHJpbmcsCi0gCQkJCSBp bnQgZmxhZ3MpOwotIAotCi0KLQotY29tbWl0IDI0ODkwZWZkYWJiZDlkODI3Y2RkMjA4OGIwMjJm MDcwZGEwNGIxNGYKLUF1dGhvcjogVG9tIFRyb21leSA8dHJvbWV5QHJlZGhhdC5jb20+Ci1EYXRl OiAgIEZyaSBPY3QgMTggMTM6MTI6MzIgMjAxMyAtMDYwMAotCi0gICAgZml4IGFyZ3YwLXN5bWxp bmsuZXhwIGZvciBwYXJhbGxlbCBtb2RlCi0gICAgCi0gICAgYXJndjAtc3ltbGluay5leHAgZG9l c24ndCB3b3JrIHByb3Blcmx5IGlmIHN0YW5kYXJkX291dHB1dF9maWxlIHB1dHMKLSAgICBmaWxl cyBpbnRvIGEgcGVyLXRlc3Qgc3ViZGlyZWN0b3J5LiAgVGhhdCdzIGJlY2F1c2UgaXQgYXNzdW1l cyB0aGF0Ci0gICAgZmlsZXMgYXBwZWFyIGluICRzdWJkaXIsIHdoaWNoIGlzIG5vIGxvbmdlciB0 cnVlLgotICAgIAotICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIHByb2JsZW0gYnkgY29tcHV0aW5n IHRoZSBjb3JyZWN0IGRpcmVjdG9yeSBhdAotICAgIHJ1bnRpbWUuCi0gICAgCi0gICAgVGVzdGVk IGJvdGggd2l0aCBhbmQgd2l0aG91dCBHREJfUEFSQUxMRUwgb24geDg2LTY0IEZlZG9yYSAxOC4K LSAgICAKLSAgICAyMDEzLTExLTA0ICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+Ci0g ICAgCi0gICAgCSogZ2RiLmJhc2UvYXJndjAtc3ltbGluay5leHA6IENvbXB1dGUgZXhlY3V0YWJs ZSdzIGRpcmVjdG9yeQotICAgIAlkeW5hbWljYWxseS4KLQotIyMjIGEvZ2RiL3Rlc3RzdWl0ZS9D aGFuZ2VMb2cKLSMjIyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0jIyAtMSw1ICsxLDEwIEBA Ci0gMjAxMy0xMS0wNCAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29tPgotIAotKwkqIGdk Yi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhwOiBDb21wdXRlIGV4ZWN1dGFibGUncyBkaXJlY3RvcnkK LSsJZHluYW1pY2FsbHkuCi0rCi0rMjAxMy0xMS0wNCAgVG9tIFRyb21leSAgPHRyb21leUByZWRo YXQuY29tPgotKwotIAkqIGdkYi5hc20vYXNtLXNvdXJjZS5leHA6IFVzZSBzdGFuZGFyZF9vdXRw dXRfZmlsZS4KLSAKLSAyMDEzLTExLTA0ICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+ Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhwCi0rKysgYi9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhwCi1AQCAtMzcsNyArMzcsMTQg QEAgaWYgIVtydW50b19tYWluXSB7Ci0gfQotIAotIGdkYl90ZXN0IHtwcmludCBhcmd2WzBdfSAi LyRmaWxlbGlua1wiIiAkdGVzdAotLWdkYl90ZXN0ICJpbmZvIGluZmVyaW9ycyIgIi8kc3ViZGly LyRmaWxlbGluayAqIiAiJHRlc3QgZm9yIGluZm8gaW5mZXJpb3JzIgorIyMgLTEsMyArMSw4IEBA CisrMjAxNC0wMi0wNiAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29t PgogKwotKyMgRm9yIGEgbGluayBuYW1lZCAvUEFUSC9UTy9ESVIvTElOSywgd2Ugd2FudCB0byBj aGVjayB0aGUgb3V0cHV0Ci0rIyBhZ2FpbnN0ICIvRElSL0xJTksiLCBidXQgY29tcHV0ZWQgaW4g YSB3YXkgdGhhdCBkb2Vzbid0IG1ha2UKLSsjIGFzc3VtcHRpb25zIGFib3V0IHRoZSB0ZXN0IGRp cmVjdG9yeSBsYXlvdXQuCi0rc2V0IGZ1bGxfZmlsZWxpbmsgW3N0YW5kYXJkX291dHB1dF9maWxl ICRmaWxlbGlua10KLStzZXQgbGFzdGRpciBbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgJGZ1bGxf ZmlsZWxpbmtdXQorKwlGaXggaTM4Ni1zc2Utc3RhY2stYWxpZ24uZXhwIHJlZ3Jlc3Npb24gc2lu Y2UgR0RCX1BBUkFMTEVMLgorKwkqIGdkYi5hcmNoL2kzODYtc3NlLXN0YWNrLWFsaWduLmV4cDog VXNlIHN0YW5kYXJkX291dHB1dF9maWxlLgogKwotK2dkYl90ZXN0ICJpbmZvIGluZmVyaW9ycyIg Ii8kbGFzdGRpci8kZmlsZWxpbmsgKiIgIiR0ZXN0IGZvciBpbmZvIGluZmVyaW9ycyIKKyAyMDE0 LTAyLTA2ICBEb3VnIEV2YW5zICA8eGRqZTQyQGdtYWlsLmNvbT4KICAKKyAJKiBnZGIucHl0aG9u L3B5LWJyZWFrcG9pbnQuZXhwICh0ZXN0X2JrcHRfZXZhbF9mdW5jcyk6IFVwZGF0ZSBleHBlY3Rl ZAorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvaTM4Ni1zc2Utc3RhY2stYWxp Z24uZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9pMzg2LXNzZS1zdGFjay1hbGlnbi5leHAK K2luZGV4IGI1YTdlMWUuLjQ2MmRmMWYgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5h cmNoL2kzODYtc3NlLXN0YWNrLWFsaWduLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJj aC9pMzg2LXNzZS1zdGFjay1hbGlnbi5leHAKK0BAIC0yMiw3ICsyMiw3IEBAIHNldCB0ZXN0Zmls ZSAiaTM4Ni1zc2Utc3RhY2stYWxpZ24iCisgc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uUworIHNl dCBjc3JjZmlsZSAke3Rlc3RmaWxlfS5jCisgc2V0IGV4ZWN1dGFibGUgJHt0ZXN0ZmlsZX0KKy1z ZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7ZXhlY3V0YWJsZX0KKytzZXQgYmluZmls ZSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHtleGVjdXRhYmxlfV0KKyBzZXQgb3B0cyB7fQogIAot IHNldCB0ZXN0ICJrZXB0IGRpcmVjdG9yeSBzeW1ib2xpYyBsaW5rIG5hbWUiCi1AQCAtNjUsNCAr NzIsNCBAQCBpZiAhW2lzX3JlbW90ZSB0YXJnZXRdIHsKLSAgICAgc2V0dXBfa2ZhaWwgIiotKi0q IiBnZGIvMTU5MzQKLSB9Ci0gZ2RiX3Rlc3Qge3ByaW50IGFyZ3ZbMF19ICIvJGRpcmxpbmsvJGZp bGVsaW5rXCIiICR0ZXN0Ci0tZ2RiX3Rlc3QgImluZm8gaW5mZXJpb3JzIiAiLyRzdWJkaXIvJGZp bGVsaW5rICoiICIkdGVzdCBmb3IgaW5mbyBpbmZlcmlvcnMiCi0rZ2RiX3Rlc3QgImluZm8gaW5m ZXJpb3JzIiAiLyRsYXN0ZGlyLyRmaWxlbGluayAqIiAiJHRlc3QgZm9yIGluZm8gaW5mZXJpb3Jz IgotCi0KLQotaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTQtMDEvbXNn MDA3MjIuaHRtbAotU3ViamVjdDogW3BhdGNoXSBGaXggZ2RiLmJhc2UvYXJndjAtc3ltbGluay5l eHAgRkFJTCBpbiBsb25nIGRpcnBhdGgKLQotCi0tLVZiSmtuOVl4QnZudUNINUoKLUNvbnRlbnQt VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQotQ29udGVudC1EaXNwb3NpdGlvbjog aW5saW5lCi0KLUhpLAotCi13aGVuIHlvdSBidWlsZCBHREIgaW4gYSB2ZXJ5IGxvbmcgZGlyZWN0 b3J5IHBhdGhuYW1lIGl0IHdpbGw6Ci0KLShnZGIpIHByaW50IGFyZ3ZbMF0KLSQxID0gMHg3ZmZm ZmZmZmRiMDcgIi9ob21lL2prcmF0b2NoL3JlZGhhdC8iLCAneCcgPHJlcGVhdHMgMTc4IHRpbWVz Pi4uLgotKGdkYikgRkFJTDogZ2RiLmJhc2UvYXJndjAtc3ltbGluay5leHA6IGtlcHQgZmlsZSBz eW1ib2xpYyBsaW5rIG5hbWUKLQotV2l0aCB0aGUgZml4OgotCi0oZ2RiKSBwcmludCBhcmd2WzBd Ci0kMSA9IDB4N2ZmZmZmZmZkYjA3ICIvaG9tZS9qa3JhdG9jaC9yZWRoYXQveHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4L2dkYi10ZXN0L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJndjAtc3ltbGlu ay1maWxlbGluayIKLShnZGIpIFBBU1M6IGdkYi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhwOiBrZXB0 IGZpbGUgc3ltYm9saWMgbGluayBuYW1lCi0KLVRoZSAic2V0IHByaW50IHJlcGVhdHMgdW5saW1p dGVkIiBwYXJ0IGlzIHRoZXJlIHRvIHByZXZlbnQgdGhlIGZvbGxvd2luZwotb3V0cHV0LCBpdCB3 b3VsZCBzdGlsbCBQQVNTIChhcyBvbmx5IGl0cyB0YWlsIGlzIG1hdGNoZWQpIGJ1dCBpdCBpcyBu b3QgbXVjaAotY29ycmVjdC4KLQotKGdkYikgcHJpbnQgYXJndlswXQotJDEgPSAweDdmZmZmZmZm ZGIwNyAiL2hvbWUvamtyYXRvY2gvcmVkaGF0LyIsICd4JyA8cmVwZWF0cyAxOTUgdGltZXM+LCAi L2dkYi10ZXN0L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJndjAtc3ltbGluay1maWxlbGluayIK LShnZGIpIFBBU1M6IGdkYi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhwOiBrZXB0IGZpbGUgc3ltYm9s aWMgbGluayBuYW1lCi0KLUkgd2lsbCBjaGVjayBpdCBpbi4KLQotVGVzdGVkIG9uIHg4Nl82NC1m ZWRvcmEyMC1saW51eC1nbnUuCi0KLQotSmFuCi0KLS0tVmJKa245WXhCdm51Q0g1SgotQ29udGVu dC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9u OiBpbmxpbmU7IGZpbGVuYW1lPSJhcmd2MC5wYXRjaCIKLQotZ2RiL3Rlc3RzdWl0ZS8KLTIwMTQt MDEtMTkgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCUZp eCBnZGIuYmFzZS9hcmd2MC1zeW1saW5rLmV4cCBGQUlMIGluIGxvbmcgZGlycGF0aC4KLQkqIGdk Yi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhwIChlbGVtZW50cyBmaXJzdCwgcmVwZWF0cyBmaXJzdCkK LQkoZWxlbWVudHMgc2Vjb25kLCByZXBlYXRzIHNlY29uZCk6IE5ldy4KLQotZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJndjAtc3ltbGluay5leHAgYi9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhwCi1pbmRleCAwZTAyMDJkLi43YmY1YzJmIDEwMDY0 NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcmd2MC1zeW1saW5rLmV4cAotKysrIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcmd2MC1zeW1saW5rLmV4cAotQEAgLTM2LDYgKzM2LDEw IEBAIGlmICFbcnVudG9fbWFpbl0gewotICAgICByZXR1cm4gLTEKLSB9Ci0gCi0rIyBWZXJ5IGxv bmcgZGlyZWN0b3J5IHBhdGhzIGNvdWxkIGJlIGN1dCBiZWxvdy4KLStnZGJfdGVzdF9ub19vdXRw dXQgInNldCBwcmludCBlbGVtZW50cyB1bmxpbWl0ZWQiICJlbGVtZW50cyBmaXJzdCIKLStnZGJf dGVzdF9ub19vdXRwdXQgInNldCBwcmludCByZXBlYXRzIHVubGltaXRlZCIgInJlcGVhdHMgZmly c3QiCi0rCi0gZ2RiX3Rlc3Qge3ByaW50IGFyZ3ZbMF19ICIvJGZpbGVsaW5rXCIiICR0ZXN0Ci0g Ci0gIyBGb3IgYSBsaW5rIG5hbWVkIC9QQVRIL1RPL0RJUi9MSU5LLCB3ZSB3YW50IHRvIGNoZWNr IHRoZSBvdXRwdXQKLUBAIC02Nyw2ICs3MSwxMCBAQCBpZiAhW3J1bnRvX21haW5dIHsKLSAgICAg cmV0dXJuIC0xCi0gfQotIAotKyMgVmVyeSBsb25nIGRpcmVjdG9yeSBwYXRocyBjb3VsZCBiZSBj dXQgYmVsb3cuCi0rZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcHJpbnQgZWxlbWVudHMgdW5saW1p dGVkIiAiZWxlbWVudHMgc2Vjb25kIgotK2dkYl90ZXN0X25vX291dHB1dCAic2V0IHByaW50IHJl cGVhdHMgdW5saW1pdGVkIiAicmVwZWF0cyBzZWNvbmQiCi0rCi0gIyBnZGJzZXJ2ZXIgZG9lcyBu b3QgaGF2ZSB0aGlzIGlzc3VlLgotIGlmICFbaXNfcmVtb3RlIHRhcmdldF0gewotICAgICBzZXR1 cF9rZmFpbCAiKi0qLSoiIGdkYi8xNTkzNAorIGlmIFtpbmZvIGV4aXN0cyBDT01QSUxFXSB7CiAK LS0tVmJKa245WXhCdm51Q0g1Si0tCistLXUzL3JaUm14TDZNbWtLMjQtLQogCgpkaWZmIC0tZ2l0 IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCA0ZDVhMzBlLi4xYjhmYzRmIDEwMDY0NAotLS0g YS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAtMSw1ICsxLDYgQEAKICMgcnBtYnVpbGQgcGFy YW1ldGVyczoKICMgLS13aXRoIHRlc3RzdWl0ZTogUnVuIHRoZSB0ZXN0c3VpdGUgKGJpYXJjaCBp ZiBwb3NzaWJsZSkuICBEZWZhdWx0IGlzIHdpdGhvdXQuCisjIC0td2l0aCBhc2FuOiBnY2MgLWZz YW5pdGl6ZT1hZGRyZXNzCiAjIC0td2l0aG91dCBweXRob246IE5vIHB5dGhvbiBzdXBwb3J0Lgog IyAtLXdpdGggcHJvZmlsZTogZ2NjIC1mcHJvZmlsZS1nZW5lcmF0ZSAvIC1mcHJvZmlsZS11c2U6 IEJlZm9yZSBiZXR0ZXIKICMgICAgICAgICAgICAgICAgIHdvcmtsb2FkIGdldHMgcnVuIGl0IGRl Y3JlYXNlcyB0aGUgZ2VuZXJhbCBwZXJmb3JtYW5jZSBub3cuCkBAIC0yOSwyMiArMzAsMjIgQEAg U3VtbWFyeTogQSBHTlUgc291cmNlLWxldmVsIGRlYnVnZ2VyIGZvciBDLCBDKyssIEZvcnRyYW4s IEdvIGFuZCBvdGhlciBsYW5ndWFnZXMKIE5hbWU6ICV7P3NjbF9wcmVmaXh9Z2RiCiAKICMgNmU1 Yzk1ZTZjZjFlM2MzN2JkM2E4MjJjYTllNjcyMWNhYWI5N2E4NQotJWdsb2JhbCBzbmFwICAgICAg IDIwMTMwNzMxCisjZ2xvYmFsIHNuYXAgICAgICAgMjAxNDAxMjcKICMgRnJlZXplIGl0IHdoZW4g R0RCIGdldHMgYnJhbmNoZWQKLSVnbG9iYWwgc25hcHNyYyAgICAyMDEzMDczMQorJWdsb2JhbCBz bmFwc3JjICAgIDIwMTQwMTA4CiAjIFNlZSB0aW1lc3RhbXAgb2Ygc291cmNlIGdudWxpYiBpbnN0 YWxsZWQgaW50byBnZGIvZ251bGliLyAuCiAlZ2xvYmFsIHNuYXBnbnVsaWIgMjAxMjEyMTMKLVZl cnNpb246IDcuNi41MC4le3NuYXB9CitWZXJzaW9uOiA3LjcKIAogIyBUaGUgcmVsZWFzZSBhbHdh eXMgY29udGFpbnMgYSBsZWFkaW5nIHJlc2VydmVkIG51bWJlciwgc3RhcnQgaXQgYXQgMS4KICMg YHVwc3RyZWFtJyBpcyBub3QgYSBwYXJ0IG9mIGBuYW1lJyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBl bmRlbmNpZXMgY29tcGF0aWJsZSBmb3IgdGhlIHRlc3RpbmcuCi1SZWxlYXNlOiAyMCV7P2Rpc3R9 CitSZWxlYXNlOiAxJXs/ZGlzdH0KIAogTGljZW5zZTogR1BMdjMrIGFuZCBHUEx2Mysgd2l0aCBl eGNlcHRpb25zIGFuZCBHUEx2MisgYW5kIEdQTHYyKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTCsg YW5kIExHUEx2MisgYW5kIEJTRCBhbmQgUHVibGljIERvbWFpbgogR3JvdXA6IERldmVsb3BtZW50 L0RlYnVnZ2VycwogIyBEbyBub3QgcHJvdmlkZSBVUkwgZm9yIHNuYXBzaG90cyBhcyB0aGUgZmls ZSBsYXN0cyB0aGVyZSBvbmx5IGZvciAyIGRheXMuCiAjIGZ0cDovL3NvdXJjZXdhcmUub3JnL3B1 Yi9nZGIvcmVsZWFzZXMvZ2RiLSV7dmVyc2lvbn0udGFyLmJ6MgotU291cmNlOiBnZGItJXt2ZXJz aW9ufS1jdnMudGFyLmJ6MgorU291cmNlOiBnZGItJXt2ZXJzaW9ufS50YXIuYnoyCiBCdWlsZHJv b3Q6ICUobWt0ZW1wIC11ZCAle190bXBwYXRofS8le25hbWV9LSV7dmVyc2lvbn0tJXtyZWxlYXNl fS1YWFhYWFgpCiBVUkw6IGh0dHA6Ly9nbnUub3JnL3NvZnR3YXJlL2dkYi8KIApAQCAtNTMsNyAr NTQsNyBAQCBPYnNvbGV0ZXM6IGRldnRvb2xzZXQtMS4wLSV7cGtnX25hbWV9CiAlZW5kaWYKIAog IyBGb3Igb3VyIGNvbnZlbmllbmNlCi0lZ2xvYmFsIGdkYl9zcmMgJXtwa2dfbmFtZX0tJXt2ZXJz aW9ufS1jdnMKKyVnbG9iYWwgZ2RiX3NyYyAle3BrZ19uYW1lfS0le3ZlcnNpb259CiAlZ2xvYmFs IGdkYl9idWlsZCBidWlsZC0le190YXJnZXRfcGxhdGZvcm19CiAKICMgTWFrZSBzdXJlIHdlIGdl dCByaWQgb2YgdGhlIG9sZCBwYWNrYWdlIGdkYjY0LCBub3cgdGhhdCB3ZSBoYXZlIHVuaWZpZWQK QEAgLTI5NywxMCArMjk4LDYgQEAgUGF0Y2gyODI6IGdkYi02LjctY2hhcnNpZ24tdGVzdC5wYXRj aAogIz1mZWRvcmF0ZXN0K3BwYwogUGF0Y2gyODQ6IGdkYi02LjctcHBjLWNsb2JiZXJlZC1yZWdp c3RlcnMtTzItdGVzdC5wYXRjaAogCi0jIFRlc3RzdWl0ZSBmaXhlcyBmb3IgbW9yZSBzdGFibGUv Y29tcGFyYWJsZSByZXN1bHRzLgotIz1mZWRvcmF0ZXN0Ci1QYXRjaDI4NzogZ2RiLTYuNy10ZXN0 c3VpdGUtc3RhYmxlLXJlc3VsdHMucGF0Y2gKLQogIyBUZXN0IGlhNjQgbWVtb3J5IGxlYWtzIG9m IHRoZSBjb2RlIHVzaW5nIGxpYnVud2luZC4KICM9ZmVkb3JhdGVzdAogUGF0Y2gyODk6IGdkYi02 LjUtaWE2NC1saWJ1bndpbmQtbGVhay10ZXN0LnBhdGNoCkBAIC01MjQsMTMgKzUyMSwxMSBAQCBQ YXRjaDgzMjogZ2RiLXJoYno5NDc1NjQtZmluZHZhci1hc3NlcnRpb24tZnJhbWUtZmFpbGVkLXRl c3RjYXNlLnBhdGNoCiAjIEZpeCBjcmFzaCBvbiAnZW5hYmxlIGNvdW50JyAoU2ltb24gTWFyY2hp LCBCWiA5OTMxMTgpLgogUGF0Y2g4NDM6IGdkYi1lbmFibGUtY291bnQtY3Jhc2gucGF0Y2gKIAot IyBGaXggdGhlIGNhc2Ugd2hlbiBHREIgbGVha3MgbWVtb3J5IGJlY2F1c2UgdmFsdWVfc3RydWN0 X2VsdAotIyBkb2VzIG5vdCBjYWxsIGNoZWNrX3R5cGVkZWYuICAoRG91ZyBFdmFucywgQlogMTU2 OTUsIGZpbGVkIGFzCi0jIFJIIEJaIDEwMTM0NTMpLgotUGF0Y2g4NDQ6IGdkYi1yaGJ6MTAxMzQ1 My12YWx1ZS1zdHJ1Y3QtZWx0LW1lbW9yeS1sZWFrLnBhdGNoCisjIEZpeCB0ZXN0c3VpdGUgIkVS Uk9SOiBubyBmaWxlaWQgZm9yIi4KK1BhdGNoODQ2OiBnZGItdGVzdHN1aXRlLW5vaG9zdGlkLnBh dGNoCiAKLSMgRml4IGV4cGxpY2l0IENsYXNzOjogaW5zaWRlIGNsYXNzIHNjb3BlIChCWiA4NzQ4 MTcsIEtlaXRoIFNlaXR6KS4KLVBhdGNoODQ1OiBnZGItaW1wbGljaXQtdGhpcy5wYXRjaAorIyBG aXggUHl0aG9uIHN0YWNrIGNvcnJ1cHRpb24uCitQYXRjaDg0NzogZ2RiLXB5dGhvbi1zdGFja3Nt YXNoLnBhdGNoCiAKICVpZiAwJXshP3JoZWw6MX0gfHwgMCV7P3JoZWx9ID4gNgogIyBSTF9TVEFU RV9GRURPUkFfR0RCIHdvdWxkIG5vdCBiZSBmb3VuZCBmb3I6CkBAIC03NzEsNyArNzY2LDYgQEAg ZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICVwYXRjaDI3NiAtcDEKICVwYXRjaDI4 MiAtcDEKICVwYXRjaDI4NCAtcDEKLSVwYXRjaDI4NyAtcDEKICVwYXRjaDI4OSAtcDEKICVwYXRj aDI5MCAtcDEKICVwYXRjaDI5NCAtcDEKQEAgLTgyNiw4ICs4MjAsOCBAQCBmaW5kIC1uYW1lICIq LmluZm8qInx4YXJncyBybSAtZgogJXBhdGNoODE4IC1wMQogJXBhdGNoODMyIC1wMQogJXBhdGNo ODQzIC1wMQotJXBhdGNoODQ0IC1wMQotJXBhdGNoODQ1IC1wMQorJXBhdGNoODQ2IC1wMQorJXBh dGNoODQ3IC1wMQogCiAlcGF0Y2gzOTMgLXAxCiAlaWYgMCV7IT9lbDU6MX0gfHwgMCV7P3NjbDox fQpAQCAtODkzLDggKzg4Nyw4IEBAIGRvCiBta2RpciAle2dkYl9idWlsZH0kZnByb2ZpbGUKIGNk ICV7Z2RiX2J1aWxkfSRmcHJvZmlsZQogCi1leHBvcnQgQ0ZMQUdTPSIkUlBNX09QVF9GTEFHUyIK LWV4cG9ydCBMREZMQUdTPSIlez9fX2dsb2JhbF9sZGZsYWdzfSIKK2V4cG9ydCBDRkxBR1M9IiRS UE1fT1BUX0ZMQUdTICV7P193aXRoX2FzYW46LWZzYW5pdGl6ZT1hZGRyZXNzfSIKK2V4cG9ydCBM REZMQUdTPSIlez9fX2dsb2JhbF9sZGZsYWdzfSAlez9fd2l0aF9hc2FuOi1mc2FuaXRpemU9YWRk cmVzc30iCiAKICMgLS1odG1sZGlyIGFuZCAtLXBkZmRpciBhcmUgbm90IHVzZWQgYXMgdGhleSBh cmUgdXNlZCBmcm9tICV7Z2RiX2J1aWxkfS4KIC4uL2NvbmZpZ3VyZQkJCQkJCQlcCkBAIC0xMzQ2 LDYgKzEzNDAsMTAgQEAgZmkKICVlbmRpZiAjIDAleyE/ZWw1OjF9IHx8ICIle190YXJnZXRfY3B1 fSIgPT0gIm5vYXJjaCIKIAogJWNoYW5nZWxvZworKiBGcmkgRmViICA3IDIwMTQgSmFuIEtyYXRv Y2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy43LTEuZmMyMQorLSBSZWJhc2Ug dG8gRlNGIEdEQiA3LjcuCistIE5ldyBycG1idWlsZCBvcHRpb246IC0td2l0aCBhc2FuCisKICog VGh1IEphbiAyMyAyMDE0IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29t PiAtIDcuNi41MC4yMDE0MDExOS0yMC5mYzIwCiAtIFtzMzkwKixwcGMqXSBFbmFibGUgc2Vjb25k YXJ5IHRhcmdldHMgczM5MCogYW5kIHBwYyogKEJaIDEwNTYyNTkpLgogCgpkaWZmIC0tZ2l0IGEv c291cmNlcyBiL3NvdXJjZXMKaW5kZXggMjA1NTE2NC4uMjU2NjBjZiAxMDA2NDQKLS0tIGEvc291 cmNlcworKysgYi9zb3VyY2VzCkBAIC0xLDMgKzEsMiBAQAogNDk4MTMwN2FhOTYxOWJiZWM1Yjcz MjYxZTRlNDFjOGQgIGdkYi1saWJzdGRjKystdjMtcHl0aG9uLXIxNTU5NzgudGFyLmJ6MgotOGNl NGU3NTc3OTAxMzllM2YwNzY1MmEyYjQ5ZDc5ZmYgIGdkYi03LjYuNTAuMjAxMzA2MjQudGFyLmJ6 MgotZjE2YzMzYmRkOWQwMDMwZDBjMmE0MmQ1ZjMxOWY4NDEgIGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzLnRhci5iejIKKzI3MWExOGY0MTg1OGE3ZTk4YjI4YWU0ZWI5MTI4N2M5ICBnZGItNy43LnRh ci5iejIK