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: Fix `GDB cannot access struct member whose offset is larger than 256MB' Date: Sat, 27 Jun 2026 23:55:54 GMT Message-ID: <178260455442.1.8535847910866884037.rpms-gdb-92b52c5e6f3f@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 92b52c5e6f3f527cb692aa30b9c28a8fc4b23944 ICAgICAgICAgIEEgbmV3IGNvbW1pdCBoYXMgYmVlbiBwdXNoZWQuCgogICAgICAgICAgUmVwbyAg IDogcnBtcy9nZGIKICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQKICAgICAg ICAgIENvbW1pdCA6IDkyYjUyYzVlNmYzZjUyN2NiNjkyYWEzMGI5YzI4YThmYzRiMjM5NDQKICAg ICAgICAgIEF1dGhvciA6IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29t PgogICAgICAgICAgRGF0ZSAgIDogMjAxMi0xMS0wOVQxOTowMzoxMCswMTowMAogICAgICAgICAg U3RhdHMgIDogKzk5NjcvLTEgaW4gMjMgZmlsZShzKQogICAgICAgICAgVVJMICAgIDogaHR0cHM6 Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nZGIvYy85MmI1MmM1ZTZmM2Y1MjdjYjY5MmFh MzBiOWMyOGE4ZmM0YjIzOTQ0P2JyYW5jaD1nZGItMTcuMi1yZWJhc2UtZjQ0CgogICAgICAgICAg TG9nOgogICAgICAgICAgRml4IGBHREIgY2Fubm90IGFjY2VzcyBzdHJ1Y3QgbWVtYmVyIHdob3Nl IG9mZnNldCBpcyBsYXJnZXIgdGhhbiAyNTZNQicKCihSSCBCWiA4NzEwNjYpLgoKLS0tCmRpZmYg LS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMDZvZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0 MjQtYml0cG9zLTA2b2YyNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5mNzViYTlkCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTA2b2Yy NS5wYXRjaApAQCAtMCwwICsxLDIzIEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLWN2 cy8yMDEyLTA3L21zZzAwMTczLmh0bWwKKworIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTIvMDcv MjAgMTc6NTQ6MDUJMS4xNDUwNworIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTIvMDcvMjIgMTY6 NTI6MzkJMS4xNDUwOAorIyMgLTEsMyArMSw3IEBACisrMjAxMi0wNy0yMiAgU2lkZGhlc2ggUG95 YXJla2FyICA8c2lkZGhlc2hAcmVkaGF0LmNvbT4KKysKKysJKiBzaC10ZGVwLmMgKHNoX3RyZWF0 X2FzX2ZsdF9wKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBMRU4uCisrCisgMjAxMi0wNy0yMCAg SmVmZiBLZW50b24gIDxqa2VudG9uQHRpbGVyYS5jb20+CisgCisgCSogdGlsZWd4LWxpbnV4LXRk ZXAuYyAodGlsZWd4X2xpbnV4X3NpZ2ZyYW1lX2luaXQpOiBGaXgKKy0tLSBzcmMvZ2RiL3NoLXRk ZXAuYwkyMDEyLzA2LzA4IDE0OjI0OjU3CTEuMjQ1CisrKysgc3JjL2dkYi9zaC10ZGVwLmMJMjAx Mi8wNy8yMiAxNjo1Mjo0MQkxLjI0NgorQEAgLTEwMzIsOCArMTAzMiw2IEBACisgc3RhdGljIGlu dAorIHNoX3RyZWF0X2FzX2ZsdF9wIChzdHJ1Y3QgdHlwZSAqdHlwZSkKKyB7CistICBpbnQgbGVu ID0gVFlQRV9MRU5HVEggKHR5cGUpOworLQorICAgLyogT3JkaW5hcnkgZmxvYXQgdHlwZXMgYXJl IG9idmlvdXNseSB0cmVhdGVkIGFzIGZsb2F0LiAgKi8KKyAgIGlmIChUWVBFX0NPREUgKHR5cGUp ID09IFRZUEVfQ09ERV9GTFQpCisgICAgIHJldHVybiAxOwoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6 Nzk1NDI0LWJpdHBvcy0wN29mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMDdvZjI1 LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkOWI2ZmQKLS0tIC9k ZXYvbnVsbAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMDdvZjI1LnBhdGNoCkBAIC0wLDAg KzEsNjQgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItY3ZzLzIwMTItMDcvbXNnMDAx ODIuaHRtbAorCisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMi8wNy8yMyAxNToyNToxMQkxLjE0 NTE0CisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMi8wNy8yMyAxODowODoyNwkxLjE0NTE1Cisj IyAtMSwzICsxLDkgQEAKKysyMDEyLTA3LTIzICBTaWRkaGVzaCBQb3lhcmVrYXIgIDxzaWRkaGVz aEByZWRoYXQuY29tPgorKworKwkqIHAtdmFscHJpbnQuYyAocGFzY2FsX29iamVjdF9wcmludF92 YWx1ZSk6IFJlcGxhY2UgcG90ZW50aWFsbHkKKysJdW5zYWZlIGFsbG9jYSB3aXRoIHhtYWxsb2Mv eGZyZWUuCisrCSogdmFsb3BzLmMgKHNlYXJjaF9zdHJ1Y3RfbWV0aG9kKTogTGlrZXdpc2UuCisr CisgMjAxMi0wNy0yMyAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29tPgorIAorIAkqIHNv bGliLXN2cjQuYyAoZW5hYmxlX2JyZWFrKTogVXBkYXRlLgorLS0tIHNyYy9nZGIvcC12YWxwcmlu dC5jCTIwMTIvMDUvMTggMjE6MDI6NDkJMS4xMDAKKysrKyBzcmMvZ2RiL3AtdmFscHJpbnQuYwky MDEyLzA3LzIzIDE4OjA4OjI5CTEuMTAxCitAQCAtNzk3LDggKzc5NywxMSBAQAorIAorIAkgIGlm IChib2Zmc2V0IDwgMCB8fCBib2Zmc2V0ID49IFRZUEVfTEVOR1RIICh0eXBlKSkKKyAJICAgIHsK Ky0JICAgICAgLyogRklYTUUgKGFsbG9jKTogbm90IHNhZmUgaXMgYmFzZWNsYXNzIGlzIHJlYWxs eSByZWFsbHkgYmlnLiAqLworLQkgICAgICBnZGJfYnl0ZSAqYnVmID0gYWxsb2NhIChUWVBFX0xF TkdUSCAoYmFzZWNsYXNzKSk7CisrCSAgICAgIGdkYl9ieXRlICpidWY7CisrCSAgICAgIHN0cnVj dCBjbGVhbnVwICpiYWNrX3RvOworKworKwkgICAgICBidWYgPSB4bWFsbG9jIChUWVBFX0xFTkdU SCAoYmFzZWNsYXNzKSk7CisrCSAgICAgIGJhY2tfdG8gPSBtYWtlX2NsZWFudXAgKHhmcmVlLCBi dWYpOworIAorIAkgICAgICBiYXNlX3ZhbGFkZHIgPSBidWY7CisgCSAgICAgIGlmICh0YXJnZXRf cmVhZF9tZW1vcnkgKGFkZHJlc3MgKyBib2Zmc2V0LCBidWYsCitAQCAtODA3LDYgKzgxMCw3IEBA CisgCSAgICAgIGFkZHJlc3MgPSBhZGRyZXNzICsgYm9mZnNldDsKKyAJICAgICAgdGhpc29mZnNl dCA9IDA7CisgCSAgICAgIGJvZmZzZXQgPSAwOworKwkgICAgICBkb19jbGVhbnVwcyAoYmFja190 byk7CisgCSAgICB9CisgCSAgZWxzZQorIAkgICAgYmFzZV92YWxhZGRyID0gdmFsYWRkcjsKKy0t LSBzcmMvZ2RiL3ZhbG9wcy5jCTIwMTIvMDYvMjQgMDc6Mjg6MTAJMS4yOTcKKysrKyBzcmMvZ2Ri L3ZhbG9wcy5jCTIwMTIvMDcvMjMgMTg6MDg6MjkJMS4yOTgKK0BAIC0yMjgxLDggKzIyODEsMTMg QEAKKyAKKyAJICBpZiAob2Zmc2V0IDwgMCB8fCBvZmZzZXQgPj0gVFlQRV9MRU5HVEggKHR5cGUp KQorIAkgICAgeworLQkgICAgICBnZGJfYnl0ZSAqdG1wID0gYWxsb2NhIChUWVBFX0xFTkdUSCAo YmFzZWNsYXNzKSk7CistCSAgICAgIENPUkVfQUREUiBhZGRyZXNzID0gdmFsdWVfYWRkcmVzcyAo KmFyZzFwKTsKKysJICAgICAgZ2RiX2J5dGUgKnRtcDsKKysJICAgICAgc3RydWN0IGNsZWFudXAg KmJhY2tfdG87CisrCSAgICAgIENPUkVfQUREUiBhZGRyZXNzOworKworKwkgICAgICB0bXAgPSB4 bWFsbG9jIChUWVBFX0xFTkdUSCAoYmFzZWNsYXNzKSk7CisrCSAgICAgIGJhY2tfdG8gPSBtYWtl X2NsZWFudXAgKHhmcmVlLCB0bXApOworKwkgICAgICBhZGRyZXNzID0gdmFsdWVfYWRkcmVzcyAo KmFyZzFwKTsKKyAKKyAJICAgICAgaWYgKHRhcmdldF9yZWFkX21lbW9yeSAoYWRkcmVzcyArIG9m ZnNldCwKKyAJCQkJICAgICAgdG1wLCBUWVBFX0xFTkdUSCAoYmFzZWNsYXNzKSkgIT0gMCkKK0BA IC0yMjkzLDYgKzIyOTgsNyBAQAorIAkJCQkJCQkgIGFkZHJlc3MgKyBvZmZzZXQpOworIAkgICAg ICBiYXNlX3ZhbGFkZHIgPSB2YWx1ZV9jb250ZW50c19mb3JfcHJpbnRpbmcgKGJhc2VfdmFsKTsK KyAJICAgICAgdGhpc19vZmZzZXQgPSAwOworKwkgICAgICBkb19jbGVhbnVwcyAoYmFja190byk7 CisgCSAgICB9CisgCSAgZWxzZQorIAkgICAgewoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0 LWJpdHBvcy0wOG9mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMDhvZjI1LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmMmY2OTEKLS0tIC9kZXYvbnVs bAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMDhvZjI1LnBhdGNoCkBAIC0wLDAgKzEsMTM5 IEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8yMDEyLTA3L21zZzAwMjEzLmh0 bWwKKworIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTIvMDcvMjUgMjA6MTQ6MTcJMS4xNDUzMQor IyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTIvMDcvMjYgMDI6MDM6MTQJMS4xNDUzMgorIyMgLTEs MyArMSwxNyBAQAorKzIwMTItMDctMjYgIFNpZGRoZXNoIFBveWFyZWthciAgPHNpZGRoZXNoQHJl ZGhhdC5jb20+CisrCisrCSogZHdhcmYybG9jLmMgKGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19m dWxsKTogRXhwYW5kIHBhcmFtZXRlcgorKwlTSVpFIHRvIHNpemVfdC4KKysJKGR3YXJmMl9ldmFs dWF0ZV9sb2NfZGVzYyk6IExpa2V3aXNlLgorKwkoZHdhcmYyX2xvY19kZXNjX25lZWRzX2ZyYW1l KTogTGlrZXdpc2UuCisrCShsb2NleHByX2Rlc2NyaWJlX2xvY2F0aW9uXzEpOiBMaWtld2lzZS4K KysJKiBkd2FyZjJsb2MuaCAoc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uKTogTWFrZSBTSVpF IGFzCisrCXNpemVfdC4KKysJKHN0cnVjdCBkd2FyZjJfbG9jbGlzdF9iYXRvbik6IExpa2V3aXNl LgorKwkqIGR3YXJmMnJlYWQuYyAoc3RydWN0IGR3YXJmX2Jsb2NrKTogTGlrZXdpc2UuCisrCShk dW1wX2RpZV9zaGFsbG93KTogVXNlIHB1bG9uZ2VzdCB0byBwcmludCBkd2FyZl9ibG9jay5zaXpl LgorKwkoZGVjb2RlX2xvY2Rlc2MpOiBFeHBhbmQgU0laRSBhbmQgSSB0byBzaXplX3QuCisrCisg MjAxMi0wNy0yNSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgor IAorIAkqIGNvbnRyaWIvY2Mtd2l0aC10d2Vha3Muc2g6IFB1dCBpbnRvIGNvbW1lbnQgcGF0aCBn ZGIvY29udHJpYi8uCistLS0gc3JjL2dkYi9kd2FyZjJsb2MuYwkyMDEyLzA3LzEzIDIwOjE1OjUw CTEuMTUyCisrKysgc3JjL2dkYi9kd2FyZjJsb2MuYwkyMDEyLzA3LzI2IDAyOjAzOjE2CTEuMTUz CitAQCAtNTQsOCArNTQsOCBAQAorIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmR3YXJmMl9ldmFsdWF0 ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHlwZSAqdHlwZSwKKyAJCQkJCQkgICAgc3RydWN0IGZy YW1lX2luZm8gKmZyYW1lLAorIAkJCQkJCSAgICBjb25zdCBnZGJfYnl0ZSAqZGF0YSwKKy0JCQkJ CQkgICAgdW5zaWduZWQgc2hvcnQgc2l6ZSwKKy0JCQkJCSAgICAgIHN0cnVjdCBkd2FyZjJfcGVy X2N1X2RhdGEgKnBlcl9jdSwKKysJCQkJCQkgICAgc2l6ZV90IHNpemUsCisrCQkJCQkJICAgIHN0 cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnBlcl9jdSwKKyAJCQkJCQkgICAgTE9OR0VTVCBieXRl X29mZnNldCk7CisgCisgLyogVW50aWwgdGhlc2UgaGF2ZSBmb3JtYWwgbmFtZXMsIHdlIGRlZmlu ZSB0aGVzZSBoZXJlLgorQEAgLTIxMTEsNyArMjExMSw3IEBACisgCisgc3RhdGljIHN0cnVjdCB2 YWx1ZSAqCisgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eXBlICp0eXBl LCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCistCQkJICAgICAgIGNvbnN0IGdkYl9ieXRlICpk YXRhLCB1bnNpZ25lZCBzaG9ydCBzaXplLAorKwkJCSAgICAgICBjb25zdCBnZGJfYnl0ZSAqZGF0 YSwgc2l6ZV90IHNpemUsCisgCQkJICAgICAgIHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnBl cl9jdSwKKyAJCQkgICAgICAgTE9OR0VTVCBieXRlX29mZnNldCkKKyB7CitAQCAtMjMxMiw3ICsy MzEyLDcgQEAKKyAKKyBzdHJ1Y3QgdmFsdWUgKgorIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAo c3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKKy0JCQkgIGNvbnN0 IGdkYl9ieXRlICpkYXRhLCB1bnNpZ25lZCBzaG9ydCBzaXplLAorKwkJCSAgY29uc3QgZ2RiX2J5 dGUgKmRhdGEsIHNpemVfdCBzaXplLAorIAkJCSAgc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAq cGVyX2N1KQorIHsKKyAgIHJldHVybiBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2NfZnVsbCAodHlw ZSwgZnJhbWUsIGRhdGEsIHNpemUsIHBlcl9jdSwgMCk7CitAQCAtMjQzMyw3ICsyNDMzLDcgQEAK KyAgICByZXF1aXJlcyBhIGZyYW1lIHRvIGV2YWx1YXRlLiAgKi8KKyAKKyBzdGF0aWMgaW50Cist ZHdhcmYyX2xvY19kZXNjX25lZWRzX2ZyYW1lIChjb25zdCBnZGJfYnl0ZSAqZGF0YSwgdW5zaWdu ZWQgc2hvcnQgc2l6ZSwKKytkd2FyZjJfbG9jX2Rlc2NfbmVlZHNfZnJhbWUgKGNvbnN0IGdkYl9i eXRlICpkYXRhLCBzaXplX3Qgc2l6ZSwKKyAJCQkgICAgIHN0cnVjdCBkd2FyZjJfcGVyX2N1X2Rh dGEgKnBlcl9jdSkKKyB7CisgICBzdHJ1Y3QgbmVlZHNfZnJhbWVfYmF0b24gYmF0b247CitAQCAt MzgyNyw3ICszODI3LDcgQEAKKyBzdGF0aWMgdm9pZAorIGxvY2V4cHJfZGVzY3JpYmVfbG9jYXRp b25fMSAoc3RydWN0IHN5bWJvbCAqc3ltYm9sLCBDT1JFX0FERFIgYWRkciwKKyAJCQkgICAgIHN0 cnVjdCB1aV9maWxlICpzdHJlYW0sCistCQkJICAgICBjb25zdCBnZGJfYnl0ZSAqZGF0YSwgaW50 IHNpemUsCisrCQkJICAgICBjb25zdCBnZGJfYnl0ZSAqZGF0YSwgc2l6ZV90IHNpemUsCisgCQkJ ICAgICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgdW5zaWduZWQgaW50IGFkZHJfc2l6ZSwKKyAJ CQkgICAgIGludCBvZmZzZXRfc2l6ZSwgc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1 KQorIHsKKy0tLSBzcmMvZ2RiL2R3YXJmMmxvYy5oCTIwMTIvMDUvMjIgMTg6NDU6MjIJMS4zMwor KysrIHNyYy9nZGIvZHdhcmYybG9jLmgJMjAxMi8wNy8yNiAwMjowMzoxNgkxLjM0CitAQCAtNzcs NyArNzcsNyBAQAorIHN0cnVjdCB2YWx1ZSAqZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjIChzdHJ1 Y3QgdHlwZSAqdHlwZSwKKyAJCQkJCXN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKKyAJCQkJCWNv bnN0IGdkYl9ieXRlICpkYXRhLAorLQkJCQkJdW5zaWduZWQgc2hvcnQgc2l6ZSwKKysJCQkJCXNp emVfdCBzaXplLAorIAkJCQkJc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1KTsKKyAK KyBDT1JFX0FERFIgZHdhcmYyX3JlYWRfYWRkcl9pbmRleCAoc3RydWN0IGR3YXJmMl9wZXJfY3Vf ZGF0YSAqcGVyX2N1LAorQEAgLTk3LDcgKzk3LDcgQEAKKyAKKyAgIC8qIExlbmd0aCBvZiB0aGUg bG9jYXRpb24gZXhwcmVzc2lvbi4gIEZvciBvcHRpbWl6ZWQgb3V0IGV4cHJlc3Npb25zIGl0IGlz CisgICAgICB6ZXJvLiAgKi8KKy0gIHVuc2lnbmVkIGxvbmcgc2l6ZTsKKysgIHNpemVfdCBzaXpl OworIAorICAgLyogVGhlIGNvbXBpbGF0aW9uIHVuaXQgY29udGFpbmluZyB0aGUgc3ltYm9sIHdo b3NlIGxvY2F0aW9uCisgICAgICB3ZSdyZSBjb21wdXRpbmcuICAqLworQEAgLTExNCw3ICsxMTQs NyBAQAorICAgY29uc3QgZ2RiX2J5dGUgKmRhdGE7CisgCisgICAvKiBMZW5ndGggb2YgdGhlIGxv Y2F0aW9uIGxpc3QuICAqLworLSAgdW5zaWduZWQgbG9uZyBzaXplOworKyAgc2l6ZV90IHNpemU7 CisgCisgICAvKiBUaGUgY29tcGlsYXRpb24gdW5pdCBjb250YWluaW5nIHRoZSBzeW1ib2wgd2hv c2UgbG9jYXRpb24KKyAgICAgIHdlJ3JlIGNvbXB1dGluZy4gICovCistLS0gc3JjL2dkYi9kd2Fy ZjJyZWFkLmMJMjAxMi8wNy8yMCAxNzozODowNAkxLjY5NworKysrIHNyYy9nZGIvZHdhcmYycmVh ZC5jCTIwMTIvMDcvMjYgMDI6MDM6MTYJMS42OTgKK0BAIC05OTAsNyArOTkwLDcgQEAKKyAvKiBC bG9ja3MgYXJlIGEgYnVuY2ggb2YgdW50eXBlZCBieXRlcy4gICovCisgc3RydWN0IGR3YXJmX2Js b2NrCisgICB7CistICAgIHVuc2lnbmVkIGludCBzaXplOworKyAgICBzaXplX3Qgc2l6ZTsKKyAK KyAgICAgLyogVmFsaWQgb25seSBpZiBTSVpFIGlzIG5vdCB6ZXJvLiAgKi8KKyAgICAgZ2RiX2J5 dGUgKmRhdGE7CitAQCAtMTYxOTcsMTIgKzE2MTk3LDEyIEBACisgCWNhc2UgRFdfRk9STV9ibG9j azQ6CisgCWNhc2UgRFdfRk9STV9ibG9jazoKKyAJY2FzZSBEV19GT1JNX2Jsb2NrMToKKy0JICBm cHJpbnRmX3VuZmlsdGVyZWQgKGYsICJibG9jazogc2l6ZSAlZCIsCistCQkJICAgICAgRFdfQkxP Q0sgKCZkaWUtPmF0dHJzW2ldKS0+c2l6ZSk7CisrCSAgZnByaW50Zl91bmZpbHRlcmVkIChmLCAi YmxvY2s6IHNpemUgJXMiLAorKwkJCSAgICAgIHB1bG9uZ2VzdCAoRFdfQkxPQ0sgKCZkaWUtPmF0 dHJzW2ldKS0+c2l6ZSkpOworIAkgIGJyZWFrOworIAljYXNlIERXX0ZPUk1fZXhwcmxvYzoKKy0J ICBmcHJpbnRmX3VuZmlsdGVyZWQgKGYsICJleHByZXNzaW9uOiBzaXplICV1IiwKKy0JCQkgICAg ICBEV19CTE9DSyAoJmRpZS0+YXR0cnNbaV0pLT5zaXplKTsKKysJICBmcHJpbnRmX3VuZmlsdGVy ZWQgKGYsICJleHByZXNzaW9uOiBzaXplICVzIiwKKysJCQkgICAgICBwdWxvbmdlc3QgKERXX0JM T0NLICgmZGllLT5hdHRyc1tpXSktPnNpemUpKTsKKyAJICBicmVhazsKKyAJY2FzZSBEV19GT1JN X3JlZl9hZGRyOgorIAkgIGZwcmludGZfdW5maWx0ZXJlZCAoZiwgInJlZiBhZGRyZXNzOiAiKTsK K0BAIC0xNjc0Niw4ICsxNjc0Niw4IEBACisgZGVjb2RlX2xvY2Rlc2MgKHN0cnVjdCBkd2FyZl9i bG9jayAqYmxrLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyB7CisgICBzdHJ1Y3Qgb2JqZmlsZSAq b2JqZmlsZSA9IGN1LT5vYmpmaWxlOworLSAgaW50IGk7CistICBpbnQgc2l6ZSA9IGJsay0+c2l6 ZTsKKysgIHNpemVfdCBpOworKyAgc2l6ZV90IHNpemUgPSBibGstPnNpemU7CisgICBnZGJfYnl0 ZSAqZGF0YSA9IGJsay0+ZGF0YTsKKyAgIENPUkVfQUREUiBzdGFja1s2NF07CisgICBpbnQgc3Rh Y2tpOwoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0wOW9mMjUucGF0Y2ggYi9n ZGItcmhiejc5NTQyNC1iaXRwb3MtMDlvZjI1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjRiMTg2NmQKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiejc5NTQyNC1i aXRwb3MtMDlvZjI1LnBhdGNoCkBAIC0wLDAgKzEsMzQgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9y Zy9tbC9nZGItY3ZzLzIwMTItMDgvbXNnMDAwODUuaHRtbAorCisjIyMgc3JjL2dkYi9DaGFuZ2VM b2cJMjAxMi8wOC8xMCAwNTowMzowNwkxLjE0NTc0CisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAx Mi8wOC8xMCAxODo1NToxNgkxLjE0NTc1CisjIyAtMSwzICsxLDkgQEAKKysyMDEyLTA4LTEwICBT aWRkaGVzaCBQb3lhcmVrYXIgIDxzaWRkaGVzaEByZWRoYXQuY29tPgorKworKwkqIHB5dGhvbi9w eS10eXBlLmMgKGNvbnZlcnRfZmllbGQpOiBVc2UgZ2RiX3B5X2xvbmdfZnJvbV9sb25nZXN0Cisr CWZvciBUWVBFX0ZJRUxEX0JJVFBPUy4KKysJKHR5cHlfZ2V0X3NpemVvZik6IExpa2V3aXNlIGZv ciBUWVBFX0xFTkdUSC4KKysKKyAyMDEyLTA4LTEwICBNaWtlIEZyeXNpbmdlciAgPHZhcGllckBn ZW50b28ub3JnPgorIAorIAlQUiBjbGkvMTA0MzY6CistLS0gc3JjL2dkYi9weXRob24vcHktdHlw ZS5jCTIwMTIvMDUvMTggMjE6MDI6NTIJMS4zOQorKysrIHNyYy9nZGIvcHl0aG9uL3B5LXR5cGUu YwkyMDEyLzA4LzEwIDE4OjU1OjE4CTEuNDAKK0BAIC0xNzYsNyArMTc2LDcgQEAKKyAJfQorICAg ICAgIGVsc2UKKyAJeworLQkgIGFyZyA9IFB5TG9uZ19Gcm9tTG9uZyAoVFlQRV9GSUVMRF9CSVRQ T1MgKHR5cGUsIGZpZWxkKSk7CisrCSAgYXJnID0gZ2RiX3B5X2xvbmdfZnJvbV9sb25nZXN0IChU WVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgZmllbGQpKTsKKyAJICBhdHRyc3RyaW5nID0gImJpdHBv cyI7CisgCX0KKyAKK0BAIC02ODMsNyArNjgzLDcgQEAKKyAgICAgfQorICAgLyogSWdub3JlIGV4 Y2VwdGlvbnMuICAqLworIAorLSAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZyAoVFlQRV9MRU5HVEgg KHR5cGUpKTsKKysgIHJldHVybiBnZGJfcHlfbG9uZ19mcm9tX2xvbmdlc3QgKFRZUEVfTEVOR1RI ICh0eXBlKSk7CisgfQorIAorIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCgpkaWZmIC0tZ2l0IGEvZ2Ri LXJoYno3OTU0MjQtYml0cG9zLTEwb2YyNS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0x MG9mMjUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjcwMTQ1YQot LS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xMG9mMjUucGF0Y2gKQEAg LTAsMCArMSwxMTkgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItY3ZzLzIwMTItMDgv bXNnMDAxODcuaHRtbAorCisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMi8wOC8yNCAwMzoxNzox MgkxLjE0NjI4CisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMi8wOC8yNCAwMzo1NzoyMgkxLjE0 NjI5CisjIyAtMSwzICsxLDExIEBACisrMjAxMi0wOC0yNCAgU2lkZGhlc2ggUG95YXJla2FyICA8 c2lkZGhlc2hAcmVkaGF0LmNvbT4KKysKKysJKiBoODMwMC10ZGVwLmMgKGg4MzAwX3B1c2hfZHVt bXlfY2FsbCk6IFJlcGxhY2UgdW5zYWZlIGFsbG9jYQorKwl3aXRoIHhtYWxsb2MvY2xlYW51cC4K KysJKiBtdC10ZGVwLmMgKG10X3B1c2hfZHVtbXlfY2FsbCk6IExpa2V3aXNlLgorKwkqIHRpbGVn eC10ZGVwLmMgKHRpbGVneF9wdXNoX2R1bW15X2NhbGwpOiBMaWtld2lzZS4KKysJKiB4c3Rvcm15 MTYtdGRlcC5jICh4c3Rvcm15MTZfcHVzaF9kdW1teV9jYWxsKTogTGlrZXdpc2UuCisrCisgMjAx Mi0wOC0yNCAgWWFvIFFpICA8eWFvQGNvZGVzb3VyY2VyeS5jb20+CisgCisgCSoganYtZXhwLnkg KHB1c2hfZXhwcmVzc2lvbl9uYW1lKTogQWRkICIuIiBhdCB0aGUgZW5kIG9mIGVycm9yCistLS0g c3JjL2dkYi9oODMwMC10ZGVwLmMJMjAxMi8wNS8xOCAyMTowMjo0NwkxLjEzMworKysrIHNyYy9n ZGIvaDgzMDAtdGRlcC5jCTIwMTIvMDgvMjQgMDM6NTc6MjIJMS4xMzQKK0BAIC02NjYsMTMgKzY2 NiwxNSBAQAorIAorICAgZm9yIChhcmd1bWVudCA9IDA7IGFyZ3VtZW50IDwgbmFyZ3M7IGFyZ3Vt ZW50KyspCisgICAgIHsKKysgICAgICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKKyAgICAgICBz dHJ1Y3QgdHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZ3NbYXJndW1lbnRdKTsKKyAgICAgICBp bnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworICAgICAgIGNoYXIgKmNvbnRlbnRzID0gKGNo YXIgKikgdmFsdWVfY29udGVudHMgKGFyZ3NbYXJndW1lbnRdKTsKKyAKKyAgICAgICAvKiBQYWQg dGhlIGFyZ3VtZW50IGFwcHJvcHJpYXRlbHkuICAqLworICAgICAgIGludCBwYWRkZWRfbGVuID0g YWxpZ25fdXAgKGxlbiwgd29yZHNpemUpOworLSAgICAgIGdkYl9ieXRlICpwYWRkZWQgPSBhbGxv Y2EgKHBhZGRlZF9sZW4pOworKyAgICAgIGdkYl9ieXRlICpwYWRkZWQgPSB4bWFsbG9jIChwYWRk ZWRfbGVuKTsKKysgICAgICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgcGFkZGVkKTsK KyAKKyAgICAgICBtZW1zZXQgKHBhZGRlZCwgMCwgcGFkZGVkX2xlbik7CisgICAgICAgbWVtY3B5 IChsZW4gPCB3b3Jkc2l6ZSA/IHBhZGRlZCArIHBhZGRlZF9sZW4gLSBsZW4gOiBwYWRkZWQsCitA QCAtNzIwLDYgKzcyMiw4IEBACisgCSAgICAgc3Vic2VxdWVudCBhcmd1bWVudHMgZ28gb24gdGhl IHN0YWNrLiAgKi8KKyAJICByZWcgPSBFX0FSR0xBU1RfUkVHTlVNICsgMTsKKyAJfQorKworKyAg ICAgIGRvX2NsZWFudXBzIChiYWNrX3RvKTsKKyAgICAgfQorIAorICAgLyogU3RvcmUgcmV0dXJu IGFkZHJlc3MuICAqLworLS0tIHNyYy9nZGIvbXQtdGRlcC5jCTIwMTIvMDUvMTYgMTQ6MzU6MDYJ MS40MAorKysrIHNyYy9nZGIvbXQtdGRlcC5jCTIwMTIvMDgvMjQgMDM6NTc6MjIJMS40MQorQEAg LTg0NSwxNiArODQ1LDIwIEBACisgICBmb3IgKGogPSBuYXJncyAtIDE7IGogPj0gaTsgai0tKQor ICAgICB7CisgICAgICAgZ2RiX2J5dGUgKnZhbDsKKysgICAgICBzdHJ1Y3QgY2xlYW51cCAqYmFj a190bzsKKysgICAgICBjb25zdCBnZGJfYnl0ZSAqY29udGVudHMgPSB2YWx1ZV9jb250ZW50cyAo YXJnc1tqXSk7CisgICAgICAgCisgICAgICAgLyogUmlnaHQtanVzdGlmeSB0aGUgdmFsdWUgaW4g YW4gYWxpZ25lZC1sZW5ndGggYnVmZmVyLiAgKi8KKyAgICAgICB0eXBlbGVuID0gVFlQRV9MRU5H VEggKHZhbHVlX3R5cGUgKGFyZ3Nbal0pKTsKKyAgICAgICBzbGFja2xlbiA9ICh3b3Jkc2l6ZSAt ICh0eXBlbGVuICUgd29yZHNpemUpKSAlIHdvcmRzaXplOworLSAgICAgIHZhbCA9IGFsbG9jYSAo dHlwZWxlbiArIHNsYWNrbGVuKTsKKy0gICAgICBtZW1jcHkgKHZhbCwgdmFsdWVfY29udGVudHMg KGFyZ3Nbal0pLCB0eXBlbGVuKTsKKysgICAgICB2YWwgPSB4bWFsbG9jICh0eXBlbGVuICsgc2xh Y2tsZW4pOworKyAgICAgIGJhY2tfdG8gPSBtYWtlX2NsZWFudXAgKHhmcmVlLCB2YWwpOworKyAg ICAgIG1lbWNweSAodmFsLCBjb250ZW50cywgdHlwZWxlbik7CisgICAgICAgbWVtc2V0ICh2YWwg KyB0eXBlbGVuLCAwLCBzbGFja2xlbik7CisgICAgICAgLyogTm93IHdyaXRlIHRoaXMgZGF0YSB0 byB0aGUgc3RhY2suICAqLworICAgICAgIHN0YWNrX2Rlc3QgLT0gdHlwZWxlbiArIHNsYWNrbGVu OworICAgICAgIHdyaXRlX21lbW9yeSAoc3RhY2tfZGVzdCwgdmFsLCB0eXBlbGVuICsgc2xhY2ts ZW4pOworKyAgICAgIGRvX2NsZWFudXBzIChiYWNrX3RvKTsKKyAgICAgfQorIAorICAgLyogRmlu YWxseSwgaWYgYSBwYXJhbSBuZWVkcyB0byBiZSBzcGxpdCBiZXR3ZWVuIHJlZ2lzdGVycyBhbmQg c3RhY2ssIAorLS0tIHNyYy9nZGIvdGlsZWd4LXRkZXAuYwkyMDEyLzA1LzMwIDE5OjMxOjQ0CTEu MQorKysrIHNyYy9nZGIvdGlsZWd4LXRkZXAuYwkyMDEyLzA4LzI0IDAzOjU3OjIyCTEuMgorQEAg LTM0MywxNiArMzQzLDIwIEBACisgICBmb3IgKGogPSBuYXJncyAtIDE7IGogPj0gaTsgai0tKQor ICAgICB7CisgICAgICAgZ2RiX2J5dGUgKnZhbDsKKysgICAgICBzdHJ1Y3QgY2xlYW51cCAqYmFj a190bzsKKysgICAgICBjb25zdCBnZGJfYnl0ZSAqY29udGVudHMgPSB2YWx1ZV9jb250ZW50cyAo YXJnc1tqXSk7CisgCisgICAgICAgdHlwZWxlbiA9IFRZUEVfTEVOR1RIICh2YWx1ZV9lbmNsb3Np bmdfdHlwZSAoYXJnc1tqXSkpOworICAgICAgIHNsYWNrbGVuID0gKCh0eXBlbGVuICsgMykgJiAo fjMpKSAtIHR5cGVsZW47CistICAgICAgdmFsID0gYWxsb2NhICh0eXBlbGVuICsgc2xhY2tsZW4p OworLSAgICAgIG1lbWNweSAodmFsLCB2YWx1ZV9jb250ZW50cyAoYXJnc1tqXSksIHR5cGVsZW4p OworKyAgICAgIHZhbCA9IHhtYWxsb2MgKHR5cGVsZW4gKyBzbGFja2xlbik7CisrICAgICAgYmFj a190byA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIHZhbCk7CisrICAgICAgbWVtY3B5ICh2YWwsIGNv bnRlbnRzLCB0eXBlbGVuKTsKKyAgICAgICBtZW1zZXQgKHZhbCArIHR5cGVsZW4sIDAsIHNsYWNr bGVuKTsKKyAKKyAgICAgICAvKiBOb3cgd3JpdGUgZGF0YSB0byB0aGUgc3RhY2suICBUaGUgc3Rh Y2sgZ3Jvd3MgZG93bndhcmRzLiAgKi8KKyAgICAgICBzdGFja19kZXN0IC09IHR5cGVsZW4gKyBz bGFja2xlbjsKKyAgICAgICB3cml0ZV9tZW1vcnkgKHN0YWNrX2Rlc3QsIHZhbCwgdHlwZWxlbiAr IHNsYWNrbGVuKTsKKysgICAgICBkb19jbGVhbnVwcyAoYmFja190byk7CisgICAgIH0KKyAKKyAg IC8qIEFkZCAyIHdvcmRzIGZvciBsaW5rYWdlIHNwYWNlIHRvIHRoZSBzdGFjay4gICovCistLS0g c3JjL2dkYi94c3Rvcm15MTYtdGRlcC5jCTIwMTIvMDUvMTYgMTQ6MzU6MDgJMS4xMTgKKysrKyBz cmMvZ2RiL3hzdG9ybXkxNi10ZGVwLmMJMjAxMi8wOC8yNCAwMzo1NzoyMgkxLjExOQorQEAgLTI3 OSwxNiArMjc5LDIwIEBACisgICBmb3IgKGogPSBuYXJncyAtIDE7IGogPj0gaTsgai0tKQorICAg ICB7CisgICAgICAgY2hhciAqdmFsOworKyAgICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwor KyAgICAgIGNvbnN0IGdkYl9ieXRlICpieXRlcyA9IHZhbHVlX2NvbnRlbnRzIChhcmdzW2pdKTsK KyAKKyAgICAgICB0eXBlbGVuID0gVFlQRV9MRU5HVEggKHZhbHVlX2VuY2xvc2luZ190eXBlIChh cmdzW2pdKSk7CisgICAgICAgc2xhY2tsZW4gPSB0eXBlbGVuICYgMTsKKy0gICAgICB2YWwgPSBh bGxvY2EgKHR5cGVsZW4gKyBzbGFja2xlbik7CistICAgICAgbWVtY3B5ICh2YWwsIHZhbHVlX2Nv bnRlbnRzIChhcmdzW2pdKSwgdHlwZWxlbik7CisrICAgICAgdmFsID0geG1hbGxvYyAodHlwZWxl biArIHNsYWNrbGVuKTsKKysgICAgICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgdmFs KTsKKysgICAgICBtZW1jcHkgKHZhbCwgYnl0ZXMsIHR5cGVsZW4pOworICAgICAgIG1lbXNldCAo dmFsICsgdHlwZWxlbiwgMCwgc2xhY2tsZW4pOworIAorICAgICAgIC8qIE5vdyB3cml0ZSB0aGlz IGRhdGEgdG8gdGhlIHN0YWNrLiAgVGhlIHN0YWNrIGdyb3dzIHVwd2FyZHMuICAqLworICAgICAg IHdyaXRlX21lbW9yeSAoc3RhY2tfZGVzdCwgdmFsLCB0eXBlbGVuICsgc2xhY2tsZW4pOworICAg ICAgIHN0YWNrX2Rlc3QgKz0gdHlwZWxlbiArIHNsYWNrbGVuOworKyAgICAgIGRvX2NsZWFudXBz IChiYWNrX3RvKTsKKyAgICAgfQorIAorICAgc3RvcmVfdW5zaWduZWRfaW50ZWdlciAoYnVmLCB4 c3Rvcm15MTZfcGNfc2l6ZSwgYnl0ZV9vcmRlciwgYnBfYWRkcik7CgpkaWZmIC0tZ2l0IGEvZ2Ri LXJoYno3OTU0MjQtYml0cG9zLTExb2YyNS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0x MW9mMjUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTU4YTVhOAot LS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xMW9mMjUucGF0Y2gKQEAg LTAsMCArMSwzNCBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1jdnMvMjAxMi0wOS9t c2cwMDA2NS5odG1sCisKKyMjIyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDEyLzA5LzE0IDAwOjU0OjU3 CTEuMTQ2NTYKKyMjIyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDEyLzA5LzE0IDA3OjAwOjM3CTEuMTQ2 NTcKKyMjIC0xLDMgKzEsOCBAQAorKzIwMTItMDktMTQgIFNpZGRoZXNoIFBveWFyZWthciAgPHNp ZGRoZXNoQHJlZGhhdC5jb20+CisrCisrCSogcHJpbnRjbWQuYyAodWlfcHJpbnRmKTogRWxpbWlu YXRlIHNpbmdsZS11c2UgdmFyaWFibGUKKysJUEFSQU1fTEVOLgorKworIDIwMTItMDktMTQgIFlh byBRaSAgPHlhb0Bjb2Rlc291cmNlcnkuY29tPgorIAkgICAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNA cmVkaGF0LmNvbT4KKyAKKy0tLSBzcmMvZ2RiL3ByaW50Y21kLmMJMjAxMi8wOS8xMSAyMToyNjox NgkxLjIxMQorKysrIHNyYy9nZGIvcHJpbnRjbWQuYwkyMDEyLzA5LzE0IDA3OjAwOjQyCTEuMjEy CitAQCAtMjI2Nyw3ICsyMjY3LDYgQEAKKyAKKyAJICAgICAgLyogUGFyYW1ldGVyIGRhdGEuICAq LworIAkgICAgICBzdHJ1Y3QgdHlwZSAqcGFyYW1fdHlwZSA9IHZhbHVlX3R5cGUgKHZhbF9hcmdz W2ldKTsKKy0JICAgICAgdW5zaWduZWQgaW50IHBhcmFtX2xlbiA9IFRZUEVfTEVOR1RIIChwYXJh bV90eXBlKTsKKyAJICAgICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfdHlwZV9hcmNo IChwYXJhbV90eXBlKTsKKyAJICAgICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJh cmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOworIAorQEAgLTIzMjksOCArMjMyOCw4IEBACisgCisg CSAgICAgIC8qIENvbnZlcnNpb24gYmV0d2VlbiBkaWZmZXJlbnQgREZQIHR5cGVzLiAgKi8KKyAJ ICAgICAgaWYgKFRZUEVfQ09ERSAocGFyYW1fdHlwZSkgPT0gVFlQRV9DT0RFX0RFQ0ZMT0FUKQor LQkJZGVjaW1hbF9jb252ZXJ0IChwYXJhbV9wdHIsIHBhcmFtX2xlbiwgYnl0ZV9vcmRlciwKKy0J CQkJIGRlYywgZGZwX2xlbiwgYnl0ZV9vcmRlcik7CisrCQlkZWNpbWFsX2NvbnZlcnQgKHBhcmFt X3B0ciwgVFlQRV9MRU5HVEggKHBhcmFtX3R5cGUpLAorKwkJCQkgYnl0ZV9vcmRlciwgZGVjLCBk ZnBfbGVuLCBieXRlX29yZGVyKTsKKyAJICAgICAgZWxzZQorIAkJLyogSWYgdGhpcyBpcyBhIG5v bi10cml2aWFsIGNvbnZlcnNpb24sIGp1c3Qgb3V0cHV0IDAuCisgCQkgICBBIGNvcnJlY3QgY29u dmVydGVkIHZhbHVlIGNhbiBiZSBkaXNwbGF5ZWQgYnkgZXhwbGljaXRseQoKZGlmZiAtLWdpdCBh L2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xMm9mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRw b3MtMTJvZjI1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwYjE5 YTEKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMTJvZjI1LnBhdGNo CkBAIC0wLDAgKzEsNjYgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItY3ZzLzIwMTIt MDkvbXNnMDAwNjguaHRtbAorCisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMi8wOS8xNCAxMjox MDoyMQkxLjE0NjU5CisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMi8wOS8xNCAxMjo0Njo1NQkx LjE0NjYwCisjIyAtMSwzICsxLDggQEAKKysyMDEyLTA5LTE0ICBTaWRkaGVzaCBQb3lhcmVrYXIg IDxzaWRkaGVzaEByZWRoYXQuY29tPgorKworKwkqIHZhbGFyaXRoLmMgKHZhbHVlX2NvbmNhdCk6 IFJlcGxhY2UgdW5zYWZlIEFMTE9DQSB3aXRoCisrCVhNQUxMT0MvWEZSRUUuCisrCisgMjAxMi0w OS0xNCAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KKyAKKyAJKiBnZGIuMSAoU0VF IEFMU08pOiBFeHBhbmQgcG9pbnRlciB0byBHREIncyBUZXhpbmZvIG1hbnVhbC4KK0luZGV4OiBn ZGItNy41LjAuMjAxMjA5MjYvZ2RiL3ZhbGFyaXRoLmMKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41 LjAuMjAxMjA5MjYub3JpZy9nZGIvdmFsYXJpdGguYwkyMDEyLTExLTA3IDIyOjAwOjQxLjAwMDAw MDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvdmFsYXJpdGguYwkyMDEyLTEx LTA3IDIyOjAyOjE4LjY2MTc2NzI4MSArMDEwMAorQEAgLTcxNiw5ICs3MTYsMTIgQEAgdmFsdWVf Y29uY2F0IChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdAorICAgICAgIGlmIChUWVBFX0NPREUg KHR5cGUyKSA9PSBUWVBFX0NPREVfU1RSSU5HCisgCSAgfHwgVFlQRV9DT0RFICh0eXBlMikgPT0g VFlQRV9DT0RFX0NIQVIpCisgCXsKKysJICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKKysKKyAJ ICBjb3VudCA9IGxvbmdlc3RfdG9faW50ICh2YWx1ZV9hc19sb25nIChpbnZhbDEpKTsKKyAJICBp bnZhbDJsZW4gPSBUWVBFX0xFTkdUSCAodHlwZTIpOworLQkgIHB0ciA9IChjaGFyICopIGFsbG9j YSAoY291bnQgKiBpbnZhbDJsZW4pOworKwkgIHB0ciA9IChjaGFyICopIHhtYWxsb2MgKGNvdW50 ICogaW52YWwybGVuKTsKKysJICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgcHRyKTsK KyAJICBpZiAoVFlQRV9DT0RFICh0eXBlMikgPT0gVFlQRV9DT0RFX0NIQVIpCisgCSAgICB7Cisg CSAgICAgIGNoYXJfdHlwZSA9IHR5cGUyOworQEAgLTc0MSw2ICs3NDQsNyBAQCB2YWx1ZV9jb25j YXQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgc3RydWN0CisgCQl9CisgCSAgICB9CisgCSAgb3V0dmFs ID0gdmFsdWVfc3RyaW5nIChwdHIsIGNvdW50ICogaW52YWwybGVuLCBjaGFyX3R5cGUpOworKwkg IGRvX2NsZWFudXBzIChiYWNrX3RvKTsKKyAJfQorICAgICAgIGVsc2UgaWYgKFRZUEVfQ09ERSAo dHlwZTIpID09IFRZUEVfQ09ERV9CSVRTVFJJTkcKKyAJICAgICAgIHx8IFRZUEVfQ09ERSAodHlw ZTIpID09IFRZUEVfQ09ERV9CT09MKQorQEAgLTc1NSw2ICs3NTksOCBAQCB2YWx1ZV9jb25jYXQg KHN0cnVjdCB2YWx1ZSAqYXJnMSwgc3RydWN0CisgICBlbHNlIGlmIChUWVBFX0NPREUgKHR5cGUx KSA9PSBUWVBFX0NPREVfU1RSSU5HCisgCSAgIHx8IFRZUEVfQ09ERSAodHlwZTEpID09IFRZUEVf Q09ERV9DSEFSKQorICAgICB7CisrICAgICAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87CisrCisg ICAgICAgLyogV2UgaGF2ZSB0d28gY2hhcmFjdGVyIHN0cmluZ3MgdG8gY29uY2F0ZW5hdGUuICAq LworICAgICAgIGlmIChUWVBFX0NPREUgKHR5cGUyKSAhPSBUWVBFX0NPREVfU1RSSU5HCisgCSAg JiYgVFlQRV9DT0RFICh0eXBlMikgIT0gVFlQRV9DT0RFX0NIQVIpCitAQCAtNzYzLDcgKzc2OSw4 IEBAIHZhbHVlX2NvbmNhdCAoc3RydWN0IHZhbHVlICphcmcxLCBzdHJ1Y3QKKyAJfQorICAgICAg IGludmFsMWxlbiA9IFRZUEVfTEVOR1RIICh0eXBlMSk7CisgICAgICAgaW52YWwybGVuID0gVFlQ RV9MRU5HVEggKHR5cGUyKTsKKy0gICAgICBwdHIgPSAoY2hhciAqKSBhbGxvY2EgKGludmFsMWxl biArIGludmFsMmxlbik7CisrICAgICAgcHRyID0gKGNoYXIgKikgeG1hbGxvYyAoaW52YWwxbGVu ICsgaW52YWwybGVuKTsKKysgICAgICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgcHRy KTsKKyAgICAgICBpZiAoVFlQRV9DT0RFICh0eXBlMSkgPT0gVFlQRV9DT0RFX0NIQVIpCisgCXsK KyAJICBjaGFyX3R5cGUgPSB0eXBlMTsKK0BAIC03ODYsNiArNzkzLDcgQEAgdmFsdWVfY29uY2F0 IChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdAorIAkgIG1lbWNweSAocHRyICsgaW52YWwxbGVu LCB2YWx1ZV9jb250ZW50cyAoaW52YWwyKSwgaW52YWwybGVuKTsKKyAJfQorICAgICAgIG91dHZh bCA9IHZhbHVlX3N0cmluZyAocHRyLCBpbnZhbDFsZW4gKyBpbnZhbDJsZW4sIGNoYXJfdHlwZSk7 CisrICAgICAgZG9fY2xlYW51cHMgKGJhY2tfdG8pOworICAgICB9CisgICBlbHNlIGlmIChUWVBF X0NPREUgKHR5cGUxKSA9PSBUWVBFX0NPREVfQklUU1RSSU5HCisgCSAgIHx8IFRZUEVfQ09ERSAo dHlwZTEpID09IFRZUEVfQ09ERV9CT09MKQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJp dHBvcy0xM29mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMTNvZjI1LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhZTIwOTgKLS0tIC9kZXYvbnVsbAor KysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMTNvZjI1LnBhdGNoCkBAIC0wLDAgKzEsMjggQEAK K2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItY3ZzLzIwMTItMDkvbXNnMDAwODIuaHRtbAor CisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMi8wOS8xNyAwNzoxNTo0NwkxLjE0NjY0CisjIyMg c3JjL2dkYi9DaGFuZ2VMb2cJMjAxMi8wOS8xNyAwNzoyNjo1NAkxLjE0NjY1CisjIyAtMSwzICsx LDggQEAKKysyMDEyLTA5LTE3ICBTaWRkaGVzaCBQb3lhcmVrYXIgIDxzaWRkaGVzaEByZWRoYXQu Y29tPgorKworKwkqIGluZnJ1bi5jIChyZXN0b3JlX2luZmNhbGxfc3VzcGVuZF9zdGF0ZSk6IEVs aW1pbmF0ZSBzaW5nbGUtdXNlCisrCXZhcmlhYmxlIExFTi4KKysKKyAyMDEyLTA5LTE3ICBKYW4g S3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisgCisgCVBSIDE0MTE5Cist LS0gc3JjL2dkYi9pbmZydW4uYwkyMDEyLzA5LzE3IDA3OjA5OjM0CTEuNTU4CisrKysgc3JjL2dk Yi9pbmZydW4uYwkyMDEyLzA5LzE3IDA3OjI2OjU1CTEuNTU5CitAQCAtNjc3NywxMSArNjc3Nywx MCBAQAorICAgaWYgKGluZl9zdGF0ZS0+c2lnaW5mb19nZGJhcmNoID09IGdkYmFyY2gpCisgICAg IHsKKyAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGdkYmFyY2hfZ2V0X3NpZ2luZm9fdHlwZSAo Z2RiYXJjaCk7CistICAgICAgc2l6ZV90IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAKKyAg ICAgICAvKiBFcnJvcnMgaWdub3JlZC4gICovCisgICAgICAgdGFyZ2V0X3dyaXRlICgmY3VycmVu dF90YXJnZXQsIFRBUkdFVF9PQkpFQ1RfU0lHTkFMX0lORk8sIE5VTEwsCistCQkgICAgaW5mX3N0 YXRlLT5zaWdpbmZvX2RhdGEsIDAsIGxlbik7CisrCQkgICAgaW5mX3N0YXRlLT5zaWdpbmZvX2Rh dGEsIDAsIFRZUEVfTEVOR1RIICh0eXBlKSk7CisgICAgIH0KKyAKKyAgIC8qIFRoZSBpbmZlcmlv ciBjYW4gYmUgZ29uZSBpZiB0aGUgdXNlciB0eXBlcyAicHJpbnQgZXhpdCgwKSIKCmRpZmYgLS1n aXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMTRvZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQt Yml0cG9zLTE0b2YyNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5h MDlhZDVlCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTE0b2YyNS5w YXRjaApAQCAtMCwwICsxLDIwOSBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1jdnMv MjAxMi0wOS9tc2cwMDA4NC5odG1sCisKKyMjIyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDEyLzA5LzE3 IDA4OjQyOjA3CTEuMTQ2NjYKKyMjIyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDEyLzA5LzE3IDA4OjUy OjE3CTEuMTQ2NjcKKyMjIC0xLDMgKzEsMjMgQEAKKysyMDEyLTA5LTE3ICBTaWRkaGVzaCBQb3lh cmVrYXIgIDxzaWRkaGVzaEByZWRoYXQuY29tPgorKworKwkqIG0yLXZhbHByaW50LmMgKG0yX3By aW50X2FycmF5X2NvbnRlbnRzKTogRWxpbWluYXRlIHZhcmlhYmxlCisrCUVMVExFTiBhbmQgdXNl IFRZUEVfTEVOR1RIIGRpcmVjdGx5LgorKwkobTJfdmFsX3ByaW50KTogTGlrZXdpc2UuCisrCSog bTY4ay10ZGVwLmMgKG02OGtfc3ZyNF9leHRyYWN0X3JldHVybl92YWx1ZSk6IEVsaW1pbmF0ZQor Kwl2YXJpYWJsZSBMRU4gYW5kIHVzZSBUWVBFX0xFTkdUSCBkaXJlY3RseS4KKysJKG02OGtfc3Zy NF9zdG9yZV9yZXR1cm5fdmFsdWUpOiBMaWtld2lzZS4KKysJKiBtaXBzLXRkZXAuYyAobWlwc19v MzJfcHVzaF9kdW1teV9jYWxsKTogRWxpbWluYXRlIHZhcmlhYmxlCisrCUFSR0xFTiBhbmQgdXNl IFRZUEVfTEVOR1RIIGRpcmVjdGx5LgorKwkobWlwc19vNjRfcHVzaF9kdW1teV9jYWxsKTogTGlr ZXdpc2UuCisrCSogczM5MC10ZGVwIChzMzkwX2Z1bmN0aW9uX2FyZ19wYXNzX2J5X3JlZmVyZW5j ZSk6IEVsaW1pbmF0ZQorKwl2YXJpYWJsZSBMRU5HVEggYW5kIHVzZSBUWVBFX0xFTkdUSCBkaXJl Y3RseS4KKysJKHMzOTBfZnVuY3Rpb25fYXJnX2Zsb2F0KTogTGlrZXdpc2UuCisrCShzMzkwX2Z1 bmN0aW9uX2FyZ19pbnRlZ2VyKTogTGlrZXdpc2UuCisrCShzMzkwX3B1c2hfZHVtbXlfY2FsbCk6 IExpa2V3aXNlLgorKwkoczM5MF9yZXR1cm5fdmFsdWVfY29udmVudGlvbik6IExpa2V3aXNlLgor KwkqIHNwdS10ZGVwLmMgKHNwdV9wdXNoX2R1bW15X2NhbGwpOiBFbGltaW5hdGUgTEVOIGFuZCB1 c2UKKysJVFlQRV9MRU5HVEggZGlyZWN0bHkuCisrCisgMjAxMi0wOS0xNyAgWWFvIFFpICA8eWFv QGNvZGVzb3VyY2VyeS5jb20+CisgCisgCSogY2xpL2NsaS1kZWNvZGUuYyAoYWRkX3NldHNob3df enVpbnRlZ2VyX3VubGltaXRlZF9jbWQpOiBOZXcuCistLS0gc3JjL2dkYi9tMi12YWxwcmludC5j CTIwMTIvMDgvMTYgMDc6MzY6MjAJMS40NQorKysrIHNyYy9nZGIvbTItdmFscHJpbnQuYwkyMDEy LzA5LzE3IDA4OjUyOjE4CTEuNDYKK0BAIC0yNjksMTYgKzI2OSwxNCBAQAorIAkJCSBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKKyAJCQkgaW50IGxlbikKKyB7Cist ICBpbnQgZWx0bGVuOworICAgQ0hFQ0tfVFlQRURFRiAodHlwZSk7CisgCisgICBpZiAoVFlQRV9M RU5HVEggKHR5cGUpID4gMCkKKyAgICAgeworLSAgICAgIGVsdGxlbiA9IFRZUEVfTEVOR1RIICh0 eXBlKTsKKyAgICAgICBpZiAob3B0aW9ucy0+cHJldHR5cHJpbnRfYXJyYXlzKQorIAlwcmludF9z cGFjZXNfZmlsdGVyZWQgKDIgKyAyICogcmVjdXJzZSwgc3RyZWFtKTsKKyAgICAgICAvKiBGb3Ig YW4gYXJyYXkgb2YgY2hhcnMsIHByaW50IHdpdGggc3RyaW5nIHN5bnRheC4gICovCistICAgICAg aWYgKGVsdGxlbiA9PSAxICYmCisrICAgICAgaWYgKFRZUEVfTEVOR1RIICh0eXBlKSA9PSAxICYm CisgCSAgKChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9JTlQpCisgCSAgIHx8ICgoY3Vy cmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfbTIpCisgCSAgICAgICAmJiAo VFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQ0hBUikpKQorQEAgLTMyMCw3ICszMTgsNiBA QAorICAgdW5zaWduZWQgaW50IGkgPSAwOwkvKiBOdW1iZXIgb2YgY2hhcmFjdGVycyBwcmludGVk LiAgKi8KKyAgIHVuc2lnbmVkIGxlbjsKKyAgIHN0cnVjdCB0eXBlICplbHR0eXBlOworLSAgdW5z aWduZWQgZWx0bGVuOworICAgQ09SRV9BRERSIGFkZHI7CisgCisgICBDSEVDS19UWVBFREVGICh0 eXBlKTsKK0BAIC0zMzAsMTIgKzMyNywxMSBAQAorICAgICAgIGlmIChUWVBFX0xFTkdUSCAodHlw ZSkgPiAwICYmIFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkgPiAwKQorIAl7 CisgCSAgZWx0dHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKTsK Ky0JICBlbHRsZW4gPSBUWVBFX0xFTkdUSCAoZWx0dHlwZSk7CistCSAgbGVuID0gVFlQRV9MRU5H VEggKHR5cGUpIC8gZWx0bGVuOworKwkgIGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKSAvIFRZUEVf TEVOR1RIIChlbHR0eXBlKTsKKyAJICBpZiAob3B0aW9ucy0+cHJldHR5cHJpbnRfYXJyYXlzKQor IAkgICAgcHJpbnRfc3BhY2VzX2ZpbHRlcmVkICgyICsgMiAqIHJlY3Vyc2UsIHN0cmVhbSk7Cisg CSAgLyogRm9yIGFuIGFycmF5IG9mIGNoYXJzLCBwcmludCB3aXRoIHN0cmluZyBzeW50YXguICAq LworLQkgIGlmIChlbHRsZW4gPT0gMSAmJgorKwkgIGlmIChUWVBFX0xFTkdUSCAoZWx0dHlwZSkg PT0gMSAmJgorIAkgICAgICAoKFRZUEVfQ09ERSAoZWx0dHlwZSkgPT0gVFlQRV9DT0RFX0lOVCkK KyAJICAgICAgIHx8ICgoY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2Vf bTIpCisgCQkgICAmJiAoVFlQRV9DT0RFIChlbHR0eXBlKSA9PSBUWVBFX0NPREVfQ0hBUikpKQor LS0tIHNyYy9nZGIvbTY4ay10ZGVwLmMJMjAxMi8wNy8yNCAxNjozNzoyNAkxLjE1OQorKysrIHNy Yy9nZGIvbTY4ay10ZGVwLmMJMjAxMi8wOS8xNyAwODo1MjoxOAkxLjE2MAorQEAgLTMxNSw3ICsz MTUsNiBAQAorIG02OGtfc3ZyNF9leHRyYWN0X3JldHVybl92YWx1ZSAoc3RydWN0IHR5cGUgKnR5 cGUsIHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsCisgCQkJCWdkYl9ieXRlICp2YWxidWYpCisg eworLSAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAgIGdkYl9ieXRlIGJ1ZltNNjhL X01BWF9SRUdJU1RFUl9TSVpFXTsKKyAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3Jl Z2NhY2hlX2FyY2ggKHJlZ2NhY2hlKTsKKyAgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBn ZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworQEAgLTMyNiw3ICszMjUsNyBAQAorICAgICAgIHJlZ2Nh Y2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgTTY4S19GUDBfUkVHTlVNLCBidWYpOworICAgICAgIGNv bnZlcnRfdHlwZWRfZmxvYXRpbmcgKGJ1ZiwgZnByZWdfdHlwZSwgdmFsYnVmLCB0eXBlKTsKKyAg ICAgfQorLSAgZWxzZSBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfUFRSICYmIGxl biA9PSA0KQorKyAgZWxzZSBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfUFRSICYm IFRZUEVfTEVOR1RIICh0eXBlKSA9PSA0KQorICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2Fj aGUsIE02OEtfQTBfUkVHTlVNLCB2YWxidWYpOworICAgZWxzZQorICAgICBtNjhrX2V4dHJhY3Rf cmV0dXJuX3ZhbHVlICh0eXBlLCByZWdjYWNoZSwgdmFsYnVmKTsKK0BAIC0zNTcsNyArMzU2LDYg QEAKKyBtNjhrX3N2cjRfc3RvcmVfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3Ry dWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKKyAJCQkgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYnVm KQorIHsKKy0gIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgICBzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCA9IGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNoZSk7CisgICBzdHJ1Y3QgZ2Ri YXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKKyAKK0BAIC0zNjgsNyAr MzY2LDcgQEAKKyAgICAgICBjb252ZXJ0X3R5cGVkX2Zsb2F0aW5nICh2YWxidWYsIHR5cGUsIGJ1 ZiwgZnByZWdfdHlwZSk7CisgICAgICAgcmVnY2FjaGVfcmF3X3dyaXRlIChyZWdjYWNoZSwgTTY4 S19GUDBfUkVHTlVNLCBidWYpOworICAgICB9CistICBlbHNlIGlmIChUWVBFX0NPREUgKHR5cGUp ID09IFRZUEVfQ09ERV9QVFIgJiYgbGVuID09IDQpCisrICBlbHNlIGlmIChUWVBFX0NPREUgKHR5 cGUpID09IFRZUEVfQ09ERV9QVFIgJiYgVFlQRV9MRU5HVEggKHR5cGUpID09IDQpCisgICAgIHsK KyAgICAgICByZWdjYWNoZV9yYXdfd3JpdGUgKHJlZ2NhY2hlLCBNNjhLX0EwX1JFR05VTSwgdmFs YnVmKTsKKyAgICAgICByZWdjYWNoZV9yYXdfd3JpdGUgKHJlZ2NhY2hlLCBNNjhLX0QwX1JFR05V TSwgdmFsYnVmKTsKKy0tLSBzcmMvZ2RiL21pcHMtdGRlcC5jCTIwMTIvMDgvMTkgMjI6MjI6NDkJ MS41NjEKKysrKyBzcmMvZ2RiL21pcHMtdGRlcC5jCTIwMTIvMDkvMTcgMDg6NTI6MTgJMS41NjIK K0BAIC01MTc0LDEzICs1MTc0LDEyIEBACisgICBmb3IgKGFyZ251bSA9IDA7IGFyZ251bSA8IG5h cmdzOyBhcmdudW0rKykKKyAgICAgeworICAgICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZSA9IGNo ZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZ3NbYXJnbnVtXSkpOworLSAgICAgIGludCBhcmds ZW4gPSBUWVBFX0xFTkdUSCAoYXJnX3R5cGUpOworIAorICAgICAgIC8qIEFsaWduIHRvIGRvdWJs ZS13b3JkIGlmIG5lY2Vzc2FyeS4gICovCisgICAgICAgaWYgKG1pcHNfdHlwZV9uZWVkc19kb3Vi bGVfYWxpZ24gKGFyZ190eXBlKSkKKyAJbGVuID0gYWxpZ25fdXAgKGxlbiwgTUlQUzMyX1JFR1NJ WkUgKiAyKTsKKyAgICAgICAvKiBBbGxvY2F0ZSBzcGFjZSBvbiB0aGUgc3RhY2suICAqLworLSAg ICAgIGxlbiArPSBhbGlnbl91cCAoYXJnbGVuLCBNSVBTMzJfUkVHU0laRSk7CisrICAgICAgbGVu ICs9IGFsaWduX3VwIChUWVBFX0xFTkdUSCAoYXJnX3R5cGUpLCBNSVBTMzJfUkVHU0laRSk7Cisg ICAgIH0KKyAgIHNwIC09IGFsaWduX3VwIChsZW4sIDE2KTsKKyAKK0BAIC01NzAzLDEwICs1NzAy LDkgQEAKKyAgIGZvciAoYXJnbnVtID0gMDsgYXJnbnVtIDwgbmFyZ3M7IGFyZ251bSsrKQorICAg ICB7CisgICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVf dHlwZSAoYXJnc1thcmdudW1dKSk7CistICAgICAgaW50IGFyZ2xlbiA9IFRZUEVfTEVOR1RIIChh cmdfdHlwZSk7CisgCisgICAgICAgLyogQWxsb2NhdGUgc3BhY2Ugb24gdGhlIHN0YWNrLiAgKi8K Ky0gICAgICBsZW4gKz0gYWxpZ25fdXAgKGFyZ2xlbiwgTUlQUzY0X1JFR1NJWkUpOworKyAgICAg IGxlbiArPSBhbGlnbl91cCAoVFlQRV9MRU5HVEggKGFyZ190eXBlKSwgTUlQUzY0X1JFR1NJWkUp OworICAgICB9CisgICBzcCAtPSBhbGlnbl91cCAobGVuLCAxNik7CisgCistLS0gc3JjL2dkYi9z MzkwLXRkZXAuYwkyMDEyLzA1LzE4IDIxOjAyOjUwCTEuMjA2CisrKysgc3JjL2dkYi9zMzkwLXRk ZXAuYwkyMDEyLzA5LzE3IDA4OjUyOjE4CTEuMjA3CitAQCAtMjQ4OSw4ICsyNDg5LDcgQEAKKyBz dGF0aWMgaW50CisgczM5MF9mdW5jdGlvbl9hcmdfcGFzc19ieV9yZWZlcmVuY2UgKHN0cnVjdCB0 eXBlICp0eXBlKQorIHsKKy0gIHVuc2lnbmVkIGxlbmd0aCA9IFRZUEVfTEVOR1RIICh0eXBlKTsK Ky0gIGlmIChsZW5ndGggPiA4KQorKyAgaWYgKFRZUEVfTEVOR1RIICh0eXBlKSA+IDgpCisgICAg IHJldHVybiAxOworIAorICAgcmV0dXJuIChpc19zdHJ1Y3RfbGlrZSAodHlwZSkgJiYgIWlzX3Bv d2VyX29mX3R3byAoVFlQRV9MRU5HVEggKHR5cGUpKSkKK0BAIC0yNTAzLDggKzI1MDIsNyBAQAor IHN0YXRpYyBpbnQKKyBzMzkwX2Z1bmN0aW9uX2FyZ19mbG9hdCAoc3RydWN0IHR5cGUgKnR5cGUp CisgeworLSAgdW5zaWduZWQgbGVuZ3RoID0gVFlQRV9MRU5HVEggKHR5cGUpOworLSAgaWYgKGxl bmd0aCA+IDgpCisrICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpID4gOCkKKyAgICAgcmV0dXJuIDA7 CisgCisgICByZXR1cm4gaXNfZmxvYXRfbGlrZSAodHlwZSk7CitAQCAtMjUxNSwxMyArMjUxMywx MiBAQAorIHN0YXRpYyBpbnQKKyBzMzkwX2Z1bmN0aW9uX2FyZ19pbnRlZ2VyIChzdHJ1Y3QgdHlw ZSAqdHlwZSkKKyB7CistICB1bnNpZ25lZCBsZW5ndGggPSBUWVBFX0xFTkdUSCAodHlwZSk7Cist ICBpZiAobGVuZ3RoID4gOCkKKysgIGlmIChUWVBFX0xFTkdUSCAodHlwZSkgPiA4KQorICAgICBy ZXR1cm4gMDsKKyAKKyAgICByZXR1cm4gaXNfaW50ZWdlcl9saWtlICh0eXBlKQorIAkgIHx8IGlz X3BvaW50ZXJfbGlrZSAodHlwZSkKKy0JICB8fCAoaXNfc3RydWN0X2xpa2UgKHR5cGUpICYmIGlz X3Bvd2VyX29mX3R3byAobGVuZ3RoKSk7CisrCSAgfHwgKGlzX3N0cnVjdF9saWtlICh0eXBlKSAm JiBpc19wb3dlcl9vZl90d28gKFRZUEVfTEVOR1RIICh0eXBlKSkpOworIH0KKyAKKyAvKiBSZXR1 cm4gQVJHLCBhIGBTSU1QTEVfQVJHJywgc2lnbi1leHRlbmRlZCBvciB6ZXJvLWV4dGVuZGVkIHRv IGEgZnVsbAorQEAgLTI2MTYsMTEgKzI2MTMsMTAgQEAKKyAgICAgeworICAgICAgIHN0cnVjdCB2 YWx1ZSAqYXJnID0gYXJnc1tpXTsKKyAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5 cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOworLSAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IFRZUEVf TEVOR1RIICh0eXBlKTsKKyAKKyAgICAgICBpZiAoczM5MF9mdW5jdGlvbl9hcmdfcGFzc19ieV9y ZWZlcmVuY2UgKHR5cGUpKQorICAgICAgICAgeworLSAgICAgICAgICBzcCAtPSBsZW5ndGg7Cisr ICAgICAgICAgIHNwIC09IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAgICAgICAgICAgc3AgPSBhbGln bl9kb3duIChzcCwgYWxpZ25tZW50X29mICh0eXBlKSk7CisgICAgICAgICAgIGNvcHlfYWRkcltp XSA9IHNwOworICAgICAgICAgfQorQEAgLTI3OTksOCArMjc5NSw3IEBACisgc3RhdGljIGVudW0g cmV0dXJuX3ZhbHVlX2NvbnZlbnRpb24KKyBzMzkwX3JldHVybl92YWx1ZV9jb252ZW50aW9uIChz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHR5cGUgKnR5cGUpCisgeworLSAgaW50IGxl bmd0aCA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKy0gIGlmIChsZW5ndGggPiA4KQorKyAgaWYgKFRZ UEVfTEVOR1RIICh0eXBlKSA+IDgpCisgICAgIHJldHVybiBSRVRVUk5fVkFMVUVfU1RSVUNUX0NP TlZFTlRJT047CisgCisgICBzd2l0Y2ggKFRZUEVfQ09ERSAodHlwZSkpCistLS0gc3JjL2dkYi9z cHUtdGRlcC5jCTIwMTIvMDUvMTggMjE6MDI6NTAJMS44MQorKysrIHNyYy9nZGIvc3B1LXRkZXAu YwkyMDEyLzA5LzE3IDA4OjUyOjE4CTEuODIKK0BAIC0xMzczLDggKzEzNzMsNyBAQAorICAgICAg IHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1tpXTsKKyAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9 IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOworICAgICAgIGNvbnN0IGdkYl9ieXRl ICpjb250ZW50cyA9IHZhbHVlX2NvbnRlbnRzIChhcmcpOworLSAgICAgIGludCBsZW4gPSBUWVBF X0xFTkdUSCAodHlwZSk7CistICAgICAgaW50IG5fcmVncyA9IGFsaWduX3VwIChsZW4sIDE2KSAv IDE2OworKyAgICAgIGludCBuX3JlZ3MgPSBhbGlnbl91cCAoVFlQRV9MRU5HVEggKHR5cGUpLCAx NikgLyAxNjsKKyAKKyAgICAgICAvKiBJZiB0aGUgYXJndW1lbnQgZG9lc24ndCB3aG9sbHkgZml0 IGludG8gcmVnaXN0ZXJzLCBpdCBhbmQKKyAJIGFsbCBzdWJzZXF1ZW50IGFyZ3VtZW50cyBnbyB0 byB0aGUgc3RhY2suICAqLwoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xNW9m MjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMTVvZjI1LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmY2JhNjkKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIt cmhiejc5NTQyNC1iaXRwb3MtMTVvZjI1LnBhdGNoCkBAIC0wLDAgKzEsMzYgQEAKK2h0dHA6Ly9z b3VyY2V3YXJlLm9yZy9tbC9nZGItY3ZzLzIwMTItMDkvbXNnMDAxMzIuaHRtbAorCisjIyMgc3Jj L2dkYi9DaGFuZ2VMb2cJMjAxMi8wOS8yMiAxMzowNDo1NAkxLjE0NjkxCisjIyMgc3JjL2dkYi9D aGFuZ2VMb2cJMjAxMi8wOS8yNCAxMDoyNTowNwkxLjE0NjkyCisjIyAtMSwzICsxLDggQEAKKysy MDEyLTA5LTI0ICBTaWRkaGVzaCBQb3lhcmVrYXIgIDxzaWRkaGVzaEByZWRoYXQuY29tPgorKwor KwkqIG0yLXR5cGVwcmludC5jIChtMl9lbnVtKTogRXhwYW5kIExBU1RWQUwgdG8gTE9OR0VTVC4K KysJKiBwLXZhbHByaW50LmMgKHBhc2NhbF90eXBlX3ByaW50X2Jhc2UpOiBMaWtld2lzZS4KKysK KyAyMDEyLTA5LTIyICBZYW8gUWkgIDx5YW9AY29kZXNvdXJjZXJ5LmNvbT4KKyAKKyAJKiByZW1v dGUuYyAocmVtb3RlX2dldF90cmFjZV9zdGF0dXMpOiBSZW1vdmUgc2V0dGluZyBkZWZhdWx0Cist LS0gc3JjL2dkYi9tMi10eXBlcHJpbnQuYwkyMDEyLzA0LzE4IDA2OjQ2OjQ2CTEuMzAKKysrKyBz cmMvZ2RiL20yLXR5cGVwcmludC5jCTIwMTIvMDkvMjQgMTA6MjU6MDkJMS4zMQorQEAgLTU4Nyw3 ICs1ODcsOCBAQAorIHZvaWQKKyBtMl9lbnVtIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSwgaW50IHNob3csIGludCBsZXZlbCkKKyB7CistICBpbnQgbGFzdHZhbCwg aSwgbGVuOworKyAgTE9OR0VTVCBsYXN0dmFsOworKyAgaW50IGksIGxlbjsKKyAKKyAgIGlmIChz aG93IDwgMCkKKyAgICAgeworLS0tIHNyYy9nZGIvcC10eXBlcHJpbnQuYwkyMDEyLzA4LzE2IDA3 OjM2OjIwCTEuNDcKKysrKyBzcmMvZ2RiL3AtdHlwZXByaW50LmMJMjAxMi8wOS8yNCAxMDoyNTow OQkxLjQ4CitAQCAtNDQwLDcgKzQ0MCw3IEBACisgeworICAgaW50IGk7CisgICBpbnQgbGVuOwor LSAgaW50IGxhc3R2YWw7CisrICBMT05HRVNUIGxhc3R2YWw7CisgICBlbnVtCisgICAgIHsKKyAg ICAgICBzX25vbmUsIHNfcHVibGljLCBzX3ByaXZhdGUsIHNfcHJvdGVjdGVkCgpkaWZmIC0tZ2l0 IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTE2b2YyNS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJp dHBvcy0xNm9mMjUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTkx ZDgxNQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xNm9mMjUucGF0 Y2gKQEAgLTAsMCArMSwyNyBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1jdnMvMjAx Mi0wOS9tc2cwMDEzOC5odG1sCisKKyMjIyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDEyLzA5LzI0IDEw OjI1OjA3CTEuMTQ2OTIKKyMjIyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDEyLzA5LzI1IDEyOjIwOjM1 CTEuMTQ2OTMKKyMjIC0xLDMgKzEsOCBAQAorKzIwMTItMDktMjUgIFNpZGRoZXNoIFBveWFyZWth ciAgPHNpZGRoZXNoQHJlZGhhdC5jb20+CisrCisrCSogYy10eXBlcHJpbnQuYyAoY190eXBlX3By aW50X3ZhcnNwZWNfc3VmZml4KTogUmVtb3ZlIGNhc3QgYW5kCisrCXVzZSBwbG9uZ2VzdCB0byBw cmludCB0aGUgYXJyYXkgc2l6ZS4KKysKKyAyMDEyLTA5LTI0ICBTaWRkaGVzaCBQb3lhcmVrYXIg IDxzaWRkaGVzaEByZWRoYXQuY29tPgorIAorIAkqIG0yLXR5cGVwcmludC5jIChtMl9lbnVtKTog RXhwYW5kIExBU1RWQUwgdG8gTE9OR0VTVC4KK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2Ri L2MtdHlwZXByaW50LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9n ZGIvYy10eXBlcHJpbnQuYwkyMDEyLTExLTA3IDIyOjAwOjQwLjAwMDAwMDAwMCArMDEwMAorKysr IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvYy10eXBlcHJpbnQuYwkyMDEyLTExLTA3IDIyOjAzOjM5 LjI2OTY1MDE1NyArMDEwMAorQEAgLTYzMSw3ICs2MzEsOCBAQCBjX3R5cGVfcHJpbnRfdmFyc3Bl Y19zdWZmaXggKHN0cnVjdCB0eXBlCisgCSAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICJ2 YXJpYWJsZSIpOworIAkgIH0KKyAJZWxzZSBpZiAoZ2V0X2FycmF5X2JvdW5kcyAodHlwZSwgJmxv d19ib3VuZCwgJmhpZ2hfYm91bmQpKQorLQkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVk IiwgKGludCkgKGhpZ2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKSk7CisrCSAgZnByaW50Zl9maWx0 ZXJlZCAoc3RyZWFtLCAiJXMiLCAKKysJCQkgICAgcGxvbmdlc3QgKGhpZ2hfYm91bmQgLSBsb3df Ym91bmQgKyAxKSk7CisgCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIl0iKTsKKyAKKyAJY190 eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgc3RyZWFt LAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xN29mMjUucGF0Y2ggYi9nZGIt cmhiejc5NTQyNC1iaXRwb3MtMTdvZjI1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjlmYWRhNGUKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRw b3MtMTdvZjI1LnBhdGNoCkBAIC0wLDAgKzEsNzI5IEBACitodHRwOi8vc291cmNld2FyZS5vcmcv bWwvZ2RiLWN2cy8yMDEyLTA5L21zZzAwMTQyLmh0bWwKKworIyMjIHNyYy9nZGIvQ2hhbmdlTG9n CTIwMTIvMDkvMjUgMTI6Mzg6NTUJMS4xNDY5NgorIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTIv MDkvMjUgMTI6NDg6NTIJMS4xNDY5NworIyMgLTEsMyArMSwzNiBAQAorKzIwMTItMDktMjUgIFNp ZGRoZXNoIFBveWFyZWthciAgPHNpZGRoZXNoQHJlZGhhdC5jb20+CisrCisrCSogYWRhLXZhbHBy aW50LmMgKGFkYV92YWxfcHJpbnRfMSk6IEVsaW1pbmF0ZSBzaW5nbGUtdXNlCisrCXZhcmlhYmxl IExFTi4KKysJKiBhbHBoYS10ZGVwLmMgKGFscGhhX2V4dHJhY3RfcmV0dXJuX3ZhbHVlKTogVXNl IFRZUEVfTEVOR1RICisrCWRpcmVjdGx5LgorKwkoYWxwaGFfc3RvcmVfcmV0dXJuX3ZhbHVlKTog TGlrZXdpc2UuCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF9jbGFzc2lmeV9hZ2dyZWdhdGUpOiBM aWtld2lzZS4KKysJKGFtZDY0X3B1c2hfYXJndW1lbnRzKTogTGlrZXdpc2UuCisrCSogYXgtZ2Ri LmMgKGdlbl90cmFjZV9zdGF0aWNfZmllbGRzKTogTGlrZXdpc2UuCisrCShnZW5fdHJhY2VkX3Bv cCk6IExpa2V3aXNlLgorKwkqIGJmaW4tdGRlcC5jIChiZmluX3B1c2hfZHVtbXlfY2FsbCk6IExp a2V3aXNlLgorKwkqIGJyZWFrcG9pbnQuYyAodXBkYXRlX3dhdGNocG9pbnQpOiBMaWtld2lzZS4K KysJKiBmaW5kY21kLmMgKHBhcnNlX2ZpbmRfYXJncyk6IFVzZSBsb2NhbCB2YXJpYWJsZSBmb3Ig dHlwZQorKwlpbnN0ZWFkIG9mIGxlbmd0aC4KKysJKiBmaW5kdmFyLmMgKGRlZmF1bHRfcmVhZF92 YXJfdmFsdWUpOiBVc2UgVFlQRV9MRU5HVEggZGlyZWN0bHkuCisrCSogaDgzMDAtdGRlcC5jICho ODMwMGhfZXh0cmFjdF9yZXR1cm5fdmFsdWUpOiBMaWtld2lzZS4KKysJKGg4MzAwX3N0b3JlX3Jl dHVybl92YWx1ZSk6IExpa2V3aXNlLgorKwkqIGkzODYtZGFyd2luLXRkZXAuYyAoaTM4Nl9kYXJ3 aW5fcHVzaF9kdW1teV9jYWxsKTogTGlrZXdpc2UuCisrCVVzZSBpMzg2X2Rhcndpbl9hcmdfdHlw ZV9hbGlnbm1lbnQgZGlyZWN0bHkuCisrCSogaW5mY2FsbC5jIChjYWxsX2Z1bmN0aW9uX2J5X2hh bmQpOiBVc2UgVFlQRV9MRU5HVEggZGlyZWN0bHkuCisrCSogbG0zMi10ZGVwLmMgKGxtMzJfcHVz aF9kdW1teV9jYWxsKTogTGlrZXdpc2UuCisrCSogbTY4aGMxMS10ZGVwLmMgKG02OGhjMTFfcHVz aF9kdW1teV9jYWxsKTogTGlrZXdpc2UuCisrCShtNjhoYzExX2V4dHJhY3RfcmV0dXJuX3ZhbHVl KTogTGlrZXdpc2UuCisrCSogbWVwLXRkZXAuYyAobWVwX3B1c2hfZHVtbXlfY2FsbCk6IExpa2V3 aXNlLgorKwkqIHByaW50Y21kLmMgKGZsb2F0X3R5cGVfZnJvbV9sZW5ndGgpOiBMaWtld2lzZS4K KysJKiBzMzkwLXRkZXAuYyAoczM5MF92YWx1ZV9mcm9tX3JlZ2lzdGVyKTogTGlrZXdpc2UuCisr CSogc3RhY2suYyAocmVhZF9mcmFtZV9hcmcpOiBMaWtld2lzZS4KKysJKiB0cmFjZXBvaW50LmMg KGVuY29kZV9hY3Rpb25zXzEpOiBMaWtld2lzZS4KKysJKiB2YWxvcHMuYyAodmFsdWVfZmV0Y2hf bGF6eSk6IFVzZSBsb2NhbCB2YXJpYWJsZSBmb3IgdHlwZQorKwlpbnN0ZWFkIG9mIGxlbmd0aC4g IFVzZSBUWVBFX0xFTkdUSCBkaXJlY3RseS4KKysJKiB2YWx1ZS5jICh2YWx1ZV9jb250ZW50c19l cXVhbCk6IFVzZSBUWVBFX0xFTkdUSCBkaXJlY3RseS4KKysKKyAyMDEyLTA5LTI1ICBKb2VsIEJy b2JlY2tlciAgPGJyb2JlY2tlckBhZGFjb3JlLmNvbT4KKyAKKyAJKiBzeW10YWIuYyAoc2tpcF9w cm9sb2d1ZV9zYWwpOiBGaXggdHlwbyBpbiBjb21tZW50LgorSW5kZXg6IGdkYi03LjUuMC4yMDEy MDkyNi9nZGIvYWRhLXZhbHByaW50LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5 MjYub3JpZy9nZGIvYWRhLXZhbHByaW50LmMJMjAxMi0wNC0xOCAwODo0Njo0Ni4wMDAwMDAwMDAg KzAyMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2FkYS12YWxwcmludC5jCTIwMTItMTEt MDcgMjI6MDM6NTcuNjAwNjIzNTIyICswMTAwCitAQCAtNzMwLDkgKzczMCw4IEBAIGFkYV92YWxf cHJpbnRfMSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnMKKyAgICAgICBpZiAoYWRhX2lzX2ZpeGVk X3BvaW50X3R5cGUgKHR5cGUpKQorIAl7CisgCSAgTE9OR0VTVCB2ID0gdW5wYWNrX2xvbmcgKHR5 cGUsIHZhbGFkZHIgKyBvZmZzZXRfYWxpZ25lZCk7CistCSAgaW50IGxlbiA9IFRZUEVfTEVOR1RI ICh0eXBlKTsKKyAKKy0JICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sIGxlbiA8IDQgPyAiJS4x MWciIDogIiUuMTdnIiwKKysJICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sIFRZUEVfTEVOR1RI ICh0eXBlKSA8IDQgPyAiJS4xMWciIDogIiUuMTdnIiwKKyAJCQkgICAgKGRvdWJsZSkgYWRhX2Zp eGVkX3RvX2Zsb2F0ICh0eXBlLCB2KSk7CisgCSAgcmV0dXJuOworIAl9CitJbmRleDogZ2RiLTcu NS4wLjIwMTIwOTI2L2dkYi9hbHBoYS10ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAu MjAxMjA5MjYub3JpZy9nZGIvYWxwaGEtdGRlcC5jCTIwMTItMDUtMTYgMTY6MzU6MDIuMDAwMDAw MDAwICswMjAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9hbHBoYS10ZGVwLmMJMjAxMi0x MS0wNyAyMjowMzo1Ny42MDI2MjM1MjAgKzAxMDAKK0BAIC00NzUsMTQgKzQ3NSwxMyBAQCBhbHBo YV9leHRyYWN0X3JldHVybl92YWx1ZSAoc3RydWN0IHR5cGUKKyB7CisgICBzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCA9IGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNoZSk7CisgICBlbnVtIGJmZF9l bmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CistICBpbnQg bGVuZ3RoID0gVFlQRV9MRU5HVEggKHZhbHR5cGUpOworICAgZ2RiX2J5dGUgcmF3X2J1ZmZlcltB TFBIQV9SRUdJU1RFUl9TSVpFXTsKKyAgIFVMT05HRVNUIGw7CisgCisgICBzd2l0Y2ggKFRZUEVf Q09ERSAodmFsdHlwZSkpCisgICAgIHsKKyAgICAgY2FzZSBUWVBFX0NPREVfRkxUOgorLSAgICAg IHN3aXRjaCAobGVuZ3RoKQorKyAgICAgIHN3aXRjaCAoVFlQRV9MRU5HVEggKHZhbHR5cGUpKQor IAl7CisgCWNhc2UgNDoKKyAJICByZWdjYWNoZV9jb29rZWRfcmVhZCAocmVnY2FjaGUsIEFMUEhB X0ZQMF9SRUdOVU0sIHJhd19idWZmZXIpOworQEAgLTUwNSw3ICs1MDQsNyBAQCBhbHBoYV9leHRy YWN0X3JldHVybl92YWx1ZSAoc3RydWN0IHR5cGUKKyAgICAgICBicmVhazsKKyAKKyAgICAgY2Fz ZSBUWVBFX0NPREVfQ09NUExFWDoKKy0gICAgICBzd2l0Y2ggKGxlbmd0aCkKKysgICAgICBzd2l0 Y2ggKFRZUEVfTEVOR1RIICh2YWx0eXBlKSkKKyAJeworIAljYXNlIDg6CisgCSAgLyogPz8/IFRo aXMgaXNuJ3QgY29ycmVjdCB3cnQgdGhlIEFCSSwgYnV0IGl0J3Mgd2hhdCBHQ0MgZG9lcy4gICov CitAQCAtNTMxLDcgKzUzMCw3IEBAIGFscGhhX2V4dHJhY3RfcmV0dXJuX3ZhbHVlIChzdHJ1Y3Qg dHlwZQorICAgICBkZWZhdWx0OgorICAgICAgIC8qIEFzc3VtZSBldmVyeXRoaW5nIGVsc2UgZGVn ZW5lcmF0ZXMgdG8gYW4gaW50ZWdlci4gICovCisgICAgICAgcmVnY2FjaGVfY29va2VkX3JlYWRf dW5zaWduZWQgKHJlZ2NhY2hlLCBBTFBIQV9WMF9SRUdOVU0sICZsKTsKKy0gICAgICBzdG9yZV91 bnNpZ25lZF9pbnRlZ2VyICh2YWxidWYsIGxlbmd0aCwgYnl0ZV9vcmRlciwgbCk7CisrICAgICAg c3RvcmVfdW5zaWduZWRfaW50ZWdlciAodmFsYnVmLCBUWVBFX0xFTkdUSCAodmFsdHlwZSksIGJ5 dGVfb3JkZXIsIGwpOworICAgICAgIGJyZWFrOworICAgICB9CisgfQorQEAgLTU0NCwxNCArNTQz LDEzIEBAIGFscGhhX3N0b3JlX3JldHVybl92YWx1ZSAoc3RydWN0IHR5cGUgKnYKKyAJCQkgIGNv bnN0IGdkYl9ieXRlICp2YWxidWYpCisgeworICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBn ZXRfcmVnY2FjaGVfYXJjaCAocmVnY2FjaGUpOworLSAgaW50IGxlbmd0aCA9IFRZUEVfTEVOR1RI ICh2YWx0eXBlKTsKKyAgIGdkYl9ieXRlIHJhd19idWZmZXJbQUxQSEFfUkVHSVNURVJfU0laRV07 CisgICBVTE9OR0VTVCBsOworIAorICAgc3dpdGNoIChUWVBFX0NPREUgKHZhbHR5cGUpKQorICAg ICB7CisgICAgIGNhc2UgVFlQRV9DT0RFX0ZMVDoKKy0gICAgICBzd2l0Y2ggKGxlbmd0aCkKKysg ICAgICBzd2l0Y2ggKFRZUEVfTEVOR1RIICh2YWx0eXBlKSkKKyAJeworIAljYXNlIDQ6CisgCSAg YWxwaGFfbGRzIChnZGJhcmNoLCByYXdfYnVmZmVyLCB2YWxidWYpOworQEAgLTU3NSw3ICs1NzMs NyBAQCBhbHBoYV9zdG9yZV9yZXR1cm5fdmFsdWUgKHN0cnVjdCB0eXBlICp2CisgICAgICAgYnJl YWs7CisgCisgICAgIGNhc2UgVFlQRV9DT0RFX0NPTVBMRVg6CistICAgICAgc3dpdGNoIChsZW5n dGgpCisrICAgICAgc3dpdGNoIChUWVBFX0xFTkdUSCAodmFsdHlwZSkpCisgCXsKKyAJY2FzZSA4 OgorIAkgIC8qID8/PyBUaGlzIGlzbid0IGNvcnJlY3Qgd3J0IHRoZSBBQkksIGJ1dCBpdCdzIHdo YXQgR0NDIGRvZXMuICAqLworQEAgLTYwMyw3ICs2MDEsNyBAQCBhbHBoYV9zdG9yZV9yZXR1cm5f dmFsdWUgKHN0cnVjdCB0eXBlICp2CisgICAgICAgLyogQXNzdW1lIGV2ZXJ5dGhpbmcgZWxzZSBk ZWdlbmVyYXRlcyB0byBhbiBpbnRlZ2VyLiAgKi8KKyAgICAgICAvKiAzMi1iaXQgdmFsdWVzIG11 c3QgYmUgc2lnbi1leHRlbmRlZCB0byA2NCBiaXRzCisgCSBldmVuIGlmIHRoZSBiYXNlIGRhdGEg dHlwZSBpcyB1bnNpZ25lZC4gICovCistICAgICAgaWYgKGxlbmd0aCA9PSA0KQorKyAgICAgIGlm IChUWVBFX0xFTkdUSCAodmFsdHlwZSkgPT0gNCkKKyAJdmFsdHlwZSA9IGJ1aWx0aW5fdHlwZSAo Z2RiYXJjaCktPmJ1aWx0aW5faW50MzI7CisgICAgICAgbCA9IHVucGFja19sb25nICh2YWx0eXBl LCB2YWxidWYpOworICAgICAgIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZV91bnNpZ25lZCAocmVnY2Fj aGUsIEFMUEhBX1YwX1JFR05VTSwgbCk7CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9h bWQ2NC10ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIv YW1kNjQtdGRlcC5jCTIwMTItMTEtMDcgMjI6MDA6NDIuMDAwMDAwMDAwICswMTAwCisrKysgZ2Ri LTcuNS4wLjIwMTIwOTI2L2dkYi9hbWQ2NC10ZGVwLmMJMjAxMi0xMS0wNyAyMjowMzo1Ny42MjM2 MjM0ODkgKzAxMDAKK0BAIC00NDYsMTIgKzQ0NiwxMCBAQCBhbWQ2NF9ub25fcG9kX3AgKHN0cnVj dCB0eXBlICp0eXBlKQorIHN0YXRpYyB2b2lkCisgYW1kNjRfY2xhc3NpZnlfYWdncmVnYXRlIChz dHJ1Y3QgdHlwZSAqdHlwZSwgZW51bSBhbWQ2NF9yZWdfY2xhc3MgY2xhc3NbMl0pCisgeworLSAg aW50IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKy0KKyAgIC8qIDEuIElmIHRoZSBzaXplIG9m IGFuIG9iamVjdCBpcyBsYXJnZXIgdGhhbiB0d28gZWlnaHRieXRlcywgb3IgaW4KKyAgICAgICAg IEMrKywgaXMgYSBub24tUE9EIHN0cnVjdHVyZSBvciB1bmlvbiB0eXBlLCBvciBjb250YWlucwor ICAgICAgICAgdW5hbGlnbmVkIGZpZWxkcywgaXQgaGFzIGNsYXNzIG1lbW9yeS4gICovCistICBp ZiAobGVuID4gMTYgfHwgYW1kNjRfbm9uX3BvZF9wICh0eXBlKSkKKysgIGlmIChUWVBFX0xFTkdU SCAodHlwZSkgPiAxNiB8fCBhbWQ2NF9ub25fcG9kX3AgKHR5cGUpKQorICAgICB7CisgICAgICAg Y2xhc3NbMF0gPSBjbGFzc1sxXSA9IEFNRDY0X01FTU9SWTsKKyAgICAgICByZXR1cm47CitAQCAt NDcxLDcgKzQ2OSw3IEBAIGFtZDY0X2NsYXNzaWZ5X2FnZ3JlZ2F0ZSAoc3RydWN0IHR5cGUgKnQK KyAKKyAgICAgICAvKiBBbGwgZmllbGRzIGluIGFuIGFycmF5IGhhdmUgdGhlIHNhbWUgdHlwZS4g ICovCisgICAgICAgYW1kNjRfY2xhc3NpZnkgKHN1YnR5cGUsIGNsYXNzKTsKKy0gICAgICBpZiAo bGVuID4gOCAmJiBjbGFzc1sxXSA9PSBBTUQ2NF9OT19DTEFTUykKKysgICAgICBpZiAoVFlQRV9M RU5HVEggKHR5cGUpID4gOCAmJiBjbGFzc1sxXSA9PSBBTUQ2NF9OT19DTEFTUykKKyAJY2xhc3Nb MV0gPSBjbGFzc1swXTsKKyAgICAgfQorICAgZWxzZQorQEAgLTgzOSwxMCArODM3LDkgQEAgYW1k NjRfcHVzaF9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcgorICAgICB7CisgICAgICAgc3Ry dWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV90eXBlIChzdGFja19hcmdzW2ldKTsKKyAgICAgICBjb25z dCBnZGJfYnl0ZSAqdmFsYnVmID0gdmFsdWVfY29udGVudHMgKHN0YWNrX2FyZ3NbaV0pOworLSAg ICAgIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgICAgICAgQ09SRV9BRERSIGFyZ19h ZGRyID0gc3AgKyBlbGVtZW50ICogODsKKyAKKy0gICAgICB3cml0ZV9tZW1vcnkgKGFyZ19hZGRy LCB2YWxidWYsIGxlbik7CisrICAgICAgd3JpdGVfbWVtb3J5IChhcmdfYWRkciwgdmFsYnVmLCBU WVBFX0xFTkdUSCAodHlwZSkpOworICAgICAgIGlmIChhcmdfYWRkcl9yZWdub1tpXSA+PSAwKQor ICAgICAgICAgeworICAgICAgICAgICAvKiBXZSBhbHNvIG5lZWQgdG8gc3RvcmUgdGhlIGFkZHJl c3Mgb2YgdGhhdCBhcmd1bWVudCBpbgorQEAgLTg1Myw3ICs4NTAsNyBAQCBhbWQ2NF9wdXNoX2Fy Z3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlICpyCisgICAgICAgICAgIHN0b3JlX3Vuc2lnbmVkX2lu dGVnZXIgKGJ1ZiwgOCwgYnl0ZV9vcmRlciwgYXJnX2FkZHIpOworICAgICAgICAgICByZWdjYWNo ZV9jb29rZWRfd3JpdGUgKHJlZ2NhY2hlLCBhcmdfYWRkcl9yZWdub1tpXSwgYnVmKTsKKyAgICAg ICAgIH0KKy0gICAgICBlbGVtZW50ICs9ICgobGVuICsgNykgLyA4KTsKKysgICAgICBlbGVtZW50 ICs9ICgoVFlQRV9MRU5HVEggKHR5cGUpICsgNykgLyA4KTsKKyAgICAgfQorIAorICAgLyogVGhl IHBzQUJJIHNheXMgdGhhdCAiRm9yIGNhbGxzIHRoYXQgbWF5IGNhbGwgZnVuY3Rpb25zIHRoYXQg dXNlCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9heC1nZGIuYworPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9heC1nZGIuYwkyMDEyLTA3LTA1IDAzOjAz OjAxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvYXgtZ2RiLmMJ MjAxMi0xMS0wNyAyMjowMzo1Ny42MjY2MjM0ODQgKzAxMDAKK0BAIC0zNjcsOSArMzY3LDkgQEAg Z2VuX3RyYWNlX3N0YXRpY19maWVsZHMgKHN0cnVjdCBnZGJhcmNoCisgCSAgICB7CisgCSAgICBj YXNlIGF4c19sdmFsdWVfbWVtb3J5OgorIAkgICAgICB7CistCQlpbnQgbGVuZ3RoID0gVFlQRV9M RU5HVEggKGNoZWNrX3R5cGVkZWYgKHZhbHVlLnR5cGUpKTsKKy0KKy0JCWF4X2NvbnN0X2wgKGF4 LCBsZW5ndGgpOworKwkgICAgICAgIC8qIEluaXRpYWxpemUgdGhlIFRZUEVfTEVOR1RIIGlmIGl0 IGlzIGEgdHlwZWRlZi4gICovCisrCSAgICAgICAgY2hlY2tfdHlwZWRlZiAodmFsdWUudHlwZSk7 CisrCQlheF9jb25zdF9sIChheCwgVFlQRV9MRU5HVEggKHZhbHVlLnR5cGUpKTsKKyAJCWF4X3Np bXBsZSAoYXgsIGFvcF90cmFjZSk7CisgCSAgICAgIH0KKyAJICAgICAgYnJlYWs7CitAQCAtNDI1 LDE3ICs0MjUsMTggQEAgZ2VuX3RyYWNlZF9wb3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAor IAorICAgICAgIGNhc2UgYXhzX2x2YWx1ZV9tZW1vcnk6CisgCXsKKy0JICBpbnQgbGVuZ3RoID0g VFlQRV9MRU5HVEggKGNoZWNrX3R5cGVkZWYgKHZhbHVlLT50eXBlKSk7CistCisgCSAgaWYgKHN0 cmluZ190cmFjZSkKKyAJICAgIGF4X3NpbXBsZSAoYXgsIGFvcF9kdXApOworIAorKwkgIC8qIElu aXRpYWxpemUgdGhlIFRZUEVfTEVOR1RIIGlmIGl0IGlzIGEgdHlwZWRlZi4gICovCisrCSAgY2hl Y2tfdHlwZWRlZiAodmFsdWUtPnR5cGUpOworKworIAkgIC8qIFRoZXJlJ3Mgbm8gcG9pbnQgaW4g dHJ5aW5nIHRvIHVzZSBhIHRyYWNlX3F1aWNrIGJ5dGVjb2RlCisgCSAgICAgaGVyZSwgc2luY2Ug InRyYWNlX3F1aWNrIFNJWkUgcG9wIiBpcyB0aHJlZSBieXRlcywgd2hlcmVhcworIAkgICAgICJj b25zdDggU0laRSB0cmFjZSIgaXMgYWxzbyB0aHJlZSBieXRlcywgZG9lcyB0aGUgc2FtZQorIAkg ICAgIHRoaW5nLCBhbmQgdGhlIHNpbXBsZXN0IGNvZGUgd2hpY2ggZ2VuZXJhdGVzIHRoYXQgd2ls bCBhbHNvCisgCSAgICAgd29yayBjb3JyZWN0bHkgZm9yIG9iamVjdHMgd2l0aCBsYXJnZSBzaXpl cy4gICovCistCSAgYXhfY29uc3RfbCAoYXgsIGxlbmd0aCk7CisrCSAgYXhfY29uc3RfbCAoYXgs IFRZUEVfTEVOR1RIICh2YWx1ZS0+dHlwZSkpOworIAkgIGF4X3NpbXBsZSAoYXgsIGFvcF90cmFj ZSk7CisgCisgCSAgaWYgKHN0cmluZ190cmFjZSkKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYv Z2RiL2JmaW4tdGRlcC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcv Z2RiL2JmaW4tdGRlcC5jCTIwMTItMDUtMTYgMTY6MzU6MDMuMDAwMDAwMDAwICswMjAwCisrKysg Z2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9iZmluLXRkZXAuYwkyMDEyLTExLTA3IDIyOjAzOjU3LjY0 MzYyMzQ2MCArMDEwMAorQEAgLTUxMyw5ICs1MTMsOCBAQCBiZmluX3B1c2hfZHVtbXlfY2FsbCAo c3RydWN0IGdkYmFyY2ggKmdkCisgICBmb3IgKGkgPSBuYXJncyAtIDE7IGkgPj0gMDsgaS0tKQor ICAgICB7CisgICAgICAgc3RydWN0IHR5cGUgKnZhbHVlX3R5cGUgPSB2YWx1ZV9lbmNsb3Npbmdf dHlwZSAoYXJnc1tpXSk7CistICAgICAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBl KTsKKyAKKy0gICAgICB0b3RhbF9sZW4gKz0gKGxlbiArIDMpICYgfjM7CisrICAgICAgdG90YWxf bGVuICs9IChUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSkgKyAzKSAmIH4zOworICAgICB9CisgCisg ICAvKiBBdCBsZWFzdCB0d2VsdmUgYnl0ZXMgb2Ygc3RhY2sgc3BhY2UgbXVzdCBiZSBhbGxvY2F0 ZWQgZm9yIHRoZSBmdW5jdGlvbidzCitAQCAtNTMxLDggKzUzMCw3IEBAIGJmaW5fcHVzaF9kdW1t eV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKyAgICAgeworICAgICAgIHN0cnVjdCB0eXBlICp2 YWx1ZV90eXBlID0gdmFsdWVfZW5jbG9zaW5nX3R5cGUgKGFyZ3NbaV0pOworICAgICAgIHN0cnVj dCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUpOworLSAgICAgIGlu dCBsZW4gPSBUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSk7CistICAgICAgaW50IGNvbnRhaW5lcl9s ZW4gPSAobGVuICsgMykgJiB+MzsKKysgICAgICBpbnQgY29udGFpbmVyX2xlbiA9IChUWVBFX0xF TkdUSCAodmFsdWVfdHlwZSkgKyAzKSAmIH4zOworIAorICAgICAgIHNwIC09IGNvbnRhaW5lcl9s ZW47CisgICAgICAgd3JpdGVfbWVtb3J5IChzcCwgdmFsdWVfY29udGVudHNfd3JpdGVhYmxlIChh cmdzW2ldKSwgY29udGFpbmVyX2xlbik7CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9i cmVha3BvaW50LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIv YnJlYWtwb2ludC5jCTIwMTItMTEtMDcgMjI6MDA6NDMuMDAwMDAwMDAwICswMTAwCisrKysgZ2Ri LTcuNS4wLjIwMTIwOTI2L2dkYi9icmVha3BvaW50LmMJMjAxMi0xMS0wNyAyMjowMzo1Ny42NjA2 MjM0MzQgKzAxMDAKK0BAIC0xODQ0LDExICsxODQ0LDEwIEBAIHVwZGF0ZV93YXRjaHBvaW50IChz dHJ1Y3Qgd2F0Y2hwb2ludCAqYiwKKyAJCSAgICAgICYmIFRZUEVfQ09ERSAodnR5cGUpICE9IFRZ UEVfQ09ERV9BUlJBWSkpCisgCQl7CisgCQkgIENPUkVfQUREUiBhZGRyOworLQkJICBpbnQgbGVu LCB0eXBlOworKwkJICBpbnQgdHlwZTsKKyAJCSAgc3RydWN0IGJwX2xvY2F0aW9uICpsb2MsICoq dG1wOworIAorIAkJICBhZGRyID0gdmFsdWVfYWRkcmVzcyAodik7CistCQkgIGxlbiA9IFRZUEVf TEVOR1RIICh2YWx1ZV90eXBlICh2KSk7CisgCQkgIHR5cGUgPSBod193cml0ZTsKKyAJCSAgaWYg KGItPmJhc2UudHlwZSA9PSBicF9yZWFkX3dhdGNocG9pbnQpCisgCQkgICAgdHlwZSA9IGh3X3Jl YWQ7CitAQCAtMTg2Myw3ICsxODYyLDcgQEAgdXBkYXRlX3dhdGNocG9pbnQgKHN0cnVjdCB3YXRj aHBvaW50ICpiLAorIAorIAkJICBsb2MtPnBzcGFjZSA9IGZyYW1lX3BzcGFjZTsKKyAJCSAgbG9j LT5hZGRyZXNzID0gYWRkcjsKKy0JCSAgbG9jLT5sZW5ndGggPSBsZW47CisrCQkgIGxvYy0+bGVu Z3RoID0gVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKHYpKTsKKyAJCSAgbG9jLT53YXRjaHBvaW50 X3R5cGUgPSB0eXBlOworIAkJfQorIAkgICAgfQorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9n ZGIvZmluZGNtZC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2Ri L2ZpbmRjbWQuYwkyMDEyLTA3LTA2IDE3OjUxOjM5LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03 LjUuMC4yMDEyMDkyNi9nZGIvZmluZGNtZC5jCTIwMTItMTEtMDcgMjI6MDM6NTcuNjc2NjIzNDEx ICswMTAwCitAQCAtMTY5LDE5ICsxNjksMTkgQEAgcGFyc2VfZmluZF9hcmdzIChjaGFyICphcmdz LCBVTE9OR0VTVCAqbQorICAgd2hpbGUgKCpzICE9ICdcMCcpCisgICAgIHsKKyAgICAgICBMT05H RVNUIHg7CistICAgICAgaW50IHZhbF9ieXRlczsKKysgICAgICBzdHJ1Y3QgdHlwZSAqdDsKKyAg ICAgICBVTE9OR0VTVCBwYXR0ZXJuX2J1Zl9zaXplX25lZWQ7CisgCisgICAgICAgd2hpbGUgKGlz c3BhY2UgKCpzKSkKKyAJKytzOworIAorICAgICAgIHYgPSBwYXJzZV90b19jb21tYV9hbmRfZXZh bCAoJnMpOworLSAgICAgIHZhbF9ieXRlcyA9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlICh2KSk7 CisrICAgICAgdCA9IHZhbHVlX3R5cGUgKHYpOworIAorICAgICAgIC8qIEtlZXAgaXQgc2ltcGxl IGFuZCBhc3N1bWUgc2l6ZSA9PSAnZycgd2hlbiB3YXRjaGluZyBmb3Igd2hlbiB3ZQorIAkgbmVl ZCB0byBncm93IHRoZSBwYXR0ZXJuIGJ1Zi4gICovCisgICAgICAgcGF0dGVybl9idWZfc2l6ZV9u ZWVkID0gKHBhdHRlcm5fYnVmX2VuZCAtIHBhdHRlcm5fYnVmCistCQkJICAgICAgICsgbWF4ICh2 YWxfYnl0ZXMsIHNpemVvZiAoaW50NjRfdCkpKTsKKysJCQkgICAgICAgKyBtYXggKFRZUEVfTEVO R1RIICh0KSwgc2l6ZW9mIChpbnQ2NF90KSkpOworICAgICAgIGlmIChwYXR0ZXJuX2J1Zl9zaXpl X25lZWQgPiBwYXR0ZXJuX2J1Zl9zaXplKQorIAl7CisgCSAgc2l6ZV90IGN1cnJlbnRfb2Zmc2V0 ID0gcGF0dGVybl9idWZfZW5kIC0gcGF0dGVybl9idWY7CitAQCAtMjE1LDggKzIxNSw4IEBAIHBh cnNlX2ZpbmRfYXJncyAoY2hhciAqYXJncywgVUxPTkdFU1QgKm0KKyAJfQorICAgICAgIGVsc2UK KyAJeworLQkgIG1lbWNweSAocGF0dGVybl9idWZfZW5kLCB2YWx1ZV9jb250ZW50cyAodiksIHZh bF9ieXRlcyk7CistCSAgcGF0dGVybl9idWZfZW5kICs9IHZhbF9ieXRlczsKKysJICBtZW1jcHkg KHBhdHRlcm5fYnVmX2VuZCwgdmFsdWVfY29udGVudHMgKHYpLCBUWVBFX0xFTkdUSCAodCkpOwor KwkgIHBhdHRlcm5fYnVmX2VuZCArPSBUWVBFX0xFTkdUSCAodCk7CisgCX0KKyAKKyAgICAgICBp ZiAoKnMgPT0gJywnKQorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvaDgzMDAtdGRlcC5j Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2g4MzAwLXRkZXAu YwkyMDEyLTExLTA3IDIyOjAwOjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEy MDkyNi9nZGIvaDgzMDAtdGRlcC5jCTIwMTItMTEtMDcgMjI6MDM6NTcuNjc5NjIzNDA5ICswMTAw CitAQCAtNzg1LDE2ICs3ODUsMTUgQEAgaDgzMDBoX2V4dHJhY3RfcmV0dXJuX3ZhbHVlIChzdHJ1 Y3QgdHlwZQorIHsKKyAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2Fy Y2ggKHJlZ2NhY2hlKTsKKyAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9i eXRlX29yZGVyIChnZGJhcmNoKTsKKy0gIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7Cisg ICBVTE9OR0VTVCBjOworIAorLSAgc3dpdGNoIChsZW4pCisrICBzd2l0Y2ggKFRZUEVfTEVOR1RI ICh0eXBlKSkKKyAgICAgeworICAgICBjYXNlIDE6CisgICAgIGNhc2UgMjoKKyAgICAgY2FzZSA0 OgorICAgICAgIHJlZ2NhY2hlX2Nvb2tlZF9yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgRV9SRVQw X1JFR05VTSwgJmMpOworLSAgICAgIHN0b3JlX3Vuc2lnbmVkX2ludGVnZXIgKHZhbGJ1ZiwgbGVu LCBieXRlX29yZGVyLCBjKTsKKysgICAgICBzdG9yZV91bnNpZ25lZF9pbnRlZ2VyICh2YWxidWYs IFRZUEVfTEVOR1RIICh0eXBlKSwgYnl0ZV9vcmRlciwgYyk7CisgICAgICAgYnJlYWs7CisgICAg IGNhc2UgODoJCQkvKiBsb25nIGxvbmcgaXMgbm93IDggYnl0ZXMuICAqLworICAgICAgIGlmIChU WVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9JTlQpCitAQCAtODUyLDE4ICs4NTEsMTcgQEAg aDgzMDBfc3RvcmVfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdAorIHsKKyAgIHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hlKTsKKyAgIGVudW0g YmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKKy0g IGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgICBVTE9OR0VTVCB2YWw7CisgCistICBz d2l0Y2ggKGxlbikKKysgIHN3aXRjaCAoVFlQRV9MRU5HVEggKHR5cGUpKQorICAgICB7CisgICAg IGNhc2UgMToKKyAgICAgY2FzZSAyOgkJCS8qIHNob3J0Li4uICAqLworLSAgICAgIHZhbCA9IGV4 dHJhY3RfdW5zaWduZWRfaW50ZWdlciAodmFsYnVmLCBsZW4sIGJ5dGVfb3JkZXIpOworKyAgICAg IHZhbCA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAodmFsYnVmLCBUWVBFX0xFTkdUSCAodHlw ZSksIGJ5dGVfb3JkZXIpOworICAgICAgIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZV91bnNpZ25lZCAo cmVnY2FjaGUsIEVfUkVUMF9SRUdOVU0sIHZhbCk7CisgICAgICAgYnJlYWs7CisgICAgIGNhc2Ug NDoJCQkvKiBsb25nLCBmbG9hdCAqLworLSAgICAgIHZhbCA9IGV4dHJhY3RfdW5zaWduZWRfaW50 ZWdlciAodmFsYnVmLCBsZW4sIGJ5dGVfb3JkZXIpOworKyAgICAgIHZhbCA9IGV4dHJhY3RfdW5z aWduZWRfaW50ZWdlciAodmFsYnVmLCBUWVBFX0xFTkdUSCAodHlwZSksIGJ5dGVfb3JkZXIpOwor ICAgICAgIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZV91bnNpZ25lZCAocmVnY2FjaGUsIEVfUkVUMF9S RUdOVU0sCisgCQkJCSAgICAgICh2YWwgPj4gMTYpICYgMHhmZmZmKTsKKyAgICAgICByZWdjYWNo ZV9jb29rZWRfd3JpdGVfdW5zaWduZWQgKHJlZ2NhY2hlLCBFX1JFVDFfUkVHTlVNLCB2YWwgJiAw eGZmZmYpOworQEAgLTg4MiwxOSArODgwLDE4IEBAIGg4MzAwaF9zdG9yZV9yZXR1cm5fdmFsdWUg KHN0cnVjdCB0eXBlICoKKyB7CisgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9yZWdj YWNoZV9hcmNoIChyZWdjYWNoZSk7CisgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdk YmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CistICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5 cGUpOworICAgVUxPTkdFU1QgdmFsOworIAorLSAgc3dpdGNoIChsZW4pCisrICBzd2l0Y2ggKFRZ UEVfTEVOR1RIICh0eXBlKSkKKyAgICAgeworICAgICBjYXNlIDE6CisgICAgIGNhc2UgMjoKKyAg ICAgY2FzZSA0OgkJCS8qIGxvbmcsIGZsb2F0ICovCistICAgICAgdmFsID0gZXh0cmFjdF91bnNp Z25lZF9pbnRlZ2VyICh2YWxidWYsIGxlbiwgYnl0ZV9vcmRlcik7CisrICAgICAgdmFsID0gZXh0 cmFjdF91bnNpZ25lZF9pbnRlZ2VyICh2YWxidWYsIFRZUEVfTEVOR1RIICh0eXBlKSwgYnl0ZV9v cmRlcik7CisgICAgICAgcmVnY2FjaGVfY29va2VkX3dyaXRlX3Vuc2lnbmVkIChyZWdjYWNoZSwg RV9SRVQwX1JFR05VTSwgdmFsKTsKKyAgICAgICBicmVhazsKKyAgICAgY2FzZSA4OgorLSAgICAg IHZhbCA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAodmFsYnVmLCBsZW4sIGJ5dGVfb3JkZXIp OworKyAgICAgIHZhbCA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAodmFsYnVmLCBUWVBFX0xF TkdUSCAodHlwZSksIGJ5dGVfb3JkZXIpOworICAgICAgIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZV91 bnNpZ25lZCAocmVnY2FjaGUsIEVfUkVUMF9SRUdOVU0sCisgCQkJCSAgICAgICh2YWwgPj4gMzIp ICYgMHhmZmZmZmZmZik7CisgICAgICAgcmVnY2FjaGVfY29va2VkX3dyaXRlX3Vuc2lnbmVkIChy ZWdjYWNoZSwgRV9SRVQxX1JFR05VTSwKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2kz ODYtZGFyd2luLXRkZXAuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmln L2dkYi9pMzg2LWRhcndpbi10ZGVwLmMJMjAxMi0wNC0wMiAxNToxNTo0OC4wMDAwMDAwMDAgKzAy MDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwkyMDEyLTEx LTA3IDIyOjAzOjU3LjY4MDYyMzQwNyArMDEwMAorQEAgLTE5NiwxMyArMTk2LDEyIEBAIGkzODZf ZGFyd2luX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmEKKyAgICAgICAgICAgICB9CisgICAg ICAgICAgIGVsc2UKKyAgICAgICAgICAgICB7CistICAgICAgICAgICAgICBpbnQgbGVuID0gVFlQ RV9MRU5HVEggKGFyZ190eXBlKTsKKy0gICAgICAgICAgICAgIGludCBhbGlnbiA9IGkzODZfZGFy d2luX2FyZ190eXBlX2FsaWdubWVudCAoYXJnX3R5cGUpOworLQorLSAgICAgICAgICAgICAgYXJn c19zcGFjZSA9IGFsaWduX3VwIChhcmdzX3NwYWNlLCBhbGlnbik7CisrICAgICAgICAgICAgICBh cmdzX3NwYWNlID0gYWxpZ25fdXAgKGFyZ3Nfc3BhY2UsCisrCQkJCSAgICAgaTM4Nl9kYXJ3aW5f YXJnX3R5cGVfYWxpZ25tZW50IChhcmdfdHlwZSkpOworICAgICAgICAgICAgICAgaWYgKHdyaXRl X3Bhc3MpCisgICAgICAgICAgICAgICAgIHdyaXRlX21lbW9yeSAoc3AgKyBhcmdzX3NwYWNlLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlX2NvbnRlbnRzX2FsbCAoYXJnc1tp XSksIGxlbik7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVfY29udGVudHNf YWxsIChhcmdzW2ldKSwKKysJCQkgICAgICBUWVBFX0xFTkdUSCAoYXJnX3R5cGUpKTsKKyAKKyAg ICAgICAgICAgICAgIC8qIFRoZSBTeXN0ZW0gViBBQkkgc2F5cyB0aGF0OgorICAgICAgICAgICAg ICAgICAgCitAQCAtMjExLDcgKzIxMCw3IEBAIGkzODZfZGFyd2luX3B1c2hfZHVtbXlfY2FsbCAo c3RydWN0IGdkYmEKKyAgICAgICAgICAgICAgICAgIGRlcGVuZGluZyBvbiB0aGUgc2l6ZSBvZiB0 aGUgYXJndW1lbnQuIgorICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICBUaGlz IG1ha2VzIHN1cmUgdGhlIHN0YWNrIHN0YXlzIHdvcmQtYWxpZ25lZC4gICovCistICAgICAgICAg ICAgICBhcmdzX3NwYWNlICs9IGFsaWduX3VwIChsZW4sIDQpOworKyAgICAgICAgICAgICAgYXJn c19zcGFjZSArPSBhbGlnbl91cCAoVFlQRV9MRU5HVEggKGFyZ190eXBlKSwgNCk7CisgICAgICAg ICAgICAgfQorICAgICAgICAgfQorIAorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvaW5m Y2FsbC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2luZmNh bGwuYwkyMDEyLTA3LTMxIDA5OjM0OjM5LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4y MDEyMDkyNi9nZGIvaW5mY2FsbC5jCTIwMTItMTEtMDcgMjI6MDM6NTcuNjk0NjIzMzg1ICswMTAw CitAQCAtNzA5LDEzICs3MDksMTEgQEAgY2FsbF9mdW5jdGlvbl9ieV9oYW5kIChzdHJ1Y3QgdmFs dWUgKmZ1bgorIAorICAgaWYgKHN0cnVjdF9yZXR1cm4gfHwgaGlkZGVuX2ZpcnN0X3BhcmFtX3Ap CisgICAgIHsKKy0gICAgICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHZhbHVlc190eXBlKTsKKy0K KyAgICAgICBpZiAoZ2RiYXJjaF9pbm5lcl90aGFuIChnZGJhcmNoLCAxLCAyKSkKKyAJeworIAkg IC8qIFN0YWNrIGdyb3dzIGRvd253YXJkLiAgQWxpZ24gU1RSVUNUX0FERFIgYW5kIFNQIGFmdGVy CisgICAgICAgICAgICAgIG1ha2luZyBzcGFjZSBmb3IgdGhlIHJldHVybiB2YWx1ZS4gICovCist CSAgc3AgLT0gbGVuOworKwkgIHNwIC09IFRZUEVfTEVOR1RIICh2YWx1ZXNfdHlwZSk7CisgCSAg aWYgKGdkYmFyY2hfZnJhbWVfYWxpZ25fcCAoZ2RiYXJjaCkpCisgCSAgICBzcCA9IGdkYmFyY2hf ZnJhbWVfYWxpZ24gKGdkYmFyY2gsIHNwKTsKKyAJICBzdHJ1Y3RfYWRkciA9IHNwOworQEAgLTcy Nyw3ICs3MjUsNyBAQCBjYWxsX2Z1bmN0aW9uX2J5X2hhbmQgKHN0cnVjdCB2YWx1ZSAqZnVuCisg CSAgaWYgKGdkYmFyY2hfZnJhbWVfYWxpZ25fcCAoZ2RiYXJjaCkpCisgCSAgICBzcCA9IGdkYmFy Y2hfZnJhbWVfYWxpZ24gKGdkYmFyY2gsIHNwKTsKKyAJICBzdHJ1Y3RfYWRkciA9IHNwOworLQkg IHNwICs9IGxlbjsKKysJICBzcCArPSBUWVBFX0xFTkdUSCAodmFsdWVzX3R5cGUpOworIAkgIGlm IChnZGJhcmNoX2ZyYW1lX2FsaWduX3AgKGdkYmFyY2gpKQorIAkgICAgc3AgPSBnZGJhcmNoX2Zy YW1lX2FsaWduIChnZGJhcmNoLCBzcCk7CisgCX0KK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYv Z2RiL2xtMzItdGRlcC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcv Z2RiL2xtMzItdGRlcC5jCTIwMTItMDUtMTggMjM6MDI6NDguMDAwMDAwMDAwICswMjAwCisrKysg Z2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9sbTMyLXRkZXAuYwkyMDEyLTExLTA3IDIyOjAzOjU3LjY5 NTYyMzM4NCArMDEwMAorQEAgLTI2MSw3ICsyNjEsNiBAQCBsbTMyX3B1c2hfZHVtbXlfY2FsbCAo c3RydWN0IGdkYmFyY2ggKmdkCisgICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2ldOwor ICAgICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUg KGFyZykpOworICAgICAgIGdkYl9ieXRlICpjb250ZW50czsKKy0gICAgICBpbnQgbGVuOworICAg ICAgIFVMT05HRVNUIHZhbDsKKyAKKyAgICAgICAvKiBQcm9tb3RlIHNtYWxsIGludGVnZXIgdHlw ZXMgdG8gaW50LiAgKi8KK0BAIC0yODMsOCArMjgyLDggQEAgbG0zMl9wdXNoX2R1bW15X2NhbGwg KHN0cnVjdCBnZGJhcmNoICpnZAorICAgICAgIC8qIEZJWE1FOiBIYW5kbGUgc3RydWN0dXJlcy4g ICovCisgCisgICAgICAgY29udGVudHMgPSAoZ2RiX2J5dGUgKikgdmFsdWVfY29udGVudHMgKGFy Zyk7CistICAgICAgbGVuID0gVFlQRV9MRU5HVEggKGFyZ190eXBlKTsKKy0gICAgICB2YWwgPSBl eHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKGNvbnRlbnRzLCBsZW4sIGJ5dGVfb3JkZXIpOworKyAg ICAgIHZhbCA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoY29udGVudHMsIFRZUEVfTEVOR1RI IChhcmdfdHlwZSksCisrCQkJCSAgICAgIGJ5dGVfb3JkZXIpOworIAorICAgICAgIC8qIEZpcnN0 IG51bV9hcmdfcmVncyBwYXJhbWV0ZXJzIGFyZSBwYXNzZWQgYnkgcmVnaXN0ZXJzLCAKKyAgICAg ICAgICBhbmQgdGhlIHJlc3QgYXJlIHBhc3NlZCBvbiB0aGUgc3RhY2suICAqLworQEAgLTI5Miw3 ICsyOTEsNyBAQCBsbTMyX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCisgCXJl Z2NhY2hlX2Nvb2tlZF93cml0ZV91bnNpZ25lZCAocmVnY2FjaGUsIGZpcnN0X2FyZ19yZWcgKyBp LCB2YWwpOworICAgICAgIGVsc2UKKyAJeworLQkgIHdyaXRlX21lbW9yeSAoc3AsICh2b2lkICop ICZ2YWwsIGxlbik7CisrCSAgd3JpdGVfbWVtb3J5IChzcCwgKHZvaWQgKikgJnZhbCwgVFlQRV9M RU5HVEggKGFyZ190eXBlKSk7CisgCSAgc3AgLT0gNDsKKyAJfQorICAgICB9CitJbmRleDogZ2Ri LTcuNS4wLjIwMTIwOTI2L2dkYi9tNjhoYzExLXRkZXAuYworPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03 LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9tNjhoYzExLXRkZXAuYwkyMDEyLTA1LTE2IDE2OjM1OjA2 LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvbTY4aGMxMS10ZGVw LmMJMjAxMi0xMS0wNyAyMjowMzo1Ny43MjQ2MjMzNDcgKzAxMDAKK0BAIC0xMTc0LDcgKzExNzQs NiBAQCBtNjhoYzExX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gKKyAgIGludCBmaXJz dF9zdGFja19hcmdudW07CisgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKKyAgIGNoYXIgKnZhbDsKKy0g IGludCBsZW47CisgICBjaGFyIGJ1ZlsyXTsKKyAgIAorICAgZmlyc3Rfc3RhY2tfYXJnbnVtID0g MDsKK0BAIC0xMTg1LDE5ICsxMTg0LDE4IEBAIG02OGhjMTFfcHVzaF9kdW1teV9jYWxsIChzdHJ1 Y3QgZ2RiYXJjaAorICAgZWxzZSBpZiAobmFyZ3MgPiAwKQorICAgICB7CisgICAgICAgdHlwZSA9 IHZhbHVlX3R5cGUgKGFyZ3NbMF0pOworLSAgICAgIGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsK KyAKKyAgICAgICAvKiBGaXJzdCBhcmd1bWVudCBpcyBwYXNzZWQgaW4gRCBhbmQgWCByZWdpc3Rl cnMuICAqLworLSAgICAgIGlmIChsZW4gPD0gNCkKKysgICAgICBpZiAoVFlQRV9MRU5HVEggKHR5 cGUpIDw9IDQpCisgICAgICAgICB7CisgICAgICAgICAgIFVMT05HRVNUIHY7CisgCisgICAgICAg ICAgIHYgPSBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKHZhbHVlX2NvbnRlbnRzIChhcmdzWzBd KSwKKy0JCQkJCWxlbiwgYnl0ZV9vcmRlcik7CisrCQkJCQlUWVBFX0xFTkdUSCAodHlwZSksIGJ5 dGVfb3JkZXIpOworICAgICAgICAgICBmaXJzdF9zdGFja19hcmdudW0gPSAxOworIAorICAgICAg ICAgICByZWdjYWNoZV9jb29rZWRfd3JpdGVfdW5zaWduZWQgKHJlZ2NhY2hlLCBIQVJEX0RfUkVH TlVNLCB2KTsKKy0gICAgICAgICAgaWYgKGxlbiA+IDIpCisrICAgICAgICAgIGlmIChUWVBFX0xF TkdUSCAodHlwZSkgPiAyKQorICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIHYgPj49IDE2 OworICAgICAgICAgICAgICAgcmVnY2FjaGVfY29va2VkX3dyaXRlX3Vuc2lnbmVkIChyZWdjYWNo ZSwgSEFSRF9YX1JFR05VTSwgdik7CitAQCAtMTIwOCw5ICsxMjA2LDggQEAgbTY4aGMxMV9wdXNo X2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoCisgICBmb3IgKGFyZ251bSA9IG5hcmdzIC0gMTsg YXJnbnVtID49IGZpcnN0X3N0YWNrX2FyZ251bTsgYXJnbnVtLS0pCisgICAgIHsKKyAgICAgICB0 eXBlID0gdmFsdWVfdHlwZSAoYXJnc1thcmdudW1dKTsKKy0gICAgICBsZW4gPSBUWVBFX0xFTkdU SCAodHlwZSk7CisgCistICAgICAgaWYgKGxlbiAmIDEpCisrICAgICAgaWYgKFRZUEVfTEVOR1RI ICh0eXBlKSAmIDEpCisgICAgICAgICB7CisgICAgICAgICAgIHN0YXRpYyBjaGFyIHplcm8gPSAw OworIAorQEAgLTEyMTgsOCArMTIxNSw4IEBAIG02OGhjMTFfcHVzaF9kdW1teV9jYWxsIChzdHJ1 Y3QgZ2RiYXJjaAorICAgICAgICAgICB3cml0ZV9tZW1vcnkgKHNwLCAmemVybywgMSk7CisgICAg ICAgICB9CisgICAgICAgdmFsID0gKGNoYXIqKSB2YWx1ZV9jb250ZW50cyAoYXJnc1thcmdudW1d KTsKKy0gICAgICBzcCAtPSBsZW47CistICAgICAgd3JpdGVfbWVtb3J5IChzcCwgdmFsLCBsZW4p OworKyAgICAgIHNwIC09IFRZUEVfTEVOR1RIICh0eXBlKTsKKysgICAgICB3cml0ZV9tZW1vcnkg KHNwLCB2YWwsIFRZUEVfTEVOR1RIICh0eXBlKSk7CisgICAgIH0KKyAKKyAgIC8qIFN0b3JlIHJl dHVybiBhZGRyZXNzLiAgKi8KK0BAIC0xMjkxLDExICsxMjg4LDEwIEBAIHN0YXRpYyB2b2lkCisg bTY4aGMxMV9leHRyYWN0X3JldHVybl92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBy ZWdjYWNoZSAqcmVnY2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAq dmFsYnVmKQorIHsKKy0gIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgICBjaGFyIGJ1 ZltNNjhIQzExX1JFR19TSVpFXTsKKyAKKyAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwg SEFSRF9EX1JFR05VTSwgYnVmKTsKKy0gIHN3aXRjaCAobGVuKQorKyAgc3dpdGNoIChUWVBFX0xF TkdUSCAodHlwZSkpCisgICAgIHsKKyAgICAgY2FzZSAxOgorICAgICAgIG1lbWNweSAodmFsYnVm LCBidWYgKyAxLCAxKTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL21lcC10ZGVwLmMK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvbWVwLXRkZXAuYwky MDEyLTA1LTE2IDE2OjM1OjA2LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDky Ni9nZGIvbWVwLXRkZXAuYwkyMDEyLTExLTA3IDIyOjAzOjU3LjcyNzYyMzMzNCArMDEwMAorQEAg LTIzMzcsMTEgKzIzMzcsMTAgQEAgbWVwX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gg KmdkYgorIAorICAgZm9yIChpID0gMDsgaSA8IGFyZ2M7IGkrKykKKyAgICAgeworLSAgICAgIHVu c2lnbmVkIGFyZ19zaXplID0gVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKGFyZ3ZbaV0pKTsKKyAg ICAgICBVTE9OR0VTVCB2YWx1ZTsKKyAKKyAgICAgICAvKiBBcmd1bWVudHMgdGhhdCBmaXQgaW4g YSBHUFIgZ2V0IGV4cGFuZGVkIHRvIGZpbGwgdGhlIEdQUi4gICovCistICAgICAgaWYgKGFyZ19z aXplIDw9IE1FUF9HUFJfU0laRSkKKysgICAgICBpZiAoVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUg KGFyZ3ZbaV0pKSA8PSBNRVBfR1BSX1NJWkUpCisgICAgICAgICB2YWx1ZSA9IGV4dHJhY3RfdW5z aWduZWRfaW50ZWdlciAodmFsdWVfY29udGVudHMgKGFyZ3ZbaV0pLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlIChhcmd2 W2ldKSksCisgCQkJCQkgIGJ5dGVfb3JkZXIpOworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9n ZGIvcHJpbnRjbWQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dk Yi9wcmludGNtZC5jCTIwMTItMTEtMDcgMjI6MDA6NDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2Ri LTcuNS4wLjIwMTIwOTI2L2dkYi9wcmludGNtZC5jCTIwMTItMTEtMDcgMjI6MDM6NTcuNzMwNjIz MzM0ICswMTAwCitAQCAtMzQ3LDEzICszNDcsMTIgQEAgZmxvYXRfdHlwZV9mcm9tX2xlbmd0aCAo c3RydWN0IHR5cGUgKnR5cAorIHsKKyAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3R5 cGVfYXJjaCAodHlwZSk7CisgICBjb25zdCBzdHJ1Y3QgYnVpbHRpbl90eXBlICpidWlsdGluID0g YnVpbHRpbl90eXBlIChnZGJhcmNoKTsKKy0gIHVuc2lnbmVkIGludCBsZW4gPSBUWVBFX0xFTkdU SCAodHlwZSk7CisgCistICBpZiAobGVuID09IFRZUEVfTEVOR1RIIChidWlsdGluLT5idWlsdGlu X2Zsb2F0KSkKKysgIGlmIChUWVBFX0xFTkdUSCAodHlwZSkgPT0gVFlQRV9MRU5HVEggKGJ1aWx0 aW4tPmJ1aWx0aW5fZmxvYXQpKQorICAgICB0eXBlID0gYnVpbHRpbi0+YnVpbHRpbl9mbG9hdDsK Ky0gIGVsc2UgaWYgKGxlbiA9PSBUWVBFX0xFTkdUSCAoYnVpbHRpbi0+YnVpbHRpbl9kb3VibGUp KQorKyAgZWxzZSBpZiAoVFlQRV9MRU5HVEggKHR5cGUpID09IFRZUEVfTEVOR1RIIChidWlsdGlu LT5idWlsdGluX2RvdWJsZSkpCisgICAgIHR5cGUgPSBidWlsdGluLT5idWlsdGluX2RvdWJsZTsK Ky0gIGVsc2UgaWYgKGxlbiA9PSBUWVBFX0xFTkdUSCAoYnVpbHRpbi0+YnVpbHRpbl9sb25nX2Rv dWJsZSkpCisrICBlbHNlIGlmIChUWVBFX0xFTkdUSCAodHlwZSkgPT0gVFlQRV9MRU5HVEggKGJ1 aWx0aW4tPmJ1aWx0aW5fbG9uZ19kb3VibGUpKQorICAgICB0eXBlID0gYnVpbHRpbi0+YnVpbHRp bl9sb25nX2RvdWJsZTsKKyAKKyAgIHJldHVybiB0eXBlOworSW5kZXg6IGdkYi03LjUuMC4yMDEy MDkyNi9nZGIvczM5MC10ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYu b3JpZy9nZGIvczM5MC10ZGVwLmMJMjAxMi0xMS0wNyAyMjowMjozMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3MzOTAtdGRlcC5jCTIwMTItMTEtMDcgMjI6MDM6 NTcuNzMzNjIzMzI5ICswMTAwCitAQCAtMzc2LDkgKzM3NiwxMSBAQCBzMzkwX3ZhbHVlX2Zyb21f cmVnaXN0ZXIgKHN0cnVjdCB0eXBlICp0CisgCQkJICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUp CisgeworICAgc3RydWN0IHZhbHVlICp2YWx1ZSA9IGRlZmF1bHRfdmFsdWVfZnJvbV9yZWdpc3Rl ciAodHlwZSwgcmVnbnVtLCBmcmFtZSk7CistICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKGNoZWNr X3R5cGVkZWYgKHR5cGUpKTsKKyAKKy0gIGlmIChyZWdudW0gPj0gUzM5MF9GMF9SRUdOVU0gJiYg cmVnbnVtIDw9IFMzOTBfRjE1X1JFR05VTSAmJiBsZW4gPCA4KQorKyAgY2hlY2tfdHlwZWRlZiAo dHlwZSk7CisrCisrICBpZiAocmVnbnVtID49IFMzOTBfRjBfUkVHTlVNICYmIHJlZ251bSA8PSBT MzkwX0YxNV9SRUdOVU0KKysgICAgICAmJiBUWVBFX0xFTkdUSCAodHlwZSkgPCA4KQorICAgICBz ZXRfdmFsdWVfb2Zmc2V0ICh2YWx1ZSwgMCk7CisgCisgICByZXR1cm4gdmFsdWU7CitJbmRleDog Z2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9zdGFjay5jCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4w LjIwMTIwOTI2Lm9yaWcvZ2RiL3N0YWNrLmMJMjAxMi0xMS0wNyAyMjowMDo0My4wMDAwMDAwMDAg KzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3N0YWNrLmMJMjAxMi0xMS0wNyAyMjow Mzo1Ny43Mzc2MjMzMjIgKzAxMDAKK0BAIC0zNTQsMTQgKzM1NCwxNSBAQCByZWFkX2ZyYW1lX2Fy ZyAoc3RydWN0IHN5bWJvbCAqc3ltLCBzdHJ1CisgCisgCSAgaWYgKHZhbCAmJiBlbnRyeXZhbCAm JiAhdWlfb3V0X2lzX21pX2xpa2VfcCAoY3VycmVudF91aW91dCkpCisgCSAgICB7CistCSAgICAg IHVuc2lnbmVkIGxlbiA9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlICh2YWwpKTsKKysJICAgICAg c3RydWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV90eXBlICh2YWwpOworIAorIAkgICAgICBpZiAoIXZh bHVlX29wdGltaXplZF9vdXQgKHZhbCkgJiYgdmFsdWVfbGF6eSAodmFsKSkKKyAJCXZhbHVlX2Zl dGNoX2xhenkgKHZhbCk7CisgCSAgICAgIGlmICghdmFsdWVfb3B0aW1pemVkX291dCAodmFsKSAm JiB2YWx1ZV9sYXp5IChlbnRyeXZhbCkpCisgCQl2YWx1ZV9mZXRjaF9sYXp5IChlbnRyeXZhbCk7 CisgCSAgICAgIGlmICghdmFsdWVfb3B0aW1pemVkX291dCAodmFsKQorLQkJICAmJiB2YWx1ZV9h dmFpbGFibGVfY29udGVudHNfZXEgKHZhbCwgMCwgZW50cnl2YWwsIDAsIGxlbikpCisrCQkgICYm IHZhbHVlX2F2YWlsYWJsZV9jb250ZW50c19lcSAodmFsLCAwLCBlbnRyeXZhbCwgMCwKKysJCQkJ CQkgIFRZUEVfTEVOR1RIICh0eXBlKSkpCisgCQl7CisgCQkgIC8qIEluaXRpYWxpemUgaXQganVz dCB0byBhdm9pZCBhIEdDQyBmYWxzZSB3YXJuaW5nLiAgKi8KKyAJCSAgc3RydWN0IHZhbHVlICp2 YWxfZGVyZWYgPSBOVUxMLCAqZW50cnl2YWxfZGVyZWY7CitAQCAtMzczLDEyICszNzQsMTIgQEAg cmVhZF9mcmFtZV9hcmcgKHN0cnVjdCBzeW1ib2wgKnN5bSwgc3RydQorIAorIAkJICBUUllfQ0FU Q0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tfRVJST1IpCisgCQkgICAgeworLQkJICAgICAgdW5zaWdu ZWQgbGVuX2RlcmVmOworKwkJICAgICAgc3RydWN0IHR5cGUgKnR5cGVfZGVyZWY7CisgCisgCQkg ICAgICB2YWxfZGVyZWYgPSBjb2VyY2VfcmVmICh2YWwpOworIAkJICAgICAgaWYgKHZhbHVlX2xh enkgKHZhbF9kZXJlZikpCisgCQkJdmFsdWVfZmV0Y2hfbGF6eSAodmFsX2RlcmVmKTsKKy0JCSAg ICAgIGxlbl9kZXJlZiA9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlICh2YWxfZGVyZWYpKTsKKysJ CSAgICAgIHR5cGVfZGVyZWYgPSB2YWx1ZV90eXBlICh2YWxfZGVyZWYpOworIAorIAkJICAgICAg ZW50cnl2YWxfZGVyZWYgPSBjb2VyY2VfcmVmIChlbnRyeXZhbCk7CisgCQkgICAgICBpZiAodmFs dWVfbGF6eSAoZW50cnl2YWxfZGVyZWYpKQorQEAgLTM4OSw3ICszOTAsNyBAQCByZWFkX2ZyYW1l X2FyZyAoc3RydWN0IHN5bWJvbCAqc3ltLCBzdHJ1CisgCQkgICAgICBpZiAodmFsICE9IHZhbF9k ZXJlZgorIAkJCSAgJiYgdmFsdWVfYXZhaWxhYmxlX2NvbnRlbnRzX2VxICh2YWxfZGVyZWYsIDAs CisgCQkJCQkJCSAgZW50cnl2YWxfZGVyZWYsIDAsCistCQkJCQkJCSAgbGVuX2RlcmVmKSkKKysJ CQkJCQkgICAgICBUWVBFX0xFTkdUSCAodHlwZV9kZXJlZikpKQorIAkJCXZhbF9lcXVhbCA9IDE7 CisgCQkgICAgfQorIAorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvdHJhY2Vwb2ludC5j Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3RyYWNlcG9pbnQu YwkyMDEyLTA2LTMwIDAwOjQ2OjQ2LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEy MDkyNi9nZGIvdHJhY2Vwb2ludC5jCTIwMTItMTEtMDcgMjI6MDM6NTcuNzQxNjIzMzE4ICswMTAw CitAQCAtMTQ1MCw3ICsxNDUwLDcgQEAgZW5jb2RlX2FjdGlvbnNfMSAoc3RydWN0IGNvbW1hbmRf bGluZSAqYQorIAkJfQorIAkgICAgICBlbHNlCisgCQl7CistCQkgIHVuc2lnbmVkIGxvbmcgYWRk ciwgbGVuOworKwkJICB1bnNpZ25lZCBsb25nIGFkZHI7CisgCQkgIHN0cnVjdCBjbGVhbnVwICpv bGRfY2hhaW4gPSBOVUxMOworIAkJICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2NoYWluMSA9IE5VTEw7 CisgCitAQCAtMTQ4MCw4ICsxNDgwLDEwIEBAIGVuY29kZV9hY3Rpb25zXzEgKHN0cnVjdCBjb21t YW5kX2xpbmUgKmEKKyAJCSAgICAgIC8qIFNhZmUgYmVjYXVzZSB3ZSBrbm93IGl0J3MgYSBzaW1w bGUgZXhwcmVzc2lvbi4gICovCisgCQkgICAgICB0ZW1wdmFsID0gZXZhbHVhdGVfZXhwcmVzc2lv biAoZXhwKTsKKyAJCSAgICAgIGFkZHIgPSB2YWx1ZV9hZGRyZXNzICh0ZW1wdmFsKTsKKy0JCSAg ICAgIGxlbiA9IFRZUEVfTEVOR1RIIChjaGVja190eXBlZGVmIChleHAtPmVsdHNbMV0udHlwZSkp OworLQkJICAgICAgYWRkX21lbXJhbmdlIChjb2xsZWN0LCBtZW1yYW5nZV9hYnNvbHV0ZSwgYWRk ciwgbGVuKTsKKysJCSAgICAgIC8qIEluaXRpYWxpemUgdGhlIFRZUEVfTEVOR1RIIGlmIGl0IGlz IGEgdHlwZWRlZi4gICovCisrCQkgICAgICBjaGVja190eXBlZGVmIChleHAtPmVsdHNbMV0udHlw ZSk7CisrCQkgICAgICBhZGRfbWVtcmFuZ2UgKGNvbGxlY3QsIG1lbXJhbmdlX2Fic29sdXRlLCBh ZGRyLAorKwkJCQkgICAgVFlQRV9MRU5HVEggKGV4cC0+ZWx0c1sxXS50eXBlKSk7CisgCQkgICAg ICBicmVhazsKKyAKKyAJCSAgICBjYXNlIE9QX1ZBUl9WQUxVRToKK0luZGV4OiBnZGItNy41LjAu MjAxMjA5MjYvZ2RiL3ZhbG9wcy5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2 Lm9yaWcvZ2RiL3ZhbG9wcy5jCTIwMTItMTEtMDcgMjI6MDA6NDQuMDAwMDAwMDAwICswMTAwCisr KysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi92YWxvcHMuYwkyMDEyLTExLTA3IDIyOjA2OjM1Ljg5 OTM5MzUzOSArMDEwMAorQEAgLTEwNTUsNyArMTA1NSw2IEBAIHZhbHVlX2ZldGNoX2xhenkgKHN0 cnVjdCB2YWx1ZSAqdmFsKQorICAgICAgIHN0cnVjdCB2YWx1ZSAqcGFyZW50ID0gdmFsdWVfcGFy ZW50ICh2YWwpOworICAgICAgIExPTkdFU1Qgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0ICh2YWwpOwor ICAgICAgIExPTkdFU1QgbnVtOworLSAgICAgIGludCBsZW5ndGggPSBUWVBFX0xFTkdUSCAodHlw ZSk7CisgCisgICAgICAgaWYgKCF2YWx1ZV9iaXRzX3ZhbGlkICh2YWwsCisgCQkJICAgICBUQVJH RVRfQ0hBUl9CSVQgKiBvZmZzZXQgKyB2YWx1ZV9iaXRwb3MgKHZhbCksCitAQCAtMTA2OSw5ICsx MDY4LDkgQEAgdmFsdWVfZmV0Y2hfbGF6eSAoc3RydWN0IHZhbHVlICp2YWwpCisgCQkJCSAgICAg IHZhbHVlX2JpdHNpemUgKHZhbCksIHBhcmVudCwgJm51bSkpCisgCW1hcmtfdmFsdWVfYnl0ZXNf dW5hdmFpbGFibGUgKHZhbCwKKyAJCQkJICAgICAgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0ICh2YWwp LAorLQkJCQkgICAgICBsZW5ndGgpOworKwkJCQkgICAgICBUWVBFX0xFTkdUSCAodHlwZSkpOwor ICAgICAgIGVsc2UKKy0Jc3RvcmVfc2lnbmVkX2ludGVnZXIgKHZhbHVlX2NvbnRlbnRzX3JhdyAo dmFsKSwgbGVuZ3RoLAorKwlzdG9yZV9zaWduZWRfaW50ZWdlciAodmFsdWVfY29udGVudHNfcmF3 ICh2YWwpLCBUWVBFX0xFTkdUSCAodHlwZSksCisgCQkJICAgICAgYnl0ZV9vcmRlciwgbnVtKTsK KyAgICAgfQorICAgZWxzZSBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX21lbW9yeSkKK0BA IC0xMDgwLDE2ICsxMDc5LDE2IEBAIHZhbHVlX2ZldGNoX2xhenkgKHN0cnVjdCB2YWx1ZSAqdmFs KQorIAorICAgICAgIGlmIChvYmplY3RfYWRkcmVzc19nZXRfZGF0YSAodmFsdWVfdHlwZSAodmFs KSwgJmFkZHIpKQorIAl7CistCSAgc3RydWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV9lbmNsb3Npbmdf dHlwZSAodmFsKTsKKy0JICBpbnQgbGVuZ3RoID0gVFlQRV9MRU5HVEggKGNoZWNrX3R5cGVkZWYg KHR5cGUpKTsKKysJICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX2Vu Y2xvc2luZ190eXBlICh2YWwpKTsKKyAKKy0JICBpZiAobGVuZ3RoKQorKwkgIGlmIChUWVBFX0xF TkdUSCAodHlwZSkpCisgCSAgICB7CisgCSAgICAgIC8qIERlbGF5IGl0IGFmdGVyIG9iamVjdF9h ZGRyZXNzX2dldF9kYXRhIGFib3ZlLiAgKi8KKyAJICAgICAgYWxsb2NhdGVfdmFsdWVfY29udGVu dHMgKHZhbCk7CisgCSAgICAgIGFkZHIgKz0gdmFsdWVfb2Zmc2V0ICh2YWwpOworIAkgICAgICBy ZWFkX3ZhbHVlX21lbW9yeSAodmFsLCAwLCB2YWx1ZV9zdGFjayAodmFsKSwKKy0JCQkJIGFkZHIs IHZhbHVlX2NvbnRlbnRzX2FsbF9yYXcgKHZhbCksIGxlbmd0aCk7CisrCQkJCSBhZGRyLCB2YWx1 ZV9jb250ZW50c19hbGxfcmF3ICh2YWwpLAorKwkJCQkgVFlQRV9MRU5HVEggKHR5cGUpKTsKKyAJ ICAgIH0KKyAJfQorICAgICAgIC8qIEp1c3QgdG8gYmUgc3VyZSBpdCBoYXMgYmVlbiBjYWxsZWQu ICAqLworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvdmFsdWUuYworPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi92YWx1ZS5jCTIwMTItMTEtMDcgMjI6MDA6 NDMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi92YWx1ZS5jCTIw MTItMTEtMDcgMjI6MDM6NTcuNzUxNjIzMzAzICswMTAwCitAQCAtMTAzNCwxNSArMTAzNCwxNCBA QCB2YWx1ZV9jb250ZW50c19lcXVhbCAoc3RydWN0IHZhbHVlICp2YWwxCisgeworICAgc3RydWN0 IHR5cGUgKnR5cGUxOworICAgc3RydWN0IHR5cGUgKnR5cGUyOworLSAgaW50IGxlbjsKKyAKKyAg IHR5cGUxID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAodmFsMSkpOworICAgdHlwZTIgPSBj aGVja190eXBlZGVmICh2YWx1ZV90eXBlICh2YWwyKSk7CistICBsZW4gPSBUWVBFX0xFTkdUSCAo dHlwZTEpOworLSAgaWYgKGxlbiAhPSBUWVBFX0xFTkdUSCAodHlwZTIpKQorKyAgaWYgKFRZUEVf TEVOR1RIICh0eXBlMSkgIT0gVFlQRV9MRU5HVEggKHR5cGUyKSkKKyAgICAgcmV0dXJuIDA7Cisg CistICByZXR1cm4gKG1lbWNtcCAodmFsdWVfY29udGVudHMgKHZhbDEpLCB2YWx1ZV9jb250ZW50 cyAodmFsMiksIGxlbikgPT0gMCk7CisrICByZXR1cm4gKG1lbWNtcCAodmFsdWVfY29udGVudHMg KHZhbDEpLCB2YWx1ZV9jb250ZW50cyAodmFsMiksCisrCQkgIFRZUEVfTEVOR1RIICh0eXBlMSkp ID09IDApOworIH0KKyAKKyBpbnQKCmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3Mt MThvZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTE4b2YyNS5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjJiNTU2Ci0tLSAvZGV2L251bGwKKysrIGIv Z2RiLXJoYno3OTU0MjQtYml0cG9zLTE4b2YyNS5wYXRjaApAQCAtMCwwICsxLDQ1IEBACitodHRw Oi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8yMDEyLTA5L21zZzAwMTQ1Lmh0bWwKKworIyMj IHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTIvMDkvMjUgMTI6NDg6NTIJMS4xNDY5NworIyMjIHNyYy9n ZGIvQ2hhbmdlTG9nCTIwMTIvMDkvMjYgMDI6MDY6NTEJMS4xNDY5OAorIyMgLTEsMyArMSw4IEBA CisrMjAxMi0wOS0yNiAgU2lkZGhlc2ggUG95YXJla2FyICA8c2lkZGhlc2hAcmVkaGF0LmNvbT4K KysKKysJKiBicmVha3BvaW50LmMgKGludmFsaWRhdGVfYnBfdmFsdWVfb25fbWVtb3J5X2NoYW5n ZSk6IEV4cGFuZAorKwlwYXJhbWV0ZXIgTEVOIHRvIHNzaXplX3QuCisrCisgMjAxMi0wOS0yNSAg U2lkZGhlc2ggUG95YXJla2FyICA8c2lkZGhlc2hAcmVkaGF0LmNvbT4KKyAKKyAJKiBhZGEtdmFs cHJpbnQuYyAoYWRhX3ZhbF9wcmludF8xKTogRWxpbWluYXRlIHNpbmdsZS11c2UKKy0tLSBzcmMv Z2RiL2JyZWFrcG9pbnQuYwkyMDEyLzA5LzI1IDEyOjQ4OjUyCTEuNzA1CisrKysgc3JjL2dkYi9i cmVha3BvaW50LmMJMjAxMi8wOS8yNiAwMjowNjo1NAkxLjcwNgorQEAgLTE0NzE4LDcgKzE0NzE4 LDcgQEAKKyAgICBHREIgaXRzZWxmLiAgKi8KKyAKKyBzdGF0aWMgdm9pZAorLWludmFsaWRhdGVf YnBfdmFsdWVfb25fbWVtb3J5X2NoYW5nZSAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sCisraW52 YWxpZGF0ZV9icF92YWx1ZV9vbl9tZW1vcnlfY2hhbmdlIChDT1JFX0FERFIgYWRkciwgc3NpemVf dCBsZW4sCisgCQkJCSAgICAgIGNvbnN0IGJmZF9ieXRlICpkYXRhKQorIHsKKyAgIHN0cnVjdCBi cmVha3BvaW50ICpicDsKKyMjIyBzcmMvZ2RiL2RvYy9DaGFuZ2VMb2cJMjAxMi8wOS8yMSAwMTo0 Njo0MgkxLjEzNzAKKyMjIyBzcmMvZ2RiL2RvYy9DaGFuZ2VMb2cJMjAxMi8wOS8yNiAwMjowNjo1 NQkxLjEzNzEKKyMjIC0xLDMgKzEsNyBAQAorKzIwMTItMDktMjYgIFNpZGRoZXNoIFBveWFyZWth ciAgPHNpZGRoZXNoQHJlZGhhdC5jb20+CisrCisrCSogb2JzZXJ2ZXIudGV4aSAobWVtb3J5X2No YW5nZWQpOiBFeHBhbmQgcGFyYW1ldGVyIExFTiB0byBzc2l6ZV90LgorKworIDIwMTItMDktMjEg IFlhbyBRaSAgPHlhb0Bjb2Rlc291cmNlcnkuY29tPgorICAgICAgICAgICAgIFBlZHJvIEFsdmVz ICA8cGFsdmVzQHJlZGhhdC5jb20+CisgCistLS0gc3JjL2dkYi9kb2Mvb2JzZXJ2ZXIudGV4aQky MDEyLzA5LzIxIDAxOjQ2OjQzCTEuNDAKKysrKyBzcmMvZ2RiL2RvYy9vYnNlcnZlci50ZXhpCTIw MTIvMDkvMjYgMDI6MDY6NTUJMS40MQorQEAgLTIzMCw3ICsyMzAsNyBAQAorIFRoaXMgbWV0aG9k IGlzIGNhbGxlZCBpbW1lZGlhdGVseSBiZWZvcmUgZnJlZWluZyBAdmFye2luZn0uCisgQGVuZCBk ZWZ0eXBlZnVuCisgCistQGRlZnR5cGVmdW4gdm9pZCBtZW1vcnlfY2hhbmdlZCAoQ09SRV9BRERS IEB2YXJ7YWRkcn0sIGludCBAdmFye2xlbn0sIGNvbnN0IGJmZF9ieXRlICpAdmFye2RhdGF9KQor K0BkZWZ0eXBlZnVuIHZvaWQgbWVtb3J5X2NoYW5nZWQgKENPUkVfQUREUiBAdmFye2FkZHJ9LCBz c2l6ZV90IEB2YXJ7bGVufSwgY29uc3QgYmZkX2J5dGUgKkB2YXJ7ZGF0YX0pCisgQnl0ZXMgZnJv bSBAdmFye2RhdGF9IHRvIEB2YXJ7ZGF0YX0gKyBAdmFye2xlbn0gaGF2ZSBiZWVuIHdyaXR0ZW4K KyB0byB0aGUgY3VycmVudCBpbmZlcmlvciBhdCBAdmFye2FkZHJ9LgorIEBlbmQgZGVmdHlwZWZ1 bgoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xOW9mMjUucGF0Y2ggYi9nZGIt cmhiejc5NTQyNC1iaXRwb3MtMTlvZjI1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmVhNTBlYzcKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRw b3MtMTlvZjI1LnBhdGNoCkBAIC0wLDAgKzEsMjYwIEBACitodHRwOi8vc291cmNld2FyZS5vcmcv bWwvZ2RiLWN2cy8yMDEyLTA5L21zZzAwMTQ3Lmh0bWwKKworIyMjIHNyYy9nZGIvQ2hhbmdlTG9n CTIwMTIvMDkvMjYgMDI6MDY6NTEJMS4xNDY5OAorIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTIv MDkvMjYgMDc6NTI6NDQJMS4xNDY5OQorIyMgLTEsNSArMSwxOSBAQAorIDIwMTItMDktMjYgIFNp ZGRoZXNoIFBveWFyZWthciAgPHNpZGRoZXNoQHJlZGhhdC5jb20+CisgCisrCSogYW1kNjQtdGRl cC5jIChhbWQ2NF9yZXR1cm5fdmFsdWUpOiBVc2UgVFlQRV9MRU5HVEggZGlyZWN0bHkuCisrCSog YmZpbi10ZGVwLmMgKGJmaW5fZXh0cmFjdF9yZXR1cm5fdmFsdWUpOiBMaWtld2lzZS4KKysJKGJm aW5fc3RvcmVfcmV0dXJuX3ZhbHVlKTogTGlrZXdpc2UuCisrCSogY3Jpcy10ZGVwLmMgKGNyaXNf c3RvcmVfcmV0dXJuX3ZhbHVlKTogTGlrZXdpc2UuCisrCShjcmlzX2V4dHJhY3RfcmV0dXJuX3Zh bHVlKTogTGlrZXdpc2UuCisrCSogaDgzMDAtdGRlcC5jIChoODMwMF9leHRyYWN0X3JldHVybl92 YWx1ZSk6IExpa2V3aXNlLgorKwkqIGhwcGEtdGRlcC5jIChocHBhNjRfcmV0dXJuX3ZhbHVlKTog TGlrZXdpc2UuCisrCSogbG0zMi10ZGVwLmMgKGxtMzJfc3RvcmVfcmV0dXJuX3ZhbHVlKTogTGlr ZXdpc2UuCisrCSogbWljcm9ibGF6ZS10ZGVwLmMgKG1pY3JvYmxhemVfc3RvcmVfcmV0dXJuX3Zh bHVlKTogTGlrZXdpc2UuCisrCSogc3B1LXRkZXAuYyAoc3B1X3ZhbHVlX2Zyb21fcmVnaXN0ZXIp OiBMaWtld2lzZS4KKysJKiB2YXgtdGRlcC5jICh2YXhfcmV0dXJuX3ZhbHVlKTogTGlrZXdpc2Uu CisrCisrMjAxMi0wOS0yNiAgU2lkZGhlc2ggUG95YXJla2FyICA8c2lkZGhlc2hAcmVkaGF0LmNv bT4KKysKKyAJKiBicmVha3BvaW50LmMgKGludmFsaWRhdGVfYnBfdmFsdWVfb25fbWVtb3J5X2No YW5nZSk6IEV4cGFuZAorIAlwYXJhbWV0ZXIgTEVOIHRvIHNzaXplX3QuCisgCistLS0gc3JjL2dk Yi9hbWQ2NC10ZGVwLmMJMjAxMi8wOS8yNSAxMjo0ODo1MgkxLjExMAorKysrIHNyYy9nZGIvYW1k NjQtdGRlcC5jCTIwMTIvMDkvMjYgMDc6NTI6NDcJMS4xMTEKK0BAIC02MzcsNyArNjM3LDcgQEAK KyAgICAgfQorIAorICAgZ2RiX2Fzc2VydCAoY2xhc3NbMV0gIT0gQU1ENjRfTUVNT1JZKTsKKy0g IGdkYl9hc3NlcnQgKGxlbiA8PSAxNik7CisrICBnZGJfYXNzZXJ0IChUWVBFX0xFTkdUSCAodHlw ZSkgPD0gMTYpOworIAorICAgZm9yIChpID0gMDsgbGVuID4gMDsgaSsrLCBsZW4gLT0gOCkKKyAg ICAgeworLS0tIHNyYy9nZGIvYmZpbi10ZGVwLmMJMjAxMi8wOS8yNSAxMjo0ODo1MgkxLjExCisr Kysgc3JjL2dkYi9iZmluLXRkZXAuYwkyMDEyLzA5LzI2IDA3OjUyOjQ3CTEuMTIKK0BAIC02MTUs NyArNjE1LDcgQEAKKyAgIFVMT05HRVNUIHRtcDsKKyAgIGludCByZWdubyA9IEJGSU5fUjBfUkVH TlVNOworIAorLSAgZ2RiX2Fzc2VydCAobGVuIDw9IDgpOworKyAgZ2RiX2Fzc2VydCAoVFlQRV9M RU5HVEggKHR5cGUpIDw9IDgpOworIAorICAgd2hpbGUgKGxlbiA+IDApCisgICAgIHsKK0BAIC02 NDMsNyArNjQzLDcgQEAKKyAgIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgICBpbnQg cmVnbm8gPSBCRklOX1IwX1JFR05VTTsKKyAKKy0gIGdkYl9hc3NlcnQgKGxlbiA8PSA4KTsKKysg IGdkYl9hc3NlcnQgKFRZUEVfTEVOR1RIICh0eXBlKSA8PSA4KTsKKyAKKyAgIHdoaWxlIChsZW4g PiAwKQorICAgICB7CistLS0gc3JjL2dkYi9jcmlzLXRkZXAuYwkyMDEyLzA1LzE4IDIxOjAyOjQ3 CTEuMTg1CisrKysgc3JjL2dkYi9jcmlzLXRkZXAuYwkyMDEyLzA5LzI2IDA3OjUyOjQ3CTEuMTg2 CitAQCAtMTY2MiwyMCArMTY2MiwyMCBAQAorICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBn ZXRfcmVnY2FjaGVfYXJjaCAocmVnY2FjaGUpOworICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3Jk ZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOworICAgVUxPTkdFU1QgdmFsOworLSAg aW50IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAgIAorLSAgaWYgKGxlbiA8PSA0KQorKyAg aWYgKFRZUEVfTEVOR1RIICh0eXBlKSA8PSA0KQorICAgICB7CisgICAgICAgLyogUHV0IHRoZSBy ZXR1cm4gdmFsdWUgaW4gUjEwLiAgKi8KKy0gICAgICB2YWwgPSBleHRyYWN0X3Vuc2lnbmVkX2lu dGVnZXIgKHZhbGJ1ZiwgbGVuLCBieXRlX29yZGVyKTsKKysgICAgICB2YWwgPSBleHRyYWN0X3Vu c2lnbmVkX2ludGVnZXIgKHZhbGJ1ZiwgVFlQRV9MRU5HVEggKHR5cGUpLCBieXRlX29yZGVyKTsK KyAgICAgICByZWdjYWNoZV9jb29rZWRfd3JpdGVfdW5zaWduZWQgKHJlZ2NhY2hlLCBBUkcxX1JF R05VTSwgdmFsKTsKKyAgICAgfQorLSAgZWxzZSBpZiAobGVuIDw9IDgpCisrICBlbHNlIGlmIChU WVBFX0xFTkdUSCAodHlwZSkgPD0gOCkKKyAgICAgeworICAgICAgIC8qIFB1dCB0aGUgcmV0dXJu IHZhbHVlIGluIFIxMCBhbmQgUjExLiAgKi8KKyAgICAgICB2YWwgPSBleHRyYWN0X3Vuc2lnbmVk X2ludGVnZXIgKHZhbGJ1ZiwgNCwgYnl0ZV9vcmRlcik7CisgICAgICAgcmVnY2FjaGVfY29va2Vk X3dyaXRlX3Vuc2lnbmVkIChyZWdjYWNoZSwgQVJHMV9SRUdOVU0sIHZhbCk7CistICAgICAgdmFs ID0gZXh0cmFjdF91bnNpZ25lZF9pbnRlZ2VyICgoY2hhciAqKXZhbGJ1ZiArIDQsIGxlbiAtIDQs IGJ5dGVfb3JkZXIpOworKyAgICAgIHZhbCA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoKGNo YXIgKil2YWxidWYgKyA0LAorKwkJCQkgICAgICBUWVBFX0xFTkdUSCAodHlwZSkgLSA0LCBieXRl X29yZGVyKTsKKyAgICAgICByZWdjYWNoZV9jb29rZWRfd3JpdGVfdW5zaWduZWQgKHJlZ2NhY2hl LCBBUkcyX1JFR05VTSwgdmFsKTsKKyAgICAgfQorICAgZWxzZQorQEAgLTE4MzMsMjEgKzE4MzMs MjEgQEAKKyAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJl Z2NhY2hlKTsKKyAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29y ZGVyIChnZGJhcmNoKTsKKyAgIFVMT05HRVNUIHZhbDsKKy0gIGludCBsZW4gPSBUWVBFX0xFTkdU SCAodHlwZSk7CisgICAKKy0gIGlmIChsZW4gPD0gNCkKKysgIGlmIChUWVBFX0xFTkdUSCAodHlw ZSkgPD0gNCkKKyAgICAgeworICAgICAgIC8qIEdldCB0aGUgcmV0dXJuIHZhbHVlIGZyb20gUjEw LiAgKi8KKyAgICAgICByZWdjYWNoZV9jb29rZWRfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIEFS RzFfUkVHTlVNLCAmdmFsKTsKKy0gICAgICBzdG9yZV91bnNpZ25lZF9pbnRlZ2VyICh2YWxidWYs IGxlbiwgYnl0ZV9vcmRlciwgdmFsKTsKKysgICAgICBzdG9yZV91bnNpZ25lZF9pbnRlZ2VyICh2 YWxidWYsIFRZUEVfTEVOR1RIICh0eXBlKSwgYnl0ZV9vcmRlciwgdmFsKTsKKyAgICAgfQorLSAg ZWxzZSBpZiAobGVuIDw9IDgpCisrICBlbHNlIGlmIChUWVBFX0xFTkdUSCAodHlwZSkgPD0gOCkK KyAgICAgeworICAgICAgIC8qIEdldCB0aGUgcmV0dXJuIHZhbHVlIGZyb20gUjEwIGFuZCBSMTEu ICAqLworICAgICAgIHJlZ2NhY2hlX2Nvb2tlZF9yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgQVJH MV9SRUdOVU0sICZ2YWwpOworICAgICAgIHN0b3JlX3Vuc2lnbmVkX2ludGVnZXIgKHZhbGJ1Ziwg NCwgYnl0ZV9vcmRlciwgdmFsKTsKKyAgICAgICByZWdjYWNoZV9jb29rZWRfcmVhZF91bnNpZ25l ZCAocmVnY2FjaGUsIEFSRzJfUkVHTlVNLCAmdmFsKTsKKy0gICAgICBzdG9yZV91bnNpZ25lZF9p bnRlZ2VyICgoY2hhciAqKXZhbGJ1ZiArIDQsIGxlbiAtIDQsIGJ5dGVfb3JkZXIsIHZhbCk7Cisr ICAgICAgc3RvcmVfdW5zaWduZWRfaW50ZWdlciAoKGNoYXIgKil2YWxidWYgKyA0LCBUWVBFX0xF TkdUSCAodHlwZSkgLSA0LAorKwkJCSAgICAgIGJ5dGVfb3JkZXIsIHZhbCk7CisgICAgIH0KKyAg IGVsc2UKKyAgICAgZXJyb3IgKF8oImNyaXNfZXh0cmFjdF9yZXR1cm5fdmFsdWU6IHR5cGUgbGVu Z3RoIHRvbyBsYXJnZSIpKTsKKy0tLSBzcmMvZ2RiL2g4MzAwLXRkZXAuYwkyMDEyLzA5LzI1IDEy OjQ4OjUzCTEuMTM2CisrKysgc3JjL2dkYi9oODMwMC10ZGVwLmMJMjAxMi8wOS8yNiAwNzo1Mjo0 OAkxLjEzNworQEAgLTc1MSwxMiArNzUxLDEyIEBACisgICBpbnQgbGVuID0gVFlQRV9MRU5HVEgg KHR5cGUpOworICAgVUxPTkdFU1QgYywgYWRkcjsKKyAKKy0gIHN3aXRjaCAobGVuKQorKyAgc3dp dGNoIChUWVBFX0xFTkdUSCAodHlwZSkpCisgICAgIHsKKyAgICAgY2FzZSAxOgorICAgICBjYXNl IDI6CisgICAgICAgcmVnY2FjaGVfY29va2VkX3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCBFX1JF VDBfUkVHTlVNLCAmYyk7CistICAgICAgc3RvcmVfdW5zaWduZWRfaW50ZWdlciAodmFsYnVmLCBs ZW4sIGJ5dGVfb3JkZXIsIGMpOworKyAgICAgIHN0b3JlX3Vuc2lnbmVkX2ludGVnZXIgKHZhbGJ1 ZiwgVFlQRV9MRU5HVEggKHR5cGUpLCBieXRlX29yZGVyLCBjKTsKKyAgICAgICBicmVhazsKKyAg ICAgY2FzZSA0OgkJCS8qIE5lZWRzIHR3byByZWdpc3RlcnMgb24gcGxhaW4gSDgvMzAwICovCisg ICAgICAgcmVnY2FjaGVfY29va2VkX3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCBFX1JFVDBfUkVH TlVNLCAmYyk7CitAQCAtNzY4LDggKzc2OCw5IEBACisgICAgICAgaWYgKFRZUEVfQ09ERSAodHlw ZSkgPT0gVFlQRV9DT0RFX0lOVCkKKyAJeworIAkgIHJlZ2NhY2hlX2Nvb2tlZF9yZWFkX3Vuc2ln bmVkIChyZWdjYWNoZSwgRV9SRVQwX1JFR05VTSwgJmFkZHIpOworLQkgIGMgPSByZWFkX21lbW9y eV91bnNpZ25lZF9pbnRlZ2VyICgoQ09SRV9BRERSKSBhZGRyLCBsZW4sIGJ5dGVfb3JkZXIpOwor LQkgIHN0b3JlX3Vuc2lnbmVkX2ludGVnZXIgKHZhbGJ1ZiwgbGVuLCBieXRlX29yZGVyLCBjKTsK KysJICBjID0gcmVhZF9tZW1vcnlfdW5zaWduZWRfaW50ZWdlciAoKENPUkVfQUREUikgYWRkciwK KysJCQkJCSAgICBUWVBFX0xFTkdUSCAodHlwZSksIGJ5dGVfb3JkZXIpOworKwkgIHN0b3JlX3Vu c2lnbmVkX2ludGVnZXIgKHZhbGJ1ZiwgVFlQRV9MRU5HVEggKHR5cGUpLCBieXRlX29yZGVyLCBj KTsKKyAJfQorICAgICAgIGVsc2UKKyAJeworLS0tIHNyYy9nZGIvaHBwYS10ZGVwLmMJMjAxMi8w NS8xOCAyMTowMjo0OAkxLjI4MQorKysrIHNyYy9nZGIvaHBwYS10ZGVwLmMJMjAxMi8wOS8yNiAw Nzo1Mjo0OAkxLjI4MgorQEAgLTExNjAsNyArMTE2MCw3IEBACisgICBpbnQgbGVuID0gVFlQRV9M RU5HVEggKHR5cGUpOworICAgaW50IHJlZ251bSwgb2Zmc2V0OworIAorLSAgaWYgKGxlbiA+IDE2 KQorKyAgaWYgKFRZUEVfTEVOR1RIICh0eXBlKSA+IDE2KQorICAgICB7CisgICAgICAgLyogQWxs IHJldHVybiB2YWx1ZXMgbGFyZ2V0IHRoYW4gMTI4IGJpdHMgbXVzdCBiZSBhZ2dyZWdhdGUKKyAg ICAgICAgICByZXR1cm4gdmFsdWVzLiAgKi8KKy0tLSBzcmMvZ2RiL2xtMzItdGRlcC5jCTIwMTIv MDkvMjUgMTI6NDg6NTMJMS4xMworKysrIHNyYy9nZGIvbG0zMi10ZGVwLmMJMjAxMi8wOS8yNiAw Nzo1Mjo0OAkxLjE0CitAQCAtMzQ5LDE4ICszNDksMTggQEAKKyAgIHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hlKTsKKyAgIGVudW0gYmZkX2VuZGlh biBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKKyAgIFVMT05HRVNU IHZhbDsKKy0gIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgCistICBpZiAobGVuIDw9 IDQpCisrICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpIDw9IDQpCisgICAgIHsKKy0gICAgICB2YWwg PSBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKHZhbGJ1ZiwgbGVuLCBieXRlX29yZGVyKTsKKysg ICAgICB2YWwgPSBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKHZhbGJ1ZiwgVFlQRV9MRU5HVEgg KHR5cGUpLCBieXRlX29yZGVyKTsKKyAgICAgICByZWdjYWNoZV9jb29rZWRfd3JpdGVfdW5zaWdu ZWQgKHJlZ2NhY2hlLCBTSU1fTE0zMl9SMV9SRUdOVU0sIHZhbCk7CisgICAgIH0KKy0gIGVsc2Ug aWYgKGxlbiA8PSA4KQorKyAgZWxzZSBpZiAoVFlQRV9MRU5HVEggKHR5cGUpIDw9IDgpCisgICAg IHsKKyAgICAgICB2YWwgPSBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKHZhbGJ1ZiwgNCwgYnl0 ZV9vcmRlcik7CisgICAgICAgcmVnY2FjaGVfY29va2VkX3dyaXRlX3Vuc2lnbmVkIChyZWdjYWNo ZSwgU0lNX0xNMzJfUjFfUkVHTlVNLCB2YWwpOworLSAgICAgIHZhbCA9IGV4dHJhY3RfdW5zaWdu ZWRfaW50ZWdlciAodmFsYnVmICsgNCwgbGVuIC0gNCwgYnl0ZV9vcmRlcik7CisrICAgICAgdmFs ID0gZXh0cmFjdF91bnNpZ25lZF9pbnRlZ2VyICh2YWxidWYgKyA0LCBUWVBFX0xFTkdUSCAodHlw ZSkgLSA0LAorKwkJCQkgICAgICBieXRlX29yZGVyKTsKKyAgICAgICByZWdjYWNoZV9jb29rZWRf d3JpdGVfdW5zaWduZWQgKHJlZ2NhY2hlLCBTSU1fTE0zMl9SMl9SRUdOVU0sIHZhbCk7CisgICAg IH0KKyAgIGVsc2UKKy0tLSBzcmMvZ2RiL21pY3JvYmxhemUtdGRlcC5jCTIwMTIvMDgvMDIgMDk6 MzY6MzkJMS4xMworKysrIHNyYy9nZGIvbWljcm9ibGF6ZS10ZGVwLmMJMjAxMi8wOS8yNiAwNzo1 Mjo0OAkxLjE0CitAQCAtNTkwLDIyICs1OTAsMjEgQEAKKyBtaWNyb2JsYXplX3N0b3JlX3JldHVy bl92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsCisg CQkJICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxidWYpCisgeworLSAgaW50IGxlbiA9IFRZUEVf TEVOR1RIICh0eXBlKTsKKyAgIGdkYl9ieXRlIGJ1Zls4XTsKKyAKKyAgIG1lbXNldCAoYnVmLCAw LCBzaXplb2YoYnVmKSk7CisgCisgICAvKiBJbnRlZ3JhbCBhbmQgcG9pbnRlciByZXR1cm4gdmFs dWVzLiAgKi8KKyAKKy0gIGlmIChsZW4gPiA0KQorKyAgaWYgKFRZUEVfTEVOR1RIICh0eXBlKSA+ IDQpCisgICAgIHsKKy0gICAgICAgZ2RiX2Fzc2VydCAobGVuID09IDgpOworKyAgICAgICBnZGJf YXNzZXJ0IChUWVBFX0xFTkdUSCAodHlwZSkgPT0gOCk7CisgICAgICAgIG1lbWNweSAoYnVmLCB2 YWxidWYsIDgpOworICAgICAgICByZWdjYWNoZV9jb29rZWRfd3JpdGUgKHJlZ2NhY2hlLCBNSUNS T0JMQVpFX1JFVFZBTF9SRUdOVU0rMSwgYnVmICsgNCk7CisgICAgIH0KKyAgIGVsc2UKKyAgICAg LyogPz8/IERvIHdlIG5lZWQgdG8gZG8gYW55IHNpZ24tZXh0ZW5zaW9uIGhlcmU/ICAqLworLSAg ICBtZW1jcHkgKGJ1ZiArIDQgLSBsZW4sIHZhbGJ1ZiwgbGVuKTsKKysgICAgbWVtY3B5IChidWYg KyA0IC0gVFlQRV9MRU5HVEggKHR5cGUpLCB2YWxidWYsIFRZUEVfTEVOR1RIICh0eXBlKSk7Cisg CisgICByZWdjYWNoZV9jb29rZWRfd3JpdGUgKHJlZ2NhY2hlLCBNSUNST0JMQVpFX1JFVFZBTF9S RUdOVU0sIGJ1Zik7CisgfQorLS0tIHNyYy9nZGIvc3B1LXRkZXAuYwkyMDEyLzA5LzE3IDA4OjUy OjE4CTEuODIKKysrKyBzcmMvZ2RiL3NwdS10ZGVwLmMJMjAxMi8wOS8yNiAwNzo1Mjo0OAkxLjgz CitAQCAtMzE2LDExICszMTYsMTAgQEAKKyAJCQkgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQor IHsKKyAgIHN0cnVjdCB2YWx1ZSAqdmFsdWUgPSBkZWZhdWx0X3ZhbHVlX2Zyb21fcmVnaXN0ZXIg KHR5cGUsIHJlZ251bSwgZnJhbWUpOworLSAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsK KyAKKy0gIGlmIChyZWdudW0gPCBTUFVfTlVNX0dQUlMgJiYgbGVuIDwgMTYpCisrICBpZiAocmVn bnVtIDwgU1BVX05VTV9HUFJTICYmIFRZUEVfTEVOR1RIICh0eXBlKSA8IDE2KQorICAgICB7Cist ICAgICAgaW50IHByZWZlcnJlZF9zbG90ID0gbGVuIDwgNCA/IDQgLSBsZW4gOiAwOworKyAgICAg IGludCBwcmVmZXJyZWRfc2xvdCA9IFRZUEVfTEVOR1RIICh0eXBlKSA8IDQgPyA0IC0gVFlQRV9M RU5HVEggKHR5cGUpIDogMDsKKyAgICAgICBzZXRfdmFsdWVfb2Zmc2V0ICh2YWx1ZSwgcHJlZmVy cmVkX3Nsb3QpOworICAgICB9CisgCistLS0gc3JjL2dkYi92YXgtdGRlcC5jCTIwMTIvMDUvMTYg MTQ6MzU6MDgJMS4xMTIKKysrKyBzcmMvZ2RiL3ZheC10ZGVwLmMJMjAxMi8wOS8yNiAwNzo1Mjo0 OAkxLjExMworQEAgLTIwOCw3ICsyMDgsNiBAQAorIAkJICBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3Ry dWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKKyAJCSAgZ2RiX2J5dGUgKnJlYWRidWYsIGNvbnN0IGdk Yl9ieXRlICp3cml0ZWJ1ZikKKyB7CistICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOwor ICAgZ2RiX2J5dGUgYnVmWzhdOworIAorICAgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9D T0RFX1NUUlVDVAorQEAgLTIyNCw3ICsyMjMsNyBAQAorIAkgIFVMT05HRVNUIGFkZHI7CisgCisg CSAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCBWQVhfUjBfUkVHTlVNLCAm YWRkcik7CistCSAgcmVhZF9tZW1vcnkgKGFkZHIsIHJlYWRidWYsIGxlbik7CisrCSAgcmVhZF9t ZW1vcnkgKGFkZHIsIHJlYWRidWYsIFRZUEVfTEVOR1RIICh0eXBlKSk7CisgCX0KKyAKKyAgICAg ICByZXR1cm4gUkVUVVJOX1ZBTFVFX0FCSV9SRVRVUk5TX0FERFJFU1M7CitAQCAtMjM0LDE2ICsy MzMsMTYgQEAKKyAgICAgeworICAgICAgIC8qIFJlYWQgdGhlIGNvbnRlbnRzIG9mIFIwIGFuZCAo aWYgbmVjZXNzYXJ5KSBSMS4gICovCisgICAgICAgcmVnY2FjaGVfY29va2VkX3JlYWQgKHJlZ2Nh Y2hlLCBWQVhfUjBfUkVHTlVNLCBidWYpOworLSAgICAgIGlmIChsZW4gPiA0KQorKyAgICAgIGlm IChUWVBFX0xFTkdUSCAodHlwZSkgPiA0KQorIAlyZWdjYWNoZV9jb29rZWRfcmVhZCAocmVnY2Fj aGUsIFZBWF9SMV9SRUdOVU0sIGJ1ZiArIDQpOworLSAgICAgIG1lbWNweSAocmVhZGJ1ZiwgYnVm LCBsZW4pOworKyAgICAgIG1lbWNweSAocmVhZGJ1ZiwgYnVmLCBUWVBFX0xFTkdUSCAodHlwZSkp OworICAgICB9CisgICBpZiAod3JpdGVidWYpCisgICAgIHsKKyAgICAgICAvKiBSZWFkIHRoZSBj b250ZW50cyB0byBSMCBhbmQgKGlmIG5lY2Vzc2FyeSkgUjEuICAqLworLSAgICAgIG1lbWNweSAo YnVmLCB3cml0ZWJ1ZiwgbGVuKTsKKysgICAgICBtZW1jcHkgKGJ1Ziwgd3JpdGVidWYsIFRZUEVf TEVOR1RIICh0eXBlKSk7CisgICAgICAgcmVnY2FjaGVfY29va2VkX3dyaXRlIChyZWdjYWNoZSwg VkFYX1IwX1JFR05VTSwgYnVmKTsKKy0gICAgICBpZiAobGVuID4gNCkKKysgICAgICBpZiAoVFlQ RV9MRU5HVEggKHR5cGUpID4gNCkKKyAJcmVnY2FjaGVfY29va2VkX3dyaXRlIChyZWdjYWNoZSwg VkFYX1IxX1JFR05VTSwgYnVmICsgNCk7CisgICAgIH0KKyAKCmRpZmYgLS1naXQgYS9nZGItcmhi ejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2Yy NS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjEwMTI3Ci0tLSAv ZGV2L251bGwKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaApAQCAtMCww ICsxLDQ1MzIgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEyLTA5 L21zZzAwNjMxLmh0bWwKK1N1YmplY3Q6IFtQQVRDSCAxLzRdIEV4cGFuZCBiaXRwb3MgYW5kIHR5 cGUubGVuZ3RoIHRvIExPTkdFU1QgYW5kIFVMT05HRVNUCisKKworLS1NUF8veXA1ZitXX0VEMkp0 VWxTeUJpOHh1anIKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VUy1BU0NJSQor Q29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAorQ29udGVudC1EaXNwb3NpdGlvbjogaW5s aW5lCisKK0hpLAorCitUaGlzIGlzIHBhdGNoIDEvNCwgd2hpY2ggaW1wbGVtZW50cyB0aGUgYnVs ayBvZiB0aGUgY2hhbmdlcyBpbiB0eXBlCitsZW5ndGggYW5kIGJpdHBvcy90eXBlIG9mZnNldC4g SSBoYXZlIHZlcmlmaWVkIHRoYXQgdGhlcmUgYXJlIG5vCityZWdyZXNzaW9ucyByZXN1bHRpbmcg ZnJvbSB0aGlzIHBhdGNoIGJ5IHJ1bm5pbmcgdGhlIHRlc3RzdWl0ZSBvbgorRmVkb3JhIDE2IHg4 Nl82NC4gIFBhdGNoIGFuZCBjaGFuZ2Vsb2cgYXR0YWNoZWQuCisKK1JlZ2FyZHMsCitTaWRkaGVz aAorCistLU1QXy95cDVmK1dfRUQySnRVbFN5Qmk4eHVqcgorQ29udGVudC1UeXBlOiB0ZXh0L3Bs YWluCitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCitDb250ZW50 LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1DaGFuZ2VMb2ctbWFpbgorCitnZGIv Q2hhbmdlTG9nCisKKzIwMTItMDgtMDUgIFNpZGRoZXNoIFBveWFyZWthciAgPHNpZGRoZXNoQHJl ZGhhdC5jb20+CisKKwkqIGFkYS1sYW5nLmMgKGZhdF9wbnRyX2JvdW5kc19iaXRwb3MpOiBSZXR1 cm4gTE9OR0VTVC4KKwkoZmF0X3BudHJfZGF0YV9iaXRwb3MpOiBMaWtld2lzZS4KKwkoZGVzY19i b3VuZF9iaXRwb3MpOiBMaWtld2lzZS4KKwkoY29uc3RyYWluZWRfcGFja2VkX2FycmF5X3R5cGUp OiBFeHBhbmQgRUxUX0JJVFMgcGFyYW1ldGVyIHRvCisJTE9OR0VTVC4KKwkobW92ZV9iaXRzKTog RXhwYW5kIHBhcmFtZXRlcnMgU1JDX09GRlNFVCBhbmQgTiB0byBMT05HRVNULgorCShjb25kX29m ZnNldF9ob3N0KTogRXhwYW5kIHBhcmFtZXRlciBPRkZTRVQgdG8gTE9OR0VTVC4KKwkoY29uZF9v ZmZzZXRfdGFyZ2V0KTogTGlrZXdpc2UuCisJKGFkYV90eXBlX29mX2FycmF5KTogRXhwYW5kIEFS UkFZX0JJVFNJWkUgdG8gTE9OR0VTVC4KKwkoZGVjb2RlX2NvbnN0cmFpbmVkX3BhY2tlZF9hcnJh eV90eXBlKTogRXhwYW5kIEJJVFMgdG8gTE9OR0VTVC4KKwkoZGVjb2RlX2NvbnN0cmFpbmVkX3Bh Y2tlZF9hcnJheSk6IEV4cGFuZCBCSVRfUE9TIHRvIExPTkdFU1QuCisJKGFkYV92YWx1ZV9wcmlt aXRpdmVfcGFja2VkX3ZhbCk6IEV4cGFuZCBwYXJhbWV0ZXIgT0ZGU0VUIHRvCisJTE9OR0VTVC4g IEV4cGFuZCBUQVJHLCBOVEFSRyBhbmQgTkVXX09GRlNFVCB0byBMT05HRVNULgorCShhZGFfdmFs dWVfYXNzaWduKTogRXhwYW5kIEZST01fU0laRSB0byBMT05HRVNULgorCSh2YWx1ZV9hc3NpZ25f dG9fY29tcG9uZW50KTogRXhwYW5kIEJJVFMgdG8gTE9OR0VTVC4KKwkoZW5zdXJlX2x2YWwpOiBF eHBhbmQgTEVOIHRvIExPTkdFU1QuCisJKHZhbHVlX3BvaW50ZXIpOiBFeHBhbmQgTEVOIHRvIFVM T05HRVNULgorCSh2YWx1ZV90YWdfZnJvbV9jb250ZW50c19hbmRfYWRkcmVzcyk6IEV4cGFuZCBU QUdfQllURV9PRkZTRVQgdG8KKwlMT05HRVNULgorCShhZGFfdmFsdWVfcHJpbWl0aXZlX2ZpZWxk KTogRXhwYW5kIHBhcmFtZXRlciBPRkZTRVQgdG8gTE9OR0VTVC4KKwlFeHBhbmQgYml0X3BvcyB0 byBMT05HRVNULgorCShmaW5kX3N0cnVjdF9maWVsZCk6IEV4cGFuZCBwYXJhbWV0ZXJzIE9GRlNF VCBhbmQgQllURV9PRkZTRVRfUCB0bworCUxPTkdFU1QuICBFeHBhbmQgQklUX1BPUyBhbmQgRkxE X09GRlNFVCB0byBMT05HRVNULgorCShhZGFfc2VhcmNoX3N0cnVjdF9maWVsZCk6IEV4cGFuZCBw YXJhbWV0ZXIgT0ZGU0VUIHRvIExPTkdFU1QuCisJRXhwYW5kIFZBUl9PRkZTRVQgdG8gTE9OR0VT VC4KKwkoYWRhX2luZGV4X3N0cnVjdF9maWVsZCk6IEV4cGFuZCBwYXJhbWV0ZXJzIElOREVYIGFu ZCBPRkZTRVQgdG8KKwlMT05HRVNULgorCShhZGFfaW5kZXhfc3RydWN0X2ZpZWxkXzEpOiBFeHBh bmQgcGFyYW1ldGVycyBJTkRFWF9QIGFuZCBPRkZTRVQKKwl0byBMT05HRVNULgorCShhZGFfdmFs dWVfc3RydWN0X2VsdCk6IEV4cGFuZCBCWVRFX09GRlNFVCB0byBMT05HRVNULgorCShhbGlnbl92 YWx1ZSk6IFJldHVybiBVTE9OR0VTVC4gIEV4cGFuZCBwYXJhbWV0ZXIgT0ZGIGFuZAorCUFMSUdO TUVOVCB0byBVTE9OR0VTVC4KKwkoYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEp OiBFeHBhbmQgT0ZGLCBCSVRfTEVOIGFuZAorCWZsZF9iaXRfbGVuIHRvIExPTkdFU1QuICBFeHBh bmQgRklFTERfT0ZGU0VUIHRvIExPTkdFU1QuICBVc2UKKwlwdWxvbmdlc3QgZnVuY3Rpb24gdG8g cHJpbnQgVFlQRV9MRU5HVEguCisJKHRvX2ZpeGVkX2FycmF5X3R5cGUpOiBFeHBhbmQgTEVOIHRv IExPTkdFU1QuCisJKiBhZGEtbGFuZy5oIChhZGFfdmFsX3ByaW50KTogRXhwYW5kIHBhcmFtZXRl ciBFTUJFRERFRF9PRkZTRVQgdG8KKwlMT05HRVNULgorCShhZGFfcHJpbnRzdHIpOiBFeHBhbmQg cGFyYW1ldGVyIExFTkdUSCB0byBVTE9OR0VTVC4KKwkoYWRhX3ZhbHVlX3ByaW1pdGl2ZV9wYWNr ZWRfdmFsKTogRXhwYW5kIHBhcmFtZXRlciBPRkZTRVQgdG8KKwlMT05HRVNULgorCSogYWRhLXR5 cGVwcmludC5jIChhZGFfcHJpbnRfdHlwZSk6IFVzZSBwdWxvbmdlc3QgdG8gcHJpbnQKKwlUWVBF X0xFTkdUSC4KKwkqIGFkYS12YWxwcmludC5jICh2YWxfcHJpbnRfcGFja2VkX2FycmF5X2VsZW1l bnRzKTogRXhwYW5kIEVMVExFTgorCXRvIFVMT05HRVNULgorCShjaGFyX2F0KTogRXhwYW5kIHBh cmFtZXRlciBJIHRvIExPTkdFU1QuCisJKHByaW50c3RyKTogRXhwYW5kIHBhcmFtZXRlciBMRU5H VEgsIEksIFJFUDEsIFJFUFMgdG8gVUxPTkdFU1QuCisJVXNlIHB1bG9uZ2VzdCB0byBmb3JtYXQg cHJpbnQgUkVQUy4KKwkoYWRhX3ByaW50c3RyKTogRXhwYW5kIHBhcmFtZXRlciBMRU5HVEggdG8g TE9OR0VTVC4KKwkoYWRhX3ZhbF9wcmludCk6IEV4cGFuZCBwYXJhbWV0ZXIgRU1CRURERURfT0ZG U0VUIHRvIExPTkdFU1QuCisJKGFkYV92YWxfcHJpbnRfYXJyYXkpOiBFeHBhbmQgRUxUTEVOLCBM RU4gdG8gVUxPTkdFU1QgYW5kIFRFTVBfTEVOCisJdG8gTE9OR0VTVC4KKwkoYWRhX3ZhbF9wcmlu dF8xKTogRXhwYW5kIHBhcmFtZXRlciBPRkZTRVQgdG8gTE9OR0VTVC4KKwkocHJpbnRfdmFyaWFu dF9wYXJ0KTogRXhwYW5kIHBhcmFtZXRlcnMgT0ZGU0VUIGFuZCBPVVRFUl9PRkZTRVQgdG8KKwlM T05HRVNULgorCShwcmludF9maWVsZF92YWx1ZXMpOiBMaWtld2lzZS4gIEV4cGFuZCBCSVRfUE9T IHRvIExPTkdFU1QuCisJKiBhbm5vdGF0ZS5jIChhbm5vdGF0ZV9hcnJheV9zZWN0aW9uX2JlZ2lu KTogRXhwYW5kIHBhcmFtZXRlcgorCUlEWCB0byBMT05HRVNULiAgVXNlIHBsb25nZXN0IHRvIGZv cm1hdC1wcmludCBJRFguCisJKGFubm90YXRlX2VsdF9yZXApOiBFeHBhbmQgcGFyYW1ldGVyIFJF UENPVU5UIHRvIFVMT05HRVNULiAgVXNlCisJcGxvbmdlc3QgdG8gZm9ybWF0LXByaW50IFJFUENP VU5ULgorCSogYW5ub3RhdGUuaDogTGlrZXdpc2UuCisJKiBhcm0tbGludXgtbmF0LmMgKGFybV9s aW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpOgorCUV4cGFuZCBwYXJhbWV0ZXIgcGFy YW1ldGVyIExFTiB0byBMT05HRVNULgorCSogYXgtZ2RiLmMgKGdlbl9sZWZ0X3NoaWZ0KTogRXhw YW5kIHBhcmFtZXRlciBESVNUQU5DRSB0byBMT05HRVNULgorCShnZW5fb2Zmc2V0KTogRXhwYW5k IHBhcmFtZXRlciBPRkZTRVQgdG8gTE9OR0VTVC4KKwkoZ2VuX2JpdGZpZWxkX3JlZik6IEV4cGFu ZCBwYXJhbWV0ZXJzIFNUQVJULCBFTkQgdG8gTE9OR0VTVC4KKwlFeHBhbmQgQk9VTkRfU1RBUlQs IEJPVU5EX0VORCwgT0ZGU0VUIHRvIExPTkdFU1QuCisJKGdlbl9wcmltaXRpdmVfZmllbGQpOiBF eHBhbmQgcGFyYW1ldGVyIE9GRlNFVCB0byBMT05HRVNULgorCShnZW5fc3RydWN0X3JlZl9yZWN1 cnNpdmUpOiBMaWtld2lzZS4KKwkqIGF4LWdlbmVyYWwuYyAoYXhfdHJhY2VfcXVpY2spOiBFeHBh bmQgcGFyYW1ldGVyIE4gdG8gTE9OR0VTVC4KKwkqIGF4LmggKGF4X3RyYWNlX3F1aWNrKTogTGlr ZXdpc2UuCisJKiBicmVha3BvaW50LmMgKGJyZWFrcG9pbnRfYWRkcmVzc19tYXRjaF9yYW5nZSk6 IEV4cGFuZCBwYXJhbWV0ZXIKKwlMRU4xIHRvIExPTkdFU1QuCisJKGNhbl91c2VfaGFyZHdhcmVf d2F0Y2hwb2ludCk6IEV4cGFuZCBMRU4gdG8gTE9OR0VTVC4KKwkqIGJyZWFrcG9pbnQuaCAoc3Ry dWN0IGJwX3RhcmdldF9pbmZvKTogRXhwYW5kIG1lbWJlciBMRU5HVEggdG8KKwlMT05HRVNULgor CShzdHJ1Y3QgYnBfbG9jYXRpb24pOiBMaWtld2lzZS4KKwkqIGMtbGFuZy5jIChjX3ByaW50c3Ry KTogRXhwYW5kIHBhcmFtZXRlciBMRU5HVEggdG8gVUxPTkdFU1QuCisJKGV2YWx1YXRlX3N1YmV4 cF9jKTogRXhwYW5kIEVMRU1FTlRfU0laRSwgSSB0byBMT05HRVNULgorCSogYy1sYW5nLmggKGNf dmFsX3ByaW50KTogRXhwYW5kIHBhcmFtZXRlciBFTUJFRERFRF9PRkZTRVQgdG8KKwlMT05HRVNU LgorCShjX3ByaW50c3RyKTogRXhwYW5kIHBhcmFtZXRlciBMRU5HVEggdG8gVUxPTkdFU1QuCisJ KGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyk6IEV4cGFuZCBwYXJhbWV0ZXIgT0ZGU0VUIHRvIExPTkdF U1QuCisJKGNwX3ByaW50X3ZhbHVlX2ZpZWxkc19ydHRpKTogTGlrZXdpc2UuCisJKiBjLXR5cGVw cmludC5jIChjX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXgpOiBSZW1vdmUgY2FzdCBkb3duIHRv CisJaW50IGFuZCB1c2UgcGxvbmdlc3QgdG8gcHJpbnQgTE9OR0VTVC4KKwkqIGMtdmFscHJpbnQu YyAoY192YWxfcHJpbnQpOiBFeHBhbmQgcGFyYW1ldGVyIEVNQkVEREVEX09GRlNFVCB0bworCUxP TkdFU1QuICBFeHBhbmQgT0ZGU0VUIHRvIExPTkdFU1QsIEVMVExFTiB0byBVTE9OR0VTVC4KKwko Y192YWx1ZV9wcmludCk6IEV4cGFuZCBUT1AgdG8gTE9OR0VTVC4KKwkqIGNwLWFiaS5jIChiYXNl Y2xhc3Nfb2Zmc2V0KTogUmV0dXJuIExPTkdFU1QuICBFeHBhbmQgcGFyYW1ldGVyCisJRU1CRURE RURfT0ZGU0VUIHRvIExPTkdFU1QuICBFeHBhbmQgUkVTIHRvIExPTkdFU1QuCisJKHZhbHVlX3Zp cnR1YWxfZm5fZmllbGQpOiBFeHBhbmQgcGFyYW1ldGVyIE9GRlNFVCB0byBMT05HRVNULgorCSh2 YWx1ZV9ydHRpX3R5cGUpOiBFeHBhbmQgcGFyYW1ldGVyIFRPUCB0byBwb2ludCB0byBMT05HRVNU LgorCSogY3AtYWJpLmggKHZhbHVlX3ZpcnR1YWxfZm5fZmllbGQpOiBFeHBhbmQgT0ZGU0VUIHRv IExPTkdFU1QuCisJKHZhbHVlX3J0dGlfdHlwZSk6IEV4cGFuZCBUT1AgdG8gcG9pbnQgdG8gTE9O R0VTVC4KKwkoYmFzZWNsYXNzX29mZnNldCk6IFJldHVybiBMT05HRVNULiAgRXhwYW5kIHBhcmFt ZXRlcgorCUVNQkVEREVEX09GRlNFVCB0byBMT05HRVNULgorCShzdHJ1Y3QgY3BfYWJpX29wcyk6 IEV4cGFuZCBwYXJhbWV0ZXIgT0ZGU0VUIGZvciBWSVJUVUFMX0ZOX0ZJRUxECisJdG8gTE9OR0VT VC4gIEV4cGFuZCBwYXJhbWV0ZXIgVE9QIHRvIHBvaW50IHRvIExPTkdFU1QgaW4KKwlWQUxVRV9S VFRJX1RZUEUuICBSZXR1cm4gTE9OR0VTVCBmcm9tIEJBU0VDTEFTU19PRkZTRVQgYW5kIGV4cGFu ZAorCXBhcmFtZXRlciBFTUJFRERFRF9PRkZTRVQgdG8gTE9OR0VTVC4KKwkqIGNwLXZhbHByaW50 LmMgKGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyk6IEV4cGFuZCBwYXJhbWV0ZXIgT0ZGU0VUCisJdG8g TE9OR0VTVC4gIEV4cGFuZCBJX09GRlNFVCB0byBMT05HRVNULgorCShjcF9wcmludF92YWx1ZV9m aWVsZHNfcnR0aSk6IEV4cGFuZCBwYXJhbWV0ZXIgT0ZGU0VUIHRvCisJTE9OR0VTVC4gIEV4cGFu ZCBUT1AgdG8gTE9OR0VTVC4KKwkoY3BfcHJpbnRfdmFsdWUpOiBFeHBhbmQgcGFyYW1ldGVyIE9G RlNFVCB0byBMT05HRVNULiAgRXhwYW5kCisJVEhJU09GRlNFVCwgQk9GRlNFVCB0byBMT05HRVNU LgorCSogZC1sYW5nLmggKGRfdmFsX3ByaW50KTogRXhwYW5kIHBhcmFtZXRlciBFTUJFRERFRF9P RkZTRVQgdG8KKwlMT05HRVNULgorCSogZC12YWxwcmludC5jIChkeW5hbWljX2FycmF5X3R5cGUp OiBMaWtld2lzZS4KKwkoZF92YWxfcHJpbnQpOiBMaWtld2lzZS4KKwkqIGRvdWJsZXN0LmMgKGZs b2F0Zm9ybWF0X2Zyb21fbGVuZ3RoKTogRXhwYW5kIHBhcmFtZXRlciBMRU4gdG8KKwlMT05HRVNU LiAgVXNlIHBsb25nZXN0IHRvIGZvcm1hdCBzdHJpbmcgZm9yIExPTkdFU1QuCisJKiBkd2FyZjJs b2MuYyAoY29weV9iaXR3aXNlKTogRXhwYW5kIHBhcmFtZXRlcnMgREVTVF9PRkZTRVRfQklUUywK KwlCSVRfQ09VTlQgdG8gVUxPTkdFU1QuICBSZW5hbWUgcGFyYW1ldGVyIFNPVVJDRV9PRkZTRVRf QklUUyB0bworCVNPVVJDRV9PRkZTRVQgYW5kIGV4cGFuZCB0byBVTE9OR0VTVC4gIE5ldyB2YXJp YWJsZQorCVNPVVJDRV9PRkZTRVRfQklUUy4KKwkocmVhZF9waWVjZWRfdmFsdWUpOiBFeHBhbmQg T0ZGU0VULCBERVNUX09GRlNFVF9CSVRTLAorCVNPVVJDRV9PRkZTRVRfQklUUywgU09VUkNFX09G RlNFVCB0byBMT05HRVNULiAgRXhwYW5kIFRZUEVfTEVOLAorCVRISVNfU0laRSwgVEhJU19TSVpF X0JJVFMgdG8gVUxPTkdFU1QuCisJKHdyaXRlX3BpZWNlZF92YWx1ZSk6IExpa2V3aXNlLgorCShj aGVja19waWVjZWRfdmFsdWVfYml0cyk6IEV4cGFuZCBwYXJhbWV0ZXJzIEJJVF9PRkZTRVQgYW5k CisJQklUX0xFTkdUSCB0byBMT05HRVNULiAgRXhwYW5kIFRISVNfU0laRV9CSVRTIHRvIFVMT05H RVNULgorCShjaGVja19waWVjZWRfdmFsdWVfdmFsaWRpdHkpOiBFeHBhbmQgcGFyYW1ldGVycyBC SVRfT0ZGU0VUIGFuZAorCUJJVF9MRU5HVEggdG8gTE9OR0VTVC4KKwkoY2hlY2tfcGllY2VkX3N5 bnRoZXRpY19wb2ludGVyKTogTGlrZXdpc2UuCisJKGluZGlyZWN0X3BpZWNlZF92YWx1ZSk6IEV4 cGFuZCBCSVRfTEVOR1RILCBCWVRFX09GRlNFVCBhbmQKKwlCSVRfT0ZGU0VUIHRvIExPTkdFU1Qu CisJKGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsKTogRXhwYW5kIE4gdG8gVUxPTkdFU1Qu CisJKiBkd2FyZjJyZWFkLmMgKGR3YXJmMl9jb25zdF92YWx1ZV9sZW5ndGhfbWlzbWF0Y2hfY29t cGxhaW50KToKKwlFeHBhbmQgcGFyYW1ldGVycyBBUkcyIGFuZCBBUkczIHRvIExPTkdFU1QuICBV c2UgcGxvbmdlc3QgdG8KKwlwcmludCBBUkcyIGFuZCBBUkczLgorCShkd2FyZjJfYWRkX2ZpZWxk KTogRXhwYW5kIEFOT05ZTU9VU19TSVpFLCBCSVRfT0ZGU0VUIHRvCisJTE9OR0VTVC4KKwkqIGV2 YWwuYyAoZXZhbHVhdGVfc3RydWN0X3R1cGxlKTogRXhwYW5kIEJJVFBPUyB0byBMT05HRVNULgor CShpbml0X2FycmF5X2VsZW1lbnQpOiBFeHBhbmQgRUxFTUVOVF9TSVpFIHRvIExPTkdFU1QuCisJ KGJpbm9wX3Byb21vdGUpOiBFeHBhbmQgUFJPTU9URURfTEVOMSwgUFJPTU9URURfTEVOMiwgUkVT VUxUX0xFTgorCXRvIFVMT05HRVNULgorCShldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQpOiBFeHBh bmQgTUVNX09GRlNFVCwgVE9QLCBFTEVNRU5UX1NJWkUKKwl0byBMT05HRVNULgorCSogZi1sYW5n LmMgKGZfcHJpbnRzdHIpOiBFeHBhbmQgcGFyYW1ldGVyIExFTkdUSCB0byBVTE9OR0VTVC4KKwkq IGYtbGFuZy5oIChmX3ZhbF9wcmludCk6IEV4cGFuZCBwYXJhbWV0ZXIgRU1CRURERURfT0ZGU0VU IHRvCisJTE9OR0VTVC4KKwkqIGYtdmFscHJpbnQuYyAoZjc3X2FycmF5X29mZnNldF90YmwpOiBN YWtlIExPTkdFU1QuCisJKGY3N19jcmVhdGVfYXJyYXlwcmludF9vZmZzZXRfdGJsKTogRXhwYW5k IEVMVExFTiB0byBMT05HRVNULgorCShmNzdfcHJpbnRfYXJyYXlfMSk6IEV4cGFuZCBwYXJhbWV0 ZXIgRU1CRURERURfT0ZGU0VUIHRvCisJTE9OR0VTVC4gIEV4cGFuZCBJIHRvIExPTkdFU1QuCisJ KGY3N19wcmludF9hcnJheSk6IEV4cGFuZCBwYXJhbWV0ZXIgRU1CRURERURfT0ZGU0VUIHRvIExP TkdFU1QuCisJKGZfdmFsX3ByaW50KTogTGlrZXdpc2UuICBFeHBhbmQgT0ZGU0VUIHRvIExPTkdF U1QuCisJKiBmaW5kdmFyLmMgKGRlZmF1bHRfdmFsdWVfZnJvbV9yZWdpc3Rlcik6IEV4cGFuZCBM RU4gdG8gTE9OR0VTVC4KKwkocmVhZF9mcmFtZV9yZWdpc3Rlcl92YWx1ZSk6IEV4cGFuZCBPRkZT RVQsIFJFR19PRkZTRVQsIExFTiwKKwlSRUdfTEVOIHRvIExPTkdFU1QuCisJKiBmcmFtZS5jIChn ZXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMpOiBFeHBhbmQgcGFyYW1ldGVyIExFTiB0bworCUxPTkdF U1QuCisJKiBmcmFtZS5oIChnZXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMpOiBMaWtld2lzZS4KKwkq IGdkYnR5cGVzLmMgKGluaXRfdHlwZSk6IEV4cGFuZCBwYXJhbWV0ZXIgTEVOR1RIIHRvIExPTkdF U1QuCisJKGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIpOiBFeHBhbmQgcGFyYW1ldGVycyBPRkZT RVQsCisJRU1CRURERURfT0ZGU0VUIHRvIExPTkdFU1QuICBFeHBhbmQgVEhJU19PRkZTRVQgdG8g TE9OR0VTVC4KKwkoaXNfdW5pcXVlX2FuY2VzdG9yKTogRXhwYW5kIE9GRlNFVCB0byBMT05HRVNU LgorCShyZWN1cnNpdmVfZHVtcF90eXBlKTogVXNlIHB1bG9uZ2VzdCB0byBmb3JtYXQgcHJpbnQg VFlQRV9MRU5HVEguCisJVXNlIHBsb25nZXN0IHRvIGZvcm1hdCBwcmludCBUWVBFX0ZJRUxEX0JJ VFBPUy4KKwkoYXJjaF90eXBlKTogRXhwYW5kIHBhcmFtZXRlciBMRU5HVEggdG8gTE9OR0VTVC4K KwkqIGdkYnR5cGVzLmggKHN0cnVjdCB0eXBlLm1haW5fdHlwZS5mbGRfYm5kcy5maWVsZHMpOiBF eHBhbmQKKwltZW1iZXIgQklUUE9TIHRvIExPTkdFU1QuCisJKHN0cnVjdCB0eXBlKTogRXhwYW5k IG1lbWJlciBMRU5HVEggdG8gVUxPTkdFU1QuCisJKGluaXRfdHlwZSk6IEV4cGFuZCBwYXJhbWV0 ZXIgTEVOR1RIIHRvIExPTkdFU1QuCisJKGFyY2hfdHlwZSk6IExpa2V3aXNlLgorCSogZ251LXYy LWFiaS5jIChnbnV2Ml92aXJ0dWFsX2ZuX2ZpZWxkKTogRXhwYW5kIHBhcmFtZXRlciBPRkZTRVQK Kwl0byBMT05HRVNULgorCShnbnV2Ml92YWx1ZV9ydHRpX3R5cGUpOiBFeHBhbmQgcGFyYW1ldGVy IFRPUCB0byBwb2ludCB0byBMT05HRVNULgorCShnbnV2Ml9iYXNlY2xhc3Nfb2Zmc2V0KTogUmV0 dXJuIExPTkdFU1QuICBFeHBhbmQgcGFyYW1ldGVyCisJRU1CRURERURfT0ZGU0VUIHRvIExPTkdF U1QuICBFeHBhbmQgRklFTERfT0ZGU0VULCBCT0ZGU0VULAorCUZJRUxEX0xFTkdUSCB0byBMT05H RVNULgorCSogZ251LXYzLWFiaS5jIChidWlsZF9nZGJfdnRhYmxlX3R5cGUpOiBFeHBhbmQgT0ZG U0VUIHRvIExPTkdFU1QuCisJKHZ0YWJsZV9hZGRyZXNzX3BvaW50X29mZnNldCk6IFJldHVybiBM T05HRVNULgorCShnbnV2M19ydHRpX3R5cGUpOiBFeHBhbmQgcGFyYW1ldGVyIFRPUF9QIHRvIHBv aW50IHRvIExPTkdFU1QuCisJKGdudXYzX3ZpcnR1YWxfZm5fZmllbGQpOiBFeHBhbmQgcGFyYW1l dGVyIE9GRlNFVCB0byBMT05HRVNULgorCShnbnV2M19iYXNlY2xhc3Nfb2Zmc2V0KTogUmV0dXJu IExPTkdFU1QuICBFeHBhbmQgcGFyYW1ldGVyCisJRU1CRURERURfT0ZTRVQgdG8gTE9OR0VTVC4g IEV4cGFuZCBDVVJfQkFTRV9PRkZTRVQsIEJBU0VfT0ZGU0VUIHRvCisJTE9OR0VTVC4KKwkoZ251 djNfZmluZF9tZXRob2RfaW4pOiBFeHBhbmQgUE9TIHRvIExPTkdFU1QuCisJKiBnby1sYW5nLmgg KGdvX3ZhbF9wcmludCk6IEV4cGFuZCBwYXJhbWV0ZXIgRU1CRURERURfT0ZGU0VUIHRvCisJTE9O R0VTVC4KKwkqIGdvLXZhbHByaW50LmMgKHByaW50X2dvX3N0cmluZyk6IExpa2V3aXNlLgorCShn b192YWxfcHJpbnQpOiBMaWtld2lzZS4KKwkqIGkzODYtbmF0LmMgKGkzODZfaGFuZGxlX25vbmFs aWduZWRfd2F0Y2hwb2ludCk6IEV4cGFuZAorCXBhcmFtZXRlciBMRU4gdG8gTE9OR0VTVC4KKwko aTM4Nl9yZWdpb25fb2tfZm9yX3dhdGNocG9pbnQpOiBMaWtld2lzZS4KKwkqIGluZi10dHJhY2Uu YyAoaW5mX3R0cmFjZV9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpOiBFeHBhbmQKKwlwYXJh bWV0ZXIgTEVOIHRvIExPTkdFU1QuCisJKiBqdi1sYW5nLmMgKGphdmFfbGlua19jbGFzc190eXBl KTogRXhwYW5kIEJPRkZTRVQgdG8gTE9OR0VTVC4KKwkoamF2YV9wcmludHN0cik6IEV4cGFuZCBw YXJhbWV0ZXIgTEVOR1RIIHRvIFVMT05HRVNULgorCSoganYtbGFuZy5oIChqYXZhX3ZhbF9wcmlu dCk6IEV4cGFuZCBwYXJhbWV0ZXIgRU1CRURERURfT0ZGU0VUIHRvCisJTE9OR0VTVC4KKwkqIGp2 LXZhbHByaW50LmMgKGphdmFfcHJpbnRfdmFsdWVfZmllbGRzKTogRXhwYW5kIHBhcmFtZXRlciBP RkZTRVQKKwl0byBMT05HRVNULgorCShqYXZhX3ZhbF9wcmludCk6IEV4cGFuZCBwYXJhbWV0ZXIg RU1CRURERURfT0ZGU0VUIHRvIExPTkdFU1QuCisJKiBsYW5ndWFnZS5jICh1bmtfbGFuZ19wcmlu dHN0cik6IEV4cGFuZCBwYXJhbWV0ZXIgTEVOR1RIIHRvCisJVUxPTkdFU1QuCisJKHVua19sYW5n X3ZhbF9wcmludCk6IEV4cGFuZCBwYXJhbWV0ZXIgRU1CRURERURfT0ZGU0VUIHRvIExPTkdFU1Qu CisJKiBsYW5ndWFnZS5oIChsYW5ndWFnZV9kZWZuKTogRXhwYW5kIHBhcmFtZXRlciBMRU5HVEgg b2YKKwlMQV9QUklOVFNUUiB0byBVTE9OR0VTVC4gIEV4cGFuZCBwYXJhbWV0ZXIgRU1CRURERURf T0ZGU0VUIG9mCisJTEFfVkFMX1BSSU5UIHRvIExPTkdFU1QuCisJKiBtMi1sYW5nLmMgKG0yX3By aW50c3RyKTogRXhwYW5kIHBhcmFtZXRlciBMRU5HVEggdG8gVUxPTkdFU1QuCisJRXhwYW5kIEks IFJFUDEsIFJFUFMgdG8gVUxPTkdFU1QuICBVc2UgcHVsb25nZXN0IHRvIGZvcm1hdCBwcmludAor CVJFUFMuCisJKiBtMi1sYW5nLmggKG0yX3ZhbF9wcmludCk6IEV4cGFuZCBwYXJhbWV0ZXIgZW1i ZWRkZWRfb2Zmc2V0IHRvCisJTE9OR0VTVC4KKwkqIG0yLXR5cGVwcmludC5jIChtMl9hcnJheSk6 IE5ldyB2YXJpYWJsZSBWQUwuICBVc2UgcHVsb25nZXN0IHRvCisJKiBmb3JtYXQgcHJpbnQgVkFM LgorCShtMl9lbnVtKTogZXhwYW5kIExBU1RWQUwgdG8gTE9OR0VTVC4KKwkqIG0yLXZhbHByaW50 LmMgKG0yX3ByaW50X2xvbmdfc2V0KTogRXhwYW5kIHBhcmFtZXRlcgorCUVNQkVEREVEX09GRlNF VCB0byBMT05HRVNULgorCShtMl9wcmludF91bmJvdW5kZWRfYXJyYXkpOiBMaWtld2lzZS4KKwko bTJfcHJpbnRfYXJyYXlfY29udGVudHMpOiBMaWtld2lzZS4KKwkobTJfdmFsX3ByaW50KTogRXhw YW5kIHBhcmFtZXRlciBFTUJFRERFRF9PRkZTRVQgdG8gTE9OR0VTVC4KKwlFeHBhbmQgSSwgTEVO LCBURU1QX0xFTiB0byBVTE9OR0VTVC4KKwkqIG1lbXJhbmdlLmMgKG1lbV9yYW5nZXNfb3Zlcmxh cCk6IEV4cGFuZCBwYXJhbWV0ZXJzIExFTjEsIExFTjIgdG8KKwlMT05HRVNULgorCSogbWVtcmFu Z2UuaCAoc3RydWN0IG1lbV9yYW5nZSk6IEV4cGFuZCBtZW1iZXIgTEVOR1RIIHRvIExPTkdFU1Qu CisJKG1lbV9yYW5nZXNfb3ZlcmxhcCk6IEV4cGFuZCBwYXJhbWV0ZXJzIExFTjEsIExFTjIgdG8g TE9OR0VTVC4KKwkqIG1pcHMtbGludXgtbmF0LmMgKG1pcHNfbGludXhfcmVnaW9uX29rX2Zvcl9o d193YXRjaHBvaW50KToKKwlFeHBhbmQgcGFyYW1ldGVyIExFTiB0byBMT05HRVNULgorCSogb2Jq Yy1sYW5nLmMgKG9iamNfcHJpbnRzdHIpOiBFeHBhbmQgcGFyYW1ldGVyIExFTkdUSCB0bworCVVM T05HRVNULiAgRXhwYW5kIEksIFJFUDEsIFJFUFMgdG8gVUxPTkdFU1QuICB1c2UgcHVsb25nZXN0 IHRvCisJZm9ybWF0IHByaW50IFJFUFMuCisJKiBvcGVuY2wtbGFuZy5jIChsb29rdXBfb3BlbmNs X3ZlY3Rvcl90eXBlKTogRXhwYW5kIHBhcmFtZXRlcgorCUVMX0xFTkdUSCB0byBVTE9OR0VTVC4g IEV4cGFuZCBMRU5HVEggdG8gVUxPTkdFU1QuCisJKGx2YWxfZnVuY19yZWFkKTogRXhwYW5kIE9G RlNFVCwgTiwgSSwgSiBhbmQgRUxTSVpFIHRvIExPTkdFU1QuCisJKGx2YWxfZnVuY193cml0ZSk6 IExpa2V3aXNlLgorCShsdmFsX2Z1bmNfY2hlY2tfdmFsaWRpdHkpOiBFeHBhbmQgcGFyYW1ldGVy IExFTkdUSCB0byBMT05HRVNULgorCUV4cGFuZCBFTFNJWkUsIFNUQVJULCBFTkQsIEksIFNUQVJU UkVTVCwgRU5EUkVTVCwgQ09NUF9PRkZTRVQsCisJQ09NUF9MRU5HVEggdG8gTE9OR0VTVC4KKwko bHZhbF9mdW5jX2NoZWNrX2FueV92YWxpZCk6IEV4cGFuZCBFTFNJWkUgdG8gTE9OR0VTVC4KKwko bHZhbF9mdW5jX2NoZWNrX3N5bnRoZXRpY19wb2ludGVyKTogRXhwYW5kIHBhcmFtZXRlcnMgT0ZG U0VUIGFuZAorCUxFTkdUSCB0byBMT05HRVNULiAgRXhwYW5kIEVMU0laRSwgU1RBUlQsIEVORCwg SSwgU1RBUlRSRVNULAorCUVORFJFU1QsIENPTVBfTEVOR1RILCBDT01QX09GRlNFVCB0byBMT05H RVNULgorCSogcC1sYW5nLmMgKGlzX3Bhc2NhbF9zdHJpbmdfdHlwZSk6IEV4cGFuZCBwYXJhbWV0 ZXJzIExFTkdUSF9QT1MsCisJU1RSSU5HX1BPUywgTEVOR1RIX1NJWkUgdG8gcG9pbnQgdG8gTE9O R0VTVC4KKwkocGFzY2FsX3ByaW50c3RyKTogRXhwYW5kIHBhcmFtZXRlciBMRU5HVEggdG8gVUxP TkdFU1QuICBFeHBhbmQKKwlJLCBSRVAxLCBSRVBTIHRvIFVMT05HRVNULiAgVXNlIHB1bG9uZ2Vz dCB0byBmb3JtYXQgcHJpbnQgUkVQUy4KKwkqIHAtbGFuZy5oIChwYXNjYWxfdmFsX3ByaW50KTog RXhwYW5kIHBhcmFtZXRlciBFTUJFRERFRF9PRkZTRVQKKwl0byBMT05HRVNULgorCShpc19wYXNj YWxfc3RyaW5nX3R5cGUpOiBFeHBhbmQgcGFyYW1ldGVycyBMRU5HVEhfUE9TLCBTVFJJTkdfUE9T LAorCUxFTkdUSF9TSVpFIHRvIHBvaW50IHRvIExPTkdFU1QuCisJKHBhc2NhbF9wcmludHN0cik6 IEV4cGFuZCBwYXJhbWV0ZXIgTEVOR1RIIHRvIFVMT05HRVNULgorCShwYXNjYWxfb2JqZWN0X3By aW50X3ZhbHVlX2ZpZWxkcyk6IEV4cGFuZCBwYXJhbWV0ZXIgT0ZGU0VUIHRvCisJTE9OR0VTVC4K KwkqIHAtdmFscHJpbnQuYyAocGFzY2FsX3ZhbF9wcmludCk6IEV4cGFuZCBwYXJhbWV0ZXIKKwlF TUJFRERFRF9PRkZTRVQgdG8gTE9OR0VTVC4gIEV4cGFuZCBFTFRMRU4gdG8gVUxPTkdFU1QuICBF eHBhbmQKKwlMRU5HVEhfU0laRSwgTEVOR1RIX1BPUywgU1RSSU5HX1BPUyB0byBMT05HRVNULgor CShwYXNjYWxfb2JqZWN0X3ByaW50X3ZhbHVlX2ZpZWxkcyk6IEV4cGFuZCBwYXJhbWV0ZXIgT0ZG U0VUIHRvCisJTE9OR0VTVC4KKwkocGFzY2FsX29iamVjdF9wcmludF92YWx1ZSk6IExpa2V3aXNl LiAgRXhwYW5kIEJPRkZTRVQsCisJVEhJU09GRlNFVCB0byBMT05HRVNULgorCSogcHBjLWxpbnV4 LW5hdC5jIChwcGNfbGludXhfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50KToKKwlFeHBhbmQg cGFyYW1ldGVyIExFTiB0byBwb2ludCB0byBMT05HRVNULgorCSogcHJpbnRjbWQuYyAocHJpbnRf Zm9ybWF0dGVkKTogRXhwYW5kIExFTiB0byBMT05HRVNULgorCShwcmludF9zY2FsYXJfZm9ybWF0 dGVkKTogTGlrZXdpc2UuCisJKiBwcm9jZnMuYyAocHJvY2ZzX3JlZ2lvbl9va19mb3JfaHdfd2F0 Y2hwb2ludCk6IEV4cGFuZAorCXBhcmFtZXRlciBMRU4gdG8gTE9OR0VTVC4KKwkqIHB5dGhvbi9w eS1wcmV0dHlwcmludC5jIChhcHBseV92YWxfcHJldHR5X3ByaW50ZXIpOiBFeHBhbmQKKwlwYXJh bWV0ZXIgRU1CRURERURfT0ZGU0VUIHRvIExPTkdFU1QuCisJKiBweXRob24vcHl0aG9uLmggKGFw cGx5X3ZhbF9wcmV0dHlfcHJpbnRlcik6IExpa2V3aXNlLgorCSogcmVnY2FjaGUuYyAocmVnY2Fj aGVfeGZlcl9wYXJ0KTogRXhwYW5kIHBhcmFtZXRlciBPRkZTRVQgdG8KKwlMT05HRVNULgorCShy ZWdjYWNoZV9yYXdfcmVhZF9wYXJ0KTogTGlrZXdpc2UuCisJKHJlZ2NhY2hlX3Jhd193cml0ZV9w YXJ0KTogTGlrZXdpc2UuCisJKHJlZ2NhY2hlX2Nvb2tlZF9yZWFkX3BhcnQpOiBMaWtld2lzZS4K KwkocmVnY2FjaGVfY29va2VkX3dyaXRlX3BhcnQpOiBMaWtld2lzZS4KKwkqIHJlZ2NhY2hlLmgg KHJlZ2NhY2hlX3Jhd19yZWFkX3BhcnQpOiBMaWtld2lzZS4KKwkocmVnY2FjaGVfcmF3X3dyaXRl X3BhcnQpOiBMaWtld2lzZS4KKwkocmVnY2FjaGVfY29va2VkX3JlYWRfcGFydCk6IExpa2V3aXNl LgorCShyZWdjYWNoZV9jb29rZWRfd3JpdGVfcGFydCk6IExpa2V3aXNlLgorCSogcmVtb3RlLmMg KHJlbW90ZV9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpOiBFeHBhbmQKKwlwYXJhbWV0ZXIg TEVOIHRvIExPTkdFU1QuCisJKiBzMzkwLW5hdC5jIChzMzkwX3JlZ2lvbl9va19mb3JfaHdfd2F0 Y2hwb2ludCk6IEV4cGFuZAorCXBhcmFtZXRlciBMRU4gdG8gTE9OR0VTVC4KKwkqIHNwdS1tdWx0 aWFyY2guYyAoc3B1X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCk6IEV4cGFuZAorCXBhcmFt ZXRlciBsZW4gdG8gTE9OR0VTVC4KKwkqIHN0YWNrLmMgKHByaW50X2ZyYW1lX25hbWVsZXNzX2Fy Z3MpOiBFeHBhbmQgcGFyYW1ldGVyIFNUQVJUIHRvCisJTE9OR0VTVC4KKwkocHJpbnRfZnJhbWVf YXJncyk6IEV4cGFuZCBISUdIRVNUX09GRlNFVCwgQ1VSUkVOVF9PRkZTRVQsCisJQVJHX1NJWkUs IFNUQVJUIHRvIExPTkdFU1QuCisJKiBzeW1taXNjLmMgKHByaW50X3N5bWJvbCk6IEV4cGFuZCBJ IHRvIFVMT05HRVNULiAgVXNlIHB1bG9uZ2VzdAorCXRvIGZvcm1hdCBwcmludCBUWVBFX0xFTkdU SC4KKwkqIHRhcmdldC5jIChkZWZhdWx0X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCk6IEV4 cGFuZCBwYXJhbWV0ZXIKKwlMRU4gdG8gTE9OR0VTVC4KKwkoZGVidWdfdG9fcmVnaW9uX29rX2Zv cl9od193YXRjaHBvaW50KTogTGlrZXdpc2UuCisJKiB0YXJnZXQuaCAoc3RydWN0IHRhcmdldF9v cHMpOiBFeHBhbmQgcGFyYW1ldGVyIExFTiB0byBMT05HRVNUCisJZm9yIFRPX1JFR0lPTl9PS19G T1JfSFdfV0FUQ0hQT0lOVC4KKwkqIHRyYWNlcG9pbnQuYyAoYWRkX21lbXJhbmdlKTogRXhwYW5k IHBhcmFtZXRlciBMRU4gdG8gTE9OR0VTVC4KKwlVc2UgcGxvbmdlc3QgdG8gZm9ybWF0IHByaW50 IExFTi4KKwkoY29sbGVjdF9zeW1ib2wpOiBFeHBhbmQgTEVOIHRvIFVMT05HRVNULiAgVXNlIHB1 bG9uZ2VzdCB0bworCWZvcm1hdCBwcmludCBMRU4uCisJKHNjb3BlX2luZm8pOiBFeHBhbmQgSiB0 byBMT05HRVNULiAgVXNlIHB1bG9uZ2VzdCB0byBmb3JtYXQKKwlwcmludCBUWVBFX0xFTkdUSC4K KwkqIHR5cGVwcmludC5jICh3aGF0aXNfZXhwKTogRXhwYW5kIFRPUCB0byBMT05HRVNULgorCSog dmFsYXJpdGguYyAodmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlKTogRXhwYW5kIHBhcmFtZXRlcnMg SU5ERVgKKwlhbmQgTE9XRVJCT1VORCB0byBMT05HRVNULiAgRXhwYW5kIEVMVF9TSVpFLCBFTFRf T0ZGUyB0byBVTE9OR0VTVC4KKwkodmFsdWVfY29uY2F0KTogZXhwYW5kIElOVkFMMUxFTiBhbmQg SU5WQUwyTEVOIHRvIHNzaXplX3QuCisJKHZhbHVlX2xvZ2ljYWxfbm90KTogRXhwYW5kIExFTiB0 byBMT05HRVNULgorCSh2YWx1ZV9zdHJjbXApOiBFeHBhbmQgTEVOMSwgTEVOMiwgSSwgTEVOIHRv IExPTkdFU1QuCisJKiB2YWxvcHMuYyAodmFsdWVfYWxsb2NhdGVfc3BhY2VfaW5faW5mZXJpb3Ip OiBFeHBhbmQgcGFyYW1ldGVyCisJTEVOIHRvIExPTkdFU1QuCisJKHZhbHVlX2Nhc3Rfc3RydWN0 cyk6IEV4cGFuZCBUT1AgdG8gTE9OR0VTVC4KKwkodmFsdWVfY2FzdCk6IEV4cGFuZCBFTEVNRU5U X0xFTkdUSCB0byBVTE9OR0VTVC4gIEV4cGFuZAorCVZBTF9MRU5HVEggdG8gTE9OR0VTVC4KKwko ZHluYW1pY19jYXN0X2NoZWNrXzEpOiBFeHBhbmQgcGFyYW1ldGVyIEVNQkVEREVEX09GRlNFVCB0 bworCUxPTkdFU1QuICBFeHBhbmQgT0ZGU0VUIHRvIExPTkdFU1QuCisJKGR5bmFtaWNfY2FzdF9j aGVja18yKTogTGlrZXdpc2UuCisJKHZhbHVlX2R5bmFtaWNfY2FzdCk6IEV4cGFuZCBUT1AgdG8g TE9OR0VTVC4KKwkocmVhZF92YWx1ZV9tZW1vcnkpOiBFeHBhbmQgRU1CRURERURfT0ZGU0VUIHRv IExPTkdFU1QuCisJKHZhbHVlX2Fzc2lnbik6IEV4cGFuZCBDSEFOR0VEX0xFTiwgT0ZGU0VUIHRv IExPTkdFU1QuCisJKHZhbHVlX2FycmF5KTogRXhwYW5kIFRZUEVMRU5HVEggdG8gVUxPTkdFU1Qu CisJKHVwZGF0ZV9zZWFyY2hfcmVzdWx0KTogRXhwYW5kIHBhcmFtZXRlcnMgTEFTVF9CT0ZGU0VU LCBCT0ZGU0VUCisJdG8gTE9OR0VTVC4KKwkoZG9fc2VhcmNoX3N0cnVjdF9maWVsZCk6IEV4cGFu ZCBwYXJhbWV0ZXIgT0ZGU0VULCBMQVNUX0JPRkZTRVQKKwl0byBMT05HRVNULiAgRXhwYW5kIE5F V19PRkZTRVQsIEJPRkZTRVQgdG8gTE9OR0VTVC4KKwkoc2VhcmNoX3N0cnVjdF9maWVsZCk6IEV4 cGFuZCBwYXJhbWV0ZXIgT0ZGU0VUIHRvIExPTkdFU1QuCisJRXhwYW5kIEJPRkZTRVQgdG8gTE9O R0VTVC4KKwkoc2VhcmNoX3N0cnVjdF9tZXRob2QpOiBFeHBhbmQgcGFyYW1ldGVyIE9GRlNFVCB0 byBMT05HRVNULgorCUV4cGFuZCBCQVNFX09GRlNFVCwgVEhJU19PRkZTRVQgdG8gTE9OR0VTVC4K KwkoZmluZF9tZXRob2RfbGlzdCk6IEV4cGFuZCBwYXJhbWV0ZXJzIE9GRlNFVCwgQk9GRlNFVCB0 bworCUxPTkdFU1QuICBFeHBhbmQgQkFTRV9PRkZTRVQgdG8gTE9OR0VTVC4KKwkodmFsdWVfZmlu ZF9vbG9hZF9tZXRob2RfbGlzdCk6IEV4cGFuZCBwYXJhbWV0ZXIgQk9GRlNFVCB0byBwb2ludAor CXRvIExPTkdFU1QuCisJKGZpbmRfb3ZlcmxvYWRfbWF0Y2gpOiBFeHBhbmQgQk9GRlNFVCB0byBM T05HRVNULgorCSh2YWx1ZV9zdHJ1Y3RfZWx0X2Zvcl9yZWZlcmVuY2UpOiBFeHBhbmQgcGFyYW1l dGVyIE9GRlNFVCB0bworCUxPTkdFU1QuICBSZW1vdmUgdW5uZWVkZWQgY2FzdC4gIEV4cGFuZCBC QVNFX09GRlNFVCB0byBMT05HRVNULgorCSh2YWx1ZV9ydHRpX2luZGlyZWN0X3R5cGUpOiBFeHBh bmQgcGFyYW1ldGVyIFRPUCB0byBwb2ludCB0bworCUxPTkdFU1QuCisJKHZhbHVlX2Z1bGxfb2Jq ZWN0KTogRXhwYW5kIHBhcmFtZXRlciBYVE9QIHRvIExPTkdFU1QuICBFeHBhbmQKKwlUT1AgdG8g TE9OR0VTVC4KKwkqIHZhbHByaW50LmMgKHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5KTogRXhwYW5k IHBhcmFtZXRlcgorCUVNQkVEREVEX09GRlNFVCB0byBMT05HRVNULgorCShnZW5lcmljX3ZhbF9w cmludCk6IExpa2V3aXNlLgorCSh2YWxfcHJpbnQpOiBMaWtld2lzZS4KKwkodmFsX3ByaW50X3Nj YWxhcl9mb3JtYXR0ZWQpOiBMaWtld2lzZS4KKwkocHJpbnRfaGV4X2NoYXJzKTogRXhwYW5kIHBh cmFtZXRlciBMRU4gdG8gVUxPTkdFU1QuCisJKHZhbF9wcmludF9hcnJheV9lbGVtZW50cyk6IEV4 cGFuZCBwYXJhbWV0ZXIgRU1CRURERURfT0ZGU0VUIHRvCisJTE9OR0VTVCwgSSB0byBVTE9OR0VT VC4gIEV4cGFuZCBMRU4sIEVMVExFTiwgUkVQMSwgUkVQUyB0bworCVVMT05HRVNULiAgVXNlIHB1 bG9uZ2VzdCB0byBmb3JtYXQgcHJpbnQgUkVQUy4KKwkoZ2VuZXJpY19wcmludHN0cik6IEV4cGFu ZCBwYXJhbWV0ZXIgTEVOR1RIIHRvIFVMT05HRVNULgorCSogdmFscHJpbnQuaCAodmFsX3ByaW50 X2FycmF5X2VsZW1lbnRzKTogRXhwYW5kIHBhcmFtZXRlcgorCUVNQkVEREVEX09GRlNFVCB0byBM T05HRVNULgorCSh2YWxfcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZCk6IExpa2V3aXNlLgorCShwcmlu dF9oZXhfY2hhcnMpOiBFeHBhbmQgcGFyYW1ldGVyIExFTiB0byBVTE9OR0VTVC4KKwkoZ2VuZXJp Y192YWxfcHJpbnQpOiBFeHBhbmQgcGFyYW1ldGVyIEVNQkVEREVEX09GRlNFVCB0byBMT05HRVNU LgorCShnZW5lcmljX3ByaW50c3RyKTogRXhwYW5kIHBhcmFtZXRlciBMRU5HVEggdG8gVUxPTkdF U1QuCisJKiB2YWx1ZS5jIChzdHJ1Y3QgcmFuZ2UpOiBFeHBhbmQgbWVtYmVycyBPRkZTRVQsIExF TkdUSCB0bworCUxPTkdFU1QuCisJKHJhbmdlc19vdmVybGFwKTogRXhwYW5kIHBhcmFtZXRlcnMg T0ZGU0VUMSwgT0ZGU0VUMiwgTEVOMSBBTkQKKwlMRU4yIHRvIExPTkdFU1QuCisJKHJhbmdlX2Nv bnRhaW4pOiBFeHBhbmQgcGFyYW1ldGVyIE9GRlNFVCwgTEVOR1RIIHRvIExPTkdFU1QuCisJKHN0 cnVjdCB2YWx1ZSk6IEV4cGFuZCBtZW1iZXJzIE9GRlNFVCwgRU1CRURERURfT0ZGU0VULAorCVBP SU5URURfVE9fT0ZGU0VUIHRvIExPTkdFU1QuCisJKHZhbHVlX2J5dGVzX2F2YWlsYWJsZSk6IEV4 cGFuZCBwYXJhbWV0ZXJzIE9GRlNFVCwgTEVOR1RIIHRvCisJTE9OR0VTVC4KKwkobWFya192YWx1 ZV9ieXRlc191bmF2YWlsYWJsZSk6IExpa2V3aXNlLgorCShmaW5kX2ZpcnN0X3JhbmdlX292ZXJs YXApOiBMaWtld2lzZS4KKwkodmFsdWVfYXZhaWxhYmxlX2NvbnRlbnRzX2VxKTogRXhwYW5kIHBh cmFtZXRlcnMgT0ZGU0VUMSwgT0ZGU0VUMgorCWFuZCBMRU5HVEggdG8gTE9OR0VTVC4KKwkodmFs dWVfb2Zmc2V0KTogUmV0dXJuIExPTkdFU1QuCisJKHNldF92YWx1ZV9vZmZzZXQpOiBFeHBhbmQg cGFyYW1ldGVyIE9GRlNFVCB0byBMT05HRVNULgorCSh2YWx1ZV9jb250ZW50c19jb3B5X3Jhdyk6 IEV4cGFuZCBwYXJhbWV0ZXJzIFNSQ19PRkZTRVQsCisJRFNUX09GRlNFVCwgTEVOR1RIIHRvIHNz aXplX3QuCisJKHZhbHVlX2NvbnRlbnRzX2NvcHkpOiBMaWtld2lzZS4KKwkodmFsdWVfYml0c192 YWxpZCk6IEV4cGFuZCBwYXJhbWV0ZXJzIE9GRlNFVCwgTEVOR1RIIHRvIExPTkdFU1QuCisJKHZh bHVlX2JpdHNfc3ludGhldGljX3BvaW50ZXIpOiBMaWtld2lzZS4KKwkodmFsdWVfZW1iZWRkZWRf b2Zmc2V0KTogUmV0dXJuIExPTkdFU1QuCisJKHNldF92YWx1ZV9lbWJlZGRlZF9vZmZzZXQpOiBF eHBhbmQgcGFyYW1ldGVyIFZBTCB0byBMT05HRVNULgorCSh2YWx1ZV9wb2ludGVkX3RvX29mZnNl dCk6IFJldHVybiBMT05HRVNULgorCShzZXRfdmFsdWVfcG9pbnRlZF90b19vZmZzZXQpOiBFeHBh bmQgcGFyYW1ldGVyIFZBTCB0byBMT05HRVNULgorCShzZXRfaW50ZXJuYWx2YXJfY29tcG9uZW50 KTogRXhwYW5kIHBhcmFtZXRlciBPRkZTRVQgdG8gTE9OR0VTVC4KKwkodmFsdWVfcHJpbWl0aXZl X2ZpZWxkKTogTGlrZXdpc2UuICBFeHBhbmQgQklUUE9TLCBCT0ZGU0VULAorCUNPTlRBSU5FUl9C SVRTSVpFIHRvIExPTkdFU1QuCisJKHZhbHVlX2ZuX2ZpZWxkKTogRXhwYW5kIHBhcmFtZXRlciBP RkZTRVQgdG8gTE9OR0VTVC4KKwkodW5wYWNrX3ZhbHVlX2JpdHNfYXNfbG9uZ18xKTogRXhwYW5k IHBhcmFtZXRlcnMgRU1CRURERURfT0ZGU0VULAorCUJJVFBPUyB0byBMT05HRVNULiAgRXhwYW5k IFJFQURfT0ZGU0VUIHRvIExPTkdFU1QuCisJKHVucGFja192YWx1ZV9iaXRzX2FzX2xvbmcpOiBF eHBhbmQgcGFyYW1ldGVyIEVNQkVERURfT0ZGU0VUIHRvCisJTE9OR0VTVC4KKwkodW5wYWNrX3Zh bHVlX2ZpZWxkX2FzX2xvbmdfMSk6IExpa2V3aXNlLiAgRXhwYW5kIEJJVFBPUyB0bworCUxPTkdF U1QuCisJKHVucGFja192YWx1ZV9maWVsZF9hc19sb25nKTogRXhwYW5kIHBhcmFtZXRlciBFTUJF RERFRF9PRkZTRVQgdG8KKwlMT05HRVNULgorCSh2YWx1ZV9maWVsZF9iaXRmaWVsZCk6IExpa2V3 aXNlLgorCShtb2RpZnlfZmllbGQpOiBFeHBhbmQgcGFyYW1ldGVyIEJJVFBPUyB0byBMT05HRVNU LiAgRXhwYW5kCisJQllURVNJWkUgdG8gTE9OR0VTVC4KKwkqIHZhbHVlLmggKHZhbHVlX29mZnNl dCk6IFJldHVybiBMT05HRVNULgorCShzZXRfdmFsdWVfb2Zmc2V0KTogRXhwYW5kIHBhcmFtZXRl ciBPRkZTRVQgdG8gTE9OR0VTVC4KKwkodmFsdWVfcG9pbnRlZF90b19vZmZzZXQpOiBSZXR1cm4g TE9OR0VTVC4KKwkoc2V0X3ZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0KTogRXhwYW5kIHBhcmFtZXRl ciBWQUwgdG8gTE9OR0VTVC4KKwkodmFsdWVfZW1iZWRkZWRfb2Zmc2V0KTogUmV0dXJuIExPTkdF U1QuCisJKHNldF92YWx1ZV9lbWJlZGRlZF9vZmZzZXQpOiBFeHBhbmQgcGFyYW1ldGVyIFZBTCB0 byBMT05HRVNULgorCShzdHJ1Y3QgbHZhbF9mdW5jcyk6IEV4cGFuZCBwYXJhbWV0ZXJzIE9GRlNF VCBhbmQgTEVOR1RIIHRvCisJTE9OR0VTVCBmb3IgQ0hFQ0tfVkFMSURJVFkuICBMaWtld2lzZSBm b3IgQ0hFQ0tfU1lOVEhFVElDX1BPSU5URVIuCisJKHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5KTog RXhwYW5kIHBhcmFtZXRlciBFTUJFRERFRF9PRkZTRVQgdG8KKwlMT05HRVNULgorCSh2YWx1ZV9i aXRzX3ZhbGlkKTogRXhwYW5kIHBhcmFtZXRlcnMgT0ZGU0VULCBMRU5HVEggdG8gTE9OR0VTVC4K KwkodmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRlcik6IExpa2V3aXNlLgorCSh2YWx1ZV9ieXRl c19hdmFpbGFibGUpOiBMaWtld2lzZS4KKwkobWFya192YWx1ZV9ieXRlc191bmF2YWlsYWJsZSk6 IExpa2V3aXNlLgorCSh2YWx1ZV9hdmFpbGFibGVfY29udGVudHNfZXEpOiBGaXggY29tbWVudC4g IEV4cGFuZCBwYXJhbWV0ZXJzCisJT0ZGU0VUMSwgT0ZGU0VUMiwgTEVOR1RIIHRvIExPTkdFU1Qu CisJKHJlYWRfdmFsdWVfbWVtb3J5KTogRXhwYW5kIHBhcmFtZXRlciBFTUJFRERFRF9PRkZTRVQg dG8KKwlMT05HRVNULgorCSh1bnBhY2tfdmFsdWVfYml0c19hc19sb25nKTogRXhwYW5kIHBhcmFt ZXRlciBFTUJFRERFRF9PRkZTRVQgdG8KKwlMT05HRVNULgorCSh1bnBhY2tfdmFsdWVfZmllbGRf YXNfbG9uZyk6IExpa2V3aXNlLgorCSh2YWx1ZV9maWVsZF9iaXRmaWVsZCk6IExpa2V3aXNlLgor CSh2YWx1ZV9jb250ZW50c19jb3B5X3Jhdyk6IEV4cGFuZCBwYXJhbWV0ZXJzIFNSQ19PRkZTRVQs CisJRFNUX09GRlNFVCwgTEVOR1RIIHRvIExPTkdFU1QuCisJKHZhbHVlX2NvbnRlbnRzX2NvcHkp OiBMaWtld2lzZS4KKwkodmFsdWVfcHJpbWl0aXZlX2ZpZWxkKTogRXhwYW5kIHBhcmFtZXRlciBP RkZTRVQgdG8gTE9OR0VTVC4KKwkodmFsdWVfcnR0aV9pbmRpcmVjdF90eXBlKTogRXhwYW5kIHBh cmFtZXRlciBUT1AgdG8gcG9pbnQgdG8KKwlMT05HRVNULgorCSh2YWx1ZV9mdWxsX29iamVjdCk6 IEV4cGFuZCBwYXJhbWV0ZXIgWFRPUCB0byBMT05HRVNULgorCShzZXRfaW50ZXJuYWx2YXJfY29t cG9uZW50KTogRXhwYW5kIHBhcmFtZXRlciBPRkZTRVQgdG8gTE9OR0VTVC4KKwkodmFsdWVfZm5f ZmllbGQpOiBFeHBhbmQgcGFyYW1ldGVyIE9GRlNFVCB0byBMT05HRVNULgorCShtb2RpZnlfZmll bGQpOiBFeHBhbmQgcGFyYW1ldGVyIEJJVFBPUyB0byBMT05HRVNULgorCSh2YWxfcHJpbnQpOiBF eHBhbmQgcGFyYW1ldGVyIEVNQkVEREVEX09GRlNFVCB0byBMT05HRVNULgorCSh2YWx1ZV9hbGxv Y2F0ZV9zcGFjZV9pbl9pbmZlcmlvcik6IEV4cGFuZCBwYXJhbWV0ZXIgTEVOIHRvCisJTE9OR0VT VC4KKworZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CisKKzIwMTItMDgtMDUgIFNpZGRoZXNoIFBv eWFyZWthciAgPHNpZGRoZXNoQHJlZGhhdC5jb20+CisKKwkqIGdkYi5iYXNlL2xvbmdlc3QtdHlw ZXMuZXhwOiBBZGQgdGVzdCBjYXNlIHRvIGdldCBvZmZzZXQgb2YKKwlCVUYyLgorCistLU1QXy95 cDVmK1dfRUQySnRVbFN5Qmk4eHVqcgorQ29udGVudC1UeXBlOiB0ZXh0L3gtcGF0Y2gKK0NvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKK0NvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1l bnQ7IGZpbGVuYW1lPWJpdHBvcy1tYWluLnBhdGNoCisKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5 MjYvZ2RiL2FkYS1sYW5nLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3Jp Zy9nZGIvYWRhLWxhbmcuYwkyMDEyLTExLTA3IDIyOjAwOjQ0LjAwMDAwMDAwMCArMDEwMAorKysr IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvYWRhLWxhbmcuYwkyMDEyLTExLTA3IDIyOjA5OjI5LjY2 ODE0MTAzNiArMDEwMAorQEAgLTgwLDcgKzgwLDcgQEAgc3RhdGljIHN0cnVjdCB0eXBlICpkZXNj X2JvdW5kc190eXBlIChzdAorIAorIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmRlc2NfYm91bmRzIChz dHJ1Y3QgdmFsdWUgKik7CisgCistc3RhdGljIGludCBmYXRfcG50cl9ib3VuZHNfYml0cG9zIChz dHJ1Y3QgdHlwZSAqKTsKKytzdGF0aWMgTE9OR0VTVCBmYXRfcG50cl9ib3VuZHNfYml0cG9zIChz dHJ1Y3QgdHlwZSAqKTsKKyAKKyBzdGF0aWMgaW50IGZhdF9wbnRyX2JvdW5kc19iaXRzaXplIChz dHJ1Y3QgdHlwZSAqKTsKKyAKK0BAIC04OCwxMyArODgsMTMgQEAgc3RhdGljIHN0cnVjdCB0eXBl ICpkZXNjX2RhdGFfdGFyZ2V0X3R5cAorIAorIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmRlc2NfZGF0 YSAoc3RydWN0IHZhbHVlICopOworIAorLXN0YXRpYyBpbnQgZmF0X3BudHJfZGF0YV9iaXRwb3Mg KHN0cnVjdCB0eXBlICopOworK3N0YXRpYyBMT05HRVNUIGZhdF9wbnRyX2RhdGFfYml0cG9zIChz dHJ1Y3QgdHlwZSAqKTsKKyAKKyBzdGF0aWMgaW50IGZhdF9wbnRyX2RhdGFfYml0c2l6ZSAoc3Ry dWN0IHR5cGUgKik7CisgCisgc3RhdGljIHN0cnVjdCB2YWx1ZSAqZGVzY19vbmVfYm91bmQgKHN0 cnVjdCB2YWx1ZSAqLCBpbnQsIGludCk7CisgCistc3RhdGljIGludCBkZXNjX2JvdW5kX2JpdHBv cyAoc3RydWN0IHR5cGUgKiwgaW50LCBpbnQpOworK3N0YXRpYyBMT05HRVNUIGRlc2NfYm91bmRf Yml0cG9zIChzdHJ1Y3QgdHlwZSAqLCBpbnQsIGludCk7CisgCisgc3RhdGljIGludCBkZXNjX2Jv dW5kX2JpdHNpemUgKHN0cnVjdCB0eXBlICosIGludCwgaW50KTsKKyAKK0BAIC0xNzQsNyArMTc0 LDcgQEAgc3RhdGljIHN0cnVjdCB0eXBlICpzdGF0aWNfdW53cmFwX3R5cGUgKAorIAorIHN0YXRp YyBzdHJ1Y3QgdmFsdWUgKnVud3JhcF92YWx1ZSAoc3RydWN0IHZhbHVlICopOworIAorLXN0YXRp YyBzdHJ1Y3QgdHlwZSAqY29uc3RyYWluZWRfcGFja2VkX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBl ICosIGxvbmcgKik7Cisrc3RhdGljIHN0cnVjdCB0eXBlICpjb25zdHJhaW5lZF9wYWNrZWRfYXJy YXlfdHlwZSAoc3RydWN0IHR5cGUgKiwgTE9OR0VTVCAqKTsKKyAKKyBzdGF0aWMgc3RydWN0IHR5 cGUgKmRlY29kZV9jb25zdHJhaW5lZF9wYWNrZWRfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKik7 CisgCitAQCAtMTg5LDcgKzE4OSw4IEBAIHN0YXRpYyBpbnQgYWRhX2lzX3VuY29uc3RyYWluZWRf cGFja2VkX2EKKyBzdGF0aWMgc3RydWN0IHZhbHVlICp2YWx1ZV9zdWJzY3JpcHRfcGFja2VkIChz dHJ1Y3QgdmFsdWUgKiwgaW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCB2YWx1ZSAqKik7CisgCistc3RhdGljIHZvaWQgbW92ZV9iaXRzIChn ZGJfYnl0ZSAqLCBpbnQsIGNvbnN0IGdkYl9ieXRlICosIGludCwgaW50LCBpbnQpOworK3N0YXRp YyB2b2lkIG1vdmVfYml0cyAoZ2RiX2J5dGUgKiwgaW50LCBjb25zdCBnZGJfYnl0ZSAqLCBMT05H RVNULCBMT05HRVNULAorKwkJICAgICAgIGludCk7CisgCisgc3RhdGljIHN0cnVjdCB2YWx1ZSAq Y29lcmNlX3Vuc3BlY192YWxfdG9fdHlwZSAoc3RydWN0IHZhbHVlICosCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGUgKik7CitAQCAt MjE3LDE0ICsyMTgsMTQgQEAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqdmFsdWVfdmFsX2F0ciAoc3Ry dQorIHN0YXRpYyBzdHJ1Y3Qgc3ltYm9sICpzdGFuZGFyZF9sb29rdXAgKGNvbnN0IGNoYXIgKiwg Y29uc3Qgc3RydWN0IGJsb2NrICosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZG9tYWluX2VudW0pOworIAorLXN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV9zZWFyY2hf c3RydWN0X2ZpZWxkIChjaGFyICosIHN0cnVjdCB2YWx1ZSAqLCBpbnQsCisrc3RhdGljIHN0cnVj dCB2YWx1ZSAqYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNoYXIgKiwgc3RydWN0IHZhbHVlICos IExPTkdFU1QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCB0eXBlICopOworIAorLXN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV92YWx1ZV9wcmlt aXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqLCBpbnQsIGludCwKKytzdGF0aWMgc3RydWN0IHZh bHVlICphZGFfdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiwgTE9OR0VTVCwg aW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCB0eXBlICopOworIAorLXN0YXRpYyBpbnQgZmluZF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNo YXIgKiwgc3RydWN0IHR5cGUgKiwgaW50LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCB0eXBlICoqLCBpbnQgKiwgaW50ICosIGludCAqLCBpbnQgKik7Cisrc3RhdGljIGlu dCBmaW5kX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqLCBzdHJ1Y3QgdHlwZSAqLCBMT05HRVNU LAorKwkJCSAgICAgIHN0cnVjdCB0eXBlICoqLCBMT05HRVNUICosIGludCAqLCBpbnQgKiwgaW50 ICopOworIAorIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV90b19maXhlZF92YWx1ZV9jcmVhdGUg KHN0cnVjdCB0eXBlICosIENPUkVfQUREUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmFsdWUgKik7CitAQCAtMjQwLDcgKzI0MSw3IEBA IHN0YXRpYyB2b2lkIGFkYV9sYW5ndWFnZV9hcmNoX2luZm8gKHN0cnUKKyAKKyBzdGF0aWMgdm9p ZCBjaGVja19zaXplIChjb25zdCBzdHJ1Y3QgdHlwZSAqKTsKKyAKKy1zdGF0aWMgc3RydWN0IHZh bHVlICphZGFfaW5kZXhfc3RydWN0X2ZpZWxkIChpbnQsIHN0cnVjdCB2YWx1ZSAqLCBpbnQsCisr c3RhdGljIHN0cnVjdCB2YWx1ZSAqYWRhX2luZGV4X3N0cnVjdF9maWVsZCAoTE9OR0VTVCwgc3Ry dWN0IHZhbHVlICosIExPTkdFU1QsCisgCQkJCQkgICAgIHN0cnVjdCB0eXBlICopOworIAorIHN0 YXRpYyBzdHJ1Y3QgdmFsdWUgKmFzc2lnbl9hZ2dyZWdhdGUgKHN0cnVjdCB2YWx1ZSAqLCBzdHJ1 Y3QgdmFsdWUgKiwgCitAQCAtNTg2LDcgKzU4Nyw3IEBAIGNvZXJjZV91bnNwZWNfdmFsX3RvX3R5 cGUgKHN0cnVjdCB2YWx1ZQorIH0KKyAKKyBzdGF0aWMgY29uc3QgZ2RiX2J5dGUgKgorLWNvbmRf b2Zmc2V0X2hvc3QgKGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBsb25nIG9mZnNldCkKKytjb25k X29mZnNldF9ob3N0IChjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBvZmZzZXQpCisg eworICAgaWYgKHZhbGFkZHIgPT0gTlVMTCkKKyAgICAgcmV0dXJuIE5VTEw7CitAQCAtNTk1LDcg KzU5Niw3IEBAIGNvbmRfb2Zmc2V0X2hvc3QgKGNvbnN0IGdkYl9ieXRlICp2YWxhZGQKKyB9Cisg Cisgc3RhdGljIENPUkVfQUREUgorLWNvbmRfb2Zmc2V0X3RhcmdldCAoQ09SRV9BRERSIGFkZHJl c3MsIGxvbmcgb2Zmc2V0KQorK2NvbmRfb2Zmc2V0X3RhcmdldCAoQ09SRV9BRERSIGFkZHJlc3Ms IExPTkdFU1Qgb2Zmc2V0KQorIHsKKyAgIGlmIChhZGRyZXNzID09IDApCisgICAgIHJldHVybiAw OworQEAgLTE2MDEsNyArMTYwMiw3IEBAIGRlc2NfYm91bmRzIChzdHJ1Y3QgdmFsdWUgKmFycikK KyAvKiBJZiBUWVBFIGlzIHRoZSB0eXBlIG9mIGFuIGFycmF5LWRlc2NyaXB0b3IgKGZhdCBwb2lu dGVyKSwgIHRoZSBiaXQKKyAgICBwb3NpdGlvbiBvZiB0aGUgZmllbGQgY29udGFpbmluZyB0aGUg YWRkcmVzcyBvZiB0aGUgYm91bmRzIGRhdGEuICAqLworIAorLXN0YXRpYyBpbnQKKytzdGF0aWMg TE9OR0VTVAorIGZhdF9wbnRyX2JvdW5kc19iaXRwb3MgKHN0cnVjdCB0eXBlICp0eXBlKQorIHsK KyAgIHJldHVybiBUWVBFX0ZJRUxEX0JJVFBPUyAoZGVzY19iYXNlX3R5cGUgKHR5cGUpLCAxKTsK K0BAIC0xNjY3LDcgKzE2NjgsNyBAQCBkZXNjX2RhdGEgKHN0cnVjdCB2YWx1ZSAqYXJyKQorIC8q IElmIFRZUEUgaXMgdGhlIHR5cGUgb2YgYW4gYXJyYXktZGVzY3JpcHRvciAoZmF0IHBvaW50ZXIp LCB0aGUgYml0CisgICAgcG9zaXRpb24gb2YgdGhlIGZpZWxkIGNvbnRhaW5pbmcgdGhlIGFkZHJl c3Mgb2YgdGhlIGRhdGEuICAqLworIAorLXN0YXRpYyBpbnQKKytzdGF0aWMgTE9OR0VTVAorIGZh dF9wbnRyX2RhdGFfYml0cG9zIChzdHJ1Y3QgdHlwZSAqdHlwZSkKKyB7CisgICByZXR1cm4gVFlQ RV9GSUVMRF9CSVRQT1MgKGRlc2NfYmFzZV90eXBlICh0eXBlKSwgMCk7CitAQCAtMTcwMiw3ICsx NzAzLDcgQEAgZGVzY19vbmVfYm91bmQgKHN0cnVjdCB2YWx1ZSAqYm91bmRzLCBpbgorICAgIG9m IHRoZSBJdGggbG93ZXIgYm91bmQgc3RvcmVkIGluIGl0LCBpZiBXSElDSCBpcyAwLCBhbmQgdGhl IEl0aCB1cHBlcgorICAgIGJvdW5kLCBpZiBXSElDSCBpcyAxLiAgVGhlIGZpcnN0IGJvdW5kIGlz IEk9MS4gICovCisgCistc3RhdGljIGludAorK3N0YXRpYyBMT05HRVNUCisgZGVzY19ib3VuZF9i aXRwb3MgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgaSwgaW50IHdoaWNoKQorIHsKKyAgIHJldHVy biBUWVBFX0ZJRUxEX0JJVFBPUyAoZGVzY19iYXNlX3R5cGUgKHR5cGUpLCAyICogaSArIHdoaWNo IC0gMik7CitAQCAtMTg5Miw3ICsxODkzLDcgQEAgYWRhX3R5cGVfb2ZfYXJyYXkgKHN0cnVjdCB2 YWx1ZSAqYXJyLCBpbgorIAkgICAgICAgICB6ZXJvLCBhbmQgZG9lcyBub3QgbmVlZCB0byBiZSBy ZWNvbXB1dGVkLiAgKi8KKyAJICAgICAgaWYgKGxvIDwgaGkpCisgCQl7CistCQkgIGludCBhcnJh eV9iaXRzaXplID0KKysJCSAgTE9OR0VTVCBhcnJheV9iaXRzaXplID0KKyAJCSAgICAgICAgKGhp IC0gbG8gKyAxKSAqIFRZUEVfRklFTERfQklUU0laRSAoZWx0X3R5cGUsIDApOworIAorIAkJICBU WVBFX0xFTkdUSCAoYXJyYXlfdHlwZSkgPSAoYXJyYXlfYml0c2l6ZSArIDcpIC8gODsKK0BAIC0y MDQ0LDcgKzIwNDUsNyBAQCBkZWNvZGVfcGFja2VkX2FycmF5X2JpdHNpemUgKHN0cnVjdCB0eXBl CisgICAgaW4gYml0cy4gICovCisgCisgc3RhdGljIHN0cnVjdCB0eXBlICoKKy1jb25zdHJhaW5l ZF9wYWNrZWRfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsIGxvbmcgKmVsdF9iaXRzKQor K2NvbnN0cmFpbmVkX3BhY2tlZF9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VT VCAqZWx0X2JpdHMpCisgeworICAgc3RydWN0IHR5cGUgKm5ld19lbHRfdHlwZTsKKyAgIHN0cnVj dCB0eXBlICpuZXdfdHlwZTsKK0BAIC0yMDk2LDcgKzIwOTcsNyBAQCBkZWNvZGVfY29uc3RyYWlu ZWRfcGFja2VkX2FycmF5X3R5cGUgKHN0CisgICBjaGFyICpuYW1lOworICAgY29uc3QgY2hhciAq dGFpbDsKKyAgIHN0cnVjdCB0eXBlICpzaGFkb3dfdHlwZTsKKy0gIGxvbmcgYml0czsKKysgIExP TkdFU1QgYml0czsKKyAKKyAgIGlmICghcmF3X25hbWUpCisgICAgIHJhd19uYW1lID0gYWRhX3R5 cGVfbmFtZSAoZGVzY19iYXNlX3R5cGUgKHR5cGUpKTsKK0BAIC0yMTY3LDcgKzIxNjgsOCBAQCBk ZWNvZGVfY29uc3RyYWluZWRfcGFja2VkX2FycmF5IChzdHJ1Y3QKKyAgCSBhcnJheSB3aXRoIG5v IHdyYXBwZXIuICBJbiBvcmRlciB0byBpbnRlcnByZXQgdGhlIHZhbHVlIHRocm91Z2gKKyAgCSB0 aGUgKGxlZnQtanVzdGlmaWVkKSBwYWNrZWQgYXJyYXkgdHlwZSB3ZSBqdXN0IGJ1aWx0LCB3ZSBt dXN0CisgIAkgZmlyc3QgbGVmdC1qdXN0aWZ5IGl0LiAgKi8KKy0gICAgICBpbnQgYml0X3NpemUs IGJpdF9wb3M7CisrICAgICAgaW50IGJpdF9zaXplOworKyAgICAgIExPTkdFU1QgYml0X3BvczsK KyAgICAgICBVTE9OR0VTVCBtb2Q7CisgCisgICAgICAgbW9kID0gYWRhX21vZHVsdXMgKHZhbHVl X3R5cGUgKGFycikpIC0gMTsKK0BAIC0yMjY4LDE1ICsyMjcwLDE2IEBAIGhhc19uZWdhdGl2ZXMg KHN0cnVjdCB0eXBlICp0eXBlKQorIAorIHN0cnVjdCB2YWx1ZSAqCisgYWRhX3ZhbHVlX3ByaW1p dGl2ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdmFsdWUgKm9iaiwgY29uc3QgZ2RiX2J5dGUgKnZhbGFk ZHIsCistCQkJCWxvbmcgb2Zmc2V0LCBpbnQgYml0X29mZnNldCwgaW50IGJpdF9zaXplLAorKwkJ CQlMT05HRVNUIG9mZnNldCwgaW50IGJpdF9vZmZzZXQsIGludCBiaXRfc2l6ZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0eXBlICp0eXBlKQorIHsKKyAgIHN0cnVj dCB2YWx1ZSAqdjsKKy0gIGludCBzcmMsICAgICAgICAgICAgICAgICAgICAgIC8qIEluZGV4IGlu dG8gdGhlIHNvdXJjZSBhcmVhICovCistICAgIHRhcmcsICAgICAgICAgICAgICAgICAgICAgICAv KiBJbmRleCBpbnRvIHRoZSB0YXJnZXQgYXJlYSAqLworLSAgICBzcmNCaXRzTGVmdCwgICAgICAg ICAgICAgICAgLyogTnVtYmVyIG9mIHNvdXJjZSBiaXRzIGxlZnQgdG8gbW92ZSAqLworLSAgICBu c3JjLCBudGFyZywgICAgICAgICAgICAgICAgLyogTnVtYmVyIG9mIHNvdXJjZSBhbmQgdGFyZ2V0 IGJ5dGVzICovCistICAgIHVudXNlZExTLCAgICAgICAgICAgICAgICAgICAvKiBOdW1iZXIgb2Yg Yml0cyBpbiBuZXh0IHNpZ25pZmljYW50CisrICBpbnQgc3JjOyAgICAgICAgICAgICAgICAgICAg ICAvKiBJbmRleCBpbnRvIHRoZSBzb3VyY2UgYXJlYSAqLworKyAgTE9OR0VTVCB0YXJnOyAgICAg ICAgICAgICAgICAgLyogSW5kZXggaW50byB0aGUgdGFyZ2V0IGFyZWEgKi8KKysgIGludCBzcmNC aXRzTGVmdCwgICAgICAgICAgICAgIC8qIE51bWJlciBvZiBzb3VyY2UgYml0cyBsZWZ0IHRvIG1v dmUgKi8KKysgICAgbnNyYzsgICAgICAgICAgICAgICAgICAgICAgIC8qIE51bWJlciBvZiBzb3Vy Y2UgYnl0ZXMgKi8KKysgIExPTkdFU1QgbnRhcmc7ICAgICAgICAgICAgICAgIC8qIE51bWJlciBv ZiB0YXJnZXQgYnl0ZXMgKi8KKysgIGludCB1bnVzZWRMUywgICAgICAgICAgICAgICAgIC8qIE51 bWJlciBvZiBiaXRzIGluIG5leHQgc2lnbmlmaWNhbnQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJ5dGUgb2Ygc291cmNlIHRoYXQgYXJlIHVudXNlZCAqLworICAgICBhY2N1 bVNpemU7ICAgICAgICAgICAgICAgICAgLyogTnVtYmVyIG9mIG1lYW5pbmdmdWwgYml0cyBpbiBh Y2N1bSAqLworICAgdW5zaWduZWQgY2hhciAqYnl0ZXM7ICAgICAgICAgLyogRmlyc3QgYnl0ZSBj b250YWluaW5nIGRhdGEgdG8gdW5wYWNrICovCitAQCAtMjMwOSw3ICsyMzEyLDcgQEAgYWRhX3Zh bHVlX3ByaW1pdGl2ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdgorIAorICAgaWYgKG9iaiAhPSBOVUxM KQorICAgICB7CistICAgICAgbG9uZyBuZXdfb2Zmc2V0ID0gb2Zmc2V0OworKyAgICAgIExPTkdF U1QgbmV3X29mZnNldCA9IG9mZnNldDsKKyAKKyAgICAgICBzZXRfdmFsdWVfY29tcG9uZW50X2xv Y2F0aW9uICh2LCBvYmopOworICAgICAgIHNldF92YWx1ZV9iaXRwb3MgKHYsIGJpdF9vZmZzZXQg KyB2YWx1ZV9iaXRwb3MgKG9iaikpOworQEAgLTI0MjYsNyArMjQyOSw3IEBAIGFkYV92YWx1ZV9w cmltaXRpdmVfcGFja2VkX3ZhbCAoc3RydWN0IHYKKyAgICBub3Qgb3ZlcmxhcC4gICovCisgc3Rh dGljIHZvaWQKKyBtb3ZlX2JpdHMgKGdkYl9ieXRlICp0YXJnZXQsIGludCB0YXJnX29mZnNldCwg Y29uc3QgZ2RiX2J5dGUgKnNvdXJjZSwKKy0JICAgaW50IHNyY19vZmZzZXQsIGludCBuLCBpbnQg Yml0c19iaWdfZW5kaWFuX3ApCisrCSAgIExPTkdFU1Qgc3JjX29mZnNldCwgTE9OR0VTVCBuLCBp bnQgYml0c19iaWdfZW5kaWFuX3ApCisgeworICAgdW5zaWduZWQgaW50IGFjY3VtLCBtYXNrOwor ICAgaW50IGFjY3VtX2JpdHMsIGNodW5rX3NpemU7CitAQCAtMjUxNiw3ICsyNTE5LDcgQEAgYWRh X3ZhbHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0b3ZhbCwgcworICAgICB7CisgICAgICAgaW50 IGxlbiA9ICh2YWx1ZV9iaXRwb3MgKHRvdmFsKQorIAkJICsgYml0cyArIEhPU1RfQ0hBUl9CSVQg LSAxKSAvIEhPU1RfQ0hBUl9CSVQ7CistICAgICAgaW50IGZyb21fc2l6ZTsKKysgICAgICBMT05H RVNUIGZyb21fc2l6ZTsKKyAgICAgICBjaGFyICpidWZmZXIgPSAoY2hhciAqKSBhbGxvY2EgKGxl bik7CisgICAgICAgc3RydWN0IHZhbHVlICp2YWw7CisgICAgICAgQ09SRV9BRERSIHRvX2FkZHIg PSB2YWx1ZV9hZGRyZXNzICh0b3ZhbCk7CitAQCAtMjU2MSw3ICsyNTY0LDcgQEAgdmFsdWVfYXNz aWduX3RvX2NvbXBvbmVudCAoc3RydWN0IHZhbHVlCisgICAgIChMT05HRVNUKSAgKHZhbHVlX2Fk ZHJlc3MgKGNvbXBvbmVudCkgLSB2YWx1ZV9hZGRyZXNzIChjb250YWluZXIpKTsKKyAgIGludCBi aXRfb2Zmc2V0X2luX2NvbnRhaW5lciA9IAorICAgICB2YWx1ZV9iaXRwb3MgKGNvbXBvbmVudCkg LSB2YWx1ZV9iaXRwb3MgKGNvbnRhaW5lcik7CistICBpbnQgYml0czsKKysgIExPTkdFU1QgYml0 czsKKyAgIAorICAgdmFsID0gdmFsdWVfY2FzdCAodmFsdWVfdHlwZSAoY29tcG9uZW50KSwgdmFs KTsKKyAKK0BAIC00MDgxLDcgKzQwODQsNyBAQCBlbnN1cmVfbHZhbCAoc3RydWN0IHZhbHVlICp2 YWwpCisgICBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBub3RfbHZhbAorICAgICAgIHx8IFZBTFVF X0xWQUwgKHZhbCkgPT0gbHZhbF9pbnRlcm5hbHZhcikKKyAgICAgeworLSAgICAgIGludCBsZW4g PSBUWVBFX0xFTkdUSCAoYWRhX2NoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZhbCkpKTsKKysg ICAgICBMT05HRVNUIGxlbiA9IFRZUEVfTEVOR1RIIChhZGFfY2hlY2tfdHlwZWRlZiAodmFsdWVf dHlwZSAodmFsKSkpOworICAgICAgIGNvbnN0IENPUkVfQUREUiBhZGRyID0KKyAgICAgICAgIHZh bHVlX2FzX2xvbmcgKHZhbHVlX2FsbG9jYXRlX3NwYWNlX2luX2luZmVyaW9yIChsZW4pKTsKKyAK K0BAIC00MTU1LDcgKzQxNTgsNyBAQCBzdGF0aWMgQ09SRV9BRERSCisgdmFsdWVfcG9pbnRlciAo c3RydWN0IHZhbHVlICp2YWx1ZSwgc3RydWN0IHR5cGUgKnR5cGUpCisgeworICAgc3RydWN0IGdk YmFyY2ggKmdkYmFyY2ggPSBnZXRfdHlwZV9hcmNoICh0eXBlKTsKKy0gIHVuc2lnbmVkIGxlbiA9 IFRZUEVfTEVOR1RIICh0eXBlKTsKKysgIFVMT05HRVNUIGxlbiA9IFRZUEVfTEVOR1RIICh0eXBl KTsKKyAgIGdkYl9ieXRlICpidWYgPSBhbGxvY2EgKGxlbik7CisgICBDT1JFX0FERFIgYWRkcjsK KyAKK0BAIC02MDI0LDcgKzYwMjcsNyBAQCB2YWx1ZV90YWdfZnJvbV9jb250ZW50c19hbmRfYWRk cmVzcyAoc3RyCisgCQkJCSAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPUkVfQUREUiBhZGRyZXNzKQorIHsKKy0gIGlu dCB0YWdfYnl0ZV9vZmZzZXQ7CisrICBMT05HRVNUIHRhZ19ieXRlX29mZnNldDsKKyAgIHN0cnVj dCB0eXBlICp0YWdfdHlwZTsKKyAKKyAgIGlmIChmaW5kX3N0cnVjdF9maWVsZCAoIl90YWciLCB0 eXBlLCAwLCAmdGFnX3R5cGUsICZ0YWdfYnl0ZV9vZmZzZXQsCitAQCAtNjQwNyw3ICs2NDEwLDcg QEAgYWRhX2luX3ZhcmlhbnQgKExPTkdFU1QgdmFsLCBzdHJ1Y3QgdHlwZQorICAgIG9ubHkgaW4g dGhhdCBpdCBjYW4gaGFuZGxlIHBhY2tlZCB2YWx1ZXMgb2YgYXJiaXRyYXJ5IHR5cGUuICAqLwor IAorIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgorLWFkYV92YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0 cnVjdCB2YWx1ZSAqYXJnMSwgaW50IG9mZnNldCwgaW50IGZpZWxkbm8sCisrYWRhX3ZhbHVlX3By aW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcxLCBMT05HRVNUIG9mZnNldCwgaW50IGZp ZWxkbm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBl KQorIHsKKyAgIHN0cnVjdCB0eXBlICp0eXBlOworQEAgLTY0MTksNyArNjQyMiw3IEBAIGFkYV92 YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZQorIAorICAgaWYgKFRZUEVfRklFTERf QklUU0laRSAoYXJnX3R5cGUsIGZpZWxkbm8pICE9IDApCisgICAgIHsKKy0gICAgICBpbnQgYml0 X3BvcyA9IFRZUEVfRklFTERfQklUUE9TIChhcmdfdHlwZSwgZmllbGRubyk7CisrICAgICAgTE9O R0VTVCBiaXRfcG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKGFyZ190eXBlLCBmaWVsZG5vKTsKKyAg ICAgICBpbnQgYml0X3NpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKGFyZ190eXBlLCBmaWVsZG5v KTsKKyAKKyAgICAgICByZXR1cm4gYWRhX3ZhbHVlX3ByaW1pdGl2ZV9wYWNrZWRfdmFsIChhcmcx LCB2YWx1ZV9jb250ZW50cyAoYXJnMSksCitAQCAtNjQ0Niw5ICs2NDQ5LDkgQEAgYWRhX3ZhbHVl X3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlCisgICAgUmV0dXJucyAxIGlmIGZvdW5kLCAw IG90aGVyd2lzZS4gICovCisgCisgc3RhdGljIGludAorLWZpbmRfc3RydWN0X2ZpZWxkIChjb25z dCBjaGFyICpuYW1lLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IG9mZnNldCwKKytmaW5kX3N0cnVj dF9maWVsZCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHR5cGUgKnR5cGUsIExPTkdFU1Qgb2Zm c2V0LAorICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqKmZpZWxkX3R5cGVfcCwKKy0g ICAgICAgICAgICAgICAgICAgaW50ICpieXRlX29mZnNldF9wLCBpbnQgKmJpdF9vZmZzZXRfcCwg aW50ICpiaXRfc2l6ZV9wLAorKwkJICAgTE9OR0VTVCAqYnl0ZV9vZmZzZXRfcCwgaW50ICpiaXRf b2Zmc2V0X3AsIGludCAqYml0X3NpemVfcCwKKyAJCSAgIGludCAqaW5kZXhfcCkKKyB7CisgICBp bnQgaTsKK0BAIC02NDY2LDggKzY0NjksOCBAQCBmaW5kX3N0cnVjdF9maWVsZCAoY29uc3QgY2hh ciAqbmFtZSwgc3RyCisgCisgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9ORklFTERTICh0eXBlKTsg aSArPSAxKQorICAgICB7CistICAgICAgaW50IGJpdF9wb3MgPSBUWVBFX0ZJRUxEX0JJVFBPUyAo dHlwZSwgaSk7CistICAgICAgaW50IGZsZF9vZmZzZXQgPSBvZmZzZXQgKyBiaXRfcG9zIC8gODsK KysgICAgICBMT05HRVNUIGJpdF9wb3MgPSBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgaSk7Cisr ICAgICAgTE9OR0VTVCBmbGRfb2Zmc2V0ID0gb2Zmc2V0ICsgYml0X3BvcyAvIDg7CisgICAgICAg Y29uc3QgY2hhciAqdF9maWVsZF9uYW1lID0gVFlQRV9GSUVMRF9OQU1FICh0eXBlLCBpKTsKKyAK KyAgICAgICBpZiAodF9maWVsZF9uYW1lID09IE5VTEwpCitAQCAtNjUzNyw3ICs2NTQwLDcgQEAg bnVtX3Zpc2libGVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZSkKKyAgICBTZWFyY2hlcyByZWN1 cnNpdmVseSB0aHJvdWdoIHdyYXBwZXIgZmllbGRzIChlLmcuLCAnX3BhcmVudCcpLiAgKi8KKyAK KyBzdGF0aWMgc3RydWN0IHZhbHVlICoKKy1hZGFfc2VhcmNoX3N0cnVjdF9maWVsZCAoY2hhciAq bmFtZSwgc3RydWN0IHZhbHVlICphcmcsIGludCBvZmZzZXQsCisrYWRhX3NlYXJjaF9zdHJ1Y3Rf ZmllbGQgKGNoYXIgKm5hbWUsIHN0cnVjdCB2YWx1ZSAqYXJnLCBMT05HRVNUIG9mZnNldCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUpCisgeworICAgaW50IGk7 CitAQCAtNjU3MCw3ICs2NTczLDcgQEAgYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNoYXIgKm5h bWUsIHN0cgorICAgICAgICAgICBpbnQgajsKKyAgICAgICAgICAgc3RydWN0IHR5cGUgKmZpZWxk X3R5cGUgPSBhZGFfY2hlY2tfdHlwZWRlZiAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLAorIAkJCQkJ CQkJCWkpKTsKKy0gICAgICAgICAgaW50IHZhcl9vZmZzZXQgPSBvZmZzZXQgKyBUWVBFX0ZJRUxE X0JJVFBPUyAodHlwZSwgaSkgLyA4OworKwkgIExPTkdFU1QgdmFyX29mZnNldCA9IG9mZnNldCAr IFRZUEVfRklFTERfQklUUE9TICh0eXBlLCBpKSAvIDg7CisgCisgICAgICAgICAgIGZvciAoaiA9 IDA7IGogPCBUWVBFX05GSUVMRFMgKGZpZWxkX3R5cGUpOyBqICs9IDEpCisgICAgICAgICAgICAg eworQEAgLTY1ODgsOCArNjU5MSw4IEBAIGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChjaGFyICpu YW1lLCBzdHIKKyAgIHJldHVybiBOVUxMOworIH0KKyAKKy1zdGF0aWMgc3RydWN0IHZhbHVlICph ZGFfaW5kZXhfc3RydWN0X2ZpZWxkXzEgKGludCAqLCBzdHJ1Y3QgdmFsdWUgKiwKKy0JCQkJCSAg ICAgICBpbnQsIHN0cnVjdCB0eXBlICopOworK3N0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV9pbmRl eF9zdHJ1Y3RfZmllbGRfMSAoTE9OR0VTVCAqLCBzdHJ1Y3QgdmFsdWUgKiwKKysJCQkJCSAgICAg ICBMT05HRVNULCBzdHJ1Y3QgdHlwZSAqKTsKKyAKKyAKKyAvKiBSZXR1cm4gZmllbGQgI0lOREVY IGluIEFSRywgd2hlcmUgdGhlIGluZGV4IGlzIHRoYXQgcmV0dXJuZWQgYnkKK0BAIC02NTk4LDcg KzY2MDEsNyBAQCBzdGF0aWMgc3RydWN0IHZhbHVlICphZGFfaW5kZXhfc3RydWN0X2ZpCisgICog SWYgZm91bmQsIHJldHVybiB2YWx1ZSwgZWxzZSByZXR1cm4gTlVMTC4gICovCisgCisgc3RhdGlj IHN0cnVjdCB2YWx1ZSAqCistYWRhX2luZGV4X3N0cnVjdF9maWVsZCAoaW50IGluZGV4LCBzdHJ1 Y3QgdmFsdWUgKmFyZywgaW50IG9mZnNldCwKKythZGFfaW5kZXhfc3RydWN0X2ZpZWxkIChMT05H RVNUIGluZGV4LCBzdHJ1Y3QgdmFsdWUgKmFyZywgTE9OR0VTVCBvZmZzZXQsCisgCQkJc3RydWN0 IHR5cGUgKnR5cGUpCisgeworICAgcmV0dXJuIGFkYV9pbmRleF9zdHJ1Y3RfZmllbGRfMSAoJmlu ZGV4LCBhcmcsIG9mZnNldCwgdHlwZSk7CitAQCAtNjYxMCw3ICs2NjEzLDcgQEAgYWRhX2luZGV4 X3N0cnVjdF9maWVsZCAoaW50IGluZGV4LCBzdHJ1YworICAqICpJTkRFWF9QLiAgKi8KKyAKKyBz dGF0aWMgc3RydWN0IHZhbHVlICoKKy1hZGFfaW5kZXhfc3RydWN0X2ZpZWxkXzEgKGludCAqaW5k ZXhfcCwgc3RydWN0IHZhbHVlICphcmcsIGludCBvZmZzZXQsCisrYWRhX2luZGV4X3N0cnVjdF9m aWVsZF8xIChMT05HRVNUICppbmRleF9wLCBzdHJ1Y3QgdmFsdWUgKmFyZywgTE9OR0VTVCBvZmZz ZXQsCisgCQkJICBzdHJ1Y3QgdHlwZSAqdHlwZSkKKyB7CisgICBpbnQgaTsKK0BAIC02NzAwLDcg KzY3MDMsOCBAQCBhZGFfdmFsdWVfc3RydWN0X2VsdCAoc3RydWN0IHZhbHVlICphcmcsCisgICAg IHYgPSBhZGFfc2VhcmNoX3N0cnVjdF9maWVsZCAobmFtZSwgYXJnLCAwLCB0KTsKKyAgIGVsc2UK KyAgICAgeworLSAgICAgIGludCBiaXRfb2Zmc2V0LCBiaXRfc2l6ZSwgYnl0ZV9vZmZzZXQ7Cisr ICAgICAgaW50IGJpdF9vZmZzZXQsIGJpdF9zaXplOworKyAgICAgIExPTkdFU1QgYnl0ZV9vZmZz ZXQ7CisgICAgICAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGU7CisgICAgICAgQ09SRV9BRERSIGFk ZHJlc3M7CisgCitAQCAtNzAwNiw4ICs3MDEwLDggQEAgYWRhX2NvZXJjZV9yZWYgKHN0cnVjdCB2 YWx1ZSAqdmFsMCkKKyAvKiBSZXR1cm4gT0ZGIHJvdW5kZWQgdXB3YXJkIGlmIG5lY2Vzc2FyeSB0 byBhIG11bHRpcGxlIG9mCisgICAgQUxJR05NRU5UIChhIHBvd2VyIG9mIDIpLiAgKi8KKyAKKy1z dGF0aWMgdW5zaWduZWQgaW50CistYWxpZ25fdmFsdWUgKHVuc2lnbmVkIGludCBvZmYsIHVuc2ln bmVkIGludCBhbGlnbm1lbnQpCisrc3RhdGljIFVMT05HRVNUCisrYWxpZ25fdmFsdWUgKFVMT05H RVNUIG9mZiwgVUxPTkdFU1QgYWxpZ25tZW50KQorIHsKKyAgIHJldHVybiAob2ZmICsgYWxpZ25t ZW50IC0gMSkgJiB+KGFsaWdubWVudCAtIDEpOworIH0KK0BAIC03Mzg2LDEwICs3MzkwLDkgQEAg YWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgorICAgc3RydWN0IHZhbHVl ICptYXJrID0gdmFsdWVfbWFyayAoKTsKKyAgIHN0cnVjdCB2YWx1ZSAqZHZhbDsKKyAgIHN0cnVj dCB0eXBlICpydHlwZTsKKy0gIGludCBuZmllbGRzLCBiaXRfbGVuOworKyAgaW50IG5maWVsZHM7 CisgICBpbnQgdmFyaWFudF9maWVsZDsKKy0gIGxvbmcgb2ZmOworLSAgaW50IGZsZF9iaXRfbGVu OworKyAgTE9OR0VTVCBvZmYsIGJpdF9sZW4sIGZsZF9iaXRfbGVuOworICAgaW50IGY7CisgCisg ICAvKiBDb21wdXRlIHRoZSBudW1iZXIgb2YgZmllbGRzIGluIHRoaXMgcmVjb3JkIHR5cGUgdGhh dCBhcmUgZ29pbmcKK0BAIC03NDYwLDcgKzc0NjMsNyBAQCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRf cmVjb3JkX3R5cGVfMSAoc3RyCisgCSAgICAgdGhhdCBmb2xsb3cgdGhpcyBvbmUuICAqLworIAkg IGlmIChhZGFfaXNfYWxpZ25lcl90eXBlIChmaWVsZF90eXBlKSkKKyAJICAgIHsKKy0JICAgICAg bG9uZyBmaWVsZF9vZmZzZXQgPSBUWVBFX0ZJRUxEX0JJVFBPUyAoZmllbGRfdHlwZSwgZik7Cisr CSAgICAgIExPTkdFU1QgZmllbGRfb2Zmc2V0ID0gVFlQRV9GSUVMRF9CSVRQT1MgKGZpZWxkX3R5 cGUsIGYpOworIAorIAkgICAgICBmaWVsZF92YWxhZGRyID0gY29uZF9vZmZzZXRfaG9zdCAoZmll bGRfdmFsYWRkciwgZmllbGRfb2Zmc2V0KTsKKyAJICAgICAgZmllbGRfYWRkcmVzcyA9IGNvbmRf b2Zmc2V0X3RhcmdldCAoZmllbGRfYWRkcmVzcywgZmllbGRfb2Zmc2V0KTsKK0BAIC03NTc5LDEx ICs3NTgyLDExIEBAIGFkYV90ZW1wbGF0ZV90b19maXhlZF9yZWNvcmRfdHlwZV8xIChzdHIKKyAg IGlmIChUWVBFX0xFTkdUSCAodHlwZSkgPD0gMCkKKyAgICAgeworICAgICAgIGlmIChUWVBFX05B TUUgKHJ0eXBlKSkKKy0Jd2FybmluZyAoXygiSW52YWxpZCB0eXBlIHNpemUgZm9yIGAlcycgZGV0 ZWN0ZWQ6ICVkLiIpLAorLQkJIFRZUEVfTkFNRSAocnR5cGUpLCBUWVBFX0xFTkdUSCAodHlwZSkp OworKwl3YXJuaW5nIChfKCJJbnZhbGlkIHR5cGUgc2l6ZSBmb3IgYCVzJyBkZXRlY3RlZDogJXMu IiksCisrCQkgVFlQRV9OQU1FIChydHlwZSksIHB1bG9uZ2VzdCAoVFlQRV9MRU5HVEggKHR5cGUp KSk7CisgICAgICAgZWxzZQorLQl3YXJuaW5nIChfKCJJbnZhbGlkIHR5cGUgc2l6ZSBmb3IgPHVu bmFtZWQ+IGRldGVjdGVkOiAlZC4iKSwKKy0JCSBUWVBFX0xFTkdUSCAodHlwZSkpOworKwl3YXJu aW5nIChfKCJJbnZhbGlkIHR5cGUgc2l6ZSBmb3IgPHVubmFtZWQ+IGRldGVjdGVkOiAlcy4iKSwK KysJCSBwdWxvbmdlc3QgKFRZUEVfTEVOR1RIICh0eXBlKSkpOworICAgICB9CisgICBlbHNlCisg ICAgIHsKK0BAIC03OTIwLDcgKzc5MjMsOCBAQCB0b19maXhlZF9hcnJheV90eXBlIChzdHJ1Y3Qg dHlwZSAqdHlwZTAsCisgCSB0eXBlIHdhcyBhIHJlZ3VsYXIgKG5vbi1wYWNrZWQpIGFycmF5IHR5 cGUuICBBcyBhIHJlc3VsdCwgdGhlCisgCSBiaXRzaXplIG9mIHRoZSBhcnJheSBlbGVtZW50cyBu ZWVkcyB0byBiZSBzZXQgYWdhaW4sIGFuZCB0aGUgYXJyYXkKKyAJIGxlbmd0aCBuZWVkcyB0byBi ZSByZWNvbXB1dGVkIGJhc2VkIG9uIHRoYXQgYml0c2l6ZS4gICovCistICAgICAgaW50IGxlbiA9 IFRZUEVfTEVOR1RIIChyZXN1bHQpIC8gVFlQRV9MRU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKHJl c3VsdCkpOworKyAgICAgIExPTkdFU1QgbGVuID0gKFRZUEVfTEVOR1RIIChyZXN1bHQpCisrCQkg ICAgIC8gVFlQRV9MRU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKHJlc3VsdCkpKTsKKyAgICAgICBp bnQgZWx0X2JpdHNpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUwLCAwKTsKKyAKKyAgICAg ICBUWVBFX0ZJRUxEX0JJVFNJWkUgKHJlc3VsdCwgMCkgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5 cGUwLCAwKTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2FkYS1sYW5nLmgKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvYWRhLWxhbmcuaAkyMDEyLTAz LTI5IDIwOjIzOjAwLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIv YWRhLWxhbmcuaAkyMDEyLTExLTA3IDIyOjA5OjI5LjY2OTE0MTAzNSArMDEwMAorQEAgLTE2OCw3 ICsxNjgsNyBAQCBleHRlcm4gdm9pZCBhZGFfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUKKyBleHRl cm4gdm9pZCBhZGFfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBzeW1i b2wgKm5ld19zeW1ib2wsCisgCQkJICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pOworIAor LWV4dGVybiB2b2lkIGFkYV92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRl ICosIGludCwgQ09SRV9BRERSLAorK2V4dGVybiB2b2lkIGFkYV92YWxfcHJpbnQgKHN0cnVjdCB0 eXBlICosIGNvbnN0IGdkYl9ieXRlICosIExPTkdFU1QsIENPUkVfQUREUiwKKyAJCQkgICBzdHJ1 Y3QgdWlfZmlsZSAqLCBpbnQsCisgCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlICosCisgCQkJICAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7CitAQCAtMTgzLDcgKzE4Myw3IEBA IGV4dGVybiB2b2lkIGFkYV9lbWl0X2NoYXIgKGludCwgc3RydWN0IHQKKyBleHRlcm4gdm9pZCBh ZGFfcHJpbnRjaGFyIChpbnQsIHN0cnVjdCB0eXBlICosIHN0cnVjdCB1aV9maWxlICopOworIAor IGV4dGVybiB2b2lkIGFkYV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKiwgc3RydWN0IHR5cGUg KiwgY29uc3QgZ2RiX2J5dGUgKiwKKy0JCQkgIHVuc2lnbmVkIGludCwgY29uc3QgY2hhciAqLCBp bnQsCisrCQkJICBVTE9OR0VTVCwgY29uc3QgY2hhciAqLCBpbnQsCisgCQkJICBjb25zdCBzdHJ1 Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKKyAKKyBzdHJ1Y3QgdmFsdWUgKmFkYV9jb252ZXJ0 X2FjdHVhbCAoc3RydWN0IHZhbHVlICphY3R1YWwsCitAQCAtMjU3LDcgKzI1Nyw3IEBAIGV4dGVy biBpbnQgYWRhX2lzX2NvbnN0cmFpbmVkX3BhY2tlZF9hcnIKKyAKKyBleHRlcm4gc3RydWN0IHZh bHVlICphZGFfdmFsdWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKHN0cnVjdCB2YWx1ZSAqLAorIAkJ CQkJCSAgICAgY29uc3QgZ2RiX2J5dGUgKiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcsIGludCwgaW50LAorKwkJCQkJCSAgICAgTE9O R0VTVCwgaW50LCBpbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqKTsKKyAKKyBleHRlcm4gc3RydWN0IHR5cGUgKmFk YV9jb2VyY2VfdG9fc2ltcGxlX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICopOworSW5kZXg6IGdk Yi03LjUuMC4yMDEyMDkyNi9nZGIvYWRhLXR5cGVwcmludC5jCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2Ri LTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDEyLTA0LTE4IDA4OjQ2 OjQ2LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvYWRhLXR5cGVw cmludC5jCTIwMTItMTEtMDcgMjI6MDk6MjkuNzA1MTQwOTgyICswMTAwCitAQCAtODE1LDggKzgx NSw4IEBAIGFkYV9wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZTAsIGNvbnMKKyAJICAgIGNv bnN0IGNoYXIgKm5hbWUgPSBhZGFfdHlwZV9uYW1lICh0eXBlKTsKKyAKKyAJICAgIGlmICghYWRh X2lzX3JhbmdlX3R5cGVfbmFtZSAobmFtZSkpCistCSAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0 cmVhbSwgXygiPCVkLWJ5dGUgaW50ZWdlcj4iKSwKKy0JCQkJVFlQRV9MRU5HVEggKHR5cGUpKTsK KysJICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCBfKCI8JXMtYnl0ZSBpbnRlZ2VyPiIp LAorKwkJCQlwdWxvbmdlc3QgKFRZUEVfTEVOR1RIICh0eXBlKSkpOworIAkgICAgZWxzZQorIAkg ICAgICB7CisgCQlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICJyYW5nZSAiKTsKK0BAIC04Mzcs NyArODM3LDggQEAgYWRhX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlMCwgY29ucworIAkg IH0KKyAJYnJlYWs7CisgICAgICAgY2FzZSBUWVBFX0NPREVfRkxUOgorLQlmcHJpbnRmX2ZpbHRl cmVkIChzdHJlYW0sIF8oIjwlZC1ieXRlIGZsb2F0PiIpLCBUWVBFX0xFTkdUSCAodHlwZSkpOwor KwlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sIF8oIjwlcy1ieXRlIGZsb2F0PiIpLAorKwkJCSAg cHVsb25nZXN0IChUWVBFX0xFTkdUSCAodHlwZSkpKTsKKyAJYnJlYWs7CisgICAgICAgY2FzZSBU WVBFX0NPREVfRU5VTToKKyAJaWYgKHNob3cgPCAwKQorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDky Ni9nZGIvYWRhLXZhbHByaW50LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYu b3JpZy9nZGIvYWRhLXZhbHByaW50LmMJMjAxMi0xMS0wNyAyMjowMzo1Ny4wMDAwMDAwMDAgKzAx MDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2FkYS12YWxwcmludC5jCTIwMTItMTEtMDcg MjI6MDk6MjkuNzMxMTQwOTQzICswMTAwCitAQCAtNDIsMTYgKzQyLDE2IEBAIHN0YXRpYyB2b2lk IHByaW50X3JlY29yZCAoc3RydWN0IHR5cGUgKiwKKyAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICopOworIAorIHN0YXRpYyBpbnQgcHJpbnRfZmllbGRfdmFsdWVzIChzdHJ1 Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLAorLQkJCSAgICAgICBpbnQsCisrCQkJICAgICAg IExPTkdFU1QsCisgCQkJICAgICAgIHN0cnVjdCB1aV9maWxlICosIGludCwKKyAJCQkgICAgICAg Y29uc3Qgc3RydWN0IHZhbHVlICosCisgCQkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICosCistCQkJICAgICAgIGludCwgc3RydWN0IHR5cGUgKiwgaW50KTsKKysJCQkg ICAgICAgaW50LCBzdHJ1Y3QgdHlwZSAqLCBMT05HRVNUKTsKKyAKKyBzdGF0aWMgdm9pZCBhZGp1 c3RfdHlwZV9zaWduZWRuZXNzIChzdHJ1Y3QgdHlwZSAqKTsKKyAKKy1zdGF0aWMgdm9pZCBhZGFf dmFsX3ByaW50XzEgKHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosIGludCwgQ09SRV9B RERSLAorLQkJCSAgICAgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAorK3N0YXRpYyB2b2lkIGFkYV92 YWxfcHJpbnRfMSAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwgTE9OR0VTVCwKKysJ CQkgICAgIENPUkVfQUREUiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAorIAkJCSAgICAgY29uc3Qg c3RydWN0IHZhbHVlICosCisgCQkJICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyAqKTsKKyAMCitAQCAtMTQ0LDcgKzE0NCw3IEBAIHZhbF9wcmludF9wYWNrZWRfYXJyYXlfZWxl bWVudHMgKHN0cnVjdAorICAgdW5zaWduZWQgaW50IHRoaW5nc19wcmludGVkID0gMDsKKyAgIHVu c2lnbmVkIGxlbjsKKyAgIHN0cnVjdCB0eXBlICplbHR0eXBlLCAqaW5kZXhfdHlwZTsKKy0gIHVu c2lnbmVkIGVsdGxlbjsKKysgIFVMT05HRVNUIGVsdGxlbjsKKyAgIHVuc2lnbmVkIGxvbmcgYml0 c2l6ZSA9IFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgMCk7CisgICBzdHJ1Y3QgdmFsdWUgKm1h cmsgPSB2YWx1ZV9tYXJrICgpOworICAgTE9OR0VTVCBsb3cgPSAwOworQEAgLTI5Myw3ICsyOTMs NyBAQCBhZGFfZW1pdF9jaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5cGUsCisgICAgb2YgYSBj aGFyYWN0ZXIuICAqLworIAorIHN0YXRpYyBpbnQKKy1jaGFyX2F0IChjb25zdCBnZGJfYnl0ZSAq c3RyaW5nLCBpbnQgaSwgaW50IHR5cGVfbGVuLAorK2NoYXJfYXQgKGNvbnN0IGdkYl9ieXRlICpz dHJpbmcsIExPTkdFU1QgaSwgaW50IHR5cGVfbGVuLAorIAkgZW51bSBiZmRfZW5kaWFuIGJ5dGVf b3JkZXIpCisgeworICAgaWYgKHR5cGVfbGVuID09IDEpCitAQCAtNDY1LDExICs0NjUsMTEgQEAg YWRhX3ByaW50X3NjYWxhciAoc3RydWN0IHR5cGUgKnR5cGUsIExPTgorIAorIHN0YXRpYyB2b2lk CisgcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICplbHR0eXBl LCBjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLAorLQkgIHVuc2lnbmVkIGludCBsZW5ndGgsIGludCBm b3JjZV9lbGxpcHNlcywgaW50IHR5cGVfbGVuLAorKwkgIFVMT05HRVNUIGxlbmd0aCwgaW50IGZv cmNlX2VsbGlwc2VzLCBpbnQgdHlwZV9sZW4sCisgCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50 X29wdGlvbnMgKm9wdGlvbnMpCisgeworICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBn ZGJhcmNoX2J5dGVfb3JkZXIgKGdldF90eXBlX2FyY2ggKGVsdHR5cGUpKTsKKy0gIHVuc2lnbmVk IGludCBpOworKyAgVUxPTkdFU1QgaTsKKyAgIHVuc2lnbmVkIGludCB0aGluZ3NfcHJpbnRlZCA9 IDA7CisgICBpbnQgaW5fcXVvdGVzID0gMDsKKyAgIGludCBuZWVkX2NvbW1hID0gMDsKK0BAIC00 ODQsOSArNDg0LDkgQEAgcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdAor ICAgICB7CisgICAgICAgLyogUG9zaXRpb24gb2YgdGhlIGNoYXJhY3RlciB3ZSBhcmUgZXhhbWlu aW5nCisgICAgICAgICAgdG8gc2VlIHdoZXRoZXIgaXQgaXMgcmVwZWF0ZWQuICAqLworLSAgICAg IHVuc2lnbmVkIGludCByZXAxOworKyAgICAgIFVMT05HRVNUIHJlcDE7CisgICAgICAgLyogTnVt YmVyIG9mIHJlcGV0aXRpb25zIHdlIGhhdmUgZGV0ZWN0ZWQgc28gZmFyLiAgKi8KKy0gICAgICB1 bnNpZ25lZCBpbnQgcmVwczsKKysgICAgICBVTE9OR0VTVCByZXBzOworIAorICAgICAgIFFVSVQ7 CisgCitAQCAtNTIwLDcgKzUyMCw4IEBAIHByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LCBzdHJ1Y3QKKyAJICBhZGFfZW1pdF9jaGFyIChjaGFyX2F0IChzdHJpbmcsIGksIHR5cGVfbGVu LCBieXRlX29yZGVyKSwKKyAJCQkgZWx0dHlwZSwgc3RyZWFtLCAnXCcnLCB0eXBlX2xlbik7Cisg CSAgZnB1dHNfZmlsdGVyZWQgKCInIiwgc3RyZWFtKTsKKy0JICBmcHJpbnRmX2ZpbHRlcmVkIChz dHJlYW0sIF8oIiA8cmVwZWF0cyAldSB0aW1lcz4iKSwgcmVwcyk7CisrCSAgZnByaW50Zl9maWx0 ZXJlZCAoc3RyZWFtLCBfKCIgPHJlcGVhdHMgJXMgdGltZXM+IiksCisrCQkJICAgIHB1bG9uZ2Vz dCAocmVwcykpOworIAkgIGkgPSByZXAxIC0gMTsKKyAJICB0aGluZ3NfcHJpbnRlZCArPSBvcHRp b25zLT5yZXBlYXRfY291bnRfdGhyZXNob2xkOworIAkgIG5lZWRfY29tbWEgPSAxOworQEAgLTU1 Niw3ICs1NTcsNyBAQCBwcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0Cisg Cisgdm9pZAorIGFkYV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5 cGUgKnR5cGUsCistCSAgICAgIGNvbnN0IGdkYl9ieXRlICpzdHJpbmcsIHVuc2lnbmVkIGludCBs ZW5ndGgsCisrCSAgICAgIGNvbnN0IGdkYl9ieXRlICpzdHJpbmcsIFVMT05HRVNUIGxlbmd0aCwK KyAJICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKKyAJICAg ICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCisgeworQEAgLTU3 MCw3ICs1NzEsNyBAQCBhZGFfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0Cisg Cisgdm9pZAorIGFkYV92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0 ZSAqdmFsYWRkciwKKy0JICAgICAgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRy ZXNzLAorKwkgICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNz LAorIAkgICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCisgCSAgICAg ICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICpvcHRpb25zKQorQEAgLTYwMiw4ICs2MDMsOCBAQCBhZGFfdmFsX3ByaW50 X2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwKKyAgICAgeworICAgICAgIGVudW0gYmZkX2VuZGlh biBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZXRfdHlwZV9hcmNoICh0eXBlKSk7 CisgICAgICAgc3RydWN0IHR5cGUgKmVsdHR5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0eXBlKTsK Ky0gICAgICB1bnNpZ25lZCBpbnQgZWx0bGVuOworLSAgICAgIHVuc2lnbmVkIGludCBsZW47Cisr ICAgICAgVUxPTkdFU1QgZWx0bGVuOworKyAgICAgIFVMT05HRVNUIGxlbjsKKyAKKyAgICAgICAv KiBXZSBrbm93IHRoYXQgRUxUVFlQRSBjYW5ub3QgcG9zc2libHkgYmUgbnVsbCwgYmVjYXVzZSB3 ZSBmb3VuZAorIAkgdGhhdCBUWVBFIGlzIGEgc3RyaW5nLWxpa2UgdHlwZS4gIFNpbWlsYXJseSwg dGhlIHNpemUgb2YgRUxUVFlQRQorQEAgLTYyMSw3ICs2MjIsNyBAQCBhZGFfdmFsX3ByaW50X2Fy cmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwKKyAgICAgICAgICBlbGVtZW50cyB1cCB0byBpdC4gICov CisgICAgICAgaWYgKG9wdGlvbnMtPnN0b3BfcHJpbnRfYXRfbnVsbCkKKyAgICAgICAgIHsKKy0g ICAgICAgICAgaW50IHRlbXBfbGVuOworKyAgICAgICAgICBMT05HRVNUIHRlbXBfbGVuOworIAor ICAgICAgICAgICAvKiBMb29rIGZvciBhIE5VTEwgY2hhci4gICovCisgICAgICAgICAgIGZvciAo dGVtcF9sZW4gPSAwOworQEAgLTY1NCw3ICs2NTUsNyBAQCBhZGFfdmFsX3ByaW50X2FycmF5IChz dHJ1Y3QgdHlwZSAqdHlwZSwKKyAKKyBzdGF0aWMgdm9pZAorIGFkYV92YWxfcHJpbnRfMSAoc3Ry dWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJIGludCBvZmZzZXQs IENPUkVfQUREUiBhZGRyZXNzLAorKwkJIExPTkdFU1Qgb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVz cywKKyAJCSBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKyAJCSBjb25zdCBz dHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAorIAkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICpvcHRpb25zKQorQEAgLTkyMywxMiArOTI0LDEyIEBAIGFkYV92YWxfcHJpbnRf MSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnMKKyAKKyBzdGF0aWMgaW50CisgcHJpbnRfdmFyaWFu dF9wYXJ0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGZpZWxkX251bSwKKy0JCSAgICBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwgaW50IG9mZnNldCwKKysJCSAgICBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwgTE9OR0VTVCBvZmZzZXQsCisgCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50 IHJlY3Vyc2UsCisgCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCisgCQkgICAgY29uc3Qg c3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCisgCQkgICAgaW50IGNvbW1hX25l ZWRlZCwKKy0JCSAgICBzdHJ1Y3QgdHlwZSAqb3V0ZXJfdHlwZSwgaW50IG91dGVyX29mZnNldCkK KysJCSAgICBzdHJ1Y3QgdHlwZSAqb3V0ZXJfdHlwZSwgTE9OR0VTVCBvdXRlcl9vZmZzZXQpCisg eworICAgc3RydWN0IHR5cGUgKnZhcl90eXBlID0gVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBmaWVs ZF9udW0pOworICAgaW50IHdoaWNoID0gYWRhX3doaWNoX3ZhcmlhbnRfYXBwbGllcyAodmFyX3R5 cGUsIG91dGVyX3R5cGUsCitAQCAtMTAzNSwxMSArMTAzNiwxMSBAQCBwcmludF9yZWNvcmQgKHN0 cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnCisgCisgc3RhdGljIGludAorIHByaW50X2ZpZWxkX3Zh bHVlcyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJICAg IGludCBvZmZzZXQsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorKwkJICAg IExPTkdFU1Qgb2Zmc2V0LCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKyAJ CSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKKyAJCSAgICBpbnQgY29tbWFfbmVlZGVkLAorLQkJICAg IHN0cnVjdCB0eXBlICpvdXRlcl90eXBlLCBpbnQgb3V0ZXJfb2Zmc2V0KQorKwkJICAgIHN0cnVj dCB0eXBlICpvdXRlcl90eXBlLCBMT05HRVNUIG91dGVyX29mZnNldCkKKyB7CisgICBpbnQgaSwg bGVuOworIAorQEAgLTExMjAsNyArMTEyMSw3IEBAIHByaW50X2ZpZWxkX3ZhbHVlcyAoc3RydWN0 IHR5cGUgKnR5cGUsIGMKKyAJICAgIH0KKyAJICBlbHNlCisgCSAgICB7CistCSAgICAgIGludCBi aXRfcG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGkpOworKwkgICAgICBMT05HRVNUIGJp dF9wb3MgPSBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgaSk7CisgCSAgICAgIGludCBiaXRfc2l6 ZSA9IFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgaSk7CisgCSAgICAgIHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zIG9wdHM7CisgCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9hbm5v dGF0ZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2Fubm90 YXRlLmMJMjAxMi0wMS0wNCAwOToxNjo1Ni4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAu MjAxMjA5MjYvZ2RiL2Fubm90YXRlLmMJMjAxMi0xMS0wNyAyMjowOToyOS43MzIxNDA5NDIgKzAx MDAKK0BAIC01MjIsMjEgKzUyMiwyMSBAQCBhbm5vdGF0ZV9mcmFtZV9lbmQgKHZvaWQpCisgfQor IAwKKyB2b2lkCistYW5ub3RhdGVfYXJyYXlfc2VjdGlvbl9iZWdpbiAoaW50IGlkeCwgc3RydWN0 IHR5cGUgKmVsdHR5cGUpCisrYW5ub3RhdGVfYXJyYXlfc2VjdGlvbl9iZWdpbiAoTE9OR0VTVCBp ZHgsIHN0cnVjdCB0eXBlICplbHR0eXBlKQorIHsKKyAgIGlmIChhbm5vdGF0aW9uX2xldmVsID09 IDIpCisgICAgIHsKKy0gICAgICBwcmludGZfZmlsdGVyZWQgKCgiXG5cMDMyXDAzMmFycmF5LXNl Y3Rpb24tYmVnaW4gJWQgIiksIGlkeCk7CisrICAgICAgcHJpbnRmX2ZpbHRlcmVkICgoIlxuXDAz MlwwMzJhcnJheS1zZWN0aW9uLWJlZ2luICVzICIpLCBwbG9uZ2VzdCAoaWR4KSk7CisgICAgICAg cHJpbnRfdmFsdWVfZmxhZ3MgKGVsdHR5cGUpOworICAgICAgIHByaW50Zl9maWx0ZXJlZCAoKCJc biIpKTsKKyAgICAgfQorIH0KKyAKKyB2b2lkCistYW5ub3RhdGVfZWx0X3JlcCAodW5zaWduZWQg aW50IHJlcGNvdW50KQorK2Fubm90YXRlX2VsdF9yZXAgKFVMT05HRVNUIHJlcGNvdW50KQorIHsK KyAgIGlmIChhbm5vdGF0aW9uX2xldmVsID09IDIpCistICAgIHByaW50Zl9maWx0ZXJlZCAoKCJc blwwMzJcMDMyZWx0LXJlcCAldVxuIiksIHJlcGNvdW50KTsKKysgICAgcHJpbnRmX2ZpbHRlcmVk ICgoIlxuXDAzMlwwMzJlbHQtcmVwICVzXG4iKSwgcHVsb25nZXN0IChyZXBjb3VudCkpOworIH0K KyAKKyB2b2lkCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9hbm5vdGF0ZS5oCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2Fubm90YXRlLmgJMjAxMi0w MS0wNCAwOToxNjo1Ni4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2Ri L2Fubm90YXRlLmgJMjAxMi0xMS0wNyAyMjowOToyOS43MzMxNDA5NDEgKzAxMDAKK0BAIC05NCw4 ICs5NCw4IEBAIGV4dGVybiB2b2lkIGFubm90YXRlX2ZyYW1lX3NvdXJjZV9lbmQgKHYKKyBleHRl cm4gdm9pZCBhbm5vdGF0ZV9mcmFtZV93aGVyZSAodm9pZCk7CisgZXh0ZXJuIHZvaWQgYW5ub3Rh dGVfZnJhbWVfZW5kICh2b2lkKTsKKyAKKy1leHRlcm4gdm9pZCBhbm5vdGF0ZV9hcnJheV9zZWN0 aW9uX2JlZ2luIChpbnQsIHN0cnVjdCB0eXBlICopOworLWV4dGVybiB2b2lkIGFubm90YXRlX2Vs dF9yZXAgKHVuc2lnbmVkIGludCk7CisrZXh0ZXJuIHZvaWQgYW5ub3RhdGVfYXJyYXlfc2VjdGlv bl9iZWdpbiAoTE9OR0VTVCwgc3RydWN0IHR5cGUgKik7CisrZXh0ZXJuIHZvaWQgYW5ub3RhdGVf ZWx0X3JlcCAoVUxPTkdFU1QpOworIGV4dGVybiB2b2lkIGFubm90YXRlX2VsdF9yZXBfZW5kICh2 b2lkKTsKKyBleHRlcm4gdm9pZCBhbm5vdGF0ZV9lbHQgKHZvaWQpOworIGV4dGVybiB2b2lkIGFu bm90YXRlX2FycmF5X3NlY3Rpb25fZW5kICh2b2lkKTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5 MjYvZ2RiL2FybS1saW51eC1uYXQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDky Ni5vcmlnL2dkYi9hcm0tbGludXgtbmF0LmMJMjAxMi0wOC0wMSAxNDo1NzowNi4wMDAwMDAwMDAg KzAyMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2FybS1saW51eC1uYXQuYwkyMDEyLTEx LTA3IDIyOjA5OjI5LjczNDE0MDk0MCArMDEwMAorQEAgLTEwNzMsNyArMTA3Myw3IEBAIGFybV9s aW51eF9yZW1vdmVfaHdfYnJlYWtwb2ludCAoc3RydWN0IGcKKyAvKiBBcmUgd2UgYWJsZSB0byB1 c2UgYSBoYXJkd2FyZSB3YXRjaHBvaW50IGZvciB0aGUgTEVOIGJ5dGVzIHN0YXJ0aW5nIGF0IAor ICAgIEFERFI/ICAqLworIHN0YXRpYyBpbnQKKy1hcm1fbGludXhfcmVnaW9uX29rX2Zvcl9od193 YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbikKKythcm1fbGludXhfcmVnaW9uX29r X2Zvcl9od193YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgTE9OR0VTVCBsZW4pCisgeworICAg Y29uc3Qgc3RydWN0IGFybV9saW51eF9od2JwX2NhcCAqY2FwID0gYXJtX2xpbnV4X2dldF9od2Jw X2NhcCAoKTsKKyAgIENPUkVfQUREUiBtYXhfd3BfbGVuZ3RoLCBhbGlnbmVkX2FkZHI7CitJbmRl eDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9heC1nZGIuYworPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03 LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9heC1nZGIuYwkyMDEyLTExLTA3IDIyOjAzOjU3LjAwMDAw MDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvYXgtZ2RiLmMJMjAxMi0xMS0w NyAyMjowOToyOS43MzYxNDA5MzggKzAxMDAKK0BAIC04NCwxMiArODQsMTIgQEAgc3RhdGljIHZv aWQgZ2VuX3RyYWNlZF9wb3AgKHN0cnVjdCBnZGJhcgorIHN0YXRpYyB2b2lkIGdlbl9zaWduX2V4 dGVuZCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7Cisgc3RhdGljIHZvaWQg Z2VuX2V4dGVuZCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7Cisgc3RhdGlj IHZvaWQgZ2VuX2ZldGNoIChzdHJ1Y3QgYWdlbnRfZXhwciAqLCBzdHJ1Y3QgdHlwZSAqKTsKKy1z dGF0aWMgdm9pZCBnZW5fbGVmdF9zaGlmdCAoc3RydWN0IGFnZW50X2V4cHIgKiwgaW50KTsKKytz dGF0aWMgdm9pZCBnZW5fbGVmdF9zaGlmdCAoc3RydWN0IGFnZW50X2V4cHIgKiwgTE9OR0VTVCk7 CisgCisgCisgc3RhdGljIHZvaWQgZ2VuX2ZyYW1lX2FyZ3NfYWRkcmVzcyAoc3RydWN0IGdkYmFy Y2ggKiwgc3RydWN0IGFnZW50X2V4cHIgKik7Cisgc3RhdGljIHZvaWQgZ2VuX2ZyYW1lX2xvY2Fs c19hZGRyZXNzIChzdHJ1Y3QgZ2RiYXJjaCAqLCBzdHJ1Y3QgYWdlbnRfZXhwciAqKTsKKy1zdGF0 aWMgdm9pZCBnZW5fb2Zmc2V0IChzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsIGludCBvZmZzZXQpOwor K3N0YXRpYyB2b2lkIGdlbl9vZmZzZXQgKHN0cnVjdCBhZ2VudF9leHByICpheCwgTE9OR0VTVCBv ZmZzZXQpOworIHN0YXRpYyB2b2lkIGdlbl9zeW1fb2Zmc2V0IChzdHJ1Y3QgYWdlbnRfZXhwciAq LCBzdHJ1Y3Qgc3ltYm9sICopOworIHN0YXRpYyB2b2lkIGdlbl92YXJfcmVmIChzdHJ1Y3QgZ2Ri YXJjaCAqLCBzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsCisgCQkJIHN0cnVjdCBheHNfdmFsdWUgKnZh bHVlLCBzdHJ1Y3Qgc3ltYm9sICp2YXIpOworQEAgLTEzNywxNSArMTM3LDE2IEBAIHN0YXRpYyB2 b2lkIGdlbl9kZXJlZiAoc3RydWN0IGFnZW50X2V4cHIKKyBzdGF0aWMgdm9pZCBnZW5fYWRkcmVz c19vZiAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IGF4c192YWx1ZSAqKTsKKyBzdGF0aWMg dm9pZCBnZW5fYml0ZmllbGRfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdl bnRfZXhwciAqYXgsCisgCQkJICAgICAgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUsCistCQkJICAg ICAgc3RydWN0IHR5cGUgKnR5cGUsIGludCBzdGFydCwgaW50IGVuZCk7CisrCQkJICAgICAgc3Ry dWN0IHR5cGUgKnR5cGUsIExPTkdFU1Qgc3RhcnQsIExPTkdFU1QgZW5kKTsKKyBzdGF0aWMgdm9p ZCBnZW5fcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorIAkJCQkgc3Ry dWN0IGFnZW50X2V4cHIgKmF4LAorIAkJCQkgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUsCistCQkJ CSBpbnQgb2Zmc2V0LCBpbnQgZmllbGRubywgc3RydWN0IHR5cGUgKnR5cGUpOworKwkJCQkgTE9O R0VTVCBvZmZzZXQsIGludCBmaWVsZG5vLAorKwkJCQkgc3RydWN0IHR5cGUgKnR5cGUpOworIHN0 YXRpYyBpbnQgZ2VuX3N0cnVjdF9yZWZfcmVjdXJzaXZlIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhw LAorIAkJCQkgICAgIHN0cnVjdCBhZ2VudF9leHByICpheCwKKyAJCQkJICAgICBzdHJ1Y3QgYXhz X3ZhbHVlICp2YWx1ZSwKKy0JCQkJICAgICBjaGFyICpmaWVsZCwgaW50IG9mZnNldCwKKysJCQkJ ICAgICBjaGFyICpmaWVsZCwgTE9OR0VTVCBvZmZzZXQsCisgCQkJCSAgICAgc3RydWN0IHR5cGUg KnR5cGUpOworIHN0YXRpYyB2b2lkIGdlbl9zdHJ1Y3RfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAq ZXhwLCBzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsCisgCQkJICAgIHN0cnVjdCBheHNfdmFsdWUgKnZh bHVlLAorQEAgLTU3MCw3ICs1NzEsNyBAQCBnZW5fZmV0Y2ggKHN0cnVjdCBhZ2VudF9leHByICph eCwgc3RydWN0CisgICAgcmlnaHQgc2hpZnQgaXQgYnkgLURJU1RBTkNFIGJpdHMgaWYgRElTVEFO Q0UgPCAwLiAgVGhpcyBnZW5lcmF0ZXMKKyAgICB1bnNpZ25lZCAobG9naWNhbCkgcmlnaHQgc2hp ZnRzLiAgKi8KKyBzdGF0aWMgdm9pZAorLWdlbl9sZWZ0X3NoaWZ0IChzdHJ1Y3QgYWdlbnRfZXhw ciAqYXgsIGludCBkaXN0YW5jZSkKKytnZW5fbGVmdF9zaGlmdCAoc3RydWN0IGFnZW50X2V4cHIg KmF4LCBMT05HRVNUIGRpc3RhbmNlKQorIHsKKyAgIGlmIChkaXN0YW5jZSA+IDApCisgICAgIHsK K0BAIC02MjQsNyArNjI1LDcgQEAgZ2VuX2ZyYW1lX2xvY2Fsc19hZGRyZXNzIChzdHJ1Y3QgZ2Ri YXJjaAorICAgIHByb2dyYW1taW5nIGluIE1MLCBpdCB3b3VsZCBiZSBjbGVhcmVyIHdoeSB0aGVz ZSBhcmUgdGhlIHNhbWUKKyAgICB0aGluZy4gICovCisgc3RhdGljIHZvaWQKKy1nZW5fb2Zmc2V0 IChzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsIGludCBvZmZzZXQpCisrZ2VuX29mZnNldCAoc3RydWN0 IGFnZW50X2V4cHIgKmF4LCBMT05HRVNUIG9mZnNldCkKKyB7CisgICAvKiBJdCB3b3VsZCBzdWZm aWNlIHRvIHNpbXBseSBwdXNoIHRoZSBvZmZzZXQgYW5kIGFkZCBpdCwgYnV0IHRoaXMKKyAgICAg IG1ha2VzIGl0IGVhc2llciB0byByZWFkIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBvZmZzZXRzIGlu IHRoZQorQEAgLTEyODAsNyArMTI4MSw3IEBAIGdlbl9hZGRyZXNzX29mIChzdHJ1Y3QgYWdlbnRf ZXhwciAqYXgsIHMKKyBzdGF0aWMgdm9pZAorIGdlbl9iaXRmaWVsZF9yZWYgKHN0cnVjdCBleHBy ZXNzaW9uICpleHAsIHN0cnVjdCBhZ2VudF9leHByICpheCwKKyAJCSAgc3RydWN0IGF4c192YWx1 ZSAqdmFsdWUsIHN0cnVjdCB0eXBlICp0eXBlLAorLQkJICBpbnQgc3RhcnQsIGludCBlbmQpCisr CQkgIExPTkdFU1Qgc3RhcnQsIExPTkdFU1QgZW5kKQorIHsKKyAgIC8qIE5vdGUgdGhhdCBvcHNb aV0gZmV0Y2hlcyA4IDw8IGkgYml0cy4gICovCisgICBzdGF0aWMgZW51bSBhZ2VudF9vcCBvcHNb XQorQEAgLTEzMTUsMTMgKzEzMTYsMTMgQEAgZ2VuX2JpdGZpZWxkX3JlZiAoc3RydWN0IGV4cHJl c3Npb24gKmV4cAorIAorICAgLyogVGhlIGZpcnN0IGFuZCBvbmUtYWZ0ZXItbGFzdCBiaXRzIGlu IHRoZSBmaWVsZCwgYnV0IHJvdW5kZWQgZG93bgorICAgICAgYW5kIHVwIHRvIGJ5dGUgYm91bmRh cmllcy4gICovCistICBpbnQgYm91bmRfc3RhcnQgPSAoc3RhcnQgLyBUQVJHRVRfQ0hBUl9CSVQp ICogVEFSR0VUX0NIQVJfQklUOworLSAgaW50IGJvdW5kX2VuZCA9ICgoKGVuZCArIFRBUkdFVF9D SEFSX0JJVCAtIDEpCistCQkgICAgLyBUQVJHRVRfQ0hBUl9CSVQpCistCQkgICAqIFRBUkdFVF9D SEFSX0JJVCk7CisrICBMT05HRVNUIGJvdW5kX3N0YXJ0ID0gKHN0YXJ0IC8gVEFSR0VUX0NIQVJf QklUKSAqIFRBUkdFVF9DSEFSX0JJVDsKKysgIExPTkdFU1QgYm91bmRfZW5kID0gKCgoZW5kICsg VEFSR0VUX0NIQVJfQklUIC0gMSkKKysJCQkvIFRBUkdFVF9DSEFSX0JJVCkKKysJCSAgICAgICAq IFRBUkdFVF9DSEFSX0JJVCk7CisgCisgICAvKiBjdXJyZW50IGJpdCBvZmZzZXQgd2l0aGluIHRo ZSBzdHJ1Y3R1cmUgKi8KKy0gIGludCBvZmZzZXQ7CisrICBMT05HRVNUIG9mZnNldDsKKyAKKyAg IC8qIFRoZSBpbmRleCBpbiBvcHMgb2YgdGhlIG9wY29kZSB3ZSdyZSBjb25zaWRlcmluZy4gICov CisgICBpbnQgb3A7CitAQCAtMTQ0MCw3ICsxNDQxLDcgQEAgZ2VuX2JpdGZpZWxkX3JlZiAoc3Ry dWN0IGV4cHJlc3Npb24gKmV4cAorIHN0YXRpYyB2b2lkCisgZ2VuX3ByaW1pdGl2ZV9maWVsZCAo c3RydWN0IGV4cHJlc3Npb24gKmV4cCwKKyAJCSAgICAgc3RydWN0IGFnZW50X2V4cHIgKmF4LCBz dHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwKKy0JCSAgICAgaW50IG9mZnNldCwgaW50IGZpZWxkbm8s IHN0cnVjdCB0eXBlICp0eXBlKQorKwkJICAgICBMT05HRVNUIG9mZnNldCwgaW50IGZpZWxkbm8s IHN0cnVjdCB0eXBlICp0eXBlKQorIHsKKyAgIC8qIElzIHRoaXMgYSBiaXRmaWVsZD8gICovCisg ICBpZiAoVFlQRV9GSUVMRF9QQUNLRUQgKHR5cGUsIGZpZWxkbm8pKQorQEAgLTE0NjUsNyArMTQ2 Niw3IEBAIGdlbl9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCBleHByZXNzaW9uICoKKyBzdGF0aWMg aW50CisgZ2VuX3N0cnVjdF9yZWZfcmVjdXJzaXZlIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBz dHJ1Y3QgYWdlbnRfZXhwciAqYXgsCisgCQkJICBzdHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwKKy0J CQkgIGNoYXIgKmZpZWxkLCBpbnQgb2Zmc2V0LCBzdHJ1Y3QgdHlwZSAqdHlwZSkKKysJCQkgIGNo YXIgKmZpZWxkLCBMT05HRVNUIG9mZnNldCwgc3RydWN0IHR5cGUgKnR5cGUpCisgeworICAgaW50 IGksIHJzbHQ7CisgICBpbnQgbmJhc2VzID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKTsKK0lu ZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2F4LWdlbmVyYWwuYworPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9heC1nZW5lcmFsLmMJMjAxMi0wNy0wMiAxNzoy OTozMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2F4LWdlbmVy YWwuYwkyMDEyLTExLTA3IDIyOjA5OjI5Ljc0MzE0MDkyNyArMDEwMAorQEAgLTE5Miw3ICsxOTIs NyBAQCBheF96ZXJvX2V4dCAoc3RydWN0IGFnZW50X2V4cHIgKngsIGludCBuCisgCisgLyogQXBw ZW5kIGEgdHJhY2VfcXVpY2sgaW5zdHJ1Y3Rpb24gdG8gRVhQUiwgdG8gcmVjb3JkIE4gYnl0ZXMu ICAqLworIHZvaWQKKy1heF90cmFjZV9xdWljayAoc3RydWN0IGFnZW50X2V4cHIgKngsIGludCBu KQorK2F4X3RyYWNlX3F1aWNrIChzdHJ1Y3QgYWdlbnRfZXhwciAqeCwgTE9OR0VTVCBuKQorIHsK KyAgIC8qIE4gbXVzdCBmaXQgaW4gYSBieXRlLiAgKi8KKyAgIGlmIChuIDwgMCB8fCBuID4gMjU1 KQorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvYXguaAorPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdk Yi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9heC5oCTIwMTItMDctMDIgMTc6Mjk6MzMuMDAwMDAw MDAwICswMjAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9heC5oCTIwMTItMTEtMDcgMjI6 MDk6MjkuNzQ0MTQwOTI1ICswMTAwCitAQCAtMTkwLDcgKzE5MCw3IEBAIGV4dGVybiB2b2lkIGF4 X2V4dCAoc3RydWN0IGFnZW50X2V4cHIgKkUKKyBleHRlcm4gdm9pZCBheF96ZXJvX2V4dCAoc3Ry dWN0IGFnZW50X2V4cHIgKkVYUFIsIGludCBOKTsKKyAKKyAvKiBBcHBlbmQgYSB0cmFjZV9xdWlj ayBpbnN0cnVjdGlvbiB0byBFWFBSLCB0byByZWNvcmQgTiBieXRlcy4gICovCistZXh0ZXJuIHZv aWQgYXhfdHJhY2VfcXVpY2sgKHN0cnVjdCBhZ2VudF9leHByICpFWFBSLCBpbnQgTik7CisrZXh0 ZXJuIHZvaWQgYXhfdHJhY2VfcXVpY2sgKHN0cnVjdCBhZ2VudF9leHByICpFWFBSLCBMT05HRVNU IE4pOworIAorIC8qIEFwcGVuZCBhIGdvdG8gb3AgdG8gRVhQUi4gIE9QIGlzIHRoZSBhY3R1YWwg b3AgKG11c3QgYmUgYW9wX2dvdG8gb3IKKyAgICBhb3BfaWZfZ290bykuICBXZSBhc3N1bWUgd2Ug ZG9uJ3Qga25vdyB0aGUgdGFyZ2V0IG9mZnNldCB5ZXQsCitJbmRleDogZ2RiLTcuNS4wLjIwMTIw OTI2L2dkYi9icmVha3BvaW50LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYu b3JpZy9nZGIvYnJlYWtwb2ludC5jCTIwMTItMTEtMDcgMjI6MDk6MjQuMDAwMDAwMDAwICswMTAw CisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9icmVha3BvaW50LmMJMjAxMi0xMS0wNyAyMjow OToyOS43NDgxNDA5MjAgKzAxMDAKK0BAIC02NTY1LDcgKzY1NjUsNyBAQCBicmVha3BvaW50X2Fk ZHJlc3NfbWF0Y2ggKHN0cnVjdCBhZGRyZXNzCisgCisgc3RhdGljIGludAorIGJyZWFrcG9pbnRf YWRkcmVzc19tYXRjaF9yYW5nZSAoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmFzcGFjZTEsIENPUkVf QUREUiBhZGRyMSwKKy0JCQkJaW50IGxlbjEsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICphc3BhY2Uy LAorKwkJCQlMT05HRVNUIGxlbjEsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICphc3BhY2UyLAorIAkJ CQlDT1JFX0FERFIgYWRkcjIpCisgeworICAgcmV0dXJuICgoZ2RiYXJjaF9oYXNfZ2xvYmFsX2Jy ZWFrcG9pbnRzICh0YXJnZXRfZ2RiYXJjaCkKK0BAIC0xMTA0Myw3ICsxMTA0Myw3IEBAIGNhbl91 c2VfaGFyZHdhcmVfd2F0Y2hwb2ludCAoc3RydWN0IHZhbHUKKyAJCSAgICAgICYmIFRZUEVfQ09E RSAodnR5cGUpICE9IFRZUEVfQ09ERV9BUlJBWSkpCisgCQl7CisgCQkgIENPUkVfQUREUiB2YWRk ciA9IHZhbHVlX2FkZHJlc3MgKHYpOworLQkJICBpbnQgbGVuOworKwkJICBMT05HRVNUIGxlbjsK KyAJCSAgaW50IG51bV9yZWdzOworIAorIAkJICBsZW4gPSAodGFyZ2V0X2V4YWN0X3dhdGNocG9p bnRzCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9icmVha3BvaW50LmgKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvYnJlYWtwb2ludC5oCTIwMTItMTEt MDcgMjI6MDA6NDMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9i cmVha3BvaW50LmgJMjAxMi0xMS0wNyAyMjowOToyOS43NzgxNDA4NzUgKzAxMDAKK0BAIC0yNTAs NyArMjUwLDcgQEAgc3RydWN0IGJwX3RhcmdldF9pbmZvCisgCisgICAvKiBJZiB0aGlzIGlzIGEg cmFuZ2VkIGJyZWFrcG9pbnQsIHRoZW4gdGhpcyBmaWVsZCBjb250YWlucyB0aGUKKyAgICAgIGxl bmd0aCBvZiB0aGUgcmFuZ2UgdGhhdCB3aWxsIGJlIHdhdGNoZWQgZm9yIGV4ZWN1dGlvbi4gICov CistICBpbnQgbGVuZ3RoOworKyAgTE9OR0VTVCBsZW5ndGg7CisgCisgICAvKiBJZiB0aGUgYnJl YWtwb2ludCBsaXZlcyBpbiBtZW1vcnkgYW5kIHJlYWRpbmcgdGhhdCBtZW1vcnkgd291bGQKKyAg ICAgIGdpdmUgYmFjayB0aGUgYnJlYWtwb2ludCwgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgY29u dGVudHMsIHRoZW4KK0BAIC00MTksNyArNDE5LDcgQEAgc3RydWN0IGJwX2xvY2F0aW9uCisgICAv KiBGb3IgaGFyZHdhcmUgd2F0Y2hwb2ludHMsIHRoZSBzaXplIG9mIHRoZSBtZW1vcnkgcmVnaW9u IGJlaW5nCisgICAgICB3YXRjaGVkLiAgRm9yIGhhcmR3YXJlIHJhbmdlZCBicmVha3BvaW50cywg dGhlIHNpemUgb2YgdGhlCisgICAgICBicmVha3BvaW50IHJhbmdlLiAgKi8KKy0gIGludCBsZW5n dGg7CisrICBMT05HRVNUIGxlbmd0aDsKKyAKKyAgIC8qIFR5cGUgb2YgaGFyZHdhcmUgd2F0Y2hw b2ludC4gICovCisgICBlbnVtIHRhcmdldF9od19icF90eXBlIHdhdGNocG9pbnRfdHlwZTsKK0lu ZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2MtbGFuZy5jCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2Ri LTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2MtbGFuZy5jCTIwMTItMTEtMDcgMjI6MDA6NDQuMDAw MDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9jLWxhbmcuYwkyMDEyLTEx LTA3IDIyOjA5OjI5Ljc4NjE0MDg2NCArMDEwMAorQEAgLTE4OSw3ICsxODksNyBAQCBjX3ByaW50 Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLCBzCisgCisgdm9pZAorIGNfcHJpbnRzdHIg KHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLCAKKy0JICAgIGNvbnN0 IGdkYl9ieXRlICpzdHJpbmcsIHVuc2lnbmVkIGludCBsZW5ndGgsIAorKwkgICAgY29uc3QgZ2Ri X2J5dGUgKnN0cmluZywgVUxPTkdFU1QgbGVuZ3RoLAorIAkgICAgY29uc3QgY2hhciAqdXNlcl9l bmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAorIAkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgKm9wdGlvbnMpCisgeworQEAgLTY3OCw3ICs2NzgsNyBAQCBldmFsdWF0ZV9z dWJleHBfYyAoc3RydWN0IHR5cGUgKmV4cGVjdF90CisgCSAgfQorIAllbHNlCisgCSAgeworLQkg ICAgaW50IGk7CisrCSAgICBMT05HRVNUIGk7CisgCisgCSAgICAvKiBXcml0ZSB0aGUgdGVybWlu YXRpbmcgY2hhcmFjdGVyLiAgKi8KKyAJICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX0xFTkdUSCAo dHlwZSk7ICsraSkKK0BAIC02ODcsNyArNjg3LDcgQEAgZXZhbHVhdGVfc3ViZXhwX2MgKHN0cnVj dCB0eXBlICpleHBlY3RfdAorIAkgICAgaWYgKHNhdGlzZnlfZXhwZWN0ZWQpCisgCSAgICAgIHsK KyAJCUxPTkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5kOworLQkJaW50IGVsZW1lbnRfc2l6ZSA9 IFRZUEVfTEVOR1RIICh0eXBlKTsKKysJCUxPTkdFU1QgZWxlbWVudF9zaXplID0gVFlQRV9MRU5H VEggKHR5cGUpOworIAorIAkJaWYgKGdldF9kaXNjcmV0ZV9ib3VuZHMgKFRZUEVfSU5ERVhfVFlQ RSAoZXhwZWN0X3R5cGUpLAorIAkJCQkJICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKSA8IDApCitJ bmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9jLWxhbmcuaAorPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdk Yi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9jLWxhbmcuaAkyMDEyLTAzLTAxIDIwOjI2OjEyLjAw MDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvYy1sYW5nLmgJMjAxMi0x MS0wNyAyMjowOToyOS43ODcxNDA4NjMgKzAxMDAKK0BAIC03Miw3ICs3Miw3IEBAIGV4dGVybiB2 b2lkIGNfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5cGUKKyAJCQkgICAgIHN0cnVjdCB1aV9maWxl ICopOworIAorIGV4dGVybiB2b2lkIGNfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBn ZGJfYnl0ZSAqLAorLQkJCSBpbnQsIENPUkVfQUREUiwKKysJCQkgTE9OR0VTVCwgQ09SRV9BRERS LAorIAkJCSBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCisgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAq LAorIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKK0BAIC05Miw3ICs5 Miw3IEBAIGV4dGVybiB2b2lkIGNfcHJpbnRjaGFyIChpbnQsIHN0cnVjdCB0eXAKKyBleHRlcm4g dm9pZCBjX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqIHN0cmVhbSwKKyAJCQlzdHJ1Y3QgdHlw ZSAqZWx0dHlwZSwKKyAJCQljb25zdCBnZGJfYnl0ZSAqc3RyaW5nLAorLQkJCXVuc2lnbmVkIGlu dCBsZW5ndGgsCisrCQkJVUxPTkdFU1QgbGVuZ3RoLAorIAkJCWNvbnN0IGNoYXIgKnVzZXJfZW5j b2RpbmcsCisgCQkJaW50IGZvcmNlX2VsbGlwc2VzLAorIAkJCWNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICpvcHRpb25zKTsKK0BAIC0xMTgsMTQgKzExOCwxNCBAQCBleHRlcm4gdm9p ZCBjcF9wcmludF9jbGFzc19tZW1iZXIgKGNvbnN0CisgCQkJCSAgIHN0cnVjdCB1aV9maWxlICos IGNoYXIgKik7CisgCisgZXh0ZXJuIHZvaWQgY3BfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3Qg dHlwZSAqLCBzdHJ1Y3QgdHlwZSAqLAorLQkJCQkgICBjb25zdCBnZGJfYnl0ZSAqLCBpbnQsIENP UkVfQUREUiwKKysJCQkJICAgY29uc3QgZ2RiX2J5dGUgKiwgTE9OR0VTVCwgQ09SRV9BRERSLAor IAkJCQkgICBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCisgCQkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqLAorIAkJCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqLAorIAkJCQkg ICBzdHJ1Y3QgdHlwZSAqKiwgaW50KTsKKyAKKyBleHRlcm4gdm9pZCBjcF9wcmludF92YWx1ZV9m aWVsZHNfcnR0aSAoc3RydWN0IHR5cGUgKiwKKy0JCQkJCWNvbnN0IGdkYl9ieXRlICosIGludCwg Q09SRV9BRERSLAorKwkJCQkJY29uc3QgZ2RiX2J5dGUgKiwgTE9OR0VTVCwgQ09SRV9BRERSLAor IAkJCQkJc3RydWN0IHVpX2ZpbGUgKiwgaW50LAorIAkJCQkJY29uc3Qgc3RydWN0IHZhbHVlICos CisgCQkJCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqLAorSW5kZXg6IGdkYi03 LjUuMC4yMDEyMDkyNi9nZGIvYy12YWxwcmludC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4w LjIwMTIwOTI2Lm9yaWcvZ2RiL2MtdmFscHJpbnQuYwkyMDEyLTA1LTE4IDIzOjAyOjQ3LjAwMDAw MDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvYy12YWxwcmludC5jCTIwMTIt MTEtMDcgMjI6MDk6MjkuNzg5MTQwODYxICswMTAwCitAQCAtMTMzLDcgKzEzMyw3IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGUKKyAKKyB2b2lkCisgY192YWxfcHJp bnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKKy0JICAgICBp bnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKysJICAgICBMT05HRVNUIGVt YmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisgCSAgICAgc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSwgaW50IHJlY3Vyc2UsCisgCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5h bF92YWx1ZSwKKyAJICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9u cykKK0BAIC0xNDQsNyArMTQ0LDcgQEAgY192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBj b25zdCBnZAorICAgdW5zaWduZWQgbGVuOworICAgc3RydWN0IHR5cGUgKmVsdHR5cGUsICp1bnJl c29sdmVkX2VsdHR5cGU7CisgICBzdHJ1Y3QgdHlwZSAqdW5yZXNvbHZlZF90eXBlID0gdHlwZTsK Ky0gIHVuc2lnbmVkIGVsdGxlbjsKKysgIFVMT05HRVNUIGVsdGxlbjsKKyAgIENPUkVfQUREUiBh ZGRyOworIAorICAgQ0hFQ0tfVFlQRURFRiAodHlwZSk7CitAQCAtMzY0LDkgKzM2NCw5IEBAIGNf dmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2QKKyAJICAvKiBQcmludCB2dGFi bGUgZW50cnkgLSB3ZSBvbmx5IGdldCBoZXJlIGlmIE5PVCB1c2luZworIAkgICAgIC1mdnRhYmxl X3RodW5rcy4gIChPdGhlcndpc2UsIGxvb2sgdW5kZXIKKyAJICAgICBUWVBFX0NPREVfUFRSLikg ICovCistCSAgaW50IG9mZnNldCA9IChlbWJlZGRlZF9vZmZzZXQKKy0JCQkrIFRZUEVfRklFTERf QklUUE9TICh0eXBlLAorLQkJCQkJICAgICBWVEJMX0ZOQUREUl9PRkZTRVQpIC8gOCk7CisrCSAg TE9OR0VTVCBvZmZzZXQgPSAoZW1iZWRkZWRfb2Zmc2V0CisrCQkJICAgICsgVFlQRV9GSUVMRF9C SVRQT1MgKHR5cGUsCisrCQkJCQkJIFZUQkxfRk5BRERSX09GRlNFVCkgLyA4KTsKKyAJICBzdHJ1 Y3QgdHlwZSAqZmllbGRfdHlwZSA9IFRZUEVfRklFTERfVFlQRSAodHlwZSwKKyAJCQkJCQkgICAg IFZUQkxfRk5BRERSX09GRlNFVCk7CisgCSAgQ09SRV9BRERSIGFkZHIKK0BAIC00NDUsNyArNDQ1 LDggQEAgY192YWx1ZV9wcmludCAoc3RydWN0IHZhbHVlICp2YWwsIHN0cnVjdAorIAkgICAgICAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCisgeworICAgc3RydWN0 IHR5cGUgKnR5cGUsICpyZWFsX3R5cGUsICp2YWxfdHlwZTsKKy0gIGludCBmdWxsLCB0b3AsIHVz aW5nX2VuYzsKKysgIGludCBmdWxsLCB1c2luZ19lbmM7CisrICBMT05HRVNUIHRvcDsKKyAgIHN0 cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHMgPSAqb3B0aW9uczsKKyAKKyAgIG9wdHMuZGVy ZWZfcmVmID0gMTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2NwLWFiaS5jCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2NwLWFiaS5jCTIwMTItMDMt MTUgMTY6NDM6MTEuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9j cC1hYmkuYwkyMDEyLTExLTA3IDIyOjA5OjI5Ljc5MDE0MDg1OSArMDEwMAorQEAgLTY4LDEzICs2 OCwxMyBAQCBpc19vcGVyYXRvcl9uYW1lIChjb25zdCBjaGFyICpuYW1lKQorICAgcmV0dXJuICgq Y3VycmVudF9jcF9hYmkuaXNfb3BlcmF0b3JfbmFtZSkgKG5hbWUpOworIH0KKyAKKy1pbnQKKytM T05HRVNUCisgYmFzZWNsYXNzX29mZnNldCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBpbmRleCwg Y29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVf QUREUiBhZGRyZXNzLAorKwkJICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFk ZHJlc3MsCisgCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQorIHsKKyAgIHZvbGF0aWxlIHN0 cnVjdCBnZGJfZXhjZXB0aW9uIGV4OworLSAgaW50IHJlcyA9IDA7CisrICBMT05HRVNUIHJlcyA9 IDA7CisgCisgICBnZGJfYXNzZXJ0IChjdXJyZW50X2NwX2FiaS5iYXNlY2xhc3Nfb2Zmc2V0ICE9 IE5VTEwpOworIAorQEAgLTk4LDcgKzk4LDcgQEAgYmFzZWNsYXNzX29mZnNldCAoc3RydWN0IHR5 cGUgKnR5cGUsIGludAorIHN0cnVjdCB2YWx1ZSAqCisgdmFsdWVfdmlydHVhbF9mbl9maWVsZCAo c3RydWN0IHZhbHVlICoqYXJnMXAsCisgCQkJc3RydWN0IGZuX2ZpZWxkICpmLCBpbnQgaiwKKy0J CQlzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IG9mZnNldCkKKysJCQlzdHJ1Y3QgdHlwZSAqdHlwZSwg TE9OR0VTVCBvZmZzZXQpCisgeworICAgaWYgKChjdXJyZW50X2NwX2FiaS52aXJ0dWFsX2ZuX2Zp ZWxkKSA9PSBOVUxMKQorICAgICByZXR1cm4gTlVMTDsKK0BAIC0xMDgsNyArMTA4LDcgQEAgdmFs dWVfdmlydHVhbF9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqYQorIAorIHN0cnVjdCB0eXBlICoK KyB2YWx1ZV9ydHRpX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdiwgaW50ICpmdWxsLAorLQkJIGludCAq dG9wLCBpbnQgKnVzaW5nX2VuYykKKysJCSBMT05HRVNUICp0b3AsIGludCAqdXNpbmdfZW5jKQor IHsKKyAgIHN0cnVjdCB0eXBlICpyZXQgPSBOVUxMOworICAgdm9sYXRpbGUgc3RydWN0IGdkYl9l eGNlcHRpb24gZTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2NwLWFiaS5oCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2NwLWFiaS5oCTIwMTItMDMt MTUgMTY6NDM6MTEuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9j cC1hYmkuaAkyMDEyLTExLTA3IDIyOjA5OjI5Ljc5MjE0MDg1NSArMDEwMAorQEAgLTEwOCw3ICsx MDgsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV92aXJ0dWFsX2ZuX2ZpCisgCQkJCQkg ICAgIHN0cnVjdCBmbl9maWVsZCAqZiwKKyAJCQkJCSAgICAgaW50IGosCisgCQkJCQkgICAgIHN0 cnVjdCB0eXBlICp0eXBlLAorLQkJCQkJICAgICBpbnQgb2Zmc2V0KTsKKysJCQkJCSAgICAgTE9O R0VTVCBvZmZzZXQpOworIAorIAorIC8qIFRyeSB0byBmaW5kIHRoZSBydW4tdGltZSB0eXBlIG9m IFZBTFVFLCB1c2luZyBDKysgcnVuLXRpbWUgdHlwZQorQEAgLTEzNSw3ICsxMzUsNyBAQCBleHRl cm4gc3RydWN0IHZhbHVlICp2YWx1ZV92aXJ0dWFsX2ZuX2ZpCisgICAgRlVMTCwgVE9QLCBhbmQg VVNJTkdfRU5DIGNhbiBlYWNoIGJlIHplcm8sIGluIHdoaWNoIGNhc2Ugd2UgZG9uJ3QKKyAgICBw cm92aWRlIHRoZSBjb3JyZXNwb25kaW5nIHBpZWNlIG9mIGluZm9ybWF0aW9uLiAgKi8KKyBleHRl cm4gc3RydWN0IHR5cGUgKnZhbHVlX3J0dGlfdHlwZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpmdWxsLCBpbnQgKnRvcCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpmdWxsLCBMT05HRVNU ICp0b3AsCisgCQkJCSAgICAgaW50ICp1c2luZ19lbmMpOworIAorIC8qIENvbXB1dGUgdGhlIG9m ZnNldCBvZiB0aGUgYmFzZWNsYXNzIHdoaWNoIGlzIHRoZSBJTkRFWHRoIGJhc2VjbGFzcworQEAg LTE0NCwxMSArMTQ0LDExIEBAIGV4dGVybiBzdHJ1Y3QgdHlwZSAqdmFsdWVfcnR0aV90eXBlIChz dHIKKyAgICBjb250ZW50cyBvZiBWQUwuICBUaGUgcmVzdWx0IGlzIHRoZSBvZmZzZXQgb2YgdGhl IGJhc2VjbGFzcyB2YWx1ZQorICAgIHJlbGF0aXZlIHRvICh0aGUgYWRkcmVzcyBvZikoQVJHKSAr IE9GRlNFVC4gICovCisgCistZXh0ZXJuIGludCBiYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3QgdHlw ZSAqdHlwZSwKKy0JCQkgICAgIGludCBpbmRleCwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCist CQkJICAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LAorLQkJCSAgICAgQ09SRV9BRERSIGFkZHJlc3Ms CistCQkJICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCk7CisrZXh0ZXJuIExPTkdFU1QgYmFz ZWNsYXNzX29mZnNldCAoc3RydWN0IHR5cGUgKnR5cGUsCisrCQkJCSBpbnQgaW5kZXgsIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLAorKwkJCQkgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCisrCQkJ CSBDT1JFX0FERFIgYWRkcmVzcywKKysJCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKTsKKyAK KyAvKiBEZXNjcmliZSB0aGUgdGFyZ2V0IG9mIGEgcG9pbnRlciB0byBtZXRob2QuICBDT05URU5U UyBpcyB0aGUgYnl0ZQorICAgIHBhdHRlcm4gcmVwcmVzZW50aW5nIHRoZSBwb2ludGVyIHRvIG1l dGhvZC4gIFRZUEUgaXMgdGhlIHBvaW50ZXIgdG8KK0BAIC0yMDQsMTIgKzIwNCwxMyBAQCBzdHJ1 Y3QgY3BfYWJpX29wcworICAgc3RydWN0IHZhbHVlICooKnZpcnR1YWxfZm5fZmllbGQpIChzdHJ1 Y3QgdmFsdWUgKiphcmcxcCwKKyAJCQkJICAgICBzdHJ1Y3QgZm5fZmllbGQgKiBmLAorIAkJCQkg ICAgIGludCBqLCBzdHJ1Y3QgdHlwZSAqIHR5cGUsCistCQkJCSAgICAgaW50IG9mZnNldCk7Cisr CQkJCSAgICAgTE9OR0VTVCBvZmZzZXQpOworICAgc3RydWN0IHR5cGUgKigqcnR0aV90eXBlKSAo c3RydWN0IHZhbHVlICp2LCBpbnQgKmZ1bGwsCistCQkJICAgICBpbnQgKnRvcCwgaW50ICp1c2lu Z19lbmMpOworLSAgaW50ICgqYmFzZWNsYXNzX29mZnNldCkgKHN0cnVjdCB0eXBlICp0eXBlLCBp bnQgaW5kZXgsCistCQkJICAgY29uc3QgYmZkX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9v ZmZzZXQsCistCQkJICAgQ09SRV9BRERSIGFkZHJlc3MsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs KTsKKysJCQkgICAgIExPTkdFU1QgKnRvcCwgaW50ICp1c2luZ19lbmMpOworKyAgTE9OR0VTVCAo KmJhc2VjbGFzc19vZmZzZXQpIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGluZGV4LAorKwkJCSAg ICAgICBjb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwKKysJCQkgICAgICAgTE9OR0VTVCBlbWJlZGRl ZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAorKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFs dWUgKnZhbCk7CisgICB2b2lkICgqcHJpbnRfbWV0aG9kX3B0cikgKGNvbnN0IGdkYl9ieXRlICpj b250ZW50cywKKyAJCQkgICAgc3RydWN0IHR5cGUgKnR5cGUsCisgCQkJICAgIHN0cnVjdCB1aV9m aWxlICpzdHJlYW0pOworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvY3AtdmFscHJpbnQu YworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9jcC12YWxwcmlu dC5jCTIwMTItMTEtMDcgMjI6MDA6NDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIw MTIwOTI2L2dkYi9jcC12YWxwcmludC5jCTIwMTItMTEtMDcgMjI6MTI6MTQuMzkyOTAxNjk5ICsw MTAwCitAQCAtODIsNyArODIsNyBAQCBzdGF0aWMgdm9pZCBjcF9wcmludF9zdGF0aWNfZmllbGQg KHN0cnVjCisgCQkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOworIAor IHN0YXRpYyB2b2lkIGNwX3ByaW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAq LAorLQkJCSAgICBjb25zdCBnZGJfYnl0ZSAqLCBpbnQsCisrCQkJICAgIGNvbnN0IGdkYl9ieXRl ICosIExPTkdFU1QsCisgCQkJICAgIENPUkVfQUREUiwgc3RydWN0IHVpX2ZpbGUgKiwKKyAJCQkg ICAgaW50LCBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKKyAJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKiwKK0BAIC0xNTYsNyArMTU2LDcgQEAgY3BfaXNfdnRibF9tZW1iZXIg KHN0cnVjdCB0eXBlICp0eXBlKQorIAorIHZvaWQKKyBjcF9wcmludF92YWx1ZV9maWVsZHMgKHN0 cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlLAorLQkJICAgICAgIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgb2Zmc2V0LAorKwkJICAgICAgIGNvbnN0IGdkYl9ieXRl ICp2YWxhZGRyLCBMT05HRVNUIG9mZnNldCwKKyAJCSAgICAgICBDT1JFX0FERFIgYWRkcmVzcywg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKKyAJCSAgICAgICBpbnQgcmVjdXJzZSwgY29uc3Qgc3Ry dWN0IHZhbHVlICp2YWwsCisgCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKm9wdGlvbnMsCitAQCAtMzYzLDcgKzM2Myw3IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyAo c3RydWN0IHR5cGUgKnR5cGUKKyAJCX0KKyAJICAgICAgZWxzZSBpZiAoaSA9PSB2cHRyX2ZpZWxk bm8gJiYgdHlwZSA9PSB2cHRyX2Jhc2V0eXBlKQorIAkJeworLQkJICBpbnQgaV9vZmZzZXQgPSBv ZmZzZXQgKyBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgaSkgLyA4OworKwkJICBMT05HRVNUIGlf b2Zmc2V0ID0gb2Zmc2V0ICsgVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGkpIC8gODsKKyAJCSAg c3RydWN0IHR5cGUgKmlfdHlwZSA9IFRZUEVfRklFTERfVFlQRSAodHlwZSwgaSk7CisgCisgCQkg IGlmICh2YWxwcmludF9jaGVja192YWxpZGl0eSAoc3RyZWFtLCBpX3R5cGUsIGlfb2Zmc2V0LCB2 YWwpKQorQEAgLTQ0Niw3ICs0NDYsNyBAQCBjcF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0 eXBlICp0eXBlCisgCisgdm9pZAorIGNwX3ByaW50X3ZhbHVlX2ZpZWxkc19ydHRpIChzdHJ1Y3Qg dHlwZSAqdHlwZSwKKy0JCQkgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBvZmZzZXQs CisrCQkJICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBMT05HRVNUIG9mZnNldCwKKyAJCQkg ICAgQ09SRV9BRERSIGFkZHJlc3MsCisgCQkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGlu dCByZWN1cnNlLAorIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKK0BAIC00NjIsNyAr NDYyLDggQEAgY3BfcHJpbnRfdmFsdWVfZmllbGRzX3J0dGkgKHN0cnVjdCB0eXBlCisgCQkJVEFS R0VUX0NIQVJfQklUICogVFlQRV9MRU5HVEggKHR5cGUpKSkKKyAgICAgeworICAgICAgIHN0cnVj dCB2YWx1ZSAqdmFsdWU7CistICAgICAgaW50IGZ1bGwsIHRvcCwgdXNpbmdfZW5jOworKyAgICAg IGludCBmdWxsLCB1c2luZ19lbmM7CisrICAgICAgTE9OR0VTVCB0b3A7CisgCisgICAgICAgLyog VWdoLCB3ZSBoYXZlIHRvIGNvbnZlcnQgYmFjayB0byBhIHZhbHVlIGhlcmUuICAqLworICAgICAg IHZhbHVlID0gdmFsdWVfZnJvbV9jb250ZW50c19hbmRfYWRkcmVzcyAodHlwZSwgdmFsYWRkciAr IG9mZnNldCwKK0BAIC00ODYsNyArNDg3LDcgQEAgY3BfcHJpbnRfdmFsdWVfZmllbGRzX3J0dGkg KHN0cnVjdCB0eXBlCisgCisgc3RhdGljIHZvaWQKKyBjcF9wcmludF92YWx1ZSAoc3RydWN0IHR5 cGUgKnR5cGUsIHN0cnVjdCB0eXBlICpyZWFsX3R5cGUsCistCQljb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwgaW50IG9mZnNldCwKKysJCWNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBMT05HRVNUIG9m ZnNldCwKKyAJCUNPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorIAkJ aW50IHJlY3Vyc2UsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkJY29uc3Qgc3RydWN0IHZh bHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCitAQCAtNDk2LDcgKzQ5Nyw3IEBAIGNwX3ByaW50 X3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWMKKyAgICAgPSAoc3RydWN0IHR5cGUgKiop IG9ic3RhY2tfbmV4dF9mcmVlICgmZG9udF9wcmludF92Yl9vYnN0YWNrKTsKKyAgIHN0cnVjdCBv YnN0YWNrIHRtcF9vYnN0YWNrID0gZG9udF9wcmludF92Yl9vYnN0YWNrOworICAgaW50IGksIG5f YmFzZWNsYXNzZXMgPSBUWVBFX05fQkFTRUNMQVNTRVMgKHR5cGUpOworLSAgaW50IHRoaXNvZmZz ZXQ7CisrICBMT05HRVNUIHRoaXNvZmZzZXQ7CisgICBzdHJ1Y3QgdHlwZSAqdGhpc3R5cGU7Cisg CisgICBpZiAoZG9udF9wcmludF92YiA9PSAwKQorQEAgLTUxMCw3ICs1MTEsNyBAQCBjcF9wcmlu dF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjCisgCisgICBmb3IgKGkgPSAwOyBpIDwg bl9iYXNlY2xhc3NlczsgaSsrKQorICAgICB7CistICAgICAgaW50IGJvZmZzZXQgPSAwOworKyAg ICAgIExPTkdFU1QgYm9mZnNldCA9IDA7CisgICAgICAgaW50IHNraXA7CisgICAgICAgc3RydWN0 IHR5cGUgKmJhc2VjbGFzcyA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfQkFTRUNMQVNTICh0eXBlLCBp KSk7CisgICAgICAgY29uc3QgY2hhciAqYmFzZW5hbWUgPSBUWVBFX05BTUUgKGJhc2VjbGFzcyk7 CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9kLWxhbmcuaAorPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9kLWxhbmcuaAkyMDEyLTAzLTAxIDIwOjI2OjEy LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZC1sYW5nLmgJMjAx Mi0xMS0wNyAyMjowOToyOS43OTUxNDA4NTIgKzAxMDAKK0BAIC0yNSw3ICsyNSw3IEBACisgZXh0 ZXJuIGNoYXIgKmRfZGVtYW5nbGUgKGNvbnN0IGNoYXIgKm1hbmdsZWQsIGludCBvcHRpb25zKTsK KyAKKyBleHRlcm4gdm9pZCBkX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdk Yl9ieXRlICp2YWxhZGRyLAorLQkJCSBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRk cmVzcywKKysJCQkgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAor IAkJCSBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKyAJCQkgY29uc3Qgc3Ry dWN0IHZhbHVlICp2YWwsCisgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpv cHRpb25zKTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2QtdmFscHJpbnQuYworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9kLXZhbHByaW50LmMJMjAx Mi0wMy0wMSAyMDoyNjoxMi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYv Z2RiL2QtdmFscHJpbnQuYwkyMDEyLTExLTA3IDIyOjA5OjI5Ljc5NTE0MDg1MiArMDEwMAorQEAg LTI5LDcgKzI5LDcgQEAKKyAKKyBzdGF0aWMgaW50CisgZHluYW1pY19hcnJheV90eXBlIChzdHJ1 Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkgICAgaW50IGVtYmVk ZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisrCQkgICAgTE9OR0VTVCBlbWJlZGRlZF9v ZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAorIAkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0s IGludCByZWN1cnNlLAorIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkJICAgIGNv bnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQorQEAgLTcxLDkgKzcxLDkg QEAgZHluYW1pY19hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgYworIAorIC8qIEltcGxl bWVudHMgdGhlIGxhX3ZhbF9wcmludCByb3V0aW5lIGZvciBsYW5ndWFnZSBELiAgKi8KKyB2b2lk CistZF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRk ciwgaW50IGVtYmVkZGVkX29mZnNldCwKKy0gICAgICAgICAgICAgQ09SRV9BRERSIGFkZHJlc3Ms IHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorLQkgICAgIGNvbnN0IHN0cnVj dCB2YWx1ZSAqdmFsLAorK2RfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2Ri X2J5dGUgKnZhbGFkZHIsCisrCSAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQURE UiBhZGRyZXNzLAorKwkgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLCBj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCisgeworICAgaW50IHJldDsKK0luZGV4OiBnZGItNy41 LjAuMjAxMjA5MjYvZ2RiL2RvdWJsZXN0LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAx MjA5MjYub3JpZy9nZGIvZG91Ymxlc3QuYwkyMDEyLTAxLTA0IDA5OjE3OjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZG91Ymxlc3QuYwkyMDEyLTExLTA3IDIy OjA5OjI5Ljc5NzE0MDg0OCArMDEwMAorQEAgLTc3MCw3ICs3NzAsNyBAQCBmbG9hdGZvcm1hdF9m cm9tX2RvdWJsZXN0IChjb25zdCBzdHJ1Y3QKKyAgICBidXQgbm90IHBhc3NlZCBvbiBieSBHREIu ICBUaGlzIHNob3VsZCBiZSBmaXhlZC4gICovCisgCisgc3RhdGljIGNvbnN0IHN0cnVjdCBmbG9h dGZvcm1hdCAqCistZmxvYXRmb3JtYXRfZnJvbV9sZW5ndGggKHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoLCBpbnQgbGVuKQorK2Zsb2F0Zm9ybWF0X2Zyb21fbGVuZ3RoIChzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCwgTE9OR0VTVCBsZW4pCisgeworICAgY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICpm b3JtYXQ7CisgCitAQCAtNzk4LDggKzc5OCw4IEBAIGZsb2F0Zm9ybWF0X2Zyb21fbGVuZ3RoIChz dHJ1Y3QgZ2RiYXJjaAorICAgZWxzZQorICAgICBmb3JtYXQgPSBOVUxMOworICAgaWYgKGZvcm1h dCA9PSBOVUxMKQorLSAgICBlcnJvciAoXygiVW5yZWNvZ25pemVkICVkLWJpdCBmbG9hdGluZy1w b2ludCB0eXBlLiIpLAorLQkgICBsZW4gKiBUQVJHRVRfQ0hBUl9CSVQpOworKyAgICBlcnJvciAo XygiVW5yZWNvZ25pemVkICVzLWJpdCBmbG9hdGluZy1wb2ludCB0eXBlLiIpLAorKwkgICBwbG9u Z2VzdCAobGVuICogVEFSR0VUX0NIQVJfQklUKSk7CisgICByZXR1cm4gZm9ybWF0OworIH0KKyAK K0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2R3YXJmMmxvYy5jCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTItMTEtMDcgMjI6 MDA6NDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9kd2FyZjJs b2MuYwkyMDEyLTExLTA3IDIyOjA5OjI5LjgwMDE0MDg0NCArMDEwMAorQEAgLTE2NzIsMTkgKzE2 NzIsMTkgQEAgaW5zZXJ0X2JpdHMgKHVuc2lnbmVkIGludCBkYXR1bSwKKyAgICBCSVRTX0JJR19F TkRJQU4gaXMgdGFrZW4gZGlyZWN0bHkgZnJvbSBnZGJhcmNoLiAgKi8KKyAKKyBzdGF0aWMgdm9p ZAorLWNvcHlfYml0d2lzZSAoZ2RiX2J5dGUgKmRlc3QsIHVuc2lnbmVkIGludCBkZXN0X29mZnNl dF9iaXRzLAorLQkgICAgICBjb25zdCBnZGJfYnl0ZSAqc291cmNlLCB1bnNpZ25lZCBpbnQgc291 cmNlX29mZnNldF9iaXRzLAorLQkgICAgICB1bnNpZ25lZCBpbnQgYml0X2NvdW50LAorK2NvcHlf Yml0d2lzZSAoZ2RiX2J5dGUgKmRlc3QsIFVMT05HRVNUIGRlc3Rfb2Zmc2V0X2JpdHMsCisrCSAg ICAgIGNvbnN0IGdkYl9ieXRlICpzb3VyY2UsIFVMT05HRVNUIHNvdXJjZV9vZmZzZXQsCisrCSAg ICAgIFVMT05HRVNUIGJpdF9jb3VudCwKKyAJICAgICAgaW50IGJpdHNfYmlnX2VuZGlhbikKKyB7 CistICB1bnNpZ25lZCBpbnQgZGVzdF9hdmFpbDsKKysgIHVuc2lnbmVkIGludCBkZXN0X2F2YWls LCBzb3VyY2Vfb2Zmc2V0X2JpdHM7CisgICBpbnQgZGF0dW07CisgCisgICAvKiBSZWR1Y2UgZXZl cnl0aGluZyB0byBieXRlLXNpemUgcGllY2VzLiAgKi8KKyAgIGRlc3QgKz0gZGVzdF9vZmZzZXRf Yml0cyAvIDg7CisgICBkZXN0X29mZnNldF9iaXRzICU9IDg7CistICBzb3VyY2UgKz0gc291cmNl X29mZnNldF9iaXRzIC8gODsKKy0gIHNvdXJjZV9vZmZzZXRfYml0cyAlPSA4OworKyAgc291cmNl ICs9IHNvdXJjZV9vZmZzZXQgLyA4OworKyAgc291cmNlX29mZnNldF9iaXRzID0gc291cmNlX29m ZnNldCAlIDg7CisgCisgICBkZXN0X2F2YWlsID0gOCAtIGRlc3Rfb2Zmc2V0X2JpdHMgJSA4Owor IAorQEAgLTE3MjIsMTMgKzE3MjIsMTMgQEAgc3RhdGljIHZvaWQKKyByZWFkX3BpZWNlZF92YWx1 ZSAoc3RydWN0IHZhbHVlICp2KQorIHsKKyAgIGludCBpOworLSAgbG9uZyBvZmZzZXQgPSAwOwor KyAgTE9OR0VTVCBvZmZzZXQgPSAwOworICAgVUxPTkdFU1QgYml0c190b19za2lwOworICAgZ2Ri X2J5dGUgKmNvbnRlbnRzOworICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmMKKyAgICAgPSAoc3Ry dWN0IHBpZWNlX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodik7CisgICBzdHJ1 Y3QgZnJhbWVfaW5mbyAqZnJhbWUgPSBmcmFtZV9maW5kX2J5X2lkIChWQUxVRV9GUkFNRV9JRCAo dikpOworLSAgc2l6ZV90IHR5cGVfbGVuOworKyAgVUxPTkdFU1QgdHlwZV9sZW47CisgICBzaXpl X3QgYnVmZmVyX3NpemUgPSAwOworICAgY2hhciAqYnVmZmVyID0gTlVMTDsKKyAgIHN0cnVjdCBj bGVhbnVwICpjbGVhbnVwOworQEAgLTE3NTUsOCArMTc1NSw4IEBAIHJlYWRfcGllY2VkX3ZhbHVl IChzdHJ1Y3QgdmFsdWUgKnYpCisgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgb2Zm c2V0IDwgdHlwZV9sZW47IGkrKykKKyAgICAgeworICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3Bp ZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKKy0gICAgICBzaXplX3QgdGhpc19zaXplLCB0aGlzX3Np emVfYml0czsKKy0gICAgICBsb25nIGRlc3Rfb2Zmc2V0X2JpdHMsIHNvdXJjZV9vZmZzZXRfYml0 cywgc291cmNlX29mZnNldDsKKysgICAgICBVTE9OR0VTVCB0aGlzX3NpemUsIHRoaXNfc2l6ZV9i aXRzOworKyAgICAgIExPTkdFU1QgZGVzdF9vZmZzZXRfYml0cywgc291cmNlX29mZnNldF9iaXRz LCBzb3VyY2Vfb2Zmc2V0OworICAgICAgIGNvbnN0IGdkYl9ieXRlICppbnRlcm1lZGlhdGVfYnVm ZmVyOworIAorICAgICAgIC8qIENvbXB1dGUgc2l6ZSwgc291cmNlLCBhbmQgZGVzdGluYXRpb24g b2Zmc2V0cyBmb3IgY29weWluZywgaW4KK0BAIC0xOTA1LDEzICsxOTA1LDEzIEBAIHN0YXRpYyB2 b2lkCisgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFsdWUg KmZyb20pCisgeworICAgaW50IGk7CistICBsb25nIG9mZnNldCA9IDA7CisrICBMT05HRVNUIG9m ZnNldCA9IDA7CisgICBVTE9OR0VTVCBiaXRzX3RvX3NraXA7CisgICBjb25zdCBnZGJfYnl0ZSAq Y29udGVudHM7CisgICBzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqYworICAgICA9IChzdHJ1Y3QgcGll Y2VfY2xvc3VyZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJlICh0byk7CisgICBzdHJ1Y3QgZnJh bWVfaW5mbyAqZnJhbWUgPSBmcmFtZV9maW5kX2J5X2lkIChWQUxVRV9GUkFNRV9JRCAodG8pKTsK Ky0gIHNpemVfdCB0eXBlX2xlbjsKKysgIFVMT05HRVNUIHR5cGVfbGVuOworICAgc2l6ZV90IGJ1 ZmZlcl9zaXplID0gMDsKKyAgIGNoYXIgKmJ1ZmZlciA9IE5VTEw7CisgICBzdHJ1Y3QgY2xlYW51 cCAqY2xlYW51cDsKK0BAIC0xOTM5LDggKzE5MzksOCBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0 cnVjdCB2YWx1ZSAqdG8sIHN0CisgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgb2Zm c2V0IDwgdHlwZV9sZW47IGkrKykKKyAgICAgeworICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3Bp ZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKKy0gICAgICBzaXplX3QgdGhpc19zaXplX2JpdHMsIHRo aXNfc2l6ZTsKKy0gICAgICBsb25nIGRlc3Rfb2Zmc2V0X2JpdHMsIHNvdXJjZV9vZmZzZXRfYml0 cywgZGVzdF9vZmZzZXQsIHNvdXJjZV9vZmZzZXQ7CisrICAgICAgVUxPTkdFU1QgdGhpc19zaXpl X2JpdHMsIHRoaXNfc2l6ZTsKKysgICAgICBMT05HRVNUIGRlc3Rfb2Zmc2V0X2JpdHMsIHNvdXJj ZV9vZmZzZXRfYml0cywgZGVzdF9vZmZzZXQsIHNvdXJjZV9vZmZzZXQ7CisgICAgICAgaW50IG5l ZWRfYml0d2lzZTsKKyAgICAgICBjb25zdCBnZGJfYnl0ZSAqc291cmNlX2J1ZmZlcjsKKyAKK0BA IC0yMDY5LDggKzIwNjksOCBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdG8s IHN0CisgICAgaW1wbGljaXQgcG9pbnRlci4gICovCisgCisgc3RhdGljIGludAorLWNoZWNrX3Bp ZWNlZF92YWx1ZV9iaXRzIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgYml0X29mZnNl dCwKKy0JCQkgaW50IGJpdF9sZW5ndGgsCisrY2hlY2tfcGllY2VkX3ZhbHVlX2JpdHMgKGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1QgYml0X29mZnNldCwKKysJCQkgTE9OR0VTVCBi aXRfbGVuZ3RoLAorIAkJCSBlbnVtIGR3YXJmX3ZhbHVlX2xvY2F0aW9uIGNoZWNrX2ZvcikKKyB7 CisgICBzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqYworQEAgLTIwODYsNyArMjA4Niw3IEBAIGNoZWNr X3BpZWNlZF92YWx1ZV9iaXRzIChjb25zdCBzdHJ1Y3QgdmEKKyAgIGZvciAoaSA9IDA7IGkgPCBj LT5uX3BpZWNlcyAmJiBiaXRfbGVuZ3RoID4gMDsgaSsrKQorICAgICB7CisgICAgICAgc3RydWN0 IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOworLSAgICAgIHNpemVfdCB0aGlz X3NpemVfYml0cyA9IHAtPnNpemU7CisrICAgICAgVUxPTkdFU1QgdGhpc19zaXplX2JpdHMgPSBw LT5zaXplOworIAorICAgICAgIGlmIChiaXRfb2Zmc2V0ID4gMCkKKyAJeworQEAgLTIxMjQsOCAr MjEyNCw4IEBAIGNoZWNrX3BpZWNlZF92YWx1ZV9iaXRzIChjb25zdCBzdHJ1Y3QgdmEKKyB9Cisg Cisgc3RhdGljIGludAorLWNoZWNrX3BpZWNlZF92YWx1ZV92YWxpZGl0eSAoY29uc3Qgc3RydWN0 IHZhbHVlICp2YWx1ZSwgaW50IGJpdF9vZmZzZXQsCistCQkJICAgICBpbnQgYml0X2xlbmd0aCkK KytjaGVja19waWVjZWRfdmFsdWVfdmFsaWRpdHkgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUs IExPTkdFU1QgYml0X29mZnNldCwKKysJCQkgICAgIExPTkdFU1QgYml0X2xlbmd0aCkKKyB7Cisg ICByZXR1cm4gY2hlY2tfcGllY2VkX3ZhbHVlX2JpdHMgKHZhbHVlLCBiaXRfb2Zmc2V0LCBiaXRf bGVuZ3RoLAorIAkJCQkgIERXQVJGX1ZBTFVFX01FTU9SWSk7CitAQCAtMjE0Myw4ICsyMTQzLDgg QEAgY2hlY2tfcGllY2VkX3ZhbHVlX2ludmFsaWQgKGNvbnN0IHN0cnVjdAorICAgIGEgc3ludGhl dGljIHBvaW50ZXIuICAqLworIAorIHN0YXRpYyBpbnQKKy1jaGVja19waWVjZWRfc3ludGhldGlj X3BvaW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBiaXRfb2Zmc2V0LAorLQkJ CQlpbnQgYml0X2xlbmd0aCkKKytjaGVja19waWVjZWRfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1QgYml0X29mZnNldCwKKysJCQkJTE9OR0VTVCBi aXRfbGVuZ3RoKQorIHsKKyAgIHJldHVybiBjaGVja19waWVjZWRfdmFsdWVfYml0cyAodmFsdWUs IGJpdF9vZmZzZXQsIGJpdF9sZW5ndGgsCisgCQkJCSAgRFdBUkZfVkFMVUVfSU1QTElDSVRfUE9J TlRFUik7CitAQCAtMjE2OSw5ICsyMTY5LDEwIEBAIGluZGlyZWN0X3BpZWNlZF92YWx1ZSAoc3Ry dWN0IHZhbHVlICp2YWwKKyAgIHN0cnVjdCB0eXBlICp0eXBlOworICAgc3RydWN0IGZyYW1lX2lu Zm8gKmZyYW1lOworICAgc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uIGJhdG9uOworLSAgaW50 IGksIGJpdF9vZmZzZXQsIGJpdF9sZW5ndGg7CisrICBpbnQgaTsKKysgIExPTkdFU1QgYml0X2xl bmd0aDsKKyAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwaWVjZSA9IE5VTEw7CistICBMT05H RVNUIGJ5dGVfb2Zmc2V0OworKyAgTE9OR0VTVCBieXRlX29mZnNldCwgYml0X29mZnNldDsKKyAK KyAgIHR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICh2YWx1ZSkpOworICAgaWYgKFRZ UEVfQ09ERSAodHlwZSkgIT0gVFlQRV9DT0RFX1BUUikKK0BAIC0yMTg1LDcgKzIxODYsNyBAQCBp bmRpcmVjdF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsCisgICBmb3IgKGkgPSAwOyBp IDwgYy0+bl9waWVjZXMgJiYgYml0X2xlbmd0aCA+IDA7IGkrKykKKyAgICAgeworICAgICAgIHN0 cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKKy0gICAgICBzaXplX3Qg dGhpc19zaXplX2JpdHMgPSBwLT5zaXplOworKyAgICAgIFVMT05HRVNUIHRoaXNfc2l6ZV9iaXRz ID0gcC0+c2l6ZTsKKyAKKyAgICAgICBpZiAoYml0X29mZnNldCA+IDApCisgCXsKK0BAIC0yNDAw LDcgKzI0MDEsNyBAQCBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2NfZnVsbCAoc3RydWN0IHR5Cisg CSAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVlID0gZHdhcmZfZXhwcl9mZXRjaCAoY3R4LCAwKTsKKyAJ ICAgIGdkYl9ieXRlICpjb250ZW50czsKKyAJICAgIGNvbnN0IGdkYl9ieXRlICp2YWxfYnl0ZXM7 CistCSAgICBzaXplX3QgbiA9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlICh2YWx1ZSkpOworKwkg ICAgVUxPTkdFU1QgbiA9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlICh2YWx1ZSkpOworIAorIAkg ICAgaWYgKGJ5dGVfb2Zmc2V0ICsgVFlQRV9MRU5HVEggKHR5cGUpID4gbikKKyAJICAgICAgaW52 YWxpZF9zeW50aGV0aWNfcG9pbnRlciAoKTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2Ri L2R3YXJmMnJlYWQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dk Yi9kd2FyZjJyZWFkLmMJMjAxMi0xMS0wNyAyMjowMDo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBn ZGItNy41LjAuMjAxMjA5MjYvZ2RiL2R3YXJmMnJlYWQuYwkyMDEyLTExLTA3IDIyOjA5OjI5Ljgw OTE0MDgzMiArMDEwMAorQEAgLTExMjgsMTIgKzExMjgsMTIgQEAgZHdhcmYyX2NvbXBsZXhfbG9j YXRpb25fZXhwcl9jb21wbGFpbnQgKAorIH0KKyAKKyBzdGF0aWMgdm9pZAorLWR3YXJmMl9jb25z dF92YWx1ZV9sZW5ndGhfbWlzbWF0Y2hfY29tcGxhaW50IChjb25zdCBjaGFyICphcmcxLCBpbnQg YXJnMiwKKy0JCQkJCSAgICAgIGludCBhcmczKQorK2R3YXJmMl9jb25zdF92YWx1ZV9sZW5ndGhf bWlzbWF0Y2hfY29tcGxhaW50IChjb25zdCBjaGFyICphcmcxLCBMT05HRVNUIGFyZzIsCisrCQkJ CQkgICAgICBMT05HRVNUIGFyZzMpCisgeworICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFp bnRzLAorLQkgICAgIF8oImNvbnN0IHZhbHVlIGxlbmd0aCBtaXNtYXRjaCBmb3IgJyVzJywgZ290 ICVkLCBleHBlY3RlZCAlZCIpLAorLQkgICAgIGFyZzEsIGFyZzIsIGFyZzMpOworKwkgICAgIF8o ImNvbnN0IHZhbHVlIGxlbmd0aCBtaXNtYXRjaCBmb3IgJyVzJywgZ290ICVzLCBleHBlY3RlZCAl cyIpLAorKwkgICAgIGFyZzEsIHBsb25nZXN0IChhcmcyKSwgcGxvbmdlc3QgKGFyZzMpKTsKKyB9 CisgCisgc3RhdGljIHZvaWQKK0BAIC05ODMxLDggKzk4MzEsOCBAQCBkd2FyZjJfYWRkX2ZpZWxk IChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwCisgCSAgICAgICAgIG9iamVjdCwgYW5kIHRoZW4gc3Vi dHJhY3Qgb2ZmIHRoZSBudW1iZXIgb2YgYml0cyBvZgorIAkgICAgICAgICB0aGUgZmllbGQgaXRz ZWxmLiAgVGhlIHJlc3VsdCBpcyB0aGUgYml0IG9mZnNldCBvZgorIAkgICAgICAgICB0aGUgTFNC IG9mIHRoZSBmaWVsZC4gICovCistCSAgICAgIGludCBhbm9ueW1vdXNfc2l6ZTsKKy0JICAgICAg aW50IGJpdF9vZmZzZXQgPSBEV19VTlNORCAoYXR0cik7CisrCSAgICAgIExPTkdFU1QgYW5vbnlt b3VzX3NpemU7CisrCSAgICAgIExPTkdFU1QgYml0X29mZnNldCA9IERXX1VOU05EIChhdHRyKTsK KyAKKyAJICAgICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5dGVfc2l6ZSwgY3Up OworIAkgICAgICBpZiAoYXR0cikKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2V2YWwu YworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9ldmFsLmMJMjAx Mi0xMS0wNyAyMjowMDo0MS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYv Z2RiL2V2YWwuYwkyMDEyLTExLTA3IDIyOjEzOjUyLjA5NjgzNzMxNCArMDEwMAorQEAgLTMyMCw3 ICszMjAsOCBAQCBldmFsdWF0ZV9zdHJ1Y3RfdHVwbGUgKHN0cnVjdCB2YWx1ZSAqc3RyCisgICAg ICAgaW50IHBjID0gKnBvczsKKyAgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbCA9IE5VTEw7CisgICAg ICAgaW50IG5sYWJlbHMgPSAwOworLSAgICAgIGludCBiaXRwb3MsIGJpdHNpemU7CisrICAgICAg aW50IGJpdHNpemU7CisrICAgICAgTE9OR0VTVCBiaXRwb3M7CisgICAgICAgYmZkX2J5dGUgKmFk ZHI7CisgCisgICAgICAgLyogU2tpcCBwYXN0IHRoZSBsYWJlbHMsIGFuZCBjb3VudCB0aGVtLiAg Ki8KK0BAIC00NjMsNyArNDY0LDcgQEAgaW5pdF9hcnJheV9lbGVtZW50IChzdHJ1Y3QgdmFsdWUg KmFycmF5LAorIAkJICAgIGVudW0gbm9zaWRlIG5vc2lkZSwgTE9OR0VTVCBsb3dfYm91bmQsIExP TkdFU1QgaGlnaF9ib3VuZCkKKyB7CisgICBMT05HRVNUIGluZGV4OworLSAgaW50IGVsZW1lbnRf c2l6ZSA9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlIChlbGVtZW50KSk7CisrICBMT05HRVNUIGVs ZW1lbnRfc2l6ZSA9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlIChlbGVtZW50KSk7CisgCisgICBp ZiAoZXhwLT5lbHRzWypwb3NdLm9wY29kZSA9PSBCSU5PUF9DT01NQSkKKyAgICAgeworQEAgLTgx NiwxMSArODE3LDExIEBAIGJpbm9wX3Byb21vdGUgKGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWYK KyAgICAgLyogRklYTUU6IEFsc28gbWl4ZWQgaW50ZWdyYWwvYm9vbGVhbnMsIHdpdGggcmVzdWx0 IGFuIGludGVnZXIuICAqLworICAgICB7CisgICAgICAgY29uc3Qgc3RydWN0IGJ1aWx0aW5fdHlw ZSAqYnVpbHRpbiA9IGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCk7CistICAgICAgdW5zaWduZWQgaW50 IHByb21vdGVkX2xlbjEgPSBUWVBFX0xFTkdUSCAodHlwZTEpOworLSAgICAgIHVuc2lnbmVkIGlu dCBwcm9tb3RlZF9sZW4yID0gVFlQRV9MRU5HVEggKHR5cGUyKTsKKysgICAgICBVTE9OR0VTVCBw cm9tb3RlZF9sZW4xID0gVFlQRV9MRU5HVEggKHR5cGUxKTsKKysgICAgICBVTE9OR0VTVCBwcm9t b3RlZF9sZW4yID0gVFlQRV9MRU5HVEggKHR5cGUyKTsKKyAgICAgICBpbnQgaXNfdW5zaWduZWQx ID0gVFlQRV9VTlNJR05FRCAodHlwZTEpOworICAgICAgIGludCBpc191bnNpZ25lZDIgPSBUWVBF X1VOU0lHTkVEICh0eXBlMik7CistICAgICAgdW5zaWduZWQgaW50IHJlc3VsdF9sZW47CisrICAg ICAgVUxPTkdFU1QgcmVzdWx0X2xlbjsKKyAgICAgICBpbnQgdW5zaWduZWRfb3BlcmF0aW9uOwor IAorICAgICAgIC8qIERldGVybWluZSB0eXBlIGxlbmd0aCBhbmQgc2lnbmVkbmVzcyBhZnRlciBw cm9tb3Rpb24gZm9yCitAQCAtMTAwNCw3ICsxMDA1LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5k YXJkIChzdHJ1Y3QgdHlwZSAqZQorICAgaW50IGxvd2VyOworICAgaW50IGNvZGU7CisgICBpbnQg aXg7CistICBsb25nIG1lbV9vZmZzZXQ7CisrICBMT05HRVNUIG1lbV9vZmZzZXQ7CisgICBzdHJ1 Y3QgdHlwZSAqKmFyZ190eXBlczsKKyAgIGludCBzYXZlX3BvczE7CisgICBzdHJ1Y3Qgc3ltYm9s ICpmdW5jdGlvbiA9IE5VTEw7CitAQCAtMTE5NCw3ICsxMTk1LDcgQEAgZXZhbHVhdGVfc3ViZXhw X3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZQorIAkgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlID0g VFlQRV9JTkRFWF9UWVBFICh0eXBlKTsKKyAJICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBlID0g VFlQRV9UQVJHRVRfVFlQRSAodHlwZSk7CisgCSAgc3RydWN0IHZhbHVlICphcnJheSA9IGFsbG9j YXRlX3ZhbHVlIChleHBlY3RfdHlwZSk7CistCSAgaW50IGVsZW1lbnRfc2l6ZSA9IFRZUEVfTEVO R1RIIChjaGVja190eXBlZGVmIChlbGVtZW50X3R5cGUpKTsKKysJICBMT05HRVNUIGVsZW1lbnRf c2l6ZSA9IFRZUEVfTEVOR1RIIChjaGVja190eXBlZGVmIChlbGVtZW50X3R5cGUpKTsKKyAJICBM T05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZCwgaW5kZXg7CisgCisgCSAgaWYgKGdldF9kaXNj cmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKSA8IDApCitA QCAtMjE5NCw3ICsyMTk1LDggQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlw ZSAqZQorICAgICAgIHsKKyAgICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFsdWVfdHlwZSAo YXJnMSk7CisgICAgICAgICBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlOworLSAgICAgICAgaW50IGZ1 bGwsIHRvcCwgdXNpbmdfZW5jOworKyAgICAgICAgaW50IGZ1bGwsIHVzaW5nX2VuYzsKKysJTE9O R0VTVCB0b3A7CisgCXN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHM7CisgCisgCWdldF91 c2VyX3ByaW50X29wdGlvbnMgKCZvcHRzKTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2Ri L2YtbGFuZy5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2Yt bGFuZy5jCTIwMTItMTEtMDcgMjI6MDA6NDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4w LjIwMTIwOTI2L2dkYi9mLWxhbmcuYwkyMDEyLTExLTA3IDIyOjA5OjI5Ljg0NzE0MDc3NiArMDEw MAorQEAgLTEyNCw3ICsxMjQsNyBAQCBmX3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0 eXBlLCBzCisgCisgc3RhdGljIHZvaWQKKyBmX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnN0cmluZywKKy0JICAgIHVu c2lnbmVkIGludCBsZW5ndGgsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBz ZXMsCisrCSAgICBVTE9OR0VTVCBsZW5ndGgsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9y Y2VfZWxsaXBzZXMsCisgCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0 aW9ucykKKyB7CisgICBjb25zdCBjaGFyICp0eXBlX2VuY29kaW5nID0gZl9nZXRfZW5jb2Rpbmcg KHR5cGUpOworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZi1sYW5nLmgKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvZi1sYW5nLmgJMjAxMi0xMS0wNyAy MjowMDo0My4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2YtbGFu Zy5oCTIwMTItMTEtMDcgMjI6MTI6MzkuNTA0ODY1MjA4ICswMTAwCitAQCAtMzIsNyArMzIsNyBA QCBleHRlcm4gY29uc3QgY2hhciAqZl9vYmplY3RfYWRkcmVzc19kYXRhCisgICAoc3RydWN0IHR5 cGUgKnR5cGUsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pOworIGV4dGVybiB2b2lkIGZfb2JqZWN0 X2FkZHJlc3NfZGF0YV92YWxpZF9vcl9lcnJvciAoc3RydWN0IHR5cGUgKnR5cGUpOworIAorLWV4 dGVybiB2b2lkIGZfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLCBp bnQsIENPUkVfQUREUiwKKytleHRlcm4gdm9pZCBmX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwg Y29uc3QgZ2RiX2J5dGUgKiwgTE9OR0VTVCwgQ09SRV9BRERSLAorIAkJCSBzdHJ1Y3QgdWlfZmls ZSAqLCBpbnQsCisgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAorIAkJCSBjb25zdCBzdHJ1Y3Qg dmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2Yt dmFscHJpbnQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9m LXZhbHByaW50LmMJMjAxMi0xMS0wNyAyMjowMDo0My4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGIt Ny41LjAuMjAxMjA5MjYvZ2RiL2YtdmFscHJpbnQuYwkyMDEyLTExLTA3IDIyOjA5OjI5Ljg0OTE0 MDc3MiArMDEwMAorQEAgLTQzLDcgKzQzLDcgQEAgc3RhdGljIHZvaWQgZjc3X2NyZWF0ZV9hcnJh eXByaW50X29mZnNldAorIAkJCQkJICAgICAgc3RydWN0IHVpX2ZpbGUgKik7Cisgc3RhdGljIHZv aWQgZjc3X2dldF9keW5hbWljX2xlbmd0aF9vZl9hZ2dyZWdhdGUgKHN0cnVjdCB0eXBlICopOwor IAorLWludCBmNzdfYXJyYXlfb2Zmc2V0X3RibFtNQVhfRk9SVFJBTl9ESU1TICsgMV1bMl07Cisr TE9OR0VTVCBmNzdfYXJyYXlfb2Zmc2V0X3RibFtNQVhfRk9SVFJBTl9ESU1TICsgMV1bMl07Cisg CisgLyogQXJyYXkgd2hpY2ggaG9sZHMgb2Zmc2V0cyB0byBiZSBhcHBsaWVkIHRvIGdldCBhIHJv dydzIGVsZW1lbnRzCisgICAgZm9yIGEgZ2l2ZW4gYXJyYXkuICBBcnJheSBhbHNvIGhvbGRzIHRo ZSBzaXplIG9mIGVhY2ggc3ViYXJyYXkuICAqLworQEAgLTEyNiw3ICsxMjYsNyBAQCBzdGF0aWMg dm9pZAorIGY3N19jcmVhdGVfYXJyYXlwcmludF9vZmZzZXRfdGJsIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKKyB7CisgICBzdHJ1Y3QgdHlwZSAqdG1wX3R5cGU7 CistICBpbnQgZWx0bGVuOworKyAgTE9OR0VTVCBlbHRsZW47CisgICBpbnQgbmRpbWVuID0gMTsK KyAgIGludCB1cHBlciwgbG93ZXI7CisgCitAQCAtMTcxLDEzICsxNzEsMTMgQEAgZjc3X2NyZWF0 ZV9hcnJheXByaW50X29mZnNldF90YmwgKHN0cnVjdAorIHN0YXRpYyB2b2lkCisgZjc3X3ByaW50 X2FycmF5XzEgKGludCBuc3MsIGludCBuZGltZW5zaW9ucywgc3RydWN0IHR5cGUgKnR5cGUsCisg CQkgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKKy0JCSAgIGludCBlbWJlZGRlZF9vZmZzZXQs IENPUkVfQUREUiBhZGRyZXNzLAorKwkJICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVf QUREUiBhZGRyZXNzLAorIAkJICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2Us CisgCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJCSAgIGNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAorIAkJICAgaW50ICplbHRzKQorIHsKKy0gIGludCBp OworKyAgTE9OR0VTVCBpOworIAorICAgaWYgKG5zcyAhPSBuZGltZW5zaW9ucykKKyAgICAgewor QEAgLTIyMCw3ICsyMjAsNyBAQCBmNzdfcHJpbnRfYXJyYXlfMSAoaW50IG5zcywgaW50IG5kaW1l bnNpCisgCisgc3RhdGljIHZvaWQKKyBmNzdfcHJpbnRfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBl LCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKKy0JCSBpbnQgZW1iZWRkZWRfb2Zmc2V0LAorKwkJ IExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAorIAkJIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtLAorIAkJIGludCByZWN1cnNlLAorIAkJIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsLAorQEAgLTI2Myw4ICsyNjMsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVyaWNf dmFsX3ByaW50X2RlCisgICAgZnVuY3Rpb247IHRoZXkgYXJlIGlkZW50aWNhbC4gICovCisgCisg dm9pZAorLWZfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZh bGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCistCSAgICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0 cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorK2ZfdmFsX3ByaW50IChzdHJ1Y3Qg dHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCisrCSAgICAgTE9OR0VTVCBlbWJl ZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAorKwkgICAgIHN0cnVjdCB1aV9maWxlICpz dHJlYW0sIGludCByZWN1cnNlLAorIAkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxf dmFsdWUsCisgCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMp CisgeworQEAgLTM4OSw3ICszOTAsNyBAQCBmX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGdkCisgICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKCAiKTsKKyAgICAg ICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBpbmRleCsrKQor ICAgICAgICAgeworLSAgICAgICAgICBpbnQgb2Zmc2V0ID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5 cGUsIGluZGV4KSAvIDg7CisrCSAgTE9OR0VTVCBvZmZzZXQgPSBUWVBFX0ZJRUxEX0JJVFBPUyAo dHlwZSwgaW5kZXgpIC8gODsKKyAKKyAgICAgICAgICAgdmFsX3ByaW50IChUWVBFX0ZJRUxEX1RZ UEUgKHR5cGUsIGluZGV4KSwgdmFsYWRkciwKKyAJCSAgICAgZW1iZWRkZWRfb2Zmc2V0ICsgb2Zm c2V0LAorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZmluZHZhci5jCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2ZpbmR2YXIuYwkyMDEyLTExLTA3IDIy OjAwOjQxLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZmluZHZh ci5jCTIwMTItMTEtMDcgMjI6MTA6MjEuODU1MDY1MjEwICswMTAwCitAQCAtNjQ1LDcgKzY0NSw3 IEBAIGRlZmF1bHRfdmFsdWVfZnJvbV9yZWdpc3RlciAoc3RydWN0IHR5cGUKKyAJCQkgICAgIHN0 cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKKyB7CisgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9 IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7CistICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUp OworKyAgTE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgICBzdHJ1Y3QgdmFsdWUg KnZhbHVlID0gYWxsb2NhdGVfdmFsdWUgKHR5cGUpOworIAorICAgVkFMVUVfTFZBTCAodmFsdWUp ID0gbHZhbF9yZWdpc3RlcjsKK0BAIC02NzUsMTAgKzY3NSwxMCBAQCB2b2lkCisgcmVhZF9mcmFt ZV9yZWdpc3Rlcl92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwgc3RydWN0IGZyYW1lX2luZm8g KmZyYW1lKQorIHsKKyAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X2ZyYW1lX2FyY2gg KGZyYW1lKTsKKy0gIGludCBvZmZzZXQgPSAwOworLSAgaW50IHJlZ19vZmZzZXQgPSB2YWx1ZV9v ZmZzZXQgKHZhbHVlKTsKKysgIExPTkdFU1Qgb2Zmc2V0ID0gMDsKKysgIExPTkdFU1QgcmVnX29m ZnNldCA9IHZhbHVlX29mZnNldCAodmFsdWUpOworICAgaW50IHJlZ251bSA9IFZBTFVFX1JFR05V TSAodmFsdWUpOworLSAgaW50IGxlbiA9IFRZUEVfTEVOR1RIIChjaGVja190eXBlZGVmICh2YWx1 ZV90eXBlICh2YWx1ZSkpKTsKKysgIExPTkdFU1QgbGVuID0gVFlQRV9MRU5HVEggKGNoZWNrX3R5 cGVkZWYgKHZhbHVlX3R5cGUgKHZhbHVlKSkpOworIAorICAgZ2RiX2Fzc2VydCAoVkFMVUVfTFZB TCAodmFsdWUpID09IGx2YWxfcmVnaXN0ZXIpOworIAorQEAgLTY5Myw3ICs2OTMsNyBAQCByZWFk X2ZyYW1lX3JlZ2lzdGVyX3ZhbHVlIChzdHJ1Y3QgdmFsdWUKKyAgIHdoaWxlIChsZW4gPiAwKQor ICAgICB7CisgICAgICAgc3RydWN0IHZhbHVlICpyZWd2YWwgPSBnZXRfZnJhbWVfcmVnaXN0ZXJf dmFsdWUgKGZyYW1lLCByZWdudW0pOworLSAgICAgIGludCByZWdfbGVuID0gVFlQRV9MRU5HVEgg KHZhbHVlX3R5cGUgKHJlZ3ZhbCkpIC0gcmVnX29mZnNldDsKKysgICAgICBMT05HRVNUIHJlZ19s ZW4gPSBUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSAocmVndmFsKSkgLSByZWdfb2Zmc2V0OworIAor ICAgICAgIC8qIElmIHRoZSByZWdpc3RlciBsZW5ndGggaXMgbGFyZ2VyIHRoYW4gdGhlIG51bWJl ciBvZiBieXRlcworICAgICAgICAgIHJlbWFpbmluZyB0byBjb3B5LCB0aGVuIG9ubHkgY29weSB0 aGUgYXBwcm9wcmlhdGUgYnl0ZXMuICAqLworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIv ZnJhbWUuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9mcmFt ZS5jCTIwMTItMDktMTcgMDk6MTc6MjcuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNS4wLjIw MTIwOTI2L2dkYi9mcmFtZS5jCTIwMTItMTEtMDcgMjI6MDk6MjkuODUzMTQwNzY4ICswMTAwCitA QCAtMTExNyw3ICsxMTE3LDcgQEAgZnJhbWVfcmVnaXN0ZXJfcmVhZCAoc3RydWN0IGZyYW1lX2lu Zm8gKgorIAorIGludAorIGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoc3RydWN0IGZyYW1lX2lu Zm8gKmZyYW1lLCBpbnQgcmVnbnVtLAorLQkJCSAgQ09SRV9BRERSIG9mZnNldCwgaW50IGxlbiwg Z2RiX2J5dGUgKm15YWRkciwKKysJCQkgIENPUkVfQUREUiBvZmZzZXQsIExPTkdFU1QgbGVuLCBn ZGJfYnl0ZSAqbXlhZGRyLAorIAkJCSAgaW50ICpvcHRpbWl6ZWRwLCBpbnQgKnVuYXZhaWxhYmxl cCkKKyB7CisgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFt ZSk7CitAQCAtMTE0Niw3ICsxMTQ2LDcgQEAgZ2V0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChzdHJ1 Y3QgZnJhbWVfaQorICAgICB9CisgICBpZiAobGVuID4gbWF4c2l6ZSkKKyAgICAgZXJyb3IgKF8o IkJhZCBkZWJ1ZyBpbmZvcm1hdGlvbiBkZXRlY3RlZDogIgorLQkgICAgICJBdHRlbXB0IHRvIHJl YWQgJWQgYnl0ZXMgZnJvbSByZWdpc3RlcnMuIiksIGxlbik7CisrCSAgICAgIkF0dGVtcHQgdG8g cmVhZCAlcyBieXRlcyBmcm9tIHJlZ2lzdGVycy4iKSwgcGxvbmdlc3QgKGxlbikpOworIAorICAg LyogQ29weSB0aGUgZGF0YS4gICovCisgICB3aGlsZSAobGVuID4gMCkKK0luZGV4OiBnZGItNy41 LjAuMjAxMjA5MjYvZ2RiL2ZyYW1lLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5 MjYub3JpZy9nZGIvZnJhbWUuaAkyMDEyLTAzLTAxIDIzOjQ3OjQ2LjAwMDAwMDAwMCArMDEwMAor KysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZnJhbWUuaAkyMDEyLTExLTA3IDIyOjA5OjI5Ljg1 NDE0MDc2NiArMDEwMAorQEAgLTUzMCw3ICs1MzAsNyBAQCBleHRlcm4gdm9pZCBwdXRfZnJhbWVf cmVnaXN0ZXIgKHN0cnVjdCBmCisgICAgY29udGVudHMgYXJlIG9wdGltaXplZCBvdXQgb3IgdW5h dmFpbGFibGUsIHNldCAqT1BUSU1JWkVEUCwKKyAgICAqVU5BVkFJTEFCTEVQIGFjY29yZGluZ2x5 LiAgKi8KKyBleHRlcm4gaW50IGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoc3RydWN0IGZyYW1l X2luZm8gKmZyYW1lLCBpbnQgcmVnbnVtLAorLQkJCQkgICAgIENPUkVfQUREUiBvZmZzZXQsIGlu dCBsZW4sCisrCQkJCSAgICAgQ09SRV9BRERSIG9mZnNldCwgTE9OR0VTVCBsZW4sCisgCQkJCSAg ICAgZ2RiX2J5dGUgKm15YWRkciwKKyAJCQkJICAgICBpbnQgKm9wdGltaXplZHAsIGludCAqdW5h dmFpbGFibGVwKTsKKyAKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2dkYnR5cGVzLmMK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvZ2RidHlwZXMuYwky MDEyLTExLTA3IDIyOjAwOjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDky Ni9nZGIvZ2RidHlwZXMuYwkyMDEyLTExLTA3IDIyOjA5OjU3LjkyNDA5OTk4MiArMDEwMAorQEAg LTIwODksNyArMjA4OSw3IEBAIGFsbG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnVjdCB0eXBlICp0 eXAKKyAgICB3aGVyZSBpbml0X3R5cGUgaXMgY2FsbGVkIHdpdGggYSBOVUxMIHZhbHVlIGZvciBO QU1FKS4gICovCisgCisgc3RydWN0IHR5cGUgKgorLWluaXRfdHlwZSAoZW51bSB0eXBlX2NvZGUg Y29kZSwgaW50IGxlbmd0aCwgaW50IGZsYWdzLAorK2luaXRfdHlwZSAoZW51bSB0eXBlX2NvZGUg Y29kZSwgTE9OR0VTVCBsZW5ndGgsIGludCBmbGFncywKKyAJICAgY2hhciAqbmFtZSwgc3RydWN0 IG9iamZpbGUgKm9iamZpbGUpCisgeworICAgc3RydWN0IHR5cGUgKnR5cGU7CitAQCAtMjMyMSw4 ICsyMzIxLDggQEAgaXNfcHVibGljX2FuY2VzdG9yIChzdHJ1Y3QgdHlwZSAqYmFzZSwgcworIAor IHN0YXRpYyBpbnQKKyBpc191bmlxdWVfYW5jZXN0b3Jfd29ya2VyIChzdHJ1Y3QgdHlwZSAqYmFz ZSwgc3RydWN0IHR5cGUgKmRjbGFzcywKKy0JCQkgICBpbnQgKm9mZnNldCwKKy0JCQkgICBjb25z dCBnZGJfYnl0ZSAqdmFsYWRkciwgaW50IGVtYmVkZGVkX29mZnNldCwKKysJCQkgICBMT05HRVNU ICpvZmZzZXQsCisrCQkJICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIExPTkdFU1QgZW1iZWRk ZWRfb2Zmc2V0LAorIAkJCSAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdmFsdWUgKnZhbCkK KyB7CisgICBpbnQgaSwgY291bnQgPSAwOworQEAgLTIzMzMsNyArMjMzMyw3IEBAIGlzX3VuaXF1 ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICoKKyAgIGZvciAoaSA9IDA7IGkgPCBUWVBF X05fQkFTRUNMQVNTRVMgKGRjbGFzcykgJiYgY291bnQgPCAyOyArK2kpCisgICAgIHsKKyAgICAg ICBzdHJ1Y3QgdHlwZSAqaXRlcjsKKy0gICAgICBpbnQgdGhpc19vZmZzZXQ7CisrICAgICAgTE9O R0VTVCB0aGlzX29mZnNldDsKKyAKKyAgICAgICBpdGVyID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9C QVNFQ0xBU1MgKGRjbGFzcywgaSkpOworIAorQEAgLTIzNzQsNyArMjM3NCw3IEBAIGlzX3VuaXF1 ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICoKKyBpbnQKKyBpc191bmlxdWVfYW5jZXN0 b3IgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdmFsdWUgKnZhbCkKKyB7CistICBpbnQgb2Zm c2V0ID0gLTE7CisrICBMT05HRVNUIG9mZnNldCA9IC0xOworIAorICAgcmV0dXJuIGlzX3VuaXF1 ZV9hbmNlc3Rvcl93b3JrZXIgKGJhc2UsIHZhbHVlX3R5cGUgKHZhbCksICZvZmZzZXQsCisgCQkJ CSAgICB2YWx1ZV9jb250ZW50c19mb3JfcHJpbnRpbmcgKHZhbCksCitAQCAtMzI3NSw3ICszMjc1 LDcgQEAgcmVjdXJzaXZlX2R1bXBfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsCisgICAgICAgYnJl YWs7CisgICAgIH0KKyAgIHB1dHNfZmlsdGVyZWQgKCJcbiIpOworLSAgcHJpbnRmaV9maWx0ZXJl ZCAoc3BhY2VzLCAibGVuZ3RoICVkXG4iLCBUWVBFX0xFTkdUSCAodHlwZSkpOworKyAgcHJpbnRm aV9maWx0ZXJlZCAoc3BhY2VzLCAibGVuZ3RoICVzXG4iLCBwdWxvbmdlc3QgKFRZUEVfTEVOR1RI ICh0eXBlKSkpOworICAgaWYgKFRZUEVfT0JKRklMRV9PV05FRCAodHlwZSkpCisgICAgIHsKKyAg ICAgICBwcmludGZpX2ZpbHRlcmVkIChzcGFjZXMsICJvYmpmaWxlICIpOworQEAgLTMzOTUsOCAr MzM5NSw4IEBAIHJlY3Vyc2l2ZV9kdW1wX3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLAorIAkJCSAg aWR4LCBwbG9uZ2VzdCAoVFlQRV9GSUVMRF9FTlVNVkFMICh0eXBlLCBpZHgpKSk7CisgICAgICAg ZWxzZQorIAlwcmludGZpX2ZpbHRlcmVkIChzcGFjZXMgKyAyLAorLQkJCSAgIlslZF0gYml0cG9z ICVkIGJpdHNpemUgJWQgdHlwZSAiLAorLQkJCSAgaWR4LCBUWVBFX0ZJRUxEX0JJVFBPUyAodHlw ZSwgaWR4KSwKKysJCQkgICJbJWRdIGJpdHBvcyAlcyBiaXRzaXplICVkIHR5cGUgIiwKKysJCQkg IGlkeCwgcGxvbmdlc3QgKFRZUEVfRklFTERfQklUUE9TICh0eXBlLCBpZHgpKSwKKyAJCQkgIFRZ UEVfRklFTERfQklUU0laRSAodHlwZSwgaWR4KSk7CisgICAgICAgZ2RiX3ByaW50X2hvc3RfYWRk cmVzcyAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpZHgpLCBnZGJfc3Rkb3V0KTsKKyAgICAgICBw cmludGZfZmlsdGVyZWQgKCIgbmFtZSAnJXMnICgiLAorQEAgLTQxMDUsNyArNDEwNSw3IEBAIGZy ZWVfYWxsX3R5cGVzICh2b2lkKQorICAgIENPREUsIExFTkdUSCwgYW5kIE5BTUUgZmllbGRzLiAg Ki8KKyBzdHJ1Y3QgdHlwZSAqCisgYXJjaF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwK Ky0JICAgZW51bSB0eXBlX2NvZGUgY29kZSwgaW50IGxlbmd0aCwgY2hhciAqbmFtZSkKKysJICAg ZW51bSB0eXBlX2NvZGUgY29kZSwgTE9OR0VTVCBsZW5ndGgsIGNoYXIgKm5hbWUpCisgeworICAg c3RydWN0IHR5cGUgKnR5cGU7CisgCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9nZGJ0 eXBlcy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2dkYnR5 cGVzLmgJMjAxMi0xMS0wNyAyMjowMDo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAu MjAxMjA5MjYvZ2RiL2dkYnR5cGVzLmgJMjAxMi0xMS0wNyAyMjowOToyOS44NjExNDA3NTUgKzAx MDAKK0BAIC02MDIsNyArNjAyLDcgQEAgc3RydWN0IG1haW5fdHlwZQorIAkgICBnZGJhcmNoX2Jp dHNfYmlnX2VuZGlhbj0wIHRhcmdldHMsIGl0IGlzIHRoZSBiaXQgb2Zmc2V0IHRvCisgCSAgIHRo ZSBMU0IuICAqLworIAorLQlpbnQgYml0cG9zOworKwlMT05HRVNUIGJpdHBvczsKKyAKKyAJLyog RW51bSB2YWx1ZS4gICovCisgCUxPTkdFU1QgZW51bXZhbDsKK0BAIC03OTQsNyArNzk0LDcgQEAg c3RydWN0IHR5cGUKKyAgICAgIEhPU1RfQ0hBUl9CSVQuICBIb3dldmVyLCB0aGlzIHdvdWxkIHN0 aWxsIGZhaWwgdG8gYWRkcmVzcworICAgICAgbWFjaGluZXMgYmFzZWQgb24gYSB0ZXJuYXJ5IG9y IGRlY2ltYWwgcmVwcmVzZW50YXRpb24uICAqLworICAgCistICB1bnNpZ25lZCBsZW5ndGg7Cisr ICBVTE9OR0VTVCBsZW5ndGg7CisgCisgICAvKiBDb3JlIHR5cGUsIHNoYXJlZCBieSBhIGdyb3Vw IG9mIHF1YWxpZmllZCB0eXBlcy4gICovCisgICBzdHJ1Y3QgbWFpbl90eXBlICptYWluX3R5cGU7 CitAQCAtMTU0NiwxMSArMTU0NiwxMiBAQCBleHRlcm4gc3RydWN0IHR5cGUgKmFsbG9jX3R5cGVf Y29weSAoY29uCisgZXh0ZXJuIHN0cnVjdCBnZGJhcmNoICpnZXRfdHlwZV9hcmNoIChjb25zdCBz dHJ1Y3QgdHlwZSAqKTsKKyAKKyAvKiBIZWxwZXIgZnVuY3Rpb24gdG8gY29uc3RydWN0IG9iamZp bGUtb3duZWQgdHlwZXMuICAqLworLWV4dGVybiBzdHJ1Y3QgdHlwZSAqaW5pdF90eXBlIChlbnVt IHR5cGVfY29kZSwgaW50LCBpbnQsIGNoYXIgKiwKKytleHRlcm4gc3RydWN0IHR5cGUgKmluaXRf dHlwZSAoZW51bSB0eXBlX2NvZGUsIExPTkdFU1QsIGludCwgY2hhciAqLAorIAkJCSAgICAgICBz dHJ1Y3Qgb2JqZmlsZSAqKTsKKyAKKyAvKiBIZWxwZXIgZnVuY3Rpb25zIHRvIGNvbnN0cnVjdCBh cmNoaXRlY3R1cmUtb3duZWQgdHlwZXMuICAqLworLWV4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF90 eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBlbnVtIHR5cGVfY29kZSwgaW50LCBjaGFyICopOworK2V4 dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBlbnVtIHR5cGVf Y29kZSwgTE9OR0VTVCwKKysJCQkgICAgICAgY2hhciAqKTsKKyBleHRlcm4gc3RydWN0IHR5cGUg KmFyY2hfaW50ZWdlcl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBpbnQsIGludCwgY2hhciAqKTsK KyBleHRlcm4gc3RydWN0IHR5cGUgKmFyY2hfY2hhcmFjdGVyX3R5cGUgKHN0cnVjdCBnZGJhcmNo ICosIGludCwgaW50LCBjaGFyICopOworIGV4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF9ib29sZWFu X3R5cGUgKHN0cnVjdCBnZGJhcmNoICosIGludCwgaW50LCBjaGFyICopOworSW5kZXg6IGdkYi03 LjUuMC4yMDEyMDkyNi9nZGIvZ251LXYyLWFiaS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4w LjIwMTIwOTI2Lm9yaWcvZ2RiL2dudS12Mi1hYmkuYwkyMDEyLTAyLTA3IDA1OjQ4OjIxLjAwMDAw MDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZ251LXYyLWFiaS5jCTIwMTIt MTEtMDcgMjI6MDk6MjkuODcwMTQwNzQyICswMTAwCitAQCAtODYsNyArODYsNyBAQCBnbnV2Ml9p c19vcGVyYXRvcl9uYW1lIChjb25zdCBjaGFyICpuYW1lCisgICAgVFlQRSBpcyB0aGUgdHlwZSBp biB3aGljaCBGIGlzIGxvY2F0ZWQuICAqLworIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgorIGdudXYy X3ZpcnR1YWxfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKmFyZzFwLCBzdHJ1Y3QgZm5fZmllbGQg KiBmLCBpbnQgaiwKKy0JCQlzdHJ1Y3QgdHlwZSAqIHR5cGUsIGludCBvZmZzZXQpCisrCQkJc3Ry dWN0IHR5cGUgKnR5cGUsIExPTkdFU1Qgb2Zmc2V0KQorIHsKKyAgIHN0cnVjdCB2YWx1ZSAqYXJn MSA9ICphcmcxcDsKKyAgIHN0cnVjdCB0eXBlICp0eXBlMSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVl X3R5cGUgKGFyZzEpKTsKK0BAIC0xODcsNyArMTg3LDggQEAgZ251djJfdmlydHVhbF9mbl9maWVs ZCAoc3RydWN0IHZhbHVlICoqYQorIAorIAorIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCistZ251djJf dmFsdWVfcnR0aV90eXBlIChzdHJ1Y3QgdmFsdWUgKnYsIGludCAqZnVsbCwgaW50ICp0b3AsIGlu dCAqdXNpbmdfZW5jKQorK2dudXYyX3ZhbHVlX3J0dGlfdHlwZSAoc3RydWN0IHZhbHVlICp2LCBp bnQgKmZ1bGwsIExPTkdFU1QgKnRvcCwKKysJCSAgICAgICBpbnQgKnVzaW5nX2VuYykKKyB7Cisg ICBzdHJ1Y3QgdHlwZSAqa25vd25fdHlwZTsKKyAgIHN0cnVjdCB0eXBlICpydHRpX3R5cGU7CitA QCAtMzQyLDkgKzM0Myw5IEBAIHZiX21hdGNoIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGluZGV4 LAorICAgIHRhcmdldCkuICBUaGUgcmVzdWx0IGlzIHRoZSBvZmZzZXQgb2YgdGhlIGJhc2VjbGFz cyB2YWx1ZSByZWxhdGl2ZQorICAgIHRvICh0aGUgYWRkcmVzcyBvZikoQVJHKSArIE9GRlNFVC4g ICovCisgCistc3RhdGljIGludAorK3N0YXRpYyBMT05HRVNUCisgZ251djJfYmFzZWNsYXNzX29m ZnNldCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBpbmRleCwKKy0JCQljb25zdCBiZmRfYnl0ZSAq dmFsYWRkciwgaW50IGVtYmVkZGVkX29mZnNldCwKKysJCQljb25zdCBiZmRfYnl0ZSAqdmFsYWRk ciwgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCisgCQkJQ09SRV9BRERSIGFkZHJlc3MsIGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsKQorIHsKKyAgIHN0cnVjdCB0eXBlICpiYXNldHlwZSA9IFRZUEVf QkFTRUNMQVNTICh0eXBlLCBpbmRleCk7CitAQCAtMzYyLDggKzM2Myw4IEBAIGdudXYyX2Jhc2Vj bGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXAKKyAJICBpZiAodmJfbWF0Y2ggKHR5cGUsIGks IGJhc2V0eXBlKSkKKyAJICAgIHsKKyAJICAgICAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGU7Cist CSAgICAgIGludCBmaWVsZF9vZmZzZXQ7CistCSAgICAgIGludCBmaWVsZF9sZW5ndGg7CisrCSAg ICAgIExPTkdFU1QgZmllbGRfb2Zmc2V0OworKwkgICAgICBMT05HRVNUIGZpZWxkX2xlbmd0aDsK KyAJICAgICAgQ09SRV9BRERSIGFkZHI7CisgCisgCSAgICAgIGZpZWxkX3R5cGUgPSBjaGVja190 eXBlZGVmIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGkpKTsKK0BAIC0zODcsNyArMzg4LDcgQEAg Z251djJfYmFzZWNsYXNzX29mZnNldCAoc3RydWN0IHR5cGUgKnR5cAorIAkgIC8qIERvbid0IGdv IHRocm91Z2ggYmFzZWNsYXNzX29mZnNldCwgYXMgdGhhdCB3cmFwcworIAkgICAgIGV4Y2VwdGlv bnMsIHRodXMsIGlubmVyIGV4Y2VwdGlvbnMgd291bGQgYmUgd3JhcHBlZCBtb3JlCisgCSAgICAg dGhhbiBvbmNlLiAgKi8KKy0JICBpbnQgYm9mZnNldCA9CisrCSAgTE9OR0VTVCBib2Zmc2V0ID0K KyAJICAgIGdudXYyX2Jhc2VjbGFzc19vZmZzZXQgKHR5cGUsIGksIHZhbGFkZHIsCisgCQkJCSAg ICBlbWJlZGRlZF9vZmZzZXQsIGFkZHJlc3MsIHZhbCk7CisgCitJbmRleDogZ2RiLTcuNS4wLjIw MTIwOTI2L2dkYi9nbnUtdjMtYWJpLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5 MjYub3JpZy9nZGIvZ251LXYzLWFiaS5jCTIwMTItMDUtMjEgMjE6NDc6NTMuMDAwMDAwMDAwICsw MjAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9nbnUtdjMtYWJpLmMJMjAxMi0xMS0wNyAy MjowOToyOS44NzIxNDA3NDAgKzAxMDAKK0BAIC0xMDUsNyArMTA1LDcgQEAgYnVpbGRfZ2RiX3Z0 YWJsZV90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqYQorIHsKKyAgIHN0cnVjdCB0eXBlICp0OworICAg c3RydWN0IGZpZWxkICpmaWVsZF9saXN0LCAqZmllbGQ7CistICBpbnQgb2Zmc2V0OworKyAgTE9O R0VTVCBvZmZzZXQ7CisgCisgICBzdHJ1Y3QgdHlwZSAqdm9pZF9wdHJfdHlwZQorICAgICA9IGJ1 aWx0aW5fdHlwZSAoYXJjaCktPmJ1aWx0aW5fZGF0YV9wdHI7CitAQCAtMTgxLDcgKzE4MSw3IEBA IHZ0YWJsZV9wdHJkaWZmX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGIKKyAvKiBSZXR1cm4gdGhl IG9mZnNldCBmcm9tIHRoZSBzdGFydCBvZiB0aGUgaW1hZ2luYXJ5IGBzdHJ1Y3QKKyAgICBnZGJf Z251X3YzX2FiaV92dGFibGUnIG9iamVjdCB0byB0aGUgdnRhYmxlJ3MgImFkZHJlc3MgcG9pbnQi CisgICAgKGkuZS4sIHdoZXJlIG9iamVjdHMnIHZpcnR1YWwgdGFibGUgcG9pbnRlcnMgcG9pbnQp LiAgKi8KKy1zdGF0aWMgaW50Cisrc3RhdGljIExPTkdFU1QKKyB2dGFibGVfYWRkcmVzc19wb2lu dF9vZmZzZXQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoKQorIHsKKyAgIHN0cnVjdCB0eXBlICp2 dGFibGVfdHlwZSA9IGdkYmFyY2hfZGF0YSAoZ2RiYXJjaCwgdnRhYmxlX3R5cGVfZ2RiYXJjaF9k YXRhKTsKK0BAIC0yNzIsNyArMjcyLDcgQEAgZ251djNfZ2V0X3Z0YWJsZSAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyYworIAorIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCisgZ251djNfcnR0aV90eXBlIChz dHJ1Y3QgdmFsdWUgKnZhbHVlLAorLSAgICAgICAgICAgICAgICAgaW50ICpmdWxsX3AsIGludCAq dG9wX3AsIGludCAqdXNpbmdfZW5jX3ApCisrICAgICAgICAgICAgICAgICBpbnQgKmZ1bGxfcCwg TE9OR0VTVCAqdG9wX3AsIGludCAqdXNpbmdfZW5jX3ApCisgeworICAgc3RydWN0IGdkYmFyY2gg KmdkYmFyY2g7CisgICBzdHJ1Y3QgdHlwZSAqdmFsdWVzX3R5cGUgPSBjaGVja190eXBlZGVmICh2 YWx1ZV90eXBlICh2YWx1ZSkpOworQEAgLTM4NCw3ICszODQsNyBAQCBnbnV2M19nZXRfdmlydHVh bF9mbiAoc3RydWN0IGdkYmFyY2ggKmdkCisgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCisgZ251djNf dmlydHVhbF9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqdmFsdWVfcCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgZm5fZmllbGQgKmYsIGludCBqLAorLQkJCXN0cnVjdCB0eXBlICp2 Zm5fYmFzZSwgaW50IG9mZnNldCkKKysJCQlzdHJ1Y3QgdHlwZSAqdmZuX2Jhc2UsIExPTkdFU1Qg b2Zmc2V0KQorIHsKKyAgIHN0cnVjdCB0eXBlICp2YWx1ZXNfdHlwZSA9IGNoZWNrX3R5cGVkZWYg KHZhbHVlX3R5cGUgKCp2YWx1ZV9wKSk7CisgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsKK0BA IC00MTQsMTYgKzQxNCwxNiBAQCBnbnV2M192aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUg Kip2CisgCisgICAgLTEgaXMgcmV0dXJuZWQgb24gZXJyb3IuICAqLworIAorLXN0YXRpYyBpbnQK KytzdGF0aWMgTE9OR0VTVAorIGdudXYzX2Jhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0 eXBlLCBpbnQgaW5kZXgsCistCQkJY29uc3QgYmZkX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRl ZF9vZmZzZXQsCisrCQkJY29uc3QgYmZkX2J5dGUgKnZhbGFkZHIsIExPTkdFU1QgZW1iZWRkZWRf b2Zmc2V0LAorIAkJCUNPUkVfQUREUiBhZGRyZXNzLCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkK KyB7CisgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsKKyAgIHN0cnVjdCB0eXBlICpwdHJfdHlw ZTsKKyAgIHN0cnVjdCB2YWx1ZSAqdnRhYmxlOworICAgc3RydWN0IHZhbHVlICp2YmFzZV9hcnJh eTsKKy0gIGxvbmcgaW50IGN1cl9iYXNlX29mZnNldCwgYmFzZV9vZmZzZXQ7CisrICBMT05HRVNU IGN1cl9iYXNlX29mZnNldCwgYmFzZV9vZmZzZXQ7CisgCisgICAvKiBEZXRlcm1pbmUgYXJjaGl0 ZWN0dXJlLiAgKi8KKyAgIGdkYmFyY2ggPSBnZXRfdHlwZV9hcmNoICh0eXBlKTsKK0BAIC00NDcs NyArNDQ3LDcgQEAgZ251djNfYmFzZWNsYXNzX29mZnNldCAoc3RydWN0IHR5cGUgKnR5cAorICAg Y3VyX2Jhc2Vfb2Zmc2V0ID0gY3VyX2Jhc2Vfb2Zmc2V0ICsgdnRhYmxlX2FkZHJlc3NfcG9pbnRf b2Zmc2V0IChnZGJhcmNoKTsKKyAgIGlmICgoLSBjdXJfYmFzZV9vZmZzZXQpICUgVFlQRV9MRU5H VEggKHB0cl90eXBlKSAhPSAwKQorICAgICBlcnJvciAoXygiTWlzYWxpZ25lZCB2YmFzZSBvZmZz ZXQuIikpOworLSAgY3VyX2Jhc2Vfb2Zmc2V0ID0gY3VyX2Jhc2Vfb2Zmc2V0IC8gKChpbnQpIFRZ UEVfTEVOR1RIIChwdHJfdHlwZSkpOworKyAgY3VyX2Jhc2Vfb2Zmc2V0ID0gY3VyX2Jhc2Vfb2Zm c2V0IC8gKChMT05HRVNUKSBUWVBFX0xFTkdUSCAocHRyX3R5cGUpKTsKKyAKKyAgIHZ0YWJsZSA9 IGdudXYzX2dldF92dGFibGUgKGdkYmFyY2gsIHR5cGUsIGFkZHJlc3MgKyBlbWJlZGRlZF9vZmZz ZXQpOworICAgZ2RiX2Fzc2VydCAodnRhYmxlICE9IE5VTEwpOworQEAgLTQ5MSw3ICs0OTEsNyBA QCBnbnV2M19maW5kX21ldGhvZF9pbiAoc3RydWN0IHR5cGUgKmRvbWFpCisgICAgICB3ZSdyZSBv dXQgb2YgbHVjay4gICovCisgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VDTEFTU0VTIChk b21haW4pOyBpKyspCisgICAgIHsKKy0gICAgICBpbnQgcG9zOworKyAgICAgIExPTkdFU1QgcG9z OworICAgICAgIHN0cnVjdCB0eXBlICpiYXNldHlwZTsKKyAKKyAgICAgICBpZiAoQkFTRVRZUEVf VklBX1ZJUlRVQUwgKGRvbWFpbiwgaSkpCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9n by1sYW5nLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvZ28t bGFuZy5oCTIwMTItMDQtMjUgMTY6MDc6MjAuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNS4w LjIwMTIwOTI2L2dkYi9nby1sYW5nLmgJMjAxMi0xMS0wNyAyMjowOToyOS44NzQxNDA3MzcgKzAx MDAKK0BAIC04MCw3ICs4MCw3IEBAIGV4dGVybiB2b2lkIGdvX3ByaW50X3R5cGUgKHN0cnVjdCB0 eXBlICoKKyAvKiBEZWZpbmVkIGluIGdvLXZhbHByaW50LmMuICAqLworIAorIGV4dGVybiB2b2lk IGdvX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRy LAorLQkJCSAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisrCQkJICBM T05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisgCQkJICBzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKyAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAq dmFsLAorIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwor SW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZ28tdmFscHJpbnQuYworPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9nby12YWxwcmludC5jCTIwMTItMDUtMTgg MTc6Mjk6MTIuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9nby12 YWxwcmludC5jCTIwMTItMTEtMDcgMjI6MDk6MjkuODc0MTQwNzM3ICswMTAwCitAQCAtMzcsNyAr MzcsNyBAQAorIAorIHN0YXRpYyB2b2lkCisgcHJpbnRfZ29fc3RyaW5nIChzdHJ1Y3QgdHlwZSAq dHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkgaW50IGVtYmVkZGVkX29mZnNldCwg Q09SRV9BRERSIGFkZHJlc3MsCisrCQkgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQURE UiBhZGRyZXNzLAorIAkJIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorIAkJ IGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICpvcHRpb25zKQorQEAgLTg2LDkgKzg2LDkgQEAgcHJpbnRfZ29fc3RyaW5nIChzdHJ1 Y3QgdHlwZSAqdHlwZSwgY29ucworIC8qIEltcGxlbWVudHMgdGhlIGxhX3ZhbF9wcmludCByb3V0 aW5lIGZvciBsYW5ndWFnZSBHby4gICovCisgCisgdm9pZAorLWdvX3ZhbF9wcmludCAoc3RydWN0 IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0 LAorLQkgICAgICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50 IHJlY3Vyc2UsCistCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorK2dvX3ZhbF9wcmlu dCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorKwkgICAgICBM T05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisrCSAgICAgIHN0cnVj dCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwK KyAJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCisgewor ICAgQ0hFQ0tfVFlQRURFRiAodHlwZSk7CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9p Mzg2LW5hdC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2kz ODYtbmF0LmMJMjAxMi0wMS0yNCAxNDo0OTo1Ni4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41 LjAuMjAxMjA5MjYvZ2RiL2kzODYtbmF0LmMJMjAxMi0xMS0wNyAyMjowOToyOS44NzYxNDA3MzMg KzAxMDAKK0BAIC0yOTMsNyArMjkzLDcgQEAgc3RhdGljIGludCBpMzg2X3JlbW92ZV9hbGlnbmVk X3dhdGNocG9pbgorICAgIHZhbGlkIHZhbHVlLCBib21icyB0aHJvdWdoIGludGVybmFsX2Vycm9y LiAgKi8KKyBzdGF0aWMgaW50IGkzODZfaGFuZGxlX25vbmFsaWduZWRfd2F0Y2hwb2ludCAoc3Ry dWN0IGkzODZfZGVidWdfcmVnX3N0YXRlICpzdGF0ZSwKKyAJCQkJCSAgICAgIGkzODZfd3Bfb3Bf dCB3aGF0LAorLQkJCQkJICAgICAgQ09SRV9BRERSIGFkZHIsIGludCBsZW4sCisrCQkJCQkgICAg ICBDT1JFX0FERFIgYWRkciwgTE9OR0VTVCBsZW4sCisgCQkJCQkgICAgICBlbnVtIHRhcmdldF9o d19icF90eXBlIHR5cGUpOworIAorIC8qIEltcGxlbWVudGF0aW9uLiAgKi8KK0BAIC01MDUsOCAr NTA1LDggQEAgaTM4Nl9yZW1vdmVfYWxpZ25lZF93YXRjaHBvaW50IChzdHJ1Y3QgaQorIAorIHN0 YXRpYyBpbnQKKyBpMzg2X2hhbmRsZV9ub25hbGlnbmVkX3dhdGNocG9pbnQgKHN0cnVjdCBpMzg2 X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUsCistCQkJCSAgIGkzODZfd3Bfb3BfdCB3aGF0LCBDT1JF X0FERFIgYWRkciwgaW50IGxlbiwKKy0JCQkJICAgZW51bSB0YXJnZXRfaHdfYnBfdHlwZSB0eXBl KQorKwkJCQkgICBpMzg2X3dwX29wX3Qgd2hhdCwgQ09SRV9BRERSIGFkZHIsCisrCQkJCSAgIExP TkdFU1QgbGVuLCBlbnVtIHRhcmdldF9od19icF90eXBlIHR5cGUpCisgeworICAgaW50IHJldHZh bCA9IDA7CisgICBpbnQgbWF4X3dwX2xlbiA9IFRBUkdFVF9IQVNfRFJfTEVOXzggPyA4IDogNDsK K0BAIC02NjMsNyArNjYzLDcgQEAgaTM4Nl9yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFk ZHIsCisgICAgYWRkcmVzcyBBRERSIGFuZCB3aG9zZSBsZW5ndGggaXMgTEVOIGJ5dGVzLiAgKi8K KyAKKyBzdGF0aWMgaW50CistaTM4Nl9yZWdpb25fb2tfZm9yX3dhdGNocG9pbnQgKENPUkVfQURE UiBhZGRyLCBpbnQgbGVuKQorK2kzODZfcmVnaW9uX29rX2Zvcl93YXRjaHBvaW50IChDT1JFX0FE RFIgYWRkciwgTE9OR0VTVCBsZW4pCisgeworICAgc3RydWN0IGkzODZfZGVidWdfcmVnX3N0YXRl ICpzdGF0ZSA9IGkzODZfZGVidWdfcmVnX3N0YXRlICgpOworICAgaW50IG5yZWdzOworSW5kZXg6 IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvaW5mLXR0cmFjZS5jCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2Ri LTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2luZi10dHJhY2UuYwkyMDEyLTA2LTE0IDIwOjIxOjMx LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvaW5mLXR0cmFjZS5j CTIwMTItMTEtMDcgMjI6MDk6MjkuODc3MTQwNzMyICswMTAwCitAQCAtMzY0LDcgKzM2NCw3IEBA IGluZl90dHJhY2VfY2FuX3VzZV9od19icmVha3BvaW50IChpbnQgdHkKKyB9CisgCisgc3RhdGlj IGludAorLWluZl90dHJhY2VfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChDT1JFX0FERFIg YWRkciwgaW50IGxlbikKKytpbmZfdHRyYWNlX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAo Q09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuKQorIHsKKyAgIHJldHVybiAxOworIH0KK0luZGV4 OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2p2LWxhbmcuYworPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03 LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9qdi1sYW5nLmMJMjAxMi0xMS0wNyAyMjowMDo0NC4wMDAw MDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2p2LWxhbmcuYwkyMDEyLTEx LTA3IDIyOjA5OjI5Ljg5NDE0MDcwOCArMDEwMAorQEAgLTQ0MCw3ICs0NDAsNyBAQCBqYXZhX2xp bmtfY2xhc3NfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkCisgICBmb3IgKGkgPSBUWVBFX05fQkFT RUNMQVNTRVMgKHR5cGUpOyBpIDwgbmZpZWxkczsgaSsrKQorICAgICB7CisgICAgICAgaW50IGFj Y2ZsYWdzOworLSAgICAgIGludCBib2Zmc2V0OworKyAgICAgIExPTkdFU1QgYm9mZnNldDsKKyAK KyAgICAgICBpZiAoZmllbGRzID09IE5VTEwpCisgCXsKK0BAIC04OTAsNyArODkwLDcgQEAgamF2 YV9wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZQorIHN0YXRpYyB2b2lkCisgamF2 YV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsCisg CSAgICAgICBjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLAorLQkgICAgICAgdW5zaWduZWQgaW50IGxl bmd0aCwgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKKysJICAgICAg IFVMT05HRVNUIGxlbmd0aCwgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNl cywKKyAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQor IHsKKyAgIGNvbnN0IGNoYXIgKnR5cGVfZW5jb2RpbmcgPSBqYXZhX2dldF9lbmNvZGluZyAodHlw ZSk7CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9qdi1sYW5nLmgKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvanYtbGFuZy5oCTIwMTItMDMtMDEgMjA6 MjY6MTMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9qdi1sYW5n LmgJMjAxMi0xMS0wNyAyMjowOToyOS45MDIxNDA2OTYgKzAxMDAKK0BAIC00Miw4ICs0Miw4IEBA IHN0cnVjdCBidWlsdGluX2phdmFfdHlwZQorIAorIGV4dGVybiBjb25zdCBzdHJ1Y3QgYnVpbHRp bl9qYXZhX3R5cGUgKmJ1aWx0aW5famF2YV90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqKTsKKyAKKy1l eHRlcm4gdm9pZCBqYXZhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUg KiwgaW50LCBDT1JFX0FERFIsCistCQkJICAgIHN0cnVjdCB1aV9maWxlICosIGludCwKKytleHRl cm4gdm9pZCBqYXZhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwg TE9OR0VTVCwKKysJCQkgICAgQ09SRV9BRERSLCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCisgCQkJ ICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAorIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJp bnRfb3B0aW9ucyAqKTsKKyAKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2p2LXZhbHBy aW50LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvanYtdmFs cHJpbnQuYwkyMDEyLTA1LTE4IDE3OjI5OjEyLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUu MC4yMDEyMDkyNi9nZGIvanYtdmFscHJpbnQuYwkyMDEyLTExLTA3IDIyOjA5OjI5LjkwMzE0MDY5 NCArMDEwMAorQEAgLTI2Niw3ICsyNjYsNyBAQCBqYXZhX3ZhbHVlX3ByaW50IChzdHJ1Y3QgdmFs dWUgKnZhbCwgc3RyCisgCisgc3RhdGljIHZvaWQKKyBqYXZhX3ByaW50X3ZhbHVlX2ZpZWxkcyAo c3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJCSBpbnQgb2Zm c2V0LAorKwkJCSBMT05HRVNUIG9mZnNldCwKKyAJCQkgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVj dCB1aV9maWxlICpzdHJlYW0sCisgCQkJIGludCByZWN1cnNlLAorIAkJCSBjb25zdCBzdHJ1Y3Qg dmFsdWUgKnZhbCwKK0BAIC00ODQsNyArNDg0LDcgQEAgamF2YV9wcmludF92YWx1ZV9maWVsZHMg KHN0cnVjdCB0eXBlICp0eQorIAorIHZvaWQKKyBqYXZhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUg KnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJaW50IGVtYmVkZGVkX29mZnNldCwg Q09SRV9BRERSIGFkZHJlc3MsCisrCQlMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERS IGFkZHJlc3MsCisgCQlzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKyAJCWNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkJY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKm9wdGlvbnMpCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9sYW5ndWFnZS5jCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2xhbmd1YWdlLmMJMjAx Mi0xMS0wNyAyMjowMDo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYv Z2RiL2xhbmd1YWdlLmMJMjAxMi0xMS0wNyAyMjowOToyOS45MDUxNDA2OTEgKzAxMDAKK0BAIC03 MjQsNyArNzI0LDcgQEAgdW5rX2xhbmdfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKgor IAorIHN0YXRpYyB2b2lkCisgdW5rX2xhbmdfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJl YW0sIHN0cnVjdCB0eXBlICp0eXBlLAorLQkJICAgY29uc3QgZ2RiX2J5dGUgKnN0cmluZywgdW5z aWduZWQgaW50IGxlbmd0aCwKKysJCSAgIGNvbnN0IGdkYl9ieXRlICpzdHJpbmcsIFVMT05HRVNU IGxlbmd0aCwKKyAJCSAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMs CisgCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKKyB7CitA QCAtNzQyLDcgKzc0Miw3IEBAIHVua19sYW5nX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBl LAorIAorIHN0YXRpYyB2b2lkCisgdW5rX2xhbmdfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlw ZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkgICAgaW50IGVtYmVkZGVkX29mZnNldCwg Q09SRV9BRERSIGFkZHJlc3MsCisrCQkgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVf QUREUiBhZGRyZXNzLAorIAkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNl LAorIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkJICAgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9n ZGIvbGFuZ3VhZ2UuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dk Yi9sYW5ndWFnZS5oCTIwMTItMTEtMDcgMjI6MDA6NDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2Ri LTcuNS4wLjIwMTIwOTI2L2dkYi9sYW5ndWFnZS5oCTIwMTItMTEtMDcgMjI6MDk6MjkuOTA2MTQw NjkwICswMTAwCitAQCAtMTc1LDcgKzE3NSw3IEBAIHN0cnVjdCBsYW5ndWFnZV9kZWZuCisgCQkJ ICBzdHJ1Y3QgdWlfZmlsZSAqIHN0cmVhbSk7CisgCisgICAgIHZvaWQgKCpsYV9wcmludHN0cikg KHN0cnVjdCB1aV9maWxlICogc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqZWx0dHlwZSwKKy0JCQkgY29u c3QgZ2RiX2J5dGUgKnN0cmluZywgdW5zaWduZWQgaW50IGxlbmd0aCwKKysJCQkgY29uc3QgZ2Ri X2J5dGUgKnN0cmluZywgVUxPTkdFU1QgbGVuZ3RoLAorIAkJCSBjb25zdCBjaGFyICplbmNvZGlu ZywgaW50IGZvcmNlX2VsbGlwc2VzLAorIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0 aW9ucyAqKTsKKyAKK0BAIC0yMTcsNyArMjE3LDcgQEAgc3RydWN0IGxhbmd1YWdlX2RlZm4KKyAK KyAgICAgdm9pZCAoKmxhX3ZhbF9wcmludCkgKHN0cnVjdCB0eXBlICp0eXBlLAorIAkJCSAgY29u c3QgZ2RiX2J5dGUgKmNvbnRlbnRzLAorLQkJCSAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9B RERSIGFkZHJlc3MsCisrCQkJICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFk ZHJlc3MsCisgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKyAJCQkg IGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50 X29wdGlvbnMgKm9wdGlvbnMpOworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvbTItbGFu Zy5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL20yLWxhbmcu YwkyMDEyLTExLTA3IDIyOjAwOjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEy MDkyNi9nZGIvbTItbGFuZy5jCTIwMTItMTEtMDcgMjI6MDk6MjkuOTA4MTQwNjg4ICswMTAwCitA QCAtMTA0LDEwICsxMDQsMTAgQEAgbTJfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5 cGUsCisgCisgc3RhdGljIHZvaWQKKyBtMl9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSwgc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICpzdHJpbmcsCistCSAgICAgdW5z aWduZWQgaW50IGxlbmd0aCwgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNl cywKKysJICAgICBVTE9OR0VTVCBsZW5ndGgsIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9y Y2VfZWxsaXBzZXMsCisgCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9w dGlvbnMpCisgeworLSAgdW5zaWduZWQgaW50IGk7CisrICBVTE9OR0VTVCBpOworICAgdW5zaWdu ZWQgaW50IHRoaW5nc19wcmludGVkID0gMDsKKyAgIGludCBpbl9xdW90ZXMgPSAwOworICAgaW50 IG5lZWRfY29tbWEgPSAwOworQEAgLTEyMiw5ICsxMjIsOSBAQCBtMl9wcmludHN0ciAoc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSwgc3RyCisgICAgIHsKKyAgICAgICAvKiBQb3NpdGlvbiBvZiB0aGUg Y2hhcmFjdGVyIHdlIGFyZSBleGFtaW5pbmcKKyAgICAgICAgICB0byBzZWUgd2hldGhlciBpdCBp cyByZXBlYXRlZC4gICovCistICAgICAgdW5zaWduZWQgaW50IHJlcDE7CisrICAgICAgVUxPTkdF U1QgcmVwMTsKKyAgICAgICAvKiBOdW1iZXIgb2YgcmVwZXRpdGlvbnMgd2UgaGF2ZSBkZXRlY3Rl ZCBzbyBmYXIuICAqLworLSAgICAgIHVuc2lnbmVkIGludCByZXBzOworKyAgICAgIFVMT05HRVNU IHJlcHM7CisgCisgICAgICAgUVVJVDsKKyAKK0BAIC0xNTMsNyArMTUzLDcgQEAgbTJfcHJpbnRz dHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cgorIAkgICAgICBpbl9xdW90ZXMgPSAwOwor IAkgICAgfQorIAkgIG0yX3ByaW50Y2hhciAoc3RyaW5nW2ldLCB0eXBlLCBzdHJlYW0pOworLQkg IGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiA8cmVwZWF0cyAldSB0aW1lcz4iLCByZXBzKTsK KysJICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIgPHJlcGVhdHMgJXMgdGltZXM+IiwgcHVs b25nZXN0IChyZXBzKSk7CisgCSAgaSA9IHJlcDEgLSAxOworIAkgIHRoaW5nc19wcmludGVkICs9 IG9wdGlvbnMtPnJlcGVhdF9jb3VudF90aHJlc2hvbGQ7CisgCSAgbmVlZF9jb21tYSA9IDE7CitJ bmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9tMi1sYW5nLmgKKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBn ZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvbTItbGFuZy5oCTIwMTItMDMtMDEgMjA6MjY6MTMu MDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9tMi1sYW5nLmgJMjAx Mi0xMS0wNyAyMjowOToyOS45MDkxNDA2ODYgKzAxMDAKK0BAIC0zMiw3ICszMiw3IEBAIGV4dGVy biB2b2lkIG0yX3ByaW50X3R5cGVkZWYgKHN0cnVjdCB0eXAKKyBleHRlcm4gaW50IG0yX2lzX2xv bmdfc2V0IChzdHJ1Y3QgdHlwZSAqdHlwZSk7CisgZXh0ZXJuIGludCBtMl9pc191bmJvdW5kZWRf YXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlKTsKKyAKKy1leHRlcm4gdm9pZCBtMl92YWxfcHJpbnQg KHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosIGludCwgQ09SRV9BRERSLAorK2V4dGVy biB2b2lkIG0yX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwgTE9O R0VTVCwgQ09SRV9BRERSLAorIAkJCSAgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAorIAkJCSAgY29u c3Qgc3RydWN0IHZhbHVlICosCisgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyAqKTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL20yLXR5cGVwcmludC5jCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL20yLXR5cGVwcmludC5jCTIw MTItMTEtMDcgMjI6MDI6MzAuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2 L2dkYi9tMi10eXBlcHJpbnQuYwkyMDEyLTExLTA3IDIyOjA5OjI5LjkxMDE0MDY4NCArMDEwMAor QEAgLTIyOCw5ICsyMjgsMTIgQEAgc3RhdGljIHZvaWQgbTJfYXJyYXkgKHN0cnVjdCB0eXBlICp0 eXBlLAorIAkgIG0yX3ByaW50X2JvdW5kcyAoVFlQRV9JTkRFWF9UWVBFICh0eXBlKSwgc3RyZWFt LCBzaG93LCAtMSwgMSk7CisgCX0KKyAgICAgICBlbHNlCistCWZwcmludGZfZmlsdGVyZWQgKHN0 cmVhbSwgIiVkIiwKKy0JCQkgIChUWVBFX0xFTkdUSCAodHlwZSkKKy0JCQkgICAvIFRZUEVfTEVO R1RIIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkpKTsKKysgICAgICAgIHsKKysJICBVTE9OR0VT VCB2YWwgPSAoVFlQRV9MRU5HVEggKHR5cGUpCisrCQkJICAvIFRZUEVfTEVOR1RIIChUWVBFX1RB UkdFVF9UWVBFICh0eXBlKSkpOworKworKwkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVz IiwgcHVsb25nZXN0ICh2YWwpKTsKKysJfQorICAgICB9CisgICBmcHJpbnRmX2ZpbHRlcmVkIChz dHJlYW0sICJdIE9GICIpOworICAgbTJfcHJpbnRfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAodHlw ZSksICIiLCBzdHJlYW0sIHNob3csIGxldmVsKTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYv Z2RiL20yLXZhbHByaW50LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3Jp Zy9nZGIvbTItdmFscHJpbnQuYwkyMDEyLTExLTA3IDIyOjAyOjMwLjAwMDAwMDAwMCArMDEwMAor KysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvbTItdmFscHJpbnQuYwkyMDEyLTExLTA3IDIyOjA5 OjI5LjkxMTE0MDY4MiArMDEwMAorQEAgLTM2LDcgKzM2LDcgQEAgc3RhdGljIGludCBwcmludF91 bnBhY2tlZF9wb2ludGVyIChzdHJ1YworIAkJCQkgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsK KyBzdGF0aWMgdm9pZAorIG0yX3ByaW50X2FycmF5X2NvbnRlbnRzIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkJIGludCBlbWJlZGRlZF9vZmZzZXQsIENP UkVfQUREUiBhZGRyZXNzLAorKwkJCSBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERS IGFkZHJlc3MsCisgCQkJIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorIAkJ CSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50 X29wdGlvbnMgKm9wdGlvbnMsCitAQCAtNjgsNyArNjgsNyBAQCBnZXRfbG9uZ19zZXRfYm91bmRz IChzdHJ1Y3QgdHlwZSAqdHlwZSwKKyAKKyBzdGF0aWMgdm9pZAorIG0yX3ByaW50X2xvbmdfc2V0 IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkgICBpbnQg ZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKysJCSAgIExPTkdFU1QgZW1iZWRk ZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKyAJCSAgIHN0cnVjdCB1aV9maWxlICpzdHJl YW0pCisgeworICAgaW50IGVtcHR5X3NldCAgICAgICAgPSAxOworQEAgLTE1OSw3ICsxNTksNyBA QCBtMl9wcmludF9sb25nX3NldCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCisgCisgc3RhdGljIHZv aWQKKyBtMl9wcmludF91bmJvdW5kZWRfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwKKy0JCQkgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBh ZGRyZXNzLAorKwkJCSAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNz LAorIAkJCSAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCisgCQkJICBjb25z dCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKKyB7CitAQCAtMjYzLDcgKzI2 Myw3IEBAIHByaW50X3ZhcmlhYmxlX2F0X2FkZHJlc3MgKHN0cnVjdCB0eXBlICoKKyAKKyBzdGF0 aWMgdm9pZAorIG0yX3ByaW50X2FycmF5X2NvbnRlbnRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29u c3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkJIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQURE UiBhZGRyZXNzLAorKwkJCSBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJl c3MsCisgCQkJIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorIAkJCSBjb25z dCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKm9wdGlvbnMsCitAQCAtMzA5LDE0ICszMDksMTUgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBn ZW5lcmljX3ZhbF9wcmludF9kZQorICAgIGZ1bmN0aW9uOyB0aGV5IGFyZSBpZGVudGljYWwuICAq LworIAorIHZvaWQKKy1tMl92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwgaW50IGVtYmVkZGVkX29mZnNldCwKKy0JICAgICAgQ09SRV9BRERSIGFk ZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorK20yX3ZhbF9wcmlu dCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorKwkgICAgICBM T05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisrCSAgICAgIHN0cnVj dCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorIAkgICAgICBjb25zdCBzdHJ1Y3QgdmFs dWUgKm9yaWdpbmFsX3ZhbHVlLAorIAkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0 aW9ucyAqb3B0aW9ucykKKyB7CisgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBl X2FyY2ggKHR5cGUpOworLSAgdW5zaWduZWQgaW50IGkgPSAwOwkvKiBOdW1iZXIgb2YgY2hhcmFj dGVycyBwcmludGVkLiAgKi8KKy0gIHVuc2lnbmVkIGxlbjsKKysgIFVMT05HRVNUIGkgPSAwOwkv KiBOdW1iZXIgb2YgY2hhcmFjdGVycyBwcmludGVkLiAgKi8KKysgIFVMT05HRVNUIGxlbjsKKyAg IHN0cnVjdCB0eXBlICplbHR0eXBlOworICAgQ09SRV9BRERSIGFkZHI7CisgCitAQCAtMzQxLDcg KzM0Miw3IEBAIG0yX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGcKKyAJICAg ICAgICAgZWxlbWVudHMgdXAgdG8gaXQuICAqLworIAkgICAgICBpZiAob3B0aW9ucy0+c3RvcF9w cmludF9hdF9udWxsKQorIAkJeworLQkJICB1bnNpZ25lZCBpbnQgdGVtcF9sZW47CisrCQkgIFVM T05HRVNUIHRlbXBfbGVuOworIAorIAkJICAvKiBMb29rIGZvciBhIE5VTEwgY2hhci4gICovCisg CQkgIGZvciAodGVtcF9sZW4gPSAwOworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvbWVt cmFuZ2UuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9tZW1y YW5nZS5jCTIwMTItMDEtMDQgMDk6MTc6MDYuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4w LjIwMTIwOTI2L2dkYi9tZW1yYW5nZS5jCTIwMTItMTEtMDcgMjI6MDk6MjkuOTE2MTQwNjc2ICsw MTAwCitAQCAtMjEsOCArMjEsOCBAQAorICNpbmNsdWRlICJtZW1yYW5nZS5oIgorIAorIGludAor LW1lbV9yYW5nZXNfb3ZlcmxhcCAoQ09SRV9BRERSIHN0YXJ0MSwgaW50IGxlbjEsCistCQkgICAg Q09SRV9BRERSIHN0YXJ0MiwgaW50IGxlbjIpCisrbWVtX3Jhbmdlc19vdmVybGFwIChDT1JFX0FE RFIgc3RhcnQxLCBMT05HRVNUIGxlbjEsCisrCQkgICAgQ09SRV9BRERSIHN0YXJ0MiwgTE9OR0VT VCBsZW4yKQorIHsKKyAgIFVMT05HRVNUIGgsIGw7CisgCitJbmRleDogZ2RiLTcuNS4wLjIwMTIw OTI2L2dkYi9tZW1yYW5nZS5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9y aWcvZ2RiL21lbXJhbmdlLmgJMjAxMi0wMS0wNCAwOToxNzowNi4wMDAwMDAwMDAgKzAxMDAKKysr KyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL21lbXJhbmdlLmgJMjAxMi0xMS0wNyAyMjowOToyOS45 MTcxNDA2NzQgKzAxMDAKK0BAIC0zMCw3ICszMCw3IEBAIHN0cnVjdCBtZW1fcmFuZ2UKKyAgIENP UkVfQUREUiBzdGFydDsKKyAKKyAgIC8qIExlbmd0aCBvZiB0aGUgcmFuZ2UuICAqLworLSAgaW50 IGxlbmd0aDsKKysgIExPTkdFU1QgbGVuZ3RoOworIH07CisgCisgdHlwZWRlZiBzdHJ1Y3QgbWVt X3JhbmdlIG1lbV9yYW5nZV9zOworQEAgLTQwLDggKzQwLDggQEAgREVGX1ZFQ19PKG1lbV9yYW5n ZV9zKTsKKyAvKiBSZXR1cm5zIHRydWUgaWYgdGhlIHJhbmdlcyBkZWZpbmVkIGJ5IFtzdGFydDEs IHN0YXJ0MStsZW4xKSBhbmQKKyAgICBbc3RhcnQyLCBzdGFydDIrbGVuMikgb3ZlcmxhcC4gICov CisgCistZXh0ZXJuIGludCBtZW1fcmFuZ2VzX292ZXJsYXAgKENPUkVfQUREUiBzdGFydDEsIGlu dCBsZW4xLAorLQkJCSAgICAgICBDT1JFX0FERFIgc3RhcnQyLCBpbnQgbGVuMik7CisrZXh0ZXJu IGludCBtZW1fcmFuZ2VzX292ZXJsYXAgKENPUkVfQUREUiBzdGFydDEsIExPTkdFU1QgbGVuMSwK KysJCQkgICAgICAgQ09SRV9BRERSIHN0YXJ0MiwgTE9OR0VTVCBsZW4yKTsKKyAKKyAvKiBTb3J0 IHJhbmdlcyBieSBzdGFydCBhZGRyZXNzLCB0aGVuIGNvYWxlc2NlIGNvbnRpZ3VvdXMgb3IKKyAg ICBvdmVybGFwcGluZyByYW5nZXMuICAqLworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIv bWlwcy1saW51eC1uYXQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmln L2dkYi9taXBzLWxpbnV4LW5hdC5jCTIwMTItMDUtMjIgMjA6MTI6MTMuMDAwMDAwMDAwICswMjAw CisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9taXBzLWxpbnV4LW5hdC5jCTIwMTItMTEtMDcg MjI6MDk6MjkuOTE4MTQwNjcyICswMTAwCitAQCAtOTM4LDcgKzkzOCw3IEBAIHRyeV9vbmVfd2F0 Y2ggKHN0cnVjdCBwdF93YXRjaF9yZWdzICpyZWcKKyAgICB0aGUgc3BlY2lmaWVkIHJlZ2lvbiBj YW4gYmUgY292ZXJlZCBieSB0aGUgd2F0Y2ggcmVnaXN0ZXJzLiAgKi8KKyAKKyBzdGF0aWMgaW50 CistbWlwc19saW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRy LCBpbnQgbGVuKQorK21pcHNfbGludXhfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChDT1JF X0FERFIgYWRkciwgTE9OR0VTVCBsZW4pCisgeworICAgc3RydWN0IHB0X3dhdGNoX3JlZ3MgZHVt bXlfcmVnczsKKyAgIGludCBpOworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvb2JqYy1s YW5nLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvb2JqYy1s YW5nLmMJMjAxMi0xMS0wNyAyMjowMDo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAu MjAxMjA5MjYvZ2RiL29iamMtbGFuZy5jCTIwMTItMTEtMDcgMjI6MDk6MjkuOTIwMTQwNjcwICsw MTAwCitAQCAtMzQ3LDExICszNDcsMTEgQEAgb2JqY19wcmludGNoYXIgKGludCBjLCBzdHJ1Y3Qg dHlwZSAqdHlwZQorIAorIHN0YXRpYyB2b2lkCisgb2JqY19wcmludHN0ciAoc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsCistCSAgICAgICBjb25zdCBnZGJfYnl0ZSAq c3RyaW5nLCB1bnNpZ25lZCBpbnQgbGVuZ3RoLAorKwkgICAgICAgY29uc3QgZ2RiX2J5dGUgKnN0 cmluZywgVUxPTkdFU1QgbGVuZ3RoLAorIAkgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsIGlu dCBmb3JjZV9lbGxpcHNlcywKKyAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICpvcHRpb25zKQorIHsKKy0gIHVuc2lnbmVkIGludCBpOworKyAgVUxPTkdFU1QgaTsKKyAg IHVuc2lnbmVkIGludCB0aGluZ3NfcHJpbnRlZCA9IDA7CisgICBpbnQgaW5fcXVvdGVzID0gMDsK KyAgIGludCBuZWVkX2NvbW1hID0gMDsKK0BAIC0zNzIsOSArMzcyLDkgQEAgb2JqY19wcmludHN0 ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgcworICAgICB7CisgICAgICAgLyogUG9zaXRpb24g b2YgdGhlIGNoYXJhY3RlciB3ZSBhcmUgZXhhbWluaW5nIHRvIHNlZSB3aGV0aGVyIGl0CisgCSBp cyByZXBlYXRlZC4gICovCistICAgICAgdW5zaWduZWQgaW50IHJlcDE7CisrICAgICAgVUxPTkdF U1QgcmVwMTsKKyAgICAgICAvKiBOdW1iZXIgb2YgcmVwZXRpdGlvbnMgd2UgaGF2ZSBkZXRlY3Rl ZCBzbyBmYXIuICAqLworLSAgICAgIHVuc2lnbmVkIGludCByZXBzOworKyAgICAgIFVMT05HRVNU IHJlcHM7CisgCisgICAgICAgUVVJVDsKKyAKK0BAIC00MDMsNyArNDAzLDcgQEAgb2JqY19wcmlu dHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgcworIAkgICAgICBpbl9xdW90ZXMgPSAwOwor IAkgICAgfQorIAkgIG9iamNfcHJpbnRjaGFyIChzdHJpbmdbaV0sIHR5cGUsIHN0cmVhbSk7Cist CSAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiIDxyZXBlYXRzICV1IHRpbWVzPiIsIHJlcHMp OworKwkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiA8cmVwZWF0cyAlcyB0aW1lcz4iLCBw dWxvbmdlc3QgKHJlcHMpKTsKKyAJICBpID0gcmVwMSAtIDE7CisgCSAgdGhpbmdzX3ByaW50ZWQg Kz0gb3B0aW9ucy0+cmVwZWF0X2NvdW50X3RocmVzaG9sZDsKKyAJICBuZWVkX2NvbW1hID0gMTsK K0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL29wZW5jbC1sYW5nLmMKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvb3BlbmNsLWxhbmcuYwkyMDEyLTExLTA3 IDIyOjAwOjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvb3Bl bmNsLWxhbmcuYwkyMDEyLTExLTA3IDIyOjA5OjI5LjkyMTE0MDY2OSArMDEwMAorQEAgLTgwLDEx ICs4MCwxMSBAQCBidWlsdGluX29wZW5jbF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCisgCisg c3RhdGljIHN0cnVjdCB0eXBlICoKKyBsb29rdXBfb3BlbmNsX3ZlY3Rvcl90eXBlIChzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaCwgZW51bSB0eXBlX2NvZGUgY29kZSwKKy0JCQkgICB1bnNpZ25lZCBp bnQgZWxfbGVuZ3RoLCB1bnNpZ25lZCBpbnQgZmxhZ191bnNpZ25lZCwKKysJCQkgICBVTE9OR0VT VCBlbF9sZW5ndGgsIHVuc2lnbmVkIGludCBmbGFnX3Vuc2lnbmVkLAorIAkJCSAgIGludCBuKQor IHsKKyAgIGludCBpOworLSAgdW5zaWduZWQgaW50IGxlbmd0aDsKKysgIFVMT05HRVNUIGxlbmd0 aDsKKyAgIHN0cnVjdCB0eXBlICp0eXBlID0gTlVMTDsKKyAgIHN0cnVjdCB0eXBlICoqdHlwZXMg PSBidWlsdGluX29wZW5jbF90eXBlIChnZGJhcmNoKTsKKyAKK0BAIC0xNzQsOSArMTc0LDkgQEAg bHZhbF9mdW5jX3JlYWQgKHN0cnVjdCB2YWx1ZSAqdikKKyAgIHN0cnVjdCBsdmFsX2Nsb3N1cmUg KmMgPSAoc3RydWN0IGx2YWxfY2xvc3VyZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJlICh2KTsK KyAgIHN0cnVjdCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAodikpOwor ICAgc3RydWN0IHR5cGUgKmVsdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGNoZWNrX3R5cGVkZWYg KHZhbHVlX3R5cGUgKGMtPnZhbCkpKTsKKy0gIGludCBvZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHYp OworLSAgaW50IGVsc2l6ZSA9IFRZUEVfTEVOR1RIIChlbHR5cGUpOworLSAgaW50IG4sIGksIGog PSAwOworKyAgTE9OR0VTVCBvZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHYpOworKyAgTE9OR0VTVCBl bHNpemUgPSBUWVBFX0xFTkdUSCAoZWx0eXBlKTsKKysgIExPTkdFU1QgbiwgaSwgaiA9IDA7Cisg ICBMT05HRVNUIGxvd2IgPSAwOworICAgTE9OR0VTVCBoaWdoYiA9IDA7CisgCitAQCAtMjAzLDkg KzIwMyw5IEBAIGx2YWxfZnVuY193cml0ZSAoc3RydWN0IHZhbHVlICp2LCBzdHJ1Y3QKKyAgIHN0 cnVjdCBsdmFsX2Nsb3N1cmUgKmMgPSAoc3RydWN0IGx2YWxfY2xvc3VyZSAqKSB2YWx1ZV9jb21w dXRlZF9jbG9zdXJlICh2KTsKKyAgIHN0cnVjdCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRlZiAo dmFsdWVfdHlwZSAodikpOworICAgc3RydWN0IHR5cGUgKmVsdHlwZSA9IFRZUEVfVEFSR0VUX1RZ UEUgKGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGMtPnZhbCkpKTsKKy0gIGludCBvZmZzZXQg PSB2YWx1ZV9vZmZzZXQgKHYpOworLSAgaW50IGVsc2l6ZSA9IFRZUEVfTEVOR1RIIChlbHR5cGUp OworLSAgaW50IG4sIGksIGogPSAwOworKyAgTE9OR0VTVCBvZmZzZXQgPSB2YWx1ZV9vZmZzZXQg KHYpOworKyAgTE9OR0VTVCBlbHNpemUgPSBUWVBFX0xFTkdUSCAoZWx0eXBlKTsKKysgIExPTkdF U1QgbiwgaSwgaiA9IDA7CisgICBMT05HRVNUIGxvd2IgPSAwOworICAgTE9OR0VTVCBoaWdoYiA9 IDA7CisgCitAQCAtMjQzLDE3ICsyNDMsMTggQEAgbHZhbF9mdW5jX3dyaXRlIChzdHJ1Y3QgdmFs dWUgKnYsIHN0cnVjdAorIC8qIFJldHVybiBub256ZXJvIGlmIGFsbCBiaXRzIGluIFYgd2l0aGlu IE9GRlNFVCBhbmQgTEVOR1RIIGFyZSB2YWxpZC4gICovCisgCisgc3RhdGljIGludAorLWx2YWxf ZnVuY19jaGVja192YWxpZGl0eSAoY29uc3Qgc3RydWN0IHZhbHVlICp2LCBpbnQgb2Zmc2V0LCBp bnQgbGVuZ3RoKQorK2x2YWxfZnVuY19jaGVja192YWxpZGl0eSAoY29uc3Qgc3RydWN0IHZhbHVl ICp2LCBMT05HRVNUIG9mZnNldCwKKysJCQkgIExPTkdFU1QgbGVuZ3RoKQorIHsKKyAgIHN0cnVj dCBsdmFsX2Nsb3N1cmUgKmMgPSAoc3RydWN0IGx2YWxfY2xvc3VyZSAqKSB2YWx1ZV9jb21wdXRl ZF9jbG9zdXJlICh2KTsKKysgIHN0cnVjdCB0eXBlICp0ID0gY2hlY2tfdHlwZWRlZiAodmFsdWVf dHlwZSAoYy0+dmFsKSk7CisgICAvKiBTaXplIG9mIHRoZSB0YXJnZXQgdHlwZSBpbiBiaXRzLiAg Ki8KKy0gIGludCBlbHNpemUgPQorLSAgICAgIFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBF IChjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChjLT52YWwpKSkpICogODsKKy0gIGludCBzdGFy dHJlc3QgPSBvZmZzZXQgJSBlbHNpemU7CistICBpbnQgc3RhcnQgPSBvZmZzZXQgLyBlbHNpemU7 CistICBpbnQgZW5kcmVzdCA9IChvZmZzZXQgKyBsZW5ndGgpICUgZWxzaXplOworLSAgaW50IGVu ZCA9IChvZmZzZXQgKyBsZW5ndGgpIC8gZWxzaXplOworLSAgaW50IGk7CisrICBMT05HRVNUIGVs c2l6ZSA9IFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFICh0KSkgKiA4OworKyAgTE9OR0VT VCBzdGFydHJlc3QgPSBvZmZzZXQgJSBlbHNpemU7CisrICBMT05HRVNUIHN0YXJ0ID0gb2Zmc2V0 IC8gZWxzaXplOworKyAgTE9OR0VTVCBlbmRyZXN0ID0gKG9mZnNldCArIGxlbmd0aCkgJSBlbHNp emU7CisrICBMT05HRVNUIGVuZCA9IChvZmZzZXQgKyBsZW5ndGgpIC8gZWxzaXplOworKyAgTE9O R0VTVCBpOworIAorICAgaWYgKGVuZHJlc3QpCisgICAgIGVuZCsrOworQEAgLTI2Myw4ICsyNjQs OCBAQCBsdmFsX2Z1bmNfY2hlY2tfdmFsaWRpdHkgKGNvbnN0IHN0cnVjdCB2CisgCisgICBmb3Ig KGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKQorICAgICB7CistICAgICAgaW50IGNvbXBfb2Zmc2V0 ID0gKGkgPT0gc3RhcnQpID8gc3RhcnRyZXN0IDogMDsKKy0gICAgICBpbnQgY29tcF9sZW5ndGgg PSAoaSA9PSBlbmQpID8gZW5kcmVzdCA6IGVsc2l6ZTsKKysgICAgICBMT05HRVNUIGNvbXBfb2Zm c2V0ID0gKGkgPT0gc3RhcnQpID8gc3RhcnRyZXN0IDogMDsKKysgICAgICBMT05HRVNUIGNvbXBf bGVuZ3RoID0gKGkgPT0gZW5kKSA/IGVuZHJlc3QgOiBlbHNpemU7CisgCisgICAgICAgaWYgKCF2 YWx1ZV9iaXRzX3ZhbGlkIChjLT52YWwsIGMtPmluZGljZXNbaV0gKiBlbHNpemUgKyBjb21wX29m ZnNldCwKKyAJCQkgICAgIGNvbXBfbGVuZ3RoKSkKK0BAIC0yODEsOCArMjgyLDggQEAgbHZhbF9m dW5jX2NoZWNrX2FueV92YWxpZCAoY29uc3Qgc3RydWN0CisgeworICAgc3RydWN0IGx2YWxfY2xv c3VyZSAqYyA9IChzdHJ1Y3QgbHZhbF9jbG9zdXJlICopIHZhbHVlX2NvbXB1dGVkX2Nsb3N1cmUg KHYpOworICAgLyogU2l6ZSBvZiB0aGUgdGFyZ2V0IHR5cGUgaW4gYml0cy4gICovCistICBpbnQg ZWxzaXplID0KKy0gICAgICBUWVBFX0xFTkdUSCAoVFlQRV9UQVJHRVRfVFlQRSAoY2hlY2tfdHlw ZWRlZiAodmFsdWVfdHlwZSAoYy0+dmFsKSkpKSAqIDg7CisrICBMT05HRVNUIGVsc2l6ZSA9Cisr CSAgIFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFIChjaGVja190eXBlZGVmICh2YWx1ZV90 eXBlIChjLT52YWwpKSkpICogODsKKyAgIGludCBpOworIAorICAgZm9yIChpID0gMDsgaSA8IGMt Pm47IGkrKykKK0BAIC0yOTcsMTcgKzI5OCwxNyBAQCBsdmFsX2Z1bmNfY2hlY2tfYW55X3ZhbGlk IChjb25zdCBzdHJ1Y3QKKyAKKyBzdGF0aWMgaW50CisgbHZhbF9mdW5jX2NoZWNrX3N5bnRoZXRp Y19wb2ludGVyIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnYsCistCQkJCSAgIGludCBvZmZzZXQsIGlu dCBsZW5ndGgpCisrCQkJCSAgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCkKKyB7Cisg ICBzdHJ1Y3QgbHZhbF9jbG9zdXJlICpjID0gKHN0cnVjdCBsdmFsX2Nsb3N1cmUgKikgdmFsdWVf Y29tcHV0ZWRfY2xvc3VyZSAodik7CisgICAvKiBTaXplIG9mIHRoZSB0YXJnZXQgdHlwZSBpbiBi aXRzLiAgKi8KKy0gIGludCBlbHNpemUgPQorLSAgICAgIFRZUEVfTEVOR1RIIChUWVBFX1RBUkdF VF9UWVBFIChjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChjLT52YWwpKSkpICogODsKKy0gIGlu dCBzdGFydHJlc3QgPSBvZmZzZXQgJSBlbHNpemU7CistICBpbnQgc3RhcnQgPSBvZmZzZXQgLyBl bHNpemU7CistICBpbnQgZW5kcmVzdCA9IChvZmZzZXQgKyBsZW5ndGgpICUgZWxzaXplOworLSAg aW50IGVuZCA9IChvZmZzZXQgKyBsZW5ndGgpIC8gZWxzaXplOworLSAgaW50IGk7CisrICBMT05H RVNUIGVsc2l6ZSA9CisrCSAgIFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFIChjaGVja190 eXBlZGVmICh2YWx1ZV90eXBlIChjLT52YWwpKSkpICogODsKKysgIExPTkdFU1Qgc3RhcnRyZXN0 ID0gb2Zmc2V0ICUgZWxzaXplOworKyAgTE9OR0VTVCBzdGFydCA9IG9mZnNldCAvIGVsc2l6ZTsK KysgIExPTkdFU1QgZW5kcmVzdCA9IChvZmZzZXQgKyBsZW5ndGgpICUgZWxzaXplOworKyAgTE9O R0VTVCBlbmQgPSAob2Zmc2V0ICsgbGVuZ3RoKSAvIGVsc2l6ZTsKKysgIExPTkdFU1QgaTsKKyAK KyAgIGlmIChlbmRyZXN0KQorICAgICBlbmQrKzsKK0BAIC0zMTcsOCArMzE4LDggQEAgbHZhbF9m dW5jX2NoZWNrX3N5bnRoZXRpY19wb2ludGVyIChjb25zdAorIAorICAgZm9yIChpID0gc3RhcnQ7 IGkgPCBlbmQ7IGkrKykKKyAgICAgeworLSAgICAgIGludCBjb21wX29mZnNldCA9IChpID09IHN0 YXJ0KSA/IHN0YXJ0cmVzdCA6IDA7CistICAgICAgaW50IGNvbXBfbGVuZ3RoID0gKGkgPT0gZW5k KSA/IGVuZHJlc3QgOiBlbHNpemU7CisrICAgICAgTE9OR0VTVCBjb21wX29mZnNldCA9IChpID09 IHN0YXJ0KSA/IHN0YXJ0cmVzdCA6IDA7CisrICAgICAgTE9OR0VTVCBjb21wX2xlbmd0aCA9IChp ID09IGVuZCkgPyBlbmRyZXN0IDogZWxzaXplOworIAorICAgICAgIGlmICghdmFsdWVfYml0c19z eW50aGV0aWNfcG9pbnRlciAoYy0+dmFsLAorIAkJCQkJIGMtPmluZGljZXNbaV0gKiBlbHNpemUg KyBjb21wX29mZnNldCwKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3AtbGFuZy5jCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3AtbGFuZy5jCTIwMTIt MTEtMDcgMjI6MDA6NDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dk Yi9wLWxhbmcuYwkyMDEyLTExLTA3IDIyOjA5OjI5LjkyMjE0MDY2NyArMDEwMAorQEAgLTk2LDgg Kzk2LDggQEAgcGFzY2FsX21haW5fbmFtZSAodm9pZCkKKyAgICBhcmUgbm90IG11bHRpcGxlIG9m IFRBUkdFVF9DSEFSX0JJVCB0aGVuIHRoZSByZXN1bHRzIGFyZSB3cm9uZworICAgIGJ1dCB0aGlz IGRvZXMgbm90IGhhcHBlbiBmb3IgRnJlZSBQYXNjYWwgbm9yIGZvciBHUEMuICAqLworIGludAor LWlzX3Bhc2NhbF9zdHJpbmdfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsaW50ICpsZW5ndGhfcG9z LAorLSAgICAgICAgICAgICAgICAgICAgICAgaW50ICpsZW5ndGhfc2l6ZSwgaW50ICpzdHJpbmdf cG9zLAorK2lzX3Bhc2NhbF9zdHJpbmdfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsIExPTkdFU1Qg Kmxlbmd0aF9wb3MsCisrCQkgICAgICAgTE9OR0VTVCAqbGVuZ3RoX3NpemUsIExPTkdFU1QgKnN0 cmluZ19wb3MsCisgCQkgICAgICAgc3RydWN0IHR5cGUgKipjaGFyX3R5cGUsCisgCQkgICAgICAg Y29uc3QgY2hhciAqKmFycmF5bmFtZSkKKyB7CitAQCAtMjE3LDEyICsyMTcsMTIgQEAgcGFzY2Fs X3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eQorIAorIHZvaWQKKyBwYXNjYWxfcHJp bnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLAorLQkJIGNv bnN0IGdkYl9ieXRlICpzdHJpbmcsIHVuc2lnbmVkIGludCBsZW5ndGgsCisrCQkgY29uc3QgZ2Ri X2J5dGUgKnN0cmluZywgVUxPTkdFU1QgbGVuZ3RoLAorIAkJIGNvbnN0IGNoYXIgKmVuY29kaW5n LCBpbnQgZm9yY2VfZWxsaXBzZXMsCisgCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKm9wdGlvbnMpCisgeworICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNo X2J5dGVfb3JkZXIgKGdldF90eXBlX2FyY2ggKHR5cGUpKTsKKy0gIHVuc2lnbmVkIGludCBpOwor KyAgVUxPTkdFU1QgaTsKKyAgIHVuc2lnbmVkIGludCB0aGluZ3NfcHJpbnRlZCA9IDA7CisgICBp bnQgaW5fcXVvdGVzID0gMDsKKyAgIGludCBuZWVkX2NvbW1hID0gMDsKK0BAIC0yNTAsOSArMjUw LDkgQEAgcGFzY2FsX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorICAgICB7Cisg ICAgICAgLyogUG9zaXRpb24gb2YgdGhlIGNoYXJhY3RlciB3ZSBhcmUgZXhhbWluaW5nCisgICAg ICAgICAgdG8gc2VlIHdoZXRoZXIgaXQgaXMgcmVwZWF0ZWQuICAqLworLSAgICAgIHVuc2lnbmVk IGludCByZXAxOworKyAgICAgIFVMT05HRVNUIHJlcDE7CisgICAgICAgLyogTnVtYmVyIG9mIHJl cGV0aXRpb25zIHdlIGhhdmUgZGV0ZWN0ZWQgc28gZmFyLiAgKi8KKy0gICAgICB1bnNpZ25lZCBp bnQgcmVwczsKKysgICAgICBVTE9OR0VTVCByZXBzOworICAgICAgIHVuc2lnbmVkIGxvbmcgaW50 IGN1cnJlbnRfY2hhcjsKKyAKKyAgICAgICBRVUlUOworQEAgLTI4Nyw3ICsyODcsNyBAQCBwYXNj YWxfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCisgCSAgICAgIGluX3F1b3RlcyA9 IDA7CisgCSAgICB9CisgCSAgcGFzY2FsX3ByaW50Y2hhciAoY3VycmVudF9jaGFyLCB0eXBlLCBz dHJlYW0pOworLQkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiA8cmVwZWF0cyAldSB0aW1l cz4iLCByZXBzKTsKKysJICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIgPHJlcGVhdHMgJXMg dGltZXM+IiwgcHVsb25nZXN0IChyZXBzKSk7CisgCSAgaSA9IHJlcDEgLSAxOworIAkgIHRoaW5n c19wcmludGVkICs9IG9wdGlvbnMtPnJlcGVhdF9jb3VudF90aHJlc2hvbGQ7CisgCSAgbmVlZF9j b21tYSA9IDE7CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9wLWxhbmcuaAorPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9wLWxhbmcuaAkyMDEyLTAzLTAx IDIwOjI2OjEzLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvcC1s YW5nLmgJMjAxMi0xMS0wNyAyMjowOToyOS45MjMxNDA2NjUgKzAxMDAKK0BAIC0zNSw3ICszNSw3 IEBAIGV4dGVybiB2b2lkIHBhc2NhbF9wcmludF90eXBlIChzdHJ1Y3QgdHkKKyBleHRlcm4gdm9p ZCBwYXNjYWxfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHN5bWJvbCAqLAor IAkJCQkgIHN0cnVjdCB1aV9maWxlICopOworIAorLWV4dGVybiB2b2lkIHBhc2NhbF92YWxfcHJp bnQgKHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosIGludCwKKytleHRlcm4gdm9pZCBw YXNjYWxfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLCBMT05HRVNU LAorIAkJCSAgICAgIENPUkVfQUREUiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAorIAkJCSAgICAg IGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAorIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICopOworQEAgLTQ5LDEzICs0OSwxMyBAQCBleHRlcm4gdm9pZCBwYXNjYWxfdHlw ZV9wcmludF9tZXRob2RfYXJnCisgLyogVGhlc2UgYXJlIGluIHAtbGFuZy5jOiAqLworIAorIGV4 dGVybiBpbnQKKy0gIGlzX3Bhc2NhbF9zdHJpbmdfdHlwZSAoc3RydWN0IHR5cGUgKiwgaW50ICos IGludCAqLCBpbnQgKiwKKysgIGlzX3Bhc2NhbF9zdHJpbmdfdHlwZSAoc3RydWN0IHR5cGUgKiwg TE9OR0VTVCAqLCBMT05HRVNUICosIExPTkdFU1QgKiwKKyAJCQkgc3RydWN0IHR5cGUgKiosIGNv bnN0IGNoYXIgKiopOworIAorIGV4dGVybiB2b2lkIHBhc2NhbF9wcmludGNoYXIgKGludCwgc3Ry dWN0IHR5cGUgKiwgc3RydWN0IHVpX2ZpbGUgKik7CisgCisgZXh0ZXJuIHZvaWQgcGFzY2FsX3By aW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqLCBzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAq LAorLQkJCSAgICAgdW5zaWduZWQgaW50LCBjb25zdCBjaGFyICosIGludCwKKysJCQkgICAgIFVM T05HRVNULCBjb25zdCBjaGFyICosIGludCwKKyAJCQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICopOworIAorIGV4dGVybiBzdHJ1Y3QgdHlwZSAqKmNvbnN0IChwYXNjYWxf YnVpbHRpbl90eXBlc1tdKTsKK0BAIC02OSw3ICs2OSw3IEBAIGV4dGVybiB2b2lkCisgICBwYXNj YWxfdHlwZV9wcmludF92YXJzcGVjX3ByZWZpeCAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHVpX2Zp bGUgKiwgaW50LCBpbnQpOworIAorIGV4dGVybiB2b2lkIHBhc2NhbF9vYmplY3RfcHJpbnRfdmFs dWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLAorLQkJCQkJICAgICAg aW50LAorKwkJCQkJICAgICAgTE9OR0VTVCwKKyAJCQkJCSAgICAgIENPUkVfQUREUiwgc3RydWN0 IHVpX2ZpbGUgKiwKKyAJCQkJCSAgICAgIGludCwKKyAJCQkJCSAgICAgIGNvbnN0IHN0cnVjdCB2 YWx1ZSAqLAorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvcC12YWxwcmludC5jCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3AtdmFscHJpbnQuYwkyMDEy LTExLTA3IDIyOjAwOjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9n ZGIvcC12YWxwcmludC5jCTIwMTItMTEtMDcgMjI6MDk6MjkuOTMwMTQwNjU1ICswMTAwCitAQCAt NTksNyArNTksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVyaWNfdmFsX3ByaW50X2RlCisg Cisgdm9pZAorIHBhc2NhbF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKKy0JCSAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJl c3MsCisrCQkgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKyAJ CSAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCisgCQkgIGNvbnN0IHN0cnVj dCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCisgCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICpvcHRpb25zKQorQEAgLTcwLDggKzcwLDggQEAgcGFzY2FsX3ZhbF9wcmludCAoc3Ry dWN0IHR5cGUgKnR5cGUsIGNvbgorICAgdW5zaWduZWQgbGVuOworICAgTE9OR0VTVCBsb3dfYm91 bmQsIGhpZ2hfYm91bmQ7CisgICBzdHJ1Y3QgdHlwZSAqZWx0dHlwZTsKKy0gIHVuc2lnbmVkIGVs dGxlbjsKKy0gIGludCBsZW5ndGhfcG9zLCBsZW5ndGhfc2l6ZSwgc3RyaW5nX3BvczsKKysgIFVM T05HRVNUIGVsdGxlbjsKKysgIExPTkdFU1QgbGVuZ3RoX3BvcywgbGVuZ3RoX3NpemUsIHN0cmlu Z19wb3M7CisgICBzdHJ1Y3QgdHlwZSAqY2hhcl90eXBlOworICAgQ09SRV9BRERSIGFkZHI7Cisg ICBpbnQgd2FudF9zcGFjZSA9IDA7CitAQCAtNTA0LDcgKzUwNCw3IEBAIHN0YXRpYyB2b2lkIHBh c2NhbF9vYmplY3RfcHJpbnRfc3RhdGljX2YKKyAJCQkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICopOworIAorIHN0YXRpYyB2b2lkIHBhc2NhbF9vYmplY3RfcHJpbnRf dmFsdWUgKHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosCistCQkJCSAgICAgICBpbnQs CisrCQkJCSAgICAgICBMT05HRVNULAorIAkJCQkgICAgICAgQ09SRV9BRERSLCBzdHJ1Y3QgdWlf ZmlsZSAqLCBpbnQsCisgCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKKyAJCQkJICAg ICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICosCitAQCAtNTYzLDcgKzU2Myw3 IEBAIHBhc2NhbF9vYmplY3RfaXNfdnRibF9tZW1iZXIgKHN0cnVjdCB0eXAKKyAKKyB2b2lkCisg cGFzY2FsX29iamVjdF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25z dCBnZGJfYnl0ZSAqdmFsYWRkciwKKy0JCQkJICBpbnQgb2Zmc2V0LAorKwkJCQkgIExPTkdFU1Qg b2Zmc2V0LAorIAkJCQkgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LAorIAkJCQkgIGludCByZWN1cnNlLAorIAkJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAor QEAgLTc1OCw3ICs3NTgsNyBAQCBwYXNjYWxfb2JqZWN0X3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3Ry dWN0CisgCisgc3RhdGljIHZvaWQKKyBwYXNjYWxfb2JqZWN0X3ByaW50X3ZhbHVlIChzdHJ1Y3Qg dHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkJICAgaW50IG9mZnNldCwK KysJCQkgICBMT05HRVNUIG9mZnNldCwKKyAJCQkgICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSwKKyAJCQkgICBpbnQgcmVjdXJzZSwKKyAJCQkgICBjb25zdCBzdHJ1 Y3QgdmFsdWUgKnZhbCwKK0BAIC03ODEsMTEgKzc4MSwxMSBAQCBwYXNjYWxfb2JqZWN0X3ByaW50 X3ZhbHVlIChzdHJ1Y3QgdHlwZSAqCisgCisgICBmb3IgKGkgPSAwOyBpIDwgbl9iYXNlY2xhc3Nl czsgaSsrKQorICAgICB7CistICAgICAgaW50IGJvZmZzZXQgPSAwOworKyAgICAgIExPTkdFU1Qg Ym9mZnNldCA9IDA7CisgICAgICAgc3RydWN0IHR5cGUgKmJhc2VjbGFzcyA9IGNoZWNrX3R5cGVk ZWYgKFRZUEVfQkFTRUNMQVNTICh0eXBlLCBpKSk7CisgICAgICAgY29uc3QgY2hhciAqYmFzZW5h bWUgPSB0eXBlX25hbWVfbm9fdGFnIChiYXNlY2xhc3MpOworICAgICAgIGNvbnN0IGdkYl9ieXRl ICpiYXNlX3ZhbGFkZHIgPSBOVUxMOworLSAgICAgIGludCB0aGlzb2Zmc2V0OworKyAgICAgIExP TkdFU1QgdGhpc29mZnNldDsKKyAgICAgICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBl eDsKKyAgICAgICBpbnQgc2tpcCA9IDA7CisgCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dk Yi9wcGMtbGludXgtbmF0LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3Jp Zy9nZGIvcHBjLWxpbnV4LW5hdC5jCTIwMTItMDctMDYgMTg6NDk6NDMuMDAwMDAwMDAwICswMjAw CisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9wcGMtbGludXgtbmF0LmMJMjAxMi0xMS0wNyAy MjowOToyOS45MzMxNDA2NTEgKzAxMDAKK0BAIC0xNDkzLDcgKzE0OTMsNyBAQCBwcGNfbGludXhf Y2FuX3VzZV9od19icmVha3BvaW50IChpbnQgdHlwCisgfQorIAorIHN0YXRpYyBpbnQKKy1wcGNf bGludXhfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxl bikKKytwcGNfbGludXhfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChDT1JFX0FERFIgYWRk ciwgTE9OR0VTVCBsZW4pCisgeworICAgLyogSGFuZGxlIHN1Yi04LWJ5dGUgcXVhbnRpdGllcy4g ICovCisgICBpZiAobGVuIDw9IDApCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9wcmlu dGNtZC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3ByaW50 Y21kLmMJMjAxMi0xMS0wNyAyMjowMzo1Ny4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAu MjAxMjA5MjYvZ2RiL3ByaW50Y21kLmMJMjAxMi0xMS0wNyAyMjowOToyOS45NDAxNDA2NDEgKzAx MDAKK0BAIC0yOTEsNyArMjkxLDcgQEAgcHJpbnRfZm9ybWF0dGVkIChzdHJ1Y3QgdmFsdWUgKnZh bCwgaW50CisgCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKKyB7CisgICBzdHJ1Y3QgdHlwZSAq dHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZhbCkpOworLSAgaW50IGxlbiA9IFRZ UEVfTEVOR1RIICh0eXBlKTsKKysgIExPTkdFU1QgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOwor IAorICAgaWYgKFZBTFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9tZW1vcnkpCisgICAgIG5leHRfYWRk cmVzcyA9IHZhbHVlX2FkZHJlc3MgKHZhbCkgKyBsZW47CitAQCAtMzY5LDcgKzM2OSw3IEBAIHBy aW50X3NjYWxhcl9mb3JtYXR0ZWQgKGNvbnN0IHZvaWQgKnZhbGEKKyB7CisgICBzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUpOworICAgTE9OR0VTVCB2YWxfbG9u ZyA9IDA7CistICB1bnNpZ25lZCBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworKyAgVUxP TkdFU1QgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVf b3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOworIAorICAgLyogU3RyaW5nIHBy aW50aW5nIHNob3VsZCBnbyB0aHJvdWdoIHZhbF9wcmludF9zY2FsYXJfZm9ybWF0dGVkLiAgKi8K K0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3Byb2Nmcy5jCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g Z2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3Byb2Nmcy5jCTIwMTItMTEtMDcgMjI6MDA6NDMu MDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9wcm9jZnMuYwkyMDEy LTExLTA3IDIyOjA5OjI5Ljk0NTE0MDYzMyArMDEwMAorQEAgLTQ5NjYsNyArNDk2Niw3IEBAIHBy b2Nmc19yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIKKyB9CisgCisgc3RhdGljIGlu dAorLXByb2Nmc19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBp bnQgbGVuKQorK3Byb2Nmc19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBh ZGRyLCBMT05HRVNUIGxlbikKKyB7CisgICAvKiBUaGUgbWFuIHBhZ2UgZm9yIHByb2MoNCkgb24g U29sYXJpcyAyLjYgYW5kIHVwIHNheXMgdGhhdCB0aGUKKyAgICAgIHN5c3RlbSBjYW4gc3VwcG9y dCAidGhvdXNhbmRzIiBvZiBoYXJkd2FyZSB3YXRjaHBvaW50cywgYnV0IGdpdmVzCitJbmRleDog Z2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYworPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9weXRob24vcHktcHJldHR5cHJpbnQu YwkyMDEyLTAxLTA0IDA5OjE3OjI1LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEy MDkyNi9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMJMjAxMi0xMS0wNyAyMjowOToyOS45Njkx NDA1OTggKzAxMDAKK0BAIC02NzYsNyArNjc2LDcgQEAgcHJpbnRfY2hpbGRyZW4gKFB5T2JqZWN0 ICpwcmludGVyLCBjb25zdAorIAorIGludAorIGFwcGx5X3ZhbF9wcmV0dHlfcHJpbnRlciAoc3Ry dWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJCSAgaW50IGVtYmVk ZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisrCQkJICBMT05HRVNUIGVtYmVkZGVkX29m ZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBp bnQgcmVjdXJzZSwKKyAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkJCSAgY29uc3Qg c3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCitAQCAtODI0LDcgKzgyNCw3IEBA IGdkYnB5X2RlZmF1bHRfdmlzdWFsaXplciAoUHlPYmplY3QgKnNlbGYKKyAKKyBpbnQKKyBhcHBs eV92YWxfcHJldHR5X3ByaW50ZXIgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAq dmFsYWRkciwKKy0JCQkgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAor KwkJCSAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAorIAkJCSAg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCisgCQkJICBjb25zdCBzdHJ1Y3Qg dmFsdWUgKnZhbCwKKyAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zLAorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvcHl0aG9uL3B5dGhvbi5oCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3B5dGhvbi9weXRob24uaAky MDEyLTExLTA3IDIyOjAwOjQxLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDky Ni9nZGIvcHl0aG9uL3B5dGhvbi5oCTIwMTItMTEtMDcgMjI6MTA6NDYuMDEwMDMwMTE1ICswMTAw CitAQCAtMzcsNyArMzcsNyBAQCB2b2lkIHNvdXJjZV9weXRob25fc2NyaXB0IChGSUxFICpmaWxl LCBjCisgdm9pZCBydW5fcHl0aG9uX3NjcmlwdCAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKKyAK KyBpbnQgYXBwbHlfdmFsX3ByZXR0eV9wcmludGVyIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3Qg Z2RiX2J5dGUgKnZhbGFkZHIsCistCQkJICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9B RERSIGFkZHJlc3MsCisrCQkJICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQURE UiBhZGRyZXNzLAorIAkJCSAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNl LAorIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkJCSAgICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAorSW5kZXg6IGdkYi03LjUuMC4yMDEy MDkyNi9nZGIvcmVnY2FjaGUuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5v cmlnL2dkYi9yZWdjYWNoZS5jCTIwMTItMDEtMDQgMDk6MTc6MDkuMDAwMDAwMDAwICswMTAwCisr KysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9yZWdjYWNoZS5jCTIwMTItMTEtMDcgMjI6MDk6Mjku OTg4MTQwNTcxICswMTAwCitAQCAtOTAyLDcgKzkwMiw3IEBAIHR5cGVkZWYgdm9pZCAocmVnY2Fj aGVfd3JpdGVfZnR5cGUpIChzdHIKKyAKKyBzdGF0aWMgZW51bSByZWdpc3Rlcl9zdGF0dXMKKyBy ZWdjYWNoZV94ZmVyX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0s CistCQkgICAgaW50IG9mZnNldCwgaW50IGxlbiwgdm9pZCAqaW4sIGNvbnN0IHZvaWQgKm91dCwK KysJCSAgICBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW4sIHZvaWQgKmluLCBjb25zdCB2b2lk ICpvdXQsCisgCQkgICAgZW51bSByZWdpc3Rlcl9zdGF0dXMgKCpyZWFkKSAoc3RydWN0IHJlZ2Nh Y2hlICpyZWdjYWNoZSwKKyAJCQkJCQkgIGludCByZWdudW0sCisgCQkJCQkJICBnZGJfYnl0ZSAq YnVmKSwKK0BAIC05NDYsNyArOTQ2LDcgQEAgcmVnY2FjaGVfeGZlcl9wYXJ0IChzdHJ1Y3QgcmVn Y2FjaGUgKnJlZworIAorIGVudW0gcmVnaXN0ZXJfc3RhdHVzCisgcmVnY2FjaGVfcmF3X3JlYWRf cGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSwKKy0JCQlpbnQgb2Zm c2V0LCBpbnQgbGVuLCBnZGJfYnl0ZSAqYnVmKQorKwkJCWludCBvZmZzZXQsIExPTkdFU1QgbGVu LCBnZGJfYnl0ZSAqYnVmKQorIHsKKyAgIHN0cnVjdCByZWdjYWNoZV9kZXNjciAqZGVzY3IgPSBy ZWdjYWNoZS0+ZGVzY3I7CisgCitAQCAtOTU3LDcgKzk1Nyw3IEBAIHJlZ2NhY2hlX3Jhd19yZWFk X3BhcnQgKHN0cnVjdCByZWdjYWNoZQorIAorIHZvaWQKKyByZWdjYWNoZV9yYXdfd3JpdGVfcGFy dCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSwKKy0JCQkgaW50IG9mZnNl dCwgaW50IGxlbiwgY29uc3QgZ2RiX2J5dGUgKmJ1ZikKKysJCQkgaW50IG9mZnNldCwgTE9OR0VT VCBsZW4sIGNvbnN0IGdkYl9ieXRlICpidWYpCisgeworICAgc3RydWN0IHJlZ2NhY2hlX2Rlc2Ny ICpkZXNjciA9IHJlZ2NhY2hlLT5kZXNjcjsKKyAKK0BAIC05NjgsNyArOTY4LDcgQEAgcmVnY2Fj aGVfcmF3X3dyaXRlX3BhcnQgKHN0cnVjdCByZWdjYWNoZQorIAorIGVudW0gcmVnaXN0ZXJfc3Rh dHVzCisgcmVnY2FjaGVfY29va2VkX3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNo ZSwgaW50IHJlZ251bSwKKy0JCQkgICBpbnQgb2Zmc2V0LCBpbnQgbGVuLCBnZGJfYnl0ZSAqYnVm KQorKwkJCSAgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbiwgZ2RiX2J5dGUgKmJ1ZikKKyB7 CisgICBzdHJ1Y3QgcmVnY2FjaGVfZGVzY3IgKmRlc2NyID0gcmVnY2FjaGUtPmRlc2NyOworIAor QEAgLTk3OSw3ICs5NzksNyBAQCByZWdjYWNoZV9jb29rZWRfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVn Y2FjCisgCisgdm9pZAorIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZV9wYXJ0IChzdHJ1Y3QgcmVnY2Fj aGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLAorLQkJCSAgICBpbnQgb2Zmc2V0LCBpbnQgbGVuLCBj b25zdCBnZGJfYnl0ZSAqYnVmKQorKwkJCSAgICBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW4s IGNvbnN0IGdkYl9ieXRlICpidWYpCisgeworICAgc3RydWN0IHJlZ2NhY2hlX2Rlc2NyICpkZXNj ciA9IHJlZ2NhY2hlLT5kZXNjcjsKKyAKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3Jl Z2NhY2hlLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvcmVn Y2FjaGUuaAkyMDEyLTAxLTA0IDA5OjE3OjEwLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUu MC4yMDEyMDkyNi9nZGIvcmVnY2FjaGUuaAkyMDEyLTExLTA3IDIyOjA5OjI5Ljk5MDE0MDU2OCAr MDEwMAorQEAgLTkwLDkgKzkwLDkgQEAgZXh0ZXJuIHZvaWQgcmVnY2FjaGVfcmF3X3dyaXRlX3Vu c2lnbmVkCisgCisgZXh0ZXJuIGVudW0gcmVnaXN0ZXJfc3RhdHVzCisgICByZWdjYWNoZV9yYXdf cmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLAorLQkJCSAg aW50IG9mZnNldCwgaW50IGxlbiwgZ2RiX2J5dGUgKmJ1Zik7CisrCQkJICBpbnQgb2Zmc2V0LCBM T05HRVNUIGxlbiwgZ2RiX2J5dGUgKmJ1Zik7Cisgdm9pZCByZWdjYWNoZV9yYXdfd3JpdGVfcGFy dCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSwKKy0JCQkgICAgICBpbnQg b2Zmc2V0LCBpbnQgbGVuLCBjb25zdCBnZGJfYnl0ZSAqYnVmKTsKKysJCQkgICAgICBpbnQgb2Zm c2V0LCBMT05HRVNUIGxlbiwgY29uc3QgZ2RiX2J5dGUgKmJ1Zik7CisgCisgdm9pZCByZWdjYWNo ZV9pbnZhbGlkYXRlIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtKTsKKyAK K0BAIC0xMjksMTAgKzEyOSwxMSBAQCBleHRlcm4gdm9pZCByZWdjYWNoZV9jb29rZWRfd3JpdGVf dW5zaWduCisgICAgd3JpdGUgc3R5bGUgb3BlcmF0aW9ucy4gICovCisgCisgZW51bSByZWdpc3Rl cl9zdGF0dXMgcmVnY2FjaGVfY29va2VkX3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdj YWNoZSwKKy0JCQkJCQlpbnQgcmVnbnVtLCBpbnQgb2Zmc2V0LAorLQkJCQkJCWludCBsZW4sIGdk Yl9ieXRlICpidWYpOworKwkJCQkJCWludCByZWdudW0sIExPTkdFU1Qgb2Zmc2V0LAorKwkJCQkJ CUxPTkdFU1QgbGVuLCBnZGJfYnl0ZSAqYnVmKTsKKyB2b2lkIHJlZ2NhY2hlX2Nvb2tlZF93cml0 ZV9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLAorLQkJCQkgaW50 IG9mZnNldCwgaW50IGxlbiwgY29uc3QgZ2RiX2J5dGUgKmJ1Zik7CisrCQkJCSBMT05HRVNUIG9m ZnNldCwgTE9OR0VTVCBsZW4sCisrCQkJCSBjb25zdCBnZGJfYnl0ZSAqYnVmKTsKKyAKKyAvKiBT cGVjaWFsIHJvdXRpbmVzIHRvIHJlYWQvd3JpdGUgdGhlIFBDLiAgKi8KKyAKK0luZGV4OiBnZGIt Ny41LjAuMjAxMjA5MjYvZ2RiL3JlbW90ZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIw MTIwOTI2Lm9yaWcvZ2RiL3JlbW90ZS5jCTIwMTItMTEtMDcgMjI6MDA6NDIuMDAwMDAwMDAwICsw MTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9yZW1vdGUuYwkyMDEyLTExLTA3IDIyOjA5 OjI5Ljk5NDE0MDU2MiArMDEwMAorQEAgLTgxMTksNyArODExOSw3IEBAIGludCByZW1vdGVfaHdf d2F0Y2hwb2ludF9sZW5ndGhfbGltaXQgPQorIGludCByZW1vdGVfaHdfYnJlYWtwb2ludF9saW1p dCA9IC0xOworIAorIHN0YXRpYyBpbnQKKy1yZW1vdGVfcmVnaW9uX29rX2Zvcl9od193YXRjaHBv aW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbikKKytyZW1vdGVfcmVnaW9uX29rX2Zvcl9od193 YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgTE9OR0VTVCBsZW4pCisgeworICAgaWYgKHJlbW90 ZV9od193YXRjaHBvaW50X2xlbmd0aF9saW1pdCA9PSAwKQorICAgICByZXR1cm4gMDsKK0luZGV4 OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3MzOTAtbmF0LmMKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGIt Ny41LjAuMjAxMjA5MjYub3JpZy9nZGIvczM5MC1uYXQuYwkyMDEyLTAzLTA1IDIwOjA1OjA5LjAw MDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvczM5MC1uYXQuYwkyMDEy LTExLTA3IDIyOjA5OjMwLjAxNjE0MDUzMSArMDEwMAorQEAgLTU3Miw3ICs1NzIsNyBAQCBzMzkw X2Nhbl91c2VfaHdfYnJlYWtwb2ludCAoaW50IHR5cGUsIGluCisgfQorIAorIHN0YXRpYyBpbnQK Ky1zMzkwX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBj bnQpCisrczM5MF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBM T05HRVNUIGNudCkKKyB7CisgICByZXR1cm4gMTsKKyB9CitJbmRleDogZ2RiLTcuNS4wLjIwMTIw OTI2L2dkYi9zcHUtbXVsdGlhcmNoLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5 MjYub3JpZy9nZGIvc3B1LW11bHRpYXJjaC5jCTIwMTItMDUtMTggMjM6MDI6NTAuMDAwMDAwMDAw ICswMjAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxMi0x MS0wNyAyMjowOTozMC4wMjExNDA1MjMgKzAxMDAKK0BAIC0xMTgsNyArMTE4LDcgQEAgc3B1X3Ro cmVhZF9hcmNoaXRlY3R1cmUgKHN0cnVjdCB0YXJnZXRfbworIAorIC8qIE92ZXJyaWRlIHRoZSB0 b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgcm91dGluZS4gICovCisgc3RhdGljIGludAor LXNwdV9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVu KQorK3NwdV9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBMT05H RVNUIGxlbikKKyB7CisgICBzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzX2JlbmVhdGggPSBmaW5kX3Rh cmdldF9iZW5lYXRoICgmc3B1X29wcyk7CisgICB3aGlsZSAob3BzX2JlbmVhdGggJiYgIW9wc19i ZW5lYXRoLT50b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpCitJbmRleDogZ2RiLTcuNS4w LjIwMTIwOTI2L2dkYi9zdGFjay5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2 Lm9yaWcvZ2RiL3N0YWNrLmMJMjAxMi0xMS0wNyAyMjowMzo1Ny4wMDAwMDAwMDAgKzAxMDAKKysr KyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3N0YWNrLmMJMjAxMi0xMS0wNyAyMjowOTozMC4wMjQx NDA1MTggKzAxMDAKK0BAIC0xNzMsNyArMTczLDcgQEAgcHJpbnRfc3RhY2tfZnJhbWUgKHN0cnVj dCBmcmFtZV9pbmZvICpmcgorICAgIGFyZ3VtZW50IChub3QganVzdCB0aGUgZmlyc3QgbmFtZWxl c3MgYXJndW1lbnQpLiAgKi8KKyAKKyBzdGF0aWMgdm9pZAorLXByaW50X2ZyYW1lX25hbWVsZXNz X2FyZ3MgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgbG9uZyBzdGFydCwgaW50IG51bSwKKytw cmludF9mcmFtZV9uYW1lbGVzc19hcmdzIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsIExPTkdF U1Qgc3RhcnQsIGludCBudW0sCisgCQkJICAgaW50IGZpcnN0LCBzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtKQorIHsKKyAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZy YW1lKTsKK0BAIC00OTcsNyArNDk3LDcgQEAgcHJpbnRfZnJhbWVfYXJncyAoc3RydWN0IHN5bWJv bCAqZnVuYywgcworICAgLyogT2Zmc2V0IG9mIG5leHQgc3RhY2sgYXJndW1lbnQgYmV5b25kIHRo ZSBvbmUgd2UgaGF2ZSBzZWVuIHRoYXQgaXMKKyAgICAgIGF0IHRoZSBoaWdoZXN0IG9mZnNldCwg b3IgLTEgaWYgd2UgaGF2ZW4ndCBjb21lIHRvIGEgc3RhY2sKKyAgICAgIGFyZ3VtZW50IHlldC4g ICovCistICBsb25nIGhpZ2hlc3Rfb2Zmc2V0ID0gLTE7CisrICBMT05HRVNUIGhpZ2hlc3Rfb2Zm c2V0ID0gLTE7CisgICAvKiBOdW1iZXIgb2YgaW50cyBvZiBhcmd1bWVudHMgdGhhdCB3ZSBoYXZl IHByaW50ZWQgc28gZmFyLiAgKi8KKyAgIGludCBhcmdzX3ByaW50ZWQgPSAwOworICAgc3RydWN0 IGNsZWFudXAgKm9sZF9jaGFpbjsKK0BAIC01MzcsOCArNTM3LDggQEAgcHJpbnRfZnJhbWVfYXJn cyAoc3RydWN0IHN5bWJvbCAqZnVuYywgcworIAkgICAgY2FzZSBMT0NfQVJHOgorIAkgICAgY2Fz ZSBMT0NfUkVGX0FSRzoKKyAJICAgICAgeworLQkJbG9uZyBjdXJyZW50X29mZnNldCA9IFNZTUJP TF9WQUxVRSAoc3ltKTsKKy0JCWludCBhcmdfc2l6ZSA9IFRZUEVfTEVOR1RIIChTWU1CT0xfVFlQ RSAoc3ltKSk7CisrCQlMT05HRVNUIGN1cnJlbnRfb2Zmc2V0ID0gU1lNQk9MX1ZBTFVFIChzeW0p OworKwkJTE9OR0VTVCBhcmdfc2l6ZSA9IFRZUEVfTEVOR1RIIChTWU1CT0xfVFlQRSAoc3ltKSk7 CisgCisgCQkvKiBDb21wdXRlIGFkZHJlc3Mgb2YgbmV4dCBhcmd1bWVudCBieSBhZGRpbmcgdGhl IHNpemUgb2YKKyAJCSAgIHRoaXMgYXJndW1lbnQgYW5kIHJvdW5kaW5nIHRvIGFuIGludCBib3Vu ZGFyeS4gICovCitAQCAtNjczLDcgKzY3Myw3IEBAIHByaW50X2ZyYW1lX2FyZ3MgKHN0cnVjdCBz eW1ib2wgKmZ1bmMsIHMKKyAgICAgIGVub3VnaCBhYm91dCB0aGUgc3RhY2sgdG8gZmluZCB0aGVt LiAgKi8KKyAgIGlmIChudW0gIT0gLTEpCisgICAgIHsKKy0gICAgICBsb25nIHN0YXJ0OworKyAg ICAgIExPTkdFU1Qgc3RhcnQ7CisgCisgICAgICAgaWYgKGhpZ2hlc3Rfb2Zmc2V0ID09IC0xKQor IAlzdGFydCA9IGdkYmFyY2hfZnJhbWVfYXJnc19za2lwIChnZXRfZnJhbWVfYXJjaCAoZnJhbWUp KTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3N5bW1pc2MuYworPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9zeW1taXNjLmMJMjAxMi0xMS0wNyAyMjow MDo0Mi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3N5bW1pc2Mu YwkyMDEyLTExLTA3IDIyOjA5OjMwLjAyNjE0MDUxNiArMDEwMAorQEAgLTUxNywxMSArNTE3LDEx IEBAIHByaW50X3N5bWJvbCAodm9pZCAqYXJncykKKyAKKyAJY2FzZSBMT0NfQ09OU1RfQllURVM6 CisgCSAgeworLQkgICAgdW5zaWduZWQgaTsKKysJICAgIFVMT05HRVNUIGk7CisgCSAgICBzdHJ1 Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFNZTUJPTF9UWVBFIChzeW1ib2wpKTsKKyAK Ky0JICAgIGZwcmludGZfZmlsdGVyZWQgKG91dGZpbGUsICJjb25zdCAldSBoZXggYnl0ZXM6IiwK Ky0JCQkgICAgICBUWVBFX0xFTkdUSCAodHlwZSkpOworKwkgICAgZnByaW50Zl9maWx0ZXJlZCAo b3V0ZmlsZSwgImNvbnN0ICVzIGhleCBieXRlczoiLAorKwkJCSAgICAgIHB1bG9uZ2VzdCAoVFlQ RV9MRU5HVEggKHR5cGUpKSk7CisgCSAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9MRU5HVEggKHR5 cGUpOyBpKyspCisgCSAgICAgIGZwcmludGZfZmlsdGVyZWQgKG91dGZpbGUsICIgJTAyeCIsCisg CQkJCSh1bnNpZ25lZCkgU1lNQk9MX1ZBTFVFX0JZVEVTIChzeW1ib2wpW2ldKTsKK0luZGV4OiBn ZGItNy41LjAuMjAxMjA5MjYvZ2RiL3RhcmdldC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4w LjIwMTIwOTI2Lm9yaWcvZ2RiL3RhcmdldC5jCTIwMTItMDctMDIgMTc6Mjk6MzUuMDAwMDAwMDAw ICswMjAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi90YXJnZXQuYwkyMDEyLTExLTA3IDIy OjA5OjMwLjAyOTE0MDUxMSArMDEwMAorQEAgLTUxLDcgKzUxLDcgQEAgc3RhdGljIHZvaWQgZGVm YXVsdF90ZXJtaW5hbF9pbmZvIChjaGFyCisgc3RhdGljIGludCBkZWZhdWx0X3dhdGNocG9pbnRf YWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0YXJnZXRfb3BzICosCisgCQkJCQkJIENPUkVfQURE UiwgQ09SRV9BRERSLCBpbnQpOworIAorLXN0YXRpYyBpbnQgZGVmYXVsdF9yZWdpb25fb2tfZm9y X2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiwgaW50KTsKKytzdGF0aWMgaW50IGRlZmF1bHRfcmVn aW9uX29rX2Zvcl9od193YXRjaHBvaW50IChDT1JFX0FERFIsIExPTkdFU1QpOworIAorIHN0YXRp YyB2b2lkIHRjb21wbGFpbiAodm9pZCkgQVRUUklCVVRFX05PUkVUVVJOOworIAorQEAgLTEyNyw3 ICsxMjcsNyBAQCBzdGF0aWMgaW50IGRlYnVnX3RvX3N0b3BwZWRfZGF0YV9hZGRyZXNzCisgc3Rh dGljIGludCBkZWJ1Z190b193YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1Y3QgdGFy Z2V0X29wcyAqLAorIAkJCQkJCSAgQ09SRV9BRERSLCBDT1JFX0FERFIsIGludCk7CisgCistc3Rh dGljIGludCBkZWJ1Z190b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiwg aW50KTsKKytzdGF0aWMgaW50IGRlYnVnX3RvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAo Q09SRV9BRERSLCBMT05HRVNUKTsKKyAKKyBzdGF0aWMgaW50IGRlYnVnX3RvX2Nhbl9hY2NlbF93 YXRjaHBvaW50X2NvbmRpdGlvbiAoQ09SRV9BRERSLCBpbnQsIGludCwKKyAJCQkJCQkgICAgc3Ry dWN0IGV4cHJlc3Npb24gKik7CitAQCAtMzU0Niw3ICszNTQ2LDcgQEAgdGFyZ2V0X2ZpbGVpb19y ZWFkX3N0cmFsbG9jIChjb25zdCBjaGFyCisgCisgCisgc3RhdGljIGludAorLWRlZmF1bHRfcmVn aW9uX29rX2Zvcl9od193YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbikKKytkZWZh dWx0X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdFU1Qg bGVuKQorIHsKKyAgIHJldHVybiAobGVuIDw9IGdkYmFyY2hfcHRyX2JpdCAodGFyZ2V0X2dkYmFy Y2gpIC8gVEFSR0VUX0NIQVJfQklUKTsKKyB9CitAQCAtNDE5Nyw3ICs0MTk3LDcgQEAgZGVidWdf dG9fY2FuX3VzZV9od19icmVha3BvaW50IChpbnQgdHlwZQorIH0KKyAKKyBzdGF0aWMgaW50Cist ZGVidWdfdG9fcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50 IGxlbikKKytkZWJ1Z190b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBh ZGRyLCBMT05HRVNUIGxlbikKKyB7CisgICBDT1JFX0FERFIgcmV0dmFsOworIAorSW5kZXg6IGdk Yi03LjUuMC4yMDEyMDkyNi9nZGIvdGFyZ2V0LmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAu MjAxMjA5MjYub3JpZy9nZGIvdGFyZ2V0LmgJMjAxMi0xMS0wNyAyMjowMDo0My4wMDAwMDAwMDAg KzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3RhcmdldC5oCTIwMTItMTEtMDcgMjI6 MDk6MzAuMDU1MTQwNDc0ICswMTAwCitAQCAtNDc4LDcgKzQ3OCw3IEBAIHN0cnVjdCB0YXJnZXRf b3BzCisgCisgICAgIC8qIERvY3VtZW50YXRpb24gb2YgdGhpcyByb3V0aW5lIGlzIHByb3ZpZGVk IHdpdGggdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgdGFyZ2V0XyogbWFjcm8uICAqLworLSAg ICBpbnQgKCp0b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpIChDT1JFX0FERFIsIGludCk7 CisrICAgIGludCAoKnRvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCkgKENPUkVfQUREUiwg TE9OR0VTVCk7CisgCisgICAgIGludCAoKnRvX2Nhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlv bikgKENPUkVfQUREUiwgaW50LCBpbnQsCisgCQkJCQkgICAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAq KTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3RyYWNlcG9pbnQuYworPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi90cmFjZXBvaW50LmMJMjAxMi0xMS0w NyAyMjowMzo1Ny4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3Ry YWNlcG9pbnQuYwkyMDEyLTExLTA3IDIyOjA5OjMwLjA2NTE0MDQ1OSArMDEwMAorQEAgLTkzNCwx MyArOTM0LDEzIEBAIGFkZF9yZWdpc3RlciAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqY28KKyBz dGF0aWMgdm9pZAorIGFkZF9tZW1yYW5nZSAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqbWVtcmFu Z2VzLCAKKyAJICAgICAgaW50IHR5cGUsIGJmZF9zaWduZWRfdm1hIGJhc2UsCistCSAgICAgIHVu c2lnbmVkIGxvbmcgbGVuKQorKwkgICAgICBVTE9OR0VTVCBsZW4pCisgeworICAgaWYgKGluZm9f dmVyYm9zZSkKKyAgICAgeworICAgICAgIHByaW50Zl9maWx0ZXJlZCAoIiglZCwiLCB0eXBlKTsK KyAgICAgICBwcmludGZfdm1hIChiYXNlKTsKKy0gICAgICBwcmludGZfZmlsdGVyZWQgKCIsJWxk KVxuIiwgbGVuKTsKKysgICAgICBwcmludGZfZmlsdGVyZWQgKCIsJXMpXG4iLCBwdWxvbmdlc3Qg KGxlbikpOworICAgICB9CisgCisgICAvKiB0eXBlOiBtZW1yYW5nZV9hYnNvbHV0ZSA9PSBtZW1v cnksIG90aGVyIG4gPT0gYmFzZXJlZyAqLworQEAgLTk2OSw3ICs5NjksNyBAQCBjb2xsZWN0X3N5 bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqCisgCQlsb25nIGZyYW1lX3JlZ25vLCBsb25n IGZyYW1lX29mZnNldCwKKyAJCUNPUkVfQUREUiBzY29wZSkKKyB7CistICB1bnNpZ25lZCBsb25n IGxlbjsKKysgIFVMT05HRVNUIGxlbjsKKyAgIHVuc2lnbmVkIGludCByZWc7CisgICBiZmRfc2ln bmVkX3ZtYSBvZmZzZXQ7CisgICBpbnQgdHJlYXRfYXNfZXhwciA9IDA7CitAQCAtOTkzLDggKzk5 Myw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKKyAJICBjaGFy IHRtcFs0MF07CisgCisgCSAgc3ByaW50Zl92bWEgKHRtcCwgb2Zmc2V0KTsKKy0JICBwcmludGZf ZmlsdGVyZWQgKCJMT0NfU1RBVElDICVzOiBjb2xsZWN0ICVsZCBieXRlcyBhdCAlcy5cbiIsCist CQkJICAgU1lNQk9MX1BSSU5UX05BTUUgKHN5bSksIGxlbiwKKysJICBwcmludGZfZmlsdGVyZWQg KCJMT0NfU1RBVElDICVzOiBjb2xsZWN0ICVzIGJ5dGVzIGF0ICVzLlxuIiwKKysJCQkgICBTWU1C T0xfUFJJTlRfTkFNRSAoc3ltKSwgcHVsb25nZXN0IChsZW4pLAorIAkJCSAgIHRtcCAvKiBhZGRy ZXNzICovKTsKKyAJfQorICAgICAgIC8qIEEgc3RydWN0IG1heSBiZSBhIEMrKyBjbGFzcyB3aXRo IHN0YXRpYyBmaWVsZHMsIGdvIHRvIGdlbmVyYWwKK0BAIC0xMDI2LDggKzEwMjYsOCBAQCBjb2xs ZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqCisgICAgICAgb2Zmc2V0ID0gZnJh bWVfb2Zmc2V0ICsgU1lNQk9MX1ZBTFVFIChzeW0pOworICAgICAgIGlmIChpbmZvX3ZlcmJvc2Up CisgCXsKKy0JICBwcmludGZfZmlsdGVyZWQgKCJMT0NfTE9DQUwgJXM6IENvbGxlY3QgJWxkIGJ5 dGVzIGF0IG9mZnNldCAiLAorLQkJCSAgIFNZTUJPTF9QUklOVF9OQU1FIChzeW0pLCBsZW4pOwor KwkgIHByaW50Zl9maWx0ZXJlZCAoIkxPQ19MT0NBTCAlczogQ29sbGVjdCAlcyBieXRlcyBhdCBv ZmZzZXQgIiwKKysJCQkgICBTWU1CT0xfUFJJTlRfTkFNRSAoc3ltKSwgcHVsb25nZXN0IChsZW4p KTsKKyAJICBwcmludGZfdm1hIChvZmZzZXQpOworIAkgIHByaW50Zl9maWx0ZXJlZCAoIiBmcm9t IGZyYW1lIHB0ciByZWcgJWRcbiIsIHJlZyk7CisgCX0KK0BAIC0xMDM4LDggKzEwMzgsOCBAQCBj b2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqCisgICAgICAgb2Zmc2V0ID0g MDsKKyAgICAgICBpZiAoaW5mb192ZXJib3NlKQorIAl7CistCSAgcHJpbnRmX2ZpbHRlcmVkICgi TE9DX1JFR1BBUk1fQUREUiAlczogQ29sbGVjdCAlbGQgYnl0ZXMgYXQgb2Zmc2V0ICIsCistCQkJ ICAgU1lNQk9MX1BSSU5UX05BTUUgKHN5bSksIGxlbik7CisrCSAgcHJpbnRmX2ZpbHRlcmVkICgi TE9DX1JFR1BBUk1fQUREUiAlczogQ29sbGVjdCAlcyBieXRlcyBhdCBvZmZzZXQgIiwKKysJCQkg ICBTWU1CT0xfUFJJTlRfTkFNRSAoc3ltKSwgcHVsb25nZXN0IChsZW4pKTsKKyAJICBwcmludGZf dm1hIChvZmZzZXQpOworIAkgIHByaW50Zl9maWx0ZXJlZCAoIiBmcm9tIHJlZyAlZFxuIiwgcmVn KTsKKyAJfQorQEAgLTEwNTAsOCArMTA1MCw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29s bGVjdGlvbl9saXN0ICoKKyAgICAgICBvZmZzZXQgPSBmcmFtZV9vZmZzZXQgKyBTWU1CT0xfVkFM VUUgKHN5bSk7CisgICAgICAgaWYgKGluZm9fdmVyYm9zZSkKKyAJeworLQkgIHByaW50Zl9maWx0 ZXJlZCAoIkxPQ19MT0NBTCAlczogQ29sbGVjdCAlbGQgYnl0ZXMgYXQgb2Zmc2V0ICIsCistCQkJ ICAgU1lNQk9MX1BSSU5UX05BTUUgKHN5bSksIGxlbik7CisrCSAgcHJpbnRmX2ZpbHRlcmVkICgi TE9DX0xPQ0FMICVzOiBDb2xsZWN0ICVzIGJ5dGVzIGF0IG9mZnNldCAiLAorKwkJCSAgIFNZTUJP TF9QUklOVF9OQU1FIChzeW0pLCBwdWxvbmdlc3QgKGxlbikpOworIAkgIHByaW50Zl92bWEgKG9m ZnNldCk7CisgCSAgcHJpbnRmX2ZpbHRlcmVkICgiIGZyb20gZnJhbWUgcHRyIHJlZyAlZFxuIiwg cmVnKTsKKyAJfQorQEAgLTI2MTcsNyArMjYxNyw4IEBAIHNjb3BlX2luZm8gKGNoYXIgKmFyZ3Ms IGludCBmcm9tX3R0eSkKKyAgIGNvbnN0IGNoYXIgKnN5bW5hbWU7CisgICBjaGFyICpzYXZlX2Fy Z3MgPSBhcmdzOworICAgc3RydWN0IGJsb2NrX2l0ZXJhdG9yIGl0ZXI7CistICBpbnQgaiwgY291 bnQgPSAwOworKyAgaW50IGNvdW50ID0gMDsKKysgIExPTkdFU1QgajsKKyAgIHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoOworICAgaW50IHJlZ25vOworIAorQEAgLTI3NDcsOCArMjc0OCwxMSBAQCBz Y29wZV9pbmZvIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCisgCSAgICAgIGJyZWFrOworIAkg ICAgfQorIAkgIGlmIChTWU1CT0xfVFlQRSAoc3ltKSkKKy0JICAgIHByaW50Zl9maWx0ZXJlZCAo IiwgbGVuZ3RoICVkLlxuIiwKKy0JCQkgICAgIFRZUEVfTEVOR1RIIChjaGVja190eXBlZGVmIChT WU1CT0xfVFlQRSAoc3ltKSkpKTsKKysJICAgIHsKKysJICAgICAgVUxPTkdFU1QgbGVuID0gVFlQ RV9MRU5HVEggKGNoZWNrX3R5cGVkZWYgKFNZTUJPTF9UWVBFIChzeW0pKSk7CisrCisrCSAgICAg IHByaW50Zl9maWx0ZXJlZCAoIiwgbGVuZ3RoICVzLlxuIiwgcHVsb25nZXN0IChsZW4pKTsKKysJ ICAgIH0KKyAJfQorICAgICAgIGlmIChCTE9DS19GVU5DVElPTiAoYmxvY2spKQorIAlicmVhazsK K0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3R5cGVwcmludC5jCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3R5cGVwcmludC5jCTIwMTItMTEtMDcgMjI6 MDA6NDEuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi90eXBlcHJp bnQuYwkyMDEyLTExLTA3IDIyOjA5OjMwLjA2NjE0MDQ1NyArMDEwMAorQEAgLTEyMyw3ICsxMjMs NyBAQCB3aGF0aXNfZXhwIChjaGFyICpleHAsIGludCBzaG93KQorICAgc3RydWN0IHR5cGUgKnJl YWxfdHlwZSA9IE5VTEw7CisgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKKyAgIGludCBmdWxsID0gMDsK Ky0gIGludCB0b3AgPSAtMTsKKysgIExPTkdFU1QgdG9wID0gLTE7CisgICBpbnQgdXNpbmdfZW5j ID0gMDsKKyAgIHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHM7CisgCitJbmRleDogZ2Ri LTcuNS4wLjIwMTIwOTI2L2dkYi92YWxhcml0aC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4w LjIwMTIwOTI2Lm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxMi0xMS0wNyAyMjowMjoxOC4wMDAwMDAw MDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3ZhbGFyaXRoLmMJMjAxMi0xMS0w NyAyMjoxMzozMS4xNDU4Njc1MTkgKzAxMDAKK0BAIC0xOTIsMTUgKzE5MiwxNSBAQCB2YWx1ZV9z dWJzY3JpcHQgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIExPCisgICAgdG8gZG91YmxlcywgYnV0IG5v IGxvbmdlciBkb2VzLiAgKi8KKyAKKyBzdHJ1Y3QgdmFsdWUgKgorLXZhbHVlX3N1YnNjcmlwdGVk X3J2YWx1ZSAoc3RydWN0IHZhbHVlICphcnJheSwgTE9OR0VTVCBpbmRleCwgaW50IGxvd2VyYm91 bmQpCisrdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBMT05H RVNUIGluZGV4LCBMT05HRVNUIGxvd2VyYm91bmQpCisgeworICAgc3RydWN0IHR5cGUgKmFycmF5 X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkpOworICAgc3RydWN0IHR5 cGUgKmVsdF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlw ZSkpOworLSAgdW5zaWduZWQgaW50IGVsdF9zaXplID0gVFlQRV9MRU5HVEggKGVsdF90eXBlKTsK Ky0gIHVuc2lnbmVkIGludCBlbHRfc3RyaWRlCisrICBVTE9OR0VTVCBlbHRfc2l6ZSA9IFRZUEVf TEVOR1RIIChlbHRfdHlwZSk7CisrICBVTE9OR0VTVCBlbHRfc3RyaWRlCisgICAgID0gKFRZUEVf QllURV9TVFJJREUgKFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSkpID09IDAKKyAgICAgICAg PyBlbHRfc2l6ZSA6IFRZUEVfQllURV9TVFJJREUgKFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlw ZSkpKTsKKy0gIHVuc2lnbmVkIGludCBlbHRfb2ZmcyA9IGVsdF9zdHJpZGUgKiBsb25nZXN0X3Rv X2ludCAoaW5kZXggLSBsb3dlcmJvdW5kKTsKKysgIFVMT05HRVNUIGVsdF9vZmZzID0gZWx0X3N0 cmlkZSAqIGxvbmdlc3RfdG9faW50IChpbmRleCAtIGxvd2VyYm91bmQpOworICAgc3RydWN0IHZh bHVlICp2OworIAorICAgaWYgKGluZGV4IDwgbG93ZXJib3VuZCB8fCAoIVRZUEVfQVJSQVlfVVBQ RVJfQk9VTkRfSVNfVU5ERUZJTkVEIChhcnJheV90eXBlKQorQEAgLTY3OCw3ICs2NzgsNyBAQCB2 YWx1ZV9jb25jYXQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgc3RydWN0CisgICBzdHJ1Y3QgdmFsdWUg KmludmFsMTsKKyAgIHN0cnVjdCB2YWx1ZSAqaW52YWwyOworICAgc3RydWN0IHZhbHVlICpvdXR2 YWwgPSBOVUxMOworLSAgaW50IGludmFsMWxlbiwgaW52YWwybGVuOworKyAgc3NpemVfdCBpbnZh bDFsZW4sIGludmFsMmxlbjsKKyAgIGludCBjb3VudCwgaWR4OworICAgY2hhciAqcHRyOworICAg Y2hhciBpbmNoYXI7CitAQCAtMTQ4OSw3ICsxNDg5LDcgQEAgdmFsdWVfYmlub3AgKHN0cnVjdCB2 YWx1ZSAqYXJnMSwgc3RydWN0CisgaW50CisgdmFsdWVfbG9naWNhbF9ub3QgKHN0cnVjdCB2YWx1 ZSAqYXJnMSkKKyB7CistICBpbnQgbGVuOworKyAgTE9OR0VTVCBsZW47CisgICBjb25zdCBnZGJf Ynl0ZSAqcDsKKyAgIHN0cnVjdCB0eXBlICp0eXBlMTsKKyAKK0BAIC0xNTIwLDExICsxNTIwLDEx IEBAIHZhbHVlX2xvZ2ljYWxfbm90IChzdHJ1Y3QgdmFsdWUgKmFyZzEpCisgc3RhdGljIGludAor IHZhbHVlX3N0cmNtcCAoc3RydWN0IHZhbHVlICphcmcxLCBzdHJ1Y3QgdmFsdWUgKmFyZzIpCisg eworLSAgaW50IGxlbjEgPSBUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSAoYXJnMSkpOworLSAgaW50 IGxlbjIgPSBUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSAoYXJnMikpOworKyAgTE9OR0VTVCBsZW4x ID0gVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKGFyZzEpKTsKKysgIExPTkdFU1QgbGVuMiA9IFRZ UEVfTEVOR1RIICh2YWx1ZV90eXBlIChhcmcyKSk7CisgICBjb25zdCBnZGJfYnl0ZSAqczEgPSB2 YWx1ZV9jb250ZW50cyAoYXJnMSk7CisgICBjb25zdCBnZGJfYnl0ZSAqczIgPSB2YWx1ZV9jb250 ZW50cyAoYXJnMik7CistICBpbnQgaSwgbGVuID0gbGVuMSA8IGxlbjIgPyBsZW4xIDogbGVuMjsK KysgIExPTkdFU1QgaSwgbGVuID0gbGVuMSA8IGxlbjIgPyBsZW4xIDogbGVuMjsKKyAKKyAgIGZv ciAoaSA9IDA7IGkgPCBsZW47IGkrKykKKyAgICAgeworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDky Ni9nZGIvdmFsb3BzLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9n ZGIvdmFsb3BzLmMJMjAxMi0xMS0wNyAyMjowNjozNS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGIt Ny41LjAuMjAxMjA5MjYvZ2RiL3ZhbG9wcy5jCTIwMTItMTEtMDcgMjI6MDk6MzAuMDc0MTQwNDQ1 ICswMTAwCitAQCAtNTQsMTEgKzU0LDExIEBAIHN0YXRpYyBpbnQgdHlwZWNtcCAoaW50IHN0YXRp Y3AsIGludCB2YXIKKyAJCSAgICBzdHJ1Y3QgZmllbGQgdDFbXSwgc3RydWN0IHZhbHVlICp0Mltd KTsKKyAKKyBzdGF0aWMgc3RydWN0IHZhbHVlICpzZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBj aGFyICosIHN0cnVjdCB2YWx1ZSAqLCAKKy0JCQkJCSAgaW50LCBzdHJ1Y3QgdHlwZSAqLCBpbnQp OworKwkJCQkJICBMT05HRVNULCBzdHJ1Y3QgdHlwZSAqLCBpbnQpOworIAorIHN0YXRpYyBzdHJ1 Y3QgdmFsdWUgKnNlYXJjaF9zdHJ1Y3RfbWV0aG9kIChjb25zdCBjaGFyICosIHN0cnVjdCB2YWx1 ZSAqKiwKKyAJCQkJCSAgIHN0cnVjdCB2YWx1ZSAqKiwKKy0JCQkJCSAgIGludCwgaW50ICosIHN0 cnVjdCB0eXBlICopOworKwkJCQkJICAgTE9OR0VTVCwgaW50ICosIHN0cnVjdCB0eXBlICopOwor IAorIHN0YXRpYyBpbnQgZmluZF9vbG9hZF9jaGFtcF9uYW1lc3BhY2UgKHN0cnVjdCB2YWx1ZSAq KiwgaW50LAorIAkJCQkgICAgICAgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosCitAQCAtODYs NyArODYsNyBAQCBvbG9hZF9jbGFzc2lmaWNhdGlvbiBjbGFzc2lmeV9vbG9hZF9tYXRjCisgCQkJ CQkgICBpbnQsIGludCk7CisgCisgc3RhdGljIHN0cnVjdCB2YWx1ZSAqdmFsdWVfc3RydWN0X2Vs dF9mb3JfcmVmZXJlbmNlIChzdHJ1Y3QgdHlwZSAqLAorLQkJCQkJCSAgICAgaW50LCBzdHJ1Y3Qg dHlwZSAqLAorKwkJCQkJCSAgICAgTE9OR0VTVCwgc3RydWN0IHR5cGUgKiwKKyAJCQkJCQkgICAg IGNoYXIgKiwKKyAJCQkJCQkgICAgIHN0cnVjdCB0eXBlICosCisgCQkJCQkJICAgICBpbnQsIGVu dW0gbm9zaWRlKTsKK0BAIC0xMDMsOCArMTAzLDggQEAgc3RhdGljIENPUkVfQUREUiBhbGxvY2F0 ZV9zcGFjZV9pbl9pbmZlcgorIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmNhc3RfaW50b19jb21wbGV4 IChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdmFsdWUgKik7CisgCisgc3RhdGljIHN0cnVjdCBmbl9m aWVsZCAqZmluZF9tZXRob2RfbGlzdCAoc3RydWN0IHZhbHVlICoqLCBjb25zdCBjaGFyICosCist CQkJCQkgIGludCwgc3RydWN0IHR5cGUgKiwgaW50ICosCistCQkJCQkgIHN0cnVjdCB0eXBlICoq LCBpbnQgKik7CisrCQkJCQkgIExPTkdFU1QsIHN0cnVjdCB0eXBlICosIGludCAqLAorKwkJCQkJ ICBzdHJ1Y3QgdHlwZSAqKiwgTE9OR0VTVCAqKTsKKyAKKyB2b2lkIF9pbml0aWFsaXplX3ZhbG9w cyAodm9pZCk7CisgCitAQCAtMTg5LDcgKzE4OSw3IEBAIGZpbmRfZnVuY3Rpb25faW5faW5mZXJp b3IgKGNvbnN0IGNoYXIgKm4KKyAgICBzcGFjZS4gICovCisgCisgc3RydWN0IHZhbHVlICoKKy12 YWx1ZV9hbGxvY2F0ZV9zcGFjZV9pbl9pbmZlcmlvciAoaW50IGxlbikKKyt2YWx1ZV9hbGxvY2F0 ZV9zcGFjZV9pbl9pbmZlcmlvciAoTE9OR0VTVCBsZW4pCisgeworICAgc3RydWN0IG9iamZpbGUg Km9iamY7CisgICBzdHJ1Y3QgdmFsdWUgKnZhbCA9IGZpbmRfZnVuY3Rpb25faW5faW5mZXJpb3Ig KCJtYWxsb2MiLCAmb2JqZik7CitAQCAtMjYyLDcgKzI2Miw4IEBAIHZhbHVlX2Nhc3Rfc3RydWN0 cyAoc3RydWN0IHR5cGUgKnR5cGUsIHMKKyAgIGlmIChUWVBFX05BTUUgKHQyKSAhPSBOVUxMKQor ICAgICB7CisgICAgICAgLyogVHJ5IGRvd25jYXN0aW5nIHVzaW5nIHRoZSBydW4tdGltZSB0eXBl IG9mIHRoZSB2YWx1ZS4gICovCistICAgICAgaW50IGZ1bGwsIHRvcCwgdXNpbmdfZW5jOworKyAg ICAgIGludCBmdWxsLCB1c2luZ19lbmM7CisrICAgICAgTE9OR0VTVCB0b3A7CisgICAgICAgc3Ry dWN0IHR5cGUgKnJlYWxfdHlwZTsKKyAKKyAgICAgICByZWFsX3R5cGUgPSB2YWx1ZV9ydHRpX3R5 cGUgKHYyLCAmZnVsbCwgJnRvcCwgJnVzaW5nX2VuYyk7CitAQCAtNDAxLDEyICs0MDIsMTIgQEAg dmFsdWVfY2FzdCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB2YQorICAgaWYgKGNvZGUxID09 IFRZUEVfQ09ERV9BUlJBWSkKKyAgICAgeworICAgICAgIHN0cnVjdCB0eXBlICplbGVtZW50X3R5 cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKKy0gICAgICB1bnNpZ25lZCBlbGVtZW50X2xl bmd0aCA9IFRZUEVfTEVOR1RIIChjaGVja190eXBlZGVmIChlbGVtZW50X3R5cGUpKTsKKysgICAg ICBVTE9OR0VTVCBlbGVtZW50X2xlbmd0aCA9IFRZUEVfTEVOR1RIIChjaGVja190eXBlZGVmIChl bGVtZW50X3R5cGUpKTsKKyAKKyAgICAgICBpZiAoZWxlbWVudF9sZW5ndGggPiAwICYmIFRZUEVf QVJSQVlfVVBQRVJfQk9VTkRfSVNfVU5ERUZJTkVEICh0eXBlKSkKKyAJeworIAkgIHN0cnVjdCB0 eXBlICpyYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFICh0eXBlKTsKKy0JICBpbnQgdmFsX2xl bmd0aCA9IFRZUEVfTEVOR1RIICh0eXBlMik7CisrCSAgTE9OR0VTVCB2YWxfbGVuZ3RoID0gVFlQ RV9MRU5HVEggKHR5cGUyKTsKKyAJICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZCwgbmV3 X2xlbmd0aDsKKyAKKyAJICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmxv d19ib3VuZCwgJmhpZ2hfYm91bmQpIDwgMCkKK0BAIC02NTYsNyArNjU3LDcgQEAgdmFsdWVfcmVp bnRlcnByZXRfY2FzdCAoc3RydWN0IHR5cGUgKnR5cAorIHN0YXRpYyBpbnQKKyBkeW5hbWljX2Nh c3RfY2hlY2tfMSAoc3RydWN0IHR5cGUgKmRlc2lyZWRfdHlwZSwKKyAJCSAgICAgIGNvbnN0IGdk Yl9ieXRlICp2YWxhZGRyLAorLQkJICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwKKysJCSAgICAg IExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAorIAkJICAgICAgQ09SRV9BRERSIGFkZHJlc3MsCisg CQkgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJCSAgICAgIHN0cnVjdCB0eXBlICpzZWFyY2hf dHlwZSwKK0BAIC02NjgsOCArNjY5LDggQEAgZHluYW1pY19jYXN0X2NoZWNrXzEgKHN0cnVjdCB0 eXBlICpkZXNpcgorIAorICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTl9CQVNFQ0xBU1NFUyAoc2Vh cmNoX3R5cGUpICYmIHJlc3VsdF9jb3VudCA8IDI7ICsraSkKKyAgICAgeworLSAgICAgIGludCBv ZmZzZXQgPSBiYXNlY2xhc3Nfb2Zmc2V0IChzZWFyY2hfdHlwZSwgaSwgdmFsYWRkciwgZW1iZWRk ZWRfb2Zmc2V0LAorLQkJCQkgICAgIGFkZHJlc3MsIHZhbCk7CisrICAgICAgTE9OR0VTVCBvZmZz ZXQgPSBiYXNlY2xhc3Nfb2Zmc2V0IChzZWFyY2hfdHlwZSwgaSwgdmFsYWRkciwKKysJCQkJCSBl bWJlZGRlZF9vZmZzZXQsIGFkZHJlc3MsIHZhbCk7CisgCisgICAgICAgaWYgKGNsYXNzX3R5cGVz X3NhbWVfcCAoZGVzaXJlZF90eXBlLCBUWVBFX0JBU0VDTEFTUyAoc2VhcmNoX3R5cGUsIGkpKSkK KyAJeworQEAgLTcwMyw3ICs3MDQsNyBAQCBkeW5hbWljX2Nhc3RfY2hlY2tfMSAoc3RydWN0IHR5 cGUgKmRlc2lyCisgc3RhdGljIGludAorIGR5bmFtaWNfY2FzdF9jaGVja18yIChzdHJ1Y3QgdHlw ZSAqZGVzaXJlZF90eXBlLAorIAkJICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkg ICAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LAorKwkJICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZz ZXQsCisgCQkgICAgICBDT1JFX0FERFIgYWRkcmVzcywKKyAJCSAgICAgIHN0cnVjdCB2YWx1ZSAq dmFsLAorIAkJICAgICAgc3RydWN0IHR5cGUgKnNlYXJjaF90eXBlLAorQEAgLTcxMyw3ICs3MTQs NyBAQCBkeW5hbWljX2Nhc3RfY2hlY2tfMiAoc3RydWN0IHR5cGUgKmRlc2lyCisgCisgICBmb3Ig KGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VDTEFTU0VTIChzZWFyY2hfdHlwZSkgJiYgcmVzdWx0X2Nv dW50IDwgMjsgKytpKQorICAgICB7CistICAgICAgaW50IG9mZnNldDsKKysgICAgICBMT05HRVNU IG9mZnNldDsKKyAKKyAgICAgICBpZiAoISBCQVNFVFlQRV9WSUFfUFVCTElDIChzZWFyY2hfdHlw ZSwgaSkpCisgCWNvbnRpbnVlOworQEAgLTc0NCw3ICs3NDUsOCBAQCBkeW5hbWljX2Nhc3RfY2hl Y2tfMiAoc3RydWN0IHR5cGUgKmRlc2lyCisgc3RydWN0IHZhbHVlICoKKyB2YWx1ZV9keW5hbWlj X2Nhc3QgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdmFsdWUgKmFyZykKKyB7CistICBpbnQg ZnVsbCwgdG9wLCB1c2luZ19lbmM7CisrICBpbnQgZnVsbCwgdXNpbmdfZW5jOworKyAgTE9OR0VT VCB0b3A7CisgICBzdHJ1Y3QgdHlwZSAqcmVzb2x2ZWRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHR5 cGUpOworICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlw ZSAoYXJnKSk7CisgICBzdHJ1Y3QgdHlwZSAqY2xhc3NfdHlwZSwgKnJ0dGlfdHlwZTsKK0BAIC0x MTk3LDcgKzExOTksNyBAQCB2YWx1ZV9mZXRjaF9sYXp5IChzdHJ1Y3QgdmFsdWUgKnZhbCkKKyB9 CisgCisgdm9pZAorLXJlYWRfdmFsdWVfbWVtb3J5IChzdHJ1Y3QgdmFsdWUgKnZhbCwgaW50IGVt YmVkZGVkX29mZnNldCwKKytyZWFkX3ZhbHVlX21lbW9yeSAoc3RydWN0IHZhbHVlICp2YWwsIExP TkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAorIAkJICAgaW50IHN0YWNrLCBDT1JFX0FERFIgbWVtYWRk ciwKKyAJCSAgIGdkYl9ieXRlICpidWZmZXIsIHNpemVfdCBsZW5ndGgpCisgeworQEAgLTEzMzIs NyArMTMzNCw3IEBAIHZhbHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0b3ZhbCwgc3RydWMKKyAg ICAgICB7CisgCWNvbnN0IGdkYl9ieXRlICpkZXN0X2J1ZmZlcjsKKyAJQ09SRV9BRERSIGNoYW5n ZWRfYWRkcjsKKy0JaW50IGNoYW5nZWRfbGVuOworKwlMT05HRVNUIGNoYW5nZWRfbGVuOworICAg ICAgICAgZ2RiX2J5dGUgYnVmZmVyW3NpemVvZiAoTE9OR0VTVCldOworIAorIAlpZiAodmFsdWVf Yml0c2l6ZSAodG92YWwpKQorQEAgLTE0MTEsNyArMTQxMyw3IEBAIHZhbHVlX2Fzc2lnbiAoc3Ry dWN0IHZhbHVlICp0b3ZhbCwgc3RydWMKKyAJICAgIGlmICh2YWx1ZV9iaXRzaXplICh0b3ZhbCkp CisgCSAgICAgIHsKKyAJCXN0cnVjdCB2YWx1ZSAqcGFyZW50ID0gdmFsdWVfcGFyZW50ICh0b3Zh bCk7CistCQlpbnQgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0IChwYXJlbnQpICsgdmFsdWVfb2Zmc2V0 ICh0b3ZhbCk7CisrCQlMT05HRVNUIG9mZnNldCA9IHZhbHVlX29mZnNldCAocGFyZW50KSArIHZh bHVlX29mZnNldCAodG92YWwpOworIAkJaW50IGNoYW5nZWRfbGVuOworIAkJZ2RiX2J5dGUgYnVm ZmVyW3NpemVvZiAoTE9OR0VTVCldOworIAkJaW50IG9wdGltLCB1bmF2YWlsOworQEAgLTE4OTIs NyArMTg5NCw3IEBAIHZhbHVlX2FycmF5IChpbnQgbG93Ym91bmQsIGludCBoaWdoYm91bmQKKyB7 CisgICBpbnQgbmVsZW07CisgICBpbnQgaWR4OworLSAgdW5zaWduZWQgaW50IHR5cGVsZW5ndGg7 CisrICBVTE9OR0VTVCB0eXBlbGVuZ3RoOworICAgc3RydWN0IHZhbHVlICp2YWw7CisgICBzdHJ1 Y3QgdHlwZSAqYXJyYXl0eXBlOworIAorQEAgLTIwODAsNyArMjA4Miw3IEBAIHR5cGVjbXAgKGlu dCBzdGF0aWNwLCBpbnQgdmFyYXJncywgaW50IG4KKyAKKyBzdGF0aWMgdm9pZAorIHVwZGF0ZV9z ZWFyY2hfcmVzdWx0IChzdHJ1Y3QgdmFsdWUgKipyZXN1bHRfcHRyLCBzdHJ1Y3QgdmFsdWUgKnYs CistCQkgICAgICBpbnQgKmxhc3RfYm9mZnNldCwgaW50IGJvZmZzZXQsCisrCQkgICAgICBMT05H RVNUICpsYXN0X2JvZmZzZXQsIExPTkdFU1QgYm9mZnNldCwKKyAJCSAgICAgIGNvbnN0IGNoYXIg Km5hbWUsIHN0cnVjdCB0eXBlICp0eXBlKQorIHsKKyAgIGlmICh2ICE9IE5VTEwpCitAQCAtMjEw NCwxMCArMjEwNiwxMCBAQCB1cGRhdGVfc2VhcmNoX3Jlc3VsdCAoc3RydWN0IHZhbHVlICoqcmVz CisgICAgbG9va3VwIGlzIGFtYmlndW91cy4gICovCisgCisgc3RhdGljIHZvaWQKKy1kb19zZWFy Y2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKmFyZzEsIGlu dCBvZmZzZXQsCisrZG9fc2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtZSwgc3Ry dWN0IHZhbHVlICphcmcxLCBMT05HRVNUIG9mZnNldCwKKyAJCQlzdHJ1Y3QgdHlwZSAqdHlwZSwg aW50IGxvb2tpbmdfZm9yX2Jhc2VjbGFzcywKKyAJCQlzdHJ1Y3QgdmFsdWUgKipyZXN1bHRfcHRy LAorLQkJCWludCAqbGFzdF9ib2Zmc2V0LAorKwkJCUxPTkdFU1QgKmxhc3RfYm9mZnNldCwKKyAJ CQlzdHJ1Y3QgdHlwZSAqb3V0ZXJtb3N0X3R5cGUpCisgeworICAgaW50IGk7CitAQCAtMjE2Miw3 ICsyMTY0LDcgQEAgZG9fc2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtZQorIAkJ ICAgPHZhcmlhbnQgZmllbGQ+LiAgKi8KKyAKKyAJCXN0cnVjdCB2YWx1ZSAqdiA9IE5VTEw7Cist CQlpbnQgbmV3X29mZnNldCA9IG9mZnNldDsKKysJCUxPTkdFU1QgbmV3X29mZnNldCA9IG9mZnNl dDsKKyAKKyAJCS8qIFRoaXMgaXMgcHJldHR5IGdyb3NzLiAgSW4gRysrLCB0aGUgb2Zmc2V0IGlu IGFuCisgCQkgICBhbm9ueW1vdXMgdW5pb24gaXMgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZyBv ZiB0aGUKK0BAIC0yMjAxLDcgKzIyMDMsNyBAQCBkb19zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25z dCBjaGFyICpuYW1lCisgCQkJICAgICAmJiAoc3RyY21wX2l3IChuYW1lLCAKKyAJCQkJCSAgICBU WVBFX0JBU0VDTEFTU19OQU1FICh0eXBlLCAKKyAJCQkJCQkJCSBpKSkgPT0gMCkpOworLSAgICAg IGludCBib2Zmc2V0ID0gdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChhcmcxKSArIG9mZnNldDsKKysg ICAgICBMT05HRVNUIGJvZmZzZXQgPSB2YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKGFyZzEpICsgb2Zm c2V0OworIAorICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAodHlwZSwgaSkpCisgCXsK K0BAIC0yMjc2LDExICsyMjc4LDExIEBAIGRvX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNo YXIgKm5hbWUKKyAgICBmaWVsZHMsIGxvb2sgZm9yIGEgYmFzZWNsYXNzIG5hbWVkIE5BTUUuICAq LworIAorIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgorLXNlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0 IGNoYXIgKm5hbWUsIHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50IG9mZnNldCwKKytzZWFyY2hfc3Ry dWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKmFyZzEsIExPTkdFU1Qg b2Zmc2V0LAorIAkJICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGxvb2tpbmdfZm9yX2Jhc2Vj bGFzcykKKyB7CisgICBzdHJ1Y3QgdmFsdWUgKnJlc3VsdCA9IE5VTEw7CistICBpbnQgYm9mZnNl dCA9IDA7CisrICBMT05HRVNUIGJvZmZzZXQgPSAwOworIAorICAgZG9fc2VhcmNoX3N0cnVjdF9m aWVsZCAobmFtZSwgYXJnMSwgb2Zmc2V0LCB0eXBlLCBsb29raW5nX2Zvcl9iYXNlY2xhc3MsCisg CQkJICAmcmVzdWx0LCAmYm9mZnNldCwgdHlwZSk7CitAQCAtMjI5Nyw3ICsyMjk5LDcgQEAgc2Vh cmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtZSwgcworIAorIHN0YXRpYyBzdHJ1Y3Qg dmFsdWUgKgorIHNlYXJjaF9zdHJ1Y3RfbWV0aG9kIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qg dmFsdWUgKiphcmcxcCwKKy0JCSAgICAgIHN0cnVjdCB2YWx1ZSAqKmFyZ3MsIGludCBvZmZzZXQs CisrCQkgICAgICBzdHJ1Y3QgdmFsdWUgKiphcmdzLCBMT05HRVNUIG9mZnNldCwKKyAJCSAgICAg IGludCAqc3RhdGljX21lbWZ1bmNwLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKKyB7CisgICBpbnQgaTsK K0BAIC0yMzYxLDkgKzIzNjMsOSBAQCBzZWFyY2hfc3RydWN0X21ldGhvZCAoY29uc3QgY2hhciAq bmFtZSwKKyAKKyAgIGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSkgLSAxOyBpID49 IDA7IGktLSkKKyAgICAgeworLSAgICAgIGludCBiYXNlX29mZnNldDsKKysgICAgICBMT05HRVNU IGJhc2Vfb2Zmc2V0OworICAgICAgIGludCBza2lwID0gMDsKKy0gICAgICBpbnQgdGhpc19vZmZz ZXQ7CisrICAgICAgTE9OR0VTVCB0aGlzX29mZnNldDsKKyAKKyAgICAgICBpZiAoQkFTRVRZUEVf VklBX1ZJUlRVQUwgKHR5cGUsIGkpKQorIAl7CitAQCAtMjU0NSw4ICsyNTQ3LDggQEAgdmFsdWVf c3RydWN0X2VsdCAoc3RydWN0IHZhbHVlICoqYXJncCwgcworIAorIHN0YXRpYyBzdHJ1Y3QgZm5f ZmllbGQgKgorIGZpbmRfbWV0aG9kX2xpc3QgKHN0cnVjdCB2YWx1ZSAqKmFyZ3AsIGNvbnN0IGNo YXIgKm1ldGhvZCwKKy0JCSAgaW50IG9mZnNldCwgc3RydWN0IHR5cGUgKnR5cGUsIGludCAqbnVt X2ZucywKKy0JCSAgc3RydWN0IHR5cGUgKipiYXNldHlwZSwgaW50ICpib2Zmc2V0KQorKwkJICBM T05HRVNUIG9mZnNldCwgc3RydWN0IHR5cGUgKnR5cGUsIGludCAqbnVtX2ZucywKKysJCSAgc3Ry dWN0IHR5cGUgKipiYXNldHlwZSwgTE9OR0VTVCAqYm9mZnNldCkKKyB7CisgICBpbnQgaTsKKyAg IHN0cnVjdCBmbl9maWVsZCAqZjsKK0BAIC0yNTc5LDcgKzI1ODEsNyBAQCBmaW5kX21ldGhvZF9s aXN0IChzdHJ1Y3QgdmFsdWUgKiphcmdwLCBjCisgICAvKiBOb3QgZm91bmQgaW4gb2JqZWN0LCBj aGVjayBpbiBiYXNlIHN1Ym9iamVjdHMuICAqLworICAgZm9yIChpID0gVFlQRV9OX0JBU0VDTEFT U0VTICh0eXBlKSAtIDE7IGkgPj0gMDsgaS0tKQorICAgICB7CistICAgICAgaW50IGJhc2Vfb2Zm c2V0OworKyAgICAgIExPTkdFU1QgYmFzZV9vZmZzZXQ7CisgCisgICAgICAgaWYgKEJBU0VUWVBF X1ZJQV9WSVJUVUFMICh0eXBlLCBpKSkKKyAJeworQEAgLTI2MTUsNyArMjYxNyw3IEBAIGZpbmRf bWV0aG9kX2xpc3QgKHN0cnVjdCB2YWx1ZSAqKmFyZ3AsIGMKKyBzdGF0aWMgc3RydWN0IGZuX2Zp ZWxkICoKKyB2YWx1ZV9maW5kX29sb2FkX21ldGhvZF9saXN0IChzdHJ1Y3QgdmFsdWUgKiphcmdw LCBjb25zdCBjaGFyICptZXRob2QsCisgCQkJICAgICAgaW50IG9mZnNldCwgaW50ICpudW1fZm5z LCAKKy0JCQkgICAgICBzdHJ1Y3QgdHlwZSAqKmJhc2V0eXBlLCBpbnQgKmJvZmZzZXQpCisrCQkJ ICAgICAgc3RydWN0IHR5cGUgKipiYXNldHlwZSwgTE9OR0VTVCAqYm9mZnNldCkKKyB7CisgICBz dHJ1Y3QgdHlwZSAqdDsKKyAKK0BAIC0yNzA3LDcgKzI3MDksNyBAQCBmaW5kX292ZXJsb2FkX21h dGNoIChzdHJ1Y3QgdmFsdWUgKiphcmdzCisgICAvKiBOdW1iZXIgb2Ygb3ZlcmxvYWRlZCBpbnN0 YW5jZXMgYmVpbmcgY29uc2lkZXJlZC4gICovCisgICBpbnQgbnVtX2ZucyA9IDA7CisgICBzdHJ1 Y3QgdHlwZSAqYmFzZXR5cGUgPSBOVUxMOworLSAgaW50IGJvZmZzZXQ7CisrICBMT05HRVNUIGJv ZmZzZXQ7CisgCisgICBzdHJ1Y3QgY2xlYW51cCAqYWxsX2NsZWFudXBzID0gbWFrZV9jbGVhbnVw IChudWxsX2NsZWFudXAsIE5VTEwpOworIAorQEAgLTM0MTMsNyArMzQxNSw3IEBAIGNvbXBhcmVf cGFyYW1ldGVycyAoc3RydWN0IHR5cGUgKnQxLCBzdHIKKyAgICB0aGUgZm9ybSAiRE9NQUlOOjpO QU1FIi4gICovCisgCisgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCistdmFsdWVfc3RydWN0X2VsdF9m b3JfcmVmZXJlbmNlIChzdHJ1Y3QgdHlwZSAqZG9tYWluLCBpbnQgb2Zmc2V0LAorK3ZhbHVlX3N0 cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAoc3RydWN0IHR5cGUgKmRvbWFpbiwgTE9OR0VTVCBvZmZz ZXQsCisgCQkJCXN0cnVjdCB0eXBlICpjdXJ0eXBlLCBjaGFyICpuYW1lLAorIAkJCQlzdHJ1Y3Qg dHlwZSAqaW50eXBlLCAKKyAJCQkJaW50IHdhbnRfYWRkcmVzcywKK0BAIC0zNDUwLDcgKzM0NTIs NyBAQCB2YWx1ZV9zdHJ1Y3RfZWx0X2Zvcl9yZWZlcmVuY2UgKHN0cnVjdCB0CisgCSAgaWYgKHdh bnRfYWRkcmVzcykKKyAJICAgIHJldHVybiB2YWx1ZV9mcm9tX2xvbmdlc3QKKyAJICAgICAgKGxv b2t1cF9tZW1iZXJwdHJfdHlwZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBpKSwgZG9tYWluKSwKKy0J ICAgICAgIG9mZnNldCArIChMT05HRVNUKSAoVFlQRV9GSUVMRF9CSVRQT1MgKHQsIGkpID4+IDMp KTsKKysJICAgICAgIG9mZnNldCArIChUWVBFX0ZJRUxEX0JJVFBPUyAodCwgaSkgPj4gMykpOwor IAkgIGVsc2UgaWYgKG5vc2lkZSA9PSBFVkFMX0FWT0lEX1NJREVfRUZGRUNUUykKKyAJICAgIHJl dHVybiBhbGxvY2F0ZV92YWx1ZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBpKSk7CisgCSAgZWxzZQor QEAgLTM1OTMsNyArMzU5NSw3IEBAIHZhbHVlX3N0cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAoc3Ry dWN0IHQKKyAgIGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodCkgLSAxOyBpID49IDA7IGkt LSkKKyAgICAgeworICAgICAgIHN0cnVjdCB2YWx1ZSAqdjsKKy0gICAgICBpbnQgYmFzZV9vZmZz ZXQ7CisrICAgICAgTE9OR0VTVCBiYXNlX29mZnNldDsKKyAKKyAgICAgICBpZiAoQkFTRVRZUEVf VklBX1ZJUlRVQUwgKHQsIGkpKQorIAliYXNlX29mZnNldCA9IDA7CitAQCAtMzY4Myw3ICszNjg1 LDcgQEAgdmFsdWVfbWF5YmVfbmFtZXNwYWNlX2VsdCAoY29uc3Qgc3RydWN0CisgCisgc3RydWN0 IHR5cGUgKgorIHZhbHVlX3J0dGlfaW5kaXJlY3RfdHlwZSAoc3RydWN0IHZhbHVlICp2LCBpbnQg KmZ1bGwsIAorLQkJCSAgaW50ICp0b3AsIGludCAqdXNpbmdfZW5jKQorKwkJCSAgTE9OR0VTVCAq dG9wLCBpbnQgKnVzaW5nX2VuYykKKyB7CisgICBzdHJ1Y3QgdmFsdWUgKnRhcmdldDsKKyAgIHN0 cnVjdCB0eXBlICp0eXBlLCAqcmVhbF90eXBlLCAqdGFyZ2V0X3R5cGU7CitAQCAtMzczMywxMiAr MzczNSwxMiBAQCB2YWx1ZV9ydHRpX2luZGlyZWN0X3R5cGUgKHN0cnVjdCB2YWx1ZSAqCisgc3Ry dWN0IHZhbHVlICoKKyB2YWx1ZV9mdWxsX29iamVjdCAoc3RydWN0IHZhbHVlICphcmdwLCAKKyAJ CSAgIHN0cnVjdCB0eXBlICpydHlwZSwgCistCQkgICBpbnQgeGZ1bGwsIGludCB4dG9wLAorKwkJ ICAgaW50IHhmdWxsLCBMT05HRVNUIHh0b3AsCisgCQkgICBpbnQgeHVzaW5nX2VuYykKKyB7Cisg ICBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlOworICAgaW50IGZ1bGwgPSAwOworLSAgaW50IHRvcCA9 IC0xOworKyAgTE9OR0VTVCB0b3AgPSAtMTsKKyAgIGludCB1c2luZ19lbmMgPSAwOworICAgc3Ry dWN0IHZhbHVlICpuZXdfdmFsOworIAorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvdmFs cHJpbnQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi92YWxw cmludC5jCTIwMTItMTEtMDcgMjI6MDA6NDEuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4w LjIwMTIwOTI2L2dkYi92YWxwcmludC5jCTIwMTItMTEtMDcgMjI6MTE6NDkuMzEzOTM4MTMzICsw MTAwCitAQCAtMjY0LDcgKzI2NCw3IEBAIHNjYWxhcl90eXBlX3AgKHN0cnVjdCB0eXBlICp0eXBl KQorIGludAorIHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LAorIAkJCSBzdHJ1Y3QgdHlwZSAqdHlwZSwKKy0JCQkgaW50IGVtYmVkZGVkX29mZnNldCwKKysJ CQkgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCisgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs KQorIHsKKyAgIENIRUNLX1RZUEVERUYgKHR5cGUpOworQEAgLTMyOCw3ICszMjgsNyBAQCB2YWxf cHJpbnRfaW52YWxpZF9hZGRyZXNzIChzdHJ1Y3QgdWlfZmlsCisgCisgdm9pZAorIGdlbmVyaWNf dmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCist CQkgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKysJCSAgIExPTkdF U1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKyAJCSAgIHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorIAkJICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmln aW5hbF92YWx1ZSwKKyAJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zLAorQEAgLTY5MSw3ICs2OTEsNyBAQCBnZW5lcmljX3ZhbF9wcmludCAoc3RydWN0IHR5cGUg KnR5cGUsIGNvCisgICAgUkVDVVJTRS4gICovCisgCisgdm9pZAorLXZhbF9wcmludCAoc3RydWN0 IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0 LAorK3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRy LCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKKyAJICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVj dCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorIAkgICBjb25zdCBzdHJ1Y3QgdmFsdWUg KnZhbCwKKyAJICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCitA QCAtOTAzLDcgKzkwMyw3IEBAIHZhbF9wcmludF90eXBlX2NvZGVfZmxhZ3MgKHN0cnVjdCB0eXBl ICoKKyAKKyB2b2lkCisgdmFsX3ByaW50X3NjYWxhcl9mb3JtYXR0ZWQgKHN0cnVjdCB0eXBlICp0 eXBlLAorLQkJCSAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgaW50IGVtYmVkZGVkX29mZnNl dCwKKysJCQkgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zm c2V0LAorIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJCQkgICAgY29uc3Qgc3Ry dWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCisgCQkJICAgIGludCBzaXplLAorQEAg LTE0NDQsNyArMTQ0NCw3IEBAIHByaW50X2RlY2ltYWxfY2hhcnMgKHN0cnVjdCB1aV9maWxlICpz dHIKKyAKKyB2b2lkCisgcHJpbnRfaGV4X2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBj b25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKKy0JCSB1bnNpZ25lZCBsZW4sIGVudW0gYmZkX2VuZGlh biBieXRlX29yZGVyKQorKwkJIFVMT05HRVNUIGxlbiwgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3Jk ZXIpCisgeworICAgY29uc3QgZ2RiX2J5dGUgKnA7CisgCitAQCAtMTU2MSwyMyArMTU2MSwyMyBA QCBtYXliZV9wcmludF9hcnJheV9pbmRleCAoc3RydWN0IHR5cGUgKmluCisgCisgdm9pZAorIHZh bF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKnR5cGUsCistCQkJICBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwgaW50IGVtYmVkZGVkX29mZnNldCwKKysJCQkgIGNvbnN0IGdkYl9i eXRlICp2YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKKyAJCQkgIENPUkVfQUREUiBh ZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorIAkJCSAgaW50IHJlY3Vyc2UsCisgCQkJ ICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICpvcHRpb25zLAorLQkJCSAgdW5zaWduZWQgaW50IGkpCisrCQkJICBVTE9OR0VT VCBpKQorIHsKKyAgIHVuc2lnbmVkIGludCB0aGluZ3NfcHJpbnRlZCA9IDA7CistICB1bnNpZ25l ZCBsZW47CisrICBVTE9OR0VTVCBsZW47CisgICBzdHJ1Y3QgdHlwZSAqc2F2ZWRfdHlwZSA9IHR5 cGU7CisgICBzdHJ1Y3QgdHlwZSAqZWx0dHlwZSwgKmluZGV4X3R5cGU7CistICB1bnNpZ25lZCBl bHRsZW47CisrICBVTE9OR0VTVCBlbHRsZW47CisgICAvKiBQb3NpdGlvbiBvZiB0aGUgYXJyYXkg ZWxlbWVudCB3ZSBhcmUgZXhhbWluaW5nIHRvIHNlZQorICAgICAgd2hldGhlciBpdCBpcyByZXBl YXRlZC4gICovCistICB1bnNpZ25lZCBpbnQgcmVwMTsKKysgIFVMT05HRVNUIHJlcDE7CisgICAv KiBOdW1iZXIgb2YgcmVwZXRpdGlvbnMgd2UgaGF2ZSBkZXRlY3RlZCBzbyBmYXIuICAqLworLSAg dW5zaWduZWQgaW50IHJlcHM7CisrICBVTE9OR0VTVCByZXBzOworICAgTE9OR0VTVCBsb3dfYm91 bmQsIGhpZ2hfYm91bmQ7CisgICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKKyAgIENPUkVfQURE UiBzYXZlZF9hZGRyZXNzID0gYWRkcmVzczsKK0BAIC0xNjcyLDcgKzE2NzIsNyBAQCB2YWxfcHJp bnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0eXBlICp0CisgCQkgICAgIGFkZHJlc3MsIHN0cmVh bSwgcmVjdXJzZSArIDEsIHZhbCwgb3B0aW9ucywKKyAJCSAgICAgY3VycmVudF9sYW5ndWFnZSk7 CisgCSAgYW5ub3RhdGVfZWx0X3JlcCAocmVwcyk7CistCSAgZnByaW50Zl9maWx0ZXJlZCAoc3Ry ZWFtLCAiIDxyZXBlYXRzICV1IHRpbWVzPiIsIHJlcHMpOworKwkgIGZwcmludGZfZmlsdGVyZWQg KHN0cmVhbSwgIiA8cmVwZWF0cyAlcyB0aW1lcz4iLCBwdWxvbmdlc3QgKHJlcHMpKTsKKyAJICBh bm5vdGF0ZV9lbHRfcmVwX2VuZCAoKTsKKyAKKyAJICBpID0gcmVwMSAtIDE7CitAQCAtMjA4NSw3 ICsyMDg1LDcgQEAgZ2VuZXJpY19lbWl0X2NoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdAorIAor IHZvaWQKKyBnZW5lcmljX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3Qg dHlwZSAqdHlwZSwgCistCQkgIGNvbnN0IGdkYl9ieXRlICpzdHJpbmcsIHVuc2lnbmVkIGludCBs ZW5ndGgsIAorKwkJICBjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLCBVTE9OR0VTVCBsZW5ndGgsCisg CQkgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMsCisgCQkgIGludCBx dW90ZV9jaGFyLCBpbnQgY19zdHlsZV90ZXJtaW5hdG9yLAorIAkJICBjb25zdCBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2Ri L3ZhbHByaW50LmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIv dmFscHJpbnQuaAkyMDEyLTA1LTE4IDE3OjMxOjQwLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03 LjUuMC4yMDEyMDkyNi9nZGIvdmFscHJpbnQuaAkyMDEyLTExLTA3IDIyOjA5OjMwLjA5MzE0MDQx OCArMDEwMAorQEAgLTExNywxMSArMTE3LDExIEBAIGV4dGVybiB2b2lkIG1heWJlX3ByaW50X2Fy cmF5X2luZGV4IChzdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwKKyAJCQkJICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRf b3B0aW9ucyAqKTsKKyAKKy1leHRlcm4gdm9pZCB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0 cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosIGludCwKKytleHRlcm4gdm9pZCB2YWxfcHJp bnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosIExPTkdF U1QsCisgCQkJCSAgICAgIENPUkVfQUREUiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAorIAkJCQkg ICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKKyAJCQkJICAgICAgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKiwKKy0JCQkJICAgICAgdW5zaWduZWQgaW50KTsKKysJCQkJICAgICAg VUxPTkdFU1QpOworIAorIGV4dGVybiB2b2lkIHZhbF9wcmludF90eXBlX2NvZGVfaW50IChzdHJ1 Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLAorIAkJCQkgICAgIHN0cnVjdCB1aV9maWxlICop OworQEAgLTEzMSw3ICsxMzEsNyBAQCBleHRlcm4gdm9pZCB2YWxfcHJpbnRfdHlwZV9jb2RlX2Zs YWdzIChzCisgCQkJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKKyAKKyBleHRlcm4g dm9pZCB2YWxfcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZCAoc3RydWN0IHR5cGUgKiwKKy0JCQkJCWNv bnN0IGdkYl9ieXRlICosIGludCwKKysJCQkJCWNvbnN0IGdkYl9ieXRlICosIExPTkdFU1QsCisg CQkJCQljb25zdCBzdHJ1Y3QgdmFsdWUgKiwKKyAJCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICosCisgCQkJCQlpbnQsCitAQCAtMTQ3LDcgKzE0Nyw3IEBAIGV4dGVybiB2b2lk IHByaW50X2RlY2ltYWxfY2hhcnMgKHN0cnVjdAorIAkJCQkgdW5zaWduZWQgaW50LCBlbnVtIGJm ZF9lbmRpYW4pOworIAorIGV4dGVybiB2b2lkIHByaW50X2hleF9jaGFycyAoc3RydWN0IHVpX2Zp bGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwKKy0JCQkgICAgIHVuc2lnbmVkIGludCwgZW51bSBiZmRf ZW5kaWFuKTsKKysJCQkgICAgIFVMT05HRVNULCBlbnVtIGJmZF9lbmRpYW4pOworIAorIGV4dGVy biB2b2lkIHByaW50X2NoYXJfY2hhcnMgKHN0cnVjdCB1aV9maWxlICosIHN0cnVjdCB0eXBlICos CisgCQkJICAgICAgY29uc3QgZ2RiX2J5dGUgKiwgdW5zaWduZWQgaW50LCBlbnVtIGJmZF9lbmRp YW4pOworQEAgLTE5MSw3ICsxOTEsNyBAQCBzdHJ1Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGVjb3Jh dGlvbnMKKyAKKyAKKyBleHRlcm4gdm9pZCBnZW5lcmljX3ZhbF9wcmludCAoc3RydWN0IHR5cGUg KnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJCSAgICAgICBpbnQgZW1iZWRkZWRf b2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKysJCQkgICAgICAgTE9OR0VTVCBlbWJlZGRlZF9v ZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAorIAkJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtLCBpbnQgcmVjdXJzZSwKKyAJCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5h bF92YWx1ZSwKKyAJCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9w dGlvbnMsCitAQCAtMjAxLDcgKzIwMSw3IEBAIGV4dGVybiB2b2lkIGdlbmVyaWNfZW1pdF9jaGFy IChpbnQgYywgc3QKKyAJCQkgICAgICAgaW50IHF1b3RlciwgY29uc3QgY2hhciAqZW5jb2Rpbmcp OworIAorIGV4dGVybiB2b2lkIGdlbmVyaWNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJl YW0sIHN0cnVjdCB0eXBlICp0eXBlLCAKKy0JCQkgICAgICBjb25zdCBnZGJfYnl0ZSAqc3RyaW5n LCB1bnNpZ25lZCBpbnQgbGVuZ3RoLCAKKysJCQkgICAgICBjb25zdCBnZGJfYnl0ZSAqc3RyaW5n LCBVTE9OR0VTVCBsZW5ndGgsCisgCQkJICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBm b3JjZV9lbGxpcHNlcywKKyAJCQkgICAgICBpbnQgcXVvdGVfY2hhciwgaW50IGNfc3R5bGVfdGVy bWluYXRvciwKKyAJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0 aW9ucyk7CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi92YWx1ZS5jCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3ZhbHVlLmMJMjAxMi0xMS0wNyAyMjow Mzo1Ny4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3ZhbHVlLmMJ MjAxMi0xMS0wNyAyMjowOTozMC4wOTYxNDA0MTQgKzAxMDAKK0BAIC02OCwxMCArNjgsMTAgQEAg c3RydWN0IGludGVybmFsX2Z1bmN0aW9uCisgc3RydWN0IHJhbmdlCisgeworICAgLyogTG93ZXN0 IG9mZnNldCBpbiB0aGUgcmFuZ2UuICAqLworLSAgaW50IG9mZnNldDsKKysgIExPTkdFU1Qgb2Zm c2V0OworIAorICAgLyogTGVuZ3RoIG9mIHRoZSByYW5nZS4gICovCistICBpbnQgbGVuZ3RoOwor KyAgTE9OR0VTVCBsZW5ndGg7CisgfTsKKyAKKyB0eXBlZGVmIHN0cnVjdCByYW5nZSByYW5nZV9z OworQEAgLTgyLDggKzgyLDggQEAgREVGX1ZFQ19PKHJhbmdlX3MpOworICAgIFtvZmZzZXQyLCBv ZmZzZXQyK2xlbjIpIG92ZXJsYXAuICAqLworIAorIHN0YXRpYyBpbnQKKy1yYW5nZXNfb3Zlcmxh cCAoaW50IG9mZnNldDEsIGludCBsZW4xLAorLQkJaW50IG9mZnNldDIsIGludCBsZW4yKQorK3Jh bmdlc19vdmVybGFwIChMT05HRVNUIG9mZnNldDEsIExPTkdFU1QgbGVuMSwKKysJCUxPTkdFU1Qg b2Zmc2V0MiwgTE9OR0VTVCBsZW4yKQorIHsKKyAgIFVMT05HRVNUIGgsIGw7CisgCitAQCAtMTA3 LDcgKzEwNyw3IEBAIHJhbmdlX2xlc3N0aGFuIChjb25zdCByYW5nZV9zICpyMSwgY29uc3QKKyAg ICBPRkZTRVQrTEVOR1RIKS4gICovCisgCisgc3RhdGljIGludAorLXJhbmdlc19jb250YWluIChW RUMocmFuZ2VfcykgKnJhbmdlcywgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKKytyYW5nZXNfY29u dGFpbiAoVkVDKHJhbmdlX3MpICpyYW5nZXMsIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0 aCkKKyB7CisgICByYW5nZV9zIHdoYXQ7CisgICBpbnQgaTsKK0BAIC0yNDAsNyArMjQwLDcgQEAg c3RydWN0IHZhbHVlCisgICAgICBsdmFsID09IGx2YWxfcmVnaXN0ZXIsIHRoaXMgaXMgYSBmdXJ0 aGVyIG9mZnNldCBmcm9tCisgICAgICBsb2NhdGlvbi5hZGRyZXNzIHdpdGhpbiB0aGUgcmVnaXN0 ZXJzIHN0cnVjdHVyZS4gIE5vdGUgYWxzbyB0aGUKKyAgICAgIG1lbWJlciBlbWJlZGRlZF9vZmZz ZXQgYmVsb3cuICAqLworLSAgaW50IG9mZnNldDsKKysgIExPTkdFU1Qgb2Zmc2V0OworIAorICAg LyogT25seSB1c2VkIGZvciBiaXRmaWVsZHM7IG51bWJlciBvZiBiaXRzIGNvbnRhaW5lZCBpbiB0 aGVtLiAgKi8KKyAgIGludCBiaXRzaXplOworQEAgLTMxMCw4ICszMTAsOCBAQCBzdHJ1Y3QgdmFs dWUKKyAgICAgIGB0eXBlJywgYW5kIGBlbWJlZGRlZF9vZmZzZXQnIGlzIHplcm8sIHNvIGV2ZXJ5 dGhpbmcgd29ya3MKKyAgICAgIG5vcm1hbGx5LiAgKi8KKyAgIHN0cnVjdCB0eXBlICplbmNsb3Np bmdfdHlwZTsKKy0gIGludCBlbWJlZGRlZF9vZmZzZXQ7CistICBpbnQgcG9pbnRlZF90b19vZmZz ZXQ7CisrICBMT05HRVNUIGVtYmVkZGVkX29mZnNldDsKKysgIExPTkdFU1QgcG9pbnRlZF90b19v ZmZzZXQ7CisgCisgICAvKiBWYWx1ZXMgYXJlIHN0b3JlZCBpbiBhIGNoYWluLCBzbyB0aGF0IHRo ZXkgY2FuIGJlIGRlbGV0ZWQgZWFzaWx5CisgICAgICBvdmVyIGNhbGxzIHRvIHRoZSBpbmZlcmlv ci4gIFZhbHVlcyBhc3NpZ25lZCB0byBpbnRlcm5hbAorQEAgLTMzMyw3ICszMzMsOCBAQCBzdHJ1 Y3QgdmFsdWUKKyB9OworIAorIGludAorLXZhbHVlX2J5dGVzX2F2YWlsYWJsZSAoY29uc3Qgc3Ry dWN0IHZhbHVlICp2YWx1ZSwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKKyt2YWx1ZV9ieXRlc19h dmFpbGFibGUgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1Qgb2Zmc2V0LAorKwkJ ICAgICAgIExPTkdFU1QgbGVuZ3RoKQorIHsKKyAgIGdkYl9hc3NlcnQgKCF2YWx1ZS0+bGF6eSk7 CisgCitAQCAtMzU0LDcgKzM1NSw4IEBAIHZhbHVlX2VudGlyZWx5X2F2YWlsYWJsZSAoc3RydWN0 IHZhbHVlICoKKyB9CisgCisgdm9pZAorLW1hcmtfdmFsdWVfYnl0ZXNfdW5hdmFpbGFibGUgKHN0 cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBvZmZzZXQsIGludCBsZW5ndGgpCisrbWFya192YWx1ZV9i eXRlc191bmF2YWlsYWJsZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCBvZmZzZXQsCisr CQkJICAgICAgTE9OR0VTVCBsZW5ndGgpCisgeworICAgcmFuZ2VfcyBuZXdyOworICAgaW50IGk7 CitAQCAtNTI1LDcgKzUyNyw3IEBAIG1hcmtfdmFsdWVfYnl0ZXNfdW5hdmFpbGFibGUgKHN0cnVj dCB2YWwKKyAKKyBzdGF0aWMgaW50CisgZmluZF9maXJzdF9yYW5nZV9vdmVybGFwIChWRUMocmFu Z2VfcykgKnJhbmdlcywgaW50IHBvcywKKy0JCQkgIGludCBvZmZzZXQsIGludCBsZW5ndGgpCisr CQkJICBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW5ndGgpCisgeworICAgcmFuZ2VfcyAqcjsK KyAgIGludCBpOworQEAgLTUzOCw5ICs1NDAsOSBAQCBmaW5kX2ZpcnN0X3JhbmdlX292ZXJsYXAg KFZFQyhyYW5nZV9zKSAqCisgfQorIAorIGludAorLXZhbHVlX2F2YWlsYWJsZV9jb250ZW50c19l cSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWwxLCBpbnQgb2Zmc2V0MSwKKy0JCQkgICAgIGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsMiwgaW50IG9mZnNldDIsCistCQkJICAgICBpbnQgbGVuZ3RoKQor K3ZhbHVlX2F2YWlsYWJsZV9jb250ZW50c19lcSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWwxLCBM T05HRVNUIG9mZnNldDEsCisrCQkJICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbDIsIExPTkdF U1Qgb2Zmc2V0MiwKKysJCQkgICAgIExPTkdFU1QgbGVuZ3RoKQorIHsKKyAgIGludCBpZHgxID0g MCwgaWR4MiA9IDA7CisgCitAQCAtNzY4LDEzICs3NzAsMTMgQEAgZGVwcmVjYXRlZF9zZXRfdmFs dWVfdHlwZSAoc3RydWN0IHZhbHVlCisgICB2YWx1ZS0+dHlwZSA9IHR5cGU7CisgfQorIAorLWlu dAorK0xPTkdFU1QKKyB2YWx1ZV9vZmZzZXQgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUpCisg eworICAgcmV0dXJuIHZhbHVlLT5vZmZzZXQ7CisgfQorIHZvaWQKKy1zZXRfdmFsdWVfb2Zmc2V0 IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgb2Zmc2V0KQorK3NldF92YWx1ZV9vZmZzZXQgKHN0 cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1Qgb2Zmc2V0KQorIHsKKyAgIHZhbHVlLT5vZmZzZXQg PSBvZmZzZXQ7CisgfQorQEAgLTkyNCw4ICs5MjYsOSBAQCB2YWx1ZV9jb250ZW50c19hbGwgKHN0 cnVjdCB2YWx1ZSAqdmFsdWUpCisgICAgRFNUX09GRlNFVCtMRU5HVEgpIHJhbmdlIGFyZSB3aG9s bHkgYXZhaWxhYmxlLiAgKi8KKyAKKyB2b2lkCistdmFsdWVfY29udGVudHNfY29weV9yYXcgKHN0 cnVjdCB2YWx1ZSAqZHN0LCBpbnQgZHN0X29mZnNldCwKKy0JCQkgc3RydWN0IHZhbHVlICpzcmMs IGludCBzcmNfb2Zmc2V0LCBpbnQgbGVuZ3RoKQorK3ZhbHVlX2NvbnRlbnRzX2NvcHlfcmF3IChz dHJ1Y3QgdmFsdWUgKmRzdCwgc3NpemVfdCBkc3Rfb2Zmc2V0LAorKwkJCSBzdHJ1Y3QgdmFsdWUg KnNyYywgc3NpemVfdCBzcmNfb2Zmc2V0LAorKwkJCSBzc2l6ZV90IGxlbmd0aCkKKyB7CisgICBy YW5nZV9zICpyOworICAgaW50IGk7CitAQCAtOTczLDggKzk3Niw4IEBAIHZhbHVlX2NvbnRlbnRz X2NvcHlfcmF3IChzdHJ1Y3QgdmFsdWUgKmQKKyAgICBEU1RfT0ZGU0VUK0xFTkdUSCkgcmFuZ2Ug YXJlIHdob2xseSBhdmFpbGFibGUuICAqLworIAorIHZvaWQKKy12YWx1ZV9jb250ZW50c19jb3B5 IChzdHJ1Y3QgdmFsdWUgKmRzdCwgaW50IGRzdF9vZmZzZXQsCistCQkgICAgIHN0cnVjdCB2YWx1 ZSAqc3JjLCBpbnQgc3JjX29mZnNldCwgaW50IGxlbmd0aCkKKyt2YWx1ZV9jb250ZW50c19jb3B5 IChzdHJ1Y3QgdmFsdWUgKmRzdCwgc3NpemVfdCBkc3Rfb2Zmc2V0LAorKwkJICAgICBzdHJ1Y3Qg dmFsdWUgKnNyYywgc3NpemVfdCBzcmNfb2Zmc2V0LCBzc2l6ZV90IGxlbmd0aCkKKyB7CisgICBy ZXF1aXJlX25vdF9vcHRpbWl6ZWRfb3V0IChzcmMpOworIAorQEAgLTEwNjgsNyArMTA3MSw3IEBA IHZhbHVlX2VudGlyZWx5X29wdGltaXplZF9vdXQgKGNvbnN0IHN0cnUKKyB9CisgCisgaW50Cist dmFsdWVfYml0c192YWxpZCAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IG9mZnNldCwg aW50IGxlbmd0aCkKKyt2YWx1ZV9iaXRzX3ZhbGlkIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVl LCBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW5ndGgpCisgeworICAgaWYgKCF2YWx1ZS0+b3B0 aW1pemVkX291dCkKKyAgICAgcmV0dXJuIDE7CitAQCAtMTA4MSw3ICsxMDg0LDcgQEAgdmFsdWVf Yml0c192YWxpZCAoY29uc3Qgc3RydWN0IHZhbHVlICp2YQorIAorIGludAorIHZhbHVlX2JpdHNf c3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsCistCQkJICAgICAg aW50IG9mZnNldCwgaW50IGxlbmd0aCkKKysJCQkgICAgICBMT05HRVNUIG9mZnNldCwgTE9OR0VT VCBsZW5ndGgpCisgeworICAgaWYgKHZhbHVlLT5sdmFsICE9IGx2YWxfY29tcHV0ZWQKKyAgICAg ICB8fCAhdmFsdWUtPmxvY2F0aW9uLmNvbXB1dGVkLmZ1bmNzLT5jaGVja19zeW50aGV0aWNfcG9p bnRlcikKK0BAIC0xMDkxLDI2ICsxMDk0LDI2IEBAIHZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50 ZXIgKGNvbnN0IHN0cnUKKyAJCQkJCQkJCSAgbGVuZ3RoKTsKKyB9CisgCistaW50CisrTE9OR0VT VAorIHZhbHVlX2VtYmVkZGVkX29mZnNldCAoc3RydWN0IHZhbHVlICp2YWx1ZSkKKyB7CisgICBy ZXR1cm4gdmFsdWUtPmVtYmVkZGVkX29mZnNldDsKKyB9CisgCisgdm9pZAorLXNldF92YWx1ZV9l bWJlZGRlZF9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCB2YWwpCisrc2V0X3ZhbHVl X2VtYmVkZGVkX29mZnNldCAoc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCB2YWwpCisgewor ICAgdmFsdWUtPmVtYmVkZGVkX29mZnNldCA9IHZhbDsKKyB9CisgCistaW50CisrTE9OR0VTVAor IHZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlKQorIHsKKyAgIHJl dHVybiB2YWx1ZS0+cG9pbnRlZF90b19vZmZzZXQ7CisgfQorIAorIHZvaWQKKy1zZXRfdmFsdWVf cG9pbnRlZF90b19vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCB2YWwpCisrc2V0X3Zh bHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIHZhbCkK KyB7CisgICB2YWx1ZS0+cG9pbnRlZF90b19vZmZzZXQgPSB2YWw7CisgfQorQEAgLTE5NzAsNyAr MTk3Myw3IEBAIGdldF9pbnRlcm5hbHZhcl9mdW5jdGlvbiAoc3RydWN0IGludGVybmEKKyB9Cisg Cisgdm9pZAorLXNldF9pbnRlcm5hbHZhcl9jb21wb25lbnQgKHN0cnVjdCBpbnRlcm5hbHZhciAq dmFyLCBpbnQgb2Zmc2V0LCBpbnQgYml0cG9zLAorK3NldF9pbnRlcm5hbHZhcl9jb21wb25lbnQg KHN0cnVjdCBpbnRlcm5hbHZhciAqdmFyLCBMT05HRVNUIG9mZnNldCwgaW50IGJpdHBvcywKKyAJ CQkgICBpbnQgYml0c2l6ZSwgc3RydWN0IHZhbHVlICpuZXd2YWwpCisgeworICAgZ2RiX2J5dGUg KmFkZHI7CitAQCAtMjY3MSw3ICsyNjc0LDcgQEAgc2V0X3ZhbHVlX2VuY2xvc2luZ190eXBlIChz dHJ1Y3QgdmFsdWUgKgorICAgIEZJRUxETk8gc2F5cyB3aGljaCBmaWVsZC4gICovCisgCisgc3Ry dWN0IHZhbHVlICoKKy12YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwg aW50IG9mZnNldCwKKyt2YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwg TE9OR0VTVCBvZmZzZXQsCisgCQkgICAgICAgaW50IGZpZWxkbm8sIHN0cnVjdCB0eXBlICphcmdf dHlwZSkKKyB7CisgICBzdHJ1Y3QgdmFsdWUgKnY7CitAQCAtMjcwMSw3ICsyNzA0LDcgQEAgdmFs dWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZworIAkgYml0LiAgQXNzdW1lIHRo YXQgdGhlIGFkZHJlc3MsIG9mZnNldCwgYW5kIGVtYmVkZGVkIG9mZnNldAorIAkgYXJlIHN1ZmZp Y2llbnRseSBhbGlnbmVkLiAgKi8KKyAKKy0gICAgICBpbnQgYml0cG9zID0gVFlQRV9GSUVMRF9C SVRQT1MgKGFyZ190eXBlLCBmaWVsZG5vKTsKKysgICAgICBMT05HRVNUIGJpdHBvcyA9IFRZUEVf RklFTERfQklUUE9TIChhcmdfdHlwZSwgZmllbGRubyk7CisgICAgICAgaW50IGNvbnRhaW5lcl9i aXRzaXplID0gVFlQRV9MRU5HVEggKHR5cGUpICogODsKKyAKKyAgICAgICB2ID0gYWxsb2NhdGVf dmFsdWVfbGF6eSAodHlwZSk7CitAQCAtMjcyNCw3ICsyNzI3LDcgQEAgdmFsdWVfcHJpbWl0aXZl X2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZworICAgICAgIC8qIFRoaXMgZmllbGQgaXMgYWN0dWFs bHkgYSBiYXNlIHN1Ym9iamVjdCwgc28gcHJlc2VydmUgdGhlCisgCSBlbnRpcmUgb2JqZWN0J3Mg Y29udGVudHMgZm9yIGxhdGVyIHJlZmVyZW5jZXMgdG8gdmlydHVhbAorIAkgYmFzZXMsIGV0Yy4g ICovCistICAgICAgaW50IGJvZmZzZXQ7CisrICAgICAgTE9OR0VTVCBib2Zmc2V0OworIAorICAg ICAgIC8qIExhenkgcmVnaXN0ZXIgdmFsdWVzIHdpdGggb2Zmc2V0cyBhcmUgbm90IHN1cHBvcnRl ZC4gICovCisgICAgICAgaWYgKFZBTFVFX0xWQUwgKGFyZzEpID09IGx2YWxfcmVnaXN0ZXIgJiYg dmFsdWVfbGF6eSAoYXJnMSkpCitAQCAtMjgwMSw3ICsyODA0LDcgQEAgdmFsdWVfZmllbGQgKHN0 cnVjdCB2YWx1ZSAqYXJnMSwgaW50IGZpZQorIHN0cnVjdCB2YWx1ZSAqCisgdmFsdWVfZm5fZmll bGQgKHN0cnVjdCB2YWx1ZSAqKmFyZzFwLCBzdHJ1Y3QgZm5fZmllbGQgKmYsCisgCQlpbnQgaiwg c3RydWN0IHR5cGUgKnR5cGUsCistCQlpbnQgb2Zmc2V0KQorKwkJTE9OR0VTVCBvZmZzZXQpCisg eworICAgc3RydWN0IHZhbHVlICp2OworICAgc3RydWN0IHR5cGUgKmZ0eXBlID0gVFlQRV9GTl9G SUVMRF9UWVBFIChmLCBqKTsKK0BAIC0yODYxLDggKzI4NjQsOCBAQCB2YWx1ZV9mbl9maWVsZCAo c3RydWN0IHZhbHVlICoqYXJnMXAsIHN0CisgCisgc3RhdGljIGludAorIHVucGFja192YWx1ZV9i aXRzX2FzX2xvbmdfMSAoc3RydWN0IHR5cGUgKmZpZWxkX3R5cGUsIGNvbnN0IGdkYl9ieXRlICp2 YWxhZGRyLAorLQkJCSAgICAgaW50IGVtYmVkZGVkX29mZnNldCwgaW50IGJpdHBvcywgaW50IGJp dHNpemUsCistCQkJICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAorKwkJ CSAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIExPTkdFU1QgYml0cG9zLAorKwkJCSAgICAg aW50IGJpdHNpemUsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCisgCQkJICAg ICBMT05HRVNUICpyZXN1bHQpCisgeworICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBn ZGJhcmNoX2J5dGVfb3JkZXIgKGdldF90eXBlX2FyY2ggKGZpZWxkX3R5cGUpKTsKK0BAIC0yODcw LDcgKzI4NzMsNyBAQCB1bnBhY2tfdmFsdWVfYml0c19hc19sb25nXzEgKHN0cnVjdCB0eXBlCisg ICBVTE9OR0VTVCB2YWxtYXNrOworICAgaW50IGxzYmNvdW50OworICAgaW50IGJ5dGVzX3JlYWQ7 CistICBpbnQgcmVhZF9vZmZzZXQ7CisrICBMT05HRVNUIHJlYWRfb2Zmc2V0OworIAorICAgLyog UmVhZCB0aGUgbWluaW11bSBudW1iZXIgb2YgYnl0ZXMgcmVxdWlyZWQ7IHRoZXJlIG1heSBub3Qg YmUKKyAgICAgIGVub3VnaCBieXRlcyB0byByZWFkIGFuIGVudGlyZSBVTE9OR0VTVC4gICovCitA QCAtMjk0MCw3ICsyOTQzLDcgQEAgdW5wYWNrX3ZhbHVlX2JpdHNfYXNfbG9uZ18xIChzdHJ1Y3Qg dHlwZQorIAorIGludAorIHVucGFja192YWx1ZV9iaXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpm aWVsZF90eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKKy0JCQkgICBpbnQgZW1iZWRkZWRf b2Zmc2V0LCBpbnQgYml0cG9zLCBpbnQgYml0c2l6ZSwKKysJCQkgICBMT05HRVNUIGVtYmVkZGVk X29mZnNldCwgaW50IGJpdHBvcywgaW50IGJpdHNpemUsCisgCQkJICAgY29uc3Qgc3RydWN0IHZh bHVlICpvcmlnaW5hbF92YWx1ZSwKKyAJCQkgICBMT05HRVNUICpyZXN1bHQpCisgeworQEAgLTI5 NTgsMTAgKzI5NjEsMTAgQEAgdW5wYWNrX3ZhbHVlX2JpdHNfYXNfbG9uZyAoc3RydWN0IHR5cGUg KgorIAorIHN0YXRpYyBpbnQKKyB1bnBhY2tfdmFsdWVfZmllbGRfYXNfbG9uZ18xIChzdHJ1Y3Qg dHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkJICAgICAgaW50IGVtYmVk ZGVkX29mZnNldCwgaW50IGZpZWxkbm8sCisrCQkJICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZz ZXQsIGludCBmaWVsZG5vLAorIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLCBMT05H RVNUICpyZXN1bHQpCisgeworLSAgaW50IGJpdHBvcyA9IFRZUEVfRklFTERfQklUUE9TICh0eXBl LCBmaWVsZG5vKTsKKysgIExPTkdFU1QgYml0cG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUs IGZpZWxkbm8pOworICAgaW50IGJpdHNpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGZp ZWxkbm8pOworICAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGUgPSBUWVBFX0ZJRUxEX1RZUEUgKHR5 cGUsIGZpZWxkbm8pOworIAorQEAgLTI5NzcsNyArMjk4MCw3IEBAIHVucGFja192YWx1ZV9maWVs ZF9hc19sb25nXzEgKHN0cnVjdCB0eXAKKyAKKyBpbnQKKyB1bnBhY2tfdmFsdWVfZmllbGRfYXNf bG9uZyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJCSAg ICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBpbnQgZmllbGRubywKKysJCQkgICAgTE9OR0VTVCBlbWJl ZGRlZF9vZmZzZXQsIGludCBmaWVsZG5vLAorIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZh bCwgTE9OR0VTVCAqcmVzdWx0KQorIHsKKyAgIGdkYl9hc3NlcnQgKHZhbCAhPSBOVUxMKTsKK0BA IC0zMDA5LDcgKzMwMTIsNyBAQCB1bnBhY2tfZmllbGRfYXNfbG9uZyAoc3RydWN0IHR5cGUgKnR5 cGUsCisgc3RydWN0IHZhbHVlICoKKyB2YWx1ZV9maWVsZF9iaXRmaWVsZCAoc3RydWN0IHR5cGUg KnR5cGUsIGludCBmaWVsZG5vLAorIAkJICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCist CQkgICAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkKKysJ CSAgICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkK KyB7CisgICBMT05HRVNUIGw7CisgCitAQCAtMzAzNiwxMiArMzAzOSwxMiBAQCB2YWx1ZV9maWVs ZF9iaXRmaWVsZCAoc3RydWN0IHR5cGUgKnR5cGUsCisgCisgdm9pZAorIG1vZGlmeV9maWVsZCAo c3RydWN0IHR5cGUgKnR5cGUsIGdkYl9ieXRlICphZGRyLAorLQkgICAgICBMT05HRVNUIGZpZWxk dmFsLCBpbnQgYml0cG9zLCBpbnQgYml0c2l6ZSkKKysJICAgICAgTE9OR0VTVCBmaWVsZHZhbCwg TE9OR0VTVCBiaXRwb3MsIGludCBiaXRzaXplKQorIHsKKyAgIGVudW0gYmZkX2VuZGlhbiBieXRl X29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZXRfdHlwZV9hcmNoICh0eXBlKSk7CisgICBV TE9OR0VTVCBvd29yZDsKKyAgIFVMT05HRVNUIG1hc2sgPSAoVUxPTkdFU1QpIC0xID4+ICg4ICog c2l6ZW9mIChVTE9OR0VTVCkgLSBiaXRzaXplKTsKKy0gIGludCBieXRlc2l6ZTsKKysgIExPTkdF U1QgYnl0ZXNpemU7CisgCisgICAvKiBOb3JtYWxpemUgQklUUE9TLiAgKi8KKyAgIGFkZHIgKz0g Yml0cG9zIC8gODsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3ZhbHVlLmgKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvdmFsdWUuaAkyMDEyLTExLTA3 IDIyOjAwOjQxLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvdmFs dWUuaAkyMDEyLTExLTA3IDIyOjA5OjMwLjEwNDE0MDQwMyArMDEwMAorQEAgLTgyLDggKzgyLDgg QEAgZXh0ZXJuIHZvaWQgc2V0X3ZhbHVlX3BhcmVudCAoc3RydWN0IHZhbAorICAgIHdpdGhpbiB0 aGUgcmVnaXN0ZXJzIHN0cnVjdHVyZS4gIE5vdGUgYWxzbyB0aGUgbWVtYmVyCisgICAgZW1iZWRk ZWRfb2Zmc2V0IGJlbG93LiAgKi8KKyAKKy1leHRlcm4gaW50IHZhbHVlX29mZnNldCAoY29uc3Qg c3RydWN0IHZhbHVlICopOworLWV4dGVybiB2b2lkIHNldF92YWx1ZV9vZmZzZXQgKHN0cnVjdCB2 YWx1ZSAqLCBpbnQgb2Zmc2V0KTsKKytleHRlcm4gTE9OR0VTVCB2YWx1ZV9vZmZzZXQgKGNvbnN0 IHN0cnVjdCB2YWx1ZSAqKTsKKytleHRlcm4gdm9pZCBzZXRfdmFsdWVfb2Zmc2V0IChzdHJ1Y3Qg dmFsdWUgKiwgTE9OR0VTVCBvZmZzZXQpOworIAorIC8qIFRoZSBjb21tZW50IGZyb20gInN0cnVj dCB2YWx1ZSIgcmVhZHM6IGBgSXMgaXQgbW9kaWZpYWJsZT8gIE9ubHkKKyAgICByZWxldmFudCBp ZiBsdmFsICE9IG5vdF9sdmFsLicnLiAgU2hvdWxkbid0IHRoZSB2YWx1ZSBpbnN0ZWFkIGJlCitA QCAtMTU0LDEwICsxNTQsMTAgQEAgZXh0ZXJuIHN0cnVjdCB0eXBlICp2YWx1ZV9hY3R1YWxfdHlw ZSAocworIAkJCQkgICAgICAgaW50IHJlc29sdmVfc2ltcGxlX3R5cGVzLAorIAkJCQkgICAgICAg aW50ICpyZWFsX3R5cGVfZm91bmQpOworIAorLWV4dGVybiBpbnQgdmFsdWVfcG9pbnRlZF90b19v ZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUpOworLWV4dGVybiB2b2lkIHNldF92YWx1ZV9wb2lu dGVkX3RvX29mZnNldCAoc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IHZhbCk7CistZXh0ZXJuIGlu dCB2YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUpOworLWV4dGVybiB2 b2lkIHNldF92YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCB2 YWwpOworK2V4dGVybiBMT05HRVNUIHZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChzdHJ1Y3QgdmFs dWUgKnZhbHVlKTsKKytleHRlcm4gdm9pZCBzZXRfdmFsdWVfcG9pbnRlZF90b19vZmZzZXQgKHN0 cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1QgdmFsKTsKKytleHRlcm4gTE9OR0VTVCB2YWx1ZV9l bWJlZGRlZF9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUpOworK2V4dGVybiB2b2lkIHNldF92 YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1QgdmFsKTsK KyAKKyAvKiBGb3IgbHZhbF9jb21wdXRlZCB2YWx1ZXMsIHRoaXMgc3RydWN0dXJlIGhvbGRzIGZ1 bmN0aW9ucyB1c2VkIHRvCisgICAgcmV0cmlldmUgYW5kIHNldCB0aGUgdmFsdWUgKG9yIHBvcnRp b25zIG9mIHRoZSB2YWx1ZSkuCitAQCAtMTg1LDcgKzE4NSw4IEBAIHN0cnVjdCBsdmFsX2Z1bmNz CisgICAvKiBDaGVjayB0aGUgdmFsaWRpdHkgb2Ygc29tZSBiaXRzIGluIFZBTFVFLiAgVGhpcyBz aG91bGQgcmV0dXJuIDEKKyAgICAgIGlmIGFsbCB0aGUgYml0cyBzdGFydGluZyBhdCBPRkZTRVQg YW5kIGV4dGVuZGluZyBmb3IgTEVOR1RIIGJpdHMKKyAgICAgIGFyZSB2YWxpZCwgb3IgMCBpZiBh bnkgYml0IGlzIGludmFsaWQuICAqLworLSAgaW50ICgqY2hlY2tfdmFsaWRpdHkpIChjb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKTsKKysgIGludCAoKmNo ZWNrX3ZhbGlkaXR5KSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCBvZmZzZXQs CisrCQkJIExPTkdFU1QgbGVuZ3RoKTsKKyAKKyAgIC8qIFJldHVybiAxIGlmIGFueSBiaXQgaW4g VkFMVUUgaXMgdmFsaWQsIDAgaWYgdGhleSBhcmUgYWxsIGludmFsaWQuICAqLworICAgaW50ICgq Y2hlY2tfYW55X3ZhbGlkKSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSk7CitAQCAtMjAzLDcg KzIwNCw3IEBAIHN0cnVjdCBsdmFsX2Z1bmNzCisgICAvKiBJZiBub24tTlVMTCwgdGhpcyBpcyB1 c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBpbmRpY2F0ZWQgYml0cworICAgICAgb2YgVkFM VUUgYXJlIGEgc3ludGhldGljIHBvaW50ZXIuICAqLworICAgaW50ICgqY2hlY2tfc3ludGhldGlj X3BvaW50ZXIpIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLAorLQkJCQkgIGludCBvZmZzZXQs IGludCBsZW5ndGgpOworKwkJCQkgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCk7Cisg CisgICAvKiBSZXR1cm4gYSBkdXBsaWNhdGUgb2YgVkFMVUUncyBjbG9zdXJlLCBmb3IgdXNlIGlu IGEgbmV3IHZhbHVlLgorICAgICAgVGhpcyBtYXkgc2ltcGx5IHJldHVybiB0aGUgc2FtZSBjbG9z dXJlLCBpZiBWQUxVRSdzIGlzCitAQCAtMjQwLDcgKzI0MSw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFs dWUgKmFsbG9jYXRlX2NvbXB1dGVkX3YKKyAgICBPdGhlcndpc2UsIHJldHVybiAxLiAgKi8KKyAK KyBleHRlcm4gaW50IHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5IChzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKKy0JCQkJICAgIGludCBlbWJlZGRlZF9vZmZzZXQsCisr CQkJCSAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKKyAJCQkJICAgIGNvbnN0IHN0cnVjdCB2 YWx1ZSAqdmFsKTsKKyAKKyBleHRlcm4gc3RydWN0IHZhbHVlICphbGxvY2F0ZV9vcHRpbWl6ZWRf b3V0X3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSk7CitAQCAtNDExLDEzICs0MTIsMTMgQEAgZXh0 ZXJuIHN0cnVjdCB2YWx1ZSAqY29lcmNlX2FycmF5IChzdHJ1YworICAgIGJpdHMgaW4gdGhlIGdp dmVuIHJhbmdlIGFyZSB2YWxpZCwgemVybyBpZiBhbnkgYml0IGlzIGludmFsaWQuICAqLworIAor IGV4dGVybiBpbnQgdmFsdWVfYml0c192YWxpZCAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwK Ky0JCQkgICAgIGludCBvZmZzZXQsIGludCBsZW5ndGgpOworKwkJCSAgICAgTE9OR0VTVCBvZmZz ZXQsIExPTkdFU1QgbGVuZ3RoKTsKKyAKKyAvKiBHaXZlbiBhIHZhbHVlLCBkZXRlcm1pbmUgd2hl dGhlciB0aGUgYml0cyBzdGFydGluZyBhdCBPRkZTRVQgYW5kCisgICAgZXh0ZW5kaW5nIGZvciBM RU5HVEggYml0cyBhcmUgYSBzeW50aGV0aWMgcG9pbnRlci4gICovCisgCisgZXh0ZXJuIGludCB2 YWx1ZV9iaXRzX3N5bnRoZXRpY19wb2ludGVyIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLAor LQkJCQkJIGludCBvZmZzZXQsIGludCBsZW5ndGgpOworKwkJCQkJIExPTkdFU1Qgb2Zmc2V0LCBM T05HRVNUIGxlbmd0aCk7CisgCisgLyogR2l2ZW4gYSB2YWx1ZSwgZGV0ZXJtaW5lIHdoZXRoZXIg dGhlIGNvbnRlbnRzIGJ5dGVzIHN0YXJ0aW5nIGF0CisgICAgT0ZGU0VUIGFuZCBleHRlbmRpbmcg Zm9yIExFTkdUSCBieXRlcyBhcmUgYXZhaWxhYmxlLiAgVGhpcyByZXR1cm5zCitAQCAtNDI1LDcg KzQyNiw3IEBAIGV4dGVybiBpbnQgdmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRlcgorICAgIGJ5 dGUgaXMgdW5hdmFpbGFibGUuICAqLworIAorIGV4dGVybiBpbnQgdmFsdWVfYnl0ZXNfYXZhaWxh YmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLAorLQkJCQkgIGludCBvZmZzZXQsIGludCBs ZW5ndGgpOworKwkJCQkgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCk7CisgCisgLyog TGlrZSB2YWx1ZV9ieXRlc19hdmFpbGFibGUsIGJ1dCByZXR1cm4gZmFsc2UgaWYgYW55IGJ5dGUg aW4gdGhlCisgICAgd2hvbGUgb2JqZWN0IGlzIHVuYXZhaWxhYmxlLiAgKi8KK0BAIC00MzUsNyAr NDM2LDcgQEAgZXh0ZXJuIGludCB2YWx1ZV9lbnRpcmVseV9hdmFpbGFibGUgKHN0cgorICAgIExF TkdUSCBieXRlcyBhcyB1bmF2YWlsYWJsZS4gICovCisgCisgZXh0ZXJuIHZvaWQgbWFya192YWx1 ZV9ieXRlc191bmF2YWlsYWJsZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwKKy0JCQkJCSAgaW50IG9m ZnNldCwgaW50IGxlbmd0aCk7CisrCQkJCQkgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0 aCk7CisgCisgLyogQ29tcGFyZSBMRU5HVEggYnl0ZXMgb2YgVkFMMSdzIGNvbnRlbnRzIHN0YXJ0 aW5nIGF0IE9GRlNFVDEgd2l0aAorICAgIExFTkdUSCBieXRlcyBvZiBWQUwyJ3MgY29udGVudHMg c3RhcnRpbmcgYXQgT0ZGU0VUMi4KK0BAIC00NDUsNyArNDQ2LDcgQEAgZXh0ZXJuIHZvaWQgbWFy a192YWx1ZV9ieXRlc191bmF2YWlsYWJsZQorICAgIGV4YW1wbGUsIHRvIGNvbXBhcmUgYSBjb21w bGV0ZSBvYmplY3QgdmFsdWUgd2l0aCBpdHNlbGYsIGluY2x1ZGluZworICAgIGl0cyBlbmNsb3Np bmcgdHlwZSBjaHVuaywgeW91J2QgZG86CisgCistICAgICBpbnQgbGVuID0gVFlQRV9MRU5HVEgg KGNoZWNrX3R5cGVkZWYgKHZhbHVlX2VuY2xvc2luZ190eXBlICh2YWwpKSk7CisrICAgICBVTE9O R0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAoY2hlY2tfdHlwZWRlZiAodmFsdWVfZW5jbG9zaW5nX3R5 cGUgKHZhbCkpKTsKKyAgICAgIHZhbHVlX2F2YWlsYWJsZV9jb250ZW50cyAodmFsLCAwLCB2YWws IDAsIGxlbik7CisgCisgICAgUmV0dXJucyB0cnVlIGlmZiB0aGUgc2V0IG9mIGF2YWlsYWJsZSBj b250ZW50cyBtYXRjaC4gIFVuYXZhaWxhYmxlCitAQCAtNDY3LDkgKzQ2OCwxMCBAQCBleHRlcm4g dm9pZCBtYXJrX3ZhbHVlX2J5dGVzX3VuYXZhaWxhYmxlCisgICAgdmFsdWVfYXZhaWxhYmxlX2Nv bnRlbnRzX2VxKHZhbCwgMywgdmFsLCA0LCA0KSA9PiAwCisgKi8KKyAKKy1leHRlcm4gaW50IHZh bHVlX2F2YWlsYWJsZV9jb250ZW50c19lcSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWwxLCBpbnQg b2Zmc2V0MSwKKy0JCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMiwgaW50IG9mZnNldDIsCist CQkJCQlpbnQgbGVuZ3RoKTsKKytleHRlcm4gaW50IHZhbHVlX2F2YWlsYWJsZV9jb250ZW50c19l cSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWwxLAorKwkJCQkJTE9OR0VTVCBvZmZzZXQxLAorKwkJ CQkJY29uc3Qgc3RydWN0IHZhbHVlICp2YWwyLAorKwkJCQkJTE9OR0VTVCBvZmZzZXQyLCBMT05H RVNUIGxlbmd0aCk7CisgCisgLyogUmVhZCBMRU5HVEggYnl0ZXMgb2YgbWVtb3J5IHN0YXJ0aW5n IGF0IE1FTUFERFIgaW50byBCVUZGRVIsIHdoaWNoCisgICAgaXMgKG9yIHdpbGwgYmUgY29waWVk IHRvKSBWQUwncyBjb250ZW50cyBidWZmZXIgb2Zmc2V0IGJ5CitAQCAtNDc4LDcgKzQ4MCw3IEBA IGV4dGVybiBpbnQgdmFsdWVfYXZhaWxhYmxlX2NvbnRlbnRzX2VxICgKKyAgICBtZW1vcnkgaXMg bGlrZXdpc2UgdW5hdmFpbGFibGUuICBTVEFDSyBpbmRpY2F0ZXMgd2hldGhlciB0aGUgbWVtb3J5 CisgICAgaXMga25vd24gdG8gYmUgc3RhY2sgbWVtb3J5LiAgKi8KKyAKKy1leHRlcm4gdm9pZCBy ZWFkX3ZhbHVlX21lbW9yeSAoc3RydWN0IHZhbHVlICp2YWwsIGludCBlbWJlZGRlZF9vZmZzZXQs CisrZXh0ZXJuIHZvaWQgcmVhZF92YWx1ZV9tZW1vcnkgKHN0cnVjdCB2YWx1ZSAqdmFsLCBMT05H RVNUIGVtYmVkZGVkX29mZnNldCwKKyAJCQkgICAgICAgaW50IHN0YWNrLCBDT1JFX0FERFIgbWVt YWRkciwKKyAJCQkgICAgICAgZ2RiX2J5dGUgKmJ1ZmZlciwgc2l6ZV90IGxlbmd0aCk7CisgCitA QCAtNTA2LDcgKzUwOCw3IEBAIGV4dGVybiBDT1JFX0FERFIgdW5wYWNrX3BvaW50ZXIgKHN0cnVj dAorIAorIGV4dGVybiBpbnQgdW5wYWNrX3ZhbHVlX2JpdHNfYXNfbG9uZyAoc3RydWN0IHR5cGUg KmZpZWxkX3R5cGUsCisgCQkJCSAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJCQkg ICAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBpbnQgYml0cG9zLAorKwkJCQkgICAgICBMT05HRVNU IGVtYmVkZGVkX29mZnNldCwgaW50IGJpdHBvcywKKyAJCQkJICAgICAgaW50IGJpdHNpemUsCisg CQkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCisgCQkJCSAgICAg IExPTkdFU1QgKnJlc3VsdCk7CitAQCAtNTE1LDEyICs1MTcsMTIgQEAgZXh0ZXJuIExPTkdFU1Qg dW5wYWNrX2ZpZWxkX2FzX2xvbmcgKHN0cgorIAkJCQkgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxh ZGRyLAorIAkJCQkgICAgIGludCBmaWVsZG5vKTsKKyBleHRlcm4gaW50IHVucGFja192YWx1ZV9m aWVsZF9hc19sb25nIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIs CistCQkJCWludCBlbWJlZGRlZF9vZmZzZXQsIGludCBmaWVsZG5vLAorKwkJCQlMT05HRVNUIGVt YmVkZGVkX29mZnNldCwgaW50IGZpZWxkbm8sCisgCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs LCBMT05HRVNUICpyZXN1bHQpOworIAorIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2ZpZWxk X2JpdGZpZWxkIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGZpZWxkbm8sCisgCQkJCQkgICBjb25z dCBnZGJfYnl0ZSAqdmFsYWRkciwKKy0JCQkJCSAgIGludCBlbWJlZGRlZF9vZmZzZXQsCisrCQkJ CQkgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKKyAJCQkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsKTsKKyAKKyBleHRlcm4gdm9pZCBwYWNrX2xvbmcgKGdkYl9ieXRlICpidWYsIHN0cnVj dCB0eXBlICp0eXBlLCBMT05HRVNUIG51bSk7CitAQCAtNTc4LDEyICs1ODAsMTIgQEAgZXh0ZXJu IHN0cnVjdCB2YWx1ZSAqZGVmYXVsdF9yZWFkX3Zhcl92YQorIGV4dGVybiBzdHJ1Y3QgdmFsdWUg KmFsbG9jYXRlX3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSk7CisgZXh0ZXJuIHN0cnVjdCB2YWx1 ZSAqYWxsb2NhdGVfdmFsdWVfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUpOworIGV4dGVybiB2b2lk IGFsbG9jYXRlX3ZhbHVlX2NvbnRlbnRzIChzdHJ1Y3QgdmFsdWUgKnZhbHVlKTsKKy1leHRlcm4g dm9pZCB2YWx1ZV9jb250ZW50c19jb3B5IChzdHJ1Y3QgdmFsdWUgKmRzdCwgaW50IGRzdF9vZmZz ZXQsCistCQkJCSBzdHJ1Y3QgdmFsdWUgKnNyYywgaW50IHNyY19vZmZzZXQsCistCQkJCSBpbnQg bGVuZ3RoKTsKKy1leHRlcm4gdm9pZCB2YWx1ZV9jb250ZW50c19jb3B5X3JhdyAoc3RydWN0IHZh bHVlICpkc3QsIGludCBkc3Rfb2Zmc2V0LAorLQkJCQkgICAgIHN0cnVjdCB2YWx1ZSAqc3JjLCBp bnQgc3JjX29mZnNldCwKKy0JCQkJICAgICBpbnQgbGVuZ3RoKTsKKytleHRlcm4gdm9pZCB2YWx1 ZV9jb250ZW50c19jb3B5IChzdHJ1Y3QgdmFsdWUgKmRzdCwgc3NpemVfdCBkc3Rfb2Zmc2V0LAor KwkJCQkgc3RydWN0IHZhbHVlICpzcmMsIHNzaXplX3Qgc3JjX29mZnNldCwKKysJCQkJIHNzaXpl X3QgbGVuZ3RoKTsKKytleHRlcm4gdm9pZCB2YWx1ZV9jb250ZW50c19jb3B5X3JhdyAoc3RydWN0 IHZhbHVlICpkc3QsIHNzaXplX3QgZHN0X29mZnNldCwKKysJCQkJICAgICBzdHJ1Y3QgdmFsdWUg KnNyYywgc3NpemVfdCBzcmNfb2Zmc2V0LAorKwkJCQkgICAgIHNzaXplX3QgbGVuZ3RoKTsKKyAK KyBleHRlcm4gc3RydWN0IHZhbHVlICphbGxvY2F0ZV9yZXBlYXRfdmFsdWUgKHN0cnVjdCB0eXBl ICp0eXBlLCBpbnQgY291bnQpOworIAorQEAgLTY1NywxNiArNjU5LDE2IEBAIGV4dGVybiBpbnQg ZmluZF9vdmVybG9hZF9tYXRjaCAoc3RydWN0IHYKKyAKKyBleHRlcm4gc3RydWN0IHZhbHVlICp2 YWx1ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcxLCBpbnQgZmllbGRubyk7CisgCistZXh0ZXJu IHN0cnVjdCB2YWx1ZSAqdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEs IGludCBvZmZzZXQsCisrZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfcHJpbWl0aXZlX2ZpZWxk IChzdHJ1Y3QgdmFsdWUgKmFyZzEsIExPTkdFU1Qgb2Zmc2V0LAorIAkJCQkJICAgIGludCBmaWVs ZG5vLAorIAkJCQkJICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZSk7CisgCisgCistZXh0ZXJuIHN0 cnVjdCB0eXBlICp2YWx1ZV9ydHRpX2luZGlyZWN0X3R5cGUgKHN0cnVjdCB2YWx1ZSAqLCBpbnQg KiwgaW50ICosCisrZXh0ZXJuIHN0cnVjdCB0eXBlICp2YWx1ZV9ydHRpX2luZGlyZWN0X3R5cGUg KHN0cnVjdCB2YWx1ZSAqLCBpbnQgKiwgTE9OR0VTVCAqLAorIAkJCQkJICAgICAgaW50ICopOwor IAorIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2Z1bGxfb2JqZWN0IChzdHJ1Y3QgdmFsdWUg Kiwgc3RydWN0IHR5cGUgKiwgaW50LAorLQkJCQkJaW50LCBpbnQpOworKwkJCQkJTE9OR0VTVCwg aW50KTsKKyAKKyBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9jYXN0X3BvaW50ZXJzIChzdHJ1 Y3QgdHlwZSAqLCBzdHJ1Y3QgdmFsdWUgKiwgaW50KTsKKyAKK0BAIC03NTYsNyArNzU4LDcgQEAg ZXh0ZXJuIHZvaWQgc2V0X2ludGVybmFsdmFyX3N0cmluZyAoc3RydQorIGV4dGVybiB2b2lkIGNs ZWFyX2ludGVybmFsdmFyIChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhcik7CisgCisgZXh0ZXJuIHZv aWQgc2V0X2ludGVybmFsdmFyX2NvbXBvbmVudCAoc3RydWN0IGludGVybmFsdmFyICp2YXIsCist CQkJCSAgICAgICBpbnQgb2Zmc2V0LAorKwkJCQkgICAgICAgTE9OR0VTVCBvZmZzZXQsCisgCQkJ CSAgICAgICBpbnQgYml0cG9zLCBpbnQgYml0c2l6ZSwKKyAJCQkJICAgICAgIHN0cnVjdCB2YWx1 ZSAqbmV3dmFsdWUpOworIAorQEAgLTgzOCw3ICs4NDAsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVl ICp2YWx1ZV94X3Vub3AgKHN0cnVjCisgCQkJCSAgIGVudW0gbm9zaWRlIG5vc2lkZSk7CisgCisg ZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKmFyZzFw LCBzdHJ1Y3QgZm5fZmllbGQgKmYsCistCQkJCSAgICAgaW50IGosIHN0cnVjdCB0eXBlICp0eXBl LCBpbnQgb2Zmc2V0KTsKKysJCQkJICAgICBpbnQgaiwgc3RydWN0IHR5cGUgKnR5cGUsIExPTkdF U1Qgb2Zmc2V0KTsKKyAKKyBleHRlcm4gaW50IGJpbm9wX3R5cGVzX3VzZXJfZGVmaW5lZF9wIChl bnVtIGV4cF9vcGNvZGUgb3AsCisgCQkJCSAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZTEsCitAQCAt ODY2LDcgKzg2OCw4IEBAIGV4dGVybiB2b2lkIHJlbGVhc2VfdmFsdWVfb3JfaW5jcmVmIChzdHIK KyBleHRlcm4gaW50IHJlY29yZF9sYXRlc3RfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsKTsKKyAK KyBleHRlcm4gdm9pZCBtb2RpZnlfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBnZGJfYnl0ZSAq YWRkciwKKy0JCQkgIExPTkdFU1QgZmllbGR2YWwsIGludCBiaXRwb3MsIGludCBiaXRzaXplKTsK KysJCQkgIExPTkdFU1QgZmllbGR2YWwsIExPTkdFU1QgYml0cG9zLAorKwkJCSAgaW50IGJpdHNp emUpOworIAorIGV4dGVybiB2b2lkIHR5cGVfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25z dCBjaGFyICp2YXJzdHJpbmcsCisgCQkJc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHNob3cp OworQEAgLTg5Niw3ICs4OTksNyBAQCBleHRlcm4gdm9pZCB2YWx1ZV9wcmludF9hcnJheV9lbGVt ZW50cyAoCisgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfcmVsZWFzZV90b19tYXJrIChzdHJ1 Y3QgdmFsdWUgKm1hcmspOworIAorIGV4dGVybiB2b2lkIHZhbF9wcmludCAoc3RydWN0IHR5cGUg KnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJICAgICAgIGludCBlbWJlZGRlZF9v ZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAorKwkJICAgICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zm c2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKyAJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LCBpbnQgcmVjdXJzZSwKKyAJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJCSAg ICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKK0BAIC05NDcs MTAgKzk1MCwxMSBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9saXRlcmFsX2NvbXBsCisg ZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqZmluZF9mdW5jdGlvbl9pbl9pbmZlcmlvciAoY29uc3QgY2hh ciAqLAorIAkJCQkJCXN0cnVjdCBvYmpmaWxlICoqKTsKKyAKKy1leHRlcm4gc3RydWN0IHZhbHVl ICp2YWx1ZV9hbGxvY2F0ZV9zcGFjZV9pbl9pbmZlcmlvciAoaW50KTsKKytleHRlcm4gc3RydWN0 IHZhbHVlICp2YWx1ZV9hbGxvY2F0ZV9zcGFjZV9pbl9pbmZlcmlvciAoTE9OR0VTVCk7CisgCisg ZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChzdHJ1Y3QgdmFs dWUgKmFycmF5LAorLQkJCQkJICAgICAgIExPTkdFU1QgaW5kZXgsIGludCBsb3dlcmJvdW5kKTsK KysJCQkJCSAgICAgICBMT05HRVNUIGluZGV4LAorKwkJCQkJICAgICAgIExPTkdFU1QgbG93ZXJi b3VuZCk7CisgCisgLyogVXNlciBmdW5jdGlvbiBoYW5kbGVyLiAgKi8KKyAKCmRpZmYgLS1naXQg YS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjFvZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0 cG9zLTIxb2YyNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYWVh NWVmCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIxb2YyNS5wYXRj aApAQCAtMCwwICsxLDIyNCBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVz LzIwMTItMDkvbXNnMDA2MzIuaHRtbAorU3ViamVjdDogW1BBVENIIDIvNF0gQWRkIGEgY2hlY2sg dG8gZW5zdXJlIHRoYXQgYSB0eXBlIG1heSBmaXQgaW50byBob3N0IG1lbW9yeQorCisKKy0tTVBf L1BuTDZsM0xVc1hXcFovb2xxYXdXbHpiCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9VVMtQVNDSUkKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKK0NvbnRlbnQtRGlz cG9zaXRpb246IGlubGluZQorCitIaSwKKworVGhpcyBpcyBwYXJ0IHR3byBvZiB0aGUgYml0cG9z IGV4cGFuc2lvbiBwYXRjaC4gIFRoaXMgaW1wbGVtZW50cyBjaGVja3MKK2luIHNvbWUgcGxhY2Vz IGluIHRoZSBjb2RlIHRvIGVuc3VyZSB0aGF0IGEgdHlwZSBzaXplIGluIFVMT05HRVNUIGlzCitz bWFsbCBlbm91Z2ggdG8gZml0IGludG8gaG9zdCBtZW1vcnkuICBUZXN0ZWQgZm9yIHJlZ3Jlc3Np b25zIG9uIHg4Nl82NAorRmVkb3JhIDE2LgorCitSZWdhcmRzLAorU2lkZGhlc2gKKworLS1NUF8v UG5MNmwzTFVzWFdwWi9vbHFhd1dsemIKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgorQ29udGVu dC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQorQ29udGVudC1EaXNwb3NpdGlv bjogYXR0YWNobWVudDsgZmlsZW5hbWU9Q2hhbmdlTG9nLWVuc3VyZV9zaXpldAorCitnZGIvQ2hh bmdlTG9nCisKKwkqIGFscGhhLXRkZXAuYyAoYWxwaGFfcHVzaF9kdW1teV9jYWxsKSBDaGVjayBm b3IgdW5kZXJmbG93IGluCisJU1AuCisJKiBjcC12YWxwcmludCAoY3BfcHJpbnRfdmFsdWUpOiBF bnN1cmUgQkFTRUNMQVNTIGZpdHMgaW50bworCXNpemVfdC4KKwkqIGR3YXJmMmxvYy5jIChyZWFk X3BpZWNlZF92YWx1ZSk6IEVuc3VyZSB0aGF0IFRISVNfU0laRSBmaXRzCisJaW50byBzaXplX3Qu CisJKHdyaXRlX3BpZWNlZF92YWx1ZSk6IExpa2V3aXNlLgorCSogZmluZGNtZC5jIChwYXJzZV9m aW5kX2FyZ3MpOiBFbnN1cmUgUEFUVEVSTl9CVUZfU0laRSBmaXRzIGludG8KKwlzaXplX3QuCisJ KiBwLXZhbHByaW50IChwYXNjYWxfb2JqZWN0X3ByaW50X3ZhbHVlKTogRW5zdXJlIEJBU0VDTEFT UyBmaXRzCisJaW50byBzaXplX3QuCisJKiB1dGlscy5jICh1bG9uZ2VzdF9maXRzX2hvc3Rfb3Jf ZXJyb3IpOiBOZXcgZnVuY3Rpb24gdG8gZmluZCBpZgorCWEgVUxPTkdFU1QgbnVtYmVyIGZpdHMg aW50byBzaXplX3QuCisJKiB1dGlscy5oOiBEZWNsYXJlIHVsb25nZXN0X2ZpdHNfaG9zdF9vcl9l cnJvci4KKwkqIHZhbG9wcy5jIChzZWFyY2hfc3RydWN0X21ldGhvZCk6IEVuc3VyZSBCQVNFQ0xB U1MgZml0cyBpbnRvCisJc2l6ZV90LgorCSogdmFsdWUuYyAoYWxsb2NhdGVfdmFsdWVfbGF6eSk6 IEVuc3VyZSBUWVBFIGZpdHMgaW50byBzaXplX3QuCisJKGFsbG9jYXRlX3ZhbHVlX2NvbnRlbnRz KTogTGlrZXdpc2UuCisJKHNldF92YWx1ZV9lbmNsb3NpbmdfdHlwZSk6IEVuc3VyZSBORVdfRU5D TF9UWVBFIGZpdHMgaW50bworCXNpemVfdC4KKwkqIHZheC10ZGVwLmMgKHZheF9yZXR1cm5fdmFs dWUpOiBFbnN1cmUgdGhhdCBUWVBFIGZpdHMgaW50bworCXNpemVfdC4KKworLS1NUF8vUG5MNmwz TFVzWFdwWi9vbHFhd1dsemIKK0NvbnRlbnQtVHlwZTogdGV4dC94LXBhdGNoCitDb250ZW50LVRy YW5zZmVyLUVuY29kaW5nOiA3Yml0CitDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBm aWxlbmFtZT1iaXRwb3MtZW5zdXJlLXNpemVfdC5wYXRjaAorCitJbmRleDogZ2RiLTcuNS4wLjIw MTIwOTI2L2dkYi9hbHBoYS10ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5 MjYub3JpZy9nZGIvYWxwaGEtdGRlcC5jCTIwMTItMTEtMDcgMjI6MDM6NTcuMDAwMDAwMDAwICsw MTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9hbHBoYS10ZGVwLmMJMjAxMi0xMS0wNyAy Mjo0NjowMC4wNDI5MDIzODIgKzAxMDAKK0BAIC00MTQsNiArNDE0LDEzIEBAIGFscGhhX3B1c2hf ZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKKyAgICAgYWNjdW11bGF0ZV9zaXplID0gMDsK KyAgIGVsc2UKKyAgICAgYWNjdW11bGF0ZV9zaXplIC09IHNpemVvZihhcmdfcmVnX2J1ZmZlcik7 CisrCisrICAvKiBDaGVjayBmb3IgdW5kZXJmbG93LiAgKi8KKysgIGlmIChzcCAtIGFjY3VtdWxh dGVfc2l6ZSA+IHNwKQorKyAgICBlcnJvciAoXygiSW5zdWZmaWNpZW50IG1lbW9yeSBpbiBHREIg aG9zdCBmb3IgYXJndW1lbnRzLCAiCisrCSAgICAgIm5lZWQgJXMgYnl0ZXMsIGJ1dCBsZXNzIHRo YW4gJXMgYnl0ZXMgYXZhaWxhYmxlLiIpLAorKwkgICBwbG9uZ2VzdCAoYWNjdW11bGF0ZV9zaXpl KSwgcGxvbmdlc3QgKENPUkVfQUREUl9NQVggLSBzcCkpOworKworICAgc3AgLT0gYWNjdW11bGF0 ZV9zaXplOworIAorICAgLyogS2VlcCBzcCBhbGlnbmVkIHRvIGEgbXVsdGlwbGUgb2YgMTYgYXMg dGhlIEFCSSByZXF1aXJlcy4gICovCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9jcC12 YWxwcmludC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2Nw LXZhbHByaW50LmMJMjAxMi0xMS0wNyAyMjoxMjoxNC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGIt Ny41LjAuMjAxMjA5MjYvZ2RiL2NwLXZhbHByaW50LmMJMjAxMi0xMS0wNyAyMjo0NjowMC4wNDM5 MDIzODEgKzAxMDAKK0BAIC01NjEsNiArNTYxLDggQEAgY3BfcHJpbnRfdmFsdWUgKHN0cnVjdCB0 eXBlICp0eXBlLCBzdHJ1YworIAkJICBnZGJfYnl0ZSAqYnVmOworIAkJICBzdHJ1Y3QgY2xlYW51 cCAqYmFja190bzsKKyAKKysJCSAgdWxvbmdlc3RfZml0c19ob3N0X29yX2Vycm9yIChUWVBFX0xF TkdUSCAoYmFzZWNsYXNzKSk7CisrCisgCQkgIGJ1ZiA9IHhtYWxsb2MgKFRZUEVfTEVOR1RIIChi YXNlY2xhc3MpKTsKKyAJCSAgYmFja190byA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGJ1Zik7Cisg CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9kd2FyZjJsb2MuYworPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9kd2FyZjJsb2MuYwkyMDEyLTExLTA3IDIy OjA5OjI5LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZHdhcmYy bG9jLmMJMjAxMi0xMS0wNyAyMjo0NjowMC4wNzA5MDIzNDIgKzAxMDAKK0BAIC0xNzg0LDYgKzE3 ODQsOCBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAorICAgICAgIHRo aXNfc2l6ZSA9ICh0aGlzX3NpemVfYml0cyArIHNvdXJjZV9vZmZzZXRfYml0cyAlIDggKyA3KSAv IDg7CisgICAgICAgc291cmNlX29mZnNldCA9IHNvdXJjZV9vZmZzZXRfYml0cyAvIDg7CisrICAg ICAgdWxvbmdlc3RfZml0c19ob3N0X29yX2Vycm9yICh0aGlzX3NpemUpOworKworICAgICAgIGlm IChidWZmZXJfc2l6ZSA8IHRoaXNfc2l6ZSkKKyAJeworIAkgIGJ1ZmZlcl9zaXplID0gdGhpc19z aXplOworQEAgLTE5NzUsNiArMTk3Nyw3IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZh bHVlICp0bywgc3QKKyAJfQorICAgICAgIGVsc2UKKyAJeworKwkgIHVsb25nZXN0X2ZpdHNfaG9z dF9vcl9lcnJvciAodGhpc19zaXplKTsKKyAJICBpZiAoYnVmZmVyX3NpemUgPCB0aGlzX3NpemUp CisgCSAgICB7CisgCSAgICAgIGJ1ZmZlcl9zaXplID0gdGhpc19zaXplOworSW5kZXg6IGdkYi03 LjUuMC4yMDEyMDkyNi9nZGIvZmluZGNtZC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIw MTIwOTI2Lm9yaWcvZ2RiL2ZpbmRjbWQuYwkyMDEyLTExLTA3IDIyOjAzOjU3LjAwMDAwMDAwMCAr MDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZmluZGNtZC5jCTIwMTItMTEtMDcgMjI6 NDY6MDAuMTUzOTAyMjQ5ICswMTAwCitAQCAtMTg3LDYgKzE4Nyw3IEBAIHBhcnNlX2ZpbmRfYXJn cyAoY2hhciAqYXJncywgVUxPTkdFU1QgKm0KKyAJICBzaXplX3QgY3VycmVudF9vZmZzZXQgPSBw YXR0ZXJuX2J1Zl9lbmQgLSBwYXR0ZXJuX2J1ZjsKKyAKKyAJICBwYXR0ZXJuX2J1Zl9zaXplID0g cGF0dGVybl9idWZfc2l6ZV9uZWVkICogMjsKKysJICB1bG9uZ2VzdF9maXRzX2hvc3Rfb3JfZXJy b3IgKHBhdHRlcm5fYnVmX3NpemUpOworIAkgIHBhdHRlcm5fYnVmID0geHJlYWxsb2MgKHBhdHRl cm5fYnVmLCBwYXR0ZXJuX2J1Zl9zaXplKTsKKyAJICBwYXR0ZXJuX2J1Zl9lbmQgPSBwYXR0ZXJu X2J1ZiArIGN1cnJlbnRfb2Zmc2V0OworIAl9CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dk Yi9wLXZhbHByaW50LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9n ZGIvcC12YWxwcmludC5jCTIwMTItMTEtMDcgMjI6MDk6MjkuMDAwMDAwMDAwICswMTAwCisrKysg Z2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9wLXZhbHByaW50LmMJMjAxMi0xMS0wNyAyMjo0NjowMC4x NjM5MDIyMDggKzAxMDAKK0BAIC04MjcsNiArODI3LDcgQEAgcGFzY2FsX29iamVjdF9wcmludF92 YWx1ZSAoc3RydWN0IHR5cGUgKgorIAkgICAgICBnZGJfYnl0ZSAqYnVmOworIAkgICAgICBzdHJ1 Y3QgY2xlYW51cCAqYmFja190bzsKKyAKKysJICAgICAgdWxvbmdlc3RfZml0c19ob3N0X29yX2Vy cm9yIChUWVBFX0xFTkdUSCAoYmFzZWNsYXNzKSk7CisgCSAgICAgIGJ1ZiA9IHhtYWxsb2MgKFRZ UEVfTEVOR1RIIChiYXNlY2xhc3MpKTsKKyAJICAgICAgYmFja190byA9IG1ha2VfY2xlYW51cCAo eGZyZWUsIGJ1Zik7CisgCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi91dGlscy5jCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3V0aWxzLmMJMjAxMi0x MS0wNyAyMjowMDo0My4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2Ri L3V0aWxzLmMJMjAxMi0xMS0wNyAyMjo0NjowMC4xNjY5MDIyMDIgKzAxMDAKK0BAIC0zMTM1LDYg KzMxMzUsMTggQEAgaG9zdF9hZGRyZXNzX3RvX3N0cmluZyAoY29uc3Qgdm9pZCAqYWRkcgorICAg cmV0dXJuIHN0cjsKKyB9CisgCisrLyogRW5zdXJlIHRoYXQgdGhlIGlucHV0IE5VTSBpcyBub3Qg bGFyZ2VyIHRoYW4gdGhlIG1heGltdW0gY2FwYWNpdHkgb2YgdGhlCisrICAgaG9zdCBzeXN0ZW0u ICBXZSBjaG9vc2UgU0laRV9NQVggLyA4IGFzIGEgY29uc2VydmF0aXZlIGVzdGltYXRlIG9mIHRo ZSBzaXplCisrICAgb2YgYSByZXNvdXJjZSB0aGF0IGEgc3lzdGVtIG1heSBhbGxvY2F0ZS4gICov Cisrdm9pZAorK3Vsb25nZXN0X2ZpdHNfaG9zdF9vcl9lcnJvciAoVUxPTkdFU1QgbnVtKQorK3sK KysgIGlmIChudW0gPiBTSVpFX01BWCAvIDgpCisrICAgIGVycm9yIChfKCJJbnN1ZmZpY2llbnQg bWVtb3J5IGluIGhvc3QgR0RCIGZvciBvYmplY3Qgb2Ygc2l6ZSAlcyBieXRlcywgIgorKwkgICAg ICJtYXhpbXVtIGFsbG93ZWQgJXMgYnl0ZXMuIiksIHB1bG9uZ2VzdCAobnVtKSwKKysJICAgcHVs b25nZXN0IChTSVpFX01BWCAvIDgpKTsKKyt9CisrCisgY2hhciAqCisgZ2RiX3JlYWxwYXRoIChj b25zdCBjaGFyICpmaWxlbmFtZSkKKyB7CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi92 YWxvcHMuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi92YWxv cHMuYwkyMDEyLTExLTA3IDIyOjA5OjMwLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4y MDEyMDkyNi9nZGIvdmFsb3BzLmMJMjAxMi0xMS0wNyAyMjo0NjowMC4xODE5MDIxODEgKzAxMDAK K0BAIC0yMzgzLDYgKzIzODMsNyBAQCBzZWFyY2hfc3RydWN0X21ldGhvZCAoY29uc3QgY2hhciAq bmFtZSwKKyAJICAgICAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87CisgCSAgICAgIENPUkVfQURE UiBhZGRyZXNzOworIAorKwkgICAgICB1bG9uZ2VzdF9maXRzX2hvc3Rfb3JfZXJyb3IgKFRZUEVf TEVOR1RIIChiYXNlY2xhc3MpKTsKKyAJICAgICAgdG1wID0geG1hbGxvYyAoVFlQRV9MRU5HVEgg KGJhc2VjbGFzcykpOworIAkgICAgICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgdG1w KTsKKyAJICAgICAgYWRkcmVzcyA9IHZhbHVlX2FkZHJlc3MgKCphcmcxcCk7CitJbmRleDogZ2Ri LTcuNS4wLjIwMTIwOTI2L2dkYi92YWx1ZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIw MTIwOTI2Lm9yaWcvZ2RiL3ZhbHVlLmMJMjAxMi0xMS0wNyAyMjowOTozMC4wMDAwMDAwMDAgKzAx MDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3ZhbHVlLmMJMjAxMi0xMS0wNyAyMjo0Njow MC4xODQ5MDIxNzYgKzAxMDAKK0BAIC02NjMsNiArNjYzLDcgQEAgYWxsb2NhdGVfdmFsdWVfbGF6 eSAoc3RydWN0IHR5cGUgKnR5cGUpCisgICAgICBkZXNjcmlwdGlvbiBjb3JyZWN0bHkuICAqLwor ICAgY2hlY2tfdHlwZWRlZiAodHlwZSk7CisgCisrICB1bG9uZ2VzdF9maXRzX2hvc3Rfb3JfZXJy b3IgKFRZUEVfTEVOR1RIICh0eXBlKSk7CisgICB2YWwgPSAoc3RydWN0IHZhbHVlICopIHh6YWxs b2MgKHNpemVvZiAoc3RydWN0IHZhbHVlKSk7CisgICB2YWwtPmNvbnRlbnRzID0gTlVMTDsKKyAg IHZhbC0+bmV4dCA9IGFsbF92YWx1ZXM7CitAQCAtNjk0LDYgKzY5NSw4IEBAIGFsbG9jYXRlX3Zh bHVlX2xhenkgKHN0cnVjdCB0eXBlICp0eXBlKQorIHZvaWQKKyBhbGxvY2F0ZV92YWx1ZV9jb250 ZW50cyAoc3RydWN0IHZhbHVlICp2YWwpCisgeworKyAgdWxvbmdlc3RfZml0c19ob3N0X29yX2Vy cm9yIChUWVBFX0xFTkdUSCAodmFsLT5lbmNsb3NpbmdfdHlwZSkpOworKworICAgaWYgKCF2YWwt PmNvbnRlbnRzKQorICAgICB2YWwtPmNvbnRlbnRzID0gKGdkYl9ieXRlICopIHh6YWxsb2MgKFRZ UEVfTEVOR1RIICh2YWwtPmVuY2xvc2luZ190eXBlKSk7CisgfQorQEAgLTI2NjIsOCArMjY2NSwx MiBAQCB2b2lkCisgc2V0X3ZhbHVlX2VuY2xvc2luZ190eXBlIChzdHJ1Y3QgdmFsdWUgKnZhbCwg c3RydWN0IHR5cGUgKm5ld19lbmNsX3R5cGUpCisgeworICAgaWYgKFRZUEVfTEVOR1RIIChuZXdf ZW5jbF90eXBlKSA+IFRZUEVfTEVOR1RIICh2YWx1ZV9lbmNsb3NpbmdfdHlwZSAodmFsKSkpIAor LSAgICB2YWwtPmNvbnRlbnRzID0KKy0gICAgICAoZ2RiX2J5dGUgKikgeHJlYWxsb2MgKHZhbC0+ Y29udGVudHMsIFRZUEVfTEVOR1RIIChuZXdfZW5jbF90eXBlKSk7CisrICAgIHsKKysgICAgICB1 bG9uZ2VzdF9maXRzX2hvc3Rfb3JfZXJyb3IgKFRZUEVfTEVOR1RIIChuZXdfZW5jbF90eXBlKSk7 CisrCisrICAgICAgdmFsLT5jb250ZW50cyA9CisrCShnZGJfYnl0ZSAqKSB4cmVhbGxvYyAodmFs LT5jb250ZW50cywgVFlQRV9MRU5HVEggKG5ld19lbmNsX3R5cGUpKTsKKysgICAgfQorIAorICAg dmFsLT5lbmNsb3NpbmdfdHlwZSA9IG5ld19lbmNsX3R5cGU7CisgfQorSW5kZXg6IGdkYi03LjUu MC4yMDEyMDkyNi9nZGIvdmF4LXRkZXAuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEy MDkyNi5vcmlnL2dkYi92YXgtdGRlcC5jCTIwMTItMTEtMDcgMjI6MDk6MjQuMDAwMDAwMDAwICsw MTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi92YXgtdGRlcC5jCTIwMTItMTEtMDcgMjI6 NDY6NTYuODEwODE5ODc4ICswMTAwCitAQCAtMjIzLDYgKzIyMyw3IEBAIHZheF9yZXR1cm5fdmFs dWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmMKKyAJICBVTE9OR0VTVCBhZGRyOworIAorIAkgIHJl Z2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgVkFYX1IwX1JFR05VTSwgJmFkZHIp OworKwkgIHVsb25nZXN0X2ZpdHNfaG9zdF9vcl9lcnJvciAoVFlQRV9MRU5HVEggKHR5cGUpKTsK KyAJICByZWFkX21lbW9yeSAoYWRkciwgcmVhZGJ1ZiwgVFlQRV9MRU5HVEggKHR5cGUpKTsKKyAJ fQorIAorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZGVmcy5oCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2RlZnMuaAkyMDEyLTExLTA3IDIyOjAwOjQz LjExMTkwNjEwOSArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvZGVmcy5oCTIwMTIt MTEtMDcgMjI6NDc6NDYuMDAxMDAxMjM5ICswMTAwCitAQCAtMTE3MCw0ICsxMTcwLDYgQEAgZW51 bSBibG9ja19lbnVtCisgICBGSVJTVF9MT0NBTF9CTE9DSyA9IDIKKyB9OworIAorK2V4dGVybiB2 b2lkIHVsb25nZXN0X2ZpdHNfaG9zdF9vcl9lcnJvciAoVUxPTkdFU1QgbnVtKTsKKysKKyAjZW5k aWYgLyogI2lmbmRlZiBERUZTX0ggKi8KCmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRw b3MtMjJvZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIyb2YyNS5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDc3ZjAzCi0tLSAvZGV2L251bGwKKysr IGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIyb2YyNS5wYXRjaApAQCAtMCwwICsxLDcwMSBAQAor aHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTItMDkvbXNnMDA2MjkuaHRt bAorU3ViamVjdDogW1BBVENIIDMvNF0gRXhwYW5kIHdhdGNocG9pbnQgbGVuZ3RocyB0byBMT05H RVNUCisKKworLS1NUF8vNkhSbEg2dnB5cXRTeTRDWXlNclg2YjIKK0NvbnRlbnQtVHlwZTogdGV4 dC9wbGFpbjsgY2hhcnNldD1VUy1BU0NJSQorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2Jp dAorQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lCisKK0hpLAorCitUaGlzIGlzIHBhcnQgdGhy ZWUgb2YgdGhlIGJpdHBvcyBleHBhbnNpb24gY2hhbmdlLiAgU29tZSBhcmNoaXRlY3R1cmVzCith bGxvdyBhcmJpdHJhcnkgbGVuZ3RoIHdhdGNocG9pbnRzIGFuZCBjb21iaW5lZCB3aXRoIHRoZSBm YWN0IHRoYXQgdHlwZQorbGVuZ3RocyBjb3VsZCBiZSBsYXJnZSBlbm91Z2gsIHdlIG5lZWQgTE9O R0VTVCBmb3Igd2F0Y2hwb2ludCBsZW5ndGhzLgorSXQgaXMgYXJjaGl0ZWN0dXJlIGRlcGVuZGVu dCBob3dldmVyLCB3aGV0aGVyIHRoZSBMT05HRVNUIGlzIG5lZWRlZCBvcgorbm90LiAgVGhpcyBw YXRjaCB1cGRhdGVzIHRoZSBzaWduYXR1cmVzIG9mIHdhdGNocG9pbnQgaW5zZXJ0aW9uIGFuZAor cmVtb3ZhbCBmdW5jdGlvbnMgb2YgYWxsIGFyY2hpdGVjdHVyZXMgKHRvIGNvbXBseSB3aXRoIHRo ZSBmdW5jdGlvbgorc2lnbmF0dXJlcyBpbiB0aGUgY2FsbGJhY2sgc3RydWN0KSwgYnV0IGV4cGFu ZHMgdHlwZXMgb25seSBpbgorYXJjaGl0ZWN0dXJlcyB0aGF0IG5lZWQgaXQuICBUZXN0ZWQgb24g RmVkb3JhIDE2IHg4Nl82NC4KKworUmVnYXJkcywKK1NpZGRoZXNoCistLU1QXy82SFJsSDZ2cHlx dFN5NENZeU1yWDZiMgorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCitDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCitDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2ht ZW50OyBmaWxlbmFtZT1DaGFuZ2VMb2ctd3AKKworZ2RiL0NoYW5nZUxvZzoKKworCSogYXJtLWxp bnV4LW5hdC5jIChhcm1fbGludXhfaW5zZXJ0X3dhdGNocG9pbnQpOiBFeHBhbmQKKwlwYXJhbWV0 ZXIgTEVOIHRvIExPTkdFU1QuCisJKGFybV9saW51eF9yZW1vdmVfd2F0Y2hwb2ludCk6IExpa2V3 aXNlLgorCShhcm1fbGludXhfd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSk6IEV4cGFuZCBw YXJhbWV0ZXIKKwlMRU5HVEggdG8gTE9OR0VTVC4KKwkqIGkzODYtbmF0LmMgKGkzODZfaW5zZXJ0 X3dhdGNocG9pbnQpOiBFeHBhbmQgcGFyYW1ldGVyIExFTiB0bworCUxPTkdFU1QuCisJKGkzODZf cmVtb3ZlX3dhdGNocG9pbnQpOiBMaWtld2lzZS4KKwkqIGlhNjQtbGludXgtbmF0LmMgKGlhNjRf bGludXhfaW5zZXJ0X3dhdGNocG9pbnQpOiBMaWtld2lzZS4KKwkoaWE2NF9saW51eF9yZW1vdmVf d2F0Y2hwb2ludCk6IExpa2V3aXNlLgorCSogaW5mLXR0cmFjZS5jIChpbmZfdHRyYWNlX2luc2Vy dF93YXRjaHBvaW50KTogTGlrZXdpc2UuCisJRXhwYW5kIE5VTV9QQUdFUywgUEFHRSB0byBMT05H RVNULgorCShpbmZfdHRyYWNlX3JlbW92ZV93YXRjaHBvaW50KTogTGlrZXdpc2UuCisJKiBtaXBz LWxpbnV4LW5hdC5jIChtaXBzX2xpbnV4X2luc2VydF93YXRjaHBvaW50KTogRXhwYW5kCisJcGFy YW1ldGVyIExFTiB0byBMT05HRVNULgorCShtaXBzX2xpbnV4X3JlbW92ZV93YXRjaHBvaW50KTog TGlrZXdpc2UuCisJKiBudG8tcHJvY2ZzLmMgKHByb2Nmc19yZW1vdmVfaHdfd2F0Y2hwb2ludCk6 IExpa2V3aXNlLgorCShwcm9jZnNfaW5zZXJ0X2h3X3dhdGNocG9pbnQpOiBMaWtld2lzZS4KKwkq IHBwYy1saW51eC1uYXQuYyAoY2FsY3VsYXRlX2R2Yyk6IExpa2V3aXNlLiAgRXhwYW5kIEksCisJ TlVNX0JZVEVfRU5BQkxFIHRvIExPTkdFU1QuCisJKGNoZWNrX2NvbmRpdGlvbik6IEV4cGFuZCBw YXJhbWV0ZXIgTEVOIHRvIHBvaW50IHRvIExPTkdFU1QuCisJKHBwY19saW51eF9jYW5fYWNjZWxf d2F0Y2hwb2ludF9jb25kaXRpb24pOiBFeHBhbmQgcGFyYW1ldGVyCisJTEVOIHRvIExPTkdFU1Qu CisJKGNyZWF0ZV93YXRjaHBvaW50X3JlcXVlc3QpOiBMaWtld2lzZS4KKwkocHBjX2xpbnV4X2lu c2VydF93YXRjaHBvaW50KTogTGlrZXdpc2UuCisJKHBwY19saW51eF9yZW1vdmVfd2F0Y2hwb2lu dCk6IExpa2V3aXNlLgorCShwcGNfbGludXhfd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSk6 IEV4cGFuZCBwYXJhbWV0ZXIKKwlMRU5HVEggdG8gTE9OR0VTVC4KKwkqIHByb2Nmcy5jIChwcm9j X3NldF93YXRjaHBvaW50KTogRXhwYW5kIHBhcmFtZXRlciBMRU4gdG8KKwlMT05HRVNULgorCShw cm9jZnNfc2V0X3dhdGNocG9pbnQpOiBMaWtld2lzZS4KKwkocHJvY2ZzX2luc2VydF93YXRjaHBv aW50KTogTGlrZXdpc2UuCisJKHByb2Nmc19yZW1vdmVfd2F0Y2hwb2ludCk6IExpa2V3aXNlLgor CSogcmVtb3RlLW0zMnItc2RpLmMgKG0zMnJfaW5zZXJ0X3dhdGNocG9pbnQpOiBMaWtld2lzZS4g IFVzZQorCXBsb25nZXN0IHRvIGZvcm1hdCBwcmludCBMRU4uCisJKG0zMnJfcmVtb3ZlX3dhdGNo cG9pbnQpOiBMaWtld2lzZS4KKwkqIHJlbW90ZS1taXBzLmMgKG1pcHNfaW5zZXJ0X3dhdGNocG9p bnQpOiBFeHBhbmQgcGFyYW1ldGVyIExFTgorCXRvIExPTkdFU1QuCisJKG1pcHNfcmVtb3ZlX3dh dGNocG9pbnQpOiBMaWtld2lzZS4KKwkqIHJlbW90ZS5jIChyZW1vdGVfaW5zZXJ0X3dhdGNocG9p bnQpOiBMaWtld2lzZS4KKwlVc2UgcGhleF9ueiB0byBmb3JtYXQgcHJpbnQgTEVOLgorCShyZW1v dGVfcmVtb3ZlX3dhdGNocG9pbnQpOiBMaWtld2lzZS4KKwkocmVtb3RlX3dhdGNocG9pbnRfYWRk cl93aXRoaW5fcmFuZ2UpOiBFeHBhbmQgcGFyYW1ldGVyIExFTkdUSAorCXRvIExPTkdFU1QuCisJ KiBzMzkwLW5hdC5jIChzMzkwX2luc2VydF93YXRjaHBvaW50KTogRXhwYW5kIHBhcmFtZXRlciBM RU4gdG8KKwlMT05HRVNULgorCShzMzkwX3JlbW92ZV93YXRjaHBvaW50KTogTGlrZXdpc2UuCisJ KiB0YXJnZXQuYyAodXBkYXRlX2N1cnJlbnRfdGFyZ2V0KTogRXhwYW5kIHBhcmFtZXRlciBMRU4g Zm9yCisJY2FsbGJhY2tzIHRvIFRPX0lOU0VSVF9XQVRDSFBPSU5ULCBUT19SRU1PVkVfV0FUQ0hQ T0lOVCwKKwlUT19DQU5fQUNDRUxfV0FUQ0hQT0lOVF9DT05ESVRJT04sIHRvIExPTkdFU1QuCisJ KGRlZmF1bHRfd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSk6IEV4cGFuZCBwYXJhbWV0ZXIK KwlMRU5HVEggdG8gTE9OR0VTVC4KKwkoZGVidWdfdG9fY2FuX2FjY2VsX3dhdGNocG9pbnRfY29u ZGl0aW9uKTogRXhwYW5kIHBhcmFtZXRlciBMRU4KKwl0byBMT05HRVNULiAgVXNlIHBsb25nZXN0 IHRvIGZvcm1hdCBwcmludCBMRU4uCisJKGRlYnVnX3RvX3dhdGNocG9pbnRfYWRkcl93aXRoaW5f cmFuZ2UpOiBFeHBhbmQgcGFyYW1ldGVyIExFTkdUSAorCXRvIExPTkdFU1QuICBVc2UgcGxvbmdl c3QgdG8gZm9ybWF0IHByaW50IExFTkdUSC4KKwkoZGVidWdfdG9faW5zZXJ0X3dhdGNocG9pbnQp OiBFeHBhbmQgcGFyYW1ldGVyIExFTiB0byBMT05HRVNULgorCVVzZSBwbG9uZ2VzdCB0byBmb3Jt YXQgcHJpbnQgTEVOLgorCShkZWJ1Z190b19yZW1vdmVfd2F0Y2hwb2ludCk6IExpa2V3aXNlLgor CSogdGFyZ2V0LmggKHN0cnVjdCB0YXJnZXRfb3BzKTogRXhwYW5kIHBhcmFtZXRlciBMRU4gb2YK KwlUT19SRU1PVkVfV0FUQ0hQT0lOVCwgVE9fSU5TRVJUX1dBVENIUE9JTlQsCisJVE9fV0FUQ0hQ T0lOVF9BRERSX1dJVEhJTl9SQU5HRSBhbmQKKwlUT19DQU5fQUNDRUxfV0FUQ0hQT0lOVF9DT05E SVRJT04gdG8gTE9OR0VTVC4KKworLS1NUF8vNkhSbEg2dnB5cXRTeTRDWXlNclg2YjIKK0NvbnRl bnQtVHlwZTogdGV4dC94LXBhdGNoCitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CitD b250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1iaXRwb3Mtd3AucGF0Y2gK KworZGlmZiAtLWdpdCBhL2dkYi9hcm0tbGludXgtbmF0LmMgYi9nZGIvYXJtLWxpbnV4LW5hdC5j CitpbmRleCAyMzFiMDA4Li42ZGViMjNkIDEwMDY0NAorLS0tIGEvZ2RiL2FybS1saW51eC1uYXQu YworKysrIGIvZ2RiL2FybS1saW51eC1uYXQuYworQEAgLTExMDUsNyArMTEwNSw3IEBAIGFybV9s aW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBMT05HRVNU IGxlbikKKyAKKyAvKiBJbnNlcnQgYSBIYXJkd2FyZSBicmVha3BvaW50LiAgKi8KKyBzdGF0aWMg aW50CistYXJtX2xpbnV4X2luc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxl biwgaW50IHJ3LAorK2FybV9saW51eF9pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIs IExPTkdFU1QgbGVuLCBpbnQgcncsCisgCQkJICAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkK KyB7CisgICBzdHJ1Y3QgbHdwX2luZm8gKmxwOworQEAgLTExMjMsNyArMTEyMyw3IEBAIGFybV9s aW51eF9pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCBydywK KyAKKyAvKiBSZW1vdmUgYSBoYXJkd2FyZSBicmVha3BvaW50LiAgKi8KKyBzdGF0aWMgaW50Cist YXJtX2xpbnV4X3JlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50 IHJ3LAorK2FybV9saW51eF9yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdF U1QgbGVuLCBpbnQgcncsCisgCQkJICAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkKKyB7Cisg ICBzdHJ1Y3QgbHdwX2luZm8gKmxwOworQEAgLTExODAsNyArMTE4MCw3IEBAIGFybV9saW51eF9z dG9wcGVkX2J5X3dhdGNocG9pbnQgKHZvaWQpCisgc3RhdGljIGludAorIGFybV9saW51eF93YXRj aHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1Y3QgdGFyZ2V0X29wcyAqdGFyZ2V0LAorIAkJ CQkJQ09SRV9BRERSIGFkZHIsCistCQkJCQlDT1JFX0FERFIgc3RhcnQsIGludCBsZW5ndGgpCisr CQkJCQlDT1JFX0FERFIgc3RhcnQsIExPTkdFU1QgbGVuZ3RoKQorIHsKKyAgIHJldHVybiBzdGFy dCA8PSBhZGRyICYmIHN0YXJ0ICsgbGVuZ3RoIC0gMSA+PSBhZGRyOworIH0KK2RpZmYgLS1naXQg YS9nZGIvaTM4Ni1uYXQuYyBiL2dkYi9pMzg2LW5hdC5jCitpbmRleCA3NmM1MWE4Li45ZTI5M2Zl IDEwMDY0NAorLS0tIGEvZ2RiL2kzODYtbmF0LmMKKysrKyBiL2dkYi9pMzg2LW5hdC5jCitAQCAt NTkyLDcgKzU5Miw3IEBAIGkzODZfdXBkYXRlX2luZmVyaW9yX2RlYnVnX3JlZ3MgKHN0cnVjdCBp Mzg2X2RlYnVnX3JlZ19zdGF0ZSAqbmV3X3N0YXRlKQorICAgIG9mIHRoZSB0eXBlIFRZUEUuICBS ZXR1cm4gMCBvbiBzdWNjZXNzLCAtMSBvbiBmYWlsdXJlLiAgKi8KKyAKKyBzdGF0aWMgaW50Cist aTM4Nl9pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCB0eXBl LAorK2kzODZfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbiwg aW50IHR5cGUsCisgCQkJc3RydWN0IGV4cHJlc3Npb24gKmNvbmQpCisgeworICAgc3RydWN0IGkz ODZfZGVidWdfcmVnX3N0YXRlICpzdGF0ZSA9IGkzODZfZGVidWdfcmVnX3N0YXRlICgpOworQEAg LTYyOSw3ICs2MjksNyBAQCBpMzg2X2luc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwg aW50IGxlbiwgaW50IHR5cGUsCisgICAgYWRkcmVzcyBBRERSLCB3aG9zZSBsZW5ndGggaXMgTEVO IGJ5dGVzLCBhbmQgZm9yIGFjY2Vzc2VzIG9mIHRoZQorICAgIHR5cGUgVFlQRS4gIFJldHVybiAw IG9uIHN1Y2Nlc3MsIC0xIG9uIGZhaWx1cmUuICAqLworIHN0YXRpYyBpbnQKKy1pMzg2X3JlbW92 ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHR5cGUsCisraTM4Nl9y ZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQgdHlwZSwK KyAJCQlzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkKKyB7CisgICBzdHJ1Y3QgaTM4Nl9kZWJ1Z19y ZWdfc3RhdGUgKnN0YXRlID0gaTM4Nl9kZWJ1Z19yZWdfc3RhdGUgKCk7CitkaWZmIC0tZ2l0IGEv Z2RiL2lhNjQtbGludXgtbmF0LmMgYi9nZGIvaWE2NC1saW51eC1uYXQuYworaW5kZXggOWI1ZmJm My4uNjA2MWVhZSAxMDA2NDQKKy0tLSBhL2dkYi9pYTY0LWxpbnV4LW5hdC5jCisrKysgYi9nZGIv aWE2NC1saW51eC1uYXQuYworQEAgLTU0Miw3ICs1NDIsNyBAQCBpc19wb3dlcl9vZl8yIChpbnQg dmFsKQorIH0KKyAKKyBzdGF0aWMgaW50CistaWE2NF9saW51eF9pbnNlcnRfd2F0Y2hwb2ludCAo Q09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCBydywKKytpYTY0X2xpbnV4X2luc2VydF93YXRj aHBvaW50IChDT1JFX0FERFIgYWRkciwgTE9OR0VTVCBsZW4sIGludCBydywKKyAJCQkgICAgICBz dHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkKKyB7CisgICBzdHJ1Y3QgbHdwX2luZm8gKmxwOworQEAg LTU5Niw3ICs1OTYsNyBAQCBpYTY0X2xpbnV4X2luc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIg YWRkciwgaW50IGxlbiwgaW50IHJ3LAorIH0KKyAKKyBzdGF0aWMgaW50CistaWE2NF9saW51eF9y ZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCB0eXBlLAorK2lh NjRfbGludXhfcmVtb3ZlX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbiwg aW50IHR5cGUsCisgCQkJICAgICAgc3RydWN0IGV4cHJlc3Npb24gKmNvbmQpCisgeworICAgaW50 IGlkeDsKK2RpZmYgLS1naXQgYS9nZGIvaW5mLXR0cmFjZS5jIGIvZ2RiL2luZi10dHJhY2UuYwor aW5kZXggZDYwZWRkYi4uYzMzZGI0NSAxMDA2NDQKKy0tLSBhL2dkYi9pbmYtdHRyYWNlLmMKKysr KyBiL2dkYi9pbmYtdHRyYWNlLmMKK0BAIC0zMTMsMTQgKzMxMywxNCBAQCBpbmZfdHRyYWNlX2Rp c2FibGVfcGFnZV9wcm90ZWN0aW9ucyAocGlkX3QgcGlkKQorICAgIHR5cGUgVFlQRS4gICovCisg Cisgc3RhdGljIGludAorLWluZl90dHJhY2VfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBh ZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwKKytpbmZfdHRyYWNlX2luc2VydF93YXRjaHBvaW50IChD T1JFX0FERFIgYWRkciwgTE9OR0VTVCBsZW4sIGludCB0eXBlLAorIAkJCSAgICAgIHN0cnVjdCBl eHByZXNzaW9uICpjb25kKQorIHsKKyAgIGNvbnN0IGludCBwYWdlc2l6ZSA9IGluZl90dHJhY2Vf cGFnZV9kaWN0LnBhZ2VzaXplOworICAgcGlkX3QgcGlkID0gcHRpZF9nZXRfcGlkIChpbmZlcmlv cl9wdGlkKTsKKyAgIENPUkVfQUREUiBwYWdlX2FkZHI7CistICBpbnQgbnVtX3BhZ2VzOworLSAg aW50IHBhZ2U7CisrICBMT05HRVNUIG51bV9wYWdlczsKKysgIExPTkdFU1QgcGFnZTsKKyAKKyAg IGdkYl9hc3NlcnQgKHR5cGUgPT0gaHdfd3JpdGUpOworIAorQEAgLTMzNywxNCArMzM3LDE0IEBA IGluZl90dHJhY2VfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBp bnQgdHlwZSwKKyAgICB0eXBlIFRZUEUuICAqLworIAorIHN0YXRpYyBpbnQKKy1pbmZfdHRyYWNl X3JlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHR5cGUsCisr aW5mX3R0cmFjZV9yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVu LCBpbnQgdHlwZSwKKyAJCQkgICAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkKKyB7CisgICBj b25zdCBpbnQgcGFnZXNpemUgPSBpbmZfdHRyYWNlX3BhZ2VfZGljdC5wYWdlc2l6ZTsKKyAgIHBp ZF90IHBpZCA9IHB0aWRfZ2V0X3BpZCAoaW5mZXJpb3JfcHRpZCk7CisgICBDT1JFX0FERFIgcGFn ZV9hZGRyOworLSAgaW50IG51bV9wYWdlczsKKy0gIGludCBwYWdlOworKyAgTE9OR0VTVCBudW1f cGFnZXM7CisrICBMT05HRVNUIHBhZ2U7CisgCisgICBnZGJfYXNzZXJ0ICh0eXBlID09IGh3X3dy aXRlKTsKKyAKK2RpZmYgLS1naXQgYS9nZGIvbWlwcy1saW51eC1uYXQuYyBiL2dkYi9taXBzLWxp bnV4LW5hdC5jCitpbmRleCA1NTY2ZDBjLi43NDY3ZDExIDEwMDY0NAorLS0tIGEvZ2RiL21pcHMt bGludXgtbmF0LmMKKysrKyBiL2dkYi9taXBzLWxpbnV4LW5hdC5jCitAQCAtMTAxNyw3ICsxMDE3 LDcgQEAgcG9wdWxhdGVfcmVnc19mcm9tX3dhdGNoZXMgKHN0cnVjdCBwdF93YXRjaF9yZWdzICpy ZWdzKQorICAgIHdhdGNoLiAgUmV0dXJuIHplcm8gb24gc3VjY2Vzcy4gICovCisgCisgc3RhdGlj IGludAorLW1pcHNfbGludXhfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQg bGVuLCBpbnQgdHlwZSwKKyttaXBzX2xpbnV4X2luc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIg YWRkciwgTE9OR0VTVCBsZW4sIGludCB0eXBlLAorIAkJCSAgICAgIHN0cnVjdCBleHByZXNzaW9u ICpjb25kKQorIHsKKyAgIHN0cnVjdCBwdF93YXRjaF9yZWdzIHJlZ3M7CitAQCAtMTA2Nyw3ICsx MDY3LDcgQEAgbWlwc19saW51eF9pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGlu dCBsZW4sIGludCB0eXBlLAorICAgIFJldHVybiB6ZXJvIG9uIHN1Y2Nlc3MuICAqLworIAorIHN0 YXRpYyBpbnQKKy1taXBzX2xpbnV4X3JlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwg aW50IGxlbiwgaW50IHR5cGUsCisrbWlwc19saW51eF9yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9B RERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQgdHlwZSwKKyAJCQkgICAgICBzdHJ1Y3QgZXhwcmVz c2lvbiAqY29uZCkKKyB7CisgICBpbnQgcmV0dmFsOworZGlmZiAtLWdpdCBhL2dkYi9udG8tcHJv Y2ZzLmMgYi9nZGIvbnRvLXByb2Nmcy5jCitpbmRleCBiNThmMzE4Li4yNWZlY2YzIDEwMDY0NAor LS0tIGEvZ2RiL250by1wcm9jZnMuYworKysrIGIvZ2RiL250by1wcm9jZnMuYworQEAgLTY5LDEw ICs2OSwxMCBAQCBzdGF0aWMgcHRpZF90IGRvX2F0dGFjaCAocHRpZF90IHB0aWQpOworIAorIHN0 YXRpYyBpbnQgcHJvY2ZzX2Nhbl91c2VfaHdfYnJlYWtwb2ludCAoaW50LCBpbnQsIGludCk7Cisg Cistc3RhdGljIGludCBwcm9jZnNfaW5zZXJ0X2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRy LCBpbnQgbGVuLCBpbnQgdHlwZSwKKytzdGF0aWMgaW50IHByb2Nmc19pbnNlcnRfaHdfd2F0Y2hw b2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQgdHlwZSwKKyAJCQkJCXN0cnVj dCBleHByZXNzaW9uICpjb25kKTsKKyAKKy1zdGF0aWMgaW50IHByb2Nmc19yZW1vdmVfaHdfd2F0 Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCB0eXBlLAorK3N0YXRpYyBpbnQg cHJvY2ZzX3JlbW92ZV9od193YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgTE9OR0VTVCBsZW4s IGludCB0eXBlLAorIAkJCQkJc3RydWN0IGV4cHJlc3Npb24gKmNvbmQpOworIAorIHN0YXRpYyBp bnQgcHJvY2ZzX3N0b3BwZWRfYnlfd2F0Y2hwb2ludCAodm9pZCk7CitAQCAtMTQ5MywxNCArMTQ5 MywxNCBAQCBwcm9jZnNfY2FuX3VzZV9od19icmVha3BvaW50IChpbnQgdHlwZSwgaW50IGNudCwg aW50IG90aGVydHlwZSkKKyB9CisgCisgc3RhdGljIGludAorLXByb2Nmc19yZW1vdmVfaHdfd2F0 Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCB0eXBlLAorK3Byb2Nmc19yZW1v dmVfaHdfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQgdHlwZSwK KyAJCQkgICAgIHN0cnVjdCBleHByZXNzaW9uICpjb25kKQorIHsKKyAgIHJldHVybiBwcm9jZnNf aHdfd2F0Y2hwb2ludCAoYWRkciwgLTEsIHR5cGUpOworIH0KKyAKKyBzdGF0aWMgaW50CistcHJv Y2ZzX2luc2VydF9od193YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHR5 cGUsCisrcHJvY2ZzX2luc2VydF9od193YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgTE9OR0VT VCBsZW4sIGludCB0eXBlLAorIAkJCSAgICAgc3RydWN0IGV4cHJlc3Npb24gKmNvbmQpCisgewor ICAgcmV0dXJuIHByb2Nmc19od193YXRjaHBvaW50IChhZGRyLCBsZW4sIHR5cGUpOworZGlmZiAt LWdpdCBhL2dkYi9wcGMtbGludXgtbmF0LmMgYi9nZGIvcHBjLWxpbnV4LW5hdC5jCitpbmRleCA2 N2UxY2FjLi5hYmZiMmZjIDEwMDY0NAorLS0tIGEvZ2RiL3BwYy1saW51eC1uYXQuYworKysrIGIv Z2RiL3BwYy1saW51eC1uYXQuYworQEAgLTE4MzksMTEgKzE4MzksMTEgQEAgY2FuX3VzZV93YXRj aHBvaW50X2NvbmRfYWNjZWwgKHZvaWQpCisgICAgQ09ORElUSU9OX1ZBTFVFIHdpbGwgaG9sZCB0 aGUgdmFsdWUgd2hpY2ggc2hvdWxkIGJlIHB1dCBpbiB0aGUKKyAgICBEVkMgcmVnaXN0ZXIuICAq LworIHN0YXRpYyB2b2lkCistY2FsY3VsYXRlX2R2YyAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4s IENPUkVfQUREUiBkYXRhX3ZhbHVlLAorK2NhbGN1bGF0ZV9kdmMgKENPUkVfQUREUiBhZGRyLCBM T05HRVNUIGxlbiwgQ09SRV9BRERSIGRhdGFfdmFsdWUsCisgCSAgICAgICB1aW50MzJfdCAqY29u ZGl0aW9uX21vZGUsIHVpbnQ2NF90ICpjb25kaXRpb25fdmFsdWUpCisgeworLSAgaW50IGksIG51 bV9ieXRlX2VuYWJsZSwgYWxpZ25fb2Zmc2V0LCBudW1fYnl0ZXNfb2ZmX2R2YywKKy0gICAgICBy aWdodG1vc3RfZW5hYmxlZF9ieXRlOworKyAgTE9OR0VTVCBpLCBudW1fYnl0ZV9lbmFibGU7Cisr ICBpbnQgYWxpZ25fb2Zmc2V0LCBudW1fYnl0ZXNfb2ZmX2R2YywgcmlnaHRtb3N0X2VuYWJsZWRf Ynl0ZTsKKyAgIENPUkVfQUREUiBhZGRyX2VuZF9kYXRhLCBhZGRyX2VuZF9kdmM7CisgCisgICAv KiBUaGUgRFZDIHJlZ2lzdGVyIGNvbXBhcmVzIGJ5dGVzIHdpdGhpbiBmaXhlZC1sZW5ndGggd2lu ZG93cyB3aGljaAorQEAgLTE5MzAsNyArMTkzMCw3IEBAIG51bV9tZW1vcnlfYWNjZXNzZXMgKHN0 cnVjdCB2YWx1ZSAqdikKKyAgICBvZiB0aGUgY29uc3RhbnQuICAqLworIHN0YXRpYyBpbnQKKyBj aGVja19jb25kaXRpb24gKENPUkVfQUREUiB3YXRjaF9hZGRyLCBzdHJ1Y3QgZXhwcmVzc2lvbiAq Y29uZCwKKy0JCSBDT1JFX0FERFIgKmRhdGFfdmFsdWUsIGludCAqbGVuKQorKwkJIENPUkVfQURE UiAqZGF0YV92YWx1ZSwgTE9OR0VTVCAqbGVuKQorIHsKKyAgIGludCBwYyA9IDEsIG51bV9hY2Nl c3Nlc19sZWZ0LCBudW1fYWNjZXNzZXNfcmlnaHQ7CisgICBzdHJ1Y3QgdmFsdWUgKmxlZnRfdmFs LCAqcmlnaHRfdmFsLCAqbGVmdF9jaGFpbiwgKnJpZ2h0X2NoYWluOworQEAgLTE5OTcsNyArMTk5 Nyw3IEBAIGNoZWNrX2NvbmRpdGlvbiAoQ09SRV9BRERSIHdhdGNoX2FkZHIsIHN0cnVjdCBleHBy ZXNzaW9uICpjb25kLAorICAgIHRoZSBjb25kaXRpb24gZXhwcmVzc2lvbiwgdGh1cyBvbmx5IHRy aWdnZXJpbmcgdGhlIHdhdGNocG9pbnQgd2hlbiBpdCBpcworICAgIHRydWUuICAqLworIHN0YXRp YyBpbnQKKy1wcGNfbGludXhfY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uIChDT1JFX0FE RFIgYWRkciwgaW50IGxlbiwgaW50IHJ3LAorK3BwY19saW51eF9jYW5fYWNjZWxfd2F0Y2hwb2lu dF9jb25kaXRpb24gKENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbiwgaW50IHJ3LAorIAkJCQkJ ICBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkKKyB7CisgICBDT1JFX0FERFIgZGF0YV92YWx1ZTsK K0BAIC0yMDE0LDcgKzIwMTQsNyBAQCBwcGNfbGludXhfY2FuX2FjY2VsX3dhdGNocG9pbnRfY29u ZGl0aW9uIChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHJ3LAorIAorIHN0YXRpYyB2b2lk CisgY3JlYXRlX3dhdGNocG9pbnRfcmVxdWVzdCAoc3RydWN0IHBwY19od19icmVha3BvaW50ICpw LCBDT1JFX0FERFIgYWRkciwKKy0JCQkgICBpbnQgbGVuLCBpbnQgcncsIHN0cnVjdCBleHByZXNz aW9uICpjb25kLAorKwkJCSAgIExPTkdFU1QgbGVuLCBpbnQgcncsIHN0cnVjdCBleHByZXNzaW9u ICpjb25kLAorIAkJCSAgIGludCBpbnNlcnQpCisgeworICAgaWYgKGxlbiA9PSAxCitAQCAtMjA1 OSw3ICsyMDU5LDcgQEAgY3JlYXRlX3dhdGNocG9pbnRfcmVxdWVzdCAoc3RydWN0IHBwY19od19i cmVha3BvaW50ICpwLCBDT1JFX0FERFIgYWRkciwKKyB9CisgCisgc3RhdGljIGludAorLXBwY19s aW51eF9pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCBydywK KytwcGNfbGludXhfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxl biwgaW50IHJ3LAorIAkJCSAgICAgc3RydWN0IGV4cHJlc3Npb24gKmNvbmQpCisgeworICAgc3Ry dWN0IGx3cF9pbmZvICpscDsKK0BAIC0yMTI3LDcgKzIxMjcsNyBAQCBwcGNfbGludXhfaW5zZXJ0 X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgcncsCisgfQorIAorIHN0 YXRpYyBpbnQKKy1wcGNfbGludXhfcmVtb3ZlX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBp bnQgbGVuLCBpbnQgcncsCisrcHBjX2xpbnV4X3JlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIg YWRkciwgTE9OR0VTVCBsZW4sIGludCBydywKKyAJCQkgICAgIHN0cnVjdCBleHByZXNzaW9uICpj b25kKQorIHsKKyAgIHN0cnVjdCBsd3BfaW5mbyAqbHA7CitAQCAtMjI2Nyw3ICsyMjY3LDcgQEAg cHBjX2xpbnV4X3N0b3BwZWRfYnlfd2F0Y2hwb2ludCAodm9pZCkKKyBzdGF0aWMgaW50CisgcHBj X2xpbnV4X3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0YXJnZXRfb3BzICp0 YXJnZXQsCisgCQkJCQlDT1JFX0FERFIgYWRkciwKKy0JCQkJCUNPUkVfQUREUiBzdGFydCwgaW50 IGxlbmd0aCkKKysJCQkJCUNPUkVfQUREUiBzdGFydCwgTE9OR0VTVCBsZW5ndGgpCisgeworICAg aW50IG1hc2s7CisgCitkaWZmIC0tZ2l0IGEvZ2RiL3Byb2Nmcy5jIGIvZ2RiL3Byb2Nmcy5jCitp bmRleCA0YTkzMzZmLi4yNmFjY2Q4IDEwMDY0NAorLS0tIGEvZ2RiL3Byb2Nmcy5jCisrKysgYi9n ZGIvcHJvY2ZzLmMKK0BAIC0yNDcwLDcgKzI0NzAsNyBAQCBwcm9jZnNfYWRkcmVzc190b19ob3N0 X3BvaW50ZXIgKENPUkVfQUREUiBhZGRyKQorICNlbmRpZgorIAorIHN0YXRpYyBpbnQKKy1wcm9j X3NldF93YXRjaHBvaW50IChwcm9jaW5mbyAqcGksIENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBp bnQgd2ZsYWdzKQorK3Byb2Nfc2V0X3dhdGNocG9pbnQgKHByb2NpbmZvICpwaSwgQ09SRV9BRERS IGFkZHIsIExPTkdFU1QgbGVuLCBpbnQgd2ZsYWdzKQorIHsKKyAjaWYgIWRlZmluZWQgKFBDV0FU Q0gpICYmICFkZWZpbmVkIChQSU9DU1dBVENIKQorICAgLyogSWYgbmVpdGhlciBvciB0aGVzZSBp cyBkZWZpbmVkLCB3ZSBjYW4ndCBzdXBwb3J0IHdhdGNocG9pbnRzLgorQEAgLTQ4MTYsNyArNDgx Niw3IEBAIHByb2Nmc19waWRfdG9fc3RyIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzLCBwdGlkX3Qg cHRpZCkKKyAvKiBJbnNlcnQgYSB3YXRjaHBvaW50LiAgKi8KKyAKKyBzdGF0aWMgaW50CistcHJv Y2ZzX3NldF93YXRjaHBvaW50IChwdGlkX3QgcHRpZCwgQ09SRV9BRERSIGFkZHIsIGludCBsZW4s IGludCByd2ZsYWcsCisrcHJvY2ZzX3NldF93YXRjaHBvaW50IChwdGlkX3QgcHRpZCwgQ09SRV9B RERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQgcndmbGFnLAorIAkJICAgICAgIGludCBhZnRlcikK KyB7CisgI2lmbmRlZiBVTklYV0FSRQorQEAgLTQ5MzgsNyArNDkzOCw3IEBAIHByb2Nmc19zdG9w cGVkX2RhdGFfYWRkcmVzcyAoc3RydWN0IHRhcmdldF9vcHMgKnRhcmcsIENPUkVfQUREUiAqYWRk cikKKyB9CisgCisgc3RhdGljIGludAorLXByb2Nmc19pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9B RERSIGFkZHIsIGludCBsZW4sIGludCB0eXBlLAorK3Byb2Nmc19pbnNlcnRfd2F0Y2hwb2ludCAo Q09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQgdHlwZSwKKyAJCQkgIHN0cnVjdCBleHBy ZXNzaW9uICpjb25kKQorIHsKKyAgIGlmICghdGFyZ2V0X2hhdmVfc3RlcHBhYmxlX3dhdGNocG9p bnQKK0BAIC00OTYwLDcgKzQ5NjAsNyBAQCBwcm9jZnNfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVf QUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwKKyB9CisgCisgc3RhdGljIGludAorLXByb2Nm c19yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCB0eXBlLAor K3Byb2Nmc19yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLCBp bnQgdHlwZSwKKyAJCQkgIHN0cnVjdCBleHByZXNzaW9uICpjb25kKQorIHsKKyAgIHJldHVybiBw cm9jZnNfc2V0X3dhdGNocG9pbnQgKGluZmVyaW9yX3B0aWQsIGFkZHIsIDAsIDAsIDApOworZGlm ZiAtLWdpdCBhL2dkYi9yZW1vdGUtbTMyci1zZGkuYyBiL2dkYi9yZW1vdGUtbTMyci1zZGkuYwor aW5kZXggNzQ4YWViYS4uYjM4NWMzZiAxMDA2NDQKKy0tLSBhL2dkYi9yZW1vdGUtbTMyci1zZGku YworKysrIGIvZ2RiL3JlbW90ZS1tMzJyLXNkaS5jCitAQCAtMTQxNywxNCArMTQxNywxNCBAQCBt MzJyX2Nhbl91c2VfaHdfd2F0Y2hwb2ludCAoaW50IHR5cGUsIGludCBjbnQsIGludCBvdGhlcnR5 cGUpCisgICAgd2F0Y2hwb2ludC4gICovCisgCisgc3RhdGljIGludAorLW0zMnJfaW5zZXJ0X3dh dGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwKKyttMzJyX2luc2Vy dF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgTE9OR0VTVCBsZW4sIGludCB0eXBlLAorIAkJ CXN0cnVjdCBleHByZXNzaW9uICpjb25kKQorIHsKKyAgIGludCBpOworIAorICAgaWYgKHJlbW90 ZV9kZWJ1ZykKKy0gICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAibTMycl9pbnNl cnRfd2F0Y2hwb2ludCglcywlZCwlZClcbiIsCistCQkJcGFkZHJlc3MgKHRhcmdldF9nZGJhcmNo LCBhZGRyKSwgbGVuLCB0eXBlKTsKKysgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9n LCAibTMycl9pbnNlcnRfd2F0Y2hwb2ludCglcywlcywlZClcbiIsCisrCQkJcGFkZHJlc3MgKHRh cmdldF9nZGJhcmNoLCBhZGRyKSwgcGxvbmdlc3QgKGxlbiksIHR5cGUpOworIAorICAgZm9yIChp ID0gMDsgaSA8IE1BWF9BQ0NFU1NfQlJFQUtTOyBpKyspCisgICAgIHsKK0BAIC0xNDQyLDE0ICsx NDQyLDE0IEBAIG0zMnJfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVu LCBpbnQgdHlwZSwKKyB9CisgCisgc3RhdGljIGludAorLW0zMnJfcmVtb3ZlX3dhdGNocG9pbnQg KENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwKKyttMzJyX3JlbW92ZV93YXRjaHBv aW50IChDT1JFX0FERFIgYWRkciwgTE9OR0VTVCBsZW4sIGludCB0eXBlLAorIAkJCXN0cnVjdCBl eHByZXNzaW9uICpjb25kKQorIHsKKyAgIGludCBpOworIAorICAgaWYgKHJlbW90ZV9kZWJ1ZykK Ky0gICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAibTMycl9yZW1vdmVfd2F0Y2hw b2ludCglcywlZCwlZClcbiIsCistCQkJcGFkZHJlc3MgKHRhcmdldF9nZGJhcmNoLCBhZGRyKSwg bGVuLCB0eXBlKTsKKysgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAibTMycl9y ZW1vdmVfd2F0Y2hwb2ludCglcywlcywlZClcbiIsCisrCQkJcGFkZHJlc3MgKHRhcmdldF9nZGJh cmNoLCBhZGRyKSwgcGxvbmdlc3QgKGxlbiksIHR5cGUpOworIAorICAgZm9yIChpID0gMDsgaSA8 IE1BWF9BQ0NFU1NfQlJFQUtTOyBpKyspCisgICAgIHsKK2RpZmYgLS1naXQgYS9nZGIvcmVtb3Rl LW1pcHMuYyBiL2dkYi9yZW1vdGUtbWlwcy5jCitpbmRleCBlZWUyNDYwLi45YTkyNjVhIDEwMDY0 NAorLS0tIGEvZ2RiL3JlbW90ZS1taXBzLmMKKysrKyBiL2dkYi9yZW1vdGUtbWlwcy5jCitAQCAt MjQxOSw3ICsyNDE5LDcgQEAgY2FsY3VsYXRlX21hc2sgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVu KQorICAgIHdhdGNocG9pbnQuICAqLworIAorIHN0YXRpYyBpbnQKKy1taXBzX2luc2VydF93YXRj aHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHR5cGUsCisrbWlwc19pbnNlcnRf d2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQgdHlwZSwKKyAJCQlz dHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkKKyB7CisgICBpZiAobWlwc19zZXRfYnJlYWtwb2ludCAo YWRkciwgbGVuLCB0eXBlKSkKK0BAIC0yNDMxLDcgKzI0MzEsNyBAQCBtaXBzX2luc2VydF93YXRj aHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHR5cGUsCisgLyogUmVtb3ZlIGEg d2F0Y2hwb2ludC4gICovCisgCisgc3RhdGljIGludAorLW1pcHNfcmVtb3ZlX3dhdGNocG9pbnQg KENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwKKyttaXBzX3JlbW92ZV93YXRjaHBv aW50IChDT1JFX0FERFIgYWRkciwgTE9OR0VTVCBsZW4sIGludCB0eXBlLAorIAkJCXN0cnVjdCBl eHByZXNzaW9uICpjb25kKQorIHsKKyAgIGlmIChtaXBzX2NsZWFyX2JyZWFrcG9pbnQgKGFkZHIs IGxlbiwgdHlwZSkpCitkaWZmIC0tZ2l0IGEvZ2RiL3JlbW90ZS5jIGIvZ2RiL3JlbW90ZS5jCitp bmRleCA4YzI3MzkwLi5iY2VjMzMxIDEwMDY0NAorLS0tIGEvZ2RiL3JlbW90ZS5jCisrKysgYi9n ZGIvcmVtb3RlLmMKK0BAIC04MDM1LDcgKzgwMzUsNyBAQCB3YXRjaHBvaW50X3RvX1pfcGFja2V0 IChpbnQgdHlwZSkKKyB9CisgCisgc3RhdGljIGludAorLXJlbW90ZV9pbnNlcnRfd2F0Y2hwb2lu dCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCB0eXBlLAorK3JlbW90ZV9pbnNlcnRfd2F0 Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQgdHlwZSwKKyAJCQkgIHN0 cnVjdCBleHByZXNzaW9uICpjb25kKQorIHsKKyAgIHN0cnVjdCByZW1vdGVfc3RhdGUgKnJzID0g Z2V0X3JlbW90ZV9zdGF0ZSAoKTsKK0BAIC04MDUwLDcgKzgwNTAsNyBAQCByZW1vdGVfaW5zZXJ0 X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwKKyAgIHAgPSBz dHJjaHIgKHJzLT5idWYsICdcMCcpOworICAgYWRkciA9IHJlbW90ZV9hZGRyZXNzX21hc2tlZCAo YWRkcik7CisgICBwICs9IGhleG51bXN0ciAocCwgKFVMT05HRVNUKSBhZGRyKTsKKy0gIHhzbnBy aW50ZiAocCwgZW5kYnVmIC0gcCwgIiwleCIsIGxlbik7CisrICB4c25wcmludGYgKHAsIGVuZGJ1 ZiAtIHAsICIsJXMiLCBwaGV4X256IChsZW4sIHNpemVvZiAobGVuKSkpOworIAorICAgcHV0cGt0 IChycy0+YnVmKTsKKyAgIGdldHBrdCAoJnJzLT5idWYsICZycy0+YnVmX3NpemUsIDApOworQEAg LTgwNzAsNyArODA3MCw3IEBAIHJlbW90ZV9pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFk ZHIsIGludCBsZW4sIGludCB0eXBlLAorIAorIHN0YXRpYyBpbnQKKyByZW1vdGVfd2F0Y2hwb2lu dF9hZGRyX3dpdGhpbl9yYW5nZSAoc3RydWN0IHRhcmdldF9vcHMgKnRhcmdldCwgQ09SRV9BRERS IGFkZHIsCistCQkJCSAgICAgQ09SRV9BRERSIHN0YXJ0LCBpbnQgbGVuZ3RoKQorKwkJCQkgICAg IENPUkVfQUREUiBzdGFydCwgTE9OR0VTVCBsZW5ndGgpCisgeworICAgQ09SRV9BRERSIGRpZmYg PSByZW1vdGVfYWRkcmVzc19tYXNrZWQgKGFkZHIgLSBzdGFydCk7CisgCitAQCAtODA3OSw3ICs4 MDc5LDcgQEAgcmVtb3RlX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0YXJn ZXRfb3BzICp0YXJnZXQsIENPUkVfQUREUiBhZGRyLAorIAorIAorIHN0YXRpYyBpbnQKKy1yZW1v dGVfcmVtb3ZlX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwK KytyZW1vdGVfcmVtb3ZlX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbiwg aW50IHR5cGUsCisgCQkJICBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkKKyB7CisgICBzdHJ1Y3Qg cmVtb3RlX3N0YXRlICpycyA9IGdldF9yZW1vdGVfc3RhdGUgKCk7CitAQCAtODA5NCw3ICs4MDk0 LDcgQEAgcmVtb3RlX3JlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwg aW50IHR5cGUsCisgICBwID0gc3RyY2hyIChycy0+YnVmLCAnXDAnKTsKKyAgIGFkZHIgPSByZW1v dGVfYWRkcmVzc19tYXNrZWQgKGFkZHIpOworICAgcCArPSBoZXhudW1zdHIgKHAsIChVTE9OR0VT VCkgYWRkcik7CistICB4c25wcmludGYgKHAsIGVuZGJ1ZiAtIHAsICIsJXgiLCBsZW4pOworKyAg eHNucHJpbnRmIChwLCBlbmRidWYgLSBwLCAiLCVzIiwgcGhleF9ueiAobGVuLCBzaXplb2YgKGxl bikpKTsKKyAgIHB1dHBrdCAocnMtPmJ1Zik7CisgICBnZXRwa3QgKCZycy0+YnVmLCAmcnMtPmJ1 Zl9zaXplLCAwKTsKKyAKK2RpZmYgLS1naXQgYS9nZGIvczM5MC1uYXQuYyBiL2dkYi9zMzkwLW5h dC5jCitpbmRleCA0OTc0YmFkLi4zZjQxNTE5IDEwMDY0NAorLS0tIGEvZ2RiL3MzOTAtbmF0LmMK KysrKyBiL2dkYi9zMzkwLW5hdC5jCitAQCAtNTE3LDcgKzUxNyw3IEBAIHMzOTBfZml4X3dhdGNo X3BvaW50cyAoc3RydWN0IGx3cF9pbmZvICpscCkKKyB9CisgCisgc3RhdGljIGludAorLXMzOTBf aW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwKKytz MzkwX2luc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgTE9OR0VTVCBsZW4sIGludCB0 eXBlLAorIAkJCXN0cnVjdCBleHByZXNzaW9uICpjb25kKQorIHsKKyAgIHN0cnVjdCBsd3BfaW5m byAqbHA7CitAQCAtNTM4LDcgKzUzOCw3IEBAIHMzOTBfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVf QUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwKKyB9CisgCisgc3RhdGljIGludAorLXMzOTBf cmVtb3ZlX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlwZSwKKytz MzkwX3JlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgTE9OR0VTVCBsZW4sIGludCB0 eXBlLAorIAkJCXN0cnVjdCBleHByZXNzaW9uICpjb25kKQorIHsKKyAgIHN0cnVjdCBsd3BfaW5m byAqbHA7CitkaWZmIC0tZ2l0IGEvZ2RiL3RhcmdldC5jIGIvZ2RiL3RhcmdldC5jCitpbmRleCBm NzIwN2MwLi5hNjlmYjA2IDEwMDY0NAorLS0tIGEvZ2RiL3RhcmdldC5jCisrKysgYi9nZGIvdGFy Z2V0LmMKK0BAIC00OSw3ICs0OSw4IEBAIHN0YXRpYyB2b2lkIHRhcmdldF9pbmZvIChjaGFyICos IGludCk7Cisgc3RhdGljIHZvaWQgZGVmYXVsdF90ZXJtaW5hbF9pbmZvIChjaGFyICosIGludCk7 CisgCisgc3RhdGljIGludCBkZWZhdWx0X3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0 cnVjdCB0YXJnZXRfb3BzICosCistCQkJCQkJIENPUkVfQUREUiwgQ09SRV9BRERSLCBpbnQpOwor KwkJCQkJCSBDT1JFX0FERFIsIENPUkVfQUREUiwKKysJCQkJCQkgTE9OR0VTVCk7CisgCisgc3Rh dGljIGludCBkZWZhdWx0X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoQ09SRV9BRERSLCBM T05HRVNUKTsKKyAKK0BAIC0xMTQsMTAgKzExNSwxMCBAQCBzdGF0aWMgaW50IGRlYnVnX3RvX2lu c2VydF9od19icmVha3BvaW50IChzdHJ1Y3QgZ2RiYXJjaCAqLAorIHN0YXRpYyBpbnQgZGVidWdf dG9fcmVtb3ZlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICosCisgCQkJCQkgIHN0cnVj dCBicF90YXJnZXRfaW5mbyAqKTsKKyAKKy1zdGF0aWMgaW50IGRlYnVnX3RvX2luc2VydF93YXRj aHBvaW50IChDT1JFX0FERFIsIGludCwgaW50LAorK3N0YXRpYyBpbnQgZGVidWdfdG9faW5zZXJ0 X3dhdGNocG9pbnQgKENPUkVfQUREUiwgTE9OR0VTVCwgaW50LAorIAkJCQkgICAgICAgc3RydWN0 IGV4cHJlc3Npb24gKik7CisgCistc3RhdGljIGludCBkZWJ1Z190b19yZW1vdmVfd2F0Y2hwb2lu dCAoQ09SRV9BRERSLCBpbnQsIGludCwKKytzdGF0aWMgaW50IGRlYnVnX3RvX3JlbW92ZV93YXRj aHBvaW50IChDT1JFX0FERFIsIExPTkdFU1QsIGludCwKKyAJCQkJICAgICAgIHN0cnVjdCBleHBy ZXNzaW9uICopOworIAorIHN0YXRpYyBpbnQgZGVidWdfdG9fc3RvcHBlZF9ieV93YXRjaHBvaW50 ICh2b2lkKTsKK0BAIC0xMjUsMTEgKzEyNiwxMiBAQCBzdGF0aWMgaW50IGRlYnVnX3RvX3N0b3Bw ZWRfYnlfd2F0Y2hwb2ludCAodm9pZCk7Cisgc3RhdGljIGludCBkZWJ1Z190b19zdG9wcGVkX2Rh dGFfYWRkcmVzcyAoc3RydWN0IHRhcmdldF9vcHMgKiwgQ09SRV9BRERSICopOworIAorIHN0YXRp YyBpbnQgZGVidWdfdG9fd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAoc3RydWN0IHRhcmdl dF9vcHMgKiwKKy0JCQkJCQkgIENPUkVfQUREUiwgQ09SRV9BRERSLCBpbnQpOworKwkJCQkJCSAg Q09SRV9BRERSLCBDT1JFX0FERFIsCisrCQkJCQkJICBMT05HRVNUKTsKKyAKKyBzdGF0aWMgaW50 IGRlYnVnX3RvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoQ09SRV9BRERSLCBMT05HRVNU KTsKKyAKKy1zdGF0aWMgaW50IGRlYnVnX3RvX2Nhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlv biAoQ09SRV9BRERSLCBpbnQsIGludCwKKytzdGF0aWMgaW50IGRlYnVnX3RvX2Nhbl9hY2NlbF93 YXRjaHBvaW50X2NvbmRpdGlvbiAoQ09SRV9BRERSLCBMT05HRVNULCBpbnQsCisgCQkJCQkJICAg IHN0cnVjdCBleHByZXNzaW9uICopOworIAorIHN0YXRpYyB2b2lkIGRlYnVnX3RvX3Rlcm1pbmFs X2luaXQgKHZvaWQpOworQEAgLTc1MSwxMCArNzUzLDEwIEBAIHVwZGF0ZV9jdXJyZW50X3Rhcmdl dCAodm9pZCkKKyAJICAgIChpbnQgKCopIChzdHJ1Y3QgZ2RiYXJjaCAqLCBzdHJ1Y3QgYnBfdGFy Z2V0X2luZm8gKikpCisgCSAgICByZXR1cm5fbWludXNfb25lKTsKKyAgIGRlX2ZhdWx0ICh0b19p bnNlcnRfd2F0Y2hwb2ludCwKKy0JICAgIChpbnQgKCopIChDT1JFX0FERFIsIGludCwgaW50LCBz dHJ1Y3QgZXhwcmVzc2lvbiAqKSkKKysJICAgIChpbnQgKCopIChDT1JFX0FERFIsIExPTkdFU1Qs IGludCwgc3RydWN0IGV4cHJlc3Npb24gKikpCisgCSAgICByZXR1cm5fbWludXNfb25lKTsKKyAg IGRlX2ZhdWx0ICh0b19yZW1vdmVfd2F0Y2hwb2ludCwKKy0JICAgIChpbnQgKCopIChDT1JFX0FE RFIsIGludCwgaW50LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqKSkKKysJICAgIChpbnQgKCopIChDT1JF X0FERFIsIExPTkdFU1QsIGludCwgc3RydWN0IGV4cHJlc3Npb24gKikpCisgCSAgICByZXR1cm5f bWludXNfb25lKTsKKyAgIGRlX2ZhdWx0ICh0b19zdG9wcGVkX2J5X3dhdGNocG9pbnQsCisgCSAg ICAoaW50ICgqKSAodm9pZCkpCitAQCAtNzY3LDcgKzc2OSw3IEBAIHVwZGF0ZV9jdXJyZW50X3Rh cmdldCAodm9pZCkKKyAgIGRlX2ZhdWx0ICh0b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQs CisgCSAgICBkZWZhdWx0X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCk7CisgICBkZV9mYXVs dCAodG9fY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uLAorLSAgICAgICAgICAgIChpbnQg KCopIChDT1JFX0FERFIsIGludCwgaW50LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqKSkKKysgICAgICAg ICAgICAoaW50ICgqKSAoQ09SRV9BRERSLCBMT05HRVNULCBpbnQsIHN0cnVjdCBleHByZXNzaW9u ICopKQorICAgICAgICAgICAgIHJldHVybl96ZXJvKTsKKyAgIGRlX2ZhdWx0ICh0b190ZXJtaW5h bF9pbml0LAorIAkgICAgKHZvaWQgKCopICh2b2lkKSkKK0BAIC0zNTU4LDcgKzM1NjAsNyBAQCBk ZWZhdWx0X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdF U1QgbGVuKQorIHN0YXRpYyBpbnQKKyBkZWZhdWx0X3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFu Z2UgKHN0cnVjdCB0YXJnZXRfb3BzICp0YXJnZXQsCisgCQkJCSAgICAgIENPUkVfQUREUiBhZGRy LAorLQkJCQkgICAgICBDT1JFX0FERFIgc3RhcnQsIGludCBsZW5ndGgpCisrCQkJCSAgICAgIENP UkVfQUREUiBzdGFydCwgTE9OR0VTVCBsZW5ndGgpCisgeworICAgcmV0dXJuIGFkZHIgPj0gc3Rh cnQgJiYgYWRkciA8IHN0YXJ0ICsgbGVuZ3RoOworIH0KK0BAIC00MjYzLDcgKzQyNjUsNyBAQCBk ZWJ1Z190b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBMT05H RVNUIGxlbikKKyB9CisgCisgc3RhdGljIGludAorLWRlYnVnX3RvX2Nhbl9hY2NlbF93YXRjaHBv aW50X2NvbmRpdGlvbiAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCBydywKKytkZWJ1Z190 b19jYW5fYWNjZWxfd2F0Y2hwb2ludF9jb25kaXRpb24gKENPUkVfQUREUiBhZGRyLCBMT05HRVNU IGxlbiwgaW50IHJ3LAorIAkJCQkJIHN0cnVjdCBleHByZXNzaW9uICpjb25kKQorIHsKKyAgIGlu dCByZXR2YWw7CitAQCAtNDI3Myw4ICs0Mjc1LDggQEAgZGVidWdfdG9fY2FuX2FjY2VsX3dhdGNo cG9pbnRfY29uZGl0aW9uIChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHJ3LAorIAorICAg ZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAorIAkJICAgICAgInRhcmdldF9jYW5fYWNj ZWxfd2F0Y2hwb2ludF9jb25kaXRpb24gIgorLQkJICAgICAgIiglcywgJWQsICVkLCAlcykgPSAl bGRcbiIsCistCQkgICAgICBjb3JlX2FkZHJfdG9fc3RyaW5nIChhZGRyKSwgbGVuLCBydywKKysJ CSAgICAgICIoJXMsICVzLCAlZCwgJXMpID0gJWxkXG4iLAorKwkJICAgICAgY29yZV9hZGRyX3Rv X3N0cmluZyAoYWRkciksIHBsb25nZXN0IChsZW4pLCBydywKKyAJCSAgICAgIGhvc3RfYWRkcmVz c190b19zdHJpbmcgKGNvbmQpLCAodW5zaWduZWQgbG9uZykgcmV0dmFsKTsKKyAgIHJldHVybiBy ZXR2YWw7CisgfQorQEAgLTQzMDksNyArNDMxMSw3IEBAIGRlYnVnX3RvX3N0b3BwZWRfZGF0YV9h ZGRyZXNzIChzdHJ1Y3QgdGFyZ2V0X29wcyAqdGFyZ2V0LCBDT1JFX0FERFIgKmFkZHIpCisgc3Rh dGljIGludAorIGRlYnVnX3RvX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0 YXJnZXRfb3BzICp0YXJnZXQsCisgCQkJCSAgICAgICBDT1JFX0FERFIgYWRkciwKKy0JCQkJICAg ICAgIENPUkVfQUREUiBzdGFydCwgaW50IGxlbmd0aCkKKysJCQkJICAgICAgIENPUkVfQUREUiBz dGFydCwgTE9OR0VTVCBsZW5ndGgpCisgeworICAgaW50IHJldHZhbDsKKyAKK0BAIC00MzE3LDkg KzQzMTksOSBAQCBkZWJ1Z190b193YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1Y3Qg dGFyZ2V0X29wcyAqdGFyZ2V0LAorIAkJCQkJCQkgc3RhcnQsIGxlbmd0aCk7CisgCisgICBmcHJp bnRmX2ZpbHRlcmVkIChnZGJfc3RkbG9nLAorLQkJICAgICJ0YXJnZXRfd2F0Y2hwb2ludF9hZGRy X3dpdGhpbl9yYW5nZSAoJXMsICVzLCAlZCkgPSAlZFxuIiwKKysJCSAgICAidGFyZ2V0X3dhdGNo cG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKCVzLCAlcywgJXMpID0gJWRcbiIsCisgCQkgICAgY29y ZV9hZGRyX3RvX3N0cmluZyAoYWRkciksIGNvcmVfYWRkcl90b19zdHJpbmcgKHN0YXJ0KSwKKy0J CSAgICBsZW5ndGgsIHJldHZhbCk7CisrCQkgICAgcGxvbmdlc3QgKGxlbmd0aCksIHJldHZhbCk7 CisgICByZXR1cm4gcmV0dmFsOworIH0KKyAKK0BAIC00MzU0LDcgKzQzNTYsNyBAQCBkZWJ1Z190 b19yZW1vdmVfaHdfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisgfQorIAor IHN0YXRpYyBpbnQKKy1kZWJ1Z190b19pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIs IGludCBsZW4sIGludCB0eXBlLAorK2RlYnVnX3RvX2luc2VydF93YXRjaHBvaW50IChDT1JFX0FE RFIgYWRkciwgTE9OR0VTVCBsZW4sIGludCB0eXBlLAorIAkJCSAgICBzdHJ1Y3QgZXhwcmVzc2lv biAqY29uZCkKKyB7CisgICBpbnQgcmV0dmFsOworQEAgLTQzNjIsMTQgKzQzNjQsMTQgQEAgZGVi dWdfdG9faW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgdHlw ZSwKKyAgIHJldHZhbCA9IGRlYnVnX3RhcmdldC50b19pbnNlcnRfd2F0Y2hwb2ludCAoYWRkciwg bGVuLCB0eXBlLCBjb25kKTsKKyAKKyAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywK Ky0JCSAgICAgICJ0YXJnZXRfaW5zZXJ0X3dhdGNocG9pbnQgKCVzLCAlZCwgJWQsICVzKSA9ICVs ZFxuIiwKKy0JCSAgICAgIGNvcmVfYWRkcl90b19zdHJpbmcgKGFkZHIpLCBsZW4sIHR5cGUsCisr CQkgICAgICAidGFyZ2V0X2luc2VydF93YXRjaHBvaW50ICglcywgJXMsICVkLCAlcykgPSAlbGRc biIsCisrCQkgICAgICBjb3JlX2FkZHJfdG9fc3RyaW5nIChhZGRyKSwgcGxvbmdlc3QgKGxlbiks IHR5cGUsCisgCQkgICAgICBob3N0X2FkZHJlc3NfdG9fc3RyaW5nIChjb25kKSwgKHVuc2lnbmVk IGxvbmcpIHJldHZhbCk7CisgICByZXR1cm4gcmV0dmFsOworIH0KKyAKKyBzdGF0aWMgaW50Cist ZGVidWdfdG9fcmVtb3ZlX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQg dHlwZSwKKytkZWJ1Z190b19yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdF U1QgbGVuLCBpbnQgdHlwZSwKKyAJCQkgICAgc3RydWN0IGV4cHJlc3Npb24gKmNvbmQpCisgewor ICAgaW50IHJldHZhbDsKK0BAIC00Mzc3LDggKzQzNzksOCBAQCBkZWJ1Z190b19yZW1vdmVfd2F0 Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCB0eXBlLAorICAgcmV0dmFsID0g ZGVidWdfdGFyZ2V0LnRvX3JlbW92ZV93YXRjaHBvaW50IChhZGRyLCBsZW4sIHR5cGUsIGNvbmQp OworIAorICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAorLQkJICAgICAgInRhcmdl dF9yZW1vdmVfd2F0Y2hwb2ludCAoJXMsICVkLCAlZCwgJXMpID0gJWxkXG4iLAorLQkJICAgICAg Y29yZV9hZGRyX3RvX3N0cmluZyAoYWRkciksIGxlbiwgdHlwZSwKKysJCSAgICAgICJ0YXJnZXRf cmVtb3ZlX3dhdGNocG9pbnQgKCVzLCAlcywgJWQsICVzKSA9ICVsZFxuIiwKKysJCSAgICAgIGNv cmVfYWRkcl90b19zdHJpbmcgKGFkZHIpLCBwbG9uZ2VzdCAobGVuKSwgdHlwZSwKKyAJCSAgICAg IGhvc3RfYWRkcmVzc190b19zdHJpbmcgKGNvbmQpLCAodW5zaWduZWQgbG9uZykgcmV0dmFsKTsK KyAgIHJldHVybiByZXR2YWw7CisgfQorZGlmZiAtLWdpdCBhL2dkYi90YXJnZXQuaCBiL2dkYi90 YXJnZXQuaAoraW5kZXggNjkyMjhlMS4uNGI1MmQ1MyAxMDA2NDQKKy0tLSBhL2dkYi90YXJnZXQu aAorKysrIGIvZ2RiL3RhcmdldC5oCitAQCAtNDY2LDggKzQ2Niw4IEBAIHN0cnVjdCB0YXJnZXRf b3BzCisgCisgICAgIC8qIERvY3VtZW50YXRpb24gb2Ygd2hhdCB0aGUgdHdvIHJvdXRpbmVzIGJl bG93IGFyZSBleHBlY3RlZCB0byBkbyBpcworICAgICAgICBwcm92aWRlZCB3aXRoIHRoZSBjb3Jy ZXNwb25kaW5nIHRhcmdldF8qIG1hY3Jvcy4gICovCistICAgIGludCAoKnRvX3JlbW92ZV93YXRj aHBvaW50KSAoQ09SRV9BRERSLCBpbnQsIGludCwgc3RydWN0IGV4cHJlc3Npb24gKik7CistICAg IGludCAoKnRvX2luc2VydF93YXRjaHBvaW50KSAoQ09SRV9BRERSLCBpbnQsIGludCwgc3RydWN0 IGV4cHJlc3Npb24gKik7CisrICAgIGludCAoKnRvX3JlbW92ZV93YXRjaHBvaW50KSAoQ09SRV9B RERSLCBMT05HRVNULCBpbnQsIHN0cnVjdCBleHByZXNzaW9uICopOworKyAgICBpbnQgKCp0b19p bnNlcnRfd2F0Y2hwb2ludCkgKENPUkVfQUREUiwgTE9OR0VTVCwgaW50LCBzdHJ1Y3QgZXhwcmVz c2lvbiAqKTsKKyAKKyAgICAgaW50ICgqdG9faW5zZXJ0X21hc2tfd2F0Y2hwb2ludCkgKHN0cnVj dCB0YXJnZXRfb3BzICosCisgCQkJCSAgICAgIENPUkVfQUREUiwgQ09SRV9BRERSLCBpbnQpOwor QEAgLTQ3OCwxMyArNDc4LDEzIEBAIHN0cnVjdCB0YXJnZXRfb3BzCisgICAgIGludCB0b19oYXZl X2NvbnRpbnVhYmxlX3dhdGNocG9pbnQ7CisgICAgIGludCAoKnRvX3N0b3BwZWRfZGF0YV9hZGRy ZXNzKSAoc3RydWN0IHRhcmdldF9vcHMgKiwgQ09SRV9BRERSICopOworICAgICBpbnQgKCp0b193 YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlKSAoc3RydWN0IHRhcmdldF9vcHMgKiwKKy0JCQkJ CSAgICBDT1JFX0FERFIsIENPUkVfQUREUiwgaW50KTsKKysJCQkJCSAgICBDT1JFX0FERFIsIENP UkVfQUREUiwgTE9OR0VTVCk7CisgCisgICAgIC8qIERvY3VtZW50YXRpb24gb2YgdGhpcyByb3V0 aW5lIGlzIHByb3ZpZGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgdGFyZ2V0Xyog bWFjcm8uICAqLworICAgICBpbnQgKCp0b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpIChD T1JFX0FERFIsIExPTkdFU1QpOworIAorLSAgICBpbnQgKCp0b19jYW5fYWNjZWxfd2F0Y2hwb2lu dF9jb25kaXRpb24pIChDT1JFX0FERFIsIGludCwgaW50LAorKyAgICBpbnQgKCp0b19jYW5fYWNj ZWxfd2F0Y2hwb2ludF9jb25kaXRpb24pIChDT1JFX0FERFIsIExPTkdFU1QsIGludCwKKyAJCQkJ CSAgICAgIHN0cnVjdCBleHByZXNzaW9uICopOworICAgICBpbnQgKCp0b19tYXNrZWRfd2F0Y2hf bnVtX3JlZ2lzdGVycykgKHN0cnVjdCB0YXJnZXRfb3BzICosCisgCQkJCQkgIENPUkVfQUREUiwg Q09SRV9BRERSKTsKKworLS1NUF8vNkhSbEg2dnB5cXRTeTRDWXlNclg2YjItLQorCgpkaWZmIC0t Z2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIzb2YyNS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0 LWJpdHBvcy0yM29mMjUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u OTFmNmFkNQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUu cGF0Y2gKQEAgLTAsMCArMSwxMzI0IEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBh dGNoZXMvMjAxMi0wOS9tc2cwMDYzMC5odG1sCitTdWJqZWN0OiBbUEFUQ0ggNC80XSBCaXRwb3Mg ZXhwYW5zaW9uIC0gdGRlcCBjaGFuZ2VzCisKKworLS1NUF8vWF9XakRPdnovQl9mdmxzcm1Dd1Jk eGUKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VUy1BU0NJSQorQ29udGVudC1U cmFuc2Zlci1FbmNvZGluZzogN2JpdAorQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lCisKK0hp LAorCitUaGlzIGlzIHRoZSBsYXN0IHBhcnQgb2YgdGhlIGJpdHBvcyBjaGFuZ2UuICBUaGlzIHBh dGNoIGRvZXMgdGhlIHNhbWUKK3RoaW5nIHRoYXQgcGF0Y2ggMS80IGRvZXMsIGV4Y2VwdCB0aGF0 IGl0IGRvZXMgc28gaW4gdGhlICotdGRlcCBmaWxlcword2hlcmV2ZXIgbmVjZXNzYXJ5LiAgSSBz ZXBhcmF0ZWQgdGhlc2UgY2hhbmdlcyBtYWlubHkgYmVjYXVzZSB0aGV5IGFyZQorcmVsYXRlZCBh bmQgY2FuIGJlIHJldmlld2VkIGluZGVwZW5kZW50bHkuICBUZXN0ZWQgb24gRmVkb3JhIDE2IHg4 Nl82NC4KKworUmVnYXJkcywKK1NpZGRoZXNoCisKKy0tTVBfL1hfV2pET3Z6L0JfZnZsc3JtQ3dS ZHhlCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6 IHF1b3RlZC1wcmludGFibGUKK0NvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVu YW1lPUNoYW5nZUxvZy10ZGVwCisKK2dkYi9DaGFuZ2VMb2cKKworCSogYWxwaGEtdGRlcC5jIChh bHBoYV9wdXNoX2R1bW15X2NhbGwpOiBFeHBhbmQgQUNDVU1VTEFURV9TSVpFLAorCVJFUVVJUkVE X0FSR19SRUdTLCBPRkZTRVQsIExFTiwgVExFTiB0byBzc2l6ZV90LgorCShzdHJ1Y3QgYWxwaGFf YXJnKTogRXhwYW5kIG1lbWJlcnMgTEVOLCBPRkZTRVQgdG8gc3NpemVfdC4KKwkqIGFtZDY0LXRk ZXAuYyAoYW1kNjRfcHVzaF9hcmd1bWVudHMpOiBFeHBhbmQgTlVNX0VMRU1FTlRTLAorCUVMRU1F TlQgYW5kIExFTiB0byBMT05HRVNULgorCShhbWQ2NF9yZXR1cm5fdmFsdWUpOiBFeHBhbmQgTEVO IHRvIExPTkdFU1QuCisJKiBhbWQ2NC13aW5kb3dzLXRkZXAuYyAoYW1kNjRfd2luZG93c19yZXR1 cm5fdmFsdWUpOiBFeHBhbmQgTEVOCisJdG8gTE9OR0VTVC4KKwkqIGFybS10ZGVwLmMgKGFybV92 ZnBfY3ByY19zdWJfY2FuZGlkYXRlKTogUmV0dXJuIExPTkdFU1QuCisJRXhwYW5kIENPVU5ULCBT VUJfQ09VTlQgdG8gTE9OR0VTVC4KKwkoYXJtX3ZmcF9jYWxsX2NhbmRpZGF0ZSk6IEV4cGFuZCBD IHRvIExPTkdFU1QuCisJKGFybV9wdXNoX2R1bW15X2NhbGwpOiBFeHBhbmQgTEVOIHRvIExPTkdF U1QuCisJKiBhdnItdGRlcC5jIChzdHJ1Y3Qgc3RhY2tfaXRlbSk6IEV4cGFuZCBtZW1iZXIgTEVO IHRvIHNzaXplX3QuCisJKHB1c2hfc3RhY2tfaXRlbSk6IEV4cGFuZCBwYXJhbWV0ZXIgTEVOIHRv IHNzaXplX3QuCisJKGF2cl9wdXNoX2R1bW15X2NhbGwpOiBFeHBhbmQgTEFTVF9SRUdOVU0sIEos IExFTiB0byBzc2l6ZV90LgorCSogYmZpbi10ZGVwLmMgKGJmaW5fcHVzaF9kdW1teV9jYWxsKTog RXhwYW5kIFRPVEFMX0xFTiwKKwlDT05UQUlORVJfTEVOIHRvIHNzaXplX3QuCisJKiBjcmlzLXRk ZXAuYyAoc3RydWN0IHN0YWNrX2l0ZW0pOiBFeHBhbmQgbWVtYmVyIExFTiB0byBzc2l6ZV90Lgor CShwdXNoX3N0YWNrX2l0ZW0pOiBFeHBhbmQgcGFyYW1ldGVyIExFTiB0byBzc2l6ZV90LgorCShj cmlzX3B1c2hfZHVtbXlfY2FsbCk6IEV4cGFuZCBMRU4sIFJFR19ERU1BTkQsIEkgdG8gc3NpemVf dC4KKwkqIGg4MzAwLXRkZXAuYyAoaDgzMDBfcHVzaF9kdW1teV9jYWxsKTogRXhwYW5kIFNUQUNL X0FMTE9DLAorCVNUQUNLX09GRlNFVCB0byBMT05HRVNULiAgRXhwYW5kIExFTiwgUEFEREVEX0xF TiwgT0ZGU0VUIHRvCisJc3NpemVfdC4KKwkqIGhwcGEtdGRlcC5jIChocHBhNjRfcHVzaF9kdW1t eV9jYWxsKTogRXhwYW5kIExFTiB0byBMT05HRVNULgorCShocHBhNjRfcmV0dXJuX3ZhbHVlKTog TGlrZXdpc2UuCisJKiBpMzg2LWRhcndpbi10ZGVwLmMgKGkzODZfZGFyd2luX3B1c2hfZHVtbXlf Y2FsbCk6IEV4cGFuZAorCUFSR1NfU1BBQ0UgdG8gTE9OR0VTVC4KKwkqIGkzODYtdGRlcC5jIChp Mzg2X3B1c2hfZHVtbXlfY2FsbCk6IEV4cGFuZCBBUkdfU1BBQ0UsCisJQVJHX1NQQUNFX1VTRUQs IExFTiB0byBMT05HRVNULgorCShpMzg2X3JlZ19zdHJ1Y3RfcmV0dXJuX3ApOiBFeHBhbmQgTEVO IHRvIExPTkdFU1QuCisJKGkzODZfY29udmVydF9yZWdpc3Rlcl9wKTogTGlrZXdpc2UuCisJKGkz ODZfcmVnaXN0ZXJfdG9fdmFsdWUpOiBMaWtld2lzZS4KKwkoaTM4Nl92YWx1ZV90b19yZWdpc3Rl cik6IExpa2V3aXNlLgorCSogaWE2NC10ZGVwLmMgKGlhNjRfcHVzaF9kdW1teV9jYWxsKTogRXhw YW5kIEFSR09GRlNFVCwgTEVOLAorCU5TTE9UUywgTUVNU0xPVFMgdG8gTE9OR0VTVC4KKwkqIGlx MjAwMC10ZGVwLmMgKGlxMjAwMF9wdXNoX2R1bW15X2NhbGwpOiBFeHBhbmQgVFlQRUxFTiwKKwlT VEFDS1NQQUNFIHRvIExPTkdFU1QuCisJKiBtMzJyLXRkZXAuYyAobTMycl9wdXNoX2R1bW15X2Nh bGwpOiBFeHBhbmQgTEVOIHRvIExPTkdFU1QuCisJKiBtNjhrLXRkZXAuYyAobTY4a19yZWdfc3Ry dWN0X3JldHVybl9wKTogRXhwYW5kIExFTiB0byBMT05HRVNULgorCShtNjhrX3B1c2hfZHVtbXlf Y2FsbCk6IEV4cGFuZCBMRU4sIENPTlRBSU5FUl9MRU4sIE9GRlNFVCB0bworCUxPTkdFU1QuCisJ KiBtODhrLXRkZXAuYyAobTg4a19zdG9yZV9hcmd1bWVudHMpOiBFeHBhbmQgTlVNX1NUQUNLX1dP UkRTLAorCUxFTiwgU1RBQ0tfV09SRCB0byBMT05HRVNULgorCSogbWVwLXRkZXAuYyAocHVzaF9s YXJnZV9hcmd1bWVudHMpOiBFeHBhbmQgQVJHX0xFTiB0byBVTE9OR0VTVC4KKwkqIG1pY3JvYmxh emUtdGRlcC5jIChtaWNyb2JsYXplX3N0b3JlX3JldHVybl92YWx1ZSk6IEV4cGFuZCBMRU4gdG8K KwlMT05HRVNULgorCSogbWlwcy10ZGVwLmMgKG1pcHNfeGZlcl9yZWdpc3Rlcik6IEV4cGFuZCBw YXJhbWV0ZXIgQlVGX09GRlNFVCB0bworCUxPTkdFU1QuICBVc2UgcGxvbmdlc3QgdG8gZm9ybWF0 IHByaW50IEJVRl9PRkZTRVQuCisJKG1pcHNfZWFiaV9wdXNoX2R1bW15X2NhbGwpOiBFeHBhbmQg TEVOIHRvIExPTkdFU1QuICBVc2UgcGxvbmdlc3QKKwl0byBmb3JtYXQgcHJpbnQgTEVOLgorCSht aXBzX24zMm42NF9mcF9hcmdfY2h1bmtfcCk6IEV4cGFuZCBwYXJhbWV0ZXIgT0ZGU0VUIHRvIExP TkdFU1QuCisJRXhwYW5kIFBPUyB0byBMT05HRVNULgorCShtaXBzX24zMm42NF9wdXNoX2R1bW15 X2NhbGwpOiBFeHBhbmQgTEVOIHRvIExPTkdFU1QuCisJKG1pcHNfbjMybjY0X3JldHVybl92YWx1 ZSk6IEV4cGFuZCBPRkZTRVQgdG8gTE9OR0VTVC4gIFVzZQorCXBsb25nZXN0IHRvIGZvcm1hdCBw cmludCBPRkZTRVQuCisJKG1pcHNfbzMyX3B1c2hfZHVtbXlfY2FsbCk6IEV4cGFuZCBMRU4gdG8g TE9OR0VTVC4gIFVzZSBwbG9uZ2VzdAorCXRvIGZvcm1hdCBwcmludCBMRU4uCisJKG1pcHNfbzY0 X3B1c2hfZHVtbXlfY2FsbCk6IEV4cGFuZCBMRU4sIFNUQUNLX09GRlNFVCB0byBMT05HRVNULgor CVVzZSBwbG9uZ2VzdCB0byBmb3JtYXQgcHJpbnQgTEVOLgorCSogbW4xMDMwMC10ZGVwLmMgKG1u MTAzMDBfcHVzaF9kdW1teV9jYWxsKTogRXhwYW5kIExFTiB0bworCUxPTkdFU1QuCisJKiBtdC10 ZGVwLmMgKG10X3B1c2hfZHVtbXlfY2FsbCk6IEV4cGFuZCBTVEFDS19ERVNULCBUWVBFTEVOIHRv CisJTE9OR0VTVC4KKwkqIHBwYy1zeXN2LXRkZXAuYyAocHBjX3N5c3ZfYWJpX3B1c2hfZHVtbXlf Y2FsbCk6IEV4cGFuZAorCUFSR1NQQUNFLCBBUkdPRkZTRVQsIFNUUlVDVE9GRlNFVCwgTEVOLCB0 byBMT05HRVNULgorCShwcGM2NF9zeXN2X2FiaV9wdXNoX2R1bW15X2NhbGwpOiBFeHBhbmQgQllU RSwgTEVOIHRvIHNzaXplX3QuCisJKiBybDc4LXRkZXAuYyAocmw3OF9wdXNoX2R1bW15X2NhbGwp OiBFeHBhbmQgTEVOLCBDT05UQUlORVJfTEVOCisJdG8gTE9OR0VTVC4KKwkqIHJzNjAwMC1haXgt dGRlcC5jIChyczYwMDBfcHVzaF9kdW1teV9jYWxsKTogRXhwYW5kIEFSR0JZVEVTLAorCUxFTiB0 byBMT05HRVNULgorCShyYW5fb3V0X29mX3JlZ2lzdGVyc19mb3JfYXJndW1lbnRzKTogRXhwYW5k IFNQQUNFLCBKSiB0bworCUxPTkdFU1QuCisJKiBzMzkwLXRkZXAuYyAoczM5MF92YWx1ZV9mcm9t X3JlZ2lzdGVyKTogRXhwYW5kIExFTiB0byBMT05HRVNULgorCShpc19wb3dlcl9vZl90d28pOiBF eHBhbmQgcGFyYW1ldGVyIE4gdG8gVUxPTkdFU1QuCisJKHMzOTBfcHVzaF9kdW1teV9jYWxsKTog RXhwYW5kIExFTkdUSCB0byBVTE9OR0VTVC4KKwkqIHNjb3JlLXRkZXAuYyAoc2NvcmVfcHVzaF9k dW1teV9jYWxsKTogRXhwYW5kIEFSR0xFTiB0bworCUxPTkdFU1QuCisJKiBzaC10ZGVwLmMgKHNo X3VzZV9zdHJ1Y3RfY29udmVudGlvbikgRXhwYW5kIGxlbiB0byBMT05HRVNULgorCShzaF9qdXN0 aWZ5X3ZhbHVlX2luX3JlZyk6IEV4cGFuZCBwYXJhbWV0ZXIgTEVOIHRvIExPTkdFU1QuCisJKHNo X3B1c2hfZHVtbXlfY2FsbF9mcHUpOiBFeHBhbmQgTEVOIHRvIExPTkdFU1QuICBFeHBhbmQgUkVH X1NJWkUKKwl0byBzc2l6ZV90LgorCShzaF9wdXNoX2R1bW15X2NhbGxfbm9mcHUpOiBMaWtld2lz ZS4KKwkqIHNoNjQtdGRlcC5jIChzaDY0X3B1c2hfZHVtbXlfY2FsbCk6IEV4cGFuZCBTVEFDS19P RkZTRVQsCisJU1RBQ0tfQUxMT0MsIExFTiB0byBMT05HRVNULgorCSogc3BhcmMtdGRlcC5jIChz cGFyYzMyX3N0b3JlX2FyZ3VtZW50cyk6IEV4cGFuZCBMRU4gdG8gTE9OR0VTVC4KKwkqIHNwYXJj NjQtdGRlcC5jIChzcGFyYzY0X3N0b3JlX2Zsb2F0aW5nX2ZpZWxkcyk6IEV4cGFuZAorCXBhcmFt ZXRlciBCSVRQT1MgdG8gTE9OR0VTVC4gIEV4cGFuZCBTVUJQT1MgdG8gTE9OR0VTVC4KKwkoc3Bh cmM2NF9leHRyYWN0X2Zsb2F0aW5nX2ZpZWxkcyk6IExpa2V3aXNlLgorCShzcGFyYzY0X3N0b3Jl X2FyZ3VtZW50cyk6IEV4cGFuZCBMRU4gdG8gTE9OR0VTVC4KKwkqIHNwdS10ZGVwLmMgKHNwdV9w dXNoX2R1bW15X2NhbGwpOiBFeHBhbmQgTl9SRUdTLCBMRU4gdG8gTE9OR0VTVC4KKwkoc3B1X3Zh bHVlX2Zyb21fcmVnaXN0ZXIpOiBFeHBhbmQgTEVOIHRvIExPTkdFU1QuCisJKiB0aWM2eC10ZGVw LmMgKHRpYzZ4X3B1c2hfZHVtbXlfY2FsbCk6IEV4cGFuZCBSRUZFUkVOQ0VTX09GRlNULAorCUxF TiB0byBMT05HRVNULiAgRXhwYW5kIExFTiB0byBzc2l6ZV90LiAgVXNlIHBsb25nZXN0IHRvIGZv cm1hdAorCXByaW50IExFTi4KKwkqIHRpbGVneC10ZGVwLmMgKHRpbGVneF9wdXNoX2R1bW15X2Nh bGwpOiBFeHBhbmQgVFlQRUxFTiwKKwlTTEFDS0xFTiwgQUxJR05MRU4gdG8gTE9OR0VTVC4KKwkq IHY4NTAtdGRlcC5jICh2ODUwX3B1c2hfZHVtbXlfY2FsbCk6IEV4cGFuZCBMRU4gdG8gTE9OR0VT VC4KKwkqIHZheC10ZGVwLmMgKHZheF9zdG9yZV9hcmd1bWVudHMpOiBFeHBhbmQgQ09VTlQsIExF TiB0byBMT05HRVNULgorCSh2YXhfcmV0dXJuX3ZhbHVlKTogRXhwYW5kIExFTiB0byBMT05HRVNU LgorCSogeHN0b3JteTE2LXRkZXAuYyAoeHN0b3JteTE2X3B1c2hfZHVtbXlfY2FsbCk6IEV4cGFu ZCBKLCBUWVBFTEVOCisJdG8gTE9OR0VTVC4KKwkqIHh0ZW5zYS10ZGVwLmMgKHh0ZW5zYV9zdG9y ZV9yZXR1cm5fdmFsdWUpOiBQcmludCBMRU4gaW5zdGVhZCBvZgorCVRZUEVfTEVOR1RILi4KKwko c3RydWN0IGFyZ3VtZW50X2luZm8pOiBFeHBvYW5kIG1lbWJlciBMRU5HVEggdG8gc3NpemVfdC4K Kwkoc3RydWN0IGFyZ3VtZW50X2luZm8udSk6IEV4cGFuZCBtZW1iZXIgT0ZGU0VUIHRvIHNzaXpl X3QuCisJKHh0ZW5zYV9wdXNoX2R1bW15X2NhbGwpOiBFeHBhbmQgU0laRSwgT05TVEFDS19TSVpF IHRvIExPTkdFU1QuCisJRXhwYW5kIE4gdG8gc3NpemVfdC4gIFVzZSBwdWxvbmdlc3QgdG8gZm9y bWF0IHByaW50IFRZUEVfTEVOR1RILgorCistLU1QXy9YX1dqRE92ei9CX2Z2bHNybUN3UmR4ZQor Q29udGVudC1UeXBlOiB0ZXh0L3gtcGF0Y2gKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdi aXQKK0NvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPWJpdHBvcy10ZGVw LnBhdGNoCisKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2FscGhhLXRkZXAuYworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9hbHBoYS10ZGVwLmMJMjAx Mi0xMS0wNyAyMjo0NjowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYv Z2RiL2FscGhhLXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjM3MTk4NDkyOSArMDEwMAorQEAg LTI5OSwxOCArMjk5LDE4IEBAIGFscGhhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gg KmcKKyB7CisgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRl ciAoZ2RiYXJjaCk7CisgICBpbnQgaTsKKy0gIGludCBhY2N1bXVsYXRlX3NpemUgPSBzdHJ1Y3Rf cmV0dXJuID8gOCA6IDA7CisrICBzc2l6ZV90IGFjY3VtdWxhdGVfc2l6ZSA9IHN0cnVjdF9yZXR1 cm4gPyA4IDogMDsKKyAgIHN0cnVjdCBhbHBoYV9hcmcKKyAgICAgeworICAgICAgIGNvbnN0IGdk Yl9ieXRlICpjb250ZW50czsKKy0gICAgICBpbnQgbGVuOworLSAgICAgIGludCBvZmZzZXQ7Cisr ICAgICAgc3NpemVfdCBsZW47CisrICAgICAgc3NpemVfdCBvZmZzZXQ7CisgICAgIH07CisgICBz dHJ1Y3QgYWxwaGFfYXJnICphbHBoYV9hcmdzCisgICAgID0gKHN0cnVjdCBhbHBoYV9hcmcgKikg YWxsb2NhIChuYXJncyAqIHNpemVvZiAoc3RydWN0IGFscGhhX2FyZykpOworICAgc3RydWN0IGFs cGhhX2FyZyAqbV9hcmc7CisgICBnZGJfYnl0ZSBhcmdfcmVnX2J1ZmZlcltBTFBIQV9SRUdJU1RF Ul9TSVpFICogQUxQSEFfTlVNX0FSR19SRUdTXTsKKy0gIGludCByZXF1aXJlZF9hcmdfcmVnczsK KysgIHNzaXplX3QgcmVxdWlyZWRfYXJnX3JlZ3M7CisgICBDT1JFX0FERFIgZnVuY19hZGRyID0g ZmluZF9mdW5jdGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7CisgCisgICAvKiBUaGUgQUJJIHBs YWNlcyB0aGUgYWRkcmVzcyBvZiB0aGUgY2FsbGVkIGZ1bmN0aW9uIGluIFQxMi4gICovCitAQCAt NDMwLDggKzQzMCw4IEBAIGFscGhhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcK KyAgIGZvciAoaSA9IG5hcmdzOyBtX2FyZy0tLCAtLWkgPj0gMDspCisgICAgIHsKKyAgICAgICBj b25zdCBnZGJfYnl0ZSAqY29udGVudHMgPSBtX2FyZy0+Y29udGVudHM7CistICAgICAgaW50IG9m ZnNldCA9IG1fYXJnLT5vZmZzZXQ7CistICAgICAgaW50IGxlbiA9IG1fYXJnLT5sZW47CisrICAg ICAgc3NpemVfdCBvZmZzZXQgPSBtX2FyZy0+b2Zmc2V0OworKyAgICAgIHNzaXplX3QgbGVuID0g bV9hcmctPmxlbjsKKyAKKyAgICAgICAvKiBDb3B5IHRoZSBieXRlcyBkZXN0aW5lZCBmb3IgcmVn aXN0ZXJzIGludG8gYXJnX3JlZ19idWZmZXIuICAqLworICAgICAgIGlmIChvZmZzZXQgPCBzaXpl b2YoYXJnX3JlZ19idWZmZXIpKQorQEAgLTQ0Myw3ICs0NDMsNyBAQCBhbHBoYV9wdXNoX2R1bW15 X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnCisgCSAgICB9CisgCSAgZWxzZQorIAkgICAgeworLQkg ICAgICBpbnQgdGxlbiA9IHNpemVvZihhcmdfcmVnX2J1ZmZlcikgLSBvZmZzZXQ7CisrCSAgICAg IHNzaXplX3QgdGxlbiA9IHNpemVvZihhcmdfcmVnX2J1ZmZlcikgLSBvZmZzZXQ7CisgCSAgICAg IG1lbWNweSAoYXJnX3JlZ19idWZmZXIgKyBvZmZzZXQsIGNvbnRlbnRzLCB0bGVuKTsKKyAJICAg ICAgb2Zmc2V0ICs9IHRsZW47CisgCSAgICAgIGNvbnRlbnRzICs9IHRsZW47CitJbmRleDogZ2Ri LTcuNS4wLjIwMTIwOTI2L2dkYi9hbWQ2NC10ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41 LjAuMjAxMjA5MjYub3JpZy9nZGIvYW1kNjQtdGRlcC5jCTIwMTItMTEtMDcgMjI6MDk6MjQuMDAw MDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9hbWQ2NC10ZGVwLmMJMjAx Mi0xMS0wNyAyMjo0Nzo1Ny4zNzQ5ODQ5MjMgKzAxMDAKK0BAIC01OTksNyArNTk5LDcgQEAgYW1k NjRfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYQorIHsKKyAgIHN0cnVjdCBnZGJh cmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworICAgZW51bSBhbWQ2NF9y ZWdfY2xhc3MgY2xhc3NbMl07CistICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworKyAg TE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgICBzdGF0aWMgaW50IGludGVnZXJf cmVnbnVtW10gPSB7IEFNRDY0X1JBWF9SRUdOVU0sIEFNRDY0X1JEWF9SRUdOVU0gfTsKKyAgIHN0 YXRpYyBpbnQgc3NlX3JlZ251bVtdID0geyBBTUQ2NF9YTU0wX1JFR05VTSwgQU1ENjRfWE1NMV9S RUdOVU0gfTsKKyAgIGludCBpbnRlZ2VyX3JlZyA9IDA7CitAQCAtNzI4LDggKzcyOCw4IEBAIGFt ZDY0X3B1c2hfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUgKnIKKyAgICAgIHRoYXQgcmVnaXN0 ZXIgbnVtYmVyIChvciBhIG5lZ2F0aXZlIHZhbHVlIG90aGVyd2lzZSkuICAqLworICAgaW50ICph cmdfYWRkcl9yZWdubyA9IGFsbG9jYSAobmFyZ3MgKiBzaXplb2YgKGludCkpOworICAgaW50IG51 bV9zdGFja19hcmdzID0gMDsKKy0gIGludCBudW1fZWxlbWVudHMgPSAwOworLSAgaW50IGVsZW1l bnQgPSAwOworKyAgTE9OR0VTVCBudW1fZWxlbWVudHMgPSAwOworKyAgTE9OR0VTVCBlbGVtZW50 ID0gMDsKKyAgIGludCBpbnRlZ2VyX3JlZyA9IDA7CisgICBpbnQgc3NlX3JlZyA9IDA7CisgICBp bnQgaTsKK0BAIC03NDMsNyArNzQzLDcgQEAgYW1kNjRfcHVzaF9hcmd1bWVudHMgKHN0cnVjdCBy ZWdjYWNoZSAqcgorICAgZm9yIChpID0gMDsgaSA8IG5hcmdzOyBpKyspCisgICAgIHsKKyAgICAg ICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZ3NbaV0pOworLSAgICAgIGludCBs ZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisrICAgICAgTE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdU SCAodHlwZSk7CisgICAgICAgZW51bSBhbWQ2NF9yZWdfY2xhc3MgY2xhc3NbMl07CisgICAgICAg aW50IG5lZWRlZF9pbnRlZ2VyX3JlZ3MgPSAwOworICAgICAgIGludCBuZWVkZWRfc3NlX3JlZ3Mg PSAwOworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvYW1kNjQtd2luZG93 cy10ZGVwLmMJMjAxMi0wNi0wNSAxNTo1MDo1Ny4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy41 LjAuMjAxMjA5MjYvZ2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIwMTItMTEtMDcgMjI6NDc6NTcu NDEzOTg0ODY3ICswMTAwCitAQCAtNzgsNyArNzgsNyBAQCBhbWQ2NF93aW5kb3dzX3JldHVybl92 YWx1ZSAoc3RydWN0IGdkYmFyCisgCQkJICAgIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgcmVn Y2FjaGUgKnJlZ2NhY2hlLAorIAkJCSAgICBnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3QgZ2RiX2J5 dGUgKndyaXRlYnVmKQorIHsKKy0gIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisrICBM T05HRVNUIGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAgIGludCByZWdudW0gPSAtMTsKKyAK KyAgIC8qIFNlZSBpZiBvdXIgdmFsdWUgaXMgcmV0dXJuZWQgdGhyb3VnaCBhIHJlZ2lzdGVyLiAg SWYgaXQgaXMsIHRoZW4KK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2FybS10ZGVwLmMK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvYXJtLXRkZXAuYwky MDEyLTA2LTI1IDE0OjMyOjQ1LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDky Ni9nZGIvYXJtLXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjQyMjk4NDg1NSArMDEwMAorQEAg LTMzNzcsNyArMzM3Nyw3IEBAIGFybV92ZnBfY3ByY19yZWdfY2hhciAoZW51bSBhcm1fdmZwX2Nw cmMKKyAgICBhcnJheSkuICBWZWN0b3JzIGFuZCBjb21wbGV4IHR5cGVzIGFyZSBub3QgY3VycmVu dGx5IHN1cHBvcnRlZCwKKyAgICBtYXRjaGluZyB0aGUgZ2VuZXJpYyBBQVBDUyBzdXBwb3J0LiAg Ki8KKyAKKy1zdGF0aWMgaW50Cisrc3RhdGljIExPTkdFU1QKKyBhcm1fdmZwX2NwcmNfc3ViX2Nh bmRpZGF0ZSAoc3RydWN0IHR5cGUgKnQsCisgCQkJICAgIGVudW0gYXJtX3ZmcF9jcHJjX2Jhc2Vf dHlwZSAqYmFzZV90eXBlKQorIHsKK0BAIC0zNDA4LDcgKzM0MDgsNyBAQCBhcm1fdmZwX2NwcmNf c3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUKKyAKKyAgICAgY2FzZSBUWVBFX0NPREVfQVJSQVk6 CisgICAgICAgeworLQlpbnQgY291bnQ7CisrCUxPTkdFU1QgY291bnQ7CisgCXVuc2lnbmVkIHVu aXRsZW47CisgCWNvdW50ID0gYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKFRZUEVfVEFSR0VU X1RZUEUgKHQpLCBiYXNlX3R5cGUpOworIAlpZiAoY291bnQgPT0gLTEpCitAQCAtMzQyOCwxMyAr MzQyOCwxNSBAQCBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUKKyAKKyAg ICAgY2FzZSBUWVBFX0NPREVfU1RSVUNUOgorICAgICAgIHsKKy0JaW50IGNvdW50ID0gMDsKKysJ TE9OR0VTVCBjb3VudCA9IDA7CisgCXVuc2lnbmVkIHVuaXRsZW47CisgCWludCBpOworIAlmb3Ig KGkgPSAwOyBpIDwgVFlQRV9ORklFTERTICh0KTsgaSsrKQorIAkgIHsKKy0JICAgIGludCBzdWJf Y291bnQgPSBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBp KSwKKy0JCQkJCQkJYmFzZV90eXBlKTsKKysJICAgIExPTkdFU1Qgc3ViX2NvdW50OworKworKwkg ICAgc3ViX2NvdW50ID0gYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKFRZUEVfRklFTERfVFlQ RSAodCwgaSksCisrCQkJCQkJICAgIGJhc2VfdHlwZSk7CisgCSAgICBpZiAoc3ViX2NvdW50ID09 IC0xKQorIAkgICAgICByZXR1cm4gLTE7CisgCSAgICBjb3VudCArPSBzdWJfY291bnQ7CitAQCAt MzQ1NCwxMyArMzQ1NiwxNSBAQCBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5 cGUKKyAKKyAgICAgY2FzZSBUWVBFX0NPREVfVU5JT046CisgICAgICAgeworLQlpbnQgY291bnQg PSAwOworKwlMT05HRVNUIGNvdW50ID0gMDsKKyAJdW5zaWduZWQgdW5pdGxlbjsKKyAJaW50IGk7 CisgCWZvciAoaSA9IDA7IGkgPCBUWVBFX05GSUVMRFMgKHQpOyBpKyspCisgCSAgeworLQkgICAg aW50IHN1Yl9jb3VudCA9IGFybV92ZnBfY3ByY19zdWJfY2FuZGlkYXRlIChUWVBFX0ZJRUxEX1RZ UEUgKHQsIGkpLAorLQkJCQkJCQliYXNlX3R5cGUpOworKwkgICAgTE9OR0VTVCBzdWJfY291bnQ7 CisrCisrCSAgICBzdWJfY291bnQgPSBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoVFlQRV9G SUVMRF9UWVBFICh0LCBpKSwKKysJCQkJCQkgICAgYmFzZV90eXBlKTsKKyAJICAgIGlmIChzdWJf Y291bnQgPT0gLTEpCisgCSAgICAgIHJldHVybiAtMTsKKyAJICAgIGNvdW50ID0gKGNvdW50ID4g c3ViX2NvdW50ID8gY291bnQgOiBzdWJfY291bnQpOworQEAgLTM0OTYsNyArMzUwMCw3IEBAIGFy bV92ZnBfY2FsbF9jYW5kaWRhdGUgKHN0cnVjdCB0eXBlICp0LAorIAkJCWludCAqY291bnQpCisg eworICAgZW51bSBhcm1fdmZwX2NwcmNfYmFzZV90eXBlIGIgPSBWRlBfQ1BSQ19VTktOT1dOOwor LSAgaW50IGMgPSBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAodCwgJmIpOworKyAgTE9OR0VT VCBjID0gYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKHQsICZiKTsKKyAgIGlmIChjIDw9IDAg fHwgYyA+IDQpCisgICAgIHJldHVybiAwOworICAgKmJhc2VfdHlwZSA9IGI7CitAQCAtMzU3Nyw3 ICszNTgxLDcgQEAgYXJtX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYgorIAor ICAgZm9yIChhcmdudW0gPSAwOyBhcmdudW0gPCBuYXJnczsgYXJnbnVtKyspCisgICAgIHsKKy0g ICAgICBpbnQgbGVuOworKyAgICAgIExPTkdFU1QgbGVuOworICAgICAgIHN0cnVjdCB0eXBlICph cmdfdHlwZTsKKyAgICAgICBzdHJ1Y3QgdHlwZSAqdGFyZ2V0X3R5cGU7CisgICAgICAgZW51bSB0 eXBlX2NvZGUgdHlwZWNvZGU7CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9hdnItdGRl cC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2F2ci10ZGVw LmMJMjAxMi0wNS0xOCAyMzowMjo0Ny4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy41LjAuMjAx MjA5MjYvZ2RiL2F2ci10ZGVwLmMJMjAxMi0xMS0wNyAyMjo0Nzo1Ny40NDQ5ODQ4MjMgKzAxMDAK K0BAIC0xMTcwLDEzICsxMTcwLDE0IEBAIGF2cl9kdW1teV9pZCAoc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsIHMKKyAKKyBzdHJ1Y3Qgc3RhY2tfaXRlbQorIHsKKy0gIGludCBsZW47CisrICBzc2l6 ZV90IGxlbjsKKyAgIHN0cnVjdCBzdGFja19pdGVtICpwcmV2OworICAgdm9pZCAqZGF0YTsKKyB9 OworIAorIHN0YXRpYyBzdHJ1Y3Qgc3RhY2tfaXRlbSAqCistcHVzaF9zdGFja19pdGVtIChzdHJ1 Y3Qgc3RhY2tfaXRlbSAqcHJldiwgY29uc3QgYmZkX2J5dGUgKmNvbnRlbnRzLCBpbnQgbGVuKQor K3B1c2hfc3RhY2tfaXRlbSAoc3RydWN0IHN0YWNrX2l0ZW0gKnByZXYsIGNvbnN0IGJmZF9ieXRl ICpjb250ZW50cywKKysJCSBzc2l6ZV90IGxlbikKKyB7CisgICBzdHJ1Y3Qgc3RhY2tfaXRlbSAq c2k7CisgICBzaSA9IHhtYWxsb2MgKHNpemVvZiAoc3RydWN0IHN0YWNrX2l0ZW0pKTsKK0BAIC0x MjY1LDEyICsxMjY2LDEyIEBAIGF2cl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpn ZGIKKyAKKyAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQorICAgICB7CistICAgICAgaW50 IGxhc3RfcmVnbnVtOworLSAgICAgIGludCBqOworKyAgICAgIHNzaXplX3QgbGFzdF9yZWdudW07 CisrICAgICAgc3NpemVfdCBqOworICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1tpXTsK KyAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFy ZykpOworICAgICAgIGNvbnN0IGJmZF9ieXRlICpjb250ZW50cyA9IHZhbHVlX2NvbnRlbnRzIChh cmcpOworLSAgICAgIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisrICAgICAgc3NpemVf dCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgCisgICAgICAgLyogQ2FsY3VsYXRlIHRoZSBw b3RlbnRpYWwgbGFzdCByZWdpc3RlciBuZWVkZWQuICAqLworICAgICAgIGxhc3RfcmVnbnVtID0g cmVnbnVtIC0gKGxlbiArIChsZW4gJiAxKSk7CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dk Yi9iZmluLXRkZXAuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dk Yi9iZmluLXRkZXAuYwkyMDEyLTExLTA3IDIyOjA5OjI0LjAwMDAwMDAwMCArMDEwMAorKysrIGdk Yi03LjUuMC4yMDEyMDkyNi9nZGIvYmZpbi10ZGVwLmMJMjAxMi0xMS0wNyAyMjo0Nzo1Ny40NTA5 ODQ4MTQgKzAxMDAKK0BAIC01MDYsNyArNTA2LDcgQEAgYmZpbl9wdXNoX2R1bW15X2NhbGwgKHN0 cnVjdCBnZGJhcmNoICpnZAorICAgY2hhciBidWZbNF07CisgICBpbnQgaTsKKyAgIGxvbmcgcmVn X3IwLCByZWdfcjEsIHJlZ19yMjsKKy0gIGludCB0b3RhbF9sZW4gPSAwOworKyAgc3NpemVfdCB0 b3RhbF9sZW4gPSAwOworICAgZW51bSBiZmluX2FiaSBhYmkgPSBiZmluX2FiaSAoZ2RiYXJjaCk7 CisgICBDT1JFX0FERFIgZnVuY19hZGRyID0gZmluZF9mdW5jdGlvbl9hZGRyIChmdW5jdGlvbiwg TlVMTCk7CisgCitAQCAtNTMwLDcgKzUzMCw3IEBAIGJmaW5fcHVzaF9kdW1teV9jYWxsIChzdHJ1 Y3QgZ2RiYXJjaCAqZ2QKKyAgICAgeworICAgICAgIHN0cnVjdCB0eXBlICp2YWx1ZV90eXBlID0g dmFsdWVfZW5jbG9zaW5nX3R5cGUgKGFyZ3NbaV0pOworICAgICAgIHN0cnVjdCB0eXBlICphcmdf dHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUpOworLSAgICAgIGludCBjb250YWluZXJf bGVuID0gKFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlKSArIDMpICYgfjM7CisrICAgICAgc3NpemVf dCBjb250YWluZXJfbGVuID0gKFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlKSArIDMpICYgfjM7Cisg CisgICAgICAgc3AgLT0gY29udGFpbmVyX2xlbjsKKyAgICAgICB3cml0ZV9tZW1vcnkgKHNwLCB2 YWx1ZV9jb250ZW50c193cml0ZWFibGUgKGFyZ3NbaV0pLCBjb250YWluZXJfbGVuKTsKK0luZGV4 OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2NyaXMtdGRlcC5jCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2Ri LTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2NyaXMtdGRlcC5jCTIwMTItMTEtMDcgMjI6MDk6MjQu MDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9jcmlzLXRkZXAuYwky MDEyLTExLTA3IDIyOjQ3OjU3LjQ1Mzk4NDgxMCArMDEwMAorQEAgLTY3MCwxMyArNjcwLDEzIEBA IHN0YXRpYyBDT1JFX0FERFIgY3Jpc191bndpbmRfc3AgKHN0cnVjdAorIAorIHN0cnVjdCBzdGFj a19pdGVtCisgeworLSAgaW50IGxlbjsKKysgIHNzaXplX3QgbGVuOworICAgc3RydWN0IHN0YWNr X2l0ZW0gKnByZXY7CisgICB2b2lkICpkYXRhOworIH07CisgCisgc3RhdGljIHN0cnVjdCBzdGFj a19pdGVtICoKKy1wdXNoX3N0YWNrX2l0ZW0gKHN0cnVjdCBzdGFja19pdGVtICpwcmV2LCB2b2lk ICpjb250ZW50cywgaW50IGxlbikKKytwdXNoX3N0YWNrX2l0ZW0gKHN0cnVjdCBzdGFja19pdGVt ICpwcmV2LCB2b2lkICpjb250ZW50cywgc3NpemVfdCBsZW4pCisgeworICAgc3RydWN0IHN0YWNr X2l0ZW0gKnNpOworICAgc2kgPSB4bWFsbG9jIChzaXplb2YgKHN0cnVjdCBzdGFja19pdGVtKSk7 CitAQCAtODQ5LDEzICs4NDksMTMgQEAgY3Jpc19wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJh cmNoICpnZAorIAorICAgZm9yIChhcmdudW0gPSAwOyBhcmdudW0gPCBuYXJnczsgYXJnbnVtKysp CisgICAgIHsKKy0gICAgICBpbnQgbGVuOworKyAgICAgIHNzaXplX3QgbGVuOworICAgICAgIGNo YXIgKnZhbDsKKy0gICAgICBpbnQgcmVnX2RlbWFuZDsKKy0gICAgICBpbnQgaTsKKysgICAgICBz c2l6ZV90IHJlZ19kZW1hbmQ7CisrICAgICAgc3NpemVfdCBpOworICAgICAgIAorLSAgICAgIGxl biA9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlIChhcmdzW2FyZ251bV0pKTsKKyAgICAgICB2YWwg PSAoY2hhciAqKSB2YWx1ZV9jb250ZW50cyAoYXJnc1thcmdudW1dKTsKKysgICAgICBsZW4gPSBU WVBFX0xFTkdUSCAodmFsdWVfdHlwZSAoYXJnc1thcmdudW1dKSk7CisgICAgICAgCisgICAgICAg LyogSG93IG1heSByZWdpc3RlcnMgd29ydGggb2Ygc3RvcmFnZSBkbyB3ZSBuZWVkIGZvciB0aGlz IGFyZ3VtZW50PyAgKi8KKyAgICAgICByZWdfZGVtYW5kID0gKGxlbiAvIDQpICsgKGxlbiAlIDQg IT0gMCA/IDEgOiAwKTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2g4MzAwLXRkZXAu YworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9oODMwMC10ZGVw LmMJMjAxMi0xMS0wNyAyMjowOToyNC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAx MjA5MjYvZ2RiL2g4MzAwLXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjQ1Njk4NDgwNiArMDEw MAorQEAgLTY0MSw3ICs2NDEsNyBAQCBoODMwMF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJh cmNoICpnCisgCQkgICAgICAgaW50IHN0cnVjdF9yZXR1cm4sIENPUkVfQUREUiBzdHJ1Y3RfYWRk cikKKyB7CisgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRl ciAoZ2RiYXJjaCk7CistICBpbnQgc3RhY2tfYWxsb2MgPSAwLCBzdGFja19vZmZzZXQgPSAwOwor KyAgTE9OR0VTVCBzdGFja19hbGxvYyA9IDAsIHN0YWNrX29mZnNldCA9IDA7CisgICBpbnQgd29y ZHNpemUgPSBCSU5XT1JEIChnZGJhcmNoKTsKKyAgIGludCByZWcgPSBFX0FSRzBfUkVHTlVNOwor ICAgaW50IGFyZ3VtZW50OworQEAgLTY2OCwxMSArNjY4LDExIEBAIGg4MzAwX3B1c2hfZHVtbXlf Y2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKKyAgICAgeworICAgICAgIHN0cnVjdCBjbGVhbnVwICpi YWNrX3RvOworICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnc1thcmd1 bWVudF0pOworLSAgICAgIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgICAgICAgY2hh ciAqY29udGVudHMgPSAoY2hhciAqKSB2YWx1ZV9jb250ZW50cyAoYXJnc1thcmd1bWVudF0pOwor KyAgICAgIHNzaXplX3QgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworIAorICAgICAgIC8qIFBh ZCB0aGUgYXJndW1lbnQgYXBwcm9wcmlhdGVseS4gICovCistICAgICAgaW50IHBhZGRlZF9sZW4g PSBhbGlnbl91cCAobGVuLCB3b3Jkc2l6ZSk7CisrICAgICAgc3NpemVfdCBwYWRkZWRfbGVuID0g YWxpZ25fdXAgKGxlbiwgd29yZHNpemUpOworICAgICAgIGdkYl9ieXRlICpwYWRkZWQgPSB4bWFs bG9jIChwYWRkZWRfbGVuKTsKKyAgICAgICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwg cGFkZGVkKTsKKyAKK0BAIC03MDEsNyArNzAxLDcgQEAgaDgzMDBfcHVzaF9kdW1teV9jYWxsIChz dHJ1Y3QgZ2RiYXJjaCAqZworIAkgICAgICAvKiBIZWF2ZW5zIHRvIEJldHN5IC0tLSBpdCdzIHJl YWxseSBnb2luZyBpbiByZWdpc3RlcnMhCisgCSAgICAgICAgIE5vdGUgdGhhdCBvbiB0aGUgaDgv MzAwcywgdGhlcmUgYXJlIGdhcHMgYmV0d2VlbiB0aGUKKyAJICAgICAgICAgcmVnaXN0ZXJzIGlu IHRoZSByZWdpc3RlciBmaWxlLiAgKi8KKy0JICAgICAgaW50IG9mZnNldDsKKysJICAgICAgc3Np emVfdCBvZmZzZXQ7CisgCisgCSAgICAgIGZvciAob2Zmc2V0ID0gMDsgb2Zmc2V0IDwgcGFkZGVk X2xlbjsgb2Zmc2V0ICs9IHdvcmRzaXplKQorIAkJeworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDky Ni9nZGIvaHBwYS10ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3Jp Zy9nZGIvaHBwYS10ZGVwLmMJMjAxMi0xMS0wNyAyMjowOToyNC4wMDAwMDAwMDAgKzAxMDAKKysr KyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2hwcGEtdGRlcC5jCTIwMTItMTEtMDcgMjI6NDg6MzEu Mzc4OTM2MDgzICswMTAwCitAQCAtOTYyLDcgKzk2Miw3IEBAIGhwcGE2NF9wdXNoX2R1bW15X2Nh bGwgKHN0cnVjdCBnZGJhcmNoICoKKyAgICAgeworICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0g YXJnc1tpXTsKKyAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZyk7Cist ICAgICAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKysgICAgICBMT05HRVNUIGxlbiA9 IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAgICAgICBjb25zdCBiZmRfYnl0ZSAqdmFsYnVmOworICAg ICAgIGJmZF9ieXRlIGZwdHJidWZbOF07CisgICAgICAgaW50IHJlZ251bTsKK0BAIC0xMTU3LDcg KzExNTcsNyBAQCBocHBhNjRfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCisgCQkg ICAgIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAorIAkJICAg ICBnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3QgZ2RiX2J5dGUgKndyaXRlYnVmKQorIHsKKy0gIGlu dCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisrICBMT05HRVNUIGxlbiA9IFRZUEVfTEVOR1RI ICh0eXBlKTsKKyAgIGludCByZWdudW0sIG9mZnNldDsKKyAKKyAgIGlmIChUWVBFX0xFTkdUSCAo dHlwZSkgPiAxNikKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2kzODYtZGFyd2luLXRk ZXAuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9pMzg2LWRh cndpbi10ZGVwLmMJMjAxMi0xMS0wNyAyMjowMzo1Ny4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGIt Ny41LjAuMjAxMjA5MjYvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3 LjQ3MDk4NDc4NiArMDEwMAorQEAgLTE2Niw3ICsxNjYsNyBAQCBpMzg2X2Rhcndpbl9wdXNoX2R1 bW15X2NhbGwgKHN0cnVjdCBnZGJhCisgCisgICBmb3IgKHdyaXRlX3Bhc3MgPSAwOyB3cml0ZV9w YXNzIDwgMjsgd3JpdGVfcGFzcysrKQorICAgICB7CistICAgICAgaW50IGFyZ3Nfc3BhY2UgPSAw OworKyAgICAgIExPTkdFU1QgYXJnc19zcGFjZSA9IDA7CisgICAgICAgaW50IG51bV9tMTI4ID0g MDsKKyAKKyAgICAgICBpZiAoc3RydWN0X3JldHVybikKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5 MjYvZ2RiL2kzODYtdGRlcC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9y aWcvZ2RiL2kzODYtdGRlcC5jCTIwMTItMTEtMDcgMjI6MDA6NDIuMDAwMDAwMDAwICswMTAwCisr KysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9pMzg2LXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3 LjQ3NDk4NDc4MCArMDEwMAorQEAgLTIzNTgsNyArMjM1OCw3IEBAIGkzODZfcHVzaF9kdW1teV9j YWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKyAgIGdkYl9ieXRlIGJ1Zls0XTsKKyAgIGludCBpOwor ICAgaW50IHdyaXRlX3Bhc3M7CistICBpbnQgYXJnc19zcGFjZSA9IDA7CisrICBMT05HRVNUIGFy Z3Nfc3BhY2UgPSAwOworIAorICAgLyogRGV0ZXJtaW5lIHRoZSB0b3RhbCBzcGFjZSByZXF1aXJl ZCBmb3IgYXJndW1lbnRzIGFuZCBzdHJ1Y3QKKyAgICAgIHJldHVybiBhZGRyZXNzIGluIGEgZmly c3QgcGFzcyAoYWxsb3dpbmcgZm9yIDE2LWJ5dGUtYWxpZ25lZAorQEAgLTIzNjYsNyArMjM2Niw3 IEBAIGkzODZfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKyAKKyAgIGZvciAo d3JpdGVfcGFzcyA9IDA7IHdyaXRlX3Bhc3MgPCAyOyB3cml0ZV9wYXNzKyspCisgICAgIHsKKy0g ICAgICBpbnQgYXJnc19zcGFjZV91c2VkID0gMDsKKysgICAgICBMT05HRVNUIGFyZ3Nfc3BhY2Vf dXNlZCA9IDA7CisgCisgICAgICAgaWYgKHN0cnVjdF9yZXR1cm4pCisgCXsKK0BAIC0yMzgzLDcg KzIzODMsNyBAQCBpMzg2X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCisgCisg ICAgICAgZm9yIChpID0gMDsgaSA8IG5hcmdzOyBpKyspCisgCXsKKy0JICBpbnQgbGVuID0gVFlQ RV9MRU5HVEggKHZhbHVlX2VuY2xvc2luZ190eXBlIChhcmdzW2ldKSk7CisrCSAgTE9OR0VTVCBs ZW4gPSBUWVBFX0xFTkdUSCAodmFsdWVfZW5jbG9zaW5nX3R5cGUgKGFyZ3NbaV0pKTsKKyAKKyAJ ICBpZiAod3JpdGVfcGFzcykKKyAJICAgIHsKK0BAIC0yNTkwLDcgKzI1OTAsNyBAQCBpMzg2X3Jl Z19zdHJ1Y3RfcmV0dXJuX3AgKHN0cnVjdCBnZGJhcmNoCisgeworICAgc3RydWN0IGdkYmFyY2hf dGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CisgICBlbnVtIHR5cGVfY29kZSBj b2RlID0gVFlQRV9DT0RFICh0eXBlKTsKKy0gIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7 CisrICBMT05HRVNUIGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAKKyAgIGdkYl9hc3NlcnQg KGNvZGUgPT0gVFlQRV9DT0RFX1NUUlVDVAorICAgICAgICAgICAgICAgfHwgY29kZSA9PSBUWVBF X0NPREVfVU5JT04KK0BAIC0zMDQyLDcgKzMwNDIsNyBAQCBzdGF0aWMgaW50CisgaTM4Nl9jb252 ZXJ0X3JlZ2lzdGVyX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorIAkJCSBpbnQgcmVnbnVt LCBzdHJ1Y3QgdHlwZSAqdHlwZSkKKyB7CistICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUp OworKyAgTE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgCisgICAvKiBWYWx1ZXMg bWF5IGJlIHNwcmVhZCBhY3Jvc3MgbXVsdGlwbGUgcmVnaXN0ZXJzLiAgTW9zdCBkZWJ1Z2dpbmcK KyAgICAgIGZvcm1hdHMgYXJlbid0IGV4cHJlc3NpdmUgZW5vdWdoIHRvIHNwZWNpZnkgdGhlIGxv Y2F0aW9ucywgc28KK0BAIC0zMDc1LDcgKzMwNzUsNyBAQCBpMzg2X3JlZ2lzdGVyX3RvX3ZhbHVl IChzdHJ1Y3QgZnJhbWVfaW5mCisgCQkJaW50ICpvcHRpbWl6ZWRwLCBpbnQgKnVuYXZhaWxhYmxl cCkKKyB7CisgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFt ZSk7CistICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworKyAgTE9OR0VTVCBsZW4gPSBU WVBFX0xFTkdUSCAodHlwZSk7CisgCisgICBpZiAoaTM4Nl9mcF9yZWdudW1fcCAoZ2RiYXJjaCwg cmVnbnVtKSkKKyAgICAgcmV0dXJuIGkzODdfcmVnaXN0ZXJfdG9fdmFsdWUgKGZyYW1lLCByZWdu dW0sIHR5cGUsIHRvLAorQEAgLTMxMTEsNyArMzExMSw3IEBAIHN0YXRpYyB2b2lkCisgaTM4Nl92 YWx1ZV90b19yZWdpc3RlciAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBpbnQgcmVnbnVtLAor IAkJCXN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqZnJvbSkKKyB7CistICBpbnQg bGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworKyAgTE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAo dHlwZSk7CisgCisgICBpZiAoaTM4Nl9mcF9yZWdudW1fcCAoZ2V0X2ZyYW1lX2FyY2ggKGZyYW1l KSwgcmVnbnVtKSkKKyAgICAgeworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvaWE2NC10 ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvaWE2NC10 ZGVwLmMJMjAxMi0xMS0wNyAyMjowMDo0Mi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAu MjAxMjA5MjYvZ2RiL2lhNjQtdGRlcC5jCTIwMTItMTEtMDcgMjI6NDc6NTcuNDkxOTg0NzU2ICsw MTAwCitAQCAtMzk3NCw4ICszOTc0LDEwIEBAIGlhNjRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3Qg Z2RiYXJjaCAqZ2QKKyAgIGludCBhcmdubzsKKyAgIHN0cnVjdCB2YWx1ZSAqYXJnOworICAgc3Ry dWN0IHR5cGUgKnR5cGU7CistICBpbnQgbGVuLCBhcmdvZmZzZXQ7CistICBpbnQgbnNsb3RzLCBy c2VzbG90cywgbWVtc2xvdHMsIHNsb3RudW0sIG5mdW5jYXJnczsKKysgIExPTkdFU1QgYXJnb2Zm c2V0OworKyAgTE9OR0VTVCBsZW47CisrICBpbnQgcnNlc2xvdHMsIHNsb3RudW0sIG5mdW5jYXJn czsKKysgIExPTkdFU1QgbnNsb3RzLCBtZW1zbG90czsKKyAgIGludCBmbG9hdHJlZzsKKyAgIFVM T05HRVNUIGJzcDsKKyAgIENPUkVfQUREUiBmdW5jZGVzY2FkZHIsIHBjLCBnbG9iYWxfcG9pbnRl cjsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2lxMjAwMC10ZGVwLmMKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvaXEyMDAwLXRkZXAuYwkyMDEyLTA1 LTE2IDE2OjM1OjA2LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIv aXEyMDAwLXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjUwOTk4NDcyOSArMDEwMAorQEAgLTY1 NSw4ICs2NTUsOSBAQCBpcTIwMDBfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCisg ICBjb25zdCBiZmRfYnl0ZSAqdmFsOworICAgYmZkX2J5dGUgYnVmWzRdOworICAgc3RydWN0IHR5 cGUgKnR5cGU7CistICBpbnQgaSwgYXJncmVnLCB0eXBlbGVuLCBzbGFja2xlbjsKKy0gIGludCBz dGFja3NwYWNlID0gMDsKKysgIGludCBpLCBhcmdyZWcsIHNsYWNrbGVuOworKyAgTE9OR0VTVCB0 eXBlbGVuOworKyAgTE9OR0VTVCBzdGFja3NwYWNlID0gMDsKKyAgIC8qIFVzZWQgdG8gY29weSBz dHJ1Y3QgYXJndW1lbnRzIGludG8gdGhlIHN0YWNrLiAgKi8KKyAgIENPUkVfQUREUiBzdHJ1Y3Rf cHRyOworIAorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvbTMyci10ZGVwLmMKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvbTMyci10ZGVwLmMJMjAxMi0w NS0xOCAyMzowMjo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2Ri L20zMnItdGRlcC5jCTIwMTItMTEtMDcgMjI6NDc6NTcuNTE2OTg0NzE5ICswMTAwCitAQCAtNjk2 LDcgKzY5Niw3IEBAIG0zMnJfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKyAg IENPUkVfQUREUiByZWd2YWw7CisgICBnZGJfYnl0ZSAqdmFsOworICAgZ2RiX2J5dGUgdmFsYnVm W01BWF9SRUdJU1RFUl9TSVpFXTsKKy0gIGludCBsZW47CisrICBMT05HRVNUIGxlbjsKKyAKKyAg IC8qIEZpcnN0IGZvcmNlIHNwIHRvIGEgNC1ieXRlIGFsaWdubWVudC4gICovCisgICBzcCA9IHNw ICYgfjM7CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9tNjhrLXRkZXAuYworPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9tNjhrLXRkZXAuYwkyMDEyLTEx LTA3IDIyOjAyOjMwLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIv bTY4ay10ZGVwLmMJMjAxMi0xMS0wNyAyMjo0OTo0NS44ODE4MjkwMzIgKzAxMDAKK0BAIC0zODQs NyArMzg0LDcgQEAgbTY4a19yZWdfc3RydWN0X3JldHVybl9wIChzdHJ1Y3QgZ2RiYXJjaAorIHsK KyAgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOwor ICAgZW51bSB0eXBlX2NvZGUgY29kZSA9IFRZUEVfQ09ERSAodHlwZSk7CistICBpbnQgbGVuID0g VFlQRV9MRU5HVEggKHR5cGUpOworKyAgTE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7 CisgCisgICBnZGJfYXNzZXJ0IChjb2RlID09IFRZUEVfQ09ERV9TVFJVQ1QgfHwgY29kZSA9PSBU WVBFX0NPREVfVU5JT04pOworIAorQEAgLTUxMyw5ICs1MTMsOSBAQCBtNjhrX3B1c2hfZHVtbXlf Y2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCisgICBmb3IgKGkgPSBuYXJncyAtIDE7IGkgPj0gMDsg aS0tKQorICAgICB7CisgICAgICAgc3RydWN0IHR5cGUgKnZhbHVlX3R5cGUgPSB2YWx1ZV9lbmNs b3NpbmdfdHlwZSAoYXJnc1tpXSk7CistICAgICAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh2YWx1 ZV90eXBlKTsKKy0gICAgICBpbnQgY29udGFpbmVyX2xlbiA9IChsZW4gKyAzKSAmIH4zOworLSAg ICAgIGludCBvZmZzZXQ7CisrICAgICAgTE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAodmFsdWVf dHlwZSk7CisrICAgICAgTE9OR0VTVCBjb250YWluZXJfbGVuID0gKGxlbiArIDMpICYgfjM7Cisr ICAgICAgTE9OR0VTVCBvZmZzZXQ7CisgCisgICAgICAgLyogTm9uLXNjYWxhcnMgYmlnZ2VyIHRo YW4gNCBieXRlcyBhcmUgbGVmdCBhbGlnbmVkLCBvdGhlcnMgYXJlCisgCSByaWdodCBhbGlnbmVk LiAgKi8KK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL204OGstdGRlcC5jCis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL204OGstdGRlcC5jCTIwMTItMDUt MTYgMTY6MzU6MDYuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9t ODhrLXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjUyMDk4NDcxNCArMDEwMAorQEAgLTI2MCwx MyArMjYwLDEzIEBAIG04OGtfc3RvcmVfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUgKnIKKyB7 CisgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNo ZSk7CisgICBpbnQgbnVtX3JlZ2lzdGVyX3dvcmRzID0gMDsKKy0gIGludCBudW1fc3RhY2tfd29y ZHMgPSAwOworKyAgTE9OR0VTVCBudW1fc3RhY2tfd29yZHMgPSAwOworICAgaW50IGk7CisgCisg ICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKKyAgICAgeworICAgICAgIHN0cnVjdCB0eXBl ICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnc1tpXSk7CistICAgICAgaW50IGxlbiA9IFRZUEVfTEVO R1RIICh0eXBlKTsKKysgICAgICBMT05HRVNUIGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAK KyAgICAgICBpZiAobTg4a19pbnRlZ3JhbF9vcl9wb2ludGVyX3AgKHR5cGUpICYmIGxlbiA8IDQp CisgCXsKK0BAIC0zMDgsOCArMzA4LDggQEAgbTg4a19zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCBy ZWdjYWNoZSAqcgorICAgICB7CisgICAgICAgY29uc3QgYmZkX2J5dGUgKnZhbGJ1ZiA9IHZhbHVl X2NvbnRlbnRzIChhcmdzW2ldKTsKKyAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IHZhbHVlX3R5 cGUgKGFyZ3NbaV0pOworLSAgICAgIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CistICAg ICAgaW50IHN0YWNrX3dvcmQgPSBudW1fc3RhY2tfd29yZHM7CisrICAgICAgTE9OR0VTVCBsZW4g PSBUWVBFX0xFTkdUSCAodHlwZSk7CisrICAgICAgTE9OR0VTVCBzdGFja193b3JkID0gbnVtX3N0 YWNrX3dvcmRzOworIAorICAgICAgIGlmIChtODhrX2luX3JlZ2lzdGVyX3AgKHR5cGUpKQorIAl7 CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9tZXAtdGRlcC5jCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL21lcC10ZGVwLmMJMjAxMi0xMS0wNyAyMjow Mzo1Ny4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL21lcC10ZGVw LmMJMjAxMi0xMS0wNyAyMjo0Nzo1Ny41MjI5ODQ3MTIgKzAxMDAKK0BAIC0yMjc5LDcgKzIyNzks NyBAQCBwdXNoX2xhcmdlX2FyZ3VtZW50cyAoQ09SRV9BRERSIHNwLCBpbnQKKyAKKyAgIGZvciAo aSA9IDA7IGkgPCBhcmdjOyBpKyspCisgICAgIHsKKy0gICAgICB1bnNpZ25lZCBhcmdfbGVuID0g VFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKGFyZ3ZbaV0pKTsKKysgICAgICBVTE9OR0VTVCBhcmdf bGVuID0gVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKGFyZ3ZbaV0pKTsKKyAKKyAgICAgICBpZiAo YXJnX2xlbiA+IE1FUF9HUFJfU0laRSkKKyAgICAgICAgIHsKK0luZGV4OiBnZGItNy41LjAuMjAx MjA5MjYvZ2RiL21pcHMtdGRlcC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2 Lm9yaWcvZ2RiL21pcHMtdGRlcC5jCTIwMTItMTEtMDcgMjI6MDI6MzAuMDAwMDAwMDAwICswMTAw CisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9taXBzLXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3 OjU3LjUzNDk4NDY5NCArMDEwMAorQEAgLTM5Niw3ICszOTYsNyBAQCBzdGF0aWMgdm9pZAorIG1p cHNfeGZlcl9yZWdpc3RlciAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCByZWdjYWNo ZSAqcmVnY2FjaGUsCisgCQkgICAgaW50IHJlZ19udW0sIGludCBsZW5ndGgsCisgCQkgICAgZW51 bSBiZmRfZW5kaWFuIGVuZGlhbiwgZ2RiX2J5dGUgKmluLAorLQkJICAgIGNvbnN0IGdkYl9ieXRl ICpvdXQsIGludCBidWZfb2Zmc2V0KQorKwkJICAgIGNvbnN0IGdkYl9ieXRlICpvdXQsIExPTkdF U1QgYnVmX29mZnNldCkKKyB7CisgICBpbnQgcmVnX29mZnNldCA9IDA7CisgCitAQCAtNDE5LDgg KzQxOSw4IEBAIG1pcHNfeGZlcl9yZWdpc3RlciAoc3RydWN0IGdkYmFyY2ggKmdkYmEKKyAgICAg fQorICAgaWYgKG1pcHNfZGVidWcpCisgICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGVy ciwKKy0JCQkieGZlciAkJWQsIHJlZyBvZmZzZXQgJWQsIGJ1ZiBvZmZzZXQgJWQsIGxlbmd0aCAl ZCwgIiwKKy0JCQlyZWdfbnVtLCByZWdfb2Zmc2V0LCBidWZfb2Zmc2V0LCBsZW5ndGgpOworKwkJ CSJ4ZmVyICQlZCwgcmVnIG9mZnNldCAlZCwgYnVmIG9mZnNldCAlcywgbGVuZ3RoICVkLCAiLAor KwkJCXJlZ19udW0sIHJlZ19vZmZzZXQsIHBsb25nZXN0IChidWZfb2Zmc2V0KSwgbGVuZ3RoKTsK KyAgIGlmIChtaXBzX2RlYnVnICYmIG91dCAhPSBOVUxMKQorICAgICB7CisgICAgICAgaW50IGk7 CitAQCAtNDI5NSwxMyArNDI5NSwxMyBAQCBtaXBzX2VhYmlfcHVzaF9kdW1teV9jYWxsIChzdHJ1 Y3QgZ2RiYXJjCisgICAgICAgZ2RiX2J5dGUgdmFsYnVmW01BWF9SRUdJU1RFUl9TSVpFXTsKKyAg ICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbYXJnbnVtXTsKKyAgICAgICBzdHJ1Y3QgdHlw ZSAqYXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKKy0gICAgICBp bnQgbGVuID0gVFlQRV9MRU5HVEggKGFyZ190eXBlKTsKKysgICAgICBMT05HRVNUIGxlbiA9IFRZ UEVfTEVOR1RIIChhcmdfdHlwZSk7CisgICAgICAgZW51bSB0eXBlX2NvZGUgdHlwZWNvZGUgPSBU WVBFX0NPREUgKGFyZ190eXBlKTsKKyAKKyAgICAgICBpZiAobWlwc19kZWJ1ZykKKyAJZnByaW50 Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAorLQkJCSAgICAibWlwc19lYWJpX3B1c2hfZHVtbXlf Y2FsbDogJWQgbGVuPSVkIHR5cGU9JWQiLAorLQkJCSAgICBhcmdudW0gKyAxLCBsZW4sIChpbnQp IHR5cGVjb2RlKTsKKysJCQkgICAgIm1pcHNfZWFiaV9wdXNoX2R1bW15X2NhbGw6ICVkIGxlbj0l cyB0eXBlPSVkIiwKKysJCQkgICAgYXJnbnVtICsgMSwgcGxvbmdlc3QgKGxlbiksIChpbnQpIHR5 cGVjb2RlKTsKKyAKKyAgICAgICAvKiBGdW5jdGlvbiBwb2ludGVyIGFyZ3VtZW50cyB0byBtaXBz MTYgY29kZSBuZWVkIHRvIGJlIG1hZGUgaW50bworICAgICAgICAgIG1pcHMxNiBwb2ludGVycy4g ICovCitAQCAtNDU4Niw3ICs0NTg2LDcgQEAgbWlwc19lYWJpX3JldHVybl92YWx1ZSAoc3RydWN0 IGdkYmFyY2ggKgorIAorIHN0YXRpYyBpbnQKKyBtaXBzX24zMm42NF9mcF9hcmdfY2h1bmtfcCAo c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB0eXBlICphcmdfdHlwZSwKKy0JCQkgICAg aW50IG9mZnNldCkKKysJCQkgICAgTE9OR0VTVCBvZmZzZXQpCisgeworICAgaW50IGk7CisgCitA QCAtNDYwMSw3ICs0NjAxLDcgQEAgbWlwc19uMzJuNjRfZnBfYXJnX2NodW5rX3AgKHN0cnVjdCBn ZGJhcgorIAorICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTkZJRUxEUyAoYXJnX3R5cGUpOyBpKysp CisgICAgIHsKKy0gICAgICBpbnQgcG9zOworKyAgICAgIExPTkdFU1QgcG9zOworICAgICAgIHN0 cnVjdCB0eXBlICpmaWVsZF90eXBlOworIAorICAgICAgIC8qIFdlJ3JlIG9ubHkgbG9va2luZyBh dCBub3JtYWwgZmllbGRzLiAgKi8KK0BAIC00NjQzLDcgKzQ2NDMsNyBAQCBtaXBzX24zMm42NF9w dXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhCisgICBpbnQgYXJncmVnOworICAgaW50IGZsb2F0 X2FyZ3JlZzsKKyAgIGludCBhcmdudW07CistICBpbnQgbGVuID0gMDsKKysgIExPTkdFU1QgbGVu ID0gMDsKKyAgIGludCBzdGFja19vZmZzZXQgPSAwOworICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVf b3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOworICAgQ09SRV9BRERSIGZ1bmNf YWRkciA9IGZpbmRfZnVuY3Rpb25fYWRkciAoZnVuY3Rpb24sIE5VTEwpOworQEAgLTQ5OTQsMTEg KzQ5OTQsMTEgQEAgbWlwc19uMzJuNjRfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgZ2RiYXJjaAorIAkJ CQk6IE1JUFNfVjBfUkVHTlVNKTsKKyAJICAgZmllbGQgPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBm aWVsZCsrLCByZWdudW0gKz0gMikKKyAJeworLQkgIGludCBvZmZzZXQgPSAoRklFTERfQklUUE9T IChUWVBFX0ZJRUxEUyAodHlwZSlbZmllbGRdKQorLQkJCS8gVEFSR0VUX0NIQVJfQklUKTsKKysJ ICBMT05HRVNUIG9mZnNldCA9IChGSUVMRF9CSVRQT1MgKFRZUEVfRklFTERTICh0eXBlKVtmaWVs ZF0pCisrCQkJICAgIC8gVEFSR0VUX0NIQVJfQklUKTsKKyAJICBpZiAobWlwc19kZWJ1ZykKKy0J ICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGVyciwgIlJldHVybiBmbG9hdCBzdHJ1Y3Qr JWRcbiIsCistCQkJCW9mZnNldCk7CisrCSAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRl cnIsICJSZXR1cm4gZmxvYXQgc3RydWN0KyVzXG4iLAorKwkJCQlwbG9uZ2VzdCAob2Zmc2V0KSk7 CisgCSAgaWYgKFRZUEVfTEVOR1RIIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGZpZWxkKSkgPT0g MTYpCisgCSAgICB7CisgCSAgICAgIC8qIEEgMTYtYnl0ZSBsb25nIGRvdWJsZSBmaWVsZCBnb2Vz IGluIHR3byBjb25zZWN1dGl2ZQorQEAgLTUwNDAsOCArNTA0MCw4IEBAIG1pcHNfbjMybjY0X3Jl dHVybl92YWx1ZSAoc3RydWN0IGdkYmFyY2gKKyAJICBpZiAob2Zmc2V0ICsgeGZlciA+IFRZUEVf TEVOR1RIICh0eXBlKSkKKyAJICAgIHhmZXIgPSBUWVBFX0xFTkdUSCAodHlwZSkgLSBvZmZzZXQ7 CisgCSAgaWYgKG1pcHNfZGVidWcpCistCSAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRl cnIsICJSZXR1cm4gc3RydWN0KyVkOiVkIGluICQlZFxuIiwKKy0JCQkJb2Zmc2V0LCB4ZmVyLCBy ZWdudW0pOworKwkgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkZXJyLCAiUmV0dXJuIHN0 cnVjdCslczolZCBpbiAkJWRcbiIsCisrCQkJCXBsb25nZXN0IChvZmZzZXQpLCB4ZmVyLCByZWdu dW0pOworIAkgIG1pcHNfeGZlcl9yZWdpc3RlciAoZ2RiYXJjaCwgcmVnY2FjaGUsCisgCQkJICAg ICAgZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCkgKyByZWdudW0sCisgCQkJICAgICAgeGZlciwg QkZEX0VORElBTl9VTktOT1dOLCByZWFkYnVmLCB3cml0ZWJ1ZiwKK0BAIC01MDk5LDcgKzUwOTks NyBAQCBtaXBzX28zMl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoCisgICBpbnQgYXJn cmVnOworICAgaW50IGZsb2F0X2FyZ3JlZzsKKyAgIGludCBhcmdudW07CistICBpbnQgbGVuID0g MDsKKysgIExPTkdFU1QgbGVuID0gMDsKKyAgIGludCBzdGFja19vZmZzZXQgPSAwOworICAgZW51 bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwor ICAgQ09SRV9BRERSIGZ1bmNfYWRkciA9IGZpbmRfZnVuY3Rpb25fYWRkciAoZnVuY3Rpb24sIE5V TEwpOworQEAgLTUxNjMsMTMgKzUxNjMsMTMgQEAgbWlwc19vMzJfcHVzaF9kdW1teV9jYWxsIChz dHJ1Y3QgZ2RiYXJjaAorICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CisgICAgICAgc3RydWN0 IHZhbHVlICphcmcgPSBhcmdzW2FyZ251bV07CisgICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBl ID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CistICAgICAgaW50IGxlbiA9IFRZ UEVfTEVOR1RIIChhcmdfdHlwZSk7CisrICAgICAgTE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAo YXJnX3R5cGUpOworICAgICAgIGVudW0gdHlwZV9jb2RlIHR5cGVjb2RlID0gVFlQRV9DT0RFIChh cmdfdHlwZSk7CisgCisgICAgICAgaWYgKG1pcHNfZGVidWcpCisgCWZwcmludGZfdW5maWx0ZXJl ZCAoZ2RiX3N0ZGxvZywKKy0JCQkgICAgIm1pcHNfbzMyX3B1c2hfZHVtbXlfY2FsbDogJWQgbGVu PSVkIHR5cGU9JWQiLAorLQkJCSAgICBhcmdudW0gKyAxLCBsZW4sIChpbnQpIHR5cGVjb2RlKTsK KysJCQkgICAgIm1pcHNfbzMyX3B1c2hfZHVtbXlfY2FsbDogJWQgbGVuPSVzIHR5cGU9JWQiLAor KwkJCSAgICBhcmdudW0gKyAxLCBwbG9uZ2VzdCAobGVuKSwgKGludCkgdHlwZWNvZGUpOworIAor ICAgICAgIHZhbCA9IHZhbHVlX2NvbnRlbnRzIChhcmcpOworIAorQEAgLTU2MjcsOCArNTYyNyw4 IEBAIG1pcHNfbzY0X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gKKyAgIGludCBhcmdy ZWc7CisgICBpbnQgZmxvYXRfYXJncmVnOworICAgaW50IGFyZ251bTsKKy0gIGludCBsZW4gPSAw OworLSAgaW50IHN0YWNrX29mZnNldCA9IDA7CisrICBMT05HRVNUIGxlbiA9IDA7CisrICBMT05H RVNUIHN0YWNrX29mZnNldCA9IDA7CisgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdk YmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CisgICBDT1JFX0FERFIgZnVuY19hZGRyID0gZmlu ZF9mdW5jdGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7CisgCitAQCAtNTY4OSwxMyArNTY4OSwx MyBAQCBtaXBzX282NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoCisgICAgICAgZ2Ri X2J5dGUgdmFsYnVmW01BWF9SRUdJU1RFUl9TSVpFXTsKKyAgICAgICBzdHJ1Y3QgdmFsdWUgKmFy ZyA9IGFyZ3NbYXJnbnVtXTsKKyAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBjaGVja190 eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKKy0gICAgICBpbnQgbGVuID0gVFlQRV9MRU5HVEgg KGFyZ190eXBlKTsKKysgICAgICBMT05HRVNUIGxlbiA9IFRZUEVfTEVOR1RIIChhcmdfdHlwZSk7 CisgICAgICAgZW51bSB0eXBlX2NvZGUgdHlwZWNvZGUgPSBUWVBFX0NPREUgKGFyZ190eXBlKTsK KyAKKyAgICAgICBpZiAobWlwc19kZWJ1ZykKKyAJZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3Rk bG9nLAorLQkJCSAgICAibWlwc19vNjRfcHVzaF9kdW1teV9jYWxsOiAlZCBsZW49JWQgdHlwZT0l ZCIsCistCQkJICAgIGFyZ251bSArIDEsIGxlbiwgKGludCkgdHlwZWNvZGUpOworKwkJCSAgICAi bWlwc19vNjRfcHVzaF9kdW1teV9jYWxsOiAlZCBsZW49JXMgdHlwZT0lZCIsCisrCQkJICAgIGFy Z251bSArIDEsIHBsb25nZXN0IChsZW4pLCAoaW50KSB0eXBlY29kZSk7CisgCisgICAgICAgdmFs ID0gdmFsdWVfY29udGVudHMgKGFyZyk7CisgCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dk Yi9tbjEwMzAwLXRkZXAuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmln L2dkYi9tbjEwMzAwLXRkZXAuYwkyMDEyLTA1LTE4IDIzOjAyOjQ5LjAwMDAwMDAwMCArMDIwMAor KysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvbW4xMDMwMC10ZGVwLmMJMjAxMi0xMS0wNyAyMjo0 Nzo1Ny41NDI5ODQ2ODIgKzAxMDAKK0BAIC0xMjI4LDcgKzEyMjgsNyBAQCBtbjEwMzAwX3B1c2hf ZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gKKyAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVy ID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKKyAgIGNvbnN0IGludCBwdXNoX3NpemUg PSByZWdpc3Rlcl9zaXplIChnZGJhcmNoLCBFX1BDX1JFR05VTSk7CisgICBpbnQgcmVnc191c2Vk OworLSAgaW50IGxlbiwgYXJnX2xlbjsgCisrICBMT05HRVNUIGxlbiwgYXJnX2xlbjsKKyAgIGlu dCBzdGFja19vZmZzZXQgPSAwOworICAgaW50IGFyZ251bTsKKyAgIGNoYXIgKnZhbCwgdmFsYnVm W01BWF9SRUdJU1RFUl9TSVpFXTsKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL210LXRk ZXAuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9tdC10ZGVw LmMJMjAxMi0xMS0wNyAyMjowMDo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAx MjA5MjYvZ2RiL210LXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjU0NDk4NDY4MCArMDEwMAor QEAgLTc4Myw5ICs3ODMsOSBAQCBtdF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpn ZGJhCisgICBnZGJfYnl0ZSBidWZbTVRfTUFYX1NUUlVDVF9TSVpFXTsKKyAgIGludCBhcmdyZWcg PSBNVF8xU1RfQVJHUkVHOworICAgaW50IHNwbGl0X3BhcmFtX2xlbiA9IDA7CistICBpbnQgc3Rh Y2tfZGVzdCA9IHNwOworKyAgTE9OR0VTVCBzdGFja19kZXN0ID0gc3A7CisgICBpbnQgc2xhY2ts ZW47CistICBpbnQgdHlwZWxlbjsKKysgIExPTkdFU1QgdHlwZWxlbjsKKyAgIGludCBpLCBqOwor IAorICAgLyogRmlyc3QgaGFuZGxlIGhvd2V2ZXIgbWFueSBhcmdzIHdlIGNhbiBmaXQgaW50byBN VF8xU1RfQVJHUkVHIHRocnUKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3BwYy1zeXN2 LXRkZXAuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9wcGMt c3lzdi10ZGVwLmMJMjAxMi0wNS0xOCAyMzowMjo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGIt Ny41LjAuMjAxMjA5MjYvZ2RiL3BwYy1zeXN2LXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjU1 MTk4NDY2OSArMDEwMAorQEAgLTY5LDcgKzY5LDcgQEAgcHBjX3N5c3ZfYWJpX3B1c2hfZHVtbXlf Y2FsbCAoc3RydWN0IGdkYgorICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNo X2J5dGVfb3JkZXIgKGdkYmFyY2gpOworICAgaW50IG9wZW5jbF9hYmkgPSBwcGNfc3lzdl91c2Vf b3BlbmNsX2FiaSAodmFsdWVfdHlwZSAoZnVuY3Rpb24pKTsKKyAgIFVMT05HRVNUIHNhdmVkX3Nw OworLSAgaW50IGFyZ3NwYWNlID0gMDsJCS8qIDAgaXMgYW4gaW5pdGlhbCB3cm9uZyBndWVzcy4g ICovCisrICBMT05HRVNUIGFyZ3NwYWNlID0gMDsJCS8qIDAgaXMgYW4gaW5pdGlhbCB3cm9uZyBn dWVzcy4gICovCisgICBpbnQgd3JpdGVfcGFzczsKKyAKKyAgIGdkYl9hc3NlcnQgKHRkZXAtPndv cmRzaXplID09IDQpOworQEAgLTEwMCw5ICsxMDAsOSBAQCBwcGNfc3lzdl9hYmlfcHVzaF9kdW1t eV9jYWxsIChzdHJ1Y3QgZ2RiCisgICAgICAgLyogTmV4dCBhdmFpbGFibGUgdmVjdG9yIHJlZ2lz dGVyIGZvciB2ZWN0b3IgYXJndW1lbnRzLiAgKi8KKyAgICAgICBpbnQgdnJlZyA9IDI7CisgICAg ICAgLyogQXJndW1lbnRzIHN0YXJ0IGFib3ZlIHRoZSAiTFIgc2F2ZSB3b3JkIiBhbmQgIkJhY2sg Y2hhaW4iLiAgKi8KKy0gICAgICBpbnQgYXJnb2Zmc2V0ID0gMiAqIHRkZXAtPndvcmRzaXplOwor KyAgICAgIExPTkdFU1QgYXJnb2Zmc2V0ID0gMiAqIHRkZXAtPndvcmRzaXplOworICAgICAgIC8q IFN0cnVjdHVyZXMgc3RhcnQgYWZ0ZXIgdGhlIGFyZ3VtZW50cy4gICovCistICAgICAgaW50IHN0 cnVjdG9mZnNldCA9IGFyZ29mZnNldCArIGFyZ3NwYWNlOworKyAgICAgIExPTkdFU1Qgc3RydWN0 b2Zmc2V0ID0gYXJnb2Zmc2V0ICsgYXJnc3BhY2U7CisgCisgICAgICAgLyogSWYgdGhlIGZ1bmN0 aW9uIGlzIHJldHVybmluZyBhIGBzdHJ1Y3QnLCB0aGVuIHRoZSBmaXJzdCB3b3JkCisgICAgICAg ICAgKHdoaWNoIHdpbGwgYmUgcGFzc2VkIGluIHIzKSBpcyB1c2VkIGZvciBzdHJ1Y3QgcmV0dXJu CitAQCAtMTIxLDcgKzEyMSw3IEBAIHBwY19zeXN2X2FiaV9wdXNoX2R1bW15X2NhbGwgKHN0cnVj dCBnZGIKKyAJeworIAkgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1thcmdub107CisgCSAgc3Ry dWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKKy0JICBp bnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworKwkgIHNzaXplX3QgbGVuID0gVFlQRV9MRU5H VEggKHR5cGUpOworIAkgIGNvbnN0IGJmZF9ieXRlICp2YWwgPSB2YWx1ZV9jb250ZW50cyAoYXJn KTsKKyAKKyAJICBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfRkxUICYmIGxlbiA8 PSA4CitAQCAtMTU1NywxNCArMTU1NywxNCBAQCBwcGM2NF9zeXN2X2FiaV9wdXNoX2R1bW15X2Nh bGwgKHN0cnVjdCBnCisgCSAgICB9CisgCSAgZWxzZQorIAkgICAgeworLQkgICAgICBpbnQgYnl0 ZTsKKysJICAgICAgc3NpemVfdCBieXRlOworIAkgICAgICBmb3IgKGJ5dGUgPSAwOyBieXRlIDwg VFlQRV9MRU5HVEggKHR5cGUpOworIAkJICAgYnl0ZSArPSB0ZGVwLT53b3Jkc2l6ZSkKKyAJCXsK KyAJCSAgaWYgKHdyaXRlX3Bhc3MgJiYgZ3JlZyA8PSAxMCkKKyAJCSAgICB7CisgCQkgICAgICBn ZGJfYnl0ZSByZWd2YWxbTUFYX1JFR0lTVEVSX1NJWkVdOworLQkJICAgICAgaW50IGxlbiA9IFRZ UEVfTEVOR1RIICh0eXBlKSAtIGJ5dGU7CisrCQkgICAgICBzc2l6ZV90IGxlbiA9IFRZUEVfTEVO R1RIICh0eXBlKSAtIGJ5dGU7CisgCQkgICAgICBpZiAobGVuID4gdGRlcC0+d29yZHNpemUpCisg CQkJbGVuID0gdGRlcC0+d29yZHNpemU7CisgCQkgICAgICBtZW1zZXQgKHJlZ3ZhbCwgMCwgc2l6 ZW9mIHJlZ3ZhbCk7CitAQCAtMTU5Miw3ICsxNTkyLDcgQEAgcHBjNjRfc3lzdl9hYmlfcHVzaF9k dW1teV9jYWxsIChzdHJ1Y3QgZworIAkJICAgICByZWdpc3Rlci4gIFdvcmsgYXJvdW5kIHRoaXMg YnkgYWx3YXlzIHdyaXRpbmcgdGhlCisgCQkgICAgIHZhbHVlIHRvIG1lbW9yeS4gIEZvcnR1bmF0 ZWx5LCBkb2luZyB0aGlzCisgCQkgICAgIHNpbXBsaWZpZXMgdGhlIGNvZGUuICAqLworLQkJICBp bnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworKwkJICBzc2l6ZV90IGxlbiA9IFRZUEVfTEVO R1RIICh0eXBlKTsKKyAJCSAgaWYgKGxlbiA8IHRkZXAtPndvcmRzaXplKQorIAkJICAgIHdyaXRl X21lbW9yeSAoZ3BhcmFtICsgdGRlcC0+d29yZHNpemUgLSBsZW4sIHZhbCwgbGVuKTsKKyAJCSAg ZWxzZQorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvcmw3OC10ZGVwLmMKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvcmw3OC10ZGVwLmMJMjAxMi0wNS0x OCAyMzowMjo1MC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3Js NzgtdGRlcC5jCTIwMTItMTEtMDcgMjI6NDc6NTcuNTU3OTg0NjYwICswMTAwCitAQCAtMTAxOSw4 ICsxMDE5LDggQEAgcmw3OF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAorICAg Zm9yIChpID0gbmFyZ3MgLSAxOyBpID49IDA7IGktLSkKKyAgICAgeworICAgICAgIHN0cnVjdCB0 eXBlICp2YWx1ZV90eXBlID0gdmFsdWVfZW5jbG9zaW5nX3R5cGUgKGFyZ3NbaV0pOworLSAgICAg IGludCBsZW4gPSBUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSk7CistICAgICAgaW50IGNvbnRhaW5l cl9sZW4gPSAobGVuICsgMSkgJiB+MTsKKysgICAgICBMT05HRVNUIGxlbiA9IFRZUEVfTEVOR1RI ICh2YWx1ZV90eXBlKTsKKysgICAgICBMT05HRVNUIGNvbnRhaW5lcl9sZW4gPSAobGVuICsgMSkg JiB+MTsKKyAKKyAgICAgICBzcCAtPSBjb250YWluZXJfbGVuOworICAgICAgIHdyaXRlX21lbW9y eSAocmw3OF9tYWtlX2RhdGFfYWRkcmVzcyAoc3ApLAorSW5kZXg6IGdkYi03LjUuMC4yMDEyMDky Ni9nZGIvcnM2MDAwLWFpeC10ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5 MjYub3JpZy9nZGIvcnM2MDAwLWFpeC10ZGVwLmMJMjAxMi0wNS0xOCAyMzowMjo1MC4wMDAwMDAw MDAgKzAyMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCTIw MTItMTEtMDcgMjI6NDc6NTcuNTYwOTg0NjU3ICswMTAwCitAQCAtMTk3LDkgKzE5Nyw5IEBAIHJz NjAwMF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICoKKyAgIHN0cnVjdCBnZGJhcmNo X3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworICAgZW51bSBiZmRfZW5kaWFu IGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOworICAgaW50IGlpOwor LSAgaW50IGxlbiA9IDA7CisrICBMT05HRVNUIGxlbiA9IDA7CisgICBpbnQgYXJnbm87CQkJLyog Y3VycmVudCBhcmd1bWVudCBudW1iZXIgKi8KKy0gIGludCBhcmdieXRlczsJCQkvKiBjdXJyZW50 IGFyZ3VtZW50IGJ5dGUgKi8KKysgIExPTkdFU1QgYXJnYnl0ZXM7CQkvKiBjdXJyZW50IGFyZ3Vt ZW50IGJ5dGUgKi8KKyAgIGdkYl9ieXRlIHRtcF9idWZmZXJbNTBdOworICAgaW50IGZfYXJnbm8g PSAwOwkJLyogY3VycmVudCBmbG9hdGluZyBwb2ludCBhcmdubyAqLworICAgaW50IHdvcmRzaXpl ID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKS0+d29yZHNpemU7CitAQCAtMzI3LDcgKzMyNyw3IEBA IHJhbl9vdXRfb2ZfcmVnaXN0ZXJzX2Zvcl9hcmd1bWVudHM6CisgCisgICBpZiAoKGFyZ25vIDwg bmFyZ3MpIHx8IGFyZ2J5dGVzKQorICAgICB7CistICAgICAgaW50IHNwYWNlID0gMCwgamo7Cisr ICAgICAgTE9OR0VTVCBzcGFjZSA9IDAsIGpqOworIAorICAgICAgIGlmIChhcmdieXRlcykKKyAJ eworSW5kZXg6IGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvczM5MC10ZGVwLmMKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvczM5MC10ZGVwLmMJMjAxMi0xMS0wNyAy MjowMzo1Ny4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3MzOTAt dGRlcC5jCTIwMTItMTEtMDcgMjI6NDc6NTcuNTY5OTg0NjQ0ICswMTAwCitAQCAtMjQ4MSw3ICsy NDgxLDcgQEAgaXNfZmxvYXRfbGlrZSAoc3RydWN0IHR5cGUgKnR5cGUpCisgCisgCisgc3RhdGlj IGludAorLWlzX3Bvd2VyX29mX3R3byAodW5zaWduZWQgaW50IG4pCisraXNfcG93ZXJfb2ZfdHdv IChVTE9OR0VTVCBuKQorIHsKKyAgIHJldHVybiAoKG4gJiAobiAtIDEpKSA9PSAwKTsKKyB9CitA QCAtMjY2Nyw3ICsyNjY3LDcgQEAgczM5MF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNo ICpnZAorICAgICAgIHsKKyAgICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1tpXTsKKyAg ICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJn KSk7CistICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBUWVBFX0xFTkdUSCAodHlwZSk7CisrICAg ICAgICBVTE9OR0VTVCBsZW5ndGggPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgCisgCWlmIChzMzkw X2Z1bmN0aW9uX2FyZ19wYXNzX2J5X3JlZmVyZW5jZSAodHlwZSkpCisgCSAgeworSW5kZXg6IGdk Yi03LjUuMC4yMDEyMDkyNi9nZGIvc2NvcmUtdGRlcC5jCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcu NS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3Njb3JlLXRkZXAuYwkyMDEyLTA1LTE4IDIzOjAyOjUwLjAw MDAwMDAwMCArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvc2NvcmUtdGRlcC5jCTIw MTItMTEtMDcgMjI6NDc6NTcuNTcxOTg0NjQwICswMTAwCitAQCAtNTE1LDcgKzUxNSw3IEBAIHNj b3JlX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKKyAgIGVudW0gYmZkX2VuZGlh biBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKKyAgIGludCBhcmdu dW07CisgICBpbnQgYXJncmVnOworLSAgaW50IGFyZ2xlbiA9IDA7CisrICBMT05HRVNUIGFyZ2xl biA9IDA7CisgICBDT1JFX0FERFIgc3RhY2tfb2Zmc2V0ID0gMDsKKyAgIENPUkVfQUREUiBhZGRy ID0gMDsKKyAKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3NoLXRkZXAuYworPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi9zaC10ZGVwLmMJMjAxMi0xMS0w NyAyMjowMDo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3No LXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjU3OTk4NDYyOCArMDEwMAorQEAgLTgwNSw3ICs4 MDUsNyBAQCBzaF9za2lwX3Byb2xvZ3VlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjCisgc3RhdGlj IGludAorIHNoX3VzZV9zdHJ1Y3RfY29udmVudGlvbiAoaW50IHJlbmVzYXNfYWJpLCBzdHJ1Y3Qg dHlwZSAqdHlwZSkKKyB7CistICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworKyAgTE9O R0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgICBpbnQgbmVsZW0gPSBUWVBFX05GSUVM RFMgKHR5cGUpOworIAorICAgLyogVGhlIFJlbmVzYXMgQUJJIHJldHVybnMgYWdncmVnYXRlIHR5 cGVzIGFsd2F5cyBvbiBzdGFjay4gICovCitAQCAtOTA3LDcgKzkwNyw3IEBAIHNoX2ZyYW1lX2Fs aWduIChzdHJ1Y3QgZ2RiYXJjaCAqaWdub3JlLAorIAorIC8qIEhlbHBlciBmdW5jdGlvbiB0byBq dXN0aWZ5IHZhbHVlIGluIHJlZ2lzdGVyIGFjY29yZGluZyB0byBlbmRpYW5lc3MuICAqLworIHN0 YXRpYyBjaGFyICoKKy1zaF9qdXN0aWZ5X3ZhbHVlX2luX3JlZyAoc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsIHN0cnVjdCB2YWx1ZSAqdmFsLCBpbnQgbGVuKQorK3NoX2p1c3RpZnlfdmFsdWVfaW5f cmVnIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHZhbHVlICp2YWwsIExPTkdFU1Qg bGVuKQorIHsKKyAgIHN0YXRpYyBjaGFyIHZhbGJ1Zls0XTsKKyAKK0BAIC0xMDY3LDcgKzEwNjcs OCBAQCBzaF9wdXNoX2R1bW15X2NhbGxfZnB1IChzdHJ1Y3QgZ2RiYXJjaCAqCisgICBzdHJ1Y3Qg dHlwZSAqdHlwZTsKKyAgIENPUkVfQUREUiByZWd2YWw7CisgICBjaGFyICp2YWw7CistICBpbnQg bGVuLCByZWdfc2l6ZSA9IDA7CisrICBMT05HRVNUIGxlbjsKKysgIHNzaXplX3QgcmVnX3NpemUg PSAwOworICAgaW50IHBhc3Nfb25fc3RhY2sgPSAwOworICAgaW50IHRyZWF0X2FzX2ZsdDsKKyAg IGludCBsYXN0X3JlZ19hcmcgPSBJTlRfTUFYOworQEAgLTEyMDgsNyArMTIwOSw4IEBAIHNoX3B1 c2hfZHVtbXlfY2FsbF9ub2ZwdSAoc3RydWN0IGdkYmFyY2gKKyAgIHN0cnVjdCB0eXBlICp0eXBl OworICAgQ09SRV9BRERSIHJlZ3ZhbDsKKyAgIGNoYXIgKnZhbDsKKy0gIGludCBsZW4sIHJlZ19z aXplID0gMDsKKysgIExPTkdFU1QgbGVuOworKyAgc3NpemVfdCByZWdfc2l6ZSA9IDA7CisgICBp bnQgcGFzc19vbl9zdGFjayA9IDA7CisgICBpbnQgbGFzdF9yZWdfYXJnID0gSU5UX01BWDsKKyAK K0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3NoNjQtdGRlcC5jCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3NoNjQtdGRlcC5jCTIwMTItMDYtMDYgMjA6 MDM6NTMuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9zaDY0LXRk ZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjU4Mjk4NDYyNSArMDEwMAorQEAgLTEwNTgsNyArMTA1 OCw3IEBAIHNoNjRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKyAJCSAgICAg IENPUkVfQUREUiBzdHJ1Y3RfYWRkcikKKyB7CisgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRl ciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CistICBpbnQgc3RhY2tfb2Zmc2V0LCBz dGFja19hbGxvYzsKKysgIExPTkdFU1Qgc3RhY2tfb2Zmc2V0LCBzdGFja19hbGxvYzsKKyAgIGlu dCBpbnRfYXJncmVnOworICAgaW50IGZsb2F0X2FyZ3JlZzsKKyAgIGludCBkb3VibGVfYXJncmVn OworQEAgLTEwNjksNyArMTA2OSw3IEBAIHNoNjRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2QKKyAgIENPUkVfQUREUiByZWd2YWw7CisgICBjaGFyICp2YWw7CisgICBjaGFyIHZh bGJ1Zls4XTsKKy0gIGludCBsZW47CisrICBMT05HRVNUIGxlbjsKKyAgIGludCBhcmdyZWdfc2l6 ZTsKKyAgIGludCBmcF9hcmdzWzEyXTsKKyAKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2Ri L3NwYXJjLXRkZXAuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dk Yi9zcGFyYy10ZGVwLmMJMjAxMi0xMS0wNyAyMjowMDo0My4wMDAwMDAwMDAgKzAxMDAKKysrKyBn ZGItNy41LjAuMjAxMjA5MjYvZ2RiL3NwYXJjLXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjU5 Mzk4NDYwOSArMDEwMAorQEAgLTQ3MCw3ICs0NzAsNyBAQCBzcGFyYzMyX3N0b3JlX2FyZ3VtZW50 cyAoc3RydWN0IHJlZ2NhY2hlCisgICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKKyAgICAg eworICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnc1tpXSk7CistICAg ICAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKysgICAgICBMT05HRVNUIGxlbiA9IFRZ UEVfTEVOR1RIICh0eXBlKTsKKyAKKyAgICAgICBpZiAoc3BhcmNfc3RydWN0dXJlX29yX3VuaW9u X3AgKHR5cGUpCisgCSAgfHwgKHNwYXJjX2Zsb2F0aW5nX3AgKHR5cGUpICYmIGxlbiA9PSAxNikK K0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3NwYXJjNjQtdGRlcC5jCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3NwYXJjNjQtdGRlcC5jCTIwMTItMDUt MTYgMTY6MzU6MDcuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9z cGFyYzY0LXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjU5NTk4NDYwNSArMDEwMAorQEAgLTYz OSw3ICs2MzksOCBAQCBzcGFyYzY0XzE2X2J5dGVfYWxpZ25fcCAoc3RydWN0IHR5cGUgKnR5Cisg Cisgc3RhdGljIHZvaWQKKyBzcGFyYzY0X3N0b3JlX2Zsb2F0aW5nX2ZpZWxkcyAoc3RydWN0IHJl Z2NhY2hlICpyZWdjYWNoZSwgc3RydWN0IHR5cGUgKnR5cGUsCistCQkJICAgICAgIGNvbnN0IGdk Yl9ieXRlICp2YWxidWYsIGludCBlbGVtZW50LCBpbnQgYml0cG9zKQorKwkJCSAgICAgICBjb25z dCBnZGJfYnl0ZSAqdmFsYnVmLCBpbnQgZWxlbWVudCwKKysJCQkgICAgICAgTE9OR0VTVCBiaXRw b3MpCisgeworICAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKKyAKK0BAIC02ODEsNyAr NjgyLDcgQEAgc3BhcmM2NF9zdG9yZV9mbG9hdGluZ19maWVsZHMgKHN0cnVjdCByZQorICAgICAg IGZvciAoaSA9IDA7IGkgPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBpKyspCisgCXsKKyAJICBzdHJ1 Y3QgdHlwZSAqc3VidHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfRklFTERfVFlQRSAodHlwZSwg aSkpOworLQkgIGludCBzdWJwb3MgPSBiaXRwb3MgKyBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwg aSk7CisrCSAgTE9OR0VTVCBzdWJwb3MgPSBiaXRwb3MgKyBUWVBFX0ZJRUxEX0JJVFBPUyAodHlw ZSwgaSk7CisgCisgCSAgc3BhcmM2NF9zdG9yZV9mbG9hdGluZ19maWVsZHMgKHJlZ2NhY2hlLCBz dWJ0eXBlLCB2YWxidWYsCisgCQkJCQkgZWxlbWVudCwgc3VicG9zKTsKK0BAIC03MTMsNyArNzE0 LDcgQEAgc3BhcmM2NF9zdG9yZV9mbG9hdGluZ19maWVsZHMgKHN0cnVjdCByZQorIAorIHN0YXRp YyB2b2lkCisgc3BhcmM2NF9leHRyYWN0X2Zsb2F0aW5nX2ZpZWxkcyAoc3RydWN0IHJlZ2NhY2hl ICpyZWdjYWNoZSwgc3RydWN0IHR5cGUgKnR5cGUsCistCQkJCSBnZGJfYnl0ZSAqdmFsYnVmLCBp bnQgYml0cG9zKQorKwkJCQkgZ2RiX2J5dGUgKnZhbGJ1ZiwgTE9OR0VTVCBiaXRwb3MpCisgewor ICAgaWYgKHNwYXJjNjRfZmxvYXRpbmdfcCAodHlwZSkpCisgICAgIHsKK0BAIC03NTAsNyArNzUx LDcgQEAgc3BhcmM2NF9leHRyYWN0X2Zsb2F0aW5nX2ZpZWxkcyAoc3RydWN0CisgICAgICAgZm9y IChpID0gMDsgaSA8IFRZUEVfTkZJRUxEUyAodHlwZSk7IGkrKykKKyAJeworIAkgIHN0cnVjdCB0 eXBlICpzdWJ0eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpKSk7 CistCSAgaW50IHN1YnBvcyA9IGJpdHBvcyArIFRZUEVfRklFTERfQklUUE9TICh0eXBlLCBpKTsK KysJICBMT05HRVNUIHN1YnBvcyA9IGJpdHBvcyArIFRZUEVfRklFTERfQklUUE9TICh0eXBlLCBp KTsKKyAKKyAJICBzcGFyYzY0X2V4dHJhY3RfZmxvYXRpbmdfZmllbGRzIChyZWdjYWNoZSwgc3Vi dHlwZSwgdmFsYnVmLCBzdWJwb3MpOworIAl9CitAQCAtNzgzLDcgKzc4NCw3IEBAIHNwYXJjNjRf c3RvcmVfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUKKyAgIGZvciAoaSA9IDA7IGkgPCBuYXJn czsgaSsrKQorICAgICB7CisgICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV90eXBlIChh cmdzW2ldKTsKKy0gICAgICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworKyAgICAgIExP TkdFU1QgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworIAorICAgICAgIGlmIChzcGFyYzY0X3N0 cnVjdHVyZV9vcl91bmlvbl9wICh0eXBlKQorIAkgIHx8IChzcGFyYzY0X2NvbXBsZXhfZmxvYXRp bmdfcCAodHlwZSkgJiYgbGVuID09IDMyKSkKK0BAIC04ODMsNyArODg0LDcgQEAgc3BhcmM2NF9z dG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZQorICAgICB7CisgICAgICAgY29uc3QgZ2Ri X2J5dGUgKnZhbGJ1ZiA9IHZhbHVlX2NvbnRlbnRzIChhcmdzW2ldKTsKKyAgICAgICBzdHJ1Y3Qg dHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZ3NbaV0pOworLSAgICAgIGludCBsZW4gPSBUWVBF X0xFTkdUSCAodHlwZSk7CisrICAgICAgTE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7 CisgICAgICAgaW50IHJlZ251bSA9IC0xOworICAgICAgIGdkYl9ieXRlIGJ1ZlsxNl07CisgCitJ bmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9zcHUtdGRlcC5jCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g Z2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3NwdS10ZGVwLmMJMjAxMi0xMS0wNyAyMjowOToy NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3NwdS10ZGVwLmMJ MjAxMi0xMS0wNyAyMjo0Nzo1Ny41OTg5ODQ2MDIgKzAxMDAKK0BAIC0xMzcyLDcgKzEzNzIsNyBA QCBzcHVfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCisgICAgICAgc3RydWN0 IHZhbHVlICphcmcgPSBhcmdzW2ldOworICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gY2hlY2tf dHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CisgICAgICAgY29uc3QgZ2RiX2J5dGUgKmNvbnRl bnRzID0gdmFsdWVfY29udGVudHMgKGFyZyk7CistICAgICAgaW50IG5fcmVncyA9IGFsaWduX3Vw IChUWVBFX0xFTkdUSCAodHlwZSksIDE2KSAvIDE2OworKyAgICAgIExPTkdFU1Qgbl9yZWdzID0g YWxpZ25fdXAgKFRZUEVfTEVOR1RIICh0eXBlKSwgMTYpIC8gMTY7CisgCisgICAgICAgLyogSWYg dGhlIGFyZ3VtZW50IGRvZXNuJ3Qgd2hvbGx5IGZpdCBpbnRvIHJlZ2lzdGVycywgaXQgYW5kCisg CSBhbGwgc3Vic2VxdWVudCBhcmd1bWVudHMgZ28gdG8gdGhlIHN0YWNrLiAgKi8KK0BAIC0xNDA0 LDcgKzE0MDQsNyBAQCBzcHVfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCisg CXsKKyAJICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbaV07CisgCSAgc3RydWN0IHR5cGUgKnR5 cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKKy0JICBpbnQgbGVuID0gVFlQ RV9MRU5HVEggKHR5cGUpOworKwkgIExPTkdFU1QgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOwor IAkgIGludCBwcmVmZXJyZWRfc2xvdDsKKyAJICAKKyAJICBpZiAoc3B1X3NjYWxhcl92YWx1ZV9w ICh0eXBlKSkKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3RpYzZ4LXRkZXAuYworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi90aWM2eC10ZGVwLmMJMjAx Mi0wNi0wOCAxNjoyNDo1Ny4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYv Z2RiL3RpYzZ4LXRkZXAuYwkyMDEyLTExLTA3IDIyOjUwOjMxLjc5Mjc2MzE3OCArMDEwMAorQEAg LTkxOCw3ICs5MTgsNyBAQCB0aWM2eF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpn CisgICBpbnQgYXJnbnVtOworICAgaW50IGxlbiA9IDA7CisgICBpbnQgc3RhY2tfb2Zmc2V0ID0g NDsKKy0gIGludCByZWZlcmVuY2VzX29mZnNldCA9IDQ7CisrICBMT05HRVNUIHJlZmVyZW5jZXNf b2Zmc2V0ID0gNDsKKyAgIENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIg KGZ1bmN0aW9uLCBOVUxMKTsKKyAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJj aF9ieXRlX29yZGVyIChnZGJhcmNoKTsKKyAgIHN0cnVjdCB0eXBlICpmdW5jX3R5cGUgPSB2YWx1 ZV90eXBlIChmdW5jdGlvbik7CitAQCAtOTUyLDcgKzk1Miw3IEBAIHRpYzZ4X3B1c2hfZHVtbXlf Y2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKKyAgIC8qIE5vdyBtYWtlIHNwYWNlIG9uIHRoZSBzdGFj ayBmb3IgdGhlIGFyZ3MuICAqLworICAgZm9yIChhcmdudW0gPSAwOyBhcmdudW0gPCBuYXJnczsg YXJnbnVtKyspCisgICAgIHsKKy0gICAgICBpbnQgbGVuID0gYWxpZ25fdXAgKFRZUEVfTEVOR1RI ICh2YWx1ZV90eXBlIChhcmdzW2FyZ251bV0pKSwgNCk7CisrICAgICAgTE9OR0VTVCBsZW4gPSBh bGlnbl91cCAoVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKGFyZ3NbYXJnbnVtXSkpLCA0KTsKKyAg ICAgICBpZiAoYXJnbnVtID49IDEwIC0gYXJncmVnKQorIAlyZWZlcmVuY2VzX29mZnNldCArPSBs ZW47CisgICAgICAgc3RhY2tfb2Zmc2V0ICs9IGxlbjsKK0BAIC05NzEsNyArOTcxLDcgQEAgdGlj NnhfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZworICAgICAgIGNvbnN0IGdkYl9i eXRlICp2YWw7CisgICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2FyZ251bV07CisgICAg ICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJn KSk7CistICAgICAgaW50IGxlbiA9IFRZUEVfTEVOR1RIIChhcmdfdHlwZSk7CisrICAgICAgc3Np emVfdCBsZW4gPSBUWVBFX0xFTkdUSCAoYXJnX3R5cGUpOworICAgICAgIGVudW0gdHlwZV9jb2Rl IHR5cGVjb2RlID0gVFlQRV9DT0RFIChhcmdfdHlwZSk7CisgCisgICAgICAgdmFsID0gdmFsdWVf Y29udGVudHMgKGFyZyk7CitAQCAtMTEzMSw3ICsxMTMxLDggQEAgdGljNnhfcHVzaF9kdW1teV9j YWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZworIAkgICAgfQorIAkgIGVsc2UKKyAJICAgIGludGVybmFs X2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCistCQkJICAgIF8oInVuZXhwZWN0ZWQgbGVuZ3Ro ICVkIG9mIGFyZyAlZCIpLCBsZW4sIGFyZ251bSk7CisrCQkJICAgIF8oInVuZXhwZWN0ZWQgbGVu Z3RoICVzIG9mIGFyZyAlZCIpLAorKwkJCSAgICBwbG9uZ2VzdCAobGVuKSwgYXJnbnVtKTsKKyAK KyAJICBhZGRyID0gc3AgKyBzdGFja19vZmZzZXQ7CisgCSAgd3JpdGVfbWVtb3J5IChhZGRyLCB2 YWwsIGxlbik7CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi90aWxlZ3gtdGRlcC5jCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3RpbGVneC10ZGVwLmMJ MjAxMi0xMS0wNyAyMjowMDo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5 MjYvZ2RiL3RpbGVneC10ZGVwLmMJMjAxMi0xMS0wNyAyMjo0Nzo1Ny42MTA5ODQ1ODQgKzAxMDAK K0BAIC0yOTEsNyArMjkxLDcgQEAgdGlsZWd4X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFy Y2ggKgorICAgQ09SRV9BRERSIHN0YWNrX2Rlc3QgPSBzcDsKKyAgIGludCBhcmdyZWcgPSBUSUxF R1hfUjBfUkVHTlVNOworICAgaW50IGksIGo7CistICBpbnQgdHlwZWxlbiwgc2xhY2tsZW4sIGFs aWdubGVuOworKyAgTE9OR0VTVCB0eXBlbGVuLCBzbGFja2xlbiwgYWxpZ25sZW47CisgICBzdGF0 aWMgY29uc3QgZ2RiX2J5dGUgdHdvX3plcm9fd29yZHNbOF0gPSB7IDAgfTsKKyAKKyAgIC8qIElm IHN0cnVjdF9yZXR1cm4gaXMgMSwgdGhlbiB0aGUgc3RydWN0IHJldHVybiBhZGRyZXNzIHdpbGwK K0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3Y4NTAtdGRlcC5jCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3Y4NTAtdGRlcC5jCTIwMTItMDUtMTggMjM6 MDI6NTAuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi92ODUwLXRk ZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjYxNzk4NDU3NSArMDEwMAorQEAgLTgwOSw3ICs4MDks NyBAQCB2ODUwX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCisgICBlbnVtIGJm ZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CisgICBp bnQgYXJncmVnOworICAgaW50IGFyZ251bTsKKy0gIGludCBsZW4gPSAwOworKyAgTE9OR0VTVCBs ZW4gPSAwOworICAgaW50IHN0YWNrX29mZnNldDsKKyAKKyAgIC8qIFRoZSBvZmZzZXQgb250byB0 aGUgc3RhY2sgYXQgd2hpY2ggd2Ugd2lsbCBzdGFydCBjb3B5aW5nIHBhcmFtZXRlcnMKK0BAIC04 MzQsNyArODM0LDcgQEAgdjg1MF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAor ICAgICAgaW4gZm91ciByZWdpc3RlcnMgYXZhaWxhYmxlLiAgTG9vcCB0aHJ1IGFyZ3MgZnJvbSBm aXJzdCB0byBsYXN0LiAgKi8KKyAgIGZvciAoYXJnbnVtID0gMDsgYXJnbnVtIDwgbmFyZ3M7IGFy Z251bSsrKQorICAgICB7CistICAgICAgaW50IGxlbjsKKysgICAgICBMT05HRVNUIGxlbjsKKyAg ICAgICBnZGJfYnl0ZSAqdmFsOworICAgICAgIGdkYl9ieXRlIHZhbGJ1Zlt2ODUwX3JlZ19zaXpl XTsKKyAKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3ZheC10ZGVwLmMKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYub3JpZy9nZGIvdmF4LXRkZXAuYwkyMDEyLTExLTA3 IDIyOjQ2OjU2LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjUuMC4yMDEyMDkyNi9nZGIvdmF4 LXRkZXAuYwkyMDEyLTExLTA3IDIyOjQ3OjU3LjYxODk4NDU3MyArMDEwMAorQEAgLTExNiw3ICsx MTYsNyBAQCB2YXhfc3RvcmVfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUgKnJlCisgICBzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNoZSk7CisgICBl bnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7 CisgICBnZGJfYnl0ZSBidWZbNF07CistICBpbnQgY291bnQgPSAwOworKyAgTE9OR0VTVCBjb3Vu dCA9IDA7CisgICBpbnQgaTsKKyAKKyAgIC8qIFdlIGNyZWF0ZSBhbiBhcmd1bWVudCBsaXN0IG9u IHRoZSBzdGFjaywgYW5kIG1ha2UgdGhlIGFyZ3VtZW50CitAQCAtMTI1LDcgKzEyNSw3IEBAIHZh eF9zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcmUKKyAgIC8qIFB1c2ggYXJndW1l bnRzIGluIHJldmVyc2Ugb3JkZXIuICAqLworICAgZm9yIChpID0gbmFyZ3MgLSAxOyBpID49IDA7 IGktLSkKKyAgICAgeworLSAgICAgIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodmFsdWVfZW5jbG9z aW5nX3R5cGUgKGFyZ3NbaV0pKTsKKysgICAgICBMT05HRVNUIGxlbiA9IFRZUEVfTEVOR1RIICh2 YWx1ZV9lbmNsb3NpbmdfdHlwZSAoYXJnc1tpXSkpOworIAorICAgICAgIHNwIC09IChsZW4gKyAz KSAmIH4zOworICAgICAgIGNvdW50ICs9IChsZW4gKyAzKSAvIDQ7CitJbmRleDogZ2RiLTcuNS4w LjIwMTIwOTI2L2dkYi94c3Rvcm15MTYtdGRlcC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4w LjIwMTIwOTI2Lm9yaWcvZ2RiL3hzdG9ybXkxNi10ZGVwLmMJMjAxMi0xMS0wNyAyMjowMDo0NC4w MDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3hzdG9ybXkxNi10ZGVw LmMJMjAxMi0xMS0wNyAyMjo0Nzo1Ny42MjY5ODQ1NjIgKzAxMDAKK0BAIC0yMzUsOCArMjM1LDkg QEAgeHN0b3JteTE2X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyYworICAgZW51bSBiZmRf ZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOworICAgQ09S RV9BRERSIHN0YWNrX2Rlc3QgPSBzcDsKKyAgIGludCBhcmdyZWcgPSBFXzFTVF9BUkdfUkVHTlVN OworLSAgaW50IGksIGo7CistICBpbnQgdHlwZWxlbiwgc2xhY2tsZW47CisrICBpbnQgaSwgc2xh Y2tsZW47CisrICBMT05HRVNUIGo7CisrICBMT05HRVNUIHR5cGVsZW47CisgICBjb25zdCBnZGJf Ynl0ZSAqdmFsOworICAgY2hhciBidWZbeHN0b3JteTE2X3BjX3NpemVdOworIAorSW5kZXg6IGdk Yi03LjUuMC4yMDEyMDkyNi9nZGIveHRlbnNhLXRkZXAuYworPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03 LjUuMC4yMDEyMDkyNi5vcmlnL2dkYi94dGVuc2EtdGRlcC5jCTIwMTItMDUtMTggMjM6MDI6NTEu MDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi94dGVuc2EtdGRlcC5j CTIwMTItMTEtMDcgMjI6NDc6NTcuNjI5OTg0NTU3ICswMTAwCitAQCAtMTY1Myw4ICsxNjUzLDcg QEAgeHRlbnNhX3N0b3JlX3JldHVybl92YWx1ZSAoc3RydWN0IHR5cGUgKgorIAorICAgICAgIGlm IChsZW4gPiAoY2FsbHNpemUgPiA4ID8gOCA6IDE2KSkKKyAJaW50ZXJuYWxfZXJyb3IgKF9fRklM RV9fLCBfX0xJTkVfXywKKy0JCQlfKCJ1bmltcGxlbWVudGVkIGZvciB0aGlzIGxlbmd0aDogJWQi KSwKKy0JCQlUWVBFX0xFTkdUSCAodHlwZSkpOworKwkJCV8oInVuaW1wbGVtZW50ZWQgZm9yIHRo aXMgbGVuZ3RoOiAlZCIpLCBsZW4pOworICAgICAgIGFyZWcgPSBhcnJlZ19udW1iZXIgKGdkYmFy Y2gsCisgCQkJICAgZ2RiYXJjaF90ZGVwIChnZGJhcmNoKS0+YTBfYmFzZSArIDIgKyBjYWxsc2l6 ZSwgd2IpOworIAorQEAgLTE3MjgsMTggKzE3MjcsMTggQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2Fs bCAoc3RydWN0IGdkYmFyY2ggKgorIHsKKyAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0g Z2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKKyAgIGludCBpOworLSAgaW50IHNpemUsIG9u c3RhY2tfc2l6ZTsKKysgIExPTkdFU1Qgc2l6ZSwgb25zdGFja19zaXplOworICAgZ2RiX2J5dGUg KmJ1ZiA9IChnZGJfYnl0ZSAqKSBhbGxvY2EgKDE2KTsKKyAgIENPUkVfQUREUiByYSwgcHM7Cisg ICBzdHJ1Y3QgYXJndW1lbnRfaW5mbworICAgeworICAgICBjb25zdCBiZmRfYnl0ZSAqY29udGVu dHM7CistICAgIGludCBsZW5ndGg7CisrICAgIHNzaXplX3QgbGVuZ3RoOworICAgICBpbnQgb25z dGFjazsJCS8qIG9uc3RhY2sgPT0gMCA9PiBpbiByZWcgKi8KKyAgICAgaW50IGFsaWduOwkJCS8q IGFsaWdubWVudCAqLworICAgICB1bmlvbgorICAgICB7CistICAgICAgaW50IG9mZnNldDsJCS8q IHN0YWNrIG9mZnNldCBpZiBvbiBzdGFjay4gICovCisrICAgICAgc3NpemVfdCBvZmZzZXQ7CQkv KiBzdGFjayBvZmZzZXQgaWYgb24gc3RhY2suICAqLworICAgICAgIGludCByZWdubzsJCS8qIHJl Z25vIGlmIGluIHJlZ2lzdGVyLiAgKi8KKyAgICAgfSB1OworICAgfTsKK0BAIC0xNzYzLDkgKzE3 NjIsMTAgQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgorICAgICAg ICAgeworIAkgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1tpXTsKKyAJICBzdHJ1Y3QgdHlwZSAq YXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKKy0JICBmcHJpbnRm X3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csICIlMmQ6ICVzICUzZCAiLCBpLAorLQkJCSAgICAgIGhv c3RfYWRkcmVzc190b19zdHJpbmcgKGFyZyksCistCQkJICAgICAgVFlQRV9MRU5HVEggKGFyZ190 eXBlKSk7CisrCSAgY29uc3QgY2hhciAqYXJnX3R5cGVfbGVuX3MgPSBwdWxvbmdlc3QgKFRZUEVf TEVOR1RIIChhcmdfdHlwZSkpOworKworKwkgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxv ZywgIiUyZDogJXMgJXMgIiwgaSwKKysJCQkgICAgICBob3N0X2FkZHJlc3NfdG9fc3RyaW5nIChh cmcpLCBhcmdfdHlwZV9sZW5fcyk7CisgCSAgc3dpdGNoIChUWVBFX0NPREUgKGFyZ190eXBlKSkK KyAJICAgIHsKKyAJICAgIGNhc2UgVFlQRV9DT0RFX0lOVDoKK0BAIC0xODM1LDggKzE4MzUsOCBA QCB4dGVuc2FfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCisgCSAgaW5mby0+YWxp Z24gPSBUWVBFX0xFTkdUSCAoYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9sb25nKTsK KyAJICBicmVhazsKKyAJfQorLSAgICAgIGluZm8tPmxlbmd0aCA9IFRZUEVfTEVOR1RIIChhcmdf dHlwZSk7CisgICAgICAgaW5mby0+Y29udGVudHMgPSB2YWx1ZV9jb250ZW50cyAoYXJnKTsKKysg ICAgICBpbmZvLT5sZW5ndGggPSBUWVBFX0xFTkdUSCAoYXJnX3R5cGUpOworIAorICAgICAgIC8q IEFsaWduIHNpemUgYW5kIG9uc3RhY2tfc2l6ZS4gICovCisgICAgICAgc2l6ZSA9IChzaXplICsg aW5mby0+YWxpZ24gLSAxKSAmIH4oaW5mby0+YWxpZ24gLSAxKTsKK0BAIC0xODgxLDcgKzE4ODEs NyBAQCB4dGVuc2FfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCisgCisgICAgICAg aWYgKGluZm8tPm9uc3RhY2spCisgCXsKKy0JICBpbnQgbiA9IGluZm8tPmxlbmd0aDsKKysJICBz c2l6ZV90IG4gPSBpbmZvLT5sZW5ndGg7CisgCSAgQ09SRV9BRERSIG9mZnNldCA9IHNwICsgaW5m by0+dS5vZmZzZXQ7CisgCisgCSAgLyogT2RkLXNpemVkIHN0cnVjdHMgYXJlIGFsaWduZWQgdG8g dGhlIGxvd2VyIHNpZGUgb2YgYSBtZW1vcnkKK0BAIC0xODk3LDcgKzE4OTcsNyBAQCB4dGVuc2Ff cHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCisgCX0KKyAgICAgICBlbHNlCisgCXsK Ky0JICBpbnQgbiA9IGluZm8tPmxlbmd0aDsKKysJICBzc2l6ZV90IG4gPSBpbmZvLT5sZW5ndGg7 CisgCSAgY29uc3QgYmZkX2J5dGUgKmNwID0gaW5mby0+Y29udGVudHM7CisgCSAgaW50IHIgPSBp bmZvLT51LnJlZ25vOworIAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yNG9m MjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjRvZjI1LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5ZDg0MzkKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIt cmhiejc5NTQyNC1iaXRwb3MtMjRvZjI1LnBhdGNoCkBAIC0wLDAgKzEsMTEzIEBACitodHRwOi8v c291cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8yMDEyLTA5L21zZzAwMTYwLmh0bWwKKworIyMjIHNy Yy9nZGIvQ2hhbmdlTG9nCTIwMTIvMDkvMjYgMjM6NTM6NTMJMS4xNDcwOQorIyMjIHNyYy9nZGIv Q2hhbmdlTG9nCTIwMTIvMDkvMjcgMDg6NTc6MTQJMS4xNDcxMAorIyMgLTEsMyArMSwxNiBAQAor KzIwMTItMDktMjcgIFNpZGRoZXNoIFBveWFyZWthciAgPHNpZGRoZXNoQHJlZGhhdC5jb20+Cisr CisrCSogZ2RidHlwZXMuYyAobG9va3VwX2FycmF5X3JhbmdlX3R5cGUpOiBFeHBhbmQgcGFyYW1l dGVycworKwlMT1dfQk9VTkQgYW5kIEhJR0hfQk9VTkQgdG8gTE9OR0VTVC4KKysJKGxvb2t1cF9z dHJpbmdfcmFuZ2VfdHlwZSk6IExpa2V3aXNlLgorKwkqIGdkYnR5cGVzLmggKGxvb2t1cF9hcnJh eV9yYW5nZV90eXBlKTogTGlrZXdpc2UuCisrCShsb29rdXBfc3RyaW5nX3JhbmdlX3R5cGUpOiBM aWtld2lzZS4KKysJKiB2YWxvcHMuYyAodmFsdWVfY3N0cmluZyk6IEV4cGFuZCBwYXJhbWV0ZXIg TEVOIHRvIHNzaXplX3QuCisrCUV4cGFuZCBISUdIQk9VTkQgdG8gc3NpemVfdC4KKysJKHZhbHVl X3N0cmluZyk6IExpa2V3aXNlLgorKwkqIHZhbHVlLmggKHZhbHVlX2NzdHJpbmcpOiBFeHBhbmQg cGFyYW1ldGVyIExFTiB0byBzc2l6ZV90LgorKwkodmFsdWVfc3RyaW5nKTogTGlrZXdpc2UuCisr CisgMjAxMi0wOS0yNyAgWWFvIFFpICA8eWFvQGNvZGVzb3VyY2VyeS5jb20+CisgCisgCVBSIGJy ZWFrcG9pbnRzLzEzODk4CitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9nZGJ0eXBlcy5j Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJ MjAxMi0xMS0wNyAyMjowOTo1Ny4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5 MjYvZ2RiL2dkYnR5cGVzLmMJMjAxMi0xMS0wNyAyMjo1MDo0Ny4wNDg3NDExNjQgKzAxMDAKK0BA IC0xMDIyLDcgKzEwMjIsNyBAQCBjcmVhdGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3Vs dF90CisgCisgc3RydWN0IHR5cGUgKgorIGxvb2t1cF9hcnJheV9yYW5nZV90eXBlIChzdHJ1Y3Qg dHlwZSAqZWxlbWVudF90eXBlLAorLQkJCSBpbnQgbG93X2JvdW5kLCBpbnQgaGlnaF9ib3VuZCkK KysJCQkgTE9OR0VTVCBsb3dfYm91bmQsIExPTkdFU1QgaGlnaF9ib3VuZCkKKyB7CisgICBzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKGVsZW1lbnRfdHlwZSk7CisgICBz dHJ1Y3QgdHlwZSAqaW5kZXhfdHlwZSA9IGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5f aW50OworQEAgLTEwNTgsNyArMTA1OCw3IEBAIGNyZWF0ZV9zdHJpbmdfdHlwZSAoc3RydWN0IHR5 cGUgKnJlc3VsdF8KKyAKKyBzdHJ1Y3QgdHlwZSAqCisgbG9va3VwX3N0cmluZ19yYW5nZV90eXBl IChzdHJ1Y3QgdHlwZSAqc3RyaW5nX2NoYXJfdHlwZSwKKy0JCQkgIGludCBsb3dfYm91bmQsIGlu dCBoaWdoX2JvdW5kKQorKwkJCSAgTE9OR0VTVCBsb3dfYm91bmQsIExPTkdFU1QgaGlnaF9ib3Vu ZCkKKyB7CisgICBzdHJ1Y3QgdHlwZSAqcmVzdWx0X3R5cGU7CisgCitJbmRleDogZ2RiLTcuNS4w LjIwMTIwOTI2L2dkYi9nZGJ0eXBlcy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIw OTI2Lm9yaWcvZ2RiL2dkYnR5cGVzLmgJMjAxMi0xMS0wNyAyMjowOToyOS4wMDAwMDAwMDAgKzAx MDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2dkYnR5cGVzLmgJMjAxMi0xMS0wNyAyMjo1 MTo0Ni40NDA2NTU4MTcgKzAxMDAKK0BAIC0xNjQwLDcgKzE2NDAsNyBAQCBleHRlcm4gc3RydWN0 IHR5cGUgKmNyZWF0ZV9yYW5nZV90eXBlIChzCisgCisgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVh dGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKKyAJCQkJICAgICAg IHN0cnVjdCB0eXBlICopOworLWV4dGVybiBzdHJ1Y3QgdHlwZSAqbG9va3VwX2FycmF5X3Jhbmdl X3R5cGUgKHN0cnVjdCB0eXBlICosIGludCwgaW50KTsKKytleHRlcm4gc3RydWN0IHR5cGUgKmxv b2t1cF9hcnJheV9yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqLCBMT05HRVNULCBMT05HRVNUKTsK KyAKKyBleHRlcm4gQ09SRV9BRERSIHR5cGVfcmFuZ2VfYW55X2ZpZWxkX2ludGVybmFsIChzdHJ1 Y3QgdHlwZSAqcmFuZ2VfdHlwZSwKKyAJCQkJCQlpbnQgZmllbGRubyk7CitAQCAtMTY1Niw3ICsx NjU2LDcgQEAgZXh0ZXJuIHZvaWQgZmluYWxpemVfdHlwZSAoc3RydWN0IHR5cGUgKgorIAorIGV4 dGVybiBzdHJ1Y3QgdHlwZSAqY3JlYXRlX3N0cmluZ190eXBlIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1 Y3QgdHlwZSAqLAorIAkJCQkJc3RydWN0IHR5cGUgKik7CistZXh0ZXJuIHN0cnVjdCB0eXBlICps b29rdXBfc3RyaW5nX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICosIGludCwgaW50KTsKKytleHRl cm4gc3RydWN0IHR5cGUgKmxvb2t1cF9zdHJpbmdfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKiwg TE9OR0VTVCwgTE9OR0VTVCk7CisgCisgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfc2V0X3R5 cGUgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB0eXBlICopOworIAorSW5kZXg6IGdkYi03LjUuMC4y MDEyMDkyNi9nZGIvdmFsb3BzLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41LjAuMjAxMjA5MjYu b3JpZy9nZGIvdmFsb3BzLmMJMjAxMi0xMS0wNyAyMjo0NjowMC4wMDAwMDAwMDAgKzAxMDAKKysr KyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3ZhbG9wcy5jCTIwMTItMTEtMDcgMjI6NTA6NDcuMDkx NzQxMTA0ICswMTAwCitAQCAtMTkzNywxMSArMTkzNywxMSBAQCB2YWx1ZV9hcnJheSAoaW50IGxv d2JvdW5kLCBpbnQgaGlnaGJvdW5kCisgfQorIAorIHN0cnVjdCB2YWx1ZSAqCistdmFsdWVfY3N0 cmluZyAoY2hhciAqcHRyLCBpbnQgbGVuLCBzdHJ1Y3QgdHlwZSAqY2hhcl90eXBlKQorK3ZhbHVl X2NzdHJpbmcgKGNoYXIgKnB0ciwgc3NpemVfdCBsZW4sIHN0cnVjdCB0eXBlICpjaGFyX3R5cGUp CisgeworICAgc3RydWN0IHZhbHVlICp2YWw7CisgICBpbnQgbG93Ym91bmQgPSBjdXJyZW50X2xh bmd1YWdlLT5zdHJpbmdfbG93ZXJfYm91bmQ7CistICBpbnQgaGlnaGJvdW5kID0gbGVuIC8gVFlQ RV9MRU5HVEggKGNoYXJfdHlwZSk7CisrICBzc2l6ZV90IGhpZ2hib3VuZCA9IGxlbiAvIFRZUEVf TEVOR1RIIChjaGFyX3R5cGUpOworICAgc3RydWN0IHR5cGUgKnN0cmluZ3R5cGUKKyAgICAgPSBs b29rdXBfYXJyYXlfcmFuZ2VfdHlwZSAoY2hhcl90eXBlLCBsb3dib3VuZCwgaGlnaGJvdW5kICsg bG93Ym91bmQgLSAxKTsKKyAKK0BAIC0xOTYwLDExICsxOTYwLDExIEBAIHZhbHVlX2NzdHJpbmcg KGNoYXIgKnB0ciwgaW50IGxlbiwgc3RydWMKKyAgICBzdHJpbmcgbWF5IGNvbnRhaW4gZW1iZWRk ZWQgbnVsbCBieXRlcy4gICovCisgCisgc3RydWN0IHZhbHVlICoKKy12YWx1ZV9zdHJpbmcgKGNo YXIgKnB0ciwgaW50IGxlbiwgc3RydWN0IHR5cGUgKmNoYXJfdHlwZSkKKyt2YWx1ZV9zdHJpbmcg KGNoYXIgKnB0ciwgc3NpemVfdCBsZW4sIHN0cnVjdCB0eXBlICpjaGFyX3R5cGUpCisgeworICAg c3RydWN0IHZhbHVlICp2YWw7CisgICBpbnQgbG93Ym91bmQgPSBjdXJyZW50X2xhbmd1YWdlLT5z dHJpbmdfbG93ZXJfYm91bmQ7CistICBpbnQgaGlnaGJvdW5kID0gbGVuIC8gVFlQRV9MRU5HVEgg KGNoYXJfdHlwZSk7CisrICBzc2l6ZV90IGhpZ2hib3VuZCA9IGxlbiAvIFRZUEVfTEVOR1RIIChj aGFyX3R5cGUpOworICAgc3RydWN0IHR5cGUgKnN0cmluZ3R5cGUKKyAgICAgPSBsb29rdXBfc3Ry aW5nX3JhbmdlX3R5cGUgKGNoYXJfdHlwZSwgbG93Ym91bmQsIGhpZ2hib3VuZCArIGxvd2JvdW5k IC0gMSk7CisgCitJbmRleDogZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi92YWx1ZS5oCis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL3ZhbHVlLmgJMjAxMi0xMS0wNyAy MjowOTozMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL3ZhbHVl LmgJMjAxMi0xMS0wNyAyMjo1MToxMS43NDQ3MDU2MTQgKzAxMDAKK0BAIC01OTMsOSArNTkzLDkg QEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfbWFyayAodm9pZCk7CisgCisgZXh0ZXJuIHZv aWQgdmFsdWVfZnJlZV90b19tYXJrIChzdHJ1Y3QgdmFsdWUgKm1hcmspOworIAorLWV4dGVybiBz dHJ1Y3QgdmFsdWUgKnZhbHVlX2NzdHJpbmcgKGNoYXIgKnB0ciwgaW50IGxlbiwKKytleHRlcm4g c3RydWN0IHZhbHVlICp2YWx1ZV9jc3RyaW5nIChjaGFyICpwdHIsIHNzaXplX3QgbGVuLAorIAkJ CQkgICAgc3RydWN0IHR5cGUgKmNoYXJfdHlwZSk7CistZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFs dWVfc3RyaW5nIChjaGFyICpwdHIsIGludCBsZW4sCisrZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFs dWVfc3RyaW5nIChjaGFyICpwdHIsIHNzaXplX3QgbGVuLAorIAkJCQkgICBzdHJ1Y3QgdHlwZSAq Y2hhcl90eXBlKTsKKyBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9iaXRzdHJpbmcgKGNoYXIg KnB0ciwgaW50IGxlbiwKKyAJCQkJICAgICAgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUpOwoKZGlm ZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yNW9mMjUtdGVzdC5wYXRjaCBiL2dkYi1y aGJ6Nzk1NDI0LWJpdHBvcy0yNW9mMjUtdGVzdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5lNDA2Yjk5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYno3OTU0MjQt Yml0cG9zLTI1b2YyNS10ZXN0LnBhdGNoCkBAIC0wLDAgKzEsNjI3IEBACitodHRwOi8vc291cmNl d2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMi0xMC9tc2cwMDIzMS5odG1sCitTdWJqZWN0OiBS ZTogW1BBVENIXSBFeHBhbmQgZm9ydHJhbiBhcnJheSBib3VuZHMgc2l6ZXMgdG8gTE9OR0VTVAor CitPbiBNb24sIDE1IE9jdCAyMDEyIDE1OjI1OjU1ICswMjAwLCBKYW4gS3JhdG9jaHZpbCB3cm90 ZToKKz4gSSBoYXZlIGZpbGVkIGZvciBpdCBub3c6Cis+IAlJbnZhbGlkIGRlYnVnLyBhcnJheSBi b3VuZHMgdy8tZm5vLXJhbmdlLWNoZWNrIGFuZCAzMi1iaXQgdGFyZ2V0Cis+IAlodHRwOi8vZ2Nj LmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTU0OTM0CisKK1RoZXJlZm9yZSBpdCBs b29rcyBhcyBhIHZhbGlkIGdmb3J0cmFuIEZTRiBHQ0MgSEVBRCBidWcgc28gcHJvdmlkZWQKK2Eg aGFuZC1wYXRjaGVkIC5TIGZpbGUgZm9yIGkzODY7IHBhdGNoZWQgR0RCIFBBU1NlcyB3aXRoIGl0 LgorCisKK1RoYW5rcywKK0phbgorCisKKzIwMTItMTAtMTUgIFNpZGRoZXNoIFBveWFyZWthciAg PHNpZGRoZXNoQHJlZGhhdC5jb20+CisJICAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2 aWxAcmVkaGF0LmNvbT4KKworCSogZ2RiLmZvcnRyYW4vYXJyYXktYm91bmRzLmV4cDogTmV3IHRl c3QgZmlsZS4KKwkqIGdkYi5mb3J0cmFuL2FycmF5LWJvdW5kcy5mOiBOZXcgdGVzdCBmaWxlLgor CSogZ2RiLmZvcnRyYW4vYXJyYXktYm91bmRzLlM6IE5ldyB0ZXN0IGZpbGUuCisKKy0tLSAvZGV2 L251bGwJMjAxMi0wOS0yNiAxNTozMjoxNi4wOTg1MDYzMTAgKzAyMDAKKysrKyBnZGItNy4yL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXJyYXktYm91bmRzLmV4cAkyMDEyLTEwLTE1IDIwOjUz OjI2LjQyNzA3MjU4MyArMDIwMAorQEAgLTAsMCArMSw0MyBAQAorKyMgQ29weXJpZ2h0IDIwMTIg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgorKworKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGdkYiB0ZXN0c3VpdGUuICBJ dCBjb250YWlucyB0ZXN0IHRvIGVuc3VyZSB0aGF0CisrIyBhcnJheSBib3VuZHMgYWNjZXB0IExP TkdFU1QuCisrCisraWYgeyBbc2tpcF9mb3J0cmFuX3Rlc3RzXSB9IHsgcmV0dXJuIC0xIH0KKysK KytzZXQgdGVzdGZpbGUgImFycmF5LWJvdW5kcyIKKysKKytpZiB7IFtpc19pbHAzMl90YXJnZXRd ICYmIChbaXN0YXJnZXQgImlcWzM0NTY3XF04Ni0qLWxpbnV4KiJdCisrCQkJICAgfHwgW2lzdGFy Z2V0ICJ4ODZfNjQtKi1saW51eCoiXSkgfSB7CisrICAgIHNldCBzcmNmaWxlICR7dGVzdGZpbGV9 LlMKKysgICAgc2V0IG9wdHMge25vZGVidWcgZjkwfQorK30gZWxzZSB7CisrICAgIHNldCBzcmNm aWxlICR7dGVzdGZpbGV9LmYKKysgICAgc2V0IG9wdHMge2RlYnVnIGY5MH0KKyt9CisrCisraWYg e1twcmVwYXJlX2Zvcl90ZXN0aW5nICR0ZXN0ZmlsZS5leHAgJHRlc3RmaWxlICRzcmNmaWxlICRv cHRzXX0geworKyAgICBwcmludCAiY29tcGlsZSBmYWlsZWQiCisrICAgIHJldHVybiAtMQorK30K KysKKytpZiB7ICFbcnVudG8gTUFJTl9fXSB9IHsKKysgICAgcGVycm9yICJDb3VsZCBub3QgcnVu IHRvIGJyZWFrcG9pbnQgYE1BSU5fXycuIgorKyAgICBjb250aW51ZQorK30KKysKKytnZGJfdGVz dCAicHJpbnQgJmZvbyIgey4qXCg0Mjk0OTY3Mjk2OjQyOTQ5NjcyOTdcKS4qfQorK2dkYl90ZXN0 ICJwcmludCAmYmFyIiB7LipcKC00Mjk0OTY3Mjk3Oi00Mjk0OTY3Mjk2XCkuKn0KKy0tLSAvZGV2 L251bGwJMjAxMi0wOS0yNiAxNTozMjoxNi4wOTg1MDYzMTAgKzAyMDAKKysrKyBnZGItNy4yL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXJyYXktYm91bmRzLmYJMjAxMi0xMC0xNSAxOTozNTox Mi41MDAyNTQyNjEgKzAyMDAKK0BAIC0wLDAgKzEsMjIgQEAKKytjIENvcHlyaWdodCAyMDEyIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworK2MgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKytjIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5CisrYyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcgorK2MgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKytjCisrYyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKytjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrYyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrYyBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorK2MKKytjIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrYyBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4KKysKKysgICAgICAgIGRpbWVuc2lvbiBmb28oNDI5NDk2NzI5Nl84OjQyOTQ5NjcyOTdf OCkKKysgICAgICAgIGRpbWVuc2lvbiBiYXIoLTQyOTQ5NjcyOTdfODotNDI5NDk2NzI5Nl84KQor KyAgICAgICAgYmFyID0gNDIKKysgICAgICAgIGZvbz1iYXIKKysgICAgICAgIHN0b3AKKysgICAg ICAgIGVuZAorKworLS0tIC9kZXYvbnVsbAkyMDEyLTA5LTI2IDE1OjMyOjE2LjA5ODUwNjMxMCAr MDIwMAorKysrIGdkYi03LjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1ib3VuZHMu UwkyMDEyLTEwLTE1IDIwOjUyOjM2Ljg1MTExODIxNSArMDIwMAorQEAgLTAsMCArMSw1MjkgQEAK KysvKiBDb3B5cmlnaHQgMjAxMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysg ICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisr ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysgICBUaGlzIGZpbGUgaXMg cGFydCBvZiB0aGUgZ2RiIHRlc3RzdWl0ZS4gICovCisrCisrCS5maWxlCSJhcnJheS1ib3VuZHMu ZiIKKysJLnRleHQKKysuTHRleHQwOgorKwkudHlwZQlNQUlOX18sIEBmdW5jdGlvbgorK01BSU5f XzoKKysuTEZCMDoKKysJLmZpbGUgMSAiZ2RiLmZvcnRyYW4vYXJyYXktYm91bmRzLmYiCisrCSMg Z2RiLmZvcnRyYW4vYXJyYXktYm91bmRzLmY6MTYKKysJLmxvYyAxIDE2IDAKKysJLmNmaV9zdGFy dHByb2MKKysjIEJMT0NLIDIgc2VxOjAKKysjIFBSRUQ6IEVOVFJZIChGQUxMVEhSVSkKKysJcHVz aGwJJWVicAorKy5MQ0ZJMDoKKysJLmNmaV9kZWZfY2ZhX29mZnNldCA4CisrCS5jZmlfb2Zmc2V0 IDUsIC04CisrCW1vdmwJJWVzcCwgJWVicAorKy5MQ0ZJMToKKysJLmNmaV9kZWZfY2ZhX3JlZ2lz dGVyIDUKKysJc3VibAkkNDAsICVlc3AKKysuTEJCMjoKKysjIFNVQ0M6IDMgKEZBTExUSFJVKQor KwkjIGdkYi5mb3J0cmFuL2FycmF5LWJvdW5kcy5mOjE4CisrCS5sb2MgMSAxOCAwCisrCW1vdmwJ JC0xLCAlZWF4CisrIyBCTE9DSyAzIHNlcToxCisrIyBQUkVEOiAyIChGQUxMVEhSVSkgNCBbMTAw LjAlXSAKKysuTDM6CisrCSMgZ2RiLmZvcnRyYW4vYXJyYXktYm91bmRzLmY6MTgKKysJLmxvYyAx IDE4IDAgaXNfc3RtdCAwIGRpc2NyaW1pbmF0b3IgMQorKwl0ZXN0bAklZWF4LCAlZWF4CisrIyBT VUNDOiA1IDQgKEZBTExUSFJVKQorKwlqZwkuTDIKKysjIEJMT0NLIDQgc2VxOjIKKysjIFBSRUQ6 IDMgKEZBTExUSFJVKQorKwkjIGdkYi5mb3J0cmFuL2FycmF5LWJvdW5kcy5mOjE4CisrCS5sb2Mg MSAxOCAwIGRpc2NyaW1pbmF0b3IgMgorKwlsZWFsCTEoJWVheCksICVlY3gKKysJbW92bAkuTEMw LCAlZWR4CisrCW1vdmwJJWVkeCwgLTE2KCVlYnAsJWVjeCw0KQorKwlhZGRsCSQxLCAlZWF4Cisr IyBTVUNDOiAzIFsxMDAuMCVdIAorKwlqbXAJLkwzCisrIyBCTE9DSyA1IHNlcTozCisrIyBQUkVE OiAzCisrLkwyOgorKy5MQkUyOgorKwkjIGdkYi5mb3J0cmFuL2FycmF5LWJvdW5kcy5mOjE5Cisr CS5sb2MgMSAxOSAwIGlzX3N0bXQgMQorKwltb3ZsCS0xNiglZWJwKSwgJWVheAorKwltb3ZsCS0x MiglZWJwKSwgJWVkeAorKwltb3ZsCSVlYXgsIC0yNCglZWJwKQorKwltb3ZsCSVlZHgsIC0yMCgl ZWJwKQorKwkjIGdkYi5mb3J0cmFuL2FycmF5LWJvdW5kcy5mOjIwCisrCS5sb2MgMSAyMCAwCisr CW1vdmwJJDAsIDQoJWVzcCkKKysJbW92bAkkMCwgKCVlc3ApCisrIyBTVUNDOgorKwljYWxsCV9n Zm9ydHJhbl9zdG9wX3N0cmluZworKwkuY2ZpX2VuZHByb2MKKysuTEZFMDoKKysJLnNpemUJTUFJ Tl9fLCAuLU1BSU5fXworKwkuZ2xvYmwJbWFpbgorKwkudHlwZQltYWluLCBAZnVuY3Rpb24KKytt YWluOgorKy5MRkIxOgorKwkjIGdkYi5mb3J0cmFuL2FycmF5LWJvdW5kcy5mOjIxCisrCS5sb2Mg MSAyMSAwCisrCS5jZmlfc3RhcnRwcm9jCisrIyBCTE9DSyAyIHNlcTowCisrIyBQUkVEOiBFTlRS WSAoRkFMTFRIUlUpCisrCXB1c2hsCSVlYnAKKysuTENGSTI6CisrCS5jZmlfZGVmX2NmYV9vZmZz ZXQgOAorKwkuY2ZpX29mZnNldCA1LCAtOAorKwltb3ZsCSVlc3AsICVlYnAKKysuTENGSTM6Cisr CS5jZmlfZGVmX2NmYV9yZWdpc3RlciA1CisrCWFuZGwJJC0xNiwgJWVzcAorKwlzdWJsCSQxNiwg JWVzcAorKwkjIGdkYi5mb3J0cmFuL2FycmF5LWJvdW5kcy5mOjIxCisrCS5sb2MgMSAyMSAwCisr CW1vdmwJMTIoJWVicCksICVlYXgKKysJbW92bAklZWF4LCA0KCVlc3ApCisrCW1vdmwJOCglZWJw KSwgJWVheAorKwltb3ZsCSVlYXgsICglZXNwKQorKwljYWxsCV9nZm9ydHJhbl9zZXRfYXJncwor Kwltb3ZsCSRvcHRpb25zLjEuMTgyNCwgNCglZXNwKQorKwltb3ZsCSQ3LCAoJWVzcCkKKysJY2Fs bAlfZ2ZvcnRyYW5fc2V0X29wdGlvbnMKKysJY2FsbAlNQUlOX18KKysJbW92bAkkMCwgJWVheAor KwlsZWF2ZQorKy5MQ0ZJNDoKKysJLmNmaV9yZXN0b3JlIDUKKysJLmNmaV9kZWZfY2ZhIDQsIDQK KysjIFNVQ0M6IEVYSVQgWzEwMC4wJV0gCisrCXJldAorKwkuY2ZpX2VuZHByb2MKKysuTEZFMToK KysJLnNpemUJbWFpbiwgLi1tYWluCisrCS5zZWN0aW9uCS5yb2RhdGEKKysJLmFsaWduIDQKKysJ LnR5cGUJb3B0aW9ucy4xLjE4MjQsIEBvYmplY3QKKysJLnNpemUJb3B0aW9ucy4xLjE4MjQsIDI4 Cisrb3B0aW9ucy4xLjE4MjQ6CisrCS5sb25nCTY4CisrCS5sb25nCTEwMjMKKysJLmxvbmcJMAor KwkubG9uZwkwCisrCS5sb25nCTEKKysJLmxvbmcJMQorKwkubG9uZwkwCisrCS5hbGlnbiA0Cisr LkxDMDoKKysJLmxvbmcJMTEwOTkxNzY5NgorKwkudGV4dAorKy5MZXRleHQwOgorKwkuc2VjdGlv bgkuZGVidWdfaW5mbywiIixAcHJvZ2JpdHMKKysuTGRlYnVnX2luZm8wOgorKwkubG9uZwkyZiAt IDFmCSMgTGVuZ3RoIG9mIENvbXBpbGF0aW9uIFVuaXQgSW5mbworKzE6CisrCS52YWx1ZQkweDIJ IyBEV0FSRiB2ZXJzaW9uIG51bWJlcgorKwkubG9uZwkuTGRlYnVnX2FiYnJldjAJIyBPZmZzZXQg SW50byBBYmJyZXYuIFNlY3Rpb24KKysJLmJ5dGUJMHg0CSMgUG9pbnRlciBTaXplIChpbiBieXRl cykKKytkaWViOgkudWxlYjEyOCAweDEJIyAoRElFICgweGIpIERXX1RBR19jb21waWxlX3VuaXQp CisrCS5sb25nCS5MQVNGNQkjIERXX0FUX3Byb2R1Y2VyOiAiR05VIEZvcnRyYW4gNC44LjAgMjAx MjEwMTUgKGV4cGVyaW1lbnRhbCkgLWZmaXhlZC1mb3JtIC1tMzIgLW10dW5lPWdlbmVyaWMgLW1h cmNoPXg4Ni02NCAtZyAtZ2R3YXJmLTIgLWZpbnRyaW5zaWMtbW9kdWxlcy1wYXRoIC4uLi9nY2No ZWFkLXJvb3QvbGliL2djYy94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvNC44LjAvZmluY2x1ZGUi CisrCS5ieXRlCTB4ZQkjIERXX0FUX2xhbmd1YWdlCisrCS5ieXRlCTB4MgkjIERXX0FUX2lkZW50 aWZpZXJfY2FzZQorKwkubG9uZwkuTEFTRjYJIyBEV19BVF9uYW1lOiAiZ2RiLmZvcnRyYW4vYXJy YXktYm91bmRzLmYiCisrCS5sb25nCS5MQVNGNwkjIERXX0FUX2NvbXBfZGlyOiAiIgorKwkubG9u ZwkuTHRleHQwCSMgRFdfQVRfbG93X3BjCisrCS5sb25nCS5MZXRleHQwCSMgRFdfQVRfaGlnaF9w YworKwkubG9uZwkuTGRlYnVnX2xpbmUwCSMgRFdfQVRfc3RtdF9saXN0CisrZGllMjY6CS51bGVi MTI4IDB4MgkjIChESUUgKDB4MjYpIERXX1RBR19zdWJwcm9ncmFtKQorKwkubG9uZwkuTEFTRjgJ IyBEV19BVF9uYW1lOiAiTUFJTl9fIgorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKGdk Yi5mb3J0cmFuL2FycmF5LWJvdW5kcy5mKQorKwkuYnl0ZQkweDEwCSMgRFdfQVRfZGVjbF9saW5l CisrCS5sb25nCS5MRkIwCSMgRFdfQVRfbG93X3BjCisrCS5sb25nCS5MRkUwCSMgRFdfQVRfaGln aF9wYworKwkubG9uZwkuTExTVDAJIyBEV19BVF9mcmFtZV9iYXNlCisrCS5ieXRlCTB4MQkjIERX X0FUX0dOVV9hbGxfdGFpbF9jYWxsX3NpdGVzCisrCS5ieXRlCTB4MQkjIERXX0FUX21haW5fc3Vi cHJvZ3JhbQorKwkuYnl0ZQkweDIJIyBEV19BVF9jYWxsaW5nX2NvbnZlbnRpb24KKysJLmxvbmcJ ZGllNjYgLSAuTGRlYnVnX2luZm8wCSMgRFdfQVRfc2libGluZworK2RpZTQwOgkudWxlYjEyOCAw eDMJIyAoRElFICgweDQwKSBEV19UQUdfdmFyaWFibGUpCisrCS5hc2NpaSAiYmFyXDAiCSMgRFdf QVRfbmFtZQorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKGdkYi5mb3J0cmFuL2FycmF5 LWJvdW5kcy5mKQorKwkuYnl0ZQkweDExCSMgRFdfQVRfZGVjbF9saW5lCisrCS5sb25nCWRpZTY2 IC0gLkxkZWJ1Z19pbmZvMAkjIERXX0FUX3R5cGUKKysJLmJ5dGUJMHgyCSMgRFdfQVRfbG9jYXRp b24KKysJLmJ5dGUJMHg5MQkjIERXX09QX2ZicmVnCisrCS5zbGViMTI4IC0yNAorK2RpZTRlOgku dWxlYjEyOCAweDMJIyAoRElFICgweDRlKSBEV19UQUdfdmFyaWFibGUpCisrCS5hc2NpaSAiZm9v XDAiCSMgRFdfQVRfbmFtZQorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKGdkYi5mb3J0 cmFuL2FycmF5LWJvdW5kcy5mKQorKwkuYnl0ZQkweDEwCSMgRFdfQVRfZGVjbF9saW5lCisrCS5s b25nCWRpZTg4IC0gLkxkZWJ1Z19pbmZvMAkjIERXX0FUX3R5cGUKKysJLmJ5dGUJMHgyCSMgRFdf QVRfbG9jYXRpb24KKysJLmJ5dGUJMHg5MQkjIERXX09QX2ZicmVnCisrCS5zbGViMTI4IC0zMgor K2RpZTVjOgkudWxlYjEyOCAweDQJIyAoRElFICgweDVjKSBEV19UQUdfbGV4aWNhbF9ibG9jaykK KysJLmxvbmcJLkxCQjIJIyBEV19BVF9sb3dfcGMKKysJLmxvbmcJLkxCRTIJIyBEV19BVF9oaWdo X3BjCisrCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4MjYKKytkaWU2NjoJLnVs ZWIxMjggMHg1CSMgKERJRSAoMHg2NikgRFdfVEFHX2FycmF5X3R5cGUpCisrCS5sb25nCWRpZTgx IC0gLkxkZWJ1Z19pbmZvMAkjIERXX0FUX3R5cGUKKysJLmxvbmcJZGllN2EgLSAuTGRlYnVnX2lu Zm8wCSMgRFdfQVRfc2libGluZworK2RpZTZmOgkudWxlYjEyOCAweDYJIyAoRElFICgweDZmKSBE V19UQUdfc3VicmFuZ2VfdHlwZSkKKysJLmxvbmcJZGllN2EgLSAuTGRlYnVnX2luZm8wCSMgRFdf QVRfdHlwZQorKyNpZiAwCisrCS5sb25nCTB4ZmZmZmZmZmYJIyBEV19BVF9sb3dlcl9ib3VuZAor KwkuYnl0ZQkwCSMgRFdfQVRfdXBwZXJfYm91bmQKKysjZWxzZQorKwkucXVhZAkweGZmZmZmZmZl ZmZmZmZmZmYJIyBEV19BVF9sb3dlcl9ib3VuZAorKwkucXVhZAkweGZmZmZmZmZmMDAwMDAwMDAJ IyBEV19BVF91cHBlcl9ib3VuZAorKyNlbmRpZgorKwkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVu IG9mIERJRSAweDY2CisrZGllN2E6CS51bGViMTI4IDB4NwkjIChESUUgKDB4N2EpIERXX1RBR19i YXNlX3R5cGUpCisrI2lmIDAKKysJLmJ5dGUJMHg0CSMgRFdfQVRfYnl0ZV9zaXplCisrI2Vsc2UK KysJLmJ5dGUJMHg4CSMgRFdfQVRfYnl0ZV9zaXplCisrI2VuZGlmCisrCS5ieXRlCTB4NQkjIERX X0FUX2VuY29kaW5nCisrCS5sb25nCS5MQVNGMAkjIERXX0FUX25hbWU6ICJpbnRlZ2VyKGtpbmQ9 NCkiCisrZGllODE6CS51bGViMTI4IDB4NwkjIChESUUgKDB4ODEpIERXX1RBR19iYXNlX3R5cGUp CisrCS5ieXRlCTB4NAkjIERXX0FUX2J5dGVfc2l6ZQorKwkuYnl0ZQkweDQJIyBEV19BVF9lbmNv ZGluZworKwkubG9uZwkuTEFTRjEJIyBEV19BVF9uYW1lOiAicmVhbChraW5kPTQpIgorK2RpZTg4 OgkudWxlYjEyOCAweDUJIyAoRElFICgweDg4KSBEV19UQUdfYXJyYXlfdHlwZSkKKysJLmxvbmcJ ZGllODEgLSAuTGRlYnVnX2luZm8wCSMgRFdfQVRfdHlwZQorKwkubG9uZwlkaWU5OSAtIC5MZGVi dWdfaW5mbzAJIyBEV19BVF9zaWJsaW5nCisrZGllOTE6CS51bGViMTI4IDB4OAkjIChESUUgKDB4 OTEpIERXX1RBR19zdWJyYW5nZV90eXBlKQorKwkubG9uZwlkaWU3YSAtIC5MZGVidWdfaW5mbzAJ IyBEV19BVF90eXBlCisrI2lmIDAKKysJLmJ5dGUJMAkjIERXX0FUX2xvd2VyX2JvdW5kCisrCS5i eXRlCTB4MQkjIERXX0FUX3VwcGVyX2JvdW5kCisrI2Vsc2UKKysJLnF1YWQJMHgxMDAwMDAwMDAJ IyBEV19BVF9sb3dlcl9ib3VuZAorKwkucXVhZAkweDEwMDAwMDAwMQkjIERXX0FUX3VwcGVyX2Jv dW5kCisrI2VuZGlmCisrCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4ODgKKytk aWU5OToJLnVsZWIxMjggMHg5CSMgKERJRSAoMHg5OSkgRFdfVEFHX3N1YnByb2dyYW0pCisrCS5i eXRlCTB4MQkjIERXX0FUX2V4dGVybmFsCisrCS5sb25nCS5MQVNGOQkjIERXX0FUX25hbWU6ICJt YWluIgorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKGdkYi5mb3J0cmFuL2FycmF5LWJv dW5kcy5mKQorKwkuYnl0ZQkweDE1CSMgRFdfQVRfZGVjbF9saW5lCisrCS5sb25nCWRpZTdhIC0g LkxkZWJ1Z19pbmZvMAkjIERXX0FUX3R5cGUKKysJLmxvbmcJLkxGQjEJIyBEV19BVF9sb3dfcGMK KysJLmxvbmcJLkxGRTEJIyBEV19BVF9oaWdoX3BjCisrCS5sb25nCS5MTFNUMQkjIERXX0FUX2Zy YW1lX2Jhc2UKKysJLmJ5dGUJMHgxCSMgRFdfQVRfR05VX2FsbF90YWlsX2NhbGxfc2l0ZXMKKysJ LmxvbmcJZGllZDQgLSAuTGRlYnVnX2luZm8wCSMgRFdfQVRfc2libGluZworK2RpZWI2OgkudWxl YjEyOCAweGEJIyAoRElFICgweGI2KSBEV19UQUdfZm9ybWFsX3BhcmFtZXRlcikKKysJLmxvbmcJ LkxBU0YyCSMgRFdfQVRfbmFtZTogImFyZ2MiCisrCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmls ZSAoZ2RiLmZvcnRyYW4vYXJyYXktYm91bmRzLmYpCisrCS5ieXRlCTB4MTUJIyBEV19BVF9kZWNs X2xpbmUKKysJLmxvbmcJZGllZDQgLSAuTGRlYnVnX2luZm8wCSMgRFdfQVRfdHlwZQorKwkuYnl0 ZQkweDIJIyBEV19BVF9sb2NhdGlvbgorKwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcKKysJLnNs ZWIxMjggMAorK2RpZWM0OgkudWxlYjEyOCAweGEJIyAoRElFICgweGM0KSBEV19UQUdfZm9ybWFs X3BhcmFtZXRlcikKKysJLmxvbmcJLkxBU0YzCSMgRFdfQVRfbmFtZTogImFyZ3YiCisrCS5ieXRl CTB4MQkjIERXX0FUX2RlY2xfZmlsZSAoZ2RiLmZvcnRyYW4vYXJyYXktYm91bmRzLmYpCisrCS5i eXRlCTB4MTUJIyBEV19BVF9kZWNsX2xpbmUKKysJLmxvbmcJZGllZDkgLSAuTGRlYnVnX2luZm8w CSMgRFdfQVRfdHlwZQorKwkuYnl0ZQkweDMJIyBEV19BVF9sb2NhdGlvbgorKwkuYnl0ZQkweDkx CSMgRFdfT1BfZmJyZWcKKysJLnNsZWIxMjggNAorKwkuYnl0ZQkweDYJIyBEV19PUF9kZXJlZgor KwkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDk5CisrZGllZDQ6CS51bGViMTI4 IDB4YgkjIChESUUgKDB4ZDQpIERXX1RBR19jb25zdF90eXBlKQorKwkubG9uZwlkaWU3YSAtIC5M ZGVidWdfaW5mbzAJIyBEV19BVF90eXBlCisrZGllZDk6CS51bGViMTI4IDB4YwkjIChESUUgKDB4 ZDkpIERXX1RBR19wb2ludGVyX3R5cGUpCisrCS5ieXRlCTB4NAkjIERXX0FUX2J5dGVfc2l6ZQor KwkubG9uZwlkaWVkZiAtIC5MZGVidWdfaW5mbzAJIyBEV19BVF90eXBlCisrZGllZGY6CS51bGVi MTI4IDB4NwkjIChESUUgKDB4ZGYpIERXX1RBR19iYXNlX3R5cGUpCisrCS5ieXRlCTB4MQkjIERX X0FUX2J5dGVfc2l6ZQorKwkuYnl0ZQkweDgJIyBEV19BVF9lbmNvZGluZworKwkubG9uZwkuTEFT RjQJIyBEV19BVF9uYW1lOiAiY2hhcmFjdGVyKGtpbmQ9MSkiCisrCS5ieXRlCTAJIyBlbmQgb2Yg Y2hpbGRyZW4gb2YgRElFIDB4YgorKzI6CisrCS5zZWN0aW9uCS5kZWJ1Z19hYmJyZXYsIiIsQHBy b2diaXRzCisrLkxkZWJ1Z19hYmJyZXYwOgorKwkudWxlYjEyOCAweDEJIyAoYWJicmV2IGNvZGUp CisrCS51bGViMTI4IDB4MTEJIyAoVEFHOiBEV19UQUdfY29tcGlsZV91bml0KQorKwkuYnl0ZQkw eDEJIyBEV19jaGlsZHJlbl95ZXMKKysJLnVsZWIxMjggMHgyNQkjIChEV19BVF9wcm9kdWNlcikK KysJLnVsZWIxMjggMHhlCSMgKERXX0ZPUk1fc3RycCkKKysJLnVsZWIxMjggMHgxMwkjIChEV19B VF9sYW5ndWFnZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4 IDB4NDIJIyAoRFdfQVRfaWRlbnRpZmllcl9jYXNlKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9S TV9kYXRhMSkKKysJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisrCS51bGViMTI4IDB4ZQkj IChEV19GT1JNX3N0cnApCisrCS51bGViMTI4IDB4MWIJIyAoRFdfQVRfY29tcF9kaXIpCisrCS51 bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCisrCS51bGViMTI4IDB4MTEJIyAoRFdfQVRfbG93 X3BjKQorKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQorKwkudWxlYjEyOCAweDEyCSMg KERXX0FUX2hpZ2hfcGMpCisrCS51bGViMTI4IDB4MQkjIChEV19GT1JNX2FkZHIpCisrCS51bGVi MTI4IDB4MTAJIyAoRFdfQVRfc3RtdF9saXN0KQorKwkudWxlYjEyOCAweDYJIyAoRFdfRk9STV9k YXRhNCkKKysJLmJ5dGUJMAorKwkuYnl0ZQkwCisrCS51bGViMTI4IDB4MgkjIChhYmJyZXYgY29k ZSkKKysJLnVsZWIxMjggMHgyZQkjIChUQUc6IERXX1RBR19zdWJwcm9ncmFtKQorKwkuYnl0ZQkw eDEJIyBEV19jaGlsZHJlbl95ZXMKKysJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisrCS51 bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCisrCS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVj bF9maWxlKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHgz YgkjIChEV19BVF9kZWNsX2xpbmUpCisrCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQor KwkudWxlYjEyOCAweDExCSMgKERXX0FUX2xvd19wYykKKysJLnVsZWIxMjggMHgxCSMgKERXX0ZP Uk1fYWRkcikKKysJLnVsZWIxMjggMHgxMgkjIChEV19BVF9oaWdoX3BjKQorKwkudWxlYjEyOCAw eDEJIyAoRFdfRk9STV9hZGRyKQorKwkudWxlYjEyOCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2Up CisrCS51bGViMTI4IDB4NgkjIChEV19GT1JNX2RhdGE0KQorKwkudWxlYjEyOCAweDIxMTYJIyAo RFdfQVRfR05VX2FsbF90YWlsX2NhbGxfc2l0ZXMpCisrCS51bGViMTI4IDB4YwkjIChEV19GT1JN X2ZsYWcpCisrCS51bGViMTI4IDB4NmEJIyAoRFdfQVRfbWFpbl9zdWJwcm9ncmFtKQorKwkudWxl YjEyOCAweGMJIyAoRFdfRk9STV9mbGFnKQorKwkudWxlYjEyOCAweDM2CSMgKERXX0FUX2NhbGxp bmdfY29udmVudGlvbikKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGVi MTI4IDB4MQkjIChEV19BVF9zaWJsaW5nKQorKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVm NCkKKysJLmJ5dGUJMAorKwkuYnl0ZQkwCisrCS51bGViMTI4IDB4MwkjIChhYmJyZXYgY29kZSkK KysJLnVsZWIxMjggMHgzNAkjIChUQUc6IERXX1RBR192YXJpYWJsZSkKKysJLmJ5dGUJMAkjIERX X2NoaWxkcmVuX25vCisrCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQorKwkudWxlYjEyOCAw eDgJIyAoRFdfRk9STV9zdHJpbmcpCisrCS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxl KQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHgzYgkjIChE V19BVF9kZWNsX2xpbmUpCisrCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxl YjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCisrCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0 KQorKwkudWxlYjEyOCAweDIJIyAoRFdfQVRfbG9jYXRpb24pCisrCS51bGViMTI4IDB4YQkjIChE V19GT1JNX2Jsb2NrMSkKKysJLmJ5dGUJMAorKwkuYnl0ZQkwCisrCS51bGViMTI4IDB4NAkjIChh YmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHhiCSMgKFRBRzogRFdfVEFHX2xleGljYWxfYmxvY2sp CisrCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubworKwkudWxlYjEyOCAweDExCSMgKERXX0FUX2xv d19wYykKKysJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKKysJLnVsZWIxMjggMHgxMgkj IChEV19BVF9oaWdoX3BjKQorKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQorKwkuYnl0 ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjggMHg1CSMgKGFiYnJldiBjb2RlKQorKwkudWxlYjEy OCAweDEJIyAoVEFHOiBEV19UQUdfYXJyYXlfdHlwZSkKKysJLmJ5dGUJMHgxCSMgRFdfY2hpbGRy ZW5feWVzCisrCS51bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlwZSkKKysJLnVsZWIxMjggMHgxMwkj IChEV19GT1JNX3JlZjQpCisrCS51bGViMTI4IDB4MQkjIChEV19BVF9zaWJsaW5nKQorKwkudWxl YjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKKysJLmJ5dGUJMAorKwkuYnl0ZQkwCisrCS51bGVi MTI4IDB4NgkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHgyMQkjIChUQUc6IERXX1RBR19z dWJyYW5nZV90eXBlKQorKwkuYnl0ZQkwCSMgRFdfY2hpbGRyZW5fbm8KKysJLnVsZWIxMjggMHg0 OQkjIChEV19BVF90eXBlKQorKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKKysjaWYg MAorKwkudWxlYjEyOCAweDIyCSMgKERXX0FUX2xvd2VyX2JvdW5kKQorKwkudWxlYjEyOCAweDYJ IyAoRFdfRk9STV9kYXRhNCkKKysJLnVsZWIxMjggMHgyZgkjIChEV19BVF91cHBlcl9ib3VuZCkK KysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrI2Vsc2UKKysJLnVsZWIxMjggMHgy MgkjIChEV19BVF9sb3dlcl9ib3VuZCkKKysJLnVsZWIxMjggMHg3CSMgKERXX0ZPUk1fZGF0YTgp CisrCS51bGViMTI4IDB4MmYJIyAoRFdfQVRfdXBwZXJfYm91bmQpCisrCS51bGViMTI4IDB4Nwkj IChEV19GT1JNX2RhdGE4KQorKyNlbmRpZgorKwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIx MjggMHg3CSMgKGFiYnJldiBjb2RlKQorKwkudWxlYjEyOCAweDI0CSMgKFRBRzogRFdfVEFHX2Jh c2VfdHlwZSkKKysJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCisrCS51bGViMTI4IDB4YgkjIChE V19BVF9ieXRlX3NpemUpCisrCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxl YjEyOCAweDNlCSMgKERXX0FUX2VuY29kaW5nKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9k YXRhMSkKKysJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisrCS51bGViMTI4IDB4ZQkjIChE V19GT1JNX3N0cnApCisrCS5ieXRlCTAKKysJLmJ5dGUJMAorKwkudWxlYjEyOCAweDgJIyAoYWJi cmV2IGNvZGUpCisrCS51bGViMTI4IDB4MjEJIyAoVEFHOiBEV19UQUdfc3VicmFuZ2VfdHlwZSkK KysJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCisrCS51bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlw ZSkKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisrI2lmIDAKKysJLnVsZWIxMjgg MHgyMgkjIChEV19BVF9sb3dlcl9ib3VuZCkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0 YTEpCisrCS51bGViMTI4IDB4MmYJIyAoRFdfQVRfdXBwZXJfYm91bmQpCisrCS51bGViMTI4IDB4 YgkjIChEV19GT1JNX2RhdGExKQorKyNlbHNlCisrCS51bGViMTI4IDB4MjIJIyAoRFdfQVRfbG93 ZXJfYm91bmQpCisrCS51bGViMTI4IDB4NwkjIChEV19GT1JNX2RhdGE4KQorKwkudWxlYjEyOCAw eDJmCSMgKERXX0FUX3VwcGVyX2JvdW5kKQorKwkudWxlYjEyOCAweDcJIyAoRFdfRk9STV9kYXRh OCkKKysjZW5kaWYKKysJLmJ5dGUJMAorKwkuYnl0ZQkwCisrCS51bGViMTI4IDB4OQkjIChhYmJy ZXYgY29kZSkKKysJLnVsZWIxMjggMHgyZQkjIChUQUc6IERXX1RBR19zdWJwcm9ncmFtKQorKwku Ynl0ZQkweDEJIyBEV19jaGlsZHJlbl95ZXMKKysJLnVsZWIxMjggMHgzZgkjIChEV19BVF9leHRl cm5hbCkKKysJLnVsZWIxMjggMHhjCSMgKERXX0ZPUk1fZmxhZykKKysJLnVsZWIxMjggMHgzCSMg KERXX0FUX25hbWUpCisrCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCisrCS51bGViMTI4 IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxlKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRh MSkKKysJLnVsZWIxMjggMHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCisrCS51bGViMTI4IDB4Ygkj IChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCisrCS51bGVi MTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQorKwkudWxlYjEyOCAweDExCSMgKERXX0FUX2xvd19w YykKKysJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKKysJLnVsZWIxMjggMHgxMgkjIChE V19BVF9oaWdoX3BjKQorKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQorKwkudWxlYjEy OCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2UpCisrCS51bGViMTI4IDB4NgkjIChEV19GT1JNX2Rh dGE0KQorKwkudWxlYjEyOCAweDIxMTYJIyAoRFdfQVRfR05VX2FsbF90YWlsX2NhbGxfc2l0ZXMp CisrCS51bGViMTI4IDB4YwkjIChEV19GT1JNX2ZsYWcpCisrCS51bGViMTI4IDB4MQkjIChEV19B VF9zaWJsaW5nKQorKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKKysJLmJ5dGUJMAor KwkuYnl0ZQkwCisrCS51bGViMTI4IDB4YQkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHg1 CSMgKFRBRzogRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCisrCS5ieXRlCTAJIyBEV19jaGlsZHJl bl9ubworKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKKysJLnVsZWIxMjggMHhlCSMgKERX X0ZPUk1fc3RycCkKKysJLnVsZWIxMjggMHgzYQkjIChEV19BVF9kZWNsX2ZpbGUpCisrCS51bGVi MTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDNiCSMgKERXX0FUX2RlY2xf bGluZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4NDkJ IyAoRFdfQVRfdHlwZSkKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisrCS51bGVi MTI4IDB4MgkjIChEV19BVF9sb2NhdGlvbikKKysJLnVsZWIxMjggMHhhCSMgKERXX0ZPUk1fYmxv Y2sxKQorKwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjggMHhiCSMgKGFiYnJldiBjb2Rl KQorKwkudWxlYjEyOCAweDI2CSMgKFRBRzogRFdfVEFHX2NvbnN0X3R5cGUpCisrCS5ieXRlCTAJ IyBEV19jaGlsZHJlbl9ubworKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCisrCS51bGVi MTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQorKwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIx MjggMHhjCSMgKGFiYnJldiBjb2RlKQorKwkudWxlYjEyOCAweGYJIyAoVEFHOiBEV19UQUdfcG9p bnRlcl90eXBlKQorKwkuYnl0ZQkwCSMgRFdfY2hpbGRyZW5fbm8KKysJLnVsZWIxMjggMHhiCSMg KERXX0FUX2J5dGVfc2l6ZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51 bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlwZSkKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3Jl ZjQpCisrCS5ieXRlCTAKKysJLmJ5dGUJMAorKwkuYnl0ZQkwCisrCS5zZWN0aW9uCS5kZWJ1Z19s b2MsIiIsQHByb2diaXRzCisrLkxkZWJ1Z19sb2MwOgorKy5MTFNUMDoKKysJLmxvbmcJLkxGQjAt Lkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUMCkKKysJLmxvbmcJ LkxDRkkwLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1QwKQorKwku dmFsdWUJMHgyCSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NzQJIyBEV19P UF9icmVnNAorKwkuc2xlYjEyOCA0CisrCS5sb25nCS5MQ0ZJMC0uTHRleHQwCSMgTG9jYXRpb24g bGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QwKQorKwkubG9uZwkuTENGSTEtLkx0ZXh0MAkjIExv Y2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDApCisrCS52YWx1ZQkweDIJIyBMb2NhdGlv biBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4 IDgKKysJLmxvbmcJLkxDRkkxLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3Mg KCouTExTVDApCisrCS5sb25nCS5MRkUwLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRy ZXNzICgqLkxMU1QwKQorKwkudmFsdWUJMHgyCSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisr CS5ieXRlCTB4NzUJIyBEV19PUF9icmVnNQorKwkuc2xlYjEyOCA4CisrCS5sb25nCTAJIyBMb2Nh dGlvbiBsaXN0IHRlcm1pbmF0b3IgYmVnaW4gKCouTExTVDApCisrCS5sb25nCTAJIyBMb2NhdGlv biBsaXN0IHRlcm1pbmF0b3IgZW5kICgqLkxMU1QwKQorKy5MTFNUMToKKysJLmxvbmcJLkxGQjEt Lkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUMSkKKysJLmxvbmcJ LkxDRkkyLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1QxKQorKwku dmFsdWUJMHgyCSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NzQJIyBEV19P UF9icmVnNAorKwkuc2xlYjEyOCA0CisrCS5sb25nCS5MQ0ZJMi0uTHRleHQwCSMgTG9jYXRpb24g bGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QxKQorKwkubG9uZwkuTENGSTMtLkx0ZXh0MAkjIExv Y2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDEpCisrCS52YWx1ZQkweDIJIyBMb2NhdGlv biBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4 IDgKKysJLmxvbmcJLkxDRkkzLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3Mg KCouTExTVDEpCisrCS5sb25nCS5MQ0ZJNC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRk cmVzcyAoKi5MTFNUMSkKKysJLnZhbHVlCTB4MgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQor KwkuYnl0ZQkweDc1CSMgRFdfT1BfYnJlZzUKKysJLnNsZWIxMjggOAorKwkubG9uZwkuTENGSTQt Lkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUMSkKKysJLmxvbmcJ LkxGRTEtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDEpCisrCS52 YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NAkjIERXX09Q X2JyZWc0CisrCS5zbGViMTI4IDQKKysJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRv ciBiZWdpbiAoKi5MTFNUMSkKKysJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBl bmQgKCouTExTVDEpCisrCS5zZWN0aW9uCS5kZWJ1Z19hcmFuZ2VzLCIiLEBwcm9nYml0cworKwku bG9uZwkweDFjCSMgTGVuZ3RoIG9mIEFkZHJlc3MgUmFuZ2VzIEluZm8KKysJLnZhbHVlCTB4Mgkj IERXQVJGIFZlcnNpb24KKysJLmxvbmcJLkxkZWJ1Z19pbmZvMAkjIE9mZnNldCBvZiBDb21waWxh dGlvbiBVbml0IEluZm8KKysJLmJ5dGUJMHg0CSMgU2l6ZSBvZiBBZGRyZXNzCisrCS5ieXRlCTAJ IyBTaXplIG9mIFNlZ21lbnQgRGVzY3JpcHRvcgorKwkudmFsdWUJMAkjIFBhZCB0byA4IGJ5dGUg Ym91bmRhcnkKKysJLnZhbHVlCTAKKysJLmxvbmcJLkx0ZXh0MAkjIEFkZHJlc3MKKysJLmxvbmcJ LkxldGV4dDAtLkx0ZXh0MAkjIExlbmd0aAorKwkubG9uZwkwCisrCS5sb25nCTAKKysJLnNlY3Rp b24JLmRlYnVnX2xpbmUsIiIsQHByb2diaXRzCisrLkxkZWJ1Z19saW5lMDoKKysJLnNlY3Rpb24J LmRlYnVnX3N0ciwiTVMiLEBwcm9nYml0cywxCisrLkxBU0Y0OgorKwkuc3RyaW5nCSJjaGFyYWN0 ZXIoa2luZD0xKSIKKysuTEFTRjU6CisrCS5zdHJpbmcJIkdOVSBGb3J0cmFuIDQuOC4wIDIwMTIx MDE1IChleHBlcmltZW50YWwpIC1mZml4ZWQtZm9ybSAtbTMyIC1tdHVuZT1nZW5lcmljIC1tYXJj aD14ODYtNjQgLWcgLWdkd2FyZi0yIC1maW50cmluc2ljLW1vZHVsZXMtcGF0aCAuLi4vZ2NjaGVh ZC1yb290L2xpYi9nY2MveDg2XzY0LXVua25vd24tbGludXgtZ251LzQuOC4wL2ZpbmNsdWRlIgor Ky5MQVNGNzoKKysJLnN0cmluZwkiIgorKy5MQVNGMDoKKysjaWYgMAorKwkuc3RyaW5nCSJpbnRl Z2VyKGtpbmQ9NCkiCisrI2Vsc2UKKysJLnN0cmluZwkiaW50ZWdlcihraW5kPTgpIgorKyNlbmRp ZgorKy5MQVNGOToKKysJLnN0cmluZwkibWFpbiIKKysuTEFTRjg6CisrCS5zdHJpbmcJIk1BSU5f XyIKKysuTEFTRjY6CisrCS5zdHJpbmcJImdkYi5mb3J0cmFuL2FycmF5LWJvdW5kcy5mIgorKy5M QVNGMjoKKysJLnN0cmluZwkiYXJnYyIKKysuTEFTRjE6CisrCS5zdHJpbmcJInJlYWwoa2luZD00 KSIKKysuTEFTRjM6CisrCS5zdHJpbmcJImFyZ3YiCisrCS5pZGVudAkiR0NDOiAoR05VKSA0Ljgu MCAyMDEyMTAxNSAoZXhwZXJpbWVudGFsKSIKKysJLnNlY3Rpb24JLm5vdGUuR05VLXN0YWNrLCIi LEBwcm9nYml0cworCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTI1b2YyNS5w YXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yNW9mMjUucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uZmEzYTZiZQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6 Nzk1NDI0LWJpdHBvcy0yNW9mMjUucGF0Y2gKQEAgLTAsMCArMSwxNTYgQEAKK2h0dHA6Ly9zb3Vy Y2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEyLTA4L21zZzAwNTYyLmh0bWwKK1N1YmplY3Q6 IFtQQVRDSF0gRXhwYW5kIGZvcnRyYW4gYXJyYXkgYm91bmRzIHNpemVzIHRvIExPTkdFU1QKKwor CistLU1QXy85MEo3YmNrMmZxRHlTRVg5SmtadGFxTAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWlu OyBjaGFyc2V0PVVTLUFTQ0lJCitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CitDb250 ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKKworSGksCisKK1JhbmdlIGJvdW5kcyBmb3IgYSBnZGIg dHlwZSBjYW4gaGF2ZSBMT05HRVNUIHZhbHVlcyBmb3IgbG93IGFuZCBoaWdoCitib3VuZHMuIEZv cnRyYW4gcmFuZ2UgYm91bmRzIGZ1bmN0aW9ucyBob3dldmVyIHVzZSBvbmx5IGludC4gVGhlIGxh cmdlcgorcmFuZ2VzIGRvbid0IGNvbXBpbGUgYnkgZGVmYXVsdCBvbiBnY2MsIGJ1dCBpdCBpcyBw b3NzaWJsZSB0byBvdmVycmlkZQordGhlIGNoZWNrIGluIHRoZSBjb21waWxlciBieSB1c2luZyAt Zm5vLXJhbmdlLWNoZWNrLiBBcyBhIHJlc3VsdCwgdGhpcworY2hlY2sgaXMgbmVjZXNzYXJ5IHNv IHRoYXQgd2UgZG9uJ3QgcHJpbnQganVuayBpbiBjYXNlIG9mIGFuIG92ZXJmbG93LgorCitBdHRh Y2hlZCBwYXRjaCBkb2VzIHRoaXMgZXhwYW5zaW9uIGFuZCBhbHNvIGluY2x1ZGVzIGEgdGVzdCBj YXNlIHRoYXQKK3ZlcmlmaWVzIHRoYXQgdGhlIHByb2JsZW0gaXMgZml4ZWQuIEkgaGF2ZSBhbHNv IHZlcmlmaWVkIG9uIHg4Nl82NCB0aGF0Cit0aGlzIHBhdGNoIGRvZXMgbm90IGNhdXNlIGFueSBy ZWdyZXNzaW9ucy4KKworUmVnYXJkcywKK1NpZGRoZXNoCisKK2dkYi9DaGFuZ2VMb2c6CisKKwkq IGYtbGFuZy5oIChmNzdfZ2V0X3VwcGVyYm91bmQpOiBSZXR1cm4gTE9OR0VTVC4KKwkoZjc3X2dl dF9sb3dlcmJvdW5kKTogTGlrZXdpc2UuCisJKiBmLXR5cGVwcmludC5jIChmX3R5cGVfcHJpbnRf dmFyc3BlY19zdWZmaXgpOiBFeHBhbmQKKwlVUFBFUl9CT1VORCBhbmQgTE9XRVJfQk9VTkQgdG8g TE9OR0VTVC4gIFVzZSBwbG9uZ2VzdCB0byBmb3JtYXQKKwlwcmludCB0aGVtLgorCShmX3R5cGVf cHJpbnRfYmFzZSk6IEV4cGFuZCBVUFBFUl9CT1VORCB0byBMT05HRVNULiAgVXNlCisJcGxvbmdl c3QgdG8gZm9ybWF0IHByaW50IGl0LgorCSogZi12YWxwcmludC5jIChmNzdfZ2V0X2xvd2VyYm91 bmQpOiBSZXR1cm4gTE9OR0VTVC4KKwkoZjc3X2dldF91cHBlcmJvdW5kKTogTGlrZXdpc2UuCisJ KGY3N19nZXRfZHluYW1pY19sZW5ndGhfb2ZfYWdncmVnYXRlKTogRXhwYW5kIFVQUEVSX0JPVU5E LAorCUxPV0VSX0JPVU5EIHRvIExPTkdFU1QuCisJKGY3N19jcmVhdGVfYXJyYXlwcmludF9vZmZz ZXRfdGJsKTogTGlrZXdpc2UuCisKK3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CisKKwkqIGdkYi5mb3J0 cmFuL2FycmF5LWJvdW5kcy5leHA6IE5ldyB0ZXN0IGNhc2UuCisJKiBnZGIuZm9ydHJhbi9hcnJh eS1ib3VuZHMuZjogTmV3IHRlc3QgY2FzZS4KKworLS1NUF8vOTBKN2JjazJmcUR5U0VYOUprWnRh cUwKK0NvbnRlbnQtVHlwZTogdGV4dC94LXBhdGNoCitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5n OiA3Yml0CitDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1mNzctYm91 bmRzLnBhdGNoCisKK0luZGV4OiBnZGItNy41LjAuMjAxMjA5MjYvZ2RiL2YtbGFuZy5oCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gZ2RiLTcuNS4wLjIwMTIwOTI2Lm9yaWcvZ2RiL2YtbGFuZy5oCTIwMTItMTEt MDcgMjI6MTI6MzkuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9m LWxhbmcuaAkyMDEyLTExLTA3IDIyOjUyOjAyLjY4ODYzMjQ5OCArMDEwMAorQEAgLTY2LDkgKzY2 LDkgQEAgZW51bSBmOTBfcmFuZ2VfdHlwZQorIGV4dGVybiBjaGFyICpyZWFsX21haW5fbmFtZTsJ LyogTmFtZSBvZiBtYWluIGZ1bmN0aW9uLiAgKi8KKyBleHRlcm4gaW50IHJlYWxfbWFpbl9jX3Zh bHVlOwkvKiBDX3ZhbHVlIGZpZWxkIG9mIG1haW4gZnVuY3Rpb24uICAqLworIAorLWV4dGVybiBp bnQgZjc3X2dldF91cHBlcmJvdW5kIChzdHJ1Y3QgdHlwZSAqKTsKKytleHRlcm4gTE9OR0VTVCBm NzdfZ2V0X3VwcGVyYm91bmQgKHN0cnVjdCB0eXBlICopOworIAorLWV4dGVybiBpbnQgZjc3X2dl dF9sb3dlcmJvdW5kIChzdHJ1Y3QgdHlwZSAqKTsKKytleHRlcm4gTE9OR0VTVCBmNzdfZ2V0X2xv d2VyYm91bmQgKHN0cnVjdCB0eXBlICopOworIAorIGV4dGVybiB2b2lkIGY3N19nZXRfZHluYW1p Y19hcnJheV9sZW5ndGggKHN0cnVjdCB0eXBlICopOworIAorSW5kZXg6IGdkYi03LjUuMC4yMDEy MDkyNi9nZGIvZi10eXBlcHJpbnQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjUuMC4yMDEyMDky Ni5vcmlnL2dkYi9mLXR5cGVwcmludC5jCTIwMTItMTEtMDcgMjI6MDA6NDEuMDAwMDAwMDAwICsw MTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9mLXR5cGVwcmludC5jCTIwMTItMTEtMDcg MjI6NTI6MDIuNjg5NjMyNDk3ICswMTAwCitAQCAtMTgyLDcgKzE4Miw3IEBAIGZfdHlwZV9wcmlu dF92YXJzcGVjX3N1ZmZpeCAoc3RydWN0IHR5cGUKKyAJCQkgICAgIGludCBzaG93LCBpbnQgcGFz c2VkX2FfcHRyLCBpbnQgZGVtYW5nbGVkX2FyZ3MsCisgCQkJICAgICBpbnQgYXJyYXlwcmludF9y ZWN1cnNlX2xldmVsKQorIHsKKy0gIGludCB1cHBlcl9ib3VuZCwgbG93ZXJfYm91bmQ7CisrICBM T05HRVNUIHVwcGVyX2JvdW5kLCBsb3dlcl9ib3VuZDsKKyAKKyAgIC8qIE5vIHN0YXRpYyB2YXJp YWJsZXMgYXJlIHBlcm1pdHRlZCBhcyBhbiBlcnJvciBjYWxsIG1heSBvY2N1ciBkdXJpbmcKKyAg ICAgIGV4ZWN1dGlvbiBvZiB0aGlzIGZ1bmN0aW9uLiAgKi8KK0BAIC0yMTIsNyArMjEyLDcgQEAg Zl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQorIAorICAgICAgIGxvd2Vy X2JvdW5kID0gZjc3X2dldF9sb3dlcmJvdW5kICh0eXBlKTsKKyAgICAgICBpZiAobG93ZXJfYm91 bmQgIT0gMSkJLyogTm90IHRoZSBkZWZhdWx0LiAgKi8KKy0JZnByaW50Zl9maWx0ZXJlZCAoc3Ry ZWFtLCAiJWQ6IiwgbG93ZXJfYm91bmQpOworKwlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIl czoiLCBwbG9uZ2VzdCAobG93ZXJfYm91bmQpKTsKKyAKKyAgICAgICAvKiBNYWtlIHN1cmUgdGhh dCwgaWYgd2UgaGF2ZSBhbiBhc3N1bWVkIHNpemUgYXJyYXksIHdlCisgICAgICAgICAgcHJpbnQg b3V0IGEgd2FybmluZyBhbmQgcHJpbnQgdGhlIHVwcGVyYm91bmQgYXMgJyonLiAgKi8KK0BAIC0y MjIsNyArMjIyLDcgQEAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQor ICAgICAgIGVsc2UKKyAJeworIAkgIHVwcGVyX2JvdW5kID0gZjc3X2dldF91cHBlcmJvdW5kICh0 eXBlKTsKKy0JICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIlZCIsIHVwcGVyX2JvdW5kKTsK KysJICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIlcyIsIHBsb25nZXN0ICh1cHBlcl9ib3Vu ZCkpOworIAl9CisgCisgICAgICAgaWYgKFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAodHlw ZSkpICE9IFRZUEVfQ09ERV9BUlJBWSkKK0BAIC0yOTEsNyArMjkxLDcgQEAgdm9pZAorIGZfdHlw ZV9wcmludF9iYXNlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwg aW50IHNob3csCisgCQkgICBpbnQgbGV2ZWwpCisgeworLSAgaW50IHVwcGVyX2JvdW5kOworKyAg TE9OR0VTVCB1cHBlcl9ib3VuZDsKKyAgIGludCBpbmRleDsKKyAKKyAgIFFVSVQ7CitAQCAtMzcz LDcgKzM3Myw3IEBAIGZfdHlwZV9wcmludF9iYXNlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3QKKyAg ICAgICBlbHNlCisgCXsKKyAJICB1cHBlcl9ib3VuZCA9IGY3N19nZXRfdXBwZXJib3VuZCAodHlw ZSk7CistCSAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiY2hhcmFjdGVyKiVkIiwgdXBwZXJf Ym91bmQpOworKwkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgImNoYXJhY3RlciolcyIsIHBs b25nZXN0ICh1cHBlcl9ib3VuZCkpOworIAl9CisgICAgICAgYnJlYWs7CisgCitJbmRleDogZ2Ri LTcuNS4wLjIwMTIwOTI2L2dkYi9mLXZhbHByaW50LmMKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy41 LjAuMjAxMjA5MjYub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTItMTEtMDcgMjI6MDk6MjkuMDAw MDAwMDAwICswMTAwCisrKysgZ2RiLTcuNS4wLjIwMTIwOTI2L2dkYi9mLXZhbHByaW50LmMJMjAx Mi0xMS0wNyAyMjo1MjoyMS44ODg2MDQ5MDcgKzAxMDAKK0BAIC01Nyw3ICs1Nyw3IEBAIExPTkdF U1QgZjc3X2FycmF5X29mZnNldF90YmxbTUFYX0ZPUlRSQU4KKyAKKyAjZGVmaW5lIEY3N19ESU1f QllURV9TVFJJREUobikgKGY3N19hcnJheV9vZmZzZXRfdGJsW25dWzBdKQorIAorLWludAorK0xP TkdFU1QKKyBmNzdfZ2V0X2xvd2VyYm91bmQgKHN0cnVjdCB0eXBlICp0eXBlKQorIHsKKyAgIGZf b2JqZWN0X2FkZHJlc3NfZGF0YV92YWxpZF9vcl9lcnJvciAodHlwZSk7CitAQCAtNjgsNyArNjgs NyBAQCBmNzdfZ2V0X2xvd2VyYm91bmQgKHN0cnVjdCB0eXBlICp0eXBlKQorICAgcmV0dXJuIFRZ UEVfQVJSQVlfTE9XRVJfQk9VTkRfVkFMVUUgKHR5cGUpOworIH0KKyAKKy1pbnQKKytMT05HRVNU CisgZjc3X2dldF91cHBlcmJvdW5kIChzdHJ1Y3QgdHlwZSAqdHlwZSkKKyB7CisgICBmX29iamVj dF9hZGRyZXNzX2RhdGFfdmFsaWRfb3JfZXJyb3IgKHR5cGUpOworQEAgLTkyLDggKzkyLDggQEAg Zjc3X2dldF91cHBlcmJvdW5kIChzdHJ1Y3QgdHlwZSAqdHlwZSkKKyBzdGF0aWMgdm9pZAorIGY3 N19nZXRfZHluYW1pY19sZW5ndGhfb2ZfYWdncmVnYXRlIChzdHJ1Y3QgdHlwZSAqdHlwZSkKKyB7 CistICBpbnQgdXBwZXJfYm91bmQgPSAtMTsKKy0gIGludCBsb3dlcl9ib3VuZCA9IDE7CisrICBM T05HRVNUIHVwcGVyX2JvdW5kID0gLTE7CisrICBMT05HRVNUIGxvd2VyX2JvdW5kID0gMTsKKyAK KyAgIC8qIFJlY3Vyc2l2ZWx5IGdvIGFsbCB0aGUgd2F5IGRvd24gaW50byBhIHBvc3NpYmx5IG11 bHRpLWRpbWVuc2lvbmFsCisgICAgICBGNzcgYXJyYXkgYW5kIGdldCB0aGUgYm91bmRzLiAgRm9y IHNpbXBsZSBhcnJheXMsIHRoaXMgaXMgcHJldHR5CitAQCAtMTI4LDcgKzEyOCw3IEBAIGY3N19j cmVhdGVfYXJyYXlwcmludF9vZmZzZXRfdGJsIChzdHJ1Y3QKKyAgIHN0cnVjdCB0eXBlICp0bXBf dHlwZTsKKyAgIExPTkdFU1QgZWx0bGVuOworICAgaW50IG5kaW1lbiA9IDE7CistICBpbnQgdXBw ZXIsIGxvd2VyOworKyAgTE9OR0VTVCB1cHBlciwgbG93ZXI7CisgCisgICB0bXBfdHlwZSA9IHR5 cGU7CisgCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLWxhenl2YWx1ZS5wYXRj aCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy1sYXp5dmFsdWUucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMjBlOGU1MQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6 Nzk1NDI0LWJpdHBvcy1sYXp5dmFsdWUucGF0Y2gKQEAgLTAsMCArMSw0MjUgQEAKKy0tLSBnZGIt Ny41LjAuMjAxMjA5MjYtbTY0L2dkYi92YWx1ZS5jLW9yaWcJMjAxMi0xMS0wOSAxNzowODo1Mi4x Mzc0MDYxMTggKzAxMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYtbTY0L2dkYi92YWx1ZS5jCTIw MTItMTEtMDkgMTc6MzI6MzguMzI0MTk5MjMwICswMTAwCitAQCAtNjYzLDcgKzY2Myw2IEBAIGFs bG9jYXRlX3ZhbHVlX2xhenkgKHN0cnVjdCB0eXBlICp0eXBlKQorICAgICAgZGVzY3JpcHRpb24g Y29ycmVjdGx5LiAgKi8KKyAgIGNoZWNrX3R5cGVkZWYgKHR5cGUpOworIAorLSAgdWxvbmdlc3Rf Zml0c19ob3N0X29yX2Vycm9yIChUWVBFX0xFTkdUSCAodHlwZSkpOworICAgdmFsID0gKHN0cnVj dCB2YWx1ZSAqKSB4emFsbG9jIChzaXplb2YgKHN0cnVjdCB2YWx1ZSkpOworICAgdmFsLT5jb250 ZW50cyA9IE5VTEw7CisgICB2YWwtPm5leHQgPSBhbGxfdmFsdWVzOworLS0tIC9kZXYvbnVsbAky MDEyLTEwLTE4IDExOjA4OjEzLjIwMjMyODIzOSArMDIwMAorKysrIGdkYi03LjUuMC4yMDEyMDky Ni1tNjQtdGVzdC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMuZXhwCTIwMTIt MTEtMDkgMTg6MTM6NTYuMjg2NTg3OTk0ICswMTAwCitAQCAtMCwwICsxLDU5IEBACisrIyBUaGlz IHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorKworKyMgQ29weXJp Z2h0IDIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK KysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LgorKworK3N0YW5kYXJkX3Rlc3RmaWxlIC5jIGxvbmdlc3QtdHlwZXMt NjRiaXQuUworKworK3Byb2MgdGVzdCB7IG5hbWUgfSB7IHdpdGhfdGVzdF9wcmVmaXggJG5hbWUg eworKyAgICAjIDY0LWJpdCBhcnJheSBzaXplIHNob3VsZCBub3Qgb3ZlcmZsb3cKKysgICAgZ2Ri X3Rlc3QgInByaW50ICZmLT5idWYiIHs9IFwoY2hhciBcKFwqXClcWzEwOTk0OTQ4NTA1NjBcXVwp IDB4MH0KKysKKysgICAgIyBUaGUgb2Zmc2V0IHNob3VsZCBub3Qgb3ZlcmZsb3cKKysgICAgZ2Ri X3Rlc3QgInByaW50ICZmLT5idWYyIiB7PSBcKGNoYXIgXChcKlwpXFsyXF1cKSAweGZmZmYwMDAw MDB9CisrfX0KKysKKysKKysjIFRlc3QgNjQtYml0IGZpbGUgZmlyc3QgYXMgaXQgaXMgbm90IGNv bXBpbGVkIHNvIGl0cyBjb21waWxhdGlvbiBuZXZlciBmYWlscy4KKysKKytzZXQgZmlsZTY0Yml0 YnoydXUgJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfS02NGJpdC5iejIudXUKKytzZXQg ZmlsZTY0Yml0ICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0tNjRiaXQKKysKKytpZiB7 W2NhdGNoICJzeXN0ZW0gXCJ1dWRlY29kZSAtbyAtICR7ZmlsZTY0Yml0YnoydXV9IHwgYnppcDIg LWRjID4ke2ZpbGU2NGJpdH1cIiJdICE9IDB9IHsKKysgICAgdW50ZXN0ZWQgImZhaWxlZCB1dWRl Y29kZSBvciBiemlwMiIKKysgICAgcmV0dXJuIC0xCisrfQorK2ZpbGUgc3RhdCAke2ZpbGU2NGJp dH0gZmlsZTY0Yml0c3RhdAorK2lmIHskZmlsZTY0Yml0c3RhdChzaXplKSAhPSA5NTAxfSB7Cisr ICAgIHVudGVzdGVkICJ1dWRlY29kZSBvciBiemlwMiBwcm9kdWNlIGludmFsaWQgcmVzdWx0Igor KyAgICByZXR1cm4gLTEKKyt9CisrCisrY2xlYW5fcmVzdGFydCAke2ZpbGU2NGJpdH0KKysKKysj aWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0tNjRi aXQgJHNyY2ZpbGUyIHtub2RlYnVnfV0gfSB7CisrIyAgICByZXR1cm4gLTEKKysjfQorKworK3Rl c3QgIjY0Yml0IgorKworKworKyMgQW5kIGhlcmUgaXMgdGhlIG5hdGl2ZSBidWlsZCB0ZXN0Lgor KworK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9 ICRzcmNmaWxlIHtkZWJ1ZyBxdWlldH1dIH0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisrdGVz dCAibmF0aXZlIgorLS0tIC9kZXYvbnVsbAkyMDEyLTEwLTE4IDExOjA4OjEzLjIwMjMyODIzOSAr MDIwMAorKysrIC4vZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLmMJMjAxMi0x MS0wOSAxNzowODo1MS4zNzQ0MDYzNDQgKzAxMDAKK0BAIC0wLDAgKzEsMjggQEAKKysvKiBUaGlz IHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorKworKyAgIENvcHly aWdodCAyMDEyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAgIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisr ICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKytzdHJ1Y3QgZm9vCisreworKyAgY2hh ciBidWZbMHhmZmZmMDAwMDAwXTsKKysgIGNoYXIgYnVmMlsyXTsKKyt9ICpmOworKworK2ludAor K21haW4gKHZvaWQpCisreworKyAgcmV0dXJuIDA7CisrfQorLS0tIC9kZXYvbnVsbAkyMDEyLTEw LTE4IDExOjA4OjEzLjIwMjMyODIzOSArMDIwMAorKysrIC4vZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9sb25nZXN0LXR5cGVzLTY0Yml0LlMJMjAxMi0xMS0wOSAxNzo1MTozNy41OTc4NDYxMzAgKzAx MDAKK0BAIC0wLDAgKzEsMjQ5IEBACisrLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwg dGhlIEdOVSBkZWJ1Z2dlci4KKysKKysgICBDb3B5cmlnaHQgMjAxMiBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGlj ZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAg IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4g ICovCisrCisrCS5maWxlCSJsb25nZXN0LXR5cGVzLTY0Yml0LmMiCisrCS50ZXh0CisrLkx0ZXh0 MDoKKysJLmdsb2JsIG1haW4KKyttYWluOgorKwkuY29tbQlmLDgsOAorKy5MZXRleHQwOgorKwku ZmlsZSAxICJnZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmMiCisrCS5zZWN0aW9uCS5kZWJ1 Z19pbmZvLCIiLEBwcm9nYml0cworKy5MZGVidWdfaW5mbzA6CisrCS40Ynl0ZQkweDlhCS8qIExl bmd0aCBvZiBDb21waWxhdGlvbiBVbml0IEluZm8gKi8KKysJLjJieXRlCTB4MgkvKiBEV0FSRiB2 ZXJzaW9uIG51bWJlciAqLworKwkuNGJ5dGUJLkxkZWJ1Z19hYmJyZXYwCS8qIE9mZnNldCBJbnRv IEFiYnJldi4gU2VjdGlvbiAqLworKwkuYnl0ZQkweDgJLyogUG9pbnRlciBTaXplIChpbiBieXRl cykgKi8KKysJLnVsZWIxMjggMHgxCS8qIChESUUgKDB4YikgRFdfVEFHX2NvbXBpbGVfdW5pdCkg Ki8KKysJLjRieXRlCS5MQVNGMwkvKiBEV19BVF9wcm9kdWNlcjogIkdOVSBDIDQuNy4zIDIwMTIx MTA5IChwcmVyZWxlYXNlKSIgKi8KKysJLmJ5dGUJMHgxCS8qIERXX0FUX2xhbmd1YWdlICovCisr CS40Ynl0ZQkuTEFTRjQJLyogRFdfQVRfbmFtZTogImdkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRi aXQuYyIgKi8KKysJLjRieXRlCS5MQVNGNQkvKiBEV19BVF9jb21wX2RpcjogIiIgKi8KKysJLjRi eXRlCS5MZGVidWdfbGluZTAJLyogRFdfQVRfc3RtdF9saXN0ICovCisrCS51bGViMTI4IDB4Mgkv KiAoRElFICgweDFkKSBEV19UQUdfc3RydWN0dXJlX3R5cGUpICovCisrCS5hc2NpaSAiZm9vXDAi CS8qIERXX0FUX25hbWUgKi8KKysJLjRieXRlCTB4ZmYwMDAwMDIJLyogRFdfQVRfYnl0ZV9zaXpl ICovCisrCS5ieXRlCTB4MQkvKiBEV19BVF9kZWNsX2ZpbGUgKGdkYi5iYXNlL2xvbmdlc3QtdHlw ZXMtNjRiaXQuYykgKi8KKysJLmJ5dGUJMHgxMgkvKiBEV19BVF9kZWNsX2xpbmUgKi8KKysJLjRi eXRlCTB4NGUJLyogRFdfQVRfc2libGluZyAqLworKwkudWxlYjEyOCAweDMJLyogKERJRSAoMHgy YykgRFdfVEFHX21lbWJlcikgKi8KKysJLmFzY2lpICJidWZcMCIJLyogRFdfQVRfbmFtZSAqLwor KwkuYnl0ZQkweDEJLyogRFdfQVRfZGVjbF9maWxlIChnZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0 Yml0LmMpICovCisrCS5ieXRlCTB4MTQJLyogRFdfQVRfZGVjbF9saW5lICovCisrCS40Ynl0ZQkw eDRlCS8qIERXX0FUX3R5cGUgKi8KKysJLmJ5dGUJMHgyCS8qIERXX0FUX2RhdGFfbWVtYmVyX2xv Y2F0aW9uICovCisrCS5ieXRlCTB4MjMJLyogRFdfT1BfcGx1c191Y29uc3QgKi8KKysJLnVsZWIx MjggMAorKwkudWxlYjEyOCAweDQJLyogKERJRSAoMHgzYSkgRFdfVEFHX21lbWJlcikgKi8KKysJ LjRieXRlCS5MQVNGMAkvKiBEV19BVF9uYW1lOiAiYnVmMiIgKi8KKysJLmJ5dGUJMHgxCS8qIERX X0FUX2RlY2xfZmlsZSAoZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5jKSAqLworKwkuYnl0 ZQkweDE1CS8qIERXX0FUX2RlY2xfbGluZSAqLworKwkuNGJ5dGUJMHg3MwkvKiBEV19BVF90eXBl ICovCisrCS5ieXRlCTB4NwkvKiBEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbiAqLworKwkuYnl0 ZQkweDIzCS8qIERXX09QX3BsdXNfdWNvbnN0ICovCisrCS51bGViMTI4IDB4ZmZmZjAwMDAwMAor KwkuYnl0ZQkwCS8qIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHgxZCAqLworKwkudWxlYjEyOCAw eDUJLyogKERJRSAoMHg0ZSkgRFdfVEFHX2FycmF5X3R5cGUpICovCisrCS40Ynl0ZQkweDZjCS8q IERXX0FUX3R5cGUgKi8KKysJLjRieXRlCTB4NjUJLyogRFdfQVRfc2libGluZyAqLworKwkudWxl YjEyOCAweDYJLyogKERJRSAoMHg1NykgRFdfVEFHX3N1YnJhbmdlX3R5cGUpICovCisrCS40Ynl0 ZQkweDY1CS8qIERXX0FUX3R5cGUgKi8KKysJLnF1YWQJMHhmZmZlZmZmZmZmCS8qIERXX0FUX3Vw cGVyX2JvdW5kICovCisrCS5ieXRlCTAJLyogZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDRlICov CisrCS51bGViMTI4IDB4NwkvKiAoRElFICgweDY1KSBEV19UQUdfYmFzZV90eXBlKSAqLworKwku Ynl0ZQkweDgJLyogRFdfQVRfYnl0ZV9zaXplICovCisrCS5ieXRlCTB4NwkvKiBEV19BVF9lbmNv ZGluZyAqLworKwkuNGJ5dGUJLkxBU0YxCS8qIERXX0FUX25hbWU6ICJzaXpldHlwZSIgKi8KKysJ LnVsZWIxMjggMHg3CS8qIChESUUgKDB4NmMpIERXX1RBR19iYXNlX3R5cGUpICovCisrCS5ieXRl CTB4MQkvKiBEV19BVF9ieXRlX3NpemUgKi8KKysJLmJ5dGUJMHg2CS8qIERXX0FUX2VuY29kaW5n ICovCisrCS40Ynl0ZQkuTEFTRjIJLyogRFdfQVRfbmFtZTogImNoYXIiICovCisrCS51bGViMTI4 IDB4NQkvKiAoRElFICgweDczKSBEV19UQUdfYXJyYXlfdHlwZSkgKi8KKysJLjRieXRlCTB4NmMJ LyogRFdfQVRfdHlwZSAqLworKwkuNGJ5dGUJMHg4MwkvKiBEV19BVF9zaWJsaW5nICovCisrCS51 bGViMTI4IDB4OAkvKiAoRElFICgweDdjKSBEV19UQUdfc3VicmFuZ2VfdHlwZSkgKi8KKysJLjRi eXRlCTB4NjUJLyogRFdfQVRfdHlwZSAqLworKwkuYnl0ZQkweDEJLyogRFdfQVRfdXBwZXJfYm91 bmQgKi8KKysJLmJ5dGUJMAkvKiBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4NzMgKi8KKysJLnVs ZWIxMjggMHg5CS8qIChESUUgKDB4ODMpIERXX1RBR192YXJpYWJsZSkgKi8KKysJLmFzY2lpICJm XDAiCS8qIERXX0FUX25hbWUgKi8KKysJLmJ5dGUJMHgxCS8qIERXX0FUX2RlY2xfZmlsZSAoZ2Ri LmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5jKSAqLworKwkuYnl0ZQkweDE2CS8qIERXX0FUX2Rl Y2xfbGluZSAqLworKwkuNGJ5dGUJMHg5NwkvKiBEV19BVF90eXBlICovCisrCS5ieXRlCTB4MQkv KiBEV19BVF9leHRlcm5hbCAqLworKwkuYnl0ZQkweDkJLyogRFdfQVRfbG9jYXRpb24gKi8KKysJ LmJ5dGUJMHgzCS8qIERXX09QX2FkZHIgKi8KKysJLnF1YWQJZgorKwkudWxlYjEyOCAweGEJLyog KERJRSAoMHg5NykgRFdfVEFHX3BvaW50ZXJfdHlwZSkgKi8KKysJLmJ5dGUJMHg4CS8qIERXX0FU X2J5dGVfc2l6ZSAqLworKwkuNGJ5dGUJMHgxZAkvKiBEV19BVF90eXBlICovCisrCS5ieXRlCTAJ LyogZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweGIgKi8KKysJLnNlY3Rpb24JLmRlYnVnX2FiYnJl diwiIixAcHJvZ2JpdHMKKysuTGRlYnVnX2FiYnJldjA6CisrCS51bGViMTI4IDB4MQkvKiAoYWJi cmV2IGNvZGUpICovCisrCS51bGViMTI4IDB4MTEJLyogKFRBRzogRFdfVEFHX2NvbXBpbGVfdW5p dCkgKi8KKysJLmJ5dGUJMHgxCS8qIERXX2NoaWxkcmVuX3llcyAqLworKwkudWxlYjEyOCAweDI1 CS8qIChEV19BVF9wcm9kdWNlcikgKi8KKysJLnVsZWIxMjggMHhlCS8qIChEV19GT1JNX3N0cnAp ICovCisrCS51bGViMTI4IDB4MTMJLyogKERXX0FUX2xhbmd1YWdlKSAqLworKwkudWxlYjEyOCAw eGIJLyogKERXX0ZPUk1fZGF0YTEpICovCisrCS51bGViMTI4IDB4MwkvKiAoRFdfQVRfbmFtZSkg Ki8KKysJLnVsZWIxMjggMHhlCS8qIChEV19GT1JNX3N0cnApICovCisrCS51bGViMTI4IDB4MWIJ LyogKERXX0FUX2NvbXBfZGlyKSAqLworKwkudWxlYjEyOCAweGUJLyogKERXX0ZPUk1fc3RycCkg Ki8KKysJLnVsZWIxMjggMHgxMAkvKiAoRFdfQVRfc3RtdF9saXN0KSAqLworKwkudWxlYjEyOCAw eDYJLyogKERXX0ZPUk1fZGF0YTQpICovCisrCS5ieXRlCTAKKysJLmJ5dGUJMAorKwkudWxlYjEy OCAweDIJLyogKGFiYnJldiBjb2RlKSAqLworKwkudWxlYjEyOCAweDEzCS8qIChUQUc6IERXX1RB R19zdHJ1Y3R1cmVfdHlwZSkgKi8KKysJLmJ5dGUJMHgxCS8qIERXX2NoaWxkcmVuX3llcyAqLwor KwkudWxlYjEyOCAweDMJLyogKERXX0FUX25hbWUpICovCisrCS51bGViMTI4IDB4OAkvKiAoRFdf Rk9STV9zdHJpbmcpICovCisrCS51bGViMTI4IDB4YgkvKiAoRFdfQVRfYnl0ZV9zaXplKSAqLwor KwkudWxlYjEyOCAweDYJLyogKERXX0ZPUk1fZGF0YTQpICovCisrCS51bGViMTI4IDB4M2EJLyog KERXX0FUX2RlY2xfZmlsZSkgKi8KKysJLnVsZWIxMjggMHhiCS8qIChEV19GT1JNX2RhdGExKSAq LworKwkudWxlYjEyOCAweDNiCS8qIChEV19BVF9kZWNsX2xpbmUpICovCisrCS51bGViMTI4IDB4 YgkvKiAoRFdfRk9STV9kYXRhMSkgKi8KKysJLnVsZWIxMjggMHgxCS8qIChEV19BVF9zaWJsaW5n KSAqLworKwkudWxlYjEyOCAweDEzCS8qIChEV19GT1JNX3JlZjQpICovCisrCS5ieXRlCTAKKysJ LmJ5dGUJMAorKwkudWxlYjEyOCAweDMJLyogKGFiYnJldiBjb2RlKSAqLworKwkudWxlYjEyOCAw eGQJLyogKFRBRzogRFdfVEFHX21lbWJlcikgKi8KKysJLmJ5dGUJMAkvKiBEV19jaGlsZHJlbl9u byAqLworKwkudWxlYjEyOCAweDMJLyogKERXX0FUX25hbWUpICovCisrCS51bGViMTI4IDB4OAkv KiAoRFdfRk9STV9zdHJpbmcpICovCisrCS51bGViMTI4IDB4M2EJLyogKERXX0FUX2RlY2xfZmls ZSkgKi8KKysJLnVsZWIxMjggMHhiCS8qIChEV19GT1JNX2RhdGExKSAqLworKwkudWxlYjEyOCAw eDNiCS8qIChEV19BVF9kZWNsX2xpbmUpICovCisrCS51bGViMTI4IDB4YgkvKiAoRFdfRk9STV9k YXRhMSkgKi8KKysJLnVsZWIxMjggMHg0OQkvKiAoRFdfQVRfdHlwZSkgKi8KKysJLnVsZWIxMjgg MHgxMwkvKiAoRFdfRk9STV9yZWY0KSAqLworKwkudWxlYjEyOCAweDM4CS8qIChEV19BVF9kYXRh X21lbWJlcl9sb2NhdGlvbikgKi8KKysJLnVsZWIxMjggMHhhCS8qIChEV19GT1JNX2Jsb2NrMSkg Ki8KKysJLmJ5dGUJMAorKwkuYnl0ZQkwCisrCS51bGViMTI4IDB4NAkvKiAoYWJicmV2IGNvZGUp ICovCisrCS51bGViMTI4IDB4ZAkvKiAoVEFHOiBEV19UQUdfbWVtYmVyKSAqLworKwkuYnl0ZQkw CS8qIERXX2NoaWxkcmVuX25vICovCisrCS51bGViMTI4IDB4MwkvKiAoRFdfQVRfbmFtZSkgKi8K KysJLnVsZWIxMjggMHhlCS8qIChEV19GT1JNX3N0cnApICovCisrCS51bGViMTI4IDB4M2EJLyog KERXX0FUX2RlY2xfZmlsZSkgKi8KKysJLnVsZWIxMjggMHhiCS8qIChEV19GT1JNX2RhdGExKSAq LworKwkudWxlYjEyOCAweDNiCS8qIChEV19BVF9kZWNsX2xpbmUpICovCisrCS51bGViMTI4IDB4 YgkvKiAoRFdfRk9STV9kYXRhMSkgKi8KKysJLnVsZWIxMjggMHg0OQkvKiAoRFdfQVRfdHlwZSkg Ki8KKysJLnVsZWIxMjggMHgxMwkvKiAoRFdfRk9STV9yZWY0KSAqLworKwkudWxlYjEyOCAweDM4 CS8qIChEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbikgKi8KKysJLnVsZWIxMjggMHhhCS8qIChE V19GT1JNX2Jsb2NrMSkgKi8KKysJLmJ5dGUJMAorKwkuYnl0ZQkwCisrCS51bGViMTI4IDB4NQkv KiAoYWJicmV2IGNvZGUpICovCisrCS51bGViMTI4IDB4MQkvKiAoVEFHOiBEV19UQUdfYXJyYXlf dHlwZSkgKi8KKysJLmJ5dGUJMHgxCS8qIERXX2NoaWxkcmVuX3llcyAqLworKwkudWxlYjEyOCAw eDQ5CS8qIChEV19BVF90eXBlKSAqLworKwkudWxlYjEyOCAweDEzCS8qIChEV19GT1JNX3JlZjQp ICovCisrCS51bGViMTI4IDB4MQkvKiAoRFdfQVRfc2libGluZykgKi8KKysJLnVsZWIxMjggMHgx MwkvKiAoRFdfRk9STV9yZWY0KSAqLworKwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjgg MHg2CS8qIChhYmJyZXYgY29kZSkgKi8KKysJLnVsZWIxMjggMHgyMQkvKiAoVEFHOiBEV19UQUdf c3VicmFuZ2VfdHlwZSkgKi8KKysJLmJ5dGUJMAkvKiBEV19jaGlsZHJlbl9ubyAqLworKwkudWxl YjEyOCAweDQ5CS8qIChEV19BVF90eXBlKSAqLworKwkudWxlYjEyOCAweDEzCS8qIChEV19GT1JN X3JlZjQpICovCisrCS51bGViMTI4IDB4MmYJLyogKERXX0FUX3VwcGVyX2JvdW5kKSAqLworKwku dWxlYjEyOCAweDcJLyogKERXX0ZPUk1fZGF0YTgpICovCisrCS5ieXRlCTAKKysJLmJ5dGUJMAor KwkudWxlYjEyOCAweDcJLyogKGFiYnJldiBjb2RlKSAqLworKwkudWxlYjEyOCAweDI0CS8qIChU QUc6IERXX1RBR19iYXNlX3R5cGUpICovCisrCS5ieXRlCTAJLyogRFdfY2hpbGRyZW5fbm8gKi8K KysJLnVsZWIxMjggMHhiCS8qIChEV19BVF9ieXRlX3NpemUpICovCisrCS51bGViMTI4IDB4Ygkv KiAoRFdfRk9STV9kYXRhMSkgKi8KKysJLnVsZWIxMjggMHgzZQkvKiAoRFdfQVRfZW5jb2Rpbmcp ICovCisrCS51bGViMTI4IDB4YgkvKiAoRFdfRk9STV9kYXRhMSkgKi8KKysJLnVsZWIxMjggMHgz CS8qIChEV19BVF9uYW1lKSAqLworKwkudWxlYjEyOCAweGUJLyogKERXX0ZPUk1fc3RycCkgKi8K KysJLmJ5dGUJMAorKwkuYnl0ZQkwCisrCS51bGViMTI4IDB4OAkvKiAoYWJicmV2IGNvZGUpICov CisrCS51bGViMTI4IDB4MjEJLyogKFRBRzogRFdfVEFHX3N1YnJhbmdlX3R5cGUpICovCisrCS5i eXRlCTAJLyogRFdfY2hpbGRyZW5fbm8gKi8KKysJLnVsZWIxMjggMHg0OQkvKiAoRFdfQVRfdHlw ZSkgKi8KKysJLnVsZWIxMjggMHgxMwkvKiAoRFdfRk9STV9yZWY0KSAqLworKwkudWxlYjEyOCAw eDJmCS8qIChEV19BVF91cHBlcl9ib3VuZCkgKi8KKysJLnVsZWIxMjggMHhiCS8qIChEV19GT1JN X2RhdGExKSAqLworKwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjggMHg5CS8qIChhYmJy ZXYgY29kZSkgKi8KKysJLnVsZWIxMjggMHgzNAkvKiAoVEFHOiBEV19UQUdfdmFyaWFibGUpICov CisrCS5ieXRlCTAJLyogRFdfY2hpbGRyZW5fbm8gKi8KKysJLnVsZWIxMjggMHgzCS8qIChEV19B VF9uYW1lKSAqLworKwkudWxlYjEyOCAweDgJLyogKERXX0ZPUk1fc3RyaW5nKSAqLworKwkudWxl YjEyOCAweDNhCS8qIChEV19BVF9kZWNsX2ZpbGUpICovCisrCS51bGViMTI4IDB4YgkvKiAoRFdf Rk9STV9kYXRhMSkgKi8KKysJLnVsZWIxMjggMHgzYgkvKiAoRFdfQVRfZGVjbF9saW5lKSAqLwor KwkudWxlYjEyOCAweGIJLyogKERXX0ZPUk1fZGF0YTEpICovCisrCS51bGViMTI4IDB4NDkJLyog KERXX0FUX3R5cGUpICovCisrCS51bGViMTI4IDB4MTMJLyogKERXX0ZPUk1fcmVmNCkgKi8KKysJ LnVsZWIxMjggMHgzZgkvKiAoRFdfQVRfZXh0ZXJuYWwpICovCisrCS51bGViMTI4IDB4YwkvKiAo RFdfRk9STV9mbGFnKSAqLworKwkudWxlYjEyOCAweDIJLyogKERXX0FUX2xvY2F0aW9uKSAqLwor KwkudWxlYjEyOCAweGEJLyogKERXX0ZPUk1fYmxvY2sxKSAqLworKwkuYnl0ZQkwCisrCS5ieXRl CTAKKysJLnVsZWIxMjggMHhhCS8qIChhYmJyZXYgY29kZSkgKi8KKysJLnVsZWIxMjggMHhmCS8q IChUQUc6IERXX1RBR19wb2ludGVyX3R5cGUpICovCisrCS5ieXRlCTAJLyogRFdfY2hpbGRyZW5f bm8gKi8KKysJLnVsZWIxMjggMHhiCS8qIChEV19BVF9ieXRlX3NpemUpICovCisrCS51bGViMTI4 IDB4YgkvKiAoRFdfRk9STV9kYXRhMSkgKi8KKysJLnVsZWIxMjggMHg0OQkvKiAoRFdfQVRfdHlw ZSkgKi8KKysJLnVsZWIxMjggMHgxMwkvKiAoRFdfRk9STV9yZWY0KSAqLworKwkuYnl0ZQkwCisr CS5ieXRlCTAKKysJLmJ5dGUJMAorKwkuc2VjdGlvbgkuZGVidWdfYXJhbmdlcywiIixAcHJvZ2Jp dHMKKysJLjRieXRlCTB4MWMJLyogTGVuZ3RoIG9mIEFkZHJlc3MgUmFuZ2VzIEluZm8gKi8KKysJ LjJieXRlCTB4MgkvKiBEV0FSRiBWZXJzaW9uICovCisrCS40Ynl0ZQkuTGRlYnVnX2luZm8wCS8q IE9mZnNldCBvZiBDb21waWxhdGlvbiBVbml0IEluZm8gKi8KKysJLmJ5dGUJMHg4CS8qIFNpemUg b2YgQWRkcmVzcyAqLworKwkuYnl0ZQkwCS8qIFNpemUgb2YgU2VnbWVudCBEZXNjcmlwdG9yICov CisrCS4yYnl0ZQkwCS8qIFBhZCB0byAxNiBieXRlIGJvdW5kYXJ5ICovCisrCS4yYnl0ZQkwCisr CS5xdWFkCTAKKysJLnF1YWQJMAorKwkuc2VjdGlvbgkuZGVidWdfbGluZSwiIixAcHJvZ2JpdHMK KysuTGRlYnVnX2xpbmUwOgorKwkuc2VjdGlvbgkuZGVidWdfc3RyLCJNUyIsQHByb2diaXRzLDEK KysuTEFTRjQ6CisrCS5zdHJpbmcJImdkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuYyIKKysu TEFTRjM6CisrCS5zdHJpbmcJIkdOVSBDIDQuNy4zIDIwMTIxMTA5IChwcmVyZWxlYXNlKSIKKysu TEFTRjA6CisrCS5zdHJpbmcJImJ1ZjIiCisrLkxBU0YxOgorKwkuc3RyaW5nCSJzaXpldHlwZSIK KysuTEFTRjU6CisrCS5zdHJpbmcJIiIKKysuTEFTRjI6CisrCS5zdHJpbmcJImNoYXIiCisrCS5p ZGVudAkiR0NDOiAoR05VKSA0LjcuMyAyMDEyMTEwOSAocHJlcmVsZWFzZSkiCisrCS5zZWN0aW9u CS5ub3RlLkdOVS1zdGFjaywiIixAcHJvZ2JpdHMKKy0tLSAvZGV2L251bGwJMjAxMi0xMC0xOCAx MTowODoxMy4yMDIzMjgyMzkgKzAyMDAKKysrKyBnZGItNy41LjAuMjAxMjA5MjYtbTY0LXRlc3Qv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmJ6Mi51dQkyMDEyLTEx LTA5IDE4OjA0OjUyLjk5NTY5Mjc3MSArMDEwMAorQEAgLTAsMCArMSw2NyBAQAorK2JlZ2luIDc1 NSBnZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmJ6MgorK00wRUlILjMlITYyOTM2PCdOI09I YCJHL19fX19fX19fXl9fX19fXz9fWV9fX19fXy8vXTdTUUQ1J14vXyUKKytNPVZZNz9GX1tYYEZd XVNHNzUzMS09PVY6Wi0uRlc7TS5VNz0nOzpVSEA8JkZEMzEsRTNdSidIRS0vVFJACisrTV00XzUv MzI7JS9VM10xLS1IVS9VJCMkUidJJ0osRkMwVC0sKUInSiM6Q1UsRkBdMGAvNDo+RkBDVS80LAor K01BQCRTMj5JSCFIYFRSLzAtJCQ6OWBDKCZGSFUzVkUtSjs0XCUsQD40VDojXTQ5LUovNGA+SFQh SCMzKV4KKytNSmAhSC1gYFRdMCZALWBgYDonSmBgJkBgOjkhYFI5LEAmMyhgIzMhIzAhSGBgLSMk LS1gLEBgYFRgVCMoCisrTTpgOmAmMCZAOjosMDotYGBgOmBgLWBFLSQxIzQtMzo0XTNSOS0zOShR LykjM1ItMzA6OSMkVCFEIUgmQAorK00sQ1RHSSFIIygjMFRgIzBgYFRgVGA6YGAtYGBUYDAsRjMo IURSYGBUUDBUYDpgYCMwUSMzMCMoYGAtYC0KKytNYFImQCZAIUQhSCZGQyQmQzBgYCZAYCMwKSUp SDMyPkpHWiYhKVoxQjFYQClEVFZDND5IYCYwOmBgUiZACisrTSxDMDpgYFRgYCxDMGBgIUhgYCMo YFRgOiMwVV5cP103SzhNLjk2Vi8yWz9NKkRDKT5XSVVGKUg3VFw8VAorK01bMEQpNzBHMjUuWUIh LDo7OFEoOyZYUEFCNCskUSU6UClQQS07RT0hLSYkS05SMjJFTT4kOktLUkUmXFEKKytNLi5NXUwx KiwhPkQhWClSVyxbLDFJLDlOJVgtTiYyKyo6JilESlk0KFZGUUclOUtbLz9KMDZXQUNGNi1JCisr TUomSko5LFpLNDtYMjhNQFs9PSVNRShBNTQ6JT4rMy0+TVJLKEchOCNUWT5ARSQ2RFImPF81OkMm L1JaRQorK01JPE9OK1JZNWBMQSJAREQkJERGIUk5T101WCVHOTg1Xz1WPC47P0s5OkcyUi0jSzxD QiwxOzI2QTxINEcKKytNM1IzSSEpV1gsLSU+LCFFNiNgOyo4UipFQCsrKikpVSlbNj1PS0ZNJScr JC1INVxYQDFEKV9ZKiJOS1YuCisrTSZcRjg/U1hXXjxPXV9EVy44V0RASFkuTk1NSUJYRlZST01f U0taIzQtYD5IUTpZQChRWy4+UEVHPV1AXgorK00lQyIzRVovMVgnSCowMlpRSCI6NiJAOzhaMExF VzY8T0tKJSRgMDElYEI7TyFOKlcxVi5IQyRgYCw6Q1MKKytNNigvT1RJJy06TzY9NyQvIz8wVDlR W0dTWTEpNlZgK0NWQCNYV01GYDxTOkFHPCE0M1giVkdELEU9Pik+CisrTTZeVj0qYEZCJzVHNE1E OEwzSjVYVCNTVztKMV1aTysiU1BJUyVKKFA0NitRPUNDMiRILWAtQiZURClNYAorK00mQTowNjZE QSVBQjBDNiw0NjA+TThCKyQ6LUJSJkBOTSgpRmBTJywsRjgrIyYwLlNNT0tALkc8JzgzTi4KKytN REEiIzUtYEpWQygiMSpUQTsvTSgpJjhKMCtZSCVJRlYpK09BQDQsYEU/M00kWyRAJlFgM11BISQm QSgtCisrTSRQQlQrMixAUFUrMkg5KFQtSDNONicoMjsiIiUyVCoxSTJQQGBMP0FHOCZBIT0zMUo3 KTEoOUZCJzhYPQorK01XSjBTI1lFRzlLJC4jLltMLltDTkEiNEpTSl5HSzIqKVVIPU1DMC5SOCtF NzUnLjA5PE5VJlIwRzE+W0cKKytNTVExKltHSTo+Iz5LYF9OWlM6VjY+JEs7T1g2IyEhTiciMjQx MyREVEwmXTdLWT5CPDNWNSEhQzgjWDUrCisrTUYlOTxOXF1DJUI2T1M7TEhAMUxSM1I8TFMrPF1O XTlcSlo8TEojMl9TMidVVygnRFohTj5YIThOT0tNNQorK00rIk4mUDQuNzVDMTYhQTlROzpDLjZO YFdaRFY9LV0hPEJUQjwxUSpQKFQ0JyYqMjpAJD1KQChNOCkhNT0KKytNTztbRUNTPiw1UEc8VFtY QzU5NFhJMEBSVlBEODYsTTExJShUPl1TTlBbR1ZeTD9ZR0ldN18nRDhOP1hWCisrTSdbN0taSldZ Vk1YR0JRU1tgISlZSSUzOkQpSTIhOyUnUmBXJllCPGA5TzIjRiJDLylGO0pLOVArQDMmKAorK01B SDMxW1cpPVlDT0RRRFVLTk03QSIzLkMhMiVDSFRKTloiWlwrI0YtPyhETEU+WEFDJTA3Qjg7JCVK X0wKKytNSlBLNDhRQyYsOTE2PUlNKzwxJldSS0xCNiZRMk83OSohN1MkLGA3SjgqIWAhPUs6NVc1 NTBbTkg5TSNfCisrTUtMIUxULCY7NTlHWlc3UyI1WjQlYCUmIWA5Iko5YDA6SVImSD1NVEtUPVBF WUMkLDRLOTBNOUFUJyU7XworK01CMEhWTEUpKFcmWVdGLEM6VFVSWE86YE1bUlgoQS1HVDk3NDU2 UTRaKkhQVSo0SjoqW1dVLTRHRC45VVYKKytNU0EjTDRYW1sqWSspOElGLkVPPC5UUDRJQzI/KDRI WClXMSM6R09NT0QyRjtITTFCViM8RSVQTSswJk41CisrTVBAJFwkRkQ0Qy1RXkwiSF4pTlAyLS5e SlRUITgrITsnWj1LTTclJ0tAXCkqUFNFVEYmTTY8USM+O1BIWworK003OlBKLSEjLCE2TjwzJykt MEMsPjE1J0laPkBVXkNKSkorPis+JSUpJUJCQVREXCkqRjYmQkxNSVImP1wKKytNUTJfPzMzQCJO UjEvQ05cOik+NURHNmA+JDskM1FBOTQnLTNdKkNVNllHXSk8PTIpJ0dDIlJQLVJLJi0zCisrTVpE VC1NXylSK0YwNkRTP0NSPkVAXiEsMzMiVTZYPEBPWE8kUT5VJFxUQElVPEgtNDI9MFlFWyQsVGBc SAorK00oJz4nQFQ9PktgRzdIOEs1R0xYTVMzKl5ASkxWQkhIRScuJj85UktDP1lgJiYzSjUhL0Mk Kys8QFUjUScKKytNOVIzSS4kK1NgJV0tLlVPPldIXkM3M0Y8JjtSSUpSKyhRQDcoM1BQKldbLU8s LEREM1M3QlVLXklARCUqCisrTWBZPCoyVFhKJjc7Mic2J1IuVT5dMC09Ik1gSysmTiUvPT1ONFVA OSVATTEpVSYyNTFDKCReUyJXTCJdVAorK00tWE4nRDJbSUkzLSRLJSsmYDNbJ08pJSw4RypFJV84 UlY2QTVCXzQoMi8/LUFJQy5cLz4sWUZKPChHLjgKKytNQVZQP1VOKj1NRTo3JlQhQyUpSTomNEg6 LTU+Jl4hJjA+QS5PJzBHJy82JlpaOTY0QDA0Jj0jRENgJSY6CisrTVVOTE9TPyw/J1Q6VCE4TDgw PEhfVzE+PSdNOjk2SzQ7SlgpNi4oJzEjSiQuMS9MKSRJUzw0LyonMkQzNAorK00vQEpcQkEoSTJU NDBKUyU5RzhGITdVNV8hIydVIStbNyRFUyYpQDoqUUFFVC1JQlg2J19ONV43LyM+QFYKKytNTjMm LC02KEFHWzgmIThMVitGX1UiVz8vKStZXiw7PTFLOlNXMjg8MFdBMiJVUEhQXjhGRyNSJCFgWWAs CisrTUxGPGBVKk5OVVxbNk4wMyIqP0k4RD1LNy5aKkg9QV8zPEgxWiUuUTglMlNSQEk0NSgnLkVH UjxOXlxgWgorK01cW1pcRCsvMz43O1M9TFZDKEJRLDU8TTBBIiNgXTdVSzdXMyU1KDpGQk1FUjNY U1AxNU4hKWAtXlpKWiUKKytNOjQpPjhRX1wjR2AnUCpfLV1UIUc0JGBWMEJTXSdTKUQvO1Y3Uj8u MkY/U0YpTisyKyNQMl88RyMxQilDCisrTSg4P05GLys/OlVNUjNCIzkkTUJEQ0kyRzcmTidUYEZW IUVSUVsyMURPSl84STczI0JJTFRUU0spQjVQPAorK01HMjJTPSo3VEk+Ryg0OVRDRSYqVUlWVC1N UDgwOFZUVlYtJCgqYFZUPCU+JTk2QUhPTGAoNyVTSTIlLVIKKytNI0cyRjAyVlFRSC03S1QzRTA1 STlaKUVcJFk4RUQxS1VgKDRRSFQlQl0xJEY6RjEmOERBTi5RNCYqP0ZACisrTS44RDk2NS4kUFJI PFZEKygpIjgmSSU8UiJQLFlbQSwpXkIoTyUxKEolLClNKE82KThFJUxZP0M2WEBASworK00oRiEy VEFcLFJFPE8iRTIqRz9KRTJZRlwqT0pNPyRLV1hXNlIoM0xSLSlXLls6WkpDP1pFNCwoIkokKCkK KytNNUBVITYyTSJXQko9JlEoTCQ1LDQ0OTRLPS4wQjAjLEMzJCpgYFhMVEYkRE4hNlAjJSw0SyVI VElDWypPCisrTTYiNFMsO1JOJkA9TlA3QDcyOj1VIyZKUEJRLTYwT0VBV1k7Q1VZRiskNzMuUj5U NUhELEc9RyFLVEYzRAorK005NCImWkEtRiwuMTk9OGBcKFE7QTA3USUhMTkqMyMqRjlRK0QoMEtA Vjg3QE8uPTdFSklNNmAhNGA+RCEKKytNKTQ5UUhBIUJWKzo0T0BLMDAkJCE1KjY+QUAyQDREKUBS XCIlJDJGIk86MjRKKkwoUlAjTjtPNEs3SSYyCisrTVsjKUtSNDdILU5bPE9eUy0pIl9RXD5WSiUz PiRgOSxBRjhRSUQmSTNHK0RgKl1CWDk4QiQySyI6QTdfXAorK01fXTdMVCE0LCROTDUpTkU+OVs6 TUsyXy8nR086NyJQYD08WCciVTkiIjA8UEpgM2AuOiooWl0tLkdRLDkKKytNPlAoXExdTz8iLUFQ SCg4MzQkLFchSUpTK1UxRjFDLiFEJCEmS1NeLTYlRjkwUFFbRl1GPSReUUVcWCstCisrTUAuVypM UEhfNzhCPk1ISEA2OVJVWyonMUpAOFFBQ1xLU1ZASUdcKDtfQ1VXOlpSMi4sMCRFM0xaX15QPQor K008X0RDUCJRPGA7K187WVAjXlUlJkVeIzJNJSxUP0YzVU5ePlRTSClHRkwiXCVSRltLTlorW1Ir QDwmLiQKKytNQzQyKUI5NlwxLS5PX0kpLks3KVhdVz5FUSk6NEMoWEIqKzpTJTBfMzdEXkVCUCsx SFUoRD8zIiVfTzJSCisrTTYtI1g+QVUjPCQqIS8sVzZRQ147T14lXUxSJl9YJzw4WCQ8M0NVVV9R RkFKOyI+SCkyNDQzR0Q0VyE0IworKz88NTUhMl42XzhKJCktTzw+XEgwVS82UV4+VUcwJVcpJS4l IjBQPlguXkBgYAorK2AKKytlbmQKCmRpZmYgLS1naXQgYS9nZGIuc3BlYyBiL2dkYi5zcGVjCmlu ZGV4IGM3NDVjZjEuLmUzMjA5MDggMTAwNjQ0Ci0tLSBhL2dkYi5zcGVjCisrKyBiL2dkYi5zcGVj CkBAIC0zNCw3ICszNCw3IEBAIFZlcnNpb246IDcuNS4wLjIwMTIwOTI2CiAKICMgVGhlIHJlbGVh c2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZlZCBudW1iZXIsIHN0YXJ0IGl0IGF0 IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBgbmFtZScgdG8gc3RheSBmdWxseSBy cG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0ZXN0aW5nLgotUmVsZWFzZTogMjUl ez9kaXN0fQorUmVsZWFzZTogMjYlez9kaXN0fQogCiBMaWNlbnNlOiBHUEx2MysgYW5kIEdQTHYz KyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTHYyKyBhbmQgR1BMdjIrIHdpdGggZXhjZXB0aW9ucyBh bmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQgQlNEIGFuZCBQdWJsaWMgRG9tYWluCiBHcm91cDogRGV2 ZWxvcG1lbnQvRGVidWdnZXJzCkBAIC01NzcsNiArNTc3LDMxIEBAIFBhdGNoNzI4OiBnZGItY2hl Y2stdHlwZS5wYXRjaAogIyBlbnRyeSB2YWx1ZXM6IEZpeCByZXNvbHZpbmcgaW4gaW5saW5lZCBm cmFtZXMuCiBQYXRjaDcyOTogZ2RiLWVudHJ5dmFsLWlubGluZWQucGF0Y2gKIAorIyBGaXggYEdE QiBjYW5ub3QgYWNjZXNzIHN0cnVjdCBtZW1iZXIgd2hvc2Ugb2Zmc2V0IGlzIGxhcmdlciB0aGFu IDI1Nk1CJworIyAoUkggQlogNzk1NDI0KS4KK1BhdGNoNzk3OiBnZGItcmhiejc5NTQyNC1iaXRw b3MtMDZvZjI1LnBhdGNoCitQYXRjaDc5ODogZ2RiLXJoYno3OTU0MjQtYml0cG9zLTA3b2YyNS5w YXRjaAorUGF0Y2g3OTk6IGdkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0wOG9mMjUucGF0Y2gKK1BhdGNo ODAwOiBnZGItcmhiejc5NTQyNC1iaXRwb3MtMDlvZjI1LnBhdGNoCitQYXRjaDgwMTogZ2RiLXJo Yno3OTU0MjQtYml0cG9zLTEwb2YyNS5wYXRjaAorUGF0Y2g4MDI6IGdkYi1yaGJ6Nzk1NDI0LWJp dHBvcy0xMW9mMjUucGF0Y2gKK1BhdGNoODAzOiBnZGItcmhiejc5NTQyNC1iaXRwb3MtMTJvZjI1 LnBhdGNoCitQYXRjaDgwNDogZ2RiLXJoYno3OTU0MjQtYml0cG9zLTEzb2YyNS5wYXRjaAorUGF0 Y2g4MDU6IGdkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xNG9mMjUucGF0Y2gKK1BhdGNoODA2OiBnZGIt cmhiejc5NTQyNC1iaXRwb3MtMTVvZjI1LnBhdGNoCitQYXRjaDgwNzogZ2RiLXJoYno3OTU0MjQt Yml0cG9zLTE2b2YyNS5wYXRjaAorUGF0Y2g4MDg6IGdkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0xN29m MjUucGF0Y2gKK1BhdGNoODA5OiBnZGItcmhiejc5NTQyNC1iaXRwb3MtMThvZjI1LnBhdGNoCitQ YXRjaDgxMDogZ2RiLXJoYno3OTU0MjQtYml0cG9zLTE5b2YyNS5wYXRjaAorUGF0Y2g4MTE6IGdk Yi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2gKK1BhdGNoODEyOiBnZGItcmhiejc5NTQy NC1iaXRwb3MtMjFvZjI1LnBhdGNoCitQYXRjaDgxMzogZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIy b2YyNS5wYXRjaAorUGF0Y2g4MTQ6IGdkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0Y2gK K1BhdGNoODE1OiBnZGItcmhiejc5NTQyNC1iaXRwb3MtMjRvZjI1LnBhdGNoCitQYXRjaDgxNjog Z2RiLXJoYno3OTU0MjQtYml0cG9zLTI1b2YyNS5wYXRjaAorUGF0Y2g4MTc6IGdkYi1yaGJ6Nzk1 NDI0LWJpdHBvcy0yNW9mMjUtdGVzdC5wYXRjaAorUGF0Y2g4MTg6IGdkYi1yaGJ6Nzk1NDI0LWJp dHBvcy1sYXp5dmFsdWUucGF0Y2gKKwogJWlmIDAleyE/cmhlbDoxfSB8fCAwJXs/cmhlbH0gPiA2 CiAjIFJMX1NUQVRFX0ZFRE9SQV9HREIgd291bGQgbm90IGJlIGZvdW5kIGZvcjoKICMgUGF0Y2g2 NDI6IGdkYi1yZWFkbGluZTYyLWFzay1tb3JlLXJoLnBhdGNoCkBAIC04ODksNiArOTE0LDI4IEBA IHJtIC1mIGdkYi9qdi1leHAuYyBnZGIvbTItZXhwLmMgZ2RiL29iamMtZXhwLmMgZ2RiL3AtZXhw LmMgZ2RiL2dvLWV4cC5jCiAlcGF0Y2g3MjYgLXAxCiAlcGF0Y2g3MjggLXAxCiAlcGF0Y2g3Mjkg LXAxCislcGF0Y2g3OTcgLXAxCislcGF0Y2g3OTggLXAxCislcGF0Y2g3OTkgLXAxCislcGF0Y2g4 MDAgLXAxCislcGF0Y2g4MDEgLXAxCislcGF0Y2g4MDIgLXAxCislcGF0Y2g4MDMgLXAxCislcGF0 Y2g4MDQgLXAxCislcGF0Y2g4MDUgLXAxCislcGF0Y2g4MDYgLXAxCislcGF0Y2g4MDcgLXAxCisl cGF0Y2g4MDggLXAxCislcGF0Y2g4MDkgLXAxCislcGF0Y2g4MTAgLXAxCislcGF0Y2g4MTEgLXAx CislcGF0Y2g4MTIgLXAxCislcGF0Y2g4MTMgLXAxCislcGF0Y2g4MTQgLXAxCislcGF0Y2g4MTUg LXAxCislcGF0Y2g4MTYgLXAxCislcGF0Y2g4MTcgLXAxCislcGF0Y2g4MTggLXAxCiAKICVwYXRj aDM5MyAtcDEKICVpZiAwJXshP2VsNToxfSB8fCAwJXs/c2NsOjF9CkBAIC0xMzg1LDYgKzE0MzIs MTAgQEAgZmkKICVlbmRpZiAjIDAleyE/ZWw1OjF9IHx8ICIle190YXJnZXRfY3B1fSIgPT0gIm5v YXJjaCIKIAogJWNoYW5nZWxvZworKiBGcmkgTm92ICA5IDIwMTIgSmFuIEtyYXRvY2h2aWwgPGph bi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy41LjAuMjAxMjA5MjYtMjYuZmMxOAorLSBGaXgg YEdEQiBjYW5ub3QgYWNjZXNzIHN0cnVjdCBtZW1iZXIgd2hvc2Ugb2Zmc2V0IGlzIGxhcmdlciB0 aGFuIDI1Nk1CJworICAoUkggQlogODcxMDY2KS4KKwogKiBGcmkgT2N0ICA1IDIwMTIgSmFuIEty YXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy41LjAuMjAxMjA5MjYtMjUu ZmMxOAogLSBlbnRyeSB2YWx1ZXM6IEZpeCByZXNvbHZpbmcgaW4gaW5saW5lZCBmcmFtZXMuCiAK