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: Takao Fujiwara To: git-commits@fedoraproject.org Subject: [rpms/ibus] rawhide: Bump to 1.5.35-alpha2 Date: Fri, 19 Jun 2026 12:15:14 GMT Message-ID: <178187131484.1.2776432763211449156.rpms-ibus-de0ac625d7f4@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: rawhide X-Git-Rev: de0ac625d7f44faa1e9349db6449a36081f2dbf2 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvaWJ1cwpCcmFuY2gg OiByYXdoaWRlCkNvbW1pdCA6IGRlMGFjNjI1ZDdmNDRmYWExZTkzNDlkYjY0NDlhMzYwODFmMmRi ZjIKQXV0aG9yIDogVGFrYW8gRnVqaXdhcmEgPHRmdWppd2FyQHJlZGhhdC5jb20+CkRhdGUgICA6 IDIwMjYtMDYtMTlUMjE6MTQ6MzArMDk6MDAKU3RhdHMgIDogKzI3Ni8tMTQ5NCBpbiA2IGZpbGUo cykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9pYnVzL2MvZGUw YWM2MjVkN2Y0NGZhYTFlOTM0OWRiNjQ0OWEzNjA4MWYyZGJmMj9icmFuY2g9cmF3aGlkZQoKTG9n OgpCdW1wIHRvIDEuNS4zNS1hbHBoYTIKCi0tLQpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5n aXRpZ25vcmUKaW5kZXggMDNhMzExNC4uOGRjMjdlZiAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQor KysgYi8uZ2l0aWdub3JlCkBAIC05MSwzICs5MSw0IEBAIGlidXMtMS4zLjYudGFyLmd6CiAvaWJ1 cy0xLjUuMzQtcmMyLnRhci5negogL2lidXMtMS41LjM0LnRhci5negogL2lidXMtMS41LjM1LWFs cGhhMS50YXIueHoKKy9pYnVzLTEuNS4zNS1hbHBoYTIudGFyLnh6CgpkaWZmIC0tZ2l0IGEvaWJ1 cy0yNDQ0MDA5LXdheWxhbmQteGtiLWx2LXRpbGRlLnBhdGNoIGIvaWJ1cy0yNDQ0MDA5LXdheWxh bmQteGtiLWx2LXRpbGRlLnBhdGNoCmluZGV4IDA0ZTk0MmMuLjQwNzFjYWMgMTAwNjQ0Ci0tLSBh L2lidXMtMjQ0NDAwOS13YXlsYW5kLXhrYi1sdi10aWxkZS5wYXRjaAorKysgYi9pYnVzLTI0NDQw MDktd2F5bGFuZC14a2ItbHYtdGlsZGUucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1Gcm9tIDU2OWE5 MDkwZGVmYmFiMDYwMDA0MmM3OTVjMTM4YmQ4ZmUyMzcwY2QgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tIDE2ODZjYjU5YzE3NzQ0YjA3ZDhhZmVmZWQwYmRhOTdkNmM0OTMwYjggTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFp bC5jb20+Ci1EYXRlOiBNb24sIDE4IE1heSAyMDI2IDE3OjA1OjExICswOTAwCi1TdWJqZWN0OiBb UEFUQ0ggMS85XSBjbGllbnQvd2F5bGFuZDogRml4IGxhdGNoIGtleSBpbiBMYXR2aWFuKHRpbGRl KSBrZXltYXAKK0RhdGU6IFdlZCwgMTcgSnVuIDIwMjYgMTk6NDk6MzEgKzA5MDAKK1N1YmplY3Q6 IFtQQVRDSCAxLzRdIGNsaWVudC93YXlsYW5kOiBGaXggbGF0Y2gga2V5IGluIExhdHZpYW4odGls ZGUpIGtleW1hcAogCiAibHYodGlsZGUpIiBrZXltYXAgaGFzIGBJU09fTGV2ZWwzX0xhdGNoYCBh bmQgdGhlcmUgYXJlIHNldmVyYWwgaXNzdWVzLgogMS4gS0RFIFdheWxhbmQgZG9lcyBub3QgaGFu ZGxlIGBJU09fTGV2ZWwzX0xhdGNoYCBrZXlzeW0gYnV0IG91dHB1dHMgdGhlCkBAIC0yNCwxNyAr MjQsMTcgQEAgU3ViamVjdDogW1BBVENIIDEvOV0gY2xpZW50L3dheWxhbmQ6IEZpeCBsYXRjaCBr ZXkgaW4gTGF0dmlhbih0aWxkZSkga2V5bWFwCiA2LiBGaXggdG8gY2xlYXIgbW9kaWZpZXJzIHdp dGggdGhlIGtleSByZWxlYXNlIG9mIFNoaWZ0ICsgTGF0Y2gga2V5LgogNy4gU2F2ZSBDYXBzTG9j ayBzdGF0ZQogCi1GaXhlczogaHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9jb21taXQvMDEw NDQ4NgorRml4ZXM6IDAxMDQ0ODYKIENsb3NlczogcmhieiMyNDQ0MDA5CiAtLS0KLSBjbGllbnQv d2F5bGFuZC9pYnVzd2F5bGFuZGltLmMgfCAyNzkgKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDI0MyBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlvbnMo LSkKKyBjbGllbnQvd2F5bGFuZC9pYnVzd2F5bGFuZGltLmMgfCAzMDQgKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDI0OCBpbnNlcnRpb25zKCspLCA1 NiBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL2NsaWVudC93YXlsYW5kL2lidXN3YXlsYW5k aW0uYyBiL2NsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYwotaW5kZXggMzY3YjA3YzUuLmZh NzJjZTRlIDEwMDY0NAoraW5kZXggZDdkMTJkMDUuLjIzN2Y1MGVmIDEwMDY0NAogLS0tIGEvY2xp ZW50L3dheWxhbmQvaWJ1c3dheWxhbmRpbS5jCiArKysgYi9jbGllbnQvd2F5bGFuZC9pYnVzd2F5 bGFuZGltLmMKLUBAIC0zOSw2ICszOSw5IEBACitAQCAtNDAsNiArNDAsOSBAQAogICNpbmNsdWRl ICJ2aXJ0dWFsLWtleWJvYXJkLXVuc3RhYmxlLXYxLWNsaWVudC1wcm90b2NvbC5oIgogICNpbmNs dWRlICJpYnVzd2F5bGFuZGltLmgiCiAgCkBAIC00NCw3ICs0NCw3IEBAIGluZGV4IDM2N2IwN2M1 Li5mYTcyY2U0ZSAxMDA2NDQKICBlbnVtIHsKICAgICAgUFJPUF8wID0gMCwKICAgICAgUFJPUF9C VVMsCi1AQCAtMTI1LDYgKzEyOCw3IEBAIHN0cnVjdCBfSUJ1c1dheWxhbmRJTVByaXZhdGUKK0BA IC0xNDYsNiArMTQ5LDcgQEAgc3RydWN0IF9JQnVzV2F5bGFuZElNUHJpdmF0ZQogICAgICBndWlu dCBwcmVlZGl0X2N1cnNvcl9wb3M7CiAgICAgIGd1aW50IHByZWVkaXRfbW9kZTsKICAgICAgSUJ1 c01vZGlmaWVyVHlwZSBtb2RpZmllcnM7CkBAIC01Miw3ICs1Miw3IEBAIGluZGV4IDM2N2IwN2M1 Li5mYTcyY2U0ZSAxMDA2NDQKICAgICAgZ2Jvb2xlYW4gaGlkaW5nX3ByZWVkaXRfdGV4dDsKICAg ICAgSUJ1c0lucHV0SGludHMgaWJ1c19oaW50czsKICAgICAgSUJ1c0lucHV0UHVycG9zZSBpYnVz X3B1cnBvc2U7Ci1AQCAtMTk1LDEwICsxOTksNiBAQCBzdGF0aWMgY2hhciBfdXNlX3N5bmNfbW9k ZSA9IDE7CitAQCAtMjAzLDEwICsyMDcsNiBAQCBzdGF0aWMgY2hhciBfdXNlX3N5bmNfbW9kZSA9 IDE7CiAgCiAgc3RhdGljIGd1aW50IHdheWxhbmRfaW1fc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7 IDAgfTsKICAKQEAgLTYzLDcgKzYzLDcgQEAgaW5kZXggMzY3YjA3YzUuLmZhNzJjZTRlIDEwMDY0 NAogIHN0YXRpYyBHT2JqZWN0ICAgICAqaWJ1c193YXlsYW5kX2ltX2NvbnN0cnVjdG9yICAgICAg ICAoR1R5cGUgICAgICAgICAgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgIG5fcGFyYW1zLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR09iamVj dENvbnN0cnVjdFBhcmFtCi1AQCAtMjIwLDYgKzIyMCwxOSBAQCBzdGF0aWMgZ2Jvb2xlYW4gICAg IGlidXNfd2F5bGFuZF9pbV9wb3N0X2tleSAgICAgICAgICAgKElCdXNXYXlsYW5kSU0gKndsaW0s CitAQCAtMjI4LDYgKzIyOCwxOSBAQCBzdGF0aWMgZ2Jvb2xlYW4gICAgIGlidXNfd2F5bGFuZF9p bV9wb3N0X2tleSAgICAgICAgICAgKElCdXNXYXlsYW5kSU0gKndsaW0sCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4a2Jfa2V5c3ltX3Qg ICBzeW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBnYm9vbGVhbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZCk7CkBAIC04Myw3OSArODMs MjMgQEAgaW5kZXggMzY3YjA3YzUuLmZhNzJjZTRlIDEwMDY0NAogIAogIAogIHN0YXRpYyBjaGFy Ci1AQCAtMTA5OCw2ICsxMTExLDcgQEAgaWJ1c193YXlsYW5kX2ltX3VwZGF0ZV94a2Jfc3RhdGUg KElCdXNXYXlsYW5kSU0gICAgICp3bGltLAotICAgICAgICAgeGtiX2tleW1hcF91bnJlZiAocHJp di0+a2V5bWFwKTsKLSAgICAgcHJpdi0+a2V5bWFwID0ga2V5bWFwOwotICAgICBwcml2LT5zdGF0 ZSA9IHN0YXRlOwotKwotICAgICByZXR1cm4gVFJVRTsKLSB9Ci0gCi1AQCAtMTExOSw3ICsxMTMz LDE0IEBAIF9idXNfZ2xvYmFsX2VuZ2luZV9jaGFuZ2VkX2NiIChJQnVzQnVzICAgICAgICpidXMs Ci0gICAgIGdfYXNzZXJ0ICghZ19zdHJjbXAwIChpYnVzX2VuZ2luZV9kZXNjX2dldF9uYW1lIChk ZXNjKSwgZW5naW5lX25hbWUpKTsKK0BAIC0xMTI5LDcgKzExNDIsMTQgQEAgX2J1c19nbG9iYWxf ZW5naW5lX2NoYW5nZWRfY2IgKElCdXNCdXMgICAgICAgKmJ1cywKICAgICAga2V5bWFwID0gY3Jl YXRlX3VzZXJfeGtiX2tleW1hcCAocHJpdi0+eGtiX2NvbnRleHQsIGRlc2MpOwotICAgICBpZiAo a2V5bWFwICYmICFpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3hrYl9zdGF0ZSAod2xpbSwga2V5bWFw KSkKKyAgICAgaWYgKGtleW1hcCAmJiAhaWJ1c194a2Jfa2V5bWFwX3VwZGF0ZV93aXRoX2tleW1h cCAoJnByaXYtPmtleV91c2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBrZXltYXApKSB7CiAtICAgICAgICB4a2Jfa2V5bWFwX3VucmVm IChrZXltYXApOwogKyAgICAgICAgZ19jbGVhcl9wb2ludGVyICgma2V5bWFwLCB4a2Jfa2V5bWFw X3VucmVmKTsKKysgICAgfQogKyAgICBpZiAocHJpdi0+dmVyYm9zZSkgewogKyAgICAgICAgZnBy aW50ZiAocHJpdi0+bG9nLCAiTmV3IGVuZ2luZTolcyBrZXltYXA6JXMgc3RhdGU6JXNcbiIsCiAr ICAgICAgICAgICAgICAgICBpYnVzX2VuZ2luZV9kZXNjX2dldF9uYW1lIChkZXNjKSwKICsgICAg ICAgICAgICAgICAgIGtleW1hcCA/ICJUUlVFIiA6ICJGQUxTRSIsCi0rICAgICAgICAgICAgICAg ICBwcml2LT5zdGF0ZSA/ICJUUlVFIiA6ICJGQUxTRSIpOworKyAgICAgICAgICAgICAgICAgcHJp di0+a2V5X3VzZXIuc3RhdGUgPyAiVFJVRSIgOiAiRkFMU0UiKTsKICsgICAgICAgIGZmbHVzaCAo cHJpdi0+bG9nKTsKLSsgICAgfQotICAgICBnX29iamVjdF91bnJlZiAoZGVzYyk7Ci0gfQotIAot QEAgLTExMzQsNiArMTE1NSw4IEBAIGlucHV0X21ldGhvZF9rZXlib2FyZF9rZXltYXAgKHZvaWQg ICAgICAgICAgICAgICAgICAgICAgKmRhdGEsCi0gICAgIElCdXNXYXlsYW5kSU0gKndsaW0gPSBk YXRhOwotICAgICBJQnVzV2F5bGFuZElNUHJpdmF0ZSAqcHJpdjsKLSAgICAgc3RydWN0IHhrYl9r ZXltYXAgKmtleW1hcDsKLSsgICAgc3RydWN0IHhrYl9zdGF0ZSAqcHJldl9zdGF0ZSA9IE5VTEw7 Ci0rICAgIGdib29sZWFuIGhhc19uZXdfc3RhdGUgPSBGQUxTRTsKLSAKLSAgICAgaWYgKCFJQlVT X0lTX1dBWUxBTkRfSU0gKHdsaW0pKSB7Ci0gICAgICAgICBjbG9zZSAoZmQpOwotQEAgLTExNTgs MTAgKzExODEsMzUgQEAgaW5wdXRfbWV0aG9kX2tleWJvYXJkX2tleW1hcCAodm9pZCAgICAgICAg ICAgICAgICAgICAgICAqZGF0YSwKLSAgICAgICAgIHJldHVybjsKICAgICAgfQotICAgICBrZXlt YXAgPSBjcmVhdGVfc3lzdGVtX3hrYl9rZXltYXAgKHByaXYtPnhrYl9jb250ZXh0LCBmb3JtYXQs IGZkLCBzaXplKTsKLS0gICAgaWYgKGtleW1hcCAmJiAhaWJ1c193YXlsYW5kX2ltX3VwZGF0ZV94 a2Jfc3RhdGUgKHdsaW0sIGtleW1hcCkpCi0tICAgICAgICB4a2Jfa2V5bWFwX3VucmVmIChrZXlt YXApOwotICAgICBpZiAocHJpdi0+c3RhdGUpCi0tICAgICAgICBwcml2LT5zdGF0ZV9zeXN0ZW0g PSB4a2Jfc3RhdGVfcmVmIChwcml2LT5zdGF0ZSk7Ci0rICAgICAgICBwcmV2X3N0YXRlID0geGti X3N0YXRlX3JlZiAocHJpdi0+c3RhdGUpOwotKyAgICBpZiAoa2V5bWFwKQotKyAgICAgICAgaGFz X25ld19zdGF0ZSA9IGlidXNfd2F5bGFuZF9pbV91cGRhdGVfeGtiX3N0YXRlICh3bGltLCBrZXlt YXApOwotKyAgICBpZiAocHJpdi0+c3RhdGUpIHsKLSsgICAgICAgIGlmIChoYXNfbmV3X3N0YXRl KSB7Ci0rICAgICAgICAgICAgcHJpdi0+c3RhdGVfc3lzdGVtID0geGtiX3N0YXRlX3JlZiAocHJp di0+c3RhdGUpOwotKyAgICAgICAgICAgIC8qIHByZXYtPnN0YXRlIGlzIHVzZXIgcHJldi0+c3Rh dGVfc3lzdGVtIGlzIHN5c3RlbSAqLwotKyAgICAgICAgICAgIGlmIChwcmV2X3N0YXRlKSB7Ci0r ICAgICAgICAgICAgICAgIHhrYl9zdGF0ZV91bnJlZiAocHJpdi0+c3RhdGUpOwotKyAgICAgICAg ICAgICAgICBwcml2LT5zdGF0ZSA9IHByZXZfc3RhdGU7Ci0rICAgICAgICAgICAgfQotKyAgICAg ICAgfSBlbHNlIHsKLSsgICAgICAgICAgICBpZiAocHJldl9zdGF0ZSkKLSsgICAgICAgICAgICAg ICAgeGtiX3N0YXRlX3VucmVmIChwcmV2X3N0YXRlKTsKLSsgICAgICAgICAgICBpZiAoa2V5bWFw KQotKyAgICAgICAgICAgICAgICBnX2NsZWFyX3BvaW50ZXIgKCZrZXltYXAsIHhrYl9rZXltYXBf dW5yZWYpOwotKyAgICAgICAgfQotKyAgICB9IGVsc2UgaWYgKGtleW1hcCkgewotKyAgICAgICAg Z19jbGVhcl9wb2ludGVyICgma2V5bWFwLCB4a2Jfa2V5bWFwX3VucmVmKTsKLSsgICAgfQotKyAg ICBpZiAocHJpdi0+dmVyYm9zZSkgewotKyAgICAgICAgZnByaW50ZiAocHJpdi0+bG9nLCAiU3lz dGVtIGtleW1hcCBmb3JtYXQ6JXUgZmQ6JWQgc2l6ZToldSAiCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJrZXltYXA6JXMgc3RhdGU6JXNcbiIsCi0rICAgICAgICAgICAgICAgICBmb3Jt YXQsIGZkLCBzaXplLAotKyAgICAgICAgICAgICAgICAga2V5bWFwID8gIlRSVUUiIDogIkZBTFNF IiwKLSsgICAgICAgICAgICAgICAgIHByaXYtPnN0YXRlID8gIlRSVUUiIDogIkZBTFNFIik7Ci0r ICAgICAgICBmZmx1c2ggKHByaXYtPmxvZyk7Ci0rICAgIH0KKyAgICAgZ19vYmplY3RfdW5yZWYg KGRlc2MpOwogIH0KLSAKLSAKLUBAIC0xMTk5LDYgKzEyNDcsNyBAQCBfZ2V0X3NlYXRfd2l0aF9u YW1lIChHUHRyQXJyYXkgKnNlYXRzLAorQEAgLTEyNTMsNiArMTI3Myw3IEBAIF9nZXRfc2VhdF93 aXRoX25hbWUgKEdQdHJBcnJheSAqc2VhdHMsCiAgICAgIHJldHVybiBOVUxMOwogIH0KICAKQEAg LTE2MywxMCArMTA3LDEwIEBAIGluZGV4IDM2N2IwN2M1Li5mYTcyY2U0ZSAxMDA2NDQKICBzdGF0 aWMgZ2Jvb2xlYW4KICBpYnVzX3dheWxhbmRfaW1fcG9zdF9rZXkgKElCdXNXYXlsYW5kSU0gKnds aW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICBrZXksCi1AQCAt MTIwOCw4ICsxMjU3LDEzIEBAIGlidXNfd2F5bGFuZF9pbV9wb3N0X2tleSAoSUJ1c1dheWxhbmRJ TSAqd2xpbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgIGZpbHRl cmVkKQorQEAgLTEyNjMsOCArMTI4NCwxMyBAQCBpYnVzX3dheWxhbmRfaW1fcG9zdF9rZXkgKElC dXNXYXlsYW5kSU0gKndsaW0sCiAgewogICAgICBJQnVzV2F5bGFuZElNUHJpdmF0ZSAqcHJpdjsK KyAgICAgSUJ1c1hrYktleW1hcCAqYWN0aXZlX2tleTsKICsgICAgeGtiX21vZF9tYXNrX3QgbW9k c19kZXByZXNzZWQgPSAwLCBuZXdfbW9kc19kZXByZXNzZWQgPSAwOwogKyAgICB4a2JfbW9kX21h c2tfdCBtb2RzX2xvY2tlZDsKICsgICAgeGtiX2xheW91dF9pbmRleF90ICBncm91cDsKQEAgLTE3 NywyMCArMTIxLDIwIEBAIGluZGV4IDM2N2IwN2M1Li5mYTcyY2U0ZSAxMDA2NDQKICAKICAgICAg Z19yZXR1cm5fdmFsX2lmX2ZhaWwgKElCVVNfSVNfV0FZTEFORF9JTSAod2xpbSksIEZBTFNFKTsK ICAgICAgcHJpdiA9IGlidXNfd2F5bGFuZF9pbV9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAod2xpbSk7 Ci1AQCAtMTIyOSwzOSArMTI4MywxMjMgQEAgaWJ1c193YXlsYW5kX2ltX3Bvc3Rfa2V5IChJQnVz V2F5bGFuZElNICp3bGltLAotICAgICB9Ci0gICAgIGlmICghcHJpdi0+c3RhdGUpCitAQCAtMTI4 OCw0OSArMTMxNCwxMzIgQEAgaWJ1c193YXlsYW5kX2ltX3Bvc3Rfa2V5IChJQnVzV2F5bGFuZElN ICp3bGltLAorICAgICAgICAgYWN0aXZlX2tleSA9ICZwcml2LT5rZXlfdXNlcjsKKyAgICAgaWYg KCFhY3RpdmVfa2V5LT5zdGF0ZSkKICAgICAgICAgIHJldHVybiBGQUxTRTsKLSsgICAgbW9kc19k ZXByZXNzZWQgPSB4a2Jfc3RhdGVfc2VyaWFsaXplX21vZHMgKHByaXYtPnN0YXRlLAorKyAgICBt b2RzX2RlcHJlc3NlZCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbW9kcyAoYWN0aXZlX2tleS0+c3Rh dGUsCiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYS0Jf U1RBVEVfREVQUkVTU0VEIHwKICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFhLQl9TVEFURV9MQVRDSEVEKTsKICsgICAgbmV3X21vZHNfZGVwcmVzc2VkID0g bW9kc19kZXByZXNzZWQ7Ci0rICAgIG1vZHNfbG9ja2VkID0geGtiX3N0YXRlX3NlcmlhbGl6ZV9t b2RzIChwcml2LT5zdGF0ZSwKKysgICAgbW9kc19sb2NrZWQgPSB4a2Jfc3RhdGVfc2VyaWFsaXpl X21vZHMgKGFjdGl2ZV9rZXktPnN0YXRlLAogKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgWEtCX1NUQVRFX01PRFNfTE9DS0VEKTsKICsgICAgLyogWEtCIGdyb3Vw IGxheW91dCBpcyBjb25maWd1cmVkIGluIHRoZSBzeXN0ZW0ga2V5bWFwIGJ1dCBub3QgdGhlCiAr ICAgICAqIHVzZXIga2V5bWFwIHdoaWNoIGFsd2F5cyBpbmNsdWRlcyBhIHNpbmdsZSBsYXlvdXQu CiArICAgICAqLwotKyAgICBncm91cCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbGF5b3V0IChwcml2 LT5zdGF0ZV9zeXN0ZW0sCisrICAgIGdyb3VwID0geGtiX3N0YXRlX3NlcmlhbGl6ZV9sYXlvdXQg KHByaXYtPmtleV9zeXMuc3RhdGUsCiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFhLQl9TVEFURV9MQVlPVVRfTE9DS0VEKTsKICAgICAgaWYgKCFmaWx0ZXJlZCkgewog LSNpZiAwCkBAIC0yMDEsNyArMTQ1LDcgQEAgaW5kZXggMzY3YjA3YzUuLmZhNzJjZTRlIDEwMDY0 NAogLSAgICAgICAgICAgIGZpbHRlcmVkID0gVFJVRTsKIC0gICAgICAgIH0KIC0jZWxzZQotKyAg ICAgICAgc3lzdGVtX3N5bSA9IHhrYl9zdGF0ZV9rZXlfZ2V0X29uZV9zeW0gKHByaXYtPnN0YXRl X3N5c3RlbSwgY29kZSk7CisrICAgICAgICBzeXN0ZW1fc3ltID0geGtiX3N0YXRlX2tleV9nZXRf b25lX3N5bSAocHJpdi0+a2V5X3N5cy5zdGF0ZSwgY29kZSk7CiAgICAgICAgICBzd2l0Y2ggKHN5 bSkgewogLSAgICAgICAgY2FzZSBJQlVTX0lTT19MZXZlbDJfTGF0Y2g6CiAtICAgICAgICBjYXNl IElCVVNfSVNPX0xldmVsM19MYXRjaDoKQEAgLTIxNSw3ICsxNTksNyBAQCBpbmRleCAzNjdiMDdj NS4uZmE3MmNlNGUgMTAwNjQ0CiArICAgICAgICBjYXNlIElCVVNfS0VZX0lTT19MZXZlbDNfTGF0 Y2g6CiArICAgICAgICBjYXNlIElCVVNfS0VZX0lTT19MZXZlbDNfU2hpZnQ6CiArICAgICAgICAg ICAgaWYgKHN0YXRlID09IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9QUkVTU0VEKSB7Ci0rICAgICAg ICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCB8PSBwcml2LT5tb2Q1X21hc2s7CisrICAgICAg ICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCB8PSBhY3RpdmVfa2V5LT5tb2Q1X21hc2s7CiAr ICAgICAgICAgICAgICAgIGlmIChzeW0gIT0gc3lzdGVtX3N5bSkKICsgICAgICAgICAgICAgICAg ICAgIHByaXYtPmlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGUgPSBUUlVFOwogKyAgICAgICAgICAgICAg ICBmaWx0ZXJlZCA9IFRSVUU7CkBAIC0yMjYsNyArMTcwLDcgQEAgaW5kZXggMzY3YjA3YzUuLmZh NzJjZTRlIDEwMDY0NAogKyAgICAgICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2ZWw1X0xhdGNoOgog KyAgICAgICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2ZWw1X1NoaWZ0OgogKyAgICAgICAgICAgIGlm IChzdGF0ZSA9PSBXTF9LRVlCT0FSRF9LRVlfU1RBVEVfUFJFU1NFRCkgewotKyAgICAgICAgICAg ICAgICBuZXdfbW9kc19kZXByZXNzZWQgfD0gcHJpdi0+bW9kM19tYXNrOworKyAgICAgICAgICAg ICAgICBuZXdfbW9kc19kZXByZXNzZWQgfD0gYWN0aXZlX2tleS0+bW9kM19tYXNrOwogKyAgICAg ICAgICAgICAgICBpZiAoc3ltICE9IHN5c3RlbV9zeW0pCiArICAgICAgICAgICAgICAgICAgICBw cml2LT5pc192aXJ0dWFsX2xhdGNoX3N0YXRlID0gVFJVRTsKICsgICAgICAgICAgICAgICAgZmls dGVyZWQgPSBUUlVFOwpAQCAtMjM1LDkgKzE3OSw5IEBAIGluZGV4IDM2N2IwN2M1Li5mYTcyY2U0 ZSAxMDA2NDQKICsgICAgICAgIGNhc2UgSUJVU19LRVlfU2hpZnRfTDoKICsgICAgICAgIGNhc2Ug SUJVU19LRVlfU2hpZnRfUjoKICsgICAgICAgICAgICBpZiAoc3RhdGUgPT0gV0xfS0VZQk9BUkRf S0VZX1NUQVRFX1BSRVNTRUQpCi0rICAgICAgICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCB8 PSBwcml2LT5zaGlmdF9tYXNrOworKyAgICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQg fD0gYWN0aXZlX2tleS0+c2hpZnRfbWFzazsKICsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAg ICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCAmPSB+cHJpdi0+c2hpZnRfbWFzazsKKysgICAgICAg ICAgICAgICAgbmV3X21vZHNfZGVwcmVzc2VkICY9IH5hY3RpdmVfa2V5LT5zaGlmdF9tYXNrOwog KyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZGVmYXVsdDo7CiAgICAgICAgICB9CkBAIC0y NTMsOCArMTk3LDE4IEBAIGluZGV4IDM2N2IwN2M1Li5mYTcyY2U0ZSAxMDA2NDQKICsgICAgICAg IH0KICAjZW5kaWYKICAgICAgfQotLSAgICBpZiAoIWZpbHRlcmVkICYmIChzdGF0ZSAhPSBXTF9L RVlCT0FSRF9LRVlfU1RBVEVfUkVMRUFTRUQpKSB7Ci0tICAgICAgICBjaCA9IHhrYl9zdGF0ZV9r ZXlfZ2V0X3V0ZjMyIChwcml2LT5zdGF0ZSwgY29kZSk7CistICAgIC8qIEluIGNhc2UgYHVzZV9z eXNfa2V5bWFwYCBpcyAlVFJVRSwgSUJ1cyBkb2VzIG5vdCBjb21taXQgQVNDSUkgY2hhcnMKKy0g ICAgICogYnV0IGZvcndhcmRzIHRoZSBrZXkgZXZlbnRzIHRvIHRoZSBmb2N1c2VkIGFwcGxpY2F0 aW9uIGhlcmUuCistICAgICAqIEJlY2F1c2Ugc29tZSBhcHBsaWNhdGlvbnMgdHJlYXQgdGhlIHBy aW50YWJsZSBrZXlzIGFzIGNvbnRyb2wga2V5cywKKy0gICAgICogRS5nLiBnYW1lIGFwcHMgImhq a2wiIHVzZSB0aGUgY3Vyc29yIG1vdmUgbGlrZSBWSSBtb2RlLgorLSAgICAgKiBVbmZvcnR1bmF0 ZWx5IHRoZSBXYXlsYW5kIGlucHV0LW1ldGhvZCBwcm90b2NvbCBkb2VzIG5vdCBwcm92aWRlCist ICAgICAqIHRoZSBmYWxsYmFjayBsb2dpYyBhZnRlciBhcHBzIGhhbmRsZSB0aGUga2V5IGV2ZW50 cyBsaWtlIEdUSzMvMgorLSAgICAgKiBJTSBtb2R1bGVzLiBCdXQgVGhlIGlucHV0LW1ldGhvZCBh bHdheXMgc2hvdWxkIGhhbmRsZXMga2V5IGV2ZW50cworLSAgICAgKiBwcmlvciB0byBhcHBzLgor LSAgICAgKi8KKy0gICAgaWYgKCFmaWx0ZXJlZCAmJiAoc3RhdGUgIT0gV0xfS0VZQk9BUkRfS0VZ X1NUQVRFX1JFTEVBU0VEKSAmJgorLSAgICAgICAgIXByaXYtPnVzZV9zeXNfa2V5bWFwKSB7Cist ICAgICAgICBjaCA9IHhrYl9zdGF0ZV9rZXlfZ2V0X3V0ZjMyIChhY3RpdmVfa2V5LT5zdGF0ZSwg Y29kZSk7CiAtICAgICAgICBpZiAoIShtb2RpZmllcnMgJiBJQlVTX01PRElGSUVSX01BU0sgJiB+ SUJVU19TSElGVF9NQVNLKSAmJgogLSAgICAgICAgICAgIGNoICYmIGNoICE9ICdcbicgJiYgY2gg IT0gJ1xiJyAmJiBjaCAhPSAnXHInICYmIGNoICE9ICdcdCcgJiYKIC0gICAgICAgICAgICBjaCAh PSAnXDAzMycgJiYgY2ggIT0gJ1x4N2YnKSB7CkBAIC0yNjUsNyArMjE5LDcgQEAgaW5kZXggMzY3 YjA3YzUuLmZhNzJjZTRlIDEwMDY0NAogKyAgICBpZiAoc3RhdGUgIT0gV0xfS0VZQk9BUkRfS0VZ X1NUQVRFX1JFTEVBU0VEKSB7CiArICAgICAgICBjaCA9IGlidXNfa2V5dmFsX3RvX3VuaWNvZGUg KHN5bSk7CiArICAgICAgICBpZiAoY2ggPT0gMCB8fCBnX3VuaWNoYXJfaXNjbnRybCAoY2gpKQot KyAgICAgICAgICAgIGNoID0geGtiX3N0YXRlX2tleV9nZXRfdXRmMzIgKHByaXYtPnN0YXRlLCBj b2RlKTsKKysgICAgICAgICAgICBjaCA9IHhrYl9zdGF0ZV9rZXlfZ2V0X3V0ZjMyIChhY3RpdmVf a2V5LT5zdGF0ZSwgY29kZSk7CiArLyogTm8gdGV4dCB3aXRoIENvbnRyb2wgJiBBbHQgJiBTdXBl ciBrZXlzICovCiArI2lmbmRlZiBHREtfV0lORE9XSU5HX1FVQVJUWgogKyMgIGRlZmluZSBfSUJV U19OT19URVhUX0lOUFVUX01PRF9NQVNLIChcCkBAIC0yNzYsNyArMjMwLDE2IEBAIGluZGV4IDM2 N2IwN2M1Li5mYTcyY2U0ZSAxMDA2NDQKICsjZW5kaWYKICsgICAgICAgIGlmICgoIWZpbHRlcmVk ICYmICEobW9kaWZpZXJzICYgX0lCVVNfTk9fVEVYVF9JTlBVVF9NT0RfTUFTSykgJiYKICsgICAg ICAgICAgICAgIWdfdW5pY2hhcl9pc2NudHJsIChjaCkpIHx8IGZpbHRlcmVkKSB7Ci0rICAgICAg ICAgICAgaWYgKCFmaWx0ZXJlZCkgeworKyAgICAgICAgLyogSW4gY2FzZSBgdXNlX3N5c19rZXlt YXBgIGlzICVUUlVFLCBJQnVzIGRvZXMgbm90IGNvbW1pdCBBU0NJSSBjaGFycworKyAgICAgICAg ICogYnV0IGZvcndhcmRzIHRoZSBrZXkgZXZlbnRzIHRvIHRoZSBmb2N1c2VkIGFwcGxpY2F0aW9u IGhlcmUuCisrICAgICAgICAgKiBCZWNhdXNlIHNvbWUgYXBwbGljYXRpb25zIHRyZWF0IHRoZSBw cmludGFibGUga2V5cyBhcyBjb250cm9sIGtleXMsCisrICAgICAgICAgKiBFLmcuIGdhbWUgYXBw cyAiaGprbCIgdXNlIHRoZSBjdXJzb3IgbW92ZSBsaWtlIFZJIG1vZGUuCisrICAgICAgICAgKiBV bmZvcnR1bmF0ZWx5IHRoZSBXYXlsYW5kIGlucHV0LW1ldGhvZCBwcm90b2NvbCBkb2VzIG5vdCBw cm92aWRlCisrICAgICAgICAgKiB0aGUgZmFsbGJhY2sgbG9naWMgYWZ0ZXIgYXBwcyBoYW5kbGUg dGhlIGtleSBldmVudHMgbGlrZSBHVEszLzIKKysgICAgICAgICAqIElNIG1vZHVsZXMuIEJ1dCBU aGUgaW5wdXQtbWV0aG9kIGFsd2F5cyBzaG91bGQgaGFuZGxlcyBrZXkgZXZlbnRzCisrICAgICAg ICAgKiBwcmlvciB0byBhcHBzLgorKyAgICAgICAgICovCisrICAgICAgICAgICAgaWYgKCFmaWx0 ZXJlZCAmJiAhcHJpdi0+dXNlX3N5c19rZXltYXApIHsKICsgICAgICAgICAgICAgICAgZ2NoYXIg YnVmZls4XSA9IHsgMCwgfTsKICsgICAgICAgICAgICAgICAgYnVmZltnX3VuaWNoYXJfdG9fdXRm OCAoY2gsIGJ1ZmYpXSA9ICdcMCc7CiArICAgICAgICAgICAgICAgIGlidXNfd2F5bGFuZF9pbV9j b21taXRfdGV4dCAod2xpbSwgYnVmZik7CkBAIC0yOTEsMTQgKzI1NCwxNCBAQCBpbmRleCAzNjdi MDdjNS4uZmE3MmNlNGUgMTAwNjQ0CiArICAgICAgICAgICAgICogSSdtIG5vdCBjbGFyaWZpZWQg d2l0aCAibGV2ZWwzKHJhbHRfc3dpdGNoKSIgaW4gdXMgWEtCIGtleW1hcHMuCiArICAgICAgICAg ICAgICovCiArICAgICAgICAgICAgaWYgKG1vZGlmaWVycyAmIElCVVNfTU9EM19NQVNLKSB7Ci0r ICAgICAgICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCAmPSB+cHJpdi0+bW9kM19tYXNrOwor KyAgICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgJj0gfmFjdGl2ZV9rZXktPm1vZDNf bWFzazsKICsgICAgICAgICAgICAgICAgY2xlYXJfdmlydHVhbF9zdGF0ZSA9IFRSVUU7CiArICAg ICAgICAgICAgfQogKyAgICAgICAgICAgIGlmIChtb2RpZmllcnMgJiBJQlVTX01PRDVfTUFTSykg ewotKyAgICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgJj0gfnByaXYtPm1vZDVfbWFz azsKKysgICAgICAgICAgICAgICAgbmV3X21vZHNfZGVwcmVzc2VkICY9IH5hY3RpdmVfa2V5LT5t b2Q1X21hc2s7CiArICAgICAgICAgICAgICAgIGNsZWFyX3ZpcnR1YWxfc3RhdGUgPSBUUlVFOwog KyAgICAgICAgICAgIH0KLSAgICAgICAgIH0KKysgICAgICAgIH0KICsjdW5kZWYgX0lCVVNfTk9f VEVYVF9JTlBVVF9NT0RfTUFTSwogKyAgICB9CiArICAgIGlmIChwcml2LT5pc192aXJ0dWFsX2xh dGNoX3N0YXRlKSB7CkBAIC0zMDgsMzMgKzI3MSwzNSBAQCBpbmRleCAzNjdiMDdjNS4uZmE3MmNl NGUgMTAwNjQ0CiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MCwKICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RzX2xv Y2tlZCwKICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91 cCk7Ci0rICAgICAgICB9CisgICAgICAgICB9CiArICAgICAgICBpZiAoY2xlYXJfdmlydHVhbF9z dGF0ZSkKICsgICAgICAgICAgICBwcml2LT5pc192aXJ0dWFsX2xhdGNoX3N0YXRlID0gRkFMU0U7 CiArICAgIH0KICsgICAgaWYgKCFwcml2LT5pc192aXJ0dWFsX2xhdGNoX3N0YXRlIHx8CiArICAg ICAgICAoc3RhdGUgIT0gV0xfS0VZQk9BUkRfS0VZX1NUQVRFX1JFTEVBU0VEKSkgewotKyAgICAg ICAgeGtiX3N0YXRlX3VwZGF0ZV9rZXkgKHByaXYtPnN0YXRlLCBjb2RlLAorKyAgICAgICAgeGti X3N0YXRlX3VwZGF0ZV9rZXkgKGFjdGl2ZV9rZXktPnN0YXRlLCBjb2RlLAogKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChzdGF0ZSA9PSBXTF9LRVlCT0FSRF9LRVlfU1RBVEVfUkVMRUFT RUQpCiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBYS0JfS0VZX1VQIDogWEtCX0tF WV9ET1dOKTsKICAgICAgfQotLSAgICB4a2Jfc3RhdGVfdXBkYXRlX2tleSAocHJpdi0+c3RhdGUs IGNvZGUsCistICAgIHhrYl9zdGF0ZV91cGRhdGVfa2V5IChhY3RpdmVfa2V5LT5zdGF0ZSwgY29k ZSwKIC0gICAgICAgICAgICAgICAgICAgICAgICAgIChzdGF0ZSA9PSBXTF9LRVlCT0FSRF9LRVlf U1RBVEVfUkVMRUFTRUQpCiAtICAgICAgICAgICAgICAgICAgICAgICAgICA/IFhLQl9LRVlfVVAg OiBYS0JfS0VZX0RPV04pOwogICAgICByZXR1cm4gZmlsdGVyZWQ7CiAgfQogIAotQEAgLTE3MDYs MTIgKzE4NDQsMzEgQEAgaW5wdXRfbWV0aG9kX2tleWJvYXJkX2tleSAodm9pZCAgICAgICAgICAg ICAgICAgICAgICAqZGF0YSwKK0BAIC0xNzc3LDEyICsxODg2LDMyIEBAIGlucHV0X21ldGhvZF9r ZXlib2FyZF9rZXkgKHZvaWQgICAgICAgICAgICAgICAgICAgICAgKmRhdGEsCiAgICAgIC8qIHhr Yl9rZXlfZ2V0X3N5bXMoKSBkb2VzIG5vdCByZXR1cm4gdGhlIGNhcGl0YWwgc3ltcyB3aXRoIFNo aWZ0IGtleS4gKi8KLSAgICAgaWYgKHByaXYtPnN0YXRlX3N5c3RlbSkKLSAgICAgICAgIGV2ZW50 LnN5bSA9IHhrYl9zdGF0ZV9rZXlfZ2V0X29uZV9zeW0gKHByaXYtPnN0YXRlX3N5c3RlbSwgY29k ZSk7Ci0tICAgIGlmIChldmVudC5zeW0gIT0gSUJVU19LRVlfTXVsdGlfa2V5KQorICAgICBpZiAo cHJpdi0+a2V5X3N5cy5zdGF0ZSkKKyAgICAgICAgIGV2ZW50LnN5bSA9IHhrYl9zdGF0ZV9rZXlf Z2V0X29uZV9zeW0gKHByaXYtPmtleV9zeXMuc3RhdGUsIGNvZGUpOworLSAgICBpZiAoZXZlbnQu c3ltICE9IElCVVNfS0VZX011bHRpX2tleSAmJiBwcml2LT5rZXlfdXNlci5zdGF0ZSkKKy0gICAg ICAgIGV2ZW50LnN5bSA9IHhrYl9zdGF0ZV9rZXlfZ2V0X29uZV9zeW0gKHByaXYtPmtleV91c2Vy LnN0YXRlLCBjb2RlKTsKICsgICAgc3dpdGNoIChldmVudC5zeW0pIHsKICsgICAgY2FzZSBJQlVT X0tFWV9NdWx0aV9rZXk6CiArICAgIGNhc2UgSUJVU19LRVlfSVNPX05leHRfR3JvdXA6CiArICAg ICAgICBicmVhazsKICsgICAgZGVmYXVsdDoKLSAgICAgICAgIGV2ZW50LnN5bSA9IHhrYl9zdGF0 ZV9rZXlfZ2V0X29uZV9zeW0gKHByaXYtPnN0YXRlLCBjb2RlKTsKKysgICAgICAgIGlmIChwcml2 LT5rZXlfdXNlci5zdGF0ZSkKKysgICAgICAgICAgICBldmVudC5zeW0gPSB4a2Jfc3RhdGVfa2V5 X2dldF9vbmVfc3ltIChwcml2LT5rZXlfdXNlci5zdGF0ZSwgY29kZSk7CiArICAgIH0KICAgICAg ZXZlbnQubW9kaWZpZXJzID0gcHJpdi0+bW9kaWZpZXJzOwogICAgICBpZiAoc3RhdGUgPT0gV0xf S0VZQk9BUkRfS0VZX1NUQVRFX1JFTEVBU0VEKQpAQCAtMzQ4LDggKzMxMyw4IEBAIGluZGV4IDM2 N2IwN2M1Li5mYTcyY2U0ZSAxMDA2NDQKICsgICAgICAgICAgICAgICAgIEdfU1RSRlVOQywKICsg ICAgICAgICAgICAgICAgIGtleV9zZXJpYWwsIHRpbWUsIGtleSwKICsgICAgICAgICAgICAgICAg IGV2ZW50LnN5bSwKLSsgICAgICAgICAgICAgICAgIHhrYl9zdGF0ZV9rZXlfZ2V0X29uZV9zeW0g KHByaXYtPnN0YXRlLCBjb2RlKSwKLSsgICAgICAgICAgICAgICAgIHhrYl9zdGF0ZV9rZXlfZ2V0 X29uZV9zeW0gKHByaXYtPnN0YXRlX3N5c3RlbSwgY29kZSksCisrICAgICAgICAgICAgICAgICB4 a2Jfc3RhdGVfa2V5X2dldF9vbmVfc3ltIChwcml2LT5rZXlfdXNlci5zdGF0ZSwgY29kZSksCisr ICAgICAgICAgICAgICAgICB4a2Jfc3RhdGVfa2V5X2dldF9vbmVfc3ltIChwcml2LT5rZXlfc3lz LnN0YXRlLCBjb2RlKSwKICsgICAgICAgICAgICAgICAgIGV2ZW50Lm1vZGlmaWVycywgc3RhdGUg PyAicHJlc3MiIDogInJlbGVhc2UiKTsKICsgICAgICAgIGZmbHVzaCAocHJpdi0+bG9nKTsKICsg ICAgfQpAQCAtMzU3LDEyICszMjIsNTIgQEAgaW5kZXggMzY3YjA3YzUuLmZhNzJjZTRlIDEwMDY0 NAogIAogICAgICBrZXlfZXZlbnRfY2hlY2tfcmVwZWF0ICh3bGltLCAmZXZlbnQpOwogICAgICBz d2l0Y2ggKF91c2Vfc3luY19tb2RlKSB7Ci1AQCAtMTc0MCwxMSArMTg5Nyw0NyBAQCBpbnB1dF9t ZXRob2Rfa2V5Ym9hcmRfbW9kaWZpZXJzICh2b2lkICAgICAgICAgICAgICAgICAgICAgICpkYXRh LAorQEAgLTE3OTYsNiArMTkyNSwyOSBAQCBpbnB1dF9tZXRob2Rfa2V5Ym9hcmRfa2V5ICh2b2lk ICAgICAgICAgICAgICAgICAgICAgICpkYXRhLAorIH0KICAKLSAgICAgZ19yZXR1cm5faWZfZmFp bCAoSUJVU19JU19XQVlMQU5EX0lNICh3bGltKSk7Ci0gICAgIHByaXYgPSBpYnVzX3dheWxhbmRf aW1fZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHdsaW0pOwotLSAgICB4a2Jfc3RhdGVfdXBkYXRlX21h c2sgKHByaXYtPnN0YXRlLCBtb2RzX2RlcHJlc3NlZCwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICBtb2RzX2xhdGNoZWQsIG1vZHNfbG9ja2VkLCAwLCAwLCBncm91cCk7CisgCisrLyoqCisr ICogaW5wdXRfbWV0aG9kX2tleWJvYXJkX21vZGlmaWVyczoKKysgKgorKyAqIFRoaXMgaXMgYSBj b21tb24gQVBJIG9mIGlucHV0X21ldGhvZF9rZXlib2FyZF9tb2RpZmllcnNfdjEoKSBhbmQKKysg KiBpbnB1dF9tZXRob2Rfa2V5Ym9hcmRfbW9kaWZpZXJzX3YyKCkuCisrICogSWYgeW91IGNvbmZp Z3VyZSBtdWx0aXBsZSBYS0IgbGF5b3V0cyBpbiB0aGUgc3lzdGVtIHdpdGgKKysgKiAvZXRjL3Zj b25zb2xlLmNvbmYgZmlsZSwgeW91IGNhbiBzd2l0Y2ggdGhlIGFjdGl2ZSBsYXlvdXQgd2l0aAor KyAqIHRoZSBYS0Igb3B0aW9ucyBhbmQgQGdyb3VwIGlzIGNoYW5nZWQgd2l0aCB0aGUgc2hvcnRj dXQga2V5IGxpa2UKKysgKiAiZ3JwOmxhbHRfbHNoaWZ0X3RvZ2dsZSIgYnV0IElmIHlvdSBjbGlj ayB0aGUga2V5Ym9hcmQgaWNvbiBpbgorKyAqIFBsYXNtYSBLREUgYW5kIGNoYW5nZSB0aGUgYWN0 aXZlIGxheW91dCB3aXRoIEdVSSwgQGdyb3VwIGlzIG5vdAorKyAqIGNoYW5nZWQgYW5kIEkgYXNz dW1lIGl0J3MgYSBidWcgWzFdLgorKyAqIEN1cnJlbnRseSB0aGVyZSBhcmUgdHdvIGNhc2VzIG9m IHRoZSBjb21iaW5hdGlvbnMgb2YgdGhlIElCdXMga2V5bWFwIGFuZAorKyAqIHRoZSBzeXN0ZW0g a2V5bWFwIHN1cHBvcnRlZCBieSBJQnVzOgorKyAqIDEuIEFsd2F5cyBTYW1lIGtleW1hcHMKKysg KiAgICBFLmcuIElCdXMga2V5bWFwIGlzICJsdih0aWxkZSkiIGFuZCBzeXN0ZW0gb25lIGlzICJs dih0aWxkZSkiCisrICogMi4gU3lzdGVtIGtleW1hcCBpcyAiVVMiIGFuZCBzd2l0Y2ggSUJ1cyBr ZXltYXBzIHdpdGggU3VwZXItc3BhY2Uga2V5CisrICogICAgRS5nLiBJQnVzIGtleW1hcCBpcyAi bHYodGlsZGUpIiBhbmQgc3lzdGVtIG9uZSBpcyAidXMiCisrICogU28geW91IHNob3VsZCB1c2Ug Ym90aCBYS0Igb3B0aW9uIGtleXMgYW5kIElCdXMgc2hvcnRjdXRrZXlzIHRvIHN3aXRjaCB0aGUK KysgKiBrZXltYXBzIHRvIGNoYW5nZSBib3RoIFhLQiBrZXltYXBzIGFuZCBJQnVzIGtleW1hcHMg YnV0IHlvdSBzaG91bGQgbm90CisrICogY2xpY2sgdGhlIGtleWJvYXJkIGljb24gaW4gS0RFLgor KyAqCisrICogWzFdIGh0dHBzOi8vYnVncy5rZGUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTgzNzEK KysgKi8KKyBzdGF0aWMgdm9pZAorIGlucHV0X21ldGhvZF9rZXlib2FyZF9tb2RpZmllcnMgKHZv aWQgICAgICAgICAgICAgICAgICAgICAgKmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IHp3cF9rZXlib2FyZF91bmlvbiAqa2V5Ym9hcmQsCitAQCAtMTgxNiwy NyArMTk2OCw1MyBAQCBpbnB1dF9tZXRob2Rfa2V5Ym9hcmRfbW9kaWZpZXJzICh2b2lkICAgICAg ICAgICAgICAgICAgICAgICpkYXRhLAorICAgICAgICAgYWN0aXZlX2tleSA9ICZwcml2LT5rZXlf c3lzOworICAgICBlbHNlCisgICAgICAgICBhY3RpdmVfa2V5ID0gJnByaXYtPmtleV91c2VyOwor LSAgICBpZiAocHJpdi0+a2V5X3VzZXIuc3RhdGUpIHsKKy0gICAgICAgIHhrYl9zdGF0ZV91cGRh dGVfbWFzayAocHJpdi0+a2V5X3VzZXIuc3RhdGUsIG1vZHNfZGVwcmVzc2VkLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtb2RzX2xhdGNoZWQsIG1vZHNfbG9ja2VkLCAwLCAwLCBn cm91cCk7CistICAgIH0KKy0gICAgLyogUHJlc3NpbmcgWEtCIGdyb3VwIGtleSBsaWtlcyBBbHRf UiB3aXRoIGdycDp0b2dnbGUgY2FsbHMKKy0gICAgICogaW5wdXRfbWV0aG9kX2tleWJvYXJkX21v ZGlmaWVycygpIHdpdGggdGhlIHVwZGF0ZWQgYGdyb3VwYAorLSAgICAgKiBhbmQgbmVlZCB0byB1 cGRhdGUgcHJpdi0+a2V5X3N5cy5zdGF0ZSB0byBzd2l0Y2ggdGhlIFhLQiBncm91cAorLSAgICAg KiBpbiB0aGUgc3lzdGVtIGtleW1hcC4KKy0gICAgICoKKy0gICAgICogWEtCIGdyb3VwIGtleSBj YW4gc3dpdGNoIGBncm91cGAgYnV0IGNsaWNraW5nIHRoZSBrZXlib2FyZCBpY29uCistICAgICAq IG9mIEtERSBkb2VzIG5vdCBjaGFuZ2UgYGdyb3VwYCBhdCBwcmVzZW50LiBNYXliZSBhIGJ1ZyBp biB0aGUKKy0gICAgICogS0RFIFdheWxhbmQgY29tcG9zaXRvci4KICsgICAgLyogRG8gbm90IHJl c2V0IExhdGNoIG1vZGlmaWVycyBieSBzeXN0ZW0gaW4gY2FzZSB0aGUgc3lzdGVtIGtleW1hcAog KyAgICAgKiBoYXMgbm8gdGhlIExhdGNoIGtleS4KICsgICAgICogSW4gY2FzZSB0aGUgdXNlciBr ZXltYXAgaXMgImx2KHRpbGRlKSIgYW5kIHRoZSBzeXN0ZW0gb25lIGlzICJ1cyIsCkBAIC0zNzMs NDMgKzM3OCw1MiBAQCBpbmRleCAzNjdiMDdjNS4uZmE3MmNlNGUgMTAwNjQ0CiArICAgICAqICJs dih0aWxkZSkiLgogKyAgICAgKiBTbyBgaXNfdmlydHVhbF9sYXRjaF9zdGF0ZWAga2VlcHMgdGhl IHZpcnR1YWwgc3RhdGUgb2YgdGhlIGxhdGNoIGtleXMKICsgICAgICogbm90IHRvIG92ZXJyaWRl IHRoZSBzdGF0ZSBvZiB0aGUgInVzIiBrZXltYXAuCi0rICAgICAqLworICAgICAgKi8KKy0gICAg aWYgKHByaXYtPmtleV9zeXMuc3RhdGUpIHsKKy0gICAgICAgIHhrYl9zdGF0ZV91cGRhdGVfbWFz ayAocHJpdi0+a2V5X3N5cy5zdGF0ZSwgbW9kc19kZXByZXNzZWQsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG1vZHNfbGF0Y2hlZCwgbW9kc19sb2NrZWQsIDAsIDAsIGdyb3VwKTsK ICsgICAgaWYgKCFwcml2LT5pc192aXJ0dWFsX2xhdGNoX3N0YXRlIHx8IGtleV9zZXJpYWwgPT0g MCkgewotKyAgICAgICAgeGtiX3N0YXRlX3VwZGF0ZV9tYXNrIChwcml2LT5zdGF0ZSwgbW9kc19k ZXByZXNzZWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHNfbGF0Y2hlZCwg bW9kc19sb2NrZWQsIDAsIDAsIGdyb3VwKTsKKysgICAgICAgIGlmIChwcml2LT5rZXlfdXNlci5z dGF0ZSkgeworKyAgICAgICAgICAgIHhrYl9zdGF0ZV91cGRhdGVfbWFzayAocHJpdi0+a2V5X3Vz ZXIuc3RhdGUsIG1vZHNfZGVwcmVzc2VkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbW9kc19sYXRjaGVkLCBtb2RzX2xvY2tlZCwgMCwgMCwgZ3JvdXApOworKyAgICAgICAg fQogKyAgICAgICAgLyogUHJlc3NpbmcgWEtCIGdyb3VwIGtleSBsaWtlcyBBbHRfUiB3aXRoIGdy cDp0b2dnbGUgY2FsbHMKICsgICAgICAgICAqIGlucHV0X21ldGhvZF9rZXlib2FyZF9tb2RpZmll cnMoKSB3aXRoIHRoZSB1cGRhdGVkIGBncm91cGAKLSsgICAgICAgICAqIGFuZCBuZWVkIHRvIHVw ZGF0ZSBwcml2LT5zdGF0ZV9zeXN0ZW0gdG8gc3dpdGNoIHRoZSBYS0IgZ3JvdXAKKysgICAgICAg ICAqIGFuZCBuZWVkIHRvIHVwZGF0ZSBwcml2LT5rZXlfc3lzLnN0YXRlIHRvIHN3aXRjaCB0aGUg WEtCIGdyb3VwCiArICAgICAgICAgKiBpbiB0aGUgc3lzdGVtIGtleW1hcC4KICsgICAgICAgICAq CiArICAgICAgICAgKiBYS0IgZ3JvdXAga2V5IGNhbiBzd2l0Y2ggYGdyb3VwYCBidXQgY2xpY2tp bmcgdGhlIGtleWJvYXJkIGljb24KICsgICAgICAgICAqIG9mIEtERSBkb2VzIG5vdCBjaGFuZ2Ug YGdyb3VwYCBhdCBwcmVzZW50LiBNYXliZSBhIGJ1ZyBpbiB0aGUKICsgICAgICAgICAqIEtERSBX YXlsYW5kIGNvbXBvc2l0b3IuCiArICAgICAgICAgKi8KLSsgICAgICAgIHhrYl9zdGF0ZV91cGRh dGVfbWFzayAocHJpdi0+c3RhdGVfc3lzdGVtLCBtb2RzX2RlcHJlc3NlZCwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbW9kc19sYXRjaGVkLCBtb2RzX2xvY2tlZCwgMCwgMCwgZ3Jv dXApOworKyAgICAgICAgaWYgKHByaXYtPmtleV9zeXMuc3RhdGUpIHsKKysgICAgICAgICAgICB4 a2Jfc3RhdGVfdXBkYXRlX21hc2sgKHByaXYtPmtleV9zeXMuc3RhdGUsIG1vZHNfZGVwcmVzc2Vk LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kc19sYXRjaGVkLCBtb2Rz X2xvY2tlZCwgMCwgMCwgZ3JvdXApOworKyAgICAgICAgfQorICAgICB9CisgICAgIGlmIChhY3Rp dmVfa2V5LT5zdGF0ZSkgeworKyAgICAgICAgLyogQ2Fwc0xvY2sgbmVlZHMgWEtCX1NUQVRFX01P RFNfTE9DS0VEICovCisgICAgICAgICBtYXNrID0geGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzIChh Y3RpdmVfa2V5LT5zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFhLQl9TVEFURV9ERVBSRVNTRUQgfAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgWEtCX1NUQVRFX0xBVENIRUQpOworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX0xBVENIRUQgfAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX01PRFNfTE9DS0VEKTsKICsgICAgfQot KyAgICAvKiBDYXBzTG9jayBuZWVkcyBYS0JfU1RBVEVfTU9EU19MT0NLRUQgKi8KLSAgICAgbWFz ayA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbW9kcyAocHJpdi0+c3RhdGUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFhLQl9TVEFURV9ERVBSRVNTRUQgfAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYS0JfU1RBVEVfTEFUQ0hFRCk7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhLQl9TVEFURV9MQVRDSEVEIHwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX01PRFNfTE9DS0VEKTsK ICsgICAgaWYgKHByaXYtPnZlcmJvc2UpIHsKKysgICAgICAgIHN0cnVjdCB4a2Jfc3RhdGUgKnN0 YXRlID0gYWN0aXZlX2tleS0+c3RhdGU7CiArICAgICAgICBmcHJpbnRmIChwcml2LT5sb2csICJV cGRhdGUgbW9kaWZpZXJzIHNlcmlhbDoldSBkZXByZXNzOiVYIGxhdGNoOiVYICIKICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJsb2NrOiVYIGdyb3VwOiVYIG9yaWdfZGVwcmU6JVggb3Jp Z19sYXRjaDolWCAiCiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JpZ19sb2NrOiVY XG4iLAogKyAgICAgICAgICAgICAgICAga2V5X3NlcmlhbCwgbW9kc19kZXByZXNzZWQsIG1vZHNf bGF0Y2hlZCwgbW9kc19sb2NrZWQsIGdyb3VwLAotKyAgICAgICAgICAgICAgICAgeGtiX3N0YXRl X3NlcmlhbGl6ZV9tb2RzIChwcml2LT5zdGF0ZSwgWEtCX1NUQVRFX0RFUFJFU1NFRCksCi0rICAg ICAgICAgICAgICAgICB4a2Jfc3RhdGVfc2VyaWFsaXplX21vZHMgKHByaXYtPnN0YXRlLCBYS0Jf U1RBVEVfTEFUQ0hFRCksCi0rICAgICAgICAgICAgICAgICB4a2Jfc3RhdGVfc2VyaWFsaXplX21v ZHMgKHByaXYtPnN0YXRlLCBYS0JfU1RBVEVfTU9EU19MT0NLRUQpKTsKKysgICAgICAgICAgICAg ICAgIHhrYl9zdGF0ZV9zZXJpYWxpemVfbW9kcyAoc3RhdGUsIFhLQl9TVEFURV9ERVBSRVNTRUQp LAorKyAgICAgICAgICAgICAgICAgeGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzIChzdGF0ZSwgWEtC X1NUQVRFX0xBVENIRUQpLAorKyAgICAgICAgICAgICAgICAgeGtiX3N0YXRlX3NlcmlhbGl6ZV9t b2RzIChzdGF0ZSwgWEtCX1NUQVRFX01PRFNfTE9DS0VEKSk7CiArICAgICAgICBmZmx1c2ggKHBy aXYtPmxvZyk7Ci0rICAgIH0KKyAgICAgfQogIAogICAgICBwcml2LT5tb2RpZmllcnMgPSAwOwot ICAgICBpZiAobWFzayAmIHByaXYtPnNoaWZ0X21hc2spCi1AQCAtMTc3MCw2ICsxOTYzLDkgQEAg aW5wdXRfbWV0aG9kX2tleWJvYXJkX21vZGlmaWVycyAodm9pZCAgICAgICAgICAgICAgICAgICAg ICAqZGF0YSwKLSAgICAgaWYgKG1hc2sgJiBwcml2LT5tZXRhX21hc2spCitAQCAtMTg2Myw2ICsy MDQxLDkgQEAgaW5wdXRfbWV0aG9kX2tleWJvYXJkX21vZGlmaWVycyAodm9pZCAgICAgICAgICAg ICAgICAgICAgICAqZGF0YSwKKyAgICAgaWYgKG1hc2sgJiBhY3RpdmVfa2V5LT5tZXRhX21hc2sp CiAgICAgICAgICBwcml2LT5tb2RpZmllcnMgfD0gSUJVU19NRVRBX01BU0s7CiAgCiArICAgIGlm ICgha2V5X3NlcmlhbCkKQEAgLTQxOCwxMiArNDMyLDEwIEBAIGluZGV4IDM2N2IwN2M1Li5mYTcy Y2U0ZSAxMDA2NDQKICAgICAgc3dpdGNoIChwcml2LT52ZXJzaW9uKSB7CiAgICAgIGNhc2UgSU5Q VVRfTUVUSE9EX1YxOgogICAgICAgICAgendwX2lucHV0X21ldGhvZF9jb250ZXh0X3YxX21vZGlm aWVycyAocHJpdi0+Y29udGV4dCwga2V5X3NlcmlhbCwKLUBAIC0yNzQ4LDcgKzI5NDQsMTggQEAg aWJ1c193YXlsYW5kX2ltX2NvbnN0cnVjdG9yIChHVHlwZSAgICAgICAgICAgICAgICAgIHR5cGUs Ci0gICAgIGlmIChkZXNjKQotICAgICAgICAga2V5bWFwID0gY3JlYXRlX3VzZXJfeGtiX2tleW1h cCAocHJpdi0+eGtiX2NvbnRleHQsIGRlc2MpOwotICAgICBpZiAoa2V5bWFwICYmICFpYnVzX3dh eWxhbmRfaW1fdXBkYXRlX3hrYl9zdGF0ZSAod2xpbSwga2V5bWFwKSkKLS0gICAgICAgIHhrYl9r ZXltYXBfdW5yZWYgKGtleW1hcCk7Ci0rICAgICAgICBnX2NsZWFyX3BvaW50ZXIgKCZrZXltYXAs IHhrYl9rZXltYXBfdW5yZWYpOworQEAgLTI4ODYsNiArMzA2NywxNyBAQCBpYnVzX3dheWxhbmRf aW1fY29uc3RydWN0b3IgKEdUeXBlICAgICAgICAgICAgICAgICAgdHlwZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5bWFwKSkgewor ICAgICAgICAgZ19jbGVhcl9wb2ludGVyICgma2V5bWFwLCB4a2Jfa2V5bWFwX3VucmVmKTsKKyAg ICAgfQogKyAgICBpZiAocHJpdi0+dmVyYm9zZSkgewogKyAgICAgICAgaWYgKCFkZXNjKSB7CiAr ICAgICAgICAgICAgZnByaW50ZiAocHJpdi0+bG9nLCAiQ29uc3RydWN0b3IgaGFzIE5vIGdsb2Jh bCBlbmdpbmVcbiIpOwpAQCAtNDMxLDcgKzQ0Myw3IEBAIGluZGV4IDM2N2IwN2M1Li5mYTcyY2U0 ZSAxMDA2NDQKICsgICAgICAgICAgICBmcHJpbnRmIChwcml2LT5sb2csICJDb25zdHJ1Y3RvciBl bmdpbmUgJXMga2V5bWFwOiVzIHN0YXRlOiVzXG4iLAogKyAgICAgICAgICAgICAgICAgICAgIGli dXNfZW5naW5lX2Rlc2NfZ2V0X25hbWUgKGRlc2MpLAogKyAgICAgICAgICAgICAgICAgICAgIGtl eW1hcCA/ICJUUlVFIiA6ICJGQUxTRSIsCi0rICAgICAgICAgICAgICAgICAgICAgcHJpdi0+c3Rh dGUgPyAiVFJVRSIgOiAiRkFMU0UiKTsKKysgICAgICAgICAgICAgICAgICAgICBwcml2LT5rZXlf dXNlci5zdGF0ZSA/ICJUUlVFIiA6ICJGQUxTRSIpOwogKyAgICAgICAgfQogKyAgICAgICAgZmZs dXNoIChwcml2LT5sb2cpOwogKyAgICB9CkBAIC00NDEsMjMgKzQ1MywyMyBAQCBpbmRleCAzNjdi MDdjNS4uZmE3MmNlNGUgMTAwNjQ0CiAtLSAKIDIuNTMuMAogCi1Gcm9tIDEyNzYxMTRkMTBkNzBj ZjhmNGU0ODk1MThjYWI4MmJiZTNhYzU5Y2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t IDVmZTY0MGIxNzBlMDk1NzliOGIxOTU1YzVjYWQ0YWE0YTZkMWM0NjQgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCiBGcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1E YXRlOiBGcmksIDI5IE1heSAyMDI2IDE3OjM2OjMyICswOTAwCi1TdWJqZWN0OiBbUEFUQ0ggMi85 XSBjbGllbnQvd2F5bGFuZDogUmVmYWN0b3IgaWJ1c193YXlsYW5kX2ltX3Bvc3Rfa2V5KCkKK0Rh dGU6IE1vbiwgMTUgSnVuIDIwMjYgMTE6NTA6MzggKzA5MDAKK1N1YmplY3Q6IFtQQVRDSCAyLzRd IGNsaWVudC93YXlsYW5kOiBSZWZhY3RvciBpYnVzX3dheWxhbmRfaW1fcG9zdF9rZXkoKQogCiBT ZXBhcmF0ZSAzIGZ1bmN0aW9ucy4KIAogQ2xvc2VzOiByaGJ6IzI0NDQwMDkKIC0tLQotIGNsaWVu dC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYyB8IDM0NiArKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMjI3IGluc2VydGlvbnMoKyksIDExOSBkZWxldGlv bnMoLSkKKyBjbGllbnQvd2F5bGFuZC9pYnVzd2F5bGFuZGltLmMgfCAzNzEgKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDI0MyBpbnNlcnRpb25zKCsp LCAxMjggZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9jbGllbnQvd2F5bGFuZC9pYnVzd2F5 bGFuZGltLmMgYi9jbGllbnQvd2F5bGFuZC9pYnVzd2F5bGFuZGltLmMKLWluZGV4IGZhNzJjZTRl Li40MjU1NzRiZCAxMDA2NDQKK2luZGV4IDIzN2Y1MGVmLi4yY2MyMDc5YiAxMDA2NDQKIC0tLSBh L2NsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYwogKysrIGIvY2xpZW50L3dheWxhbmQvaWJ1 c3dheWxhbmRpbS5jCi1AQCAtMzU5LDYgKzM1OSw3MSBAQCBpYnVzX3dheWxhbmRfaW1fY29tbWl0 X3RleHQgKElCdXNXYXlsYW5kSU0gKndsaW0sCitAQCAtMzY3LDYgKzM2Nyw4MSBAQCBpYnVzX3dh eWxhbmRfaW1fY29tbWl0X3RleHQgKElCdXNXYXlsYW5kSU0gKndsaW0sCiAgfQogIAogIApAQCAt NDY3LDYgKzQ3OSw3IEBAIGluZGV4IGZhNzJjZTRlLi40MjU1NzRiZCAxMDA2NDQKICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgIG1vZGlmaWVycywKICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgIHN0YXRlLAog KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4a2Jfa2V5c3ltX3QgICAgc3ltLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQnVzWGtiS2V5bWFwICAqYWN0aXZl X2tleSwKICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAg IGZpbHRlcmVkLAogKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4a2JfbW9kX21h c2tfdCAqbmV3X21vZHNfZGVwcmVzc2VkLAogKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnYm9vbGVhbiAgICAgICAqY2xlYXJfdmlydHVhbF9zdGF0ZSkKQEAgLTQ4Myw3ICs0OTYs NyBAQCBpbmRleCBmYTcyY2U0ZS4uNDI1NTc0YmQgMTAwNjQ0CiArCiArICAgIGNoID0gaWJ1c19r ZXl2YWxfdG9fdW5pY29kZSAoc3ltKTsKICsgICAgaWYgKGNoID09IDAgfHwgZ191bmljaGFyX2lz Y250cmwgKGNoKSkKLSsgICAgICAgIGNoID0geGtiX3N0YXRlX2tleV9nZXRfdXRmMzIgKHByaXYt PnN0YXRlLCBjb2RlKTsKKysgICAgICAgIGNoID0geGtiX3N0YXRlX2tleV9nZXRfdXRmMzIgKGFj dGl2ZV9rZXktPnN0YXRlLCBjb2RlKTsKICsKICsvKiBObyB0ZXh0IHdpdGggQ29udHJvbCAmIEFs dCAmIFN1cGVyIGtleXMgKi8KICsjaWZuZGVmIEdES19XSU5ET1dJTkdfUVVBUlRaCkBAIC00OTUs NyArNTA4LDE2IEBAIGluZGV4IGZhNzJjZTRlLi40MjU1NzRiZCAxMDA2NDQKICsjZW5kaWYKICsg ICAgaWYgKCghZmlsdGVyZWQgJiYgIShtb2RpZmllcnMgJiBfSUJVU19OT19URVhUX0lOUFVUX01P RF9NQVNLKSAmJgogKyAgICAgICAgICFnX3VuaWNoYXJfaXNjbnRybCAoY2gpKSB8fCBmaWx0ZXJl ZCkgewotKyAgICAgICAgaWYgKCFmaWx0ZXJlZCkgeworKyAgICAgICAgLyogSW4gY2FzZSBgdXNl X3N5c19rZXltYXBgIGlzICVUUlVFLCBJQnVzIGRvZXMgbm90IGNvbW1pdCBBU0NJSSBjaGFycwor KyAgICAgICAgICogYnV0IGZvcndhcmRzIHRoZSBrZXkgZXZlbnRzIHRvIHRoZSBmb2N1c2VkIGFw cGxpY2F0aW9uIGhlcmUuCisrICAgICAgICAgKiBCZWNhdXNlIHNvbWUgYXBwbGljYXRpb25zIHRy ZWF0IHRoZSBwcmludGFibGUga2V5cyBhcyBjb250cm9sIGtleXMsCisrICAgICAgICAgKiBFLmcu IGdhbWUgYXBwcyAiaGprbCIgdXNlIHRoZSBjdXJzb3IgbW92ZSBsaWtlIFZJIG1vZGUuCisrICAg ICAgICAgKiBVbmZvcnR1bmF0ZWx5IHRoZSBXYXlsYW5kIGlucHV0LW1ldGhvZCBwcm90b2NvbCBk b2VzIG5vdCBwcm92aWRlCisrICAgICAgICAgKiB0aGUgZmFsbGJhY2sgbG9naWMgYWZ0ZXIgYXBw cyBoYW5kbGUgdGhlIGtleSBldmVudHMgbGlrZSBHVEszLzIKKysgICAgICAgICAqIElNIG1vZHVs ZXMuIEJ1dCBUaGUgaW5wdXQtbWV0aG9kIGFsd2F5cyBzaG91bGQgaGFuZGxlcyBrZXkgZXZlbnRz CisrICAgICAgICAgKiBwcmlvciB0byBhcHBzLgorKyAgICAgICAgICovCisrICAgICAgICBpZiAo IWZpbHRlcmVkICYmICFwcml2LT51c2Vfc3lzX2tleW1hcCkgewogKyAgICAgICAgICAgIGdjaGFy IGJ1ZmZbOF0gPSB7IDAsIH07CiArICAgICAgICAgICAgYnVmZltnX3VuaWNoYXJfdG9fdXRmOCAo Y2gsIGJ1ZmYpXSA9ICdcMCc7CiArICAgICAgICAgICAgaWJ1c193YXlsYW5kX2ltX2NvbW1pdF90 ZXh0ICh3bGltLCBidWZmKTsKQEAgLTUxMCwxMyArNTMyLDEzIEBAIGluZGV4IGZhNzJjZTRlLi40 MjU1NzRiZCAxMDA2NDQKICsgICAgICAgICAqLwogKyAgICAgICAgaWYgKG1vZGlmaWVycyAmIElC VVNfTU9EM19NQVNLKSB7CiArICAgICAgICAgICAgaWYgKG5ld19tb2RzX2RlcHJlc3NlZCkKLSsg ICAgICAgICAgICAgICAgKm5ld19tb2RzX2RlcHJlc3NlZCAmPSB+cHJpdi0+bW9kM19tYXNrOwor KyAgICAgICAgICAgICAgICAqbmV3X21vZHNfZGVwcmVzc2VkICY9IH5hY3RpdmVfa2V5LT5tb2Qz X21hc2s7CiArICAgICAgICAgICAgaWYgKGNsZWFyX3ZpcnR1YWxfc3RhdGUpCiArICAgICAgICAg ICAgICAgICpjbGVhcl92aXJ0dWFsX3N0YXRlID0gVFJVRTsKICsgICAgICAgIH0KICsgICAgICAg IGlmIChtb2RpZmllcnMgJiBJQlVTX01PRDVfTUFTSykgewogKyAgICAgICAgICAgIGlmIChuZXdf bW9kc19kZXByZXNzZWQpCi0rICAgICAgICAgICAgICAgICpuZXdfbW9kc19kZXByZXNzZWQgJj0g fnByaXYtPm1vZDVfbWFzazsKKysgICAgICAgICAgICAgICAgKm5ld19tb2RzX2RlcHJlc3NlZCAm PSB+YWN0aXZlX2tleS0+bW9kNV9tYXNrOwogKyAgICAgICAgICAgIGlmIChjbGVhcl92aXJ0dWFs X3N0YXRlKQogKyAgICAgICAgICAgICAgICAqY2xlYXJfdmlydHVhbF9zdGF0ZSA9IFRSVUU7CiAr ICAgICAgICB9CkBAIC01MjksNyArNTUxLDcgQEAgaW5kZXggZmE3MmNlNGUuLjQyNTU3NGJkIDEw MDY0NAogIHN0YXRpYyB2b2lkCiAgaWJ1c193YXlsYW5kX2ltX2tleSAoSUJ1c1dheWxhbmRJTSAq d2xpbSwKICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICBrZXlfc2VyaWFsLAot QEAgLTQyMyw2ICs0ODgsMTQ2IEBAIGlidXNfd2F5bGFuZF9pbV9rZXlzeW0gKElCdXNXYXlsYW5k SU0gKndsaW0sCitAQCAtNDMxLDYgKzUwNiwxNDkgQEAgaWJ1c193YXlsYW5kX2ltX2tleXN5bSAo SUJ1c1dheWxhbmRJTSAqd2xpbSwKICB9CiAgCiAgCkBAIC01NTEsNiArNTczLDcgQEAgaW5kZXgg ZmE3MmNlNGUuLjQyNTU3NGJkIDEwMDY0NAogKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQzMl90ICAgICAgICBtb2RpZmllcnMsCiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgIHN0YXRlLAogKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhrYl9rZXlzeW1fdCAgICBzeW0s CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJ1c1hrYktleW1h cCAgKmFjdGl2ZV9rZXksCiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ2Jvb2xlYW4gICAgICAgIGZpbHRlcmVkLAogKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHhrYl9tb2RfbWFza190ICptb2RzX2RlcHJlc3NlZCkKICt7CkBAIC01 NjMsNiArNTg2LDcgQEAgaW5kZXggZmE3MmNlNGUuLjQyNTU3NGJkIDEwMDY0NAogKyAgICAgICAg cmV0dXJuIGZpbHRlcmVkOwogKwogKyAgICBnX2Fzc2VydCAoSUJVU19JU19XQVlMQU5EX0lNICh3 bGltKSk7CisrICAgIGdfYXNzZXJ0IChhY3RpdmVfa2V5KTsKICsgICAgZ19hc3NlcnQgKG1vZHNf ZGVwcmVzc2VkKTsKICsKICsgICAgcHJpdiA9IGlidXNfd2F5bGFuZF9pbV9nZXRfaW5zdGFuY2Vf cHJpdmF0ZSAod2xpbSk7CkBAIC01NzIsNyArNTk2LDcgQEAgaW5kZXggZmE3MmNlNGUuLjQyNTU3 NGJkIDEwMDY0NAogKyAgICAgICAgZ193YXJuaW5nICgiSUJ1cyBtb2RpZmllcnMgJVggaXMgZGlm ZmVyZW50IGZyb20gWEtCIGRlcHJlc3NlZCAlWCIsCiArICAgICAgICAgICAgICAgICAgIG1vZGlm aWVycywgbmV3X21vZHNfZGVwcmVzc2VkKTsKICsgICAgfQotKyAgICBzeXN0ZW1fc3ltID0geGti X3N0YXRlX2tleV9nZXRfb25lX3N5bSAocHJpdi0+c3RhdGVfc3lzdGVtLCBjb2RlKTsKKysgICAg c3lzdGVtX3N5bSA9IHhrYl9zdGF0ZV9rZXlfZ2V0X29uZV9zeW0gKHByaXYtPmtleV9zeXMuc3Rh dGUsIGNvZGUpOwogKyAgICBzd2l0Y2ggKHN5bSkgewogKyAgICBjYXNlIElCVVNfS0VZX0lTT19M ZXZlbDJfTGF0Y2g6CiArICAgICAgICBmaWx0ZXJlZCA9IFRSVUU7CkBAIC01ODMsNyArNjA3LDcg QEAgaW5kZXggZmE3MmNlNGUuLjQyNTU3NGJkIDEwMDY0NAogKyAgICBjYXNlIElCVVNfS0VZX0lT T19MZXZlbDNfTGF0Y2g6CiArICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVsM19TaGlmdDoKICsg ICAgICAgIGlmIChzdGF0ZSA9PSBXTF9LRVlCT0FSRF9LRVlfU1RBVEVfUFJFU1NFRCkgewotKyAg ICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCB8PSBwcml2LT5tb2Q1X21hc2s7CisrICAgICAg ICAgICAgbmV3X21vZHNfZGVwcmVzc2VkIHw9IGFjdGl2ZV9rZXktPm1vZDVfbWFzazsKICsgICAg ICAgICAgICBpZiAoc3ltICE9IHN5c3RlbV9zeW0pCiArICAgICAgICAgICAgICAgIHByaXYtPmlz X3ZpcnR1YWxfbGF0Y2hfc3RhdGUgPSBUUlVFOwogKyAgICAgICAgICAgIGZpbHRlcmVkID0gVFJV RTsKQEAgLTU5NCw3ICs2MTgsNyBAQCBpbmRleCBmYTcyY2U0ZS4uNDI1NTc0YmQgMTAwNjQ0CiAr ICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVsNV9MYXRjaDoKICsgICAgY2FzZSBJQlVTX0tFWV9J U09fTGV2ZWw1X1NoaWZ0OgogKyAgICAgICAgaWYgKHN0YXRlID09IFdMX0tFWUJPQVJEX0tFWV9T VEFURV9QUkVTU0VEKSB7Ci0rICAgICAgICAgICAgbmV3X21vZHNfZGVwcmVzc2VkIHw9IHByaXYt Pm1vZDNfbWFzazsKKysgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgfD0gYWN0aXZlX2tl eS0+bW9kM19tYXNrOwogKyAgICAgICAgICAgIGlmIChzeW0gIT0gc3lzdGVtX3N5bSkKICsgICAg ICAgICAgICAgICAgcHJpdi0+aXNfdmlydHVhbF9sYXRjaF9zdGF0ZSA9IFRSVUU7CiArICAgICAg ICAgICAgZmlsdGVyZWQgPSBUUlVFOwpAQCAtNjAzLDkgKzYyNyw5IEBAIGluZGV4IGZhNzJjZTRl Li40MjU1NzRiZCAxMDA2NDQKICsgICAgY2FzZSBJQlVTX0tFWV9TaGlmdF9MOgogKyAgICBjYXNl IElCVVNfS0VZX1NoaWZ0X1I6CiArICAgICAgICBpZiAoc3RhdGUgPT0gV0xfS0VZQk9BUkRfS0VZ X1NUQVRFX1BSRVNTRUQpCi0rICAgICAgICAgICAgbmV3X21vZHNfZGVwcmVzc2VkIHw9IHByaXYt PnNoaWZ0X21hc2s7CisrICAgICAgICAgICAgbmV3X21vZHNfZGVwcmVzc2VkIHw9IGFjdGl2ZV9r ZXktPnNoaWZ0X21hc2s7CiArICAgICAgICBlbHNlCi0rICAgICAgICAgICAgbmV3X21vZHNfZGVw cmVzc2VkICY9IH5wcml2LT5zaGlmdF9tYXNrOworKyAgICAgICAgICAgIG5ld19tb2RzX2RlcHJl c3NlZCAmPSB+YWN0aXZlX2tleS0+c2hpZnRfbWFzazsKICsgICAgICAgIGJyZWFrOwogKyAgICBk ZWZhdWx0OjsKICsgICAgfQpAQCAtNjMzLDYgKzY1Nyw3IEBAIGluZGV4IGZhNzJjZTRlLi40MjU1 NzRiZCAxMDA2NDQKICtpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxfeGtiX3N0YXRlIChJ QnVzV2F5bGFuZElNICp3bGltLAogKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQzMl90ICAgICAgIGtleSwKICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICBzdGF0ZSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJQnVzWGtiS2V5bWFwICphY3RpdmVfa2V5LAogKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhrYl9tb2RfbWFza190IG1vZHNf ZGVwcmVzc2VkLAogKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhr Yl9tb2RfbWFza190IG5ld19tb2RzX2RlcHJlc3NlZCwKICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICBjbGVhcl92aXJ0dWFsX3N0YXRlKQpA QCAtNjQ1LDEyICs2NzAsMTIgQEAgaW5kZXggZmE3MmNlNGUuLjQyNTU3NGJkIDEwMDY0NAogKyAg ICBnX2Fzc2VydCAoSUJVU19JU19XQVlMQU5EX0lNICh3bGltKSk7CiArCiArICAgIHByaXYgPSBp YnVzX3dheWxhbmRfaW1fZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHdsaW0pOwotKyAgICBtb2RzX2xv Y2tlZCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbW9kcyAocHJpdi0+c3RhdGUsCisrICAgIG1vZHNf bG9ja2VkID0geGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzIChhY3RpdmVfa2V5LT5zdGF0ZSwKICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhLQl9TVEFURV9NT0RT X0xPQ0tFRCk7CiArICAgIC8qIFhLQiBncm91cCBsYXlvdXQgaXMgY29uZmlndXJlZCBpbiB0aGUg c3lzdGVtIGtleW1hcCBidXQgbm90IHRoZQogKyAgICAgKiB1c2VyIGtleW1hcCB3aGljaCBhbHdh eXMgaW5jbHVkZXMgYSBzaW5nbGUgbGF5b3V0LgogKyAgICAgKi8KLSsgICAgZ3JvdXAgPSB4a2Jf c3RhdGVfc2VyaWFsaXplX2xheW91dCAocHJpdi0+c3RhdGVfc3lzdGVtLAorKyAgICBncm91cCA9 IHhrYl9zdGF0ZV9zZXJpYWxpemVfbGF5b3V0IChwcml2LT5rZXlfc3lzLnN0YXRlLAogKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYS0JfU1RBVEVfTEFZT1VUX0xPQ0tF RCk7CiArCiArICAgIGlmIChwcml2LT5pc192aXJ0dWFsX2xhdGNoX3N0YXRlKSB7CkBAIC02NjYs NyArNjkxLDcgQEAgaW5kZXggZmE3MmNlNGUuLjQyNTU3NGJkIDEwMDY0NAogKyAgICB9CiArICAg IGlmICghcHJpdi0+aXNfdmlydHVhbF9sYXRjaF9zdGF0ZSB8fAogKyAgICAgICAgKHN0YXRlICE9 IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9SRUxFQVNFRCkpIHsKLSsgICAgICAgIHhrYl9zdGF0ZV91 cGRhdGVfa2V5IChwcml2LT5zdGF0ZSwgY29kZSwKKysgICAgICAgIHhrYl9zdGF0ZV91cGRhdGVf a2V5IChhY3RpdmVfa2V5LT5zdGF0ZSwgY29kZSwKICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoc3RhdGUgPT0gV0xfS0VZQk9BUkRfS0VZX1NUQVRFX1JFTEVBU0VEKQogKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgID8gWEtCX0tFWV9VUCA6IFhLQl9LRVlfRE9XTik7CiArICAg IH0KQEAgLTY3NiwxMCArNzAxLDEwIEBAIGluZGV4IGZhNzJjZTRlLi40MjU1NzRiZCAxMDA2NDQK ICBzdGF0aWMgdm9pZAogIF9jb250ZXh0X2NvbW1pdF90ZXh0X2NiIChJQnVzSW5wdXRDb250ZXh0 ICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICBJQnVzVGV4dCAgICAgICAgICp0 ZXh0LAotQEAgLTEyNTcsMTIgKzE0NjIsNyBAQCBpYnVzX3dheWxhbmRfaW1fcG9zdF9rZXkgKElC dXNXYXlsYW5kSU0gKndsaW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAg ICAgICBmaWx0ZXJlZCkKK0BAIC0xMjg0LDEyICsxNTAyLDcgQEAgaWJ1c193YXlsYW5kX2ltX3Bv c3Rfa2V5IChJQnVzV2F5bGFuZElNICp3bGltLAogIHsKICAgICAgSUJ1c1dheWxhbmRJTVByaXZh dGUgKnByaXY7CisgICAgIElCdXNYa2JLZXltYXAgKmFjdGl2ZV9rZXk7CiAtICAgIHhrYl9tb2Rf bWFza190IG1vZHNfZGVwcmVzc2VkID0gMCwgbmV3X21vZHNfZGVwcmVzc2VkID0gMDsKIC0gICAg eGtiX21vZF9tYXNrX3QgbW9kc19sb2NrZWQ7CiAtICAgIHhrYl9sYXlvdXRfaW5kZXhfdCAgZ3Jv dXA7CkBAIC02OTAsMTkgKzcxNSwxOSBAQCBpbmRleCBmYTcyY2U0ZS4uNDI1NTc0YmQgMTAwNjQ0 CiAgICAgIGdib29sZWFuIGNsZWFyX3ZpcnR1YWxfc3RhdGUgPSBGQUxTRTsKICAKICAgICAgZ19y ZXR1cm5fdmFsX2lmX2ZhaWwgKElCVVNfSVNfV0FZTEFORF9JTSAod2xpbSksIEZBTFNFKTsKLUBA IC0xMjg3LDExOSArMTQ4NywyNyBAQCBpYnVzX3dheWxhbmRfaW1fcG9zdF9rZXkgKElCdXNXYXls YW5kSU0gKndsaW0sCitAQCAtMTMxOCwxMjggKzE1MzEsMzAgQEAgaWJ1c193YXlsYW5kX2ltX3Bv c3Rfa2V5IChJQnVzV2F5bGFuZElNICp3bGltLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX0RFUFJFU1NFRCB8CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYS0JfU1RBVEVfTEFUQ0hFRCk7CiAg ICAgIG5ld19tb2RzX2RlcHJlc3NlZCA9IG1vZHNfZGVwcmVzc2VkOwotLSAgICBtb2RzX2xvY2tl ZCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbW9kcyAocHJpdi0+c3RhdGUsCistICAgIG1vZHNfbG9j a2VkID0geGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzIChhY3RpdmVfa2V5LT5zdGF0ZSwKIC0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhLQl9TVEFURV9NT0RTX0xP Q0tFRCk7CiAtICAgIC8qIFhLQiBncm91cCBsYXlvdXQgaXMgY29uZmlndXJlZCBpbiB0aGUgc3lz dGVtIGtleW1hcCBidXQgbm90IHRoZQogLSAgICAgKiB1c2VyIGtleW1hcCB3aGljaCBhbHdheXMg aW5jbHVkZXMgYSBzaW5nbGUgbGF5b3V0LgogLSAgICAgKi8KLS0gICAgZ3JvdXAgPSB4a2Jfc3Rh dGVfc2VyaWFsaXplX2xheW91dCAocHJpdi0+c3RhdGVfc3lzdGVtLAorLSAgICBncm91cCA9IHhr Yl9zdGF0ZV9zZXJpYWxpemVfbGF5b3V0IChwcml2LT5rZXlfc3lzLnN0YXRlLAogLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYS0JfU1RBVEVfTEFZT1VUX0xPQ0tFRCk7 CiAtICAgIGlmICghZmlsdGVyZWQpIHsKLS0gICAgICAgIHN5c3RlbV9zeW0gPSB4a2Jfc3RhdGVf a2V5X2dldF9vbmVfc3ltIChwcml2LT5zdGF0ZV9zeXN0ZW0sIGNvZGUpOworLSAgICAgICAgc3lz dGVtX3N5bSA9IHhrYl9zdGF0ZV9rZXlfZ2V0X29uZV9zeW0gKHByaXYtPmtleV9zeXMuc3RhdGUs IGNvZGUpOwogLSAgICAgICAgc3dpdGNoIChzeW0pIHsKIC0gICAgICAgIGNhc2UgSUJVU19LRVlf SVNPX0xldmVsMl9MYXRjaDoKIC0gICAgICAgICAgICBmaWx0ZXJlZCA9IFRSVUU7CkBAIC03MTMs NyArNzM4LDcgQEAgaW5kZXggZmE3MmNlNGUuLjQyNTU3NGJkIDEwMDY0NAogLSAgICAgICAgY2Fz ZSBJQlVTX0tFWV9JU09fTGV2ZWwzX0xhdGNoOgogLSAgICAgICAgY2FzZSBJQlVTX0tFWV9JU09f TGV2ZWwzX1NoaWZ0OgogLSAgICAgICAgICAgIGlmIChzdGF0ZSA9PSBXTF9LRVlCT0FSRF9LRVlf U1RBVEVfUFJFU1NFRCkgewotLSAgICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgfD0g cHJpdi0+bW9kNV9tYXNrOworLSAgICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgfD0g YWN0aXZlX2tleS0+bW9kNV9tYXNrOwogLSAgICAgICAgICAgICAgICBpZiAoc3ltICE9IHN5c3Rl bV9zeW0pCiAtICAgICAgICAgICAgICAgICAgICBwcml2LT5pc192aXJ0dWFsX2xhdGNoX3N0YXRl ID0gVFJVRTsKIC0gICAgICAgICAgICAgICAgZmlsdGVyZWQgPSBUUlVFOwpAQCAtNzI0LDcgKzc0 OSw3IEBAIGluZGV4IGZhNzJjZTRlLi40MjU1NzRiZCAxMDA2NDQKIC0gICAgICAgIGNhc2UgSUJV U19LRVlfSVNPX0xldmVsNV9MYXRjaDoKIC0gICAgICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVs NV9TaGlmdDoKIC0gICAgICAgICAgICBpZiAoc3RhdGUgPT0gV0xfS0VZQk9BUkRfS0VZX1NUQVRF X1BSRVNTRUQpIHsKLS0gICAgICAgICAgICAgICAgbmV3X21vZHNfZGVwcmVzc2VkIHw9IHByaXYt Pm1vZDNfbWFzazsKKy0gICAgICAgICAgICAgICAgbmV3X21vZHNfZGVwcmVzc2VkIHw9IGFjdGl2 ZV9rZXktPm1vZDNfbWFzazsKIC0gICAgICAgICAgICAgICAgaWYgKHN5bSAhPSBzeXN0ZW1fc3lt KQogLSAgICAgICAgICAgICAgICAgICAgcHJpdi0+aXNfdmlydHVhbF9sYXRjaF9zdGF0ZSA9IFRS VUU7CiAtICAgICAgICAgICAgICAgIGZpbHRlcmVkID0gVFJVRTsKQEAgLTczMyw5ICs3NTgsOSBA QCBpbmRleCBmYTcyY2U0ZS4uNDI1NTc0YmQgMTAwNjQ0CiAtICAgICAgICBjYXNlIElCVVNfS0VZ X1NoaWZ0X0w6CiAtICAgICAgICBjYXNlIElCVVNfS0VZX1NoaWZ0X1I6CiAtICAgICAgICAgICAg aWYgKHN0YXRlID09IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9QUkVTU0VEKQotLSAgICAgICAgICAg ICAgICBuZXdfbW9kc19kZXByZXNzZWQgfD0gcHJpdi0+c2hpZnRfbWFzazsKKy0gICAgICAgICAg ICAgICAgbmV3X21vZHNfZGVwcmVzc2VkIHw9IGFjdGl2ZV9rZXktPnNoaWZ0X21hc2s7CiAtICAg ICAgICAgICAgZWxzZQotLSAgICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgJj0gfnBy aXYtPnNoaWZ0X21hc2s7CistICAgICAgICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCAmPSB+ YWN0aXZlX2tleS0+c2hpZnRfbWFzazsKIC0gICAgICAgICAgICBicmVhazsKIC0gICAgICAgIGRl ZmF1bHQ6OwogLSAgICAgICAgfQpAQCAtNzU0LDcgKzc3OSw3IEBAIGluZGV4IGZhNzJjZTRlLi40 MjU1NzRiZCAxMDA2NDQKIC0gICAgaWYgKHN0YXRlICE9IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9S RUxFQVNFRCkgewogLSAgICAgICAgY2ggPSBpYnVzX2tleXZhbF90b191bmljb2RlIChzeW0pOwog LSAgICAgICAgaWYgKGNoID09IDAgfHwgZ191bmljaGFyX2lzY250cmwgKGNoKSkKLS0gICAgICAg ICAgICBjaCA9IHhrYl9zdGF0ZV9rZXlfZ2V0X3V0ZjMyIChwcml2LT5zdGF0ZSwgY29kZSk7Cist ICAgICAgICAgICAgY2ggPSB4a2Jfc3RhdGVfa2V5X2dldF91dGYzMiAoYWN0aXZlX2tleS0+c3Rh dGUsIGNvZGUpOwogLS8qIE5vIHRleHQgd2l0aCBDb250cm9sICYgQWx0ICYgU3VwZXIga2V5cyAq LwogLSNpZm5kZWYgR0RLX1dJTkRPV0lOR19RVUFSVFoKIC0jICBkZWZpbmUgX0lCVVNfTk9fVEVY VF9JTlBVVF9NT0RfTUFTSyAoXApAQCAtNzY1LDcgKzc5MCwxNiBAQCBpbmRleCBmYTcyY2U0ZS4u NDI1NTc0YmQgMTAwNjQ0CiAtI2VuZGlmCiAtICAgICAgICBpZiAoKCFmaWx0ZXJlZCAmJiAhKG1v ZGlmaWVycyAmIF9JQlVTX05PX1RFWFRfSU5QVVRfTU9EX01BU0spICYmCiAtICAgICAgICAgICAg ICFnX3VuaWNoYXJfaXNjbnRybCAoY2gpKSB8fCBmaWx0ZXJlZCkgewotLSAgICAgICAgICAgIGlm ICghZmlsdGVyZWQpIHsKKy0gICAgICAgIC8qIEluIGNhc2UgYHVzZV9zeXNfa2V5bWFwYCBpcyAl VFJVRSwgSUJ1cyBkb2VzIG5vdCBjb21taXQgQVNDSUkgY2hhcnMKKy0gICAgICAgICAqIGJ1dCBm b3J3YXJkcyB0aGUga2V5IGV2ZW50cyB0byB0aGUgZm9jdXNlZCBhcHBsaWNhdGlvbiBoZXJlLgor LSAgICAgICAgICogQmVjYXVzZSBzb21lIGFwcGxpY2F0aW9ucyB0cmVhdCB0aGUgcHJpbnRhYmxl IGtleXMgYXMgY29udHJvbCBrZXlzLAorLSAgICAgICAgICogRS5nLiBnYW1lIGFwcHMgImhqa2wi IHVzZSB0aGUgY3Vyc29yIG1vdmUgbGlrZSBWSSBtb2RlLgorLSAgICAgICAgICogVW5mb3J0dW5h dGVseSB0aGUgV2F5bGFuZCBpbnB1dC1tZXRob2QgcHJvdG9jb2wgZG9lcyBub3QgcHJvdmlkZQor LSAgICAgICAgICogdGhlIGZhbGxiYWNrIGxvZ2ljIGFmdGVyIGFwcHMgaGFuZGxlIHRoZSBrZXkg ZXZlbnRzIGxpa2UgR1RLMy8yCistICAgICAgICAgKiBJTSBtb2R1bGVzLiBCdXQgVGhlIGlucHV0 LW1ldGhvZCBhbHdheXMgc2hvdWxkIGhhbmRsZXMga2V5IGV2ZW50cworLSAgICAgICAgICogcHJp b3IgdG8gYXBwcy4KKy0gICAgICAgICAqLworLSAgICAgICAgICAgIGlmICghZmlsdGVyZWQgJiYg IXByaXYtPnVzZV9zeXNfa2V5bWFwKSB7CiAtICAgICAgICAgICAgICAgIGdjaGFyIGJ1ZmZbOF0g PSB7IDAsIH07CiAtICAgICAgICAgICAgICAgIGJ1ZmZbZ191bmljaGFyX3RvX3V0ZjggKGNoLCBi dWZmKV0gPSAnXDAnOwogLSAgICAgICAgICAgICAgICBpYnVzX3dheWxhbmRfaW1fY29tbWl0X3Rl eHQgKHdsaW0sIGJ1ZmYpOwpAQCAtNzgwLDExICs4MTQsMTEgQEAgaW5kZXggZmE3MmNlNGUuLjQy NTU3NGJkIDEwMDY0NAogLSAgICAgICAgICAgICAqIEknbSBub3QgY2xhcmlmaWVkIHdpdGggImxl dmVsMyhyYWx0X3N3aXRjaCkiIGluIHVzIFhLQiBrZXltYXBzLgogLSAgICAgICAgICAgICAqLwog LSAgICAgICAgICAgIGlmIChtb2RpZmllcnMgJiBJQlVTX01PRDNfTUFTSykgewotLSAgICAgICAg ICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgJj0gfnByaXYtPm1vZDNfbWFzazsKKy0gICAgICAg ICAgICAgICAgbmV3X21vZHNfZGVwcmVzc2VkICY9IH5hY3RpdmVfa2V5LT5tb2QzX21hc2s7CiAt ICAgICAgICAgICAgICAgIGNsZWFyX3ZpcnR1YWxfc3RhdGUgPSBUUlVFOwogLSAgICAgICAgICAg IH0KIC0gICAgICAgICAgICBpZiAobW9kaWZpZXJzICYgSUJVU19NT0Q1X01BU0spIHsKLS0gICAg ICAgICAgICAgICAgbmV3X21vZHNfZGVwcmVzc2VkICY9IH5wcml2LT5tb2Q1X21hc2s7CistICAg ICAgICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCAmPSB+YWN0aXZlX2tleS0+bW9kNV9tYXNr OwogLSAgICAgICAgICAgICAgICBjbGVhcl92aXJ0dWFsX3N0YXRlID0gVFJVRTsKIC0gICAgICAg ICAgICB9CiAtICAgICAgICB9CkBAIC04MDMsNyArODM3LDcgQEAgaW5kZXggZmE3MmNlNGUuLjQy NTU3NGJkIDEwMDY0NAogLSAgICB9CiAtICAgIGlmICghcHJpdi0+aXNfdmlydHVhbF9sYXRjaF9z dGF0ZSB8fAogLSAgICAgICAgKHN0YXRlICE9IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9SRUxFQVNF RCkpIHsKLS0gICAgICAgIHhrYl9zdGF0ZV91cGRhdGVfa2V5IChwcml2LT5zdGF0ZSwgY29kZSwK Ky0gICAgICAgIHhrYl9zdGF0ZV91cGRhdGVfa2V5IChhY3RpdmVfa2V5LT5zdGF0ZSwgY29kZSwK IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RhdGUgPT0gV0xfS0VZQk9BUkRfS0VZ X1NUQVRFX1JFTEVBU0VEKQogLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gWEtCX0tF WV9VUCA6IFhLQl9LRVlfRE9XTik7CiAtICAgIH0KQEAgLTgxMiw2ICs4NDYsNyBAQCBpbmRleCBm YTcyY2U0ZS4uNDI1NTc0YmQgMTAwNjQ0CiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJzLAogKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLAogKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh Y3RpdmVfa2V5LAogKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZpbHRlcmVkLAogKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZuZXdfbW9kc19kZXByZXNzZWQpOwogKyAgICBmaWx0 ZXJlZCA9IGlidXNfd2F5bGFuZF9pbV9jb21taXRfa2V5X2V2ZW50ICh3bGltLApAQCAtODE5LDEy ICs4NTQsMTQgQEAgaW5kZXggZmE3MmNlNGUuLjQyNTU3NGJkIDEwMDY0NAogKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllcnMsCiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLAogKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW0sCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZV9rZXksCiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcmVk LAogKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmV3 X21vZHNfZGVwcmVzc2VkLAogKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmY2xlYXJfdmlydHVhbF9zdGF0ZSk7CiArICAgIGlidXNfd2F5bGFuZF9pbV91 cGRhdGVfdmlydHVhbF94a2Jfc3RhdGUgKHdsaW0sCiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGtleSwKICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RhdGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFjdGl2ZV9rZXksCiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1vZHNfZGVwcmVzc2VkLAogKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQsCiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyX3ZpcnR1YWxfc3RhdGUp OwpAQCAtODM0LDY0OCArODcxLDEwIEBAIGluZGV4IGZhNzJjZTRlLi40MjU1NzRiZCAxMDA2NDQK IC0tIAogMi41My4wCiAKLUZyb20gNWVjNWE4YzQyOGNiNjRiZTY0OTFiZTFkNzY1YWI2ZTE1ZGQ3 YzE3MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVq aXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjkgTWF5IDIwMjYgMTc6NDI6NTEgKzA5MDAK LVN1YmplY3Q6IFtQQVRDSCAzLzldIGNsaWVudC93YXlsYW5kOiBTZXBhcmF0ZSBzeXN0ZW0geGti X3N0YXRlIGZyb20gdXNlciBvbmUKLQotVGhlIG1vZGlmaWVyIG1hc2tzIGNvdWxkIGJlIGRpZmZl cmVudCBieSBrZXltYXBzIHdoZW4KLXhrYl9tYXBfbW9kX2dldF9pbmRleChrZXltYXAsIC4uLikg aXMgY2FsbGVkIGFuZCBub3cgdGhlIGtleW1hcHMKLWFuZCBzdGF0ZXMgYXJlIHNlcGFyYXRlZCBi ZXR3ZWVuIHRoZSBzeXN0ZW0gYW5kIHVzZXIuCi0KLUFsc28geGtiX3N0YXRlX3JlZigpIHdvdWxk IG5vdCBiZSBnb29kIGJlY2F1c2UgdGhlIGludGVybmFsIGtleW1hcHMKLWFyZSBub3QgcmVmLWNv dW50ZWQgc28gbm93IHVzZSB4a2Jfc3RhdGVfbmV3KHhrYl9rZXltYXBfcmVmKGtleW1hcCkpCi1p bnN0ZWFkLgotCi1GaXhlczogaHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9wdWxsLzI4Njkj ZGlzY3Vzc2lvbl9yMzA5OTk2MzM4NgotLS0tCi0gY2xpZW50L3dheWxhbmQvaWJ1c3dheWxhbmRp bS5jIHwgMjc3ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFu Z2VkLCAxNjYgaW5zZXJ0aW9ucygrKSwgMTExIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEv Y2xpZW50L3dheWxhbmQvaWJ1c3dheWxhbmRpbS5jIGIvY2xpZW50L3dheWxhbmQvaWJ1c3dheWxh bmRpbS5jCi1pbmRleCA0MjU1NzRiZC4uMmMwMjI1NDggMTAwNjQ0Ci0tLS0gYS9jbGllbnQvd2F5 bGFuZC9pYnVzd2F5bGFuZGltLmMKLSsrKyBiL2NsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0u YwotQEAgLTk4LDkgKzk4LDI4IEBAIHN0cnVjdCBfSUJ1c1dheWxhbmRTZWF0Ci0gICAgIGdib29s ZWFuIGFjdGl2ZTsKLSAgICAgZ2Jvb2xlYW4gcGVuZGluZ19hY3RpdmF0ZTsKLSAgICAgZ2Jvb2xl YW4gcGVuZGluZ19kZWFjdGl2YXRlOwotLSAgICBnYm9vbGVhbiBoYXNfa2V5bWFwOwotKyAgICBn Ym9vbGVhbiBoYXNfY29tcG9zaXRvcl9rZXltYXA7Ci0gfTsKLSAKLSt0eXBlZGVmIHN0cnVjdCBf SUJ1c1hrYktleW1hcAotK3sKLSsgICAgaW50MzJfdCBmZDsKLSsgICAgc3RydWN0IHhrYl9rZXlt YXAgKmtleW1hcDsKLSsgICAgc3RydWN0IHhrYl9zdGF0ZSAqc3RhdGU7Ci0rCi0rICAgIHhrYl9t b2RfbWFza190IHNoaWZ0X21hc2s7Ci0rICAgIHhrYl9tb2RfbWFza190IGxvY2tfbWFzazsKLSsg ICAgeGtiX21vZF9tYXNrX3QgY29udHJvbF9tYXNrOwotKyAgICB4a2JfbW9kX21hc2tfdCBtb2Qx X21hc2s7Ci0rICAgIHhrYl9tb2RfbWFza190IG1vZDJfbWFzazsKLSsgICAgeGtiX21vZF9tYXNr X3QgbW9kM19tYXNrOwotKyAgICB4a2JfbW9kX21hc2tfdCBtb2Q0X21hc2s7Ci0rICAgIHhrYl9t b2RfbWFza190IG1vZDVfbWFzazsKLSsgICAgeGtiX21vZF9tYXNrX3Qgc3VwZXJfbWFzazsKLSsg ICAgeGtiX21vZF9tYXNrX3QgaHlwZXJfbWFzazsKLSsgICAgeGtiX21vZF9tYXNrX3QgbWV0YV9t YXNrOwotK30gSUJ1c1hrYktleW1hcDsKLSsKLSB0eXBlZGVmIHN0cnVjdCBfSUJ1c1dheWxhbmRJ TVByaXZhdGUgSUJ1c1dheWxhbmRJTVByaXZhdGU7Ci0gc3RydWN0IF9JQnVzV2F5bGFuZElNUHJp dmF0ZQotIHsKLUBAIC0xNDAsMjEgKzE1OSw4IEBAIHN0cnVjdCBfSUJ1c1dheWxhbmRJTVByaXZh dGUKLSAKLSAgICAgc3RydWN0IHhrYl9jb250ZXh0ICp4a2JfY29udGV4dDsKLSAKLS0gICAgc3Ry dWN0IHhrYl9rZXltYXAgKmtleW1hcDsKLS0gICAgc3RydWN0IHhrYl9zdGF0ZSAqc3RhdGU7Ci0t ICAgIHN0cnVjdCB4a2Jfc3RhdGUgKnN0YXRlX3N5c3RlbTsKLS0KLS0gICAgeGtiX21vZF9tYXNr X3Qgc2hpZnRfbWFzazsKLS0gICAgeGtiX21vZF9tYXNrX3QgbG9ja19tYXNrOwotLSAgICB4a2Jf bW9kX21hc2tfdCBjb250cm9sX21hc2s7Ci0tICAgIHhrYl9tb2RfbWFza190IG1vZDFfbWFzazsK LS0gICAgeGtiX21vZF9tYXNrX3QgbW9kMl9tYXNrOwotLSAgICB4a2JfbW9kX21hc2tfdCBtb2Qz X21hc2s7Ci0tICAgIHhrYl9tb2RfbWFza190IG1vZDRfbWFzazsKLS0gICAgeGtiX21vZF9tYXNr X3QgbW9kNV9tYXNrOwotLSAgICB4a2JfbW9kX21hc2tfdCBzdXBlcl9tYXNrOwotLSAgICB4a2Jf bW9kX21hc2tfdCBoeXBlcl9tYXNrOwotLSAgICB4a2JfbW9kX21hc2tfdCBtZXRhX21hc2s7Ci0r ICAgIElCdXNYa2JLZXltYXAga2V5X3VzZXI7Ci0rICAgIElCdXNYa2JLZXltYXAga2V5X3N5czsK LSAKLSAgICAgdWludDMyX3QgaW1fc2VyaWFsOwotICAgICBpbnQzMl90IHJlcGVhdF9yYXRlOwot QEAgLTM2NSw2ICszNzEsNyBAQCBpYnVzX3dheWxhbmRfaW1fY29tbWl0X2tleV9ldmVudCAoSUJ1 c1dheWxhbmRJTSAgKndsaW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQzMl90ICAgICAgICBtb2RpZmllcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQzMl90ICAgICAgICBzdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgeGtiX2tleXN5bV90ICAgIHN5bSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSUJ1c1hrYktleW1hcCAgKmFjdGl2ZV9rZXksCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBmaWx0ZXJlZCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeGtiX21vZF9tYXNrX3QgKm5ld19tb2RzX2RlcHJlc3NlZCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgKmNsZWFyX3Zp cnR1YWxfc3RhdGUpCi1AQCAtMzgxLDcgKzM4OCw3IEBAIGlidXNfd2F5bGFuZF9pbV9jb21taXRf a2V5X2V2ZW50IChJQnVzV2F5bGFuZElNICAqd2xpbSwKLSAKLSAgICAgY2ggPSBpYnVzX2tleXZh bF90b191bmljb2RlIChzeW0pOwotICAgICBpZiAoY2ggPT0gMCB8fCBnX3VuaWNoYXJfaXNjbnRy bCAoY2gpKQotLSAgICAgICAgY2ggPSB4a2Jfc3RhdGVfa2V5X2dldF91dGYzMiAocHJpdi0+c3Rh dGUsIGNvZGUpOwotKyAgICAgICAgY2ggPSB4a2Jfc3RhdGVfa2V5X2dldF91dGYzMiAoYWN0aXZl X2tleS0+c3RhdGUsIGNvZGUpOwotIAotIC8qIE5vIHRleHQgd2l0aCBDb250cm9sICYgQWx0ICYg U3VwZXIga2V5cyAqLwotICNpZm5kZWYgR0RLX1dJTkRPV0lOR19RVUFSVFoKLUBAIC00MDgsMTMg KzQxNSwxMyBAQCBpYnVzX3dheWxhbmRfaW1fY29tbWl0X2tleV9ldmVudCAoSUJ1c1dheWxhbmRJ TSAgKndsaW0sCi0gICAgICAgICAgKi8KLSAgICAgICAgIGlmIChtb2RpZmllcnMgJiBJQlVTX01P RDNfTUFTSykgewotICAgICAgICAgICAgIGlmIChuZXdfbW9kc19kZXByZXNzZWQpCi0tICAgICAg ICAgICAgICAgICpuZXdfbW9kc19kZXByZXNzZWQgJj0gfnByaXYtPm1vZDNfbWFzazsKLSsgICAg ICAgICAgICAgICAgKm5ld19tb2RzX2RlcHJlc3NlZCAmPSB+YWN0aXZlX2tleS0+bW9kM19tYXNr OwotICAgICAgICAgICAgIGlmIChjbGVhcl92aXJ0dWFsX3N0YXRlKQotICAgICAgICAgICAgICAg ICAqY2xlYXJfdmlydHVhbF9zdGF0ZSA9IFRSVUU7Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiAo bW9kaWZpZXJzICYgSUJVU19NT0Q1X01BU0spIHsKLSAgICAgICAgICAgICBpZiAobmV3X21vZHNf ZGVwcmVzc2VkKQotLSAgICAgICAgICAgICAgICAqbmV3X21vZHNfZGVwcmVzc2VkICY9IH5wcml2 LT5tb2Q1X21hc2s7Ci0rICAgICAgICAgICAgICAgICpuZXdfbW9kc19kZXByZXNzZWQgJj0gfmFj dGl2ZV9rZXktPm1vZDVfbWFzazsKLSAgICAgICAgICAgICBpZiAoY2xlYXJfdmlydHVhbF9zdGF0 ZSkKLSAgICAgICAgICAgICAgICAgKmNsZWFyX3ZpcnR1YWxfc3RhdGUgPSBUUlVFOwotICAgICAg ICAgfQotQEAgLTQ0NSwxMSArNDUyLDExIEBAIGlidXNfd2F5bGFuZF9pbV9rZXkgKElCdXNXYXls YW5kSU0gKndsaW0sCi0gICAgIGNhc2UgSU5QVVRfTUVUSE9EX1YyOgotICAgICAgICAgLyogd2xy b290cy90eXBlcy93bHJfdmlydHVhbF9rZXlib2FyZF92MS5jOnZpcnR1YWxfa2V5Ym9hcmRfa2V5 KCkKLSAgICAgICAgICAqIHJldHVybnMgIkNhbm5vdCBzZW5kIGEga2V5cHJlc3MgYmVmb3JlIGRl ZmluaW5nIGEga2V5bWFwIgotLSAgICAgICAgICogaWYgYGhhc19rZXltYXBgIGlzICVGQUxTRS4K LSsgICAgICAgICAqIGlmIGBoYXNfY29tcG9zaXRvcl9rZXltYXBgIGlzICVGQUxTRS4KLSAgICAg ICAgICAqLwotICAgICAgICAgaWYgKCFwcml2LT5zZWF0KQotICAgICAgICAgICAgIGJyZWFrOwot LSAgICAgICAgaWYgKHByaXYtPnNlYXQtPmhhc19rZXltYXApIHsKLSsgICAgICAgIGlmIChwcml2 LT5zZWF0LT5oYXNfY29tcG9zaXRvcl9rZXltYXApIHsKLSAgICAgICAgICAgICB6d3BfdmlydHVh bF9rZXlib2FyZF92MV9rZXkgKHByaXYtPnNlYXQtPnZpcnR1YWxfa2V5Ym9hcmQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLCBrZXksIHN0YXRlKTsKLSAg ICAgICAgIH0KLUBAIC01MDYsNiArNTEzLDcgQEAgaWJ1c193YXlsYW5kX2ltX3VwZGF0ZV92aXJ0 dWFsX2RlcHJlc3NlZCAoSUJ1c1dheWxhbmRJTSAgKndsaW0sCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgIG1vZGlmaWVycywKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICAgc3Rh dGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGtiX2tleXN5 bV90ICAgIHN5bSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ QnVzWGtiS2V5bWFwICAqYWN0aXZlX2tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgZmlsdGVyZWQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeGtiX21vZF9tYXNrX3QgKm1vZHNfZGVwcmVzc2Vk KQotIHsKLUBAIC01MTgsNiArNTI2LDcgQEAgaWJ1c193YXlsYW5kX2ltX3VwZGF0ZV92aXJ0dWFs X2RlcHJlc3NlZCAoSUJ1c1dheWxhbmRJTSAgKndsaW0sCi0gICAgICAgICByZXR1cm4gZmlsdGVy ZWQ7Ci0gCi0gICAgIGdfYXNzZXJ0IChJQlVTX0lTX1dBWUxBTkRfSU0gKHdsaW0pKTsKLSsgICAg Z19hc3NlcnQgKGFjdGl2ZV9rZXkpOwotICAgICBnX2Fzc2VydCAobW9kc19kZXByZXNzZWQpOwot IAotICAgICBwcml2ID0gaWJ1c193YXlsYW5kX2ltX2dldF9pbnN0YW5jZV9wcml2YXRlICh3bGlt KTsKLUBAIC01MjcsNyArNTM2LDcgQEAgaWJ1c193YXlsYW5kX2ltX3VwZGF0ZV92aXJ0dWFsX2Rl cHJlc3NlZCAoSUJ1c1dheWxhbmRJTSAgKndsaW0sCi0gICAgICAgICBnX3dhcm5pbmcgKCJJQnVz IG1vZGlmaWVycyAlWCBpcyBkaWZmZXJlbnQgZnJvbSBYS0IgZGVwcmVzc2VkICVYIiwKLSAgICAg ICAgICAgICAgICAgICAgbW9kaWZpZXJzLCBuZXdfbW9kc19kZXByZXNzZWQpOwotICAgICB9Ci0t ICAgIHN5c3RlbV9zeW0gPSB4a2Jfc3RhdGVfa2V5X2dldF9vbmVfc3ltIChwcml2LT5zdGF0ZV9z eXN0ZW0sIGNvZGUpOwotKyAgICBzeXN0ZW1fc3ltID0geGtiX3N0YXRlX2tleV9nZXRfb25lX3N5 bSAocHJpdi0+a2V5X3N5cy5zdGF0ZSwgY29kZSk7Ci0gICAgIHN3aXRjaCAoc3ltKSB7Ci0gICAg IGNhc2UgSUJVU19LRVlfSVNPX0xldmVsMl9MYXRjaDoKLSAgICAgICAgIGZpbHRlcmVkID0gVFJV RTsKLUBAIC01MzgsNyArNTQ3LDcgQEAgaWJ1c193YXlsYW5kX2ltX3VwZGF0ZV92aXJ0dWFsX2Rl cHJlc3NlZCAoSUJ1c1dheWxhbmRJTSAgKndsaW0sCi0gICAgIGNhc2UgSUJVU19LRVlfSVNPX0xl dmVsM19MYXRjaDoKLSAgICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2ZWwzX1NoaWZ0OgotICAgICAg ICAgaWYgKHN0YXRlID09IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9QUkVTU0VEKSB7Ci0tICAgICAg ICAgICAgbmV3X21vZHNfZGVwcmVzc2VkIHw9IHByaXYtPm1vZDVfbWFzazsKLSsgICAgICAgICAg ICBuZXdfbW9kc19kZXByZXNzZWQgfD0gYWN0aXZlX2tleS0+bW9kNV9tYXNrOwotICAgICAgICAg ICAgIGlmIChzeW0gIT0gc3lzdGVtX3N5bSkKLSAgICAgICAgICAgICAgICAgcHJpdi0+aXNfdmly dHVhbF9sYXRjaF9zdGF0ZSA9IFRSVUU7Ci0gICAgICAgICAgICAgZmlsdGVyZWQgPSBUUlVFOwot QEAgLTU0OSw3ICs1NTgsNyBAQCBpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxfZGVwcmVz c2VkIChJQnVzV2F5bGFuZElNICAqd2xpbSwKLSAgICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2ZWw1 X0xhdGNoOgotICAgICBjYXNlIElCVVNfS0VZX0lTT19MZXZlbDVfU2hpZnQ6Ci0gICAgICAgICBp ZiAoc3RhdGUgPT0gV0xfS0VZQk9BUkRfS0VZX1NUQVRFX1BSRVNTRUQpIHsKLS0gICAgICAgICAg ICBuZXdfbW9kc19kZXByZXNzZWQgfD0gcHJpdi0+bW9kM19tYXNrOwotKyAgICAgICAgICAgIG5l d19tb2RzX2RlcHJlc3NlZCB8PSBhY3RpdmVfa2V5LT5tb2QzX21hc2s7Ci0gICAgICAgICAgICAg aWYgKHN5bSAhPSBzeXN0ZW1fc3ltKQotICAgICAgICAgICAgICAgICBwcml2LT5pc192aXJ0dWFs X2xhdGNoX3N0YXRlID0gVFJVRTsKLSAgICAgICAgICAgICBmaWx0ZXJlZCA9IFRSVUU7Ci1AQCAt NTU4LDkgKzU2Nyw5IEBAIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF9kZXByZXNzZWQg KElCdXNXYXlsYW5kSU0gICp3bGltLAotICAgICBjYXNlIElCVVNfS0VZX1NoaWZ0X0w6Ci0gICAg IGNhc2UgSUJVU19LRVlfU2hpZnRfUjoKLSAgICAgICAgIGlmIChzdGF0ZSA9PSBXTF9LRVlCT0FS RF9LRVlfU1RBVEVfUFJFU1NFRCkKLS0gICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgfD0g cHJpdi0+c2hpZnRfbWFzazsKLSsgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgfD0gYWN0 aXZlX2tleS0+c2hpZnRfbWFzazsKLSAgICAgICAgIGVsc2UKLS0gICAgICAgICAgICBuZXdfbW9k c19kZXByZXNzZWQgJj0gfnByaXYtPnNoaWZ0X21hc2s7Ci0rICAgICAgICAgICAgbmV3X21vZHNf ZGVwcmVzc2VkICY9IH5hY3RpdmVfa2V5LT5zaGlmdF9tYXNrOwotICAgICAgICAgYnJlYWs7Ci0g ICAgIGRlZmF1bHQ6OwotICAgICB9Ci1AQCAtNTg4LDYgKzU5Nyw3IEBAIHN0YXRpYyB2b2lkCi0g aWJ1c193YXlsYW5kX2ltX3VwZGF0ZV92aXJ0dWFsX3hrYl9zdGF0ZSAoSUJ1c1dheWxhbmRJTSAq d2xpbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf dCAgICAgICBrZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgICAgICAgc3RhdGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSUJ1c1hrYktleW1hcCAqYWN0aXZlX2tleSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB4a2JfbW9kX21hc2tfdCBtb2RzX2RlcHJlc3NlZCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4a2JfbW9kX21hc2tfdCBu ZXdfbW9kc19kZXByZXNzZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ2Jvb2xlYW4gICAgICAgY2xlYXJfdmlydHVhbF9zdGF0ZSkKLUBAIC02MDAsMTIgKzYx MCwxMiBAQCBpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxfeGtiX3N0YXRlIChJQnVzV2F5 bGFuZElNICp3bGltLAotICAgICBnX2Fzc2VydCAoSUJVU19JU19XQVlMQU5EX0lNICh3bGltKSk7 Ci0gCi0gICAgIHByaXYgPSBpYnVzX3dheWxhbmRfaW1fZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHds aW0pOwotLSAgICBtb2RzX2xvY2tlZCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbW9kcyAocHJpdi0+ c3RhdGUsCi0rICAgIG1vZHNfbG9ja2VkID0geGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzIChhY3Rp dmVfa2V5LT5zdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFhLQl9TVEFURV9NT0RTX0xPQ0tFRCk7Ci0gICAgIC8qIFhLQiBncm91cCBsYXlvdXQgaXMg Y29uZmlndXJlZCBpbiB0aGUgc3lzdGVtIGtleW1hcCBidXQgbm90IHRoZQotICAgICAgKiB1c2Vy IGtleW1hcCB3aGljaCBhbHdheXMgaW5jbHVkZXMgYSBzaW5nbGUgbGF5b3V0LgotICAgICAgKi8K LS0gICAgZ3JvdXAgPSB4a2Jfc3RhdGVfc2VyaWFsaXplX2xheW91dCAocHJpdi0+c3RhdGVfc3lz dGVtLAotKyAgICBncm91cCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbGF5b3V0IChwcml2LT5rZXlf c3lzLnN0YXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYS0Jf U1RBVEVfTEFZT1VUX0xPQ0tFRCk7Ci0gCi0gICAgIGlmIChwcml2LT5pc192aXJ0dWFsX2xhdGNo X3N0YXRlKSB7Ci1AQCAtNjIxLDcgKzYzMSw3IEBAIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmly dHVhbF94a2Jfc3RhdGUgKElCdXNXYXlsYW5kSU0gKndsaW0sCi0gICAgIH0KLSAgICAgaWYgKCFw cml2LT5pc192aXJ0dWFsX2xhdGNoX3N0YXRlIHx8Ci0gICAgICAgICAoc3RhdGUgIT0gV0xfS0VZ Qk9BUkRfS0VZX1NUQVRFX1JFTEVBU0VEKSkgewotLSAgICAgICAgeGtiX3N0YXRlX3VwZGF0ZV9r ZXkgKHByaXYtPnN0YXRlLCBjb2RlLAotKyAgICAgICAgeGtiX3N0YXRlX3VwZGF0ZV9rZXkgKGFj dGl2ZV9rZXktPnN0YXRlLCBjb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz dGF0ZSA9PSBXTF9LRVlCT0FSRF9LRVlfU1RBVEVfUkVMRUFTRUQpCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPyBYS0JfS0VZX1VQIDogWEtCX0tFWV9ET1dOKTsKLSAgICAgfQotQEAg LTEyNzYsNDcgKzEyODYsNTMgQEAgY3JlYXRlX3N5c3RlbV94a2Jfa2V5bWFwIChzdHJ1Y3QgeGti X2NvbnRleHQgKnhrYl9jb250ZXh0LAotIAotIAotIHN0YXRpYyBnYm9vbGVhbgotLWlidXNfd2F5 bGFuZF9pbV91cGRhdGVfeGtiX3N0YXRlIChJQnVzV2F5bGFuZElNICAgICAqd2xpbSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHhrYl9rZXltYXAgKmtleW1hcCkK LStpYnVzX3hrYl9rZXltYXBfdXBkYXRlX3dpdGhfa2V5bWFwIChJQnVzWGtiS2V5bWFwICAgICAq aWJ1c19rZXltYXAsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHhrYl9rZXltYXAgKmtleW1hcCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQzMl90ICAgICAgICAgICAgZmQpCi0gewotLSAgICBJQnVzV2F5bGFuZElNUHJpdmF0ZSAq cHJpdjsKLSAgICAgc3RydWN0IHhrYl9zdGF0ZSAqc3RhdGU7Ci0gCi0tICAgIGdfcmV0dXJuX3Zh bF9pZl9mYWlsIChJQlVTX0lTX1dBWUxBTkRfSU0gKHdsaW0pLCBGQUxTRSk7Ci0tICAgIHByaXYg PSBpYnVzX3dheWxhbmRfaW1fZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHdsaW0pOwotKyAgICBnX3Jl dHVybl92YWxfaWZfZmFpbCAoaWJ1c19rZXltYXAsIEZBTFNFKTsKLSAgICAgZ19yZXR1cm5fdmFs X2lmX2ZhaWwgKGtleW1hcCwgRkFMU0UpOwotICAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoKHN0 YXRlID0geGtiX3N0YXRlX25ldyAoa2V5bWFwKSksIEZBTFNFKTsKLSAKLS0gICAgcHJpdi0+c2hp ZnRfbWFzayA9Ci0rICAgIGlmIChpYnVzX2tleW1hcC0+c3RhdGUpCi0rICAgICAgICB4a2Jfc3Rh dGVfdW5yZWYgKGlidXNfa2V5bWFwLT5zdGF0ZSk7Ci0rICAgIGlmIChpYnVzX2tleW1hcC0+a2V5 bWFwKSB7Ci0rICAgICAgICB4a2Jfa2V5bWFwX3VucmVmIChpYnVzX2tleW1hcC0+a2V5bWFwKTsK LSsgICAgICAgIGlmIChpYnVzX2tleW1hcC0+ZmQpIHsKLSsgICAgICAgICAgICBjbG9zZSAoaWJ1 c19rZXltYXAtPmZkKTsKLSsgICAgICAgICAgICBpYnVzX2tleW1hcC0+ZmQgPSAwOwotKyAgICAg ICAgfQotKyAgICB9Ci0rICAgIGlidXNfa2V5bWFwLT5rZXltYXAgPSBrZXltYXA7Ci0rICAgIGli dXNfa2V5bWFwLT5zdGF0ZSA9IHN0YXRlOwotKyAgICBpZiAoZmQgPiAwKQotKyAgICAgICAgaWJ1 c19rZXltYXAtPmZkID0gZmQ7Ci0rCi0rICAgIGlidXNfa2V5bWFwLT5zaGlmdF9tYXNrID0KLSAg ICAgICAgIDEgPDwgeGtiX21hcF9tb2RfZ2V0X2luZGV4IChrZXltYXAsICJTaGlmdCIpOwotLSAg ICBwcml2LT5sb2NrX21hc2sgPQotKyAgICBpYnVzX2tleW1hcC0+bG9ja19tYXNrID0KLSAgICAg ICAgIDEgPDwgeGtiX21hcF9tb2RfZ2V0X2luZGV4IChrZXltYXAsICJMb2NrIik7Ci0tICAgIHBy aXYtPmNvbnRyb2xfbWFzayA9Ci0rICAgIGlidXNfa2V5bWFwLT5jb250cm9sX21hc2sgPQotICAg ICAgICAgMSA8PCB4a2JfbWFwX21vZF9nZXRfaW5kZXggKGtleW1hcCwgIkNvbnRyb2wiKTsKLS0g ICAgcHJpdi0+bW9kMV9tYXNrID0KLSsgICAgaWJ1c19rZXltYXAtPm1vZDFfbWFzayA9Ci0gICAg ICAgICAxIDw8IHhrYl9tYXBfbW9kX2dldF9pbmRleCAoa2V5bWFwLCAiTW9kMSIpOwotLSAgICBw cml2LT5tb2QyX21hc2sgPQotKyAgICBpYnVzX2tleW1hcC0+bW9kMl9tYXNrID0KLSAgICAgICAg IDEgPDwgeGtiX21hcF9tb2RfZ2V0X2luZGV4IChrZXltYXAsICJNb2QyIik7Ci0tICAgIHByaXYt Pm1vZDNfbWFzayA9Ci0rICAgIGlidXNfa2V5bWFwLT5tb2QzX21hc2sgPQotICAgICAgICAgMSA8 PCB4a2JfbWFwX21vZF9nZXRfaW5kZXggKGtleW1hcCwgIk1vZDMiKTsKLS0gICAgcHJpdi0+bW9k NF9tYXNrID0KLSsgICAgaWJ1c19rZXltYXAtPm1vZDRfbWFzayA9Ci0gICAgICAgICAxIDw8IHhr Yl9tYXBfbW9kX2dldF9pbmRleCAoa2V5bWFwLCAiTW9kNCIpOwotLSAgICBwcml2LT5tb2Q1X21h c2sgPQotKyAgICBpYnVzX2tleW1hcC0+bW9kNV9tYXNrID0KLSAgICAgICAgIDEgPDwgeGtiX21h cF9tb2RfZ2V0X2luZGV4IChrZXltYXAsICJNb2Q1Iik7Ci0tICAgIHByaXYtPnN1cGVyX21hc2sg PQotKyAgICBpYnVzX2tleW1hcC0+c3VwZXJfbWFzayA9Ci0gICAgICAgICAxIDw8IHhrYl9tYXBf bW9kX2dldF9pbmRleCAoa2V5bWFwLCAiU3VwZXIiKTsKLS0gICAgcHJpdi0+aHlwZXJfbWFzayA9 Ci0rICAgIGlidXNfa2V5bWFwLT5oeXBlcl9tYXNrID0KLSAgICAgICAgIDEgPDwgeGtiX21hcF9t b2RfZ2V0X2luZGV4IChrZXltYXAsICJIeXBlciIpOwotLSAgICBwcml2LT5tZXRhX21hc2sgPQot KyAgICBpYnVzX2tleW1hcC0+bWV0YV9tYXNrID0KLSAgICAgICAgIDEgPDwgeGtiX21hcF9tb2Rf Z2V0X2luZGV4IChrZXltYXAsICJNZXRhIik7Ci0gCi0tICAgIGlmIChwcml2LT5zdGF0ZSkKLS0g ICAgICAgIHhrYl9zdGF0ZV91bnJlZiAocHJpdi0+c3RhdGUpOwotLSAgICBpZiAocHJpdi0+a2V5 bWFwKQotLSAgICAgICAgeGtiX2tleW1hcF91bnJlZiAocHJpdi0+a2V5bWFwKTsKLS0gICAgcHJp di0+a2V5bWFwID0ga2V5bWFwOwotLSAgICBwcml2LT5zdGF0ZSA9IHN0YXRlOwotLQotICAgICBy ZXR1cm4gVFJVRTsKLSB9Ci0gCi1AQCAtMTMzNywxMyArMTM1MywxNiBAQCBfYnVzX2dsb2JhbF9l bmdpbmVfY2hhbmdlZF9jYiAoSUJ1c0J1cyAgICAgICAqYnVzLAotICAgICBnX2Fzc2VydCAoZGVz Yyk7Ci0gICAgIGdfYXNzZXJ0ICghZ19zdHJjbXAwIChpYnVzX2VuZ2luZV9kZXNjX2dldF9uYW1l IChkZXNjKSwgZW5naW5lX25hbWUpKTsKLSAgICAga2V5bWFwID0gY3JlYXRlX3VzZXJfeGtiX2tl eW1hcCAocHJpdi0+eGtiX2NvbnRleHQsIGRlc2MpOwotLSAgICBpZiAoa2V5bWFwICYmICFpYnVz X3dheWxhbmRfaW1fdXBkYXRlX3hrYl9zdGF0ZSAod2xpbSwga2V5bWFwKSkKLSsgICAgaWYgKGtl eW1hcCAmJiAhaWJ1c194a2Jfa2V5bWFwX3VwZGF0ZV93aXRoX2tleW1hcCAoJnByaXYtPmtleV91 c2VyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBrZXltYXAsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDApKSB7Ci0gICAgICAgICBnX2NsZWFyX3BvaW50ZXIgKCZrZXltYXAsIHhr Yl9rZXltYXBfdW5yZWYpOwotKyAgICB9Ci0gICAgIGlmIChwcml2LT52ZXJib3NlKSB7Ci0gICAg ICAgICBmcHJpbnRmIChwcml2LT5sb2csICJOZXcgZW5naW5lOiVzIGtleW1hcDolcyBzdGF0ZTol c1xuIiwKLSAgICAgICAgICAgICAgICAgIGlidXNfZW5naW5lX2Rlc2NfZ2V0X25hbWUgKGRlc2Mp LAotICAgICAgICAgICAgICAgICAga2V5bWFwID8gIlRSVUUiIDogIkZBTFNFIiwKLS0gICAgICAg ICAgICAgICAgIHByaXYtPnN0YXRlID8gIlRSVUUiIDogIkZBTFNFIik7Ci0rICAgICAgICAgICAg ICAgICBwcml2LT5rZXlfdXNlci5zdGF0ZSA/ICJUUlVFIiA6ICJGQUxTRSIpOwotICAgICAgICAg ZmZsdXNoIChwcml2LT5sb2cpOwotICAgICB9Ci0gICAgIGdfb2JqZWN0X3VucmVmIChkZXNjKTsK LUBAIC0xMzYwLDggKzEzNzksNiBAQCBpbnB1dF9tZXRob2Rfa2V5Ym9hcmRfa2V5bWFwICh2b2lk ICAgICAgICAgICAgICAgICAgICAgICpkYXRhLAotICAgICBJQnVzV2F5bGFuZElNICp3bGltID0g ZGF0YTsKLSAgICAgSUJ1c1dheWxhbmRJTVByaXZhdGUgKnByaXY7Ci0gICAgIHN0cnVjdCB4a2Jf a2V5bWFwICprZXltYXA7Ci0tICAgIHN0cnVjdCB4a2Jfc3RhdGUgKnByZXZfc3RhdGUgPSBOVUxM OwotLSAgICBnYm9vbGVhbiBoYXNfbmV3X3N0YXRlID0gRkFMU0U7Ci0gCi0gICAgIGlmICghSUJV U19JU19XQVlMQU5EX0lNICh3bGltKSkgewotICAgICAgICAgY2xvc2UgKGZkKTsKLUBAIC0xMzc3 LDQyICsxMzk0LDM4IEBAIGlucHV0X21ldGhvZF9rZXlib2FyZF9rZXltYXAgKHZvaWQgICAgICAg ICAgICAgICAgICAgICAgKmRhdGEsCi0gICAgICAgICB6d3BfdmlydHVhbF9rZXlib2FyZF92MV9r ZXltYXAgKHByaXYtPnNlYXQtPnZpcnR1YWxfa2V5Ym9hcmQsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCwgZmQsIHNpemUpOwotICAgICAgICAgLyogd2xy b290cy90eXBlcy93bHJfdmlydHVhbF9rZXlib2FyZF92MS5jOnZpcnR1YWxfa2V5Ym9hcmRfa2V5 bWFwKCkKLS0gICAgICAgICAqIHNldHMgJVRSVUUgdG8gYGhhc19rZXltYXBgLgotKyAgICAgICAg ICogc2V0cyAlVFJVRSB0byBgaGFzX2NvbXBvc2l0b3Jfa2V5bWFwYC4KLSAgICAgICAgICAqLwot LSAgICAgICAgcHJpdi0+c2VhdC0+aGFzX2tleW1hcCA9IFRSVUU7Ci0rICAgICAgICBwcml2LT5z ZWF0LT5oYXNfY29tcG9zaXRvcl9rZXltYXAgPSBUUlVFOwotICAgICB9Ci0tICAgIGlmIChwcml2 LT5rZXltYXAgJiYgcHJpdi0+c3RhdGUgJiYgcHJpdi0+c3RhdGVfc3lzdGVtKSB7Ci0rICAgIGlm IChwcml2LT5rZXlfdXNlci5rZXltYXAgJiYgcHJpdi0+a2V5X3VzZXIuc3RhdGUgJiYgcHJpdi0+ a2V5X3N5cy5zdGF0ZSkgewotICAgICAgICAgY2xvc2UgKGZkKTsKLSAgICAgICAgIHJldHVybjsK LSAgICAgfQotICAgICBrZXltYXAgPSBjcmVhdGVfc3lzdGVtX3hrYl9rZXltYXAgKHByaXYtPnhr Yl9jb250ZXh0LCBmb3JtYXQsIGZkLCBzaXplKTsKLS0gICAgaWYgKHByaXYtPnN0YXRlKQotLSAg ICAgICAgcHJldl9zdGF0ZSA9IHhrYl9zdGF0ZV9yZWYgKHByaXYtPnN0YXRlKTsKLS0gICAgaWYg KGtleW1hcCkKLS0gICAgICAgIGhhc19uZXdfc3RhdGUgPSBpYnVzX3dheWxhbmRfaW1fdXBkYXRl X3hrYl9zdGF0ZSAod2xpbSwga2V5bWFwKTsKLS0gICAgaWYgKHByaXYtPnN0YXRlKSB7Ci0tICAg ICAgICBpZiAoaGFzX25ld19zdGF0ZSkgewotLSAgICAgICAgICAgIHByaXYtPnN0YXRlX3N5c3Rl bSA9IHhrYl9zdGF0ZV9yZWYgKHByaXYtPnN0YXRlKTsKLS0gICAgICAgICAgICAvKiBwcmV2LT5z dGF0ZSBpcyB1c2VyIHByZXYtPnN0YXRlX3N5c3RlbSBpcyBzeXN0ZW0gKi8KLS0gICAgICAgICAg ICBpZiAocHJldl9zdGF0ZSkgewotLSAgICAgICAgICAgICAgICB4a2Jfc3RhdGVfdW5yZWYgKHBy aXYtPnN0YXRlKTsKLS0gICAgICAgICAgICAgICAgcHJpdi0+c3RhdGUgPSBwcmV2X3N0YXRlOwot LSAgICAgICAgICAgIH0KLS0gICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgaWYgKHByZXZf c3RhdGUpCi0tICAgICAgICAgICAgICAgIHhrYl9zdGF0ZV91bnJlZiAocHJldl9zdGF0ZSk7Ci0t ICAgICAgICAgICAgaWYgKGtleW1hcCkKLS0gICAgICAgICAgICAgICAgZ19jbGVhcl9wb2ludGVy ICgma2V5bWFwLCB4a2Jfa2V5bWFwX3VucmVmKTsKLS0gICAgICAgIH0KLS0gICAgfSBlbHNlIGlm IChrZXltYXApIHsKLSsgICAgaWYgKGtleW1hcCAmJgotKyAgICAgICAgIWlidXNfeGtiX2tleW1h cF91cGRhdGVfd2l0aF9rZXltYXAgKCZwcml2LT5rZXlfc3lzLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhrYl9rZXltYXBfcmVmIChrZXltYXApLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkKSkgewotKyAgICAg ICAgeGtiX2tleW1hcF91bnJlZiAoa2V5bWFwKTsKLSsgICAgICAgIGdfY2xlYXJfcG9pbnRlciAo JmtleW1hcCwgeGtiX2tleW1hcF91bnJlZik7Ci0rICAgICAgICBjbG9zZSAoZmQpOwotKyAgICB9 Ci0rICAgIGlmIChrZXltYXAgJiYgIXByaXYtPmtleV91c2VyLnN0YXRlICYmCi0rICAgICAgICAh aWJ1c194a2Jfa2V5bWFwX3VwZGF0ZV93aXRoX2tleW1hcCAoJnByaXYtPmtleV91c2VyLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhrYl9rZXltYXBfcmVm IChrZXltYXApLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDApKSB7Ci0rICAgICAgICB4a2Jfa2V5bWFwX3VucmVmIChrZXltYXApOwotICAgICAgICAgZ19j bGVhcl9wb2ludGVyICgma2V5bWFwLCB4a2Jfa2V5bWFwX3VucmVmKTsKLSAgICAgfQotKyAgICBp ZiAoa2V5bWFwKQotKyAgICAgICAgeGtiX2tleW1hcF91bnJlZiAoa2V5bWFwKTsKLSAgICAgaWYg KHByaXYtPnZlcmJvc2UpIHsKLSAgICAgICAgIGZwcmludGYgKHByaXYtPmxvZywgIlN5c3RlbSBr ZXltYXAgZm9ybWF0OiV1IGZkOiVkIHNpemU6JXUgIgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAia2V5bWFwOiVzIHN0YXRlOiVzXG4iLAotICAgICAgICAgICAgICAgICAgZm9ybWF0LCBm ZCwgc2l6ZSwKLSAgICAgICAgICAgICAgICAgIGtleW1hcCA/ICJUUlVFIiA6ICJGQUxTRSIsCi0t ICAgICAgICAgICAgICAgICBwcml2LT5zdGF0ZSA/ICJUUlVFIiA6ICJGQUxTRSIpOwotKyAgICAg ICAgICAgICAgICAgcHJpdi0+a2V5X3N5cy5zdGF0ZSA/ICJUUlVFIiA6ICJGQUxTRSIpOwotICAg ICAgICAgZmZsdXNoIChwcml2LT5sb2cpOwotICAgICB9Ci0gfQotQEAgLTE0NjIsNiArMTQ3NSw3 IEBAIGlidXNfd2F5bGFuZF9pbV9wb3N0X2tleSAoSUJ1c1dheWxhbmRJTSAqd2xpbSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgIGZpbHRlcmVkKQotIHsKLSAgICAg SUJ1c1dheWxhbmRJTVByaXZhdGUgKnByaXY7Ci0rICAgIElCdXNYa2JLZXltYXAgKmFjdGl2ZV9r ZXk7Ci0gICAgIHhrYl9tb2RfbWFza190IG1vZHNfZGVwcmVzc2VkLCBuZXdfbW9kc19kZXByZXNz ZWQ7Ci0gICAgIGdib29sZWFuIGNsZWFyX3ZpcnR1YWxfc3RhdGUgPSBGQUxTRTsKLSAKLUBAIC0x NDgxLDkgKzE0OTUsMTMgQEAgaWJ1c193YXlsYW5kX2ltX3Bvc3Rfa2V5IChJQnVzV2F5bGFuZElN ICp3bGltLAotICAgICBkZWZhdWx0OgotICAgICAgICAgZ19hc3NlcnRfbm90X3JlYWNoZWQgKCk7 Ci0gICAgIH0KLS0gICAgaWYgKCFwcml2LT5zdGF0ZSkKLS0gICAgICAgIHJldHVybiBGQUxTRTsK LS0gICAgbW9kc19kZXByZXNzZWQgPSB4a2Jfc3RhdGVfc2VyaWFsaXplX21vZHMgKHByaXYtPnN0 YXRlLAotKyAgICBpZiAocHJpdi0+dXNlX3N5c19rZXltYXApCi0rICAgICAgICBhY3RpdmVfa2V5 ID0gJnByaXYtPmtleV9zeXM7Ci0rICAgIGVsc2UKLSsgICAgICAgIGFjdGl2ZV9rZXkgPSAmcHJp di0+a2V5X3VzZXI7Ci0rICAgIGlmICghYWN0aXZlX2tleS0+c3RhdGUpCi0rICAgICAgICAgICAg cmV0dXJuIEZBTFNFOwotKyAgICBtb2RzX2RlcHJlc3NlZCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVf bW9kcyAoYWN0aXZlX2tleS0+c3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBYS0JfU1RBVEVfREVQUkVTU0VEIHwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhLQl9TVEFURV9MQVRDSEVEKTsKLSAgICAg bmV3X21vZHNfZGVwcmVzc2VkID0gbW9kc19kZXByZXNzZWQ7Ci1AQCAtMTQ5Miw2ICsxNTEwLDcg QEAgaWJ1c193YXlsYW5kX2ltX3Bvc3Rfa2V5IChJQnVzV2F5bGFuZElNICp3bGltLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlm aWVycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzeW0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlX2tleSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmV3X21v ZHNfZGVwcmVzc2VkKTsKLSAgICAgZmlsdGVyZWQgPSBpYnVzX3dheWxhbmRfaW1fY29tbWl0X2tl eV9ldmVudCAod2xpbSwKLUBAIC0xNDk5LDEyICsxNTE4LDE0IEBAIGlidXNfd2F5bGFuZF9pbV9w b3N0X2tleSAoSUJ1c1dheWxhbmRJTSAqd2xpbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJzLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVfa2V5LAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ld19tb2RzX2RlcHJlc3Nl ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNs ZWFyX3ZpcnR1YWxfc3RhdGUpOwotICAgICBpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxf eGtiX3N0YXRlICh3bGltLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBrZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0YXRlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhY3RpdmVfa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBtb2RzX2RlcHJlc3NlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbmV3X21vZHNfZGVwcmVzc2VkLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjbGVhcl92aXJ0dWFsX3N0YXRlKTsKLUBAIC0xOTI4LDgg KzE5NDksMTAgQEAgaW5wdXRfbWV0aG9kX2tleWJvYXJkX2tleSAodm9pZCAgICAgICAgICAgICAg ICAgICAgICAqZGF0YSwKLSAKLSAgICAgZ19yZXR1cm5faWZfZmFpbCAoSUJVU19JU19XQVlMQU5E X0lNICh3bGltKSk7Ci0gICAgIHByaXYgPSBpYnVzX3dheWxhbmRfaW1fZ2V0X2luc3RhbmNlX3By aXZhdGUgKHdsaW0pOwotLSAgICBpZiAoIXByaXYtPnN0YXRlKQotKyAgICBpZiAoIXByaXYtPmtl eV91c2VyLnN0YXRlKSB7Ci0rICAgICAgICBpYnVzX3dheWxhbmRfaW1fa2V5ICh3bGltLCBrZXlf c2VyaWFsLCB0aW1lLCBrZXksIHN0YXRlKTsKLSAgICAgICAgIHJldHVybjsKLSsgICAgfQotIAot ICAgICBpZiAoIXByaXYtPmlidXNjb250ZXh0KSB7Ci0gICAgICAgICBnYm9vbGVhbiByZXR2YWwg PSBpYnVzX3dheWxhbmRfaW1fcG9zdF9rZXkgKHdsaW0sCi1AQCAtMTk1MCwxNCArMTk3MywxNCBA QCBpbnB1dF9tZXRob2Rfa2V5Ym9hcmRfa2V5ICh2b2lkICAgICAgICAgICAgICAgICAgICAgICpk YXRhLAotICAgICBjb2RlID0ga2V5ICsgODsKLSAgICAgZXZlbnQuc3ltID0gMDsKLSAgICAgLyog eGtiX2tleV9nZXRfc3ltcygpIGRvZXMgbm90IHJldHVybiB0aGUgY2FwaXRhbCBzeW1zIHdpdGgg U2hpZnQga2V5LiAqLwotLSAgICBpZiAocHJpdi0+c3RhdGVfc3lzdGVtKQotLSAgICAgICAgZXZl bnQuc3ltID0geGtiX3N0YXRlX2tleV9nZXRfb25lX3N5bSAocHJpdi0+c3RhdGVfc3lzdGVtLCBj b2RlKTsKLSsgICAgaWYgKHByaXYtPmtleV9zeXMuc3RhdGUpCi0rICAgICAgICBldmVudC5zeW0g PSB4a2Jfc3RhdGVfa2V5X2dldF9vbmVfc3ltIChwcml2LT5rZXlfc3lzLnN0YXRlLCBjb2RlKTsK LSAgICAgc3dpdGNoIChldmVudC5zeW0pIHsKLSAgICAgY2FzZSBJQlVTX0tFWV9NdWx0aV9rZXk6 Ci0gICAgIGNhc2UgSUJVU19LRVlfSVNPX05leHRfR3JvdXA6Ci0gICAgICAgICBicmVhazsKLSAg ICAgZGVmYXVsdDoKLS0gICAgICAgIGV2ZW50LnN5bSA9IHhrYl9zdGF0ZV9rZXlfZ2V0X29uZV9z eW0gKHByaXYtPnN0YXRlLCBjb2RlKTsKLSsgICAgICAgIGV2ZW50LnN5bSA9IHhrYl9zdGF0ZV9r ZXlfZ2V0X29uZV9zeW0gKHByaXYtPmtleV91c2VyLnN0YXRlLCBjb2RlKTsKLSAgICAgfQotICAg ICBldmVudC5tb2RpZmllcnMgPSBwcml2LT5tb2RpZmllcnM7Ci0gICAgIGlmIChzdGF0ZSA9PSBX TF9LRVlCT0FSRF9LRVlfU1RBVEVfUkVMRUFTRUQpCi1AQCAtMTk3MSw4ICsxOTk0LDggQEAgaW5w dXRfbWV0aG9kX2tleWJvYXJkX2tleSAodm9pZCAgICAgICAgICAgICAgICAgICAgICAqZGF0YSwK LSAgICAgICAgICAgICAgICAgIEdfU1RSRlVOQywKLSAgICAgICAgICAgICAgICAgIGtleV9zZXJp YWwsIHRpbWUsIGtleSwKLSAgICAgICAgICAgICAgICAgIGV2ZW50LnN5bSwKLS0gICAgICAgICAg ICAgICAgIHhrYl9zdGF0ZV9rZXlfZ2V0X29uZV9zeW0gKHByaXYtPnN0YXRlLCBjb2RlKSwKLS0g ICAgICAgICAgICAgICAgIHhrYl9zdGF0ZV9rZXlfZ2V0X29uZV9zeW0gKHByaXYtPnN0YXRlX3N5 c3RlbSwgY29kZSksCi0rICAgICAgICAgICAgICAgICB4a2Jfc3RhdGVfa2V5X2dldF9vbmVfc3lt IChwcml2LT5rZXlfdXNlci5zdGF0ZSwgY29kZSksCi0rICAgICAgICAgICAgICAgICB4a2Jfc3Rh dGVfa2V5X2dldF9vbmVfc3ltIChwcml2LT5rZXlfc3lzLnN0YXRlLCBjb2RlKSwKLSAgICAgICAg ICAgICAgICAgIGV2ZW50Lm1vZGlmaWVycywgc3RhdGUgPyAicHJlc3MiIDogInJlbGVhc2UiKTsK LSAgICAgICAgIGZmbHVzaCAocHJpdi0+bG9nKTsKLSAgICAgfQotQEAgLTE5OTAsNiArMjAxMywy OSBAQCBpbnB1dF9tZXRob2Rfa2V5Ym9hcmRfa2V5ICh2b2lkICAgICAgICAgICAgICAgICAgICAg ICpkYXRhLAotIH0KLSAKLSAKLSsvKioKLSsgKiBpbnB1dF9tZXRob2Rfa2V5Ym9hcmRfbW9kaWZp ZXJzOgotKyAqCi0rICogVGhpcyBpcyBhIGNvbW1vbiBBUEkgb2YgaW5wdXRfbWV0aG9kX2tleWJv YXJkX21vZGlmaWVyc192MSgpIGFuZAotKyAqIGlucHV0X21ldGhvZF9rZXlib2FyZF9tb2RpZmll cnNfdjIoKS4KLSsgKiBJZiB5b3UgY29uZmlndXJlIG11bHRpcGxlIFhLQiBsYXlvdXRzIGluIHRo ZSBzeXN0ZW0gd2l0aAotKyAqIC9ldGMvdmNvbnNvbGUuY29uZiBmaWxlLCB5b3UgY2FuIHN3aXRj aCB0aGUgYWN0aXZlIGxheW91dCB3aXRoCi0rICogdGhlIFhLQiBvcHRpb25zIGFuZCBAZ3JvdXAg aXMgY2hhbmdlZCB3aXRoIHRoZSBzaG9ydGN1dCBrZXkgbGlrZQotKyAqICJncnA6bGFsdF9sc2hp ZnRfdG9nZ2xlIiBidXQgSWYgeW91IGNsaWNrIHRoZSBrZXlib2FyZCBpY29uIGluCi0rICogUGxh c21hIEtERSBhbmQgY2hhbmdlIHRoZSBhY3RpdmUgbGF5b3V0IHdpdGggR1VJLCBAZ3JvdXAgaXMg bm90Ci0rICogY2hhbmdlZCBhbmQgSSBhc3N1bWUgaXQncyBhIGJ1ZyBbMV0uCi0rICogQ3VycmVu dGx5IHRoZXJlIGFyZSB0d28gY2FzZXMgb2YgdGhlIGNvbWJpbmF0aW9ucyBvZiB0aGUgSUJ1cyBr ZXltYXAgYW5kCi0rICogdGhlIHN5c3RlbSBrZXltYXAgc3VwcG9ydGVkIGJ5IElCdXM6Ci0rICog MS4gQWx3YXlzIFNhbWUga2V5bWFwcwotKyAqICAgIEUuZy4gSUJ1cyBrZXltYXAgaXMgImx2KHRp bGRlKSIgYW5kIHN5c3RlbSBvbmUgaXMgImx2KHRpbGRlKSIKLSsgKiAyLiBTeXN0ZW0ga2V5bWFw IGlzICJVUyIgYW5kIHN3aXRjaCBJQnVzIGtleW1hcHMgd2l0aCBTdXBlci1zcGFjZSBrZXkKLSsg KiAgICBFLmcuIElCdXMga2V5bWFwIGlzICJsdih0aWxkZSkiIGFuZCBzeXN0ZW0gb25lIGlzICJ1 cyIKLSsgKiBTbyB5b3Ugc2hvdWxkIHVzZSBib3RoIFhLQiBvcHRpb24ga2V5cyBhbmQgSUJ1cyBz aG9ydGN1dGtleXMgdG8gc3dpdGNoIHRoZQotKyAqIGtleW1hcHMgdG8gY2hhbmdlIGJvdGggWEtC IGtleW1hcHMgYW5kIElCdXMga2V5bWFwcyBidXQgeW91IHNob3VsZCBub3QKLSsgKiBjbGljayB0 aGUga2V5Ym9hcmQgaWNvbiBpbiBLREUuCi0rICoKLSsgKiBbMV0gaHR0cHM6Ly9idWdzLmtkZS5v cmcvc2hvd19idWcuY2dpP2lkPTUxODM3MQotKyAqLwotIHN0YXRpYyB2b2lkCi0gaW5wdXRfbWV0 aG9kX2tleWJvYXJkX21vZGlmaWVycyAodm9pZCAgICAgICAgICAgICAgICAgICAgICAqZGF0YSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgendwX2tleWJvYXJkX3Vu aW9uICprZXlib2FyZCwKLUBAIC0yMDAxLDEwICsyMDQ3LDE1IEBAIGlucHV0X21ldGhvZF9rZXli b2FyZF9tb2RpZmllcnMgKHZvaWQgICAgICAgICAgICAgICAgICAgICAgKmRhdGEsCi0gewotICAg ICBJQnVzV2F5bGFuZElNICp3bGltID0gZGF0YTsKLSAgICAgSUJ1c1dheWxhbmRJTVByaXZhdGUg KnByaXY7Ci0rICAgIElCdXNYa2JLZXltYXAgKmFjdGl2ZV9rZXk7Ci0gICAgIHhrYl9tb2RfbWFz a190IG1hc2s7Ci0gCi0gICAgIGdfcmV0dXJuX2lmX2ZhaWwgKElCVVNfSVNfV0FZTEFORF9JTSAo d2xpbSkpOwotICAgICBwcml2ID0gaWJ1c193YXlsYW5kX2ltX2dldF9pbnN0YW5jZV9wcml2YXRl ICh3bGltKTsKLSsgICAgaWYgKHByaXYtPnVzZV9zeXNfa2V5bWFwKQotKyAgICAgICAgYWN0aXZl X2tleSA9ICZwcml2LT5rZXlfc3lzOwotKyAgICBlbHNlCi0rICAgICAgICBhY3RpdmVfa2V5ID0g JnByaXYtPmtleV91c2VyOwotICAgICAvKiBEbyBub3QgcmVzZXQgTGF0Y2ggbW9kaWZpZXJzIGJ5 IHN5c3RlbSBpbiBjYXNlIHRoZSBzeXN0ZW0ga2V5bWFwCi0gICAgICAqIGhhcyBubyB0aGUgTGF0 Y2gga2V5LgotICAgICAgKiBJbiBjYXNlIHRoZSB1c2VyIGtleW1hcCBpcyAibHYodGlsZGUpIiBh bmQgdGhlIHN5c3RlbSBvbmUgaXMgInVzIiwKLUBAIC0yMDE3LDU4ICsyMDY4LDU5IEBAIGlucHV0 X21ldGhvZF9rZXlib2FyZF9tb2RpZmllcnMgKHZvaWQgICAgICAgICAgICAgICAgICAgICAgKmRh dGEsCi0gICAgICAqIG5vdCB0byBvdmVycmlkZSB0aGUgc3RhdGUgb2YgdGhlICJ1cyIga2V5bWFw LgotICAgICAgKi8KLSAgICAgaWYgKCFwcml2LT5pc192aXJ0dWFsX2xhdGNoX3N0YXRlIHx8IGtl eV9zZXJpYWwgPT0gMCkgewotLSAgICAgICAgeGtiX3N0YXRlX3VwZGF0ZV9tYXNrIChwcml2LT5z dGF0ZSwgbW9kc19kZXByZXNzZWQsCi0rICAgICAgICB4a2Jfc3RhdGVfdXBkYXRlX21hc2sgKHBy aXYtPmtleV91c2VyLnN0YXRlLCBtb2RzX2RlcHJlc3NlZCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbW9kc19sYXRjaGVkLCBtb2RzX2xvY2tlZCwgMCwgMCwgZ3JvdXApOwotICAg ICAgICAgLyogUHJlc3NpbmcgWEtCIGdyb3VwIGtleSBsaWtlcyBBbHRfUiB3aXRoIGdycDp0b2dn bGUgY2FsbHMKLSAgICAgICAgICAqIGlucHV0X21ldGhvZF9rZXlib2FyZF9tb2RpZmllcnMoKSB3 aXRoIHRoZSB1cGRhdGVkIGBncm91cGAKLS0gICAgICAgICAqIGFuZCBuZWVkIHRvIHVwZGF0ZSBw cml2LT5zdGF0ZV9zeXN0ZW0gdG8gc3dpdGNoIHRoZSBYS0IgZ3JvdXAKLSsgICAgICAgICAqIGFu ZCBuZWVkIHRvIHVwZGF0ZSBwcml2LT5rZXlfc3lzLnN0YXRlIHRvIHN3aXRjaCB0aGUgWEtCIGdy b3VwCi0gICAgICAgICAgKiBpbiB0aGUgc3lzdGVtIGtleW1hcC4KLSAgICAgICAgICAqCi0gICAg ICAgICAgKiBYS0IgZ3JvdXAga2V5IGNhbiBzd2l0Y2ggYGdyb3VwYCBidXQgY2xpY2tpbmcgdGhl IGtleWJvYXJkIGljb24KLSAgICAgICAgICAqIG9mIEtERSBkb2VzIG5vdCBjaGFuZ2UgYGdyb3Vw YCBhdCBwcmVzZW50LiBNYXliZSBhIGJ1ZyBpbiB0aGUKLSAgICAgICAgICAqIEtERSBXYXlsYW5k IGNvbXBvc2l0b3IuCi0gICAgICAgICAgKi8KLS0gICAgICAgIHhrYl9zdGF0ZV91cGRhdGVfbWFz ayAocHJpdi0+c3RhdGVfc3lzdGVtLCBtb2RzX2RlcHJlc3NlZCwKLSsgICAgICAgIHhrYl9zdGF0 ZV91cGRhdGVfbWFzayAocHJpdi0+a2V5X3N5cy5zdGF0ZSwgbW9kc19kZXByZXNzZWQsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHNfbGF0Y2hlZCwgbW9kc19sb2NrZWQsIDAs IDAsIGdyb3VwKTsKLSAgICAgfQotICAgICAvKiBDYXBzTG9jayBuZWVkcyBYS0JfU1RBVEVfTU9E U19MT0NLRUQgKi8KLS0gICAgbWFzayA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbW9kcyAocHJpdi0+ c3RhdGUsCi0rICAgIG1hc2sgPSB4a2Jfc3RhdGVfc2VyaWFsaXplX21vZHMgKGFjdGl2ZV9rZXkt PnN0YXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYS0JfU1RBVEVf REVQUkVTU0VEIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEtCX1NU QVRFX0xBVENIRUQgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYS0Jf U1RBVEVfTU9EU19MT0NLRUQpOwotICAgICBpZiAocHJpdi0+dmVyYm9zZSkgewotKyAgICAgICAg c3RydWN0IHhrYl9zdGF0ZSAqc3RhdGUgPSBhY3RpdmVfa2V5LT5zdGF0ZTsKLSAgICAgICAgIGZw cmludGYgKHByaXYtPmxvZywgIlVwZGF0ZSBtb2RpZmllcnMgc2VyaWFsOiV1IGRlcHJlc3M6JVgg bGF0Y2g6JVggIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvY2s6JVggZ3JvdXA6 JVggb3JpZ19kZXByZTolWCBvcmlnX2xhdGNoOiVYICIKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJvcmlnX2xvY2s6JVhcbiIsCi0gICAgICAgICAgICAgICAgICBrZXlfc2VyaWFsLCBt b2RzX2RlcHJlc3NlZCwgbW9kc19sYXRjaGVkLCBtb2RzX2xvY2tlZCwgZ3JvdXAsCi0tICAgICAg ICAgICAgICAgICB4a2Jfc3RhdGVfc2VyaWFsaXplX21vZHMgKHByaXYtPnN0YXRlLCBYS0JfU1RB VEVfREVQUkVTU0VEKSwKLS0gICAgICAgICAgICAgICAgIHhrYl9zdGF0ZV9zZXJpYWxpemVfbW9k cyAocHJpdi0+c3RhdGUsIFhLQl9TVEFURV9MQVRDSEVEKSwKLS0gICAgICAgICAgICAgICAgIHhr Yl9zdGF0ZV9zZXJpYWxpemVfbW9kcyAocHJpdi0+c3RhdGUsIFhLQl9TVEFURV9NT0RTX0xPQ0tF RCkpOwotKyAgICAgICAgICAgICAgICAgeGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzIChzdGF0ZSwg WEtCX1NUQVRFX0RFUFJFU1NFRCksCi0rICAgICAgICAgICAgICAgICB4a2Jfc3RhdGVfc2VyaWFs aXplX21vZHMgKHN0YXRlLCBYS0JfU1RBVEVfTEFUQ0hFRCksCi0rICAgICAgICAgICAgICAgICB4 a2Jfc3RhdGVfc2VyaWFsaXplX21vZHMgKHN0YXRlLCBYS0JfU1RBVEVfTU9EU19MT0NLRUQpKTsK LSAgICAgICAgIGZmbHVzaCAocHJpdi0+bG9nKTsKLSAgICAgfQotIAotICAgICBwcml2LT5tb2Rp ZmllcnMgPSAwOwotLSAgICBpZiAobWFzayAmIHByaXYtPnNoaWZ0X21hc2spCi0rICAgIGlmICht YXNrICYgYWN0aXZlX2tleS0+c2hpZnRfbWFzaykKLSAgICAgICAgIHByaXYtPm1vZGlmaWVycyB8 PSBJQlVTX1NISUZUX01BU0s7Ci0tICAgIGlmIChtYXNrICYgcHJpdi0+bG9ja19tYXNrKQotKyAg ICBpZiAobWFzayAmIGFjdGl2ZV9rZXktPmxvY2tfbWFzaykKLSAgICAgICAgIHByaXYtPm1vZGlm aWVycyB8PSBJQlVTX0xPQ0tfTUFTSzsKLS0gICAgaWYgKG1hc2sgJiBwcml2LT5jb250cm9sX21h c2spCi0rICAgIGlmIChtYXNrICYgYWN0aXZlX2tleS0+Y29udHJvbF9tYXNrKQotICAgICAgICAg cHJpdi0+bW9kaWZpZXJzIHw9IElCVVNfQ09OVFJPTF9NQVNLOwotLSAgICBpZiAobWFzayAmIHBy aXYtPm1vZDFfbWFzaykKLSsgICAgaWYgKG1hc2sgJiBhY3RpdmVfa2V5LT5tb2QxX21hc2spCi0g ICAgICAgICBwcml2LT5tb2RpZmllcnMgfD0gSUJVU19NT0QxX01BU0s7Ci0tICAgIGlmIChtYXNr ICYgcHJpdi0+bW9kMl9tYXNrKQotKyAgICBpZiAobWFzayAmIGFjdGl2ZV9rZXktPm1vZDJfbWFz aykKLSAgICAgICAgIHByaXYtPm1vZGlmaWVycyB8PSBJQlVTX01PRDJfTUFTSzsKLS0gICAgaWYg KG1hc2sgJiBwcml2LT5tb2QzX21hc2spCi0rICAgIGlmIChtYXNrICYgYWN0aXZlX2tleS0+bW9k M19tYXNrKQotICAgICAgICAgcHJpdi0+bW9kaWZpZXJzIHw9IElCVVNfTU9EM19NQVNLOwotLSAg ICBpZiAobWFzayAmIHByaXYtPm1vZDRfbWFzaykKLSsgICAgaWYgKG1hc2sgJiBhY3RpdmVfa2V5 LT5tb2Q0X21hc2spCi0gICAgICAgICBwcml2LT5tb2RpZmllcnMgfD0gSUJVU19NT0Q0X01BU0s7 Ci0tICAgIGlmIChtYXNrICYgcHJpdi0+bW9kNV9tYXNrKQotKyAgICBpZiAobWFzayAmIGFjdGl2 ZV9rZXktPm1vZDVfbWFzaykKLSAgICAgICAgIHByaXYtPm1vZGlmaWVycyB8PSBJQlVTX01PRDVf TUFTSzsKLS0gICAgaWYgKG1hc2sgJiBwcml2LT5zdXBlcl9tYXNrKQotKyAgICBpZiAobWFzayAm IGFjdGl2ZV9rZXktPnN1cGVyX21hc2spCi0gICAgICAgICBwcml2LT5tb2RpZmllcnMgfD0gSUJV U19TVVBFUl9NQVNLOwotLSAgICBpZiAobWFzayAmIHByaXYtPmh5cGVyX21hc2spCi0rICAgIGlm IChtYXNrICYgYWN0aXZlX2tleS0+aHlwZXJfbWFzaykKLSAgICAgICAgIHByaXYtPm1vZGlmaWVy cyB8PSBJQlVTX0hZUEVSX01BU0s7Ci0tICAgIGlmIChtYXNrICYgcHJpdi0+bWV0YV9tYXNrKQot KyAgICBpZiAobWFzayAmIGFjdGl2ZV9rZXktPm1ldGFfbWFzaykKLSAgICAgICAgIHByaXYtPm1v ZGlmaWVycyB8PSBJQlVTX01FVEFfTUFTSzsKLSAKLSAgICAgaWYgKCFrZXlfc2VyaWFsKQotQEAg LTIwODMsMTEgKzIxMzUsMTEgQEAgaW5wdXRfbWV0aG9kX2tleWJvYXJkX21vZGlmaWVycyAodm9p ZCAgICAgICAgICAgICAgICAgICAgICAqZGF0YSwKLSAgICAgY2FzZSBJTlBVVF9NRVRIT0RfVjI6 Ci0gICAgICAgICAvKiB3bHJvb3RzL3R5cGVzL3dscl92aXJ0dWFsX2tleWJvYXJkX3YxLmM6dmly dHVhbF9rZXlib2FyZF9tb2RpZmllcnMoKQotICAgICAgICAgICogcmV0dXJucyAiQ2Fubm90IHNl bmQgYSBtb2RpZmllciBzdGF0ZSBiZWZvcmUgZGVmaW5pbmcgYSBrZXltYXAiCi0tICAgICAgICAg KiBpZiBgaGFzX2tleW1hcGAgaXMgJUZBTFNFLgotKyAgICAgICAgICogaWYgYGhhc19jb21wb3Np dG9yX2tleW1hcGAgaXMgJUZBTFNFLgotICAgICAgICAgICovCi0gICAgICAgICBpZiAoIXByaXYt PnNlYXQpCi0gICAgICAgICAgICAgYnJlYWs7Ci0tICAgICAgICBpZiAocHJpdi0+c2VhdC0+aGFz X2tleW1hcCkgewotKyAgICAgICAgaWYgKHByaXYtPnNlYXQtPmhhc19jb21wb3NpdG9yX2tleW1h cCkgewotICAgICAgICAgICAgIHp3cF92aXJ0dWFsX2tleWJvYXJkX3YxX21vZGlmaWVycyAocHJp di0+c2VhdC0+dmlydHVhbF9rZXlib2FyZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1vZHNfZGVwcmVzc2VkLCBtb2RzX2xhdGNoZWQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RzX2xvY2tlZCwgZ3Jv dXApOwotQEAgLTIzNzIsNyArMjQyNCw3IEBAIGlucHV0X21ldGhvZF9hY3RpdmF0ZSAodm9pZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqZGF0YSwKLSAgICAgICAgIC8qIFJlZ2VuZXJh dGluZyBgdmlydHVhbF9rZXlib2FyZGAgY2F1c2VzIGBzaXplYCA9IDAgaW4KLSAgICAgICAgICAq IGlucHV0X21ldGhvZF9rZXlib2FyZF9rZXltYXAoKSB3aXRoIGZvY3VzIGNoYW5nZXMgaW4gU3dh eSBzZXNzaW9uLgotICAgICAgICAgICovCi0tICAgICAgICBwcml2LT5zZWF0LT5oYXNfa2V5bWFw ID0gRkFMU0U7Ci0rICAgICAgICBwcml2LT5zZWF0LT5oYXNfY29tcG9zaXRvcl9rZXltYXAgPSBG QUxTRTsKLSAgICAgICAgIHByaXYtPnNlYXQtPmtleWJvYXJkX3YyID0gendwX2lucHV0X21ldGhv ZF92Ml9ncmFiX2tleWJvYXJkICgKLSAgICAgICAgICAgICAgICAgaW5wdXRfbWV0aG9kLT51Lmlu cHV0X21ldGhvZF92Mik7Ci0gICAgICAgICB6d3BfaW5wdXRfbWV0aG9kX2tleWJvYXJkX2dyYWJf djJfYWRkX2xpc3RlbmVyICgKLUBAIC0zMDUxLDggKzMxMDMsMTEgQEAgaWJ1c193YXlsYW5kX2lt X2NvbnN0cnVjdG9yIChHVHlwZSAgICAgICAgICAgICAgICAgIHR5cGUsCi0gICAgIGRlc2MgPSBp YnVzX2J1c19nZXRfZ2xvYmFsX2VuZ2luZSAocHJpdi0+aWJ1c2J1cyk7Ci0gICAgIGlmIChkZXNj KQotICAgICAgICAga2V5bWFwID0gY3JlYXRlX3VzZXJfeGtiX2tleW1hcCAocHJpdi0+eGtiX2Nv bnRleHQsIGRlc2MpOwotLSAgICBpZiAoa2V5bWFwICYmICFpYnVzX3dheWxhbmRfaW1fdXBkYXRl X3hrYl9zdGF0ZSAod2xpbSwga2V5bWFwKSkKLSsgICAgaWYgKGtleW1hcCAmJiAhaWJ1c194a2Jf a2V5bWFwX3VwZGF0ZV93aXRoX2tleW1hcCAoJnByaXYtPmtleV91c2VyLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXltYXAsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApKSB7 Ci0gICAgICAgICBnX2NsZWFyX3BvaW50ZXIgKCZrZXltYXAsIHhrYl9rZXltYXBfdW5yZWYpOwot KyAgICB9Ci0gICAgIGlmIChwcml2LT52ZXJib3NlKSB7Ci0gICAgICAgICBpZiAoIWRlc2MpIHsK LSAgICAgICAgICAgICBmcHJpbnRmIChwcml2LT5sb2csICJDb25zdHJ1Y3RvciBoYXMgTm8gZ2xv YmFsIGVuZ2luZVxuIik7Ci1AQCAtMzA2MCw3ICszMTE1LDcgQEAgaWJ1c193YXlsYW5kX2ltX2Nv bnN0cnVjdG9yIChHVHlwZSAgICAgICAgICAgICAgICAgIHR5cGUsCi0gICAgICAgICAgICAgZnBy aW50ZiAocHJpdi0+bG9nLCAiQ29uc3RydWN0b3IgZW5naW5lICVzIGtleW1hcDolcyBzdGF0ZTol c1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICBpYnVzX2VuZ2luZV9kZXNjX2dldF9uYW1lIChk ZXNjKSwKLSAgICAgICAgICAgICAgICAgICAgICBrZXltYXAgPyAiVFJVRSIgOiAiRkFMU0UiLAot LSAgICAgICAgICAgICAgICAgICAgIHByaXYtPnN0YXRlID8gIlRSVUUiIDogIkZBTFNFIik7Ci0r ICAgICAgICAgICAgICAgICAgICAgcHJpdi0+a2V5X3VzZXIuc3RhdGUgPyAiVFJVRSIgOiAiRkFM U0UiKTsKLSAgICAgICAgIH0KLSAgICAgICAgIGZmbHVzaCAocHJpdi0+bG9nKTsKLSAgICAgfQot LS0gCi0yLjUzLjAKLQotRnJvbSA2NTUyMGI5YzIwOTQzZmY2ZDNiMjkwYjljYTQxZWQzNzBlOTRj ZGYyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAzNmFiMmJjNWJmNjg4MTYzMmQwOWQw YmUyM2I5NTQwMWRmZGVhMmE0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogZnVqaXdh cmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogRnJpLCAyOSBNYXkgMjAyNiAx Nzo0MzoxNyArMDkwMAotU3ViamVjdDogW1BBVENIIDQvOV0gY2xpZW50L3dheWxhbmQ6IFJlZmFj dG9yIElTT19MZXZlbFszfDVdX1NoaWZ0IHN0YXRlCitEYXRlOiBXZWQsIDE3IEp1biAyMDI2IDE5 OjUxOjA4ICswOTAwCitTdWJqZWN0OiBbUEFUQ0ggMy80XSBjbGllbnQvd2F5bGFuZDogUmVmYWN0 b3IgSVNPX0xldmVsWzN8NV1fU2hpZnQgc3RhdGUKIAogVGhlIHN0YXRlcyBvZiBJU08gU2hpZnQg a2V5cyBzaG91bGQgYmUgY2xlYXJlZCB3aGVuIHRoZSBrZXkgaXMgcmVsZWFzZWQKIGFnYWluc3Qg SVNPIExhdGNoIGtleXMuIEUuZy4gIlJBTFQiIGtleSBpbiAibHYodGlsZGUpIiBrZXltYXAuCkBA IC0xNDkyLDEwICs4OTEsMTAgQEAgQ2xvc2VzOiByaGJ6IzI0NDQwMDkKICAxIGZpbGUgY2hhbmdl ZCwgMTI3IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvY2xp ZW50L3dheWxhbmQvaWJ1c3dheWxhbmRpbS5jIGIvY2xpZW50L3dheWxhbmQvaWJ1c3dheWxhbmRp bS5jCi1pbmRleCAyYzAyMjU0OC4uY2Q5MmE5ODggMTAwNjQ0CitpbmRleCAyY2MyMDc5Yi4uNTcx YzdiMDUgMTAwNjQ0CiAtLS0gYS9jbGllbnQvd2F5bGFuZC9pYnVzd2F5bGFuZGltLmMKICsrKyBi L2NsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYwotQEAgLTYyLDYgKzYyLDEzIEBAIHR5cGVk ZWYgZW51bQorQEAgLTY0LDYgKzY0LDEzIEBAIHR5cGVkZWYgZW51bQogICAgICBJTlBVVF9NRVRI T0RfVjIsCiAgfSBJTVByb3RvY29sVmVyc2lvbjsKICAKQEAgLTE1MDksNyArOTA4LDcgQEAgaW5k ZXggMmMwMjI1NDguLmNkOTJhOTg4IDEwMDY0NAogIHN0cnVjdCB6d3BfaW5wdXRfbWV0aG9kX2Nv bnRleHRfdW5pb24gewogICAgICB1bmlvbiB7CiAgICAgICAgICBzdHJ1Y3QgendwX2lucHV0X21l dGhvZF9jb250ZXh0X3YxICpjb250ZXh0X3YxOwotQEAgLTE2MSw2ICsxNjgsOCBAQCBzdHJ1Y3Qg X0lCdXNXYXlsYW5kSU1Qcml2YXRlCitAQCAtMTYzLDYgKzE3MCw4IEBAIHN0cnVjdCBfSUJ1c1dh eWxhbmRJTVByaXZhdGUKICAKICAgICAgSUJ1c1hrYktleW1hcCBrZXlfdXNlcjsKICAgICAgSUJ1 c1hrYktleW1hcCBrZXlfc3lzOwpAQCAtMTUxOCw3ICs5MTcsNyBAQCBpbmRleCAyYzAyMjU0OC4u Y2Q5MmE5ODggMTAwNjQ0CiAgCiAgICAgIHVpbnQzMl90IGltX3NlcmlhbDsKICAgICAgaW50MzJf dCByZXBlYXRfcmF0ZTsKLUBAIC0zMzksNiArMzQ4LDI4IEBAIGlidXNfd2F5bGFuZF9zb3VyY2Vf bmV3IChzdHJ1Y3Qgd2xfZGlzcGxheSAqZGlzcGxheSkKK0BAIC0zNDEsNiArMzUwLDI4IEBAIGli dXNfd2F5bGFuZF9zb3VyY2VfbmV3IChzdHJ1Y3Qgd2xfZGlzcGxheSAqZGlzcGxheSkKICB9CiAg CiAgCkBAIC0xNTQ3LDcgKzk0Niw3IEBAIGluZGV4IDJjMDIyNTQ4Li5jZDkyYTk4OCAxMDA2NDQK ICBzdGF0aWMgdm9pZAogIGlidXNfd2F5bGFuZF9pbV9jb21taXRfdGV4dCAoSUJ1c1dheWxhbmRJ TSAqd2xpbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgICAgKnN0 cikKLUBAIC01MTUsNyArNTQ2LDggQEAgaWJ1c193YXlsYW5kX2ltX3VwZGF0ZV92aXJ0dWFsX2Rl cHJlc3NlZCAoSUJ1c1dheWxhbmRJTSAgKndsaW0sCitAQCAtNTI2LDcgKzU1Nyw4IEBAIGlidXNf d2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF9kZXByZXNzZWQgKElCdXNXYXlsYW5kSU0gICp3bGlt LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhrYl9rZXlzeW1f dCAgICBzeW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJ1 c1hrYktleW1hcCAgKmFjdGl2ZV9rZXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGZpbHRlcmVkLApAQCAtMTU1Nyw3ICs5NTYsNyBA QCBpbmRleCAyYzAyMjU0OC4uY2Q5MmE5ODggMTAwNjQ0CiAgewogICAgICBJQnVzV2F5bGFuZElN UHJpdmF0ZSAqcHJpdjsKICAgICAgdWludDMyX3QgY29kZSA9IGtleSArIDg7Ci1AQCAtNTI4LDYg KzU2MCw3IEBAIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF9kZXByZXNzZWQgKElCdXNX YXlsYW5kSU0gICp3bGltLAorQEAgLTUzOSw2ICs1NzEsNyBAQCBpYnVzX3dheWxhbmRfaW1fdXBk YXRlX3ZpcnR1YWxfZGVwcmVzc2VkIChJQnVzV2F5bGFuZElNICAqd2xpbSwKICAgICAgZ19hc3Nl cnQgKElCVVNfSVNfV0FZTEFORF9JTSAod2xpbSkpOwogICAgICBnX2Fzc2VydCAoYWN0aXZlX2tl eSk7CiAgICAgIGdfYXNzZXJ0IChtb2RzX2RlcHJlc3NlZCk7CkBAIC0xNTY1LDcgKzk2NCw3IEBA IGluZGV4IDJjMDIyNTQ4Li5jZDkyYTk4OCAxMDA2NDQKICAKICAgICAgcHJpdiA9IGlidXNfd2F5 bGFuZF9pbV9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAod2xpbSk7CiAgICAgIG5ld19tb2RzX2RlcHJl c3NlZCA9ICptb2RzX2RlcHJlc3NlZDsKLUBAIC01NDMsMjUgKzU3Niw4NyBAQCBpYnVzX3dheWxh bmRfaW1fdXBkYXRlX3ZpcnR1YWxfZGVwcmVzc2VkIChJQnVzV2F5bGFuZElNICAqd2xpbSwKK0BA IC01NTQsMjUgKzU4Nyw4NyBAQCBpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxfZGVwcmVz c2VkIChJQnVzV2F5bGFuZElNICAqd2xpbSwKICAgICAgICAgIGJyZWFrOwogICAgICAvKiBMZXZl bDNfbGF0Y2ggaXMgY2F1c2VkIGJ5IFRMREUga2V5IGluIGx2KHRpbGRlKSBrZXltYXAuCiAgICAg ICAqIExldmVsM19TaGlmdCBpcyBjYXVzZWQgYnkgQWx0IGtleSBpbiBsdih0aWxkZSkga2V5bWFw LgpAQCAtMTY2Myw3ICsxMDYyLDcgQEAgaW5kZXggMmMwMjI1NDguLmNkOTJhOTg4IDEwMDY0NAog ICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgSUJVU19LRVlfU2hpZnRfTDoK LUBAIC02MzUsNiArNzMwLDIzIEBAIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF94a2Jf c3RhdGUgKElCdXNXYXlsYW5kSU0gKndsaW0sCitAQCAtNjQ2LDYgKzc0MSwyMyBAQCBpYnVzX3dh eWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxfeGtiX3N0YXRlIChJQnVzV2F5bGFuZElNICp3bGltLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdGF0ZSA9PSBXTF9LRVlCT0FSRF9LRVlf U1RBVEVfUkVMRUFTRUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBYS0JfS0VZ X1VQIDogWEtCX0tFWV9ET1dOKTsKICAgICAgfQpAQCAtMTY4NywxNSArMTA4NiwxNSBAQCBpbmRl eCAyYzAyMjU0OC4uY2Q5MmE5ODggMTAwNjQ0CiAgfQogIAogIAotQEAgLTEzNTAsNiArMTQ2Miw3 IEBAIF9idXNfZ2xvYmFsX2VuZ2luZV9jaGFuZ2VkX2NiIChJQnVzQnVzICAgICAgICpidXMsCitA QCAtMTM1MSw2ICsxNDYzLDcgQEAgX2J1c19nbG9iYWxfZW5naW5lX2NoYW5nZWRfY2IgKElCdXNC dXMgICAgICAgKmJ1cywKICAgICAgZ19yZXR1cm5faWZfZmFpbCAoSUJVU19JU19XQVlMQU5EX0lN ICh3bGltKSk7CiAgICAgIHByaXYgPSBpYnVzX3dheWxhbmRfaW1fZ2V0X2luc3RhbmNlX3ByaXZh dGUgKHdsaW0pOwogICAgICBkZXNjID0gaWJ1c19idXNfZ2V0X2dsb2JhbF9lbmdpbmUgKGJ1cyk7 CiArICAgIGlidXNfd2F5bGFuZF9pbV9yZXNldF9tb2RpZmllcnMgKHdsaW0pOwogICAgICBnX2Fz c2VydCAoZGVzYyk7CiAgICAgIGdfYXNzZXJ0ICghZ19zdHJjbXAwIChpYnVzX2VuZ2luZV9kZXNj X2dldF9uYW1lIChkZXNjKSwgZW5naW5lX25hbWUpKTsKLSAgICAga2V5bWFwID0gY3JlYXRlX3Vz ZXJfeGtiX2tleW1hcCAocHJpdi0+eGtiX2NvbnRleHQsIGRlc2MpOwotQEAgLTE1MTIsNyArMTYy NSw4IEBAIGlidXNfd2F5bGFuZF9pbV9wb3N0X2tleSAoSUJ1c1dheWxhbmRJTSAqd2xpbSwKKyAg ICAgLyogQWx3YXlzIHVwZGF0ZSBwcml2LT5rZXlfdXNlciBldmVuIGlmIHByaXYtPnVzZV9zeXNf a2V5bWFwIGlzICVGQUxTRQorQEAgLTE1MzgsNyArMTY1MSw4IEBAIGlidXNfd2F5bGFuZF9pbV9w b3N0X2tleSAoSUJ1c1dheWxhbmRJTSAqd2xpbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW0sCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlX2tleSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0 ZXJlZCwKQEAgLTE3MDUsNyArMTEwNCw3IEBAIGluZGV4IDJjMDIyNTQ4Li5jZDkyYTk4OCAxMDA2 NDQKICAgICAgZmlsdGVyZWQgPSBpYnVzX3dheWxhbmRfaW1fY29tbWl0X2tleV9ldmVudCAod2xp bSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2Rp ZmllcnMsCi1AQCAtMjM3OCw2ICsyNDkyLDcgQEAgX2NyZWF0ZV9pbnB1dF9jb250ZXh0X2RvbmUg KEdPYmplY3QgICAgICAqb2JqZWN0LAorQEAgLTI0MTEsNiArMjUyNSw3IEBAIF9jcmVhdGVfaW5w dXRfY29udGV4dF9kb25lIChHT2JqZWN0ICAgICAgKm9iamVjdCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUpOwogICAgICAg ICAgfQogICAgICAgICAgaWJ1c19pbnB1dF9jb250ZXh0X2ZvY3VzX2luIChwcml2LT5pYnVzY29u dGV4dCk7CkBAIC0xNzE2LDEwICsxMTE1LDExIEBAIGluZGV4IDJjMDIyNTQ4Li5jZDkyYTk4OCAx MDA2NDQKIC0tIAogMi41My4wCiAKLUZyb20gZTgxZGE5ZTExZTZmZjM4NDdkNmI4NGZlYzBjZmY5 ZmNmMTU2NTY2MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gNTA3YzExYjk0N2Y1OWJl MTBiOTk3YWQ0NTIyMDI0ZmNjMjU1Mjg0NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206 IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjkgTWF5 IDIwMjYgMTc6NDM6MjYgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSCA1LzldIGNsaWVudC93YXlsYW5k OiBGaXggaW5maW5pdGUgZGVhZF9kaWFlcmVzaXMgd2l0aCBmcihlcmdvbCkga2V5bWFwCitEYXRl OiBNb24sIDE1IEp1biAyMDI2IDExOjUwOjUzICswOTAwCitTdWJqZWN0OiBbUEFUQ0ggNC80XSBj bGllbnQvd2F5bGFuZDogRml4IGluZmluaXRlIGRlYWRfZGlhZXJlc2lzIHdpdGgKKyBmcihlcmdv bCkga2V5bWFwCiAKIFR5cGluZyB0aGUga2V5IDxBRDA5PiB0d2ljZSBnaXZlcyBkaWZmZXJlbnQg a2V5c3ltcyBiZXR3ZWVuIEtleVByZXNzCiBhbmQgS2V5UmVsZWFzZSBldmVudHMgYW5kIGNhdXNl cyB0aGUgcmV2ZXJzZSBvcmRlciBvZiBLZXlQcmVzcyBhbmQKQEAgLTE3MzAsMTQgKzExMzAsMTQg QEAgdGhlIGtleSA8QUQwOT4gdHdpY2UuCiAKIENsb3NlczogIzI4OTQKIC0tLQotIGNsaWVudC93 YXlsYW5kL2lidXN3YXlsYW5kaW0uYyB8IDIyNyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMTYzIGluc2VydGlvbnMoKyksIDY0IGRlbGV0aW9ucygt KQorIGNsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYyB8IDI0NSArKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMTcyIGluc2VydGlvbnMoKyksIDcz IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvY2xpZW50L3dheWxhbmQvaWJ1c3dheWxhbmRp bS5jIGIvY2xpZW50L3dheWxhbmQvaWJ1c3dheWxhbmRpbS5jCi1pbmRleCBjZDkyYTk4OC4uMWUx ZTI3MmMgMTAwNjQ0CitpbmRleCA1NzFjN2IwNS4uOWM2OTQzOWEgMTAwNjQ0CiAtLS0gYS9jbGll bnQvd2F5bGFuZC9pYnVzd2F5bGFuZGltLmMKICsrKyBiL2NsaWVudC93YXlsYW5kL2lidXN3YXls YW5kaW0uYwotQEAgLTY5LDYgKzY5LDEyIEBAIHR5cGVkZWYgZW51bSB7CitAQCAtNzEsNiArNzEs MTIgQEAgdHlwZWRlZiBlbnVtIHsKICAgICAgSUJVU19LRVlfSVNPX0xFVkVMXzUKICB9IElCdXNL ZXlJc29MZXZlbFZhbHVlOwogIApAQCAtMTc1MCw3ICsxMTUwLDcgQEAgaW5kZXggY2Q5MmE5ODgu LjFlMWUyNzJjIDEwMDY0NAogIHN0cnVjdCB6d3BfaW5wdXRfbWV0aG9kX2NvbnRleHRfdW5pb24g ewogICAgICB1bmlvbiB7CiAgICAgICAgICBzdHJ1Y3QgendwX2lucHV0X21ldGhvZF9jb250ZXh0 X3YxICpjb250ZXh0X3YxOwotQEAgLTE2OCwxMiArMTc0LDE0IEBAIHN0cnVjdCBfSUJ1c1dheWxh bmRJTVByaXZhdGUKK0BAIC0xNzAsMTIgKzE3NiwxNCBAQCBzdHJ1Y3QgX0lCdXNXYXlsYW5kSU1Q cml2YXRlCiAgCiAgICAgIElCdXNYa2JLZXltYXAga2V5X3VzZXI7CiAgICAgIElCdXNYa2JLZXlt YXAga2V5X3N5czsKQEAgLTE3NjcsNyArMTE2Nyw3IEBAIGluZGV4IGNkOTJhOTg4Li4xZTFlMjcy YyAxMDA2NDQKICAKICAgICAgR0NhbmNlbGxhYmxlICpjYW5jZWxsYWJsZTsKICB9OwotQEAgLTM1 OCw4ICszNjYsMTAgQEAgaWJ1c193YXlsYW5kX2ltX3Jlc2V0X21vZGlmaWVycyAoSUJ1c1dheWxh bmRJTSAqd2xpbSkKK0BAIC0zNjAsOCArMzY4LDEwIEBAIGlidXNfd2F5bGFuZF9pbV9yZXNldF9t b2RpZmllcnMgKElCdXNXYXlsYW5kSU0gKndsaW0pCiAgCiAgICAgIHByaXYgPSBpYnVzX3dheWxh bmRfaW1fZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHdsaW0pOwogICAgICBwcml2LT5pc192aXJ0dWFs X2xhdGNoX3N0YXRlID0gRkFMU0U7CkBAIC0xNzgwLDcgKzExODAsNyBAQCBpbmRleCBjZDkyYTk4 OC4uMWUxZTI3MmMgMTAwNjQ0CiAgICAgIGlmIChwcml2LT5rZXlfdXNlci5zdGF0ZSAmJiBwcml2 LT5rZXlfc3lzLnN0YXRlKSB7CiAgICAgICAgICBncm91cCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVf bGF5b3V0IChwcml2LT5rZXlfc3lzLnN0YXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX0xBWU9VVF9MT0NLRUQpOwotQEAgLTQwNSw3ICs0 MTUsOCBAQCBpYnVzX3dheWxhbmRfaW1fY29tbWl0X2tleV9ldmVudCAoSUJ1c1dheWxhbmRJTSAg KndsaW0sCitAQCAtNDA3LDcgKzQxNyw4IEBAIGlidXNfd2F5bGFuZF9pbV9jb21taXRfa2V5X2V2 ZW50IChJQnVzV2F5bGFuZElNICAqd2xpbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSUJ1c1hrYktleW1hcCAgKmFjdGl2ZV9rZXksCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBmaWx0ZXJlZCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeGtiX21vZF9tYXNrX3QgKm5ld19tb2RzX2RlcHJlc3NlZCwKQEAg LTE3OTAsNyArMTE5MCw3IEBAIGluZGV4IGNkOTJhOTg4Li4xZTFlMjcyYyAxMDA2NDQKICB7CiAg ICAgIElCdXNXYXlsYW5kSU1Qcml2YXRlICpwcml2OwogICAgICB1aW50MzJfdCBjb2RlID0ga2V5 ICsgODsKLUBAIC00MTQsOSArNDI1LDYgQEAgaWJ1c193YXlsYW5kX2ltX2NvbW1pdF9rZXlfZXZl bnQgKElCdXNXYXlsYW5kSU0gICp3bGltLAorQEAgLTQxNiw5ICs0MjcsNiBAQCBpYnVzX3dheWxh bmRfaW1fY29tbWl0X2tleV9ldmVudCAoSUJ1c1dheWxhbmRJTSAgKndsaW0sCiAgICAgIGdfcmV0 dXJuX3ZhbF9pZl9mYWlsIChJQlVTX0lTX1dBWUxBTkRfSU0gKHdsaW0pLCBmaWx0ZXJlZCk7CiAg ICAgIHByaXYgPSBpYnVzX3dheWxhbmRfaW1fZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHdsaW0pOwog IApAQCAtMTgwMCwxMyArMTIwMCwyMiBAQCBpbmRleCBjZDkyYTk4OC4uMWUxZTI3MmMgMTAwNjQ0 CiAgICAgIGNoID0gaWJ1c19rZXl2YWxfdG9fdW5pY29kZSAoc3ltKTsKICAgICAgaWYgKGNoID09 IDAgfHwgZ191bmljaGFyX2lzY250cmwgKGNoKSkKICAgICAgICAgIGNoID0geGtiX3N0YXRlX2tl eV9nZXRfdXRmMzIgKGFjdGl2ZV9rZXktPnN0YXRlLCBjb2RlKTsKLUBAIC00MjksMTQgKzQzNywx OSBAQCBpYnVzX3dheWxhbmRfaW1fY29tbWl0X2tleV9ldmVudCAoSUJ1c1dheWxhbmRJTSAgKnds aW0sCitAQCAtNDMxLDIzICs0MzksMjggQEAgaWJ1c193YXlsYW5kX2ltX2NvbW1pdF9rZXlfZXZl bnQgKElCdXNXYXlsYW5kSU0gICp3bGltLAogICMgIGRlZmluZSBfSUJVU19OT19URVhUX0lOUFVU X01PRF9NQVNLIChcCiAgICAgIElCVVNfQ09OVFJPTF9NQVNLIHwgSUJVU19NT0QyX01BU0sgfCBJ QlVTX01PRDRfTUFTSykKICAjZW5kaWYKIC0gICAgaWYgKCghZmlsdGVyZWQgJiYgIShtb2RpZmll cnMgJiBfSUJVU19OT19URVhUX0lOUFVUX01PRF9NQVNLKSAmJgogLSAgICAgICAgICFnX3VuaWNo YXJfaXNjbnRybCAoY2gpKSB8fCBmaWx0ZXJlZCkgewotLSAgICAgICAgaWYgKCFmaWx0ZXJlZCkg eworLSAgICAgICAgLyogSW4gY2FzZSBgdXNlX3N5c19rZXltYXBgIGlzICVUUlVFLCBJQnVzIGRv ZXMgbm90IGNvbW1pdCBBU0NJSSBjaGFycworLSAgICAgICAgICogYnV0IGZvcndhcmRzIHRoZSBr ZXkgZXZlbnRzIHRvIHRoZSBmb2N1c2VkIGFwcGxpY2F0aW9uIGhlcmUuCistICAgICAgICAgKiBC ZWNhdXNlIHNvbWUgYXBwbGljYXRpb25zIHRyZWF0IHRoZSBwcmludGFibGUga2V5cyBhcyBjb250 cm9sIGtleXMsCistICAgICAgICAgKiBFLmcuIGdhbWUgYXBwcyAiaGprbCIgdXNlIHRoZSBjdXJz b3IgbW92ZSBsaWtlIFZJIG1vZGUuCistICAgICAgICAgKiBVbmZvcnR1bmF0ZWx5IHRoZSBXYXls YW5kIGlucHV0LW1ldGhvZCBwcm90b2NvbCBkb2VzIG5vdCBwcm92aWRlCistICAgICAgICAgKiB0 aGUgZmFsbGJhY2sgbG9naWMgYWZ0ZXIgYXBwcyBoYW5kbGUgdGhlIGtleSBldmVudHMgbGlrZSBH VEszLzIKKy0gICAgICAgICAqIElNIG1vZHVsZXMuIEJ1dCBUaGUgaW5wdXQtbWV0aG9kIGFsd2F5 cyBzaG91bGQgaGFuZGxlcyBrZXkgZXZlbnRzCistICAgICAgICAgKiBwcmlvciB0byBhcHBzLgor LSAgICAgICAgICovCistICAgICAgICBpZiAoIWZpbHRlcmVkICYmICFwcml2LT51c2Vfc3lzX2tl eW1hcCkgewogLSAgICAgICAgICAgIGdjaGFyIGJ1ZmZbOF0gPSB7IDAsIH07CiAtICAgICAgICAg ICAgYnVmZltnX3VuaWNoYXJfdG9fdXRmOCAoY2gsIGJ1ZmYpXSA9ICdcMCc7CiAtICAgICAgICAg ICAgaWJ1c193YXlsYW5kX2ltX2NvbW1pdF90ZXh0ICh3bGltLCBidWZmKTsKQEAgLTE4MTgsNyAr MTIyNywxNiBAQCBpbmRleCBjZDkyYTk4OC4uMWUxZTI3MmMgMTAwNjQ0CiArICAgIH0KICsjdW5k ZWYgX0lCVVNfTk9fVEVYVF9JTlBVVF9NT0RfTUFTSwogKwotKyAgICBpZiAoIWZpbHRlcmVkICYm ICFnX3VuaWNoYXJfaXNjbnRybCAoY2gpKSB7CisrICAgIC8qIEluIGNhc2UgYHVzZV9zeXNfa2V5 bWFwYCBpcyAlVFJVRSwgSUJ1cyBkb2VzIG5vdCBjb21taXQgQVNDSUkgY2hhcnMKKysgICAgICog YnV0IGZvcndhcmRzIHRoZSBrZXkgZXZlbnRzIHRvIHRoZSBmb2N1c2VkIGFwcGxpY2F0aW9uIGhl cmUuCisrICAgICAqIEJlY2F1c2Ugc29tZSBhcHBsaWNhdGlvbnMgdHJlYXQgdGhlIHByaW50YWJs ZSBrZXlzIGFzIGNvbnRyb2wga2V5cywKKysgICAgICogRS5nLiBnYW1lIGFwcHMgImhqa2wiIHVz ZSB0aGUgY3Vyc29yIG1vdmUgbGlrZSBWSSBtb2RlLgorKyAgICAgKiBVbmZvcnR1bmF0ZWx5IHRo ZSBXYXlsYW5kIGlucHV0LW1ldGhvZCBwcm90b2NvbCBkb2VzIG5vdCBwcm92aWRlCisrICAgICAq IHRoZSBmYWxsYmFjayBsb2dpYyBhZnRlciBhcHBzIGhhbmRsZSB0aGUga2V5IGV2ZW50cyBsaWtl IEdUSzMvMgorKyAgICAgKiBJTSBtb2R1bGVzLiBCdXQgVGhlIGlucHV0LW1ldGhvZCBhbHdheXMg c2hvdWxkIGhhbmRsZXMga2V5IGV2ZW50cworKyAgICAgKiBwcmlvciB0byBhcHBzLgorKyAgICAg Ki8KKysgICAgaWYgKCFmaWx0ZXJlZCAmJiAhZ191bmljaGFyX2lzY250cmwgKGNoKSAmJiAhcHJp di0+dXNlX3N5c19rZXltYXApIHsKICsgICAgICAgIGdjaGFyIGJ1ZmZbOF0gPSB7IDAsIH07CiAr ICAgICAgICBidWZmW2dfdW5pY2hhcl90b191dGY4IChjaCwgYnVmZildID0gJ1wwJzsKICsgICAg ICAgIGlidXNfd2F5bGFuZF9pbV9jb21taXRfdGV4dCAod2xpbSwgYnVmZik7CkBAIC0xODI4LDcg KzEyNDYsNyBAQCBpbmRleCBjZDkyYTk4OC4uMWUxZTI3MmMgMTAwNjQ0CiAgICAgICAgICAvKiBJ ZiBgZmlsdGVyZWRgIGlzICVUUlVFLCB0aGUga2V5c3ltIGNhbiBiZSBlYXRlbiBmb3IgdGhlIGNv bXBvc2UKICAgICAgICAgICAqIHByZWVkaXQgYnkgSUJ1cyBYS0IgZW5naW5lLiBFLmcuIEFsdEdy LVNoaWZ0LVYga2V5IHByb2R1Y2VzCiAgICAgICAgICAgKiBgTGV2ZWwzX1NoaWZ0JyBhbmQgYEdy ZWVrX09NRUdBYCBrZXlzeW0gd2l0aCAidXMoc3ltYm9saWMpIiBrZXltYXAuCi1AQCAtNDQ1LDE5 ICs0NTgsNDIgQEAgaWJ1c193YXlsYW5kX2ltX2NvbW1pdF9rZXlfZXZlbnQgKElCdXNXYXlsYW5k SU0gICp3bGltLAorQEAgLTQ1NiwxOSArNDY5LDQyIEBAIGlidXNfd2F5bGFuZF9pbV9jb21taXRf a2V5X2V2ZW50IChJQnVzV2F5bGFuZElNICAqd2xpbSwKICAgICAgICAgICAqIEknbSBub3QgY2xh cmlmaWVkIHdpdGggImxldmVsMyhyYWx0X3N3aXRjaCkiIGluIHVzIFhLQiBrZXltYXBzLgogICAg ICAgICAgICovCiAgICAgICAgICBpZiAobW9kaWZpZXJzICYgSUJVU19NT0QzX01BU0spIHsKQEAg LTE4NzYsNyArMTI5NCw3IEBAIGluZGV4IGNkOTJhOTg4Li4xZTFlMjcyYyAxMDA2NDQKICAgICAg cmV0dXJuIGZpbHRlcmVkOwogIH0KICAKLUBAIC01NDcsNyArNTgzLDggQEAgaWJ1c193YXlsYW5k X2ltX3VwZGF0ZV92aXJ0dWFsX2RlcHJlc3NlZCAoSUJ1c1dheWxhbmRJTSAgKndsaW0sCitAQCAt NTU4LDcgKzU5NCw4IEBAIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF9kZXByZXNzZWQg KElCdXNXYXlsYW5kSU0gICp3bGltLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElCdXNYa2JLZXltYXAgICphY3RpdmVfa2V5LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBmaWx0ZXJlZCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4a2JfbW9kX21hc2tfdCAqbW9k c19kZXByZXNzZWQsCkBAIC0xODg2LDcgKzEzMDQsNyBAQCBpbmRleCBjZDkyYTk4OC4uMWUxZTI3 MmMgMTAwNjQ0CiAgewogICAgICBJQnVzV2F5bGFuZElNUHJpdmF0ZSAqcHJpdjsKICAgICAgdWlu dDMyX3QgY29kZSA9IGtleSArIDg7Ci1AQCAtNTYxLDYgKzU5OCw3IEBAIGlidXNfd2F5bGFuZF9p bV91cGRhdGVfdmlydHVhbF9kZXByZXNzZWQgKElCdXNXYXlsYW5kSU0gICp3bGltLAorQEAgLTU3 Miw2ICs2MDksNyBAQCBpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxfZGVwcmVzc2VkIChJ QnVzV2F5bGFuZElNICAqd2xpbSwKICAgICAgZ19hc3NlcnQgKGFjdGl2ZV9rZXkpOwogICAgICBn X2Fzc2VydCAobW9kc19kZXByZXNzZWQpOwogICAgICBnX2Fzc2VydCAoY2xlYXJfdmlydHVhbF9z dGF0ZSk7CkBAIC0xODk0LDcgKzEzMTIsNyBAQCBpbmRleCBjZDkyYTk4OC4uMWUxZTI3MmMgMTAw NjQ0CiAgCiAgICAgIHByaXYgPSBpYnVzX3dheWxhbmRfaW1fZ2V0X2luc3RhbmNlX3ByaXZhdGUg KHdsaW0pOwogICAgICBuZXdfbW9kc19kZXByZXNzZWQgPSAqbW9kc19kZXByZXNzZWQ7Ci1AQCAt NTg1LDEzICs2MjMsMTkgQEAgaWJ1c193YXlsYW5kX2ltX3VwZGF0ZV92aXJ0dWFsX2RlcHJlc3Nl ZCAoSUJ1c1dheWxhbmRJTSAgKndsaW0sCitAQCAtNTk2LDEzICs2MzQsMTkgQEAgaWJ1c193YXls YW5kX2ltX3VwZGF0ZV92aXJ0dWFsX2RlcHJlc3NlZCAoSUJ1c1dheWxhbmRJTSAgKndsaW0sCiAg ICAgICAgICBpZiAoc3RhdGUgPT0gV0xfS0VZQk9BUkRfS0VZX1NUQVRFX1BSRVNTRUQpIHsKICAg ICAgICAgICAgICBzd2l0Y2ggKHN5bSkgewogICAgICAgICAgICAgIGNhc2UgSUJVU19LRVlfSVNP X0xldmVsM19MYXRjaDoKQEAgLTE5MTYsNyArMTMzNCw3IEBAIGluZGV4IGNkOTJhOTg4Li4xZTFl MjcyYyAxMDA2NDQKICAgICAgICAgICAgICAgICAgbmV3X21vZHNfZGVwcmVzc2VkIHw9IGFjdGl2 ZV9rZXktPm1vZDNfbWFzazsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg ZGVmYXVsdDoKLUBAIC02MDIsNjEgKzY0Niw3MCBAQCBpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3Zp cnR1YWxfZGVwcmVzc2VkIChJQnVzV2F5bGFuZElNICAqd2xpbSwKK0BAIC02MTMsNjEgKzY1Nyw3 MCBAQCBpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxfZGVwcmVzc2VkIChJQnVzV2F5bGFu ZElNICAqd2xpbSwKICAgICAgICAgICAgICBmaWx0ZXJlZCA9IFRSVUU7CiAgICAgICAgICB9IGVs c2UgewogICAgICAgICAgICAgIElCdXNLZXlJc29MZXZlbFZhbHVlIGN1cnJlbnRfbGV2ZWwgPSBJ QlVTX0tFWV9JU09fTEVWRUxfSU5WQUxJRDsKQEAgLTIwMjAsNyArMTQzOCw3IEBAIGluZGV4IGNk OTJhOTg4Li4xZTFlMjcyYyAxMDA2NDQKICAgICAgICAgIH0KICAgICAgICAgIGJyZWFrOwogICAg ICBjYXNlIElCVVNfS0VZX1NoaWZ0X0w6Ci1AQCAtNjk1LDcgKzc0OCw4IEBAIGlidXNfd2F5bGFu ZF9pbV91cGRhdGVfdmlydHVhbF94a2Jfc3RhdGUgKElCdXNXYXlsYW5kSU0gKndsaW0sCitAQCAt NzA2LDcgKzc1OSw4IEBAIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF94a2Jfc3RhdGUg KElCdXNXYXlsYW5kSU0gKndsaW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSUJ1c1hrYktleW1hcCAqYWN0aXZlX2tleSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB4a2JfbW9kX21hc2tfdCBtb2RzX2RlcHJlc3NlZCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4a2JfbW9kX21hc2tfdCBu ZXdfbW9kc19kZXByZXNzZWQsCkBAIC0yMDMwLDcgKzE0NDgsNyBAQCBpbmRleCBjZDkyYTk4OC4u MWUxZTI3MmMgMTAwNjQ0CiAgewogICAgICBJQnVzV2F5bGFuZElNUHJpdmF0ZSAqcHJpdjsKICAg ICAgdWludDMyX3QgY29kZSA9IGtleSArIDg7Ci1AQCAtNzI0LDggKzc3OCw5IEBAIGlidXNfd2F5 bGFuZF9pbV91cGRhdGVfdmlydHVhbF94a2Jfc3RhdGUgKElCdXNXYXlsYW5kSU0gKndsaW0sCitA QCAtNzM1LDggKzc4OSw5IEBAIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF94a2Jfc3Rh dGUgKElCdXNXYXlsYW5kSU0gKndsaW0sCiAgICAgICAgICBpZiAoY2xlYXJfdmlydHVhbF9zdGF0 ZSkKICAgICAgICAgICAgICBwcml2LT5pc192aXJ0dWFsX2xhdGNoX3N0YXRlID0gRkFMU0U7CiAg ICAgIH0KQEAgLTIwNDIsNyArMTQ2MCw3IEBAIGluZGV4IGNkOTJhOTg4Li4xZTFlMjcyYyAxMDA2 NDQKICAgICAgICAgIHhrYl9zdGF0ZV91cGRhdGVfa2V5IChhY3RpdmVfa2V5LT5zdGF0ZSwgY29k ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RhdGUgPT0gV0xfS0VZQk9BUkRf S0VZX1NUQVRFX1JFTEVBU0VEKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gWEtC X0tFWV9VUCA6IFhLQl9LRVlfRE9XTik7Ci1AQCAtNzQwLDcgKzc5NSw4IEBAIGlidXNfd2F5bGFu ZF9pbV91cGRhdGVfdmlydHVhbF94a2Jfc3RhdGUgKElCdXNXYXlsYW5kSU0gKndsaW0sCitAQCAt NzUxLDcgKzgwNiw4IEBAIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF94a2Jfc3RhdGUg KElCdXNXYXlsYW5kSU0gKndsaW0sCiAgICAgICAgICAvKiAiZGUoVDMpIiBrZXltYXAgZ2l2ZXMg dGhlIHByZXNzZWQgIkxldmVsM19TaGlmdCIga2V5c3ltIGFuZAogICAgICAgICAgICogc2V0cyBi b3RoIE1PRDMoTGV2ZWw1KSBhbmQgTU9ENShMZXZlbDMpIHN0YXRlcyBhZnRlcgogICAgICAgICAg ICogeGtiX3N0YXRlX3VwZGF0ZV9rZXkoKSBpcyBjYWxsZWQgd2l0aCB0aGUga2V5cHJlc3MuCkBA IC0yMDUyLDcgKzE0NzAsNyBAQCBpbmRleCBjZDkyYTk4OC4uMWUxZTI3MmMgMTAwNjQ0CiAgICAg ICAgICAgKi8KICAgICAgICAgIGlmIChHX1VOTElLRUxZIChuZXdfbW9kc19kZXByZXNzZWQgIT0g bmV3Ml9tb2RzX2RlcHJlc3NlZCkpIHsKICAgICAgICAgICAgICB4a2Jfc3RhdGVfdXBkYXRlX21h c2sgKGFjdGl2ZV9rZXktPnN0YXRlLCBuZXdfbW9kc19kZXByZXNzZWQsCi1AQCAtMTU5MSw2ICsx NjQ3LDcgQEAgaWJ1c193YXlsYW5kX2ltX3Bvc3Rfa2V5IChJQnVzV2F5bGFuZElNICp3bGltLAor QEAgLTE2MTcsNiArMTY3Myw3IEBAIGlidXNfd2F5bGFuZF9pbV9wb3N0X2tleSAoSUJ1c1dheWxh bmRJTSAqd2xpbSwKICAgICAgSUJ1c1hrYktleW1hcCAqYWN0aXZlX2tleTsKICAgICAgeGtiX21v ZF9tYXNrX3QgbW9kc19kZXByZXNzZWQsIG5ld19tb2RzX2RlcHJlc3NlZDsKICAgICAgZ2Jvb2xl YW4gY2xlYXJfdmlydHVhbF9zdGF0ZSA9IEZBTFNFOwpAQCAtMjA2MCw3ICsxNDc4LDcgQEAgaW5k ZXggY2Q5MmE5ODguLjFlMWUyNzJjIDEwMDY0NAogIAogICAgICBnX3JldHVybl92YWxfaWZfZmFp bCAoSUJVU19JU19XQVlMQU5EX0lNICh3bGltKSwgRkFMU0UpOwogICAgICBwcml2ID0gaWJ1c193 YXlsYW5kX2ltX2dldF9pbnN0YW5jZV9wcml2YXRlICh3bGltKTsKLUBAIC0xNjI2LDcgKzE2ODMs OCBAQCBpYnVzX3dheWxhbmRfaW1fcG9zdF9rZXkgKElCdXNXYXlsYW5kSU0gKndsaW0sCitAQCAt MTY1Miw3ICsxNzA5LDggQEAgaWJ1c193YXlsYW5kX2ltX3Bvc3Rfa2V5IChJQnVzV2F5bGFuZElN ICp3bGltLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFjdGl2ZV9rZXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyZWQsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ld19tb2RzX2RlcHJlc3NlZCwK QEAgLTIwNzAsNyArMTQ4OCw3IEBAIGluZGV4IGNkOTJhOTg4Li4xZTFlMjcyYyAxMDA2NDQKICAg ICAgZmlsdGVyZWQgPSBpYnVzX3dheWxhbmRfaW1fY29tbWl0X2tleV9ldmVudCAod2xpbSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllcnMs Ci1AQCAtMTYzNSwxNCArMTY5MywxNiBAQCBpYnVzX3dheWxhbmRfaW1fcG9zdF9rZXkgKElCdXNX YXlsYW5kSU0gKndsaW0sCitAQCAtMTY2MSwxNCArMTcxOSwxNiBAQCBpYnVzX3dheWxhbmRfaW1f cG9zdF9rZXkgKElCdXNXYXlsYW5kSU0gKndsaW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZV9rZXksCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmV3X21vZHNfZGVwcmVzc2VkLApA QCAtMjA4OSw3ICsxNTA3LDcgQEAgaW5kZXggY2Q5MmE5ODguLjFlMWUyNzJjIDEwMDY0NAogICAg ICByZXR1cm4gZmlsdGVyZWQ7CiAgfQogIAotQEAgLTIwMjEsNiArMjA4MSwyMSBAQCBrZXlfZXZl bnRfY2hlY2tfcmVwZWF0IChJQnVzV2F5bGFuZElNICAgICAgICp3bGltLAorQEAgLTIwNDcsNiAr MjEwNywyMSBAQCBrZXlfZXZlbnRfY2hlY2tfcmVwZWF0IChJQnVzV2F5bGFuZElNICAgICAgICp3 bGltLAogICAgICAgICAgZ19jbGVhcl9wb2ludGVyICgmcmVwZWF0aW5nX2V2ZW50LmlidXNfb2Jq ZWN0X3BhdGgsIGdfZnJlZSk7CiAgICAgICAgICBpZiAoIXByaXYtPmlidXNjb250ZXh0KQogICAg ICAgICAgICAgIHJldHVybiBGQUxTRTsKQEAgLTIxMTEsNyArMTUyOSw3IEBAIGluZGV4IGNkOTJh OTg4Li4xZTFlMjcyYyAxMDA2NDQKICAgICAgICAgIHNvdXJjZSA9IGdfdGltZW91dF9zb3VyY2Vf bmV3IChwcml2LT5yZXBlYXRfZGVsYXkpOwogICAgICAgICAgZ19zb3VyY2VfYXR0YWNoIChzb3Vy Y2UsIE5VTEwpOwogICAgICAgICAgZ19zb3VyY2VfdW5yZWYgKHNvdXJjZSk7Ci1AQCAtMjAzNCw2 ICsyMTA5LDMwIEBAIGtleV9ldmVudF9jaGVja19yZXBlYXQgKElCdXNXYXlsYW5kSU0gICAgICAg KndsaW0sCitAQCAtMjA2MCw2ICsyMTM1LDMwIEBAIGtleV9ldmVudF9jaGVja19yZXBlYXQgKElC dXNXYXlsYW5kSU0gICAgICAgKndsaW0sCiAgICAgICAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sg KHNvdXJjZSwgX3Byb2Nlc3Nfa2V5X2V2ZW50X3JlcGVhdF9kZWxheV9jYiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJnJlcGVhdGluZ19ldmVudCwgTlVMTCk7CiAgICAgIH0gZWxz ZSB7CkBAIC0yMTQ1LDY0MiArMTU2MywzIEBAIGluZGV4IGNkOTJhOTg4Li4xZTFlMjcyYyAxMDA2 NDQKIC0tIAogMi41My4wCiAKLUZyb20gNjZjM2I0YTAyZTk3NWMyMzBlZDhlYWFiM2RkMDMxMWU0 MGRhN2I3YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8u ZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjkgTWF5IDIwMjYgMTc6NDM6MzUgKzA5 MDAKLVN1YmplY3Q6IFtQQVRDSCA2LzldIGNsaWVudC93YXlsYW5kOiBJbXBsZW1lbnQgSUJ1c1dh eWxhbmRJTTp1c2Utc3lzdGVtLWtleW1hcAotCi1TdXBwb3J0IHRvIHVzZSB0aGUgc2Vzc2lvbiBr ZXltYXAgZm9yY2libHkgcmVnYXJkbGVzcyBvZiBJQnVzIFhLQgotZW5naW5lcy4gQWxzbyBsZXQg ZWFjaCBhcHBsaWNhdGlvbiBoYW5kbGUgQVNDSUkga2V5cyBzaW5jZSB0aGUgV2F5bGFuZAotaW5w dXQtbWV0aG9kIHByb3RvY29sIGRvZXMgbm90IHN1cHBvcnQgdG8gaGFuZGxlIGtleXMgYWZ0ZXIg YXBwbGljYXRpb25zCi1oYW5kbGUgb25lLgotLS0tCi0gY2xpZW50L3dheWxhbmQvaWJ1c3dheWxh bmRpbS5jIHwgNDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQotIDEgZmlsZSBj aGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEv Y2xpZW50L3dheWxhbmQvaWJ1c3dheWxhbmRpbS5jIGIvY2xpZW50L3dheWxhbmQvaWJ1c3dheWxh bmRpbS5jCi1pbmRleCAxZTFlMjcyYy4uNTc2MmYxMGIgMTAwNjQ0Ci0tLS0gYS9jbGllbnQvd2F5 bGFuZC9pYnVzd2F5bGFuZGltLmMKLSsrKyBiL2NsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0u YwotQEAgLTQ3LDcgKzQ3LDggQEAgZW51bSB7Ci0gICAgIFBST1BfQlVTLAotICAgICBQUk9QX0RJ U1BMQVksCi0gICAgIFBST1BfTE9HLAotLSAgICBQUk9QX1ZFUkJPU0UKLSsgICAgUFJPUF9WRVJC T1NFLAotKyAgICBQUk9QX1VTRV9TWVNfS0VZTUFQCi0gfTsKLSAKLSBlbnVtIHsKLUBAIC0xMzgs NiArMTM5LDcgQEAgc3RydWN0IF9JQnVzV2F5bGFuZElNUHJpdmF0ZQotIHsKLSAgICAgRklMRSAq bG9nOwotICAgICBnYm9vbGVhbiB2ZXJib3NlOwotKyAgICBnYm9vbGVhbiB1c2Vfc3lzX2tleW1h cDsKLSAgICAgc3RydWN0IHdsX2Rpc3BsYXkgKmRpc3BsYXk7Ci0gICAgIElNUHJvdG9jb2xWZXJz aW9uIHZlcnNpb247Ci0gCi1AQCAtNDQzLDcgKzQ0NSwxNiBAQCBpYnVzX3dheWxhbmRfaW1fY29t bWl0X2tleV9ldmVudCAoSUJ1c1dheWxhbmRJTSAgKndsaW0sCi0gICAgIH0KLSAjdW5kZWYgX0lC VVNfTk9fVEVYVF9JTlBVVF9NT0RfTUFTSwotIAotLSAgICBpZiAoIWZpbHRlcmVkICYmICFnX3Vu aWNoYXJfaXNjbnRybCAoY2gpKSB7Ci0rICAgIC8qIEluIGNhc2UgYHVzZV9zeXNfa2V5bWFwYCBp cyAlVFJVRSwgSUJ1cyBkb2VzIG5vdCBjb21taXQgQVNDSUkgY2hhcnMKLSsgICAgICogYnV0IGZv cndhcmRzIHRoZSBrZXkgZXZlbnRzIHRvIHRoZSBmb2N1c2VkIGFwcGxpY2F0aW9uIGhlcmUuCi0r ICAgICAqIEJlY2F1c2Ugc29tZSBhcHBsaWNhdGlvbnMgdHJlYXQgdGhlIHByaW50YWJsZSBrZXlz IGFzIGNvbnRyb2wga2V5cywKLSsgICAgICogRS5nLiBnYW1lIGFwcHMgImhqa2wiIHVzZSB0aGUg Y3Vyc29yIG1vdmUgbGlrZSBWSSBtb2RlLgotKyAgICAgKiBVbmZvcnR1bmF0ZWx5IHRoZSBXYXls YW5kIGlucHV0LW1ldGhvZCBwcm90b2NvbCBkb2VzIG5vdCBwcm92aWRlCi0rICAgICAqIHRoZSBm YWxsYmFjayBsb2dpYyBhZnRlciBhcHBzIGhhbmRsZSB0aGUga2V5IGV2ZW50cyBsaWtlIEdUSzMv MgotKyAgICAgKiBJTSBtb2R1bGVzLiBCdXQgVGhlIGlucHV0LW1ldGhvZCBhbHdheXMgc2hvdWxk IGhhbmRsZXMga2V5IGV2ZW50cwotKyAgICAgKiBwcmlvciB0byBhcHBzLgotKyAgICAgKi8KLSsg ICAgaWYgKCFmaWx0ZXJlZCAmJiAhZ191bmljaGFyX2lzY250cmwgKGNoKSAmJiAhcHJpdi0+dXNl X3N5c19rZXltYXApIHsKLSAgICAgICAgIGdjaGFyIGJ1ZmZbOF0gPSB7IDAsIH07Ci0gICAgICAg ICBidWZmW2dfdW5pY2hhcl90b191dGY4IChjaCwgYnVmZildID0gJ1wwJzsKLSAgICAgICAgIGli dXNfd2F5bGFuZF9pbV9jb21taXRfdGV4dCAod2xpbSwgYnVmZik7Ci1AQCAtMTUxMiw3ICsxNTIz LDcgQEAgX2J1c19nbG9iYWxfZW5naW5lX2NoYW5nZWRfY2IgKElCdXNCdXMgICAgICAgKmJ1cywK LSB7Ci0gICAgIElCdXNXYXlsYW5kSU1Qcml2YXRlICpwcml2OwotICAgICBJQnVzRW5naW5lRGVz YyAqZGVzYzsKLS0gICAgc3RydWN0IHhrYl9rZXltYXAgKmtleW1hcDsKLSsgICAgc3RydWN0IHhr Yl9rZXltYXAgKmtleW1hcCA9IE5VTEw7Ci0gCi0gICAgIGdfcmV0dXJuX2lmX2ZhaWwgKElCVVNf SVNfQlVTIChidXMpKTsKLSAgICAgZ19yZXR1cm5faWZfZmFpbCAoSUJVU19JU19XQVlMQU5EX0lN ICh3bGltKSk7Ci1AQCAtMTUyMSw3ICsxNTMyLDggQEAgX2J1c19nbG9iYWxfZW5naW5lX2NoYW5n ZWRfY2IgKElCdXNCdXMgICAgICAgKmJ1cywKLSAgICAgaWJ1c193YXlsYW5kX2ltX3Jlc2V0X21v ZGlmaWVycyAod2xpbSk7Ci0gICAgIGdfYXNzZXJ0IChkZXNjKTsKLSAgICAgZ19hc3NlcnQgKCFn X3N0cmNtcDAgKGlidXNfZW5naW5lX2Rlc2NfZ2V0X25hbWUgKGRlc2MpLCBlbmdpbmVfbmFtZSkp OwotLSAgICBrZXltYXAgPSBjcmVhdGVfdXNlcl94a2Jfa2V5bWFwIChwcml2LT54a2JfY29udGV4 dCwgZGVzYyk7Ci0rICAgIGlmICghcHJpdi0+dXNlX3N5c19rZXltYXApCi0rICAgICAgICBrZXlt YXAgPSBjcmVhdGVfdXNlcl94a2Jfa2V5bWFwIChwcml2LT54a2JfY29udGV4dCwgZGVzYyk7Ci0g ICAgIGlmIChrZXltYXAgJiYgIWlidXNfeGtiX2tleW1hcF91cGRhdGVfd2l0aF9rZXltYXAgKCZw cml2LT5rZXlfdXNlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAga2V5bWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAwKSkgewotQEAgLTMxNzksNiArMzE5MSwyMSBAQCBpYnVz X3dheWxhbmRfaW1fY2xhc3NfaW5pdCAoSUJ1c1dheWxhbmRJTUNsYXNzICpjbGFzcykKLSAgICAg ICAgICAgICAgICAgICAgICAgICBGQUxTRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBHX1BB UkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKTsKLSAKLSsgICAgLyoqCi0r ICAgICAqIElCdXNXYXlsYW5kSU06dXNlLXN5c3RlbS1rZXltYXA6Ci0rICAgICAqCi0rICAgICAq IFVzZSBzeXN0ZW0ga2V5bWFwLgotKyAgICAgKiAlVFJVRSBpZiB0aGUgc2Vzc2lvbiBrZXltYXAg aXMgdXNlZCBmb3JjaWJseSBpbnN0ZWFkIG9mIGtleW1hcHMgb2YgdGhlCi0rICAgICAqIElCdXMg WEtCIGVuZ2luZXMsIG90aGVyd2lzZSAlRkFMU0UuCi0rICAgICAqLwotKyAgICBnX29iamVjdF9j bGFzc19pbnN0YWxsX3Byb3BlcnR5IChnb2JqZWN0X2NsYXNzLAotKyAgICAgICAgICAgICAgICAg ICAgUFJPUF9VU0VfU1lTX0tFWU1BUCwKLSsgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3Bl Y19ib29sZWFuICgidXNlLXN5c3RlbS1rZXltYXAiLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICJ1c2Ugc3lzdGVtIGtleW1hcCIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgIlVzZSBzeXN0 ZW0ga2V5bWFwIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICBHX1BBUkFNX1JFQURXUklURSkpOwotKwotICAgICAvKiBpbnN0YWxsIHNp Z25hbHMgKi8KLSAgICAgLyogdGhpcyBtb2R1bGUgY2FuIGNhbGwgaWJ1c19pbnB1dF9jb250ZXh0 X2ZvY3VzX2luKCkgYW5kIHRoZSBmb2N1cy1pbgotICAgICAgKiBzaWduYWwgY2FuIHJlYWNoIHRo ZSBJQnVzIHBhbmVsIGFuZCB0aGlzIGFsc28gY2FuIGNhbGwKLUBAIC0zMzE1LDcgKzMzNDIsNyBA QCBpYnVzX3dheWxhbmRfaW1fY29uc3RydWN0b3IgKEdUeXBlICAgICAgICAgICAgICAgICAgdHlw ZSwKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0gICAgIGRlc2MgPSBpYnVzX2J1c19n ZXRfZ2xvYmFsX2VuZ2luZSAocHJpdi0+aWJ1c2J1cyk7Ci0tICAgIGlmIChkZXNjKQotKyAgICBp ZiAoZGVzYyAmJiAhcHJpdi0+dXNlX3N5c19rZXltYXApCi0gICAgICAgICBrZXltYXAgPSBjcmVh dGVfdXNlcl94a2Jfa2V5bWFwIChwcml2LT54a2JfY29udGV4dCwgZGVzYyk7Ci0gICAgIGlmIChr ZXltYXAgJiYgIWlidXNfeGtiX2tleW1hcF91cGRhdGVfd2l0aF9rZXltYXAgKCZwcml2LT5rZXlf dXNlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAga2V5bWFwLAotQEAgLTM0MDgsNiArMzQzNSw5IEBAIGlidXNfd2F5bGFuZF9pbV9zZXRf cHJvcGVydHkgKElCdXNXYXlsYW5kSU0gKndsaW0sCi0gICAgICAgICBnX2Fzc2VydCAoIXByaXYt PnZlcmJvc2UpOwotICAgICAgICAgcHJpdi0+dmVyYm9zZSA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4g KHZhbHVlKTsKLSAgICAgICAgIGJyZWFrOwotKyAgICBjYXNlIFBST1BfVVNFX1NZU19LRVlNQVA6 Ci0rICAgICAgICBwcml2LT51c2Vfc3lzX2tleW1hcCA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4gKHZh bHVlKTsKLSsgICAgICAgIGJyZWFrOwotICAgICBkZWZhdWx0OgotICAgICAgICAgR19PQkpFQ1Rf V0FSTl9JTlZBTElEX1BST1BFUlRZX0lEICh3bGltLCBwcm9wX2lkLCBwc3BlYyk7Ci0gICAgIH0K LUBAIC0zNDM3LDYgKzM0NjcsOSBAQCBpYnVzX3dheWxhbmRfaW1fZ2V0X3Byb3BlcnR5IChJQnVz V2F5bGFuZElNICp3bGltLAotICAgICBjYXNlIFBST1BfVkVSQk9TRToKLSAgICAgICAgIGdfdmFs dWVfc2V0X2Jvb2xlYW4gKHZhbHVlLCBwcml2LT52ZXJib3NlKTsKLSAgICAgICAgIGJyZWFrOwot KyAgICBjYXNlIFBST1BfVVNFX1NZU19LRVlNQVA6Ci0rICAgICAgICBnX3ZhbHVlX3NldF9ib29s ZWFuICh2YWx1ZSwgcHJpdi0+dXNlX3N5c19rZXltYXApOwotKyAgICAgICAgYnJlYWs7Ci0gICAg IGRlZmF1bHQ6Ci0gICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKHds aW0sIHByb3BfaWQsIHBzcGVjKTsKLSAgICAgfQotLS0gCi0yLjUzLjAKLQotRnJvbSA4ODQ2M2Zj ZmVkYjAxN2E0N2U1NDkzNzI2ZDE1NTEwZmM3MjM5MTM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogRnJp LCAyOSBNYXkgMjAyNiAxNzo0Mzo0MyArMDkwMAotU3ViamVjdDogW1BBVENIIDcvOV0gdWkvZ3Rr MzogU3VwcG9ydCB1c2Utc3lzdGVtLWtleWJvYXJkLWxheW91dCBmb3IgV2F5bGFuZAotCi0tLS0K LSB1aS9ndGszL2FwcGxpY2F0aW9uLnZhbGEgfCA3ICsrKysrKysKLSB1aS9ndGszL3BhbmVsLnZh bGEgICAgICAgfCA3ICsrKystLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS91aS9ndGszL2FwcGxpY2F0aW9uLnZhbGEg Yi91aS9ndGszL2FwcGxpY2F0aW9uLnZhbGEKLWluZGV4IGE5OTYyNjg1Li5kODJiY2M3NiAxMDA2 NDQKLS0tLSBhL3VpL2d0azMvYXBwbGljYXRpb24udmFsYQotKysrIGIvdWkvZ3RrMy9hcHBsaWNh dGlvbi52YWxhCi1AQCAtMzksNiArMzksNyBAQCBjbGFzcyBBcHBsaWNhdGlvbiB7Ci0gI2lmIFVT RV9HREtfV0FZTEFORAotICAgICBwcml2YXRlIHN0YXRpYyB1bG9uZyBtX2J1c19jb25uZWN0ZWRf aWQ7Ci0gICAgIHByaXZhdGUgc3RhdGljIHVsb25nIG1fcmVhbGl6ZV9zdXJmYWNlX2lkOwotKyAg ICBwcml2YXRlIHN0YXRpYyB1bG9uZyBtX3VzZV9zeXN0ZW1fa2V5bWFwX2lkOwotICAgICBwcml2 YXRlIHN0YXRpYyB1bG9uZyBtX2lidXNfZm9jdXNfaW5faWQ7Ci0gICAgIHByaXZhdGUgc3RhdGlj IHVsb25nIG1faWJ1c19mb2N1c19vdXRfaWQ7Ci0gICAgIHByaXZhdGUgc3RhdGljIHN0cmluZyBt X3VzZXI7Ci1AQCAtMTE1LDYgKzExNiw4IEBAIGNsYXNzIEFwcGxpY2F0aW9uIHsKLSAgICAgICAg IGlmIChtX3dheWxhbmRfaW0gIT0gbnVsbCkgewotICAgICAgICAgICAgIG1fcmVhbGl6ZV9zdXJm YWNlX2lkID0gbV9wYW5lbC5yZWFsaXplX3N1cmZhY2UuY29ubmVjdCgKLSAgICAgICAgICAgICAg ICAgICAgICh3LCBzKSA9PiB0aGlzLnNldF93YXlsYW5kX3N1cmZhY2UocykpOwotKyAgICAgICAg ICAgIG1fdXNlX3N5c3RlbV9rZXltYXBfaWQgPSBtX3BhbmVsLnVzZV9zeXN0ZW1fa2V5bWFwLmNv bm5lY3QoCi0rICAgICAgICAgICAgICAgICAgICAodywgYikgPT4gbV93YXlsYW5kX2ltLnVzZV9z eXN0ZW1fa2V5bWFwID0gYik7Ci0gICAgICAgICAgICAgbV9pYnVzX2ZvY3VzX2luX2lkID0gbV93 YXlsYW5kX2ltLmlidXNfZm9jdXNfaW4uY29ubmVjdCgKLSAgICAgICAgICAgICAgICAgICAgICh3 LCBvKSA9PiBtX3BhbmVsLnNldF93YXlsYW5kX29iamVjdF9wYXRoKG8pKTsKLSAgICAgICAgICAg ICBtX2lidXNfZm9jdXNfb3V0X2lkID0gbV93YXlsYW5kX2ltLmlidXNfZm9jdXNfb3V0LmNvbm5l Y3QoCi1AQCAtMTQ2LDYgKzE0OSwxMCBAQCBjbGFzcyBBcHBsaWNhdGlvbiB7Ci0gICAgICAgICAg ICAgR0xpYi5TaWduYWxIYW5kbGVyLmRpc2Nvbm5lY3QobV9wYW5lbCwgbV9yZWFsaXplX3N1cmZh Y2VfaWQpOwotICAgICAgICAgICAgIG1fcmVhbGl6ZV9zdXJmYWNlX2lkID0gMDsKLSAgICAgICAg IH0KLSsgICAgICAgIGlmIChtX3VzZV9zeXN0ZW1fa2V5bWFwX2lkICE9IDApIHsKLSsgICAgICAg ICAgICBHTGliLlNpZ25hbEhhbmRsZXIuZGlzY29ubmVjdChtX3BhbmVsLCBtX3VzZV9zeXN0ZW1f a2V5bWFwX2lkKTsKLSsgICAgICAgICAgICBtX3VzZV9zeXN0ZW1fa2V5bWFwX2lkID0gMDsKLSsg ICAgICAgIH0KLSAgICAgICAgIGlmIChtX2lidXNfZm9jdXNfaW5faWQgIT0gMCkgewotICAgICAg ICAgICAgIEdMaWIuU2lnbmFsSGFuZGxlci5kaXNjb25uZWN0KG1fd2F5bGFuZF9pbSwgbV9pYnVz X2ZvY3VzX2luX2lkKTsKLSAgICAgICAgICAgICBtX2lidXNfZm9jdXNfaW5faWQgPSAwOwotZGlm ZiAtLWdpdCBhL3VpL2d0azMvcGFuZWwudmFsYSBiL3VpL2d0azMvcGFuZWwudmFsYQotaW5kZXgg YTEzYjg3NzMuLmE0MTZhNmVmIDEwMDY0NAotLS0tIGEvdWkvZ3RrMy9wYW5lbC52YWxhCi0rKysg Yi91aS9ndGszL3BhbmVsLnZhbGEKLUBAIC0xMDQsOSArMTA0LDcgQEAgY2xhc3MgUGFuZWwgOiBJ QnVzLlBhbmVsU2VydmljZSB7Ci0gI2lmIFVTRV9HREtfV0FZTEFORAotICAgICBwcml2YXRlIHN0 cmluZz8gbV93YXlsYW5kX29iamVjdF9wYXRoOwotICAgICBwdWJsaWMgc2lnbmFsIHZvaWQgcmVh bGl6ZV9zdXJmYWNlKHZvaWQgKnN1cmZhY2UpOwotLSAgICBwdWJsaWMgc2lnbmFsIHZvaWQgdXBk YXRlX3Nob3J0Y3V0X2tleXMoCi0tICAgICAgICAgICAgSUJ1cy5Qcm9jZXNzS2V5RXZlbnREYXRh W10gZGF0YSwKLS0gICAgICAgICAgICBCaW5kaW5nQ29tbW9uLktleUV2ZW50RnVuY1R5cGUgZnR5 cGUpOwotKyAgICBwdWJsaWMgc2lnbmFsIHZvaWQgdXNlX3N5c3RlbV9rZXltYXAoYm9vbCB1c2Vf c3lzX2tleW1hcCk7Ci0gI2VuZGlmCi0gCi0gICAgIHB1YmxpYyBQYW5lbChJQnVzLkJ1cyBidXMs Ci1AQCAtNzQ3LDYgKzc0NSw5IEBAIGNsYXNzIFBhbmVsIDogSUJ1cy5QYW5lbFNlcnZpY2Ugewot ICAgICBwcml2YXRlIHZvaWQgc2V0X3VzZV9zeXN0ZW1fa2V5Ym9hcmRfbGF5b3V0KCkgewotICAg ICAgICAgbV91c2Vfc3lzdGVtX2tleWJvYXJkX2xheW91dCA9Ci0gICAgICAgICAgICAgICAgIG1f c2V0dGluZ3NfZ2VuZXJhbC5nZXRfYm9vbGVhbigidXNlLXN5c3RlbS1rZXlib2FyZC1sYXlvdXQi KTsKLSsjaWYgVVNFX0dES19XQVlMQU5ECi0rICAgICAgICB1c2Vfc3lzdGVtX2tleW1hcChtX3Vz ZV9zeXN0ZW1fa2V5Ym9hcmRfbGF5b3V0KTsKLSsjZW5kaWYKLSAgICAgfQotIAotICAgICBwcml2 YXRlIHZvaWQgc2V0X2VtYmVkX3ByZWVkaXRfdGV4dCgpIHsKLS0tIAotMi41My4wCi0KLUZyb20g MDdiYzZmN2EzZjEzZDIxMTNlMzQ3ZmI0YzkxN2YxMmQ0YTJmMGVjMSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURh dGU6IEZyaSwgMjkgTWF5IDIwMjYgMTg6MjY6NTQgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSCA4Lzld IHNyYzogVXBkYXRlIElTX0RFQURfS0VZKCkKLQotZXhwb3J0IElTX0RFQURfS0VZKCkgaW4gaWJ1 c2ludGVybmFsLmggZm9yIGlidXMtd2F5bGFuZC4KLUFkZCBlbmdpbmUvdGVzdC1kZWFkLnB5IHRv IGNvbXBhcmUgaWJ1c2ludGVybmFsLmggYW5kIGlidXNrZXlzeW1zLmgKLS0tLQotIGNvbmZpZ3Vy ZS5hYyAgICAgICAgICAgICAgICAgIHwgIDEzICsrKysKLSBlbmdpbmUvTWFrZWZpbGUuYW0gICAg ICAgICAgICB8ICAxMCArKy0KLSBlbmdpbmUvbWVzb24uYnVpbGQgICAgICAgICAgICB8ICAxNiAr Ky0tCi0gZW5naW5lL3Rlc3QtZGVhZC5weSAgICAgICAgICAgfCAxMzYgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwotIG1lc29uLm9wdGlvbnMgICAgICAgICAgICAgICAgIHwgICA1 ICsrCi0gc3JjL2lidXNjb21wb3NldGFibGUuYyAgICAgICAgfCAgMTUgKystLQotIHNyYy9pYnVz ZW5naW5lc2ltcGxlLmMgICAgICAgIHwgICA0ICstCi0gc3JjL2lidXNlbmdpbmVzaW1wbGVwcml2 YXRlLmggfCAgMTIgKy0tCi0gc3JjL2lidXNpbnRlcm5hbC5oICAgICAgICAgICAgfCAgMTEgKyst Ci0gOSBmaWxlcyBjaGFuZ2VkLCAyMDAgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCi0g Y3JlYXRlIG1vZGUgMTAwNzU1IGVuZ2luZS90ZXN0LWRlYWQucHkKLQotZGlmZiAtLWdpdCBhL2Nv bmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggYTU5ZWJlNDcuLjg4YzZkOGZkIDEwMDY0 NAotLS0tIGEvY29uZmlndXJlLmFjCi0rKysgYi9jb25maWd1cmUuYWMKLUBAIC03OTMsNiArNzkz LDE4IEBAIFBLR19DSEVDS19NT0RVTEVTKFhGSVhFUywKLSAgICAgW2hhdmVfeGZpeGVzPSJubyAo bGliWGZpeGVzIHZlcnNpb24gaXMgbG93ZXIgdGhhbiA2KSJdCi0gKQotIAotKyMgLS1lbmFibGUt ZGlzdHJvLXRlc3RzCi0rQUNfQVJHX0VOQUJMRShkaXN0cm8tdGVzdHMsCi0rICAgIEFTX0hFTFBf U1RSSU5HKFstLWVuYWJsZS1kaXN0cm8tdGVzdHNdLAotKyAgICAgICAgICAgICAgICAgICBbRW5h YmxlIHRvIHRlc3QgZGlzdHJvIGZpbGVzXSksCi0rICAgIFtlbmFibGVfZGlzdHJvX3Rlc3RzPSRl bmFibGV2YWxdLAotKyAgICBbZW5hYmxlX2Rpc3Ryb190ZXN0cz1ub10KLSspCi0rQU1fQ09ORElU SU9OQUwoW0VOQUJMRV9ESVNUUk9fVEVTVFNdLCBbdGVzdCB4IiRlbmFibGVfZGlzdHJvX3Rlc3Rz IiA9IHgieWVzIl0pCi0raWYgdGVzdCB4IiRlbmFibGVfZGlzdHJvX3Rlc3RzIiA9IHgibm8iOyB0 aGVuCi0rICAgIGVuYWJsZV9kaXN0cm9fdGVzdHM9Im5vIChkaXNhYmxlZCwgdXNlIC0tZW5hYmxl LWRpc3Ryby10ZXN0cyB0byBlbmFibGUpIgotK2ZpCi0rCi0gIyAtLWVuYWJsZS1pbnN0YWxsLXRl c3RzCi0gQUNfQVJHX0VOQUJMRShpbnN0YWxsLXRlc3RzLAotICAgICBBU19IRUxQX1NUUklORyhb LS1lbmFibGUtaW5zdGFsbC10ZXN0c10sCi1AQCAtMTA2OSw2ICsxMDgxLDcgQEAgQnVpbGQgb3B0 aW9uczoKLSAgIFhGaXhlcyBjbGllbnQgZGlzY29ubmVjdCAgICAgICRoYXZlX3hmaXhlcwotICAg SW5zdGFsbCBzeXN0ZW1kIHNlcnZpY2UgICAgICAgJGVuYWJsZV9zeXN0ZW1kCi0gICBSdW4gdGVz dCBjYXNlcyAgICAgICAgICAgICAgICAkZW5hYmxlX3Rlc3RzCi0rICBEaXN0cm8gdGVzdHMgICAg ICAgICAgICAgICAgICAkZW5hYmxlX2Rpc3Ryb190ZXN0cwotICAgSW5zdGFsbCB0ZXN0cyAgICAg ICAgICAgICAgICAgJGVuYWJsZV9pbnN0YWxsX3Rlc3RzCi0gXSkKLSBBU19JRihbdGVzdCAkSEFT X09VVFBVVF9UQUlMIC1lcSAxXSwKLWRpZmYgLS1naXQgYS9lbmdpbmUvTWFrZWZpbGUuYW0gYi9l bmdpbmUvTWFrZWZpbGUuYW0KLWluZGV4IDNlNGQwNDVmLi4wMmQ2NWMyNiAxMDA2NDQKLS0tLSBh L2VuZ2luZS9NYWtlZmlsZS5hbQotKysrIGIvZW5naW5lL01ha2VmaWxlLmFtCi1AQCAtNCw3ICs0 LDcgQEAKLSAjCi0gIyBDb3B5cmlnaHQgKGMpIDIwMTAtMjAxNiwgR29vZ2xlIEluYy4gQWxsIHJp Z2h0cyByZXNlcnZlZC4KLSAjIENvcHlyaWdodCAoYykgMjAwNy0yMDE2IFBlbmcgSHVhbmcgPHNo YXduLnAuaHVhbmdAZ21haWwuY29tPgotLSMgQ29weXJpZ2h0IChjKSAyMDEzLTIwMjUgVGFrYW8g RnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rIyBDb3B5cmlnaHQgKGMpIDIw MTMtMjAyNiBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSAjCi0g IyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yCi0gIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCi1AQCAtNTcsMTEgKzU3LDE4IEBAIEFNX1ZBTEFGTEFHUyA9IFwKLSAgICAg LS10YXJnZXQtZ2xpYj0iJChWQUxBX1RBUkdFVF9HTElCX1ZFUlNJT04pIiBcCi0gICAgICQoTlVM TCkKLSAKLStURVNUU19FTlZJUk9OTUVOVCA9IFwKLSsgICAgbGliX3NyY2Rpcj0kKHNyY2Rpcikv Li4vc3JjIFwKLSsgICAgJChOVUxMKQotKwotIFRFU1RTID0KLSAKLStpZiBFTkFCTEVfRElTVFJP X1RFU1RTCi0rVEVTVFMgKz0gdGVzdC1kZWFkLnB5Ci0gaWYgRU5BQkxFX1BZR05PTUVfREVTS1RP UAotIFRFU1RTICs9IHRlc3QtZ25vbWUucHkKLSBlbmRpZgotK2VuZGlmCi0gCi0gbGliZXhlY19Q Uk9HUkFNUyA9IFwKLSAgICAgaWJ1cy1lbmdpbmUtc2ltcGxlIFwKLUBAIC05OSw2ICsxMDYsNyBA QCBFWFRSQV9ESVNUID0gXAotICAgICBnZW5zaW1wbGUucHkgXAotICAgICBpc282Mzljb252ZXJ0 ZXIucHkgXAotICAgICBzaW1wbGUueG1sLmluIFwKLSsgICAgdGVzdC1kZWFkLnB5IFwKLSAgICAg dGVzdC1nbm9tZS5weSBcCi0gICAgICQoTlVMTCkKLSAKLWRpZmYgLS1naXQgYS9lbmdpbmUvbWVz b24uYnVpbGQgYi9lbmdpbmUvbWVzb24uYnVpbGQKLWluZGV4IGE2YWI1YjRlLi44ODdjOWM0MiAx MDA2NDQKLS0tLSBhL2VuZ2luZS9tZXNvbi5idWlsZAotKysrIGIvZW5naW5lL21lc29uLmJ1aWxk Ci1AQCAtNDAsMTcgKzQwLDIxIEBAIHNpbXBsZV94bWwgPSBjdXN0b21fdGFyZ2V0KCdzaW1wbGUu eG1sJywKLSAgIGluc3RhbGxfZGlyOiBwa2dkYXRhZGlyIC8gJ2NvbXBvbmVudCcsCi0gKQotIAot LWlmIGdldF9vcHRpb24oJ3Rlc3RzJykKLS0gIHB5b3ZlcnJpZGVzX3Rlc3RzID0gWwotLSAgICB7 Ci0tICAgICAgJ25hbWUnOiAndGVzdC1nbm9tZScsCi0tICAgIH0sCi0rZGlzcnJvX3Rlc3RzX2Vu diA9IHsKLSsgICdsaWJfc3JjZGlyJzogc291cmNlX3Jvb3QgLyAnc3JjJywKLSt9Ci0rCi0raWYg Z2V0X29wdGlvbigndGVzdHMnKSBhbmQgZ2V0X29wdGlvbignZGlzdHJvLXRlc3RzJykKLSsgIGRp c3Ryb190ZXN0cyA9IFsKLSsgICAgeyAnbmFtZSc6ICd0ZXN0LWRlYWQnLCB9LAotKyAgICB7ICdu YW1lJzogJ3Rlc3QtZ25vbWUnLCB9LAotICAgXQotIAotLSAgZm9yZWFjaCBfdGVzdCA6IHB5b3Zl cnJpZGVzX3Rlc3RzCi0rICBmb3JlYWNoIF90ZXN0IDogZGlzdHJvX3Rlc3RzCi0gICAgIHRpbWVv dXQgPSBfdGVzdC5nZXQoJ3RpbWVvdXQnLCAzMCkKLSAgICAgdGVzdChfdGVzdFsnbmFtZSddLCBm aWxlcyhbcHl0aG9uLmZ1bGxfcGF0aCgpXSlbMF0sCi0gICAgICAgYXJnczogWyBtZXNvbi5jdXJy ZW50X3NvdXJjZV9kaXIoKSAvICdAMEAucHknLmZvcm1hdChfdGVzdFsnbmFtZSddKSBdLAotKyAg ICAgIGVudjogZW52aXJvbm1lbnQoZGlzcnJvX3Rlc3RzX2VudiksCi0gICAgICAgc3VpdGU6ICdl bmdpbmUnLAotICAgICAgIHRpbWVvdXQ6IHRpbWVvdXQsCi0gICAgICkKLWRpZmYgLS1naXQgYS9l bmdpbmUvdGVzdC1kZWFkLnB5IGIvZW5naW5lL3Rlc3QtZGVhZC5weQotbmV3IGZpbGUgbW9kZSAx MDA3NTUKLWluZGV4IDAwMDAwMDAwLi40ZjM1MWVlOAotLS0tIC9kZXYvbnVsbAotKysrIGIvZW5n aW5lL3Rlc3QtZGVhZC5weQotQEAgLTAsMCArMSwxMzYgQEAKLSsjIS91c3IvYmluL3B5dGhvbjMK LSsjIHZpbTpzZXQgZmlsZWVuY29kaW5nPXV0Zi04IGV0IHN0cz00IHN3PTQ6Ci0rIwotKyMgaWJ1 cyAtIEludGVsbGlnZW50IElucHV0IEJ1cyBmb3IgTGludXggLyBVbml4IE9TCi0rIwotKyMgQ29w eXJpZ2h0IMKpIDIwMjYgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+ Ci0rIwotKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vcgotKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYwotKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0rIyB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5z ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIGxp YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK LSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotKyMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0rIyBMaWNlbnNlIGFsb25nIHdpdGgg dGhpcyBsaWJyYXJ5LiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u Ci0rCi0rIyBDaGVjayBzcmMvaWJ1c2ludGVybmFsLmg6SVNfREVBRF9LRVkoKQotKwotK2ltcG9y dCBvcywgc3lzCi0rZnJvbSBwYXRobGliIGltcG9ydCBQYXRoCi0rCi0rY2xhc3MgVGVzdERlYWRL ZXk6Ci0rICAgIF9fc3JjZGlyID0gTm9uZQotKyAgICBfX3ByZ25hbWUgPSBOb25lCi0rICAgIF9f aXNfZGVhZF9rZXlfZmlsZSA9IFBhdGgoJ2lidXNpbnRlcm5hbC5oJykKLSsgICAgX19kZWFkX2tl eXNfZmlsZSAgPSBQYXRoKCdpYnVza2V5c3ltcy5oJykKLSsgICAgX19tYXhfZGVhZF9saW5lID0g Tm9uZQotKyAgICBfX21heF9kZWFkX2tleSAgPSBOb25lCi0rICAgIF9fbWF4X2RlYWRfdmFsID0g MAotKyAgICBfX21pbl9kZWFkX2xpbmUgPSBOb25lCi0rICAgIF9fbWluX2RlYWRfa2V5ICA9IE5v bmUKLSsgICAgX19taW5fZGVhZF92YWwgPSAweGZmZmYKLSsKLSsgICAgQGNsYXNzbWV0aG9kCi0r ICAgIGRlZiBwYXJzZV9hcmdzKGNscyk6Ci0rICAgICAgICBhcmcwID0gUGF0aChzeXMuYXJndlsw XSkKLSsgICAgICAgIGNscy5fX3NyY2RpciA9IGFyZzAucGFyZW50LnBhcmVudAotKyAgICAgICAg Y2xzLl9fcHJnbmFtZSA9IGFyZzAubmFtZQotKyAgICAgICAgbGliX3NyY2RpciA9IG9zLmdldGVu dignbGliX3NyY2RpcicpCi0rICAgICAgICBpZiBsZW4oc3lzLmFyZ3YpID4gMToKLSsgICAgICAg ICAgICBjbHMuX19zcmNkaXIgPSBQYXRoKHN5cy5hcmd2WzFdKQotKyAgICAgICAgZWxpZiBsaWJf c3JjZGlyICE9IE5vbmU6Ci0rICAgICAgICAgICAgY2xzLl9fc3JjZGlyID0gUGF0aChsaWJfc3Jj ZGlyKQotKyAgICAgICAgaWYgc3RyKGNscy5fX3NyY2RpcikgPT0gJyc6Ci0rICAgICAgICAgICAg Y2xzLl9fc3JjZGlyID0gUGF0aCgnLicpCi0rCi0rICAgIGRlZiB0ZXN0cyhzZWxmKToKLSsgICAg ICAgIHByaW50KCdUQVAgdmVyc2lvbiAxNCcpCi0rICAgICAgICBwcmludCgnMS4uMScpCi0rICAg ICAgICBkZWFkX2tleXNfcGF0aCA9IHNlbGYuX19zcmNkaXIgLyBzZWxmLl9fZGVhZF9rZXlzX2Zp bGUKLSsgICAgICAgIGlmIG5vdCBkZWFkX2tleXNfcGF0aC5leGlzdHMoKToKLSsgICAgICAgICAg ICBwcmludChmJ2ZhaWwgTm90IGZvdW5kIHtzdHIoZGVhZF9rZXlzX3BhdGgpfScsIGZpbGU9c3lz LnN0ZGVycikKLSsgICAgICAgICAgICBzeXMuZXhpdCgxKQotKyAgICAgICAgaXNfZGVhZF9rZXlf cGF0aCA9IHNlbGYuX19zcmNkaXIgLyBzZWxmLl9faXNfZGVhZF9rZXlfZmlsZQotKyAgICAgICAg aWYgbm90IGlzX2RlYWRfa2V5X3BhdGguZXhpc3RzKCk6Ci0rICAgICAgICAgICAgcHJpbnQoZidm YWlsIE5vdCBmb3VuZCB7c3RyKGlzX2RlYWRfa2V5X3BhdGgpfScsIGZpbGU9c3lzLnN0ZGVycikK LSsgICAgICAgICAgICBzeXMuZXhpdCgxKQotKyAgICAgICAgc2VsZi5yZWFkX2RlYWRfa2V5c19m aWxlKGRlYWRfa2V5c19wYXRoKQotKyAgICAgICAgaWYgc2VsZi5yZWFkX2lzX2RlYWRfa2V5X2Zp bGUoaXNfZGVhZF9rZXlfcGF0aCk6Ci0rICAgICAgICAgICAgcHJpbnQoZidvayAxIC97c2VsZi5f X3ByZ25hbWV9JykKLSsgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAgc3lzLmV4aXQoMSkKLSsK LSsgICAgZGVmIHJlYWRfZGVhZF9rZXlzX2ZpbGUoc2VsZiwgZGVhZF9rZXlzX3BhdGgpOgotKyAg ICAgICAgd2l0aCBkZWFkX2tleXNfcGF0aC5vcGVuKCkgYXMgZjoKLSsgICAgICAgICAgICBmb3Ig bGluZSBpbiBmOgotKyAgICAgICAgICAgICAgICBlbGVtZW50cyA9IGxpbmUuc3BsaXQoKQotKyAg ICAgICAgICAgICAgICBpZiBsZW4oZWxlbWVudHMpIDwgMzoKLSsgICAgICAgICAgICAgICAgICAg IGNvbnRpbnVlCi0rICAgICAgICAgICAgICAgIGlmIGVsZW1lbnRzWzBdICE9ICcjZGVmaW5lJzoK LSsgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0rICAgICAgICAgICAgICAgIGlmIG5vdCBl bGVtZW50c1sxXS5zdGFydHN3aXRoKCdJQlVTX0tFWV9kZWFkJyk6Ci0rICAgICAgICAgICAgICAg ICAgICBjb250aW51ZQotKyAgICAgICAgICAgICAgICB2YWwgPSBpbnQoZWxlbWVudHNbMl0sIDE2 KQotKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9fbWF4X2RlYWRfdmFsIDwgdmFsOgotKyAgICAg ICAgICAgICAgICAgICAgc2VsZi5fX21heF9kZWFkX3ZhbCA9IHZhbAotKyAgICAgICAgICAgICAg ICAgICAgc2VsZi5fX21heF9kZWFkX2xpbmUgPSBsaW5lCi0rICAgICAgICAgICAgICAgICAgICBz ZWxmLl9fbWF4X2RlYWRfa2V5ID0gZWxlbWVudHNbMV0KLSsgICAgICAgICAgICAgICAgaWYgc2Vs Zi5fX21pbl9kZWFkX3ZhbCA+IHZhbDoKLSsgICAgICAgICAgICAgICAgICAgIHNlbGYuX19taW5f ZGVhZF92YWwgPSB2YWwKLSsgICAgICAgICAgICAgICAgICAgIHNlbGYuX19taW5fZGVhZF9saW5l ID0gbGluZQotKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fX21pbl9kZWFkX2tleSA9IGVsZW1l bnRzWzFdCi0rICAgICAgICBpZiBzZWxmLl9fbWluX2RlYWRfdmFsID49IHNlbGYuX19tYXhfZGVh ZF92YWw6Ci0rICAgICAgICAgICAgcHJpbnQoZidmYWlsIHtzZWxmLl9fbWluX2RlYWRfbGluZX0g PCB7c2VsZi5fX21heF9kZWFkX2xpbmV9JywKLSsgICAgICAgICAgICAgICAgICBmaWxlPXN5cy5z dGRlcnIpCi0rICAgICAgICAgICAgc3lzLmV4aXQoMSkKLSsKLSsgICAgZGVmIHJlYWRfaXNfZGVh ZF9rZXlfZmlsZShzZWxmLCBpc19kZWFkX2tleV9wYXRoKToKLSsgICAgICAgIGhhc19kZWZpbml0 aW9uID0gRmFsc2UKLSsgICAgICAgIG1pbl9rZXkgPSAnJwotKyAgICAgICAgbWF4X2tleSA9ICcn Ci0rICAgICAgICB3aXRoIGlzX2RlYWRfa2V5X3BhdGgub3BlbigpIGFzIGY6Ci0rICAgICAgICAg ICAgZm9yIGxpbmUgaW4gZjoKLSsgICAgICAgICAgICAgICAgZWxlbWVudHMgPSBsaW5lLnNwbGl0 KCkKLSsgICAgICAgICAgICAgICAgaWYgbm90IGhhc19kZWZpbml0aW9uOgotKyAgICAgICAgICAg ICAgICAgICAgaWYgbGVuKGVsZW1lbnRzKSA8IDI6Ci0rICAgICAgICAgICAgICAgICAgICAgICAg Y29udGludWUKLSsgICAgICAgICAgICAgICAgICAgIGlmIGVsZW1lbnRzWzBdICE9ICcjZGVmaW5l JzoKLSsgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotKyAgICAgICAgICAgICAgICAg ICAgaWYgZWxlbWVudHNbMV0uc3RhcnRzd2l0aCgnSVNfREVBRF9LRVkoJyk6Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgaGFzX2RlZmluaXRpb24gPSBUcnVlCi0rICAgICAgICAgICAgICAgICMg KChrKSA+PSBJQlVTX0tFWV9kZWFkX21pbiAmJiAoaykgPD0gSUJVU19LRVlfZGVhZF9tYXgpCi0r ICAgICAgICAgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAgICAgICAgICBpZiBsZW4oZWxlbWVu dHMpIDwgNzoKLSsgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotKyAgICAgICAgICAg ICAgICAgICAgbWluX2tleSA9IGVsZW1lbnRzWzJdCi0rICAgICAgICAgICAgICAgICAgICBtYXhf a2V5ID0gZWxlbWVudHNbNl0KLSsgICAgICAgICAgICAgICAgICAgIGlmIG1heF9rZXlbbGVuKG1h eF9rZXkpIC0gMV0gPT0gJyknOgotKyAgICAgICAgICAgICAgICAgICAgICAgIG1heF9rZXkgPSBt YXhfa2V5WzpsZW4obWF4X2tleSkgLSAxXQotKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSsg ICAgICAgIGlzX2ZhaWxlZCA9IEZhbHNlCi0rICAgICAgICBwcmludChmJyMgbWluOiB7bWluX2tl eX0gPCBtYXg6IHttYXhfa2V5fScpCi0rICAgICAgICBpZiBzZWxmLl9fbWluX2RlYWRfa2V5ICE9 IG1pbl9rZXk6Ci0rICAgICAgICAgICAgcHJpbnQoZidmYWlsIG1pbiBvZiBJU19ERUFEX0tFWSgp IGlzICVzIGJ1dCBtaW4gaW4gJXMgaXMgJXMnICUgXAotKyAgICAgICAgICAgICAgICAgIChtaW5f a2V5LCBzdHIoc2VsZi5fX2RlYWRfa2V5c19maWxlKSwgc2VsZi5fX21pbl9kZWFkX2tleSksCi0r ICAgICAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyKQotKyAgICAgICAgICAgIGlzX2ZhaWxl ZCA9IFRydWUKLSsgICAgICAgIGlmIHNlbGYuX19tYXhfZGVhZF9rZXkgIT0gbWF4X2tleToKLSsg ICAgICAgICAgICBwcmludChmJ2ZhaWwgbWF4IG9mIElTX0RFQURfS0VZKCkgaXMgJXMgYnV0IG1h eCBpbiAlcyBpcyAlcycgJSBcCi0rICAgICAgICAgICAgICAgICAgKG1heF9rZXksIHN0cihzZWxm Ll9fZGVhZF9rZXlzX2ZpbGUpLCBzZWxmLl9fbWF4X2RlYWRfa2V5KSwKLSsgICAgICAgICAgICAg ICAgICBmaWxlPXN5cy5zdGRlcnIpCi0rICAgICAgICAgICAgaXNfZmFpbGVkID0gVHJ1ZQotKyAg ICAgICAgcmV0dXJuIG5vdCBpc19mYWlsZWQKLSsKLSsKLStkZWYgbWFpbigpOgotKyAgICBUZXN0 RGVhZEtleS5wYXJzZV9hcmdzKCkKLSsgICAgb2JqID0gVGVzdERlYWRLZXkoKQotKyAgICBvYmou dGVzdHMoKQotKyAgICBzeXMuZXhpdCgwKQotKwotK21haW4oKQotZGlmZiAtLWdpdCBhL21lc29u Lm9wdGlvbnMgYi9tZXNvbi5vcHRpb25zCi1pbmRleCA4YWFiODFlZi4uYjU5MzIwNDQgMTAwNjQ0 Ci0tLS0gYS9tZXNvbi5vcHRpb25zCi0rKysgYi9tZXNvbi5vcHRpb25zCi1AQCAtMyw2ICszLDEx IEBAIG9wdGlvbigndGVzdHMnLAotICAgdmFsdWU6IHRydWUsCi0gICBkZXNjcmlwdGlvbjogJ0J1 aWxkIHRlc3RzJywKLSApCi0rb3B0aW9uKCdkaXN0cm8tdGVzdHMnLAotKyAgdHlwZTogJ2Jvb2xl YW4nLAotKyAgdmFsdWU6IGZhbHNlLAotKyAgZGVzY3JpcHRpb246ICdFbmFibGUgdG8gdGVzdCBk aXN0cm8gZmlsZXMnLAotKykKLSBvcHRpb24oJ3Rlc3RzLWV4Y2x1ZGUtc3VpdGVzJywKLSAgIHR5 cGU6ICdzdHJpbmcnLAotICAgdmFsdWU6ICcnLAotZGlmZiAtLWdpdCBhL3NyYy9pYnVzY29tcG9z ZXRhYmxlLmMgYi9zcmMvaWJ1c2NvbXBvc2V0YWJsZS5jCi1pbmRleCA5MzI2MmYzYS4uMjQwOTZh NzAgMTAwNjQ0Ci0tLS0gYS9zcmMvaWJ1c2NvbXBvc2V0YWJsZS5jCi0rKysgYi9zcmMvaWJ1c2Nv bXBvc2V0YWJsZS5jCi1AQCAtMzYsNiArMzYsNyBAQAotICNpbmNsdWRlICJpYnVzdHlwZXMuaCIK LSAKLSAjaW5jbHVkZSAiaWJ1c2VuZ2luZXNpbXBsZXByaXZhdGUuaCIKLSsjaW5jbHVkZSAiaWJ1 c2ludGVybmFsLmgiCi0gCi0gCi0gI2RlZmluZSBJQlVTX0NPTVBPU0VfVEFCTEVfTUFHSUMgIklC dXNDb21wb3NlVGFibGUiCi1AQCAtMTAxLDggKzEwMiw4IEBAIHBhcnNlX2NvbXBvc2VfdmFsdWUg KElCdXNDb21wb3NlRGF0YSAgKmNvbXBvc2VfZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyICAgICAgICp2YWwsCi0gICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAg ICAgICAqbGluZSkKLSB7Ci0tICAgIGNoYXIgKmhlYWQsICplbmQsICpwOwotLSAgICBjaGFyICp1 c3RyID0gTlVMTDsKLSsgICAgY29uc3QgY2hhciAqaGVhZCwgKmVuZCwgKnA7Ci0rICAgIGNoYXIg KnVzdHIgPSBOVUxMLCAqY29tbWVudDsKLSAgICAgZ3VuaWNoYXIgKnVjaGFycyA9IE5VTEwsICp1 cDsKLSAgICAgR0Vycm9yICplcnJvciA9IE5VTEw7Ci0gICAgIGludCBuX3VjaGFycyA9IDA7Ci1A QCAtMTY1LDcgKzE2Niw5IEBAIHBhcnNlX2NvbXBvc2VfdmFsdWUgKElCdXNDb21wb3NlRGF0YSAg KmNvbXBvc2VfZGF0YSwKLSAKLSAgICAgZ19mcmVlICh1c3RyKTsKLSAgICAgZ19mcmVlICh1Y2hh cnMpOwotLSAgICBjb21wb3NlX2RhdGEtPmNvbW1lbnQgPSBnX3N0cmR1cCAoZ19zdHJzdHJpcCAo ZW5kICsgMSkpOwotKyAgICBjb21tZW50ID0gZ19zdHJkdXAgKGVuZCArIDEpOwotKyAgICBjb21w b3NlX2RhdGEtPmNvbW1lbnQgPSBnX3N0cmR1cCAoZ19zdHJzdHJpcCAoY29tbWVudCkpOwotKyAg ICBnX2ZyZWUgKGNvbW1lbnQpOwotIAotICAgICByZXR1cm4gVFJVRTsKLSAKLUBAIC0xOTkxLDcg KzE5OTQsNyBAQCBpYnVzX2NvbXBvc2VfdGFibGVfY2hlY2sgKGNvbnN0IElCdXNDb21wb3NlVGFi bGVFeCAqdGFibGUsCi0gICAgIGludCByb3dfc3RyaWRlID0gdGFibGUtPm1heF9zZXFfbGVuICsg MjsKLSAgICAgY29uc3QgZ3VpbnQxNiAqZGF0YV9maXJzdDsKLSAgICAgaW50IG5fc2VxczsKLS0g ICAgZ3VpbnQxNiAqc2VxOwotKyAgICBjb25zdCBndWludDE2ICpzZXEsICpwcmV2X3NlcTsKLSAK LSAgICAgaWYgKGNvbXBvc2VfZmluaXNoKQotICAgICAgICAgKmNvbXBvc2VfZmluaXNoID0gRkFM U0U7Ci1AQCAtMjAyMCw4ICsyMDIzLDYgQEAgaWJ1c19jb21wb3NlX3RhYmxlX2NoZWNrIChjb25z dCBJQnVzQ29tcG9zZVRhYmxlRXggKnRhYmxlLAotICAgICBpZiAoc2VxID09IE5VTEwpCi0gICAg ICAgICByZXR1cm4gRkFMU0U7Ci0gCi0tICAgIGd1aW50MTYgKnByZXZfc2VxOwotLQotICAgICAv KiBCYWNrIHVwIHRvIHRoZSBmaXJzdCBzZXF1ZW5jZSB0aGF0IG1hdGNoZXMgdG8gbWFrZSBzdXJl Ci0gICAgICAqIHdlIGZpbmQgdGhlIGV4YWN0IG1hdGNoIGlmIHRoZWlyIGlzIG9uZS4KLSAgICAg ICovCi1AQCAtMjAzNCw3ICsyMDM1LDcgQEAgaWJ1c19jb21wb3NlX3RhYmxlX2NoZWNrIChjb25z dCBJQnVzQ29tcG9zZVRhYmxlRXggKnRhYmxlLAotIAotICAgICAvKiBjb21wbGV0ZSBzZXF1ZW5j ZSAqLwotICAgICBpZiAobl9jb21wb3NlID09IHRhYmxlLT5tYXhfc2VxX2xlbiB8fCBzZXFbbl9j b21wb3NlXSA9PSAwKSB7Ci0tICAgICAgICBndWludDE2ICpuZXh0X3NlcTsKLSsgICAgICAgIGNv bnN0IGd1aW50MTYgKm5leHRfc2VxOwotICAgICAgICAgZ3VuaWNoYXIgdmFsdWUgPSAwOwotICAg ICAgICAgaW50IG51bSA9IDA7Ci0gICAgICAgICBpbnQgaW5kZXggPSAwOwotZGlmZiAtLWdpdCBh L3NyYy9pYnVzZW5naW5lc2ltcGxlLmMgYi9zcmMvaWJ1c2VuZ2luZXNpbXBsZS5jCi1pbmRleCAx ZWVjY2Q1Mi4uYzA1ZTI4MWMgMTAwNjQ0Ci0tLS0gYS9zcmMvaWJ1c2VuZ2luZXNpbXBsZS5jCi0r KysgYi9zcmMvaWJ1c2VuZ2luZXNpbXBsZS5jCi1AQCAtMjgsMTIgKzI4LDE0IEBACi0gI2luY2x1 ZGUgImlidXNjb21wb3NldGFibGUuaCIKLSAjaW5jbHVkZSAiaWJ1c2Vtb2ppLmgiCi0gI2luY2x1 ZGUgImlidXNlbmdpbmVzaW1wbGUuaCIKLS0jaW5jbHVkZSAiaWJ1c2VuZ2luZXNpbXBsZXByaXZh dGUuaCIKLSAKLSAjaW5jbHVkZSAiaWJ1c2tleXMuaCIKLSAjaW5jbHVkZSAiaWJ1c2tleXN5bXMu aCIKLSAjaW5jbHVkZSAiaWJ1c3V0aWwuaCIKLSAKLSsjaW5jbHVkZSAiaWJ1c2VuZ2luZXNpbXBs ZXByaXZhdGUuaCIKLSsjaW5jbHVkZSAiaWJ1c2ludGVybmFsLmgiCi0rCi0gI2luY2x1ZGUgPG1l bW9yeS5oPgotICNpbmNsdWRlIDxzdGRsaWIuaD4KLSAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIu aD4KLWRpZmYgLS1naXQgYS9zcmMvaWJ1c2VuZ2luZXNpbXBsZXByaXZhdGUuaCBiL3NyYy9pYnVz ZW5naW5lc2ltcGxlcHJpdmF0ZS5oCi1pbmRleCBjM2Y5MjkyMC4uYzYzNTIyZmUgMTAwNjQ0Ci0t LS0gYS9zcmMvaWJ1c2VuZ2luZXNpbXBsZXByaXZhdGUuaAotKysrIGIvc3JjL2lidXNlbmdpbmVz aW1wbGVwcml2YXRlLmgKLUBAIC0zNSwxMiArMzUsNiBAQCBHX0JFR0lOX0RFQ0xTCi0gICovCi0g I2RlZmluZSBJQlVTX0NPTVBPU0VfRVJST1IgKGlidXNfY29tcG9zZV9lcnJvcl9xdWFyayAoKSkK LSAKLS0vKiBDaGVja3MgaWYgYSBrZXlzeW0gaXMgYSBkZWFkIGtleS4gRGVhZCBrZXkga2V5c3lt IHZhbHVlcyBhcmUgZGVmaW5lZCBpbgotLSAqIGlidXNrZXlzeW1zLmggYW5kIHRoZSBmaXJzdCBp cyBHREtfS0VZX2RlYWRfZ3JhdmUuCi0tICovCi0tI2RlZmluZSBJU19ERUFEX0tFWShrKSBcCi0t ICAgICAgKChrKSA+PSBJQlVTX0tFWV9kZWFkX2dyYXZlICYmIChrKSA8PSBJQlVTX0tFWV9kZWFk X2dyZWVrKQotLQotIAotIHN0cnVjdCBfSUJ1c0NvbXBvc2VUYWJsZVByaXZhdGUKLSB7Ci1AQCAt NTcsOCArNTEsMTAgQEAgc3RydWN0IF9JQnVzQ29tcG9zZVRhYmxlUHJpdmF0ZQotICAqIFNpbmNl OiAxLjUuMzMKLSAgKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0gICovCi0rR19HTlVDX0lOVEVSTkFM Ci0gR1F1YXJrICAgaWJ1c19jb21wb3NlX2Vycm9yX3F1YXJrICAgKHZvaWQpOwotIGd1aW50ICAg IGlidXNfY29tcG9zZV9rZXlfZmxhZyAgICAgIChndWludCAgICAgICAgICAgICAgICAgICAgICAg a2V5KTsKLStHX0dOVUNfSU5URVJOQUwKLSBnYm9vbGVhbiBpYnVzX2NoZWNrX2FsZ29yaXRobWlj YWxseSAoY29uc3QgZ3VpbnQgICAgICAgICAgICAgICAgKmNvbXBvc2VfYnVmZmVyLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAg ICAgbl9jb21wb3NlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndW5p Y2hhciAgICAgICAgICAgICAgICAgICAqb3V0cHV0KTsKLUBAIC02NywxMSArNjMsMTMgQEAgR1Zh cmlhbnQgKgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJQnVzQ29tcG9z ZVRhYmxlRXgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKmNvbXBvc2VfdGFibGUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgICAgICAgIHJldmVyc2VfZW5kaWFu KTsKLStHX0dOVUNfSU5URVJOQUwKLSBJQnVzQ29tcG9zZVRhYmxlRXggKgotICAgICAgICAgIGli dXNfY29tcG9zZV90YWJsZV9kZXNlcmlhbGl6ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChjb25zdCBjaGFyICAgICAgICAgICAgICAgICAqY29udGVudHMsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdzaXplICAgICAgICAgICAgICAgICAgICAg ICBsZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50MTYg ICAgICAgICAgICAgICAgICAgICpzYXZlZF92ZXJzaW9uKTsKLStHX0dOVUNfSU5URVJOQUwKLSBn Ym9vbGVhbiBpYnVzX2NvbXBvc2VfdGFibGVfY2hlY2sgICAoY29uc3QgSUJ1c0NvbXBvc2VUYWJs ZUV4ICAgKnRhYmxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWlu dCAgICAgICAgICAgICAgICAgICAgICAqY29tcG9zZV9idWZmZXIsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICBuX2NvbXBv c2UsCi1AQCAtNzksNiArNzcsNyBAQCBnYm9vbGVhbiBpYnVzX2NvbXBvc2VfdGFibGVfY2hlY2sg ICAoY29uc3QgSUJ1c0NvbXBvc2VUYWJsZUV4ICAgKnRhYmxlLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAgICAqY29tcG9zZV9t YXRjaCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1N0cmluZyAgICAg ICAgICAgICAgICAgICAgKm91dHB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgICAgIGlzXzMyYml0KTsKLStHX0dOVUNfSU5U RVJOQUwKLSBndW5pY2hhciBpYnVzX2tleXN5bV90b191bmljb2RlICAgICAoZ3VpbnQgICAgICAg ICAgICAgICAgICAgICAgIGtleXN5bSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgICAgIGNvbWJpbmluZywKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgICAgKm5l ZWRfc3BhY2UpOwotQEAgLTg4LDYgKzg3LDcgQEAgZ3VuaWNoYXIgaWJ1c19rZXlzeW1fdG9fdW5p Y29kZSAgICAgKGd1aW50ICAgICAgICAgICAgICAgICAgICAgICBrZXlzeW0sCi0gICogU2luY2U6 IDEuNS4zMwotICAqIFN0YWJpbGl0eTogVW5zdGFibGUKLSAgKi8KLStHX0dOVUNfSU5URVJOQUwK LSBndW5pY2hhciBpYnVzX2tleXN5bV90b191bmljb2RlX3dpdGhfbGF5b3V0Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGd1aW50ICAgICAgICAgICAgICAgICAgICAgICBr ZXlzeW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAg ICAgICAgICAgICAgICAgICBjb21iaW5pbmcsCi1kaWZmIC0tZ2l0IGEvc3JjL2lidXNpbnRlcm5h bC5oIGIvc3JjL2lidXNpbnRlcm5hbC5oCi1pbmRleCBjMjYzN2FiNS4uMDQ1NTMyMzYgMTAwNjQ0 Ci0tLS0gYS9zcmMvaWJ1c2ludGVybmFsLmgKLSsrKyBiL3NyYy9pYnVzaW50ZXJuYWwuaAotQEAg LTYyLDUgKzYyLDE0IEBACi0gR19HTlVDX0lOVEVSTkFMIHZvaWQKLSBpYnVzX2dfdmFyaWFudF9n ZXRfY2hpbGRfc3RyaW5nIChHVmFyaWFudCAqdmFyaWFudCwgZ3NpemUgaW5kZXgsIGNoYXIgKipz dHIpOwotIAotLSNlbmRpZgotKyNpZmRlZiBJQlVTX0tFWV9kZWFkX2dyYXZlCi0rI2lmZGVmIElC VVNfS0VZX2RlYWRfbG9uZ3NvbGlkdXNvdmVybGF5Ci0rLyogQ2hlY2tzIGlmIGEga2V5c3ltIGlz IGEgZGVhZCBrZXkuIERlYWQga2V5IGtleXN5bSB2YWx1ZXMgYXJlIGRlZmluZWQgaW4KLSsgKiBp YnVza2V5c3ltcy5oIGFuZCB0aGUgZmlyc3QgaXMgR0RLX0tFWV9kZWFkX2dyYXZlLgotKyAqLwot KyNkZWZpbmUgSVNfREVBRF9LRVkoaykgXAotKyAgICAgICgoaykgPj0gSUJVU19LRVlfZGVhZF9n cmF2ZSAmJiAoaykgPD0gSUJVU19LRVlfZGVhZF9sb25nc29saWR1c292ZXJsYXkpCi0rI2VuZGlm IC8qIElCVVNfS0VZX2RlYWRfbG9uZ3NvbGlkdXNvdmVybGF5ICovCi0rI2VuZGlmIC8qIElCVVNf S0VZX2RlYWRfZ3JhdmUgKi8KLSAKLSsjZW5kaWYKLS0tIAotMi41My4wCi0KCmRpZmYgLS1naXQg YS9pYnVzLUhFQUQucGF0Y2ggYi9pYnVzLUhFQUQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2lidXMtSEVBRC5wYXRj aAoKZGlmZiAtLWdpdCBhL2lidXMuc3BlYyBiL2lidXMuc3BlYwppbmRleCAwOTY1NDhkLi41Yjdi YTUxIDEwMDY0NAotLS0gYS9pYnVzLnNwZWMKKysrIGIvaWJ1cy5zcGVjCkBAIC00Niw5ICs0Niw5 IEBACiAlZ2xvYmFsIGRidXNfcHl0aG9uX3ZlcnNpb24gMC44My4wCiAKIE5hbWU6ICAgICAgICAg ICBpYnVzCi1WZXJzaW9uOiAgICAgICAgMS41LjM1fmFscGhhMQorVmVyc2lvbjogICAgICAgIDEu NS4zNX5hbHBoYTIKICMgaHR0cHM6Ly9naXRodWIuY29tL2ZlZG9yYS1pbmZyYS9ycG1hdXRvc3Bl Yy9pc3N1ZXMvMTAxCi1SZWxlYXNlOiAgICAgICAgOCV7P2Rpc3R9CitSZWxlYXNlOiAgICAgICAg MSV7P2Rpc3R9CiBTdW1tYXJ5OiAgICAgICAgSW50ZWxsaWdlbnQgSW5wdXQgQnVzIGZvciBMaW51 eCBPUwogTGljZW5zZTogICAgICAgIExHUEwtMi4xLW9yLWxhdGVyCiBVUkw6ICAgICAgICAgICAg aHR0cHM6Ly9naXRodWIuY29tL2lidXMvJW5hbWUvd2lraQpAQCAtNTcsNyArNTcsNiBAQCBTb3Vy Y2UxOiAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2lidXMvJW5hbWUvcmVsZWFzZXMvZG93bmxv YWQvJXtzb3VyY2VfdmVyc2lvbgogU291cmNlMjogICAgICAgICV7bmFtZX0teGlucHV0CiBTb3Vy Y2UzOiAgICAgICAgJXtuYW1lfS5jb25mLjUKICMgUGF0Y2gwOiAgICAgICAgICUle25hbWV9LUhF QUQucGF0Y2gKLVBhdGNoMDogICAgICAgICAle25hbWV9LUhFQUQucGF0Y2gKIFBhdGNoMTogICAg ICAgICAle25hbWV9LTI0NDQwMDktd2F5bGFuZC14a2ItbHYtdGlsZGUucGF0Y2gKICMgVW5kZXIg dGVzdGluZyAjMTM0OTE0OCAjMTM4NTM0OSAjMTM1MDI5MSAjMTQwNjY5OSAjMTQzMjI1MiAjMTYw MTU3NwogUGF0Y2gyOiAgICAgICAgICV7bmFtZX0tMTM4NTM0OS1zZWd2LWJ1cy1wcm94eS5wYXRj aApAQCAtNTQ1LDYgKzU0NCw5IEBAIGRjb25mIHVwZGF0ZSB8fCA6CiAle19kYXRhZGlyfS9pbnN0 YWxsZWQtdGVzdHMvaWJ1cwogCiAlY2hhbmdlbG9nCisqIEZyaSBKdW4gMTkgMjAyNiBUYWthbyBG dWppd2FyYSA8dGZ1aml3YXJAcmVkaGF0LmNvbT4gLSAxLjUuMzV+YWxwaGEyLTEKKy0gQnVtcCB0 byAxLjUuMzUtYWxwaGEyCisKICogV2VkIEp1biAxMCAyMDI2IFRha2FvIEZ1aml3YXJhIDx0ZnVq aXdhckByZWRoYXQuY29tPiAtIDEuNS4zNX5hbHBoYTEtOAogLSBEZWxldGUgZ29iamVjdC1pbnRy b3NwZWN0aW9uCiAKCmRpZmYgLS1naXQgYS9pYnVzLnRhci54ei5zaGEyNTZzdW0gYi9pYnVzLnRh ci54ei5zaGEyNTZzdW0KaW5kZXggMmUxN2FlNC4uNjVhZDY0NyAxMDA2NDQKLS0tIGEvaWJ1cy50 YXIueHouc2hhMjU2c3VtCisrKyBiL2lidXMudGFyLnh6LnNoYTI1NnN1bQpAQCAtMSArMSBAQAot ZWVhYjFjMTVjNThkODdlNjU5NTlmODgxMjJmNzQ1YjU1YTZlMzZjYTJlMmNjYjRlNWMzNmViYzE4 OTVlMmMyNSAqaWJ1cy0xLjUuMzUtYWxwaGExLnRhci54egorMWIwMGU4YzE5ODk2ZWQxYzZiNDM2 YzhkYzJmYjY4NmQ2YTgwZjJkODQxMmNkNzY2MmE5OTBhNjMyZGQzNWMzYiAqaWJ1cy0xLjUuMzUt YWxwaGEyLnRhci54egoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDM2ODAz NzAuLjk1YjEwNDkgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSArMSBA QAotU0hBNTEyIChpYnVzLTEuNS4zNS1hbHBoYTEudGFyLnh6KSA9IGRjMGZlNDc5YWM0MDg3YWU3 OTJkZjNkNzAxNmYwNjY2M2JlMzY0ZGY3ZjhlMDA0OTg4ZTRkMWQwM2M5YjdhMDJmNzM5MTRhMWRh YWIzY2U2ZTZhYjZhOTc0OTliYzI0MTQ2YjRhN2Y1ZDVhYmE4NzQ0NGI3NjFlNGVhMjM1NmM5CitT SEE1MTIgKGlidXMtMS41LjM1LWFscGhhMi50YXIueHopID0gYjFlYjA5ODNkNjJmZTJlOWJmMGE3 MmJlNTlmNWY2YTMwZDk3MTg2YTdiMmI0MWEyMmNiOWU1NTIxOGY0YjhkYzE1MzEwMWU4Njg5N2Rl ZDE3M2QwNjM1MjQxMTgwODFhMThiMzJhNTRkMjE3YTI3ZTJkZmI3NmZhMjc0M2JhZTEK