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.2.50.20110107 (which is a 7.3 pre-release). Date: Sat, 27 Jun 2026 23:54:54 GMT Message-ID: <178260449458.1.4580258865235827578.rpms-gdb-33ff7091acb3@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 33ff7091acb35d3cb70b81bc83ee1c846650a603 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQK ICAgICAgICAgICAgQ29tbWl0IDogMzNmZjcwOTFhY2IzNWQzY2I3MGI4MWJjODNlZTFjODQ2NjUw YTYwMwogICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxA cmVkaGF0LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxMS0wMS0wN1QwOTo0NzoyNyswMTow MAogICAgICAgICAgICBTdGF0cyAgOiArMjM1NC8tMzI0IGluIDExIGZpbGUocykKICAgICAgICAg ICAgVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nZGIvYy8zM2Zm NzA5MWFjYjM1ZDNjYjcwYjgxYmM4M2VlMWM4NDY2NTBhNjAzP2JyYW5jaD1nZGItMTcuMi1yZWJh c2UtZjQ0CgogICAgICAgICAgICBMb2c6CiAgICAgICAgICAgIC0gUmViYXNlIHRvIEZTRiBHREIg Ny4yLjUwLjIwMTEwMTA3ICh3aGljaCBpcyBhIDcuMyBwcmUtcmVsZWFzZSkuCi0gSW1wb3J0IGFy Y2hlci10cm9tZXktcHl0aG9uIChCWiA2NjYxNzcsIGJyYW5jaCB1cGRhdGUgYnkgUGhpbCBNdWxk b29uKS4KCi0tLQpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggNTkx MDk4NC4uNmM0ZjI4ZCAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBA IC0xICsxIEBACi0vZ2RiLTcuMi41MC4yMDExMDEwNC50YXIuYnoyCisvZ2RiLTcuMi41MC4yMDEx MDEwNy50YXIuYnoyCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuMy1pYTY0LWdjb3JlLXBhZ2UwLTIwMDUw NDIxLnBhdGNoIGIvZ2RiLTYuMy1pYTY0LWdjb3JlLXBhZ2UwLTIwMDUwNDIxLnBhdGNoCmluZGV4 IDBjNDI0NWMuLmVjZGZiYWUgMTAwNjQ0Ci0tLSBhL2dkYi02LjMtaWE2NC1nY29yZS1wYWdlMC0y MDA1MDQyMS5wYXRjaAorKysgYi9nZGItNi4zLWlhNjQtZ2NvcmUtcGFnZTAtMjAwNTA0MjEucGF0 Y2gKQEAgLTEsOCArMSw4IEBACi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvZ2NvcmUu YworSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2djb3JlLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNi44LjUwLjIwMDkwODAyLm9yaWcvZ2RiL2djb3JlLmMJMjAwOS0wOC0wMyAxMjoyNzo1 NS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAyL2dkYi9nY29yZS5jCTIw MDktMDgtMDMgMTI6Mjg6NTYuMDAwMDAwMDAwICswMjAwCi1AQCAtNDc5LDggKzQ3OSwxNCBAQCBn Y29yZV9jb3B5X2NhbGxiYWNrIChiZmQgKm9iZmQsIGFzZWN0aW9uCistLS0gZ2RiLTcuMi41MC4y MDExMDEwNy5vcmlnL2dkYi9nY29yZS5jCTIwMTEtMDEtMDUgMjM6MjI6NDkuMDAwMDAwMDAwICsw MTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvZ2NvcmUuYwkyMDExLTAxLTA3IDA5OjA0 OjI4LjAwMDAwMDAwMCArMDEwMAorQEAgLTUzNCw4ICs1MzQsMTQgQEAgZ2NvcmVfY29weV9jYWxs YmFjayAoYmZkICpvYmZkLCBhc2VjdGlvbgogICAgICAgIGlmIChzaXplID4gdG90YWxfc2l6ZSkK ICAJc2l6ZSA9IHRvdGFsX3NpemU7CiAgCkBAIC0xNiw1ICsxNiw1IEBAIEluZGV4OiBnZGItNi44 LjUwLjIwMDkwODAyL2dkYi9nY29yZS5jCiArCQkgICAgICAiaWE2NCIpCiArCSAgICAgIHx8IGJm ZF9zZWN0aW9uX3ZtYSAob2JmZCwgb3NlYykgIT0gMCkpCiAgCXsKLSAJICB3YXJuaW5nIChfKCJN ZW1vcnkgcmVhZCBmYWlsZWQgZm9yIGNvcmVmaWxlIHNlY3Rpb24sICVzIGJ5dGVzIGF0ICVzLiIp LAotIAkJICAgcGxvbmdlc3QgKHNpemUpLAorIAkgIHdhcm5pbmcgKF8oIk1lbW9yeSByZWFkIGZh aWxlZCBmb3IgY29yZWZpbGUgIgorIAkJICAgICAic2VjdGlvbiwgJXMgYnl0ZXMgYXQgJXMuIiks CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2ggYi9nZGItNi4z LXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaAppbmRleCA4MGUzMDY4Li44NmMzMWJmIDEwMDY0NAot LS0gYS9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaAorKysgYi9nZGItNi4zLXJlYWRu ZXZlci0yMDA1MDkwNy5wYXRjaApAQCAtMTEsMTAgKzExLDEwIEBACiAKICAgICAgICAgKiBnZGIu dGV4aW5mbyAoRmlsZSBPcHRpb25zKTogRG9jdW1lbnQgLS1yZWFkbmV2ZXIuCiAKLUluZGV4OiBn ZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9kb2MvZ2RiLnRleGluZm8KK0luZGV4OiBnZGItNy4yLjUw LjIwMTEwMTA3L2dkYi9kb2MvZ2RiLnRleGluZm8KID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUw LjIwMTAxMjMxLm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDEwLTEyLTI5IDA5OjAxOjMxLjAw MDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL2RvYy9nZGIudGV4aW5m bwkyMDExLTAxLTAxIDAwOjU0OjA3LjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi03LjIuNTAuMjAx MTAxMDcub3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTEtMDEtMDcgMDk6MDM6MzguMDAwMDAw MDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIw MTEtMDEtMDcgMDk6MDQ6NDguMDAwMDAwMDAwICswMTAwCiBAQCAtMTAwNyw2ICsxMDA3LDEyIEBA IFJlYWQgZWFjaCBzeW1ib2wgZmlsZSdzIGVudGlyZSBzeW1ib2wgdGEKICB0aGUgZGVmYXVsdCwg d2hpY2ggaXMgdG8gcmVhZCBpdCBpbmNyZW1lbnRhbGx5IGFzIGl0IGlzIG5lZWRlZC4KICBUaGlz IG1ha2VzIHN0YXJ0dXAgc2xvd2VyLCBidXQgbWFrZXMgZnV0dXJlIG9wZXJhdGlvbnMgZmFzdGVy LgpAQCAtMjgsMTEgKzI4LDExIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9kb2Mv Z2RiLnRleGluZm8KICBAZW5kIHRhYmxlCiAgCiAgQG5vZGUgTW9kZSBPcHRpb25zCi1JbmRleDog Z2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvbWFpbi5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDEw Ny9nZGIvbWFpbi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDEwMTIzMS5vcmlnL2dk Yi9tYWluLmMJMjAxMS0wMS0wMSAwMDo1MzowOS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4y LjUwLjIwMTAxMjMxL2dkYi9tYWluLmMJMjAxMS0wMS0wMSAwMDo1NDowNy4wMDAwMDAwMDAgKzAx MDAKLUBAIC0zOTEsNiArMzkxLDcgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKKy0tLSBn ZGItNy4yLjUwLjIwMTEwMTA3Lm9yaWcvZ2RiL21haW4uYwkyMDExLTAxLTA3IDA5OjA0OjM5LjAw MDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL21haW4uYwkyMDExLTAx LTA3IDA5OjA1OjAyLjAwMDAwMDAwMCArMDEwMAorQEAgLTM5NSw2ICszOTUsNyBAQCBjYXB0dXJl ZF9tYWluICh2b2lkICpkYXRhKQogICAgICAgIHsieGRiIiwgbm9fYXJndW1lbnQsICZ4ZGJfY29t bWFuZHMsIDF9LAogICAgICAgIHsiZGJ4Iiwgbm9fYXJndW1lbnQsICZkYnhfY29tbWFuZHMsIDF9 LAogICAgICAgIHsicmVhZG5vdyIsIG5vX2FyZ3VtZW50LCAmcmVhZG5vd19zeW1ib2xfZmlsZXMs IDF9LApAQCAtNDAsMTkgKzQwLDE5IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9t YWluLmMKICAgICAgICB7InIiLCBub19hcmd1bWVudCwgJnJlYWRub3dfc3ltYm9sX2ZpbGVzLCAx fSwKICAgICAgICB7InF1aWV0Iiwgbm9fYXJndW1lbnQsICZxdWlldCwgMX0sCiAgICAgICAgeyJx Iiwgbm9fYXJndW1lbnQsICZxdWlldCwgMX0sCi1AQCAtOTkzLDYgKzk5NCw3IEBAIE9wdGlvbnM6 XG5cblwKLSAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIiBmaWxlLlxuXAorQEAgLTEwNjAsNiArMTA2 MSw3IEBAIE9wdGlvbnM6XG5cblwKKyAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKICAgIC0tcXVp ZXQgICAgICAgICAgICBEbyBub3QgcHJpbnQgdmVyc2lvbiBudW1iZXIgb24gc3RhcnR1cC5cblwK ICAgIC0tcmVhZG5vdyAgICAgICAgICBGdWxseSByZWFkIHN5bWJvbCBmaWxlcyBvbiBmaXJzdCBh Y2Nlc3MuXG5cCiArICAtLXJlYWRuZXZlciAgICAgICAgRG8gbm90IHJlYWQgc3ltYm9sIGZpbGVz LlxuXAogICIpLCBzdHJlYW0pOwogICAgZnB1dHNfdW5maWx0ZXJlZCAoXygiXAogICAgLS1zZT1G SUxFICAgICAgICAgIFVzZSBGSUxFIGFzIHN5bWJvbCBmaWxlIGFuZCBleGVjdXRhYmxlIGZpbGUu XG5cCi1JbmRleDogZ2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvc3ltZmlsZS5jCitJbmRleDogZ2Ri LTcuMi41MC4yMDExMDEwNy9nZGIvc3ltZmlsZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41 MC4yMDEwMTIzMS5vcmlnL2dkYi9zeW1maWxlLmMJMjAxMC0xMS0yMyAwMTo1OTo1OC4wMDAwMDAw MDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9zeW1maWxlLmMJMjAxMS0wMS0w MSAwMDo1NDowNy4wMDAwMDAwMDAgKzAxMDAKLUBAIC04MCw2ICs4MCw3IEBAIHN0YXRpYyB2b2lk IGNsZWFyX3N5bXRhYl91c2Vyc19jbGVhbnVwICgKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTA3Lm9y aWcvZ2RiL3N5bWZpbGUuYwkyMDExLTAxLTA1IDIzOjIyOjUwLjAwMDAwMDAwMCArMDEwMAorKysr IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL3N5bWZpbGUuYwkyMDExLTAxLTA3IDA5OjA0OjQ4LjAw MDAwMDAwMCArMDEwMAorQEAgLTgxLDYgKzgxLDcgQEAgc3RhdGljIHZvaWQgY2xlYXJfc3ltdGFi X3VzZXJzX2NsZWFudXAgKAogIAogIC8qIEdsb2JhbCB2YXJpYWJsZXMgb3duZWQgYnkgdGhpcyBm aWxlICovCiAgaW50IHJlYWRub3dfc3ltYm9sX2ZpbGVzOwkvKiBSZWFkIGZ1bGwgc3ltYm9scyBp bW1lZGlhdGVseSAqLwpAQCAtNjAsMTAgKzYwLDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAx MjMxL2dkYi9zeW1maWxlLmMKICAKICAvKiBFeHRlcm5hbCB2YXJpYWJsZXMgYW5kIGZ1bmN0aW9u cyByZWZlcmVuY2VkLiAqLwogIAotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL2R3YXJm MnJlYWQuYworSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2R3YXJmMnJlYWQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMDEyMzEub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIw MTEtMDEtMDEgMDA6NDE6NTEuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTIz MS9nZGIvZHdhcmYycmVhZC5jCTIwMTEtMDEtMDEgMDA6NTQ6MDcuMDAwMDAwMDAwICswMTAwCist LS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxMS0wMS0wNyAw OTowMzozOC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9kd2Fy ZjJyZWFkLmMJMjAxMS0wMS0wNyAwOTowNDo0OC4wMDAwMDAwMDAgKzAxMDAKIEBAIC01Nyw2ICs1 Nyw3IEBACiAgI2luY2x1ZGUgInZlYy5oIgogICNpbmNsdWRlICJjLWxhbmcuaCIKQEAgLTcyLDcg KzcyLDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL2R3YXJmMnJlYWQuYwogIAog ICNpbmNsdWRlIDxmY250bC5oPgogICNpbmNsdWRlICJnZGJfc3RyaW5nLmgiCi1AQCAtMTM0NSw4 ICsxMzQ2LDkgQEAgZHdhcmYyX2hhc19pbmZvIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZQorQEAg LTEzNTAsOCArMTM1MSw5IEBAIGR3YXJmMl9oYXNfaW5mbyAoc3RydWN0IG9iamZpbGUgKm9iamZp bGUKICAgICAgICBiZmRfbWFwX292ZXJfc2VjdGlvbnMgKG9iamZpbGUtPm9iZmQsIGR3YXJmMl9s b2NhdGVfc2VjdGlvbnMsIE5VTEwpOwogICAgICAgIGR3YXJmMl9wZXJfb2JqZmlsZS0+b2JqZmls ZSA9IG9iamZpbGU7CiAgICAgIH0KQEAgLTg0LDEwICs4NCwxMCBAQCBJbmRleDogZ2RiLTcuMi41 MC4yMDEwMTIzMS9nZGIvZHdhcmYycmVhZC5jCiAgfQogIAogIC8qIFdoZW4gbG9hZGluZyBzZWN0 aW9ucywgd2UgY2FuIGVpdGhlciBsb29rIGZvciAiLjxuYW1lPiIsIG9yIGZvcgotSW5kZXg6IGdk Yi03LjIuNTAuMjAxMDEyMzEvZ2RiL3RvcC5oCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9n ZGIvdG9wLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTAxMjMxLm9yaWcvZ2RiL3Rv cC5oCTIwMTAtMTItMjkgMDE6NTg6MTQuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4y MDEwMTIzMS9nZGIvdG9wLmgJMjAxMS0wMS0wMSAwMDo1NDoyMS4wMDAwMDAwMDAgKzAxMDAKKy0t LSBnZGItNy4yLjUwLjIwMTEwMTA3Lm9yaWcvZ2RiL3RvcC5oCTIwMTEtMDEtMDEgMTY6MzM6MTgu MDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvdG9wLmgJMjAxMS0w MS0wNyAwOTowNDo0OC4wMDAwMDAwMDAgKzAxMDAKIEBAIC02MSw2ICs2MSw3IEBAIGV4dGVybiB2 b2lkIHNldF9wcm9tcHQgKGNoYXIgKik7CiAgCiAgLyogRnJvbSByYW5kb20gcGxhY2VzLiAgKi8K CmRpZmYgLS1naXQgYS9nZGItNi41LWJ6MjE4Mzc5LXNvbGliLXRyYW1wb2xpbmUtbG9va3VwLWxv Y2stZml4LnBhdGNoIGIvZ2RiLTYuNS1iejIxODM3OS1zb2xpYi10cmFtcG9saW5lLWxvb2t1cC1s b2NrLWZpeC5wYXRjaAppbmRleCBiN2JiZTQyLi4yZTc4YTNlIDEwMDY0NAotLS0gYS9nZGItNi41 LWJ6MjE4Mzc5LXNvbGliLXRyYW1wb2xpbmUtbG9va3VwLWxvY2stZml4LnBhdGNoCisrKyBiL2dk Yi02LjUtYnoyMTgzNzktc29saWItdHJhbXBvbGluZS1sb29rdXAtbG9jay1maXgucGF0Y2gKQEAg LTEsMTMgKzEsMTMgQEAKIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9idWd6aWxsYS9zaG93 X2J1Zy5jZ2k/aWQ9MjE4Mzc5CiAKIAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3N5 bXRhYi5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvc3ltdGFiLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL3N5bXRhYi5jCTIwMDktMDgtMDMg MTY6MDk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3lt dGFiLmMJMjAwOS0wOC0wMyAxNjoxMzoxMy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0yMjYxLDYgKzIy NjEsMTMgQEAgZmluZF9wY19zZWN0X2xpbmUgKENPUkVfQUREUiBwYywgc3RydWN0IAotIAkgIC8q IFNlZSBhYm92ZSBjb21tZW50IGFib3V0IHdoeSB3YXJuaW5nIGlzIGNvbW1lbnRlZCBvdXQgKi8K LSAJICAvKiB3YXJuaW5nICgiSW4gc3R1YiBmb3IgJXM7IHVuYWJsZSB0byBmaW5kIHJlYWwgZnVu Y3Rpb24vbGluZSBpbmZvIiwgU1lNQk9MX0xJTktBR0VfTkFNRSAobXN5bWJvbCkpICovIDsKKy0t LSBnZGItNy4yLjUwLjIwMTEwMTA3Lm9yaWcvZ2RiL3N5bXRhYi5jCTIwMTEtMDEtMDcgMDk6MDM6 MzguMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvc3ltdGFiLmMJ MjAxMS0wMS0wNyAwOTowNjozMi4wMDAwMDAwMDAgKzAxMDAKK0BAIC0yMDE0LDYgKzIwMTQsMTMg QEAgZmluZF9wY19zZWN0X2xpbmUgKENPUkVfQUREUiBwYywgc3RydWN0IAorIAkgIC8qIHdhcm5p bmcgKCJJbiBzdHViIGZvciAlczsgdW5hYmxlIHRvIGZpbmQgcmVhbCBmdW5jdGlvbi9saW5lIGlu Zm8iLAorIAkgICAgIFNZTUJPTF9MSU5LQUdFX05BTUUgKG1zeW1ib2wpKSAqLyA7CiAgCS8qIGZh bGwgdGhyb3VnaCAqLwogKwkvKiBgbXN5bWJvbCcgdHJhbXBvbGluZSBtYXkgYmUgbG9jYXRlZCBi ZWZvcmUgaXRzIC50ZXh0IHN5bWJvbAogKwkgICBidXQgdGhpcyB0ZXh0IHN5bWJvbCBtYXkgYmUg dGhlIGFkZHJlc3Mgd2Ugd2VyZSBsb29raW5nIGZvci4KCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1 aWxkaWQtbG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1j b3JlLWFzLWFyZy5wYXRjaAppbmRleCBjOGI4ODgzLi5lNGE1NzY3IDEwMDY0NAotLS0gYS9nZGIt Ni42LWJ1aWxkaWQtbG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRp ZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2gKQEAgLTU4LDEwICs1OCwxMCBAQCBIdHRwOi8vc291 cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0wMS9tc2cwMDUxNy5odG1sCiAJKiBleGVj LmMgKGV4ZWNfZmlsZV9hdHRhY2gpOiBQcmludCBhIG1vcmUgdXNlZnVsIGVycm9yIG1lc3NhZ2Ug aWYgdGhlCiAJdXNlciBkaWQgImdkYiBjb3JlIi4KIAotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDEy MzEvZ2RiL2V4Y2VwdGlvbnMuaAorSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2V4Y2Vw dGlvbnMuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMDEyMzEub3JpZy9nZGIvZXhj ZXB0aW9ucy5oCTIwMTAtMDUtMDMgMDE6NTI6MTQuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcu Mi41MC4yMDEwMTIzMS9nZGIvZXhjZXB0aW9ucy5oCTIwMTEtMDEtMDEgMDE6MTA6NDQuMDAwMDAw MDAwICswMTAwCistLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmlnL2dkYi9leGNlcHRpb25zLmgJ MjAxMS0wMS0wNSAyMzoyMjo0OC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEw MTA3L2dkYi9leGNlcHRpb25zLmgJMjAxMS0wMS0wNyAwOTowOToxOC4wMDAwMDAwMDAgKzAxMDAK IEBAIC03OCw2ICs3OCw5IEBAIGVudW0gZXJyb3JzIHsKICAgIC8qIEZlYXR1cmUgaXMgbm90IHN1 cHBvcnRlZCBpbiB0aGlzIGNvcHkgb2YgR0RCLiAgKi8KICAgIFVOU1VQUE9SVEVEX0VSUk9SLApA QCAtNzIsMTAgKzcyLDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9leGNlcHRp b25zLmgKICAgIC8qIEFkZCBtb3JlIGVycm9ycyBoZXJlLiAgKi8KICAgIE5SX0VSUk9SUwogIH07 Ci1JbmRleDogZ2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvZXhlYy5jCitJbmRleDogZ2RiLTcuMi41 MC4yMDExMDEwNy9nZGIvZXhlYy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDEwMTIz MS5vcmlnL2dkYi9leGVjLmMJMjAxMC0wOC0zMSAyMDowODo0My4wMDAwMDAwMDAgKzAyMDAKLSsr KyBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9leGVjLmMJMjAxMS0wMS0wMSAwMToxMDo0NC4wMDAw MDAwMDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTA3Lm9yaWcvZ2RiL2V4ZWMuYwkyMDEx LTAxLTA1IDIzOjIyOjQ4LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMDcv Z2RiL2V4ZWMuYwkyMDExLTAxLTA3IDA5OjA5OjE4LjAwMDAwMDAwMCArMDEwMAogQEAgLTM0LDYg KzM0LDcgQEAKICAjaW5jbHVkZSAiYXJjaC11dGlscy5oIgogICNpbmNsdWRlICJnZGJ0aHJlYWQu aCIKQEAgLTExNSwxMSArMTE1LDExIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9l eGVjLmMKICAJfQogIAogICAgICAgIC8qIEZJWE1FIC0gVGhpcyBzaG91bGQgb25seSBiZSBydW4g Zm9yIFJTNjAwMCwgYnV0IHRoZSBpZmRlZiBpcyBhIHBvb3IKLUluZGV4OiBnZGItNy4yLjUwLjIw MTAxMjMxL2dkYi9tYWluLmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9tYWluLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTAxMjMxLm9yaWcvZ2RiL21haW4uYwkyMDEx LTAxLTAxIDAxOjAwOjU0LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMDEyMzEv Z2RiL21haW4uYwkyMDExLTAxLTAxIDAxOjExOjQ4LjAwMDAwMDAwMCArMDEwMAotQEAgLTI0Miw2 ICsyNDIsMzYgQEAgY2FwdHVyZWRfY29tbWFuZF9sb29wICh2b2lkICpkYXRhKQorLS0tIGdkYi03 LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIvbWFpbi5jCTIwMTEtMDEtMDcgMDk6MDU6MDIuMDAwMDAw MDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvbWFpbi5jCTIwMTEtMDEtMDcg MDk6MTA6MTQuMDAwMDAwMDAwICswMTAwCitAQCAtMjQzLDYgKzI0MywzNiBAQCBjYXB0dXJlZF9j b21tYW5kX2xvb3AgKHZvaWQgKmRhdGEpCiAgICByZXR1cm4gMTsKICB9CiAgCkBAIC0xNTYsNyAr MTU2LDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL21haW4uYwogIHN0YXRpYyBp bnQKICBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogIHsKLUBAIC02ODgsNiArNzE4LDggQEAg Y2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC03MjYsNiArNzU2LDggQEAgY2FwdHVyZWRf bWFpbiAodm9pZCAqZGF0YSkKICAJewogIAkgIHN5bWFyZyA9IGFyZ3Zbb3B0aW5kXTsKICAJICBl eGVjYXJnID0gYXJndltvcHRpbmRdOwpAQCAtMTY1LDcgKzE2NSw3IEBAIEluZGV4OiBnZGItNy4y LjUwLjIwMTAxMjMxL2dkYi9tYWluLmMKICAJICBvcHRpbmQrKzsKICAJfQogIAotQEAgLTgyOCwx MCArODYwLDI1IEBAIEV4Y2VzcyBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGlnbm9yZWQuICgKK0BA IC04NjcsMTEgKzg5OSwyNSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogICAgICAgICYm IHN5bWFyZyAhPSBOVUxMCiAgICAgICAgJiYgc3RyY21wIChleGVjYXJnLCBzeW1hcmcpID09IDAp CiAgICAgIHsKQEAgLTE4NCwxMiArMTg0LDEzIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMx L2dkYi9tYWluLmMKICAgICAgICAvKiBUaGUgZXhlYyBmaWxlIGFuZCB0aGUgc3ltYm9sLWZpbGUg YXJlIHRoZSBzYW1lLiAgSWYgd2UgY2FuJ3QKICAgICAgICAgICBvcGVuIGl0LCBiZXR0ZXIgb25s eSBwcmludCBvbmUgZXJyb3IgbWVzc2FnZS4KIC0gICAgICAgICBjYXRjaF9jb21tYW5kX2Vycm9y cyByZXR1cm5zIG5vbi16ZXJvIG9uIHN1Y2Nlc3MhICAqLwotLSAgICAgIGlmIChjYXRjaF9jb21t YW5kX2Vycm9ycyAoZXhlY19maWxlX2F0dGFjaCwgZXhlY2FyZywgIWJhdGNoX2ZsYWcsIFJFVFVS Tl9NQVNLX0FMTCkpCistICAgICAgaWYgKGNhdGNoX2NvbW1hbmRfZXJyb3JzIChleGVjX2ZpbGVf YXR0YWNoLCBleGVjYXJnLAorLQkJCQkhYmF0Y2hfZmxhZywgUkVUVVJOX01BU0tfQUxMKSkKICsg ICAgICAgICBjYXRjaF9jb21tYW5kX2Vycm9ycyByZXR1cm5zIG5vbi16ZXJvIG9uIHN1Y2Nlc3Mh CiArCSBEbyBub3QgbG9hZCBFWEVDQVJHIGFzIGEgc3ltYm9sIGZpbGUgaWYgaXQgaGFzIGJlZW4g YWxyZWFkeSBwcm9jZXNzZWQKICsJIGFzIGEgY29yZSBmaWxlLiAgKi8KICsgICAgICBpZiAoY2F0 Y2hfY29tbWFuZF9lcnJvcnMgKGZ1bmMsIGV4ZWNhcmcsICFiYXRjaF9mbGFnLCBSRVRVUk5fTUFT S19BTEwpCiArCSAgJiYgY29yZV9iZmQgPT0gTlVMTCkKLSAJY2F0Y2hfY29tbWFuZF9lcnJvcnMg KHN5bWJvbF9maWxlX2FkZF9tYWluLCBzeW1hcmcsICFiYXRjaF9mbGFnLCBSRVRVUk5fTUFTS19B TEwpOworIAljYXRjaF9jb21tYW5kX2Vycm9ycyAoc3ltYm9sX2ZpbGVfYWRkX21haW4sIHN5bWFy ZywKKyAJCQkgICAgICAhYmF0Y2hfZmxhZywgUkVUVVJOX01BU0tfQUxMKTsKICAgICAgfQotICAg ZWxzZQoKZGlmZiAtLWdpdCBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2ggYi9nZGItNi42 LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCmluZGV4IDE5Y2I4YWQuLmUzNTQ0N2MgMTAwNjQ0Ci0tLSBh L2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKKysrIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0 ZS5wYXRjaApAQCAtMSw3ICsxLDcgQEAKLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi9j b3JlbG93LmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9jb3JlbG93LmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEwMTA0Lm9yaWcvZ2RiL2NvcmVsb3cuYwkyMDExLTAx LTAxIDE2OjMyOjU5LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMTAxMDQvZ2Ri L2NvcmVsb3cuYwkyMDExLTAxLTA0IDA2OjE1OjQ5LjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi03 LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIvY29yZWxvdy5jCTIwMTEtMDEtMDUgMjM6MjI6NDcuMDAw MDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvY29yZWxvdy5jCTIwMTEt MDEtMDcgMDk6MDc6MDEuMDAwMDAwMDAwICswMTAwCiBAQCAtNDcsNiArNDcsOSBAQAogICNpbmNs dWRlICJmaWxlbmFtZXMuaCIKICAjaW5jbHVkZSAicHJvZ3NwYWNlLmgiCkBAIC0xMiw3ICsxMiw3 IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi9jb3JlbG93LmMKICAKICAKICAjaWZu ZGVmIE9fTEFSR0VGSUxFCi1AQCAtMjc3LDYgKzI4MCw1MiBAQCBhZGRfdG9fdGhyZWFkX2xpc3Qg KGJmZCAqYWJmZCwgYXNlY3Rpb24gCitAQCAtMjc4LDYgKzI4MSw1MiBAQCBhZGRfdG9fdGhyZWFk X2xpc3QgKGJmZCAqYWJmZCwgYXNlY3Rpb24gCiAgICAgIGluZmVyaW9yX3B0aWQgPSBwdGlkOwkJ CS8qIFllcywgbWFrZSBpdCBjdXJyZW50LiAgKi8KICB9CiAgCkBAIC02NSw3ICs2NSw3IEBAIElu ZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi9jb3JlbG93LmMKICAvKiBUaGlzIHJvdXRpbmUg b3BlbnMgYW5kIHNldHMgdXAgdGhlIGNvcmUgZmlsZSBiZmQuICAqLwogIAogIHN0YXRpYyB2b2lk Ci1AQCAtMzc3LDYgKzQyNiwxMiBAQCBjb3JlX29wZW4gKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnJv bV90dHkpCitAQCAtMzc5LDYgKzQyOCwxMiBAQCBjb3JlX29wZW4gKGNoYXIgKmZpbGVuYW1lLCBp bnQgZnJvbV90dHkpCiAgICBwdXNoX3RhcmdldCAoJmNvcmVfb3BzKTsKICAgIGRpc2NhcmRfY2xl YW51cHMgKG9sZF9jaGFpbik7CiAgCkBAIC03OCw3ICs3OCw3IEBAIEluZGV4OiBnZGItNy4yLjUw LjIwMTEwMTA0L2dkYi9jb3JlbG93LmMKICAgIC8qIERvIHRoaXMgYmVmb3JlIGFja25vd2xlZGdp bmcgdGhlIGluZmVyaW9yLCBzbyBpZgogICAgICAgcG9zdF9jcmVhdGVfaW5mZXJpb3IgdGhyb3dz IChjYW4gaGFwcGVuIGVhc2lsbHkgaWYgeW91J3JlIGxvYWRpbmcKICAgICAgIGEgY29yZSBmaWxl IHdpdGggdGhlIHdyb25nIGV4ZWMpLCB3ZSBhcmVuJ3QgbGVmdCB3aXRoIHRocmVhZHMKLUBAIC05 MzAsNCArOTg1LDExIEBAIF9pbml0aWFsaXplX2NvcmVsb3cgKHZvaWQpCitAQCAtOTMyLDQgKzk4 NywxMSBAQCBfaW5pdGlhbGl6ZV9jb3JlbG93ICh2b2lkKQogICAgaW5pdF9jb3JlX29wcyAoKTsK ICAKICAgIGFkZF90YXJnZXQgKCZjb3JlX29wcyk7CkBAIC05MCwxMSArOTAsMTEgQEAgSW5kZXg6 IGdkYi03LjIuNTAuMjAxMTAxMDQvZ2RiL2NvcmVsb3cuYwogKwkJCSAgIE5VTEwsIE5VTEwsIE5V TEwsCiArCQkJICAgJnNldGxpc3QsICZzaG93bGlzdCk7CiAgfQotSW5kZXg6IGdkYi03LjIuNTAu MjAxMTAxMDQvZ2RiL2RvYy9nZGIudGV4aW5mbworSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcv Z2RiL2RvYy9nZGIudGV4aW5mbwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAxMDQu b3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTEtMDEtMDQgMDY6MTU6MDIuMDAwMDAwMDAwICsw MTAwCi0rKysgZ2RiLTcuMi41MC4yMDExMDEwNC9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTEtMDEt MDQgMDY6MTU6MTQuMDAwMDAwMDAwICswMTAwCi1AQCAtMTUyNjcsNiArMTUyNjcsMjcgQEAgaW5m b3JtYXRpb24gZmlsZXMuCistLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmlnL2dkYi9kb2MvZ2Ri LnRleGluZm8JMjAxMS0wMS0wNyAwOTowNDo0OC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4y LjUwLjIwMTEwMTA3L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxMS0wMS0wNyAwOTowNzowMS4wMDAw MDAwMDAgKzAxMDAKK0BAIC0xNTI3Nyw2ICsxNTI3NywyNyBAQCBpbmZvcm1hdGlvbiBmaWxlcy4K ICAKICBAZW5kIHRhYmxlCiAgCkBAIC0xMjIsMTAgKzEyMiwxMCBAQCBJbmRleDogZ2RiLTcuMi41 MC4yMDExMDEwNC9nZGIvZG9jL2dkYi50ZXhpbmZvCiAgQGNpbmRleCBAY29kZXsuZ251X2RlYnVn bGlua30gc2VjdGlvbnMKICBAY2luZGV4IGRlYnVnIGxpbmsgc2VjdGlvbnMKICBBIGRlYnVnIGxp bmsgaXMgYSBzcGVjaWFsIHNlY3Rpb24gb2YgdGhlIGV4ZWN1dGFibGUgZmlsZSBuYW1lZAotSW5k ZXg6IGdkYi03LjIuNTAuMjAxMTAxMDQvZ2RiL3NvbGliLXN2cjQuYworSW5kZXg6IGdkYi03LjIu NTAuMjAxMTAxMDcvZ2RiL3NvbGliLXN2cjQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAu MjAxMTAxMDQub3JpZy9nZGIvc29saWItc3ZyNC5jCTIwMTEtMDEtMDQgMDY6MTU6MDEuMDAwMDAw MDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDExMDEwNC9nZGIvc29saWItc3ZyNC5jCTIwMTEt MDEtMDQgMDY6MTU6MTQuMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5v cmlnL2dkYi9zb2xpYi1zdnI0LmMJMjAxMS0wMS0wNyAwOTowMzozOC4wMDAwMDAwMDAgKzAxMDAK KysrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9zb2xpYi1zdnI0LmMJMjAxMS0wMS0wNyAwOTow NzowMS4wMDAwMDAwMDAgKzAxMDAKIEBAIC0xMTc5LDkgKzExNzksNDkgQEAgc3ZyNF9jdXJyZW50 X3NvcyAodm9pZCkKICAJCSAgICAgc2FmZV9zdHJlcnJvciAoZXJyY29kZSkpOwogIAkgIGVsc2UK QEAgLTE3OSwxMCArMTc5LDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi9zb2xp Yi1zdnI0LmMKICAJICAgIH0KICAJICB4ZnJlZSAoYnVmZmVyKTsKICAKLUluZGV4OiBnZGItNy4y LjUwLjIwMTEwMTA0L2dkYi9lbGZyZWFkLmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dk Yi9lbGZyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEwMTA0Lm9yaWcvZ2Ri L2VsZnJlYWQuYwkyMDExLTAxLTA0IDA2OjE1OjAxLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03 LjIuNTAuMjAxMTAxMDQvZ2RiL2VsZnJlYWQuYwkyMDExLTAxLTA0IDA2OjE1OjE0LjAwMDAwMDAw MCArMDEwMAorLS0tIGdkYi03LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIvZWxmcmVhZC5jCTIwMTEt MDEtMDcgMDk6MDM6MzguMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDEwNy9n ZGIvZWxmcmVhZC5jCTIwMTEtMDEtMDcgMDk6MDc6MzMuMDAwMDAwMDAwICswMTAwCiBAQCAtMzgs NiArMzgsMTAgQEAKICAjaW5jbHVkZSAiZGVtYW5nbGUuaCIKICAjaW5jbHVkZSAicHN5bXByaXYu aCIKQEAgLTE5NCw3ICsxOTQsNyBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNC9nZGIvZWxm cmVhZC5jCiAgCiAgZXh0ZXJuIHZvaWQgX2luaXRpYWxpemVfZWxmcmVhZCAodm9pZCk7CiAgCi1A QCAtODIxLDE2ICs4MjUsNjUgQEAgcmVzb2x2ZV9nbnVfaWZ1bmMgKGNvbnN0IGNoYXIgKmZ1bmN0 aW9uXworQEAgLTgyMywxNiArODI3LDY1IEBAIHJlc29sdmVfZ251X2lmdW5jIChjb25zdCBjaGFy ICpmdW5jdGlvbl8KICAgIHJldHVybiAwOwogIH0KICAKQEAgLTI2Miw3ICsyNjIsNyBAQCBJbmRl eDogZ2RiLTcuMi41MC4yMDExMDEwNC9nZGIvZWxmcmVhZC5jCiAgewogICAgc3RydWN0IGJ1aWxk X2lkICpyZXR2YWw7CiAgCi1AQCAtODQ2LDYgKzg5OSwzNDggQEAgYnVpbGRfaWRfYmZkX2dldCAo YmZkICphYmZkKQorQEAgLTg0OCw2ICs5MDEsMzQ4IEBAIGJ1aWxkX2lkX2JmZF9nZXQgKGJmZCAq YWJmZCkKICAgIHJldHVybiByZXR2YWw7CiAgfQogIApAQCAtNjExLDcgKzYxMSw3IEBAIEluZGV4 OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi9lbGZyZWFkLmMKICAvKiBSZXR1cm4gaWYgRklMRU5B TUUgaGFzIE5UX0dOVV9CVUlMRF9JRCBtYXRjaGluZyB0aGUgQ0hFQ0sgdmFsdWUuICAqLwogIAog IHN0YXRpYyBpbnQKLUBAIC04NjAsNyArMTI1NSw3IEBAIGJ1aWxkX2lkX3ZlcmlmeSAoY29uc3Qg Y2hhciAqZmlsZW5hbWUsIHMKK0BAIC04NjIsNyArMTI1Nyw3IEBAIGJ1aWxkX2lkX3ZlcmlmeSAo Y29uc3QgY2hhciAqZmlsZW5hbWUsIHMKICAgIGlmIChhYmZkID09IE5VTEwpCiAgICAgIHJldHVy biAwOwogIApAQCAtNjIwLDcgKzYyMCw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dk Yi9lbGZyZWFkLmMKICAKICAgIGlmIChmb3VuZCA9PSBOVUxMKQogICAgICB3YXJuaW5nIChfKCJG aWxlIFwiJXNcIiBoYXMgbm8gYnVpbGQtaWQsIGZpbGUgc2tpcHBlZCIpLCBmaWxlbmFtZSk7Ci1A QCAtODc3LDE0ICsxMjcyLDE2IEBAIGJ1aWxkX2lkX3ZlcmlmeSAoY29uc3QgY2hhciAqZmlsZW5h bWUsIHMKK0BAIC04ODAsMTQgKzEyNzUsMTYgQEAgYnVpbGRfaWRfdmVyaWZ5IChjb25zdCBjaGFy ICpmaWxlbmFtZSwgcwogICAgcmV0dXJuIHJldHZhbDsKICB9CiAgCkBAIC02NDEsNyArNjQxLDcg QEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDQvZ2RiL2VsZnJlYWQuYwogIAogICAgLyogS2Vl cCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHNvIHRoYXQgREVCVUdfRklMRV9ESVJFQ1RPUlkgYmVp bmcgIiIgd2lsbAogICAgICAgY2F1c2UgIi8uYnVpbGQtaWQvLi4uIiBsb29rdXBzLiAgKi8KLUBA IC05MTUsNyArMTMxMiwxMCBAQCBidWlsZF9pZF90b19kZWJ1Z19maWxlbmFtZSAoc3RydWN0IGJ1 aWxkCitAQCAtOTE4LDcgKzEzMTUsMTAgQEAgYnVpbGRfaWRfdG9fZGVidWdfZmlsZW5hbWUgKHN0 cnVjdCBidWlsZAogIAkqcysrID0gJy8nOwogICAgICAgIHdoaWxlIChzaXplLS0gPiAwKQogIAlz ICs9IHNwcmludGYgKHMsICIlMDJ4IiwgKHVuc2lnbmVkKSAqZGF0YSsrKTsKQEAgLTY1Myw3ICs2 NTMsNyBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNC9nZGIvZWxmcmVhZC5jCiAgCiAgICAg ICAgLyogbHJlYWxwYXRoKCkgaXMgZXhwZW5zaXZlIGV2ZW4gZm9yIHRoZSB1c3VhbGx5IG5vbi1l eGlzdGVudCBmaWxlcy4gICovCiAgICAgICAgaWYgKGFjY2VzcyAobGluaywgRl9PSykgPT0gMCkK LUBAIC05MjgsMjYgKzEzMjgsMjAxIEBAIGJ1aWxkX2lkX3RvX2RlYnVnX2ZpbGVuYW1lIChzdHJ1 Y3QgYnVpbGQKK0BAIC05MzEsMjYgKzEzMzEsMjAxIEBAIGJ1aWxkX2lkX3RvX2RlYnVnX2ZpbGVu YW1lIChzdHJ1Y3QgYnVpbGQKICAJfQogIAogICAgICAgIGlmIChyZXR2YWwgIT0gTlVMTCkKQEAg LTg1OSw3ICs4NTksNyBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNC9nZGIvZWxmcmVhZC5j CiAgICAgICAgeGZyZWUgKGJ1aWxkX2lkKTsKICAgICAgICAvKiBQcmV2ZW50IGxvb3Bpbmcgb24g YSBzdHJpcHBlZCAuZGVidWcgZmlsZS4gICovCiAgICAgICAgaWYgKGJ1aWxkX2lkX25hbWUgIT0g TlVMTCAmJiBzdHJjbXAgKGJ1aWxkX2lkX25hbWUsIG9iamZpbGUtPm5hbWUpID09IDApCi1AQCAt OTU3LDcgKzE1MzIsNyBAQCBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAoc3Ry CitAQCAtOTYwLDcgKzE1MzUsNyBAQCBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRp ZCAoc3RyCiAgCSAgeGZyZWUgKGJ1aWxkX2lkX25hbWUpOwogIAl9CiAgICAgICAgZWxzZSBpZiAo YnVpbGRfaWRfbmFtZSAhPSBOVUxMKQpAQCAtODY4LDggKzg2OCw4IEBAIEluZGV4OiBnZGItNy4y LjUwLjIwMTEwMTA0L2dkYi9lbGZyZWFkLmMKICAgICAgfQogICAgcmV0dXJuIE5VTEw7CiAgfQot QEAgLTExMzgsOSArMTcxMywxMCBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAq b2JqZmlsCi0gICAgICBgLmdudV9kZWJ1Z2xpbmsnIG1heSBubyBsb25nZXIgYmUgcHJlc2VudCB3 aXRoIGAubm90ZS5nbnUuYnVpbGQtaWQnLiAgKi8KK0BAIC0xMTQ4LDkgKzE3MjMsMTAgQEAgZWxm X3N5bWZpbGVfcmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbAorICAgICAgYC5ub3RlLmdudS5i dWlsZC1pZCcuICAqLwogICAgaWYgKCFvYmpmaWxlX2hhc19wYXJ0aWFsX3N5bWJvbHMgKG9iamZp bGUpKQogICAgICB7CiAtICAgICAgY2hhciAqZGVidWdmaWxlOwpAQCAtODgxLDcgKzg4MSw3IEBA IEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi9lbGZyZWFkLmMKICAKICAgICAgICBpZiAo ZGVidWdmaWxlID09IE5VTEwpCiAgCWRlYnVnZmlsZSA9IGZpbmRfc2VwYXJhdGVfZGVidWdfZmls ZV9ieV9kZWJ1Z2xpbmsgKG9iamZpbGUpOwotQEAgLTExNTIsNiArMTcyOCwxMiBAQCBlbGZfc3lt ZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsCitAQCAtMTE2Miw2ICsxNzM4LDEyIEBA IGVsZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWwKICAJICBzeW1ib2xfZmls ZV9hZGRfc2VwYXJhdGUgKGFiZmQsIHN5bWZpbGVfZmxhZ3MsIG9iamZpbGUpOwogIAkgIHhmcmVl IChkZWJ1Z2ZpbGUpOwogIAl9CkBAIC04OTQsNyArODk0LDcgQEAgSW5kZXg6IGdkYi03LjIuNTAu MjAxMTAxMDQvZ2RiL2VsZnJlYWQuYwogICAgICB9CiAgfQogIAotQEAgLTEzMjcsNCArMTkwOSwx NiBAQCB2b2lkCitAQCAtMTMzNyw0ICsxOTE5LDE2IEBAIHZvaWQKICBfaW5pdGlhbGl6ZV9lbGZy ZWFkICh2b2lkKQogIHsKICAgIGFkZF9zeW10YWJfZm5zICgmZWxmX3N5bV9mbnMpOwpAQCAtOTEx LDExICs5MTEsMTEgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDQvZ2RiL2VsZnJlYWQuYwog KwogKyAgb2JzZXJ2ZXJfYXR0YWNoX2V4ZWN1dGFibGVfY2hhbmdlZCAoZGVidWdfcHJpbnRfZXhl Y3V0YWJsZV9jaGFuZ2VkKTsKICB9Ci1JbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNC9nZGIvc3lt ZmlsZS5oCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvc3ltZmlsZS5oCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDExMDEwNC5vcmlnL2dkYi9zeW1maWxlLmgJMjAxMS0wMS0w MSAxNjozMzoxNi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi9z eW1maWxlLmgJMjAxMS0wMS0wNCAwNjoxNToxNC4wMDAwMDAwMDAgKzAxMDAKLUBAIC01NTMsNiAr NTUzLDEzIEBAIHZvaWQgZnJlZV9zeW1maWxlX3NlZ21lbnRfZGF0YSAoc3RydWN0IHMKKy0tLSBn ZGItNy4yLjUwLjIwMTEwMTA3Lm9yaWcvZ2RiL3N5bWZpbGUuaAkyMDExLTAxLTA1IDIzOjIyOjUz LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL3N5bWZpbGUuaAky MDExLTAxLTA3IDA5OjA3OjAxLjAwMDAwMDAwMCArMDEwMAorQEAgLTU1NCw2ICs1NTQsMTMgQEAg dm9pZCBmcmVlX3N5bWZpbGVfc2VnbWVudF9kYXRhIChzdHJ1Y3QgcwogIAogIGV4dGVybiBzdHJ1 Y3QgY2xlYW51cCAqaW5jcmVtZW50X3JlYWRpbmdfc3ltdGFiICh2b2lkKTsKICAKQEAgLTkyOSwx MSArOTI5LDExIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi9zeW1maWxlLmgKICAv KiBGcm9tIGR3YXJmMnJlYWQuYyAqLwogIAogIGV4dGVybiBpbnQgZHdhcmYyX2hhc19pbmZvIChz dHJ1Y3Qgb2JqZmlsZSAqKTsKLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi90ZXN0c3Vp dGUvbGliL2dkYi5leHAKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi90ZXN0c3VpdGUv bGliL2dkYi5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEwMTA0Lm9yaWcvZ2Ri L3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDExLTAxLTA0IDA2OjE1OjAxLjAwMDAwMDAwMCArMDEw MAotKysrIGdkYi03LjIuNTAuMjAxMTAxMDQvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDEx LTAxLTA0IDA2OjE1OjE0LjAwMDAwMDAwMCArMDEwMAotQEAgLTEzOTAsNiArMTM5MCwxNiBAQCBw cm9jIGRlZmF1bHRfZ2RiX3N0YXJ0IHsgfSB7CistLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmln L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxMS0wMS0wNyAwOTowMzozOC4wMDAwMDAwMDAg KzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJ MjAxMS0wMS0wNyAwOTowNzowMS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xMzkxLDYgKzEzOTEsMTYg QEAgcHJvYyBkZWZhdWx0X2dkYl9zdGFydCB7IH0gewogIAkgICAgd2FybmluZyAiQ291bGRuJ3Qg c2V0IHRoZSB3aWR0aCB0byAwLiIKICAJfQogICAgICB9CkBAIC05NTAsMTAgKzk1MCwxMCBAQCBJ bmRleDogZ2RiLTcuMi41MC4yMDExMDEwNC9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiAgICAg IHJldHVybiAwOwogIH0KICAKLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi90ZXN0c3Vp dGUvbGliL21pLXN1cHBvcnQuZXhwCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvdGVz dHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAx MTAxMDQub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDExLTAxLTAxIDE2 OjMzOjUyLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMTAxMDQvZ2RiL3Rlc3Rz dWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxMS0wMS0wNCAwNjoxNToxNC4wMDAwMDAwMDAgKzAx MDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3Vw cG9ydC5leHAJMjAxMS0wMS0wMSAxNjozMzo1Mi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4y LjUwLjIwMTEwMTA3L2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTEtMDEtMDcg MDk6MDc6MDEuMDAwMDAwMDAwICswMTAwCiBAQCAtMjIxLDYgKzIyMSwxNiBAQCBwcm9jIGRlZmF1 bHRfbWlfZ2RiX3N0YXJ0IHsgYXJncyB9IHsKICAJICAgIH0KICAgICAgCX0KQEAgLTk3MSwxMSAr OTcxLDExIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi90ZXN0c3VpdGUvbGliL21p LXN1cHBvcnQuZXhwCiAgCiAgICAgIGRldGVjdF9hc3luYwogIAotSW5kZXg6IGdkYi03LjIuNTAu MjAxMTAxMDQvZ2RiL29iamZpbGVzLmgKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9v YmpmaWxlcy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDExMDEwNC5vcmlnL2dkYi9v YmpmaWxlcy5oCTIwMTEtMDEtMDEgMTY6MzM6MTIuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcu Mi41MC4yMDExMDEwNC9nZGIvb2JqZmlsZXMuaAkyMDExLTAxLTA0IDA2OjE1OjE0LjAwMDAwMDAw MCArMDEwMAotQEAgLTQzMyw2ICs0MzMsMTAgQEAgc3RydWN0IG9iamZpbGUKKy0tLSBnZGItNy4y LjUwLjIwMTEwMTA3Lm9yaWcvZ2RiL29iamZpbGVzLmgJMjAxMS0wMS0wNSAyMzoyMjo0OS4wMDAw MDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9vYmpmaWxlcy5oCTIwMTEt MDEtMDcgMDk6MDc6MDEuMDAwMDAwMDAwICswMTAwCitAQCAtNDM0LDYgKzQzNCwxMCBAQCBzdHJ1 Y3Qgb2JqZmlsZQogIAogICNkZWZpbmUgT0JKRl9VU0VSTE9BREVECSgxIDw8IDMpCS8qIFVzZXIg bG9hZGVkICovCiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci5wYXRjaCBiL2dkYi1hcmNoZXIu cGF0Y2gKaW5kZXggYjhlNDdhOS4uNjMyMDRkNCAxMDA2NDQKLS0tIGEvZ2RiLWFyY2hlci5wYXRj aAorKysgYi9nZGItYXJjaGVyLnBhdGNoCkBAIC0yLDE3ICsyLDQ0IEBAIGh0dHA6Ly9zb3VyY2V3 YXJlLm9yZy9nZGIvd2lraS9Qcm9qZWN0QXJjaGVyCiBodHRwOi8vc291cmNld2FyZS5vcmcvZ2Ri L3dpa2kvQXJjaGVyQnJhbmNoTWFuYWdlbWVudAogCiBHSVQgc25hcHNob3Q6Ci1jb21taXQgMmJl NjEzZWJlZmUzZjNjMmE1YmIzMjljMjA3ZDQzNTAyNGFmN2EyYgorY29tbWl0IGYwNmFjZmRlNGNj NmRmMjFkNGYzNDU0N2U1ZGUxYTAxNzBlN2IyNjMKIAogYnJhbmNoIGBhcmNoZXInIC0gdGhlIG1l cmdlIG9mIGJyYW5jaGVzOgogYXJjaGVyLWphbmtyYXRvY2h2aWwtdmxhCiBhcmNoZXItamFua3Jh dG9jaHZpbC13YXRjaHBvaW50MwogYXJjaGVyLWphbmtyYXRvY2h2aWwtaWZ1bmMKLSNUT0RPPzph cmNoZXItdHJvbWV5LXB5dGhvbiAobm90IGEgbWVyZ2UpCithcmNoZXItdHJvbWV5LXB5dGhvbgog I1RPRE8/OmFyY2hlci10cm9tZXktb3B0aW9uYWwtcHN5bXRhYiAoY2hlcnJ5LXBpY2tlZCBmcm9t IHBvc3QtNy4yIG1hc3RlcikKICNUT0RPPzphcmNoZXItdHJvbWV5LXRocmVhZGVkLWR3YXJmCiAK IAorZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbgoraW5kZXgg OTQ1OWRlNC4uOTVjM2I1NyAxMDA2NDQKKy0tLSBhL2dkYi9NYWtlZmlsZS5pbgorKysrIGIvZ2Ri L01ha2VmaWxlLmluCitAQCAtNzgyLDcgKzc4Miw4IEBAIGNvbmZpZy9yczYwMDAvbm0tcnM2MDAw LmggdG9wLmggYnNkLWt2bS5oIGdkYi1zdGFicy5oIHJlZ2dyb3Vwcy5oIFwKKyBhbm5vdGF0ZS5o IHNpbS1yZWduby5oIGRpY3Rpb25hcnkuaCBkZnAuaCBtYWluLmggZnJhbWUtdW53aW5kLmgJXAor IHJlbW90ZS1maWxlaW8uaCBpMzg2LWxpbnV4LXRkZXAuaCB2YXgtdGRlcC5oIG9iamMtbGFuZy5o IFwKKyBzZW50aW5lbC1mcmFtZS5oIGJjYWNoZS5oIHN5bWZpbGUuaCB3aW5kb3dzLXRkZXAuaCBs aW51eC10ZGVwLmggXAorLWdkYl91c2xlZXAuaCBqaXQuaCB4bWwtc3lzY2FsbC5oIGFkYS1vcGVy YXRvci5pbmMgbWljcm9ibGF6ZS10ZGVwLmggXAorK2dkYl91c2xlZXAuaCBqaXQuaCBweXRob24v cHl0aG9uLmggcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oIFwKKyt4bWwtc3lzY2FsbC5oIGFkYS1v cGVyYXRvci5pbmMgbWljcm9ibGF6ZS10ZGVwLmggXAorIHBzeW10YWIuaCBwc3ltcHJpdi5oIHBy b2dzcGFjZS5oIGJmaW4tdGRlcC5oCisgCisgIyBIZWFkZXIgZmlsZXMgdGhhdCBhbHJlYWR5IGhh dmUgc3JjZGlyIGluIHRoZW0sIG9yIHdoaWNoIGFyZSBpbiBvYmpkaXIuCitAQCAtMTI4OSw2ICsx MjkwLDEyIEBAIHN0YW1wLWg6ICQoc3JjZGlyKS9jb25maWcuaW4gY29uZmlnLnN0YXR1cworIAkg IENPTkZJR19MSU5LUz0gXAorIAkgICQoU0hFTEwpIGNvbmZpZy5zdGF0dXMKKyAKKysuZ2RiaW5p dDogJChzcmNkaXIpL2dkYmluaXQuaW4gY29uZmlnLnN0YXR1cworKwlDT05GSUdfRklMRVM9Ii5n ZGJpbml0OmdkYmluaXQuaW4iIFwKKysJICBDT05GSUdfQ09NTUFORFM9IFwKKysJICBDT05GSUdf SEVBREVSUz0gXAorKwkgICQoU0hFTEwpIGNvbmZpZy5zdGF0dXMKKysKKyBjb25maWcuc3RhdHVz OiAkKHNyY2RpcikvY29uZmlndXJlIGNvbmZpZ3VyZS50Z3QgY29uZmlndXJlLmhvc3QKKyAJJChT SEVMTCkgY29uZmlnLnN0YXR1cyAtLXJlY2hlY2sKKyAKIGRpZmYgLS1naXQgYS9nZGIvYWRhLWxh bmcuYyBiL2dkYi9hZGEtbGFuZy5jCiBpbmRleCAzZWZmZjJlLi45OTA5N2JmIDEwMDY0NAogLS0t IGEvZ2RiL2FkYS1sYW5nLmMKQEAgLTMwMyw3ICszMzAsNyBAQCBpbmRleCAwN2Q1YmM3Li5mYWQ4 OWIxIDEwMDY0NAogKwogICNlbmRpZiAvKiBCTE9DS19IICovCiBkaWZmIC0tZ2l0IGEvZ2RiL2Js b2NrZnJhbWUuYyBiL2dkYi9ibG9ja2ZyYW1lLmMKLWluZGV4IDRjZmM2ZTYuLmRjNjRkNTEgMTAw NjQ0CitpbmRleCBiOWFhZjU0Li5lMWYzMjQyIDEwMDY0NAogLS0tIGEvZ2RiL2Jsb2NrZnJhbWUu YwogKysrIGIvZ2RiL2Jsb2NrZnJhbWUuYwogQEAgLTE2MCw2ICsxNjAsNyBAQCBzdGF0aWMgQ09S RV9BRERSIGNhY2hlX3BjX2Z1bmN0aW9uX2xvdyA9IDA7CkBAIC0zNTQsNyArMzgxLDcgQEAgaW5k ZXggNGNmYzZlNi4uZGM2NGQ1MSAxMDA2NDQKICAKICAgIC8qIElmIHRoZSBtaW5pbWFsIHN5bWJv bCBoYXMgYSBzaXplLCB1c2UgaXQgZm9yIHRoZSBjYWNoZS4KICAgICAgIE90aGVyd2lzZSB1c2Ug dGhlIGxlc3NlciBvZiB0aGUgbmV4dCBtaW5pbWFsIHN5bWJvbCBpbiB0aGUgc2FtZQotQEAgLTMy NCw3ICszMjgsOCBAQCBmaW5kX3BjX3BhcnRpYWxfZnVuY3Rpb24gKENPUkVfQUREUiBwYywgY2hh ciAqKm5hbWUsIENPUkVfQUREUiAqYWRkcmVzcywKK0BAIC0zMjcsNyArMzMxLDggQEAgZmluZF9w Y19wYXJ0aWFsX2Z1bmN0aW9uIChDT1JFX0FERFIgcGMsIGNoYXIgKipuYW1lLCBDT1JFX0FERFIg KmFkZHJlc3MsCiAgCSplbmRhZGRyID0gY2FjaGVfcGNfZnVuY3Rpb25faGlnaDsKICAgICAgfQog IApAQCAtMzY1LDcgKzM5Miw3IEBAIGluZGV4IDRjZmM2ZTYuLmRjNjRkNTEgMTAwNjQ0CiAgCiAg LyogUmV0dXJuIHRoZSBpbm5lcm1vc3Qgc3RhY2sgZnJhbWUgZXhlY3V0aW5nIGluc2lkZSBvZiBC TE9DSywgb3IgTlVMTAogZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmMgYi9nZGIvYnJlYWtw b2ludC5jCi1pbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAoraW5kZXggOTdlZmMwYS4uZjYz M2Y1NyAxMDA2NDQKIC0tLSBhL2dkYi9icmVha3BvaW50LmMKICsrKyBiL2dkYi9icmVha3BvaW50 LmMKIEBAIC02Miw2ICs2Miw3IEBACkBAIC0zOTcsNyArNDI0LDcgQEAgaW5kZXggNzg1MTU1Yy4u NjNkNzM2ZiAxMDA2NDQKICAvKiBBc3N1bWluZyB3ZSdyZSBjcmVhdGluZyBhIHN0YXRpYyB0cmFj ZXBvaW50LCBkb2VzIFMgbG9vayBsaWtlIGEKICAgICBzdGF0aWMgdHJhY2Vwb2ludCBtYXJrZXIg c3BlYyAoIi1tIE1BUktFUl9JRCIpPyAgKi8KICAjZGVmaW5lIGlzX21hcmtlcl9zcGVjKHMpCQkJ CQkJXAotQEAgLTEyNzAsNiArMTI3OCwyMiBAQCB3YXRjaHBvaW50X2luX3RocmVhZF9zY29wZSAo c3RydWN0IGJyZWFrcG9pbnQgKmIpCitAQCAtMTI3OCw2ICsxMjg2LDIyIEBAIHdhdGNocG9pbnRf aW5fdGhyZWFkX3Njb3BlIChzdHJ1Y3QgYnJlYWtwb2ludCAqYikKICAJICAgICAgJiYgIWlzX2V4 ZWN1dGluZyAoaW5mZXJpb3JfcHRpZCkpKTsKICB9CiAgCkBAIC00MjAsNyArNDQ3LDcgQEAgaW5k ZXggNzg1MTU1Yy4uNjNkNzM2ZiAxMDA2NDQKICAvKiBBc3N1bWluZyB0aGF0IEIgaXMgYSB3YXRj aHBvaW50OgogICAgIC0gUmVwYXJzZSB3YXRjaHBvaW50IGV4cHJlc3Npb24sIGlmIFJFUEFSU0Ug aXMgbm9uLXplcm8KICAgICAtIEV2YWx1YXRlIGV4cHJlc3Npb24gYW5kIHN0b3JlIHRoZSByZXN1 bHQgaW4gQi0+dmFsCi1AQCAtMTMyOSwxMiArMTM1MywxNyBAQCB1cGRhdGVfd2F0Y2hwb2ludCAo c3RydWN0IGJyZWFrcG9pbnQgKmIsIGludCByZXBhcnNlKQorQEAgLTEzMzcsMTIgKzEzNjEsMTcg QEAgdXBkYXRlX3dhdGNocG9pbnQgKHN0cnVjdCBicmVha3BvaW50ICpiLCBpbnQgcmVwYXJzZSkK ICAgIHN0cnVjdCBmcmFtZV9pZCBzYXZlZF9mcmFtZV9pZDsKICAgIGludCBmcmFtZV9zYXZlZDsK ICAKQEAgLTQzOCw5ICs0NjUsOSBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAogICAg LyogV2UgZG9uJ3QgZnJlZSBsb2NhdGlvbnMuICBUaGV5IGFyZSBzdG9yZWQgaW4gYnBfbG9jYXRp b24gYXJyYXkKICAgICAgIGFuZCB1cGRhdGVfZ2xvYmFsX2xvY2F0aW9ucyB3aWxsIGV2ZW50dWFs bHkgZGVsZXRlIHRoZW0gYW5kCiAgICAgICByZW1vdmUgYnJlYWtwb2ludHMgaWYgbmVlZGVkLiAg Ki8KLUBAIC0xNTM0LDEzICsxNTYzLDcgQEAgdXBkYXRlX3dhdGNocG9pbnQgKHN0cnVjdCBicmVh a3BvaW50ICpiLCBpbnQgcmVwYXJzZSkKLSBXYXRjaHBvaW50ICVkIGRlbGV0ZWQgYmVjYXVzZSB0 aGUgcHJvZ3JhbSBoYXMgbGVmdCB0aGUgYmxvY2tcblwKLSBpbiB3aGljaCBpdHMgZXhwcmVzc2lv biBpcyB2YWxpZC5cbiIpLAorQEAgLTE1NDIsMTMgKzE1NzEsNyBAQCB1cGRhdGVfd2F0Y2hwb2lu dCAoc3RydWN0IGJyZWFrcG9pbnQgKmIsIGludCByZXBhcnNlKQorIAkJCSAidGhlIHByb2dyYW0g aGFzIGxlZnQgdGhlIGJsb2NrXG4iCisgCQkJICJpbiB3aGljaCBpdHMgZXhwcmVzc2lvbiBpcyB2 YWxpZC5cbiIpLAogIAkJICAgICAgIGItPm51bWJlcik7CiAtICAgICAgaWYgKGItPnJlbGF0ZWRf YnJlYWtwb2ludCkKIC0JewpAQCAtNDUzLDcgKzQ4MCw3IEBAIGluZGV4IDc4NTE1NWMuLjYzZDcz NmYgMTAwNjQ0CiAgICAgIH0KICAKICAgIC8qIFJlc3RvcmUgdGhlIHNlbGVjdGVkIGZyYW1lLiAg Ki8KLUBAIC0xOTE2LDYgKzE5MzksNyBAQCBpbnNlcnRfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHZv aWQpCitAQCAtMTkzMCw2ICsxOTUzLDcgQEAgaW5zZXJ0X2JyZWFrcG9pbnRfbG9jYXRpb25zICh2 b2lkKQogICAgaW50IHZhbCA9IDA7CiAgICBpbnQgZGlzYWJsZWRfYnJlYWtzID0gMDsKICAgIGlu dCBod19icmVha3BvaW50X2Vycm9yID0gMDsKQEAgLTQ2MSw3ICs0ODgsNyBAQCBpbmRleCA3ODUx NTVjLi42M2Q3MzZmIDEwMDY0NAogIAogICAgc3RydWN0IHVpX2ZpbGUgKnRtcF9lcnJvcl9zdHJl YW0gPSBtZW1fZmlsZW9wZW4gKCk7CiAgICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cHMgPSBtYWtl X2NsZWFudXBfdWlfZmlsZV9kZWxldGUgKHRtcF9lcnJvcl9zdHJlYW0pOwotQEAgLTE5NDMsOSAr MTk2NywxMyBAQCBpbnNlcnRfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHZvaWQpCitAQCAtMTk1Nyw5 ICsxOTgxLDEzIEBAIGluc2VydF9icmVha3BvaW50X2xvY2F0aW9ucyAodm9pZCkKICAgICAgICAv KiBGb3IgdGFyZ2V0cyB0aGF0IHN1cHBvcnQgZ2xvYmFsIGJyZWFrcG9pbnRzLCB0aGVyZSdzIG5v IG5lZWQKICAJIHRvIHNlbGVjdCBhbiBpbmZlcmlvciB0byBpbnNlcnQgYnJlYWtwb2ludCB0by4g IEluIGZhY3QsIGV2ZW4KICAJIGlmIHdlIGFyZW4ndCBhdHRhY2hlZCB0byBhbnkgcHJvY2VzcyB5 ZXQsIHdlIHNob3VsZCBzdGlsbApAQCAtNDc3LDcgKzUwNCw3IEBAIGluZGV4IDc4NTE1NWMuLjYz ZDczNmYgMTAwNjQ0CiAgCWNvbnRpbnVlOwogIAogICAgICAgIHZhbCA9IGluc2VydF9icF9sb2Nh dGlvbiAoYmwsIHRtcF9lcnJvcl9zdHJlYW0sICZkaXNhYmxlZF9icmVha3MsCi1AQCAtMTk2OSwx MyArMTk5NywxOSBAQCBpbnNlcnRfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHZvaWQpCitAQCAtMTk4 MywxMyArMjAxMSwxOSBAQCBpbnNlcnRfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHZvaWQpCiAgCiAg ICAgICAgaWYgKGJwdC0+ZGlzcG9zaXRpb24gPT0gZGlzcF9kZWxfYXRfbmV4dF9zdG9wKQogIAlj b250aW51ZTsKQEAgLTUwMyw3ICs1MzAsNyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0 NAogICAgICAgIGlmIChzb21lX2ZhaWxlZCkKICAJewogIAkgIGZvciAobG9jID0gYnB0LT5sb2M7 IGxvYzsgbG9jID0gbG9jLT5uZXh0KQotQEAgLTI1MjUsOCArMjU1OSw3IEBAIHJlbW92ZV9icmVh a3BvaW50XzEgKHN0cnVjdCBicF9sb2NhdGlvbiAqYmwsIGluc2VydGlvbl9zdGF0ZV90IGlzKQor QEAgLTI1MzksOCArMjU3Myw3IEBAIHJlbW92ZV9icmVha3BvaW50XzEgKHN0cnVjdCBicF9sb2Nh dGlvbiAqYmwsIGluc2VydGlvbl9zdGF0ZV90IGlzKQogICAgICB7CiAgICAgICAgYmwtPmluc2Vy dGVkID0gKGlzID09IG1hcmtfaW5zZXJ0ZWQpOwogICAgICAgIHZhbCA9IHRhcmdldF9yZW1vdmVf d2F0Y2hwb2ludCAoYmwtPmFkZHJlc3MsIGJsLT5sZW5ndGgsCkBAIC01MTMsNyArNTQwLDcgQEAg aW5kZXggNzg1MTU1Yy4uNjNkNzM2ZiAxMDA2NDQKICAKICAgICAgICAvKiBGYWlsdXJlIHRvIHJl bW92ZSBhbnkgb2YgdGhlIGhhcmR3YXJlIHdhdGNocG9pbnRzIGNvbWVzIGhlcmUuICAqLwogICAg ICAgIGlmICgoaXMgPT0gbWFya191bmluc2VydGVkKSAmJiAoYmwtPmluc2VydGVkKSkKLUBAIC0z NDE5LDYgKzM0NTIsOCBAQCBwcmludF9pdF90eXBpY2FsIChicHN0YXQgYnMpCitAQCAtMzQzNiw2 ICszNDY5LDggQEAgcHJpbnRfaXRfdHlwaWNhbCAoYnBzdGF0IGJzKQogICAgICBjYXNlIGJwX3Ry YWNlcG9pbnQ6CiAgICAgIGNhc2UgYnBfZmFzdF90cmFjZXBvaW50OgogICAgICBjYXNlIGJwX2pp dF9ldmVudDoKQEAgLTUyMiw3ICs1NDksNyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0 NAogICAgICBkZWZhdWx0OgogICAgICAgIHJlc3VsdCA9IFBSSU5UX1VOS05PV047CiAgICAgICAg YnJlYWs7Ci1AQCAtMzY0MCw2ICszNjc1LDggQEAgd2F0Y2hwb2ludF9jaGVjayAodm9pZCAqcCkK K0BAIC0zNjU3LDYgKzM2OTIsOCBAQCB3YXRjaHBvaW50X2NoZWNrICh2b2lkICpwKQogICAgZ2Ri X2Fzc2VydCAoYnMtPmJyZWFrcG9pbnRfYXQgIT0gTlVMTCk7CiAgICBiID0gYnMtPmJyZWFrcG9p bnRfYXQ7CiAgCkBAIC01MzEsOCArNTU4LDggQEAgaW5kZXggNzg1MTU1Yy4uNjNkNzM2ZiAxMDA2 NDQKICAgIC8qIElmIHRoaXMgaXMgYSBsb2NhbCB3YXRjaHBvaW50LCB3ZSBvbmx5IHdhbnQgdG8g Y2hlY2sgaWYgdGhlCiAgICAgICB3YXRjaHBvaW50IGZyYW1lIGlzIGluIHNjb3BlIGlmIHRoZSBj dXJyZW50IHRocmVhZCBpcyB0aGUgdGhyZWFkCiAgICAgICB0aGF0IHdhcyB1c2VkIHRvIGNyZWF0 ZSB0aGUgd2F0Y2hwb2ludC4gICovCi1AQCAtMzc0OCwxMyArMzc4NSw3IEBAIHdhdGNocG9pbnRf Y2hlY2sgKHZvaWQgKnApCi0gICAgICAgdWlfb3V0X3RleHQgKHVpb3V0LCAiIGRlbGV0ZWQgYmVj YXVzZSB0aGUgcHJvZ3JhbSBoYXMgbGVmdCB0aGUgYmxvY2sgaW5cblwKK0BAIC0zNzY2LDEzICsz ODAzLDcgQEAgd2F0Y2hwb2ludF9jaGVjayAodm9pZCAqcCkKKyAJCSAgICIgZGVsZXRlZCBiZWNh dXNlIHRoZSBwcm9ncmFtIGhhcyBsZWZ0IHRoZSBibG9jayBpblxuXAogIHdoaWNoIGl0cyBleHBy ZXNzaW9uIGlzIHZhbGlkLlxuIik7ICAgICAKICAKIC0gICAgICBpZiAoYi0+cmVsYXRlZF9icmVh a3BvaW50KQpAQCAtNTQ2LDcgKzU3Myw3IEBAIGluZGV4IDc4NTE1NWMuLjYzZDczNmYgMTAwNjQ0 CiAgCiAgICAgICAgcmV0dXJuIFdQX0RFTEVURUQ7CiAgICAgIH0KLUBAIC0zOTU4LDkgKzM5ODks NyBAQCBicHN0YXRfY2hlY2tfd2F0Y2hwb2ludCAoYnBzdGF0IGJzKQorQEAgLTM5NzcsOSArNDAw OCw3IEBAIGJwc3RhdF9jaGVja193YXRjaHBvaW50IChicHN0YXQgYnMpCiAgCSAgICBjYXNlIDA6 CiAgCSAgICAgIC8qIEVycm9yIGZyb20gY2F0Y2hfZXJyb3JzLiAgKi8KICAJICAgICAgcHJpbnRm X2ZpbHRlcmVkIChfKCJXYXRjaHBvaW50ICVkIGRlbGV0ZWQuXG4iKSwgYi0+bnVtYmVyKTsKQEAg LTU1Nyw3ICs1ODQsNyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAogIAkgICAgICAv KiBXZSd2ZSBhbHJlYWR5IHByaW50ZWQgd2hhdCBuZWVkcyB0byBiZSBwcmludGVkLiAgKi8KICAJ ICAgICAgYnMtPnByaW50X2l0ID0gcHJpbnRfaXRfZG9uZTsKICAJICAgICAgYnJlYWs7Ci1AQCAt NDE2Niw3ICs0MTk1LDcgQEAgYnBzdGF0X3N0b3Bfc3RhdHVzIChzdHJ1Y3QgYWRkcmVzc19zcGFj ZSAqYXNwYWNlLAorQEAgLTQxODUsNyArNDIxNCw3IEBAIGJwc3RhdF9zdG9wX3N0YXR1cyAoc3Ry dWN0IGFkZHJlc3Nfc3BhY2UgKmFzcGFjZSwKICAJICAgICB3YXRjaHBvaW50IGFzIHRyaWdnZXJl ZCBzbyB0aGF0IHdlIHdpbGwgaGFuZGxlIHRoZQogIAkgICAgIG91dC1vZi1zY29wZSBldmVudC4g IFdlJ2xsIGdldCB0byB0aGUgd2F0Y2hwb2ludCBuZXh0CiAgCSAgICAgaXRlcmF0aW9uLiAgKi8K QEAgLTU2Niw3ICs1OTMsNyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAogIAkgICAg Yi0+cmVsYXRlZF9icmVha3BvaW50LT53YXRjaHBvaW50X3RyaWdnZXJlZCA9IHdhdGNoX3RyaWdn ZXJlZF95ZXM7CiAgCX0KICAgICAgfQotQEAgLTQyODgsNyArNDMxNyw3IEBAIGhhbmRsZV9qaXRf ZXZlbnQgKHZvaWQpCitAQCAtNDMwNyw3ICs0MzM2LDcgQEAgaGFuZGxlX2ppdF9ldmVudCAodm9p ZCkKICAvKiBEZWNpZGUgd2hhdCBpbmZydW4gbmVlZHMgdG8gZG8gd2l0aCB0aGlzIGJwc3RhdC4g ICovCiAgCiAgc3RydWN0IGJwc3RhdF93aGF0CkBAIC01NzUsNyArNjAyLDcgQEAgaW5kZXggNzg1 MTU1Yy4uNjNkNzM2ZiAxMDA2NDQKICB7CiAgICBzdHJ1Y3QgYnBzdGF0X3doYXQgcmV0dmFsOwog ICAgLyogV2UgbmVlZCB0byBkZWZlciBjYWxsaW5nIGBzb2xpYl9hZGQnLCBhcyBhZGRpbmcgbmV3 IHN5bWJvbHMKLUBAIC00Mjk2LDEyICs0MzI1LDEzIEBAIGJwc3RhdF93aGF0IChicHN0YXQgYnMp CitAQCAtNDMxNSwxMiArNDM0NCwxMyBAQCBicHN0YXRfd2hhdCAoYnBzdGF0IGJzKQogICAgICAg YW5kIGhlbmNlIG1heSBjbGVhciB1bnByb2Nlc3NlZCBlbnRyaWVzIGluIHRoZSBCUyBjaGFpbi4g ICovCiAgICBpbnQgc2hsaWJfZXZlbnQgPSAwOwogICAgaW50IGppdF9ldmVudCA9IDA7CkBAIC01 OTAsNyArNjE3LDcgQEAgaW5kZXggNzg1MTU1Yy4uNjNkNzM2ZiAxMDA2NDQKICAgICAgewogICAg ICAgIC8qIEV4dHJhY3QgdGhpcyBCUydzIGFjdGlvbi4gIEFmdGVyIHByb2Nlc3NpbmcgZWFjaCBC Uywgd2UgY2hlY2sKICAJIGlmIGl0cyBhY3Rpb24gb3ZlcnJpZGVzIGFsbCB3ZSd2ZSBzZWVtIHNv IGZhci4gICovCi1AQCAtNDQzMSw2ICs0NDYxLDIwIEBAIGJwc3RhdF93aGF0IChicHN0YXQgYnMp CitAQCAtNDQ1MCw2ICs0NDgwLDIwIEBAIGJwc3RhdF93aGF0IChicHN0YXQgYnMpCiAgCSAgICAg b3V0IGFscmVhZHkuICAqLwogIAkgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18s CiAgCQkJICBfKCJicHN0YXRfd2hhdDogdHJhY2Vwb2ludCBlbmNvdW50ZXJlZCIpKTsKQEAgLTYx MSw3ICs2MzgsNyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAogIAlkZWZhdWx0Ogog IAkgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCiAgCQkJICBfKCJicHN0YXRf d2hhdDogdW5oYW5kbGVkIGJwdHlwZSAlZCIpLCAoaW50KSBicHR5cGUpOwotQEAgLTQ0NjgsNiAr NDUxMiwyMSBAQCBicHN0YXRfd2hhdCAoYnBzdGF0IGJzKQorQEAgLTQ0ODcsNiArNDUzMSwyMSBA QCBicHN0YXRfd2hhdCAoYnBzdGF0IGJzKQogICAgICAgIGhhbmRsZV9qaXRfZXZlbnQgKCk7CiAg ICAgIH0KICAKQEAgLTYzMyw3ICs2NjAsNyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0 NAogICAgcmV0dXJuIHJldHZhbDsKICB9CiAgCi1AQCAtNDU4OSw2ICs0NjQ4LDggQEAgYnB0eXBl X3N0cmluZyAoZW51bSBicHR5cGUgdHlwZSkKK0BAIC00NjA4LDYgKzQ2NjcsOCBAQCBicHR5cGVf c3RyaW5nIChlbnVtIGJwdHlwZSB0eXBlKQogICAgICB7YnBfZmFzdF90cmFjZXBvaW50LCAiZmFz dCB0cmFjZXBvaW50In0sCiAgICAgIHticF9zdGF0aWNfdHJhY2Vwb2ludCwgInN0YXRpYyB0cmFj ZXBvaW50In0sCiAgICAgIHticF9qaXRfZXZlbnQsICJqaXQgZXZlbnRzIn0sCkBAIC02NDIsNyAr NjY5LDcgQEAgaW5kZXggNzg1MTU1Yy4uNjNkNzM2ZiAxMDA2NDQKICAgIH07CiAgCiAgICBpZiAo KChpbnQpIHR5cGUgPj0gKHNpemVvZiAoYnB0eXBlcykgLyBzaXplb2YgKGJwdHlwZXNbMF0pKSkK LUBAIC00NzM2LDYgKzQ3OTcsOCBAQCBwcmludF9vbmVfYnJlYWtwb2ludF9sb2NhdGlvbiAoc3Ry dWN0IGJyZWFrcG9pbnQgKmIsCitAQCAtNDc1NSw2ICs0ODE2LDggQEAgcHJpbnRfb25lX2JyZWFr cG9pbnRfbG9jYXRpb24gKHN0cnVjdCBicmVha3BvaW50ICpiLAogICAgICAgIGNhc2UgYnBfZmFz dF90cmFjZXBvaW50OgogICAgICAgIGNhc2UgYnBfc3RhdGljX3RyYWNlcG9pbnQ6CiAgICAgICAg Y2FzZSBicF9qaXRfZXZlbnQ6CkBAIC02NTEsNyArNjc4LDcgQEAgaW5kZXggNzg1MTU1Yy4uNjNk NzM2ZiAxMDA2NDQKICAJaWYgKG9wdHMuYWRkcmVzc3ByaW50KQogIAkgIHsKICAJICAgIGFubm90 YXRlX2ZpZWxkICg0KTsKLUBAIC01MDE3LDcgKzUwODAsOCBAQCB1c2VyX3NldHRhYmxlX2JyZWFr cG9pbnQgKGNvbnN0IHN0cnVjdCBicmVha3BvaW50ICpiKQorQEAgLTUwMzYsNyArNTA5OSw4IEBA IHVzZXJfc2V0dGFibGVfYnJlYWtwb2ludCAoY29uc3Qgc3RydWN0IGJyZWFrcG9pbnQgKmIpCiAg CSAgfHwgYi0+dHlwZSA9PSBicF9jYXRjaHBvaW50CiAgCSAgfHwgYi0+dHlwZSA9PSBicF9oYXJk d2FyZV9icmVha3BvaW50CiAgCSAgfHwgaXNfdHJhY2Vwb2ludCAoYikKQEAgLTY2MSw3ICs2ODgs NyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAogIH0KICAKICAvKiBQcmludCBpbmZv cm1hdGlvbiBvbiB1c2VyIHNldHRhYmxlIGJyZWFrcG9pbnQgKHdhdGNocG9pbnQsIGV0YykKLUBA IC01NDk3LDYgKzU1NjEsOCBAQCBhbGxvY2F0ZV9icF9sb2NhdGlvbiAoc3RydWN0IGJyZWFrcG9p bnQgKmJwdCkKK0BAIC01NTE4LDYgKzU1ODIsOCBAQCBhbGxvY2F0ZV9icF9sb2NhdGlvbiAoc3Ry dWN0IGJyZWFrcG9pbnQgKmJwdCkKICAgICAgY2FzZSBicF9sb25nam1wX21hc3RlcjoKICAgICAg Y2FzZSBicF9zdGRfdGVybWluYXRlX21hc3RlcjoKICAgICAgY2FzZSBicF9leGNlcHRpb25fbWFz dGVyOgpAQCAtNjcwLDcgKzY5Nyw3IEBAIGluZGV4IDc4NTE1NWMuLjYzZDczNmYgMTAwNjQ0CiAg ICAgICAgbG9jLT5sb2NfdHlwZSA9IGJwX2xvY19zb2Z0d2FyZV9icmVha3BvaW50OwogICAgICAg IGJyZWFrOwogICAgICBjYXNlIGJwX2hhcmR3YXJlX2JyZWFrcG9pbnQ6Ci1AQCAtNTU4Niw2ICs1 NjUyLDcgQEAgc2V0X3Jhd19icmVha3BvaW50X3dpdGhvdXRfbG9jYXRpb24gKHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoLAorQEAgLTU2MDcsNiArNTY3Myw3IEBAIHNldF9yYXdfYnJlYWtwb2ludF93 aXRob3V0X2xvY2F0aW9uIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICAgIGItPm9wcyA9IE5V TEw7CiAgICBiLT5jb25kaXRpb25fbm90X3BhcnNlZCA9IDA7CiAgICBiLT5weV9icF9vYmplY3Qg PSBOVUxMOwpAQCAtNjc4LDcgKzcwNSw3IEBAIGluZGV4IDc4NTE1NWMuLjYzZDczNmYgMTAwNjQ0 CiAgCiAgICAvKiBBZGQgdGhpcyBicmVha3BvaW50IHRvIHRoZSBlbmQgb2YgdGhlIGNoYWluIHNv IHRoYXQgYSBsaXN0IG9mCiAgICAgICBicmVha3BvaW50cyB3aWxsIGNvbWUgb3V0IGluIG9yZGVy IG9mIGluY3JlYXNpbmcgbnVtYmVycy4gICovCi1AQCAtNTYwNCw3ICs1NjcxLDcgQEAgc2V0X3Jh d19icmVha3BvaW50X3dpdGhvdXRfbG9jYXRpb24gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAor QEAgLTU2MjUsNyArNTY5Miw3IEBAIHNldF9yYXdfYnJlYWtwb2ludF93aXRob3V0X2xvY2F0aW9u IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICAKICAvKiBJbml0aWFsaXplIGxvYy0+ZnVuY3Rp b25fbmFtZS4gICovCiAgc3RhdGljIHZvaWQKQEAgLTY4Nyw3ICs3MTQsNyBAQCBpbmRleCA3ODUx NTVjLi42M2Q3MzZmIDEwMDY0NAogIHsKICAgIGdkYl9hc3NlcnQgKGxvYy0+b3duZXIgIT0gTlVM TCk7CiAgCi1AQCAtNTYxMiw4ICs1Njc5LDI5IEBAIHNldF9icmVha3BvaW50X2xvY2F0aW9uX2Z1 bmN0aW9uIChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKK0BAIC01NjMzLDggKzU3MDAsMjkgQEAg c2V0X2JyZWFrcG9pbnRfbG9jYXRpb25fZnVuY3Rpb24gKHN0cnVjdCBicF9sb2NhdGlvbiAqbG9j KQogICAgICAgIHx8IGxvYy0+b3duZXItPnR5cGUgPT0gYnBfaGFyZHdhcmVfYnJlYWtwb2ludAog ICAgICAgIHx8IGlzX3RyYWNlcG9pbnQgKGxvYy0+b3duZXIpKQogICAgICB7CkBAIC03MTksNyAr NzQ2LDcgQEAgaW5kZXggNzg1MTU1Yy4uNjNkNzM2ZiAxMDA2NDQKICAgICAgICBpZiAobG9jLT5m dW5jdGlvbl9uYW1lKQogIAlsb2MtPmZ1bmN0aW9uX25hbWUgPSB4c3RyZHVwIChsb2MtPmZ1bmN0 aW9uX25hbWUpOwogICAgICB9Ci1AQCAtNTY4OCw3ICs1Nzc2LDggQEAgc2V0X3Jhd19icmVha3Bv aW50IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKK0BAIC01NzA5LDcgKzU3OTcsOCBAQCBzZXRf cmF3X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogICAgYi0+bG9jLT5zZWN0 aW9uID0gc2FsLnNlY3Rpb247CiAgICBiLT5saW5lX251bWJlciA9IHNhbC5saW5lOwogIApAQCAt NzI5LDcgKzc1Niw3IEBAIGluZGV4IDc4NTE1NWMuLjYzZDczNmYgMTAwNjQ0CiAgCiAgICBicmVh a3BvaW50c19jaGFuZ2VkICgpOwogIAotQEAgLTY3NzUsNyArNjg2NCw3IEBAIGNsb25lX21vbWVu dGFyeV9icmVha3BvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqb3JpZykKK0BAIC02Nzk5LDcgKzY4 ODgsNyBAQCBjbG9uZV9tb21lbnRhcnlfYnJlYWtwb2ludCAoc3RydWN0IGJyZWFrcG9pbnQgKm9y aWcpCiAgCiAgICBjb3B5ID0gc2V0X3Jhd19icmVha3BvaW50X3dpdGhvdXRfbG9jYXRpb24gKG9y aWctPmdkYmFyY2gsIG9yaWctPnR5cGUpOwogICAgY29weS0+bG9jID0gYWxsb2NhdGVfYnBfbG9j YXRpb24gKGNvcHkpOwpAQCAtNzM4LDcgKzc2NSw3IEBAIGluZGV4IDc4NTE1NWMuLjYzZDczNmYg MTAwNjQ0CiAgCiAgICBjb3B5LT5sb2MtPmdkYmFyY2ggPSBvcmlnLT5sb2MtPmdkYmFyY2g7CiAg ICBjb3B5LT5sb2MtPnJlcXVlc3RlZF9hZGRyZXNzID0gb3JpZy0+bG9jLT5yZXF1ZXN0ZWRfYWRk cmVzczsKLUBAIC02ODc0LDYgKzY5NjMsNyBAQCBtZW50aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAq YikKK0BAIC02ODk5LDYgKzY5ODgsNyBAQCBtZW50aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYikK ICAJZG9fY2xlYW51cHMgKHVpX291dF9jaGFpbik7CiAgCWJyZWFrOwogICAgICAgIGNhc2UgYnBf YnJlYWtwb2ludDoKQEAgLTc0Niw3ICs3NzMsNyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEw MDY0NAogIAlpZiAodWlfb3V0X2lzX21pX2xpa2VfcCAodWlvdXQpKQogIAkgIHsKICAJICAgIHNh eV93aGVyZSA9IDA7Ci1AQCAtNjg4NCw2ICs2OTc0LDggQEAgbWVudGlvbiAoc3RydWN0IGJyZWFr cG9pbnQgKmIpCitAQCAtNjkwOSw2ICs2OTk5LDggQEAgbWVudGlvbiAoc3RydWN0IGJyZWFrcG9p bnQgKmIpCiAgCWVsc2UKICAJICBwcmludGZfZmlsdGVyZWQgKF8oIkJyZWFrcG9pbnQiKSk7CiAg CXByaW50Zl9maWx0ZXJlZCAoXygiICVkIiksIGItPm51bWJlcik7CkBAIC03NTUsNyArNzgyLDcg QEAgaW5kZXggNzg1MTU1Yy4uNjNkNzM2ZiAxMDA2NDQKICAJc2F5X3doZXJlID0gMTsKICAJYnJl YWs7CiAgICAgICAgY2FzZSBicF9oYXJkd2FyZV9icmVha3BvaW50OgotQEAgLTY5NDMsNiArNzAz NSw3IEBAIG1lbnRpb24gKHN0cnVjdCBicmVha3BvaW50ICpiKQorQEAgLTY5NjgsNiArNzA2MCw3 IEBAIG1lbnRpb24gKHN0cnVjdCBicmVha3BvaW50ICpiKQogICAgICAgIGNhc2UgYnBfbG9uZ2pt cF9tYXN0ZXI6CiAgICAgICAgY2FzZSBicF9zdGRfdGVybWluYXRlX21hc3RlcjoKICAgICAgICBj YXNlIGJwX2V4Y2VwdGlvbl9tYXN0ZXI6CkBAIC03NjMsNyArNzkwLDcgQEAgaW5kZXggNzg1MTU1 Yy4uNjNkNzM2ZiAxMDA2NDQKICAJYnJlYWs7CiAgICAgICAgfQogIAotQEAgLTcwMDMsNyArNzA5 Niw4IEBAIGFkZF9sb2NhdGlvbl90b19icmVha3BvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwK K0BAIC03MDI4LDcgKzcxMjEsOCBAQCBhZGRfbG9jYXRpb25fdG9fYnJlYWtwb2ludCAoc3RydWN0 IGJyZWFrcG9pbnQgKmIsCiAgICBnZGJfYXNzZXJ0IChsb2MtPnBzcGFjZSAhPSBOVUxMKTsKICAg IGxvYy0+c2VjdGlvbiA9IHNhbC0+c2VjdGlvbjsKICAKQEAgLTc3Myw3ICs4MDAsNyBAQCBpbmRl eCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAogICAgcmV0dXJuIGxvYzsKICB9CiAgDAotQEAgLTgz OTcsNiArODQ5MSw3IEBAIHdhdGNoX2NvbW1hbmRfMSAoY2hhciAqYXJnLCBpbnQgYWNjZXNzZmxh ZywgaW50IGZyb21fdHR5LAorQEAgLTg0MjcsNiArODUyMSw3IEBAIHdhdGNoX2NvbW1hbmRfMSAo Y2hhciAqYXJnLCBpbnQgYWNjZXNzZmxhZywgaW50IGZyb21fdHR5LAogICAgYiA9IHNldF9yYXdf YnJlYWtwb2ludF93aXRob3V0X2xvY2F0aW9uIChOVUxMLCBicF90eXBlKTsKICAgIHNldF9icmVh a3BvaW50X251bWJlciAoaW50ZXJuYWwsIGIpOwogICAgYi0+dGhyZWFkID0gdGhyZWFkOwpAQCAt NzgxLDcgKzgwOCw3IEBAIGluZGV4IDc4NTE1NWMuLjYzZDczNmYgMTAwNjQ0CiAgICBiLT5kaXNw b3NpdGlvbiA9IGRpc3BfZG9udHRvdWNoOwogICAgYi0+ZXhwID0gZXhwOwogICAgYi0+ZXhwX3Zh bGlkX2Jsb2NrID0gZXhwX3ZhbGlkX2Jsb2NrOwotQEAgLTk1NTAsNiArOTY0NSw5IEBAIHVwZGF0 ZV9nbG9iYWxfbG9jYXRpb25fbGlzdCAoaW50IHNob3VsZF9pbnNlcnQpCitAQCAtOTU4Miw2ICs5 Njc3LDkgQEAgdXBkYXRlX2dsb2JhbF9sb2NhdGlvbl9saXN0IChpbnQgc2hvdWxkX2luc2VydCkK ICAgICAgICBpbnQga2VlcF9pbl90YXJnZXQgPSAwOwogICAgICAgIGludCByZW1vdmVkID0gMDsK ICAKQEAgLTc5MSw3ICs4MTgsNyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAogICAg ICAgIC8qIFNraXAgTE9DUCBlbnRyaWVzIHdoaWNoIHdpbGwgZGVmaW5pdGVseSBuZXZlciBiZSBu ZWVkZWQuCiAgCSBTdG9wIGVpdGhlciBhdCBvciBiZWluZyB0aGUgb25lIG1hdGNoaW5nIE9MRF9M T0MuICAqLwogICAgICAgIHdoaWxlIChsb2NwIDwgYnBfbG9jYXRpb24gKyBicF9sb2NhdGlvbl9j b3VudAotQEAgLTk4NjUsMTIgKzk5NjMsMjIgQEAgZGVsZXRlX2JyZWFrcG9pbnQgKHN0cnVjdCBi cmVha3BvaW50ICpicHQpCitAQCAtOTg5OCwxMiArOTk5NiwyMiBAQCBkZWxldGVfYnJlYWtwb2lu dCAoc3RydWN0IGJyZWFrcG9pbnQgKmJwdCkKICAKICAgIC8qIEF0IGxlYXN0IGF2b2lkIHRoaXMg c3RhbGUgcmVmZXJlbmNlIHVudGlsIHRoZSByZWZlcmVuY2UgY291bnRpbmcKICAgICAgIG9mIGJy ZWFrcG9pbnRzIGdldHMgcmVzb2x2ZWQuICAqLwpAQCAtODE5LDcgKzg0Niw3IEBAIGluZGV4IDc4 NTE1NWMuLjYzZDczNmYgMTAwNjQ0CiAgICAgIH0KICAKICAgIG9ic2VydmVyX25vdGlmeV9icmVh a3BvaW50X2RlbGV0ZWQgKGJwdC0+bnVtYmVyKTsKLUBAIC0xMDIwMSw2ICsxMDMwOSw5IEBAIHVw ZGF0ZV9icmVha3BvaW50X2xvY2F0aW9ucyAoc3RydWN0IGJyZWFrcG9pbnQgKmIsCitAQCAtMTAy MzQsNiArMTAzNDIsOSBAQCB1cGRhdGVfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHN0cnVjdCBicmVh a3BvaW50ICpiLAogICAgICByZXR1cm47CiAgCiAgICBiLT5sb2MgPSBOVUxMOwpAQCAtODI5LDcg Kzg1Niw3IEBAIGluZGV4IDc4NTE1NWMuLjYzZDczNmYgMTAwNjQ0CiAgCiAgICBmb3IgKGkgPSAw OyBpIDwgc2Fscy5uZWx0czsgKytpKQogICAgICB7Ci1AQCAtMTAyMjcsMTEgKzEwMzM4LDcgQEAg dXBkYXRlX2JyZWFrcG9pbnRfbG9jYXRpb25zIChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwKK0BAIC0x MDI2MSwxMSArMTAzNzIsNyBAQCB1cGRhdGVfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHN0cnVjdCBi cmVha3BvaW50ICpiLAogIAkgICAgfQogIAl9CiAgCkBAIC04NDIsNyArODY5LDcgQEAgaW5kZXgg Nzg1MTU1Yy4uNjNkNzM2ZiAxMDA2NDQKICAJYi0+c291cmNlX2ZpbGUgPSB4c3RyZHVwIChzYWxz LnNhbHNbaV0uc3ltdGFiLT5maWxlbmFtZSk7CiAgCiAgICAgICAgaWYgKGItPmxpbmVfbnVtYmVy ID09IDApCi1AQCAtMTAzMTQsNiArMTA0MjEsNyBAQCBicmVha3BvaW50X3JlX3NldF9vbmUgKHZv aWQgKmJpbnQpCitAQCAtMTAzNDgsNiArMTA0NTUsNyBAQCBicmVha3BvaW50X3JlX3NldF9vbmUg KHZvaWQgKmJpbnQpCiAgICAgIGNhc2UgYnBfdHJhY2Vwb2ludDoKICAgICAgY2FzZSBicF9mYXN0 X3RyYWNlcG9pbnQ6CiAgICAgIGNhc2UgYnBfc3RhdGljX3RyYWNlcG9pbnQ6CkBAIC04NTAsNyAr ODc3LDcgQEAgaW5kZXggNzg1MTU1Yy4uNjNkNzM2ZiAxMDA2NDQKICAgICAgICAvKiBEbyBub3Qg YXR0ZW1wdCB0byByZS1zZXQgYnJlYWtwb2ludHMgZGlzYWJsZWQgZHVyaW5nIHN0YXJ0dXAuICAq LwogICAgICAgIGlmIChiLT5lbmFibGVfc3RhdGUgPT0gYnBfc3RhcnR1cF9kaXNhYmxlZCkKICAJ cmV0dXJuIDA7Ci1AQCAtMTA0ODQsNiArMTA1OTIsNyBAQCBicmVha3BvaW50X3JlX3NldF9vbmUg KHZvaWQgKmJpbnQpCitAQCAtMTA1MTgsNiArMTA2MjYsNyBAQCBicmVha3BvaW50X3JlX3NldF9v bmUgKHZvaWQgKmJpbnQpCiAgICAgIGNhc2UgYnBfZXhjZXB0aW9uOgogICAgICBjYXNlIGJwX2V4 Y2VwdGlvbl9yZXN1bWU6CiAgICAgIGNhc2UgYnBfaml0X2V2ZW50OgpAQCAtODU4LDcgKzg4NSw3 IEBAIGluZGV4IDc4NTE1NWMuLjYzZDczNmYgMTAwNjQ0CiAgICAgICAgYnJlYWs7CiAgICAgIH0K ICAKLUBAIC0xMDY1NiwxMSArMTA3NjUsMjUgQEAgbWFwX2JyZWFrcG9pbnRfbnVtYmVycyAoY2hh ciAqYXJncywgdm9pZCAoKmZ1bmN0aW9uKSAoc3RydWN0IGJyZWFrcG9pbnQgKiwKK0BAIC0xMDY5 MiwxMSArMTA4MDEsMjUgQEAgbWFwX2JyZWFrcG9pbnRfbnVtYmVycyAoY2hhciAqYXJncywgdm9p ZCAoKmZ1bmN0aW9uKSAoc3RydWN0IGJyZWFrcG9pbnQgKiwKICAJICBBTExfQlJFQUtQT0lOVFNf U0FGRSAoYiwgdG1wKQogIAkgICAgaWYgKGItPm51bWJlciA9PSBudW0pCiAgCSAgICAgIHsKQEAg LTg4OCw3ICs5MTUsNyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAogIAkJYnJlYWs7 CiAgCSAgICAgIH0KICAJICBpZiAobWF0Y2ggPT0gMCkKLUBAIC0xMTc2OSw2ICsxMTg5MiwyMiBA QCBhbGxfdHJhY2Vwb2ludHMgKCkKK0BAIC0xMTgxMSw2ICsxMTkzNCwyMiBAQCBhbGxfdHJhY2Vw b2ludHMgKCkKICAgIHJldHVybiB0cF92ZWM7CiAgfQogIApAQCAtOTExLDcgKzkzOCw3IEBAIGlu ZGV4IDc4NTE1NWMuLjYzZDczNmYgMTAwNjQ0CiAgDAogIC8qIFRoaXMgaGVscCBzdHJpbmcgaXMg dXNlZCBmb3IgdGhlIGJyZWFrLCBoYnJlYWssIHRicmVhayBhbmQgdGhicmVhawogICAgIGNvbW1h bmRzLiAgSXQgaXMgZGVmaW5lZCBhcyBhIG1hY3JvIHRvIHByZXZlbnQgZHVwbGljYXRpb24uCi1A QCAtMTE4NTQsNiArMTE5OTMsMTA3IEBAIGl0ZXJhdGVfb3Zlcl9icmVha3BvaW50cyAoaW50ICgq Y2FsbGJhY2spIChzdHJ1Y3QgYnJlYWtwb2ludCAqLCB2b2lkICopLAorQEAgLTExODk2LDYgKzEy MDM1LDEwNyBAQCBpdGVyYXRlX292ZXJfYnJlYWtwb2ludHMgKGludCAoKmNhbGxiYWNrKSAoc3Ry dWN0IGJyZWFrcG9pbnQgKiwgdm9pZCAqKSwKICAgIHJldHVybiBOVUxMOwogIH0KICAKQEAgLTEw MTksNyArMTA0Niw3IEBAIGluZGV4IDc4NTE1NWMuLjYzZDczNmYgMTAwNjQ0CiAgdm9pZAogIF9p bml0aWFsaXplX2JyZWFrcG9pbnQgKHZvaWQpCiAgewotQEAgLTEyMzg4LDQgKzEyNjI4LDUgQEAg aW5mZXJpb3IgaW4gYWxsLXN0b3AgbW9kZSwgZ2RiIGJlaGF2ZXMgYXMgaWYgYWx3YXlzLWluc2Vy dGVkIG1vZGUgaXMgb2ZmLiIpLAorQEAgLTEyNDMwLDQgKzEyNjcwLDUgQEAgaW5mZXJpb3IgaW4g YWxsLXN0b3AgbW9kZSwgZ2RiIGJlaGF2ZXMgYXMgaWYgYWx3YXlzLWluc2VydGVkIG1vZGUgaXMg b2ZmLiIpLAogICAgYXV0b21hdGljX2hhcmR3YXJlX2JyZWFrcG9pbnRzID0gMTsKICAKICAgIG9i c2VydmVyX2F0dGFjaF9hYm91dF90b19wcm9jZWVkIChicmVha3BvaW50X2Fib3V0X3RvX3Byb2Nl ZWQpOwpAQCAtMTA0MCw3ICsxMDY3LDcgQEAgaW5kZXggMmQ4MTVjMi4uNjZiM2VjZSAxMDA2NDQK ICAKICAvKiBTdGF0ZXMgb2YgZW5hYmxlbWVudCBvZiBicmVha3BvaW50LiAgKi8KIGRpZmYgLS1n aXQgYS9nZGIvYy10eXBlcHJpbnQuYyBiL2dkYi9jLXR5cGVwcmludC5jCi1pbmRleCBmZWVlODZk Li4zNjNjNjJiIDEwMDY0NAoraW5kZXggYzg4OTI2NC4uMzE1NWFmNyAxMDA2NDQKIC0tLSBhL2dk Yi9jLXR5cGVwcmludC5jCiArKysgYi9nZGIvYy10eXBlcHJpbnQuYwogQEAgLTYwOSw5ICs2MDks MTQgQEAgY190eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAg LTEwNjEsOCArMTA4OCwzOSBAQCBpbmRleCBmZWVlODZkLi4zNjNjNjJiIDEwMDY0NAogIAlmcHJp bnRmX2ZpbHRlcmVkIChzdHJlYW0sICJdIik7CiAgCiAgCWNfdHlwZV9wcmludF92YXJzcGVjX3N1 ZmZpeCAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksIHN0cmVhbSwKK2RpZmYgLS1naXQgYS9nZGIv ZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4gYi9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUu aW4KK2luZGV4IDU2NWE4MzcuLmM5ZmYwZGUgMTAwNjQ0CistLS0gYS9nZGIvZGF0YS1kaXJlY3Rv cnkvTWFrZWZpbGUuaW4KKysrKyBiL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgorQEAg LTUxLDExICs1MSwyMyBAQCBTWVNDQUxMU19GSUxFUyA9IFwKKyBQWVRIT05fRElSID0gcHl0aG9u CisgUFlUSE9OX0lOU1RBTExfRElSID0gJChERVNURElSKSQoR0RCX0RBVEFESVIpLyQoUFlUSE9O X0RJUikKKyBQWVRIT05fRklMRVMgPSBcCisrCWdkYi9GcmFtZUl0ZXJhdG9yLnB5IFwKKysJZ2Ri L0ZyYW1lV3JhcHBlci5weSBcCisgCWdkYi9fX2luaXRfXy5weSBcCistCWdkYi90eXBlcy5weSBc CistCWdkYi9wcmludGluZy5weSBcCisrCWdkYi9iYWNrdHJhY2UucHkgXAorIAlnZGIvY29tbWFu ZC9fX2luaXRfXy5weSBcCistCWdkYi9jb21tYW5kL3ByZXR0eV9wcmludGVycy5weQorKwlnZGIv Y29tbWFuZC9hbGlhcy5weSBcCisrCWdkYi9jb21tYW5kL2JhY2t0cmFjZS5weSBcCisrCWdkYi9j b21tYW5kL2lnbm9yZV9lcnJvcnMucHkgXAorKwlnZGIvY29tbWFuZC9wYWhvbGUucHkgXAorKwln ZGIvY29tbWFuZC9wcmV0dHlfcHJpbnRlcnMucHkgXAorKwlnZGIvY29tbWFuZC9yZXF1aXJlLnB5 IFwKKysJZ2RiL2NvbW1hbmQvdXB0by5weSBcCisrCWdkYi9mdW5jdGlvbi9fX2luaXRfXy5weSBc CisrCWdkYi9mdW5jdGlvbi9jYWxsZXJfaXMucHkgXAorKwlnZGIvZnVuY3Rpb24vaW5fc2NvcGUu cHkgXAorKwlnZGIvcHJpbnRpbmcucHkgXAorKwlnZGIvdHlwZXMucHkKKyAKKyBGTEFHU19UT19Q QVNTID0gXAorIAkicHJlZml4PSQocHJlZml4KSIgXAogZGlmZiAtLWdpdCBhL2dkYi9kZWZzLmgg Yi9nZGIvZGVmcy5oCi1pbmRleCA5ZDhmNmZjLi4yMjkzNzhhIDEwMDY0NAoraW5kZXggNmE5MGIw OC4uMzFkNTVkZSAxMDA2NDQKIC0tLSBhL2dkYi9kZWZzLmgKICsrKyBiL2dkYi9kZWZzLmgKIEBA IC0zOTgsNiArMzk4LDggQEAgZXh0ZXJuIHN0cnVjdCBjbGVhbnVwICptYWtlX2NsZWFudXBfcmVz dG9yZV9wYWdlX2luZm8gKHZvaWQpOwpAQCAtMTA3NCw4ICsxMTMyLDk4IEBAIGluZGV4IDlkOGY2 ZmMuLjIyOTM3OGEgMTAwNjQ0CiAgZXh0ZXJuIGNoYXIgKmdkYl9yZWFscGF0aCAoY29uc3QgY2hh ciAqKTsKICBleHRlcm4gY2hhciAqeGZ1bGxwYXRoIChjb25zdCBjaGFyICopOwogIAorZGlmZiAt LWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dkYi50ZXhpbmZvCitpbmRleCBk NDdhNDg0Li5jODYwYzg3IDEwMDY0NAorLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5mbworKysrIGIv Z2RiL2RvYy9nZGIudGV4aW5mbworQEAgLTExNzcsNiArMTE3NywxNiBAQCBmb3IgcmVtb3RlIGRl YnVnZ2luZy4KKyBSdW4gdXNpbmcgQHZhcntkZXZpY2V9IGZvciB5b3VyIHByb2dyYW0ncyBzdGFu ZGFyZCBpbnB1dCBhbmQgb3V0cHV0LgorIEBjIEZJWE1FOiBraW5nZG9uIHRoaW5rcyB0aGVyZSBp cyBtb3JlIHRvIC10dHkuICBJbnZlc3RpZ2F0ZS4KKyAKKytAaXRlbSAtUAorK0BjaW5kZXggQGNv ZGV7LVB9CisrQGl0ZW14IC0tcHl0aG9uCisrQGNpbmRleCBAY29kZXstLXB5dGhvbn0KKytDaGFu Z2UgaW50ZXJwcmV0YXRpb24gb2YgY29tbWFuZCBsaW5lIHNvIHRoYXQgdGhlIGFyZ3VtZW50IGlt bWVkaWF0ZWx5CisrZm9sbG93aW5nIHRoaXMgc3dpdGNoIGlzIHRha2VuIHRvIGJlIHRoZSBuYW1l IG9mIGEgUHl0aG9uIHNjcmlwdCBmaWxlLgorK1RoaXMgb3B0aW9uIHN0b3BzIG9wdGlvbiBwcm9j ZXNzaW5nOyBzdWJzZXF1ZW50IG9wdGlvbnMgYXJlIHBhc3NlZCB0bworK1B5dGhvbiBhcyBAY29k ZXtzeXMuYXJndn0uICBUaGlzIG9wdGlvbiBpcyBvbmx5IGF2YWlsYWJsZSBpZiBQeXRob24KKytz Y3JpcHRpbmcgc3VwcG9ydCB3YXMgZW5hYmxlZCB3aGVuIEB2YWx1ZXtHREJOfSB3YXMgY29uZmln dXJlZC4KKysKKyBAYyByZXNvbHZlIHRoZSBzaXR1YXRpb24gb2YgdGhlc2UgZXZlbnR1YWxseQor IEBpdGVtIC10dWkKKyBAY2luZGV4IEBjb2Rley0tdHVpfQorQEAgLTIwNjY1LDggKzIwNjc1LDYg QEAgY29udGFpbmluZyBAY29kZXtlbmR9LiAgRm9yIGV4YW1wbGU6CisgCisgQHNtYWxsZXhhbXBs ZQorIChAdmFsdWV7R0RCUH0pIHB5dGhvbgorLVR5cGUgcHl0aG9uIHNjcmlwdAorLUVuZCB3aXRo IGEgbGluZSBzYXlpbmcganVzdCAiZW5kIi4KKyA+cHJpbnQgMjMKKyA+ZW5kCisgMjMKK0BAIC0y MDY3OSw2ICsyMDY4NywxNCBAQCBpbiBhIFB5dGhvbiBzY3JpcHQuICBUaGlzIGNhbiBiZSBjb250 cm9sbGVkIHVzaW5nIEBjb2Rle21haW50IHNldAorIHB5dGhvbiBwcmludC1zdGFja306IGlmIEBj b2Rle29ufSwgdGhlIGRlZmF1bHQsIHRoZW4gUHl0aG9uIHN0YWNrCisgcHJpbnRpbmcgaXMgZW5h YmxlZDsgaWYgQGNvZGV7b2ZmfSwgdGhlbiBQeXRob24gc3RhY2sgcHJpbnRpbmcgaXMKKyBkaXNh YmxlZC4KKysKKytAa2luZGV4IG1haW50IHNldCBweXRob24gYXV0by1sb2FkCisrQGl0ZW0gbWFp bnQgc2V0IHB5dGhvbiBhdXRvLWxvYWQKKytCeSBkZWZhdWx0LCBAdmFsdWV7R0RCTn0gd2lsbCBh dHRlbXB0IHRvIGF1dG9tYXRpY2FsbHkgbG9hZCBQeXRob24KKytjb2RlIHdoZW4gYW4gb2JqZWN0 IGZpbGUgaXMgb3BlbmVkLiAgVGhpcyBjYW4gYmUgY29udHJvbGxlZCB1c2luZworK0Bjb2Rle21h aW50IHNldCBweXRob24gYXV0by1sb2FkfTogaWYgQGNvZGV7b259LCB0aGUgZGVmYXVsdCwgdGhl bgorK1B5dGhvbiBhdXRvLWxvYWRpbmcgaXMgZW5hYmxlZDsgaWYgQGNvZGV7b2ZmfSwgdGhlbiBQ eXRob24KKythdXRvLWxvYWRpbmcgaXMgZGlzYWJsZWQuCisgQGVuZCB0YWJsZQorIAorIEl0IGlz IGFsc28gcG9zc2libGUgdG8gZXhlY3V0ZSBhIFB5dGhvbiBzY3JpcHQgZnJvbSB0aGUgQHZhbHVl e0dEQk59CitAQCAtMjA3MDAsNiArMjA3MTYsMTQgQEAgYW5kIHRodXMgaXMgYWx3YXlzIGF2YWls YWJsZS4KKyBAY2luZGV4IHB5dGhvbiBhcGkKKyBAY2luZGV4IHByb2dyYW1taW5nIGluIHB5dGhv bgorIAorK1lvdSBjYW4gZ2V0IHF1aWNrIG9ubGluZSBoZWxwIGZvciBAdmFsdWV7R0RCTn0ncyBQ eXRob24gQVBJIGJ5IGlzc3VpbmcKKyt0aGUgY29tbWFuZCBAd3tAa2Jke3B5dGhvbiBoZWxwIChn ZGIpfX0uCisrCisrRnVuY3Rpb25zIGFuZCBtZXRob2RzIHdoaWNoIGhhdmUgdHdvIG9yIG1vcmUg b3B0aW9uYWwgYXJndW1lbnRzIGFsbG93CisrdGhlbSB0byBiZSBzcGVjaWZpZWQgdXNpbmcga2V5 d29yZCBzeW50YXguICBUaGlzIGFsbG93cyBwYXNzaW5nIHNvbWUKKytvcHRpb25hbCBhcmd1bWVu dHMgd2hpbGUgc2tpcHBpbmcgb3RoZXJzLiAgRXhhbXBsZToKKytAd3tAY29kZXtnZGIuc29tZV9m dW5jdGlvbiAoJ2ZvbycsIGJhciA9IDEsIGJheiA9IDIpfX0uCisrCisgQGNpbmRleCBweXRob24g c3Rkb3V0CisgQGNpbmRleCBweXRob24gcGFnaW5hdGlvbgorIEF0IHN0YXJ0dXAsIEB2YWx1ZXtH REJOfSBvdmVycmlkZXMgUHl0aG9uJ3MgQGNvZGV7c3lzLnN0ZG91dH0gYW5kCitAQCAtMjA3MTEs NyArMjA3MzUsNyBAQCBzaXR1YXRpb24sIGEgUHl0aG9uIEBjb2Rle0tleWJvYXJkSW50ZXJydXB0 fSBleGNlcHRpb24gaXMgdGhyb3duLgorIEBtZW51CisgKiBCYXNpYyBQeXRob246OiAgICAgICAg ICAgICAgICBCYXNpYyBQeXRob24gRnVuY3Rpb25zLgorICogRXhjZXB0aW9uIEhhbmRsaW5nOjoK Ky0qIFZhbHVlcyBGcm9tIEluZmVyaW9yOjoKKysqIFZhbHVlcyBGcm9tIEluZmVyaW9yOjoJUHl0 aG9uIHJlcHJlc2VudGF0aW9uIG9mIHZhbHVlcy4KKyAqIFR5cGVzIEluIFB5dGhvbjo6ICAgICAg ICAgICAgIFB5dGhvbiByZXByZXNlbnRhdGlvbiBvZiB0eXBlcy4KKyAqIFByZXR0eSBQcmludGlu ZyBBUEk6OiAgICAgICAgIFByZXR0eS1wcmludGluZyB2YWx1ZXMuCisgKiBTZWxlY3RpbmcgUHJl dHR5LVByaW50ZXJzOjogICBIb3cgR0RCIGNob29zZXMgYSBwcmV0dHktcHJpbnRlci4KK0BAIC0y MDc3Miw2ICsyMDc5NiwxMiBAQCBSZXR1cm4gYSBzZXF1ZW5jZSBob2xkaW5nIGFsbCBvZiBAdmFs dWV7R0RCTn0ncyBicmVha3BvaW50cy4KKyBAeHJlZntCcmVha3BvaW50cyBJbiBQeXRob259LCBm b3IgbW9yZSBpbmZvcm1hdGlvbi4KKyBAZW5kIGRlZnVuCisgCisrQGZpbmRleCBnZGIuYnJlYWtw b2ludHMKKytAZGVmdW4gYnJlYWtwb2ludHMKKytSZXR1cm4gYSBzZXF1ZW5jZSBob2xkaW5nIGFs bCBvZiBAdmFsdWV7R0RCTn0ncyBicmVha3BvaW50cy4KKytAeHJlZntCcmVha3BvaW50cyBJbiBQ eXRob259LCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKytAZW5kIGRlZnVuCisrCisgQGZpbmRleCBn ZGIucGFyYW1ldGVyCisgQGRlZnVuIHBhcmFtZXRlciBwYXJhbWV0ZXIKKyBSZXR1cm4gdGhlIHZh bHVlIG9mIGEgQHZhbHVle0dEQk59IHBhcmFtZXRlci4gIEB2YXJ7cGFyYW1ldGVyfSBpcyBhCitA QCAtMjA3ODksNiArMjA4MTksNyBAQCB0eXBlLCBhbmQgcmV0dXJuZWQuCisgQGRlZnVuIGhpc3Rv cnkgbnVtYmVyCisgUmV0dXJuIGEgdmFsdWUgZnJvbSBAdmFsdWV7R0RCTn0ncyB2YWx1ZSBoaXN0 b3J5IChAcHhyZWZ7VmFsdWUKKyBIaXN0b3J5fSkuICBAdmFye251bWJlcn0gaW5kaWNhdGVzIHdo aWNoIGhpc3RvcnkgZWxlbWVudCB0byByZXR1cm4uCisrCisgSWYgQHZhcntudW1iZXJ9IGlzIG5l Z2F0aXZlLCB0aGVuIEB2YWx1ZXtHREJOfSB3aWxsIHRha2UgaXRzIGFic29sdXRlIHZhbHVlCisg YW5kIGNvdW50IGJhY2t3YXJkIGZyb20gdGhlIGxhc3QgZWxlbWVudCAoaS5lLiwgdGhlIG1vc3Qg cmVjZW50IGVsZW1lbnQpIHRvCisgZmluZCB0aGUgdmFsdWUgdG8gcmV0dXJuLiAgSWYgQHZhcntu dW1iZXJ9IGlzIHplcm8sIHRoZW4gQHZhbHVle0dEQk59IHdpbGwKIGRpZmYgLS1naXQgYS9nZGIv ZG9jL2dkYmludC50ZXhpbmZvIGIvZ2RiL2RvYy9nZGJpbnQudGV4aW5mbwotaW5kZXggNGExMTJh YS4uN2I2YmVkNCAxMDA2NDQKK2luZGV4IDgxNDljYjkuLjQ4MTI1NTggMTAwNjQ0CiAtLS0gYS9n ZGIvZG9jL2dkYmludC50ZXhpbmZvCiArKysgYi9nZGIvZG9jL2dkYmludC50ZXhpbmZvCiBAQCAt MjEwNCw2ICsyMTA0LDE4IEBAIHRpbWUsIGFuZCBzbyB3ZSBhdHRlbXB0IHRvIGhhbmRsZSBzeW1i b2xzIGluY3JlbWVudGFsbHkuICBGb3IgaW5zdGFuY2UsCkBAIC0xMjA0LDcgKzEzNTIsNyBAQCBp bmRleCA0YTExMmFhLi43YjZiZWQ0IDEwMDY0NAogIAogIEBub2RlIExhbmd1YWdlIFN1cHBvcnQK IGRpZmYgLS1naXQgYS9nZGIvZG9jL29ic2VydmVyLnRleGkgYi9nZGIvZG9jL29ic2VydmVyLnRl eGkKLWluZGV4IGUxOWI4ZWQuLjM0M2UxNjAgMTAwNjQ0CitpbmRleCBkMTZjODY1Li5kOGQyNGQ5 IDEwMDY0NAogLS0tIGEvZ2RiL2RvYy9vYnNlcnZlci50ZXhpCiArKysgYi9nZGIvZG9jL29ic2Vy dmVyLnRleGkKIEBAIC0yMjMsNiArMjIzLDExIEBAIEJ5dGVzIGZyb20gQHZhcntkYXRhfSB0byBA dmFye2RhdGF9ICsgQHZhcntsZW59IGhhdmUgYmVlbiB3cml0dGVuCkBAIC0xMjIwLDEwICsxMzY4 LDEwIEBAIGluZGV4IGUxOWI4ZWQuLjM0M2UxNjAgMTAwNjQ0CiAgVGhpcyBvYnNlcnZlciBpcyB1 c2VkIGZvciBpbnRlcm5hbCB0ZXN0aW5nLiAgRG8gbm90IHVzZS4gIAogIFNlZSB0ZXN0c3VpdGUv Z2RiLmdkYi9vYnNlcnZlci5leHAuCiBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmV4cHIuYyBiL2dk Yi9kd2FyZjJleHByLmMKLWluZGV4IDRlZjZkNTUuLjFhMzU4MGEgMTAwNjQ0CitpbmRleCBhYThj OGNmLi41MzdiNjliIDEwMDY0NAogLS0tIGEvZ2RiL2R3YXJmMmV4cHIuYwogKysrIGIvZ2RiL2R3 YXJmMmV4cHIuYwotQEAgLTkwMCw2ICs5MDAsMTMgQEAgZXhlY3V0ZV9zdGFja19vcCAoc3RydWN0 IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4LAorQEAgLTkwNCw2ICs5MDQsMTMgQEAgZXhlY3V0ZV9z dGFja19vcCAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4LAogIAkgIGN0eC0+ZHdhcmZf Y2FsbCAoY3R4LCByZXN1bHQpOwogIAkgIGdvdG8gbm9fcHVzaDsKICAKQEAgLTEyNTksMTAgKzE0 MDcsMTAgQEAgaW5kZXggMzg1OGRjOC4uYTE3MjU4NSAxMDA2NDQKICAgIC8qIFRoZSBjdXJyZW50 IGRlcHRoIG9mIGR3YXJmIGV4cHJlc3Npb24gcmVjdXJzaW9uLCB2aWEgRFdfT1BfY2FsbCosCiAg ICAgICBEV19PUF9mYnJlZywgRFdfT1BfcHVzaF9vYmplY3RfYWRkcmVzcywgZXRjLiwgYW5kIHRo ZSBtYXhpbXVtCiBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmxvYy5jIGIvZ2RiL2R3YXJmMmxvYy5j Ci1pbmRleCAxMmU0ZGFjLi45NDNiMzdkIDEwMDY0NAoraW5kZXggNGVjMjU0OS4uNjBjMzhlOSAx MDA2NDQKIC0tLSBhL2dkYi9kd2FyZjJsb2MuYwogKysrIGIvZ2RiL2R3YXJmMmxvYy5jCi1AQCAt MTMzLDYgKzEzMyw5IEBAIHN0cnVjdCBkd2FyZl9leHByX2JhdG9uCitAQCAtMTM0LDYgKzEzNCw5 IEBAIHN0cnVjdCBkd2FyZl9leHByX2JhdG9uCiAgewogICAgc3RydWN0IGZyYW1lX2luZm8gKmZy YW1lOwogICAgc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1OwpAQCAtMTI3Miw3ICsx NDIwLDcgQEAgaW5kZXggMTJlNGRhYy4uOTQzYjM3ZCAxMDA2NDQKICB9OwogIAogIC8qIEhlbHBl ciBmdW5jdGlvbnMgZm9yIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYy4gICovCi1AQCAtMjAxLDIz ICsyMDQsMzMgQEAgZHdhcmZfZXhwcl9mcmFtZV9iYXNlXzEgKHN0cnVjdCBzeW1ib2wgKmZyYW1l ZnVuYywgQ09SRV9BRERSIHBjLAorQEAgLTIwMiwyMyArMjA1LDMzIEBAIGR3YXJmX2V4cHJfZnJh bWVfYmFzZV8xIChzdHJ1Y3Qgc3ltYm9sICpmcmFtZWZ1bmMsIENPUkVfQUREUiBwYywKICAgICAg ICBzeW1iYXRvbiA9IFNZTUJPTF9MT0NBVElPTl9CQVRPTiAoZnJhbWVmdW5jKTsKICAgICAgICAq c3RhcnQgPSBkd2FyZjJfZmluZF9sb2NhdGlvbl9leHByZXNzaW9uIChzeW1iYXRvbiwgbGVuZ3Ro LCBwYyk7CiAgICAgIH0KQEAgLTEzMTUsNyArMTQ2Myw3IEBAIGluZGV4IDEyZTRkYWMuLjk0M2Iz N2QgMTAwNjQ0CiAgfQogIAogIC8qIEhlbHBlciBmdW5jdGlvbiBmb3IgZHdhcmYyX2V2YWx1YXRl X2xvY19kZXNjLiAgQ29tcHV0ZXMgdGhlIENGQSBmb3IKLUBAIC0yODQsNiArMjk3LDE1OSBAQCBk d2FyZl9leHByX2R3YXJmX2NhbGwgKHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0eCwgc2l6 ZV90IGRpZV9vZmZzZXQpCitAQCAtMjg2LDYgKzI5OSwxNTkgQEAgZHdhcmZfZXhwcl9kd2FyZl9j YWxsIChzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpjdHgsIHNpemVfdCBkaWVfb2Zmc2V0KQog IAkJCSAgICBjdHgtPmdldF9mcmFtZV9wYywgY3R4LT5iYXRvbik7CiAgfQogIApAQCAtMTQ3NSw3 ICsxNjIzLDcgQEAgaW5kZXggMTJlNGRhYy4uOTQzYjM3ZCAxMDA2NDQKICBzdHJ1Y3QgcGllY2Vf Y2xvc3VyZQogIHsKICAgIC8qIFJlZmVyZW5jZSBjb3VudC4gICovCi1AQCAtMTAzOCwxMCArMTIw NCw4IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHlwZSAqdHlwZSwg c3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLAorQEAgLTEwNDUsMTAgKzEyMTEsOCBAQCBkd2FyZjJf ZXZhbHVhdGVfbG9jX2Rlc2NfZnVsbCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBmcmFtZV9p bmZvICpmcmFtZSwKICAJCQkgICAgICAgTE9OR0VTVCBieXRlX29mZnNldCkKICB7CiAgICBzdHJ1 Y3QgdmFsdWUgKnJldHZhbDsKQEAgLTE0ODYsNyArMTYzNCw3IEBAIGluZGV4IDEyZTRkYWMuLjk0 M2IzN2QgMTAwNjQ0CiAgCiAgICBpZiAoYnl0ZV9vZmZzZXQgPCAwKQogICAgICBpbnZhbGlkX3N5 bnRoZXRpY19wb2ludGVyICgpOwotQEAgLTEwNTQsMjUgKzEyMTgsMTAgQEAgZHdhcmYyX2V2YWx1 YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZnJhbWVfaW5mbyAq ZnJhbWUsCitAQCAtMTA2MSwyNSArMTIyNSwxMCBAQCBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2Nf ZnVsbCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKICAgICAg ICByZXR1cm4gcmV0dmFsOwogICAgICB9CiAgCkBAIC0xNTE0LDcgKzE2NjIsNyBAQCBpbmRleCAx MmU0ZGFjLi45NDNiMzdkIDEwMDY0NAogICAgaWYgKGN0eC0+bnVtX3BpZWNlcyA+IDApCiAgICAg IHsKICAgICAgICBzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqYzsKLUBAIC0xMTE2LDYgKzEyNjUsMTUg QEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1 Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCitAQCAtMTEyMyw2ICsxMjcyLDE1IEBAIGR3YXJmMl9ldmFs dWF0ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGZyYW1lX2luZm8g KmZyYW1lLAogIAkgICAgQ09SRV9BRERSIGFkZHJlc3MgPSBkd2FyZl9leHByX2ZldGNoX2FkZHJl c3MgKGN0eCwgMCk7CiAgCSAgICBpbnQgaW5fc3RhY2tfbWVtb3J5ID0gZHdhcmZfZXhwcl9mZXRj aF9pbl9zdGFja19tZW1vcnkgKGN0eCwgMCk7CiAgCkBAIC0xNTMwLDcgKzE2NzgsNyBAQCBpbmRl eCAxMmU0ZGFjLi45NDNiMzdkIDEwMDY0NAogIAkgICAgcmV0dmFsID0gYWxsb2NhdGVfdmFsdWUg KHR5cGUpOwogIAkgICAgVkFMVUVfTFZBTCAocmV0dmFsKSA9IGx2YWxfbWVtb3J5OwogIAkgICAg c2V0X3ZhbHVlX2xhenkgKHJldHZhbCwgMSk7Ci1AQCAtMjgxMCwxMSArMjk2OCw1MSBAQCBsb2Ns aXN0X3RyYWNlcG9pbnRfdmFyX3JlZiAoc3RydWN0IHN5bWJvbCAqc3ltYm9sLCBzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCwKK0BAIC0yODIyLDExICsyOTgwLDUxIEBAIGxvY2xpc3RfdHJhY2Vwb2lu dF92YXJfcmVmIChzdHJ1Y3Qgc3ltYm9sICpzeW1ib2wsIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo LAogIAkJCSBkbGJhdG9uLT5wZXJfY3UpOwogIH0KICAKQEAgLTE2MDQsMTAgKzE3NTIsMTAgQEAg aW5kZXggZWU1MjUwNi4uNmE3N2MzZiAxMDA2NDQKICAKICAjZW5kaWYgLyogZHdhcmYybG9jLmgg Ki8KIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwotaW5k ZXggODJhMmYwYi4uMzI3MTY0YyAxMDA2NDQKK2luZGV4IDIwMTUxM2QuLmY0OWExNDkgMTAwNjQ0 CiAtLS0gYS9nZGIvZHdhcmYycmVhZC5jCiArKysgYi9nZGIvZHdhcmYycmVhZC5jCi1AQCAtMTIw Niw2ICsxMjA2LDkgQEAgc3RhdGljIHZvaWQgZmlsbF9pbl9sb2NsaXN0X2JhdG9uIChzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSwKK0BAIC0xMjExLDYgKzEyMTEsOSBAQCBzdGF0aWMgdm9pZCBmaWxsX2lu X2xvY2xpc3RfYmF0b24gKHN0cnVjdCBkd2FyZjJfY3UgKmN1LAogIAkJCQkgICBzdHJ1Y3QgZHdh cmYyX2xvY2xpc3RfYmF0b24gKmJhdG9uLAogIAkJCQkgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRy KTsKICAKQEAgLTE2MTcsNyArMTc2NSw3IEBAIGluZGV4IDgyYTJmMGIuLjMyNzE2NGMgMTAwNjQ0 CiAgc3RhdGljIHZvaWQgZHdhcmYyX3N5bWJvbF9tYXJrX2NvbXB1dGVkIChzdHJ1Y3QgYXR0cmli dXRlICphdHRyLAogIAkJCQkJIHN0cnVjdCBzeW1ib2wgKnN5bSwKICAJCQkJCSBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSk7Ci1AQCAtMTI0MCw2ICsxMjQzLDkgQEAgc3RhdGljIHZvaWQgYWdlX2NhY2hl ZF9jb21wX3VuaXRzICh2b2lkKTsKK0BAIC0xMjQ1LDYgKzEyNDgsOSBAQCBzdGF0aWMgdm9pZCBh Z2VfY2FjaGVkX2NvbXBfdW5pdHMgKHZvaWQpOwogIAogIHN0YXRpYyB2b2lkIGZyZWVfb25lX2Nh Y2hlZF9jb21wX3VuaXQgKHZvaWQgKik7CiAgCkBAIC0xNjI3LDcgKzE3NzUsNyBAQCBpbmRleCA4 MmEyZjBiLi4zMjcxNjRjIDEwMDY0NAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqc2V0X2RpZV90eXBl IChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0IHR5cGUgKiwKICAJCQkJICBzdHJ1Y3QgZHdhcmYy X2N1ICopOwogIAotQEAgLTEyNjQsNiArMTI3MCw5IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZ2V0 X2RpZV90eXBlX2F0X29mZnNldCAodW5zaWduZWQgaW50LAorQEAgLTEyNjksNiArMTI3NSw5IEBA IHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZ2V0X2RpZV90eXBlX2F0X29mZnNldCAodW5zaWduZWQgaW50 LAogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZ2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpOwogIApAQCAtMTYzNyw3ICsxNzg1LDcgQEAgaW5k ZXggODJhMmYwYi4uMzI3MTY0YyAxMDA2NDQKICBzdGF0aWMgdm9pZCBkd2FyZjJfcmVsZWFzZV9x dWV1ZSAodm9pZCAqZHVtbXkpOwogIAogIHN0YXRpYyB2b2lkIHF1ZXVlX2NvbXBfdW5pdCAoc3Ry dWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1LAotQEAgLTcyMzcsNiArNzI0NiwyOSBAQCBw cm9jZXNzX2VudW1lcmF0aW9uX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCitAQCAtNzI2Myw2ICs3MjcyLDI5IEBAIHByb2Nlc3NfZW51bWVyYXRpb25f c2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIG5l d19zeW1ib2wgKGRpZSwgdGhpc190eXBlLCBjdSk7CiAgfQogIApAQCAtMTY2Nyw3ICsxODE1LDcg QEAgaW5kZXggODJhMmYwYi4uMzI3MTY0YyAxMDA2NDQKICAvKiBFeHRyYWN0IGFsbCBpbmZvcm1h dGlvbiBmcm9tIGEgRFdfVEFHX2FycmF5X3R5cGUgRElFIGFuZCBwdXQgaXQgaW4KICAgICB0aGUg RElFJ3MgdHlwZSBmaWVsZC4gIEZvciBub3csIHRoaXMgb25seSBoYW5kbGVzIG9uZSBkaW1lbnNp b25hbAogICAgIGFycmF5cy4gICovCi1AQCAtNzI1MCw3ICs3MjgyLDcgQEAgcmVhZF9hcnJheV90 eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNzI3 Niw3ICs3MzA4LDcgQEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCiAgICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBlLCAqcmFuZ2Vf dHlwZSwgKmluZGV4X3R5cGU7CiAgICBzdHJ1Y3QgdHlwZSAqKnJhbmdlX3R5cGVzID0gTlVMTDsK ICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CkBAIC0xNjc2LDcgKzE4MjQsNyBAQCBpbmRleCA4 MmEyZjBiLi4zMjcxNjRjIDEwMDY0NAogICAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87CiAgICBj aGFyICpuYW1lOwogIAotQEAgLTczMDMsMTcgKzczMzUsMTEgQEAgcmVhZF9hcnJheV90eXBlIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNzMyOSwxNyAr NzM2MSwxMSBAQCByZWFkX2FycmF5X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKICAgIHR5cGUgPSBlbGVtZW50X3R5cGU7CiAgCiAgICBpZiAocmVhZF9h cnJheV9vcmRlciAoZGllLCBjdSkgPT0gRFdfT1JEX2NvbF9tYWpvcikKQEAgLTE2OTksNyArMTg0 Nyw3IEBAIGluZGV4IDgyYTJmMGIuLjMyNzE2NGMgMTAwNjQ0CiAgCiAgICAvKiBVbmRlcnN0YW5k IER3YXJmMiBzdXBwb3J0IGZvciB2ZWN0b3IgdHlwZXMgKGxpa2UgdGhleSBvY2N1ciBvbgogICAg ICAgdGhlIFBvd2VyUEMgdy8gQWx0aVZlYykuICBHY2MganVzdCBhZGRzIGFub3RoZXIgYXR0cmli dXRlIHRvIHRoZQotQEAgLTc4MDYsMjkgKzc4MzIsMTE0IEBAIHJlYWRfdGFnX3N0cmluZ190eXBl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNzgzNSwy OSArNzg2MSwxMTQgQEAgcmVhZF90YWdfc3RyaW5nX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0 X29iamZpbGVfYXJjaCAob2JqZmlsZSk7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJhbmdlX3R5 cGUsICppbmRleF90eXBlLCAqY2hhcl90eXBlOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsK QEAgLTE4MjgsNyArMTk3Niw3IEBAIGluZGV4IDgyYTJmMGIuLjMyNzE2NGMgMTAwNjQ0CiAgICBj aGFyX3R5cGUgPSBsYW5ndWFnZV9zdHJpbmdfY2hhcl90eXBlIChjdS0+bGFuZ3VhZ2VfZGVmbiwg Z2RiYXJjaCk7CiAgICB0eXBlID0gY3JlYXRlX3N0cmluZ190eXBlIChOVUxMLCBjaGFyX3R5cGUs IHJhbmdlX3R5cGUpOwogIAotQEAgLTgxMTAsOCArODIyMSw3IEBAIHJlYWRfc3VicmFuZ2VfdHlw ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTgxMzks OCArODI1MCw3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0IHR5cGUgKmJhc2VfdHlwZTsKICAgIHN0cnVj dCB0eXBlICpyYW5nZV90eXBlOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTE4Mzgs NyArMTk4Niw3IEBAIGluZGV4IDgyYTJmMGIuLjMyNzE2NGMgMTAwNjQ0CiAgICBjaGFyICpuYW1l OwogICAgTE9OR0VTVCBuZWdhdGl2ZV9tYXNrOwogIAotQEAgLTgxMjQsNDggKzgyMzQsMTI1IEBA IHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQorQEAgLTgxNTMsNDggKzgyNjMsMTI1IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgaWYgKHJhbmdlX3R5 cGUpCiAgICAgIHJldHVybiByYW5nZV90eXBlOwogIApAQCAtMTk5Niw3ICsyMTQ0LDcgQEAgaW5k ZXggODJhMmYwYi4uMzI3MTY0YyAxMDA2NDQKICAgICAgfQogIAogICAgLyogRHdhcmYtMiBzcGVj aWZpY2F0aW9ucyBleHBsaWNpdGx5IGFsbG93cyB0byBjcmVhdGUgc3VicmFuZ2UgdHlwZXMKLUBA IC04MjA3LDIwICs4Mzk0LDQxIEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTgyMzYsMjAgKzg0MjMsNDEgQEAgcmVh ZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCiAgCX0KICAgICAgfQogIApAQCAtMjA1MCw3ICsyMTk4LDcgQEAgaW5kZXggODJhMmYwYi4u MzI3MTY0YyAxMDA2NDQKICAKICAgIG5hbWUgPSBkd2FyZjJfbmFtZSAoZGllLCBjdSk7CiAgICBp ZiAobmFtZSkKLUBAIC0xMDY4NiwxMCArMTA4OTQsMTIgQEAgdmFyX2RlY29kZV9sb2NhdGlvbiAo c3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IHN5bWJvbCAqc3ltLAorQEAgLTEwNzI1LDEw ICsxMDkzMywxMiBAQCB2YXJfZGVjb2RlX2xvY2F0aW9uIChzdHJ1Y3QgYXR0cmlidXRlICphdHRy LCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCiAgICAgICAoaS5lLiB3aGVuIHRoZSB2YWx1ZSBvZiBhIHJl Z2lzdGVyIG9yIG1lbW9yeSBsb2NhdGlvbiBpcwogICAgICAgcmVmZXJlbmNlZCwgb3IgYSB0aHJl YWQtbG9jYWwgYmxvY2ssIGV0Yy4pLiAgVGhlbiBhZ2FpbiwgaXQgbWlnaHQKICAgICAgIG5vdCBi ZSB3b3J0aHdoaWxlLiAgSSdtIGFzc3VtaW5nIHRoYXQgaXQgaXNuJ3QgdW5sZXNzIHBlcmZvcm1h bmNlCkBAIC0yMDY1LDcgKzIyMTMsNyBAQCBpbmRleCA4MmEyZjBiLi4zMjcxNjRjIDEwMDY0NAog IH0KICAKICAvKiBHaXZlbiBhIHBvaW50ZXIgdG8gYSBEV0FSRiBpbmZvcm1hdGlvbiBlbnRyeSwg ZmlndXJlIG91dCBpZiB3ZSBuZWVkCi1AQCAtMTA3MjcsNiArMTA5MzcsOCBAQCBuZXdfc3ltYm9s X2Z1bGwgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UsCitAQCAtMTA3NjYsNiArMTA5NzYsOCBAQCBuZXdfc3ltYm9sX2Z1bGwgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UsCiAgICAgICAgZWxzZQogIAlzeW0gPSBPQlNUQUNLX1pBTExPQyAoJm9iamZpbGUtPm9iamZp bGVfb2JzdGFjaywgc3RydWN0IHN5bWJvbCk7CiAgICAgICAgT0JKU1RBVCAob2JqZmlsZSwgbl9z eW1zKyspOwpAQCAtMjA3NCw3ICsyMjIyLDcgQEAgaW5kZXggODJhMmYwYi4uMzI3MTY0YyAxMDA2 NDQKICAKICAgICAgICAvKiBDYWNoZSB0aGlzIHN5bWJvbCdzIG5hbWUgYW5kIHRoZSBuYW1lJ3Mg ZGVtYW5nbGVkIGZvcm0gKGlmIGFueSkuICAqLwogICAgICAgIFNZTUJPTF9TRVRfTEFOR1VBR0Ug KHN5bSwgY3UtPmxhbmd1YWdlKTsKLUBAIC0xMTQ5NCw2ICsxMTcwNiw5IEBAIHJlYWRfdHlwZV9k aWVfMSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTEx NTM4LDYgKzExNzUwLDkgQEAgcmVhZF90eXBlX2RpZV8xIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAKQEAgLTIwODQs NyArMjIzMiw3IEBAIGluZGV4IDgyYTJmMGIuLjMyNzE2NGMgMTAwNjQ0CiAgICByZXR1cm4gdGhp c190eXBlOwogIH0KICAKLUBAIC0xNDI5Miw1OSArMTQ1MDcsOTcgQEAgZmlsbF9pbl9sb2NsaXN0 X2JhdG9uIChzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKK0BAIC0xNDM1MCw2MCArMTQ1NjUsOTggQEAg ZmlsbF9pbl9sb2NsaXN0X2JhdG9uIChzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKICAgIGJhdG9uLT5i YXNlX2FkZHJlc3MgPSBjdS0+YmFzZV9hZGRyZXNzOwogIH0KICAKQEAgLTIxMjksNyArMjI3Nyw4 IEBAIGluZGV4IDgyYTJmMGIuLjMyNzE2NGMgMTAwNjQ0CiAgCiAtICAgICAgaWYgKGN1LT5iYXNl X2tub3duID09IDApCiAtCWNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKLS0JCSAgIF8o IkxvY2F0aW9uIGxpc3QgdXNlZCB3aXRob3V0IHNwZWNpZnlpbmcgdGhlIENVIGJhc2UgYWRkcmVz cy4iKSk7CistCQkgICBfKCJMb2NhdGlvbiBsaXN0IHVzZWQgd2l0aG91dCAiCistCQkgICAgICJz cGVjaWZ5aW5nIHRoZSBDVSBiYXNlIGFkZHJlc3MuIikpOwogK3N0YXRpYyBzdHJ1Y3QgZHdhcmYy X2xvY2xpc3RfYmF0b24gKgogK2R3YXJmMl9hdHRyX3RvX2xvY2xpc3RfYmF0b24gKHN0cnVjdCBh dHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogK3sKQEAgLTIxNTcsNyArMjMw Niw4IEBAIGluZGV4IDgyYTJmMGIuLjMyNzE2NGMgMTAwNjQ0CiArCiArICBpZiAoY3UtPmJhc2Vf a25vd24gPT0gMCkKICsgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAotKwkgICAg ICAgXygiTG9jYXRpb24gbGlzdCB1c2VkIHdpdGhvdXQgc3BlY2lmeWluZyB0aGUgQ1UgYmFzZSBh ZGRyZXNzLiIpKTsKKysJICAgICAgIF8oIkxvY2F0aW9uIGxpc3QgdXNlZCB3aXRob3V0ICIKKysJ CSAic3BlY2lmeWluZyB0aGUgQ1UgYmFzZSBhZGRyZXNzLiIpKTsKICsKICsgIHJldHVybiBiYXRv bjsKICt9CkBAIC0yMjIzLDcgKzIzNzMsNyBAQCBpbmRleCA4MmEyZjBiLi4zMjcxNjRjIDEwMDY0 NAogICAgICB9CiAgfQogIAotQEAgLTE0NjkwLDYgKzE0OTQzLDMxIEBAIG9mZnNldF9hbmRfdHlw ZV9lcSAoY29uc3Qgdm9pZCAqaXRlbV9saHMsIGNvbnN0IHZvaWQgKml0ZW1fcmhzKQorQEAgLTE0 NzQ5LDYgKzE1MDAyLDMxIEBAIG9mZnNldF9hbmRfdHlwZV9lcSAoY29uc3Qgdm9pZCAqaXRlbV9s aHMsIGNvbnN0IHZvaWQgKml0ZW1fcmhzKQogICAgcmV0dXJuIG9mc19saHMtPm9mZnNldCA9PSBv ZnNfcmhzLT5vZmZzZXQ7CiAgfQogIApAQCAtMjI1NSw3ICsyNDA1LDcgQEAgaW5kZXggODJhMmYw Yi4uMzI3MTY0YyAxMDA2NDQKICAvKiBTZXQgdGhlIHR5cGUgYXNzb2NpYXRlZCB3aXRoIERJRSB0 byBUWVBFLiAgU2F2ZSBpdCBpbiBDVSdzIGhhc2gKICAgICB0YWJsZSBpZiBuZWNlc3NhcnkuICBG b3IgY29udmVuaWVuY2UsIHJldHVybiBUWVBFLgogIAotQEAgLTE0NzE1LDYgKzE0OTkzLDggQEAg c2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTE0Nzc0LDYgKzE1MDUyLDggQEAgc2V0X2RpZV90eXBl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQogICAgc3RydWN0IG9iamZpbGUgKm9iamZpbGUgPSBjdS0+b2JqZmlsZTsKICAgIGh0 YWJfdCAqdHlwZV9oYXNoX3B0cjsKICAKQEAgLTIyNjUsNyArMjQxNSw3IEBAIGluZGV4IDgyYTJm MGIuLjMyNzE2NGMgMTAwNjQ0CiAgICAgICBpbml0aWFsaXplZCAoaWYgbm90IGFscmVhZHkgc2V0 KS4gIFRoZXJlIGFyZSBhIGZldyB0eXBlcyB3aGVyZQogICAgICAgd2Ugc2hvdWxkIG5vdCBiZSBk b2luZyBzbywgYmVjYXVzZSB0aGUgdHlwZS1zcGVjaWZpYyBhcmVhIGlzCiBkaWZmIC0tZ2l0IGEv Z2RiL2VsZnJlYWQuYyBiL2dkYi9lbGZyZWFkLmMKLWluZGV4IDU5NDRlYjAuLjliMjgzZTEgMTAw NjQ0CitpbmRleCA4ZDliMGY3Li5jZGIzMjkwIDEwMDY0NAogLS0tIGEvZ2RiL2VsZnJlYWQuYwog KysrIGIvZ2RiL2VsZnJlYWQuYwogQEAgLTM3LDYgKzM3LDcgQEAKQEAgLTIyOTgsNyArMjQ0OCw3 IEBAIGluZGV4IDU5NDRlYjAuLjliMjgzZTEgMTAwNjQ0CiAgCQl9CiAgCSAgICAgIGVsc2UgaWYg KChzeW0tPm5hbWVbMF0gPT0gJy4nICYmIHN5bS0+bmFtZVsxXSA9PSAnTCcpCiAgCQkgICAgICAg fHwgKChzeW0tPmZsYWdzICYgQlNGX0xPQ0FMKQotQEAgLTU3Miw2ICs1NzcsMjUwIEBAIGVsZl9z eW10YWJfcmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGludCB0eXBlLAorQEAgLTU3NCw2 ICs1NzksMjUwIEBAIGVsZl9zeW10YWJfcmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGlu dCB0eXBlLAogICAgICB9CiAgfQogIApAQCAtMjU0OSw3ICsyNjk5LDcgQEAgaW5kZXggNTk0NGVi MC4uOWIyODNlMSAxMDA2NDQKICBzdHJ1Y3QgYnVpbGRfaWQKICAgIHsKICAgICAgc2l6ZV90IHNp emU7Ci1AQCAtODA2LDYgKzEwNTUsOCBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSwgaW50IHN5bWZpbGVfZmxhZ3MpCitAQCAtODE0LDYgKzEwNjMsOCBAQCBlbGZf c3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgaW50IHN5bWZpbGVfZmxhZ3Mp CiAgCSAgICAgICBiZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgpKSk7CiAgCiAgICAgICAgZWxm X3N5bXRhYl9yZWFkIChvYmpmaWxlLCBTVF9EWU5BTUlDLCBkeW5zeW1jb3VudCwgZHluX3N5bWJv bF90YWJsZSwgMCk7CkBAIC0yNTU5LDcgKzI3MDksNyBAQCBpbmRleCA1OTQ0ZWIwLi45YjI4M2Ux IDEwMDY0NAogIAogICAgLyogQWRkIHN5bnRoZXRpYyBzeW1ib2xzIC0gZm9yIGluc3RhbmNlLCBu YW1lcyBmb3IgYW55IFBMVCBlbnRyaWVzLiAgKi8KIGRpZmYgLS1naXQgYS9nZGIvZXZhbC5jIGIv Z2RiL2V2YWwuYwotaW5kZXggZmJkMzY5OC4uNTZkNTFjOCAxMDA2NDQKK2luZGV4IDgzOTQ2MjMu LjNkM2EzMWUgMTAwNjQ0CiAtLS0gYS9nZGIvZXZhbC5jCiArKysgYi9nZGIvZXZhbC5jCiBAQCAt NDQsNiArNDQsNyBAQApAQCAtMjU3OCw3ICsyNzI4LDcgQEAgaW5kZXggZmJkMzY5OC4uNTZkNTFj OCAxMDA2NDQKICAKICAgIHBjID0gKCpwb3MpKys7CiAgICBvcCA9IGV4cC0+ZWx0c1twY10ub3Bj b2RlOwotQEAgLTE4MjIsNiArMTgyNCw4IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3Ry dWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTE4NDcsNiArMTg0OSw4IEBAIGV2YWx1YXRlX3N1 YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAogIAkgICAgICByZXR1cm4g dmFsdWVfemVybyAoYnVpbHRpbl90eXBlIChleHAtPmdkYmFyY2gpLT5idWlsdGluX2ludCwKICAJ CQkJIG5vdF9sdmFsKTsKICAJICAgIH0KQEAgLTI1ODcsNyArMjczNyw3IEBAIGluZGV4IGZiZDM2 OTguLjU2ZDUxYzggMTAwNjQ0CiAgCSAgZWxzZSBpZiAoVFlQRV9UQVJHRVRfVFlQRSAoZnR5cGUp KQogIAkgICAgcmV0dXJuIGFsbG9jYXRlX3ZhbHVlIChUWVBFX1RBUkdFVF9UWVBFIChmdHlwZSkp OwogIAkgIGVsc2UKLUBAIC0xODQ4LDYgKzE4NTIsOCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRh cmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0xODc1LDYgKzE4NzksOCBAQCBldmFs dWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAKICAgICAg ICAvKiBGaXJzdCBkZXRlcm1pbmUgdGhlIHR5cGUgY29kZSB3ZSBhcmUgZGVhbGluZyB3aXRoLiAg Ki8KICAgICAgICBhcmcxID0gZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwgcG9zLCBu b3NpZGUpOwpAQCAtMjU5Niw3ICsyNzQ2LDcgQEAgaW5kZXggZmJkMzY5OC4uNTZkNTFjOCAxMDA2 NDQKICAgICAgICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnMSkpOwogICAg ICAgIGNvZGUgPSBUWVBFX0NPREUgKHR5cGUpOwogIAotQEAgLTE4NjgsNiArMTg3NCw3IEBAIGV2 YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTE4 OTUsNiArMTkwMSw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4 cGVjdF90eXBlLAogIAkgICAgICBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKICAJICAgIH0KICAJ fSAKQEAgLTI2MDQsNyArMjc1NCw3IEBAIGluZGV4IGZiZDM2OTguLjU2ZDUxYzggMTAwNjQ0CiAg CiAgICAgICAgc3dpdGNoIChjb2RlKQogIAl7Ci1AQCAtMjMyNSwxMyArMjMzMiwxOSBAQCBldmFs dWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0yMzU0 LDEzICsyMzYxLDE5IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4 cGVjdF90eXBlLAogICAgICAgIHsKICAJaW50IHN1YnNjcmlwdF9hcnJheVtNQVhfRk9SVFJBTl9E SU1TXTsKICAJaW50IGFycmF5X3NpemVfYXJyYXlbTUFYX0ZPUlRSQU5fRElNU107CkBAIC0yNjI0 LDcgKzI3NzQsNyBAQCBpbmRleCBmYmQzNjk4Li41NmQ1MWM4IDEwMDY0NAogIAl0bXBfdHlwZSA9 IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZzEpKTsKICAJbmRpbWVuc2lvbnMgPSBjYWxj X2Y3N19hcnJheV9kaW1zICh0eXBlKTsKICAKLUBAIC0yMzYxLDYgKzIzNzQsOSBAQCBldmFsdWF0 ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0yMzkwLDYg KzI0MDMsOSBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3Rf dHlwZSwKICAJICAgIHVwcGVyID0gZjc3X2dldF91cHBlcmJvdW5kICh0bXBfdHlwZSk7CiAgCSAg ICBsb3dlciA9IGY3N19nZXRfbG93ZXJib3VuZCAodG1wX3R5cGUpOwogIApAQCAtMjYzNCw3ICsy Nzg0LDcgQEAgaW5kZXggZmJkMzY5OC4uNTZkNTFjOCAxMDA2NDQKICAJICAgIGFycmF5X3NpemVf YXJyYXlbbmFyZ3MgLSBpIC0gMV0gPSB1cHBlciAtIGxvd2VyICsgMTsKICAKICAJICAgIC8qIFpl cm8tbm9ybWFsaXplIHN1YnNjcmlwdHMgc28gdGhhdCBvZmZzZXR0aW5nIHdpbGwgd29yay4gKi8K LUBAIC0yMzc5LDEzICsyMzk1LDI1IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0 IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTI0MDgsMTMgKzI0MjQsMjUgQEAgZXZhbHVhdGVfc3Vi ZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCSAgICAgIHRtcF90eXBl ID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAodG1wX3R5cGUpKTsKICAJICB9CiAg CkBAIC0yNjY0LDcgKzI4MTQsNyBAQCBpbmRleCBmYmQzNjk4Li41NmQ1MWM4IDEwMDY0NAogIAog IAkvKiBMZXQgdXMgbm93IHBsYXkgYSBkaXJ0eSB0cmljazogd2Ugd2lsbCB0YWtlIGFyZzEgCiAg CSAgIHdoaWNoIGlzIGEgdmFsdWUgbm9kZSBwb2ludGluZyB0byB0aGUgdG9wbW9zdCBsZXZlbAot QEAgLTIzOTUsNyArMjQyMyw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5 cGUgKmV4cGVjdF90eXBlLAorQEAgLTI0MjQsNyArMjQ1Miw3IEBAIGV2YWx1YXRlX3N1YmV4cF9z dGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAogIAkgICByZXR1cm5zIHRoZSBjb3Jy ZWN0IHR5cGUgdmFsdWUgKi8KICAKICAJZGVwcmVjYXRlZF9zZXRfdmFsdWVfdHlwZSAoYXJnMSwg dG1wX3R5cGUpOwpAQCAtMjY3Myw3ICsyODIzLDcgQEAgaW5kZXggZmJkMzY5OC4uNTZkNTFjOCAx MDA2NDQKICAgICAgICB9CiAgCiAgICAgIGNhc2UgQklOT1BfTE9HSUNBTF9BTkQ6Ci1AQCAtMjYy OSwxNCArMjY1NywyMiBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpl eHBlY3RfdHlwZSwKK0BAIC0yNjU4LDE1ICsyNjg2LDIzIEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFu ZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAogICAgICAgIGlmIChleHBlY3RfdHlwZSAm JiBUWVBFX0NPREUgKGV4cGVjdF90eXBlKSA9PSBUWVBFX0NPREVfUFRSKQogIAlleHBlY3RfdHlw ZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGNoZWNrX3R5cGVkZWYgKGV4cGVjdF90eXBlKSk7CiAgICAg ICAgYXJnMSA9IGV2YWx1YXRlX3N1YmV4cCAoZXhwZWN0X3R5cGUsIGV4cCwgcG9zLCBub3NpZGUp OwpAQCAtMjY4Miw3ICsyODMyLDggQEAgaW5kZXggZmJkMzY5OC4uNTZkNTFjOCAxMDA2NDQKICAg ICAgICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnMSkpOwogICAgICAgIGlm IChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9NRVRIT0RQVFIKICAJICB8fCBUWVBFX0NP REUgKHR5cGUpID09IFRZUEVfQ09ERV9NRU1CRVJQVFIpCi0gCWVycm9yIChfKCJBdHRlbXB0IHRv IGRlcmVmZXJlbmNlIHBvaW50ZXIgdG8gbWVtYmVyIHdpdGhvdXQgYW4gb2JqZWN0IikpOworIAll cnJvciAoXygiQXR0ZW1wdCB0byBkZXJlZmVyZW5jZSBwb2ludGVyICIKKyAJCSAidG8gbWVtYmVy IHdpdGhvdXQgYW4gb2JqZWN0IikpOwogICAgICAgIGlmIChub3NpZGUgPT0gRVZBTF9TS0lQKQog LQlnb3RvIG5vc2lkZXJldDsKICsJewpAQCAtMjY5OCw3ICsyODQ5LDcgQEAgaW5kZXggZmJkMzY5 OC4uNTZkNTFjOCAxMDA2NDQKICAgICAgICBlbHNlIGlmIChub3NpZGUgPT0gRVZBTF9BVk9JRF9T SURFX0VGRkVDVFMpCiAgCXsKICAJICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAo YXJnMSkpOwotQEAgLTI2NDUsMTIgKzI2ODEsMTggQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJk IChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMjY3NSwxMiArMjcxMSwxOCBAQCBldmFs dWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAJICAvKiBJ biBDIHlvdSBjYW4gZGVyZWZlcmVuY2UgYW4gYXJyYXkgdG8gZ2V0IHRoZSAxc3QgZWx0LiAgKi8K ICAJICAgICAgfHwgVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkKICAJICAgICkK QEAgLTI3MjIsNyArMjg3Myw3IEBAIGluZGV4IGZiZDM2OTguLjU2ZDUxYzggMTAwNjQ0CiAgCSAg ZWxzZQogIAkgICAgZXJyb3IgKF8oIkF0dGVtcHQgdG8gdGFrZSBjb250ZW50cyBvZiBhIG5vbi1w b2ludGVyIHZhbHVlLiIpKTsKICAJfQotQEAgLTI2NjAsOSArMjcwMiwxNCBAQCBldmFsdWF0ZV9z dWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0yNjkwLDkgKzI3 MzIsMTQgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5 cGUsCiAgCSBkby4gICJsb25nIGxvbmciIHZhcmlhYmxlcyBhcmUgcmFyZSBlbm91Z2ggdGhhdAog IAkgQlVJTFRJTl9UWVBFX0xPTkdFU1Qgd291bGQgc2VlbSB0byBiZSBhIG1pc3Rha2UuICAqLwog ICAgICAgIGlmIChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9JTlQpCkBAIC0yNzQwLDcg KzI4OTEsNyBAQCBpbmRleCBmYmQzNjk4Li41NmQ1MWM4IDEwMDY0NAogIAogICAgICBjYXNlIFVO T1BfQUREUjoKICAgICAgICAvKiBDKys6IGNoZWNrIGZvciBhbmQgaGFuZGxlIHBvaW50ZXIgdG8g bWVtYmVycy4gICovCi1AQCAtMzAwOCw3ICszMDU1LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3dpdGhf Y29lcmNpb24gKHN0cnVjdCBleHByZXNzaW9uICpleHAsCitAQCAtMzA0MCw3ICszMDg3LDcgQEAg ZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKHN0cnVjdCBleHByZXNzaW9uICpleHAsCiAg ewogICAgZW51bSBleHBfb3Bjb2RlIG9wOwogICAgaW50IHBjOwpAQCAtMjc0OSw3ICsyOTAwLDcg QEAgaW5kZXggZmJkMzY5OC4uNTZkNTFjOCAxMDA2NDQKICAgIHN0cnVjdCBzeW1ib2wgKnZhcjsK ICAgIHN0cnVjdCB0eXBlICp0eXBlOwogIAotQEAgLTMwMTksMTMgKzMwNjYsMTggQEAgZXZhbHVh dGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKHN0cnVjdCBleHByZXNzaW9uICpleHAsCitAQCAtMzA1 MSwxMyArMzA5OCwxOCBAQCBldmFsdWF0ZV9zdWJleHBfd2l0aF9jb2VyY2lvbiAoc3RydWN0IGV4 cHJlc3Npb24gKmV4cCwKICAgICAgewogICAgICBjYXNlIE9QX1ZBUl9WQUxVRToKICAgICAgICB2 YXIgPSBleHAtPmVsdHNbcGMgKyAyXS5zeW1ib2w7CkBAIC0yNzY5LDcgKzI5MjAsNyBAQCBpbmRl eCBmYmQzNjk4Li41NmQ1MWM4IDEwMDY0NAogIAkgIHJldHVybiB2YWx1ZV9jYXN0IChsb29rdXBf cG9pbnRlcl90eXBlIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSksCiAgCQkJICAgICB2YWwpOwog IAl9Ci1AQCAtMzA3Nyw5ICszMTI5LDEzIEBAIGV2YWx1YXRlX3N1YmV4cF9mb3Jfc2l6ZW9mIChz dHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcykKK0BAIC0zMTA5LDkgKzMxNjEsMTMgQEAg ZXZhbHVhdGVfc3ViZXhwX2Zvcl9zaXplb2YgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAq cG9zKQogIAogICAgICBjYXNlIE9QX1ZBUl9WQUxVRToKICAgICAgICAoKnBvcykgKz0gNDsKQEAg LTI4NzAsNyArMzAyMSw3IEBAIGluZGV4IDY2MTgxODguLjk2OGRlN2EgMTAwNjQ0CiAgICAgIHsK ICAgICAgY2FzZSBUWVBFX0NPREVfQVJSQVk6CiBkaWZmIC0tZ2l0IGEvZ2RiL2YtdmFscHJpbnQu YyBiL2dkYi9mLXZhbHByaW50LmMKLWluZGV4IDVkYjJlZDcuLmUxMDRlMjEgMTAwNjQ0CitpbmRl eCA2NGMwOTg5Li43ODdiNGFhIDEwMDY0NAogLS0tIGEvZ2RiL2YtdmFscHJpbnQuYwogKysrIGIv Z2RiL2YtdmFscHJpbnQuYwogQEAgLTU0LDE1ICs1NCwxNyBAQCBpbnQgZjc3X2FycmF5X29mZnNl dF90YmxbTUFYX0ZPUlRSQU5fRElNUyArIDFdWzJdOwpAQCAtMjkxNyw3ICszMDY4LDcgQEAgaW5k ZXggNWRiMmVkNy4uZTEwNGUyMSAxMDA2NDQKICAgICAgfQogIAogICAgcmV0dXJuIFRZUEVfQVJS QVlfVVBQRVJfQk9VTkRfVkFMVUUgKHR5cGUpOwotQEAgLTEzNCwyNCArMTM5LDI5IEBAIGY3N19j cmVhdGVfYXJyYXlwcmludF9vZmZzZXRfdGJsIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSkKK0BAIC0xMzUsMjQgKzE0MCwyOSBAQCBmNzdfY3JlYXRlX2FycmF5cHJp bnRfb2Zmc2V0X3RibCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0p CiAgICAgICAgdXBwZXIgPSBmNzdfZ2V0X3VwcGVyYm91bmQgKHRtcF90eXBlKTsKICAgICAgICBs b3dlciA9IGY3N19nZXRfbG93ZXJib3VuZCAodG1wX3R5cGUpOwogIApAQCAtMjk1MywxMSArMzEw NCwxMyBAQCBpbmRleCA1ZGIyZWQ3Li5lMTA0ZTIxIDEwMDY0NAogICAgICB9CiAgfQogIAotQEAg LTE3MiwzNCArMTgyLDM0IEBAIGY3N19wcmludF9hcnJheV8xIChpbnQgbnNzLCBpbnQgbmRpbWVu c2lvbnMsIHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTE3MywzNiArMTgzLDM0IEBAIGY3N19wcmlu dF9hcnJheV8xIChpbnQgbnNzLCBpbnQgbmRpbWVuc2lvbnMsIHN0cnVjdCB0eXBlICp0eXBlLAog IAogICAgaWYgKG5zcyAhPSBuZGltZW5zaW9ucykKICAgICAgewotLSAgICAgIGZvciAoaSA9IDA7 IChpIDwgRjc3X0RJTV9TSVpFIChuc3MpICYmICgqZWx0cykgPCBvcHRpb25zLT5wcmludF9tYXgp OyBpKyspCistICAgICAgZm9yIChpID0gMDsKKy0JICAgKGkgPCBGNzdfRElNX1NJWkUgKG5zcykg JiYgKCplbHRzKSA8IG9wdGlvbnMtPnByaW50X21heCk7CistCSAgIGkrKykKICsgICAgICBmb3Ig KGkgPSAwOyAoaSA8IEY3N19ESU1fQ09VTlQgKG5zcykgJiYgKCplbHRzKSA8IG9wdGlvbnMtPnBy aW50X21heCk7IGkrKykKICAJewogIAkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiggIik7 CkBAIC0yOTk3LDcgKzMxNTAsNyBAQCBpbmRleCA1ZGIyZWQ3Li5lMTA0ZTIxIDEwMDY0NAogIAkg ICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiLi4uIik7CiAgCX0KICAgICAgfQotQEAgLTI1 Niw2ICsyNjYsOSBAQCBmX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9i eXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAorQEAgLTI2MCw2ICsyNjgsOSBAQCBm X3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBp bnQgZW1iZWRkZWRfb2Zmc2V0LAogICAgQ09SRV9BRERSIGFkZHI7CiAgICBpbnQgaW5kZXg7CiAg CkBAIC0zMDA3LDYgKzMxNjAsMTcxIEBAIGluZGV4IDVkYjJlZDcuLmUxMDRlMjEgMTAwNjQ0CiAg ICBDSEVDS19UWVBFREVGICh0eXBlKTsKICAgIHN3aXRjaCAoVFlQRV9DT0RFICh0eXBlKSkKICAg ICAgeworZGlmZiAtLWdpdCBhL2dkYi9maW5kY21kLmMgYi9nZGIvZmluZGNtZC5jCitpbmRleCBj MjFjMDI4Li40ZmY5MTc3IDEwMDY0NAorLS0tIGEvZ2RiL2ZpbmRjbWQuYworKysrIGIvZ2RiL2Zp bmRjbWQuYworQEAgLTQ1LDYgKzQ1LDQxIEBAIHB1dF9iaXRzIChiZmRfdWludDY0X3QgZGF0YSwg Y2hhciAqYnVmLCBpbnQgYml0cywgYmZkX2Jvb2xlYW4gYmlnX3ApCisgICAgIH0KKyB9CisgCisr LyogQWxsb2NhdGVzIGEgYnVmZmVyIGluICpQQVRURVJOX0JVRiwgd2l0aCBhIGhhcmQtY29kZWQg aW5pdGlhbCBzaXplIHdoaWNoCisrICAgd2lsbCBiZSByZXR1cm5lZCBpbiAqUEFUVEVSTl9CVUZf U0laRS4gKlBBVFRFUk5fQlVGX0VORCBwb2ludHMgdG8gdGhlIHNhbWUKKysgICBwbGFjZSBhcyAq UEFUVEVSTl9CVUYsIGluZGljYXRpbmcgdGhhdCB0aGUgYnVmZmVyIGlzIGluaXRpYWxseSBlbXB0 eS4gICovCisrCisrdm9pZAorK2FsbG9jYXRlX3BhdHRlcm5fYnVmZmVyIChjaGFyICoqcGF0dGVy bl9idWYsIGNoYXIgKipwYXR0ZXJuX2J1Zl9lbmQsCisrCQkJIFVMT05HRVNUICpwYXR0ZXJuX2J1 Zl9zaXplKQorK3sKKysjZGVmaW5lIElOSVRJQUxfUEFUVEVSTl9CVUZfU0laRSAxMDAKKysgICpw YXR0ZXJuX2J1Zl9zaXplID0gSU5JVElBTF9QQVRURVJOX0JVRl9TSVpFOworKyAgKnBhdHRlcm5f YnVmID0geG1hbGxvYyAoKnBhdHRlcm5fYnVmX3NpemUpOworKyAgKnBhdHRlcm5fYnVmX2VuZCA9 ICpwYXR0ZXJuX2J1ZjsKKyt9CisrCisrLyogR3Jvd3MgKlBBVFRFUk5fQlVGIGJ5IGEgZmFjdG9y IG9mIHR3byBpZiBpdCdzIG5vdCBsYXJnZSBlbm91Z2ggdG8gaG9sZAorKyAgIFZBTF9CWVRFUyBt b3JlIGJ5dGVzICBvciBhIDY0LWJpdCB2YWx1ZSwgd2hpY2hldmVyIGlzIGxhcmdlci4KKysgICAq UEFUVEVSTl9CVUZfRU5EIGlzIHVwZGF0ZWQgYXMgbmVjZXNzYXJ5LiAgKi8KKysKKyt2b2lkCisr aW5jcmVhc2VfcGF0dGVybl9idWZmZXIgKGNoYXIgKipwYXR0ZXJuX2J1ZiwgY2hhciAqKnBhdHRl cm5fYnVmX2VuZCwKKysJCQkgVUxPTkdFU1QgKnBhdHRlcm5fYnVmX3NpemUsIGludCB2YWxfYnl0 ZXMpCisreworKyAgICAvKiBLZWVwIGl0IHNpbXBsZSBhbmQgYXNzdW1lIHNpemUgPT0gJ2cnIHdo ZW4gd2F0Y2hpbmcgZm9yIHdoZW4gd2UKKysgICAgICAgbmVlZCB0byBncm93IHRoZSBwYXR0ZXJu IGJ1Zi4gICovCisrICAgIGlmICgoKnBhdHRlcm5fYnVmX2VuZCAtICpwYXR0ZXJuX2J1ZiArIG1h eCAodmFsX2J5dGVzLCBzaXplb2YgKGludDY0X3QpKSkKKysJPiAqcGF0dGVybl9idWZfc2l6ZSkK KysgICAgICB7CisrCXNpemVfdCBjdXJyZW50X29mZnNldCA9ICpwYXR0ZXJuX2J1Zl9lbmQgLSAq cGF0dGVybl9idWY7CisrCisrCSpwYXR0ZXJuX2J1Zl9zaXplICo9IDI7CisrCSpwYXR0ZXJuX2J1 ZiA9IHhyZWFsbG9jICgqcGF0dGVybl9idWYsICpwYXR0ZXJuX2J1Zl9zaXplKTsKKysJKnBhdHRl cm5fYnVmX2VuZCA9ICpwYXR0ZXJuX2J1ZiArIGN1cnJlbnRfb2Zmc2V0OworKyAgICAgIH0KKyt9 CisrCisgLyogU3Vicm91dGluZSBvZiBmaW5kX2NvbW1hbmQgdG8gc2ltcGxpZnkgaXQuCisgICAg UGFyc2UgdGhlIGFyZ3VtZW50cyBvZiB0aGUgImZpbmQiIGNvbW1hbmQuICAqLworIAorQEAgLTYx LDggKzk2LDcgQEAgcGFyc2VfZmluZF9hcmdzIChjaGFyICphcmdzLCBVTE9OR0VTVCAqbWF4X2Nv dW50cCwKKyAgIGNoYXIgKnBhdHRlcm5fYnVmOworICAgLyogQ3VycmVudCBzaXplIG9mIHNlYXJj aCBwYXR0ZXJuIGJ1ZmZlci4KKyAgICAgIFdlIHJlYWxsb2Mgc3BhY2UgYXMgbmVlZGVkLiAgKi8K Ky0jZGVmaW5lIElOSVRJQUxfUEFUVEVSTl9CVUZfU0laRSAxMDAKKy0gIFVMT05HRVNUIHBhdHRl cm5fYnVmX3NpemUgPSBJTklUSUFMX1BBVFRFUk5fQlVGX1NJWkU7CisrICBVTE9OR0VTVCBwYXR0 ZXJuX2J1Zl9zaXplOworICAgLyogUG9pbnRlciB0byBvbmUgcGFzdCB0aGUgbGFzdCBpbi11c2Ug cGFydCBvZiBwYXR0ZXJuX2J1Zi4gICovCisgICBjaGFyICpwYXR0ZXJuX2J1Zl9lbmQ7CisgICBV TE9OR0VTVCBwYXR0ZXJuX2xlbjsKK0BAIC03NSw4ICsxMDksNyBAQCBwYXJzZV9maW5kX2FyZ3Mg KGNoYXIgKmFyZ3MsIFVMT05HRVNUICptYXhfY291bnRwLAorICAgaWYgKGFyZ3MgPT0gTlVMTCkK KyAgICAgZXJyb3IgKF8oIk1pc3Npbmcgc2VhcmNoIHBhcmFtZXRlcnMuIikpOworIAorLSAgcGF0 dGVybl9idWYgPSB4bWFsbG9jIChwYXR0ZXJuX2J1Zl9zaXplKTsKKy0gIHBhdHRlcm5fYnVmX2Vu ZCA9IHBhdHRlcm5fYnVmOworKyAgYWxsb2NhdGVfcGF0dGVybl9idWZmZXIgKCZwYXR0ZXJuX2J1 ZiwgJnBhdHRlcm5fYnVmX2VuZCwgJnBhdHRlcm5fYnVmX3NpemUpOworICAgb2xkX2NsZWFudXBz ID0gbWFrZV9jbGVhbnVwIChmcmVlX2N1cnJlbnRfY29udGVudHMsICZwYXR0ZXJuX2J1Zik7Cisg CisgICAvKiBHZXQgc2VhcmNoIGdyYW51bGFyaXR5IGFuZC9vciBtYXggY291bnQgaWYgc3BlY2lm aWVkLgorQEAgLTE3NiwxNyArMjA5LDkgQEAgcGFyc2VfZmluZF9hcmdzIChjaGFyICphcmdzLCBV TE9OR0VTVCAqbWF4X2NvdW50cCwKKyAgICAgICB2ID0gcGFyc2VfdG9fY29tbWFfYW5kX2V2YWwg KCZzKTsKKyAgICAgICB2YWxfYnl0ZXMgPSBUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSAodikpOwor IAorLSAgICAgIC8qIEtlZXAgaXQgc2ltcGxlIGFuZCBhc3N1bWUgc2l6ZSA9PSAnZycgd2hlbiB3 YXRjaGluZyBmb3Igd2hlbiB3ZQorLQkgbmVlZCB0byBncm93IHRoZSBwYXR0ZXJuIGJ1Zi4gICov CistICAgICAgaWYgKChwYXR0ZXJuX2J1Zl9lbmQgLSBwYXR0ZXJuX2J1ZiArIG1heCAodmFsX2J5 dGVzLCBzaXplb2YgKGludDY0X3QpKSkKKy0JICA+IHBhdHRlcm5fYnVmX3NpemUpCistCXsKKy0J ICBzaXplX3QgY3VycmVudF9vZmZzZXQgPSBwYXR0ZXJuX2J1Zl9lbmQgLSBwYXR0ZXJuX2J1ZjsK KysgICAgICBpbmNyZWFzZV9wYXR0ZXJuX2J1ZmZlciAoJnBhdHRlcm5fYnVmLCAmcGF0dGVybl9i dWZfZW5kLAorKwkJCSAgICAgICAmcGF0dGVybl9idWZfc2l6ZSwgdmFsX2J5dGVzKTsKKyAKKy0J ICBwYXR0ZXJuX2J1Zl9zaXplICo9IDI7CistCSAgcGF0dGVybl9idWYgPSB4cmVhbGxvYyAocGF0 dGVybl9idWYsIHBhdHRlcm5fYnVmX3NpemUpOworLQkgIHBhdHRlcm5fYnVmX2VuZCA9IHBhdHRl cm5fYnVmICsgY3VycmVudF9vZmZzZXQ7CistCX0KKyAKKyAgICAgICBpZiAoc2l6ZSAhPSAnXDAn KQorIAl7CitAQCAtMjQxLDYgKzI2Niw0NSBAQCBwYXJzZV9maW5kX2FyZ3MgKGNoYXIgKmFyZ3Ms IFVMT05HRVNUICptYXhfY291bnRwLAorICAgZGlzY2FyZF9jbGVhbnVwcyAob2xkX2NsZWFudXBz KTsKKyB9CisgCisrLyogRHJpdmVzIHRhcmdldF9zZWFyY2hfbWVtb3J5IHRvIHN3ZWVwIHRocm91 Z2ggdGhlIHNwZWNpZmllZCBzZWFyY2ggc3BhY2UsCisrICAgcG9zc2libHkgaW4gc2V2ZXJhbCBp dGVyYXRpb25zICh3aXRoIG9uZSBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gZm9yIGVhY2gKKysgICBp dGVyYXRpb24pLiAgKlNUQVJUX0FERFIgaXMgdGhlIGFkZHJlc3Mgd2hlcmUgdGhlIHNlYXJjaCBz dGFydHMsIGFuZCBpcworKyAgIHVwZGF0ZWQgdG8gdGhlIG5leHQgc3RhcnRpbmcgYWRkcmVzcyB0 byBjb250aW51ZSB0aGUgc2VhcmNoLgorKyAgICpTRUFSQ0hfU1BBQ0VfTEVOIGlzIHRoZSBhbW91 bnQgb2YgYnl0ZXMgd2hpY2ggd2lsbCBiZSBzZWFyY2hlZCwgYW5kIGlzCisrICAgdXBkYXRlZCBm b3IgdGhlIG5leHQgaXRlcmF0aW9uLiBQQVRURVJOX0JVRiBob2xkcyB0aGUgcGF0dGVybiB0byBi ZSBzZWFyY2hlZAorKyAgIGZvciwgUEFUVEVSTl9MRU4gaXMgdGhlIHNpemUgb2YgdGhlIHBhdHRl cm4gaW4gYnl0ZXMuICBJZiBhIG1hdGNoIGlzIGZvdW5kLAorKyAgIGl0J3MgYWRkcmVzcyBpcyBw dXQgaW4gKkZPVU5EX0FERFIuCisrCisrICAgUmV0dXJucyAxIGlmIGZvdW5kLCAwIGlmIG5vdCBm b3VuZCwgYW5kIC0xIGlmIHRoZXJlIHdhcyBhbiBlcnJvciByZXF1aXJpbmcKKysgICBoYWx0aW5n IG9mIHRoZSBzZWFyY2ggKGUuZy4gbWVtb3J5IHJlYWQgZXJyb3IpLiAgKi8KKysKKytpbnQKKytz ZWFyY2hfbWVtb3J5IChDT1JFX0FERFIgKnN0YXJ0X2FkZHIsIFVMT05HRVNUICpzZWFyY2hfc3Bh Y2VfbGVuLAorKwkgICAgICAgY29uc3QgY2hhciAqcGF0dGVybl9idWYsIFVMT05HRVNUIHBhdHRl cm5fbGVuLAorKwkgICAgICAgQ09SRV9BRERSICpmb3VuZF9hZGRyKQorK3sKKysgIC8qIE9mZnNl dCBmcm9tIHN0YXJ0IG9mIHRoaXMgaXRlcmF0aW9uIHRvIHRoZSBuZXh0IGl0ZXJhdGlvbi4gICov CisrICBVTE9OR0VTVCBuZXh0X2l0ZXJfaW5jcjsKKysgIGludCBmb3VuZDsKKysgICAgCisrICBm b3VuZCA9IHRhcmdldF9zZWFyY2hfbWVtb3J5ICgqc3RhcnRfYWRkciwgKnNlYXJjaF9zcGFjZV9s ZW4sCisrCQkJCXBhdHRlcm5fYnVmLCBwYXR0ZXJuX2xlbiwgZm91bmRfYWRkcik7CisrICBpZiAo Zm91bmQgPD0gMCkKKysgICAgcmV0dXJuIGZvdW5kOworKworKyAgLyogQmVnaW4gbmV4dCBpdGVy YXRpb24gYXQgb25lIGJ5dGUgcGFzdCB0aGlzIG1hdGNoLiAgKi8KKysgIG5leHRfaXRlcl9pbmNy ID0gKCpmb3VuZF9hZGRyIC0gKnN0YXJ0X2FkZHIpICsgMTsKKysKKysgIC8qIEZvciByb2J1c3Ru ZXNzLCB3ZSBkb24ndCBsZXQgc2VhcmNoX3NwYWNlX2xlbiBnbyAtdmUgaGVyZS4gICovCisrICBp ZiAoKnNlYXJjaF9zcGFjZV9sZW4gPj0gbmV4dF9pdGVyX2luY3IpCisrICAgICpzZWFyY2hfc3Bh Y2VfbGVuIC09IG5leHRfaXRlcl9pbmNyOworKyAgZWxzZQorKyAgICAqc2VhcmNoX3NwYWNlX2xl biA9IDA7CisrICAqc3RhcnRfYWRkciArPSBuZXh0X2l0ZXJfaW5jcjsKKysKKysgIHJldHVybiBm b3VuZDsKKyt9CisrCisgc3RhdGljIHZvaWQKKyBmaW5kX2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGlu dCBmcm9tX3R0eSkKKyB7CitAQCAtMjcxLDEyICszMzUsMTEgQEAgZmluZF9jb21tYW5kIChjaGFy ICphcmdzLCBpbnQgZnJvbV90dHkpCisgICB3aGlsZSAoc2VhcmNoX3NwYWNlX2xlbiA+PSBwYXR0 ZXJuX2xlbgorIAkgJiYgZm91bmRfY291bnQgPCBtYXhfY291bnQpCisgICAgIHsKKy0gICAgICAv KiBPZmZzZXQgZnJvbSBzdGFydCBvZiB0aGlzIGl0ZXJhdGlvbiB0byB0aGUgbmV4dCBpdGVyYXRp b24uICAqLworLSAgICAgIFVMT05HRVNUIG5leHRfaXRlcl9pbmNyOworICAgICAgIENPUkVfQURE UiBmb3VuZF9hZGRyOworLSAgICAgIGludCBmb3VuZCA9IHRhcmdldF9zZWFyY2hfbWVtb3J5IChz dGFydF9hZGRyLCBzZWFyY2hfc3BhY2VfbGVuLAorLQkJCQkJcGF0dGVybl9idWYsIHBhdHRlcm5f bGVuLCAmZm91bmRfYWRkcik7CisrICAgICAgaW50IGZvdW5kOworIAorKyAgICAgIGZvdW5kID0g c2VhcmNoX21lbW9yeSAoJnN0YXJ0X2FkZHIsICZzZWFyY2hfc3BhY2VfbGVuLCBwYXR0ZXJuX2J1 ZiwKKysJCQkgICAgIHBhdHRlcm5fbGVuLCAmZm91bmRfYWRkcik7CisgICAgICAgaWYgKGZvdW5k IDw9IDApCisgCWJyZWFrOworIAorQEAgLTI4NCwxNiArMzQ3LDYgQEAgZmluZF9jb21tYW5kIChj aGFyICphcmdzLCBpbnQgZnJvbV90dHkpCisgICAgICAgcHJpbnRmX2ZpbHRlcmVkICgiXG4iKTsK KyAgICAgICArK2ZvdW5kX2NvdW50OworICAgICAgIGxhc3RfZm91bmRfYWRkciA9IGZvdW5kX2Fk ZHI7CistCistICAgICAgLyogQmVnaW4gbmV4dCBpdGVyYXRpb24gYXQgb25lIGJ5dGUgcGFzdCB0 aGlzIG1hdGNoLiAgKi8KKy0gICAgICBuZXh0X2l0ZXJfaW5jciA9IChmb3VuZF9hZGRyIC0gc3Rh cnRfYWRkcikgKyAxOworLQorLSAgICAgIC8qIEZvciByb2J1c3RuZXNzLCB3ZSBkb24ndCBsZXQg c2VhcmNoX3NwYWNlX2xlbiBnbyAtdmUgaGVyZS4gICovCistICAgICAgaWYgKHNlYXJjaF9zcGFj ZV9sZW4gPj0gbmV4dF9pdGVyX2luY3IpCistCXNlYXJjaF9zcGFjZV9sZW4gLT0gbmV4dF9pdGVy X2luY3I7CistICAgICAgZWxzZQorLQlzZWFyY2hfc3BhY2VfbGVuID0gMDsKKy0gICAgICBzdGFy dF9hZGRyICs9IG5leHRfaXRlcl9pbmNyOworICAgICB9CisgCisgICAvKiBSZWNvcmQgYW5kIHBy aW50IHRoZSByZXN1bHRzLiAgKi8KIGRpZmYgLS1naXQgYS9nZGIvZmluZHZhci5jIGIvZ2RiL2Zp bmR2YXIuYwogaW5kZXggNWY5NzQyMi4uMmMyNjcwZSAxMDA2NDQKIC0tLSBhL2dkYi9maW5kdmFy LmMKQEAgLTMyMTgsOCArMzUzNiwyOCBAQCBpbmRleCA1Zjk3NDIyLi4yYzI2NzBlIDEwMDY0NAog ICAgICB9CiAgICBlbHNlCiAgICAgIHsKK2RpZmYgLS1naXQgYS9nZGIvZ2RiaW5pdC5pbiBiL2dk Yi9nZGJpbml0LmluCitpbmRleCBmZmI3ZjUzLi5hMmU3ZTk0IDEwMDY0NAorLS0tIGEvZ2RiL2dk YmluaXQuaW4KKysrKyBiL2dkYi9nZGJpbml0LmluCitAQCAtMSw1ICsxLDE1IEBACisgZWNobyBT ZXR0aW5nIHVwIHRoZSBlbnZpcm9ubWVudCBmb3IgZGVidWdnaW5nIGdkYi5cbgorIAorKyMgU2V0 IHVwIHRoZSBQeXRob24gbGlicmFyeSBhbmQgInJlcXVpcmUiIGNvbW1hbmQuCisrcHl0aG9uCisr ZnJvbSBvcy5wYXRoIGltcG9ydCBhYnNwYXRoCisrZ2RiLmRhdGFkaXIgPSBhYnNwYXRoICgnQHNy Y2RpckAvcHl0aG9uL2xpYicpCisrZ2RiLnB5dGhvbmxpYmRpciA9IGdkYi5kYXRhZGlyCisrZ2Ri Ll9fcGF0aF9fID0gW2dkYi5kYXRhZGlyICsgJy9nZGInXQorK3N5cy5wYXRoLmluc2VydCgwLCBn ZGIuZGF0YWRpcikKKytlbmQKKytzb3VyY2UgQHNyY2RpckAvcHl0aG9uL2xpYi9nZGIvX19pbml0 X18ucHkKKysKKyBzZXQgY29tcGxhaW50cyAxCisgCisgYiBpbnRlcm5hbF9lcnJvcgogZGlmZiAt LWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKLWluZGV4IGZhYzFlOTguLmNi YzNhZWIgMTAwNjQ0CitpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogLS0tIGEvZ2RiL2dk YnR5cGVzLmMKICsrKyBiL2dkYi9nZGJ0eXBlcy5jCiBAQCAtMzksNiArMzksOSBAQApAQCAtMzU2 NSw3ICszOTAzLDcgQEAgaW5kZXggZmFjMWU5OC4uY2JjM2FlYiAxMDA2NDQKICAKICAgIGlmIChu YW1lKQogICAgICBUWVBFX05BTUUgKHR5cGUpID0gb2JzYXZlc3RyaW5nIChuYW1lLCBzdHJsZW4g KG5hbWUpLAotQEAgLTMxOTQsMzMgKzMzNDEsNDIgQEAgdHlwZV9wYWlyX2VxIChjb25zdCB2b2lk ICppdGVtX2xocywgY29uc3Qgdm9pZCAqaXRlbV9yaHMpCitAQCAtMzE5OSwzMyArMzM0Niw0MiBA QCB0eXBlX3BhaXJfZXEgKGNvbnN0IHZvaWQgKml0ZW1fbGhzLCBjb25zdCB2b2lkICppdGVtX3Jo cykKICB9CiAgCiAgLyogQWxsb2NhdGUgdGhlIGhhc2ggdGFibGUgdXNlZCBieSBjb3B5X3R5cGVf cmVjdXJzaXZlIHRvIHdhbGsKQEAgLTM2MjMsMTIgKzM5NjEsMTMgQEAgaW5kZXggZmFjMWU5OC4u Y2JjM2FlYiAxMDA2NDQKICAgICAgcmV0dXJuIHR5cGU7CiAgCiAgICAvKiBUaGlzIHR5cGUgc2hv dWxkbid0IGJlIHBvaW50aW5nIHRvIGFueSB0eXBlcyBpbiBvdGhlciBvYmpmaWxlczsKLUBAIC0z MjM1LDggKzMzOTEsMTAgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9i amZpbGUsCitAQCAtMzI0MCw5ICszMzk2LDEwIEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVj dCBvYmpmaWxlICpvYmpmaWxlLAogICAgbmV3X3R5cGUgPSBhbGxvY190eXBlX2FyY2ggKGdldF90 eXBlX2FyY2ggKHR5cGUpKTsKICAKICAgIC8qIFdlIG11c3QgYWRkIHRoZSBuZXcgdHlwZSB0byB0 aGUgaGFzaCB0YWJsZSBpbW1lZGlhdGVseSwgaW4gY2FzZQogLSAgICAgd2UgZW5jb3VudGVyIHRo aXMgdHlwZSBhZ2FpbiBkdXJpbmcgYSByZWN1cnNpdmUgY2FsbCBiZWxvdy4gICovCi0tICBzdG9y ZWQgPSBvYnN0YWNrX2FsbG9jICgmb2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLCBzaXplb2YgKHN0 cnVjdCB0eXBlX3BhaXIpKTsKKy0gIHN0b3JlZAorLSAgICA9IG9ic3RhY2tfYWxsb2MgKCZvYmpm aWxlLT5vYmpmaWxlX29ic3RhY2ssIHNpemVvZiAoc3RydWN0IHR5cGVfcGFpcikpOwogKyAgICAg d2UgZW5jb3VudGVyIHRoaXMgdHlwZSBhZ2FpbiBkdXJpbmcgYSByZWN1cnNpdmUgY2FsbCBiZWxv dy4gIE1lbW9yeSBjb3VsZAogKyAgICAgYmUgYWxsb2NhdGVkIGZyb20gT0JKRklMRSBpbiB0aGUg Y2FzZSB3ZSB3aWxsIGJlIHJlbW92aW5nIE9CSkZJTEUsIHRoaXMKICsgICAgIG9wdGltaXphdGlv biBpcyBtaXNzZWQgYW5kIHhmcmVlIGlzIGNhbGxlZCBmb3IgaXQgZnJvbSBDT1BJRURfVFlQRVMu ICAqLwpAQCAtMzYzNiw3ICszOTc1LDcgQEAgaW5kZXggZmFjMWU5OC4uY2JjM2FlYiAxMDA2NDQK ICAgIHN0b3JlZC0+b2xkID0gdHlwZTsKICAgIHN0b3JlZC0+bmV3ID0gbmV3X3R5cGU7CiAgICAq c2xvdCA9IHN0b3JlZDsKLUBAIC0zMjQ3LDYgKzM0MDUsMTkgQEAgY29weV90eXBlX3JlY3Vyc2l2 ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtMzI1Myw2ICszNDEwLDE5IEBAIGNvcHlf dHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogICAgVFlQRV9PQkpGSUxF X09XTkVEIChuZXdfdHlwZSkgPSAwOwogICAgVFlQRV9PV05FUiAobmV3X3R5cGUpLmdkYmFyY2gg PSBnZXRfdHlwZV9hcmNoICh0eXBlKTsKICAKQEAgLTM2NTYsNyArMzk5NSw3IEBAIGluZGV4IGZh YzFlOTguLmNiYzNhZWIgMTAwNjQ0CiAgICBpZiAoVFlQRV9OQU1FICh0eXBlKSkKICAgICAgVFlQ RV9OQU1FIChuZXdfdHlwZSkgPSB4c3RyZHVwIChUWVBFX05BTUUgKHR5cGUpKTsKICAgIGlmIChU WVBFX1RBR19OQU1FICh0eXBlKSkKLUBAIC0zMjU1LDEyICszNDI2LDQ4IEBAIGNvcHlfdHlwZV9y ZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTMyNjEsMTIgKzM0MzEsNDgg QEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgICBUWVBF X0lOU1RBTkNFX0ZMQUdTIChuZXdfdHlwZSkgPSBUWVBFX0lOU1RBTkNFX0ZMQUdTICh0eXBlKTsK ICAgIFRZUEVfTEVOR1RIIChuZXdfdHlwZSkgPSBUWVBFX0xFTkdUSCAodHlwZSk7CiAgCkBAIC0z NzA1LDcgKzQwNDQsNyBAQCBpbmRleCBmYWMxZTk4Li5jYmMzYWViIDEwMDY0NAogICAgICAgIFRZ UEVfRklFTERTIChuZXdfdHlwZSkgPSBYQ0FMTE9DIChuZmllbGRzLCBzdHJ1Y3QgZmllbGQpOwog ICAgICAgIGZvciAoaSA9IDA7IGkgPCBuZmllbGRzOyBpKyspCiAgCXsKLUBAIC0zMjY5LDggKzM0 NzYsOCBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BA IC0zMjc1LDggKzM0ODEsOCBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAq b2JqZmlsZSwKICAJICBUWVBFX0ZJRUxEX0JJVFNJWkUgKG5ld190eXBlLCBpKSA9IFRZUEVfRklF TERfQklUU0laRSAodHlwZSwgaSk7CiAgCSAgaWYgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaSkp CiAgCSAgICBUWVBFX0ZJRUxEX1RZUEUgKG5ld190eXBlLCBpKQpAQCAtMzcxNiw3ICs0MDU1LDcg QEAgaW5kZXggZmFjMWU5OC4uY2JjM2FlYiAxMDA2NDQKICAJICBpZiAoVFlQRV9GSUVMRF9OQU1F ICh0eXBlLCBpKSkKICAJICAgIFRZUEVfRklFTERfTkFNRSAobmV3X3R5cGUsIGkpID0gCiAgCSAg ICAgIHhzdHJkdXAgKFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSkpOwotQEAgLTMyOTcsMjQgKzM1 MDQsMTY2IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAor QEAgLTMzMDMsMjQgKzM1MDksMTY2IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLAogIAl9CiAgICAgIH0KICAKQEAgLTM4OTAsNyArNDIyOSw3IEBAIGluZGV4 IGZhYzFlOTguLmNiYzNhZWIgMTAwNjQ0CiAgICAvKiBNYXliZSBjb3B5IHRoZSB0eXBlX3NwZWNp ZmljIGJpdHMuCiAgCiAgICAgICBOT1RFIGRyb3cvMjAwNS0xMi0wOTogV2UgZG8gbm90IGNvcHkg dGhlIEMrKy1zcGVjaWZpYyBiaXRzIGxpa2UKLUBAIC0zMzMxLDYgKzM2ODAsMTcgQEAgY29weV90 eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtMzMzNyw2ICszNjg1 LDE3IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogICAg cmV0dXJuIG5ld190eXBlOwogIH0KICAKQEAgLTM5MDgsNyArNDI0Nyw3IEBAIGluZGV4IGZhYzFl OTguLmNiYzNhZWIgMTAwNjQ0CiAgLyogTWFrZSBhIGNvcHkgb2YgdGhlIGdpdmVuIFRZUEUsIGV4 Y2VwdCB0aGF0IHRoZSBwb2ludGVyICYgcmVmZXJlbmNlCiAgICAgdHlwZXMgYXJlIG5vdCBwcmVz ZXJ2ZWQuCiAgICAgCi1AQCAtMzM1Myw2ICszNzEzLDE5OSBAQCBjb3B5X3R5cGUgKGNvbnN0IHN0 cnVjdCB0eXBlICp0eXBlKQorQEAgLTMzNTksNiArMzcxOCwxOTkgQEAgY29weV90eXBlIChjb25z dCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgIHJldHVybiBuZXdfdHlwZTsKICB9CiAgCkBAIC00MTA4 LDcgKzQ0NDcsNyBAQCBpbmRleCBmYWMxZTk4Li5jYmMzYWViIDEwMDY0NAogIAogIC8qIEhlbHBl ciBmdW5jdGlvbnMgdG8gaW5pdGlhbGl6ZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgdHlwZXMuICAq LwogIAotQEAgLTM3MDEsNiArNDI1NCw4IEBAIGdkYnR5cGVzX3Bvc3RfaW5pdCAoc3RydWN0IGdk YmFyY2ggKmdkYmFyY2gpCitAQCAtMzcwNyw2ICs0MjU5LDggQEAgZ2RidHlwZXNfcG9zdF9pbml0 IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKICAgICAgPSBsb29rdXBfcG9pbnRlcl90eXBlIChi dWlsdGluX3R5cGUtPmJ1aWx0aW5fdm9pZCk7CiAgICBidWlsdGluX3R5cGUtPmJ1aWx0aW5fZnVu Y19wdHIKICAgICAgPSBsb29rdXBfcG9pbnRlcl90eXBlIChsb29rdXBfZnVuY3Rpb25fdHlwZSAo YnVpbHRpbl90eXBlLT5idWlsdGluX3ZvaWQpKTsKQEAgLTQxMTcsNyArNDQ1Niw3IEBAIGluZGV4 IGZhYzFlOTguLmNiYzNhZWIgMTAwNjQ0CiAgCiAgICAvKiBUaGlzIHR5cGUgcmVwcmVzZW50cyBh IEdEQiBpbnRlcm5hbCBmdW5jdGlvbi4gICovCiAgICBidWlsdGluX3R5cGUtPmludGVybmFsX2Zu Ci1AQCAtMzgxNCw2ICs0MzY5LDE4IEBAIG9iamZpbGVfdHlwZSAoc3RydWN0IG9iamZpbGUgKm9i amZpbGUpCitAQCAtMzgyMCw2ICs0Mzc0LDE4IEBAIG9iamZpbGVfdHlwZSAoc3RydWN0IG9iamZp bGUgKm9iamZpbGUpCiAgCQkgIjx0ZXh0IHZhcmlhYmxlLCBubyBkZWJ1ZyBpbmZvPiIsIG9iamZp bGUpOwogICAgVFlQRV9UQVJHRVRfVFlQRSAob2JqZmlsZV90eXBlLT5ub2RlYnVnX3RleHRfc3lt Ym9sKQogICAgICA9IG9iamZpbGVfdHlwZS0+YnVpbHRpbl9pbnQ7CkBAIC00MTM2LDcgKzQ0NzUs NyBAQCBpbmRleCBmYWMxZTk4Li5jYmMzYWViIDEwMDY0NAogICAgb2JqZmlsZV90eXBlLT5ub2Rl YnVnX2RhdGFfc3ltYm9sCiAgICAgID0gaW5pdF90eXBlIChUWVBFX0NPREVfSU5ULAogIAkJIGdk YmFyY2hfaW50X2JpdCAoZ2RiYXJjaCkgLyBIT1NUX0NIQVJfQklULCAwLAotQEAgLTM4NjgsNiAr NDQzNSwxMSBAQCB2b2lkCitAQCAtMzg3NCw2ICs0NDQwLDExIEBAIHZvaWQKICBfaW5pdGlhbGl6 ZV9nZGJ0eXBlcyAodm9pZCkKICB7CiAgICBnZGJ0eXBlc19kYXRhID0gZ2RiYXJjaF9kYXRhX3Jl Z2lzdGVyX3Bvc3RfaW5pdCAoZ2RidHlwZXNfcG9zdF9pbml0KTsKQEAgLTQxNDcsOSArNDQ4Niw5 IEBAIGluZGV4IGZhYzFlOTguLmNiYzNhZWIgMTAwNjQ0CiArCiAgICBvYmpmaWxlX3R5cGVfZGF0 YSA9IHJlZ2lzdGVyX29iamZpbGVfZGF0YSAoKTsKICAKLSAgIGFkZF9zZXRzaG93X3ppbnRlZ2Vy X2NtZCAoIm92ZXJsb2FkIiwgbm9fY2xhc3MsICZvdmVybG9hZF9kZWJ1ZywgXygiXAorICAgYWRk X3NldHNob3dfemludGVnZXJfY21kICgib3ZlcmxvYWQiLCBub19jbGFzcywgJm92ZXJsb2FkX2Rl YnVnLAogZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5oIGIvZ2RiL2dkYnR5cGVzLmgKLWluZGV4 IDk4OTg5OTEuLjY1Mjk5NGMgMTAwNjQ0CitpbmRleCAwMzUzZjk2Li5hMDM1YmFkIDEwMDY0NAog LS0tIGEvZ2RiL2dkYnR5cGVzLmgKICsrKyBiL2dkYi9nZGJ0eXBlcy5oCiBAQCAtMTcwLDYgKzE3 MCw3IEBAIGVudW0gdHlwZV9mbGFnX3ZhbHVlCkBAIC00MjM0LDcgKzQ1NzMsNyBAQCBpbmRleCA5 ODk4OTkxLi42NTI5OTRjIDEwMDY0NAogIC8qIENvbnN0YW50IHR5cGUuICBJZiB0aGlzIGlzIHNl dCwgdGhlIGNvcnJlc3BvbmRpbmcgdHlwZSBoYXMgYQogICAqIGNvbnN0IG1vZGlmaWVyLgogICAq LwotQEAgLTM4OCwxMSArNDQyLDE5IEBAIHN0cnVjdCBtYWluX3R5cGUKK0BAIC0zODksMTEgKzQ0 MywxOSBAQCBzdHJ1Y3QgbWFpbl90eXBlCiAgICB1bnNpZ25lZCBpbnQgZmxhZ192YXJhcmdzIDog MTsKICAgIHVuc2lnbmVkIGludCBmbGFnX3ZlY3RvciA6IDE7CiAgICB1bnNpZ25lZCBpbnQgZmxh Z19zdHViX3N1cHBvcnRlZCA6IDE7CkBAIC00MjU0LDcgKzQ1OTMsNyBAQCBpbmRleCA5ODk4OTkx Li42NTI5OTRjIDEwMDY0NAogIAogICAgLyogQSBkaXNjcmltaW5hbnQgdGVsbGluZyB1cyB3aGlj aCBmaWVsZCBvZiB0aGUgdHlwZV9zcGVjaWZpYyB1bmlvbgogICAgICAgaXMgYmVpbmcgdXNlZCBm b3IgdGhpcyB0eXBlLCBpZiBhbnkuICAqLwotQEAgLTQ2Niw2ICs1MjgsMjAgQEAgc3RydWN0IG1h aW5fdHlwZQorQEAgLTQ2Nyw2ICs1MjksMjAgQEAgc3RydWN0IG1haW5fdHlwZQogIAogICAgc3Ry dWN0IHR5cGUgKnRhcmdldF90eXBlOwogIApAQCAtNDI3NSw3ICs0NjE0LDcgQEAgaW5kZXggOTg5 ODk5MS4uNjUyOTk0YyAxMDA2NDQKICAgIC8qIEZvciBzdHJ1Y3R1cmUgYW5kIHVuaW9uIHR5cGVz LCBhIGRlc2NyaXB0aW9uIG9mIGVhY2ggZmllbGQuCiAgICAgICBGb3Igc2V0IGFuZCBwYXNjYWwg YXJyYXkgdHlwZXMsIHRoZXJlIGlzIG9uZSAiZmllbGQiLAogICAgICAgd2hvc2UgdHlwZSBpcyB0 aGUgZG9tYWluIHR5cGUgb2YgdGhlIHNldCBvciBhcnJheS4KLUBAIC01MzksMTMgKzYxNSwzNCBA QCBzdHJ1Y3QgbWFpbl90eXBlCitAQCAtNTQxLDEzICs2MTcsMzQgQEAgc3RydWN0IG1haW5fdHlw ZQogIAogICAgICBzdHJ1Y3QgcmFuZ2VfYm91bmRzCiAgICAgIHsKQEAgLTQzMTUsNyArNDY1NCw3 IEBAIGluZGV4IDk4OTg5OTEuLjY1Mjk5NGMgMTAwNjQ0CiAgCiAgICAgICAgLyogRmxhZ3MgaW5k aWNhdGluZyB3aGV0aGVyIHRoZSB2YWx1ZXMgb2YgbG93IGFuZCBoaWdoIGFyZQogICAgICAgICAg IHZhbGlkLiAgV2hlbiB0cnVlLCB0aGUgcmVzcGVjdGl2ZSByYW5nZSB2YWx1ZSBpcwotQEAgLTkx Nyw5ICsxMDE0LDkgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0 IHR5cGUgKik7CitAQCAtOTIxLDkgKzEwMTgsOSBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0 X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKICAjZGVmaW5lIFRZUEVfUE9JTlRFUl9UWVBFKHRo aXN0eXBlKSAodGhpc3R5cGUpLT5wb2ludGVyX3R5cGUKICAjZGVmaW5lIFRZUEVfUkVGRVJFTkNF X1RZUEUodGhpc3R5cGUpICh0aGlzdHlwZSktPnJlZmVyZW5jZV90eXBlCiAgI2RlZmluZSBUWVBF X0NIQUlOKHRoaXN0eXBlKSAodGhpc3R5cGUpLT5jaGFpbgpAQCAtNDMyOCw3ICs0NjY3LDcgQEAg aW5kZXggOTg5ODk5MS4uNjUyOTk0YyAxMDA2NDQKICAgICBjYWxscyBjaGVja190eXBlZGVmLCBU WVBFX0xFTkdUSCAoVkFMVUVfVFlQRSAoWCkpIGlzIHNhZmUuICAqLwogICNkZWZpbmUgVFlQRV9M RU5HVEgodGhpc3R5cGUpICh0aGlzdHlwZSktPmxlbmd0aAogIC8qIE5vdGUgdGhhdCBUWVBFX0NP REUgY2FuIGJlIFRZUEVfQ09ERV9UWVBFREVGLCBzbyBpZiB5b3Ugd2FudCB0aGUgcmVhbAotQEAg LTkyNywxMSArMTAyNCwxNiBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChz dHJ1Y3QgdHlwZSAqKTsKK0BAIC05MzEsMTEgKzEwMjgsMTYgQEAgZXh0ZXJuIHZvaWQgYWxsb2Nh dGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0IHR5cGUgKik7CiAgI2RlZmluZSBUWVBFX0NPREUodGhp c3R5cGUpIFRZUEVfTUFJTl9UWVBFKHRoaXN0eXBlKS0+Y29kZQogICNkZWZpbmUgVFlQRV9ORklF TERTKHRoaXN0eXBlKSBUWVBFX01BSU5fVFlQRSh0aGlzdHlwZSktPm5maWVsZHMKICAjZGVmaW5l IFRZUEVfRklFTERTKHRoaXN0eXBlKSBUWVBFX01BSU5fVFlQRSh0aGlzdHlwZSktPmZsZHNfYm5k cy5maWVsZHMKQEAgLTQzNDcsNyArNDY4Niw3IEBAIGluZGV4IDk4OTg5OTEuLjY1Mjk5NGMgMTAw NjQ0CiAgI2RlZmluZSBUWVBFX0xPV19CT1VORF9VTkRFRklORUQocmFuZ2VfdHlwZSkgXAogICAg IFRZUEVfUkFOR0VfREFUQShyYW5nZV90eXBlKS0+bG93X3VuZGVmaW5lZAogICNkZWZpbmUgVFlQ RV9ISUdIX0JPVU5EX1VOREVGSU5FRChyYW5nZV90eXBlKSBcCi1AQCAtOTQ4LDcgKzEwNTAsMTQg QEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0IHR5cGUgKik7CitA QCAtOTUyLDcgKzEwNTQsMTQgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAo c3RydWN0IHR5cGUgKik7CiAgICAgKFRZUEVfSElHSF9CT1VORChUWVBFX0lOREVYX1RZUEUoKGFy cmF5dHlwZSkpKSkKICAKICAjZGVmaW5lIFRZUEVfQVJSQVlfTE9XRVJfQk9VTkRfVkFMVUUoYXJy YXl0eXBlKSBcCkBAIC00MzYzLDcgKzQ3MDIsNyBAQCBpbmRleCA5ODk4OTkxLi42NTI5OTRjIDEw MDY0NAogIAogIC8qIEMrKyAqLwogIAotQEAgLTExNzcsNiArMTI4NiwxMCBAQCBzdHJ1Y3QgYnVp bHRpbl90eXBlCitAQCAtMTE4MSw2ICsxMjkwLDEwIEBAIHN0cnVjdCBidWlsdGluX3R5cGUKICAg ICAgICgqKSAoKSBjYW4gc2VydmVyIGFzIGEgZ2VuZXJpYyBmdW5jdGlvbiBwb2ludGVyLiAgKi8K ICAgIHN0cnVjdCB0eXBlICpidWlsdGluX2Z1bmNfcHRyOwogIApAQCAtNDM3NCw3ICs0NzEzLDcg QEAgaW5kZXggOTg5ODk5MS4uNjUyOTk0YyAxMDA2NDQKICAKICAgIC8qIFNwZWNpYWwtcHVycG9z ZSB0eXBlcy4gICovCiAgCi1AQCAtMTIxNyw2ICsxMzMwLDggQEAgc3RydWN0IG9iamZpbGVfdHlw ZQorQEAgLTEyMjEsNiArMTMzNCw4IEBAIHN0cnVjdCBvYmpmaWxlX3R5cGUKICAKICAgIC8qIFR5 cGVzIHVzZWQgZm9yIHN5bWJvbHMgd2l0aCBubyBkZWJ1ZyBpbmZvcm1hdGlvbi4gICovCiAgICBz dHJ1Y3QgdHlwZSAqbm9kZWJ1Z190ZXh0X3N5bWJvbDsKQEAgLTQzODMsNyArNDcyMiw3IEBAIGlu ZGV4IDk4OTg5OTEuLjY1Mjk5NGMgMTAwNjQ0CiAgICBzdHJ1Y3QgdHlwZSAqbm9kZWJ1Z19kYXRh X3N5bWJvbDsKICAgIHN0cnVjdCB0eXBlICpub2RlYnVnX3Vua25vd25fc3ltYm9sOwogICAgc3Ry dWN0IHR5cGUgKm5vZGVidWdfdGxzX3N5bWJvbDsKLUBAIC0xMzY0LDYgKzE0NzksMTggQEAgZXh0 ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0 IHR5cGUgKiwKK0BAIC0xMzY4LDYgKzE0ODMsMTggQEAgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVh dGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKICAJCQkJICAgICAg IHN0cnVjdCB0eXBlICopOwogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqbG9va3VwX2FycmF5X3Jhbmdl X3R5cGUgKHN0cnVjdCB0eXBlICosIGludCwgaW50KTsKICAKQEAgLTQ0MDIsNyArNDc0MSw3IEBA IGluZGV4IDk4OTg5OTEuLjY1Mjk5NGMgMTAwNjQ0CiAgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVh dGVfc3RyaW5nX3R5cGUgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB0eXBlICosCiAgCQkJCQlzdHJ1 Y3QgdHlwZSAqKTsKICBleHRlcm4gc3RydWN0IHR5cGUgKmxvb2t1cF9zdHJpbmdfcmFuZ2VfdHlw ZSAoc3RydWN0IHR5cGUgKiwgaW50LCBpbnQpOwotQEAgLTE0MDksNiArMTUzNiw4IEBAIGV4dGVy biBpbnQgaXNfcHVibGljX2FuY2VzdG9yIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAqKTsK K0BAIC0xNDEzLDYgKzE1NDAsOCBAQCBleHRlcm4gaW50IGlzX3B1YmxpY19hbmNlc3RvciAoc3Ry dWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKik7CiAgCiAgZXh0ZXJuIGludCBpc191bmlxdWVfYW5j ZXN0b3IgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB2YWx1ZSAqKTsKICAKQEAgLTQ0MTEsNyArNDc1 MCw3IEBAIGluZGV4IDk4OTg5OTEuLjY1Mjk5NGMgMTAwNjQ0CiAgLyogT3ZlcmxvYWQgcmVzb2x1 dGlvbiAqLwogIAogICNkZWZpbmUgTEVOR1RIX01BVENIKGJ2KSAoKGJ2KS0+cmFua1swXSkKLUBA IC0xNDc5LDEwICsxNjA4LDExIEBAIGV4dGVybiB2b2lkIG1haW50ZW5hbmNlX3ByaW50X3R5cGUg KGNoYXIgKiwgaW50KTsKK0BAIC0xNDgzLDEwICsxNjEyLDExIEBAIGV4dGVybiB2b2lkIG1haW50 ZW5hbmNlX3ByaW50X3R5cGUgKGNoYXIgKiwgaW50KTsKICAKICBleHRlcm4gaHRhYl90IGNyZWF0 ZV9jb3BpZWRfdHlwZXNfaGFzaCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpOwogIApAQCAtNTAy MiwxMCArNTM2MSwxMCBAQCBpbmRleCAxMGZkYzNiLi5lZDZkZTU2IDEwMDY0NAogICAgIHJhdGhl ciB0aGFuIHNldHRpbmcgaXQgZGlyZWN0bHkgdG8gY2hlY2sgdGhhdCB0aGUgbGVuZ3RoIGlzIG9u bHkKICAgICBzZXQgb25jZS4gIEl0IGFsc28gZW5hYmxlcyB0aGUgJ21haW50IHNldC9zaG93IHNo b3ctZGVidWctcmVncycgCiBkaWZmIC0tZ2l0IGEvZ2RiL2luZmNhbGwuYyBiL2dkYi9pbmZjYWxs LmMKLWluZGV4IDg1YjgxNGEuLmYwY2I5MjkgMTAwNjQ0CitpbmRleCA0OGMxODNlLi43MTZmYjY4 IDEwMDY0NAogLS0tIGEvZ2RiL2luZmNhbGwuYwogKysrIGIvZ2RiL2luZmNhbGwuYwotQEAgLTIy NSw2ICsyMjUsNTYgQEAgdmFsdWVfYXJnX2NvZXJjZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gs IHN0cnVjdCB2YWx1ZSAqYXJnLAorQEAgLTIyOCw2ICsyMjgsNTYgQEAgdmFsdWVfYXJnX2NvZXJj ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB2YWx1ZSAqYXJnLAogICAgcmV0dXJu IHZhbHVlX2Nhc3QgKHR5cGUsIGFyZyk7CiAgfQogIApAQCAtNTA4Miw3ICs1NDIxLDcgQEAgaW5k ZXggODViODE0YS4uZjBjYjkyOSAxMDA2NDQKICAvKiBEZXRlcm1pbmUgYSBmdW5jdGlvbidzIGFk ZHJlc3MgYW5kIGl0cyByZXR1cm4gdHlwZSBmcm9tIGl0cyB2YWx1ZS4KICAgICBDYWxscyBlcnJv cigpIGlmIHRoZSBmdW5jdGlvbiBpcyBub3QgdmFsaWQgZm9yIGNhbGxpbmcuICAqLwogIAotQEAg LTIzMyw3ICsyODMsNiBAQCBmaW5kX2Z1bmN0aW9uX2FkZHIgKHN0cnVjdCB2YWx1ZSAqZnVuY3Rp b24sIHN0cnVjdCB0eXBlICoqcmV0dmFsX3R5cGUpCitAQCAtMjM2LDcgKzI4Niw2IEBAIGZpbmRf ZnVuY3Rpb25fYWRkciAoc3RydWN0IHZhbHVlICpmdW5jdGlvbiwgc3RydWN0IHR5cGUgKipyZXR2 YWxfdHlwZSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqZnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1 ZV90eXBlIChmdW5jdGlvbikpOwogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfdHlw ZV9hcmNoIChmdHlwZSk7CkBAIC01MDkwLDcgKzU0MjksNyBAQCBpbmRleCA4NWI4MTRhLi5mMGNi OTI5IDEwMDY0NAogICAgc3RydWN0IHR5cGUgKnZhbHVlX3R5cGUgPSBOVUxMOwogICAgQ09SRV9B RERSIGZ1bmFkZHI7CiAgCi1AQCAtMjQxLDI0ICsyOTAsMzQgQEAgZmluZF9mdW5jdGlvbl9hZGRy IChzdHJ1Y3QgdmFsdWUgKmZ1bmN0aW9uLCBzdHJ1Y3QgdHlwZSAqKnJldHZhbF90eXBlKQorQEAg LTI0NCwyNCArMjkzLDM0IEBAIGZpbmRfZnVuY3Rpb25fYWRkciAoc3RydWN0IHZhbHVlICpmdW5j dGlvbiwgc3RydWN0IHR5cGUgKipyZXR2YWxfdHlwZSkKICAgICAgIHBhcnQgb2YgaXQuICAqLwog IAogICAgLyogRGV0ZXJtaW5lIGFkZHJlc3MgdG8gY2FsbC4gICovCkBAIC01MTM2LDEwICs1NDc1 LDEwIEBAIGluZGV4IDg1YjgxNGEuLmYwY2I5MjkgMTAwNjQ0CiAgICAgICAgLyogSGFuZGxlIHRo ZSBjYXNlIG9mIGZ1bmN0aW9ucyBsYWNraW5nIGRlYnVnZ2luZyBpbmZvLgogICAgICAgICAgIFRo ZWlyIHZhbHVlcyBhcmUgY2hhcmFjdGVycyBzaW5jZSB0aGVpciBhZGRyZXNzZXMgYXJlIGNoYXIg Ki8KIGRpZmYgLS1naXQgYS9nZGIvbGludXgtbmF0LmMgYi9nZGIvbGludXgtbmF0LmMKLWluZGV4 IDE0NmJiOGMuLjllMDhlZWUgMTAwNjQ0CitpbmRleCBlNDY3ZTlhLi5kN2I1Mzk2IDEwMDY0NAog LS0tIGEvZ2RiL2xpbnV4LW5hdC5jCiArKysgYi9nZGIvbGludXgtbmF0LmMKLUBAIC0xMjQzLDYg KzEyNDMsNjQgQEAgaXRlcmF0ZV9vdmVyX2x3cHMgKHB0aWRfdCBmaWx0ZXIsCitAQCAtMTI1Nyw2 ICsxMjU3LDY0IEBAIGl0ZXJhdGVfb3Zlcl9sd3BzIChwdGlkX3QgZmlsdGVyLAogICAgcmV0dXJu IE5VTEw7CiAgfQogIApAQCAtNTIwNSwxMCArNTU0NCwxMCBAQCBpbmRleCAxNDZiYjhjLi45ZTA4 ZWVlIDEwMDY0NAogICAgIGFub3RoZXIgaW5kaWNhdGVkIGJ5IE5FV19QVElELiAgV2UgY2FuIG9u bHkgc3dpdGNoIHNpbmdsZS10aHJlYWRlZAogICAgIGFwcGxpY2F0aW9ucywgc28gd2Ugb25seSBj cmVhdGUgb25lIG5ldyBMV1AsIGFuZCB0aGUgcHJldmlvdXMgbGlzdAogZGlmZiAtLWdpdCBhL2dk Yi9saW51eC1uYXQuaCBiL2dkYi9saW51eC1uYXQuaAotaW5kZXggMjk4N2ZhYi4uMGU1ZjM1MyAx MDA2NDQKK2luZGV4IDQyY2IyZmMuLjA1YWMxMWQgMTAwNjQ0CiAtLS0gYS9nZGIvbGludXgtbmF0 LmgKICsrKyBiL2dkYi9saW51eC1uYXQuaAotQEAgLTEzOSw2ICsxMzksMTEgQEAgc3RydWN0IGx3 cF9pbmZvICppdGVyYXRlX292ZXJfbHdwcyAocHRpZF90IGZpbHRlciwKK0BAIC0xNDAsNiArMTQw LDExIEBAIHN0cnVjdCBsd3BfaW5mbyAqaXRlcmF0ZV9vdmVyX2x3cHMgKHB0aWRfdCBmaWx0ZXIs CiAgCQkJCQkJICAgICB2b2lkICopLCAKICAJCQkJICAgIHZvaWQgKmRhdGEpOwogIApAQCAtNTIy MCwxMSArNTU1OSwxNjIgQEAgaW5kZXggMjk4N2ZhYi4uMGU1ZjM1MyAxMDA2NDQKICAvKiBDcmVh dGUgYSBwcm90b3R5cGUgZ2VuZXJpYyBHTlUvTGludXggdGFyZ2V0LiAgVGhlIGNsaWVudCBjYW4K ICAgICBvdmVycmlkZSBpdCB3aXRoIGxvY2FsIG1ldGhvZHMuICAqLwogIHN0cnVjdCB0YXJnZXRf b3BzICogbGludXhfdGFyZ2V0ICh2b2lkKTsKK2RpZmYgLS1naXQgYS9nZGIvbWFpbi5jIGIvZ2Ri L21haW4uYworaW5kZXggNjlmMjI5OC4uNmIyNTMwYiAxMDA2NDQKKy0tLSBhL2dkYi9tYWluLmMK KysrKyBiL2dkYi9tYWluLmMKK0BAIC0zOSw2ICszOSw3IEBACisgCisgI2luY2x1ZGUgImludGVy cHMuaCIKKyAjaW5jbHVkZSAibWFpbi5oIgorKyNpbmNsdWRlICJweXRob24vcHl0aG9uLmgiCisg I2luY2x1ZGUgInNvdXJjZS5oIgorICNpbmNsdWRlICJjbGkvY2xpLWNtZHMuaCIKKyAjaW5jbHVk ZSAicHl0aG9uL3B5dGhvbi5oIgorQEAgLTI2MCw2ICsyNjEsOCBAQCBjYXB0dXJlZF9tYWluICh2 b2lkICpkYXRhKQorICAgY2hhciAqY2RhcmcgPSBOVUxMOworICAgY2hhciAqdHR5YXJnID0gTlVM TDsKKyAKKysgIGludCBweXRob25fc2NyaXB0ID0gMDsKKysKKyAgIC8qIFRoZXNlIGFyZSBzdGF0 aWMgc28gdGhhdCB3ZSBjYW4gdGFrZSB0aGVpciBhZGRyZXNzIGluIGFuCisgICAgICBpbml0aWFs aXplci4gICovCisgICBzdGF0aWMgaW50IHByaW50X2hlbHA7CitAQCAtNDQ4LDEwICs0NTEsMTQg QEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKKyAgICAgICB7ImFyZ3MiLCBub19hcmd1bWVu dCwgJnNldF9hcmdzLCAxfSwKKyAgICAgICB7ImwiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ2wn fSwKKyAgICAgICB7InJldHVybi1jaGlsZC1yZXN1bHQiLCBub19hcmd1bWVudCwgJnJldHVybl9j aGlsZF9yZXN1bHQsIDF9LAorKyNpZiBIQVZFX1BZVEhPTgorKyAgICAgIHsicHl0aG9uIiwgbm9f YXJndW1lbnQsIDAsICdQJ30sCisrICAgICAgeyJQIiwgbm9fYXJndW1lbnQsIDAsICdQJ30sCisr I2VuZGlmCisgICAgICAgezAsIG5vX2FyZ3VtZW50LCAwLCAwfQorICAgICB9OworIAorLSAgICB3 aGlsZSAoMSkKKysgICAgd2hpbGUgKCFweXRob25fc2NyaXB0KQorICAgICAgIHsKKyAJaW50IG9w dGlvbl9pbmRleDsKKyAKK0BAIC00NjksNiArNDc2LDkgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAq ZGF0YSkKKyAJICBjYXNlIDA6CisgCSAgICAvKiBMb25nIG9wdGlvbiB0aGF0IGp1c3Qgc2V0cyBh IGZsYWcuICAqLworIAkgICAgYnJlYWs7CisrCSAgY2FzZSAnUCc6CisrCSAgICBweXRob25fc2Ny aXB0ID0gMTsKKysJICAgIGJyZWFrOworIAkgIGNhc2UgT1BUX1NFOgorIAkgICAgc3ltYXJnID0g b3B0YXJnOworIAkgICAgZXhlY2FyZyA9IG9wdGFyZzsKK0BAIC02NjMsNyArNjczLDMxIEBAIGNh cHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCisgCisgICAvKiBOb3cgdGhhdCBnZGJfaW5pdCBoYXMg Y3JlYXRlZCB0aGUgaW5pdGlhbCBpbmZlcmlvciwgd2UncmUgaW4KKyAgICAgIHBvc2l0aW9uIHRv IHNldCBhcmdzIGZvciB0aGF0IGluZmVyaW9yLiAgKi8KKy0gIGlmIChzZXRfYXJncykKKysgIGlm IChweXRob25fc2NyaXB0KQorKyAgICB7CisrICAgICAgLyogVGhlIGZpcnN0IGFyZ3VtZW50IGlz IGEgcHl0aG9uIHNjcmlwdCB0byBldmFsdWF0ZSwgYW5kCisrCSBzdWJzZXF1ZW50IGFyZ3VtZW50 cyBhcmUgcGFzc2VkIHRvIHRoZSBzY3JpcHQgZm9yCisrCSBwcm9jZXNzaW5nIHRoZXJlLiAgKi8K KysgICAgICBpZiAob3B0aW5kID49IGFyZ2MpCisrCXsKKysJICBmcHJpbnRmX3VuZmlsdGVyZWQg KGdkYl9zdGRlcnIsCisrCQkJICAgICAgXygiJXM6IFB5dGhvbiBzY3JpcHQgZmlsZSBuYW1lIHJl cXVpcmVkXG4iKSwKKysJCQkgICAgICBhcmd2WzBdKTsKKysJICBleGl0ICgxKTsKKysJfQorKwor KyAgICAgIC8qIEZJWE1FOiBzaG91bGQgaGFuZGxlIGluZmVyaW9yIEkvTyBpbnRlbGxpZ2VudGx5 IGhlcmUuCisrCSBFLmcuLCBzaG91bGQgYmUgcG9zc2libGUgdG8gcnVuIGdkYiBpbiBwaXBlbGlu ZSBhbmQgaGF2ZQorKwkgUHl0aG9uIChhbmQgZ2RiKSBvdXRwdXQgZ28gdG8gc3RkZXJyIG9yIGZp bGU7IGFuZCBpZiBhCisrCSBwcm9tcHQgaXMgbmVlZGVkLCBvcGVuIHRoZSB0dHkuICAqLworKyAg ICAgIHF1aWV0ID0gMTsKKysgICAgICAvKiBGSVhNRTogc2hvdWxkIHJlYWQgLmdkYmluaXQgaWYs IGFuZCBvbmx5IGlmLCBhIHByb21wdCBpcworKwkgcmVxdWVzdGVkIGJ5IHRoZSBzY3JpcHQuICBU aG91Z2guLi4gbWF5YmUgdGhpcyBpcyBub3QKKysJIGlkZWFsPyAgKi8KKysgICAgICAvKiBGSVhN RTogbGlrZXdpc2UsIHJlYWRpbmcgaW4gaGlzdG9yeS4gICovCisrICAgICAgaW5oaWJpdF9nZGJp bml0ID0gMTsKKysgICAgfQorKyAgZWxzZSBpZiAoc2V0X2FyZ3MpCisgICAgIHsKKyAgICAgICAv KiBUaGUgcmVtYWluaW5nIG9wdGlvbnMgYXJlIHRoZSBjb21tYW5kLWxpbmUgb3B0aW9ucyBmb3Ig dGhlCisgCSBpbmZlcmlvci4gIFRoZSBmaXJzdCBvbmUgaXMgdGhlIHN5bS9leGVjIGZpbGUsIGFu ZCB0aGUgcmVzdAorQEAgLTkxMiw3ICs5NDYsOCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRh KQorIAorICAgLyogUmVhZCBpbiB0aGUgb2xkIGhpc3RvcnkgYWZ0ZXIgYWxsIHRoZSBjb21tYW5k IGZpbGVzIGhhdmUgYmVlbgorICAgICAgcmVhZC4gICovCistICBpbml0X2hpc3RvcnkgKCk7Cisr ICBpZiAoIXB5dGhvbl9zY3JpcHQpCisrICAgIGluaXRfaGlzdG9yeSAoKTsKKyAKKyAgIGlmIChi YXRjaF9mbGFnKQorICAgICB7CitAQCAtOTIzLDEzICs5NTgsMjUgQEAgY2FwdHVyZWRfbWFpbiAo dm9pZCAqZGF0YSkKKyAgIC8qIFNob3cgdGltZSBhbmQvb3Igc3BhY2UgdXNhZ2UuICAqLworICAg ZG9fY2xlYW51cHMgKHByZV9zdGF0X2NoYWluKTsKKyAKKy0gIC8qIE5PVEU6IGNhZ25leS8xOTk5 LTExLTA3OiBUaGVyZSBpcyBwcm9iYWJseSBubyByZWFzb24gZm9yIG5vdAorLSAgICAgbW92aW5n IHRoaXMgbG9vcCBhbmQgdGhlIGNvZGUgZm91bmQgaW4gY2FwdHVyZWRfY29tbWFuZF9sb29wKCkK Ky0gICAgIGludG8gdGhlIGNvbW1hbmRfbG9vcCgpIHByb3Blci4gIFRoZSBtYWluIHRoaW5nIGhv bGRpbmcgYmFjayB0aGF0CistICAgICBjaGFuZ2UgLSBTRVRfVE9QX0xFVkVMKCkgLSBoYXMgYmVl biBlbGltaW5hdGVkLiAgKi8KKy0gIHdoaWxlICgxKQorKyNpZiBIQVZFX1BZVEhPTgorKyAgaWYg KHB5dGhvbl9zY3JpcHQpCisgICAgIHsKKy0gICAgICBjYXRjaF9lcnJvcnMgKGNhcHR1cmVkX2Nv bW1hbmRfbG9vcCwgMCwgIiIsIFJFVFVSTl9NQVNLX0FMTCk7CisrICAgICAgZXh0ZXJuIGludCBw YWdpbmF0aW9uX2VuYWJsZWQ7CisrICAgICAgcGFnaW5hdGlvbl9lbmFibGVkID0gMDsKKysgICAg ICBydW5fcHl0aG9uX3NjcmlwdCAoYXJnYyAtIG9wdGluZCwgJmFyZ3Zbb3B0aW5kXSk7CisrICAg ICAgcmV0dXJuIDE7CisrICAgIH0KKysgIGVsc2UKKysjZW5kaWYKKysgICAgeworKyAgICAgIC8q IE5PVEU6IGNhZ25leS8xOTk5LTExLTA3OiBUaGVyZSBpcyBwcm9iYWJseSBubyByZWFzb24gZm9y IG5vdAorKwkgbW92aW5nIHRoaXMgbG9vcCBhbmQgdGhlIGNvZGUgZm91bmQgaW4gY2FwdHVyZWRf Y29tbWFuZF9sb29wKCkKKysJIGludG8gdGhlIGNvbW1hbmRfbG9vcCgpIHByb3Blci4gIFRoZSBt YWluIHRoaW5nIGhvbGRpbmcgYmFjayB0aGF0CisrCSBjaGFuZ2UgLSBTRVRfVE9QX0xFVkVMKCkg LSBoYXMgYmVlbiBlbGltaW5hdGVkLiAqLworKyAgICAgIHdoaWxlICgxKQorKwl7CisrCSAgY2F0 Y2hfZXJyb3JzIChjYXB0dXJlZF9jb21tYW5kX2xvb3AsIDAsICIiLCBSRVRVUk5fTUFTS19BTEwp OworKwl9CisgICAgIH0KKyAgIC8qIE5vIGV4aXQgLS0gZXhpdCBpcyB0aHJvdWdoIHF1aXRfY29t bWFuZC4gICovCisgfQorQEAgLTk2MSw3ICsxMDA4LDEyIEBAIHByaW50X2dkYl9oZWxwIChzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtKQorICAgZnB1dHNfdW5maWx0ZXJlZCAoXygiXAorIFRoaXMgaXMg dGhlIEdOVSBkZWJ1Z2dlci4gIFVzYWdlOlxuXG5cCisgICAgIGdkYiBbb3B0aW9uc10gW2V4ZWN1 dGFibGUtZmlsZSBbY29yZS1maWxlIG9yIHByb2Nlc3MtaWRdXVxuXAorLSAgICBnZGIgW29wdGlv bnNdIC0tYXJncyBleGVjdXRhYmxlLWZpbGUgW2luZmVyaW9yLWFyZ3VtZW50cyAuLi5dXG5cblwK KysgICAgZ2RiIFtvcHRpb25zXSAtLWFyZ3MgZXhlY3V0YWJsZS1maWxlIFtpbmZlcmlvci1hcmd1 bWVudHMgLi4uXVxuIiksIHN0cmVhbSk7CisrI2lmIEhBVkVfUFlUSE9OCisrICBmcHV0c191bmZp bHRlcmVkIChfKCJcCisrICAgIGdkYiBbb3B0aW9uc10gWy0tcHl0aG9ufC1QXSBzY3JpcHQtZmls ZSBbc2NyaXB0LWFyZ3VtZW50cyAuLi5dXG4iKSwgc3RyZWFtKTsKKysjZW5kaWYKKysgIGZwdXRz X3VuZmlsdGVyZWQgKF8oIlxuXAorIE9wdGlvbnM6XG5cblwKKyAiKSwgc3RyZWFtKTsKKyAgIGZw dXRzX3VuZmlsdGVyZWQgKF8oIlwKK0BAIC05OTksNyArMTA1MSwxMyBAQCBPcHRpb25zOlxuXG5c CisgICAtLW53CQkgICAgIERvIG5vdCB1c2UgYSB3aW5kb3cgaW50ZXJmYWNlLlxuXAorICAgLS1u eCAgICAgICAgICAgICAgIERvIG5vdCByZWFkICIpLCBzdHJlYW0pOworICAgZnB1dHNfdW5maWx0 ZXJlZCAoZ2RiaW5pdCwgc3RyZWFtKTsKKy0gIGZwdXRzX3VuZmlsdGVyZWQgKF8oIiBmaWxlLlxu XAorKyAgZnB1dHNfdW5maWx0ZXJlZCAoXygiIGZpbGUuXG4iKSwgc3RyZWFtKTsKKysjaWYgSEFW RV9QWVRIT04KKysgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKKysgIC0tcHl0aG9uLCAtUCAgICAg ICBGb2xsb3dpbmcgYXJndW1lbnQgaXMgUHl0aG9uIHNjcmlwdCBmaWxlOyByZW1haW5pbmdcblwK KysgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHMgYXJlIHBhc3NlZCB0byBzY3JpcHQuXG4i KSwgc3RyZWFtKTsKKysjZW5kaWYKKysgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKKyAgIC0tcXVp ZXQgICAgICAgICAgICBEbyBub3QgcHJpbnQgdmVyc2lvbiBudW1iZXIgb24gc3RhcnR1cC5cblwK KyAgIC0tcmVhZG5vdyAgICAgICAgICBGdWxseSByZWFkIHN5bWJvbCBmaWxlcyBvbiBmaXJzdCBh Y2Nlc3MuXG5cCisgIiksIHN0cmVhbSk7CiBkaWZmIC0tZ2l0IGEvZ2RiL21pL21pLWNtZC12YXIu YyBiL2dkYi9taS9taS1jbWQtdmFyLmMKLWluZGV4IDE0NzhjYjAuLmM0NDkyYTcgMTAwNjQ0Citp bmRleCA4ZTBmNDEwLi5lMjNmNDgyIDEwMDY0NAogLS0tIGEvZ2RiL21pL21pLWNtZC12YXIuYwog KysrIGIvZ2RiL21pL21pLWNtZC12YXIuYwotQEAgLTcwMiw3ICs3MDIsNiBAQCBtaV9jbWRfdmFy X3VwZGF0ZSAoY2hhciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQorQEAgLTcwNyw3 ICs3MDcsNiBAQCBtaV9jbWRfdmFyX3VwZGF0ZSAoY2hhciAqY29tbWFuZCwgY2hhciAqKmFyZ3Ys IGludCBhcmdjKQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKQEAgLTUyMzMsNyArNTcyMyw3IEBA IGluZGV4IDE0NzhjYjAuLmM0NDkyYTcgMTAwNjQ0CiAgCiAgICAgICAgdmFyb2JqX3VwZGF0ZV9v bmUgKHZhciwgcHJpbnRfdmFsdWVzLCAxIC8qIGV4cGxpY2l0ICovKTsKIGRpZmYgLS1naXQgYS9n ZGIvbWluc3ltcy5jIGIvZ2RiL21pbnN5bXMuYwotaW5kZXggZTg3MDk1NC4uMDQzNmI1NyAxMDA2 NDQKK2luZGV4IDc3MTU5YTUuLmVhOTRjMTMgMTAwNjQ0CiAtLS0gYS9nZGIvbWluc3ltcy5jCiAr KysgYi9nZGIvbWluc3ltcy5jCiBAQCAtMzM4LDggKzMzOCw5IEBAIGxvb2t1cF9taW5pbWFsX3N5 bWJvbF90ZXh0IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZikKQEAgLTUy ODQsNyArNTc3NCw3IEBAIGluZGV4IGU4NzA5NTQuLjA0MzZiNTcgMTAwNjQ0CiAgCQkgICAgICAg U1lNQk9MX0xJTktBR0VfTkFNRSAodHN5bWJvbCkpID09IDApCiAgCSAgcmV0dXJuIFNZTUJPTF9W QUxVRV9BRERSRVNTIChtc3ltYm9sKTsKIGRpZmYgLS1naXQgYS9nZGIvcC12YWxwcmludC5jIGIv Z2RiL3AtdmFscHJpbnQuYwotaW5kZXggYmQwMWZlYS4uNzdiMTAzMyAxMDA2NDQKK2luZGV4IDUz OTBkZDkuLmMwYTBiMmEgMTAwNjQ0CiAtLS0gYS9nZGIvcC12YWxwcmludC5jCiArKysgYi9nZGIv cC12YWxwcmludC5jCiBAQCAtMzgsNiArMzgsNyBAQApAQCAtNTMyNCwxOSArNTgxNCwxOCBAQCBp bmRleCBiZDAxZmVhLi43N2IxMDMzIDEwMDY0NAogICAgc3dpdGNoIChUWVBFX0NPREUgKHR5cGUp KQogICAgICB7CiAgICAgIGNhc2UgVFlQRV9DT0RFX0FSUkFZOgotQEAgLTEyNSw4ICsxNDUsOSBA QCBwYXNjYWxfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZh bGFkZHIsCitAQCAtMTI1LDggKzE0NSw4IEBAIHBhc2NhbF92YWxfcHJpbnQgKHN0cnVjdCB0eXBl ICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKICAJCXsKICAJCSAgaSA9IDA7CiAgCQl9 Ci0tCSAgICAgIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAodHlwZSwgdmFsYWRkciArIGVtYmVk ZGVkX29mZnNldCwgYWRkcmVzcywgc3RyZWFtLAotLQkJCQkJcmVjdXJzZSwgb3JpZ2luYWxfdmFs dWUsIG9wdGlvbnMsIGkpOworLQkgICAgICB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHR5cGUs IHZhbGFkZHIgKyBlbWJlZGRlZF9vZmZzZXQsCistCQkJCQlhZGRyZXNzLCBzdHJlYW0sIHJlY3Vy c2UsCiArCSAgICAgIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc2F2ZWRfdHlwZSwgdmFsYWRk ciArIGVtYmVkZGVkX29mZnNldCwKICsJCQkJCXNhdmVkX2FkZHJlc3MsIHN0cmVhbSwgcmVjdXJz ZSwKLSsJCQkJCW9yaWdpbmFsX3ZhbHVlLCBvcHRpb25zLCBpKTsKKyAJCQkJCW9yaWdpbmFsX3Zh bHVlLCBvcHRpb25zLCBpKTsKICAJICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAifSIp OwogIAkgICAgfQotIAkgIGJyZWFrOwotQEAgLTE2NCw2ICsxODUsNyBAQCBwYXNjYWxfdmFsX3By aW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCitAQCAtMTY1 LDYgKzE4NSw3IEBAIHBhc2NhbF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwKICAJICAvKiBUcnkgdG8gcHJpbnQgd2hhdCBmdW5jdGlvbiBpdCBw b2ludHMgdG8uICAqLwogIAkgIHByaW50X2FkZHJlc3NfZGVtYW5nbGUgKGdkYmFyY2gsIGFkZHIs IHN0cmVhbSwgZGVtYW5nbGUpOwogIAkgIC8qIFJldHVybiB2YWx1ZSBpcyBpcnJlbGV2YW50IGV4 Y2VwdCBmb3Igc3RyaW5nIHBvaW50ZXJzLiAgKi8KQEAgLTUzNDQsNyArNTgzMyw3IEBAIGluZGV4 IGJkMDFmZWEuLjc3YjEwMzMgMTAwNjQ0CiAgCSAgcmV0dXJuICgwKTsKICAJfQogIAotQEAgLTI1 NCw2ICsyNzYsNyBAQCBwYXNjYWxfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3Qg Z2RiX2J5dGUgKnZhbGFkZHIsCitAQCAtMjU2LDYgKzI3Nyw3IEBAIHBhc2NhbF92YWxfcHJpbnQg KHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKICAgICAgICAvKiBS ZXR1cm4gbnVtYmVyIG9mIGNoYXJhY3RlcnMgcHJpbnRlZCwgaW5jbHVkaW5nIHRoZSB0ZXJtaW5h dGluZwogIAkgJ1wwJyBpZiB3ZSByZWFjaGVkIHRoZSBlbmQuICB2YWxfcHJpbnRfc3RyaW5nIHRh a2VzIGNhcmUgaW5jbHVkaW5nCiAgCSB0aGUgdGVybWluYXRpbmcgJ1wwJyBpZiBuZWNlc3Nhcnku ICAqLwpAQCAtNTM1Miw4ICs1ODQxLDggQEAgaW5kZXggYmQwMWZlYS4uNzdiMTAzMyAxMDA2NDQK ICAgICAgICByZXR1cm4gaTsKICAKICAgICAgICBicmVhazsKLUBAIC01NTYsNiArNTc5LDcgQEAg cGFzY2FsX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxh ZGRyLAotICAgICAgIGVycm9yIChfKCJJbnZhbGlkIHBhc2NhbCB0eXBlIGNvZGUgJWQgaW4gc3lt Ym9sIHRhYmxlLiIpLCBUWVBFX0NPREUgKHR5cGUpKTsKK0BAIC01NzIsNiArNTk0LDcgQEAgcGFz Y2FsX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRy LAorIAkgICAgIFRZUEVfQ09ERSAodHlwZSkpOwogICAgICB9CiAgICBnZGJfZmx1c2ggKHN0cmVh bSk7CiArICBkb19jbGVhbnVwcyAoYmFja190byk7CkBAIC01MzYxLDcgKzU4NTAsNyBAQCBpbmRl eCBiZDAxZmVhLi43N2IxMDMzIDEwMDY0NAogIH0KICAMCiBkaWZmIC0tZ2l0IGEvZ2RiL3BhcnNl LmMgYi9nZGIvcGFyc2UuYwotaW5kZXggZGFlZTYzMy4uMWY5YTBkMSAxMDA2NDQKK2luZGV4IDRm MGMxMTEuLjI0M2E5NGEgMTAwNjQ0CiAtLS0gYS9nZGIvcGFyc2UuYwogKysrIGIvZ2RiL3BhcnNl LmMKIEBAIC00ODcsOSArNDg3LDIxIEBAIHdyaXRlX2V4cF9tc3ltYm9sIChzdHJ1Y3QgbWluaW1h bF9zeW1ib2wgKm1zeW1ib2wpCkBAIC01NDEwLDcgKzU4OTksNyBAQCBpbmRleCBkYWVlNjMzLi4x ZjlhMGQxIDEwMDY0NAogICAgICBkZWZhdWx0OgogICAgICAgIHdyaXRlX2V4cF9lbHRfdHlwZSAo b2JqZmlsZV90eXBlIChvYmpmaWxlKS0+bm9kZWJ1Z191bmtub3duX3N5bWJvbCk7CiAgICAgICAg YnJlYWs7Ci1AQCAtMTQ4MSw2ICsxNTAyLDcgQEAgcGFyc2VyX2ZwcmludGYgKEZJTEUgKngsIGNv bnN0IGNoYXIgKnksIC4uLikKK0BAIC0xNDgyLDYgKzE1MDMsNyBAQCBwYXJzZXJfZnByaW50ZiAo RklMRSAqeCwgY29uc3QgY2hhciAqeSwgLi4uKQogIAogIGludAogIG9wZXJhdG9yX2NoZWNrX3N0 YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLApAQCAtNTQxOCw3ICs1OTA3 LDcgQEAgaW5kZXggZGFlZTYzMy4uMWY5YTBkMSAxMDA2NDQKICAJCQkgaW50ICgqb2JqZmlsZV9m dW5jKSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgCQkJCQkgICAgICB2b2lkICpkYXRhKSwK ICAJCQkgdm9pZCAqZGF0YSkKLUBAIC0xNTIyLDcgKzE1NDQsNyBAQCBvcGVyYXRvcl9jaGVja19z dGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50IHBvcywKK0BAIC0xNTIzLDcgKzE1 NDUsNyBAQCBvcGVyYXRvcl9jaGVja19zdGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwg aW50IHBvcywKICAJICAgIHN0cnVjdCB0eXBlICp0eXBlID0gZWx0c1twb3MgKyAyICsgYXJnXS50 eXBlOwogIAkgICAgc3RydWN0IG9iamZpbGUgKm9iamZpbGUgPSBUWVBFX09CSkZJTEUgKHR5cGUp OwogIApAQCAtNTQyNyw3ICs1OTE2LDcgQEAgaW5kZXggZGFlZTYzMy4uMWY5YTBkMSAxMDA2NDQK ICAJICAgICAgcmV0dXJuIDE7CiAgCSAgfQogICAgICAgIH0KLUBAIC0xNTQwLDcgKzE1NjIsOCBA QCBvcGVyYXRvcl9jaGVja19zdGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50IHBv cywKK0BAIC0xNTQxLDcgKzE1NjMsOCBAQCBvcGVyYXRvcl9jaGVja19zdGFuZGFyZCAoc3RydWN0 IGV4cHJlc3Npb24gKmV4cCwgaW50IHBvcywKICAKICAJLyogQ2hlY2sgb2JqZmlsZSB3aGVyZSB0 aGUgdmFyaWFibGUgaXRzZWxmIGlzIHBsYWNlZC4KICAJICAgU1lNQk9MX09CSl9TRUNUSU9OIChz eW1ib2wpIG1heSBiZSBOVUxMLiAgKi8KQEAgLTU0MzcsNyArNTkyNiw3IEBAIGluZGV4IGRhZWU2 MzMuLjFmOWEwZDEgMTAwNjQ0CiAgCSAgcmV0dXJuIDE7CiAgCiAgCS8qIENoZWNrIG9iamZpbGUg d2hlcmUgaXMgcGxhY2VkIHRoZSBjb2RlIHRvdWNoaW5nIHRoZSB2YXJpYWJsZS4gICovCi1AQCAt MTU1MywyNCArMTU3NiwyNyBAQCBvcGVyYXRvcl9jaGVja19zdGFuZGFyZCAoc3RydWN0IGV4cHJl c3Npb24gKmV4cCwgaW50IHBvcywKK0BAIC0xNTU0LDI0ICsxNTc3LDI3IEBAIG9wZXJhdG9yX2No ZWNrX3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLAogIAogICAgLyog SW52b2tlIGNhbGxiYWNrcyBmb3IgVFlQRSBhbmQgT0JKRklMRSBpZiB0aGV5IHdlcmUgc2V0IGFz IG5vbi1OVUxMLiAgKi8KICAKQEAgLTU0NzMsNyArNTk2Miw3IEBAIGluZGV4IGRhZWU2MzMuLjFm OWEwZDEgMTAwNjQ0CiAgCSAgICAgaW50ICgqb2JqZmlsZV9mdW5jKSAoc3RydWN0IG9iamZpbGUg Km9iamZpbGUsIHZvaWQgKmRhdGEpLAogIAkgICAgIHZvaWQgKmRhdGEpCiAgewotQEAgLTE1ODUs NyArMTYxMSw5IEBAIGV4cF9pdGVyYXRlIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorQEAgLTE1 ODYsNyArMTYxMiw5IEBAIGV4cF9pdGVyYXRlIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAog ICAgICAgIHBvcyA9IGVuZHBvcyAtIG9wbGVuOwogICAgICAgIGlmIChleHAtPmxhbmd1YWdlX2Rl Zm4tPmxhX2V4cF9kZXNjLT5vcGVyYXRvcl9jaGVjayAoZXhwLCBwb3MsCkBAIC01NDg0LDcgKzU5 NzMsNyBAQCBpbmRleCBkYWVlNjMzLi4xZjlhMGQxIDEwMDY0NAogIAlyZXR1cm4gMTsKICAKICAg ICAgICBlbmRwb3MgPSBwb3M7Ci1AQCAtMTYxNiw3ICsxNjQ0LDI2IEBAIGV4cF91c2VzX29iamZp bGUgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorQEAg LTE2MTcsNyArMTY0NSwyNiBAQCBleHBfdXNlc19vYmpmaWxlIChzdHJ1Y3QgZXhwcmVzc2lvbiAq ZXhwLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKICB7CiAgICBnZGJfYXNzZXJ0IChvYmpmaWxl LT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlX2JhY2tsaW5rID09IE5VTEwpOwogIApAQCAtNTY4NCwx MCArNjE3MywxMCBAQCBpbmRleCBjYTczMTJiLi41ODY5NmQzIDEwMDY0NAogIAogICAgcmV0dXJu IHJldDsKIGRpZmYgLS1naXQgYS9nZGIvcHJpbnRjbWQuYyBiL2dkYi9wcmludGNtZC5jCi1pbmRl eCBlYjNjM2Y5Li5lZDhkNjdhIDEwMDY0NAoraW5kZXggYjdkM2FkZS4uYTZmYTg2YSAxMDA2NDQK IC0tLSBhL2dkYi9wcmludGNtZC5jCiArKysgYi9nZGIvcHJpbnRjbWQuYwotQEAgLTk3MSw2ICs5 NzEsMTEgQEAgcHJpbnRfY29tbWFuZF8xIChjaGFyICpleHAsIGludCBpbnNwZWN0LCBpbnQgdm9p ZHByaW50KQorQEAgLTk3Myw2ICs5NzMsMTEgQEAgcHJpbnRfY29tbWFuZF8xIChjaGFyICpleHAs IGludCBpbnNwZWN0LCBpbnQgdm9pZHByaW50KQogICAgZWxzZQogICAgICB2YWwgPSBhY2Nlc3Nf dmFsdWVfaGlzdG9yeSAoMCk7CiAgCkBAIC01Njk5LDcgKzYxODgsNyBAQCBpbmRleCBlYjNjM2Y5 Li5lZDhkNjdhIDEwMDY0NAogICAgaWYgKHZvaWRwcmludCB8fCAodmFsICYmIHZhbHVlX3R5cGUg KHZhbCkgJiYKICAJCSAgICBUWVBFX0NPREUgKHZhbHVlX3R5cGUgKHZhbCkpICE9IFRZUEVfQ09E RV9WT0lEKSkKICAgICAgewotQEAgLTE0NzEsNiArMTQ3NiwyMiBAQCB4X2NvbW1hbmQgKGNoYXIg KmV4cCwgaW50IGZyb21fdHR5KQorQEAgLTE0NzQsNiArMTQ3OSwyMiBAQCB4X2NvbW1hbmQgKGNo YXIgKmV4cCwgaW50IGZyb21fdHR5KQogIAlzZXRfaW50ZXJuYWx2YXIgKGxvb2t1cF9pbnRlcm5h bHZhciAoIl9fIiksIGxhc3RfZXhhbWluZV92YWx1ZSk7CiAgICAgIH0KICB9CkBAIC01NzIyLDEz ICs2MjExLDExNjMgQEAgaW5kZXggZWIzYzNmOS4uZWQ4ZDY3YSAxMDA2NDQKICAMCiAgCiAgLyog QWRkIGFuIGV4cHJlc3Npb24gdG8gdGhlIGF1dG8tZGlzcGxheSBjaGFpbi4KLUBAIC0yODY5LDQg KzI4OTAsNiBAQCBTaG93IHByaW50aW5nIG9mIHNvdXJjZSBmaWxlbmFtZSBhbmQgbGluZSBudW1i ZXIgd2l0aCA8c3ltYm9sPi4iKSwgTlVMTCwKK0BAIC0yODc0LDQgKzI4OTUsNiBAQCBTaG93IHBy aW50aW5nIG9mIHNvdXJjZSBmaWxlbmFtZSBhbmQgbGluZSBudW1iZXIgd2l0aCA8c3ltYm9sPi4i KSwgTlVMTCwKICAgIGFkZF9jb20gKCJldmFsIiwgbm9fY2xhc3MsIGV2YWxfY29tbWFuZCwgXygi XAogIENvbnZlcnQgXCJwcmludGYgZm9ybWF0IHN0cmluZ1wiLCBhcmcxLCBhcmcyLCBhcmczLCAu Li4sIGFyZ24gdG9cblwKICBhIGNvbW1hbmQgbGluZSwgYW5kIGNhbGwgaXQuIikpOwogKwogKyAg b2JzZXJ2ZXJfYXR0YWNoX21hcmtfdXNlZCAocHJpbnRfdHlwZXNfbWFya191c2VkKTsKICB9Citk aWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9saWIvZ2RiL0ZyYW1lSXRlcmF0b3IucHkgYi9nZGIvcHl0 aG9uL2xpYi9nZGIvRnJhbWVJdGVyYXRvci5weQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4 IDAwMDAwMDAuLjU2NTQ1NDYKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi9weXRob24vbGliL2dk Yi9GcmFtZUl0ZXJhdG9yLnB5CitAQCAtMCwwICsxLDMzIEBACisrIyBJdGVyYXRvciBvdmVyIGZy YW1lcy4KKysKKysjIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0u ICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrY2xhc3Mg RnJhbWVJdGVyYXRvcjoKKysgICAgIiIiQW4gaXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBvdmVyIGZy YW1lcy4iIiIKKysKKysgICAgZGVmIF9faW5pdF9fIChzZWxmLCBmcmFtZSk6CisrICAgICAgICAi SW5pdGlhbGl6ZSBhIEZyYW1lSXRlcmF0b3IuICBGUkFNRSBpcyB0aGUgc3RhcnRpbmcgZnJhbWUu IgorKyAgICAgICAgc2VsZi5mcmFtZSA9IGZyYW1lCisrCisrICAgIGRlZiBfX2l0ZXJfXyAoc2Vs Zik6CisrICAgICAgICByZXR1cm4gc2VsZgorKworKyAgICBkZWYgbmV4dCAoc2VsZik6CisrICAg ICAgICByZXN1bHQgPSBzZWxmLmZyYW1lCisrICAgICAgICBpZiByZXN1bHQgaXMgTm9uZToKKysg ICAgICAgICAgICByYWlzZSBTdG9wSXRlcmF0aW9uCisrICAgICAgICBzZWxmLmZyYW1lID0gcmVz dWx0Lm9sZGVyICgpCisrICAgICAgICByZXR1cm4gcmVzdWx0CitkaWZmIC0tZ2l0IGEvZ2RiL3B5 dGhvbi9saWIvZ2RiL0ZyYW1lV3JhcHBlci5weSBiL2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdy YXBwZXIucHkKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5iNzkwYTU0Cist LS0gL2Rldi9udWxsCisrKysgYi9nZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVyLnB5CitA QCAtMCwwICsxLDExMiBAQAorKyMgV3JhcHBlciBBUEkgZm9yIGZyYW1lcy4KKysKKysjIENvcHly aWdodCAoQykgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysj IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisr IyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisraW1wb3J0IGdkYgorKworKyMgRklYTUU6 IGFyZ3VhYmx5IGFsbCB0aGlzIHNob3VsZCBiZSBvbiBGcmFtZSBzb21laG93LgorK2NsYXNzIEZy YW1lV3JhcHBlcjoKKysgICAgZGVmIF9faW5pdF9fIChzZWxmLCBmcmFtZSk6CisrICAgICAgICBz ZWxmLmZyYW1lID0gZnJhbWU7CisrCisrICAgIGRlZiB3cml0ZV9zeW1ib2wgKHNlbGYsIHN0cmVh bSwgc3ltLCBibG9jayk6CisrICAgICAgICBpZiBsZW4gKHN5bS5saW5rYWdlX25hbWUpOgorKyAg ICAgICAgICAgIG5zeW0sIGlzX2ZpZWxkX29mX3RoaXMgPSBnZGIubG9va3VwX3N5bWJvbCAoc3lt LmxpbmthZ2VfbmFtZSwgYmxvY2spCisrICAgICAgICAgICAgaWYgbnN5bS5hZGRyX2NsYXNzICE9 IGdkYi5TWU1CT0xfTE9DX1JFR0lTVEVSOgorKyAgICAgICAgICAgICAgICBzeW0gPSBuc3ltCisr CisrICAgICAgICBzdHJlYW0ud3JpdGUgKHN5bS5wcmludF9uYW1lICsgIj0iKQorKyAgICAgICAg dHJ5OgorKyAgICAgICAgICAgIHZhbCA9IHNlbGYucmVhZF92YXIgKHN5bSkKKysgICAgICAgICAg ICBpZiB2YWwgIT0gTm9uZToKKysgICAgICAgICAgICAgICAgdmFsID0gc3RyICh2YWwpCisrICAg ICAgICAjIEZJWE1FOiB3b3VsZCBiZSBuaWNlIHRvIGhhdmUgYSBtb3JlIHByZWNpc2UgZXhjZXB0 aW9uIGhlcmUuCisrICAgICAgICBleGNlcHQgUnVudGltZUVycm9yLCB0ZXh0OgorKyAgICAgICAg ICAgIHZhbCA9IHRleHQKKysgICAgICAgIGlmIHZhbCA9PSBOb25lOgorKyAgICAgICAgICAgIHN0 cmVhbS53cml0ZSAoIj8/PyIpCisrICAgICAgICBlbHNlOgorKyAgICAgICAgICAgIHN0cmVhbS53 cml0ZSAoc3RyICh2YWwpKQorKworKyAgICBkZWYgcHJpbnRfZnJhbWVfbG9jYWxzIChzZWxmLCBz dHJlYW0sIGZ1bmMpOgorKyAgICAgICAgaWYgbm90IGZ1bmM6CisrICAgICAgICAgICAgcmV0dXJu CisrCisrICAgICAgICBmaXJzdCA9IFRydWUKKysgICAgICAgIGJsb2NrID0gZnVuYy52YWx1ZQor KworKyAgICAgICAgZm9yIHN5bSBpbiBibG9jazoKKysgICAgICAgICAgICBpZiBzeW0uaXNfYXJn dW1lbnQ6CisrICAgICAgICAgICAgICAgIGNvbnRpbnVlOworKworKyAgICAgICAgICAgIHNlbGYu d3JpdGVfc3ltYm9sIChzdHJlYW0sIHN5bSwgYmxvY2spCisrICAgICAgICAgICAgc3RyZWFtLndy aXRlICgnXG4nKQorKworKyAgICBkZWYgcHJpbnRfZnJhbWVfYXJncyAoc2VsZiwgc3RyZWFtLCBm dW5jKToKKysgICAgICAgIGlmIG5vdCBmdW5jOgorKyAgICAgICAgICAgIHJldHVybgorKworKyAg ICAgICAgZmlyc3QgPSBUcnVlCisrICAgICAgICBibG9jayA9IGZ1bmMudmFsdWUKKysKKysgICAg ICAgIGZvciBzeW0gaW4gYmxvY2s6CisrICAgICAgICAgICAgaWYgbm90IHN5bS5pc19hcmd1bWVu dDoKKysgICAgICAgICAgICAgICAgY29udGludWU7CisrCisrICAgICAgICAgICAgaWYgbm90IGZp cnN0OgorKyAgICAgICAgICAgICAgICBzdHJlYW0ud3JpdGUgKCIsICIpCisrCisrICAgICAgICAg ICAgc2VsZi53cml0ZV9zeW1ib2wgKHN0cmVhbSwgc3ltLCBibG9jaykKKysgICAgICAgICAgICBm aXJzdCA9IEZhbHNlCisrCisrICAgICMgRklYTUU6IHRoaXMgc2hvdWxkIHByb2JhYmx5IGp1c3Qg YmUgYSBtZXRob2Qgb24gZ2RiLkZyYW1lLgorKyAgICAjIEJ1dCB0aGVuIHdlIG5lZWQgc3RyZWFt IHdyYXBwZXJzLgorKyAgICBkZWYgZGVzY3JpYmUgKHNlbGYsIHN0cmVhbSwgZnVsbCk6CisrICAg ICAgICBpZiBzZWxmLnR5cGUgKCkgPT0gZ2RiLkRVTU1ZX0ZSQU1FOgorKyAgICAgICAgICAgIHN0 cmVhbS53cml0ZSAoIiA8ZnVuY3Rpb24gY2FsbGVkIGZyb20gZ2RiPlxuIikKKysgICAgICAgIGVs aWYgc2VsZi50eXBlICgpID09IGdkYi5TSUdUUkFNUF9GUkFNRToKKysgICAgICAgICAgICBzdHJl YW0ud3JpdGUgKCIgPHNpZ25hbCBoYW5kbGVyIGNhbGxlZD5cbiIpCisrICAgICAgICBlbHNlOgor KyAgICAgICAgICAgIHNhbCA9IHNlbGYuZmluZF9zYWwgKCkKKysgICAgICAgICAgICBwYyA9IHNl bGYucGMgKCkKKysgICAgICAgICAgICBuYW1lID0gc2VsZi5uYW1lICgpCisrICAgICAgICAgICAg aWYgbm90IG5hbWU6CisrICAgICAgICAgICAgICAgIG5hbWUgPSAiPz8iCisrICAgICAgICAgICAg aWYgcGMgIT0gc2FsLnBjIG9yIG5vdCBzYWwuc3ltdGFiOgorKyAgICAgICAgICAgICAgICBzdHJl YW0ud3JpdGUgKCIgMHglMDh4IGluIiAlIHBjKQorKyAgICAgICAgICAgIHN0cmVhbS53cml0ZSAo IiAiICsgbmFtZSArICIgKCIpCisrCisrICAgICAgICAgICAgZnVuYyA9IHNlbGYuZnVuY3Rpb24g KCkKKysgICAgICAgICAgICBzZWxmLnByaW50X2ZyYW1lX2FyZ3MgKHN0cmVhbSwgZnVuYykKKysK KysgICAgICAgICAgICBzdHJlYW0ud3JpdGUgKCIpIikKKysKKysgICAgICAgICAgICBpZiBzYWwu c3ltdGFiIGFuZCBzYWwuc3ltdGFiLmZpbGVuYW1lOgorKyAgICAgICAgICAgICAgICBzdHJlYW0u d3JpdGUgKCIgYXQgIiArIHNhbC5zeW10YWIuZmlsZW5hbWUpCisrICAgICAgICAgICAgICAgIHN0 cmVhbS53cml0ZSAoIjoiICsgc3RyIChzYWwubGluZSkpCisrCisrICAgICAgICAgICAgaWYgbm90 IHNlbGYubmFtZSAoKSBvciAobm90IHNhbC5zeW10YWIgb3Igbm90IHNhbC5zeW10YWIuZmlsZW5h bWUpOgorKyAgICAgICAgICAgICAgICBsaWIgPSBnZGIuc29saWJfYWRkcmVzcyAocGMpCisrICAg ICAgICAgICAgICAgIGlmIGxpYjoKKysgICAgICAgICAgICAgICAgICAgIHN0cmVhbS53cml0ZSAo IiBmcm9tICIgKyBsaWIpCisrCisrICAgICAgICAgICAgc3RyZWFtLndyaXRlICgiXG4iKQorKwor KyAgICAgICAgICAgIGlmIGZ1bGw6CisrICAgICAgICAgICAgICAgIHNlbGYucHJpbnRfZnJhbWVf bG9jYWxzIChzdHJlYW0sIGZ1bmMpCisrCisrICAgIGRlZiBfX2dldGF0dHJfXyAoc2VsZiwgbmFt ZSk6CisrICAgICAgICByZXR1cm4gZ2V0YXR0ciAoc2VsZi5mcmFtZSwgbmFtZSkKK2RpZmYgLS1n aXQgYS9nZGIvcHl0aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5IGIvZ2RiL3B5dGhvbi9saWIvZ2Ri L2JhY2t0cmFjZS5weQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLjJiYWFi NWYKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi9weXRob24vbGliL2dkYi9iYWNrdHJhY2UucHkK K0BAIC0wLDAgKzEsNDIgQEAKKysjIEZpbHRlcmluZyBiYWNrdHJhY2UuCisrCisrIyBDb3B5cmln aHQgKEMpIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgorKworK2ltcG9ydCBnZGIKKytpbXBvcnQgaXRlcnRvb2xzCisr CisrIyBPdXIgb25seSBleHBvcnRzLgorK19fYWxsX18gPSBbJ3B1c2hfZnJhbWVfZmlsdGVyJywg J2NyZWF0ZV9mcmFtZV9maWx0ZXInXQorKworK2ZyYW1lX2ZpbHRlciA9IE5vbmUKKysKKytkZWYg cHVzaF9mcmFtZV9maWx0ZXIgKGNvbnN0cnVjdG9yKToKKysgICAgIiIiUmVnaXN0ZXIgYSBuZXcg YmFja3RyYWNlIGZpbHRlciBjbGFzcyB3aXRoIHRoZSAnYmFja3RyYWNlJyBjb21tYW5kLgorK1Ro ZSBmaWx0ZXIgd2lsbCBiZSBwYXNzZWQgYW4gaXRlcmF0b3IgYXMgYW4gYXJndW1lbnQuICBUaGUg aXRlcmF0b3IKKyt3aWxsIHJldHVybiBnZGIuRnJhbWUtbGlrZSBvYmplY3RzLiAgVGhlIGZpbHRl ciBzaG91bGQgaW4gdHVybiBhY3QgYXMKKythbiBpdGVyYXRvciByZXR1cm5pbmcgc3VjaCBvYmpl Y3RzLiIiIgorKyAgICBnbG9iYWwgZnJhbWVfZmlsdGVyCisrICAgIGlmIGZyYW1lX2ZpbHRlciA9 PSBOb25lOgorKyAgICAgICAgZnJhbWVfZmlsdGVyID0gY29uc3RydWN0b3IKKysgICAgZWxzZToK KysgICAgICAgIGZyYW1lX2ZpbHRlciA9IGxhbWJkYSBpdGVyYXRvcjogY29uc3RydWN0b3IgKGZy YW1lX2ZpbHRlciAoaXRlcmF0b3IpKQorKworK2RlZiBjcmVhdGVfZnJhbWVfZmlsdGVyIChpdGVy KToKKysgICAgZ2xvYmFsIGZyYW1lX2ZpbHRlcgorKyAgICBpZiBmcmFtZV9maWx0ZXIgaXMgTm9u ZToKKysgICAgICAgIHJldHVybiBpdGVyCisrICAgIHJldHVybiBmcmFtZV9maWx0ZXIgKGl0ZXIp CisrCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvYWxpYXMucHkgYi9n ZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9hbGlhcy5weQorbmV3IGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IDAwMDAwMDAuLjk2YjY2MTgKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi9weXRob24v bGliL2dkYi9jb21tYW5kL2FsaWFzLnB5CitAQCAtMCwwICsxLDU5IEBACisrIyBBbGlhcyBjb21t YW5kLgorKworKyMgQ29weXJpZ2h0IChDKSAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytpbXBvcnQgZ2RiCisr CisrY2xhc3MgQWxpYXNJbXBsZW1lbnRhdGlvbiAoZ2RiLkNvbW1hbmQpOgorKyAgICBkZWYgX19p bml0X18gKHNlbGYsIG5hbWUsIHJlYWwsIGRvYyk6CisrICAgICAgICAjIEhhdmUgdG8gc2V0IF9f ZG9jX18gYmVmb3JlIHRoZSBzdXBlciBpbml0IGNhbGwuCisrICAgICAgICAjIEl0IHdvdWxkIGJl IG5pY2UgaWYgZ2RiJ3MgaGVscCBsb29rZWQgdXAgX19kb2NfXyBkeW5hbWljYWxseS4KKysgICAg ICAgIHNlbGYuX19kb2NfXyA9IGRvYworKyAgICAgICAgIyBOb3RlOiBubyBnb29kIHdheSB0byBj b21wbGV0ZSA6KAorKyAgICAgICAgc3VwZXIgKEFsaWFzSW1wbGVtZW50YXRpb24sIHNlbGYpLl9f aW5pdF9fIChuYW1lLCBnZGIuQ09NTUFORF9OT05FKQorKyAgICAgICAgc2VsZi5yZWFsID0gcmVh bAorKworKyAgICBkZWYgaW52b2tlKHNlbGYsIGFyZywgZnJvbV90dHkpOgorKyAgICAgICAgZ2Ri LmV4ZWN1dGUgKHNlbGYucmVhbCArICcgJyArIGFyZywgZnJvbV90dHkpCisrCisrY2xhc3MgQWxp YXNDb21tYW5kIChnZGIuQ29tbWFuZCk6CisrICAgICIiIkFsaWFzIG9uZSBjb21tYW5kIHRvIGFu b3RoZXIuCisrSW4gdGhlIHNpbXBsZXN0IGZvcm0sIHRoZSBmaXJzdCB3b3JkIGlzIHRoZSBuYW1l IG9mIHRoZSBhbGlhcywgYW5kCisrdGhlIHJlbWFpbmluZyB3b3JkcyBhcmUgdGhlIHRoZSBleHBh bnNpb24uCisrQW4gJz0nIGJ5IGl0c2VsZiBjYW4gYmUgdXNlZCB0byBkZWZpbmUgYSBtdWx0aS13 b3JkIGFsaWFzOyB3b3JkcworK2JlZm9yZSB0aGUgJz0nIGFyZSB0aGUgbmFtZSBvZiB0aGUgbmV3 IGNvbW1hbmQuIiIiCisrCisrICAgIGRlZiBfX2luaXRfXyAoc2VsZik6CisrICAgICAgICAjIENv bXBsZXRpb24gaXMgbm90IHF1aXRlIHJpZ2h0IGhlcmUuCisrICAgICAgICBzdXBlciAoQWxpYXND b21tYW5kLCBzZWxmKS5fX2luaXRfXyAoImFsaWFzIiwgZ2RiLkNPTU1BTkRfTk9ORSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZGIuQ09NUExFVEVfQ09N TUFORCkKKysKKysgICAgZGVmIGludm9rZSAoc2VsZiwgYXJnLCBmcm9tX3R0eSk6CisrICAgICAg ICBzZWxmLmRvbnRfcmVwZWF0ICgpCisrICAgICAgICAjIFdpdGhvdXQgc29tZSBmb3JtIG9mIHF1 b3Rpbmcgd2UgY2FuJ3QgYWxpYXMgYSBtdWx0aS13b3JkCisrICAgICAgICAjIGNvbW1hbmQgdG8g YW5vdGhlciBjb21tYW5kLgorKyAgICAgICAgYXJncyA9IGFyZy5zcGxpdCgpCisrICAgICAgICB0 cnk6CisrICAgICAgICAgICAgc3RhcnQgPSBhcmdzLmluZGV4ICgnPScpCisrICAgICAgICAgICAg ZW5kID0gc3RhcnQgKyAxCisrICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKysgICAgICAgICAg ICBzdGFydCA9IDEKKysgICAgICAgICAgICBlbmQgPSAxCisrICAgICAgICB0YXJnZXQgPSAiICIu am9pbihhcmdzW2VuZDpdKQorKyAgICAgICAgQWxpYXNJbXBsZW1lbnRhdGlvbiAoIiAiLmpvaW4g KGFyZ3NbMDpzdGFydF0pLCB0YXJnZXQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi VGhpcyBjb21tYW5kIGlzIGFuIGFsaWFzIGZvciAnJXMnLiIgJSB0YXJnZXQpCisrCisrQWxpYXND b21tYW5kKCkKK2RpZmYgLS1naXQgYS9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJh Y2UucHkgYi9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkKK25ldyBmaWxl IG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5lYzlhNTI3CistLS0gL2Rldi9udWxsCisrKysg Yi9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkKK0BAIC0wLDAgKzEsMTA2 IEBACisrIyBOZXcgYmFja3RyYWNlIGNvbW1hbmQuCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDgs IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQor KyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysj IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LgorKworK2ltcG9ydCBnZGIKKytpbXBvcnQgZ2RiLmJhY2t0cmFjZQorK2lt cG9ydCBpdGVydG9vbHMKKytmcm9tIGdkYi5GcmFtZUl0ZXJhdG9yIGltcG9ydCBGcmFtZUl0ZXJh dG9yCisrZnJvbSBnZGIuRnJhbWVXcmFwcGVyIGltcG9ydCBGcmFtZVdyYXBwZXIKKytpbXBvcnQg c3lzCisrCisrY2xhc3MgUmV2ZXJzZUJhY2t0cmFjZVBhcmFtZXRlciAoZ2RiLlBhcmFtZXRlcik6 CisrICAgICIiIlRoZSBuZXctYmFja3RyYWNlIGNvbW1hbmQgY2FuIHNob3cgYmFja3RyYWNlcyBp biAncmV2ZXJzZScgb3JkZXIuCisrVGhpcyBtZWFucyB0aGF0IHRoZSBpbm5lcm1vc3QgZnJhbWUg d2lsbCBiZSBwcmludGVkIGxhc3QuCisrTm90ZSB0aGF0IHJldmVyc2UgYmFja3RyYWNlcyBhcmUg bW9yZSBleHBlbnNpdmUgdG8gY29tcHV0ZS4iIiIKKysKKysgICAgc2V0X2RvYyA9ICJFbmFibGUg b3IgZGlzYWJsZSByZXZlcnNlIGJhY2t0cmFjZXMuIgorKyAgICBzaG93X2RvYyA9ICJTaG93IHdo ZXRoZXIgYmFja3RyYWNlcyB3aWxsIGJlIHByaW50ZWQgaW4gcmV2ZXJzZSBvcmRlci4iCisrCisr ICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKysgICAgICAgIGdkYi5QYXJhbWV0ZXIuX19pbml0X18g KHNlbGYsICJyZXZlcnNlLWJhY2t0cmFjZSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnZGIuQ09NTUFORF9TVEFDSywgZ2RiLlBBUkFNX0JPT0xFQU4pCisrICAgICAgICAjIERl ZmF1bHQgdG8gY29tcGF0aWJpbGl0eSB3aXRoIGdkYi4KKysgICAgICAgIHNlbGYudmFsdWUgPSBG YWxzZQorKworK2NsYXNzIEZpbHRlcmluZ0JhY2t0cmFjZSAoZ2RiLkNvbW1hbmQpOgorKyAgICAi IiJQcmludCBiYWNrdHJhY2Ugb2YgYWxsIHN0YWNrIGZyYW1lcywgb3IgaW5uZXJtb3N0IENPVU5U IGZyYW1lcy4KKytXaXRoIGEgbmVnYXRpdmUgYXJndW1lbnQsIHByaW50IG91dGVybW9zdCAtQ09V TlQgZnJhbWVzLgorK1VzZSBvZiB0aGUgJ2Z1bGwnIHF1YWxpZmllciBhbHNvIHByaW50cyB0aGUg dmFsdWVzIG9mIHRoZSBsb2NhbCB2YXJpYWJsZXMuCisrVXNlIG9mIHRoZSAncmF3JyBxdWFsaWZp ZXIgYXZvaWRzIGFueSBmaWx0ZXJpbmcgYnkgbG9hZGFibGUgbW9kdWxlcy4KKysiIiIKKysKKysg ICAgZGVmIF9faW5pdF9fIChzZWxmKToKKysgICAgICAgICMgRklYTUU6IHRoaXMgaXMgbm90IHdv cmtpbmcgcXVpdGUgd2VsbCBlbm91Z2ggdG8gcmVwbGFjZQorKyAgICAgICAgIyAiYmFja3RyYWNl IiB5ZXQuCisrICAgICAgICBnZGIuQ29tbWFuZC5fX2luaXRfXyAoc2VsZiwgIm5ldy1iYWNrdHJh Y2UiLCBnZGIuQ09NTUFORF9TVEFDSykKKysgICAgICAgIHNlbGYucmV2ZXJzZSA9IFJldmVyc2VC YWNrdHJhY2VQYXJhbWV0ZXIoKQorKworKyAgICBkZWYgcmV2ZXJzZV9pdGVyIChzZWxmLCBpdGVy KToKKysgICAgICAgIHJlc3VsdCA9IFtdCisrICAgICAgICBmb3IgaXRlbSBpbiBpdGVyOgorKyAg ICAgICAgICAgIHJlc3VsdC5hcHBlbmQgKGl0ZW0pCisrICAgICAgICByZXN1bHQucmV2ZXJzZSgp CisrICAgICAgICByZXR1cm4gcmVzdWx0CisrCisrICAgIGRlZiBmaW5hbF9uIChzZWxmLCBpdGVy LCB4KToKKysgICAgICAgIHJlc3VsdCA9IFtdCisrICAgICAgICBmb3IgaXRlbSBpbiBpdGVyOgor KyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQgKGl0ZW0pCisrICAgICAgICByZXR1cm4gcmVzdWx0 W3g6XQorKworKyAgICBkZWYgaW52b2tlIChzZWxmLCBhcmcsIGZyb21fdHR5KToKKysgICAgICAg IGkgPSAwCisrICAgICAgICBjb3VudCA9IDAKKysgICAgICAgIGZpbHRlciA9IFRydWUKKysgICAg ICAgIGZ1bGwgPSBGYWxzZQorKworKyAgICAgICAgZm9yIHdvcmQgaW4gYXJnLnNwbGl0ICgiICIp OgorKyAgICAgICAgICAgIGlmIHdvcmQgPT0gJyc6CisrICAgICAgICAgICAgICAgIGNvbnRpbnVl CisrICAgICAgICAgICAgZWxpZiB3b3JkID09ICdyYXcnOgorKyAgICAgICAgICAgICAgICBmaWx0 ZXIgPSBGYWxzZQorKyAgICAgICAgICAgIGVsaWYgd29yZCA9PSAnZnVsbCc6CisrICAgICAgICAg ICAgICAgIGZ1bGwgPSBUcnVlCisrICAgICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgICAg Y291bnQgPSBpbnQgKHdvcmQpCisrCisrICAgICAgICAjIEZJWE1FOiBwcm92aWRlIG9wdGlvbiB0 byBzdGFydCBhdCBzZWxlY3RlZCBmcmFtZQorKyAgICAgICAgIyBIb3dldmVyLCBzaG91bGQgc3Rp bGwgbnVtYmVyIGFzIGlmIHN0YXJ0aW5nIGZyb20gbmV3ZXN0CisrCW5ld2VzdF9mcmFtZSA9IGdk Yi5zZWxlY3RlZF90aHJlYWQgKCkubmV3ZXN0X2ZyYW1lICgpCisrICAgICAgICBpdGVyID0gaXRl cnRvb2xzLmltYXAgKEZyYW1lV3JhcHBlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRnJhbWVJdGVyYXRvciAobmV3ZXN0X2ZyYW1lKSkKKysgICAgICAgIGlmIGZpbHRlcjoKKysg ICAgICAgICAgICBpdGVyID0gZ2RiLmJhY2t0cmFjZS5jcmVhdGVfZnJhbWVfZmlsdGVyIChpdGVy KQorKworKyAgICAgICAgIyBOb3cgd3JhcCBpbiBhbiBpdGVyYXRvciB0aGF0IG51bWJlcnMgdGhl IGZyYW1lcy4KKysgICAgICAgIGl0ZXIgPSBpdGVydG9vbHMuaXppcCAoaXRlcnRvb2xzLmNvdW50 ICgwKSwgaXRlcikKKysKKysgICAgICAgICMgUmV2ZXJzZSBpZiB0aGUgdXNlciB3YW50ZWQgdGhh dC4KKysgICAgICAgIGlmIHNlbGYucmV2ZXJzZS52YWx1ZToKKysgICAgICAgICAgICBpdGVyID0g c2VsZi5yZXZlcnNlX2l0ZXIgKGl0ZXIpCisrCisrICAgICAgICAjIEV4dHJhY3Qgc3ViLXJhbmdl IHVzZXIgd2FudHMuCisrICAgICAgICBpZiBjb3VudCA8IDA6CisrICAgICAgICAgICAgaXRlciA9 IHNlbGYuZmluYWxfbiAoaXRlciwgY291bnQpCisrICAgICAgICBlbGlmIGNvdW50ID4gMDoKKysg ICAgICAgICAgICBpdGVyID0gaXRlcnRvb2xzLmlzbGljZSAoaXRlciwgMCwgY291bnQpCisrCisr ICAgICAgICBmb3IgcGFpciBpbiBpdGVyOgorKyAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUg KCIjJS0yZCIgJSBwYWlyWzBdKQorKyAgICAgICAgICAgIHBhaXJbMV0uZGVzY3JpYmUgKHN5cy5z dGRvdXQsIGZ1bGwpCisrCisrRmlsdGVyaW5nQmFja3RyYWNlKCkKK2RpZmYgLS1naXQgYS9nZGIv cHl0aG9uL2xpYi9nZGIvY29tbWFuZC9pZ25vcmVfZXJyb3JzLnB5IGIvZ2RiL3B5dGhvbi9saWIv Z2RiL2NvbW1hbmQvaWdub3JlX2Vycm9ycy5weQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4 IDAwMDAwMDAuLjZmYTQ4ZmYKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi9weXRob24vbGliL2dk Yi9jb21tYW5kL2lnbm9yZV9lcnJvcnMucHkKK0BAIC0wLDAgKzEsMzcgQEAKKysjIElnbm9yZSBl cnJvcnMgaW4gdXNlciBjb21tYW5kcy4KKysKKysjIENvcHlyaWdodCAoQykgMjAwOCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisr IworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u CisrCisraW1wb3J0IGdkYgorKworK2NsYXNzIElnbm9yZUVycm9yc0NvbW1hbmQgKGdkYi5Db21t YW5kKToKKysgICAgIiIiRXhlY3V0ZSBhIHNpbmdsZSBjb21tYW5kLCBpZ25vcmluZyBhbGwgZXJy b3JzLgorK09ubHkgb25lLWxpbmUgY29tbWFuZHMgYXJlIHN1cHBvcnRlZC4KKytUaGlzIGlzIHBy aW1hcmlseSB1c2VmdWwgaW4gc2NyaXB0cy4iIiIKKysKKysgICAgZGVmIF9faW5pdF9fIChzZWxm KToKKysgICAgICAgIHN1cGVyIChJZ25vcmVFcnJvcnNDb21tYW5kLCBzZWxmKS5fX2luaXRfXyAo Imlnbm9yZS1lcnJvcnMiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnZGIuQ09NTUFORF9PQlNDVVJFLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEZJWE1FLi4uCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdkYi5DT01QTEVURV9DT01N QU5EKQorKworKyAgICBkZWYgaW52b2tlIChzZWxmLCBhcmcsIGZyb21fdHR5KToKKysgICAgICAg IHRyeToKKysgICAgICAgICAgICBnZGIuZXhlY3V0ZSAoYXJnLCBmcm9tX3R0eSkKKysgICAgICAg IGV4Y2VwdDoKKysgICAgICAgICAgICBwYXNzCisrCisrSWdub3JlRXJyb3JzQ29tbWFuZCAoKQor ZGlmZiAtLWdpdCBhL2dkYi9weXRob24vbGliL2dkYi9jb21tYW5kL3BhaG9sZS5weSBiL2dkYi9w eXRob24vbGliL2dkYi9jb21tYW5kL3BhaG9sZS5weQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2lu ZGV4IDAwMDAwMDAuLjIxYTBiZjAKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi9weXRob24vbGli L2dkYi9jb21tYW5kL3BhaG9sZS5weQorQEAgLTAsMCArMSw3NSBAQAorKyMgcGFob2xlIGNvbW1h bmQgZm9yIGdkYgorKworKyMgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytp bXBvcnQgZ2RiCisrCisrY2xhc3MgUGFob2xlIChnZGIuQ29tbWFuZCk6CisrICAgICIiIlNob3cg dGhlIGhvbGVzIGluIGEgc3RydWN0dXJlLgorK1RoaXMgY29tbWFuZCB0YWtlcyBhIHNpbmdsZSBh cmd1bWVudCwgYSB0eXBlIG5hbWUuCisrSXQgcHJpbnRzIHRoZSB0eXBlIGFuZCBkaXNwbGF5cyBj b21tZW50cyBzaG93aW5nIHdoZXJlIGhvbGVzIGFyZS4iIiIKKysKKysgICAgZGVmIF9faW5pdF9f IChzZWxmKToKKysgICAgICAgIHN1cGVyIChQYWhvbGUsIHNlbGYpLl9faW5pdF9fICgicGFob2xl IiwgZ2RiLkNPTU1BTkRfTk9ORSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnZGIuQ09NUExFVEVfU1lNQk9MKQorKworKyAgICBkZWYgcGFob2xlIChzZWxmLCB0eXBl LCBsZXZlbCwgbmFtZSk6CisrICAgICAgICBpZiBuYW1lIGlzIE5vbmU6CisrICAgICAgICAgICAg bmFtZSA9ICcnCisrICAgICAgICB0YWcgPSB0eXBlLnRhZworKyAgICAgICAgaWYgdGFnIGlzIE5v bmU6CisrICAgICAgICAgICAgdGFnID0gJycKKysgICAgICAgIHByaW50ICclc3N0cnVjdCAlcyB7 JyAlICgnICcgKiAoMiAqIGxldmVsKSwgdGFnKQorKyAgICAgICAgYml0cG9zID0gMAorKyAgICAg ICAgZm9yIGZpZWxkIGluIHR5cGUuZmllbGRzICgpOgorKyAgICAgICAgICAgICMgU2tpcCBzdGF0 aWMgZmllbGRzLgorKyAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyIChmaWVsZCwgKCdiaXRwb3Mn KSk6CisrICAgICAgICAgICAgICAgIGNvbnRpbnVlCisrCisrICAgICAgICAgICAgZnR5cGUgPSBm aWVsZC50eXBlLnN0cmlwX3R5cGVkZWZzKCkKKysKKysgICAgICAgICAgICBpZiBiaXRwb3MgIT0g ZmllbGQuYml0cG9zOgorKyAgICAgICAgICAgICAgICBob2xlID0gZmllbGQuYml0cG9zIC0gYml0 cG9zCisrICAgICAgICAgICAgICAgIHByaW50ICcgIC8qIFhYWCAlZCBiaXQgaG9sZSwgdHJ5IHRv IHBhY2sgKi8nICUgaG9sZQorKyAgICAgICAgICAgICAgICBiaXRwb3MgPSBmaWVsZC5iaXRwb3MK KysgICAgICAgICAgICBpZiBmaWVsZC5iaXRzaXplID4gMDoKKysgICAgICAgICAgICAgICAgZmll bGRzaXplID0gZmllbGQuYml0c2l6ZQorKyAgICAgICAgICAgIGVsc2U6CisrICAgICAgICAgICAg ICAgICMgVEFSR0VUX0NIQVJfQklUIGhlcmUuLi4KKysgICAgICAgICAgICAgICAgZmllbGRzaXpl ID0gOCAqIGZ0eXBlLnNpemVvZgorKworKyAgICAgICAgICAgICMgVEFSR0VUX0NIQVJfQklUCisr ICAgICAgICAgICAgcHJpbnQgJyAvKiAlM2QgJTNkICovJyAlIChpbnQgKGJpdHBvcyAvIDgpLCBp bnQgKGZpZWxkc2l6ZSAvIDgpKSwKKysgICAgICAgICAgICBiaXRwb3MgPSBiaXRwb3MgKyBmaWVs ZHNpemUKKysKKysgICAgICAgICAgICBpZiBmdHlwZS5jb2RlID09IGdkYi5UWVBFX0NPREVfU1RS VUNUOgorKyAgICAgICAgICAgICAgICBzZWxmLnBhaG9sZSAoZnR5cGUsIGxldmVsICsgMSwgZmll bGQubmFtZSkKKysgICAgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICAgICBwcmludCAnICcg KiAoMiArIDIgKiBsZXZlbCksCisrICAgICAgICAgICAgICAgIHByaW50ICclcyAlcycgJSAoc3Ry IChmdHlwZSksIGZpZWxkLm5hbWUpCisrCisrICAgICAgICBwcmludCAnICcgKiAoMTQgKyAyICog bGV2ZWwpLAorKyAgICAgICAgcHJpbnQgJ30gJXMnICUgbmFtZQorKworKyAgICBkZWYgaW52b2tl IChzZWxmLCBhcmcsIGZyb21fdHR5KToKKysgICAgICAgIHR5cGUgPSBnZGIubG9va3VwX3R5cGUg KGFyZykKKysgICAgICAgIHR5cGUgPSB0eXBlLnN0cmlwX3R5cGVkZWZzICgpCisrICAgICAgICBp ZiB0eXBlLmNvZGUgIT0gZ2RiLlRZUEVfQ09ERV9TVFJVQ1Q6CisrICAgICAgICAgICAgcmFpc2Ug VHlwZUVycm9yLCAnJXMgaXMgbm90IGEgc3RydWN0IHR5cGUnICUgYXJnCisrICAgICAgICBwcmlu dCAnICcgKiAxNCwKKysgICAgICAgIHNlbGYucGFob2xlICh0eXBlLCAwLCAnJykKKysKKytQYWhv bGUoKQorZGlmZiAtLWdpdCBhL2dkYi9weXRob24vbGliL2dkYi9jb21tYW5kL3JlcXVpcmUucHkg Yi9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9yZXF1aXJlLnB5CituZXcgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMDAwMDAwMC4uMWZiYzFlOAorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3B5 dGhvbi9saWIvZ2RiL2NvbW1hbmQvcmVxdWlyZS5weQorQEAgLTAsMCArMSw1NyBAQAorKyMgRGVt YW5kLWxvYWRpbmcgY29tbWFuZHMuCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LgorKworK2ltcG9ydCBnZGIKKytpbXBvcnQgb3MKKysKKytjbGFzcyBSZXF1aXJlQ29tbWFu ZCAoZ2RiLkNvbW1hbmQpOgorKyAgICAiIiJQcmVmaXggY29tbWFuZCBmb3IgcmVxdWlyaW5nIGZl YXR1cmVzLiIiIgorKworKyAgICBkZWYgX19pbml0X18gKHNlbGYpOgorKyAgICAgICAgc3VwZXIg KFJlcXVpcmVDb21tYW5kLCBzZWxmKS5fX2luaXRfXyAoInJlcXVpcmUiLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2RiLkNPTU1BTkRfU1VQUE9SVCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdkYi5DT01Q TEVURV9OT05FLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVHJ1ZSkKKysKKytjbGFzcyBSZXF1aXJlU3ViY29tbWFuZCAoZ2RiLkNvbW1hbmQpOgorKyAg ICAiIiJEZW1hbmQtbG9hZCBhIGNvbW1hbmQgYnkgbmFtZS4iIiIKKysKKysgICAgZGVmIF9faW5p dF9fIChzZWxmLCBuYW1lKToKKysgICAgICAgIHNlbGYuX19kb2NfXyA9ICJEZW1hbmQtbG9hZCBh ICVzIGJ5IG5hbWUuIiAlIG5hbWUKKysgICAgICAgIHN1cGVyIChSZXF1aXJlU3ViY29tbWFuZCwg c2VsZikuX19pbml0X18gKCJyZXF1aXJlICVzIiAlIG5hbWUsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZGIuQ09NTUFORF9TVVBQT1JUKQorKyAg ICAgICAgc2VsZi5uYW1lID0gbmFtZQorKworKyAgICBkZWYgaW52b2tlIChzZWxmLCBhcmcsIGZy b21fdHR5KToKKysgICAgICAgIGZvciBjbWQgaW4gYXJnLnNwbGl0KCk6CisrICAgICAgICAgICAg ZXhlYyAoJ2ltcG9ydCBnZGIuJyArIHNlbGYubmFtZSArICcuJyArIGNtZCwgZ2xvYmFscyAoKSkK KysKKysgICAgZGVmIGNvbXBsZXRlIChzZWxmLCB0ZXh0LCB3b3JkKToKKysgICAgICAgIGRpciA9 IGdkYi5weXRob25kaXIgKyAnL2dkYi8nICsgc2VsZi5uYW1lCisrICAgICAgICByZXN1bHQgPSBb XQorKyAgICAgICAgZm9yIGZpbGUgaW4gb3MubGlzdGRpcihkaXIpOgorKyAgICAgICAgICAgIGlm IG5vdCBmaWxlLnN0YXJ0c3dpdGggKHdvcmQpIG9yIG5vdCBmaWxlLmVuZHN3aXRoICgnLnB5Jyk6 CisrICAgICAgICAgICAgICAgIGNvbnRpbnVlCisrICAgICAgICAgICAgZmVhdHVyZSA9IGZpbGVb MDotM10KKysgICAgICAgICAgICBpZiBmZWF0dXJlID09ICdyZXF1aXJlJyBvciBmZWF0dXJlID09 ICdfX2luaXRfXyc6CisrICAgICAgICAgICAgICAgIGNvbnRpbnVlCisrICAgICAgICAgICAgcmVz dWx0LmFwcGVuZCAoZmVhdHVyZSkKKysgICAgICAgIHJldHVybiByZXN1bHQKKysKKytSZXF1aXJl Q29tbWFuZCgpCisrUmVxdWlyZVN1YmNvbW1hbmQoImNvbW1hbmQiKQorK1JlcXVpcmVTdWJjb21t YW5kKCJmdW5jdGlvbiIpCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQv dXB0by5weSBiL2dkYi9weXRob24vbGliL2dkYi9jb21tYW5kL3VwdG8ucHkKK25ldyBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5mYWY1NGVkCistLS0gL2Rldi9udWxsCisrKysgYi9n ZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC91cHRvLnB5CitAQCAtMCwwICsxLDEyOSBAQAorKyMg dXB0byBjb21tYW5kLgorKworKyMgQ29weXJpZ2h0IChDKSAyMDA5IEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNl LCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytpbXBv cnQgZ2RiCisraW1wb3J0IHJlCisrZnJvbSBnZGIuRnJhbWVJdGVyYXRvciBpbXBvcnQgRnJhbWVJ dGVyYXRvcgorK2Zyb20gZ2RiLkZyYW1lV3JhcHBlciBpbXBvcnQgRnJhbWVXcmFwcGVyCisrCisr Y2xhc3MgVXB0b1ByZWZpeCAoZ2RiLkNvbW1hbmQpOgorKyAgICBkZWYgX19pbml0X18gKHNlbGYp OgorKyAgICAgICAgc3VwZXIgKFVwdG9QcmVmaXgsIHNlbGYpLl9faW5pdF9fICgidXB0byIsIGdk Yi5DT01NQU5EX1NUQUNLLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwcmVmaXggPSBUcnVlKQorKworK2NsYXNzIFVwdG9JbXBsZW1lbnRhdGlvbiAoZ2RiLkNv bW1hbmQpOgorKyAgICBkZWYgX19pbml0X18gKHNlbGYsIHN1YmNvbW1hbmQpOgorKyAgICAgICAg c3VwZXIgKFVwdG9JbXBsZW1lbnRhdGlvbiwgc2VsZikuX19pbml0X18gKCJ1cHRvICIgKyBzdWJj b21tYW5kLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdkYi5DT01NQU5EX1NUQUNLKQorKworKyAgICBkZWYgc2VhcmNoIChzZWxmKToKKysgICAg ICAgIHNhdmVkID0gZ2RiLnNlbGVjdGVkX2ZyYW1lICgpCisrICAgICAgICBpdGVyID0gRnJhbWVJ dGVyYXRvciAoc2F2ZWQpCisrICAgICAgICBmb3VuZCA9IEZhbHNlCisrICAgICAgICB0cnk6Cisr ICAgICAgICAgICAgZm9yIGZyYW1lIGluIGl0ZXI6CisrICAgICAgICAgICAgICAgIGZyYW1lLnNl bGVjdCAoKQorKyAgICAgICAgICAgICAgICB0cnk6CisrICAgICAgICAgICAgICAgICAgICBpZiBz ZWxmLmZpbHRlciAoZnJhbWUpOgorKyAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBG cmFtZVdyYXBwZXIgKGZyYW1lKQorKyAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZXIuZGVz Y3JpYmUgKHN5cy5zdGRvdXQsIEZhbHNlKQorKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy bgorKyAgICAgICAgICAgICAgICBleGNlcHQ6CisrICAgICAgICAgICAgICAgICAgICBwYXNzCisr ICAgICAgICBleGNlcHQ6CisrICAgICAgICAgICAgcGFzcworKyAgICAgICAgc2F2ZWQuc2VsZWN0 ICgpCisrICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IsICdDb3VsZCBub3QgZmluZCBhIG1hdGNo aW5nIGZyYW1lJworKworKyAgICBkZWYgaW52b2tlIChzZWxmLCBhcmcsIGZyb21fdHR5KToKKysg ICAgICAgIHNlbGYucnggPSByZS5jb21waWxlIChhcmcpCisrICAgICAgICBzZWxmLnNlYXJjaCAo KQorKworK2NsYXNzIFVwdG9TeW1ib2xDb21tYW5kIChVcHRvSW1wbGVtZW50YXRpb24pOgorKyAg ICAiIiJTZWxlY3QgYW5kIHByaW50IHNvbWUgY2FsbGluZyBzdGFjayBmcmFtZSwgYmFzZWQgb24g c3ltYm9sLgorK1RoZSBhcmd1bWVudCBpcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4gIFRoaXMgY29t bWFuZCBtb3ZlcyB1cCB0aGUKKytzdGFjaywgc3RvcHBpbmcgYXQgdGhlIGZpcnN0IGZyYW1lIHdo b3NlIHN5bWJvbCBtYXRjaGVzIHRoZSByZWd1bGFyCisrZXhwcmVzc2lvbi4iIiIKKysKKysgICAg ZGVmIF9faW5pdF9fIChzZWxmKToKKysgICAgICAgIHN1cGVyIChVcHRvU3ltYm9sQ29tbWFuZCwg c2VsZikuX19pbml0X18gKCJzeW1ib2wiKQorKworKyAgICBkZWYgZmlsdGVyIChzZWxmLCBmcmFt ZSk6CisrICAgICAgICBuYW1lID0gZnJhbWUubmFtZSAoKQorKyAgICAgICAgaWYgbmFtZSBpcyBu b3QgTm9uZToKKysgICAgICAgICAgICBpZiBzZWxmLnJ4LnNlYXJjaCAobmFtZSkgaXMgbm90IE5v bmU6CisrICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisrICAgICAgICByZXR1cm4gRmFsc2UK KysKKytjbGFzcyBVcHRvU291cmNlQ29tbWFuZCAoVXB0b0ltcGxlbWVudGF0aW9uKToKKysgICAg IiIiU2VsZWN0IGFuZCBwcmludCBzb21lIGNhbGxpbmcgc3RhY2sgZnJhbWUsIGJhc2VkIG9uIHNv dXJjZSBmaWxlLgorK1RoZSBhcmd1bWVudCBpcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4gIFRoaXMg Y29tbWFuZCBtb3ZlcyB1cCB0aGUKKytzdGFjaywgc3RvcHBpbmcgYXQgdGhlIGZpcnN0IGZyYW1l IHdob3NlIHNvdXJjZSBmaWxlIG5hbWUgbWF0Y2hlcyB0aGUKKytyZWd1bGFyIGV4cHJlc3Npb24u IiIiCisrCisrICAgIGRlZiBfX2luaXRfXyAoc2VsZik6CisrICAgICAgICBzdXBlciAoVXB0b1Nv dXJjZUNvbW1hbmQsIHNlbGYpLl9faW5pdF9fICgic291cmNlIikKKysKKysgICAgZGVmIGZpbHRl ciAoc2VsZiwgZnJhbWUpOgorKyAgICAgICAgbmFtZSA9IGZyYW1lLmZpbmRfc2FsICgpLnN5bXRh Yi5maWxlbmFtZQorKyAgICAgICAgaWYgbmFtZSBpcyBub3QgTm9uZToKKysgICAgICAgICAgICBp ZiBzZWxmLnJ4LnNlYXJjaCAobmFtZSkgaXMgbm90IE5vbmU6CisrICAgICAgICAgICAgICAgIHJl dHVybiBUcnVlCisrICAgICAgICByZXR1cm4gRmFsc2UKKysKKytjbGFzcyBVcHRvT2JqZWN0Q29t bWFuZCAoVXB0b0ltcGxlbWVudGF0aW9uKToKKysgICAgIiIiU2VsZWN0IGFuZCBwcmludCBzb21l IGNhbGxpbmcgc3RhY2sgZnJhbWUsIGJhc2VkIG9uIG9iamVjdCBmaWxlLgorK1RoZSBhcmd1bWVu dCBpcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4gIFRoaXMgY29tbWFuZCBtb3ZlcyB1cCB0aGUKKytz dGFjaywgc3RvcHBpbmcgYXQgdGhlIGZpcnN0IGZyYW1lIHdob3NlIG9iamVjdCBmaWxlIG5hbWUg bWF0Y2hlcyB0aGUKKytyZWd1bGFyIGV4cHJlc3Npb24uIiIiCisrCisrICAgIGRlZiBfX2luaXRf XyAoc2VsZik6CisrICAgICAgICBzdXBlciAoVXB0b09iamVjdENvbW1hbmQsIHNlbGYpLl9faW5p dF9fICgib2JqZWN0IikKKysKKysgICAgZGVmIGZpbHRlciAoc2VsZiwgZnJhbWUpOgorKyAgICAg ICAgbmFtZSA9IGZyYW1lLmZpbmRfc2FsICgpLnN5bXRhYi5vYmpmaWxlLmZpbGVuYW1lCisrICAg ICAgICBpZiBuYW1lIGlzIG5vdCBOb25lOgorKyAgICAgICAgICAgIGlmIHNlbGYucnguc2VhcmNo IChuYW1lKSBpcyBub3QgTm9uZToKKysgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKysgICAg ICAgIHJldHVybiBGYWxzZQorKworK2NsYXNzIFVwdG9XaGVyZUNvbW1hbmQgKFVwdG9JbXBsZW1l bnRhdGlvbik6CisrICAgICIiIlNlbGVjdCBhbmQgcHJpbnQgc29tZSBjYWxsaW5nIHN0YWNrIGZy YW1lLCBiYXNlZCBvbiBleHByZXNzaW9uLgorK1RoZSBhcmd1bWVudCBpcyBhbiBleHByZXNzaW9u LiAgVGhpcyBjb21tYW5kIG1vdmVzIHVwIHRoZSBzdGFjaywKKytwYXJzaW5nIGFuZCBldmFsdWF0 aW5nIHRoZSBleHByZXNzaW9uIGluIGVhY2ggZnJhbWUuICBUaGlzIHN0b3BzIHdoZW4KKyt0aGUg ZXhwcmVzc2lvbiBldmFsdWF0ZXMgdG8gYSBub24temVybyAodHJ1ZSkgdmFsdWUuIiIiCisrCisr ICAgIGRlZiBfX2luaXRfXyAoc2VsZik6CisrICAgICAgICBzdXBlciAoVXB0b1doZXJlQ29tbWFu ZCwgc2VsZikuX19pbml0X18gKCJ3aGVyZSIpCisrCisrICAgIGRlZiBmaWx0ZXIgKHNlbGYsIGZy YW1lKToKKysgICAgICAgIHRyeToKKysgICAgICAgICAgICBpZiBnZGIucGFyc2VfYW5kX2V2YWwg KHNlbGYuZXhwcmVzc2lvbik6CisrICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisrICAgICAg ICBleGNlcHQ6CisrICAgICAgICAgICAgcGFzcworKyAgICAgICAgcmV0dXJuIEZhbHNlCisrCisr ICAgIGRlZiBpbnZva2UgKHNlbGYsIGFyZywgZnJvbV90dHkpOgorKyAgICAgICAgc2VsZi5leHBy ZXNzaW9uID0gYXJnCisrICAgICAgICBzZWxmLnNlYXJjaCAoKQorKworK1VwdG9QcmVmaXggKCkK KytVcHRvU3ltYm9sQ29tbWFuZCAoKQorK1VwdG9Tb3VyY2VDb21tYW5kICgpCisrVXB0b09iamVj dENvbW1hbmQgKCkKKytVcHRvV2hlcmVDb21tYW5kICgpCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhv bi9saWIvZ2RiL2Z1bmN0aW9uL19faW5pdF9fLnB5IGIvZ2RiL3B5dGhvbi9saWIvZ2RiL2Z1bmN0 aW9uL19faW5pdF9fLnB5CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uOGIx Mzc4OQorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3B5dGhvbi9saWIvZ2RiL2Z1bmN0aW9uL19f aW5pdF9fLnB5CitAQCAtMCwwICsxIEBACisrCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9saWIv Z2RiL2Z1bmN0aW9uL2NhbGxlcl9pcy5weSBiL2dkYi9weXRob24vbGliL2dkYi9mdW5jdGlvbi9j YWxsZXJfaXMucHkKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi4yYjljNWM3 CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvcHl0aG9uL2xpYi9nZGIvZnVuY3Rpb24vY2FsbGVy X2lzLnB5CitAQCAtMCwwICsxLDU4IEBACisrIyBDYWxsZXItaXMgZnVuY3Rpb25zLgorKworKyMg Q29weXJpZ2h0IChDKSAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysj IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytpbXBvcnQgZ2RiCisraW1wb3J0IHJlCisr CisrY2xhc3MgQ2FsbGVySXMgKGdkYi5GdW5jdGlvbik6CisrICAgICIiIlJldHVybiBUcnVlIGlm IHRoZSBjYWxsaW5nIGZ1bmN0aW9uJ3MgbmFtZSBpcyBlcXVhbCB0byBhIHN0cmluZy4KKytUaGlz IGZ1bmN0aW9uIHRha2VzIG9uZSBvciB0d28gYXJndW1lbnRzLgorK1RoZSBmaXJzdCBhcmd1bWVu dCBpcyB0aGUgbmFtZSBvZiBhIGZ1bmN0aW9uOyBpZiB0aGUgY2FsbGluZyBmdW5jdGlvbidzCisr bmFtZSBpcyBlcXVhbCB0byB0aGlzIGFyZ3VtZW50LCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgVHJ1 ZS4KKytUaGUgb3B0aW9uYWwgc2Vjb25kIGFyZ3VtZW50IHRlbGxzIHRoaXMgZnVuY3Rpb24gaG93 IG1hbnkgc3RhY2sgZnJhbWVzCisrdG8gdHJhdmVyc2UgdG8gZmluZCB0aGUgY2FsbGluZyBmdW5j dGlvbi4gIFRoZSBkZWZhdWx0IGlzIDEuIiIiCisrCisrICAgIGRlZiBfX2luaXRfXyAoc2VsZik6 CisrICAgICAgICBzdXBlciAoQ2FsbGVySXMsIHNlbGYpLl9faW5pdF9fICgiY2FsbGVyX2lzIikK KysKKysgICAgZGVmIGludm9rZSAoc2VsZiwgbmFtZSwgbmZyYW1lcyA9IDEpOgorKyAgICAgICAg ZnJhbWUgPSBnZGIuc2VsZWN0ZWRfZnJhbWUgKCkKKysgICAgICAgIHdoaWxlIG5mcmFtZXMgPiAw OgorKyAgICAgICAgICAgIGZyYW1lID0gZnJhbWUub2xkZXIgKCkKKysgICAgICAgICAgICBuZnJh bWVzID0gbmZyYW1lcyAtIDEKKysgICAgICAgIHJldHVybiBmcmFtZS5uYW1lICgpID09IG5hbWUu c3RyaW5nICgpCisrCisrY2xhc3MgQ2FsbGVyTWF0Y2hlcyAoZ2RiLkZ1bmN0aW9uKToKKysgICAg IiIiUmV0dXJuIFRydWUgaWYgdGhlIGNhbGxpbmcgZnVuY3Rpb24ncyBuYW1lIG1hdGNoZXMgYSBz dHJpbmcuCisrVGhpcyBmdW5jdGlvbiB0YWtlcyBvbmUgb3IgdHdvIGFyZ3VtZW50cy4KKytUaGUg Zmlyc3QgYXJndW1lbnQgaXMgYSByZWd1bGFyIGV4cHJlc3Npb247IGlmIHRoZSBjYWxsaW5nIGZ1 bmN0aW9uJ3MKKytuYW1lIGlzIG1hdGNoZWQgYnkgdGhpcyBhcmd1bWVudCwgdGhpcyBmdW5jdGlv biByZXR1cm5zIFRydWUuCisrVGhlIG9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCB0ZWxscyB0aGlz IGZ1bmN0aW9uIGhvdyBtYW55IHN0YWNrIGZyYW1lcworK3RvIHRyYXZlcnNlIHRvIGZpbmQgdGhl IGNhbGxpbmcgZnVuY3Rpb24uICBUaGUgZGVmYXVsdCBpcyAxLiIiIgorKworKyAgICBkZWYgX19p bml0X18gKHNlbGYpOgorKyAgICAgICAgc3VwZXIgKENhbGxlck1hdGNoZXMsIHNlbGYpLl9faW5p dF9fICgiY2FsbGVyX21hdGNoZXMiKQorKworKyAgICBkZWYgaW52b2tlIChzZWxmLCBuYW1lLCBu ZnJhbWVzID0gMSk6CisrICAgICAgICBmcmFtZSA9IGdkYi5zZWxlY3RlZF9mcmFtZSAoKQorKyAg ICAgICAgd2hpbGUgbmZyYW1lcyA+IDA6CisrICAgICAgICAgICAgZnJhbWUgPSBmcmFtZS5vbGRl ciAoKQorKyAgICAgICAgICAgIG5mcmFtZXMgPSBuZnJhbWVzIC0gMQorKyAgICAgICAgcmV0dXJu IHJlLm1hdGNoIChuYW1lLnN0cmluZyAoKSwgZnJhbWUubmFtZSAoKSkgaXMgbm90IE5vbmUKKysK KytDYWxsZXJJcygpCisrQ2FsbGVyTWF0Y2hlcygpCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9s aWIvZ2RiL2Z1bmN0aW9uL2luX3Njb3BlLnB5IGIvZ2RiL3B5dGhvbi9saWIvZ2RiL2Z1bmN0aW9u L2luX3Njb3BlLnB5CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uZGViYjNi YgorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3B5dGhvbi9saWIvZ2RiL2Z1bmN0aW9uL2luX3Nj b3BlLnB5CitAQCAtMCwwICsxLDQ3IEBACisrIyBJbi1zY29wZSBmdW5jdGlvbi4KKysKKysjIENv cHlyaWdodCAoQykgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQor KyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisraW1wb3J0IGdkYgorKworK2NsYXNzIEluU2Nv cGUgKGdkYi5GdW5jdGlvbik6CisrICAgICIiIlJldHVybiBUcnVlIGlmIGFsbCB0aGUgZ2l2ZW4g dmFyaWFibGVzIG9yIG1hY3JvcyBhcmUgaW4gc2NvcGUuCisrVGFrZXMgb25lIGFyZ3VtZW50IGZv ciBlYWNoIHZhcmlhYmxlIG5hbWUgdG8gYmUgY2hlY2tlZC4iIiIKKysKKysgICAgZGVmIF9faW5p dF9fIChzZWxmKToKKysJc3VwZXIgKEluU2NvcGUsIHNlbGYpLl9faW5pdF9fICgiaW5fc2NvcGUi KQorKworKyAgICBkZWYgaW52b2tlIChzZWxmLCAqdmFycyk6CisrICAgICAgICBpZiBsZW4gKHZh cnMpID09IDA6CisrCSAgICByYWlzZSBUeXBlRXJyb3IsICJpbl9zY29wZSB0YWtlcyBhdCBsZWFz dCBvbmUgYXJndW1lbnQiCisrCisrICAgICAgICAjIGdkYi5WYWx1ZSBpc24ndCBoYXNoYWJsZSBz byBpdCBjYW4ndCBiZSBwdXQgaW4gYSBtYXAuCisrCSMgQ29udmVydCB0byBzdHJpbmcgZmlyc3Qu CisrCXdhbnRlZCA9IHNldCAobWFwIChsYW1iZGEgeDogeC5zdHJpbmcgKCksIHZhcnMpKQorKwlm b3VuZCA9IHNldCAoKQorKwlibG9jayA9IGdkYi5zZWxlY3RlZF9mcmFtZSAoKS5ibG9jayAoKQor Kwl3aGlsZSBibG9jazoKKysJICAgIGZvciBzeW0gaW4gYmxvY2s6CisrCQlpZiAoc3ltLmlzX2Fy Z3VtZW50IG9yIHN5bS5pc19jb25zdGFudAorKwkJICAgICAgb3Igc3ltLmlzX2Z1bmN0aW9uIG9y IHN5bS5pc192YXJpYWJsZSk6CisrCQkgICAgaWYgc3ltLm5hbWUgaW4gd2FudGVkOgorKwkJCWZv dW5kLmFkZCAoc3ltLm5hbWUpCisrCisrCSAgICBibG9jayA9IGJsb2NrLnN1cGVyYmxvY2sKKysK KysJcmV0dXJuIHdhbnRlZCA9PSBmb3VuZAorKworK0luU2NvcGUgKCkKK2RpZmYgLS1naXQgYS9n ZGIvcHl0aG9uL3B5LWNtZC5jIGIvZ2RiL3B5dGhvbi9weS1jbWQuYworaW5kZXggM2RlM2FmMi4u NmE3YTIwYiAxMDA2NDQKKy0tLSBhL2dkYi9weXRob24vcHktY21kLmMKKysrKyBiL2dkYi9weXRo b24vcHktY21kLmMKK0BAIC00OSw4ICs0OSw3IEBAIHN0YXRpYyBzdHJ1Y3QgY21kcHlfY29tcGxl dGVyIGNvbXBsZXRlcnNbXSA9CisgCisgI2RlZmluZSBOX0NPTVBMRVRFUlMgKHNpemVvZiAoY29t cGxldGVycykgLyBzaXplb2YgKGNvbXBsZXRlcnNbMF0pKQorIAorLS8qIEEgZ2RiIGNvbW1hbmQu ICBGb3IgdGhlIHRpbWUgYmVpbmcgb25seSBvcmRpbmFyeSBjb21tYW5kcyAobm90CistICAgc2V0 L3Nob3cgY29tbWFuZHMpIGFyZSBhbGxvd2VkLiAgKi8KKysvKiBBIGdkYiBjb21tYW5kLiAgKi8K KyBzdHJ1Y3QgY21kcHlfb2JqZWN0CisgeworICAgUHlPYmplY3RfSEVBRAorZGlmZiAtLWdpdCBh L2dkYi9weXRob24vcHktbWVtYnVmLmMgYi9nZGIvcHl0aG9uL3B5LW1lbWJ1Zi5jCituZXcgZmls ZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uN2JjMjk0YworLS0tIC9kZXYvbnVsbAorKysr IGIvZ2RiL3B5dGhvbi9weS1tZW1idWYuYworQEAgLTAsMCArMSwyNjggQEAKKysvKiBQeXRob24g aW50ZXJmYWNlIHRvIHRoZSBpbmZlcmlvciBtZW1vcnkuCisrCisrICAgQ29weXJpZ2h0IChDKSAy MDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEdEQi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cisr ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKwor KyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4gICovCisrCisrI2luY2x1ZGUgImRlZnMuaCIKKysjaW5jbHVkZSAiZXhjZXB0aW9ucy5oIgor KyNpbmNsdWRlICJnZGJjb3JlLmgiCisrI2luY2x1ZGUgInB5dGhvbi1pbnRlcm5hbC5oIgorKwor K3R5cGVkZWYgc3RydWN0IHsKKysgIFB5T2JqZWN0X0hFQUQKKysgIHZvaWQgKmJ1ZmZlcjsKKysK KysgIC8qIFRoZXNlIGFyZSBrZXB0IGp1c3QgZm9yIG1icHlfc3RyLiAgKi8KKysgIENPUkVfQURE UiBhZGRyOworKyAgQ09SRV9BRERSIGxlbmd0aDsKKyt9IG1lbWJ1Zl9vYmplY3Q7CisrCisrc3Rh dGljIFB5VHlwZU9iamVjdCBtZW1idWZfb2JqZWN0X3R5cGU7CisrCisrLyogSW1wbGVtZW50YXRp b24gb2YgZ2RiLnJlYWRfbWVtb3J5IChhZGRyZXNzLCBsZW5ndGgpLgorKyAgIFJldHVybnMgYSBQ eXRob24gYnVmZmVyIG9iamVjdCB3aXRoIExFTkdUSCBieXRlcyBvZiB0aGUgaW5mZXJpb3IncyBt ZW1vcnkKKysgICBhdCBBRERSRVNTLiBCb3RoIGFyZ3VtZW50cyBhcmUgaW50ZWdlcnMuICAqLwor KworK1B5T2JqZWN0ICoKKytnZGJweV9yZWFkX21lbW9yeSAoUHlPYmplY3QgKnNlbGYsIFB5T2Jq ZWN0ICphcmdzKQorK3sKKysgIGludCBlcnJvciA9IDA7CisrICBDT1JFX0FERFIgYWRkciwgbGVu Z3RoOworKyAgdm9pZCAqYnVmZmVyID0gTlVMTDsKKysgIG1lbWJ1Zl9vYmplY3QgKm1lbWJ1Zl9v Ymo7CisrICBQeU9iamVjdCAqYWRkcl9vYmosICpsZW5ndGhfb2JqOworKyAgc3RydWN0IGNsZWFu dXAgKmNsZWFudXBzID0gTlVMTDsKKysgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4 Y2VwdDsKKysKKysgIGlmICghIFB5QXJnX1BhcnNlVHVwbGUgKGFyZ3MsICJPTyIsICZhZGRyX29i aiwgJmxlbmd0aF9vYmopKQorKyAgICByZXR1cm4gTlVMTDsKKysKKysgIFRSWV9DQVRDSCAoZXhj ZXB0LCBSRVRVUk5fTUFTS19BTEwpCisrICAgIHsKKysgICAgICBpZiAoIWdldF9hZGRyX2Zyb21f cHl0aG9uIChhZGRyX29iaiwgJmFkZHIpCisrCSAgfHwgIWdldF9hZGRyX2Zyb21fcHl0aG9uIChs ZW5ndGhfb2JqLCAmbGVuZ3RoKSkKKysJeworKwkgIGVycm9yID0gMTsKKysJICBicmVhazsKKysJ fQorKworKyAgICAgIGJ1ZmZlciA9IHhtYWxsb2MgKGxlbmd0aCk7CisrICAgICAgY2xlYW51cHMg PSBtYWtlX2NsZWFudXAgKHhmcmVlLCBidWZmZXIpOworKworKyAgICAgIHJlYWRfbWVtb3J5IChh ZGRyLCBidWZmZXIsIGxlbmd0aCk7CisrICAgIH0KKysgIEdEQl9QWV9IQU5ETEVfRVhDRVBUSU9O IChleGNlcHQpOworKworKyAgaWYgKGVycm9yKQorKyAgICByZXR1cm4gTlVMTDsKKysKKysgIGRp c2NhcmRfY2xlYW51cHMgKGNsZWFudXBzKTsKKysKKysgIG1lbWJ1Zl9vYmogPSBQeU9iamVjdF9O ZXcgKG1lbWJ1Zl9vYmplY3QsICZtZW1idWZfb2JqZWN0X3R5cGUpOworKyAgaWYgKG1lbWJ1Zl9v YmogPT0gTlVMTCkKKysgICAgeworKyAgICAgIHhmcmVlIChidWZmZXIpOworKyAgICAgIFB5RXJy X1NldFN0cmluZyAoUHlFeGNfTWVtb3J5RXJyb3IsCisrCQkgICAgICAgIkNvdWxkIG5vdCBhbGxv Y2F0ZSBtZW1vcnkgYnVmZmVyIG9iamVjdC4iKTsKKysgICAgICByZXR1cm4gTlVMTDsKKysgICAg fQorKworKyAgbWVtYnVmX29iai0+YnVmZmVyID0gYnVmZmVyOworKyAgbWVtYnVmX29iai0+YWRk ciA9IGFkZHI7CisrICBtZW1idWZfb2JqLT5sZW5ndGggPSBsZW5ndGg7CisrCisrICByZXR1cm4g UHlCdWZmZXJfRnJvbVJlYWRXcml0ZU9iamVjdCAoKFB5T2JqZWN0ICopIG1lbWJ1Zl9vYmosIDAs CisrCQkJCSAgICAgICBQeV9FTkRfT0ZfQlVGRkVSKTsKKyt9CisrCisrLyogSW1wbGVtZW50YXRp b24gb2YgZ2RiLndyaXRlX21lbW9yeSAoYWRkcmVzcywgYnVmZmVyIFssIGxlbmd0aF0pLgorKyAg IFdyaXRlcyB0aGUgY29udGVudHMgb2YgQlVGRkVSIChhIFB5dGhvbiBvYmplY3Qgc3VwcG9ydGlu ZyB0aGUgcmVhZCBidWZmZXIKKysgICBwcm90b2NvbCkgYXQgQUREUkVTUyBpbiB0aGUgaW5mZXJp b3IncyBtZW1vcnkuICBXcml0ZSBMRU5HVEggYnl0ZXMgZnJvbQorKyAgIEJVRkZFUiwgb3IgaXRz IGVudGlyZSBjb250ZW50cyBpZiB0aGUgYXJndW1lbnQgaXMgbm90IHByb3ZpZGVkLiAgVGhlCisr ICAgZnVuY3Rpb24gcmV0dXJucyBub3RoaW5nLiAgKi8KKysKKytQeU9iamVjdCAqCisrZ2RicHlf d3JpdGVfbWVtb3J5IChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCisreworKyAgaW50 IGJ1Zl9sZW4sIGVycm9yID0gMDsKKysgIGNvbnN0IGNoYXIgKmJ1ZmZlcjsKKysgIENPUkVfQURE UiBhZGRyLCBsZW5ndGg7CisrICBQeU9iamVjdCAqYWRkcl9vYmosICpsZW5ndGhfb2JqID0gTlVM TDsKKysgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4Y2VwdDsKKysKKysgIGlmICgh IFB5QXJnX1BhcnNlVHVwbGUgKGFyZ3MsICJPcyN8TyIsICZhZGRyX29iaiwgJmJ1ZmZlciwgJmJ1 Zl9sZW4sCisrCQkJICAmbGVuZ3RoX29iaikpCisrICAgIHJldHVybiBOVUxMOworKworKyAgVFJZ X0NBVENIIChleGNlcHQsIFJFVFVSTl9NQVNLX0FMTCkKKysgICAgeworKyAgICAgIGlmICghZ2V0 X2FkZHJfZnJvbV9weXRob24gKGFkZHJfb2JqLCAmYWRkcikpCisrCXsKKysJICBlcnJvciA9IDE7 CisrCSAgYnJlYWs7CisrCX0KKysgICAgICAKKysgICAgICBpZiAoIWxlbmd0aF9vYmopCisrCWxl bmd0aCA9IGJ1Zl9sZW47CisrICAgICAgZWxzZSBpZiAoIWdldF9hZGRyX2Zyb21fcHl0aG9uIChs ZW5ndGhfb2JqLCAmbGVuZ3RoKSkKKysJeworKwkgIGVycm9yID0gMTsKKysJICBicmVhazsKKysJ fQorKworKyAgICAgIHdyaXRlX21lbW9yeSAoYWRkciwgYnVmZmVyLCBsZW5ndGgpOworKyAgICB9 CisrICBHREJfUFlfSEFORExFX0VYQ0VQVElPTiAoZXhjZXB0KTsKKysKKysgIGlmIChlcnJvcikK KysgICAgcmV0dXJuIE5VTEw7CisrCisrICBQeV9SRVRVUk5fTk9ORTsKKyt9CisrCisrLyogRGVz dHJ1Y3RvciBvZiBNZW1idWYgb2JqZWN0cy4gICovCisrCisrc3RhdGljIHZvaWQKKyttYnB5X2Rl YWxsb2MgKFB5T2JqZWN0ICpzZWxmKQorK3sKKysgIHhmcmVlICgoKG1lbWJ1Zl9vYmplY3QgKikg c2VsZiktPmJ1ZmZlcik7CisrICBzZWxmLT5vYl90eXBlLT50cF9mcmVlIChzZWxmKTsKKyt9Cisr CisrLyogUmV0dXJuIGEgZGVzY3JpcHRpb24gb2YgdGhlIE1lbWJ1ZiBvYmplY3QuICAqLworKwor K3N0YXRpYyBQeU9iamVjdCAqCisrbWJweV9zdHIgKFB5T2JqZWN0ICpzZWxmKQorK3sKKysgIG1l bWJ1Zl9vYmplY3QgKm1lbWJ1Zl9vYmogPSAobWVtYnVmX29iamVjdCAqKSBzZWxmOworKworKyAg cmV0dXJuIFB5U3RyaW5nX0Zyb21Gb3JtYXQgKCJtZW1vcnkgYnVmZmVyIGZvciBhZGRyZXNzICVz LCAlcyBieXRlcyBsb25nIiwKKysJCQkgICAgICBwYWRkcmVzcyAobWVtYnVmX29iai0+YWRkciks CisrCQkJICAgICAgcHVsb25nZXN0IChtZW1idWZfb2JqLT5sZW5ndGgpKTsKKyt9CisrCisrc3Rh dGljIFB5X3NzaXplX3QKKytnZXRfcmVhZF9idWZmZXIgKFB5T2JqZWN0ICpzZWxmLCBQeV9zc2l6 ZV90IHNlZ21lbnQsIHZvaWQgKipwdHJwdHIpCisreworKyAgbWVtYnVmX29iamVjdCAqbWVtYnVm X29iaiA9IChtZW1idWZfb2JqZWN0ICopIHNlbGY7CisrCisrICBpZiAoc2VnbWVudCkKKysgICAg eworKyAgICAgIFB5RXJyX1NldFN0cmluZyAoUHlFeGNfU3lzdGVtRXJyb3IsCisrCQkgICAgICAg IlRoZSBtZW1vcnkgYnVmZmVyIHN1cHBvcnRzIG9ubHkgb25lIHNlZ21lbnQuIik7CisrICAgICAg cmV0dXJuIC0xOworKyAgICB9CisrCisrICAqcHRycHRyID0gbWVtYnVmX29iai0+YnVmZmVyOwor KworKyAgcmV0dXJuIG1lbWJ1Zl9vYmotPmxlbmd0aDsKKyt9CisrCisrc3RhdGljIFB5X3NzaXpl X3QKKytnZXRfd3JpdGVfYnVmZmVyIChQeU9iamVjdCAqc2VsZiwgUHlfc3NpemVfdCBzZWdtZW50 LCB2b2lkICoqcHRycHRyKQorK3sKKysgIHJldHVybiBnZXRfcmVhZF9idWZmZXIgKHNlbGYsIHNl Z21lbnQsIHB0cnB0cik7CisrfQorKworK3N0YXRpYyBQeV9zc2l6ZV90CisrZ2V0X3NlZ19jb3Vu dCAoUHlPYmplY3QgKnNlbGYsIFB5X3NzaXplX3QgKmxlbnApCisreworKyAgaWYgKGxlbnApCisr ICAgICpsZW5wID0gKChtZW1idWZfb2JqZWN0ICopIHNlbGYpLT5sZW5ndGg7CisrCisrICByZXR1 cm4gMTsKKyt9CisrCisrc3RhdGljIFB5X3NzaXplX3QKKytnZXRfY2hhcl9idWZmZXIgKFB5T2Jq ZWN0ICpzZWxmLCBQeV9zc2l6ZV90IHNlZ21lbnQsIGNoYXIgKipwdHJwdHIpCisreworKyAgdm9p ZCAqcHRyID0gTlVMTDsKKysgIFB5X3NzaXplX3QgcmV0OworKworKyAgcmV0ID0gZ2V0X3JlYWRf YnVmZmVyIChzZWxmLCBzZWdtZW50LCAmcHRyKTsKKysgICpwdHJwdHIgPSAoY2hhciAqKSBwdHI7 CisrCisrICByZXR1cm4gcmV0OworK30KKysKKysvKiBQeXRob24gZG9lc24ndCBwcm92aWRlIGEg ZGVjZW50IHdheSB0byBnZXQgY29tcGF0aWJpbGl0eSBoZXJlLiAgKi8KKysjaWYgSEFWRV9MSUJQ WVRIT04yXzQKKysjZGVmaW5lIENIQVJCVUZGRVJQUk9DX05BTUUgZ2V0Y2hhcmJ1ZmZlcnByb2MK KysjZWxzZQorKyNkZWZpbmUgQ0hBUkJVRkZFUlBST0NfTkFNRSBjaGFyYnVmZmVycHJvYworKyNl bmRpZgorKworK3N0YXRpYyBQeUJ1ZmZlclByb2NzIGJ1ZmZlcl9wcm9jcyA9IHsKKysgIGdldF9y ZWFkX2J1ZmZlciwKKysgIGdldF93cml0ZV9idWZmZXIsCisrICBnZXRfc2VnX2NvdW50LAorKyAg LyogVGhlIGNhc3QgaGVyZSB3b3JrcyBhcm91bmQgYSBkaWZmZXJlbmNlIGJldHdlZW4gUHl0aG9u IDIuNCBhbmQKKysgICAgIFB5dGhvbiAyLjUuICAqLworKyAgKENIQVJCVUZGRVJQUk9DX05BTUUp IGdldF9jaGFyX2J1ZmZlcgorK307CisrCisrc3RhdGljIFB5VHlwZU9iamVjdCBtZW1idWZfb2Jq ZWN0X3R5cGUgPSB7CisrICBQeU9iamVjdF9IRUFEX0lOSVQgKE5VTEwpCisrICAwLAkJCQkgIC8q b2Jfc2l6ZSovCisrICAiZ2RiLk1lbWJ1ZiIsCQkJICAvKnRwX25hbWUqLworKyAgc2l6ZW9mICht ZW1idWZfb2JqZWN0KSwJICAvKnRwX2Jhc2ljc2l6ZSovCisrICAwLAkJCQkgIC8qdHBfaXRlbXNp emUqLworKyAgbWJweV9kZWFsbG9jLAkJCSAgLyp0cF9kZWFsbG9jKi8KKysgIDAsCQkJCSAgLyp0 cF9wcmludCovCisrICAwLAkJCQkgIC8qdHBfZ2V0YXR0ciovCisrICAwLAkJCQkgIC8qdHBfc2V0 YXR0ciovCisrICAwLAkJCQkgIC8qdHBfY29tcGFyZSovCisrICAwLAkJCQkgIC8qdHBfcmVwciov CisrICAwLAkJCQkgIC8qdHBfYXNfbnVtYmVyKi8KKysgIDAsCQkJCSAgLyp0cF9hc19zZXF1ZW5j ZSovCisrICAwLAkJCQkgIC8qdHBfYXNfbWFwcGluZyovCisrICAwLAkJCQkgIC8qdHBfaGFzaCAq LworKyAgMCwJCQkJICAvKnRwX2NhbGwqLworKyAgbWJweV9zdHIsCQkJICAvKnRwX3N0ciovCisr ICAwLAkJCQkgIC8qdHBfZ2V0YXR0cm8qLworKyAgMCwJCQkJICAvKnRwX3NldGF0dHJvKi8KKysg ICZidWZmZXJfcHJvY3MsCQkgIC8qdHBfYXNfYnVmZmVyKi8KKysgIFB5X1RQRkxBR1NfREVGQVVM VCwJCSAgLyp0cF9mbGFncyovCisrICAiR0RCIG1lbW9yeSBidWZmZXIgb2JqZWN0IiwgCSAgLyp0 cF9kb2MqLworKyAgMCwJCQkJICAvKiB0cF90cmF2ZXJzZSAqLworKyAgMCwJCQkJICAvKiB0cF9j bGVhciAqLworKyAgMCwJCQkJICAvKiB0cF9yaWNoY29tcGFyZSAqLworKyAgMCwJCQkJICAvKiB0 cF93ZWFrbGlzdG9mZnNldCAqLworKyAgMCwJCQkJICAvKiB0cF9pdGVyICovCisrICAwLAkJCQkg IC8qIHRwX2l0ZXJuZXh0ICovCisrICAwLAkJCQkgIC8qIHRwX21ldGhvZHMgKi8KKysgIDAsCQkJ CSAgLyogdHBfbWVtYmVycyAqLworKyAgMCwJCQkJICAvKiB0cF9nZXRzZXQgKi8KKysgIDAsCQkJ CSAgLyogdHBfYmFzZSAqLworKyAgMCwJCQkJICAvKiB0cF9kaWN0ICovCisrICAwLAkJCQkgIC8q IHRwX2Rlc2NyX2dldCAqLworKyAgMCwJCQkJICAvKiB0cF9kZXNjcl9zZXQgKi8KKysgIDAsCQkJ CSAgLyogdHBfZGljdG9mZnNldCAqLworKyAgMCwJCQkJICAvKiB0cF9pbml0ICovCisrICAwLAkJ CQkgIC8qIHRwX2FsbG9jICovCisrICBQeVR5cGVfR2VuZXJpY05ldwkJICAvKiB0cF9uZXcgKi8K Kyt9OworKworK3ZvaWQKKytnZGJweV9pbml0aWFsaXplX21lbWJ1ZiAodm9pZCkKKyt7CisrICBp ZiAoUHlUeXBlX1JlYWR5ICgmbWVtYnVmX29iamVjdF90eXBlKSA8IDApCisrICAgIHJldHVybjsK KysKKysgIFB5X0lOQ1JFRiAoJm1lbWJ1Zl9vYmplY3RfdHlwZSk7CisrICBQeU1vZHVsZV9BZGRP YmplY3QgKGdkYl9tb2R1bGUsICJNZW1idWYiLCAoUHlPYmplY3QgKikgJm1lbWJ1Zl9vYmplY3Rf dHlwZSk7CisrfQorZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYyBiL2dk Yi9weXRob24vcHktcHJldHR5cHJpbnQuYworaW5kZXggNzUzMmFhNS4uODVmMzk0MCAxMDA2NDQK Ky0tLSBhL2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYworKysrIGIvZ2RiL3B5dGhvbi9weS1w cmV0dHlwcmludC5jCitAQCAtMjI3LDEwICsyMjcsMTAgQEAgcHJldHR5X3ByaW50X29uZV92YWx1 ZSAoUHlPYmplY3QgKnByaW50ZXIsIHN0cnVjdCB2YWx1ZSAqKm91dF92YWx1ZSkKKyAJICAgICAg JiYgcmVzdWx0ICE9IFB5X05vbmUpCisgCSAgICB7CisgCSAgICAgICpvdXRfdmFsdWUgPSBjb252 ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIChyZXN1bHQpOworLQkgICAgICBpZiAoUHlFcnJfT2NjdXJy ZWQgKCkpCistCQkqb3V0X3ZhbHVlID0gTlVMTDsKKy0JICAgICAgUHlfREVDUkVGIChyZXN1bHQp OworLQkgICAgICByZXN1bHQgPSBOVUxMOworKyAJICAgICAgaWYgKFB5RXJyX09jY3VycmVkICgp KQorKyAJCSpvdXRfdmFsdWUgPSBOVUxMOworKyAJICAgICAgUHlfREVDUkVGIChyZXN1bHQpOwor KyAJICAgICAgcmVzdWx0ID0gTlVMTDsKKyAJICAgIH0KKyAJfQorICAgICB9CitAQCAtNzYzLDE0 ICs3NjMsNyBAQCBnZGJweV9nZXRfdmFyb2JqX3ByZXR0eV9wcmludGVyIChzdHJ1Y3QgdmFsdWUg KnZhbHVlKQorIHsKKyAgIFB5T2JqZWN0ICp2YWxfb2JqOworICAgUHlPYmplY3QgKnByZXR0eV9w cmludGVyID0gTlVMTDsKKy0gIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4Y2VwdDsK KyAKKy0gIFRSWV9DQVRDSCAoZXhjZXB0LCBSRVRVUk5fTUFTS19BTEwpCistICAgIHsKKy0gICAg ICB2YWx1ZSA9IHZhbHVlX2NvcHkgKHZhbHVlKTsKKy0gICAgfQorLSAgR0RCX1BZX0hBTkRMRV9F WENFUFRJT04gKGV4Y2VwdCk7CistICAKKyAgIHZhbF9vYmogPSB2YWx1ZV90b192YWx1ZV9vYmpl Y3QgKHZhbHVlKTsKKyAgIGlmICghIHZhbF9vYmopCisgICAgIHJldHVybiBOVUxMOwogZGlmZiAt LWdpdCBhL2dkYi9weXRob24vcHktdHlwZS5jIGIvZ2RiL3B5dGhvbi9weS10eXBlLmMKIGluZGV4 IDlhNmIwNzcuLjY1NmQzYTEgMTAwNjQ0CiAtLS0gYS9nZGIvcHl0aG9uL3B5LXR5cGUuYwpAQCAt NTkxNiw3ICs3NTU1LDcgQEAgaW5kZXggOWE2YjA3Ny4uNjU2ZDNhMSAxMDA2NDQKICAKICAMCiBk aWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weS12YWx1ZS5jIGIvZ2RiL3B5dGhvbi9weS12YWx1ZS5j Ci1pbmRleCBhZGI3NjU4Li4xZTFmN2U5IDEwMDY0NAoraW5kZXggMWFhOTQ0My4uNzg2YzQ1YSAx MDA2NDQKIC0tLSBhL2dkYi9weXRob24vcHktdmFsdWUuYwogKysrIGIvZ2RiL3B5dGhvbi9weS12 YWx1ZS5jCiBAQCAtMjgsNiArMjgsNyBAQApAQCAtNTkyNyw3ICs3NTY2LDcgQEAgaW5kZXggYWRi NzY1OC4uMWUxZjdlOSAxMDA2NDQKICAKICAjaWZkZWYgSEFWRV9QWVRIT04KICAKLUBAIC0xMjIw LDYgKzEyMjEsMTcgQEAgZ2RicHlfaXNfdmFsdWVfb2JqZWN0IChQeU9iamVjdCAqb2JqKQorQEAg LTEyMjIsNiArMTIyMywxNyBAQCBnZGJweV9pc192YWx1ZV9vYmplY3QgKFB5T2JqZWN0ICpvYmop CiAgICByZXR1cm4gUHlPYmplY3RfVHlwZUNoZWNrIChvYmosICZ2YWx1ZV9vYmplY3RfdHlwZSk7 CiAgfQogIApAQCAtNTk0NSw3ICs3NTg0LDcgQEAgaW5kZXggYWRiNzY1OC4uMWUxZjdlOSAxMDA2 NDQKICB2b2lkCiAgZ2RicHlfaW5pdGlhbGl6ZV92YWx1ZXMgKHZvaWQpCiAgewotQEAgLTEyMzAs NiArMTI0Miw4IEBAIGdkYnB5X2luaXRpYWxpemVfdmFsdWVzICh2b2lkKQorQEAgLTEyMzIsNiAr MTI0NCw4IEBAIGdkYnB5X2luaXRpYWxpemVfdmFsdWVzICh2b2lkKQogICAgUHlNb2R1bGVfQWRk T2JqZWN0IChnZGJfbW9kdWxlLCAiVmFsdWUiLCAoUHlPYmplY3QgKikgJnZhbHVlX29iamVjdF90 eXBlKTsKICAKICAgIHZhbHVlc19pbl9weXRob24gPSBOVUxMOwpAQCAtNTk1NCw4ICs3NTkzLDE3 NSBAQCBpbmRleCBhZGI3NjU4Li4xZTFmN2U5IDEwMDY0NAogIH0KICAKICAMCitkaWZmIC0tZ2l0 IGEvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaCBiL2dkYi9weXRob24vcHl0aG9uLWludGVy bmFsLmgKK2luZGV4IDgwZDA3NjMuLjAwNDA0MDMgMTAwNjQ0CistLS0gYS9nZGIvcHl0aG9uL3B5 dGhvbi1pbnRlcm5hbC5oCisrKysgYi9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCitAQCAt ODgsMTAgKzg4LDExIEBAIHN0cnVjdCBsYW5ndWFnZV9kZWZuOworIHN0cnVjdCBwcm9ncmFtX3Nw YWNlOworIAorIGV4dGVybiBQeU9iamVjdCAqZ2RiX21vZHVsZTsKKy1leHRlcm4gUHlUeXBlT2Jq ZWN0IHZhbHVlX29iamVjdF90eXBlOworIGV4dGVybiBQeVR5cGVPYmplY3QgYmxvY2tfb2JqZWN0 X3R5cGU7CisrZXh0ZXJuIFB5VHlwZU9iamVjdCB2YWx1ZV9vYmplY3RfdHlwZTsKKyBleHRlcm4g UHlUeXBlT2JqZWN0IHN5bWJvbF9vYmplY3RfdHlwZTsKKyAKKysvKiBVc2VkIGluIHB5dGhvbi1p bmZlcmlvci5jLiAgKi8KKyB0eXBlZGVmIHN0cnVjdAorIHsKKyAgIFB5T2JqZWN0X0hFQUQKK0BA IC0xMzMsNiArMTM0LDEwIEBAIFB5T2JqZWN0ICpibG9ja190b19ibG9ja19vYmplY3QgKHN0cnVj dCBibG9jayAqYmxvY2ssIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKTsKKyBQeU9iamVjdCAqdmFs dWVfdG9fdmFsdWVfb2JqZWN0IChzdHJ1Y3QgdmFsdWUgKnYpOworIFB5T2JqZWN0ICp0eXBlX3Rv X3R5cGVfb2JqZWN0IChzdHJ1Y3QgdHlwZSAqKTsKKyBQeU9iamVjdCAqZnJhbWVfaW5mb190b19m cmFtZV9vYmplY3QgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSk7CisrUHlPYmplY3QgKmZyYW1l X2luZm9fdG9fZnJhbWVfb2JqZWN0IChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUpOworK3RocmVh ZF9vYmplY3QgKmNyZWF0ZV90aHJlYWRfb2JqZWN0IChzdHJ1Y3QgdGhyZWFkX2luZm8gKnRwKTsK Kyt0aHJlYWRfb2JqZWN0ICpmaW5kX3RocmVhZF9vYmplY3QgKHB0aWRfdCBwdGlkKTsKKytQeU9i amVjdCAqZmluZF9pbmZlcmlvcl9vYmplY3QgKGludCBwaWQpOworIAorIFB5T2JqZWN0ICpwc3Bh Y2VfdG9fcHNwYWNlX29iamVjdCAoc3RydWN0IHByb2dyYW1fc3BhY2UgKik7CisgUHlPYmplY3Qg KnBzcHlfZ2V0X3ByaW50ZXJzIChQeU9iamVjdCAqLCB2b2lkICopOworQEAgLTE1Myw3ICsxNTgs OSBAQCBzdHJ1Y3Qgc3ltdGFiICpzeW10YWJfb2JqZWN0X3RvX3N5bXRhYiAoUHlPYmplY3QgKm9i aik7Cisgc3RydWN0IHN5bXRhYl9hbmRfbGluZSAqc2FsX29iamVjdF90b19zeW10YWJfYW5kX2xp bmUgKFB5T2JqZWN0ICpvYmopOworIAorIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9hdXRvX2xvYWQg KHZvaWQpOworKworIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV92YWx1ZXMgKHZvaWQpOworK3ZvaWQg Z2RicHlfaW5pdGlhbGl6ZV9icmVha3BvaW50cyAodm9pZCk7Cisgdm9pZCBnZGJweV9pbml0aWFs aXplX2ZyYW1lcyAodm9pZCk7Cisgdm9pZCBnZGJweV9pbml0aWFsaXplX3N5bXRhYnMgKHZvaWQp OworIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9jb21tYW5kcyAodm9pZCk7CitAQCAtMTYxLDYgKzE2 OCw3IEBAIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9zeW1ib2xzICh2b2lkKTsKKyB2b2lkIGdkYnB5 X2luaXRpYWxpemVfc3ltdGFicyAodm9pZCk7Cisgdm9pZCBnZGJweV9pbml0aWFsaXplX2Jsb2Nr cyAodm9pZCk7Cisgdm9pZCBnZGJweV9pbml0aWFsaXplX3R5cGVzICh2b2lkKTsKKyt2b2lkIGdk YnB5X2luaXRpYWxpemVfYmxvY2tzICh2b2lkKTsKKyB2b2lkIGdkYnB5X2luaXRpYWxpemVfZnVu Y3Rpb25zICh2b2lkKTsKKyB2b2lkIGdkYnB5X2luaXRpYWxpemVfcHNwYWNlICh2b2lkKTsKKyB2 b2lkIGdkYnB5X2luaXRpYWxpemVfb2JqZmlsZSAodm9pZCk7CitAQCAtMTc4LDYgKzE4NiwxMiBA QCBzdHJ1Y3QgY2xlYW51cCAqZW5zdXJlX3B5dGhvbl9lbnYgKHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoLAorIGV4dGVybiBzdHJ1Y3QgZ2RiYXJjaCAqcHl0aG9uX2dkYmFyY2g7CisgZXh0ZXJuIGNv bnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpweXRob25fbGFuZ3VhZ2U7CisgCisrY2hhciAqZ2Ri cHlfcGFyc2VfY29tbWFuZF9uYW1lIChjaGFyICp0ZXh0LAorKwkJCQlzdHJ1Y3QgY21kX2xpc3Rf ZWxlbWVudCAqKipiYXNlX2xpc3QsCisrCQkJCXN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICoqc3Rh cnRfbGlzdCk7CisrCisrUHlPYmplY3QgKmdkYnB5X3BhcmFtZXRlcl92YWx1ZSAoZW51bSB2YXJf dHlwZXMsIHZvaWQgKik7CisrCisgLyogVXNlIHRoaXMgYWZ0ZXIgYSBUUllfRVhDRVBUIHRvIHRo cm93IHRoZSBhcHByb3ByaWF0ZSBQeXRob24KKyAgICBleGNlcHRpb24uICAqLworICNkZWZpbmUg R0RCX1BZX0hBTkRMRV9FWENFUFRJT04oRXhjZXB0aW9uKQkJCQlcCitAQCAtMjI1LDEzICsyMzks MTQgQEAgUHlPYmplY3QgKmFwcGx5X3Zhcm9ial9wcmV0dHlfcHJpbnRlciAoUHlPYmplY3QgKnBy aW50X29iaiwKKyAJCQkJICAgICAgIHN0cnVjdCB2YWx1ZSAqKnJlcGxhY2VtZW50LAorIAkJCQkg ICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7CisgUHlPYmplY3QgKmdkYnB5X2dldF92YXJv YmpfcHJldHR5X3ByaW50ZXIgKHN0cnVjdCB2YWx1ZSAqdmFsdWUpOworK1B5T2JqZWN0ICpnZGJw eV9pbnN0YW50aWF0ZV9wcmludGVyIChQeU9iamVjdCAqY29ucywgUHlPYmplY3QgKnZhbHVlKTsK KyBjaGFyICpnZGJweV9nZXRfZGlzcGxheV9oaW50IChQeU9iamVjdCAqcHJpbnRlcik7CisgUHlP YmplY3QgKmdkYnB5X2RlZmF1bHRfdmlzdWFsaXplciAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0 ICphcmdzKTsKKyAKKy1leHRlcm4gUHlPYmplY3QgKmdkYnB5X2RvY19jc3Q7CisgZXh0ZXJuIFB5 T2JqZWN0ICpnZGJweV9jaGlsZHJlbl9jc3Q7CisgZXh0ZXJuIFB5T2JqZWN0ICpnZGJweV90b19z dHJpbmdfY3N0OworIGV4dGVybiBQeU9iamVjdCAqZ2RicHlfZGlzcGxheV9oaW50X2NzdDsKKytl eHRlcm4gUHlPYmplY3QgKmdkYnB5X2RvY19jc3Q7CisgZXh0ZXJuIFB5T2JqZWN0ICpnZGJweV9l bmFibGVkX2NzdDsKKyAKKyAvKiBFeGNlcHRpb24gdHlwZXMuICAqLworZGlmZiAtLWdpdCBhL2dk Yi9weXRob24vcHl0aG9uLmMgYi9nZGIvcHl0aG9uL3B5dGhvbi5jCitpbmRleCAzNzUwNDJjLi5i NmFmNjQ1IDEwMDY0NAorLS0tIGEvZ2RiL3B5dGhvbi9weXRob24uYworKysrIGIvZ2RiL3B5dGhv bi9weXRob24uYworQEAgLTQ5LDggKzQ5LDExIEBAIHN0YXRpYyBpbnQgZ2RicHlfc2hvdWxkX3By aW50X3N0YWNrID0gMTsKKyAjaW5jbHVkZSAibGluZXNwZWMuaCIKKyAjaW5jbHVkZSAic291cmNl LmgiCisgI2luY2x1ZGUgInZlcnNpb24uaCIKKysjaW5jbHVkZSAiaW5mZXJpb3IuaCIKKysjaW5j bHVkZSAiZ2RidGhyZWFkLmgiCisgI2luY2x1ZGUgInRhcmdldC5oIgorICNpbmNsdWRlICJnZGJ0 aHJlYWQuaCIKKysjaW5jbHVkZSAiZXZlbnQtdG9wLmgiCisgCisgc3RhdGljIFB5TWV0aG9kRGVm IEdkYk1ldGhvZHNbXTsKKyAKK0BAIC03MjgsNiArNzMxLDUzIEBAIGdkYnB5X3ByaW50X3N0YWNr ICh2b2lkKQorIAorIC8qIFJldHVybiB0aGUgY3VycmVudCBQcm9nc3BhY2UuCisgICAgVGhlcmUg YWx3YXlzIGlzIG9uZS4gICovCisrLyogVHJ1ZSBpZiAnZ2RiIC1QJyB3YXMgdXNlZCwgZmFsc2Ug b3RoZXJ3aXNlLiAgKi8KKytzdGF0aWMgaW50IHJ1bm5pbmdfcHl0aG9uX3NjcmlwdDsKKysKKysv KiBUcnVlIGlmIHdlIGFyZSBjdXJyZW50bHkgaW4gYSBjYWxsIHRvICdnZGIuY2xpJywgZmFsc2Ug b3RoZXJ3aXNlLiAgKi8KKytzdGF0aWMgaW50IGluX2NsaTsKKysKKysvKiBFbnRlciB0aGUgY29t bWFuZCBsb29wLiAgKi8KKysKKytzdGF0aWMgUHlPYmplY3QgKgorK2dkYnB5X2NsaSAoUHlPYmpl Y3QgKnVudXNlZDEsIFB5T2JqZWN0ICp1bnVzZWQyKQorK3sKKysgIGlmICghIHJ1bm5pbmdfcHl0 aG9uX3NjcmlwdCB8fCBpbl9jbGkpCisrICAgIHJldHVybiBQeUVycl9Gb3JtYXQgKFB5RXhjX1J1 bnRpbWVFcnJvciwgImNhbm5vdCBpbnZva2UgQ0xJIHJlY3Vyc2l2ZWx5Iik7CisrCisrICBpbl9j bGkgPSAxOworKyAgY2xpX2NvbW1hbmRfbG9vcCAoKTsKKysgIGluX2NsaSA9IDA7CisrCisrICBQ eV9SRVRVUk5fTk9ORTsKKyt9CisrCisrLyogU2V0IHVwIHRoZSBQeXRob24gYXJndW1lbnQgdmVj dG9yIGFuZCBldmFsdWF0ZSBhIHNjcmlwdC4gIFRoaXMgaXMKKysgICB1c2VkIHRvIGltcGxlbWVu dCAnZ2RiIC1QJy4gICovCisrCisrdm9pZAorK3J1bl9weXRob25fc2NyaXB0IChpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCisreworKyAgRklMRSAqaW5wdXQ7CisrCisrICAvKiBXZSBuZXZlciBmcmVl IHRoaXMsIHNpbmNlIHdlIHBsYW4gdG8gZXhpdCBhdCB0aGUgZW5kLiAgKi8KKysgIGVuc3VyZV9w eXRob25fZW52IChnZXRfY3VycmVudF9hcmNoICgpLCBjdXJyZW50X2xhbmd1YWdlKTsKKysKKysg IHJ1bm5pbmdfcHl0aG9uX3NjcmlwdCA9IDE7CisrICBQeVN5c19TZXRBcmd2IChhcmdjIC0gMSwg YXJndiArIDEpOworKyAgaW5wdXQgPSBmb3BlbiAoYXJndlswXSwgInIiKTsKKysgIGlmICghIGlu cHV0KQorKyAgICB7CisrICAgICAgZnByaW50ZiAoc3RkZXJyLCAiY291bGQgbm90IG9wZW4gJXM6 ICVzXG4iLCBhcmd2WzBdLCBzdHJlcnJvciAoZXJybm8pKTsKKysgICAgICBleGl0ICgxKTsKKysg ICAgfQorKyAgUHlSdW5fU2ltcGxlRmlsZSAoaW5wdXQsIGFyZ3ZbMF0pOworKyAgZmNsb3NlIChp bnB1dCk7CisrICBleGl0ICgwKTsKKyt9CisrCisrDAorKworIAorIHN0YXRpYyBQeU9iamVjdCAq CisgZ2RicHlfZ2V0X2N1cnJlbnRfcHJvZ3NwYWNlIChQeU9iamVjdCAqdW51c2VkMSwgUHlPYmpl Y3QgKnVudXNlZDIpCitAQCAtMTEwMiw2ICsxMTUyLDggQEAgc3RhdGljIFB5TWV0aG9kRGVmIEdk Yk1ldGhvZHNbXSA9CisgICAgICJHZXQgYSB2YWx1ZSBmcm9tIGhpc3RvcnkiIH0sCisgICB7ICJl eGVjdXRlIiwgKFB5Q0Z1bmN0aW9uKSBleGVjdXRlX2dkYl9jb21tYW5kLCBNRVRIX1ZBUkFSR1Mg fCBNRVRIX0tFWVdPUkRTLAorICAgICAiRXhlY3V0ZSBhIGdkYiBjb21tYW5kIiB9LAorKyAgeyAi Y2xpIiwgZ2RicHlfY2xpLCBNRVRIX05PQVJHUywKKysgICAgIkVudGVyIHRoZSBnZGIgQ0xJIiB9 LAorICAgeyAicGFyYW1ldGVyIiwgZ2RicHlfcGFyYW1ldGVyLCBNRVRIX1ZBUkFSR1MsCisgICAg ICJSZXR1cm4gYSBnZGIgcGFyYW1ldGVyJ3MgdmFsdWUiIH0sCisgCitkaWZmIC0tZ2l0IGEvZ2Ri L3B5dGhvbi9weXRob24uaCBiL2dkYi9weXRob24vcHl0aG9uLmgKK2luZGV4IDU4ZDk3ZmMuLjkz ZDU2ZWYgMTAwNjQ0CistLS0gYS9nZGIvcHl0aG9uL3B5dGhvbi5oCisrKysgYi9nZGIvcHl0aG9u L3B5dGhvbi5oCitAQCAtMzAsNiArMzAsOCBAQCB2b2lkIGV2YWxfcHl0aG9uX2Zyb21fY29udHJv bF9jb21tYW5kIChzdHJ1Y3QgY29tbWFuZF9saW5lICopOworIAorIHZvaWQgc291cmNlX3B5dGhv bl9zY3JpcHQgKEZJTEUgKnN0cmVhbSwgY29uc3QgY2hhciAqZmlsZSk7CisgCisrdm9pZCBydW5f cHl0aG9uX3NjcmlwdCAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKKysKKyBpbnQgYXBwbHlfdmFs X3ByZXR0eV9wcmludGVyIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFk ZHIsCisgCQkJICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisg CQkJICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiBkaWZmIC0tZ2l0 IGEvZ2RiL3NvbGliLXN2cjQuYyBiL2dkYi9zb2xpYi1zdnI0LmMKLWluZGV4IGVmMDRkZDcuLjUx MmI2ZTQgMTAwNjQ0CitpbmRleCBkNDVjZDkyLi5mNjk1NWU5IDEwMDY0NAogLS0tIGEvZ2RiL3Nv bGliLXN2cjQuYwogKysrIGIvZ2RiL3NvbGliLXN2cjQuYwogQEAgLTEyNzYsNyArMTI3Niw4IEBA IHN2cjRfaW5fZHluc3ltX3Jlc29sdmVfY29kZSAoQ09SRV9BRERSIHBjKQpAQCAtNTk2OSw3ICs3 Nzc1LDcgQEAgaW5kZXggZWYwNGRkNy4uNTEyYjZlNCAxMDA2NDQKICAKICAvKiBHaXZlbiBhbiBl eGVjdXRhYmxlJ3MgQUJGRCBhbmQgdGFyZ2V0LCBjb21wdXRlIHRoZSBlbnRyeS1wb2ludAogZGlm ZiAtLWdpdCBhL2dkYi9zdGFjay5jIGIvZ2RiL3N0YWNrLmMKLWluZGV4IDFkMjM4MDYuLmMyMGRm NDEgMTAwNjQ0CitpbmRleCA0ZmM2MzRmLi5mNmRmN2VlIDEwMDY0NAogLS0tIGEvZ2RiL3N0YWNr LmMKICsrKyBiL2dkYi9zdGFjay5jCiBAQCAtMzY2LDYgKzM2Niw3IEBAIHByaW50X2ZyYW1lX2Fy Z3MgKHN0cnVjdCBzeW1ib2wgKmZ1bmMsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKQEAgLTU5 OTUsNyArNzgwMSw3IEBAIGluZGV4IDFkMjM4MDYuLmMyMGRmNDEgMTAwNjQ0CiAgCSAgICAgICAg fQogIAkgICAgICBlbHNlCiBkaWZmIC0tZ2l0IGEvZ2RiL3N5bW1pc2MuYyBiL2dkYi9zeW1taXNj LmMKLWluZGV4IGIyOTJjM2IuLjRkYjY2MjkgMTAwNjQ0CitpbmRleCA3ZjJkMzhhLi43ZDM1ODll IDEwMDY0NAogLS0tIGEvZ2RiL3N5bW1pc2MuYwogKysrIGIvZ2RiL3N5bW1pc2MuYwogQEAgLTI2 NCw2ICsyNjQsOSBAQCBkdW1wX21zeW1ib2xzIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3Ry dWN0IHVpX2ZpbGUgKm91dGZpbGUpCkBAIC02MDA5LDEwICs3ODE1LDEwIEBAIGluZGV4IGIyOTJj M2IuLjRkYjY2MjkgMTAwNjQ0CiAgCSAgbXNfdHlwZSA9ICdTJzsKICAJICBicmVhazsKIGRpZmYg LS1naXQgYS9nZGIvc3ltdGFiLmMgYi9nZGIvc3ltdGFiLmMKLWluZGV4IDRlNjhmMWIuLmU2ZTkx YmEgMTAwNjQ0CitpbmRleCBiZGYzNGQ2Li5mZTJkYzRjIDEwMDY0NAogLS0tIGEvZ2RiL3N5bXRh Yi5jCiArKysgYi9nZGIvc3ltdGFiLmMKLUBAIC0yOTg4LDcgKzI5ODgsNyBAQCBzZWFyY2hfc3lt Ym9scyAoY2hhciAqcmVnZXhwLCBkb21haW5fZW51bSBraW5kLCBpbnQgbmZpbGVzLCBjaGFyICpm aWxlc1tdLAorQEAgLTMwMDAsNyArMzAwMCw3IEBAIHNlYXJjaF9zeW1ib2xzIChjaGFyICpyZWdl eHAsIGRvbWFpbl9lbnVtIGtpbmQsIGludCBuZmlsZXMsIGNoYXIgKmZpbGVzW10sCiAgICBzdGF0 aWMgY29uc3QgZW51bSBtaW5pbWFsX3N5bWJvbF90eXBlIHR5cGVzM1tdCiAgICAgID0ge21zdF9m aWxlX2RhdGEsIG1zdF9zb2xpYl90cmFtcG9saW5lLCBtc3RfYWJzLCBtc3RfdW5rbm93bn07CiAg ICBzdGF0aWMgY29uc3QgZW51bSBtaW5pbWFsX3N5bWJvbF90eXBlIHR5cGVzNFtdCkBAIC02MDIy LDcgKzc4MjgsNyBAQCBpbmRleCA0ZTY4ZjFiLi5lNmU5MWJhIDEwMDY0NAogICAgZW51bSBtaW5p bWFsX3N5bWJvbF90eXBlIG91cnR5cGUyOwogICAgZW51bSBtaW5pbWFsX3N5bWJvbF90eXBlIG91 cnR5cGUzOwogZGlmZiAtLWdpdCBhL2dkYi9zeW10YWIuaCBiL2dkYi9zeW10YWIuaAotaW5kZXgg ZTg1YjQzMi4uNmQ5N2Q2ZSAxMDA2NDQKK2luZGV4IDY4NjRiOTYuLjY1MWJkNjcgMTAwNjQ0CiAt LS0gYS9nZGIvc3ltdGFiLmgKICsrKyBiL2dkYi9zeW10YWIuaAogQEAgLTI5MCw2ICsyOTAsOSBA QCBlbnVtIG1pbmltYWxfc3ltYm9sX3R5cGUKQEAgLTYwMzUsNyArNzg0MSw3IEBAIGluZGV4IGU4 NWI0MzIuLjZkOTdkNmUgMTAwNjQ0CiAgICBtc3RfZGF0YSwJCQkvKiBHZW5lcmFsbHkgaW5pdGlh bGl6ZWQgZGF0YSAqLwogICAgbXN0X2JzcywJCQkvKiBHZW5lcmFsbHkgdW5pbml0aWFsaXplZCBk YXRhICovCiAgICBtc3RfYWJzLAkJCS8qIEdlbmVyYWxseSBhYnNvbHV0ZSAobm9ucmVsb2NhdGFi bGUpICovCi1AQCAtOTU1LDExICs5NTgsMjUgQEAgZXh0ZXJuIHN0cnVjdCBzeW1ib2wgKmZpbmRf cGNfc2VjdF9mdW5jdGlvbiAoQ09SRV9BRERSLCBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKik7CitAQCAt OTU2LDExICs5NTksMjUgQEAgZXh0ZXJuIHN0cnVjdCBzeW1ib2wgKmZpbmRfcGNfc2VjdF9mdW5j dGlvbiAoQ09SRV9BRERSLCBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKik7CiAgCiAgLyogbG9va3VwIGZ1 bmN0aW9uIGZyb20gYWRkcmVzcywgcmV0dXJuIG5hbWUsIHN0YXJ0IGFkZHIgYW5kIGVuZCBhZGRy ICovCiAgCkBAIC02MDYzLDcgKzc4NjksNyBAQCBpbmRleCBlODViNDMyLi42ZDk3ZDZlIDEwMDY0 NAogIC8qIGxvb2t1cCBwYXJ0aWFsIHN5bWJvbCB0YWJsZSBieSBhZGRyZXNzIGFuZCBzZWN0aW9u ICovCiAgCiAgZXh0ZXJuIHN0cnVjdCBzeW10YWIgKmZpbmRfcGNfc2VjdF9zeW10YWJfdmlhX3Bh cnRpYWwgKENPUkVfQUREUiwKLUBAIC0xMDM0LDYgKzEwNTEsOCBAQCBleHRlcm4gc3RydWN0IG1p bmltYWxfc3ltYm9sICpsb29rdXBfbWluaW1hbF9zeW1ib2xfYnlfcGNfbmFtZQorQEAgLTEwMzUs NiArMTA1Miw4IEBAIGV4dGVybiBzdHJ1Y3QgbWluaW1hbF9zeW1ib2wgKmxvb2t1cF9taW5pbWFs X3N5bWJvbF9ieV9wY19uYW1lCiAgCiAgZXh0ZXJuIHN0cnVjdCBtaW5pbWFsX3N5bWJvbCAqbG9v a3VwX21pbmltYWxfc3ltYm9sX2J5X3BjIChDT1JFX0FERFIpOwogIApAQCAtNjA3Miw2ICs3ODc4 LDI5IEBAIGluZGV4IGU4NWI0MzIuLjZkOTdkNmUgMTAwNjQ0CiAgZXh0ZXJuIHN0cnVjdCBtaW5p bWFsX3N5bWJvbCAqCiAgICAgIGxvb2t1cF9taW5pbWFsX3N5bWJvbF9hbmRfb2JqZmlsZSAoY29u c3QgY2hhciAqLAogIAkJCQkgICAgICAgc3RydWN0IG9iamZpbGUgKiopOworZGlmZiAtLWdpdCBh L2dkYi90YXJnZXQuaCBiL2dkYi90YXJnZXQuaAoraW5kZXggYzM0NjI1Yy4uZDRmY2JmYyAxMDA2 NDQKKy0tLSBhL2dkYi90YXJnZXQuaAorKysrIGIvZ2RiL3RhcmdldC5oCitAQCAtMTM3Miw2ICsx MzcyLDE4IEBAIGV4dGVybiBpbnQgdGFyZ2V0X3NlYXJjaF9tZW1vcnkgKENPUkVfQUREUiBzdGFy dF9hZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMT05HRVNUIHBhdHRl cm5fbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPUkVfQUREUiAqZm91 bmRfYWRkcnApOworIAorKy8qIFV0aWxpdHkgZnVuY3Rpb25zIHdoaWNoIGNhbiBiZSB1c2VkIGJ5 IHNlYXJjaF9tZW1vcnkgaW1wbGVtZW50YXRpb25zLiAgKi8KKysKKyt2b2lkIGFsbG9jYXRlX3Bh dHRlcm5fYnVmZmVyIChjaGFyICoqcGF0dGVybl9idWZwLCBjaGFyICoqcGF0dGVybl9idWZfZW5k LAorKwkJCSAgICAgIFVMT05HRVNUICpwYXR0ZXJuX2J1Zl9zaXplKTsKKysKKyt2b2lkIGluY3Jl YXNlX3BhdHRlcm5fYnVmZmVyIChjaGFyICoqcGF0dGVybl9idWZwLCBjaGFyICoqcGF0dGVybl9i dWZfZW5kLAorKwkJCSAgICAgIFVMT05HRVNUICpwYXR0ZXJuX2J1Zl9zaXplLCBpbnQgdmFsX2J5 dGVzKTsKKysKKytpbnQgc2VhcmNoX21lbW9yeSAoQ09SRV9BRERSICpzdGFydF9hZGRyLCBVTE9O R0VTVCAqc2VhcmNoX3NwYWNlX2xlbiwKKysJCSAgIGNvbnN0IGNoYXIgKnBhdHRlcm5fYnVmLCBV TE9OR0VTVCBwYXR0ZXJuX2xlbiwKKysJCSAgIENPUkVfQUREUiAqZm91bmRfYWRkcik7CisrCisg LyogVHJhY2Vwb2ludC1yZWxhdGVkIG9wZXJhdGlvbnMuICAqLworIAorICNkZWZpbmUgdGFyZ2V0 X3RyYWNlX2luaXQoKSBcCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZf NjQtdmxhLXBvaW50ZXItZm9vLlMgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEt cG9pbnRlci1mb28uUwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKIGluZGV4IDAwMDAwMDAuLjgzZmFh ZjYKQEAgLTkwNDcsNiArMTA4NzYsMjEgQEAgaW5kZXggMDAwMDAwMC4uMjI2ZGM1ZAogKyAgaCA9 ICdoJwogKyAgY2FsbCBmb28gKGcsIGgpCiArZW5kCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdC5l eHAKK2luZGV4IDMwYTcxZGQuLjRiYjhlN2QgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dk Yi5nZGIvc2VsZnRlc3QuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3Qu ZXhwCitAQCAtOTIsNiArOTIsMTAgQEAgcHJvYyBkb19zdGVwc19hbmRfbmV4dHMge30geworIAkJ c2V0IGRlc2NyaXB0aW9uICJzdGVwIG92ZXIgdHR5YXJnIGluaXRpYWxpemF0aW9uIgorIAkJc2V0 IGNvbW1hbmQgInN0ZXAiCisgCSAgICB9CisrCSAgICAtcmUgIi4qcHl0aG9uX3NjcmlwdCA9IDAu KiRnZGJfcHJvbXB0ICQiIHsKKysJCXNldCBkZXNjcmlwdGlvbiAic3RlcCBvdmVyIHB5dGhvbl9z Y3JpcHQgaW5pdGlhbGl6YXRpb24iCisrCQlzZXQgY29tbWFuZCAic3RlcCIKKysJICAgIH0KKyAJ ICAgIC1yZSAiLipwcmVfc3RhdF9jaGFpbiA9IG1ha2VfY29tbWFuZF9zdGF0c19jbGVhbnVwLiok Z2RiX3Byb21wdCAkIiB7CisgCQlzZXQgZGVzY3JpcHRpb24gIm5leHQgb3ZlciBtYWtlX2NvbW1h bmRfc3RhdHNfY2xlYW51cCBhbmQgZXZlcnl0aGluZyBpdCBjYWxscyIKKyAJCXNldCBjb21tYW5k ICJuZXh0IgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLm11bHRpL3dhdGNocG9pbnQt bXVsdGkuYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLm11bHRpL3dhdGNocG9pbnQtbXVsdGkuYwogbmV3 IGZpbGUgbW9kZSAxMDA2NDQKIGluZGV4IDAwMDAwMDAuLjE1M2MxOGIKQEAgLTk2MDksNiArMTE0 NTMsMTI0IEBAIGluZGV4IDAwMDAwMDAuLjI5NTYwMmQKICsgIHMgOj0gJ3Rlc3QnIzAnc3RyaW5n JzsKICsgIHdyaXRlbG4ocyk7IHsgc2V0IGJyZWFrcG9pbnQgMiBoZXJlIH0KICtlbmQuCitkaWZm IC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWNtZC5leHAgYi9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktY21kLmV4cAoraW5kZXggNjZkM2U1My4uMGVlNWY2MyAxMDA2NDQK Ky0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1jbWQuZXhwCisrKysgYi9nZGIvdGVz dHN1aXRlL2dkYi5weXRob24vcHktY21kLmV4cAorQEAgLTIwLDI0ICsyMCw2IEBAIGlmICR0cmFj ZWxldmVsIHRoZW4geworICAgICBzdHJhY2UgJHRyYWNlbGV2ZWwKKyB9CisgCistIyBVc2FnZTog Z2RiX3B5X3Rlc3RfbXVsdGlwbGUgTkFNRSBJTlBVVCBSRVNVTFQge0lOUFVUIFJFU1VMVH0uLi4K Ky0jIFJ1biBhIHRlc3QgbmFtZWQgTkFNRSwgY29uc2lzdGluZyBvZiBtdWx0aXBsZSBsaW5lcyBv ZiBpbnB1dC4KKy0jIEFmdGVyIGVhY2ggaW5wdXQgbGluZSBJTlBVVCwgc2VhcmNoIGZvciByZXN1 bHQgbGluZSBSRVNVTFQuCistIyBTdWNjZWVkIGlmIGFsbCByZXN1bHRzIGFyZSBzZWVuOyBmYWls IG90aGVyd2lzZS4KKy1wcm9jIGdkYl9weV90ZXN0X211bHRpcGxlIHtuYW1lIGFyZ3N9IHsKKy0g ICAgZ2xvYmFsIGdkYl9wcm9tcHQKKy0gICAgZm9yZWFjaCB7aW5wdXQgcmVzdWx0fSAkYXJncyB7 CistCWlmIHtbZ2RiX3Rlc3RfbXVsdGlwbGUgJGlucHV0ICIkbmFtZSAtICRpbnB1dCIgeworLQkg ICAgLXJlICJcW1xyXG5cXSooJHJlc3VsdClcW1xyXG5cXSsoJGdkYl9wcm9tcHQgfCAqPikkIiB7 CistCQlwYXNzICIkbmFtZSAtICRpbnB1dCIKKy0JICAgIH0KKy0JfV19IHsKKy0JICAgIHJldHVy biAxCistCX0KKy0gICAgfQorLSAgICByZXR1cm4gMAorLX0KKy0KKyAjIFN0YXJ0IHdpdGggYSBm cmVzaCBnZGIuCisgCisgZ2RiX2V4aXQKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vcHktZnJhbWUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZyYW1lLmV4 cAoraW5kZXggZTNiNTYyOS4uMmE2M2Q4ZCAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weS1mcmFtZS5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1m cmFtZS5leHAKK0BAIC04Nyw4ICs4Nyw2IEBAIGdkYl90ZXN0ICJweXRob24gcHJpbnQgYmZyYW1l ID09IGdkYi5uZXdlc3RfZnJhbWUoKSIgVHJ1ZSBcCisgCisgZ2RiX3Rlc3QgInB5dGhvbiBwcmlu dCAncmVzdWx0ID0nLCBmMCA9PSBmMSIgIiA9IEZhbHNlIiAidGVzdCBlcXVhbGl0eSBjb21wYXJp c29uIChmYWxzZSkiCisgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAncmVzdWx0ID0nLCBmMCA9PSBm MCIgIiA9IFRydWUiICJ0ZXN0IGVxdWFsaXR5IGNvbXBhcmlzb24gKHRydWUpIgorLWdkYl90ZXN0 ICJweXRob24gcHJpbnQgJ3Jlc3VsdCA9JywgZjAgIT0gZjEiICIgPSBUcnVlIiAidGVzdCBpbmVx dWFsaXR5IGNvbXBhcmlzb24gKHRydWUpIgorLWdkYl90ZXN0ICJweXRob24gcHJpbnQgJ3Jlc3Vs dCA9JywgZjAgIT0gZjAiICIgPSBGYWxzZSIgInRlc3QgaW5lcXVhbGl0eSBjb21wYXJpc29uIChm YWxzZSkiCisgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAncmVzdWx0ID0nLCBmMC5pc192YWxpZCAo KSIgIiA9IFRydWUiICJ0ZXN0IEZyYW1lLmlzX3ZhbGlkIgorIGdkYl90ZXN0ICJweXRob24gcHJp bnQgJ3Jlc3VsdCA9JywgZjAubmFtZSAoKSIgIiA9IGYyIiAidGVzdCBGcmFtZS5uYW1lIgorIGdk Yl90ZXN0ICJweXRob24gcHJpbnQgJ3Jlc3VsdCA9JywgZjAudHlwZSAoKSA9PSBnZGIuTk9STUFM X0ZSQU1FIiAiID0gVHJ1ZSIgInRlc3QgRnJhbWUudHlwZSIKK0BAIC0xMDMsMyArMTAxLDUgQEAg Z2RiX3Rlc3QgInB5dGhvbiBwcmludCAncmVzdWx0ID0nLCBmMC5yZWFkX3ZhciAoJ3ZhcmlhYmxl X3doaWNoX3N1cmVseV9kb2VzbnRfZXgKKyBnZGJfdGVzdCAicHl0aG9uIHByaW50ICdyZXN1bHQg PScsIGYwLnJlYWRfdmFyICgnYScpIiAiID0gMSIgInRlc3QgRnJhbWUucmVhZF92YXIgLSBzdWNj ZXNzIgorIAorIGdkYl90ZXN0ICJweXRob24gcHJpbnQgJ3Jlc3VsdCA9JywgZ2RiLnNlbGVjdGVk X2ZyYW1lICgpID09IGYxIiAiID0gVHJ1ZSIgInRlc3QgZ2RiLnNlbGVjdGVkX2ZyYW1lIgorKwor K2dkYl90ZXN0ICJweXRob24gcHJpbnQgJ3Jlc3VsdCA9JywgZjAuYmxvY2sgKCkiICI8Z2RiLkJs b2NrIG9iamVjdCBhdCAweFxbXFs6eGRpZ2l0OlxdXF0rPiIgInRlc3QgRnJhbWUuYmxvY2siCitk aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZ1bmN0aW9uLmV4cCBiL2dk Yi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mdW5jdGlvbi5leHAKK2luZGV4IGE1YzgwMjUuLjhh NWRjZGEgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnVuY3Rpb24u ZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnVuY3Rpb24uZXhwCitAQCAt MjAsMjQgKzIwLDYgQEAgaWYgJHRyYWNlbGV2ZWwgdGhlbiB7CisgICAgIHN0cmFjZSAkdHJhY2Vs ZXZlbAorIH0KKyAKKy0jIFVzYWdlOiBnZGJfcHlfdGVzdF9tdWx0aXBsZSBOQU1FIElOUFVUIFJF U1VMVCB7SU5QVVQgUkVTVUxUfS4uLgorLSMgUnVuIGEgdGVzdCBuYW1lZCBOQU1FLCBjb25zaXN0 aW5nIG9mIG11bHRpcGxlIGxpbmVzIG9mIGlucHV0LgorLSMgQWZ0ZXIgZWFjaCBpbnB1dCBsaW5l IElOUFVULCBzZWFyY2ggZm9yIHJlc3VsdCBsaW5lIFJFU1VMVC4KKy0jIFN1Y2NlZWQgaWYgYWxs IHJlc3VsdHMgYXJlIHNlZW47IGZhaWwgb3RoZXJ3aXNlLgorLXByb2MgZ2RiX3B5X3Rlc3RfbXVs dGlwbGUge25hbWUgYXJnc30geworLSAgICBnbG9iYWwgZ2RiX3Byb21wdAorLSAgICBmb3JlYWNo IHtpbnB1dCByZXN1bHR9ICRhcmdzIHsKKy0JaWYge1tnZGJfdGVzdF9tdWx0aXBsZSAkaW5wdXQg IiRuYW1lIC0gJGlucHV0IiB7CistCSAgICAtcmUgIlxbXHJcblxdKigkcmVzdWx0KVxbXHJcblxd KygkZ2RiX3Byb21wdCB8ICo+KSQiIHsKKy0JCXBhc3MgIiRuYW1lIC0gJGlucHV0IgorLQkgICAg fQorLQl9XX0geworLQkgICAgcmV0dXJuIDEKKy0JfQorLSAgICB9CistICAgIHJldHVybiAwCist fQorLQorICMgU3RhcnQgd2l0aCBhIGZyZXNoIGdkYi4KKyAKKyBnZGJfZXhpdAorZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAgYi9nZGIvdGVz dHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQuZXhwCitpbmRleCBlNGE2YzM4Li4wOWFj MDY1IDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50 LmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50LmV4cAor QEAgLTk5LDYgKzk5LDggQEAgcHJvYyBydW5fbGFuZ190ZXN0cyB7bGFuZ30geworIAorICAgICBn ZGJfdGVzdCAicHJpbnQgYyIgIiA9IGNvbnRhaW5lciBcImNvbnRhaW5lclwiIHdpdGggMiBlbGVt ZW50cyA9IHskbmwgKi4wLiA9IDIzLCRubCAqLjEuID0gNzIkbmx9IgorIAorKyAgICBnZGJfdGVz dCAicHJpbnQgbnVsbHN0ciIgIlJ1bnRpbWVFcnJvcjogRXJyb3IgcmVhZGluZyBzdHJpbmcgZnJv bSBpbmZlcmlvci4qIgorKworICAgICBnZGJfdGVzdCAicHJpbnQgbnN0eXBlIiAiID0geyRubCAq LjAuID0gNywkbmwgKi4xLiA9IDQyJG5sfSIKKyAgICAgZ2RiX3Rlc3QgImNvbnRpbnVlIiAiUHJv Z3JhbSBleGl0ZWQgbm9ybWFsbHlcLiIKKyAKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktdmFsdWUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVl LmV4cAoraW5kZXggZTAxMmQ1My4uMWJkOWU1MyAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9weS12YWx1ZS5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9w eS12YWx1ZS5leHAKK0BAIC0zMTgsNiArMzE4LDE1IEBAIHByb2MgdGVzdF92YWx1ZV9hZnRlcl9k ZWF0aCB7fSB7CisgICAgICJwcmludCB2YWx1ZSdzIHR5cGUiCisgfQorIAorKyMgUmVncmVzc2lv biB0ZXN0IGZvciBhIGNhc3QgZmFpbHVyZS4gIFRoZSBidWcgd2FzIHRoYXQgaWYgd2UgY2FzdCBh CisrIyB2YWx1ZSB0byBpdHMgb3duIHR5cGUsIGdkYiBjb3VsZCBjcmFzaC4gIFRoaXMgaGFwcGVu ZWQgYmVjYXVzZSB3ZQorKyMgY291bGQgZW5kIHVwIGRvdWJsZS1mcmVlaW5nIGEgc3RydWN0IHZh bHVlLgorK3Byb2MgdGVzdF9jYXN0X3JlZ3Jlc3Npb24ge30geworKyAgZ2RiX3Rlc3QgInB5dGhv biB2ID0gZ2RiLlZhbHVlKDUpIiAiIiAiY3JlYXRlIHZhbHVlIGZvciBjYXN0IHRlc3QiCisrICBn ZGJfdGVzdCAicHl0aG9uIHYgPSB2LmNhc3Qodi50eXBlKSIgIiIgImNhc3QgdmFsdWUgZm9yIGNh c3QgdGVzdCIKKysgIGdkYl90ZXN0ICJweXRob24gcHJpbnQgdiIgIjUiICJwcmludCB2YWx1ZSBm b3IgY2FzdCB0ZXN0IgorK30KKysKKyAjIFJlZ3Jlc3Npb24gdGVzdCBmb3IgaW52YWxpZCBzdWJz Y3JpcHQgb3BlcmF0aW9ucy4gIFRoZSBidWcgd2FzIHRoYXQKKyAjIHRoZSB0eXBlIG9mIHRoZSB2 YWx1ZSB3YXMgbm90IGJlaW5nIGNoZWNrZWQgYmVmb3JlIGFsbG93aW5nIGEKKyAjIHN1YnNjcmlw dCBvcGVyYXRpb24gdG8gcHJvY2VlZC4KK0BAIC00NTUsNiArNDY0LDcgQEAgdGVzdF92YWx1ZV9p bl9pbmZlcmlvcgorIHRlc3RfaW5mZXJpb3JfZnVuY3Rpb25fY2FsbAorIHRlc3RfbGF6eV9zdHJp bmdzCisgdGVzdF92YWx1ZV9hZnRlcl9kZWF0aAorK3Rlc3RfY2FzdF9yZWdyZXNzaW9uCisgCisg IyBUaGUgZm9sbG93aW5nIHRlc3QgcmVjb21waWxlcyB0aGUgYmluYXJ5IHRvIHRlc3QgZWl0aGVy IEMgb3IgQysrCisgIyB2YWx1ZXMuIAogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnRo cmVhZHMvd2F0Y2hwb2ludC1mb3JrLWNoaWxkLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRz L3dhdGNocG9pbnQtZm9yay1jaGlsZC5jCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAogaW5kZXggMDAw MDAwMC4uYTJhZDI5YQpAQCAtMTAyNjIsNiArMTIyMjQsMTggQEAgaW5kZXggMDAwMDAwMC4uMzFm NzY1NgogKwogK2V4dGVybiB2b2lkIG1hcmtlciAodm9pZCk7CiArZXh0ZXJuIHZvaWQgZm9ya29m ZiAoaW50IG5yKTsKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwIGIvZ2Ri L3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAoraW5kZXggNWEzZjFmYy4uNjI0NjZmOCAxMDA2NDQKKy0t LSBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvbGliL2dk Yi5leHAKK0BAIC0yOCw2ICsyOCw3IEBAIGlmIHskdG9vbCA9PSAiIn0geworIH0KKyAKKyBsb2Fk X2xpYiBsaWJnbG9zcy5leHAKKytsb2FkX2xpYiBweXRob24tc3VwcG9ydC5leHAKKyAKKyBnbG9i YWwgR0RCCisgCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4cCBiL2dk Yi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAKIGluZGV4IDg5MWRhMzcuLjIzNmM1Y2EgMTAwNjQ0 CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhwCkBAIC0xMDI5Nyw4ICsxMjI3MSw2 NyBAQCBpbmRleCA4OTFkYTM3Li4yMzZjNWNhIDEwMDY0NAogICAgICB9CiAgICAgIHNldCBwYXNj YWxfaW5pdF9kb25lIDEKICB9ICAgCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvcHl0 aG9uLXN1cHBvcnQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvcHl0aG9uLXN1cHBvcnQuZXhwCitu ZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uYjhlOTgzNgorLS0tIC9kZXYvbnVs bAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvcHl0aG9uLXN1cHBvcnQuZXhwCitAQCAtMCwwICsx LDUzIEBACisrZ2xvYmFsIHB5dGhvbl9zdXBwb3J0ZWRfc2F2ZWQKKysKKysjIFJldHVybiAxIGlm IFB5dGhvbiBzY3JpcHRpbmcgaXMgc3VwcG9ydGVkIGluIEdEQiwgMCBpZiBub3QuCisrcHJvYyBw eXRob25fc3VwcG9ydGVkIHsgfSB7CisrICBnbG9iYWwgZ2RiX3Byb21wdAorKyAgZ2xvYmFsIHB5 dGhvbl9zdXBwb3J0ZWRfc2F2ZWQKKysKKysgIGlmIFtpbmZvIGV4aXN0cyBweXRob25fc3VwcG9y dGVkX3NhdmVkXSB7CisrICAgICAgdmVyYm9zZSAicHl0aG9uX3N1cHBvcnRlZDogIHJldHVybmlu ZyBzYXZlZCAkcHl0aG9uX3N1cHBvcnRlZF9zYXZlZCIgMgorKyAgICAgIHJldHVybiAkcHl0aG9u X3N1cHBvcnRlZF9zYXZlZAorKyAgfQorKworKyAgZ2RiX3Rlc3RfbXVsdGlwbGUgInB5dGhvbiBw cmludCAnaGVsbG8sIHdvcmxkISciICJ2ZXJpZnkgcHl0aG9uIHN1cHBvcnQiIHsKKysgICAgLXJl ICJub3Qgc3VwcG9ydGVkLiokZ2RiX3Byb21wdCAkIgl7CisrICAgICAgcmV0dXJuIFtzZXQgcHl0 aG9uX3N1cHBvcnRlZF9zYXZlZCAwXQorKyAgICB9CisrICAgIC1yZSAiJGdkYl9wcm9tcHQgJCIJ eworKyAgICAgIHJldHVybiBbc2V0IHB5dGhvbl9zdXBwb3J0ZWRfc2F2ZWQgMV0KKysgICAgfQor KyAgfQorKworKyAgcmV0dXJuIFtzZXQgcHl0aG9uX3N1cHBvcnRlZF9zYXZlZCAwXQorK30KKysK KysjIFJ1biBhIGNvbW1hbmQgaW4gR0RCLCBhbmQgcmVwb3J0IGEgZmFpbHVyZSBpZiBhIFB5dGhv biBleGNlcHRpb24gaXMgdGhyb3duLgorKyMgSWYgcmVwb3J0X3Bhc3MgaXMgdHJ1ZSwgcmVwb3J0 IGEgcGFzcyBpZiBubyBleGNlcHRpb24gaXMgdGhyb3duLgorK3Byb2MgZ2RiX3B5X3Rlc3Rfc2ls ZW50X2NtZCB7Y21kIG5hbWUgcmVwb3J0X3Bhc3N9IHsKKysgIGdsb2JhbCBnZGJfcHJvbXB0Cisr CisrICBnZGJfdGVzdF9tdWx0aXBsZSAkY21kICRuYW1lIHsKKysgICAgICAtcmUgIlRyYWNlYmFj ay4qJGdkYl9wcm9tcHQgJCIgIHsgZmFpbCAkbmFtZSB9CisrICAgICAgLXJlICIkZ2RiX3Byb21w dCAkIgkgICAgICB7IGlmICRyZXBvcnRfcGFzcyB7IHBhc3MgJG5hbWUgfSB9CisrICB9CisrfQor KworKyMgVXNhZ2U6IGdkYl9weV90ZXN0X211bHRpcGxlIE5BTUUgSU5QVVQgUkVTVUxUIHtJTlBV VCBSRVNVTFR9Li4uCisrIyBSdW4gYSB0ZXN0IG5hbWVkIE5BTUUsIGNvbnNpc3Rpbmcgb2YgbXVs dGlwbGUgbGluZXMgb2YgaW5wdXQuCisrIyBBZnRlciBlYWNoIGlucHV0IGxpbmUgSU5QVVQsIHNl YXJjaCBmb3IgcmVzdWx0IGxpbmUgUkVTVUxULgorKyMgU3VjY2VlZCBpZiBhbGwgcmVzdWx0cyBh cmUgc2VlbjsgZmFpbCBvdGhlcndpc2UuCisrcHJvYyBnZGJfcHlfdGVzdF9tdWx0aXBsZSB7bmFt ZSBhcmdzfSB7CisrICAgIGdsb2JhbCBnZGJfcHJvbXB0CisrCisrICAgIGZvcmVhY2gge2lucHV0 IHJlc3VsdH0gJGFyZ3MgeworKwlpZiB7W2dkYl90ZXN0X211bHRpcGxlICRpbnB1dCAiJG5hbWUg LSAkaW5wdXQiIHsKKysJICAgIC1yZSAiXFtcclxuXF0qKCRyZXN1bHQpXFtcclxuXF0rKCRnZGJf cHJvbXB0IHwgKj4pJCIgeworKwkJcGFzcyAiJG5hbWUgLSAkaW5wdXQiCisrCSAgICB9CisrCX1d fSB7CisrCSAgICByZXR1cm4gMQorKwl9CisrICAgIH0KKysgICAgcmV0dXJuIDAKKyt9CiBkaWZm IC0tZ2l0IGEvZ2RiL3RvcC5jIGIvZ2RiL3RvcC5jCi1pbmRleCA3MDJlMDViLi5hNDFjZGM2IDEw MDY0NAoraW5kZXggZTBmZWJhNS4uZTg5ODFkZCAxMDA2NDQKIC0tLSBhL2dkYi90b3AuYwogKysr IGIvZ2RiL3RvcC5jCiBAQCAtMzQzLDYgKzM0Myw3IEBAIHZvaWQKQEAgLTEwMzY3LDEwICsxMjQw MCwxMCBAQCBpbmRleCBhMWM0NGYyLi4wMzZkOTM5IDEwMDY0NAogIAogIHN0YXRpYyB2b2lkCiBk aWZmIC0tZ2l0IGEvZ2RiL3V0aWxzLmMgYi9nZGIvdXRpbHMuYwotaW5kZXggMmI1NTQ0OS4uNmI0 ODFjZCAxMDA2NDQKK2luZGV4IDk4NWYyMTkuLmNjYjA2OGUgMTAwNjQ0CiAtLS0gYS9nZGIvdXRp bHMuYwogKysrIGIvZ2RiL3V0aWxzLmMKLUBAIC0yMTk4LDYgKzIxOTgsMzYgQEAgc2V0X2JhdGNo X2ZsYWdfYW5kX21ha2VfY2xlYW51cF9yZXN0b3JlX3BhZ2VfaW5mbyAodm9pZCkKK0BAIC0yMjA2 LDYgKzIyMDYsMzYgQEAgc2V0X2JhdGNoX2ZsYWdfYW5kX21ha2VfY2xlYW51cF9yZXN0b3JlX3Bh Z2VfaW5mbyAodm9pZCkKICAgIHJldHVybiBiYWNrX3RvOwogIH0KICAKQEAgLTEwNDA4LDcgKzEy NDQxLDcgQEAgaW5kZXggMmI1NTQ0OS4uNmI0ODFjZCAxMDA2NDQKICAKICBzdGF0aWMgdm9pZAog ZGlmZiAtLWdpdCBhL2dkYi92YWxhcml0aC5jIGIvZ2RiL3ZhbGFyaXRoLmMKLWluZGV4IGYyMDBi MmMuLjQ5MjFiNTQgMTAwNjQ0CitpbmRleCAxOGU4OGI3Li45ZjkwYWNiIDEwMDY0NAogLS0tIGEv Z2RiL3ZhbGFyaXRoLmMKICsrKyBiL2dkYi92YWxhcml0aC5jCiBAQCAtMTY1LDEyICsxNjUsMjYg QEAgdmFsdWVfc3Vic2NyaXB0IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBMT05HRVNUIGluZGV4KQpA QCAtMTA1MDIsNyArMTI1MzUsNyBAQCBpbmRleCBmMjAwYjJjLi40OTIxYjU0IDEwMDY0NAogIH0K ICAKIGRpZmYgLS1naXQgYS9nZGIvdmFsb3BzLmMgYi9nZGIvdmFsb3BzLmMKLWluZGV4IGM2NmM0 MWUuLjhkNzYyNTkgMTAwNjQ0CitpbmRleCBmZGJiNzAyLi5mOTNmOTRhIDEwMDY0NAogLS0tIGEv Z2RiL3ZhbG9wcy5jCiArKysgYi9nZGIvdmFsb3BzLmMKIEBAIC0zOCw2ICszOCw3IEBACkBAIC0x MDUxMyw3ICsxMjU0Niw3IEBAIGluZGV4IGM2NmM0MWUuLjhkNzYyNTkgMTAwNjQ0CiAgCiAgI2lu Y2x1ZGUgPGVycm5vLmg+CiAgI2luY2x1ZGUgImdkYl9zdHJpbmcuaCIKLUBAIC05MDEsNiArOTAy LDY1IEBAIHZhbHVlX29uZSAoc3RydWN0IHR5cGUgKnR5cGUsIGVudW0gbHZhbF90eXBlIGx2KQor QEAgLTkwNyw2ICs5MDgsNjUgQEAgdmFsdWVfb25lIChzdHJ1Y3QgdHlwZSAqdHlwZSwgZW51bSBs dmFsX3R5cGUgbHYpCiAgICByZXR1cm4gdmFsOwogIH0KICAKQEAgLTEwNTc5LDcgKzEyNjEyLDcg QEAgaW5kZXggYzY2YzQxZS4uOGQ3NjI1OSAxMDA2NDQKICAvKiBIZWxwZXIgZnVuY3Rpb24gZm9y IHZhbHVlX2F0LCB2YWx1ZV9hdF9sYXp5LCBhbmQgdmFsdWVfYXRfbGF6eV9zdGFjay4gICovCiAg CiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCi1AQCAtOTk5LDE1ICsxMDU5LDIxIEBAIHZhbHVlX2Zl dGNoX2xhenkgKHN0cnVjdCB2YWx1ZSAqdmFsKQorQEAgLTEwMDUsMTUgKzEwNjUsMjEgQEAgdmFs dWVfZmV0Y2hfbGF6eSAoc3RydWN0IHZhbHVlICp2YWwpCiAgICAgIH0KICAgIGVsc2UgaWYgKFZB TFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9tZW1vcnkpCiAgICAgIHsKQEAgLTEwNjA4LDcgKzEyNjQx LDcgQEAgaW5kZXggYzY2YzQxZS4uOGQ3NjI1OSAxMDA2NDQKICAJfQogICAgICB9CiAgICBlbHNl IGlmIChWQUxVRV9MVkFMICh2YWwpID09IGx2YWxfcmVnaXN0ZXIpCi1AQCAtMTQxOCw3ICsxNDg0 LDE4IEBAIGFkZHJlc3Nfb2ZfdmFyaWFibGUgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGJs b2NrICpiKQorQEAgLTE0MjcsNyArMTQ5MywxOCBAQCBhZGRyZXNzX29mX3ZhcmlhYmxlIChzdHJ1 Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBibG9jayAqYikKICAgIGlmICgoVkFMVUVfTFZBTCAodmFs KSA9PSBsdmFsX21lbW9yeSAmJiB2YWx1ZV9sYXp5ICh2YWwpKQogICAgICAgIHx8IFRZUEVfQ09E RSAodHlwZSkgPT0gVFlQRV9DT0RFX0ZVTkMpCiAgICAgIHsKQEAgLTEwNjI4LDcgKzEyNjYxLDcg QEAgaW5kZXggYzY2YzQxZS4uOGQ3NjI1OSAxMDA2NDQKICAKICAgICAgICByZXR1cm4gdmFsdWVf ZnJvbV9wb2ludGVyIChsb29rdXBfcG9pbnRlcl90eXBlICh0eXBlKSwgYWRkcik7CiAgICAgIH0K LUBAIC0xNTI2LDYgKzE2MDMsNyBAQCBzdHJ1Y3QgdmFsdWUgKgorQEAgLTE1MzUsNiArMTYxMiw3 IEBAIHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVfY29lcmNlX2FycmF5IChzdHJ1Y3QgdmFsdWUgKmFy ZzEpCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBl IChhcmcxKSk7CkBAIC0xMDYzNiw3ICsxMjY2OSw3IEBAIGluZGV4IGM2NmM0MWUuLjhkNzYyNTkg MTAwNjQ0CiAgCiAgICAvKiBJZiB0aGUgdXNlciB0cmllcyB0byBkbyBzb21ldGhpbmcgcmVxdWly aW5nIGEgcG9pbnRlciB3aXRoIGFuCiAgICAgICBhcnJheSB0aGF0IGhhcyBub3QgeWV0IGJlZW4g cHVzaGVkIHRvIHRoZSB0YXJnZXQsIHRoZW4gdGhpcyB3b3VsZAotQEAgLTE1MzUsOCArMTYxMywx MiBAQCB2YWx1ZV9jb2VyY2VfYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJnMSkKK0BAIC0xNTQ0LDgg KzE2MjIsMTIgQEAgdmFsdWVfY29lcmNlX2FycmF5IChzdHJ1Y3QgdmFsdWUgKmFyZzEpCiAgICBp ZiAoVkFMVUVfTFZBTCAoYXJnMSkgIT0gbHZhbF9tZW1vcnkpCiAgICAgIGVycm9yIChfKCJBdHRl bXB0IHRvIHRha2UgYWRkcmVzcyBvZiB2YWx1ZSBub3QgbG9jYXRlZCBpbiBtZW1vcnkuIikpOwog IApAQCAtMTA2NTEsNyArMTI2ODQsNyBAQCBpbmRleCBjNjZjNDFlLi44ZDc2MjU5IDEwMDY0NAog IAogIC8qIEdpdmVuIGEgdmFsdWUgd2hpY2ggaXMgYSBmdW5jdGlvbiwgcmV0dXJuIGEgdmFsdWUg d2hpY2ggaXMgYSBwb2ludGVyCiBkaWZmIC0tZ2l0IGEvZ2RiL3ZhbHByaW50LmMgYi9nZGIvdmFs cHJpbnQuYwotaW5kZXggMWIxNmYxZi4uZWVmN2Q2MSAxMDA2NDQKK2luZGV4IGQ3OGRmNWMuLmU0 ZmU3ZjkgMTAwNjQ0CiAtLS0gYS9nZGIvdmFscHJpbnQuYwogKysrIGIvZ2RiL3ZhbHByaW50LmMK IEBAIC0zNiw2ICszNiw3IEBACkBAIC0xMDY2Miw3ICsxMjY5NSw3IEBAIGluZGV4IDFiMTZmMWYu LmVlZjdkNjEgMTAwNjQ0CiAgCiAgI2luY2x1ZGUgPGVycm5vLmg+CiAgCi1AQCAtMjM3LDcgKzIz OCw2IEBAIHNjYWxhcl90eXBlX3AgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTIzOSw3ICsyNDAs NiBAQCBzY2FsYXJfdHlwZV9wIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICAgY2FzZSBUWVBFX0NP REVfU1RSVUNUOgogICAgICBjYXNlIFRZUEVfQ09ERV9VTklPTjoKICAgICAgY2FzZSBUWVBFX0NP REVfU0VUOgpAQCAtMTA2NzAsNyArMTI3MDMsNyBAQCBpbmRleCAxYjE2ZjFmLi5lZWY3ZDYxIDEw MDY0NAogICAgICBjYXNlIFRZUEVfQ09ERV9CSVRTVFJJTkc6CiAgICAgICAgcmV0dXJuIDA7CiAg ICAgIGRlZmF1bHQ6Ci1AQCAtMTExMSw2ICsxMTExLDcgQEAgdmFsX3ByaW50X2FycmF5X2VsZW1l bnRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCitAQCAtMTEx NSw2ICsxMTE1LDcgQEAgdmFsX3ByaW50X2FycmF5X2VsZW1lbnRzIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCiAgewogICAgdW5zaWduZWQgaW50IHRoaW5nc19w cmludGVkID0gMDsKICAgIHVuc2lnbmVkIGxlbjsKQEAgLTEwNjc4LDcgKzEyNzExLDcgQEAgaW5k ZXggMWIxNmYxZi4uZWVmN2Q2MSAxMDA2NDQKICAgIHN0cnVjdCB0eXBlICplbHR0eXBlLCAqaW5k ZXhfdHlwZTsKICAgIHVuc2lnbmVkIGVsdGxlbjsKICAgIC8qIFBvc2l0aW9uIG9mIHRoZSBhcnJh eSBlbGVtZW50IHdlIGFyZSBleGFtaW5pbmcgdG8gc2VlCi1AQCAtMTExOSw5ICsxMTIwLDMzIEBA IHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9i eXRlICp2YWxhZGRyLAorQEAgLTExMjMsOSArMTEyNCwzMyBAQCB2YWxfcHJpbnRfYXJyYXlfZWxl bWVudHMgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKICAgIC8q IE51bWJlciBvZiByZXBldGl0aW9ucyB3ZSBoYXZlIGRldGVjdGVkIHNvIGZhci4gICovCiAgICB1 bnNpZ25lZCBpbnQgcmVwczsKICAgIExPTkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5kOwpAQCAt MTA3MTQsNyArMTI3NDcsNyBAQCBpbmRleCAxYjE2ZjFmLi5lZWY3ZDYxIDEwMDY0NAogICAgaW5k ZXhfdHlwZSA9IFRZUEVfSU5ERVhfVFlQRSAodHlwZSk7CiAgCiAgICBpZiAoZ2V0X2FycmF5X2Jv dW5kcyAodHlwZSwgJmxvd19ib3VuZCwgJmhpZ2hfYm91bmQpKQotQEAgLTExOTYsNiArMTIyMSw4 IEBAIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdk Yl9ieXRlICp2YWxhZGRyLAorQEAgLTEyMDAsNiArMTIyNSw4IEBAIHZhbF9wcmludF9hcnJheV9l bGVtZW50cyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAogICAg ICB7CiAgICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiLi4uIik7CiAgICAgIH0KQEAg LTEwNzI0LDcgKzEyNzU3LDcgQEAgaW5kZXggMWIxNmYxZi4uZWVmN2Q2MSAxMDA2NDQKICAKICAv KiBSZWFkIExFTiBieXRlcyBvZiB0YXJnZXQgbWVtb3J5IGF0IGFkZHJlc3MgTUVNQUREUiwgcGxh Y2luZyB0aGUKIGRpZmYgLS1naXQgYS9nZGIvdmFsdWUuYyBiL2dkYi92YWx1ZS5jCi1pbmRleCA1 ODA2N2U4Li44MmVmZWYwIDEwMDY0NAoraW5kZXggMWM1MDQyOC4uOWIxYjQzOCAxMDA2NDQKIC0t LSBhL2dkYi92YWx1ZS5jCiArKysgYi9nZGIvdmFsdWUuYwogQEAgLTM5LDYgKzM5LDcgQEAKQEAg LTEwNzY0LDcgKzEyNzk3LDcgQEAgaW5kZXggNTgwNjdlOC4uODJlZmVmMCAxMDA2NDQKICB9CiAg CiAgDAotQEAgLTEwMDksNiArMTAxOSwyOSBAQCBzaG93X3ZhbHVlcyAoY2hhciAqbnVtX2V4cCwg aW50IGZyb21fdHR5KQorQEAgLTEwMTAsNiArMTAyMCwyOSBAQCBzaG93X3ZhbHVlcyAoY2hhciAq bnVtX2V4cCwgaW50IGZyb21fdHR5KQogICAgICAgIG51bV9leHBbMV0gPSAnXDAnOwogICAgICB9 CiAgfQpAQCAtMTA3OTQsNyArMTI4MjcsNyBAQCBpbmRleCA1ODA2N2U4Li44MmVmZWYwIDEwMDY0 NAogIAwKICAvKiBJbnRlcm5hbCB2YXJpYWJsZXMuICBUaGVzZSBhcmUgdmFyaWFibGVzIHdpdGhp biB0aGUgZGVidWdnZXIKICAgICB0aGF0IGhvbGQgdmFsdWVzIGFzc2lnbmVkIGJ5IGRlYnVnZ2Vy IGNvbW1hbmRzLgotQEAgLTE1MDMsNiArMTUzNiw0MCBAQCBjYWxsX2ludGVybmFsX2Z1bmN0aW9u IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKK0BAIC0xNTA1LDYgKzE1MzgsNDAgQEAgY2FsbF9p bnRlcm5hbF9mdW5jdGlvbiAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiAgICByZXR1cm4gKCpp Zm4tPmhhbmRsZXIpIChnZGJhcmNoLCBsYW5ndWFnZSwgaWZuLT5jb29raWUsIGFyZ2MsIGFyZ3Yp OwogIH0KICAKQEAgLTEwODM1LDcgKzEyODY4LDcgQEAgaW5kZXggNTgwNjdlOC4uODJlZmVmMCAx MDA2NDQKICAvKiBUaGUgJ2Z1bmN0aW9uJyBjb21tYW5kLiAgVGhpcyBkb2VzIG5vdGhpbmcgLS0g aXQgaXMganVzdCBhCiAgICAgcGxhY2Vob2xkZXIgdG8gbGV0ICJoZWxwIGZ1bmN0aW9uIE5BTUUi IHdvcmsuICBUaGlzIGlzIGFsc28gdXNlZCBhcwogICAgIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0 aGUgc3ViLWNvbW1hbmQgdGhhdCBpcyBjcmVhdGVkIHdoZW4KLUBAIC0xNTUwLDExICsxNjE3LDEw IEBAIHByZXNlcnZlX29uZV92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwgc3RydWN0IG9iamZp bGUgKm9iamZpbGUsCitAQCAtMTU1MiwxMSArMTYxOSwxMCBAQCBwcmVzZXJ2ZV9vbmVfdmFsdWUg KHN0cnVjdCB2YWx1ZSAqdmFsdWUsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogIAkJICAgIGh0 YWJfdCBjb3BpZWRfdHlwZXMpCiAgewogICAgaWYgKFRZUEVfT0JKRklMRSAodmFsdWUtPnR5cGUp ID09IG9iamZpbGUpCkBAIC0xMDg0OSw3ICsxMjg4Miw3IEBAIGluZGV4IDU4MDY3ZTguLjgyZWZl ZjAgMTAwNjQ0CiAgCQkJCQkJIGNvcGllZF90eXBlcyk7CiAgfQogIAotQEAgLTE1NjksMTMgKzE2 MzUsMTMgQEAgcHJlc2VydmVfb25lX2ludGVybmFsdmFyIChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZh ciwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtMTU3MSwxMyArMTYzNywxMyBAQCBwcmVz ZXJ2ZV9vbmVfaW50ZXJuYWx2YXIgKHN0cnVjdCBpbnRlcm5hbHZhciAqdmFyLCBzdHJ1Y3Qgb2Jq ZmlsZSAqb2JqZmlsZSwKICAgICAgY2FzZSBJTlRFUk5BTFZBUl9JTlRFR0VSOgogICAgICAgIGlm ICh2YXItPnUuaW50ZWdlci50eXBlICYmIFRZUEVfT0JKRklMRSAodmFyLT51LmludGVnZXIudHlw ZSkgPT0gb2JqZmlsZSkKICAJdmFyLT51LmludGVnZXIudHlwZQpAQCAtMTA4NjUsNyArMTI4OTgs NyBAQCBpbmRleCA1ODA2N2U4Li44MmVmZWYwIDEwMDY0NAogICAgICAgIGJyZWFrOwogIAogICAg ICBjYXNlIElOVEVSTkFMVkFSX1ZBTFVFOgotQEAgLTI0MzgsNyArMjUwNCwyNCBAQCB2YWx1ZV9m cm9tX2RlY2Zsb2F0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKmRlYykKK0BA IC0yNDQyLDcgKzI1MDgsMjQgQEAgdmFsdWVfZnJvbV9kZWNmbG9hdCAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGdkYl9ieXRlICpkZWMpCiAgc3RydWN0IHZhbHVlICoKICBjb2VyY2VfcmVmIChz dHJ1Y3QgdmFsdWUgKmFyZykKICB7CkBAIC0xMDg5MSw3ICsxMjkyNCw3IEBAIGluZGV4IDU4MDY3 ZTguLjgyZWZlZjAgMTAwNjQ0CiAgCiAgICBpZiAoVFlQRV9DT0RFICh2YWx1ZV90eXBlX2FyZ190 bXApID09IFRZUEVfQ09ERV9SRUYpCiAgICAgIGFyZyA9IHZhbHVlX2F0X2xhenkgKFRZUEVfVEFS R0VUX1RZUEUgKHZhbHVlX3R5cGVfYXJnX3RtcCksCi1AQCAtMjUzNiw0ICsyNjE5LDggQEAgVkFS SUFCTEUgaXMgYWxyZWFkeSBpbml0aWFsaXplZC4iKSk7CitAQCAtMjU0MCw0ICsyNjIzLDggQEAg VkFSSUFCTEUgaXMgYWxyZWFkeSBpbml0aWFsaXplZC4iKSk7CiAgICBhZGRfcHJlZml4X2NtZCAo ImZ1bmN0aW9uIiwgbm9fY2xhc3MsIGZ1bmN0aW9uX2NvbW1hbmQsIF8oIlwKICBQbGFjZWhvbGRl ciBjb21tYW5kIGZvciBzaG93aW5nIGhlbHAgb24gY29udmVuaWVuY2UgZnVuY3Rpb25zLiIpLAog IAkJICAmZnVuY3Rpb25saXN0LCAiZnVuY3Rpb24gIiwgMCwgJmNtZGxpc3QpOwpAQCAtMTA5MjQs MTYgKzEyOTU3LDMgQEAgaW5kZXggZTYzNzg0Mi4uNWYzNmFlZiAxMDA2NDQKICAKICAvKiBVc2Vy IGZ1bmN0aW9uIGhhbmRsZXIuICAqLwogIAotZGlmZiAtLWdpdCBhL2dkYi92YXJvYmouYyBiL2dk Yi92YXJvYmouYwotaW5kZXggZDAyMGZmZi4uMzAzZWNkZiAxMDA2NDQKLS0tLSBhL2dkYi92YXJv YmouYwotKysrIGIvZ2RiL3Zhcm9iai5jCi1AQCAtMjYsNiArMjYsOCBAQAotICNpbmNsdWRlICJn ZGJjbWQuaCIKLSAjaW5jbHVkZSAiYmxvY2suaCIKLSAjaW5jbHVkZSAidmFscHJpbnQuaCIKLSsj aW5jbHVkZSAib2JqZmlsZXMuaCIKLSsjaW5jbHVkZSAicGFyc2VyLWRlZnMuaCIKLSAKLSAjaW5j bHVkZSAiZ2RiX2Fzc2VydC5oIgotICNpbmNsdWRlICJnZGJfc3RyaW5nLmgiCgpkaWZmIC0tZ2l0 IGEvZ2RiLWZvcnRyYW4tY29tbW9uLXJlZHVjZS5wYXRjaCBiL2dkYi1mb3J0cmFuLWNvbW1vbi1y ZWR1Y2UucGF0Y2gKaW5kZXggM2I4NDNiOC4uMmRmM2QzYiAxMDA2NDQKLS0tIGEvZ2RiLWZvcnRy YW4tY29tbW9uLXJlZHVjZS5wYXRjaAorKysgYi9nZGItZm9ydHJhbi1jb21tb24tcmVkdWNlLnBh dGNoCkBAIC0xLDggKzEsOCBAQAotSW5kZXg6IGdkYi03LjEuOTAuMjAxMDA3MTEvZ2RiL2YtbGFu Zy5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvZi1sYW5nLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xLjkwLjIwMTAwNzExLm9yaWcvZ2RiL2YtbGFuZy5jCTIwMTAtMDYtMDMgMDA6 NDE6NTUuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuMS45MC4yMDEwMDcxMS9nZGIvZi1sYW5n LmMJMjAxMC0wNy0xMyAwMDoyNDowNC4wMDAwMDAwMDAgKzAyMDAKLUBAIC01NiwyMCArNTYsNiBA QCB0eXBlZGVmIHN0cnVjdCBzYXZlZF9iZl9zeW1udW0gU0FWRURfQkYsCistLS0gZ2RiLTcuMi41 MC4yMDExMDEwNy5vcmlnL2dkYi9mLWxhbmcuYwkyMDExLTAxLTA1IDIzOjIyOjQ4LjAwMDAwMDAw MCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2YtbGFuZy5jCTIwMTEtMDEtMDcg MDk6MDg6NTIuMDAwMDAwMDAwICswMTAwCitAQCAtNTcsMjAgKzU3LDYgQEAgdHlwZWRlZiBzdHJ1 Y3Qgc2F2ZWRfYmZfc3ltbnVtIFNBVkVEX0JGLAogIC8qIExvY2FsIGZ1bmN0aW9ucyAqLwogIAog IGV4dGVybiB2b2lkIF9pbml0aWFsaXplX2ZfbGFuZ3VhZ2UgKHZvaWQpOwpAQCAtMjMsNyArMjMs NyBAQCBJbmRleDogZ2RiLTcuMS45MC4yMDEwMDcxMS9nZGIvZi1sYW5nLmMKICAKICBzdGF0aWMg dm9pZCBmX3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdWlfZmls ZSAqIHN0cmVhbSk7CiAgc3RhdGljIHZvaWQgZl9lbWl0X2NoYXIgKGludCBjLCBzdHJ1Y3QgdHlw ZSAqdHlwZSwKLUBAIC00NTgsMTg1ICs0NDQsNyBAQCBfaW5pdGlhbGl6ZV9mX2xhbmd1YWdlICh2 b2lkKQorQEAgLTQ2MSwxODUgKzQ0Nyw3IEBAIF9pbml0aWFsaXplX2ZfbGFuZ3VhZ2UgKHZvaWQp CiAgICBhZGRfbGFuZ3VhZ2UgKCZmX2xhbmd1YWdlX2RlZm4pOwogIH0KICAKQEAgLTczLDggKzcz LDggQEAgSW5kZXg6IGdkYi03LjEuOTAuMjAxMDA3MTEvZ2RiL2YtbGFuZy5jCiAtc3RhdGljIFNB VkVEX0JGX1BUUiBzYXZlZF9iZl9saXN0ID0gTlVMTDsJLyogUHRyIHRvICguYmYsZnVuY3Rpb24p IAogLQkJCQkJCSAgIGxpc3QgKi8KIC1zdGF0aWMgU0FWRURfQkZfUFRSIHNhdmVkX2JmX2xpc3Rf ZW5kID0gTlVMTDsJLyogUHRyIHRvIGFib3ZlIGxpc3QncyBlbmQgKi8KLS1zdGF0aWMgU0FWRURf QkZfUFRSIGN1cnJlbnRfaGVhZF9iZl9saXN0ID0gTlVMTDsJLyogQ3VycmVudCBoZWFkIG9mIGFi b3ZlIGxpc3QKLS0JCQkJCQkJICovCistc3RhdGljIFNBVkVEX0JGX1BUUiBjdXJyZW50X2hlYWRf YmZfbGlzdCA9IE5VTEw7ICAgIC8qIEN1cnJlbnQgaGVhZCBvZgorLQkJCQkJCSAgICAgICBhYm92 ZSBsaXN0LiAgKi8KIC0KIC1zdGF0aWMgU0FWRURfQkZfUFRSIHRtcF9iZl9wdHI7CS8qIEdlbmVy aWMgdGVtcG9yYXJ5IGZvciB1c2UgCiAtCQkJCSAgIGluIG1hY3JvcyAqLwpAQCAtMjA5LDcgKzIw OSw3IEBAIEluZGV4OiBnZGItNy4xLjkwLjIwMTAwNzExL2dkYi9mLWxhbmcuYwogIAogIC8qIFRo aXMgcm91dGluZSBmaW5kcyB0aGUgZmlyc3QgZW5jb3VudHJlZCBDT01NT04gYmxvY2sgbmFtZWQg Im5hbWUiIAogICAgIHRoYXQgYmVsb25ncyB0byBmdW5jdGlvbiBmdW5jbmFtZSAqLwotQEAgLTY1 OSwxOTMgKzQ2NywzIEBAIGZpbmRfY29tbW9uX2Zvcl9mdW5jdGlvbiAoY2hhciAqbmFtZSwgY2gK K0BAIC02NjIsMTkzICs0NzAsMyBAQCBmaW5kX2NvbW1vbl9mb3JfZnVuY3Rpb24gKGNoYXIgKm5h bWUsIGNoCiAgICAgIH0KICAgIHJldHVybiAoTlVMTCk7CiAgfQpAQCAtNDAzLDEwICs0MDMsMTAg QEAgSW5kZXg6IGdkYi03LjEuOTAuMjAxMDA3MTEvZ2RiL2YtbGFuZy5jCiAtICBzYXZlZF9mdW5j dGlvbl9saXN0ID0gTlVMTDsKIC19CiAtI2VuZGlmCi1JbmRleDogZ2RiLTcuMS45MC4yMDEwMDcx MS9nZGIvZi1sYW5nLmgKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9mLWxhbmcuaAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjEuOTAuMjAxMDA3MTEub3JpZy9nZGIvZi1sYW5nLmgJMjAx MC0wNy0xMiAyMzowNzozMy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy4xLjkwLjIwMTAwNzEx L2dkYi9mLWxhbmcuaAkyMDEwLTA3LTEzIDAwOjI0OjA0LjAwMDAwMDAwMCArMDIwMAorLS0tIGdk Yi03LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIvZi1sYW5nLmgJMjAxMS0wMS0wNyAwOTowMzozOC4w MDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9mLWxhbmcuaAkyMDEx LTAxLTA3IDA5OjA3OjU4LjAwMDAwMDAwMCArMDEwMAogQEAgLTc2LDE0ICs3Niw5IEBAIHR5cGVk ZWYgc3RydWN0IHNhdmVkX2Y3N19jb21tb24gU0FWRURfRjcKICB0eXBlZGVmIHN0cnVjdCBjb21t b25fZW50cnkgQ09NTU9OX0VOVFJZLCAqQ09NTU9OX0VOVFJZX1BUUjsKICAKQEAgLTQyMiwxMCAr NDIyLDEwIEBAIEluZGV4OiBnZGItNy4xLjkwLjIwMTAwNzExL2dkYi9mLWxhbmcuaAogICNkZWZp bmUgQkxBTktfQ09NTU9OX05BTUVfT1JJR0lOQUwgIiNCTE5LX0NPTSIJLyogWExGIGFzc2lnbmVk ICAqLwogICNkZWZpbmUgQkxBTktfQ09NTU9OX05BTUVfTUY3NyAgICAgIl9fQkxOS19fIgkvKiBN Rjc3IGFzc2lnbmVkICAqLwogICNkZWZpbmUgQkxBTktfQ09NTU9OX05BTUVfTE9DQUwgICAgIl9f QkxBTksiCS8qIExvY2FsIEdEQiAqLwotSW5kZXg6IGdkYi03LjEuOTAuMjAxMDA3MTEvZ2RiL2Yt dmFscHJpbnQuYworSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2YtdmFscHJpbnQuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjEuOTAuMjAxMDA3MTEub3JpZy9nZGIvZi12YWxwcmludC5j CTIwMTAtMDctMTIgMjM6MDc6MzMuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuMS45MC4yMDEw MDcxMS9nZGIvZi12YWxwcmludC5jCTIwMTAtMDctMTMgMDA6MjQ6MjUuMDAwMDAwMDAwICswMjAw CistLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxMS0wMS0w NyAwOTowMzozOC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9m LXZhbHByaW50LmMJMjAxMS0wMS0wNyAwOTowNzo1OC4wMDAwMDAwMDAgKzAxMDAKIEBAIC0zNSwx MCArMzUsNiBAQAogICNpbmNsdWRlICJjb21tYW5kLmgiCiAgI2luY2x1ZGUgImJsb2NrLmgiCkBA IC00MzcsNyArNDM3LDcgQEAgSW5kZXg6IGdkYi03LjEuOTAuMjAxMDA3MTEvZ2RiL2YtdmFscHJp bnQuYwogIGV4dGVybiB2b2lkIF9pbml0aWFsaXplX2ZfdmFscHJpbnQgKHZvaWQpOwogIHN0YXRp YyB2b2lkIGluZm9fY29tbW9uX2NvbW1hbmQgKGNoYXIgKiwgaW50KTsKICBzdGF0aWMgdm9pZCBs aXN0X2FsbF92aXNpYmxlX2NvbW1vbnMgKGNoYXIgKik7Ci1AQCAtNjAxLDY3ICs1OTcsNiBAQCBp bmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICpjb21uYW1lLCBpbnQgCitAQCAtNjA0LDY3ICs2MDAs NiBAQCBpbmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICpjb21uYW1lLCBpbnQgCiAgCQkgICAgIGNv bW5hbWUsIGZ1bm5hbWUpOwogIH0KICAKCmRpZmYgLS1naXQgYS9nZGItdGVzdC1wcC1oaW50LWVy cm9yLnBhdGNoIGIvZ2RiLXRlc3QtcHAtaGludC1lcnJvci5wYXRjaAppbmRleCA2ODIxM2EyLi5k ZTdiZGJmIDEwMDY0NAotLS0gYS9nZGItdGVzdC1wcC1oaW50LWVycm9yLnBhdGNoCisrKyBiL2dk Yi10ZXN0LXBwLWhpbnQtZXJyb3IucGF0Y2gKQEAgLTI3LDggKzI3LDEwIEBAIGdkYi90ZXN0c3Vp dGUvCiAJKiBnZGIucHl0aG9uL3B5LXByZXR0eXByaW50LnB5IChjbGFzcyBwcF9oaW50X2Vycm9y KTogTmV3LgogCShyZWdpc3Rlcl9wcmV0dHlfcHJpbnRlcnMpOiBSZWdpc3RlciBpdC4KIAotLS0t IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50LmMKLSsrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5jCitJbmRleDogZ2RiLTcuMi41MC4y MDExMDEwNy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQuYworPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIGdkYi03LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktcHJldHR5cHJpbnQuYwkyMDExLTAxLTAxIDE2OjMzOjQ5LjAwMDAwMDAwMCArMDEwMAor KysrIGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0 eXByaW50LmMJMjAxMS0wMS0wNyAwOToxMToxOC4wMDAwMDAwMDAgKzAxMDAKIEBAIC00NCw2ICs0 NCwxMCBAQCBzdHJ1Y3QgbGF6eXN0cmluZyB7CiAgICBjb25zdCBjaGFyICpsYXp5X3N0cjsKICB9 OwpAQCAtNDgsOCArNTAsMTAgQEAgZ2RiL3Rlc3RzdWl0ZS8KICAKICAgIG5zdHlwZS5lbGVtZW50 cyA9IG5hcnJheTsKICAgIG5zdHlwZS5sZW4gPSAwOwotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu cHl0aG9uL3B5LXByZXR0eXByaW50LmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LXByZXR0eXByaW50LmV4cAorSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50LmV4cAorPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03 LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJp bnQuZXhwCTIwMTEtMDEtMDcgMDk6MDM6MzguMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41 MC4yMDExMDEwNy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQuZXhwCTIw MTEtMDEtMDcgMDk6MTE6MzIuMDAwMDAwMDAwICswMTAwCiBAQCAtOTcsNiArOTcsOCBAQCBwcm9j IHJ1bl9sYW5nX3Rlc3RzIHtsYW5nfSB7CiAgICAgIGdkYl90ZXN0X25vX291dHB1dCAicHl0aG9u IHBwX2xzX2VuY29kaW5nID0gJ1VURi04JyIKICAgICAgZ2RiX3Rlc3QgInByaW50IGVzdHJpbmcy IiAiXCJlbWJlZGRlZCBcIiwgPGluY29tcGxldGUgc2VxdWVuY2UgXFxcXDMwMj4iCkBAIC01OCw5 ICs2MiwxMSBAQCBnZGIvdGVzdHN1aXRlLwogKwogICAgICBnZGJfdGVzdCAicHJpbnQgYyIgIiA9 IGNvbnRhaW5lciBcImNvbnRhaW5lclwiIHdpdGggMiBlbGVtZW50cyA9IHskbmwgKi4wLiA9IDIz LCRubCAqLjEuID0gNzIkbmx9IgogIAotICAgICBnZGJfdGVzdCAicHJpbnQgbnN0eXBlIiAiID0g eyRubCAqLjAuID0gNywkbmwgKi4xLiA9IDQyJG5sfSIKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weS1wcmV0dHlwcmludC5weQotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LXByZXR0eXByaW50LnB5CisgICAgIGdkYl90ZXN0ICJwcmludCBudWxsc3RyIiAiUnVudGlt ZUVycm9yOiBFcnJvciByZWFkaW5nIHN0cmluZyBmcm9tIGluZmVyaW9yLioiCitJbmRleDogZ2Ri LTcuMi41MC4yMDExMDEwNy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQu cHkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjUwLjIwMTEwMTA3Lm9yaWcvZ2RiL3Rlc3RzdWl0 ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50LnB5CTIwMTEtMDEtMDEgMTY6MzM6NDkuMDAwMDAw MDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktcHJldHR5cHJpbnQucHkJMjAxMS0wMS0wNyAwOToxMToxOC4wMDAwMDAwMDAgKzAxMDAK IEBAIC0xNTYsNiArMTU2LDE4IEBAIGNsYXNzIHBwX2xzOgogICAgICBkZWYgZGlzcGxheV9oaW50 IChzZWxmKToKICAgICAgICAgIHJldHVybiAnc3RyaW5nJwpAQCAtOTAsNCArOTYsMyBAQCBnZGIv dGVzdHN1aXRlLwogIHByZXR0eV9wcmludGVyc19kaWN0ID0ge30KICAKICByZWdpc3Rlcl9wcmV0 dHlfcHJpbnRlcnMgKCkKLQoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXgg NGM5ZGE0YS4uY2JmYThiZCAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAg LTIzLDExICsyMywxMSBAQCBOYW1lOiBnZGIlez9fd2l0aF9kZWJ1ZzotZGVidWd9CiAjIFNldCB2 ZXJzaW9uIHRvIGNvbnRlbnRzIG9mIGdkYi92ZXJzaW9uLmluLgogIyBOT1RFOiB0aGUgRlNGIGdk YiB2ZXJzaW9ucyBhcmUgbnVtYmVyZWQgTi5NIGZvciBvZmZpY2lhbCByZWxlYXNlcywgbGlrZSA2 LjMKICMgYW5kLCBzaW5jZSBKYW51YXJ5IDIwMDUsIFguWS5aLmRhdGUgZm9yIGRhaWx5IHNuYXBz aG90cywgbGlrZSA2LjMuNTAuMjAwNTAxMTIgIyAoZGFpbHkgc25hcHNob3QgZnJvbSBtYWlsaW5l KSwgb3IgNi4zLjAuMjAwNDAxMTIgKGhlYWQgb2YgdGhlIHJlbGVhc2UgYnJhbmNoKS4KLVZlcnNp b246IDcuMi41MC4yMDExMDEwNAorVmVyc2lvbjogNy4yLjUwLjIwMTEwMTA3CiAKICMgVGhlIHJl bGVhc2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZlZCBudW1iZXIsIHN0YXJ0IGl0 IGF0IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBgbmFtZScgdG8gc3RheSBmdWxs eSBycG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0ZXN0aW5nLgotUmVsZWFzZTog NyV7P193aXRoX3Vwc3RyZWFtOi51cHN0cmVhbX0le2Rpc3R9CitSZWxlYXNlOiA4JXs/X3dpdGhf dXBzdHJlYW06LnVwc3RyZWFtfSV7ZGlzdH0KIAogTGljZW5zZTogR1BMdjMrIGFuZCBHUEx2Mysg d2l0aCBleGNlcHRpb25zIGFuZCBHUEx2MisgYW5kIEdQTHYyKyB3aXRoIGV4Y2VwdGlvbnMgYW5k IEdQTCsgYW5kIExHUEx2MisgYW5kIEdGREwgYW5kIEJTRCBhbmQgUHVibGljIERvbWFpbgogR3Jv dXA6IERldmVsb3BtZW50L0RlYnVnZ2VycwpAQCAtMTEzMiw2ICsxMTMyLDEwIEBAIGZpCiAlZW5k aWYKIAogJWNoYW5nZWxvZworKiBGcmkgSmFuICA3IDIwMTEgSmFuIEtyYXRvY2h2aWwgPGphbi5r cmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4yLjUwLjIwMTEwMTA3LTguZmMxNQorLSBSZWJhc2Ug dG8gRlNGIEdEQiA3LjIuNTAuMjAxMTAxMDcgKHdoaWNoIGlzIGEgNy4zIHByZS1yZWxlYXNlKS4K Ky0gSW1wb3J0IGFyY2hlci10cm9tZXktcHl0aG9uIChCWiA2NjYxNzcsIGJyYW5jaCB1cGRhdGUg YnkgUGhpbCBNdWxkb29uKS4KKwogKiBUdWUgSmFuICA0IDIwMTEgSmFuIEtyYXRvY2h2aWwgPGph bi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4yLjUwLjIwMTEwMTA0LTcuZmMxNQogLSBSZWJh c2UgdG8gRlNGIEdEQiA3LjIuNTAuMjAxMTAxMDQgKHdoaWNoIGlzIGEgNy4zIHByZS1yZWxlYXNl KS4KIC0gTmV3IHRlc3RjYXNlIHB5LXByZXR0eXByaW50LmV4cDpwcmludCBoaW50X2Vycm9yIChm b3IgQlogNjExNTY5LCBCWiA2MjkyMzYpLgoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2Vz CmluZGV4IDVlMmExYzkuLmNjODExNWEgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNl cwpAQCAtMSArMSBAQAotMTkwZTAwNzE4OWVhMTUyMmQzNDU1OWY0M2VjNDBlZWQgIGdkYi03LjIu NTAuMjAxMTAxMDQudGFyLmJ6MgorYTQwOTIwOWU5NWNkNzE3Mjc0NDMxYjJlYWE3N2RhYzAgIGdk Yi03LjIuNTAuMjAxMTAxMDcudGFyLmJ6Mgo=