From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: - Include the Archer Project: http://sourceware.org/gdb/wiki/ProjectArcher Date: Thu, 23 Jul 2026 18:29:06 GMT Message-ID: <178483134674.1.16346880386078593906.rpms-gdb-36474ab6e819@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 36474ab6e819d8193f45b3d5a8770958abaf53f9 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogMzY0NzRhYjZlODE5ZDgxOTNmNDViM2Q1YTg3NzA5NThhYmFmNTNmOQog ICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amtyYXRvY2hAZmVkb3JhcHJvamVj dC5vcmc+CiAgICAgICAgICAgIERhdGUgICA6IDIwMDktMDMtMDJUMjM6MTQ6MTUrMDA6MDAKICAg ICAgICAgICAgU3RhdHMgIDogKzUwMTMvLTQ4MiBpbiA5IGZpbGUocykKICAgICAgICAgICAgVVJM ICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nZGIvYy8zNjQ3NGFiNmU4 MTlkODE5M2Y0NWIzZDVhODc3MDk1OGFiYWY1M2Y5P2JyYW5jaD1maXgtZHVwLXBhdGNoCgogICAg ICAgICAgICBMb2c6CiAgICAgICAgICAgIC0gSW5jbHVkZSB0aGUgQXJjaGVyIFByb2plY3Q6IGh0 dHA6Ly9zb3VyY2V3YXJlLm9yZy9nZGIvd2lraS9Qcm9qZWN0QXJjaGVyCmh0dHA6Ly9zb3VyY2V3 YXJlLm9yZy9nZGIvd2lraS9QeXRob25HZGIKW2NhdGNoLXN5c2NhbGxdIFRyYXAgYW5kIGRpc3Bs YXkgc3lzY2FsbHMuCltkZWxheWVkLXN5bWZpbGVdIEltcHJvdmUgc3RhcnR1cCBwZXJmb3JtYW5j ZSBieSBsYXppbHkgcmVhZCBwc3ltdGFicy4KW2V4Y2VwdGlvbi1yZXdpbmRdIEZpeCBmYXRhbCBD KysgZXhjZXB0aW9ucyBpbiBhbiBpbmZlcmlvciBmdW5jdGlvbiBjYWxsLgpbZXhwcl0gRXhwcmVz c2lvbnMsIHNpbmdsZS1xdW90ZSBlbGltaW5hdGlvbiwgQysrIGlucHV0IGNhbm9uaWNhbGl6YXRp b24uClt1c2luZy1kaXJlY3RpdmVdIEMrKyBuYW1lc3BhY2VzLgpbdmxhXSBDIHZhcmlhYmxlIGxl bmd0aCBhcnJheXMgLyBEV19GT1JNX2Jsb2NrIC8gRm9ydHJhbiBkeW5hbWljIGFycmF5cy4KW21p c2NdIEZpeCBkZWJ1Z2luZm9sZXNzIGByZXR1cm4nIChCWiAzNjUxMTEpLCBmaXggY29tbWFuZC1s aW5lIG1hY3JvcyBmb3IKICAgIGV4cGVjdGVkIEdDQyAoQlogNDc5OTE0KSwgbmV3IHRlc3RjYXNl IGZvciB2YWxncmluZCAoZm9yIEJaIDQ4MzI2MiksCiAgICBpbXBsZW1lbnQgYGluZm8gY29tbW9u JyBmb3IgRm9ydHJhbiwgZml4IEZvcnRyYW4gbG9naWNhbC1raW5kPTggKEJaCiAgICA0NjUzMTAp LCBmaXggc3RhdGljIHZhcmlhYmxlIGluIEMrKyBjb25zdHJ1Y3RvcnMgKEJaIDQ0NTkxMiksIGZp eAogICAgcG93ZXI3IChCWiA0ODUzMTkpLgotIFVwZ3JhZGUgdG8gdGhlIEZTRiBHREIgZ2RiLTYu OC41MCBzbmFwc2hvdC4KLSBGaXggcGFyc2luZyBlbGY2NC1pMzg2IGZpbGVzIGZvciBrZHVtcCBQ QUUgdm1jb3JlIGR1bXBzIChCWiA0NTcxODcpLgotIFR1cm4gb24gNjQtYml0IEJGRCBzdXBwb3J0 LCBnbG9iYWxseSBlbmFibGUgQUNfU1lTX0xBUkdFRklMRS4KCi0tLQpkaWZmIC0tZ2l0IGEvLmN2 c2lnbm9yZSBiLy5jdnNpZ25vcmUKaW5kZXggYWRlMjIzYy4uZDFkNjVkYyAxMDA2NDQKLS0tIGEv LmN2c2lnbm9yZQorKysgYi8uY3ZzaWdub3JlCkBAIC0xICsxIEBACi1nZGItNi44LjUwLjIwMDkw MjI4LnRhci5iejIKK2dkYi02LjguNTAuMjAwOTAzMDIudGFyLmJ6MgoKZGlmZiAtLWdpdCBhL2dk Yi02LjMtcmVhZG5ldmVyLTIwMDUwOTA3LnBhdGNoIGIvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5 MDcucGF0Y2gKaW5kZXggNmM2MWMyNS4uYWI2NDViNCAxMDA2NDQKLS0tIGEvZ2RiLTYuMy1yZWFk bmV2ZXItMjAwNTA5MDcucGF0Y2gKKysrIGIvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0 Y2gKQEAgLTExLDEwICsxMSwxMCBAQAogCiAgICAgICAgICogZ2RiLnRleGluZm8gKEZpbGUgT3B0 aW9ucyk6IERvY3VtZW50IC0tcmVhZG5ldmVyLgogCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDIy Ni9nZGIvZG9jL2dkYi50ZXhpbmZvCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyOC9nZGIvZG9j L2dkYi50ZXhpbmZvCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDIyNi5vcmlnL2dk Yi9kb2MvZ2RiLnRleGluZm8JMjAwOS0wMi0yNyAwMDowNDozMi4wMDAwMDAwMDAgKzAxMDAKLSsr KyBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAwOS0wMi0yOCAwNzox OTo1MC4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwMjI4Lm9yaWcvZ2RiL2Rv Yy9nZGIudGV4aW5mbwkyMDA5LTAzLTAyIDAxOjAxOjE1LjAwMDAwMDAwMCArMDEwMAorKysrIGdk Yi02LjguNTAuMjAwOTAyMjgvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDA5LTAzLTAyIDAxOjAxOjIz LjAwMDAwMDAwMCArMDEwMAogQEAgLTk4OCw2ICs5ODgsMTIgQEAgUmVhZCBlYWNoIHN5bWJvbCBm aWxlJ3MgZW50aXJlIHN5bWJvbCB0YQogIHRoZSBkZWZhdWx0LCB3aGljaCBpcyB0byByZWFkIGl0 IGluY3JlbWVudGFsbHkgYXMgaXQgaXMgbmVlZGVkLgogIFRoaXMgbWFrZXMgc3RhcnR1cCBzbG93 ZXIsIGJ1dCBtYWtlcyBmdXR1cmUgb3BlcmF0aW9ucyBmYXN0ZXIuCkBAIC0yOCwxMCArMjgsMTAg QEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL2RvYy9nZGIudGV4aW5mbwogIEBlbmQg dGFibGUKICAKICBAbm9kZSBNb2RlIE9wdGlvbnMKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2 L2dkYi9tYWluLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi9tYWluLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwMjI2Lm9yaWcvZ2RiL21haW4uYwkyMDA5LTAyLTI4 IDA3OjE1OjU3LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL21h aW4uYwkyMDA5LTAyLTI4IDA3OjIwOjIwLjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi02LjguNTAu MjAwOTAyMjgub3JpZy9nZGIvbWFpbi5jCTIwMDktMDMtMDIgMDE6MDE6MTcuMDAwMDAwMDAwICsw MTAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDIyOC9nZGIvbWFpbi5jCTIwMDktMDMtMDIgMDE6MDE6 MjMuMDAwMDAwMDAwICswMTAwCiBAQCAtNDI3LDYgKzQyNyw3IEBAIGNhcHR1cmVkX21haW4gKHZv aWQgKmRhdGEpCiAgICAgICAgeyJ4ZGIiLCBub19hcmd1bWVudCwgJnhkYl9jb21tYW5kcywgMX0s CiAgICAgICAgeyJkYngiLCBub19hcmd1bWVudCwgJmRieF9jb21tYW5kcywgMX0sCkBAIC00OCwx MCArNDgsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL21haW4uYwogICIpLCBz dHJlYW0pOwogICAgZnB1dHNfdW5maWx0ZXJlZCAoXygiXAogICAgLS1zZT1GSUxFICAgICAgICAg IFVzZSBGSUxFIGFzIHN5bWJvbCBmaWxlIGFuZCBleGVjdXRhYmxlIGZpbGUuXG5cCi1JbmRleDog Z2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvc3ltZmlsZS5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5 MDIyOC9nZGIvc3ltZmlsZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDIyNi5v cmlnL2dkYi9zeW1maWxlLmMJMjAwOS0wMi0yNyAwNzo1MTo1Ni4wMDAwMDAwMDAgKzAxMDAKLSsr KyBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi9zeW1maWxlLmMJMjAwOS0wMi0yOCAwNzoxOTo1MC4w MDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwMjI4Lm9yaWcvZ2RiL3N5bWZpbGUu YwkyMDA5LTAzLTAyIDAxOjAxOjE3LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi02LjguNTAuMjAw OTAyMjgvZ2RiL3N5bWZpbGUuYwkyMDA5LTAzLTAyIDAxOjAxOjIzLjAwMDAwMDAwMCArMDEwMAog QEAgLTc3LDYgKzc3LDcgQEAgc3RhdGljIHZvaWQgY2xlYXJfc3ltdGFiX3VzZXJzX2NsZWFudXAg KAogIAogIC8qIEdsb2JhbCB2YXJpYWJsZXMgb3duZWQgYnkgdGhpcyBmaWxlICovCkBAIC02MCwx OSArNjAsMTkgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL3N5bWZpbGUuYwogIAog IC8qIEV4dGVybmFsIHZhcmlhYmxlcyBhbmQgZnVuY3Rpb25zIHJlZmVyZW5jZWQuICovCiAgCi1J bmRleDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvZHdhcmYycmVhZC5jCitJbmRleDogZ2RiLTYu OC41MC4yMDA5MDIyOC9nZGIvZHdhcmYycmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41 MC4yMDA5MDIyNi5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAwOS0wMi0yNyAwMDowNDozMi4wMDAw MDAwMDAgKzAxMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi9kd2FyZjJyZWFkLmMJMjAw OS0wMi0yOCAwNzoyMToyNy4wMDAwMDAwMDAgKzAxMDAKLUBAIC00OCw2ICs0OCw3IEBACi0gI2lu Y2x1ZGUgImdkYmNtZC5oIgotICNpbmNsdWRlICJhZGRybWFwLmgiCistLS0gZ2RiLTYuOC41MC4y MDA5MDIyOC5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAwOS0wMy0wMiAwMTowMToxNS4wMDAwMDAw MDAgKzAxMDAKKysrKyBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi9kd2FyZjJyZWFkLmMJMjAwOS0w My0wMiAwMTowMTozNi4wMDAwMDAwMDAgKzAxMDAKK0BAIC00OSw2ICs0OSw3IEBACiAgI2luY2x1 ZGUgImYtbGFuZy5oIgorICNpbmNsdWRlICJjLWxhbmcuaCIKKyAjaW5jbHVkZSAidHlwZXByaW50 LmgiCiArI2luY2x1ZGUgInRvcC5oIgogIAogICNpbmNsdWRlIDxmY250bC5oPgogICNpbmNsdWRl ICJnZGJfc3RyaW5nLmgiCi1AQCAtMTE2OSw3ICsxMTcwLDggQEAgZHdhcmYyX2hhc19pbmZvIChz dHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZQorQEAgLTExNjEsNyArMTE2Miw4IEBAIGR3YXJmMl9oYXNf aW5mbyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUKICAgIGR3YXJmX2FyYW5nZXNfc2VjdGlvbiA9 IDA7CiAgICAKICAgIGJmZF9tYXBfb3Zlcl9zZWN0aW9ucyAob2JqZmlsZS0+b2JmZCwgZHdhcmYy X2xvY2F0ZV9zZWN0aW9ucywgJnVwZGF0ZV9zaXplcyk7CkBAIC04MiwxMCArODIsMTAgQEAgSW5k ZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL2R3YXJmMnJlYWQuYwogIH0KICAKICAvKiBXaGVu IGxvYWRpbmcgc2VjdGlvbnMsIHdlIGNhbiBlaXRoZXIgbG9vayBmb3IgIi48bmFtZT4iLCBvciBm b3IKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi90b3AuaAorSW5kZXg6IGdkYi02Ljgu NTAuMjAwOTAyMjgvZ2RiL3RvcC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDIy Ni5vcmlnL2dkYi90b3AuaAkyMDA5LTAxLTAzIDA2OjU3OjUzLjAwMDAwMDAwMCArMDEwMAotKysr IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL3RvcC5oCTIwMDktMDItMjggMDc6MTk6NTAuMDAwMDAw MDAwICswMTAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDIyOC5vcmlnL2dkYi90b3AuaAkyMDA5LTAx LTAzIDA2OjU3OjUzLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi02LjguNTAuMjAwOTAyMjgvZ2Ri L3RvcC5oCTIwMDktMDMtMDIgMDE6MDE6MjMuMDAwMDAwMDAwICswMTAwCiBAQCAtNTksNiArNTks NyBAQCBleHRlcm4gdm9pZCBzZXRfcHJvbXB0IChjaGFyICopOwogIAogIC8qIEZyb20gcmFuZG9t IHBsYWNlcy4gICovCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNS1iejE4NTMzNy1yZXNvbHZlLXRscy13 aXRob3V0LWRlYnVnaW5mby12Mi5wYXRjaCBiL2dkYi02LjUtYnoxODUzMzctcmVzb2x2ZS10bHMt d2l0aG91dC1kZWJ1Z2luZm8tdjIucGF0Y2gKaW5kZXggZTM0ODdjMS4uZjE4M2Y2ZCAxMDA2NDQK LS0tIGEvZ2RiLTYuNS1iejE4NTMzNy1yZXNvbHZlLXRscy13aXRob3V0LWRlYnVnaW5mby12Mi5w YXRjaAorKysgYi9nZGItNi41LWJ6MTg1MzM3LXJlc29sdmUtdGxzLXdpdGhvdXQtZGVidWdpbmZv LXYyLnBhdGNoCkBAIC0zMCw1MiArMzAsMTEgQEAgZ2xpYmMtZGVidWdpbmZvLTIuNy0yLng4Nl82 NDogL3Vzci9saWIvZGVidWcvbGliNjQvbGliYy5zby42LmRlYnVnOgogICA8ODFhMj4gICAgIERX X0FUX25hbWUgICAgICAgIDogKGluZGlyZWN0IHN0cmluZywgb2Zmc2V0OiAweDI4MGUpOiBfX2Vy cm5vX2xvY2F0aW9uCiAgIDw4MWE4PiAgICAgRFdfQVRfTUlQU19saW5rYWdlX25hbWU6IChpbmRp cmVjdCBzdHJpbmcsIG9mZnNldDogMHgyODA4KTogKl9fR0lfX19lcnJub19sb2NhdGlvbgogCi1J bmRleDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvZHdhcmYycmVhZC5jCitJbmRleDogZ2RiLTYu OC41MC4yMDA5MDIyOC9nZGIvZ2RidHlwZXMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAu MjAwOTAyMjYub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMDktMDItMjggMDc6MjI6NDQuMDAwMDAw MDAwICswMTAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvZHdhcmYycmVhZC5jCTIwMDkt MDItMjggMDc6MzE6MzMuMDAwMDAwMDAwICswMTAwCi1AQCAtNjM3Niw2ICs2Mzc2LDggQEAgcmVh ZF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZgotICAgICAgIHN3aXRjaCAoYXR0 ci5uYW1lKQotIAl7Ci0gCWNhc2UgRFdfQVRfbmFtZToKLSsJICAvKiBQcmVmZXIgRFdfQVRfTUlQ U19saW5rYWdlX25hbWUgb3ZlciBEV19BVF9uYW1lIGZvciBub24tQy4gICovCi0raWYgKGN1LT5s YW5ndWFnZSA9PSBsYW5ndWFnZV9jIHx8IHBhcnRfZGllLT5uYW1lID09IE5VTEwpCi0gCSAgc3dp dGNoIChwYXJ0X2RpZS0+dGFnKQotIAkgICAgewotIAkgICAgY2FzZSBEV19UQUdfY29tcGlsZV91 bml0OgotQEAgLTYzOTksNyArNjQwMSw5IEBAIHJlYWRfcGFydGlhbF9kaWUgKHN0cnVjdCBwYXJ0 aWFsX2RpZV9pbmYKLSAJICAgIHBhcnRfZGllLT5kaXJuYW1lID0gRFdfU1RSSU5HICgmYXR0cik7 Ci0gCSAgYnJlYWs7Ci0gCWNhc2UgRFdfQVRfTUlQU19saW5rYWdlX25hbWU6Ci0tCSAgcGFydF9k aWUtPm5hbWUgPSBEV19TVFJJTkcgKCZhdHRyKTsKLSsJICAvKiBQcmVmZXIgRFdfQVRfTUlQU19s aW5rYWdlX25hbWUgb3ZlciBEV19BVF9uYW1lIGZvciBub24tQy4gICovCi0rCSAgaWYgKGN1LT5s YW5ndWFnZSAhPSBsYW5ndWFnZV9jIHx8IHBhcnRfZGllLT5uYW1lID09IE5VTEwpCi0rCSAgICBw YXJ0X2RpZS0+bmFtZSA9IERXX1NUUklORyAoJmF0dHIpOwotIAkgIGJyZWFrOwotIAljYXNlIERX X0FUX2xvd19wYzoKLSAJICBoYXNfbG93X3BjX2F0dHIgPSAxOwotQEAgLTg2NTAsOSArODY1NCwx MyBAQCBkd2FyZjJfbGlua2FnZV9uYW1lIChzdHJ1Y3QgZGllX2luZm8gKmRpCi0gewotICAgc3Ry dWN0IGF0dHJpYnV0ZSAqYXR0cjsKLSAKLS0gIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19B VF9NSVBTX2xpbmthZ2VfbmFtZSwgY3UpOwotLSAgaWYgKGF0dHIgJiYgRFdfU1RSSU5HIChhdHRy KSkKLS0gICAgcmV0dXJuIERXX1NUUklORyAoYXR0cik7Ci0rICAvKiBQcmVmZXIgRFdfQVRfTUlQ U19saW5rYWdlX25hbWUgb3ZlciBEV19BVF9uYW1lIGZvciBub24tQy4gICovCi0rICBpZiAoY3Ut Pmxhbmd1YWdlICE9IGxhbmd1YWdlX2MpCi0rICAgIHsKLSsgICAgICBhdHRyID0gZHdhcmYyX2F0 dHIgKGRpZSwgRFdfQVRfTUlQU19saW5rYWdlX25hbWUsIGN1KTsKLSsgICAgICBpZiAoYXR0ciAm JiBEV19TVFJJTkcgKGF0dHIpKQotKwlyZXR1cm4gRFdfU1RSSU5HIChhdHRyKTsKLSsgICAgfQot ICAgcmV0dXJuIGR3YXJmMl9uYW1lIChkaWUsIGN1KTsKLSB9Ci0gCi1JbmRleDogZ2RiLTYuOC41 MC4yMDA5MDIyNi9nZGIvZ2RidHlwZXMuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAw OTAyMjYub3JpZy9nZGIvZ2RidHlwZXMuYwkyMDA5LTAyLTI3IDAwOjA0OjMyLjAwMDAwMDAwMCAr MDEwMAotKysrIGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL2dkYnR5cGVzLmMJMjAwOS0wMi0yOCAw NzoyMjo1NS4wMDAwMDAwMDAgKzAxMDAKLUBAIC0zNjQzLDYgKzM2NDMsOCBAQCBnZGJ0eXBlc19w b3N0X2luaXQgKHN0cnVjdCBnZGJhcmNoICpnZGJhCistLS0gZ2RiLTYuOC41MC4yMDA5MDIyOC5v cmlnL2dkYi9nZGJ0eXBlcy5jCTIwMDktMDMtMDIgMDE6MDE6MTUuMDAwMDAwMDAwICswMTAwCisr KysgZ2RiLTYuOC41MC4yMDA5MDIyOC9nZGIvZ2RidHlwZXMuYwkyMDA5LTAzLTAyIDAxOjAxOjUz LjAwMDAwMDAwMCArMDEwMAorQEAgLTM2MzMsNiArMzYzMyw4IEBAIGdkYnR5cGVzX3Bvc3RfaW5p dCAoc3RydWN0IGdkYmFyY2ggKmdkYmEKICAgICAgaW5pdF90eXBlIChUWVBFX0NPREVfSU5ULCAK ICAJICAgICAgIGdkYmFyY2hfaW50X2JpdCAoZ2RiYXJjaCkgLyBUQVJHRVRfQ0hBUl9CSVQsCiAg CSAgICAgICAwLCAiaW50IiwgT0JKRklMRV9JTlRFUk5BTCk7CkBAIC04NCw3ICs0Myw3IEBAIElu ZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi9nZGJ0eXBlcy5jCiAgICBidWlsdGluX3R5cGUt PmJ1aWx0aW5fdW5zaWduZWRfaW50ID0KICAgICAgaW5pdF90eXBlIChUWVBFX0NPREVfSU5ULCAK ICAJICAgICAgIGdkYmFyY2hfaW50X2JpdCAoZ2RiYXJjaCkgLyBUQVJHRVRfQ0hBUl9CSVQsCi1A QCAtMzc1Miw2ICszNzU0LDEyIEBAIGdkYnR5cGVzX3Bvc3RfaW5pdCAoc3RydWN0IGdkYmFyY2gg KmdkYmEKK0BAIC0zNzQyLDYgKzM3NDQsMTIgQEAgZ2RidHlwZXNfcG9zdF9pbml0IChzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYQogIAkgICAgICAgIjx0ZXh0IHZhcmlhYmxlLCBubyBkZWJ1ZyBpbmZvPiIs IE9CSkZJTEVfSU5URVJOQUwpOwogICAgVFlQRV9UQVJHRVRfVFlQRSAoYnVpbHRpbl90eXBlLT5u b2RlYnVnX3RleHRfc3ltYm9sKSA9CiAgICAgIGJ1aWx0aW5fdHlwZS0+YnVpbHRpbl9pbnQ7CkBA IC05NywxMCArNTYsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL2dkYnR5cGVz LmMKICAgIGJ1aWx0aW5fdHlwZS0+bm9kZWJ1Z19kYXRhX3N5bWJvbCA9CiAgICAgIGluaXRfdHlw ZSAoVFlQRV9DT0RFX0lOVCwgCiAgCSAgICAgICBnZGJhcmNoX2ludF9iaXQgKGdkYmFyY2gpIC8g SE9TVF9DSEFSX0JJVCwgMCwKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi9nZGJ0eXBl cy5oCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyOC9nZGIvZ2RidHlwZXMuaAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi02LjguNTAuMjAwOTAyMjYub3JpZy9nZGIvZ2RidHlwZXMuaAkyMDA5LTAyLTI3 IDAwOjA0OjMyLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL2dk YnR5cGVzLmgJMjAwOS0wMi0yOCAwNzoyMjo1NS4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNi44 LjUwLjIwMDkwMjI4Lm9yaWcvZ2RiL2dkYnR5cGVzLmgJMjAwOS0wMy0wMiAwMTowMToxNS4wMDAw MDAwMDAgKzAxMDAKKysrKyBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi9nZGJ0eXBlcy5oCTIwMDkt MDMtMDIgMDE6MDE6NTMuMDAwMDAwMDAwICswMTAwCiBAQCAtMTA1Myw2ICsxMDUzLDcgQEAgc3Ry dWN0IGJ1aWx0aW5fdHlwZQogIAogICAgLyogVHlwZXMgdXNlZCBmb3Igc3ltYm9scyB3aXRoIG5v IGRlYnVnIGluZm9ybWF0aW9uLiAgKi8KQEAgLTExNywxMCArNzYsMTAgQEAgSW5kZXg6IGdkYi02 LjguNTAuMjAwOTAyMjYvZ2RiL2dkYnR5cGVzLmgKICAgIHN0cnVjdCB0eXBlICpidWlsdGluX2xv bmc7CiAgICBzdHJ1Y3QgdHlwZSAqYnVpbHRpbl9zaWduZWRfY2hhcjsKICAgIHN0cnVjdCB0eXBl ICpidWlsdGluX3Vuc2lnbmVkX2NoYXI7Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIv cGFyc2UuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjgvZ2RiL3BhcnNlLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwMjI2Lm9yaWcvZ2RiL3BhcnNlLmMJMjAwOS0wMi0yNyAw MDowNDozMi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi9wYXJz ZS5jCTIwMDktMDItMjggMDc6MjI6NTUuMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTYuOC41MC4y MDA5MDIyOC5vcmlnL2dkYi9wYXJzZS5jCTIwMDktMDMtMDIgMDE6MDE6MTUuMDAwMDAwMDAwICsw MTAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDIyOC9nZGIvcGFyc2UuYwkyMDA5LTAzLTAyIDAxOjAx OjUzLjAwMDAwMDAwMCArMDEwMAogQEAgLTUwOCw3ICs1MDgsMTIgQEAgd3JpdGVfZXhwX21zeW1i b2wgKHN0cnVjdCBtaW5pbWFsX3N5bWJvbAogICAgICBjYXNlIG1zdF90ZXh0OgogICAgICBjYXNl IG1zdF9maWxlX3RleHQ6CkBAIC0xMzUsMTAgKzk0LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIw MDkwMjI2L2dkYi9wYXJzZS5jCiAgICAgICAgYnJlYWs7CiAgCiAgICAgIGNhc2UgbXN0X2RhdGE6 Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvdGFyZ2V0LmMKK0luZGV4OiBnZGItNi44 LjUwLjIwMDkwMjI4L2dkYi90YXJnZXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAw OTAyMjYub3JpZy9nZGIvdGFyZ2V0LmMJMjAwOS0wMi0yOCAwNzoyMjowOS4wMDAwMDAwMDAgKzAx MDAKLSsrKyBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi90YXJnZXQuYwkyMDA5LTAyLTI4IDA3OjIy OjU1LjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi02LjguNTAuMjAwOTAyMjgub3JpZy9nZGIvdGFy Z2V0LmMJMjAwOS0wMy0wMiAwMTowMTo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNi44LjUw LjIwMDkwMjI4L2dkYi90YXJnZXQuYwkyMDA5LTAzLTAyIDAxOjAxOjUzLjAwMDAwMDAwMCArMDEw MAogQEAgLTgyNyw2ICs4MjcsMjUgQEAgcG9wX2FsbF90YXJnZXRzIChpbnQgcXVpdHRpbmcpCiAg ICBwb3BfYWxsX3RhcmdldHNfYWJvdmUgKGR1bW15X3N0cmF0dW0sIHF1aXR0aW5nKTsKICB9CkBA IC0xOTUsMTAgKzE1NCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvdGFyZ2V0 LmMKICAKICAgIHJldHVybiBhZGRyOwogIH0KLUluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItZXJybm8uYworSW5kZXg6IGdkYi02LjguNTAuMjAw OTAyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJuby5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTYuOC41MC4yMDA5MDIyNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWVycm5vLmMJMjAw OS0wMi0yOCAwNzoyMjo1NS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNi44LjUwLjIwMDkwMjI4 L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItZXJybm8uYwkyMDA5LTAzLTAyIDAxOjAxOjUz LjAwMDAwMDAwMCArMDEwMAogQEAgLTAsMCArMSwyOCBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMg cGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0yMjgsMTAgKzE4NywxMCBAQCBJ bmRleDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWVy cm5vLmMKICsKICsgIHJldHVybiAwOwkvKiBicmVha3BvaW50ICovCiArfQotSW5kZXg6IGdkYi02 LjguNTAuMjAwOTAyMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJuby5leHAKK0lu ZGV4OiBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItZXJy bm8uZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvdGVzdHN1aXRlL2dkYi5k d2FyZjIvZHcyLWVycm5vLmV4cAkyMDA5LTAyLTI4IDA3OjIyOjU1LjAwMDAwMDAwMCArMDEwMAor KysrIGdkYi02LjguNTAuMjAwOTAyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJu by5leHAJMjAwOS0wMy0wMiAwMTowMTo1My4wMDAwMDAwMDAgKzAxMDAKIEBAIC0wLDAgKzEsNjcg QEAKICsjIENvcHlyaWdodCAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwoK ZGlmZiAtLWdpdCBhL2dkYi02LjgtYno0NTcxODctbGFyZ2VmaWxlLnBhdGNoIGIvZ2RiLTYuOC1i ejQ1NzE4Ny1sYXJnZWZpbGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNmUyOTdkNwotLS0gL2Rldi9udWxsCisrKyBiL2dkYi02LjgtYno0NTcxODctbGFyZ2VmaWxl LnBhdGNoCkBAIC0wLDAgKzEsNDIzIEBACitnZGIvCisyMDA5LTAzLTAyICBKYW4gS3JhdG9jaHZp bCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYzogQ2FsbCBB Q19TWVNfTEFSR0VGSUxFLgorCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgorCSogY29uZmlndXJl OiBSZWdlbmVyYXRlLgorCitkaWZmIC11cCAtcnVwIGdkYi1vcmlnL2NvbmZpZ3VyZS5hYyBnZGIv Y29uZmlndXJlLmFjCistLS0gLi9nZGItb3JpZy9jb25maWd1cmUuYWMJMjAwOS0wMy0wMiAyMzoz OTowMS4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9jb25maWd1cmUuYWMJMjAwOS0wMy0wMiAy Mzo0MDo0Ni4wMDAwMDAwMDAgKzAxMDAKK0BAIC0zMCw2ICszMCw3IEBAIEFDX0dOVV9TT1VSQ0UK KyBBQ19BSVgKKyBBQ19JU0NfUE9TSVgKKyBnbF9FQVJMWQorK0FDX1NZU19MQVJHRUZJTEUKKyBB TV9QUk9HX0NDX1NUREMKKyAKKyBBQ19DT05GSUdfQVVYX0RJUiguLikKK2RpZmYgLXVwIC1ydXAg Z2RiLW9yaWcvY29uZmlnLmluIGdkYi9jb25maWcuaW4KKy0tLSAuL2dkYi1vcmlnL2NvbmZpZy5p bgkyMDA5LTAzLTAyIDIzOjM5OjAxLjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL2NvbmZpZy5p bgkyMDA5LTAzLTAyIDIzOjQwOjUzLjAwMDAwMDAwMCArMDEwMAorQEAgLTcyNSw2ICs3MjUsOSBA QAorICMgdW5kZWYgX0FMTF9TT1VSQ0UKKyAjZW5kaWYKKyAKKysvKiBOdW1iZXIgb2YgYml0cyBp biBhIGZpbGUgb2Zmc2V0LCBvbiBob3N0cyB3aGVyZSB0aGlzIGlzIHNldHRhYmxlLiAqLworKyN1 bmRlZiBfRklMRV9PRkZTRVRfQklUUworKworIC8qIEVuYWJsZSBHTlUgZXh0ZW5zaW9ucyBvbiBz eXN0ZW1zIHRoYXQgaGF2ZSB0aGVtLiAgKi8KKyAjaWZuZGVmIF9HTlVfU09VUkNFCisgIyB1bmRl ZiBfR05VX1NPVVJDRQorQEAgLTczNCw2ICs3MzcsOSBAQAorICAgIDxzeXMvcHJvYy5oPiBwcm9i bGVtIG9uIElSSVggNS4gKi8KKyAjdW5kZWYgX0tNRU1VU0VSCisgCisrLyogRGVmaW5lIGZvciBs YXJnZSBmaWxlcywgb24gQUlYLXN0eWxlIGhvc3RzLiAqLworKyN1bmRlZiBfTEFSR0VfRklMRVMK KysKKyAvKiBEZWZpbmUgdG8gMSBpZiBvbiBNSU5JWC4gKi8KKyAjdW5kZWYgX01JTklYCisgCitk aWZmIC11cCAtcnVwIGdkYi1vcmlnL2NvbmZpZ3VyZSBnZGIvY29uZmlndXJlCistLS0gLi9nZGIt b3JpZy9jb25maWd1cmUJMjAwOS0wMy0wMiAyMzozOTowMS4wMDAwMDAwMDAgKzAxMDAKKysrKyAu L2dkYi9jb25maWd1cmUJMjAwOS0wMy0wMiAyMzo0MDo0OS4wMDAwMDAwMDAgKzAxMDAKK0BAIC04 NjIsNiArODYyLDcgQEAgT3B0aW9uYWwgRmVhdHVyZXM6CisgICAtLWVuYWJsZS1GRUFUVVJFWz1B UkddICBpbmNsdWRlIEZFQVRVUkUgW0FSRz15ZXNdCisgICAtLWVuYWJsZS1tYWludGFpbmVyLW1v ZGUgIGVuYWJsZSBtYWtlIHJ1bGVzIGFuZCBkZXBlbmRlbmNpZXMgbm90IHVzZWZ1bAorIAkJCSAg KGFuZCBzb21ldGltZXMgY29uZnVzaW5nKSB0byB0aGUgY2FzdWFsIGluc3RhbGxlcgorKyAgLS1k aXNhYmxlLWxhcmdlZmlsZSAgICAgb21pdCBzdXBwb3J0IGZvciBsYXJnZSBmaWxlcworICAgLS1k aXNhYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgIHNwZWVkcyB1cCBvbmUtdGltZSBidWlsZAorICAg LS1lbmFibGUtZGVwZW5kZW5jeS10cmFja2luZyAgIGRvIG5vdCByZWplY3Qgc2xvdyBkZXBlbmRl bmN5IGV4dHJhY3RvcnMKKyAgIC0tZW5hYmxlLXRhcmdldHMgICAgICAgIGFsdGVybmF0aXZlIHRh cmdldCBjb25maWd1cmF0aW9ucworQEAgLTMzMTMsNiArMzMxNCwzNzAgQEAgX0FDRU9GCisgCisg CisgCisrIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWxhcmdlZmlsZSBvciAtLWRpc2FibGUtbGFy Z2VmaWxlIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9sYXJnZWZpbGUrc2V0fSIgPSBz ZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0iJGVuYWJsZV9sYXJnZWZpbGUiCisrCisrZmk7CisraWYg dGVzdCAiJGVuYWJsZV9sYXJnZWZpbGUiICE9IG5vOyB0aGVuCisrCisrICBlY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yIHNwZWNpYWwgQyBjb21waWxlciBvcHRpb25zIG5lZWRlZCBm b3IgbGFyZ2UgZmlsZXMiID4mNQorK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHNwZWNpYWwg QyBjb21waWxlciBvcHRpb25zIG5lZWRlZCBmb3IgbGFyZ2UgZmlsZXMuLi4gJEVDSE9fQyIgPiY2 CisraWYgdGVzdCAiJHthY19jdl9zeXNfbGFyZ2VmaWxlX0NDK3NldH0iID0gc2V0OyB0aGVuCisr ICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorK2Vsc2UKKysgIGFjX2N2X3N5 c19sYXJnZWZpbGVfQ0M9bm8KKysgICAgIGlmIHRlc3QgIiRHQ0MiICE9IHllczsgdGhlbgorKyAg ICAgICBhY19zYXZlX0NDPSRDQworKyAgICAgICB3aGlsZSA6OyBkbworKyAgICAgCSAjIElSSVgg Ni4yIGFuZCBsYXRlciBkbyBub3Qgc3VwcG9ydCBsYXJnZSBmaWxlcyBieSBkZWZhdWx0LAorKyAg ICAgCSAjIHNvIHVzZSB0aGUgQyBjb21waWxlcidzIC1uMzIgb3B0aW9uIGlmIHRoYXQgaGVscHMu CisrCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8K KytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRl IDxzeXMvdHlwZXMuaD4KKysgLyogQ2hlY2sgdGhhdCBvZmZfdCBjYW4gcmVwcmVzZW50IDIqKjYz IC0gMSBjb3JyZWN0bHkuCisrICAgIFdlIGNhbid0IHNpbXBseSBkZWZpbmUgTEFSR0VfT0ZGX1Qg dG8gYmUgOTIyMzM3MjAzNjg1NDc3NTgwNywKKysgICAgc2luY2Ugc29tZSBDKysgY29tcGlsZXJz IG1hc3F1ZXJhZGluZyBhcyBDIGNvbXBpbGVycworKyAgICBpbmNvcnJlY3RseSByZWplY3QgOTIy MzM3MjAzNjg1NDc3NTgwNy4gICovCisrI2RlZmluZSBMQVJHRV9PRkZfVCAoKChvZmZfdCkgMSA8 PCA2MikgLSAxICsgKChvZmZfdCkgMSA8PCA2MikpCisrICBpbnQgb2ZmX3RfaXNfbGFyZ2VbKExB UkdFX09GRl9UICUgMjE0NzQ4MzYyOSA9PSA3MjEKKysJCSAgICAgICAmJiBMQVJHRV9PRkZfVCAl IDIxNDc0ODM2NDcgPT0gMSkKKysJCSAgICAgID8gMSA6IC0xXTsKKytpbnQKKyttYWluICgpCisr eworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorKyAgICAgCSBybSAtZiBjb25m dGVzdC4kYWNfb2JqZXh0CisraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNf Y29tcGlsZVwiIikgPiY1CisrICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKysg IGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l cnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgIGVj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19z dGF0dXMpOyB9ICYmCisrCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisr CQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisrICB7IChldmFsIGVjaG8gIiRhc19tZTok TElORU5POiBcIiRhY190cnlcIiIpID4mNQorKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorKyAgYWNf c3RhdHVzPSQ/CisrICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorKwkgeyBhY190cnk9J3Rlc3QgLXMgY29u ZnRlc3QuJGFjX29iamV4dCcKKysgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFj X3RyeVwiIikgPiY1CisrICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysg IGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRh Y19zdGF0dXMpOyB9OyB9OyB0aGVuCisrICBicmVhaworK2Vsc2UKKysgIGVjaG8gIiRhc19tZTog ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0 ID4mNQorKworK2ZpCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQKKysg ICAgIAkgQ0M9IiRDQyAtbjMyIgorKyAgICAgCSBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Cisr aWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Cisr ICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAg Z3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0 ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgIGVjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisrCSB7 IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisrCQkJIHx8IHRlc3QgISAtcyBj b25mdGVzdC5lcnInCisrICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlc IiIpID4mNQorKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICBlY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfTsgfSAmJgorKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcK KysgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisrICAo ZXZhbCAkYWNfdHJ5KSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgIGVjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0 aGVuCisrICBhY19jdl9zeXNfbGFyZ2VmaWxlX0NDPScgLW4zMic7IGJyZWFrCisrZWxzZQorKyAg ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1CisrCisrZmkKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dAorKwkgYnJlYWsKKysgICAgICAgZG9uZQorKyAgICAgICBDQz0kYWNfc2F2ZV9D QworKyAgICAgICBybSAtZiBjb25mdGVzdC4kYWNfZXh0CisrICAgIGZpCisrZmkKKytlY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zfc3lzX2xhcmdlZmlsZV9DQyIgPiY1CisrZWNo byAiJHtFQ0hPX1R9JGFjX2N2X3N5c19sYXJnZWZpbGVfQ0MiID4mNgorKyAgaWYgdGVzdCAiJGFj X2N2X3N5c19sYXJnZWZpbGVfQ0MiICE9IG5vOyB0aGVuCisrICAgIENDPSRDQyRhY19jdl9zeXNf bGFyZ2VmaWxlX0NDCisrICBmaQorKworKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciBfRklMRV9PRkZTRVRfQklUUyB2YWx1ZSBuZWVkZWQgZm9yIGxhcmdlIGZpbGVzIiA+JjUK KytlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBfRklMRV9PRkZTRVRfQklUUyB2YWx1ZSBuZWVk ZWQgZm9yIGxhcmdlIGZpbGVzLi4uICRFQ0hPX0MiID4mNgorK2lmIHRlc3QgIiR7YWNfY3Zfc3lz X2ZpbGVfb2Zmc2V0X2JpdHMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVjaG8gJEVDSE9fTiAiKGNh Y2hlZCkgJEVDSE9fQyIgPiY2CisrZWxzZQorKyAgd2hpbGUgOjsgZG8KKysgIGFjX2N2X3N5c19m aWxlX29mZnNldF9iaXRzPW5vCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysv KiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRh Y19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZz LmguICAqLworKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKysgLyogQ2hlY2sgdGhhdCBvZmZfdCBj YW4gcmVwcmVzZW50IDIqKjYzIC0gMSBjb3JyZWN0bHkuCisrICAgIFdlIGNhbid0IHNpbXBseSBk ZWZpbmUgTEFSR0VfT0ZGX1QgdG8gYmUgOTIyMzM3MjAzNjg1NDc3NTgwNywKKysgICAgc2luY2Ug c29tZSBDKysgY29tcGlsZXJzIG1hc3F1ZXJhZGluZyBhcyBDIGNvbXBpbGVycworKyAgICBpbmNv cnJlY3RseSByZWplY3QgOTIyMzM3MjAzNjg1NDc3NTgwNy4gICovCisrI2RlZmluZSBMQVJHRV9P RkZfVCAoKChvZmZfdCkgMSA8PCA2MikgLSAxICsgKChvZmZfdCkgMSA8PCA2MikpCisrICBpbnQg b2ZmX3RfaXNfbGFyZ2VbKExBUkdFX09GRl9UICUgMjE0NzQ4MzYyOSA9PSA3MjEKKysJCSAgICAg ICAmJiBMQVJHRV9PRkZfVCAlIDIxNDc0ODM2NDcgPT0gMSkKKysJCSAgICAgID8gMSA6IC0xXTsK KytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgor K3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElO RU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKysgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0 ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg PmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJy ID4mNQorKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKysJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJy b3JfZmxhZyIKKysJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKysgIHsgKGV2YWwgZWNo byAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisrICAoZXZhbCAkYWNfdHJ5KSAy PiY1CisrICBhY19zdGF0dXM9JD8KKysgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisrCSB7IGFjX3RyeT0n dGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJ TkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKysgIChldmFsICRhY190cnkpIDI+JjUKKysgIGFjX3N0 YXR1cz0kPworKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQor KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKysgIGJyZWFrCisrZWxzZQorKyAgZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1CisrCisrZmkKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNv bmZkZWZzLmguICAqLworKyNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKKysjaW5jbHVkZSA8 c3lzL3R5cGVzLmg+CisrIC8qIENoZWNrIHRoYXQgb2ZmX3QgY2FuIHJlcHJlc2VudCAyKio2MyAt IDEgY29ycmVjdGx5LgorKyAgICBXZSBjYW4ndCBzaW1wbHkgZGVmaW5lIExBUkdFX09GRl9UIHRv IGJlIDkyMjMzNzIwMzY4NTQ3NzU4MDcsCisrICAgIHNpbmNlIHNvbWUgQysrIGNvbXBpbGVycyBt YXNxdWVyYWRpbmcgYXMgQyBjb21waWxlcnMKKysgICAgaW5jb3JyZWN0bHkgcmVqZWN0IDkyMjMz NzIwMzY4NTQ3NzU4MDcuICAqLworKyNkZWZpbmUgTEFSR0VfT0ZGX1QgKCgob2ZmX3QpIDEgPDwg NjIpIC0gMSArICgob2ZmX3QpIDEgPDwgNjIpKQorKyAgaW50IG9mZl90X2lzX2xhcmdlWyhMQVJH RV9PRkZfVCAlIDIxNDc0ODM2MjkgPT0gNzIxCisrCQkgICAgICAgJiYgTEFSR0VfT0ZGX1QgJSAy MTQ3NDgzNjQ3ID09IDEpCisrCQkgICAgICA/IDEgOiAtMV07CisraW50CisrbWFpbiAoKQorK3sK KysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNf b2JqZXh0CisraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwi IikgPiY1CisrICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1 cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJt IC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgIGVjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9 ICYmCisrCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisrCQkJIHx8IHRl c3QgISAtcyBjb25mdGVzdC5lcnInCisrICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBc IiRhY190cnlcIiIpID4mNQorKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/ CisrICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhp dCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFj X29iamV4dCcKKysgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikg PiY1CisrICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgIGVjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMp OyB9OyB9OyB0aGVuCisrICBhY19jdl9zeXNfZmlsZV9vZmZzZXRfYml0cz02NDsgYnJlYWsKKytl bHNlCisrICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9e L3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKytmaQorK3JtIC1mIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysgIGJyZWFrCisrZG9uZQorK2Zp CisrZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3N5c19maWxlX29mZnNldF9i aXRzIiA+JjUKKytlY2hvICIke0VDSE9fVH0kYWNfY3Zfc3lzX2ZpbGVfb2Zmc2V0X2JpdHMiID4m NgorK2lmIHRlc3QgIiRhY19jdl9zeXNfZmlsZV9vZmZzZXRfYml0cyIgIT0gbm87IHRoZW4KKysK KytjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyAk YWNfY3Zfc3lzX2ZpbGVfb2Zmc2V0X2JpdHMKKytfQUNFT0YKKysKKytmaQorK3JtIC1mIGNvbmZ0 ZXN0KgorKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBfTEFSR0VfRklMRVMg dmFsdWUgbmVlZGVkIGZvciBsYXJnZSBmaWxlcyIgPiY1CisrZWNobyAkRUNIT19OICJjaGVja2lu ZyBmb3IgX0xBUkdFX0ZJTEVTIHZhbHVlIG5lZWRlZCBmb3IgbGFyZ2UgZmlsZXMuLi4gJEVDSE9f QyIgPiY2CisraWYgdGVzdCAiJHthY19jdl9zeXNfbGFyZ2VfZmlsZXMrc2V0fSIgPSBzZXQ7IHRo ZW4KKysgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CisrZWxzZQorKyAgd2hp bGUgOjsgZG8KKysgIGFjX2N2X3N5c19sYXJnZV9maWxlcz1ubworKyAgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisrIC8q IENoZWNrIHRoYXQgb2ZmX3QgY2FuIHJlcHJlc2VudCAyKio2MyAtIDEgY29ycmVjdGx5LgorKyAg ICBXZSBjYW4ndCBzaW1wbHkgZGVmaW5lIExBUkdFX09GRl9UIHRvIGJlIDkyMjMzNzIwMzY4NTQ3 NzU4MDcsCisrICAgIHNpbmNlIHNvbWUgQysrIGNvbXBpbGVycyBtYXNxdWVyYWRpbmcgYXMgQyBj b21waWxlcnMKKysgICAgaW5jb3JyZWN0bHkgcmVqZWN0IDkyMjMzNzIwMzY4NTQ3NzU4MDcuICAq LworKyNkZWZpbmUgTEFSR0VfT0ZGX1QgKCgob2ZmX3QpIDEgPDwgNjIpIC0gMSArICgob2ZmX3Qp IDEgPDwgNjIpKQorKyAgaW50IG9mZl90X2lzX2xhcmdlWyhMQVJHRV9PRkZfVCAlIDIxNDc0ODM2 MjkgPT0gNzIxCisrCQkgICAgICAgJiYgTEFSR0VfT0ZGX1QgJSAyMTQ3NDgzNjQ3ID09IDEpCisr CQkgICAgICA/IDEgOiAtMV07CisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVy biAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoZXZh bCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisrICAoZXZhbCAk YWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAn XiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQor KyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisrCSB7IGFjX3RyeT0n dGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisrCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5l cnInCisrICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQor KyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICBlY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsg fSAmJgorKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKysgIHsgKGV2 YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisrICAoZXZhbCAkYWNf dHJ5KSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisrICBi cmVhaworK2Vsc2UKKysgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisr c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworK2ZpCisrcm0gLWYgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKyAgY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjZGVmaW5lIF9MQVJHRV9GSUxFUyAx CisrI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorKyAvKiBDaGVjayB0aGF0IG9mZl90IGNhbiByZXBy ZXNlbnQgMioqNjMgLSAxIGNvcnJlY3RseS4KKysgICAgV2UgY2FuJ3Qgc2ltcGx5IGRlZmluZSBM QVJHRV9PRkZfVCB0byBiZSA5MjIzMzcyMDM2ODU0Nzc1ODA3LAorKyAgICBzaW5jZSBzb21lIEMr KyBjb21waWxlcnMgbWFzcXVlcmFkaW5nIGFzIEMgY29tcGlsZXJzCisrICAgIGluY29ycmVjdGx5 IHJlamVjdCA5MjIzMzcyMDM2ODU0Nzc1ODA3LiAgKi8KKysjZGVmaW5lIExBUkdFX09GRl9UICgo KG9mZl90KSAxIDw8IDYyKSAtIDEgKyAoKG9mZl90KSAxIDw8IDYyKSkKKysgIGludCBvZmZfdF9p c19sYXJnZVsoTEFSR0VfT0ZGX1QgJSAyMTQ3NDgzNjI5ID09IDcyMQorKwkJICAgICAgICYmIExB UkdFX09GRl9UICUgMjE0NzQ4MzY0NyA9PSAxKQorKwkJICAgICAgPyAxIDogLTFdOworK2ludAor K21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYg Y29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwi JGFjX2NvbXBpbGVcIiIpID4mNQorKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIx CisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRl c3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1Cisr ICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJgorKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFn IgorKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworKyAgeyAoZXZhbCBlY2hvICIkYXNf bWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKysgIChldmFsICRhY190cnkpIDI+JjUKKysg IGFjX3N0YXR1cz0kPworKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKysJIHsgYWNfdHJ5PSd0ZXN0IC1z IGNvbmZ0ZXN0LiRhY19vYmpleHQnCisrICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBc IiRhY190cnlcIiIpID4mNQorKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/ CisrICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhp dCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorKyAgYWNfY3Zfc3lzX2xhcmdlX2ZpbGVzPTE7IGJy ZWFrCisrZWxzZQorKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrZmkKKytybSAtZiBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrICBicmVhaworK2Rv bmUKKytmaQorK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9zeXNfbGFyZ2Vf ZmlsZXMiID4mNQorK2VjaG8gIiR7RUNIT19UfSRhY19jdl9zeXNfbGFyZ2VfZmlsZXMiID4mNgor K2lmIHRlc3QgIiRhY19jdl9zeXNfbGFyZ2VfZmlsZXMiICE9IG5vOyB0aGVuCisrCisrY2F0ID4+ Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUgX0xBUkdFX0ZJTEVTICRhY19jdl9zeXNfbGFy Z2VfZmlsZXMKKytfQUNFT0YKKysKKytmaQorK3JtIC1mIGNvbmZ0ZXN0KgorK2ZpCisrCisgCisg CisgCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuOC1mb3J0cmFuLXRhZy1jb25zdGFudC5wYXRjaCBiL2dk Yi02LjgtZm9ydHJhbi10YWctY29uc3RhbnQucGF0Y2gKaW5kZXggYTJhNjkzZS4uNTE0MGQyNSAx MDA2NDQKLS0tIGEvZ2RiLTYuOC1mb3J0cmFuLXRhZy1jb25zdGFudC5wYXRjaAorKysgYi9nZGIt Ni44LWZvcnRyYW4tdGFnLWNvbnN0YW50LnBhdGNoCkBAIC0xLDggKzEsOCBAQAotSW5kZXg6IGdk Yi02LjguNTAuMjAwOTAyMTAvZ2RiL2R3YXJmMnJlYWQuYworSW5kZXg6IGdkYi02LjguNTAuMjAw OTAyMjgvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTAy MTAub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMDktMDItMTEgMDE6MjU6NDUuMDAwMDAwMDAwICsw MTAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDIxMC9nZGIvZHdhcmYycmVhZC5jCTIwMDktMDItMTEg MDE6MjY6MjUuMDAwMDAwMDAwICswMTAwCi1AQCAtMTg0NSw2ICsxODQ1LDcgQEAgc2Nhbl9wYXJ0 aWFsX3N5bWJvbHMgKHN0cnVjdCBwYXJ0aWFsX2RpZQorLS0tIGdkYi02LjguNTAuMjAwOTAyMjgu b3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMDktMDMtMDIgMDE6MDc6MzYuMDAwMDAwMDAwICswMTAw CisrKysgZ2RiLTYuOC41MC4yMDA5MDIyOC9nZGIvZHdhcmYycmVhZC5jCTIwMDktMDMtMDIgMDE6 MDc6NTAuMDAwMDAwMDAwICswMTAwCitAQCAtMTk5Niw2ICsxOTk2LDcgQEAgc2Nhbl9wYXJ0aWFs X3N5bWJvbHMgKHN0cnVjdCBwYXJ0aWFsX2RpZQogIAkgICAgICBhZGRfcGFydGlhbF9zdWJwcm9n cmFtIChwZGksIGxvd3BjLCBoaWdocGMsIG5lZWRfcGMsIGN1KTsKICAJICAgICAgYnJlYWs7CiAg CSAgICBjYXNlIERXX1RBR192YXJpYWJsZToKQEAgLTEwLDcgKzEwLDcgQEAgSW5kZXg6IGdkYi02 LjguNTAuMjAwOTAyMTAvZ2RiL2R3YXJmMnJlYWQuYwogIAkgICAgY2FzZSBEV19UQUdfdHlwZWRl ZjoKICAJICAgIGNhc2UgRFdfVEFHX3VuaW9uX3R5cGU6CiAgCSAgICAgIGlmICghcGRpLT5pc19k ZWNsYXJhdGlvbikKLUBAIC0yMDMwLDYgKzIwMzEsNyBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0 cnVjdCBwYXJ0aWFsX2RpZV9pCitAQCAtMjIxMSw2ICsyMjEyLDcgQEAgYWRkX3BhcnRpYWxfc3lt Ym9sIChzdHJ1Y3QgcGFydGlhbF9kaWVfaQogIAl9CiAgICAgICAgYnJlYWs7CiAgICAgIGNhc2Ug RFdfVEFHX3ZhcmlhYmxlOgpAQCAtMTgsMTUgKzE4LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAw OTAyMTAvZ2RiL2R3YXJmMnJlYWQuYwogICAgICAgIGlmIChwZGktPmlzX2V4dGVybmFsKQogIAl7 CiAgCSAgLyogR2xvYmFsIFZhcmlhYmxlLgotQEAgLTI4OTUsNiArMjg5Nyw3IEBAIGR3YXJmMl9m dWxsX25hbWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCAKLSAgIGlmICghcGRpX25lZWRzX25hbWVz cGFjZSAoZGllLT50YWcpCi0gICAgICAgJiYgZGllLT50YWcgIT0gRFdfVEFHX3N1YnByb2dyYW0K LSAgICAgICAmJiBkaWUtPnRhZyAhPSBEV19UQUdfdmFyaWFibGUKLSsgICAgICAmJiBkaWUtPnRh ZyAhPSBEV19UQUdfY29uc3RhbnQKLSAgICAgICAmJiBkaWUtPnRhZyAhPSBEV19UQUdfbWVtYmVy KQotICAgICByZXR1cm4gbmFtZTsKLSAKLUBAIC0zNzM1LDcgKzM3MzgsOCBAQCBkd2FyZjJfYWRk X2ZpZWxkIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwCitAQCAtNDIxMyw3ICs0MjE1LDggQEAgZHdh cmYyX2FkZF9maWVsZCAoc3RydWN0IGZpZWxkX2luZm8gKmZpcAogIAkgIGZpcC0+bm9uX3B1Ymxp Y19maWVsZHMgPSAxOwogIAl9CiAgICAgIH0KQEAgLTM2LDcgKzI4LDcgQEAgSW5kZXg6IGdkYi02 LjguNTAuMjAwOTAyMTAvZ2RiL2R3YXJmMnJlYWQuYwogICAgICB7CiAgICAgICAgLyogQysrIHN0 YXRpYyBtZW1iZXIuICAqLwogIAotQEAgLTQyMTMsNyArNDIxNyw4IEBAIHJlYWRfc3RydWN0dXJl X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGkKK0BAIC00NzAzLDcgKzQ3MDYsOCBAQCByZWFkX3N0 cnVjdHVyZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpCiAgICAgICAgd2hpbGUgKGNoaWxkX2Rp ZSAmJiBjaGlsZF9kaWUtPnRhZykKICAJewogIAkgIGlmIChjaGlsZF9kaWUtPnRhZyA9PSBEV19U QUdfbWVtYmVyCkBAIC00Niw3ICszOCw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwMjEwL2dk Yi9kd2FyZjJyZWFkLmMKICAJICAgIHsKICAJICAgICAgLyogTk9URTogY2FybHRvbi8yMDAyLTEx LTA1OiBBIEMrKyBzdGF0aWMgZGF0YSBtZW1iZXIKICAJCSBzaG91bGQgYmUgYSBEV19UQUdfbWVt YmVyIHRoYXQgaXMgYSBkZWNsYXJhdGlvbiwgYnV0Ci1AQCAtNDMzMiw2ICs0MzM3LDcgQEAgcHJv Y2Vzc19zdHJ1Y3R1cmVfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbworQEAgLTQ4MjIsNiArNDgyNiw3 IEBAIHByb2Nlc3Nfc3RydWN0dXJlX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8KICAgICAgewogICAg ICAgIGlmIChjaGlsZF9kaWUtPnRhZyA9PSBEV19UQUdfbWVtYmVyCiAgCSAgfHwgY2hpbGRfZGll LT50YWcgPT0gRFdfVEFHX3ZhcmlhYmxlCkBAIC01NCw3ICs0Niw3IEBAIEluZGV4OiBnZGItNi44 LjUwLjIwMDkwMjEwL2dkYi9kd2FyZjJyZWFkLmMKICAJICB8fCBjaGlsZF9kaWUtPnRhZyA9PSBE V19UQUdfaW5oZXJpdGFuY2UpCiAgCXsKICAJICAvKiBEbyBub3RoaW5nLiAgKi8KLUBAIC01ODYy LDYgKzU4NjgsNyBAQCBsb2FkX3BhcnRpYWxfZGllcyAoYmZkICphYmZkLCBnZGJfYnl0ZSAqCitA QCAtNjQ1NSw2ICs2NDYwLDcgQEAgbG9hZF9wYXJ0aWFsX2RpZXMgKGJmZCAqYWJmZCwgZ2RiX2J5 dGUgKgogIAkgICYmIGFiYnJldi0+dGFnICE9IERXX1RBR19zdWJwcm9ncmFtCiAgCSAgJiYgYWJi cmV2LT50YWcgIT0gRFdfVEFHX2xleGljYWxfYmxvY2sKICAJICAmJiBhYmJyZXYtPnRhZyAhPSBE V19UQUdfdmFyaWFibGUKQEAgLTYyLDcgKzU0LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAy MTAvZ2RiL2R3YXJmMnJlYWQuYwogIAkgICYmIGFiYnJldi0+dGFnICE9IERXX1RBR19uYW1lc3Bh Y2UKICAJICAmJiBhYmJyZXYtPnRhZyAhPSBEV19UQUdfbWVtYmVyKQogIAl7Ci1AQCAtNTk2OSw2 ICs1OTc2LDcgQEAgbG9hZF9wYXJ0aWFsX2RpZXMgKGJmZCAqYWJmZCwgZ2RiX2J5dGUgKgorQEAg LTY1NjIsNiArNjU2OCw3IEBAIGxvYWRfcGFydGlhbF9kaWVzIChiZmQgKmFiZmQsIGdkYl9ieXRl ICoKICAgICAgICBpZiAobG9hZF9hbGwKICAJICB8fCBhYmJyZXYtPnRhZyA9PSBEV19UQUdfc3Vi cHJvZ3JhbQogIAkgIHx8IGFiYnJldi0+dGFnID09IERXX1RBR192YXJpYWJsZQpAQCAtNzAsNyAr NjIsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIxMC9nZGIvZHdhcmYycmVhZC5jCiAgCSAg fHwgYWJicmV2LT50YWcgPT0gRFdfVEFHX25hbWVzcGFjZQogIAkgIHx8IHBhcnRfZGllLT5pc19k ZWNsYXJhdGlvbikKICAJewotQEAgLTc3NTksNiArNzc2NywxMSBAQCBuZXdfc3ltYm9sIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0CitAQCAtODM0MSw2ICs4MzQ4LDExIEBAIG5ld19zeW1i b2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QKICAJICAvKiBEbyBub3QgYWRkIHRoZSBz eW1ib2wgdG8gYW55IGxpc3RzLiAgSXQgd2lsbCBiZSBmb3VuZCB2aWEKICAJICAgICBCTE9DS19G VU5DVElPTiBmcm9tIHRoZSBibG9ja3ZlY3Rvci4gICovCiAgCSAgYnJlYWs7CgpkaWZmIC0tZ2l0 IGEvZ2RiLTYuOC1pbmxpbmluZy5wYXRjaCBiL2dkYi02LjgtaW5saW5pbmcucGF0Y2gKaW5kZXgg MTVkZjZkNi4uMmU2ODhlZiAxMDA2NDQKLS0tIGEvZ2RiLTYuOC1pbmxpbmluZy5wYXRjaAorKysg Yi9nZGItNi44LWlubGluaW5nLnBhdGNoCkBAIC01LDEwICs1LDEwIEBAIGh0dHA6Ly9zb3VyY2V3 YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDA4LTA3L21zZzAwMzE3Lmh0bWwKIAogUmVtb3ZlZCBk d2FyZl9leHByX2ZyYW1lX2Jhc2UgTlVMTCBjaGVjayBkdXBsaWNpdHkgd2l0aCAqLXZsYS5wYXRj aC4KIAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL05FV1MKK0luZGV4OiBnZGItNi44 LjUwLjIwMDkwMjI4L2dkYi9ORVdTCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDIy Ni5vcmlnL2dkYi9ORVdTCTIwMDktMDItMjcgMDA6MDQ6MzIuMDAwMDAwMDAwICswMTAwCi0rKysg Z2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvTkVXUwkyMDA5LTAyLTI4IDA3OjM0OjI5LjAwMDAwMDAw MCArMDEwMAorLS0tIGdkYi02LjguNTAuMjAwOTAyMjgub3JpZy9nZGIvTkVXUwkyMDA5LTAzLTAy IDAxOjAxOjE1LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi02LjguNTAuMjAwOTAyMjgvZ2RiL05F V1MJMjAwOS0wMy0wMiAwMTowNDo0NS4wMDAwMDAwMDAgKzAxMDAKIEBAIC0xLDYgKzEsMTEgQEAK ICAJCVdoYXQgaGFzIGNoYW5nZWQgaW4gR0RCPwogIAkgICAgIChPcmdhbml6ZWQgcmVsZWFzZSBi eSByZWxlYXNlKQpAQCAtMjEsMTAgKzIxLDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2 L2dkYi9ORVdTCiAgKioqIENoYW5nZXMgc2luY2UgR0RCIDYuOAogIAogICogR0RCIG5vdyBoYXMg c3VwcG9ydCBmb3IgbXVsdGktYnl0ZSBhbmQgd2lkZSBjaGFyYWN0ZXIgc2V0cyBvbiB0aGUKLUlu ZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi9ibG9jay5jCitJbmRleDogZ2RiLTYuOC41MC4y MDA5MDIyOC9nZGIvYmxvY2suYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTAyMjYu b3JpZy9nZGIvYmxvY2suYwkyMDA5LTAxLTAzIDA2OjU3OjUwLjAwMDAwMDAwMCArMDEwMAotKysr IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL2Jsb2NrLmMJMjAwOS0wMi0yOCAwNzozNDowOS4wMDAw MDAwMDAgKzAxMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwMjI4Lm9yaWcvZ2RiL2Jsb2NrLmMJMjAw OS0wMy0wMiAwMTowMToxNS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNi44LjUwLjIwMDkwMjI4 L2dkYi9ibG9jay5jCTIwMDktMDMtMDIgMDE6MDQ6NDUuMDAwMDAwMDAwICswMTAwCiBAQCAtNDcs OCArNDcsMTYgQEAgY29udGFpbmVkX2luIChjb25zdCBzdHJ1Y3QgYmxvY2sgKmEsIGNvbgogIHsK ICAgIGlmICghYSB8fCAhYikKQEAgLTY3LDEwICs2NywxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4y MDA5MDIyNi9nZGIvYmxvY2suYwogIC8qIFJldHVybiB0aGUgYmxvY2t2ZWN0b3IgaW1tZWRpYXRl bHkgY29udGFpbmluZyB0aGUgaW5uZXJtb3N0IGxleGljYWwKICAgICBibG9jayBjb250YWluaW5n IHRoZSBzcGVjaWZpZWQgcGMgdmFsdWUgYW5kIHNlY3Rpb24sIG9yIDAgaWYgdGhlcmUKICAgICBp cyBub25lLiAgUEJMT0NLIGlzIGEgcG9pbnRlciB0byB0aGUgYmxvY2suICBJZiBQQkxPQ0sgaXMg TlVMTCwgd2UKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi9ibG9jay5oCitJbmRleDog Z2RiLTYuOC41MC4yMDA5MDIyOC9nZGIvYmxvY2suaAogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02Ljgu NTAuMjAwOTAyMjYub3JpZy9nZGIvYmxvY2suaAkyMDA5LTAxLTAzIDA2OjU3OjUwLjAwMDAwMDAw MCArMDEwMAotKysrIGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL2Jsb2NrLmgJMjAwOS0wMi0yOCAw NzozNDowOS4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwMjI4Lm9yaWcvZ2Ri L2Jsb2NrLmgJMjAwOS0wMS0wMyAwNjo1Nzo1MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNi44 LjUwLjIwMDkwMjI4L2dkYi9ibG9jay5oCTIwMDktMDMtMDIgMDE6MDQ6NDUuMDAwMDAwMDAwICsw MTAwCiBAQCAtNjUsNyArNjUsNyBAQCBzdHJ1Y3QgYmxvY2sKICAgIENPUkVfQUREUiBlbmRhZGRy OwogIApAQCAtODksMTAgKzg5LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi9i bG9jay5oCiAgZXh0ZXJuIGludCBjb250YWluZWRfaW4gKGNvbnN0IHN0cnVjdCBibG9jayAqLCBj b25zdCBzdHJ1Y3QgYmxvY2sgKik7CiAgCiAgZXh0ZXJuIHN0cnVjdCBibG9ja3ZlY3RvciAqYmxv Y2t2ZWN0b3JfZm9yX3BjIChDT1JFX0FERFIsIHN0cnVjdCBibG9jayAqKik7Ci1JbmRleDogZ2Ri LTYuOC41MC4yMDA5MDIyNi9nZGIvYmxvY2tmcmFtZS5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5 MDIyOC9nZGIvYmxvY2tmcmFtZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDIy Ni5vcmlnL2dkYi9ibG9ja2ZyYW1lLmMJMjAwOS0wMS0wMyAwNjo1Nzo1MC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi9ibG9ja2ZyYW1lLmMJMjAwOS0wMi0yOCAw NzozNDowOS4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwMjI4Lm9yaWcvZ2Ri L2Jsb2NrZnJhbWUuYwkyMDA5LTAxLTAzIDA2OjU3OjUwLjAwMDAwMDAwMCArMDEwMAorKysrIGdk Yi02LjguNTAuMjAwOTAyMjgvZ2RiL2Jsb2NrZnJhbWUuYwkyMDA5LTAzLTAyIDAxOjA0OjQ1LjAw MDAwMDAwMCArMDEwMAogQEAgLTM2LDYgKzM2LDcgQEAKICAjaW5jbHVkZSAiY29tbWFuZC5oIgog ICNpbmNsdWRlICJnZGJjbWQuaCIKQEAgLTE2MSwxMCArMTYxLDEwIEBAIEluZGV4OiBnZGItNi44 LjUwLjIwMDkwMjI2L2dkYi9ibG9ja2ZyYW1lLmMKICAJcmV0dXJuIGZyYW1lOwogIAogICAgICAg IGZyYW1lID0gZ2V0X3ByZXZfZnJhbWUgKGZyYW1lKTsKLUluZGV4OiBnZGItNi44LjUwLjIwMDkw MjI2L2dkYi9icmVha3BvaW50LmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi9icmVh a3BvaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwMjI2Lm9yaWcvZ2RiL2Jy ZWFrcG9pbnQuYwkyMDA5LTAyLTI4IDA3OjMzOjQ3LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi02 LjguNTAuMjAwOTAyMjYvZ2RiL2JyZWFrcG9pbnQuYwkyMDA5LTAyLTI4IDA3OjM0OjA5LjAwMDAw MDAwMCArMDEwMAorLS0tIGdkYi02LjguNTAuMjAwOTAyMjgub3JpZy9nZGIvYnJlYWtwb2ludC5j CTIwMDktMDMtMDIgMDE6MDQ6MzMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTYuOC41MC4yMDA5 MDIyOC9nZGIvYnJlYWtwb2ludC5jCTIwMDktMDMtMDIgMDE6MDQ6NDUuMDAwMDAwMDAwICswMTAw CiBAQCAtMjY0MSwxOSArMjY0MSwyMSBAQCB3YXRjaHBvaW50X2NoZWNrICh2b2lkICpwKQogICAg ICB3aXRoaW5fY3VycmVudF9zY29wZSA9IDE7CiAgICBlbHNlCkBAIC0zNDIsMTEgKzM0MiwxMSBA QCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvYnJlYWtwb2ludC5jCiAgCQkJCQkgICAg ICBicF91bnRpbCk7CiAgICAgICAgbWFrZV9jbGVhbnVwX2RlbGV0ZV9icmVha3BvaW50IChicmVh a3BvaW50Mik7CiAgICAgIH0KLUluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi9idWlsZHN5 bS5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyOC9nZGIvYnVpbGRzeW0uYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi02LjguNTAuMjAwOTAyMjYub3JpZy9nZGIvYnVpbGRzeW0uYwkyMDA5LTAxLTAz IDA2OjU3OjUwLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL2J1 aWxkc3ltLmMJMjAwOS0wMi0yOCAwNzozNDowOS4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xMTU5LDYg KzExNTksMTIgQEAgZW5kX3N5bXRhYiAoQ09SRV9BRERSIGVuZF9hZGRyLCBzdHJ1Y3QgbworLS0t IGdkYi02LjguNTAuMjAwOTAyMjgub3JpZy9nZGIvYnVpbGRzeW0uYwkyMDA5LTAzLTAyIDAxOjAx OjE1LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi02LjguNTAuMjAwOTAyMjgvZ2RiL2J1aWxkc3lt LmMJMjAwOS0wMy0wMiAwMTowNDo0NS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xMTU1LDYgKzExNTUs MTIgQEAgZW5kX3N5bXRhYiAoQ09SRV9BRERSIGVuZF9hZGRyLCBzdHJ1Y3QgbwogIAkgIHN0cnVj dCBzeW1ib2wgKnN5bTsKICAJICBzdHJ1Y3QgZGljdF9pdGVyYXRvciBpdGVyOwogIApAQCAtMzU5 LDEwICszNTksMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL2J1aWxkc3ltLmMK ICAJICBmb3IgKHN5bSA9IGRpY3RfaXRlcmF0b3JfZmlyc3QgKEJMT0NLX0RJQ1QgKGJsb2NrKSwg Jml0ZXIpOwogIAkgICAgICAgc3ltICE9IE5VTEw7CiAgCSAgICAgICBzeW0gPSBkaWN0X2l0ZXJh dG9yX25leHQgKCZpdGVyKSkKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi9kb2MvZ2Ri LnRleGluZm8KK0luZGV4OiBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi9kb2MvZ2RiLnRleGluZm8K ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwMjI2Lm9yaWcvZ2RiL2RvYy9nZGIudGV4 aW5mbwkyMDA5LTAyLTI4IDA3OjMzOjQ3LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi02LjguNTAu MjAwOTAyMjYvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDA5LTAyLTI4IDA3OjM0OjA5LjAwMDAwMDAw MCArMDEwMAorLS0tIGdkYi02LjguNTAuMjAwOTAyMjgub3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZv CTIwMDktMDMtMDIgMDE6MDQ6MzMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTYuOC41MC4yMDA5 MDIyOC9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMDktMDMtMDIgMDE6MDQ6NDUuMDAwMDAwMDAwICsw MTAwCiBAQCAtMTM3LDYgKzEzNyw3IEBAIHNvZnR3YXJlIGluIGdlbmVyYWwuICBXZSB3aWxsIG1p c3MgaGltLgogICogU3RhY2s6OiAgICAgICAgICAgICAgICAgICAgICAgRXhhbWluaW5nIHRoZSBz dGFjawogICogU291cmNlOjogICAgICAgICAgICAgICAgICAgICAgRXhhbWluaW5nIHNvdXJjZSBm aWxlcwpAQCAtNTEyLDEwICs1MTIsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2Ri L2RvYy9nZGIudGV4aW5mbwogIEBub2RlIE1hY3JvcwogIEBjaGFwdGVyIEMgUHJlcHJvY2Vzc29y IE1hY3JvcwogIAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL2R3YXJmMmxvYy5jCitJ bmRleDogZ2RiLTYuOC41MC4yMDA5MDIyOC9nZGIvZHdhcmYybG9jLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNi44LjUwLjIwMDkwMjI2Lm9yaWcvZ2RiL2R3YXJmMmxvYy5jCTIwMDktMDItMjcgMDA6 MDQ6MzIuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvZHdhcmYy bG9jLmMJMjAwOS0wMi0yOCAwNzozNDowOS4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNi44LjUw LjIwMDkwMjI4Lm9yaWcvZ2RiL2R3YXJmMmxvYy5jCTIwMDktMDMtMDIgMDE6MDE6MTUuMDAwMDAw MDAwICswMTAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDIyOC9nZGIvZHdhcmYybG9jLmMJMjAwOS0w My0wMiAwMTowNDo0NS4wMDAwMDAwMDAgKzAxMDAKIEBAIC0zMSw2ICszMSw3IEBACiAgI2luY2x1 ZGUgInJlZ2NhY2hlLmgiCiAgI2luY2x1ZGUgIm9iamZpbGVzLmgiCkBAIC01MzYsMTkgKzUzNiwx OSBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvZHdhcmYybG9jLmMKICAKICAgIC8q IElmIHdlIGZvdW5kIGEgZnJhbWUtcmVsYXRpdmUgc3ltYm9sIHRoZW4gaXQgd2FzIGNlcnRhaW5s eSB3aXRoaW4KICAgICAgIHNvbWUgZnVuY3Rpb24gYXNzb2NpYXRlZCB3aXRoIGEgZnJhbWUuIElm IHdlIGNhbid0IGZpbmQgdGhlIGZyYW1lLAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2Ri L2R3YXJmMnJlYWQuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjgvZ2RiL2R3YXJmMnJlYWQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTAyMjYub3JpZy9nZGIvZHdhcmYycmVh ZC5jCTIwMDktMDItMjggMDc6MzM6NDcuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTYuOC41MC4y MDA5MDIyNi9nZGIvZHdhcmYycmVhZC5jCTIwMDktMDItMjggMDc6MzY6NDUuMDAwMDAwMDAwICsw MTAwCi1AQCAtNDksNiArNDksNyBAQAotICNpbmNsdWRlICJhZGRybWFwLmgiCi0gI2luY2x1ZGUg ImYtbGFuZy5oIgorLS0tIGdkYi02LjguNTAuMjAwOTAyMjgub3JpZy9nZGIvZHdhcmYycmVhZC5j CTIwMDktMDMtMDIgMDE6MDQ6MzIuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTYuOC41MC4yMDA5 MDIyOC9nZGIvZHdhcmYycmVhZC5jCTIwMDktMDMtMDIgMDE6MDc6MzYuMDAwMDAwMDAwICswMTAw CitAQCAtNTAsNiArNTAsNyBAQAorICNpbmNsdWRlICJjLWxhbmcuaCIKKyAjaW5jbHVkZSAidHlw ZXByaW50LmgiCiAgI2luY2x1ZGUgInRvcC5oIgogKyNpbmNsdWRlICJibG9jay5oIgogIAogICNp bmNsdWRlIDxmY250bC5oPgogICNpbmNsdWRlICJnZGJfc3RyaW5nLmgiCi1AQCAtMjk0NywxMiAr Mjk0OCw4IEBAIHByb2Nlc3NfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWMKK0BAIC0y OTg0LDEyICsyOTg1LDggQEAgcHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 YwogICAgICAgIHJlYWRfZmlsZV9zY29wZSAoZGllLCBjdSk7CiAgICAgICAgYnJlYWs7CiAgICAg IGNhc2UgRFdfVEFHX3N1YnByb2dyYW06CkBAIC01NjIsMTAgKzU2MiwxMCBAQCBJbmRleDogZ2Ri LTYuOC41MC4yMDA5MDIyNi9nZGIvZHdhcmYycmVhZC5jCiAgICAgICAgYnJlYWs7CiAgICAgIGNh c2UgRFdfVEFHX2xleGljYWxfYmxvY2s6CiAgICAgIGNhc2UgRFdfVEFHX3RyeV9ibG9jazoKLUBA IC0zMjMzLDYgKzMyMzAsMjIgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgcworQEAgLTM0NjQsNiArMzQ2MSwyMiBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzCiAgICBDT1JFX0FERFIgYmFzZWFkZHI7CiAgICBzdHJ1Y3QgYmxvY2sgKmJs b2NrOwotICAgdW5zaWduZWQgZGllX2NoaWxkcmVuOworICAgdW5zaWduZWQgZGllX2NoaWxkcmVu ID0gMDsKICsgIHN0cnVjdCBhdHRyaWJ1dGUgKmNhbGxfbGluZSwgKmNhbGxfZmlsZTsKICsgIGlu dCBpbmxpbmVkX2Z1bmMgPSAoZGllLT50YWcgPT0gRFdfVEFHX2lubGluZWRfc3Vicm91dGluZSk7 CiArCkBAIC01ODUsNyArNTg1LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL2R3 YXJmMnJlYWQuYwogIAogICAgYmFzZWFkZHIgPSBBTk9GRlNFVCAob2JqZmlsZS0+c2VjdGlvbl9v ZmZzZXRzLCBTRUNUX09GRl9URVhUIChvYmpmaWxlKSk7CiAgCi1AQCAtNzMxMCw2ICs3MzIzLDkg QEAgZGllX3NwZWNpZmljYXRpb24gKHN0cnVjdCBkaWVfaW5mbyAqZGllLAorQEAgLTc1MjYsNiAr NzUzOSw5IEBAIGRpZV9zcGVjaWZpY2F0aW9uIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAJCQkJ CSAgICAgKnNwZWNfY3UpOwogIAogICAgaWYgKHNwZWNfYXR0ciA9PSBOVUxMKQpAQCAtNTk1LDcg KzU5NSw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi9kd2FyZjJyZWFkLmMKICAg ICAgcmV0dXJuIE5VTEw7CiAgICBlbHNlCiAgICAgIHJldHVybiBmb2xsb3dfZGllX3JlZiAoZGll LCBzcGVjX2F0dHIsIHNwZWNfY3UpOwotQEAgLTc5OTMsNiArODAwOSw3IEBAIG5ld19zeW1ib2wg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QKK0BAIC04MjA5LDYgKzgyMjUsNyBAQCBuZXdf c3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0CiAgICBzdHJ1Y3QgYXR0cmlidXRl ICphdHRyID0gTlVMTDsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIyID0gTlVMTDsKICAgIENP UkVfQUREUiBiYXNlYWRkcjsKQEAgLTYwMyw3ICs2MDMsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4y MDA5MDIyNi9nZGIvZHdhcmYycmVhZC5jCiAgCiAgICBiYXNlYWRkciA9IEFOT0ZGU0VUIChvYmpm aWxlLT5zZWN0aW9uX29mZnNldHMsIFNFQ1RfT0ZGX1RFWFQgKG9iamZpbGUpKTsKICAKLUBAIC04 MDIyLDEzICs4MDM5LDE3IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QKK0BAIC04MjU5LDEzICs4Mjc2LDE3IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QKICAJU1lNQk9MX1RZUEUgKHN5bSkgPSB0eXBlOwogICAgICAgIGVsc2UKICAJ U1lNQk9MX1RZUEUgKHN5bSkgPSBkaWVfdHlwZSAoZGllLCBjdSk7CkBAIC02MjMsNyArNjIzLDcg QEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL2R3YXJmMnJlYWQuYwogICAgICAgIGlm IChhdHRyKQogIAl7CiAgCSAgaW50IGZpbGVfaW5kZXggPSBEV19VTlNORCAoYXR0cik7Ci1AQCAt ODA3NSw2ICs4MDk2LDE0IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QKK0BAIC04MzEyLDYgKzgzMzMsMTQgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdAogIAkgICAgICBhZGRfc3ltYm9sX3RvX2xpc3QgKHN5bSwgY3UtPmxpc3RfaW5f c2NvcGUpOwogIAkgICAgfQogIAkgIGJyZWFrOwpAQCAtNjM4LDcgKzYzOCw3IEBAIEluZGV4OiBn ZGItNi44LjUwLjIwMDkwMjI2L2dkYi9kd2FyZjJyZWFkLmMKICAJY2FzZSBEV19UQUdfdmFyaWFi bGU6CiAgCSAgLyogQ29tcGlsYXRpb24gd2l0aCBtaW5pbWFsIGRlYnVnIGluZm8gbWF5IHJlc3Vs dCBpbiB2YXJpYWJsZXMKICAJICAgICB3aXRoIG1pc3NpbmcgdHlwZSBlbnRyaWVzLiBDaGFuZ2Ug dGhlIG1pc2xlYWRpbmcgYHZvaWQnIHR5cGUKLUBAIC04MTMwLDcgKzgxNTksMTQgQEAgbmV3X3N5 bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdAorQEAgLTgzNjcsNyArODM5NiwxNCBA QCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0CiAgCSAgICB9CiAgCSAg YnJlYWs7CiAgCWNhc2UgRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXI6CkBAIC02NTQsMTAgKzY1NCwx MCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvZHdhcmYycmVhZC5jCiAgCSAgYXR0 ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2xvY2F0aW9uLCBjdSk7CiAgCSAgaWYgKGF0dHIp CiAgCSAgICB7Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvZnJhbWUtdW53aW5kLmMK K0luZGV4OiBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi9mcmFtZS11bndpbmQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi02LjguNTAuMjAwOTAyMjYub3JpZy9nZGIvZnJhbWUtdW53aW5kLmMJMjAwOS0w MS0wMyAwNjo1Nzo1MS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwMjI2L2dk Yi9mcmFtZS11bndpbmQuYwkyMDA5LTAyLTI4IDA3OjM0OjA5LjAwMDAwMDAwMCArMDEwMAorLS0t IGdkYi02LjguNTAuMjAwOTAyMjgub3JpZy9nZGIvZnJhbWUtdW53aW5kLmMJMjAwOS0wMS0wMyAw Njo1Nzo1MS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi9mcmFt ZS11bndpbmQuYwkyMDA5LTAzLTAyIDAxOjA0OjQ1LjAwMDAwMDAwMCArMDEwMAogQEAgLTIxLDYg KzIxLDcgQEAKICAjaW5jbHVkZSAiZnJhbWUuaCIKICAjaW5jbHVkZSAiZnJhbWUtdW53aW5kLmgi CkBAIC02NzgsMTAgKzY3OCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvZnJh bWUtdW53aW5kLmMKICAgIHJldHVybiB0YWJsZTsKICB9CiAgCi1JbmRleDogZ2RiLTYuOC41MC4y MDA5MDIyNi9nZGIvZnJhbWUuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjgvZ2RiL2ZyYW1l LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwMjI2Lm9yaWcvZ2RiL2ZyYW1lLmMJ MjAwOS0wMi0yOCAwNzoyMjowMi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNi44LjUwLjIwMDkw MjI2L2dkYi9mcmFtZS5jCTIwMDktMDItMjggMDc6MzQ6MDkuMDAwMDAwMDAwICswMTAwCistLS0g Z2RiLTYuOC41MC4yMDA5MDIyOC5vcmlnL2dkYi9mcmFtZS5jCTIwMDktMDMtMDIgMDE6MDE6NDQu MDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDIyOC9nZGIvZnJhbWUuYwkyMDA5 LTAzLTAyIDAxOjA0OjQ1LjAwMDAwMDAwMCArMDEwMAogQEAgLTQxLDggKzQxLDE0IEBACiAgI2lu Y2x1ZGUgIm9iamZpbGVzLmgiCiAgI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKQEAgLTEwMzgsMTAg KzEwMzgsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL2ZyYW1lLmMKICB9CiAg CiAgLyogUGVyICJmcmFtZS5oIiwgcmV0dXJuIHRoZSBgYGFkZHJlc3MnJyBvZiB0aGUgZnJhbWUu ICBDb2RlIHNob3VsZAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL2ZyYW1lLmgKK0lu ZGV4OiBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi9mcmFtZS5oCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTYuOC41MC4yMDA5MDIyNi5vcmlnL2dkYi9mcmFtZS5oCTIwMDktMDItMDUgMTg6Mjg6MjAuMDAw MDAwMDAwICswMTAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvZnJhbWUuaAkyMDA5LTAy LTI4IDA3OjM0OjA5LjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi02LjguNTAuMjAwOTAyMjgub3Jp Zy9nZGIvZnJhbWUuaAkyMDA5LTAyLTA1IDE4OjI4OjIwLjAwMDAwMDAwMCArMDEwMAorKysrIGdk Yi02LjguNTAuMjAwOTAyMjgvZ2RiL2ZyYW1lLmgJMjAwOS0wMy0wMiAwMTowNDo0NS4wMDAwMDAw MDAgKzAxMDAKIEBAIC0zNCw2ICszNCw5IEBACiAgICAgZnJhbWVfdW53aW5kX1dIQVQuLi4oKTog VW53aW5kIFRISVMgZnJhbWUncyBXSEFUIGZyb20gdGhlIE5FWFQKICAgICBmcmFtZS4KQEAgLTEx MDMsMTAgKzExMDMsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL2ZyYW1lLmgK ICBleHRlcm4gc3RydWN0IGZyYW1lX2lkIGZyYW1lX3Vud2luZF9pZCAoc3RydWN0IGZyYW1lX2lu Zm8gKm5leHRfZnJhbWUpOwogIAogIC8qIEFzc3VtaW5nIHRoYXQgYSBmcmFtZSBpcyBgbm9ybWFs JywgcmV0dXJuIGl0cyBiYXNlLWFkZHJlc3MsIG9yIDAgaWYKLUluZGV4OiBnZGItNi44LjUwLjIw MDkwMjI2L2dkYi9nZGJ0aHJlYWQuaAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjgvZ2RiL2dk YnRocmVhZC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDIyNi5vcmlnL2dkYi9n ZGJ0aHJlYWQuaAkyMDA5LTAyLTI3IDAwOjA0OjMyLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi02 LjguNTAuMjAwOTAyMjYvZ2RiL2dkYnRocmVhZC5oCTIwMDktMDItMjggMDc6MzQ6MDkuMDAwMDAw MDAwICswMTAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDIyOC5vcmlnL2dkYi9nZGJ0aHJlYWQuaAky MDA5LTAzLTAyIDAxOjAxOjE1LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi02LjguNTAuMjAwOTAy MjgvZ2RiL2dkYnRocmVhZC5oCTIwMDktMDMtMDIgMDE6MDQ6NDUuMDAwMDAwMDAwICswMTAwCiBA QCAtODMsNiArODMsMTMgQEAgc3RydWN0IHRocmVhZF9pbmZvCiAgICAgICBUaGlzIGlzIGhvdyB3 ZSBrbm93IHdoZW4gd2Ugc3RlcCBpbnRvIGEgc3Vicm91dGluZSBjYWxsLCBhbmQgaG93CiAgICAg ICB0byBzZXQgdGhlIGZyYW1lIGZvciB0aGUgYnJlYWtwb2ludCB1c2VkIHRvIHN0ZXAgb3V0LiAg Ki8KQEAgLTExMjEsMTAgKzExMjEsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2Ri L2dkYnRocmVhZC5oCiAgICBpbnQgY3VycmVudF9saW5lOwogICAgc3RydWN0IHN5bXRhYiAqY3Vy cmVudF9zeW10YWI7CiAgCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvaW5mY2FsbC5j CitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyOC9nZGIvaW5mY2FsbC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTYuOC41MC4yMDA5MDIyNi5vcmlnL2dkYi9pbmZjYWxsLmMJMjAwOS0wMi0yNyAwMDow NDozMi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi9pbmZjYWxs LmMJMjAwOS0wMi0yOCAwNzozNDowOS4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNi44LjUwLjIw MDkwMjI4Lm9yaWcvZ2RiL2luZmNhbGwuYwkyMDA5LTAzLTAyIDAxOjAxOjE1LjAwMDAwMDAwMCAr MDEwMAorKysrIGdkYi02LjguNTAuMjAwOTAyMjgvZ2RiL2luZmNhbGwuYwkyMDA5LTAzLTAyIDAx OjA0OjQ1LjAwMDAwMDAwMCArMDEwMAogQEAgLTg5OCwxNSArODk4LDggQEAgVGhlIHByb2dyYW0g YmVpbmcgZGVidWdnZWQgZXhpdGVkIHdoaWxlIAogIAogIAkgIGlmICh1bndpbmRfb25fc2lnbmFs X3ApCkBAIC0xMTQzLDEwICsxMTQzLDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dk Yi9pbmZjYWxsLmMKICAKICAJICAgICAgLyogRklYTUU6IEluc2VydCBhIGJ1bmNoIG9mIHdyYXBf aGVyZTsgbmFtZSBjYW4gYmUgdmVyeQogIAkJIGxvbmcgaWYgaXQncyBhIEMrKyBuYW1lIHdpdGgg YXJndW1lbnRzIGFuZCBzdHVmZi4gICovCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIv aW5mY21kLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi9pbmZjbWQuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTAyMjYub3JpZy9nZGIvaW5mY21kLmMJMjAwOS0wMi0y NyAwMDowNDozMi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi9p bmZjbWQuYwkyMDA5LTAyLTI4IDA3OjM0OjA5LjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi02Ljgu NTAuMjAwOTAyMjgub3JpZy9nZGIvaW5mY21kLmMJMjAwOS0wMy0wMiAwMTowMToxNS4wMDAwMDAw MDAgKzAxMDAKKysrKyBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi9pbmZjbWQuYwkyMDA5LTAzLTAy IDAxOjA0OjQ1LjAwMDAwMDAwMCArMDEwMAogQEAgLTUyLDYgKzUyLDcgQEAKICAjaW5jbHVkZSAi Y2xpL2NsaS1kZWNvZGUuaCIKICAjaW5jbHVkZSAiZ2RidGhyZWFkLmgiCkBAIC0xMjQ4LDEwICsx MjQ4LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi9pbmZjbWQuYwogICAgLyog RmluZCB0aGUgZnVuY3Rpb24gd2Ugd2lsbCByZXR1cm4gZnJvbS4gICovCiAgCiAgICBmdW5jdGlv biA9IGZpbmRfcGNfZnVuY3Rpb24gKGdldF9mcmFtZV9wYyAoZ2V0X3NlbGVjdGVkX2ZyYW1lIChO VUxMKSkpOwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL2luZmVyaW9yLmgKK0luZGV4 OiBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi9pbmZlcmlvci5oCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTYuOC41MC4yMDA5MDIyNi5vcmlnL2dkYi9pbmZlcmlvci5oCTIwMDktMDItMjcgMDA6MDQ6MzQu MDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvaW5mZXJpb3IuaAky MDA5LTAyLTI4IDA3OjM0OjA5LjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi02LjguNTAuMjAwOTAy Mjgub3JpZy9nZGIvaW5mZXJpb3IuaAkyMDA5LTAzLTAyIDAxOjAxOjE1LjAwMDAwMDAwMCArMDEw MAorKysrIGdkYi02LjguNTAuMjAwOTAyMjgvZ2RiL2luZmVyaW9yLmgJMjAwOS0wMy0wMiAwMTow NDo0NS4wMDAwMDAwMDAgKzAxMDAKIEBAIC0yNTksNiArMjU5LDkgQEAgZXh0ZXJuIHZvaWQgZXJy b3JfaXNfcnVubmluZyAodm9pZCk7CiAgLyogQ2FsbHMgZXJyb3JfaXNfcnVubmluZyBpZiB0aGUg Y3VycmVudCB0aHJlYWQgaXMgcnVubmluZy4gICovCiAgZXh0ZXJuIHZvaWQgZW5zdXJlX25vdF9y dW5uaW5nICh2b2lkKTsKQEAgLTEyNjIsMTAgKzEyNjIsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAu MjAwOTAyMjYvZ2RiL2luZmVyaW9yLmgKICAvKiBGcm9tIGluZmNtZC5jICovCiAgCiAgZXh0ZXJu IHZvaWQgdHR5X2NvbW1hbmQgKGNoYXIgKiwgaW50KTsKLUluZGV4OiBnZGItNi44LjUwLjIwMDkw MjI2L2dkYi9pbmZydW4uYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjgvZ2RiL2luZnJ1bi5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDIyNi5vcmlnL2dkYi9pbmZydW4uYwky MDA5LTAyLTI4IDA3OjMxOjUwLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi02LjguNTAuMjAwOTAy MjYvZ2RiL2luZnJ1bi5jCTIwMDktMDItMjggMDc6Mzc6MzYuMDAwMDAwMDAwICswMTAwCistLS0g Z2RiLTYuOC41MC4yMDA5MDIyOC5vcmlnL2dkYi9pbmZydW4uYwkyMDA5LTAzLTAyIDAxOjA0OjMy LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi02LjguNTAuMjAwOTAyMjgvZ2RiL2luZnJ1bi5jCTIw MDktMDMtMDIgMDE6MDQ6NDUuMDAwMDAwMDAwICswMTAwCiBAQCAtNDgsNiArNDgsNyBAQAogICNp bmNsdWRlICJnZGJfYXNzZXJ0LmgiCiAgI2luY2x1ZGUgIm1pL21pLWNvbW1vbi5oIgpAQCAtMTUz OCwxMCArMTUzOCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvaW5mcnVuLmMK ICAgIHRwLT5zdGVwX292ZXJfY2FsbHMgPSBpbmZfc3RhdHVzLT5zdGVwX292ZXJfY2FsbHM7CiAg ICBzdG9wX2FmdGVyX3RyYXAgPSBpbmZfc3RhdHVzLT5zdG9wX2FmdGVyX3RyYXA7CiAgICBpbmYt PnN0b3Bfc29vbiA9IGluZl9zdGF0dXMtPnN0b3Bfc29vbjsKLUluZGV4OiBnZGItNi44LjUwLjIw MDkwMjI2L2dkYi9pbmxpbmUtZnJhbWUuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjgvZ2Ri L2lubGluZS1mcmFtZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvaW5saW5l LWZyYW1lLmMJMjAwOS0wMi0yOCAwNzozNDowOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNi44 LjUwLjIwMDkwMjI4L2dkYi9pbmxpbmUtZnJhbWUuYwkyMDA5LTAzLTAyIDAxOjA0OjQ1LjAwMDAw MDAwMCArMDEwMAogQEAgLTAsMCArMSwzODIgQEAKICsvKiBJbmxpbmUgZnJhbWUgdW53aW5kZXIg Zm9yIEdEQi4KICsKQEAgLTE5MjUsMTAgKzE5MjUsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAw OTAyMjYvZ2RiL2lubGluZS1mcmFtZS5jCiArCiArICByZXR1cm4gaW5saW5lX2NvdW50OwogK30K LUluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi9pbmxpbmUtZnJhbWUuaAorSW5kZXg6IGdk Yi02LjguNTAuMjAwOTAyMjgvZ2RiL2lubGluZS1mcmFtZS5oCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTYuOC41 MC4yMDA5MDIyNi9nZGIvaW5saW5lLWZyYW1lLmgJMjAwOS0wMi0yOCAwNzozNDowOS4wMDAwMDAw MDAgKzAxMDAKKysrKyBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi9pbmxpbmUtZnJhbWUuaAkyMDA5 LTAzLTAyIDAxOjA0OjQ1LjAwMDAwMDAwMCArMDEwMAogQEAgLTAsMCArMSw2MiBAQAogKy8qIERl ZmluaXRpb25zIGZvciBpbmxpbmUgZnJhbWUgc3VwcG9ydC4KICsKQEAgLTE5OTIsMTEgKzE5OTIs MTEgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL2lubGluZS1mcmFtZS5oCiAraW50 IGZyYW1lX2lubGluZWRfY2FsbGVlcyAoc3RydWN0IGZyYW1lX2luZm8gKnRoaXNfZnJhbWUpOwog KwogKyNlbmRpZiAvKiAhZGVmaW5lZCAoSU5MSU5FX0ZSQU1FX0gpICovCi1JbmRleDogZ2RiLTYu OC41MC4yMDA5MDIyNi9nZGIvbWluc3ltcy5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyOC9n ZGIvbWluc3ltcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDIyNi5vcmlnL2dk Yi9taW5zeW1zLmMJMjAwOS0wMi0yOCAwNzozMTo0OS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGIt Ni44LjUwLjIwMDkwMjI2L2dkYi9taW5zeW1zLmMJMjAwOS0wMi0yOCAwNzozNDowOS4wMDAwMDAw MDAgKzAxMDAKLUBAIC03NjcsNyArNzY3LDcgQEAgcHJpbV9yZWNvcmRfbWluaW1hbF9zeW1ib2xf YW5kX2luZm8gKGNvbgorLS0tIGdkYi02LjguNTAuMjAwOTAyMjgub3JpZy9nZGIvbWluc3ltcy5j CTIwMDktMDMtMDIgMDE6MDQ6MzIuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTYuOC41MC4yMDA5 MDIyOC9nZGIvbWluc3ltcy5jCTIwMDktMDMtMDIgMDE6MDQ6NDUuMDAwMDAwMDAwICswMTAwCitA QCAtNzk1LDcgKzc5NSw3IEBAIHByaW1fcmVjb3JkX21pbmltYWxfc3ltYm9sX2FuZF9pbmZvIChj b24KICAKICAgIGlmIChtc3ltX2J1bmNoX2luZGV4ID09IEJVTkNIX1NJWkUpCiAgICAgIHsKQEAg LTIwMDUsMTAgKzIwMDUsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL21pbnN5 bXMuYwogICAgICAgIG1zeW1fYnVuY2hfaW5kZXggPSAwOwogICAgICAgIG5ldy0+bmV4dCA9IG1z eW1fYnVuY2g7CiAgICAgICAgbXN5bV9idW5jaCA9IG5ldzsKLUluZGV4OiBnZGItNi44LjUwLjIw MDkwMjI2L2dkYi9zMzkwLXRkZXAuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjgvZ2RiL3Mz OTAtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDIyNi5vcmlnL2dkYi9z MzkwLXRkZXAuYwkyMDA5LTAyLTIyIDAyOjAyOjE5LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi02 LjguNTAuMjAwOTAyMjYvZ2RiL3MzOTAtdGRlcC5jCTIwMDktMDItMjggMDc6MzQ6MDkuMDAwMDAw MDAwICswMTAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDIyOC5vcmlnL2dkYi9zMzkwLXRkZXAuYwky MDA5LTAyLTIyIDAyOjAyOjE5LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi02LjguNTAuMjAwOTAy MjgvZ2RiL3MzOTAtdGRlcC5jCTIwMDktMDMtMDIgMDE6MDQ6NDUuMDAwMDAwMDAwICswMTAwCiBA QCAtMTE4Miw2ICsxMTgyLDcgQEAgczM5MF9wcm9sb2d1ZV9mcmFtZV91bndpbmRfY2FjaGUgKHN0 cnVjdAogICAgQ09SRV9BRERSIHByZXZfc3A7CiAgICBpbnQgZnJhbWVfcG9pbnRlcjsKQEAgLTIw NDIsMTAgKzIwNDIsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL3MzOTAtdGRl cC5jCiAgCSAgfHwgZ2V0X2ZyYW1lX3R5cGUgKGdldF9uZXh0X2ZyYW1lICh0aGlzX2ZyYW1lKSkg IT0gTk9STUFMX0ZSQU1FKSkKICAgICAgewogICAgICAgIC8qIFNlZSB0aGUgY29tbWVudCBpbiBz MzkwX2luX2Z1bmN0aW9uX2VwaWxvZ3VlX3Agb24gd2h5IHRoaXMgaXMKLUluZGV4OiBnZGItNi44 LjUwLjIwMDkwMjI2L2dkYi9zdGFjay5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyOC9nZGIv c3RhY2suYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTAyMjYub3JpZy9nZGIvc3Rh Y2suYwkyMDA5LTAyLTI3IDAwOjA0OjMyLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi02LjguNTAu MjAwOTAyMjYvZ2RiL3N0YWNrLmMJMjAwOS0wMi0yOCAwNzozNToyMC4wMDAwMDAwMDAgKzAxMDAK Ky0tLSBnZGItNi44LjUwLjIwMDkwMjI4Lm9yaWcvZ2RiL3N0YWNrLmMJMjAwOS0wMy0wMiAwMTow MToxNS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi9zdGFjay5j CTIwMDktMDMtMDIgMDE6MDQ6NDUuMDAwMDAwMDAwICswMTAwCiBAQCAtNDUsNiArNDUsNyBAQAog ICNpbmNsdWRlICJ2YWxwcmludC5oIgogICNpbmNsdWRlICJnZGJ0aHJlYWQuaCIKQEAgLTIxOTIs MjYgKzIxOTIsMjcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL3N0YWNrLmMKICAg IC8qIENvbXB1dGUgdGhlIHJldHVybiB2YWx1ZS4gIElmIHRoZSBjb21wdXRhdGlvbiB0cmlnZ2Vy cyBhbiBlcnJvciwKICAgICAgIGxldCBpdCBiYWlsLiAgSWYgdGhlIHJldHVybiB0eXBlIGNhbid0 IGJlIGhhbmRsZWQsIHNldAogICAgICAgUkVUVVJOX1ZBTFVFIHRvIE5VTEwsIGFuZCBRVUVSWV9Q UkVGSVggdG8gYW4gaW5mb3JtYXRpb25hbAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2Ri L3N5bXRhYi5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyOC9nZGIvc3ltdGFiLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwMjI2Lm9yaWcvZ2RiL3N5bXRhYi5jCTIwMDktMDIt MjggMDc6MzE6NDkuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIv c3ltdGFiLmMJMjAwOS0wMi0yOCAwNzozNDowOS4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xNDA4LDEw ICsxNDA4LDEzIEBAIGxvb2t1cF9zeW1ib2xfYXV4X2xvY2FsIChjb25zdCBjaGFyICpuYW0KKy0t LSBnZGItNi44LjUwLjIwMDkwMjI4Lm9yaWcvZ2RiL3N5bXRhYi5jCTIwMDktMDMtMDIgMDE6MDQ6 MzIuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDIyOC9nZGIvc3ltdGFiLmMJ MjAwOS0wMy0wMiAwMTowNjozNi4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xNDE0LDExICsxNDE0LDE0 IEBAIGxvb2t1cF9zeW1ib2xfYXV4X2xvY2FsIChjb25zdCBjaGFyICpuYW0KICAgICAgICBzeW0g PSBsb29rdXBfc3ltYm9sX2F1eF9ibG9jayAobmFtZSwgbGlua2FnZV9uYW1lLCBibG9jaywgZG9t YWluKTsKICAgICAgICBpZiAoc3ltICE9IE5VTEwpCiAgCXJldHVybiBzeW07CiArCiArICAgICAg aWYgKEJMT0NLX0ZVTkNUSU9OIChibG9jaykgIT0gTlVMTCAmJiBibG9ja19pbmxpbmVkX3AgKGJs b2NrKSkKICsJYnJlYWs7CisgICAgIAogICAgICAgIGJsb2NrID0gQkxPQ0tfU1VQRVJCTE9DSyAo YmxvY2spOwogICAgICB9CiAgCi0tICAvKiBXZSd2ZSByZWFjaGVkIHRoZSBzdGF0aWMgYmxvY2sg d2l0aG91dCBmaW5kaW5nIGEgcmVzdWx0LiAgKi8KKy0gIC8qIFdlJ3ZlIHJlYWNoZWQgdGhlIGds b2JhbCBibG9jayB3aXRob3V0IGZpbmRpbmcgYSByZXN1bHQuICAqLwogKyAgLyogV2UndmUgcmVh Y2hlZCB0aGUgZWRnZSBvZiB0aGUgZnVuY3Rpb24gd2l0aG91dCBmaW5kaW5nIGEgcmVzdWx0LiAg Ki8KICAKICAgIHJldHVybiBOVUxMOwogIH0KLUBAIC0yNjY4LDYgKzI2NzEsNyBAQCBmaW5kX2Z1 bmN0aW9uX3N0YXJ0X3NhbCAoc3RydWN0IHN5bWJvbCAqCitAQCAtMjY3NSw2ICsyNjc4LDcgQEAg ZmluZF9mdW5jdGlvbl9zdGFydF9zYWwgKHN0cnVjdCBzeW1ib2wgKgogIAogICAgQ09SRV9BRERS IHBjOwogICAgc3RydWN0IHN5bXRhYl9hbmRfbGluZSBzYWw7CkBAIC0yMjE5LDcgKzIyMjAsNyBA QCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvc3ltdGFiLmMKICAKICAgIHBjID0gQkxP Q0tfU1RBUlQgKGJsb2NrKTsKICAgIGZpeHVwX3N5bWJvbF9zZWN0aW9uIChzeW0sIG9iamZpbGUp OwotQEAgLTI3MDYsNiArMjcxMCwyNSBAQCBmaW5kX2Z1bmN0aW9uX3N0YXJ0X3NhbCAoc3RydWN0 IHN5bWJvbCAqCitAQCAtMjcxMyw2ICsyNzE3LDI1IEBAIGZpbmRfZnVuY3Rpb25fc3RhcnRfc2Fs IChzdHJ1Y3Qgc3ltYm9sICoKICAKICAgIHNhbC5wYyA9IHBjOwogIApAQCAtMjI0NSw3ICsyMjQ2 LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL3N5bXRhYi5jCiAgICByZXR1cm4g c2FsOwogIH0KICAKLUBAIC0zNzI4LDYgKzM3NTEsMjQgQEAgYWRkX21hY3JvX25hbWUgKGNvbnN0 IGNoYXIgKm5hbWUsIGNvbnN0IAorQEAgLTM3MzUsNiArMzc1OCwyNCBAQCBhZGRfbWFjcm9fbmFt ZSAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgCiAgCQkJICAgIGRhdHVtLT50ZXh0LCBkYXR1bS0+ d29yZCk7CiAgfQogIApAQCAtMjI3MCw3ICsyMjcxLDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAw OTAyMjYvZ2RiL3N5bXRhYi5jCiAgY2hhciAqKgogIGRlZmF1bHRfbWFrZV9zeW1ib2xfY29tcGxl dGlvbl9saXN0IChjaGFyICp0ZXh0LCBjaGFyICp3b3JkKQogIHsKLUBAIC0zNzQwLDkgKzM3ODEs OSBAQCBkZWZhdWx0X21ha2Vfc3ltYm9sX2NvbXBsZXRpb25fbGlzdCAoY2hhCitAQCAtMzc0Nyw5 ICszNzg4LDkgQEAgZGVmYXVsdF9tYWtlX3N5bWJvbF9jb21wbGV0aW9uX2xpc3QgKGNoYQogICAg c3RydWN0IHBhcnRpYWxfc3ltdGFiICpwczsKICAgIHN0cnVjdCBtaW5pbWFsX3N5bWJvbCAqbXN5 bWJvbDsKICAgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlOwpAQCAtMjI4Miw3ICsyMjgzLDcgQEAg SW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL3N5bXRhYi5jCiAgICBzdHJ1Y3QgcGFydGlh bF9zeW1ib2wgKipwc3ltOwogICAgLyogVGhlIHN5bWJvbCB3ZSBhcmUgY29tcGxldGluZyBvbi4g IFBvaW50cyBpbiBzYW1lIGJ1ZmZlciBhcyB0ZXh0LiAgKi8KICAgIGNoYXIgKnN5bV90ZXh0Owot QEAgLTM4NTIsNDEgKzM4OTMsNDMgQEAgZGVmYXVsdF9tYWtlX3N5bWJvbF9jb21wbGV0aW9uX2xp c3QgKGNoYQorQEAgLTM4NTksNDEgKzM5MDAsNDMgQEAgZGVmYXVsdF9tYWtlX3N5bWJvbF9jb21w bGV0aW9uX2xpc3QgKGNoYQogICAgfQogIAogICAgLyogU2VhcmNoIHVwd2FyZHMgZnJvbSBjdXJy ZW50bHkgc2VsZWN0ZWQgZnJhbWUgKHNvIHRoYXQgd2UgY2FuCkBAIC0yMzU3LDcgKzIzNTgsNyBA QCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvc3ltdGFiLmMKICAKICAgIC8qIEdvIHRo cm91Z2ggdGhlIHN5bXRhYnMgYW5kIGNoZWNrIHRoZSBleHRlcm5zIGFuZCBzdGF0aWNzIGZvcgog ICAgICAgc3ltYm9scyB3aGljaCBtYXRjaC4gICovCi1AQCAtMzkwNSw5ICszOTQ4LDYgQEAgZGVm YXVsdF9tYWtlX3N5bWJvbF9jb21wbGV0aW9uX2xpc3QgKGNoYQorQEAgLTM5MTIsOSArMzk1NSw2 IEBAIGRlZmF1bHRfbWFrZV9zeW1ib2xfY29tcGxldGlvbl9saXN0IChjaGEKICAgIHsKICAgICAg UVVJVDsKICAgICAgYiA9IEJMT0NLVkVDVE9SX0JMT0NLIChCTE9DS1ZFQ1RPUiAocyksIFNUQVRJ Q19CTE9DSyk7CkBAIC0yMzY3LDcgKzIzNjgsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIy Ni9nZGIvc3ltdGFiLmMKICAgICAgQUxMX0JMT0NLX1NZTUJPTFMgKGIsIGl0ZXIsIHN5bSkKICAg ICAgICB7CiAgCUNPTVBMRVRJT05fTElTVF9BRERfU1lNQk9MIChzeW0sIHN5bV90ZXh0LCBzeW1f dGV4dF9sZW4sIHRleHQsIHdvcmQpOwotQEAgLTQzNzQsNiArNDQxNCwyNSBAQCBza2lwX3Byb2xv Z3VlX3VzaW5nX3NhbCAoQ09SRV9BRERSIGZ1bmNfCitAQCAtNDM4MSw2ICs0NDIxLDI1IEBAIHNr aXBfcHJvbG9ndWVfdXNpbmdfc2FsIChDT1JFX0FERFIgZnVuY18KICAJICAgICBsaW5lIG1hcmsg dGhlIHByb2xvZ3VlIC0+IGJvZHkgdHJhbnNpdGlvbi4gICovCiAgCSAgaWYgKHNhbC5saW5lID49 IHByb2xvZ3VlX3NhbC5saW5lKQogIAkgICAgYnJlYWs7CkBAIC0yMzkzLDExICsyMzk0LDExIEBA IEluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi9zeW10YWIuYwogIAkgIC8qIFRoZSBjYXNl IGluIHdoaWNoIGNvbXBpbGVyJ3Mgb3B0aW1pemVyL3NjaGVkdWxlciBoYXMKICAJICAgICBtb3Zl ZCBpbnN0cnVjdGlvbnMgaW50byB0aGUgcHJvbG9ndWUuICBXZSBsb29rIGFoZWFkIGluCiAgCSAg ICAgdGhlIGZ1bmN0aW9uIGxvb2tpbmcgZm9yIGFkZHJlc3MgcmFuZ2VzIHdob3NlCi1JbmRleDog Z2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvc3ltdGFiLmgKK0luZGV4OiBnZGItNi44LjUwLjIwMDkw MjI4L2dkYi9zeW10YWIuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTAyMjYub3Jp Zy9nZGIvc3ltdGFiLmgJMjAwOS0wMi0yNyAwMDowNDozMi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBn ZGItNi44LjUwLjIwMDkwMjI2L2dkYi9zeW10YWIuaAkyMDA5LTAyLTI4IDA3OjM0OjA5LjAwMDAw MDAwMCArMDEwMAotQEAgLTU1OSw5ICs1NTksMTggQEAgc3RydWN0IHN5bWJvbAorLS0tIGdkYi02 LjguNTAuMjAwOTAyMjgub3JpZy9nZGIvc3ltdGFiLmgJMjAwOS0wMy0wMiAwMTowMToxNS4wMDAw MDAwMDAgKzAxMDAKKysrKyBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi9zeW10YWIuaAkyMDA5LTAz LTAyIDAxOjA0OjQ1LjAwMDAwMDAwMCArMDEwMAorQEAgLTU1Niw5ICs1NTYsMTggQEAgc3RydWN0 IHN5bWJvbAogIAogICAgdW5zaWduZWQgaXNfYXJndW1lbnQgOiAxOwogIApAQCAtMjQxOSw3ICsy NDIwLDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL3N5bXRhYi5oCiAgCiAgICB1 bnNpZ25lZCBzaG9ydCBsaW5lOwogIAotQEAgLTU5Miw2ICs2MDEsNyBAQCBzdHJ1Y3Qgc3ltYm9s CitAQCAtNTg5LDYgKzU5OCw3IEBAIHN0cnVjdCBzeW1ib2wKICAjZGVmaW5lIFNZTUJPTF9ET01B SU4oc3ltYm9sKQkoc3ltYm9sKS0+ZG9tYWluCiAgI2RlZmluZSBTWU1CT0xfQ0xBU1Moc3ltYm9s KQkJKHN5bWJvbCktPmFjbGFzcwogICNkZWZpbmUgU1lNQk9MX0lTX0FSR1VNRU5UKHN5bWJvbCkJ KHN5bWJvbCktPmlzX2FyZ3VtZW50CkBAIC0yNDI3LDEwICsyNDI4LDEwIEBAIEluZGV4OiBnZGIt Ni44LjUwLjIwMDkwMjI2L2dkYi9zeW10YWIuaAogICNkZWZpbmUgU1lNQk9MX1RZUEUoc3ltYm9s KQkJKHN5bWJvbCktPnR5cGUKICAjZGVmaW5lIFNZTUJPTF9MSU5FKHN5bWJvbCkJCShzeW1ib2wp LT5saW5lCiAgI2RlZmluZSBTWU1CT0xfU1lNVEFCKHN5bWJvbCkJCShzeW1ib2wpLT5zeW10YWIK LUluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYnJlYWsu ZXhwCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyOC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Jy ZWFrLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTAyMjYub3JpZy9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2JyZWFrLmV4cAkyMDA5LTAxLTE5IDIwOjA1OjAxLjAwMDAwMDAwMCAr MDEwMAotKysrIGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9icmVh ay5leHAJMjAwOS0wMi0yOCAwNzozNDowOS4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNi44LjUw LjIwMDkwMjI4Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9icmVhay5leHAJMjAwOS0wMS0x OSAyMDowNTowMS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvYnJlYWsuZXhwCTIwMDktMDMtMDIgMDE6MDQ6NDUuMDAwMDAwMDAw ICswMTAwCiBAQCAtODgwLDYgKzg4MCwxMyBAQCBnZGJfZXhwZWN0IHsKICAgICAgICAgICMgbWFy a2VyNCgpIGlzIGRlZmluZWQgYXQgbGluZSA0NiB3aGVuIGNvbXBpbGVkIHdpdGggLURQUk9UT1RZ UEVTCiAgCXBhc3MgInJ1biB1bnRpbCBicmVha3BvaW50IHNldCBhdCBzbWFsbCBmdW5jdGlvbiwg b3B0aW1pemVkIGZpbGUgKGxpbmUgYnBfbG9jYXRpb24xNCkiCkBAIC0yNDQ1LDEwICsyNDQ2LDEw IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYnJl YWsuZXhwCiAgICAgIC1yZSAiLiokZ2RiX3Byb21wdCAiIHsKICAJZmFpbCAicnVuIHVudGlsIGJy ZWFrcG9pbnQgc2V0IGF0IHNtYWxsIGZ1bmN0aW9uLCBvcHRpbWl6ZWQgZmlsZSIKICAgICAgfQot SW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvYW5ub3RhMi5l eHAKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2Fubm90 YTIuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDIyNi5vcmlnL2dkYi90ZXN0 c3VpdGUvZ2RiLmNwL2Fubm90YTIuZXhwCTIwMDktMDEtMDMgMDY6NTg6MDQuMDAwMDAwMDAwICsw MTAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9hbm5vdGEy LmV4cAkyMDA5LTAyLTI4IDA3OjM0OjA5LjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi02LjguNTAu MjAwOTAyMjgub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5jcC9hbm5vdGEyLmV4cAkyMDA5LTAxLTAz IDA2OjU4OjA0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi02LjguNTAuMjAwOTAyMjgvZ2RiL3Rl c3RzdWl0ZS9nZGIuY3AvYW5ub3RhMi5leHAJMjAwOS0wMy0wMiAwMTowNDo0NS4wMDAwMDAwMDAg KzAxMDAKIEBAIC0xMTksMTAgKzExOSwxMSBAQCBnZGJfZXhwZWN0IHsKICAjIGNvbnRpbnVlIHVu dGlsIGV4aXQKICAjIHRoaXMgd2lsbCB0ZXN0OgpAQCAtMjQ2MiwxMCArMjQ2MywxMCBAQCBJbmRl eDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9hbm5vdGEyLmV4cAog IAkgIHsgcGFzcyAiY29udGludWUgdW50aWwgZXhpdCIgfQogICAgLXJlICIuKiRnZGJfcHJvbXB0 JCIgICAgIHsgZmFpbCAiY29udGludWUgdG8gZXhpdCIgfQogICAgdGltZW91dAkgICAgICAgICAg ICB7IGZhaWwgImNvbnRpbnVlIHRvIGV4aXQgKHRpbWVvdXQpIiB9Ci1JbmRleDogZ2RiLTYuOC41 MC4yMDA5MDIyNi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWJ0LmMKK0luZGV4OiBnZGIt Ni44LjUwLjIwMDkwMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtYnQuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAot KysrIGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1idC5j CTIwMDktMDItMjggMDc6MzQ6MDkuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTYuOC41MC4yMDA5 MDIyOC9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWJ0LmMJMjAwOS0wMy0wMiAwMTowNDo0 NS4wMDAwMDAwMDAgKzAxMDAKIEBAIC0wLDAgKzEsNDcgQEAKICsvKiBDb3B5cmlnaHQgKEMpIDIw MDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0yNTE0LDEwICsyNTE1LDEw IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxp bmUtYnQuYwogKwogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYv Z2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1idC5leHAKK0luZGV4OiBnZGItNi44LjUwLjIw MDkwMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtYnQuZXhwCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTYuOC41MC4yMDA5MDIyNi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWJ0LmV4cAkyMDA5 LTAyLTI4IDA3OjM0OjA5LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi02LjguNTAuMjAwOTAyMjgv Z2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1idC5leHAJMjAwOS0wMy0wMiAwMTowNDo0NS4w MDAwMDAwMDAgKzAxMDAKIEBAIC0wLDAgKzEsNjMgQEAKICsjIENvcHlyaWdodCAyMDA4IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjU4MiwxMCArMjU4MywxMCBAQCBJbmRl eDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWJ0LmV4 cAogK2dkYl90ZXN0ICJpbmZvIGZyYW1lIiAiLippbmxpbmVkIGludG8gZnJhbWUuKiIgImZ1bmMx IGlubGluZWQgKDMpIgogK2dkYl90ZXN0ICJ1cCIgIiMyICAuKmZ1bmMyLioiICJ1cCBmcm9tIGZ1 bmMxICgzKSIKICtnZGJfdGVzdCAiaW5mbyBmcmFtZSIgIi4qaW5saW5lZCBpbnRvIGZyYW1lLioi ICJmdW5jMiBpbmxpbmVkICgzKSIKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi90ZXN0 c3VpdGUvZ2RiLm9wdC9pbmxpbmUtY21kcy5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyOC9n ZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWNtZHMuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYv bnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi02LjguNTAu MjAwOTAyMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmMJMjAwOS0wMi0yOCAw NzozNDowOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi90ZXN0 c3VpdGUvZ2RiLm9wdC9pbmxpbmUtY21kcy5jCTIwMDktMDMtMDIgMDE6MDQ6NDUuMDAwMDAwMDAw ICswMTAwCiBAQCAtMCwwICsxLDg1IEBACiArLyogQ29weXJpZ2h0IChDKSAyMDA4IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjY3MiwxMCArMjY3MywxMCBAQCBJbmRleDog Z2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWNtZHMuYwog KwogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL3Rlc3Rz dWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmV4cAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjgv Z2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmV4cAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi02Ljgu NTAuMjAwOTAyMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmV4cAkyMDA5LTAy LTI4IDA3OjM0OjA5LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi02LjguNTAuMjAwOTAyMjgvZ2Ri L3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmV4cAkyMDA5LTAzLTAyIDAxOjA0OjQ1LjAw MDAwMDAwMCArMDEwMAogQEAgLTAsMCArMSwyNzkgQEAKICsjIENvcHlyaWdodCAyMDA4IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjk1NiwxMCArMjk1NywxMCBAQCBJbmRl eDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWNtZHMu ZXhwCiArZ2RiX3Rlc3QgImluZm8gZnJhbWUiICIuKmlubGluZWQgaW50byBmcmFtZS4qIiAib3V0 ZXJfaW5saW5lMiBpbmxpbmVkIgogK2dkYl90ZXN0ICJ1cCIgIiM0ICBtYWluLioiICJ1cCBmcm9t IG91dGVyX2lubGluZTIiCiArZ2RiX3Rlc3QgImluZm8gZnJhbWUiICIuKlxuIGNhbGxlciBvZiBm cmFtZS4qIiAibWFpbiBub3QgaW5saW5lZCIKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dk Yi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmMKK0luZGV4OiBnZGItNi44LjUwLjIw MDkwMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBn ZGItNi44LjUwLjIwMDkwMjI2L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmMJ MjAwOS0wMi0yOCAwNzozNDowOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNi44LjUwLjIwMDkw MjI4L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmMJMjAwOS0wMy0wMiAwMTow NDo0NS4wMDAwMDAwMDAgKzAxMDAKIEBAIC0wLDAgKzEsNTIgQEAKICsvKiBDb3B5cmlnaHQgKEMp IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0zMDEzLDEwICszMDE0 LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9p bmxpbmUtbG9jYWxzLmMKICsKICsgIHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNi44LjUwLjIw MDkwMjI2L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmV4cAorSW5kZXg6IGdk Yi02LjguNTAuMjAwOTAyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1sb2NhbHMuZXhw CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5s aW5lLWxvY2Fscy5leHAJMjAwOS0wMi0yOCAwNzozNDowOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBn ZGItNi44LjUwLjIwMDkwMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmV4 cAkyMDA5LTAzLTAyIDAxOjA0OjQ1LjAwMDAwMDAwMCArMDEwMAogQEAgLTAsMCArMSwxMTggQEAK ICsjIENvcHlyaWdodCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAt MzEzNiwxMCArMzEzNywxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvdGVzdHN1 aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5leHAKICt9CiArCiArZ2RiX3Rlc3QgInByaW50IGFy cmF5XFswXF0iICJcXFwkJGRlY2ltYWwgPSAxODQiICJwcmludCBsb2NhbCAoMykiCi1JbmRleDog Z2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLW1hcmtlcnMu YworSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGlu ZS1tYXJrZXJzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi90ZXN0c3VpdGUv Z2RiLm9wdC9pbmxpbmUtbWFya2Vycy5jCTIwMDktMDItMjggMDc6MzQ6MDkuMDAwMDAwMDAwICsw MTAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDIyOC9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5l LW1hcmtlcnMuYwkyMDA5LTAzLTAyIDAxOjA0OjQ1LjAwMDAwMDAwMCArMDEwMAogQEAgLTAsMCAr MSwzNiBAQAogKy8qIENvcHlyaWdodCAoQykgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KICsKQEAgLTMxNzcsMTAgKzMxNzgsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAy MjYvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1tYXJrZXJzLmMKICt7CiArICBpbmxpbmVk X2ZuICgpOyAvKiBpbmxpbmVkICovCiArfQotSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2Ri L3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjgvZ2RiL3Rl c3RzdWl0ZS9saWIvZ2RiLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTAyMjYu b3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMDktMDItMjggMDc6MzE6NTguMDAwMDAw MDAwICswMTAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIu ZXhwCTIwMDktMDItMjggMDc6MzQ6MDkuMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTYuOC41MC4y MDA5MDIyOC5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAwOS0wMy0wMiAwMTowNDoz Mi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi90ZXN0c3VpdGUv bGliL2dkYi5leHAJMjAwOS0wMy0wMiAwMTowNDo0NS4wMDAwMDAwMDAgKzAxMDAKIEBAIC0xNDc0 LDYgKzE0NzQsMzcgQEAgcHJvYyBza2lwX2hwX3Rlc3RzIHt9IHsKICAgICAgcmV0dXJuICRza2lw X2hwCiAgfQpAQCAtMzIxOSwxMCArMzIyMCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIy Ni9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiAgc2V0IGNvbXBpbGVyX2luZm8JCSJ1bmtub3du IgogIHNldCBnY2NfY29tcGlsZWQJCTAKICBzZXQgaHBfY2NfY29tcGlsZXIJCTAKLUluZGV4OiBn ZGItNi44LjUwLjIwMDkwMjI2L2dkYi92YWxvcHMuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTAy MjgvZ2RiL3ZhbG9wcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDIyNi5vcmln L2dkYi92YWxvcHMuYwkyMDA5LTAyLTI3IDA3OjUxOjU2LjAwMDAwMDAwMCArMDEwMAotKysrIGdk Yi02LjguNTAuMjAwOTAyMjYvZ2RiL3ZhbG9wcy5jCTIwMDktMDItMjggMDc6MzQ6MDkuMDAwMDAw MDAwICswMTAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDIyOC5vcmlnL2dkYi92YWxvcHMuYwkyMDA5 LTAzLTAyIDAxOjAxOjE3LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi02LjguNTAuMjAwOTAyMjgv Z2RiL3ZhbG9wcy5jCTIwMDktMDMtMDIgMDE6MDQ6NDUuMDAwMDAwMDAwICswMTAwCiBAQCAtMTA3 Miw3ICsxMDcyLDcgQEAgdmFsdWVfb2ZfdmFyaWFibGUgKHN0cnVjdCBzeW1ib2wgKnZhciwgcwog ICAgICAgIGZyYW1lID0gYmxvY2tfaW5uZXJtb3N0X2ZyYW1lIChiKTsKICAgICAgICBpZiAoIWZy YW1lKQpAQCAtMzIzMiwxMSArMzIzMywxMSBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDIyNi9n ZGIvdmFsb3BzLmMKICAJICAgICAgJiYgU1lNQk9MX1BSSU5UX05BTUUgKEJMT0NLX0ZVTkNUSU9O IChiKSkpCiAgCSAgICBlcnJvciAoXygiTm8gZnJhbWUgaXMgY3VycmVudGx5IGV4ZWN1dGluZyBp biBibG9jayAlcy4iKSwKICAJCSAgIFNZTUJPTF9QUklOVF9OQU1FIChCTE9DS19GVU5DVElPTiAo YikpKTsKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi9NYWtlZmlsZS5pbgorSW5kZXg6 IGdkYi02LjguNTAuMjAwOTAyMjgvZ2RiL01ha2VmaWxlLmluCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTYuOC41MC4yMDA5MDIyNi5vcmlnL2dkYi9NYWtlZmlsZS5pbgkyMDA5LTAyLTI4IDA3OjMxOjU4 LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL01ha2VmaWxlLmlu CTIwMDktMDItMjggMDc6MzQ6MDkuMDAwMDAwMDAwICswMTAwCi1AQCAtNjYzLDYgKzY2Myw3IEBA IFNGSUxFUyA9IGFkYS1leHAueSBhZGEtbGFuZy5jIGFkYS10eXBlcHIKKy0tLSBnZGItNi44LjUw LjIwMDkwMjI4Lm9yaWcvZ2RiL01ha2VmaWxlLmluCTIwMDktMDMtMDIgMDE6MDQ6MzIuMDAwMDAw MDAwICswMTAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDIyOC9nZGIvTWFrZWZpbGUuaW4JMjAwOS0w My0wMiAwMTowNDo0NS4wMDAwMDAwMDAgKzAxMDAKK0BAIC02NjUsNiArNjY1LDcgQEAgU0ZJTEVT ID0gYWRhLWV4cC55IGFkYS1sYW5nLmMgYWRhLXR5cGVwcgogIAlpbmYtbG9vcC5jIFwKICAJaW5m Y2FsbC5jIFwKICAJaW5mY21kLmMgaW5mbG93LmMgaW5mcnVuLmMgXApAQCAtMzI0NCw3ICszMjQ1 LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL01ha2VmaWxlLmluCiAgCWludGVy cHMuYyBcCiAgCWp2LWV4cC55IGp2LWxhbmcuYyBqdi12YWxwcmludC5jIGp2LXR5cGVwcmludC5j IFwKICAJbGFuZ3VhZ2UuYyBsaW5lc3BlYy5jIFwKLUBAIC04MzUsNiArODM2LDcgQEAgQ09NTU9O X09CUyA9ICQoREVQRklMRVMpICQoQ09ORklHX09CUykgJAorQEAgLTgzNyw2ICs4MzgsNyBAQCBD T01NT05fT0JTID0gJChERVBGSUxFUykgJChDT05GSUdfT0JTKSAkCiAgCXVzZXItcmVncy5vIFwK ICAJZnJhbWUubyBmcmFtZS11bndpbmQubyBkb3VibGVzdC5vIFwKICAJZnJhbWUtYmFzZS5vIFwK QEAgLTMyNTIsMTAgKzMyNTMsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTAyMjYvZ2RiL01h a2VmaWxlLmluCiAgCWdudS12Mi1hYmkubyBnbnUtdjMtYWJpLm8gY3AtYWJpLm8gY3Atc3VwcG9y dC5vIFwKICAJY3AtbmFtZXNwYWNlLm8gXAogIAlyZWdncm91cHMubyByZWdzZXQubyBcCi1JbmRl eDogZ2RiLTYuOC41MC4yMDA5MDIyNi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvTWFrZWZpbGUuaW4K K0luZGV4OiBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9NYWtlZmls ZS5pbgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTAyMjYub3JpZy9nZGIvdGVzdHN1 aXRlL2dkYi5vcHQvTWFrZWZpbGUuaW4JMjAwOC0wNC0xOCAwMTowNjo1NC4wMDAwMDAwMDAgKzAy MDAKLSsrKyBnZGItNi44LjUwLjIwMDkwMjI2L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9NYWtlZmls ZS5pbgkyMDA5LTAyLTI4IDA3OjM0OjA5LjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi02LjguNTAu MjAwOTAyMjgub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvTWFrZWZpbGUuaW4JMjAwOC0wNC0x OCAwMTowNjo1NC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwMjI4L2dkYi90 ZXN0c3VpdGUvZ2RiLm9wdC9NYWtlZmlsZS5pbgkyMDA5LTAzLTAyIDAxOjA0OjQ1LjAwMDAwMDAw MCArMDEwMAogQEAgLTEsNyArMSw3IEBACiAgVlBBVEggPSBAc3JjZGlyQAogIHNyY2RpciA9IEBz cmNkaXJACgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci5wYXRjaCBiL2dkYi1hcmNoZXIucGF0Y2gK aW5kZXggNTZmY2IxMS4uYzA1NDk4ZSAxMDA2NDQKLS0tIGEvZ2RiLWFyY2hlci5wYXRjaAorKysg Yi9nZGItYXJjaGVyLnBhdGNoCkBAIC0xLDggKzEsMzAgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9y Zy9nZGIvd2lraS9Qcm9qZWN0QXJjaGVyCitodHRwOi8vc291cmNld2FyZS5vcmcvZ2RiL3dpa2kv QXJjaGVyQnJhbmNoTWFuYWdlbWVudAorCitHSVQgc25hcHNob3Q6Citjb21taXQgOGNjMzc1M2E5 YWFkODViZjUzYmVmNTRjMDQzMzRjNjBkMTZjYjI1MQorCiticmFuY2ggYGFyY2hlcicgLSB0aGUg bWVyZ2Ugb2YgYnJhbmNoZXM6CithcmNoZXItamFua3JhdG9jaHZpbC1tZXJnZS1leHByCisJYXJj aGVyLWtlaXRocy1leHByLWN1bXVsYXRpdmUKKwkJKGFyY2hlci1zd2FnaWFhbC11c2luZy1kaXJl Y3RpdmUpCithcmNoZXItamFua3JhdG9jaHZpbC1taXNjCithcmNoZXItamFua3JhdG9jaHZpbC1w eXRob24KKwlhcmNoZXItamFua3JhdG9jaHZpbC10eXBlLXJlZmNvdW50CisJYXJjaGVyLXRyb21l eS1weXRob24KK2FyY2hlci1qYW5rcmF0b2NodmlsLXZsYQorCWFyY2hlci1qYW5rcmF0b2Nodmls LXR5cGUtcmVmY291bnQKK2FyY2hlci1wbXVsZG9vbi1leGNlcHRpb24tcmV3aW5kLW1hc3Rlcgor YXJjaGVyLXNlcmdpby1jYXRjaC1zeXNjYWxsCithcmNoZXItdHJvbWV5LWNoYXJzZXQKK2FyY2hl ci10cm9tZXktZGVsYXllZC1zeW1maWxlCisKKwogZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5p biBiL2dkYi9NYWtlZmlsZS5pbgotaW5kZXggYWYzZjUzNC4uNzE2ODg0ZCAxMDA2NDQKK2luZGV4 IDc0YWE3MmUuLmZkYjA1ODIgMTAwNjQ0CiAtLS0gYS9nZGIvTWFrZWZpbGUuaW4KICsrKyBiL2dk Yi9NYWtlZmlsZS5pbgotQEAgLTE2NywxMSArMTY3LDE2IEBAIElOVExfQ0ZMQUdTID0gQElOQ0lO VExACitAQCAtMTY3LDExICsxNjcsMTggQEAgSU5UTF9DRkxBR1MgPSBASU5DSU5UTEAKICAKICAj IFdoZXJlIGlzIHRoZSBJQ09OViBsaWJyYXJ5PyAgVGhpcyBjYW4gYmUgZW1wdHkgaWYgbGliYyBo YXMgaWNvbnYuCiAgTElCSUNPTlYgPSBATElCSUNPTlZACkBAIC0xNiwxMCArMzgsMTIgQEAgaW5k ZXggYWYzZjUzNC4uNzE2ODg0ZCAxMDA2NDQKICsjIERpZCB0aGUgdXNlciBnaXZlIHVzIGEgLS13 aXRoLWdkYi1kYXRhZGlyIG9wdGlvbj8KICtHREJfREFUQURJUl9QQVRIID0gQEdEQl9EQVRBRElS X1BBVEhACiArCisrR0RCX1BZVEhPTkRJUl9QQVRIID0gQEdEQl9QWVRIT05ESVJfUEFUSEAKKysK ICAjIEhlbHBlciBjb2RlIGZyb20gZ251bGliLgogIExJQkdOVSA9IGdudWxpYi9saWJnbnUuYQog IElOQ0dOVSA9IC1JJChzcmNkaXIpL2dudWxpYiAtSWdudWxpYgotQEAgLTI3MCwxMiArMjc1LDM0 IEBAIFNVQkRJUl9UVUlfQ0ZMQUdTPSBcCitAQCAtMjcwLDEyICsyNzcsMzQgQEAgU1VCRElSX1RV SV9DRkxBR1M9IFwKICAjCiAgU1VCRElSX1BZVEhPTl9PQlMgPSBcCiAgCXB5dGhvbi5vIFwKQEAg LTU0LDcgKzc4LDcgQEAgaW5kZXggYWYzZjUzNC4uNzE2ODg0ZCAxMDA2NDQKICAJcHl0aG9uL3B5 dGhvbi11dGlscy5jIFwKICAJcHl0aG9uL3B5dGhvbi12YWx1ZS5jCiAgU1VCRElSX1BZVEhPTl9E RVBTID0KLUBAIC0zODksNyArNDE2LDggQEAgSU5URVJOQUxfQ0ZMQUdTX0JBU0UgPSBcCitAQCAt MzkwLDcgKzQxOSw4IEBAIElOVEVSTkFMX0NGTEFHU19CQVNFID0gXAogIAkkKENGTEFHUykgJChH TE9CQUxfQ0ZMQUdTKSAkKFBST0ZJTEVfQ0ZMQUdTKSBcCiAgCSQoR0RCX0NGTEFHUykgJChPUENP REVTX0NGTEFHUykgJChSRUFETElORV9DRkxBR1MpIFwKICAJJChCRkRfQ0ZMQUdTKSAkKElOQ0xV REVfQ0ZMQUdTKSAkKExJQkRFQ05VTUJFUl9DRkxBR1MpIFwKQEAgLTY0LDcgKzg4LDcgQEAgaW5k ZXggYWYzZjUzNC4uNzE2ODg0ZCAxMDA2NDQKICBJTlRFUk5BTF9XQVJOX0NGTEFHUyA9ICQoSU5U RVJOQUxfQ0ZMQUdTX0JBU0UpICQoR0RCX1dBUk5fQ0ZMQUdTKQogIElOVEVSTkFMX0NGTEFHUyA9 ICQoSU5URVJOQUxfV0FSTl9DRkxBR1MpICQoR0RCX1dFUlJPUl9DRkxBR1MpCiAgCi1AQCAtNDAx LDcgKzQyOSw3IEBAIExERkxBR1MgPSBATERGTEFHU0AKK0BAIC00MDIsNyArNDMyLDcgQEAgTERG TEFHUyA9IEBMREZMQUdTQAogICMgSSB0aGluayBpdCdzIHBlcmZlY3RseSByZWFzb25hYmxlIGZv ciBhIHVzZXIgdG8gc2V0IC1wZyBpbiBDRkxBR1MKICAjIGFuZCBoYXZlIGl0IHdvcms7IHRoYXQn cyB3aHkgQ0ZMQUdTIGlzIGhlcmUuCiAgIyBQUk9GSUxFX0NGTEFHUyBpcyBfbm90XyBpbmNsdWRl ZCwgaG93ZXZlciwgYmVjYXVzZSB3ZSB1c2UgbW9uc3RhcnR1cC4KQEAgLTczLDcgKzk3LDcgQEAg aW5kZXggYWYzZjUzNC4uNzE2ODg0ZCAxMDA2NDQKICAKICAjIElmIHlvdXIgc3lzdGVtIGlzIG1p c3NpbmcgYWxsb2NhKCksIG9yLCBtb3JlIGxpa2VseSwgaXQncyB0aGVyZSBidXQKICAjIGl0IGRv ZXNuJ3Qgd29yaywgdGhlbiByZWZlciB0byBsaWJpYmVydHkuCi1AQCAtNjYyLDYgKzY5MCw3IEBA IFNGSUxFUyA9IGFkYS1leHAueSBhZGEtbGFuZy5jIGFkYS10eXBlcHJpbnQuYyBhZGEtdmFscHJp bnQuYyBhZGEtdGFza3MuYyBcCitAQCAtNjYzLDYgKzY5Myw3IEBAIFNGSUxFUyA9IGFkYS1leHAu eSBhZGEtbGFuZy5jIGFkYS10eXBlcHJpbnQuYyBhZGEtdmFscHJpbnQuYyBhZGEtdGFza3MuYyBc CiAgCXZhbGFyaXRoLmMgdmFsb3BzLmMgdmFscHJpbnQuYyB2YWx1ZS5jIHZhcm9iai5jIHZlYy5j IFwKICAJd3JhcHBlci5jIFwKICAJeG1sLXRkZXNjLmMgeG1sLXN1cHBvcnQuYyBcCkBAIC04MSw3 ICsxMDUsNyBAQCBpbmRleCBhZjNmNTM0Li43MTY4ODRkIDEwMDY0NAogIAlpbmZlcmlvci5jCiAg CiAgTElOVEZJTEVTID0gJChTRklMRVMpICQoWVlGSUxFUykgJChDT05GSUdfU1JDUykgaW5pdC5j Ci1AQCAtNzMyLDcgKzc2MSw4IEBAIGNvbmZpZy9zcGFyYy9ubS1zb2wyLmggY29uZmlnL25tLWxp bnV4LmggY29uZmlnL21pcHMvbm0taXJpeDUuaAlcCitAQCAtNzMzLDcgKzc2NCw4IEBAIGNvbmZp Zy9zcGFyYy9ubS1zb2wyLmggY29uZmlnL25tLWxpbnV4LmggY29uZmlnL21pcHMvbm0taXJpeDUu aAlcCiAgY29uZmlnL3JzNjAwMC9ubS1yczYwMDAuaCB0b3AuaCBic2Qta3ZtLmggZ2RiLXN0YWJz LmggcmVnZ3JvdXBzLmggXAogIGFubm90YXRlLmggc2ltLXJlZ25vLmggZGljdGlvbmFyeS5oIGRm cC5oIG1haW4uaCBmcmFtZS11bndpbmQuaAlcCiAgcmVtb3RlLWZpbGVpby5oIGkzODYtbGludXgt dGRlcC5oIHZheC10ZGVwLmggb2JqYy1sYW5nLmggXApAQCAtOTEsNyArMTE1LDcgQEAgaW5kZXgg YWYzZjUzNC4uNzE2ODg0ZCAxMDA2NDQKICAKICAjIEhlYWRlciBmaWxlcyB0aGF0IGFscmVhZHkg aGF2ZSBzcmNkaXIgaW4gdGhlbSwgb3Igd2hpY2ggYXJlIGluIG9iamRpci4KICAKLUBAIC04MTEs MTAgKzg0MSwxNiBAQCBDT01NT05fT0JTID0gJChERVBGSUxFUykgJChDT05GSUdfT0JTKSAkKFlZ T0JKKSBcCitAQCAtODEyLDEwICs4NDQsMTYgQEAgQ09NTU9OX09CUyA9ICQoREVQRklMRVMpICQo Q09ORklHX09CUykgJChZWU9CSikgXAogIAl0cmFkLWZyYW1lLm8gXAogIAl0cmFtcC1mcmFtZS5v IFwKICAJc29saWIubyBzb2xpYi1udWxsLm8gXApAQCAtMTA5LDcgKzEzMyw3IEBAIGluZGV4IGFm M2Y1MzQuLjcxNjg4NGQgMTAwNjQ0CiAgVFNPQlMgPSBpbmZsb3cubwogIAogIFNVQkRJUlMgPSBA c3ViZGlyc0AKLUBAIC04NDgsMTEgKzg4NCwzOCBAQCBnZW5lcmF0ZWRfZmlsZXMgPSBjb25maWcu aCBvYnNlcnZlci5oIG9ic2VydmVyLmluYyBhZGEtbGV4LmMgXAorQEAgLTg0OSwxMSArODg3LDM4 IEBAIGdlbmVyYXRlZF9maWxlcyA9IGNvbmZpZy5oIG9ic2VydmVyLmggb2JzZXJ2ZXIuaW5jIGFk YS1sZXguYyBcCiAgCSQoQ09NUElMRSkgJDwKICAJJChQT1NUQ09NUElMRSkKICAKQEAgLTE0OSw3 ICsxNzMsNyBAQCBpbmRleCBhZjNmNTM0Li43MTY4ODRkIDEwMDY0NAogIGluc3RhbGxjaGVjazoK ICAKICAjIFRoZSBjaGVjayB0YXJnZXQgY2FuIG5vdCB1c2Ugc3ViZGlyX2RvLCBiZWNhdXNlIHN1 YmRpcl9kbyBkb2VzIG5vdAotQEAgLTkwNiw4ICs5NjksMTEgQEAgZ2RiLno6Z2RiLjEKK0BAIC05 MDcsOCArOTcyLDExIEBAIGdkYi56OmdkYi4xCiAgIyBzb3VyY2UgZmlsZSBhbmQgZG9lc24ndCBj YXJlIGFib3V0IHJlYnVpbGRpbmcgb3IganVzdCB3YW50cyB0byBzYXZlIHRoZQogICMgdGltZSBp dCB0YWtlcyBmb3IgbWFrZSB0byBjaGVjayB0aGF0IGFsbCBpcyB1cCB0byBkYXRlLgogICMgaW5z dGFsbC1vbmx5IGlzIGludGVuZGVkIHRvIGFkZHJlc3MgdGhhdCBuZWVkLgpAQCAtMTYzLDcgKzE4 Nyw3IEBAIGluZGV4IGFmM2Y1MzQuLjcxNjg4NGQgMTAwNjQ0CiAgCXRyYW5zZm9ybWVkX25hbWU9 YHQ9JyQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSknOyBcCiAgCQkJICBlY2hvIGdkYiB8IHNlZCAt ZSAiJCR0ImAgOyBcCiAgCQlpZiB0ZXN0ICJ4JCR0cmFuc2Zvcm1lZF9uYW1lIiA9IHg7IHRoZW4g XAotQEAgLTEyMDAsNiArMTI2NiwxMiBAQCBzdGFtcC1oOiBjb25maWcuaW4gY29uZmlnLnN0YXR1 cworQEAgLTEyMDIsNiArMTI3MCwxMiBAQCBzdGFtcC1oOiBjb25maWcuaW4gY29uZmlnLnN0YXR1 cwogIAkgIENPTkZJR19MSU5LUz0gXAogIAkgICQoU0hFTEwpIGNvbmZpZy5zdGF0dXMKICAKQEAg LTE3Niw3ICsyMDAsNyBAQCBpbmRleCBhZjNmNTM0Li43MTY4ODRkIDEwMDY0NAogIGNvbmZpZy5z dGF0dXM6IGNvbmZpZ3VyZSBjb25maWd1cmUudGd0IGNvbmZpZ3VyZS5ob3N0CiAgCSQoU0hFTEwp IGNvbmZpZy5zdGF0dXMgLS1yZWNoZWNrCiAgCi1AQCAtMTg0MywxMCArMTkxNSw1NCBAQCBweXRo b24ubzogJChzcmNkaXIpL3B5dGhvbi9weXRob24uYworQEAgLTE4NDUsMTAgKzE5MTksNTQgQEAg cHl0aG9uLm86ICQoc3JjZGlyKS9weXRob24vcHl0aG9uLmMKICAJJChDT01QSUxFKSAkKFBZVEhP Tl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHl0aG9uLmMKICAJJChQT1NUQ09NUElMRSkKICAK QEAgLTIzMSw3ICsyNTUsNyBAQCBpbmRleCBhZjNmNTM0Li43MTY4ODRkIDEwMDY0NAogIHB5dGhv bi11dGlscy5vOiAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi11dGlscy5jCiAgCSQoQ09NUElMRSkg JChQWVRIT05fQ0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi11dGlscy5jCiAgCSQoUE9T VENPTVBJTEUpCi1AQCAtMTg1NSw2ICsxOTcxLDMwIEBAIHB5dGhvbi12YWx1ZS5vOiAkKHNyY2Rp cikvcHl0aG9uL3B5dGhvbi12YWx1ZS5jCitAQCAtMTg1Nyw2ICsxOTc1LDM5IEBAIHB5dGhvbi12 YWx1ZS5vOiAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi12YWx1ZS5jCiAgCSQoQ09NUElMRSkgJChQ WVRIT05fQ0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi12YWx1ZS5jCiAgCSQoUE9TVENP TVBJTEUpCiAgCkBAIC0yNDIsMjIgKzI2NiwzMSBAQCBpbmRleCBhZjNmNTM0Li43MTY4ODRkIDEw MDY0NAogKyAgICBnZGIvY29tbWFuZC9wYWhvbGUucHkgZ2RiL2NvbW1hbmQvX19pbml0X18ucHkg XAogKyAgICBnZGIvY29tbWFuZC9pZ25vcmVfZXJyb3JzLnB5IGdkYi9jb21tYW5kL3NhdmVfYnJl YWtwb2ludHMucHkgXAogKyAgICBnZGIvbGlic3RkY3h4L3Y2L3ByaW50ZXJzLnB5IGdkYi9saWJz dGRjeHgvdjYvX19pbml0X18ucHkgXAotKyAgICBnZGIvbGlic3RkY3h4L19faW5pdF9fLnB5IGdk Yi9mdW5jdGlvbi9jYWxsZXJfaXMucHkJXAorKyAgICBnZGIvbGlic3RkY3h4L19faW5pdF9fLnB5 IGdkYi9mdW5jdGlvbi9jYWxsZXJfaXMucHkgXAogKyAgICBnZGIvZnVuY3Rpb24vaW5fc2NvcGUu cHkgZ2RiL2Z1bmN0aW9uL19faW5pdF9fLnB5IGdkYi9iYWNrdHJhY2UucHkgXAogKyAgICBnZGIv X19pbml0X18ucHkKICsKICsjIEluc3RhbGwgdGhlIFB5dGhvbiBsaWJyYXJ5LiAgUHl0aG9uIGxp YnJhcnkgZmlsZXMgZ28gdW5kZXIKLSsjICQoR0RCX0RBVEFESVJfUEFUSCkvcHl0aG9uLgorKyMg JChHREJfUFlUSE9ORElSX1BBVEgpL3B5dGhvbi4KICtpbnN0YWxsLXB5dGhvbjoKICsJZmlsZXM9 JyQoUFlfRklMRVMpJzsgZm9yIGZpbGUgaW4gJCRmaWxlczsgZG8gXAogKwkgIGRpcj1gZWNobyAi JCRmaWxlIiB8IHNlZCAncywvW14vXSokJCwsJ2A7IFwKLSsJICAkKFNIRUxMKSAkKHNyY2Rpcikv Li4vbWtpbnN0YWxsZGlycyAkKERFU1RESVIpJChHREJfREFUQURJUl9QQVRIKS9weXRob24vJCRk aXI7IFwKLSsJICAkKElOU1RBTExfREFUQSkgJChzcmNkaXIpL3B5dGhvbi9saWIvJCRmaWxlICQo REVTVERJUikkKEdEQl9EQVRBRElSX1BBVEgpL3B5dGhvbi8kJGZpbGU7IFwKKysJICAkKFNIRUxM KSAkKHNyY2RpcikvLi4vbWtpbnN0YWxsZGlycyAkKERFU1RESVIpJChHREJfUFlUSE9ORElSX1BB VEgpLyQkZGlyOyBcCisrCSAgJChJTlNUQUxMX0RBVEEpICQoc3JjZGlyKS9weXRob24vbGliLyQk ZmlsZSAkKERFU1RESVIpJChHREJfUFlUSE9ORElSX1BBVEgpLyQkZmlsZTsgXAogKwlkb25lCiAr Ci0rIyBCcnV0ZSBmb3JjZS4KKysjIE90aGVyIHBhY2thZ2VzIG1heSBoYXZlIHRoZWlyIGZpbGVz IGluc3RhbGxlZCBpbiAkKEdEQl9QWVRIT05ESVJfUEFUSCkuCiArdW5pbnN0YWxsLXB5dGhvbjoK LSsJcm0gLXJmICQoREVTVERJUikvJChHREJfREFUQURJUl9QQVRIKS9weXRob24KKysJcm0gLXJm ICQoREVTVERJUikvJChHREJfUFlUSE9ORElSX1BBVEgpL3B5dGhvbgorKwlmaWxlcz0nJChQWV9G SUxFUyknOyBmb3IgZmlsZSBpbiAkJGZpbGVzOyBkbyBcCisrCSAgZGlyPWBlY2hvICIkJGZpbGUi IHwgc2VkICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgIHJtIC1mICQoREVTVERJUikkKEdEQl9QWVRI T05ESVJfUEFUSCkvJCRmaWxlOyBcCisrCSAgd2hpbGUgdGVzdCAieCQkZmlsZSIgIT0gIngkJGRp ciI7IGRvIFwKKysJICAgIHJtZGlyIDI+L2Rldi9udWxsICIkKERFU1RESVIpJChHREJfUFlUSE9O RElSX1BBVEgpLyQkZGlyIjsgXAorKwkgICAgZmlsZT0iJCRkaXIiOyBcCisrCSAgICBkaXI9YGVj aG8gIiQkZmlsZSIgfCBzZWQgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgZG9uZSBcCisrCWRvbmUK ICsKICAjCiAgIyBEZXBlbmRlbmN5IHRyYWNraW5nLiAgTW9zdCBvZiB0aGlzIGlzIGNvbmRpdGlv bmFsIG9uIEdOVSBNYWtlIGJlaW5nCkBAIC03OTgsNiArODMxLDM5IEBAIGluZGV4IDUwMDdjZDAu LjI0MWE2YWMgMTAwNjQ0CiAgCSAgICBmcHJpbnRmX2ZpbHRlcmVkIChmaWxlLCAiXG4iKTsKICAJ ICB9CiAgCSAgYnJlYWs7CitkaWZmIC0tZ2l0IGEvZ2RiL2Jsb2NrLmMgYi9nZGIvYmxvY2suYwor aW5kZXggOGYwMTQwYy4uZDQ1MTc2OSAxMDA2NDQKKy0tLSBhL2dkYi9ibG9jay5jCisrKysgYi9n ZGIvYmxvY2suYworQEAgLTIwNywyNCArMjA3LDE2IEBAIGJsb2NrX3NldF9zY29wZSAoc3RydWN0 IGJsb2NrICpibG9jaywgY29uc3QgY2hhciAqc2NvcGUsCisgfQorIAorIC8qIFRoaXMgcmV0dXJu cyB0aGUgZmlyc3QgdXNpbmcgZGlyZWN0aXZlcyBhc3NvY2lhdGVkIHRvIEJMT0NLLCBpZgorLSAg IGFueS4gICovCistCistLyogRklYTUU6IGNhcmx0b24vMjAwMy0wNC0yMzogVGhpcyB1c2VzIHRo ZSBmYWN0IHRoYXQgd2UgY3VycmVudGx5CistICAgb25seSBoYXZlIHVzaW5nIGRpcmVjdGl2ZXMg aW4gc3RhdGljIGJsb2NrcywgYmVjYXVzZSB3ZSBvbmx5CistICAgZ2VuZXJhdGUgdXNpbmcgZGly ZWN0aXZlcyBmcm9tIGFub255bW91cyBuYW1lc3BhY2VzLiAgRXZlbnR1YWxseSwKKy0gICB3aGVu IHdlIHN1cHBvcnQgdXNpbmcgZGlyZWN0aXZlcyBldmVyeXdoZXJlLCB3ZSdsbCB3YW50IHRvIHJl cGxhY2UKKy0gICB0aGlzIGJ5IHNvbWUgaXRlcmF0b3IgZnVuY3Rpb25zLiAgKi8KKysgICBhbnku ICBFYWNoIEJMT0NLX05BTUVTUEFDRSgpLT5VU0lORyBhbHJlYWR5IGNvbnRhaW5zIGFsbCB0aGUg bmFtZXNwYWNlcworKyAgIGltcG9ydGVkIGF0IHRoYXQgY29kZSBwb2ludCAtIGV2ZW4gdGhvc2Ug ZnJvbSBpdHMgcGFyZW50IGJsb2Nrcy4gICovCisgCisgc3RydWN0IHVzaW5nX2RpcmVjdCAqCisg YmxvY2tfdXNpbmcgKGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2spCisgeworLSAgY29uc3Qgc3Ry dWN0IGJsb2NrICpzdGF0aWNfYmxvY2sgPSBibG9ja19zdGF0aWNfYmxvY2sgKGJsb2NrKTsKKy0K Ky0gIGlmIChzdGF0aWNfYmxvY2sgPT0gTlVMTAorLSAgICAgIHx8IEJMT0NLX05BTUVTUEFDRSAo c3RhdGljX2Jsb2NrKSA9PSBOVUxMKQorKyAgaWYgKGJsb2NrID09IE5VTEwgfHwgQkxPQ0tfTkFN RVNQQUNFIChibG9jaykgPT0gTlVMTCkKKyAgICAgcmV0dXJuIE5VTEw7CisgICBlbHNlCistICAg IHJldHVybiBCTE9DS19OQU1FU1BBQ0UgKHN0YXRpY19ibG9jayktPnVzaW5nOworKyAgICByZXR1 cm4gQkxPQ0tfTkFNRVNQQUNFIChibG9jayktPnVzaW5nOworIH0KKyAKKyAvKiBTZXQgQkxPQ0sn cyB1c2luZyBtZW1iZXIgdG8gVVNJTkc7IGlmIG5lZWRlZCwgYWxsb2NhdGUgbWVtb3J5IHZpYQog ZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmMgYi9nZGIvYnJlYWtwb2ludC5jCiBpbmRleCBi MjNiMjk0Li5lOWJjNTNmIDEwMDY0NAogLS0tIGEvZ2RiL2JyZWFrcG9pbnQuYwpAQCAtMTYzOCwx MSArMTcwNCw5MiBAQCBpbmRleCA5NDI4N2RlLi44NTUyZTFiIDEwMDY0NAogK2V4dGVybiB2b2lk IHNldF9icmVha3BvaW50X2NvbmRpdGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIsIGNoYXIgKmV4 cCwgaW50IGZyb21fdHR5KTsKICsKICAjZW5kaWYgLyogIWRlZmluZWQgKEJSRUFLUE9JTlRfSCkg Ki8KK2RpZmYgLS1naXQgYS9nZGIvYnVpbGRzeW0uYyBiL2dkYi9idWlsZHN5bS5jCitpbmRleCA1 NWFjZTE1Li4yNzIyZGFhIDEwMDY0NAorLS0tIGEvZ2RiL2J1aWxkc3ltLmMKKysrKyBiL2dkYi9i dWlsZHN5bS5jCitAQCAtMzg0LDYgKzM4NCw4IEBAIGZpbmlzaF9ibG9jayAoc3RydWN0IHN5bWJv bCAqc3ltYm9sLCBzdHJ1Y3QgcGVuZGluZyAqKmxpc3RoZWFkLAorICAgICAgIG9wYmxvY2sgPSBw YmxvY2s7CisgICAgIH0KKyAKKysgIGJsb2NrX3NldF91c2luZyAoYmxvY2ssIHVzaW5nX2RpcmVj dGl2ZXMsICZvYmpmaWxlLT5vYmpmaWxlX29ic3RhY2spOworKworICAgcmVjb3JkX3BlbmRpbmdf YmxvY2sgKG9iamZpbGUsIGJsb2NrLCBvcGJsb2NrKTsKKyAKKyAgIHJldHVybiBibG9jazsKK0BA IC04MTUsMTAgKzgxNyw2IEBAIHN0YXJ0X3N5bXRhYiAoY2hhciAqbmFtZSwgY2hhciAqZGlybmFt ZSwgQ09SRV9BRERSIHN0YXJ0X2FkZHIpCisgICAvKiBXZSBzaG91bGRuJ3QgaGF2ZSBhbnkgYWRk cmVzcyBtYXAgYXQgdGhpcyBwb2ludC4gICovCisgICBnZGJfYXNzZXJ0ICghIHBlbmRpbmdfYWRk cm1hcCk7CisgCistICAvKiBTZXQgdXAgc3VwcG9ydCBmb3IgQysrIG5hbWVzcGFjZSBzdXBwb3J0 LCBpbiBjYXNlIHdlIG5lZWQgaXQuICAqLworLQorLSAgY3BfaW5pdGlhbGl6ZV9uYW1lc3BhY2Ug KCk7CistCisgICAvKiBJbml0aWFsaXplIHRoZSBsaXN0IG9mIHN1YiBzb3VyY2UgZmlsZXMgd2l0 aCBvbmUgZW50cnkgZm9yIHRoaXMKKyAgICAgIGZpbGUgKHRoZSB0b3AtbGV2ZWwgc291cmNlIGZp bGUpLiAgKi8KKyAKK0BAIC0xMDE1LDggKzEwMTMsNiBAQCBlbmRfc3ltdGFiIChDT1JFX0FERFIg ZW5kX2FkZHIsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBpbnQgc2VjdGlvbikKKyAgICAgICBm aW5pc2hfYmxvY2sgKDAsICZnbG9iYWxfc3ltYm9scywgMCwgbGFzdF9zb3VyY2Vfc3RhcnRfYWRk ciwgZW5kX2FkZHIsCisgCQkgICAgb2JqZmlsZSk7CisgICAgICAgYmxvY2t2ZWN0b3IgPSBtYWtl X2Jsb2NrdmVjdG9yIChvYmpmaWxlKTsKKy0gICAgICBjcF9maW5hbGl6ZV9uYW1lc3BhY2UgKEJM T0NLVkVDVE9SX0JMT0NLIChibG9ja3ZlY3RvciwgU1RBVElDX0JMT0NLKSwKKy0JCQkgICAgICZv YmpmaWxlLT5vYmpmaWxlX29ic3RhY2spOworICAgICB9CisgCisgICAvKiBSZWFkIHRoZSBsaW5l IHRhYmxlIGlmIGl0IGhhcyB0byBiZSByZWFkIHNlcGFyYXRlbHkuICAqLworQEAgLTEyMDIsMTAg KzExOTgsMTIgQEAgcHVzaF9jb250ZXh0IChpbnQgZGVzYywgQ09SRV9BRERSIHZhbHUpCisgICBu ZXctPnBhcmFtcyA9IHBhcmFtX3N5bWJvbHM7CisgICBuZXctPm9sZF9ibG9ja3MgPSBwZW5kaW5n X2Jsb2NrczsKKyAgIG5ldy0+c3RhcnRfYWRkciA9IHZhbHU7CisrICBuZXctPnVzaW5nX2RpcmVj dGl2ZXMgPSB1c2luZ19kaXJlY3RpdmVzOworICAgbmV3LT5uYW1lID0gTlVMTDsKKyAKKyAgIGxv Y2FsX3N5bWJvbHMgPSBOVUxMOworICAgcGFyYW1fc3ltYm9scyA9IE5VTEw7CisrICB1c2luZ19k aXJlY3RpdmVzID0gTlVMTDsKKyAKKyAgIHJldHVybiBuZXc7CisgfQorZGlmZiAtLWdpdCBhL2dk Yi9idWlsZHN5bS5oIGIvZ2RiL2J1aWxkc3ltLmgKK2luZGV4IGJmMjNlY2MuLmY1NDJhY2EgMTAw NjQ0CistLS0gYS9nZGIvYnVpbGRzeW0uaAorKysrIGIvZ2RiL2J1aWxkc3ltLmgKK0BAIC0xMjUs NiArMTI1LDEwIEBAIEVYVEVSTiBzdHJ1Y3QgcGVuZGluZyAqbG9jYWxfc3ltYm9sczsKKyAKKyBF WFRFUk4gc3RydWN0IHBlbmRpbmcgKnBhcmFtX3N5bWJvbHM7CisgCisrLyogdXNpbmcgZGlyZWN0 aXZlcyBsb2NhbCB0byBsZXhpY2FsIGNvbnRleHQgKi8KKysKKytFWFRFUk4gc3RydWN0IHVzaW5n X2RpcmVjdCAqdXNpbmdfZGlyZWN0aXZlczsKKysKKyAvKiBTdGFjayByZXByZXNlbnRpbmcgdW5j bG9zZWQgbGV4aWNhbCBjb250ZXh0cyAodGhhdCB3aWxsIGJlY29tZQorICAgIGJsb2NrcywgZXZl bnR1YWxseSkuICAqLworIAorQEAgLTEzOCw2ICsxNDIsMTAgQEAgc3RydWN0IGNvbnRleHRfc3Rh Y2sKKyAKKyAgICAgc3RydWN0IHBlbmRpbmcgKnBhcmFtczsKKyAKKysgICAgLyogUGVuZGluZyB1 c2luZyBkaXJlY3RpdmVzIGF0IHRoZSB0aW1lIHdlIGVudGVyZWQgKi8KKysKKysgICAgc3RydWN0 IHVzaW5nX2RpcmVjdCAqdXNpbmdfZGlyZWN0aXZlczsKKysKKyAgICAgLyogUG9pbnRlciBpbnRv IGJsb2NrbGlzdCBhcyBvZiBlbnRyeSAqLworIAorICAgICBzdHJ1Y3QgcGVuZGluZ19ibG9jayAq b2xkX2Jsb2NrczsKIGRpZmYgLS1naXQgYS9nZGIvYy1leHAueSBiL2dkYi9jLWV4cC55Ci1pbmRl eCBkNGJiYmNjLi40NWNkMjgyIDEwMDY0NAoraW5kZXggZDRiYmJjYy4uMTA3NDUyYSAxMDA2NDQK IC0tLSBhL2dkYi9jLWV4cC55CiArKysgYi9nZGIvYy1leHAueQotQEAgLTE0Myw2ICsxNDMsNyBA QCB2b2lkIHl5ZXJyb3IgKGNoYXIgKik7CitAQCAtMTE5LDYgKzExOSw4IEBAIHN0YXRpYyBpbnQg eXlsZXggKHZvaWQpOworIAorIHZvaWQgeXllcnJvciAoY2hhciAqKTsKKyAKKysvKiBDbGVhbnVw IGZvciAnbm9uZW1wdHlfdHlwZWxpc3QnICovCisrc3RhdGljIHN0cnVjdCBjbGVhbnVwICp0eXBl bGlzdF9jbGVhbnVwOworICV9CisgCisgLyogQWx0aG91Z2ggdGhlIHlhY2MgInZhbHVlIiBvZiBh biBleHByZXNzaW9uIGlzIG5vdCB1c2VkLAorQEAgLTE0Myw2ICsxNDUsNyBAQCB2b2lkIHl5ZXJy b3IgKGNoYXIgKik7CiAgICAgIHN0cnVjdCBzeW1ib2wgKnN5bTsKICAgICAgc3RydWN0IHR5cGUg KnR2YWw7CiAgICAgIHN0cnVjdCBzdG9rZW4gc3ZhbDsKQEAgLTE2NTAsNyArMTc5Nyw3IEBAIGlu ZGV4IGQ0YmJiY2MuLjQ1Y2QyODIgMTAwNjQ0CiAgICAgIHN0cnVjdCB0dHlwZSB0c3ltOwogICAg ICBzdHJ1Y3Qgc3ltdG9rZW4gc3N5bTsKICAgICAgaW50IHZvaWR2YWw7Ci1AQCAtMTUwLDYgKzE1 MSw3IEBAIHZvaWQgeXllcnJvciAoY2hhciAqKTsKK0BAIC0xNTAsNiArMTUzLDcgQEAgdm9pZCB5 eWVycm9yIChjaGFyICopOwogICAgICBlbnVtIGV4cF9vcGNvZGUgb3Bjb2RlOwogICAgICBzdHJ1 Y3QgaW50ZXJuYWx2YXIgKml2YXI7CiAgCkBAIC0xNjU4LDcgKzE4MDUsNyBAQCBpbmRleCBkNGJi YmNjLi40NWNkMjgyIDEwMDY0NAogICAgICBzdHJ1Y3QgdHlwZSAqKnR2ZWM7CiAgICAgIGludCAq aXZlYzsKICAgIH0KLUBAIC0xODIsMTEgKzE4NCwxMyBAQCBzdGF0aWMgaW50IHBhcnNlX251bWJl ciAoY2hhciAqLCBpbnQsIGludCwgWVlTVFlQRSAqKTsKK0BAIC0xODIsMTEgKzE4NiwxMyBAQCBz dGF0aWMgaW50IHBhcnNlX251bWJlciAoY2hhciAqLCBpbnQsIGludCwgWVlTVFlQRSAqKTsKICAg ICBDb250ZXh0cyB3aGVyZSB0aGlzIGRpc3RpbmN0aW9uIGlzIG5vdCBpbXBvcnRhbnQgY2FuIHVz ZSB0aGUKICAgICBub250ZXJtaW5hbCAibmFtZSIsIHdoaWNoIG1hdGNoZXMgZWl0aGVyIE5BTUUg b3IgVFlQRU5BTUUuICAqLwogIApAQCAtMTY3NCw3ICsxODIxLDQ2IEBAIGluZGV4IGQ0YmJiY2Mu LjQ1Y2QyODIgMTAwNjQ0CiAgJXR5cGUgPHNzeW0+IG5hbWVfbm90X3R5cGVuYW1lCiAgJXR5cGUg PHRzeW0+IHR5cGVuYW1lCiAgCi1AQCAtNTI0LDYgKzUyOCwxNSBAQCBleHAJOglJTlQKK0BAIC0z OTksNiArNDA1LDM4IEBAIGFyZ2xpc3QJOglhcmdsaXN0ICcsJyBleHAgICAlcHJlYyBBQk9WRV9D T01NQQorIAkJCXsgYXJnbGlzdF9sZW4rKzsgfQorIAk7CisgCisrZXhwICAgICA6ICAgICAgIGV4 cCAnKCcgbm9uZW1wdHlfdHlwZWxpc3QgJyknCisrCQkJeyBpbnQgaTsKKysJCQkgIC8qIFdoYXQg dG8gZG8gYWJvdXQgZnJlZWluZyBtZW1vcnkgaWYKKysJCQkgICAgIHRoZXJlIGlzIGFuIGVycm9y IGR1cmluZyBwYXJzaW5nPyAqLworKwkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKFRZUEVfSU5T VEFOQ0UpOworKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0ICgoTE9OR0VTVCkgJDxpdmVjPjNb MF0pOworKwkJCSAgZm9yIChpID0gMDsgaSA8ICQ8aXZlYz4zWzBdOyArK2kpCisrCQkJICAgIHdy aXRlX2V4cF9lbHRfdHlwZSAoJDx0dmVjPjNbaSArIDFdKTsKKysJCQkgIHdyaXRlX2V4cF9lbHRf bG9uZ2NzdCgoTE9OR0VTVCkgJDxpdmVjPjNbMF0pOworKwkJCSAgd3JpdGVfZXhwX2VsdF9vcGNv ZGUgKFRZUEVfSU5TVEFOQ0UpOworKwkJCSAgZG9fY2xlYW51cHMgKHR5cGVsaXN0X2NsZWFudXAp OworKwkJCX0KKysJOworKworKy8qCisrZXhwICAgICA6ICAgICAgIEJMT0NLTkFNRSAnKCcgbm9u ZW1wdHlfdHlwZWxpc3QgJyknCisrCQkJeyBpbnQgaTsKKysJCQkgIHdyaXRlX2V4cF9lbHRfb3Bj b2RlIChUWVBFX0lOU1RBTkNFX0xPT0tVUCk7CisrCQkJICB3cml0ZV9leHBfZWx0X3N5bSAoJDEu c3ltKTsKKysJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChUWVBFX0lOU1RBTkNFX0xPT0tVUCk7 CisrCisrCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAoVFlQRV9JTlNUQU5DRSk7CisrCQkJICB3 cml0ZV9leHBfZWx0X2xvbmdjc3QgKChMT05HRVNUKSAkPGl2ZWM+M1swXSk7CisrCQkJICBmb3Ig KGkgPSAwOyBpIDwgJDxpdmVjPjNbMF07ICsraSkKKysJCQkgICAgd3JpdGVfZXhwX2VsdF90eXBl ICgkPHR2ZWM+M1tpICsgMV0pOworKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0KChMT05HRVNU KSAkPGl2ZWM+M1swXSk7CisrCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAoVFlQRV9JTlNUQU5D RSk7CisrCQkJICBkb19jbGVhbnVwcyAodHlwZWxpc3RfY2xlYW51cCk7CisrCQkJfQorKwk7Cisr Ki8KKysKKyByY3VybHkJOgknfScKKyAJCQl7ICQkID0gZW5kX2FyZ2xpc3QgKCkgLSAxOyB9Cisg CTsKK0BAIC01MjQsNiArNTYyLDE1IEBAIGV4cAk6CUlOVAogIAkJCSAgd3JpdGVfZXhwX2VsdF9v cGNvZGUgKE9QX0xPTkcpOyB9CiAgCTsKICAKQEAgLTE2OTAsNyArMTg3Niw3IEBAIGluZGV4IGQ0 YmJiY2MuLjQ1Y2QyODIgMTAwNjQ0CiAgZXhwCToJTkFNRV9PUl9JTlQKICAJCQl7IFlZU1RZUEUg dmFsOwogIAkJCSAgcGFyc2VfbnVtYmVyICgkMS5zdG9rZW4ucHRyLCAkMS5zdG9rZW4ubGVuZ3Ro LCAwLCAmdmFsKTsKLUBAIC01NzIsNDggKzU4NSw2NCBAQCBzdHJpbmdfZXhwOgorQEAgLTU3Miw0 OCArNjE5LDY0IEBAIHN0cmluZ19leHA6CiAgCQkJICAgICBzdHJpbmcuICBOb3RlIHRoYXQgd2Ug Zm9sbG93IHRoZQogIAkJCSAgICAgTlVMLXRlcm1pbmF0aW9uIGNvbnZlbnRpb24gb2YgdGhlCiAg CQkJICAgICBsZXhlci4gICovCkBAIC0xNzg1LDcgKzE5NzEsNDcgQEAgaW5kZXggZDRiYmJjYy4u NDVjZDI4MiAxMDA2NDQKICAJCQl9CiAgCTsKICAKLUBAIC0xMzYxLDYgKzEzOTAsMjYzIEBAIHBh cnNlX251bWJlciAocCwgbGVuLCBwYXJzZWRfZmxvYXQsIHB1dGl0aGVyZSkKK0BAIC03MTMsMTIg Kzc3NiwxMyBAQCBxdWFsaWZpZWRfbmFtZToJdHlwZWJhc2UgQ09MT05DT0xPTiBuYW1lCisgCTsK KyAKKyB2YXJpYWJsZToJcXVhbGlmaWVkX25hbWUKKysJfAlDT0xPTkNPTE9OIHF1YWxpZmllZF9u YW1lCisgCXwJQ09MT05DT0xPTiBuYW1lCisgCQkJeworIAkJCSAgY2hhciAqbmFtZSA9IGNvcHlf bmFtZSAoJDIpOworIAkJCSAgc3RydWN0IHN5bWJvbCAqc3ltOworIAkJCSAgc3RydWN0IG1pbmlt YWxfc3ltYm9sICptc3ltYm9sOworLQorKwkJCSAgCisgCQkJICBzeW0gPQorIAkJCSAgICBsb29r dXBfc3ltYm9sIChuYW1lLCAoY29uc3Qgc3RydWN0IGJsb2NrICopIE5VTEwsCisgCQkJCQkgICBW QVJfRE9NQUlOLCAoaW50ICopIE5VTEwpOworQEAgLTg1Niw3ICs5MjAsNyBAQCBhcnJheV9tb2Q6 CSdbJyAnXScKKyBmdW5jX21vZDoJJygnICcpJworIAkJCXsgJCQgPSAwOyB9CisgCXwJJygnIG5v bmVtcHR5X3R5cGVsaXN0ICcpJworLQkJCXsgZnJlZSAoJDIpOyAkJCA9IDA7IH0KKysJCQl7IGRv X2NsZWFudXBzICh0eXBlbGlzdF9jbGVhbnVwKTsgJCQgPSAwOyB9CisgCTsKKyAKKyAvKiBXZSB1 c2VkIHRvIHRyeSB0byByZWNvZ25pemUgcG9pbnRlciB0byBtZW1iZXIgdHlwZXMgaGVyZSwgYnV0 CitAQCAtMTA1NywxMiArMTEyMSwxNSBAQCB0eXBlbmFtZToJVFlQRU5BTUUKKyBub25lbXB0eV90 eXBlbGlzdAorIAk6CXR5cGUKKyAJCXsgJCQgPSAoc3RydWN0IHR5cGUgKiopIG1hbGxvYyAoc2l6 ZW9mIChzdHJ1Y3QgdHlwZSAqKSAqIDIpOworKwkJICB0eXBlbGlzdF9jbGVhbnVwID0gbWFrZV9j bGVhbnVwIChmcmVlLCAkJCk7CisgCQkgICQ8aXZlYz4kWzBdID0gMTsJLyogTnVtYmVyIG9mIHR5 cGVzIGluIHZlY3RvciAqLworIAkJICAkJFsxXSA9ICQxOworIAkJfQorIAl8CW5vbmVtcHR5X3R5 cGVsaXN0ICcsJyB0eXBlCisgCQl7IGludCBsZW4gPSBzaXplb2YgKHN0cnVjdCB0eXBlICopICog KCsrKCQ8aXZlYz4xWzBdKSArIDEpOworIAkJICAkJCA9IChzdHJ1Y3QgdHlwZSAqKikgcmVhbGxv YyAoKGNoYXIgKikgJDEsIGxlbik7CisrCQkgIGRpc2NhcmRfY2xlYW51cHMgKHR5cGVsaXN0X2Ns ZWFudXApOworKwkJICB0eXBlbGlzdF9jbGVhbnVwID0gbWFrZV9jbGVhbnVwIChmcmVlLCAkJCk7 CisgCQkgICQkWyQ8aXZlYz4kWzBdXSA9ICQzOworIAkJfQorIAk7CitAQCAtMTM2MSw2ICsxNDI4 LDI2MyBAQCBwYXJzZV9udW1iZXIgKHAsIGxlbiwgcGFyc2VkX2Zsb2F0LCBwdXRpdGhlcmUpCiAg ICAgcmV0dXJuIElOVDsKICB9CiAgCkBAIC0yMDQ5LDcgKzIyNzUsMTggQEAgaW5kZXggZDRiYmJj Yy4uNDVjZDI4MiAxMDA2NDQKICBzdHJ1Y3QgdG9rZW4KICB7CiAgICBjaGFyICpvcGVyYXRvcjsK LUBAIC0xNTMwLDEyICsxODE2LDYgQEAgeXlsZXggKCkKK0BAIC0xNTI2LDIzICsxODUwLDMzIEBA IHN0YXRpYyBpbnQgbGFzdF93YXNfc3RydWN0b3A7Cisgc3RhdGljIGludAorIHl5bGV4ICgpCisg eworKyAgLyogbmFtZV9wcmVmaXggc3RvcmVzIHRoZSBmdWxsIHF1YWxpZmljYXRpb24gb2YgYSB2 YXJpYWJsZSB0aGF0IGlzCisrICAgICBzcGVjaWZpZWQgaW4gdGhlIGV4cHJlc3Npb24uIEl0IGlz IHVzZWQgdG8gZWxlbWluYXRlIGNvbmZ1c2lvbiAKKysgICAgIGR1cmluZyBsb29rdXAuKi8KKysg IHN0YXRpYyBjaGFyKiBuYW1lX3ByZWZpeCA9IE5VTEw7CisrICBzdGF0aWMgaW50IG5hbWVfcHJl Zml4X2xlbiA9IDA7CisrICBzdGF0aWMgaW50IHRlcm1pbmF0ZV9wcmVmaXggPSAwOworKyAgCisg ICBpbnQgYzsKICAgIGludCBuYW1lbGVuOwogICAgdW5zaWduZWQgaW50IGk7CiAgICBjaGFyICp0 b2tzdGFydDsKQEAgLTIwNjIsNyArMjI5OSw1MiBAQCBpbmRleCBkNGJiYmNjLi40NWNkMjgyIDEw MDY0NAogICAgaW50IHNhd19zdHJ1Y3RvcCA9IGxhc3Rfd2FzX3N0cnVjdG9wOwogICAgY2hhciAq Y29weTsKICAKLUBAIC0xNjA3LDQ2ICsxODg3LDYgQEAgeXlsZXggKCkKKyAgIGxhc3Rfd2FzX3N0 cnVjdG9wID0gMDsKKy0KKysgIAorICByZXRyeToKKy0KKysgIAorKyAgaWYodGVybWluYXRlX3By ZWZpeCB8fAorKyAgICAgbGV4cHRyICE9IG5hbWVfcHJlZml4ICsgbmFtZV9wcmVmaXhfbGVuIC8v IFNvbWUgdG9rZW4gd2FzIHNraXBlZCBzbyBjbGVhciBuYW1lX3ByZWZpeAorKyAgICl7CisrICAg IG5hbWVfcHJlZml4ID0gTlVMTDsKKysgICAgbmFtZV9wcmVmaXhfbGVuID0gMDsKKysgIH0KKysg ICAgCisrICB0ZXJtaW5hdGVfcHJlZml4ID0gMTsKKysgIAkgIAkgIAorICAgLyogQ2hlY2sgaWYg dGhpcyBpcyBhIG1hY3JvIGludm9jYXRpb24gdGhhdCB3ZSBuZWVkIHRvIGV4cGFuZC4gICovCisg ICBpZiAoISBzY2FubmluZ19tYWNyb19leHBhbnNpb24gKCkpCisgICAgIHsKK0BAIC0xNTcwLDEw ICsxOTA0LDE5IEBAIHl5bGV4ICgpCisgICBmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mIHRva2VudGFi MiAvIHNpemVvZiB0b2tlbnRhYjJbMF07IGkrKykKKyAgICAgaWYgKHN0cm5jbXAgKHRva3N0YXJ0 LCB0b2tlbnRhYjJbaV0ub3BlcmF0b3IsIDIpID09IDApCisgICAgICAgeworKwkKKysJaWYodG9r ZW50YWIyW2ldLnRva2VuID09IENPTE9OQ09MT04peworKwkgIG5hbWVfcHJlZml4X2xlbiArPSAy OworKwkgIHRlcm1pbmF0ZV9wcmVmaXggPSAwOworKwkgIGlmKG5hbWVfcHJlZml4ID09IE5VTEwp eworKyAgIAkgICAgbmFtZV9wcmVmaXggPSBsZXhwdHI7CisrICAgICAgICAgIH0KKysJfQorIAls ZXhwdHIgKz0gMjsKKyAJeXlsdmFsLm9wY29kZSA9IHRva2VudGFiMltpXS5vcGNvZGU7CisgCWlm IChpbl9wYXJzZV9maWVsZCAmJiB0b2tlbnRhYjJbaV0udG9rZW4gPT0gQVJST1cpCisgCSAgbGFz dF93YXNfc3RydWN0b3AgPSAxOworKwkKKyAJcmV0dXJuIHRva2VudGFiMltpXS50b2tlbjsKKyAg ICAgICB9CisgCitAQCAtMTYwMiw1MSArMTk0NSwxMyBAQCB5eWxleCAoKQorICAgICAgICAgcmV0 dXJuIDA7CisgCisgICAgIGNhc2UgJyAnOgorKyAgICAgIG5hbWVfcHJlZml4X2xlbisrOworKyAg ICAgIHRlcm1pbmF0ZV9wcmVmaXggPSAwOworICAgICBjYXNlICdcdCc6CisgICAgIGNhc2UgJ1xu JzoKICAgICAgICBsZXhwdHIrKzsKICAgICAgICBnb3RvIHJldHJ5OwogIApAQCAtMjEwOSw3ICsy MzkxLDcgQEAgaW5kZXggZDRiYmJjYy4uNDVjZDI4MiAxMDA2NDQKICAgICAgY2FzZSAnKCc6CiAg ICAgICAgcGFyZW5fZGVwdGgrKzsKICAgICAgICBsZXhwdHIrKzsKLUBAIC0xNzY0LDcwICsyMDA0 LDMzIEBAIHl5bGV4ICgpCitAQCAtMTc2NCw3MCArMjA2OSwzMyBAQCB5eWxleCAoKQogICAgICAg IGxleHB0cisrOwogICAgICAgIHJldHVybiBjOwogIApAQCAtMjIwMiw2ICsyNDg0LDU5IEBAIGlu ZGV4IGQ0YmJiY2MuLjQ1Y2QyODIgMTAwNjQ0CiAgICAgIH0KICAKICAgIGlmICghKGMgPT0gJ18n IHx8IGMgPT0gJyQnCitAQCAtMTgzNiwxMSArMjEwNCwxMyBAQCB5eWxleCAoKQorICAgICBlcnJv ciAoIkludmFsaWQgY2hhcmFjdGVyICclYycgaW4gZXhwcmVzc2lvbi4iLCBjKTsKKyAKKyAgIC8q IEl0J3MgYSBuYW1lLiAgU2VlIGhvdyBsb25nIGl0IGlzLiAgKi8KKysgIAorICAgbmFtZWxlbiA9 IDA7CisgICBmb3IgKGMgPSB0b2tzdGFydFtuYW1lbGVuXTsKKyAgICAgICAgKGMgPT0gJ18nIHx8 IGMgPT0gJyQnIHx8IChjID49ICcwJyAmJiBjIDw9ICc5JykKKyAJfHwgKGMgPj0gJ2EnICYmIGMg PD0gJ3onKSB8fCAoYyA+PSAnQScgJiYgYyA8PSAnWicpIHx8IGMgPT0gJzwnKTspCisgICAgIHsK KysgICAgCisgICAgICAgLyogVGVtcGxhdGUgcGFyYW1ldGVyIGxpc3RzIGFyZSBwYXJ0IG9mIHRo ZSBuYW1lLgorIAkgRklYTUU6IFRoaXMgbWlzaGFuZGxlcyBgcHJpbnQgJGE8NCYmJGE+MycuICAq LworIAorQEAgLTE5MDQsMTQgKzIxNzQsMjkgQEAgeXlsZXggKCkKKyAgICAgIGN1cnJlbnRseSBh cyBuYW1lcyBvZiB0eXBlczsgTkFNRSBmb3Igb3RoZXIgc3ltYm9scy4KKyAgICAgIFRoZSBjYWxs ZXIgaXMgbm90IGNvbnN0cmFpbmVkIHRvIGNhcmUgYWJvdXQgdGhlIGRpc3RpbmN0aW9uLiAgKi8K KyAgIHsKKysgICAgY2hhciAqdG1wID0gY29weTsKKyAgICAgc3RydWN0IHN5bWJvbCAqc3ltOwor ICAgICBpbnQgaXNfYV9maWVsZF9vZl90aGlzID0gMDsKKyAgICAgaW50IGhleHR5cGU7CisgCist ICAgIHN5bSA9IGxvb2t1cF9zeW1ib2wgKGNvcHksIGV4cHJlc3Npb25fY29udGV4dF9ibG9jaywK KysgICAgaWYobmFtZV9wcmVmaXggIT0gTlVMTCl7CisrICAgICAgdG1wID0gc2F2ZXN0cmluZyAo bmFtZV9wcmVmaXgsIG5hbWVfcHJlZml4X2xlbituYW1lbGVuKTsKKysgICAgfQorKworKyAgICBz eW0gPSBsb29rdXBfc3ltYm9sICh0bXAsIGV4cHJlc3Npb25fY29udGV4dF9ibG9jaywKKyAJCQkg VkFSX0RPTUFJTiwKKyAJCQkgcGFyc2VfbGFuZ3VhZ2UtPmxhX2xhbmd1YWdlID09IGxhbmd1YWdl X2NwbHVzCisgCQkJID8gJmlzX2FfZmllbGRfb2ZfdGhpcyA6IChpbnQgKikgTlVMTCk7CisrCQkJ IAorKyAgICAvKiBrZWVwIHRoaXMgbmFtZSBhcyBwcmVmaXggZm9yIHRoZSBuZXh0IG5hbWUgKi8K KysgICAgaWYoc3ltKXsKKysgICAgICBpZihuYW1lX3ByZWZpeCA9PSBOVUxMKXsKKysgICAgICAg IG5hbWVfcHJlZml4ID0gdG9rc3RhcnQ7CisrICAgICAgfQorKyAgICAgIG5hbWVfcHJlZml4X2xl biArPSBuYW1lbGVuOworKyAgICAgIHRlcm1pbmF0ZV9wcmVmaXggPSAwOworKyAgICB9CisrCisg ICAgIC8qIENhbGwgbG9va3VwX3N5bXRhYiwgbm90IGxvb2t1cF9wYXJ0aWFsX3N5bXRhYiwgaW4g Y2FzZSB0aGVyZSBhcmUKKyAgICAgICAgbm8gcHN5bXRhYnMgKGNvZmYsIHhjb2ZmLCBvciBzb21l IGZ1dHVyZSBjaGFuZ2UgdG8gYmxvdyBhd2F5IHRoZQorICAgICAgICBwc3ltdGFicyBvbmNlIG9u Y2Ugc3ltYm9scyBhcmUgcmVhZCkuICAqLworQEAgLTE5NzAsNiArMjI1NSw3IEBAIHl5bGV4ICgp CisgICAgIHl5bHZhbC5zc3ltLmlzX2FfZmllbGRfb2ZfdGhpcyA9IGlzX2FfZmllbGRfb2ZfdGhp czsKKyAgICAgaWYgKGluX3BhcnNlX2ZpZWxkICYmICpsZXhwdHIgPT0gJ1wwJykKKyAgICAgICBz YXdfbmFtZV9hdF9lb2YgPSAxOworKyAgICAgICAgCisgICAgIHJldHVybiBOQU1FOworICAgfQor IH0KIGRpZmYgLS1naXQgYS9nZGIvYy1sYW5nLmMgYi9nZGIvYy1sYW5nLmMKIGluZGV4IDhiNTQx MGYuLjE4ODc1NWIgMTAwNjQ0CiAtLS0gYS9nZGIvYy1sYW5nLmMKQEAgLTMyMTMsMTAgKzM1NDgs NjkgQEAgaW5kZXggMDZjNTc2Ny4uYmE5ZDk5NiAxMDA2NDQKICAJCQljb25zdCBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7CiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL2MtdHlwZXBy aW50LmMgYi9nZGIvYy10eXBlcHJpbnQuYwotaW5kZXggMDkyOTUxNi4uMmFhZjlhZCAxMDA2NDQK K2luZGV4IDA5Mjk1MTYuLmMwMDVmZTQgMTAwNjQ0CiAtLS0gYS9nZGIvYy10eXBlcHJpbnQuYwog KysrIGIvZ2RiL2MtdHlwZXByaW50LmMKLUBAIC01NTksNyArNTU5LDEyIEBAIGNfdHlwZV9wcmlu dF92YXJzcGVjX3N1ZmZpeCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB1aV9maWxlICpzdHJl YW0sCitAQCAtNDAsOCArNDAsNiBAQCBzdGF0aWMgdm9pZCBjcF90eXBlX3ByaW50X21ldGhvZF9h cmdzIChzdHJ1Y3QgdHlwZSAqbXR5cGUsIGNoYXIgKnByZWZpeCwKKyAJCQkJICAgICAgIGNoYXIg KnZhcnN0cmluZywgaW50IHN0YXRpY3AsCisgCQkJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtKTsKKyAKKy1zdGF0aWMgdm9pZCBjX3R5cGVfcHJpbnRfYXJncyAoc3RydWN0IHR5cGUgKiwg c3RydWN0IHVpX2ZpbGUgKik7CistCisgc3RhdGljIHZvaWQgY3BfdHlwZV9wcmludF9kZXJpdmF0 aW9uX2luZm8gKHN0cnVjdCB1aV9maWxlICosIHN0cnVjdCB0eXBlICopOworIAorIHN0YXRpYyB2 b2lkIGNfdHlwZV9wcmludF92YXJzcGVjX3ByZWZpeCAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHVp X2ZpbGUgKiwgaW50LAorQEAgLTE5OSw2ICsxOTcsMjMgQEAgY3BfdHlwZV9wcmludF9tZXRob2Rf YXJncyAoc3RydWN0IHR5cGUgKm10eXBlLCBjaGFyICpwcmVmaXgsIGNoYXIgKnZhcnN0cmluZywK KyAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAidm9pZCIpOworIAorICAgZnByaW50Zl9m aWx0ZXJlZCAoc3RyZWFtLCAiKSIpOworKworKyAgLyogRm9yIG5vbi1zdGF0aWMgbWV0aG9kcywg cmVhZCBxdWFsaWZpZXJzIGZyb20gdGhlIHR5cGUgb2YKKysgICAgIFRISVMuICAqLworKyAgaWYg KCFzdGF0aWNwKQorKyAgICB7CisrICAgICAgc3RydWN0IHR5cGUgKmRvbWFpbjsKKysKKysgICAg ICBnZGJfYXNzZXJ0IChuYXJncyA+IDApOworKyAgICAgIGdkYl9hc3NlcnQgKFRZUEVfQ09ERSAo YXJnc1swXS50eXBlKSA9PSBUWVBFX0NPREVfUFRSKTsKKysgICAgICBkb21haW4gPSBUWVBFX1RB UkdFVF9UWVBFIChhcmdzWzBdLnR5cGUpOworKworKyAgICAgIGlmIChUWVBFX0NPTlNUIChkb21h aW4pKQorKwlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIgY29uc3QiKTsKKysKKysgICAgICBp ZiAoVFlQRV9WT0xBVElMRSAoZG9tYWluKSkKKysJZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAi IHZvbGF0aWxlIik7CisrICAgIH0KKyB9CisgCisgCitAQCAtMzU0LDEwICszNjksMTIgQEAgY190 eXBlX3ByaW50X21vZGlmaWVyIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwKKyAKKyAvKiBQcmludCBvdXQgdGhlIGFyZ3VtZW50cyBvZiBUWVBFLCB3aGljaCBzaG91 bGQgaGF2ZSBUWVBFX0NPREVfTUVUSE9ECisgICAgb3IgVFlQRV9DT0RFX0ZVTkMsIHRvIFNUUkVB TS4gIEFydGlmaWNpYWwgYXJndW1lbnRzLCBzdWNoIGFzICJ0aGlzIgorLSAgIGluIG5vbi1zdGF0 aWMgbWV0aG9kcywgYXJlIGRpc3BsYXllZC4gICovCisrICAgaW4gbm9uLXN0YXRpYyBtZXRob2Rz LCBhcmUgZGlzcGxheWVkIGlmIFNIT1dfQVJUSUZJQ0lBTCBpcworKyAgIG5vbi16ZXJvLiAgKi8K KyAKKy1zdGF0aWMgdm9pZAorLWNfdHlwZV9wcmludF9hcmdzIChzdHJ1Y3QgdHlwZSAqdHlwZSwg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKKyt2b2lkCisrY190eXBlX3ByaW50X2FyZ3MgKHN0cnVj dCB0eXBlICp0eXBlLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorKwkJICAgaW50IHNob3dfYXJ0 aWZpY2lhbCkKKyB7CisgICBpbnQgaSwgbGVuOworICAgc3RydWN0IGZpZWxkICphcmdzOworQEAg LTM2OSw2ICszODYsOSBAQCBjX3R5cGVfcHJpbnRfYXJncyAoc3RydWN0IHR5cGUgKnR5cGUsIHN0 cnVjdCB1aV9maWxlICpzdHJlYW0pCisgCisgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9ORklFTERT ICh0eXBlKTsgaSsrKQorICAgICB7CisrICAgICAgaWYgKFRZUEVfRklFTERfQVJUSUZJQ0lBTCAo dHlwZSwgaSkgJiYgIXNob3dfYXJ0aWZpY2lhbCkKKysJY29udGludWU7CisrCisgICAgICAgaWYg KHByaW50ZWRfYW55KQorIAl7CisgCSAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiLCAiKTsK K0BAIC01NTksNyArNTc5LDEyIEBAIGNfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoc3RydWN0 IHR5cGUgKnR5cGUsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCiAgCWZwcmludGZfZmlsdGVyZWQg KHN0cmVhbSwgIikiKTsKICAKICAgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICJbIik7 CkBAIC0zMjMwLDYgKzM2MjQsMTUgQEAgaW5kZXggMDkyOTUxNi4uMmFhZjlhZCAxMDA2NDQKICAJ JiYgIVRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNfVU5ERUZJTkVEICh0eXBlKSkKICAJZnByaW50 Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJWQiLAogIAkJCSAgKFRZUEVfTEVOR1RIICh0eXBlKQorQEAg LTU5Miw3ICs2MTcsNyBAQCBjX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVjdCB0eXBl ICp0eXBlLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorICAgICAgIGlmIChwYXNzZWRfYV9wdHIp CisgCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIikiKTsKKyAgICAgICBpZiAoIWRlbWFuZ2xl ZF9hcmdzKQorLQljX3R5cGVfcHJpbnRfYXJncyAodHlwZSwgc3RyZWFtKTsKKysJY190eXBlX3By aW50X2FyZ3MgKHR5cGUsIHN0cmVhbSwgMSk7CisgICAgICAgY190eXBlX3ByaW50X3ZhcnNwZWNf c3VmZml4IChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgc3RyZWFtLCBzaG93LAorIAkJCQkgICBw YXNzZWRfYV9wdHIsIDApOworICAgICAgIGJyZWFrOwogZGlmZiAtLWdpdCBhL2dkYi9jLXZhbHBy aW50LmMgYi9nZGIvYy12YWxwcmludC5jCiBpbmRleCAwYjYxNmY3Li4zNDMzZGEyIDEwMDY0NAog LS0tIGEvZ2RiL2MtdmFscHJpbnQuYwpAQCAtNjY5Niw3ICs3MDk5LDcgQEAgaW5kZXggNjA1OWQ2 OC4uNDdlZTYwMSAxMDA2NDQKICAgIGRlZmF1bHRfc3ltZmlsZV9vZmZzZXRzLAkvKiBzeW1fb2Zm c2V0czogIHhsYXRlIGV4dGVybmFsIHRvIGludGVybmFsIGZvcm0gKi8KICAgIGRlZmF1bHRfc3lt ZmlsZV9zZWdtZW50cywJLyogc3ltX3NlZ21lbnRzOiBHZXQgc2VnbWVudCBpbmZvcm1hdGlvbiBm cm9tCiBkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZy5pbiBiL2dkYi9jb25maWcuaW4KLWluZGV4IDZh YWY3N2EuLjNlZjViYmQgMTAwNjQ0CitpbmRleCA2YWFmNzdhLi4xY2ZiMTJiIDEwMDY0NAogLS0t IGEvZ2RiL2NvbmZpZy5pbgogKysrIGIvZ2RiL2NvbmZpZy5pbgogQEAgLTQyLDYgKzQyLDEyIEBA CkBAIC02NzEyLDcgKzcxMTUsMTcgQEAgaW5kZXggNmFhZjc3YS4uM2VmNWJiZCAxMDA2NDQKICAv KiBEZWZpbmUgdG8gYmUgYSBzdHJpbmcgbmFtaW5nIHRoZSBkZWZhdWx0IGhvc3QgY2hhcmFjdGVy IHNldC4gKi8KICAjdW5kZWYgR0RCX0RFRkFVTFRfSE9TVF9DSEFSU0VUCiAgCi1AQCAtMTY5LDEy ICsxNzUsMTggQEAKK0BAIC02MCw2ICs2Niw5IEBACisgLyogRGVmaW5lIHRvIHRoZSBkZWZhdWx0 IE9TIEFCSSBmb3IgdGhpcyBjb25maWd1cmF0aW9uLiAqLworICN1bmRlZiBHREJfT1NBQklfREVG QVVMVAorIAorKy8qIEJhc2UgZGlyZWN0b3J5IGZvciBHREIgUHl0aG9uIG1vZHVsZXMuICovCisr I3VuZGVmIEdEQl9QWVRIT05ESVJfUEFUSAorKworIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZl IGBhbGxvY2EnLCBhcyBhIGZ1bmN0aW9uIG9yIG1hY3JvLiAqLworICN1bmRlZiBIQVZFX0FMTE9D QQorIAorQEAgLTE2OSwxMiArMTc4LDE4IEBACiAgLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBp Y29udigpIGZ1bmN0aW9uLiAqLwogICN1bmRlZiBIQVZFX0lDT05WCiAgCkBAIC02NzMyLDcgKzcx NDUsNyBAQCBpbmRleCA2YWFmNzdhLi4zZWY1YmJkIDEwMDY0NAogICN1bmRlZiBIQVZFX0xDX01F U1NBR0VTCiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1cmUKLWlu ZGV4IDc1NzljODQuLjllYjlhOGQgMTAwNzU1CitpbmRleCA3NTc5Yzg0Li5hYTFkZDg0IDEwMDc1 NQogLS0tIGEvZ2RiL2NvbmZpZ3VyZQogKysrIGIvZ2RiL2NvbmZpZ3VyZQogQEAgLTMxNCw3ICsz MTQsNyBAQCBhY19zdWJkaXJzX2FsbD0iJGFjX3N1YmRpcnNfYWxsIGRvYyB0ZXN0c3VpdGUiCkBA IC02NzQwLDcgKzcxNTMsNyBAQCBpbmRleCA3NTc5Yzg0Li45ZWI5YThkIDEwMDc1NQogIGFjX3N1 YmRpcnNfYWxsPSIkYWNfc3ViZGlyc19hbGwgbXVsdGktaWNlIgogIGFjX3N1YmRpcnNfYWxsPSIk YWNfc3ViZGlyc19hbGwgZ2Ric2VydmVyIgogLWFjX3N1YnN0X3ZhcnM9J1NIRUxMIFBBVEhfU0VQ QVJBVE9SIFBBQ0tBR0VfTkFNRSBQQUNLQUdFX1RBUk5BTUUgUEFDS0FHRV9WRVJTSU9OIFBBQ0tB R0VfU1RSSU5HIFBBQ0tBR0VfQlVHUkVQT1JUIGV4ZWNfcHJlZml4IHByZWZpeCBwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lIGJpbmRpciBzYmluZGlyIGxpYmV4ZWNkaXIgZGF0YWRpciBzeXNjb25mZGly IHNoYXJlZHN0YXRlZGlyIGxvY2Fsc3RhdGVkaXIgbGliZGlyIGluY2x1ZGVkaXIgb2xkaW5jbHVk ZWRpciBpbmZvZGlyIG1hbmRpciBidWlsZF9hbGlhcyBob3N0X2FsaWFzIHRhcmdldF9hbGlhcyBE RUZTIEVDSE9fQyBFQ0hPX04gRUNIT19UIExJQlMgTUFJTlRBSU5FUl9NT0RFX1RSVUUgTUFJTlRB SU5FUl9NT0RFX0ZBTFNFIE1BSU5UIENDIENGTEFHUyBMREZMQUdTIENQUEZMQUdTIGFjX2N0X0ND IEVYRUVYVCBPQkpFWFQgQ1BQIEVHUkVQIFJBTkxJQiBhY19jdF9SQU5MSUIgYnVpbGQgYnVpbGRf Y3B1IGJ1aWxkX3ZlbmRvciBidWlsZF9vcyBob3N0IGhvc3RfY3B1IGhvc3RfdmVuZG9yIGhvc3Rf b3MgdGFyZ2V0IHRhcmdldF9jcHUgdGFyZ2V0X3ZlbmRvciB0YXJnZXRfb3MgYW1fX2xlYWRpbmdf ZG90IERFUERJUiBDQ0RFUE1PREUgTUFLRSBHTUFLRV9UUlVFIEdNQUtFX0ZBTFNFIFNFVF9NQUtF IFVTRV9OTFMgTElCSU5UTCBMSUJJTlRMX0RFUCBJTkNJTlRMIFhHRVRURVhUIEdNU0dGTVQgUE9T VUIgQ0FUQUxPR1MgREFUQURJUk5BTUUgSU5TVE9CSkVYVCBHRU5DQVQgQ0FUT0JKRVhUIGxvY2Fs ZWRpciBHTF9DT05EX0xJQlRPT0xfVFJVRSBHTF9DT05EX0xJQlRPT0xfRkFMU0UgR05VTElCX01F TU1FTSBHTlVMSUJfTUVNUENQWSBHTlVMSUJfTUVNUkNIUiBHTlVMSUJfU1RQQ1BZIEdOVUxJQl9T VFBOQ1BZIEdOVUxJQl9TVFJDSFJOVUwgR05VTElCX1NUUkRVUCBHTlVMSUJfU1RSTkRVUCBHTlVM SUJfU1RSTkxFTiBHTlVMSUJfU1RSUEJSSyBHTlVMSUJfU1RSU0VQIEdOVUxJQl9TVFJTVFIgR05V TElCX1NUUkNBU0VTVFIgR05VTElCX1NUUlRPS19SIEdOVUxJQl9NQlNMRU4gR05VTElCX01CU05M RU4gR05VTElCX01CU0NIUiBHTlVMSUJfTUJTUkNIUiBHTlVMSUJfTUJTU1RSIEdOVUxJQl9NQlND QVNFQ01QIEdOVUxJQl9NQlNOQ0FTRUNNUCBHTlVMSUJfTUJTUENBU0VDTVAgR05VTElCX01CU0NB U0VTVFIgR05VTElCX01CU0NTUE4gR05VTElCX01CU1BCUksgR05VTElCX01CU1NQTiBHTlVMSUJf TUJTU0VQIEdOVUxJQl9NQlNUT0tfUiBHTlVMSUJfU1RSRVJST1IgR05VTElCX1NUUlNJR05BTCBI QVZFX0RFQ0xfTUVNTUVNIEhBVkVfTUVNUENQWSBIQVZFX0RFQ0xfTUVNUkNIUiBIQVZFX1NUUENQ WSBIQVZFX1NUUE5DUFkgSEFWRV9TVFJDSFJOVUwgSEFWRV9ERUNMX1NUUkRVUCBIQVZFX1NUUk5E VVAgSEFWRV9ERUNMX1NUUk5EVVAgSEFWRV9ERUNMX1NUUk5MRU4gSEFWRV9TVFJQQlJLIEhBVkVf U1RSU0VQIEhBVkVfU1RSQ0FTRVNUUiBIQVZFX0RFQ0xfU1RSVE9LX1IgSEFWRV9ERUNMX1NUUkVS Uk9SIEhBVkVfREVDTF9TVFJTSUdOQUwgUkVQTEFDRV9TVFJFUlJPUiBSRVBMQUNFX1NUUlNJR05B TCBSRVBMQUNFX01FTU1FTSBSRVBMQUNFX1NUUkNBU0VTVFIgUkVQTEFDRV9TVFJTVFIgSEFWRV9M T05HX0xPTkdfSU5UIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCBIQVZFX0lOVFRZUEVTX0gg SEFWRV9TWVNfVFlQRVNfSCBJTkNMVURFX05FWFQgTkVYVF9TVERJTlRfSCBIQVZFX1NURElOVF9I IEhBVkVfU1lTX0lOVFRZUEVTX0ggSEFWRV9TWVNfQklUWVBFU19IIEJJVFNJWkVPRl9QVFJESUZG X1QgQklUU0laRU9GX1NJR19BVE9NSUNfVCBCSVRTSVpFT0ZfU0laRV9UIEJJVFNJWkVPRl9XQ0hB Ul9UIEJJVFNJWkVPRl9XSU5UX1QgSEFWRV9TSUdORURfU0lHX0FUT01JQ19UIEhBVkVfU0lHTkVE X1dDSEFSX1QgSEFWRV9TSUdORURfV0lOVF9UIFBUUkRJRkZfVF9TVUZGSVggU0lHX0FUT01JQ19U X1NVRkZJWCBTSVpFX1RfU1VGRklYIFdDSEFSX1RfU1VGRklYIFdJTlRfVF9TVUZGSVggU1RESU5U X0ggTkVYVF9TVFJJTkdfSCBHTlVMSUJfV0NXSURUSCBIQVZFX0RFQ0xfV0NXSURUSCBSRVBMQUNF X1dDV0lEVEggV0NIQVJfSCBIQVZFX1dDSEFSX0ggTkVYVF9XQ0hBUl9IIExJQkdOVV9MSUJERVBT IExJQkdOVV9MVExJQkRFUFMgR05VTElCX1NURElOVF9IIFBBQ0tBR0UgSU5TVEFMTF9QUk9HUkFN IElOU1RBTExfU0NSSVBUIElOU1RBTExfREFUQSBDWUdQQVRIX1cgVkVSU0lPTiBBQ0xPQ0FMIEFV VE9DT05GIEFVVE9NQUtFIEFVVE9IRUFERVIgTUFLRUlORk8gaW5zdGFsbF9zaCBTVFJJUCBhY19j dF9TVFJJUCBJTlNUQUxMX1NUUklQX1BST0dSQU0gbWtkaXJfcCBBV0sgQU1UQVIgYW1fX3RhciBh bV9fdW50YXIgYW1fX2luY2x1ZGUgYW1fX3F1b3RlIEFNREVQX1RSVUUgQU1ERVBfRkFMU0UgQU1E RVBCQUNLU0xBU0ggYW1fX2Zhc3RkZXBDQ19UUlVFIGFtX19mYXN0ZGVwQ0NfRkFMU0Ugc3ViZGly cyBUQVJHRVRfT0JTIFBLR1ZFUlNJT04gUkVQT1JUX0JVR1NfVE8gUkVQT1JUX0JVR1NfVEVYSSBM Tl9TIFlBQ0MgQVIgYWNfY3RfQVIgRExMVE9PTCBhY19jdF9ETExUT09MIFdJTkRSRVMgYWNfY3Rf V0lORFJFUyBNSUcgYWNfY3RfTUlHIFJFQURMSU5FIFJFQURMSU5FX0RFUFMgUkVBRExJTkVfQ0ZM QUdTIEhBVkVfTElCRVhQQVQgTElCRVhQQVQgTFRMSUJFWFBBVCBQWVRIT05fQ0ZMQUdTIEFMTE9D QSBDT05GSUdfTERGTEFHUyBUQVJHRVRfU1lTVEVNX1JPT1QgVEFSR0VUX1NZU1RFTV9ST09UX0RF RklORSBXQVJOX0NGTEFHUyBXRVJST1JfQ0ZMQUdTIFNFUl9IQVJEV0lSRSBXSU4zMkxJQlMgTElC R1VJIEdVSV9DRkxBR1NfWCBXSU4zMkxEQVBQIFRDTF9WRVJTSU9OIFRDTF9QQVRDSF9MRVZFTCBU Q0xfQklOX0RJUiBUQ0xfU1JDX0RJUiBUQ0xfTElCX0ZJTEUgVENMX0xJQl9GTEFHIFRDTF9MSUJf U1BFQyBUQ0xfU1RVQl9MSUJfRklMRSBUQ0xfU1RVQl9MSUJfRkxBRyBUQ0xfU1RVQl9MSUJfU1BF QyBUQ0xfSU5DTFVERSBUQ0xfTElCUkFSWSBUQ0xfREVQUyBUS19WRVJTSU9OIFRLX0JJTl9ESVIg VEtfU1JDX0RJUiBUS19MSUJfRklMRSBUS19MSUJfRkxBRyBUS19MSUJfU1BFQyBUS19TVFVCX0xJ Ql9GSUxFIFRLX1NUVUJfTElCX0ZMQUcgVEtfU1RVQl9MSUJfU1BFQyBUS19JTkNMVURFIFRLX0xJ QlJBUlkgVEtfREVQUyBUS19YSU5DTFVERVMgWF9DRkxBR1MgWF9MREZMQUdTIFhfTElCUyBHREJU S0xJQlMgR0RCVEtfQ0ZMQUdTIEdEQlRLX1NSQ19ESVIgU0lNIFNJTV9PQlMgRU5BQkxFX0NGTEFH UyBQUk9GSUxFX0NGTEFHUyBDT05GSUdfT0JTIENPTkZJR19ERVBTIENPTkZJR19TUkNTIENPTkZJ R19BTEwgQ09ORklHX0NMRUFOIENPTkZJR19JTlNUQUxMIENPTkZJR19VTklOU1RBTEwgdGFyZ2V0 X3N1YmRpciBmcmFncyBubV9oIExJQklDT05WIExJQk9CSlMgTFRMSUJPQkpTIGdsX0xJQk9CSlMg Z2xfTFRMSUJPQkpTIGdsdGVzdHNfTElCT0JKUyBnbHRlc3RzX0xUTElCT0JKUycKLSthY19zdWJz dF92YXJzPSdTSEVMTCBQQVRIX1NFUEFSQVRPUiBQQUNLQUdFX05BTUUgUEFDS0FHRV9UQVJOQU1F IFBBQ0tBR0VfVkVSU0lPTiBQQUNLQUdFX1NUUklORyBQQUNLQUdFX0JVR1JFUE9SVCBleGVjX3By ZWZpeCBwcmVmaXggcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSBiaW5kaXIgc2JpbmRpciBsaWJleGVj ZGlyIGRhdGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGlyIGxpYmRp ciBpbmNsdWRlZGlyIG9sZGluY2x1ZGVkaXIgaW5mb2RpciBtYW5kaXIgYnVpbGRfYWxpYXMgaG9z dF9hbGlhcyB0YXJnZXRfYWxpYXMgREVGUyBFQ0hPX0MgRUNIT19OIEVDSE9fVCBMSUJTIE1BSU5U QUlORVJfTU9ERV9UUlVFIE1BSU5UQUlORVJfTU9ERV9GQUxTRSBNQUlOVCBDQyBDRkxBR1MgTERG TEFHUyBDUFBGTEFHUyBhY19jdF9DQyBFWEVFWFQgT0JKRVhUIENQUCBFR1JFUCBSQU5MSUIgYWNf Y3RfUkFOTElCIGJ1aWxkIGJ1aWxkX2NwdSBidWlsZF92ZW5kb3IgYnVpbGRfb3MgaG9zdCBob3N0 X2NwdSBob3N0X3ZlbmRvciBob3N0X29zIHRhcmdldCB0YXJnZXRfY3B1IHRhcmdldF92ZW5kb3Ig dGFyZ2V0X29zIGFtX19sZWFkaW5nX2RvdCBERVBESVIgQ0NERVBNT0RFIE1BS0UgR01BS0VfVFJV RSBHTUFLRV9GQUxTRSBTRVRfTUFLRSBVU0VfTkxTIExJQklOVEwgTElCSU5UTF9ERVAgSU5DSU5U TCBYR0VUVEVYVCBHTVNHRk1UIFBPU1VCIENBVEFMT0dTIERBVEFESVJOQU1FIElOU1RPQkpFWFQg R0VOQ0FUIENBVE9CSkVYVCBsb2NhbGVkaXIgR0xfQ09ORF9MSUJUT09MX1RSVUUgR0xfQ09ORF9M SUJUT09MX0ZBTFNFIEdOVUxJQl9NRU1NRU0gR05VTElCX01FTVBDUFkgR05VTElCX01FTVJDSFIg R05VTElCX1NUUENQWSBHTlVMSUJfU1RQTkNQWSBHTlVMSUJfU1RSQ0hSTlVMIEdOVUxJQl9TVFJE VVAgR05VTElCX1NUUk5EVVAgR05VTElCX1NUUk5MRU4gR05VTElCX1NUUlBCUksgR05VTElCX1NU UlNFUCBHTlVMSUJfU1RSU1RSIEdOVUxJQl9TVFJDQVNFU1RSIEdOVUxJQl9TVFJUT0tfUiBHTlVM SUJfTUJTTEVOIEdOVUxJQl9NQlNOTEVOIEdOVUxJQl9NQlNDSFIgR05VTElCX01CU1JDSFIgR05V TElCX01CU1NUUiBHTlVMSUJfTUJTQ0FTRUNNUCBHTlVMSUJfTUJTTkNBU0VDTVAgR05VTElCX01C U1BDQVNFQ01QIEdOVUxJQl9NQlNDQVNFU1RSIEdOVUxJQl9NQlNDU1BOIEdOVUxJQl9NQlNQQlJL IEdOVUxJQl9NQlNTUE4gR05VTElCX01CU1NFUCBHTlVMSUJfTUJTVE9LX1IgR05VTElCX1NUUkVS Uk9SIEdOVUxJQl9TVFJTSUdOQUwgSEFWRV9ERUNMX01FTU1FTSBIQVZFX01FTVBDUFkgSEFWRV9E RUNMX01FTVJDSFIgSEFWRV9TVFBDUFkgSEFWRV9TVFBOQ1BZIEhBVkVfU1RSQ0hSTlVMIEhBVkVf REVDTF9TVFJEVVAgSEFWRV9TVFJORFVQIEhBVkVfREVDTF9TVFJORFVQIEhBVkVfREVDTF9TVFJO TEVOIEhBVkVfU1RSUEJSSyBIQVZFX1NUUlNFUCBIQVZFX1NUUkNBU0VTVFIgSEFWRV9ERUNMX1NU UlRPS19SIEhBVkVfREVDTF9TVFJFUlJPUiBIQVZFX0RFQ0xfU1RSU0lHTkFMIFJFUExBQ0VfU1RS RVJST1IgUkVQTEFDRV9TVFJTSUdOQUwgUkVQTEFDRV9NRU1NRU0gUkVQTEFDRV9TVFJDQVNFU1RS IFJFUExBQ0VfU1RSU1RSIEhBVkVfTE9OR19MT05HX0lOVCBIQVZFX1VOU0lHTkVEX0xPTkdfTE9O R19JTlQgSEFWRV9JTlRUWVBFU19IIEhBVkVfU1lTX1RZUEVTX0ggSU5DTFVERV9ORVhUIE5FWFRf U1RESU5UX0ggSEFWRV9TVERJTlRfSCBIQVZFX1NZU19JTlRUWVBFU19IIEhBVkVfU1lTX0JJVFlQ RVNfSCBCSVRTSVpFT0ZfUFRSRElGRl9UIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgQklUU0laRU9G X1NJWkVfVCBCSVRTSVpFT0ZfV0NIQVJfVCBCSVRTSVpFT0ZfV0lOVF9UIEhBVkVfU0lHTkVEX1NJ R19BVE9NSUNfVCBIQVZFX1NJR05FRF9XQ0hBUl9UIEhBVkVfU0lHTkVEX1dJTlRfVCBQVFJESUZG X1RfU1VGRklYIFNJR19BVE9NSUNfVF9TVUZGSVggU0laRV9UX1NVRkZJWCBXQ0hBUl9UX1NVRkZJ WCBXSU5UX1RfU1VGRklYIFNURElOVF9IIE5FWFRfU1RSSU5HX0ggR05VTElCX1dDV0lEVEggSEFW RV9ERUNMX1dDV0lEVEggUkVQTEFDRV9XQ1dJRFRIIFdDSEFSX0ggSEFWRV9XQ0hBUl9IIE5FWFRf V0NIQVJfSCBMSUJHTlVfTElCREVQUyBMSUJHTlVfTFRMSUJERVBTIEdOVUxJQl9TVERJTlRfSCBQ QUNLQUdFIElOU1RBTExfUFJPR1JBTSBJTlNUQUxMX1NDUklQVCBJTlNUQUxMX0RBVEEgQ1lHUEFU SF9XIFZFUlNJT04gQUNMT0NBTCBBVVRPQ09ORiBBVVRPTUFLRSBBVVRPSEVBREVSIE1BS0VJTkZP IGluc3RhbGxfc2ggU1RSSVAgYWNfY3RfU1RSSVAgSU5TVEFMTF9TVFJJUF9QUk9HUkFNIG1rZGly X3AgQVdLIEFNVEFSIGFtX190YXIgYW1fX3VudGFyIGFtX19pbmNsdWRlIGFtX19xdW90ZSBBTURF UF9UUlVFIEFNREVQX0ZBTFNFIEFNREVQQkFDS1NMQVNIIGFtX19mYXN0ZGVwQ0NfVFJVRSBhbV9f ZmFzdGRlcENDX0ZBTFNFIEdEQl9EQVRBRElSX1BBVEggc3ViZGlycyBUQVJHRVRfT0JTIFBLR1ZF UlNJT04gUkVQT1JUX0JVR1NfVE8gUkVQT1JUX0JVR1NfVEVYSSBMTl9TIFlBQ0MgQVIgYWNfY3Rf QVIgRExMVE9PTCBhY19jdF9ETExUT09MIFdJTkRSRVMgYWNfY3RfV0lORFJFUyBNSUcgYWNfY3Rf TUlHIExJQklDT05WIExJQklDT05WX0lOQ0xVREUgTElCSUNPTlZfTElCRElSIFJFQURMSU5FIFJF QURMSU5FX0RFUFMgUkVBRExJTkVfQ0ZMQUdTIEhBVkVfTElCRVhQQVQgTElCRVhQQVQgTFRMSUJF WFBBVCBQWVRIT05fQ0ZMQUdTIEFMTE9DQSBDT05GSUdfTERGTEFHUyBUQVJHRVRfU1lTVEVNX1JP T1QgVEFSR0VUX1NZU1RFTV9ST09UX0RFRklORSBXQVJOX0NGTEFHUyBXRVJST1JfQ0ZMQUdTIFNF Ul9IQVJEV0lSRSBXSU4zMkxJQlMgTElCR1VJIEdVSV9DRkxBR1NfWCBXSU4zMkxEQVBQIFRDTF9W RVJTSU9OIFRDTF9QQVRDSF9MRVZFTCBUQ0xfQklOX0RJUiBUQ0xfU1JDX0RJUiBUQ0xfTElCX0ZJ TEUgVENMX0xJQl9GTEFHIFRDTF9MSUJfU1BFQyBUQ0xfU1RVQl9MSUJfRklMRSBUQ0xfU1RVQl9M SUJfRkxBRyBUQ0xfU1RVQl9MSUJfU1BFQyBUQ0xfSU5DTFVERSBUQ0xfTElCUkFSWSBUQ0xfREVQ UyBUS19WRVJTSU9OIFRLX0JJTl9ESVIgVEtfU1JDX0RJUiBUS19MSUJfRklMRSBUS19MSUJfRkxB RyBUS19MSUJfU1BFQyBUS19TVFVCX0xJQl9GSUxFIFRLX1NUVUJfTElCX0ZMQUcgVEtfU1RVQl9M SUJfU1BFQyBUS19JTkNMVURFIFRLX0xJQlJBUlkgVEtfREVQUyBUS19YSU5DTFVERVMgWF9DRkxB R1MgWF9MREZMQUdTIFhfTElCUyBHREJUS0xJQlMgR0RCVEtfQ0ZMQUdTIEdEQlRLX1NSQ19ESVIg U0lNIFNJTV9PQlMgRU5BQkxFX0NGTEFHUyBQUk9GSUxFX0NGTEFHUyBDT05GSUdfT0JTIENPTkZJ R19ERVBTIENPTkZJR19TUkNTIENPTkZJR19BTEwgQ09ORklHX0NMRUFOIENPTkZJR19JTlNUQUxM IENPTkZJR19VTklOU1RBTEwgdGFyZ2V0X3N1YmRpciBmcmFncyBubV9oIExJQk9CSlMgTFRMSUJP QkpTIGdsX0xJQk9CSlMgZ2xfTFRMSUJPQkpTIGdsdGVzdHNfTElCT0JKUyBnbHRlc3RzX0xUTElC T0JKUycKKythY19zdWJzdF92YXJzPSdTSEVMTCBQQVRIX1NFUEFSQVRPUiBQQUNLQUdFX05BTUUg UEFDS0FHRV9UQVJOQU1FIFBBQ0tBR0VfVkVSU0lPTiBQQUNLQUdFX1NUUklORyBQQUNLQUdFX0JV R1JFUE9SVCBleGVjX3ByZWZpeCBwcmVmaXggcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSBiaW5kaXIg c2JpbmRpciBsaWJleGVjZGlyIGRhdGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBsb2Nh bHN0YXRlZGlyIGxpYmRpciBpbmNsdWRlZGlyIG9sZGluY2x1ZGVkaXIgaW5mb2RpciBtYW5kaXIg YnVpbGRfYWxpYXMgaG9zdF9hbGlhcyB0YXJnZXRfYWxpYXMgREVGUyBFQ0hPX0MgRUNIT19OIEVD SE9fVCBMSUJTIE1BSU5UQUlORVJfTU9ERV9UUlVFIE1BSU5UQUlORVJfTU9ERV9GQUxTRSBNQUlO VCBDQyBDRkxBR1MgTERGTEFHUyBDUFBGTEFHUyBhY19jdF9DQyBFWEVFWFQgT0JKRVhUIENQUCBF R1JFUCBSQU5MSUIgYWNfY3RfUkFOTElCIGJ1aWxkIGJ1aWxkX2NwdSBidWlsZF92ZW5kb3IgYnVp bGRfb3MgaG9zdCBob3N0X2NwdSBob3N0X3ZlbmRvciBob3N0X29zIHRhcmdldCB0YXJnZXRfY3B1 IHRhcmdldF92ZW5kb3IgdGFyZ2V0X29zIGFtX19sZWFkaW5nX2RvdCBERVBESVIgQ0NERVBNT0RF IE1BS0UgR01BS0VfVFJVRSBHTUFLRV9GQUxTRSBTRVRfTUFLRSBVU0VfTkxTIExJQklOVEwgTElC SU5UTF9ERVAgSU5DSU5UTCBYR0VUVEVYVCBHTVNHRk1UIFBPU1VCIENBVEFMT0dTIERBVEFESVJO QU1FIElOU1RPQkpFWFQgR0VOQ0FUIENBVE9CSkVYVCBsb2NhbGVkaXIgR0xfQ09ORF9MSUJUT09M X1RSVUUgR0xfQ09ORF9MSUJUT09MX0ZBTFNFIEdOVUxJQl9NRU1NRU0gR05VTElCX01FTVBDUFkg R05VTElCX01FTVJDSFIgR05VTElCX1NUUENQWSBHTlVMSUJfU1RQTkNQWSBHTlVMSUJfU1RSQ0hS TlVMIEdOVUxJQl9TVFJEVVAgR05VTElCX1NUUk5EVVAgR05VTElCX1NUUk5MRU4gR05VTElCX1NU UlBCUksgR05VTElCX1NUUlNFUCBHTlVMSUJfU1RSU1RSIEdOVUxJQl9TVFJDQVNFU1RSIEdOVUxJ Ql9TVFJUT0tfUiBHTlVMSUJfTUJTTEVOIEdOVUxJQl9NQlNOTEVOIEdOVUxJQl9NQlNDSFIgR05V TElCX01CU1JDSFIgR05VTElCX01CU1NUUiBHTlVMSUJfTUJTQ0FTRUNNUCBHTlVMSUJfTUJTTkNB U0VDTVAgR05VTElCX01CU1BDQVNFQ01QIEdOVUxJQl9NQlNDQVNFU1RSIEdOVUxJQl9NQlNDU1BO IEdOVUxJQl9NQlNQQlJLIEdOVUxJQl9NQlNTUE4gR05VTElCX01CU1NFUCBHTlVMSUJfTUJTVE9L X1IgR05VTElCX1NUUkVSUk9SIEdOVUxJQl9TVFJTSUdOQUwgSEFWRV9ERUNMX01FTU1FTSBIQVZF X01FTVBDUFkgSEFWRV9ERUNMX01FTVJDSFIgSEFWRV9TVFBDUFkgSEFWRV9TVFBOQ1BZIEhBVkVf U1RSQ0hSTlVMIEhBVkVfREVDTF9TVFJEVVAgSEFWRV9TVFJORFVQIEhBVkVfREVDTF9TVFJORFVQ IEhBVkVfREVDTF9TVFJOTEVOIEhBVkVfU1RSUEJSSyBIQVZFX1NUUlNFUCBIQVZFX1NUUkNBU0VT VFIgSEFWRV9ERUNMX1NUUlRPS19SIEhBVkVfREVDTF9TVFJFUlJPUiBIQVZFX0RFQ0xfU1RSU0lH TkFMIFJFUExBQ0VfU1RSRVJST1IgUkVQTEFDRV9TVFJTSUdOQUwgUkVQTEFDRV9NRU1NRU0gUkVQ TEFDRV9TVFJDQVNFU1RSIFJFUExBQ0VfU1RSU1RSIEhBVkVfTE9OR19MT05HX0lOVCBIQVZFX1VO U0lHTkVEX0xPTkdfTE9OR19JTlQgSEFWRV9JTlRUWVBFU19IIEhBVkVfU1lTX1RZUEVTX0ggSU5D TFVERV9ORVhUIE5FWFRfU1RESU5UX0ggSEFWRV9TVERJTlRfSCBIQVZFX1NZU19JTlRUWVBFU19I IEhBVkVfU1lTX0JJVFlQRVNfSCBCSVRTSVpFT0ZfUFRSRElGRl9UIEJJVFNJWkVPRl9TSUdfQVRP TUlDX1QgQklUU0laRU9GX1NJWkVfVCBCSVRTSVpFT0ZfV0NIQVJfVCBCSVRTSVpFT0ZfV0lOVF9U IEhBVkVfU0lHTkVEX1NJR19BVE9NSUNfVCBIQVZFX1NJR05FRF9XQ0hBUl9UIEhBVkVfU0lHTkVE X1dJTlRfVCBQVFJESUZGX1RfU1VGRklYIFNJR19BVE9NSUNfVF9TVUZGSVggU0laRV9UX1NVRkZJ WCBXQ0hBUl9UX1NVRkZJWCBXSU5UX1RfU1VGRklYIFNURElOVF9IIE5FWFRfU1RSSU5HX0ggR05V TElCX1dDV0lEVEggSEFWRV9ERUNMX1dDV0lEVEggUkVQTEFDRV9XQ1dJRFRIIFdDSEFSX0ggSEFW RV9XQ0hBUl9IIE5FWFRfV0NIQVJfSCBMSUJHTlVfTElCREVQUyBMSUJHTlVfTFRMSUJERVBTIEdO VUxJQl9TVERJTlRfSCBQQUNLQUdFIElOU1RBTExfUFJPR1JBTSBJTlNUQUxMX1NDUklQVCBJTlNU QUxMX0RBVEEgQ1lHUEFUSF9XIFZFUlNJT04gQUNMT0NBTCBBVVRPQ09ORiBBVVRPTUFLRSBBVVRP SEVBREVSIE1BS0VJTkZPIGluc3RhbGxfc2ggU1RSSVAgYWNfY3RfU1RSSVAgSU5TVEFMTF9TVFJJ UF9QUk9HUkFNIG1rZGlyX3AgQVdLIEFNVEFSIGFtX190YXIgYW1fX3VudGFyIGFtX19pbmNsdWRl IGFtX19xdW90ZSBBTURFUF9UUlVFIEFNREVQX0ZBTFNFIEFNREVQQkFDS1NMQVNIIGFtX19mYXN0 ZGVwQ0NfVFJVRSBhbV9fZmFzdGRlcENDX0ZBTFNFIEdEQl9EQVRBRElSX1BBVEggc3ViZGlycyBU QVJHRVRfT0JTIFBLR1ZFUlNJT04gUkVQT1JUX0JVR1NfVE8gUkVQT1JUX0JVR1NfVEVYSSBMTl9T IFlBQ0MgQVIgYWNfY3RfQVIgRExMVE9PTCBhY19jdF9ETExUT09MIFdJTkRSRVMgYWNfY3RfV0lO RFJFUyBNSUcgYWNfY3RfTUlHIExJQklDT05WIExJQklDT05WX0lOQ0xVREUgTElCSUNPTlZfTElC RElSIFJFQURMSU5FIFJFQURMSU5FX0RFUFMgUkVBRExJTkVfQ0ZMQUdTIEhBVkVfTElCRVhQQVQg TElCRVhQQVQgTFRMSUJFWFBBVCBHREJfUFlUSE9ORElSX1BBVEggUFlUSE9OX0NGTEFHUyBBTExP Q0EgQ09ORklHX0xERkxBR1MgVEFSR0VUX1NZU1RFTV9ST09UIFRBUkdFVF9TWVNURU1fUk9PVF9E RUZJTkUgV0FSTl9DRkxBR1MgV0VSUk9SX0NGTEFHUyBTRVJfSEFSRFdJUkUgV0lOMzJMSUJTIExJ QkdVSSBHVUlfQ0ZMQUdTX1ggV0lOMzJMREFQUCBUQ0xfVkVSU0lPTiBUQ0xfUEFUQ0hfTEVWRUwg VENMX0JJTl9ESVIgVENMX1NSQ19ESVIgVENMX0xJQl9GSUxFIFRDTF9MSUJfRkxBRyBUQ0xfTElC X1NQRUMgVENMX1NUVUJfTElCX0ZJTEUgVENMX1NUVUJfTElCX0ZMQUcgVENMX1NUVUJfTElCX1NQ RUMgVENMX0lOQ0xVREUgVENMX0xJQlJBUlkgVENMX0RFUFMgVEtfVkVSU0lPTiBUS19CSU5fRElS IFRLX1NSQ19ESVIgVEtfTElCX0ZJTEUgVEtfTElCX0ZMQUcgVEtfTElCX1NQRUMgVEtfU1RVQl9M SUJfRklMRSBUS19TVFVCX0xJQl9GTEFHIFRLX1NUVUJfTElCX1NQRUMgVEtfSU5DTFVERSBUS19M SUJSQVJZIFRLX0RFUFMgVEtfWElOQ0xVREVTIFhfQ0ZMQUdTIFhfTERGTEFHUyBYX0xJQlMgR0RC VEtMSUJTIEdEQlRLX0NGTEFHUyBHREJUS19TUkNfRElSIFNJTSBTSU1fT0JTIEVOQUJMRV9DRkxB R1MgUFJPRklMRV9DRkxBR1MgQ09ORklHX09CUyBDT05GSUdfREVQUyBDT05GSUdfU1JDUyBDT05G SUdfQUxMIENPTkZJR19DTEVBTiBDT05GSUdfSU5TVEFMTCBDT05GSUdfVU5JTlNUQUxMIHRhcmdl dF9zdWJkaXIgZnJhZ3Mgbm1faCBMSUJPQkpTIExUTElCT0JKUyBnbF9MSUJPQkpTIGdsX0xUTElC T0JKUyBnbHRlc3RzX0xJQk9CSlMgZ2x0ZXN0c19MVExJQk9CSlMnCiAgYWNfc3Vic3RfZmlsZXM9 J2hvc3RfbWFrZWZpbGVfZnJhZycKICBhY19wd2Q9YHB3ZGAKICAKQEAgLTcwNDUsNyArNzQ1OCw0 NiBAQCBpbmRleCA3NTc5Yzg0Li45ZWI5YThkIDEwMDc1NQogICMgT24gYWxwaGEtb3NmLCBpdCBh cHBlYXJzIHRoYXQgbGlidGVybWNhcCBhbmQgbGliY3Vyc2VzIGFyZSBub3QgY29tcGF0aWJsZS4K ICAjIFRoZXJlIGlzIGEgdmVyeSBzcGVjaWZpYyBjb21tZW50IGluIC91c3IvaW5jbHVkZS9jdXJz ZXMuaCBleHBsYWluaW5nIHRoYXQKICAjIHRlcm1jYXAgcm91dGluZXMgYnVpbHQgaW50byBsaWJj dXJzZXMgbXVzdCBub3QgYmUgdXNlZC4KLUBAIC0xMTQxOCw2ICsxMTY4Niw4IEBAIF9BQ0VPRgor QEAgLTExMTU2LDYgKzExNDI0LDcgQEAgZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHRv IHVzZSBweXRob24uLi4gJEVDSE9fQyIgPiY2CisgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJHdpdGhfcHl0aG9uIiA+JjUKKyBlY2hvICIke0VDSE9fVH0kd2l0aF9weXRob24iID4mNgor IAorK0dEQl9QWVRIT05ESVJfUEFUSD0KKyBpZiB0ZXN0ICIke3dpdGhfcHl0aG9ufSIgPSBubzsg dGhlbgorICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogcHl0aG9uIHN1cHBvcnQg ZGlzYWJsZWQ7IHNvbWUgZmVhdHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxlLiIgPiY1CisgZWNobyAi JGFzX21lOiBXQVJOSU5HOiBweXRob24gc3VwcG9ydCBkaXNhYmxlZDsgc29tZSBmZWF0dXJlcyBt YXkgYmUgdW5hdmFpbGFibGUuIiA+JjI7fQorQEAgLTExMzg3LDcgKzExNjU2LDIwIEBAIF9BQ0VP RgorIAorICAgICBmaQorICAgZmkKKy0gIGlmIHRlc3QgJHtoYXZlX2xpYnB5dGhvbn0gPSBubzsg dGhlbgorKyAgaWYgdGVzdCAke2hhdmVfbGlicHl0aG9ufSAhPSBubzsgdGhlbgorKyAgICBHREJf UFlUSE9ORElSX1BBVEg9ImBweXRob24gLWMgImZyb20gZGlzdHV0aWxzLnN5c2NvbmZpZyBpbXBv cnQgZ2V0X3B5dGhvbl9saWI7IHByaW50IGdldF9weXRob25fbGliKCk7ImAiCisrCisrICB0ZXN0 ICJ4JHByZWZpeCIgPSB4Tk9ORSAmJiBwcmVmaXg9IiRhY19kZWZhdWx0X3ByZWZpeCIKKysgIHRl c3QgIngkZXhlY19wcmVmaXgiID0geE5PTkUgJiYgZXhlY19wcmVmaXg9JyR7cHJlZml4fScKKysg IGFjX2RlZmluZV9kaXI9YGV2YWwgZWNobyAkR0RCX1BZVEhPTkRJUl9QQVRIYAorKyAgYWNfZGVm aW5lX2Rpcj1gZXZhbCBlY2hvICRhY19kZWZpbmVfZGlyYAorKworK2NhdCA+PmNvbmZkZWZzLmgg PDxfQUNFT0YKKysjZGVmaW5lIEdEQl9QWVRIT05ESVJfUEFUSCAiJGFjX2RlZmluZV9kaXIiCisr X0FDRU9GCisrCisrCisrICBlbHNlCisgICAgIGNhc2UgIiR7d2l0aF9weXRob259IiBpbgorICAg ICB5ZXMpCisgICAgICAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogcHl0aG9uIGlz IG1pc3Npbmcgb3IgdW51c2FibGUiID4mNQorQEAgLTExNDA5LDYgKzExNjkxLDggQEAgZWNobyAi JGFzX21lOiBlcnJvcjogbm8gdXNhYmxlIHB5dGhvbiBmb3VuZCBhdCAke3dpdGhfcHl0aG9ufSIg PiYyO30KKyAgIGZpCisgZmkKKyAKKysKKytQWVRIT05fQ0ZMQUdTPQorIGlmIHRlc3QgIiR7aGF2 ZV9saWJweXRob259IiA9IHllczsgdGhlbgorIAorIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9G CitAQCAtMTE0MTgsNiArMTE3MDIsOCBAQCBfQUNFT0YKICAgIENPTkZJR19PQlM9IiRDT05GSUdf T0JTIFwkKFNVQkRJUl9QWVRIT05fT0JTKSIKICAgIENPTkZJR19ERVBTPSIkQ09ORklHX0RFUFMg XCQoU1VCRElSX1BZVEhPTl9ERVBTKSIKICAgIENPTkZJR19TUkNTPSIkQ09ORklHX1NSQ1MgXCQo U1VCRElSX1BZVEhPTl9TUkNTKSIKQEAgLTcwNTQsNyArNzUwNiw3IEBAIGluZGV4IDc1NzljODQu LjllYjlhOGQgMTAwNzU1CiAgICBFTkFCTEVfQ0ZMQUdTPSIkRU5BQkxFX0NGTEFHUyBcJChTVUJE SVJfUFlUSE9OX0NGTEFHUykiCiAgCiAgICAjIEZsYWdzIG5lZWRlZCB0byBjb21waWxlIFB5dGhv biBjb2RlICh0YWtlbiBmcm9tIHB5dGhvbi1jb25maWcgLS1jZmxhZ3MpLgotQEAgLTE1NDQ1LDEw ICsxNTcxNSwxMSBAQCBmaQorQEAgLTE1NDQ1LDEwICsxNTczMSwxMSBAQCBmaQogIAogIAogIApA QCAtNzA2Nyw3ICs3NTE5LDcgQEAgaW5kZXggNzU3OWM4NC4uOWViOWE4ZCAxMDA3NTUKICBkbwog IGFzX2FjX3Zhcj1gZWNobyAiYWNfY3ZfZnVuY18kYWNfZnVuYyIgfCAkYXNfdHJfc2hgCiAgZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfZnVuYyIgPiY1Ci1AQCAtMTU1NTAs NiArMTU4MjEsNzAgQEAgZmkKK0BAIC0xNTU1MCw2ICsxNTgzNyw3MCBAQCBmaQogIGRvbmUKICAK ICAKQEAgLTcxMzgsNyArNzU5MCw3IEBAIGluZGV4IDc1NzljODQuLjllYjlhOGQgMTAwNzU1CiAg IyBDaGVjayB0aGUgcmV0dXJuIGFuZCBhcmd1bWVudCB0eXBlcyBvZiBwdHJhY2UuICBObyBjYW5u ZWQgdGVzdCBmb3IKICAjIHRoaXMsIHNvIHJvbGwgb3VyIG93bi4KICBnZGJfcHRyYWNlX2hlYWRl cnM9JwotQEAgLTIwNzc2LDIzMCArMjExMTEsMTEgQEAgZG9uZQorQEAgLTIwNzc2LDIzMCArMjEx MjcsMTEgQEAgZG9uZQogIAogIAogIApAQCAtNzM3MCw3ICs3ODIyLDcgQEAgaW5kZXggNzU3OWM4 NC4uOWViOWE4ZCAxMDA3NTUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY19jb25m aWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgLmdkYmluaXQ6Z2RiaW5pdC5pbiBn bnVsaWIvTWFrZWZpbGUiCiAgICAgICAgICAgIGFjX2NvbmZpZ19jb21tYW5kcz0iJGFjX2NvbmZp Z19jb21tYW5kcyBkZWZhdWx0IgogIGNhdCA+Y29uZmNhY2hlIDw8XF9BQ0VPRgotQEAgLTIxODY1 LDYgKzIxOTgxLDcgQEAgcyxAQU1ERVBfRkFMU0VALCRBTURFUF9GQUxTRSw7dCB0CitAQCAtMjE4 NjUsNiArMjE5OTcsNyBAQCBzLEBBTURFUF9GQUxTRUAsJEFNREVQX0ZBTFNFLDt0IHQKICBzLEBB TURFUEJBQ0tTTEFTSEAsJEFNREVQQkFDS1NMQVNILDt0IHQKICBzLEBhbV9fZmFzdGRlcENDX1RS VUVALCRhbV9fZmFzdGRlcENDX1RSVUUsO3QgdAogIHMsQGFtX19mYXN0ZGVwQ0NfRkFMU0VALCRh bV9fZmFzdGRlcENDX0ZBTFNFLDt0IHQKQEAgLTczNzgsNyArNzgzMCw3IEBAIGluZGV4IDc1Nzlj ODQuLjllYjlhOGQgMTAwNzU1CiAgcyxAc3ViZGlyc0AsJHN1YmRpcnMsO3QgdAogIHMsQFRBUkdF VF9PQlNALCRUQVJHRVRfT0JTLDt0IHQKICBzLEBQS0dWRVJTSU9OQCwkUEtHVkVSU0lPTiw7dCB0 Ci1AQCAtMjE4ODAsNiArMjE5OTcsOSBAQCBzLEBXSU5EUkVTQCwkV0lORFJFUyw7dCB0CitAQCAt MjE4ODAsMTIgKzIyMDEzLDE2IEBAIHMsQFdJTkRSRVNALCRXSU5EUkVTLDt0IHQKICBzLEBhY19j dF9XSU5EUkVTQCwkYWNfY3RfV0lORFJFUyw7dCB0CiAgcyxATUlHQCwkTUlHLDt0IHQKICBzLEBh Y19jdF9NSUdALCRhY19jdF9NSUcsO3QgdApAQCAtNzM4OCw3ICs3ODQwLDE0IEBAIGluZGV4IDc1 NzljODQuLjllYjlhOGQgMTAwNzU1CiAgcyxAUkVBRExJTkVALCRSRUFETElORSw7dCB0CiAgcyxA UkVBRExJTkVfREVQU0AsJFJFQURMSU5FX0RFUFMsO3QgdAogIHMsQFJFQURMSU5FX0NGTEFHU0As JFJFQURMSU5FX0NGTEFHUyw7dCB0Ci1AQCAtMjE5NDQsNyArMjIwNjQsNiBAQCBzLEBDT05GSUdf VU5JTlNUQUxMQCwkQ09ORklHX1VOSU5TVEFMTCw7dCB0CisgcyxASEFWRV9MSUJFWFBBVEAsJEhB VkVfTElCRVhQQVQsO3QgdAorIHMsQExJQkVYUEFUQCwkTElCRVhQQVQsO3QgdAorIHMsQExUTElC RVhQQVRALCRMVExJQkVYUEFULDt0IHQKKytzLEBHREJfUFlUSE9ORElSX1BBVEhALCRHREJfUFlU SE9ORElSX1BBVEgsO3QgdAorIHMsQFBZVEhPTl9DRkxBR1NALCRQWVRIT05fQ0ZMQUdTLDt0IHQK KyBzLEBBTExPQ0FALCRBTExPQ0EsO3QgdAorIHMsQENPTkZJR19MREZMQUdTQCwkQ09ORklHX0xE RkxBR1MsO3QgdAorQEAgLTIxOTQ0LDcgKzIyMDgxLDYgQEAgcyxAQ09ORklHX1VOSU5TVEFMTEAs JENPTkZJR19VTklOU1RBTEwsO3QgdAogIHMsQHRhcmdldF9zdWJkaXJALCR0YXJnZXRfc3ViZGly LDt0IHQKICBzLEBmcmFnc0AsJGZyYWdzLDt0IHQKICBzLEBubV9oQCwkbm1faCw7dCB0CkBAIC03 Mzk3LDcgKzc4NTYsNyBAQCBpbmRleCA3NTc5Yzg0Li45ZWI5YThkIDEwMDc1NQogIHMsQExUTElC T0JKU0AsJExUTElCT0JKUyw7dCB0CiAgcyxAZ2xfTElCT0JKU0AsJGdsX0xJQk9CSlMsO3QgdAog ZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUuYWMgYi9nZGIvY29uZmlndXJlLmFjCi1pbmRleCAz ZjgxZmYyLi41ODkyYzU5IDEwMDY0NAoraW5kZXggM2Y4MWZmMi4uODU3YTdjZCAxMDA2NDQKIC0t LSBhL2dkYi9jb25maWd1cmUuYWMKICsrKyBiL2dkYi9jb25maWd1cmUuYWMKIEBAIC0xLDYgKzEs NiBAQApAQCAtNzQ1NCw3ICs3OTEzLDM2IEBAIGluZGV4IDNmODFmZjIuLjU4OTJjNTkgMTAwNjQ0 CiAgIyBPbiBhbHBoYS1vc2YsIGl0IGFwcGVhcnMgdGhhdCBsaWJ0ZXJtY2FwIGFuZCBsaWJjdXJz ZXMgYXJlIG5vdCBjb21wYXRpYmxlLgogICMgVGhlcmUgaXMgYSB2ZXJ5IHNwZWNpZmljIGNvbW1l bnQgaW4gL3Vzci9pbmNsdWRlL2N1cnNlcy5oIGV4cGxhaW5pbmcgdGhhdAogICMgdGVybWNhcCBy b3V0aW5lcyBidWlsdCBpbnRvIGxpYmN1cnNlcyBtdXN0IG5vdCBiZSB1c2VkLgotQEAgLTY0OSw2 ICs2ODEsOCBAQCBpZiB0ZXN0ICIke2hhdmVfbGlicHl0aG9ufSIgPSB5ZXM7IHRoZW4KK0BAIC01 ODUsNiArNjE3LDcgQEAgQUNfQVJHX1dJVEgocHl0aG9uLAorIEFDX01TR19DSEVDS0lORyhbd2hl dGhlciB0byB1c2UgcHl0aG9uXSkKKyBBQ19NU0dfUkVTVUxUKFskd2l0aF9weXRob25dKQorIAor K0dEQl9QWVRIT05ESVJfUEFUSD0KKyBpZiB0ZXN0ICIke3dpdGhfcHl0aG9ufSIgPSBubzsgdGhl bgorICAgQUNfTVNHX1dBUk4oW3B5dGhvbiBzdXBwb3J0IGRpc2FibGVkOyBzb21lIGZlYXR1cmVz IG1heSBiZSB1bmF2YWlsYWJsZS5dKQorICAgaGF2ZV9saWJweXRob249bm8KK0BAIC02MjcsNyAr NjYwLDExIEBAIGVsc2UKKyAgICAgICBBQ19ERUZJTkUoSEFWRV9MSUJQWVRIT04yXzQsIDEsIFtE ZWZpbmUgaWYgUHl0aG9uIDIuNCBpcyBiZWluZyB1c2VkLl0pCisgICAgIGZpCisgICBmaQorLSAg aWYgdGVzdCAke2hhdmVfbGlicHl0aG9ufSA9IG5vOyB0aGVuCisrICBpZiB0ZXN0ICR7aGF2ZV9s aWJweXRob259ICE9IG5vOyB0aGVuCisrICAgIEdEQl9QWVRIT05ESVJfUEFUSD0iYHB5dGhvbiAt YyAiZnJvbSBkaXN0dXRpbHMuc3lzY29uZmlnIGltcG9ydCBnZXRfcHl0aG9uX2xpYjsgcHJpbnQg Z2V0X3B5dGhvbl9saWIoKTsiYCIKKysgICAgQUNfREVGSU5FX0RJUihHREJfUFlUSE9ORElSX1BB VEgsIEdEQl9QWVRIT05ESVJfUEFUSCwgCisrCQkgIFtCYXNlIGRpcmVjdG9yeSBmb3IgR0RCIFB5 dGhvbiBtb2R1bGVzLl0pCisrICBlbHNlCisgICAgIGNhc2UgIiR7d2l0aF9weXRob259IiBpbgor ICAgICB5ZXMpCisgICAgICAgQUNfTVNHX0VSUk9SKFtweXRob24gaXMgbWlzc2luZyBvciB1bnVz YWJsZV0pCitAQCAtNjQzLDEyICs2ODAsMTYgQEAgZWxzZQorICAgICBMSUJTPSRzYXZlX0xJQlMK KyAgIGZpCisgZmkKKytBQ19TVUJTVChHREJfUFlUSE9ORElSX1BBVEgpCisgCisrUFlUSE9OX0NG TEFHUz0KKyBpZiB0ZXN0ICIke2hhdmVfbGlicHl0aG9ufSIgPSB5ZXM7IHRoZW4KKyAgIEFDX0RF RklORShIQVZFX1BZVEhPTiwgMSwgW0RlZmluZSBpZiBQeXRob24gaW50ZXJwcmV0ZXIgaXMgYmVp bmcgbGlua2VkIGluLl0pCiAgICBDT05GSUdfT0JTPSIkQ09ORklHX09CUyBcJChTVUJESVJfUFlU SE9OX09CUykiCiAgICBDT05GSUdfREVQUz0iJENPTkZJR19ERVBTIFwkKFNVQkRJUl9QWVRIT05f REVQUykiCiAgICBDT05GSUdfU1JDUz0iJENPTkZJR19TUkNTIFwkKFNVQkRJUl9QWVRIT05fU1JD UykiCkBAIC03NDYzLDcgKzc5NTEsNyBAQCBpbmRleCAzZjgxZmYyLi41ODkyYzU5IDEwMDY0NAog ICAgRU5BQkxFX0NGTEFHUz0iJEVOQUJMRV9DRkxBR1MgXCQoU1VCRElSX1BZVEhPTl9DRkxBR1Mp IgogIAogICAgIyBGbGFncyBuZWVkZWQgdG8gY29tcGlsZSBQeXRob24gY29kZSAodGFrZW4gZnJv bSBweXRob24tY29uZmlnIC0tY2ZsYWdzKS4KLUBAIC03NzYsNyArODEwLDggQEAgQUNfRlVOQ19W Rk9SSworQEAgLTc3Niw3ICs4MTcsOCBAQCBBQ19GVU5DX1ZGT1JLCiAgQUNfQ0hFQ0tfRlVOQ1Mo W2Nhbm9uaWNhbGl6ZV9maWxlX25hbWUgcmVhbHBhdGggZ2V0cnVzYWdlIGdldHVpZCBcCiAgICAg ICAgICAgICAgICAgIGdldGdpZCBwb2xsIHByZWFkNjQgc2JyayBzZXRwZ2lkIHNldHBncnAgc2V0 c2lkIFwKICAJCXNpZ2FjdGlvbiBzaWdwcm9jbWFzayBzaWdzZXRtYXNrIHNvY2tldHBhaXIgc3lz Y2FsbCBcCkBAIC03NDczLDcgKzc5NjEsNyBAQCBpbmRleCAzZjgxZmYyLi41ODkyYzU5IDEwMDY0 NAogIAogICMgQ2hlY2sgdGhlIHJldHVybiBhbmQgYXJndW1lbnQgdHlwZXMgb2YgcHRyYWNlLiAg Tm8gY2FubmVkIHRlc3QgZm9yCiAgIyB0aGlzLCBzbyByb2xsIG91ciBvd24uCi1AQCAtMTkzMCwx NyArMTk2NSwxMCBAQCBkbmwgQ2hlY2sgZm9yIGV4ZSBleHRlbnNpb24gc2V0IG9uIGNlcnRhaW4g aG9zdHMgKGUuZy4gV2luMzIpCitAQCAtMTkzMCwxNyArMTk3MiwxMCBAQCBkbmwgQ2hlY2sgZm9y IGV4ZSBleHRlbnNpb24gc2V0IG9uIGNlcnRhaW4gaG9zdHMgKGUuZy4gV2luMzIpCiAgQUNfRVhF RVhUCiAgCiAgZG5sICBEZXRlY3QgdGhlIGNoYXJhY3RlciBzZXQgdXNlZCBieSB0aGlzIGhvc3Qu CkBAIC03NjA5LDYgKzgwOTcsNDU1IEBAIGluZGV4IDY1YzNlMjUuLmYwY2NhN2QgMTAwNjQ0CiAg CWJ1aWxkX2dkYnNlcnZlcj15ZXMKICAJOzsKICB4dGVuc2EqKQorZGlmZiAtLWdpdCBhL2dkYi9j cC1uYW1lLXBhcnNlci55IGIvZ2RiL2NwLW5hbWUtcGFyc2VyLnkKK2luZGV4IDVmNWVlM2EuLmE4 ZjhmMzAgMTAwNjQ0CistLS0gYS9nZGIvY3AtbmFtZS1wYXJzZXIueQorKysrIGIvZ2RiL2NwLW5h bWUtcGFyc2VyLnkKK0BAIC0xLDcgKzEsNiBAQAorIC8qIFlBQ0MgcGFyc2VyIGZvciBDKysgbmFt ZXMsIGZvciBHREIuCisgCistICAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA3 LCAyMDA4LCAyMDA5CistICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgQ29w eXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA3LCAyMDA4LCAyMDA5IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorIAorICAgIFBhcnRzIG9mIHRoZSBsZXhlciBhcmUgYmFzZWQg b24gYy1leHAueSBmcm9tIEdEQi4KKyAKK0BAIC01MDEsNyArNTAwLDcgQEAgb3BlcmF0b3IJOglP UEVSQVRPUiBORVcKKyAJCXwJT1BFUkFUT1IgQVJST1cKKyAJCQl7ICQkID0gbWFrZV9vcGVyYXRv ciAoIi0+IiwgMik7IH0KKyAJCXwJT1BFUkFUT1IgJygnICcpJworLQkJCXsgJCQgPSBtYWtlX29w ZXJhdG9yICgiKCkiLCAwKTsgfQorKwkJCXsgJCQgPSBtYWtlX29wZXJhdG9yICgiKCkiLCAyKTsg fQorIAkJfAlPUEVSQVRPUiAnWycgJ10nCisgCQkJeyAkJCA9IG1ha2Vfb3BlcmF0b3IgKCJbXSIs IDIpOyB9CisgCQk7CitkaWZmIC0tZ2l0IGEvZ2RiL2NwLW5hbWVzcGFjZS5jIGIvZ2RiL2NwLW5h bWVzcGFjZS5jCitpbmRleCBjNmM1NjE3Li40Yjg0MzQ4IDEwMDY0NAorLS0tIGEvZ2RiL2NwLW5h bWVzcGFjZS5jCisrKysgYi9nZGIvY3AtbmFtZXNwYWNlLmMKK0BAIC0zMCwyNiArMzAsMTMgQEAK KyAjaW5jbHVkZSAiZGljdGlvbmFyeS5oIgorICNpbmNsdWRlICJjb21tYW5kLmgiCisgI2luY2x1 ZGUgImZyYW1lLmgiCisrI2luY2x1ZGUgImJ1aWxkc3ltLmgiCisgCisgLyogTGlzdCBvZiB1c2lu ZyBkaXJlY3RpdmVzIHRoYXQgYXJlIGFjdGl2ZSBpbiB0aGUgY3VycmVudCBmaWxlLiAgKi8KKyAK Ky1zdGF0aWMgc3RydWN0IHVzaW5nX2RpcmVjdCAqdXNpbmdfbGlzdDsKKy0KKy1zdGF0aWMgc3Ry dWN0IHVzaW5nX2RpcmVjdCAqY3BfYWRkX3VzaW5nIChjb25zdCBjaGFyICpuYW1lLAorLQkJCQkJ ICB1bnNpZ25lZCBpbnQgaW5uZXJfbGVuLAorLQkJCQkJICB1bnNpZ25lZCBpbnQgb3V0ZXJfbGVu LAorLQkJCQkJICBzdHJ1Y3QgdXNpbmdfZGlyZWN0ICpuZXh0KTsKKy0KKyBzdGF0aWMgc3RydWN0 IHVzaW5nX2RpcmVjdCAqY3BfY29weV91c2luZ3MgKHN0cnVjdCB1c2luZ19kaXJlY3QgKnVzaW5n LAorIAkJCQkJICAgIHN0cnVjdCBvYnN0YWNrICpvYnN0YWNrKTsKKyAKKy1zdGF0aWMgc3RydWN0 IHN5bWJvbCAqbG9va3VwX25hbWVzcGFjZV9zY29wZSAoY29uc3QgY2hhciAqbmFtZSwKKy0JCQkJ CSAgICAgIGNvbnN0IGNoYXIgKmxpbmthZ2VfbmFtZSwKKy0JCQkJCSAgICAgIGNvbnN0IHN0cnVj dCBibG9jayAqYmxvY2ssCistCQkJCQkgICAgICBjb25zdCBkb21haW5fZW51bSBkb21haW4sCist CQkJCQkgICAgICBjb25zdCBjaGFyICpzY29wZSwKKy0JCQkJCSAgICAgIGludCBzY29wZV9sZW4p OworLQorIHN0YXRpYyBzdHJ1Y3Qgc3ltYm9sICpsb29rdXBfc3ltYm9sX2ZpbGUgKGNvbnN0IGNo YXIgKm5hbWUsCisgCQkJCQkgIGNvbnN0IGNoYXIgKmxpbmthZ2VfbmFtZSwKKyAJCQkJCSAgY29u c3Qgc3RydWN0IGJsb2NrICpibG9jaywKK0BAIC03OCwzMSArNjUsNiBAQCBzdGF0aWMgc3RydWN0 IHN5bWJvbCAqbG9va3VwX3Bvc3NpYmxlX25hbWVzcGFjZV9zeW1ib2wgKGNvbnN0IGNoYXIgKm5h bWUpOworIAorIHN0YXRpYyB2b2lkIG1haW50ZW5hbmNlX2NwbHVzX25hbWVzcGFjZSAoY2hhciAq YXJncywgaW50IGZyb21fdHR5KTsKKyAKKy0vKiBTZXQgdXAgc3VwcG9ydCBmb3IgZGVhbGluZyB3 aXRoIEMrKyBuYW1lc3BhY2UgaW5mbyBpbiB0aGUgY3VycmVudAorLSAgIHN5bXRhYi4gICovCist Cistdm9pZCBjcF9pbml0aWFsaXplX25hbWVzcGFjZSAoKQorLXsKKy0gIHVzaW5nX2xpc3QgPSBO VUxMOworLX0KKy0KKy0vKiBBZGQgYWxsIHRoZSB1c2luZyBkaXJlY3RpdmVzIHdlJ3ZlIGdhdGhl cmVkIHRvIHRoZSBjdXJyZW50IHN5bXRhYi4KKy0gICBTVEFUSUNfQkxPQ0sgc2hvdWxkIGJlIHRo ZSBzeW10YWIncyBzdGF0aWMgYmxvY2s7IE9CU1RBQ0sgaXMgdXNlZAorLSAgIGZvciBhbGxvY2F0 aW9uLiAgKi8KKy0KKy12b2lkCistY3BfZmluYWxpemVfbmFtZXNwYWNlIChzdHJ1Y3QgYmxvY2sg KnN0YXRpY19ibG9jaywKKy0JCSAgICAgICBzdHJ1Y3Qgb2JzdGFjayAqb2JzdGFjaykKKy17Cist ICBpZiAodXNpbmdfbGlzdCAhPSBOVUxMKQorLSAgICB7CistICAgICAgYmxvY2tfc2V0X3VzaW5n IChzdGF0aWNfYmxvY2ssCistCQkgICAgICAgY3BfY29weV91c2luZ3MgKHVzaW5nX2xpc3QsIG9i c3RhY2spLAorLQkJICAgICAgIG9ic3RhY2spOworLSAgICAgIHVzaW5nX2xpc3QgPSBOVUxMOwor LSAgICB9CistfQorLQorIC8qIENoZWNrIHRvIHNlZSBpZiBTWU1CT0wgcmVmZXJzIHRvIGFuIG9i amVjdCBjb250YWluZWQgd2l0aGluIGFuCisgICAgYW5vbnltb3VzIG5hbWVzcGFjZTsgaWYgc28s IGFkZCBhbiBhcHByb3ByaWF0ZSB1c2luZyBkaXJlY3RpdmUuICAqLworIAorQEAgLTEzNiwxNCAr OTgsMTcgQEAgY3Bfc2Nhbl9mb3JfYW5vbnltb3VzX25hbWVzcGFjZXMgKGNvbnN0IHN0cnVjdCBz eW1ib2wgKnN5bWJvbCkKKyAJCQkgICIoYW5vbnltb3VzIG5hbWVzcGFjZSkiLAorIAkJCSAgQU5P TllNT1VTX05BTUVTUEFDRV9MRU4pID09IDApCisgCSAgICB7CisrCSAgICAgIGludCBvdXRlcl9s ZW4gPSAocHJldmlvdXNfY29tcG9uZW50ID09IDAgPyAwIDogcHJldmlvdXNfY29tcG9uZW50IC0g Mik7CisrCSAgICAgIGNoYXIgb3V0ZXJbb3V0ZXJfbGVuKzFdOworKwkgICAgICAKKysJICAgICAg c3RybmNweShvdXRlciwgbmFtZSwgb3V0ZXJfbGVuKTsKKysJICAgICAgCisrCSAgICAgIG91dGVy W291dGVyX2xlbl0gPSAnXDAnOworIAkgICAgICAvKiBXZSd2ZSBmb3VuZCBhIGNvbXBvbmVudCBv ZiB0aGUgbmFtZSB0aGF0J3MgYW4KKyAJCSBhbm9ueW1vdXMgbmFtZXNwYWNlLiAgU28gYWRkIHN5 bWJvbHMgaW4gaXQgdG8gdGhlCisgCQkgbmFtZXNwYWNlIGdpdmVuIGJ5IHRoZSBwcmV2aW91cyBj b21wb25lbnQgaWYgdGhlcmUgaXMKKyAJCSBvbmUsIG9yIHRvIHRoZSBnbG9iYWwgbmFtZXNwYWNl IGlmIHRoZXJlIGlzbid0LiAgKi8KKy0JICAgICAgY3BfYWRkX3VzaW5nX2RpcmVjdGl2ZSAobmFt ZSwKKy0JCQkJICAgICAgcHJldmlvdXNfY29tcG9uZW50ID09IDAKKy0JCQkJICAgICAgPyAwIDog cHJldmlvdXNfY29tcG9uZW50IC0gMiwKKy0JCQkJICAgICAgbmV4dF9jb21wb25lbnQpOworKwkg ICAgICBjcF9hZGRfdXNpbmdfZGlyZWN0aXZlIChvdXRlciwgbmFtZSwgIiIsICIiLCAwKTsKKyAJ ICAgIH0KKyAJICAvKiBUaGUgIisgMiIgaXMgZm9yIHRoZSAiOjoiLiAgKi8KKyAJICBwcmV2aW91 c19jb21wb25lbnQgPSBuZXh0X2NvbXBvbmVudCArIDI7CitAQCAtMTU0LDMyICsxMTksMjcgQEAg Y3Bfc2Nhbl9mb3JfYW5vbnltb3VzX25hbWVzcGFjZXMgKGNvbnN0IHN0cnVjdCBzeW1ib2wgKnN5 bWJvbCkKKyAgICAgfQorIH0KKyAKKy0vKiBBZGQgYSB1c2luZyBkaXJlY3RpdmUgdG8gdXNpbmdf bGlzdC4gIE5BTUUgaXMgdGhlIHN0YXJ0IG9mIGEgc3RyaW5nCistICAgdGhhdCBzaG91bGQgY29u dGFpbiB0aGUgbmFtZXNwYWNlcyB3ZSB3YW50IHRvIGFkZCBhcyBpbml0aWFsCistICAgc3Vic3Ry aW5ncywgT1VURVJfTEVOR1RIIGlzIHRoZSBlbmQgb2YgdGhlIG91dGVyIG5hbWVzcGFjZSwgYW5k CistICAgSU5ORVJfTEVOR1RIIGlzIHRoZSBlbmQgb2YgdGhlIGlubmVyIG5hbWVzcGFjZS4gIElm IHRoZSB1c2luZworLSAgIGRpcmVjdGl2ZSBpbiBxdWVzdGlvbiBoYXMgYWxyZWFkeSBiZWVuIGFk ZGVkLCBkb24ndCBhZGQgaXQKKy0gICB0d2ljZS4gICovCisrLyogQWRkIGEgdXNpbmcgZGlyZWN0 aXZlIHRvIHVzaW5nX2xpc3QuIElmIHRoZSB1c2luZyBkaXJlY3RpdmUgaW4gcXVlc3Rpb24KKysg ICBoYXMgYWxyZWFkeSBiZWVuIGFkZGVkLCBkb24ndCBhZGQgaXQgdHdpY2UuICAqLworIAorIHZv aWQKKy1jcF9hZGRfdXNpbmdfZGlyZWN0aXZlIChjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBp bnQgb3V0ZXJfbGVuZ3RoLAorLQkJCXVuc2lnbmVkIGludCBpbm5lcl9sZW5ndGgpCisrY3BfYWRk X3VzaW5nX2RpcmVjdGl2ZSAoY29uc3QgY2hhciAqb3V0ZXIsIGNvbnN0IGNoYXIgKmlubmVyLCBj b25zdCBjaGFyKiBhbGlhcywKKysgICAgY29uc3QgY2hhciAqZGVjbGFyYXRpb24sIGNvbnN0IGlu dCBsaW5lX251bWJlcikKKyB7CisgICBzdHJ1Y3QgdXNpbmdfZGlyZWN0ICpjdXJyZW50OworICAg c3RydWN0IHVzaW5nX2RpcmVjdCAqbmV3OworIAorICAgLyogSGFzIGl0IGFscmVhZHkgYmVlbiBh ZGRlZD8gICovCisgCistICBmb3IgKGN1cnJlbnQgPSB1c2luZ19saXN0OyBjdXJyZW50ICE9IE5V TEw7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0KQorKyAgZm9yIChjdXJyZW50ID0gdXNpbmdfZGly ZWN0aXZlczsgY3VycmVudCAhPSBOVUxMOyBjdXJyZW50ID0gY3VycmVudC0+bmV4dCkKKyAgICAg eworLSAgICAgIGlmICgoc3RybmNtcCAoY3VycmVudC0+aW5uZXIsIG5hbWUsIGlubmVyX2xlbmd0 aCkgPT0gMCkKKy0JICAmJiAoc3RybGVuIChjdXJyZW50LT5pbm5lcikgPT0gaW5uZXJfbGVuZ3Ro KQorLQkgICYmIChzdHJsZW4gKGN1cnJlbnQtPm91dGVyKSA9PSBvdXRlcl9sZW5ndGgpKQorKyAg ICAgIGlmIChzdHJjbXAgKGN1cnJlbnQtPmlubmVyLCBpbm5lcikgPT0gMAorKwkgICYmIHN0cmNt cCAoY3VycmVudC0+b3V0ZXIsIG91dGVyKSA9PSAwKQorIAlyZXR1cm47CisgICAgIH0KKyAKKy0g IHVzaW5nX2xpc3QgPSBjcF9hZGRfdXNpbmcgKG5hbWUsIGlubmVyX2xlbmd0aCwgb3V0ZXJfbGVu Z3RoLAorLQkJCSAgICAgdXNpbmdfbGlzdCk7CisrICB1c2luZ19kaXJlY3RpdmVzID0gY3BfYWRk X3VzaW5nIChvdXRlciwgaW5uZXIsIGFsaWFzLCBkZWNsYXJhdGlvbiwKKysgICAgICBsaW5lX251 bWJlcix1c2luZ19kaXJlY3RpdmVzKTsKKyB9CisgCisgLyogUmVjb3JkIHRoZSBuYW1lc3BhY2Ug dGhhdCB0aGUgZnVuY3Rpb24gZGVmaW5lZCBieSBTWU1CT0wgd2FzCitAQCAtMjMwLDI2ICsxOTAs MzEgQEAgY3BfaXNfYW5vbnltb3VzIChjb25zdCBjaGFyICpuYW1lc3BhY2UpCisgCSAgIT0gTlVM TCk7CisgfQorIAorLS8qIENyZWF0ZSBhIG5ldyBzdHJ1Y3QgdXNpbmcgZGlyZWN0IHdob3NlIGlu bmVyIG5hbWVzcGFjZSBpcyB0aGUKKy0gICBpbml0aWFsIHN1YnN0cmluZyBvZiBOQU1FIG9mIGxl bmcgSU5ORVJfTEVOIGFuZCB3aG9zZSBvdXRlcgorLSAgIG5hbWVzcGFjZSBpcyB0aGUgaW5pdGlh bCBzdWJzdHJpbmcgb2YgTkFNRSBvZiBsZW5ndGggT1VURVJfTEVOR1RILgorKy8qIENyZWF0ZSBh IG5ldyBzdHJ1Y3QgdXNpbmcgZGlyZWN0IHdob3NlIGlubmVyIG5hbWVzcGFjZSBpcyBJTk5FUiAK KysgICBhbmQgd2hvc2Ugb3V0ZXIgbmFtZXNwYWNlIGlzIE9VVEVSLiBBTElBUyBpcyB0aGUgbmFt ZSBvZiB0aGUgaW1wb3J0ZWQKKysgICBuYW1lc3BhY2UgaW4gdGhlIGN1cnJlbnQgc2NvcGUuIElm IEFMSUFTIGlzIGFuIGVtcHR5IHN0cmluZyAgdGhlbiB0aGUKKysgICBuYW1lc3BhY2UgaXMga25v d24gYnkgaXRzIG9yaWdpbmFsIG5hbWUuCisgICAgU2V0IGl0cyBuZXh0IG1lbWJlciBpbiB0aGUg bGlua2VkIGxpc3QgdG8gTkVYVDsgYWxsb2NhdGUgYWxsIG1lbW9yeQorICAgIHVzaW5nIHhtYWxs b2MuICBJdCBjb3BpZXMgdGhlIHN0cmluZ3MsIHNvIE5BTUUgY2FuIGJlIGEgdGVtcG9yYXJ5Cisg ICAgc3RyaW5nLiAgKi8KKyAKKy1zdGF0aWMgc3RydWN0IHVzaW5nX2RpcmVjdCAqCistY3BfYWRk X3VzaW5nIChjb25zdCBjaGFyICpuYW1lLAorLQkgICAgICB1bnNpZ25lZCBpbnQgaW5uZXJfbGVu LAorLQkgICAgICB1bnNpZ25lZCBpbnQgb3V0ZXJfbGVuLAorK3N0cnVjdCB1c2luZ19kaXJlY3Qg KgorK2NwX2FkZF91c2luZyAoY29uc3QgY2hhciAqb3V0ZXIsCisrICAgICAgICAgICAgICBjb25z dCBjaGFyICppbm5lciwKKysgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmFsaWFzLAorKyAgICAg ICAgICAgICAgY29uc3QgY2hhciAqZGVjbGFyYXRpb24sCisrICAgICAgICAgICAgICBjb25zdCBp bnQgbGluZV9udW1iZXIsCisgCSAgICAgIHN0cnVjdCB1c2luZ19kaXJlY3QgKm5leHQpCisgewor ICAgc3RydWN0IHVzaW5nX2RpcmVjdCAqcmV0dmFsOworIAorLSAgZ2RiX2Fzc2VydCAob3V0ZXJf bGVuIDwgaW5uZXJfbGVuKTsKKy0KKyAgIHJldHZhbCA9IHhtYWxsb2MgKHNpemVvZiAoc3RydWN0 IHVzaW5nX2RpcmVjdCkpOworLSAgcmV0dmFsLT5pbm5lciA9IHNhdmVzdHJpbmcgKG5hbWUsIGlu bmVyX2xlbik7CistICByZXR2YWwtPm91dGVyID0gc2F2ZXN0cmluZyAobmFtZSwgb3V0ZXJfbGVu KTsKKysgIHJldHZhbC0+aW5uZXIgPSBzYXZlc3RyaW5nIChpbm5lciwgc3RybGVuKGlubmVyKSk7 CisrICByZXR2YWwtPm91dGVyID0gc2F2ZXN0cmluZyAob3V0ZXIsIHN0cmxlbihvdXRlcikpOwor KyAgcmV0dmFsLT5hbGlhcyA9IHNhdmVzdHJpbmcgKGFsaWFzLCBzdHJsZW4oYWxpYXMpKTsKKysg IHJldHZhbC0+ZGVjbGFyYXRpb24gPSBzYXZlc3RyaW5nIChkZWNsYXJhdGlvbiwgc3RybGVuKGRl Y2xhcmF0aW9uKSk7CisrICByZXR2YWwtPmxpbmVfbnVtYmVyID0gbGluZV9udW1iZXI7CisrICAg ICAgICAKKyAgIHJldHZhbC0+bmV4dCA9IG5leHQ7CisgCisgICByZXR1cm4gcmV0dmFsOworQEAg LTI3NCw3ICsyMzksMTEgQEAgY3BfY29weV91c2luZ3MgKHN0cnVjdCB1c2luZ19kaXJlY3QgKnVz aW5nLAorICAgICAgIHJldHZhbC0+aW5uZXIgPSBvYnNhdmVzdHJpbmcgKHVzaW5nLT5pbm5lciwg c3RybGVuICh1c2luZy0+aW5uZXIpLAorIAkJCQkgICAgb2JzdGFjayk7CisgICAgICAgcmV0dmFs LT5vdXRlciA9IG9ic2F2ZXN0cmluZyAodXNpbmctPm91dGVyLCBzdHJsZW4gKHVzaW5nLT5vdXRl ciksCistCQkJCSAgICBvYnN0YWNrKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvYnN0YWNrKTsKKysgICAgICByZXR2YWwtPmFsaWFzID0gb2JzYXZlc3RyaW5nICh1c2lu Zy0+YWxpYXMsIHN0cmxlbiAodXNpbmctPmFsaWFzKSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvYnN0YWNrKTsKKysgICAgICByZXR2YWwtPmRlY2xhcmF0aW9uID0gb2Jz YXZlc3RyaW5nICh1c2luZy0+ZGVjbGFyYXRpb24sIHN0cmxlbiAodXNpbmctPmRlY2xhcmF0aW9u KSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnN0YWNrKTsKKyAgICAg ICByZXR2YWwtPm5leHQgPSBjcF9jb3B5X3VzaW5ncyAodXNpbmctPm5leHQsIG9ic3RhY2spOwor IAorICAgICAgIHhmcmVlICh1c2luZy0+aW5uZXIpOworQEAgLTI5OSw4ICsyNjgsMTQgQEAgY3Bf bG9va3VwX3N5bWJvbF9ub25sb2NhbCAoY29uc3QgY2hhciAqbmFtZSwKKyAJCQkgICBjb25zdCBz dHJ1Y3QgYmxvY2sgKmJsb2NrLAorIAkJCSAgIGNvbnN0IGRvbWFpbl9lbnVtIGRvbWFpbikKKyB7 CistICByZXR1cm4gbG9va3VwX25hbWVzcGFjZV9zY29wZSAobmFtZSwgbGlua2FnZV9uYW1lLCBi bG9jaywgZG9tYWluLAorLQkJCQkgYmxvY2tfc2NvcGUgKGJsb2NrKSwgMCk7CisrCisrICBzdHJ1 Y3Qgc3ltYm9sKiBzeW0gPSBsb29rdXBfbmFtZXNwYWNlX3Njb3BlKG5hbWUsIGxpbmthZ2VfbmFt ZSwgYmxvY2ssCisrICAgICAgZG9tYWluLCBibG9ja19zY29wZShibG9jayksIDApOworKworKyAg aWYgKHN5bSAhPSBOVUxMKQorKyAgICByZXR1cm4gc3ltOworKworKyAgcmV0dXJuIGxvb2t1cF9z eW1ib2xfZmlsZShuYW1lLCBsaW5rYWdlX25hbWUsIGJsb2NrLCBkb21haW4sIDApOworIH0KKyAK KyAvKiBMb29rdXAgTkFNRSBhdCBuYW1lc3BhY2Ugc2NvcGUgKG9yLCBpbiBDIHRlcm1zLCBpbiBz dGF0aWMgYW5kCitAQCAtMzE4LDcgKzI5Myw3IEBAIGNwX2xvb2t1cF9zeW1ib2xfbm9ubG9jYWwg KGNvbnN0IGNoYXIgKm5hbWUsCisgICAgIkE6OngiLCBhbmQgaWYgdGhhdCBjYWxsIGZhaWxzLCB0 aGVuIHRoZSBmaXJzdCBjYWxsIGxvb2tzIGZvcgorICAgICJ4Ii4gICovCisgCistc3RhdGljIHN0 cnVjdCBzeW1ib2wgKgorK3N0cnVjdCBzeW1ib2wgKgorIGxvb2t1cF9uYW1lc3BhY2Vfc2NvcGUg KGNvbnN0IGNoYXIgKm5hbWUsCisgCQkJY29uc3QgY2hhciAqbGlua2FnZV9uYW1lLAorIAkJCWNv bnN0IHN0cnVjdCBibG9jayAqYmxvY2ssCitAQCAtMzU0LDEwICszMjksNDMgQEAgbG9va3VwX25h bWVzcGFjZV9zY29wZSAoY29uc3QgY2hhciAqbmFtZSwKKyAgIG5hbWVzcGFjZSA9IGFsbG9jYSAo c2NvcGVfbGVuICsgMSk7CisgICBzdHJuY3B5IChuYW1lc3BhY2UsIHNjb3BlLCBzY29wZV9sZW4p OworICAgbmFtZXNwYWNlW3Njb3BlX2xlbl0gPSAnXDAnOworLSAgcmV0dXJuIGNwX2xvb2t1cF9z eW1ib2xfbmFtZXNwYWNlIChuYW1lc3BhY2UsIG5hbWUsIGxpbmthZ2VfbmFtZSwKKysgIHJldHVy biBjcF9sb29rdXBfc3ltYm9sX25hbWVzcGFjZV9pbmNyZW1lbnRhbCAobmFtZXNwYWNlLCBuYW1l LCBsaW5rYWdlX25hbWUsCisgCQkJCSAgICAgYmxvY2ssIGRvbWFpbik7CisgfQorIAorKy8qIFNl YXJjaGVzIHRoZSBmb3IgdGhlIGdpdmVuIE5BTUUgaW4gdGhlIGdpdmVuIE5BTUVTUEFDRSwgdXNp bmcgaW1wb3J0IAorKyAgIHN0YXRlbWVudHMgaW1wbGllZCBieSB0aGUgZ2l2ZW4gQkxPQ0ssICph bmQgaXRzJyBwYXJlbnRzKi4gKi8KKytzdHJ1Y3Qgc3ltYm9sICoKKytjcF9sb29rdXBfc3ltYm9s X25hbWVzcGFjZV9pbmNyZW1lbnRhbCAoY29uc3QgY2hhciAqbmFtZXNwYWNlLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpsaW5rYWdlX25h bWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVj dCBibG9jayAqYmxvY2ssCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGRvbWFpbl9lbnVtIGRvbWFpbikKKyt7CisrICBzdHJ1Y3Qgc3ltYm9sICpzeW07Cisr ICBjb25zdCBzdHJ1Y3QgYmxvY2sgKmdsb2JhbF9ibG9jayA9IGJsb2NrX2dsb2JhbF9ibG9jayAo YmxvY2spOworKworKyAgLyogQ2hlY2sgaWYgZWl0aGVyIG5vIGJsb2NrIGlzIHNwZWNpZmllZCBv ciBpdCdzIGEgZ2xvYmFsIGJsb2NrLiAgKi8KKysKKysgIGlmIChnbG9iYWxfYmxvY2sgPT0gTlVM TCkKKysgICAgcmV0dXJuIE5VTEw7CisrCisrICB3aGlsZSAoYmxvY2sgIT0gZ2xvYmFsX2Jsb2Nr KQorKyAgICB7CisrICAgICAgc3ltID0gY3BfbG9va3VwX3N5bWJvbF9uYW1lc3BhY2UgKG5hbWVz cGFjZSwgbmFtZSwgbGlua2FnZV9uYW1lLCBibG9jaywgZG9tYWluKTsKKysKKysgICAgICBpZiAo c3ltICE9IE5VTEwpCisrICAgICAgICByZXR1cm4gc3ltOworKworKyAgICAgIGJsb2NrID0gQkxP Q0tfU1VQRVJCTE9DSyAoYmxvY2spOworKyAgICB9CisrCisrICAvKiBXZSd2ZSByZWFjaGVkIHRo ZSBnbG9iYWwgYmxvY2sgd2l0aG91dCBmaW5kaW5nIGEgcmVzdWx0LiAgKi8KKysKKysgIHJldHVy biBOVUxMOworK30KKysKKysKKyAvKiBMb29rIHVwIE5BTUUgaW4gdGhlIEMrKyBuYW1lc3BhY2Ug TkFNRVNQQUNFLCBhcHBseWluZyB0aGUgdXNpbmcKKyAgICBkaXJlY3RpdmVzIHRoYXQgYXJlIGFj dGl2ZSBpbiBCTE9DSy4gIE90aGVyIGFyZ3VtZW50cyBhcmUgYXMgaW4KKyAgICBjcF9sb29rdXBf c3ltYm9sX25vbmxvY2FsLiAgKi8KK0BAIC0zNzAsNyArMzc4LDcgQEAgY3BfbG9va3VwX3N5bWJv bF9uYW1lc3BhY2UgKGNvbnN0IGNoYXIgKm5hbWVzcGFjZSwKKyAJCQkgICAgY29uc3QgZG9tYWlu X2VudW0gZG9tYWluKQorIHsKKyAgIGNvbnN0IHN0cnVjdCB1c2luZ19kaXJlY3QgKmN1cnJlbnQ7 CistICBzdHJ1Y3Qgc3ltYm9sICpzeW07CisrICBzdHJ1Y3Qgc3ltYm9sICpzeW0gPSBOVUxMOwor IAorICAgLyogRmlyc3QsIGdvIHRocm91Z2ggdGhlIHVzaW5nIGRpcmVjdGl2ZXMuICBJZiBhbnkg b2YgdGhlbSBhZGQgbmV3CisgICAgICBuYW1lcyB0byB0aGUgbmFtZXNwYWNlIHdlJ3JlIHNlYXJj aGluZyBpbiwgc2VlIGlmIHdlIGNhbiBmaW5kIGEKK0BAIC0zODAsMTUgKzM4OCw0MiBAQCBjcF9s b29rdXBfc3ltYm9sX25hbWVzcGFjZSAoY29uc3QgY2hhciAqbmFtZXNwYWNlLAorICAgICAgICBj dXJyZW50ICE9IE5VTEw7CisgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0KQorICAgICB7 CistICAgICAgaWYgKHN0cmNtcCAobmFtZXNwYWNlLCBjdXJyZW50LT5vdXRlcikgPT0gMCkKKysg ICAgICAKKysgICAgICBpbnQgY3VycmVudF9saW5lID0gZmluZF9wY19saW5lIChnZXRfZnJhbWVf cGMgKGdldF9jdXJyZW50X2ZyYW1lICgpKSwgMCkubGluZTsKKysgICAgICAKKysgICAgICBpZiAo c3RyY21wIChuYW1lc3BhY2UsIGN1cnJlbnQtPm91dGVyKSA9PSAwICYmIGN1cnJlbnQtPmxpbmVf bnVtYmVyIDwgY3VycmVudF9saW5lKQorIAl7CistCSAgc3ltID0gY3BfbG9va3VwX3N5bWJvbF9u YW1lc3BhY2UgKGN1cnJlbnQtPmlubmVyLAorLQkJCQkJICAgIG5hbWUsCistCQkJCQkgICAgbGlu a2FnZV9uYW1lLAorLQkJCQkJICAgIGJsb2NrLAorLQkJCQkJICAgIGRvbWFpbik7CistCSAgaWYg KHN5bSAhPSBOVUxMKQorKwkgIAorKwkgIGlmKHN0cmNtcCAoIiIsIGN1cnJlbnQtPmRlY2xhcmF0 aW9uKSAhPSAwKXsKKysJICAgIGlmKHN0cmNtcCAobmFtZSwgY3VycmVudC0+ZGVjbGFyYXRpb24p ID09IDApeworKwkgICAgICBzeW0gPSBjcF9sb29rdXBfc3ltYm9sX25hbWVzcGFjZSAoY3VycmVu dC0+aW5uZXIsCisrCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1l LAorKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua2FnZV9uYW1l LAorKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2ssCisrCSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4pOworKwkgICAgfQor KwkgICAKKysJICB9ZWxzZXsKKysJICAvKiBDaGVjayBmb3IgYWxpYXNlcyAqLworKwkgIGlmKHN0 cmNtcCAobmFtZSwgY3VycmVudC0+YWxpYXMpID09IDApeworKwkgICAgc3ltID0gY3BfbG9va3Vw X3N5bWJvbF9uYW1lc3BhY2UgKG5hbWVzcGFjZSwKKysJICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjdXJyZW50LT5pbm5lciwKKysJICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaW5rYWdlX25hbWUsCisrCSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYmxvY2ssCisrCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZG9tYWluKTsKKysJICB9ZWxzZXsKKysJICAgIGlmKHN0cmNtcCAoIiIsIGN1cnJlbnQtPmFs aWFzKSA9PSAwKXsKKysJICAgICAgc3ltID0gY3BfbG9va3VwX3N5bWJvbF9uYW1lc3BhY2UgKGN1 cnJlbnQtPmlubmVyLAorKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLAor KwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rYWdlX25hbWUsCisrCQkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLAorKwkJICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkb21haW4pOworKwkgICAgfQorKwkgIH0KKysJICB9CisrCSAgaWYgKHN5 bSAhPSBOVUxMKXsKKyAJICAgIHJldHVybiBzeW07CisrCSAgfQorIAl9CisgICAgIH0KKyAKK0BA IC0zOTgsOCArNDMzLDEwIEBAIGNwX2xvb2t1cF9zeW1ib2xfbmFtZXNwYWNlIChjb25zdCBjaGFy ICpuYW1lc3BhY2UsCisgICAKKyAgIGlmIChuYW1lc3BhY2VbMF0gPT0gJ1wwJykKKyAgICAgewor LSAgICAgIHJldHVybiBsb29rdXBfc3ltYm9sX2ZpbGUgKG5hbWUsIGxpbmthZ2VfbmFtZSwgYmxv Y2ssCistCQkJCSBkb21haW4sIDApOworKyAgICAgIHN5bSA9IGxvb2t1cF9zeW1ib2xfZmlsZSAo bmFtZSwgbGlua2FnZV9uYW1lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBibG9jaywgZG9tYWluLCAKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y3BfaXNfYW5vbnltb3VzIChuYW1lc3BhY2UpKTsKKysgICAgICByZXR1cm4gc3ltOworICAgICB9 CisgICBlbHNlCisgICAgIHsKK2RpZmYgLS1naXQgYS9nZGIvY3Atc3VwcG9ydC5jIGIvZ2RiL2Nw LXN1cHBvcnQuYworaW5kZXggYmY0MjYzNi4uOWYwNGM4NiAxMDA2NDQKKy0tLSBhL2dkYi9jcC1z dXBwb3J0LmMKKysrKyBiL2dkYi9jcC1zdXBwb3J0LmMKK0BAIC0xNzUsNyArMTc1LDggQEAgbWFu Z2xlZF9uYW1lX3RvX2NvbXAgKGNvbnN0IGNoYXIgKm1hbmdsZWRfbmFtZSwgaW50IG9wdGlvbnMs CisgICByZXR1cm4gcmV0OworIH0KKyAKKy0vKiBSZXR1cm4gdGhlIG5hbWUgb2YgdGhlIGNsYXNz IGNvbnRhaW5pbmcgbWV0aG9kIFBIWVNOQU1FLiAgKi8KKysvKiBSZXR1cm4gdGhlIG5hbWUgb2Yg dGhlIGNsYXNzIG9yIG5hbWVzcGFjZSBjb250YWluaW5nCisrICAgZnVuY3Rpb24sIG1ldGhvZCwg b3IgdmFyaWFibGUgUEhZU05BTUUuICAqLworIAorIGNoYXIgKgorIGNwX2NsYXNzX25hbWVfZnJv bV9waHlzbmFtZSAoY29uc3QgY2hhciAqcGh5c25hbWUpCitkaWZmIC0tZ2l0IGEvZ2RiL2NwLXN1 cHBvcnQuaCBiL2dkYi9jcC1zdXBwb3J0LmgKK2luZGV4IDgzN2NhNmMuLjIzZjhkNWIgMTAwNjQ0 CistLS0gYS9nZGIvY3Atc3VwcG9ydC5oCisrKysgYi9nZGIvY3Atc3VwcG9ydC5oCitAQCAtMzgs MTQgKzM4LDI4IEBAIHN0cnVjdCBkZW1hbmdsZV9jb21wb25lbnQ7CisgCisgLyogVGhpcyBzdHJ1 Y3QgaXMgZGVzaWduZWQgdG8gc3RvcmUgZGF0YSBmcm9tIHVzaW5nIGRpcmVjdGl2ZXMuICBJdAor ICAgIHNheXMgdGhhdCBuYW1lcyBmcm9tIG5hbWVzcGFjZSBJTk5FUiBzaG91bGQgYmUgdmlzaWJs ZSB3aXRoaW4KKy0gICBuYW1lc3BhY2UgT1VURVIuICBPVVRFUiBzaG91bGQgYWx3YXlzIGJlIGEg c3RyaWN0IGluaXRpYWwgc3Vic3RyaW5nCistICAgb2YgSU5ORVIuICBUaGVzZSBmb3JtIGEgbGlu a2VkIGxpc3Q7IE5FWFQgaXMgdGhlIG5leHQgZWxlbWVudCBvZgorLSAgIHRoZSBsaXN0LiAgKi8K KysgICBuYW1lc3BhY2UgT1VURVIgVGhlc2UgZm9ybSBhIGxpbmtlZCBsaXN0OyBORVhUIGlzIHRo ZSBuZXh0IGVsZW1lbnQgb2YKKysgICB0aGUgbGlzdC4gQUxJQVMgaXMgc2V0IHRvIGEgbm9uIGVt cHR5IHN0cmluZyBpZiB0aGUgaW1wb3J0ZWQgbmFtZXNwYWNlCisrICAgaGFzIGJlZW4gYWxpYXNl ZC5FZzoKKysgICAgICAgbmFtZXNwYWNlIEM9QTo6QjsKKysgICBBTElBUyA9ICJDIgorKyAgIERF Q0xBUkFUSU9OIGlzIHRoZSBuYW1lIG9mIHRoZSBpbXBvcnRlZCBkZWNsYXJhdGlvbiwgaWYgdGhp cyBpbXBvcnQgCisrICAgc3RhdGVtZW50IHJlcHJlc2VudHMgb25lLiBFZzoKKysgICAgICAgdXNp bmcgQTo6eDsKKysgICBXaGVyZSB4IGlzIHZhcmlhYmxlIGluIG5hbWVzcGFjZSBBLiBkZWNsYXJh dGlvbiBpcyBzZXQgdG8geC4gIAorKyovCisgCisgc3RydWN0IHVzaW5nX2RpcmVjdAorIHsKKyAg IGNoYXIgKmlubmVyOworICAgY2hhciAqb3V0ZXI7CisrICAKKysgIGNoYXIgKmFsaWFzOworKyAg CisrICBjaGFyICpkZWNsYXJhdGlvbjsKKysgIAorKyAgaW50IGxpbmVfbnVtYmVyOworKyAgCisg ICBzdHJ1Y3QgdXNpbmdfZGlyZWN0ICpuZXh0OworIH07CisgCitAQCAtNTQsNiArNjgsNyBAQCBz dHJ1Y3QgdXNpbmdfZGlyZWN0CisgCisgZXh0ZXJuIGNoYXIgKmNwX2Nhbm9uaWNhbGl6ZV9zdHJp bmcgKGNvbnN0IGNoYXIgKnN0cmluZyk7CisgCisrCisgZXh0ZXJuIGNoYXIgKmNwX2NsYXNzX25h bWVfZnJvbV9waHlzbmFtZSAoY29uc3QgY2hhciAqcGh5c25hbWUpOworIAorIGV4dGVybiBjaGFy ICptZXRob2RfbmFtZV9mcm9tX3BoeXNuYW1lIChjb25zdCBjaGFyICpwaHlzbmFtZSk7CitAQCAt NzYsOSArOTEsMTggQEAgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcF9sb29rdXBfcnR0aV90eXBlIChj b25zdCBjaGFyICpuYW1lLAorIAorIGV4dGVybiBpbnQgY3BfaXNfYW5vbnltb3VzIChjb25zdCBj aGFyICpuYW1lc3BhY2UpOworIAorLWV4dGVybiB2b2lkIGNwX2FkZF91c2luZ19kaXJlY3RpdmUg KGNvbnN0IGNoYXIgKm5hbWUsCistCQkJCSAgICB1bnNpZ25lZCBpbnQgb3V0ZXJfbGVuZ3RoLAor LQkJCQkgICAgdW5zaWduZWQgaW50IGlubmVyX2xlbmd0aCk7CisrZXh0ZXJuIHZvaWQgY3BfYWRk X3VzaW5nX2RpcmVjdGl2ZSAoY29uc3QgY2hhciAqb3V0ZXIsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqaW5uZXIsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqYWxpYXMsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZGVjbGFyYXRpb24sCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50IGxpbmVfbnVtYmVyKTsKKysKKytleHRl cm4gc3RydWN0IHVzaW5nX2RpcmVjdCAqY3BfYWRkX3VzaW5nIChjb25zdCBjaGFyICpvdXRlciwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpp bm5lciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICphbGlhcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyICpkZWNsYXJhdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBpbnQgbGluZV9udW1iZXIsCisrCQkJCQkgIHN0cnVjdCB1c2luZ19k aXJlY3QgKm5leHQpOworIAorIGV4dGVybiB2b2lkIGNwX2luaXRpYWxpemVfbmFtZXNwYWNlICh2 b2lkKTsKKyAKK0BAIC05OCw2ICsxMjIsMTkgQEAgZXh0ZXJuIHN0cnVjdCBzeW1ib2wgKmNwX2xv b2t1cF9zeW1ib2xfbm9ubG9jYWwgKGNvbnN0IGNoYXIgKm5hbWUsCisgCQkJCQkJIGNvbnN0IHN0 cnVjdCBibG9jayAqYmxvY2ssCisgCQkJCQkJIGNvbnN0IGRvbWFpbl9lbnVtIGRvbWFpbik7Cisg CisrZXh0ZXJuIHN0cnVjdCBzeW1ib2wgKmxvb2t1cF9uYW1lc3BhY2Vfc2NvcGUgKGNvbnN0IGNo YXIgKm5hbWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGNoYXIgKmxpbmthZ2VfbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZG9tYWluX2VudW0gZG9t YWluLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBjaGFyICpzY29wZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50IHNjb3BlX2xlbik7CisrCisrZXh0ZXJuIHN0cnVjdCBzeW1ib2wgKmNwX2xvb2t1 cF9zeW1ib2xfbmFtZXNwYWNlX2luY3JlbWVudGFsIChjb25zdCBjaGFyICpuYW1lc3BhY2UsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBjaGFyICpuYW1lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbGlua2FnZV9uYW1lLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRvbWFpbl9lbnVt IGRvbWFpbik7CisrCisgZXh0ZXJuIHN0cnVjdCBzeW1ib2wgKmNwX2xvb2t1cF9zeW1ib2xfbmFt ZXNwYWNlIChjb25zdCBjaGFyICpuYW1lc3BhY2UsCisgCQkJCQkJICBjb25zdCBjaGFyICpuYW1l LAorIAkJCQkJCSAgY29uc3QgY2hhciAqbGlua2FnZV9uYW1lLAogZGlmZiAtLWdpdCBhL2dkYi9j cC12YWxwcmludC5jIGIvZ2RiL2NwLXZhbHByaW50LmMKIGluZGV4IDhiN2Q4NjguLmRjZDMyY2Ig MTAwNjQ0CiAtLS0gYS9nZGIvY3AtdmFscHJpbnQuYwpAQCAtNzY1Niw5ICs4NTkzLDE3IEBAIGlu ZGV4IDhiN2Q4NjguLmRjZDMyY2IgMTAwNjQ0CiAgfQogIAogZGlmZiAtLWdpdCBhL2dkYi9kYnhy ZWFkLmMgYi9nZGIvZGJ4cmVhZC5jCi1pbmRleCAxMTViZGVmLi4yZDM5YmEwIDEwMDY0NAoraW5k ZXggMTE1YmRlZi4uN2Y3NTZhZiAxMDA2NDQKIC0tLSBhL2dkYi9kYnhyZWFkLmMKICsrKyBiL2dk Yi9kYnhyZWFkLmMKK0BAIC0xLDYgKzEsNiBAQAorIC8qIFJlYWQgZGJ4IHN5bWJvbCB0YWJsZXMg YW5kIGNvbnZlcnQgdG8gaW50ZXJuYWwgZm9ybWF0LCBmb3IgR0RCLgorICAgIENvcHlyaWdodCAo QykgMTk4NiwgMTk4NywgMTk4OCwgMTk4OSwgMTk5MCwgMTk5MSwgMTk5MiwgMTk5MywgMTk5NCwg MTk5NSwKKy0gICAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAz LCAyMDA0LCAyMDA4LgorKyAgIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIw MDIsIDIwMDMsIDIwMDQsIDIwMDgsIDIwMDkuCisgICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisgCisgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgogQEAgLTExODgsNiArMTE4 OCw4IEBAIHJlYWRfZGJ4X3N5bXRhYiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiAgICBzdHJ1 Y3QgaW50ZXJuYWxfbmxpc3Qgbmxpc3Q7CiAgICBDT1JFX0FERFIgdGV4dF9hZGRyOwpAQCAtNzY3 MiwyNyArODYxNywyNyBAQCBpbmRleCAxMTViZGVmLi4yZDM5YmEwIDEwMDY0NAogIAkgIGlmICgh cCkKICAJICAgIGNvbnRpbnVlOwkJCS8qIE5vdCBhIGRlYnVnZ2luZyBzeW1ib2wuICAgKi8KICAK LSsgCSAgc3ltX2xlbiA9IDA7Ci0rIAkgIGlmIChwc3ltdGFiX2xhbmd1YWdlID09IGxhbmd1YWdl X2NwbHVzKQotKyAJICAgIHsKLSsgCSAgICAgIGNoYXIgKm5ld19uYW1lLCAqbmFtZSA9IGFsbG9j YSAocCAtIG5hbWVzdHJpbmcgKyAxKTsKLSsgCSAgICAgIG1lbWNweSAobmFtZSwgbmFtZXN0cmlu ZywgcCAtIG5hbWVzdHJpbmcpOwotKyAJICAgICAgbmFtZVtwIC0gbmFtZXN0cmluZ10gPSAnXDAn OwotKyAJICAgICAgbmV3X25hbWUgPSBjcF9jYW5vbmljYWxpemVfc3RyaW5nIChuYW1lKTsKLSsg CSAgICAgIGlmIChuZXdfbmFtZSAhPSBOVUxMKQotKyAJCXsKLSsgCQkgIHN5bV9sZW4gPSBzdHJs ZW4gKG5ld19uYW1lKTsKLSsgCQkgIHN5bV9uYW1lID0gb2JzYXZlc3RyaW5nIChuZXdfbmFtZSwg c3ltX2xlbiwKLSsgCQkJCQkgICAmb2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrKTsKLSsgCQkgIHhm cmVlIChuZXdfbmFtZSk7Ci0rIAkJfQotKyAJICAgIH0KKysJICBzeW1fbGVuID0gMDsKKysJICBp ZiAocHN5bXRhYl9sYW5ndWFnZSA9PSBsYW5ndWFnZV9jcGx1cykKKysJICAgIHsKKysJICAgICAg Y2hhciAqbmV3X25hbWUsICpuYW1lID0gYWxsb2NhIChwIC0gbmFtZXN0cmluZyArIDEpOworKwkg ICAgICBtZW1jcHkgKG5hbWUsIG5hbWVzdHJpbmcsIHAgLSBuYW1lc3RyaW5nKTsKKysJICAgICAg bmFtZVtwIC0gbmFtZXN0cmluZ10gPSAnXDAnOworKwkgICAgICBuZXdfbmFtZSA9IGNwX2Nhbm9u aWNhbGl6ZV9zdHJpbmcgKG5hbWUpOworKwkgICAgICBpZiAobmV3X25hbWUgIT0gTlVMTCkKKysJ CXsKKysJCSAgc3ltX2xlbiA9IHN0cmxlbiAobmV3X25hbWUpOworKwkJICBzeW1fbmFtZSA9IG9i c2F2ZXN0cmluZyAobmV3X25hbWUsIHN5bV9sZW4sCisrCQkJCQkgICAmb2JqZmlsZS0+b2JqZmls ZV9vYnN0YWNrKTsKKysJCSAgeGZyZWUgKG5ld19uYW1lKTsKKysJCX0KKysJICAgIH0KICsKLSsg CSAgaWYgKHN5bV9sZW4gPT0gMCkKLSsgCSAgICB7Ci0rIAkgICAgICBzeW1fbmFtZSA9IG5hbWVz dHJpbmc7Ci0rIAkgICAgICBzeW1fbGVuID0gcCAtIG5hbWVzdHJpbmc7Ci0rIAkgICAgfQorKwkg IGlmIChzeW1fbGVuID09IDApCisrCSAgICB7CisrCSAgICAgIHN5bV9uYW1lID0gbmFtZXN0cmlu ZzsKKysJICAgICAgc3ltX2xlbiA9IHAgLSBuYW1lc3RyaW5nOworKwkgICAgfQogKwogIAkgIC8q IE1haW4gcHJvY2Vzc2luZyBzZWN0aW9uIGZvciBkZWJ1Z2dpbmcgc3ltYm9scyB3aGljaAogIAkg ICAgIHRoZSBpbml0aWFsIHJlYWQgdGhyb3VnaCB0aGUgc3ltYm9sIHRhYmxlcyBuZWVkcyB0byB3 b3JyeQpAQCAtNzgwMiw3ICs4NzQ3LDcgQEAgaW5kZXggODQ1YjMyMC4uYWQ2ZTdkNyAxMDA2NDQK ICAKICBleHRlcm4gc3RydWN0IGNsZWFudXAgKm1ha2VfZmluYWxfY2xlYW51cCAobWFrZV9jbGVh bnVwX2Z0eXBlICosIHZvaWQgKik7CiBkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBi L2dkYi9kb2MvZ2RiLnRleGluZm8KLWluZGV4IDEwZTczODguLmM1MDZmYjcgMTAwNjQ0CitpbmRl eCAxMGU3Mzg4Li5lZjQxMzEyIDEwMDY0NAogLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5mbwogKysr IGIvZ2RiL2RvYy9nZGIudGV4aW5mbwogQEAgLTk1NSw4ICs5NTUsMTAgQEAgQ29ubmVjdCB0byBw cm9jZXNzIElEIEB2YXJ7bnVtYmVyfSwgYXMgd2l0aCB0aGUgQGNvZGV7YXR0YWNofSBjb21tYW5k LgpAQCAtODIyNCw3ICs5MTY5LDcgQEAgaW5kZXggMTBlNzM4OC4uYzUwNmZiNyAxMDA2NDQKICBA ZmluZGV4IGdkYi53cml0ZQogIEBkZWZ1biB3cml0ZSBzdHJpbmcKICBQcmludCBhIHN0cmluZyB0 byBAdmFsdWV7R0RCTn0ncyBwYWdpbmF0ZWQgc3RhbmRhcmQgb3V0cHV0IHN0cmVhbS4KLUBAIC0x ODE5Myw2ICsxODM4Miw2MSBAQCBGbHVzaCBAdmFsdWV7R0RCTn0ncyBwYWdpbmF0ZWQgc3RhbmRh cmQgb3V0cHV0IHN0cmVhbS4gIEZsdXNoaW5nCitAQCAtMTgxOTMsNiArMTgzODIsNjYgQEAgRmx1 c2ggQHZhbHVle0dEQk59J3MgcGFnaW5hdGVkIHN0YW5kYXJkIG91dHB1dCBzdHJlYW0uICBGbHVz aGluZwogIGZ1bmN0aW9uLgogIEBlbmQgZGVmdW4KICAKQEAgLTgyODMsMTAgKzkyMjgsMTUgQEAg aW5kZXggMTBlNzM4OC4uYzUwNmZiNyAxMDA2NDQKICt0byBzZWFyY2ggZm9yLgogK0BlbmQgZGVm dW4KICsKKytAZmluZGV4IGdkYi5zb2xpYl9hZGRyZXNzCisrQGRlZnVuIHNvbGliX2FkZHJlc3Mg QHZhcnthZGRyZXNzfQorK1JldHVybiB0aGUgbmFtZSBvZiB0aGUgc2hhcmVkIGxpYnJhcnkgaG9s ZGluZyB0aGUgZ2l2ZW4gYWRkcmVzcywgb3IgTm9uZS4KKytAZW5kIGRlZnVuCisrCiAgQG5vZGUg RXhjZXB0aW9uIEhhbmRsaW5nCiAgQHN1YnN1YnNlY3Rpb24gRXhjZXB0aW9uIEhhbmRsaW5nCiAg QGNpbmRleCBweXRob24gZXhjZXB0aW9ucwotQEAgLTE4MjI0LDYgKzE4NDY4LDM4IEBAIG1lc3Nh Z2UgYXMgaXRzIHZhbHVlLCBhbmQgdGhlIFB5dGhvbiBjYWxsIHN0YWNrIGJhY2t0cmFjZSBhdCB0 aGUKK0BAIC0xODIyNCw2ICsxODQ3MywzOCBAQCBtZXNzYWdlIGFzIGl0cyB2YWx1ZSwgYW5kIHRo ZSBQeXRob24gY2FsbCBzdGFjayBiYWNrdHJhY2UgYXQgdGhlCiAgUHl0aG9uIHN0YXRlbWVudCBj bG9zZXN0IHRvIHdoZXJlIHRoZSBAdmFsdWV7R0RCTn0gZXJyb3Igb2NjdXJlZCBhcyB0aGUKICB0 cmFjZWJhY2suCiAgCkBAIC04MzI1LDcgKzkyNzUsNyBAQCBpbmRleCAxMGU3Mzg4Li5jNTA2ZmI3 IDEwMDY0NAogIEBub2RlIFZhbHVlcyBGcm9tIEluZmVyaW9yCiAgQHN1YnN1YnNlY3Rpb24gVmFs dWVzIEZyb20gSW5mZXJpb3IKICBAY2luZGV4IHZhbHVlcyBmcm9tIGluZmVyaW9yLCB3aXRoIFB5 dGhvbgotQEAgLTE4MjU4LDggKzE4NTM0LDIxIEBAIGJhciA9IHNvbWVfdmFsWydmb28nXQorQEAg LTE4MjU4LDggKzE4NTM5LDIxIEBAIGJhciA9IHNvbWVfdmFsWydmb28nXQogIAogIEFnYWluLCBA Y29kZXtiYXJ9IHdpbGwgYWxzbyBiZSBhIEBjb2Rle2dkYi5WYWx1ZX0gb2JqZWN0LgogIApAQCAt ODM0OSw3ICs5Mjk5LDcgQEAgaW5kZXggMTBlNzM4OC4uYzUwNmZiNyAxMDA2NDQKICAKICBAZGVm bWV0aG9kIFZhbHVlIGRlcmVmZXJlbmNlCiAgVGhpcyBtZXRob2QgcmV0dXJucyBhIG5ldyBAY29k ZXtnZGIuVmFsdWV9IG9iamVjdCB3aG9zZSBjb250ZW50cyBpcwotQEAgLTE4MjgyLDcgKzE4NTcx LDcgQEAgVGhlIHJlc3VsdCBAY29kZXtiYXJ9IHdpbGwgYmUgYSBAY29kZXtnZGIuVmFsdWV9IG9i amVjdCBob2xkaW5nIHRoZQorQEAgLTE4MjgyLDcgKzE4NTc2LDcgQEAgVGhlIHJlc3VsdCBAY29k ZXtiYXJ9IHdpbGwgYmUgYSBAY29kZXtnZGIuVmFsdWV9IG9iamVjdCBob2xkaW5nIHRoZQogIHZh bHVlIHBvaW50ZWQgdG8gYnkgQGNvZGV7Zm9vfS4KICBAZW5kIGRlZm1ldGhvZAogIApAQCAtODM1 OCw3ICs5MzA4LDcgQEAgaW5kZXggMTBlNzM4OC4uYzUwNmZiNyAxMDA2NDQKICBJZiB0aGlzIEBj b2Rle2dkYi5WYWx1ZX0gcmVwcmVzZW50cyBhIHN0cmluZywgdGhlbiB0aGlzIG1ldGhvZAogIGNv bnZlcnRzIHRoZSBjb250ZW50cyB0byBhIFB5dGhvbiBzdHJpbmcuICBPdGhlcndpc2UsIHRoaXMg bWV0aG9kIHdpbGwKICB0aHJvdyBhbiBleGNlcHRpb24uCi1AQCAtMTgzMDksNiArMTg1OTgsNDY4 IEBAIFRoZSBvcHRpb25hbCBAdmFye2Vycm9yc30gYXJndW1lbnQgaXMgdGhlIHNhbWUgYXMgdGhl IGNvcnJlc3BvbmRpbmcKK0BAIC0xODMwOSw2ICsxODYwMyw0NjggQEAgVGhlIG9wdGlvbmFsIEB2 YXJ7ZXJyb3JzfSBhcmd1bWVudCBpcyB0aGUgc2FtZSBhcyB0aGUgY29ycmVzcG9uZGluZwogIGFy Z3VtZW50IHRvIFB5dGhvbidzIEBjb2Rle3N0cmluZy5kZWNvZGV9IG1ldGhvZC4KICBAZW5kIGRl Zm1ldGhvZAogIApAQCAtODgyNyw3ICs5Nzc3LDcgQEAgaW5kZXggMTBlNzM4OC4uYzUwNmZiNyAx MDA2NDQKICBAbm9kZSBDb21tYW5kcyBJbiBQeXRob24KICBAc3Vic3Vic2VjdGlvbiBDb21tYW5k cyBJbiBQeXRob24KICAKLUBAIC0xODMyMCw3ICsxOTA3MSw3IEBAIFlvdSBjYW4gaW1wbGVtZW50 IG5ldyBAdmFsdWV7R0RCTn0gQ0xJIGNvbW1hbmRzIGluIFB5dGhvbi4gIEEgQ0xJCitAQCAtMTgz MjAsNyArMTkwNzYsNyBAQCBZb3UgY2FuIGltcGxlbWVudCBuZXcgQHZhbHVle0dEQk59IENMSSBj b21tYW5kcyBpbiBQeXRob24uICBBIENMSQogIGNvbW1hbmQgaXMgaW1wbGVtZW50ZWQgdXNpbmcg YW4gaW5zdGFuY2Ugb2YgdGhlIEBjb2Rle2dkYi5Db21tYW5kfQogIGNsYXNzLCBtb3N0IGNvbW1v bmx5IHVzaW5nIGEgc3ViY2xhc3MuCiAgCkBAIC04ODM2LDcgKzk3ODYsNyBAQCBpbmRleCAxMGU3 Mzg4Li5jNTA2ZmI3IDEwMDY0NAogIFRoZSBvYmplY3QgaW5pdGlhbGl6ZXIgZm9yIEBjb2Rle0Nv bW1hbmR9IHJlZ2lzdGVycyB0aGUgbmV3IGNvbW1hbmQKICB3aXRoIEB2YWx1ZXtHREJOfS4gIFRo aXMgaW5pdGlhbGl6ZXIgaXMgbm9ybWFsbHkgaW52b2tlZCBmcm9tIHRoZQogIHN1YmNsYXNzJyBv d24gQGNvZGV7X19pbml0X199IG1ldGhvZC4KLUBAIC0xODMzMiwxMSArMTkwODMsMTEgQEAgYW4g ZXhjZXB0aW9uIGlzIHJhaXNlZC4KK0BAIC0xODMzMiwxMSArMTkwODgsMTEgQEAgYW4gZXhjZXB0 aW9uIGlzIHJhaXNlZC4KICAKICBUaGVyZSBpcyBubyBzdXBwb3J0IGZvciBtdWx0aS1saW5lIGNv bW1hbmRzLgogIApAQCAtODg1MCw3ICs5ODAwLDcgQEAgaW5kZXggMTBlNzM4OC4uYzUwNmZiNyAx MDA2NDQKICBvbmUgb2YgdGhlIEBzYW1we0NPTVBMRVRFX30gY29uc3RhbnRzIGRlZmluZWQgYmVs b3cuICBUaGlzIGFyZ3VtZW50CiAgdGVsbHMgQHZhbHVle0dEQk59IGhvdyB0byBwZXJmb3JtIGNv bXBsZXRpb24gZm9yIHRoaXMgY29tbWFuZC4gIElmIG5vdAogIGdpdmVuLCBAdmFsdWV7R0RCTn0g d2lsbCBhdHRlbXB0IHRvIGNvbXBsZXRlIHVzaW5nIHRoZSBvYmplY3QncwotQEAgLTE4NTYzLDYg KzE5MzE0LDM2MyBAQCByZWdpc3RyYXRpb24gb2YgdGhlIGNvbW1hbmQgd2l0aCBAdmFsdWV7R0RC Tn0uICBEZXBlbmRpbmcgb24gaG93IHRoZQorQEAgLTE4NTYzLDYgKzE5MzE5LDM3NCBAQCByZWdp c3RyYXRpb24gb2YgdGhlIGNvbW1hbmQgd2l0aCBAdmFsdWV7R0RCTn0uICBEZXBlbmRpbmcgb24g aG93IHRoZQogIFB5dGhvbiBjb2RlIGlzIHJlYWQgaW50byBAdmFsdWV7R0RCTn0sIHlvdSBtYXkg bmVlZCB0byBpbXBvcnQgdGhlCiAgQGNvZGV7Z2RifSBtb2R1bGUgZXhwbGljaXRseS4KICAKQEAg LTkxODYsMTAgKzEwMTM2LDIwIEBAIGluZGV4IDEwZTczODguLmM1MDZmYjcgMTAwNjQ0CiArb3Ig QGNvZGV7Z2RiLlNFTlRJTkVMX0ZSQU1FfS4KICtAZW5kIGRlZm1ldGhvZAogKworK0BkZWZtZXRo b2QgRnJhbWUgdW53aW5kX3N0b3BfcmVhc29uCisrUmV0dXJuIGFuIGludGVnZXIgcmVwcmVzZW50 aW5nIHRoZSByZWFzb24gd2h5IGl0J3Mgbm90IHBvc3NpYmxlIHRvIGZpbmQKKytmcmFtZXMgb2xk ZXIgdGhhbiB0aGlzLiAgVXNlIEBjb2Rle2dkYi5mcmFtZV9zdG9wX3JlYXNvbl9zdHJpbmd9IHRv IGNvbnZlcnQKKyt0aGUgdmFsdWUgcmV0dXJuZWQgYnkgdGhpcyBmdW5jdGlvbiB0byBhIHN0cmlu Zy4KKytAZW5kIGRlZm1ldGhvZAorKwogK0BkZWZtZXRob2QgRnJhbWUgcGMKICtSZXR1cm5zIHRo ZSBmcmFtZSdzIHJlc3VtZSBhZGRyZXNzLgogK0BlbmQgZGVmbWV0aG9kCiArCisrQGRlZm1ldGhv ZCBGcmFtZSBibG9jaworK1JldHVybnMgdGhlIGZyYW1lJ3MgY29kZSBibG9jay4gQGMgKHNlZSBA eHJlZntCbG9jaywsQ29kZSBCbG9ja3MgYW5kIFNjb3Blc30pLgorK0BlbmQgZGVmbWV0aG9kCisr CiArQGRlZm1ldGhvZCBGcmFtZSBhZGRyZXNzX2luX2Jsb2NrCiArUmV0dXJucyBhbiBhZGRyZXNz IHdoaWNoIGZhbGxzIHdpdGhpbiB0aGUgZnJhbWUncyBjb2RlIGJsb2NrLgogK0BlbmQgZGVmbWV0 aG9kCkBAIC05MjA2LDE1ICsxMDE2NiwxNiBAQCBpbmRleCAxMGU3Mzg4Li5jNTA2ZmI3IDEwMDY0 NAogK1JldHVybiB0aGUgZnJhbWUncyBzeW10YWIgYW5kIGxpbmUgb2JqZWN0LiBAYyAoc2VlIEB4 cmVme1N5bXRhYl9hbmRfbGluZSwsIFN5bXRhYiBhbmQgbGluZX0pLgogK0BlbmQgZGVmbWV0aG9k CiArCi0rQGRlZm1ldGhvZCBGcmFtZSByZWFkX3Zhcl92YWx1ZSBAdmFye3N5bWJvbH0KLStSZXR1 cm4gdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBz eW1ib2wgaW4gdGhpcyBmcmFtZS4KKytAZGVmbWV0aG9kIEZyYW1lIHJlYWRfdmFyX3ZhbHVlIEB2 YXJ7dmFyaWFibGV9CisrUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gdmFyaWFibGUgaW4g dGhpcyBmcmFtZS4gIEBjb2Rle3ZhcmlhYmxlfSBjYW4gYmUKKytlaXRoZXIgYSBzdHJpbmcgb3Ig YSBAY29kZXtnZGIuU3ltYm9sfSBvYmplY3QuIEBjIChAcHhyZWZ7U3ltYm9scyBJbiBQeXRob259 KS4KICtAZW5kIGRlZm1ldGhvZAogK0BlbmQgdGFibGUKICsKICBAbm9kZSBJbnRlcnByZXRlcnMK ICBAY2hhcHRlciBDb21tYW5kIEludGVycHJldGVycwogIEBjaW5kZXggY29tbWFuZCBpbnRlcnBy ZXRlcnMKLUBAIC0yMjI3Myw2ICsyMzM4MSwxMDMgQEAgVW5mcmVlemluZyBhIHZhcmlhYmxlIGRv ZXMgbm90IHVwZGF0ZSBpdCwgb25seSBzdWJzZXF1ZW50CitAQCAtMjIyNzMsNiArMjMzOTcsMTAz IEBAIFVuZnJlZXppbmcgYSB2YXJpYWJsZSBkb2VzIG5vdCB1cGRhdGUgaXQsIG9ubHkgc3Vic2Vx dWVudAogIChnZGIpCiAgQGVuZCBzbWFsbGV4YW1wbGUKICAKQEAgLTkzMTgsNyArMTAyNzksNyBA QCBpbmRleCAxMGU3Mzg4Li5jNTA2ZmI3IDEwMDY0NAogIAogIEBjICUlJSUlJSUlJSUlJSUlJSUl JSUlJSUlJSUlJSUgU0VDVElPTiAlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlCiAg QG5vZGUgR0RCL01JIERhdGEgTWFuaXB1bGF0aW9uCi1AQCAtMjM4MzIsNiArMjUwMzcsMTAgQEAg YXMgcG9zc2libGUgcHJlc2Vuc2Ugb2YgdGhlIEBjb2Rle2Zyb3plbn0gZmllbGQgaW4gdGhlIG91 dHB1dAorQEAgLTIzODMyLDYgKzI1MDUzLDEwIEBAIGFzIHBvc3NpYmxlIHByZXNlbnNlIG9mIHRo ZSBAY29kZXtmcm96ZW59IGZpZWxkIGluIHRoZSBvdXRwdXQKICBvZiBAY29kZXstdmFyb2JqLWNy ZWF0ZX0uCiAgQGl0ZW0gcGVuZGluZy1icmVha3BvaW50cwogIEluZGljYXRlcyBwcmVzZW5jZSBv ZiB0aGUgQG9wdGlvbnstZn0gb3B0aW9uIHRvIHRoZSBAY29kZXstYnJlYWstaW5zZXJ0fSBjb21t YW5kLgpAQCAtOTcwNSwxOCArMTA2NjYsMzAgQEAgaW5kZXggNzY1NzdmMS4uYmY0Njc2MSAxMDA2 NDQKICAKICAjZW5kaWYgLyogZHdhcmYybG9jLmggKi8KIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYy cmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwotaW5kZXggNTU4NjhkYS4uOGEzOWJjZiAxMDA2NDQK K2luZGV4IDU1ODY4ZGEuLmY5ZDFjNDEgMTAwNjQ0CiAtLS0gYS9nZGIvZHdhcmYycmVhZC5jCiAr KysgYi9nZGIvZHdhcmYycmVhZC5jCi1AQCAtNDcsNiArNDcsNyBAQAorQEAgLTEsOCArMSw3IEBA CisgLyogRFdBUkYgMiBkZWJ1Z2dpbmcgZm9ybWF0IHN1cHBvcnQgZm9yIEdEQi4KKyAKKyAgICBD b3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIw MDEsIDIwMDIsIDIwMDMsCistICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3 LCAyMDA4LCAyMDA5CistICAgICAgICAgICAgICAgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKysgICAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorIAorICAgIEFkYXB0ZWQgYnkgR2FyeSBGdW5jayAoZ2FyeUBp bnRyZXBpZC5jb20pLCBJbnRyZXBpZCBUZWNobm9sb2d5LAorICAgIEluYy4gIHdpdGggc3VwcG9y dCBmcm9tIEZsb3JpZGEgU3RhdGUgVW5pdmVyc2l0eSAodW5kZXIgY29udHJhY3QKK0BAIC00Nyw2 ICs0Niw5IEBACiAgI2luY2x1ZGUgImNvbW1hbmQuaCIKICAjaW5jbHVkZSAiZ2RiY21kLmgiCiAg I2luY2x1ZGUgImFkZHJtYXAuaCIKICsjaW5jbHVkZSAiZi1sYW5nLmgiCisrI2luY2x1ZGUgImMt bGFuZy5oIgorKyNpbmNsdWRlICJ0eXBlcHJpbnQuaCIKICAKICAjaW5jbHVkZSA8ZmNudGwuaD4K ICAjaW5jbHVkZSAiZ2RiX3N0cmluZy5oIgotQEAgLTEwMyw3ICsxMDQsNyBAQCB0eXBlZGVmIHN0 cnVjdCBwdWJuYW1lc19oZWFkZXIKK0BAIC0xMDMsNyArMTA1LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg cHVibmFtZXNfaGVhZGVyCiAgX1BVQk5BTUVTX0hFQURFUjsKICAjZGVmaW5lIF9BQ1RVQUxfUFVC TkFNRVNfSEVBREVSX1NJWkUgMTMKICAKQEAgLTk3MjUsNyArMTA2OTgsNzEgQEAgaW5kZXggNTU4 NjhkYS4uOGEzOWJjZiAxMDA2NDQKICAgICBCZWNhdXNlIG9mIGFsaWdubWVudCBjb25zdHJhaW50 cywgdGhpcyBzdHJ1Y3R1cmUgaGFzIHBhZGRpbmcgYW5kIGNhbm5vdAogICAgIGJlIG1hcHBlZCBk aXJlY3RseSBvbnRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIC5kZWJ1Z19pbmZvIHNlY3Rpb24uICAq LwogIHR5cGVkZWYgc3RydWN0IGFyYW5nZXNfaGVhZGVyCi1AQCAtNTIzLDYgKzUyNCwxNSBAQCBz dHJ1Y3QgYXR0cl9hYmJyZXYKK0BAIC0yOTksOSArMzAxLDYgQEAgc3RydWN0IGR3YXJmMl9jdQor ICAgLyogSGFzaCB0YWJsZSBob2xkaW5nIGFsbCB0aGUgbG9hZGVkIHBhcnRpYWwgRElFcy4gICov CisgICBodGFiX3QgcGFydGlhbF9kaWVzOworIAorLSAgLyogYC5kZWJ1Z19yYW5nZXMnIG9mZnNl dCBmb3IgdGhpcyBgRFdfVEFHX2NvbXBpbGVfdW5pdCcgRElFLiAgKi8KKy0gIHVuc2lnbmVkIGlu dCByYW5nZXNfb2Zmc2V0OworLQorICAgLyogU3RvcmFnZSBmb3IgdGhpbmdzIHdpdGggdGhlIHNh bWUgbGlmZXRpbWUgYXMgdGhpcyByZWFkLWluIGNvbXBpbGF0aW9uCisgICAgICB1bml0LCBpbmNs dWRpbmcgcGFydGlhbCBESUVzLiAgKi8KKyAgIHN0cnVjdCBvYnN0YWNrIGNvbXBfdW5pdF9vYnN0 YWNrOworQEAgLTM0OSw5ICszNDgsNiBAQCBzdHJ1Y3QgZHdhcmYyX2N1CisgICAgICBESUVzIGZv ciBuYW1lc3BhY2VzLCB3ZSBkb24ndCBuZWVkIHRvIHRyeSB0byBpbmZlciB0aGVtCisgICAgICBm cm9tIG1hbmdsZWQgbmFtZXMuICAqLworICAgdW5zaWduZWQgaW50IGhhc19uYW1lc3BhY2VfaW5m byA6IDE7CistCistICAvKiBGaWVsZCBgcmFuZ2VzX29mZnNldCcgaXMgZmlsbGVkIGluOyBmbGFn IGFzIHRoZSB2YWx1ZSBtYXkgYmUgemVyby4gICovCistICB1bnNpZ25lZCBpbnQgaGFzX3Jhbmdl c19vZmZzZXQgOiAxOworIH07CisgCisgLyogUGVyc2lzdGVudCBkYXRhIGhlbGQgZm9yIGEgY29t cGlsYXRpb24gdW5pdCwgZXZlbiB3aGVuIG5vdAorQEAgLTQ1MSwxNyArNDQ3LDEyIEBAIHN0cnVj dCBwYXJ0aWFsX2RpZV9pbmZvCisgICAgIC8qIERXQVJGLTIgdGFnIGZvciB0aGlzIERJRS4gICov CisgICAgIEVOVU1fQklURklFTEQoZHdhcmZfdGFnKSB0YWcgOiAxNjsKKyAKKy0gICAgLyogTGFu Z3VhZ2UgY29kZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBESUUuICBUaGlzIGlzIG9ubHkgdXNlZAor LSAgICAgICBmb3IgdGhlIGNvbXBpbGF0aW9uIHVuaXQgRElFLiAgKi8KKy0gICAgdW5zaWduZWQg aW50IGxhbmd1YWdlIDogODsKKy0KKyAgICAgLyogQXNzb3J0ZWQgZmxhZ3MgZGVzY3JpYmluZyB0 aGUgZGF0YSBmb3VuZCBpbiB0aGlzIERJRS4gICovCisgICAgIHVuc2lnbmVkIGludCBoYXNfY2hp bGRyZW4gOiAxOworICAgICB1bnNpZ25lZCBpbnQgaXNfZXh0ZXJuYWwgOiAxOworICAgICB1bnNp Z25lZCBpbnQgaXNfZGVjbGFyYXRpb24gOiAxOworICAgICB1bnNpZ25lZCBpbnQgaGFzX3R5cGUg OiAxOworICAgICB1bnNpZ25lZCBpbnQgaGFzX3NwZWNpZmljYXRpb24gOiAxOworLSAgICB1bnNp Z25lZCBpbnQgaGFzX3N0bXRfbGlzdCA6IDE7CisgICAgIHVuc2lnbmVkIGludCBoYXNfcGNfaW5m byA6IDE7CisgCisgICAgIC8qIEZsYWcgc2V0IGlmIHRoZSBTQ09QRSBmaWVsZCBvZiB0aGlzIHN0 cnVjdHVyZSBoYXMgYmVlbgorQEAgLTQ3MiwxMCArNDYzLDEyIEBAIHN0cnVjdCBwYXJ0aWFsX2Rp ZV9pbmZvCisgICAgIHVuc2lnbmVkIGludCBoYXNfYnl0ZV9zaXplIDogMTsKKyAKKyAgICAgLyog VGhlIG5hbWUgb2YgdGhpcyBESUUuICBOb3JtYWxseSB0aGUgdmFsdWUgb2YgRFdfQVRfbmFtZSwg YnV0CistICAgICAgIHNvbWV0aW1lcyBEV19UQUdfTUlQU19saW5rYWdlX25hbWUgb3IgYSBzdHJp bmcgY29tcHV0ZWQgaW4gc29tZQorLSAgICAgICBvdGhlciBmYXNoaW9uLiAgKi8KKysgICAgICAg c29tZXRpbWVzIGEgZGVmYXVsdCBuYW1lIGZvciB1bm5hbWVkIERJRXMuICAqLworICAgICBjaGFy ICpuYW1lOworLSAgICBjaGFyICpkaXJuYW1lOworKworKyAgICAvKiBUaGUgbGlua2FnZSBuYW1l IG9mIHRoaXMgRElFLCBmcm9tIERXX0FUX01JUFNfbGlua2FnZV9uYW1lLCBvcgorKyAgICAgICBO VUxMIGlmIG5vIGxpbmthZ2UgbmFtZSB3YXMgcHJlc2VudC4gICovCisrICAgIGNoYXIgKmxpbmth Z2VfbmFtZTsKKyAKKyAgICAgLyogVGhlIHNjb3BlIHRvIHByZXBlbmQgdG8gb3VyIGNoaWxkcmVu LiAgVGhpcyBpcyBnZW5lcmFsbHkKKyAgICAgICAgYWxsb2NhdGVkIG9uIHRoZSBjb21wX3VuaXRf b2JzdGFjaywgc28gd2lsbCBkaXNhcHBlYXIKK0BAIC00OTgsOSArNDkxLDYgQEAgc3RydWN0IHBh cnRpYWxfZGllX2luZm8KKyAgICAgICAgRFdfQVRfZXh0ZW5zaW9uKS4gICovCisgICAgIHVuc2ln bmVkIGludCBzcGVjX29mZnNldDsKKyAKKy0gICAgLyogSWYgSEFTX1NUTVRfTElTVCwgdGhlIG9m ZnNldCBvZiB0aGUgTGluZSBOdW1iZXIgSW5mb3JtYXRpb24gZGF0YS4gICovCistICAgIHVuc2ln bmVkIGludCBsaW5lX29mZnNldDsKKy0KKyAgICAgLyogUG9pbnRlcnMgdG8gdGhpcyBESUUncyBw YXJlbnQsIGZpcnN0IGNoaWxkLCBhbmQgbmV4dCBzaWJsaW5nLAorICAgICAgICBpZiBhbnkuICAq LworICAgICBzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqZGllX3BhcmVudCwgKmRpZV9jaGlsZCwg KmRpZV9zaWJsaW5nOworQEAgLTUyMyw2ICs1MTMsMTUgQEAgc3RydWN0IGF0dHJfYWJicmV2CiAg ICAgIEVOVU1fQklURklFTEQoZHdhcmZfZm9ybSkgZm9ybSA6IDE2OwogICAgfTsKICAKQEAgLTk3 NDEsNyArMTA3NzgsMTYgQEAgaW5kZXggNTU4NjhkYS4uOGEzOWJjZiAxMDA2NDQKICAvKiBBdHRy aWJ1dGVzIGhhdmUgYSBuYW1lIGFuZCBhIHZhbHVlICovCiAgc3RydWN0IGF0dHJpYnV0ZQogICAg ewotQEAgLTc2OCw2ICs3NzgsOSBAQCBzdGF0aWMgdm9pZCBzY2FuX3BhcnRpYWxfc3ltYm9scyAo c3RydWN0IHBhcnRpYWxfZGllX2luZm8gKiwKK0BAIC03NTYsNyArNzU1LDcgQEAgc3RhdGljIHZv aWQgZHdhcmYyX2NyZWF0ZV9pbmNsdWRlX3BzeW10YWIgKGNoYXIgKiwgc3RydWN0IHBhcnRpYWxf c3ltdGFiICosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBvYmpmaWxlICopOworIAorIHN0YXRpYyB2b2lkIGR3YXJmMl9idWlsZF9pbmNsdWRlX3Bz eW10YWJzIChzdHJ1Y3QgZHdhcmYyX2N1ICosCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICosCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkaWVfaW5mbyAqLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGFydGlhbF9zeW10 YWIgKik7CisgCisgc3RhdGljIHZvaWQgZHdhcmYyX2J1aWxkX3BzeW10YWJzX2hhcmQgKHN0cnVj dCBvYmpmaWxlICosIGludCk7CitAQCAtNzY4LDYgKzc2Nyw5IEBAIHN0YXRpYyB2b2lkIHNjYW5f cGFydGlhbF9zeW1ib2xzIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqLAogIHN0YXRpYyB2b2lk IGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKiwKICAJCQkJc3Ry dWN0IGR3YXJmMl9jdSAqKTsKICAKQEAgLTk3NTEsNyArMTA3OTcsNyBAQCBpbmRleCA1NTg2OGRh Li44YTM5YmNmIDEwMDY0NAogIHN0YXRpYyBpbnQgcGRpX25lZWRzX25hbWVzcGFjZSAoZW51bSBk d2FyZl90YWcgdGFnKTsKICAKICBzdGF0aWMgdm9pZCBhZGRfcGFydGlhbF9uYW1lc3BhY2UgKHN0 cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksCi1AQCAtNzk0LDYgKzgwNywxMCBAQCBzdGF0aWMg dm9pZCBkd2FyZjJfcHN5bXRhYl90b19zeW10YWIgKHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqKTsK K0BAIC03OTQsNiArNzk2LDEwIEBAIHN0YXRpYyB2b2lkIGR3YXJmMl9wc3ltdGFiX3RvX3N5bXRh YiAoc3RydWN0IHBhcnRpYWxfc3ltdGFiICopOwogIAogIHN0YXRpYyB2b2lkIHBzeW10YWJfdG9f c3ltdGFiXzEgKHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqKTsKICAKQEAgLTk3NjIsNyArMTA4MDgs MjYgQEAgaW5kZXggNTU4NjhkYS4uOGEzOWJjZiAxMDA2NDQKICBnZGJfYnl0ZSAqZHdhcmYyX3Jl YWRfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKiwgYXNlY3Rpb24gKik7CiAgCiAgc3RhdGljIHZv aWQgZHdhcmYyX3JlYWRfYWJicmV2cyAoYmZkICphYmZkLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSk7 Ci1AQCAtOTkzLDYgKzEwMTAsOSBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzX2RpZSAoc3RydWN0IGRp ZV9pbmZvICosIHN0cnVjdCBkd2FyZjJfY3UgKik7CitAQCAtOTI5LDcgKzkzNSw4IEBAIHN0YXRp YyBpbnQgZHdhcmYyX3Jhbmdlc19yZWFkICh1bnNpZ25lZCwgQ09SRV9BRERSICosIENPUkVfQURE UiAqLAorIAkJCSAgICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICosIHN0cnVjdCBwYXJ0aWFsX3N5bXRh YiAqKTsKKyAKKyBzdGF0aWMgaW50IGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2lu Zm8gKiwKKy0JCQkJIENPUkVfQUREUiAqLCBDT1JFX0FERFIgKiwgc3RydWN0IGR3YXJmMl9jdSAq KTsKKysJCQkJIENPUkVfQUREUiAqLCBDT1JFX0FERFIgKiwgc3RydWN0IGR3YXJmMl9jdSAqLAor KwkJCQkgc3RydWN0IHBhcnRpYWxfc3ltdGFiICpwc3QpOworIAorIHN0YXRpYyB2b2lkIGdldF9z Y29wZV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqLAorIAkJCQkgQ09SRV9BRERSICosIENP UkVfQUREUiAqLAorQEAgLTk2Miw2ICs5NjksOCBAQCBzdGF0aWMgdm9pZCByZWFkX25hbWVzcGFj ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKik7CisgCisgc3RhdGlj IHZvaWQgcmVhZF9tb2R1bGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSk7CisgCisrc3RhdGljIHZvaWQgcmVhZF9pbXBvcnRfc3RhdGVtZW50IChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqKTsKKysKKyBzdGF0aWMgY29uc3QgY2hhciAq bmFtZXNwYWNlX25hbWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAorIAkJCQkgICBpbnQgKmlzX2Fu b255bW91cywgc3RydWN0IGR3YXJmMl9jdSAqKTsKKyAKK0BAIC05OTMsNiArMTAwMiw5IEBAIHN0 YXRpYyB2b2lkIHByb2Nlc3NfZGllIChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0IGR3YXJmMl9j dSAqKTsKICAKICBzdGF0aWMgY2hhciAqZHdhcmYyX2xpbmthZ2VfbmFtZSAoc3RydWN0IGRpZV9p bmZvICosIHN0cnVjdCBkd2FyZjJfY3UgKik7CiAgCkBAIC05NzcyLDcgKzEwODM3LDcgQEAgaW5k ZXggNTU4NjhkYS4uOGEzOWJjZiAxMDA2NDQKICBzdGF0aWMgY2hhciAqZHdhcmYyX25hbWUgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOwogIAogIHN0YXRpYyBzdHJ1 Y3QgZGllX2luZm8gKmR3YXJmMl9leHRlbnNpb24gKHN0cnVjdCBkaWVfaW5mbyAqZGllLAotQEAg LTEwMzAsNyArMTA1MCwxNCBAQCBzdGF0aWMgdm9pZCBzdG9yZV9pbl9yZWZfdGFibGUgKHN0cnVj dCBkaWVfaW5mbyAqLAorQEAgLTEwMzAsNyArMTA0MiwxNCBAQCBzdGF0aWMgdm9pZCBzdG9yZV9p bl9yZWZfdGFibGUgKHN0cnVjdCBkaWVfaW5mbyAqLAogIAogIHN0YXRpYyB1bnNpZ25lZCBpbnQg ZHdhcmYyX2dldF9yZWZfZGllX29mZnNldCAoc3RydWN0IGF0dHJpYnV0ZSAqKTsKICAKQEAgLTk3 ODgsNyArMTA4NTMsNyBAQCBpbmRleCA1NTg2OGRhLi44YTM5YmNmIDEwMDY0NAogIAogIHN0YXRp YyBzdHJ1Y3QgZGllX2luZm8gKmZvbGxvd19kaWVfcmVmIChzdHJ1Y3QgZGllX2luZm8gKiwKICAJ CQkJCXN0cnVjdCBhdHRyaWJ1dGUgKiwKLUBAIC0xMDg1LDYgKzExMTIsOSBAQCBzdGF0aWMgdm9p ZCBhZ2VfY2FjaGVkX2NvbXBfdW5pdHMgKHZvaWQpOworQEAgLTEwODUsNiArMTEwNCw5IEBAIHN0 YXRpYyB2b2lkIGFnZV9jYWNoZWRfY29tcF91bml0cyAodm9pZCk7CiAgCiAgc3RhdGljIHZvaWQg ZnJlZV9vbmVfY2FjaGVkX2NvbXBfdW5pdCAodm9pZCAqKTsKICAKQEAgLTk3OTgsNyArMTA4NjMs NyBAQCBpbmRleCA1NTg2OGRhLi44YTM5YmNmIDEwMDY0NAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAq c2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0IHR5cGUgKiwKICAJCQkJICBz dHJ1Y3QgZHdhcmYyX2N1ICopOwogIAotQEAgLTExMDQsMTkgKzExMzQsMjggQEAgc3RhdGljIHZv aWQgZHdhcmYyX2NsZWFyX21hcmtzIChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICopOworQEAg LTExMDQsMTkgKzExMjYsMjggQEAgc3RhdGljIHZvaWQgZHdhcmYyX2NsZWFyX21hcmtzIChzdHJ1 Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICopOwogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZ2V0X2Rp ZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpOwogIApA QCAtOTgzMiw3ICsxMDg5Nyw3IEBAIGluZGV4IDU1ODY4ZGEuLjhhMzliY2YgMTAwNjQ0CiAgCiAg ICBkd2FyZl9pbmZvX3NlY3Rpb24gPSAwOwogICAgZHdhcmZfYWJicmV2X3NlY3Rpb24gPSAwOwot QEAgLTExMjcsOCArMTE2Niw5IEBAIGR3YXJmMl9oYXNfaW5mbyAoc3RydWN0IG9iamZpbGUgKm9i amZpbGUpCitAQCAtMTEyNyw4ICsxMTU4LDkgQEAgZHdhcmYyX2hhc19pbmZvIChzdHJ1Y3Qgb2Jq ZmlsZSAqb2JqZmlsZSkKICAgIGR3YXJmX2VoX2ZyYW1lX3NlY3Rpb24gPSAwOwogICAgZHdhcmZf cmFuZ2VzX3NlY3Rpb24gPSAwOwogICAgZHdhcmZfbG9jX3NlY3Rpb24gPSAwOwpAQCAtOTg0Myw3 ICsxMDkwOCw3IEBAIGluZGV4IDU1ODY4ZGEuLjhhMzliY2YgMTAwNjQ0CiAgICByZXR1cm4gKGR3 YXJmX2luZm9fc2VjdGlvbiAhPSBOVUxMICYmIGR3YXJmX2FiYnJldl9zZWN0aW9uICE9IE5VTEwp OwogIH0KICAKLUBAIC0xMTQ5LDUxICsxMTg5LDYxIEBAIHNlY3Rpb25faXNfcCAoYXNlY3Rpb24g KnNlY3RwLCBjb25zdCBjaGFyICpuYW1lKQorQEAgLTExNDksNTEgKzExODEsNjEgQEAgc2VjdGlv bl9pc19wIChhc2VjdGlvbiAqc2VjdHAsIGNvbnN0IGNoYXIgKm5hbWUpCiAgICAgaW4uICAqLwog IAogIHN0YXRpYyB2b2lkCkBAIC05OTE1LDcgKzEwOTgwLDcgQEAgaW5kZXggNTU4NjhkYS4uOGEz OWJjZiAxMDA2NDQKICAgICAgICBkd2FyZl9mcmFtZV9zZWN0aW9uID0gc2VjdHA7CiAgICAgIH0K ICAgIGVsc2UgaWYgKHNlY3Rpb25faXNfcCAoc2VjdHAsIEVIX0ZSQU1FX1NFQ1RJT04pKQotQEAg LTEyMDEsMTMgKzEyNTEsMTUgQEAgZHdhcmYyX2xvY2F0ZV9zZWN0aW9ucyAoYmZkICphYmZkLCBh c2VjdGlvbiAqc2VjdHAsIHZvaWQgKmlnbm9yZV9wdHIpCitAQCAtMTIwMSwxMyArMTI0MywxNSBA QCBkd2FyZjJfbG9jYXRlX3NlY3Rpb25zIChiZmQgKmFiZmQsIGFzZWN0aW9uICpzZWN0cCwgdm9p ZCAqaWdub3JlX3B0cikKICAgICAgICBmbGFnd29yZCBhZmxhZyA9IGJmZF9nZXRfc2VjdGlvbl9m bGFncyAoaWdub3JlX2FiZmQsIHNlY3RwKTsKICAgICAgICBpZiAoYWZsYWcgJiBTRUNfSEFTX0NP TlRFTlRTKQogICAgICAgICAgewpAQCAtOTkzMyw3ICsxMDk5OCw3IEBAIGluZGV4IDU1ODY4ZGEu LjhhMzliY2YgMTAwNjQ0CiAgICAgICAgZHdhcmZfcmFuZ2VzX3NlY3Rpb24gPSBzZWN0cDsKICAg ICAgfQogICAgCi1AQCAtMTI1MCw2ICsxMzAyLDg2IEBAIGR3YXJmMl9yZXNpemVfc2VjdGlvbiAo YXNlY3Rpb24gKnNlY3RwLCBiZmRfc2l6ZV90eXBlIG5ld19zaXplKQorQEAgLTEyNTAsNiArMTI5 NCw4NiBAQCBkd2FyZjJfcmVzaXplX3NlY3Rpb24gKGFzZWN0aW9uICpzZWN0cCwgYmZkX3NpemVf dHlwZSBuZXdfc2l6ZSkKICAgICAgICAgICAgICAgICAgICAgIHNlY3RwLT5uYW1lKTsKICB9CiAg CkBAIC0xMDAyMCw3ICsxMTA4NSw0MjMgQEAgaW5kZXggNTU4NjhkYS4uOGEzOWJjZiAxMDA2NDQK ICAvKiBCdWlsZCBhIHBhcnRpYWwgc3ltYm9sIHRhYmxlLiAgKi8KICAKICB2b2lkCi1AQCAtMjg0 OSw2ICsyOTgxLDcgQEAgcHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKK0BAIC0xNDUzLDIyICsxNTc3LDI0IEBAIGR3YXJmMl9jcmVhdGVfaW5j bHVkZV9wc3ltdGFiIChjaGFyICpuYW1lLCBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBzdCwKKyAK KyAvKiBSZWFkIHRoZSBMaW5lIE51bWJlciBQcm9ncmFtIGRhdGEgYW5kIGV4dHJhY3QgdGhlIGxp c3Qgb2YgZmlsZXMKKyAgICBpbmNsdWRlZCBieSB0aGUgc291cmNlIGZpbGUgcmVwcmVzZW50ZWQg YnkgUFNULiAgQnVpbGQgYW4gaW5jbHVkZQorLSAgIHBhcnRpYWwgc3ltdGFiIGZvciBlYWNoIG9m IHRoZXNlIGluY2x1ZGVkIGZpbGVzLgorLSAgIAorLSAgIFRoaXMgcHJvY2VkdXJlIGFzc3VtZXMg dGhhdCB0aGVyZSAqaXMqIGEgTGluZSBOdW1iZXIgUHJvZ3JhbSBpbgorLSAgIHRoZSBnaXZlbiBD VS4gIENhbGxlcnMgc2hvdWxkIGNoZWNrIHRoYXQgUERJLT5IQVNfU1RNVF9MSVNUIGlzIHNldAor LSAgIGJlZm9yZSBjYWxsaW5nIHRoaXMgcHJvY2VkdXJlLiAgKi8KKysgICBwYXJ0aWFsIHN5bXRh YiBmb3IgZWFjaCBvZiB0aGVzZSBpbmNsdWRlZCBmaWxlcy4gICovCisgCisgc3RhdGljIHZvaWQK KyBkd2FyZjJfYnVpbGRfaW5jbHVkZV9wc3ltdGFicyAoc3RydWN0IGR3YXJmMl9jdSAqY3UsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpw ZGksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkaWVfaW5mbyAqZGll LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGFydGlhbF9zeW10YWIg KnBzdCkKKyB7CisgICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSA9IGN1LT5vYmpmaWxlOworICAg YmZkICphYmZkID0gb2JqZmlsZS0+b2JmZDsKKy0gIHN0cnVjdCBsaW5lX2hlYWRlciAqbGg7Cisr ICBzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoID0gTlVMTDsKKysgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0 dHI7CisgCistICBsaCA9IGR3YXJmX2RlY29kZV9saW5lX2hlYWRlciAocGRpLT5saW5lX29mZnNl dCwgYWJmZCwgY3UpOworKyAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX3N0bXRfbGlz dCwgY3UpOworKyAgaWYgKGF0dHIpCisrICAgIHsKKysgICAgICB1bnNpZ25lZCBpbnQgbGluZV9v ZmZzZXQgPSBEV19VTlNORCAoYXR0cik7CisrICAgICAgbGggPSBkd2FyZl9kZWNvZGVfbGluZV9o ZWFkZXIgKGxpbmVfb2Zmc2V0LCBhYmZkLCBjdSk7CisrICAgIH0KKyAgIGlmIChsaCA9PSBOVUxM KQorICAgICByZXR1cm47ICAvKiBObyBsaW5ldGFibGUsIHNvIG5vIGluY2x1ZGVzLiAgKi8KKyAK K0BAIC0xNDc3LDYgKzE2MDMsMzYgQEAgZHdhcmYyX2J1aWxkX2luY2x1ZGVfcHN5bXRhYnMgKHN0 cnVjdCBkd2FyZjJfY3UgKmN1LAorICAgZnJlZV9saW5lX2hlYWRlciAobGgpOworIH0KKyAKKysv KiBGaW5kIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIGNvbXBpbGF0aW9uIHVuaXQgZm9yIHJhbmdl IGxpc3RzIGFuZAorKyAgIGxvY2F0aW9uIGxpc3RzLiAgSXQgd2lsbCBub3JtYWxseSBiZSBzcGVj aWZpZWQgYnkgRFdfQVRfbG93X3BjLgorKyAgIEluIERXQVJGLTMgZHJhZnQgNCwgdGhlIGJhc2Ug YWRkcmVzcyBjb3VsZCBiZSBvdmVycmlkZGVuIGJ5CisrICAgRFdfQVRfZW50cnlfcGMuICBJdCdz IGJlZW4gcmVtb3ZlZCwgYnV0IEdDQyBzdGlsbCB1c2VzIHRoaXMgZm9yCisrICAgY29tcGlsYXRp b24gdW5pdHMgd2l0aCBkaXNjb250aW51b3VzIHJhbmdlcy4gICovCisrCisrc3RhdGljIHZvaWQK Kytkd2FyZjJfZmluZF9iYXNlX2FkZHJlc3MgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKKyt7CisrICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOworKworKyAgY3Ut PmJhc2Vfa25vd24gPSAwOworKyAgY3UtPmJhc2VfYWRkcmVzcyA9IDA7CisrCisrICBhdHRyID0g ZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfZW50cnlfcGMsIGN1KTsKKysgIGlmIChhdHRyKQorKyAg ICB7CisrICAgICAgY3UtPmJhc2VfYWRkcmVzcyA9IERXX0FERFIgKGF0dHIpOworKyAgICAgIGN1 LT5iYXNlX2tub3duID0gMTsKKysgICAgfQorKyAgZWxzZQorKyAgICB7CisrICAgICAgYXR0ciA9 IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2xvd19wYywgY3UpOworKyAgICAgIGlmIChhdHRyKQor Kwl7CisrCSAgY3UtPmJhc2VfYWRkcmVzcyA9IERXX0FERFIgKGF0dHIpOworKwkgIGN1LT5iYXNl X2tub3duID0gMTsKKysJfQorKyAgICB9CisrfQorIAorIC8qIEJ1aWxkIHRoZSBwYXJ0aWFsIHN5 bWJvbCB0YWJsZSBieSBkb2luZyBhIHF1aWNrIHBhc3MgdGhyb3VnaCB0aGUKKyAgICAuZGVidWdf aW5mbyBhbmQgLmRlYnVnX2FiYnJldiBzZWN0aW9ucy4gICovCitAQCAtMTQ4OSw3ICsxNjQ1LDcg QEAgZHdhcmYyX2J1aWxkX3BzeW10YWJzX2hhcmQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBp bnQgbWFpbmxpbmUpCisgICBiZmQgKmFiZmQgPSBvYmpmaWxlLT5vYmZkOworICAgZ2RiX2J5dGUg KmluZm9fcHRyOworICAgZ2RiX2J5dGUgKmJlZ19vZl9jb21wX3VuaXQ7CistICBzdHJ1Y3QgcGFy dGlhbF9kaWVfaW5mbyBjb21wX3VuaXRfZGllOworKyAgc3RydWN0IGRpZV9pbmZvICpjb21wX3Vu aXRfZGllOworICAgc3RydWN0IHBhcnRpYWxfc3ltdGFiICpwc3Q7CisgICBzdHJ1Y3QgY2xlYW51 cCAqYmFja190bzsKKyAgIENPUkVfQUREUiBiYXNlYWRkcjsKK0BAIC0xNTIzLDkgKzE2NzksMTIg QEAgZHdhcmYyX2J1aWxkX3BzeW10YWJzX2hhcmQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBp bnQgbWFpbmxpbmUpCisgICAgIHsKKyAgICAgICBzdHJ1Y3QgY2xlYW51cCAqYmFja190b19pbm5l cjsKKyAgICAgICBzdHJ1Y3QgZHdhcmYyX2N1IGN1OworLSAgICAgIHN0cnVjdCBhYmJyZXZfaW5m byAqYWJicmV2OworICAgICAgIHVuc2lnbmVkIGludCBieXRlc19yZWFkOworICAgICAgIHN0cnVj dCBkd2FyZjJfcGVyX2N1X2RhdGEgKnRoaXNfY3U7CisrICAgICAgaW50IGhhc19jaGlsZHJlbiwg aGFzX3BjX2luZm87CisrICAgICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKKysgICAgICBjb25z dCBjaGFyICpuYW1lOworKyAgICAgIENPUkVfQUREUiBiZXN0X2xvd3BjLCBiZXN0X2hpZ2hwYzsK KyAKKyAgICAgICBiZWdfb2ZfY29tcF91bml0ID0gaW5mb19wdHI7CisgCitAQCAtMTU1MSwxMSAr MTcxMCwxMCBAQCBkd2FyZjJfYnVpbGRfcHN5bXRhYnNfaGFyZCAoc3RydWN0IG9iamZpbGUgKm9i amZpbGUsIGludCBtYWlubGluZSkKKyAgICAgICB0aGlzX2N1ID0gZHdhcmYyX2ZpbmRfY29tcF91 bml0IChjdS5oZWFkZXIub2Zmc2V0LCBvYmpmaWxlKTsKKyAKKyAgICAgICAvKiBSZWFkIHRoZSBj b21waWxhdGlvbiB1bml0IGRpZSAqLworLSAgICAgIGFiYnJldiA9IHBlZWtfZGllX2FiYnJldiAo aW5mb19wdHIsICZieXRlc19yZWFkLCAmY3UpOworLSAgICAgIGluZm9fcHRyID0gcmVhZF9wYXJ0 aWFsX2RpZSAoJmNvbXBfdW5pdF9kaWUsIGFiYnJldiwgYnl0ZXNfcmVhZCwKKy0JCQkJICAgYWJm ZCwgaW5mb19wdHIsICZjdSk7CisrICAgICAgaW5mb19wdHIgPSByZWFkX2Z1bGxfZGllICgmY29t cF91bml0X2RpZSwgYWJmZCwgaW5mb19wdHIsICZjdSwKKysJCQkJJmhhc19jaGlsZHJlbik7Cisg CistICAgICAgaWYgKGNvbXBfdW5pdF9kaWUudGFnID09IERXX1RBR19wYXJ0aWFsX3VuaXQpCisr ICAgICAgaWYgKGNvbXBfdW5pdF9kaWUtPnRhZyA9PSBEV19UQUdfcGFydGlhbF91bml0KQorIAl7 CisgCSAgaW5mb19wdHIgPSAoYmVnX29mX2NvbXBfdW5pdCArIGN1LmhlYWRlci5sZW5ndGgKKyAJ CSAgICAgICsgY3UuaGVhZGVyLmluaXRpYWxfbGVuZ3RoX3NpemUpOworQEAgLTE1NjQsMjAgKzE3 MjIsMjcgQEAgZHdhcmYyX2J1aWxkX3BzeW10YWJzX2hhcmQgKHN0cnVjdCBvYmpmaWxlICpvYmpm aWxlLCBpbnQgbWFpbmxpbmUpCisgCX0KKyAKKyAgICAgICAvKiBTZXQgdGhlIGxhbmd1YWdlIHdl J3JlIGRlYnVnZ2luZyAqLworLSAgICAgIHNldF9jdV9sYW5ndWFnZSAoY29tcF91bml0X2RpZS5s YW5ndWFnZSwgJmN1KTsKKysgICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGNvbXBfdW5pdF9kaWUs IERXX0FUX2xhbmd1YWdlLCAmY3UpOworKyAgICAgIGlmIChhdHRyICE9IE5VTEwpCisrCXNldF9j dV9sYW5ndWFnZSAoRFdfVU5TTkQgKGF0dHIpLCAmY3UpOworKyAgICAgIGVsc2UKKysJc2V0X2N1 X2xhbmd1YWdlIChsYW5ndWFnZV9taW5pbWFsLCAmY3UpOworIAorICAgICAgIC8qIEFsbG9jYXRl IGEgbmV3IHBhcnRpYWwgc3ltYm9sIHRhYmxlIHN0cnVjdHVyZSAqLworLSAgICAgIHBzdCA9IHN0 YXJ0X3BzeW10YWJfY29tbW9uIChvYmpmaWxlLCBvYmpmaWxlLT5zZWN0aW9uX29mZnNldHMsCist CQkJCSAgY29tcF91bml0X2RpZS5uYW1lID8gY29tcF91bml0X2RpZS5uYW1lIDogIiIsCisrICAg ICAgYXR0ciA9IGR3YXJmMl9hdHRyIChjb21wX3VuaXRfZGllLCBEV19BVF9uYW1lLCAmY3UpOwor KyAgICAgIGlmIChhdHRyICE9IE5VTEwpCisrCW5hbWUgPSBEV19TVFJJTkcgKGF0dHIpOworKyAg ICAgIGVsc2UKKysJbmFtZSA9ICIiOworKyAgICAgIHBzdCA9IHN0YXJ0X3BzeW10YWJfY29tbW9u IChvYmpmaWxlLCBvYmpmaWxlLT5zZWN0aW9uX29mZnNldHMsIG5hbWUsCisgCQkJCSAgLyogVEVY VExPVyBhbmQgVEVYVEhJR0ggYXJlIHNldCBiZWxvdy4gICovCisgCQkJCSAgMCwKKyAJCQkJICBv YmpmaWxlLT5nbG9iYWxfcHN5bWJvbHMubmV4dCwKKyAJCQkJICBvYmpmaWxlLT5zdGF0aWNfcHN5 bWJvbHMubmV4dCk7CisgCistICAgICAgaWYgKGNvbXBfdW5pdF9kaWUuZGlybmFtZSkKKy0JcHN0 LT5kaXJuYW1lID0gb2JzYXZlc3RyaW5nIChjb21wX3VuaXRfZGllLmRpcm5hbWUsCistCQkJCSAg ICAgc3RybGVuIChjb21wX3VuaXRfZGllLmRpcm5hbWUpLAorLQkJCQkgICAgICZvYmpmaWxlLT5v YmpmaWxlX29ic3RhY2spOworKyAgICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoY29tcF91bml0X2Rp ZSwgRFdfQVRfY29tcF9kaXIsICZjdSk7CisrICAgICAgaWYgKGF0dHIgIT0gTlVMTCkKKysJcHN0 LT5kaXJuYW1lID0geHN0cmR1cCAoRFdfU1RSSU5HIChhdHRyKSk7CisgCisgICAgICAgcHN0LT5y ZWFkX3N5bXRhYl9wcml2YXRlID0gKGNoYXIgKikgdGhpc19jdTsKKyAKK0BAIC0xNjA3LDI0ICsx NzcyLDE3IEBAIGR3YXJmMl9idWlsZF9wc3ltdGFic19oYXJkIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZSwgaW50IG1haW5saW5lKQorIAorICAgICAgIC8qIFBvc3NpYmx5IHNldCB0aGUgZGVmYXVs dCB2YWx1ZXMgb2YgTE9XUEMgYW5kIEhJR0hQQyBmcm9tCisgICAgICAgICAgYERXX0FUX3Jhbmdl cycuICAqLworLSAgICAgIGlmIChjdS5oYXNfcmFuZ2VzX29mZnNldCkKKy0JeworLQkgIGlmIChk d2FyZjJfcmFuZ2VzX3JlYWQgKGN1LnJhbmdlc19vZmZzZXQsICZjb21wX3VuaXRfZGllLmxvd3Bj LAorLQkJCQkgICZjb21wX3VuaXRfZGllLmhpZ2hwYywgJmN1LCBwc3QpKQorLQkgICAgY29tcF91 bml0X2RpZS5oYXNfcGNfaW5mbyA9IDE7CistCX0KKy0gICAgICBlbHNlIGlmIChjb21wX3VuaXRf ZGllLmhhc19wY19pbmZvCistCSAgICAgICAmJiBjb21wX3VuaXRfZGllLmxvd3BjIDwgY29tcF91 bml0X2RpZS5oaWdocGMpCistCS8qIFN0b3JlIHRoZSBjb250aWd1b3VzIHJhbmdlIGlmIGl0IGlz IG5vdCBlbXB0eTsgaXQgY2FuIGJlIGVtcHR5IGZvcgorLQkgICBDVXMgd2l0aCBubyBjb2RlLiAg Ki8KKy0JYWRkcm1hcF9zZXRfZW1wdHkgKG9iamZpbGUtPnBzeW10YWJzX2FkZHJtYXAsCistCQkJ ICAgY29tcF91bml0X2RpZS5sb3dwYyArIGJhc2VhZGRyLAorLQkJCSAgIGNvbXBfdW5pdF9kaWUu aGlnaHBjICsgYmFzZWFkZHIgLSAxLCBwc3QpOworKyAgICAgIGhhc19wY19pbmZvID0gMDsKKysK KysgICAgICBpZiAoZHdhcmYyX2dldF9wY19ib3VuZHMgKGNvbXBfdW5pdF9kaWUsICZiZXN0X2xv d3BjLCAmYmVzdF9oaWdocGMsICZjdSwKKysJCQkJcHN0KSkKKysJaGFzX3BjX2luZm8gPSAxOwor KyAgICAgIGR3YXJmMl9maW5kX2Jhc2VfYWRkcmVzcyAoY29tcF91bml0X2RpZSwgJmN1KTsKKyAK KyAgICAgICAvKiBDaGVjayBpZiBjb21wIHVuaXQgaGFzX2NoaWxkcmVuLgorICAgICAgICAgIElm IHNvLCByZWFkIHRoZSByZXN0IG9mIHRoZSBwYXJ0aWFsIHN5bWJvbHMgZnJvbSB0aGlzIGNvbXAg dW5pdC4KKyAgICAgICAgICBJZiBub3QsIHRoZXJlJ3Mgbm8gbW9yZSBkZWJ1Z19pbmZvIGZvciB0 aGlzIGNvbXAgdW5pdC4gKi8KKy0gICAgICBpZiAoY29tcF91bml0X2RpZS5oYXNfY2hpbGRyZW4p CisrICAgICAgaWYgKGhhc19jaGlsZHJlbikKKyAJeworIAkgIHN0cnVjdCBwYXJ0aWFsX2RpZV9p bmZvICpmaXJzdF9kaWU7CisgCSAgQ09SRV9BRERSIGxvd3BjLCBoaWdocGM7CitAQCAtMTYzNCw4 ICsxNzkyLDcgQEAgZHdhcmYyX2J1aWxkX3BzeW10YWJzX2hhcmQgKHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlLCBpbnQgbWFpbmxpbmUpCisgCisgCSAgZmlyc3RfZGllID0gbG9hZF9wYXJ0aWFsX2Rp ZXMgKGFiZmQsIGluZm9fcHRyLCAxLCAmY3UpOworIAorLQkgIHNjYW5fcGFydGlhbF9zeW1ib2xz IChmaXJzdF9kaWUsICZsb3dwYywgJmhpZ2hwYywKKy0JCQkJISBjb21wX3VuaXRfZGllLmhhc19w Y19pbmZvLCAmY3UpOworKwkgIHNjYW5fcGFydGlhbF9zeW1ib2xzIChmaXJzdF9kaWUsICZsb3dw YywgJmhpZ2hwYywgISBoYXNfcGNfaW5mbywgJmN1KTsKKyAKKyAJICAvKiBJZiB3ZSBkaWRuJ3Qg ZmluZCBhIGxvd3BjLCBzZXQgaXQgdG8gaGlnaHBjIHRvIGF2b2lkCisgCSAgICAgY29tcGxhaW50 cyBmcm9tIGBtYWludCBjaGVjaycuICAqLworQEAgLTE2NDQsMTQgKzE4MDEsMTQgQEAgZHdhcmYy X2J1aWxkX3BzeW10YWJzX2hhcmQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBpbnQgbWFpbmxp bmUpCisgCisgCSAgLyogSWYgdGhlIGNvbXBpbGF0aW9uIHVuaXQgZGlkbid0IGhhdmUgYW4gZXhw bGljaXQgYWRkcmVzcyByYW5nZSwKKyAJICAgICB0aGVuIHVzZSB0aGUgaW5mb3JtYXRpb24gZXh0 cmFjdGVkIGZyb20gaXRzIGNoaWxkIGRpZXMuICAqLworLQkgIGlmICghIGNvbXBfdW5pdF9kaWUu aGFzX3BjX2luZm8pCisrCSAgaWYgKCEgaGFzX3BjX2luZm8pCisgCSAgICB7CistCSAgICAgIGNv bXBfdW5pdF9kaWUubG93cGMgPSBsb3dwYzsKKy0JICAgICAgY29tcF91bml0X2RpZS5oaWdocGMg PSBoaWdocGM7CisrCSAgICAgIGJlc3RfbG93cGMgPSBsb3dwYzsKKysJICAgICAgYmVzdF9oaWdo cGMgPSBoaWdocGM7CisgCSAgICB9CisgCX0KKy0gICAgICBwc3QtPnRleHRsb3cgPSBjb21wX3Vu aXRfZGllLmxvd3BjICsgYmFzZWFkZHI7CistICAgICAgcHN0LT50ZXh0aGlnaCA9IGNvbXBfdW5p dF9kaWUuaGlnaHBjICsgYmFzZWFkZHI7CisrICAgICAgcHN0LT50ZXh0bG93ID0gYmVzdF9sb3dw YyArIGJhc2VhZGRyOworKyAgICAgIHBzdC0+dGV4dGhpZ2ggPSBiZXN0X2hpZ2hwYyArIGJhc2Vh ZGRyOworIAorICAgICAgIHBzdC0+bl9nbG9iYWxfc3ltcyA9IG9iamZpbGUtPmdsb2JhbF9wc3lt Ym9scy5uZXh0IC0KKyAJKG9iamZpbGUtPmdsb2JhbF9wc3ltYm9scy5saXN0ICsgcHN0LT5nbG9i YWxzX29mZnNldCk7CitAQCAtMTY2NywxMiArMTgyNCw5IEBAIGR3YXJmMl9idWlsZF9wc3ltdGFi c19oYXJkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgaW50IG1haW5saW5lKQorICAgICAgIGlu Zm9fcHRyID0gYmVnX29mX2NvbXBfdW5pdCArIGN1LmhlYWRlci5sZW5ndGgKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKyBjdS5oZWFkZXIuaW5pdGlhbF9sZW5ndGhfc2l6ZTsK KyAKKy0gICAgICBpZiAoY29tcF91bml0X2RpZS5oYXNfc3RtdF9saXN0KQorLSAgICAgICAgewor LSAgICAgICAgICAvKiBHZXQgdGhlIGxpc3Qgb2YgZmlsZXMgaW5jbHVkZWQgaW4gdGhlIGN1cnJl bnQgY29tcGlsYXRpb24gdW5pdCwKKy0gICAgICAgICAgICAgYW5kIGJ1aWxkIGEgcHN5bXRhYiBm b3IgZWFjaCBvZiB0aGVtLiAgKi8KKy0gICAgICAgICAgZHdhcmYyX2J1aWxkX2luY2x1ZGVfcHN5 bXRhYnMgKCZjdSwgJmNvbXBfdW5pdF9kaWUsIHBzdCk7CistICAgICAgICB9CisrICAgICAgLyog R2V0IHRoZSBsaXN0IG9mIGZpbGVzIGluY2x1ZGVkIGluIHRoZSBjdXJyZW50IGNvbXBpbGF0aW9u IHVuaXQsCisrCSBhbmQgYnVpbGQgYSBwc3ltdGFiIGZvciBlYWNoIG9mIHRoZW0uICAqLworKyAg ICAgIGR3YXJmMl9idWlsZF9pbmNsdWRlX3BzeW10YWJzICgmY3UsIGNvbXBfdW5pdF9kaWUsIHBz dCk7CisgCisgICAgICAgZG9fY2xlYW51cHMgKGJhY2tfdG9faW5uZXIpOworICAgICB9CitAQCAt MTY5MCwxMSArMTg0NCwxMiBAQCBsb2FkX2NvbXBfdW5pdCAoc3RydWN0IGR3YXJmMl9wZXJfY3Vf ZGF0YSAqdGhpc19jdSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCisgeworICAgYmZkICphYmZk ID0gb2JqZmlsZS0+b2JmZDsKKyAgIGdkYl9ieXRlICppbmZvX3B0ciwgKmJlZ19vZl9jb21wX3Vu aXQ7CistICBzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyBjb21wX3VuaXRfZGllOworKyAgc3RydWN0 IGRpZV9pbmZvICpjb21wX3VuaXRfZGllOworICAgc3RydWN0IGR3YXJmMl9jdSAqY3U7CistICBz dHJ1Y3QgYWJicmV2X2luZm8gKmFiYnJldjsKKyAgIHVuc2lnbmVkIGludCBieXRlc19yZWFkOwor ICAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87CisrICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwor KyAgaW50IGhhc19jaGlsZHJlbjsKKyAKKyAgIGluZm9fcHRyID0gZHdhcmYyX3Blcl9vYmpmaWxl LT5pbmZvX2J1ZmZlciArIHRoaXNfY3UtPm9mZnNldDsKKyAgIGJlZ19vZl9jb21wX3VuaXQgPSBp bmZvX3B0cjsKK0BAIC0xNzE2LDEyICsxODcxLDE1IEBAIGxvYWRfY29tcF91bml0IChzdHJ1Y3Qg ZHdhcmYyX3Blcl9jdV9kYXRhICp0aGlzX2N1LCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKKyAg IGJhY2tfdG8gPSBtYWtlX2NsZWFudXAgKGR3YXJmMl9mcmVlX2FiYnJldl90YWJsZSwgY3UpOwor IAorICAgLyogUmVhZCB0aGUgY29tcGlsYXRpb24gdW5pdCBkaWUuICAqLworLSAgYWJicmV2ID0g cGVla19kaWVfYWJicmV2IChpbmZvX3B0ciwgJmJ5dGVzX3JlYWQsIGN1KTsKKy0gIGluZm9fcHRy ID0gcmVhZF9wYXJ0aWFsX2RpZSAoJmNvbXBfdW5pdF9kaWUsIGFiYnJldiwgYnl0ZXNfcmVhZCwK Ky0JCQkgICAgICAgYWJmZCwgaW5mb19wdHIsIGN1KTsKKysgIGluZm9fcHRyID0gcmVhZF9mdWxs X2RpZSAoJmNvbXBfdW5pdF9kaWUsIGFiZmQsIGluZm9fcHRyLCBjdSwKKysJCQkgICAgJmhhc19j aGlsZHJlbik7CisgCisgICAvKiBTZXQgdGhlIGxhbmd1YWdlIHdlJ3JlIGRlYnVnZ2luZy4gICov CistICBzZXRfY3VfbGFuZ3VhZ2UgKGNvbXBfdW5pdF9kaWUubGFuZ3VhZ2UsIGN1KTsKKysgIGF0 dHIgPSBkd2FyZjJfYXR0ciAoY29tcF91bml0X2RpZSwgRFdfQVRfbGFuZ3VhZ2UsIGN1KTsKKysg IGlmIChhdHRyKQorKyAgICBzZXRfY3VfbGFuZ3VhZ2UgKERXX1VOU05EIChhdHRyKSwgY3UpOwor KyAgZWxzZQorKyAgICBzZXRfY3VfbGFuZ3VhZ2UgKGxhbmd1YWdlX21pbmltYWwsIGN1KTsKKyAK KyAgIC8qIExpbmsgdGhpcyBjb21waWxhdGlvbiB1bml0IGludG8gdGhlIGNvbXBpbGF0aW9uIHVu aXQgdHJlZS4gICovCisgICB0aGlzX2N1LT5jdSA9IGN1OworQEAgLTE3MzEsNyArMTg4OSw3IEBA IGxvYWRfY29tcF91bml0IChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICp0aGlzX2N1LCBzdHJ1 Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKKyAgIC8qIENoZWNrIGlmIGNvbXAgdW5pdCBoYXNfY2hpbGRy ZW4uCisgICAgICBJZiBzbywgcmVhZCB0aGUgcmVzdCBvZiB0aGUgcGFydGlhbCBzeW1ib2xzIGZy b20gdGhpcyBjb21wIHVuaXQuCisgICAgICBJZiBub3QsIHRoZXJlJ3Mgbm8gbW9yZSBkZWJ1Z19p bmZvIGZvciB0aGlzIGNvbXAgdW5pdC4gKi8KKy0gIGlmIChjb21wX3VuaXRfZGllLmhhc19jaGls ZHJlbikKKysgIGlmIChoYXNfY2hpbGRyZW4pCisgICAgIGxvYWRfcGFydGlhbF9kaWVzIChhYmZk LCBpbmZvX3B0ciwgMCwgY3UpOworIAorICAgZG9fY2xlYW51cHMgKGJhY2tfdG8pOworQEAgLTE5 NDgsNyArMjEwNiw3IEBAIHBhcnRpYWxfZGllX3BhcmVudF9zY29wZSAoc3RydWN0IHBhcnRpYWxf ZGllX2luZm8gKnBkaSwKKyAJIGlnbm9yaW5nIHRoZW0uICAqLworICAgICAgIGNvbXBsYWludCAo JnN5bWZpbGVfY29tcGxhaW50cywKKyAJCSBfKCJ1bmhhbmRsZWQgY29udGFpbmluZyBESUUgdGFn ICVkIGZvciBESUUgYXQgJWQiKSwKKy0JCSBwYXJlbnQtPnRhZywgcGRpLT5vZmZzZXQpOworKwkJ IHBhcmVudC0+dGFnLCByZWFsX3BkaS0+b2Zmc2V0KTsKKyAgICAgICBwYXJlbnQtPnNjb3BlID0g Z3JhbmRwYXJlbnRfc2NvcGU7CisgICAgIH0KKyAKK0BAIC0xOTYzLDEyICsyMTIxLDM3IEBAIHBh cnRpYWxfZGllX2Z1bGxfbmFtZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwKKyAJCSAg ICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyB7CisgICBjaGFyICpwYXJlbnRfc2NvcGU7Cisr ICBzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcmVhbF9wZGk7CisgCistICBwYXJlbnRfc2NvcGUg PSBwYXJ0aWFsX2RpZV9wYXJlbnRfc2NvcGUgKHBkaSwgY3UpOworLSAgaWYgKHBhcmVudF9zY29w ZSA9PSBOVUxMKQorLSAgICByZXR1cm4gTlVMTDsKKy0gIGVsc2UKKysgIC8qIFdlIG5lZWQgdG8g bG9vayBhdCBvdXIgcGFyZW50IERJRTsgaWYgd2UgaGF2ZSBhIERXX0FUX3NwZWNpZmljYXRpb24s CisrICAgICB0aGVuIHRoaXMgbWVhbnMgdGhlIHBhcmVudCBvZiB0aGUgc3BlY2lmaWNhdGlvbiBE SUUuCisrICAgICBwYXJ0aWFsX2RpZV9wYXJlbnRfc2NvcGUgZG9lcyB0aGlzIGxvb3AgYWxzbywg YnV0IHdlIGRvIGl0IGhlcmUKKysgICAgIHNpbmNlIHdlIG5lZWQgdG8gZXhhbWluZSByZWFsX3Bk aS0+cGFyZW50IG91cnNlbHZlcy4gICovCisrCisrICByZWFsX3BkaSA9IHBkaTsKKysgIHdoaWxl IChyZWFsX3BkaS0+aGFzX3NwZWNpZmljYXRpb24pCisrICAgIHJlYWxfcGRpID0gZmluZF9wYXJ0 aWFsX2RpZSAocmVhbF9wZGktPnNwZWNfb2Zmc2V0LCBjdSk7CisrCisrICBwYXJlbnRfc2NvcGUg PSBwYXJ0aWFsX2RpZV9wYXJlbnRfc2NvcGUgKHJlYWxfcGRpLCBjdSk7CisrICBpZiAocGFyZW50 X3Njb3BlICE9IE5VTEwpCisgICAgIHJldHVybiB0eXBlbmFtZV9jb25jYXQgKE5VTEwsIHBhcmVu dF9zY29wZSwgcGRpLT5uYW1lLCBjdSk7CisrCisrICBpZiAoIWN1LT5oYXNfbmFtZXNwYWNlX2lu Zm8gJiYgcGRpLT5saW5rYWdlX25hbWUKKysgICAgICAmJiAhcmVhbF9wZGktPmRpZV9wYXJlbnQp CisrICAgIHsKKysgICAgICBjaGFyICphY3R1YWxfc2NvcGUKKysJPSBsYW5ndWFnZV9jbGFzc19u YW1lX2Zyb21fcGh5c25hbWUgKGN1LT5sYW5ndWFnZV9kZWZuLAorKwkJCQkJICAgICBwZGktPmxp bmthZ2VfbmFtZSk7CisrICAgICAgaWYgKGFjdHVhbF9zY29wZSAhPSBOVUxMKQorKwl7CisrCSAg Y2hhciAqYWN0dWFsX25hbWUgPSB0eXBlbmFtZV9jb25jYXQgKE5VTEwsIGFjdHVhbF9zY29wZSwK KysJCQkJCSAgICAgICBwZGktPm5hbWUsIGN1KTsKKysJICB4ZnJlZSAoYWN0dWFsX3Njb3BlKTsK KysJICByZXR1cm4gYWN0dWFsX25hbWU7CisrCX0KKysgICAgfQorKworKyAgcmV0dXJuIE5VTEw7 CisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtMTk4NCw3ICsyMTY3LDkgQEAgYWRkX3BhcnRpYWxf c3ltYm9sIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKKyAKKyAgIGJhc2VhZGRyID0gQU5PRkZTRVQgKG9iamZpbGUtPnNlY3Rpb25fb2Zmc2V0cywg U0VDVF9PRkZfVEVYVCAob2JqZmlsZSkpOworIAorLSAgaWYgKHBkaV9uZWVkc19uYW1lc3BhY2Ug KHBkaS0+dGFnKSkKKysgIGlmIChwZGktPmxpbmthZ2VfbmFtZSAhPSBOVUxMKQorKyAgICBhY3R1 YWxfbmFtZSA9IHBkaS0+bGlua2FnZV9uYW1lOworKyAgZWxzZSBpZiAocGRpX25lZWRzX25hbWVz cGFjZSAocGRpLT50YWcpKQorICAgICB7CisgICAgICAgYWN0dWFsX25hbWUgPSBwYXJ0aWFsX2Rp ZV9mdWxsX25hbWUgKHBkaSwgY3UpOworICAgICAgIGlmIChhY3R1YWxfbmFtZSkKK0BAIC0yMTMz LDkgKzIzMTgsOCBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZv ICpwZGksIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorICAgaWYgKGN1LT5sYW5ndWFnZSA9PSBsYW5n dWFnZV9jcGx1cworICAgICAgICYmIGN1LT5oYXNfbmFtZXNwYWNlX2luZm8gPT0gMAorICAgICAg ICYmIHBzeW0gIT0gTlVMTAorLSAgICAgICYmIFNZTUJPTF9DUExVU19ERU1BTkdMRURfTkFNRSAo cHN5bSkgIT0gTlVMTCkKKy0gICAgY3BfY2hlY2tfcG9zc2libGVfbmFtZXNwYWNlX3N5bWJvbHMg KFNZTUJPTF9DUExVU19ERU1BTkdMRURfTkFNRSAocHN5bSksCistCQkJCQkgb2JqZmlsZSk7Cisr ICAgICAgJiYgcGRpLT5saW5rYWdlX25hbWUgIT0gTlVMTCkKKysgICAgY3BfY2hlY2tfcG9zc2li bGVfbmFtZXNwYWNlX3N5bWJvbHMgKGFjdHVhbF9uYW1lLCBvYmpmaWxlKTsKKyAKKyAgIGlmIChi dWlsdF9hY3R1YWxfbmFtZSkKKyAgICAgeGZyZWUgKGFjdHVhbF9uYW1lKTsKK0BAIC0yMTU4LDYg KzIzNDIsMTQgQEAgcGRpX25lZWRzX25hbWVzcGFjZSAoZW51bSBkd2FyZl90YWcgdGFnKQorICAg ICBjYXNlIERXX1RBR191bmlvbl90eXBlOgorICAgICBjYXNlIERXX1RBR19lbnVtZXJhdGlvbl90 eXBlOgorICAgICBjYXNlIERXX1RBR19lbnVtZXJhdG9yOgorKyAgICBjYXNlIERXX1RBR19zdWJw cm9ncmFtOgorKyAgICBjYXNlIERXX1RBR192YXJpYWJsZToKKysgICAgICByZXR1cm4gMTsKKysg ICAgY2FzZSBEV19UQUdfbWVtYmVyOgorKyAgICAgIC8qIFRoZSBvbmx5IHRpbWUgd2Ugd2lsbCBl bmNvdW50ZXIgbWVtYmVyIHZhcmlhYmxlcyBpbiB0aGlzCisrCSBmdW5jdGlvbiBpcyB3aGVuIHdl IGFyZSBjcmVhdGluZyBhICJsaW5rYWdlIiBuYW1lIGZvciB0aGVtOworKwkgdGhlcmVmb3JlIHRo ZXkgbXVzdCBiZSBzdGF0aWMgbWVtYmVycywgc28gdGhleSBkbyBuZWVkIGEKKysJIGNsYXNzIHBy ZWZpeC4gICovCisgICAgICAgcmV0dXJuIDE7CisgICAgIGRlZmF1bHQ6CisgICAgICAgcmV0dXJu IDA7CitAQCAtMjI5MCwxMSArMjQ4MiwxMSBAQCBndWVzc19zdHJ1Y3R1cmVfbmFtZSAoc3RydWN0 IHBhcnRpYWxfZGllX2luZm8gKnN0cnVjdF9wZGksCisgCisgICAgICAgd2hpbGUgKGNoaWxkX3Bk aSAhPSBOVUxMKQorIAl7CistCSAgaWYgKGNoaWxkX3BkaS0+dGFnID09IERXX1RBR19zdWJwcm9n cmFtKQorKwkgIGlmIChjaGlsZF9wZGktPnRhZyA9PSBEV19UQUdfc3VicHJvZ3JhbSAmJiBjaGls ZF9wZGktPmxpbmthZ2VfbmFtZSkKKyAJICAgIHsKKyAJICAgICAgY2hhciAqYWN0dWFsX2NsYXNz X25hbWUKKyAJCT0gbGFuZ3VhZ2VfY2xhc3NfbmFtZV9mcm9tX3BoeXNuYW1lIChjdS0+bGFuZ3Vh Z2VfZGVmbiwKKy0JCQkJCQkgICAgIGNoaWxkX3BkaS0+bmFtZSk7CisrCQkJCQkJICAgICBjaGls ZF9wZGktPmxpbmthZ2VfbmFtZSk7CisgCSAgICAgIGlmIChhY3R1YWxfY2xhc3NfbmFtZSAhPSBO VUxMKQorIAkJeworIAkJICBzdHJ1Y3RfcGRpLT5uYW1lCitAQCAtMjc0MSw3ICsyOTMzLDYgQEAg cHJvY2Vzc19mdWxsX2NvbXBfdW5pdCAoc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1 KQorICAgQ09SRV9BRERSIGxvd3BjLCBoaWdocGM7CisgICBzdHJ1Y3Qgc3ltdGFiICpzeW10YWI7 CisgICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKKy0gIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7 CisgICBDT1JFX0FERFIgYmFzZWFkZHI7CisgCisgICBiYXNlYWRkciA9IEFOT0ZGU0VUIChvYmpm aWxlLT5zZWN0aW9uX29mZnNldHMsIFNFQ1RfT0ZGX1RFWFQgKG9iamZpbGUpKTsKK0BAIC0yNzUx LDMwICsyOTQyLDcgQEAgcHJvY2Vzc19mdWxsX2NvbXBfdW5pdCAoc3RydWN0IGR3YXJmMl9wZXJf Y3VfZGF0YSAqcGVyX2N1KQorIAorICAgY3UtPmxpc3RfaW5fc2NvcGUgPSAmZmlsZV9zeW1ib2xz OworIAorLSAgLyogRmluZCB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBjb21waWxhdGlvbiB1bml0 IGZvciByYW5nZSBsaXN0cyBhbmQKKy0gICAgIGxvY2F0aW9uIGxpc3RzLiAgSXQgd2lsbCBub3Jt YWxseSBiZSBzcGVjaWZpZWQgYnkgRFdfQVRfbG93X3BjLgorLSAgICAgSW4gRFdBUkYtMyBkcmFm dCA0LCB0aGUgYmFzZSBhZGRyZXNzIGNvdWxkIGJlIG92ZXJyaWRkZW4gYnkKKy0gICAgIERXX0FU X2VudHJ5X3BjLiAgSXQncyBiZWVuIHJlbW92ZWQsIGJ1dCBHQ0Mgc3RpbGwgdXNlcyB0aGlzIGZv cgorLSAgICAgY29tcGlsYXRpb24gdW5pdHMgd2l0aCBkaXNjb250aW51b3VzIHJhbmdlcy4gICov CistCistICBjdS0+YmFzZV9rbm93biA9IDA7CistICBjdS0+YmFzZV9hZGRyZXNzID0gMDsKKy0K Ky0gIGF0dHIgPSBkd2FyZjJfYXR0ciAoY3UtPmRpZXMsIERXX0FUX2VudHJ5X3BjLCBjdSk7Cist ICBpZiAoYXR0cikKKy0gICAgeworLSAgICAgIGN1LT5iYXNlX2FkZHJlc3MgPSBEV19BRERSIChh dHRyKTsKKy0gICAgICBjdS0+YmFzZV9rbm93biA9IDE7CistICAgIH0KKy0gIGVsc2UKKy0gICAg eworLSAgICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoY3UtPmRpZXMsIERXX0FUX2xvd19wYywgY3Up OworLSAgICAgIGlmIChhdHRyKQorLQl7CistCSAgY3UtPmJhc2VfYWRkcmVzcyA9IERXX0FERFIg KGF0dHIpOworLQkgIGN1LT5iYXNlX2tub3duID0gMTsKKy0JfQorLSAgICB9CisrICBkd2FyZjJf ZmluZF9iYXNlX2FkZHJlc3MgKGN1LT5kaWVzLCBjdSk7CisgCisgICAvKiBEbyBsaW5lIG51bWJl ciBkZWNvZGluZyBpbiByZWFkX2ZpbGVfc2NvcGUgKCkgKi8KKyAgIHByb2Nlc3NfZGllIChjdS0+ ZGllcywgY3UpOworQEAgLTI4MDUsNiArMjk3Myw3IEBAIHByb2Nlc3NfZnVsbF9jb21wX3VuaXQg KHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnBlcl9jdSkKKyBzdGF0aWMgdm9pZAorIHByb2Nl c3NfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgewor KworICAgc3dpdGNoIChkaWUtPnRhZykKKyAgICAgeworICAgICBjYXNlIERXX1RBR19wYWRkaW5n OgorQEAgLTI4NDksNiArMzAxOCw3IEBAIHByb2Nlc3NfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCiAgICAgIGNhc2UgRFdfVEFHX2Jhc2VfdHlwZToK ICAgICAgY2FzZSBEV19UQUdfc3VicmFuZ2VfdHlwZToKQEAgLTEwMDI4LDcgKzExNTA5LDE2NiBA QCBpbmRleCA1NTg2OGRhLi44YTM5YmNmIDEwMDY0NAogICAgICAgIC8qIEFkZCBhIHR5cGVkZWYg c3ltYm9sIGZvciB0aGUgdHlwZSBkZWZpbml0aW9uLCBpZiBpdCBoYXMgYQogICAgICAgICAgIERX X0FUX25hbWUuICAqLwogICAgICAgIG5ld19zeW1ib2wgKGRpZSwgcmVhZF90eXBlX2RpZSAoZGll LCBjdSksIGN1KTsKLUBAIC0zMDc2LDYgKzMyMDksMTUgQEAgYWRkX3RvX2N1X2Z1bmNfbGlzdCAo Y29uc3QgY2hhciAqbmFtZSwgQ09SRV9BRERSIGxvd3BjLCBDT1JFX0FERFIgaGlnaHBjLAorQEAg LTI4NjcsMTQgKzMwMzcsMTIgQEAgcHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyAgICAgICBicmVhazsKKyAgICAgY2FzZSBEV19UQUdfaW1w b3J0ZWRfZGVjbGFyYXRpb246CisgICAgIGNhc2UgRFdfVEFHX2ltcG9ydGVkX21vZHVsZToKKy0g ICAgICAvKiBGSVhNRTogY2FybHRvbi8yMDAyLTEwLTE2OiBFdmVudHVhbGx5LCB3ZSBzaG91bGQg dXNlIHRoZQorLQkgaW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoZXNlLiAgRFdfVEFHX2ltcG9y dGVkX2RlY2xhcmF0aW9uCistCSBkaWVzIHNob3VsZG4ndCBoYXZlIGNoaWxkcmVuOyBEV19UQUdf aW1wb3J0ZWRfbW9kdWxlIGRpZXMKKy0JIHNob3VsZG4ndCBpbiB0aGUgQysrIGNhc2UsIGJ1dCBj b25jZWl2YWJseSBjb3VsZCBpbiB0aGUKKy0JIEZvcnRyYW4gY2FzZS4gICovCisgICAgICAgcHJv Y2Vzc2luZ19oYXNfbmFtZXNwYWNlX2luZm8gPSAxOworLSAgICAgIGNvbXBsYWludCAoJnN5bWZp bGVfY29tcGxhaW50cywgXygidW5zdXBwb3J0ZWQgdGFnOiAnJXMnIiksCistCQkgZHdhcmZfdGFn X25hbWUgKGRpZS0+dGFnKSk7CisrICAgICAgaWYgKGRpZS0+Y2hpbGQgIT0gTlVMTCAmJiAoZGll LT50YWcgPT0gRFdfVEFHX2ltcG9ydGVkX2RlY2xhcmF0aW9uCisrCQkJCSB8fCBjdS0+bGFuZ3Vh Z2UgIT0gbGFuZ3VhZ2VfZm9ydHJhbikpCisrCWNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50 cywgXygiVGFnICclcycgaGFzIHVuZXhwZWN0ZWQgY2hpbGRyZW4iKSwKKysJCSAgIGR3YXJmX3Rh Z19uYW1lIChkaWUtPnRhZykpOworKyAgICAgIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAoZGllLCBj dSk7CisgICAgICAgYnJlYWs7CisgICAgIGRlZmF1bHQ6CisgICAgICAgbmV3X3N5bWJvbCAoZGll LCBOVUxMLCBjdSk7CitAQCAtMjkwNCwyMiArMzA3MiwxMzAgQEAgZHdhcmYyX2Z1bGxfbmFtZSAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorICAgICByZXR1cm4g bmFtZTsKKyAKKyAgIC8qIElmIG5vIHByZWZpeCBpcyBuZWNlc3NhcnkgZm9yIHRoaXMgdHlwZSBv ZiBESUUsIHJldHVybiB0aGUKKy0gICAgIHVucXVhbGlmaWVkIG5hbWUuICBUaGUgb3RoZXIgdGhy ZWUgdGFncyBsaXN0ZWQgY291bGQgYmUgaGFuZGxlZAorLSAgICAgaW4gcGRpX25lZWRzX25hbWVz cGFjZSwgYnV0IHRoYXQgcmVxdWlyZXMgYnJvYWRlciBjaGFuZ2VzLiAgKi8KKy0gIGlmICghcGRp X25lZWRzX25hbWVzcGFjZSAoZGllLT50YWcpCistICAgICAgJiYgZGllLT50YWcgIT0gRFdfVEFH X3N1YnByb2dyYW0KKy0gICAgICAmJiBkaWUtPnRhZyAhPSBEV19UQUdfdmFyaWFibGUKKy0gICAg ICAmJiBkaWUtPnRhZyAhPSBEV19UQUdfbWVtYmVyKQorKyAgICAgdW5xdWFsaWZpZWQgbmFtZS4g ICovCisrICBpZiAoIXBkaV9uZWVkc19uYW1lc3BhY2UgKGRpZS0+dGFnKSkKKyAgICAgcmV0dXJu IG5hbWU7CisgCisgICBwcmVmaXggPSBkZXRlcm1pbmVfcHJlZml4IChkaWUsIGN1KTsKKyAgIGlm ICgqcHJlZml4ICE9ICdcMCcpCistICAgIG5hbWUgPSB0eXBlbmFtZV9jb25jYXQgKCZjdS0+b2Jq ZmlsZS0+b2JqZmlsZV9vYnN0YWNrLCBwcmVmaXgsCistCQkJICAgIG5hbWUsIGN1KTsKKysgICAg eworKyAgICAgIGNoYXIgKnByZWZpeGVkX25hbWUgPSB0eXBlbmFtZV9jb25jYXQgKE5VTEwsIHBy ZWZpeCwgbmFtZSwgY3UpOworKyAgICAgIGJ1ZiA9IG1lbV9maWxlb3BlbiAoKTsKKysgICAgICBm cHV0c191bmZpbHRlcmVkIChwcmVmaXhlZF9uYW1lLCBidWYpOworKyAgICAgIHhmcmVlIChwcmVm aXhlZF9uYW1lKTsKKysgICAgfQorKworKyAgaWYgKGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9j cGx1cyAmJiBkaWUtPnRhZyA9PSBEV19UQUdfc3VicHJvZ3JhbSkKKysgICAgeworKyAgICAgIHN0 cnVjdCB0eXBlICp0eXBlID0gcmVhZF90eXBlX2RpZSAoZGllLCBjdSk7CisrCisrICAgICAgaWYg KGJ1ZiA9PSBOVUxMKQorKwl7CisrCSAgYnVmID0gbWVtX2ZpbGVvcGVuICgpOworKwkgIGZwdXRz X3VuZmlsdGVyZWQgKG5hbWUsIGJ1Zik7CisrCX0KKysKKysgICAgICBjX3R5cGVfcHJpbnRfYXJn cyAodHlwZSwgYnVmLCAwKTsKKysgICAgfQorKworKyAgaWYgKGJ1ZiAhPSBOVUxMKQorKyAgICB7 CisrICAgICAgbG9uZyBsZW5ndGg7CisrICAgICAgbmFtZSA9IHVpX2ZpbGVfb2JzYXZlc3RyaW5n IChidWYsICZjdS0+b2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLAorKwkJCQkgICAmbGVuZ3RoKTsK KysgICAgICB1aV9maWxlX2RlbGV0ZSAoYnVmKTsKKysgICAgfQorIAorICAgcmV0dXJuIG5hbWU7 CisgfQorIAorKy8qIHJlYWQgdGhlIGdpdmVuIGRpZSdzIGRlY2xfbGluZSBudW1iZXIuIFJldHVy biAtMSBpZiBpbiBjYXNlIG9mIGFuIGVycm9yICovCisrc3RhdGljIGNvbnN0IGludCBkd2FyZjJf cmVhZF9kZWNsX2xpbmUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSl7CisrICBzdHJ1Y3QgYXR0cmlidXRlICpsaW5lX2F0dHI7CisrCisrICBsaW5lX2F0dHIgPSBk d2FyZjJfYXR0ciAoZGllLCBEV19BVF9kZWNsX2xpbmUsIGN1KTsKKysgIGlmIChsaW5lX2F0dHIp eworKyAgICByZXR1cm4gIERXX1VOU05EIChsaW5lX2F0dHIpOworKyAgfQorKworKyAgcmV0dXJu IC0xOworK30KKysKKysvKiBSZWFkIHRoZSBpbXBvcnQgc3RhdGVtZW50IHNwZWNpZmllZCBieSB0 aGUgZ2l2ZW4gZGllIGFuZCByZWNvcmQgaXQuICAqLyAKKysKKytzdGF0aWMgdm9pZAorK3JlYWRf aW1wb3J0X3N0YXRlbWVudCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQorK3sKKysgIHN0cnVjdCBhdHRyaWJ1dGUgKmltcG9ydF9hdHRyOworKyAgc3RydWN0IGRp ZV9pbmZvICppbXBvcnRlZF9kaWU7CisrICBjb25zdCBjaGFyICppbXBvcnRlZF9uYW1lOworKyAg Y29uc3QgY2hhciAqaW1wb3J0ZWRfbmFtZV9wcmVmaXg7CisrICBjaGFyICpjYW5vbmljYWxfbmFt ZTsKKysgIGNvbnN0IGNoYXIgKmltcG9ydF9hbGlhczsKKysgIGNvbnN0IGNoYXIgKmltcG9ydGVk X2RlY2xhcmF0aW9uID0gIiI7CisrICBjb25zdCBjaGFyICppbXBvcnRfcHJlZml4OworKyAgCisr ICBpbnQgbGluZV9udW1iZXIgPSAtMTsKKysgIAorKyAgaW50IGlzX2Fub255bW91cyA9IDA7Cisr ICAKKysgIGltcG9ydF9hdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfaW1wb3J0LCBjdSk7 CisrICBpZiAoaW1wb3J0X2F0dHIgPT0gTlVMTCkKKysgICAgeworKyAgICAgIGNvbXBsYWludCAo JnN5bWZpbGVfY29tcGxhaW50cywgXygiVGFnICclcycgaGFzIG5vIERXX0FUX2ltcG9ydCIpLAor KwkJIGR3YXJmX3RhZ19uYW1lIChkaWUtPnRhZykpOworKyAgICAgIHJldHVybjsKKysgICAgfQor KworKyAgaW1wb3J0ZWRfZGllID0gZm9sbG93X2RpZV9yZWYgKGRpZSwgaW1wb3J0X2F0dHIsICZj dSk7CisrICBpbXBvcnRlZF9uYW1lID0gbmFtZXNwYWNlX25hbWUgKGltcG9ydGVkX2RpZSwgJmlz X2Fub255bW91cywgY3UpOworKyAgaWYgKGltcG9ydGVkX25hbWUgPT0gTlVMTCkKKysgICAgewor KyAgICAgIC8qIEMrKyBpbXBvcnRzIGZyb20gc3RkOjogRFdfVEFHX2Jhc2VfdHlwZSB3aXRoIG5v IERXX0FUX25hbWUgLSB3aHk/ICAqLworKyAgICAgIHJldHVybjsKKysgICAgfQorKworKyAgLyog RmlndXJlIG91dCB0aGUgbG9jYWwgbmFtZSBhZnRlciBpbXBvcnQuICAqLworKyAgaW1wb3J0X2Fs aWFzID0gZHdhcmYyX25hbWUoZGllLCBjdSk7CisrICBpZihpbXBvcnRfYWxpYXMgPT0gTlVMTCl7 CisrICAgIGltcG9ydF9hbGlhcyA9ICIiOworKyAgfQorKyAgCisrICAvKiBEZXRlcm1pbmUgdGhl IGxpbmUgbnVtYmVyIGF0IHdoaWNoIHRoZSBpbXBvcnQgd2FzIG1hZGUgKi8KKysgIGxpbmVfbnVt YmVyID0gZHdhcmYyX3JlYWRfZGVjbF9saW5lKGRpZSwgY3UpOworKyAgCisrICAvKiBGaWd1cmUg b3V0IHdoZXJlIHRoZSBzdGF0ZW1lbnQgaXMgYmVpbmcgaW1wb3J0ZWQgdG8gKi8KKysgIGltcG9y dF9wcmVmaXggPSBkZXRlcm1pbmVfcHJlZml4IChkaWUsIGN1KTsKKysKKysgIC8qCisrICAgRmln dXJlIG91dCB3aGF0IHRoZSBzY29wZSBvZiB0aGUgaW1wb3J0ZWQgZGllIGlzIGFuZCBwcmVwZW5k IGl0CisrICAgdG8gdGhlIG5hbWUgb2YgdGhlIGltcG9ydGVkIGRpZQorKyAgICovCisrICBpbXBv cnRlZF9uYW1lX3ByZWZpeCA9IGRldGVybWluZV9wcmVmaXggKGltcG9ydGVkX2RpZSwgY3UpOwor KyAgCisrICBpZihpbXBvcnRlZF9kaWUtPnRhZyAhPSBEV19UQUdfbmFtZXNwYWNlKXsKKysgICAg aW1wb3J0ZWRfZGVjbGFyYXRpb24gPSBpbXBvcnRlZF9uYW1lOworKyAgICBjYW5vbmljYWxfbmFt ZSA9IChjaGFyKilpbXBvcnRlZF9uYW1lX3ByZWZpeDsKKysgIH1lbHNleworKyAgICBpZihzdHJs ZW4gKGltcG9ydGVkX25hbWVfcHJlZml4KSA+IDApeworKyAgICAgIGNhbm9uaWNhbF9uYW1lID0g YWxsb2NhIChzdHJsZW4gKGltcG9ydGVkX25hbWVfcHJlZml4KSArIDIgKyBzdHJsZW4gKGltcG9y dGVkX25hbWUpICsgMSk7CisrICAgICAgc3RyY3B5IChjYW5vbmljYWxfbmFtZSwgaW1wb3J0ZWRf bmFtZV9wcmVmaXgpOworKyAgICAgIHN0cmNhdCAoY2Fub25pY2FsX25hbWUsICI6OiIpOworKyAg ICAgIHN0cmNhdCAoY2Fub25pY2FsX25hbWUsIGltcG9ydGVkX25hbWUpOworKyAgICB9ZWxzZXsK KysgICAgICBjYW5vbmljYWxfbmFtZSA9IGFsbG9jYSAoc3RybGVuIChpbXBvcnRlZF9uYW1lKSAr IDEpOworKyAgICAgIHN0cmNweSAoY2Fub25pY2FsX25hbWUsIGltcG9ydGVkX25hbWUpOworKyAg ICB9CisrICB9CisrICAKKysgIHVzaW5nX2RpcmVjdGl2ZXMgPSBjcF9hZGRfdXNpbmcgKGltcG9y dF9wcmVmaXgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5vbmljYWxf bmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcG9ydF9hbGlhcywK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcG9ydGVkX2RlY2xhcmF0aW9u LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZV9udW1iZXIsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2luZ19kaXJlY3RpdmVzKTsKKyt9Cisr Cisgc3RhdGljIHZvaWQKKyBpbml0aWFsaXplX2N1X2Z1bmNfbGlzdCAoc3RydWN0IGR3YXJmMl9j dSAqY3UpCisgeworQEAgLTMwNzYsNiArMzM1MiwxMDMgQEAgYWRkX3RvX2N1X2Z1bmNfbGlzdCAo Y29uc3QgY2hhciAqbmFtZSwgQ09SRV9BRERSIGxvd3BjLCBDT1JFX0FERFIgaGlnaHBjLAogICAg Y3UtPmxhc3RfZm4gPSB0aGlzZm47CiAgfQogIApAQCAtMTAwNDEsMTggKzExNjgxLDEyOSBAQCBp bmRleCA1NTg2OGRhLi44YTM5YmNmIDEwMDY0NAogKyAgcmV0dXJuIChhID4gYikgLSAoYiA+IGEp OwogK30KICsKKytzdGF0aWMgdm9pZCBleHBsb3JlX2Fic3RyYWN0X29yaWdpbihzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UsIHVuc2lnbmVkKiBkaWVfY2hpbGRyZW5f cCl7CisrICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOworKyAgdW5zaWduZWQgZGllX2NoaWxkcmVu ID0gKmRpZV9jaGlsZHJlbl9wOworKyAgc3RydWN0IGRpZV9pbmZvICpjaGlsZF9kaWU7CisrICAK KysgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9hYnN0cmFjdF9vcmlnaW4sIGN1KTsK KysgIAorKyAgLyogR0NDIGN1cnJlbnRseSB1c2VzIERXX0FUX3NwZWNpZmljYXRpb24gdG8gaW5k aWNhdGUgZGllIGluaGVyaXRlbmNlCisrICAgICBpbiB0aGUgY2FzZSBvZiBpbXBvcnQgc3RhdGVt ZW50cy4gVGhlIGZvbGxvd2luZyBpcyB0byBhY2NvbW1vZGF0ZSB0aGF0ICovCisrICBpZighYXR0 cil7CisrICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9zcGVjaWZpY2F0aW9uLCBj dSk7CisrICB9CisrICAKKysgIGlmIChhdHRyKQorKyAgICB7CisrICAgICAgLyogRm9yIHRoZSBs aXN0IG9mIENISUxEX0RJRXMuICAqLworKyAgICAgIHVuc2lnbmVkICpvZmZzZXRzOworKyAgICAg IHVuc2lnbmVkICpvZmZzZXRzX2VuZCwgKm9mZnNldHA7CisrICAgICAgc3RydWN0IGRpZV9pbmZv ICpvcmlnaW5fZGllLCAqb3JpZ2luX2NoaWxkX2RpZTsKKysgICAgICBzdHJ1Y3QgY2xlYW51cCAq Y2xlYW51cHM7CisrCisrICAgICAgb3JpZ2luX2RpZSA9IGZvbGxvd19kaWVfcmVmIChkaWUsIGF0 dHIsICZjdSk7CisrICAgICAgaWYgKGRpZS0+dGFnICE9IG9yaWdpbl9kaWUtPnRhZykKKysgICAg ICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKKysgICAgICAgICAgICAgICAgICAg XygiRElFIDB4JXggYW5kIGl0cyBhYnN0cmFjdCBvcmlnaW4gMHgleCBoYXZlIGRpZmZlcmVudCAi CisrICAgICAgICAgICAgICAgICAgICAgInRhZ3MiKSwKKysgICAgICAgICAgICAgICAgICAgZGll LT5vZmZzZXQsIG9yaWdpbl9kaWUtPm9mZnNldCk7CisrCisrICAgICAgb2Zmc2V0cyA9IHhtYWxs b2MgKHNpemVvZiAoKm9mZnNldHMpICogZGllX2NoaWxkcmVuKTsKKysgICAgICBjbGVhbnVwcyA9 IG1ha2VfY2xlYW51cCAoeGZyZWUsIG9mZnNldHMpOworKworKyAgICAgIG9mZnNldHNfZW5kID0g b2Zmc2V0czsKKysgICAgICBjaGlsZF9kaWUgPSBkaWUtPmNoaWxkOworKyAgICAgIHdoaWxlIChj aGlsZF9kaWUgJiYgY2hpbGRfZGllLT50YWcpCisrICAgICAgICB7CisrICAgICAgICAgIGF0dHIg PSBkd2FyZjJfYXR0ciAoY2hpbGRfZGllLCBEV19BVF9hYnN0cmFjdF9vcmlnaW4sIGN1KTsKKysg ICAgICAgICAgaWYgKCFhdHRyKQorKyAgICAgICAgICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29t cGxhaW50cywKKysgICAgICAgICAgICAgICAgICAgICAgIF8oIkNoaWxkIERJRSAweCV4IG9mIERJ RSAweCV4IGhhcyBtaXNzaW5nICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgIkRXX0FUX2Fi c3RyYWN0X29yaWdpbiIpLAorKyAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRfZGllLT5vZmZz ZXQsIGRpZS0+b2Zmc2V0KTsKKysgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgIHsKKysgICAg ICAgICAgICAgIHN0cnVjdCBkaWVfaW5mbyAqY2hpbGRfb3JpZ2luX2RpZTsKKysKKysgICAgICAg ICAgICAgIGNoaWxkX29yaWdpbl9kaWUgPSBmb2xsb3dfZGllX3JlZiAoY2hpbGRfZGllLCBhdHRy LCAmY3UpOworKyAgICAgICAgICAgICAgaWYgKGNoaWxkX2RpZS0+dGFnICE9IGNoaWxkX29yaWdp bl9kaWUtPnRhZykKKysgICAgICAgICAgICAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFp bnRzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkNoaWxkIERJRSAweCV4IGFuZCBp dHMgYWJzdHJhY3Qgb3JpZ2luIDB4JXggaGF2ZSAiCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiZGlmZmVyZW50IHRhZ3MiKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGls ZF9kaWUtPm9mZnNldCwgY2hpbGRfb3JpZ2luX2RpZS0+b2Zmc2V0KTsKKysgICAgICAgICAgICAg ICpvZmZzZXRzX2VuZCsrID0gY2hpbGRfb3JpZ2luX2RpZS0+b2Zmc2V0OworKyAgICAgICAgICAg IH0KKysgICAgICAgICAgY2hpbGRfZGllID0gc2libGluZ19kaWUgKGNoaWxkX2RpZSk7CisrICAg ICAgICB9CisrICAgICAgcXNvcnQgKG9mZnNldHMsIG9mZnNldHNfZW5kIC0gb2Zmc2V0cywgc2l6 ZW9mICgqb2Zmc2V0cyksCisrICAgICAgICAgICAgIHVuc2lnbmVkX2ludF9jb21wYXIpOworKyAg ICAgIC8qIERpc2FibGVkIGFzIGV4Y2Vzc2l2ZWx5IGV4cGVuc2l2ZSAtIGNoZWNrIGlmIHdlIG1h eSBldmVyIGNvbXBsYWluLiAgKi8KKysgICAgICBpZiAoMCkKKysgICAgICAgIHsKKysgICAgICAg ICAgZm9yIChvZmZzZXRwID0gb2Zmc2V0cyArIDE7IG9mZnNldHAgPCBvZmZzZXRzX2VuZDsgb2Zm c2V0cCsrKQorKyAgICAgICAgICAgIGlmIChvZmZzZXRwWy0xXSA9PSAqb2Zmc2V0cCkKKysgICAg ICAgICAgICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKKysgICAgICAgICAgICAg ICAgICAgICAgICAgXygiQ2hpbGQgRElFcyBvZiBESUUgMHgleCBkdXBsaWNpdGx5IGFic3RyYWN0 LW9yaWdpbiAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZmVyZW5jZWQgRElFIDB4 JXgiKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgZGllLT5vZmZzZXQsICpvZmZzZXRwKTsK KysgICAgICAgIH0KKysKKysgICAgICBvZmZzZXRwID0gb2Zmc2V0czsKKysgICAgICBvcmlnaW5f Y2hpbGRfZGllID0gb3JpZ2luX2RpZS0+Y2hpbGQ7CisrICAgICAgd2hpbGUgKG9yaWdpbl9jaGls ZF9kaWUgJiYgb3JpZ2luX2NoaWxkX2RpZS0+dGFnKQorKyAgICAgICAgeworKyAgICAgICAgICAv KiBJcyBvcmlnaW5fY2hpbGRfZGllIHJlZmVyZW5jZWQgYnkgYW55IG9mIHRoZSBESUUgY2hpbGRy ZW4/ICAqLworKyAgICAgICAgICB3aGlsZSAob2Zmc2V0cCA8IG9mZnNldHNfZW5kICYmICpvZmZz ZXRwIDwgb3JpZ2luX2NoaWxkX2RpZS0+b2Zmc2V0KQorKyAgICAgICAgICAgIG9mZnNldHArKzsK KysgICAgICAgICAgaWYgKG9mZnNldHAgPj0gb2Zmc2V0c19lbmQgfHwgKm9mZnNldHAgPiBvcmln aW5fY2hpbGRfZGllLT5vZmZzZXQpCisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgLyog Rm91bmQgdGhhdCBvcmlnaW5fY2hpbGRfZGllIGlzIHJlYWxseSBub3QgcmVmZXJlbmNlZC4gICov CisrICAgICAgICAgICAgICBwcm9jZXNzX2RpZSAob3JpZ2luX2NoaWxkX2RpZSwgY3UpOworKyAg ICAgICAgICAgIH0KKysgICAgICAgICAgb3JpZ2luX2NoaWxkX2RpZSA9IHNpYmxpbmdfZGllIChv cmlnaW5fY2hpbGRfZGllKTsKKysgICAgICAgIH0KKysKKysgICAgICBkb19jbGVhbnVwcyAoY2xl YW51cHMpOworKyAgICB9CisrICAKKyt9CisrCiAgc3RhdGljIHZvaWQKICByZWFkX2Z1bmNfc2Nv cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7Ci1AQCAt MzA4OCw2ICszMjMwLDcgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzA4OCwxNiArMzQ2MSwyNyBAQCByZWFkX2Z1bmNf c2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIGNo YXIgKm5hbWU7CiAgICBDT1JFX0FERFIgYmFzZWFkZHI7CiAgICBzdHJ1Y3QgYmxvY2sgKmJsb2Nr OwotKyAgdW5zaWduZWQgZGllX2NoaWxkcmVuOworKyAgdW5zaWduZWQgZGllX2NoaWxkcmVuID0g MDsKICAKICAgIGJhc2VhZGRyID0gQU5PRkZTRVQgKG9iamZpbGUtPnNlY3Rpb25fb2Zmc2V0cywg U0VDVF9PRkZfVEVYVCAob2JqZmlsZSkpOwogIAotQEAgLTMxMjQsMTQgKzMyNjcsODcgQEAgcmVh ZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CistICBuYW1lID0gZHdhcmYyX2xpbmthZ2VfbmFtZSAoZGllLCBjdSk7CisrICBuYW1lID0gZHdh cmYyX25hbWUgKGRpZSwgY3UpOworIAorICAgLyogSWdub3JlIGZ1bmN0aW9ucyB3aXRoIG1pc3Np bmcgb3IgZW1wdHkgbmFtZXMgYW5kIGZ1bmN0aW9ucyB3aXRoCisgICAgICBtaXNzaW5nIG9yIGlu dmFsaWQgbG93IGFuZCBoaWdoIHBjIGF0dHJpYnV0ZXMuICAqLworLSAgaWYgKG5hbWUgPT0gTlVM TCB8fCAhZHdhcmYyX2dldF9wY19ib3VuZHMgKGRpZSwgJmxvd3BjLCAmaGlnaHBjLCBjdSkpCisr ICBpZiAobmFtZSA9PSBOVUxMIHx8ICFkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAmbG93cGMs ICZoaWdocGMsIGN1LCBOVUxMKSl7CisrICAgIC8qIGV4cGxvcmUgYWJzdHJhY3Qgb3JpZ2lucyBp ZiBwcmVzZW50LiBUaGV5IG1pZ2h0IGNvbnRhaW4gdXNlZnVsIGluZm9ybWF0aW9uCisrICAgICBz dWNoIGFzIGltcG9ydCBzdGF0ZW1lbnRzLiAqLworKyAgICBjaGlsZF9kaWUgPSBkaWUtPmNoaWxk OworKyAgICB3aGlsZSAoY2hpbGRfZGllICYmIGNoaWxkX2RpZS0+dGFnKQorKyAgICAgIHsKKysJ Y2hpbGRfZGllID0gc2libGluZ19kaWUgKGNoaWxkX2RpZSk7CisrCWRpZV9jaGlsZHJlbisrOwor KyAgICAgIH0KKysgICAgZXhwbG9yZV9hYnN0cmFjdF9vcmlnaW4oZGllLCBjdSwgJmRpZV9jaGls ZHJlbik7CisgICAgIHJldHVybjsKKy0KKysgIH0KKysgIAorICAgbG93cGMgKz0gYmFzZWFkZHI7 CisgICBoaWdocGMgKz0gYmFzZWFkZHI7CisgCitAQCAtMzEyNCwxNiArMzUwOCw5MSBAQCByZWFk X2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK ICAKICAgIGN1LT5saXN0X2luX3Njb3BlID0gJmxvY2FsX3N5bWJvbHM7CiAgCkBAIC0xMDA2MCw3 ICsxMTgxMSw3IEBAIGluZGV4IDU1ODY4ZGEuLjhhMzliY2YgMTAwNjQ0CiArICBjaGlsZF9kaWUg PSBkaWUtPmNoaWxkOwogKyAgZGllX2NoaWxkcmVuID0gMDsKICsgIHdoaWxlIChjaGlsZF9kaWUg JiYgY2hpbGRfZGllLT50YWcpCi0gICAgIHsKKysgICAgewogKyAgICAgIHByb2Nlc3NfZGllIChj aGlsZF9kaWUsIGN1KTsKICsgICAgICBjaGlsZF9kaWUgPSBzaWJsaW5nX2RpZSAoY2hpbGRfZGll KTsKICsgICAgICBkaWVfY2hpbGRyZW4rKzsKQEAgLTEwMDY4LDcgKzExODE5LDcgQEAgaW5kZXgg NTU4NjhkYS4uOGEzOWJjZiAxMDA2NDQKICsKICsgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBE V19BVF9hYnN0cmFjdF9vcmlnaW4sIGN1KTsKICsgIGlmIChhdHRyKQotKyAgICB7CisgICAgIHsK ICsgICAgICAvKiBGb3IgdGhlIGxpc3Qgb2YgQ0hJTERfRElFcy4gICovCiArICAgICAgdW5zaWdu ZWQgKm9mZnNldHM7CiArICAgICAgdW5zaWduZWQgKm9mZnNldHNfZW5kLCAqb2Zmc2V0cDsKQEAg LTEwMTQxLDggKzExODkyLDEwNiBAQCBpbmRleCA1NTg2OGRhLi44YTM5YmNmIDEwMDY0NAogKyAg ICAgIGRvX2NsZWFudXBzIChjbGVhbnVwcyk7CiAgICAgIH0KICAKKysgIGV4cGxvcmVfYWJzdHJh Y3Rfb3JpZ2luKGRpZSwgY3UsICZkaWVfY2hpbGRyZW4pOworKwogICAgbmV3ID0gcG9wX2NvbnRl eHQgKCk7Ci1AQCAtMzkyNiw3ICs0MTQyLDcgQEAgZHdhcmYyX2FkZF9tZW1iZXJfZm4gKHN0cnVj dCBmaWVsZF9pbmZvICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAorICAgLyogTWFrZSBhIGJs b2NrIGZvciB0aGUgbG9jYWwgc3ltYm9scyB3aXRoaW4uICAqLworICAgYmxvY2sgPSBmaW5pc2hf YmxvY2sgKG5ldy0+bmFtZSwgJmxvY2FsX3N5bWJvbHMsIG5ldy0+b2xkX2Jsb2NrcywKK0BAIC0z MTU0LDYgKzM2MTMsNyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyAgICAgIGJhY2sgdG8gYnVpbGRpbmcgYSBjb250YWluaW5n IGJsb2NrJ3Mgc3ltYm9sIGxpc3RzLiAgKi8KKyAgIGxvY2FsX3N5bWJvbHMgPSBuZXctPmxvY2Fs czsKKyAgIHBhcmFtX3N5bWJvbHMgPSBuZXctPnBhcmFtczsKKysgIHVzaW5nX2RpcmVjdGl2ZXMg PSBuZXctPnVzaW5nX2RpcmVjdGl2ZXM7CisgCisgICAvKiBJZiB3ZSd2ZSBmaW5pc2hlZCBwcm9j ZXNzaW5nIGEgdG9wLWxldmVsIGZ1bmN0aW9uLCBzdWJzZXF1ZW50CisgICAgICBzeW1ib2xzIGdv IGluIHRoZSBmaWxlIHN5bWJvbCBsaXN0LiAgKi8KK0BAIC0zMTgwLDcgKzM2NDAsNyBAQCByZWFk X2xleGljYWxfYmxvY2tfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKKyAgICAgIGFzIG11bHRpcGxlIGxleGljYWwgYmxvY2tzPyAgSGFuZGxpbmcgY2hp bGRyZW4gaW4gYSBzYW5lIHdheSB3b3VsZAorICAgICAgYmUgbmFzdHkuICBNaWdodCBiZSBlYXNp ZXIgdG8gcHJvcGVybHkgZXh0ZW5kIGdlbmVyaWMgYmxvY2tzIHRvIAorICAgICAgZGVzY3JpYmUg cmFuZ2VzLiAgKi8KKy0gIGlmICghZHdhcmYyX2dldF9wY19ib3VuZHMgKGRpZSwgJmxvd3BjLCAm aGlnaHBjLCBjdSkpCisrICBpZiAoIWR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZsb3dwYywg JmhpZ2hwYywgY3UsIE5VTEwpKQorICAgICByZXR1cm47CisgICBsb3dwYyArPSBiYXNlYWRkcjsK KyAgIGhpZ2hwYyArPSBiYXNlYWRkcjsKK0BAIC0zMjE2LDYgKzM2NzYsNyBAQCByZWFkX2xleGlj YWxfYmxvY2tfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKKyAgICAgICBkd2FyZjJfcmVjb3JkX2Jsb2NrX3JhbmdlcyAoZGllLCBibG9jaywgYmFzZWFk ZHIsIGN1KTsKKyAgICAgfQorICAgbG9jYWxfc3ltYm9scyA9IG5ldy0+bG9jYWxzOworKyAgdXNp bmdfZGlyZWN0aXZlcyA9IG5ldy0+dXNpbmdfZGlyZWN0aXZlczsKKyB9CisgCisgLyogR2V0IGxv dyBhbmQgaGlnaCBwYyBhdHRyaWJ1dGVzIGZyb20gRFdfQVRfcmFuZ2VzIGF0dHJpYnV0ZSB2YWx1 ZSBPRkZTRVQuCitAQCAtMzM1MSw3ICszODEyLDggQEAgZHdhcmYyX3Jhbmdlc19yZWFkICh1bnNp Z25lZCBvZmZzZXQsIENPUkVfQUREUiAqbG93X3JldHVybiwKKyAgICBkaXNjb250aW51b3VzLCBp LmUuIGRlcml2ZWQgZnJvbSBEV19BVF9yYW5nZXMgaW5mb3JtYXRpb24uICAqLworIHN0YXRpYyBp bnQKKyBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIENPUkVfQURE UiAqbG93cGMsCistCQkgICAgICBDT1JFX0FERFIgKmhpZ2hwYywgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCisrCQkgICAgICBDT1JFX0FERFIgKmhpZ2hwYywgc3RydWN0IGR3YXJmMl9jdSAqY3UsCisr CQkgICAgICBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBzdCkKKyB7CisgICBzdHJ1Y3QgYXR0cmli dXRlICphdHRyOworICAgQ09SRV9BRERSIGxvdyA9IDA7CitAQCAtMzM3OSw3ICszODQxLDcgQEAg ZHdhcmYyX2dldF9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBDT1JFX0FERFIgKmxv d3BjLAorIAl7CisgCSAgLyogVmFsdWUgb2YgdGhlIERXX0FUX3JhbmdlcyBhdHRyaWJ1dGUgaXMg dGhlIG9mZnNldCBpbiB0aGUKKyAJICAgICAuZGVidWdfcmFuZ2VzIHNlY3Rpb24uICAqLworLQkg IGlmICghZHdhcmYyX3Jhbmdlc19yZWFkIChEV19VTlNORCAoYXR0ciksICZsb3csICZoaWdoLCBj dSwgTlVMTCkpCisrCSAgaWYgKCFkd2FyZjJfcmFuZ2VzX3JlYWQgKERXX1VOU05EIChhdHRyKSwg JmxvdywgJmhpZ2gsIGN1LCBwc3QpKQorIAkgICAgcmV0dXJuIDA7CisgCSAgLyogRm91bmQgZGlz Y29udGludW91cyByYW5nZSBvZiBhZGRyZXNzZXMuICAqLworIAkgIHJldCA9IC0xOworQEAgLTM0 MTgsNyArMzg4MCw3IEBAIGR3YXJmMl9nZXRfc3VicHJvZ3JhbV9wY19ib3VuZHMgKHN0cnVjdCBk aWVfaW5mbyAqZGllLAorICAgQ09SRV9BRERSIGxvdywgaGlnaDsKKyAgIHN0cnVjdCBkaWVfaW5m byAqY2hpbGQgPSBkaWUtPmNoaWxkOworIAorLSAgaWYgKGR3YXJmMl9nZXRfcGNfYm91bmRzIChk aWUsICZsb3csICZoaWdoLCBjdSkpCisrICBpZiAoZHdhcmYyX2dldF9wY19ib3VuZHMgKGRpZSwg JmxvdywgJmhpZ2gsIGN1LCBOVUxMKSkKKyAgICAgeworICAgICAgICpsb3dwYyA9IG1pbiAoKmxv d3BjLCBsb3cpOworICAgICAgICpoaWdocGMgPSBtYXggKCpoaWdocGMsIGhpZ2gpOworQEAgLTM0 NTUsNyArMzkxNyw3IEBAIGdldF9zY29wZV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGll LAorICAgQ09SRV9BRERSIGJlc3RfaGlnaCA9IChDT1JFX0FERFIpIDA7CisgICBDT1JFX0FERFIg Y3VycmVudF9sb3csIGN1cnJlbnRfaGlnaDsKKyAKKy0gIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5k cyAoZGllLCAmY3VycmVudF9sb3csICZjdXJyZW50X2hpZ2gsIGN1KSkKKysgIGlmIChkd2FyZjJf Z2V0X3BjX2JvdW5kcyAoZGllLCAmY3VycmVudF9sb3csICZjdXJyZW50X2hpZ2gsIGN1LCBOVUxM KSkKKyAgICAgeworICAgICAgIGJlc3RfbG93ID0gY3VycmVudF9sb3c7CisgICAgICAgYmVzdF9o aWdoID0gY3VycmVudF9oaWdoOworQEAgLTM3NTAsOCArNDIxMiwxNCBAQCBkd2FyZjJfYWRkX2Zp ZWxkIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKKyAgICAg ICBpZiAoZmllbGRuYW1lID09IE5VTEwpCisgCXJldHVybjsKKyAKKy0gICAgICAvKiBHZXQgcGh5 c2ljYWwgbmFtZS4gICovCisrICAgICAgLyogR2V0IHBoeXNpY2FsIG5hbWUuICBXZSBwcmVmZXIg dGhlIGxpbmthZ2UgbmFtZSBpZiBvbmUgd2FzIHNwZWNpZmllZCwKKysJIGJlY2F1c2UgdGhpcyBs ZXRzIEdEQiBmaW5kIGEgbm9uLWRlYnVnZ2luZyB2ZXJzaW9uIG9mIHRoZSBzeW1ib2wuCisrCSBP dGhlcndpc2UgY29uc3RydWN0IHRoZSBmdWxsIG5hbWUgZnJvbSB0eXBlIGluZm9ybWF0aW9uLiAg SWRlYWxseSwKKysJIHdoZW4gR0RCIHN1cHBvcnRzIGNhbm9uaWNhbGl6YXRpb24gb2YgQysrIHN5 bWJvbCBuYW1lcywgd2Ugd2lsbCBub3QKKysJIG5lZWQgdGhlIGxpbmthZ2UgbmFtZSBmb3IgYW55 dGhpbmcuICAqLworICAgICAgIHBoeXNuYW1lID0gZHdhcmYyX2xpbmthZ2VfbmFtZSAoZGllLCBj dSk7CisrICAgICAgaWYgKHBoeXNuYW1lID09IE5VTEwpCisrCXBoeXNuYW1lID0gKGNoYXIgKikg ZHdhcmYyX2Z1bGxfbmFtZSAoZGllLCBjdSk7CisgCisgICAgICAgLyogVGhlIG5hbWUgaXMgYWxy ZWFkeSBhbGxvY2F0ZWQgYWxvbmcgd2l0aCB0aGlzIG9iamZpbGUsIHNvIHdlIGRvbid0CisgCSBu ZWVkIHRvIGR1cGxpY2F0ZSBpdCBmb3IgdGhlIHR5cGUuICAqLworQEAgLTM4ODEsOCArNDM0OSwx NCBAQCBkd2FyZjJfYWRkX21lbWJlcl9mbiAoc3RydWN0IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0 IGRpZV9pbmZvICpkaWUsCisgICBpZiAoZmllbGRuYW1lID09IE5VTEwpCisgICAgIHJldHVybjsK KyAKKy0gIC8qIEdldCB0aGUgbWFuZ2xlZCBuYW1lLiAgKi8KKysgIC8qIEdldCBwaHlzaWNhbCBu YW1lLiAgV2UgcHJlZmVyIHRoZSBsaW5rYWdlIG5hbWUgaWYgb25lIHdhcyBzcGVjaWZpZWQsCisr ICAgICBiZWNhdXNlIHRoaXMgbGV0cyBHREIgZmluZCBhIG5vbi1kZWJ1Z2dpbmcgdmVyc2lvbiBv ZiB0aGUgc3ltYm9sLgorKyAgICAgT3RoZXJ3aXNlIGNvbnN0cnVjdCB0aGUgZnVsbCBuYW1lIGZy b20gdHlwZSBpbmZvcm1hdGlvbi4gIElkZWFsbHksCisrICAgICB3aGVuIEdEQiBzdXBwb3J0cyBj YW5vbmljYWxpemF0aW9uIG9mIEMrKyBzeW1ib2wgbmFtZXMsIHdlIHdpbGwgbm90CisrICAgICBu ZWVkIHRoZSBsaW5rYWdlIG5hbWUgZm9yIGFueXRoaW5nLiAgKi8KKyAgIHBoeXNuYW1lID0gZHdh cmYyX2xpbmthZ2VfbmFtZSAoZGllLCBjdSk7CisrICBpZiAocGh5c25hbWUgPT0gTlVMTCkKKysg ICAgcGh5c25hbWUgPSAoY2hhciAqKSBkd2FyZjJfZnVsbF9uYW1lIChkaWUsIGN1KTsKKyAKKyAg IC8qIExvb2sgdXAgbWVtYmVyIGZ1bmN0aW9uIG5hbWUgaW4gZmllbGRsaXN0LiAgKi8KKyAgIGZv ciAoaSA9IDA7IGkgPCBmaXAtPm5mbmZpZWxkczsgaSsrKQorQEAgLTM5MjYsNyArNDQwMCw3IEBA IGR3YXJmMl9hZGRfbWVtYmVyX2ZuIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGll X2luZm8gKmRpZSwKICAgIC8qIFRoZSBuYW1lIGlzIGFscmVhZHkgYWxsb2NhdGVkIGFsb25nIHdp dGggdGhpcyBvYmpmaWxlLCBzbyB3ZSBkb24ndAogICAgICAgbmVlZCB0byBkdXBsaWNhdGUgaXQg Zm9yIHRoZSB0eXBlLiAgKi8KICAgIGZucC0+cGh5c25hbWUgPSBwaHlzbmFtZSA/IHBoeXNuYW1l IDogIiI7CkBAIC0xMDE1MSw3ICsxMjAwMCw3IEBAIGluZGV4IDU1ODY4ZGEuLjhhMzliY2YgMTAw NjQ0CiAgICB0aGlzX3R5cGUgPSByZWFkX3R5cGVfZGllIChkaWUsIGN1KTsKICAgIGlmICh0aGlz X3R5cGUgJiYgVFlQRV9DT0RFICh0aGlzX3R5cGUpID09IFRZUEVfQ09ERV9GVU5DKQogICAgICB7 Ci1AQCAtNDExMCw3ICs0MzI2LDcgQEAgcXVpcmtfZ2NjX21lbWJlcl9mdW5jdGlvbl9wb2ludGVy IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNDExMCw3 ICs0NTg0LDcgQEAgcXVpcmtfZ2NjX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgIHJldHVybiBOVUxMOwogIAog ICAgZG9tYWluX3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFIChUWVBFX0ZJRUxEX1RZUEUgKHBmbl90 eXBlLCAwKSk7CkBAIC0xMDE2MCw3ICsxMjAwOSw3IEBAIGluZGV4IDU1ODY4ZGEuLjhhMzliY2Yg MTAwNjQ0CiAgICBzbWFzaF90b19tZXRob2RfdHlwZSAodHlwZSwgZG9tYWluX3R5cGUsIFRZUEVf VEFSR0VUX1RZUEUgKHBmbl90eXBlKSwKICAJCQlUWVBFX0ZJRUxEUyAocGZuX3R5cGUpLCBUWVBF X05GSUVMRFMgKHBmbl90eXBlKSwKICAJCQlUWVBFX1ZBUkFSR1MgKHBmbl90eXBlKSk7Ci1AQCAt NDE0Nyw3ICs0MzYzLDcgQEAgcmVhZF9zdHJ1Y3R1cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTQxNDcsNyArNDYyMSw3IEBAIHJlYWRfc3Ry dWN0dXJlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK ICAgIGlmICh0eXBlKQogICAgICByZXR1cm4gdHlwZTsKICAKQEAgLTEwMTY5LDcgKzEyMDE4LDcg QEAgaW5kZXggNTU4NjhkYS4uOGEzOWJjZiAxMDA2NDQKICAgIElOSVRfQ1BMVVNfU1BFQ0lGSUMg KHR5cGUpOwogICAgbmFtZSA9IGR3YXJmMl9uYW1lIChkaWUsIGN1KTsKICAgIGlmIChuYW1lICE9 IE5VTEwpCi1AQCAtNDM2MCw3ICs0NTc2LDcgQEAgcmVhZF9lbnVtZXJhdGlvbl90eXBlIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNDM2MCw3ICs0ODM0 LDcgQEAgcmVhZF9lbnVtZXJhdGlvbl90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwogICAgY29uc3QgY2hh ciAqbmFtZTsKICAKQEAgLTEwMTc4LDcgKzEyMDI3LDI2IEBAIGluZGV4IDU1ODY4ZGEuLjhhMzli Y2YgMTAwNjQ0CiAgCiAgICBUWVBFX0NPREUgKHR5cGUpID0gVFlQRV9DT0RFX0VOVU07CiAgICBu YW1lID0gZHdhcmYyX2Z1bGxfbmFtZSAoZGllLCBjdSk7Ci1AQCAtNDUxMCw2ICs0NzI2LDI5IEBA IHByb2Nlc3NfZW51bWVyYXRpb25fc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKK0BAIC00NDEwLDEwICs0ODg0LDE1IEBAIGRldGVybWluZV9jbGFzc19u YW1lIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgCXsKKyAJ ICBpZiAoY2hpbGQtPnRhZyA9PSBEV19UQUdfc3VicHJvZ3JhbSkKKyAJICAgIHsKKy0JICAgICAg Y2hhciAqcGh5c19wcmVmaXgKKysJICAgICAgY2hhciAqcGh5c19wcmVmaXg7CisrCSAgICAgIGNo YXIgKmxpbmthZ2VfbmFtZSA9IGR3YXJmMl9saW5rYWdlX25hbWUgKGNoaWxkLCBjdSk7CisrCisr CSAgICAgIGlmIChsaW5rYWdlX25hbWUgPT0gTlVMTCkKKysJCWNvbnRpbnVlOworKworKwkgICAg ICBwaHlzX3ByZWZpeAorIAkJPSBsYW5ndWFnZV9jbGFzc19uYW1lX2Zyb21fcGh5c25hbWUgKGN1 LT5sYW5ndWFnZV9kZWZuLAorLQkJCQkJCSAgICAgZHdhcmYyX2xpbmthZ2VfbmFtZQorLQkJCQkJ CSAgICAgKGNoaWxkLCBjdSkpOworKwkJCQkJCSAgICAgbGlua2FnZV9uYW1lKTsKKyAKKyAJICAg ICAgaWYgKHBoeXNfcHJlZml4ICE9IE5VTEwpCisgCQl7CitAQCAtNDUxMCw2ICs0OTg5LDI5IEBA IHByb2Nlc3NfZW51bWVyYXRpb25fc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKICAgIG5ld19zeW1ib2wgKGRpZSwgdGhpc190eXBlLCBjdSk7CiAgfQog IApAQCAtMTAyMDgsNyArMTIwNzYsNyBAQCBpbmRleCA1NTg2OGRhLi44YTM5YmNmIDEwMDY0NAog IC8qIEV4dHJhY3QgYWxsIGluZm9ybWF0aW9uIGZyb20gYSBEV19UQUdfYXJyYXlfdHlwZSBESUUg YW5kIHB1dCBpdCBpbgogICAgIHRoZSBESUUncyB0eXBlIGZpZWxkLiAgRm9yIG5vdywgdGhpcyBv bmx5IGhhbmRsZXMgb25lIGRpbWVuc2lvbmFsCiAgICAgYXJyYXlzLiAgKi8KLUBAIC00NTIzLDcg KzQ3NjIsNyBAQCByZWFkX2FycmF5X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKK0BAIC00NTIzLDcgKzUwMjUsNyBAQCByZWFkX2FycmF5X3R5cGUgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCB0eXBl ICplbGVtZW50X3R5cGUsICpyYW5nZV90eXBlLCAqaW5kZXhfdHlwZTsKICAgIHN0cnVjdCB0eXBl ICoqcmFuZ2VfdHlwZXMgPSBOVUxMOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTEw MjE3LDcgKzEyMDg1LDcgQEAgaW5kZXggNTU4NjhkYS4uOGEzOWJjZiAxMDA2NDQKICAgIHN0cnVj dCBjbGVhbnVwICpiYWNrX3RvOwogICAgY2hhciAqbmFtZTsKICAKLUBAIC00NTcwLDE2ICs0ODA5 LDExIEBAIHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQorQEAgLTQ1NzAsMTYgKzUwNzIsMTEgQEAgcmVhZF9hcnJheV90eXBlIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICB0eXBlID0gZWxlbWVu dF90eXBlOwogIAogICAgaWYgKHJlYWRfYXJyYXlfb3JkZXIgKGRpZSwgY3UpID09IERXX09SRF9j b2xfbWFqb3IpCkBAIC0xMDIzOSw3ICsxMjEwNyw3IEBAIGluZGV4IDU1ODY4ZGEuLjhhMzliY2Yg MTAwNjQ0CiAgCiAgICAvKiBVbmRlcnN0YW5kIER3YXJmMiBzdXBwb3J0IGZvciB2ZWN0b3IgdHlw ZXMgKGxpa2UgdGhleSBvY2N1ciBvbgogICAgICAgdGhlIFBvd2VyUEMgdy8gQWx0aVZlYykuICBH Y2MganVzdCBhZGRzIGFub3RoZXIgYXR0cmlidXRlIHRvIHRoZQotQEAgLTQ2NDYsMTIgKzQ4ODAs MTQgQEAgcmVhZF9zZXRfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQorQEAgLTQ2NDYsMTIgKzUxNDMsMTQgQEAgcmVhZF9zZXRfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgcmV0dXJuIHNldF9kaWVfdHlw ZSAoZGllLCBzZXRfdHlwZSwgY3UpOwogIH0KICAKQEAgLTEwMjU2LDcgKzEyMTI0LDcgQEAgaW5k ZXggNTU4NjhkYS4uOGEzOWJjZiAxMDA2NDQKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CiAg ICBzdHJ1Y3Qgc3ltYm9sICpzeW07CiAgICBDT1JFX0FERFIgYmFzZSA9IChDT1JFX0FERFIpIDA7 Ci1AQCAtNDY3NiwxMCArNDkxMiw0MCBAQCByZWFkX2NvbW1vbl9ibG9jayAoc3RydWN0IGRpZV9p bmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTQ2NzYsMTAgKzUxNzUsNDAgQEAg cmVhZF9jb21tb25fYmxvY2sgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKICAgICAgfQogICAgaWYgKGRpZS0+Y2hpbGQgIT0gTlVMTCkKICAgICAgewpAQCAtMTAy OTcsNyArMTIxNjUsNyBAQCBpbmRleCA1NTg2OGRhLi44YTM5YmNmIDEwMDY0NAogIAkgIGF0dHIg PSBkd2FyZjJfYXR0ciAoY2hpbGRfZGllLCBEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbiwgY3Up OwogIAkgIGlmIChhdHRyKQogIAkgICAgewotQEAgLTQ2ODcsOCArNDk1MywyNSBAQCByZWFkX2Nv bW1vbl9ibG9jayAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQor QEAgLTQ2ODcsOCArNTIxNiwyNSBAQCByZWFkX2NvbW1vbl9ibG9jayAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAkJYmFzZSArIGRlY29kZV9sb2NkZXNjIChE V19CTE9DSyAoYXR0ciksIGN1KTsKICAJICAgICAgYWRkX3N5bWJvbF90b19saXN0IChzeW0sICZn bG9iYWxfc3ltYm9scyk7CiAgCSAgICB9CkBAIC0xMDMyMyw3ICsxMjE5MSwxOCBAQCBpbmRleCA1 NTg2OGRhLi44YTM5YmNmIDEwMDY0NAogICAgICB9CiAgfQogIAotQEAgLTQ5NTEsMjkgKzUyMzQs OTUgQEAgcmVhZF90YWdfc3RyaW5nX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKK0BAIC00NzU2LDkgKzUzMDIsNyBAQCByZWFkX25hbWVzcGFjZSAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorICAgICAgIGlmIChpc19h bm9ueW1vdXMpCisgCXsKKyAJICBjb25zdCBjaGFyICpwcmV2aW91c19wcmVmaXggPSBkZXRlcm1p bmVfcHJlZml4IChkaWUsIGN1KTsKKy0JICBjcF9hZGRfdXNpbmdfZGlyZWN0aXZlIChUWVBFX05B TUUgKHR5cGUpLAorLQkJCQkgIHN0cmxlbiAocHJldmlvdXNfcHJlZml4KSwKKy0JCQkJICBzdHJs ZW4gKFRZUEVfTkFNRSAodHlwZSkpKTsKKysJICBjcF9hZGRfdXNpbmdfZGlyZWN0aXZlIChwcmV2 aW91c19wcmVmaXgsIFRZUEVfTkFNRSAodHlwZSksICIiLCAiIiwgZHdhcmYyX3JlYWRfZGVjbF9s aW5lKGRpZSwgY3UpKTsKKyAJfQorICAgICB9CisgCitAQCAtNDk1MSwyOSArNTQ5NSw5NSBAQCBy ZWFkX3RhZ19zdHJpbmdfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQogICAgc3RydWN0IG9iamZpbGUgKm9iamZpbGUgPSBjdS0+b2JqZmlsZTsKICAgIHN0 cnVjdCB0eXBlICp0eXBlLCAqcmFuZ2VfdHlwZSwgKmluZGV4X3R5cGUsICpjaGFyX3R5cGU7CiAg ICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwpAQCAtMTA0MzcsNyArMTIzMTYsNyBAQCBpbmRleCA1 NTg2OGRhLi44YTM5YmNmIDEwMDY0NAogICAgdHlwZSA9IGNyZWF0ZV9zdHJpbmdfdHlwZSAoTlVM TCwgcmFuZ2VfdHlwZSk7CiAgCiAgICByZXR1cm4gc2V0X2RpZV90eXBlIChkaWUsIHR5cGUsIGN1 KTsKLUBAIC01MDY3LDcgKzU0MTYsNiBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKgorQEAgLTUwNjcs NyArNTY3Nyw2IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCiAgcmVhZF90eXBlZGVmIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgewogICAgc3RydWN0IG9iamZp bGUgKm9iamZpbGUgPSBjdS0+b2JqZmlsZTsKQEAgLTEwNDQ1LDcgKzEyMzI0LDcgQEAgaW5kZXgg NTU4NjhkYS4uOGEzOWJjZiAxMDA2NDQKICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMOwogICAg c3RydWN0IHR5cGUgKnRoaXNfdHlwZTsKICAKLUBAIC01MTc1LDggKzU1MjMsOCBAQCByZWFkX3N1 YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK K0BAIC01MTc1LDggKzU3ODQsOCBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCB0eXBlICpiYXNlX3R5cGU7 CiAgICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7 CkBAIC0xMDQ1Niw3ICsxMjMzNSw3IEBAIGluZGV4IDU1ODY4ZGEuLjhhMzliY2YgMTAwNjQ0CiAg ICBjaGFyICpuYW1lOwogICAgCiAgICBiYXNlX3R5cGUgPSBkaWVfdHlwZSAoZGllLCBjdSk7Ci1A QCAtNTE4OSw0MiArNTUzNyw5MCBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC01MTg5LDQyICs1Nzk4LDkwIEBAIHJl YWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQogIAkJICAgICAwLCBOVUxMLCBjdS0+b2JqZmlsZSk7CiAgICAgIH0KICAKQEAgLTEwNTc3 LDcgKzEyNDU2LDcgQEAgaW5kZXggNTU4NjhkYS4uOGEzOWJjZiAxMDA2NDQKICAKICAgIG5hbWUg PSBkd2FyZjJfbmFtZSAoZGllLCBjdSk7CiAgICBpZiAobmFtZSkKLUBAIC01Mzg2LDEwICs1Nzgy LDEzIEBAIHJlYWRfZGllX2FuZF9zaWJsaW5ncyAoZ2RiX2J5dGUgKmluZm9fcHRyLCBiZmQgKmFi ZmQsCitAQCAtNTM4NiwxMCArNjA0MywxMyBAQCByZWFkX2RpZV9hbmRfc2libGluZ3MgKGdkYl9i eXRlICppbmZvX3B0ciwgYmZkICphYmZkLAogIH0KICAKICAvKiBEZWNvbXByZXNzIGEgc2VjdGlv biB0aGF0IHdhcyBjb21wcmVzc2VkIHVzaW5nIHpsaWIuICBTdG9yZSB0aGUKQEAgLTEwNTkzLDcg KzEyNDcyLDcgQEAgaW5kZXggNTU4NjhkYS4uOGEzOWJjZiAxMDA2NDQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ2RiX2J5dGUgKipvdXRidWYsIGJmZF9zaXplX3R5cGUgKm91dHNpemUpCiAg ewogICAgYmZkICphYmZkID0gb2JqZmlsZS0+b2JmZDsKLUBAIC01NDA1LDYgKzU4MDQsNyBAQCB6 bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGFzZWN0aW9u ICpzZWN0cCwKK0BAIC01NDA1LDYgKzYwNjUsNyBAQCB6bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAo c3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGFzZWN0aW9uICpzZWN0cCwKICAgIHpfc3RyZWFtIHN0 cm07CiAgICBpbnQgcmM7CiAgICBpbnQgaGVhZGVyX3NpemUgPSAxMjsKQEAgLTEwNjAxLDcgKzEy NDgwLDcgQEAgaW5kZXggNTU4NjhkYS4uOGEzOWJjZiAxMDA2NDQKICAKICAgIGlmIChiZmRfc2Vl ayAoYWJmZCwgc2VjdHAtPmZpbGVwb3MsIFNFRUtfU0VUKSAhPSAwCiAgICAgICAgfHwgYmZkX2Jy ZWFkIChjb21wcmVzc2VkX2J1ZmZlciwgY29tcHJlc3NlZF9zaXplLCBhYmZkKSAhPSBjb21wcmVz c2VkX3NpemUpCi1AQCAtNTQzNCw4ICs1ODM0LDEzIEBAIHpsaWJfZGVjb21wcmVzc19zZWN0aW9u IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgYXNlY3Rpb24gKnNlY3RwLAorQEAgLTU0MzQsOCAr NjA5NSwxMyBAQCB6bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZp bGUsIGFzZWN0aW9uICpzZWN0cCwKICAgIHN0cm0uYXZhaWxfaW4gPSBjb21wcmVzc2VkX3NpemUg LSBoZWFkZXJfc2l6ZTsKICAgIHN0cm0ubmV4dF9pbiA9IChCeXRlZiopIGNvbXByZXNzZWRfYnVm ZmVyICsgaGVhZGVyX3NpemU7CiAgICBzdHJtLmF2YWlsX291dCA9IHVuY29tcHJlc3NlZF9zaXpl OwpAQCAtMTA2MTcsNyArMTI0OTYsNyBAQCBpbmRleCA1NTg2OGRhLi44YTM5YmNmIDEwMDY0NAog ICAgcmMgPSBpbmZsYXRlSW5pdCAoJnN0cm0pOwogICAgd2hpbGUgKHN0cm0uYXZhaWxfaW4gPiAw KQogICAgICB7Ci1AQCAtNTQ1Niw2ICs1ODYxLDggQEAgemxpYl9kZWNvbXByZXNzX3NlY3Rpb24g KHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBhc2VjdGlvbiAqc2VjdHAsCitAQCAtNTQ1Niw2ICs2 MTIyLDggQEAgemxpYl9kZWNvbXByZXNzX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl LCBhc2VjdGlvbiAqc2VjdHAsCiAgICAgIGVycm9yIChfKCJEd2FyZiBFcnJvcjogY29uY2x1ZGlu ZyBEV0FSRiB1bmNvbXByZXNzaW9uIGluICclcyc6ICVkIiksCiAgICAgICAgICAgICBiZmRfZ2V0 X2ZpbGVuYW1lIChhYmZkKSwgcmMpOwogIApAQCAtMTA2MjYsNyArMTI1MDUsNyBAQCBpbmRleCA1 NTg2OGRhLi44YTM5YmNmIDEwMDY0NAogICAgeGZyZWUgKGNvbXByZXNzZWRfYnVmZmVyKTsKICAg ICpvdXRidWYgPSB1bmNvbXByZXNzZWRfYnVmZmVyOwogICAgKm91dHNpemUgPSB1bmNvbXByZXNz ZWRfc2l6ZTsKLUBAIC01NDYzLDE3ICs1ODcwLDIwIEBAIHpsaWJfZGVjb21wcmVzc19zZWN0aW9u IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgYXNlY3Rpb24gKnNlY3RwLAorQEAgLTU0NjMsMTcg KzYxMzEsMjAgQEAgemxpYl9kZWNvbXByZXNzX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpm aWxlLCBhc2VjdGlvbiAqc2VjdHAsCiAgfQogIAogIApAQCAtMTA2NTIsNyArMTI1MzEsNyBAQCBp bmRleCA1NTg2OGRhLi44YTM5YmNmIDEwMDY0NAogIAogICAgaWYgKHNpemUgPT0gMCkKICAgICAg cmV0dXJuIE5VTEw7Ci1AQCAtNTQ4NiwzMCArNTg5Niw0OSBAQCBkd2FyZjJfcmVhZF9zZWN0aW9u IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgYXNlY3Rpb24gKnNlY3RwKQorQEAgLTU0ODYsMzAg KzYxNTcsNDkgQEAgZHdhcmYyX3JlYWRfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUs IGFzZWN0aW9uICpzZWN0cCkKICAgICAgICAvKiBVcG9uIGRlY29tcHJlc3Npb24sIHVwZGF0ZSB0 aGUgYnVmZmVyIGFuZCBpdHMgc2l6ZS4gICovCiAgICAgICAgaWYgKHN0cm5jbXAgKGhlYWRlciwg IlpMSUIiLCBzaXplb2YgKGhlYWRlcikpID09IDApCiAgICAgICAgICB7CkBAIC0xMDcwNSw3ICsx MjU4NCwyMyBAQCBpbmRleCA1NTg2OGRhLi44YTM5YmNmIDEwMDY0NAogIC8qIEluIERXQVJGIHZl cnNpb24gMiwgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gaXMK ICAgICBzdG9yZWQgaW4gYSBzZXBhcmF0ZSAuZGVidWdfYWJicmV2IHNlY3Rpb24uICBCZWZvcmUg d2UgcmVhZCBhbnkKICAgICBkaWVzIGZyb20gYSBzZWN0aW9uIHdlIHJlYWQgaW4gYWxsIGFiYnJl dmlhdGlvbnMgYW5kIGluc3RhbGwgdGhlbQotQEAgLTU5NDUsMTAgKzYzNzQsMjMgQEAgcmVhZF9w YXJ0aWFsX2RpZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBhcnRfZGllLAorQEAgLTU5MTQs MTUgKzY2MDQsNiBAQCByZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAq cGFydF9kaWUsCisgICBzdHJ1Y3QgYXR0cmlidXRlIGF0dHI7CisgICBpbnQgaGFzX2xvd19wY19h dHRyID0gMDsKKyAgIGludCBoYXNfaGlnaF9wY19hdHRyID0gMDsKKy0gIENPUkVfQUREUiBiYXNl X2FkZHJlc3MgPSAwOworLSAgZW51bQorLSAgICB7CistICAgICAgYmFzZV9hZGRyZXNzX25vbmUs CistICAgICAgYmFzZV9hZGRyZXNzX2xvd19wYywKKy0gICAgICAvKiBPdmVycmlkZXMgQkFTRV9B RERSRVNTX0xPV19QQy4gICovCistICAgICAgYmFzZV9hZGRyZXNzX2VudHJ5X3BjCistICAgIH0K Ky0gIGJhc2VfYWRkcmVzc190eXBlID0gYmFzZV9hZGRyZXNzX25vbmU7CisgCisgICBtZW1zZXQg KHBhcnRfZGllLCAwLCBzaXplb2YgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvKSk7CisgCitAQCAt NTk0NSw0NyArNjYyNiwzNSBAQCByZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVf aW5mbyAqcGFydF9kaWUsCiAgICAgICAgc3dpdGNoIChhdHRyLm5hbWUpCiAgCXsKICAJY2FzZSBE V19BVF9uYW1lOgpAQCAtMTA3MTMsNiArMTI2MDgsMTAgQEAgaW5kZXggNTU4NjhkYS4uOGEzOWJj ZiAxMDA2NDQKIC0JICAvKiBQcmVmZXIgRFdfQVRfTUlQU19saW5rYWdlX25hbWUgb3ZlciBEV19B VF9uYW1lLiAgKi8KIC0JICBpZiAocGFydF9kaWUtPm5hbWUgPT0gTlVMTCkKIC0JICAgIHBhcnRf ZGllLT5uYW1lID0gRFdfU1RSSU5HICgmYXR0cik7CistCSAgYnJlYWs7CistCWNhc2UgRFdfQVRf Y29tcF9kaXI6CistCSAgaWYgKHBhcnRfZGllLT5kaXJuYW1lID09IE5VTEwpCistCSAgICBwYXJ0 X2RpZS0+ZGlybmFtZSA9IERXX1NUUklORyAoJmF0dHIpOwogKwkgIHN3aXRjaCAocGFydF9kaWUt PnRhZykKICsJICAgIHsKICsJICAgIGNhc2UgRFdfVEFHX2NvbXBpbGVfdW5pdDoKQEAgLTEwNzMx LDkgKzEyNjMwLDk5IEBAIGluZGV4IDU1ODY4ZGEuLjhhMzliY2YgMTAwNjQ0CiArCSAgICAgIGJy ZWFrOwogKwkgICAgfQogIAkgIGJyZWFrOwotIAljYXNlIERXX0FUX2NvbXBfZGlyOgotIAkgIGlm IChwYXJ0X2RpZS0+ZGlybmFtZSA9PSBOVUxMKQotQEAgLTc1MTIsMTAgKzc5NTQsMTIgQEAgdmFy X2RlY29kZV9sb2NhdGlvbiAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IHN5bWJvbCAq c3ltLAorIAljYXNlIERXX0FUX01JUFNfbGlua2FnZV9uYW1lOgorLQkgIHBhcnRfZGllLT5uYW1l ID0gRFdfU1RSSU5HICgmYXR0cik7CisrCSAgcGFydF9kaWUtPmxpbmthZ2VfbmFtZSA9IERXX1NU UklORyAoJmF0dHIpOworIAkgIGJyZWFrOworIAljYXNlIERXX0FUX2xvd19wYzoKKyAJICBoYXNf bG93X3BjX2F0dHIgPSAxOworIAkgIHBhcnRfZGllLT5sb3dwYyA9IERXX0FERFIgKCZhdHRyKTsK Ky0JICBpZiAocGFydF9kaWUtPnRhZyA9PSBEV19UQUdfY29tcGlsZV91bml0CistCSAgICAgICYm IGJhc2VfYWRkcmVzc190eXBlIDwgYmFzZV9hZGRyZXNzX2xvd19wYykKKy0JICAgIHsKKy0JICAg ICAgYmFzZV9hZGRyZXNzID0gRFdfQUREUiAoJmF0dHIpOworLQkgICAgICBiYXNlX2FkZHJlc3Nf dHlwZSA9IGJhc2VfYWRkcmVzc19sb3dfcGM7CistCSAgICB9CisgCSAgYnJlYWs7CisgCWNhc2Ug RFdfQVRfaGlnaF9wYzoKKyAJICBoYXNfaGlnaF9wY19hdHRyID0gMTsKKyAJICBwYXJ0X2RpZS0+ aGlnaHBjID0gRFdfQUREUiAoJmF0dHIpOworIAkgIGJyZWFrOworLQljYXNlIERXX0FUX2VudHJ5 X3BjOgorLQkgIGlmIChwYXJ0X2RpZS0+dGFnID09IERXX1RBR19jb21waWxlX3VuaXQKKy0JICAg ICAgJiYgYmFzZV9hZGRyZXNzX3R5cGUgPCBiYXNlX2FkZHJlc3NfZW50cnlfcGMpCistCSAgICB7 CistCSAgICAgIGJhc2VfYWRkcmVzcyA9IERXX0FERFIgKCZhdHRyKTsKKy0JICAgICAgYmFzZV9h ZGRyZXNzX3R5cGUgPSBiYXNlX2FkZHJlc3NfZW50cnlfcGM7CistCSAgICB9CistCSAgYnJlYWs7 CistCWNhc2UgRFdfQVRfcmFuZ2VzOgorLQkgIGlmIChwYXJ0X2RpZS0+dGFnID09IERXX1RBR19j b21waWxlX3VuaXQpCistCSAgICB7CistCSAgICAgIGN1LT5yYW5nZXNfb2Zmc2V0ID0gRFdfVU5T TkQgKCZhdHRyKTsKKy0JICAgICAgY3UtPmhhc19yYW5nZXNfb2Zmc2V0ID0gMTsKKy0JICAgIH0K Ky0JICBicmVhazsKKyAJY2FzZSBEV19BVF9sb2NhdGlvbjoKKyAgICAgICAgICAgLyogU3VwcG9y dCB0aGUgLmRlYnVnX2xvYyBvZmZzZXRzICovCisgICAgICAgICAgIGlmIChhdHRyX2Zvcm1faXNf YmxvY2sgKCZhdHRyKSkKK0BAIC02MDAyLDkgKzY2NzEsNiBAQCByZWFkX3BhcnRpYWxfZGllIChz dHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCisgCQkJCQkJICAgICAicGFydGlhbCBz eW1ib2wgaW5mb3JtYXRpb24iKTsKKyAgICAgICAgICAgICB9CisgCSAgYnJlYWs7CistCWNhc2Ug RFdfQVRfbGFuZ3VhZ2U6CistCSAgcGFydF9kaWUtPmxhbmd1YWdlID0gRFdfVU5TTkQgKCZhdHRy KTsKKy0JICBicmVhazsKKyAJY2FzZSBEV19BVF9leHRlcm5hbDoKKyAJICBwYXJ0X2RpZS0+aXNf ZXh0ZXJuYWwgPSBEV19VTlNORCAoJmF0dHIpOworIAkgIGJyZWFrOworQEAgLTYwMjksMTAgKzY2 OTUsNiBAQCByZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9k aWUsCisgCSAgICBwYXJ0X2RpZS0+c2libGluZyA9IGR3YXJmMl9wZXJfb2JqZmlsZS0+aW5mb19i dWZmZXIKKyAJICAgICAgKyBkd2FyZjJfZ2V0X3JlZl9kaWVfb2Zmc2V0ICgmYXR0cik7CisgCSAg YnJlYWs7CistICAgICAgICBjYXNlIERXX0FUX3N0bXRfbGlzdDoKKy0gICAgICAgICAgcGFydF9k aWUtPmhhc19zdG10X2xpc3QgPSAxOworLSAgICAgICAgICBwYXJ0X2RpZS0+bGluZV9vZmZzZXQg PSBEV19VTlNORCAoJmF0dHIpOworLSAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgRFdf QVRfYnl0ZV9zaXplOgorICAgICAgICAgICBwYXJ0X2RpZS0+aGFzX2J5dGVfc2l6ZSA9IDE7Cisg ICAgICAgICAgIGJyZWFrOworQEAgLTYwNzQsMTMgKzY3MzYsNiBAQCByZWFkX3BhcnRpYWxfZGll IChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCisgCSAgfHwgZHdhcmYyX3Blcl9v YmpmaWxlLT5oYXNfc2VjdGlvbl9hdF96ZXJvKSkKKyAgICAgcGFydF9kaWUtPmhhc19wY19pbmZv ID0gMTsKKyAKKy0gIGlmIChiYXNlX2FkZHJlc3NfdHlwZSAhPSBiYXNlX2FkZHJlc3Nfbm9uZSAm JiAhY3UtPmJhc2Vfa25vd24pCistICAgIHsKKy0gICAgICBnZGJfYXNzZXJ0IChwYXJ0X2RpZS0+ dGFnID09IERXX1RBR19jb21waWxlX3VuaXQpOworLSAgICAgIGN1LT5iYXNlX2tub3duID0gMTsK Ky0gICAgICBjdS0+YmFzZV9hZGRyZXNzID0gYmFzZV9hZGRyZXNzOworLSAgICB9CistCisgICBy ZXR1cm4gaW5mb19wdHI7CisgfQorIAorQEAgLTYxNzMsNyArNjgyOCw5IEBAIGZpeHVwX3BhcnRp YWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCisgICAvKiBJZiB3ZSBm b3VuZCBhIHJlZmVyZW5jZSBhdHRyaWJ1dGUgYW5kIHRoZSBESUUgaGFzIG5vIG5hbWUsIHRyeQor ICAgICAgdG8gZmluZCBhIG5hbWUgaW4gdGhlIHJlZmVycmVkIHRvIERJRS4gICovCisgCistICBp ZiAocGFydF9kaWUtPm5hbWUgPT0gTlVMTCAmJiBwYXJ0X2RpZS0+aGFzX3NwZWNpZmljYXRpb24p CisrICBpZiAocGFydF9kaWUtPmhhc19zcGVjaWZpY2F0aW9uCisrICAgICAgJiYgKHBhcnRfZGll LT5uYW1lID09IE5VTEwgfHwgcGFydF9kaWUtPmxpbmthZ2VfbmFtZSA9PSBOVUxMCisrCSAgfHwg IXBhcnRfZGllLT5pc19leHRlcm5hbCkpCisgICAgIHsKKyAgICAgICBzdHJ1Y3QgcGFydGlhbF9k aWVfaW5mbyAqc3BlY19kaWU7CisgCitAQCAtNjE4OSw2ICs2ODQ2LDkgQEAgZml4dXBfcGFydGlh bF9kaWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwYXJ0X2RpZSwKKyAJICBpZiAoc3BlY19k aWUtPmlzX2V4dGVybmFsKQorIAkgICAgcGFydF9kaWUtPmlzX2V4dGVybmFsID0gc3BlY19kaWUt PmlzX2V4dGVybmFsOworIAl9CisrCisrICAgICAgaWYgKHNwZWNfZGllLT5saW5rYWdlX25hbWUp CisrCXBhcnRfZGllLT5saW5rYWdlX25hbWUgPSBzcGVjX2RpZS0+bGlua2FnZV9uYW1lOworICAg ICB9CisgCisgICAvKiBTZXQgZGVmYXVsdCBuYW1lcyBmb3Igc29tZSB1bm5hbWVkIERJRXMuICAq LworQEAgLTc1MTIsMTAgKzgxNzIsMTIgQEAgdmFyX2RlY29kZV9sb2NhdGlvbiAoc3RydWN0IGF0 dHJpYnV0ZSAqYXR0ciwgc3RydWN0IHN5bWJvbCAqc3ltLAogICAgICAgKGkuZS4gd2hlbiB0aGUg dmFsdWUgb2YgYSByZWdpc3RlciBvciBtZW1vcnkgbG9jYXRpb24gaXMKICAgICAgIHJlZmVyZW5j ZWQsIG9yIGEgdGhyZWFkLWxvY2FsIGJsb2NrLCBldGMuKS4gIFRoZW4gYWdhaW4sIGl0IG1pZ2h0 CiAgICAgICBub3QgYmUgd29ydGh3aGlsZS4gIEknbSBhc3N1bWluZyB0aGF0IGl0IGlzbid0IHVu bGVzcyBwZXJmb3JtYW5jZQpAQCAtMTA3NDgsMTYgKzEyNzM3LDU0IEBAIGluZGV4IDU1ODY4ZGEu LjhhMzliY2YgMTAwNjQ0CiAgfQogIAogIC8qIEdpdmVuIGEgcG9pbnRlciB0byBhIERXQVJGIGlu Zm9ybWF0aW9uIGVudHJ5LCBmaWd1cmUgb3V0IGlmIHdlIG5lZWQKLUBAIC03NTQ4LDYgKzc5OTIs OCBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTc1MzgsMjAgKzgyMDAsNDMgQEAgbmV3X3N5bWJv bCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKKyAgIGJhc2VhZGRyID0gQU5PRkZTRVQgKG9iamZpbGUtPnNlY3Rpb25fb2Zmc2V0 cywgU0VDVF9PRkZfVEVYVCAob2JqZmlsZSkpOworIAorICAgaWYgKGRpZS0+dGFnICE9IERXX1RB R19uYW1lc3BhY2UpCistICAgIG5hbWUgPSBkd2FyZjJfbGlua2FnZV9uYW1lIChkaWUsIGN1KTsK KysgICAgbmFtZSA9IGR3YXJmMl9uYW1lIChkaWUsIGN1KTsKKyAgIGVsc2UKKyAgICAgbmFtZSA9 IFRZUEVfTkFNRSAodHlwZSk7CisgCisgICBpZiAobmFtZSkKKyAgICAgeworKyAgICAgIGNvbnN0 IGNoYXIgKmxpbmthZ2VuYW1lOworKworICAgICAgIHN5bSA9IChzdHJ1Y3Qgc3ltYm9sICopIG9i c3RhY2tfYWxsb2MgKCZvYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssCiAgCQkJCQkgICAgIHNpemVv ZiAoc3RydWN0IHN5bWJvbCkpOwogICAgICAgIE9CSlNUQVQgKG9iamZpbGUsIG5fc3ltcysrKTsK ICAgICAgICBtZW1zZXQgKHN5bSwgMCwgc2l6ZW9mIChzdHJ1Y3Qgc3ltYm9sKSk7CiArICAgICAg LyogU29tZSBtZXRob2RzIGFyZSBjYWxsZWQgd2l0aG91dCBjaGVja2luZyBTWU1CT0xfT1BTIHZh bGlkaXR5LiAgKi8KICsgICAgICBTWU1CT0xfT1BTIChzeW0pID0gJmR3YXJmMl9taXNzaW5nX2Z1 bmNzOwogIAotICAgICAgIC8qIENhY2hlIHRoaXMgc3ltYm9sJ3MgbmFtZSBhbmQgdGhlIG5hbWUn cyBkZW1hbmdsZWQgZm9ybSAoaWYgYW55KS4gICovCistICAgICAgLyogQ2FjaGUgdGhpcyBzeW1i b2wncyBuYW1lIGFuZCB0aGUgbmFtZSdzIGRlbWFuZ2xlZCBmb3JtIChpZiBhbnkpLiAgKi8KICAg ICAgICBTWU1CT0xfTEFOR1VBR0UgKHN5bSkgPSBjdS0+bGFuZ3VhZ2U7Ci1AQCAtNzYzNyw3ICs4 MDgzLDE1IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAq dHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCistICAgICAgU1lNQk9MX1NFVF9OQU1FUyAoc3lt LCBuYW1lLCBzdHJsZW4gKG5hbWUpLCBvYmpmaWxlKTsKKysKKysgICAgICAvKiBDYWNoZSB0aGlz IHN5bWJvbCdzIG5hbWUgYW5kIHRoZSBuYW1lJ3MgZGVtYW5nbGVkIGZvcm0gKGlmIGFueSkuICAq LworKworKyAgICAgIGxpbmthZ2VuYW1lID0gZHdhcmYyX2xpbmthZ2VfbmFtZSAoZGllLCBjdSk7 CisrICAgICAgaWYgKGxpbmthZ2VuYW1lKQorKwkvKiBXZSB1c2UgdGhlIGxpbmthZ2UgbmFtZSBp ZiBhdmFpbGFibGUsIGZvciB0aGUgc2FtZSByZWFzb24KKysJICAgd2UgdXNlZCBpdCBmb3IgVFlQ RV9GTl9GSUVMRF9QSFlTTkFNRSBlYXJsaWVyIGluIHRoaXMgZmlsZS4KKysJICAgVGhpcyB1c2Fn ZSBjYW4gYmUgcmVtb3ZlZCBzb21lZGF5LiAgKi8KKysJU1lNQk9MX1NFVF9OQU1FUyAoc3ltLCBs aW5rYWdlbmFtZSwgc3RybGVuIChsaW5rYWdlbmFtZSksIG9iamZpbGUpOworKyAgICAgIGVsc2Ug aWYgKGRpZS0+dGFnID09IERXX1RBR19uYW1lc3BhY2UpCisrCVNZTUJPTF9TRVRfTElOS0FHRV9O QU1FIChzeW0sIG5hbWUpOworKyAgICAgIGVsc2UKKysJeworKwkgIGxpbmthZ2VuYW1lID0gZHdh cmYyX2Z1bGxfbmFtZSAoZGllLCBjdSk7CisrCisrCSAgLyogU2V0IGp1c3QgdGhlICJsaW5rYWdl IiBuYW1lIHRvIHRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZS4KKysJICAgICBXaGlsZSB0aGlzIGlz IG5vdCByZWFsbHkgYSBsaW5rYWdlIG5hbWUsIGl0IHNob3VsZCBtYXRjaAorKwkgICAgIHRoZSBk ZW1hbmdsZWQgdmVyc2lvbiBvZiB0aGUgY29ycmVzcG9uZGluZyBtaW5pbWFsIHN5bWJvbAorKwkg ICAgIGlmIHRoZXJlIGlzIG9uZS4gICovCisrCSAgU1lNQk9MX1NFVF9MSU5LQUdFX05BTUUgKHN5 bSwgKGNoYXIgKikgbGlua2FnZW5hbWUpOworKwl9CisgCisgICAgICAgLyogRGVmYXVsdCBhc3N1 bXB0aW9ucy4KKyAgICAgICAgICBVc2UgdGhlIHBhc3NlZCB0eXBlIG9yIGRlY29kZSBpdCBmcm9t IHRoZSBkaWUuICAqLworQEAgLTc2MzcsNyArODMyMiwxNSBAQCBuZXdfc3ltYm9sIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQog IAkgIGlmIChhdHRyKQogIAkgICAgewogIAkgICAgICB2YXJfZGVjb2RlX2xvY2F0aW9uIChhdHRy LCBzeW0sIGN1KTsKQEAgLTEwNzc0LDcgKzEyODAxLDcgQEAgaW5kZXggNTU4NjhkYS4uOGEzOWJj ZiAxMDA2NDQKICAJICAgICAgaWYgKGF0dHIyICYmIChEV19VTlNORCAoYXR0cjIpICE9IDApKQog IAkJYWRkX3N5bWJvbF90b19saXN0IChzeW0sICZnbG9iYWxfc3ltYm9scyk7CiAgCSAgICAgIGVs c2UKLUBAIC03NzgwLDYgKzgyMzQsMTEgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC03NzgwLDYg Kzg0NzMsMTEgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBl ICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAJICBTWU1CT0xfQ0xBU1MgKHN5bSkgPSBM T0NfVFlQRURFRjsKICAJICBhZGRfc3ltYm9sX3RvX2xpc3QgKHN5bSwgJmdsb2JhbF9zeW1ib2xz KTsKICAJICBicmVhazsKQEAgLTEwNzg2LDIwICsxMjgxMywzOSBAQCBpbmRleCA1NTg2OGRhLi44 YTM5YmNmIDEwMDY0NAogIAlkZWZhdWx0OgogIAkgIC8qIE5vdCBhIHRhZyB3ZSByZWNvZ25pemUu ICBIb3BlZnVsbHkgd2UgYXJlbid0IHByb2Nlc3NpbmcKICAJICAgICB0cmFzaCBkYXRhLCBidXQg c2luY2Ugd2UgbXVzdCBzcGVjaWZpY2FsbHkgaWdub3JlIHRoaW5ncwotQEAgLTgxOTIsMTAgKzg2 NTEsMjkgQEAgZHdhcmYyX2xpbmthZ2VfbmFtZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQorQEAgLTgxMjgsNiArODgyNiwxOSBAQCBkZXRlcm1pbmVfcHJlZml4 IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgCSAgICAgbWVt YmVyczsgbm8gdHlwZWRlZnMsIG5vIG1lbWJlciBmdW5jdGlvbnMsIGV0IGNldGVyYS4KKyAJICAg ICBTbyBpdCBkb2VzIG5vdCBuZWVkIGEgcHJlZml4LiAgKi8KKyAJICByZXR1cm4gIiI7CisrCisr ICAgICAgY2FzZSBEV19UQUdfc3VicHJvZ3JhbToKKysJLyogQSBjbGFzcydzIHN5bWJvbCwgb3Ig YSB2YXJpYWJsZSdzIHN5bWJvbCwgd2lsbCBsaXZlCisrCSAgIGRpcmVjdGx5IGluIGEgZnVuY3Rp b24ncyBibG9jaywgc28gbm8gcHJlZml4IGlzCisrCSAgIGFwcHJvcHJpYXRlLiAgSG93ZXZlciwg d2hhdCBhYm91dCBtZXRob2RzIG9mIGEKKysJICAgZnVuY3Rpb24tbG9jYWwgY2xhc3M/ICBUaGV5 IGVuZCB1cCBpbiB0aGUgZ2xvYmFsIHN5bWJvbAorKwkgICB0YWJsZSBiZWNhdXNlIHRoZXkgYXJl IHNlcGFyYXRlIGZ1bmN0aW9ucy4uLiB0aGVpciBtYW5nbGluZworKwkgICBub3JtYWxseSB3b3Vs ZCBtYWtlIHRoZW0gaW5hY2Nlc3NpYmxlLiAgVGhleSdsbCBzaG93IHVwCisrCSAgIHdyb25nIGlu IGJyZWFrcG9pbnRzIHRvby4gIFRoaXMgaXMgYSBzeW1wdG9tIG9mIHRoZQorKwkgICBpbmNvbnNp c3RlbnQgd2F5IHdlIGhhbmRsZSBzeW1ib2wgdGFibGVzLiAgTmFtZXNwYWNlcyBhbmQKKysJICAg Y2xhc3NlcyBzaG91bGQgaGF2ZSBkaWN0aW9uYXJpZXMganVzdCBsaWtlIGJsb2NrcyBkby4gICov CisrCXJldHVybiAiIjsKKysKKyAgICAgICBkZWZhdWx0OgorIAlyZXR1cm4gZGV0ZXJtaW5lX3By ZWZpeCAocGFyZW50LCBjdSk7CisgICAgICAgfQorQEAgLTgxOTIsMjMgKzg5MDMsNjIgQEAgZHdh cmYyX2xpbmthZ2VfbmFtZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQogICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX01JUFNfbGlua2FnZV9uYW1l LCBjdSk7CiAgICBpZiAoYXR0ciAmJiBEV19TVFJJTkcgKGF0dHIpKQogICAgICByZXR1cm4gRFdf U1RSSU5HIChhdHRyKTsKIC0gIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9uYW1lLCBj dSk7CiAtICBpZiAoYXR0ciAmJiBEV19TVFJJTkcgKGF0dHIpKQogLSAgICByZXR1cm4gRFdfU1RS SU5HIChhdHRyKTsKLS0gIHJldHVybiBOVUxMOwotKyAgcmV0dXJuIGR3YXJmMl9uYW1lIChkaWUs IGN1KTsKLSt9Ci0rCi0rLyogR2V0IG5hbWUgb2YgYSBkaWUsIHJldHVybiBOVUxMIGlmIG5vdCBm b3VuZC4gICovCi0rCi0rc3RhdGljIGNoYXIgKgorICAgcmV0dXJuIE5VTEw7CisgfQorIAorIC8q IEdldCBuYW1lIG9mIGEgZGllLCByZXR1cm4gTlVMTCBpZiBub3QgZm91bmQuICAqLworIAorIHN0 YXRpYyBjaGFyICoKICtkd2FyZjJfY2Fub25pY2FsaXplX25hbWUgKGNoYXIgKm5hbWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1LAogKwkJCSAgc3RydWN0IG9ic3RhY2sgKm9ic3RhY2spCiArewpAQCAt MTA4MTcsMTAgKzEyODYzLDEzIEBAIGluZGV4IDU1ODY4ZGEuLjhhMzliY2YgMTAwNjQ0CiArICAg IH0KICsKICsgIHJldHVybiBuYW1lOwotIH0KLSAKLSAvKiBHZXQgbmFtZSBvZiBhIGRpZSwgcmV0 dXJuIE5VTEwgaWYgbm90IGZvdW5kLiAgKi8KLUBAIC04MjA2LDkgKzg2ODQsMjkgQEAgZHdhcmYy X25hbWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyt9Cisr CisrLyogR2V0IG5hbWUgb2YgYSBkaWUsIHJldHVybiBOVUxMIGlmIG5vdCBmb3VuZC4gICovCisr Cisrc3RhdGljIGNoYXIgKgorIGR3YXJmMl9uYW1lIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCisgewogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICAKICAg IGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9uYW1lLCBjdSk7CkBAIC0xMDg1Myw3ICsx MjkwMiw3IEBAIGluZGV4IDU1ODY4ZGEuLjhhMzliY2YgMTAwNjQ0CiAgfQogIAogIC8qIFJldHVy biB0aGUgZGllIHRoYXQgdGhpcyBkaWUgaW4gYW4gZXh0ZW5zaW9uIG9mLCBvciBOVUxMIGlmIHRo ZXJlCi1AQCAtODcwMyw2ICs5MjAxLDggQEAgZHdhcmZfZm9ybV9uYW1lICh1bnNpZ25lZCBmb3Jt KQorQEAgLTg3MDMsNiArOTQ1Myw4IEBAIGR3YXJmX2Zvcm1fbmFtZSAodW5zaWduZWQgZm9ybSkK ICAgICAgICByZXR1cm4gIkRXX0ZPUk1fcmVmX3VkYXRhIjsKICAgICAgY2FzZSBEV19GT1JNX2lu ZGlyZWN0OgogICAgICAgIHJldHVybiAiRFdfRk9STV9pbmRpcmVjdCI7CkBAIC0xMDg2Miw3ICsx MjkxMSw3IEBAIGluZGV4IDU1ODY4ZGEuLjhhMzliY2YgMTAwNjQ0CiAgICAgIGRlZmF1bHQ6CiAg ICAgICAgcmV0dXJuICJEV19GT1JNXzx1bmtub3duPiI7CiAgICAgIH0KLUBAIC05MjQ4LDYgKzk3 NDgsNyBAQCBkdW1wX2RpZV9zaGFsbG93IChzdHJ1Y3QgdWlfZmlsZSAqZiwgaW50IGluZGVudCwg c3RydWN0IGRpZV9pbmZvICpkaWUpCitAQCAtOTI0OCw2ICsxMDAwMCw3IEBAIGR1bXBfZGllX3No YWxsb3cgKHN0cnVjdCB1aV9maWxlICpmLCBpbnQgaW5kZW50LCBzdHJ1Y3QgZGllX2luZm8gKmRp ZSkKICAJICBicmVhazsKICAJY2FzZSBEV19GT1JNX3N0cmluZzoKICAJY2FzZSBEV19GT1JNX3N0 cnA6CkBAIC0xMDg3MCw3ICsxMjkxOSw3IEBAIGluZGV4IDU1ODY4ZGEuLjhhMzliY2YgMTAwNjQ0 CiAgCSAgZnByaW50Zl91bmZpbHRlcmVkIChmLCAic3RyaW5nOiBcIiVzXCIiLAogIAkJICAgRFdf U1RSSU5HICgmZGllLT5hdHRyc1tpXSkKICAJCSAgID8gRFdfU1RSSU5HICgmZGllLT5hdHRyc1tp XSkgOiAiIik7Ci1AQCAtOTM1MywyNiArOTg1NCwzNSBAQCBkd2FyZjJfZ2V0X3JlZl9kaWVfb2Zm c2V0IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQorQEAgLTkzNTMsMjYgKzEwMTA2LDM1IEBAIGR3 YXJmMl9nZXRfcmVmX2RpZV9vZmZzZXQgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIpCiAgICByZXR1 cm4gcmVzdWx0OwogIH0KICAKQEAgLTEwOTAwLDcgKzEyOTQ5LDcgQEAgaW5kZXggNTU4NjhkYS4u OGEzOWJjZiAxMDA2NDQKIC0gICAgICByZXR1cm4gZGVmYXVsdF92YWx1ZTsKICsgICAgICAqdmFs X3JldHVybiA9IERXX1NORCAoYXR0cik7CiArICAgICAgcmV0dXJuIGR3YXJmMl9hdHRyX2NvbnN0 OwotKyAgICB9CisgICAgIH0KICsgIGlmIChhdHRyLT5mb3JtID09IERXX0ZPUk1fdWRhdGEKICsg ICAgICB8fCBhdHRyLT5mb3JtID09IERXX0ZPUk1fZGF0YTEKICsgICAgICB8fCBhdHRyLT5mb3Jt ID09IERXX0ZPUk1fZGF0YTIKQEAgLTEwOTA5LDcgKzEyOTU4LDcgQEAgaW5kZXggNTU4NjhkYS4u OGEzOWJjZiAxMDA2NDQKICsgICAgewogKyAgICAgICp2YWxfcmV0dXJuID0gRFdfVU5TTkQgKGF0 dHIpOwogKyAgICAgIHJldHVybiBkd2FyZjJfYXR0cl9jb25zdDsKLSAgICAgfQorKyAgICB9CiAr ICBpZiAoYXR0ci0+Zm9ybSA9PSBEV19GT1JNX2Jsb2NrCiArICAgICAgfHwgYXR0ci0+Zm9ybSA9 PSBEV19GT1JNX2Jsb2NrMQogKyAgICAgIHx8IGF0dHItPmZvcm0gPT0gRFdfRk9STV9ibG9jazIK QEAgLTEwOTIxLDcgKzEyOTcwLDcgQEAgaW5kZXggNTU4NjhkYS4uOGEzOWJjZiAxMDA2NDQKICB9 CiAgCiAgLyogVEhJU19DVSBoYXMgYSByZWZlcmVuY2UgdG8gUEVSX0NVLiAgSWYgbmVjZXNzYXJ5 LCBsb2FkIHRoZSBuZXcgY29tcGlsYXRpb24KLUBAIC05OTYzLDYgKzEwNDczLDE3IEBAIGR3YXJm X2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZz ZXQsCitAQCAtOTk2Myw2ICsxMDcyNSwxNyBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3Qg bGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogIHsKICAgIGdkYl9ieXRlICpt YWNfcHRyLCAqbWFjX2VuZDsKICAgIHN0cnVjdCBtYWNyb19zb3VyY2VfZmlsZSAqY3VycmVudF9m aWxlID0gMDsKQEAgLTEwOTM5LDcgKzEyOTg4LDcgQEAgaW5kZXggNTU4NjhkYS4uOGEzOWJjZiAx MDA2NDQKICAKICAgIGlmIChkd2FyZjJfcGVyX29iamZpbGUtPm1hY2luZm9fYnVmZmVyID09IE5V TEwpCiAgICAgIHsKLUBAIC05OTcwLDE5ICsxMDQ5MSwyNCBAQCBkd2FyZl9kZWNvZGVfbWFjcm9z IChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorQEAgLTk5NzAs MTkgKzEwNzQzLDI0IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAq bGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgCkBAIC0x MDk2OCw3ICsxMzAxNyw3IEBAIGluZGV4IDU1ODY4ZGEuLjhhMzliY2YgMTAwNjQ0CiAgICAgICAg ICB9CiAgCiAgICAgICAgbWFjaW5mb190eXBlID0gcmVhZF8xX2J5dGUgKGFiZmQsIG1hY19wdHIp OwotQEAgLTk5OTMsNyArMTA1MTksODEgQEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxp bmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9mZnNldCwKK0BAIC05OTkzLDcgKzEwNzcxLDgx IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVk IGludCBvZmZzZXQsCiAgICAgICAgICAgIC8qIEEgemVybyBtYWNpbmZvIHR5cGUgaW5kaWNhdGVz IHRoZSBlbmQgb2YgdGhlIG1hY3JvCiAgICAgICAgICAgICAgIGluZm9ybWF0aW9uLiAgKi8KICAg ICAgICAgIGNhc2UgMDoKQEAgLTExMDUxLDcgKzEzMTAwLDcgQEAgaW5kZXggNTU4NjhkYS4uOGEz OWJjZiAxMDA2NDQKICAKICAgICAgICAgIGNhc2UgRFdfTUFDSU5GT19kZWZpbmU6CiAgICAgICAg ICBjYXNlIERXX01BQ0lORk9fdW5kZWY6Ci1AQCAtMTAwMDgsMTkgKzEwNjA4LDMxIEBAIGR3YXJm X2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZz ZXQsCitAQCAtMTAwMDgsMTkgKzEwODYwLDMxIEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVj dCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgICAgICAgbWFj X3B0ciArPSBieXRlc19yZWFkOwogIAogICAgICAgICAgICAgIGlmICghIGN1cnJlbnRfZmlsZSkK QEAgLTExMDk0LDcgKzEzMTQzLDcgQEAgaW5kZXggNTU4NjhkYS4uOGEzOWJjZiAxMDA2NDQKICAg ICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAKLUBAIC0xMDAzNCw5ICsxMDY0NiwyMiBA QCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBp bnQgb2Zmc2V0LAorQEAgLTEwMDM0LDkgKzEwODk4LDIyIEBAIGR3YXJmX2RlY29kZV9tYWNyb3Mg KHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgICAg ICAgZmlsZSA9IHJlYWRfdW5zaWduZWRfbGViMTI4IChhYmZkLCBtYWNfcHRyLCAmYnl0ZXNfcmVh ZCk7CiAgICAgICAgICAgICAgbWFjX3B0ciArPSBieXRlc19yZWFkOwogIApAQCAtMTExMjAsNyAr MTMxNjksNyBAQCBpbmRleCA1NTg2OGRhLi44YTM5YmNmIDEwMDY0NAogICAgICAgICAgICB9CiAg ICAgICAgICAgIGJyZWFrOwogIAotQEAgLTEwMDkwLDcgKzEwNzE1LDcgQEAgZHdhcmZfZGVjb2Rl X21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9mZnNldCwKK0BA IC0xMDA5MCw3ICsxMDk2Nyw3IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hl YWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgICAgIH0KICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgICB9CkBAIC0xMTEyOSw3ICsxMzE3OCw3IEBAIGluZGV4IDU1ODY4ZGEu LjhhMzliY2YgMTAwNjQ0CiAgfQogIAogIC8qIENoZWNrIGlmIHRoZSBhdHRyaWJ1dGUncyBmb3Jt IGlzIGEgRFdfRk9STV9ibG9jayoKLUBAIC0xMDE1MCw2ICsxMDc3NSwzNCBAQCBhdHRyX2Zvcm1f aXNfY29uc3RhbnQgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIpCitAQCAtMTAxNTAsNiArMTEwMjcs MzQgQEAgYXR0cl9mb3JtX2lzX2NvbnN0YW50IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQogICAg ICB9CiAgfQogIApAQCAtMTExNjQsNyArMTMyMTMsNyBAQCBpbmRleCA1NTg2OGRhLi44YTM5YmNm IDEwMDY0NAogIHN0YXRpYyB2b2lkCiAgZHdhcmYyX3N5bWJvbF9tYXJrX2NvbXB1dGVkIChzdHJ1 Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCiAgCQkJICAgICBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKLUBAIC0xMDE3OSwzNSArMTA4MzIsMjQgQEAgZHdhcmYyX3N5bWJvbF9t YXJrX2NvbXB1dGVkIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0s CitAQCAtMTAxNzksMzUgKzExMDg0LDI0IEBAIGR3YXJmMl9zeW1ib2xfbWFya19jb21wdXRlZCAo c3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IHN5bWJvbCAqc3ltLAogICAgICAgIFNZTUJP TF9PUFMgKHN5bSkgPSAmZHdhcmYyX2xvY2xpc3RfZnVuY3M7CiAgICAgICAgU1lNQk9MX0xPQ0FU SU9OX0JBVE9OIChzeW0pID0gYmF0b247CiAgICAgIH0KQEAgLTExMjE0LDcgKzEzMjYzLDcgQEAg aW5kZXggNTU4NjhkYS4uOGEzOWJjZiAxMDA2NDQKICAgICAgfQogIH0KICAKLUBAIC0xMDQ4Miw2 ICsxMTEyNCwzMSBAQCBvZmZzZXRfYW5kX3R5cGVfZXEgKGNvbnN0IHZvaWQgKml0ZW1fbGhzLCBj b25zdCB2b2lkICppdGVtX3JocykKK0BAIC0xMDQ4Miw2ICsxMTM3NiwzMSBAQCBvZmZzZXRfYW5k X3R5cGVfZXEgKGNvbnN0IHZvaWQgKml0ZW1fbGhzLCBjb25zdCB2b2lkICppdGVtX3JocykKICAg IHJldHVybiBvZnNfbGhzLT5vZmZzZXQgPT0gb2ZzX3Jocy0+b2Zmc2V0OwogIH0KICAKQEAgLTEx MjQ2LDcgKzEzMjk1LDcgQEAgaW5kZXggNTU4NjhkYS4uOGEzOWJjZiAxMDA2NDQKICAvKiBTZXQg dGhlIHR5cGUgYXNzb2NpYXRlZCB3aXRoIERJRSB0byBUWVBFLiAgU2F2ZSBpdCBpbiBDVSdzIGhh c2gKICAgICB0YWJsZSBpZiBuZWNlc3NhcnkuICBGb3IgY29udmVuaWVuY2UsIHJldHVybiBUWVBF LiAgKi8KICAKLUBAIC0xMDQ5MCw2ICsxMTE1Nyw4IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BA IC0xMDQ5MCw2ICsxMTQwOSw4IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7CiAgICBzdHJ1Y3Qg ZHdhcmYyX29mZnNldF9hbmRfdHlwZSAqKnNsb3QsIG9mczsKICAKQEAgLTExMjg4LDE2ICsxMzMz NywxOCBAQCBpbmRleCBmZjIyMGEyLi4xMzE1OGY0IDEwMDY0NAogICAgZGVmYXVsdF9zeW1maWxl X29mZnNldHMsCS8qIHN5bV9vZmZzZXRzOiAgVHJhbnNsYXRlIGV4dC4gdG8gaW50LiByZWxvY2F0 aW9uICovCiAgICBlbGZfc3ltZmlsZV9zZWdtZW50cywJCS8qIHN5bV9zZWdtZW50czogR2V0IHNl Z21lbnQgaW5mb3JtYXRpb24gZnJvbQogZGlmZiAtLWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZh bC5jCi1pbmRleCAxZDM1NTcxLi5mM2M5NTY0IDEwMDY0NAoraW5kZXggMWQzNTU3MS4uYjJhMTkz MSAxMDA2NDQKIC0tLSBhL2dkYi9ldmFsLmMKICsrKyBiL2dkYi9ldmFsLmMKLUBAIC0zOSwxMCAr MzksMTQgQEAKK0BAIC0zOSwxMCArMzksMTYgQEAKICAjaW5jbHVkZSAiZXhjZXB0aW9ucy5oIgog ICNpbmNsdWRlICJyZWdjYWNoZS5oIgogICNpbmNsdWRlICJ1c2VyLXJlZ3MuaCIKICsjaW5jbHVk ZSAicHl0aG9uL3B5dGhvbi5oIgogICNpbmNsdWRlICJ2YWxwcmludC5oIgogKyNpbmNsdWRlICJk d2FyZjJsb2MuaCIKKysjaW5jbHVkZSAiZ2RiX29ic3RhY2suaCIKKysjaW5jbHVkZSAib2JqZmls ZXMuaCIKICAKICAjaW5jbHVkZSAiZ2RiX2Fzc2VydC5oIgogIApAQCAtMTEzMDYsNyArMTMzNTcs NzIgQEAgaW5kZXggMWQzNTU3MS4uZjNjOTU2NCAxMDA2NDQKICAvKiBUaGlzIGlzIGRlZmluZWQg aW4gdmFsb3BzLmMgKi8KICBleHRlcm4gaW50IG92ZXJsb2FkX3Jlc29sdXRpb247CiAgCi1AQCAt NjcxLDYgKzY3NSw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4 cGVjdF90eXBlLAorQEAgLTY1MSw2ICs2NTcsNjQgQEAgcHRybWF0aF90eXBlX3AgKHN0cnVjdCB0 eXBlICp0eXBlKQorICAgICB9CisgfQorIAorKy8qIENvbXBhcmVzIHRoZSB0d28gbWV0aG9kL2Z1 bmN0aW9uIHR5cGVzIFQxIGFuZCBUMiBmb3IgImVxdWFsaXR5IiAKKysgICB3aXRoIHJlc3BlY3Qg dG8gdGhlIHRoZSBtZXRob2RzJyBwYXJhbWV0ZXJzLiBJZiB0aGUgdHlwZXMgb2YgdGhlCisrICAg dHdvIHBhcmFtZXRlciBsaXN0cyBhcmUgdGhlIHNhbWUsIHJldHVybnMgMTsgMCBvdGhlcndpc2Uu IFRoaXMKKysgICBjb21wYXJpc29uIGlnbm9yZXMgYW55IGFydGlmaWNpYWwgdGhpcyBwb2ludGVy LiAqLworK2ludAorK2NvbXBhcmVfcGFyYW1ldGVycyAoc3RydWN0IHR5cGUgKnQxLCBzdHJ1Y3Qg dHlwZSAqdDIpCisreworKyAgaW50IGksIGhhc190aGlzOworKyAgLyogSGFja3k6IHdlIGRvbid0 IGtub3cgYSBwcmlvcmkgd2hldGhlciBvciBub3QgdDEgaXMgYSBzdGF0aWMKKysgICAgIG1ldGhv ZCwgc28gd2Ugc2tpcCBhbnkgYXJ0aWZpY2lhbCAidGhpcyIgcG9pbnRlciBhbmQgaG9wZQorKyAg ICAgZm9yIHRoZSBiZXN0LiB0Miwgd2hpY2ggY29tZXMgYXMgdXNlciBpbnB1dCwgbmV2ZXIgY29u dGFpbnMgYQorKyAgICAgInRoaXMiIHBvaW50ZXIgKGEgdXNlciB3b3VsZCBuZXZlciBlbnRlciBp dCBpbnRvIGV4cHJlc3Npb25zLiAqLworKyAgaWYgKFRZUEVfTkZJRUxEUyAodDEpID4gMCkKKysg ICAgaGFzX3RoaXMgPSBUWVBFX0ZJRUxEX0FSVElGSUNJQUwgKHQxLCAwKSA/IDEgOiAwOworKyAg ZWxzZQorKyAgICBoYXNfdGhpcyA9IDA7CisrCisrICAvKiBTcGVjaWFsIGNhc2U6IGEgbWV0aG9k IHRha2luZyB2b2lkLiB0MSB3aWxsIGNvbnRhaW4gZWl0aGVyCisrICAgICBubyBmaWVsZHMgb3Ig anVzdCAidGhpcyIuIHQyIHdpbGwgY29udGFpbiBUWVBFX0NPREVfVk9JRC4gKi8KKysgIGlmICgo VFlQRV9ORklFTERTICh0MSkgLSBoYXNfdGhpcykgPT0gMCAmJiBUWVBFX05GSUVMRFMgKHQyKSA9 PSAxCisrICAgICAgJiYgVFlQRV9DT0RFIChUWVBFX0ZJRUxEX1RZUEUgKHQyLCAwKSkgPT0gVFlQ RV9DT0RFX1ZPSUQpCisrICAgIHJldHVybiAxOworKworKyAgaWYgKChUWVBFX05GSUVMRFMgKHQx KSAtIGhhc190aGlzKSA9PSBUWVBFX05GSUVMRFMgKHQyKSkKKysgICAgeworKyAgICAgIGZvciAo aSA9IGhhc190aGlzOyBpIDwgVFlQRV9ORklFTERTICh0MSk7ICsraSkKKysJeworKwkgIGlmIChy YW5rX29uZV90eXBlIChUWVBFX0ZJRUxEX1RZUEUgKHQxLCBpKSwKKysJCQkgICAgIFRZUEVfRklF TERfVFlQRSAodDIsIGkgLSBoYXNfdGhpcykpCisrCSAgICAgICE9IDApCisrCSAgICByZXR1cm4g MDsKKysJfQorKworKyAgICAgIHJldHVybiAxOworKyAgICB9CisrCisrICByZXR1cm4gMDsKKyt9 CisrCisrLyogQ29uc3RydWN0cyBhIGZha2UgbWV0aG9kIHdpdGggdGhlIGdpdmVuIHBhcmFtZXRl ciB0eXBlcy4gKi8KKysKKytzdGF0aWMgc3RydWN0IHR5cGUgKgorK21ha2VfcGFyYW1zIChpbnQg bnVtX3R5cGVzLCBzdHJ1Y3QgdHlwZSAqKnBhcmFtX3R5cGVzKQorK3sKKysgIHN0cnVjdCB0eXBl ICp0eXBlID0gYWxsb2NfdHlwZSAoTlVMTCwgTlVMTCk7CisrICBUWVBFX0xFTkdUSCAodHlwZSkg PSAxOworKyAgVFlQRV9DT0RFICh0eXBlKSA9IFRZUEVfQ09ERV9NRVRIT0Q7CisrICBUWVBFX05G SUVMRFMgKHR5cGUpID0gbnVtX3R5cGVzOworKyAgVFlQRV9GSUVMRFMgKHR5cGUpID0gKHN0cnVj dCBmaWVsZCAqKQorKyAgICBUWVBFX0FMTE9DICh0eXBlLCBzaXplb2YgKHN0cnVjdCBmaWVsZCkg KiBudW1fdHlwZXMpOworKyAgbWVtc2V0IChUWVBFX0ZJRUxEUyAodHlwZSksIDAsIHNpemVvZiAo c3RydWN0IGZpZWxkKSAqIG51bV90eXBlcyk7CisrCisrICB3aGlsZSAobnVtX3R5cGVzLS0gPiAw KQorKyAgICBUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIG51bV90eXBlcykgPSBwYXJhbV90eXBlc1tu dW1fdHlwZXNdOworKworKyAgcmV0dXJuIHR5cGU7CisrfQorKworIHN0cnVjdCB2YWx1ZSAqCisg ZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCisgCQkJ ICBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywKK0BAIC02NzEsNiArNzM1LDcgQEAg ZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgICBs b25nIG1lbV9vZmZzZXQ7CiAgICBzdHJ1Y3QgdHlwZSAqKmFyZ190eXBlczsKICAgIGludCBzYXZl X3BvczE7CkBAIC0xMTMxNCw3ICsxMzQzMCwxNiBAQCBpbmRleCAxZDM1NTcxLi5mM2M5NTY0IDEw MDY0NAogIAogICAgcGMgPSAoKnBvcykrKzsKICAgIG9wID0gZXhwLT5lbHRzW3BjXS5vcGNvZGU7 Ci1AQCAtMTIwOCw5ICsxMjEzLDkgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3Qg dHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtNjg0LDcgKzc0OSw3IEBAIGV2YWx1YXRlX3N1YmV4cF9z dGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorIAlnb3RvIG5vc2lkZXJldDsKKyAg ICAgICBhcmcxID0gdmFsdWVfYWdncmVnYXRlX2VsdCAoZXhwLT5lbHRzW3BjICsgMV0udHlwZSwK KyAJCQkJICAmZXhwLT5lbHRzW3BjICsgM10uc3RyaW5nLAorLQkJCQkgIDAsIG5vc2lkZSk7Cisr CQkJCSAgZXhwZWN0X3R5cGUsIDAsIG5vc2lkZSk7CisgICAgICAgaWYgKGFyZzEgPT0gTlVMTCkK KyAJZXJyb3IgKF8oIlRoZXJlIGlzIG5vIGZpZWxkIG5hbWVkICVzIiksICZleHAtPmVsdHNbcGMg KyAzXS5zdHJpbmcpOworICAgICAgIHJldHVybiBhcmcxOworQEAgLTEyMDgsOSArMTI3Myw5IEBA IGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAogIAkg ICAgaWYgKFRZUEVfQ09ERSAodmFsdWVfdHlwZSAobWV0aG9kKSkgIT0gVFlQRV9DT0RFX0ZVTkMp CiAgCSAgICAgIGVycm9yIChfKCJtZXRob2QgYWRkcmVzcyBoYXMgc3ltYm9sIGluZm9ybWF0aW9u IHdpdGggbm9uLWZ1bmN0aW9uIHR5cGU7IHNraXBwaW5nIikpOwogIAkgICAgaWYgKHN0cnVjdF9y ZXR1cm4pCkBAIC0xMTMyNiw3ICsxMzQ1MSw2OCBAQCBpbmRleCAxZDM1NTcxLi5mM2M5NTY0IDEw MDY0NAogIAkgICAgY2FsbGVkX21ldGhvZCA9IG1ldGhvZDsKICAJICB9CiAgCWVsc2UKLUBAIC0x NDM0LDcgKzE0MzksNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpl eHBlY3RfdHlwZSwKK0BAIC0xMjg0LDcgKzEzNDksNiBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRh cmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKKyAgICAgICBhcmd2ZWMgPSAoc3RydWN0IHZh bHVlICoqKSBhbGxvY2EgKHNpemVvZiAoc3RydWN0IHZhbHVlICopICogKG5hcmdzICsgMykpOwor ICAgICAgIGlmIChvcCA9PSBTVFJVQ1RPUF9NRU1CRVIgfHwgb3AgPT0gU1RSVUNUT1BfTVBUUikK KyAJeworLQkgIG5hcmdzKys7CisgCSAgLyogRmlyc3QsIGV2YWx1YXRlIHRoZSBzdHJ1Y3R1cmUg aW50byBhcmcyICovCisgCSAgcGMyID0gKCpwb3MpKys7CisgCitAQCAtMTMwOCwyMSArMTM3Miw0 MCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwK KyAKKyAJICBhcmcxID0gZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwgcG9zLCBub3Np ZGUpOworIAorLQkgIGlmIChUWVBFX0NPREUgKGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFy ZzEpKSkKKy0JICAgICAgIT0gVFlQRV9DT0RFX01FVEhPRFBUUikKKy0JICAgIGVycm9yIChfKCJO b24tcG9pbnRlci10by1tZW1iZXIgdmFsdWUgdXNlZCBpbiBwb2ludGVyLXRvLW1lbWJlciAiCist CQkgICAgICJjb25zdHJ1Y3QiKSk7CistCistCSAgaWYgKG5vc2lkZSA9PSBFVkFMX0FWT0lEX1NJ REVfRUZGRUNUUykKKysJICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnMSkp OworKwkgIHN3aXRjaCAoVFlQRV9DT0RFICh0eXBlKSkKKyAJICAgIHsKKy0JICAgICAgc3RydWN0 IHR5cGUgKm1ldGhvZF90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnMSkpOwor LQkgICAgICBhcmcxID0gdmFsdWVfemVybyAobWV0aG9kX3R5cGUsIG5vdF9sdmFsKTsKKysJICAg IGNhc2UgVFlQRV9DT0RFX01FVEhPRFBUUjoKKysJICAgICAgaWYgKG5vc2lkZSA9PSBFVkFMX0FW T0lEX1NJREVfRUZGRUNUUykKKysJCWFyZzEgPSB2YWx1ZV96ZXJvIChUWVBFX1RBUkdFVF9UWVBF ICh0eXBlKSwgbm90X2x2YWwpOworKwkgICAgICBlbHNlCisrCQlhcmcxID0gY3BsdXNfbWV0aG9k X3B0cl90b192YWx1ZSAoJmFyZzIsIGFyZzEpOworKworKwkgICAgICAvKiBOb3csIHNheSB3aGlj aCBhcmd1bWVudCB0byBzdGFydCBldmFsdWF0aW5nIGZyb20gKi8KKysJICAgICAgbmFyZ3MrKzsK KysJICAgICAgdGVtID0gMjsKKysJICAgICAgYXJndmVjWzFdID0gYXJnMjsKKysJICAgICAgYnJl YWs7CisrCisrCSAgICBjYXNlIFRZUEVfQ09ERV9NRU1CRVJQVFI6CisrCSAgICAgIC8qIE5vdywg Y29udmVydCB0aGVzZSB2YWx1ZXMgdG8gYW4gYWRkcmVzcy4gICovCisrCSAgICAgIGFyZzIgPSB2 YWx1ZV9jYXN0IChsb29rdXBfcG9pbnRlcl90eXBlIChUWVBFX0RPTUFJTl9UWVBFICh0eXBlKSks CisrCQkJCSBhcmcyKTsKKysKKysJICAgICAgbWVtX29mZnNldCA9IHZhbHVlX2FzX2xvbmcgKGFy ZzEpOworKworKwkgICAgICBhcmcxID0gdmFsdWVfZnJvbV9wb2ludGVyIChsb29rdXBfcG9pbnRl cl90eXBlIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSksCisrCQkJCQkgdmFsdWVfYXNfbG9uZyAo YXJnMikgKyBtZW1fb2Zmc2V0KTsKKysJICAgICAgYXJnMSA9IHZhbHVlX2luZCAoYXJnMSk7Cisr CSAgICAgIHRlbSA9IDE7CisrCSAgICAgIGJyZWFrOworKworKwkgICAgZGVmYXVsdDoKKysJICAg ICAgZXJyb3IgKF8oIk5vbi1wb2ludGVyLXRvLW1lbWJlciB2YWx1ZSB1c2VkIGluIHBvaW50ZXIt dG8tbWVtYmVyICIKKysJCSAgICAgICAiY29uc3RydWN0IikpOworIAkgICAgfQorLQkgIGVsc2UK Ky0JICAgIGFyZzEgPSBjcGx1c19tZXRob2RfcHRyX3RvX3ZhbHVlICgmYXJnMiwgYXJnMSk7Cisg CistCSAgLyogTm93LCBzYXkgd2hpY2ggYXJndW1lbnQgdG8gc3RhcnQgZXZhbHVhdGluZyBmcm9t ICovCistCSAgdGVtID0gMjsKKysJICBhcmd2ZWNbMF0gPSBhcmcxOworIAl9CisgICAgICAgZWxz ZSBpZiAob3AgPT0gU1RSVUNUT1BfU1RSVUNUIHx8IG9wID09IFNUUlVDVE9QX1BUUikKKyAJewor QEAgLTE0MzQsNyArMTUxNyw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5 cGUgKmV4cGVjdF90eXBlLAogIAkgCSBvZiB0aGUgYGB0aGlzJycgcG9pbnRlciBpZiBuZWNlc3Nh cnksIHNvIG1vZGlmeSBhcmd2ZWNbMV0gdG8KICAJCSByZWZsZWN0IGFueSBgYHRoaXMnJyBjaGFu Z2VzLiAgKi8KICAJICAgICAgYXJnMiA9IHZhbHVlX2Zyb21fbG9uZ2VzdCAobG9va3VwX3BvaW50 ZXJfdHlwZSh2YWx1ZV90eXBlICh0ZW1wKSksCkBAIC0xMTMzNSw3ICsxMzUyMSwxNyBAQCBpbmRl eCAxZDM1NTcxLi5mM2M5NTY0IDEwMDY0NAogIAkJCQkJICsgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0 ICh0ZW1wKSk7CiAgCSAgICAgIGFyZ3ZlY1sxXSA9IGFyZzI7CS8qIHRoZSBgYHRoaXMnJyBwb2lu dGVyICovCiAgCSAgICB9Ci1AQCAtMTUxMiw2ICsxNTE3LDkgQEAgZXZhbHVhdGVfc3ViZXhwX3N0 YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMTQ0OCw4ICsxNTMxLDcgQEAg ZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCisgCX0K KyAgICAgICBlbHNlIGlmIChvcCA9PSBTVFJVQ1RPUF9NRU1CRVIgfHwgb3AgPT0gU1RSVUNUT1Bf TVBUUikKKyAJeworLQkgIGFyZ3ZlY1sxXSA9IGFyZzI7CistCSAgYXJndmVjWzBdID0gYXJnMTsK KysJICAvKiBQb2ludGVyIHRvIG1lbWJlci4gIGFyZ3ZlYyBpcyBhbHJlYWR5IHNldCB1cC4gICov CisgCX0KKyAgICAgICBlbHNlIGlmIChvcCA9PSBPUF9WQVJfVkFMVUUpCisgCXsKK0BAIC0xNTEy LDYgKzE1OTQsOSBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBl Y3RfdHlwZSwKICAJICBlbHNlCiAgCSAgICBlcnJvciAoXygiRXhwcmVzc2lvbiBvZiB0eXBlIG90 aGVyIHRoYW4gXCJGdW5jdGlvbiByZXR1cm5pbmcgLi4uXCIgdXNlZCBhcyBmdW5jdGlvbiIpKTsK ICAJfQpAQCAtMTEzNDUsNyArMTM1NDEsNyBAQCBpbmRleCAxZDM1NTcxLi5mM2M5NTY0IDEwMDY0 NAogICAgICAgIHJldHVybiBjYWxsX2Z1bmN0aW9uX2J5X2hhbmQgKGFyZ3ZlY1swXSwgbmFyZ3Ms IGFyZ3ZlYyArIDEpOwogICAgICAgIC8qIHBhaTogRklYTUUgc2F2ZSB2YWx1ZSBmcm9tIGNhbGxf ZnVuY3Rpb25fYnlfaGFuZCwgdGhlbiBhZGp1c3QgcGMgYnkgYWRqdXN0X2ZuX3BjIGlmICt2ZSAg Ki8KICAKLUBAIC0xNTI5LDcgKzE1MzcsMTAgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChz dHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMTUyOSw3ICsxNjE0LDEwIEBAIGV2YWx1YXRl X3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAogIAogICAgICAgIC8q IEZpcnN0IGRldGVybWluZSB0aGUgdHlwZSBjb2RlIHdlIGFyZSBkZWFsaW5nIHdpdGguICAqLwog ICAgICAgIGFyZzEgPSBldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lk ZSk7CkBAIC0xMTM1Niw3ICsxMzU1Miw0NSBAQCBpbmRleCAxZDM1NTcxLi5mM2M5NTY0IDEwMDY0 NAogICAgICAgIGNvZGUgPSBUWVBFX0NPREUgKHR5cGUpOwogIAogICAgICAgIGlmIChjb2RlID09 IFRZUEVfQ09ERV9QVFIpCi1AQCAtMTk2MywxMyArMTk3NCwxOSBAQCBldmFsdWF0ZV9zdWJleHBf c3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0xNjk2LDYgKzE3ODQsMzcg QEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCisg CSAgZXJyb3IgKF8oIm5vbi1wb2ludGVyLXRvLW1lbWJlciB2YWx1ZSB1c2VkIGluIHBvaW50ZXIt dG8tbWVtYmVyIGNvbnN0cnVjdCIpKTsKKyAJfQorIAorKyAgICBjYXNlIFRZUEVfSU5TVEFOQ0U6 CisrICAgICAgbmFyZ3MgPSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRzW3BjICsgMV0ubG9uZ2Nv bnN0KTsKKysgICAgICBhcmdfdHlwZXMgPSAoc3RydWN0IHR5cGUgKiopIGFsbG9jYSAobmFyZ3Mg KiBzaXplb2YgKHN0cnVjdCB0eXBlICopKTsKKysgICAgICBmb3IgKGl4ID0gMDsgaXggPCBuYXJn czsgKytpeCkKKysJYXJnX3R5cGVzW2l4XSA9IGV4cC0+ZWx0c1twYyArIDEgKyBpeCArIDFdLnR5 cGU7CisrCisrICAgICAgZXhwZWN0X3R5cGUgPSBtYWtlX3BhcmFtcyAobmFyZ3MsIGFyZ190eXBl cyk7CisrICAgICAgKihwb3MpICs9IDMgKyBuYXJnczsKKysgICAgICByZXR1cm4gZXZhbHVhdGVf c3ViZXhwX3N0YW5kYXJkIChleHBlY3RfdHlwZSwgZXhwLCBwb3MsIG5vc2lkZSk7CisrCisrICAg IGNhc2UgVFlQRV9JTlNUQU5DRV9MT09LVVA6CisrICAgICAgeworKwlpbnQgaTsKKysJc3RydWN0 IHN5bWJvbCAqc3ltOworKwlzdHJ1Y3QgdHlwZSAqKmFyZ190eXBlczsKKysJKCpwb3MpICs9IDM7 CisrCXByaW50ZiAoIlRZUEVfSU5TVEFOQ0VfTE9PS1VQXG4iKTsKKysJYXJnX3R5cGVzID0gKHN0 cnVjdCB0eXBlICoqKSBhbGxvY2EgKFRZUEVfTkZJRUxEUyAoZXhwZWN0X3R5cGUpCisrCQkJCQkg ICAgICogc2l6ZW9mIChzdHJ1Y3QgdHlwZSAqKSk7CisrCWZvciAoaSA9IDA7IGkgPCBUWVBFX05G SUVMRFMgKGV4cGVjdF90eXBlKTsgKytpKQorKwkgIGFyZ190eXBlc1tpXSA9IFRZUEVfRklFTERf VFlQRSAoZXhwZWN0X3R5cGUsIGkpOworKwkodm9pZCkgZmluZF9vdmVybG9hZF9tYXRjaCAoYXJn X3R5cGVzLCBUWVBFX05GSUVMRFMgKGV4cGVjdF90eXBlKSwKKysJCQkJICAgIE5VTEwgLyogbm8g bmVlZCBmb3IgbmFtZSAqLywKKysJCQkJICAgIDAgLyogbm90IG1ldGhvZCAqLywKKysJCQkJICAg IDAgLyogc3RyaWN0IG1hdGNoICovLAorKwkJCQkgICAgTlVMTCwgZXhwLT5lbHRzW3BjICsgMV0u c3ltYm9sLCBOVUxMLAorKwkJCQkgICAgJnN5bSwgTlVMTCk7CisrCWkgPSAwOworKyAgICAgIH0K KysgICAgICBicmVhazsKKysKKyAgICAgY2FzZSBCSU5PUF9DT05DQVQ6CisgICAgICAgYXJnMSA9 IGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uIChleHAsIHBvcywgbm9zaWRlKTsKKyAgICAg ICBhcmcyID0gZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUp OworQEAgLTE5NjMsMTMgKzIwODIsMTkgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1 Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgICAgICAgewogIAlpbnQgc3Vic2NyaXB0X2FycmF5W01B WF9GT1JUUkFOX0RJTVNdOwogIAlpbnQgYXJyYXlfc2l6ZV9hcnJheVtNQVhfRk9SVFJBTl9ESU1T XTsKQEAgLTExMzc2LDcgKzEzNjEwLDcgQEAgaW5kZXggMWQzNTU3MS4uZjNjOTU2NCAxMDA2NDQK ICAJdG1wX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcxKSk7CiAgCW5kaW1l bnNpb25zID0gY2FsY19mNzdfYXJyYXlfZGltcyAodHlwZSk7CiAgCi1AQCAtMTk5OSw2ICsyMDE2 LDkgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUs CitAQCAtMTk5OSw2ICsyMTI0LDkgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3Qg dHlwZSAqZXhwZWN0X3R5cGUsCiAgCSAgICB1cHBlciA9IGY3N19nZXRfdXBwZXJib3VuZCAodG1w X3R5cGUpOwogIAkgICAgbG93ZXIgPSBmNzdfZ2V0X2xvd2VyYm91bmQgKHRtcF90eXBlKTsKICAK QEAgLTExMzg2LDcgKzEzNjIwLDcgQEAgaW5kZXggMWQzNTU3MS4uZjNjOTU2NCAxMDA2NDQKICAJ ICAgIGFycmF5X3NpemVfYXJyYXlbbmFyZ3MgLSBpIC0gMV0gPSB1cHBlciAtIGxvd2VyICsgMTsK ICAKICAJICAgIC8qIFplcm8tbm9ybWFsaXplIHN1YnNjcmlwdHMgc28gdGhhdCBvZmZzZXR0aW5n IHdpbGwgd29yay4gKi8KLUBAIC0yMDE3LDE3ICsyMDM3LDI1IEBAIGV2YWx1YXRlX3N1YmV4cF9z dGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTIwMTcsMTcgKzIxNDUsMjUg QEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAg CSAgICAgIHRtcF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAodG1wX3R5 cGUpKTsKICAJICB9CiAgCkBAIC0xMTQxOSw3ICsxMzY1Myw3IEBAIGluZGV4IDFkMzU1NzEuLmYz Yzk1NjQgMTAwNjQ0CiAgCiAgCS8qIExldCB1cyBub3cgcGxheSBhIGRpcnR5IHRyaWNrOiB3ZSB3 aWxsIHRha2UgYXJnMSAKICAJICAgd2hpY2ggaXMgYSB2YWx1ZSBub2RlIHBvaW50aW5nIHRvIHRo ZSB0b3Btb3N0IGxldmVsCi1AQCAtMjAzNyw3ICsyMDY1LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0 YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMjAzNyw3ICsyMTczLDcgQEAg ZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCSAg IHJldHVybnMgdGhlIGNvcnJlY3QgdHlwZSB2YWx1ZSAqLwogIAogIAlkZXByZWNhdGVkX3NldF92 YWx1ZV90eXBlIChhcmcxLCB0bXBfdHlwZSk7CkBAIC0xMTQyOCw3ICsxMzY2Miw3IEBAIGluZGV4 IDFkMzU1NzEuLmYzYzk1NjQgMTAwNjQ0CiAgICAgICAgfQogIAogICAgICBjYXNlIEJJTk9QX0xP R0lDQUxfQU5EOgotQEAgLTI0NzUsNyArMjUwMywxNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRh cmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0yNDc1LDcgKzI2MTEsMTcgQEAgZXZh bHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgICAgICAg aWYgKG5vc2lkZSA9PSBFVkFMX1NLSVApCiAgICAgICAgICBnb3RvIG5vc2lkZXJldDsKICAgICAg ICBlbHNlIGlmIChub3NpZGUgPT0gRVZBTF9BVk9JRF9TSURFX0VGRkVDVFMpCkBAIC0xMTQ0Nyw3 ICsxMzY4MSwxNiBAQCBpbmRleCAxZDM1NTcxLi5mM2M5NTY0IDEwMDY0NAogICAgICAgIGVsc2UK ICAgICAgICAgIGVycm9yIChfKCJBdHRlbXB0IHRvIHVzZSBhIHR5cGUgbmFtZSBhcyBhbiBleHBy ZXNzaW9uIikpOwogIAotQEAgLTI2MjQsMTIgKzI2NjIsMTMgQEAgZXZhbHVhdGVfc3ViZXhwX3dp dGhfY29lcmNpb24gKHN0cnVjdCBleHByZXNzaW9uICpleHAsCitAQCAtMjU2OCw3ICsyNzE0LDcg QEAgZXZhbHVhdGVfc3ViZXhwX2Zvcl9hZGRyZXNzIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBp bnQgKnBvcywKKyAgICAgICAoKnBvcykgKz0gNSArIEJZVEVTX1RPX0VYUF9FTEVNICh0ZW0gKyAx KTsKKyAgICAgICB4ID0gdmFsdWVfYWdncmVnYXRlX2VsdCAoZXhwLT5lbHRzW3BjICsgMV0udHlw ZSwKKyAJCQkgICAgICAgJmV4cC0+ZWx0c1twYyArIDNdLnN0cmluZywKKy0JCQkgICAgICAgMSwg bm9zaWRlKTsKKysJCQkgICAgICAgTlVMTCwgMSwgbm9zaWRlKTsKKyAgICAgICBpZiAoeCA9PSBO VUxMKQorIAllcnJvciAoXygiVGhlcmUgaXMgbm8gZmllbGQgbmFtZWQgJXMiKSwgJmV4cC0+ZWx0 c1twYyArIDNdLnN0cmluZyk7CisgICAgICAgcmV0dXJuIHg7CitAQCAtMjYyNCwxMiArMjc3MCwx MyBAQCBldmFsdWF0ZV9zdWJleHBfd2l0aF9jb2VyY2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKmV4 cCwKICAgICAgewogICAgICBjYXNlIE9QX1ZBUl9WQUxVRToKICAgICAgICB2YXIgPSBleHAtPmVs dHNbcGMgKyAyXS5zeW1ib2w7CkBAIC0xMTQ2Miw3ICsxMzcwNSw3IEBAIGluZGV4IDFkMzU1NzEu LmYzYzk1NjQgMTAwNjQ0CiAgCSAgcmV0dXJuIHZhbHVlX2Nhc3QgKGxvb2t1cF9wb2ludGVyX3R5 cGUgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKSwKICAJCQkgICAgIHZhbCk7CiAgCX0KLUBAIC0y NjgxLDkgKzI3MjAsMTMgQEAgZXZhbHVhdGVfc3ViZXhwX2Zvcl9zaXplb2YgKHN0cnVjdCBleHBy ZXNzaW9uICpleHAsIGludCAqcG9zKQorQEAgLTI2ODEsOSArMjgyOCwxMyBAQCBldmFsdWF0ZV9z dWJleHBfZm9yX3NpemVvZiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MpCiAgCiAg ICAgIGNhc2UgT1BfVkFSX1ZBTFVFOgogICAgICAgICgqcG9zKSArPSA0OwpAQCAtMTE1MTcsMTAg KzEzNzYwLDM2IEBAIGluZGV4IDg5YmFlMDMuLmY3Njg5NDAgMTAwNjQ0CiAgCX0KICAgICAgICBl bHNlCiBkaWZmIC0tZ2l0IGEvZ2RiL2V4cHJlc3Npb24uaCBiL2dkYi9leHByZXNzaW9uLmgKLWlu ZGV4IDEyMTYzZTMuLjk3OGRjNzMgMTAwNjQ0CitpbmRleCAxMjE2M2UzLi43ODljYjg5IDEwMDY0 NAogLS0tIGEvZ2RiL2V4cHJlc3Npb24uaAogKysrIGIvZ2RiL2V4cHJlc3Npb24uaAotQEAgLTQz NSw0ICs0MzUsNSBAQCBleHRlcm4gY2hhciAqb3Bfc3RyaW5nIChlbnVtIGV4cF9vcGNvZGUpOwor QEAgLTg4LDYgKzg4LDE2IEBAIGVudW0gZXhwX29wY29kZQorICAgICAgICB3aGVuIFggaXMgYSBw b2ludGVyIGluc3RlYWQgb2YgYW4gYWdncmVnYXRlLiAgKi8KKyAgICAgU1RSVUNUT1BfTVBUUiwK KyAKKysgICAgLyogVFlQRV9JTlNUQU5DRSBpcyB1c2VkIHdoZW4gdGhlIHVzZXIgc3BlY2lmaWVz IGEgc3BlY2lmaWMKKysgICAgICAgdHlwZSBpbnN0YW50aWF0aW9uIGZvciBvdmVybG9hZGVkIG1l dGhvZHMvZnVuY3Rpb25zLiBUaGUgZm9ybWF0CisrICAgICAgIGlzOiBUWVBFX0lOU1RBTkNFIG51 bV90eXBlcyB0eXBlMCAuLi4gdHlwZU4gbnVtX3R5cGVzIFRZUEVfSU5TVEFOQ0UqLworKyAgICBU WVBFX0lOU1RBTkNFLAorKworKyAgICAvKiBUWVBFX0lOU1RBTkNFX0xPT0tVUCBpcyB1c2VkIHdo ZW4gdGhlIHVzZXIgc3BlY2lmaWVzIGEgc3BlY2lmaWMKKysgICAgICAgdHlwZSBpbnN0YW50aWF0 aW9uIG9mIGEgZnVuY3Rpb24gKG5vdCBhIG1ldGhvZCkuIEluIHRoaXMgY2FzZSwKKysgICAgICAg d2UgbXVzdCB0b3NzIHRoZSByZXN1bHRzIG9mIHRoZSBwYXJzZXIgYW5kIG1hbnVhbGx5IGRvIHRo ZSBsb29rdXAuICovCisrICAgIFRZUEVfSU5TVEFOQ0VfTE9PS1VQLAorKworICAgICAvKiBlbmQg b2YgQysrLiAgKi8KKyAKKyAgICAgLyogRm9yIE1vZHVsYS0yIGludGVnZXIgZGl2aXNpb24gRElW ICovCitAQCAtNDI2LDYgKzQzNiw4IEBAIGVudW0gbm9zaWRlCisgZXh0ZXJuIHN0cnVjdCB2YWx1 ZSAqZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkCisgICAoc3RydWN0IHR5cGUgKiwgc3RydWN0IGV4 cHJlc3Npb24gKiwgaW50ICosIGVudW0gbm9zaWRlKTsKKyAKKytleHRlcm4gaW50IGNvbXBhcmVf cGFyYW1ldGVycyAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKik7CisrCisgLyogRnJvbSBl eHBwcmludC5jICovCisgCisgZXh0ZXJuIHZvaWQgcHJpbnRfZXhwcmVzc2lvbiAoc3RydWN0IGV4 cHJlc3Npb24gKiwgc3RydWN0IHVpX2ZpbGUgKik7CitAQCAtNDM1LDQgKzQ0Nyw1IEBAIGV4dGVy biBjaGFyICpvcF9zdHJpbmcgKGVudW0gZXhwX29wY29kZSk7CiAgZXh0ZXJuIHZvaWQgZHVtcF9y YXdfZXhwcmVzc2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKiwgc3RydWN0IHVpX2ZpbGUgKiwgY2hh ciAqKTsKICBleHRlcm4gdm9pZCBkdW1wX3ByZWZpeF9leHByZXNzaW9uIChzdHJ1Y3QgZXhwcmVz c2lvbiAqLCBzdHJ1Y3QgdWlfZmlsZSAqKTsKICAKQEAgLTE0OTAwLDcgKzE3MTY5LDcgQEAgaW5k ZXggN2NhY2FjMS4uYTQ1NjIyOCAxMDA2NDQKICAKICAgIHZ0YmwgPSB2YWx1ZV9hc19hZGRyZXNz ICh2YWx1ZV9maWVsZCAodiwga25vd25fdHlwZV92cHRyX2ZpZWxkbm8pKTsKIGRpZmYgLS1naXQg YS9nZGIvZ251LXYzLWFiaS5jIGIvZ2RiL2dudS12My1hYmkuYwotaW5kZXggM2E1MmRmMy4uZWNl OTEwYiAxMDA2NDQKK2luZGV4IDNhNTJkZjMuLjZjZGY3MTYgMTAwNjQ0CiAtLS0gYS9nZGIvZ251 LXYzLWFiaS5jCiArKysgYi9nZGIvZ251LXYzLWFiaS5jCiBAQCAtMjY5LDggKzI2OSw3IEBAIGdu dXYzX3J0dGlfdHlwZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwKQEAgLTE0OTEzLDYgKzE3MTgyLDM2 IEBAIGluZGV4IDNhNTJkZjMuLmVjZTkxMGIgMTAwNjQ0CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArIHZhbHVlX2VtYmVkZGVkX29mZnNldCAodnRhYmxlKSk7CiAgICBpZiAo ISB2dGFibGVfc3ltYm9sKQogICAgICByZXR1cm4gTlVMTDsKK0BAIC00ODcsMTAgKzQ4Niw4IEBA IGdudXYzX2ZpbmRfbWV0aG9kX2luIChzdHJ1Y3QgdHlwZSAqZG9tYWluLCBDT1JFX0FERFIgdm9m ZnNldCwKKyAJCSAgICAgIExPTkdFU1QgYWRqdXN0bWVudCkKKyB7CisgICBpbnQgaTsKKy0gIGNv bnN0IGNoYXIgKnBoeXNuYW1lOworIAorICAgLyogU2VhcmNoIHRoaXMgY2xhc3MgZmlyc3QuICAq LworLSAgcGh5c25hbWUgPSBOVUxMOworICAgaWYgKGFkanVzdG1lbnQgPT0gMCkKKyAgICAgewor ICAgICAgIGludCBsZW47CitAQCAtNjE1LDEzICs2MTIsMTUgQEAgZ251djNfcHJpbnRfbWV0aG9k X3B0ciAoY29uc3QgZ2RiX2J5dGUgKmNvbnRlbnRzLAorIAl7CisgCSAgY2hhciAqZGVtYW5nbGVk X25hbWUgPSBjcGx1c19kZW1hbmdsZSAocGh5c25hbWUsCisgCQkJCQkJIERNR0xfQU5TSSB8IERN R0xfUEFSQU1TKTsKKy0JICBpZiAoZGVtYW5nbGVkX25hbWUgIT0gTlVMTCkKKysJICBmcHJpbnRm X2ZpbHRlcmVkIChzdHJlYW0sICImdmlydHVhbCAiKTsKKysJICBpZiAoZGVtYW5nbGVkX25hbWUg PT0gTlVMTCkKKysJICAgIGZwdXRzX2ZpbHRlcmVkIChwaHlzbmFtZSwgc3RyZWFtKTsKKysJICBl bHNlCisgCSAgICB7CistCSAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiZ2aXJ0dWFs ICIpOworIAkgICAgICBmcHV0c19maWx0ZXJlZCAoZGVtYW5nbGVkX25hbWUsIHN0cmVhbSk7Cisg CSAgICAgIHhmcmVlIChkZW1hbmdsZWRfbmFtZSk7CistCSAgICAgIHJldHVybjsKKyAJICAgIH0K KysJICByZXR1cm47CisgCX0KKyAgICAgfQorIAogZGlmZiAtLWdpdCBhL2dkYi9pMzg2LWxpbnV4 LW5hdC5jIGIvZ2RiL2kzODYtbGludXgtbmF0LmMKIGluZGV4IDIzNjY0NzQuLmY4M2RlMzIgMTAw NjQ0CiAtLS0gYS9nZGIvaTM4Ni1saW51eC1uYXQuYwpAQCAtMTUyMjMsNyArMTc1MjIsNyBAQCBp bmRleCAwYTE3ZGFiLi5kNDhmNGIxIDEwMDY0NAogICAgICAgdGhpcyBmdW5jdGlvbiBzaG91bGQg cHJvYmFibHkgYmUgbW92ZWQgaW50byB0YXJnZXRfcHJlX2luZmVyaW9yLiAgKi8KICAgIHRhcmdl dF9wcmVfaW5mZXJpb3IgKGZyb21fdHR5KTsKIGRpZmYgLS1naXQgYS9nZGIvaW5mcnVuLmMgYi9n ZGIvaW5mcnVuLmMKLWluZGV4IGU1YzI5NzEuLmNkYzQzMDMgMTAwNjQ0CitpbmRleCBlZTVmOTg3 Li4yZjYyN2VhIDEwMDY0NAogLS0tIGEvZ2RiL2luZnJ1bi5jCiArKysgYi9nZGIvaW5mcnVuLmMK IEBAIC0xMDQ2LDcgKzEwNDYsNyBAQCBhIGNvbW1hbmQgbGlrZSBgcmV0dXJuJyBvciBganVtcCcg dG8gY29udGludWUgZXhlY3V0aW9uLiIpKTsKQEAgLTE1MjU2LDcgKzE3NTU1LDcgQEAgaW5kZXgg ZTVjMjk3MS4uY2RjNDMwMyAxMDA2NDQKICAgIHBlbmRpbmdfZm9sbG93LmtpbmQgPSBUQVJHRVRf V0FJVEtJTkRfU1BVUklPVVM7CS8qIEkuZS4sIG5vbmUuICovCiAgCiAgICBjbGVhcl9wcm9jZWVk X3N0YXR1cyAoKTsKLUBAIC0yMTI5LDYgKzIxMzQsNTAgQEAgZW5zdXJlX25vdF9ydW5uaW5nICh2 b2lkKQorQEAgLTIxNTUsNiArMjE2MCw1MCBAQCBlbnN1cmVfbm90X3J1bm5pbmcgKHZvaWQpCiAg ICAgIGVycm9yX2lzX3J1bm5pbmcgKCk7CiAgfQogIApAQCAtMTUzMDcsNyArMTc2MDYsNyBAQCBp bmRleCBlNWMyOTcxLi5jZGM0MzAzIDEwMDY0NAogIC8qIEdpdmVuIGFuIGV4ZWN1dGlvbiBjb250 cm9sIHN0YXRlIHRoYXQgaGFzIGJlZW4gZnJlc2hseSBmaWxsZWQgaW4KICAgICBieSBhbiBldmVu dCBmcm9tIHRoZSBpbmZlcmlvciwgZmlndXJlIG91dCB3aGF0IGl0IG1lYW5zIGFuZCB0YWtlCiAg ICAgYXBwcm9wcmlhdGUgYWN0aW9uLiAgKi8KLUBAIC0yNDIzLDkgKzI0NzIsMTEgQEAgaGFuZGxl X2luZmVyaW9yX2V2ZW50IChzdHJ1Y3QgZXhlY3V0aW9uX2NvbnRyb2xfc3RhdGUgKmVjcykKK0BA IC0yNDQ5LDkgKzI0OTgsMTEgQEAgaGFuZGxlX2luZmVyaW9yX2V2ZW50IChzdHJ1Y3QgZXhlY3V0 aW9uX2NvbnRyb2xfc3RhdGUgKmVjcykKICAgICAgY2FzZSBUQVJHRVRfV0FJVEtJTkRfU1lTQ0FM TF9FTlRSWToKICAgICAgICBpZiAoZGVidWdfaW5mcnVuKQogICAgICAgICAgZnByaW50Zl91bmZp bHRlcmVkIChnZGJfc3RkbG9nLCAiaW5mcnVuOiBUQVJHRVRfV0FJVEtJTkRfU1lTQ0FMTF9FTlRS WVxuIik7CkBAIC0xNTMyMiw3ICsxNzYyMSw3IEBAIGluZGV4IGU1YzI5NzEuLmNkYzQzMDMgMTAw NjQ0CiAgCiAgICAgICAgLyogQmVmb3JlIGV4YW1pbmluZyB0aGUgdGhyZWFkcyBmdXJ0aGVyLCBz dGVwIHRoaXMgdGhyZWFkIHRvCiAgICAgICAgICAgZ2V0IGl0IGVudGlyZWx5IG91dCBvZiB0aGUg c3lzY2FsbC4gIChXZSBnZXQgbm90aWNlIG9mIHRoZQotQEAgLTI0MzUsOSArMjQ4NiwxMCBAQCBo YW5kbGVfaW5mZXJpb3JfZXZlbnQgKHN0cnVjdCBleGVjdXRpb25fY29udHJvbF9zdGF0ZSAqZWNz KQorQEAgLTI0NjEsOSArMjUxMiwxMCBAQCBoYW5kbGVfaW5mZXJpb3JfZXZlbnQgKHN0cnVjdCBl eGVjdXRpb25fY29udHJvbF9zdGF0ZSAqZWNzKQogICAgICBjYXNlIFRBUkdFVF9XQUlUS0lORF9T WVNDQUxMX1JFVFVSTjoKICAgICAgICBpZiAoZGVidWdfaW5mcnVuKQogICAgICAgICAgZnByaW50 Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiaW5mcnVuOiBUQVJHRVRfV0FJVEtJTkRfU1lTQ0FM TF9SRVRVUk5cbiIpOwpAQCAtMTUzMzYsNyArMTc2MzUsNyBAQCBpbmRleCBlNWMyOTcxLi5jZGM0 MzAzIDEwMDY0NAogIAogICAgICBjYXNlIFRBUkdFVF9XQUlUS0lORF9TVE9QUEVEOgogICAgICAg IGlmIChkZWJ1Z19pbmZydW4pCi1AQCAtNTE0MCw2ICs1MTkyLDI1IEBAIGluZmVyaW9yX2hhc19l eGVjZCAocHRpZF90IHBpZCwgY2hhciAqKmV4ZWNkX3BhdGhuYW1lKQorQEAgLTUxNjYsNiArNTIx OCwyNSBAQCBpbmZlcmlvcl9oYXNfZXhlY2QgKHB0aWRfdCBwaWQsIGNoYXIgKipleGVjZF9wYXRo bmFtZSkKICAgIHJldHVybiAxOwogIH0KICAKQEAgLTE1NTc1LDYgKzE3ODc0LDQ1IEBAIGluZGV4 IDg1ODI2ZmQuLmU1ZjgwYWIgMTAwNjQ0CiAgI2RlZmluZSBMQV9HRVRfU1RSSU5HKHZhbHVlLCBi dWZmZXIsIGxlbmd0aCwgZW5jb2RpbmcpIFwKICAgIChjdXJyZW50X2xhbmd1YWdlLT5sYV9nZXRf c3RyaW5nKHZhbHVlLCBidWZmZXIsIGxlbmd0aCwgZW5jb2RpbmcpKQogIAorZGlmZiAtLWdpdCBh L2dkYi9saW5lc3BlYy5jIGIvZ2RiL2xpbmVzcGVjLmMKK2luZGV4IDY1NzlkNDIuLmIzYWU2YzAg MTAwNjQ0CistLS0gYS9nZGIvbGluZXNwZWMuYworKysrIGIvZ2RiL2xpbmVzcGVjLmMKK0BAIC04 NDIsMTMgKzg0MiwzMyBAQCBkZWNvZGVfbGluZV8xIChjaGFyICoqYXJncHRyLCBpbnQgZnVuZmly c3RsaW5lLCBzdHJ1Y3Qgc3ltdGFiICpkZWZhdWx0X3N5bXRhYiwKKyAgICAgfQorICAgZWxzZSBp ZiAocGFyZW5fcG9pbnRlciAhPSBOVUxMKQorICAgICB7CistICAgICAgcCA9IHBhcmVuX3BvaW50 ZXIgKyAxOworKyAgICAgIC8qIFdlIG5lZWQgdG8gZGVhbCB3aXRoIG1ldGhvZCBhbmQgZnVuY3Rp b24gb3ZlcmxvYWRzCisrCSB3aXRoIG5vIHBhcmFtZXRlcnMuIEdkYiBhbmQgZ2NjIChhbmQgd2hv IGtub3dzIGFib3V0IG90aGVyCisrCSBjb21waWxlcnMpIGFyZSB2ZXJ5IGluY29uc2lzdGVudCB3 aXRoIHRoZSBrZXl3b3JkICJ2b2lkIi4KKysJIENhbm9uaWNhbGl6aW5nIEMrKyB0eXBlcyBpcyBp bnN1ZmZpY2llbnQgaW4gdGhpcyBjYXNlLCBzaW5jZQorKwkgd2Ugc3RpbGwgbmVlZCB0byBlbmZv cmNlIHRoZSBwcmVzZW5jZSAob3IgbGFjayB0aGVyZW9mKSBvZgorKwkgInZvaWQiLiBGb3Igc2lt cGxpY2l0eSwgb21pdCB0aGUga2V5d29yZCAidm9pZCIgaWYgcHJlc2VudC4gKi8KKysgICAgICBp ZiAoc3RybmNtcCAocGFyZW5fcG9pbnRlciAtIDUsICIodm9pZCkiLCA2KSA9PSAwKQorKwl7Cisr CSAgY2hhciAqYSwgKmI7CisrCSAgYSA9IHBhcmVuX3BvaW50ZXIgLSA0OworKwkgIGIgPSBwYXJl bl9wb2ludGVyOworKwkgIHdoaWxlICgoKihhKyspID0gKihiKyspKSAhPSAnXDAnKSA7CisrCSAg KmEgPSAnXDAnOworKwkgIHAgPSBwYXJlbl9wb2ludGVyIC0gMzsKKysJfQorKyAgICAgIGVsc2UK KysJcCA9IHBhcmVuX3BvaW50ZXIgKyAxOworICAgICB9CisgICBlbHNlCisgICAgIHsKKyAgICAg ICBwID0gc2tpcF9xdW90ZWQgKCphcmdwdHIpOworICAgICB9CisgCisrICAvKiBNYWtlIHN1cmUg d2Uga2VlcCBpbXBvcnRhbnQga2V3b3JkcyBsaWtlICJjb25zdCIgKi8KKysgIGlmIChzdHJuY21w IChwLCAiIGNvbnN0IiwgNikgPT0gMCkKKysgICAgcCArPSA2OworKworICAgY29weSA9IChjaGFy ICopIGFsbG9jYSAocCAtICphcmdwdHIgKyAxKTsKKyAgIG1lbWNweSAoY29weSwgKmFyZ3B0ciwg cCAtICphcmdwdHIpOworICAgY29weVtwIC0gKmFyZ3B0cl0gPSAnXDAnOwogZGlmZiAtLWdpdCBh L2dkYi9saW51eC1uYXQuYyBiL2dkYi9saW51eC1uYXQuYwogaW5kZXggMTJiNzg2ZS4uZTMwYmY5 YSAxMDA2NDQKIC0tLSBhL2dkYi9saW51eC1uYXQuYwpAQCAtMTY1OTIsNiArMTg5MzAsNzggQEAg aW5kZXggYjkwNWE5ZS4uZWFhNWYxMiAxMDA2NDQKICAKICAgIGN1cnJlbnRfdG9rZW4gPSB4c3Ry ZHVwIChwYXJzZS0+dG9rZW4pOwogICAgY2xlYW51cCA9IG1ha2VfY2xlYW51cCAoZnJlZV9jdXJy ZW50X2NvbnRlbnRzLCAmY3VycmVudF90b2tlbik7CitkaWZmIC0tZ2l0IGEvZ2RiL21pbnN5bXMu YyBiL2dkYi9taW5zeW1zLmMKK2luZGV4IGJmNzc2YjMuLmU0YjBmMzEgMTAwNjQ0CistLS0gYS9n ZGIvbWluc3ltcy5jCisrKysgYi9nZGIvbWluc3ltcy5jCitAQCAtNDgsNiArNDgsOCBAQAorICNp bmNsdWRlICJ2YWx1ZS5oIgorICNpbmNsdWRlICJjcC1hYmkuaCIKKyAjaW5jbHVkZSAidGFyZ2V0 LmgiCisrI2luY2x1ZGUgImNwLXN1cHBvcnQuaCIKKysjaW5jbHVkZSAibGFuZ3VhZ2UuaCIKKyAK KyAvKiBBY2N1bXVsYXRlIHRoZSBtaW5pbWFsIHN5bWJvbHMgZm9yIGVhY2ggb2JqZmlsZSBpbiBi dW5jaGVzIG9mIEJVTkNIX1NJWkUuCisgICAgQXQgdGhlIGVuZCwgY29weSB0aGVtIGFsbCBpbnRv IG9uZSBuZXdseSBhbGxvY2F0ZWQgbG9jYXRpb24gb24gYW4gb2JqZmlsZSdzCitAQCAtMTg3LDYg KzE4OSw5IEBAIGxvb2t1cF9taW5pbWFsX3N5bWJvbCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qg Y2hhciAqc2ZpbGUsCisgICB1bnNpZ25lZCBpbnQgaGFzaCA9IG1zeW1ib2xfaGFzaCAobmFtZSkg JSBNSU5JTUFMX1NZTUJPTF9IQVNIX1NJWkU7CisgICB1bnNpZ25lZCBpbnQgZGVtX2hhc2ggPSBt c3ltYm9sX2hhc2hfaXcgKG5hbWUpICUgTUlOSU1BTF9TWU1CT0xfSEFTSF9TSVpFOworIAorKyAg aW50IG5lZWR0b2ZyZWVuYW1lID0gMDsKKysgIGNvbnN0IGNoYXIgKm1vZGlmaWVkX25hbWU7Cisr CisgICBpZiAoc2ZpbGUgIT0gTlVMTCkKKyAgICAgeworICAgICAgIGNoYXIgKnAgPSBzdHJyY2hy IChzZmlsZSwgJy8nKTsKK0BAIC0xOTQsNiArMTk5LDE4IEBAIGxvb2t1cF9taW5pbWFsX3N5bWJv bCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqc2ZpbGUsCisgCXNmaWxlID0gcCArIDE7 CisgICAgIH0KKyAKKysgIC8qIEZvciBDKyssIGNhbm9uaWNhbGl6ZSB0aGUgaW5wdXQgbmFtZS4g Ki8KKysgIG1vZGlmaWVkX25hbWUgPSBuYW1lOworKyAgaWYgKGN1cnJlbnRfbGFuZ3VhZ2UtPmxh X2xhbmd1YWdlID09IGxhbmd1YWdlX2NwbHVzKQorKyAgICB7CisrICAgICAgY2hhciAqY25hbWUg PSBjcF9jYW5vbmljYWxpemVfc3RyaW5nIChuYW1lKTsKKysgICAgICBpZiAoY25hbWUpCisrCXsK KysJICBtb2RpZmllZF9uYW1lID0gY25hbWU7CisrCSAgbmVlZHRvZnJlZW5hbWUgPSAxOworKwl9 CisrICAgIH0KKysKKyAgIGZvciAob2JqZmlsZSA9IG9iamVjdF9maWxlczsKKyAgICAgICAgb2Jq ZmlsZSAhPSBOVUxMICYmIGZvdW5kX3N5bWJvbCA9PSBOVUxMOworICAgICAgICBvYmpmaWxlID0g b2JqZmlsZS0+bmV4dCkKK0BAIC0yMTgsOSArMjM1LDE2IEBAIGxvb2t1cF9taW5pbWFsX3N5bWJv bCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqc2ZpbGUsCisgCQkgIGludCBtYXRjaDsK KyAKKyAJCSAgaWYgKHBhc3MgPT0gMSkKKy0JCSAgICBtYXRjaCA9IHN0cmNtcCAoU1lNQk9MX0xJ TktBR0VfTkFNRSAobXN5bWJvbCksIG5hbWUpID09IDA7CisrCQkgICAgeworKwkJICAgICAgbWF0 Y2ggPSBzdHJjbXAgKFNZTUJPTF9MSU5LQUdFX05BTUUgKG1zeW1ib2wpLAorKwkJCQkgICAgICBt b2RpZmllZF9uYW1lKSA9PSAwOworKwkJICAgIH0KKyAJCSAgZWxzZQorLQkJICAgIG1hdGNoID0g U1lNQk9MX01BVENIRVNfU0VBUkNIX05BTUUgKG1zeW1ib2wsIG5hbWUpOworKwkJICAgIHsKKysJ CSAgICAgIG1hdGNoID0gU1lNQk9MX01BVENIRVNfU0VBUkNIX05BTUUgKG1zeW1ib2wsCisrCQkJ CQkJCSAgbW9kaWZpZWRfbmFtZSk7CisrCQkgICAgfQorKworIAkJICBpZiAobWF0Y2gpCisgCQkg ICAgeworICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChNU1lNQk9MX1RZUEUgKG1zeW1ib2wp KQorQEAgLTI1OSw2ICsyODMsMTAgQEAgbG9va3VwX21pbmltYWxfc3ltYm9sIChjb25zdCBjaGFy ICpuYW1lLCBjb25zdCBjaGFyICpzZmlsZSwKKyAJICAgIH0KKyAJfQorICAgICB9CisrCisrICBp ZiAobmVlZHRvZnJlZW5hbWUpCisrICAgIHhmcmVlICgodm9pZCAqKSBtb2RpZmllZF9uYW1lKTsK KysKKyAgIC8qIEV4dGVybmFsIHN5bWJvbHMgYXJlIGJlc3QuICAqLworICAgaWYgKGZvdW5kX3N5 bWJvbCkKKyAgICAgcmV0dXJuIGZvdW5kX3N5bWJvbDsKIGRpZmYgLS1naXQgYS9nZGIvbWlwcy10 ZGVwLmMgYi9nZGIvbWlwcy10ZGVwLmMKIGluZGV4IDZjOGM0YzAuLjdkMjgzYTQgMTAwNjQ0CiAt LS0gYS9nZGIvbWlwcy10ZGVwLmMKQEAgLTE3MDAxLDcgKzE5NDExLDcgQEAgaW5kZXggMjdhZTYx OS4uMjlmMGU2ZCAxMDA2NDQKICAgICAgICByZXR1cm47CiAgICAgIH0KIGRpZmYgLS1naXQgYS9n ZGIvcGFyc2UuYyBiL2dkYi9wYXJzZS5jCi1pbmRleCBlZWUxZjhlLi45NmRjMWM1IDEwMDY0NAor aW5kZXggZWVlMWY4ZS4uNjZhYWY2YSAxMDA2NDQKIC0tLSBhL2dkYi9wYXJzZS5jCiArKysgYi9n ZGIvcGFyc2UuYwogQEAgLTMwNiw3ICszMDYsNyBAQCB3cml0ZV9leHBfZWx0X2ludGVybiAoc3Ry dWN0IGludGVybmFsdmFyICpleHBlbHQpCkBAIC0xNzA3OSw2ICsxOTQ4OSwyMiBAQCBpbmRleCBl ZWUxZjhlLi45NmRjMWM1IDEwMDY0NAogIC8qIEFkZCBhIGJpdHN0cmluZyBjb25zdGFudCB0byB0 aGUgZW5kIG9mIHRoZSBleHByZXNzaW9uLgogIAogICAgIEJpdHN0cmluZyBjb25zdGFudHMgYXJl IHN0b3JlZCBieSBmaXJzdCB3cml0aW5nIGFuIGV4cHJlc3Npb24gZWxlbWVudAorQEAgLTc3Nyw2 ICs4MzYsMTUgQEAgb3BlcmF0b3JfbGVuZ3RoX3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAq ZXhwciwgaW50IGVuZHBvcywKKyAgICAgICBhcmdzID0gMSArIGxvbmdlc3RfdG9faW50IChleHBy LT5lbHRzW2VuZHBvcyAtIDJdLmxvbmdjb25zdCk7CisgICAgICAgYnJlYWs7CisgCisrICAgIGNh c2UgVFlQRV9JTlNUQU5DRToKKysgICAgICBvcGxlbiA9IDQgKyBsb25nZXN0X3RvX2ludCAoZXhw ci0+ZWx0c1tlbmRwb3MgLSAyXS5sb25nY29uc3QpOworKyAgICAgIGFyZ3MgPSAxOworKyAgICAg IGJyZWFrOworKworKyAgICBjYXNlIFRZUEVfSU5TVEFOQ0VfTE9PS1VQOgorKyAgICAgIG9wbGVu ID0gMzsKKysgICAgICBicmVhazsKKysKKyAgICAgY2FzZSBPUF9PQkpDX01TR0NBTEw6CS8qIE9i amVjdGl2ZSBDIG1lc3NhZ2UgKG1ldGhvZCkgY2FsbCAqLworICAgICAgIG9wbGVuID0gNDsKKyAg ICAgICBhcmdzID0gMSArIGxvbmdlc3RfdG9faW50IChleHByLT5lbHRzW2VuZHBvcyAtIDJdLmxv bmdjb25zdCk7CiBkaWZmIC0tZ2l0IGEvZ2RiL3BhcnNlci1kZWZzLmggYi9nZGIvcGFyc2VyLWRl ZnMuaAogaW5kZXggMmM0Yjc1NS4uY2JkYTljMyAxMDA2NDQKIC0tLSBhL2dkYi9wYXJzZXItZGVm cy5oCkBAIC0yMDAxMywxMCArMjI0MzksMTAgQEAgaW5kZXggMzZjZGUzNC4uZTZlM2FjMCAxMDA2 NDQKICAKIGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi1mcmFtZS5jIGIvZ2RiL3B5dGhv bi9weXRob24tZnJhbWUuYwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmVm MWMxNzgKK2luZGV4IDAwMDAwMDAuLjczMDUxOTkKIC0tLSAvZGV2L251bGwKICsrKyBiL2dkYi9w eXRob24vcHl0aG9uLWZyYW1lLmMKLUBAIC0wLDAgKzEsNjU2IEBACitAQCAtMCwwICsxLDY2OCBA QAogKy8qIFB5dGhvbiBpbnRlcmZhY2UgdG8gc3RhY2sgZnJhbWVzCiArCiArICAgQ29weXJpZ2h0 IChDKSAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtMjA0MjAs NyArMjI4NDYsNyBAQCBpbmRleCAwMDAwMDAwLi5lZjFjMTc4CiArewogKyAgc3RydWN0IGZyYW1l X2luZm8gKmZyYW1lOwogKyAgUHlPYmplY3QgKnN5bV9vYmo7Ci0rICBzdHJ1Y3Qgc3ltYm9sICp2 YXI7CisrICBzdHJ1Y3Qgc3ltYm9sICp2YXIgPSBOVUxMOwkvKiBnY2MtNC4zLjIgZmFsc2Ugd2Fy bmluZy4gICovCiArICBzdHJ1Y3QgdmFsdWUgKnZhbCA9IE5VTEw7CiArICB2b2xhdGlsZSBzdHJ1 Y3QgZ2RiX2V4Y2VwdGlvbiBleGNlcHQ7CiArCkBAIC0yMDQzMiwyMCArMjI4NTgsMzIgQEAgaW5k ZXggMDAwMDAwMC4uZWYxYzE3OAogKyAgZWxzZSBpZiAoZ2RicHlfaXNfc3RyaW5nIChzeW1fb2Jq KSkKICsgICAgewogKyAgICAgIGNoYXIgKnZhcl9uYW1lOwotKyAgICAgIHN0cnVjdCBibG9jayAq YmxvY2s7CisrICAgICAgc3RydWN0IGJsb2NrICpibG9jayA9IE5VTEw7CisrICAgICAgc3RydWN0 IGNsZWFudXAgKmNsZWFudXA7CiArICAgICAgdm9sYXRpbGUgc3RydWN0IGdkYl9leGNlcHRpb24g ZXhjZXB0OwogKworKyAgICAgIHZhcl9uYW1lID0gcHl0aG9uX3N0cmluZ190b190YXJnZXRfc3Ry aW5nIChzeW1fb2JqKTsKKysgICAgICBjbGVhbnVwID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgdmFy X25hbWUpOworKwogKyAgICAgIFRSWV9DQVRDSCAoZXhjZXB0LCBSRVRVUk5fTUFTS19BTEwpCiAr CXsKLSsJICBzdHJ1Y3QgYmxvY2sgKmJsb2NrOwotKwogKwkgIEZSQVBZX1JFUVVJUkVfVkFMSUQg KChmcmFtZV9vYmplY3QgKikgc2VsZiwgZnJhbWUpOwogKwogKwkgIGJsb2NrID0gYmxvY2tfZm9y X3BjIChnZXRfZnJhbWVfYWRkcmVzc19pbl9ibG9jayAoZnJhbWUpKTsKLSsJICB2YXIgPSBsb29r dXBfc3ltYm9sIChweXRob25fc3RyaW5nX3RvX3RhcmdldF9zdHJpbmcgKHN5bV9vYmopLCBibG9j aywKLSsJCQkgICAgICAgVkFSX0RPTUFJTiwgTlVMTCk7CisrCSAgdmFyID0gbG9va3VwX3N5bWJv bCAodmFyX25hbWUsIGJsb2NrLCBWQVJfRE9NQUlOLCBOVUxMKTsKICsJfQogKyAgICAgIEdEQl9Q WV9IQU5ETEVfRVhDRVBUSU9OIChleGNlcHQpOworKworKyAgICAgIGlmICghdmFyKQorKwl7Cisr CSAgUHlFcnJfRm9ybWF0IChQeUV4Y19WYWx1ZUVycm9yLAorKwkJCV8oInZhcmlhYmxlICclcycg bm90IGZvdW5kIiksIHZhcl9uYW1lKTsKKysJICBkb19jbGVhbnVwcyAoY2xlYW51cCk7CisrCisr CSAgcmV0dXJuIE5VTEw7CisrCX0KKysKKysgICAgICBkb19jbGVhbnVwcyAoY2xlYW51cCk7CiAr ICAgIH0KICsgIGVsc2UKICsgICAgewpAQCAtMjA1OTIsNyArMjMwMzAsNyBAQCBpbmRleCAwMDAw MDAwLi5lZjFjMTc4CiArICBpZiAoUHlUeXBlX1JlYWR5ICgmZnJhbWVfb2JqZWN0X3R5cGUpIDwg MCkKICsgICAgcmV0dXJuOwogKwotKyAgLyogRklYTUU6IFRoZXNlIHdvdWxkIHByb2JhYmx5IGJl IGJlc3QgZXhwb3NlZCBhcyBjbGFzcyBhdHRyaWJ1dGVzIG9mIEZyYW1lLAorKyAgLyogTm90ZTog VGhlc2Ugd291bGQgcHJvYmFibHkgYmUgYmVzdCBleHBvc2VkIGFzIGNsYXNzIGF0dHJpYnV0ZXMg b2YgRnJhbWUsCiArICAgICBidXQgSSBkb24ndCBrbm93IGhvdyB0byBkbyBpdCBleGNlcHQgYnkg bWVzc2luZyB3aXRoIHRoZSB0eXBlJ3MgZGljdGlvbmFyeS4KICsgICAgIFRoYXQgc2VlbXMgdG9v IG1lc3N5LiAgKi8KICsgIFB5TW9kdWxlX0FkZEludENvbnN0YW50IChnZGJfbW9kdWxlLCAiTk9S TUFMX0ZSQU1FIiwgTk9STUFMX0ZSQU1FKTsKQEAgLTIxMDU3LDcgKzIzNDk1LDcgQEAgaW5kZXgg MDJkYmZjNC4uNGFhZTBhYSAxMDA2NDQKICAjZW5kaWYgLyogR0RCX1BZVEhPTl9JTlRFUk5BTF9I ICovCiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24tbWVtYnVmLmMgYi9nZGIvcHl0aG9u L3B5dGhvbi1tZW1idWYuYwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjA0 YmYzYjQKK2luZGV4IDAwMDAwMDAuLjU3ODM2ZjkKIC0tLSAvZGV2L251bGwKICsrKyBiL2dkYi9w eXRob24vcHl0aG9uLW1lbWJ1Zi5jCiBAQCAtMCwwICsxLDIyNyBAQApAQCAtMjExODksNyArMjM2 MjcsNyBAQCBpbmRleCAwMDAwMDAwLi4wNGJmM2I0CiArICBtZW1idWZfb2JqZWN0ICptZW1idWZf b2JqID0gKG1lbWJ1Zl9vYmplY3QgKikgc2VsZjsKICsKICsgIHJldHVybiBQeVN0cmluZ19Gcm9t Rm9ybWF0ICgibWVtb3J5IGJ1ZmZlciBmb3IgYWRkcmVzcyAlcCwgJXUgYnl0ZXMgbG9uZyIsCi0r CQkJICAgICAgKHZvaWQgKikgbWVtYnVmX29iai0+YWRkciwKKysJCQkgICAgICAodm9pZCAqKSAo dWludHB0cl90KSBtZW1idWZfb2JqLT5hZGRyLAogKwkJCSAgICAgICh1bnNpZ25lZCBpbnQpIG1l bWJ1Zl9vYmotPmxlbmd0aCk7CiArfQogKwpAQCAtMjI3ODksNyArMjUyMjcsNyBAQCBpbmRleCAw MDAwMDAwLi5hNDhjMzhjCiArfTsKIGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi10eXBl LmMgYi9nZGIvcHl0aG9uL3B5dGhvbi10eXBlLmMKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRl eCAwMDAwMDAwLi5jMzlmZjI3CitpbmRleCAwMDAwMDAwLi43NzJhMDExCiAtLS0gL2Rldi9udWxs CiArKysgYi9nZGIvcHl0aG9uL3B5dGhvbi10eXBlLmMKIEBAIC0wLDAgKzEsODIxIEBACkBAIC0y MzM3Miw3ICsyNTgxMCw3IEBAIGluZGV4IDAwMDAwMDAuLmMzOWZmMjcKICsgIG9iai0+dHlwZSA9 IHR5cGU7CiArICB0eXBlX2luY3JlZiAodHlwZSk7CiArICBvYmotPnByZXYgPSBOVUxMOwotKyAg aWYgKHR5cGUgJiYgVFlQRV9PQkpGSUxFICh0eXBlKSkKKysgIGlmICh0eXBlICYmICFPQkpGSUxF X0lTX1ZJUlRVQUwgKFRZUEVfT0JKRklMRSAodHlwZSkpKQogKyAgICB7CiArICAgICAgc3RydWN0 IG9iamZpbGUgKm9iamZpbGUgPSBUWVBFX09CSkZJTEUgKHR5cGUpOwogKwpAQCAtMjM0MzYsNyAr MjU4NzQsNyBAQCBpbmRleCAwMDAwMDAwLi5jMzlmZjI3CiArCiArICBpZiAodHlwZS0+cHJldikK ICsgICAgdHlwZS0+cHJldi0+bmV4dCA9IHR5cGUtPm5leHQ7Ci0rICBlbHNlIGlmICh0eXBlLT50 eXBlICYmIFRZUEVfT0JKRklMRSAodHlwZS0+dHlwZSkpCisrICBlbHNlIGlmICh0eXBlLT50eXBl ICYmICFPQkpGSUxFX0lTX1ZJUlRVQUwgKFRZUEVfT0JKRklMRSAodHlwZS0+dHlwZSkpKQogKyAg ICB7CiArICAgICAgLyogTXVzdCByZXNldCBoZWFkIG9mIGxpc3QuICAqLwogKyAgICAgIHN0cnVj dCBvYmpmaWxlICpvYmpmaWxlID0gVFlQRV9PQkpGSUxFICh0eXBlLT50eXBlKTsKQEAgLTIzODY5 LDcgKzI2MzA3LDcgQEAgaW5kZXggYmMwNzdiNi4uZGU1NGI5ZCAxMDA2NDQKICB9OwogIAogZGlm ZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9uLmMgYi9nZGIvcHl0aG9uL3B5dGhvbi5jCi1pbmRl eCBiM2EyN2Q2Li5hMzhlYTkyIDEwMDY0NAoraW5kZXggYjNhMjdkNi4uMTg1NzhmMCAxMDA2NDQK IC0tLSBhL2dkYi9weXRob24vcHl0aG9uLmMKICsrKyBiL2dkYi9weXRob24vcHl0aG9uLmMKIEBA IC0yMiw2ICsyMiwxMiBAQApAQCAtMjU0MDIsMTIgKzI3ODQwLDggQEAgaW5kZXggYjNhMjdkNi4u YTM4ZWE5MiAxMDA2NDQKICAjaWZkZWYgSEFWRV9QWVRIT04KICAgIFB5X0luaXRpYWxpemUgKCk7 CiAgICBQeUV2YWxfSW5pdFRocmVhZHMgKCk7Ci1AQCAtNDEwLDExICsxNzY4LDMyIEBAIEVuYWJs ZXMgb3IgZGlzYWJsZXMgcHJpbnRpbmcgb2YgUHl0aG9uIHN0YWNrIHRyYWNlcy4iKSwKLSAgIFB5 TW9kdWxlX0FkZFN0cmluZ0NvbnN0YW50IChnZGJfbW9kdWxlLCAiVkVSU0lPTiIsIChjaGFyKikg dmVyc2lvbik7Ci0gICBQeU1vZHVsZV9BZGRTdHJpbmdDb25zdGFudCAoZ2RiX21vZHVsZSwgIkhP U1RfQ09ORklHIiwgKGNoYXIqKSBob3N0X25hbWUpOworQEAgLTQxMiw5ICsxNzcwLDI4IEBAIEVu YWJsZXMgb3IgZGlzYWJsZXMgcHJpbnRpbmcgb2YgUHl0aG9uIHN0YWNrIHRyYWNlcy4iKSwKICAg IFB5TW9kdWxlX0FkZFN0cmluZ0NvbnN0YW50IChnZGJfbW9kdWxlLCAiVEFSR0VUX0NPTkZJRyIs IChjaGFyKikgdGFyZ2V0X25hbWUpOwotKyAgaWYgKGdkYl9kYXRhZGlyKQotKyAgICBQeU1vZHVs ZV9BZGRTdHJpbmdDb25zdGFudCAoZ2RiX21vZHVsZSwgImRhdGFkaXIiLCBnZGJfZGF0YWRpcik7 CiAgCiAgICBnZGJweV9pbml0aWFsaXplX3ZhbHVlcyAoKTsKICsgIGdkYnB5X2luaXRpYWxpemVf YnJlYWtwb2ludHMgKCk7CkBAIC0yNTQzNSwyMiArMjc4NjksMjEgQEAgaW5kZXggYjNhMjdkNi4u YTM4ZWE5MiAxMDA2NDQKICAKICAgIGdkYnB5X2RvY19jc3QgPSBQeVN0cmluZ19Gcm9tU3RyaW5n ICgiX19kb2NfXyIpOwogIAotQEAgLTQ0Miw2ICsxODIxLDE0IEBAIGNsYXNzIEdkYk91dHB1dEZp bGU6XG5cCitAQCAtNDQyLDYgKzE4MTksMTMgQEAgY2xhc3MgR2RiT3V0cHV0RmlsZTpcblwKICBc blwKICBzeXMuc3RkZXJyID0gR2RiT3V0cHV0RmlsZSgpXG5cCiAgc3lzLnN0ZG91dCA9IEdkYk91 dHB1dEZpbGUoKVxuXAotK2lmIGhhc2F0dHIgKGdkYiwgJ2RhdGFkaXInKTpcblwKLSsgIGdkYi5w eXRob25saWJkaXIgPSBnZGIuZGF0YWRpciArICcvcHl0aG9uJ1xuXAotKyAgc3lzLnBhdGguaW5z ZXJ0KDAsIGdkYi5weXRob25saWJkaXIpXG5cCi0rICBnZGIuX19wYXRoX18gPSBbZ2RiLnB5dGhv bmxpYmRpciArICcvZ2RiJ11cblwKLSsgIGZyb20gb3MucGF0aCBpbXBvcnQgZXhpc3RzXG5cCi0r ICBpcHkgPSBnZGIucHl0aG9ubGliZGlyICsgJy9nZGIvX19pbml0X18ucHknXG5cCi0rICBpZiBl eGlzdHMgKGlweSk6XG5cCi0rICAgIGV4ZWNmaWxlIChpcHkpXG5cCisrIyBGSVhNRTogZ2RiLnB5 dGhvbmxpYmRpciBpcyBkZXByZWNhdGVkIGFzIGl0IGlzIGp1c3QgdGhlIHN0YW5kYXJkIGxpYmRp ci5cblwKKytnZGIucHl0aG9ubGliZGlyID0gJyIgR0RCX1BZVEhPTkRJUl9QQVRIICInXG5cCisr Z2RiLl9fcGF0aF9fID0gW2dkYi5weXRob25saWJkaXIgKyAnL2dkYiddXG5cCisrZnJvbSBvcy5w YXRoIGltcG9ydCBleGlzdHNcblwKKytpcHkgPSBnZGIucHl0aG9ubGliZGlyICsgJy9nZGIvX19p bml0X18ucHknXG5cCisraWYgZXhpc3RzIChpcHkpOlxuXAorKyAgZXhlY2ZpbGUgKGlweSlcblwK ICAiKTsKICAKICAgIC8qIFJlbGVhc2UgdGhlIEdJTCB3aGlsZSBnZGIgcnVucy4gICovCi1AQCAt NDYxLDkgKzE4NDgsNzQgQEAgc3RhdGljIFB5TWV0aG9kRGVmIEdkYk1ldGhvZHNbXSA9CitAQCAt NDYxLDkgKzE4NDUsNzQgQEAgc3RhdGljIFB5TWV0aG9kRGVmIEdkYk1ldGhvZHNbXSA9CiAgICAg ICJHZXQgYSB2YWx1ZSBmcm9tIGhpc3RvcnkiIH0sCiAgICB7ICJleGVjdXRlIiwgZXhlY3V0ZV9n ZGJfY29tbWFuZCwgTUVUSF9WQVJBUkdTLAogICAgICAiRXhlY3V0ZSBhIGdkYiBjb21tYW5kIiB9 LApAQCAtMjU1NDUsNiArMjc5NzgsOTggQEAgaW5kZXggZTYzYzQ0Ny4uNzY3YWY4NiAxMDA2NDQK ICsJCQkgICAgICBjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqbGFuZ3VhZ2UpOwogKwogICNl bmRpZiAvKiBHREJfUFlUSE9OX0ggKi8KK2RpZmYgLS1naXQgYS9nZGIvcnM2MDAwLXRkZXAuYyBi L2dkYi9yczYwMDAtdGRlcC5jCitpbmRleCA5MjZkMGI2Li4xYzU5YTQyIDEwMDY0NAorLS0tIGEv Z2RiL3JzNjAwMC10ZGVwLmMKKysrKyBiL2dkYi9yczYwMDAtdGRlcC5jCitAQCAtMTE3LDYgKzEx Nyw5IEBAIHN0YXRpYyBjb25zdCBjaGFyICpwb3dlcnBjX3ZlY3Rvcl9zdHJpbmdzW10gPQorICAg TlVMTAorIH07CisgCisrLyogVGhlIGNvbmZpZ3VyYWJsZSBgZGlzYXNzZW1ibGVfaW5mby5kaXNh c3NlbWJsZXJfb3B0aW9ucycgc3RyaW5nLiAgKi8KKytzdGF0aWMgY2hhciAqZGlzYXNzZW1ibGVy X29wdGlvbnM7CisrCisgLyogQSB2YXJpYWJsZSB0aGF0IGNhbiBiZSBjb25maWd1cmVkIGJ5IHRo ZSB1c2VyLiAgKi8KKyBzdGF0aWMgZW51bSBwb3dlcnBjX3ZlY3Rvcl9hYmkgcG93ZXJwY192ZWN0 b3JfYWJpX2dsb2JhbCA9IFBPV0VSUENfVkVDX0FVVE87Cisgc3RhdGljIGNvbnN0IGNoYXIgKnBv d2VycGNfdmVjdG9yX2FiaV9zdHJpbmcgPSAiYXV0byI7CitAQCAtMjk5MywxNSArMjk5NiwxNyBA QCBmaW5kX3ZhcmlhbnRfYnlfYXJjaCAoZW51bSBiZmRfYXJjaGl0ZWN0dXJlIGFyY2gsIHVuc2ln bmVkIGxvbmcgbWFjaCkKKyB9CisgCisgc3RhdGljIGludAorLWdkYl9wcmludF9pbnNuX3Bvd2Vy cGMgKGJmZF92bWEgbWVtYWRkciwgZGlzYXNzZW1ibGVfaW5mbyAqaW5mbykKKytnZGJfcHJpbnRf aW5zbl9wb3dlcnBjIChiZmRfdm1hIG1lbWFkZHIsIGRpc2Fzc2VtYmxlX2luZm8gKmluZm9fcG9p bnRlcikKKyB7CistICBpZiAoIWluZm8tPmRpc2Fzc2VtYmxlcl9vcHRpb25zKQorLSAgICBpbmZv LT5kaXNhc3NlbWJsZXJfb3B0aW9ucyA9ICJhbnkiOworKyAgZGlzYXNzZW1ibGVfaW5mbyBpbmZv ID0gKmluZm9fcG9pbnRlcjsKKyAKKy0gIGlmIChpbmZvLT5lbmRpYW4gPT0gQkZEX0VORElBTl9C SUcpCistICAgIHJldHVybiBwcmludF9pbnNuX2JpZ19wb3dlcnBjIChtZW1hZGRyLCBpbmZvKTsK KysgIGlmIChkaXNhc3NlbWJsZXJfb3B0aW9ucyAmJiBkaXNhc3NlbWJsZXJfb3B0aW9uc1swXSkK KysgICAgaW5mby5kaXNhc3NlbWJsZXJfb3B0aW9ucyA9IGRpc2Fzc2VtYmxlcl9vcHRpb25zOwor KyAgICAKKysgIGlmIChpbmZvLmVuZGlhbiA9PSBCRkRfRU5ESUFOX0JJRykKKysgICAgcmV0dXJu IHByaW50X2luc25fYmlnX3Bvd2VycGMgKG1lbWFkZHIsICZpbmZvKTsKKyAgIGVsc2UKKy0gICAg cmV0dXJuIHByaW50X2luc25fbGl0dGxlX3Bvd2VycGMgKG1lbWFkZHIsIGluZm8pOworKyAgICBy ZXR1cm4gcHJpbnRfaW5zbl9saXR0bGVfcG93ZXJwYyAobWVtYWRkciwgJmluZm8pOworIH0KKyAM Cisgc3RhdGljIENPUkVfQUREUgorQEAgLTMzMjYsNyArMzMzMSw2IEBAIHJzNjAwMF9nZGJhcmNo X2luaXQgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbywgc3RydWN0IGdkYmFyY2hfbGlzdCAqYXJj aGVzKQorICAgZW51bSBiZmRfYXJjaGl0ZWN0dXJlIGFyY2g7CisgICB1bnNpZ25lZCBsb25nIG1h Y2g7CisgICBiZmQgYWJmZDsKKy0gIGFzZWN0aW9uICpzZWN0OworICAgZW51bSBhdXRvX2Jvb2xl YW4gc29mdF9mbG9hdF9mbGFnID0gcG93ZXJwY19zb2Z0X2Zsb2F0X2dsb2JhbDsKKyAgIGludCBz b2Z0X2Zsb2F0OworICAgZW51bSBwb3dlcnBjX3ZlY3Rvcl9hYmkgdmVjdG9yX2FiaSA9IHBvd2Vy cGNfdmVjdG9yX2FiaV9nbG9iYWw7CitAQCAtMzM3NSwyNiArMzM3OSw2IEBAIHJzNjAwMF9nZGJh cmNoX2luaXQgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbywgc3RydWN0IGdkYmFyY2hfbGlzdCAq YXJjaGVzKQorICAgYXJjaCA9IGluZm8uYmZkX2FyY2hfaW5mby0+YXJjaDsKKyAgIG1hY2ggPSBp bmZvLmJmZF9hcmNoX2luZm8tPm1hY2g7CisgCistICAvKiBGb3IgZTUwMCBleGVjdXRhYmxlcywg dGhlIGFwdWluZm8gc2VjdGlvbiBpcyBvZiBoZWxwIGhlcmUuICBTdWNoCistICAgICBzZWN0aW9u IGNvbnRhaW5zIHRoZSBpZGVudGlmaWVyIGFuZCByZXZpc2lvbiBudW1iZXIgb2YgZWFjaAorLSAg ICAgQXBwbGljYXRpb24tc3BlY2lmaWMgUHJvY2Vzc2luZyBVbml0IHRoYXQgaXMgcHJlc2VudCBv biB0aGUKKy0gICAgIGNoaXAuICBUaGUgY29udGVudCBvZiB0aGUgc2VjdGlvbiBpcyBkZXRlcm1p bmVkIGJ5IHRoZSBhc3NlbWJsZXIKKy0gICAgIHdoaWNoIGxvb2tzIGF0IGVhY2ggaW5zdHJ1Y3Rp b24gYW5kIGRldGVybWluZXMgd2hpY2ggdW5pdCAoYW5kCistICAgICB3aGljaCB2ZXJzaW9uIG9m IGl0KSBjYW4gZXhlY3V0ZSBpdC4gSW4gb3VyIGNhc2Ugd2UganVzdCBsb29rIGZvcgorLSAgICAg dGhlIGV4aXN0YW5jZSBvZiB0aGUgc2VjdGlvbi4gICovCistCistICBpZiAoaW5mby5hYmZkKQor LSAgICB7CistICAgICAgc2VjdCA9IGJmZF9nZXRfc2VjdGlvbl9ieV9uYW1lIChpbmZvLmFiZmQs ICIuUFBDLkVNQi5hcHVpbmZvIik7CistICAgICAgaWYgKHNlY3QpCistCXsKKy0JICBhcmNoID0g aW5mby5iZmRfYXJjaF9pbmZvLT5hcmNoOworLQkgIG1hY2ggPSBiZmRfbWFjaF9wcGNfZTUwMDsK Ky0JICBiZmRfZGVmYXVsdF9zZXRfYXJjaF9tYWNoICgmYWJmZCwgYXJjaCwgbWFjaCk7CistCSAg aW5mby5iZmRfYXJjaF9pbmZvID0gYmZkX2dldF9hcmNoX2luZm8gKCZhYmZkKTsKKy0JfQorLSAg ICB9CistCisgICAvKiBGaW5kIGEgZGVmYXVsdCB0YXJnZXQgZGVzY3JpcHRpb24gd2hpY2ggZGVz Y3JpYmVzIG91ciByZWdpc3RlcgorICAgICAgbGF5b3V0LCBpZiB3ZSBkbyBub3QgYWxyZWFkeSBo YXZlIG9uZS4gICovCisgICBpZiAoISB0ZGVzY19oYXNfcmVnaXN0ZXJzICh0ZGVzYykpCitAQCAt NDA1OCw0ICs0MDQyLDE4IEBAIF9pbml0aWFsaXplX3JzNjAwMF90ZGVwICh2b2lkKQorIAkJCV8o IlNob3cgdGhlIHZlY3RvciBBQkkuIiksCisgCQkJTlVMTCwgcG93ZXJwY19zZXRfdmVjdG9yX2Fi aSwgTlVMTCwKKyAJCQkmc2V0cG93ZXJwY2NtZGxpc3QsICZzaG93cG93ZXJwY2NtZGxpc3QpOwor KworKyAgLyogQXJjaGVzIGxpc3QgaXMgdGFrZW4gZnJvbSBvcGNvZGVzL3BwYy1kaXMuYyBwb3dl cnBjX2luaXRfZGlhbGVjdC4gICovCisrICBkaXNhc3NlbWJsZXJfb3B0aW9ucyA9IHhzdHJkdXAg KCJhbnkiKTsKKysgIGFkZF9zZXRzaG93X3N0cmluZ19jbWQgKCJkaXNhc3NlbWJsZXItb3B0aW9u cyIsIGNsYXNzX3N1cHBvcnQsCisrCQkJICAmZGlzYXNzZW1ibGVyX29wdGlvbnMsIF8oIlwKKytQ YXNzIHRoZSB0ZXh0IG9uIHRvIGRpc2Fzc2VtYmxlci4iKSwgXygiXAorK1Nob3cgdGhlIHRleHQg cGFzc2VkIG9uIHRvIGRpc2Fzc2VtYmxlci4iKSwgXygiXAorK1RoaXMgaXMgdGhlIG9iamR1bXAg b3B0aW9uIC1NIHRvIHNwZWNpZnkgdGhlIFBvd2VyUEMgbW9kZWwuICBUaGUgcG9zc2libGVcblwK Kysoc3ViKXN0cmluZ3MgYXJlOiBwcGNwcywgYm9va2UsIGU1MDBtYywgZTUwMCwgZWZzLCBlMzAw LCA0NDAsIDQ2NCwgcG93ZXI0LFxuXAorK3Bvd2VyNSwgY2VsbCwgcG93ZXI2LCBwb3dlcjcsIHZz eCwgYW55LCAzMiBhbmQgNjQuICBVbmxpa2Ugb2JqZHVtcCBHREIgdXNlc1xuXAorK3RoZSBkZWZh dWx0IHZhbHVlIGBhbnknLiIpLAorKwkJCSAgTlVMTCwKKysJCQkgIE5VTEwsCisrCQkJICAmc2V0 cG93ZXJwY2NtZGxpc3QsICZzaG93cG93ZXJwY2NtZGxpc3QpOworIH0KIGRpZmYgLS1naXQgYS9n ZGIvc2NtLWxhbmcuYyBiL2dkYi9zY20tbGFuZy5jCiBpbmRleCAzNDViZWZkLi5lMjU2OGM4IDEw MDY0NAogLS0tIGEvZ2RiL3NjbS1sYW5nLmMKQEAgLTI1NTk1LDcgKzI4MTIwLDcgQEAgaW5kZXgg ZjBhNzY0Mi4uYTMyYWRkNSAxMDA2NDQKICAJfQogICAgICAgIGVsc2UgaWYgKFNDTV9JRkxBR1Ag KHN2YWx1ZSkKIGRpZmYgLS1naXQgYS9nZGIvc3RhYnNyZWFkLmMgYi9nZGIvc3RhYnNyZWFkLmMK LWluZGV4IDJkN2ViMTUuLjRjZDMzZWQgMTAwNjQ0CitpbmRleCAyZDdlYjE1Li43NDIzYjMyIDEw MDY0NAogLS0tIGEvZ2RiL3N0YWJzcmVhZC5jCiArKysgYi9nZGIvc3RhYnNyZWFkLmMKIEBAIC0z MjIsNyArMzIyLDcgQEAgZGJ4X2FsbG9jX3R5cGUgKGludCB0eXBlbnVtc1syXSwgc3RydWN0IG9i amZpbGUgKm9iamZpbGUpCkBAIC0yNTYyNCwxMSArMjgxNDksMjcgQEAgaW5kZXggMmQ3ZWIxNS4u NGNkMzNlZCAxMDA2NDQKICAKICAgIC8qIFdlIHdvdWxkIGxpa2UgdG8gZWxpbWluYXRlIG5hbWVs ZXNzIHN5bWJvbHMsIGJ1dCBrZWVwIHRoZWlyIHR5cGVzLgogICAgICAgRS5nLiBzdGFiIGVudHJ5 ICI6dDEwPSoyIiBzaG91bGQgcHJvZHVjZSBhIHR5cGUgMTAsIHdoaWNoIGlzIGEgcG9pbnRlcgot QEAgLTY4Myw5ICs2ODQsMjEgQEAgZGVmaW5lX3N5bWJvbCAoQ09SRV9BRERSIHZhbHUsIGNoYXIg KnN0cmluZywgaW50IGRlc2MsIGludCB0eXBlLAorQEAgLTY4Myw5ICs2ODQsMzcgQEAgZGVmaW5l X3N5bWJvbCAoQ09SRV9BRERSIHZhbHUsIGNoYXIgKnN0cmluZywgaW50IGRlc2MsIGludCB0eXBl LAogICAgICB7CiAgICAgIG5vcm1hbDoKICAgICAgICBTWU1CT0xfTEFOR1VBR0UgKHN5bSkgPSBj dXJyZW50X3N1YmZpbGUtPmxhbmd1YWdlOwogLSAgICAgIFNZTUJPTF9TRVRfTkFNRVMgKHN5bSwg c3RyaW5nLCBwIC0gc3RyaW5nLCBvYmpmaWxlKTsKKysgICAgICBpZiAoY3VycmVudF9zdWJmaWxl LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9jcGx1cykKKysJeworKwkgIGNoYXIgKm5hbWUgPSBhbGxv Y2EgKHAgLSBzdHJpbmcgKyAxKTsKKysJICBtZW1jcHkgKG5hbWUsIHN0cmluZywgcCAtIHN0cmlu Zyk7CisrCSAgbmFtZVtwIC0gc3RyaW5nXSA9ICdcMCc7CisrCSAgbmV3X25hbWUgPSBjcF9jYW5v bmljYWxpemVfc3RyaW5nIChuYW1lKTsKKysJfQorKworKyAgICAgIGlmIChuZXdfbmFtZSAhPSBO VUxMKQorKwl7CisrCSAgU1lNQk9MX1NFVF9OQU1FUyAoc3ltLCBuZXdfbmFtZSwgc3RybGVuIChu ZXdfbmFtZSksIG9iamZpbGUpOworKwkgIHhmcmVlIChuZXdfbmFtZSk7CisrCX0KKysgICAgICBl bHNlCisrCVNZTUJPTF9TRVRfTkFNRVMgKHN5bSwgc3RyaW5nLCBwIC0gc3RyaW5nLCBvYmpmaWxl KTsKKysKICAgICAgICBpZiAoU1lNQk9MX0xBTkdVQUdFIChzeW0pID09IGxhbmd1YWdlX2NwbHVz KQogLQljcF9zY2FuX2Zvcl9hbm9ueW1vdXNfbmFtZXNwYWNlcyAoc3ltKTsKICsJewpAQCAtMjU2 NDgsNyArMjgxODksNyBAQCBpbmRleCAyZDdlYjE1Li40Y2QzM2VkIDEwMDY0NAogICAgICB9CiAg ICBwKys7CiAgCi1AQCAtMTUxOSwxOCArMTUzMiwzNSBAQCBhZ2FpbjoKK0BAIC0xNTE5LDE4ICsx NTQ4LDM1IEBAIGFnYWluOgogIAkgICAgICBpZiAoKnAgIT0gJzonKQogIAkJcmV0dXJuIGVycm9y X3R5cGUgKHBwLCBvYmpmaWxlKTsKICAJICAgIH0KQEAgLTI1OTc0LDcgKzI4NTE1LDcgQEAgaW5k ZXggOTczYTU3Zi4uNTZiMWQ5MSAxMDA2NDQKICsKICAjZW5kaWYgLyogI2lmbmRlZiBTVEFDS19I ICovCiBkaWZmIC0tZ2l0IGEvZ2RiL3N5bWZpbGUuYyBiL2dkYi9zeW1maWxlLmMKLWluZGV4IDYz YjVjMWQuLmE5NWE4YzEgMTAwNjQ0CitpbmRleCA2M2I1YzFkLi44Y2E1NDU3IDEwMDY0NAogLS0t IGEvZ2RiL3N5bWZpbGUuYwogKysrIGIvZ2RiL3N5bWZpbGUuYwogQEAgLTkyOSw2ICs5MjksMTcg QEAgbmV3X3N5bWZpbGVfb2JqZmlsZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGludCBtYWlu bGluZSwgaW50IHZlcmJvKQpAQCAtMjYwNjAsOCArMjg2MDEsMjcgQEAgaW5kZXggNjNiNWMxZC4u YTk1YThjMSAxMDA2NDQKICAJICAgICAgLyogV2UncmUgZG9uZSByZWFkaW5nIHRoZSBzeW1ib2wg ZmlsZTsgZmluaXNoIG9mZiBjb21wbGFpbnRzLiAgKi8KICAJICAgICAgY2xlYXJfY29tcGxhaW50 cyAoJnN5bWZpbGVfY29tcGxhaW50cywgMCwgMSk7CiAgCitAQCAtMjcyNiw3ICsyNzQ0LDcgQEAg YWxsb2NhdGVfc3ltdGFiIChjaGFyICpmaWxlbmFtZSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUp CisgfQorIAorIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqCistYWxsb2NhdGVfcHN5bXRhYiAoY2hh ciAqZmlsZW5hbWUsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorK2FsbG9jYXRlX3BzeW10YWIg KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKKyB7CisgICBz dHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBzeW10YWI7CisgCitAQCAtMzA0MCw3ICszMDU4LDggQEAg YWdhaW4yOgorIAorIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqCisgc3RhcnRfcHN5bXRhYl9jb21t b24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorLQkJICAgICAgc3RydWN0IHNlY3Rpb25fb2Zm c2V0cyAqc2VjdGlvbl9vZmZzZXRzLCBjaGFyICpmaWxlbmFtZSwKKysJCSAgICAgIHN0cnVjdCBz ZWN0aW9uX29mZnNldHMgKnNlY3Rpb25fb2Zmc2V0cywKKysJCSAgICAgIGNvbnN0IGNoYXIgKmZp bGVuYW1lLAorIAkJICAgICAgQ09SRV9BRERSIHRleHRsb3csIHN0cnVjdCBwYXJ0aWFsX3N5bWJv bCAqKmdsb2JhbF9zeW1zLAorIAkJICAgICAgc3RydWN0IHBhcnRpYWxfc3ltYm9sICoqc3RhdGlj X3N5bXMpCisgewogZGlmZiAtLWdpdCBhL2dkYi9zeW1maWxlLmggYi9nZGIvc3ltZmlsZS5oCi1p bmRleCA4OGY4MzI2Li4xMDlmYWRjIDEwMDY0NAoraW5kZXggODhmODMyNi4uNTA2NzFjMSAxMDA2 NDQKIC0tLSBhL2dkYi9zeW1maWxlLmgKICsrKyBiL2dkYi9zeW1maWxlLmgKIEBAIC0xNDAsNiAr MTQwLDEyIEBAIHN0cnVjdCBzeW1fZm5zCkBAIC0yNjA3Nyw2ICsyODYzNywyNCBAQCBpbmRleCA4 OGY4MzI2Li4xMDlmYWRjIDEwMDY0NAogICAgLyogQ2FsbGVkIHdoZW4gd2UgYXJlIGZpbmlzaGVk IHdpdGggYW4gb2JqZmlsZS4gIFNob3VsZCBkbyBhbGwKICAgICAgIGNsZWFudXAgdGhhdCBpcyBz cGVjaWZpYyB0byB0aGUgb2JqZWN0IGZpbGUgZm9ybWF0IGZvciB0aGUKICAgICAgIHBhcnRpY3Vs YXIgb2JqZmlsZS4gICovCitAQCAtMjUwLDcgKzI1Niw3IEBAIGV4dGVybiB2b2lkIGZyZWVfc2Vj dGlvbl9hZGRyX2luZm8gKHN0cnVjdCBzZWN0aW9uX2FkZHJfaW5mbyAqKTsKKyAKKyBleHRlcm4g c3RydWN0IHBhcnRpYWxfc3ltdGFiICpzdGFydF9wc3ltdGFiX2NvbW1vbiAoc3RydWN0IG9iamZp bGUgKiwKKyAJCQkJCQkgICAgc3RydWN0IHNlY3Rpb25fb2Zmc2V0cyAqLAorLQkJCQkJCSAgICBj aGFyICosIENPUkVfQUREUiwKKysJCQkJCQkgICAgY29uc3QgY2hhciAqLCBDT1JFX0FERFIsCisg CQkJCQkJICAgIHN0cnVjdCBwYXJ0aWFsX3N5bWJvbCAqKiwKKyAJCQkJCQkgICAgc3RydWN0IHBh cnRpYWxfc3ltYm9sICoqKTsKKyAKK0BAIC0zMDAsNyArMzA2LDcgQEAgZXh0ZXJuIGludCBhdXRv X3NvbGliX2xpbWl0OworIAorIGV4dGVybiB2b2lkIHNldF9pbml0aWFsX2xhbmd1YWdlICh2b2lk KTsKKyAKKy1leHRlcm4gc3RydWN0IHBhcnRpYWxfc3ltdGFiICphbGxvY2F0ZV9wc3ltdGFiIChj aGFyICosIHN0cnVjdCBvYmpmaWxlICopOworK2V4dGVybiBzdHJ1Y3QgcGFydGlhbF9zeW10YWIg KmFsbG9jYXRlX3BzeW10YWIgKGNvbnN0IGNoYXIgKiwgc3RydWN0IG9iamZpbGUgKik7CisgCisg ZXh0ZXJuIHZvaWQgZGlzY2FyZF9wc3ltdGFiIChzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKik7Cisg CiBAQCAtMzY5LDcgKzM3NSw3IEBAIHZvaWQgZnJlZV9zeW1maWxlX3NlZ21lbnRfZGF0YSAoc3Ry dWN0IHN5bWZpbGVfc2VnbWVudF9kYXRhICpkYXRhKTsKICAvKiBGcm9tIGR3YXJmMnJlYWQuYyAq LwogIApAQCAtMjYwODcsMTAgKzI4NjY1LDE4IEBAIGluZGV4IDg4ZjgzMjYuLjEwOWZhZGMgMTAw NjQ0CiAgZXh0ZXJuIHZvaWQgZHdhcmYyX2J1aWxkX2ZyYW1lX2luZm8gKHN0cnVjdCBvYmpmaWxl ICopOwogIAogZGlmZiAtLWdpdCBhL2dkYi9zeW10YWIuYyBiL2dkYi9zeW10YWIuYwotaW5kZXgg ZDUxYzdhYS4uNTU5ZjQzNiAxMDA2NDQKK2luZGV4IGQyYmExZjMuLjU5M2NkZWQgMTAwNjQ0CiAt LS0gYS9nZGIvc3ltdGFiLmMKICsrKyBiL2dkYi9zeW10YWIuYwotQEAgLTU1LDYgKzU1LDcgQEAK K0BAIC00Miw2ICs0Miw3IEBACisgI2luY2x1ZGUgImFkYS1sYW5nLmgiCisgI2luY2x1ZGUgInAt bGFuZy5oIgorICNpbmNsdWRlICJhZGRybWFwLmgiCisrI2luY2x1ZGUgImNwLXN1cHBvcnQuaCIK KyAKKyAjaW5jbHVkZSAiaGFzaHRhYi5oIgorIAorQEAgLTU1LDYgKzU2LDcgQEAKICAjaW5jbHVk ZSAiZ2RiX3N0YXQuaCIKICAjaW5jbHVkZSA8Y3R5cGUuaD4KICAjaW5jbHVkZSAiY3AtYWJpLmgi CkBAIC0yNjA5OCw3ICsyODY4NCw3IEBAIGluZGV4IGQ1MWM3YWEuLjU1OWY0MzYgMTAwNjQ0CiAg I2luY2x1ZGUgIm9ic2VydmVyLmgiCiAgI2luY2x1ZGUgImdkYl9hc3NlcnQuaCIKICAjaW5jbHVk ZSAic29saXN0LmgiCi1AQCAtMjczLDcgKzI3NCw3IEBAIGxvb2t1cF9wYXJ0aWFsX3N5bXRhYiAo Y29uc3QgY2hhciAqbmFtZSkKK0BAIC0yNzMsNyArMjc1LDcgQEAgbG9va3VwX3BhcnRpYWxfc3lt dGFiIChjb25zdCBjaGFyICpuYW1lKQogICAgICAgIG1ha2VfY2xlYW51cCAoeGZyZWUsIHJlYWxf cGF0aCk7CiAgICAgIH0KICAKQEAgLTI2MTA3LDcgKzI4NjkzLDcgQEAgaW5kZXggZDUxYzdhYS4u NTU5ZjQzNiAxMDA2NDQKICAgIHsKICAgICAgaWYgKEZJTEVOQU1FX0NNUCAobmFtZSwgcHN0LT5m aWxlbmFtZSkgPT0gMCkKICAgICAgICB7Ci1AQCAtODcwLDcgKzg3MSwxMyBAQCBmaW5kX3BjX3Nl Y3RfcHN5bXRhYiAoQ09SRV9BRERSIHBjLCBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKnNlY3Rpb24pCitA QCAtODcwLDcgKzg3MiwxMyBAQCBmaW5kX3BjX3NlY3RfcHN5bXRhYiAoQ09SRV9BRERSIHBjLCBz dHJ1Y3Qgb2JqX3NlY3Rpb24gKnNlY3Rpb24pCiAgICAgICB0aGFuIHRoZSBsYXRlciB1c2VkIFRF WFRMT1cvVEVYVEhJR0ggb25lLiAgKi8KICAKICAgIEFMTF9PQkpGSUxFUyAob2JqZmlsZSkKQEAg LTI2MTIyLDcgKzI4NzA4LDcgQEAgaW5kZXggZDUxYzdhYS4uNTU5ZjQzNiAxMDA2NDQKICAgICAg ICB7CiAgCXN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqcHN0OwogIAotQEAgLTkwMyw2ICs5MTAsNyBA QCBmaW5kX3BjX3NlY3RfcHN5bXRhYiAoQ09SRV9BRERSIHBjLCBzdHJ1Y3Qgb2JqX3NlY3Rpb24g KnNlY3Rpb24pCitAQCAtOTAzLDYgKzkxMSw3IEBAIGZpbmRfcGNfc2VjdF9wc3ltdGFiIChDT1JF X0FERFIgcGMsIHN0cnVjdCBvYmpfc2VjdGlvbiAqc2VjdGlvbikKICAJICAgIHJldHVybiBwc3Q7 CiAgCSAgfQogICAgICAgIH0KQEAgLTI2MTMwLDcgKzI4NzE2LDcgQEAgaW5kZXggZDUxYzdhYS4u NTU5ZjQzNiAxMDA2NDQKICAKICAgIC8qIEV4aXN0aW5nIFBTWU1UQUJTX0FERFJNQVAgbWFwcGlu ZyBpcyBwcmVzZW50IGV2ZW4gZm9yIFBBUlRJQUxfU1lNVEFCcwogICAgICAgd2hpY2ggc3RpbGwg aGF2ZSBubyBjb3JyZXNwb25kaW5nIGZ1bGwgU1lNVEFCcyByZWFkLiAgQnV0IGl0IGlzIG5vdAot QEAgLTExNzAsNiArMTE3OCwyMiBAQCBmaXh1cF9wc3ltYm9sX3NlY3Rpb24gKHN0cnVjdCBwYXJ0 aWFsX3N5bWJvbCAqcHN5bSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCitAQCAtMTE3MCw2ICsx MTc5LDIyIEBAIGZpeHVwX3BzeW1ib2xfc2VjdGlvbiAoc3RydWN0IHBhcnRpYWxfc3ltYm9sICpw c3ltLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKICAgIHJldHVybiBwc3ltOwogIH0KICAKQEAg LTI2MTUzLDcgKzI4NzM5LDE5IEBAIGluZGV4IGQ1MWM3YWEuLjU1OWY0MzYgMTAwNjQ0CiAgLyog RmluZCB0aGUgZGVmaW5pdGlvbiBmb3IgYSBzcGVjaWZpZWQgc3ltYm9sIG5hbWUgTkFNRQogICAg IGluIGRvbWFpbiBET01BSU4sIHZpc2libGUgZnJvbSBsZXhpY2FsIGJsb2NrIEJMT0NLLgogICAg IFJldHVybnMgdGhlIHN0cnVjdCBzeW1ib2wgcG9pbnRlciwgb3IgemVybyBpZiBubyBzeW1ib2wg aXMgZm91bmQuCi1AQCAtMTIxMyw2ICsxMjM3LDE3IEBAIGxvb2t1cF9zeW1ib2xfaW5fbGFuZ3Vh Z2UgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2ssCitAQCAtMTIw MCw2ICsxMjI1LDExIEBAIGxvb2t1cF9zeW1ib2xfaW5fbGFuZ3VhZ2UgKGNvbnN0IGNoYXIgKm5h bWUsIGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2ssCisgICBpbnQgbmVlZHRvZnJlZW5hbWUgPSAw OworICAgc3RydWN0IHN5bWJvbCAqcmV0dXJudmFsOworIAorKyAgaWYoc3RybmNtcChuYW1lLCAi OjoiLCAyKSA9PSAwKXsvKiB0aGlzIG11c3QgYmUgYSBnbG9iYWwgbmFtZSAqLworKyAgICBuYW1l ID0gbmFtZSsyOworKyAgICBibG9jayA9IE5VTEw7CisrICB9CisrICAKKyAgIG1vZGlmaWVkX25h bWUgPSBuYW1lOworIAorICAgLyogSWYgd2UgYXJlIHVzaW5nIEMrKyBvciBKYXZhLCBkZW1hbmds ZSB0aGUgbmFtZSBiZWZvcmUgZG9pbmcgYSBsb29rdXAsIHNvCitAQCAtMTIxMyw2ICsxMjQzLDE3 IEBAIGxvb2t1cF9zeW1ib2xfaW5fbGFuZ3VhZ2UgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHN0 cnVjdCBibG9jayAqYmxvY2ssCiAgCSAgbW9kaWZpZWRfbmFtZSA9IGRlbWFuZ2xlZF9uYW1lOwog IAkgIG5lZWR0b2ZyZWVuYW1lID0gMTsKICAJfQpAQCAtMjYxNzEsNyArMjg3NjksMzUgQEAgaW5k ZXggZDUxYzdhYS4uNTU5ZjQzNiAxMDA2NDQKICAgICAgfQogICAgZWxzZSBpZiAobGFuZyA9PSBs YW5ndWFnZV9qYXZhKQogICAgICB7Ci1AQCAtMTQ1MCw2ICsxNDg1LDcgQEAgbG9va3VwX2dsb2Jh bF9zeW1ib2xfZnJvbV9vYmpmaWxlIChjb25zdCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BA IC0xMzYxLDIyICsxNDAyLDIzIEBAIGxvb2t1cF9zeW1ib2xfYXV4X2xvY2FsIChjb25zdCBjaGFy ICpuYW1lLCBjb25zdCBjaGFyICpsaW5rYWdlX25hbWUsCisgCQkJIGNvbnN0IGRvbWFpbl9lbnVt IGRvbWFpbikKKyB7CisgICBzdHJ1Y3Qgc3ltYm9sICpzeW07CistICBjb25zdCBzdHJ1Y3QgYmxv Y2sgKnN0YXRpY19ibG9jayA9IGJsb2NrX3N0YXRpY19ibG9jayAoYmxvY2spOworKyAgY29uc3Qg c3RydWN0IGJsb2NrICpnbG9iYWxfYmxvY2sgPSBibG9ja19nbG9iYWxfYmxvY2sgKGJsb2NrKTsK KyAKKyAgIC8qIENoZWNrIGlmIGVpdGhlciBubyBibG9jayBpcyBzcGVjaWZpZWQgb3IgaXQncyBh IGdsb2JhbCBibG9jay4gICovCisgCistICBpZiAoc3RhdGljX2Jsb2NrID09IE5VTEwpCisrICBp ZiAoZ2xvYmFsX2Jsb2NrID09IE5VTEwpCisgICAgIHJldHVybiBOVUxMOworIAorLSAgd2hpbGUg KGJsb2NrICE9IHN0YXRpY19ibG9jaykKKysgIHdoaWxlIChibG9jayAhPSBnbG9iYWxfYmxvY2sp CisgICAgIHsKKyAgICAgICBzeW0gPSBsb29rdXBfc3ltYm9sX2F1eF9ibG9jayAobmFtZSwgbGlu a2FnZV9uYW1lLCBibG9jaywgZG9tYWluKTsKKyAgICAgICBpZiAoc3ltICE9IE5VTEwpCisgCXJl dHVybiBzeW07CisrICAgIAorICAgICAgIGJsb2NrID0gQkxPQ0tfU1VQRVJCTE9DSyAoYmxvY2sp OworICAgICB9CisgCistICAvKiBXZSd2ZSByZWFjaGVkIHRoZSBzdGF0aWMgYmxvY2sgd2l0aG91 dCBmaW5kaW5nIGEgcmVzdWx0LiAgKi8KKysgIC8qIFdlJ3ZlIHJlYWNoZWQgdGhlIGdsb2JhbCBi bG9jayB3aXRob3V0IGZpbmRpbmcgYSByZXN1bHQuICAqLworIAorICAgcmV0dXJuIE5VTEw7Cisg fQorQEAgLTE0NTAsNiArMTQ5Miw3IEBAIGxvb2t1cF9nbG9iYWxfc3ltYm9sX2Zyb21fb2JqZmls ZSAoY29uc3Qgc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgICB9CiAgCiAgICAvKiBOb3cgZ28g dGhyb3VnaCBwc3ltdGFicy4gICovCkBAIC0yNjE3OSw3ICsyODgwNSw3IEBAIGluZGV4IGQ1MWM3 YWEuLjU1OWY0MzYgMTAwNjQ0CiAgICBBTExfT0JKRklMRV9QU1lNVEFCUyAob2JqZmlsZSwgcHMp CiAgICB7CiAgICAgIGlmICghcHMtPnJlYWRpbgotQEAgLTE1MjAsNyArMTU1Niw3IEBAIGxvb2t1 cF9zeW1ib2xfYXV4X3BzeW10YWJzIChpbnQgYmxvY2tfaW5kZXgsIGNvbnN0IGNoYXIgKm5hbWUs CitAQCAtMTUyMCw3ICsxNTYzLDcgQEAgbG9va3VwX3N5bWJvbF9hdXhfcHN5bXRhYnMgKGludCBi bG9ja19pbmRleCwgY29uc3QgY2hhciAqbmFtZSwKICAgIHN0cnVjdCBzeW10YWIgKnM7CiAgICBj b25zdCBpbnQgcHN5bXRhYl9pbmRleCA9IChibG9ja19pbmRleCA9PSBHTE9CQUxfQkxPQ0sgPyAx IDogMCk7CiAgCkBAIC0yNjE4OCw3ICsyODgxNCw3IEBAIGluZGV4IGQ1MWM3YWEuLjU1OWY0MzYg MTAwNjQ0CiAgICB7CiAgICAgIGlmICghcHMtPnJlYWRpbgogIAkmJiBsb29rdXBfcGFydGlhbF9z eW1ib2wgKHBzLCBuYW1lLCBsaW5rYWdlX25hbWUsCi1AQCAtMTgwNSw3ICsxODQxLDExIEBAIGJh c2ljX2xvb2t1cF90cmFuc3BhcmVudF90eXBlIChjb25zdCBjaGFyICpuYW1lKQorQEAgLTE4MDUs NyArMTg0OCwxMSBAQCBiYXNpY19sb29rdXBfdHJhbnNwYXJlbnRfdHlwZSAoY29uc3QgY2hhciAq bmFtZSkKICAgICAgICB9CiAgICB9CiAgCkBAIC0yNjIwMSw3ICsyODgyNyw3IEBAIGluZGV4IGQ1 MWM3YWEuLjU1OWY0MzYgMTAwNjQ0CiAgICB7CiAgICAgIGlmICghcHMtPnJlYWRpbiAmJiBsb29r dXBfcGFydGlhbF9zeW1ib2wgKHBzLCBuYW1lLCBOVUxMLAogIAkJCQkJICAgICAgMSwgU1RSVUNU X0RPTUFJTikpCi1AQCAtMTg1Myw3ICsxODkzLDEyIEBAIGJhc2ljX2xvb2t1cF90cmFuc3BhcmVu dF90eXBlIChjb25zdCBjaGFyICpuYW1lKQorQEAgLTE4NTMsNyArMTkwMCwxMiBAQCBiYXNpY19s b29rdXBfdHJhbnNwYXJlbnRfdHlwZSAoY29uc3QgY2hhciAqbmFtZSkKICAgICAgICB9CiAgICB9 CiAgCkBAIC0yNjIxNSw3ICsyODg0MSw3IEBAIGluZGV4IGQ1MWM3YWEuLjU1OWY0MzYgMTAwNjQ0 CiAgICB7CiAgICAgIGlmICghcHMtPnJlYWRpbiAmJiBsb29rdXBfcGFydGlhbF9zeW1ib2wgKHBz LCBuYW1lLCBOVUxMLCAwLCBTVFJVQ1RfRE9NQUlOKSkKICAgICAgICB7Ci1AQCAtMTg5NCw3ICsx OTM5LDIxIEBAIGZpbmRfbWFpbl9wc3ltdGFiICh2b2lkKQorQEAgLTE4OTQsNyArMTk0NiwyMSBA QCBmaW5kX21haW5fcHN5bXRhYiAodm9pZCkKICAgIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqcHN0 OwogICAgc3RydWN0IG9iamZpbGUgKm9iamZpbGU7CiAgCkBAIC0yNjIzOCw3ICsyODg2NCw3IEBA IGluZGV4IGQ1MWM3YWEuLjU1OWY0MzYgMTAwNjQ0CiAgICB7CiAgICAgIGlmIChsb29rdXBfcGFy dGlhbF9zeW1ib2wgKHBzdCwgbWFpbl9uYW1lICgpLCBOVUxMLCAxLCBWQVJfRE9NQUlOKSkKICAg ICAgICB7Ci1AQCAtMzA4NSw3ICszMTQ0LDcgQEAgc2VhcmNoX3N5bWJvbHMgKGNoYXIgKnJlZ2V4 cCwgZG9tYWluX2VudW0ga2luZCwgaW50IG5maWxlcywgY2hhciAqZmlsZXNbXSwKK0BAIC0zMDg1 LDcgKzMxNTEsNyBAQCBzZWFyY2hfc3ltYm9scyAoY2hhciAqcmVnZXhwLCBkb21haW5fZW51bSBr aW5kLCBpbnQgbmZpbGVzLCBjaGFyICpmaWxlc1tdLAogICAgICAgbWF0Y2hpbmcgdGhlIHJlZ2V4 cC4gIFRoYXQgd2F5IHdlIGRvbid0IGhhdmUgdG8gcmVwcm9kdWNlIGFsbCBvZgogICAgICAgdGhl IG1hY2hpbmVyeSBiZWxvdy4gKi8KICAKQEAgLTI2MjQ4LDEwICsyODg3NCwyMCBAQCBpbmRleCBk NTFjN2FhLi41NTlmNDM2IDEwMDY0NAogICAgICBzdHJ1Y3QgcGFydGlhbF9zeW1ib2wgKipib3Vu ZCwgKipnYm91bmQsICoqc2JvdW5kOwogICAgICBpbnQga2VlcF9nb2luZyA9IDE7CiBkaWZmIC0t Z2l0IGEvZ2RiL3N5bXRhYi5oIGIvZ2RiL3N5bXRhYi5oCi1pbmRleCA4YjA4NmYzLi5lNTlkNWM2 IDEwMDY0NAoraW5kZXggOGIwODZmMy4uMDZiZjdlOCAxMDA2NDQKIC0tLSBhL2dkYi9zeW10YWIu aAogKysrIGIvZ2RiL3N5bXRhYi5oCi1AQCAtMzk0LDcgKzM5NCwxMCBAQCB0eXBlZGVmIGVudW0g ZG9tYWluX2VudW1fdGFnCitAQCAtMTcxLDkgKzE3MSw2IEBAIGV4dGVybiBDT1JFX0FERFIgc3lt Ym9sX292ZXJsYXllZF9hZGRyZXNzIChDT1JFX0FERFIsIHN0cnVjdCBvYmpfc2VjdGlvbiAqKTsK KyAjZGVmaW5lIFNZTUJPTF9TRUNUSU9OKHN5bWJvbCkJCShzeW1ib2wpLT5naW5mby5zZWN0aW9u CisgI2RlZmluZSBTWU1CT0xfT0JKX1NFQ1RJT04oc3ltYm9sKQkoc3ltYm9sKS0+Z2luZm8ub2Jq X3NlY3Rpb24KKyAKKy0jZGVmaW5lIFNZTUJPTF9DUExVU19ERU1BTkdMRURfTkFNRShzeW1ib2wp CVwKKy0gIChzeW1ib2wpLT5naW5mby5sYW5ndWFnZV9zcGVjaWZpYy5jcGx1c19zcGVjaWZpYy5k ZW1hbmdsZWRfbmFtZQorLQorIC8qIEluaXRpYWxpemVzIHRoZSBsYW5ndWFnZSBkZXBlbmRlbnQg cG9ydGlvbiBvZiBhIHN5bWJvbAorICAgIGRlcGVuZGluZyB1cG9uIHRoZSBsYW5ndWFnZSBmb3Ig dGhlIHN5bWJvbC4gKi8KKyAjZGVmaW5lIFNZTUJPTF9JTklUX0xBTkdVQUdFX1NQRUNJRklDKHN5 bWJvbCxsYW5ndWFnZSkgXAorQEAgLTM5NCw3ICszOTEsMTAgQEAgdHlwZWRlZiBlbnVtIGRvbWFp bl9lbnVtX3RhZwogICAgRlVOQ1RJT05TX0RPTUFJTiwKICAKICAgIC8qIEFsbCBkZWZpbmVkIHR5 cGVzICovCkBAIC0yNjI2Myw3ICsyODg5OSw3IEBAIGluZGV4IDhiMDg2ZjMuLmU1OWQ1YzYgMTAw NjQ0CiAgfQogIGRvbWFpbl9lbnVtOwogIAotQEAgLTEwMjcsNiArMTAzMCw4IEBAIGV4dGVybiB2 b2lkIGNsZWFyX3BjX2Z1bmN0aW9uX2NhY2hlICh2b2lkKTsKK0BAIC0xMDI3LDYgKzEwMjcsOCBA QCBleHRlcm4gdm9pZCBjbGVhcl9wY19mdW5jdGlvbl9jYWNoZSAodm9pZCk7CiAgCiAgLyogZnJv bSBzeW10YWIuYzogKi8KICAKQEAgLTI3Mjg2LDEwICsyOTkyMiwxMCBAQCBpbmRleCBiODlkNTUx Li44MzEwNzBjIDEwMDY0NAogICAgICAgIHJldHVybiB4c3RycHJpbnRmICgiJXNzcHVyaW91cyIs IGtpbmRfc3RyKTsKICAgICAgY2FzZSBUQVJHRVRfV0FJVEtJTkRfSUdOT1JFOgogZGlmZiAtLWdp dCBhL2dkYi90YXJnZXQuaCBiL2dkYi90YXJnZXQuaAotaW5kZXggMjc2YWYxZC4uOWYzN2YxNiAx MDA2NDQKK2luZGV4IDdmNGNkOGYuLjhkY2MzZDYgMTAwNjQ0CiAtLS0gYS9nZGIvdGFyZ2V0LmgK ICsrKyBiL2dkYi90YXJnZXQuaAotQEAgLTEzOSwxOCArMTM5LDM0IEBAIHN0cnVjdCB0YXJnZXRf d2FpdHN0YXR1cworQEAgLTE0MCwxOCArMTQwLDM0IEBAIHN0cnVjdCB0YXJnZXRfd2FpdHN0YXR1 cwogICAgewogICAgICBlbnVtIHRhcmdldF93YWl0a2luZCBraW5kOwogIApAQCAtMjczMjYsNyAr Mjk5NjIsNyBAQCBpbmRleCAyNzZhZjFkLi45ZjM3ZjE2IDEwMDY0NAogIC8qIFJldHVybiBhIHBy ZXR0eSBwcmludGVkIGZvcm0gb2YgdGFyZ2V0X3dhaXRzdGF0dXMuCiAgICAgU3BhY2UgZm9yIHRo ZSByZXN1bHQgaXMgbWFsbG9jJ2QsIGNhbGxlciBtdXN0IGZyZWUuICAqLwogIGV4dGVybiBjaGFy ICp0YXJnZXRfd2FpdHN0YXR1c190b19zdHJpbmcgKGNvbnN0IHN0cnVjdCB0YXJnZXRfd2FpdHN0 YXR1cyAqKTsKLUBAIC00MDAsNiArNDE2LDggQEAgc3RydWN0IHRhcmdldF9vcHMKK0BAIC0zOTIs NiArNDA4LDggQEAgc3RydWN0IHRhcmdldF9vcHMKICAgICAgaW50ICgqdG9fZm9sbG93X2Zvcmsp IChzdHJ1Y3QgdGFyZ2V0X29wcyAqLCBpbnQpOwogICAgICB2b2lkICgqdG9faW5zZXJ0X2V4ZWNf Y2F0Y2hwb2ludCkgKGludCk7CiAgICAgIGludCAoKnRvX3JlbW92ZV9leGVjX2NhdGNocG9pbnQp IChpbnQpOwpAQCAtMjczMzUsNyArMjk5NzEsNyBAQCBpbmRleCAyNzZhZjFkLi45ZjM3ZjE2IDEw MDY0NAogICAgICBpbnQgKCp0b19oYXNfZXhpdGVkKSAoaW50LCBpbnQsIGludCAqKTsKICAgICAg dm9pZCAoKnRvX21vdXJuX2luZmVyaW9yKSAoc3RydWN0IHRhcmdldF9vcHMgKik7CiAgICAgIGlu dCAoKnRvX2Nhbl9ydW4pICh2b2lkKTsKLUBAIC03MzEsNiArNzQ5LDggQEAgZXh0ZXJuIGludCBp bmZlcmlvcl9oYXNfdmZvcmtlZCAocHRpZF90IHBpZCwgcHRpZF90ICpjaGlsZF9waWQpOworQEAg LTcyMyw2ICs3NDEsOCBAQCBleHRlcm4gaW50IGluZmVyaW9yX2hhc192Zm9ya2VkIChwdGlkX3Qg cGlkLCBwdGlkX3QgKmNoaWxkX3BpZCk7CiAgCiAgZXh0ZXJuIGludCBpbmZlcmlvcl9oYXNfZXhl Y2QgKHB0aWRfdCBwaWQsIGNoYXIgKipleGVjZF9wYXRobmFtZSk7CiAgCkBAIC0yNzM0NCw3ICsy OTk4MCw3IEBAIGluZGV4IDI3NmFmMWQuLjlmMzdmMTYgMTAwNjQ0CiAgLyogRnJvbSBleGVjLmMg Ki8KICAKICBleHRlcm4gdm9pZCBwcmludF9zZWN0aW9uX2luZm8gKHN0cnVjdCB0YXJnZXRfb3Bz ICosIGJmZCAqKTsKLUBAIC04ODksNiArOTA5LDIxIEBAIGludCB0YXJnZXRfZm9sbG93X2Zvcmsg KGludCBmb2xsb3dfY2hpbGQpOworQEAgLTg4MSw2ICs5MDEsMjEgQEAgaW50IHRhcmdldF9mb2xs b3dfZm9yayAoaW50IGZvbGxvd19jaGlsZCk7CiAgI2RlZmluZSB0YXJnZXRfcmVtb3ZlX2V4ZWNf Y2F0Y2hwb2ludChwaWQpIFwKICAgICAgICgqY3VycmVudF90YXJnZXQudG9fcmVtb3ZlX2V4ZWNf Y2F0Y2hwb2ludCkgKHBpZCkKICAKQEAgLTI3MzY2LDcgKzMwMDAyLDcgQEAgaW5kZXggMjc2YWYx ZC4uOWYzN2YxNiAxMDA2NDQKICAvKiBSZXR1cm5zIFRSVUUgaWYgUElEIGhhcyBleGl0ZWQuICBB bmQsIGFsc28gc2V0cyBFWElUX1NUQVRVUyB0byB0aGUKICAgICBleGl0IGNvZGUgb2YgUElELCBp ZiBhbnkuICAqLwogIAotQEAgLTExNTQsNiArMTE4OSwyMCBAQCBleHRlcm4gaW50IHRhcmdldF9z ZWFyY2hfbWVtb3J5IChDT1JFX0FERFIgc3RhcnRfYWRkciwKK0BAIC0xMTQ2LDYgKzExODEsMjAg QEAgZXh0ZXJuIGludCB0YXJnZXRfc2VhcmNoX21lbW9yeSAoQ09SRV9BRERSIHN0YXJ0X2FkZHIs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUxPTkdFU1QgcGF0dGVybl9sZW4s CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09SRV9BRERSICpmb3VuZF9hZGRy cCk7CiAgCkBAIC0yNzQwMCw2ICszMDAzNiwzMDEgQEAgaW5kZXggM2Q4ZmFlNC4uNWZiOTA2NyAx MDA2NDQKICAjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICMKICAjIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9wb3dlcnBjLXBvd2VyNy5l eHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3Bvd2VycGMtcG93ZXI3LmV4cAorbmV3IGZpbGUg bW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmUxZmMyM2YKKy0tLSAvZGV2L251bGwKKysrKyBi L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvcG93ZXJwYy1wb3dlcjcuZXhwCitAQCAtMCwwICsxLDE3 NiBAQAorKyMgQ29weXJpZ2h0IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisr CisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysj IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisr IworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRl IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxh Y2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAgCisrCisrIyBUZXN0 IFBvd2VyUEMgUG93ZXI3IGluc3RydWN0aW9ucyBkaXNhc3NlbWJseS4KKysKKytpZiB7IVtpc3Rh cmdldCAicG93ZXJwYyotKi0qIl19IHRoZW4geworKyAgICB2ZXJib3NlICJTa2lwcGluZyBQb3dl clBDIFBvd2VyNyBpbnN0cnVjdGlvbnMgZGlzYXNzZW1ibHkuIgorKyAgICByZXR1cm4KKyt9Cisr Cisrc2V0IHRlc3RmaWxlICJwb3dlcnBjLXBvd2VyNyIKKytzZXQgc3JjZmlsZSAke3Rlc3RmaWxl fS5zCisrc2V0IG9iamZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfS5vCisrCisr aWYgeyBbZ2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7b2Jq ZmlsZX0iIG9iamVjdCB7ZGVidWd9XSAhPSAiIiB9IHsKKysgICAgdW50ZXN0ZWQgIlBvd2VyUEMg UG93ZXI3IGluc3RydWN0aW9ucyBkaXNhc3NlbWJseSIKKysgICAgcmV0dXJuIC0xCisrfQorKwor KworK2dkYl9leGl0CisrZ2RiX3N0YXJ0CisrZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8k c3ViZGlyCisrZ2RiX2xvYWQgJHtvYmpmaWxlfQorKyAKKysKKysjIFNldHVwIHRoZSBkaXNhc3Nl bWJsZXIuICBXaXRoIHRoZSBkZWZhdWx0IGBhbnknIGZsYXZvciB0aGUgaW5zdHJ1Y3Rpb246Cisr IyAgIDB4MjA6IHh4bXJnaGQgdnMzLHZzNCx2czUKKysjIChpbmNsLiBtYW55IG90aGVycykgd291 bGQgZ2V0IGRpc2Fzc2VtYmxlZCBhczoKKysjICAgMHgyMDogc3RmcSBmMywxMDMyMChyNCkKKysK KytnZGJfdGVzdCAic2V0IHBvd2VycGMgZGlzYXNzZW1ibGVyLW9wdGlvbnMgcG93ZXI3IgorK2dk Yl90ZXN0ICJzaG93IHBvd2VycGMgZGlzYXNzZW1ibGVyLW9wdGlvbnMgcG93ZXI3IiBcCisrICAg ICAgICAgIlRoZSB0ZXh0IHBhc3NlZCBvbiB0byBkaXNhc3NlbWJsZXIgaXMgXCJwb3dlcjdcIi4i CisrCisrCisrIyBEaXNhc3NlbWJsZSB0aGUgZnVuY3Rpb24uCisrCisrc2V0IHRlc3QgImRpc2Fz cyBmdW5jIgorK2dkYl90ZXN0X211bHRpcGxlICR0ZXN0ICR0ZXN0IHsKKysgICAgLXJlICJcclxu RHVtcCBvZiBhc3NlbWJsZXIgY29kZSBmb3IgZnVuY3Rpb24gZnVuYzooXHJcbi4qXHJcbilFbmQg b2YgYXNzZW1ibGVyIGR1bXAuXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJc2V0IGZ1bmMgJGV4cGVj dF9vdXQoMSxzdHJpbmcpCisrCXBhc3MgJHRlc3QKKysgICAgfQorK30KKysKKytwcm9jIGZ1bmNf Y2hlY2sge29mZnNldCBpbnN0cn0geworKyAgICBnbG9iYWwgZnVuYworKworKyAgICAjIDB4MDAw MDAwMDAwMDAwMDAxOCA8ZnVuYysyND46CXN0eHZkMnggdnM0MyxyNCxyNQorKyAgICBzZXQgcGF0 dCAiLipcclxuW3N0cmluZyBtYXAgezB4IDB4MCp9ICRvZmZzZXRdIDxmdW5jXFwrP1xbMC05XF0q PjpcWyBcdFxdKltzdHJpbmcgbWFwIFtsaXN0IHsgfSAiXFsgXHRcXSsiIC4ge1wufV0gJGluc3Ry XVxbIFx0XF0qXHJcbi4qIgorKyAgICBzZXQgdGVzdCAiRm91bmQgJG9mZnNldDogJGluc3RyIgor KyAgICBpZiBbcmVnZXhwIC1ub2Nhc2UgLWxpbmUgJHBhdHQgJGZ1bmNdIHsKKysJcGFzcyAkdGVz dAorKyAgICB9IGVsc2UgeworKwlmYWlsICR0ZXN0CisrICAgIH0KKyt9CisrCisrZnVuY19jaGVj ayAgIDB4MCAibHh2ZDJ4ICB2czMscjQscjUiCisrZnVuY19jaGVjayAgIDB4NCAibHh2ZDJ1eCB2 czMscjQscjUiCisrZnVuY19jaGVjayAgIDB4OCAibHh2ZDJ4ICB2czQzLHI0LHI1IgorK2Z1bmNf Y2hlY2sgICAweGMgImx4dmQydXggdnM0MyxyNCxyNSIKKytmdW5jX2NoZWNrICAweDEwICJzdHh2 ZDJ4IHZzMyxyNCxyNSIKKytmdW5jX2NoZWNrICAweDE0ICJzdHh2ZDJ1eCB2czMscjQscjUiCisr ZnVuY19jaGVjayAgMHgxOCAic3R4dmQyeCB2czQzLHI0LHI1IgorK2Z1bmNfY2hlY2sgIDB4MWMg InN0eHZkMnV4IHZzNDMscjQscjUiCisrZnVuY19jaGVjayAgMHgyMCAieHhtcmdoZCB2czMsdnM0 LHZzNSIKKytmdW5jX2NoZWNrICAweDI0ICJ4eG1yZ2hkIHZzNDMsdnM0NCx2czQ1IgorK2Z1bmNf Y2hlY2sgIDB4MjggInh4bXJnbGQgdnMzLHZzNCx2czUiCisrZnVuY19jaGVjayAgMHgyYyAieHht cmdsZCB2czQzLHZzNDQsdnM0NSIKKytmdW5jX2NoZWNrICAweDMwICJ4eG1yZ2hkIHZzMyx2czQs dnM1IgorK2Z1bmNfY2hlY2sgIDB4MzQgInh4bXJnaGQgdnM0Myx2czQ0LHZzNDUiCisrZnVuY19j aGVjayAgMHgzOCAieHhtcmdsZCB2czMsdnM0LHZzNSIKKytmdW5jX2NoZWNrICAweDNjICJ4eG1y Z2xkIHZzNDMsdnM0NCx2czQ1IgorK2Z1bmNfY2hlY2sgIDB4NDAgInh4cGVybWRpIHZzMyx2czQs dnM1LDEiCisrZnVuY19jaGVjayAgMHg0NCAieHhwZXJtZGkgdnM0Myx2czQ0LHZzNDUsMSIKKytm dW5jX2NoZWNrICAweDQ4ICJ4eHBlcm1kaSB2czMsdnM0LHZzNSwyIgorK2Z1bmNfY2hlY2sgIDB4 NGMgInh4cGVybWRpIHZzNDMsdnM0NCx2czQ1LDIiCisrZnVuY19jaGVjayAgMHg1MCAieHZtb3Zk cCB2czMsdnM0IgorK2Z1bmNfY2hlY2sgIDB4NTQgInh2bW92ZHAgdnM0Myx2czQ0IgorK2Z1bmNf Y2hlY2sgIDB4NTggInh2bW92ZHAgdnMzLHZzNCIKKytmdW5jX2NoZWNrICAweDVjICJ4dm1vdmRw IHZzNDMsdnM0NCIKKytmdW5jX2NoZWNrICAweDYwICJ4dmNwc2duZHAgdnMzLHZzNCx2czUiCisr ZnVuY19jaGVjayAgMHg2NCAieHZjcHNnbmRwIHZzNDMsdnM0NCx2czQ1IgorK2Z1bmNfY2hlY2sg IDB4NjggIndhaXQiCisrZnVuY19jaGVjayAgMHg2YyAid2FpdCIKKytmdW5jX2NoZWNrICAweDcw ICJ3YWl0cnN2IgorK2Z1bmNfY2hlY2sgIDB4NzQgIndhaXRyc3YiCisrZnVuY19jaGVjayAgMHg3 OCAid2FpdGltcGwiCisrZnVuY19jaGVjayAgMHg3YyAid2FpdGltcGwiCisrZnVuY19jaGVjayAg MHg4MCAiZG96ZSIKKytmdW5jX2NoZWNrICAweDg0ICJuYXAiCisrZnVuY19jaGVjayAgMHg4OCAi c2xlZXAiCisrZnVuY19jaGVjayAgMHg4YyAicnZ3aW5rbGUiCisrZnVuY19jaGVjayAgMHg5MCAi cHJ0eXcgICByMyxyNCIKKytmdW5jX2NoZWNrICAweDk0ICJwcnR5ZCAgIHIxMyxyMTQiCisrZnVu Y19jaGVjayAgMHg5OCAibWZjZmFyICByMTAiCisrZnVuY19jaGVjayAgMHg5YyAibXRjZmFyICBy MTEiCisrZnVuY19jaGVjayAgMHhhMCAiY21wYiAgICByMyxyNCxyNSIKKytmdW5jX2NoZWNrICAw eGE0ICJsd3pjaXggIHIxMCxyMTEscjEyIgorK2Z1bmNfY2hlY2sgIDB4YTggImRhZGQgICAgZjE2 LGYxNyxmMTgiCisrZnVuY19jaGVjayAgMHhhYyAiZGFkZHEgICBmMjAsZjIyLGYyNCIKKytmdW5j X2NoZWNrICAweGIwICJkc3MgICAgIDMiCisrZnVuY19jaGVjayAgMHhiNCAiZHNzYWxsIgorK2Z1 bmNfY2hlY2sgIDB4YjggImRzdCAgICAgcjUscjQsMSIKKytmdW5jX2NoZWNrICAweGJjICJkc3R0 ICAgIHI4LHI3LDAiCisrZnVuY19jaGVjayAgMHhjMCAiZHN0c3QgICByNSxyNiwzIgorK2Z1bmNf Y2hlY2sgIDB4YzQgImRzdHN0dCAgcjQscjUsMiIKKytmdW5jX2NoZWNrICAweGM4ICJkaXZ3ZSAg IHIxMCxyMTEscjEyIgorK2Z1bmNfY2hlY2sgIDB4Y2MgImRpdndlLiAgcjExLHIxMixyMTMiCisr ZnVuY19jaGVjayAgMHhkMCAiZGl2d2VvICByMTIscjEzLHIxNCIKKytmdW5jX2NoZWNrICAweGQ0 ICJkaXZ3ZW8uIHIxMyxyMTQscjE1IgorK2Z1bmNfY2hlY2sgIDB4ZDggImRpdndldSAgcjEwLHIx MSxyMTIiCisrZnVuY19jaGVjayAgMHhkYyAiZGl2d2V1LiByMTEscjEyLHIxMyIKKytmdW5jX2No ZWNrICAweGUwICJkaXZ3ZXVvIHIxMixyMTMscjE0IgorK2Z1bmNfY2hlY2sgIDB4ZTQgImRpdndl dW8uIHIxMyxyMTQscjE1IgorK2Z1bmNfY2hlY2sgIDB4ZTggImJwZXJtZCAgcjcscjE3LHIyNyIK KytmdW5jX2NoZWNrICAweGVjICJwb3BjbnR3IHIxMCxyMjAiCisrZnVuY19jaGVjayAgMHhmMCAi cG9wY250ZCByMTAscjIwIgorK2Z1bmNfY2hlY2sgIDB4ZjQgImxkYnJ4ICAgcjIwLHIyMSxyMjIi CisrZnVuY19jaGVjayAgMHhmOCAic3RkYnJ4ICByMjAscjIxLHIyMiIKKytmdW5jX2NoZWNrICAw eGZjICJsZml3enggIGYxMCwwLHIxMCIKKytmdW5jX2NoZWNrIDB4MTAwICJsZml3enggIGYxMCxy OSxyMTAiCisrZnVuY19jaGVjayAweDEwNCAiZmNmaWRzICBmNCxmNSIKKytmdW5jX2NoZWNrIDB4 MTA4ICJmY2ZpZHMuIGY0LGY1IgorK2Z1bmNfY2hlY2sgMHgxMGMgImZjZmlkdXMgZjQsZjUiCisr ZnVuY19jaGVjayAweDExMCAiZmNmaWR1cy4gZjQsZjUiCisrZnVuY19jaGVjayAweDExNCAiZmN0 aXd1ICBmNCxmNSIKKytmdW5jX2NoZWNrIDB4MTE4ICJmY3Rpd3UuIGY0LGY1IgorK2Z1bmNfY2hl Y2sgMHgxMWMgImZjdGl3dXogZjQsZjUiCisrZnVuY19jaGVjayAweDEyMCAiZmN0aXd1ei4gZjQs ZjUiCisrZnVuY19jaGVjayAweDEyNCAiZmN0aWR1ICBmNCxmNSIKKytmdW5jX2NoZWNrIDB4MTI4 ICJmY3RpZHUuIGY0LGY1IgorK2Z1bmNfY2hlY2sgMHgxMmMgImZjdGlkdXogZjQsZjUiCisrZnVu Y19jaGVjayAweDEzMCAiZmN0aWR1ei4gZjQsZjUiCisrZnVuY19jaGVjayAweDEzNCAiZmNmaWR1 ICBmNCxmNSIKKytmdW5jX2NoZWNrIDB4MTM4ICJmY2ZpZHUuIGY0LGY1IgorK2Z1bmNfY2hlY2sg MHgxM2MgImZ0ZGl2ICAgY3IwLGYxMCxmMTEiCisrZnVuY19jaGVjayAweDE0MCAiZnRkaXYgICBj cjcsZjEwLGYxMSIKKytmdW5jX2NoZWNrIDB4MTQ0ICJmdHNxcnQgIGNyMCxmMTAiCisrZnVuY19j aGVjayAweDE0OCAiZnRzcXJ0ICBjcjcsZjEwIgorK2Z1bmNfY2hlY2sgMHgxNGMgImRjYnR0ICAg cjgscjkiCisrZnVuY19jaGVjayAweDE1MCAiZGNidHN0dCByOCxyOSIKKytmdW5jX2NoZWNrIDB4 MTU0ICJkY2ZmaXggIGYxMCxmMTIiCisrZnVuY19jaGVjayAweDE1OCAiZGNmZml4LiBmMjAsZjIy IgorK2Z1bmNfY2hlY2sgMHgxNWMgImxiYXJ4ICAgcjEwLHIxMSxyMTIiCisrZnVuY19jaGVjayAw eDE2MCAibGJhcnggICByMTAscjExLHIxMiIKKytmdW5jX2NoZWNrIDB4MTY0ICJsYmFyeCAgIHIx MCxyMTEscjEyLDEiCisrZnVuY19jaGVjayAweDE2OCAibGhhcnggICByMjAscjIxLHIyMiIKKytm dW5jX2NoZWNrIDB4MTZjICJsaGFyeCAgIHIyMCxyMjEscjIyIgorK2Z1bmNfY2hlY2sgMHgxNzAg ImxoYXJ4ICAgcjIwLHIyMSxyMjIsMSIKKytmdW5jX2NoZWNrIDB4MTc0ICJzdGJjeC4gIHIxMCxy MTEscjEyIgorK2Z1bmNfY2hlY2sgMHgxNzggInN0aGN4LiAgcjEwLHIxMSxyMTIiCisrZnVuY19j aGVjayAweDE3YyAiZnJlICAgICBmMTQsZjE1IgorK2Z1bmNfY2hlY2sgMHgxODAgImZyZS4gICAg ZjE0LGYxNSIKKytmdW5jX2NoZWNrIDB4MTg0ICJmcmVzICAgIGYxNCxmMTUiCisrZnVuY19jaGVj ayAweDE4OCAiZnJlcy4gICBmMTQsZjE1IgorK2Z1bmNfY2hlY2sgMHgxOGMgImZyc3FydGUgZjE0 LGYxNSIKKytmdW5jX2NoZWNrIDB4MTkwICJmcnNxcnRlLiBmMTQsZjE1IgorK2Z1bmNfY2hlY2sg MHgxOTQgImZyc3FydGVzIGYxNCxmMTUiCisrZnVuY19jaGVjayAweDE5OCAiZnJzcXJ0ZXMuIGYx NCxmMTUiCisrZnVuY19jaGVjayAweDE5YyAiaXNlbCAgICByMixyMyxyNCwyOCIKK2RpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3Bvd2VycGMtcG93ZXI3LnMgYi9nZGIvdGVzdHN1 aXRlL2dkYi5hcmNoL3Bvd2VycGMtcG93ZXI3LnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRl eCAwMDAwMDAwLi45OGIyZTc5CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5hcmNoL3Bvd2VycGMtcG93ZXI3LnMKK0BAIC0wLDAgKzEsMTA3IEBACisrCS50ZXh0CisrCS5n bG9ibAlmdW5jCisrZnVuYzoKKysJLmxvbmcJMHg3YzY0MmU5OAkvKiAgIDA6IGx4dmQyeCAgdnMz LHI0LHI1ICAgICAgICAgKi8KKysJLmxvbmcJMHg3YzY0MmVkOAkvKiAgIDQ6IGx4dmQydXggdnMz LHI0LHI1ICAgICAgICAgKi8KKysJLmxvbmcJMHg3ZDY0MmU5OQkvKiAgIDg6IGx4dmQyeCAgdnM0 MyxyNCxyNSAgICAgICAgKi8KKysJLmxvbmcJMHg3ZDY0MmVkOQkvKiAgIGM6IGx4dmQydXggdnM0 MyxyNCxyNSAgICAgICAgKi8KKysJLmxvbmcJMHg3YzY0MmY5OAkvKiAgMTA6IHN0eHZkMnggdnMz LHI0LHI1ICAgICAgICAgKi8KKysJLmxvbmcJMHg3YzY0MmZkOAkvKiAgMTQ6IHN0eHZkMnV4IHZz MyxyNCxyNSAgICAgICAgKi8KKysJLmxvbmcJMHg3ZDY0MmY5OQkvKiAgMTg6IHN0eHZkMnggdnM0 MyxyNCxyNSAgICAgICAgKi8KKysJLmxvbmcJMHg3ZDY0MmZkOQkvKiAgMWM6IHN0eHZkMnV4IHZz NDMscjQscjUgICAgICAgKi8KKysJLmxvbmcJMHhmMDY0Mjg1MAkvKiAgMjA6IHh4bXJnaGQgdnMz LHZzNCx2czUgICAgICAgKi8KKysJLmxvbmcJMHhmMTZjNjg1NwkvKiAgMjQ6IHh4bXJnaGQgdnM0 Myx2czQ0LHZzNDUgICAgKi8KKysJLmxvbmcJMHhmMDY0MmI1MAkvKiAgMjg6IHh4bXJnbGQgdnMz LHZzNCx2czUgICAgICAgKi8KKysJLmxvbmcJMHhmMTZjNmI1NwkvKiAgMmM6IHh4bXJnbGQgdnM0 Myx2czQ0LHZzNDUgICAgKi8KKysJLmxvbmcJMHhmMDY0Mjg1MAkvKiAgMzA6IHh4bXJnaGQgdnMz LHZzNCx2czUgICAgICAgKi8KKysJLmxvbmcJMHhmMTZjNjg1NwkvKiAgMzQ6IHh4bXJnaGQgdnM0 Myx2czQ0LHZzNDUgICAgKi8KKysJLmxvbmcJMHhmMDY0MmI1MAkvKiAgMzg6IHh4bXJnbGQgdnMz LHZzNCx2czUgICAgICAgKi8KKysJLmxvbmcJMHhmMTZjNmI1NwkvKiAgM2M6IHh4bXJnbGQgdnM0 Myx2czQ0LHZzNDUgICAgKi8KKysJLmxvbmcJMHhmMDY0Mjk1MAkvKiAgNDA6IHh4cGVybWRpIHZz Myx2czQsdnM1LDEgICAgKi8KKysJLmxvbmcJMHhmMTZjNjk1NwkvKiAgNDQ6IHh4cGVybWRpIHZz NDMsdnM0NCx2czQ1LDEgKi8KKysJLmxvbmcJMHhmMDY0MmE1MAkvKiAgNDg6IHh4cGVybWRpIHZz Myx2czQsdnM1LDIgICAgKi8KKysJLmxvbmcJMHhmMTZjNmE1NwkvKiAgNGM6IHh4cGVybWRpIHZz NDMsdnM0NCx2czQ1LDIgKi8KKysJLmxvbmcJMHhmMDY0Mjc4MAkvKiAgNTA6IHh2bW92ZHAgdnMz LHZzNCAgICAgICAgICAgKi8KKysJLmxvbmcJMHhmMTZjNjc4NwkvKiAgNTQ6IHh2bW92ZHAgdnM0 Myx2czQ0ICAgICAgICAgKi8KKysJLmxvbmcJMHhmMDY0Mjc4MAkvKiAgNTg6IHh2bW92ZHAgdnMz LHZzNCAgICAgICAgICAgKi8KKysJLmxvbmcJMHhmMTZjNjc4NwkvKiAgNWM6IHh2bW92ZHAgdnM0 Myx2czQ0ICAgICAgICAgKi8KKysJLmxvbmcJMHhmMDY0MmY4MAkvKiAgNjA6IHh2Y3BzZ25kcCB2 czMsdnM0LHZzNSAgICAgKi8KKysJLmxvbmcJMHhmMTZjNmY4NwkvKiAgNjQ6IHh2Y3BzZ25kcCB2 czQzLHZzNDQsdnM0NSAgKi8KKysJLmxvbmcJMHg3YzAwMDA3YwkvKiAgNjg6IHdhaXQgICAgICAg ICAgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3YzAwMDA3YwkvKiAgNmM6IHdhaXQgICAgICAg ICAgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3YzIwMDA3YwkvKiAgNzA6IHdhaXRyc3YgICAg ICAgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3YzIwMDA3YwkvKiAgNzQ6IHdhaXRyc3YgICAg ICAgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3YzQwMDA3YwkvKiAgNzg6IHdhaXRpbXBsICAg ICAgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3YzQwMDA3YwkvKiAgN2M6IHdhaXRpbXBsICAg ICAgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHg0YzAwMDMyNAkvKiAgODA6IGRvemUgICAgICAg ICAgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHg0YzAwMDM2NAkvKiAgODQ6IG5hcCAgICAgICAg ICAgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHg0YzAwMDNhNAkvKiAgODg6IHNsZWVwICAgICAg ICAgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHg0YzAwMDNlNAkvKiAgOGM6IHJ2d2lua2xlICAg ICAgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3YzgzMDEzNAkvKiAgOTA6IHBydHl3ICAgcjMs cjQgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3ZGNkMDE3NAkvKiAgOTQ6IHBydHlkICAgcjEz LHIxNCAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3ZDVjMDJhNgkvKiAgOTg6IG1mY2ZhciAgcjEw ICAgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3ZDdjMDNhNgkvKiAgOWM6IG10Y2ZhciAgcjEx ICAgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3YzgzMmJmOAkvKiAgYTA6IGNtcGIgICAgcjMs cjQscjUgICAgICAgICAgKi8KKysJLmxvbmcJMHg3ZDRiNjYyYQkvKiAgYTQ6IGx3emNpeCAgcjEw LHIxMSxyMTIgICAgICAgKi8KKysJLmxvbmcJMHhlZTExOTAwNAkvKiAgYTg6IGRhZGQgICAgZjE2 LGYxNyxmMTggICAgICAgKi8KKysJLmxvbmcJMHhmZTk2YzAwNAkvKiAgYWM6IGRhZGRxICAgZjIw LGYyMixmMjQgICAgICAgKi8KKysJLmxvbmcJMHg3YzYwMDY2YwkvKiAgYjA6IGRzcyAgICAgMyAg ICAgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3ZTAwMDY2YwkvKiAgYjQ6IGRzc2FsbCAgICAg ICAgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3YzI1MjJhYwkvKiAgYjg6IGRzdCAgICAgcjUs cjQsMSAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3ZTA4M2FhYwkvKiAgYmM6IGRzdHQgICAgcjgs cjcsMCAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3YzY1MzJlYwkvKiAgYzA6IGRzdHN0ICAgcjUs cjYsMyAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3ZTQ0MmFlYwkvKiAgYzQ6IGRzdHN0dCAgcjQs cjUsMiAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3ZDRiNjM1NgkvKiAgYzg6IGRpdndlICAgcjEw LHIxMSxyMTIgICAgICAgKi8KKysJLmxvbmcJMHg3ZDZjNmI1NwkvKiAgY2M6IGRpdndlLiAgcjEx LHIxMixyMTMgICAgICAgKi8KKysJLmxvbmcJMHg3ZDhkNzc1NgkvKiAgZDA6IGRpdndlbyAgcjEy LHIxMyxyMTQgICAgICAgKi8KKysJLmxvbmcJMHg3ZGFlN2Y1NwkvKiAgZDQ6IGRpdndlby4gcjEz LHIxNCxyMTUgICAgICAgKi8KKysJLmxvbmcJMHg3ZDRiNjMxNgkvKiAgZDg6IGRpdndldSAgcjEw LHIxMSxyMTIgICAgICAgKi8KKysJLmxvbmcJMHg3ZDZjNmIxNwkvKiAgZGM6IGRpdndldS4gcjEx LHIxMixyMTMgICAgICAgKi8KKysJLmxvbmcJMHg3ZDhkNzcxNgkvKiAgZTA6IGRpdndldW8gcjEy LHIxMyxyMTQgICAgICAgKi8KKysJLmxvbmcJMHg3ZGFlN2YxNwkvKiAgZTQ6IGRpdndldW8uIHIx MyxyMTQscjE1ICAgICAgKi8KKysJLmxvbmcJMHg3ZTI3ZDlmOAkvKiAgZTg6IGJwZXJtZCAgcjcs cjE3LHIyNyAgICAgICAgKi8KKysJLmxvbmcJMHg3ZThhMDJmNAkvKiAgZWM6IHBvcGNudHcgcjEw LHIyMCAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3ZThhMDNmNAkvKiAgZjA6IHBvcGNudGQgcjEw LHIyMCAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3ZTk1YjQyOAkvKiAgZjQ6IGxkYnJ4ICAgcjIw LHIyMSxyMjIgICAgICAgKi8KKysJLmxvbmcJMHg3ZTk1YjUyOAkvKiAgZjg6IHN0ZGJyeCAgcjIw LHIyMSxyMjIgICAgICAgKi8KKysJLmxvbmcJMHg3ZDQwNTZlZQkvKiAgZmM6IGxmaXd6eCAgZjEw LDAscjEwICAgICAgICAgKi8KKysJLmxvbmcJMHg3ZDQ5NTZlZQkvKiAxMDA6IGxmaXd6eCAgZjEw LHI5LHIxMCAgICAgICAgKi8KKysJLmxvbmcJMHhlYzgwMmU5YwkvKiAxMDQ6IGZjZmlkcyAgZjQs ZjUgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHhlYzgwMmU5ZAkvKiAxMDg6IGZjZmlkcy4gZjQs ZjUgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHhlYzgwMmY5YwkvKiAxMGM6IGZjZmlkdXMgZjQs ZjUgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHhlYzgwMmY5ZAkvKiAxMTA6IGZjZmlkdXMuIGY0 LGY1ICAgICAgICAgICAgKi8KKysJLmxvbmcJMHhmYzgwMjkxYwkvKiAxMTQ6IGZjdGl3dSAgZjQs ZjUgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHhmYzgwMjkxZAkvKiAxMTg6IGZjdGl3dS4gZjQs ZjUgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHhmYzgwMjkxZQkvKiAxMWM6IGZjdGl3dXogZjQs ZjUgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHhmYzgwMjkxZgkvKiAxMjA6IGZjdGl3dXouIGY0 LGY1ICAgICAgICAgICAgKi8KKysJLmxvbmcJMHhmYzgwMmY1YwkvKiAxMjQ6IGZjdGlkdSAgZjQs ZjUgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHhmYzgwMmY1ZAkvKiAxMjg6IGZjdGlkdS4gZjQs ZjUgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHhmYzgwMmY1ZQkvKiAxMmM6IGZjdGlkdXogZjQs ZjUgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHhmYzgwMmY1ZgkvKiAxMzA6IGZjdGlkdXouIGY0 LGY1ICAgICAgICAgICAgKi8KKysJLmxvbmcJMHhmYzgwMmY5YwkvKiAxMzQ6IGZjZmlkdSAgZjQs ZjUgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHhmYzgwMmY5ZAkvKiAxMzg6IGZjZmlkdS4gZjQs ZjUgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHhmYzBhNTkwMAkvKiAxM2M6IGZ0ZGl2ICAgY3Iw LGYxMCxmMTEgICAgICAgKi8KKysJLmxvbmcJMHhmZjhhNTkwMAkvKiAxNDA6IGZ0ZGl2ICAgY3I3 LGYxMCxmMTEgICAgICAgKi8KKysJLmxvbmcJMHhmYzAwNTE0MAkvKiAxNDQ6IGZ0c3FydCAgY3Iw LGYxMCAgICAgICAgICAgKi8KKysJLmxvbmcJMHhmZjgwNTE0MAkvKiAxNDg6IGZ0c3FydCAgY3I3 LGYxMCAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3ZTA4NGEyYwkvKiAxNGM6IGRjYnR0ICAgcjgs cjkgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3ZTA4NDllYwkvKiAxNTA6IGRjYnRzdHQgcjgs cjkgICAgICAgICAgICAgKi8KKysJLmxvbmcJMHhlZDQwNjY0NAkvKiAxNTQ6IGRjZmZpeCAgZjEw LGYxMiAgICAgICAgICAgKi8KKysJLmxvbmcJMHhlZTgwYjY0NQkvKiAxNTg6IGRjZmZpeC4gZjIw LGYyMiAgICAgICAgICAgKi8KKysJLmxvbmcJMHg3ZDRiNjA2OAkvKiAxNWM6IGxiYXJ4ICAgcjEw LHIxMSxyMTIgICAgICAgKi8KKysJLmxvbmcJMHg3ZDRiNjA2OAkvKiAxNjA6IGxiYXJ4ICAgcjEw LHIxMSxyMTIgICAgICAgKi8KKysJLmxvbmcJMHg3ZDRiNjA2OQkvKiAxNjQ6IGxiYXJ4ICAgcjEw LHIxMSxyMTIsMSAgICAgKi8KKysJLmxvbmcJMHg3ZTk1YjBlOAkvKiAxNjg6IGxoYXJ4ICAgcjIw LHIyMSxyMjIgICAgICAgKi8KKysJLmxvbmcJMHg3ZTk1YjBlOAkvKiAxNmM6IGxoYXJ4ICAgcjIw LHIyMSxyMjIgICAgICAgKi8KKysJLmxvbmcJMHg3ZTk1YjBlOQkvKiAxNzA6IGxoYXJ4ICAgcjIw LHIyMSxyMjIsMSAgICAgKi8KKysJLmxvbmcJMHg3ZDRiNjU2ZAkvKiAxNzQ6IHN0YmN4LiAgcjEw LHIxMSxyMTIgICAgICAgKi8KKysJLmxvbmcJMHg3ZDRiNjVhZAkvKiAxNzg6IHN0aGN4LiAgcjEw LHIxMSxyMTIgICAgICAgKi8KKysJLmxvbmcJMHhmZGMwNzgzMAkvKiAxN2M6IGZyZSAgICAgZjE0 LGYxNSAgICAgICAgICAgKi8KKysJLmxvbmcJMHhmZGMwNzgzMQkvKiAxODA6IGZyZS4gICAgZjE0 LGYxNSAgICAgICAgICAgKi8KKysJLmxvbmcJMHhlZGMwNzgzMAkvKiAxODQ6IGZyZXMgICAgZjE0 LGYxNSAgICAgICAgICAgKi8KKysJLmxvbmcJMHhlZGMwNzgzMQkvKiAxODg6IGZyZXMuICAgZjE0 LGYxNSAgICAgICAgICAgKi8KKysJLmxvbmcJMHhmZGMwNzgzNAkvKiAxOGM6IGZyc3FydGUgZjE0 LGYxNSAgICAgICAgICAgKi8KKysJLmxvbmcJMHhmZGMwNzgzNQkvKiAxOTA6IGZyc3FydGUuIGYx NCxmMTUgICAgICAgICAgKi8KKysJLmxvbmcJMHhlZGMwNzgzNAkvKiAxOTQ6IGZyc3FydGVzIGYx NCxmMTUgICAgICAgICAgKi8KKysJLmxvbmcJMHhlZGMwNzgzNQkvKiAxOTg6IGZyc3FydGVzLiBm MTQsZjE1ICAgICAgICAgKi8KKysJLmxvbmcJMHg3YzQzMjcxZQkvKiAxOWM6IGlzZWwgICAgcjIs cjMscjQsMjggICAgICAgKi8KIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4 Nl82NC12bGEtdHlwZWRlZi1mb28uUyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZs YS10eXBlZGVmLWZvby5TCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAogaW5kZXggMDAwMDAwMC4uNjZm N2EzOQpAQCAtMzAwMTgsOCArMzI5NDksMzE0IEBAIGluZGV4IDAwMDAwMDAuLjkyY2MyM2MKICsK ICsjIFRoZSBCdWcgd2FzOiBObyBzeW1ib2wgInByb2JsZW0iIGluIGN1cnJlbnQgY29udGV4dC4K ICtnZGJfdGVzdCAicCBwcm9ibGVtIiAiID0gXFwoaW50IFxcKlxcKSAweC4qIgorZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2NwbHVzZnVuY3MuY2MgYi9nZGIvdGVzdHN1aXRlL2dk Yi5jcC9jcGx1c2Z1bmNzLmNjCitpbmRleCA3ZjAzM2Q2Li4xYTUwYTMyIDEwMDY0NAorLS0tIGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuY3AvY3BsdXNmdW5jcy5jYworKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuY3AvY3BsdXNmdW5jcy5jYworQEAgLTE5MSw2ICsxOTEsMTIgQEAgY2hhciAqCWRtX3R5cGVf Y2hhcl9zdGFyIChjaGFyICogcCkJCXsgcmV0dXJuIHA7IH0KKyBpbnQJZG1fdHlwZV9mb29fcmVm IChmb28gJiBmb28pCQl7IHJldHVybiBmb28uaWZvbzsgfQorIGludCAqCWRtX3R5cGVfaW50X3N0 YXIgKGludCAqIHApCQl7IHJldHVybiBwOyB9CisgbG9uZyAqCWRtX3R5cGVfbG9uZ19zdGFyIChs b25nICogcCkJCXsgcmV0dXJuIHA7IH0KKytpbnQJZG1fdHlwZV9zaG9ydCAoc2hvcnQgaSkJCQl7 IHJldHVybiBpOyB9CisraW50CWRtX3R5cGVfbG9uZyAobG9uZyBpKQkJCXsgcmV0dXJuIGk7IH0K KyBpbnQJZG1fdHlwZV91bnNpZ25lZF9pbnQgKHVuc2lnbmVkIGludCBpKQl7IHJldHVybiBpOyB9 CisraW50CWRtX3R5cGVfdW5zaWduZWRfc2hvcnQgKHVuc2lnbmVkIHNob3J0IGkpCXsgcmV0dXJu IGk7IH0KKytpbnQJZG1fdHlwZV91bnNpZ25lZF9sb25nICh1bnNpZ25lZCBsb25nIGkpCXsgcmV0 dXJuIGk7IH0KKyBpbnQJZG1fdHlwZV92b2lkICh2b2lkKQkJCXsgcmV0dXJuIDA7IH0KKyB2b2lk ICoJZG1fdHlwZV92b2lkX3N0YXIgKHZvaWQgKiBwKQkJeyByZXR1cm4gcDsgfQorK3R5cGVkZWYg aW50IG15aW50OworK2ludAlkbV90eXBlX3R5cGVkZWYgKG15aW50IGkpCQl7IHJldHVybiBpOyB9 CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvY3BsdXNmdW5jcy5leHAgYi9nZGIv dGVzdHN1aXRlL2dkYi5jcC9jcGx1c2Z1bmNzLmV4cAoraW5kZXggNWUwODc2OC4uOGM4ZTAzOCAx MDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2NwbHVzZnVuY3MuZXhwCisrKysgYi9n ZGIvdGVzdHN1aXRlL2dkYi5jcC9jcGx1c2Z1bmNzLmV4cAorQEAgLTY2LDkgKzY2LDI1IEBAIHNl dCBkbV90eXBlX3Vuc2lnbmVkX2ludAkidW5zaWduZWQiCisgc2V0IGRtX3R5cGVfdm9pZAkJIiIK KyBzZXQgZG1fdHlwZV92b2lkX3N0YXIJCSJ2b2lkKiIKKyAKKysjIFNvbWUgb3RoZXIgdmFnYXJp ZXMgb2YgR0RCJ3MgdHlwZSBwcmludGluZyBtYWNoaW5lcnkuICBUaGUgaW50ZWdlciB0eXBlcwor KyMgbWF5IGhhdmUgdW5zaWduZWQgYmVmb3JlIG9yIGFmdGVyIHRoZWlyIGxlbmd0aCwgYW5kIG1h eSBoYXZlICJpbnQiCisrIyBhcHBlbmRlZC4gIFRoZSBjaGFyKiBjb252ZXJzaW9uIG9wZXJhdG9y IG1heSBoYXZlIG5hbWUgImNoYXIqIiBldmVuIGlmCisrIyB0aGUgdHlwZSBpcyAiY2hhciAqIiwg YmVjYXVzZSB0aGUgbmFtZSBjb21lcyBmcm9tIHRoZSBkZWJ1ZyBpbmZvcm1hdGlvbgorKyMgYW5k IHRoZSB0eXBlIGZyb20gR0RCLiAgRnVuY3Rpb24gdHlwZXMgbWF5IG5vdCBzZWUgdGhyb3VnaCB0 eXBlZGVmcy4KKysKKytzZXQgZG1fdHlwZV9zaG9ydAkJInNob3J0IgorK3NldCBkbV90eXBlX2xv bmcJCSJsb25nIgorK3NldCBkbV90eXBlX3Vuc2lnbmVkX3Nob3J0CSJ1bnNpZ25lZCBzaG9ydCIK KytzZXQgZG1fdHlwZV91bnNpZ25lZF9sb25nCSJ1bnNpZ25lZCBsb25nIgorK3NldCBkbV9vcGVy YXRvcl9jaGFyX3N0YXIJImNoYXIqIgorK3NldCBkbV9vcGVyYXRvcl9jaGFyX3N0YXJfcXVvdGVk CSJjaGFyXFwqIgorK3NldCBkbV90eXBlX3R5cGVkZWYJCTAKKysKKyBwcm9jIHByb2JlX2RlbWFu Z2xlciB7IH0geworICAgICBnbG9iYWwgZ2RiX3Byb21wdAorICAgICBnbG9iYWwgZG1fb3BlcmF0 b3JfY29tbWEKKysgICAgZ2xvYmFsIGRtX29wZXJhdG9yX2NoYXJfc3RhcgorKyAgICBnbG9iYWwg ZG1fb3BlcmF0b3JfY2hhcl9zdGFyX3F1b3RlZAorICAgICBnbG9iYWwgZG1fdHlwZV9jaGFyX3N0 YXIKKyAgICAgZ2xvYmFsIGRtX3R5cGVfY2hhcl9zdGFyX3F1b3RlZAorICAgICBnbG9iYWwgZG1f dHlwZV9mb29fcmVmCitAQCAtNzcsNiArOTMsMTEgQEAgcHJvYyBwcm9iZV9kZW1hbmdsZXIgeyB9 IHsKKyAgICAgZ2xvYmFsIGRtX3R5cGVfdW5zaWduZWRfaW50CisgICAgIGdsb2JhbCBkbV90eXBl X3ZvaWQKKyAgICAgZ2xvYmFsIGRtX3R5cGVfdm9pZF9zdGFyCisrICAgIGdsb2JhbCBkbV90eXBl X3Nob3J0CisrICAgIGdsb2JhbCBkbV90eXBlX3Vuc2lnbmVkX3Nob3J0CisrICAgIGdsb2JhbCBk bV90eXBlX2xvbmcKKysgICAgZ2xvYmFsIGRtX3R5cGVfdW5zaWduZWRfbG9uZworKyAgICBnbG9i YWwgZG1fdHlwZV90eXBlZGVmCisgCisgICAgIHNlbmRfZ2RiICJwcmludCAmJ2Zvbzo6b3BlcmF0 b3IsKGZvbyYpJ1xuIgorICAgICBnZGJfZXhwZWN0IHsKK0BAIC05Nyw2ICsxMTgsMjYgQEAgcHJv YyBwcm9iZV9kZW1hbmdsZXIgeyB9IHsKKyAJfQorICAgICB9CisgCisrICAgIHNlbmRfZ2RiICJw cmludCAmJ2Zvbzo6b3BlcmF0b3IgY2hhciooKSdcbiIKKysgICAgZ2RiX2V4cGVjdCB7CisrCS1y ZSAiLipmb286Om9wZXJhdG9yIGNoYXIgXFwqXFwodm9pZFxcKS4qXHJcbiRnZGJfcHJvbXB0ICQi IHsKKysJICAgICMgdjIgZGVtYW5nbGVyIG9yIEdEQiB0eXBlIHByaW50ZXIKKysJICAgIHNldCBk bV9vcGVyYXRvcl9jaGFyX3N0YXIgImNoYXIgKiIKKysJICAgIHNldCBkbV9vcGVyYXRvcl9jaGFy X3N0YXJfcXVvdGVkICJjaGFyIFxcKiIKKysJICAgIHBhc3MgImRldGVjdCBkbV9vcGVyYXRvcl9j aGFyX3N0YXIiCisrCX0KKysJLXJlICIuKmZvbzo6b3BlcmF0b3IgY2hhclxcKlxcKFxcKS4qXHJc biRnZGJfcHJvbXB0ICQiIHsKKysJICAgICMgdjMgZGVtYW5nbGVyCisrCSAgICBwYXNzICJkZXRl Y3QgZG1fb3BlcmF0b3JfY2hhcl9zdGFyIgorKwl9CisrCS1yZSAiLiokZ2RiX3Byb21wdCAkIiB7 CisrCSAgICBmYWlsICJkZXRlY3QgZG1fb3BlcmF0b3JfY2hhcl9zdGFyIgorKwl9CisrCXRpbWVv dXQgeworKwkgICAgZmFpbCAiZGV0ZWN0IGRtX29wZXJhdG9yX2NoYXJfc3RhciIKKysJfQorKyAg ICB9CisrCisgICAgIHNlbmRfZ2RiICJwcmludCAmJ2RtX3R5cGVfY2hhcl9zdGFyJ1xuIgorICAg ICBnZGJfZXhwZWN0IHsKKyAJLXJlICIuKmRtX3R5cGVfY2hhcl9zdGFyXFwoY2hhciBcXCpcXCku KlxyXG4kZ2RiX3Byb21wdCAkIiB7CitAQCAtMTY2LDYgKzIwNywxMSBAQCBwcm9jIHByb2JlX2Rl bWFuZ2xlciB7IH0geworIAkgICAgIyB2MyBkZW1hbmdsZXIKKyAJICAgIHBhc3MgImRldGVjdCBk bV90eXBlX2xvbmdfc3RhciIKKyAJfQorKwktcmUgIi4qZG1fdHlwZV9sb25nX3N0YXJcXChsb25n IGludCBcXCpcXCkuKlxyXG4kZ2RiX3Byb21wdCAkIiB7CisrCSAgICAjIEdDQyB2MyBhbmQgR0RC J3MgdHlwZSBwcmludGVyCisrCSAgICBzZXQgZG1fdHlwZV9sb25nX3N0YXIgImxvbmcgaW50ICoi CisrCSAgICBwYXNzICJkZXRlY3QgZG1fdHlwZV9sb25nX3N0YXIiCisrCX0KKyAJLXJlICIuKiRn ZGJfcHJvbXB0ICQiIHsKKyAJICAgIGZhaWwgImRldGVjdCBkbV90eXBlX2xvbmdfc3RhciIKKyAJ fQorQEAgLTIzMCw2ICsyNzYsMTAxIEBAIHByb2MgcHJvYmVfZGVtYW5nbGVyIHsgfSB7CisgCSAg ICBmYWlsICJkZXRlY3QgZG1fdHlwZV92b2lkX3N0YXIgKHRpbWVvdXQpIgorIAl9CisgICAgIH0K KysKKysgICAgc2VuZF9nZGIgInByaW50ICYnZG1fdHlwZV9zaG9ydCdcbiIKKysgICAgZ2RiX2V4 cGVjdCB7CisrCS1yZSAiLipkbV90eXBlX3Nob3J0XFwoc2hvcnRcXCkuKlxyXG4kZ2RiX3Byb21w dCAkIiB7CisrCSAgICAjIHYyIGFuZCB2MyBkZW1hbmdsZXJzCisrCSAgICBwYXNzICJkZXRlY3Qg ZG1fdHlwZV9zaG9ydCIKKysJfQorKwktcmUgIi4qZG1fdHlwZV9zaG9ydFxcKHNob3J0IGludFxc KS4qXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJICAgICMgR0RCIHR5cGUgcHJpbnRlcgorKwkgICAg c2V0IGRtX3R5cGVfc2hvcnQgInNob3J0IGludCIKKysJICAgIHBhc3MgImRldGVjdCBkbV90eXBl X3Nob3J0IgorKwl9CisrCS1yZSAiLiokZ2RiX3Byb21wdCAkIiB7CisrCSAgICBmYWlsICJkZXRl Y3QgZG1fdHlwZV9zaG9ydCIKKysJfQorKwl0aW1lb3V0IHsKKysJICAgIGZhaWwgImRldGVjdCBk bV90eXBlX3Nob3J0ICh0aW1lb3V0KSIKKysJfQorKyAgICB9CisrCisrICAgIHNlbmRfZ2RiICJw cmludCAmJ2RtX3R5cGVfdW5zaWduZWRfc2hvcnQnXG4iCisrICAgIGdkYl9leHBlY3QgeworKwkt cmUgIi4qZG1fdHlwZV91bnNpZ25lZF9zaG9ydFxcKHVuc2lnbmVkIHNob3J0XFwpLipcclxuJGdk Yl9wcm9tcHQgJCIgeworKwkgICAgIyB2MiBhbmQgdjMgZGVtYW5nbGVycworKwkgICAgcGFzcyAi ZGV0ZWN0IGRtX3R5cGVfdW5zaWduZWRfc2hvcnQiCisrCX0KKysJLXJlICIuKmRtX3R5cGVfdW5z aWduZWRfc2hvcnRcXChzaG9ydCB1bnNpZ25lZCBpbnRcXCkuKlxyXG4kZ2RiX3Byb21wdCAkIiB7 CisrCSAgICAjIEdEQiB0eXBlIHByaW50ZXIKKysJICAgIHNldCBkbV90eXBlX3Vuc2lnbmVkX3No b3J0ICJzaG9ydCB1bnNpZ25lZCBpbnQiCisrCSAgICBwYXNzICJkZXRlY3QgZG1fdHlwZV91bnNp Z25lZF9zaG9ydCIKKysJfQorKwktcmUgIi4qJGdkYl9wcm9tcHQgJCIgeworKwkgICAgZmFpbCAi ZGV0ZWN0IGRtX3R5cGVfdW5zaWduZWRfc2hvcnQiCisrCX0KKysJdGltZW91dCB7CisrCSAgICBm YWlsICJkZXRlY3QgZG1fdHlwZV91bnNpZ25lZF9zaG9ydCAodGltZW91dCkiCisrCX0KKysgICAg fQorKworKyAgICBzZW5kX2dkYiAicHJpbnQgJidkbV90eXBlX2xvbmcnXG4iCisrICAgIGdkYl9l eHBlY3QgeworKwktcmUgIi4qZG1fdHlwZV9sb25nXFwobG9uZ1xcKS4qXHJcbiRnZGJfcHJvbXB0 ICQiIHsKKysJICAgICMgdjIgYW5kIHYzIGRlbWFuZ2xlcnMKKysJICAgIHBhc3MgImRldGVjdCBk bV90eXBlX2xvbmciCisrCX0KKysJLXJlICIuKmRtX3R5cGVfbG9uZ1xcKGxvbmcgaW50XFwpLipc clxuJGdkYl9wcm9tcHQgJCIgeworKwkgICAgIyBHREIgdHlwZSBwcmludGVyCisrCSAgICBzZXQg ZG1fdHlwZV9sb25nICJsb25nIGludCIKKysJICAgIHBhc3MgImRldGVjdCBkbV90eXBlX2xvbmci CisrCX0KKysJLXJlICIuKiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIGZhaWwgImRldGVjdCBkbV90 eXBlX2xvbmciCisrCX0KKysJdGltZW91dCB7CisrCSAgICBmYWlsICJkZXRlY3QgZG1fdHlwZV9s b25nICh0aW1lb3V0KSIKKysJfQorKyAgICB9CisrCisrICAgIHNlbmRfZ2RiICJwcmludCAmJ2Rt X3R5cGVfdW5zaWduZWRfbG9uZydcbiIKKysgICAgZ2RiX2V4cGVjdCB7CisrCS1yZSAiLipkbV90 eXBlX3Vuc2lnbmVkX2xvbmdcXCh1bnNpZ25lZCBsb25nXFwpLipcclxuJGdkYl9wcm9tcHQgJCIg eworKwkgICAgIyB2MiBhbmQgdjMgZGVtYW5nbGVycworKwkgICAgcGFzcyAiZGV0ZWN0IGRtX3R5 cGVfdW5zaWduZWRfbG9uZyIKKysJfQorKwktcmUgIi4qZG1fdHlwZV91bnNpZ25lZF9sb25nXFwo bG9uZyB1bnNpZ25lZCBpbnRcXCkuKlxyXG4kZ2RiX3Byb21wdCAkIiB7CisrCSAgICAjIEdEQiB0 eXBlIHByaW50ZXIKKysJICAgIHNldCBkbV90eXBlX3Vuc2lnbmVkX2xvbmcgImxvbmcgdW5zaWdu ZWQgaW50IgorKwkgICAgcGFzcyAiZGV0ZWN0IGRtX3R5cGVfdW5zaWduZWRfbG9uZyIKKysJfQor KwktcmUgIi4qJGdkYl9wcm9tcHQgJCIgeworKwkgICAgZmFpbCAiZGV0ZWN0IGRtX3R5cGVfdW5z aWduZWRfbG9uZyIKKysJfQorKwl0aW1lb3V0IHsKKysJICAgIGZhaWwgImRldGVjdCBkbV90eXBl X3Vuc2lnbmVkX2xvbmcgKHRpbWVvdXQpIgorKwl9CisrICAgIH0KKysKKysgICAgc2VuZF9nZGIg InByaW50ICYnZG1fdHlwZV90eXBlZGVmJ1xuIgorKyAgICBnZGJfZXhwZWN0IHsKKysJLXJlICIu KmRtX3R5cGVfdHlwZWRlZlxcKGludFxcKS4qXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJICAgICMg djIgYW5kIHYzIGRlbWFuZ2xlcnMKKysJICAgIHBhc3MgImRldGVjdCBkbV90eXBlX3R5cGVkZWYi CisrCX0KKysJLXJlICIuKmRtX3R5cGVfdHlwZWRlZlxcKG15aW50XFwpLipcclxuJGdkYl9wcm9t cHQgJCIgeworKwkgICAgIyBHREIgdHlwZSBwcmludGVyCisrCSAgICBzZXQgZG1fdHlwZV90eXBl ZGVmIDEKKysJICAgIHBhc3MgImRldGVjdCBkbV90eXBlX3R5cGVkZWYiCisrCX0KKysJLXJlICIu KiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIGZhaWwgImRldGVjdCBkbV90eXBlX3R5cGVkZWYiCisr CX0KKysJdGltZW91dCB7CisrCSAgICBmYWlsICJkZXRlY3QgZG1fdHlwZV90eXBlZGVmICh0aW1l b3V0KSIKKysJfQorKyAgICB9CisgfQorIAorICMKK0BAIC0zNDUsOCArNDg2LDkgQEAgcHJvYyBw cmludF9hZGRyIHsgbmFtZSB9IHsKKyAKKyBwcm9jIHRlc3RfbG9va3VwX29wZXJhdG9yX2Z1bmN0 aW9ucyB7fSB7CisgICAgIGdsb2JhbCBkbV9vcGVyYXRvcl9jb21tYQorKyAgICBnbG9iYWwgZG1f b3BlcmF0b3JfY2hhcl9zdGFyCisgICAgIGdsb2JhbCBkbV90eXBlX2NoYXJfc3RhcgorLSAgICBn bG9iYWwgZG1fdHlwZV9jaGFyX3N0YXJfcXVvdGVkCisrICAgIGdsb2JhbCBkbV9vcGVyYXRvcl9j aGFyX3N0YXJfcXVvdGVkCisgICAgIGdsb2JhbCBkbV90eXBlX2Zvb19yZWYKKyAgICAgZ2xvYmFs IGRtX3R5cGVfdm9pZAorICAgICBnbG9iYWwgZG1fdHlwZV92b2lkX3N0YXIKK0BAIC00MDQsOCAr NTQ2LDggQEAgcHJvYyB0ZXN0X2xvb2t1cF9vcGVyYXRvcl9mdW5jdGlvbnMge30geworIAorICAg ICBpbmZvX2Z1bmMgIm9wZXJhdG9yIGludCgiCSJpbnQgZm9vOjpvcGVyYXRvciBpbnQoJGRtX3R5 cGVfdm9pZCk7IgorICAgICBpbmZvX2Z1bmMgIm9wZXJhdG9yKCkoIgkidm9pZCBmb286Om9wZXJh dG9yKCkoJGRtX3R5cGVfZm9vX3JlZik7IgorLSAgICBpbmZvX2Z1bmMgIm9wZXJhdG9yICRkbV90 eXBlX2NoYXJfc3Rhcl9xdW90ZWRcKCIgXAorLQkJCQkiY2hhciAqZm9vOjpvcGVyYXRvciAkZG1f dHlwZV9jaGFyX3N0YXJcKCRkbV90eXBlX3ZvaWQpOyIKKysgICAgaW5mb19mdW5jICJvcGVyYXRv ciAkZG1fb3BlcmF0b3JfY2hhcl9zdGFyX3F1b3RlZFwoIiBcCisrCQkJCSJjaGFyICpmb286Om9w ZXJhdG9yICRkbV9vcGVyYXRvcl9jaGFyX3N0YXJcKCRkbV90eXBlX3ZvaWQpOyIKKyAKKyB9Cisg CitAQCAtNDIwLDYgKzU2Miw3IEBAIHByb2MgdGVzdF9wYWRkcl9vcGVyYXRvcl9mdW5jdGlvbnMg e30geworICAgICBnbG9iYWwgZG1fdHlwZV91bnNpZ25lZF9pbnQKKyAgICAgZ2xvYmFsIGRtX3R5 cGVfdm9pZAorICAgICBnbG9iYWwgZG1fdHlwZV92b2lkX3N0YXIKKysgICAgZ2xvYmFsIGRtX29w ZXJhdG9yX2NoYXJfc3RhcgorIAorICAgICBwcmludF9hZGRyICJmb286Om9wZXJhdG9yKigkZG1f dHlwZV9mb29fcmVmKSIKKyAgICAgcHJpbnRfYWRkciAiZm9vOjpvcGVyYXRvciUoJGRtX3R5cGVf Zm9vX3JlZikiCitAQCAtNDcwLDcgKzYxMyw3IEBAIHByb2MgdGVzdF9wYWRkcl9vcGVyYXRvcl9m dW5jdGlvbnMge30geworICAgICB9CisgCisgICAgIHByaW50X2FkZHIgImZvbzo6b3BlcmF0b3Ig aW50KCRkbV90eXBlX3ZvaWQpIgorLSAgICBwcmludF9hZGRyICJmb286Om9wZXJhdG9yICRkbV90 eXBlX2NoYXJfc3RhclwoJGRtX3R5cGVfdm9pZCkiCisrICAgIHByaW50X2FkZHIgImZvbzo6b3Bl cmF0b3IgJGRtX29wZXJhdG9yX2NoYXJfc3RhclwoJGRtX3R5cGVfdm9pZCkiCisgfQorIAorICMK K0BAIC00ODAsMTcgKzYyMywyMSBAQCBwcm9jIHRlc3RfcGFkZHJfb3BlcmF0b3JfZnVuY3Rpb25z IHt9IHsKKyBwcm9jIHRlc3RfcGFkZHJfb3ZlcmxvYWRlZF9mdW5jdGlvbnMge30geworICAgICBn bG9iYWwgZG1fdHlwZV91bnNpZ25lZF9pbnQKKyAgICAgZ2xvYmFsIGRtX3R5cGVfdm9pZAorKyAg ICBnbG9iYWwgZG1fdHlwZV9zaG9ydAorKyAgICBnbG9iYWwgZG1fdHlwZV91bnNpZ25lZF9zaG9y dAorKyAgICBnbG9iYWwgZG1fdHlwZV9sb25nCisrICAgIGdsb2JhbCBkbV90eXBlX3Vuc2lnbmVk X2xvbmcKKyAKKyAgICAgcHJpbnRfYWRkciAib3ZlcmxvYWQxYXJnKCRkbV90eXBlX3ZvaWQpIgor ICAgICBwcmludF9hZGRyICJvdmVybG9hZDFhcmcoY2hhcikiCisgICAgIHByaW50X2FkZHIgIm92 ZXJsb2FkMWFyZyhzaWduZWQgY2hhcikiCisgICAgIHByaW50X2FkZHIgIm92ZXJsb2FkMWFyZyh1 bnNpZ25lZCBjaGFyKSIKKy0gICAgcHJpbnRfYWRkciAib3ZlcmxvYWQxYXJnKHNob3J0KSIKKy0g ICAgcHJpbnRfYWRkciAib3ZlcmxvYWQxYXJnKHVuc2lnbmVkIHNob3J0KSIKKysgICAgcHJpbnRf YWRkciAib3ZlcmxvYWQxYXJnKCRkbV90eXBlX3Nob3J0KSIKKysgICAgcHJpbnRfYWRkciAib3Zl cmxvYWQxYXJnKCRkbV90eXBlX3Vuc2lnbmVkX3Nob3J0KSIKKyAgICAgcHJpbnRfYWRkciAib3Zl cmxvYWQxYXJnKGludCkiCisgICAgIHByaW50X2FkZHIgIm92ZXJsb2FkMWFyZygkZG1fdHlwZV91 bnNpZ25lZF9pbnQpIgorLSAgICBwcmludF9hZGRyICJvdmVybG9hZDFhcmcobG9uZykiCistICAg IHByaW50X2FkZHIgIm92ZXJsb2FkMWFyZyh1bnNpZ25lZCBsb25nKSIKKysgICAgcHJpbnRfYWRk ciAib3ZlcmxvYWQxYXJnKCRkbV90eXBlX2xvbmcpIgorKyAgICBwcmludF9hZGRyICJvdmVybG9h ZDFhcmcoJGRtX3R5cGVfdW5zaWduZWRfbG9uZykiCisgICAgIHByaW50X2FkZHIgIm92ZXJsb2Fk MWFyZyhmbG9hdCkiCisgICAgIHByaW50X2FkZHIgIm92ZXJsb2FkMWFyZyhkb3VibGUpIgorIAor QEAgLTUxMywxNyArNjYwLDMxIEBAIHByb2MgdGVzdF9wYWRkcl9oYWlyeV9mdW5jdGlvbnMge30g eworICAgICBnbG9iYWwgZG1fdHlwZV9jaGFyX3N0YXIKKyAgICAgZ2xvYmFsIGRtX3R5cGVfaW50 X3N0YXIKKyAgICAgZ2xvYmFsIGRtX3R5cGVfbG9uZ19zdGFyCisrICAgIGdsb2JhbCBkbV90eXBl X3R5cGVkZWYKKyAKKyAgICAgcHJpbnRfYWRkcl8yICJoYWlyeWZ1bmMxIiAiaGFpcnlmdW5jMShp bnQpIgorLSAgICBwcmludF9hZGRyXzIgImhhaXJ5ZnVuYzIiICJoYWlyeWZ1bmMyKGludCAoKiko JGRtX3R5cGVfY2hhcl9zdGFyKSkiCistICAgIHByaW50X2FkZHJfMiAiaGFpcnlmdW5jMyIgImhh aXJ5ZnVuYzMoaW50ICgqKShzaG9ydCAoKikoJGRtX3R5cGVfbG9uZ19zdGFyKSkpIgorLSAgICBw cmludF9hZGRyXzIgImhhaXJ5ZnVuYzQiICJoYWlyeWZ1bmM0KGludCAoKikoc2hvcnQgKCopKCRk bV90eXBlX2NoYXJfc3RhcikpKSIKKy0KKy0gICAgIyBnZGItZ25hdHMgYnVnIGdkYi8xOToKKy0g ICAgIyAiZ2RiIHYzIGRlbWFuZ2xlciBmYWlscyBvbiBoYWlyeWZ1bmM1IGhhaXJ5ZnVuYzYgaGFp cnlmdW5jNyIKKy0gICAgcHJpbnRfYWRkcl8yX2tmYWlsICJoYWlyeWZ1bmM1IiAiaGFpcnlmdW5j NShpbnQgKCooKikoJGRtX3R5cGVfY2hhcl9zdGFyKSkobG9uZykpIiAiaGFpcnlmdW5jNShpbnQg KCopKGxvbmcpICgqKShjaGFyKikpIiAiZ2RiLzE5IgorLSAgICBwcmludF9hZGRyXzJfa2ZhaWwg ImhhaXJ5ZnVuYzYiICJoYWlyeWZ1bmM2KGludCAoKigqKSgkZG1fdHlwZV9pbnRfc3RhcikpKGxv bmcpKSIgImhhaXJ5ZnVuYzYoaW50ICgqKShsb25nKSAoKikoaW50KikpIiAiZ2RiLzE5IgorLSAg ICBwcmludF9hZGRyXzJfa2ZhaWwgImhhaXJ5ZnVuYzciICJoYWlyeWZ1bmM3KGludCAoKigqKShp bnQgKCopKCRkbV90eXBlX2NoYXJfc3RhcikpKShsb25nKSkiICJoYWlyeWZ1bmM3KGludCAoKiko bG9uZykgKCopKGludCAoKikoY2hhciopKSkiICJnZGIvMTkiCisrCisrICAgIGlmIHskZG1fdHlw ZV90eXBlZGVmID09IDB9IHsKKysJcHJpbnRfYWRkcl8yICJoYWlyeWZ1bmMyIiAiaGFpcnlmdW5j MihpbnQgKCopKCRkbV90eXBlX2NoYXJfc3RhcikpIgorKwlwcmludF9hZGRyXzIgImhhaXJ5ZnVu YzMiICJoYWlyeWZ1bmMzKGludCAoKikoc2hvcnQgKCopKCRkbV90eXBlX2xvbmdfc3RhcikpKSIK KysJcHJpbnRfYWRkcl8yICJoYWlyeWZ1bmM0IiAiaGFpcnlmdW5jNChpbnQgKCopKHNob3J0ICgq KSgkZG1fdHlwZV9jaGFyX3N0YXIpKSkiCisrCisrCSMgZ2RiLWduYXRzIGJ1ZyBnZGIvMTk6Cisr CSMgImdkYiB2MyBkZW1hbmdsZXIgZmFpbHMgb24gaGFpcnlmdW5jNSBoYWlyeWZ1bmM2IGhhaXJ5 ZnVuYzciCisrCXByaW50X2FkZHJfMl9rZmFpbCAiaGFpcnlmdW5jNSIgImhhaXJ5ZnVuYzUoaW50 ICgqKCopKCRkbV90eXBlX2NoYXJfc3RhcikpKGxvbmcpKSIgImhhaXJ5ZnVuYzUoaW50ICgqKShs b25nKSAoKikoY2hhciopKSIgImdkYi8xOSIKKysJcHJpbnRfYWRkcl8yX2tmYWlsICJoYWlyeWZ1 bmM2IiAiaGFpcnlmdW5jNihpbnQgKCooKikoJGRtX3R5cGVfaW50X3N0YXIpKShsb25nKSkiICJo YWlyeWZ1bmM2KGludCAoKikobG9uZykgKCopKGludCopKSIgImdkYi8xOSIKKysJcHJpbnRfYWRk cl8yX2tmYWlsICJoYWlyeWZ1bmM3IiAiaGFpcnlmdW5jNyhpbnQgKCooKikoaW50ICgqKSgkZG1f dHlwZV9jaGFyX3N0YXIpKSkobG9uZykpIiAiaGFpcnlmdW5jNyhpbnQgKCopKGxvbmcpICgqKShp bnQgKCopKGNoYXIqKSkpIiAiZ2RiLzE5IgorKyAgICB9IGVsc2UgeworKwlwcmludF9hZGRyXzIg ImhhaXJ5ZnVuYzIiICJoYWlyeWZ1bmMyKFBGUGNfaSkiCisrCXByaW50X2FkZHJfMiAiaGFpcnlm dW5jMyIgImhhaXJ5ZnVuYzMoUEZQRlBsX3NfaSkiCisrCXByaW50X2FkZHJfMiAiaGFpcnlmdW5j NCIgImhhaXJ5ZnVuYzQoUEZQRlBjX3NfaSkiCisrCisrCSMgZ2RiLWduYXRzIGJ1ZyBnZGIvMTk6 CisrCSMgImdkYiB2MyBkZW1hbmdsZXIgZmFpbHMgb24gaGFpcnlmdW5jNSBoYWlyeWZ1bmM2IGhh aXJ5ZnVuYzciCisrCXByaW50X2FkZHJfMiAiaGFpcnlmdW5jNSIgImhhaXJ5ZnVuYzUoUEZQY19Q RmxfaSkiCisrCXByaW50X2FkZHJfMiAiaGFpcnlmdW5jNiIgImhhaXJ5ZnVuYzYoUEZQaV9QRmxf aSkiCisrCXByaW50X2FkZHJfMiAiaGFpcnlmdW5jNyIgImhhaXJ5ZnVuYzcoUEZQRlBjX2lfUEZs X2kpIgorKyAgICB9CisgfQorIAorIHByb2MgZG9fdGVzdHMge30gewogZGlmZiAtLWdpdCBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmNwL2dkYjEzNTUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZ2Ri MTM1NS5leHAKLWluZGV4IDc3Njg3YTYuLjgwMjhiY2UgMTAwNjQ0CitpbmRleCA3NzY4N2E2Li42 NmQxNmNmIDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZ2RiMTM1NS5leHAKICsr KyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2dkYjEzNTUuZXhwCiBAQCAtNjgsMTEgKzY4LDExIEBA IHNldCBzX3RhaWwgICIuKiIKQEAgLTMwMDI3LDE0ICszMzI2NCwxNCBAQCBpbmRleCA3NzY4N2E2 Li44MDI4YmNlIDEwMDY0NAogIHNldCBmX2kgICAgICIke3dzfWludCBtX2ludDsiCiAgc2V0IGZf YyAgICAgIiR7d3N9Y2hhciBtX2NoYXI7IgogLXNldCBmX2xpICAgICIke3dzfWxvbmcgaW50IG1f bG9uZ19pbnQ7IgotK3NldCBmX2xpICAgICIke3dzfWxvbmcoIGludCk/IG1fbG9uZ19pbnQ7Igor K3NldCBmX2xpICAgICIke3dzfWxvbmcgbV9sb25nX2ludDsiCiAgc2V0IGZfdWkgICAgIiR7d3N9 dW5zaWduZWQgaW50IG1fdW5zaWduZWRfaW50OyIKIC1zZXQgZl9sdWkgICAiJHt3c31sb25nIHVu c2lnbmVkIGludCBtX2xvbmdfdW5zaWduZWRfaW50OyIKIC1zZXQgZl9zaSAgICAiJHt3c31zaG9y dCBpbnQgbV9zaG9ydF9pbnQ7IgogLXNldCBmX3N1aSAgICIke3dzfXNob3J0IHVuc2lnbmVkIGlu dCBtX3Nob3J0X3Vuc2lnbmVkX2ludDsiCi0rc2V0IGZfbHVpICAgIiR7d3N9KGxvbmcgdW5zaWdu ZWQgaW50fHVuc2lnbmVkIGxvbmcpIG1fbG9uZ191bnNpZ25lZF9pbnQ7IgotK3NldCBmX3NpICAg ICIke3dzfXNob3J0KCBpbnQpPyBtX3Nob3J0X2ludDsiCi0rc2V0IGZfc3VpICAgIiR7d3N9KHNo b3J0IHVuc2lnbmVkIGludHx1bnNpZ25lZCBzaG9ydCkgbV9zaG9ydF91bnNpZ25lZF9pbnQ7Igor K3NldCBmX2x1aSAgICIke3dzfXVuc2lnbmVkIGxvbmcgbV9sb25nX3Vuc2lnbmVkX2ludDsiCisr c2V0IGZfc2kgICAgIiR7d3N9c2hvcnQgbV9zaG9ydF9pbnQ7IgorK3NldCBmX3N1aSAgICIke3dz fXVuc2lnbmVkIHNob3J0IG1fc2hvcnRfdW5zaWduZWRfaW50OyIKICBzZXQgZl91YyAgICAiJHt3 c311bnNpZ25lZCBjaGFyIG1fdW5zaWduZWRfY2hhcjsiCiAgc2V0IGZfZiAgICAgIiR7d3N9Zmxv YXQgbV9mbG9hdDsiCiAgc2V0IGZfZCAgICAgIiR7d3N9ZG91YmxlIG1fZG91YmxlOyIKQEAgLTMw MzAwLDYgKzMzNTM3LDY4OCBAQCBpbmRleCAwMDAwMDAwLi42MmMwOWMyCiArIyBub3JtYWwgc2ln bmFsIGhhbmRsaW5nIGluIGluZmVyaW9yIGZ1bmN0aW9uIGNhbGxzLgogK2dkYl90ZXN0ICJwIGV4 Y2VwdGlvbnMucmFpc2Vfc2lnbmFsKDEpIiBcCiArICAgICJUbyBjaGFuZ2UgdGhpcyBiZWhhdmlv ciB1c2UgXCJzZXQgdW53aW5kb25zaWduYWwgb25cIi4qIgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmNwL21lbWJlci1wdHIuY2MgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9tZW1iZXIt cHRyLmNjCitpbmRleCAxZGZmNzBhLi42NDhiMmFmIDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuY3AvbWVtYmVyLXB0ci5jYworKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbWVtYmVy LXB0ci5jYworQEAgLTEzOCw2ICsxMzgsNyBAQCBjbGFzcyBEaWFtb25kIDogcHVibGljIFBhZGRp bmcsIHB1YmxpYyBMZWZ0LCBwdWJsaWMgUmlnaHQKKyB7CisgcHVibGljOgorICAgdmlydHVhbCBp bnQgdmdldF9iYXNlICgpOworKyAgaW50ICgqZnVuY19wdHIpIChpbnQpOworIH07CisgCisgaW50 IERpYW1vbmQ6OnZnZXRfYmFzZSAoKQorQEAgLTE0NSw2ICsxNDYsMTIgQEAgaW50IERpYW1vbmQ6 OnZnZXRfYmFzZSAoKQorICAgcmV0dXJuIHRoaXMtPkxlZnQ6OnggKyAyMDAwOworIH0KKyAKKytp bnQKKytmdW5jIChpbnQgeCkKKyt7CisrICByZXR1cm4gMTkgKyB4OworK30KKysKKyBpbnQgbWFp biAoKQorIHsKKyAgIEEgYTsKK0BAIC0xNjIsNiArMTY5LDcgQEAgaW50IG1haW4gKCkKKyAgIGlu dCAoRGlhbW9uZDo6KnJpZ2h0X3ZwbWYpICgpOworICAgaW50IChCYXNlOjoqYmFzZV92cG1mKSAo KTsKKyAgIGludCBEaWFtb25kOjoqZGlhbW9uZF9wbWk7CisrICBpbnQgKCogRGlhbW9uZDo6KmRp YW1vbmRfcGZ1bmNfcHRyKSAoaW50KTsKKyAKKyAgIFBNSSBudWxsX3BtaTsKKyAgIFBNRiBudWxs X3BtZjsKK0BAIC0xNzksNiArMTg3LDcgQEAgaW50IG1haW4gKCkKKyAKKyAgIGRpYW1vbmQuTGVm dDo6eCA9IDc3OworICAgZGlhbW9uZC5SaWdodDo6eCA9IDg4OworKyAgZGlhbW9uZC5mdW5jX3B0 ciA9IGZ1bmM7CisgCisgICAvKiBTb21lIHZhbGlkIHBvaW50ZXIgdG8gbWVtYmVycyBmcm9tIGEg YmFzZSBjbGFzcy4gICovCisgICBsZWZ0X3BtZiA9IChpbnQgKERpYW1vbmQ6OiopICgpKSAoaW50 IChMZWZ0OjoqKSAoKSkgKCZCYXNlOjpnZXRfeCk7CitAQCAtMTkzLDExICsyMDIsMTkgQEAgaW50 IG1haW4gKCkKKyAgIC8qIEEgcG9pbnRlciB0byBkYXRhIG1lbWJlciBmcm9tIGEgYmFzZSBjbGFz cy4gICovCisgICBkaWFtb25kX3BtaSA9IChpbnQgRGlhbW9uZDo6KikgKGludCBMZWZ0OjoqKSAm QmFzZTo6eDsKKyAKKysgIC8qIEEgcG9pbnRlciB0byBkYXRhIG1lbWJlciwgd2hlcmUgdGhlIG1l bWJlciBpcyBpdHNlbGYgYSBwb2ludGVyIHRvCisrICAgICBhIGZ1bmN0aW9uLiAgKi8KKysgIGRp YW1vbmRfcGZ1bmNfcHRyID0gKGludCAoKiBEaWFtb25kOjoqKSAoaW50KSkgJkRpYW1vbmQ6OmZ1 bmNfcHRyOworKworICAgbnVsbF9wbWkgPSBOVUxMOworICAgbnVsbF9wbWYgPSBOVUxMOworIAor ICAgcG1pID0gTlVMTDsgLyogQnJlYWtwb2ludCAxIGhlcmUuICAqLworIAorKyAgLy8gSW52YWxp ZCAodXNlcyBkaWFtb25kX3BmdW5jX3B0ciBhcyBhIGZ1bmN0aW9uKToKKysgIC8vIGRpYW1vbmQu KmRpYW1vbmRfcGZ1bmNfcHRyICgyMCk7CisrICAoZGlhbW9uZC4qZGlhbW9uZF9wZnVuY19wdHIp ICgyMCk7CisrCisgICBrID0gKGEuKnBtZikoMyk7CisgCisgICBwbWkgPSAmQTo6amo7CitkaWZm IC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbWVtYmVyLXB0ci5leHAgYi9nZGIvdGVzdHN1 aXRlL2dkYi5jcC9tZW1iZXItcHRyLmV4cAoraW5kZXggYjY5ZDRhZC4uNDc2NzExZiAxMDA2NDQK Ky0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL21lbWJlci1wdHIuZXhwCisrKysgYi9nZGIvdGVz dHN1aXRlL2dkYi5jcC9tZW1iZXItcHRyLmV4cAorQEAgLTM5MCw2ICszOTAsMzMgQEAgZ2RiX3Rl c3RfbXVsdGlwbGUgInByaW50ICgoaW50KSBwbWkpID09ICgoY2hhciAqKSAmYS5qIC0gKGNoYXIg KikgJiBhKSIgJG5hbWUgeworICAgICB9CisgfQorIAorKyMgQ2hlY2sgcG9pbnRlcnMgdG8gZGF0 YSBtZW1iZXJzLCB3aGljaCBhcmUgdGhlbXNlbHZlcyBwb2ludGVycyB0bworKyMgZnVuY3Rpb25z LiAgVGhlc2UgYmVoYXZlIGxpa2UgZGF0YSBtZW1iZXJzLCBub3QgbGlrZSBwb2ludGVycyB0bwor KyMgbWVtYmVyIGZ1bmN0aW9ucy4KKysKKytnZGJfdGVzdCAicHR5cGUgZGlhbW9uZF9wZnVuY19w dHIiIFwKKysgICAgInR5cGUgPSBpbnQgXFwoXFwqRGlhbW9uZDo6XFwqXFwpXFwoaW50XFwpIgor KworK2dkYl90ZXN0ICJwdHlwZSBkaWFtb25kLipkaWFtb25kX3BmdW5jX3B0ciIgXAorKyAgICAi dHlwZSA9IGludCBcXChcXCpcXClcXChpbnRcXCkiCisrCisrIyBUaGlzIG9uZSBpcyBpbnZhbGlk OyAoKSBiaW5kcyBtb3JlIHRpZ2h0bHkgdGhhbiAuKiwgc28gaXQgdHJpZXMgdG8KKysjIGNhbGwg dGhlIG1lbWJlciBwb2ludGVyIGFzIGEgbm9ybWFsIHBvaW50ZXItdG8tZnVuY3Rpb24uCisrCisr Z2RiX3Rlc3QgInByaW50IGRpYW1vbmQuKmRpYW1vbmRfcGZ1bmNfcHRyICgyMCkiIFwKKysgICAg IkludmFsaWQgZGF0YSB0eXBlIGZvciBmdW5jdGlvbiB0byBiZSBjYWxsZWQuIgorKworKyMgV2l0 aCBwYXJlbnRoZXNlcywgaXQgaXMgdmFsaWQuCisrCisrZ2RiX3Rlc3QgInByaW50IChkaWFtb25k LipkaWFtb25kX3BmdW5jX3B0cikgKDIwKSIgXAorKyAgICAiJHZobiA9IDM5IgorKworKyMgTWFr ZSBzdXJlIHRoYXQgd2UgZG8gbm90IGludGVycHJldCB0aGlzIGFzIGVpdGhlciBhIG1lbWJlciBw b2ludGVyCisrIyBjYWxsIG9yIGEgbWVtYmVyIGZ1bmN0aW9uIGNhbGwuCisrCisrZ2RiX3Rlc3Qg InByaW50IGRpYW1vbmQuZnVuY19wdHIgKDIwKSIgXAorKyAgICAiJHZobiA9IDM5IgorKworICMg PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAjIHBvaW50ZXIgdG8gbWVtYmVyIGZ1bmN0aW9u CisgIyA9PT09PT09PT09PT09PT09PT09PT09PT09PQorQEAgLTYwOCw2ICs2MzUsOSBAQCBnZGJf dGVzdF9tdWx0aXBsZSAicHJpbnQgKGEuKnBtZikoMykiICRuYW1lIHsKKyAgICAgfQorIH0KKyAK KytnZGJfdGVzdCAicHR5cGUgYS4qcG1mIiAidHlwZSA9IGludCBcXChBIFxcKiwgaW50XFwpIgor K2dkYl90ZXN0ICJwdHlwZSAoYS4qcG1mKSgzKSIgInR5cGUgPSBpbnQiCisrCisgIyBQcmludCBv dXQgYSBwb2ludGVyIHRvIGRhdGEgbWVtYmVyIHdoaWNoIHJlcXVpcmVzIGxvb2tpbmcgaW50bwor ICMgYSBiYXNlIGNsYXNzLgorIGdkYl90ZXN0ICJwcmludCBkaWFtb25kX3BtaSIgIiR2aG4gPSAm QmFzZTo6eCIKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UtbXVs dGlwbGUtaW1wb3J0cy5jYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS1tdWx0aXBs ZS1pbXBvcnRzLmNjCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uNmIxODBk NgorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLW11 bHRpcGxlLWltcG9ydHMuY2MKK0BAIC0wLDAgKzEsMjAgQEAKKytuYW1lc3BhY2UgQSB7CisrICBp bnQgeCA9IDExOworKyAgbmFtZXNwYWNleworKyAgICBpbnQgeHggPSAyMjsKKysgIH0KKyt9Cisr CisrdXNpbmcgbmFtZXNwYWNlIEE7CisrCisrbmFtZXNwYWNleworKyAgaW50IHh4eCA9IDMzOwor K307CisrCisraW50IG1haW4oKQorK3sKKysgIHg7CisrICB4eDsKKysgIHh4eDsKKysgIHJldHVy biAwOworK30KK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UtbXVs dGlwbGUtaW1wb3J0cy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UtbXVsdGlw bGUtaW1wb3J0cy5leHAKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5lNGJi OWY4CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2Ut bXVsdGlwbGUtaW1wb3J0cy5leHAKK0BAIC0wLDAgKzEsNDkgQEAKKysjIENvcHlyaWdodCAyMDA4 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KKysKKytpZiAkdHJhY2VsZXZlbCB0aGVuIHsKKysgICAgc3RyYWNlICR0cmFjZWxl dmVsCisrfQorKworK3NldCBwcm1zX2lkIDAKKytzZXQgYnVnX2lkIDAKKysKKytzZXQgdGVzdGZp bGUgbmFtZXNwYWNlLW11bHRpcGxlLWltcG9ydHMKKytzZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5j YworK3NldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KKytpZiAgeyBb Z2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0i IGV4ZWN1dGFibGUge2RlYnVnIGMrK31dICE9ICIiIH0geworKyAgICB1bnRlc3RlZCAiQ291bGRu J3QgY29tcGlsZSB0ZXN0IHByb2dyYW0iCisrICAgIHJldHVybiAtMQorK30KKysKKysjIEdldCB0 aGluZ3Mgc3RhcnRlZC4KKysKKytnZGJfZXhpdAorK2dkYl9zdGFydAorK2dkYl9yZWluaXRpYWxp emVfZGlyICRzcmNkaXIvJHN1YmRpcgorK2dkYl9sb2FkICR7YmluZmlsZX0KKysKKysjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworKyMgdGVzdCBwcmludGluZyBv ZiBuYW1lc3BhY2UgaW1wb3J0ZWQgd2l0aGluCisrIyB0aGUgZnVuY3Rpb24uCisrCisraWYgIVty dW50b19tYWluXSB0aGVuIHsKKysgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2lu dCBtYWluIgorKyAgICBjb250aW51ZQorK30KKysKKytnZGJfdGVzdCAicHJpbnQgeCIgIlxcJFxb MC05XF0uKiA9IDExIgorK2dkYl90ZXN0ICJwcmludCB4eCIgIlxcJFxbMC05XF0uKiA9IDIyIgor K2dkYl90ZXN0ICJwcmludCB4eHgiICJcXCRcWzAtOVxdLiogPSAzMyIKK2RpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UtdXNpbmcuY2MgYi9nZGIvdGVzdHN1aXRlL2dk Yi5jcC9uYW1lc3BhY2UtdXNpbmcuY2MKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAw MDAwLi45N2FmODUwCistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9u YW1lc3BhY2UtdXNpbmcuY2MKK0BAIC0wLDAgKzEsMTMxIEBACisrLy8tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorK25hbWVzcGFjZSBNeworKyAgaW50IHggPSA5MTE7CisrfQorKworK25hbWVz cGFjZSBOeworKyAgaW50IHggPSA5MTI7CisrfQorKworK2ludCBtYXJrZXIxMCgpeworKyAgdXNp bmcgbmFtZXNwYWNlIE07CisrICBpbnQgeSA9IHgrMTsgICAgICAgLy8gbWFya2VyMTAgc3RvcAor KyAgdXNpbmcgbmFtZXNwYWNlIE47CisrICByZXR1cm4geTsKKyt9CisrLy8tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorK25hbWVzcGFjZSBKIHsKKysgICAgaW50IGp4ID0gNDQ7CisrfQorKwor K25hbWVzcGFjZSBLeworKyAgaW50IG1hcmtlcjkoKXsKKysgICAgLy94OworKyAgICByZXR1cm4g bWFya2VyMTAoKTsKKysgIH0KKyt9CisrCisrbmFtZXNwYWNlIEx7CisrICB1c2luZyBuYW1lc3Bh Y2UgSjsKKysgIGludCBtYXJrZXI4KCl7CisrICAgIGp4OworKyAgICByZXR1cm4gSzo6bWFya2Vy OSgpOworKyAgfQorK30KKysvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrLy8tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK25hbWVzcGFjZSBHeworKyAgbmFtZXNwYWNlIEggIHsK KysgICAgaW50IGdoeCA9IDY7CisrICB9CisrfQorKworK25hbWVzcGFjZSBJeworKyAgCisrICBp bnQgbWFya2VyNygpeworKyAgICB1c2luZyBuYW1lc3BhY2UgRzo6SDsKKysgICAgZ2h4OworKyAg ICByZXR1cm4gTDo6bWFya2VyOCgpOworKyAgfQorK30KKysvLy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisrCisrLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK25hbWVzcGFjZSBFewor KyAgbmFtZXNwYWNlIEZ7CisrICAgIGludCBlZnggPSA1OworKyAgfQorK30KKyt1c2luZyBuYW1l c3BhY2UgRTo6RjsKKytpbnQgbWFya2VyNigpeworKyAgZWZ4OworKyAgcmV0dXJuIEk6Om1hcmtl cjcoKTsKKyt9CisrLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworK25hbWVzcGFjZSBB CisreworKyAgaW50IF9hID0gMTsKKysgIGludCB4ID0gMjsKKysgICAgCisrfQorKworK25hbWVz cGFjZSBDCisreworKyAgaW50IGNjID0gMzsKKyt9CisrCisrbmFtZXNwYWNlIEQKKyt7CisrICBp bnQgZHggPSA0OworK30KKysKKyt1c2luZyBuYW1lc3BhY2UgQzsKKytpbnQgbWFya2VyNSgpCisr eworKyAgY2M7CisrICByZXR1cm4gbWFya2VyNigpOworK30KKysKKytpbnQgbWFya2VyNCgpCisr eworKyAgdXNpbmcgRDo6ZHg7CisrICByZXR1cm4gbWFya2VyNSgpOworK30KKysKKytpbnQgbWFy a2VyMygpCisreworKyAgcmV0dXJuIG1hcmtlcjQoKTsKKyt9CisrCisraW50IG1hcmtlcjIoKQor K3sKKysgIG5hbWVzcGFjZSBCID0gQTsKKysgIEI6Ol9hOworKyAgcmV0dXJuIG1hcmtlcjMoKTsK Kyt9CisrCisraW50IG1hcmtlcjEoKQorK3sKKysgIGludCB0b3RhbCA9IDA7CisrICAgIHsKKysg ICAgICBpbnQgYiA9IDE7CisrICAgICAgICB7CisrICAgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBB OworKyAgICAgICAgICBpbnQgYyA9IDI7CisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAg aW50IGQgPSAzOworKyAgICAgICAgICAgICAgdG90YWwgPSBfYSArIGIgKyBjICsgZCArIG1hcmtl cjIoKTsgLy8gbWFya2VyMSBzdG9wCisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICB9 CisrICByZXR1cm4gdG90YWw7CisrfQorKworK2ludCBtYWluKCkKKyt7CisrICB1c2luZyBuYW1l c3BhY2UgQTsKKysgIF9hOworKyAgcmV0dXJuIG1hcmtlcjEoKTsKKyt9CitkaWZmIC0tZ2l0IGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLXVzaW5nLmV4cCBiL2dkYi90ZXN0c3VpdGUv Z2RiLmNwL25hbWVzcGFjZS11c2luZy5leHAKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAw MDAwMDAwLi5mNzNmYTY3CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5j cC9uYW1lc3BhY2UtdXNpbmcuZXhwCitAQCAtMCwwICsxLDE4NiBAQAorKyMgQ29weXJpZ2h0IDIw MDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorKworK2lmICR0cmFjZWxldmVsIHRoZW4geworKyAgICBzdHJhY2UgJHRyYWNl bGV2ZWwKKyt9CisrCisrc2V0IHBybXNfaWQgMAorK3NldCBidWdfaWQgMAorKworK3NldCB0ZXN0 ZmlsZSBuYW1lc3BhY2UtdXNpbmcKKytzZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5jYworK3NldCBi aW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KKytpZiAgeyBbZ2RiX2NvbXBp bGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4ZWN1dGFi bGUge2RlYnVnIGMrK31dICE9ICIiIH0geworKyAgICB1bnRlc3RlZCAiQ291bGRuJ3QgY29tcGls ZSB0ZXN0IHByb2dyYW0iCisrICAgIHJldHVybiAtMQorK30KKysKKysjIEdldCB0aGluZ3Mgc3Rh cnRlZC4KKysKKytnZGJfZXhpdAorK2dkYl9zdGFydAorK2dkYl9yZWluaXRpYWxpemVfZGlyICRz cmNkaXIvJHN1YmRpcgorK2dkYl9sb2FkICR7YmluZmlsZX0KKysKKysjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworKyMgdGVzdCBwcmludGluZyBvZiBuYW1lc3Bh Y2UgaW1wb3J0ZWQgd2l0aGluCisrIyB0aGUgZnVuY3Rpb24uCisrCisraWYgIVtydW50b19tYWlu XSB0aGVuIHsKKysgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBtYWluIgor KyAgICBjb250aW51ZQorK30KKysKKytnZGJfdGVzdCAicHJpbnQgX2EiICI9IDEiCisrCisrIyBU ZXN0IHRoYXQgbmFtZXMgYXJlIG5vdCBwcmludGVkIHdoZW4gdGhleSAKKysjIGFyZSBub3QgaW1w b3J0ZWQKKysKKytnZGJfYnJlYWtwb2ludCBtYXJrZXIzCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFr cG9pbnQgIm1hcmtlcjMiCisrCisrI3NlbmRfZ2RiICJicmVhayBtYXJrZXIzXG4iCisrI3NlbmRf Z2RiICJjb250aW51ZVxuIgorKworK2dkYl90ZXN0ICJwcmludCBfYSIgIk5vIHN5bWJvbCBcIl9h XCIgaW4gY3VycmVudCBjb250ZXh0LiIgIlByaW50IF9hIHdpdGhvdXQgaW1wb3J0IgorKworK2dk Yl9leGl0CisrZ2RiX3N0YXJ0CisrZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGly CisrZ2RiX2xvYWQgJHtiaW5maWxlfQorKworKworKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisrIyB0ZXN0IHByaW50aW5nIG9mIG5hbWVzcGFjZSBpbXBvcnRl ZCBpbnRvIAorKyMgYSBzY29wZSBjb250YWluaW5nIHRoZSBwYy4KKysKKytpZiAhW3J1bnRvX21h aW5dIHRoZW4geworKyAgICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBicmVha3BvaW50IG1haW4i CisrICAgIGNvbnRpbnVlCisrfQorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVt YmVyICJtYXJrZXIxIHN0b3AiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJtYXJrZXIx IHN0b3AiCisrCisrZ2RiX3Rlc3QgInByaW50IF9hIiAiPSAxIiAicHJpbnQgX2EgaW4gYSBuZXN0 ZWQgc2NvcGUiCisrCisrCisrZ2RiX2V4aXQKKytnZGJfc3RhcnQKKytnZGJfcmVpbml0aWFsaXpl X2RpciAkc3JjZGlyLyRzdWJkaXIKKytnZGJfbG9hZCAke2JpbmZpbGV9CisrCisrIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKysjIHRlc3QgcHJpbnRpbmcgb2Yg bmFtZXNwYWNlIGltcG9ydGVkIGludG8gCisrIyBmaWxlIHNjb3BlLgorKworKworK2lmICFbcnVu dG8gbWFya2VyNV0gdGhlbiB7CisrICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIGJyZWFrcG9p bnQgbWFya2VyNSIKKysgICAgY29udGludWUKKyt9CisrCisrZ2RiX3Rlc3QgInByaW50IGNjIiAi PSAzIgorKworK2dkYl9leGl0CisrZ2RiX3N0YXJ0CisrZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNy Y2Rpci8kc3ViZGlyCisrZ2RiX2xvYWQgJHtiaW5maWxlfQorKworKworKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisrIyBUZXN0IHByaW50aW5nIG9mIG5hbWVz cGFjZSBhbGlhc2VzCisrCisraWYgIVtydW50byBtYXJrZXIyXSB0aGVuIHsKKysgICAgcGVycm9y ICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBtYXJrZXIyIgorKyAgICBjb250aW51ZQorK30K KysKKytnZGJfdGVzdCAicHJpbnQgQjo6X2EiICI9IDEiCisrCisrZ2RiX3Rlc3QgInByaW50IF9h IiAiTm8gc3ltYm9sIFwiX2FcIiBpbiBjdXJyZW50IGNvbnRleHQuIiAicHJpbnQgX2EgaW4gbmFt ZXNwYWNlIGFsaWFzIHNjb3BlIgorK2dkYl90ZXN0ICJwcmludCB4IiAiTm8gc3ltYm9sIFwieFwi IGluIGN1cnJlbnQgY29udGV4dC4iICJwcmludCB4IGluIG5hbWVzcGFjZSBhbGlhcyBzY29wZSIK KysKKytnZGJfZXhpdAorK2dkYl9zdGFydAorK2dkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIv JHN1YmRpcgorK2dkYl9sb2FkICR7YmluZmlsZX0KKysKKysKKysjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworKyMgVGVzdCBwcmludGluZyBvZiBuYW1lc3BhY2Ug YWxpYXNlcworKworK2lmICFbcnVudG8gbWFya2VyNF0gdGhlbiB7CisrICAgIHBlcnJvciAiY291 bGRuJ3QgcnVuIHRvIGJyZWFrcG9pbnQgbWFya2VyNCIKKysgICAgY29udGludWUKKyt9CisrCisr Z2RiX3Rlc3QgInByaW50IGR4IiAiPSA0IgorKworKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisrIyBUZXN0IHByaW50aW5nIG9mIG5hbWVzcGFjZSBhbGlhc2Vz CisrCisraWYgIVtydW50byBtYXJrZXI2XSB0aGVuIHsKKysgICAgcGVycm9yICJjb3VsZG4ndCBy dW4gdG8gYnJlYWtwb2ludCBtYXJrZXI2IgorKyAgICBjb250aW51ZQorK30KKysKKytnZGJfdGVz dCAicHJpbnQgZWZ4IiAiPSA1IgorKworKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisrIyBUZXN0IHByaW50aW5nIG9mIHZhcmlhYmxlcyBpbXBvcnRlZCBmcm9t CisrIyBuZXN0ZWQgbmFtZXNwYWNlcworKworK2lmICFbcnVudG8gSTo6bWFya2VyN10gdGhlbiB7 CisrICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIGJyZWFrcG9pbnQgSTo6bWFya2VyNyIKKysg ICAgY29udGludWUKKyt9CisrCisrZ2RiX3Rlc3QgInByaW50IGdoeCIgIj0gNiIKKysKKysjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworKyMgVGVzdCB0aGF0IHZh cmlhYmxlcyBhcmUgbm90IHByaW50ZWQgaW4gYSBuYW1lc3BhY2UKKysjIHRoYXQgaXMgc2libGlu ZyB0byB0aGUgbmFtZXNwYWNlIGNvbnRhaW5pbmcgYW4gaW1wb3J0CisrCisraWYgIVtydW50byBM OjptYXJrZXI4XSB0aGVuIHsKKysgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2lu dCBMOjptYXJrZXI4IgorKyAgICBjb250aW51ZQorK30KKysKKytnZGJfdGVzdCAicHJpbnQgangi ICI9IDQ0IgorKworK2dkYl9icmVha3BvaW50ICJLOjptYXJrZXI5IgorK2dkYl9jb250aW51ZV90 b19icmVha3BvaW50ICJLOjptYXJrZXI5IgorKworK2dkYl90ZXN0ICJwcmludCBqeCIgIk5vIHN5 bWJvbCBcImp4XCIgaW4gY3VycmVudCBjb250ZXh0LiIKKysKKysjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworKyMgVGVzdCB0aGF0IHZhcmlhYmxlcyBhcmUgb25s eSBwcmludGVkIGFmdGVyIHRoZSBsaW5lCisrIyBjb250YWluaW5nIHRoZSBpbXBvcnQKKysKKytp ZiAhW3J1bnRvX21haW5dIHRoZW4geworKyAgICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBicmVh a3BvaW50IG1haW4iCisrICAgIGNvbnRpbnVlCisrfQorKworK2dkYl9icmVha3BvaW50IFtnZGJf Z2V0X2xpbmVfbnVtYmVyICJtYXJrZXIxMCBzdG9wIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtw b2ludCAibWFya2VyMTAgc3RvcCIKKysKKytnZGJfdGVzdCAicHJpbnQgeCIgIj0gOTExIiAicHJp bnQgeCAoZnJvbSBNOjp4KSIKKysKKytnZGJfdGVzdCAibmV4dCIgIiIKKysKKytnZGJfdGVzdCAi cHJpbnQgeCIgIj0gOTEyIiAicHJpbnQgeCAoZnJvbSBNOjp4KSIKK2RpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFt ZXNwYWNlLmV4cAoraW5kZXggNzZiMWI4Mi4uMjA0MmRiMiAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25h bWVzcGFjZS5leHAKK0BAIC0yNCw2ICsyNCw3IEBACisgIyBmb3IgbmFtZXNwYWNlcy4KKyAjIE5v dGU6IEFzIG9mIDIwMDAtMDYtMDMsIHRoZXkgcGFzc2VkIHVuZGVyIGcrKyAtIGRqYgorIAorK2xv YWRfbGliICJjcC1zdXBwb3J0LmV4cCIKKyAKKyBpZiAkdHJhY2VsZXZlbCB0aGVuIHsKKyAgICAg ICAgIHN0cmFjZSAkdHJhY2VsZXZlbAorQEAgLTI1OSwxMSArMjYwLDE2IEBAIGdkYl90ZXN0ICJw dHlwZSBFIiAidHlwZSA9IG5hbWVzcGFjZSBDOjpEOjpFIgorIGdkYl90ZXN0ICJwdHlwZSBDQ2xh c3MiICJ0eXBlID0gKGNsYXNzIEM6OkNDbGFzcyBce1xyXG4gIHB1YmxpYzp8c3RydWN0IEM6OkND bGFzcyBceylcclxuICAgIGludCB4O1xyXG5cfSIKKyBnZGJfdGVzdCAicHR5cGUgQ0NsYXNzOjpO ZXN0ZWRDbGFzcyIgInR5cGUgPSAoY2xhc3MgQzo6Q0NsYXNzOjpOZXN0ZWRDbGFzcyBce1xyXG4g IHB1YmxpYzp8c3RydWN0IEM6OkNDbGFzczo6TmVzdGVkQ2xhc3MgXHspXHJcbiAgICBpbnQgeTtc clxuXH0iCisgZ2RiX3Rlc3QgInB0eXBlIE5lc3RlZENsYXNzIiAiTm8gc3ltYm9sIFwiTmVzdGVk Q2xhc3NcIiBpbiBjdXJyZW50IGNvbnRleHQuIgorLXNldHVwX2tmYWlsICJnZGIvMTQ0OCIgIiot Ki0qIgorLWdkYl90ZXN0ICJwdHlwZSA6OkM6OkNDbGFzcyIgInR5cGUgPSBjbGFzcyBDOjpDQ2xh c3MgXHtcclxuICBwdWJsaWM6XHJcbiAgICBpbnQgeDtcclxuXH0iCistc2V0dXBfa2ZhaWwgImdk Yi8xNDQ4IiAiKi0qLSoiCistZ2RiX3Rlc3QgInB0eXBlIDo6Qzo6Q0NsYXNzOjpOZXN0ZWRDbGFz cyIgInR5cGUgPSBjbGFzcyBDOjpDQ2xhc3M6Ok5lc3RlZENsYXNzIFx7XHJcbiAgcHVibGljOlxy XG4gICAgaW50IHk7XHJcblx9IgorLXNldHVwX2tmYWlsICJnZGIvMTQ0OCIgIiotKi0qIgorK2Nw X3Rlc3RfcHR5cGVfY2xhc3MgXAorKwkicHR5cGUgOjpDOjpDQ2xhc3MiICIiICJjbGFzcyIgIkM6 OkNDbGFzcyIgXAorKwl7CisrCSAgICB7IGZpZWxkIHB1YmxpYyAiaW50IHg7IiB9CisrCX0KKytj cF90ZXN0X3B0eXBlX2NsYXNzIFwKKysJInB0eXBlIDo6Qzo6Q0NsYXNzOjpOZXN0ZWRDbGFzcyIg IiIgImNsYXNzIiAiQzo6Q0NsYXNzOjpOZXN0ZWRDbGFzcyIgXAorKwl7CisrCSAgICB7IGZpZWxk IHB1YmxpYyAiaW50IHk7IiB9CisrCX0KKyBnZGJfdGVzdCAicHR5cGUgOjpDOjpOZXN0ZWRDbGFz cyIgIk5vIHN5bWJvbCBcIk5lc3RlZENsYXNzXCIgaW4gbmFtZXNwYWNlIFwiQ1wiLiIKKyBnZGJf dGVzdCAicHR5cGUgQzo6Q0NsYXNzIiAiTm8gc3ltYm9sIFwiQ0NsYXNzXCIgaW4gbmFtZXNwYWNl IFwiQzo6Q1wiLiIKKyBnZGJfdGVzdCAicHR5cGUgQzo6Q0NsYXNzOjpOZXN0ZWRDbGFzcyIgIk5v IHR5cGUgXCJDQ2xhc3NcIiB3aXRoaW4gY2xhc3Mgb3IgbmFtZXNwYWNlIFwiQzo6Q1wiLiIKK0BA IC0yNzMsOCArMjc5LDExIEBAIGdkYl90ZXN0ICJwdHlwZSBDOjpOZXN0ZWRDbGFzcyIgIk5vIHN5 bWJvbCBcIk5lc3RlZENsYXNzXCIgaW4gbmFtZXNwYWNlIFwiQzo6Q1wiCisgCisgZ2RiX3Rlc3Qg InByaW50IGNPdGhlckZpbGUiICJcXCRcWzAtOVxdLiogPSAzMTYiCisgZ2RiX3Rlc3QgInB0eXBl IE90aGVyRmlsZUNsYXNzIiAidHlwZSA9IChjbGFzcyBDOjpPdGhlckZpbGVDbGFzcyBce1xyXG4g IHB1YmxpYzp8c3RydWN0IEM6Ok90aGVyRmlsZUNsYXNzIFx7KVxyXG4gICAgaW50IHo7XHJcblx9 IgorLXNldHVwX2tmYWlsICJnZGIvMTQ0OCIgIiotKi0qIgorLWdkYl90ZXN0ICJwdHlwZSA6OkM6 Ok90aGVyRmlsZUNsYXNzIiAidHlwZSA9IGNsYXNzIEM6Ok90aGVyRmlsZUNsYXNzIFx7XHJcbiAg cHVibGljOlxyXG4gICAgaW50IHo7XHJcblx9IgorK2NwX3Rlc3RfcHR5cGVfY2xhc3MgXAorKwki cHR5cGUgOjpDOjpPdGhlckZpbGVDbGFzcyIgIiIgImNsYXNzIiAiQzo6T3RoZXJGaWxlQ2xhc3Mi IFwKKysJeworKwkgICAgeyBmaWVsZCBwdWJsaWMgImludCB6OyIgfQorKwl9CisgZ2RiX3Rlc3Qg InB0eXBlIEM6Ok90aGVyRmlsZUNsYXNzIiAiTm8gc3ltYm9sIFwiT3RoZXJGaWxlQ2xhc3NcIiBp biBuYW1lc3BhY2UgXCJDOjpDXCIuIgorIAorICMgU29tZSBhbm9ueW1vdXMgbmFtZXNwYWNlIHRl c3RzLgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL292ZXJsb2FkLmV4cCBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmNwL292ZXJsb2FkLmV4cAoraW5kZXggMjQwMjVhMi4uYTcyOTMyZSAx MDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL292ZXJsb2FkLmV4cAorKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuY3Avb3ZlcmxvYWQuZXhwCitAQCAtNzQsMTIgKzc0LDEyIEBAIHNldCBy ZV9tZXRob2RzCSIke3JlX21ldGhvZHN9JHt3c31pbnQgb3ZlcmxvYWQxYXJnXFwoKHZvaWR8KVxc KTsiCisgc2V0IHJlX21ldGhvZHMJIiR7cmVfbWV0aG9kc30ke3dzfWludCBvdmVybG9hZDFhcmdc XChjaGFyXFwpOyIKKyBzZXQgcmVfbWV0aG9kcwkiJHtyZV9tZXRob2RzfSR7d3N9aW50IG92ZXJs b2FkMWFyZ1xcKHNpZ25lZCBjaGFyXFwpOyIKKyBzZXQgcmVfbWV0aG9kcwkiJHtyZV9tZXRob2Rz fSR7d3N9aW50IG92ZXJsb2FkMWFyZ1xcKHVuc2lnbmVkIGNoYXJcXCk7IgorLXNldCByZV9tZXRo b2RzCSIke3JlX21ldGhvZHN9JHt3c31pbnQgb3ZlcmxvYWQxYXJnXFwoc2hvcnRcXCk7IgorLXNl dCByZV9tZXRob2RzCSIke3JlX21ldGhvZHN9JHt3c31pbnQgb3ZlcmxvYWQxYXJnXFwodW5zaWdu ZWQgc2hvcnRcXCk7IgorK3NldCByZV9tZXRob2RzCSIke3JlX21ldGhvZHN9JHt3c31pbnQgb3Zl cmxvYWQxYXJnXFwoc2hvcnQoIGludCk/XFwpOyIKKytzZXQgcmVfbWV0aG9kcwkiJHtyZV9tZXRo b2RzfSR7d3N9aW50IG92ZXJsb2FkMWFyZ1xcKCh1bnNpZ25lZCBzaG9ydHxzaG9ydCB1bnNpZ25l ZCkoIGludCk/XFwpOyIKKyBzZXQgcmVfbWV0aG9kcwkiJHtyZV9tZXRob2RzfSR7d3N9aW50IG92 ZXJsb2FkMWFyZ1xcKGludFxcKTsiCisgc2V0IHJlX21ldGhvZHMJIiR7cmVfbWV0aG9kc30ke3dz fWludCBvdmVybG9hZDFhcmdcXCh1bnNpZ25lZCBpbnRcXCk7IgorLXNldCByZV9tZXRob2RzCSIk e3JlX21ldGhvZHN9JHt3c31pbnQgb3ZlcmxvYWQxYXJnXFwobG9uZ1xcKTsiCistc2V0IHJlX21l dGhvZHMJIiR7cmVfbWV0aG9kc30ke3dzfWludCBvdmVybG9hZDFhcmdcXCh1bnNpZ25lZCBsb25n XFwpOyIKKytzZXQgcmVfbWV0aG9kcwkiJHtyZV9tZXRob2RzfSR7d3N9aW50IG92ZXJsb2FkMWFy Z1xcKGxvbmcoIGludCk/XFwpOyIKKytzZXQgcmVfbWV0aG9kcwkiJHtyZV9tZXRob2RzfSR7d3N9 aW50IG92ZXJsb2FkMWFyZ1xcKCh1bnNpZ25lZCBsb25nfGxvbmcgdW5zaWduZWQpKCBpbnQpP1xc KTsiCisgc2V0IHJlX21ldGhvZHMJIiR7cmVfbWV0aG9kc30ke3dzfWludCBvdmVybG9hZDFhcmdc XChmbG9hdFxcKTsiCisgc2V0IHJlX21ldGhvZHMJIiR7cmVfbWV0aG9kc30ke3dzfWludCBvdmVy bG9hZDFhcmdcXChkb3VibGVcXCk7IgorIHNldCByZV9tZXRob2RzCSIke3JlX21ldGhvZHN9JHt3 c31pbnQgb3ZlcmxvYWRmbmFyZ1xcKCh2b2lkfClcXCk7IgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmNwL292bGRicmVhay5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9vdmxkYnJl YWsuZXhwCitpbmRleCA4YTZiNzk1Li44OTcxNzFjIDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuY3Avb3ZsZGJyZWFrLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3Avb3ZsZGJy ZWFrLmV4cAorQEAgLTEyNywxMCArMTI3LDI0IEBAIHByb2Mgc2V0X2JwX292ZXJsb2FkZWQge25h bWUgZXhwZWN0ZWRtZW51IG15Y2hvaWNlIGJwbnVtYmVyIGxpbmVudW1iZXJ9IHsKKyB9CisgCisg IyBUaGlzIGlzIHRoZSBleHBlY3RlZCBtZW51IGZvciBvdmVybG9hZDFhcmcuCistIyBOb3RlIHRo ZSBhcmcgdHlwZSB2YXJpYXRpb25zIG9uIGxpbmVzIDYgYW5kIDEzLgorKyMgTm90ZSB0aGUgYXJn IHR5cGUgdmFyaWF0aW9ucyBmb3Igdm9pZCBhbmQgaW50ZWdlciB0eXBlcy4KKyAjIFRoaXMgYWNj b21tb2RhdGVzIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiBnKysuCisgCistc2V0IG1lbnVfb3Zlcmxv YWQxYXJnICJcXFxbMFxcXF0gY2FuY2VsXHJcblxcXFsxXFxcXSBhbGxcclxuXFxcWzJcXFxdIGZv bzo6b3ZlcmxvYWQxYXJnXFwoZG91YmxlXFwpIGF0Liokc3JjZmlsZToxMjFcclxuXFxcWzNcXFxd IGZvbzo6b3ZlcmxvYWQxYXJnXFwoZmxvYXRcXCkgYXQuKiRzcmNmaWxlOjEyMFxyXG5cXFxbNFxc XF0gZm9vOjpvdmVybG9hZDFhcmdcXCh1bnNpZ25lZCBsb25nXFwpIGF0Liokc3JjZmlsZToxMTlc clxuXFxcWzVcXFxdIGZvbzo6b3ZlcmxvYWQxYXJnXFwobG9uZ1xcKSBhdC4qJHNyY2ZpbGU6MTE4 XHJcblxcXFs2XFxcXSBmb286Om92ZXJsb2FkMWFyZ1xcKCh1bnNpZ25lZCBpbnR8dW5zaWduZWQp XFwpIGF0Liokc3JjZmlsZToxMTdcclxuXFxcWzdcXFxdIGZvbzo6b3ZlcmxvYWQxYXJnXFwoaW50 XFwpIGF0Liokc3JjZmlsZToxMTZcclxuXFxcWzhcXFxdIGZvbzo6b3ZlcmxvYWQxYXJnXFwodW5z aWduZWQgc2hvcnRcXCkgYXQuKiRzcmNmaWxlOjExNVxyXG5cXFxbOVxcXF0gZm9vOjpvdmVybG9h ZDFhcmdcXChzaG9ydFxcKSBhdC4qJHNyY2ZpbGU6MTE0XHJcblxcXFsxMFxcXF0gZm9vOjpvdmVy bG9hZDFhcmdcXCh1bnNpZ25lZCBjaGFyXFwpIGF0Liokc3JjZmlsZToxMTNcclxuXFxcWzExXFxc XSBmb286Om92ZXJsb2FkMWFyZ1xcKHNpZ25lZCBjaGFyXFwpIGF0Liokc3JjZmlsZToxMTJcclxu XFxcWzEyXFxcXSBmb286Om92ZXJsb2FkMWFyZ1xcKGNoYXJcXCkgYXQuKiRzcmNmaWxlOjExMVxy XG5cXFxbMTNcXFxdIGZvbzo6b3ZlcmxvYWQxYXJnXFwoKHZvaWR8KVxcKSBhdC4qJHNyY2ZpbGU6 MTEwXHJcbj4gJCIKKytzZXQgICAgbWVudV9vdmVybG9hZDFhcmcgIlxcXFswXFxcXSBjYW5jZWxc clxuIgorK2FwcGVuZCBtZW51X292ZXJsb2FkMWFyZyAiXFxcWzFcXFxdIGFsbFxyXG4iCisrYXBw ZW5kIG1lbnVfb3ZlcmxvYWQxYXJnICJcXFxbMlxcXF0gZm9vOjpvdmVybG9hZDFhcmdcXChkb3Vi bGVcXCkgYXQuKiRzcmNmaWxlOjEyMVxyXG4iCisrYXBwZW5kIG1lbnVfb3ZlcmxvYWQxYXJnICJc XFxbM1xcXF0gZm9vOjpvdmVybG9hZDFhcmdcXChmbG9hdFxcKSBhdC4qJHNyY2ZpbGU6MTIwXHJc biIKKythcHBlbmQgbWVudV9vdmVybG9hZDFhcmcgIlxcXFs0XFxcXSBmb286Om92ZXJsb2FkMWFy Z1xcKCh1bnNpZ25lZCBsb25nfGxvbmcgdW5zaWduZWQpKCBpbnQpP1xcKSBhdC4qJHNyY2ZpbGU6 MTE5XHJcbiIKKythcHBlbmQgbWVudV9vdmVybG9hZDFhcmcgIlxcXFs1XFxcXSBmb286Om92ZXJs b2FkMWFyZ1xcKGxvbmcoIGludCk/XFwpIGF0Liokc3JjZmlsZToxMThcclxuIgorK2FwcGVuZCBt ZW51X292ZXJsb2FkMWFyZyAiXFxcWzZcXFxdIGZvbzo6b3ZlcmxvYWQxYXJnXFwoKHVuc2lnbmVk IGludHx1bnNpZ25lZClcXCkgYXQuKiRzcmNmaWxlOjExN1xyXG4iCisrYXBwZW5kIG1lbnVfb3Zl cmxvYWQxYXJnICJcXFxbN1xcXF0gZm9vOjpvdmVybG9hZDFhcmdcXChpbnRcXCkgYXQuKiRzcmNm aWxlOjExNlxyXG4iCisrYXBwZW5kIG1lbnVfb3ZlcmxvYWQxYXJnICJcXFxbOFxcXF0gZm9vOjpv dmVybG9hZDFhcmdcXCgodW5zaWduZWQgc2hvcnR8c2hvcnQgdW5zaWduZWQpKCBpbnQpP1xcKSBh dC4qJHNyY2ZpbGU6MTE1XHJcbiIKKythcHBlbmQgbWVudV9vdmVybG9hZDFhcmcgIlxcXFs5XFxc XSBmb286Om92ZXJsb2FkMWFyZ1xcKHNob3J0KCBpbnQpP1xcKSBhdC4qJHNyY2ZpbGU6MTE0XHJc biIKKythcHBlbmQgbWVudV9vdmVybG9hZDFhcmcgIlxcXFsxMFxcXF0gZm9vOjpvdmVybG9hZDFh cmdcXCh1bnNpZ25lZCBjaGFyXFwpIGF0Liokc3JjZmlsZToxMTNcclxuIgorK2FwcGVuZCBtZW51 X292ZXJsb2FkMWFyZyAiXFxcWzExXFxcXSBmb286Om92ZXJsb2FkMWFyZ1xcKHNpZ25lZCBjaGFy XFwpIGF0Liokc3JjZmlsZToxMTJcclxuIgorK2FwcGVuZCBtZW51X292ZXJsb2FkMWFyZyAiXFxc WzEyXFxcXSBmb286Om92ZXJsb2FkMWFyZ1xcKGNoYXJcXCkgYXQuKiRzcmNmaWxlOjExMVxyXG4i CisrYXBwZW5kIG1lbnVfb3ZlcmxvYWQxYXJnICJcXFxbMTNcXFxdIGZvbzo6b3ZlcmxvYWQxYXJn XFwoKHZvaWR8KVxcKSBhdC4qJHNyY2ZpbGU6MTEwXHJcbiIKKythcHBlbmQgbWVudV9vdmVybG9h ZDFhcmcgIj4gJCIKKyAKKyAjIFNldCBtdWx0aXBsZS1zeW1ib2xzIHRvICJhc2siLCB0byBhbGxv dyB1cyB0byB0ZXN0IHRoZSB1c2UKKyAjIG9mIHRoZSBtdWx0aXBsZS1jaG9pY2UgbWVudSB3aGVu IGJyZWFraW5nIG9uIGFuIG92ZXJsb2FkZWQgbWV0aG9kLgorQEAgLTE1NywxNyArMTcxLDE3IEBA IHNldF9icF9vdmVybG9hZGVkICJmb286Om92ZXJsb2FkMWFyZyIgIiRtZW51X292ZXJsb2FkMWFy ZyIgMTMgICAxMyAxMTAKKyAKKyBnZGJfdGVzdCAiaW5mbyBicmVhayIgXAorICAgICAiTnVtICAg ICBUeXBlXFtcdCBcXStEaXNwIEVuYiBBZGRyZXNzXFtcdCBcXStXaGF0LioKKy1cWzAtOVxdK1xb XHQgXF0rYnJlYWtwb2ludCAgICAga2VlcCB5XFtcdCBcXSskaGV4XFtcdCBcXStpbiBtYWluIGF0 Liokc3JjZmlsZTo0OVxyCisrXFswLTlcXStcW1x0IFxdK2JyZWFrcG9pbnQgICAgIGtlZXAgeVxb XHQgXF0rJGhleFxbXHQgXF0raW4gbWFpbihcXCh2b2lkXFwpKT8gYXQuKiRzcmNmaWxlOjQ5XHIK KyBcW1x0IFxdK2JyZWFrcG9pbnQgYWxyZWFkeSBoaXQgMSB0aW1lXHIKKyBcWzAtOVxdK1xbXHQg XF0rYnJlYWtwb2ludCAgICAga2VlcCB5XFtcdCBcXSskaGV4XFtcdCBcXStpbiBmb286Om92ZXJs b2FkMWFyZ1xcKGNoYXJcXCkgYXQuKiRzcmNmaWxlOjExMVxyCisgXFswLTlcXStcW1x0IFxdK2Jy ZWFrcG9pbnQgICAgIGtlZXAgeVxbXHQgXF0rJGhleFxbXHQgXF0raW4gZm9vOjpvdmVybG9hZDFh cmdcXChzaWduZWQgY2hhclxcKSBhdC4qJHNyY2ZpbGU6MTEyXHIKKyBcWzAtOVxdK1xbXHQgXF0r YnJlYWtwb2ludCAgICAga2VlcCB5XFtcdCBcXSskaGV4XFtcdCBcXStpbiBmb286Om92ZXJsb2Fk MWFyZ1xcKHVuc2lnbmVkIGNoYXJcXCkgYXQuKiRzcmNmaWxlOjExM1xyCistXFswLTlcXStcW1x0 IFxdK2JyZWFrcG9pbnQgICAgIGtlZXAgeVxbXHQgXF0rJGhleFxbXHQgXF0raW4gZm9vOjpvdmVy bG9hZDFhcmdcXChzaG9ydFxcKSBhdC4qJHNyY2ZpbGU6MTE0XHIKKy1cWzAtOVxdK1xbXHQgXF0r YnJlYWtwb2ludCAgICAga2VlcCB5XFtcdCBcXSskaGV4XFtcdCBcXStpbiBmb286Om92ZXJsb2Fk MWFyZ1xcKHVuc2lnbmVkIHNob3J0XFwpIGF0Liokc3JjZmlsZToxMTVccgorK1xbMC05XF0rXFtc dCBcXSticmVha3BvaW50ICAgICBrZWVwIHlcW1x0IFxdKyRoZXhcW1x0IFxdK2luIGZvbzo6b3Zl cmxvYWQxYXJnXFwoc2hvcnQoIGludCk/XFwpIGF0Liokc3JjZmlsZToxMTRccgorK1xbMC05XF0r XFtcdCBcXSticmVha3BvaW50ICAgICBrZWVwIHlcW1x0IFxdKyRoZXhcW1x0IFxdK2luIGZvbzo6 b3ZlcmxvYWQxYXJnXFwoKHVuc2lnbmVkIHNob3J0fHNob3J0IHVuc2lnbmVkKSggaW50KT9cXCkg YXQuKiRzcmNmaWxlOjExNVxyCisgXFswLTlcXStcW1x0IFxdK2JyZWFrcG9pbnQgICAgIGtlZXAg eVxbXHQgXF0rJGhleFxbXHQgXF0raW4gZm9vOjpvdmVybG9hZDFhcmdcXChpbnRcXCkgYXQuKiRz cmNmaWxlOjExNlxyCisgXFswLTlcXStcW1x0IFxdK2JyZWFrcG9pbnQgICAgIGtlZXAgeVxbXHQg XF0rJGhleFxbXHQgXF0raW4gZm9vOjpvdmVybG9hZDFhcmdcXCgodW5zaWduZWR8dW5zaWduZWQg aW50KVxcKSBhdC4qJHNyY2ZpbGU6MTE3XHIKKy1cWzAtOVxdK1xbXHQgXF0rYnJlYWtwb2ludCAg ICAga2VlcCB5XFtcdCBcXSskaGV4XFtcdCBcXStpbiBmb286Om92ZXJsb2FkMWFyZ1xcKGxvbmdc XCkgYXQuKiRzcmNmaWxlOjExOFxyCistXFswLTlcXStcW1x0IFxdK2JyZWFrcG9pbnQgICAgIGtl ZXAgeVxbXHQgXF0rJGhleFxbXHQgXF0raW4gZm9vOjpvdmVybG9hZDFhcmdcXCh1bnNpZ25lZCBs b25nXFwpIGF0Liokc3JjZmlsZToxMTlccgorK1xbMC05XF0rXFtcdCBcXSticmVha3BvaW50ICAg ICBrZWVwIHlcW1x0IFxdKyRoZXhcW1x0IFxdK2luIGZvbzo6b3ZlcmxvYWQxYXJnXFwobG9uZygg aW50KT9cXCkgYXQuKiRzcmNmaWxlOjExOFxyCisrXFswLTlcXStcW1x0IFxdK2JyZWFrcG9pbnQg ICAgIGtlZXAgeVxbXHQgXF0rJGhleFxbXHQgXF0raW4gZm9vOjpvdmVybG9hZDFhcmdcXCgodW5z aWduZWQgbG9uZ3xsb25nIHVuc2lnbmVkKSggaW50KT9cXCkgYXQuKiRzcmNmaWxlOjExOVxyCisg XFswLTlcXStcW1x0IFxdK2JyZWFrcG9pbnQgICAgIGtlZXAgeVxbXHQgXF0rJGhleFxbXHQgXF0r aW4gZm9vOjpvdmVybG9hZDFhcmdcXChmbG9hdFxcKSBhdC4qJHNyY2ZpbGU6MTIwXHIKKyBcWzAt OVxdK1xbXHQgXF0rYnJlYWtwb2ludCAgICAga2VlcCB5XFtcdCBcXSskaGV4XFtcdCBcXStpbiBm b286Om92ZXJsb2FkMWFyZ1xcKGRvdWJsZVxcKSBhdC4qJHNyY2ZpbGU6MTIxXHIKKyBcWzAtOVxd K1xbXHQgXF0rYnJlYWtwb2ludCAgICAga2VlcCB5XFtcdCBcXSskaGV4XFtcdCBcXStpbiBmb286 Om92ZXJsb2FkMWFyZ1xcKCh2b2lkfClcXCkgYXQuKiRzcmNmaWxlOjExMCIgXAorQEAgLTIxNSwx NyArMjI5LDE3IEBAIGdkYl9leHBlY3QgeworIAorIGdkYl90ZXN0ICJpbmZvIGJyZWFrIiBcCisg ICAgICJOdW0gICAgIFR5cGVcW1x0IFxdK0Rpc3AgRW5iIEFkZHJlc3NcW1x0IFxdK1doYXQuKgor LVxbMC05XF0rXFtcdCBcXSticmVha3BvaW50ICAgICBrZWVwIHlcW1x0IFxdKyRoZXhcW1x0IFxd K2luIG1haW4gYXQuKiRzcmNmaWxlOjQ5XHIKKytcWzAtOVxdK1xbXHQgXF0rYnJlYWtwb2ludCAg ICAga2VlcCB5XFtcdCBcXSskaGV4XFtcdCBcXStpbiBtYWluKFxcKHZvaWRcXCkpPyBhdC4qJHNy Y2ZpbGU6NDlccgorIFxbXHQgXF0rYnJlYWtwb2ludCBhbHJlYWR5IGhpdCAxIHRpbWVccgorIFxb MC05XF0rXFtcdCBcXSticmVha3BvaW50ICAgICBrZWVwIHlcW1x0IFxdKyRoZXhcW1x0IFxdK2lu IGZvbzo6b3ZlcmxvYWQxYXJnXFwoY2hhclxcKSBhdC4qJHNyY2ZpbGU6MTExXHIKKyBcWzAtOVxd K1xbXHQgXF0rYnJlYWtwb2ludCAgICAga2VlcCB5XFtcdCBcXSskaGV4XFtcdCBcXStpbiBmb286 Om92ZXJsb2FkMWFyZ1xcKHNpZ25lZCBjaGFyXFwpIGF0Liokc3JjZmlsZToxMTJccgorIFxbMC05 XF0rXFtcdCBcXSticmVha3BvaW50ICAgICBrZWVwIHlcW1x0IFxdKyRoZXhcW1x0IFxdK2luIGZv bzo6b3ZlcmxvYWQxYXJnXFwodW5zaWduZWQgY2hhclxcKSBhdC4qJHNyY2ZpbGU6MTEzXHIKKy1c WzAtOVxdK1xbXHQgXF0rYnJlYWtwb2ludCAgICAga2VlcCB5XFtcdCBcXSskaGV4XFtcdCBcXStp biBmb286Om92ZXJsb2FkMWFyZ1xcKHNob3J0XFwpIGF0Liokc3JjZmlsZToxMTRccgorLVxbMC05 XF0rXFtcdCBcXSticmVha3BvaW50ICAgICBrZWVwIHlcW1x0IFxdKyRoZXhcW1x0IFxdK2luIGZv bzo6b3ZlcmxvYWQxYXJnXFwodW5zaWduZWQgc2hvcnRcXCkgYXQuKiRzcmNmaWxlOjExNVxyCisr XFswLTlcXStcW1x0IFxdK2JyZWFrcG9pbnQgICAgIGtlZXAgeVxbXHQgXF0rJGhleFxbXHQgXF0r aW4gZm9vOjpvdmVybG9hZDFhcmdcXChzaG9ydCggaW50KT9cXCkgYXQuKiRzcmNmaWxlOjExNFxy CisrXFswLTlcXStcW1x0IFxdK2JyZWFrcG9pbnQgICAgIGtlZXAgeVxbXHQgXF0rJGhleFxbXHQg XF0raW4gZm9vOjpvdmVybG9hZDFhcmdcXCgodW5zaWduZWQgc2hvcnR8c2hvcnQgdW5zaWduZWQp KCBpbnQpP1xcKSBhdC4qJHNyY2ZpbGU6MTE1XHIKKyBcWzAtOVxdK1xbXHQgXF0rYnJlYWtwb2lu dCAgICAga2VlcCB5XFtcdCBcXSskaGV4XFtcdCBcXStpbiBmb286Om92ZXJsb2FkMWFyZ1xcKGlu dFxcKSBhdC4qJHNyY2ZpbGU6MTE2XHIKKyBcWzAtOVxdK1xbXHQgXF0rYnJlYWtwb2ludCAgICAg a2VlcCB5XFtcdCBcXSskaGV4XFtcdCBcXStpbiBmb286Om92ZXJsb2FkMWFyZ1xcKCh1bnNpZ25l ZHx1bnNpZ25lZCBpbnQpXFwpIGF0Liokc3JjZmlsZToxMTdccgorLVxbMC05XF0rXFtcdCBcXSti cmVha3BvaW50ICAgICBrZWVwIHlcW1x0IFxdKyRoZXhcW1x0IFxdK2luIGZvbzo6b3ZlcmxvYWQx YXJnXFwobG9uZ1xcKSBhdC4qJHNyY2ZpbGU6MTE4XHIKKy1cWzAtOVxdK1xbXHQgXF0rYnJlYWtw b2ludCAgICAga2VlcCB5XFtcdCBcXSskaGV4XFtcdCBcXStpbiBmb286Om92ZXJsb2FkMWFyZ1xc KHVuc2lnbmVkIGxvbmdcXCkgYXQuKiRzcmNmaWxlOjExOVxyCisrXFswLTlcXStcW1x0IFxdK2Jy ZWFrcG9pbnQgICAgIGtlZXAgeVxbXHQgXF0rJGhleFxbXHQgXF0raW4gZm9vOjpvdmVybG9hZDFh cmdcXChsb25nKCBpbnQpP1xcKSBhdC4qJHNyY2ZpbGU6MTE4XHIKKytcWzAtOVxdK1xbXHQgXF0r YnJlYWtwb2ludCAgICAga2VlcCB5XFtcdCBcXSskaGV4XFtcdCBcXStpbiBmb286Om92ZXJsb2Fk MWFyZ1xcKCh1bnNpZ25lZCBsb25nfGxvbmcgdW5zaWduZWQpKCBpbnQpP1xcKSBhdC4qJHNyY2Zp bGU6MTE5XHIKKyBcWzAtOVxdK1xbXHQgXF0rYnJlYWtwb2ludCAgICAga2VlcCB5XFtcdCBcXSsk aGV4XFtcdCBcXStpbiBmb286Om92ZXJsb2FkMWFyZ1xcKGZsb2F0XFwpIGF0Liokc3JjZmlsZTox MjBccgorIFxbMC05XF0rXFtcdCBcXSticmVha3BvaW50ICAgICBrZWVwIHlcW1x0IFxdKyRoZXhc W1x0IFxdK2luIGZvbzo6b3ZlcmxvYWQxYXJnXFwoZG91YmxlXFwpIGF0Liokc3JjZmlsZToxMjFc cgorIFxbMC05XF0rXFtcdCBcXSticmVha3BvaW50ICAgICBrZWVwIHlcW1x0IFxdKyRoZXhcW1x0 IFxdK2luIGZvbzo6b3ZlcmxvYWQxYXJnXFwoKHZvaWR8KVxcKSBhdC4qJHNyY2ZpbGU6MTEwIiBc CitAQCAtMjk2LDEyICszMTAsMTIgQEAgZ2RiX3Rlc3QgImluZm8gYnJlYWsiIFwKKyAgICAgIk51 bSAgICAgVHlwZVxbXHQgXF0rRGlzcCBFbmIgQWRkcmVzc1xbXHQgXF0rV2hhdC4qCisgXFswLTlc XStcW1x0IFxdK2JyZWFrcG9pbnQgICAgIGtlZXAgeVxbXHQgXF0rJGhleFxbXHQgXF0raW4gZm9v OjpvdmVybG9hZDFhcmdcXChkb3VibGVcXCkgYXQuKiRzcmNmaWxlOjEyMVxyCisgXFswLTlcXStc W1x0IFxdK2JyZWFrcG9pbnQgICAgIGtlZXAgeVxbXHQgXF0rJGhleFxbXHQgXF0raW4gZm9vOjpv dmVybG9hZDFhcmdcXChmbG9hdFxcKSBhdC4qJHNyY2ZpbGU6MTIwXHIKKy1cWzAtOVxdK1xbXHQg XF0rYnJlYWtwb2ludCAgICAga2VlcCB5XFtcdCBcXSskaGV4XFtcdCBcXStpbiBmb286Om92ZXJs b2FkMWFyZ1xcKHVuc2lnbmVkIGxvbmdcXCkgYXQuKiRzcmNmaWxlOjExOVxyCistXFswLTlcXStc W1x0IFxdK2JyZWFrcG9pbnQgICAgIGtlZXAgeVxbXHQgXF0rJGhleFxbXHQgXF0raW4gZm9vOjpv dmVybG9hZDFhcmdcXChsb25nXFwpIGF0Liokc3JjZmlsZToxMThccgorK1xbMC05XF0rXFtcdCBc XSticmVha3BvaW50ICAgICBrZWVwIHlcW1x0IFxdKyRoZXhcW1x0IFxdK2luIGZvbzo6b3Zlcmxv YWQxYXJnXFwoKHVuc2lnbmVkIGxvbmd8bG9uZyB1bnNpZ25lZCkoIGludCk/XFwpIGF0Liokc3Jj ZmlsZToxMTlccgorK1xbMC05XF0rXFtcdCBcXSticmVha3BvaW50ICAgICBrZWVwIHlcW1x0IFxd KyRoZXhcW1x0IFxdK2luIGZvbzo6b3ZlcmxvYWQxYXJnXFwobG9uZyggaW50KT9cXCkgYXQuKiRz cmNmaWxlOjExOFxyCisgXFswLTlcXStcW1x0IFxdK2JyZWFrcG9pbnQgICAgIGtlZXAgeVxbXHQg XF0rJGhleFxbXHQgXF0raW4gZm9vOjpvdmVybG9hZDFhcmdcXCgodW5zaWduZWR8dW5zaWduZWQg aW50KVxcKSBhdC4qJHNyY2ZpbGU6MTE3XHIKKyBcWzAtOVxdK1xbXHQgXF0rYnJlYWtwb2ludCAg ICAga2VlcCB5XFtcdCBcXSskaGV4XFtcdCBcXStpbiBmb286Om92ZXJsb2FkMWFyZ1xcKGludFxc KSBhdC4qJHNyY2ZpbGU6MTE2XHIKKy1cWzAtOVxdK1xbXHQgXF0rYnJlYWtwb2ludCAgICAga2Vl cCB5XFtcdCBcXSskaGV4XFtcdCBcXStpbiBmb286Om92ZXJsb2FkMWFyZ1xcKHVuc2lnbmVkIHNo b3J0XFwpIGF0Liokc3JjZmlsZToxMTVccgorLVxbMC05XF0rXFtcdCBcXSticmVha3BvaW50ICAg ICBrZWVwIHlcW1x0IFxdKyRoZXhcW1x0IFxdK2luIGZvbzo6b3ZlcmxvYWQxYXJnXFwoc2hvcnRc XCkgYXQuKiRzcmNmaWxlOjExNFxyCisrXFswLTlcXStcW1x0IFxdK2JyZWFrcG9pbnQgICAgIGtl ZXAgeVxbXHQgXF0rJGhleFxbXHQgXF0raW4gZm9vOjpvdmVybG9hZDFhcmdcXCgodW5zaWduZWQg c2hvcnR8c2hvcnQgdW5zaWduZWQpKCBpbnQpP1xcKSBhdC4qJHNyY2ZpbGU6MTE1XHIKKytcWzAt OVxdK1xbXHQgXF0rYnJlYWtwb2ludCAgICAga2VlcCB5XFtcdCBcXSskaGV4XFtcdCBcXStpbiBm b286Om92ZXJsb2FkMWFyZ1xcKHNob3J0KCBpbnQpP1xcKSBhdC4qJHNyY2ZpbGU6MTE0XHIKKyBc WzAtOVxdK1xbXHQgXF0rYnJlYWtwb2ludCAgICAga2VlcCB5XFtcdCBcXSskaGV4XFtcdCBcXStp biBmb286Om92ZXJsb2FkMWFyZ1xcKHVuc2lnbmVkIGNoYXJcXCkgYXQuKiRzcmNmaWxlOjExM1xy CisgXFswLTlcXStcW1x0IFxdK2JyZWFrcG9pbnQgICAgIGtlZXAgeVxbXHQgXF0rJGhleFxbXHQg XF0raW4gZm9vOjpvdmVybG9hZDFhcmdcXChzaWduZWQgY2hhclxcKSBhdC4qJHNyY2ZpbGU6MTEy XHIKKyBcWzAtOVxdK1xbXHQgXF0rYnJlYWtwb2ludCAgICAga2VlcCB5XFtcdCBcXSskaGV4XFtc dCBcXStpbiBmb286Om92ZXJsb2FkMWFyZ1xcKGNoYXJcXCkgYXQuKiRzcmNmaWxlOjExMVxyCiBk aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvcmVmLXR5cGVzLmV4cCBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmNwL3JlZi10eXBlcy5leHAKIGluZGV4IDQ3ODRjYjIuLmIyZTU1Y2YgMTAwNjQ0 CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9yZWYtdHlwZXMuZXhwCkBAIC0zMTUyNCwxMCAr MzU0NDMsMTAgQEAgaW5kZXggMDAwMDAwMC4uMjJlYjlmMgogK30KIGRpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9uLWZyYW1lLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weXRob24tZnJhbWUuZXhwCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAw MDAwMC4uY2ZhMjIyNgoraW5kZXggMDAwMDAwMC4uZjYyZjYzZAogLS0tIC9kZXYvbnVsbAogKysr IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1mcmFtZS5leHAKLUBAIC0wLDAgKzEs ODMgQEAKK0BAIC0wLDAgKzEsOTIgQEAKICsjIENvcHlyaWdodCAoQykgMjAwOSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KICsKICsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CkBAIC0zMTU5Myw2ICszNTUx Miw3IEBAIGluZGV4IDAwMDAwMDAuLmNmYTIyMjYKICsKICtnZGJfYnJlYWtwb2ludCAiZjIiCiAr Z2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImJyZWFrcG9pbnQgYXQgZjIiCisrZ2RiX3Rlc3Qg InVwIiAiIiAiIgogKwogK2dkYl9weV90ZXN0X3NpbGVudF9jbWQgInB5dGhvbiBmcmFtZXMgPSBn ZGIuZnJhbWVzICgpIiAiZ2V0IGZyYW1lcyBsaXN0IiAxCiArZ2RiX3Rlc3QgInB5dGhvbiBwcmlu dCBmcmFtZXMiICJcXCg8Z2RiLkZyYW1lIG9iamVjdCBhdCAweFxbXFs6eGRpZ2l0OlxdXF0rPiwg PGdkYi5GcmFtZSBvYmplY3QgYXQgMHhcW1xbOnhkaWdpdDpcXVxdKz4sIDxnZGIuRnJhbWUgb2Jq ZWN0IGF0IDB4XFtcWzp4ZGlnaXQ6XF1cXSs+XFwpIiAidmVyaWZ5IGZyYW1lcyBsaXN0IgpAQCAt MzE2MDUsMTAgKzM1NTI1LDE4IEBAIGluZGV4IDAwMDAwMDAuLmNmYTIyMjYKICtnZGJfdGVzdCAi cHl0aG9uIHByaW50ICdyZXN1bHQgPScsIGYwLm5hbWUgKCkiICIgPSBmMiIgInRlc3QgRnJhbWUu bmFtZSIKICtnZGJfdGVzdCAicHl0aG9uIHByaW50ICdyZXN1bHQgPScsIGYwLnR5cGUgKCkgPT0g Z2RiLk5PUk1BTF9GUkFNRSIgIiA9IFRydWUiICJ0ZXN0IEZyYW1lLnR5cGUiCiArZ2RiX3Rlc3Qg InB5dGhvbiBwcmludCAncmVzdWx0ID0nLCBmMC51bndpbmRfc3RvcF9yZWFzb24gKCkgPT0gZ2Ri LkZSQU1FX1VOV0lORF9OT19SRUFTT04iICIgPSBUcnVlIiAidGVzdCBGcmFtZS50eXBlIgorK2dk Yl90ZXN0ICJweXRob24gcHJpbnQgJ3Jlc3VsdCA9JywgZ2RiLmZyYW1lX3N0b3BfcmVhc29uX3N0 cmluZyAoZ2RiLkZSQU1FX1VOV0lORF9JTk5FUl9JRCkiICIgPSBwcmV2aW91cyBmcmFtZSBpbm5l ciB0byB0aGlzIGZyYW1lIFxcKGNvcnJ1cHQgc3RhY2tcXD9cXCkiICJ0ZXN0IGdkYi5mcmFtZV9z dG9wX3JlYXNvbl9zdHJpbmciCiArZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAncmVzdWx0ID0nLCBm MC5wYyAoKSIgIiA9IFxbMC05XF0rIiAidGVzdCBGcmFtZS5wYyIKICtnZGJfdGVzdCAicHl0aG9u IHByaW50ICdyZXN1bHQgPScsIGYwLmFkZHJfaW5fYmxvY2sgKCkiICIgPSBcWzAtOVxdKyIgInRl c3QgRnJhbWUuYWRkcl9pbl9ibG9jayIKICtnZGJfdGVzdCAicHl0aG9uIHByaW50ICdyZXN1bHQg PScsIGYwLm9sZGVyICgpLmVxdWFscyAoZjEpIiAiID0gVHJ1ZSIgInRlc3QgRnJhbWUub2xkZXIi CiArZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAncmVzdWx0ID0nLCBmMS5uZXdlciAoKS5lcXVhbHMg KGYwKSIgIiA9IFRydWUiICJ0ZXN0IEZyYW1lLm5ld2VyIgorK2dkYl90ZXN0ICJweXRob24gcHJp bnQgJ3Jlc3VsdCA9JywgZjAucmVhZF92YXJfdmFsdWUgKCdiJykiIFwKKysgICJWYWx1ZUVycm9y OiB2YXJpYWJsZSAnYicgbm90IGZvdW5kLipFcnJvciB3aGlsZSBleGVjdXRpbmcgUHl0aG9uIGNv ZGUuIiBcCisrICAidGVzdCBGcmFtZS5yZWFkX3Zhcl92YWx1ZSAtIGVycm9yIgorK2dkYl90ZXN0 ICJweXRob24gcHJpbnQgJ3Jlc3VsdCA9JywgZjAucmVhZF92YXJfdmFsdWUgKCdhJykiICIgPSAx IiAidGVzdCBGcmFtZS5yZWFkX3Zhcl92YWx1ZSAtIHN1Y2Nlc3MiCisrCisrZ2RiX3Rlc3QgInB5 dGhvbiBwcmludCAncmVzdWx0ID0nLCBnZGIubmV3ZXN0X2ZyYW1lICgpLmVxdWFscyAoZjApIiAi ID0gVHJ1ZSIgInRlc3QgZ2RiLm5ld2VzdF9mcmFtZSIKKytnZGJfdGVzdCAicHl0aG9uIHByaW50 ICdyZXN1bHQgPScsIGdkYi5zZWxlY3RlZF9mcmFtZSAoKS5lcXVhbHMgKGYxKSIgIiA9IFRydWUi ICJ0ZXN0IGdkYi5zZWxlY3RlZF9mcmFtZSIKICsKICtnZGJfdGVzdCAicHl0aG9uIHByaW50ICdy ZXN1bHQgPScsIGYwLmJsb2NrICgpIiAiPGdkYi5CbG9jayBvYmplY3QgYXQgMHhcW1xbOnhkaWdp dDpcXVxdKz4iICJ0ZXN0IEZyYW1lLmJsb2NrIgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9weXRob24tZnVuY3Rpb24uZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5dGhvbi1mdW5jdGlvbi5leHAKQEAgLTMyNDEzLDYgKzM2MzQxLDI3IEBAIGluZGV4IDhmNWUw YWIuLjljYTk1OTMgMTAwNjQ0CiAgCiAgdGVzdF92YWx1ZV9pbl9pbmZlcmlvcgogK3Rlc3RfdmFs dWVfYWZ0ZXJfZGVhdGgKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2xpYi9jcC1zdXBwb3J0 LmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2NwLXN1cHBvcnQuZXhwCitpbmRleCBkYmQyZjU5Li40 NGUxYjUxIDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9saWIvY3Atc3VwcG9ydC5leHAKKysr KyBiL2dkYi90ZXN0c3VpdGUvbGliL2NwLXN1cHBvcnQuZXhwCitAQCAtMjIyLDcgKzIyMiw3IEBA IHByb2MgY3BfdGVzdF9wdHlwZV9jbGFzcyB7IGluX2NvbW1hbmQgaW5fdGVzdG5hbWUgaW5fa2V5 IGluX3RhZyBpbl9jbGFzc190YWJsZSB7CisgCisgICAgIHNldCBwYXJzZV9va2F5IDAKKyAgICAg Z2RiX3Rlc3RfbXVsdGlwbGUgIiRpbl9jb21tYW5kIiAiJGluX3Rlc3RuYW1lIC8vIHBhcnNlIGZh aWxlZCIgeworLQktcmUgInR5cGUgPSAoc3RydWN0fGNsYXNzKSR7d3NvcHR9KFxbQS1aYS16MC05 X1xdKikke3dzb3B0fSgoOlxbXlx7XF0qKT8pJHt3c29wdH1ceyguKilcfSR7d3NvcHR9KFxbXlxy XG5cXSopXFtcclxuXF0rJGdkYl9wcm9tcHQgJCIgeworKwktcmUgInR5cGUgPSAoc3RydWN0fGNs YXNzKSR7d3NvcHR9KFxbQS1aYS16MC05XzpcXSopJHt3c29wdH0oKDpcW15ce1xdKik/KSR7d3Nv cHR9XHsoLiopXH0ke3dzb3B0fShcW15cclxuXF0qKVxbXHJcblxdKyRnZGJfcHJvbXB0ICQiIHsK KyAJICAgIHNldCBwYXJzZV9va2F5ICAgICAgICAgIDEKKyAJICAgIHNldCBhY3R1YWxfa2V5ICAg ICAgICAgICRleHBlY3Rfb3V0KDEsc3RyaW5nKQorIAkgICAgc2V0IGFjdHVhbF90YWcgICAgICAg ICAgJGV4cGVjdF9vdXQoMixzdHJpbmcpCitAQCAtMjMxLDYgKzIzMSw3IEBAIHByb2MgY3BfdGVz dF9wdHlwZV9jbGFzcyB7IGluX2NvbW1hbmQgaW5fdGVzdG5hbWUgaW5fa2V5IGluX3RhZyBpbl9j bGFzc190YWJsZSB7CisgCSAgICBzZXQgYWN0dWFsX3RhaWwgICAgICAgICAkZXhwZWN0X291dCg2 LHN0cmluZykKKyAJfQorICAgICB9CisrICAgIAorICAgICBpZiB7ICEgJHBhcnNlX29rYXkgfSB0 aGVuIHsgcmV0dXJuIH0KKyAKKyAgICAgIyBDaGVjayB0aGUgYWN0dWFsIGtleS4gIEl0IHdvdWxk IGJlIG5pY2UgdG8gcmVxdWlyZSB0aGF0IGl0IG1hdGNoCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9saWIvZ2RiLmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKIGluZGV4IDgyMGFi MjAuLjhiOGU3YzYgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCkBAIC0z MjcwNSw2ICszNjY1NCw4NiBAQCBpbmRleCAxZjgyNGZhLi40YTkyYTEzIDEwMDY0NAogICAgICAg IGJyZWFrOwogIAogICAgICBjYXNlIFRZUEVfQ09ERV9CT09MOgorZGlmZiAtLWdpdCBhL2dkYi90 eXBlcHJpbnQuaCBiL2dkYi90eXBlcHJpbnQuaAoraW5kZXggZjU2MTMxMC4uYjM5ZmQxNyAxMDA2 NDQKKy0tLSBhL2dkYi90eXBlcHJpbnQuaAorKysrIGIvZ2RiL3R5cGVwcmludC5oCitAQCAtMjYs NCArMjYsNiBAQCB2b2lkIHByaW50X3R5cGVfc2NhbGFyIChzdHJ1Y3QgdHlwZSAqIHR5cGUsIExP TkdFU1QsIHN0cnVjdCB1aV9maWxlICopOworIAorIHZvaWQgY190eXBlX3ByaW50X3ZhcnNwZWNf c3VmZml4IChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCisgCQkJCSAgaW50 LCBpbnQpOworKworK3ZvaWQgY190eXBlX3ByaW50X2FyZ3MgKHN0cnVjdCB0eXBlICosIHN0cnVj dCB1aV9maWxlICosIGludCk7CisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2RiL3VpLWZpbGUuYyBi L2dkYi91aS1maWxlLmMKK2luZGV4IDAyYTAzMTQuLjVjOGM5NmUgMTAwNjQ0CistLS0gYS9nZGIv dWktZmlsZS5jCisrKysgYi9nZGIvdWktZmlsZS5jCitAQCAtMjIsNiArMjIsNyBAQAorIAorICNp bmNsdWRlICJkZWZzLmgiCisgI2luY2x1ZGUgInVpLWZpbGUuaCIKKysjaW5jbHVkZSAiZ2RiX29i c3RhY2suaCIKKyAjaW5jbHVkZSAiZ2RiX3N0cmluZy5oIgorIAorICNpbmNsdWRlIDxlcnJuby5o PgorQEAgLTI2Myw3ICsyNjQsNyBAQCBzZXRfdWlfZmlsZV9kYXRhIChzdHJ1Y3QgdWlfZmlsZSAq ZmlsZSwgdm9pZCAqZGF0YSwKKyB9CisgCisgLyogdWlfZmlsZSB1dGlsaXR5IGZ1bmN0aW9uIGZv ciBjb252ZXJ0aW5nIGEgYGBzdHJ1Y3QgdWlfZmlsZScnIGludG8KKy0gICBhIG1lbW9yeSBidWZm ZXInJy4gKi8KKysgICBhIG1lbW9yeSBidWZmZXIuICovCisgCisgc3RydWN0IGFjY3VtdWxhdGVk X3VpX2ZpbGUKKyB7CitAQCAtMjk3LDYgKzI5OCwyMyBAQCB1aV9maWxlX3hzdHJkdXAgKHN0cnVj dCB1aV9maWxlICpmaWxlLAorICAgKmxlbmd0aCA9IGFjYy5sZW5ndGg7CisgICByZXR1cm4gYWNj LmJ1ZmZlcjsKKyB9CisrCisrc3RhdGljIHZvaWQKKytkb191aV9maWxlX29ic2F2ZXN0cmluZyAo dm9pZCAqY29udGV4dCwgY29uc3QgY2hhciAqYnVmZmVyLCBsb25nIGxlbmd0aCkKKyt7CisrICBz dHJ1Y3Qgb2JzdGFjayAqb2JzdGFjayA9IChzdHJ1Y3Qgb2JzdGFjayAqKSBjb250ZXh0OworKyAg b2JzdGFja19ncm93IChvYnN0YWNrLCBidWZmZXIsIGxlbmd0aCk7CisrfQorKworK2NoYXIgKgor K3VpX2ZpbGVfb2JzYXZlc3RyaW5nIChzdHJ1Y3QgdWlfZmlsZSAqZmlsZSwgc3RydWN0IG9ic3Rh Y2sgKm9ic3RhY2ssCisrCQkgICAgICBsb25nICpsZW5ndGgpCisreworKyAgdWlfZmlsZV9wdXQg KGZpbGUsIGRvX3VpX2ZpbGVfb2JzYXZlc3RyaW5nLCBvYnN0YWNrKTsKKysgICpsZW5ndGggPSBv YnN0YWNrX29iamVjdF9zaXplIChvYnN0YWNrKTsKKysgIG9ic3RhY2tfMWdyb3cgKG9ic3RhY2ss ICdcMCcpOworKyAgcmV0dXJuIG9ic3RhY2tfZmluaXNoIChvYnN0YWNrKTsKKyt9CisgDAorIC8q IEEgcHVyZSBtZW1vcnkgYmFzZWQgYGBzdHJ1Y3QgdWlfZmlsZScnIHRoYXQgY2FuIGJlIHVzZWQg YW4gb3V0cHV0CisgICAgYnVmZmVyLiBUaGUgYnVmZmVycyBhY2N1bXVsYXRlZCBjb250ZW50cyBh cmUgYXZhaWxhYmxlIHZpYQorZGlmZiAtLWdpdCBhL2dkYi91aS1maWxlLmggYi9nZGIvdWktZmls ZS5oCitpbmRleCAxNTYyZDVhLi5kODZhN2ViIDEwMDY0NAorLS0tIGEvZ2RiL3VpLWZpbGUuaAor KysrIGIvZ2RiL3VpLWZpbGUuaAorQEAgLTE5LDYgKzE5LDcgQEAKKyAjaWZuZGVmIFVJX0ZJTEVf SAorICNkZWZpbmUgVUlfRklMRV9ICisgCisrc3RydWN0IG9ic3RhY2s7Cisgc3RydWN0IHVpX2Zp bGU7CisgCisgLyogQ3JlYXRlIGEgZ2VuZXJpYyB1aV9maWxlIG9iamVjdCB3aXRoIG51bGwgbWV0 aG9kcy4gKi8KK0BAIC03Nyw3ICs3OCwxMCBAQCBleHRlcm4gdm9pZCB1aV9maWxlX3B1dCAoc3Ry dWN0IHVpX2ZpbGUgKnNyYywgdWlfZmlsZV9wdXRfbWV0aG9kX2Z0eXBlICp3cml0ZSwgdgorICAg IGFwcGVuZGVkIE5VTC4gKi8KKyBleHRlcm4gY2hhciAqdWlfZmlsZV94c3RyZHVwIChzdHJ1Y3Qg dWlfZmlsZSAqZmlsZSwgbG9uZyAqbGVuZ3RoKTsKKyAKKy0KKysvKiBTaW1pbGFyIHRvIHVpX2Zp bGVfeHN0cmR1cCwgYnV0IHJldHVybiBhIG5ldyBzdHJpbmcgYWxsb2NhdGVkIG9uCisrICAgT0JT VEFDSy4gICovCisrZXh0ZXJuIGNoYXIgKnVpX2ZpbGVfb2JzYXZlc3RyaW5nIChzdHJ1Y3QgdWlf ZmlsZSAqZmlsZSwKKysJCQkJICAgc3RydWN0IG9ic3RhY2sgKm9ic3RhY2ssIGxvbmcgKmxlbmd0 aCk7CisgCisgZXh0ZXJuIGxvbmcgdWlfZmlsZV9yZWFkIChzdHJ1Y3QgdWlfZmlsZSAqZmlsZSwg Y2hhciAqYnVmLCBsb25nIGxlbmd0aF9idWYpOworIAogZGlmZiAtLWdpdCBhL2dkYi91dGlscy5j IGIvZ2RiL3V0aWxzLmMKIGluZGV4IDkyMjQ4MzkuLjg4YTlhMzkgMTAwNjQ0CiAtLS0gYS9nZGIv dXRpbHMuYwpAQCAtMzMwMzAsNyArMzcwNTksNyBAQCBpbmRleCBmMzhjZGI4Li44ZTEwM2NmIDEw MDY0NAogIH0KICAKIGRpZmYgLS1naXQgYS9nZGIvdmFsb3BzLmMgYi9nZGIvdmFsb3BzLmMKLWlu ZGV4IDk4MTBmMmIuLjNmOGQ5MmMgMTAwNjQ0CitpbmRleCA5ODEwZjJiLi4xNGM1NjJlIDEwMDY0 NAogLS0tIGEvZ2RiL3ZhbG9wcy5jCiArKysgYi9nZGIvdmFsb3BzLmMKIEBAIC0zOCw2ICszOCw3 IEBACkBAIC0zMzM1Niw3ICszNzM4NSwxMDUgQEAgaW5kZXggOTgxMGYyYi4uM2Y4ZDkyYyAxMDA2 NDQKICAJICBpZiAoYmFzZV9vZmZzZXQgPT0gLTEpCiAgCSAgICBlcnJvciAoXygidmlydHVhbCBi YXNlY2xhc3MgYm90Y2giKSk7CiAgCX0KLUBAIC0yNzI1LDcgKzI4MDgsNyBAQCB2YWx1ZV9zdHJ1 Y3RfZWx0X2Zvcl9yZWZlcmVuY2UgKHN0cnVjdCB0eXBlICpkb21haW4sIGludCBvZmZzZXQsCitA QCAtMjA4MywxMiArMjE2NiwyNSBAQCBmaW5kX292ZXJsb2FkX21hdGNoIChzdHJ1Y3QgdHlwZSAq KmFyZ190eXBlcywgaW50IG5hcmdzLAorICAgaWYgKG1ldGhvZCkKKyAgICAgeworICAgICAgIGdk Yl9hc3NlcnQgKG9iaik7CisrCisrICAgICAgLyogT0JKIG1heSBiZSBhIHBvaW50ZXIgdmFsdWUg cmF0aGVyIHRoYW4gdGhlIG9iamVjdCBpdHNlbGYuICAqLworKyAgICAgIG9iaiA9IGNvZXJjZV9y ZWYgKG9iaik7CisrICAgICAgd2hpbGUgKFRZUEVfQ09ERSAoY2hlY2tfdHlwZWRlZiAodmFsdWVf dHlwZSAob2JqKSkpID09IFRZUEVfQ09ERV9QVFIpCisrCW9iaiA9IGNvZXJjZV9yZWYgKHZhbHVl X2luZCAob2JqKSk7CisgICAgICAgb2JqX3R5cGVfbmFtZSA9IFRZUEVfTkFNRSAodmFsdWVfdHlw ZSAob2JqKSk7CistICAgICAgLyogSGFjazogZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIG9mdGVu IHBhc3NlcyBpbiBhIHBvaW50ZXIKKy0gICAgICAgICB2YWx1ZSByYXRoZXIgdGhhbiB0aGUgb2Jq ZWN0IGl0c2VsZiwgc28gdHJ5IGFnYWluLiAgKi8KKy0gICAgICBpZiAoKCFvYmpfdHlwZV9uYW1l IHx8ICEqb2JqX3R5cGVfbmFtZSkgCistCSAgJiYgKFRZUEVfQ09ERSAodmFsdWVfdHlwZSAob2Jq KSkgPT0gVFlQRV9DT0RFX1BUUikpCistCW9ial90eXBlX25hbWUgPSBUWVBFX05BTUUgKFRZUEVf VEFSR0VUX1RZUEUgKHZhbHVlX3R5cGUgKG9iaikpKTsKKysKKysgICAgICAvKiBGaXJzdCBjaGVj ayB3aGV0aGVyIHRoaXMgaXMgYSBkYXRhIG1lbWJlciwgZS5nLiBhIHBvaW50ZXIgdG8KKysJIGEg ZnVuY3Rpb24uICAqLworKyAgICAgIGlmIChUWVBFX0NPREUgKGNoZWNrX3R5cGVkZWYgKHZhbHVl X3R5cGUgKG9iaikpKSA9PSBUWVBFX0NPREVfU1RSVUNUKQorKwl7CisrCSAgKnZhbHAgPSBzZWFy Y2hfc3RydWN0X2ZpZWxkIChuYW1lLCBvYmosIDAsCisrCQkJCSAgICAgICBjaGVja190eXBlZGVm ICh2YWx1ZV90eXBlIChvYmopKSwgMCk7CisrCSAgaWYgKCp2YWxwKQorKwkgICAgeworKwkgICAg ICAqc3RhdGljcCA9IDE7CisrCSAgICAgIHJldHVybiAwOworKwkgICAgfQorKwl9CisgCisgICAg ICAgZm5zX3B0ciA9IHZhbHVlX2ZpbmRfb2xvYWRfbWV0aG9kX2xpc3QgKCZ0ZW1wLCBuYW1lLCAK KyAJCQkJCSAgICAgIDAsICZudW1fZm5zLCAKK0BAIC0yMTA4LDE2ICsyMjA0LDI5IEBAIGZpbmRf b3ZlcmxvYWRfbWF0Y2ggKHN0cnVjdCB0eXBlICoqYXJnX3R5cGVzLCBpbnQgbmFyZ3MsCisgICAg IH0KKyAgIGVsc2UKKyAgICAgeworLSAgICAgIGNvbnN0IGNoYXIgKnF1YWxpZmllZF9uYW1lID0g U1lNQk9MX0NQTFVTX0RFTUFOR0xFRF9OQU1FIChmc3ltKTsKKysgICAgICBjb25zdCBjaGFyICpx dWFsaWZpZWRfbmFtZSA9IFNZTUJPTF9OQVRVUkFMX05BTUUgKGZzeW0pOworIAorLSAgICAgIC8q IElmIHdlIGhhdmUgYSBDKysgbmFtZSwgdHJ5IHRvIGV4dHJhY3QganVzdCB0aGUgZnVuY3Rpb24K Ky0JIHBhcnQuICAqLworLSAgICAgIGlmIChxdWFsaWZpZWRfbmFtZSkKKy0JZnVuY19uYW1lID0g Y3BfZnVuY19uYW1lIChxdWFsaWZpZWRfbmFtZSk7CisrICAgICAgLyogSWYgd2UgaGF2ZSBhIGZ1 bmN0aW9uIHdpdGggYSBDKysgbmFtZSwgdHJ5IHRvIGV4dHJhY3QganVzdAorKwkgdGhlIGZ1bmN0 aW9uIHBhcnQuICBEbyBub3QgdHJ5IHRoaXMgZm9yIG5vbi1mdW5jdGlvbnMgKGUuZy4KKysJIGZ1 bmN0aW9uIHBvaW50ZXJzKS4gICovCisrICAgICAgaWYgKHF1YWxpZmllZF9uYW1lCisrCSAgJiYg VFlQRV9DT0RFIChjaGVja190eXBlZGVmIChTWU1CT0xfVFlQRSAoZnN5bSkpKSA9PSBUWVBFX0NP REVfRlVOQykKKysJeworKwkgIGZ1bmNfbmFtZSA9IGNwX2Z1bmNfbmFtZSAocXVhbGlmaWVkX25h bWUpOworKworKwkgIC8qIElmIGNwX2Z1bmNfbmFtZSBkaWQgbm90IHJlbW92ZSBhbnl0aGluZywg dGhlIG5hbWUgb2YgdGhlCisrCSAgICAgc3ltYm9sIGRpZCBub3QgaW5jbHVkZSBzY29wZSBvciBh cmd1bWVudCB0eXBlcyAtIGl0IHdhcworKwkgICAgIHByb2JhYmx5IGEgQy1zdHlsZSBmdW5jdGlv bi4gICovCisrCSAgaWYgKGZ1bmNfbmFtZSAmJiBzdHJjbXAgKGZ1bmNfbmFtZSwgcXVhbGlmaWVk X25hbWUpID09IDApCisrCSAgICB7CisrCSAgICAgIHhmcmVlIChmdW5jX25hbWUpOworKwkgICAg ICBmdW5jX25hbWUgPSBOVUxMOworKwkgICAgfQorKwl9CisgCistICAgICAgLyogSWYgdGhlcmUg d2FzIG5vIEMrKyBuYW1lLCB0aGlzIG11c3QgYmUgYSBDLXN0eWxlIGZ1bmN0aW9uLgorLQkgSnVz dCByZXR1cm4gdGhlIHNhbWUgc3ltYm9sLiAgRG8gdGhlIHNhbWUgaWYgY3BfZnVuY19uYW1lCist CSBmYWlscyBmb3Igc29tZSByZWFzb24uICAqLworKyAgICAgIC8qIElmIHRoZXJlIHdhcyBubyBD KysgbmFtZSwgdGhpcyBtdXN0IGJlIGEgQy1zdHlsZSBmdW5jdGlvbiBvcgorKwkgbm90IGEgZnVu Y3Rpb24gYXQgYWxsLiAgSnVzdCByZXR1cm4gdGhlIHNhbWUgc3ltYm9sLiAgRG8gdGhlCisrCSBz YW1lIGlmIGNwX2Z1bmNfbmFtZSBmYWlscyBmb3Igc29tZSByZWFzb24uICAqLworICAgICAgIGlm IChmdW5jX25hbWUgPT0gTlVMTCkKKyAgICAgICAgIHsKKyAJICAqc3ltcCA9IGZzeW07CitAQCAt MjU1OCw4ICsyNjY3LDggQEAgY2hlY2tfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBj aGFyICpuYW1lKQorICAgIHRoZSBjb21tZW50IGJlZm9yZSB2YWx1ZV9zdHJ1Y3RfZWx0X2Zvcl9y ZWZlcmVuY2UuICAqLworIAorIHN0cnVjdCB2YWx1ZSAqCistdmFsdWVfYWdncmVnYXRlX2VsdCAo c3RydWN0IHR5cGUgKmN1cnR5cGUsCistCQkgICAgIGNoYXIgKm5hbWUsIGludCB3YW50X2FkZHJl c3MsCisrdmFsdWVfYWdncmVnYXRlX2VsdCAoc3RydWN0IHR5cGUgKmN1cnR5cGUsIGNoYXIgKm5h bWUsCisrCQkgICAgIHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwgaW50IHdhbnRfYWRkcmVzcywK KyAJCSAgICAgZW51bSBub3NpZGUgbm9zaWRlKQorIHsKKyAgIHN3aXRjaCAoVFlQRV9DT0RFIChj dXJ0eXBlKSkKK0BAIC0yNTY3LDcgKzI2NzYsNyBAQCB2YWx1ZV9hZ2dyZWdhdGVfZWx0IChzdHJ1 Y3QgdHlwZSAqY3VydHlwZSwKKyAgICAgY2FzZSBUWVBFX0NPREVfU1RSVUNUOgorICAgICBjYXNl IFRZUEVfQ09ERV9VTklPTjoKKyAgICAgICByZXR1cm4gdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVm ZXJlbmNlIChjdXJ0eXBlLCAwLCBjdXJ0eXBlLCAKKy0JCQkJCSAgICAgbmFtZSwgTlVMTCwKKysJ CQkJCSAgICAgbmFtZSwgZXhwZWN0X3R5cGUsCisgCQkJCQkgICAgIHdhbnRfYWRkcmVzcywgbm9z aWRlKTsKKyAgICAgY2FzZSBUWVBFX0NPREVfTkFNRVNQQUNFOgorICAgICAgIHJldHVybiB2YWx1 ZV9uYW1lc3BhY2VfZWx0IChjdXJ0eXBlLCBuYW1lLCAKK0BAIC0yNjcxLDcgKzI3ODAsNyBAQCB2 YWx1ZV9zdHJ1Y3RfZWx0X2Zvcl9yZWZlcmVuY2UgKHN0cnVjdCB0eXBlICpkb21haW4sIGludCBv ZmZzZXQsCisgCSAgaWYgKGludHlwZSkKKyAJICAgIHsKKyAJICAgICAgd2hpbGUgKGotLSkKKy0J CWlmIChUWVBFX0ZOX0ZJRUxEX1RZUEUgKGYsIGopID09IGludHlwZSkKKysJCWlmIChjb21wYXJl X3BhcmFtZXRlcnMgKFRZUEVfRk5fRklFTERfVFlQRSAoZiwgaiksIGludHlwZSkpCisgCQkgIGJy ZWFrOworIAkgICAgICBpZiAoaiA8IDApCisgCQllcnJvciAoXygibm8gbWVtYmVyIGZ1bmN0aW9u IG1hdGNoZXMgdGhhdCB0eXBlIGluc3RhbnRpYXRpb24iKSk7CitAQCAtMjcyNSw3ICsyODM0LDcg QEAgdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVmZXJlbmNlIChzdHJ1Y3QgdHlwZSAqZG9tYWluLCBp bnQgb2Zmc2V0LAogIAkJICByZXN1bHQgPSBhbGxvY2F0ZV92YWx1ZSAobG9va3VwX21ldGhvZHB0 cl90eXBlIChUWVBFX0ZOX0ZJRUxEX1RZUEUgKGYsIGopKSk7CiAgCQkgIGNwbHVzX21ha2VfbWV0 aG9kX3B0ciAodmFsdWVfdHlwZSAocmVzdWx0KSwKICAJCQkJCSB2YWx1ZV9jb250ZW50c193cml0 ZWFibGUgKHJlc3VsdCksCkBAIC0zMzM2NSw3ICszNzQ5MiwxNiBAQCBpbmRleCA5ODEwZjJiLi4z ZjhkOTJjIDEwMDY0NAogIAkJfQogIAkgICAgfQogIAkgIHJldHVybiByZXN1bHQ7Ci1AQCAtMjg4 NCw3ICsyOTY3LDcgQEAgdmFsdWVfZnVsbF9vYmplY3QgKHN0cnVjdCB2YWx1ZSAqYXJncCwKK0BA IC0yNzkxLDcgKzI5MDAsNyBAQCB2YWx1ZV9tYXliZV9uYW1lc3BhY2VfZWx0IChjb25zdCBzdHJ1 Y3QgdHlwZSAqY3VydHlwZSwKKyAgIHN0cnVjdCBzeW1ib2wgKnN5bTsKKyAgIHN0cnVjdCB2YWx1 ZSAqcmVzdWx0OworIAorLSAgc3ltID0gY3BfbG9va3VwX3N5bWJvbF9uYW1lc3BhY2UgKG5hbWVz cGFjZV9uYW1lLCBuYW1lLCBOVUxMLAorKyAgc3ltID0gY3BfbG9va3VwX3N5bWJvbF9uYW1lc3Bh Y2VfaW5jcmVtZW50YWwgKG5hbWVzcGFjZV9uYW1lLCBuYW1lLCBOVUxMLAorIAkJCQkgICAgZ2V0 X3NlbGVjdGVkX2Jsb2NrICgwKSwgCisgCQkJCSAgICBWQVJfRE9NQUlOKTsKKyAKK0BAIC0yODg0 LDcgKzI5OTMsNyBAQCB2YWx1ZV9mdWxsX29iamVjdCAoc3RydWN0IHZhbHVlICphcmdwLAogICAg LyogR28gYmFjayBieSB0aGUgY29tcHV0ZWQgdG9wX29mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcg b2YgdGhlCiAgICAgICBvYmplY3QsIGFkanVzdGluZyBmb3IgdGhlIGVtYmVkZGVkIG9mZnNldCBv ZiBhcmdwIGlmIHRoYXQncyB3aGF0CiAgICAgICB2YWx1ZV9ydHRpX3R5cGUgdXNlZCBmb3IgaXRz IGNvbXB1dGF0aW9uLiAgKi8KQEAgLTMzMzc0LDcgKzM3NTEwLDcgQEAgaW5kZXggOTgxMGYyYi4u M2Y4ZDkyYyAxMDA2NDQKICAJCQkgICAodXNpbmdfZW5jID8gMCA6IHZhbHVlX2VtYmVkZGVkX29m ZnNldCAoYXJncCkpKTsKICAgIGRlcHJlY2F0ZWRfc2V0X3ZhbHVlX3R5cGUgKG5ld192YWwsIHZh bHVlX3R5cGUgKGFyZ3ApKTsKICAgIHNldF92YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKG5ld192YWws ICh1c2luZ19lbmMKLUBAIC0yOTg5LDggKzMwNzIsNiBAQCB2YWx1ZV9zbGljZSAoc3RydWN0IHZh bHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoKQorQEAgLTI5ODksOCArMzA5OCw2 IEBAIHZhbHVlX3NsaWNlIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBpbnQgbG93Ym91bmQsIGludCBs ZW5ndGgpCiAgICAgICAgfHwgbG93Ym91bmQgKyBsZW5ndGggLSAxID4gdXBwZXJib3VuZCkKICAg ICAgZXJyb3IgKF8oInNsaWNlIG91dCBvZiByYW5nZSIpKTsKICAKQEAgLTM0MDc5LDcgKzM4MjE1 LDcgQEAgaW5kZXggNGQ0MzI5ZS4uOTMxMjQ2OCAxMDA2NDQKICsgIG1ha2VfZmluYWxfY2xlYW51 cCAodmFsdWVfaGlzdG9yeV9jbGVhbnVwLCBOVUxMKTsKICB9CiBkaWZmIC0tZ2l0IGEvZ2RiL3Zh bHVlLmggYi9nZGIvdmFsdWUuaAotaW5kZXggYWE0MzM2NS4uZmRiMjJkMiAxMDA2NDQKK2luZGV4 IGFhNDMzNjUuLmY0MWRlZjkgMTAwNjQ0CiAtLS0gYS9nZGIvdmFsdWUuaAogKysrIGIvZ2RiL3Zh bHVlLmgKIEBAIC0yNzIsMTIgKzI3MiwyMyBAQCBleHRlcm4gdm9pZCBzZXRfdmFsdWVfY29tcG9u ZW50X2xvY2F0aW9uIChzdHJ1Y3QgdmFsdWUgKmNvbXBvbmVudCwKQEAgLTM0MTM2LDcgKzM4Mjcy LDE1IEBAIGluZGV4IGFhNDMzNjUuLmZkYjIyZDIgMTAwNjQ0CiAgZXh0ZXJuIHN0cnVjdCB2YWx1 ZSAqdmFsdWVfc3RyaW5nIChjaGFyICpwdHIsIGludCBsZW4pOwogIGV4dGVybiBzdHJ1Y3QgdmFs dWUgKnZhbHVlX2JpdHN0cmluZyAoY2hhciAqcHRyLCBpbnQgbGVuKTsKICAKLUBAIC01MzMsMTQg KzU1MSwxNCBAQCBleHRlcm4gdm9pZCBzZXRfaW50ZXJuYWx2YXJfY29tcG9uZW50IChzdHJ1Y3Qg aW50ZXJuYWx2YXIgKnZhciwKK0BAIC00MzUsNiArNDUzLDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1 ZSAqdmFsdWVfc3RydWN0X2VsdCAoc3RydWN0IHZhbHVlICoqYXJncCwKKyAKKyBleHRlcm4gc3Ry dWN0IHZhbHVlICp2YWx1ZV9hZ2dyZWdhdGVfZWx0IChzdHJ1Y3QgdHlwZSAqY3VydHlwZSwKKyAJ CQkJCSAgY2hhciAqbmFtZSwKKysJCQkJCSAgc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorIAkJ CQkJICBpbnQgd2FudF9hZGRyZXNzLAorIAkJCQkJICBlbnVtIG5vc2lkZSBub3NpZGUpOworIAor QEAgLTUzMywxNCArNTUyLDE0IEBAIGV4dGVybiB2b2lkIHNldF9pbnRlcm5hbHZhcl9jb21wb25l bnQgKHN0cnVjdCBpbnRlcm5hbHZhciAqdmFyLAogIAkJCQkgICAgICAgaW50IGJpdHBvcywgaW50 IGJpdHNpemUsCiAgCQkJCSAgICAgICBzdHJ1Y3QgdmFsdWUgKm5ld3ZhbHVlKTsKICAKQEAgLTM0 MTU0LDcgKzM4Mjk4LDcgQEAgaW5kZXggYWE0MzM2NS4uZmRiMjJkMiAxMDA2NDQKICAKICBleHRl cm4gaW50IHZhbHVlX2VxdWFsIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdCB2YWx1ZSAqYXJn Mik7CiAgCi1AQCAtNjE5LDcgKzYzNyw3IEBAIGV4dGVybiBpbnQgY29tbW9uX3ZhbF9wcmludCAo c3RydWN0IHZhbHVlICp2YWwsCitAQCAtNjE5LDcgKzYzOCw3IEBAIGV4dGVybiBpbnQgY29tbW9u X3ZhbF9wcmludCAoc3RydWN0IHZhbHVlICp2YWwsCiAgCQkJICAgICBjb25zdCBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKICAJCQkgICAgIGNvbnN0IHN0cnVjdCBsYW5ndWFn ZV9kZWZuICpsYW5ndWFnZSk7CiAgCkBAIC0zNDE2Myw3ICszODMwNyw3IEBAIGluZGV4IGFhNDMz NjUuLmZkYjIyZDIgMTAwNjQ0CiAgCQkJICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAogIAkJ CSAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwogIAotQEAg LTY1OCw1ICs2NzYsMjIgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfYWxsb2NhdGVfc3Bh Y2VfaW5faW5mZXJpb3IgKGludCk7CitAQCAtNjU4LDUgKzY3NywyMiBAQCBleHRlcm4gc3RydWN0 IHZhbHVlICp2YWx1ZV9hbGxvY2F0ZV9zcGFjZV9pbl9pbmZlcmlvciAoaW50KTsKICAKICBleHRl cm4gc3RydWN0IHZhbHVlICp2YWx1ZV9vZl9sb2NhbCAoY29uc3QgY2hhciAqbmFtZSwgaW50IGNv bXBsYWluKTsKICAKCmRpZmYgLS1naXQgYS9nZGIuc3BlYyBiL2dkYi5zcGVjCmluZGV4IDg3MDg4 OTQuLmJlYjRjMTIgMTAwNjQ0Ci0tLSBhL2dkYi5zcGVjCisrKyBiL2dkYi5zcGVjCkBAIC05LDcg KzksNyBAQCBOYW1lOiBnZGIlez9fd2l0aF9kZWJ1ZzotZGVidWd9CiAjIFNldCB2ZXJzaW9uIHRv IGNvbnRlbnRzIG9mIGdkYi92ZXJzaW9uLmluLgogIyBOT1RFOiB0aGUgRlNGIGdkYiB2ZXJzaW9u cyBhcmUgbnVtYmVyZWQgTi5NIGZvciBvZmZpY2lhbCByZWxlYXNlcywgbGlrZSA2LjMgCiAjIGFu ZCwgc2luY2UgSmFudWFyeSAyMDA1LCBYLlkuWi5kYXRlIGZvciBkYWlseSBzbmFwc2hvdHMsIGxp a2UgNi4zLjUwLjIwMDUwMTEyICMgKGRhaWx5IHNuYXBzaG90IGZyb20gbWFpbGluZSksIG9yIDYu My4wLjIwMDQwMTEyIChoZWFkIG9mIHRoZSByZWxlYXNlIGJyYW5jaCkuCi1WZXJzaW9uOiA2Ljgu NTAuMjAwOTAyMjgKK1ZlcnNpb246IDYuOC41MC4yMDA5MDMwMgogCiAjIFRoZSByZWxlYXNlIGFs d2F5cyBjb250YWlucyBhIGxlYWRpbmcgcmVzZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBhdCAxLgog IyBgdXBzdHJlYW0nIGlzIG5vdCBhIHBhcnQgb2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkgcnBtIGRl cGVuZGVuY2llcyBjb21wYXRpYmxlIGZvciB0aGUgdGVzdGluZy4KQEAgLTM3MCwxMSArMzcwLDE2 IEBAIFBhdGNoMzQ4OiBnZGItNi44LWJ6NDY2OTAxLWJhY2t0cmFjZS1mdWxsLXByZWxpbmtlZC5w YXRjaAogIyBUaGUgbWVyZ2VkIGJyYW5jaCBgYXJjaGVyJyBvZjogaHR0cDovL3NvdXJjZXdhcmUu b3JnL2dkYi93aWtpL1Byb2plY3RBcmNoZXIKIFBhdGNoMzQ5OiBnZGItYXJjaGVyLnBhdGNoCiAK KyMgRml4IHBhcnNpbmcgZWxmNjQtaTM4NiBmaWxlcyBmb3Iga2R1bXAgUEFFIHZtY29yZSBkdW1w cyAoQlogNDU3MTg3KS4KKyMgLSBUdXJuIG9uIDY0LWJpdCBCRkQgc3VwcG9ydCwgZ2xvYmFsbHkg ZW5hYmxlIEFDX1NZU19MQVJHRUZJTEUuCitQYXRjaDM1MjogZ2RiLTYuOC1iejQ1NzE4Ny1sYXJn ZWZpbGUucGF0Y2gKKwogQnVpbGRSZXF1aXJlczogbmN1cnNlcy1kZXZlbCB0ZXhpbmZvIGdldHRl eHQgZmxleCBiaXNvbiBleHBhdC1kZXZlbAogUmVxdWlyZXM6IHJlYWRsaW5lCiBCdWlsZFJlcXVp cmVzOiByZWFkbGluZS1kZXZlbAogUmVxdWlyZXM6IHJwbS1saWJzCiBCdWlsZFJlcXVpcmVzOiBy cG0tZGV2ZWwKKyV7IT9weXRob25fc2l0ZWxpYjogJWdsb2JhbCBweXRob25fc2l0ZWxpYiAlKCV7 X19weXRob259IC1jICJmcm9tIGRpc3R1dGlscy5zeXNjb25maWcgaW1wb3J0IGdldF9weXRob25f bGliOyBwcmludCBnZXRfcHl0aG9uX2xpYigpIil9CiBSZXF1aXJlczogcHl0aG9uLWxpYnMKIEJ1 aWxkUmVxdWlyZXM6IHB5dGhvbi1kZXZlbAogCkBAIC01NTYsNiArNTYxLDcgQEAgcm0gLWYgZ2Ri L2p2LWV4cC5jIGdkYi9tMi1leHAuYyBnZGIvb2JqYy1leHAuYyBnZGIvcC1leHAuYwogJXBhdGNo MzM3IC1wMQogJXBhdGNoMzQzIC1wMQogJXBhdGNoMzQ4IC1wMQorJXBhdGNoMzUyIC1wMQogJXBh dGNoMTI0IC1wMQogCiBmaW5kIC1uYW1lICIqLm9yaWciIHwgeGFyZ3Mgcm0gLWYKQEAgLTYyOSw2 ICs2MzUsNyBAQCBDRkxBR1M9IiRDRkxBR1MgLU8wIC1nZ2RiMiIKICVlbHNlCiAJLS13aXRob3V0 LWxpYnVud2luZAkJCQlcCiAlZW5kaWYKKwktLWVuYWJsZS02NC1iaXQtYmZkCQkJCVwKICVpZiAw JXs/X3dpdGhfZGVidWc6MX0KIAktLWVuYWJsZS1zdGF0aWMgLS1kaXNhYmxlLXNoYXJlZCAtLWVu YWJsZS1kZWJ1ZwlcCiAlZW5kaWYKQEAgLTgwNiw3ICs4MTMsOCBAQCBmaQogJXtfYmluZGlyfS9w c3RhY2sKICV7X21hbmRpcn0vKi9nc3RhY2suMSoKICV7X21hbmRpcn0vKi9wc3RhY2suMSoKLSV7 X2RhdGFkaXJ9LyV7bmFtZX0KKyV7cHl0aG9uX3NpdGVsaWJ9L2dkYgorJXtfZGF0YWRpcn0vZ2Ri CiAlZW5kaWYJIyAwJXshP193aXRoX3Vwc3RyZWFtOjF9CiAle19pbmZvZGlyfS9hbm5vdGF0ZS5p bmZvKgogJXtfaW5mb2Rpcn0vZ2RiLmluZm8qCkBAIC04MjIsMTggKzgzMCwyMiBAQCBmaQogJWVu ZGlmCiAKICVjaGFuZ2Vsb2cKLSogU2F0IEZlYiAyOCAyMDA5IEphbiBLcmF0b2NodmlsIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDYuOC41MC4yMDA5MDIyOC0xCisqIE1vbiBNYXIgIDIg MjAwOSBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA2LjguNTAu MjAwOTAzMDItMQogLSBJbmNsdWRlIHRoZSBBcmNoZXIgUHJvamVjdDogaHR0cDovL3NvdXJjZXdh cmUub3JnL2dkYi93aWtpL1Byb2plY3RBcmNoZXIKICAgKiBbcHl0aG9uXSBQeXRob24gc2NyaXB0 aW5nIHN1cHBvcnQ6IGh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9nZGIvd2lraS9QeXRob25HZGIKICAg KiBbY2F0Y2gtc3lzY2FsbF0gVHJhcCBhbmQgZGlzcGxheSBzeXNjYWxscy4KICAgKiBbZGVsYXll ZC1zeW1maWxlXSBJbXByb3ZlIHN0YXJ0dXAgcGVyZm9ybWFuY2UgYnkgbGF6aWx5IHJlYWQgcHN5 bXRhYnMuCiAgICogW2V4Y2VwdGlvbi1yZXdpbmRdIEZpeCBmYXRhbCBDKysgZXhjZXB0aW9ucyBp biBhbiBpbmZlcmlvciBmdW5jdGlvbiBjYWxsLgorICAqIFtleHByXSBFeHByZXNzaW9ucywgc2lu Z2xlLXF1b3RlIGVsaW1pbmF0aW9uLCBDKysgaW5wdXQgY2Fub25pY2FsaXphdGlvbi4KKyAgKiBb dXNpbmctZGlyZWN0aXZlXSBDKysgbmFtZXNwYWNlcy4KICAgKiBbdmxhXSBDIHZhcmlhYmxlIGxl bmd0aCBhcnJheXMgLyBEV19GT1JNX2Jsb2NrIC8gRm9ydHJhbiBkeW5hbWljIGFycmF5cy4KICAg KiBbbWlzY10gRml4IGRlYnVnaW5mb2xlc3MgYHJldHVybicgKEJaIDM2NTExMSksIGZpeCBjb21t YW5kLWxpbmUgbWFjcm9zIGZvcgogICAgIGV4cGVjdGVkIEdDQyAoQlogNDc5OTE0KSwgbmV3IHRl c3RjYXNlIGZvciB2YWxncmluZCAoZm9yIEJaIDQ4MzI2MiksCiAgICAgaW1wbGVtZW50IGBpbmZv IGNvbW1vbicgZm9yIEZvcnRyYW4sIGZpeCBGb3J0cmFuIGxvZ2ljYWwta2luZD04IChCWiA0NjUz MTApLAotICAgIGZpeCBzdGF0aWMgdmFyaWFibGUgaW4gQysrIGNvbnN0cnVjdG9ycyAoQlogNDQ1 OTEyKQorICAgIGZpeCBzdGF0aWMgdmFyaWFibGUgaW4gQysrIGNvbnN0cnVjdG9ycyAoQlogNDQ1 OTEyKSwgZml4IHBvd2VyNyAoQlogNDg1MzE5KS4KIC0gVXBncmFkZSB0byB0aGUgRlNGIEdEQiBn ZGItNi44LjUwIHNuYXBzaG90LgorLSBGaXggcGFyc2luZyBlbGY2NC1pMzg2IGZpbGVzIGZvciBr ZHVtcCBQQUUgdm1jb3JlIGR1bXBzIChCWiA0NTcxODcpLgorICAtIFR1cm4gb24gNjQtYml0IEJG RCBzdXBwb3J0LCBnbG9iYWxseSBlbmFibGUgQUNfU1lTX0xBUkdFRklMRS4KIAogKiBUdWUgRmVi IDI0IDIwMDkgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbC1lbmdAbGlzdHMuZmVkb3Jh cHJvamVjdC5vcmc+IC0gNi44LjUwLjIwMDkwMjEwLTIKIC0gUmVidWlsdCBmb3IgaHR0cHM6Ly9m ZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8xMV9NYXNzX1JlYnVpbGQKCmRpZmYgLS1naXQg YS9zb3VyY2VzIGIvc291cmNlcwppbmRleCA5MjIyNDQ1Li5kMjExZTI2IDEwMDY0NAotLS0gYS9z b3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEgKzEgQEAKLTRjZGU5YzNkZDFkZjU0ZWM4MTlhZjY0 MDdlYzlkNjFiICBnZGItNi44LjUwLjIwMDkwMjI4LnRhci5iejIKK2E4ZWFlMGQ0ZWY5NTVlYmNl Y2ZjNzUxMWFmMzEwNzBhICBnZGItNi44LjUwLjIwMDkwMzAyLnRhci5iejIK