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.9.50.20150531 (pre-7.10 trunk snapshot). Date: Sat, 27 Jun 2026 23:57:03 GMT Message-ID: <178260462330.1.7401991195454371027.rpms-gdb-32f92b2e340e@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 32f92b2e340ea417a5951d7a25eb747051afa0f4 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGdkYi0xNy4yLXJlYmFzZS1mNDQKQ29tbWl0IDogMzJmOTJiMmUzNDBlYTQxN2E1OTUxZDdhMjVl Yjc0NzA1MWFmYTBmNApBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4KRGF0ZSAgIDogMjAxNS0wNS0zMVQyMDo0NzoyMSswMjowMApTdGF0cyAgOiArMTIy OC8tMjYwOSBpbiAzMiBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qu b3JnL3JwbXMvZ2RiL2MvMzJmOTJiMmUzNDBlYTQxN2E1OTUxZDdhMjVlYjc0NzA1MWFmYTBmND9i cmFuY2g9Z2RiLTE3LjItcmViYXNlLWY0NAoKTG9nOgpSZWJhc2UgdG8gRlNGIEdEQiA3LjkuNTAu MjAxNTA1MzEgKHByZS03LjEwIHRydW5rIHNuYXBzaG90KS4KCi0tLQpkaWZmIC0tZ2l0IGEvLmdp dGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggNTRiZDgzMi4uZTU4NDY3YiAxMDA2NDQKLS0tIGEv LmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC0xLDIgKzEsMiBAQAogL2dkYi1saWJzdGRj KystdjMtcHl0aG9uLXIxNTU5NzgudGFyLmJ6MgotL2dkYi03LjkuMS50YXIueHoKKy9nZGItNy45 LjUwLjIwMTUwNTMxLnRhci54egoKZGlmZiAtLWdpdCBhL2dkYi02LjMtcmVhZG5ldmVyLTIwMDUw OTA3LnBhdGNoIGIvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2gKaW5kZXggMWU5YWRk Zi4uOGVlYjU5YyAxMDA2NDQKLS0tIGEvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2gK KysrIGIvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2gKQEAgLTExLDEwICsxMSwxMCBA QAogCiAgICAgICAgICogZ2RiLnRleGluZm8gKEZpbGUgT3B0aW9ucyk6IERvY3VtZW50IC0tcmVh ZG5ldmVyLgogCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZG9jL2dkYi50ZXhpbmZv CitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZG9jL2dkYi50ZXhpbmZvCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAx NS0wMS0wMSAxNzowMTowOC4zMDg4ODEyOTIgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxNS0wMS0wMSAxNzowMToxMC4zMDI4ODAxMjYgKzAxMDAK Ky0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE1LTA1 LTMxIDE2OjM0OjU4LjQzNjM3OTY2MyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L2RvYy9nZGIudGV4aW5mbwkyMDE1LTA1LTMxIDE2OjM1OjAzLjQ1MjQxNjM4MSArMDIwMAogQEAg LTEwMzIsNiArMTAzMiwxMiBAQCBSZWFkIGVhY2ggc3ltYm9sIGZpbGUncyBlbnRpcmUgc3ltYm9s IHRhCiAgdGhlIGRlZmF1bHQsIHdoaWNoIGlzIHRvIHJlYWQgaXQgaW5jcmVtZW50YWxseSBhcyBp dCBpcyBuZWVkZWQuCiAgVGhpcyBtYWtlcyBzdGFydHVwIHNsb3dlciwgYnV0IG1ha2VzIGZ1dHVy ZSBvcGVyYXRpb25zIGZhc3Rlci4KQEAgLTI4LDE5ICsyOCwxOSBAQCBJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvZG9jL2dkYi50ZXhpbmZvCiAgQGVuZCB0YWJsZQogIAogIEBub2RlIE1v ZGUgT3B0aW9ucwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL21haW4uYworSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL21haW4uYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvbWFpbi5jCTIwMTUtMDEtMDEgMTc6MDE6MDguMzEyODgxMjkw ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbWFpbi5jCTIwMTUtMDEtMDEgMTc6 MDE6MTAuMzAzODgwMTI1ICswMTAwCi1AQCAtNTkwLDYgKzU5MCw3IEBAIGNhcHR1cmVkX21haW4g KHZvaWQgKmRhdGEpCi0gICAgICAgeyJ4ZGIiLCBub19hcmd1bWVudCwgJnhkYl9jb21tYW5kcywg MX0sCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9tYWluLmMJMjAxNS0wNS0zMSAx NjozNDo1OC40MzkzNzk2ODUgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tYWlu LmMJMjAxNS0wNS0zMSAxNjozNToyMC41NDc1NDE1MTggKzAyMDAKK0BAIC02MDQsNiArNjA0LDcg QEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKKyAgICAgICB7InR1aSIsIG5vX2FyZ3VtZW50 LCAwLCBPUFRfVFVJfSwKICAgICAgICB7ImRieCIsIG5vX2FyZ3VtZW50LCAmZGJ4X2NvbW1hbmRz LCAxfSwKICAgICAgICB7InJlYWRub3ciLCBub19hcmd1bWVudCwgJnJlYWRub3dfc3ltYm9sX2Zp bGVzLCAxfSwKICsgICAgICB7InJlYWRuZXZlciIsIG5vX2FyZ3VtZW50LCAmcmVhZG5ldmVyX3N5 bWJvbF9maWxlcywgMX0sCiAgICAgICAgeyJyIiwgbm9fYXJndW1lbnQsICZyZWFkbm93X3N5bWJv bF9maWxlcywgMX0sCiAgICAgICAgeyJxdWlldCIsIG5vX2FyZ3VtZW50LCAmcXVpZXQsIDF9LAog ICAgICAgIHsicSIsIG5vX2FyZ3VtZW50LCAmcXVpZXQsIDF9LAotQEAgLTEyNDUsNiArMTI0Niw3 IEBAIFNlbGVjdGlvbiBvZiBkZWJ1Z2dlZSBhbmQgaXRzIGZpbGVzOlxuXG4KK0BAIC0xMjUzLDYg KzEyNTQsNyBAQCBTZWxlY3Rpb24gb2YgZGVidWdnZWUgYW5kIGl0cyBmaWxlczpcblxuCiAgICAt LXNlPUZJTEUgICAgICAgICAgVXNlIEZJTEUgYXMgc3ltYm9sIGZpbGUgYW5kIGV4ZWN1dGFibGUg ZmlsZS5cblwKICAgIC0tc3ltYm9scz1TWU1GSUxFICBSZWFkIHN5bWJvbHMgZnJvbSBTWU1GSUxF LlxuXAogICAgLS1yZWFkbm93ICAgICAgICAgIEZ1bGx5IHJlYWQgc3ltYm9sIGZpbGVzIG9uIGZp cnN0IGFjY2Vzcy5cblwKQEAgLTQ4LDEwICs0OCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvbWFpbi5jCiAgICAtLXdyaXRlICAgICAgICAgICAgU2V0IHdyaXRpbmcgaW50byBl eGVjdXRhYmxlIGFuZCBjb3JlIGZpbGVzLlxuXG5cCiAgIiksIHN0cmVhbSk7CiAgICBmcHV0c191 bmZpbHRlcmVkIChfKCJcCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc3ltZmlsZS5j CitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvc3ltZmlsZS5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9zeW1maWxlLmMJMjAxNS0wMS0wMSAxNzow MTowOC4zMTM4ODEyODkgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zeW1maWxl LmMJMjAxNS0wMS0wMSAxNzowMToxMC4zMDQ4ODAxMjUgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIw MTUwNTIwLm9yaWcvZ2RiL3N5bWZpbGUuYwkyMDE1LTA1LTMxIDE2OjM0OjU4LjQ0MDM3OTY5MiAr MDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3N5bWZpbGUuYwkyMDE1LTA1LTMxIDE2 OjM1OjAzLjQ1NDQxNjM5NSArMDIwMAogQEAgLTgwLDYgKzgwLDcgQEAgc3RhdGljIHZvaWQgY2xl YXJfc3ltdGFiX3VzZXJzX2NsZWFudXAgKAogIAogIC8qIEdsb2JhbCB2YXJpYWJsZXMgb3duZWQg YnkgdGhpcyBmaWxlLiAgKi8KQEAgLTYwLDEwICs2MCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvc3ltZmlsZS5jCiAgCiAgLyogRnVuY3Rpb25zIHRoaXMgZmlsZSBkZWZpbmVz LiAgKi8KICAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJyZWFkLmMKK0lu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kd2FyZjJyZWFkLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTAxLTAxIDE3 OjAxOjA4LjMxOTg4MTI4NSArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJm MnJlYWQuYwkyMDE1LTAxLTAxIDE3OjAxOjI2Ljg4ODg3MDUxMSArMDEwMAorLS0tIGdkYi03Ljku NTAuMjAxNTA1MjAub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTUtMDUtMzEgMTY6MzQ6NTguNDQ2 Mzc5NzM2ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZHdhcmYycmVhZC5jCTIw MTUtMDUtMzEgMTY6MzU6MDMuNDU5NDE2NDMyICswMjAwCiBAQCAtNjksNiArNjksNyBAQAogICNp bmNsdWRlICJzb3VyY2UuaCIKICAjaW5jbHVkZSAiZmlsZXN0dWZmLmgiCkBAIC03Miw3ICs3Miw3 IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJyZWFkLmMKICAKICAjaW5j bHVkZSA8ZmNudGwuaD4KICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci1AQCAtMTk4OSw3ICsxOTkw LDggQEAgZHdhcmYyX2hhc19pbmZvIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZQorQEAgLTIwNTAs NyArMjA1MSw4IEBAIGR3YXJmMl9oYXNfaW5mbyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopIG5hbWVzKTsKICAgICAgICBkd2Fy ZjJfcGVyX29iamZpbGUtPm9iamZpbGUgPSBvYmpmaWxlOwogICAgICB9CkBAIC04MiwxMCArODIs MTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJmMnJlYWQuYwogIAkgICYm IGR3YXJmMl9wZXJfb2JqZmlsZS0+aW5mby5zLmFzZWN0aW9uICE9IE5VTEwKICAJICAmJiAhZHdh cmYyX3Blcl9vYmpmaWxlLT5hYmJyZXYuaXNfdmlydHVhbAogIAkgICYmIGR3YXJmMl9wZXJfb2Jq ZmlsZS0+YWJicmV2LnMuYXNlY3Rpb24gIT0gTlVMTCk7Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvdG9wLmgKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90b3AuaAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvdG9wLmgJMjAxNS0wMS0w MSAxNzowMTowOC4zMjA4ODEyODQgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90 b3AuaAkyMDE1LTAxLTAxIDE3OjAxOjEwLjMxMDg4MDEyMSArMDEwMAorLS0tIGdkYi03LjkuNTAu MjAxNTA1MjAub3JpZy9nZGIvdG9wLmgJMjAxNS0wNS0zMSAxNjozNDo1OC40NDgzNzk3NTEgKzAy MDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90b3AuaAkyMDE1LTA1LTMxIDE2OjM1OjAz LjQ1OTQxNjQzMiArMDIwMAogQEAgLTY3LDYgKzY3LDcgQEAgZXh0ZXJuIHZvaWQgc2V0X3Byb21w dCAoY29uc3QgY2hhciAqcyk7CiAgCiAgLyogRnJvbSByYW5kb20gcGxhY2VzLiAgKi8KCmRpZmYg LS1naXQgYS9nZGItNi4zLXRlc3QtcGllLTIwMDUwMTA3LnBhdGNoIGIvZ2RiLTYuMy10ZXN0LXBp ZS0yMDA1MDEwNy5wYXRjaAppbmRleCAxYmQxMWVmLi45YjcyZmY4IDEwMDY0NAotLS0gYS9nZGIt Ni4zLXRlc3QtcGllLTIwMDUwMTA3LnBhdGNoCisrKyBiL2dkYi02LjMtdGVzdC1waWUtMjAwNTAx MDcucGF0Y2gKQEAgLTEsNDAgKzEsMzkgQEAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi90ZXN0c3VpdGUvY29uZmlndXJlLmFjCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv dGVzdHN1aXRlL2NvbmZpZ3VyZS5hYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZS5hYwkyMDE1LTAxLTAxIDE3OjAwOjI2LjEy MzkwODk0OCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9jb25m aWd1cmUuYWMJMjAxNS0wMS0wMSAxNzowMDo0My4xNjg4OTc3NzMgKzAxMDAKLUBAIC0xMDYsNiAr MTA2LDYgQEAgQUNfT1VUUFVUKFtNYWtlZmlsZSBcCi0gICBnZGIuaHAvZ2RiLmFDQy9NYWtlZmls ZSBnZGIuaHAvZ2RiLmNvbXBhdC9NYWtlZmlsZSBcCi0gICBnZGIuaHAvZ2RiLmRlZmVjdHMvTWFr ZWZpbGUgZ2RiLmd1aWxlL01ha2VmaWxlIGdkYi5saW5lc3BlYy9NYWtlZmlsZSBcCistLS0gZ2Ri LTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi90ZXN0c3VpdGUvY29uZmlndXJlLmFjCTIwMTUtMDUt MzEgMTY6MzQ6MDIuMzk2OTY5NDUwICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv dGVzdHN1aXRlL2NvbmZpZ3VyZS5hYwkyMDE1LTA1LTMxIDE2OjM0OjMzLjQ0MzE5NjcxMSArMDIw MAorQEAgLTExNCw1ICsxMTQsNSBAQCBBQ19PVVRQVVQoW01ha2VmaWxlIFwKKyAgIGdkYi5ndWls ZS9NYWtlZmlsZSBnZGIubGluZXNwZWMvTWFrZWZpbGUgXAogICAgZ2RiLm1pL01ha2VmaWxlIGdk Yi5tb2R1bGEyL01ha2VmaWxlIGdkYi5tdWx0aS9NYWtlZmlsZSBcCi0tICBnZGIub2JqYy9NYWtl ZmlsZSBnZGIub3BlbmNsL01ha2VmaWxlIGdkYi5vcHQvTWFrZWZpbGUgZ2RiLnBhc2NhbC9NYWtl ZmlsZSBcCi0rICBnZGIub2JqYy9NYWtlZmlsZSBnZGIub3BlbmNsL01ha2VmaWxlIGdkYi5vcHQv TWFrZWZpbGUgZ2RiLnBhc2NhbC9NYWtlZmlsZSBnZGIucGllL01ha2VmaWxlIFwKLSAgIGdkYi5w ZXJmL01ha2VmaWxlIGdkYi5weXRob24vTWFrZWZpbGUgZ2RiLnJldmVyc2UvTWFrZWZpbGUgZ2Ri LnN0YWJzL01ha2VmaWxlIFwKKyAgIGdkYi5vYmpjL01ha2VmaWxlIGdkYi5vcGVuY2wvTWFrZWZp bGUgZ2RiLm9wdC9NYWtlZmlsZSBnZGIucGFzY2FsL01ha2VmaWxlIFwKKy0gIGdkYi5wZXJmL01h a2VmaWxlIGdkYi5weXRob24vTWFrZWZpbGUgZ2RiLnJldmVyc2UvTWFrZWZpbGUgZ2RiLnN0YWJz L01ha2VmaWxlIFwKKysgIGdkYi5wZXJmL01ha2VmaWxlIGdkYi5waWUvTWFrZWZpbGUgZ2RiLnB5 dGhvbi9NYWtlZmlsZSBnZGIucmV2ZXJzZS9NYWtlZmlsZSBnZGIuc3RhYnMvTWFrZWZpbGUgXAog ICAgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01ha2VmaWxlIGdkYi54bWwvTWFrZWZp bGVdKQotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUK K0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvY29uZmlndXJlCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90ZXN0c3VpdGUvY29uZmln dXJlCTIwMTUtMDEtMDEgMTc6MDA6MjYuMTI0OTA4OTQ3ICswMTAwCi0rKysgZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZQkyMDE1LTAxLTAxIDE3OjAwOjU5LjQ2Nzg4 NzA4OCArMDEwMAotQEAgLTM0NTgsNyArMzQ1OCw3IEBAIGlmIHRlc3QgIiR7YnVpbGR9IiA9ICIk e2hvc3R9IiAtYSAiJHtob3MKLSBmaQorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIv dGVzdHN1aXRlL2NvbmZpZ3VyZQkyMDE1LTA1LTMxIDE2OjMzOjUzLjE1NDkwMTc5OCArMDIwMAor KysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUJMjAxNS0wNS0z MSAxNjozNDo0OC42NTQzMDgwNTcgKzAyMDAKK0BAIC0zNTE0LDcgKzM1MTQsNyBAQCBwcm9ncmFt X3RyYW5zZm9ybV9uYW1lPWAkYXNfZWNobyAiJHByb2dyCisgYWNfY29uZmlnX2ZpbGVzPSIkYWNf Y29uZmlnX2ZpbGVzIGxpYi9wZHRyYWNlIgogIAogIAotLWFjX2NvbmZpZ19maWxlcz0iJGFjX2Nv bmZpZ19maWxlcyBNYWtlZmlsZSBnZGIuYWRhL01ha2VmaWxlIGdkYi5hcmNoL01ha2VmaWxlIGdk Yi5hc20vTWFrZWZpbGUgZ2RiLmJhc2UvTWFrZWZpbGUgZ2RiLmJ0cmFjZS9NYWtlZmlsZSBnZGIu Y2VsbC9NYWtlZmlsZSBnZGIuY29tcGlsZS9NYWtlZmlsZSBnZGIuY3AvTWFrZWZpbGUgZ2RiLmRp c2FzbS9NYWtlZmlsZSBnZGIuZHdhcmYyL01ha2VmaWxlIGdkYi5kbGFuZy9NYWtlZmlsZSBnZGIu Zm9ydHJhbi9NYWtlZmlsZSBnZGIuZ2RiL01ha2VmaWxlIGdkYi5nby9NYWtlZmlsZSBnZGIuc2Vy dmVyL01ha2VmaWxlIGdkYi5qYXZhL01ha2VmaWxlIGdkYi5ocC9NYWtlZmlsZSBnZGIuaHAvZ2Ri Lm9iamRiZy9NYWtlZmlsZSBnZGIuaHAvZ2RiLmJhc2UtaHAvTWFrZWZpbGUgZ2RiLmhwL2dkYi5h Q0MvTWFrZWZpbGUgZ2RiLmhwL2dkYi5jb21wYXQvTWFrZWZpbGUgZ2RiLmhwL2dkYi5kZWZlY3Rz L01ha2VmaWxlIGdkYi5ndWlsZS9NYWtlZmlsZSBnZGIubGluZXNwZWMvTWFrZWZpbGUgZ2RiLm1p L01ha2VmaWxlIGdkYi5tb2R1bGEyL01ha2VmaWxlIGdkYi5tdWx0aS9NYWtlZmlsZSBnZGIub2Jq Yy9NYWtlZmlsZSBnZGIub3BlbmNsL01ha2VmaWxlIGdkYi5vcHQvTWFrZWZpbGUgZ2RiLnBhc2Nh bC9NYWtlZmlsZSBnZGIucGVyZi9NYWtlZmlsZSBnZGIucHl0aG9uL01ha2VmaWxlIGdkYi5yZXZl cnNlL01ha2VmaWxlIGdkYi5zdGFicy9NYWtlZmlsZSBnZGIudGhyZWFkcy9NYWtlZmlsZSBnZGIu dHJhY2UvTWFrZWZpbGUgZ2RiLnhtbC9NYWtlZmlsZSIKLSthY19jb25maWdfZmlsZXM9IiRhY19j b25maWdfZmlsZXMgTWFrZWZpbGUgZ2RiLmFkYS9NYWtlZmlsZSBnZGIuYXJjaC9NYWtlZmlsZSBn ZGIuYXNtL01ha2VmaWxlIGdkYi5iYXNlL01ha2VmaWxlIGdkYi5idHJhY2UvTWFrZWZpbGUgZ2Ri LmNlbGwvTWFrZWZpbGUgZ2RiLmNvbXBpbGUvTWFrZWZpbGUgZ2RiLmNwL01ha2VmaWxlIGdkYi5k aXNhc20vTWFrZWZpbGUgZ2RiLmR3YXJmMi9NYWtlZmlsZSBnZGIuZGxhbmcvTWFrZWZpbGUgZ2Ri LmZvcnRyYW4vTWFrZWZpbGUgZ2RiLmdkYi9NYWtlZmlsZSBnZGIuZ28vTWFrZWZpbGUgZ2RiLnNl cnZlci9NYWtlZmlsZSBnZGIuamF2YS9NYWtlZmlsZSBnZGIuaHAvTWFrZWZpbGUgZ2RiLmhwL2dk Yi5vYmpkYmcvTWFrZWZpbGUgZ2RiLmhwL2dkYi5iYXNlLWhwL01ha2VmaWxlIGdkYi5ocC9nZGIu YUNDL01ha2VmaWxlIGdkYi5ocC9nZGIuY29tcGF0L01ha2VmaWxlIGdkYi5ocC9nZGIuZGVmZWN0 cy9NYWtlZmlsZSBnZGIuZ3VpbGUvTWFrZWZpbGUgZ2RiLmxpbmVzcGVjL01ha2VmaWxlIGdkYi5t aS9NYWtlZmlsZSBnZGIubW9kdWxhMi9NYWtlZmlsZSBnZGIubXVsdGkvTWFrZWZpbGUgZ2RiLm9i amMvTWFrZWZpbGUgZ2RiLm9wZW5jbC9NYWtlZmlsZSBnZGIub3B0L01ha2VmaWxlIGdkYi5wYXNj YWwvTWFrZWZpbGUgZ2RiLnBpZS9NYWtlZmlsZSBnZGIucGVyZi9NYWtlZmlsZSBnZGIucHl0aG9u L01ha2VmaWxlIGdkYi5yZXZlcnNlL01ha2VmaWxlIGdkYi5zdGFicy9NYWtlZmlsZSBnZGIudGhy ZWFkcy9NYWtlZmlsZSBnZGIudHJhY2UvTWFrZWZpbGUgZ2RiLnhtbC9NYWtlZmlsZSIKKy1hY19j b25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgZ2RiLmFkYS9NYWtlZmlsZSBn ZGIuYXJjaC9NYWtlZmlsZSBnZGIuYXNtL01ha2VmaWxlIGdkYi5iYXNlL01ha2VmaWxlIGdkYi5i dHJhY2UvTWFrZWZpbGUgZ2RiLmNlbGwvTWFrZWZpbGUgZ2RiLmNvbXBpbGUvTWFrZWZpbGUgZ2Ri LmNwL01ha2VmaWxlIGdkYi5kaXNhc20vTWFrZWZpbGUgZ2RiLmR3YXJmMi9NYWtlZmlsZSBnZGIu ZGxhbmcvTWFrZWZpbGUgZ2RiLmZvcnRyYW4vTWFrZWZpbGUgZ2RiLmdkYi9NYWtlZmlsZSBnZGIu Z28vTWFrZWZpbGUgZ2RiLnNlcnZlci9NYWtlZmlsZSBnZGIuamF2YS9NYWtlZmlsZSBnZGIuZ3Vp bGUvTWFrZWZpbGUgZ2RiLmxpbmVzcGVjL01ha2VmaWxlIGdkYi5taS9NYWtlZmlsZSBnZGIubW9k dWxhMi9NYWtlZmlsZSBnZGIubXVsdGkvTWFrZWZpbGUgZ2RiLm9iamMvTWFrZWZpbGUgZ2RiLm9w ZW5jbC9NYWtlZmlsZSBnZGIub3B0L01ha2VmaWxlIGdkYi5wYXNjYWwvTWFrZWZpbGUgZ2RiLnBl cmYvTWFrZWZpbGUgZ2RiLnB5dGhvbi9NYWtlZmlsZSBnZGIucmV2ZXJzZS9NYWtlZmlsZSBnZGIu c3RhYnMvTWFrZWZpbGUgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01ha2VmaWxlIGdk Yi54bWwvTWFrZWZpbGUiCisrYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1ha2Vm aWxlIGdkYi5hZGEvTWFrZWZpbGUgZ2RiLmFyY2gvTWFrZWZpbGUgZ2RiLmFzbS9NYWtlZmlsZSBn ZGIuYmFzZS9NYWtlZmlsZSBnZGIuYnRyYWNlL01ha2VmaWxlIGdkYi5jZWxsL01ha2VmaWxlIGdk Yi5jb21waWxlL01ha2VmaWxlIGdkYi5jcC9NYWtlZmlsZSBnZGIuZGlzYXNtL01ha2VmaWxlIGdk Yi5kd2FyZjIvTWFrZWZpbGUgZ2RiLmRsYW5nL01ha2VmaWxlIGdkYi5mb3J0cmFuL01ha2VmaWxl IGdkYi5nZGIvTWFrZWZpbGUgZ2RiLmdvL01ha2VmaWxlIGdkYi5zZXJ2ZXIvTWFrZWZpbGUgZ2Ri LmphdmEvTWFrZWZpbGUgZ2RiLmd1aWxlL01ha2VmaWxlIGdkYi5saW5lc3BlYy9NYWtlZmlsZSBn ZGIubWkvTWFrZWZpbGUgZ2RiLm1vZHVsYTIvTWFrZWZpbGUgZ2RiLm11bHRpL01ha2VmaWxlIGdk Yi5vYmpjL01ha2VmaWxlIGdkYi5vcGVuY2wvTWFrZWZpbGUgZ2RiLm9wdC9NYWtlZmlsZSBnZGIu cGFzY2FsL01ha2VmaWxlIGdkYi5wZXJmL01ha2VmaWxlIGdkYi5waWUvTWFrZWZpbGUgZ2RiLnB5 dGhvbi9NYWtlZmlsZSBnZGIucmV2ZXJzZS9NYWtlZmlsZSBnZGIuc3RhYnMvTWFrZWZpbGUgZ2Ri LnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01ha2VmaWxlIGdkYi54bWwvTWFrZWZpbGUiCiAg CiAgY2F0ID5jb25mY2FjaGUgPDxcX0FDRU9GCiAgIyBUaGlzIGZpbGUgaXMgYSBzaGVsbCBzY3Jp cHQgdGhhdCBjYWNoZXMgdGhlIHJlc3VsdHMgb2YgY29uZmlndXJlCi1AQCAtNDE5MCw2ICs0MTkw LDcgQEAgZG8KLSAgICAgImdkYi5vcGVuY2wvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05G SUdfRklMRVMgZ2RiLm9wZW5jbC9NYWtlZmlsZSIgOzsKK0BAIC00MjQyLDYgKzQyNDIsNyBAQCBk bwogICAgICAiZ2RiLm9wdC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBn ZGIub3B0L01ha2VmaWxlIiA7OwogICAgICAiZ2RiLnBhc2NhbC9NYWtlZmlsZSIpIENPTkZJR19G SUxFUz0iJENPTkZJR19GSUxFUyBnZGIucGFzY2FsL01ha2VmaWxlIiA7OwotKyAgICAiZ2RiLnBp ZS9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBnZGIucGllL01ha2VmaWxl IiA7OwogICAgICAiZ2RiLnBlcmYvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklM RVMgZ2RiLnBlcmYvTWFrZWZpbGUiIDs7CisrICAgICJnZGIucGllL01ha2VmaWxlIikgQ09ORklH X0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5waWUvTWFrZWZpbGUiIDs7CiAgICAgICJnZGIucHl0 aG9uL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5weXRob24vTWFr ZWZpbGUiIDs7CiAgICAgICJnZGIucmV2ZXJzZS9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENP TkZJR19GSUxFUyBnZGIucmV2ZXJzZS9NYWtlZmlsZSIgOzsKLUluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guYworICAgICAiZ2RiLnN0YWJzL01h a2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5zdGFicy9NYWtlZmlsZSIg OzsKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRh Y2guYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAw MDAwMCArMDAwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGll L2F0dGFjaC5jCTIwMTUtMDEtMDEgMTc6MDA6NDMuMTY5ODk3NzczICswMTAwCisrKysgZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmMJMjAxNS0wNS0zMSAx NjozNDowMi4zOTg5Njk0NjUgKzAyMDAKIEBAIC0wLDAgKzEsMjAgQEAKICsvKiBUaGlzIHByb2dy YW0gaXMgaW50ZW5kZWQgdG8gYmUgc3RhcnRlZCBvdXRzaWRlIG9mIGdkYiwgYW5kIHRoZW4KICsg ICBhdHRhY2hlZCB0byBieSBnZGIuICBUaHVzLCBpdCBzaW1wbHkgc3BpbnMgaW4gYSBsb29wLiAg VGhlIGxvb3AKQEAgLTU2LDEwICs1NSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmMKICsgICAgfQogKyAgcmV0dXJuIDA7CiArfQot SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaDIu YworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFj aDIuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAw MDAwMCArMDAwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGll L2F0dGFjaDIuYwkyMDE1LTAxLTAxIDE3OjAwOjQzLjE3MDg5Nzc3MiArMDEwMAorKysrIGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaDIuYwkyMDE1LTA1LTMx IDE2OjM0OjAyLjM5ODk2OTQ2NSArMDIwMAogQEAgLTAsMCArMSwyNCBAQAogKy8qIFRoaXMgcHJv Z3JhbSBpcyBpbnRlbmRlZCB0byBiZSBzdGFydGVkIG91dHNpZGUgb2YgZ2RiLCBhbmQgdGhlbgog KyAgIGF0dGFjaGVkIHRvIGJ5IGdkYi4gIFRodXMsIGl0IHNpbXBseSBzcGlucyBpbiBhIGxvb3Au ICBUaGUgbG9vcApAQCAtODUsMTAgKzg0LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2gyLmMKICsgICAgfQogKyAgcmV0dXJuICgwKTsK ICt9Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJl YWsuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2Jy ZWFrLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnBp ZS9icmVhay5jCTIwMTUtMDEtMDEgMTc6MDA6NDMuMTcwODk3NzcyICswMTAwCisrKysgZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuYwkyMDE1LTA1LTMxIDE2 OjM0OjAyLjM5OTk2OTQ3MiArMDIwMAogQEAgLTAsMCArMSwxNDYgQEAKICsvKiBUaGlzIHRlc3Rj YXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMjM2LDEwICsyMzUs MTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2Jy ZWFrLmMKICsgICAgfQogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrMS5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsxLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhazEuYwkyMDE1LTAxLTAxIDE3OjAw OjQzLjE3MDg5Nzc3MiArMDEwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0 ZS9nZGIucGllL2JyZWFrMS5jCTIwMTUtMDUtMzEgMTY6MzQ6MDIuMzk5OTY5NDcyICswMjAwCiBA QCAtMCwwICsxLDQ0IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdO VSBkZWJ1Z2dlci4KICsKQEAgLTI4NSwxMCArMjg0LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhazEuYwogK3ZvaWQgbWFya2VyMyAoYSwg YikgY2hhciAqYSwgKmI7IHt9CS8qIHNldCBicmVha3BvaW50IDE4IGhlcmUgKi8KICt2b2lkIG1h cmtlcjQgKGQpIGxvbmcgZDsge30JCS8qIHNldCBicmVha3BvaW50IDEzIGhlcmUgKi8KICsjZW5k aWYKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3Jl bWFrZXIuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucGll L2NvcmVtYWtlci5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6 MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRl L2dkYi5waWUvY29yZW1ha2VyLmMJMjAxNS0wMS0wMSAxNzowMDo0My4xNzA4OTc3NzIgKzAxMDAK KysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlbWFrZXIu YwkyMDE1LTA1LTMxIDE2OjM0OjAyLjM5OTk2OTQ3MiArMDIwMAogQEAgLTAsMCArMSwxNDIgQEAK ICsvKiBDb3B5cmlnaHQgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OQogKyAgIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtNDMyLDEwICs0MzEsMTAgQEAgSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVtYWtlci5jCiAr ICByZXR1cm4gMDsKICt9CiArCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1 aXRlL2dkYi5waWUvYXR0YWNoLmV4cAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rl c3RzdWl0ZS9nZGIucGllL2F0dGFjaC5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guZXhwCTIwMTUtMDEtMDEgMTc6MDA6NDMuMTcx ODk3NzcxICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5w aWUvYXR0YWNoLmV4cAkyMDE1LTA1LTMxIDE2OjM0OjAyLjQwMDk2OTQ4MCArMDIwMAogQEAgLTAs MCArMSw0MTcgQEAKICsjICAgQ29weXJpZ2h0IDE5OTcsIDE5OTksIDIwMDIgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC04NTQsMTAgKzg1MywxMCBAQCBJbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmV4cAogK2RvX2NhbGxf YXR0YWNoX3Rlc3RzCiArCiArcmV0dXJuIDAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5leHAKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5leHAKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5leHAJMjAxNS0wMS0wMSAxNzowMDo0 My4xNzI4OTc3NzEgKzAxMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUv Z2RiLnBpZS9icmVhay5leHAJMjAxNS0wNS0zMSAxNjozNDowMi40MDE5Njk0ODcgKzAyMDAKIEBA IC0wLDAgKzEsOTYyIEBACiArIyAgIENvcHlyaWdodCAxOTg4LCAxOTkwLCAxOTkxLCAxOTkyLCAx OTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LAogKyMgICAyMDAwLCAyMDAyLCAyMDAz LCAyMDA0CkBAIC0xODIxLDEwICsxODIwLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5leHAKICsgICAgc2VuZF9nZGIgInNldCBhcmdz IG1haW5cbiIKICsgICAgZ2RiX2V4cGVjdCAtcmUgIi4qJGdkYl9wcm9tcHQgJCIge30KICt9Ci1J bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZpbGUu ZXhwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29y ZWZpbGUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dk Yi5waWUvY29yZWZpbGUuZXhwCTIwMTUtMDEtMDEgMTc6MDA6NDMuMTcyODk3NzcxICswMTAwCisr KysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZpbGUuZXhw CTIwMTUtMDUtMzEgMTY6MzQ6MDIuNDAxOTY5NDg3ICswMjAwCiBAQCAtMCwwICsxLDIzMyBAQAog KyMgQ29weXJpZ2h0IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5 OTksIDIwMDAKICsjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtMjA1OSwxMCAr MjA1OCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5w aWUvY29yZWZpbGUuZXhwCiArZ2RiX3Rlc3QgInVwIiAiI1xbMC05XF0qICpcWzAtOXhhLWZIJ1xd KiBpbiAuKiBcXCguKlxcKS4qIiAidXAgaW4gY29yZWZpbGUuZXhwIChyZWluaXQpIgogKwogK2dk Yl90ZXN0ICJjb3JlIiAiTm8gY29yZSBmaWxlIG5vdy4iCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvTWFrZWZpbGUuaW4KK0luZGV4OiBnZGItNy45LjUw LjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9NYWtlZmlsZS5pbgogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL01ha2VmaWxlLmluCTIwMTUt MDEtMDEgMTc6MDA6NDMuMTcyODk3NzcxICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvdGVzdHN1aXRlL2dkYi5waWUvTWFrZWZpbGUuaW4JMjAxNS0wNS0zMSAxNjozNDowMi40MDE5 Njk0ODcgKzAyMDAKIEBAIC0wLDAgKzEsMTkgQEAKICtWUEFUSCA9IEBzcmNkaXJACiArc3JjZGly ID0gQHNyY2RpckAKCmRpZmYgLS1naXQgYS9nZGItNi41LWJ6MTkwODEwLWdkYnNlcnZlci1hcmNo LWFkdmljZS5wYXRjaCBiL2dkYi02LjUtYnoxOTA4MTAtZ2Ric2VydmVyLWFyY2gtYWR2aWNlLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzAyMzI3Li4wMDAwMDAwCi0tLSBh L2dkYi02LjUtYnoxOTA4MTAtZ2Ric2VydmVyLWFyY2gtYWR2aWNlLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMjggKzAsMCBAQAotaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL2J1Z3ppbGxh L3Nob3dfYnVnLmNnaT9pZD0xOTA4MTAKLQotCi0yMDA2LTA5LTI2ICBKYW4gS3JhdG9jaHZpbCAg PGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQkqIHJlbW90ZS5jIChyZW1vdGVfd2FpdCk6 IFN1Z2dlc3Rpb24gb24gY3Jhc2ggZHVlIHRvIG5vbm1hdGNoaW5nIHRhcmdldC4KLQkocmVtb3Rl X2FzeW5jX3dhaXQpOiBMaWtld2lzZS4KLQotCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxOC9n ZGIvcmVtb3RlLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODE4Lm9yaWcvZ2Ri L3JlbW90ZS5jCTIwMDktMDgtMTggMjE6MDA6MzUuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYu OC41MC4yMDA5MDgxOC9nZGIvcmVtb3RlLmMJMjAwOS0wOC0xOCAyMTowNDo0Ni4wMDAwMDAwMDAg KzAyMDAKLUBAIC00NDA4LDggKzQ0MDgsMTMgQEAgUGFja2V0OiAnJXMnXG4iKSwKLSAJICAgICAg VkVDX3NhZmVfcHVzaCAoY2FjaGVkX3JlZ190LCBldmVudC0+cmVnY2FjaGUsICZjYWNoZWRfcmVn KTsKLSAJICAgIH0KLSAKLSsJICAvKiBJdCBtYXkgYWxzbyBvY2N1ciBvbiBhbWQ2NCB3aGljaCBk ZWZhdWx0cyB0byAzMi1iaXQgaTM4NgotKwkgICAgIHRhcmdldC4gIGdkYnNlcnZlcigxKSBpcyBu b3QgYXdhcmUgb2YgdGhlIGBzZXQgYXJjaGl0ZWN0dXJlJwotKwkgICAgIG5hbWUgaXRzZWxmIGFz IGl0IGlzIG5vdCB1c2luZyBsaWJiZmQuICAqLwotIAkgIGlmICgqcCAhPSAnOycpCi0tCSAgICBl cnJvciAoXygiUmVtb3RlIHJlZ2lzdGVyIGJhZGx5IGZvcm1hdHRlZDogJXNcbmhlcmU6ICVzIiks Ci0rCSAgICBlcnJvciAoXygiUmVtb3RlIHJlZ2lzdGVyIGJhZGx5IGZvcm1hdHRlZDogJXNcbmhl cmU6ICVzIgotKwkJICAgICAiXG5UcnkgdG8gbG9hZCB0aGUgZXhlY3V0YWJsZSBieSBgZmlsZScg Zmlyc3QsIgotKwkJICAgICAiXG55b3UgbWF5IGFsc28gY2hlY2sgYHNldC9zaG93IGFyY2hpdGVj dHVyZScuIiksCi0gCQkgICBidWYsIHApOwotIAkgICsrcDsKLSAJfQoKZGlmZiAtLWdpdCBhL2dk Yi02LjYtYnVpbGRpZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQt bG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoCmluZGV4IGM5OGU2ODYuLjUyM2I3ZTAgMTAwNjQ0Ci0t LSBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2gKKysrIGIvZ2RiLTYu Ni1idWlsZGlkLWxvY2F0ZS1jb3JlLWFzLWFyZy5wYXRjaApAQCAtNTgsMTAgKzU4LDEwIEBAIEh0 dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEwLTAxL21zZzAwNTE3Lmh0bWwK IAkqIGV4ZWMuYyAoZXhlY19maWxlX2F0dGFjaCk6IFByaW50IGEgbW9yZSB1c2VmdWwgZXJyb3Ig bWVzc2FnZSBpZiB0aGUKIAl1c2VyIGRpZCAiZ2RiIGNvcmUiLgogCi1JbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvZXhlYy5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUzMS9nZGIvZXhl Yy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9leGVjLmMJ MjAxNS0wMS0wMyAyMzoxODozOC4wOTc0Mjc5MDggKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9leGVjLmMJMjAxNS0wMS0wMyAyMzoxOTowMi40NDg1NTYzOTEgKzAxMDAKKy0tLSBn ZGItNy45LjUwLjIwMTUwNTMxLm9yaWcvZ2RiL2V4ZWMuYwkyMDE1LTA1LTMxIDAzOjQ4OjI5LjAw MDAwMDAwMCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL2V4ZWMuYwkyMDE1LTA1 LTMxIDIwOjA3OjM1LjA5Mjg3ODY4NSArMDIwMAogQEAgLTM1LDYgKzM1LDcgQEAKICAjaW5jbHVk ZSAicHJvZ3NwYWNlLmgiCiAgI2luY2x1ZGUgImdkYl9iZmQuaCIKQEAgLTcwLDcgKzcwLDcgQEAg SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2V4ZWMuYwogIAogICNpbmNsdWRlIDxmY250 bC5oPgogICNpbmNsdWRlICJyZWFkbGluZS9yZWFkbGluZS5oIgotQEAgLTIyMiwxMiArMjIzLDI3 IEBAIGV4ZWNfZmlsZV9hdHRhY2ggKGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorQEAgLTI5OCwxMiAr Mjk5LDI3IEBAIGV4ZWNfZmlsZV9hdHRhY2ggKGNvbnN0IGNoYXIgKmZpbGVuYW1lLAogIAogICAg ICAgIGlmICghYmZkX2NoZWNrX2Zvcm1hdF9tYXRjaGVzIChleGVjX2JmZCwgYmZkX29iamVjdCwg Jm1hdGNoaW5nKSkKICAJewpAQCAtMTAxLDExICsxMDEsMTEgQEAgSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2V4ZWMuYwogIAl9CiAgCiAgICAgICAgaWYgKGJ1aWxkX3NlY3Rpb25fdGFi bGUgKGV4ZWNfYmZkLCAmc2VjdGlvbnMsICZzZWN0aW9uc19lbmQpKQotSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL21haW4uYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL21h aW4uYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbWFpbi5j CTIwMTUtMDEtMDMgMjM6MTg6MzguMDk4NDI3OTEzICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvbWFpbi5jCTIwMTUtMDEtMDMgMjM6MjI6MTAuMTU3NTQ2NzkyICswMTAwCi1AQCAt NDI2LDYgKzQyNiwzNiBAQCB0eXBlZGVmIHN0cnVjdCBjbWRhcmcgeworLS0tIGdkYi03LjkuNTAu MjAxNTA1MzEub3JpZy9nZGIvbWFpbi5jCTIwMTUtMDUtMzEgMjA6MDc6MzQuMTgzODcyODI0ICsw MjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUzMS9nZGIvbWFpbi5jCTIwMTUtMDUtMzEgMjA6MTA6 MDUuMDk1ODQ1OTM1ICswMjAwCitAQCAtNDM1LDYgKzQzNSwzNyBAQCB0eXBlZGVmIHN0cnVjdCBj bWRhcmcgewogIC8qIERlZmluZSB0eXBlIFZFQyAoY21kYXJnX3MpLiAgKi8KICBERUZfVkVDX08g KGNtZGFyZ19zKTsKICAKQEAgLTEyMCwxMSArMTIwLDExIEBAIEluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9tYWluLmMKICsKICsgIGdkYl9hc3NlcnQgKGV4ZWNfYmZkID09IE5VTEwpOwog KwotKyAgVFJZX0NBVENIIChlLCBSRVRVUk5fTUFTS19BTEwpCisrICBUUlkKICsgICAgewogKyAg ICAgIGV4ZWNfZmlsZV9hdHRhY2ggKGZpbGVuYW1lLCBmcm9tX3R0eSk7CiArICAgIH0KLSsgIGlm IChlLnJlYXNvbiA8IDApCisrICBDQVRDSCAoZSwgUkVUVVJOX01BU0tfQUxMKQogKyAgICB7CiAr ICAgICAgaWYgKGUuZXJyb3IgPT0gSVNfQ09SRV9FUlJPUikKICsJewpAQCAtMTM3LDEyICsxMzcs MTMgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL21haW4uYwogKwl9CiArICAgICAg dGhyb3dfZXhjZXB0aW9uIChlKTsKICsgICAgfQorKyAgRU5EX0NBVENICiArfQogKwogIHN0YXRp YyBpbnQKICBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogIHsKLUBAIC05MTAsNiArOTQwLDgg QEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC05MjMsNiArOTU0LDggQEAgY2FwdHVy ZWRfbWFpbiAodm9pZCAqZGF0YSkKICAJewogIAkgIHN5bWFyZyA9IGFyZ3Zbb3B0aW5kXTsKICAJ ICBleGVjYXJnID0gYXJndltvcHRpbmRdOwpAQCAtMTUxLDcgKzE1Miw3IEBAIEluZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9tYWluLmMKICAJICBvcHRpbmQrKzsKICAJfQogIAotQEAgLTEw NjksMTEgKzExMDEsMjYgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC0xMDgwLDEx ICsxMTEzLDI1IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCiAgICAgICAgJiYgc3ltYXJn ICE9IE5VTEwKICAgICAgICAmJiBzdHJjbXAgKGV4ZWNhcmcsIHN5bWFyZykgPT0gMCkKICAgICAg ewpAQCAtMTcxLDIzICsxNzIsMjIgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL21h aW4uYwogICAgICAgICAgIG9wZW4gaXQsIGJldHRlciBvbmx5IHByaW50IG9uZSBlcnJvciBtZXNz YWdlLgogLSAgICAgICAgIGNhdGNoX2NvbW1hbmRfZXJyb3JzIHJldHVybnMgbm9uLXplcm8gb24g c3VjY2VzcyEgICovCiAtICAgICAgaWYgKGNhdGNoX2NvbW1hbmRfZXJyb3JzX2NvbnN0IChleGVj X2ZpbGVfYXR0YWNoLCBleGVjYXJnLAotLQkJCQkgICAgICAhYmF0Y2hfZmxhZywgUkVUVVJOX01B U0tfQUxMKSkKKy0JCQkJICAgICAgIWJhdGNoX2ZsYWcpKQogKyAgICAgICAgIGNhdGNoX2NvbW1h bmRfZXJyb3JzIHJldHVybnMgbm9uLXplcm8gb24gc3VjY2VzcyEKICsJIERvIG5vdCBsb2FkIEVY RUNBUkcgYXMgYSBzeW1ib2wgZmlsZSBpZiBpdCBoYXMgYmVlbiBhbHJlYWR5IHByb2Nlc3NlZAog KwkgYXMgYSBjb3JlIGZpbGUuICAqLwotKyAgICAgIGlmIChjYXRjaF9jb21tYW5kX2Vycm9yc19j b25zdCAoZnVuYywgZXhlY2FyZywgIWJhdGNoX2ZsYWcsCi0rCQkJCSAgICAgIFJFVFVSTl9NQVNL X0FMTCkKKysgICAgICBpZiAoY2F0Y2hfY29tbWFuZF9lcnJvcnNfY29uc3QgKGZ1bmMsIGV4ZWNh cmcsICFiYXRjaF9mbGFnKQogKwkgICYmIGNvcmVfYmZkID09IE5VTEwpCiAgCWNhdGNoX2NvbW1h bmRfZXJyb3JzX2NvbnN0IChzeW1ib2xfZmlsZV9hZGRfbWFpbiwgc3ltYXJnLAotIAkJCQkgICAg IWJhdGNoX2ZsYWcsIFJFVFVSTl9NQVNLX0FMTCk7CisgCQkJCSAgICAhYmF0Y2hfZmxhZyk7CiAg ICAgIH0KLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb21tb24vY29tbW9uLWV4Y2Vw dGlvbnMuaAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL2NvbW1vbi9jb21tb24tZXhj ZXB0aW9ucy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9j b21tb24vY29tbW9uLWV4Y2VwdGlvbnMuaAkyMDE1LTAxLTAzIDIzOjE4OjM4LjA5NzQyNzkwOCAr MDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbW1vbi9jb21tb24tZXhjZXB0aW9u cy5oCTIwMTUtMDEtMDMgMjM6MTk6MDIuNDQ5NTU2Mzk2ICswMTAwCi1AQCAtOTksNiArOTksOSBA QCBlbnVtIGVycm9ycyB7Ci0gICAvKiBSZXF1ZXN0ZWQgZmVhdHVyZSwgbWV0aG9kLCBtZWNoYW5p c20sIGV0Yy4gaXMgbm90IHN1cHBvcnRlZC4gICovCi0gICBOT1RfU1VQUE9SVEVEX0VSUk9SLAor LS0tIGdkYi03LjkuNTAuMjAxNTA1MzEub3JpZy9nZGIvY29tbW9uL2NvbW1vbi1leGNlcHRpb25z LmgJMjAxNS0wNS0zMSAwMzo0ODoyOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy45LjUwLjIw MTUwNTMxL2dkYi9jb21tb24vY29tbW9uLWV4Y2VwdGlvbnMuaAkyMDE1LTA1LTMxIDIwOjA3OjM1 LjA5Mzg3ODY5MiArMDIwMAorQEAgLTEwNSw2ICsxMDUsOSBAQCBlbnVtIGVycm9ycyB7CisgICAg ICAiX0VSUk9SIiBpcyBhcHBlbmRlZCB0byB0aGUgbmFtZS4gICovCisgICBNQVhfQ09NUExFVElP TlNfUkVBQ0hFRF9FUlJPUiwKICAKICsgIC8qIEF0dGVtcHQgdG8gbG9hZCBhIGNvcmUgZmlsZSBh cyBleGVjdXRhYmxlLiAgKi8KICsgIElTX0NPUkVfRVJST1IsCgpkaWZmIC0tZ2l0IGEvZ2RiLTYu Ni1idWlsZGlkLWxvY2F0ZS1zb2xpYi1taXNzaW5nLWlkcy5wYXRjaCBiL2dkYi02LjYtYnVpbGRp ZC1sb2NhdGUtc29saWItbWlzc2luZy1pZHMucGF0Y2gKaW5kZXggOWFkN2ZjYi4uNWQzMTRlMCAx MDA2NDQKLS0tIGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1zb2xpYi1taXNzaW5nLWlkcy5wYXRj aAorKysgYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXNvbGliLW1pc3NpbmctaWRzLnBhdGNoCkBA IC05LDEyICs5LDEyIEBAIEluZGV4OiBnZGItNy41LjUwLjIwMTMwMzEwL2dkYi9zb2xpYi1zdnI0 LmMKIC0Jc3RydWN0IGVsZl9idWlsZF9pZCAqYnVpbGRfaWQ7CiArCXN0cnVjdCBlbGZfYnVpbGRf aWQgKmJ1aWxkX2lkID0gTlVMTDsKICAKLSAJc3RybmNweSAobmV3LT5zb19vcmlnaW5hbF9uYW1l LCBidWZmZXIsIFNPX05BTUVfTUFYX1BBVEhfU0laRSAtIDEpOwotIAluZXctPnNvX29yaWdpbmFs X25hbWVbU09fTkFNRV9NQVhfUEFUSF9TSVpFIC0gMV0gPSAnXDAnOworIAlzdHJuY3B5IChuZXdv YmotPnNvX29yaWdpbmFsX25hbWUsIGJ1ZmZlciwgU09fTkFNRV9NQVhfUEFUSF9TSVpFIC0gMSk7 CisgCW5ld29iai0+c29fb3JpZ2luYWxfbmFtZVtTT19OQU1FX01BWF9QQVRIX1NJWkUgLSAxXSA9 ICdcMCc7CiAgCS8qIE1heSBnZXQgb3ZlcndyaXR0ZW4gYmVsb3cuICAqLwotIAlzdHJjcHkgKG5l dy0+c29fbmFtZSwgbmV3LT5zb19vcmlnaW5hbF9uYW1lKTsKKyAJc3RyY3B5IChuZXdvYmotPnNv X25hbWUsIG5ld29iai0+c29fb3JpZ2luYWxfbmFtZSk7CiAgCi0tCWJ1aWxkX2lkID0gYnVpbGRf aWRfYWRkcl9nZXQgKG5ldy0+bG1faW5mby0+bF9sZCk7CistCWJ1aWxkX2lkID0gYnVpbGRfaWRf YWRkcl9nZXQgKG5ld29iai0+bG1faW5mby0+bF9sZCk7CiArCS8qIEluIHRoZSBjYXNlIHRoZSBt YWluIGV4ZWN1dGFibGUgd2FzIGZvdW5kIGFjY29yZGluZyB0byBpdHMgYnVpbGQtaWQKICsJICAg KGZyb20gYSBjb3JlIGZpbGUpIHByZXZlbnQgbG9hZGluZyBhIGRpZmZlcmVudCBidWlsZCBvZiBh IGxpYnJhcnkKICsJICAgd2l0aCBhY2NpZGVudGFsbHkgdGhlIHNhbWUgU09fTkFNRS4KQEAgLTI4 LDcgKzI4LDcgQEAgSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAzMTAvZ2RiL3NvbGliLXN2cjQuYwog KwkgICB0byB0aGUgb25seSBleGlzdGluZyBmaWxlIGxvYWRlZCB0aGF0IHRpbWUgLSB0aGUgZXhl Y3V0YWJsZS4gICovCiArCWlmIChzeW1maWxlX29iamZpbGUgIT0gTlVMTAogKwkgICAgJiYgKHN5 bWZpbGVfb2JqZmlsZS0+ZmxhZ3MgJiBPQkpGX0JVSUxEX0lEX0NPUkVfTE9BREVEKSAhPSAwKQot KwkgIGJ1aWxkX2lkID0gYnVpbGRfaWRfYWRkcl9nZXQgKG5ldy0+bG1faW5mby0+bF9sZCk7Cisr CSAgYnVpbGRfaWQgPSBidWlsZF9pZF9hZGRyX2dldCAobmV3b2JqLT5sbV9pbmZvLT5sX2xkKTsK ICAJaWYgKGJ1aWxkX2lkICE9IE5VTEwpCiAgCSAgewogIAkgICAgY2hhciAqbmFtZSwgKmJ1aWxk X2lkX2ZpbGVuYW1lOwpAQCAtMzcsNyArMzcsNyBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDMx MC9nZGIvc29saWItc3ZyNC5jCiAgCSAgICAgIH0KICAJICAgIGVsc2UKIC0JICAgICAgewotLQkJ ZGVidWdfcHJpbnRfbWlzc2luZyAobmV3LT5zb19uYW1lLCBidWlsZF9pZF9maWxlbmFtZSk7Cist CQlkZWJ1Z19wcmludF9taXNzaW5nIChuZXdvYmotPnNvX25hbWUsIGJ1aWxkX2lkX2ZpbGVuYW1l KTsKIC0KIC0JCS8qIEluIHRoZSBjYXNlIHRoZSBtYWluIGV4ZWN1dGFibGUgd2FzIGZvdW5kIGFj Y29yZGluZyB0bwogLQkJICAgaXRzIGJ1aWxkLWlkIChmcm9tIGEgY29yZSBmaWxlKSBwcmV2ZW50 IGxvYWRpbmcKQEAgLTUxLDkgKzUxLDkgQEAgSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAzMTAvZ2Ri L3NvbGliLXN2cjQuYwogLQkJaWYgKHN5bWZpbGVfb2JqZmlsZSAhPSBOVUxMCiAtCQkgICAgJiYg KHN5bWZpbGVfb2JqZmlsZS0+ZmxhZ3MKIC0JCQkmIE9CSkZfQlVJTERfSURfQ09SRV9MT0FERUQp ICE9IDApCi0tCQkgIG5ldy0+c29fbmFtZVswXSA9IDA7CistCQkgIG5ld29iai0+c29fbmFtZVsw XSA9IDA7CiAtCSAgICAgIH0KLSsJICAgICAgZGVidWdfcHJpbnRfbWlzc2luZyAobmV3LT5zb19u YW1lLCBidWlsZF9pZF9maWxlbmFtZSk7CisrCSAgICAgIGRlYnVnX3ByaW50X21pc3NpbmcgKG5l d29iai0+c29fbmFtZSwgYnVpbGRfaWRfZmlsZW5hbWUpOwogIAogIAkgICAgeGZyZWUgKGJ1aWxk X2lkX2ZpbGVuYW1lKTsKICAJICAgIHhmcmVlIChidWlsZF9pZCk7CgpkaWZmIC0tZ2l0IGEvZ2Ri LTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaCBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gK aW5kZXggNzFkZTRkMC4uZTkyOGVkMCAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0 ZS5wYXRjaAorKysgYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCkBAIC0xLDcgKzEsNyBA QAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvcmVsb3cuYworSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL2NvcmVsb3cuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAu MjAxNDEyMjgub3JpZy9nZGIvY29yZWxvdy5jCTIwMTUtMDEtMDMgMjM6MTE6NTQuMDE4MjcwMDkw ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29yZWxvdy5jCTIwMTUtMDEtMDMg MjM6MTI6MDguNjkxMzQ5NDU0ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dk Yi9jb3JlbG93LmMJMjAxNS0wNS0zMSAxNjozODo1NS4xMjMxMTIyMjcgKzAyMDAKKysrKyBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi9jb3JlbG93LmMJMjAxNS0wNS0zMSAxNjozODo1Ny42MDExMzAz NjYgKzAyMDAKIEBAIC00NSw2ICs0NSwxMCBAQAogICNpbmNsdWRlICJnZGJfYmZkLmgiCiAgI2lu Y2x1ZGUgImNvbXBsZXRlci5oIgpAQCAtNjcsNyArNjcsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvY29yZWxvdy5jCiAgLyogVGhpcyByb3V0aW5lIG9wZW5zIGFuZCBzZXRzIHVw IHRoZSBjb3JlIGZpbGUgYmZkLiAgKi8KICAKICBzdGF0aWMgdm9pZAotQEAgLTQwNSw2ICs0NTYs MTQgQEAgY29yZV9vcGVuIChjb25zdCBjaGFyICphcmcsIGludCBmcm9tX3R0eQorQEAgLTQwNCw2 ICs0NTUsMTQgQEAgY29yZV9vcGVuIChjb25zdCBjaGFyICphcmcsIGludCBmcm9tX3R0eQogIAlz d2l0Y2hfdG9fdGhyZWFkICh0aHJlYWQtPnB0aWQpOwogICAgICB9CiAgCkBAIC04Miw3ICs4Miw3 IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb3JlbG93LmMKICAgIHBvc3RfY3Jl YXRlX2luZmVyaW9yICgmY29yZV9vcHMsIGZyb21fdHR5KTsKICAKICAgIC8qIE5vdyBnbyB0aHJv dWdoIHRoZSB0YXJnZXQgc3RhY2sgbG9va2luZyBmb3IgdGhyZWFkcyBzaW5jZSB0aGVyZQotQEAg LTEwMzUsNCArMTA5NCwxMSBAQCBfaW5pdGlhbGl6ZV9jb3JlbG93ICh2b2lkKQorQEAgLTEwNTgs NCArMTExNywxMSBAQCBfaW5pdGlhbGl6ZV9jb3JlbG93ICh2b2lkKQogICAgaW5pdF9jb3JlX29w cyAoKTsKICAKICAgIGFkZF90YXJnZXRfd2l0aF9jb21wbGV0ZXIgKCZjb3JlX29wcywgZmlsZW5h bWVfY29tcGxldGVyKTsKQEAgLTk0LDExICs5NCwxMSBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvY29yZWxvdy5jCiArCQkJICAgTlVMTCwgTlVMTCwgTlVMTCwKICsJCQkgICAmc2V0 bGlzdCwgJnNob3dsaXN0KTsKICB9Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZG9j L2dkYi50ZXhpbmZvCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZG9jL2dkYi50ZXhp bmZvCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9kb2MvZ2Ri LnRleGluZm8JMjAxNS0wMS0wMyAyMzoxMTo1NC4wMTgyNzAwOTAgKzAxMDAKLSsrKyBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxNS0wMS0wMyAyMzoxMjowOC43MDEz NDk1MDkgKzAxMDAKLUBAIC0xNzkzMCw2ICsxNzkzMCwyNyBAQCBpbmZvcm1hdGlvbiBmaWxlcy4K Ky0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE1LTA1 LTMxIDE2OjM4OjU1LjEzNzExMjMzMCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L2RvYy9nZGIudGV4aW5mbwkyMDE1LTA1LTMxIDE2OjM4OjU3LjYxMjEzMDQ0NyArMDIwMAorQEAg LTE4MjU0LDYgKzE4MjU0LDI3IEBAIGluZm9ybWF0aW9uIGZpbGVzLgogIAogIEBlbmQgdGFibGUK ICAKQEAgLTEyNiwxMCArMTI2LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9k b2MvZ2RiLnRleGluZm8KICBAY2luZGV4IEBjb2Rley5nbnVfZGVidWdsaW5rfSBzZWN0aW9ucwog IEBjaW5kZXggZGVidWcgbGluayBzZWN0aW9ucwogIEEgZGVidWcgbGluayBpcyBhIHNwZWNpYWwg c2VjdGlvbiBvZiB0aGUgZXhlY3V0YWJsZSBmaWxlIG5hbWVkCi1JbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvc29saWItc3ZyNC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv c29saWItc3ZyNC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dk Yi9zb2xpYi1zdnI0LmMJMjAxNS0wMS0wMyAyMzoxMTo1NC4wMTgyNzAwOTAgKzAxMDAKLSsrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zb2xpYi1zdnI0LmMJMjAxNS0wMS0wMyAyMzoxMjowOC43 MDIzNDk1MTQgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3NvbGliLXN2 cjQuYwkyMDE1LTA1LTMxIDE2OjM4OjU1LjE0MjExMjM2NiArMDIwMAorKysrIGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL3NvbGliLXN2cjQuYwkyMDE1LTA1LTMxIDE2OjQwOjMzLjU5MzgxOTcwMiAr MDIwMAogQEAgLTQ1LDYgKzQ1LDcgQEAKICAjaW5jbHVkZSAiYXV4di5oIgogICNpbmNsdWRlICJn ZGJfYmZkLmgiCkBAIC0xMzgsMjIgKzEzOCwyMiBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvc29saWItc3ZyNC5jCiAgCiAgc3RhdGljIHN0cnVjdCBsaW5rX21hcF9vZmZzZXRzICpz dnI0X2ZldGNoX2xpbmtfbWFwX29mZnNldHMgKHZvaWQpOwogIHN0YXRpYyBpbnQgc3ZyNF9oYXZl X2xpbmtfbWFwX29mZnNldHMgKHZvaWQpOwotQEAgLTEzNjYsOSArMTM2Nyw1MiBAQCBzdnI0X3Jl YWRfc29fbGlzdCAoQ09SRV9BRERSIGxtLCBDT1JFX0FECitAQCAtMTM3OSw5ICsxMzgwLDUyIEBA IHN2cjRfcmVhZF9zb19saXN0IChDT1JFX0FERFIgbG0sIENPUkVfQUQKICAJICBjb250aW51ZTsK ICAJfQogIAotLSAgICAgIHN0cm5jcHkgKG5ldy0+c29fbmFtZSwgYnVmZmVyLCBTT19OQU1FX01B WF9QQVRIX1NJWkUgLSAxKTsKLS0gICAgICBuZXctPnNvX25hbWVbU09fTkFNRV9NQVhfUEFUSF9T SVpFIC0gMV0gPSAnXDAnOwotLSAgICAgIHN0cmNweSAobmV3LT5zb19vcmlnaW5hbF9uYW1lLCBu ZXctPnNvX25hbWUpOworLSAgICAgIHN0cm5jcHkgKG5ld29iai0+c29fbmFtZSwgYnVmZmVyLCBT T19OQU1FX01BWF9QQVRIX1NJWkUgLSAxKTsKKy0gICAgICBuZXdvYmotPnNvX25hbWVbU09fTkFN RV9NQVhfUEFUSF9TSVpFIC0gMV0gPSAnXDAnOworLSAgICAgIHN0cmNweSAobmV3b2JqLT5zb19v cmlnaW5hbF9uYW1lLCBuZXdvYmotPnNvX25hbWUpOwogKyAgICAgIHsKICsJc3RydWN0IGVsZl9i dWlsZF9pZCAqYnVpbGRfaWQ7CiArCi0rCXN0cm5jcHkgKG5ldy0+c29fb3JpZ2luYWxfbmFtZSwg YnVmZmVyLCBTT19OQU1FX01BWF9QQVRIX1NJWkUgLSAxKTsKLSsJbmV3LT5zb19vcmlnaW5hbF9u YW1lW1NPX05BTUVfTUFYX1BBVEhfU0laRSAtIDFdID0gJ1wwJzsKKysJc3RybmNweSAobmV3b2Jq LT5zb19vcmlnaW5hbF9uYW1lLCBidWZmZXIsIFNPX05BTUVfTUFYX1BBVEhfU0laRSAtIDEpOwor KwluZXdvYmotPnNvX29yaWdpbmFsX25hbWVbU09fTkFNRV9NQVhfUEFUSF9TSVpFIC0gMV0gPSAn XDAnOwogKwkvKiBNYXkgZ2V0IG92ZXJ3cml0dGVuIGJlbG93LiAgKi8KLSsJc3RyY3B5IChuZXct PnNvX25hbWUsIG5ldy0+c29fb3JpZ2luYWxfbmFtZSk7CisrCXN0cmNweSAobmV3b2JqLT5zb19u YW1lLCBuZXdvYmotPnNvX29yaWdpbmFsX25hbWUpOwogKwotKwlidWlsZF9pZCA9IGJ1aWxkX2lk X2FkZHJfZ2V0IChuZXctPmxtX2luZm8tPmxfbGQpOworKwlidWlsZF9pZCA9IGJ1aWxkX2lkX2Fk ZHJfZ2V0IChuZXdvYmotPmxtX2luZm8tPmxfbGQpOwogKwlpZiAoYnVpbGRfaWQgIT0gTlVMTCkK ICsJICB7CiArCSAgICBjaGFyICpuYW1lLCAqYnVpbGRfaWRfZmlsZW5hbWU7CkBAIC0xNjMsMTMg KzE2MywxMyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc29saWItc3ZyNC5jCiAr CSAgICBuYW1lID0gYnVpbGRfaWRfdG9fZmlsZW5hbWUgKGJ1aWxkX2lkLCAmYnVpbGRfaWRfZmls ZW5hbWUpOwogKwkgICAgaWYgKG5hbWUgIT0gTlVMTCkKICsJICAgICAgewotKwkJc3RybmNweSAo bmV3LT5zb19uYW1lLCBuYW1lLCBTT19OQU1FX01BWF9QQVRIX1NJWkUgLSAxKTsKLSsJCW5ldy0+ c29fbmFtZVtTT19OQU1FX01BWF9QQVRIX1NJWkUgLSAxXSA9ICdcMCc7CisrCQlzdHJuY3B5IChu ZXdvYmotPnNvX25hbWUsIG5hbWUsIFNPX05BTUVfTUFYX1BBVEhfU0laRSAtIDEpOworKwkJbmV3 b2JqLT5zb19uYW1lW1NPX05BTUVfTUFYX1BBVEhfU0laRSAtIDFdID0gJ1wwJzsKICsJCXhmcmVl IChuYW1lKTsKICsJICAgICAgfQogKwkgICAgZWxzZQogKwkgICAgICB7Ci0rCQlkZWJ1Z19wcmlu dF9taXNzaW5nIChuZXctPnNvX25hbWUsIGJ1aWxkX2lkX2ZpbGVuYW1lKTsKKysJCWRlYnVnX3By aW50X21pc3NpbmcgKG5ld29iai0+c29fbmFtZSwgYnVpbGRfaWRfZmlsZW5hbWUpOwogKwogKwkJ LyogSW4gdGhlIGNhc2UgdGhlIG1haW4gZXhlY3V0YWJsZSB3YXMgZm91bmQgYWNjb3JkaW5nIHRv CiArCQkgICBpdHMgYnVpbGQtaWQgKGZyb20gYSBjb3JlIGZpbGUpIHByZXZlbnQgbG9hZGluZwpA QCAtMTgzLDcgKzE4Myw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zb2xpYi1z dnI0LmMKICsJCWlmIChzeW1maWxlX29iamZpbGUgIT0gTlVMTAogKwkJICAgICYmIChzeW1maWxl X29iamZpbGUtPmZsYWdzCiArCQkJJiBPQkpGX0JVSUxEX0lEX0NPUkVfTE9BREVEKSAhPSAwKQot KwkJICBuZXctPnNvX25hbWVbMF0gPSAwOworKwkJICBuZXdvYmotPnNvX25hbWVbMF0gPSAwOwog KwkgICAgICB9CiArCiArCSAgICB4ZnJlZSAoYnVpbGRfaWRfZmlsZW5hbWUpOwpAQCAtMTk0LDEx ICsxOTQsMTEgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3NvbGliLXN2cjQuYwog ICAgICAgIHhmcmVlIChidWZmZXIpOwogIAogICAgICAgIC8qIElmIHRoaXMgZW50cnkgaGFzIG5v IG5hbWUsIG9yIGl0cyBuYW1lIG1hdGNoZXMgdGhlIG5hbWUKLUluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9lbGZyZWFkLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9lbGZy ZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2VsZnJl YWQuYwkyMDE1LTAxLTAzIDIzOjExOjU0LjAxODI3MDA5MCArMDEwMAotKysrIGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2VsZnJlYWQuYwkyMDE1LTAxLTAzIDIzOjEyOjA4LjcwMzM0OTUxOSArMDEw MAotQEAgLTEzMzksOSArMTMzOSwxMCBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9lbGZyZWFkLmMJMjAx NS0wNS0zMSAxNjozODo1NS4xNDMxMTIzNzQgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi9lbGZyZWFkLmMJMjAxNS0wNS0zMSAxNjozODo1Ny42MTQxMzA0NjIgKzAyMDAKK0BAIC0x MzQxLDkgKzEzNDEsMTAgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZp bAogIAkgICAmJiBvYmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlID09IE5VTEwKICAJICAg JiYgb2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZV9iYWNrbGluayA9PSBOVUxMKQogICAg ICB7CkBAIC0yMTEsNyArMjExLDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2Vs ZnJlYWQuYwogIAogICAgICAgIGlmIChkZWJ1Z2ZpbGUgPT0gTlVMTCkKICAJZGVidWdmaWxlID0g ZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2RlYnVnbGluayAob2JqZmlsZSk7Ci1AQCAtMTM1 NSw2ICsxMzU2LDEyIEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWwK K0BAIC0xMzU3LDYgKzEzNTgsMTIgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0IG9iamZpbGUg Km9iamZpbAogIAkgIHN5bWJvbF9maWxlX2FkZF9zZXBhcmF0ZSAoYWJmZCwgZGVidWdmaWxlLCBz eW1maWxlX2ZsYWdzLCBvYmpmaWxlKTsKICAJICBkb19jbGVhbnVwcyAoY2xlYW51cCk7CiAgCX0K QEAgLTIyNCwxMSArMjI0LDExIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9lbGZy ZWFkLmMKICAgICAgfQogIH0KICAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zeW1m aWxlLmgKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zeW1maWxlLmgKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3N5bWZpbGUuaAkyMDE1LTAxLTAz IDIzOjExOjU0LjAxODI3MDA5MCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3N5 bWZpbGUuaAkyMDE1LTAxLTAzIDIzOjEyOjA4LjcwMzM0OTUxOSArMDEwMAotQEAgLTU3NCw2ICs1 NzQsMTAgQEAgdm9pZCBleHBhbmRfc3ltdGFic19tYXRjaGluZyAoZXhwYW5kX3N5bQorLS0tIGdk Yi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvc3ltZmlsZS5oCTIwMTUtMDUtMzEgMTY6Mzg6NTUu MTQzMTEyMzc0ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvc3ltZmlsZS5oCTIw MTUtMDUtMzEgMTY6Mzg6NTcuNjE0MTMwNDYyICswMjAwCitAQCAtNTg0LDYgKzU4NCwxMCBAQCB2 b2lkIGV4cGFuZF9zeW10YWJzX21hdGNoaW5nIChleHBhbmRfc3ltCiAgdm9pZCBtYXBfc3ltYm9s X2ZpbGVuYW1lcyAoc3ltYm9sX2ZpbGVuYW1lX2Z0eXBlICpmdW4sIHZvaWQgKmRhdGEsCiAgCQkJ ICAgaW50IG5lZWRfZnVsbG5hbWUpOwogIApAQCAtMjM5LDExICsyMzksMTEgQEAgSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3N5bWZpbGUuaAogIC8qIEZyb20gZHdhcmYycmVhZC5jICov CiAgCiAgLyogTmFtZXMgZm9yIGEgZHdhcmYyIGRlYnVnZ2luZyBzZWN0aW9uLiAgVGhlIGZpZWxk IE5PUk1BTCBpcyB0aGUgbm9ybWFsCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVz dHN1aXRlL2xpYi9nZGIuZXhwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1 aXRlL2xpYi9nZGIuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmln L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxNS0wMS0wMyAyMzoxMTo1NC4wMTgyNzAwOTAg KzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJ MjAxNS0wMS0wMyAyMzoxMjowOC43MDQzNDk1MjUgKzAxMDAKLUBAIC0xNTIyLDYgKzE1MjIsMTYg QEAgcHJvYyBkZWZhdWx0X2dkYl9zdGFydCB7IH0geworLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAu b3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTUtMDUtMzEgMTY6Mzg6NTUuMTQ1MTEy Mzg4ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2xpYi9nZGIu ZXhwCTIwMTUtMDUtMzEgMTY6Mzg6NTcuNjE1MTMwNDY5ICswMjAwCitAQCAtMTU3Myw2ICsxNTcz LDE2IEBAIHByb2MgZGVmYXVsdF9nZGJfc3RhcnQgeyB9IHsKICAJICAgIHdhcm5pbmcgIkNvdWxk bid0IHNldCB0aGUgd2lkdGggdG8gMC4iCiAgCX0KICAgICAgfQpAQCAtMjYwLDEwICsyNjAsMTAg QEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAog ICAgICByZXR1cm4gMAogIH0KICAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0 c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv dGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAu MjAxNDEyMjgub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDE1LTAxLTAz IDIzOjExOjU0LjAxODI3MDA5MCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rl c3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNS0wMS0wMyAyMzoxMjowOC43MDUzNDk1MzAg KzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWkt c3VwcG9ydC5leHAJMjAxNS0wNS0zMSAxNjozODo1NS4xNDYxMTIzOTYgKzAyMDAKKysrKyBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTUtMDUt MzEgMTY6Mzg6NTcuNjE2MTMwNDc2ICswMjAwCiBAQCAtMjE0LDYgKzIxNCwxNiBAQCBwcm9jIGRl ZmF1bHRfbWlfZ2RiX3N0YXJ0IHsgYXJncyB9IHsKICAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNl dCB0aGUgd2lkdGggdG8gMC4iCiAgCX0KQEAgLTI4MSwxMCArMjgxLDEwIEBAIEluZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCiAgICAgICMg SWYgYWxsb3dpbmcgdGhlIGluZmVyaW9yIHRvIGhhdmUgaXRzIG93biBQVFkgdGhlbiBhc3NpZ24g dGhlIGluZmVyaW9yCiAgICAgICMgaXRzIG93biB0ZXJtaW5hbCBkZXZpY2UgaGVyZS4KICAgICAg aWYgeyAkc2VwYXJhdGVfaW5mZXJpb3JfcHR5IH0gewotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL29iamZpbGVzLmgKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9vYmpmaWxl cy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9vYmpmaWxl cy5oCTIwMTUtMDEtMDMgMjM6MTE6NTQuMDE4MjcwMDkwICswMTAwCi0rKysgZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvb2JqZmlsZXMuaAkyMDE1LTAxLTAzIDIzOjEyOjA4LjcwNTM0OTUzMCArMDEw MAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvb2JqZmlsZXMuaAkyMDE1LTA1LTMx IDE2OjM4OjU1LjE0NzExMjQwMyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL29i amZpbGVzLmgJMjAxNS0wNS0zMSAxNjozODo1Ny42MTYxMzA0NzYgKzAyMDAKIEBAIC00NTksNiAr NDU5LDEwIEBAIHN0cnVjdCBvYmpmaWxlCiAgCiAgI2RlZmluZSBPQkpGX05PVF9GSUxFTkFNRSAo MSA8PCA2KQpAQCAtMjk2LDEwICsyOTYsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL29iamZpbGVzLmgKICAvKiBEZWNsYXJhdGlvbnMgZm9yIGZ1bmN0aW9ucyBkZWZpbmVkIGlu IG9iamZpbGVzLmMgKi8KICAKICBleHRlcm4gc3RydWN0IG9iamZpbGUgKmFsbG9jYXRlX29iamZp bGUgKGJmZCAqLCBjb25zdCBjaGFyICpuYW1lLCBpbnQpOwotSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAKK0luZGV4OiBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv Y29yZWZpbGUuZXhwCTIwMTUtMDEtMDMgMjM6MTE6NTQuMDE4MjcwMDkwICswMTAwCi0rKysgZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAkyMDE1 LTAxLTAzIDIzOjEyOjA4LjcwNTM0OTUzMCArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAu b3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAkyMDE1LTA1LTMxIDE2OjM4 OjU1LjE0NzExMjQwMyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAJMjAxNS0wNS0zMSAxNjozODo1Ny42MTYxMzA0NzYgKzAy MDAKIEBAIC0yOTMsMyArMjkzLDMzIEBAIGdkYl90ZXN0X211bHRpcGxlICJjb3JlLWZpbGUgJGNv cmVmaWxlIgogIAlwYXNzICR0ZXN0CiAgICAgIH0KQEAgLTMzNCwxNCArMzM0LDE0IEBAIEluZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhw CiArICAgIGdkYl90ZXN0ICJpbmZvIGZpbGVzIiAiTG9jYWwgZXhlYyBmaWxlOlxyXG5cWyBcdFxd KmBbc3RyaW5nX3RvX3JlZ2V4cCAkZGVidWdkaXIvJGJ1aWxkaWRdJywgZmlsZSB0eXBlIC4qIgog KyAgICBwYXNzICR3aG9sZXRlc3QKICt9Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv YnVpbGQtaWQuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2J1aWxkLWlkLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2J1aWxkLWlkLmMJMjAx NS0wMS0wMyAyMzoxMTo1NC4wMTgyNzAwOTAgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9idWlsZC1pZC5jCTIwMTUtMDEtMDMgMjM6MTI6NDAuNzkyNTIzMDg1ICswMTAwCi1AQCAt MjYsMTEgKzI2LDY0IEBACi0gI2luY2x1ZGUgInN5bWZpbGUuaCIKKy0tLSBnZGItNy45LjUwLjIw MTUwNTIwLm9yaWcvZ2RiL2J1aWxkLWlkLmMJMjAxNS0wNS0zMSAxNjozODo1NS4xNDgxMTI0MTAg KzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9idWlsZC1pZC5jCTIwMTUtMDUtMzEg MTY6NDU6MzUuMDI1NzIyMTQyICswMjAwCitAQCAtMjcsMTEgKzI3LDYzIEBACiAgI2luY2x1ZGUg Im9iamZpbGVzLmgiCiAgI2luY2x1ZGUgImZpbGVuYW1lcy5oIgorICNpbmNsdWRlICJnZGJjb3Jl LmgiCiArI2luY2x1ZGUgImxpYmJmZC5oIgogKyNpbmNsdWRlICJnZGJjb3JlLmgiCiArI2luY2x1 ZGUgImdkYmNtZC5oIgpAQCAtMzU5LDggKzM1OSw2IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9idWlsZC1pZC5jCiArICBmcHJpbnRmX2ZpbHRlcmVkIChmaWxlLCBfKCJWZXJib3Np dHkgbGV2ZWwgb2YgdGhlIGJ1aWxkLWlkIGxvY2F0b3IgaXMgJXMuXG4iKSwKICsJCSAgICB2YWx1 ZSk7CiArfQotIAotLS8qIFNlZSBidWlsZC1pZC5oLiAgKi8KICsvKiBMb2NhdGUgTlRfR05VX0JV SUxEX0lEIGFuZCByZXR1cm4gaXRzIG1hdGNoaW5nIGRlYnVnIGZpbGVuYW1lLgogKyAgIEZJWE1F OiBOT1RFIGRlY29kaW5nIHNob3VsZCBiZSB1bmlmaWVkIHdpdGggdGhlIEJGRCBjb3JlIG5vdGVz IGRlY29kaW5nLiAgKi8KICsKQEAgLTM4OSwyMyArMzg3LDIzIEBAIEluZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9idWlsZC1pZC5jCiArCSAgcmV0dmFsID0geG1hbGxvYyAoc2l6ZW9mICpy ZXR2YWwgLSAxICsgc2l6ZSk7CiArCSAgcmV0dmFsLT5zaXplID0gc2l6ZTsKICsJICBtZW1jcHkg KHJldHZhbC0+ZGF0YSwgZGF0YSwgc2l6ZSk7Ci0gCisrCiArCSAgcmV0dXJuIHJldHZhbDsKICsJ fQogKyAgICAgIHAgPSBkZXNjZGF0YSArIEJGRF9BTElHTiAoZGVzY3N6LCA0KTsKICsgICAgfQog KyAgcmV0dXJuIE5VTEw7CiArfQotKwotKy8qIFNlZSBidWlsZC1pZC5oLiAgKi8KLSsgCisgCisg LyogU2VlIGJ1aWxkLWlkLmguICAqLworIAogIGNvbnN0IHN0cnVjdCBlbGZfYnVpbGRfaWQgKgog LWJ1aWxkX2lkX2JmZF9nZXQgKGJmZCAqYWJmZCkKICtidWlsZF9pZF9iZmRfc2hkcl9nZXQgKGJm ZCAqYWJmZCkKICB7CiAgICBpZiAoIWJmZF9jaGVja19mb3JtYXQgKGFiZmQsIGJmZF9vYmplY3Qp CiAgICAgICAgfHwgYmZkX2dldF9mbGF2b3VyIChhYmZkKSAhPSBiZmRfdGFyZ2V0X2VsZl9mbGF2 b3VyCi1AQCAtNDQsNiArOTcsMzQ4IEBAIGJ1aWxkX2lkX2JmZF9nZXQgKGJmZCAqYWJmZCkKK0BA IC00NSw2ICs5NywzNDggQEAgYnVpbGRfaWRfYmZkX2dldCAoYmZkICphYmZkKQogICAgcmV0dXJu IGVsZl90ZGF0YSAoYWJmZCktPmJ1aWxkX2lkOwogIH0KICAKQEAgLTc1NCw3ICs3NTIsNyBAQCBJ bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYnVpbGQtaWQuYwogIC8qIFNlZSBidWlsZC1p ZC5oLiAgKi8KICAKICBpbnQKLUBAIC01Miw3ICs0NDcsNyBAQCBidWlsZF9pZF92ZXJpZnkgKGJm ZCAqYWJmZCwgc2l6ZV90IGNoZWNrCitAQCAtNTMsNyArNDQ3LDcgQEAgYnVpbGRfaWRfdmVyaWZ5 IChiZmQgKmFiZmQsIHNpemVfdCBjaGVjawogICAgY29uc3Qgc3RydWN0IGVsZl9idWlsZF9pZCAq Zm91bmQ7CiAgICBpbnQgcmV0dmFsID0gMDsKICAKQEAgLTc2Myw3ICs3NjEsNyBAQCBJbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYnVpbGQtaWQuYwogIAogICAgaWYgKGZvdW5kID09IE5V TEwpCiAgICAgIHdhcm5pbmcgKF8oIkZpbGUgXCIlc1wiIGhhcyBubyBidWlsZC1pZCwgZmlsZSBz a2lwcGVkIiksCi1AQCAtNjcsMjAgKzQ2Miw1NiBAQCBidWlsZF9pZF92ZXJpZnkgKGJmZCAqYWJm ZCwgc2l6ZV90IGNoZWNrCitAQCAtNjgsMjAgKzQ2Miw1NiBAQCBidWlsZF9pZF92ZXJpZnkgKGJm ZCAqYWJmZCwgc2l6ZV90IGNoZWNrCiAgICByZXR1cm4gcmV0dmFsOwogIH0KICAKQEAgLTgyNCw3 ICs4MjIsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYnVpbGQtaWQuYwogIAog ICAgLyogS2VlcCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHNvIHRoYXQgREVCVUdfRklMRV9ESVJF Q1RPUlkgYmVpbmcgIiIgd2lsbAogICAgICAgY2F1c2UgIi8uYnVpbGQtaWQvLi4uIiBsb29rdXBz LiAgKi8KLUBAIC05Myw4ICs1MjQsMTEgQEAgYnVpbGRfaWRfdG9fZGVidWdfYmZkIChzaXplX3Qg YnVpbGRfaWRfbAorQEAgLTk0LDggKzUyNCwxMSBAQCBidWlsZF9pZF90b19kZWJ1Z19iZmQgKHNp emVfdCBidWlsZF9pZF9sCiAgICAgICAgc2l6ZV90IGRlYnVnZGlyX2xlbiA9IHN0cmxlbiAoZGVi dWdkaXIpOwogICAgICAgIGNvbnN0IGdkYl9ieXRlICpkYXRhID0gYnVpbGRfaWQ7CiAgICAgICAg c2l6ZV90IHNpemUgPSBidWlsZF9pZF9sZW47CkBAIC04MzcsNyArODM1LDcgQEAgSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2J1aWxkLWlkLmMKICAKICAgICAgICBtZW1jcHkgKGxpbmss IGRlYnVnZGlyLCBkZWJ1Z2Rpcl9sZW4pOwogICAgICAgIHMgPSAmbGlua1tkZWJ1Z2Rpcl9sZW5d OwotQEAgLTEwOCw0NCArNTQyLDI4MiBAQCBidWlsZF9pZF90b19kZWJ1Z19iZmQgKHNpemVfdCBi dWlsZF9pZF9sCitAQCAtMTA5LDQ0ICs1NDIsMjgyIEBAIGJ1aWxkX2lkX3RvX2RlYnVnX2JmZCAo c2l6ZV90IGJ1aWxkX2lkX2wKICAJKnMrKyA9ICcvJzsKICAgICAgICB3aGlsZSAoc2l6ZS0tID4g MCkKICAJcyArPSBzcHJpbnRmIChzLCAiJTAyeCIsICh1bnNpZ25lZCkgKmRhdGErKyk7CkBAIC04 ODQsNyArODgyLDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2J1aWxkLWlkLmMK ICsJICAgIGNvbnRpbnVlOwogKwogKwkgIC8qIFdlIGV4cGVjdCB0byBiZSBzaWxlbnQgb24gdGhl IG5vbi1leGlzdGluZyBmaWxlcy4gICovCi0rCSAgYWJmZCA9IGdkYl9iZmRfb3Blbl9tYXliZV9y ZW1vdGUgKGZpbGVuYW1lKTsKKysJICBhYmZkID0gZ2RiX2JmZF9vcGVuIChmaWxlbmFtZSwgZ251 dGFyZ2V0LCAtMSk7CiArCSAgaWYgKGFiZmQgPT0gTlVMTCkKICsJICAgIHsKICsJICAgICAgeGZy ZWUgKGZpbGVuYW1lKTsKQEAgLTg5Nyw3ICs4OTUsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvYnVpbGQtaWQuYwogKwkgICAgYnJlYWs7CiAgCiAtICAgICAgLyogV2UgZXhwZWN0 IHRvIGJlIHNpbGVudCBvbiB0aGUgbm9uLWV4aXN0aW5nIGZpbGVzLiAgKi8KLS0gICAgICBhYmZk ID0gZ2RiX2JmZF9vcGVuX21heWJlX3JlbW90ZSAoZmlsZW5hbWUpOworLSAgICAgIGFiZmQgPSBn ZGJfYmZkX29wZW4gKGZpbGVuYW1lLCBnbnV0YXJnZXQsIC0xKTsKIC0gICAgICBpZiAoYWJmZCA9 PSBOVUxMKQogLQljb250aW51ZTsKICsJICBnZGJfYmZkX3VucmVmIChhYmZkKTsKQEAgLTExMzcs NyArMTEzNSw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9idWlsZC1pZC5jCiAg ICAgICAgLyogUHJldmVudCBsb29waW5nIG9uIGEgc3RyaXBwZWQgLmRlYnVnIGZpbGUuICAqLwog ICAgICAgIGlmIChhYmZkICE9IE5VTEwKICAJICAmJiBmaWxlbmFtZV9jbXAgKGJmZF9nZXRfZmls ZW5hbWUgKGFiZmQpLAotQEAgLTE2NSwzICs4MzcsMjEgQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19m aWxlX2J5X2J1aWxkaWQgKHN0cgorQEAgLTE2NiwzICs4MzcsMjEgQEAgZmluZF9zZXBhcmF0ZV9k ZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0cgogICAgICB9CiAgICByZXR1cm4gTlVMTDsKICB9CkBA IC0xMTU5LDEwICsxMTU3LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9idWls ZC1pZC5jCiArCiArICBvYnNlcnZlcl9hdHRhY2hfZXhlY3V0YWJsZV9jaGFuZ2VkIChkZWJ1Z19w cmludF9leGVjdXRhYmxlX2NoYW5nZWQpOwogK30KLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9idWlsZC1pZC5oCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYnVpbGQtaWQu aAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvYnVpbGQtaWQu aAkyMDE1LTAxLTAzIDIzOjExOjU0LjAxODI3MDA5MCArMDEwMAotKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2J1aWxkLWlkLmgJMjAxNS0wMS0wMyAyMzoxMjowOC43MDYzNDk1MzYgKzAxMDAK Ky0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2J1aWxkLWlkLmgJMjAxNS0wNS0zMSAx NjozODo1NS4xNDkxMTI0MTggKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9idWls ZC1pZC5oCTIwMTUtMDUtMzEgMTY6Mzg6NTcuNjE4MTMwNDkxICswMjAwCiBAQCAtMjAsOSArMjAs MTAgQEAKICAjaWZuZGVmIEJVSUxEX0lEX0gKICAjZGVmaW5lIEJVSUxEX0lEX0gKQEAgLTExOTcs MTEgKzExOTUsMTEgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2J1aWxkLWlkLmgK ICsJCQkJCSAgICAgICBjaGFyICoqYnVpbGRfaWRfZmlsZW5hbWVfcmV0dXJuKTsKICAKICAjZW5k aWYgLyogQlVJTERfSURfSCAqLwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJm MnJlYWQuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMnJlYWQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIw MTUtMDEtMDMgMjM6MTE6NTQuMDE4MjcwMDkwICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvZHdhcmYycmVhZC5jCTIwMTUtMDEtMDMgMjM6MTI6MDguNzExMzQ5NTYzICswMTAwCi1A QCAtMjQ0Myw3ICsyNDQzLDcgQEAgZHdhcmYyX2dldF9kd3pfZmlsZSAodm9pZCkKKy0tLSBnZGIt Ny45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTA1LTMxIDE2OjM4OjU1 LjE1NjExMjQ2OSArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMnJlYWQu YwkyMDE1LTA1LTMxIDE2OjM4OjU3LjYyMzEzMDUyOCArMDIwMAorQEAgLTI1MDQsNyArMjUwNCw3 IEBAIGR3YXJmMl9nZXRfZHd6X2ZpbGUgKHZvaWQpCiAgICAgIH0KICAKICAgIGlmIChkd3pfYmZk ID09IE5VTEwpCkBAIC0xMjEwLDIwICsxMjA4LDIwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9kd2FyZjJyZWFkLmMKICAKICAgIGlmIChkd3pfYmZkID09IE5VTEwpCiAgICAgIGVy cm9yIChfKCJjb3VsZCBub3QgZmluZCAnLmdudV9kZWJ1Z2FsdGxpbmsnIGZpbGUgZm9yICVzIiks Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYworSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5dGhvbi9weS1vYmpmaWxlLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3B5dGhvbi9weS1vYmpmaWxlLmMJ MjAxNS0wMS0wMyAyMzoxMTo1NC4wMTgyNzAwOTAgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9weXRob24vcHktb2JqZmlsZS5jCTIwMTUtMDEtMDMgMjM6MTI6MDguNzEyMzQ5NTY4 ICswMTAwCi1AQCAtMTE4LDcgKzExOCw3IEBAIG9iamZweV9nZXRfYnVpbGRfaWQgKFB5T2JqZWN0 ICpzZWxmLCB2b2kKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3B5dGhvbi9weS1v YmpmaWxlLmMJMjAxNS0wNS0zMSAxNjozODo1NS4xNTcxMTI0NzYgKzAyMDAKKysrKyBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi9weXRob24vcHktb2JqZmlsZS5jCTIwMTUtMDUtMzEgMTY6Mzg6NTcu NjIzMTMwNTI4ICswMjAwCitAQCAtMTQwLDcgKzE0MCw3IEBAIG9iamZweV9nZXRfYnVpbGRfaWQg KFB5T2JqZWN0ICpzZWxmLCB2b2kKICAKLSAgIFRSWV9DQVRDSCAoZXhjZXB0LCBSRVRVUk5fTUFT S19BTEwpCisgICBUUlkKICAgICAgewogLSAgICAgIGJ1aWxkX2lkID0gYnVpbGRfaWRfYmZkX2dl dCAob2JqZmlsZS0+b2JmZCk7CiArICAgICAgYnVpbGRfaWQgPSBidWlsZF9pZF9iZmRfc2hkcl9n ZXQgKG9iamZpbGUtPm9iZmQpOwogICAgICB9Ci0gICBHREJfUFlfSEFORExFX0VYQ0VQVElPTiAo ZXhjZXB0KTsKLSAKLUBAIC00NjcsNyArNDY3LDcgQEAgb2JqZnB5X2xvb2t1cF9vYmpmaWxlX2J5 X2J1aWxkX2lkIChjb25zdAorICAgQ0FUQ0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tfQUxMKQorICAg ICB7CitAQCAtNTQ5LDcgKzU0OSw3IEBAIG9iamZweV9sb29rdXBfb2JqZmlsZV9ieV9idWlsZF9p ZCAoY29uc3QKICAgICAgICAvKiBEb24ndCByZXR1cm4gc2VwYXJhdGUgZGVidWcgZmlsZXMuICAq LwogICAgICAgIGlmIChvYmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlX2JhY2tsaW5rICE9 IE5VTEwpCiAgCWNvbnRpbnVlOwoKZGlmZiAtLWdpdCBhL2dkYi02LjYtYnoyMzUxOTctZm9yay1k ZXRhY2gtaW5mby5wYXRjaCBiL2dkYi02LjYtYnoyMzUxOTctZm9yay1kZXRhY2gtaW5mby5wYXRj aAppbmRleCA4ZGYyOTI0Li4yNmM5MjhkIDEwMDY0NAotLS0gYS9nZGItNi42LWJ6MjM1MTk3LWZv cmstZGV0YWNoLWluZm8ucGF0Y2gKKysrIGIvZ2RiLTYuNi1iejIzNTE5Ny1mb3JrLWRldGFjaC1p bmZvLnBhdGNoCkBAIC0zLDEwICszLDEwIEBACiAJUG9ydCB0byBHREItNi44cHJlLgogCVJlbW92 ZSB0aGUgYFsnIGNoYXJhY3RlciBmcm9tIHRoZSBHREItNi44IGRlZmF1bHQgbWVzc2FnZS4KIAot SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3JrLWRl dGFjaC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUzMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2ZvcmstZGV0YWNoLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvZm9yay1kZXRhY2guYwkyMDE1LTAxLTA2IDE5OjMxOjQwLjcwMzk4ODUzNCAr MDEwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3Jr LWRldGFjaC5jCTIwMTUtMDUtMzEgMTg6MjM6NDkuMDA4NDUwNzE2ICswMjAwCiBAQCAtMCwwICsx LDU3IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dl ci4KICsKQEAgLTY1LDEwICs2NSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2ZvcmstZGV0YWNoLmMKICsgICAgfQogKyAgcmV0dXJuIDA7CiAr fQotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3Jr LWRldGFjaC5leHAKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTMxL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvZm9yay1kZXRhY2guZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2ZvcmstZGV0YWNoLmV4cAkyMDE1LTAxLTA2IDE5OjMxOjQwLjcw NDk4ODUzOCArMDEwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9mb3JrLWRldGFjaC5leHAJMjAxNS0wNS0zMSAxODoyMzo0OS4wMDg0NTA3MTYgKzAyMDAK IEBAIC0wLDAgKzEsMzYgQEAKICsjIENvcHlyaWdodCAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgogKwpAQCAtMTA2LDE2ICsxMDYsMTYgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3JrLWRldGFjaC5leHAKICtnZGJfdGVzdCAi IiBcCiArICAgICAgICAgIkRldGFjaGluZyBhZnRlciBmb3JrIGZyb20gY2hpbGQgcHJvY2Vzcy4q XFxcW0luZmVyaW9yIC4qIGV4aXRlZCBub3JtYWxseVxcXF0iIFwKICsgICAgICAgICAiSW5mbyBt ZXNzYWdlIGNhdWdodCIKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pbmZydW4uYwor SW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL2luZnJ1bi5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9pbmZydW4uYwkyMDE1LTAxLTA2IDE5OjMxOjQw LjI2Mjk4NjY0NCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2luZnJ1bi5jCTIw MTUtMDEtMDYgMTk6NDM6NTQuODY1MjE5MDk2ICswMTAwCi1AQCAtNDU2LDcgKzQ1Niw3IEBAIGhv bGRpbmcgdGhlIGNoaWxkIHN0b3BwZWQuICBUcnkgXCJzZXQgZGUKKy0tLSBnZGItNy45LjUwLjIw MTUwNTMxLm9yaWcvZ2RiL2luZnJ1bi5jCTIwMTUtMDUtMzEgMTg6MjM6NDEuNzAzNDA1NjE3ICsw MjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUzMS9nZGIvaW5mcnVuLmMJMjAxNS0wNS0zMSAxODoy Mzo0OS4wMTE0NTA3MzUgKzAyMDAKK0BAIC00NDMsNyArNDQzLDcgQEAgaG9sZGluZyB0aGUgY2hp bGQgc3RvcHBlZC4gIFRyeSBcInNldCBkZQogIAkgICAgICByZW1vdmVfYnJlYWtwb2ludHNfcGlk IChwdGlkX2dldF9waWQgKGluZmVyaW9yX3B0aWQpKTsKICAJICAgIH0KICAKIC0JICBpZiAoaW5m b192ZXJib3NlIHx8IGRlYnVnX2luZnJ1bikKICsJICBpZiAoMSAvKiBGZWRvcmEgQnVnIDIzNTE5 NyAqLyB8fCBpbmZvX3ZlcmJvc2UgfHwgZGVidWdfaW5mcnVuKQogIAkgICAgewotIAkgICAgICB0 YXJnZXRfdGVybWluYWxfb3Vyc19mb3Jfb3V0cHV0ICgpOwotIAkgICAgICBmcHJpbnRmX2ZpbHRl cmVkIChnZGJfc3RkbG9nLAorIAkgICAgICAvKiBFbnN1cmUgdGhhdCB3ZSBoYXZlIGEgcHJvY2Vz cyBwdGlkLiAgKi8KKyAJICAgICAgcHRpZF90IHByb2Nlc3NfcHRpZCA9IHBpZF90b19wdGlkIChw dGlkX2dldF9waWQgKGNoaWxkX3B0aWQpKTsKCmRpZmYgLS1naXQgYS9nZGItNi42LXNjaGVkdWxl cl9sb2NraW5nLXN0ZXAtc3ctd2F0Y2hwb2ludHMyLnBhdGNoIGIvZ2RiLTYuNi1zY2hlZHVsZXJf bG9ja2luZy1zdGVwLXN3LXdhdGNocG9pbnRzMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDIzYTdmZi4uMDAwMDAwMAotLS0gYS9nZGItNi42LXNjaGVkdWxlcl9sb2NraW5n LXN0ZXAtc3ctd2F0Y2hwb2ludHMyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjE3ICswLDAg QEAKLTIwMDctMDYtMjUgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KLQotCSogaW5mZXJpb3IuaCAoZW51bSByZXN1bWVfc3RlcCk6IE5ldyBkZWZpbml0aW9uLgot CShyZXN1bWUpOiBDaGFuZ2UgU1RFUCBwYXJhbWV0ZXIgdHlwZSB0byBFTlVNIFJFU1VNRV9TVEVQ LgotCSogaW5mcnVuLmMgKHJlc3VtZSk6IExpa2V3aXNlLiAgRXh0ZW5kIGRlYnVnIHByaW50aW5n IG9mIHRoZSBTVEVQCi0JcGFyYW1ldGVyLiAgTG9jayB0aGUgc2NoZWR1bGVyIG9ubHkgZm9yIGlu dGVudGlvbmFsIHN0ZXBwaW5nLgotCShwcm9jZWVkKTogUmVwbGFjZSB0aGUgdmFyaWFibGUgT05F U1RFUCB3aXRoIHRyaXN0YXRlIFJFU1VNRV9TVEVQLgotCVNldCB0aGUgdGhpcmQgUkVTVU1FX1NU RVAgc3RhdGUgYWNjb3JkaW5nIHRvIEJQU1RBVF9TSE9VTERfU1RFUC4KLQkoY3VycmVudGx5X3N0 ZXBwaW5nKTogQ2hhbmdlIHRoZSByZXR1cm4gdHlwZSB0byBFTlVNIFJFU1VNRV9TVEVQLgotCVJl dHVybiBSRVNVTUVfU1RFUF9ORUVERUQgaWYgaXQgaXMganVzdCBkdWUgdG8gQlBTVEFUX1NIT1VM RF9TVEVQLgotCSogbGludXgtbmF0LmMgKHNlbGVjdF9zaW5nbGVzdGVwX2x3cF9jYWxsYmFjayk6 IERvIG5vdCBmb2N1cyBvbgotCXRoZSBzb2Z0d2FyZSB3YXRjaHBvaW50IGV2ZW50cy4KLQkqIGxp bnV4LW5hdC5oIChzdHJ1Y3QgbHdwX2luZm8pOiBSZWRlY2xhcmUgU1RFUCBhcyBFTlVNIFJFU1VN RV9TVEVQLgotCi0yMDA3LTEwLTE5ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJl ZGhhdC5jb20+Ci0KLQkqIGluZnJ1bi5jIChwcm9jZWVkKTogUkVTVU1FX1NURVAgaW5pdGlhbGl6 ZWQgZm9yIG5vbi1zdGVwcGluZy4KLQlSRVNVTUVfU1RFUCBzZXQgYWNjb3JkaW5nIHRvIFNURVAg b25seSBhdCB0aGUgZW5kIG9mIHRoZSBmdW5jdGlvbi4KLQotMjAwOC0wMi0yNCAgSmFuIEtyYXRv Y2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JUG9ydCB0byBHREItNi44cHJl LgotCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvaW5mcnVuLmMKLT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2luZnJ1bi5jCTIwMTUtMDEtMjUgMDg6 MzY6MTYuNjUxNzE2MTU5ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvaW5mcnVu LmMJMjAxNS0wMS0yNSAwODozNjoyNi40OTE3NTg1NzEgKzAxMDAKLUBAIC04Niw3ICs4Niw3IEBA IHN0YXRpYyB2b2lkIGZvbGxvd19pbmZlcmlvcl9yZXNldF9icmVha3AKLSBzdGF0aWMgdm9pZCBz ZXRfc2NoZWRsb2NrX2Z1bmMgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSwKLSAJCQkJc3RydWN0 IGNtZF9saXN0X2VsZW1lbnQgKmMpOwotIAotLXN0YXRpYyBpbnQgY3VycmVudGx5X3N0ZXBwaW5n IChzdHJ1Y3QgdGhyZWFkX2luZm8gKnRwKTsKLStzdGF0aWMgZW51bSByZXN1bWVfc3RlcCBjdXJy ZW50bHlfc3RlcHBpbmcgKHN0cnVjdCB0aHJlYWRfaW5mbyAqdHApOwotIAotIHN0YXRpYyB2b2lk IHhkYl9oYW5kbGVfY29tbWFuZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KTsKLSAKLUBAIC0x OTk4LDcgKzE5OTgsNyBAQCB1c2VyX3Zpc2libGVfcmVzdW1lX3B0aWQgKGludCBzdGVwKQotICAg ICAgIHJlc3VtZV9wdGlkID0gaW5mZXJpb3JfcHRpZDsKLSAgICAgfQotICAgZWxzZSBpZiAoKHNj aGVkdWxlcl9tb2RlID09IHNjaGVkbG9ja19vbikKLS0JICAgfHwgKHNjaGVkdWxlcl9tb2RlID09 IHNjaGVkbG9ja19zdGVwICYmIHN0ZXApKQotKwkgICB8fCAoc2NoZWR1bGVyX21vZGUgPT0gc2No ZWRsb2NrX3N0ZXAgJiYgc3RlcCA9PSBSRVNVTUVfU1RFUF9VU0VSKSkKLSAgICAgewotICAgICAg IC8qIFVzZXItc2V0dGFibGUgJ3NjaGVkdWxlcicgbW9kZSByZXF1aXJlcyBzb2xvIHRocmVhZCBy ZXN1bWUuICAqLwotICAgICAgIHJlc3VtZV9wdGlkID0gaW5mZXJpb3JfcHRpZDsKLUBAIC0yMDIy LDcgKzIwMjIsNyBAQCB1c2VyX3Zpc2libGVfcmVzdW1lX3B0aWQgKGludCBzdGVwKQotICAgIFNU RVAgbm9uemVybyBpZiB3ZSBzaG91bGQgc3RlcCAoemVybyB0byBjb250aW51ZSBpbnN0ZWFkKS4K LSAgICBTSUcgaXMgdGhlIHNpZ25hbCB0byBnaXZlIHRoZSBpbmZlcmlvciAoemVybyBmb3Igbm9u ZSkuICAqLwotIHZvaWQKLS1yZXN1bWUgKGludCBzdGVwLCBlbnVtIGdkYl9zaWduYWwgc2lnKQot K3Jlc3VtZSAoZW51bSByZXN1bWVfc3RlcCBzdGVwLCBlbnVtIGdkYl9zaWduYWwgc2lnKQotIHsK LSAgIHN0cnVjdCBjbGVhbnVwICpvbGRfY2xlYW51cHMgPSBtYWtlX2NsZWFudXAgKHJlc3VtZV9j bGVhbnVwcywgMCk7Ci0gICBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlID0gZ2V0X2N1cnJlbnRf cmVnY2FjaGUgKCk7Ci1AQCAtMjA2NCw5ICsyMDY0LDEzIEBAIHJlc3VtZSAoaW50IHN0ZXAsIGVu dW0gZ2RiX3NpZ25hbCBzaWcpCi0gCi0gICBpZiAoZGVidWdfaW5mcnVuKQotICAgICBmcHJpbnRm X3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCi0tCQkJImluZnJ1bjogcmVzdW1lIChzdGVwPSVkLCBz aWduYWw9JXMpLCAiCi0rCQkJImluZnJ1bjogcmVzdW1lIChzdGVwPSVzLCBzaWduYWw9JXMpLCAi Ci0gCQkJInRyYXBfZXhwZWN0ZWQ9JWQsIGN1cnJlbnQgdGhyZWFkIFslc10gYXQgJXNcbiIsCi0t CQkJc3RlcCwgZ2RiX3NpZ25hbF90b19zeW1ib2xfc3RyaW5nIChzaWcpLAotKwkJCShzdGVwID09 IFJFU1VNRV9TVEVQX0NPTlRJTlVFCi0rCQkJID8gIlJFU1VNRV9TVEVQX0NPTlRJTlVFIgotKwkJ CSA6IChzdGVwID09IFJFU1VNRV9TVEVQX1VTRVIgPyAiUkVTVU1FX1NURVBfVVNFUiIKLSsJCQkJ CQkgICAgIDogIlJFU1VNRV9TVEVQX05FRURFRCIpKSwKLSsJCQlnZGJfc2lnbmFsX3RvX3N5bWJv bF9zdHJpbmcgKHNpZyksCi0gCQkJdHAtPmNvbnRyb2wudHJhcF9leHBlY3RlZCwKLSAJCQl0YXJn ZXRfcGlkX3RvX3N0ciAoaW5mZXJpb3JfcHRpZCksCi0gCQkJcGFkZHJlc3MgKGdkYmFyY2gsIHBj KSk7Ci1AQCAtMjU0Myw2ICsyNTQ3LDcgQEAgcHJvY2VlZCAoQ09SRV9BRERSIGFkZHIsIGVudW0g Z2RiX3NpZ25hbAotICAgc3RydWN0IHRocmVhZF9pbmZvICp0cDsKLSAgIENPUkVfQUREUiBwYzsK LSAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICphc3BhY2U7Ci0rICBlbnVtIHJlc3VtZV9zdGVwIHJl c3VtZV9zdGVwID0gUkVTVU1FX1NURVBfQ09OVElOVUU7Ci0gCi0gICAvKiBJZiB3ZSdyZSBzdG9w cGVkIGF0IGEgZm9yay92Zm9yaywgZm9sbG93IHRoZSBicmFuY2ggc2V0IGJ5IHRoZQotICAgICAg InNldCBmb2xsb3ctZm9yay1tb2RlIiBjb21tYW5kOyBvdGhlcndpc2UsIHdlJ2xsIGp1c3QgcHJv Y2VlZAotQEAgLTI1ODYsMTMgKzI1OTEsMTkgQEAgcHJvY2VlZCAoQ09SRV9BRERSIGFkZHIsIGVu dW0gZ2RiX3NpZ25hbAotIAkgICBOb3RlLCB3ZSBkb24ndCBkbyB0aGlzIGluIHJldmVyc2UsIGJl Y2F1c2Ugd2Ugd29uJ3QKLSAJICAgYWN0dWFsbHkgYmUgZXhlY3V0aW5nIHRoZSBicmVha3BvaW50 IGluc24gYW55d2F5LgotIAkgICBXZSdsbCBiZSAodW4tKWV4ZWN1dGluZyB0aGUgcHJldmlvdXMg aW5zdHJ1Y3Rpb24uICAqLwotKwl7Ci0gCXRwLT5zdGVwcGluZ19vdmVyX2JyZWFrcG9pbnQgPSAx OwotKwlyZXN1bWVfc3RlcCA9IFJFU1VNRV9TVEVQX1VTRVI7Ci0rCX0KLSAgICAgICBlbHNlIGlm IChnZGJhcmNoX3NpbmdsZV9zdGVwX3Rocm91Z2hfZGVsYXlfcCAoZ2RiYXJjaCkKLSAJICAgICAg ICYmIGdkYmFyY2hfc2luZ2xlX3N0ZXBfdGhyb3VnaF9kZWxheSAoZ2RiYXJjaCwKLSAJCQkJCQkg ICAgIGdldF9jdXJyZW50X2ZyYW1lICgpKSkKLSAJLyogV2Ugc3RlcHBlZCBvbnRvIGFuIGluc3Ry dWN0aW9uIHRoYXQgbmVlZHMgdG8gYmUgc3RlcHBlZAotIAkgICBhZ2FpbiBiZWZvcmUgcmUtaW5z ZXJ0aW5nIHRoZSBicmVha3BvaW50LCBkbyBzby4gICovCi0rCXsKLSAJdHAtPnN0ZXBwaW5nX292 ZXJfYnJlYWtwb2ludCA9IDE7Ci0rCXJlc3VtZV9zdGVwID0gUkVTVU1FX1NURVBfVVNFUjsKLSsJ fQotICAgICB9Ci0gICBlbHNlCi0gICAgIHsKLUBAIC0yNjQ3LDYgKzI2NTgsNyBAQCBwcm9jZWVk IChDT1JFX0FERFIgYWRkciwgZW51bSBnZGJfc2lnbmFsCi0gCSAgdHAtPnByZXZfcGMgPSByZWdj YWNoZV9yZWFkX3BjIChnZXRfY3VycmVudF9yZWdjYWNoZSAoKSk7Ci0gCSAgc3dpdGNoX3RvX3Ro cmVhZCAoc3RlcF9vdmVyLT5wdGlkKTsKLSAJICB0cCA9IHN0ZXBfb3ZlcjsKLSsJICByZXN1bWVf c3RlcCA9IFJFU1VNRV9TVEVQX1VTRVI7Ci0gCX0KLSAgICAgfQotIAotQEAgLTI2OTksOSArMjcx MSwxMyBAQCBwcm9jZWVkIChDT1JFX0FERFIgYWRkciwgZW51bSBnZGJfc2lnbmFsCi0gICAgICBj b3JyZWN0bHkgd2hlbiB0aGUgaW5mZXJpb3IgaXMgc3RvcHBlZC4gICovCi0gICB0cC0+cHJldl9w YyA9IHJlZ2NhY2hlX3JlYWRfcGMgKGdldF9jdXJyZW50X3JlZ2NhY2hlICgpKTsKLSAKLSsgIGlm ICh0cC0+Y29udHJvbC50cmFwX2V4cGVjdGVkIHx8IHN0ZXApCi0rICAgIHJlc3VtZV9zdGVwID0g UkVTVU1FX1NURVBfVVNFUjsKLSsgIGlmIChyZXN1bWVfc3RlcCA9PSBSRVNVTUVfU1RFUF9DT05U SU5VRSAmJiBicHN0YXRfc2hvdWxkX3N0ZXAgKCkpCi0rICAgIHJlc3VtZV9zdGVwID0gUkVTVU1F X1NURVBfTkVFREVEOwotKwotICAgLyogUmVzdW1lIGluZmVyaW9yLiAgKi8KLS0gIHJlc3VtZSAo dHAtPmNvbnRyb2wudHJhcF9leHBlY3RlZCB8fCBzdGVwIHx8IGJwc3RhdF9zaG91bGRfc3RlcCAo KSwKLS0JICB0cC0+c3VzcGVuZC5zdG9wX3NpZ25hbCk7Ci0rICByZXN1bWUgKHJlc3VtZV9zdGVw LCB0cC0+c3VzcGVuZC5zdG9wX3NpZ25hbCk7Ci0gCi0gICAvKiBXYWl0IGZvciBpdCB0byBzdG9w IChpZiBub3Qgc3RhbmRhbG9uZSkKLSAgICAgIGFuZCBpbiBhbnkgY2FzZSBkZWNvZGUgd2h5IGl0 IHN0b3BwZWQsIGFuZCBhY3QgYWNjb3JkaW5nbHkuICAqLwotQEAgLTU2ODQsMTQgKzU3MDAsMTYg QEAgc3dpdGNoX2JhY2tfdG9fc3RlcHBlZF90aHJlYWQgKHN0cnVjdCBleAotIAotIC8qIElzIHRo cmVhZCBUUCBpbiB0aGUgbWlkZGxlIG9mIHNpbmdsZS1zdGVwcGluZz8gICovCi0gCi0tc3RhdGlj IGludAotK3N0YXRpYyBlbnVtIHJlc3VtZV9zdGVwCi0gY3VycmVudGx5X3N0ZXBwaW5nIChzdHJ1 Y3QgdGhyZWFkX2luZm8gKnRwKQotIHsKLS0gIHJldHVybiAoKHRwLT5jb250cm9sLnN0ZXBfcmFu Z2VfZW5kCi0rICBpZiAgICAgKCh0cC0+Y29udHJvbC5zdGVwX3JhbmdlX2VuZAotIAkgICAmJiB0 cC0+Y29udHJvbC5zdGVwX3Jlc3VtZV9icmVha3BvaW50ID09IE5VTEwpCi0tCSAgfHwgdHAtPmNv bnRyb2wudHJhcF9leHBlY3RlZAotLQkgIHx8IHRwLT5zdGVwcGVkX2JyZWFrcG9pbnQKLS0JICB8 fCBicHN0YXRfc2hvdWxkX3N0ZXAgKCkpOwotKwkgIHx8IHRwLT5jb250cm9sLnRyYXBfZXhwZWN0 ZWQpCi0rICAgIHJldHVybiBSRVNVTUVfU1RFUF9VU0VSOwotKyAgaWYgICAgICAgIChicHN0YXRf c2hvdWxkX3N0ZXAgKCkpCi0rICAgIHJldHVybiBSRVNVTUVfU1RFUF9ORUVERUQ7Ci0rICByZXR1 cm4gUkVTVU1FX1NURVBfQ09OVElOVUU7Ci0gfQotIAotIC8qIEluZmVyaW9yIGhhcyBzdGVwcGVk IGludG8gYSBzdWJyb3V0aW5lIGNhbGwgd2l0aCBzb3VyY2UgY29kZSB0aGF0Ci1JbmRleDogZ2Ri LTcuOC45MC4yMDE1MDEyNS9nZGIvbGludXgtbmF0LmMKLT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44 LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTUtMDEtMjUgMDg6MzY6MTYuNjUz NzE2MTY4ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbGludXgtbmF0LmMJMjAx NS0wMS0yNSAwODozNjoyNi40OTI3NTg1NzYgKzAxMDAKLUBAIC0yNjQ4LDcgKzI2NDgsMTEgQEAg c3RhdGljIGludAotIHNlbGVjdF9zaW5nbGVzdGVwX2x3cF9jYWxsYmFjayAoc3RydWN0IGx3cF9p bmZvICpscCwgdm9pZCAqZGF0YSkKLSB7Ci0gICBpZiAobHAtPmxhc3RfcmVzdW1lX2tpbmQgPT0g cmVzdW1lX3N0ZXAKLS0gICAgICAmJiBscC0+c3RhdHVzICE9IDApCi0rICAgICAgJiYgbHAtPnN0 YXR1cyAhPSAwCi0rICAgICAgLyogV2UgZG8gbm90IGZvY3VzIG9uIHNvZnR3YXJlIHdhdGNocG9p bnRzIGFzIHdlIHdvdWxkIG5vdCBjYXRjaAotKwkgU1RFUFBJTkdfUEFTVF9TSU5HTEVTVEVQX0JS RUFLUE9JTlQgYnJlYWtwb2ludHMgaW4gc29tZSBvdGhlciB0aHJlYWQKLSsJIGFzIHRoZXkgd291 bGQgcmVtYWluIHBlbmRpbmcgZHVlIHRvIGBQdXNoIGJhY2sgYnJlYWtwb2ludCBmb3IgJXMnLiAg Ki8KLSsgICAgICAmJiBscC0+c3RlcCA9PSBSRVNVTUVfU1RFUF9VU0VSKQotICAgICByZXR1cm4g MTsKLSAgIGVsc2UKLSAgICAgcmV0dXJuIDA7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9n ZGIvbGludXgtbmF0LmgKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcv Z2RiL2xpbnV4LW5hdC5oCTIwMTUtMDEtMjUgMDg6MzY6MTYuNjUzNzE2MTY4ICswMTAwCi0rKysg Z2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbGludXgtbmF0LmgJMjAxNS0wMS0yNSAwODozNjo0NC45 NDg4MzgxMjYgKzAxMDAKLUBAIC0xOCw2ICsxOCw3IEBACi0gICAgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwot IAotICNpbmNsdWRlICJ0YXJnZXQuaCIKLSsjaW5jbHVkZSAiaW5mcnVuLmgiCi0gCi0gI2luY2x1 ZGUgPHNpZ25hbC5oPgotIAotQEAgLTg4LDggKzg5LDggQEAgc3RydWN0IGx3cF9pbmZvCi0gICAg ICBydW5uaW5nIGFuZCBub3Qgc3RlcHBpbmcsIHRoaXMgaXMgMC4gICovCi0gICBDT1JFX0FERFIg c3RvcF9wYzsKLSAKLS0gIC8qIE5vbi16ZXJvIGlmIHdlIHdlcmUgc3RlcHBpbmcgdGhpcyBMV1Au ICAqLwotLSAgaW50IHN0ZXA7Ci0rICAvKiBUaGUga2luZCBvZiBzdGVwcGluZyBvZiB0aGlzIExX UC4gICovCi0rICBlbnVtIHJlc3VtZV9zdGVwIHN0ZXA7Ci0gCi0gICAvKiBUaGUgcmVhc29uIHRo ZSBMV1AgbGFzdCBzdG9wcGVkLCBpZiB3ZSBuZWVkIHRvIHRyYWNrIGl0Ci0gICAgICAoYnJlYWtw b2ludCwgd2F0Y2hwb2ludCwgZXRjLikgICovCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9n ZGIvaW5mcnVuLmgKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2Ri L2luZnJ1bi5oCTIwMTUtMDEtMjUgMDg6MzY6MTYuNjU0NzE2MTcyICswMTAwCi0rKysgZ2RiLTcu OC45MC4yMDE1MDEyNS9nZGIvaW5mcnVuLmgJMjAxNS0wMS0yNSAwODozNjoyNi40OTM3NTg1ODAg KzAxMDAKLUBAIC05Miw3ICs5MiwxNCBAQCBleHRlcm4gdm9pZCBwcm9jZWVkIChDT1JFX0FERFIs IGVudW0gZ2RiCi0gCi0gLyogVGhlIGByZXN1bWUnIHJvdXRpbmUgc2hvdWxkIG9ubHkgYmUgY2Fs bGVkIGluIHNwZWNpYWwgY2lyY3Vtc3RhbmNlcy4KLSAgICBOb3JtYWxseSwgdXNlIGBwcm9jZWVk Jywgd2hpY2ggaGFuZGxlcyBhIGxvdCBvZiBib29ra2VlcGluZy4gICovCi0tZXh0ZXJuIHZvaWQg cmVzdW1lIChpbnQsIGVudW0gZ2RiX3NpZ25hbCk7Ci0rZW51bSByZXN1bWVfc3RlcAotKyAgewot KyAgICAvKiBjdXJyZW50bHlfc3RlcHBpbmcgKCkgc2hvdWxkIHJldHVybiBub24temVybyBmb3Ig bm9uLWNvbnRpbnVlLiAgKi8KLSsgICAgUkVTVU1FX1NURVBfQ09OVElOVUUgPSAwLAotKyAgICBS RVNVTUVfU1RFUF9VU0VSLCAgICAgICAgICAvKiBTdGVwcGluZyBpcyBpbnRlbnRpb25hbCBieSB0 aGUgdXNlci4gICovCi0rICAgIFJFU1VNRV9TVEVQX05FRURFRCAgICAgICAgIC8qIFN0ZXBwaW5n IG9ubHkgZm9yIHNvZnR3YXJlIHdhdGNocG9pbnRzLiAgKi8KLSsgIH07Ci0rZXh0ZXJuIHZvaWQg cmVzdW1lIChlbnVtIHJlc3VtZV9zdGVwLCBlbnVtIGdkYl9zaWduYWwpOwotIAotIC8qIFJldHVy biBhIHB0aWQgcmVwcmVzZW50aW5nIHRoZSBzZXQgb2YgdGhyZWFkcyB0aGF0IHdlIHdpbGwgcHJv Y2VlZCwKLSAgICBpbiB0aGUgcGVyc3BlY3RpdmUgb2YgdGhlIHVzZXIvZnJvbnRlbmQuICAqLwot SW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9zaWdu YWwtd2hpbGUtc3RlcHBpbmctb3Zlci1icC1vdGhlci10aHJlYWQuZXhwCi09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvc2ln bmFsLXdoaWxlLXN0ZXBwaW5nLW92ZXItYnAtb3RoZXItdGhyZWFkLmV4cAkyMDE1LTAxLTI1IDA4 OjM2OjE2LjY1NDcxNjE3MiArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3Rlc3Rz dWl0ZS9nZGIudGhyZWFkcy9zaWduYWwtd2hpbGUtc3RlcHBpbmctb3Zlci1icC1vdGhlci10aHJl YWQuZXhwCTIwMTUtMDEtMjUgMDg6MzY6MjYuNDkzNzU4NTgwICswMTAwCi1AQCAtOTcsNyArOTcs NyBAQCBnZGJfdGVzdCAic2V0IGRlYnVnIGluZnJ1biAxIgotIAotIGdkYl90ZXN0IFwKLSAgICAg InN0ZXAiIFwKLS0gICAgIi4qbmVlZCB0byBzdGVwLW92ZXIuKnJlc3VtZSBcXChzdGVwPTEuKnNp Z25hbCBhcnJpdmVkIHdoaWxlIHN0ZXBwaW5nIG92ZXIgYnJlYWtwb2ludC4qc3dpdGNoaW5nIGJh Y2sgdG8gc3RlcHBlZCB0aHJlYWQuKnN0ZXBwZWQgdG8gYSBkaWZmZXJlbnQgbGluZS4qY2FsbG1l LioiIFwKLSsgICAgIi4qbmVlZCB0byBzdGVwLW92ZXIuKnJlc3VtZSBcXChzdGVwPVJFU1VNRV9T VEVQX1VTRVIuKnNpZ25hbCBhcnJpdmVkIHdoaWxlIHN0ZXBwaW5nIG92ZXIgYnJlYWtwb2ludC4q c3dpdGNoaW5nIGJhY2sgdG8gc3RlcHBlZCB0aHJlYWQuKnN0ZXBwZWQgdG8gYSBkaWZmZXJlbnQg bGluZS4qY2FsbG1lLioiIFwKLSAgICAgInN0ZXAiCi0gCi0gc2V0IGNudF9hZnRlciBbZ2V0X3Zh bHVlICJhcmdzXFskbXlfbnVtYmVyXF0iICJnZXQgY291bnQgYWZ0ZXIgc3RlcCJdCgpkaWZmIC0t Z2l0IGEvZ2RiLTYuOC1hdHRhY2gtc2lnbmFsbGVkLWRldGFjaC1zdG9wcGVkLnBhdGNoIGIvZ2Ri LTYuOC1hdHRhY2gtc2lnbmFsbGVkLWRldGFjaC1zdG9wcGVkLnBhdGNoCmluZGV4IGZkNjYwNzMu LjdjMjYxOGIgMTAwNjQ0Ci0tLSBhL2dkYi02LjgtYXR0YWNoLXNpZ25hbGxlZC1kZXRhY2gtc3Rv cHBlZC5wYXRjaAorKysgYi9nZGItNi44LWF0dGFjaC1zaWduYWxsZWQtZGV0YWNoLXN0b3BwZWQu cGF0Y2gKQEAgLTEsOCArMSw4IEBACi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbGlu dXgtbmF0LmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTMxL2dkYi9saW51eC1uYXQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvbGludXgtbmF0LmMJMjAx NS0wMS0yNSAwODo0Mjo0OS4zODE0MDg4OTkgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMTI1 L2dkYi9saW51eC1uYXQuYwkyMDE1LTAxLTI1IDA4OjQzOjE2LjM3ODUyNTMyMiArMDEwMAotQEAg LTE3NCw2ICsxNzQsOSBAQCBibG9ja2VkLiAgKi8KKy0tLSBnZGItNy45LjUwLjIwMTUwNTMxLm9y aWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTUtMDUtMzEgMTg6MjM6NTYuMTQ3NDk0NzkwICswMjAwCisr KysgZ2RiLTcuOS41MC4yMDE1MDUzMS9nZGIvbGludXgtbmF0LmMJMjAxNS0wNS0zMSAxODoyNDow MS45MzU1MzA3NTkgKzAyMDAKK0BAIC0xNjgsNiArMTY4LDkgQEAgYmxvY2tlZC4gICovCiAgc3Rh dGljIHN0cnVjdCB0YXJnZXRfb3BzICpsaW51eF9vcHM7CiAgc3RhdGljIHN0cnVjdCB0YXJnZXRf b3BzIGxpbnV4X29wc19zYXZlZDsKICAKQEAgLTEyLDcgKzEyLDcgQEAgSW5kZXg6IGdkYi03Ljgu OTAuMjAxNTAxMjUvZ2RiL2xpbnV4LW5hdC5jCiAgLyogVGhlIG1ldGhvZCB0byBjYWxsLCBpZiBh bnksIHdoZW4gYSBuZXcgdGhyZWFkIGlzIGF0dGFjaGVkLiAgKi8KICBzdGF0aWMgdm9pZCAoKmxp bnV4X25hdF9uZXdfdGhyZWFkKSAoc3RydWN0IGx3cF9pbmZvICopOwogIAotQEAgLTkyNCw2ICs5 MjcsNyBAQCBsaW51eF9uYXRfcG9zdF9hdHRhY2hfd2FpdCAocHRpZF90IHB0aWQsCitAQCAtOTgx LDYgKzk4NCw3IEBAIGxpbnV4X25hdF9wb3N0X2F0dGFjaF93YWl0IChwdGlkX3QgcHRpZCwKICAg ICAgICBpZiAoZGVidWdfbGludXhfbmF0KQogIAlmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRs b2csCiAgCQkJICAgICJMTlBBVzogQXR0YWNoaW5nIHRvIGEgc3RvcHBlZCBwcm9jZXNzXG4iKTsK QEAgLTIwLDcgKzIwLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2xpbnV4LW5h dC5jCiAgCiAgICAgICAgLyogVGhlIHByb2Nlc3MgaXMgZGVmaW5pdGVseSBzdG9wcGVkLiAgSXQg aXMgaW4gYSBqb2IgY29udHJvbAogIAkgc3RvcCwgdW5sZXNzIHRoZSBrZXJuZWwgcHJlZGF0ZXMg dGhlIFRBU0tfU1RPUFBFRCAvCi1AQCAtMTQyNCw2ICsxNDI4LDkgQEAgZ2V0X3BlbmRpbmdfc3Rh dHVzIChzdHJ1Y3QgbHdwX2luZm8gKmxwLAorQEAgLTE0NjgsNiArMTQ3Miw5IEBAIGdldF9wZW5k aW5nX3N0YXR1cyAoc3RydWN0IGx3cF9pbmZvICpscCwKICAJCQkgICAgZ2RiX3NpZ25hbF90b19z dHJpbmcgKHNpZ25vKSk7CiAgICAgIH0KICAKQEAgLTMwLDcgKzMwLDcgQEAgSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAxMjUvZ2RiL2xpbnV4LW5hdC5jCiAgICByZXR1cm4gMDsKICB9CiAgCi1AQCAt MTUzNyw2ICsxNTQ0LDggQEAgbGludXhfbmF0X2RldGFjaCAoc3RydWN0IHRhcmdldF9vcHMgKm9w cworQEAgLTE1ODEsNiArMTU4OCw4IEBAIGxpbnV4X25hdF9kZXRhY2ggKHN0cnVjdCB0YXJnZXRf b3BzICpvcHMKICAgICAgfQogICAgZWxzZQogICAgICBsaW51eF9vcHMtPnRvX2RldGFjaCAob3Bz LCBhcmdzLCBmcm9tX3R0eSk7CkBAIC0zOSw3ICszOSw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIw MTUwMTI1L2dkYi9saW51eC1uYXQuYwogIH0KICAKICAvKiBSZXN1bWUgZXhlY3V0aW9uIG9mIHRo ZSBpbmZlcmlvciBwcm9jZXNzLiAgSWYgU1RFUCBpcyBub256ZXJvLAotQEAgLTE3NDEsNiArMTc1 MCwxNCBAQCBsaW51eF9uYXRfcmVzdW1lIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzCitAQCAtMTgz OSw2ICsxODQ4LDE0IEBAIGxpbnV4X25hdF9yZXN1bWUgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMK ICAgICAgICByZXR1cm47CiAgICAgIH0KICAKQEAgLTU0LDcgKzU0LDcgQEAgSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAxMjUvZ2RiL2xpbnV4LW5hdC5jCiAgICBpZiAocmVzdW1lX21hbnkpCiAgICAg IGl0ZXJhdGVfb3Zlcl9sd3BzIChwdGlkLCBsaW51eF9uYXRfcmVzdW1lX2NhbGxiYWNrLCBscCk7 CiAgCi1AQCAtMzcyMyw2ICszNzQwLDggQEAgbGludXhfbmF0X21vdXJuX2luZmVyaW9yIChzdHJ1 Y3QgdGFyZ2V0XworQEAgLTM5MzUsNiArMzk1Miw4IEBAIGxpbnV4X25hdF9tb3Vybl9pbmZlcmlv ciAoc3RydWN0IHRhcmdldF8KICAKICAgIC8qIExldCB0aGUgYXJjaC1zcGVjaWZpYyBuYXRpdmUg Y29kZSBrbm93IHRoaXMgcHJvY2VzcyBpcyBnb25lLiAgKi8KICAgIGxpbnV4X25hdF9mb3JnZXRf cHJvY2VzcyAocGlkKTsKQEAgLTYzLDEwICs2MywxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1 MDEyNS9nZGIvbGludXgtbmF0LmMKICB9CiAgCiAgLyogQ29udmVydCBhIG5hdGl2ZS9ob3N0IHNp Z2luZm8gb2JqZWN0LCBpbnRvL2Zyb20gdGhlIHNpZ2luZm8gaW4gdGhlCi1JbmRleDogZ2RiLTcu OC45MC4yMDE1MDEyNS9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2F0dGFjaC1zdG9wcGVkLmV4 cAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9h dHRhY2gtc3RvcHBlZC5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9y aWcvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBlZC5leHAJMjAxNS0wMS0y NSAwODo0Mjo0OS4zODI0MDg5MDMgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi90 ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwCTIwMTUtMDEtMjUgMDg6NDM6 MTYuMzc5NTI1MzI3ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUzMS5vcmlnL2dkYi90ZXN0 c3VpdGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwCTIwMTUtMDUtMzEgMTg6MjM6NTYu MTQ4NDk0Nzk2ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUzMS9nZGIvdGVzdHN1aXRlL2dk Yi50aHJlYWRzL2F0dGFjaC1zdG9wcGVkLmV4cAkyMDE1LTA1LTMxIDE4OjI0OjAxLjkzNTUzMDc1 OSArMDIwMAogQEAgLTYxLDcgKzYxLDY1IEBAIHByb2MgY29yZWZ1bmMgeyB0aHJlYWR0eXBlIH0g ewogICAgICBnZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGlyLyRzdWJkaXIKICAgICAgZ2RiX2xv YWQgJHtiaW5maWxlfQpAQCAtMTM0LDEyICsxMzQsMTIgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAx NTAxMjUvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBlZC5leHAKICAgICAg ICAgCiAgICAgIHNldCB0ZXN0ICIkdGhyZWFkdHlwZTogYXR0YWNoMiB0byBzdG9wcGVkLCBhZnRl ciBzZXR0aW5nIGZpbGUiCiAgICAgIGdkYl90ZXN0X211bHRpcGxlICJhdHRhY2ggJHRlc3RwaWQi ICIkdGVzdCIgewotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2luZnJ1bi5jCitJbmRl eDogZ2RiLTcuOS41MC4yMDE1MDUzMS9nZGIvaW5mcnVuLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2luZnJ1bi5jCTIwMTUtMDEtMjUgMDg6NDI6NDkuMzg1 NDA4OTE2ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvaW5mcnVuLmMJMjAxNS0w MS0yNSAwODo0MzoxNi4zODE1MjUzMzUgKzAxMDAKLUBAIC02MDAsNiArNjAwLDExIEBAIGhvbGRp bmcgdGhlIGNoaWxkIHN0b3BwZWQuICBUcnkgXCJzZXQgZGUKLSAJCQkJY2hpbGRfcGlkKTsKKy0t LSBnZGItNy45LjUwLjIwMTUwNTMxLm9yaWcvZ2RiL2luZnJ1bi5jCTIwMTUtMDUtMzEgMTg6MjM6 NTYuMTUwNDk0ODA5ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUzMS9nZGIvaW5mcnVuLmMJ MjAxNS0wNS0zMSAxODoyNDowMS45Mzg1MzA3NzggKzAyMDAKK0BAIC01OTEsNiArNTkxLDExIEBA IGhvbGRpbmcgdGhlIGNoaWxkIHN0b3BwZWQuICBUcnkgXCJzZXQgZGUKKyAJCQkJdGFyZ2V0X3Bp ZF90b19zdHIgKHByb2Nlc3NfcHRpZCkpOwogIAkgICAgfQogIAogKwkgIC8qIFdlIHNob3VsZCBj aGVjayBQSURfV0FTX1NUT1BQRUQgYW5kIGRldGFjaCBpdCBzdG9wcGVkIGFjY29yZGluZ2x5LgoK ZGlmZiAtLWdpdCBhL2dkYi02LjgtYno0NTcxODctbGFyZ2VmaWxlLXRlc3QucGF0Y2ggYi9nZGIt Ni44LWJ6NDU3MTg3LWxhcmdlZmlsZS10ZXN0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBkMmQ2Y2Y4Li4wMDAwMDAwCi0tLSBhL2dkYi02LjgtYno0NTcxODctbGFyZ2VmaWxl LXRlc3QucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMDUgKzAsMCBAQAotLS0tIC9kZXYvbnVs bAkyMDA5LTA0LTE5IDE0OjQ5OjAwLjk3NDY0ODM4OSArMDIwMAotKysrIGdkYi02LjgvZ2RiL3Rl c3RzdWl0ZS9nZGIuYXJjaC9pMzg2LWJpYXJjaC1jb3JlLmV4cAkyMDA5LTA0LTE5IDE2OjMwOjEy LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw2MSBAQAotKyMgVGhpcyB0ZXN0Y2FzZSBpcyBw YXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KLSsKLSsjIENvcHlyaWdodCAyMDA5IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9m IHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K LSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyMgRm91 bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAy MTExLTEzMDcsIFVTQS4gIAotKwotKyMgVGVzdCBhYmlsaXR5IHRvIGxvYWQgYW4gZWxmNjQtaTM4 NiBjb3JlIGZpbGUuICBUaGUgcHJvdmlkZWQgY29yZSBmaWxlIHdhcwotKyMgZWxmNjQteDg2NjQg b25lIGJ1dCBpdCBnb3QgYmluYXJ5IHBhdGNoZWQgdG8gaTM4NjoKLSsjIEVsZjMyX0VoZHIuZV9t YWNoaW5lIEAweDEyLi4weDEzCi0rIyBFbGY2NF9FaGRyLmVfbWFjaGluZSBAMHgxMi4uMHgxMwot KyMgI2RlZmluZSBFTV8zODYgICAgICAgICAgIDMgICAgICAgICAgICAgIC8qIEludGVsIDgwMzg2 ICovCi0rIyAjZGVmaW5lIEVNX1g4Nl82NCAgICAgICA2MiAgICAgICAgICAgICAgLyogQU1EIHg4 Ni02NCBhcmNoaXRlY3R1cmUgKi8KLSsjIHBhdGNoIEAweDEyOiAweDNFIC0+IDB4MDMKLSsKLStp ZiB7ICFbaXN0YXJnZXQgImk/ODYtKi0qIl0gJiYgIVtpc3RhcmdldCAieDg2XzY0LSotKiJdIH0g dGhlbiB7Ci0rICAgIHZlcmJvc2UgIlNraXBwaW5nIGkzODYtYmlhcmNoLWNvcmUgdGVzdC4iCi0r ICAgIHJldHVybgotK30KLSsKLStzZXQgdGVzdGZpbGUgImkzODYtYmlhcmNoLWNvcmUiCi0rc2V0 IGNvcmViejJ1dWZpbGUgJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfS5jb3JlLmJ6Mi51 dQotK3NldCBjb3JlZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9LmNvcmUKLSsj IEVudHJ5IHBvaW50IG9mIHRoZSBvcmlnaW5hbCBleGVjdXRhYmxlLgotK3NldCBhZGRyZXNzIDB4 NDAwMDc4Ci0rCi0raWYge1tjYXRjaCAic3lzdGVtIFwidXVkZWNvZGUgLW8gLSAke2NvcmViejJ1 dWZpbGV9IHwgYnppcDIgLWRjID4ke2NvcmVmaWxlfVwiIl0gIT0gMH0gewotKyAgICB1bnRlc3Rl ZCAiZmFpbGVkIHV1ZGVjb2RlIG9yIGJ6aXAyIgotKyAgICByZXR1cm4gLTEKLSt9Ci0rZmlsZSBz dGF0ICR7Y29yZWZpbGV9IGNvcmVzdGF0Ci0raWYgeyRjb3Jlc3RhdChzaXplKSAhPSAxMDI0MDB9 IHsKLSsgICAgdW50ZXN0ZWQgInV1ZGVjb2RlIG9yIGJ6aXAyIHByb2R1Y2UgaW52YWxpZCByZXN1 bHQiCi0rICAgIHJldHVybiAtMQotK30KLSsKLStnZGJfZXhpdAotK2dkYl9zdGFydAotK2dkYl9y ZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgotKwotKyMgV3JvbmdseSBidWlsdCBHREIg Y29tcGxhaW5zIGJ5OgotKyMgIi4uLiIgaXMgbm90IGEgY29yZSBkdW1wOiBGaWxlIGZvcm1hdCBu b3QgcmVjb2duaXplZAotKyMgQXMgdGhlIHByb3ZpZGVkIHRlc3QgY29yZSBoYXMgNjRiaXQgUFJT VEFUVVMgaTM4NiBidWlsdCBHREIgY2Fubm90IHBhcnNlIGl0LgotKyMgVGhpcyBpcyBqdXN0IGEg cHJvYmxlbSBvZiB0aGUgdGVzdCBjYXJlLCByZWFsLXdvcmxkIGVsZjY0LWkzODYgZmlsZSB3aWxs IGhhdmUKLSsjIDMyYml0IFBSU1RBVFVTLiAgT25lIGNhbm5vdCBwcmVwYXJlIGVsZjY0LWkzODYg Y29yZSBmaWxlIGZyb20gZWxmMzItaTM4NiBieQotKyMgb2JqY29weSBhcyBpdCBjb3JydXB0cyB0 aGUgY29yZSBmaWxlIGJleW9uZCBhbGwgcmVjb2duaXRpb24uCi0rIyAiXHJcbkNvcmUgd2FzIGdl bmVyYXRlZCBieSBgXFteXHJcblxdKidcXC5cclxuUHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggc2ln bmFsIDExLCBTZWdtZW50YXRpb24gZmF1bHRcXC5cclxuLioiCi0rZ2RiX3Rlc3QgImNvcmUtZmls ZSAke2NvcmVmaWxlfSIKLSsKLStnZGJfdGVzdCAieC9pICRhZGRyZXNzIiAiXHJcblxbIFx0XF0q JGFkZHJlc3M6XFsgXHRcXSpobHRcWyBcdFxdKiIgIi50ZXh0IGlzIHJlYWRhYmxlIgotLS0tIC9k ZXYvbnVsbAkyMDA5LTA0LTE5IDE0OjQ5OjAwLjk3NDY0ODM4OSArMDIwMAotKysrIGdkYi02Ljgv Z2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9pMzg2LWJpYXJjaC1jb3JlLlMJMjAwOS0wNC0xOSAxNDo1 MjoyOC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMjIgQEAKLSsvKiBUaGlzIHRlc3RjYXNl IGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgotKwotKyAgIENvcHlyaWdodCAyMDA5 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyAgCi0rICAgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsg ICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQotKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0rICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KLSsgIAotKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rICAKLSsgICBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG cmVlIFNvZnR3YXJlCi0rICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3Vp dGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSsgKi8KLSsKLSsJLmdsb2JsIF9z dGFydAotK19zdGFydDoKLSsJaGx0Ci0tLS0gL2Rldi9udWxsCTIwMDktMDQtMTkgMTQ6NDk6MDAu OTc0NjQ4Mzg5ICswMjAwCi0rKysgZ2RiLTYuOC9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2kzODYt YmlhcmNoLWNvcmUuY29yZS5iejIudXUJMjAwOS0wNC0xOSAxNTowMjoxMi4wMDAwMDAwMDAgKzAy MDAKLUBAIC0wLDAgKzEsMTMgQEAKLStiZWdpbiA2MDAgaTM4Ni1iaWFyY2gtY29yZS5jb3JlLmJ6 MgotK00wRUlILjMlITYyOTM2MWBQMVxQYCEpP19fX19fXDknQCI4USk2UDM4MCc5QCcmI2AwREBg YCJgYCUoYGAKLStNQGAjYCIhPChMYCVGIig6JEdIMTM6OkYtKU0mRCZVLEFEOmAtLSMpTTAmRlQw WFI5LS0sKUQ5YFAoUS0mCi0rTSIsKC0mRmBgMDIpJTM4SFRdMFRgJkFIYGBgJ0hAYGBUXj45VCoo LCgiJilTRWA+YDlAK0dQPVssTilLQgotK00nSThCTChMXU41VENZXCVWXS8/REIuQk4qVVonVUBd VE43LV1VSjVcXyUwUVRUPCowODYjJU1IVDdYVkoKLStNOUQiK0MhIjIqTDo4RDFYUEQhYC0tTUAq WFQxSDVSRllOJikoITBQMCM6YEk6OzI7JDVNJlwqOSIwQCU6Ci0rTUtAWFtUKClNKTlON2BEJFZB IV42MyklLDtAOExUYCg3XEsmWzdHO1U6IkI2JyFHRys0NkFMT1pGLjJGLQotK00hQD5DKiU4Nlgk LV1DMmBLRTtIRylVTCg5MTNWUjJHXTBCRDpKPVpfYEdAUyxgVyUuOFJNUy0jNVA6SjAKLStNQUoy XDgmWD9AREU7VUY2OFFITTwsRGAoJzo6SjY1L1M6UEFHKlItMDlbIjhEQkkpJ1ZdWS5bKC9BTSpM Ci0rTSJYX09eVjslRlkuUzZRXUZNPUQzNz41RiwlNC1GMVpGIyxDRkpWVTtIKl5JVDwoJTxWYC4z MiRgSlVbIgotKy9HYDY4P1w3PEQ0WDQpYDAsJD8sYAotK2AKLStlbmQKCmRpZmYgLS1naXQgYS9n ZGItNi44LXF1aXQtbmV2ZXItYWJvcnRzLnBhdGNoIGIvZ2RiLTYuOC1xdWl0LW5ldmVyLWFib3J0 cy5wYXRjaAppbmRleCAzZTYzN2M5Li5mNTczYzEwIDEwMDY0NAotLS0gYS9nZGItNi44LXF1aXQt bmV2ZXItYWJvcnRzLnBhdGNoCisrKyBiL2dkYi02LjgtcXVpdC1uZXZlci1hYm9ydHMucGF0Y2gK QEAgLTUsMTEgKzUsMTEgQEAgU29tZSBvZiB0aGUgdGhyZWFkcyBtYXkgbm90IGJlIHByb3Blcmx5 IFBUUkFDRV9ERVRBQ0hlZCB3aGljaCBodXJ0cyBpZiB0aGV5CiBzaG91bGQgaGF2ZSBiZWVuIGRl dGFjaGVkIHdpdGggU0lHU1RPUCAoYXMgdGhleSBhcmUgYWNjaWRlbnRhbGx5IGxlZnQgcnVubmlu Zwogb24gdGhlIGRlYnVnZ2VyIHRlcm1pbmF0aW9uKS4KIAotSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL2RlZnMuaAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2RlZnMuaAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvZGVmcy5oCTIwMTQt MDYtMTMgMjM6MTA6MTguODc2NjIzMDE4ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvZGVmcy5oCTIwMTQtMDYtMTMgMjM6MTA6NTIuNDUwNjYwNTA1ICswMjAwCi1AQCAtMTc0LDYg KzE3NCw3IEBAIGV4dGVybiB2b2lkIHNldF9xdWl0X2ZsYWcgKHZvaWQpOworLS0tIGdkYi03Ljku NTAuMjAxNTA1MjAub3JpZy9nZGIvZGVmcy5oCTIwMTUtMDUtMzEgMTg6MDY6MjQuNTc5MDAyNzU3 ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZGVmcy5oCTIwMTUtMDUtMzEgMTg6 MDY6MjkuMjUzMDMxNjEzICswMjAwCitAQCAtMTQ1LDYgKzE0NSw3IEBAIGV4dGVybiB2b2lkIHNl dF9xdWl0X2ZsYWcgKHZvaWQpOwogIC8qIEZsYWcgdGhhdCBmdW5jdGlvbiBxdWl0IHNob3VsZCBj YWxsIHF1aXRfZm9yY2UuICAqLwogIGV4dGVybiB2b2xhdGlsZSBpbnQgc3luY19xdWl0X2ZvcmNl X3J1bjsKICAKQEAgLTE3LDEzICsxNywxMyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvZGVmcy5oCiAgZXh0ZXJuIGludCBpbW1lZGlhdGVfcXVpdDsKICAKICBleHRlcm4gdm9pZCBx dWl0ICh2b2lkKTsKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90b3AuYworSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3RvcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45 MC4yMDE0MDYxMy5vcmlnL2dkYi90b3AuYwkyMDE0LTA2LTEzIDIzOjEwOjE1LjkxMDYxOTcxNSAr MDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3RvcC5jCTIwMTQtMDYtMTMgMjM6MTA6 MTguODc3NjIzMDIwICswMjAwCi1AQCAtMTM3OCw3ICsxMzc4LDkgQEAgcXVpdF9mb3JjZSAoY2hh ciAqYXJncywgaW50IGZyb21fdHR5KQotICAgaWYgKGV4LnJlYXNvbiA8IDApIFwKLSAgICAgZXhj ZXB0aW9uX3ByaW50IChnZGJfc3RkZXJyLCBleCkKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9y aWcvZ2RiL3RvcC5jCTIwMTUtMDUtMzEgMTg6MDY6MjQuNTgwMDAyNzYzICswMjAwCisrKysgZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvdG9wLmMJMjAxNS0wNS0zMSAxODowNjoyOS4yNTQwMzE2MTkg KzAyMDAKK0BAIC0xNDYzLDcgKzE0NjMsOSBAQCBxdWl0X2ZvcmNlIChjaGFyICphcmdzLCBpbnQg ZnJvbV90dHkpCisgICBxdC5hcmdzID0gYXJnczsKKyAgIHF0LmZyb21fdHR5ID0gZnJvbV90dHk7 CiAgCiAtICAvKiBXZSB3YW50IHRvIGhhbmRsZSBhbnkgcXVpdCBlcnJvcnMgYW5kIGV4aXQgcmVn YXJkbGVzcy4gICovCiArICAvKiBXZSB3YW50IHRvIGhhbmRsZSBhbnkgcXVpdCBlcnJvcnMgYW5k IGV4aXQgcmVnYXJkbGVzcyBidXQgd2Ugc2hvdWxkIG5ldmVyCkBAIC0zMSwxMiArMzEsMTIgQEAg SW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3RvcC5jCiArICBxdWl0X2ZsYWdfY2xlYW51 cCA9IDE7CiAgCiAgICAvKiBHZXQgb3V0IG9mIHRmaW5kIG1vZGUsIGFuZCBraWxsIG9yIGRldGFj aCBhbGwgaW5mZXJpb3JzLiAgKi8KLSAgIERPX1RSWQotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL3V0aWxzLmMKKyAgIFRSWQorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3V0 aWxzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL3V0aWxz LmMJMjAxNC0wNi0xMyAyMzoxMDoxOC44Nzg2MjMwMjEgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi91dGlscy5jCTIwMTQtMDYtMTMgMjM6MTA6MzguMzA3NjQ0NjUyICswMjAwCi1A QCAtMTI1LDYgKzEyNSwxMSBAQCBpbnQgam9iX2NvbnRyb2w7CistLS0gZ2RiLTcuOS41MC4yMDE1 MDUyMC5vcmlnL2dkYi91dGlscy5jCTIwMTUtMDUtMzEgMTg6MDY6MjQuNTgyMDAyNzc2ICswMjAw CisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdXRpbHMuYwkyMDE1LTA1LTMxIDE4OjA2OjI5 LjI1NTAzMTYyNSArMDIwMAorQEAgLTEyMiw2ICsxMjIsMTEgQEAgaW50IGpvYl9jb250cm9sOwog IAogIGludCBpbW1lZGlhdGVfcXVpdDsKICAKQEAgLTQ4LDExICs0OCwxMSBAQCBJbmRleDogZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvdXRpbHMuYwogIC8qIE5vbnplcm8gbWVhbnMgdGhhdCBzdHJp bmdzIHdpdGggY2hhcmFjdGVyIHZhbHVlcyA+MHg3RiBzaG91bGQgYmUgcHJpbnRlZAogICAgIGFz IG9jdGFsIGVzY2FwZXMuICBaZXJvIG1lYW5zIGp1c3QgcHJpbnQgdGhlIHZhbHVlIChlLmcuIGl0 J3MgYW4KICAgICBpbnRlcm5hdGlvbmFsIGNoYXJhY3RlciwgYW5kIHRoZSB0ZXJtaW5hbCBvciB3 aW5kb3cgY2FuIGNvcGUuKSAgKi8KLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9leHRl bnNpb24uYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2V4dGVuc2lvbi5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9leHRlbnNpb24uYwkyMDE0 LTA2LTEzIDAzOjU5OjM2LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL2V4dGVuc2lvbi5jCTIwMTQtMDYtMTMgMjM6MTE6MzIuNDM0NzA0ODUzICswMjAwCi1AQCAt ODE3LDYgKzgxNyw5IEBAIGNoZWNrX3F1aXRfZmxhZyAodm9pZCkKKy0tLSBnZGItNy45LjUwLjIw MTUwNTIwLm9yaWcvZ2RiL2V4dGVuc2lvbi5jCTIwMTUtMDUtMzEgMTg6MDY6MjQuNTgyMDAyNzc2 ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZXh0ZW5zaW9uLmMJMjAxNS0wNS0z MSAxODowNjoyOS4yNTYwMzE2MzIgKzAyMDAKK0BAIC04MzMsNiArODMzLDkgQEAgY2hlY2tfcXVp dF9mbGFnICh2b2lkKQogICAgaW50IGksIHJlc3VsdCA9IDA7CiAgICBjb25zdCBzdHJ1Y3QgZXh0 ZW5zaW9uX2xhbmd1YWdlX2RlZm4gKmV4dGxhbmc7CiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLTcuMi41 MC1zcGFyYy1hZGQtd29ya2Fyb3VuZC10by1icm9rZW4tZGVidWctZmlsZXMucGF0Y2ggYi9nZGIt Ny4yLjUwLXNwYXJjLWFkZC13b3JrYXJvdW5kLXRvLWJyb2tlbi1kZWJ1Zy1maWxlcy5wYXRjaApp bmRleCBjNTkzN2YzLi4zZTE0YTU3IDEwMDY0NAotLS0gYS9nZGItNy4yLjUwLXNwYXJjLWFkZC13 b3JrYXJvdW5kLXRvLWJyb2tlbi1kZWJ1Zy1maWxlcy5wYXRjaAorKysgYi9nZGItNy4yLjUwLXNw YXJjLWFkZC13b3JrYXJvdW5kLXRvLWJyb2tlbi1kZWJ1Zy1maWxlcy5wYXRjaApAQCAtMSwxMSAr MSwxMSBAQAotSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2dkYl9iZmQuYworSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYl9iZmQuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvZ2RiX2JmZC5jCTIwMTQtMDItMDYgMTc6Mzk6NDYuMzcw MDk2MjkwICswMTAwCi0rKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZ2RiX2JmZC5jCTIwMTQt MDItMDYgMTc6NDA6MTQuOTk2MTI3MjQ3ICswMTAwCi1AQCAtMjksMTIgKzI5LDE0IEBACi0gI2lm ZGVmIEhBVkVfWkxJQl9ICi0gI2luY2x1ZGUgPHpsaWIuaD4KLSAjZW5kaWYKKy0tLSBnZGItNy45 LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2dkYl9iZmQuYwkyMDE1LTA1LTMxIDE3OjAyOjU3Ljc0MjMw MzA4NiArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYl9iZmQuYwkyMDE1LTA1 LTMxIDE3OjAzOjIwLjE0NTQ0NDQ4MCArMDIwMAorQEAgLTI0LDEyICsyNCwxNCBAQAorICNpbmNs dWRlICJoYXNodGFiLmgiCisgI2luY2x1ZGUgImZpbGVzdHVmZi5oIgorICNpbmNsdWRlICJ2ZWMu aCIKICsjaWZuZGVmIF9fc3BhcmNfXwogICNpZmRlZiBIQVZFX01NQVAKICAjaW5jbHVkZSA8c3lz L21tYW4uaD4KQEAgLTE0LDEwICsxNCwxMCBAQCBJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvZ2RiX2JmZC5jCiAgI2VuZGlmCiAgI2VuZGlmCiArI2VuZGlmCisgI2luY2x1ZGUgInRhcmdl dC5oIgorICNpbmNsdWRlICJnZGIvZmlsZWlvLmgiCiAgCi0gdHlwZWRlZiBiZmQgKmJmZHA7Ci0g REVGX1ZFQ19QIChiZmRwKTsKLUBAIC0yMTAsNiArMjEyLDcgQEAgZnJlZV9vbmVfYmZkX3NlY3Rp b24gKGJmZCAqYWJmZCwgYXNlY3RpbworQEAgLTQwOCw2ICs0MTAsNyBAQCBmcmVlX29uZV9iZmRf c2VjdGlvbiAoYmZkICphYmZkLCBhc2VjdGlvCiAgCiAgICBpZiAoc2VjdCAhPSBOVUxMICYmIHNl Y3QtPmRhdGEgIT0gTlVMTCkKICAgICAgewpAQCAtMjUsNyArMjUsNyBAQCBJbmRleDogZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvZ2RiX2JmZC5jCiAgI2lmZGVmIEhBVkVfTU1BUAogICAgICAgIGlm IChzZWN0LT5tYXBfYWRkciAhPSBOVUxMKQogIAl7Ci1AQCAtMjIwLDYgKzIyMyw3IEBAIGZyZWVf b25lX2JmZF9zZWN0aW9uIChiZmQgKmFiZmQsIGFzZWN0aW8KK0BAIC00MTgsNiArNDIxLDcgQEAg ZnJlZV9vbmVfYmZkX3NlY3Rpb24gKGJmZCAqYWJmZCwgYXNlY3RpbwogIAl9CiAgICAgICAgZWxz ZQogICNlbmRpZgpAQCAtMzMsNyArMzMsNyBAQCBJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvZ2RiX2JmZC5jCiAgCXhmcmVlIChzZWN0LT5kYXRhKTsKICAgICAgfQogIH0KLUBAIC0zNzEs NiArMzc1LDcgQEAgZ2RiX2JmZF9tYXBfc2VjdGlvbiAoYXNlY3Rpb24gKnNlY3RwLCBiZgorQEAg LTU2OSw2ICs1NzMsNyBAQCBnZGJfYmZkX21hcF9zZWN0aW9uIChhc2VjdGlvbiAqc2VjdHAsIGJm CiAgICBpZiAoZGVzY3JpcHRvci0+ZGF0YSAhPSBOVUxMKQogICAgICBnb3RvIGRvbmU7CiAgCkBA IC00MSw3ICs0MSw3IEBAIEluZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9nZGJfYmZkLmMK ICAjaWZkZWYgSEFWRV9NTUFQCiAgICBpZiAoIWJmZF9pc19zZWN0aW9uX2NvbXByZXNzZWQgKGFi ZmQsIHNlY3RwKSkKICAgICAgewotQEAgLTQwNSw2ICs0MTAsNyBAQCBnZGJfYmZkX21hcF9zZWN0 aW9uIChhc2VjdGlvbiAqc2VjdHAsIGJmCitAQCAtNjAzLDYgKzYwOCw3IEBAIGdkYl9iZmRfbWFw X3NlY3Rpb24gKGFzZWN0aW9uICpzZWN0cCwgYmYKICAJfQogICAgICB9CiAgI2VuZGlmIC8qIEhB VkVfTU1BUCAqLwoKZGlmZiAtLWdpdCBhL2dkYi1hcmNoZXItcGllLWFkZG9ucy5wYXRjaCBiL2dk Yi1hcmNoZXItcGllLWFkZG9ucy5wYXRjaAppbmRleCA4ZjdjZGVhLi44NWE2OTY3IDEwMDY0NAot LS0gYS9nZGItYXJjaGVyLXBpZS1hZGRvbnMucGF0Y2gKKysrIGIvZ2RiLWFyY2hlci1waWUtYWRk b25zLnBhdGNoCkBAIC0xLDggKzEsOCBAQAotSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2Ri L2dkYnR5cGVzLmgKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9nZGJ0eXBlcy5oCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYwOS5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIw MTQtMDYtMTMgMjA6MjM6NTUuMjEwNjI2NDI3ICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYw OS9nZGIvZ2RidHlwZXMuaAkyMDE0LTA2LTEzIDIwOjI0OjI2LjE1NjY1ODYyMiArMDIwMAotQEAg LTQ0MCw2ICs0NDAsNyBAQCBlbnVtIGZpZWxkX2xvY19raW5kCistLS0gZ2RiLTcuOS41MC4yMDE1 MDUyMC5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIwMTUtMDUtMzEgMTY6NTU6MjkuNzIzNDc1NDg1ICsw MjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZ2RidHlwZXMuaAkyMDE1LTA1LTMxIDE2 OjU1OjQ5LjcxNjYwMTY2OSArMDIwMAorQEAgLTQ2Miw2ICs0NjIsNyBAQCBlbnVtIGZpZWxkX2xv Y19raW5kCiAgICB7CiAgICAgIEZJRUxEX0xPQ19LSU5EX0JJVFBPUywJLyoqPCBiaXRwb3MgKi8K ICAgICAgRklFTERfTE9DX0tJTkRfRU5VTVZBTCwJLyoqPCBlbnVtdmFsICovCkBAIC0xMCwxNSAr MTAsMTUgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2dkYnR5cGVzLmgKICAgICAg RklFTERfTE9DX0tJTkRfUEhZU0FERFIsCS8qKjwgcGh5c2FkZHIgKi8KICAgICAgRklFTERfTE9D X0tJTkRfUEhZU05BTUUsCS8qKjwgcGh5c25hbWUgKi8KICAgICAgRklFTERfTE9DX0tJTkRfRFdB UkZfQkxPQ0sJLyoqPCBkd2FyZl9ibG9jayAqLwotQEAgLTYxNyw2ICs2MTgsNyBAQCBzdHJ1Y3Qg bWFpbl90eXBlCi0gCSAgIGZpZWxkLiAgT3RoZXJ3aXNlLCBwaHlzbmFtZSBpcyB0aGUgbWFuZ2xl ZCBsYWJlbCBvZiB0aGUKLSAJICAgc3RhdGljIGZpZWxkLiAgKi8KK0BAIC01MTMsNiArNTE0LDcg QEAgdW5pb24gZmllbGRfbG9jYXRpb24KKyAgICAgIGZpZWxkLiAgT3RoZXJ3aXNlLCBwaHlzbmFt ZSBpcyB0aGUgbWFuZ2xlZCBsYWJlbCBvZiB0aGUKKyAgICAgIHN0YXRpYyBmaWVsZC4gICovCiAg Ci0rCS8qIFRoaXMgYWRkcmVzcyBpcyB1bnJlbG9jYXRlZCBieSB0aGUgb2JqZmlsZSdzIEFOT0ZG U0VULiAgKi8KLSAJQ09SRV9BRERSIHBoeXNhZGRyOwotIAljb25zdCBjaGFyICpwaHlzbmFtZTsK KysgIC8qIFRoaXMgYWRkcmVzcyBpcyB1bnJlbG9jYXRlZCBieSB0aGUgb2JqZmlsZSdzIEFOT0ZG U0VULiAgKi8KKyAgIENPUkVfQUREUiBwaHlzYWRkcjsKKyAgIGNvbnN0IGNoYXIgKnBoeXNuYW1l OwogIAotQEAgLTEyNjIsNiArMTI2NCw3IEBAIGV4dGVybiB2b2lkIGFsbG9jYXRlX2duYXRfYXV4 X3R5cGUgKHN0cnUKK0BAIC0xMzg2LDYgKzEzODgsNyBAQCBleHRlcm4gdm9pZCBzZXRfdHlwZV92 cHRyX2Jhc2V0eXBlIChzdHJ1CiAgI2RlZmluZSBGSUVMRF9FTlVNVkFMX0xWQUwodGhpc2ZsZCkg KCh0aGlzZmxkKS5sb2MuZW51bXZhbCkKICAjZGVmaW5lIEZJRUxEX0VOVU1WQUwodGhpc2ZsZCkg KEZJRUxEX0VOVU1WQUxfTFZBTCAodGhpc2ZsZCkgKyAwKQogICNkZWZpbmUgRklFTERfU1RBVElD X1BIWVNOQU1FKHRoaXNmbGQpICgodGhpc2ZsZCkubG9jLnBoeXNuYW1lKQpAQCAtMjYsNyArMjYs NyBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvZ2RidHlwZXMuaAogICNkZWZpbmUg RklFTERfU1RBVElDX1BIWVNBRERSKHRoaXNmbGQpICgodGhpc2ZsZCkubG9jLnBoeXNhZGRyKQog ICNkZWZpbmUgRklFTERfRFdBUkZfQkxPQ0sodGhpc2ZsZCkgKCh0aGlzZmxkKS5sb2MuZHdhcmZf YmxvY2spCiAgI2RlZmluZSBTRVRfRklFTERfQklUUE9TKHRoaXNmbGQsIGJpdHBvcykJCQlcCi1A QCAtMTI3Myw2ICsxMjc2LDcgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAo c3RydQorQEAgLTEzOTcsNiArMTQwMCw3IEBAIGV4dGVybiB2b2lkIHNldF90eXBlX3ZwdHJfYmFz ZXR5cGUgKHN0cnUKICAjZGVmaW5lIFNFVF9GSUVMRF9QSFlTTkFNRSh0aGlzZmxkLCBuYW1lKQkJ CVwKICAgIChGSUVMRF9MT0NfS0lORCAodGhpc2ZsZCkgPSBGSUVMRF9MT0NfS0lORF9QSFlTTkFN RSwJCVwKICAgICBGSUVMRF9TVEFUSUNfUEhZU05BTUUgKHRoaXNmbGQpID0gKG5hbWUpKQpAQCAt MzQsNyArMzQsNyBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvZ2RidHlwZXMuaAog ICNkZWZpbmUgU0VUX0ZJRUxEX1BIWVNBRERSKHRoaXNmbGQsIGFkZHIpCQkJXAogICAgKEZJRUxE X0xPQ19LSU5EICh0aGlzZmxkKSA9IEZJRUxEX0xPQ19LSU5EX1BIWVNBRERSLAkJXAogICAgIEZJ RUxEX1NUQVRJQ19QSFlTQUREUiAodGhpc2ZsZCkgPSAoYWRkcikpCi1AQCAtMTI4OSw2ICsxMjkz LDcgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydQorQEAgLTE0MTMs NiArMTQxNyw3IEBAIGV4dGVybiB2b2lkIHNldF90eXBlX3ZwdHJfYmFzZXR5cGUgKHN0cnUKICAj ZGVmaW5lIFRZUEVfRklFTERfQklUUE9TKHRoaXN0eXBlLCBuKSBGSUVMRF9CSVRQT1MgKFRZUEVf RklFTEQgKHRoaXN0eXBlLCBuKSkKICAjZGVmaW5lIFRZUEVfRklFTERfRU5VTVZBTCh0aGlzdHlw ZSwgbikgRklFTERfRU5VTVZBTCAoVFlQRV9GSUVMRCAodGhpc3R5cGUsIG4pKQogICNkZWZpbmUg VFlQRV9GSUVMRF9TVEFUSUNfUEhZU05BTUUodGhpc3R5cGUsIG4pIEZJRUxEX1NUQVRJQ19QSFlT TkFNRSAoVFlQRV9GSUVMRCAodGhpc3R5cGUsIG4pKQpAQCAtNDIsMTAgKzQyLDEwIEBAIEluZGV4 OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9nZGJ0eXBlcy5oCiAgI2RlZmluZSBUWVBFX0ZJRUxE X1NUQVRJQ19QSFlTQUREUih0aGlzdHlwZSwgbikgRklFTERfU1RBVElDX1BIWVNBRERSIChUWVBF X0ZJRUxEICh0aGlzdHlwZSwgbikpCiAgI2RlZmluZSBUWVBFX0ZJRUxEX0RXQVJGX0JMT0NLKHRo aXN0eXBlLCBuKSBGSUVMRF9EV0FSRl9CTE9DSyAoVFlQRV9GSUVMRCAodGhpc3R5cGUsIG4pKQog ICNkZWZpbmUgVFlQRV9GSUVMRF9BUlRJRklDSUFMKHRoaXN0eXBlLCBuKSBGSUVMRF9BUlRJRklD SUFMKFRZUEVfRklFTEQodGhpc3R5cGUsbikpCi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9n ZGIvanYtbGFuZy5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvanYtbGFuZy5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYwOS5vcmlnL2dkYi9qdi1sYW5nLmMJMjAx NC0wNi0xMyAyMDoyMzo1NS4yMTE2MjY0MjggKzAyMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5 L2dkYi9qdi1sYW5nLmMJMjAxNC0wNi0xMyAyMDoyMzo1Ni4yNzg2Mjc1MzQgKzAyMDAKKy0tLSBn ZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2p2LWxhbmcuYwkyMDE1LTA1LTMxIDE2OjU1OjI5 LjcyNDQ3NTQ5MSArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2p2LWxhbmcuYwky MDE1LTA1LTMxIDE2OjU1OjMwLjgyMDQ4MjQwOCArMDIwMAogQEAgLTQyNyw3ICs0MjcsOCBAQCBq YXZhX2xpbmtfY2xhc3NfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkCiAgCiAgICBmaWVsZHMgPSBO VUxMOwpAQCAtNjYsMTEgKzY2LDExIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9q di1sYW5nLmMKICAgICAgICBlbHNlCiAgCVNFVF9GSUVMRF9CSVRQT1MgKFRZUEVfRklFTEQgKHR5 cGUsIGkpLCA4ICogYm9mZnNldCk7CiAgICAgICAgaWYgKGFjY2ZsYWdzICYgMHg4MDAwKQkvKiBG SUVMRF9VTlJFU09MVkVEX0ZMQUcgKi8KLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi92 YWx1ZS5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmFsdWUuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjcuNTAuMjAxNDA2MDkub3JpZy9nZGIvdmFsdWUuYwkyMDE0LTA2LTEzIDIw OjIzOjU1LjIxMjYyNjQyOSArMDIwMAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3ZhbHVl LmMJMjAxNC0wNi0xMyAyMDoyMzo1Ni4yNzk2Mjc1MzUgKzAyMDAKLUBAIC0yNzgzLDcgKzI3ODMs OCBAQCB2YWx1ZV9zdGF0aWNfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBpCistLS0gZ2RiLTcu OS41MC4yMDE1MDUyMC5vcmlnL2dkYi92YWx1ZS5jCTIwMTUtMDUtMzEgMTY6NTU6MjkuNzI1NDc1 NDk3ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmFsdWUuYwkyMDE1LTA1LTMx IDE2OjU1OjMwLjgyMTQ4MjQxNSArMDIwMAorQEAgLTI5NTEsNyArMjk1MSw4IEBAIHZhbHVlX3N0 YXRpY19maWVsZCAoc3RydWN0IHR5cGUgKnR5cGUsIGkKICAgICAgewogICAgICBjYXNlIEZJRUxE X0xPQ19LSU5EX1BIWVNBRERSOgogICAgICAgIHJldHZhbCA9IHZhbHVlX2F0X2xhenkgKFRZUEVf RklFTERfVFlQRSAodHlwZSwgZmllbGRubyksCgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci5wYXRj aCBiL2dkYi1hcmNoZXIucGF0Y2gKaW5kZXggN2U3NmQ3Yi4uYWVmMWRjZiAxMDA2NDQKLS0tIGEv Z2RiLWFyY2hlci5wYXRjaAorKysgYi9nZGItYXJjaGVyLnBhdGNoCkBAIC0yLDcgKzIsNyBAQCBo dHRwOi8vc291cmNld2FyZS5vcmcvZ2RiL3dpa2kvUHJvamVjdEFyY2hlcgogaHR0cDovL3NvdXJj ZXdhcmUub3JnL2dkYi93aWtpL0FyY2hlckJyYW5jaE1hbmFnZW1lbnQKIAogR0lUIHNuYXBzaG90 OgotY29tbWl0IGQxYTA5YmYyZjhlN2UzZjc1MmExYmJlYmExMzViYzA4MGJmMGM4NjUKK2NvbW1p dCBjOGE4NDEzZTE2MGQ5MzVjMTJjYmM2ZTQ4NGRkOGI3YWI4MGY1ZjYyCiAKIHRyb21leS9weXRo b24KIApAQCAtMTYsMTAgKzE2LDEwIEBAIGluZGV4IDAwMDAwMDAuLjE3M2I4ZWEKICtUaGlzIGJy YW5jaCBvcmlnaW5hbGx5IGhlbGQgdGhlIFB5dGhvbiBjb2RlIGZvciBnZGIuICBJdCBzdGlsbCBl eGlzdHMKICtiZWNhdXNlIGEgc21hbGwgYW1vdW50IG9mIGNvZGUgaGVyZSBoYXMgbm90IHlldCBi ZWVuIG1lcmdlZCB1cHN0cmVhbS4KIGRpZmYgLS1naXQgYS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIv TWFrZWZpbGUuaW4KLWluZGV4IGJlNjliNmYuLmE0NDgzZTQgMTAwNjQ0CitpbmRleCA5NTEwNGVm Li5hOWIxOThhIDEwMDY0NAogLS0tIGEvZ2RiL01ha2VmaWxlLmluCiArKysgYi9nZGIvTWFrZWZp bGUuaW4KLUBAIC0xNTE1LDYgKzE1MTUsMTIgQEAgc3RhbXAtaDogJChzcmNkaXIpL2NvbmZpZy5p biBjb25maWcuc3RhdHVzCitAQCAtMTUzNCw2ICsxNTM0LDEyIEBAIHN0YW1wLWg6ICQoc3JjZGly KS9jb25maWcuaW4gY29uZmlnLnN0YXR1cwogIAkgIENPTkZJR19MSU5LUz0gXAogIAkgICQoU0hF TEwpIGNvbmZpZy5zdGF0dXMKICAKQEAgLTMzLDExICszMywxMSBAQCBpbmRleCBiZTY5YjZmLi5h NDQ4M2U0IDEwMDY0NAogIAkkKFNIRUxMKSBjb25maWcuc3RhdHVzIC0tcmVjaGVjawogIAogZGlm ZiAtLWdpdCBhL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbiBiL2dkYi9kYXRhLWRpcmVj dG9yeS9NYWtlZmlsZS5pbgotaW5kZXggMDBjNzBiYi4uZjkzZmZkZCAxMDA2NDQKK2luZGV4IDMw Y2ZkMTcuLmU5NzdiMzAgMTAwNjQ0CiAtLS0gYS9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUu aW4KICsrKyBiL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgotQEAgLTY0LDcgKzY0LDEw IEBAIFBZVEhPTl9GSUxFX0xJU1QgPSBcCi0gCWdkYi9wcmludGluZy5weSBcCitAQCAtNjUsNyAr NjUsMTAgQEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwKKyAJZ2RiL3Vud2luZGVyLnB5IFwKICAJZ2Ri L3Byb21wdC5weSBcCiAgCWdkYi94bWV0aG9kLnB5IFwKICsJZ2RiL3R5cGVzLnB5IFwKQEAgLTQ2 LDggKzQ2LDggQEAgaW5kZXggMDBjNzBiYi4uZjkzZmZkZCAxMDA2NDQKICsJZ2RiL2NvbW1hbmQv cGFob2xlLnB5IFwKICAJZ2RiL2NvbW1hbmQveG1ldGhvZHMucHkgXAogIAlnZGIvY29tbWFuZC9m cmFtZV9maWx0ZXJzLnB5IFwKLSAJZ2RiL2NvbW1hbmQvdHlwZV9wcmludGVycy5weSBcCi1AQCAt NzQsNiArNzcsOCBAQCBQWVRIT05fRklMRV9MSVNUID0gXAorIAlnZGIvY29tbWFuZC91bndpbmRl cnMucHkgXAorQEAgLTc2LDYgKzc5LDggQEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwKICAJZ2RiL2Z1 bmN0aW9uL19faW5pdF9fLnB5IFwKICAJZ2RiL2Z1bmN0aW9uL2NhbGxlcl9pcy5weSBcCiAgCWdk Yi9mdW5jdGlvbi9zdHJmbnMucHkgXApAQCAtNTcsNyArNTcsNyBAQCBpbmRleCAwMGM3MGJiLi5m OTNmZmRkIDEwMDY0NAogIAlnZGIvcHJpbnRlci9ib3VuZF9yZWdpc3RlcnMucHkKICAKIGRpZmYg LS1naXQgYS9nZGIvZG9jL2dkYi50ZXhpbmZvIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwotaW5kZXgg ZTA4NmMzMy4uNWRmZWIxZCAxMDA2NDQKK2luZGV4IDE2NjUzNzIuLmM0Y2FmZmMgMTAwNjQ0CiAt LS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCiArKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvCiBAQCAt MTIyNSw2ICsxMjI1LDE2IEBAIGZvciByZW1vdGUgZGVidWdnaW5nLgpAQCAtNzgsNyArNzgsNyBA QCBpbmRleCBlMDg2YzMzLi41ZGZlYjFkIDEwMDY0NAogIEBpdGVtIC10dWkKICBAY2luZGV4IEBj b2Rley0tdHVpfQogZGlmZiAtLWdpdCBhL2dkYi9kb2MvcHl0aG9uLnRleGkgYi9nZGIvZG9jL3B5 dGhvbi50ZXhpCi1pbmRleCAyMzRjZTVjLi5lOTQwMTI1IDEwMDY0NAoraW5kZXggNTdlYzIyZS4u MTNiZWIwNSAxMDA2NDQKIC0tLSBhL2dkYi9kb2MvcHl0aG9uLnRleGkKICsrKyBiL2dkYi9kb2Mv cHl0aG9uLnRleGkKIEBAIC04OCw4ICs4OCw2IEBAIGNvbnRhaW5pbmcgQGNvZGV7ZW5kfS4gIEZv ciBleGFtcGxlOgpAQCAtMTExLDcgKzExMSw3IEBAIGluZGV4IDA1YTM4YjIuLjk4MDFmZGYgMTAw NjQ0CiAgICBzZXQgdmFyaWFibGUgJGdkYl9pbml0X2RvbmUgPSAxCiAgCiBkaWZmIC0tZ2l0IGEv Z2RiL21haW4uYyBiL2dkYi9tYWluLmMKLWluZGV4IGFjY2Q5MjcuLmVkMjExZjYgMTAwNjQ0Citp bmRleCBhZWNkNjBhLi5kMGY3ODM0IDEwMDY0NAogLS0tIGEvZ2RiL21haW4uYwogKysrIGIvZ2Ri L21haW4uYwogQEAgLTMzLDYgKzMzLDcgQEAKQEAgLTEyMiw3ICsxMjIsNyBAQCBpbmRleCBhY2Nk OTI3Li5lZDIxMWY2IDEwMDY0NAogICNpbmNsdWRlICJzb3VyY2UuaCIKICAjaW5jbHVkZSAiY2xp L2NsaS1jbWRzLmgiCiAgI2luY2x1ZGUgIm9iamZpbGVzLmgiCi1AQCAtNDQ0LDYgKzQ0NSw4IEBA IGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCitAQCAtNDUzLDYgKzQ1NCw4IEBAIGNhcHR1cmVk X21haW4gKHZvaWQgKmRhdGEpCiAgICBjaGFyICpjZGFyZyA9IE5VTEw7CiAgICBjaGFyICp0dHlh cmcgPSBOVUxMOwogIApAQCAtMTMxLDcgKzEzMSw3IEBAIGluZGV4IGFjY2Q5MjcuLmVkMjExZjYg MTAwNjQ0CiAgICAvKiBUaGVzZSBhcmUgc3RhdGljIHNvIHRoYXQgd2UgY2FuIHRha2UgdGhlaXIg YWRkcmVzcyBpbiBhbgogICAgICAgaW5pdGlhbGl6ZXIuICAqLwogICAgc3RhdGljIGludCBwcmlu dF9oZWxwOwotQEAgLTY0OSwxMCArNjUyLDE0IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEp CitAQCAtNjYzLDEwICs2NjYsMTQgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAgICAg ICB7ImFyZ3MiLCBub19hcmd1bWVudCwgJnNldF9hcmdzLCAxfSwKICAgICAgICB7ImwiLCByZXF1 aXJlZF9hcmd1bWVudCwgMCwgJ2wnfSwKICAgICAgICB7InJldHVybi1jaGlsZC1yZXN1bHQiLCBu b19hcmd1bWVudCwgJnJldHVybl9jaGlsZF9yZXN1bHQsIDF9LApAQCAtMTQ3LDcgKzE0Nyw3IEBA IGluZGV4IGFjY2Q5MjcuLmVkMjExZjYgMTAwNjQ0CiAgICAgICAgewogIAlpbnQgb3B0aW9uX2lu ZGV4OwogIAotQEAgLTY3MCw2ICs2NzcsOSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQor QEAgLTY4NCw2ICs2OTEsOSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogIAkgIGNhc2Ug MDoKICAJICAgIC8qIExvbmcgb3B0aW9uIHRoYXQganVzdCBzZXRzIGEgZmxhZy4gICovCiAgCSAg ICBicmVhazsKQEAgLTE1Nyw3ICsxNTcsNyBAQCBpbmRleCBhY2NkOTI3Li5lZDIxMWY2IDEwMDY0 NAogIAkgIGNhc2UgT1BUX1NFOgogIAkgICAgc3ltYXJnID0gb3B0YXJnOwogIAkgICAgZXhlY2Fy ZyA9IG9wdGFyZzsKLUBAIC04NTEsNyArODYxLDMxIEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRh dGEpCitAQCAtODY0LDcgKzg3NCwzMSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogIAog ICAgLyogTm93IHRoYXQgZ2RiX2luaXQgaGFzIGNyZWF0ZWQgdGhlIGluaXRpYWwgaW5mZXJpb3Is IHdlJ3JlIGluCiAgICAgICBwb3NpdGlvbiB0byBzZXQgYXJncyBmb3IgdGhhdCBpbmZlcmlvci4g ICovCkBAIC0xOTAsNyArMTkwLDcgQEAgaW5kZXggYWNjZDkyNy4uZWQyMTFmNiAxMDA2NDQKICAg ICAgewogICAgICAgIC8qIFRoZSByZW1haW5pbmcgb3B0aW9ucyBhcmUgdGhlIGNvbW1hbmQtbGlu ZSBvcHRpb25zIGZvciB0aGUKICAJIGluZmVyaW9yLiAgVGhlIGZpcnN0IG9uZSBpcyB0aGUgc3lt L2V4ZWMgZmlsZSwgYW5kIHRoZSByZXN0Ci1AQCAtMTEyOSw3ICsxMTYzLDggQEAgY2FwdHVyZWRf bWFpbiAodm9pZCAqZGF0YSkKK0BAIC0xMTM3LDcgKzExNzEsOCBAQCBjYXB0dXJlZF9tYWluICh2 b2lkICpkYXRhKQogIAogICAgLyogUmVhZCBpbiB0aGUgb2xkIGhpc3RvcnkgYWZ0ZXIgYWxsIHRo ZSBjb21tYW5kIGZpbGVzIGhhdmUgYmVlbgogICAgICAgcmVhZC4gICovCkBAIC0yMDAsNyArMjAw LDcgQEAgaW5kZXggYWNjZDkyNy4uZWQyMTFmNiAxMDA2NDQKICAKICAgIGlmIChiYXRjaF9mbGFn KQogICAgICB7Ci1AQCAtMTE0MCwxMyArMTE3NSwyNSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpk YXRhKQorQEAgLTExNDgsMTMgKzExODMsMjUgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkK ICAgIC8qIFNob3cgdGltZSBhbmQvb3Igc3BhY2UgdXNhZ2UuICAqLwogICAgZG9fY2xlYW51cHMg KHByZV9zdGF0X2NoYWluKTsKICAKQEAgLTIzMiw3ICsyMzIsNyBAQCBpbmRleCBhY2NkOTI3Li5l ZDIxMWY2IDEwMDY0NAogICAgICB9CiAgICAvKiBObyBleGl0IC0tIGV4aXQgaXMgdGhyb3VnaCBx dWl0X2NvbW1hbmQuICAqLwogIH0KLUBAIC0xMTgwLDYgKzEyMjcsMTIgQEAgcHJpbnRfZ2RiX2hl bHAgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCitAQCAtMTE4OCw2ICsxMjM1LDEyIEBAIHByaW50 X2dkYl9oZWxwIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQogICAgZnB1dHNfdW5maWx0ZXJlZCAo XygiXAogIFRoaXMgaXMgdGhlIEdOVSBkZWJ1Z2dlci4gIFVzYWdlOlxuXG5cCiAgICAgIGdkYiBb b3B0aW9uc10gW2V4ZWN1dGFibGUtZmlsZSBbY29yZS1maWxlIG9yIHByb2Nlc3MtaWRdXVxuXApA QCAtMjQ1LDEwICsyNDUsMTAgQEAgaW5kZXggYWNjZDkyNy4uZWQyMTFmNiAxMDA2NDQKICAgICAg Z2RiIFtvcHRpb25zXSAtLWFyZ3MgZXhlY3V0YWJsZS1maWxlIFtpbmZlcmlvci1hcmd1bWVudHMg Li4uXVxuXG5cCiAgIiksIHN0cmVhbSk7CiAgICBmcHV0c191bmZpbHRlcmVkIChfKCJcCi1AQCAt MTIyNSw2ICsxMjc4LDEzIEBAIE91dHB1dCBhbmQgdXNlciBpbnRlcmZhY2UgY29udHJvbDpcblxu XAorQEAgLTEyMzIsNiArMTI4NSwxMyBAQCBPdXRwdXQgYW5kIHVzZXIgaW50ZXJmYWNlIGNvbnRy b2w6XG5cblwKKyAjZW5kaWYKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKICAgIC0tZGJ4ICAg ICAgICAgICAgICBEQlggY29tcGF0aWJpbGl0eSBtb2RlLlxuXAotICAgLS14ZGIgICAgICAgICAg ICAgIFhEQiBjb21wYXRpYmlsaXR5IG1vZGUuXG5cCiArIiksIHN0cmVhbSk7CiArI2lmIEhBVkVf UFlUSE9OCiArICBmcHV0c191bmZpbHRlcmVkIChfKCJcCkBAIC00NDMsNyArNDQzLDcgQEAgaW5k ZXggMDAwMDAwMC4uODc0MjY4MAogKwogK0luU2NvcGUgKCkKIGRpZmYgLS1naXQgYS9nZGIvcHl0 aG9uL3B5dGhvbi5jIGIvZ2RiL3B5dGhvbi9weXRob24uYwotaW5kZXggYjFkODI4My4uNTRhMmQ5 YiAxMDA2NDQKK2luZGV4IDRmODhiMGUuLjg3MGExYmEgMTAwNjQ0CiAtLS0gYS9nZGIvcHl0aG9u L3B5dGhvbi5jCiArKysgYi9nZGIvcHl0aG9uL3B5dGhvbi5jCiBAQCAtOTMsNiArOTMsOCBAQCBj b25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX2RlZm4gZXh0ZW5zaW9uX2xhbmd1YWdlX3B5 dGhvbiA9CkBAIC00NTUsNyArNDU1LDcgQEAgaW5kZXggYjFkODI4My4uNTRhMmQ5YiAxMDA2NDQK ICAjaW5jbHVkZSAidGFyZ2V0LmgiCiAgI2luY2x1ZGUgImdkYnRocmVhZC5oIgogICNpbmNsdWRl ICJpbnRlcnBzLmgiCi1AQCAtMTIyMCw2ICsxMjIyLDgzIEBAIGdkYnB5X3ByaW50X3N0YWNrICh2 b2lkKQorQEAgLTEyNjIsNiArMTI2NCw4MyBAQCBnZGJweV9wcmludF9zdGFjayAodm9pZCkKICAK ICAvKiBSZXR1cm4gdGhlIGN1cnJlbnQgUHJvZ3NwYWNlLgogICAgIFRoZXJlIGFsd2F5cyBpcyBv bmUuICAqLwpAQCAtNTM5LDcgKzUzOSw3IEBAIGluZGV4IGIxZDgyODMuLjU0YTJkOWIgMTAwNjQ0 CiAgCiAgc3RhdGljIFB5T2JqZWN0ICoKICBnZGJweV9nZXRfY3VycmVudF9wcm9nc3BhY2UgKFB5 T2JqZWN0ICp1bnVzZWQxLCBQeU9iamVjdCAqdW51c2VkMikKLUBAIC0xOTEzLDYgKzE5OTIsOCBA QCBzdGF0aWMgUHlNZXRob2REZWYgR2RiTWV0aG9kc1tdID0KK0BAIC0xOTgyLDYgKzIwNjEsOCBA QCBQeU1ldGhvZERlZiBweXRob25fR2RiTWV0aG9kc1tdID0KICBFdmFsdWF0ZSBjb21tYW5kLCBh IHN0cmluZywgYXMgYSBnZGIgQ0xJIGNvbW1hbmQuICBPcHRpb25hbGx5IHJldHVybnNcblwKICBh IFB5dGhvbiBTdHJpbmcgY29udGFpbmluZyB0aGUgb3V0cHV0IG9mIHRoZSBjb21tYW5kIGlmIHRv X3N0cmluZyBpc1xuXAogIHNldCB0byBUcnVlLiIgfSwKQEAgLTU0OSw3ICs1NDksNyBAQCBpbmRl eCBiMWQ4MjgzLi41NGEyZDliIDEwMDY0NAogICAgICAiUmV0dXJuIGEgZ2RiIHBhcmFtZXRlcidz IHZhbHVlIiB9LAogIAogZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9uLmggYi9nZGIvcHl0 aG9uL3B5dGhvbi5oCi1pbmRleCA5ZTk5OTkyLi5jNzc2ZTU5IDEwMDY0NAoraW5kZXggZTZiZmNj YS4uNjg4ZGFhMyAxMDA2NDQKIC0tLSBhL2dkYi9weXRob24vcHl0aG9uLmgKICsrKyBiL2dkYi9w eXRob24vcHl0aG9uLmgKIEBAIC0yNSw0ICsyNSw2IEBACkBAIC01NjAsNyArNTYwLDcgQEAgaW5k ZXggOWU5OTk5Mi4uYzc3NmU1OSAxMDA2NDQKICsKICAjZW5kaWYgLyogR0RCX1BZVEhPTl9IICov CiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cCBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAKLWluZGV4IDBiMTFlMTIuLmUzNWU4MjkgMTAw NjQ0CitpbmRleCA5ZjI1YTQ4Li44OGIwODQyIDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZ2RiL3NlbGZ0ZXN0LmV4cAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0 LmV4cAogQEAgLTkyLDYgKzkyLDEwIEBAIHByb2MgZG9fc3RlcHNfYW5kX25leHRzIHt9IHsKQEAg LTU3NSw3ICs1NzUsNyBAQCBpbmRleCAwYjExZTEyLi5lMzVlODI5IDEwMDY0NAogIAkJc2V0IGRl c2NyaXB0aW9uICJuZXh0IG92ZXIgbWFrZV9jb21tYW5kX3N0YXRzX2NsZWFudXAgYW5kIGV2ZXJ5 dGhpbmcgaXQgY2FsbHMiCiAgCQlzZXQgY29tbWFuZCAibmV4dCIKIGRpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0 aG9uL3B5LWZyYW1lLmV4cAotaW5kZXggZTQ3ZjM0MC4uYTdlMGE1MiAxMDA2NDQKK2luZGV4IDMz ZmRiZTUuLjI2NGQwMGYgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt ZnJhbWUuZXhwCiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWUuZXhwCiBA QCAtOTUsNiArOTUsOCBAQCBnZGJfdGVzdCAicHl0aG9uIHByaW50ICgncmVzdWx0ID0gJXMnICUg ZjAucmVhZF92YXIgKCdhJykpIiAiID0gMSIgInRlc3QgRnJhbWUucgpAQCAtNTg4LDcgKzU4OCw3 IEBAIGluZGV4IGU0N2YzNDAuLmE3ZTBhNTIgMTAwNjQ0CiAgZ2RiX3Rlc3QgInB5dGhvbiBwcmlu dCAoJ3Jlc3VsdCA9ICVzJyAlIChnZGIuc2VsZWN0ZWRfZnJhbWUgKCkucmVhZF9yZWdpc3RlciAo J3NwJykgPT0gZ2RiLnBhcnNlX2FuZF9ldmFsICgnXCRzcCcpKSkiIFwKICAgICIgPSBUcnVlIiBc CiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4cCBiL2dk Yi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAKLWluZGV4IGYwODFmZjAuLjU4Y2Nl MDkgMTAwNjQ0CitpbmRleCBiYWExN2I3Li40NWFkNjdlIDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4cAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0 aG9uL3B5LXZhbHVlLmV4cAogQEAgLTM4OCw2ICszODgsMTUgQEAgcHJvYyB0ZXN0X3ZhbHVlX2Fm dGVyX2RlYXRoIHt9IHsKCmRpZmYgLS1naXQgYS9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy01b2Y1 LnBhdGNoIGIvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaAppbmRleCAxODE5OGM1 Li5iY2Q0YTMzIDEwMDY0NAotLS0gYS9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNo CisrKyBiL2dkYi1hdHRhY2gtZmFpbC1yZWFzb25zLTVvZjUucGF0Y2gKQEAgLTM3LDEwICszNywx MCBAQCBnZGIvZ2Ric2VydmVyLwogCShsaW51eF9jcmVhdGVfaW5mZXJpb3IsIGxpbnV4X3RyYWNl Zm9ya19jaGlsZCk6IENhbGwgaXQgaW5zdGVhZCBvZgogCWRpcmVjdCBwdHJhY2UuCiAKLUluZGV4 OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9uYXQvbGludXgtcHRyYWNlLmMKK0luZGV4OiBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi9uYXQvbGludXgtcHRyYWNlLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL25hdC9saW51eC1wdHJhY2UuYwkyMDE1LTAxLTI1 IDA4OjM2OjU1LjcxMDg4NDUxMSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL25h dC9saW51eC1wdHJhY2UuYwkyMDE1LTAxLTI1IDA4OjM4OjQzLjE1NzM0NzYyNyArMDEwMAorLS0t IGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCTIwMTUtMDUt MzEgMTg6MTY6NTQuMzQ4ODkwNzQ2ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv bmF0L2xpbnV4LXB0cmFjZS5jCTIwMTUtMDUtMzEgMTg6MTc6MTkuNTg0MDQ2NTQwICswMjAwCiBA QCAtMjUsNiArMjUsMTAgQEAKICAKICAjaW5jbHVkZSA8c3RkaW50Lmg+CkBAIC00OSwxMCArNDks MTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL25hdC9saW51eC1wdHJhY2UuYwog KyMgaW5jbHVkZSA8c2VsaW51eC9zZWxpbnV4Lmg+CiArI2VuZGlmIC8qIEhBVkVfU0VMSU5VWF9T RUxJTlVYX0ggKi8KICsKLSAvKiBTdG9yZXMgdGhlIGN1cnJlbnRseSBzdXBwb3J0ZWQgcHRyYWNl IG9wdGlvbnMuICBBIHZhbHVlIG9mCi0gICAgLTEgbWVhbnMgd2UgZGlkIG5vdCBjaGVjayBmb3Ig ZmVhdHVyZXMgeWV0LiAgQSB2YWx1ZSBvZiAwIG1lYW5zCi0gICAgdGhlcmUgYXJlIG5vIHN1cHBv cnRlZCBmZWF0dXJlcy4gICovCi1AQCAtNTMsNiArNTcsOCBAQCBsaW51eF9wdHJhY2VfYXR0YWNo X2ZhaWxfcmVhc29uIChwaWRfdCBwCisgLyogU3RvcmVzIHRoZSBwdHJhY2Ugb3B0aW9ucyBzdXBw b3J0ZWQgYnkgdGhlIHJ1bm5pbmcga2VybmVsLgorICAgIEEgdmFsdWUgb2YgLTEgbWVhbnMgd2Ug ZGlkIG5vdCBjaGVjayBmb3IgZmVhdHVyZXMgeWV0LiAgQSB2YWx1ZQorICAgIG9mIDAgbWVhbnMg dGhlcmUgYXJlIG5vIHN1cHBvcnRlZCBmZWF0dXJlcy4gICovCitAQCAtNDksNiArNTMsOCBAQCBs aW51eF9wdHJhY2VfYXR0YWNoX2ZhaWxfcmVhc29uIChwaWRfdCBwCiAgICAgIGJ1ZmZlcl94bWxf cHJpbnRmIChidWZmZXIsIF8oInByb2Nlc3MgJWQgaXMgYSB6b21iaWUgIgogIAkJCQkgIi0gdGhl IHByb2Nlc3MgaGFzIGFscmVhZHkgdGVybWluYXRlZCIpLAogIAkJICAgICAgIChpbnQpIHBpZCk7 CkBAIC02MSw3ICs2MSw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9uYXQvbGlu dXgtcHRyYWNlLmMKICB9CiAgCiAgLyogU2VlIGxpbnV4LXB0cmFjZS5oLiAgKi8KLUBAIC01OTUs NiArNjAxLDIyIEBAIGxpbnV4X3B0cmFjZV9pbml0X3dhcm5pbmdzICh2b2lkKQorQEAgLTU4Myw2 ICs1ODksMjIgQEAgbGludXhfcHRyYWNlX2luaXRfd2FybmluZ3MgKHZvaWQpCiAgICBsaW51eF9w dHJhY2VfdGVzdF9yZXRfdG9fbnggKCk7CiAgfQogIApAQCAtODEsMjYgKzgxLDI2IEBAIEluZGV4 OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9uYXQvbGludXgtcHRyYWNlLmMKICsjZW5kaWYgLyog SEFWRV9MSUJTRUxJTlVYICovCiArfQogKwotIC8qIFNldCBhZGRpdGlvbmFsIHB0cmFjZSBmbGFn cyB0byB1c2UuICBTb21lIHN1Y2ggZmxhZ3MgbWF5IGJlIGNoZWNrZWQKLSAgICBieSB0aGUgaW1w bGVtZW50YXRpb24gYWJvdmUuICBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIGJlZm9yZQot ICAgIGFueSBvdGhlciBmdW5jdGlvbiBpbiB0aGlzIGZpbGU7IG90aGVyd2lzZSB0aGUgZmxhZ3Mg bWF5IG5vdCB0YWtlCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbmF0L2xpbnV4LXB0 cmFjZS5oCisgLyogRXh0cmFjdCBleHRlbmRlZCBwdHJhY2UgZXZlbnQgZnJvbSB3YWl0IHN0YXR1 cy4gICovCisgCisgaW50CitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbmF0L2xpbnV4 LXB0cmFjZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9u YXQvbGludXgtcHRyYWNlLmgJMjAxNS0wMS0yNSAwODozNzowMi44MDA5MTUwNzEgKzAxMDAKLSsr KyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9uYXQvbGludXgtcHRyYWNlLmgJMjAxNS0wMS0yNSAw ODozODoxNi41NjUyMzMwMDkgKzAxMDAKLUBAIC05OCw2ICs5OCw3IEBAIGV4dGVybiB2b2lkIGxp bnV4X3B0cmFjZV9hdHRhY2hfZmFpbF9yZWEKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcv Z2RiL25hdC9saW51eC1wdHJhY2UuaAkyMDE1LTA1LTMxIDE4OjE2OjU0LjM0ODg5MDc0NiArMDIw MAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL25hdC9saW51eC1wdHJhY2UuaAkyMDE1LTA1 LTMxIDE4OjE3OjE5LjU4NDA0NjU0MCArMDIwMAorQEAgLTE0OSw2ICsxNDksNyBAQCBleHRlcm4g dm9pZCBsaW51eF9wdHJhY2VfYXR0YWNoX2ZhaWxfcmVhCiAgZXh0ZXJuIGNoYXIgKmxpbnV4X3B0 cmFjZV9hdHRhY2hfZmFpbF9yZWFzb25fc3RyaW5nIChwdGlkX3QgcHRpZCwgaW50IGVycik7CiAg CiAgZXh0ZXJuIHZvaWQgbGludXhfcHRyYWNlX2luaXRfd2FybmluZ3MgKHZvaWQpOwogK2V4dGVy biB2b2lkIGxpbnV4X3B0cmFjZV9jcmVhdGVfd2FybmluZ3MgKHN0cnVjdCBidWZmZXIgKmJ1ZmZl cik7CisgZXh0ZXJuIHZvaWQgbGludXhfY2hlY2tfcHRyYWNlX2ZlYXR1cmVzICh2b2lkKTsKICBl eHRlcm4gdm9pZCBsaW51eF9lbmFibGVfZXZlbnRfcmVwb3J0aW5nIChwaWRfdCBwaWQsIGludCBh dHRhY2hlZCk7CiAgZXh0ZXJuIHZvaWQgbGludXhfZGlzYWJsZV9ldmVudF9yZXBvcnRpbmcgKHBp ZF90IHBpZCk7Ci0gZXh0ZXJuIGludCBsaW51eF9zdXBwb3J0c190cmFjZWZvcmsgKHZvaWQpOwot SW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2NvbmZpZ3VyZS5hYworSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL2NvbmZpZ3VyZS5hYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgu OTAuMjAxNTAxMjUub3JpZy9nZGIvY29uZmlndXJlLmFjCTIwMTUtMDEtMjUgMDg6MzY6NTUuNzEy ODg0NTIwICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvY29uZmlndXJlLmFjCTIw MTUtMDEtMjUgMDg6Mzc6MDIuODAxOTE1MDc1ICswMTAwCi1AQCAtMjExNyw2ICsyMTE3LDEwIEBA IGNhc2UgJGhvc3Rfb3MgaW4KKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2NvbmZp Z3VyZS5hYwkyMDE1LTA1LTMxIDE4OjE2OjU0LjM0ODg5MDc0NiArMDIwMAorKysrIGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL2NvbmZpZ3VyZS5hYwkyMDE1LTA1LTMxIDE4OjE3OjE5LjU4NTA0NjU0 NiArMDIwMAorQEAgLTIxMzAsNiArMjEzMCwxMCBAQCBjYXNlICRob3N0X29zIGluCiAgZXNhYwog IEFDX0RFRklORV9VTlFVT1RFRChHREJJTklULCIkZ2RiaW5pdCIsW1RoZSAuZ2RiaW5pdCBmaWxl bmFtZS5dKQogIApAQCAtMTExLDExICsxMTEsMTEgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAx MjUvZ2RiL2NvbmZpZ3VyZS5hYwogIGRubCBIYW5kbGUgb3B0aW9uYWwgZmVhdHVyZXMgdGhhdCBj YW4gYmUgZW5hYmxlZC4KICAKICAjIFN1cHBvcnQgZm9yIC0td2l0aC1zeXNyb290IGlzIGEgY29w eSBvZiBHREJfQUNfV0lUSF9ESVIsCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZ2Ri c2VydmVyL2NvbmZpZ3VyZS5hYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnNl cnZlci9jb25maWd1cmUuYWMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9y aWcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMJMjAxNS0wMS0yNSAwODozNjo1NS43MTI4ODQ1 MjAgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJl LmFjCTIwMTUtMDEtMjUgMDg6Mzc6MDIuODAxOTE1MDc1ICswMTAwCi1AQCAtNDYxLDYgKzQ2MSwx MCBAQCBpZiAkd2FudF9pcGEgOyB0aGVuCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dk Yi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCTIwMTUtMDUtMzEgMTg6MTY6NTQuMzQ4ODkwNzQ2ICsw MjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwky MDE1LTA1LTMxIDE4OjE3OjE5LjU4NTA0NjU0NiArMDIwMAorQEAgLTQ5OSw2ICs0OTksMTAgQEAg aWYgJHdhbnRfaXBhIDsgdGhlbgogICAgIGZpCiAgZmkKICAKQEAgLTEyNiwxMSArMTI2LDExIEBA IEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCiAg QUNfU1VCU1QoR0RCU0VSVkVSX0RFUEZJTEVTKQogIEFDX1NVQlNUKEdEQlNFUlZFUl9MSUJTKQog IEFDX1NVQlNUKHNydl94bWxidWlsdGluKQotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2Ri L2dkYnNlcnZlci9saW51eC1sb3cuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dk YnNlcnZlci9saW51eC1sb3cuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAxMjUu b3JpZy9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTUtMDEtMjUgMDg6MzY6NTUuNzE0ODg0 NTI5ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZ2Ric2VydmVyL2xpbnV4LWxv dy5jCTIwMTUtMDEtMjUgMDg6Mzc6MDIuODAzOTE1MDg0ICswMTAwCi1AQCAtNTkxLDYgKzU5MSwy OSBAQCBhZGRfbHdwIChwdGlkX3QgcHRpZCkKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcv Z2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwkyMDE1LTA1LTMxIDE4OjE2OjU0LjM0ODg5MDc0NiAr MDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwky MDE1LTA1LTMxIDE4OjE3OjE5LjU4NzA0NjU1OCArMDIwMAorQEAgLTc0OSw2ICs3NDksMjkgQEAg YWRkX2x3cCAocHRpZF90IHB0aWQpCiAgICByZXR1cm4gbHdwOwogIH0KICAKQEAgLTE2MCw3ICsx NjAsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZ2Ric2VydmVyL2xpbnV4LWxv dy5jCiAgLyogU3RhcnQgYW4gaW5mZXJpb3IgcHJvY2VzcyBhbmQgcmV0dXJucyBpdHMgcGlkLgog ICAgIEFMTEFSR1MgaXMgYSB2ZWN0b3Igb2YgcHJvZ3JhbS1uYW1lIGFuZCBhcmdzLiAqLwogIAot QEAgLTYzMiw3ICs2NTUsNyBAQCBsaW51eF9jcmVhdGVfaW5mZXJpb3IgKGNoYXIgKnByb2dyYW0s IGNoCitAQCAtNzcyLDcgKzc5NSw3IEBAIGxpbnV4X2NyZWF0ZV9pbmZlcmlvciAoY2hhciAqcHJv Z3JhbSwgY2gKICAgIGlmIChwaWQgPT0gMCkKICAgICAgewogICAgICAgIGNsb3NlX21vc3RfZmRz ICgpOwpAQCAtMTY5LDExICsxNjksMTEgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2Ri L2dkYnNlcnZlci9saW51eC1sb3cuYwogIAogICNpZm5kZWYgX19BTkRST0lEX18gLyogQmlvbmlj IGRvZXNuJ3QgdXNlIFNJR1JUTUlOIHRoZSB3YXkgZ2xpYmMgZG9lcy4gICovCiAgICAgICAgc2ln bmFsIChfX1NJR1JUTUlOICsgMSwgU0lHX0RGTCk7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEy NS9nZGIvaW5mLXB0cmFjZS5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvaW5mLXB0 cmFjZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9pbmYt cHRyYWNlLmMJMjAxNS0wMS0yNSAwODozNjo1NS43MTU4ODQ1MzMgKzAxMDAKLSsrKyBnZGItNy44 LjkwLjIwMTUwMTI1L2dkYi9pbmYtcHRyYWNlLmMJMjAxNS0wMS0yNSAwODozNzowMi44MDM5MTUw ODQgKzAxMDAKLUBAIC02Nyw3ICs2NywxNSBAQCBzdGF0aWMgdm9pZAorLS0tIGdkYi03LjkuNTAu MjAxNTA1MjAub3JpZy9nZGIvaW5mLXB0cmFjZS5jCTIwMTUtMDUtMzEgMTg6MTY6NTQuMzQ4ODkw NzQ2ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvaW5mLXB0cmFjZS5jCTIwMTUt MDUtMzEgMTg6MTc6MTkuNTg4MDQ2NTY1ICswMjAwCitAQCAtNzksNyArNzksMTUgQEAgc3RhdGlj IHZvaWQKICBpbmZfcHRyYWNlX21lICh2b2lkKQogIHsKICAgIC8qICJUcmFjZSBtZSwgRHIuIE1l bW9yeSEiICAqLwpAQCAtMTg5LDM2ICsxODksMjggQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAx MjUvZ2RiL2luZi1wdHJhY2UuYwogIH0KICAKICAvKiBTdGFydCBhIG5ldyBpbmZlcmlvciBVbml4 IGNoaWxkIHByb2Nlc3MuICBFWEVDX0ZJTEUgaXMgdGhlIGZpbGUgdG8KLUluZGV4OiBnZGItNy44 LjkwLjIwMTUwMTI1L2dkYi9saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL2xpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmln L2dkYi9saW51eC1uYXQuYwkyMDE1LTAxLTI1IDA4OjM2OjU1LjcxNzg4NDU0MSArMDEwMAotKysr IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2xpbnV4LW5hdC5jCTIwMTUtMDEtMjUgMDg6Mzc6NTIu MDU0MTI3MzYyICswMTAwCi1AQCAtMTEwOSw2ICsxMTA5LDcgQEAgbGludXhfbmF0X2NyZWF0ZV9p bmZlcmlvciAoc3RydWN0IHRhcmdldAotICNpZmRlZiBIQVZFX1BFUlNPTkFMSVRZCi0gICBpbnQg cGVyc29uYWxpdHlfb3JpZyA9IDAsIHBlcnNvbmFsaXR5X3NldCA9IDA7Ci0gI2VuZGlmIC8qIEhB VkVfUEVSU09OQUxJVFkgKi8KKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2xpbnV4 LW5hdC5jCTIwMTUtMDUtMzEgMTg6MTY6NTQuMzQ4ODkwNzQ2ICswMjAwCisrKysgZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvbGludXgtbmF0LmMJMjAxNS0wNS0zMSAxODoxNzo1Ni4yMTQyNzI2ODMg KzAyMDAKK0BAIC0xMTc5LDYgKzExNzksNyBAQCBsaW51eF9uYXRfY3JlYXRlX2luZmVyaW9yIChz dHJ1Y3QgdGFyZ2V0CisgeworICAgc3RydWN0IGNsZWFudXAgKnJlc3RvcmVfcGVyc29uYWxpdHkK KyAgICAgPSBtYXliZV9kaXNhYmxlX2FkZHJlc3Nfc3BhY2VfcmFuZG9taXphdGlvbiAoZGlzYWJs ZV9yYW5kb21pemF0aW9uKTsKICsgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4Owog IAogICAgLyogVGhlIGZvcmtfY2hpbGQgbWVjaGFuaXNtIGlzIHN5bmNocm9ub3VzIGFuZCBjYWxs cyB0YXJnZXRfd2FpdCwgc28KICAgICAgIHdlIGhhdmUgdG8gbWFzayB0aGUgYXN5bmMgbW9kZS4g ICovCi1AQCAtMTEzMyw3ICsxMTM0LDEwIEBAIGxpbnV4X25hdF9jcmVhdGVfaW5mZXJpb3IgKHN0 cnVjdCB0YXJnZXQKK0BAIC0xMTg2LDcgKzExODcsMjggQEAgbGludXhfbmF0X2NyZWF0ZV9pbmZl cmlvciAoc3RydWN0IHRhcmdldAogICAgLyogTWFrZSBzdXJlIHdlIHJlcG9ydCBhbGwgc2lnbmFs cyBkdXJpbmcgc3RhcnR1cC4gICovCiAgICBsaW51eF9uYXRfcGFzc19zaWduYWxzIChvcHMsIDAs IE5VTEwpOwogIAogLSAgbGludXhfb3BzLT50b19jcmVhdGVfaW5mZXJpb3IgKG9wcywgZXhlY19m aWxlLCBhbGxhcmdzLCBlbnYsIGZyb21fdHR5KTsKLSsgIFRSWV9DQVRDSCAoZXgsIFJFVFVSTl9N QVNLX0VSUk9SKQorKyAgVFJZCiArICAgIHsKICsgICAgICBsaW51eF9vcHMtPnRvX2NyZWF0ZV9p bmZlcmlvciAob3BzLCBleGVjX2ZpbGUsIGFsbGFyZ3MsIGVudiwgZnJvbV90dHkpOwogKyAgICB9 Ci0gCi0gI2lmZGVmIEhBVkVfUEVSU09OQUxJVFkKLSAgIGlmIChwZXJzb25hbGl0eV9zZXQpCi1A QCAtMTE0NSw2ICsxMTQ5LDI0IEBAIGxpbnV4X25hdF9jcmVhdGVfaW5mZXJpb3IgKHN0cnVjdCB0 YXJnZXQKLSAJCSBzYWZlX3N0cmVycm9yIChlcnJubykpOwotICAgICB9Ci0gI2VuZGlmIC8qIEhB VkVfUEVSU09OQUxJVFkgKi8KLSsKLSsgIGlmIChleC5yZWFzb24gPCAwKQorKyAgQ0FUQ0ggKGV4 LCBSRVRVUk5fTUFTS19FUlJPUikKICsgICAgewogKyAgICAgIHN0cnVjdCBidWZmZXIgYnVmZmVy OwogKyAgICAgIGNoYXIgKm1lc3NhZ2UsICpidWZmZXJfczsKQEAgLTIzNSwxNCArMjI3LDE1IEBA IEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9saW51eC1uYXQuYwogKwogKyAgICAgIHRo cm93X2Vycm9yIChleC5lcnJvciwgIiVzJXMiLCBidWZmZXJfcywgbWVzc2FnZSk7CiArICAgIH0K LSB9CisrICBFTkRfQ0FUQ0gKICAKLSAvKiBDYWxsYmFjayBmb3IgbGludXhfcHJvY19hdHRhY2hf dGdpZF90aHJlYWRzLiAgQXR0YWNoIHRvIFBUSUQgaWYgbm90Ci1JbmRleDogZ2RiLTcuOC45MC4y MDE1MDEyNS9nZGIvY29uZmlnLmluCisgICBkb19jbGVhbnVwcyAocmVzdG9yZV9wZXJzb25hbGl0 eSk7CisgfQorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NvbmZpZy5pbgogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvY29uZmlnLmluCTIwMTUtMDEt MjUgMDg6MzY6NTUuNzE4ODg0NTQ2ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIv Y29uZmlnLmluCTIwMTUtMDEtMjUgMDg6Mzc6MDIuODA1OTE1MDkyICswMTAwCi1AQCAtMjEzLDYg KzIxMyw5IEBACistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9jb25maWcuaW4JMjAx NS0wNS0zMSAxODoxNjo1NC4zNDg4OTA3NDYgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi9jb25maWcuaW4JMjAxNS0wNS0zMSAxODoxNzoxOS41ODkwNDY1NzEgKzAyMDAKK0BAIC0y NjEsNiArMjYxLDkgQEAKICAvKiBEZWZpbmUgaWYgbGlicnBtIGxpYnJhcnkgaXMgYmVpbmcgdXNl ZC4gKi8KICAjdW5kZWYgSEFWRV9MSUJSUE0KICAKQEAgLTI1Miw3ICsyNDUsNyBAQCBJbmRleDog Z2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvY29uZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYgeW91 IGhhdmUgdGhlIDxsaWJ1bndpbmQtaWE2NC5oPiBoZWFkZXIgZmlsZS4gKi8KICAjdW5kZWYgSEFW RV9MSUJVTldJTkRfSUE2NF9ICiAgCi1AQCAtMzQyLDYgKzM0NSw5IEBACitAQCAtMzkzLDYgKzM5 Niw5IEBACiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzY21fbmV3X3Ntb2InIGZ1 bmN0aW9uLiAqLwogICN1bmRlZiBIQVZFX1NDTV9ORVdfU01PQgogIApAQCAtMjYyLDExICsyNTUs MTEgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmlu ZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0bG9jYWxlJyBmdW5jdGlvbi4gKi8KICAjdW5kZWYg SEFWRV9TRVRMT0NBTEUKICAKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9jb25maWd1 cmUKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jb25maWd1cmUKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDE1LTAxLTI1IDA4 OjM2OjU1LjcyMjg4NDU2MyArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2NvbmZp Z3VyZQkyMDE1LTAxLTI1IDA4OjM3OjAyLjgwOTkxNTExMCArMDEwMAotQEAgLTEzMjcwLDYgKzEz MjcwLDY0IEBAIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKy0tLSBnZGItNy45LjUwLjIwMTUw NTIwLm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDE1LTA1LTMxIDE4OjE2OjU0LjM0ODg5MDc0NiArMDIw MAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NvbmZpZ3VyZQkyMDE1LTA1LTMxIDE4OjE3 OjE5LjU5NDA0NjYwMiArMDIwMAorQEAgLTEzNzMwLDYgKzEzNzMwLDY0IEBAIGNhdCA+PmNvbmZk ZWZzLmggPDxfQUNFT0YKICBfQUNFT0YKICAKICAKQEAgLTMzMSwxMSArMzI0LDExIEBAIEluZGV4 OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9jb25maWd1cmUKICAKICAjIFN1cHBvcnQgZm9yIC0t d2l0aC1zeXNyb290IGlzIGEgY29weSBvZiBHREJfQUNfV0lUSF9ESVIsCiAgIyBleGNlcHQgdGhh dCB0aGUgYXJndW1lbnQgdG8gLS13aXRoLXN5c3Jvb3QgaXMgb3B0aW9uYWwuCi1JbmRleDogZ2Ri LTcuOC45MC4yMDE1MDEyNS9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgorSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4KID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNS0wMS0yNSAw ODozNjo1NS43MjQ4ODQ1NzIgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9nZGJz ZXJ2ZXIvY29uZmlnLmluCTIwMTUtMDEtMjUgMDg6Mzc6MDIuODA5OTE1MTEwICswMTAwCi1AQCAt NzUsNiArNzUsOSBAQAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZ2Ric2VydmVy L2NvbmZpZy5pbgkyMDE1LTA1LTMxIDE4OjE2OjU0LjM0ODg5MDc0NiArMDIwMAorKysrIGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNS0wNS0zMSAxODoxNzox OS41OTQwNDY2MDIgKzAyMDAKK0BAIC0xMTMsNiArMTEzLDkgQEAKICAvKiBEZWZpbmUgdG8gMSBp ZiB5b3UgaGF2ZSB0aGUgYG1jaGVjaycgbGlicmFyeSAoLWxtY2hlY2spLiAqLwogICN1bmRlZiBI QVZFX0xJQk1DSEVDSwogIApAQCAtMzQ1LDcgKzMzOCw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIw MTUwMTI1L2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCiAgLyogRGVmaW5lIGlmIHRoZSB0YXJnZXQg c3VwcG9ydHMgYnJhbmNoIHRyYWNpbmcuICovCiAgI3VuZGVmIEhBVkVfTElOVVhfQlRSQUNFCiAg Ci1AQCAtMTQyLDYgKzE0NSw5IEBACitAQCAtMTg2LDYgKzE4OSw5IEBACiAgLyogRGVmaW5lIHRv IDEgaWYgeW91IGhhdmUgdGhlIGBwd3JpdGUnIGZ1bmN0aW9uLiAqLwogICN1bmRlZiBIQVZFX1BX UklURQogIApAQCAtMzU1LDExICszNDgsMTEgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUv Z2RiL2dkYnNlcnZlci9jb25maWcuaW4KICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg PHNndHR5Lmg+IGhlYWRlciBmaWxlLiAqLwogICN1bmRlZiBIQVZFX1NHVFRZX0gKICAKLUluZGV4 OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCitJbmRleDogZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQkyMDE1LTAx LTI1IDA4OjM2OjU1LjcyNjg4NDU4MCArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2Ri L2dkYnNlcnZlci9jb25maWd1cmUJMjAxNS0wMS0yNSAwODozNzowMi44MTE5MTUxMTggKzAxMDAK LUBAIC02MTk5LDYgKzYxOTksNjQgQEAgaWYgJHdhbnRfaXBhIDsgdGhlbgorLS0tIGdkYi03Ljku NTAuMjAxNTA1MjAub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQkyMDE1LTA1LTMxIDE4OjE2 OjU0LjM0ODg5MDc0NiArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnNlcnZl ci9jb25maWd1cmUJMjAxNS0wNS0zMSAxODoxNzoxOS41OTYwNDY2MTQgKzAyMDAKK0BAIC03MDIy LDYgKzcwMjIsNjQgQEAgaWYgJHdhbnRfaXBhIDsgdGhlbgogICAgIGZpCiAgZmkKICAKCmRpZmYg LS1naXQgYS9nZGItYnRyb2J1c3QucGF0Y2ggYi9nZGItYnRyb2J1c3QucGF0Y2gKaW5kZXggYTI5 N2JlZS4uYjc5NzcyMyAxMDA2NDQKLS0tIGEvZ2RiLWJ0cm9idXN0LnBhdGNoCisrKyBiL2dkYi1i dHJvYnVzdC5wYXRjaApAQCAtMywxOSArMywxOSBAQCBwcmludGVkLCBidXQgYSBkZWZhdWx0IGJh Y2t0cmFjZSB3aWxsIG9jY3VyIGluIHRoaXMgY2FzZS4KIAogLS0KIAotSW5kZXg6IGdkYi03Ljgu OTAuMjAxNTAyMTQvZ2RiL3B5dGhvbi9weS1mcmFtZWZpbHRlci5jCitJbmRleDogZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvcHl0aG9uL3B5LWZyYW1lZmlsdGVyLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy44LjkwLjIwMTUwMjE0Lm9yaWcvZ2RiL3B5dGhvbi9weS1mcmFtZWZpbHRlci5jCTIwMTUt MDItMTQgMTc6MzU6MTIuMjc3NjUzMjAwICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIxNC9n ZGIvcHl0aG9uL3B5LWZyYW1lZmlsdGVyLmMJMjAxNS0wMi0xNCAxNzozNjoxNS43Mzc5NTM3ODkg KzAxMDAKLUBAIC0xNTA2LDYgKzE1MDYsNyBAQCBnZGJweV9hcHBseV9mcmFtZV9maWx0ZXIgKGNv bnN0IHN0cnVjdCBlCi0gICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBleGNlcHQ7Cist LS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9weXRob24vcHktZnJhbWVmaWx0ZXIuYwky MDE1LTA1LTMxIDE3OjM2OjM0LjY4MTk1MjUzMCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL3B5dGhvbi9weS1mcmFtZWZpbHRlci5jCTIwMTUtMDUtMzEgMTc6NTU6MDEuODg0Nzg4 MDMxICswMjAwCitAQCAtMTUyMyw2ICsxNTIzLDcgQEAgZ2RicHlfYXBwbHlfZnJhbWVfZmlsdGVy IChjb25zdCBzdHJ1Y3QgZQorICAgUHlPYmplY3QgKml0ZXJhYmxlOwogICAgUHlPYmplY3QgKml0 ZW07CiAgICBodGFiX3QgbGV2ZWxzX3ByaW50ZWQ7CiArICBpbnQgY291bnRfcHJpbnRlZCA9IDA7 CiAgCiAgICBpZiAoIWdkYl9weXRob25faW5pdGlhbGl6ZWQpCiAgICAgIHJldHVybiBFWFRfTEFO R19CVF9OT19GSUxURVJTOwotQEAgLTE1MjUsMjQgKzE1MjYsNyBAQCBnZGJweV9hcHBseV9mcmFt ZV9maWx0ZXIgKGNvbnN0IHN0cnVjdCBlCitAQCAtMTU0MywyNCArMTU0NCw3IEBAIGdkYnB5X2Fw cGx5X2ZyYW1lX2ZpbHRlciAoY29uc3Qgc3RydWN0IGUKICAgIGl0ZXJhYmxlID0gYm9vdHN0cmFw X3B5dGhvbl9mcmFtZV9maWx0ZXJzIChmcmFtZSwgZnJhbWVfbG93LCBmcmFtZV9oaWdoKTsKICAK ICAgIGlmIChpdGVyYWJsZSA9PSBOVUxMKQpAQCAtNDEsNyArNDEsNyBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDIxNC9nZGIvcHl0aG9uL3B5LWZyYW1lZmlsdGVyLmMKICAKICAgIC8qIElmIGl0 ZXJhYmxlIGlzIE5vbmUsIHRoZW4gdGhlcmUgYXJlIG5vIGZyYW1lIGZpbHRlcnMgcmVnaXN0ZXJl ZC4KICAgICAgIElmIHRoaXMgaXMgdGhlIGNhc2UsIGRlZmVyIHRvIGRlZmF1bHQgR0RCIHByaW50 aW5nIHJvdXRpbmVzIGluIE1JCi1AQCAtMTU3MywxNSArMTU1Nyw0MCBAQCBnZGJweV9hcHBseV9m cmFtZV9maWx0ZXIgKGNvbnN0IHN0cnVjdCBlCitAQCAtMTU5MSwxNSArMTU3NSw0MCBAQCBnZGJw eV9hcHBseV9mcmFtZV9maWx0ZXIgKGNvbnN0IHN0cnVjdCBlCiAgCSBlcnJvciBhbmQgY29udGlu dWUgd2l0aCBvdGhlciBmcmFtZXMuICAqLwogICAgICAgIGlmIChzdWNjZXNzID09IEVYVF9MQU5H X0JUX0VSUk9SKQogIAlnZGJweV9wcmludF9zdGFjayAoKTsKCmRpZmYgLS1naXQgYS9nZGItYno1 NDE4NjYtcndhdGNoLWJlZm9yZS1ydW4ucGF0Y2ggYi9nZGItYno1NDE4NjYtcndhdGNoLWJlZm9y ZS1ydW4ucGF0Y2gKaW5kZXggOTU4MjlmOS4uODNiM2EzNSAxMDA2NDQKLS0tIGEvZ2RiLWJ6NTQx ODY2LXJ3YXRjaC1iZWZvcmUtcnVuLnBhdGNoCisrKyBiL2dkYi1iejU0MTg2Ni1yd2F0Y2gtYmVm b3JlLXJ1bi5wYXRjaApAQCAtMSwyMCArMSwyMCBAQAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4NjQubWgKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4y MDE0MTIyOC5vcmlnL2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCTIwMTUtMDEtMDEgMTc6MTI6 NTMuOTY1NDcyMjI3ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29uZmlnL2kz ODYvbGludXg2NC5taAkyMDE1LTAxLTAxIDE3OjEyOjU1LjM2NzQ3MTQxNCArMDEwMAotQEAgLTYs NyArNiw3IEBAIE5BVERFUEZJTEVTPSBpbmYtcHRyYWNlLm8gZm9yay1jaGlsZC5vIFwKLSAJcHJv Yy1zZXJ2aWNlLm8gbGludXgtdGhyZWFkLWRiLm8gbGludXgtZm9yay5vIFwKKy0tLSBnZGItNy45 LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4NjQubWgJMjAxNS0wNS0zMSAx Njo1OTozNC4yNTgwMTg4MjcgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jb25m aWcvaTM4Ni9saW51eDY0Lm1oCTIwMTUtMDUtMzEgMTY6NTk6NDcuNzc5MTA0MTYzICswMjAwCitA QCAtNyw3ICs3LDcgQEAgTkFUREVQRklMRVM9IGluZi1wdHJhY2UubyBmb3JrLWNoaWxkLm8gXAog IAlsaW51eC1wcm9jZnMubyBsaW51eC1wdHJhY2UubyBsaW51eC1idHJhY2UubyBcCi0gCWxpbnV4 LXdhaXRwaWQubworIAlsaW51eC13YWl0cGlkLm8gbGludXgtcGVyc29uYWxpdHkubyB4ODYtbGlu dXgubyBcCisgCXg4Ni1saW51eC1kcmVncy5vCiAtTkFUX0ZJTEU9IGNvbmZpZy9ubS1saW51eC5o CiArTkFUX0ZJTEU9IG5tLWxpbnV4NjQuaAogIE5BVF9DREVQUyA9ICQoc3JjZGlyKS9wcm9jLXNl cnZpY2UubGlzdAogIAogICMgVGhlIGR5bmFtaWNhbGx5IGxvYWRlZCBsaWJ0aHJlYWRfZGIgbmVl ZHMgYWNjZXNzIHRvIHN5bWJvbHMgaW4gdGhlCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvY29uZmlnL2kzODYvbGludXgubWgKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9j b25maWcvaTM4Ni9saW51eC5taAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgu b3JpZy9nZGIvY29uZmlnL2kzODYvbGludXgubWgJMjAxNS0wMS0wMSAxNzoxMjo1NS4zNjc0NzE0 MTQgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb25maWcvaTM4Ni9saW51eC5t aAkyMDE1LTAxLTAxIDE3OjEzOjA3LjU2ODQ2NDM0MiArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAx NTA1MjAub3JpZy9nZGIvY29uZmlnL2kzODYvbGludXgubWgJMjAxNS0wNS0zMSAxNjo1NjoxMi44 Njk3NDc3OTYgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jb25maWcvaTM4Ni9s aW51eC5taAkyMDE1LTA1LTMxIDE2OjU5OjM0LjI1OTAxODgzMyArMDIwMAogQEAgLTEsNiArMSw2 IEBACiAgIyBIb3N0OiBJbnRlbCAzODYgcnVubmluZyBHTlUvTGludXguCiAgCkBAIC0yMywxMCAr MjMsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4 Lm1oCiAgTkFUREVQRklMRVM9IGluZi1wdHJhY2UubyBmb3JrLWNoaWxkLm8gXAogIAl4ODYtbmF0 Lm8geDg2LWRyZWdzLm8gaTM4Ni1saW51eC1uYXQubyB4ODYtbGludXgtbmF0Lm8gXAogIAlwcm9j LXNlcnZpY2UubyBsaW51eC10aHJlYWQtZGIubyBcCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvY29uZmlnL2kzODYvbm0tbGludXguaAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9jb25maWcvaTM4Ni9ubS1saW51eC5oCTIwMTUtMDEtMDEgMTc6MTI6NTUuMzY4NDcxNDE0 ICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvY29uZmlnL2kzODYvbm0tbGludXgu aAkyMDE1LTA1LTMxIDE2OjU5OjM0LjI1OTAxODgzMyArMDIwMAogQEAgLTAsMCArMSwyOCBAQAog Ky8qIE5hdGl2ZSBzdXBwb3J0IGZvciBHTlUvTGludXggaTM4Ni4KICsKQEAgLTU2LDEwICs1Niwx MCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29uZmlnL2kzODYvbm0tbGludXgu aAogKyNkZWZpbmUgdGFyZ2V0X2Nhbl91c2VfaGFyZHdhcmVfd2F0Y2hwb2ludCh0eXBlLCBjbnQs IG90KSAxCiArCiArI2VuZGlmIC8qIE5NX0xJTlVYNjRfSCAqLwotSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4NjQuaAorSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4NjQuaAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4NjQuaAkyMDE1LTAxLTAxIDE3OjEy OjU1LjM2ODQ3MTQxNCArMDEwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NvbmZpZy9p Mzg2L25tLWxpbnV4NjQuaAkyMDE1LTA1LTMxIDE2OjU5OjM0LjI1OTAxODgzMyArMDIwMAogQEAg LTAsMCArMSwyOCBAQAogKy8qIE5hdGl2ZSBzdXBwb3J0IGZvciBHTlUvTGludXggYW1kNjQuCiAr CkBAIC04OSwyNiArODksMjYgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbmZp Zy9pMzg2L25tLWxpbnV4NjQuaAogKyNkZWZpbmUgdGFyZ2V0X2Nhbl91c2VfaGFyZHdhcmVfd2F0 Y2hwb2ludCh0eXBlLCBjbnQsIG90KSAxCiArCiArI2VuZGlmIC8qIE5NX0xJTlVYNjRfSCAqLwot SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3RhcmdldC5oCitJbmRleDogZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvdGFyZ2V0LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQx MjI4Lm9yaWcvZ2RiL3RhcmdldC5oCTIwMTUtMDEtMDEgMTc6MTI6NTMuOTY3NDcyMjI2ICswMTAw Ci0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGFyZ2V0LmgJMjAxNS0wMS0wMSAxNzoxMjo1 NS4zNjg0NzE0MTQgKzAxMDAKLUBAIC0xNzU0LDkgKzE3NTQsMTEgQEAgZXh0ZXJuIGNoYXIgKnRh cmdldF90aHJlYWRfbmFtZSAoc3RydWN0Ci0gICAgYnBfaGFyZHdhcmVfYnJlYWtwb2ludC4gIENO VCBpcyB0aGUgbnVtYmVyIG9mIHN1Y2ggd2F0Y2hwb2ludHMgdXNlZCBzbyBmYXIKLSAgICAoaW5j bHVkaW5nIHRoaXMgb25lPykuICBPVEhFUlRZUEUgaXMgd2hvIGtub3dzIHdoYXQuLi4gICovCist LS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi90YXJnZXQuaAkyMDE1LTA1LTMxIDE2OjU5 OjM0LjI2MDAxODgzOSArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3RhcmdldC5o CTIwMTUtMDUtMzEgMTc6MDA6MTEuMDY3MjUxMTQzICswMjAwCitAQCAtMTgyMCw5ICsxODIwLDEx IEBAIGV4dGVybiBjaGFyICp0YXJnZXRfdGhyZWFkX25hbWUgKHN0cnVjdAorICAgIENOVCBpcyB0 aGUgbnVtYmVyIG9mIHN1Y2ggd2F0Y2hwb2ludHMgdXNlZCBzbyBmYXIsIGluY2x1ZGluZyB0aGlz CisgICAgb25lLiAgT1RIRVJUWVBFIGlzIHdobyBrbm93cyB3aGF0Li4uICAqLwogIAogKyNpZm5k ZWYgdGFyZ2V0X2Nhbl91c2VfaGFyZHdhcmVfd2F0Y2hwb2ludAogICNkZWZpbmUgdGFyZ2V0X2Nh bl91c2VfaGFyZHdhcmVfd2F0Y2hwb2ludChUWVBFLENOVCxPVEhFUlRZUEUpIFwKICAgKCpjdXJy ZW50X3RhcmdldC50b19jYW5fdXNlX2h3X2JyZWFrcG9pbnQpICgmY3VycmVudF90YXJnZXQsICBc Ci0gCQkJCQkgICAgIFRZUEUsIENOVCwgT1RIRVJUWVBFKTsKKyAJCQkJCSAgICAgVFlQRSwgQ05U LCBPVEhFUlRZUEUpCiArI2VuZGlmCiAgCiAgLyogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRlYnVn IHJlZ2lzdGVycyBuZWVkZWQgdG8gd2F0Y2ggdGhlIGdpdmVuCiAgICAgbWVtb3J5IHJlZ2lvbiwg b3IgemVybyBpZiBub3Qgc3VwcG9ydGVkLiAgKi8KLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvd2F0Y2hwb2ludC1ody1iZWZvcmUtcnVuLmV4cAorSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS93YXRjaHBvaW50 LWh3LWJlZm9yZS1ydW4uZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEg MDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHctYmVmb3JlLXJ1bi5leHAJMjAxNS0wMS0wMSAx NzoxMjo1NS4zNjk0NzE0MTMgKzAxMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2Uvd2F0Y2hwb2ludC1ody1iZWZvcmUtcnVuLmV4cAkyMDE1LTA1LTMxIDE2 OjU5OjM0LjI2MTAxODg0NiArMDIwMAogQEAgLTAsMCArMSw0MCBAQAogKyMgQ29weXJpZ2h0IDIw MDksIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCgpkaWZmIC0tZ2l0IGEv Z2RiLWR0cy1yaGVsNi1weXRob24tY29tcGF0LnBhdGNoIGIvZ2RiLWR0cy1yaGVsNi1weXRob24t Y29tcGF0LnBhdGNoCmluZGV4IDc0OWUyY2YuLjgzODhjODYgMTAwNjQ0Ci0tLSBhL2dkYi1kdHMt cmhlbDYtcHl0aG9uLWNvbXBhdC5wYXRjaAorKysgYi9nZGItZHRzLXJoZWw2LXB5dGhvbi1jb21w YXQucGF0Y2gKQEAgLTEsOSArMSw5IEBACiBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hv d19idWcuY2dpP2lkPTEwMjAwMDQKIAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2Rh dGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv ZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIw MTQxMjI4Lm9yaWcvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCTIwMTUtMDEtMDUgMjI6 NTE6MTAuNzA3NzU2ODEwICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZGF0YS1k aXJlY3RvcnkvTWFrZWZpbGUuaW4JMjAxNS0wMS0wNSAyMjo1MTo0OC42MDg5MjMxMzkgKzAxMDAK Ky0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxl LmluCTIwMTUtMDUtMzEgMTg6MDU6NDMuMDQ2NzQ2MzUxICswMjAwCisrKysgZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4JMjAxNS0wNS0zMSAxODowNTo1 OC40ODM4NDE2NTUgKzAyMDAKIEBAIC02MCw2ICs2MCw4IEBAIFBZVEhPTl9GSUxFX0xJU1QgPSBc CiAgCWdkYi9mcmFtZXMucHkgXAogIAlnZGIvRnJhbWVJdGVyYXRvci5weSBcCkBAIC0xMiw4ICsx Miw4IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtl ZmlsZS5pbgogKwlnZGIvYmFja3RyYWNlLnB5IFwKICAJZ2RiL3R5cGVzLnB5IFwKICAJZ2RiL3By aW50aW5nLnB5IFwKLSAJZ2RiL3Byb21wdC5weSBcCi1AQCAtNzQsNiArNzYsNyBAQCBQWVRIT05f RklMRV9MSVNUID0gXAorIAlnZGIvdW53aW5kZXIucHkgXAorQEAgLTc2LDYgKzc4LDcgQEAgUFlU SE9OX0ZJTEVfTElTVCA9IFwKICAJZ2RiL2NvbW1hbmQvcHJldHR5X3ByaW50ZXJzLnB5IFwKICAJ Z2RiL2NvbW1hbmQvcHJvbXB0LnB5IFwKICAJZ2RiL2NvbW1hbmQvZXhwbG9yZS5weSBcCkBAIC0y MSwxMCArMjEsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2RhdGEtZGlyZWN0 b3J5L01ha2VmaWxlLmluCiAgCWdkYi9mdW5jdGlvbi9fX2luaXRfXy5weSBcCiAgCWdkYi9mdW5j dGlvbi9jYWxsZXJfaXMucHkgXAogIAlnZGIvZnVuY3Rpb24vc3RyZm5zLnB5IFwKLUluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIucHkKK0lu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIu cHkKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9weXRob24vbGliL2dkYi9GcmFt ZVdyYXBwZXIucHkJMjAxNS0wMS0wNSAyMjo1MToyNC43MDY4MTgyNDUgKzAxMDAKKysrKyBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIucHkJMjAxNS0w NS0zMSAxODowNTo1OC40ODQ4NDE2NjEgKzAyMDAKIEBAIC0wLDAgKzEsMTIyIEBACiArIyBXcmFw cGVyIEFQSSBmb3IgZnJhbWVzLgogKwpAQCAtMTQ4LDEwICsxNDgsMTAgQEAgSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL3B5dGhvbi9saWIvZ2RiL0ZyYW1lV3JhcHBlci5weQogKwogKyAg ICBkZWYgX19nZXRhdHRyX18gKHNlbGYsIG5hbWUpOgogKyAgICAgICAgcmV0dXJuIGdldGF0dHIg KHNlbGYuZnJhbWUsIG5hbWUpCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHl0aG9u L2xpYi9nZGIvYmFja3RyYWNlLnB5CitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0 aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAt MDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvcHl0aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5CTIwMTUtMDEtMDUgMjI6NTE6MjQuNzA2ODE4 MjQ1ICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xpYi9nZGIvYmFj a3RyYWNlLnB5CTIwMTUtMDUtMzEgMTg6MDU6NTguNDg0ODQxNjYxICswMjAwCiBAQCAtMCwwICsx LDQyIEBACiArIyBGaWx0ZXJpbmcgYmFja3RyYWNlLgogKwpAQCAtMTk1LDEwICsxOTUsMTAgQEAg SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3B5dGhvbi9saWIvZ2RiL2JhY2t0cmFjZS5w eQogKyAgICAgICAgcmV0dXJuIGl0ZXIKICsgICAgcmV0dXJuIG9sZF9mcmFtZV9maWx0ZXIgKGl0 ZXIpCiArCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHl0aG9uL2xpYi9nZGIvY29t bWFuZC9iYWNrdHJhY2UucHkKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24v bGliL2dkYi9jb21tYW5kL2JhY2t0cmFjZS5weQogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkx OTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5CTIwMTUtMDEtMDUgMjI6 NTE6MjQuNzA3ODE4MjQ5ICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9u L2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkJMjAxNS0wNS0zMSAxODowNTo1OC40ODQ4NDE2 NjEgKzAyMDAKIEBAIC0wLDAgKzEsMTA2IEBACiArIyBOZXcgYmFja3RyYWNlIGNvbW1hbmQuCiAr CgpkaWZmIC0tZ2l0IGEvZ2RiLWVuYWJsZS1jb3VudC1jcmFzaC5wYXRjaCBiL2dkYi1lbmFibGUt Y291bnQtY3Jhc2gucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjZGQ1YmEu LjAwMDAwMDAKLS0tIGEvZ2RiLWVuYWJsZS1jb3VudC1jcmFzaC5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDg1ICswLDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8y MDEzLTA2L21zZzAwNzg4Lmh0bWwKLVN1YmplY3Q6IFtQQVRDSF0gImVuYWJsZSBjb3VudCIgdXNl ciBpbnB1dCBlcnJvciBoYW5kbGluZyAoUFIgZ2RiLzE1Njc4KQotCi1UeXBpbmcgImVuYWJsZSBj b3VudCIgYnkgaXRzZWxmIGNyYXNoZXMgR0RCLiBBbHNvLCBpZiB5b3Ugb21pdCB0aGUKLWJyZWFr cG9pbnQgbnVtYmVyL3JhbmdlLCB0aGUgZXJyb3IgbWVzc2FnZSBpcyBub3QgdmVyeSBjbGVhcjoK LQotKGdkYikgZW5hYmxlIGNvdW50IDIKLXdhcm5pbmc6IGJhZCBicmVha3BvaW50IG51bWJlciBh dCBvciBuZWFyICcnCi0oZ2RiKSBlbmFibGUgY291bnQKLVNlZ21lbnRhdGlvbiBmYXVsdCAoY29y ZSBkdW1wZWQpCi0KLVdpdGggdGhpcyBwYXRjaCwgdGhlIGVycm9yIG1lc3NhZ2VzIGFyZSBzbGln aHRseSBtb3JlIGhlbHBmdWw6Ci0KLShnZGIpIGVuYWJsZSBjb3VudCAyCi1Bcmd1bWVudCByZXF1 aXJlZCAob25lIG9yIG1vcmUgYnJlYWtwb2ludCBudW1iZXJzKS4KLShnZGIpIGVuYWJsZSBjb3Vu dAotQXJndW1lbnQgcmVxdWlyZWQgKGhpdCBjb3VudCkuCi0KLVRoZXkgYXJlIG5vdCBhcyBoZWxw ZnVsIHRvIHRoZSB1c2VyIGFzIEkgd291bGQgbGlrZSwgYnV0IGl0J3MgYmV0dGVyCi10aGFuIGNy YXNoaW5nLiBTdWdnZXN0aW9ucyBhcmUgd2VsY29tZS4KLQotU2ltb24KLQotZ2RiL0NoYW5nZUxv ZzoKLTIwMTMtMDYtMjYgIFNpbW9uIE1hcmNoaSAgPHNpbW9uLm1hcmNoaUBlcmljc3Nvbi5jb20+ Ci0KLQkqIGJyZWFrcG9pbnQuYyAobWFwX2JyZWFrcG9pbnRfbnVtYmVycyk6IENoZWNrIGZvciBl bXB0eSBhcmdzCi0Jc3RyaW5nLgotCShlbmFibGVfY291bnRfY29tbWFuZCk6IENoZWNrIGFyZ3Mg Zm9yIE5VTEwgdmFsdWUuCi0KLWdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nOgotMjAxMy0wNi0yNiAg U2ltb24gTWFyY2hpICA8c2ltb24ubWFyY2hpQGVyaWNzc29uLmNvbT4KLQotCSogZ2RiLmJhc2Uv ZW5hLWRpcy1ici5leHA6IFRlc3QgImVuYWJsZSBjb3VudCIgZm9yIGJhZCB1c2VyIGlucHV0Lgot LS0tCi0gZ2RiL2JyZWFrcG9pbnQuYyAgICAgICAgICAgICAgICAgICAgICB8IDkgKysrKysrKy0t Ci0gZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9lbmEtZGlzLWJyLmV4cCB8IDggKysrKysrKysKLSAy IGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLUluZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9icmVha3BvaW50LmMKLT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuYwkyMDE1LTAxLTA1IDIyOjIx OjQ3LjYzMTgwMTU1OCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2JyZWFrcG9p bnQuYwkyMDE1LTAxLTA1IDIyOjI2OjEzLjE2NTAwNTA0OSArMDEwMAotQEAgLTE0ODQ5LDcgKzE0 ODQ5LDcgQEAgbWFwX2JyZWFrcG9pbnRfbnVtYmVycyAoY2hhciAqYXJncywgdm9pZAotICAgaW50 IG1hdGNoOwotICAgc3RydWN0IGdldF9udW1iZXJfb3JfcmFuZ2Vfc3RhdGUgc3RhdGU7Ci0gCi0t ICBpZiAoYXJncyA9PSAwKQotKyAgaWYgKGFyZ3MgPT0gMCB8fCAqYXJncyA9PSAnXDAnKQotICAg ICBlcnJvcl9ub19hcmcgKF8oIm9uZSBvciBtb3JlIGJyZWFrcG9pbnQgbnVtYmVycyIpKTsKLSAK LSAgIGluaXRfbnVtYmVyX29yX3JhbmdlICgmc3RhdGUsIGFyZ3MpOwotQEAgLTE1MTg2LDcgKzE1 MTg2LDEyIEBAIGRvX21hcF9lbmFibGVfY291bnRfYnJlYWtwb2ludCAoc3RydWN0IGIKLSBzdGF0 aWMgdm9pZAotIGVuYWJsZV9jb3VudF9jb21tYW5kIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkp Ci0gewotLSAgaW50IGNvdW50ID0gZ2V0X251bWJlciAoJmFyZ3MpOwotKyAgaW50IGNvdW50Owot KwotKyAgaWYgKGFyZ3MgPT0gTlVMTCkKLSsgICAgZXJyb3Jfbm9fYXJnIChfKCJoaXQgY291bnQi KSk7Ci0rCi0rICBjb3VudCA9IGdldF9udW1iZXIgKCZhcmdzKTsKLSAKLSAgIG1hcF9icmVha3Bv aW50X251bWJlcnMgKGFyZ3MsIGRvX21hcF9lbmFibGVfY291bnRfYnJlYWtwb2ludCwgJmNvdW50 KTsKLSB9Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2VuYS1kaXMtYnIuZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmln L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZW5hLWRpcy1ici5leHAJMjAxNS0wMS0wNSAyMjoyNjox My4xNjUwMDUwNDkgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvZW5hLWRpcy1ici5leHAJMjAxNS0wMS0wNSAyMjoyNjo1MS4zNTcxNzgxNTAgKzAx MDAKLUBAIC0xNTEsNiArMTUxLDE0IEBAIHNldCBicCBbYnJlYWtfYXQgJGJwX2xvY2F0aW9uNyAi bGluZSAkYnAKLSAKLSBzZXQgYnAyIFticmVha19hdCBtYXJrZXIxICIgbGluZSAkYnBfbG9jYXRp b24xNSJdCi0gCi0rZ2RiX3Rlc3QgImVuYWJsZSBjb3VudCIgXAotKyAgICAiQXJndW1lbnQgcmVx dWlyZWQgXFwoaGl0IGNvdW50XFwpXFwuIiBcCi0rICAgICJlbmFibGUgY291bnQgbWlzc2luZyBh cmd1bWVudHMiCi0rCi0rZ2RiX3Rlc3QgImVuYWJsZSBjb3VudCAyIiBcCi0rICAgICJBcmd1bWVu dCByZXF1aXJlZCBcXChvbmUgb3IgbW9yZSBicmVha3BvaW50IG51bWJlcnNcXClcXC4iIFwKLSsg ICAgImVuYWJsZSBjb3VudCBtaXNzaW5nIGxhc3QgYXJndW1lbnQiCi0rCi0gZ2RiX3Rlc3Rfbm9f b3V0cHV0ICJlbmFibGUgY291bnQgMiAkYnAiICJkaXNhYmxlIGJyZWFrIHdpdGggY291bnQiCi0g Ci0gZ2RiX3Rlc3QgImNvbnRpbnVlIiBcCgpkaWZmIC0tZ2l0IGEvZ2RiLWdsaWJjLXZkc28td29y a2Fyb3VuZC5wYXRjaCBiL2dkYi1nbGliYy12ZHNvLXdvcmthcm91bmQucGF0Y2gKaW5kZXggNDg2 NDZkNy4uNjAxY2YyYSAxMDA2NDQKLS0tIGEvZ2RiLWdsaWJjLXZkc28td29ya2Fyb3VuZC5wYXRj aAorKysgYi9nZGItZ2xpYmMtdmRzby13b3JrYXJvdW5kLnBhdGNoCkBAIC0xMSwxMSArMTEsMTMg QEAgZ2RiLwogCVdvcmsgYXJvdW5kIFBSIGxpYmMvMTMwOTcuCiAJKiBzb2xpYi5jICh1cGRhdGVf c29saWJfbGlzdCk6IElnbm9yZSAibGludXgtdmRzby5zby4xIi4KIAotLS0tIGEvZ2RiL3NvbGli LmMKLSsrKyBiL2dkYi9zb2xpYi5jCi1AQCAtNzgzLDggKzc4MywxMSBAQCB1cGRhdGVfc29saWJf bGlzdCAoaW50IGZyb21fdHR5LCBzdHJ1Y3QgdGFyZ2V0X29wcyAqdGFyZ2V0KQorSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL3NvbGliLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy45LjUw LjIwMTUwNTIwLm9yaWcvZ2RiL3NvbGliLmMJMjAxNS0wNS0zMSAxNzowNDoxNi44NzA4MDI0OTMg KzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zb2xpYi5jCTIwMTUtMDUtMzEgMTc6 MDQ6MzguODI0OTQxMDU0ICswMjAwCitAQCAtODkzLDggKzg5MywxMSBAQCB1cGRhdGVfc29saWJf bGlzdCAoaW50IGZyb21fdHR5LCBzdHJ1Y3QKICAKLSAJICBUUllfQ0FUQ0ggKGUsIFJFVFVSTl9N QVNLX0VSUk9SKQorIAkgIFRSWQogIAkgICAgewogLQkgICAgICAvKiBGaWxsIGluIHRoZSByZXN0 IG9mIHRoZSBgc3RydWN0IHNvX2xpc3QnIG5vZGUuICAqLwogLQkgICAgICBpZiAoIXNvbGliX21h cF9zZWN0aW9ucyAoaSkpCkBAIC0yNyw0ICsyOSwzIEBAIGdkYi8KICAJCXsKICAJCSAgbm90X2Zv dW5kKys7CiAgCQkgIGlmIChub3RfZm91bmRfZmlsZW5hbWUgPT0gTlVMTCkKLQoKZGlmZiAtLWdp dCBhL2dkYi1uby1kZy1leHRyYWN0LXJlc3VsdHMtcHkucGF0Y2ggYi9nZGItbm8tZGctZXh0cmFj dC1yZXN1bHRzLXB5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MGUxZmVh Li4wMDAwMDAwCi0tLSBhL2dkYi1uby1kZy1leHRyYWN0LXJlc3VsdHMtcHkucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw1ODkgKzAsMCBAQAotZGlmZiAtZHVwIC1ydU5wIGdkYi03LjguOTAuMjAx NTAyMDItb3JpZy9nZGIvdGVzdHN1aXRlL2RnLWV4dHJhY3QtcmVzdWx0cy5weSBnZGItNy44Ljkw LjIwMTUwMjAyL2dkYi90ZXN0c3VpdGUvZGctZXh0cmFjdC1yZXN1bHRzLnB5Ci0tLS0gZ2RiLTcu OC45MC4yMDE1MDIwMi1vcmlnL2dkYi90ZXN0c3VpdGUvZGctZXh0cmFjdC1yZXN1bHRzLnB5CTIw MTUtMDItMDIgMDI6NTg6MjkuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvdGVzdHN1aXRlL2RnLWV4dHJhY3QtcmVzdWx0cy5weQkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAotQEAgLTEsNTg1ICswLDAgQEAKLS0jIS91c3IvYmluL3B5dGhvbgot LSMKLS0jIENvcHlyaWdodCAoQykgMjAxNC0yMDE1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgotLSMKLS0jIFRoaXMgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLS0jIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0tIyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzLCBvciAoYXQgeW91ciBvcHRpb24pCi0t IyBhbnkgbGF0ZXIgdmVyc2lvbi4KLS0KLS1pbXBvcnQgc3lzCi0taW1wb3J0IGdldG9wdAotLWlt cG9ydCByZQotLWltcG9ydCBpbwotLWZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCi0tZnJv bSBvcGVyYXRvciBpbXBvcnQgYXR0cmdldHRlcgotLQotLSMgVHJ1ZSBpZiB1bnJlY29nbmlzZWQg bGluZXMgc2hvdWxkIGNhdXNlIGEgZmF0YWwgZXJyb3IuICBNaWdodCB3YW50IHRvIHR1cm4KLS0j IHRoaXMgb24gYnkgZGVmYXVsdCBsYXRlci4KLS1zdHJpY3QgPSBGYWxzZQotLQotLSMgVHJ1ZSBp ZiB0aGUgb3JkZXIgb2YgLmxvZyBzZWdtZW50cyBzaG91bGQgbWF0Y2ggdGhlIC5zdW0gZmlsZSwg ZmFsc2UgaWYKLS0jIHRoZXkgc2hvdWxkIGtlZXAgdGhlIG9yaWdpbmFsIG9yZGVyLgotLXNvcnRf bG9ncyA9IFRydWUKLS0KLS0jIEEgdmVyc2lvbiBvZiBvcGVuKCkgdGhhdCBpcyBzYWZlIGFnYWlu c3Qgd2hhdGV2ZXIgYmluYXJ5IG91dHB1dAotLSMgbWlnaHQgYmUgYWRkZWQgdG8gdGhlIGxvZy4K LS1kZWYgc2FmZV9vcGVuIChmaWxlbmFtZSk6Ci0tICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0g KDMsIDApOgotLSAgICAgICAgcmV0dXJuIG9wZW4gKGZpbGVuYW1lLCAncicsIGVycm9ycyA9ICdz dXJyb2dhdGVlc2NhcGUnKQotLSAgICByZXR1cm4gb3BlbiAoZmlsZW5hbWUsICdyJykKLS0KLS0j IEZvcmNlIHN0ZG91dCB0byBoYW5kbGUgZXNjYXBlIHNlcXVlbmNlcyBmcm9tIGEgc2FmZV9vcGVu IGZpbGUuCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0tICAgIHN5cy5zdGRvdXQg PSBpby5UZXh0SU9XcmFwcGVyIChzeXMuc3Rkb3V0LmJ1ZmZlciwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGVycm9ycyA9ICdzdXJyb2dhdGVlc2NhcGUnKQotLQotLWNsYXNz IE5hbWVkOgotLSAgICBkZWYgX19pbml0X18gKHNlbGYsIG5hbWUpOgotLSAgICAgICAgc2VsZi5u YW1lID0gbmFtZQotLQotLWNsYXNzIFRvb2xSdW4gKE5hbWVkKToKLS0gICAgZGVmIF9faW5pdF9f IChzZWxmLCBuYW1lKToKLS0gICAgICAgIE5hbWVkLl9faW5pdF9fIChzZWxmLCBuYW1lKQotLSAg ICAgICAgIyBUaGUgdmFyaWF0aW9ucyBydW4gZm9yIHRoaXMgdG9vbCwgbWFwcGVkIGJ5IC0tdGFy Z2V0X2JvYXJkIG5hbWUuCi0tICAgICAgICBzZWxmLnZhcmlhdGlvbnMgPSBkaWN0KCkKLS0KLS0g ICAgIyBSZXR1cm4gdGhlIFZhcmlhdGlvblJ1biBmb3IgdmFyaWF0aW9uIE5BTUUuCi0tICAgIGRl ZiBnZXRfdmFyaWF0aW9uIChzZWxmLCBuYW1lKToKLS0gICAgICAgIGlmIG5hbWUgbm90IGluIHNl bGYudmFyaWF0aW9uczoKLS0gICAgICAgICAgICBzZWxmLnZhcmlhdGlvbnNbbmFtZV0gPSBWYXJp YXRpb25SdW4gKG5hbWUpCi0tICAgICAgICByZXR1cm4gc2VsZi52YXJpYXRpb25zW25hbWVdCi0t Ci0tY2xhc3MgVmFyaWF0aW9uUnVuIChOYW1lZCk6Ci0tICAgIGRlZiBfX2luaXRfXyAoc2VsZiwg bmFtZSk6Ci0tICAgICAgICBOYW1lZC5fX2luaXRfXyAoc2VsZiwgbmFtZSkKLS0gICAgICAgICMg QSBzZWdtZW50IG9mIHRleHQgYmVmb3JlIHRoZSBoYXJuZXNzIHJ1bnMgc3RhcnQsIGRlc2NyaWJp bmcgd2hpY2gKLS0gICAgICAgICMgYmFzZWJvYXJkIGZpbGVzIHdlcmUgbG9hZGVkIGZvciB0aGUg dGFyZ2V0LgotLSAgICAgICAgc2VsZi5oZWFkZXIgPSBOb25lCi0tICAgICAgICAjIFRoZSBoYXJu ZXNzZXMgcnVuIGZvciB0aGlzIHZhcmlhdGlvbiwgbWFwcGVkIGJ5IGZpbGVuYW1lLgotLSAgICAg ICAgc2VsZi5oYXJuZXNzZXMgPSBkaWN0KCkKLS0gICAgICAgICMgQSBsaXN0IGdpdmluZyB0aGUg bnVtYmVyIG9mIHRpbWVzIGVhY2ggdHlwZSBvZiByZXN1bHQgaGFzCi0tICAgICAgICAjIGJlZW4g c2Vlbi4KLS0gICAgICAgIHNlbGYuY291bnRzID0gW10KLS0KLS0gICAgIyBSZXR1cm4gdGhlIEhh cm5lc3NSdW4gZm9yIGhhcm5lc3MgTkFNRS4KLS0gICAgZGVmIGdldF9oYXJuZXNzIChzZWxmLCBu YW1lKToKLS0gICAgICAgIGlmIG5hbWUgbm90IGluIHNlbGYuaGFybmVzc2VzOgotLSAgICAgICAg ICAgIHNlbGYuaGFybmVzc2VzW25hbWVdID0gSGFybmVzc1J1biAobmFtZSkKLS0gICAgICAgIHJl dHVybiBzZWxmLmhhcm5lc3Nlc1tuYW1lXQotLQotLWNsYXNzIEhhcm5lc3NSdW4gKE5hbWVkKToK LS0gICAgZGVmIF9faW5pdF9fIChzZWxmLCBuYW1lKToKLS0gICAgICAgIE5hbWVkLl9faW5pdF9f IChzZWxmLCBuYW1lKQotLSAgICAgICAgIyBTZWdtZW50cyBvZiB0ZXh0IHRoYXQgbWFrZSB1cCB0 aGUgaGFybmVzcyBydW4sIG1hcHBlZCBieSBhIHRlc3QtYmFzZWQKLS0gICAgICAgICMga2V5IHRo YXQgY2FuIGJlIHVzZWQgdG8gb3JkZXIgdGhlbS4KLS0gICAgICAgIHNlbGYuc2VnbWVudHMgPSBk aWN0KCkKLS0gICAgICAgICMgU2VnbWVudHMgb2YgdGV4dCB0aGF0IG1ha2UgdXAgdGhlIGhhcm5l c3MgcnVuIGJ1dCB3aGljaCBoYXZlCi0tICAgICAgICAjIG5vIHJlY29nbml6ZWQgdGVzdCByZXN1 bHRzLiAgVGhlc2UgYXJlIHR5cGljYWxseSBoYXJuZXNzZXMgdGhhdAotLSAgICAgICAgIyBhcmUg Y29tcGxldGVseSBza2lwcGVkIGZvciB0aGUgdGFyZ2V0LgotLSAgICAgICAgc2VsZi5lbXB0eSA9 IFtdCi0tICAgICAgICAjIEEgbGlzdCBvZiByZXN1bHRzLiAgRWFjaCBlbnRyeSBpcyBhIHBhaXIg aW4gd2hpY2ggdGhlIGZpcnN0IGVsZW1lbnQKLS0gICAgICAgICMgaXMgYSB1bmlxdWUgc29ydGlu ZyBrZXkgYW5kIGluIHdoaWNoIHRoZSBzZWNvbmQgaXMgdGhlIGZ1bGwKLS0gICAgICAgICMgUEFT Uy9GQUlMIGxpbmUuCi0tICAgICAgICBzZWxmLnJlc3VsdHMgPSBbXQotLQotLSAgICAjIEFkZCBh IHNlZ21lbnQgb2YgdGV4dCB0byB0aGUgaGFybmVzcyBydW4uICBJZiB0aGUgc2VnbWVudCBpbmNs dWRlcwotLSAgICAjIHRlc3QgcmVzdWx0cywgS0VZIGlzIGFuIGV4YW1wbGUgb2Ygb25lIG9mIHRo ZW0sIGFuZCBjYW4gYmUgdXNlZCB0bwotLSAgICAjIGNvbWJpbmUgdGhlIGluZGl2aWR1YWwgc2Vn bWVudHMgaW4gb3JkZXIuICBJZiB0aGUgc2VnbWVudCBoYXMgbm8KLS0gICAgIyB0ZXN0IHJlc3Vs dHMgKGUuZy4gYmVjYXVzZSB0aGUgaGFybmVzcyBkb2Vzbid0IGRvIGFueXRoaW5nIGZvciB0aGUK LS0gICAgIyBjdXJyZW50IGNvbmZpZ3VyYXRpb24pIHRoZW4gS0VZIGlzIE5vbmUgaW5zdGVhZC4g IEluIHRoYXQgY2FzZQotLSAgICAjIGp1c3QgY29sbGVjdCB0aGUgc2VnbWVudHMgaW4gdGhlIG9y ZGVyIHRoYXQgd2Ugc2VlIHRoZW0uCi0tICAgIGRlZiBhZGRfc2VnbWVudCAoc2VsZiwga2V5LCBz ZWdtZW50KToKLS0gICAgICAgIGlmIGtleToKLS0gICAgICAgICAgICBhc3NlcnQga2V5IG5vdCBp biBzZWxmLnNlZ21lbnRzCi0tICAgICAgICAgICAgc2VsZi5zZWdtZW50c1trZXldID0gc2VnbWVu dAotLSAgICAgICAgZWxzZToKLS0gICAgICAgICAgICBzZWxmLmVtcHR5LmFwcGVuZCAoc2VnbWVu dCkKLS0KLS1jbGFzcyBTZWdtZW50OgotLSAgICBkZWYgX19pbml0X18gKHNlbGYsIGZpbGVuYW1l LCBzdGFydCk6Ci0tICAgICAgICBzZWxmLmZpbGVuYW1lID0gZmlsZW5hbWUKLS0gICAgICAgIHNl bGYuc3RhcnQgPSBzdGFydAotLSAgICAgICAgc2VsZi5saW5lcyA9IDAKLS0KLS1jbGFzcyBQcm9n OgotLSAgICBkZWYgX19pbml0X18gKHNlbGYpOgotLSAgICAgICAgIyBUaGUgdmFyaWF0aW9ucyBz cGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KLS0gICAgICAgIHNlbGYudmFyaWF0aW9ucyA9 IFtdCi0tICAgICAgICAjIFRoZSB2YXJpYXRpb25zIHNlZW4gaW4gdGhlIGlucHV0IGZpbGVzLgot LSAgICAgICAgc2VsZi5rbm93bl92YXJpYXRpb25zID0gc2V0KCkKLS0gICAgICAgICMgVGhlIHRv b2xzIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lLgotLSAgICAgICAgc2VsZi50b29scyA9 IFtdCi0tICAgICAgICAjIFdoZXRoZXIgdG8gY3JlYXRlIC5zdW0gcmF0aGVyIHRoYW4gLmxvZyBv dXRwdXQuCi0tICAgICAgICBzZWxmLmRvX3N1bSA9IFRydWUKLS0gICAgICAgICMgUmVnZXhwcyB1 c2VkIHdoaWxlIHBhcnNpbmcuCi0tICAgICAgICBzZWxmLnRlc3RfcnVuX3JlID0gcmUuY29tcGls ZSAocideVGVzdCBSdW4gQnkgKFxTKykgb24gKC4qKSQnKQotLSAgICAgICAgc2VsZi50b29sX3Jl ID0gcmUuY29tcGlsZSAocideXHRcdD09PSAoLiopIHRlc3RzID09PSQnKQotLSAgICAgICAgc2Vs Zi5yZXN1bHRfcmUgPSByZS5jb21waWxlIChyJ14oUEFTU3xYUEFTU3xGQUlMfFhGQUlMfFVOUkVT T0xWRUQnCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHInfFdBUk5JTkd8 RVJST1J8VU5TVVBQT1JURUR8VU5URVNURUQnCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHInfEtGQUlMKTpccyooLispJykKLS0gICAgICAgIHNlbGYuY29tcGxldGVkX3Jl ID0gcmUuY29tcGlsZSAocicuKiBjb21wbGV0ZWQgYXQgKC4qKScpCi0tICAgICAgICAjIFBpZWNl cyBvZiB0ZXh0IHRvIHdyaXRlIGF0IHRoZSBoZWFkIG9mIHRoZSBvdXRwdXQuCi0tICAgICAgICAj IHN0YXJ0X2xpbmUgaXMgYSBwYWlyIGluIHdoaWNoIHRoZSBmaXJzdCBlbGVtZW50IGlzIGEgZGF0 ZXRpbWUKLS0gICAgICAgICMgYW5kIGluIHdoaWNoIHRoZSBzZWNvbmQgaXMgdGhlIGFzc29jaWF0 ZWQgJ1Rlc3QgUnVuIEJ5JyBsaW5lLgotLSAgICAgICAgc2VsZi5zdGFydF9saW5lID0gTm9uZQot LSAgICAgICAgc2VsZi5uYXRpdmVfbGluZSA9ICcnCi0tICAgICAgICBzZWxmLnRhcmdldF9saW5l ID0gJycKLS0gICAgICAgIHNlbGYuaG9zdF9saW5lID0gJycKLS0gICAgICAgIHNlbGYuYWNhdHNf cHJlbWFibGUgPSAnJwotLSAgICAgICAgIyBQaWVjZXMgb2YgdGV4dCB0byB3cml0ZSBhdCB0aGUg ZW5kIG9mIHRoZSBvdXRwdXQuCi0tICAgICAgICAjIGVuZF9saW5lIGlzIGxpa2Ugc3RhcnRfbGlu ZSBidXQgZm9yIHRoZSAncnVudGVzdCBjb21wbGV0ZWQnIGxpbmUuCi0tICAgICAgICBzZWxmLmFj YXRzX2ZhaWx1cmVzID0gW10KLS0gICAgICAgIHNlbGYudmVyc2lvbl9vdXRwdXQgPSAnJwotLSAg ICAgICAgc2VsZi5lbmRfbGluZSA9IE5vbmUKLS0gICAgICAgICMgS25vd24gc3VtbWFyeSB0eXBl cy4KLS0gICAgICAgIHNlbGYuY291bnRfbmFtZXMgPSBbCi0tICAgICAgICAgICAgJyMgb2YgZXhw ZWN0ZWQgcGFzc2VzXHRcdCcsCi0tICAgICAgICAgICAgJyMgb2YgdW5leHBlY3RlZCBmYWlsdXJl c1x0JywKLS0gICAgICAgICAgICAnIyBvZiB1bmV4cGVjdGVkIHN1Y2Nlc3Nlc1x0JywKLS0gICAg ICAgICAgICAnIyBvZiBleHBlY3RlZCBmYWlsdXJlc1x0XHQnLAotLSAgICAgICAgICAgICcjIG9m IHVua25vd24gc3VjY2Vzc2VzXHRcdCcsCi0tICAgICAgICAgICAgJyMgb2Yga25vd24gZmFpbHVy ZXNcdFx0JywKLS0gICAgICAgICAgICAnIyBvZiB1bnRlc3RlZCB0ZXN0Y2FzZXNcdFx0JywKLS0g ICAgICAgICAgICAnIyBvZiB1bnJlc29sdmVkIHRlc3RjYXNlc1x0JywKLS0gICAgICAgICAgICAn IyBvZiB1bnN1cHBvcnRlZCB0ZXN0c1x0XHQnCi0tICAgICAgICBdCi0tICAgICAgICBzZWxmLnJ1 bnMgPSBkaWN0KCkKLS0KLS0gICAgZGVmIHVzYWdlIChzZWxmKToKLS0gICAgICAgIG5hbWUgPSBz eXMuYXJndlswXQotLSAgICAgICAgc3lzLnN0ZGVyci53cml0ZSAoJ1VzYWdlOiAnICsgbmFtZQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgKyAnJycgWy10IHRvb2xdIFstbCB2YXJpYW50LWxp c3RdIFstTF0gbG9nLW9yLXN1bS1maWxlIC4uLgotLQotLSAgICB0b29sICAgICAgICAgICBUaGUg dG9vbCAoZS5nLiBnKyssIGxpYmZmaSkgZm9yIHdoaWNoIHRvIGNyZWF0ZSBhCi0tICAgICAgICAg ICAgICAgICAgIG5ldyB0ZXN0IHN1bW1hcnkgZmlsZS4gIElmIG5vdCBzcGVjaWZpZWQgdGhlbiBv dXRwdXQKLS0gICAgICAgICAgICAgICAgICAgaXMgY3JlYXRlZCBmb3IgYWxsIHRvb2xzLgotLSAg ICB2YXJpYW50LWxpc3QgICBPbmUgb3IgbW9yZSB0ZXN0IHZhcmlhbnQgbmFtZXMuICBJZiB0aGUg bGlzdCBpcwotLSAgICAgICAgICAgICAgICAgICBub3Qgc3BlY2lmaWVkIHRoZW4gb25lIGlzIGNv bnN0cnVjdGVkIGZyb20gYWxsCi0tICAgICAgICAgICAgICAgICAgIHZhcmlhbnRzIGluIHRoZSBm aWxlcyBmb3IgPHRvb2w+LgotLSAgICBzdW0tZmlsZSAgICAgICBBIHRlc3Qgc3VtbWFyeSBmaWxl IHdpdGggdGhlIGZvcm1hdCBvZiB0aG9zZQotLSAgICAgICAgICAgICAgICAgICBjcmVhdGVkIGJ5 IHJ1bnRlc3QgZnJvbSBEZWphR251LgotLSAgICBJZiAtTCBpcyB1c2VkLCBtZXJnZSAqLmxvZyBm aWxlcyBpbnN0ZWFkIG9mICouc3VtLiAgSW4gdGhpcwotLSAgICBtb2RlIHRoZSBleGFjdCBvcmRl ciBvZiBsaW5lcyBtYXkgbm90IGJlIHByZXNlcnZlZCwganVzdCBkaWZmZXJlbnQKLS0gICAgUnVu bmluZyAqLmV4cCBjaHVua3Mgc2hvdWxkIGJlIGluIGNvcnJlY3Qgb3JkZXIuCi0tJycnKQotLSAg ICAgICAgc3lzLmV4aXQgKDEpCi0tCi0tICAgIGRlZiBmYXRhbCAoc2VsZiwgd2hhdCwgc3RyaW5n KToKLS0gICAgICAgIGlmIG5vdCB3aGF0OgotLSAgICAgICAgICAgIHdoYXQgPSBzeXMuYXJndlsw XQotLSAgICAgICAgc3lzLnN0ZGVyci53cml0ZSAod2hhdCArICc6ICcgKyBzdHJpbmcgKyAnXG4n KQotLSAgICAgICAgc3lzLmV4aXQgKDEpCi0tCi0tICAgICMgUGFyc2UgdGhlIGNvbW1hbmQtbGlu ZSBhcmd1bWVudHMuCi0tICAgIGRlZiBwYXJzZV9jbWRsaW5lIChzZWxmKToKLS0gICAgICAgIHRy eToKLS0gICAgICAgICAgICAob3B0aW9ucywgc2VsZi5maWxlcykgPSBnZXRvcHQuZ2V0b3B0IChz eXMuYXJndlsxOl0sICdsOnQ6TCcpCi0tICAgICAgICAgICAgaWYgbGVuIChzZWxmLmZpbGVzKSA9 PSAwOgotLSAgICAgICAgICAgICAgICBzZWxmLnVzYWdlKCkKLS0gICAgICAgICAgICBmb3IgKG9w dGlvbiwgdmFsdWUpIGluIG9wdGlvbnM6Ci0tICAgICAgICAgICAgICAgIGlmIG9wdGlvbiA9PSAn LWwnOgotLSAgICAgICAgICAgICAgICAgICAgc2VsZi52YXJpYXRpb25zLmFwcGVuZCAodmFsdWUp Ci0tICAgICAgICAgICAgICAgIGVsaWYgb3B0aW9uID09ICctdCc6Ci0tICAgICAgICAgICAgICAg ICAgICBzZWxmLnRvb2xzLmFwcGVuZCAodmFsdWUpCi0tICAgICAgICAgICAgICAgIGVsc2U6Ci0t ICAgICAgICAgICAgICAgICAgICBzZWxmLmRvX3N1bSA9IEZhbHNlCi0tICAgICAgICBleGNlcHQg Z2V0b3B0LkdldG9wdEVycm9yIGFzIGU6Ci0tICAgICAgICAgICAgc2VsZi5mYXRhbCAoTm9uZSwg ZS5tc2cpCi0tCi0tICAgICMgVHJ5IHRvIHBhcnNlIHRpbWUgc3RyaW5nIFRJTUUsIHJldHVybmlu ZyBhbiBhcmJpdHJhcnkgdGltZSBvbiBmYWlsdXJlLgotLSAgICAjIEdldHRpbmcgdGhpcyByaWdo dCBpcyBqdXN0IGEgbmljZS10by1oYXZlIHNvIGZhaWx1cmVzIHNob3VsZCBiZSBzaWxlbnQuCi0t ICAgIGRlZiBwYXJzZV90aW1lIChzZWxmLCB0aW1lKToKLS0gICAgICAgIHRyeToKLS0gICAgICAg ICAgICByZXR1cm4gZGF0ZXRpbWUuc3RycHRpbWUgKHRpbWUsICclYycpCi0tICAgICAgICBleGNl cHQgVmFsdWVFcnJvcjoKLS0gICAgICAgICAgICByZXR1cm4gZGF0ZXRpbWUubm93KCkKLS0KLS0g ICAgIyBQYXJzZSBhbiBpbnRlZ2VyIGFuZCBhYm9ydCBvbiBmYWlsdXJlLgotLSAgICBkZWYgcGFy c2VfaW50IChzZWxmLCBmaWxlbmFtZSwgdmFsdWUpOgotLSAgICAgICAgdHJ5OgotLSAgICAgICAg ICAgIHJldHVybiBpbnQgKHZhbHVlKQotLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0tICAg ICAgICAgICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICdleHBlY3RlZCBhbiBpbnRlZ2VyLCBnb3Q6 ICcgKyB2YWx1ZSkKLS0KLS0gICAgIyBSZXR1cm4gYSBsaXN0IHRoYXQgcmVwcmVzZW50cyBubyB0 ZXN0IHJlc3VsdHMuCi0tICAgIGRlZiB6ZXJvX2NvdW50cyAoc2VsZik6Ci0tICAgICAgICByZXR1 cm4gWzAgZm9yIHggaW4gc2VsZi5jb3VudF9uYW1lc10KLS0KLS0gICAgIyBSZXR1cm4gdGhlIFRv b2xSdW4gZm9yIHRvb2wgTkFNRS4KLS0gICAgZGVmIGdldF90b29sIChzZWxmLCBuYW1lKToKLS0g ICAgICAgIGlmIG5hbWUgbm90IGluIHNlbGYucnVuczoKLS0gICAgICAgICAgICBzZWxmLnJ1bnNb bmFtZV0gPSBUb29sUnVuIChuYW1lKQotLSAgICAgICAgcmV0dXJuIHNlbGYucnVuc1tuYW1lXQot LQotLSAgICAjIEFkZCB0aGUgcmVzdWx0IGNvdW50cyBpbiBsaXN0IEZST01DIHRvIFRPQy4KLS0g ICAgZGVmIGFjY3VtdWxhdGVfY291bnRzIChzZWxmLCB0b2MsIGZyb21jKToKLS0gICAgICAgIGZv ciBpIGluIHJhbmdlIChsZW4gKHNlbGYuY291bnRfbmFtZXMpKToKLS0gICAgICAgICAgICB0b2Nb aV0gKz0gZnJvbWNbaV0KLS0KLS0gICAgIyBQYXJzZSB0aGUgbGlzdCBvZiB2YXJpYXRpb25zIGFm dGVyICdTY2hlZHVsZSBvZiB2YXJpYXRpb25zOicuCi0tICAgICMgUmV0dXJuIHRoZSBudW1iZXIg c2Vlbi4KLS0gICAgZGVmIHBhcnNlX3ZhcmlhdGlvbnMgKHNlbGYsIGZpbGVuYW1lLCBmaWxlKToK LS0gICAgICAgIG51bV92YXJpYXRpb25zID0gMAotLSAgICAgICAgd2hpbGUgVHJ1ZToKLS0gICAg ICAgICAgICBsaW5lID0gZmlsZS5yZWFkbGluZSgpCi0tICAgICAgICAgICAgaWYgbGluZSA9PSAn JzoKLS0gICAgICAgICAgICAgICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICdjb3VsZCBub3QgcGFy c2UgdmFyaWF0aW9uIGxpc3QnKQotLSAgICAgICAgICAgIGlmIGxpbmUgPT0gJ1xuJzoKLS0gICAg ICAgICAgICAgICAgYnJlYWsKLS0gICAgICAgICAgICBzZWxmLmtub3duX3ZhcmlhdGlvbnMuYWRk IChsaW5lLnN0cmlwKCkpCi0tICAgICAgICAgICAgbnVtX3ZhcmlhdGlvbnMgKz0gMQotLSAgICAg ICAgcmV0dXJuIG51bV92YXJpYXRpb25zCi0tCi0tICAgICMgUGFyc2UgZnJvbSB0aGUgZmlyc3Qg bGluZSBhZnRlciAnUnVubmluZyB0YXJnZXQgLi4uJyB0byB0aGUgZW5kCi0tICAgICMgb2YgdGhl IHJ1bidzIHN1bW1hcnkuCi0tICAgIGRlZiBwYXJzZV9ydW4gKHNlbGYsIGZpbGVuYW1lLCBmaWxl LCB0b29sLCB2YXJpYXRpb24sIG51bV92YXJpYXRpb25zKToKLS0gICAgICAgIGhlYWRlciA9IE5v bmUKLS0gICAgICAgIGhhcm5lc3MgPSBOb25lCi0tICAgICAgICBzZWdtZW50ID0gTm9uZQotLSAg ICAgICAgZmluYWxfdXNpbmcgPSAwCi0tCi0tICAgICAgICAjIElmIHRoaXMgaXMgdGhlIGZpcnN0 IHJ1biBmb3IgdGhpcyB2YXJpYXRpb24sIGFkZCBhbnkgdGV4dCBiZWZvcmUKLS0gICAgICAgICMg dGhlIGZpcnN0IGhhcm5lc3MgdG8gdGhlIGhlYWRlci4KLS0gICAgICAgIGlmIG5vdCB2YXJpYXRp b24uaGVhZGVyOgotLSAgICAgICAgICAgIHNlZ21lbnQgPSBTZWdtZW50IChmaWxlbmFtZSwgZmls ZS50ZWxsKCkpCi0tICAgICAgICAgICAgdmFyaWF0aW9uLmhlYWRlciA9IHNlZ21lbnQKLS0KLS0g ICAgICAgICMgUGFyc2UgdXAgdW50aWwgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIHN1bW1hcnkuCi0t ICAgICAgICBpZiBudW1fdmFyaWF0aW9ucyA9PSAxOgotLSAgICAgICAgICAgIGVuZCA9ICdcdFx0 PT09ICcgKyB0b29sLm5hbWUgKyAnIFN1bW1hcnkgPT09XG4nCi0tICAgICAgICBlbHNlOgotLSAg ICAgICAgICAgIGVuZCA9ICgnXHRcdD09PSAnICsgdG9vbC5uYW1lICsgJyBTdW1tYXJ5IGZvciAn Ci0tICAgICAgICAgICAgICAgICAgICsgdmFyaWF0aW9uLm5hbWUgKyAnID09PVxuJykKLS0gICAg ICAgIHdoaWxlIFRydWU6Ci0tICAgICAgICAgICAgbGluZSA9IGZpbGUucmVhZGxpbmUoKQotLSAg ICAgICAgICAgIGlmIGxpbmUgPT0gJyc6Ci0tICAgICAgICAgICAgICAgIHNlbGYuZmF0YWwgKGZp bGVuYW1lLCAnbm8gcmVjb2duaXNlZCBzdW1tYXJ5IGxpbmUnKQotLSAgICAgICAgICAgIGlmIGxp bmUgPT0gZW5kOgotLSAgICAgICAgICAgICAgICBicmVhawotLQotLSAgICAgICAgICAgICMgTG9v ayBmb3IgdGhlIHN0YXJ0IG9mIGEgbmV3IGhhcm5lc3MuCi0tICAgICAgICAgICAgaWYgbGluZS5z dGFydHN3aXRoICgnUnVubmluZyAnKSBhbmQgbGluZS5lbmRzd2l0aCAoJyAuLi5cbicpOgotLSAg ICAgICAgICAgICAgICAjIENsb3NlIG9mZiB0aGUgY3VycmVudCBoYXJuZXNzIHNlZ21lbnQsIGlm IGFueS4KLS0gICAgICAgICAgICAgICAgaWYgaGFybmVzczoKLS0gICAgICAgICAgICAgICAgICAg IHNlZ21lbnQubGluZXMgLT0gZmluYWxfdXNpbmcKLS0gICAgICAgICAgICAgICAgICAgIGhhcm5l c3MuYWRkX3NlZ21lbnQgKGZpcnN0X2tleSwgc2VnbWVudCkKLS0gICAgICAgICAgICAgICAgbmFt ZSA9IGxpbmVbbGVuICgnUnVubmluZyAnKTotbGVuKCcgLi4uXG4nKV0KLS0gICAgICAgICAgICAg ICAgaGFybmVzcyA9IHZhcmlhdGlvbi5nZXRfaGFybmVzcyAobmFtZSkKLS0gICAgICAgICAgICAg ICAgc2VnbWVudCA9IFNlZ21lbnQgKGZpbGVuYW1lLCBmaWxlLnRlbGwoKSkKLS0gICAgICAgICAg ICAgICAgZmlyc3Rfa2V5ID0gTm9uZQotLSAgICAgICAgICAgICAgICBmaW5hbF91c2luZyA9IDAK LS0gICAgICAgICAgICAgICAgY29udGludWUKLS0KLS0gICAgICAgICAgICAjIFJlY29yZCB0ZXN0 IHJlc3VsdHMuICBBc3NvY2lhdGUgdGhlIGZpcnN0IHRlc3QgcmVzdWx0IHdpdGgKLS0gICAgICAg ICAgICAjIHRoZSBoYXJuZXNzIHNlZ21lbnQsIHNvIHRoYXQgaWYgYSBydW4gZm9yIGEgcGFydGlj dWxhciBoYXJuZXNzCi0tICAgICAgICAgICAgIyBoYXMgYmVlbiBzcGxpdCB1cCwgd2UgY2FuIHJl YXNzZW1ibGUgdGhlIGluZGl2aWR1YWwgc2VnbWVudHMKLS0gICAgICAgICAgICAjIGluIGEgc2Vu c2libGUgb3JkZXIuCi0tICAgICAgICAgICAgIwotLSAgICAgICAgICAgICMgZGVqYWdudSBzb21l dGltZXMgaXNzdWVzIHdhcm5pbmdzIGFib3V0IHRoZSB0ZXN0aW5nIGVudmlyb25tZW50Ci0tICAg ICAgICAgICAgIyBiZWZvcmUgcnVubmluZyBhbnkgdGVzdHMuICBUcmVhdCB0aGVtIGFzIHBhcnQg b2YgdGhlIGhlYWRlcgotLSAgICAgICAgICAgICMgcmF0aGVyIHRoYW4gYXMgYSB0ZXN0IHJlc3Vs dC4KLS0gICAgICAgICAgICBtYXRjaCA9IHNlbGYucmVzdWx0X3JlLm1hdGNoIChsaW5lKQotLSAg ICAgICAgICAgIGlmIG1hdGNoIGFuZCAoaGFybmVzcyBvciBub3QgbGluZS5zdGFydHN3aXRoICgn V0FSTklORzonKSk6Ci0tICAgICAgICAgICAgICAgIGlmIG5vdCBoYXJuZXNzOgotLSAgICAgICAg ICAgICAgICAgICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICdzYXcgdGVzdCByZXN1bHQgYmVmb3Jl IGhhcm5lc3MgbmFtZScpCi0tICAgICAgICAgICAgICAgIG5hbWUgPSBtYXRjaC5ncm91cCAoMikK LS0gICAgICAgICAgICAgICAgIyBVZ2x5IGhhY2sgdG8gZ2V0IHRoZSByaWdodCBvcmRlciBmb3Ig Z2ZvcnRyYW4uCi0tICAgICAgICAgICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0aCAoJ2dmb3J0cmFu LmRnL2c3Ny8nKToKLS0gICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnaCcgKyBuYW1lCi0tICAg ICAgICAgICAgICAgIGtleSA9IChuYW1lLCBsZW4gKGhhcm5lc3MucmVzdWx0cykpCi0tICAgICAg ICAgICAgICAgIGhhcm5lc3MucmVzdWx0cy5hcHBlbmQgKChrZXksIGxpbmUpKQotLSAgICAgICAg ICAgICAgICBpZiBub3QgZmlyc3Rfa2V5IGFuZCBzb3J0X2xvZ3M6Ci0tICAgICAgICAgICAgICAg ICAgICBmaXJzdF9rZXkgPSBrZXkKLS0KLS0gICAgICAgICAgICAjICdVc2luZyAuLi4nIGxpbmVz IGFyZSBvbmx5IGludGVyZXN0aW5nIGluIGEgaGVhZGVyLiAgU3BsaXR0aW5nCi0tICAgICAgICAg ICAgIyB0aGUgdGVzdCB1cCBpbnRvIHBhcmFsbGVsIHJ1bnMgbGVhZHMgdG8gbW9yZSAnVXNpbmcg Li4uJyBsaW5lcwotLSAgICAgICAgICAgICMgdGhhbiB0aGVyZSB3b3VsZCBiZSBpbiBhIHNpbmds ZSBsb2cuCi0tICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoICgnVXNpbmcgJyk6Ci0tICAg ICAgICAgICAgICAgIGZpbmFsX3VzaW5nICs9IDEKLS0gICAgICAgICAgICBlbHNlOgotLSAgICAg ICAgICAgICAgICBmaW5hbF91c2luZyA9IDAKLS0KLS0gICAgICAgICAgICAjIEFkZCBvdGhlciB0 ZXh0IHRvIHRoZSBjdXJyZW50IHNlZ21lbnQsIGlmIGFueS4KLS0gICAgICAgICAgICBpZiBzZWdt ZW50OgotLSAgICAgICAgICAgICAgICBzZWdtZW50LmxpbmVzICs9IDEKLS0KLS0gICAgICAgICMg Q2xvc2Ugb2ZmIHRoZSBmaW5hbCBoYXJuZXNzIHNlZ21lbnQsIGlmIGFueS4KLS0gICAgICAgIGlm IGhhcm5lc3M6Ci0tICAgICAgICAgICAgc2VnbWVudC5saW5lcyAtPSBmaW5hbF91c2luZwotLSAg ICAgICAgICAgIGhhcm5lc3MuYWRkX3NlZ21lbnQgKGZpcnN0X2tleSwgc2VnbWVudCkKLS0KLS0g ICAgICAgICMgUGFyc2UgdGhlIHJlc3Qgb2YgdGhlIHN1bW1hcnkgKHRoZSAnIyBvZiAnIGxpbmVz KS4KLS0gICAgICAgIGlmIGxlbiAodmFyaWF0aW9uLmNvdW50cykgPT0gMDoKLS0gICAgICAgICAg ICB2YXJpYXRpb24uY291bnRzID0gc2VsZi56ZXJvX2NvdW50cygpCi0tICAgICAgICB3aGlsZSBU cnVlOgotLSAgICAgICAgICAgIGJlZm9yZSA9IGZpbGUudGVsbCgpCi0tICAgICAgICAgICAgbGlu ZSA9IGZpbGUucmVhZGxpbmUoKQotLSAgICAgICAgICAgIGlmIGxpbmUgPT0gJyc6Ci0tICAgICAg ICAgICAgICAgIGJyZWFrCi0tICAgICAgICAgICAgaWYgbGluZSA9PSAnXG4nOgotLSAgICAgICAg ICAgICAgICBjb250aW51ZQotLSAgICAgICAgICAgIGlmIG5vdCBsaW5lLnN0YXJ0c3dpdGggKCcj ICcpOgotLSAgICAgICAgICAgICAgICBmaWxlLnNlZWsgKGJlZm9yZSkKLS0gICAgICAgICAgICAg ICAgYnJlYWsKLS0gICAgICAgICAgICBmb3VuZCA9IEZhbHNlCi0tICAgICAgICAgICAgZm9yIGkg aW4gcmFuZ2UgKGxlbiAoc2VsZi5jb3VudF9uYW1lcykpOgotLSAgICAgICAgICAgICAgICBpZiBs aW5lLnN0YXJ0c3dpdGggKHNlbGYuY291bnRfbmFtZXNbaV0pOgotLSAgICAgICAgICAgICAgICAg ICAgY291bnQgPSBsaW5lW2xlbiAoc2VsZi5jb3VudF9uYW1lc1tpXSk6LTFdLnN0cmlwKCkKLS0g ICAgICAgICAgICAgICAgICAgIHZhcmlhdGlvbi5jb3VudHNbaV0gKz0gc2VsZi5wYXJzZV9pbnQg KGZpbGVuYW1lLCBjb3VudCkKLS0gICAgICAgICAgICAgICAgICAgIGZvdW5kID0gVHJ1ZQotLSAg ICAgICAgICAgICAgICAgICAgYnJlYWsKLS0gICAgICAgICAgICBpZiBub3QgZm91bmQ6Ci0tICAg ICAgICAgICAgICAgIHNlbGYuZmF0YWwgKGZpbGVuYW1lLCAndW5rbm93biB0ZXN0IHJlc3VsdDog JyArIGxpbmVbOi0xXSkKLS0KLS0gICAgIyBQYXJzZSBhbiBhY2F0cyBydW4sIHdoaWNoIHVzZXMg YSBkaWZmZXJlbnQgZm9ybWF0IGZyb20gZGVqYWdudS4KLS0gICAgIyBXZSBoYXZlIGp1c3Qgc2tp cHBlZCBvdmVyICc9PT0gYWNhdHMgY29uZmlndXJhdGlvbiA9PT0nLgotLSAgICBkZWYgcGFyc2Vf YWNhdHNfcnVuIChzZWxmLCBmaWxlbmFtZSwgZmlsZSk6Ci0tICAgICAgICAjIFBhcnNlIHRoZSBw cmVhbWJsZSwgd2hpY2ggZGVzY3JpYmVzIHRoZSBjb25maWd1cmF0aW9uIGFuZCBsb2dzCi0tICAg ICAgICAjIHRoZSBjcmVhdGlvbiBvZiBzdXBwb3J0IGZpbGVzLgotLSAgICAgICAgcmVjb3JkID0g KHNlbGYuYWNhdHNfcHJlbWFibGUgPT0gJycpCi0tICAgICAgICBpZiByZWNvcmQ6Ci0tICAgICAg ICAgICAgc2VsZi5hY2F0c19wcmVtYWJsZSA9ICdcdFx0PT09IGFjYXRzIGNvbmZpZ3VyYXRpb24g PT09XG4nCi0tICAgICAgICB3aGlsZSBUcnVlOgotLSAgICAgICAgICAgIGxpbmUgPSBmaWxlLnJl YWRsaW5lKCkKLS0gICAgICAgICAgICBpZiBsaW5lID09ICcnOgotLSAgICAgICAgICAgICAgICBz ZWxmLmZhdGFsIChmaWxlbmFtZSwgJ2NvdWxkIG5vdCBwYXJzZSBhY2F0cyBwcmVhbWJsZScpCi0t ICAgICAgICAgICAgaWYgbGluZSA9PSAnXHRcdD09PSBhY2F0cyB0ZXN0cyA9PT1cbic6Ci0tICAg ICAgICAgICAgICAgIGJyZWFrCi0tICAgICAgICAgICAgaWYgcmVjb3JkOgotLSAgICAgICAgICAg ICAgICBzZWxmLmFjYXRzX3ByZW1hYmxlICs9IGxpbmUKLS0KLS0gICAgICAgICMgUGFyc2UgdGhl IHRlc3QgcmVzdWx0cyB0aGVtc2VsdmVzLCB1c2luZyBhIGR1bW15IHZhcmlhdGlvbiBuYW1lLgot LSAgICAgICAgdG9vbCA9IHNlbGYuZ2V0X3Rvb2wgKCdhY2F0cycpCi0tICAgICAgICB2YXJpYXRp b24gPSB0b29sLmdldF92YXJpYXRpb24gKCdub25lJykKLS0gICAgICAgIHNlbGYucGFyc2VfcnVu IChmaWxlbmFtZSwgZmlsZSwgdG9vbCwgdmFyaWF0aW9uLCAxKQotLQotLSAgICAgICAgIyBQYXJz ZSB0aGUgZmFpbHVyZSBsaXN0LgotLSAgICAgICAgd2hpbGUgVHJ1ZToKLS0gICAgICAgICAgICBi ZWZvcmUgPSBmaWxlLnRlbGwoKQotLSAgICAgICAgICAgIGxpbmUgPSBmaWxlLnJlYWRsaW5lKCkK LS0gICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGggKCcqKiogRkFJTFVSRVM6ICcpOgotLSAg ICAgICAgICAgICAgICBzZWxmLmFjYXRzX2ZhaWx1cmVzLmFwcGVuZCAobGluZVtsZW4gKCcqKiog RkFJTFVSRVM6ICcpOi0xXSkKLS0gICAgICAgICAgICAgICAgY29udGludWUKLS0gICAgICAgICAg ICBmaWxlLnNlZWsgKGJlZm9yZSkKLS0gICAgICAgICAgICBicmVhawotLQotLSAgICAjIFBhcnNl IHRoZSBmaW5hbCBzdW1tYXJ5IGF0IHRoZSBlbmQgb2YgYSBsb2cgaW4gb3JkZXIgdG8gY2FwdHVy ZQotLSAgICAjIHRoZSB2ZXJzaW9uIG91dHB1dCB0aGF0IGZvbGxvd3MgaXQuCi0tICAgIGRlZiBw YXJzZV9maW5hbF9zdW1tYXJ5IChzZWxmLCBmaWxlbmFtZSwgZmlsZSk6Ci0tICAgICAgICByZWNv cmQgPSAoc2VsZi52ZXJzaW9uX291dHB1dCA9PSAnJykKLS0gICAgICAgIHdoaWxlIFRydWU6Ci0t ICAgICAgICAgICAgbGluZSA9IGZpbGUucmVhZGxpbmUoKQotLSAgICAgICAgICAgIGlmIGxpbmUg PT0gJyc6Ci0tICAgICAgICAgICAgICAgIGJyZWFrCi0tICAgICAgICAgICAgaWYgbGluZS5zdGFy dHN3aXRoICgnIyBvZiAnKToKLS0gICAgICAgICAgICAgICAgY29udGludWUKLS0gICAgICAgICAg ICBpZiByZWNvcmQ6Ci0tICAgICAgICAgICAgICAgIHNlbGYudmVyc2lvbl9vdXRwdXQgKz0gbGlu ZQotLSAgICAgICAgICAgIGlmIGxpbmUgPT0gJ1xuJzoKLS0gICAgICAgICAgICAgICAgYnJlYWsK LS0KLS0gICAgIyBQYXJzZSBhIC5sb2cgb3IgLnN1bSBmaWxlLgotLSAgICBkZWYgcGFyc2VfZmls ZSAoc2VsZiwgZmlsZW5hbWUsIGZpbGUpOgotLSAgICAgICAgdG9vbCA9IE5vbmUKLS0gICAgICAg IHRhcmdldCA9IE5vbmUKLS0gICAgICAgIG51bV92YXJpYXRpb25zID0gMQotLSAgICAgICAgd2hp bGUgVHJ1ZToKLS0gICAgICAgICAgICBsaW5lID0gZmlsZS5yZWFkbGluZSgpCi0tICAgICAgICAg ICAgaWYgbGluZSA9PSAnJzoKLS0gICAgICAgICAgICAgICAgcmV0dXJuCi0tCi0tICAgICAgICAg ICAgIyBQYXJzZSB0aGUgbGlzdCBvZiB2YXJpYXRpb25zLCB3aGljaCBjb21lcyBiZWZvcmUgdGhl IHRlc3QKLS0gICAgICAgICAgICAjIHJ1bnMgdGhlbXNlbHZlcy4KLS0gICAgICAgICAgICBpZiBs aW5lLnN0YXJ0c3dpdGggKCdTY2hlZHVsZSBvZiB2YXJpYXRpb25zOicpOgotLSAgICAgICAgICAg ICAgICBudW1fdmFyaWF0aW9ucyA9IHNlbGYucGFyc2VfdmFyaWF0aW9ucyAoZmlsZW5hbWUsIGZp bGUpCi0tICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0tCi0tICAgICAgICAgICAgIyBQYXJzZSBh IHRlc3RzdWl0ZSBydW4gZm9yIG9uZSB0b29sL3ZhcmlhdGlvbiBjb21iaW5hdGlvbi4KLS0gICAg ICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGggKCdSdW5uaW5nIHRhcmdldCAnKToKLS0gICAgICAg ICAgICAgICAgbmFtZSA9IGxpbmVbbGVuICgnUnVubmluZyB0YXJnZXQgJyk6LTFdCi0tICAgICAg ICAgICAgICAgIGlmIG5vdCB0b29sOgotLSAgICAgICAgICAgICAgICAgICAgc2VsZi5mYXRhbCAo ZmlsZW5hbWUsICdjb3VsZCBub3QgcGFyc2UgdG9vbCBuYW1lJykKLS0gICAgICAgICAgICAgICAg aWYgbmFtZSBub3QgaW4gc2VsZi5rbm93bl92YXJpYXRpb25zOgotLSAgICAgICAgICAgICAgICAg ICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICd1bmtub3duIHRhcmdldDogJyArIG5hbWUpCi0tICAg ICAgICAgICAgICAgIHNlbGYucGFyc2VfcnVuIChmaWxlbmFtZSwgZmlsZSwgdG9vbCwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2wuZ2V0X3ZhcmlhdGlvbiAobmFtZSksCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1fdmFyaWF0aW9ucykKLS0gICAgICAg ICAgICAgICAgIyBJZiB0aGVyZSBpcyBvbmx5IG9uZSB2YXJpYXRpb24gdGhlbiB0aGVyZSBpcyBu byBzZXBhcmF0ZQotLSAgICAgICAgICAgICAgICAjIHN1bW1hcnkgZm9yIGl0LiAgUmVjb3JkIGFu eSBmb2xsb3dpbmcgdmVyc2lvbiBvdXRwdXQuCi0tICAgICAgICAgICAgICAgIGlmIG51bV92YXJp YXRpb25zID09IDE6Ci0tICAgICAgICAgICAgICAgICAgICBzZWxmLnBhcnNlX2ZpbmFsX3N1bW1h cnkgKGZpbGVuYW1lLCBmaWxlKQotLSAgICAgICAgICAgICAgICBjb250aW51ZQotLQotLSAgICAg ICAgICAgICMgUGFyc2UgdGhlIHN0YXJ0IGxpbmUuICBJbiB0aGUgY2FzZSB3aGVyZSBzZXZlcmFs IGZpbGVzIGFyZSBiZWluZwotLSAgICAgICAgICAgICMgcGFyc2VkLCBwaWNrIHRoZSBvbmUgd2l0 aCB0aGUgZWFybGllc3QgdGltZS4KLS0gICAgICAgICAgICBtYXRjaCA9IHNlbGYudGVzdF9ydW5f cmUubWF0Y2ggKGxpbmUpCi0tICAgICAgICAgICAgaWYgbWF0Y2g6Ci0tICAgICAgICAgICAgICAg IHRpbWUgPSBzZWxmLnBhcnNlX3RpbWUgKG1hdGNoLmdyb3VwICgyKSkKLS0gICAgICAgICAgICAg ICAgaWYgbm90IHNlbGYuc3RhcnRfbGluZSBvciBzZWxmLnN0YXJ0X2xpbmVbMF0gPiB0aW1lOgot LSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGFydF9saW5lID0gKHRpbWUsIGxpbmUpCi0tICAg ICAgICAgICAgICAgIGNvbnRpbnVlCi0tCi0tICAgICAgICAgICAgIyBQYXJzZSB0aGUgZm9ybSB1 c2VkIGZvciBuYXRpdmUgdGVzdGluZy4KLS0gICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgg KCdOYXRpdmUgY29uZmlndXJhdGlvbiBpcyAnKToKLS0gICAgICAgICAgICAgICAgc2VsZi5uYXRp dmVfbGluZSA9IGxpbmUKLS0gICAgICAgICAgICAgICAgY29udGludWUKLS0KLS0gICAgICAgICAg ICAjIFBhcnNlIHRoZSB0YXJnZXQgdHJpcGxldC4KLS0gICAgICAgICAgICBpZiBsaW5lLnN0YXJ0 c3dpdGggKCdUYXJnZXQgaXMgJyk6Ci0tICAgICAgICAgICAgICAgIHNlbGYudGFyZ2V0X2xpbmUg PSBsaW5lCi0tICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0tCi0tICAgICAgICAgICAgIyBQYXJz ZSB0aGUgaG9zdCB0cmlwbGV0LgotLSAgICAgICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCAoJ0hv c3QgICBpcyAnKToKLS0gICAgICAgICAgICAgICAgc2VsZi5ob3N0X2xpbmUgPSBsaW5lCi0tICAg ICAgICAgICAgICAgIGNvbnRpbnVlCi0tCi0tICAgICAgICAgICAgIyBQYXJzZSB0aGUgYWNhdHMg cHJlbWFibGUuCi0tICAgICAgICAgICAgaWYgbGluZSA9PSAnXHRcdD09PSBhY2F0cyBjb25maWd1 cmF0aW9uID09PVxuJzoKLS0gICAgICAgICAgICAgICAgc2VsZi5wYXJzZV9hY2F0c19ydW4gKGZp bGVuYW1lLCBmaWxlKQotLSAgICAgICAgICAgICAgICBjb250aW51ZQotLQotLSAgICAgICAgICAg ICMgUGFyc2UgdGhlIHRvb2wgbmFtZS4KLS0gICAgICAgICAgICBtYXRjaCA9IHNlbGYudG9vbF9y ZS5tYXRjaCAobGluZSkKLS0gICAgICAgICAgICBpZiBtYXRjaDoKLS0gICAgICAgICAgICAgICAg dG9vbCA9IHNlbGYuZ2V0X3Rvb2wgKG1hdGNoLmdyb3VwICgxKSkKLS0gICAgICAgICAgICAgICAg Y29udGludWUKLS0KLS0gICAgICAgICAgICAjIFNraXAgb3ZlciB0aGUgZmluYWwgc3VtbWFyeSAo d2hpY2ggd2UgaW5zdGVhZCBjcmVhdGUgZnJvbQotLSAgICAgICAgICAgICMgaW5kaXZpZHVhbCBy dW5zKSBhbmQgcGFyc2UgdGhlIHZlcnNpb24gb3V0cHV0LgotLSAgICAgICAgICAgIGlmIHRvb2wg YW5kIGxpbmUgPT0gJ1x0XHQ9PT0gJyArIHRvb2wubmFtZSArICcgU3VtbWFyeSA9PT1cbic6Ci0t ICAgICAgICAgICAgICAgIGlmIGZpbGUucmVhZGxpbmUoKSAhPSAnXG4nOgotLSAgICAgICAgICAg ICAgICAgICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICdleHBlY3RlZCBibGFuayBsaW5lIGFmdGVy IHN1bW1hcnknKQotLSAgICAgICAgICAgICAgICBzZWxmLnBhcnNlX2ZpbmFsX3N1bW1hcnkgKGZp bGVuYW1lLCBmaWxlKQotLSAgICAgICAgICAgICAgICBjb250aW51ZQotLQotLSAgICAgICAgICAg ICMgUGFyc2UgdGhlIGNvbXBsZXRpb24gbGluZS4gIEluIHRoZSBjYXNlIHdoZXJlIHNldmVyYWwg ZmlsZXMKLS0gICAgICAgICAgICAjIGFyZSBiZWluZyBwYXJzZWQsIHBpY2sgdGhlIG9uZSB3aXRo IHRoZSBsYXRlc3QgdGltZS4KLS0gICAgICAgICAgICBtYXRjaCA9IHNlbGYuY29tcGxldGVkX3Jl Lm1hdGNoIChsaW5lKQotLSAgICAgICAgICAgIGlmIG1hdGNoOgotLSAgICAgICAgICAgICAgICB0 aW1lID0gc2VsZi5wYXJzZV90aW1lIChtYXRjaC5ncm91cCAoMSkpCi0tICAgICAgICAgICAgICAg IGlmIG5vdCBzZWxmLmVuZF9saW5lIG9yIHNlbGYuZW5kX2xpbmVbMF0gPCB0aW1lOgotLSAgICAg ICAgICAgICAgICAgICAgc2VsZi5lbmRfbGluZSA9ICh0aW1lLCBsaW5lKQotLSAgICAgICAgICAg ICAgICBjb250aW51ZQotLQotLSAgICAgICAgICAgICMgU2FuaXR5IGNoZWNrIHRvIG1ha2Ugc3Vy ZSB0aGF0IGltcG9ydGFudCB0ZXh0IGRvZXNuJ3QgZ2V0Ci0tICAgICAgICAgICAgIyBkcm9wcGVk IGFjY2lkZW50YWxseS4KLS0gICAgICAgICAgICBpZiBzdHJpY3QgYW5kIGxpbmUuc3RyaXAoKSAh PSAnJzoKLS0gICAgICAgICAgICAgICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICd1bnJlY29nbmlz ZWQgbGluZTogJyArIGxpbmVbOi0xXSkKLS0KLS0gICAgIyBPdXRwdXQgYSBzZWdtZW50IG9mIHRl eHQuCi0tICAgIGRlZiBvdXRwdXRfc2VnbWVudCAoc2VsZiwgc2VnbWVudCk6Ci0tICAgICAgICB3 aXRoIHNhZmVfb3BlbiAoc2VnbWVudC5maWxlbmFtZSkgYXMgZmlsZToKLS0gICAgICAgICAgICBm aWxlLnNlZWsgKHNlZ21lbnQuc3RhcnQpCi0tICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UgKHNl Z21lbnQubGluZXMpOgotLSAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlIChmaWxlLnJl YWRsaW5lKCkpCi0tCi0tICAgICMgT3V0cHV0IGEgc3VtbWFyeSBnaXZpbmcgdGhlIG51bWJlciBv ZiB0aW1lcyBlYWNoIHR5cGUgb2YgcmVzdWx0IGhhcwotLSAgICAjIGJlZW4gc2Vlbi4KLS0gICAg ZGVmIG91dHB1dF9zdW1tYXJ5IChzZWxmLCB0b29sLCBjb3VudHMpOgotLSAgICAgICAgZm9yIGkg aW4gcmFuZ2UgKGxlbiAoc2VsZi5jb3VudF9uYW1lcykpOgotLSAgICAgICAgICAgIG5hbWUgPSBz ZWxmLmNvdW50X25hbWVzW2ldCi0tICAgICAgICAgICAgIyBkZWphZ251IG9ubHkgcHJpbnRzIHJl c3VsdCB0eXBlcyB0aGF0IHdlcmUgc2VlbiBhdCBsZWFzdCBvbmNlLAotLSAgICAgICAgICAgICMg YnV0IGFjYXRzIGFsd2F5cyBwcmludHMgYSBudW1iZXIgb2YgdW5leHBlY3RlZCBmYWlsdXJlcy4K LS0gICAgICAgICAgICBpZiAoY291bnRzW2ldID4gMAotLSAgICAgICAgICAgICAgICBvciAodG9v bC5uYW1lID09ICdhY2F0cycKLS0gICAgICAgICAgICAgICAgICAgIGFuZCBuYW1lLnN0YXJ0c3dp dGggKCcjIG9mIHVuZXhwZWN0ZWQgZmFpbHVyZXMnKSkpOgotLSAgICAgICAgICAgICAgICBzeXMu c3Rkb3V0LndyaXRlICgnJXMlZFxuJyAlIChuYW1lLCBjb3VudHNbaV0pKQotLQotLSAgICAjIE91 dHB1dCB1bmlmaWVkIC5sb2cgb3IgLnN1bSBpbmZvcm1hdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIHZh cmlhdGlvbiwKLS0gICAgIyB3aXRoIGEgc3VtbWFyeSBhdCB0aGUgZW5kLgotLSAgICBkZWYgb3V0 cHV0X3ZhcmlhdGlvbiAoc2VsZiwgdG9vbCwgdmFyaWF0aW9uKToKLS0gICAgICAgIHNlbGYub3V0 cHV0X3NlZ21lbnQgKHZhcmlhdGlvbi5oZWFkZXIpCi0tICAgICAgICBmb3IgaGFybmVzcyBpbiBz b3J0ZWQgKHZhcmlhdGlvbi5oYXJuZXNzZXMudmFsdWVzKCksCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGtleSA9IGF0dHJnZXR0ZXIgKCduYW1lJykpOgotLSAgICAgICAgICAgIHN5 cy5zdGRvdXQud3JpdGUgKCdSdW5uaW5nICcgKyBoYXJuZXNzLm5hbWUgKyAnIC4uLlxuJykKLS0g ICAgICAgICAgICBpZiBzZWxmLmRvX3N1bToKLS0gICAgICAgICAgICAgICAgaGFybmVzcy5yZXN1 bHRzLnNvcnQoKQotLSAgICAgICAgICAgICAgICBmb3IgKGtleSwgbGluZSkgaW4gaGFybmVzcy5y ZXN1bHRzOgotLSAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSAobGluZSkKLS0g ICAgICAgICAgICBlbHNlOgotLSAgICAgICAgICAgICAgICAjIFJlYXJyYW5nZSB0aGUgbG9nIHNl Z21lbnRzIGludG8gdGVzdCBvcmRlciAoYnV0IHdpdGhvdXQKLS0gICAgICAgICAgICAgICAgIyBy ZWFycmFuZ2luZyB0ZXh0IHdpdGhpbiB0aG9zZSBzZWdtZW50cykuCi0tICAgICAgICAgICAgICAg IGZvciBrZXkgaW4gc29ydGVkIChoYXJuZXNzLnNlZ21lbnRzLmtleXMoKSk6Ci0tICAgICAgICAg ICAgICAgICAgICBzZWxmLm91dHB1dF9zZWdtZW50IChoYXJuZXNzLnNlZ21lbnRzW2tleV0pCi0t ICAgICAgICAgICAgICAgIGZvciBzZWdtZW50IGluIGhhcm5lc3MuZW1wdHk6Ci0tICAgICAgICAg ICAgICAgICAgICBzZWxmLm91dHB1dF9zZWdtZW50IChzZWdtZW50KQotLSAgICAgICAgaWYgbGVu IChzZWxmLnZhcmlhdGlvbnMpID4gMToKLS0gICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlICgn XHRcdD09PSAnICsgdG9vbC5uYW1lICsgJyBTdW1tYXJ5IGZvciAnCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKyB2YXJpYXRpb24ubmFtZSArICcgPT09XG5cbicpCi0tICAgICAgICAg ICAgc2VsZi5vdXRwdXRfc3VtbWFyeSAodG9vbCwgdmFyaWF0aW9uLmNvdW50cykKLS0KLS0gICAg IyBPdXRwdXQgdW5pZmllZCAubG9nIG9yIC5zdW0gaW5mb3JtYXRpb24gZm9yIGEgcGFydGljdWxh ciB0b29sLAotLSAgICAjIHdpdGggYSBzdW1tYXJ5IGF0IHRoZSBlbmQuCi0tICAgIGRlZiBvdXRw dXRfdG9vbCAoc2VsZiwgdG9vbCk6Ci0tICAgICAgICBjb3VudHMgPSBzZWxmLnplcm9fY291bnRz KCkKLS0gICAgICAgIGlmIHRvb2wubmFtZSA9PSAnYWNhdHMnOgotLSAgICAgICAgICAgICMgYWNh dHMgZG9lc24ndCB1c2UgdmFyaWF0aW9ucywgc28ganVzdCBvdXRwdXQgZXZlcnl0aGluZy4KLS0g ICAgICAgICAgICAjIEl0IGFsc28gaGFzIGEgZGlmZmVyZW50IGFwcHJvYWNoIHRvIHdoaXRlc3Bh Y2UuCi0tICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSAoJ1x0XHQ9PT0gJyArIHRvb2wubmFt ZSArICcgdGVzdHMgPT09XG4nKQotLSAgICAgICAgICAgIGZvciB2YXJpYXRpb24gaW4gdG9vbC52 YXJpYXRpb25zLnZhbHVlcygpOgotLSAgICAgICAgICAgICAgICBzZWxmLm91dHB1dF92YXJpYXRp b24gKHRvb2wsIHZhcmlhdGlvbikKLS0gICAgICAgICAgICAgICAgc2VsZi5hY2N1bXVsYXRlX2Nv dW50cyAoY291bnRzLCB2YXJpYXRpb24uY291bnRzKQotLSAgICAgICAgICAgIHN5cy5zdGRvdXQu d3JpdGUgKCdcdFx0PT09ICcgKyB0b29sLm5hbWUgKyAnIFN1bW1hcnkgPT09XG4nKQotLSAgICAg ICAgZWxzZToKLS0gICAgICAgICAgICAjIE91dHB1dCB0aGUgcmVzdWx0cyBpbiB0aGUgdXN1YWwg ZGVqYWdudSBydW50ZXN0IGZvcm1hdC4KLS0gICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlICgn XG5cdFx0PT09ICcgKyB0b29sLm5hbWUgKyAnIHRlc3RzID09PVxuXG4nCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ1NjaGVkdWxlIG9mIHZhcmlhdGlvbnM6XG4nKQotLSAgICAgICAg ICAgIGZvciBuYW1lIGluIHNlbGYudmFyaWF0aW9uczoKLS0gICAgICAgICAgICAgICAgaWYgbmFt ZSBpbiB0b29sLnZhcmlhdGlvbnM6Ci0tICAgICAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0Lndy aXRlICgnICAgICcgKyBuYW1lICsgJ1xuJykKLS0gICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRl ICgnXG4nKQotLSAgICAgICAgICAgIGZvciBuYW1lIGluIHNlbGYudmFyaWF0aW9uczoKLS0gICAg ICAgICAgICAgICAgaWYgbmFtZSBpbiB0b29sLnZhcmlhdGlvbnM6Ci0tICAgICAgICAgICAgICAg ICAgICB2YXJpYXRpb24gPSB0b29sLnZhcmlhdGlvbnNbbmFtZV0KLS0gICAgICAgICAgICAgICAg ICAgIHN5cy5zdGRvdXQud3JpdGUgKCdSdW5uaW5nIHRhcmdldCAnCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArIHZhcmlhdGlvbi5uYW1lICsgJ1xuJykKLS0gICAgICAg ICAgICAgICAgICAgIHNlbGYub3V0cHV0X3ZhcmlhdGlvbiAodG9vbCwgdmFyaWF0aW9uKQotLSAg ICAgICAgICAgICAgICAgICAgc2VsZi5hY2N1bXVsYXRlX2NvdW50cyAoY291bnRzLCB2YXJpYXRp b24uY291bnRzKQotLSAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUgKCdcblx0XHQ9PT0gJyAr IHRvb2wubmFtZSArICcgU3VtbWFyeSA9PT1cblxuJykKLS0gICAgICAgIHNlbGYub3V0cHV0X3N1 bW1hcnkgKHRvb2wsIGNvdW50cykKLS0KLS0gICAgZGVmIG1haW4gKHNlbGYpOgotLSAgICAgICAg c2VsZi5wYXJzZV9jbWRsaW5lKCkKLS0gICAgICAgIHRyeToKLS0gICAgICAgICAgICAjIFBhcnNl IHRoZSBpbnB1dCBmaWxlcy4KLS0gICAgICAgICAgICBmb3IgZmlsZW5hbWUgaW4gc2VsZi5maWxl czoKLS0gICAgICAgICAgICAgICAgd2l0aCBzYWZlX29wZW4gKGZpbGVuYW1lKSBhcyBmaWxlOgot LSAgICAgICAgICAgICAgICAgICAgc2VsZi5wYXJzZV9maWxlIChmaWxlbmFtZSwgZmlsZSkKLS0K LS0gICAgICAgICAgICAjIERlY2lkZSB3aGF0IHRvIG91dHB1dC4KLS0gICAgICAgICAgICBpZiBs ZW4gKHNlbGYudmFyaWF0aW9ucykgPT0gMDoKLS0gICAgICAgICAgICAgICAgc2VsZi52YXJpYXRp b25zID0gc29ydGVkIChzZWxmLmtub3duX3ZhcmlhdGlvbnMpCi0tICAgICAgICAgICAgZWxzZToK LS0gICAgICAgICAgICAgICAgZm9yIG5hbWUgaW4gc2VsZi52YXJpYXRpb25zOgotLSAgICAgICAg ICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4gc2VsZi5rbm93bl92YXJpYXRpb25zOgotLSAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZmF0YWwgKE5vbmUsICdubyByZXN1bHRzIGZvciAnICsg bmFtZSkKLS0gICAgICAgICAgICBpZiBsZW4gKHNlbGYudG9vbHMpID09IDA6Ci0tICAgICAgICAg ICAgICAgIHNlbGYudG9vbHMgPSBzb3J0ZWQgKHNlbGYucnVucy5rZXlzKCkpCi0tCi0tICAgICAg ICAgICAgIyBPdXRwdXQgdGhlIGhlYWRlci4KLS0gICAgICAgICAgICBpZiBzZWxmLnN0YXJ0X2xp bmU6Ci0tICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUgKHNlbGYuc3RhcnRfbGluZVsx XSkKLS0gICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlIChzZWxmLm5hdGl2ZV9saW5lKQotLSAg ICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUgKHNlbGYudGFyZ2V0X2xpbmUpCi0tICAgICAgICAg ICAgc3lzLnN0ZG91dC53cml0ZSAoc2VsZi5ob3N0X2xpbmUpCi0tICAgICAgICAgICAgc3lzLnN0 ZG91dC53cml0ZSAoc2VsZi5hY2F0c19wcmVtYWJsZSkKLS0KLS0gICAgICAgICAgICAjIE91dHB1 dCB0aGUgbWFpbiBib2R5LgotLSAgICAgICAgICAgIGZvciBuYW1lIGluIHNlbGYudG9vbHM6Ci0t ICAgICAgICAgICAgICAgIGlmIG5hbWUgbm90IGluIHNlbGYucnVuczoKLS0gICAgICAgICAgICAg ICAgICAgIHNlbGYuZmF0YWwgKE5vbmUsICdubyByZXN1bHRzIGZvciAnICsgbmFtZSkKLS0gICAg ICAgICAgICAgICAgc2VsZi5vdXRwdXRfdG9vbCAoc2VsZi5ydW5zW25hbWVdKQotLQotLSAgICAg ICAgICAgICMgT3V0cHV0IHRoZSBmb290ZXIuCi0tICAgICAgICAgICAgaWYgbGVuIChzZWxmLmFj YXRzX2ZhaWx1cmVzKSA+IDA6Ci0tICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUgKCcq KiogRkFJTFVSRVM6ICcKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAnICcu am9pbiAoc2VsZi5hY2F0c19mYWlsdXJlcykgKyAnXG4nKQotLSAgICAgICAgICAgIHN5cy5zdGRv dXQud3JpdGUgKHNlbGYudmVyc2lvbl9vdXRwdXQpCi0tICAgICAgICAgICAgaWYgc2VsZi5lbmRf bGluZToKLS0gICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSAoc2VsZi5lbmRfbGluZVsx XSkKLS0gICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGU6Ci0tICAgICAgICAgICAgc2VsZi5mYXRh bCAoZS5maWxlbmFtZSwgZS5zdHJlcnJvcikKLS0KLS1Qcm9nKCkubWFpbigpCgpkaWZmIC0tZ2l0 IGEvZ2RiLXB5dGhvbi1naWwucGF0Y2ggYi9nZGItcHl0aG9uLWdpbC5wYXRjaAppbmRleCBiMmQ5 ZGU5Li4xZTNiMGI5IDEwMDY0NAotLS0gYS9nZGItcHl0aG9uLWdpbC5wYXRjaAorKysgYi9nZGIt cHl0aG9uLWdpbC5wYXRjaApAQCAtMSw3ICsxLDggQEAKLWRpZmYgLWR1cCAtcnVOcCBnZGItNy44 LW9yaWcvZ2RiL2RvYy9weXRob24udGV4aSBnZGItNy44L2dkYi9kb2MvcHl0aG9uLnRleGkKLS0t LSBnZGItNy44LW9yaWcvZ2RiL2RvYy9weXRob24udGV4aQkyMDE0LTA4LTEzIDIyOjA0OjE0LjE2 MjQ0MTI3MSArMDIwMAotKysrIGdkYi03LjgvZ2RiL2RvYy9weXRob24udGV4aQkyMDE0LTA4LTEz IDIyOjA3OjIwLjg5NDY0Mzg1MyArMDIwMAotQEAgLTIyOCw2ICsyMjgsMTQgQEAgcmV0dXJuZWQg YXMgYSBzdHJpbmcuICBUaGUgZGVmYXVsdCBpcyBAYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL2RvYy9weXRob24udGV4aQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjkuNTAuMjAxNTA1 MjAub3JpZy9nZGIvZG9jL3B5dGhvbi50ZXhpCTIwMTUtMDUtMzEgMTc6NTc6MTIuNDMxNTkzOTgz ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZG9jL3B5dGhvbi50ZXhpCTIwMTUt MDUtMzEgMTc6NTc6MTQuNjU0NjA3NzA4ICswMjAwCitAQCAtMjI5LDYgKzIyOSwxNCBAQCByZXR1 cm5lZCBhcyBhIHN0cmluZy4gIFRoZSBkZWZhdWx0IGlzIEBjCiAgcmV0dXJuIHZhbHVlIGlzIEBj b2Rle05vbmV9LiAgSWYgQHZhcnt0b19zdHJpbmd9IGlzIEBjb2Rle1RydWV9LCB0aGUKICBAdmFs dWV7R0RCTn0gdmlydHVhbCB0ZXJtaW5hbCB3aWxsIGJlIHRlbXBvcmFyaWx5IHNldCB0byB1bmxp bWl0ZWQgd2lkdGgKICBhbmQgaGVpZ2h0LCBhbmQgaXRzIHBhZ2luYXRpb24gd2lsbCBiZSBkaXNh YmxlZDsgQHB4cmVme1NjcmVlbiBTaXplfS4KQEAgLTE2LDEwICsxNywxMSBAQCBkaWZmIC1kdXAg LXJ1TnAgZ2RiLTcuOC1vcmlnL2dkYi9kb2MvcHl0aG9uLnRleGkgZ2RiLTcuOC9nZGIvZG9jL3B5 dGhvbi50ZXhpCiAgQGVuZCBkZWZ1bgogIAogIEBmaW5kZXggZ2RiLmJyZWFrcG9pbnRzCi1kaWZm IC1kdXAgLXJ1TnAgZ2RiLTcuOC1vcmlnL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmggZ2Ri LTcuOC9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCi0tLS0gZ2RiLTcuOC1vcmlnL2dkYi9w eXRob24vcHl0aG9uLWludGVybmFsLmgJMjAxNC0wOC0xMyAyMjowNDoxNC44MzU0NDE5NzcgKzAy MDAKLSsrKyBnZGItNy44L2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgJMjAxNC0wOC0xMyAy MjowNzoyMC44OTU2NDM4NjcgKzAyMDAKLUBAIC0xNDMsNiArMTQzLDggQEAgdHlwZWRlZiBpbnQg UHlfc3NpemVfdDsKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vcHl0aG9u LWludGVybmFsLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2Ri L3B5dGhvbi9weXRob24taW50ZXJuYWwuaAkyMDE1LTA1LTMxIDE3OjU3OjEyLjQzMjU5Mzk4OSAr MDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwu aAkyMDE1LTA1LTMxIDE3OjU3OjE0LjY1NDYwNzcwOCArMDIwMAorQEAgLTE0Miw2ICsxNDIsOCBA QCB0eXBlZGVmIGludCBQeV9zc2l6ZV90OwogICNkZWZpbmUgUHlHSUxTdGF0ZV9SZWxlYXNlKEFS RykgKCh2b2lkKShBUkcpKQogICNkZWZpbmUgUHlFdmFsX0luaXRUaHJlYWRzKCkKICAjZGVmaW5l IFB5VGhyZWFkU3RhdGVfU3dhcChBUkcpICgodm9pZCkoQVJHKSkKQEAgLTI4LDE4ICszMCwxOCBA QCBkaWZmIC1kdXAgLXJ1TnAgZ2RiLTcuOC1vcmlnL2dkYi9weXRob24vcHl0aG9uLWludGVybmFs LmggZ2RiLTcuOC9nZGIvcHl0aG9uL3B5dAogICNkZWZpbmUgUHlFdmFsX1JlbGVhc2VMb2NrKCkK ICAjZW5kaWYKICAKLWRpZmYgLWR1cCAtcnVOcCBnZGItNy44LW9yaWcvZ2RiL3B5dGhvbi9weXRo b24uYyBnZGItNy44L2dkYi9weXRob24vcHl0aG9uLmMKLS0tLSBnZGItNy44LW9yaWcvZ2RiL3B5 dGhvbi9weXRob24uYwkyMDE0LTA4LTEzIDIyOjA0OjE0LjE2NDQ0MTI3MyArMDIwMAotKysrIGdk Yi03LjgvZ2RiL3B5dGhvbi9weXRob24uYwkyMDE0LTA4LTEzIDIyOjA3OjIwLjg5NTY0Mzg2NyAr MDIwMAotQEAgLTYyMCwxNCArNjIwLDE5IEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5T2JqZWN0 ICpzZWxmLCBQeU8KK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vcHl0aG9u LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3B5dGhvbi9w eXRob24uYwkyMDE1LTA1LTMxIDE3OjU3OjE0LjY1NjYwNzcyMCArMDIwMAorKysrIGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3B5dGhvbi9weXRob24uYwkyMDE1LTA1LTMxIDE4OjAyOjA4Ljg5MTQy NDIyNyArMDIwMAorQEAgLTYyNywxMyArNjI3LDE4IEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5 T2JqZWN0ICpzZWxmLCBQeU8KICB7CiAgICBjb25zdCBjaGFyICphcmc7CiAgICBQeU9iamVjdCAq ZnJvbV90dHlfb2JqID0gTlVMTCwgKnRvX3N0cmluZ19vYmogPSBOVUxMOwogLSAgaW50IGZyb21f dHR5LCB0b19zdHJpbmc7CistICBzdGF0aWMgY2hhciAqa2V5d29yZHNbXSA9IHsiY29tbWFuZCIs ICJmcm9tX3R0eSIsICJ0b19zdHJpbmciLCBOVUxMIH07CiArICBQeU9iamVjdCAqcmVsZWFzZV9n aWxfb2JqID0gTlVMTDsKICsgIGludCBmcm9tX3R0eSwgdG9fc3RyaW5nLCByZWxlYXNlX2dpbDsK LSAgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4Y2VwdDsKLS0gIHN0YXRpYyBjaGFy ICprZXl3b3Jkc1tdID0geyJjb21tYW5kIiwgImZyb21fdHR5IiwgInRvX3N0cmluZyIsIE5VTEwg fTsKICsgIHN0YXRpYyBjaGFyICprZXl3b3Jkc1tdID0geyJjb21tYW5kIiwgImZyb21fdHR5Iiwg InRvX3N0cmluZyIsCiArCQkJICAgICAicmVsZWFzZV9naWwiLCBOVUxMIH07CiAgICBjaGFyICpy ZXN1bHQgPSBOVUxMOwpAQCAtNTUsNyArNTcsNyBAQCBkaWZmIC1kdXAgLXJ1TnAgZ2RiLTcuOC1v cmlnL2dkYi9weXRob24vcHl0aG9uLmMgZ2RiLTcuOC9nZGIvcHl0aG9uL3B5dGhvbi5jCiAgICAg IHJldHVybiBOVUxMOwogIAogICAgZnJvbV90dHkgPSAwOwotQEAgLTY0OCwxMiArNjUyLDI4IEBA IGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxmLCBQeU8KK0BAIC02NTQsMTIgKzY1 OSwyOCBAQCBleGVjdXRlX2dkYl9jb21tYW5kIChQeU9iamVjdCAqc2VsZiwgUHlPCiAgICAgICAg dG9fc3RyaW5nID0gY21wOwogICAgICB9CiAgCkBAIC02OCw3ICs3MCw3IEBAIGRpZmYgLWR1cCAt cnVOcCBnZGItNy44LW9yaWcvZ2RiL3B5dGhvbi9weXRob24uYyBnZGItNy44L2dkYi9weXRob24v cHl0aG9uLmMKICsgICAgICByZWxlYXNlX2dpbCA9IGNtcDsKICsgICAgfQogKwotICAgVFJZX0NB VENIIChleGNlcHQsIFJFVFVSTl9NQVNLX0FMTCkKKyAgIFRSWQogICAgICB7CiAgICAgICAgLyog Q29weSB0aGUgYXJndW1lbnQgdGV4dCBpbiBjYXNlIHRoZSBjb21tYW5kIG1vZGlmaWVzIGl0LiAg Ki8KICAgICAgICBjaGFyICpjb3B5ID0geHN0cmR1cCAoYXJnKTsKQEAgLTg0LDcgKzg2LDcgQEAg ZGlmZiAtZHVwIC1ydU5wIGdkYi03Ljgtb3JpZy9nZGIvcHl0aG9uL3B5dGhvbi5jIGdkYi03Ljgv Z2RiL3B5dGhvbi9weXRob24uYwogICAgICAgIG1ha2VfY2xlYW51cF9yZXN0b3JlX2ludGVnZXIg KCZpbnRlcnByZXRlcl9hc3luYyk7CiAgICAgICAgaW50ZXJwcmV0ZXJfYXN5bmMgPSAwOwogIAot QEAgLTY2Niw5ICs2ODYsMjEgQEAgZXhlY3V0ZV9nZGJfY29tbWFuZCAoUHlPYmplY3QgKnNlbGYs IFB5TworQEAgLTY3MiwxMSArNjkzLDIzIEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5T2JqZWN0 ICpzZWxmLCBQeU8KICAJICBleGVjdXRlX2NvbW1hbmQgKGNvcHksIGZyb21fdHR5KTsKICAJfQog IApAQCAtOTQsMjIgKzk2LDI1IEBAIGRpZmYgLWR1cCAtcnVOcCBnZGItNy44LW9yaWcvZ2RiL3B5 dGhvbi9weXRob24uYyBnZGItNy44L2dkYi9weXRob24vcHl0aG9uLmMKICsKICAgICAgICBkb19j bGVhbnVwcyAoY2xlYW51cCk7CiAgICAgIH0KLS0gIEdEQl9QWV9IQU5ETEVfRVhDRVBUSU9OIChl eGNlcHQpOwotKyAgaWYgKGV4Y2VwdC5yZWFzb24gPCAwKQotKyAgICB7Ci0rICAgICAgLyogUmVh Y3F1aXJlIHRoZSBHSUwgaWYgaXQgd2FzIHJlbGVhc2VkIGVhcmxpZXIuICAqLwotKyAgICAgIGlm IChyZWxlYXNlX2dpbCkKLSsJUHlFdmFsX1Jlc3RvcmVUaHJlYWQgKHN0YXRlKTsKLSsKLSsgICAg ICBnZGJweV9jb252ZXJ0X2V4Y2VwdGlvbiAoZXhjZXB0KTsKLSsgICAgICByZXR1cm4gTlVMTDsK LSsgICAgfQorICAgQ0FUQ0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tfQUxMKQorICAgICB7CistICAg ICAgR0RCX1BZX0hBTkRMRV9FWENFUFRJT04gKGV4Y2VwdCk7CisrICAgICAgaWYgKGV4Y2VwdC5y ZWFzb24gPCAwKQorKwl7CisrCSAgLyogUmVhY3F1aXJlIHRoZSBHSUwgaWYgaXQgd2FzIHJlbGVh c2VkIGVhcmxpZXIuICAqLworKwkgIGlmIChyZWxlYXNlX2dpbCkKKysJICAgIFB5RXZhbF9SZXN0 b3JlVGhyZWFkIChzdGF0ZSk7CisrCisrCSAgZ2RicHlfY29udmVydF9leGNlcHRpb24gKGV4Y2Vw dCk7CisrCSAgcmV0dXJuIE5VTEw7CisrCX0KKyAgICAgfQorICAgRU5EX0NBVENICiAgCi0gICAv KiBEbyBhbnkgY29tbWFuZHMgYXR0YWNoZWQgdG8gYnJlYWtwb2ludCB3ZSBzdG9wcGVkIGF0LiAg Ki8KLSAgIGJwc3RhdF9kb19hY3Rpb25zICgpOwotZGlmZiAtZHVwIC1ydU5wIGdkYi03Ljgtb3Jp Zy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQuYyBnZGItNy44L2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRocmVhZC5jCi0tLS0gZ2RiLTcuOC1vcmlnL2dk Yi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRocmVhZC5jCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuOC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24v cHktZ2lsLW10aHJlYWQuYwkyMDE0LTA4LTEzIDIyOjMzOjA1LjA1MjY0ODkxMiArMDIwMAorSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1t dGhyZWFkLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weS1naWwtbXRocmVhZC5jCTIwMTUtMDUtMzEgMTc6NTc6MTQuNjU2NjA3NzIwICsw MjAwCiBAQCAtMCwwICsxLDEyIEBACiArI2luY2x1ZGUgPHN0ZGlvLmg+CiArCkBAIC0xMjMsOSAr MTI4LDEwIEBAIGRpZmYgLWR1cCAtcnVOcCBnZGItNy44LW9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIu cHl0aG9uL3B5LWdpbC1tdGhyZWFkLmMgZ2RiLTcuOC9nCiArICAgICAgcHJpbnRmICgiU2xlZXBp bmcgJWRcbiIsIGkpOwogKyAgICB9CiArfQotZGlmZiAtZHVwIC1ydU5wIGdkYi03Ljgtb3JpZy9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQuZXhwIGdkYi03LjgvZ2RiL3Rl c3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLmV4cAotLS0tIGdkYi03Ljgtb3JpZy9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQuZXhwCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuOC9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktZ2lsLW10aHJlYWQuZXhwCTIwMTQtMDgtMTMgMjI6MzM6MDAuNjYwNjQxMzAwICswMjAw CitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt Z2lsLW10aHJlYWQuZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQuZXhwCTIwMTUtMDUtMzEgMTc6NTc6MTQuNjU3 NjA3NzI2ICswMjAwCiBAQCAtMCwwICsxLDY5IEBACiArIyBDb3B5cmlnaHQgKEMpIDIwMTQgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xOTYsOSArMjAyLDEwIEBAIGRpZmYg LWR1cCAtcnVOcCBnZGItNy44LW9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1t dGhyZWFkLmV4cCBnZGItNy44CiArCX0KICsgICAgfQogK30KLWRpZmYgLWR1cCAtcnVOcCBnZGIt Ny44LW9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLnB5IGdkYi03 LjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLnB5Ci0tLS0gZ2RiLTcu OC1vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRocmVhZC5weQkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjgvZ2RiL3Rlc3RzdWl0ZS9n ZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLnB5CTIwMTQtMDgtMTMgMjI6MzM6MDguOTk2NjU0MzIw ICswMjAwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktZ2lsLW10aHJlYWQucHkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRocmVhZC5weQkyMDE1LTA1LTMxIDE3OjU3OjE0 LjY1NzYwNzcyNiArMDIwMAogQEAgLTAsMCArMSwyMiBAQAogK2ltcG9ydCB0aHJlYWQKICtpbXBv cnQgdGltZQoKZGlmZiAtLWdpdCBhL2dkYi1weXRob24zLXB5X2hhc2hfdC0zMmJpdC5wYXRjaCBi L2dkYi1weXRob24zLXB5X2hhc2hfdC0zMmJpdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggYWQzYTZmNi4uMDAwMDAwMAotLS0gYS9nZGItcHl0aG9uMy1weV9oYXNoX3QtMzJi aXQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNzUgKzAsMCBAQAotaHR0cDovL3NvdXJjZXdh cmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTUtMDIvbXNnMDAwOTEuaHRtbAotU3ViamVjdDogW3Bh dGNoXSBGaXggUHl0aG9uIDMgYnVpbGQgZXJyb3Igb24gMzItYml0IGhvc3RzCi0KLQotLS1aUHQ0 cng4RkZqTENHN2RkCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTIwMjIt anAKLUNvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZQotCi1IaSwKLQotb24gRmVkb3JhIFJhd2hp ZGUgKD09MjIpIGk2ODYgdXNpbmcgLS13aXRoLXB5dGhvbj0vdXNyL2Jpbi9weXRob24zIG9uZSBn ZXRzOgotCi1nY2MgLWcgICAtSS4gLUkuIC1JLi9jb21tb24gLUkuL2NvbmZpZyAtRExPQ0FMRURJ Uj0iXCIvdXNyL2xvY2FsL3NoYXJlL2xvY2FsZVwiIiAtREhBVkVfQ09ORklHX0ggLUkuLy4uL2lu Y2x1ZGUvb3Bjb2RlIC1JLi8uLi9vcGNvZGVzLy4uIC1JLi8uLi9yZWFkbGluZS8uLiAtSS4uL2Jm ZCAtSS4vLi4vYmZkIC1JLi8uLi9pbmNsdWRlIC1JLi4vbGliZGVjbnVtYmVyIC1JLi8uLi9saWJk ZWNudW1iZXIgIC1JLi9nbnVsaWIvaW1wb3J0IC1JYnVpbGQtZ251bGliL2ltcG9ydCAgIC1EVFVJ PTEgICAtcHRocmVhZCAtSS91c3IvaW5jbHVkZS9ndWlsZS8yLjAgIC1JL3Vzci9pbmNsdWRlL3B5 dGhvbjMuNG0gLUkvdXNyL2luY2x1ZGUvcHl0aG9uMy40bSAtV2FsbCAtV2RlY2xhcmF0aW9uLWFm dGVyLXN0YXRlbWVudCAtV3BvaW50ZXItYXJpdGggLVdwb2ludGVyLXNpZ24gLVduby11bnVzZWQg LVd1bnVzZWQtdmFsdWUgLVd1bnVzZWQtZnVuY3Rpb24gLVduby1zd2l0Y2ggLVduby1jaGFyLXN1 YnNjcmlwdHMgLVdtaXNzaW5nLXByb3RvdHlwZXMgLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1l bnQgLVdlbXB0eS1ib2R5IC1XbWlzc2luZy1wYXJhbWV0ZXItdHlwZSAtV29sZC1zdHlsZS1kZWNs YXJhdGlvbiAtV29sZC1zdHlsZS1kZWZpbml0aW9uIC1XZm9ybWF0LW5vbmxpdGVyYWwgLVdlcnJv ciAtYyAtbyBweS12YWx1ZS5vIC1NVCBweS12YWx1ZS5vIC1NTUQgLU1QIC1NRiAuZGVwcy9weS12 YWx1ZS5UcG8gLWZuby1zdHJpY3QtYWxpYXNpbmcgLUROREVCVUcgLWZ3cmFwdiAuL3B5dGhvbi9w eS12YWx1ZS5jCi0uL3B5dGhvbi9weS12YWx1ZS5jOjE2OTY6MzogZXJyb3I6IGluaXRpYWxpemF0 aW9uIGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZSBbLVdlcnJvcl0KLSAgIHZhbHB5X2hh c2gsICAgICAgICAgICAgLyp0cF9oYXNoKi8KLSAgIF4KLS4vcHl0aG9uL3B5LXZhbHVlLmM6MTY5 NjozOiBlcnJvcjogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIBskQiFGGyhCdmFsdWVfb2JqZWN0 X3R5cGUudHBfaGFzaBskQiFHGyhCKSBbLVdlcnJvcl0KLWNjMTogYWxsIHdhcm5pbmdzIGJlaW5n IHRyZWF0ZWQgYXMgZXJyb3JzCi1NYWtlZmlsZToyNjI4OiByZWNpcGUgZm9yIHRhcmdldCAncHkt dmFsdWUubycgZmFpbGVkCi0KLVRoaXMgaXMgYmVjYXVzZSBpbiBQeXRob24gMiB0cF9oYXNoIHdh czoKLQl0eXBlZGVmIGxvbmcgKCpoYXNoZnVuYykoUHlPYmplY3QgKik7Ci13aGlsZSBpbiBQeXRo b24gMyB0cF9oYXNoIGlzOgotCXR5cGVkZWYgUHlfaGFzaF90ICgqaGFzaGZ1bmMpKFB5T2JqZWN0 ICopOwotCi1QeV9oYXNoX3QgaXMgaW50IGZvciAzMi1iaXQgaG9zdHMgYW5kIGxvbmcgZm9yIDY0 LWJpdCBob3N0cy4gIFdoaWxlIG9uIDMyLWJpdAotaG9zdHMgc2l6ZW9mKGxvbmcpPT1zaXplb2Yo aW50KSBzdGlsbCB0aGUgaGFzaGZ1bmMgdHlwZSBpcyBmb3JtYWxseQotaW5jb21wYXRpYmxlLiAg QXMgdGhpcyBwYXRjaCBzaG91bGQgaGF2ZSBubyBjb21waWxlZCBjb2RlIGNoYW5nZSBpdCBpcyBu b3QKLXJlYWxseSBuZWNlc3NhcnkgZm9yIGdkYi03LjksIGl0IHdvdWxkIGZpeCB0aGVyZSBqdXN0 IHRoaXMgbm9uLWZhdGFsCi1jb21waWxhdGlvbiB3YXJuaW5nOgotCS4vcHl0aG9uL3B5LXZhbHVl LmM6MTY5NjozOiB3YXJuaW5nOiBpbml0aWFsaXphdGlvbiBmcm9tIGluY29tcGF0aWJsZSBwb2lu dGVyIHR5cGUKLQkgICB2YWxweV9oYXNoLCAgICAgICAgICAgIC8qdHBfaGFzaCovCi0JICAgXgot CS4vcHl0aG9uL3B5LXZhbHVlLmM6MTY5NjozOiB3YXJuaW5nOiAobmVhciBpbml0aWFsaXphdGlv biBmb3IgGyRCIUYbKEJ2YWx1ZV9vYmplY3RfdHlwZS50cF9oYXNoGyRCIUcbKEIpCi0KLUEgcXVl c3Rpb24gaXMgd2hldGhlciB0aGUgYXV0b2NvbmYgdGVzdCBpc24ndCBhbiBvdmVya2lsbC4gIE9u ZSBjb3VsZCB1c2UKLWluc3RlYWQganVzdDoKLQkjaWYgUFlUSE9OX0FCSV9WRVJTSU9OID49IDMK LUFsc28gb25lIGNvdWxkIHVzZSB0aGF0ICNpZiBlaXRoZXIganVzdCBhdCB0aGUgdmFscHlfaGFz aCgpIGRlZmluaXRpb24gb3Igb25lCi1jb3VsZCBwcm92aWRlIFB5X2hhc2hfdCBpbiBnZGIvZGVm cy5oIG9yIG9uZSBjb3VsZCBwcm92aWRlIHNvbWUgR0RCX1B5X2hhc2hfdAotaW4gZ2RiL2RlZnMu aC4KLQotVGVzdGVkIGNvbXBpbGF0aW9uIHdpdGg6Ci0JcHl0aG9uLWRldmVsLTIuNy45LTQuZmMy Mi54ODZfNjQKLQlweXRob24tZGV2ZWwtMi43LjktNC5mYzIyLmk2ODYKLQlweXRob24zLWRldmVs LTMuNC4yLTQuZmMyMi54ODZfNjQKLQlweXRob24zLWRldmVsLTMuNC4yLTQuZmMyMi5pNjg2Ci0K LQotSmFuCi0KLS0tWlB0NHJ4OEZGakxDRzdkZAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBj aGFyc2V0PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPTEK LQotZ2RiLwotMjAxNS0wMi0wNCAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRo YXQuY29tPgotCi0JKiBjb25maWd1cmUuYWMgPCIke2hhdmVfbGlicHl0aG9ufSIgIT0gbm8+OiBE ZWZpbmUgUHlfaGFzaF90LgotCSogcHl0aG9uL3B5LXZhbHVlLmMgKHZhbHB5X2ZldGNoX2xhenkp OiBVc2UgaXQuICBSZW1vdmUgY2FzdCB0byB0aGUKLQlyZXR1cm4gdHlwZS4KLQkqIGNvbmZpZy5p bjogUmVnZW5lcmF0ZS4KLQkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KLQotZGlmZiAtLWdpdCBh L2dkYi9jb25maWcuaW4gYi9nZGIvY29uZmlnLmluCi1pbmRleCA4MDZjYmFjLi40NGFjZmFjIDEw MDY0NAotLS0tIGEvZ2RiL2NvbmZpZy5pbgotKysrIGIvZ2RiL2NvbmZpZy5pbgotQEAgLTYxNyw2 ICs2MTcsOSBAQAotIC8qIERlZmluZSBpZiB0aGUgcHl0aG9uIGRpcmVjdG9yeSBzaG91bGQgYmUg cmVsb2NhdGVkIHdoZW4gR0RCIGlzIG1vdmVkLiAqLwotICN1bmRlZiBQWVRIT05fUEFUSF9SRUxP Q0FUQUJMRQotIAotKy8qIFByb3ZpZGUgUHl0aG9uIDMgUHlfaGFzaF90IGZvciBQeXRob24gMi4g Ki8KLSsjdW5kZWYgUHlfaGFzaF90Ci0rCi0gLyogUmVsb2NhdGVkIGRpcmVjdG9yeSBmb3Igc291 cmNlIGZpbGVzLiAqLwotICN1bmRlZiBSRUxPQ19TUkNESVIKLSAKLWRpZmYgLS1naXQgYS9nZGIv Y29uZmlndXJlIGIvZ2RiL2NvbmZpZ3VyZQotaW5kZXggOTYzMmY5YS4uNjVmNWIyYyAxMDA3NTUK LS0tLSBhL2dkYi9jb25maWd1cmUKLSsrKyBiL2dkYi9jb25maWd1cmUKLUBAIC04NzQ5LDYgKzg3 NDksNDUgQEAgcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSAgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAke3B5dGhvbl9oYXNfdGhy ZWFkc30iID4mNQotICRhc19lY2hvICIke3B5dGhvbl9oYXNfdGhyZWFkc30iID4mNjsgfQotICAg Q1BQRkxBR1M9IiR7c2F2ZWRfQ1BQRkxBR1N9IgotKwotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgUHlfaGFzaF90IiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBmb3IgUHlfaGFzaF90Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtnZGJf Y3ZfUHlfaGFzaF90K3NldH0iID0gc2V0OyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci0rZWxzZQotKyAgb2xkX0NGTEFHUz0iJENGTEFHUyIKLSsgICAgQ0ZMQUdTPSIkQ0ZM QUdTICRQWVRIT05fQ0ZMQUdTIgotKyAgICBvbGRfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKLSsgICAg Q1BQRkxBR1M9IiRDUFBGTEFHUyAkUFlUSE9OX0NQUEZMQUdTIgotKyAgICBjYXQgY29uZmRlZnMu aCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwot KyNpbmNsdWRlIDxQeXRob24uaD4KLStpbnQKLSttYWluICgpCi0rewotK1B5X2hhc2hfdCB2YXI7 Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY190cnlfY29tcGls ZSAiJExJTkVOTyI7IHRoZW4gOgotKyAgZ2RiX2N2X1B5X2hhc2hfdD15ZXMKLStlbHNlCi0rICBn ZGJfY3ZfUHlfaGFzaF90PW5vCi0rCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25m dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgICAgQ1BQRkxBR1M9IiRvbGRfQ1BQ RkxBR1MiCi0rICAgIENGTEFHUz0iJG9sZF9DRkxBR1MiCi0rCi0rZmkKLSt7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGdkYl9jdl9QeV9oYXNoX3QiID4m NQotKyRhc19lY2hvICIkZ2RiX2N2X1B5X2hhc2hfdCIgPiY2OyB9Ci0rICBpZiB0ZXN0ICJ4JGdk Yl9jdl9QeV9oYXNoX3QiID0gInhubyI7IHRoZW4KLSsKLSskYXNfZWNobyAiI2RlZmluZSBQeV9o YXNoX3QgbG9uZyIgPj5jb25mZGVmcy5oCi0rCi0rICBmaQotIGVsc2UKLSAgICMgRXZlbiBpZiBQ eXRob24gc3VwcG9ydCBpcyBub3QgY29tcGlsZWQgaW4sIHdlIG5lZWQgdG8gaGF2ZSB0aGlzIGZp bGUKLSAgICMgaW5jbHVkZWQgc28gdGhhdCB0aGUgInB5dGhvbiIgY29tbWFuZCwgZXQuYWwuLCBz dGlsbCBleGlzdHMuCi1kaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZS5hYyBiL2dkYi9jb25maWd1 cmUuYWMKLWluZGV4IGRmYzY5NDcuLmYzMzViN2IgMTAwNjQ0Ci0tLS0gYS9nZGIvY29uZmlndXJl LmFjCi0rKysgYi9nZGIvY29uZmlndXJlLmFjCi1AQCAtMTAxNiw2ICsxMDE2LDI1IEBAIGlmIHRl c3QgIiR7aGF2ZV9saWJweXRob259IiAhPSBubzsgdGhlbgotICAgXV0pLCBbcHl0aG9uX2hhc190 aHJlYWRzPW5vXSwgW3B5dGhvbl9oYXNfdGhyZWFkcz15ZXNdKQotICAgQUNfTVNHX1JFU1VMVCgk e3B5dGhvbl9oYXNfdGhyZWFkc30pCi0gICBDUFBGTEFHUz0iJHtzYXZlZF9DUFBGTEFHU30iCi0r Ci0rICBBQ19DQUNIRV9DSEVDSyhbZm9yIFB5X2hhc2hfdF0sIGdkYl9jdl9QeV9oYXNoX3QsCi0r ICAgIG9sZF9DRkxBR1M9IiRDRkxBR1MiCi0rICAgIENGTEFHUz0iJENGTEFHUyAkUFlUSE9OX0NG TEFHUyIKLSsgICAgb2xkX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCi0rICAgIENQUEZMQUdTPSIkQ1BQ RkxBR1MgJFBZVEhPTl9DUFBGTEFHUyIKLSsgICAgQUNfVFJZX0NPTVBJTEUoCi0rICAgICAgWyNp bmNsdWRlIDxQeXRob24uaD5dLAotKyAgICAgIFtQeV9oYXNoX3QgdmFyO10sCi0rICAgICAgZ2Ri X2N2X1B5X2hhc2hfdD15ZXMsCi0rICAgICAgZ2RiX2N2X1B5X2hhc2hfdD1ubwotKyAgICApCi0r ICAgIENQUEZMQUdTPSIkb2xkX0NQUEZMQUdTIgotKyAgICBDRkxBR1M9IiRvbGRfQ0ZMQUdTIgot KyAgKQotKyAgaWYgdGVzdCAieCRnZGJfY3ZfUHlfaGFzaF90IiA9ICJ4bm8iOyB0aGVuCi0rICAg IEFDX0RFRklORShQeV9oYXNoX3QsIGxvbmcsCi0rCSAgICAgIFtQcm92aWRlIFB5dGhvbiAzIFB5 X2hhc2hfdCBmb3IgUHl0aG9uIDIuXSkKLSsgIGZpCi0gZWxzZQotICAgIyBFdmVuIGlmIFB5dGhv biBzdXBwb3J0IGlzIG5vdCBjb21waWxlZCBpbiwgd2UgbmVlZCB0byBoYXZlIHRoaXMgZmlsZQot ICAgIyBpbmNsdWRlZCBzbyB0aGF0IHRoZSAicHl0aG9uIiBjb21tYW5kLCBldC5hbC4sIHN0aWxs IGV4aXN0cy4KLWRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5LXZhbHVlLmMgYi9nZGIvcHl0aG9u L3B5LXZhbHVlLmMKLWluZGV4IDRjNGQzNmUuLjVhMTM3NzcgMTAwNjQ0Ci0tLS0gYS9nZGIvcHl0 aG9uL3B5LXZhbHVlLmMKLSsrKyBiL2dkYi9weXRob24vcHktdmFsdWUuYwotQEAgLTg5NSwxMCAr ODk1LDEwIEBAIHZhbHB5X2ZldGNoX2xhenkgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJn cykKLSAKLSAvKiBDYWxjdWxhdGUgYW5kIHJldHVybiB0aGUgYWRkcmVzcyBvZiB0aGUgUHlPYmpl Y3QgYXMgdGhlIHZhbHVlIG9mCi0gICAgdGhlIGJ1aWx0aW4gX19oYXNoX18gY2FsbC4gICovCi0t c3RhdGljIGxvbmcKLStzdGF0aWMgUHlfaGFzaF90Ci0gdmFscHlfaGFzaCAoUHlPYmplY3QgKnNl bGYpCi0gewotLSAgcmV0dXJuIChsb25nKSAoaW50cHRyX3QpIHNlbGY7Ci0rICByZXR1cm4gKGlu dHB0cl90KSBzZWxmOwotIH0KLSAKLSBlbnVtIHZhbHB5X29wY29kZQoKZGlmZiAtLWdpdCBhL2dk Yi1weXRob24zLXRlc3RzdWl0ZS5wYXRjaCBiL2dkYi1weXRob24zLXRlc3RzdWl0ZS5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTk4MTc3Ny4uMDAwMDAwMAotLS0gYS9nZGIt cHl0aG9uMy10ZXN0c3VpdGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi1o dHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNS0wMi9tc2cwMDM2MS5odG1s Ci1TdWJqZWN0OiBQUiBweXRob24vMTc5MjcgKFB5dGhvbiAzIHRlc3RzdWl0ZSBjb21wYXRhYmls aXR5KQotCi1UaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIFB5dGhvbiB0ZXN0c3VpdGUgdG8gbWFpbnRh aW4gUHl0aG9uIDMKLWNvbXBhdGliaWxpdHkuICBJJ2xsIGNoZWNrIGl0IGluIHVuZGVyIHRoZSBv YnZpb3VzIHRvbW9ycm93IChpZgotbm9ib2R5IG9iamVjdHMgb3RoZXJ3aXNlLikKLQotQ2hlZXJz Ci0KLVBoaWwKLQotCi0yMDE1LTAyLTE2ICBQaGlsIE11bGRvb24gIDxwbXVsZG9vbkByZWRoYXQu Y29tPgotCi0gICAgUFIgcHl0aG9uLzE3OTI3Ci0gICAgKiBnZGIucHl0aG9uL3B5LW9iamZpbGUu ZXhwOiBVc2UgcHJpbnQgKCkKLSAgICAqIGdkYi5weXRob24vcHktdHlwZS5leHA6IERpdHRvLgot ICAgICogZ2RiLnB5dGhvbi9weS1mcmFtZWZpbHRlci5weTogVXBkYXRlIHRvIHVzZSBtYXAgaW4K LSAgICBQeXRob24gMy4KLQotLS0KLQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9weS1mcmFtZWZpbHRlci5weSBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFt ZWZpbHRlci5weQotaW5kZXggMGRlMDI2Yy4uOGM2NWVkYyAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZWZpbHRlci5weQotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIucHl0aG9uL3B5LWZyYW1lZmlsdGVyLnB5Ci1AQCAtMTQ1LDcgKzE0NSwxMCBAQCBjbGFzcyBF cnJvckZpbHRlcigpOgotICAgICAgICAgZ2RiLmZyYW1lX2ZpbHRlcnMgW3NlbGYubmFtZV0gPSBz ZWxmCi0gCi0gICAgIGRlZiBmaWx0ZXIoc2VsZiwgZnJhbWVfaXRlcik6Ci0tICAgICAgICByZXR1 cm4gaXRlcnRvb2xzLmltYXAoRXJyb3JJbk5hbWUsIGZyYW1lX2l0ZXIpCi0rICAgICAgICBpZiBo YXNhdHRyKGl0ZXJ0b29scywgImltYXAiKToKLSsgICAgICAgICAgICByZXR1cm4gaXRlcnRvb2xz LmltYXAoRXJyb3JJbk5hbWUsIGZyYW1lX2l0ZXIpCi0rICAgICAgICBlbHNlOgotKyAgICAgICAg ICAgIHJldHVybiBtYXAoRXJyb3JJbk5hbWUsIGZyYW1lX2l0ZXIpCi0gCi0gRnJhbWVGaWx0ZXIo KQotIEZyYW1lRWxpZGVyKCkKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24v cHktdHlwZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdHlwZS5leHAKLWluZGV4 IGM0YzhkOWYuLjZjNGU1ZjggMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24v cHktdHlwZS5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS10eXBlLmV4cAot QEAgLTI0NywxMCArMjQ3LDEwIEBAIHJlc3RhcnRfZ2RiICIke2JpbmZpbGV9IgotICMgU2tpcCBh bGwgdGVzdHMgaWYgUHl0aG9uIHNjcmlwdGluZyBpcyBub3QgZW5hYmxlZC4KLSBpZiB7IFtza2lw X3B5dGhvbl90ZXN0c10gfSB7IGNvbnRpbnVlIH0KLSAKLS1nZGJfdGVzdCAicHl0aG9uIHByaW50 IGdkYi5sb29rdXBfdHlwZSgnY2hhcicpLmFycmF5KDEsIDApIiBcCi0rZ2RiX3Rlc3QgInB5dGhv biBwcmludCAoZ2RiLmxvb2t1cF90eXBlKCdjaGFyJykuYXJyYXkoMSwgMCkpIiBcCi0gICAgICJj aGFyIFxcXFswXFxcXSIKLSAKLS1nZGJfdGVzdCAicHl0aG9uIHByaW50IGdkYi5sb29rdXBfdHlw ZSgnY2hhcicpLmFycmF5KDEsIC0xKSIgXAotK2dkYl90ZXN0ICJweXRob24gcHJpbnQgKGdkYi5s b29rdXBfdHlwZSgnY2hhcicpLmFycmF5KDEsIC0xKSkiIFwKLSAgICAgIkFycmF5IGxlbmd0aCBt dXN0IG5vdCBiZSBuZWdhdGl2ZS4qIgotIAotIHdpdGhfdGVzdF9wcmVmaXggImxhbmdfYyIgewot CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaCBiL2dkYi1y aGJ6Nzk1NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2gKaW5kZXggNTIxOWE3YS4uMjFlYWVkOCAxMDA2 NDQKLS0tIGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaAorKysgYi9nZGItcmhi ejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoCkBAIC00NjMsMTAgKzQ2MywxMCBAQCBDb250ZW50 LVR5cGU6IHRleHQveC1wYXRjaAogQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAogQ29u dGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9Yml0cG9zLW1haW4ucGF0Y2gK IAotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1sYW5nLmMKK0luZGV4OiBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi9hZGEtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45 MC4yMDE1MDIwMi5vcmlnL2dkYi9hZGEtbGFuZy5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0 NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLWxhbmcuYwkyMDE1LTAy LTExIDE2OjAxOjU5LjU4Njk2NjIyOSArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3Jp Zy9nZGIvYWRhLWxhbmcuYwkyMDE1LTA1LTMxIDE3OjA4OjQ2LjgwNzUwNjE1NyArMDIwMAorKysr IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2FkYS1sYW5nLmMJMjAxNS0wNS0zMSAxNzoxMToyMi4x MjI0ODY0MDMgKzAyMDAKIEBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZGVz Y19ib3VuZHNfdHlwZSAoc3QKICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICpkZXNjX2JvdW5kcyAo c3RydWN0IHZhbHVlICopOwpAQCAtNTU3LDcgKzU1Nyw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIw MTUwMjAyL2dkYi9hZGEtbGFuZy5jCiAgewogICAgaWYgKGFkZHJlc3MgPT0gMCkKICAgICAgcmV0 dXJuIDA7Ci1AQCAtMTcxMiw3ICsxNzEzLDcgQEAgZGVzY19ib3VuZHMgKHN0cnVjdCB2YWx1ZSAq YXJyKQorQEAgLTE3MTEsNyArMTcxMiw3IEBAIGRlc2NfYm91bmRzIChzdHJ1Y3QgdmFsdWUgKmFy cikKICAvKiBJZiBUWVBFIGlzIHRoZSB0eXBlIG9mIGFuIGFycmF5LWRlc2NyaXB0b3IgKGZhdCBw b2ludGVyKSwgIHRoZSBiaXQKICAgICBwb3NpdGlvbiBvZiB0aGUgZmllbGQgY29udGFpbmluZyB0 aGUgYWRkcmVzcyBvZiB0aGUgYm91bmRzIGRhdGEuICAqLwogIApAQCAtNTY2LDcgKzU2Niw3IEBA IEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hZGEtbGFuZy5jCiAgZmF0X3BudHJfYm91 bmRzX2JpdHBvcyAoc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgcmV0dXJuIFRZUEVfRklFTERf QklUUE9TIChkZXNjX2Jhc2VfdHlwZSAodHlwZSksIDEpOwotQEAgLTE3NzgsNyArMTc3OSw3IEBA IGRlc2NfZGF0YSAoc3RydWN0IHZhbHVlICphcnIpCitAQCAtMTc3Nyw3ICsxNzc4LDcgQEAgZGVz Y19kYXRhIChzdHJ1Y3QgdmFsdWUgKmFycikKICAvKiBJZiBUWVBFIGlzIHRoZSB0eXBlIG9mIGFu IGFycmF5LWRlc2NyaXB0b3IgKGZhdCBwb2ludGVyKSwgdGhlIGJpdAogICAgIHBvc2l0aW9uIG9m IHRoZSBmaWVsZCBjb250YWluaW5nIHRoZSBhZGRyZXNzIG9mIHRoZSBkYXRhLiAgKi8KICAKQEAg LTU3NSw3ICs1NzUsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLWxhbmcu YwogIGZhdF9wbnRyX2RhdGFfYml0cG9zIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICByZXR1 cm4gVFlQRV9GSUVMRF9CSVRQT1MgKGRlc2NfYmFzZV90eXBlICh0eXBlKSwgMCk7Ci1AQCAtMTgx Myw3ICsxODE0LDcgQEAgZGVzY19vbmVfYm91bmQgKHN0cnVjdCB2YWx1ZSAqYm91bmRzLCBpbgor QEAgLTE4MTIsNyArMTgxMyw3IEBAIGRlc2Nfb25lX2JvdW5kIChzdHJ1Y3QgdmFsdWUgKmJvdW5k cywgaW4KICAgICBvZiB0aGUgSXRoIGxvd2VyIGJvdW5kIHN0b3JlZCBpbiBpdCwgaWYgV0hJQ0gg aXMgMCwgYW5kIHRoZSBJdGggdXBwZXIKICAgICBib3VuZCwgaWYgV0hJQ0ggaXMgMS4gIFRoZSBm aXJzdCBib3VuZCBpcyBJPTEuICAqLwogIApAQCAtNTg0LDcgKzU4NCw3IEBAIEluZGV4OiBnZGIt Ny44LjkwLjIwMTUwMjAyL2dkYi9hZGEtbGFuZy5jCiAgZGVzY19ib3VuZF9iaXRwb3MgKHN0cnVj dCB0eXBlICp0eXBlLCBpbnQgaSwgaW50IHdoaWNoKQogIHsKICAgIHJldHVybiBUWVBFX0ZJRUxE X0JJVFBPUyAoZGVzY19iYXNlX3R5cGUgKHR5cGUpLCAyICogaSArIHdoaWNoIC0gMik7Ci1AQCAt MjAwMyw3ICsyMDA0LDcgQEAgYWRhX3R5cGVfb2ZfYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyLCBp bgorQEAgLTIwMDIsNyArMjAwMyw3IEBAIGFkYV90eXBlX29mX2FycmF5IChzdHJ1Y3QgdmFsdWUg KmFyciwgaW4KICAJICAgICAgICAgemVybywgYW5kIGRvZXMgbm90IG5lZWQgdG8gYmUgcmVjb21w dXRlZC4gICovCiAgCSAgICAgIGlmIChsbyA8IGhpKQogIAkJewpAQCAtNTkzLDcgKzU5Myw3IEBA IEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hZGEtbGFuZy5jCiAgCQkgICAgICAgICho aSAtIGxvICsgMSkgKiBUWVBFX0ZJRUxEX0JJVFNJWkUgKGVsdF90eXBlLCAwKTsKICAKICAJCSAg VFlQRV9MRU5HVEggKGFycmF5X3R5cGUpID0gKGFycmF5X2JpdHNpemUgKyA3KSAvIDg7Ci1AQCAt MjE2Myw3ICsyMTY0LDcgQEAgZGVjb2RlX3BhY2tlZF9hcnJheV9iaXRzaXplIChzdHJ1Y3QgdHlw ZQorQEAgLTIxNjIsNyArMjE2Myw3IEBAIGRlY29kZV9wYWNrZWRfYXJyYXlfYml0c2l6ZSAoc3Ry dWN0IHR5cGUKICAgICB0aGUgbGVuZ3RoIGlzIGFyYml0cmFyeS4gICovCiAgCiAgc3RhdGljIHN0 cnVjdCB0eXBlICoKQEAgLTYwMiw3ICs2MDIsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvYWRhLWxhbmcuYwogIHsKICAgIHN0cnVjdCB0eXBlICpuZXdfZWx0X3R5cGU7CiAgICBz dHJ1Y3QgdHlwZSAqbmV3X3R5cGU7Ci1AQCAtMjIxNyw3ICsyMjE4LDcgQEAgZGVjb2RlX2NvbnN0 cmFpbmVkX3BhY2tlZF9hcnJheV90eXBlIChzdAorQEAgLTIyMTYsNyArMjIxNyw3IEBAIGRlY29k ZV9jb25zdHJhaW5lZF9wYWNrZWRfYXJyYXlfdHlwZSAoc3QKICAgIGNoYXIgKm5hbWU7CiAgICBj b25zdCBjaGFyICp0YWlsOwogICAgc3RydWN0IHR5cGUgKnNoYWRvd190eXBlOwpAQCAtNjExLDcg KzYxMSw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hZGEtbGFuZy5jCiAgCiAg ICBpZiAoIXJhd19uYW1lKQogICAgICByYXdfbmFtZSA9IGFkYV90eXBlX25hbWUgKGRlc2NfYmFz ZV90eXBlICh0eXBlKSk7Ci1AQCAtMjI4OCw3ICsyMjg5LDggQEAgZGVjb2RlX2NvbnN0cmFpbmVk X3BhY2tlZF9hcnJheSAoc3RydWN0CitAQCAtMjI4Nyw3ICsyMjg4LDggQEAgZGVjb2RlX2NvbnN0 cmFpbmVkX3BhY2tlZF9hcnJheSAoc3RydWN0CiAgIAkgYXJyYXkgd2l0aCBubyB3cmFwcGVyLiAg SW4gb3JkZXIgdG8gaW50ZXJwcmV0IHRoZSB2YWx1ZSB0aHJvdWdoCiAgIAkgdGhlIChsZWZ0LWp1 c3RpZmllZCkgcGFja2VkIGFycmF5IHR5cGUgd2UganVzdCBidWlsdCwgd2UgbXVzdAogICAJIGZp cnN0IGxlZnQtanVzdGlmeSBpdC4gICovCkBAIC02MjEsNyArNjIxLDcgQEAgSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBVTE9OR0VTVCBtb2Q7CiAgCiAg ICAgICAgbW9kID0gYWRhX21vZHVsdXMgKHZhbHVlX3R5cGUgKGFycikpIC0gMTsKLUBAIC0yMzg5 LDE1ICsyMzkxLDE2IEBAIGhhc19uZWdhdGl2ZXMgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTIz ODgsMTUgKzIzOTAsMTYgQEAgaGFzX25lZ2F0aXZlcyAoc3RydWN0IHR5cGUgKnR5cGUpCiAgCiAg c3RydWN0IHZhbHVlICoKICBhZGFfdmFsdWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKHN0cnVjdCB2 YWx1ZSAqb2JqLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTY0NCw3ICs2NDQsNyBAQCBJ bmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLWxhbmcuYwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYnl0ZSBvZiBzb3VyY2UgdGhhdCBhcmUgdW51c2VkICovCiAg ICAgIGFjY3VtU2l6ZTsgICAgICAgICAgICAgICAgICAvKiBOdW1iZXIgb2YgbWVhbmluZ2Z1bCBi aXRzIGluIGFjY3VtICovCiAgICB1bnNpZ25lZCBjaGFyICpieXRlczsgICAgICAgICAvKiBGaXJz dCBieXRlIGNvbnRhaW5pbmcgZGF0YSB0byB1bnBhY2sgKi8KLUBAIC0yNDMxLDcgKzI0MzQsNyBA QCBhZGFfdmFsdWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKHN0cnVjdCB2CitAQCAtMjQ0MSw3ICsy NDQ0LDcgQEAgYWRhX3ZhbHVlX3ByaW1pdGl2ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdgogIAogICAg aWYgKG9iaiAhPSBOVUxMKQogICAgICB7CkBAIC02NTMsNyArNjUzLDcgQEAgSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1sYW5nLmMKICAKICAgICAgICBzZXRfdmFsdWVfY29tcG9u ZW50X2xvY2F0aW9uICh2LCBvYmopOwogICAgICAgIHNldF92YWx1ZV9iaXRwb3MgKHYsIGJpdF9v ZmZzZXQgKyB2YWx1ZV9iaXRwb3MgKG9iaikpOwotQEAgLTI1NDcsNyArMjU1MCw3IEBAIGFkYV92 YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoc3RydWN0IHYKK0BAIC0yNTYyLDcgKzI1NjUsNyBA QCBhZGFfdmFsdWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKHN0cnVjdCB2CiAgICAgbm90IG92ZXJs YXAuICAqLwogIHN0YXRpYyB2b2lkCiAgbW92ZV9iaXRzIChnZGJfYnl0ZSAqdGFyZ2V0LCBpbnQg dGFyZ19vZmZzZXQsIGNvbnN0IGdkYl9ieXRlICpzb3VyY2UsCkBAIC02NjIsNyArNjYyLDcgQEAg SW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICB1bnNpZ25l ZCBpbnQgYWNjdW0sIG1hc2s7CiAgICBpbnQgYWNjdW1fYml0cywgY2h1bmtfc2l6ZTsKLUBAIC0y NjM3LDcgKzI2NDAsNyBAQCBhZGFfdmFsdWVfYXNzaWduIChzdHJ1Y3QgdmFsdWUgKnRvdmFsLCBz CitAQCAtMjY1Miw3ICsyNjU1LDcgQEAgYWRhX3ZhbHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0 b3ZhbCwgcwogICAgICB7CiAgICAgICAgaW50IGxlbiA9ICh2YWx1ZV9iaXRwb3MgKHRvdmFsKQog IAkJICsgYml0cyArIEhPU1RfQ0hBUl9CSVQgLSAxKSAvIEhPU1RfQ0hBUl9CSVQ7CkBAIC02NzEs MTYgKzY3MSwxNiBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLWxhbmcuYwog ICAgICAgIGdkYl9ieXRlICpidWZmZXIgPSBhbGxvY2EgKGxlbik7CiAgICAgICAgc3RydWN0IHZh bHVlICp2YWw7CiAgICAgICAgQ09SRV9BRERSIHRvX2FkZHIgPSB2YWx1ZV9hZGRyZXNzICh0b3Zh bCk7Ci1AQCAtMjY4Miw3ICsyNjg1LDcgQEAgdmFsdWVfYXNzaWduX3RvX2NvbXBvbmVudCAoc3Ry dWN0IHZhbHVlCitAQCAtMjcwMyw3ICsyNzA2LDcgQEAgdmFsdWVfYXNzaWduX3RvX2NvbXBvbmVu dCAoc3RydWN0IHZhbHVlCiAgICAgIChMT05HRVNUKSAgKHZhbHVlX2FkZHJlc3MgKGNvbXBvbmVu dCkgLSB2YWx1ZV9hZGRyZXNzIChjb250YWluZXIpKTsKLSAgIGludCBiaXRfb2Zmc2V0X2luX2Nv bnRhaW5lciA9IAorICAgaW50IGJpdF9vZmZzZXRfaW5fY29udGFpbmVyID0KICAgICAgdmFsdWVf Yml0cG9zIChjb21wb25lbnQpIC0gdmFsdWVfYml0cG9zIChjb250YWluZXIpOwogLSAgaW50IGJp dHM7CiArICBMT05HRVNUIGJpdHM7Ci0gICAKKyAKICAgIHZhbCA9IHZhbHVlX2Nhc3QgKHZhbHVl X3R5cGUgKGNvbXBvbmVudCksIHZhbCk7CiAgCi1AQCAtNDIxOSw3ICs0MjIyLDcgQEAgZW5zdXJl X2x2YWwgKHN0cnVjdCB2YWx1ZSAqdmFsKQorQEAgLTQyOTQsNyArNDI5Nyw3IEBAIGVuc3VyZV9s dmFsIChzdHJ1Y3QgdmFsdWUgKnZhbCkKICAgIGlmIChWQUxVRV9MVkFMICh2YWwpID09IG5vdF9s dmFsCiAgICAgICAgfHwgVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX2ludGVybmFsdmFyKQogICAg ICB7CkBAIC02ODksNyArNjg5LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2Fk YS1sYW5nLmMKICAgICAgICBjb25zdCBDT1JFX0FERFIgYWRkciA9CiAgICAgICAgICB2YWx1ZV9h c19sb25nICh2YWx1ZV9hbGxvY2F0ZV9zcGFjZV9pbl9pbmZlcmlvciAobGVuKSk7CiAgCi1AQCAt NDI5Myw3ICs0Mjk2LDcgQEAgc3RhdGljIENPUkVfQUREUgorQEAgLTQzNzgsNyArNDM4MSw3IEBA IHN0YXRpYyBDT1JFX0FERFIKICB2YWx1ZV9wb2ludGVyIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBz dHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90 eXBlX2FyY2ggKHR5cGUpOwpAQCAtNjk4LDcgKzY5OCw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIw MTUwMjAyL2dkYi9hZGEtbGFuZy5jCiAgICBnZGJfYnl0ZSAqYnVmID0gYWxsb2NhIChsZW4pOwog ICAgQ09SRV9BRERSIGFkZHI7CiAgCi1AQCAtNjQzNiw3ICs2NDM5LDcgQEAgdmFsdWVfdGFnX2Zy b21fY29udGVudHNfYW5kX2FkZHJlc3MgKHN0cgorQEAgLTY1MjEsNyArNjUyNCw3IEBAIHZhbHVl X3RhZ19mcm9tX2NvbnRlbnRzX2FuZF9hZGRyZXNzIChzdHIKICAJCQkJICAgICBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09S RV9BRERSIGFkZHJlc3MpCiAgewpAQCAtNzA3LDcgKzcwNyw3IEBAIEluZGV4OiBnZGItNy44Ljkw LjIwMTUwMjAyL2dkYi9hZGEtbGFuZy5jCiAgICBzdHJ1Y3QgdHlwZSAqdGFnX3R5cGU7CiAgCiAg ICBpZiAoZmluZF9zdHJ1Y3RfZmllbGQgKCJfdGFnIiwgdHlwZSwgMCwgJnRhZ190eXBlLCAmdGFn X2J5dGVfb2Zmc2V0LAotQEAgLTY5MDEsNyArNjkwNCw3IEBAIGFkYV9pbl92YXJpYW50IChMT05H RVNUIHZhbCwgc3RydWN0IHR5cGUKK0BAIC02OTkxLDcgKzY5OTQsNyBAQCBhZGFfaW5fdmFyaWFu dCAoTE9OR0VTVCB2YWwsIHN0cnVjdCB0eXBlCiAgICAgb25seSBpbiB0aGF0IGl0IGNhbiBoYW5k bGUgcGFja2VkIHZhbHVlcyBvZiBhcmJpdHJhcnkgdHlwZS4gICovCiAgCiAgc3RhdGljIHN0cnVj dCB2YWx1ZSAqCkBAIC03MTYsNyArNzE2LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIv Z2RiL2FkYS1sYW5nLmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAq YXJnX3R5cGUpCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGU7Ci1AQCAtNjkxMyw3ICs2OTE2LDcg QEAgYWRhX3ZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlCitAQCAtNzAwMyw3ICs3 MDA2LDcgQEAgYWRhX3ZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlCiAgCiAgICBp ZiAoVFlQRV9GSUVMRF9CSVRTSVpFIChhcmdfdHlwZSwgZmllbGRubykgIT0gMCkKICAgICAgewpA QCAtNzI1LDcgKzcyNSw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hZGEtbGFu Zy5jCiAgICAgICAgaW50IGJpdF9zaXplID0gVFlQRV9GSUVMRF9CSVRTSVpFIChhcmdfdHlwZSwg ZmllbGRubyk7CiAgCiAgICAgICAgcmV0dXJuIGFkYV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3Zh bCAoYXJnMSwgdmFsdWVfY29udGVudHMgKGFyZzEpLAotQEAgLTY5NDAsOSArNjk0Myw5IEBAIGFk YV92YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZQorQEAgLTcwMzAsOSArNzAzMyw5 IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZQogICAgIFJldHVybnMg MSBpZiBmb3VuZCwgMCBvdGhlcndpc2UuICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTczNyw3ICs3 MzcsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLWxhbmcuYwogIAkJICAg aW50ICppbmRleF9wKQogIHsKICAgIGludCBpOwotQEAgLTY5NjAsOCArNjk2Myw4IEBAIGZpbmRf c3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBzdHIKK0BAIC03MDUwLDggKzcwNTMsOCBA QCBmaW5kX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtZSwgc3RyCiAgCiAgICBmb3IgKGkg PSAwOyBpIDwgVFlQRV9ORklFTERTICh0eXBlKTsgaSArPSAxKQogICAgICB7CkBAIC03NDgsNyAr NzQ4LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1sYW5nLmMKICAgICAg ICBjb25zdCBjaGFyICp0X2ZpZWxkX25hbWUgPSBUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIGkpOwog IAogICAgICAgIGlmICh0X2ZpZWxkX25hbWUgPT0gTlVMTCkKLUBAIC03MDMxLDcgKzcwMzQsNyBA QCBudW1fdmlzaWJsZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTcxMjEsNyArNzEy NCw3IEBAIG51bV92aXNpYmxlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUpCiAgICAgU2VhcmNo ZXMgcmVjdXJzaXZlbHkgdGhyb3VnaCB3cmFwcGVyIGZpZWxkcyAoZS5nLiwgJ19wYXJlbnQnKS4g ICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC03NTcsNyArNzU3LDcgQEAgSW5kZXg6 IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1sYW5nLmMKICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgaW50IGk7Ci1AQCAtNzA2NCw3ICs3MDY3 LDcgQEAgYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNoYXIgKm5hbWUsIHN0cgorQEAgLTcxNTQs NyArNzE1Nyw3IEBAIGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChjaGFyICpuYW1lLCBzdHIKICAg ICAgICAgICAgaW50IGo7CiAgICAgICAgICAgIHN0cnVjdCB0eXBlICpmaWVsZF90eXBlID0gYWRh X2NoZWNrX3R5cGVkZWYgKFRZUEVfRklFTERfVFlQRSAodHlwZSwKICAJCQkJCQkJCQlpKSk7CkBA IC03NjYsNyArNzY2LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1sYW5n LmMKICAKICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IFRZUEVfTkZJRUxEUyAoZmllbGRfdHlw ZSk7IGogKz0gMSkKICAgICAgICAgICAgICB7Ci1AQCAtNzA4Miw4ICs3MDg1LDggQEAgYWRhX3Nl YXJjaF9zdHJ1Y3RfZmllbGQgKGNoYXIgKm5hbWUsIHN0cgorQEAgLTcxNzIsOCArNzE3NSw4IEBA IGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChjaGFyICpuYW1lLCBzdHIKICAgIHJldHVybiBOVUxM OwogIH0KICAKQEAgLTc3Nyw3ICs3NzcsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9n ZGIvYWRhLWxhbmcuYwogIAogIAogIC8qIFJldHVybiBmaWVsZCAjSU5ERVggaW4gQVJHLCB3aGVy ZSB0aGUgaW5kZXggaXMgdGhhdCByZXR1cm5lZCBieQotQEAgLTcwOTIsNyArNzA5NSw3IEBAIHN0 YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV9pbmRleF9zdHJ1Y3RfZmkKK0BAIC03MTgyLDcgKzcxODUs NyBAQCBzdGF0aWMgc3RydWN0IHZhbHVlICphZGFfaW5kZXhfc3RydWN0X2ZpCiAgICogSWYgZm91 bmQsIHJldHVybiB2YWx1ZSwgZWxzZSByZXR1cm4gTlVMTC4gICovCiAgCiAgc3RhdGljIHN0cnVj dCB2YWx1ZSAqCkBAIC03ODYsNyArNzg2LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIv Z2RiL2FkYS1sYW5nLmMKICAJCQlzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICByZXR1cm4gYWRh X2luZGV4X3N0cnVjdF9maWVsZF8xICgmaW5kZXgsIGFyZywgb2Zmc2V0LCB0eXBlKTsKLUBAIC03 MTA0LDcgKzcxMDcsNyBAQCBhZGFfaW5kZXhfc3RydWN0X2ZpZWxkIChpbnQgaW5kZXgsIHN0cnVj CitAQCAtNzE5NCw3ICs3MTk3LDcgQEAgYWRhX2luZGV4X3N0cnVjdF9maWVsZCAoaW50IGluZGV4 LCBzdHJ1YwogICAqICpJTkRFWF9QLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAg LTc5NSw3ICs3OTUsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLWxhbmcu YwogIAkJCSAgc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgaW50IGk7Ci1AQCAtNzE5NCw3ICs3 MTk3LDggQEAgYWRhX3ZhbHVlX3N0cnVjdF9lbHQgKHN0cnVjdCB2YWx1ZSAqYXJnLAorQEAgLTcy ODQsNyArNzI4Nyw4IEBAIGFkYV92YWx1ZV9zdHJ1Y3RfZWx0IChzdHJ1Y3QgdmFsdWUgKmFyZywK ICAgICAgdiA9IGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChuYW1lLCBhcmcsIDAsIHQpOwogICAg ZWxzZQogICAgICB7CkBAIC04MDUsNyArODA1LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAy MDIvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZTsKICAgICAg ICBDT1JFX0FERFIgYWRkcmVzczsKICAKLUBAIC03NTExLDggKzc1MTUsOCBAQCBhZGFfY29lcmNl X3JlZiAoc3RydWN0IHZhbHVlICp2YWwwKQorQEAgLTc2MDEsOCArNzYwNSw4IEBAIGFkYV9jb2Vy Y2VfcmVmIChzdHJ1Y3QgdmFsdWUgKnZhbDApCiAgLyogUmV0dXJuIE9GRiByb3VuZGVkIHVwd2Fy ZCBpZiBuZWNlc3NhcnkgdG8gYSBtdWx0aXBsZSBvZgogICAgIEFMSUdOTUVOVCAoYSBwb3dlciBv ZiAyKS4gICovCiAgCkBAIC04MTYsNyArODE2LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAy MDIvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICByZXR1cm4gKG9mZiArIGFsaWdubWVudCAtIDEpICYg fihhbGlnbm1lbnQgLSAxKTsKICB9Ci1AQCAtNzg5NCwxMCArNzg5OCw5IEBAIGFkYV90ZW1wbGF0 ZV90b19maXhlZF9yZWNvcmRfdHlwZV8xIChzdHIKK0BAIC03OTk2LDEwICs4MDAwLDkgQEAgYWRh X3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgogICAgc3RydWN0IHZhbHVlICpt YXJrID0gdmFsdWVfbWFyayAoKTsKICAgIHN0cnVjdCB2YWx1ZSAqZHZhbDsKICAgIHN0cnVjdCB0 eXBlICpydHlwZTsKQEAgLTgyOSw3ICs4MjksNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvYWRhLWxhbmcuYwogICAgaW50IGY7CiAgCiAgICAvKiBDb21wdXRlIHRoZSBudW1iZXIg b2YgZmllbGRzIGluIHRoaXMgcmVjb3JkIHR5cGUgdGhhdCBhcmUgZ29pbmcKLUBAIC03OTc1LDcg Kzc5NzgsNyBAQCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RyCitAQCAt ODA3Nyw3ICs4MDgwLDcgQEAgYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0 cgogIAkgICAgIHRoYXQgZm9sbG93IHRoaXMgb25lLiAgKi8KICAJICBpZiAoYWRhX2lzX2FsaWdu ZXJfdHlwZSAoZmllbGRfdHlwZSkpCiAgCSAgICB7CkBAIC04MzgsNyArODM4LDcgQEAgSW5kZXg6 IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1sYW5nLmMKICAKICAJICAgICAgZmllbGRfdmFs YWRkciA9IGNvbmRfb2Zmc2V0X2hvc3QgKGZpZWxkX3ZhbGFkZHIsIGZpZWxkX29mZnNldCk7CiAg CSAgICAgIGZpZWxkX2FkZHJlc3MgPSBjb25kX29mZnNldF90YXJnZXQgKGZpZWxkX2FkZHJlc3Ms IGZpZWxkX29mZnNldCk7Ci1AQCAtODExMSwxMSArODExNCwxMSBAQCBhZGFfdGVtcGxhdGVfdG9f Zml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RyCitAQCAtODIxMywxMSArODIxNiwxMSBAQCBhZGFfdGVt cGxhdGVfdG9fZml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RyCiAgICBpZiAoVFlQRV9MRU5HVEggKHR5 cGUpIDw9IDApCiAgICAgIHsKICAgICAgICBpZiAoVFlQRV9OQU1FIChydHlwZSkpCkBAIC04NTQs NyArODU0LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1sYW5nLmMKICAg ICAgfQogICAgZWxzZQogICAgICB7Ci1AQCAtODUzOSw3ICs4NTQyLDggQEAgdG9fZml4ZWRfYXJy YXlfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUwLAorQEAgLTg2ODQsNyArODY4Nyw4IEBAIHRvX2Zp eGVkX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlMCwKICAJIHR5cGUgd2FzIGEgcmVndWxh ciAobm9uLXBhY2tlZCkgYXJyYXkgdHlwZS4gIEFzIGEgcmVzdWx0LCB0aGUKICAJIGJpdHNpemUg b2YgdGhlIGFycmF5IGVsZW1lbnRzIG5lZWRzIHRvIGJlIHNldCBhZ2FpbiwgYW5kIHRoZSBhcnJh eQogIAkgbGVuZ3RoIG5lZWRzIHRvIGJlIHJlY29tcHV0ZWQgYmFzZWQgb24gdGhhdCBiaXRzaXpl LiAgKi8KQEAgLTg2NCwxMCArODY0LDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dk Yi9hZGEtbGFuZy5jCiAgICAgICAgaW50IGVsdF9iaXRzaXplID0gVFlQRV9GSUVMRF9CSVRTSVpF ICh0eXBlMCwgMCk7CiAgCiAgICAgICAgVFlQRV9GSUVMRF9CSVRTSVpFIChyZXN1bHQsIDApID0g VFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlMCwgMCk7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvYWRhLWxhbmcuaAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2FkYS1sYW5n LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2FkYS1sYW5n LmgJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIw MTUwMjAyL2dkYi9hZGEtbGFuZy5oCTIwMTUtMDItMTEgMTY6MDE6NTkuNTg2OTY2MjI5ICswMTAw CistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9hZGEtbGFuZy5oCTIwMTUtMDUtMzEg MTc6MDg6NDYuODA5NTA2MTcwICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYWRh LWxhbmcuaAkyMDE1LTA1LTMxIDE3OjA5OjIxLjQyODcyNDY2MyArMDIwMAogQEAgLTE3OSw3ICsx NzksNyBAQCBleHRlcm4gdm9pZCBhZGFfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUKICBleHRlcm4g dm9pZCBhZGFfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBzeW1ib2wg Km5ld19zeW1ib2wsCiAgCQkJICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pOwpAQCAtODk1 LDExICs4OTUsMTEgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1sYW5nLmgK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCB0eXBlICopOwogIAogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqYWRhX2NvZXJjZV90b19zaW1w bGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKik7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvYWRhLXR5cGVwcmludC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYWRh LXR5cGVwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dk Yi9hZGEtdHlwZXByaW50LmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsr KyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hZGEtdHlwZXByaW50LmMJMjAxNS0wMi0xMSAxNjow MTo1OS41ODc5NjYyMzQgKzAxMDAKLUBAIC04ODMsOCArODgzLDggQEAgYWRhX3ByaW50X3R5cGUg KHN0cnVjdCB0eXBlICp0eXBlMCwgY29ucworLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9n ZGIvYWRhLXR5cGVwcmludC5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODA5NTA2MTcwICswMjAwCisr KysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYWRhLXR5cGVwcmludC5jCTIwMTUtMDUtMzEgMTc6 MDk6MjEuNDI5NzI0NjcwICswMjAwCitAQCAtODg2LDggKzg4Niw4IEBAIGFkYV9wcmludF90eXBl IChzdHJ1Y3QgdHlwZSAqdHlwZTAsIGNvbnMKICAJICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBhZGFf dHlwZV9uYW1lICh0eXBlKTsKICAKICAJICAgIGlmICghYWRhX2lzX3JhbmdlX3R5cGVfbmFtZSAo bmFtZSkpCkBAIC05MTAsNyArOTEwLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2Ri L2FkYS10eXBlcHJpbnQuYwogIAkgICAgZWxzZQogIAkgICAgICB7CiAgCQlmcHJpbnRmX2ZpbHRl cmVkIChzdHJlYW0sICJyYW5nZSAiKTsKLUBAIC05MDUsNyArOTA1LDggQEAgYWRhX3ByaW50X3R5 cGUgKHN0cnVjdCB0eXBlICp0eXBlMCwgY29ucworQEAgLTkwOCw3ICs5MDgsOCBAQCBhZGFfcHJp bnRfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUwLCBjb25zCiAgCSAgfQogIAlicmVhazsKICAgICAg ICBjYXNlIFRZUEVfQ09ERV9GTFQ6CkBAIC05MjAsMTAgKzkyMCwxMCBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvYWRhLXR5cGVwcmludC5jCiAgCWJyZWFrOwogICAgICAgIGNhc2Ug VFlQRV9DT0RFX0VOVU06CiAgCWlmIChzaG93IDwgMCkKLUluZGV4OiBnZGItNy44LjkwLjIwMTUw MjAyL2dkYi9hZGEtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2Fk YS12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dk Yi9hZGEtdmFscHJpbnQuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysr IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS12YWxwcmludC5jCTIwMTUtMDItMTEgMTY6MDE6 NTkuNTg3OTY2MjM0ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9hZGEt dmFscHJpbnQuYwkyMDE1LTA1LTMxIDE3OjA4OjQ2LjgxMDUwNjE3NiArMDIwMAorKysrIGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL2FkYS12YWxwcmludC5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDMw NzI0Njc2ICswMjAwCiBAQCAtMzMsMTEgKzMzLDExIEBACiAgI2luY2x1ZGUgIm9iamZpbGVzLmgi CiAgCkBAIC05MzgsMTYgKzkzOCw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9h ZGEtdmFscHJpbnQuYwogIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqKTsK ICAMCiAgCi1AQCAtMTI5LDcgKzEyOSw3IEBAIHZhbF9wcmludF9wYWNrZWRfYXJyYXlfZWxlbWVu dHMgKHN0cnVjdAotICAgdW5zaWduZWQgaW50IHRoaW5nc19wcmludGVkID0gMDsKLSAgIHVuc2ln bmVkIGxlbjsKLSAgIHN0cnVjdCB0eXBlICplbHR0eXBlLCAqaW5kZXhfdHlwZTsKLS0gIHVuc2ln bmVkIGVsdGxlbjsKLSsgIFVMT05HRVNUIGVsdGxlbjsKLSAgIHVuc2lnbmVkIGxvbmcgYml0c2l6 ZSA9IFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgMCk7Ci0gICBzdHJ1Y3QgdmFsdWUgKm1hcmsg PSB2YWx1ZV9tYXJrICgpOwotICAgTE9OR0VTVCBsb3cgPSAwOwotQEAgLTI3OCw3ICsyNzgsNyBA QCBhZGFfZW1pdF9jaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtMjc5LDcgKzI3 OSw3IEBAIGFkYV9lbWl0X2NoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAgICBvZiBh IGNoYXJhY3Rlci4gICovCiAgCiAgc3RhdGljIGludApAQCAtOTU2LDcgKzk0Nyw3IEBAIEluZGV4 OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hZGEtdmFscHJpbnQuYwogIAkgZW51bSBiZmRfZW5k aWFuIGJ5dGVfb3JkZXIpCiAgewogICAgaWYgKHR5cGVfbGVuID09IDEpCi1AQCAtNDQwLDExICs0 NDAsMTEgQEAgYWRhX3ByaW50X3NjYWxhciAoc3RydWN0IHR5cGUgKnR5cGUsIExPTgorQEAgLTQ0 MSwxMSArNDQxLDExIEBAIGFkYV9wcmludF9zY2FsYXIgKHN0cnVjdCB0eXBlICp0eXBlLCBMT04K ICAKICBzdGF0aWMgdm9pZAogIHByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1 Y3QgdHlwZSAqZWx0dHlwZSwgY29uc3QgZ2RiX2J5dGUgKnN0cmluZywKQEAgLTk3MCw3ICs5NjEs NyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLXZhbHByaW50LmMKICAgIHVu c2lnbmVkIGludCB0aGluZ3NfcHJpbnRlZCA9IDA7CiAgICBpbnQgaW5fcXVvdGVzID0gMDsKICAg IGludCBuZWVkX2NvbW1hID0gMDsKLUBAIC00NTksOSArNDU5LDkgQEAgcHJpbnRzdHIgKHN0cnVj dCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdAorQEAgLTQ2MCw5ICs0NjAsOSBAQCBwcmludHN0ciAo c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0CiAgICAgIHsKICAgICAgICAvKiBQb3NpdGlv biBvZiB0aGUgY2hhcmFjdGVyIHdlIGFyZSBleGFtaW5pbmcKICAgICAgICAgICB0byBzZWUgd2hl dGhlciBpdCBpcyByZXBlYXRlZC4gICovCkBAIC05ODIsNyArOTczLDcgQEAgSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS12YWxwcmludC5jCiAgCiAgICAgICAgUVVJVDsKICAKLUBA IC00OTIsNyArNDkyLDggQEAgcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVj dAorQEAgLTQ5Myw3ICs0OTMsOCBAQCBwcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwg c3RydWN0CiAgCSAgYWRhX2VtaXRfY2hhciAoY2hhcl9hdCAoc3RyaW5nLCBpLCB0eXBlX2xlbiwg Ynl0ZV9vcmRlciksCiAgCQkJIGVsdHR5cGUsIHN0cmVhbSwgJ1wnJywgdHlwZV9sZW4pOwogIAkg IGZwdXRzX2ZpbHRlcmVkICgiJyIsIHN0cmVhbSk7CkBAIC05OTIsNyArOTgzLDcgQEAgSW5kZXg6 IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS12YWxwcmludC5jCiAgCSAgaSA9IHJlcDEgLSAx OwogIAkgIHRoaW5nc19wcmludGVkICs9IG9wdGlvbnMtPnJlcGVhdF9jb3VudF90aHJlc2hvbGQ7 CiAgCSAgbmVlZF9jb21tYSA9IDE7Ci1AQCAtNTIwLDcgKzUyMSw3IEBAIHByaW50c3RyIChzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QKK0BAIC01MjEsNyArNTIyLDcgQEAgcHJpbnRzdHIg KHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdAogIAogIHZvaWQKICBhZGFfcHJpbnRzdHIg KHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLApAQCAtMTAwMSw3ICs5 OTIsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLXZhbHByaW50LmMKICAJ ICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJICAgICAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewotQEAgLTUzMCwx MiArNTMxLDEyIEBAIGFkYV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3QKK0BA IC01MzEsMTIgKzUzMiwxMiBAQCBhZGFfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0s IHN0CiAgCiAgc3RhdGljIGludAogIHByaW50X3ZhcmlhbnRfcGFydCAoc3RydWN0IHR5cGUgKnR5 cGUsIGludCBmaWVsZF9udW0sCkBAIC0xMDE2LDcgKzEwMDcsNyBAQCBJbmRleDogZ2RiLTcuOC45 MC4yMDE1MDIwMi9nZGIvYWRhLXZhbHByaW50LmMKICAJCSAgICBjb25zdCBzdHJ1Y3QgbGFuZ3Vh Z2VfZGVmbiAqbGFuZ3VhZ2UpCiAgewogICAgc3RydWN0IHR5cGUgKnZhcl90eXBlID0gVFlQRV9G SUVMRF9UWVBFICh0eXBlLCBmaWVsZF9udW0pOwotQEAgLTU3MSwxMSArNTcyLDExIEBAIHByaW50 X3ZhcmlhbnRfcGFydCAoc3RydWN0IHR5cGUgKnR5cGUsIGkKK0BAIC01NzIsMTEgKzU3MywxMSBA QCBwcmludF92YXJpYW50X3BhcnQgKHN0cnVjdCB0eXBlICp0eXBlLCBpCiAgCiAgc3RhdGljIGlu dAogIHByaW50X2ZpZWxkX3ZhbHVlcyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRl ICp2YWxhZGRyLApAQCAtMTAzMCw3ICsxMDIxLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAy MDIvZ2RiL2FkYS12YWxwcmludC5jCiAgCQkgICAgY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4g Kmxhbmd1YWdlKQogIHsKICAgIGludCBpLCBsZW47Ci1AQCAtNjQyLDcgKzY0Myw3IEBAIHByaW50 X2ZpZWxkX3ZhbHVlcyAoc3RydWN0IHR5cGUgKnR5cGUsIGMKK0BAIC02NDMsNyArNjQ0LDcgQEAg cHJpbnRfZmllbGRfdmFsdWVzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgYwogIAkgICAgfQogIAkgIGVs c2UKICAJICAgIHsKQEAgLTEwMzksNyArMTAzMCw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUw MjAyL2dkYi9hZGEtdmFscHJpbnQuYwogIAkgICAgICBpbnQgYml0X3NpemUgPSBUWVBFX0ZJRUxE X0JJVFNJWkUgKHR5cGUsIGkpOwogIAkgICAgICBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBv cHRzOwogIAotQEAgLTY4OCw4ICs2ODksOCBAQCBhZGFfdmFsX3ByaW50X3N0cmluZyAoc3RydWN0 IHR5cGUgKnR5cGUsCitAQCAtNjg5LDggKzY5MCw4IEBAIGFkYV92YWxfcHJpbnRfc3RyaW5nIChz dHJ1Y3QgdHlwZSAqdHlwZSwKICB7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdk YmFyY2hfYnl0ZV9vcmRlciAoZ2V0X3R5cGVfYXJjaCAodHlwZSkpOwogICAgc3RydWN0IHR5cGUg KmVsdHR5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKQEAgLTEwNTAsNyArMTA0MSw3IEBA IEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hZGEtdmFscHJpbnQuYwogIAogICAgLyog V2Uga25vdyB0aGF0IEVMVFRZUEUgY2Fubm90IHBvc3NpYmx5IGJlIG51bGwsIGJlY2F1c2Ugd2Ug YXNzdW1lCiAgICAgICB0aGF0IHdlJ3JlIGNhbGxlZCBvbmx5IHdoZW4gVFlQRSBpcyBhIHN0cmlu Zy1saWtlIHR5cGUuCi1AQCAtNzA4LDcgKzcwOSw3IEBAIGFkYV92YWxfcHJpbnRfc3RyaW5nIChz dHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC03MDksNyArNzEwLDcgQEAgYWRhX3ZhbF9wcmludF9zdHJp bmcgKHN0cnVjdCB0eXBlICp0eXBlLAogICAgICAgZWxlbWVudHMgdXAgdG8gaXQuICAqLwogICAg aWYgKG9wdGlvbnMtPnN0b3BfcHJpbnRfYXRfbnVsbCkKICAgICAgewpAQCAtMTA1OSw3ICsxMDUw LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS12YWxwcmludC5jCiAgCiAg ICAgICAgLyogTG9vayBmb3IgYSBOVUxMIGNoYXIuICAqLwogICAgICAgIGZvciAodGVtcF9sZW4g PSAwOwotQEAgLTEwNzMsNyArMTA3NCw3IEBAIGFkYV92YWxfcHJpbnRfcmVmIChzdHJ1Y3QgdHlw ZSAqdHlwZSwgY28KK0BAIC0xMDc0LDcgKzEwNzUsNyBAQCBhZGFfdmFsX3ByaW50X3JlZiAoc3Ry dWN0IHR5cGUgKnR5cGUsIGNvCiAgCiAgc3RhdGljIHZvaWQKICBhZGFfdmFsX3ByaW50XzEgKHN0 cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTEwNjgsNyArMTA1 OSw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hZGEtdmFscHJpbnQuYwogIAkJ IHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJIGNvbnN0IHN0cnVjdCB2 YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCiAgCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKm9wdGlvbnMsCi1AQCAtMTE1NCw3ICsxMTU1LDcgQEAgYWRhX3ZhbF9wcmludF8xIChzdHJ1 Y3QgdHlwZSAqdHlwZSwgY29ucworQEAgLTExNTcsNyArMTE1OCw3IEBAIGFkYV92YWxfcHJpbnRf MSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnMKICAKICB2b2lkCiAgYWRhX3ZhbF9wcmludCAoc3Ry dWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMTA3NywxMCArMTA2 OCwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLXZhbHByaW50LmMKICAJ ICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkgICAgICAgY29u c3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRf b3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hbm5vdGF0 ZS5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYW5ub3RhdGUuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvYW5ub3RhdGUuYwkyMDE1LTAyLTEx IDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2Fu bm90YXRlLmMJMjAxNS0wMi0xMSAxNjowMTo1OS41ODg5NjYyMzkgKzAxMDAKKy0tLSBnZGItNy45 LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2Fubm90YXRlLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44MTE1 MDYxODIgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9hbm5vdGF0ZS5jCTIwMTUt MDUtMzEgMTc6MDk6MjEuNDMwNzI0Njc2ICswMjAwCiBAQCAtNTQyLDIxICs1NDIsMjEgQEAgYW5u b3RhdGVfZnJhbWVfZW5kICh2b2lkKQogIH0KICAMCkBAIC0xMTA3LDEwICsxMDk4LDEwIEBAIElu ZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hbm5vdGF0ZS5jCiAgfQogIAogIHZvaWQKLUlu ZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hbm5vdGF0ZS5oCitJbmRleDogZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvYW5ub3RhdGUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAx NTAyMDIub3JpZy9nZGIvYW5ub3RhdGUuaAkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSAr MDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2Fubm90YXRlLmgJMjAxNS0wMi0xMSAx NjowMTo1OS41ODg5NjYyMzkgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2Ri L2Fubm90YXRlLmgJMjAxNS0wNS0zMSAxNzowODo0Ni44MTE1MDYxODIgKzAyMDAKKysrKyBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi9hbm5vdGF0ZS5oCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDMwNzI0 Njc2ICswMjAwCiBAQCAtOTIsOCArOTIsOCBAQCBleHRlcm4gdm9pZCBhbm5vdGF0ZV9mcmFtZV9z b3VyY2VfZW5kICh2CiAgZXh0ZXJuIHZvaWQgYW5ub3RhdGVfZnJhbWVfd2hlcmUgKHZvaWQpOwog IGV4dGVybiB2b2lkIGFubm90YXRlX2ZyYW1lX2VuZCAodm9pZCk7CkBAIC0xMTIyLDExICsxMTEz LDExIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hbm5vdGF0ZS5oCiAgZXh0ZXJu IHZvaWQgYW5ub3RhdGVfZWx0X3JlcF9lbmQgKHZvaWQpOwogIGV4dGVybiB2b2lkIGFubm90YXRl X2VsdCAodm9pZCk7CiAgZXh0ZXJuIHZvaWQgYW5ub3RhdGVfYXJyYXlfc2VjdGlvbl9lbmQgKHZv aWQpOwotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FybS1saW51eC1uYXQuYworSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2FybS1saW51eC1uYXQuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTUtMDIt MTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIv YXJtLWxpbnV4LW5hdC5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNTg4OTY2MjM5ICswMTAwCi1AQCAt MTE4Niw3ICsxMTg2LDcgQEAgYXJtX2xpbnV4X3JlbW92ZV9od19icmVha3BvaW50IChzdHJ1Y3Qg dAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTUt MDUtMzEgMTc6MDg6NDYuODEyNTA2MTg4ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDMxNzI0NjgyICswMjAwCitA QCAtMTE5NCw3ICsxMTk0LDcgQEAgYXJtX2xpbnV4X3JlbW92ZV9od19icmVha3BvaW50IChzdHJ1 Y3QgdAogICAgIEFERFI/ICAqLwogIHN0YXRpYyBpbnQKICBhcm1fbGludXhfcmVnaW9uX29rX2Zv cl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAgLTExMzUsMTAgKzEx MjYsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FybS1saW51eC1uYXQuYwog IHsKICAgIGNvbnN0IHN0cnVjdCBhcm1fbGludXhfaHdicF9jYXAgKmNhcCA9IGFybV9saW51eF9n ZXRfaHdicF9jYXAgKCk7CiAgICBDT1JFX0FERFIgbWF4X3dwX2xlbmd0aCwgYWxpZ25lZF9hZGRy OwotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2F4LWdkYi5jCitJbmRleDogZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvYXgtZ2RiLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIw MTUwMjAyLm9yaWcvZ2RiL2F4LWdkYi5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICsw MTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYXgtZ2RiLmMJMjAxNS0wMi0xMSAxNjow MTo1OS41ODk5NjYyNDQgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2F4 LWdkYi5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODEzNTA2MTk1ICswMjAwCisrKysgZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvYXgtZ2RiLmMJMjAxNS0wNS0zMSAxNzowOToyMS40MzI3MjQ2ODkgKzAy MDAKIEBAIC04MiwxMiArODIsMTIgQEAgc3RhdGljIHZvaWQgZ2VuX3RyYWNlZF9wb3AgKHN0cnVj dCBnZGJhcgogIHN0YXRpYyB2b2lkIGdlbl9zaWduX2V4dGVuZCAoc3RydWN0IGFnZW50X2V4cHIg Kiwgc3RydWN0IHR5cGUgKik7CiAgc3RhdGljIHZvaWQgZ2VuX2V4dGVuZCAoc3RydWN0IGFnZW50 X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7CkBAIC0xMjM4LDEwICsxMjI5LDEwIEBAIEluZGV4OiBn ZGItNy44LjkwLjIwMTUwMjAyL2dkYi9heC1nZGIuYwogIHsKICAgIGludCBpLCByc2x0OwogICAg aW50IG5iYXNlcyA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSk7Ci1JbmRleDogZ2RiLTcuOC45 MC4yMDE1MDIwMi9nZGIvYXgtZ2VuZXJhbC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvYXgtZ2VuZXJhbC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmln L2dkYi9heC1nZW5lcmFsLmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsr KyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9heC1nZW5lcmFsLmMJMjAxNS0wMi0xMSAxNjowMTo1 OS41ODk5NjYyNDQgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2F4LWdl bmVyYWwuYwkyMDE1LTA1LTMxIDE3OjA4OjQ2LjgxNDUwNjIwMSArMDIwMAorKysrIGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL2F4LWdlbmVyYWwuYwkyMDE1LTA1LTMxIDE3OjA5OjIxLjQzMjcyNDY4 OSArMDIwMAogQEAgLTE5Myw3ICsxOTMsNyBAQCBheF96ZXJvX2V4dCAoc3RydWN0IGFnZW50X2V4 cHIgKngsIGludCBuCiAgCiAgLyogQXBwZW5kIGEgdHJhY2VfcXVpY2sgaW5zdHJ1Y3Rpb24gdG8g RVhQUiwgdG8gcmVjb3JkIE4gYnl0ZXMuICAqLwpAQCAtMTI1MSwxMCArMTI0MiwxMCBAQCBJbmRl eDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYXgtZ2VuZXJhbC5jCiAgewogICAgLyogTiBtdXN0 IGZpdCBpbiBhIGJ5dGUuICAqLwogICAgaWYgKG4gPCAwIHx8IG4gPiAyNTUpCi1JbmRleDogZ2Ri LTcuOC45MC4yMDE1MDIwMi9nZGIvYXguaAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L2F4LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2F4LmgJ MjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUw MjAyL2dkYi9heC5oCTIwMTUtMDItMTEgMTY6MDE6NTkuNTkwOTY2MjQ5ICswMTAwCistLS0gZ2Ri LTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9heC5oCTIwMTUtMDUtMzEgMTc6MDg6NDYuODE0NTA2 MjAxICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYXguaAkyMDE1LTA1LTMxIDE3 OjA5OjIxLjQzMjcyNDY4OSArMDIwMAogQEAgLTIwNyw3ICsyMDcsNyBAQCBleHRlcm4gdm9pZCBh eF9leHQgKHN0cnVjdCBhZ2VudF9leHByICpFCiAgZXh0ZXJuIHZvaWQgYXhfemVyb19leHQgKHN0 cnVjdCBhZ2VudF9leHByICpFWFBSLCBpbnQgTik7CiAgCkBAIC0xMjY0LDExICsxMjU1LDExIEBA IEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9heC5oCiAgCiAgLyogQXBwZW5kIGEgZ290 byBvcCB0byBFWFBSLiAgT1AgaXMgdGhlIGFjdHVhbCBvcCAobXVzdCBiZSBhb3BfZ290byBvcgog ICAgIGFvcF9pZl9nb3RvKS4gIFdlIGFzc3VtZSB3ZSBkb24ndCBrbm93IHRoZSB0YXJnZXQgb2Zm c2V0IHlldCwKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9icmVha3BvaW50LmMKK0lu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9icmVha3BvaW50LmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2JyZWFrcG9pbnQuYwkyMDE1LTAyLTExIDE2 OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2JyZWFr cG9pbnQuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjU5Mzk2NjI2NCArMDEwMAotQEAgLTIxOTEsOSAr MjE5MSw5IEBAIHNob3VsZF9iZV9pbnNlcnRlZCAoc3RydWN0IGJwX2xvY2F0aW9uICoKKy0tLSBn ZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2JyZWFrcG9pbnQuYwkyMDE1LTA1LTMxIDE3OjA4 OjQ2LjgxOTUwNjIzMyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2JyZWFrcG9p bnQuYwkyMDE1LTA1LTMxIDE3OjA5OjIxLjQzNjcyNDcxNCArMDIwMAorQEAgLTIyMDEsOSArMjIw MSw5IEBAIHNob3VsZF9iZV9pbnNlcnRlZCAoc3RydWN0IGJwX2xvY2F0aW9uICoKICAJewogIAkg IGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKICAJCQkgICAgICAiaW5mcnVuOiBzdGVw cGluZyBwYXN0IG5vbi1zdGVwcGFibGUgd2F0Y2hwb2ludC4gIgpAQCAtMTI4MCw3ICsxMjcxLDcg QEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2JyZWFrcG9pbnQuYwogIAl9CiAgICAg ICAgcmV0dXJuIDA7CiAgICAgIH0KLUBAIC02OTc2LDcgKzY5NzYsNyBAQCBicmVha3BvaW50X2Fk ZHJlc3NfbWF0Y2ggKHN0cnVjdCBhZGRyZXNzCitAQCAtNzAwMyw3ICs3MDAzLDcgQEAgYnJlYWtw b2ludF9hZGRyZXNzX21hdGNoIChzdHJ1Y3QgYWRkcmVzcwogIAogIHN0YXRpYyBpbnQKICBicmVh a3BvaW50X2FkZHJlc3NfbWF0Y2hfcmFuZ2UgKHN0cnVjdCBhZGRyZXNzX3NwYWNlICphc3BhY2Ux LCBDT1JFX0FERFIgYWRkcjEsCkBAIC0xMjg5LDcgKzEyODAsNyBAQCBJbmRleDogZ2RiLTcuOC45 MC4yMDE1MDIwMi9nZGIvYnJlYWtwb2ludC5jCiAgCQkJCUNPUkVfQUREUiBhZGRyMikKICB7CiAg ICByZXR1cm4gKChnZGJhcmNoX2hhc19nbG9iYWxfYnJlYWtwb2ludHMgKHRhcmdldF9nZGJhcmNo ICgpKQotQEAgLTExNzAwLDcgKzExNzAwLDcgQEAgY2FuX3VzZV9oYXJkd2FyZV93YXRjaHBvaW50 IChzdHJ1Y3QgdmFsdQorQEAgLTExMzI1LDcgKzExMzI1LDcgQEAgY2FuX3VzZV9oYXJkd2FyZV93 YXRjaHBvaW50IChzdHJ1Y3QgdmFsdQogIAkJICAgICAgJiYgVFlQRV9DT0RFICh2dHlwZSkgIT0g VFlQRV9DT0RFX0FSUkFZKSkKICAJCXsKICAJCSAgQ09SRV9BRERSIHZhZGRyID0gdmFsdWVfYWRk cmVzcyAodik7CkBAIC0xMjk4LDEwICsxMjg5LDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUw MjAyL2dkYi9icmVha3BvaW50LmMKICAJCSAgaW50IG51bV9yZWdzOwogIAogIAkJICBsZW4gPSAo dGFyZ2V0X2V4YWN0X3dhdGNocG9pbnRzCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIv YnJlYWtwb2ludC5oCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYnJlYWtwb2ludC5o CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9icmVha3BvaW50 LmgJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIw MTUwMjAyL2dkYi9icmVha3BvaW50LmgJMjAxNS0wMi0xMSAxNjowMTo1OS41OTQ5NjYyNjkgKzAx MDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2JyZWFrcG9pbnQuaAkyMDE1LTA1 LTMxIDE3OjA4OjQ2LjgyMTUwNjI0NSArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L2JyZWFrcG9pbnQuaAkyMDE1LTA1LTMxIDE3OjA5OjIxLjQzNzcyNDcyMCArMDIwMAogQEAgLTIz Niw3ICsyMzYsNyBAQCBzdHJ1Y3QgYnBfdGFyZ2V0X2luZm8KICAKICAgIC8qIElmIHRoaXMgaXMg YSByYW5nZWQgYnJlYWtwb2ludCwgdGhlbiB0aGlzIGZpZWxkIGNvbnRhaW5zIHRoZQpAQCAtMTMy MCwxMCArMTMxMSwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYnJlYWtwb2lu dC5oCiAgCiAgICAvKiBUeXBlIG9mIGhhcmR3YXJlIHdhdGNocG9pbnQuICAqLwogICAgZW51bSB0 YXJnZXRfaHdfYnBfdHlwZSB3YXRjaHBvaW50X3R5cGU7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1 MDIwMi9nZGIvYy1sYW5nLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jLWxhbmcu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvYy1sYW5nLmMJ MjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUw MjAyL2dkYi9jLWxhbmcuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjU5NDk2NjI2OSArMDEwMAorLS0t IGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvYy1sYW5nLmMJMjAxNS0wNS0zMSAxNzowODo0 Ni44MjE1MDYyNDUgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jLWxhbmcuYwky MDE1LTA1LTMxIDE3OjA5OjIxLjQzNzcyNDcyMCArMDIwMAogQEAgLTE4Nyw3ICsxODcsNyBAQCBj X3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLCBzCiAgCiAgdm9pZApAQCAtMTM1 MSwxMCArMTM0MiwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYy1sYW5nLmMK ICAKICAJCWlmIChnZXRfZGlzY3JldGVfYm91bmRzIChUWVBFX0lOREVYX1RZUEUgKGV4cGVjdF90 eXBlKSwKICAJCQkJCSAmbG93X2JvdW5kLCAmaGlnaF9ib3VuZCkgPCAwKQotSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAyMDIvZ2RiL2MtbGFuZy5oCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvYy1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2Ri L2MtbGFuZy5oCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvYy1sYW5nLmgJMjAxNS0wMi0xMSAxNjowMTo1OS41OTU5NjYyNzQg KzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2MtbGFuZy5oCTIwMTUtMDUt MzEgMTc6MDg6NDYuODIxNTA2MjQ1ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv Yy1sYW5nLmgJMjAxNS0wNS0zMSAxNzowOToyMS40Mzg3MjQ3MjYgKzAyMDAKIEBAIC03NCw3ICs3 NCw3IEBAIGV4dGVybiB2b2lkIGNfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5cGUKICAJCQkgICAg IHN0cnVjdCB1aV9maWxlICopOwogIApAQCAtMTM5MCwxMCArMTM4MSwxMCBAQCBJbmRleDogZ2Ri LTcuOC45MC4yMDE1MDIwMi9nZGIvYy1sYW5nLmgKICAJCQkJCXN0cnVjdCB1aV9maWxlICosIGlu dCwKICAJCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJCQkJY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKiwKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9jLXZhbHBy aW50LmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jLXZhbHByaW50LmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2MtdmFscHJpbnQuYwkyMDE1 LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIv Z2RiL2MtdmFscHJpbnQuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjU5NTk2NjI3NCArMDEwMAorLS0t IGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvYy12YWxwcmludC5jCTIwMTUtMDUtMzEgMTc6 MDg6NDYuODIyNTA2MjUyICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYy12YWxw cmludC5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDM4NzI0NzI2ICswMjAwCiBAQCAtMTMyLDcgKzEz Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGUKICAKICB2b2lk CkBAIC0xNDM1LDExICsxNDI2LDExIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9j LXZhbHByaW50LmMKICAgIHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHMgPSAqb3B0aW9u czsKICAKICAgIG9wdHMuZGVyZWZfcmVmID0gMTsKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAy L2dkYi9jcC1hYmkuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NwLWFiaS5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9jcC1hYmkuYwkyMDE1 LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIv Z2RiL2NwLWFiaS5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNTk1OTY2Mjc0ICswMTAwCi1AQCAtNjQs MTMgKzY0LDEzIEBAIGlzX29wZXJhdG9yX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCistLS0gZ2Ri LTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9jcC1hYmkuYwkyMDE1LTA1LTMxIDE3OjA4OjQ2Ljgy MjUwNjI1MiArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NwLWFiaS5jCTIwMTUt MDUtMzEgMTc6MTI6NTMuNzY2MDY0Nzk4ICswMjAwCitAQCAtNjQsMTIgKzY0LDEyIEBAIGlzX29w ZXJhdG9yX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCiAgICByZXR1cm4gKCpjdXJyZW50X2NwX2Fi aS5pc19vcGVyYXRvcl9uYW1lKSAobmFtZSk7CiAgfQogIApAQCAtMTQ1MCwxMyArMTQ0MSwxMiBA QCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvY3AtYWJpLmMKICsJCSAgTE9OR0VTVCBl bWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAogIAkJICBjb25zdCBzdHJ1Y3QgdmFs dWUgKnZhbCkKICB7Ci0gICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBleDsKIC0gIGlu dCByZXMgPSAwOwogKyAgTE9OR0VTVCByZXMgPSAwOwogIAogICAgZ2RiX2Fzc2VydCAoY3VycmVu dF9jcF9hYmkuYmFzZWNsYXNzX29mZnNldCAhPSBOVUxMKTsKICAKLUBAIC05NCw3ICs5NCw3IEBA IGJhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQKK0BAIC05Niw3ICs5Niw3 IEBAIGJhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQKICBzdHJ1Y3QgdmFs dWUgKgogIHZhbHVlX3ZpcnR1YWxfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKmFyZzFwLAogIAkJ CXN0cnVjdCBmbl9maWVsZCAqZiwgaW50IGosCkBAIC0xNDY1LDcgKzE0NTUsNyBAQCBJbmRleDog Z2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvY3AtYWJpLmMKICB7CiAgICBpZiAoKGN1cnJlbnRfY3Bf YWJpLnZpcnR1YWxfZm5fZmllbGQpID09IE5VTEwpCiAgICAgIHJldHVybiBOVUxMOwotQEAgLTEw NCw3ICsxMDQsNyBAQCB2YWx1ZV92aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphCitA QCAtMTA2LDcgKzEwNiw3IEBAIHZhbHVlX3ZpcnR1YWxfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAq KmEKICAKICBzdHJ1Y3QgdHlwZSAqCiAgdmFsdWVfcnR0aV90eXBlIChzdHJ1Y3QgdmFsdWUgKnYs IGludCAqZnVsbCwKQEAgLTE0NzMsMTEgKzE0NjMsMTEgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAx NTAyMDIvZ2RiL2NwLWFiaS5jCiArCQkgTE9OR0VTVCAqdG9wLCBpbnQgKnVzaW5nX2VuYykKICB7 CiAgICBzdHJ1Y3QgdHlwZSAqcmV0ID0gTlVMTDsKLSAgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhj ZXB0aW9uIGU7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvY3AtYWJpLmgKKyAKK0lu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jcC1hYmkuaAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvY3AtYWJpLmgJMjAxNS0wMi0xMSAxNjowMTo1MS4z NjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9jcC1hYmkuaAkyMDE1 LTAyLTExIDE2OjAxOjU5LjU5NTk2NjI3NCArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAu b3JpZy9nZGIvY3AtYWJpLmgJMjAxNS0wNS0zMSAxNzowODo0Ni44MjM1MDYyNTggKzAyMDAKKysr KyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jcC1hYmkuaAkyMDE1LTA1LTMxIDE3OjA5OjIxLjQz OTcyNDczMyArMDIwMAogQEAgLTEwOCw3ICsxMDgsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2 YWx1ZV92aXJ0dWFsX2ZuX2ZpCiAgCQkJCQkgICAgIHN0cnVjdCBmbl9maWVsZCAqZiwKICAJCQkJ CSAgICAgaW50IGosCkBAIC0xNTMyLDEwICsxNTIyLDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIw MTUwMjAyL2dkYi9jcC1hYmkuaAogICAgdm9pZCAoKnByaW50X21ldGhvZF9wdHIpIChjb25zdCBn ZGJfYnl0ZSAqY29udGVudHMsCiAgCQkJICAgIHN0cnVjdCB0eXBlICp0eXBlLAogIAkJCSAgICBz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9j cC12YWxwcmludC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvY3AtdmFscHJpbnQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvY3AtdmFscHJp bnQuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAu MjAxNTAyMDIvZ2RiL2NwLXZhbHByaW50LmMJMjAxNS0wMi0xMSAxNjowMTo1OS41OTY5NjYyNzkg KzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2NwLXZhbHByaW50LmMJMjAx NS0wNS0zMSAxNzowODo0Ni44MjM1MDYyNTggKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi9jcC12YWxwcmludC5jCTIwMTUtMDUtMzEgMTc6MTQ6NDEuNzk2NzQ2NjE3ICswMjAwCiBA QCAtODAsNyArODAsNyBAQCBzdGF0aWMgdm9pZCBjcF9wcmludF9zdGF0aWNfZmllbGQgKHN0cnVj CiAgCQkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwogIApAQCAtMTU1 NCw3ICsxNTQ0LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2NwLXZhbHByaW50 LmMKICAJCSAgICAgICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwK ICAJCSAgICAgICBpbnQgcmVjdXJzZSwgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkgICAg ICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtMzMxLDcg KzMzMSw3IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUKK0BAIC0z MzQsNyArMzM0LDcgQEAgY3BfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZQog IAkJfQogIAkgICAgICBlbHNlIGlmIChpID09IHZwdHJfZmllbGRubyAmJiB0eXBlID09IHZwdHJf YmFzZXR5cGUpCiAgCQl7CkBAIC0xNTYzLDcgKzE1NTMsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4y MDE1MDIwMi9nZGIvY3AtdmFscHJpbnQuYwogIAkJICBzdHJ1Y3QgdHlwZSAqaV90eXBlID0gVFlQ RV9GSUVMRF9UWVBFICh0eXBlLCBpKTsKICAKICAJCSAgaWYgKHZhbHByaW50X2NoZWNrX3ZhbGlk aXR5IChzdHJlYW0sIGlfdHlwZSwgaV9vZmZzZXQsIHZhbCkpCi1AQCAtNDE0LDcgKzQxNCw3IEBA IGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUKK0BAIC00MTcsNyArNDE3 LDcgQEAgY3BfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZQogIAogIHZvaWQK ICBjcF9wcmludF92YWx1ZV9maWVsZHNfcnR0aSAoc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0xNTcy LDcgKzE1NjIsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvY3AtdmFscHJpbnQu YwogIAkJCSAgICBDT1JFX0FERFIgYWRkcmVzcywKICAJCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotQEAg LTQzMSw3ICs0MzEsOCBAQCBjcF9wcmludF92YWx1ZV9maWVsZHNfcnR0aSAoc3RydWN0IHR5cGUK K0BAIC00MzQsNyArNDM0LDggQEAgY3BfcHJpbnRfdmFsdWVfZmllbGRzX3J0dGkgKHN0cnVjdCB0 eXBlCiAgCQkJCSAgICAgVEFSR0VUX0NIQVJfQklUICogVFlQRV9MRU5HVEggKHR5cGUpKSkKICAg ICAgewogICAgICAgIHN0cnVjdCB2YWx1ZSAqdmFsdWU7CkBAIC0xNTgyLDcgKzE1NzIsNyBAQCBJ bmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvY3AtdmFscHJpbnQuYwogIAogICAgICAgIC8q IFVnaCwgd2UgaGF2ZSB0byBjb252ZXJ0IGJhY2sgdG8gYSB2YWx1ZSBoZXJlLiAgKi8KICAgICAg ICB2YWx1ZSA9IHZhbHVlX2Zyb21fY29udGVudHNfYW5kX2FkZHJlc3MgKHR5cGUsIHZhbGFkZHIg KyBvZmZzZXQsCi1AQCAtNDU2LDcgKzQ1Nyw3IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkc19ydHRp IChzdHJ1Y3QgdHlwZQorQEAgLTQ1OSw3ICs0NjAsNyBAQCBjcF9wcmludF92YWx1ZV9maWVsZHNf cnR0aSAoc3RydWN0IHR5cGUKICAKICBzdGF0aWMgdm9pZAogIGNwX3ByaW50X3ZhbHVlIChzdHJ1 Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHR5cGUgKnJlYWxfdHlwZSwKQEAgLTE1OTEsNyArMTU4MSw3 IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9jcC12YWxwcmludC5jCiAgCQlDT1JF X0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJCWludCByZWN1cnNlLCBj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICpvcHRpb25zLAotQEAgLTQ2Niw3ICs0NjcsNyBAQCBjcF9wcmludF92YWx1ZSAoc3RydWN0 IHR5cGUgKnR5cGUsIHN0cnVjCitAQCAtNDY5LDcgKzQ3MCw3IEBAIGNwX3ByaW50X3ZhbHVlIChz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWMKICAgICAgPSAoc3RydWN0IHR5cGUgKiopIG9ic3RhY2tf bmV4dF9mcmVlICgmZG9udF9wcmludF92Yl9vYnN0YWNrKTsKICAgIHN0cnVjdCBvYnN0YWNrIHRt cF9vYnN0YWNrID0gZG9udF9wcmludF92Yl9vYnN0YWNrOwogICAgaW50IGksIG5fYmFzZWNsYXNz ZXMgPSBUWVBFX05fQkFTRUNMQVNTRVMgKHR5cGUpOwpAQCAtMTYwMCwxOSArMTU5MCwxOSBAQCBJ bmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvY3AtdmFscHJpbnQuYwogICAgc3RydWN0IHR5 cGUgKnRoaXN0eXBlOwogIAogICAgaWYgKGRvbnRfcHJpbnRfdmIgPT0gMCkKLUBAIC00ODAsNyAr NDgxLDcgQEAgY3BfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1YworQEAgLTQ4 Myw3ICs0ODQsNyBAQCBjcF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjCiAg CiAgICBmb3IgKGkgPSAwOyBpIDwgbl9iYXNlY2xhc3NlczsgaSsrKQogICAgICB7CiAtICAgICAg aW50IGJvZmZzZXQgPSAwOwogKyAgICAgIExPTkdFU1QgYm9mZnNldCA9IDA7Ci0gICAgICAgaW50 IHNraXA7CisgICAgICAgaW50IHNraXAgPSAwOwogICAgICAgIHN0cnVjdCB0eXBlICpiYXNlY2xh c3MgPSBjaGVja190eXBlZGVmIChUWVBFX0JBU0VDTEFTUyAodHlwZSwgaSkpOwogICAgICAgIGNv bnN0IGNoYXIgKmJhc2VuYW1lID0gVFlQRV9OQU1FIChiYXNlY2xhc3MpOwotSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAyMDIvZ2RiL2QtbGFuZy5oCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvZC1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2Ri L2QtbGFuZy5oCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvZC1sYW5nLmgJMjAxNS0wMi0xMSAxNjowMTo1OS41OTY5NjYyNzkg KzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2QtbGFuZy5oCTIwMTUtMDUt MzEgMTc6MDg6NDYuODI0NTA2MjY0ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv ZC1sYW5nLmgJMjAxNS0wNS0zMSAxNzowOToyMS40Mzk3MjQ3MzMgKzAyMDAKIEBAIC03MSw3ICs3 MSw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9kX3R5cGUgKmJ1aWwKICAvKiBEZWZp bmVkIGluIGQtdmFscHJpbnQuYyAgKi8KICAKQEAgLTE2MjIsMTAgKzE2MTIsMTAgQEAgSW5kZXg6 IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2QtbGFuZy5oCiAgCQkJIHN0cnVjdCB1aV9maWxlICpz dHJlYW0sIGludCByZWN1cnNlLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAyMDIvZ2RiL2QtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL2QtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIu b3JpZy9nZGIvZC12YWxwcmludC5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAw Ci0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZC12YWxwcmludC5jCTIwMTUtMDItMTEgMTY6 MDE6NTkuNTk2OTY2Mjc5ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9k LXZhbHByaW50LmMJMjAxNS0wNS0zMSAxNzowODo0Ni44MjQ1MDYyNjQgKzAyMDAKKysrKyBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi9kLXZhbHByaW50LmMJMjAxNS0wNS0zMSAxNzowOToyMS40NDA3 MjQ3MzkgKzAyMDAKIEBAIC0yOSw3ICsyOSw3IEBACiAgCiAgc3RhdGljIGludApAQCAtMTY0OCwx MCArMTYzOCwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZC12YWxwcmludC5j CiAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25z KQogIHsKICAgIGludCByZXQ7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZG91Ymxl c3QuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2RvdWJsZXN0LmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2RvdWJsZXN0LmMJMjAxNS0wMi0x MSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9k b3VibGVzdC5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNTk3OTY2Mjg0ICswMTAwCistLS0gZ2RiLTcu OS41MC4yMDE1MDUyMC5vcmlnL2dkYi9kb3VibGVzdC5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODI0 NTA2MjY0ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZG91Ymxlc3QuYwkyMDE1 LTA1LTMxIDE3OjA5OjIxLjQ0MDcyNDczOSArMDIwMAogQEAgLTc2NSw3ICs3NjUsNyBAQCBmbG9h dGZvcm1hdF9mcm9tX2RvdWJsZXN0IChjb25zdCBzdHJ1Y3QKICAgICBidXQgbm90IHBhc3NlZCBv biBieSBHREIuICBUaGlzIHNob3VsZCBiZSBmaXhlZC4gICovCiAgCkBAIC0xNjcyLDExICsxNjYy LDExIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9kb3VibGVzdC5jCiAgICByZXR1 cm4gZm9ybWF0OwogIH0KICAKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9kd2FyZjJs b2MuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMmxvYy5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9kd2FyZjJsb2MuYwkyMDE1LTAy LTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2Ri L2R3YXJmMmxvYy5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNTk4OTY2Mjg5ICswMTAwCi1AQCAtMTU1 NywxOSArMTU1NywxOSBAQCBpbnNlcnRfYml0cyAodW5zaWduZWQgaW50IGRhdHVtLAorLS0tIGdk Yi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZHdhcmYybG9jLmMJMjAxNS0wNS0zMSAxNzowODo0 Ni44MjY1MDYyNzcgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kd2FyZjJsb2Mu YwkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ0MTcyNDc0NSArMDIwMAorQEAgLTE1NTgsMTkgKzE1NTgs MTkgQEAgaW5zZXJ0X2JpdHMgKHVuc2lnbmVkIGludCBkYXR1bSwKICAgICBCSVRTX0JJR19FTkRJ QU4gaXMgdGFrZW4gZGlyZWN0bHkgZnJvbSBnZGJhcmNoLiAgKi8KICAKICBzdGF0aWMgdm9pZApA QCAtMTcwMiw3ICsxNjkyLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2R3YXJm MmxvYy5jCiAgCiAgICBkZXN0X2F2YWlsID0gOCAtIGRlc3Rfb2Zmc2V0X2JpdHMgJSA4OwogIAot QEAgLTE2MDcsMTMgKzE2MDcsMTMgQEAgc3RhdGljIHZvaWQKK0BAIC0xNjA4LDEzICsxNjA4LDEz IEBAIHN0YXRpYyB2b2lkCiAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKICB7 CiAgICBpbnQgaTsKQEAgLTE3MTgsNyArMTcwOCw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUw MjAyL2dkYi9kd2FyZjJsb2MuYwogICAgc2l6ZV90IGJ1ZmZlcl9zaXplID0gMDsKICAgIGdkYl9i eXRlICpidWZmZXIgPSBOVUxMOwogICAgc3RydWN0IGNsZWFudXAgKmNsZWFudXA7Ci1AQCAtMTY0 MCw4ICsxNjQwLDggQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKK0BAIC0x NjQxLDggKzE2NDEsOCBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQogICAg Zm9yIChpID0gMDsgaSA8IGMtPm5fcGllY2VzICYmIG9mZnNldCA8IHR5cGVfbGVuOyBpKyspCiAg ICAgIHsKICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07 CkBAIC0xNzI5LDcgKzE3MTksNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZHdh cmYybG9jLmMKICAgICAgICBjb25zdCBnZGJfYnl0ZSAqaW50ZXJtZWRpYXRlX2J1ZmZlcjsKICAK ICAgICAgICAvKiBDb21wdXRlIHNpemUsIHNvdXJjZSwgYW5kIGRlc3RpbmF0aW9uIG9mZnNldHMg Zm9yIGNvcHlpbmcsIGluCi1AQCAtMTc5MCwxMyArMTc5MCwxMyBAQCBzdGF0aWMgdm9pZAorQEAg LTE3OTEsMTMgKzE3OTEsMTMgQEAgc3RhdGljIHZvaWQKICB3cml0ZV9waWVjZWRfdmFsdWUgKHN0 cnVjdCB2YWx1ZSAqdG8sIHN0cnVjdCB2YWx1ZSAqZnJvbSkKICB7CiAgICBpbnQgaTsKQEAgLTE3 NDUsNyArMTczNSw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9kd2FyZjJsb2Mu YwogICAgc2l6ZV90IGJ1ZmZlcl9zaXplID0gMDsKICAgIGdkYl9ieXRlICpidWZmZXIgPSBOVUxM OwogICAgc3RydWN0IGNsZWFudXAgKmNsZWFudXA7Ci1AQCAtMTgyNCw4ICsxODI0LDggQEAgd3Jp dGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdAorQEAgLTE4MjUsOCArMTgyNSw4 IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3QKICAgIGZvciAoaSA9 IDA7IGkgPCBjLT5uX3BpZWNlcyAmJiBvZmZzZXQgPCB0eXBlX2xlbjsgaSsrKQogICAgICB7CiAg ICAgICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOwpAQCAtMTc1 Niw3ICsxNzQ2LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2R3YXJmMmxvYy5j CiAgICAgICAgaW50IG5lZWRfYml0d2lzZTsKICAgICAgICBjb25zdCBnZGJfYnl0ZSAqc291cmNl X2J1ZmZlcjsKICAKLUBAIC0xOTUzLDggKzE5NTMsOCBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0 cnVjdCB2YWx1ZSAqdG8sIHN0CitAQCAtMTk1NCw4ICsxOTU0LDggQEAgd3JpdGVfcGllY2VkX3Zh bHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdAogICAgIGEgc3ludGhldGljIHBvaW50ZXIuICAqLwog IAogIHN0YXRpYyBpbnQKQEAgLTE3NjcsNyArMTc1Nyw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIw MTUwMjAyL2dkYi9kd2FyZjJsb2MuYwogIHsKICAgIHN0cnVjdCBwaWVjZV9jbG9zdXJlICpjCiAg ICAgID0gKHN0cnVjdCBwaWVjZV9jbG9zdXJlICopIHZhbHVlX2NvbXB1dGVkX2Nsb3N1cmUgKHZh bHVlKTsKLUBAIC0xOTY3LDcgKzE5NjcsNyBAQCBjaGVja19waWVjZWRfc3ludGhldGljX3BvaW50 ZXIgKGNvbnN0IHN0CitAQCAtMTk2OCw3ICsxOTY4LDcgQEAgY2hlY2tfcGllY2VkX3N5bnRoZXRp Y19wb2ludGVyIChjb25zdCBzdAogICAgZm9yIChpID0gMDsgaSA8IGMtPm5fcGllY2VzICYmIGJp dF9sZW5ndGggPiAwOyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVj ZSAqcCA9ICZjLT5waWVjZXNbaV07CkBAIC0xNzc2LDcgKzE3NjYsNyBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvZHdhcmYybG9jLmMKICAKICAgICAgICBpZiAoYml0X29mZnNldCA+ IDApCiAgCXsKLUBAIC0yMDA5LDkgKzIwMDksMTAgQEAgaW5kaXJlY3RfcGllY2VkX3ZhbHVlIChz dHJ1Y3QgdmFsdWUgKnZhbAorQEAgLTIwMTAsOSArMjAxMCwxMCBAQCBpbmRpcmVjdF9waWVjZWRf dmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsCiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKICAgIHN0cnVj dCBmcmFtZV9pbmZvICpmcmFtZTsKICAgIHN0cnVjdCBkd2FyZjJfbG9jZXhwcl9iYXRvbiBiYXRv bjsKQEAgLTE3ODksNyArMTc3OSw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9k d2FyZjJsb2MuYwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXI7CiAgCiAgICB0eXBlID0g Y2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAodmFsdWUpKTsKLUBAIC0yMDI2LDcgKzIwMjcsNyBA QCBpbmRpcmVjdF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsCitAQCAtMjAyNyw3ICsy MDI4LDcgQEAgaW5kaXJlY3RfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbAogICAgZm9y IChpID0gMDsgaSA8IGMtPm5fcGllY2VzICYmIGJpdF9sZW5ndGggPiAwOyBpKyspCiAgICAgIHsK ICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBAIC0x Nzk4LDcgKzE3ODgsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZHdhcmYybG9j LmMKICAKICAgICAgICBpZiAoYml0X29mZnNldCA+IDApCiAgCXsKLUBAIC0yMzA5LDcgKzIzMTAs NyBAQCBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2NfZnVsbCAoc3RydWN0IHR5CitAQCAtMjMxMCw3 ICsyMzExLDcgQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eQogIAkg ICAgc3RydWN0IHZhbHVlICp2YWx1ZSA9IGR3YXJmX2V4cHJfZmV0Y2ggKGN0eCwgMCk7CiAgCSAg ICBnZGJfYnl0ZSAqY29udGVudHM7CiAgCSAgICBjb25zdCBnZGJfYnl0ZSAqdmFsX2J5dGVzOwpA QCAtMTgwNywxMSArMTc5NywxMSBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZHdh cmYybG9jLmMKICAKICAJICAgIGlmIChieXRlX29mZnNldCArIFRZUEVfTEVOR1RIICh0eXBlKSA+ IG4pCiAgCSAgICAgIGludmFsaWRfc3ludGhldGljX3BvaW50ZXIgKCk7Ci1JbmRleDogZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvZHdhcmYycmVhZC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvZHdhcmYycmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5v cmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAK LSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0wMi0xMSAxNjow MTo1OS42MDM5NjYzMTUgKzAxMDAKLUBAIC0xODk0LDEyICsxODk0LDEyIEBAIGR3YXJmMl9jb21w bGV4X2xvY2F0aW9uX2V4cHJfY29tcGxhaW50ICgKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9y aWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTA1LTMxIDE3OjA4OjQ2LjgzMjUwNjMxNSArMDIwMAor KysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTA1LTMxIDE3OjA5 OjIxLjQ0NjcyNDc3NyArMDIwMAorQEAgLTE5MDcsMTIgKzE5MDcsMTIgQEAgZHdhcmYyX2NvbXBs ZXhfbG9jYXRpb25fZXhwcl9jb21wbGFpbnQgKAogIH0KICAKICBzdGF0aWMgdm9pZApAQCAtMTgy OCw3ICsxODE4LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2R3YXJmMnJlYWQu YwogIH0KICAKICBzdGF0aWMgdm9pZAotQEAgLTEyNDgzLDggKzEyNDgzLDggQEAgZHdhcmYyX2Fk ZF9maWVsZCAoc3RydWN0IGZpZWxkX2luZm8gKmZpcAorQEAgLTEyNTIxLDggKzEyNTIxLDggQEAg ZHdhcmYyX2FkZF9maWVsZCAoc3RydWN0IGZpZWxkX2luZm8gKmZpcAogIAkgICAgICAgICBvYmpl Y3QsIGFuZCB0aGVuIHN1YnRyYWN0IG9mZiB0aGUgbnVtYmVyIG9mIGJpdHMgb2YKICAJICAgICAg ICAgdGhlIGZpZWxkIGl0c2VsZi4gIFRoZSByZXN1bHQgaXMgdGhlIGJpdCBvZmZzZXQgb2YKICAJ ICAgICAgICAgdGhlIExTQiBvZiB0aGUgZmllbGQuICAqLwpAQCAtMTgzOSwxMSArMTgyOSwxMSBA QCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZHdhcmYycmVhZC5jCiAgCiAgCSAgICAg IGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9ieXRlX3NpemUsIGN1KTsKICAJICAgICAg aWYgKGF0dHIpCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZXZhbC5jCitJbmRleDog Z2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZXZhbC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45 MC4yMDE1MDIwMi5vcmlnL2dkYi9ldmFsLmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUg KzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9ldmFsLmMJMjAxNS0wMi0xMSAxNjow MTo1OS42MDQ5NjYzMjAgKzAxMDAKLUBAIC0zMTQsNyArMzE0LDggQEAgZXZhbHVhdGVfc3RydWN0 X3R1cGxlIChzdHJ1Y3QgdmFsdWUgKnN0cgorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9n ZGIvZXZhbC5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODM0NTA2MzI3ICswMjAwCisrKysgZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvZXZhbC5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDQ3NzI0NzgzICsw MjAwCitAQCAtMzE3LDcgKzMxNyw4IEBAIGV2YWx1YXRlX3N0cnVjdF90dXBsZSAoc3RydWN0IHZh bHVlICpzdHIKICAgIHdoaWxlICgtLW5hcmdzID49IDApCiAgICAgIHsKICAgICAgICBzdHJ1Y3Qg dmFsdWUgKnZhbCA9IE5VTEw7CkBAIC0xODUzLDcgKzE4NDMsNyBAQCBJbmRleDogZ2RiLTcuOC45 MC4yMDE1MDIwMi9nZGIvZXZhbC5jCiAgICAgICAgYmZkX2J5dGUgKmFkZHI7CiAgCiAgICAgICAg ZmllbGRubysrOwotQEAgLTM3NSw3ICszNzYsNyBAQCBpbml0X2FycmF5X2VsZW1lbnQgKHN0cnVj dCB2YWx1ZSAqYXJyYXksCitAQCAtMzc4LDcgKzM3OSw3IEBAIGluaXRfYXJyYXlfZWxlbWVudCAo c3RydWN0IHZhbHVlICphcnJheSwKICAJCSAgICBlbnVtIG5vc2lkZSBub3NpZGUsIExPTkdFU1Qg bG93X2JvdW5kLCBMT05HRVNUIGhpZ2hfYm91bmQpCiAgewogICAgTE9OR0VTVCBpbmRleDsKQEAg LTE4NjIsNyArMTg1Miw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9ldmFsLmMK ICAKICAgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IEJJTk9QX0NPTU1BKQogICAgICB7 Ci1AQCAtNTIyLDExICs1MjMsMTEgQEAgYmlub3BfcHJvbW90ZSAoY29uc3Qgc3RydWN0IGxhbmd1 YWdlX2RlZgorQEAgLTUyNSwxMSArNTI2LDExIEBAIGJpbm9wX3Byb21vdGUgKGNvbnN0IHN0cnVj dCBsYW5ndWFnZV9kZWYKICAgICAgLyogRklYTUU6IEFsc28gbWl4ZWQgaW50ZWdyYWwvYm9vbGVh bnMsIHdpdGggcmVzdWx0IGFuIGludGVnZXIuICAqLwogICAgICB7CiAgICAgICAgY29uc3Qgc3Ry dWN0IGJ1aWx0aW5fdHlwZSAqYnVpbHRpbiA9IGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCk7CkBAIC0x ODc3LDcgKzE4NjcsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZXZhbC5jCiAg ICAgICAgaW50IHVuc2lnbmVkX29wZXJhdGlvbjsKICAKICAgICAgICAvKiBEZXRlcm1pbmUgdHlw ZSBsZW5ndGggYW5kIHNpZ25lZG5lc3MgYWZ0ZXIgcHJvbW90aW9uIGZvcgotQEAgLTcwOSw3ICs3 MTAsNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICplCitAQCAtNzEx LDcgKzcxMiw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmUKICAg IHN0cnVjdCB2YWx1ZSAqKmFyZ3ZlYzsKICAgIGludCBjb2RlOwogICAgaW50IGl4OwpAQCAtMTg4 Niw3ICsxODc2LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2V2YWwuYwogICAg c3RydWN0IHR5cGUgKiphcmdfdHlwZXM7CiAgICBpbnQgc2F2ZV9wb3MxOwogICAgc3RydWN0IHN5 bWJvbCAqZnVuY3Rpb24gPSBOVUxMOwotQEAgLTg4OCw3ICs4ODksNyBAQCBldmFsdWF0ZV9zdWJl eHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICplCitAQCAtODkwLDcgKzg5MSw3IEBAIGV2YWx1YXRl X3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmUKICAJICBzdHJ1Y3QgdHlwZSAqcmFuZ2Vf dHlwZSA9IFRZUEVfSU5ERVhfVFlQRSAodHlwZSk7CiAgCSAgc3RydWN0IHR5cGUgKmVsZW1lbnRf dHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpOwogIAkgIHN0cnVjdCB2YWx1ZSAqYXJyYXkg PSBhbGxvY2F0ZV92YWx1ZSAoZXhwZWN0X3R5cGUpOwpAQCAtMTg5NSw3ICsxODg1LDcgQEAgSW5k ZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2V2YWwuYwogIAkgIExPTkdFU1QgbG93X2JvdW5k LCBoaWdoX2JvdW5kLCBpbmRleDsKICAKICAJICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFu Z2VfdHlwZSwgJmxvd19ib3VuZCwgJmhpZ2hfYm91bmQpIDwgMCkKLUBAIC0xODg3LDcgKzE4ODgs OCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICplCitAQCAtMTkwMCw3 ICsxOTAxLDggQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZQogICAg ICAgIHsKICAgICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnMSk7CiAg ICAgICAgICBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlOwpAQCAtMTkwNSwxMCArMTg5NSwxMCBAQCBJ bmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZXZhbC5jCiAgCXN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zIG9wdHM7CiAgCiAgCWdldF91c2VyX3ByaW50X29wdGlvbnMgKCZvcHRzKTsKLUlu ZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9mLWxhbmcuYworSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL2YtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIw Mi5vcmlnL2dkYi9mLWxhbmcuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAot KysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2YtbGFuZy5jCTIwMTUtMDItMTEgMTY6MDE6NTku NjA0OTY2MzIwICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9mLWxhbmcu YwkyMDE1LTA1LTMxIDE3OjA4OjQ2LjgzNTUwNjMzNCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL2YtbGFuZy5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDQ4NzI0NzkwICswMjAwCiBA QCAtMTAzLDcgKzEwMyw3IEBAIGZfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5cGUs IHMKICAKICBzdGF0aWMgdm9pZApAQCAtMTkxOCwxMCArMTkwOCwxMCBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvZi1sYW5nLmMKICAJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICpvcHRpb25zKQogIHsKICAgIGNvbnN0IGNoYXIgKnR5cGVfZW5jb2RpbmcgPSBm X2dldF9lbmNvZGluZyAodHlwZSk7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZi1s YW5nLmgKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9mLWxhbmcuaAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvZi1sYW5nLmgJMjAxNS0wMi0xMSAx NjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9mLWxh bmcuaAkyMDE1LTAyLTExIDE2OjAxOjU5LjYwNDk2NjMyMCArMDEwMAorLS0tIGdkYi03LjkuNTAu MjAxNTA1MjAub3JpZy9nZGIvZi1sYW5nLmgJMjAxNS0wNS0zMSAxNzowODo0Ni44MzU1MDYzMzQg KzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9mLWxhbmcuaAkyMDE1LTA1LTMxIDE3 OjA5OjIxLjQ0ODcyNDc5MCArMDIwMAogQEAgLTMwLDcgKzMwLDcgQEAgZXh0ZXJuIHZvaWQgZl9l cnJvciAoY2hhciAqKTsJLyogRGVmaW5lZAogIGV4dGVybiB2b2lkIGZfcHJpbnRfdHlwZSAoc3Ry dWN0IHR5cGUgKiwgY29uc3QgY2hhciAqLCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJICBp bnQsIGNvbnN0IHN0cnVjdCB0eXBlX3ByaW50X29wdGlvbnMgKik7CkBAIC0xOTMxLDEwICsxOTIx LDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9mLWxhbmcuaAogIAkJCSBzdHJ1 Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJCSBjb25z dCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKLUluZGV4OiBnZGItNy44LjkwLjIwMTUw MjAyL2dkYi9mLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9mLXZh bHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2Yt dmFscHJpbnQuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03 LjguOTAuMjAxNTAyMDIvZ2RiL2YtdmFscHJpbnQuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjYwNDk2 NjMyMCArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZi12YWxwcmludC5j CTIwMTUtMDUtMzEgMTc6MDg6NDYuODM1NTA2MzM0ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvZi12YWxwcmludC5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDQ4NzI0NzkwICswMjAw CiBAQCAtMzgsNyArMzgsNyBAQCBleHRlcm4gdm9pZCBfaW5pdGlhbGl6ZV9mX3ZhbHByaW50ICh2 b2lkCiAgc3RhdGljIHZvaWQgaW5mb19jb21tb25fY29tbWFuZCAoY2hhciAqLCBpbnQpOwogIHN0 YXRpYyB2b2lkIGY3N19nZXRfZHluYW1pY19sZW5ndGhfb2ZfYWdncmVnYXRlIChzdHJ1Y3QgdHlw ZSAqKTsKQEAgLTE5OTQsMTAgKzE5ODQsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIv Z2RiL2YtdmFscHJpbnQuYwogIAkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFs dWUsCiAgCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAg ewotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2ZpbmR2YXIuYworSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL2ZpbmR2YXIuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAu MjAxNTAyMDIub3JpZy9nZGIvZmluZHZhci5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1 ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZmluZHZhci5jCTIwMTUtMDItMTEg MTY6MDE6NTkuNjA1OTY2MzI1ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dk Yi9maW5kdmFyLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44MzY1MDYzNDAgKzAyMDAKKysrKyBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi9maW5kdmFyLmMJMjAxNS0wNS0zMSAxNzowOToyMS40NDg3MjQ3 OTAgKzAyMDAKIEBAIC02MjYsNyArNjI2LDcgQEAgc3RydWN0IHZhbHVlICoKICBkZWZhdWx0X3Zh bHVlX2Zyb21fcmVnaXN0ZXIgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdHlwZSAq dHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWdudW0sIHN0cnVjdCBm cmFtZV9pZCBmcmFtZV9pZCkKQEAgLTIwMzAsMTEgKzIwMjAsMTEgQEAgSW5kZXg6IGdkYi03Ljgu OTAuMjAxNTAyMDIvZ2RiL2ZpbmR2YXIuYwogIAogICAgICAgIC8qIElmIHRoZSByZWdpc3RlciBs ZW5ndGggaXMgbGFyZ2VyIHRoYW4gdGhlIG51bWJlciBvZiBieXRlcwogICAgICAgICAgIHJlbWFp bmluZyB0byBjb3B5LCB0aGVuIG9ubHkgY29weSB0aGUgYXBwcm9wcmlhdGUgYnl0ZXMuICAqLwot SW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2ZyYW1lLmMKK0luZGV4OiBnZGItNy45LjUw LjIwMTUwNTIwL2dkYi9mcmFtZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIw Mi5vcmlnL2dkYi9mcmFtZS5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0r KysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZnJhbWUuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjYw NTk2NjMyNSArMDEwMAotQEAgLTEyNjksNyArMTI2OSw3IEBAIGRlcHJlY2F0ZWRfZnJhbWVfcmVn aXN0ZXJfcmVhZCAoc3RydWN0IGYKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2Zy YW1lLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44Mzc1MDYzNDYgKzAyMDAKKysrKyBnZGItNy45LjUw LjIwMTUwNTIwL2dkYi9mcmFtZS5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDQ5NzI0Nzk2ICswMjAw CitAQCAtMTI3Miw3ICsxMjcyLDcgQEAgZGVwcmVjYXRlZF9mcmFtZV9yZWdpc3Rlcl9yZWFkIChz dHJ1Y3QgZgogIAogIGludAogIGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoc3RydWN0IGZyYW1l X2luZm8gKmZyYW1lLCBpbnQgcmVnbnVtLApAQCAtMjA0Myw3ICsyMDMzLDcgQEAgSW5kZXg6IGdk Yi03LjguOTAuMjAxNTAyMDIvZ2RiL2ZyYW1lLmMKICAJCQkgIGludCAqb3B0aW1pemVkcCwgaW50 ICp1bmF2YWlsYWJsZXApCiAgewogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfZnJh bWVfYXJjaCAoZnJhbWUpOwotQEAgLTEyOTgsNyArMTI5OCw3IEBAIGdldF9mcmFtZV9yZWdpc3Rl cl9ieXRlcyAoc3RydWN0IGZyYW1lX2kKK0BAIC0xMzAxLDcgKzEzMDEsNyBAQCBnZXRfZnJhbWVf cmVnaXN0ZXJfYnl0ZXMgKHN0cnVjdCBmcmFtZV9pCiAgICAgIH0KICAgIGlmIChsZW4gPiBtYXhz aXplKQogICAgICBlcnJvciAoXygiQmFkIGRlYnVnIGluZm9ybWF0aW9uIGRldGVjdGVkOiAiCkBA IC0yMDUyLDEwICsyMDQyLDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9mcmFt ZS5jCiAgCiAgICAvKiBDb3B5IHRoZSBkYXRhLiAgKi8KICAgIHdoaWxlIChsZW4gPiAwKQotSW5k ZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2ZyYW1lLmgKK0luZGV4OiBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi9mcmFtZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5v cmlnL2dkYi9mcmFtZS5oCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysg Z2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZnJhbWUuaAkyMDE1LTAyLTExIDE2OjAxOjU5LjYwNjk2 NjMzMCArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZnJhbWUuaAkyMDE1 LTA1LTMxIDE3OjA4OjQ2LjgzNzUwNjM0NiArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL2ZyYW1lLmgJMjAxNS0wNS0zMSAxNzowOToyMS40NTA3MjQ4MDIgKzAyMDAKIEBAIC01ODMs NyArNTgzLDcgQEAgZXh0ZXJuIHZvaWQgcHV0X2ZyYW1lX3JlZ2lzdGVyIChzdHJ1Y3QgZgogICAg IGNvbnRlbnRzIGFyZSBvcHRpbWl6ZWQgb3V0IG9yIHVuYXZhaWxhYmxlLCBzZXQgKk9QVElNSVpF RFAsCiAgICAgKlVOQVZBSUxBQkxFUCBhY2NvcmRpbmdseS4gICovCkBAIC0yMDY1LDExICsyMDU1 LDExIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9mcmFtZS5oCiAgCQkJCSAgICAg Z2RiX2J5dGUgKm15YWRkciwKICAJCQkJICAgICBpbnQgKm9wdGltaXplZHAsIGludCAqdW5hdmFp bGFibGVwKTsKICAKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9nZGJ0eXBlcy5jCitJ bmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZ2RidHlwZXMuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvZ2RidHlwZXMuYwkyMDE1LTAyLTExIDE2OjAx OjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2dkYnR5cGVz LmMJMjAxNS0wMi0xMSAxNjowMTo1OS42MDc5NjYzMzUgKzAxMDAKLUBAIC0yNDc4LDcgKzI0Nzgs NyBAQCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwCistLS0gZ2RiLTcu OS41MC4yMDE1MDUyMC5vcmlnL2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODM5 NTA2MzU5ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZ2RidHlwZXMuYwkyMDE1 LTA1LTMxIDE3OjA5OjIxLjQ1MTcyNDgwOSArMDIwMAorQEAgLTI2OTgsNyArMjY5OCw3IEBAIGFs bG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnVjdCB0eXBlICp0eXAKICAgICBsZWFzdCBhcyBsb25n IGFzIE9CSkZJTEUuICAqLwogIAogIHN0cnVjdCB0eXBlICoKQEAgLTIwNzgsNyArMjA2OCw3IEBA IEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9nZGJ0eXBlcy5jCiAgCSAgIGNvbnN0IGNo YXIgKm5hbWUsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogIHsKICAgIHN0cnVjdCB0eXBlICp0 eXBlOwotQEAgLTI3MTgsOCArMjcxOCw4IEBAIGlzX3B1YmxpY19hbmNlc3RvciAoc3RydWN0IHR5 cGUgKmJhc2UsIHMKK0BAIC0yOTM4LDggKzI5MzgsOCBAQCBpc19wdWJsaWNfYW5jZXN0b3IgKHN0 cnVjdCB0eXBlICpiYXNlLCBzCiAgCiAgc3RhdGljIGludAogIGlzX3VuaXF1ZV9hbmNlc3Rvcl93 b3JrZXIgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdHlwZSAqZGNsYXNzLApAQCAtMjA4OSw3 ICsyMDc5LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2dkYnR5cGVzLmMKICAJ CQkgICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHZhbHVlICp2YWwpCiAgewogICAgaW50IGks IGNvdW50ID0gMDsKLUBAIC0yNzMwLDcgKzI3MzAsNyBAQCBpc191bmlxdWVfYW5jZXN0b3Jfd29y a2VyIChzdHJ1Y3QgdHlwZSAqCitAQCAtMjk1MCw3ICsyOTUwLDcgQEAgaXNfdW5pcXVlX2FuY2Vz dG9yX3dvcmtlciAoc3RydWN0IHR5cGUgKgogICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTl9CQVNF Q0xBU1NFUyAoZGNsYXNzKSAmJiBjb3VudCA8IDI7ICsraSkKICAgICAgewogICAgICAgIHN0cnVj dCB0eXBlICppdGVyOwpAQCAtMjA5OCw3ICsyMDg4LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAx NTAyMDIvZ2RiL2dkYnR5cGVzLmMKICAKICAgICAgICBpdGVyID0gY2hlY2tfdHlwZWRlZiAoVFlQ RV9CQVNFQ0xBU1MgKGRjbGFzcywgaSkpOwogIAotQEAgLTI3NzEsNyArMjc3MSw3IEBAIGlzX3Vu aXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICoKK0BAIC0yOTkxLDcgKzI5OTEsNyBA QCBpc191bmlxdWVfYW5jZXN0b3Jfd29ya2VyIChzdHJ1Y3QgdHlwZSAqCiAgaW50CiAgaXNfdW5p cXVlX2FuY2VzdG9yIChzdHJ1Y3QgdHlwZSAqYmFzZSwgc3RydWN0IHZhbHVlICp2YWwpCiAgewpA QCAtMjEwNyw3ICsyMDk3LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2dkYnR5 cGVzLmMKICAKICAgIHJldHVybiBpc191bmlxdWVfYW5jZXN0b3Jfd29ya2VyIChiYXNlLCB2YWx1 ZV90eXBlICh2YWwpLCAmb2Zmc2V0LAogIAkJCQkgICAgdmFsdWVfY29udGVudHNfZm9yX3ByaW50 aW5nICh2YWwpLAotQEAgLTM5MTYsNyArMzkxNiw3IEBAIHJlY3Vyc2l2ZV9kdW1wX3R5cGUgKHN0 cnVjdCB0eXBlICp0eXBlLAorQEAgLTQxNTYsNyArNDE1Niw3IEBAIHJlY3Vyc2l2ZV9kdW1wX3R5 cGUgKHN0cnVjdCB0eXBlICp0eXBlLAogICAgICAgIGJyZWFrOwogICAgICB9CiAgICBwdXRzX2Zp bHRlcmVkICgiXG4iKTsKQEAgLTIxMTYsNyArMjEwNiw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIw MTUwMjAyL2dkYi9nZGJ0eXBlcy5jCiAgICBpZiAoVFlQRV9PQkpGSUxFX09XTkVEICh0eXBlKSkK ICAgICAgewogICAgICAgIHByaW50ZmlfZmlsdGVyZWQgKHNwYWNlcywgIm9iamZpbGUgIik7Ci1A QCAtNDA0MCw4ICs0MDQwLDggQEAgcmVjdXJzaXZlX2R1bXBfdHlwZSAoc3RydWN0IHR5cGUgKnR5 cGUsCitAQCAtNDI4NCw4ICs0Mjg0LDggQEAgcmVjdXJzaXZlX2R1bXBfdHlwZSAoc3RydWN0IHR5 cGUgKnR5cGUsCiAgCQkJICBpZHgsIHBsb25nZXN0IChUWVBFX0ZJRUxEX0VOVU1WQUwgKHR5cGUs IGlkeCkpKTsKICAgICAgICBlbHNlCiAgCXByaW50ZmlfZmlsdGVyZWQgKHNwYWNlcyArIDIsCkBA IC0yMTI3LDcgKzIxMTcsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZ2RidHlw ZXMuYwogIAkJCSAgVFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlLCBpZHgpKTsKICAgICAgICBnZGJf cHJpbnRfaG9zdF9hZGRyZXNzIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGlkeCksIGdkYl9zdGRv dXQpOwogICAgICAgIHByaW50Zl9maWx0ZXJlZCAoIiBuYW1lICclcycgKCIsCi1AQCAtNDM5OCw3 ICs0Mzk4LDcgQEAgY29weV90eXBlIChjb25zdCBzdHJ1Y3QgdHlwZSAqdHlwZSkKK0BAIC00NjY2 LDcgKzQ2NjYsNyBAQCBjb3B5X3R5cGUgKGNvbnN0IHN0cnVjdCB0eXBlICp0eXBlKQogIAogIHN0 cnVjdCB0eXBlICoKICBhcmNoX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLApAQCAtMjEz NiwyMCArMjEyNiwyMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZ2RidHlwZXMu YwogIHsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwogIAotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAy MDIvZ2RiL2dkYnR5cGVzLmgKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9nZGJ0eXBl cy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9nZGJ0eXBl cy5oCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4y MDE1MDIwMi9nZGIvZ2RidHlwZXMuaAkyMDE1LTAyLTExIDE2OjAxOjU5LjYwODk2NjM0MCArMDEw MAotQEAgLTU5OCw3ICs1OTgsNyBAQCBzdHJ1Y3QgbWFpbl90eXBlCi0gCSAgIGdkYmFyY2hfYml0 c19iaWdfZW5kaWFuPTAgdGFyZ2V0cywgaXQgaXMgdGhlIGJpdCBvZmZzZXQgdG8KLSAJICAgdGhl IExTQi4gICovCi0gCi0tCWludCBiaXRwb3M7Ci0rCUxPTkdFU1QgYml0cG9zOwotIAotIAkvKiAq IEVudW0gdmFsdWUuICAqLwotIAlMT05HRVNUIGVudW12YWw7Ci1AQCAtODAxLDcgKzgwMSw3IEBA IHN0cnVjdCB0eXBlCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9nZGJ0eXBlcy5o CTIwMTUtMDUtMzEgMTc6MDg6NDYuODQwNTA2MzY1ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvZ2RidHlwZXMuaAkyMDE1LTA1LTMxIDE3OjEzOjE2LjI5NDIwNjk3NyArMDIwMAor QEAgLTUwNCw3ICs1MDQsNyBAQCB1bmlvbiBmaWVsZF9sb2NhdGlvbgorICAgICAgZ2RiYXJjaF9i aXRzX2JpZ19lbmRpYW49MCB0YXJnZXRzLCBpdCBpcyB0aGUgYml0IG9mZnNldCB0bworICAgICAg dGhlIExTQi4gICovCisgCistICBpbnQgYml0cG9zOworKyAgTE9OR0VTVCBiaXRwb3M7CisgCisg ICAvKiAqIEVudW0gdmFsdWUuICAqLworICAgTE9OR0VTVCBlbnVtdmFsOworQEAgLTgyMiw3ICs4 MjIsNyBAQCBzdHJ1Y3QgdHlwZQogICAgICAgSE9TVF9DSEFSX0JJVC4gIEhvd2V2ZXIsIHRoaXMg d291bGQgc3RpbGwgZmFpbCB0byBhZGRyZXNzCiAgICAgICBtYWNoaW5lcyBiYXNlZCBvbiBhIHRl cm5hcnkgb3IgZGVjaW1hbCByZXByZXNlbnRhdGlvbi4gICovCiAgICAKQEAgLTIxNTgsNyArMjE0 OCw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9nZGJ0eXBlcy5oCiAgCiAgICAv KiAqIENvcmUgdHlwZSwgc2hhcmVkIGJ5IGEgZ3JvdXAgb2YgcXVhbGlmaWVkIHR5cGVzLiAgKi8K ICAKLUBAIC0xNjQxLDExICsxNjQxLDEyIEBAIGV4dGVybiBzdHJ1Y3QgdHlwZSAqZ2V0X3Rhcmdl dF90eXBlIChzdHIKK0BAIC0xNzA4LDExICsxNzA4LDEyIEBAIGV4dGVybiBzdHJ1Y3QgdHlwZSAq Z2V0X3RhcmdldF90eXBlIChzdHIKICAKICAvKiAqIEhlbHBlciBmdW5jdGlvbiB0byBjb25zdHJ1 Y3Qgb2JqZmlsZS1vd25lZCB0eXBlcy4gICovCiAgCkBAIC0yMTczLDEwICsyMTYzLDEwIEBAIElu ZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9nZGJ0eXBlcy5oCiAgZXh0ZXJuIHN0cnVjdCB0 eXBlICphcmNoX2ludGVnZXJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKiwgaW50LCBpbnQsIGNoYXIg Kik7CiAgZXh0ZXJuIHN0cnVjdCB0eXBlICphcmNoX2NoYXJhY3Rlcl90eXBlIChzdHJ1Y3QgZ2Ri YXJjaCAqLCBpbnQsIGludCwgY2hhciAqKTsKICBleHRlcm4gc3RydWN0IHR5cGUgKmFyY2hfYm9v bGVhbl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBpbnQsIGludCwgY2hhciAqKTsKLUluZGV4OiBn ZGItNy44LjkwLjIwMTUwMjAyL2dkYi9nbnUtdjItYWJpLmMKK0luZGV4OiBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi9nbnUtdjItYWJpLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUw MjAyLm9yaWcvZ2RiL2dudS12Mi1hYmkuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSAr MDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2dudS12Mi1hYmkuYwkyMDE1LTAyLTEx IDE2OjAxOjU5LjYwODk2NjM0MCArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9n ZGIvZ251LXYyLWFiaS5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODQwNTA2MzY1ICswMjAwCisrKysg Z2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZ251LXYyLWFiaS5jCTIwMTUtMDUtMzEgMTc6MDk6MjEu NDUyNzI0ODE1ICswMjAwCiBAQCAtODIsNyArODIsNyBAQCBnbnV2Ml9pc19vcGVyYXRvcl9uYW1l IChjb25zdCBjaGFyICpuYW1lCiAgICAgVFlQRSBpcyB0aGUgdHlwZSBpbiB3aGljaCBGIGlzIGxv Y2F0ZWQuICAqLwogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgpAQCAtMjIyOCwxMCArMjIxOCwxMCBA QCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZ251LXYyLWFiaS5jCiAgCSAgICBnbnV2 Ml9iYXNlY2xhc3Nfb2Zmc2V0ICh0eXBlLCBpLCB2YWxhZGRyLAogIAkJCQkgICAgZW1iZWRkZWRf b2Zmc2V0LCBhZGRyZXNzLCB2YWwpOwogIAotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2Ri L2dudS12My1hYmkuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dudS12My1hYmku YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvZ251LXYzLWFi aS5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4y MDE1MDIwMi9nZGIvZ251LXYzLWFiaS5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjA4OTY2MzQwICsw MTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9nbnUtdjMtYWJpLmMJMjAxNS0w NS0zMSAxNzowODo0Ni44NDE1MDYzNzEgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dk Yi9nbnUtdjMtYWJpLmMJMjAxNS0wNS0zMSAxNzowOToyMS40NTM3MjQ4MjEgKzAyMDAKIEBAIC0x MDgsNyArMTA4LDcgQEAgYnVpbGRfZ2RiX3Z0YWJsZV90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqYQog IHsKICAgIHN0cnVjdCB0eXBlICp0OwpAQCAtMjI1MCw3ICsyMjQwLDcgQEAgSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAyMDIvZ2RiL2dudS12My1hYmkuYwogIHZ0YWJsZV9hZGRyZXNzX3BvaW50X29m ZnNldCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCiAgewogICAgc3RydWN0IHR5cGUgKnZ0YWJs ZV90eXBlID0gZ2RiYXJjaF9kYXRhIChnZGJhcmNoLCB2dGFibGVfdHlwZV9nZGJhcmNoX2RhdGEp OwotQEAgLTI3NSw3ICsyNzUsNyBAQCBnbnV2M19nZXRfdnRhYmxlIChzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjCitAQCAtMjg1LDcgKzI4NSw3IEBAIGdudXYzX2dldF92dGFibGUgKHN0cnVjdCBnZGJh cmNoICpnZGJhcmMKICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKgogIGdudXYzX3J0dGlfdHlwZSAo c3RydWN0IHZhbHVlICp2YWx1ZSwKQEAgLTIyNTksNyArMjI0OSw3IEBAIEluZGV4OiBnZGItNy44 LjkwLjIwMTUwMjAyL2dkYi9nbnUtdjMtYWJpLmMKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaDsKICAgIHN0cnVjdCB0eXBlICp2YWx1ZXNfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVl X3R5cGUgKHZhbHVlKSk7Ci1AQCAtNDAwLDcgKzQwMCw3IEBAIGdudXYzX2dldF92aXJ0dWFsX2Zu IChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKK0BAIC00MTAsNyArNDEwLDcgQEAgZ251djNfZ2V0X3ZpcnR1 YWxfZm4gKHN0cnVjdCBnZGJhcmNoICpnZAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgogIGdudXYz X3ZpcnR1YWxfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKnZhbHVlX3AsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGZuX2ZpZWxkICpmLCBpbnQgaiwKQEAgLTIyNjgsNyArMjI1OCw3 IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9nbnUtdjMtYWJpLmMKICB7CiAgICBz dHJ1Y3QgdHlwZSAqdmFsdWVzX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICgqdmFs dWVfcCkpOwogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2g7Ci1AQCAtNDMwLDE2ICs0MzAsMTYg QEAgZ251djNfdmlydHVhbF9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqdgorQEAgLTQ0MCwxNiAr NDQwLDE2IEBAIGdudXYzX3ZpcnR1YWxfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKnYKICAKICAg ICAtMSBpcyByZXR1cm5lZCBvbiBlcnJvci4gICovCiAgCkBAIC0yMjg4LDcgKzIyNzgsNyBAQCBJ bmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZ251LXYzLWFiaS5jCiAgCiAgICAvKiBEZXRl cm1pbmUgYXJjaGl0ZWN0dXJlLiAgKi8KICAgIGdkYmFyY2ggPSBnZXRfdHlwZV9hcmNoICh0eXBl KTsKLUBAIC00NjMsNyArNDYzLDcgQEAgZ251djNfYmFzZWNsYXNzX29mZnNldCAoc3RydWN0IHR5 cGUgKnR5cAorQEAgLTQ3Myw3ICs0NzMsNyBAQCBnbnV2M19iYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1 Y3QgdHlwZSAqdHlwCiAgICBjdXJfYmFzZV9vZmZzZXQgPSBjdXJfYmFzZV9vZmZzZXQgKyB2dGFi bGVfYWRkcmVzc19wb2ludF9vZmZzZXQgKGdkYmFyY2gpOwogICAgaWYgKCgtIGN1cl9iYXNlX29m ZnNldCkgJSBUWVBFX0xFTkdUSCAocHRyX3R5cGUpICE9IDApCiAgICAgIGVycm9yIChfKCJNaXNh bGlnbmVkIHZiYXNlIG9mZnNldC4iKSk7CkBAIC0yMjk3LDcgKzIyODcsNyBAQCBJbmRleDogZ2Ri LTcuOC45MC4yMDE1MDIwMi9nZGIvZ251LXYzLWFiaS5jCiAgCiAgICB2dGFibGUgPSBnbnV2M19n ZXRfdnRhYmxlIChnZGJhcmNoLCB0eXBlLCBhZGRyZXNzICsgZW1iZWRkZWRfb2Zmc2V0KTsKICAg IGdkYl9hc3NlcnQgKHZ0YWJsZSAhPSBOVUxMKTsKLUBAIC01MDcsNyArNTA3LDcgQEAgZ251djNf ZmluZF9tZXRob2RfaW4gKHN0cnVjdCB0eXBlICpkb21haQorQEAgLTUxNyw3ICs1MTcsNyBAQCBn bnV2M19maW5kX21ldGhvZF9pbiAoc3RydWN0IHR5cGUgKmRvbWFpCiAgICAgICB3ZSdyZSBvdXQg b2YgbHVjay4gICovCiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VDTEFTU0VTIChkb21h aW4pOyBpKyspCiAgICAgIHsKQEAgLTIzMDYsMTAgKzIyOTYsMTAgQEAgSW5kZXg6IGdkYi03Ljgu OTAuMjAxNTAyMDIvZ2RiL2dudS12My1hYmkuYwogICAgICAgIHN0cnVjdCB0eXBlICpiYXNldHlw ZTsKICAKICAgICAgICBpZiAoQkFTRVRZUEVfVklBX1ZJUlRVQUwgKGRvbWFpbiwgaSkpCi1JbmRl eDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZ28tbGFuZy5oCitJbmRleDogZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvZ28tbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIw Mi5vcmlnL2dkYi9nby1sYW5nLmgJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAK LSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9nby1sYW5nLmgJMjAxNS0wMi0xMSAxNjowMTo1 OS42MDg5NjYzNDAgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2dvLWxh bmcuaAkyMDE1LTA1LTMxIDE3OjA4OjQ2Ljg0MTUwNjM3MSArMDIwMAorKysrIGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL2dvLWxhbmcuaAkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ1MzcyNDgyMSArMDIw MAogQEAgLTg1LDcgKzg1LDcgQEAgZXh0ZXJuIHZvaWQgZ29fcHJpbnRfdHlwZSAoc3RydWN0IHR5 cGUgKgogIC8qIERlZmluZWQgaW4gZ28tdmFscHJpbnQuYy4gICovCiAgCkBAIC0yMzE5LDEwICsy MzA5LDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9nby1sYW5nLmgKICAJCQkg IHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJCSAgY29uc3Qgc3RydWN0 IHZhbHVlICp2YWwsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0 aW9ucyk7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZ28tdmFscHJpbnQuYworSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dvLXZhbHByaW50LmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2dvLXZhbHByaW50LmMJMjAxNS0wMi0xMSAx NjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9nby12 YWxwcmludC5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjA5OTY2MzQ1ICswMTAwCistLS0gZ2RiLTcu OS41MC4yMDE1MDUyMC5vcmlnL2dkYi9nby12YWxwcmludC5jCTIwMTUtMDUtMzEgMTc6MDg6NDYu ODQyNTA2Mzc4ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZ28tdmFscHJpbnQu YwkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ1MzcyNDgyMSArMDIwMAogQEAgLTM3LDcgKzM3LDcgQEAK ICAKICBzdGF0aWMgdm9pZApAQCAtMjM0NSwyMyArMjMzNSwxMCBAQCBJbmRleDogZ2RiLTcuOC45 MC4yMDE1MDIwMi9nZGIvZ28tdmFscHJpbnQuYwogIAkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7CiAgICBDSEVDS19UWVBFREVGICh0eXBlKTsKLUlu ZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9pbmYtdHRyYWNlLmMKK0luZGV4OiBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi9qdi1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIw MTUwMjAyLm9yaWcvZ2RiL2luZi10dHJhY2UuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYy NSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2luZi10dHJhY2UuYwkyMDE1LTAy LTExIDE2OjAxOjU5LjYwOTk2NjM0NSArMDEwMAotQEAgLTM2Niw3ICszNjYsNyBAQCBpbmZfdHRy YWNlX2Nhbl91c2VfaHdfYnJlYWtwb2ludCAoc3RydWN0Ci0gCi0gc3RhdGljIGludAotIGluZl90 dHJhY2VfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2Vs ZiwKLS0JCQkJCUNPUkVfQUREUiBhZGRyLCBpbnQgbGVuKQotKwkJCQkJQ09SRV9BRERSIGFkZHIs IExPTkdFU1QgbGVuKQotIHsKLSAgIHJldHVybiAxOwotIH0KLUluZGV4OiBnZGItNy44LjkwLjIw MTUwMjAyL2dkYi9qdi1sYW5nLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAy Lm9yaWcvZ2RiL2p2LWxhbmcuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAot KysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2p2LWxhbmcuYwkyMDE1LTAyLTExIDE2OjAxOjU5 LjYwOTk2NjM0NSArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvanYtbGFu Zy5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODQyNTA2Mzc4ICswMjAwCisrKysgZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvanYtbGFuZy5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDU0NzI0ODI4ICswMjAw CiBAQCAtNDM2LDcgKzQzNiw3IEBAIGphdmFfbGlua19jbGFzc190eXBlIChzdHJ1Y3QgZ2RiYXJj aCAqZ2QKICAgIGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSk7IGkgPCBuZmllbGRz OyBpKyspCiAgICAgIHsKQEAgLTIzODAsMTAgKzIzNTcsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAu MjAxNTAyMDIvZ2RiL2p2LWxhbmcuYwogIAkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50 X29wdGlvbnMgKm9wdGlvbnMpCiAgewogICAgY29uc3QgY2hhciAqdHlwZV9lbmNvZGluZyA9IGph dmFfZ2V0X2VuY29kaW5nICh0eXBlKTsKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9q di1sYW5nLmgKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9qdi1sYW5nLmgKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2p2LWxhbmcuaAkyMDE1LTAy LTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2Ri L2p2LWxhbmcuaAkyMDE1LTAyLTExIDE2OjAxOjU5LjYxMDk2NjM1MCArMDEwMAorLS0tIGdkYi03 LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvanYtbGFuZy5oCTIwMTUtMDUtMzEgMTc6MDg6NDYuODQy NTA2Mzc4ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvanYtbGFuZy5oCTIwMTUt MDUtMzEgMTc6MDk6MjEuNDU0NzI0ODI4ICswMjAwCiBAQCAtNDMsOCArNDMsOCBAQCBzdHJ1Y3Qg YnVpbHRpbl9qYXZhX3R5cGUKICAKICBleHRlcm4gY29uc3Qgc3RydWN0IGJ1aWx0aW5famF2YV90 eXBlICpidWlsdGluX2phdmFfdHlwZSAoc3RydWN0IGdkYmFyY2ggKik7CkBAIC0yMzk1LDEwICsy MzcyLDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9qdi1sYW5nLmgKICAJCQkg ICAgY29uc3Qgc3RydWN0IHZhbHVlICosCiAgCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICopOwogIAotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2p2LXZhbHBy aW50LmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9qdi12YWxwcmludC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9qdi12YWxwcmludC5jCTIw MTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvanYtdmFscHJpbnQuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjYxMDk2NjM1MCArMDEwMAor LS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvanYtdmFscHJpbnQuYwkyMDE1LTA1LTMx IDE3OjA4OjQ2Ljg0MzUwNjM4NCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2p2 LXZhbHByaW50LmMJMjAxNS0wNS0zMSAxNzowOToyMS40NTQ3MjQ4MjggKzAyMDAKIEBAIC0yNjUs NyArMjY1LDcgQEAgamF2YV92YWx1ZV9wcmludCAoc3RydWN0IHZhbHVlICp2YWwsIHN0cgogIAog IHN0YXRpYyB2b2lkCkBAIC0yNDE3LDEwICsyMzk0LDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIw MTUwMjAyL2dkYi9qdi12YWxwcmludC5jCiAgCQlzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQg cmVjdXJzZSwKICAJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJY29uc3Qgc3RydWN0IHZh bHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9n ZGIvbGFuZ3VhZ2UuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2xhbmd1YWdlLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2xhbmd1YWdlLmMJ MjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUw MjAyL2dkYi9sYW5ndWFnZS5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjEwOTY2MzUwICswMTAwCist LS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9sYW5ndWFnZS5jCTIwMTUtMDUtMzEgMTc6 MDg6NDYuODQzNTA2Mzg0ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbGFuZ3Vh Z2UuYwkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ1NDcyNDgyOCArMDIwMAogQEAgLTcyMCw3ICs3MjAs NyBAQCB1bmtfbGFuZ19wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqCiAgCiAgc3RhdGlj IHZvaWQKQEAgLTI0MzksMTAgKzI0MTYsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIv Z2RiL2xhbmd1YWdlLmMKICAJCSAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJz ZSwKICAJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCSAgICBjb25zdCBzdHJ1Y3Qg dmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAy L2dkYi9sYW5ndWFnZS5oCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbGFuZ3VhZ2Uu aAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvbGFuZ3VhZ2Uu aAkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAx NTAyMDIvZ2RiL2xhbmd1YWdlLmgJMjAxNS0wMi0xMSAxNjowMTo1OS42MTE5NjYzNTUgKzAxMDAK Ky0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2xhbmd1YWdlLmgJMjAxNS0wNS0zMSAx NzowODo0Ni44NDQ1MDYzOTAgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9sYW5n dWFnZS5oCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDU1NzI0ODM0ICswMjAwCiBAQCAtMTg5LDcgKzE4 OSw3IEBAIHN0cnVjdCBsYW5ndWFnZV9kZWZuCiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqIHN0cmVh bSk7CiAgCkBAIC0yNDYxLDEwICsyNDM4LDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAy L2dkYi9sYW5ndWFnZS5oCiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJz ZSwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSAgY29uc3Qgc3RydWN0IHZh bHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIv Z2RiL20yLWxhbmcuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL20yLWxhbmcuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvbTItbGFuZy5jCTIw MTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvbTItbGFuZy5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjExOTY2MzU1ICswMTAwCistLS0g Z2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9tMi1sYW5nLmMJMjAxNS0wNS0zMSAxNzowODo0 Ni44NDQ1MDYzOTAgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tMi1sYW5nLmMJ MjAxNS0wNS0zMSAxNzowOToyMS40NTU3MjQ4MzQgKzAyMDAKIEBAIC0xMDQsMTAgKzEwNCwxMCBA QCBtMl9wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAKICBzdGF0aWMgdm9p ZApAQCAtMjQ5OSwxMCArMjQ3NiwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIv bTItbGFuZy5jCiAgCSAgaSA9IHJlcDEgLSAxOwogIAkgIHRoaW5nc19wcmludGVkICs9IG9wdGlv bnMtPnJlcGVhdF9jb3VudF90aHJlc2hvbGQ7CiAgCSAgbmVlZF9jb21tYSA9IDE7Ci1JbmRleDog Z2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvbTItbGFuZy5oCitJbmRleDogZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvbTItbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5v cmlnL2dkYi9tMi1sYW5nLmgJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsr KyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9tMi1sYW5nLmgJMjAxNS0wMi0xMSAxNjowMTo1OS42 MTE5NjYzNTUgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL20yLWxhbmcu aAkyMDE1LTA1LTMxIDE3OjA4OjQ2Ljg0NDUwNjM5MCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL20yLWxhbmcuaAkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ1NTcyNDgzNCArMDIwMAog QEAgLTM0LDcgKzM0LDcgQEAgZXh0ZXJuIHZvaWQgbTJfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5 cAogIGV4dGVybiBpbnQgbTJfaXNfbG9uZ19zZXQgKHN0cnVjdCB0eXBlICp0eXBlKTsKICBleHRl cm4gaW50IG0yX2lzX3VuYm91bmRlZF9hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUpOwpAQCAtMjUx MiwxMSArMjQ4OSwxMSBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvbTItbGFuZy5o CiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUg KiwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwotSW5kZXg6IGdk Yi03LjguOTAuMjAxNTAyMDIvZ2RiL20yLXR5cGVwcmludC5jCitJbmRleDogZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvbTItdHlwZXByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIw MTUwMjAyLm9yaWcvZ2RiL20yLXR5cGVwcmludC5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0 NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvbTItdHlwZXByaW50LmMJMjAx NS0wMi0xMSAxNjowMTo1OS42MTE5NjYzNTUgKzAxMDAKLUBAIC0yMzAsOSArMjMwLDEyIEBAIHN0 YXRpYyB2b2lkIG0yX2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwKKy0tLSBnZGItNy45LjUwLjIw MTUwNTIwLm9yaWcvZ2RiL20yLXR5cGVwcmludC5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODQ0NTA2 MzkwICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbTItdHlwZXByaW50LmMJMjAx NS0wNS0zMSAxNzowOToyMS40NTU3MjQ4MzQgKzAyMDAKK0BAIC0yMzQsOSArMjM0LDEyIEBAIHN0 YXRpYyB2b2lkIG0yX2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJICBtMl9wcmludF9ib3Vu ZHMgKFRZUEVfSU5ERVhfVFlQRSAodHlwZSksIHN0cmVhbSwgc2hvdywgLTEsIDEpOwogIAl9CiAg ICAgICAgZWxzZQpAQCAtMjUzMiwxMCArMjUwOSwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1 MDIwMi9nZGIvbTItdHlwZXByaW50LmMKICAgICAgfQogICAgZnByaW50Zl9maWx0ZXJlZCAoc3Ry ZWFtLCAiXSBPRiAiKTsKICAgIG0yX3ByaW50X3R5cGUgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUp LCAiIiwgc3RyZWFtLCBzaG93LCBsZXZlbCwgZmxhZ3MpOwotSW5kZXg6IGdkYi03LjguOTAuMjAx NTAyMDIvZ2RiL20yLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9t Mi12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dk Yi9tMi12YWxwcmludC5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysg Z2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvbTItdmFscHJpbnQuYwkyMDE1LTAyLTExIDE2OjAxOjU5 LjYxMjk2NjM2MCArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvbTItdmFs cHJpbnQuYwkyMDE1LTA1LTMxIDE3OjA4OjQ2Ljg0NTUwNjM5NyArMDIwMAorKysrIGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL20yLXZhbHByaW50LmMJMjAxNS0wNS0zMSAxNzowOToyMS40NTY3MjQ4 NDAgKzAyMDAKIEBAIC0zNSw3ICszNSw3IEBAIHN0YXRpYyBpbnQgcHJpbnRfdW5wYWNrZWRfcG9p bnRlciAoc3RydWMKICAJCQkJICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7CiAgc3RhdGljIHZv aWQKQEAgLTI2MDEsMTAgKzI1NzgsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2Ri L20yLXZhbHByaW50LmMKICAKICAJCSAgLyogTG9vayBmb3IgYSBOVUxMIGNoYXIuICAqLwogIAkJ ICBmb3IgKHRlbXBfbGVuID0gMDsKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9tZW1y YW5nZS5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbWVtcmFuZ2UuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvbWVtcmFuZ2UuYwkyMDE1LTAy LTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2Ri L21lbXJhbmdlLmMJMjAxNS0wMi0xMSAxNjowMTo1OS42MTI5NjYzNjAgKzAxMDAKKy0tLSBnZGIt Ny45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL21lbXJhbmdlLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44 NDU1MDYzOTcgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tZW1yYW5nZS5jCTIw MTUtMDUtMzEgMTc6MDk6MjEuNDU2NzI0ODQwICswMjAwCiBAQCAtMjEsOCArMjEsOCBAQAogICNp bmNsdWRlICJtZW1yYW5nZS5oIgogIApAQCAtMjYxNiwxMCArMjU5MywxMCBAQCBJbmRleDogZ2Ri LTcuOC45MC4yMDE1MDIwMi9nZGIvbWVtcmFuZ2UuYwogIHsKICAgIFVMT05HRVNUIGgsIGw7CiAg Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvbWVtcmFuZ2UuaAorSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL21lbXJhbmdlLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44Ljkw LjIwMTUwMjAyLm9yaWcvZ2RiL21lbXJhbmdlLmgJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2 MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9tZW1yYW5nZS5oCTIwMTUtMDIt MTEgMTY6MDE6NTkuNjEyOTY2MzYwICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmln L2dkYi9tZW1yYW5nZS5oCTIwMTUtMDUtMzEgMTc6MDg6NDYuODQ1NTA2Mzk3ICswMjAwCisrKysg Z2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbWVtcmFuZ2UuaAkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ1 NjcyNDg0MCArMDIwMAogQEAgLTMwLDcgKzMwLDcgQEAgc3RydWN0IG1lbV9yYW5nZQogICAgQ09S RV9BRERSIHN0YXJ0OwogIApAQCAtMjY0MCwxMCArMjYxNywxMCBAQCBJbmRleDogZ2RiLTcuOC45 MC4yMDE1MDIwMi9nZGIvbWVtcmFuZ2UuaAogIAogIC8qIFJldHVybnMgdHJ1ZSBpZiBBRERSIGlz IGluIFJBTkdFLiAgKi8KICAKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9taXBzLWxp bnV4LW5hdC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbWlwcy1saW51eC1uYXQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvbWlwcy1saW51 eC1uYXQuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03Ljgu OTAuMjAxNTAyMDIvZ2RiL21pcHMtbGludXgtbmF0LmMJMjAxNS0wMi0xMSAxNjowMTo1OS42MTI5 NjYzNjAgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL21pcHMtbGludXgt bmF0LmMJMjAxNS0wNS0zMSAxNzowODo0Ni44NDY1MDY0MDMgKzAyMDAKKysrKyBnZGItNy45LjUw LjIwMTUwNTIwL2dkYi9taXBzLWxpbnV4LW5hdC5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDU2NzI0 ODQwICswMjAwCiBAQCAtNTg2LDcgKzU4Niw3IEBAIG1pcHNfbGludXhfc3RvcHBlZF9kYXRhX2Fk ZHJlc3MgKHN0cnVjdAogIAogIHN0YXRpYyBpbnQKQEAgLTI2NTMsMTAgKzI2MzAsMTAgQEAgSW5k ZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL21pcHMtbGludXgtbmF0LmMKICB7CiAgICBzdHJ1 Y3QgcHRfd2F0Y2hfcmVncyBkdW1teV9yZWdzOwogICAgaW50IGk7Ci1JbmRleDogZ2RiLTcuOC45 MC4yMDE1MDIwMi9nZGIvb3BlbmNsLWxhbmcuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL29wZW5jbC1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9y aWcvZ2RiL29wZW5jbC1sYW5nLmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAK LSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9vcGVuY2wtbGFuZy5jCTIwMTUtMDItMTEgMTY6 MDE6NTkuNjEzOTY2MzY1ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9v cGVuY2wtbGFuZy5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODQ2NTA2NDAzICswMjAwCisrKysgZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvb3BlbmNsLWxhbmcuYwkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ1 NzcyNDg0NiArMDIwMAogQEAgLTc4LDExICs3OCwxMSBAQCBidWlsdGluX29wZW5jbF90eXBlIChz dHJ1Y3QgZ2RiYXJjaCAqZ2RiCiAgCiAgc3RhdGljIHN0cnVjdCB0eXBlICoKQEAgLTI3MzMsMTAg KzI3MTAsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL29wZW5jbC1sYW5nLmMK ICAKICAgICAgICBpZiAoIXZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50ZXIgKGMtPnZhbCwKICAJ CQkJCSBjLT5pbmRpY2VzW2ldICogZWxzaXplICsgY29tcF9vZmZzZXQsCi1JbmRleDogZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvcC1sYW5nLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dk Yi9wLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIv cC1sYW5nLmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44 LjkwLjIwMTUwMjAyL2dkYi9wLWxhbmcuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjYxMzk2NjM2NSAr MDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvcC1sYW5nLmMJMjAxNS0wNS0z MSAxNzowODo0Ni44NDc1MDY0MDkgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9w LWxhbmcuYwkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ1NzcyNDg0NiArMDIwMAogQEAgLTk1LDggKzk1 LDggQEAgcGFzY2FsX21haW5fbmFtZSAodm9pZCkKICAgICBhcmUgbm90IG11bHRpcGxlIG9mIFRB UkdFVF9DSEFSX0JJVCB0aGVuIHRoZSByZXN1bHRzIGFyZSB3cm9uZwogICAgIGJ1dCB0aGlzIGRv ZXMgbm90IGhhcHBlbiBmb3IgRnJlZSBQYXNjYWwgbm9yIGZvciBHUEMuICAqLwpAQCAtMjc4NCwx MCArMjc2MSwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvcC1sYW5nLmMKICAJ ICBpID0gcmVwMSAtIDE7CiAgCSAgdGhpbmdzX3ByaW50ZWQgKz0gb3B0aW9ucy0+cmVwZWF0X2Nv dW50X3RocmVzaG9sZDsKICAJICBuZWVkX2NvbW1hID0gMTsKLUluZGV4OiBnZGItNy44LjkwLjIw MTUwMjAyL2dkYi9wLWxhbmcuaAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3AtbGFu Zy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9wLWxhbmcu aAkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAx NTAyMDIvZ2RiL3AtbGFuZy5oCTIwMTUtMDItMTEgMTY6MDE6NTkuNjEzOTY2MzY1ICswMTAwCist LS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9wLWxhbmcuaAkyMDE1LTA1LTMxIDE3OjA4 OjQ2Ljg0NzUwNjQwOSArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3AtbGFuZy5o CTIwMTUtMDUtMzEgMTc6MDk6MjEuNDU3NzI0ODQ2ICswMjAwCiBAQCAtMzYsNyArMzYsNyBAQCBl eHRlcm4gdm9pZCBwYXNjYWxfcHJpbnRfdHlwZSAoc3RydWN0IHR5CiAgZXh0ZXJuIHZvaWQgcGFz Y2FsX3ByaW50X3R5cGVkZWYgKHN0cnVjdCB0eXBlICosIHN0cnVjdCBzeW1ib2wgKiwKICAJCQkJ ICBzdHJ1Y3QgdWlfZmlsZSAqKTsKQEAgLTI4MjIsMTAgKzI3OTksMTAgQEAgSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAyMDIvZ2RiL3AtbGFuZy5oCiAgCQkJCQkgICAgICBDT1JFX0FERFIsIHN0cnVj dCB1aV9maWxlICosCiAgCQkJCQkgICAgICBpbnQsCiAgCQkJCQkgICAgICBjb25zdCBzdHJ1Y3Qg dmFsdWUgKiwKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9wLXZhbHByaW50LmMKK0lu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9wLXZhbHByaW50LmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL3AtdmFscHJpbnQuYwkyMDE1LTAyLTExIDE2 OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3AtdmFs cHJpbnQuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjYxMzk2NjM2NSArMDEwMAorLS0tIGdkYi03Ljku NTAuMjAxNTA1MjAub3JpZy9nZGIvcC12YWxwcmludC5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODQ3 NTA2NDA5ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcC12YWxwcmludC5jCTIw MTUtMDUtMzEgMTc6MTA6NTcuNTUwMzMxMzIwICswMjAwCiBAQCAtNTcsNyArNTcsNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGdlbmVyaWNfdmFsX3ByaW50X2RlCiAgCiAgdm9pZApAQCAtMjg4NCwx NCArMjg2MSwxNCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvcC12YWxwcmludC5j CiAgICAgICAgY29uc3QgZ2RiX2J5dGUgKmJhc2VfdmFsYWRkciA9IE5VTEw7CiAtICAgICAgaW50 IHRoaXNvZmZzZXQ7CiArICAgICAgTE9OR0VTVCB0aGlzb2Zmc2V0OwotICAgICAgIHZvbGF0aWxl IHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4OwogICAgICAgIGludCBza2lwID0gMDsKICAKLUluZGV4 OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9wcGMtbGludXgtbmF0LmMKKyAgICAgICBpZiAoQkFT RVRZUEVfVklBX1ZJUlRVQUwgKHR5cGUsIGkpKQorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL3BwYy1saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIu b3JpZy9nZGIvcHBjLWxpbnV4LW5hdC5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICsw MTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvcHBjLWxpbnV4LW5hdC5jCTIwMTUtMDIt MTEgMTY6MDE6NTkuNjE0OTY2MzcxICswMTAwCi1AQCAtMTUwMSw3ICsxNTAxLDcgQEAgcHBjX2xp bnV4X2Nhbl91c2VfaHdfYnJlYWtwb2ludCAoc3RydWN0CistLS0gZ2RiLTcuOS41MC4yMDE1MDUy MC5vcmlnL2dkYi9wcGMtbGludXgtbmF0LmMJMjAxNS0wNS0zMSAxNzowODo0Ni44NDg1MDY0MTYg KzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9wcGMtbGludXgtbmF0LmMJMjAxNS0w NS0zMSAxNzowOToyMS40NTg3MjQ4NTMgKzAyMDAKK0BAIC0xNDUxLDcgKzE0NTEsNyBAQCBwcGNf bGludXhfY2FuX3VzZV9od19icmVha3BvaW50IChzdHJ1Y3QKICAKICBzdGF0aWMgaW50CiAgcHBj X2xpbnV4X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNl bGYsCkBAIC0yOTAwLDExICsyODc3LDExIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dk Yi9wcGMtbGludXgtbmF0LmMKICB7CiAgICAvKiBIYW5kbGUgc3ViLTgtYnl0ZSBxdWFudGl0aWVz LiAgKi8KICAgIGlmIChsZW4gPD0gMCkKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9w cmludGNtZC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHJpbnRjbWQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvcHJpbnRjbWQuYwkyMDE1 LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIv Z2RiL3ByaW50Y21kLmMJMjAxNS0wMi0xMSAxNjowMTo1OS42MTU5NjYzNzUgKzAxMDAKLUBAIC0y ODUsNyArMjg1LDcgQEAgcHJpbnRfZm9ybWF0dGVkIChzdHJ1Y3QgdmFsdWUgKnZhbCwgaW50Cist LS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9wcmludGNtZC5jCTIwMTUtMDUtMzEgMTc6 MDg6NDYuODQ5NTA2NDIyICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHJpbnRj bWQuYwkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ1OTcyNDg1OSArMDIwMAorQEAgLTI3NCw3ICsyNzQs NyBAQCBwcmludF9mb3JtYXR0ZWQgKHN0cnVjdCB2YWx1ZSAqdmFsLCBpbnQKICAJCSBzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtKQogIHsKICAgIHN0cnVjdCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRl ZiAodmFsdWVfdHlwZSAodmFsKSk7CkBAIC0yOTEzLDcgKzI4OTAsNyBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvcHJpbnRjbWQuYwogIAogICAgaWYgKFZBTFVFX0xWQUwgKHZhbCkg PT0gbHZhbF9tZW1vcnkpCiAgICAgIG5leHRfYWRkcmVzcyA9IHZhbHVlX2FkZHJlc3MgKHZhbCkg KyBsZW47Ci1AQCAtMzYzLDcgKzM2Myw3IEBAIHByaW50X3NjYWxhcl9mb3JtYXR0ZWQgKGNvbnN0 IHZvaWQgKnZhbGEKK0BAIC0zNTIsNyArMzUyLDcgQEAgcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZCAo Y29uc3Qgdm9pZCAqdmFsYQogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3R5 cGVfYXJjaCAodHlwZSk7CiAgICBMT05HRVNUIHZhbF9sb25nID0gMDsKQEAgLTI5MjIsMTAgKzI4 OTksMTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3ByaW50Y21kLmMKICAgIGVu dW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsK ICAKICAgIC8qIFN0cmluZyBwcmludGluZyBzaG91bGQgZ28gdGhyb3VnaCB2YWxfcHJpbnRfc2Nh bGFyX2Zvcm1hdHRlZC4gICovCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvcHJvY2Zz LmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9wcm9jZnMuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvcHJvY2ZzLmMJMjAxNS0wMi0xMSAxNjow MTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9wcm9jZnMu YwkyMDE1LTAyLTExIDE2OjAxOjU5LjYxNjk2NjM4MSArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAx NTA1MjAub3JpZy9nZGIvcHJvY2ZzLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44NTA1MDY0MjggKzAy MDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9wcm9jZnMuYwkyMDE1LTA1LTMxIDE3OjA5 OjIxLjQ2MDcyNDg2NSArMDIwMAogQEAgLTQ4NTksNyArNDg1OSw3IEBAIHByb2Nmc19yZW1vdmVf d2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF8KICAKICBzdGF0aWMgaW50CkBAIC0yOTM1LDExICsy OTEyLDExIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9wcm9jZnMuYwogIHsKICAg IC8qIFRoZSBtYW4gcGFnZSBmb3IgcHJvYyg0KSBvbiBTb2xhcmlzIDIuNiBhbmQgdXAgc2F5cyB0 aGF0IHRoZQogICAgICAgc3lzdGVtIGNhbiBzdXBwb3J0ICJ0aG91c2FuZHMiIG9mIGhhcmR3YXJl IHdhdGNocG9pbnRzLCBidXQgZ2l2ZXMKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9w eXRob24vcHktcHJldHR5cHJpbnQuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5 dGhvbi9weS1wcmV0dHlwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIw Mi5vcmlnL2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2 NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3B5dGhvbi9weS1wcmV0 dHlwcmludC5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjE2OTY2MzgxICswMTAwCi1AQCAtNjg2LDcg KzY4Niw3IEBAIHByaW50X2NoaWxkcmVuIChQeU9iamVjdCAqcHJpbnRlciwgY29uc3QKKy0tLSBn ZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCTIwMTUt MDUtMzEgMTc6MDg6NDYuODUxNTA2NDM1ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMJMjAxNS0wNS0zMSAxNzowOToyMS40NjA3MjQ4NjUg KzAyMDAKK0BAIC03MDMsNyArNzAzLDcgQEAgcHJpbnRfY2hpbGRyZW4gKFB5T2JqZWN0ICpwcmlu dGVyLCBjb25zdAogIGVudW0gZXh0X2xhbmdfcmMKICBnZGJweV9hcHBseV92YWxfcHJldHR5X3By aW50ZXIgKGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiAqZXh0bGFuZywKICAJ CQkJc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMjk0OCwx MSArMjkyNSwxMSBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvcHl0aG9uL3B5LXBy ZXR0eXByaW50LmMKICAJCQkJc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAg CQkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJp bnRfb3B0aW9ucyAqb3B0aW9ucywKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9yZWdj YWNoZS5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcmVnY2FjaGUuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvcmVnY2FjaGUuYwkyMDE1LTAy LTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2Ri L3JlZ2NhY2hlLmMJMjAxNS0wMi0xMSAxNjowMTo1OS42MTY5NjYzODEgKzAxMDAKLUBAIC05NDEs NyArOTQxLDcgQEAgdHlwZWRlZiB2b2lkIChyZWdjYWNoZV93cml0ZV9mdHlwZSkgKHN0cgorLS0t IGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvcmVnY2FjaGUuYwkyMDE1LTA1LTMxIDE3OjA4 OjQ2Ljg1MTUwNjQzNSArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3JlZ2NhY2hl LmMJMjAxNS0wNS0zMSAxNzowOToyMS40NjE3MjQ4NzIgKzAyMDAKK0BAIC05NDksNyArOTQ5LDcg QEAgdHlwZWRlZiB2b2lkIChyZWdjYWNoZV93cml0ZV9mdHlwZSkgKHN0cgogIAogIHN0YXRpYyBl bnVtIHJlZ2lzdGVyX3N0YXR1cwogIHJlZ2NhY2hlX3hmZXJfcGFydCAoc3RydWN0IHJlZ2NhY2hl ICpyZWdjYWNoZSwgaW50IHJlZ251bSwKQEAgLTI5NjEsNyArMjkzOCw3IEBAIEluZGV4OiBnZGIt Ny44LjkwLjIwMTUwMjAyL2dkYi9yZWdjYWNoZS5jCiAgCQkgICAgZW51bSByZWdpc3Rlcl9zdGF0 dXMgKCpyZWFkKSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKICAJCQkJCQkgIGludCByZWdu dW0sCiAgCQkJCQkJICBnZGJfYnl0ZSAqYnVmKSwKLUBAIC05ODUsNyArOTg1LDcgQEAgcmVnY2Fj aGVfeGZlcl9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZworQEAgLTk5Myw3ICs5OTMsNyBAQCBy ZWdjYWNoZV94ZmVyX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnCiAgCiAgZW51bSByZWdpc3Rl cl9zdGF0dXMKICByZWdjYWNoZV9yYXdfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2Nh Y2hlLCBpbnQgcmVnbnVtLApAQCAtMjk3MCw3ICsyOTQ3LDcgQEAgSW5kZXg6IGdkYi03LjguOTAu MjAxNTAyMDIvZ2RiL3JlZ2NhY2hlLmMKICB7CiAgICBzdHJ1Y3QgcmVnY2FjaGVfZGVzY3IgKmRl c2NyID0gcmVnY2FjaGUtPmRlc2NyOwogIAotQEAgLTk5Niw3ICs5OTYsNyBAQCByZWdjYWNoZV9y YXdfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUKK0BAIC0xMDA0LDcgKzEwMDQsNyBAQCByZWdj YWNoZV9yYXdfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUKICAKICB2b2lkCiAgcmVnY2FjaGVf cmF3X3dyaXRlX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCkBA IC0yOTc5LDcgKzI5NTYsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvcmVnY2Fj aGUuYwogIHsKICAgIHN0cnVjdCByZWdjYWNoZV9kZXNjciAqZGVzY3IgPSByZWdjYWNoZS0+ZGVz Y3I7CiAgCi1AQCAtMTAwNyw3ICsxMDA3LDcgQEAgcmVnY2FjaGVfcmF3X3dyaXRlX3BhcnQgKHN0 cnVjdCByZWdjYWNoZQorQEAgLTEwMTUsNyArMTAxNSw3IEBAIHJlZ2NhY2hlX3Jhd193cml0ZV9w YXJ0IChzdHJ1Y3QgcmVnY2FjaGUKICAKICBlbnVtIHJlZ2lzdGVyX3N0YXR1cwogIHJlZ2NhY2hl X2Nvb2tlZF9yZWFkX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0s CkBAIC0yOTg4LDcgKzI5NjUsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvcmVn Y2FjaGUuYwogIHsKICAgIHN0cnVjdCByZWdjYWNoZV9kZXNjciAqZGVzY3IgPSByZWdjYWNoZS0+ ZGVzY3I7CiAgCi1AQCAtMTAxOCw3ICsxMDE4LDcgQEAgcmVnY2FjaGVfY29va2VkX3JlYWRfcGFy dCAoc3RydWN0IHJlZ2NhYworQEAgLTEwMjYsNyArMTAyNiw3IEBAIHJlZ2NhY2hlX2Nvb2tlZF9y ZWFkX3BhcnQgKHN0cnVjdCByZWdjYWMKICAKICB2b2lkCiAgcmVnY2FjaGVfY29va2VkX3dyaXRl X3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCkBAIC0yOTk3LDEw ICsyOTc0LDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9yZWdjYWNoZS5jCiAg ewogICAgc3RydWN0IHJlZ2NhY2hlX2Rlc2NyICpkZXNjciA9IHJlZ2NhY2hlLT5kZXNjcjsKICAK LUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9yZWdjYWNoZS5oCitJbmRleDogZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvcmVnY2FjaGUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAu MjAxNTAyMDIub3JpZy9nZGIvcmVnY2FjaGUuaAkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYy NSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3JlZ2NhY2hlLmgJMjAxNS0wMi0x MSAxNjowMTo1OS42MTc5NjYzODYgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcv Z2RiL3JlZ2NhY2hlLmgJMjAxNS0wNS0zMSAxNzowODo0Ni44NTI1MDY0NDEgKzAyMDAKKysrKyBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9yZWdjYWNoZS5oCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDYx NzI0ODcyICswMjAwCiBAQCAtOTIsOSArOTIsOSBAQCBleHRlcm4gdm9pZCByZWdjYWNoZV9yYXdf d3JpdGVfdW5zaWduZWQKICAKICBleHRlcm4gZW51bSByZWdpc3Rlcl9zdGF0dXMKQEAgLTMwMjgs MTEgKzMwMDUsMTEgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3JlZ2NhY2hlLmgK ICAKICAvKiBTcGVjaWFsIHJvdXRpbmVzIHRvIHJlYWQvd3JpdGUgdGhlIFBDLiAgKi8KICAKLUlu ZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9yZW1vdGUuYworSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL3JlbW90ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIw Mi5vcmlnL2dkYi9yZW1vdGUuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAot KysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3JlbW90ZS5jCTIwMTUtMDItMTEgMTY6MDE6NTku NjE5OTY2Mzk2ICswMTAwCi1AQCAtODM3MSw3ICs4MzcxLDcgQEAgaW50IHJlbW90ZV9od19icmVh a3BvaW50X2xpbWl0ID0gLTE7CistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9yZW1v dGUuYwkyMDE1LTA1LTMxIDE3OjA4OjQ2Ljg1NDUwNjQ1NCArMDIwMAorKysrIGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL3JlbW90ZS5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDY0NzI0ODkxICswMjAw CitAQCAtODc1MSw3ICs4NzUxLDcgQEAgaW50IHJlbW90ZV9od19icmVha3BvaW50X2xpbWl0ID0g LTE7CiAgCiAgc3RhdGljIGludAogIHJlbW90ZV9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQg KHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMzA0MSwxMCArMzAxOCwxMCBAQCBJbmRleDog Z2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvcmVtb3RlLmMKICB7CiAgICBpZiAocmVtb3RlX2h3X3dh dGNocG9pbnRfbGVuZ3RoX2xpbWl0ID09IDApCiAgICAgIHJldHVybiAwOwotSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAyMDIvZ2RiL3NwdS1tdWx0aWFyY2guYworSW5kZXg6IGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL3NwdS1tdWx0aWFyY2guYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAx NTAyMDIub3JpZy9nZGIvc3B1LW11bHRpYXJjaC5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0 NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvc3B1LW11bHRpYXJjaC5jCTIw MTUtMDItMTEgMTY6MDE6NTkuNjE5OTY2Mzk2ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUy MC5vcmlnL2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44NTU1MDY0NjAg KzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNS0w NS0zMSAxNzowOToyMS40NjQ3MjQ4OTEgKzAyMDAKIEBAIC0xMTcsNyArMTE3LDcgQEAgc3B1X3Ro cmVhZF9hcmNoaXRlY3R1cmUgKHN0cnVjdCB0YXJnZXRfbwogIC8qIE92ZXJyaWRlIHRoZSB0b19y ZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgcm91dGluZS4gICovCiAgc3RhdGljIGludApAQCAt MzA1NCwxMSArMzAzMSwxMSBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvc3B1LW11 bHRpYXJjaC5jCiAgewogICAgc3RydWN0IHRhcmdldF9vcHMgKm9wc19iZW5lYXRoID0gZmluZF90 YXJnZXRfYmVuZWF0aCAoc2VsZik7CiAgCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIv c3RhY2suYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3N0YWNrLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL3N0YWNrLmMJMjAxNS0wMi0xMSAx NjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9zdGFj ay5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjIwOTY2NDAxICswMTAwCi1AQCAtMTc1LDcgKzE3NSw3 IEBAIHByaW50X3N0YWNrX2ZyYW1lIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnIKKy0tLSBnZGItNy45 LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3N0YWNrLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44NTY1MDY0 NjYgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zdGFjay5jCTIwMTUtMDUtMzEg MTc6MDk6MjEuNDY1NzI0ODk3ICswMjAwCitAQCAtMTc4LDcgKzE3OCw3IEBAIHByaW50X3N0YWNr X2ZyYW1lIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnIKICAgICBhcmd1bWVudCAobm90IGp1c3QgdGhl IGZpcnN0IG5hbWVsZXNzIGFyZ3VtZW50KS4gICovCiAgCiAgc3RhdGljIHZvaWQKQEAgLTMwNjcs NyArMzA0NCw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9zdGFjay5jCiAgCQkJ ICAgaW50IGZpcnN0LCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQogIHsKICAgIHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKLUBAIC01MjQsNyArNTI0LDcg QEAgcHJpbnRfZnJhbWVfYXJncyAoc3RydWN0IHN5bWJvbCAqZnVuYywgcworQEAgLTU0MSw3ICs1 NDEsNyBAQCBwcmludF9mcmFtZV9hcmdzIChzdHJ1Y3Qgc3ltYm9sICpmdW5jLCBzCiAgICAvKiBP ZmZzZXQgb2YgbmV4dCBzdGFjayBhcmd1bWVudCBiZXlvbmQgdGhlIG9uZSB3ZSBoYXZlIHNlZW4g dGhhdCBpcwogICAgICAgYXQgdGhlIGhpZ2hlc3Qgb2Zmc2V0LCBvciAtMSBpZiB3ZSBoYXZlbid0 IGNvbWUgdG8gYSBzdGFjawogICAgICAgYXJndW1lbnQgeWV0LiAgKi8KQEAgLTMwNzYsNyArMzA1 Myw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9zdGFjay5jCiAgICAvKiBOdW1i ZXIgb2YgaW50cyBvZiBhcmd1bWVudHMgdGhhdCB3ZSBoYXZlIHByaW50ZWQgc28gZmFyLiAgKi8K ICAgIGludCBhcmdzX3ByaW50ZWQgPSAwOwogICAgc3RydWN0IGNsZWFudXAgKm9sZF9jaGFpbjsK LUBAIC01NTgsOCArNTU4LDggQEAgcHJpbnRfZnJhbWVfYXJncyAoc3RydWN0IHN5bWJvbCAqZnVu YywgcworQEAgLTU3NSw4ICs1NzUsOCBAQCBwcmludF9mcmFtZV9hcmdzIChzdHJ1Y3Qgc3ltYm9s ICpmdW5jLCBzCiAgCSAgICBjYXNlIExPQ19BUkc6CiAgCSAgICBjYXNlIExPQ19SRUZfQVJHOgog IAkgICAgICB7CkBAIC0zMDg3LDcgKzMwNjQsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvc3RhY2suYwogIAogIAkJLyogQ29tcHV0ZSBhZGRyZXNzIG9mIG5leHQgYXJndW1lbnQg YnkgYWRkaW5nIHRoZSBzaXplIG9mCiAgCQkgICB0aGlzIGFyZ3VtZW50IGFuZCByb3VuZGluZyB0 byBhbiBpbnQgYm91bmRhcnkuICAqLwotQEAgLTY5NCw3ICs2OTQsNyBAQCBwcmludF9mcmFtZV9h cmdzIChzdHJ1Y3Qgc3ltYm9sICpmdW5jLCBzCitAQCAtNzExLDcgKzcxMSw3IEBAIHByaW50X2Zy YW1lX2FyZ3MgKHN0cnVjdCBzeW1ib2wgKmZ1bmMsIHMKICAgICAgIGVub3VnaCBhYm91dCB0aGUg c3RhY2sgdG8gZmluZCB0aGVtLiAgKi8KICAgIGlmIChudW0gIT0gLTEpCiAgICAgIHsKQEAgLTMw OTYsMTAgKzMwNzMsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3N0YWNrLmMK ICAKICAgICAgICBpZiAoaGlnaGVzdF9vZmZzZXQgPT0gLTEpCiAgCXN0YXJ0ID0gZ2RiYXJjaF9m cmFtZV9hcmdzX3NraXAgKGdldF9mcmFtZV9hcmNoIChmcmFtZSkpOwotSW5kZXg6IGdkYi03Ljgu OTAuMjAxNTAyMDIvZ2RiL3N5bW1pc2MuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L3N5bW1pc2MuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIv c3ltbWlzYy5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvc3ltbWlzYy5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjIwOTY2NDAx ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9zeW1taXNjLmMJMjAxNS0w NS0zMSAxNzowODo0Ni44NTY1MDY0NjYgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dk Yi9zeW1taXNjLmMJMjAxNS0wNS0zMSAxNzowOToyMS40NjU3MjQ4OTcgKzAyMDAKIEBAIC01MzQs MTEgKzUzNCwxMSBAQCBwcmludF9zeW1ib2wgKHZvaWQgKmFyZ3MpCiAgCiAgCWNhc2UgTE9DX0NP TlNUX0JZVEVTOgpAQCAtMzExNSwxMCArMzA5MiwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1 MDIwMi9nZGIvc3ltbWlzYy5jCiAgCSAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9MRU5HVEggKHR5 cGUpOyBpKyspCiAgCSAgICAgIGZwcmludGZfZmlsdGVyZWQgKG91dGZpbGUsICIgJTAyeCIsCiAg CQkJCSh1bnNpZ25lZCkgU1lNQk9MX1ZBTFVFX0JZVEVTIChzeW1ib2wpW2ldKTsKLUluZGV4OiBn ZGItNy44LjkwLjIwMTUwMjAyL2dkYi90YXJnZXQuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL3RhcmdldC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmln L2dkYi90YXJnZXQuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdk Yi03LjguOTAuMjAxNTAyMDIvZ2RiL3RhcmdldC5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjIxOTY2 NDA2ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi90YXJnZXQuYwkyMDE1 LTA1LTMxIDE3OjA4OjQ2Ljg1NzUwNjQ3MyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL3RhcmdldC5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDY2NzI0OTAzICswMjAwCiBAQCAtNTQs NyArNTQsNyBAQCBzdGF0aWMgaW50IGRlZmF1bHRfd2F0Y2hwb2ludF9hZGRyX3dpdGhpCiAgCQkJ CQkJIENPUkVfQUREUiwgQ09SRV9BRERSLCBpbnQpOwogIApAQCAtMzEyOCw3ICszMTA1LDcgQEAg SW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3RhcmdldC5jCiAgCiAgc3RhdGljIHZvaWQg ZGVmYXVsdF9yY21kIChzdHJ1Y3QgdGFyZ2V0X29wcyAqLCBjb25zdCBjaGFyICosIHN0cnVjdCB1 aV9maWxlICopOwogIAotQEAgLTI5NzUsNyArMjk3NSw3IEBAIHRhcmdldF9maWxlaW9fcmVhZF9z dHJhbGxvYyAoY29uc3QgY2hhcgorQEAgLTMwNTYsNyArMzA1Niw3IEBAIHRhcmdldF9maWxlaW9f cmVhZF9zdHJhbGxvYyAoY29uc3QgY2hhcgogIAogIHN0YXRpYyBpbnQKICBkZWZhdWx0X3JlZ2lv bl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCkBAIC0zMTM3 LDExICszMTE0LDExIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi90YXJnZXQuYwog IHsKICAgIHJldHVybiAobGVuIDw9IGdkYmFyY2hfcHRyX2JpdCAodGFyZ2V0X2dkYmFyY2ggKCkp IC8gVEFSR0VUX0NIQVJfQklUKTsKICB9Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIv dGFyZ2V0LmgKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90YXJnZXQuaAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvdGFyZ2V0LmgJMjAxNS0wMi0x MSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi90 YXJnZXQuaAkyMDE1LTAyLTExIDE2OjAxOjU5LjYyMjk2NjQxMSArMDEwMAotQEAgLTQ4OSw3ICs0 ODksNyBAQCBzdHJ1Y3QgdGFyZ2V0X29wcworLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9n ZGIvdGFyZ2V0LmgJMjAxNS0wNS0zMSAxNzowODo0Ni44NTg1MDY0NzkgKzAyMDAKKysrKyBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi90YXJnZXQuaAkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ2NjcyNDkw MyArMDIwMAorQEAgLTUyNyw3ICs1MjcsNyBAQCBzdHJ1Y3QgdGFyZ2V0X29wcwogICAgICAvKiBE b2N1bWVudGF0aW9uIG9mIHRoaXMgcm91dGluZSBpcyBwcm92aWRlZCB3aXRoIHRoZSBjb3JyZXNw b25kaW5nCiAgICAgICAgIHRhcmdldF8qIG1hY3JvLiAgKi8KICAgICAgaW50ICgqdG9fcmVnaW9u X29rX2Zvcl9od193YXRjaHBvaW50KSAoc3RydWN0IHRhcmdldF9vcHMgKiwKQEAgLTMxNTAsMTAg KzMxMjcsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3RhcmdldC5oCiAgICAg ICAgVEFSR0VUX0RFRkFVTFRfRlVOQyAoZGVmYXVsdF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9p bnQpOwogIAogICAgICBpbnQgKCp0b19jYW5fYWNjZWxfd2F0Y2hwb2ludF9jb25kaXRpb24pIChz dHJ1Y3QgdGFyZ2V0X29wcyAqLAotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3RyYWNl cG9pbnQuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3RyYWNlcG9pbnQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvdHJhY2Vwb2ludC5jCTIw MTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvdHJhY2Vwb2ludC5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjIzOTY2NDE2ICswMTAwCist LS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi90cmFjZXBvaW50LmMJMjAxNS0wNS0zMSAx NzowODo0Ni44NTk1MDY0ODUgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90cmFj ZXBvaW50LmMJMjAxNS0wNS0zMSAxNzowOToyMS40Njc3MjQ5MTAgKzAyMDAKIEBAIC05MjgsMTMg KzkyOCwxMyBAQCBhZGRfcmVnaXN0ZXIgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKmNvCiAgc3Rh dGljIHZvaWQKICBhZGRfbWVtcmFuZ2UgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKm1lbXJhbmdl cywgCkBAIC0zMjQ3LDExICszMjI0LDExIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dk Yi90cmFjZXBvaW50LmMKICAJfQogICAgICAgIGlmIChCTE9DS19GVU5DVElPTiAoYmxvY2spKQog IAlicmVhazsKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi90eXBlcHJpbnQuYworSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3R5cGVwcmludC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi90eXBlcHJpbnQuYwkyMDE1LTAyLTExIDE2OjAx OjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3R5cGVwcmlu dC5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjIzOTY2NDE2ICswMTAwCi1AQCAtNDAyLDcgKzQwMiw3 IEBAIHdoYXRpc19leHAgKGNoYXIgKmV4cCwgaW50IHNob3cpCistLS0gZ2RiLTcuOS41MC4yMDE1 MDUyMC5vcmlnL2dkYi90eXBlcHJpbnQuYwkyMDE1LTA1LTMxIDE3OjA4OjQ2Ljg2MDUwNjQ5MSAr MDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3R5cGVwcmludC5jCTIwMTUtMDUtMzEg MTc6MDk6MjEuNDY4NzI0OTE2ICswMjAwCitAQCAtNDA0LDcgKzQwNCw3IEBAIHdoYXRpc19leHAg KGNoYXIgKmV4cCwgaW50IHNob3cpCiAgICBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlID0gTlVMTDsK ICAgIHN0cnVjdCB0eXBlICp0eXBlOwogICAgaW50IGZ1bGwgPSAwOwpAQCAtMzI2MCwxMCArMzIz NywxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdHlwZXByaW50LmMKICAgIGlu dCB1c2luZ19lbmMgPSAwOwogICAgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgb3B0czsKICAg IHN0cnVjdCB0eXBlX3ByaW50X29wdGlvbnMgZmxhZ3MgPSBkZWZhdWx0X3B0eXBlX2ZsYWdzOwot SW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3ZhbGFyaXRoLmMKK0luZGV4OiBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi92YWxhcml0aC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4y MDE1MDIwMi5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1 ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdmFsYXJpdGguYwkyMDE1LTAyLTEx IDE2OjAxOjU5LjYyMzk2NjQxNiArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9n ZGIvdmFsYXJpdGguYwkyMDE1LTA1LTMxIDE3OjA4OjQ2Ljg2MTUwNjQ5OCArMDIwMAorKysrIGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0wNS0zMSAxNzowOToyMS40Njg3 MjQ5MTYgKzAyMDAKIEBAIC0xODgsMTIgKzE4OCwxMyBAQCB2YWx1ZV9zdWJzY3JpcHQgKHN0cnVj dCB2YWx1ZSAqYXJyYXksIExPCiAgICAgdG8gZG91YmxlcywgYnV0IG5vIGxvbmdlciBkb2VzLiAg Ki8KICAKQEAgLTMyOTAsNyArMzI2Nyw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dk Yi92YWxhcml0aC5jCiAgCiAgICBpZiAoZWx0X3N0cmlkZSA+IDApCiAgICAgIGVsdF9vZmZzICo9 IGVsdF9zdHJpZGU7Ci1AQCAtNjYzLDcgKzY2NCw3IEBAIHZhbHVlX2NvbmNhdCAoc3RydWN0IHZh bHVlICphcmcxLCBzdHJ1Y3QKK0BAIC02NzgsNyArNjc5LDcgQEAgdmFsdWVfY29uY2F0IChzdHJ1 Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdAogICAgc3RydWN0IHZhbHVlICppbnZhbDE7CiAgICBzdHJ1 Y3QgdmFsdWUgKmludmFsMjsKICAgIHN0cnVjdCB2YWx1ZSAqb3V0dmFsID0gTlVMTDsKQEAgLTMy OTksNyArMzI3Niw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi92YWxhcml0aC5j CiAgICBpbnQgY291bnQsIGlkeDsKICAgIGNoYXIgKnB0cjsKICAgIGNoYXIgaW5jaGFyOwotQEAg LTE1MTYsNyArMTUxNyw3IEBAIHZhbHVlX2Jpbm9wIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVj dAorQEAgLTE1MzEsNyArMTUzMiw3IEBAIHZhbHVlX2Jpbm9wIChzdHJ1Y3QgdmFsdWUgKmFyZzEs IHN0cnVjdAogIGludAogIHZhbHVlX2xvZ2ljYWxfbm90IChzdHJ1Y3QgdmFsdWUgKmFyZzEpCiAg ewpAQCAtMzMwOCw3ICszMjg1LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3Zh bGFyaXRoLmMKICAgIGNvbnN0IGdkYl9ieXRlICpwOwogICAgc3RydWN0IHR5cGUgKnR5cGUxOwog IAotQEAgLTE1NDcsMTEgKzE1NDgsMTEgQEAgdmFsdWVfbG9naWNhbF9ub3QgKHN0cnVjdCB2YWx1 ZSAqYXJnMSkKK0BAIC0xNTYyLDExICsxNTYzLDExIEBAIHZhbHVlX2xvZ2ljYWxfbm90IChzdHJ1 Y3QgdmFsdWUgKmFyZzEpCiAgc3RhdGljIGludAogIHZhbHVlX3N0cmNtcCAoc3RydWN0IHZhbHVl ICphcmcxLCBzdHJ1Y3QgdmFsdWUgKmFyZzIpCiAgewpAQCAtMzMyMywxMCArMzMwMCwxMCBAQCBJ bmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdmFsYXJpdGguYwogIAogICAgZm9yIChpID0g MDsgaSA8IGxlbjsgaSsrKQogICAgICB7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIv dmFsb3BzLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YWxvcHMuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvdmFsb3BzLmMJMjAxNS0wMi0x MSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi92 YWxvcHMuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjYyNDk2NjQyMSArMDEwMAorLS0tIGdkYi03Ljku NTAuMjAxNTA1MjAub3JpZy9nZGIvdmFsb3BzLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44NjQ1MDY1 MTcgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YWxvcHMuYwkyMDE1LTA1LTMx IDE3OjA5OjIxLjQ2OTcyNDkyMiArMDIwMAogQEAgLTQ3LDExICs0NywxMSBAQCBzdGF0aWMgaW50 IHR5cGVjbXAgKGludCBzdGF0aWNwLCBpbnQgdmFyCiAgCQkgICAgc3RydWN0IGZpZWxkIHQxW10s IHN0cnVjdCB2YWx1ZSAqdDJbXSk7CiAgCkBAIC0zNjI4LDkgKzM2MDUsOSBAQCBJbmRleDogZ2Ri LTcuOC45MC4yMDE1MDIwMi9nZGIvdmFsb3BzLmMKIC0JCQkgIGludCAqdG9wLCBpbnQgKnVzaW5n X2VuYykKICsJCQkgIExPTkdFU1QgKnRvcCwgaW50ICp1c2luZ19lbmMpCiAgewotICAgc3RydWN0 IHZhbHVlICp0YXJnZXQ7CisgICBzdHJ1Y3QgdmFsdWUgKnRhcmdldCA9IE5VTEw7CiAgICBzdHJ1 Y3QgdHlwZSAqdHlwZSwgKnJlYWxfdHlwZSwgKnRhcmdldF90eXBlOwotQEAgLTM2NDgsMTIgKzM2 NTAsMTIgQEAgdmFsdWVfcnR0aV9pbmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFsdWUgKgorQEAgLTM2 NjYsMTIgKzM2NjgsMTIgQEAgdmFsdWVfcnR0aV9pbmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFsdWUg KgogIHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVfZnVsbF9vYmplY3QgKHN0cnVjdCB2YWx1ZSAqYXJn cCwgCiAgCQkgICBzdHJ1Y3QgdHlwZSAqcnR5cGUsIApAQCAtMzY0NSwxMCArMzYyMiwxMCBAQCBJ bmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdmFsb3BzLmMKICAgIGludCB1c2luZ19lbmMg PSAwOwogICAgc3RydWN0IHZhbHVlICpuZXdfdmFsOwogIAotSW5kZXg6IGdkYi03LjguOTAuMjAx NTAyMDIvZ2RiL3ZhbHByaW50LmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YWxw cmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi92YWxw cmludC5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45 MC4yMDE1MDIwMi9nZGIvdmFscHJpbnQuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjYyNTk2NjQyNiAr MDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvdmFscHJpbnQuYwkyMDE1LTA1 LTMxIDE3OjA4OjQ2Ljg2NTUwNjUyMyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L3ZhbHByaW50LmMJMjAxNS0wNS0zMSAxNzoxNDoxNS45NjU1ODM1ODcgKzAyMDAKIEBAIC0yOTgs NyArMjk4LDcgQEAgdmFsX3ByaW50X3NjYWxhcl90eXBlX3AgKHN0cnVjdCB0eXBlICp0eQogIGlu dAogIHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLApAQCAt MzY3Niw3ICszNjUzLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3ZhbHByaW50 LmMKICAJICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBy ZWN1cnNlLAogIAkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJICAgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtOTk2LDcgKzk5Niw3IEBAIHZhbF9w cmludF90eXBlX2NvZGVfZmxhZ3MgKHN0cnVjdCB0eXBlICoKK0BAIC05OTgsNyArOTk4LDcgQEAg dmFsX3ByaW50X3R5cGVfY29kZV9mbGFncyAoc3RydWN0IHR5cGUgKgogIAogIHZvaWQKICB2YWxf cHJpbnRfc2NhbGFyX2Zvcm1hdHRlZCAoc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0zNjg1LDcgKzM2 NjIsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdmFscHJpbnQuYwogIAkJCSAg ICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgKm9wdGlvbnMsCiAgCQkJICAgIGludCBzaXplLAotQEAgLTE1MzgsNyArMTUz OCw3IEBAIHByaW50X2RlY2ltYWxfY2hhcnMgKHN0cnVjdCB1aV9maWxlICpzdHIKK0BAIC0xNTQw LDcgKzE1NDAsNyBAQCBwcmludF9kZWNpbWFsX2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAqc3RyCiAg CiAgdm9pZAogIHByaW50X2hleF9jaGFycyAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgY29uc3Qg Z2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0zNjk0LDcgKzM2NzEsNyBAQCBJbmRleDogZ2RiLTcuOC45 MC4yMDE1MDIwMi9nZGIvdmFscHJpbnQuYwogIHsKICAgIGNvbnN0IGdkYl9ieXRlICpwOwogIAot QEAgLTE2NTUsMjIgKzE2NTUsMjIgQEAgbWF5YmVfcHJpbnRfYXJyYXlfaW5kZXggKHN0cnVjdCB0 eXBlICppbgorQEAgLTE2NTcsMjIgKzE2NTcsMjIgQEAgbWF5YmVfcHJpbnRfYXJyYXlfaW5kZXgg KHN0cnVjdCB0eXBlICppbgogIAogIHZvaWQKICB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0 cnVjdCB0eXBlICp0eXBlLApAQCAtMzcxMCw3ICszNjg3LDcgQEAgSW5kZXg6IGdkYi03LjguOTAu MjAxNTAyMDIvZ2RiL3ZhbHByaW50LmMKICAgIHVuc2lnbmVkIGludCB0aGluZ3NfcHJpbnRlZCA9 IDA7CiAtICB1bnNpZ25lZCBsZW47CiArICBVTE9OR0VTVCBsZW47Ci0gICBzdHJ1Y3QgdHlwZSAq ZWx0dHlwZSwgKmluZGV4X3R5cGU7CisgICBzdHJ1Y3QgdHlwZSAqZWx0dHlwZSwgKmluZGV4X3R5 cGUsICpiYXNlX2luZGV4X3R5cGU7CiAtICB1bnNpZ25lZCBlbHRsZW47CiArICBVTE9OR0VTVCBl bHRsZW47CiAgICAvKiBQb3NpdGlvbiBvZiB0aGUgYXJyYXkgZWxlbWVudCB3ZSBhcmUgZXhhbWlu aW5nIHRvIHNlZQpAQCAtMzcyMSw5ICszNjk4LDkgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAy MDIvZ2RiL3ZhbHByaW50LmMKIC0gIHVuc2lnbmVkIGludCByZXBzOwogKyAgVUxPTkdFU1QgcmVw czsKICAgIExPTkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5kOworICAgTE9OR0VTVCBsb3dfcG9z LCBoaWdoX3BvczsKICAKLSAgIGVsdHR5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKLUBA IC0xNzQxLDcgKzE3NDEsNyBAQCB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0eXBl ICp0CitAQCAtMTc2Miw3ICsxNzYyLDcgQEAgdmFsX3ByaW50X2FycmF5X2VsZW1lbnRzIChzdHJ1 Y3QgdHlwZSAqdAogIAkJICAgICBhZGRyZXNzLCBzdHJlYW0sIHJlY3Vyc2UgKyAxLCB2YWwsIG9w dGlvbnMsCiAgCQkgICAgIGN1cnJlbnRfbGFuZ3VhZ2UpOwogIAkgIGFubm90YXRlX2VsdF9yZXAg KHJlcHMpOwpAQCAtMzczMiw3ICszNzA5LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIv Z2RiL3ZhbHByaW50LmMKICAJICBhbm5vdGF0ZV9lbHRfcmVwX2VuZCAoKTsKICAKICAJICBpID0g cmVwMSAtIDE7Ci1AQCAtMjM5Nyw3ICsyMzk3LDcgQEAgcHJpbnRfY29udmVydGVkX2NoYXJzX3Rv X29ic3RhY2sgKHN0cnVjdAorQEAgLTI0MTgsNyArMjQxOCw3IEBAIHByaW50X2NvbnZlcnRlZF9j aGFyc190b19vYnN0YWNrIChzdHJ1Y3QKICAKICB2b2lkCiAgZ2VuZXJpY19wcmludHN0ciAoc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsIApAQCAtMzc0MSwxMCArMzcx OCwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdmFscHJpbnQuYwogIAkJICBj b25zdCBjaGFyICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkJICBpbnQgcXVvdGVf Y2hhciwgaW50IGNfc3R5bGVfdGVybWluYXRvciwKICAJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdmFs cHJpbnQuaAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHByaW50LmgKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL3ZhbHByaW50LmgJMjAxNS0w Mi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dk Yi92YWxwcmludC5oCTIwMTUtMDItMTEgMTY6MDE6NTkuNjI1OTY2NDI2ICswMTAwCistLS0gZ2Ri LTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi92YWxwcmludC5oCTIwMTUtMDUtMzEgMTc6MDg6NDYu ODY1NTA2NTIzICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmFscHJpbnQuaAky MDE1LTA1LTMxIDE3OjA5OjIxLjQ3MDcyNDkyOCArMDIwMAogQEAgLTExNSwxMSArMTE1LDExIEBA IGV4dGVybiB2b2lkIG1heWJlX3ByaW50X2FycmF5X2luZGV4IChzdHIKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJCQkJICAg ICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKQEAgLTM3OTUsMTAgKzM3NzIs MTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3ZhbHByaW50LmgKICAJCQkgICAg ICBjb25zdCBjaGFyICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkJCSAgICAgIGlu dCBxdW90ZV9jaGFyLCBpbnQgY19zdHlsZV90ZXJtaW5hdG9yLAogIAkJCSAgICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKTsKLUluZGV4OiBnZGItNy44LjkwLjIw MTUwMjAyL2dkYi92YWx1ZS5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmFsdWUu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvdmFsdWUuYwky MDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAy MDIvZ2RiL3ZhbHVlLmMJMjAxNS0wMi0xMSAxNjowMTo1OS42MjY5NjY0MzEgKzAxMDAKKy0tLSBn ZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3ZhbHVlLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44 Njg1MDY1NDIgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YWx1ZS5jCTIwMTUt MDUtMzEgMTc6MDk6MjEuNDcxNzI0OTM1ICswMjAwCiBAQCAtNjYsMTAgKzY2LDEwIEBAIHN0cnVj dCBpbnRlcm5hbF9mdW5jdGlvbgogIHN0cnVjdCByYW5nZQogIHsKQEAgLTQwMzQsNyArNDAxMSw3 IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi92YWx1ZS5jCiAgewogICAgdmFsdWUt PnBvaW50ZWRfdG9fb2Zmc2V0ID0gdmFsOwogIH0KLUBAIC0yMjYzLDcgKzIyNzAsNyBAQCBnZXRf aW50ZXJuYWx2YXJfZnVuY3Rpb24gKHN0cnVjdCBpbnRlcm5hCitAQCAtMjI4Nyw3ICsyMjk0LDcg QEAgZ2V0X2ludGVybmFsdmFyX2Z1bmN0aW9uIChzdHJ1Y3QgaW50ZXJuYQogIH0KICAKICB2b2lk CkBAIC00MDQzLDcgKzQwMjAsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdmFs dWUuYwogIAkJCSAgIGludCBiaXRzaXplLCBzdHJ1Y3QgdmFsdWUgKm5ld3ZhbCkKICB7CiAgICBn ZGJfYnl0ZSAqYWRkcjsKLUBAIC0yOTY5LDcgKzI5NzYsNyBAQCBzZXRfdmFsdWVfZW5jbG9zaW5n X3R5cGUgKHN0cnVjdCB2YWx1ZSAqCitAQCAtMzAwOCw3ICszMDE1LDcgQEAgc2V0X3ZhbHVlX2Vu Y2xvc2luZ190eXBlIChzdHJ1Y3QgdmFsdWUgKgogICAgIEZJRUxETk8gc2F5cyB3aGljaCBmaWVs ZC4gICovCiAgCiAgc3RydWN0IHZhbHVlICoKQEAgLTQwNTIsNyArNDAyOSw3IEBAIEluZGV4OiBn ZGItNy44LjkwLjIwMTUwMjAyL2dkYi92YWx1ZS5jCiAgCQkgICAgICAgaW50IGZpZWxkbm8sIHN0 cnVjdCB0eXBlICphcmdfdHlwZSkKICB7CiAgICBzdHJ1Y3QgdmFsdWUgKnY7Ci1AQCAtMzAxOSw3 ICszMDI2LDcgQEAgdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZworQEAg LTMwNTgsNyArMzA2NSw3IEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICph cmcKICAgICAgICAvKiBUaGlzIGZpZWxkIGlzIGFjdHVhbGx5IGEgYmFzZSBzdWJvYmplY3QsIHNv IHByZXNlcnZlIHRoZQogIAkgZW50aXJlIG9iamVjdCdzIGNvbnRlbnRzIGZvciBsYXRlciByZWZl cmVuY2VzIHRvIHZpcnR1YWwKICAJIGJhc2VzLCBldGMuICAqLwpAQCAtNDA2MSw3ICs0MDM4LDcg QEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3ZhbHVlLmMKICAKICAgICAgICAvKiBM YXp5IHJlZ2lzdGVyIHZhbHVlcyB3aXRoIG9mZnNldHMgYXJlIG5vdCBzdXBwb3J0ZWQuICAqLwog ICAgICAgIGlmIChWQUxVRV9MVkFMIChhcmcxKSA9PSBsdmFsX3JlZ2lzdGVyICYmIHZhbHVlX2xh enkgKGFyZzEpKQotQEAgLTMxMDUsNyArMzExMiw3IEBAIHZhbHVlX2ZpZWxkIChzdHJ1Y3QgdmFs dWUgKmFyZzEsIGludCBmaWUKK0BAIC0zMTQ0LDcgKzMxNTEsNyBAQCB2YWx1ZV9maWVsZCAoc3Ry dWN0IHZhbHVlICphcmcxLCBpbnQgZmllCiAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV9mbl9maWVs ZCAoc3RydWN0IHZhbHVlICoqYXJnMXAsIHN0cnVjdCBmbl9maWVsZCAqZiwKICAJCWludCBqLCBz dHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTQwNzAsNyArNDA0Nyw3IEBAIEluZGV4OiBnZGItNy44Ljkw LjIwMTUwMjAyL2dkYi92YWx1ZS5jCiAgewogICAgc3RydWN0IHZhbHVlICp2OwogICAgc3RydWN0 IHR5cGUgKmZ0eXBlID0gVFlQRV9GTl9GSUVMRF9UWVBFIChmLCBqKTsKLUBAIC0zMTc1LDE0ICsz MTgyLDE0IEBAIHZhbHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3QKK0BAIC0z MjE0LDE0ICszMjIxLDE0IEBAIHZhbHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwg c3QKICAKICBzdGF0aWMgTE9OR0VTVAogIHVucGFja19iaXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBl ICpmaWVsZF90eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQwODcsNyArNDA2NCw3 IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi92YWx1ZS5jCiAgCiAgICAvKiBSZWFk IHRoZSBtaW5pbXVtIG51bWJlciBvZiBieXRlcyByZXF1aXJlZDsgdGhlcmUgbWF5IG5vdCBiZQog ICAgICAgZW5vdWdoIGJ5dGVzIHRvIHJlYWQgYW4gZW50aXJlIFVMT05HRVNULiAgKi8KLUBAIC0z MjMxLDcgKzMyMzgsNyBAQCB1bnBhY2tfYml0c19hc19sb25nIChzdHJ1Y3QgdHlwZSAqZmllbGRf CitAQCAtMzI3MCw3ICszMjc3LDcgQEAgdW5wYWNrX2JpdHNfYXNfbG9uZyAoc3RydWN0IHR5cGUg KmZpZWxkXwogIAogIGludAogIHVucGFja192YWx1ZV9maWVsZF9hc19sb25nIChzdHJ1Y3QgdHlw ZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC00MDk2LDcgKzQwNzMsNyBAQCBJ bmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdmFsdWUuYwogIAkJCSAgICBjb25zdCBzdHJ1 Y3QgdmFsdWUgKnZhbCwgTE9OR0VTVCAqcmVzdWx0KQogIHsKICAgIGludCBiaXRwb3MgPSBUWVBF X0ZJRUxEX0JJVFBPUyAodHlwZSwgZmllbGRubyk7Ci1AQCAtMzI3NSw3ICszMjgyLDcgQEAgdW5w YWNrX2ZpZWxkX2FzX2xvbmcgKHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTMzMTQsNyArMzMyMSw3 IEBAIHVucGFja19maWVsZF9hc19sb25nIChzdHJ1Y3QgdHlwZSAqdHlwZSwKICB2b2lkCiAgdW5w YWNrX3ZhbHVlX2JpdGZpZWxkIChzdHJ1Y3QgdmFsdWUgKmRlc3RfdmFsLAogIAkJICAgICAgIGlu dCBiaXRwb3MsIGludCBiaXRzaXplLApAQCAtNDEwNSw3ICs0MDgyLDcgQEAgSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAyMDIvZ2RiL3ZhbHVlLmMKICAJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUg KnZhbCkKICB7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlcjsKLUBAIC0zMzEzLDcgKzMz MjAsNyBAQCB1bnBhY2tfdmFsdWVfYml0ZmllbGQgKHN0cnVjdCB2YWx1ZSAqZGVzCitAQCAtMzM1 Miw3ICszMzU5LDcgQEAgdW5wYWNrX3ZhbHVlX2JpdGZpZWxkIChzdHJ1Y3QgdmFsdWUgKmRlcwog IHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0eXBlICp0eXBl LCBpbnQgZmllbGRubywKICAJCSAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtNDEx NCw3ICs0MDkxLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3ZhbHVlLmMKICB7 CiAgICBpbnQgYml0cG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGZpZWxkbm8pOwogICAg aW50IGJpdHNpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGZpZWxkbm8pOwotQEAgLTMz MzQsMTIgKzMzNDEsMTIgQEAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0eXBlICp0eXBl LAorQEAgLTMzNzMsMTIgKzMzODAsMTIgQEAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0 eXBlICp0eXBlLAogIAogIHZvaWQKICBtb2RpZnlfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBn ZGJfYnl0ZSAqYWRkciwKQEAgLTQxMjksMTAgKzQxMDYsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAu MjAxNTAyMDIvZ2RiL3ZhbHVlLmMKICAKICAgIC8qIE5vcm1hbGl6ZSBCSVRQT1MuICAqLwogICAg YWRkciArPSBiaXRwb3MgLyA4OwotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3ZhbHVl LmgKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YWx1ZS5oCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi92YWx1ZS5oCTIwMTUtMDItMTEgMTY6MDE6 NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdmFsdWUuaAky MDE1LTAyLTExIDE2OjAxOjU5LjYyNzk2NjQzNiArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1 MjAub3JpZy9nZGIvdmFsdWUuaAkyMDE1LTA1LTMxIDE3OjA4OjQ2Ljg2OTUwNjU0OCArMDIwMAor KysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHVlLmgJMjAxNS0wNS0zMSAxNzowOToyMS40 NzI3MjQ5NDEgKzAyMDAKIEBAIC0xMzEsOCArMTMxLDggQEAgZXh0ZXJuIHZvaWQgc2V0X3ZhbHVl X3BhcmVudCAoc3RydWN0IHZhbAogICAgIHdpdGhpbiB0aGUgcmVnaXN0ZXJzIHN0cnVjdHVyZS4g IE5vdGUgYWxzbyB0aGUgbWVtYmVyCiAgICAgZW1iZWRkZWRfb2Zmc2V0IGJlbG93LiAgKi8KQEAg LTQzNTksNyArNDMzNiw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi92YWx1ZS5o CiAgCQkgICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkgICAg ICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtMTA1NCwxMCArMTA1NywxMSBAQCBleHRlcm4g c3RydWN0IHZhbHVlICp2YWx1ZV9saXRlcmFsX2NvbXBsCitAQCAtMTA1NiwxMCArMTA1OSwxMSBA QCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9saXRlcmFsX2NvbXBsCiAgZXh0ZXJuIHN0cnVj dCB2YWx1ZSAqZmluZF9mdW5jdGlvbl9pbl9pbmZlcmlvciAoY29uc3QgY2hhciAqLAogIAkJCQkJ CXN0cnVjdCBvYmpmaWxlICoqKTsKICAKQEAgLTQzNzMsMTEgKzQzNTAsMTEgQEAgSW5kZXg6IGdk Yi03LjguOTAuMjAxNTAyMDIvZ2RiL3ZhbHVlLmgKICAKICAvKiBVc2VyIGZ1bmN0aW9uIGhhbmRs ZXIuICAqLwogIAotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3MzOTAtbGludXgtbmF0 LmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zMzkwLWxpbnV4LW5hdC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9zMzkwLWxpbnV4LW5hdC5j CTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1 MDIwMi9nZGIvczM5MC1saW51eC1uYXQuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjYyNzk2NjQzNiAr MDEwMAotQEAgLTU0NCw3ICs1NDQsNyBAQCBzMzkwX2Nhbl91c2VfaHdfYnJlYWtwb2ludCAoc3Ry dWN0IHRhcmdlCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9zMzkwLWxpbnV4LW5h dC5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODcwNTA2NTU1ICswMjAwCisrKysgZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvczM5MC1saW51eC1uYXQuYwkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ3MjcyNDk0 MSArMDIwMAorQEAgLTYxOSw3ICs2MTksNyBAQCBzMzkwX2Nhbl91c2VfaHdfYnJlYWtwb2ludCAo c3RydWN0IHRhcmdlCiAgCiAgc3RhdGljIGludAogIHMzOTBfcmVnaW9uX29rX2Zvcl9od193YXRj aHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAgLTQzODYsMTEgKzQzNjMsMTEgQEAg SW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3MzOTAtbGludXgtbmF0LmMKICB7CiAgICBy ZXR1cm4gMTsKICB9Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZXh0ZW5zaW9uLXBy aXYuaAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2V4dGVuc2lvbi1wcml2LmgKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2V4dGVuc2lvbi1wcml2 LmgJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIw MTUwMjAyL2dkYi9leHRlbnNpb24tcHJpdi5oCTIwMTUtMDItMTEgMTY6MDE6NTkuNjI3OTY2NDM2 ICswMTAwCi1AQCAtMTc1LDcgKzE3NSw3IEBAIHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2Vfb3Bz CistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9leHRlbnNpb24tcHJpdi5oCTIwMTUt MDUtMzEgMTc6MDg6NDYuODcwNTA2NTU1ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvZXh0ZW5zaW9uLXByaXYuaAkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ3MzcyNDk0OCArMDIwMAor QEAgLTE4MCw3ICsxODAsNyBAQCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX29wcwogICAgZW51 bSBleHRfbGFuZ19yYyAoKmFwcGx5X3ZhbF9wcmV0dHlfcHJpbnRlcikKICAgICAgKGNvbnN0IHN0 cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiAqLAogICAgICAgc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtNDM5OSwxMSArNDM3NiwxMSBAQCBJbmRleDog Z2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZXh0ZW5zaW9uLXByaXYuaAogICAgICAgc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZh bCwgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCiAgICAgICBjb25z dCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqbGFuZ3VhZ2UpOwotSW5kZXg6IGdkYi03LjguOTAuMjAx NTAyMDIvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAorSW5kZXg6IGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTIwMTUtMDIt MTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIv cHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTIwMTUtMDItMTEgMTY6MDE6NTkuNjI4OTY2NDQxICsw MTAwCi1AQCAtMzEzLDcgKzMxMyw3IEBAIGV4dGVybiBpbnQgZ2RicHlfYXV0b19sb2FkX2VuYWJs ZWQgKGNvbnMKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3B5dGhvbi9weXRob24t aW50ZXJuYWwuaAkyMDE1LTA1LTMxIDE3OjA4OjQ2Ljg3MDUwNjU1NSArMDIwMAorKysrIGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAkyMDE1LTA1LTMxIDE3 OjA5OjIxLjQ3MzcyNDk0OCArMDIwMAorQEAgLTMxOCw3ICszMTgsNyBAQCBleHRlcm4gaW50IGdk YnB5X2F1dG9fbG9hZF9lbmFibGVkIChjb25zCiAgZXh0ZXJuIGVudW0gZXh0X2xhbmdfcmMgZ2Ri cHlfYXBwbHlfdmFsX3ByZXR0eV9wcmludGVyCiAgICAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9s YW5ndWFnZV9kZWZuICosCiAgICAgc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2 YWxhZGRyLApAQCAtNDQxMiwxMSArNDM4OSwxMSBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCiAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSwgaW50IHJlY3Vyc2UsCiAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgICAgY29uc3Qg c3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1JbmRleDogZ2RiLTcuOC45MC4y MDE1MDIwMi9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1 MDIwMi5vcmlnL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5 MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi90YXJnZXQtZGVsZWdhdGVz LmMJMjAxNS0wMi0xMSAxNjowMTo1OS42Mjk5NjY0NDYgKzAxMDAKLUBAIC02MzQsMTQgKzYzNCwx NCBAQCBkZWJ1Z193YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1CistLS0gZ2RiLTcu OS41MC4yMDE1MDUyMC5vcmlnL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNS0wNS0zMSAxNzow ODo0Ni44NzE1MDY1NjEgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90YXJnZXQt ZGVsZWdhdGVzLmMJMjAxNS0wNS0zMSAxNzowOToyMS40NzQ3MjQ5NTQgKzAyMDAKK0BAIC03NDIs MTQgKzc0MiwxNCBAQCBkZWJ1Z193YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1CiAg fQogIAogIHN0YXRpYyBpbnQKQEAgLTQ0MzMsNyArNDQxMCw3IEBAIEluZGV4OiBnZGItNy44Ljkw LjIwMTUwMjAyL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKICB7CiAgICBpbnQgcmVzdWx0OwogICAg ZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiLT4gJXMtPnRvX3JlZ2lvbl9va19mb3Jf aHdfd2F0Y2hwb2ludCAoLi4uKVxuIiwgZGVidWdfdGFyZ2V0LnRvX3Nob3J0bmFtZSk7Ci1AQCAt NjUxLDcgKzY1MSw3IEBAIGRlYnVnX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWMK K0BAIC03NTksNyArNzU5LDcgQEAgZGVidWdfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChz dHJ1YwogICAgZnB1dHNfdW5maWx0ZXJlZCAoIiwgIiwgZ2RiX3N0ZGxvZyk7CiAgICB0YXJnZXRf ZGVidWdfcHJpbnRfQ09SRV9BRERSIChhcmcxKTsKICAgIGZwdXRzX3VuZmlsdGVyZWQgKCIsICIs IGdkYl9zdGRsb2cpOwpAQCAtNDQ0MiwxMSArNDQxOSwxMSBAQCBJbmRleDogZ2RiLTcuOC45MC4y MDE1MDIwMi9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCiAgICBmcHV0c191bmZpbHRlcmVkICgiKSA9 ICIsIGdkYl9zdGRsb2cpOwogICAgdGFyZ2V0X2RlYnVnX3ByaW50X2ludCAocmVzdWx0KTsKICAg IGZwdXRzX3VuZmlsdGVyZWQgKCJcbiIsIGdkYl9zdGRsb2cpOwotSW5kZXg6IGdkYi03LjguOTAu MjAxNTAyMDIvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4y MDE1MDIwMi5vcmlnL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTUtMDItMTEgMTY6MDE6NTEu MzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWFyY2g2NC1saW51 eC1uYXQuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjYyOTk2NjQ0NiArMDEwMAotQEAgLTEzODksNyAr MTM4OSw3IEBAIGFhcmNoNjRfbGludXhfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cnVjdAorLS0tIGdk Yi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwkyMDE1LTA1LTMx IDE3OjA4OjQ2Ljg3MjUwNjU2NyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2Fh cmNoNjQtbGludXgtbmF0LmMJMjAxNS0wNS0zMSAxNzowOToyMS40NzQ3MjQ5NTQgKzAyMDAKK0BA IC0xMzg2LDcgKzEzODYsNyBAQCBhYXJjaDY0X2xpbnV4X3JlbW92ZV93YXRjaHBvaW50IChzdHJ1 Y3QKICAKICBzdGF0aWMgaW50CiAgYWFyY2g2NF9saW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNo cG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtNDQ1NSwxMCArNDQzMiwxMCBAQCBJ bmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwogIHsKICAg IENPUkVfQUREUiBhbGlnbmVkX2FkZHI7CiAgCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9n ZGIvbmF0L3g4Ni1kcmVncy5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbmF0L3g4 Ni1kcmVncy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9u YXQveDg2LWRyZWdzLmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBn ZGItNy44LjkwLjIwMTUwMjAyL2dkYi9uYXQveDg2LWRyZWdzLmMJMjAxNS0wMi0xMSAxNjowMTo1 OS42Mjk5NjY0NDYgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL25hdC94 ODYtZHJlZ3MuYwkyMDE1LTA1LTMxIDE3OjA4OjQ2Ljg3MjUwNjU2NyArMDIwMAorKysrIGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL25hdC94ODYtZHJlZ3MuYwkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ3 NDcyNDk1NCArMDIwMAogQEAgLTM4NCw3ICszODQsNyBAQCB4ODZfcmVtb3ZlX2FsaWduZWRfd2F0 Y2hwb2ludCAoc3RydWN0IHg4CiAgCiAgc3RhdGljIGludApAQCAtNDQ3NywxMSArNDQ1NCwxMSBA QCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvbmF0L3g4Ni1kcmVncy5jCiAgewogICAg aW50IG5yZWdzOwogIAotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2NvbXBpbGUvY29t cGlsZS1jLXN1cHBvcnQuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NvbXBpbGUv Y29tcGlsZS1jLXN1cHBvcnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIu b3JpZy9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTUtMDItMTEgMTY6MDE6NTEu MzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvY29tcGlsZS9jb21w aWxlLWMtc3VwcG9ydC5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjI5OTY2NDQ2ICswMTAwCi1AQCAt Mjc3LDExICsyNzcsMTEgQEAgZ2VuZXJhdGVfcmVnaXN0ZXJfc3RydWN0IChzdHJ1Y3QgdWlfZmls ZQorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvY29tcGlsZS9jb21waWxlLWMtc3Vw cG9ydC5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODcyNTA2NTY3ICswMjAwCisrKysgZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTUtMDUtMzEgMTc6 MDk6MjEuNDc1NzI0OTYwICswMjAwCitAQCAtMjk5LDExICsyOTksMTEgQEAgZ2VuZXJhdGVfcmVn aXN0ZXJfc3RydWN0IChzdHJ1Y3QgdWlfZmlsZQogIAogIAkgICAgICBkZWZhdWx0OgogIAkJZnBy aW50Zl91bmZpbHRlcmVkIChzdHJlYW0sCkBAIC00NDk1LDExICs0NDcyLDExIEBAIEluZGV4OiBn ZGItNy44LjkwLjIwMTUwMjAyL2dkYi9jb21waWxlL2NvbXBpbGUtYy1zdXBwb3J0LmMKICAJICAg ICAgfQogIAkgICAgZnB1dHNfdW5maWx0ZXJlZCAoIjtcbiIsIHN0cmVhbSk7CiAgCi1JbmRleDog Z2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvbmF0L3g4Ni1kcmVncy5oCitJbmRleDogZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvbmF0L3g4Ni1kcmVncy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45 MC4yMDE1MDIwMi5vcmlnL2dkYi9uYXQveDg2LWRyZWdzLmgJMjAxNS0wMi0xMSAxNjowMTo1MS4z NjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9uYXQveDg2LWRyZWdz LmgJMjAxNS0wMi0xMSAxNjowMTo1OS42MzA5NjY0NTEgKzAxMDAKLUBAIC0xMTIsNyArMTEyLDcg QEAgZXh0ZXJuIGludCB4ODZfZHJfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cgorLS0tIGdkYi03Ljku NTAuMjAxNTA1MjAub3JpZy9nZGIvbmF0L3g4Ni1kcmVncy5oCTIwMTUtMDUtMzEgMTc6MDg6NDYu ODczNTA2NTczICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbmF0L3g4Ni1kcmVn cy5oCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDc1NzI0OTYwICswMjAwCitAQCAtMTE2LDcgKzExNiw3 IEBAIGV4dGVybiBpbnQgeDg2X2RyX3JlbW92ZV93YXRjaHBvaW50IChzdHIKICAvKiBSZXR1cm4g bm9uLXplcm8gaWYgd2UgY2FuIHdhdGNoIGEgbWVtb3J5IHJlZ2lvbiB0aGF0IHN0YXJ0cyBhdAog ICAgIGFkZHJlc3MgQUREUiBhbmQgd2hvc2UgbGVuZ3RoIGlzIExFTiBieXRlcy4gICovCiAgZXh0 ZXJuIGludCB4ODZfZHJfcmVnaW9uX29rX2Zvcl93YXRjaHBvaW50IChzdHJ1Y3QgeDg2X2RlYnVn X3JlZ19zdGF0ZSAqc3RhdGUsCkBAIC00NTA4LDEwICs0NDg1LDEwIEBAIEluZGV4OiBnZGItNy44 LjkwLjIwMTUwMjAyL2dkYi9uYXQveDg2LWRyZWdzLmgKICAKICAvKiBJZiB0aGUgaW5mZXJpb3Ig aGFzIHNvbWUgYnJlYWsvd2F0Y2hwb2ludCB0aGF0IHRyaWdnZXJlZCwgc2V0IHRoZQogICAgIGFk ZHJlc3MgYXNzb2NpYXRlZCB3aXRoIHRoYXQgYnJlYWsvd2F0Y2hwb2ludCBhbmQgcmV0dXJuIHRy dWUuCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIveDg2LW5hdC5jCitJbmRleDogZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIveDg2LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45 MC4yMDE1MDIwMi5vcmlnL2dkYi94ODYtbmF0LmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2 MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi94ODYtbmF0LmMJMjAxNS0wMi0x MSAxNjowMTo1OS42MzA5NjY0NTEgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcv Z2RiL3g4Ni1uYXQuYwkyMDE1LTA1LTMxIDE3OjA4OjQ2Ljg3MzUwNjU3MyArMDIwMAorKysrIGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL3g4Ni1uYXQuYwkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ3NTcy NDk2MCArMDIwMAogQEAgLTE3OCw3ICsxNzgsNyBAQCB4ODZfcmVtb3ZlX3dhdGNocG9pbnQgKHN0 cnVjdCB0YXJnZXRfb3BzCiAgCiAgc3RhdGljIGludApAQCAtNDUyMSwxMSArNDQ5OCwxMSBAQCBJ bmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIveDg2LW5hdC5jCiAgewogICAgc3RydWN0IHg4 Nl9kZWJ1Z19yZWdfc3RhdGUgKnN0YXRlCiAgICAgID0geDg2X2RlYnVnX3JlZ19zdGF0ZSAocHRp ZF9nZXRfcGlkIChpbmZlcmlvcl9wdGlkKSk7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9n ZGIvZ3VpbGUvZ3VpbGUtaW50ZXJuYWwuaAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L2d1aWxlL2d1aWxlLWludGVybmFsLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUw MjAyLm9yaWcvZ2RiL2d1aWxlL2d1aWxlLWludGVybmFsLmgJMjAxNS0wMi0wMiAwMjo1ODoyOS4w MDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9ndWlsZS9ndWlsZS1p bnRlcm5hbC5oCTIwMTUtMDItMTEgMTY6MDM6MzYuOTAxNDQ1MzYxICswMTAwCi1AQCAtNTU5LDcg KzU1OSw3IEBAIGV4dGVybiB2b2lkIGdkYnNjbV9wcmVzZXJ2ZV92YWx1ZXMKKy0tLSBnZGItNy45 LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2d1aWxlL2d1aWxlLWludGVybmFsLmgJMjAxNS0wNS0zMSAx NzowODo0Ni44NzM1MDY1NzMgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9ndWls ZS9ndWlsZS1pbnRlcm5hbC5oCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDc1NzI0OTYwICswMjAwCitA QCAtNTYyLDcgKzU2Miw3IEBAIGV4dGVybiB2b2lkIGdkYnNjbV9wcmVzZXJ2ZV92YWx1ZXMKICBl eHRlcm4gZW51bSBleHRfbGFuZ19yYyBnZGJzY21fYXBwbHlfdmFsX3ByZXR0eV9wcmludGVyCiAg ICAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICosCiAgICAgc3RydWN0IHR5 cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtNDUzNCwxMSArNDUxMSwxMSBA QCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZ3VpbGUvZ3VpbGUtaW50ZXJuYWwuaAog ICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogICAgIGNvbnN0IHN0cnVj dCB2YWx1ZSAqdmFsLAogICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zLAotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2d1aWxlL3NjbS1wcmV0dHktcHJp bnQuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2d1aWxlL3NjbS1wcmV0dHktcHJp bnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvZ3VpbGUv c2NtLXByZXR0eS1wcmludC5jCTIwMTUtMDItMDIgMDI6NTg6MjkuMDAwMDAwMDAwICswMTAwCi0r KysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZ3VpbGUvc2NtLXByZXR0eS1wcmludC5jCTIwMTUt MDItMTEgMTY6MDM6MTQuMDYxMzM1OTQ1ICswMTAwCi1AQCAtOTU1LDcgKzk1NSw3IEBAIHBwc2Nt X3ByaW50X2NoaWxkcmVuIChTQ00gcHJpbnRlciwgZW51bQorLS0tIGdkYi03LjkuNTAuMjAxNTA1 MjAub3JpZy9nZGIvZ3VpbGUvc2NtLXByZXR0eS1wcmludC5jCTIwMTUtMDUtMzEgMTc6MDg6NDYu ODczNTA2NTczICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZ3VpbGUvc2NtLXBy ZXR0eS1wcmludC5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDc2NzI0OTY2ICswMjAwCitAQCAtOTU4 LDcgKzk1OCw3IEBAIHBwc2NtX3ByaW50X2NoaWxkcmVuIChTQ00gcHJpbnRlciwgZW51bQogIGVu dW0gZXh0X2xhbmdfcmMKICBnZGJzY21fYXBwbHlfdmFsX3ByZXR0eV9wcmludGVyIChjb25zdCBz dHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX2RlZm4gKmV4dGxhbmcsCiAgCQkJCSBzdHJ1Y3QgdHlw ZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3 OTU0MjQtYml0cG9zLTIzb2YyNS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUu cGF0Y2gKaW5kZXggMDlmOGYyYS4uODYyZjNhYSAxMDA2NDQKLS0tIGEvZ2RiLXJoYno3OTU0MjQt Yml0cG9zLTIzb2YyNS5wYXRjaAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjNvZjI1LnBh dGNoCkBAIC0xMzcsMTAgKzEzNywxMCBAQCBDb250ZW50LVR5cGU6IHRleHQveC1wYXRjaAogQ29u dGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAogQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNo bWVudDsgZmlsZW5hbWU9Yml0cG9zLXRkZXAucGF0Y2gKIAotSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2FscGhhLXRkZXAuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2Fs cGhhLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv YWxwaGEtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTUuOTg4MDIzNjA3ICswMTAwCi0rKysgZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvYWxwaGEtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDg2 MDc4NDQwICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9hbHBoYS10ZGVw LmMJMjAxNS0wNS0zMSAxNzoxNTowMS4wNTY4NjgwMzUgKzAyMDAKKysrKyBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi9hbHBoYS10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40MTk4ODI4NDYgKzAy MDAKIEBAIC0yOTgsMTggKzI5OCwxOCBAQCBhbHBoYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBn ZGJhcmNoICpnCiAgewogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5 dGVfb3JkZXIgKGdkYmFyY2gpOwpAQCAtMTg0LDIwICsxODQsMjAgQEAgSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2FscGhhLXRkZXAuYwogIAkgICAgICBtZW1jcHkgKGFyZ19yZWdfYnVm ZmVyICsgb2Zmc2V0LCBjb250ZW50cywgdGxlbik7CiAgCSAgICAgIG9mZnNldCArPSB0bGVuOwog IAkgICAgICBjb250ZW50cyArPSB0bGVuOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2FtZDY0LXRkZXAuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2FtZDY0LXRkZXAu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvYW1kNjQtdGRl cC5jCTIwMTUtMDEtMDUgMjI6MTg6NTUuOTg5MDIzNjEyICswMTAwCi0rKysgZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvYW1kNjQtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDg3MDc4NDQ0ICsw MTAwCi1AQCAtNzAwLDcgKzcwMCw3IEBAIGFtZDY0X3JldHVybl92YWx1ZSAoc3RydWN0IGdkYmFy Y2ggKmdkYmEKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2FtZDY0LXRkZXAuYwky MDE1LTA1LTMxIDE3OjE1OjAxLjA1ODg2ODA0NyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL2FtZDY0LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjQwLjI1MzExMzcyMiArMDIwMAor QEAgLTcwMSw3ICs3MDEsNyBAQCBhbWQ2NF9yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJhcmNoICpn ZGJhCiAgCQkgICAgZ2RiX2J5dGUgKnJlYWRidWYsIGNvbnN0IGdkYl9ieXRlICp3cml0ZWJ1ZikK ICB7Ci0gICBlbnVtIGFtZDY0X3JlZ19jbGFzcyBjbGFzc1syXTsKKyAgIGVudW0gYW1kNjRfcmVn X2NsYXNzIHRoZWNsYXNzWzJdOwogLSAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKICsg IExPTkdFU1QgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOwogICAgc3RhdGljIGludCBpbnRlZ2Vy X3JlZ251bVtdID0geyBBTUQ2NF9SQVhfUkVHTlVNLCBBTUQ2NF9SRFhfUkVHTlVNIH07CiAgICBz dGF0aWMgaW50IHNzZV9yZWdudW1bXSA9IHsgQU1ENjRfWE1NMF9SRUdOVU0sIEFNRDY0X1hNTTFf UkVHTlVNIH07CiAgICBpbnQgaW50ZWdlcl9yZWcgPSAwOwotQEAgLTg1MSw4ICs4NTEsOCBAQCBh bWQ2NF9wdXNoX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlICpyCitAQCAtODUyLDggKzg1Miw4 IEBAIGFtZDY0X3B1c2hfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUgKnIKICAgIH07CiAgICBz dHJ1Y3QgdmFsdWUgKipzdGFja19hcmdzID0gYWxsb2NhIChuYXJncyAqIHNpemVvZiAoc3RydWN0 IHZhbHVlICopKTsKICAgIGludCBudW1fc3RhY2tfYXJncyA9IDA7CkBAIC0yMDgsMTkgKzIwOCwx OSBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYW1kNjQtdGRlcC5jCiAgICBpbnQg aW50ZWdlcl9yZWcgPSAwOwogICAgaW50IHNzZV9yZWcgPSAwOwogICAgaW50IGk7Ci1AQCAtODY0 LDcgKzg2NCw3IEBAIGFtZDY0X3B1c2hfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUgKnIKK0BA IC04NjUsNyArODY1LDcgQEAgYW1kNjRfcHVzaF9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAq cgogICAgZm9yIChpID0gMDsgaSA8IG5hcmdzOyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3Qg dHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZ3NbaV0pOwogLSAgICAgIGludCBsZW4gPSBUWVBF X0xFTkdUSCAodHlwZSk7CiArICAgICAgTE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7 Ci0gICAgICAgZW51bSBhbWQ2NF9yZWdfY2xhc3MgY2xhc3NbMl07CisgICAgICAgZW51bSBhbWQ2 NF9yZWdfY2xhc3MgdGhlY2xhc3NbMl07CiAgICAgICAgaW50IG5lZWRlZF9pbnRlZ2VyX3JlZ3Mg PSAwOwogICAgICAgIGludCBuZWVkZWRfc3NlX3JlZ3MgPSAwOwotSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUw LjIwMTQxMjI4Lm9yaWcvZ2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6 NTUuOTkwMDIzNjE2ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYW1kNjQtd2lu ZG93cy10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4wODcwNzg0NDQgKzAxMDAKKy0tLSBnZGIt Ny45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIwMTUtMDUtMzEg MTc6MTU6MDEuMDU5ODY4MDU0ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYW1k NjQtd2luZG93cy10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40MjE4ODI4NTkgKzAyMDAKIEBA IC0yODgsNyArMjg4LDcgQEAgYW1kNjRfd2luZG93c19yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJh cgogIAkJCSAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwK ICAJCQkgICAgZ2RiX2J5dGUgKnJlYWRidWYsIGNvbnN0IGdkYl9ieXRlICp3cml0ZWJ1ZikKQEAg LTIzMCwxMSArMjMwLDExIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hbWQ2NC13 aW5kb3dzLXRkZXAuYwogICAgaW50IHJlZ251bSA9IC0xOwogIAogICAgLyogU2VlIGlmIG91ciB2 YWx1ZSBpcyByZXR1cm5lZCB0aHJvdWdoIGEgcmVnaXN0ZXIuICBJZiBpdCBpcywgdGhlbgotSW5k ZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FybS10ZGVwLmMKK0luZGV4OiBnZGItNy45LjUw LjIwMTUwNTIwL2dkYi9hcm0tdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0 MTIyOC5vcmlnL2dkYi9hcm0tdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTUuOTk1MDIzNjM5ICsw MTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYXJtLXRkZXAuYwkyMDE1LTAxLTA1IDIy OjE5OjA4LjA4OTA3ODQ1MyArMDEwMAotQEAgLTM1MjQsNyArMzUyNCw3IEBAIGFybV92ZnBfY3By Y19yZWdfY2hhciAoZW51bSBhcm1fdmZwX2NwcmMKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9y aWcvZ2RiL2FybS10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4wNjk4NjgxMTYgKzAyMDAKKysr KyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9hcm0tdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMu NDI1ODgyODg0ICswMjAwCitAQCAtMzUzNyw3ICszNTM3LDcgQEAgYXJtX3ZmcF9jcHJjX3JlZ19j aGFyIChlbnVtIGFybV92ZnBfY3ByYwogICAgIGFycmF5KS4gIFZlY3RvciB0eXBlcyBhcmUgbm90 IGN1cnJlbnRseSBzdXBwb3J0ZWQsIG1hdGNoaW5nIHRoZQogICAgIGdlbmVyaWMgQUFQQ1Mgc3Vw cG9ydC4gICovCiAgCkBAIC0yNDMsNyArMjQzLDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL2FybS10ZGVwLmMKICBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5 cGUgKnQsCiAgCQkJICAgIGVudW0gYXJtX3ZmcF9jcHJjX2Jhc2VfdHlwZSAqYmFzZV90eXBlKQog IHsKLUBAIC0zNTg3LDcgKzM1ODcsNyBAQCBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3Ry dWN0IHR5cGUKK0BAIC0zNjAwLDcgKzM2MDAsNyBAQCBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0 ZSAoc3RydWN0IHR5cGUKICAKICAgICAgY2FzZSBUWVBFX0NPREVfQVJSQVk6CiAgICAgICAgewpA QCAtMjUyLDcgKzI1Miw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hcm0tdGRl cC5jCiAgCXVuc2lnbmVkIHVuaXRsZW47CiAgCWNvdW50ID0gYXJtX3ZmcF9jcHJjX3N1Yl9jYW5k aWRhdGUgKFRZUEVfVEFSR0VUX1RZUEUgKHQpLCBiYXNlX3R5cGUpOwogIAlpZiAoY291bnQgPT0g LTEpCi1AQCAtMzYwNywxMyArMzYwNywxNSBAQCBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAo c3RydWN0IHR5cGUKK0BAIC0zNjIwLDEzICszNjIwLDE1IEBAIGFybV92ZnBfY3ByY19zdWJfY2Fu ZGlkYXRlIChzdHJ1Y3QgdHlwZQogIAogICAgICBjYXNlIFRZUEVfQ09ERV9TVFJVQ1Q6CiAgICAg ICAgewpAQCAtMjcxLDcgKzI3MSw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9h cm0tdGRlcC5jCiAgCSAgICBpZiAoc3ViX2NvdW50ID09IC0xKQogIAkgICAgICByZXR1cm4gLTE7 CiAgCSAgICBjb3VudCArPSBzdWJfY291bnQ7Ci1AQCAtMzYzMywxMyArMzYzNSwxNSBAQCBhcm1f dmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUKK0BAIC0zNjQ2LDEzICszNjQ4LDE1 IEBAIGFybV92ZnBfY3ByY19zdWJfY2FuZGlkYXRlIChzdHJ1Y3QgdHlwZQogIAogICAgICBjYXNl IFRZUEVfQ09ERV9VTklPTjoKICAgICAgICB7CkBAIC0yOTAsNyArMjkwLDcgQEAgSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2FybS10ZGVwLmMKICAJICAgIGlmIChzdWJfY291bnQgPT0g LTEpCiAgCSAgICAgIHJldHVybiAtMTsKICAJICAgIGNvdW50ID0gKGNvdW50ID4gc3ViX2NvdW50 ID8gY291bnQgOiBzdWJfY291bnQpOwotQEAgLTM2NzUsNyArMzY3OSw3IEBAIGFybV92ZnBfY2Fs bF9jYW5kaWRhdGUgKHN0cnVjdCB0eXBlICp0LAorQEAgLTM2ODgsNyArMzY5Miw3IEBAIGFybV92 ZnBfY2FsbF9jYW5kaWRhdGUgKHN0cnVjdCB0eXBlICp0LAogIAkJCWludCAqY291bnQpCiAgewog ICAgZW51bSBhcm1fdmZwX2NwcmNfYmFzZV90eXBlIGIgPSBWRlBfQ1BSQ19VTktOT1dOOwpAQCAt Mjk5LDcgKzI5OSw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hcm0tdGRlcC5j CiAgICBpZiAoYyA8PSAwIHx8IGMgPiA0KQogICAgICByZXR1cm4gMDsKICAgICpiYXNlX3R5cGUg PSBiOwotQEAgLTM3NTYsNyArMzc2MCw3IEBAIGFybV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBn ZGJhcmNoICpnZGIKK0BAIC0zNzY5LDcgKzM3NzMsNyBAQCBhcm1fcHVzaF9kdW1teV9jYWxsIChz dHJ1Y3QgZ2RiYXJjaCAqZ2RiCiAgCiAgICBmb3IgKGFyZ251bSA9IDA7IGFyZ251bSA8IG5hcmdz OyBhcmdudW0rKykKICAgICAgewpAQCAtMzA4LDEwICszMDgsMTAgQEAgSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2FybS10ZGVwLmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGU7 CiAgICAgICAgc3RydWN0IHR5cGUgKnRhcmdldF90eXBlOwogICAgICAgIGVudW0gdHlwZV9jb2Rl IHR5cGVjb2RlOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2F2ci10ZGVwLmMKK0lu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9hdnItdGRlcC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9hdnItdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6 NTUuOTk2MDIzNjQzICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYXZyLXRkZXAu YwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA4OTA3ODQ1MyArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAx NTA1MjAub3JpZy9nZGIvYXZyLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA3MTg2ODEyOSAr MDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2F2ci10ZGVwLmMJMjAxNS0wNS0zMSAx NzoxNTowMy40MjU4ODI4ODQgKzAyMDAKIEBAIC0xMTk2LDEzICsxMTk2LDE0IEBAIGF2cl9kdW1t eV9pZCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHMKICAKICBzdHJ1Y3Qgc3RhY2tfaXRlbQpA QCAtMzQ1LDEwICszNDUsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2F2ci10 ZGVwLmMKICAKICAgICAgICAvKiBDYWxjdWxhdGUgdGhlIHBvdGVudGlhbCBsYXN0IHJlZ2lzdGVy IG5lZWRlZC4gICovCiAgICAgICAgbGFzdF9yZWdudW0gPSByZWdudW0gLSAobGVuICsgKGxlbiAm IDEpKTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9iZmluLXRkZXAuYworSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2JmaW4tdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9iZmluLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU1 Ljk5NjAyMzY0MyArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2JmaW4tdGRlcC5j CTIwMTUtMDEtMDUgMjI6MTk6MDguMDkwMDc4NDU4ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1 MDUyMC5vcmlnL2dkYi9iZmluLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA3MTg2ODEyOSAr MDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2JmaW4tdGRlcC5jCTIwMTUtMDUtMzEg MTc6MTU6MDMuNDI2ODgyODkwICswMjAwCiBAQCAtNTA0LDcgKzUwNCw3IEBAIGJmaW5fcHVzaF9k dW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKICAgIGdkYl9ieXRlIGJ1Zls0XTsKICAgIGlu dCBpOwpAQCAtMzY3LDEwICszNjcsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2JmaW4tdGRlcC5jCiAgCiAgICAgICAgc3AgLT0gY29udGFpbmVyX2xlbjsKICAgICAgICB3cml0 ZV9tZW1vcnkgKHNwLCB2YWx1ZV9jb250ZW50c193cml0ZWFibGUgKGFyZ3NbaV0pLCBjb250YWlu ZXJfbGVuKTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jcmlzLXRkZXAuYworSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NyaXMtdGRlcC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9jcmlzLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4 OjU1Ljk5NzAyMzY0OCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NyaXMtdGRl cC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDkwMDc4NDU4ICswMTAwCistLS0gZ2RiLTcuOS41MC4y MDE1MDUyMC5vcmlnL2dkYi9jcmlzLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA3Mzg2ODE0 MiArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NyaXMtdGRlcC5jCTIwMTUtMDUt MzEgMTc6MTU6MDMuNDI3ODgyODk3ICswMjAwCiBAQCAtNjYzLDEzICs2NjMsMTMgQEAgc3RhdGlj IENPUkVfQUREUiBjcmlzX3Vud2luZF9zcCAoc3RydWN0CiAgCiAgc3RydWN0IHN0YWNrX2l0ZW0K QEAgLTQwNSwxMCArNDA1LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jcmlz LXRkZXAuYwogICAgICAgIAogICAgICAgIC8qIEhvdyBtYXkgcmVnaXN0ZXJzIHdvcnRoIG9mIHN0 b3JhZ2UgZG8gd2UgbmVlZCBmb3IgdGhpcyBhcmd1bWVudD8gICovCiAgICAgICAgcmVnX2RlbWFu ZCA9IChsZW4gLyA0KSArIChsZW4gJSA0ICE9IDAgPyAxIDogMCk7Ci1JbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvaDgzMDAtdGRlcC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvaDgzMDAtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmln L2dkYi9oODMwMC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1NS45OTgwMjM2NTIgKzAxMDAKLSsr KyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9oODMwMC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTow OC4wOTEwNzg0NjMgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2g4MzAw LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA3NDg2ODE0OCArMDIwMAorKysrIGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL2g4MzAwLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQyNzg4Mjg5 NyArMDIwMAogQEAgLTYzOSw3ICs2MzksNyBAQCBoODMwMF9wdXNoX2R1bW15X2NhbGwgKHN0cnVj dCBnZGJhcmNoICpnCiAgCQkgICAgICAgaW50IHN0cnVjdF9yZXR1cm4sIENPUkVfQUREUiBzdHJ1 Y3RfYWRkcikKICB7CkBAIC00NDEsMTEgKzQ0MSwxMSBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvaDgzMDAtdGRlcC5jCiAgCiAgCSAgICAgIGZvciAob2Zmc2V0ID0gMDsgb2Zmc2V0 IDwgcGFkZGVkX2xlbjsgb2Zmc2V0ICs9IHdvcmRzaXplKQogIAkJewotSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2hwcGEtdGRlcC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvaHBwYS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcv Z2RiL2hwcGEtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTUuOTk5MDIzNjU3ICswMTAwCi0rKysg Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaHBwYS10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4w OTEwNzg0NjMgKzAxMDAKLUBAIC05NjAsNyArOTYwLDcgQEAgaHBwYTY0X3B1c2hfZHVtbXlfY2Fs bCAoc3RydWN0IGdkYmFyY2ggKgorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvaHBw YS10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4wNzY4NjgxNjAgKzAyMDAKKysrKyBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi9ocHBhLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQyODg4Mjkw MyArMDIwMAorQEAgLTk5MSw3ICs5OTEsNyBAQCBocHBhNjRfcHVzaF9kdW1teV9jYWxsIChzdHJ1 Y3QgZ2RiYXJjaCAqCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbaV07 CiAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV90eXBlIChhcmcpOwpAQCAtNDU0LDcg KzQ1NCw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9ocHBhLXRkZXAuYwogICAg ICAgIGNvbnN0IGJmZF9ieXRlICp2YWxidWY7CiAgICAgICAgYmZkX2J5dGUgZnB0cmJ1Zls4XTsK ICAgICAgICBpbnQgcmVnbnVtOwotQEAgLTExNTUsNyArMTE1NSw3IEBAIGhwcGE2NF9yZXR1cm5f dmFsdWUgKHN0cnVjdCBnZGJhcmNoICpnZGIKK0BAIC0xMTg2LDcgKzExODYsNyBAQCBocHBhNjRf cmV0dXJuX3ZhbHVlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCiAgCQkgICAgIHN0cnVjdCB0eXBlICp0 eXBlLCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAogIAkJICAgICBnZGJfYnl0ZSAqcmVhZGJ1 ZiwgY29uc3QgZ2RiX2J5dGUgKndyaXRlYnVmKQogIHsKQEAgLTQ2MywxMCArNDYzLDEwIEBAIElu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9ocHBhLXRkZXAuYwogICAgaW50IHJlZ251bSwg b2Zmc2V0OwogIAogICAgaWYgKGxlbiA+IDE2KQotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2kzODYtZGFyd2luLXRkZXAuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2kz ODYtZGFyd2luLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3Jp Zy9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTUuOTk5MDIzNjU3ICsw MTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCTIwMTUt MDEtMDUgMjI6MTk6MDguMDkxMDc4NDYzICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5v cmlnL2dkYi9pMzg2LWRhcndpbi10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4wNzY4NjgxNjAg KzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9pMzg2LWRhcndpbi10ZGVwLmMJMjAx NS0wNS0zMSAxNzoxNTowMy40Mjg4ODI5MDMgKzAyMDAKIEBAIC0xNjMsNyArMTYzLDcgQEAgaTM4 Nl9kYXJ3aW5fcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYQogIAogICAgZm9yICh3cml0ZV9w YXNzID0gMDsgd3JpdGVfcGFzcyA8IDI7IHdyaXRlX3Bhc3MrKykKQEAgLTQ3NiwxMSArNDc2LDEx IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pMzg2LWRhcndpbi10ZGVwLmMKICAg ICAgICBpbnQgbnVtX20xMjggPSAwOwogIAogICAgICAgIGlmIChzdHJ1Y3RfcmV0dXJuKQotSW5k ZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2kzODYtdGRlcC5jCitJbmRleDogZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvaTM4Ni10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIw MTQxMjI4Lm9yaWcvZ2RiL2kzODYtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDAyMDIzNjcx ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaTM4Ni10ZGVwLmMJMjAxNS0wMS0w NSAyMjoxOTowOC4wOTIwNzg0NjcgKzAxMDAKLUBAIC0yNjQzLDcgKzI2NDMsNyBAQCBpMzg2X3B1 c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCistLS0gZ2RiLTcuOS41MC4yMDE1MDUy MC5vcmlnL2dkYi9pMzg2LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA4Mjg2ODE5OCArMDIw MAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2kzODYtdGRlcC5jCTIwMTUtMDUtMzEgMTc6 MTU6MDMuNDMwODgyOTE1ICswMjAwCitAQCAtMjY1MSw3ICsyNjUxLDcgQEAgaTM4Nl9wdXNoX2R1 bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAogICAgZ2RiX2J5dGUgYnVmWzRdOwogICAgaW50 IGk7CiAgICBpbnQgd3JpdGVfcGFzczsKQEAgLTQ4OSw3ICs0ODksNyBAQCBJbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvaTM4Ni10ZGVwLmMKICAKICAgIC8qIERldGVybWluZSB0aGUgdG90 YWwgc3BhY2UgcmVxdWlyZWQgZm9yIGFyZ3VtZW50cyBhbmQgc3RydWN0CiAgICAgICByZXR1cm4g YWRkcmVzcyBpbiBhIGZpcnN0IHBhc3MgKGFsbG93aW5nIGZvciAxNi1ieXRlLWFsaWduZWQKLUBA IC0yNjUxLDcgKzI2NTEsNyBAQCBpMzg2X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gg KmdkCitAQCAtMjY1OSw3ICsyNjU5LDcgQEAgaTM4Nl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBn ZGJhcmNoICpnZAogIAogICAgZm9yICh3cml0ZV9wYXNzID0gMDsgd3JpdGVfcGFzcyA8IDI7IHdy aXRlX3Bhc3MrKykKICAgICAgewpAQCAtNDk4LDcgKzQ5OCw3IEBAIEluZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9pMzg2LXRkZXAuYwogIAogICAgICAgIGlmIChzdHJ1Y3RfcmV0dXJuKQog IAl7Ci1AQCAtMjY2OCw3ICsyNjY4LDcgQEAgaTM4Nl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBn ZGJhcmNoICpnZAorQEAgLTI2NzYsNyArMjY3Niw3IEBAIGkzODZfcHVzaF9kdW1teV9jYWxsIChz dHJ1Y3QgZ2RiYXJjaCAqZ2QKICAKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykK ICAJewpAQCAtNTA3LDcgKzUwNyw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9p Mzg2LXRkZXAuYwogIAogIAkgIGlmICh3cml0ZV9wYXNzKQogIAkgICAgewotQEAgLTI4NzUsNyAr Mjg3NSw3IEBAIGkzODZfcmVnX3N0cnVjdF9yZXR1cm5fcCAoc3RydWN0IGdkYmFyY2gKK0BAIC0y ODgzLDcgKzI4ODMsNyBAQCBpMzg2X3JlZ19zdHJ1Y3RfcmV0dXJuX3AgKHN0cnVjdCBnZGJhcmNo CiAgewogICAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJj aCk7CiAgICBlbnVtIHR5cGVfY29kZSBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKQEAgLTUxNiw3 ICs1MTYsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaTM4Ni10ZGVwLmMKICAK ICAgIGdkYl9hc3NlcnQgKGNvZGUgPT0gVFlQRV9DT0RFX1NUUlVDVAogICAgICAgICAgICAgICAg fHwgY29kZSA9PSBUWVBFX0NPREVfVU5JT04KLUBAIC0zNjIxLDcgKzM2MjEsNyBAQCBzdGF0aWMg aW50CitAQCAtMzYyOSw3ICszNjI5LDcgQEAgc3RhdGljIGludAogIGkzODZfY29udmVydF9yZWdp c3Rlcl9wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICAJCQkgaW50IHJlZ251bSwgc3RydWN0 IHR5cGUgKnR5cGUpCiAgewpAQCAtNTI1LDcgKzUyNSw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9pMzg2LXRkZXAuYwogIAogICAgLyogVmFsdWVzIG1heSBiZSBzcHJlYWQgYWNy b3NzIG11bHRpcGxlIHJlZ2lzdGVycy4gIE1vc3QgZGVidWdnaW5nCiAgICAgICBmb3JtYXRzIGFy ZW4ndCBleHByZXNzaXZlIGVub3VnaCB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbnMsIHNvCi1AQCAt MzY1NCw3ICszNjU0LDcgQEAgaTM4Nl9yZWdpc3Rlcl90b192YWx1ZSAoc3RydWN0IGZyYW1lX2lu ZgorQEAgLTM2NjIsNyArMzY2Miw3IEBAIGkzODZfcmVnaXN0ZXJfdG9fdmFsdWUgKHN0cnVjdCBm cmFtZV9pbmYKICAJCQlpbnQgKm9wdGltaXplZHAsIGludCAqdW5hdmFpbGFibGVwKQogIHsKICAg IHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKQEAgLTUz NCw3ICs1MzQsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaTM4Ni10ZGVwLmMK ICAKICAgIGlmIChpMzg2X2ZwX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQogICAgICByZXR1 cm4gaTM4N19yZWdpc3Rlcl90b192YWx1ZSAoZnJhbWUsIHJlZ251bSwgdHlwZSwgdG8sCi1AQCAt MzY5MCw3ICszNjkwLDcgQEAgc3RhdGljIHZvaWQKK0BAIC0zNjk4LDcgKzM2OTgsNyBAQCBzdGF0 aWMgdm9pZAogIGkzODZfdmFsdWVfdG9fcmVnaXN0ZXIgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFt ZSwgaW50IHJlZ251bSwKICAJCQlzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKmZy b20pCiAgewpAQCAtNTQzLDExICs1NDMsMTEgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2kzODYtdGRlcC5jCiAgCiAgICBpZiAoaTM4Nl9mcF9yZWdudW1fcCAoZ2V0X2ZyYW1lX2Fy Y2ggKGZyYW1lKSwgcmVnbnVtKSkKICAgICAgewotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2lxMjAwMC10ZGVwLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9pcTIwMDAt dGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9pcTIw MDAtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDAzMDIzNjc1ICswMTAwCi0rKysgZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvaXEyMDAwLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA5MjA3 ODQ2NyArMDEwMAotQEAgLTY1Myw4ICs2NTMsOSBAQCBpcTIwMDBfcHVzaF9kdW1teV9jYWxsIChz dHJ1Y3QgZ2RiYXJjaCAqCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9pcTIwMDAt dGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMDgzODY4MjA0ICswMjAwCisrKysgZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvaXEyMDAwLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQzMTg4Mjky MiArMDIwMAorQEAgLTY1MSw4ICs2NTEsOSBAQCBpcTIwMDBfcHVzaF9kdW1teV9jYWxsIChzdHJ1 Y3QgZ2RiYXJjaCAqCiAgICBjb25zdCBiZmRfYnl0ZSAqdmFsOwogICAgYmZkX2J5dGUgYnVmWzRd OwogICAgc3RydWN0IHR5cGUgKnR5cGU7CkBAIC01NTksMTAgKzU1OSwxMCBAQCBJbmRleDogZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvaXEyMDAwLXRkZXAuYwogICAgLyogVXNlZCB0byBjb3B5IHN0 cnVjdCBhcmd1bWVudHMgaW50byB0aGUgc3RhY2suICAqLwogICAgQ09SRV9BRERSIHN0cnVjdF9w dHI7CiAgCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTMyci10ZGVwLmMKK0luZGV4 OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tMzJyLXRkZXAuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbTMyci10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1 Ni4wMDMwMjM2NzUgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tMzJyLXRkZXAu YwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA5MzA3ODQ3MiArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAx NTA1MjAub3JpZy9nZGIvbTMyci10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4wODM4NjgyMDQg KzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tMzJyLXRkZXAuYwkyMDE1LTA1LTMx IDE3OjE1OjAzLjQzMTg4MjkyMiArMDIwMAogQEAgLTY4Nyw3ICs2ODcsNyBAQCBtMzJyX3B1c2hf ZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCiAgICBDT1JFX0FERFIgcmVndmFsOwogICAg Z2RiX2J5dGUgKnZhbDsKQEAgLTU3MiwxMCArNTcyLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9tMzJyLXRkZXAuYwogIAogICAgLyogRmlyc3QgZm9yY2Ugc3AgdG8gYSA0LWJ5 dGUgYWxpZ25tZW50LiAgKi8KICAgIHNwID0gc3AgJiB+MzsKLUluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9tNjhrLXRkZXAuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL202 OGstdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9t NjhrLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU2LjAwMzAyMzY3NSArMDEwMAotKysrIGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL202OGstdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDkzMDc4 NDcyICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9tNjhrLXRkZXAuYwky MDE1LTA1LTMxIDE3OjE1OjAxLjA4NDg2ODIxMCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL202OGstdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMuNDMyODgyOTI4ICswMjAwCiBA QCAtMzgyLDcgKzM4Miw3IEBAIG02OGtfcmVnX3N0cnVjdF9yZXR1cm5fcCAoc3RydWN0IGdkYmFy Y2gKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJh cmNoKTsKQEAgLTU5OCwxMCArNTk4LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9tNjhrLXRkZXAuYwogIAogICAgICAgIC8qIE5vbi1zY2FsYXJzIGJpZ2dlciB0aGFuIDQgYnl0 ZXMgYXJlIGxlZnQgYWxpZ25lZCwgb3RoZXJzIGFyZQogIAkgcmlnaHQgYWxpZ25lZC4gICovCi1J bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTg4ay10ZGVwLmMKK0luZGV4OiBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi9tODhrLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAu MjAxNDEyMjgub3JpZy9nZGIvbTg4ay10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1Ni4wMDQwMjM2 ODAgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tODhrLXRkZXAuYwkyMDE1LTAx LTA1IDIyOjE5OjA4LjA5MzA3ODQ3MiArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3Jp Zy9nZGIvbTg4ay10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4wODU4NjgyMTcgKzAyMDAKKysr KyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tODhrLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAz LjQzMjg4MjkyOCArMDIwMAogQEAgLTI1NywxMyArMjU3LDEzIEBAIG04OGtfc3RvcmVfYXJndW1l bnRzIChzdHJ1Y3QgcmVnY2FjaGUgKnIKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9 IGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNoZSk7CkBAIC02MjksMTAgKzYyOSwxMCBAQCBJbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTg4ay10ZGVwLmMKICAKICAgICAgICBpZiAobTg4 a19pbl9yZWdpc3Rlcl9wICh0eXBlKSkKICAJewotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL21lcC10ZGVwLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tZXAtdGRlcC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9tZXAtdGRlcC5j CTIwMTUtMDEtMDUgMjI6MTg6NTYuMDA1MDIzNjg0ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvbWVwLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA5MzA3ODQ3MiArMDEwMAor LS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvbWVwLXRkZXAuYwkyMDE1LTA1LTMxIDE3 OjE1OjAxLjA4Njg2ODIyMyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL21lcC10 ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40MzM4ODI5MzQgKzAyMDAKIEBAIC0yMjY5LDcgKzIy NjksNyBAQCBwdXNoX2xhcmdlX2FyZ3VtZW50cyAoQ09SRV9BRERSIHNwLCBpbnQKICAKICAgIGZv ciAoaSA9IDA7IGkgPCBhcmdjOyBpKyspCkBAIC02NDIsMTAgKzY0MiwxMCBAQCBJbmRleDogZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvbWVwLXRkZXAuYwogIAogICAgICAgIGlmIChhcmdfbGVuID4g TUVQX0dQUl9TSVpFKQogICAgICAgICAgewotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L21pcHMtdGRlcC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbWlwcy10ZGVwLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL21pcHMtdGRlcC5j CTIwMTUtMDEtMDUgMjI6MTg6NTYuMDA5MDIzNzAyICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvbWlwcy10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4wOTUwNzg0ODEgKzAxMDAK Ky0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL21pcHMtdGRlcC5jCTIwMTUtMDUtMzEg MTc6MTU6MDEuMDk0ODY4MjczICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbWlw cy10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40MzU4ODI5NDcgKzAyMDAKIEBAIC00NTUsNyAr NDU1LDcgQEAgc3RhdGljIHZvaWQKICBtaXBzX3hmZXJfcmVnaXN0ZXIgKHN0cnVjdCBnZGJhcmNo ICpnZGJhcmNoLCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAogIAkJICAgIGludCByZWdfbnVt LCBpbnQgbGVuZ3RoLApAQCAtNzkxLDEwICs3OTEsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL21pcHMtdGRlcC5jCiAgCiAgICAgICAgdmFsID0gdmFsdWVfY29udGVudHMgKGFy Zyk7CiAgCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbW4xMDMwMC10ZGVwLmMKK0lu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tbjEwMzAwLXRkZXAuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbW4xMDMwMC10ZGVwLmMJMjAxNS0wMS0w NSAyMjoxODo1Ni4wMTAwMjM3MDcgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9t bjEwMzAwLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA5NjA3ODQ4NSArMDEwMAorLS0tIGdk Yi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvbW4xMDMwMC10ZGVwLmMJMjAxNS0wNS0zMSAxNzox NTowMS4wOTU4NjgyNzkgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tbjEwMzAw LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQzNTg4Mjk0NyArMDIwMAogQEAgLTEyMjUsNyAr MTIyNSw3IEBAIG1uMTAzMDBfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaAogICAgZW51 bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwog ICAgY29uc3QgaW50IHB1c2hfc2l6ZSA9IHJlZ2lzdGVyX3NpemUgKGdkYmFyY2gsIEVfUENfUkVH TlVNKTsKQEAgLTgwNCwxMCArODA0LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9tbjEwMzAwLXRkZXAuYwogICAgaW50IHN0YWNrX29mZnNldCA9IDA7CiAgICBpbnQgYXJnbnVt OwogICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9tdC10ZGVwLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tdC10ZGVwLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL210LXRkZXAuYwkyMDE1 LTAxLTA1IDIyOjE4OjU2LjAxMDAyMzcwNyArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL210LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA5NjA3ODQ4NSArMDEwMAorLS0tIGdk Yi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvbXQtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEu MDk2ODY4Mjg2ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbXQtdGRlcC5jCTIw MTUtMDUtMzEgMTc6MTU6MDMuNDM2ODgyOTUzICswMjAwCiBAQCAtNzgxLDkgKzc4MSw5IEBAIG10 X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYmEKICAgIGdkYl9ieXRlIGJ1ZltN VF9NQVhfU1RSVUNUX1NJWkVdOwogICAgaW50IGFyZ3JlZyA9IE1UXzFTVF9BUkdSRUc7CkBAIC04 MjAsMTAgKzgyMCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbXQtdGRlcC5j CiAgICBpbnQgaSwgajsKICAKICAgIC8qIEZpcnN0IGhhbmRsZSBob3dldmVyIG1hbnkgYXJncyB3 ZSBjYW4gZml0IGludG8gTVRfMVNUX0FSR1JFRyB0aHJ1Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvcHBjLXN5c3YtdGRlcC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv cHBjLXN5c3YtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmln L2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1Ni4wMTEwMjM3MTEgKzAxMDAK LSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAxNS0wMS0wNSAy MjoxOTowOC4wOTYwNzg0ODUgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2Ri L3BwYy1zeXN2LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA5Nzg2ODI5MiArMDIwMAorKysr IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3BwYy1zeXN2LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1 OjAzLjQzNjg4Mjk1MyArMDIwMAogQEAgLTY2LDcgKzY2LDcgQEAgcHBjX3N5c3ZfYWJpX3B1c2hf ZHVtbXlfY2FsbCAoc3RydWN0IGdkYgogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBn ZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgaW50IG9wZW5jbF9hYmkgPSBwcGNfc3lz dl91c2Vfb3BlbmNsX2FiaSAodmFsdWVfdHlwZSAoZnVuY3Rpb24pKTsKQEAgLTg2OCwxMSArODY4 LDExIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9wcGMtc3lzdi10ZGVwLmMKICAK ICAgIC8qIEVuZm9yY2UgYWxpZ25tZW50IG9mIHN0YWNrIGxvY2F0aW9uLCBpZiByZXF1ZXN0ZWQu ICAqLwogICAgaWYgKGFsaWduID4gdGRlcC0+d29yZHNpemUpCi1JbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvcmw3OC10ZGVwLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9y bDc4LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv cmw3OC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1Ni4wMTEwMjM3MTEgKzAxMDAKLSsrKyBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9ybDc4LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA5NjA3 ODQ4NSArMDEwMAotQEAgLTEyNTEsOCArMTI1MSw4IEBAIHJsNzhfcHVzaF9kdW1teV9jYWxsIChz dHJ1Y3QgZ2RiYXJjaCAqZ2QKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3JsNzgt dGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMDk3ODY4MjkyICswMjAwCisrKysgZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvcmw3OC10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40Mzc4ODI5NTkg KzAyMDAKK0BAIC0xMzMzLDggKzEzMzMsOCBAQCBybDc4X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0 IGdkYmFyY2ggKmdkCiAgICBmb3IgKGkgPSBuYXJncyAtIDE7IGkgPj0gMDsgaS0tKQogICAgICB7 CiAgICAgICAgc3RydWN0IHR5cGUgKnZhbHVlX3R5cGUgPSB2YWx1ZV9lbmNsb3NpbmdfdHlwZSAo YXJnc1tpXSk7CkBAIC04ODMsMTAgKzg4MywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvcmw3OC10ZGVwLmMKICAKICAgICAgICBzcCAtPSBjb250YWluZXJfbGVuOwogICAgICAg IHdyaXRlX21lbW9yeSAocmw3OF9tYWtlX2RhdGFfYWRkcmVzcyAoc3ApLAotSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCitJbmRleDogZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvcnM2MDAwLWFpeC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUw LjIwMTQxMjI4Lm9yaWcvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYu MDEyMDIzNzE2ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcnM2MDAwLWFpeC10 ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4wOTcwNzg0OTAgKzAxMDAKKy0tLSBnZGItNy45LjUw LjIwMTUwNTIwLm9yaWcvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEu MDk4ODY4Mjk4ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcnM2MDAwLWFpeC10 ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40Mzc4ODI5NTkgKzAyMDAKIEBAIC0xODYsOSArMTg2 LDkgQEAgcnM2MDAwX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgogICAgc3RydWN0 IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CiAgICBlbnVtIGJm ZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CkBAIC05 MDgsMzIgKzkwOCwzMiBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcnM2MDAwLWFp eC10ZGVwLmMKICAKICAgICAgICBpZiAoYXJnYnl0ZXMpCiAgCXsKLUluZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9zMzkwLWxpbnV4LXRkZXAuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL3MzOTAtbGludXgtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0 MTIyOC5vcmlnL2dkYi9zMzkwLWxpbnV4LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU2LjAxMzAy MzcyMCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3MzOTAtbGludXgtdGRlcC5j CTIwMTUtMDEtMDUgMjI6MTk6MDguMDk3MDc4NDkwICswMTAwCi1AQCAtMjMzNCw3ICsyMzM0LDcg QEAgaXNfZmxvYXRfbGlrZSAoc3RydWN0IHR5cGUgKnR5cGUpCi0gCistLS0gZ2RiLTcuOS41MC4y MDE1MDUyMC5vcmlnL2dkYi9zMzkwLWxpbnV4LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA5 OTg2ODMwNCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3MzOTAtbGludXgtdGRl cC5jCTIwMTUtMDUtMzEgMTc6MTY6MTMuMjg1MzIwNzY5ICswMjAwCitAQCAtMjQ2Myw3ICsyNDYz LDcgQEAgczM5MF9mdW5jdGlvbl9hcmdfdmVjdG9yIChzdHJ1Y3QgdHlwZSAqdAorIC8qIERldGVy bWluZSB3aGV0aGVyIE4gaXMgYSBwb3dlciBvZiB0d28uICAqLwogIAogIHN0YXRpYyBpbnQKIC1p c19wb3dlcl9vZl90d28gKHVuc2lnbmVkIGludCBuKQogK2lzX3Bvd2VyX29mX3R3byAoVUxPTkdF U1QgbikKICB7Ci0gICByZXR1cm4gKChuICYgKG4gLSAxKSkgPT0gMCk7CisgICByZXR1cm4gbiAm JiAoKG4gJiAobiAtIDEpKSA9PSAwKTsKICB9Ci1AQCAtMjUyMCw3ICsyNTIwLDcgQEAgczM5MF9w dXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAotICAgICAgIHsKLSAJc3RydWN0IHZh bHVlICphcmcgPSBhcmdzW2ldOwotIAlzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYg KHZhbHVlX3R5cGUgKGFyZykpOwotLQl1bnNpZ25lZCBsZW5ndGggPSBUWVBFX0xFTkdUSCAodHlw ZSk7Ci0rCVVMT05HRVNUIGxlbmd0aCA9IFRZUEVfTEVOR1RIICh0eXBlKTsKK0BAIC0yNTIwLDcg KzI1MjAsNyBAQCBzMzkwX2hhbmRsZV9hcmcgKHN0cnVjdCBzMzkwX2FyZ19zdGF0ZSAqCisgCQkg ZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIsIGludCBpc191bm5hbWVkKQorIHsKKyAgIHN0cnVj dCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CistICB1bnNp Z25lZCBpbnQgbGVuZ3RoID0gVFlQRV9MRU5HVEggKHR5cGUpOworKyAgVUxPTkdFU1QgbGVuZ3Ro ID0gVFlQRV9MRU5HVEggKHR5cGUpOworICAgaW50IHdyaXRlX21vZGUgPSBhcy0+cmVnY2FjaGUg IT0gTlVMTDsKICAKLSAJaWYgKHMzOTBfZnVuY3Rpb25fYXJnX3Bhc3NfYnlfcmVmZXJlbmNlICh0 eXBlKSkKLSAJICB7Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc2NvcmUtdGRlcC5j CisgICBpZiAoczM5MF9mdW5jdGlvbl9hcmdfZmxvYXQgKHR5cGUpKQorSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3Njb3JlLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAu MjAxNDEyMjgub3JpZy9nZGIvc2NvcmUtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDEzMDIz NzIwICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc2NvcmUtdGRlcC5jCTIwMTUt MDEtMDUgMjI6MTk6MDguMDk3MDc4NDkwICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5v cmlnL2dkYi9zY29yZS10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4xMDA4NjgzMTEgKzAyMDAK KysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zY29yZS10ZGVwLmMJMjAxNS0wNS0zMSAxNzox NTowMy40Mzk4ODI5NzIgKzAyMDAKIEBAIC01MTQsNyArNTE0LDcgQEAgc2NvcmVfcHVzaF9kdW1t eV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIg PSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgaW50IGFyZ251bTsKQEAgLTk0Mywx MCArOTQzLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zY29yZS10ZGVwLmMK ICAgIENPUkVfQUREUiBzdGFja19vZmZzZXQgPSAwOwogICAgQ09SRV9BRERSIGFkZHIgPSAwOwog IAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3NoLXRkZXAuYworSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL3NoLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAu MjAxNDEyMjgub3JpZy9nZGIvc2gtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDE0MDIzNzI1 ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc2gtdGRlcC5jCTIwMTUtMDEtMDUg MjI6MTk6MDguMDk4MDc4NDk0ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dk Yi9zaC10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4xMDE4NjgzMTcgKzAyMDAKKysrKyBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi9zaC10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40Mzk4ODI5 NzIgKzAyMDAKIEBAIC04MDUsNyArODA1LDcgQEAgc2hfc2tpcF9wcm9sb2d1ZSAoc3RydWN0IGdk YmFyY2ggKmdkYmFyYwogIHN0YXRpYyBpbnQKICBzaF91c2Vfc3RydWN0X2NvbnZlbnRpb24gKGlu dCByZW5lc2FzX2FiaSwgc3RydWN0IHR5cGUgKnR5cGUpCkBAIC05ODUsMTAgKzk4NSwxMCBAQCBJ bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc2gtdGRlcC5jCiAgICBpbnQgcGFzc19vbl9z dGFjayA9IDA7CiAgICBpbnQgbGFzdF9yZWdfYXJnID0gSU5UX01BWDsKICAKLUluZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9zaDY0LXRkZXAuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL3NoNjQtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5v cmlnL2dkYi9zaDY0LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU2LjAxNTAyMzcyOSArMDEwMAot KysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3NoNjQtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6 MDguMDk4MDc4NDk0ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9zaDY0 LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjEwMjg2ODMyMyArMDIwMAorKysrIGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3NoNjQtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMuNDQwODgyOTc4 ICswMjAwCiBAQCAtMTA1Niw3ICsxMDU2LDcgQEAgc2g2NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVj dCBnZGJhcmNoICpnZAogIAkJICAgICAgQ09SRV9BRERSIHN0cnVjdF9hZGRyKQogIHsKQEAgLTEw MDcsMTAgKzEwMDcsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3NoNjQtdGRl cC5jCiAgICBpbnQgYXJncmVnX3NpemU7CiAgICBpbnQgZnBfYXJnc1sxMl07CiAgCi1JbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc3BhcmMtdGRlcC5jCitJbmRleDogZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvc3BhcmMtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0 MTIyOC5vcmlnL2dkYi9zcGFyYy10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1Ni4wMTYwMjM3MzQg KzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zcGFyYy10ZGVwLmMJMjAxNS0wMS0w NSAyMjoxOTowOC4wOTgwNzg0OTQgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcv Z2RiL3NwYXJjLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjEwMzg2ODMyOSArMDIwMAorKysr IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3NwYXJjLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAz LjQ0MTg4Mjk4NCArMDIwMAogQEAgLTUyNSw3ICs1MjUsNyBAQCBzcGFyYzMyX3N0b3JlX2FyZ3Vt ZW50cyAoc3RydWN0IHJlZ2NhY2hlCiAgICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKICAg ICAgewpAQCAtMTAyMCwxMCArMTAyMCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvc3BhcmMtdGRlcC5jCiAgCiAgICAgICAgaWYgKHNwYXJjX3N0cnVjdHVyZV9vcl91bmlvbl9w ICh0eXBlKQogIAkgIHx8IChzcGFyY19mbG9hdGluZ19wICh0eXBlKSAmJiBsZW4gPT0gMTYpCi1J bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc3BhcmM2NC10ZGVwLmMKK0luZGV4OiBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi9zcGFyYzY0LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1 Ni4wMTYwMjM3MzQgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zcGFyYzY0LXRk ZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA5OTA3ODQ5OSArMDEwMAorLS0tIGdkYi03LjkuNTAu MjAxNTA1MjAub3JpZy9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4xMDQ4 NjgzMzYgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zcGFyYzY0LXRkZXAuYwky MDE1LTA1LTMxIDE3OjE1OjAzLjQ0MTg4Mjk4NCArMDIwMAogQEAgLTYzNiw3ICs2MzYsOCBAQCBz cGFyYzY0XzE2X2J5dGVfYWxpZ25fcCAoc3RydWN0IHR5cGUgKnR5CiAgCiAgc3RhdGljIHZvaWQK QEAgLTEwNzksMTAgKzEwNzksMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Nw YXJjNjQtdGRlcC5jCiAgICAgICAgaW50IHJlZ251bSA9IC0xOwogICAgICAgIGdkYl9ieXRlIGJ1 ZlsxNl07CiAgCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc3B1LXRkZXAuYworSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3NwdS10ZGVwLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3NwdS10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1 Ni4wMTcwMjM3MzkgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zcHUtdGRlcC5j CTIwMTUtMDEtMDUgMjI6MTk6MDguMDk5MDc4NDk5ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1 MDUyMC5vcmlnL2dkYi9zcHUtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMTA1ODY4MzQyICsw MjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvc3B1LXRkZXAuYwkyMDE1LTA1LTMxIDE3 OjE1OjAzLjQ0Mjg4Mjk5MCArMDIwMAogQEAgLTE0MzAsNyArMTQzMCw3IEBAIHNwdV9wdXNoX2R1 bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGIKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9 IGFyZ3NbaV07CiAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1 ZV90eXBlIChhcmcpKTsKQEAgLTExMDEsMTAgKzExMDEsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL3NwdS10ZGVwLmMKICAJICBpbnQgcHJlZmVycmVkX3Nsb3Q7CiAgCSAgCiAg CSAgaWYgKHNwdV9zY2FsYXJfdmFsdWVfcCAodHlwZSkpCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvdGljNngtdGRlcC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGlj NngtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90 aWM2eC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1Ni4wMTgwMjM3NDMgKzAxMDAKLSsrKyBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi90aWM2eC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4wOTkw Nzg0OTkgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3RpYzZ4LXRkZXAu YwkyMDE1LTA1LTMxIDE3OjE1OjAxLjEwNjg2ODM0OCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL3RpYzZ4LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQ0Mjg4Mjk5MCArMDIw MAogQEAgLTg5NSw3ICs4OTUsNyBAQCB0aWM2eF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJh cmNoICpnCiAgICBpbnQgYXJncmVnID0gMDsKICAgIGludCBhcmdudW07CkBAIC0xMTQyLDEwICsx MTQyLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90aWM2eC10ZGVwLmMKICAK ICAJICBhZGRyID0gc3AgKyBzdGFja19vZmZzZXQ7CiAgCSAgd3JpdGVfbWVtb3J5IChhZGRyLCB2 YWwsIGxlbik7Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGlsZWd4LXRkZXAuYwor SW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3RpbGVneC10ZGVwLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNS0wMS0w NSAyMjoxODo1Ni4wMTgwMjM3NDMgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90 aWxlZ3gtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMTAwMDc4NTAzICswMTAwCistLS0gZ2Ri LTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi90aWxlZ3gtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6 MDEuMTA3ODY4MzU1ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGlsZWd4LXRk ZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQ0Mjg4Mjk5MCArMDIwMAogQEAgLTI4OCw3ICsyODgs NyBAQCB0aWxlZ3hfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCiAgICBDT1JFX0FE RFIgc3RhY2tfZGVzdCA9IHNwOwogICAgaW50IGFyZ3JlZyA9IFRJTEVHWF9SMF9SRUdOVU07CkBA IC0xMTU1LDEwICsxMTU1LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90aWxl Z3gtdGRlcC5jCiAgICBzdGF0aWMgY29uc3QgZ2RiX2J5dGUgZm91cl96ZXJvX3dvcmRzWzE2XSA9 IHsgMCB9OwogIAogICAgLyogSWYgc3RydWN0X3JldHVybiBpcyAxLCB0aGVuIHRoZSBzdHJ1Y3Qg cmV0dXJuIGFkZHJlc3Mgd2lsbAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Y4NTAt dGRlcC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdjg1MC10ZGVwLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3Y4NTAtdGRlcC5jCTIwMTUt MDEtMDUgMjI6MTg6NTYuMDE5MDIzNzQ4ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvdjg1MC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4xMDAwNzg1MDMgKzAxMDAKKy0tLSBn ZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3Y4NTAtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6 MDEuMTA3ODY4MzU1ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdjg1MC10ZGVw LmMJMjAxNS0wNS0zMSAxNzoxNTowMy40NDM4ODI5OTcgKzAyMDAKIEBAIC0xMDE5LDcgKzEwMTks NyBAQCB2ODUwX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCiAgICBlbnVtIGJm ZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBp bnQgYXJncmVnOwpAQCAtMTE3NywxMCArMTE3NywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvdjg1MC10ZGVwLmMKICAgICAgICBnZGJfYnl0ZSAqdmFsOwogICAgICAgIGdkYl9i eXRlIHZhbGJ1Zlt2ODUwX3JlZ19zaXplXTsKICAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi92YXgtdGRlcC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmF4LXRkZXAu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvdmF4LXRkZXAu YwkyMDE1LTAxLTA1IDIyOjE4OjU2LjAxOTAyMzc0OCArMDEwMAotKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3ZheC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4xMDAwNzg1MDMgKzAxMDAK Ky0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3ZheC10ZGVwLmMJMjAxNS0wNS0zMSAx NzoxNTowMS4xMDg4NjgzNjEgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YXgt dGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMuNDQzODgyOTk3ICswMjAwCiBAQCAtMTExLDcgKzEx MSw3IEBAIHZheF9zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcmUKICAgIHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hlKTsKICAgIGVu dW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsK QEAgLTExOTksMTAgKzExOTksMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Zh eC10ZGVwLmMKICAKICAgICAgICBzcCAtPSAobGVuICsgMykgJiB+MzsKICAgICAgICBjb3VudCAr PSAobGVuICsgMykgLyA0OwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3hzdG9ybXkx Ni10ZGVwLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi94c3Rvcm15MTYtdGRlcC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi94c3Rvcm15MTYt dGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDIwMDIzNzUyICswMTAwCi0rKysgZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIveHN0b3JteTE2LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjEwMDA3 ODUwMyArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIveHN0b3JteTE2LXRk ZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjEwODg2ODM2MSArMDIwMAorKysrIGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL3hzdG9ybXkxNi10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40NDM4ODI5 OTcgKzAyMDAKIEBAIC0yMzMsOCArMjMzLDkgQEAgeHN0b3JteTE2X3B1c2hfZHVtbXlfY2FsbCAo c3RydWN0IGdkYmFyYwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5 dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgQ09SRV9BRERSIHN0YWNrX2Rlc3QgPSBzcDsKQEAgLTEy MTUsMTAgKzEyMTUsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3hzdG9ybXkx Ni10ZGVwLmMKICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CiAgICBnZGJfYnl0ZSBidWZbeHN0b3Jt eTE2X3BjX3NpemVdOwogIAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3h0ZW5zYS10 ZGVwLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi94dGVuc2EtdGRlcC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi94dGVuc2EtdGRlcC5jCTIw MTUtMDEtMDUgMjI6MTg6NTYuMDIxMDIzNzU3ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIveHRlbnNhLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjEwMTA3ODUwOCArMDEwMAor LS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIveHRlbnNhLXRkZXAuYwkyMDE1LTA1LTMx IDE3OjE1OjAxLjExMDg2ODM3MyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3h0 ZW5zYS10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40NDQ4ODMwMDMgKzAyMDAKIEBAIC0xNjQ2 LDggKzE2NDYsNyBAQCB4dGVuc2Ffc3RvcmVfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgdHlwZSAqCiAg CiAgICAgICAgaWYgKGxlbiA+IChjYWxsc2l6ZSA+IDggPyA4IDogMTYpKQoKZGlmZiAtLWdpdCBh L2dkYi11cHN0cmVhbS5wYXRjaCBiL2dkYi11cHN0cmVhbS5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMzExNmE1My4uMDAwMDAwMAotLS0gYS9nZGItdXBzdHJlYW0ucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi1jb21taXQgN2EyNzBlMGM5YmEwZWI3Mzhh NGMzMDI1OGFiMjljMDk5NjNmY2Q0ZAotQXV0aG9yOiBBbGV4YW5kZXIgS2xpbW92IDxhbHNlcmts aUBpbmJveC5ydT4KLURhdGU6ICAgVHVlIEphbiAyNyAxOTo1Njo0NSAyMDE1ICswMjAwCi0KLSAg ICBGaXggYnVpbGQgZmFpbHVyZSBpbiBzeW1maWxlLmM6OnVubWFwX292ZXJsYXlfY29tbWFuZCAo R0NDNSBidWcpCi0gICAgCi0gICAgQ29tcGlsYXRpb24gb2YgKEdEQikgNy45LjUwLjIwMTUwMTI3 LWN2cyB3aXRoIChHQ0MpIDUuMC4wIDIwMTUwMTI3Ci0gICAgZmFpbHMgd2l0aAotICAgIAotICAg IEluIGZpbGUgaW5jbHVkZWQgZnJvbSBzeW1maWxlLmM6MzI6MDoKLSAgICBzeW1maWxlLmM6IElu IGZ1bmN0aW9uICd1bm1hcF9vdmVybGF5X2NvbW1hbmQnOgotICAgIG9iamZpbGVzLmg6NjI4OjM6 IGVycm9yOiAnc2VjJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMKLSAgICBmdW5j dGlvbiBbLVdlcnJvcj1tYXliZS11bmluaXRpYWxpemVkXQotICAgICAgIGZvciAob3NlY3QgPSBv YmpmaWxlLT5zZWN0aW9uczsgb3NlY3QgPCBvYmpmaWxlLT5zZWN0aW9uc19lbmQ7IG9zZWN0Kysp IFwKLSAgICAgICBeCi0gICAgc3ltZmlsZS5jOjM0NDI6MjM6IG5vdGU6ICdzZWMnIHdhcyBkZWNs YXJlZCBoZXJlCi0gICAgICAgc3RydWN0IG9ial9zZWN0aW9uICpzZWM7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi0gICAgY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBl cnJvcnMKLSAgICBtYWtlWzJdOiAqKiogW3N5bWZpbGUub10gRXJyb3IgMQotICAgIG1ha2VbMl06 IExlYXZpbmcgZGlyZWN0b3J5IGBnZGIvZ2RiJwotICAgIAotICAgIFdoaWxlIHRoZSBidWcgd2Fz IHJlcG9ydGVkIHRvIEdDQyBhcwotICAgIDxodHRwczovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3No b3dfYnVnLmNnaT9pZD02NDgyMz4sCi0gICAgdGhlIGF0dGFjaGVkIHBhdGNoIHNpbXBseSBpbml0 aWFsaXplcyBzZWMgd2l0aCBOVUxMLgotICAgIAotICAgIGdkYi9DaGFuZ2VMb2c6Ci0gICAgCi0g ICAgICAgICAgICAqIHN5bWZpbGUuYyAodW5tYXBfb3ZlcmxheV9jb21tYW5kKTogSW5pdGlhbGl6 ZSBzZWMgdG8gTlVMTC4KLSAgICAKLSAgICBUZXN0ZWQgb24geDg2XzY0LWxpbnV4LgotCi0jIyMg YS9nZGIvQ2hhbmdlTG9nCi0jIyMgYi9nZGIvQ2hhbmdlTG9nCi0jIyAtMSwzICsxLDcgQEAKLSsy MDE1LTAxLTI5ICBKb2VsIEJyb2JlY2tlciAgPGJyb2JlY2tlckBhZGFjb3JlLmNvbT4gICh0aW55 IHBhdGNoKQotKwotKwkqIHN5bWZpbGUuYyAodW5tYXBfb3ZlcmxheV9jb21tYW5kKTogSW5pdGlh bGl6ZSBzZWMgdG8gTlVMTC4KLSsKLSAyMDE1LTAxLTI3ICBEb3VnIEV2YW5zICA8ZGplQGdvb2ds ZS5jb20+Ci0gCi0gCSogTkVXUzogTWVudGlvbiBnZGIuT2JqZmlsZS51c2VybmFtZS4KLS0tLSBh L2dkYi9zeW1maWxlLmMKLSsrKyBiL2dkYi9zeW1maWxlLmMKLUBAIC0zNDM5LDcgKzM0MzksNyBA QCBzdGF0aWMgdm9pZAotIHVubWFwX292ZXJsYXlfY29tbWFuZCAoY2hhciAqYXJncywgaW50IGZy b21fdHR5KQotIHsKLSAgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlOwotLSAgc3RydWN0IG9ial9z ZWN0aW9uICpzZWM7Ci0rICBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKnNlYyA9IE5VTEw7Ci0gCi0gICBp ZiAoIW92ZXJsYXlfZGVidWdnaW5nKQotICAgICBlcnJvciAoXygiT3ZlcmxheSBkZWJ1Z2dpbmcg bm90IGVuYWJsZWQuICAiCgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC1zdHJpbmdidC1maXgu cGF0Y2ggYi9nZGItdmxhLWludGVsLXN0cmluZ2J0LWZpeC5wYXRjaAppbmRleCA2Nzg1MGYzLi41 NmNlZmYyIDEwMDY0NAotLS0gYS9nZGItdmxhLWludGVsLXN0cmluZ2J0LWZpeC5wYXRjaAorKysg Yi9nZGItdmxhLWludGVsLXN0cmluZ2J0LWZpeC5wYXRjaApAQCAtMzEsMzAgKzMxLDMwIEBAIEph bgogQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCiBDb250ZW50LURp c3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPSJ2bGFzdHJpbmdvbmx5LnBhdGNoIgogCi1JbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2RidHlwZXMuYworSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL2dkYnR5cGVzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQx MjI4Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNS0wMS0wOCAxODoxNToxOC40NzU2ODI1MjMgKzAx MDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDEtMDggMTg6 Mzk6MDEuNDIzMTM0NzAwICswMTAwCi1AQCAtMTY4NCw2ICsxNjg0LDcgQEAgaXNfZHluYW1pY190 eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdAotICAgICAgIHJldHVybiAhaGFzX3N0YXRpY19y YW5nZSAoVFlQRV9SQU5HRV9EQVRBICh0eXBlKSk7CistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5v cmlnL2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDUtMzEgMTY6MTQ6MDQuMTY0NTMzODMzICswMjAwCisr KysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZ2RidHlwZXMuYwkyMDE1LTA1LTMxIDE2OjE0OjA1 Ljg0NDU0NTM0NCArMDIwMAorQEAgLTE4NTEsNiArMTg1MSw3IEBAIGlzX2R5bmFtaWNfdHlwZV9p bnRlcm5hbCAoc3RydWN0IHR5cGUgKnQKKyAgICAgICB9CiAgCiAgICAgIGNhc2UgVFlQRV9DT0RF X0FSUkFZOgogKyAgICBjYXNlIFRZUEVfQ09ERV9TVFJJTkc6CiAgICAgICAgewogIAlnZGJfYXNz ZXJ0IChUWVBFX05GSUVMRFMgKHR5cGUpID09IDEpOwogIAotQEAgLTE5OTIsNiArMTk5Myw3IEBA IHJlc29sdmVfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHkKK0BAIC0yMTkyLDYgKzIx OTMsNyBAQCByZXNvbHZlX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5CiAgCSAgfQog IAogIAljYXNlIFRZUEVfQ09ERV9BUlJBWToKICsJY2FzZSBUWVBFX0NPREVfU1RSSU5HOgotIAkg IHJlc29sdmVkX3R5cGUgPSByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKHR5cGUsIGFkZHIpOworIAkg IHJlc29sdmVkX3R5cGUgPSByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKHR5cGUsIGFkZHJfc3RhY2sp OwogIAkgIGJyZWFrOwogIAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZyYW1lLXN0dWIuZjkwCitJbmRleDogZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJh bWUtc3R1Yi5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS1zdHViLmY5MAkyMDE1LTAxLTA4IDE4OjE1 OjE4Ljg5NzY4NDQzNSArMDEwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZyYW1lLXN0dWIuZjkwCTIwMTUtMDUtMzEgMTY6 MTQ6MDUuODQ0NTQ1MzQ0ICswMjAwCiBAQCAtMCwwICsxLDI0IEBACiArISBDb3B5cmlnaHQgMjAx MCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC04MCwxMCArODAsMTAgQEAg SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5h bWljLW90aGVyLWZyYW1lLXN0dWIuZjkKICsgIHJlYWwgOjogZHVtbXkKICsgIGR1bW15ID0gMQog K2VuZCBzdWJyb3V0aW5lIGJhcgotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZyYW1lLmV4cAorSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZyYW1l LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAw MDAwMCArMDAwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9keW5hbWljLW90aGVyLWZyYW1lLmV4cAkyMDE1LTAxLTA4IDE4OjE1OjE4Ljg5NzY4NDQz NSArMDEwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9keW5hbWljLW90aGVyLWZyYW1lLmV4cAkyMDE1LTA1LTMxIDE2OjE0OjA1Ljg0NTU0NTM1MSAr MDIwMAogQEAgLTAsMCArMSwzOSBAQAogKyMgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xMjQsMTAgKzEyNCwxMCBAQCBJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUu ZXhwCiArfQogKwogK2dkYl90ZXN0ICJidCIge2ZvbyBcKHN0cmluZz0naGVsbG8nLip9Ci1JbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMt b3RoZXItZnJhbWUuZjkwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUuZjkwCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUu ZjkwCTIwMTUtMDEtMDggMTg6MTU6MTguODk3Njg0NDM1ICswMTAwCisrKysgZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUuZjkw CTIwMTUtMDUtMzEgMTY6MTQ6MDUuODQ1NTQ1MzUxICswMjAwCiBAQCAtMCwwICsxLDM2IEBACiAr ISBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0x NjUsMyArMTY1LDE3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS5mOTAKICsgIGVuZCBpbnRlcmZhY2UKICsg IGNhbGwgZm9vICgnaGVsbG8nKQogK2VuZAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAKKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBn ZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3Ry aW5ncy5leHAJMjAxNS0wNS0zMSAxNjoxNDowNC4xNjc1MzM4NTQgKzAyMDAKKysrKyBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCTIw MTUtMDUtMzEgMTY6MTQ6MzEuMDczNzE4MjAxICswMjAwCitAQCAtMzMsOSArMzMsNiBAQCBnZGJf Y29udGludWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXItYWxsCisgZ2RiX3Rlc3QgInByaW50IHZh cl9jaGFyIiBcCisgICAiID0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoxMCBcXClcXCkg JHtoZXh9IiBcCisgICAicHJpbnQgdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIGZpcnN0IHRpbWUi CistZ2RiX3Rlc3QgInByaW50ICp2YXJfY2hhciIgXAorLSAgIiA9ICdcXFxcMDAwXFxcXDAwMFxc XFwwMDBcXFxcMDAwXFxcXDAwMFxcXFwwMDBcXFxcMDAwXFxcXDAwMFxcXFwwMDBcXFxcMDAwJyIg XAorLSAgInByaW50ICp2YXJfY2hhciBhZnRlciBhbGxvY2F0ZWQgZmlyc3QgdGltZSIKKyBnZGJf dGVzdCAid2hhdGlzIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwq MTAgXFwpIiBcCisgICAid2hhdGlzIHZhcl9jaGFyIGZpcnN0IHRpbWUiCisgZ2RiX3Rlc3QgInB0 eXBlIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMTAgXFwpIiBc CgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC5wYXRjaCBiL2dkYi12bGEtaW50ZWwucGF0Y2gK aW5kZXggOWI4NmJkZS4uODVjMDM2NCAxMDA2NDQKLS0tIGEvZ2RiLXZsYS1pbnRlbC5wYXRjaAor KysgYi9nZGItdmxhLWludGVsLnBhdGNoCkBAIC02LDEwICs2LDEwIEBAIEdJVCBzbmFwc2hvdDoK IGNvbW1pdCA1MTFiZmY1MjAzNzJmZmMxMGZhMmZmNTY5YzE3NmJkZjFlNmU0NzVkCiAKIAotSW5k ZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2MtdmFscHJpbnQuYworSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL2MtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAu MjAxNTAxMjYub3JpZy9nZGIvYy12YWxwcmludC5jCTIwMTUtMDEtMjYgMDc6NDc6MjUuODMyNzU4 MzE0ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvYy12YWxwcmludC5jCTIwMTUt MDEtMjYgMDc6NDc6NDIuMzk0ODI5ODYxICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5v cmlnL2dkYi9jLXZhbHByaW50LmMJMjAxNS0wNS0yOSAwODoyNzowMi42NTc3MTczMjYgKzAyMDAK KysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jLXZhbHByaW50LmMJMjAxNS0wNS0yOSAwODoy NzowNi4yNTM3NDAyMDkgKzAyMDAKIEBAIC01MzcsNyArNTM3LDE2IEBAIGNfdmFsdWVfcHJpbnQg KHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1Y3QKICAJewogIAkgIC8qIG5vcm1hbCBjYXNlICovCkBA IC0yOCwxMiArMjgsMTIgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2MtdmFscHJp bnQuYwogIAkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIikgIik7CiAgCX0KICAgICAgfQot SW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2R3YXJmMmxvYy5oCitJbmRleDogZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvZHdhcmYybG9jLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44Ljkw LjIwMTUwMTI2Lm9yaWcvZ2RiL2R3YXJmMmxvYy5oCTIwMTUtMDEtMjYgMDc6NDc6MjUuODMyNzU4 MzE0ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvZHdhcmYybG9jLmgJMjAxNS0w MS0yNiAwNzo0Nzo0Mi4zOTU4Mjk4NjUgKzAxMDAKLUBAIC0xMTEsNiArMTExLDExIEBAIGludCBk d2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKGNvbnN0IHN0cnUKLSAJCQkgICAgICBDT1JFX0FERFIg YWRkcmVzcywKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2R3YXJmMmxvYy5oCTIw MTUtMDUtMjkgMDg6Mjc6MDIuNjU4NzE3MzMzICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvZHdhcmYybG9jLmgJMjAxNS0wNS0yOSAwODoyNzowNi4yNTM3NDAyMDkgKzAyMDAKK0BA IC0xMzEsNiArMTMxLDExIEBAIGludCBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKGNvbnN0IHN0 cnUKKyAJCQkgICAgICBzdHJ1Y3QgcHJvcGVydHlfYWRkcl9pbmZvICphZGRyX3N0YWNrLAogIAkJ CSAgICAgIENPUkVfQUREUiAqdmFsdWUpOwogIAogKy8qIENoZWNrcyBpZiBhIGR3YXJmIGxvY2F0 aW9uIGRlZmluaXRpb24gaXMgdmFsaWQuCkBAIC00NCwxMSArNDQsMTEgQEAgSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAxMjYvZ2RiL2R3YXJmMmxvYy5oCiAgLyogQSBoZWxwZXIgZm9yIHRoZSBjb21w aWxlciBpbnRlcmZhY2UgdGhhdCBjb21waWxlcyBhIHNpbmdsZSBkeW5hbWljCiAgICAgcHJvcGVy dHkgdG8gQyBjb2RlLgogIAotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2R3YXJmMnJl YWQuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAxMjYub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTUt MDEtMjYgMDc6NDc6MjUuODQ1NzU4MzcxICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNi9n ZGIvZHdhcmYycmVhZC5jCTIwMTUtMDEtMjYgMDc6NDg6MDUuODMzOTMxMTE2ICswMTAwCi1AQCAt MTg1NSw2ICsxODU1LDEyIEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NfY3VfaW5jbHVkZXMgKHZvaWQp OworLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTUtMDUt MjkgMDg6Mjc6MDIuNjc2NzE3NDQ3ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv ZHdhcmYycmVhZC5jCTIwMTUtMDUtMjkgMTA6MDQ6NTIuMjcyNjAwMjEyICswMjAwCitAQCAtMTg2 OCw2ICsxODY4LDEyIEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NfY3VfaW5jbHVkZXMgKHZvaWQpOwog IHN0YXRpYyB2b2lkIGNoZWNrX3Byb2R1Y2VyIChzdHJ1Y3QgZHdhcmYyX2N1ICpjdSk7CiAgCiAg c3RhdGljIHZvaWQgZnJlZV9saW5lX2hlYWRlcl92b2lkcCAodm9pZCAqYXJnKTsKQEAgLTYxLDcg KzYxLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2R3YXJmMnJlYWQuYwogIAwK ICAvKiBWYXJpb3VzIGNvbXBsYWludHMgYWJvdXQgc3ltYm9sIHJlYWRpbmcgdGhhdCBkb24ndCBh Ym9ydCB0aGUgcHJvY2Vzcy4gICovCiAgCi1AQCAtMTQzNTQsMjkgKzE0MzYwLDkyIEBAIHJlYWRf dGFnX3N0cmluZ190eXBlIChzdHJ1Y3QgZGllX2luZm8gKmQKK0BAIC0xNDQzMSwyOSArMTQ0Mzcs OTIgQEAgcmVhZF90YWdfc3RyaW5nX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZAogICAgc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfb2JqZmlsZV9hcmNoIChvYmpmaWxlKTsKICAgIHN0cnVj dCB0eXBlICp0eXBlLCAqcmFuZ2VfdHlwZSwgKmluZGV4X3R5cGUsICpjaGFyX3R5cGU7CiAgICBz dHJ1Y3QgYXR0cmlidXRlICphdHRyOwpAQCAtMTYxLDcgKzE2MSw3IEBAIEluZGV4OiBnZGItNy44 LjkwLjIwMTUwMTI2L2dkYi9kd2FyZjJyZWFkLmMKICAgIGNoYXJfdHlwZSA9IGxhbmd1YWdlX3N0 cmluZ19jaGFyX3R5cGUgKGN1LT5sYW5ndWFnZV9kZWZuLCBnZGJhcmNoKTsKICAgIHR5cGUgPSBj cmVhdGVfc3RyaW5nX3R5cGUgKE5VTEwsIGNoYXJfdHlwZSwgcmFuZ2VfdHlwZSk7CiAgCi1AQCAt MTQ2OTMsMTMgKzE0NzYyLDE1IEBAIHJlYWRfYmFzZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3QKK0BAIC0xNDc3NiwxMyArMTQ4NDUsMTUgQEAgcmVhZF9iYXNlX3R5cGUgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdAogICAgcmV0dXJuIHNldF9kaWVfdHlwZSAoZGllLCB0eXBlLCBjdSk7 CiAgfQogIApAQCAtMTc4LDcgKzE3OCw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dk Yi9kd2FyZjJyZWFkLmMKICB7CiAgICBzdHJ1Y3QgZHdhcmYyX3Byb3BlcnR5X2JhdG9uICpiYXRv bjsKICAgIHN0cnVjdCBvYnN0YWNrICpvYnN0YWNrID0gJmN1LT5vYmpmaWxlLT5vYmpmaWxlX29i c3RhY2s7Ci1AQCAtMTQ3MTIsOCArMTQ3ODMsMjUgQEAgYXR0cl90b19keW5hbWljX3Byb3AgKGNv bnN0IHN0cnVjdCBhdHRyaQorQEAgLTE0Nzk1LDggKzE0ODY2LDI1IEBAIGF0dHJfdG9fZHluYW1p Y19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmkKICAgICAgICBiYXRvbiA9IG9ic3RhY2tfYWxsb2Mg KG9ic3RhY2ssIHNpemVvZiAoKmJhdG9uKSk7CiAgICAgICAgYmF0b24tPnJlZmVyZW5jZWRfdHlw ZSA9IE5VTEw7CiAgICAgICAgYmF0b24tPmxvY2V4cHIucGVyX2N1ID0gY3UtPnBlcl9jdTsKQEAg LTIwNiwzOCArMjA2LDM4IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9kd2FyZjJy ZWFkLmMKICAgICAgICBwcm9wLT5kYXRhLmJhdG9uID0gYmF0b247CiAgICAgICAgcHJvcC0+a2lu ZCA9IFBST1BfTE9DRVhQUjsKICAgICAgICBnZGJfYXNzZXJ0IChwcm9wLT5kYXRhLmJhdG9uICE9 IE5VTEwpOwotQEAgLTE0NzQzLDggKzE0ODMxLDI4IEBAIGF0dHJfdG9fZHluYW1pY19wcm9wIChj b25zdCBzdHJ1Y3QgYXR0cmkKLSAJICBiYXRvbiA9IG9ic3RhY2tfYWxsb2MgKG9ic3RhY2ssIHNp emVvZiAoKmJhdG9uKSk7Ci0gCSAgYmF0b24tPnJlZmVyZW5jZWRfdHlwZSA9IGRpZV90eXBlICh0 YXJnZXRfZGllLCB0YXJnZXRfY3UpOwotIAkgIGJhdG9uLT5sb2NleHByLnBlcl9jdSA9IGN1LT5w ZXJfY3U7Ci0tCSAgYmF0b24tPmxvY2V4cHIuc2l6ZSA9IERXX0JMT0NLICh0YXJnZXRfYXR0cikt PnNpemU7Ci0tCSAgYmF0b24tPmxvY2V4cHIuZGF0YSA9IERXX0JMT0NLICh0YXJnZXRfYXR0cikt PmRhdGE7Ci0rCi0rCSAgaWYgKGFkZGl0aW9uYWxfZGF0YSAhPSBOVUxMICYmIGFkZGl0aW9uYWxf ZGF0YV9zaXplID4gMCkKLSsJICAgIHsKLSsJICAgICAgZ2RiX2J5dGUgKmRhdGE7Ci0rCi0rCSAg ICAgIGRhdGEgPSBvYnN0YWNrX2FsbG9jICgmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywK LSsJICAgICAgICAgICAgICBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5zaXplICsgYWRkaXRpb25h bF9kYXRhX3NpemUpOwotKwkgICAgICBtZW1jcHkgKGRhdGEsIERXX0JMT0NLICh0YXJnZXRfYXR0 ciktPmRhdGEsCi0rCSAgICAgICAgICAgICAgRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZSk7 Ci0rCSAgICAgIG1lbWNweSAoZGF0YSArIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUsCi0r CSAgICAgICAgICAgICAgYWRkaXRpb25hbF9kYXRhLCBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7Ci0r Ci0rCSAgICAgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBkYXRhOwotKwkgICAgICBiYXRvbi0+bG9j ZXhwci5zaXplID0gKERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUKLSsJICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArIGFkZGl0aW9uYWxfZGF0YV9zaXplKTsKLSsJICAgIH0KLSsJICBl bHNlCi0rCSAgICB7Ci0rCSAgICAgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBEV19CTE9DSyAodGFy Z2V0X2F0dHIpLT5kYXRhOwotKwkgICAgICBiYXRvbi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sg KHRhcmdldF9hdHRyKS0+c2l6ZTsKLSsJICAgIH0KLSsKLSAJICBwcm9wLT5kYXRhLmJhdG9uID0g YmF0b247Ci0gCSAgcHJvcC0+a2luZCA9IFBST1BfTE9DRVhQUjsKLSAJICBnZGJfYXNzZXJ0IChw cm9wLT5kYXRhLmJhdG9uICE9IE5VTEwpOwotQEAgLTE0Nzc5LDcgKzE0ODg3LDcgQEAgcmVhZF9z dWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZQorQEAgLTE0ODMyLDggKzE0OTIwLDI4 IEBAIGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmkKKyAJCWJhdG9uID0g b2JzdGFja19hbGxvYyAob2JzdGFjaywgc2l6ZW9mICgqYmF0b24pKTsKKyAJCWJhdG9uLT5yZWZl cmVuY2VkX3R5cGUgPSBkaWVfdHlwZSAodGFyZ2V0X2RpZSwgdGFyZ2V0X2N1KTsKKyAJCWJhdG9u LT5sb2NleHByLnBlcl9jdSA9IGN1LT5wZXJfY3U7CistCQliYXRvbi0+bG9jZXhwci5zaXplID0g RFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZTsKKy0JCWJhdG9uLT5sb2NleHByLmRhdGEgPSBE V19CTE9DSyAodGFyZ2V0X2F0dHIpLT5kYXRhOworKworKwkJaWYgKGFkZGl0aW9uYWxfZGF0YSAh PSBOVUxMICYmIGFkZGl0aW9uYWxfZGF0YV9zaXplID4gMCkKKysJCSAgeworKwkJICAgIGdkYl9i eXRlICpkYXRhOworKworKwkJICAgIGRhdGEgPSBvYnN0YWNrX2FsbG9jICgmY3UtPm9iamZpbGUt Pm9iamZpbGVfb2JzdGFjaywKKysJCQkgICAgRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZSAr IGFkZGl0aW9uYWxfZGF0YV9zaXplKTsKKysJCSAgICBtZW1jcHkgKGRhdGEsIERXX0JMT0NLICh0 YXJnZXRfYXR0ciktPmRhdGEsCisrCQkJICAgIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUp OworKwkJICAgIG1lbWNweSAoZGF0YSArIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUsCisr CQkJICAgIGFkZGl0aW9uYWxfZGF0YSwgYWRkaXRpb25hbF9kYXRhX3NpemUpOworKworKwkJICAg IGJhdG9uLT5sb2NleHByLmRhdGEgPSBkYXRhOworKwkJICAgIGJhdG9uLT5sb2NleHByLnNpemUg PSAoRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZQorKwkJCQkJICAgKyBhZGRpdGlvbmFsX2Rh dGFfc2l6ZSk7CisrCQkgIH0KKysJCWVsc2UKKysJCSAgeworKwkJICAgIGJhdG9uLT5sb2NleHBy LmRhdGEgPSBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5kYXRhOworKwkJICAgIGJhdG9uLT5sb2Nl eHByLnNpemUgPSBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5zaXplOworKwkJICB9CisrCisgCQlw cm9wLT5kYXRhLmJhdG9uID0gYmF0b247CisgCQlwcm9wLT5raW5kID0gUFJPUF9MT0NFWFBSOwor IAkJZ2RiX2Fzc2VydCAocHJvcC0+ZGF0YS5iYXRvbiAhPSBOVUxMKTsKK0BAIC0xNDg4Nyw3ICsx NDk5NSw3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUKICAgIHN0 cnVjdCB0eXBlICpiYXNlX3R5cGUsICpvcmlnX2Jhc2VfdHlwZTsKICAgIHN0cnVjdCB0eXBlICpy YW5nZV90eXBlOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTI0Niw3ICsyNDYsNyBA QCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvZHdhcmYycmVhZC5jCiAgICBpbnQgbG93 X2RlZmF1bHRfaXNfdmFsaWQ7CiAgICBpbnQgaGlnaF9ib3VuZF9pc19jb3VudCA9IDA7CiAgICBj b25zdCBjaGFyICpuYW1lOwotQEAgLTE0Nzk5LDcgKzE0OTA3LDkgQEAgcmVhZF9zdWJyYW5nZV90 eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZQorQEAgLTE0OTA3LDcgKzE1MDE1LDkgQEAgcmVhZF9z dWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZQogIAogICAgbG93LmtpbmQgPSBQUk9Q X0NPTlNUOwogICAgaGlnaC5raW5kID0gUFJPUF9DT05TVDsKQEAgLTI1Niw3ICsyNTYsNyBAQCBJ bmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvZHdhcmYycmVhZC5jCiAgCiAgICAvKiBTZXQg TE9XX0RFRkFVTFRfSVNfVkFMSUQgaWYgY3VycmVudCBsYW5ndWFnZSBhbmQgRFdBUkYgdmVyc2lv biBhbGxvdwogICAgICAgb21pdHRpbmcgRFdfQVRfbG93ZXJfYm91bmQuICAqLwotQEAgLTE0ODMy LDE5ICsxNDk0MiwyNiBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll CitAQCAtMTQ5NDAsMTkgKzE1MDUwLDI2IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUKICAgICAgICBicmVhazsKICAgICAgfQogIApAQCAtMjg2LDcgKzI4Niw3IEBA IEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9kd2FyZjJyZWFkLmMKICAJewogIAkgIC8q IElmIGJvdW5kcyBhcmUgY29uc3RhbnQgZG8gdGhlIGZpbmFsIGNhbGN1bGF0aW9uIGhlcmUuICAq LwogIAkgIGlmIChsb3cua2luZCA9PSBQUk9QX0NPTlNUICYmIGhpZ2gua2luZCA9PSBQUk9QX0NP TlNUKQotQEAgLTE0OTA4LDcgKzE1MDI1LDcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZQorQEAgLTE1MDE2LDcgKzE1MTMzLDcgQEAgcmVhZF9zdWJyYW5nZV90eXBl IChzdHJ1Y3QgZGllX2luZm8gKmRpZQogICAgICAgICYmICFUWVBFX1VOU0lHTkVEIChiYXNlX3R5 cGUpICYmIChoaWdoLmRhdGEuY29uc3RfdmFsICYgbmVnYXRpdmVfbWFzaykpCiAgICAgIGhpZ2gu ZGF0YS5jb25zdF92YWwgfD0gbmVnYXRpdmVfbWFzazsKICAKQEAgLTI5NSwxOCArMjk1LDEwIEBA IEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9kd2FyZjJyZWFkLmMKICAKICAgIGlmICho aWdoX2JvdW5kX2lzX2NvdW50KQogICAgICBUWVBFX1JBTkdFX0RBVEEgKHJhbmdlX3R5cGUpLT5m bGFnX3VwcGVyX2JvdW5kX2lzX2NvdW50ID0gMTsKLUBAIC0yMTk5NCw3ICsyMjExMSw0NCBAQCBz ZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1CitAQCAtMjIxMjgsOSArMjIy NDUsMzcgQEAgc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydQorICAgICAg ICYmICFIQVZFX0dOQVRfQVVYX0lORk8gKHR5cGUpKQorICAgICBJTklUX0dOQVRfU1BFQ0lGSUMg KHR5cGUpOwogIAotICAgLyogUmVhZCBEV19BVF9kYXRhX2xvY2F0aW9uIGFuZCBzZXQgaW4gdHlw ZS4gICovCi0gICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfZGF0YV9sb2NhdGlvbiwg Y3UpOwotLSAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmcHJvcCkp Ci0rICBpZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wLCBOVUxM LCAwKSkKLSsgICAgewotKyAgICAgIFRZUEVfREFUQV9MT0NBVElPTiAodHlwZSkKLSsgICAgICAg ID0gb2JzdGFja19hbGxvYyAoJm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywgc2l6ZW9mIChwcm9w KSk7Ci0rICAgICAgKlRZUEVfREFUQV9MT0NBVElPTiAodHlwZSkgPSBwcm9wOwotKyAgICB9Ci0r CiArICAvKiBSZWFkIERXX0FUX2FsbG9jYXRlZCBhbmQgc2V0IGluIHR5cGUuICAqLwogKyAgYXR0 ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2FsbG9jYXRlZCwgY3UpOwogKyAgaWYgKGF0dHJf Zm9ybV9pc19ibG9jayAoYXR0cikpCkBAIC0zMzUsMTYgKzMyNywxNyBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDEyNi9nZGIvZHdhcmYycmVhZC5jCiArICAgICAgICB9CiArICAgIH0KICsKLSsg IC8qIFJlYWQgRFdfQVRfZGF0YV9sb2NhdGlvbiBhbmQgc2V0IGluIHR5cGUuICAqLwotKyAgYXR0 ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2RhdGFfbG9jYXRpb24sIGN1KTsKKyAgIC8qIFJl YWQgRFdfQVRfZGF0YV9sb2NhdGlvbiBhbmQgc2V0IGluIHR5cGUuICAqLworICAgYXR0ciA9IGR3 YXJmMl9hdHRyIChkaWUsIERXX0FUX2RhdGFfbG9jYXRpb24sIGN1KTsKKy0gIGlmIChhdHRyX3Rv X2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJnByb3ApKQogKyAgaWYgKGF0dHJfdG9fZHlu YW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmcHJvcCwgTlVMTCwgMCkpCi0gICAgIHsKLSAgICAg ICBUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpCi0gICAgICAgICA9IG9ic3RhY2tfYWxsb2MgKCZv YmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssIHNpemVvZiAocHJvcCkpOwotSW5kZXg6IGdkYi03Ljgu OTAuMjAxNTAxMjYvZ2RiL2YtdHlwZXByaW50LmMKKyAgICAgYWRkX2R5bl9wcm9wIChEWU5fUFJP UF9EQVRBX0xPQ0FUSU9OLCBwcm9wLCB0eXBlLCBvYmpmaWxlKTsKKyAKKyAgIGlmIChkd2FyZjJf cGVyX29iamZpbGUtPmRpZV90eXBlX2hhc2ggPT0gTlVMTCkKK0luZGV4OiBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi9mLXR5cGVwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1 MDEyNi5vcmlnL2dkYi9mLXR5cGVwcmludC5jCTIwMTUtMDEtMjYgMDc6NDc6MjUuODQ2NzU4Mzc1 ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvZi10eXBlcHJpbnQuYwkyMDE1LTAx LTI2IDA3OjQ3OjQyLjQwMjgyOTg5NSArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3Jp Zy9nZGIvZi10eXBlcHJpbnQuYwkyMDE1LTA1LTI5IDA4OjI3OjAyLjY3ODcxNzQ2MCArMDIwMAor KysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2YtdHlwZXByaW50LmMJMjAxNS0wNS0yOSAwODoy NzowNi4yNjE3NDAyNjAgKzAyMDAKIEBAIC0zMCw2ICszMCw3IEBACiAgI2luY2x1ZGUgImdkYmNv cmUuaCIKICAjaW5jbHVkZSAidGFyZ2V0LmgiCkBAIC00MjksMTAgKzQyMiwxMCBAQCBJbmRleDog Z2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvZi10eXBlcHJpbnQuYwogICAgICAgIGlmIChhcnJheXBy aW50X3JlY3Vyc2VfbGV2ZWwgPT0gMSkKICAJZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKSIp OwogICAgICAgIGVsc2UKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9mLXZhbHByaW50 LmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9mLXZhbHByaW50LmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMTI2Lm9yaWcvZ2RiL2YtdmFscHJpbnQuYwkyMDE1LTAx LTI2IDA3OjQ3OjI1Ljg0Nzc1ODM3OSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAxMjYvZ2Ri L2YtdmFscHJpbnQuYwkyMDE1LTAxLTI2IDA3OjQ3OjQyLjQwMzgyOTkwMCArMDEwMAorLS0tIGdk Yi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTUtMDUtMjkgMDg6MjY6 NDkuNTY3NjM0MDE5ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZi12YWxwcmlu dC5jCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjYyNzQwMjY2ICswMjAwCiBAQCAtMzYsOCArMzYsNiBA QAogIAogIGV4dGVybiB2b2lkIF9pbml0aWFsaXplX2ZfdmFscHJpbnQgKHZvaWQpOwpAQCAtNjE5 LDExICs2MTIsMTEgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2YtdmFscHJpbnQu YwogICAgICAgICAgICBpZiAoaW5kZXggIT0gVFlQRV9ORklFTERTICh0eXBlKSAtIDEpCiAgICAg ICAgICAgICAgZnB1dHNfZmlsdGVyZWQgKCIsICIsIHN0cmVhbSk7CiAgICAgICAgICB9Ci1JbmRl eDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvZ2RidHlwZXMuYworSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL2dkYnR5cGVzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUw MTI2Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNS0wMS0yNiAwNzo0NzoyNS44NTA3NTgzOTIgKzAx MDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDEtMjYgMDc6 NDc6NDIuNDA0ODI5OTA0ICswMTAwCi1AQCAtODE1LDcgKzgxNSw4IEBAIGFsbG9jYXRlX3N0dWJf bWV0aG9kIChzdHJ1Y3QgdHlwZSAqdHlwZSkKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcv Z2RiL2dkYnR5cGVzLmMJMjAxNS0wNS0yOSAwODoyNzowMi42ODM3MTc0OTIgKzAyMDAKKysrKyBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDUtMjkgMTA6NTQ6MzYuMjM2 NDk4NzQ5ICswMjAwCitAQCAtODI0LDcgKzgyNCw4IEBAIGFsbG9jYXRlX3N0dWJfbWV0aG9kIChz dHJ1Y3QgdHlwZSAqdHlwZSkKICBzdHJ1Y3QgdHlwZSAqCiAgY3JlYXRlX3JhbmdlX3R5cGUgKHN0 cnVjdCB0eXBlICpyZXN1bHRfdHlwZSwgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUsCiAgCQkgICBj b25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpsb3dfYm91bmQsCkBAIC02MzMsNyArNjI2LDcgQEAg SW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2dkYnR5cGVzLmMKICB7CiAgICBpZiAocmVz dWx0X3R5cGUgPT0gTlVMTCkKICAgICAgcmVzdWx0X3R5cGUgPSBhbGxvY190eXBlX2NvcHkgKGlu ZGV4X3R5cGUpOwotQEAgLTgzMCw2ICs4MzEsNyBAQCBjcmVhdGVfcmFuZ2VfdHlwZSAoc3RydWN0 IHR5cGUgKnJlc3VsdF90CitAQCAtODM5LDYgKzg0MCw3IEBAIGNyZWF0ZV9yYW5nZV90eXBlIChz dHJ1Y3QgdHlwZSAqcmVzdWx0X3QKICAgICAgVFlQRV9aQUxMT0MgKHJlc3VsdF90eXBlLCBzaXpl b2YgKHN0cnVjdCByYW5nZV9ib3VuZHMpKTsKICAgIFRZUEVfUkFOR0VfREFUQSAocmVzdWx0X3R5 cGUpLT5sb3cgPSAqbG93X2JvdW5kOwogICAgVFlQRV9SQU5HRV9EQVRBIChyZXN1bHRfdHlwZSkt PmhpZ2ggPSAqaGlnaF9ib3VuZDsKQEAgLTY0MSw3ICs2MzQsNyBAQCBJbmRleDogZ2RiLTcuOC45 MC4yMDE1MDEyNi9nZGIvZ2RidHlwZXMuYwogIAogICAgaWYgKGxvd19ib3VuZC0+a2luZCA9PSBQ Uk9QX0NPTlNUICYmIGxvd19ib3VuZC0+ZGF0YS5jb25zdF92YWwgPj0gMCkKICAgICAgVFlQRV9V TlNJR05FRCAocmVzdWx0X3R5cGUpID0gMTsKLUBAIC04NTgsNyArODYwLDcgQEAgc3RydWN0IHR5 cGUgKgorQEAgLTg2Nyw3ICs4NjksNyBAQCBzdHJ1Y3QgdHlwZSAqCiAgY3JlYXRlX3N0YXRpY19y YW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqcmVzdWx0X3R5cGUsIHN0cnVjdCB0eXBlICppbmRleF90 eXBlLAogIAkJCSAgTE9OR0VTVCBsb3dfYm91bmQsIExPTkdFU1QgaGlnaF9ib3VuZCkKICB7CkBA IC02NTAsNyArNjQzLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2dkYnR5cGVz LmMKICAKICAgIGxvdy5raW5kID0gUFJPUF9DT05TVDsKICAgIGxvdy5kYXRhLmNvbnN0X3ZhbCA9 IGxvd19ib3VuZDsKLUBAIC04NjYsNyArODY4LDExIEBAIGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlw ZSAoc3RydWN0IHR5cGUgKnIKK0BAIC04NzUsNyArODc3LDExIEBAIGNyZWF0ZV9zdGF0aWNfcmFu Z2VfdHlwZSAoc3RydWN0IHR5cGUgKnIKICAgIGhpZ2gua2luZCA9IFBST1BfQ09OU1Q7CiAgICBo aWdoLmRhdGEuY29uc3RfdmFsID0gaGlnaF9ib3VuZDsKICAKQEAgLTY2Myw3ICs2NTYsNyBAQCBJ bmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvZ2RidHlwZXMuYwogIAogICAgcmV0dXJuIHJl c3VsdF90eXBlOwogIH0KLUBAIC0xMDIwLDE4ICsxMDI2LDI0IEBAIGNyZWF0ZV9hcnJheV90eXBl X3dpdGhfc3RyaWRlIChzdHJ1Y3QgdHkKK0BAIC0xMDY4LDE4ICsxMDc0LDI0IEBAIGNyZWF0ZV9h cnJheV90eXBlX3dpdGhfc3RyaWRlIChzdHJ1Y3QgdHkKICAKICAgIFRZUEVfQ09ERSAocmVzdWx0 X3R5cGUpID0gVFlQRV9DT0RFX0FSUkFZOwogICAgVFlQRV9UQVJHRVRfVFlQRSAocmVzdWx0X3R5 cGUpID0gZWxlbWVudF90eXBlOwpAQCAtNjkwLDcgKzY4Myw3IEBAIEluZGV4OiBnZGItNy44Ljkw LjIwMTUwMTI2L2dkYi9nZGJ0eXBlcy5jCiAgICAgICAgZWxzZSBpZiAoYml0X3N0cmlkZSA+IDAp CiAgCVRZUEVfTEVOR1RIIChyZXN1bHRfdHlwZSkgPQogIAkgIChiaXRfc3RyaWRlICogKGhpZ2hf Ym91bmQgLSBsb3dfYm91bmQgKyAxKSArIDcpIC8gODsKLUBAIC0xNjMwLDEyICsxNjQyLDMxIEBA IHN0dWJfbm9uYW1lX2NvbXBsYWludCAodm9pZCkKK0BAIC0xNzg5LDEyICsxODAxLDMxIEBAIHN0 dWJfbm9uYW1lX2NvbXBsYWludCAodm9pZCkKICBzdGF0aWMgaW50CiAgaXNfZHluYW1pY190eXBl X2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IHRvcF9sZXZlbCkKICB7CkBAIC03MjIs NyArNzE1LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2dkYnR5cGVzLmMKICAg IC8qIFR5cGVzIHRoYXQgaGF2ZSBhIGR5bmFtaWMgVFlQRV9EQVRBX0xPQ0FUSU9OIGFyZSBjb25z aWRlcmVkCiAgICAgICBkeW5hbWljLCBldmVuIGlmIHRoZSB0eXBlIGl0c2VsZiBpcyBzdGF0aWNh bGx5IGRlZmluZWQuCiAgICAgICBGcm9tIGEgdXNlcidzIHBvaW50IG9mIHZpZXcsIHRoaXMgbWF5 IGFwcGVhciBjb3VudGVyLWludHVpdGl2ZTsKLUBAIC0xNjU2LDExICsxNjg3LDE5IEBAIGlzX2R5 bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnQKK0BAIC0xODIzLDExICsxODU0LDE5 IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnQKICAgICAgICB7CiAg CWdkYl9hc3NlcnQgKFRZUEVfTkZJRUxEUyAodHlwZSkgPT0gMSk7CiAgCkBAIC03NDUsMTQgKzcz OCwxNSBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvZ2RidHlwZXMuYwogICAgICAg IH0KICAKICAgICAgY2FzZSBUWVBFX0NPREVfU1RSVUNUOgotQEAgLTE2NzMsNiArMTcxMiwxNyBA QCBpc19keW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBlICp0CitAQCAtMTg0MCw2ICsx ODc5LDE4IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnQKICAJICAg ICAgJiYgaXNfZHluYW1pY190eXBlX2ludGVybmFsIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGkp LCAwKSkKICAJICAgIHJldHVybiAxOwogICAgICAgIH0KICsgICAgY2FzZSBUWVBFX0NPREVfUFRS OgogKyAgICAgIHsKICsgICAgICAgIGlmIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKQotKyAgICAg ICAgICAgICYmIFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpID09IFRZUEVfQ09E RV9TVFJJTkcpCisrICAgICAgICAgICAgJiYgKFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAo dHlwZSkpID09IFRZUEVfQ09ERV9TVFJJTkcKKysgICAgICAgICAgICAgICAgfHwgVFlQRV9DT0RF IChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkgPT0gVFlQRV9DT0RFX0FSUkFZKSkKICsgICAgICAg ICAgcmV0dXJuIGlzX2R5bmFtaWNfdHlwZSAoY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQ RSAodHlwZSkpKTsKICsKICsgICAgICAgIHJldHVybiAwOwpAQCAtNzYzLDggKzc1Nyw4IEBAIElu ZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9nZGJ0eXBlcy5jCiAgICAgICAgYnJlYWs7CiAg ICAgIH0KICAKLUBAIC0xNzAxLDcgKzE3NTEsOCBAQCByZXNvbHZlX2R5bmFtaWNfcmFuZ2UgKHN0 cnVjdCB0eXBlICpkeW5fCi0gICBzdHJ1Y3QgdHlwZSAqc3RhdGljX3JhbmdlX3R5cGU7CitAQCAt MTg2OSw3ICsxOTIwLDggQEAgcmVzb2x2ZV9keW5hbWljX3JhbmdlIChzdHJ1Y3QgdHlwZSAqZHlu XworICAgc3RydWN0IHR5cGUgKnN0YXRpY19yYW5nZV90eXBlLCAqc3RhdGljX3RhcmdldF90eXBl OwogICAgY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcDsKICAgIGNvbnN0IHN0cnVjdCBk d2FyZjJfbG9jZXhwcl9iYXRvbiAqYmF0b247CiAtICBzdHJ1Y3QgZHluYW1pY19wcm9wIGxvd19i b3VuZCwgaGlnaF9ib3VuZDsKQEAgLTc3MywyOCArNzY3LDMwIEBAIEluZGV4OiBnZGItNy44Ljkw LjIwMTUwMTI2L2dkYi9nZGJ0eXBlcy5jCiAgCiAgICBnZGJfYXNzZXJ0IChUWVBFX0NPREUgKGR5 bl9yYW5nZV90eXBlKSA9PSBUWVBFX0NPREVfUkFOR0UpOwogIAotQEAgLTE3MzIsMTAgKzE3ODMs MTcgQEAgcmVzb2x2ZV9keW5hbWljX3JhbmdlIChzdHJ1Y3QgdHlwZSAqZHluXwotICAgICAgIGhp Z2hfYm91bmQua2luZCA9IFBST1BfVU5ERUZJTkVEOworQEAgLTE5MDEsMTIgKzE5NTMsMTkgQEAg cmVzb2x2ZV9keW5hbWljX3JhbmdlIChzdHJ1Y3QgdHlwZSAqZHluXwogICAgICAgIGhpZ2hfYm91 bmQuZGF0YS5jb25zdF92YWwgPSAwOwogICAgICB9Ci0rICAKKyAKICsgIHByb3AgPSAmVFlQRV9S QU5HRV9EQVRBIChkeW5fcmFuZ2VfdHlwZSktPnN0cmlkZTsKLSsgIGlmIChkd2FyZjJfZXZhbHVh dGVfcHJvcGVydHkgKHByb3AsIGFkZHIsICZ2YWx1ZSkpCisrICBpZiAoZHdhcmYyX2V2YWx1YXRl X3Byb3BlcnR5IChwcm9wLCBhZGRyX3N0YWNrLCAmdmFsdWUpKQogKyAgICB7CiArICAgICAgc3Ry aWRlLmtpbmQgPSBQUk9QX0NPTlNUOwogKyAgICAgIHN0cmlkZS5kYXRhLmNvbnN0X3ZhbCA9IHZh bHVlOwogKyAgICB9Ci0gCisrCisgICBzdGF0aWNfdGFyZ2V0X3R5cGUKKy0gICAgPSByZXNvbHZl X2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoVFlQRV9UQVJHRVRfVFlQRSAoZHluX3JhbmdlX3R5cGUp LAorKyAgICA9IHJlc29sdmVfZHluYW1pY190eXBlX2ludGVybmFsIChUWVBFX1RBUkdFVF9UWVBF IChyYW5nZV9jb3B5KSwKKyAJCQkJICAgICBhZGRyX3N0YWNrLCAwKTsKIC0gIHN0YXRpY19yYW5n ZV90eXBlID0gY3JlYXRlX3JhbmdlX3R5cGUgKGNvcHlfdHlwZSAoZHluX3JhbmdlX3R5cGUpLAot LQkJCQkJIFRZUEVfVEFSR0VUX1RZUEUgKGR5bl9yYW5nZV90eXBlKSwKLS0JCQkJCSAmbG93X2Jv dW5kLCAmaGlnaF9ib3VuZCk7CiArICBzdGF0aWNfcmFuZ2VfdHlwZSA9IGNyZWF0ZV9yYW5nZV90 eXBlIChyYW5nZV9jb3B5LAotKwkJCQkJIFRZUEVfVEFSR0VUX1RZUEUgKHJhbmdlX2NvcHkpLAor IAkJCQkJIHN0YXRpY190YXJnZXRfdHlwZSwKKy0JCQkJCSAmbG93X2JvdW5kLCAmaGlnaF9ib3Vu ZCk7CiArCQkJCQkgJmxvd19ib3VuZCwgJmhpZ2hfYm91bmQsICZzdHJpZGUpOwogICAgVFlQRV9S QU5HRV9EQVRBIChzdGF0aWNfcmFuZ2VfdHlwZSktPmZsYWdfYm91bmRfZXZhbHVhdGVkID0gMTsK ICAgIHJldHVybiBzdGF0aWNfcmFuZ2VfdHlwZTsKICB9Ci1AQCAtMTc1MSwyMyArMTgwOSw0NiBA QCByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlCitAQCAtMTkyMywyMyAr MTk4Miw0NyBAQCByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlCiAgICBz dHJ1Y3QgdHlwZSAqZWx0X3R5cGU7CiAgICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZTsKICAgIHN0 cnVjdCB0eXBlICphcnlfZGltOwpAQCAtODA3LDE3ICs4MDMsMTcgQEAgSW5kZXg6IGdkYi03Ljgu OTAuMjAxNTAxMjYvZ2RiL2dkYnR5cGVzLmMKICAKICAgIGVsdF90eXBlID0gdHlwZTsKICAgIHJh bmdlX3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX0lOREVYX1RZUEUgKGVsdF90eXBlKSk7Ci0g ICByYW5nZV90eXBlID0gcmVzb2x2ZV9keW5hbWljX3JhbmdlIChyYW5nZV90eXBlLCBhZGRyKTsK KyAgIHJhbmdlX3R5cGUgPSByZXNvbHZlX2R5bmFtaWNfcmFuZ2UgKHJhbmdlX3R5cGUsIGFkZHJf c3RhY2spOwogIAogKyAgcHJvcCA9IFRZUEVfQUxMT0NBVEVEX1BST1AgKHR5cGUpOwotKyAgaWYg KGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAocHJvcCwgYWRkciwgJnZhbHVlKSkKKysgIGlmIChk d2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKHByb3AsIGFkZHJfc3RhY2ssICZ2YWx1ZSkpCiArICAg IHsKICsgICAgICBUWVBFX0FMTE9DQVRFRF9QUk9QIChjb3B5KS0+a2luZCA9IFBST1BfQ09OU1Q7 CiArICAgICAgVFlQRV9BTExPQ0FURURfUFJPUCAoY29weSktPmRhdGEuY29uc3RfdmFsID0gdmFs dWU7CiArICAgIH0KICsKICsgIHByb3AgPSBUWVBFX0FTU09DSUFURURfUFJPUCAodHlwZSk7Ci0r ICBpZiAoZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChwcm9wLCBhZGRyLCAmdmFsdWUpKQorKyAg aWYgKGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAocHJvcCwgYWRkcl9zdGFjaywgJnZhbHVlKSkK ICsgICAgewogKyAgICAgIFRZUEVfQVNTT0NJQVRFRF9QUk9QIChjb3B5KS0+a2luZCA9IFBST1Bf Q09OU1Q7CiArICAgICAgVFlQRV9BU1NPQ0lBVEVEX1BST1AgKGNvcHkpLT5kYXRhLmNvbnN0X3Zh bCA9IHZhbHVlOwpAQCAtODI2LDY0ICs4MjIsMzIgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAx MjYvZ2RiL2dkYnR5cGVzLmMKICAgIGFyeV9kaW0gPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdF VF9UWVBFIChlbHRfdHlwZSkpOwogIAogLSAgaWYgKGFyeV9kaW0gIT0gTlVMTCAmJiBUWVBFX0NP REUgKGFyeV9kaW0pID09IFRZUEVfQ09ERV9BUlJBWSkKLS0gICAgZWx0X3R5cGUgPSByZXNvbHZl X2R5bmFtaWNfYXJyYXkgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBhZGRyKTsKKy0gICAgZWx0 X3R5cGUgPSByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBh ZGRyX3N0YWNrKTsKICsgIGlmIChhcnlfZGltICE9IE5VTEwgJiYgKFRZUEVfQ09ERSAoYXJ5X2Rp bSkgPT0gVFlQRV9DT0RFX0FSUkFZCiArICAgICAgICAgIHx8IFRZUEVfQ09ERSAoYXJ5X2RpbSkg PT0gVFlQRV9DT0RFX1NUUklORykpCi0rICAgIGVsdF90eXBlID0gcmVzb2x2ZV9keW5hbWljX2Fy cmF5IChUWVBFX1RBUkdFVF9UWVBFIChjb3B5KSwgYWRkcik7CisrICAgIGVsdF90eXBlID0gcmVz b2x2ZV9keW5hbWljX2FycmF5IChUWVBFX1RBUkdFVF9UWVBFIChjb3B5KSwgYWRkcl9zdGFjayk7 CiAgICBlbHNlCiAgICAgIGVsdF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAodHlwZSk7CiAgCi0t ICByZXR1cm4gY3JlYXRlX2FycmF5X3R5cGUgKGNvcHlfdHlwZSAodHlwZSksCi0tCQkJICAgIGVs dF90eXBlLAotLQkJCSAgICByYW5nZV90eXBlKTsKLSsgIGlmIChUWVBFX0NPREUgKHR5cGUpID09 IFRZUEVfQ09ERV9TVFJJTkcpCistICByZXR1cm4gY3JlYXRlX2FycmF5X3R5cGVfd2l0aF9zdHJp ZGUgKGNvcHlfdHlwZSAodHlwZSksCistCQkJCQllbHRfdHlwZSwgcmFuZ2VfdHlwZSwKKy0JCQkJ CVRZUEVfRklFTERfQklUU0laRSAodHlwZSwgMCkpOworKyAgaWYgKFRZUEVfQ09ERSAodHlwZSkg PT0gVFlQRV9DT0RFX1NUUklORworKyAgICAgICYmIFRZUEVfRklFTERfQklUU0laRSAodHlwZSwg MCkgPT0gMCkKICsgICAgcmV0dXJuIGNyZWF0ZV9zdHJpbmdfdHlwZSAoY29weSwKICsJICAgIGVs dF90eXBlLAogKwkgICAgcmFuZ2VfdHlwZSk7CiArICBlbHNlCi0rICAgIHJldHVybiBjcmVhdGVf YXJyYXlfdHlwZSAoY29weSwKKysgICAgcmV0dXJuIGNyZWF0ZV9hcnJheV90eXBlX3dpdGhfc3Ry aWRlIChjb3B5LAogKwkgICAgZWx0X3R5cGUsCi0rCSAgICByYW5nZV90eXBlKTsKKysJICAgIHJh bmdlX3R5cGUsIFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgMCkpOwogIH0KICAKICAvKiBSZXNv bHZlIGR5bmFtaWMgYm91bmRzIG9mIG1lbWJlcnMgb2YgdGhlIHVuaW9uIFRZUEUgdG8gc3RhdGlj Ci1AQCAtMTkzOCw2ICsyMDE5LDI1IEBAIHJlc29sdmVfZHluYW1pY190eXBlX2ludGVybmFsIChz dHJ1Y3QgdHkKLSAgIGVsc2UKLSAgICAgVFlQRV9EQVRBX0xPQ0FUSU9OIChyZXNvbHZlZF90eXBl KSA9IE5VTEw7CitAQCAtNDQ1Myw2ICs0NTM2LDIwIEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0 cnVjdCBvYmpmaWxlICpvYmoKKyAJCQkJVFlQRV9EWU5fUFJPUF9MSVNUICh0eXBlKSk7CiAgCi0r ICAvKiBSZXNvbHZlIGRhdGFfbG9jYXRpb24gYXR0cmlidXRlLiAgKi8KLSsgIHByb3AgPSBUWVBF X0RBVEFfTE9DQVRJT04gKHJlc29sdmVkX3R5cGUpOwotKyAgaWYgKGR3YXJmMl9ldmFsdWF0ZV9w cm9wZXJ0eSAocHJvcCwgYWRkciwgJnZhbHVlKSkKLSsgICAgewotKyAgICAgIHN0cnVjdCB0eXBl ICpyYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChyZXNvbHZlZF90eXBlKTsKLSsKLSsgICAg ICAvKiBBZGp1c3QgdGhlIGRhdGEgbG9jYXRpb24gd2l0aCB0aGUgdmFsdWUgb2YgYnl0ZSBzdHJp ZGUgaWYgc2V0LCB3aGljaAotKyAgICAgICAgIGNhbiBkZXNjcmliZSB0aGUgc2VwYXJhdGlvbiBi ZXR3ZWVuIHN1Y2Nlc3NpdmUgZWxlbWVudHMgYWxvbmcgdGhlCi0rICAgICAgICAgZGltZW5zaW9u LiAgKi8KLSsgICAgICBpZiAoVFlQRV9CWVRFX1NUUklERSAocmFuZ2VfdHlwZSkgPCAwKQotKyAg ICAgICAgdmFsdWUgKz0gKFRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSkgLSBUWVBFX0xPV19C T1VORCAocmFuZ2VfdHlwZSkpCi0rICAgICAgICAgICAgICAgICAgKiBUWVBFX0JZVEVfU1RSSURF IChyYW5nZV90eXBlKTsKLSsKLSsgICAgICBUWVBFX0RBVEFfTE9DQVRJT05fQUREUiAocmVzb2x2 ZWRfdHlwZSkgPSB2YWx1ZTsKLSsgICAgICBUWVBFX0RBVEFfTE9DQVRJT05fS0lORCAocmVzb2x2 ZWRfdHlwZSkgPSBQUk9QX0NPTlNUOwotKyAgICB9Ci0rICBlbHNlCi0rICAgIFRZUEVfREFUQV9M T0NBVElPTiAocmVzb2x2ZWRfdHlwZSkgPSBOVUxMOwotKwotICAgcmV0dXJuIHJlc29sdmVkX3R5 cGU7Ci0gfQogIAotQEAgLTQxNzQsNiArNDI3NCwyNyBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChz dHJ1Y3Qgb2JqZmlsZSAqb2JqCi0gCSAgICAgIHNpemVvZiAoc3RydWN0IGR5bmFtaWNfcHJvcCkp OwotICAgICB9Ci0gCi0rICAvKiBDb3B5IHRoZSBkYXRhIGxvY2F0aW9uIGluZm9ybWF0aW9uLiAg Ki8KLSsgIGlmIChUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpICE9IE5VTEwpCi0rICAgIHsKLSsg ICAgICBUWVBFX0RBVEFfTE9DQVRJT04gKG5ld190eXBlKSA9IHhtYWxsb2MgKHNpemVvZiAoc3Ry dWN0IGR5bmFtaWNfcHJvcCkpOwotKyAgICAgICpUWVBFX0RBVEFfTE9DQVRJT04gKG5ld190eXBl KSA9ICpUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpOwotKyAgICB9Ci0rCiArICAvKiBDb3B5IGFs bG9jYXRlZCBpbmZvcm1hdGlvbi4gICovCiArICBpZiAoVFlQRV9BTExPQ0FURURfUFJPUCAodHlw ZSkgIT0gTlVMTCkKICsgICAgewpAQCAtOTAxLDggKzg2NSw4IEBAIEluZGV4OiBnZGItNy44Ljkw LjIwMTUwMTI2L2dkYi9nZGJ0eXBlcy5jCiAgICAvKiBDb3B5IHBvaW50ZXJzIHRvIG90aGVyIHR5 cGVzLiAgKi8KICAgIGlmIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkKICAgICAgVFlQRV9UQVJH RVRfVFlQRSAobmV3X3R5cGUpID0gCi1AQCAtNDIyNyw2ICs0MzQ4LDQ0IEBAIGNvcHlfdHlwZSAo Y29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCi0gCSAgICAgIHNpemVvZiAoc3RydWN0IGR5bmFtaWNf cHJvcCkpOworQEAgLTQ0OTQsNiArNDU5MSwzNSBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1 Y3Qgb2JqZmlsZSAqb2JqCisgICAgICAgZ2RiX2Fzc2VydF9ub3RfcmVhY2hlZCAoImJhZCB0eXBl X3NwZWNpZmljX2tpbmQiKTsKICAgICAgfQogIAogKyAgaWYgKFRZUEVfQUxMT0NBVEVEX1BST1Ag KHR5cGUpKQpAQCAtOTIzLDE1ICs4ODcsNiBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9n ZGIvZ2RidHlwZXMuYwogKyAgICAgICAgc2l6ZW9mIChzdHJ1Y3QgZHluYW1pY19wcm9wKSk7CiAr ICAgIH0KICsKLSsgIGlmIChUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpKQotKyAgICB7Ci0rICAg ICAgVFlQRV9EQVRBX0xPQ0FUSU9OIChuZXdfdHlwZSkKLSsgICAgICAgICAgICAgID0gT0JTVEFD S19aQUxMT0MgKCZUWVBFX09XTkVSICh0eXBlKS5vYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHluYW1pY19wcm9wKTsKLSsg ICAgICBtZW1jcHkgKFRZUEVfREFUQV9MT0NBVElPTiAobmV3X3R5cGUpLCBUWVBFX0RBVEFfTE9D QVRJT04gKHR5cGUpLAotKyAgICAgICAgc2l6ZW9mIChzdHJ1Y3QgZHluYW1pY19wcm9wKSk7Ci0r ICAgIH0KLSsKICsgIGlmIChUWVBFX05GSUVMRFMgKHR5cGUpKQogKyAgICB7CiArICAgICAgaW50 IG5maWVsZHMgPSBUWVBFX05GSUVMRFMgKHR5cGUpOwpAQCAtOTQ1LDI2ICs5MDAsNDEgQEAgSW5k ZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2dkYnR5cGVzLmMKICsKICAgIHJldHVybiBuZXdf dHlwZTsKICB9Ci0gDAotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2dkYnR5cGVzLmgK KyAKK0BAIC00NTE5LDYgKzQ2NDUsMTQgQEAgY29weV90eXBlIChjb25zdCBzdHJ1Y3QgdHlwZSAq dHlwZSkKKyAgICAgVFlQRV9EWU5fUFJPUF9MSVNUIChuZXdfdHlwZSkKKyAgICAgICA9IGNvcHlf ZHluYW1pY19wcm9wX2xpc3QgKCZUWVBFX09CSkZJTEUgKHR5cGUpIC0+IG9iamZpbGVfb2JzdGFj aywKKyAJCQkJVFlQRV9EWU5fUFJPUF9MSVNUICh0eXBlKSk7CisrICBpZiAoVFlQRV9BTExPQ0FU RURfUFJPUCAodHlwZSkgIT0gTlVMTCkKKysgICAgVFlQRV9BTExPQ0FURURfUFJPUCAobmV3X3R5 cGUpID0gb2JzdGFja19jb3B5CisrICAgICAgKCZUWVBFX09CSkZJTEUgKHR5cGUpLT5vYmpmaWxl X29ic3RhY2ssIFRZUEVfQUxMT0NBVEVEX1BST1AgKHR5cGUpLAorKyAgICAgICBzaXplb2YgKCpU WVBFX0FMTE9DQVRFRF9QUk9QICh0eXBlKSkpOworKyAgaWYgKFRZUEVfQVNTT0NJQVRFRF9QUk9Q ICh0eXBlKSAhPSBOVUxMKQorKyAgICBUWVBFX0FTU09DSUFURURfUFJPUCAobmV3X3R5cGUpID0g b2JzdGFja19jb3B5CisrICAgICAgKCZUWVBFX09CSkZJTEUgKHR5cGUpLT5vYmpmaWxlX29ic3Rh Y2ssIFRZUEVfQVNTT0NJQVRFRF9QUk9QICh0eXBlKSwKKysgICAgICAgc2l6ZW9mICgqVFlQRV9B U1NPQ0lBVEVEX1BST1AgKHR5cGUpKSk7CisgCisgICByZXR1cm4gbmV3X3R5cGU7CisgfQorSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnR5cGVzLmgKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy44LjkwLjIwMTUwMTI2Lm9yaWcvZ2RiL2dkYnR5cGVzLmgJMjAxNS0wMS0yNiAwNzo0Nzoy NS44NTI3NTg0MDEgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9nZGJ0eXBlcy5o CTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA1ODI5OTA4ICswMTAwCi1AQCAtNjYwLDYgKzY2MCwxMCBA QCBzdHJ1Y3QgbWFpbl90eXBlCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9nZGJ0 eXBlcy5oCTIwMTUtMDUtMjkgMDg6Mjc6MDIuNjg1NzE3NTA0ICswMjAwCisrKysgZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvZ2RidHlwZXMuaAkyMDE1LTA1LTI5IDA4OjQ2OjA4Ljg2MjkyNDA1MiAr MDIwMAorQEAgLTU2OSw2ICs1NjksMTAgQEAgc3RydWN0IHJhbmdlX2JvdW5kcwogIAotICAgICAg IHN0cnVjdCBkeW5hbWljX3Byb3AgaGlnaDsKKyAgIHN0cnVjdCBkeW5hbWljX3Byb3AgaGlnaDsK ICAKLSsgICAgICAvKiAqIFN0cmlkZSBvZiByYW5nZS4gICovCisrICAvKiAqIFN0cmlkZSBvZiBy YW5nZS4gICovCiArCi0rICAgICAgc3RydWN0IGR5bmFtaWNfcHJvcCBzdHJpZGU7CisrICBzdHJ1 Y3QgZHluYW1pY19wcm9wIHN0cmlkZTsKICsKLSAgICAgICAvKiBUcnVlIGlmIEhJR0ggcmFuZ2Ug Ym91bmQgY29udGFpbnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUKLSAJIHN1YnJhbmdl LiBUaGlzIGFmZmVjdHMgaG93IHRoZSBmaW5hbCBoaWdodCBib3VuZCBpcyBjb21wdXRlZC4gICov CisgICAvKiBUcnVlIGlmIEhJR0ggcmFuZ2UgYm91bmQgY29udGFpbnMgdGhlIG51bWJlciBvZiBl bGVtZW50cyBpbiB0aGUKKyAgICAgIHN1YnJhbmdlLiBUaGlzIGFmZmVjdHMgaG93IHRoZSBmaW5h bCBoaWdodCBib3VuZCBpcyBjb21wdXRlZC4gICovCiAgCi1AQCAtNzIwLDYgKzcyNCwxOCBAQCBz dHJ1Y3QgbWFpbl90eXBlCi0gICAgICB0aGlzIGZpZWxkIHlpZWxkcyB0byB0aGUgbG9jYXRpb24g b2YgdGhlIGRhdGEgZm9yIGFuIG9iamVjdC4gICovCitAQCAtNzQxLDYgKzc0NSwxOCBAQCBzdHJ1 Y3QgbWFpbl90eXBlCiAgCi0gICBzdHJ1Y3QgZHluYW1pY19wcm9wICpkYXRhX2xvY2F0aW9uOwor ICAgLyogKiBDb250YWlucyBhbGwgZHluYW1pYyB0eXBlIHByb3BlcnRpZXMuICAqLworICAgc3Ry dWN0IGR5bmFtaWNfcHJvcF9saXN0ICpkeW5fcHJvcF9saXN0OwogKwogKyAgLyogU3RydWN0dXJl IGZvciBEV19BVF9hbGxvY2F0ZWQuCiArICAgICBUaGUgcHJlc2VuY2Ugb2YgdGhpcyBhdHRyaWJ1 dGUgaW5kaWNhdGVzIHRoYXQgdGhlIG9iamVjdCBvZiB0aGUgdHlwZQpAQCAtOTgwLDcgKzk1MCw3 IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9nZGJ0eXBlcy5oCiAgfTsKICAKICAv KiAqIEEgYGBzdHJ1Y3QgdHlwZScnIGRlc2NyaWJlcyBhIHBhcnRpY3VsYXIgaW5zdGFuY2Ugb2Yg YSB0eXBlLCB3aXRoCi1AQCAtMTE5OCw2ICsxMjE0LDM5IEBAIGV4dGVybiB2b2lkIGFsbG9jYXRl X2duYXRfYXV4X3R5cGUgKHN0cnUKK0BAIC0xMjU1LDYgKzEyNzEsMTUgQEAgZXh0ZXJuIHZvaWQg YWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydQogICAgVFlQRV9SQU5HRV9EQVRBKHJhbmdlX3R5 cGUpLT5oaWdoLmtpbmQKICAjZGVmaW5lIFRZUEVfTE9XX0JPVU5EX0tJTkQocmFuZ2VfdHlwZSkg XAogICAgVFlQRV9SQU5HRV9EQVRBKHJhbmdlX3R5cGUpLT5sb3cua2luZApAQCAtOTkzLDE2ICs5 NjMsMTMgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2dkYnR5cGVzLmgKICsjZGVm aW5lIFRZUEVfQllURV9TVFJJREVfS0lORChyYW5nZV90eXBlKSBcCiArICBUWVBFX1JBTkdFX0RB VEEocmFuZ2VfdHlwZSktPnN0cmlkZS5raW5kCiArCi0rCi0rLyogQXR0cmlidXRlIGFjY2Vzc29y cyBmb3IgdGhlIHR5cGUgZGF0YSBsb2NhdGlvbi4gICovCi0rI2RlZmluZSBUWVBFX0RBVEFfTE9D QVRJT04odGhpc3R5cGUpIFwKLSsgIFRZUEVfTUFJTl9UWVBFKHRoaXN0eXBlKS0+ZGF0YV9sb2Nh dGlvbgotKyNkZWZpbmUgVFlQRV9EQVRBX0xPQ0FUSU9OX0JBVE9OKHRoaXN0eXBlKSBcCi0rICBU WVBFX0RBVEFfTE9DQVRJT04gKHRoaXN0eXBlKS0+ZGF0YS5iYXRvbgotKyNkZWZpbmUgVFlQRV9E QVRBX0xPQ0FUSU9OX0FERFIodGhpc3R5cGUpIFwKLSsgIFRZUEVfREFUQV9MT0NBVElPTiAodGhp c3R5cGUpLT5kYXRhLmNvbnN0X3ZhbAotKyNkZWZpbmUgVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQo dGhpc3R5cGUpIFwKLSsgIFRZUEVfREFUQV9MT0NBVElPTiAodGhpc3R5cGUpLT5raW5kCisgCisg LyogUHJvcGVydHkgYWNjZXNzb3JzIGZvciB0aGUgdHlwZSBkYXRhIGxvY2F0aW9uLiAgKi8KKyAj ZGVmaW5lIFRZUEVfREFUQV9MT0NBVElPTih0aGlzdHlwZSkgXAorQEAgLTEyNjUsNiArMTI5MCwy MCBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1CisgICBUWVBFX0RB VEFfTE9DQVRJT04gKHRoaXN0eXBlKS0+ZGF0YS5jb25zdF92YWwKKyAjZGVmaW5lIFRZUEVfREFU QV9MT0NBVElPTl9LSU5EKHRoaXN0eXBlKSBcCisgICBUWVBFX0RBVEFfTE9DQVRJT04gKHRoaXN0 eXBlKS0+a2luZAogKyNkZWZpbmUgVFlQRV9BTExPQ0FURURfUFJPUCh0aGlzdHlwZSkgVFlQRV9N QUlOX1RZUEUodGhpc3R5cGUpLT5hbGxvY2F0ZWQKICsjZGVmaW5lIFRZUEVfQVNTT0NJQVRFRF9Q Uk9QKHRoaXN0eXBlKSBUWVBFX01BSU5fVFlQRSh0aGlzdHlwZSktPmFzc29jaWF0ZWQKICsKQEAg LTEwMTgsOSArOTg1LDkgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2dkYnR5cGVz LmgKICsgICYmIFRZUEVfQVNTT0NJQVRFRF9QUk9QICh0KS0+a2luZCA9PSBQUk9QX0NPTlNUIFwK ICsgICYmICFUWVBFX0FTU09DSUFURURfUFJPUCAodCktPmRhdGEuY29uc3RfdmFsKQogIAotIC8q IEF0dHJpYnV0ZSBhY2Nlc3NvcnMgZm9yIHRoZSB0eXBlIGRhdGEgbG9jYXRpb24uICAqLwotICNk ZWZpbmUgVFlQRV9EQVRBX0xPQ0FUSU9OKHRoaXN0eXBlKSBcCi1AQCAtMTIxNSw2ICsxMjY0LDkg QEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydQorIC8qIEF0dHJpYnV0 ZSBhY2Nlc3NvcnMgZm9yIGR5bmFtaWMgcHJvcGVydGllcy4gICovCisgI2RlZmluZSBUWVBFX0RZ Tl9QUk9QX0xJU1QodGhpc3R5cGUpIFwKK0BAIC0xMjgzLDYgKzEzMjIsOSBAQCBleHRlcm4gdm9p ZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1CiAgICAgVFlQRV9ISUdIX0JPVU5EX1VOREVG SU5FRChUWVBFX0lOREVYX1RZUEUoYXJyYXl0eXBlKSkKICAjZGVmaW5lIFRZUEVfQVJSQVlfTE9X RVJfQk9VTkRfSVNfVU5ERUZJTkVEKGFycmF5dHlwZSkgXAogICAgIFRZUEVfTE9XX0JPVU5EX1VO REVGSU5FRChUWVBFX0lOREVYX1RZUEUoYXJyYXl0eXBlKSkKQEAgLTEwMzAsNyArOTk3LDcgQEAg SW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2dkYnR5cGVzLmgKICAKICAjZGVmaW5lIFRZ UEVfQVJSQVlfVVBQRVJfQk9VTkRfVkFMVUUoYXJyYXl0eXBlKSBcCiAgICAgKFRZUEVfSElHSF9C T1VORChUWVBFX0lOREVYX1RZUEUoKGFycmF5dHlwZSkpKSkKLUBAIC0xNjg1LDYgKzE3MzcsNyBA QCBleHRlcm4gc3RydWN0IHR5cGUgKmNyZWF0ZV9hcnJheV90eXBlX3dpCitAQCAtMTc2NCw2ICsx ODA2LDcgQEAgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZV93aQogIAogIGV4 dGVybiBzdHJ1Y3QgdHlwZSAqY3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICosIHN0cnVj dCB0eXBlICosCiAgCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICosCkBAIC0x MDM4LDEwICsxMDA1LDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9nZGJ0eXBl cy5oCiAgCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICopOwogIAogIGV4dGVy biBzdHJ1Y3QgdHlwZSAqY3JlYXRlX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB0 eXBlICosCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS1hbGxvYy1hc3NvYy5leHAKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWFsbG9jLWFzc29jLmV4cAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03 LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtYWxsb2MtYXNzb2Mu ZXhwCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA1ODI5OTA4ICswMTAwCisrKysgZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1hbGxvYy1hc3NvYy5leHAJMjAx NS0wNS0yOSAwODoyNzowNi4yNjY3NDAyOTIgKzAyMDAKIEBAIC0wLDAgKzEsNjUgQEAKICsjIENv cHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTEwOCwx MCArMTA3NSwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS1hbGxvYy1hc3NvYy5leHAKICtnZGJfY29udGludWVfdG9fYnJlYWtwb2lu dCAidmxhMi1kZWFsbG9jYXRlZCIKICtnZGJfdGVzdCAicHJpbnQgbCIgIiA9IFxcLkZBTFNFXFwu IiAicHJpbnQgdmxhMiBkZWFsbG9jYXRlZCIKICtnZGJfdGVzdCAicHJpbnQgdmxhMiIgIiA9IDxu b3QgYWxsb2NhdGVkPiIgInByaW50IGRlYWxsb2NhdGVkIHZsYTIiCi1JbmRleDogZ2RiLTcuOC45 MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1kYXRhdHlwZXMuZXhwCitJ bmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1k YXRhdHlwZXMuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6 MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS1kYXRhdHlwZXMuZXhwCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA1ODI5 OTA4ICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS1kYXRhdHlwZXMuZXhwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY2NzQwMjkyICswMjAw CiBAQCAtMCwwICsxLDgyIEBACiArIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KICsKQEAgLTExOTUsMTAgKzExNjIsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAu MjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZGF0YXR5cGVzLmV4cAogKyAg InByaW50IGxvZ2ljYWx2bGEoNSw1LDUpICgybmQpIgogK2dkYl90ZXN0ICJwcmludCBjaGFyYWN0 ZXJ2bGEoNSw1LDUpIiAiID0gJ1gnIiBcCiArICAicHJpbnQgY2hhcmFjdGVydmxhKDUsNSw1KSAo Mm5kKSIKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vdmxhLWRhdGF0eXBlcy5mOTAKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWRhdGF0eXBlcy5mOTAKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44Ljkw LjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWRhdGF0eXBlcy5mOTAJMjAx NS0wMS0yNiAwNzo0Nzo0Mi40MDU4Mjk5MDggKzAxMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWRhdGF0eXBlcy5mOTAJMjAxNS0wNS0yOSAw ODoyNzowNi4yNjY3NDAyOTIgKzAyMDAKIEBAIC0wLDAgKzEsNTEgQEAKICshIENvcHlyaWdodCAy MDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTEyNTEsMTAgKzEyMTgs MTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtZGF0YXR5cGVzLmY5MAogKyAgISBkdW1teSBzdGF0ZW1lbnQgZm9yIGJwCiArICBsID0g LkZBTFNFLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgISB2bGFzLW1vZGlmaWVkCiArZW5k IHByb2dyYW0gdmxhX3ByaW1pdGl2ZXMKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZXhwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmV4cAogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdk Yi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5leHAJ MjAxNS0wMS0yNiAwNzo0Nzo0Mi40MDY4Mjk5MTMgKzAxMDAKKysrKyBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZXhwCTIwMTUtMDUtMjkgMDg6 Mjc6MDYuMjY2NzQwMjkyICswMjAwCiBAQCAtMCwwICsxLDYxIEBACiArIyBDb3B5cmlnaHQgMjAx NCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTEzMTcsMTAgKzEyODQsMTAg QEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtZnVuYy5leHAKICsgICJwcmludCB2bGEzIChhZnRlciBmdW5jMikiCiArZ2RiX3Rlc3QgInB0 eXBlIHZsYTMiICJ0eXBlID0gaW50ZWdlclxcXChraW5kPTRcXFwpIFxcXCgxMFxcXCkiIFwKICsg ICJwdHlwZSB2bGEzIChhZnRlciBmdW5jMikiCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmY5MAorSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5mOTAKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsr KyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMu ZjkwCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA2ODI5OTEzICswMTAwCisrKysgZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmY5MAkyMDE1LTA1LTI5 IDA4OjI3OjA2LjI2Nzc0MDI5OCArMDIwMAogQEAgLTAsMCArMSw3MSBAQAogKyEgQ29weXJpZ2h0 IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMTM5MywxMCArMTM2 MCwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS1mdW5jLmY5MAogKwogKyAgcmV0ID0gLlRSVUUuICAgICAgICAgICAgICAgICEgZnVu YzItcmV0dXJuZWQKICtlbmQgcHJvZ3JhbSB2bGFfZnVuYwotSW5kZXg6IGdkYi03LjguOTAuMjAx NTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtaGlzdG9yeS5leHAKK0luZGV4OiBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWhpc3Rvcnku ZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS1oaXN0b3J5LmV4cAkyMDE1LTAxLTI2IDA3OjQ3OjQyLjQwNjgyOTkxMyArMDEwMAor KysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtaGlz dG9yeS5leHAJMjAxNS0wNS0yOSAwODoyNzowNi4yNjc3NDAyOTggKzAyMDAKIEBAIC0wLDAgKzEs NjIgQEAKICsjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgog KwpAQCAtMTQ2MCwxMCArMTQyNywxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1oaXN0b3J5LmV4cAogKyMgVHJ5IHRvIGFjY2VzcyBo aXN0b3J5IHZhbHVlcyBmb3IgdmxhIHZhbHVlcy4KICtnZGJfdGVzdCAicHJpbnQgXCQ5IiAiID0g MTMxMSIgInByaW50IFwkOSIKICtnZGJfdGVzdCAicHJpbnQgXCQxMCIgIiA9IDEwMDEiICJwcmlu dCBcJDEwIgotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi92bGEtcHR5cGUtc3ViLmV4cAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUtc3ViLmV4cAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03Ljgu OTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUtc3ViLmV4cAky MDE1LTAxLTI2IDA3OjQ3OjQyLjQwNjgyOTkxMyArMDEwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUtc3ViLmV4cAkyMDE1LTA1LTI5 IDA4OjI3OjA2LjI2Nzc0MDI5OCArMDIwMAogQEAgLTAsMCArMSw4NyBAQAogKyMgQ29weXJpZ2h0 IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xNTUyLDEwICsxNTE5 LDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vdmxhLXB0eXBlLXN1Yi5leHAKICsgICJwdHlwZSBhcnJheTEoMTAwKSAoYXJiaXRyYXJ5IGxl bmd0aCkiCiArZ2RiX3Rlc3QgInB0eXBlIGFycmF5Mig0LDEwMCkiICJ0eXBlID0gaW50ZWdlclxc XChraW5kPTRcXFwpIiBcCiArICAicHR5cGUgYXJyYXkyKDQsMTAwKSAoYXJiaXRyYXJ5IGxlbmd0 aCkiCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1wdHlwZS5leHAKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXB0eXBlLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguOTAuMjAxNTAxMjYv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwCTIwMTUtMDEtMjYgMDc6NDc6 NDIuNDA2ODI5OTEzICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS5leHAJMjAxNS0wNS0yOSAwODoyNzowNi4yNjc3NDAyOTgg KzAyMDAKIEBAIC0wLDAgKzEsOTYgQEAKICsjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTY1MywxMCArMTYyMCwxMCBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS5leHAKICtn ZGJfdGVzdCAicHR5cGUgdmxhMig1LCA0NSwgMjApIiBcCiArICAibm8gc3VjaCB2ZWN0b3IgZWxl bWVudCBiZWNhdXNlIG5vdCBhbGxvY2F0ZWQiIFwKICsgICJwdHlwZSB2bGEyKDUsIDQ1LCAyMCkg bm90IGFsbG9jYXRlZCIKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXNpemVvZi5leHAKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXNpemVvZi5leHAKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAv ZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44 LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXNpemVvZi5leHAJMjAx NS0wMS0yNiAwNzo0Nzo0Mi40MDY4Mjk5MTMgKzAxMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXNpemVvZi5leHAJMjAxNS0wNS0yOSAwODoy NzowNi4yNjc3NDAyOTggKzAyMDAKIEBAIC0wLDAgKzEsNDYgQEAKICsjIENvcHlyaWdodCAyMDE0 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTcwNCwxMCArMTY3MSwxMCBA QCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS1zaXplb2YuZXhwCiArZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInB2bGEt YXNzb2NpYXRlZCJdCiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtYXNzb2NpYXRl ZCIKICtnZGJfdGVzdCAicHJpbnQgc2l6ZW9mKHB2bGEpIiAiID0gNDAwMCIgInByaW50IHNpemVv ZiBhc3NvY2lhdGVkIHB2bGEiCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhw CTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA3ODI5OTE3ICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCTIwMTUtMDUtMjkg MDg6Mjc6MDYuMjY3NzQwMjk4ICswMjAwCiBAQCAtMCwwICsxLDQ0IEBACiArIyBDb3B5cmlnaHQg MjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTE3NTMsMTAgKzE3MjAs MTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtc3RyaWRlLmV4cAogK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJzaW5nbGUtZWxl bWVudCIKICtnZGJfdGVzdCAicHJpbnQgcHZsYSIgIiA9IFxcXCg1XFxcKSIgInByaW50IHNpbmds ZS1lbGVtZW50IgogK2dkYl90ZXN0ICJwcmludCBwdmxhKDEpIiAiID0gNSIgInByaW50IG9uZSBz aW5nbGUtZWxlbWVudCIKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTAKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTAKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAv ZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44 LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTAJMjAx NS0wMS0yNiAwNzo0Nzo0Mi40MDc4Mjk5MTcgKzAxMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTAJMjAxNS0wNS0yOSAwODoy NzowNi4yNjg3NDAzMDUgKzAyMDAKIEBAIC0wLDAgKzEsMzAgQEAKICshIENvcHlyaWdodCAyMDE0 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTE3ODgsMTAgKzE3NTUsMTAg QEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtc3RyaWRlLmY5MAogKwogKyAgcHZsYSA9PiBudWxsKCkgICAgICAgICEgc2luZ2xlLWVsZW1l bnQKICtlbmQgcHJvZ3JhbSB2bGFfc3RyaWRlCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAorSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAw MDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LXN0cmluZ3MuZXhwCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA3ODI5OTE3ICswMTAwCisrKysgZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4 cAkyMDE1LTA1LTI5IDA4OjI3OjA2LjI2ODc0MDMwNSArMDIwMAogQEAgLTAsMCArMSwxMDQgQEAK ICsjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAt MTg5NywxMCArMTg2NCwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAogKyAgIndoYXRpcyB2YXJfY2hhcl9wIGFm dGVyIGFzc29jaWF0ZWQiCiArZ2RiX3Rlc3QgInB0eXBlIHZhcl9jaGFyX3AiICJ0eXBlID0gUFRS IFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo3IFxcKSIgXAogKyAgInB0eXBlIHZhcl9jaGFyX3AgYWZ0 ZXIgYXNzb2NpYXRlZCIKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03 LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5mOTAJ MjAxNS0wMS0yNiAwNzo0Nzo0Mi40MDc4Mjk5MTcgKzAxMDAKKysrKyBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCTIwMTUtMDUtMzEg MTU6MjU6MDEuMzA1NjE1NzU1ICswMjAwCiBAQCAtMCwwICsxLDQwIEBACiArISBDb3B5cmlnaHQg MjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0xOTQyLDEwICsxOTA5 LDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vdmxhLXN0cmluZ3MuZjkwCiArICB2YXJfY2hhcl9wID0+IG51bGwoKQogKyAgbCA9IGFzc29j aWF0ZWQodmFyX2NoYXJfcCkgICAgICAgICAgICAgICEgdmFyX2NoYXJfcC1ub3QtYXNzb2NpYXRl ZAogK2VuZCBwcm9ncmFtIHZsYV9zdHJpbmdzCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdWIuZjkwCitJbmRleDogZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdWIuZjkwCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdWIuZjkw CTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA3ODI5OTE3ICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdWIuZjkwCTIwMTUtMDUtMjkgMDg6 Mjc6MDYuMjY4NzQwMzA1ICswMjAwCiBAQCAtMCwwICsxLDgyIEBACiArISBDb3B5cmlnaHQgMjAx NCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0yMDI5LDEwICsxOTk2LDEw IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLXN1Yi5mOTAKICsKICsgIGNhbGwgYmFyKHN1Yl9hcnIzLCBzdWJfYXJyMSkKICtlbmQgcHJv Z3JhbSB2bGFfc3ViCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS12YWx1ZS1zdWItYXJiaXRyYXJ5LmV4cAorSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLWFyYml0cmFy eS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vdmxhLXZhbHVlLXN1Yi1hcmJpdHJhcnkuZXhwCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA3 ODI5OTE3ICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3ZsYS12YWx1ZS1zdWItYXJiaXRyYXJ5LmV4cAkyMDE1LTA1LTI5IDA4OjI3OjA2LjI2 ODc0MDMwNSArMDIwMAogQEAgLTAsMCArMSwzNSBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0yMDY5LDEwICsyMDM2LDEwIEBAIEluZGV4 OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVl LXN1Yi1hcmJpdHJhcnkuZXhwCiArZ2RiX3Rlc3QgInAgYXJyYXkxKDEwMCkiICIgPSAxMDAiICJw cmludCBhcmJpdGFyeSBhcnJheTEoMTAwKSIKICtnZGJfdGVzdCAicCBhcnJheTIoNCwxMCkiICIg PSAxIiAicHJpbnQgYXJiaXRhcnkgYXJyYXkyKDQsMTApIgogK2dkYl90ZXN0ICJwIGFycmF5Mig0 LDEwMCkiICIgPSAxIiAicHJpbnQgYXJiaXRhcnkgYXJyYXkyKDQsMTAwKSIKLUluZGV4OiBnZGIt Ny44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1m aW5pc2guZXhwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3ZsYS12YWx1ZS1zdWItZmluaXNoLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVs bAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguOTAuMjAx NTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLWZpbmlzaC5leHAJ MjAxNS0wMS0yNiAwNzo0Nzo0Mi40MDc4Mjk5MTcgKzAxMDAKKysrKyBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1maW5pc2guZXhwCTIw MTUtMDUtMjkgMDg6Mjc6MDYuMjY4NzQwMzA1ICswMjAwCiBAQCAtMCwwICsxLDQ5IEBACiArIyBD b3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIxMjMs MTAgKzIwOTAsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLWZpbmlzaC5leHAKICtnZGJfdGVzdCAicCBzdWJfYXJy MigxLCAxLCAxKSIgIiA9IDMwIiAic3ViX2FycjIoMSwgMSwgMSkgYWZ0ZXIgZmluaXNoIgogK2dk Yl90ZXN0ICJwIHN1Yl9hcnIyKDIsIDEsIDEpIiAiID0gMjAiICJzdWJfYXJyMigyLCAxLCAxKSBh ZnRlciBmaW5pc2giCiArCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS1zdWIuZXhwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS1zdWIuZXhwCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS1z dWIuZXhwCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA4ODI5OTIyICswMTAwCisrKysgZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS1zdWIuZXhwCTIw MTUtMDUtMjkgMDg6Mjc6MDYuMjY5NzQwMzExICswMjAwCiBAQCAtMCwwICsxLDkwIEBACiArIyBD b3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIyMTgs MTAgKzIxODUsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLmV4cAogKyAgInNldCBhcnJheSgyLDIsMikgdG8gMjAg aW4gc3Vicm91dGluZSAocGFzc2VkIHZsYSkiCiArZ2RiX3Rlc3QgInByaW50IGFycmF5MiIgIiA9 IFxcKCAqXFwoICpcXCggKjMwLCAqMjAsICozLFxbKCkzLCAuXF0qXFwpIiBcCiArICAicHJpbnQg YXJyYXkyIGluIGZvbyBhZnRlciBpdCB3YXMgbW9maWZpZWQgaW4gZGVidWdnZXIgKHBhc3NlZCB2 bGEpIgotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtdmFsdWUuZXhwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMTI2 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAkyMDE1LTAxLTI2IDA3OjQ3 OjQyLjQwODgyOTkyMiArMDEwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUuZXhwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY5NzQwMzEx ICswMjAwCiBAQCAtMCwwICsxLDE0OCBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0yMzcxLDEwICsyMzM4LDEwIEBAIEluZGV4OiBnZGIt Ny44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAog K2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJwdmxhLWRlYXNzb2NpYXRlZCIKICtnZGJfdGVz dCAicHJpbnQgXCRteXB2YXIoMSwzLDgpIiAiID0gMTAwMSIgXAogKyAgInByaW50IFwkbXlwdmFy KDEsMyw4KSBhZnRlciBkZWFsbG9jYXRlZCIKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLmY5MAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEuZjkwCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC45 MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS5mOTAJMjAxNS0wMS0yNiAw Nzo0Nzo0Mi40MDg4Mjk5MjIgKzAxMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLmY5MAkyMDE1LTA1LTI5IDA4OjI3OjA2LjI2OTc0MDMxMSAr MDIwMAogQEAgLTAsMCArMSw1NiBAQAogKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMjQzMiwxMSArMjM5OSwxMSBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS5mOTAKICsgIGFsbG9j YXRlICh2bGEzICgyLDIpKSAgICAgICAgICAgICAgICEgdmxhMi1kZWFsbG9jYXRlZAogKyAgdmxh Myg6LDopID0gMTMKICtlbmQgcHJvZ3JhbSB2bGEKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2 L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cAorSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9y dHJhbi5leHAJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40MDg4Mjk5MjIgKzAxMDAKLUBAIC0wLDAgKzEs MTgyIEBACisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12 bGEtZm9ydHJhbi5leHAJMjAxNS0wNS0yOSAxMToxMzo1My45NTE2NTY1OTEgKzAyMDAKK0BAIC0w LDAgKzEsMTgxIEBACiArIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KICsKICsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CkBAIC0yNTA3LDggKzI0NzQsNyBAQCBJbmRleDogZ2Ri LTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAK ICttaV9ydW5fY21kCiArbWlfZXhwZWN0X3N0b3AgImJyZWFrcG9pbnQtaGl0IiAidmxhIiAiIiAi Lip2bGEuZjkwIiAiJGJwX2xpbmVubyIgXAogKyAgeyAiIiAiZGlzcD1cImRlbFwiIiB9ICJydW4g dG8gYnJlYWtwb2ludCBhdCBsaW5lICRicF9saW5lbm8iCi0rbWlfZ2RiX3Rlc3QgIjUxMC1kYXRh LWV2YWx1YXRlLWV4cHJlc3Npb24gdmxhMSIgXAotKyAgIjUxMFxcXmRvbmUsdmFsdWU9XCJcXCgw LCAwLCAwLCAwLCAwXFwpXCIiICJldmFsdWF0ZSBhbGxvY2F0ZWQgdmxhIgorKyMgQ29udGVudCBv ZiAndmxhMScgaXMgdW5pbml0aWFsaXplZCBoZXJlLgogKwogK21pX2NyZWF0ZV92YXJvYmpfY2hl Y2tlZCB2bGExX2FsbG9jYXRlZCB2bGExICJyZWFsXFxcKGtpbmQ9NFxcXCkgXFxcKDVcXFwpIiBc CiArICAiY3JlYXRlIGxvY2FsIHZhcmlhYmxlIHZsYTFfYWxsb2NhdGVkIgpAQCAtMjYxOSwxMCAr MjU4NSwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5t aS9taS12bGEtZm9ydHJhbi5leHAKICsKICttaV9nZGJfZXhpdAogK3JldHVybiAwCi1JbmRleDog Z2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5taS92bGEuZjkwCitJbmRleDog Z2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5taS92bGEuZjkwCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0r KysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5taS92bGEuZjkwCTIwMTUt MDEtMjYgMDc6NDc6NDIuNDA5ODI5OTI2ICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvdGVzdHN1aXRlL2dkYi5taS92bGEuZjkwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjcwNzQwMzE3 ICswMjAwCiBAQCAtMCwwICsxLDQyIEBACiArISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0yNjY2LDExICsyNjMyLDExIEBAIEluZGV4OiBnZGIt Ny44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL3ZsYS5mOTAKICsgIHB2bGEyID0+ IG51bGwoKQogKyAgbCA9IGFzc29jaWF0ZWQocHZsYTIpICAgICAgICEgcHZsYTItc2V0LXRvLW51 bGwKICtlbmQgcHJvZ3JhbSB2bGEKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90eXBl cHJpbnQuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3R5cGVwcmludC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDEyNi5vcmlnL2dkYi90eXBlcHJpbnQuYwkyMDE1 LTAxLTI2IDA3OjQ3OjI1Ljg1Njc1ODQxOCArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAxMjYv Z2RiL3R5cGVwcmludC5jCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA5ODI5OTI2ICswMTAwCi1AQCAt NDU2LDYgKzQ1NiwxMyBAQCB3aGF0aXNfZXhwIChjaGFyICpleHAsIGludCBzaG93KQorLS0tIGdk Yi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvdHlwZXByaW50LmMJMjAxNS0wNS0yOSAwODoyNzow Mi42ODg3MTc1MjMgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90eXBlcHJpbnQu YwkyMDE1LTA1LTI5IDA4OjI3OjA2LjI3MDc0MDMxNyArMDIwMAorQEAgLTQ1OCw2ICs0NTgsMTMg QEAgd2hhdGlzX2V4cCAoY2hhciAqZXhwLCBpbnQgc2hvdykKICAKICAgIHR5cGUgPSB2YWx1ZV90 eXBlICh2YWwpOwogIApAQCAtMjY4NCwxMCArMjY1MCwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4y MDE1MDEyNi9nZGIvdHlwZXByaW50LmMKICAgIGdldF91c2VyX3ByaW50X29wdGlvbnMgKCZvcHRz KTsKICAgIGlmIChvcHRzLm9iamVjdHByaW50KQogICAgICB7Ci1JbmRleDogZ2RiLTcuOC45MC4y MDE1MDEyNi9nZGIvdmFsYXJpdGguYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Zh bGFyaXRoLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMTI2Lm9yaWcvZ2RiL3Zh bGFyaXRoLmMJMjAxNS0wMS0yNiAwNzo0NzoyNS44NTc3NTg0MjIgKzAxMDAKLSsrKyBnZGItNy44 LjkwLjIwMTUwMTI2L2dkYi92YWxhcml0aC5jCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA5ODI5OTI2 ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTUt MDUtMjkgMDg6Mjc6MDIuNjg5NzE3NTMwICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvdmFsYXJpdGguYwkyMDE1LTA1LTI5IDA4OjI3OjA2LjI3MTc0MDMyNCArMDIwMAogQEAgLTE5 MywxMiArMTkzLDMxIEBAIHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVlICoK ICAgIHN0cnVjdCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAo YXJyYXkpKTsKICAgIHN0cnVjdCB0eXBlICplbHRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVf VEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKQEAgLTI3MjIsMTAgKzI2ODgsMTAgQEAgSW5kZXg6 IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3ZhbGFyaXRoLmMKICAKICAgIGlmIChWQUxVRV9MVkFM IChhcnJheSkgPT0gbHZhbF9tZW1vcnkgJiYgdmFsdWVfbGF6eSAoYXJyYXkpKQogICAgICB2ID0g YWxsb2NhdGVfdmFsdWVfbGF6eSAoZWx0X3R5cGUpOwotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAx MjYvZ2RiL3ZhbHByaW50LmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YWxwcmlu dC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDEyNi5vcmlnL2dkYi92YWxwcmlu dC5jCTIwMTUtMDEtMjYgMDc6NDc6MjUuODU4NzU4NDI3ICswMTAwCi0rKysgZ2RiLTcuOC45MC4y MDE1MDEyNi9nZGIvdmFscHJpbnQuYwkyMDE1LTAxLTI2IDA3OjQ3OjQyLjQxMDgyOTkzMCArMDEw MAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvdmFscHJpbnQuYwkyMDE1LTA1LTI5 IDA4OjI3OjAyLjY5MDcxNzUzNiArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Zh bHByaW50LmMJMjAxNS0wNS0yOSAwODoyNzowNi4yNzE3NDAzMjQgKzAyMDAKIEBAIC0zMDMsNiAr MzAzLDE4IEBAIHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5IChzdHJ1Y3QgdWlfZmlsZQogIHsKICAg IENIRUNLX1RZUEVERUYgKHR5cGUpOwpAQCAtMjc2NCw3ICsyNzMwLDcgQEAgSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAxMjYvZ2RiL3ZhbHByaW50LmMKICAvKiBBIGdlbmVyaWMgdmFsX3ByaW50IHRo YXQgaXMgc3VpdGFibGUgZm9yIHVzZSBieSBsYW5ndWFnZQogICAgIGltcGxlbWVudGF0aW9ucyBv ZiB0aGUgbGFfdmFsX3ByaW50IG1ldGhvZC4gIFRoaXMgZnVuY3Rpb24gY2FuCiAgICAgaGFuZGxl IG1vc3QgdHlwZSBjb2RlcywgdGhvdWdoIG5vdCBhbGwsIG5vdGFibHkgZXhjZXB0aW9uCi1AQCAt ODAwLDEyICs4MjQsMTYgQEAgc3RhdGljIGludAorQEAgLTgwMiwxMiArODI2LDE2IEBAIHN0YXRp YyBpbnQKICB2YWx1ZV9jaGVja19wcmludGFibGUgKHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtLAogIAkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICpvcHRpb25zKQogIHsKQEAgLTI3ODEsNyArMjc0Nyw3IEBAIEluZGV4OiBnZGItNy44Ljkw LjIwMTUwMTI2L2dkYi92YWxwcmludC5jCiAgICBpZiAodmFsdWVfZW50aXJlbHlfb3B0aW1pemVk X291dCAodmFsKSkKICAgICAgewogICAgICAgIGlmIChvcHRpb25zLT5zdW1tYXJ5ICYmICF2YWxf cHJpbnRfc2NhbGFyX3R5cGVfcCAodmFsdWVfdHlwZSAodmFsKSkpCi1AQCAtODMxLDYgKzg1OSwx OCBAQCB2YWx1ZV9jaGVja19wcmludGFibGUgKHN0cnVjdCB2YWx1ZSAqdmFsCitAQCAtODMzLDYg Kzg2MSwxOCBAQCB2YWx1ZV9jaGVja19wcmludGFibGUgKHN0cnVjdCB2YWx1ZSAqdmFsCiAgICAg ICAgcmV0dXJuIDA7CiAgICAgIH0KICAKQEAgLTI4MDAsMjMgKzI3NjYsMjMgQEAgSW5kZXg6IGdk Yi03LjguOTAuMjAxNTAxMjYvZ2RiL3ZhbHByaW50LmMKICAgIHJldHVybiAxOwogIH0KICAKLUlu ZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi92YWxwcmludC5oCitJbmRleDogZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvdmFscHJpbnQuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAx NTAxMjYub3JpZy9nZGIvdmFscHJpbnQuaAkyMDE1LTAxLTI2IDA3OjQ3OjI1Ljg1OTc1ODQzMSAr MDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3ZhbHByaW50LmgJMjAxNS0wMS0yNiAw Nzo0Nzo0Mi40MTA4Mjk5MzAgKzAxMDAKLUBAIC0yMTcsNCArMjE3LDggQEAgZXh0ZXJuIHZvaWQg b3V0cHV0X2NvbW1hbmRfY29uc3QgKGNvbnN0Ci0gCi0gZXh0ZXJuIGludCB2YWxfcHJpbnRfc2Nh bGFyX3R5cGVfcCAoc3RydWN0IHR5cGUgKnR5cGUpOworLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAu b3JpZy9nZGIvdmFscHJpbnQuaAkyMDE1LTA1LTI5IDA4OjI3OjAyLjY5MTcxNzU0MyArMDIwMAor KysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHByaW50LmgJMjAxNS0wNS0yOSAwODoyNzow Ni4yNzI3NDAzMzAgKzAyMDAKK0BAIC0yMzIsNCArMjMyLDggQEAgZXh0ZXJuIHZvaWQgcHJpbnRf Y29tbWFuZF9wYXJzZV9mb3JtYXQgKAorIAkJCQkJc3RydWN0IGZvcm1hdF9kYXRhICpmbXRwKTsK KyBleHRlcm4gdm9pZCBwcmludF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWwsIGNvbnN0IHN0cnVj dCBmb3JtYXRfZGF0YSAqZm10cCk7CiAgCiArZXh0ZXJuIHZvaWQgdmFsX3ByaW50X25vdF9hbGxv Y2F0ZWQgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0pOwogKwogK2V4dGVybiB2b2lkIHZhbF9wcmlu dF9ub3RfYXNzb2NpYXRlZCAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7CiArCiAgI2VuZGlmCi1J bmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdmFsdWUuYworSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL3ZhbHVlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMTI2 Lm9yaWcvZ2RiL3ZhbHVlLmMJMjAxNS0wMS0yNiAwNzo0NzoyNS44NjA3NTg0MzUgKzAxMDAKLSsr KyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi92YWx1ZS5jCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDEx ODI5OTM1ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi92YWx1ZS5jCTIw MTUtMDUtMjkgMDg6Mjc6MDIuNjkzNzE3NTU1ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvdmFsdWUuYwkyMDE1LTA1LTI5IDA4OjI3OjA2LjI3Mzc0MDMzNyArMDIwMAogQEAgLTQw LDYgKzQwLDcgQEAKICAjaW5jbHVkZSAidHJhY2Vwb2ludC5oIgogICNpbmNsdWRlICJjcC1hYmku aCIKQEAgLTI4MjUsNyArMjc5MSw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi92 YWx1ZS5jCiAgCiAgLyogUHJvdG90eXBlcyBmb3IgZXhwb3J0ZWQgZnVuY3Rpb25zLiAgKi8KICAK LUBAIC0xNzU1LDYgKzE3NTYsMjUgQEAgc2V0X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAoc3Ry dWN0IHZhbAorQEAgLTE3NzYsNiArMTc3NywyNSBAQCBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0 aW9uIChzdHJ1Y3QgdmFsCiAgICAgICAgaWYgKGZ1bmNzLT5jb3B5X2Nsb3N1cmUpCiAgICAgICAg ICBjb21wb25lbnQtPmxvY2F0aW9uLmNvbXB1dGVkLmNsb3N1cmUgPSBmdW5jcy0+Y29weV9jbG9z dXJlICh3aG9sZSk7CiAgICAgIH0KQEAgLTI4NTEsNyArMjgxNyw3IEBAIEluZGV4OiBnZGItNy44 LjkwLjIwMTUwMTI2L2dkYi92YWx1ZS5jCiAgfQogIAogIAwKLUBAIC0zMDQxLDEzICszMDYxLDIy IEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcKK0BAIC0zMDgwLDEz ICszMTAwLDIyIEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcKICAJ diA9IGFsbG9jYXRlX3ZhbHVlX2xhenkgKHR5cGUpOwogICAgICAgIGVsc2UKICAJewpAQCAtMjg4 MCw3ICsyODQ2LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3ZhbHVlLmMKICAg ICAgfQogICAgc2V0X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAodiwgYXJnMSk7CiAgICBWQUxV RV9SRUdOVU0gKHYpID0gVkFMVUVfUkVHTlVNIChhcmcxKTsKLUBAIC0zNjM1LDcgKzM2NjQsOCBA QCByZWFkanVzdF9pbmRpcmVjdF92YWx1ZV90eXBlIChzdHJ1Y3QgdmFsCitAQCAtMzY3NCw3ICsz NzAzLDggQEAgcmVhZGp1c3RfaW5kaXJlY3RfdmFsdWVfdHlwZSAoc3RydWN0IHZhbAogIAkJCSAg ICAgIHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUpCiAgewogICAgLyogUmUtYWRqdXN0IHR5 cGUuICAqLwpAQCAtMjg5MCw3ICsyODU2LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYv Z2RiL3ZhbHVlLmMKICAKICAgIC8qIEFkZCBlbWJlZGRpbmcgaW5mby4gICovCiAgICBzZXRfdmFs dWVfZW5jbG9zaW5nX3R5cGUgKHZhbHVlLCBlbmNfdHlwZSk7Ci1AQCAtMzY1Miw2ICszNjgyLDEy IEBAIGNvZXJjZV9yZWYgKHN0cnVjdCB2YWx1ZSAqYXJnKQorQEAgLTM2OTEsNiArMzcyMSwxMiBA QCBjb2VyY2VfcmVmIChzdHJ1Y3QgdmFsdWUgKmFyZykKICAgIHN0cnVjdCB2YWx1ZSAqcmV0dmFs OwogICAgc3RydWN0IHR5cGUgKmVuY190eXBlOwogIApAQCAtMjkwMyw3ICsyODY5LDcgQEAgSW5k ZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3ZhbHVlLmMKICAgIHJldHZhbCA9IGNvZXJjZV9y ZWZfaWZfY29tcHV0ZWQgKGFyZyk7CiAgICBpZiAocmV0dmFsKQogICAgICByZXR1cm4gcmV0dmFs OwotQEAgLTM3ODYsOCArMzgyMiwxNCBAQCB2YWx1ZV9mZXRjaF9sYXp5IChzdHJ1Y3QgdmFsdWUg KnZhbCkKK0BAIC0zODI1LDggKzM4NjEsMTQgQEAgdmFsdWVfZmV0Y2hfbGF6eSAoc3RydWN0IHZh bHVlICp2YWwpCiAgICAgIH0KICAgIGVsc2UgaWYgKFZBTFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9t ZW1vcnkpCiAgICAgIHsKQEAgLTI5MTksMTEgKzI4ODUsMTEgQEAgSW5kZXg6IGdkYi03LjguOTAu MjAxNTAxMjYvZ2RiL3ZhbHVlLmMKICAKICAgICAgICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpKQog IAlyZWFkX3ZhbHVlX21lbW9yeSAodmFsLCAwLCB2YWx1ZV9zdGFjayAodmFsKSwKLUluZGV4OiBn ZGItNy44LjkwLjIwMTUwMTI2L2dkYi9kd2FyZjJsb2MuYworSW5kZXg6IGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL2R3YXJmMmxvYy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDEy Ni5vcmlnL2dkYi9kd2FyZjJsb2MuYwkyMDE1LTAxLTI2IDA3OjQ3OjI1Ljg2Mjc1ODQ0NCArMDEw MAotKysrIGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMDEtMjYgMDc6 NDc6NDIuNDEyODI5OTM5ICswMTAwCi1AQCAtMjI5Myw2ICsyMjkzLDExIEBAIGR3YXJmMl9ldmFs dWF0ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHkKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9y aWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMDUtMjkgMDg6Mjc6MDIuNjk0NzE3NTYyICswMjAwCisr KysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZHdhcmYybG9jLmMJMjAxNS0wNS0yOSAwODoyNzow Ni4yNzQ3NDAzNDMgKzAyMDAKK0BAIC0yMjk0LDYgKzIyOTQsMTEgQEAgZHdhcmYyX2V2YWx1YXRl X2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eQogIAkgICAgaW50IGluX3N0YWNrX21lbW9yeSA9IGR3 YXJmX2V4cHJfZmV0Y2hfaW5fc3RhY2tfbWVtb3J5IChjdHgsIDApOwogIAogIAkgICAgZG9fY2xl YW51cHMgKHZhbHVlX2NoYWluKTsKQEAgLTI5MzUsNyArMjkwMSw3IEBAIEluZGV4OiBnZGItNy44 LjkwLjIwMTUwMTI2L2dkYi9kd2FyZjJsb2MuYwogIAkgICAgcmV0dmFsID0gdmFsdWVfYXRfbGF6 eSAodHlwZSwgYWRkcmVzcyArIGJ5dGVfb2Zmc2V0KTsKICAJICAgIGlmIChpbl9zdGFja19tZW1v cnkpCiAgCSAgICAgIHNldF92YWx1ZV9zdGFjayAocmV0dmFsLCAxKTsKLUBAIC0yNTUyLDYgKzI1 NTcsMTkgQEAgZHdhcmYyX2NvbXBpbGVfcHJvcGVydHlfdG9fYyAoc3RydWN0IHVpXworQEAgLTI1 NzcsNiArMjU4MiwxOSBAQCBkd2FyZjJfY29tcGlsZV9wcm9wZXJ0eV90b19jIChzdHJ1Y3QgdWlf CiAgCQkJICAgICBkYXRhLCBkYXRhICsgc2l6ZSwgcGVyX2N1KTsKICB9CiAgCgpkaWZmIC0tZ2l0 IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCAwNTEzMjQxLi5iNTJlZmExIDEwMDY0NAotLS0g YS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAtMTgsMTUgKzE4LDE1IEBAIFN1bW1hcnk6IEEg R05VIHNvdXJjZS1sZXZlbCBkZWJ1Z2dlciBmb3IgQywgQysrLCBGb3J0cmFuLCBHbyBhbmQgb3Ro ZXIgbGFuZ3VhZ2VzCiBOYW1lOiAlez9zY2xfcHJlZml4fWdkYgogCiAjIEZyZWV6ZSBpdCB3aGVu IEdEQiBnZXRzIGJyYW5jaGVkCi0lZ2xvYmFsIHNuYXBzcmMgICAgMjAxNDA2MTEKKyVnbG9iYWwg c25hcHNyYyAgICAyMDE1MDUzMQogIyBTZWUgdGltZXN0YW1wIG9mIHNvdXJjZSBnbnVsaWIgaW5z dGFsbGVkIGludG8gZ2RiL2dudWxpYi8gLgogJWdsb2JhbCBzbmFwZ251bGliIDIwMTIxMjEzCiAl Z2xvYmFsIHRhcm5hbWUgZ2RiLSV7dmVyc2lvbn0KLVZlcnNpb246IDcuOS4xCitWZXJzaW9uOiA3 LjkuNTAuJXtzbmFwc3JjfQogCiAjIFRoZSByZWxlYXNlIGFsd2F5cyBjb250YWlucyBhIGxlYWRp bmcgcmVzZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBhdCAxLgogIyBgdXBzdHJlYW0nIGlzIG5vdCBh IHBhcnQgb2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkgcnBtIGRlcGVuZGVuY2llcyBjb21wYXRpYmxl IGZvciB0aGUgdGVzdGluZy4KLVJlbGVhc2U6IDE0JXs/ZGlzdH0KK1JlbGVhc2U6IDElez9kaXN0 fQogCiBMaWNlbnNlOiBHUEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTHYy KyBhbmQgR1BMdjIrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQgQlNE IGFuZCBQdWJsaWMgRG9tYWluIGFuZCBHRkRMCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJz CkBAIC0xMjAsOSArMTIwLDYgQEAgUGF0Y2gxMDU6IGdkYi02LjMtcHBjNjRzeXNjYWxsLTIwMDQw NjIyLnBhdGNoCiAjPW1heWJlcHVzaDogV3JpdGUgbmV3IHRlc3RjYXNlLgogUGF0Y2gxMTE6IGdk Yi02LjMtcHBjNjRkaXNwbGF5c3ltYm9sLTIwMDQxMTI0LnBhdGNoCiAKLSMgRml4IHVwc3RyZWFt IGBzZXQgc2NoZWR1bGVyLWxvY2tpbmcgc3RlcCcgdnMuIHVwc3RyZWFtIFBQQyBhdG9taWMgc2Vx cy4KLSM9cHVzaCt3b3JrOiBJdCBpcyBhIGJpdCBkaWZmaWN1bHQgcGF0Y2gsIGEgcGFydCBpcyBw cGMgc3BlY2lmaWMuCi1QYXRjaDExMjogZ2RiLTYuNi1zY2hlZHVsZXJfbG9ja2luZy1zdGVwLXN3 LXdhdGNocG9pbnRzMi5wYXRjaAogIyBNYWtlIHVwc3RyZWFtIGBzZXQgc2NoZWR1bGVyLWxvY2tp bmcgc3RlcCcgYXMgZGVmYXVsdC4KICM9cHVzaCt3b3JrOiBIb3cgbXVjaCBpcyBzY2hlZHVsZXIt bG9ja2luZyByZWxldmFudCBhZnRlciBub24tc3RvcD8KIFBhdGNoMjYwOiBnZGItNi42LXNjaGVk dWxlcl9sb2NraW5nLXN0ZXAtaXMtZGVmYXVsdC5wYXRjaApAQCAtMTgxLDExICsxNzgsNiBAQCBQ YXRjaDE5NDogZ2RiLTYuNS1iejE4NTMzNy1yZXNvbHZlLXRscy13aXRob3V0LWRlYnVnaW5mby12 Mi5wYXRjaAogIz1mZWRvcmF0ZXN0K3dvcms6IE9uZSBzaG91bGQgcmVjaGVjayBpZiBpdCBpcyBy ZWFsbHkgZml4ZWQgdXBzdHJlYW0uCiBQYXRjaDE5NjogZ2RiLTYuNS1zaGFyZWRsaWJyYXJ5LXBh dGgucGF0Y2gKIAotIyBTdWdnZXN0IGZpeGluZyB5b3VyIHRhcmdldCBhcmNoaXRlY3R1cmUgZm9y IGdkYnNlcnZlcigxKSAoQlogMTkwODEwKS4KLSMgRklYTUU6IEl0IGNvdWxkIGJlIGF1dG9kZXRl Y3RlZC4KLSM9cHVzaCt3b3JrOiBUaGVyZSBhcmUgbW9yZSBzdWNoIGVycm9yIGNhc2VzIHRoYXQg Y2FuIGhhcHBlbi4KLVBhdGNoMTk5OiBnZGItNi41LWJ6MTkwODEwLWdkYnNlcnZlci1hcmNoLWFk dmljZS5wYXRjaAotCiAjIFRlc3RjYXNlIGZvciBkZWFkbG9ja2luZyBvbiBsYXN0IGFkZHJlc3Mg c3BhY2UgYnl0ZTsgZm9yIGNvcnJ1cHRlZCBiYWNrdHJhY2VzLgogIz1mZWRvcmF0ZXN0CiBQYXRj aDIxMTogZ2RiLTYuNS1sYXN0LWFkZHJlc3Mtc3BhY2UtYnl0ZS10ZXN0LnBhdGNoCkBAIC0yMjQs NyArMjE2LDcgQEAgUGF0Y2gyMzE6IGdkYi02LjMtYnoyMDI2ODktZXhlYy1mcm9tLXB0aHJlYWQt dGVzdC5wYXRjaAogCiAjIEJhY2twb3J0ZWQgZml4dXBzIHBvc3QgdGhlIHNvdXJjZSB0YXJiYWxs LgogI1hkcm9wOiBKdXN0IGJhY2twb3J0cy4KLVBhdGNoMjMyOiBnZGItdXBzdHJlYW0ucGF0Y2gK KyNQYXRjaDIzMjogZ2RiLXVwc3RyZWFtLnBhdGNoCiAKICMgVGVzdGNhc2UgZm9yIFBQQyBQb3dl cjYvREZQIGluc3RydWN0aW9ucyBkaXNhc3NlbWJseSAoQlogMjMwMDAwKS4KICM9ZmVkb3JhdGVz dCtwcGMKQEAgLTM1NSwxMSArMzQ3LDYgQEAgUGF0Y2gzNDg6IGdkYi02LjgtYno0NjY5MDEtYmFj a3RyYWNlLWZ1bGwtcHJlbGlua2VkLnBhdGNoCiAjPXB1c2grd29yawogUGF0Y2gzNDk6IGdkYi1h cmNoZXIucGF0Y2gKIAotIyBGaXggcGFyc2luZyBlbGY2NC1pMzg2IGZpbGVzIGZvciBrZHVtcCBQ QUUgdm1jb3JlIGR1bXBzIChCWiA0NTcxODcpLgotIyAtIFR1cm4gb24gNjQtYml0IEJGRCBzdXBw b3J0LCBnbG9iYWxseSBlbmFibGUgQUNfU1lTX0xBUkdFRklMRS4KLSM9ZmVkb3JhdGVzdAotUGF0 Y2gzNjA6IGdkYi02LjgtYno0NTcxODctbGFyZ2VmaWxlLXRlc3QucGF0Y2gKLQogIyBOZXcgdGVz dCBmb3Igc3RlcC1yZXN1bWUgYnJlYWtwb2ludCBwbGFjZWQgaW4gbXVsdGlwbGUgdGhyZWFkcyBh dCBvbmNlLgogIz1mZWRvcmF0ZXN0CiBQYXRjaDM4MTogZ2RiLXNpbXVsdGFuZW91cy1zdGVwLXJl c3VtZS1icmVha3BvaW50LXRlc3QucGF0Y2gKQEAgLTUwMSw5ICs0ODgsNiBAQCBQYXRjaDgxODog Z2RiLXJoYno3OTU0MjQtYml0cG9zLWxhenl2YWx1ZS5wYXRjaAogIz1mZWRvcmF0ZXN0CiBQYXRj aDgzMjogZ2RiLXJoYno5NDc1NjQtZmluZHZhci1hc3NlcnRpb24tZnJhbWUtZmFpbGVkLXRlc3Rj YXNlLnBhdGNoCiAKLSMgRml4IGNyYXNoIG9uICdlbmFibGUgY291bnQnIChTaW1vbiBNYXJjaGks IEJaIDk5MzExOCkuCi1QYXRjaDg0MzogZ2RiLWVuYWJsZS1jb3VudC1jcmFzaC5wYXRjaAotCiAj IFtyaGVsNl0gRFRTIGJhY2t3YXJkIFB5dGhvbiBjb21wYXRpYmlsaXR5IEFQSSAoQlogMTAyMDAw NCwgUGhpbCBNdWxkb29uKS4KIFBhdGNoODQ4OiBnZGItZHRzLXJoZWw2LXB5dGhvbi1jb21wYXQu cGF0Y2gKIApAQCAtNTI5LDE1ICs1MTMsNiBAQCBQYXRjaDkyNzogZ2RiLXB5dGhvbi1naWwucGF0 Y2gKICMgRml4IGppdC1yZWFkZXIuaCBmb3IgbXVsdGktbGliLgogUGF0Y2g5Nzg6IGdkYi1qaXQt cmVhZGVyLW11bHRpbGliLnBhdGNoCiAKLSMgVGVtcG9yYXJpbHkgZGlzYWJsZSBkZy1leHRyYWN0 LXJlc3VsdHMucHkgdG8gZml4IGdkYi5zdW0gc29ydGluZy4KLVBhdGNoOTgyOiBnZGItbm8tZGct ZXh0cmFjdC1yZXN1bHRzLXB5LnBhdGNoCi0KLSMgRml4IFB5dGhvbiAzIGJ1aWxkIGVycm9yIG9u IDMyLWJpdCBob3N0cy4KLVBhdGNoOTg0OiBnZGItcHl0aG9uMy1weV9oYXNoX3QtMzJiaXQucGF0 Y2gKLQotIyBGaXggUHl0aG9uIDMgdGVzdHN1aXRlIHJlZ3Jlc3Npb25zLgotUGF0Y2g5ODU6IGdk Yi1weXRob24zLXRlc3RzdWl0ZS5wYXRjaAotCiAlaWYgMCV7IT9yaGVsOjF9IHx8IDAlez9yaGVs fSA+IDYKICMgUkxfU1RBVEVfRkVET1JBX0dEQiB3b3VsZCBub3QgYmUgZm91bmQgZm9yOgogIyBQ YXRjaDY0MjogZ2RiLXJlYWRsaW5lNjItYXNrLW1vcmUtcmgucGF0Y2gKQEAgLTcxNSw3ICs2OTAs NyBAQCBmaW5kIC1uYW1lICIqLmluZm8qInx4YXJncyBybSAtZgogIyBNYXRjaCB0aGUgRmVkb3Jh J3MgdmVyc2lvbiBpbmZvLgogJXBhdGNoMiAtcDEKIAotJXBhdGNoMjMyIC1wMQorI3BhdGNoMjMy IC1wMQogJXBhdGNoMzQ5IC1wMQogJXBhdGNoODg4IC1wMQogJXBhdGNoOTgzIC1wMQpAQCAtNzI1 LDcgKzcwMCw2IEBAIGZpbmQgLW5hbWUgIiouaW5mbyoifHhhcmdzIHJtIC1mCiAKICVwYXRjaDEw NSAtcDEKICVwYXRjaDExMSAtcDEKLSVwYXRjaDExMiAtcDEKICVwYXRjaDExOCAtcDEKICVwYXRj aDEyMiAtcDEKICVwYXRjaDEyNSAtcDEKQEAgLTczOCw3ICs3MTIsNiBAQCBmaW5kIC1uYW1lICIq LmluZm8qInx4YXJncyBybSAtZgogJXBhdGNoMTg4IC1wMQogJXBhdGNoMTk0IC1wMQogJXBhdGNo MTk2IC1wMQotJXBhdGNoMTk5IC1wMQogJXBhdGNoMjA4IC1wMQogJXBhdGNoMjExIC1wMQogJXBh dGNoMjEzIC1wMQpAQCAtNzc1LDcgKzc0OCw2IEBAIGZpbmQgLW5hbWUgIiouaW5mbyoifHhhcmdz IHJtIC1mCiAlcGF0Y2gzMzAgLXAxCiAlcGF0Y2gzNDMgLXAxCiAlcGF0Y2gzNDggLXAxCi0lcGF0 Y2gzNjAgLXAxCiAlcGF0Y2gzODEgLXAxCiAlcGF0Y2gzODIgLXAxCiAlcGF0Y2gzOTEgLXAxCkBA IC04MTUsNyArNzg3LDYgQEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICVwYXRj aDgxNyAtcDEKICVwYXRjaDgxOCAtcDEKICVwYXRjaDgzMiAtcDEKLSVwYXRjaDg0MyAtcDEKICVw YXRjaDg1MiAtcDEKICVwYXRjaDg2MyAtcDEKICVwYXRjaDg4NyAtcDEKQEAgLTgyMyw5ICs3OTQs NiBAQCBmaW5kIC1uYW1lICIqLmluZm8qInx4YXJncyBybSAtZgogJXBhdGNoOTI1IC1wMQogJXBh dGNoOTI3IC1wMQogJXBhdGNoOTc4IC1wMQotJXBhdGNoOTgyIC1wMQotJXBhdGNoOTg0IC1wMQot JXBhdGNoOTg1IC1wMQogCiAlcGF0Y2g4NDggLXAxCiAlaWYgMCV7IT9lbDY6MX0KQEAgLTg3Nyw2 ICs4NDUsOCBAQCBybSAtcmYgcmVhZGxpbmUvKgogbXYgLWYgcmVhZGxpbmUtZG9jIHJlYWRsaW5l L2RvYwogJWVuZGlmICMgMCV7IT9yaGVsOjF9IHx8IDAlez9yaGVsfSA+IDYKIAorcm0gLXJmIHps aWIKKwogJWJ1aWxkCiBybSAtcmYgJXtidWlsZHJvb3R9CiAKQEAgLTk1Niw2ICs5MjYsNyBAQCAk KDogcHBjNjQgaG9zdCBidWlsZCBjcmFzaGVzIG9uIHBwYyB2YXJpYW50IG9mIGxpYmV4cGF0LnNv ICkJXAogJWVsc2UKIAktLWRpc2FibGUtaW5wcm9jZXNzLWFnZW50CQkJCVwKICVlbmRpZgorCS0t d2l0aC1zeXN0ZW0temxpYgkJCQkJXAogCSAgICAgIC0td2l0aC1hdXRvLWxvYWQtZGlyPSckZGVi dWdkaXI6JGRhdGFkaXIvYXV0by1sb2FkJXs/c2NsOjole19yb290X2RhdGFkaXJ9L2dkYi9hdXRv LWxvYWR9JwlcCiAJLS13aXRoLWF1dG8tbG9hZC1zYWZlLXBhdGg9JyRkZWJ1Z2RpcjokZGF0YWRp ci9hdXRvLWxvYWQlez9zY2w6OiV7X3Jvb3RfZGF0YWRpcn0vZ2RiL2F1dG8tbG9hZH0nCVwKICVp ZmFyY2ggc3BhcmMgc3BhcmN2OQpAQCAtMTAyNiw4ICs5OTcsNiBAQCBjZCAle2dkYl9idWlsZH0K IG1ha2UgJXs/X3NtcF9tZmxhZ3N9IFwKICAgICAgLUMgZ2RiL2RvYyB7Z2RiLGFubm90YXRlfXsu aW5mbywvaW5kZXguaHRtbCwucGRmfSBNQUtFSFRNTEZMQUdTPS0tbm8tc3BsaXQgTUFLRUlORk9G TEFHUz0tLW5vLXNwbGl0CiAKLWdyZXAgJyNkZWZpbmUgSEFWRV9aTElCX0ggMScgZ2RiL2NvbmZp Zy5oCi0KICMgQ29weSB0aGUgPHNvdXJjZXRyZWU+L2dkYi9ORVdTIGZpbGUgdG8gdGhlIGRpcmVj dG9yeSBhYm92ZSBpdC4KIGNwICRSUE1fQlVJTERfRElSLyV7Z2RiX3NyY30vZ2RiL05FV1MgJFJQ TV9CVUlMRF9ESVIvJXtnZGJfc3JjfQogCkBAIC0xMzI2LDYgKzEyOTUsOSBAQCB0aGVuCiBmaQog CiAlY2hhbmdlbG9nCisqIFN1biBNYXkgMzEgMjAxNSBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRv Y2h2aWxAcmVkaGF0LmNvbT4gLSA3LjkuNTAuMjAxNTA1MzEtMS5mYzIzCistIFJlYmFzZSB0byBG U0YgR0RCIDcuOS41MC4yMDE1MDUzMSAocHJlLTcuMTAgdHJ1bmsgc25hcHNob3QpLgorCiAqIEZy aSBNYXkgMTUgMjAxNSBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4g LSA3LjkuMS0xNC5mYzIyCiAtIEZpeCBpZ25vcmVkIFJlcXVpcmVzIGZvciBnZGItZG9jIChSSCBC WiAxMjIxODE0KS4KIAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDJmNjdm ODIuLjdhNjkxNjIgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwyICsx LDIgQEAKIDQ5ODEzMDdhYTk2MTliYmVjNWI3MzI2MWU0ZTQxYzhkICBnZGItbGlic3RkYysrLXYz LXB5dGhvbi1yMTU1OTc4LnRhci5iejIKLTM1Mzc0Yzc3YTcwODg0ZWI0MzBjOTcwNjEwNTNhMzZl ICBnZGItNy45LjEudGFyLnh6CiszOTRkZmJkODc2MDdjNzVlNWM2MWYzZTI4MTA1YmU1NCAgZ2Ri LTcuOS41MC4yMDE1MDUzMS50YXIueHoK