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: Add ibus-2444009-wayland-xkb-lv-tilde.patch Date: Mon, 01 Jun 2026 08:55:27 GMT Message-ID: <178030412710.1.14002144481377255091.rpms-ibus-c32a037db20a@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: rawhide X-Git-Rev: c32a037db20a9a914a74173139c8ac2032d94066 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvaWJ1cwogICAgICAgICAgICBCcmFuY2ggOiByYXdoaWRlCiAgICAgICAgICAg IENvbW1pdCA6IGMzMmEwMzdkYjIwYTlhOTE0YTc0MTczMTM5YzhhYzIwMzJkOTQwNjYKICAgICAg ICAgICAgQXV0aG9yIDogVGFrYW8gRnVqaXdhcmEgPHRmdWppd2FyQHJlZGhhdC5jb20+CiAgICAg ICAgICAgIERhdGUgICA6IDIwMjYtMDUtMzFUMTE6MTM6MjIrMDk6MDAKICAgICAgICAgICAgU3Rh dHMgIDogKzI3ODYvLTAgaW4gMSBmaWxlKHMpCiAgICAgICAgICAgIFVSTCAgICA6IGh0dHBzOi8v c3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvaWJ1cy9jL2MzMmEwMzdkYjIwYTlhOTE0YTc0MTcz MTM5YzhhYzIwMzJkOTQwNjY/YnJhbmNoPXJhd2hpZGUKCiAgICAgICAgICAgIExvZzoKICAgICAg ICAgICAgQWRkIGlidXMtMjQ0NDAwOS13YXlsYW5kLXhrYi1sdi10aWxkZS5wYXRjaAoKUmVzb2x2 ZXMgIzI0NDQwMDkgTGF0Y2gga2V5IGluIExhdHZpYW4odGlsZGUpIGtleW1hcAoKLS0tCmRpZmYg LS1naXQgYS9pYnVzLTI0NDQwMDktd2F5bGFuZC14a2ItbHYtdGlsZGUucGF0Y2ggYi9pYnVzLTI0 NDQwMDktd2F5bGFuZC14a2ItbHYtdGlsZGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMDRlOTQyYwotLS0gL2Rldi9udWxsCisrKyBiL2lidXMtMjQ0NDAwOS13YXls YW5kLXhrYi1sdi10aWxkZS5wYXRjaApAQCAtMCwwICsxLDI3ODYgQEAKK0Zyb20gNTY5YTkwOTBk ZWZiYWIwNjAwMDQyYzc5NWMxMzhiZDhmZTIzNzBjZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KK0RhdGU6IE1vbiwg MTggTWF5IDIwMjYgMTc6MDU6MTEgKzA5MDAKK1N1YmplY3Q6IFtQQVRDSCAxLzldIGNsaWVudC93 YXlsYW5kOiBGaXggbGF0Y2gga2V5IGluIExhdHZpYW4odGlsZGUpIGtleW1hcAorCisibHYodGls ZGUpIiBrZXltYXAgaGFzIGBJU09fTGV2ZWwzX0xhdGNoYCBhbmQgdGhlcmUgYXJlIHNldmVyYWwg aXNzdWVzLgorMS4gS0RFIFdheWxhbmQgZG9lcyBub3QgaGFuZGxlIGBJU09fTGV2ZWwzX0xhdGNo YCBrZXlzeW0gYnV0IG91dHB1dHMgdGhlCisgICB0aWxkZSBldmVuIGlmIHRoZSBzeXN0ZW0ga2V5 bWFwIGlzICJsdih0aWxkZSkiLiBUaGUgcHJldmlvdXMgY2hhbmdlCisgICAwMTA0NDg2IGZpeGVz IHRoYXQgaXNzdWUgaW4gSUJ1cyBzaWRlLgorMi4gVGhlcmUgaXMgYSByYWNlIHdoZW4gQElCdXNX YXlsYW5kSU0gcmVjZWl2ZXMgdGhlIHN5c3RlbSBrZXltYXAgZnJvbQorICAgdGhlIFdheWxhbmQg Y29tcG9zaXRvciBhbmQgdGhlIHVzZXIga2V5bWFwIGZyb20gdGhlIElCdXMgWEtCCisgICBlbmdp bmUgYW5kIHRoZSB1c2VyIGtleW1hcCBzaG91bGQgbm90IGJlIG92ZXJyaWRkZW4gYnkgdGhlIHN5 c3RlbSBvbmUuCiszLiBASUJ1c1dheWxhbmRJTSBjYW4gaGFuZGxlIHRoZSBjb21wb3NlIGtleXMg b25seSBpZiBgSVNPX0xldmVsM19MYXRjaGAKKyAgIGlzIGhlbGQgcHJlc3NpbmcgYXQgcHJlc2Vu dC4gQnV0IHRoZSBsYXRjaCBzdGF0ZSBzaG91bGQgYmUgaGVsZCB3aGVuCisgICB0aGUgbGF0Y2gg a2V5IGlzIHJlbGVhc2VkIGJ1dCBjbGVhcmVkIHdoZW4gb3RoZXIga2V5cyBhcmUgcHJlc3NlZC4K KzQuIEluIGNhc2UgdGhlIHN5c3RlbSBrZXltYXAgaXMgbm90ICJsdih0aWxkZSkiLCBFLmcuICJ1 cyIsIHRoZSByZWxlYXNlCisgICBldmVudCBvZiB0aGUgdmlydHVhbCBgSVNPX0xldmVsM19MYXRj aGAga2V5LCB0aGUgV2F5bGFuZCBjb21wb3NpdG9yCisgICBpbW1lZGlhdGVseSBzZW5kcyB0byB6 ZXJvIG1vZGlmaWVyIHN0YXRlIHRvIGNsZWFyIHRoZSBsYXRjaCBzdGF0ZS4KKyAgIFNvIHByb2Jh Ymx5IEBJQnVzV2F5bGFuZElNIHNob3VsZCBub3Qgc2VuZCB0aGUgcmVsZWFzZSBldmVudCBvZiB0 aGUKKyAgIGxhdGNoIGtleS4KKzUuIFhLQiBncm91cCBJRCBjYW4gYmUgc3dpdGNoZWQgYnkgWEtC IG9wdGlvbiBrZXkgbGlrZXMgYGdycDp0b2dnbGVgCisgICBidXQgY2xpY2tpbmcga2V5Ym9hcmQg aWNvbiBpbiBLREUgcGFuZWwgZG9lcyBub3Qgd29yayBhbmQgbWF5YmUKKyAgIGl0J3MgYSBidWcg aW4gS0RFIGNvbXBvc2l0b3IuCis2LiBGaXggdG8gY2xlYXIgbW9kaWZpZXJzIHdpdGggdGhlIGtl eSByZWxlYXNlIG9mIFNoaWZ0ICsgTGF0Y2gga2V5LgorNy4gU2F2ZSBDYXBzTG9jayBzdGF0ZQor CitGaXhlczogaHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9jb21taXQvMDEwNDQ4NgorQ2xv c2VzOiByaGJ6IzI0NDQwMDkKKy0tLQorIGNsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYyB8 IDI3OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwg MjQzIGluc2VydGlvbnMoKyksIDM2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY2xpZW50 L3dheWxhbmQvaWJ1c3dheWxhbmRpbS5jIGIvY2xpZW50L3dheWxhbmQvaWJ1c3dheWxhbmRpbS5j CitpbmRleCAzNjdiMDdjNS4uZmE3MmNlNGUgMTAwNjQ0CistLS0gYS9jbGllbnQvd2F5bGFuZC9p YnVzd2F5bGFuZGltLmMKKysrKyBiL2NsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYworQEAg LTM5LDYgKzM5LDkgQEAKKyAjaW5jbHVkZSAidmlydHVhbC1rZXlib2FyZC11bnN0YWJsZS12MS1j bGllbnQtcHJvdG9jb2wuaCIKKyAjaW5jbHVkZSAiaWJ1c3dheWxhbmRpbS5oIgorIAorKy8qIGtl eXN5bSAmIGtleWNvZGUgc2hvdWxkIG5vdCBiZSBsb2dnZWQgZm9yIHRoZSBzZWN1cml0eSBpc3N1 ZS4gKi8KKysvKiAjZGVmaW5lIElCVVNfTE9HX1NIT1dfS0VZU1lNICovCisrCisgZW51bSB7Cisg ICAgIFBST1BfMCA9IDAsCisgICAgIFBST1BfQlVTLAorQEAgLTEyNSw2ICsxMjgsNyBAQCBzdHJ1 Y3QgX0lCdXNXYXlsYW5kSU1Qcml2YXRlCisgICAgIGd1aW50IHByZWVkaXRfY3Vyc29yX3BvczsK KyAgICAgZ3VpbnQgcHJlZWRpdF9tb2RlOworICAgICBJQnVzTW9kaWZpZXJUeXBlIG1vZGlmaWVy czsKKysgICAgZ2Jvb2xlYW4gaXNfdmlydHVhbF9sYXRjaF9zdGF0ZTsKKyAgICAgZ2Jvb2xlYW4g aGlkaW5nX3ByZWVkaXRfdGV4dDsKKyAgICAgSUJ1c0lucHV0SGludHMgaWJ1c19oaW50czsKKyAg ICAgSUJ1c0lucHV0UHVycG9zZSBpYnVzX3B1cnBvc2U7CitAQCAtMTk1LDEwICsxOTksNiBAQCBz dGF0aWMgY2hhciBfdXNlX3N5bmNfbW9kZSA9IDE7CisgCisgc3RhdGljIGd1aW50IHdheWxhbmRf aW1fc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAgfTsKKyAKKy1zdGF0aWMgdm9pZCAgICAgICAg IGlucHV0X21ldGhvZF9kZWFjdGl2YXRlCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHZvaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmRhdGEsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCB6d3BfaW5wdXRfbWV0aG9kX3VuaW9uICAgICAgKmlu cHV0X21ldGhvZCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHp3cF9p bnB1dF9tZXRob2RfY29udGV4dF92MSAqY29udGV4dCk7Cisgc3RhdGljIEdPYmplY3QgICAgICpp YnVzX3dheWxhbmRfaW1fY29uc3RydWN0b3IgICAgICAgIChHVHlwZSAgICAgICAgICB0eXBlLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z3VpbnQgICAgICAgICAgbl9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBHT2JqZWN0Q29uc3RydWN0UGFyYW0KK0BAIC0yMjAs NiArMjIwLDE5IEBAIHN0YXRpYyBnYm9vbGVhbiAgICAgaWJ1c193YXlsYW5kX2ltX3Bvc3Rfa2V5 ICAgICAgICAgICAoSUJ1c1dheWxhbmRJTSAqd2xpbSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhrYl9rZXlzeW1fdCAgIHN5bSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdi b29sZWFuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkKTsKKytzdGF0aWMgdm9pZCAgICAgICAgIGlu cHV0X21ldGhvZF9kZWFjdGl2YXRlCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZv aWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmRhdGEsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCB6d3BfaW5wdXRfbWV0aG9kX3VuaW9uICAgICAgKmlucHV0 X21ldGhvZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHp3cF9pbnB1 dF9tZXRob2RfY29udGV4dF92MSAqY29udGV4dCk7Cisrc3RhdGljIHZvaWQgICAgICAgICBpbnB1 dF9tZXRob2Rfa2V5Ym9hcmRfbW9kaWZpZXJzCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHZvaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmRhdGEsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB6d3Bfa2V5Ym9hcmRfdW5pb24gICAgICAgICAg KmtleWJvYXJkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAg ICAgICAgICAgICAgICAgICAgICAgICBrZXlfc2VyaWFsLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1aW50MzJfdAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kc19kZXByZXNzZWQsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAgICAg IG1vZHNfbGF0Y2hlZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kc19sb2NrZWQsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVpbnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3Vw KTsKKyAKKyAKKyBzdGF0aWMgY2hhcgorQEAgLTEwOTgsNiArMTExMSw3IEBAIGlidXNfd2F5bGFu ZF9pbV91cGRhdGVfeGtiX3N0YXRlIChJQnVzV2F5bGFuZElNICAgICAqd2xpbSwKKyAgICAgICAg IHhrYl9rZXltYXBfdW5yZWYgKHByaXYtPmtleW1hcCk7CisgICAgIHByaXYtPmtleW1hcCA9IGtl eW1hcDsKKyAgICAgcHJpdi0+c3RhdGUgPSBzdGF0ZTsKKysKKyAgICAgcmV0dXJuIFRSVUU7Cisg fQorIAorQEAgLTExMTksNyArMTEzMywxNCBAQCBfYnVzX2dsb2JhbF9lbmdpbmVfY2hhbmdlZF9j YiAoSUJ1c0J1cyAgICAgICAqYnVzLAorICAgICBnX2Fzc2VydCAoIWdfc3RyY21wMCAoaWJ1c19l bmdpbmVfZGVzY19nZXRfbmFtZSAoZGVzYyksIGVuZ2luZV9uYW1lKSk7CisgICAgIGtleW1hcCA9 IGNyZWF0ZV91c2VyX3hrYl9rZXltYXAgKHByaXYtPnhrYl9jb250ZXh0LCBkZXNjKTsKKyAgICAg aWYgKGtleW1hcCAmJiAhaWJ1c193YXlsYW5kX2ltX3VwZGF0ZV94a2Jfc3RhdGUgKHdsaW0sIGtl eW1hcCkpCistICAgICAgICB4a2Jfa2V5bWFwX3VucmVmIChrZXltYXApOworKyAgICAgICAgZ19j bGVhcl9wb2ludGVyICgma2V5bWFwLCB4a2Jfa2V5bWFwX3VucmVmKTsKKysgICAgaWYgKHByaXYt PnZlcmJvc2UpIHsKKysgICAgICAgIGZwcmludGYgKHByaXYtPmxvZywgIk5ldyBlbmdpbmU6JXMg a2V5bWFwOiVzIHN0YXRlOiVzXG4iLAorKyAgICAgICAgICAgICAgICAgaWJ1c19lbmdpbmVfZGVz Y19nZXRfbmFtZSAoZGVzYyksCisrICAgICAgICAgICAgICAgICBrZXltYXAgPyAiVFJVRSIgOiAi RkFMU0UiLAorKyAgICAgICAgICAgICAgICAgcHJpdi0+c3RhdGUgPyAiVFJVRSIgOiAiRkFMU0Ui KTsKKysgICAgICAgIGZmbHVzaCAocHJpdi0+bG9nKTsKKysgICAgfQorICAgICBnX29iamVjdF91 bnJlZiAoZGVzYyk7CisgfQorIAorQEAgLTExMzQsNiArMTE1NSw4IEBAIGlucHV0X21ldGhvZF9r ZXlib2FyZF9rZXltYXAgKHZvaWQgICAgICAgICAgICAgICAgICAgICAgKmRhdGEsCisgICAgIElC dXNXYXlsYW5kSU0gKndsaW0gPSBkYXRhOworICAgICBJQnVzV2F5bGFuZElNUHJpdmF0ZSAqcHJp djsKKyAgICAgc3RydWN0IHhrYl9rZXltYXAgKmtleW1hcDsKKysgICAgc3RydWN0IHhrYl9zdGF0 ZSAqcHJldl9zdGF0ZSA9IE5VTEw7CisrICAgIGdib29sZWFuIGhhc19uZXdfc3RhdGUgPSBGQUxT RTsKKyAKKyAgICAgaWYgKCFJQlVTX0lTX1dBWUxBTkRfSU0gKHdsaW0pKSB7CisgICAgICAgICBj bG9zZSAoZmQpOworQEAgLTExNTgsMTAgKzExODEsMzUgQEAgaW5wdXRfbWV0aG9kX2tleWJvYXJk X2tleW1hcCAodm9pZCAgICAgICAgICAgICAgICAgICAgICAqZGF0YSwKKyAgICAgICAgIHJldHVy bjsKKyAgICAgfQorICAgICBrZXltYXAgPSBjcmVhdGVfc3lzdGVtX3hrYl9rZXltYXAgKHByaXYt PnhrYl9jb250ZXh0LCBmb3JtYXQsIGZkLCBzaXplKTsKKy0gICAgaWYgKGtleW1hcCAmJiAhaWJ1 c193YXlsYW5kX2ltX3VwZGF0ZV94a2Jfc3RhdGUgKHdsaW0sIGtleW1hcCkpCistICAgICAgICB4 a2Jfa2V5bWFwX3VucmVmIChrZXltYXApOworICAgICBpZiAocHJpdi0+c3RhdGUpCistICAgICAg ICBwcml2LT5zdGF0ZV9zeXN0ZW0gPSB4a2Jfc3RhdGVfcmVmIChwcml2LT5zdGF0ZSk7CisrICAg ICAgICBwcmV2X3N0YXRlID0geGtiX3N0YXRlX3JlZiAocHJpdi0+c3RhdGUpOworKyAgICBpZiAo a2V5bWFwKQorKyAgICAgICAgaGFzX25ld19zdGF0ZSA9IGlidXNfd2F5bGFuZF9pbV91cGRhdGVf eGtiX3N0YXRlICh3bGltLCBrZXltYXApOworKyAgICBpZiAocHJpdi0+c3RhdGUpIHsKKysgICAg ICAgIGlmIChoYXNfbmV3X3N0YXRlKSB7CisrICAgICAgICAgICAgcHJpdi0+c3RhdGVfc3lzdGVt ID0geGtiX3N0YXRlX3JlZiAocHJpdi0+c3RhdGUpOworKyAgICAgICAgICAgIC8qIHByZXYtPnN0 YXRlIGlzIHVzZXIgcHJldi0+c3RhdGVfc3lzdGVtIGlzIHN5c3RlbSAqLworKyAgICAgICAgICAg IGlmIChwcmV2X3N0YXRlKSB7CisrICAgICAgICAgICAgICAgIHhrYl9zdGF0ZV91bnJlZiAocHJp di0+c3RhdGUpOworKyAgICAgICAgICAgICAgICBwcml2LT5zdGF0ZSA9IHByZXZfc3RhdGU7Cisr ICAgICAgICAgICAgfQorKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgICBpZiAocHJldl9z dGF0ZSkKKysgICAgICAgICAgICAgICAgeGtiX3N0YXRlX3VucmVmIChwcmV2X3N0YXRlKTsKKysg ICAgICAgICAgICBpZiAoa2V5bWFwKQorKyAgICAgICAgICAgICAgICBnX2NsZWFyX3BvaW50ZXIg KCZrZXltYXAsIHhrYl9rZXltYXBfdW5yZWYpOworKyAgICAgICAgfQorKyAgICB9IGVsc2UgaWYg KGtleW1hcCkgeworKyAgICAgICAgZ19jbGVhcl9wb2ludGVyICgma2V5bWFwLCB4a2Jfa2V5bWFw X3VucmVmKTsKKysgICAgfQorKyAgICBpZiAocHJpdi0+dmVyYm9zZSkgeworKyAgICAgICAgZnBy aW50ZiAocHJpdi0+bG9nLCAiU3lzdGVtIGtleW1hcCBmb3JtYXQ6JXUgZmQ6JWQgc2l6ZToldSAi CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrZXltYXA6JXMgc3RhdGU6JXNcbiIsCisr ICAgICAgICAgICAgICAgICBmb3JtYXQsIGZkLCBzaXplLAorKyAgICAgICAgICAgICAgICAga2V5 bWFwID8gIlRSVUUiIDogIkZBTFNFIiwKKysgICAgICAgICAgICAgICAgIHByaXYtPnN0YXRlID8g IlRSVUUiIDogIkZBTFNFIik7CisrICAgICAgICBmZmx1c2ggKHByaXYtPmxvZyk7CisrICAgIH0K KyB9CisgCisgCitAQCAtMTE5OSw2ICsxMjQ3LDcgQEAgX2dldF9zZWF0X3dpdGhfbmFtZSAoR1B0 ckFycmF5ICpzZWF0cywKKyAgICAgcmV0dXJuIE5VTEw7CisgfQorIAorKworIHN0YXRpYyBnYm9v bGVhbgorIGlidXNfd2F5bGFuZF9pbV9wb3N0X2tleSAoSUJ1c1dheWxhbmRJTSAqd2xpbSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICAgICAgIGtleSwKK0BAIC0xMjA4LDgg KzEyNTcsMTMgQEAgaWJ1c193YXlsYW5kX2ltX3Bvc3Rfa2V5IChJQnVzV2F5bGFuZElNICp3bGlt LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgZmlsdGVyZWQpCisg eworICAgICBJQnVzV2F5bGFuZElNUHJpdmF0ZSAqcHJpdjsKKysgICAgeGtiX21vZF9tYXNrX3Qg bW9kc19kZXByZXNzZWQgPSAwLCBuZXdfbW9kc19kZXByZXNzZWQgPSAwOworKyAgICB4a2JfbW9k X21hc2tfdCBtb2RzX2xvY2tlZDsKKysgICAgeGtiX2xheW91dF9pbmRleF90ICBncm91cDsKKysg ICAgeGtiX2tleXN5bV90IHN5c3RlbV9zeW07CisgICAgIHVpbnQzMl90IGNvZGUgPSBrZXkgKyA4 OworICAgICB1aW50MzJfdCBjaDsKKysgICAgZ2Jvb2xlYW4gY2xlYXJfdmlydHVhbF9zdGF0ZSA9 IEZBTFNFOworIAorICAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoSUJVU19JU19XQVlMQU5EX0lN ICh3bGltKSwgRkFMU0UpOworICAgICBwcml2ID0gaWJ1c193YXlsYW5kX2ltX2dldF9pbnN0YW5j ZV9wcml2YXRlICh3bGltKTsKK0BAIC0xMjI5LDM5ICsxMjgzLDEyMyBAQCBpYnVzX3dheWxhbmRf aW1fcG9zdF9rZXkgKElCdXNXYXlsYW5kSU0gKndsaW0sCisgICAgIH0KKyAgICAgaWYgKCFwcml2 LT5zdGF0ZSkKKyAgICAgICAgIHJldHVybiBGQUxTRTsKKysgICAgbW9kc19kZXByZXNzZWQgPSB4 a2Jfc3RhdGVfc2VyaWFsaXplX21vZHMgKHByaXYtPnN0YXRlLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX0RFUFJFU1NFRCB8CisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYS0JfU1RBVEVfTEFU Q0hFRCk7CisrICAgIG5ld19tb2RzX2RlcHJlc3NlZCA9IG1vZHNfZGVwcmVzc2VkOworKyAgICBt b2RzX2xvY2tlZCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbW9kcyAocHJpdi0+c3RhdGUsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYS0JfU1RBVEVfTU9EU19M T0NLRUQpOworKyAgICAvKiBYS0IgZ3JvdXAgbGF5b3V0IGlzIGNvbmZpZ3VyZWQgaW4gdGhlIHN5 c3RlbSBrZXltYXAgYnV0IG5vdCB0aGUKKysgICAgICogdXNlciBrZXltYXAgd2hpY2ggYWx3YXlz IGluY2x1ZGVzIGEgc2luZ2xlIGxheW91dC4KKysgICAgICovCisrICAgIGdyb3VwID0geGtiX3N0 YXRlX3NlcmlhbGl6ZV9sYXlvdXQgKHByaXYtPnN0YXRlX3N5c3RlbSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX0xBWU9VVF9MT0NLRUQpOworICAg ICBpZiAoIWZpbHRlcmVkKSB7CistI2lmIDAKKy0gICAgICAgIC8qIEZJWE1FOiBOZWVkIHRvIGNv bmZpcm0gYW55IG1vZGlmaWVycyBzaG91bGQgYmUgaWdub3JlZC4gKi8KKy0gICAgICAgIGlmICgh aWJ1c19hY2NlbGVyYXRvcl92YWxpZCAoCistICAgICAgICAgICAgICAgICAgICBzeW0sCistICAg ICAgICAgICAgICAgICAgICBtb2RpZmllcnMgJiBJQlVTX01PRElGSUVSX01BU0sgJiB+SUJVU19T SElGVF9NQVNLKSkgeworLSAgICAgICAgICAgIGZpbHRlcmVkID0gVFJVRTsKKy0gICAgICAgIH0K Ky0jZWxzZQorKyAgICAgICAgc3lzdGVtX3N5bSA9IHhrYl9zdGF0ZV9rZXlfZ2V0X29uZV9zeW0g KHByaXYtPnN0YXRlX3N5c3RlbSwgY29kZSk7CisgICAgICAgICBzd2l0Y2ggKHN5bSkgeworLSAg ICAgICAgY2FzZSBJQlVTX0lTT19MZXZlbDJfTGF0Y2g6CistICAgICAgICBjYXNlIElCVVNfSVNP X0xldmVsM19MYXRjaDoKKy0gICAgICAgIGNhc2UgSUJVU19JU09fTGV2ZWw1X0xhdGNoOgorKyAg ICAgICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2ZWwyX0xhdGNoOgorICAgICAgICAgICAgIGZpbHRl cmVkID0gVFJVRTsKKyAgICAgICAgICAgICBicmVhazsKKysgICAgICAgIC8qIExldmVsM19sYXRj aCBpcyBjYXVzZWQgYnkgVExERSBrZXkgaW4gbHYodGlsZGUpIGtleW1hcC4KKysgICAgICAgICAq IExldmVsM19TaGlmdCBpcyBjYXVzZWQgYnkgQWx0IGtleSBpbiBsdih0aWxkZSkga2V5bWFwLgor KyAgICAgICAgICovCisrICAgICAgICBjYXNlIElCVVNfS0VZX0lTT19MZXZlbDNfTGF0Y2g6Cisr ICAgICAgICBjYXNlIElCVVNfS0VZX0lTT19MZXZlbDNfU2hpZnQ6CisrICAgICAgICAgICAgaWYg KHN0YXRlID09IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9QUkVTU0VEKSB7CisrICAgICAgICAgICAg ICAgIG5ld19tb2RzX2RlcHJlc3NlZCB8PSBwcml2LT5tb2Q1X21hc2s7CisrICAgICAgICAgICAg ICAgIGlmIChzeW0gIT0gc3lzdGVtX3N5bSkKKysgICAgICAgICAgICAgICAgICAgIHByaXYtPmlz X3ZpcnR1YWxfbGF0Y2hfc3RhdGUgPSBUUlVFOworKyAgICAgICAgICAgICAgICBmaWx0ZXJlZCA9 IFRSVUU7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgLyog TGV2ZWw1X0xhdGNoIGlzIGNhdXNlZCBieSBTaGlmdCtBbHQga2V5IGluIGRlKFQzKSBrZXltYXAu CisrICAgICAgICAgKi8KKysgICAgICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVsNV9MYXRjaDoK KysgICAgICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVsNV9TaGlmdDoKKysgICAgICAgICAgICBp ZiAoc3RhdGUgPT0gV0xfS0VZQk9BUkRfS0VZX1NUQVRFX1BSRVNTRUQpIHsKKysgICAgICAgICAg ICAgICAgbmV3X21vZHNfZGVwcmVzc2VkIHw9IHByaXYtPm1vZDNfbWFzazsKKysgICAgICAgICAg ICAgICAgaWYgKHN5bSAhPSBzeXN0ZW1fc3ltKQorKyAgICAgICAgICAgICAgICAgICAgcHJpdi0+ aXNfdmlydHVhbF9sYXRjaF9zdGF0ZSA9IFRSVUU7CisrICAgICAgICAgICAgICAgIGZpbHRlcmVk ID0gVFJVRTsKKysgICAgICAgICAgICB9CisrICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICBj YXNlIElCVVNfS0VZX1NoaWZ0X0w6CisrICAgICAgICBjYXNlIElCVVNfS0VZX1NoaWZ0X1I6Cisr ICAgICAgICAgICAgaWYgKHN0YXRlID09IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9QUkVTU0VEKQor KyAgICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgfD0gcHJpdi0+c2hpZnRfbWFzazsK KysgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCAm PSB+cHJpdi0+c2hpZnRfbWFzazsKKysgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGRlZmF1 bHQ6OworICAgICAgICAgfQorKyNpZmRlZiBJQlVTX0xPR19TSE9XX0tFWVNZTQorKyAgICAgICAg aWYgKHByaXYtPnZlcmJvc2UpIHsKKysgICAgICAgICAgICBmcHJpbnRmIChwcml2LT5sb2csICIl cyBrZXk6JXUgc3ltOiV4IHN5c3RlbV9zeW06JXggbW9kaWZpZXJzOiV4ICIKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJzdGF0ZTolcyBmaWx0ZXJlZDolZFxuIiwKKysgICAgICAg ICAgICAgICAgICAgICBHX1NUUkZVTkMsCisrICAgICAgICAgICAgICAgICAgICAga2V5LCBzeW0s IHN5c3RlbV9zeW0sIG1vZGlmaWVycywKKysgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA/ICJw cmVzcyIgOiAicmVsZWFzZSIsCisrICAgICAgICAgICAgICAgICAgICAgZmlsdGVyZWQpOworKyAg ICAgICAgICAgIGZmbHVzaCAocHJpdi0+bG9nKTsKKysgICAgICAgIH0KKyAjZW5kaWYKKyAgICAg fQorLSAgICBpZiAoIWZpbHRlcmVkICYmIChzdGF0ZSAhPSBXTF9LRVlCT0FSRF9LRVlfU1RBVEVf UkVMRUFTRUQpKSB7CistICAgICAgICBjaCA9IHhrYl9zdGF0ZV9rZXlfZ2V0X3V0ZjMyIChwcml2 LT5zdGF0ZSwgY29kZSk7CistICAgICAgICBpZiAoIShtb2RpZmllcnMgJiBJQlVTX01PRElGSUVS X01BU0sgJiB+SUJVU19TSElGVF9NQVNLKSAmJgorLSAgICAgICAgICAgIGNoICYmIGNoICE9ICdc bicgJiYgY2ggIT0gJ1xiJyAmJiBjaCAhPSAnXHInICYmIGNoICE9ICdcdCcgJiYKKy0gICAgICAg ICAgICBjaCAhPSAnXDAzMycgJiYgY2ggIT0gJ1x4N2YnKSB7CistICAgICAgICAgICAgZ2NoYXIg YnVmZls4XSA9IHsgMCwgfTsKKy0gICAgICAgICAgICBidWZmW2dfdW5pY2hhcl90b191dGY4IChj aCwgYnVmZildID0gJ1wwJzsKKy0gICAgICAgICAgICBpYnVzX3dheWxhbmRfaW1fY29tbWl0X3Rl eHQgKHdsaW0sIGJ1ZmYpOworLSAgICAgICAgICAgIGZpbHRlcmVkID0gVFJVRTsKKysgICAgaWYg KHN0YXRlICE9IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9SRUxFQVNFRCkgeworKyAgICAgICAgY2gg PSBpYnVzX2tleXZhbF90b191bmljb2RlIChzeW0pOworKyAgICAgICAgaWYgKGNoID09IDAgfHwg Z191bmljaGFyX2lzY250cmwgKGNoKSkKKysgICAgICAgICAgICBjaCA9IHhrYl9zdGF0ZV9rZXlf Z2V0X3V0ZjMyIChwcml2LT5zdGF0ZSwgY29kZSk7CisrLyogTm8gdGV4dCB3aXRoIENvbnRyb2wg JiBBbHQgJiBTdXBlciBrZXlzICovCisrI2lmbmRlZiBHREtfV0lORE9XSU5HX1FVQVJUWgorKyMg IGRlZmluZSBfSUJVU19OT19URVhUX0lOUFVUX01PRF9NQVNLIChcCisrICAgIElCVVNfQ09OVFJP TF9NQVNLIHwgSUJVU19NT0QxX01BU0sgfCBJQlVTX01PRDRfTUFTSykKKysjZWxzZQorKyMgIGRl ZmluZSBfSUJVU19OT19URVhUX0lOUFVUX01PRF9NQVNLIChcCisrICAgIElCVVNfQ09OVFJPTF9N QVNLIHwgSUJVU19NT0QyX01BU0sgfCBJQlVTX01PRDRfTUFTSykKKysjZW5kaWYKKysgICAgICAg IGlmICgoIWZpbHRlcmVkICYmICEobW9kaWZpZXJzICYgX0lCVVNfTk9fVEVYVF9JTlBVVF9NT0Rf TUFTSykgJiYKKysgICAgICAgICAgICAgIWdfdW5pY2hhcl9pc2NudHJsIChjaCkpIHx8IGZpbHRl cmVkKSB7CisrICAgICAgICAgICAgaWYgKCFmaWx0ZXJlZCkgeworKyAgICAgICAgICAgICAgICBn Y2hhciBidWZmWzhdID0geyAwLCB9OworKyAgICAgICAgICAgICAgICBidWZmW2dfdW5pY2hhcl90 b191dGY4IChjaCwgYnVmZildID0gJ1wwJzsKKysgICAgICAgICAgICAgICAgaWJ1c193YXlsYW5k X2ltX2NvbW1pdF90ZXh0ICh3bGltLCBidWZmKTsKKysgICAgICAgICAgICAgICAgZmlsdGVyZWQg PSBUUlVFOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICAvKiBJZiBgZmlsdGVyZWRgIGlz ICVUUlVFLCB0aGUga2V5c3ltIGNhbiBiZSBlYXRlbiBmb3IgdGhlIGNvbXBvc2UKKysgICAgICAg ICAgICAgKiBwcmVlZGl0IGJ5IElCdXMgWEtCIGVuZ2luZS4gRS5nLiBBbHRHci1TaGlmdC1WIGtl eSBwcm9kdWNlcworKyAgICAgICAgICAgICAqIGBMZXZlbDNfU2hpZnQnIGFuZCBgR3JlZWtfT01F R0FgIGtleXN5bSB3aXRoICJ1cyhzeW1ib2xpYykiCisrICAgICAgICAgICAgICoga2V5bWFwLiBI b3dldmVyIGlmIHlvdSBjb25maWdyZSBtdWx0aXBsZSBrZXltYXBzLCBBbHRHci1TaGlmdAorKyAg ICAgICAgICAgICAqIG1heSBwcm9kdWNlIHRoZSBrZXltYXAgc3dpdGNoIGFsdGhvdWdoIEFsdEdy LVNoaWZ0LVYgcHJvZHVjZXMKKysgICAgICAgICAgICAgKiBgR3JlZWtfT01FR0FgLgorKyAgICAg ICAgICAgICAqIEknbSBub3QgY2xhcmlmaWVkIHdpdGggImxldmVsMyhyYWx0X3N3aXRjaCkiIGlu IHVzIFhLQiBrZXltYXBzLgorKyAgICAgICAgICAgICAqLworKyAgICAgICAgICAgIGlmIChtb2Rp ZmllcnMgJiBJQlVTX01PRDNfTUFTSykgeworKyAgICAgICAgICAgICAgICBuZXdfbW9kc19kZXBy ZXNzZWQgJj0gfnByaXYtPm1vZDNfbWFzazsKKysgICAgICAgICAgICAgICAgY2xlYXJfdmlydHVh bF9zdGF0ZSA9IFRSVUU7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIGlmIChtb2RpZmll cnMgJiBJQlVTX01PRDVfTUFTSykgeworKyAgICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNz ZWQgJj0gfnByaXYtPm1vZDVfbWFzazsKKysgICAgICAgICAgICAgICAgY2xlYXJfdmlydHVhbF9z dGF0ZSA9IFRSVUU7CisrICAgICAgICAgICAgfQorICAgICAgICAgfQorKyN1bmRlZiBfSUJVU19O T19URVhUX0lOUFVUX01PRF9NQVNLCisrICAgIH0KKysgICAgaWYgKHByaXYtPmlzX3ZpcnR1YWxf bGF0Y2hfc3RhdGUpIHsKKysgICAgICAgIGlmIChuZXdfbW9kc19kZXByZXNzZWQgIT0gbW9kc19k ZXByZXNzZWQpIHsKKysgICAgICAgICAgICBpbnB1dF9tZXRob2Rfa2V5Ym9hcmRfbW9kaWZpZXJz ICh3bGltLCBOVUxMLCAwLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAwLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1vZHNfbG9ja2VkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdyb3VwKTsKKysgICAgICAgIH0KKysgICAgICAgIGlmIChjbGVhcl92aXJ0 dWFsX3N0YXRlKQorKyAgICAgICAgICAgIHByaXYtPmlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGUgPSBG QUxTRTsKKysgICAgfQorKyAgICBpZiAoIXByaXYtPmlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGUgfHwK KysgICAgICAgIChzdGF0ZSAhPSBXTF9LRVlCT0FSRF9LRVlfU1RBVEVfUkVMRUFTRUQpKSB7Cisr ICAgICAgICB4a2Jfc3RhdGVfdXBkYXRlX2tleSAocHJpdi0+c3RhdGUsIGNvZGUsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHN0YXRlID09IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9S RUxFQVNFRCkKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFhLQl9LRVlfVVAgOiBY S0JfS0VZX0RPV04pOworICAgICB9CistICAgIHhrYl9zdGF0ZV91cGRhdGVfa2V5IChwcml2LT5z dGF0ZSwgY29kZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIChzdGF0ZSA9PSBXTF9LRVlC T0FSRF9LRVlfU1RBVEVfUkVMRUFTRUQpCistICAgICAgICAgICAgICAgICAgICAgICAgICA/IFhL Ql9LRVlfVVAgOiBYS0JfS0VZX0RPV04pOworICAgICByZXR1cm4gZmlsdGVyZWQ7CisgfQorIAor QEAgLTE3MDYsMTIgKzE4NDQsMzEgQEAgaW5wdXRfbWV0aG9kX2tleWJvYXJkX2tleSAodm9pZCAg ICAgICAgICAgICAgICAgICAgICAqZGF0YSwKKyAgICAgLyogeGtiX2tleV9nZXRfc3ltcygpIGRv ZXMgbm90IHJldHVybiB0aGUgY2FwaXRhbCBzeW1zIHdpdGggU2hpZnQga2V5LiAqLworICAgICBp ZiAocHJpdi0+c3RhdGVfc3lzdGVtKQorICAgICAgICAgZXZlbnQuc3ltID0geGtiX3N0YXRlX2tl eV9nZXRfb25lX3N5bSAocHJpdi0+c3RhdGVfc3lzdGVtLCBjb2RlKTsKKy0gICAgaWYgKGV2ZW50 LnN5bSAhPSBJQlVTX0tFWV9NdWx0aV9rZXkpCisrICAgIHN3aXRjaCAoZXZlbnQuc3ltKSB7Cisr ICAgIGNhc2UgSUJVU19LRVlfTXVsdGlfa2V5OgorKyAgICBjYXNlIElCVVNfS0VZX0lTT19OZXh0 X0dyb3VwOgorKyAgICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6CisgICAgICAgICBldmVudC5z eW0gPSB4a2Jfc3RhdGVfa2V5X2dldF9vbmVfc3ltIChwcml2LT5zdGF0ZSwgY29kZSk7CisrICAg IH0KKyAgICAgZXZlbnQubW9kaWZpZXJzID0gcHJpdi0+bW9kaWZpZXJzOworICAgICBpZiAoc3Rh dGUgPT0gV0xfS0VZQk9BUkRfS0VZX1NUQVRFX1JFTEVBU0VEKQorICAgICAgICAgZXZlbnQubW9k aWZpZXJzIHw9IElCVVNfUkVMRUFTRV9NQVNLOworICAgICBldmVudC53bGltID0gd2xpbTsKKysj aWZkZWYgSUJVU19MT0dfU0hPV19LRVlTWU0KKysgICAgaWYgKHByaXYtPnZlcmJvc2UpIHsKKysg ICAgICAgIGZwcmludGYgKHByaXYtPmxvZywgIiVzIHNlcmlhbDoldSB0aW1lOiV1IGtleToldSAi CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzeW06JXggc3lzdGVtX3VzZXI6JXggc3lz dGVtX3N5bToleCAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb2RpZmllcnM6JXgg c3RhdGU6JXNcbiIsCisrICAgICAgICAgICAgICAgICBHX1NUUkZVTkMsCisrICAgICAgICAgICAg ICAgICBrZXlfc2VyaWFsLCB0aW1lLCBrZXksCisrICAgICAgICAgICAgICAgICBldmVudC5zeW0s CisrICAgICAgICAgICAgICAgICB4a2Jfc3RhdGVfa2V5X2dldF9vbmVfc3ltIChwcml2LT5zdGF0 ZSwgY29kZSksCisrICAgICAgICAgICAgICAgICB4a2Jfc3RhdGVfa2V5X2dldF9vbmVfc3ltIChw cml2LT5zdGF0ZV9zeXN0ZW0sIGNvZGUpLAorKyAgICAgICAgICAgICAgICAgZXZlbnQubW9kaWZp ZXJzLCBzdGF0ZSA/ICJwcmVzcyIgOiAicmVsZWFzZSIpOworKyAgICAgICAgZmZsdXNoIChwcml2 LT5sb2cpOworKyAgICB9CisrI2VuZGlmCisgCisgICAgIGtleV9ldmVudF9jaGVja19yZXBlYXQg KHdsaW0sICZldmVudCk7CisgICAgIHN3aXRjaCAoX3VzZV9zeW5jX21vZGUpIHsKK0BAIC0xNzQw LDExICsxODk3LDQ3IEBAIGlucHV0X21ldGhvZF9rZXlib2FyZF9tb2RpZmllcnMgKHZvaWQgICAg ICAgICAgICAgICAgICAgICAgKmRhdGEsCisgCisgICAgIGdfcmV0dXJuX2lmX2ZhaWwgKElCVVNf SVNfV0FZTEFORF9JTSAod2xpbSkpOworICAgICBwcml2ID0gaWJ1c193YXlsYW5kX2ltX2dldF9p bnN0YW5jZV9wcml2YXRlICh3bGltKTsKKy0gICAgeGtiX3N0YXRlX3VwZGF0ZV9tYXNrIChwcml2 LT5zdGF0ZSwgbW9kc19kZXByZXNzZWQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9k c19sYXRjaGVkLCBtb2RzX2xvY2tlZCwgMCwgMCwgZ3JvdXApOworKyAgICAvKiBEbyBub3QgcmVz ZXQgTGF0Y2ggbW9kaWZpZXJzIGJ5IHN5c3RlbSBpbiBjYXNlIHRoZSBzeXN0ZW0ga2V5bWFwCisr ICAgICAqIGhhcyBubyB0aGUgTGF0Y2gga2V5LgorKyAgICAgKiBJbiBjYXNlIHRoZSB1c2VyIGtl eW1hcCBpcyAibHYodGlsZGUpIiBhbmQgdGhlIHN5c3RlbSBvbmUgaXMgInVzIiwKKysgICAgICog aW5wdXRfbWV0aG9kX2tleWJvYXJkX21vZGlmaWVycygpIGNsZWFycyBzdGF0ZSBvZiBMZXZlbDNf TGF0Y2gga2V5CisrICAgICAqIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBMZXZlbDNfTGF0Y2gga2V5 IGlzIHJlbGVhc2VkIGJlY2F1c2UgdGhlICJ1cyIKKysgICAgICoga2V5bWFwIGRvZXMgbm90IGhh dmUgdGhlIGxhdGNoIGtleXMuCisrICAgICAqIFRoZSBiZWhhdmlvciBpcyBkaWZmZXJlbnQgaW4g Y2FzZSBib3RoIHVzZXIgYW5kIHN5c3RlbSBrZXltYXBzIGFyZQorKyAgICAgKiAibHYodGlsZGUp Ii4KKysgICAgICogU28gYGlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGVgIGtlZXBzIHRoZSB2aXJ0dWFs IHN0YXRlIG9mIHRoZSBsYXRjaCBrZXlzCisrICAgICAqIG5vdCB0byBvdmVycmlkZSB0aGUgc3Rh dGUgb2YgdGhlICJ1cyIga2V5bWFwLgorKyAgICAgKi8KKysgICAgaWYgKCFwcml2LT5pc192aXJ0 dWFsX2xhdGNoX3N0YXRlIHx8IGtleV9zZXJpYWwgPT0gMCkgeworKyAgICAgICAgeGtiX3N0YXRl X3VwZGF0ZV9tYXNrIChwcml2LT5zdGF0ZSwgbW9kc19kZXByZXNzZWQsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1vZHNfbGF0Y2hlZCwgbW9kc19sb2NrZWQsIDAsIDAsIGdyb3Vw KTsKKysgICAgICAgIC8qIFByZXNzaW5nIFhLQiBncm91cCBrZXkgbGlrZXMgQWx0X1Igd2l0aCBn cnA6dG9nZ2xlIGNhbGxzCisrICAgICAgICAgKiBpbnB1dF9tZXRob2Rfa2V5Ym9hcmRfbW9kaWZp ZXJzKCkgd2l0aCB0aGUgdXBkYXRlZCBgZ3JvdXBgCisrICAgICAgICAgKiBhbmQgbmVlZCB0byB1 cGRhdGUgcHJpdi0+c3RhdGVfc3lzdGVtIHRvIHN3aXRjaCB0aGUgWEtCIGdyb3VwCisrICAgICAg ICAgKiBpbiB0aGUgc3lzdGVtIGtleW1hcC4KKysgICAgICAgICAqCisrICAgICAgICAgKiBYS0Ig Z3JvdXAga2V5IGNhbiBzd2l0Y2ggYGdyb3VwYCBidXQgY2xpY2tpbmcgdGhlIGtleWJvYXJkIGlj b24KKysgICAgICAgICAqIG9mIEtERSBkb2VzIG5vdCBjaGFuZ2UgYGdyb3VwYCBhdCBwcmVzZW50 LiBNYXliZSBhIGJ1ZyBpbiB0aGUKKysgICAgICAgICAqIEtERSBXYXlsYW5kIGNvbXBvc2l0b3Iu CisrICAgICAgICAgKi8KKysgICAgICAgIHhrYl9zdGF0ZV91cGRhdGVfbWFzayAocHJpdi0+c3Rh dGVfc3lzdGVtLCBtb2RzX2RlcHJlc3NlZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbW9kc19sYXRjaGVkLCBtb2RzX2xvY2tlZCwgMCwgMCwgZ3JvdXApOworKyAgICB9CisrICAg IC8qIENhcHNMb2NrIG5lZWRzIFhLQl9TVEFURV9NT0RTX0xPQ0tFRCAqLworICAgICBtYXNrID0g eGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzIChwcml2LT5zdGF0ZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX0RFUFJFU1NFRCB8CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFhLQl9TVEFURV9MQVRDSEVEKTsKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX0xBVENIRUQgfAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYS0JfU1RBVEVfTU9EU19MT0NLRUQpOworKyAg ICBpZiAocHJpdi0+dmVyYm9zZSkgeworKyAgICAgICAgZnByaW50ZiAocHJpdi0+bG9nLCAiVXBk YXRlIG1vZGlmaWVycyBzZXJpYWw6JXUgZGVwcmVzczolWCBsYXRjaDolWCAiCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAibG9jazolWCBncm91cDolWCBvcmlnX2RlcHJlOiVYIG9yaWdf bGF0Y2g6JVggIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yaWdfbG9jazolWFxu IiwKKysgICAgICAgICAgICAgICAgIGtleV9zZXJpYWwsIG1vZHNfZGVwcmVzc2VkLCBtb2RzX2xh dGNoZWQsIG1vZHNfbG9ja2VkLCBncm91cCwKKysgICAgICAgICAgICAgICAgIHhrYl9zdGF0ZV9z ZXJpYWxpemVfbW9kcyAocHJpdi0+c3RhdGUsIFhLQl9TVEFURV9ERVBSRVNTRUQpLAorKyAgICAg ICAgICAgICAgICAgeGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzIChwcml2LT5zdGF0ZSwgWEtCX1NU QVRFX0xBVENIRUQpLAorKyAgICAgICAgICAgICAgICAgeGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2Rz IChwcml2LT5zdGF0ZSwgWEtCX1NUQVRFX01PRFNfTE9DS0VEKSk7CisrICAgICAgICBmZmx1c2gg KHByaXYtPmxvZyk7CisrICAgIH0KKyAKKyAgICAgcHJpdi0+bW9kaWZpZXJzID0gMDsKKyAgICAg aWYgKG1hc2sgJiBwcml2LT5zaGlmdF9tYXNrKQorQEAgLTE3NzAsNiArMTk2Myw5IEBAIGlucHV0 X21ldGhvZF9rZXlib2FyZF9tb2RpZmllcnMgKHZvaWQgICAgICAgICAgICAgICAgICAgICAgKmRh dGEsCisgICAgIGlmIChtYXNrICYgcHJpdi0+bWV0YV9tYXNrKQorICAgICAgICAgcHJpdi0+bW9k aWZpZXJzIHw9IElCVVNfTUVUQV9NQVNLOworIAorKyAgICBpZiAoIWtleV9zZXJpYWwpCisrICAg ICAgICByZXR1cm47CisrCisgICAgIHN3aXRjaCAocHJpdi0+dmVyc2lvbikgeworICAgICBjYXNl IElOUFVUX01FVEhPRF9WMToKKyAgICAgICAgIHp3cF9pbnB1dF9tZXRob2RfY29udGV4dF92MV9t b2RpZmllcnMgKHByaXYtPmNvbnRleHQsIGtleV9zZXJpYWwsCitAQCAtMjc0OCw3ICsyOTQ0LDE4 IEBAIGlidXNfd2F5bGFuZF9pbV9jb25zdHJ1Y3RvciAoR1R5cGUgICAgICAgICAgICAgICAgICB0 eXBlLAorICAgICBpZiAoZGVzYykKKyAgICAgICAgIGtleW1hcCA9IGNyZWF0ZV91c2VyX3hrYl9r ZXltYXAgKHByaXYtPnhrYl9jb250ZXh0LCBkZXNjKTsKKyAgICAgaWYgKGtleW1hcCAmJiAhaWJ1 c193YXlsYW5kX2ltX3VwZGF0ZV94a2Jfc3RhdGUgKHdsaW0sIGtleW1hcCkpCistICAgICAgICB4 a2Jfa2V5bWFwX3VucmVmIChrZXltYXApOworKyAgICAgICAgZ19jbGVhcl9wb2ludGVyICgma2V5 bWFwLCB4a2Jfa2V5bWFwX3VucmVmKTsKKysgICAgaWYgKHByaXYtPnZlcmJvc2UpIHsKKysgICAg ICAgIGlmICghZGVzYykgeworKyAgICAgICAgICAgIGZwcmludGYgKHByaXYtPmxvZywgIkNvbnN0 cnVjdG9yIGhhcyBObyBnbG9iYWwgZW5naW5lXG4iKTsKKysgICAgICAgIH0gZWxzZSB7CisrICAg ICAgICAgICAgZnByaW50ZiAocHJpdi0+bG9nLCAiQ29uc3RydWN0b3IgZW5naW5lICVzIGtleW1h cDolcyBzdGF0ZTolc1xuIiwKKysgICAgICAgICAgICAgICAgICAgICBpYnVzX2VuZ2luZV9kZXNj X2dldF9uYW1lIChkZXNjKSwKKysgICAgICAgICAgICAgICAgICAgICBrZXltYXAgPyAiVFJVRSIg OiAiRkFMU0UiLAorKyAgICAgICAgICAgICAgICAgICAgIHByaXYtPnN0YXRlID8gIlRSVUUiIDog IkZBTFNFIik7CisrICAgICAgICB9CisrICAgICAgICBmZmx1c2ggKHByaXYtPmxvZyk7CisrICAg IH0KKyAgICAgaWJ1c19idXNfc2V0X3dhdGNoX2lidXNfc2lnbmFsIChwcml2LT5pYnVzYnVzLCBU UlVFKTsKKyAgICAgZ19zaWduYWxfY29ubmVjdCAocHJpdi0+aWJ1c2J1cywgImdsb2JhbC1lbmdp bmUtY2hhbmdlZCIsCisgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKF9idXNfZ2xv YmFsX2VuZ2luZV9jaGFuZ2VkX2NiKSwKKy0tIAorMi41My4wCisKK0Zyb20gMTI3NjExNGQxMGQ3 MGNmOGY0ZTQ4OTUxOGNhYjgyYmJlM2FjNTljYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMjkg TWF5IDIwMjYgMTc6MzY6MzIgKzA5MDAKK1N1YmplY3Q6IFtQQVRDSCAyLzldIGNsaWVudC93YXls YW5kOiBSZWZhY3RvciBpYnVzX3dheWxhbmRfaW1fcG9zdF9rZXkoKQorCitTZXBhcmF0ZSAzIGZ1 bmN0aW9ucy4KKworQ2xvc2VzOiByaGJ6IzI0NDQwMDkKKy0tLQorIGNsaWVudC93YXlsYW5kL2li dXN3YXlsYW5kaW0uYyB8IDM0NiArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KKyAx IGZpbGUgY2hhbmdlZCwgMjI3IGluc2VydGlvbnMoKyksIDExOSBkZWxldGlvbnMoLSkKKworZGlm ZiAtLWdpdCBhL2NsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYyBiL2NsaWVudC93YXlsYW5k L2lidXN3YXlsYW5kaW0uYworaW5kZXggZmE3MmNlNGUuLjQyNTU3NGJkIDEwMDY0NAorLS0tIGEv Y2xpZW50L3dheWxhbmQvaWJ1c3dheWxhbmRpbS5jCisrKysgYi9jbGllbnQvd2F5bGFuZC9pYnVz d2F5bGFuZGltLmMKK0BAIC0zNTksNiArMzU5LDcxIEBAIGlidXNfd2F5bGFuZF9pbV9jb21taXRf dGV4dCAoSUJ1c1dheWxhbmRJTSAqd2xpbSwKKyB9CisgCisgCisrc3RhdGljIGdib29sZWFuCisr aWJ1c193YXlsYW5kX2ltX2NvbW1pdF9rZXlfZXZlbnQgKElCdXNXYXlsYW5kSU0gICp3bGltLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICAga2V5LAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICAgbW9kaWZp ZXJzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICAg c3RhdGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhrYl9rZXlzeW1fdCAg ICBzeW0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAg ICBmaWx0ZXJlZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGtiX21vZF9t YXNrX3QgKm5ld19tb2RzX2RlcHJlc3NlZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ2Jvb2xlYW4gICAgICAgKmNsZWFyX3ZpcnR1YWxfc3RhdGUpCisreworKyAgICBJQnVz V2F5bGFuZElNUHJpdmF0ZSAqcHJpdjsKKysgICAgdWludDMyX3QgY29kZSA9IGtleSArIDg7Cisr ICAgIHVpbnQzMl90IGNoOworKworKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoSUJVU19JU19X QVlMQU5EX0lNICh3bGltKSwgZmlsdGVyZWQpOworKyAgICBwcml2ID0gaWJ1c193YXlsYW5kX2lt X2dldF9pbnN0YW5jZV9wcml2YXRlICh3bGltKTsKKysKKysgICAgaWYgKHN0YXRlID09IFdMX0tF WUJPQVJEX0tFWV9TVEFURV9SRUxFQVNFRCkKKysgICAgICAgIHJldHVybiBmaWx0ZXJlZDsKKysK KysgICAgY2ggPSBpYnVzX2tleXZhbF90b191bmljb2RlIChzeW0pOworKyAgICBpZiAoY2ggPT0g MCB8fCBnX3VuaWNoYXJfaXNjbnRybCAoY2gpKQorKyAgICAgICAgY2ggPSB4a2Jfc3RhdGVfa2V5 X2dldF91dGYzMiAocHJpdi0+c3RhdGUsIGNvZGUpOworKworKy8qIE5vIHRleHQgd2l0aCBDb250 cm9sICYgQWx0ICYgU3VwZXIga2V5cyAqLworKyNpZm5kZWYgR0RLX1dJTkRPV0lOR19RVUFSVFoK KysjICBkZWZpbmUgX0lCVVNfTk9fVEVYVF9JTlBVVF9NT0RfTUFTSyAoXAorKyAgICBJQlVTX0NP TlRST0xfTUFTSyB8IElCVVNfTU9EMV9NQVNLIHwgSUJVU19NT0Q0X01BU0spCisrI2Vsc2UKKysj ICBkZWZpbmUgX0lCVVNfTk9fVEVYVF9JTlBVVF9NT0RfTUFTSyAoXAorKyAgICBJQlVTX0NPTlRS T0xfTUFTSyB8IElCVVNfTU9EMl9NQVNLIHwgSUJVU19NT0Q0X01BU0spCisrI2VuZGlmCisrICAg IGlmICgoIWZpbHRlcmVkICYmICEobW9kaWZpZXJzICYgX0lCVVNfTk9fVEVYVF9JTlBVVF9NT0Rf TUFTSykgJiYKKysgICAgICAgICAhZ191bmljaGFyX2lzY250cmwgKGNoKSkgfHwgZmlsdGVyZWQp IHsKKysgICAgICAgIGlmICghZmlsdGVyZWQpIHsKKysgICAgICAgICAgICBnY2hhciBidWZmWzhd ID0geyAwLCB9OworKyAgICAgICAgICAgIGJ1ZmZbZ191bmljaGFyX3RvX3V0ZjggKGNoLCBidWZm KV0gPSAnXDAnOworKyAgICAgICAgICAgIGlidXNfd2F5bGFuZF9pbV9jb21taXRfdGV4dCAod2xp bSwgYnVmZik7CisrICAgICAgICAgICAgZmlsdGVyZWQgPSBUUlVFOworKyAgICAgICAgfQorKyAg ICAgICAgLyogSWYgYGZpbHRlcmVkYCBpcyAlVFJVRSwgdGhlIGtleXN5bSBjYW4gYmUgZWF0ZW4g Zm9yIHRoZSBjb21wb3NlCisrICAgICAgICAgKiBwcmVlZGl0IGJ5IElCdXMgWEtCIGVuZ2luZS4g RS5nLiBBbHRHci1TaGlmdC1WIGtleSBwcm9kdWNlcworKyAgICAgICAgICogYExldmVsM19TaGlm dCcgYW5kIGBHcmVla19PTUVHQWAga2V5c3ltIHdpdGggInVzKHN5bWJvbGljKSIga2V5bWFwLgor KyAgICAgICAgICogSG93ZXZlciBpZiB5b3UgY29uZmlncmUgbXVsdGlwbGUga2V5bWFwcywgQWx0 R3ItU2hpZnQgbWF5IHByb2R1Y2UKKysgICAgICAgICAqIHRoZSBrZXltYXAgc3dpdGNoIGFsdGhv dWdoIEFsdEdyLVNoaWZ0LVYgcHJvZHVjZXMgYEdyZWVrX09NRUdBYC4KKysgICAgICAgICAqIEkn bSBub3QgY2xhcmlmaWVkIHdpdGggImxldmVsMyhyYWx0X3N3aXRjaCkiIGluIHVzIFhLQiBrZXlt YXBzLgorKyAgICAgICAgICovCisrICAgICAgICBpZiAobW9kaWZpZXJzICYgSUJVU19NT0QzX01B U0spIHsKKysgICAgICAgICAgICBpZiAobmV3X21vZHNfZGVwcmVzc2VkKQorKyAgICAgICAgICAg ICAgICAqbmV3X21vZHNfZGVwcmVzc2VkICY9IH5wcml2LT5tb2QzX21hc2s7CisrICAgICAgICAg ICAgaWYgKGNsZWFyX3ZpcnR1YWxfc3RhdGUpCisrICAgICAgICAgICAgICAgICpjbGVhcl92aXJ0 dWFsX3N0YXRlID0gVFJVRTsKKysgICAgICAgIH0KKysgICAgICAgIGlmIChtb2RpZmllcnMgJiBJ QlVTX01PRDVfTUFTSykgeworKyAgICAgICAgICAgIGlmIChuZXdfbW9kc19kZXByZXNzZWQpCisr ICAgICAgICAgICAgICAgICpuZXdfbW9kc19kZXByZXNzZWQgJj0gfnByaXYtPm1vZDVfbWFzazsK KysgICAgICAgICAgICBpZiAoY2xlYXJfdmlydHVhbF9zdGF0ZSkKKysgICAgICAgICAgICAgICAg KmNsZWFyX3ZpcnR1YWxfc3RhdGUgPSBUUlVFOworKyAgICAgICAgfQorKyAgICB9CisrI3VuZGVm IF9JQlVTX05PX1RFWFRfSU5QVVRfTU9EX01BU0sKKysgICAgcmV0dXJuIGZpbHRlcmVkOworK30K KysKKysKKyBzdGF0aWMgdm9pZAorIGlidXNfd2F5bGFuZF9pbV9rZXkgKElCdXNXYXlsYW5kSU0g KndsaW0sCisgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAga2V5X3NlcmlhbCwK K0BAIC00MjMsNiArNDg4LDE0NiBAQCBpYnVzX3dheWxhbmRfaW1fa2V5c3ltIChJQnVzV2F5bGFu ZElNICp3bGltLAorIH0KKyAKKyAKKysvKioKKysgKiBpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3Zp cnR1YWxfZGVwcmVzc2VkOgorKyAqCisrICogSWYgdGhlIElCdXMga2V5bWFwIGlzIGRpZmZlcmVu dCBmcm9tIHRoZSBjb21wb3NpdG9yIGtleW1hcCwKKysgKiBJQnVzIG5lZWRzIHRvIG1haW50YWlu IHRoZSBtb2RpZmllcnMgc3RhdGUgYnkgaXRzZWxmIHRvIGNhbGwKKysgKiB4a2Jfc3RhdGVfdXBk YXRlX21hc2soKSwgRS5nLiBJQnVzIGtleW1hcCBpcyAibHYodGlsZGUpIiBhbmQgdGhlIHN5c3Rl bQorKyAqIG9uZSBpcyAidXMiLCBiZWNhdXNlIGlucHV0X21ldGhvZF9rZXlib2FyZF9tb2RpZmll cnMoKQorKyAqIGlzIG5vdCBjYWxsZWQgYnkgdGhlIFdheWxhbmQgY29tcG9zaXRvciBpbiB0aGF0 IGNhc2UuCisrICogU28gdGhpcyBBUEkgdXBkYXRlcyBAbW9kc19kZXByZXNzZWQgd2l0aCBJU08g bGV2ZWwzIGFuZCBsZXZlbDUKKysgKiBsYXRjaCBhbmQgc2hpZnQgc3RhdGVzLCBhbmQgc2VuZCBp dCB0bworKyAqIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF94a2Jfc3RhdGUoKS4KKysg Ki8KKytzdGF0aWMgZ2Jvb2xlYW4KKytpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxfZGVw cmVzc2VkIChJQnVzV2F5bGFuZElNICAqd2xpbSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICAga2V5LAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICAgICAgICBtb2RpZmllcnMsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgIHN0 YXRlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhrYl9rZXlz eW1fdCAgICBzeW0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z2Jvb2xlYW4gICAgICAgIGZpbHRlcmVkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHhrYl9tb2RfbWFza190ICptb2RzX2RlcHJlc3NlZCkKKyt7CisrICAgIElC dXNXYXlsYW5kSU1Qcml2YXRlICpwcml2OworKyAgICB1aW50MzJfdCBjb2RlID0ga2V5ICsgODsK KysgICAgeGtiX21vZF9tYXNrX3QgbmV3X21vZHNfZGVwcmVzc2VkOworKyAgICB4a2Jfa2V5c3lt X3Qgc3lzdGVtX3N5bTsKKysKKysgICAgaWYgKGZpbHRlcmVkKQorKyAgICAgICAgcmV0dXJuIGZp bHRlcmVkOworKworKyAgICBnX2Fzc2VydCAoSUJVU19JU19XQVlMQU5EX0lNICh3bGltKSk7Cisr ICAgIGdfYXNzZXJ0IChtb2RzX2RlcHJlc3NlZCk7CisrCisrICAgIHByaXYgPSBpYnVzX3dheWxh bmRfaW1fZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHdsaW0pOworKyAgICBuZXdfbW9kc19kZXByZXNz ZWQgPSAqbW9kc19kZXByZXNzZWQ7CisrCisrICAgIGlmICgobW9kaWZpZXJzICYgfklCVVNfUkVM RUFTRV9NQVNLICkgIT0gbmV3X21vZHNfZGVwcmVzc2VkKSB7CisrICAgICAgICBnX3dhcm5pbmcg KCJJQnVzIG1vZGlmaWVycyAlWCBpcyBkaWZmZXJlbnQgZnJvbSBYS0IgZGVwcmVzc2VkICVYIiwK KysgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJzLCBuZXdfbW9kc19kZXByZXNzZWQpOworKyAg ICB9CisrICAgIHN5c3RlbV9zeW0gPSB4a2Jfc3RhdGVfa2V5X2dldF9vbmVfc3ltIChwcml2LT5z dGF0ZV9zeXN0ZW0sIGNvZGUpOworKyAgICBzd2l0Y2ggKHN5bSkgeworKyAgICBjYXNlIElCVVNf S0VZX0lTT19MZXZlbDJfTGF0Y2g6CisrICAgICAgICBmaWx0ZXJlZCA9IFRSVUU7CisrICAgICAg ICBicmVhazsKKysgICAgLyogTGV2ZWwzX2xhdGNoIGlzIGNhdXNlZCBieSBUTERFIGtleSBpbiBs dih0aWxkZSkga2V5bWFwLgorKyAgICAgKiBMZXZlbDNfU2hpZnQgaXMgY2F1c2VkIGJ5IEFsdCBr ZXkgaW4gbHYodGlsZGUpIGtleW1hcC4KKysgICAgICovCisrICAgIGNhc2UgSUJVU19LRVlfSVNP X0xldmVsM19MYXRjaDoKKysgICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2ZWwzX1NoaWZ0OgorKyAg ICAgICAgaWYgKHN0YXRlID09IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9QUkVTU0VEKSB7CisrICAg ICAgICAgICAgbmV3X21vZHNfZGVwcmVzc2VkIHw9IHByaXYtPm1vZDVfbWFzazsKKysgICAgICAg ICAgICBpZiAoc3ltICE9IHN5c3RlbV9zeW0pCisrICAgICAgICAgICAgICAgIHByaXYtPmlzX3Zp cnR1YWxfbGF0Y2hfc3RhdGUgPSBUUlVFOworKyAgICAgICAgICAgIGZpbHRlcmVkID0gVFJVRTsK KysgICAgICAgIH0KKysgICAgICAgIGJyZWFrOworKyAgICAvKiBMZXZlbDVfTGF0Y2ggaXMgY2F1 c2VkIGJ5IFNoaWZ0K0FsdCBrZXkgaW4gZGUoVDMpIGtleW1hcC4KKysgICAgICovCisrICAgIGNh c2UgSUJVU19LRVlfSVNPX0xldmVsNV9MYXRjaDoKKysgICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2 ZWw1X1NoaWZ0OgorKyAgICAgICAgaWYgKHN0YXRlID09IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9Q UkVTU0VEKSB7CisrICAgICAgICAgICAgbmV3X21vZHNfZGVwcmVzc2VkIHw9IHByaXYtPm1vZDNf bWFzazsKKysgICAgICAgICAgICBpZiAoc3ltICE9IHN5c3RlbV9zeW0pCisrICAgICAgICAgICAg ICAgIHByaXYtPmlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGUgPSBUUlVFOworKyAgICAgICAgICAgIGZp bHRlcmVkID0gVFJVRTsKKysgICAgICAgIH0KKysgICAgICAgIGJyZWFrOworKyAgICBjYXNlIElC VVNfS0VZX1NoaWZ0X0w6CisrICAgIGNhc2UgSUJVU19LRVlfU2hpZnRfUjoKKysgICAgICAgIGlm IChzdGF0ZSA9PSBXTF9LRVlCT0FSRF9LRVlfU1RBVEVfUFJFU1NFRCkKKysgICAgICAgICAgICBu ZXdfbW9kc19kZXByZXNzZWQgfD0gcHJpdi0+c2hpZnRfbWFzazsKKysgICAgICAgIGVsc2UKKysg ICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgJj0gfnByaXYtPnNoaWZ0X21hc2s7CisrICAg ICAgICBicmVhazsKKysgICAgZGVmYXVsdDo7CisrICAgIH0KKysjaWZkZWYgSUJVU19MT0dfU0hP V19LRVlTWU0KKysgICAgaWYgKHByaXYtPnZlcmJvc2UpIHsKKysgICAgICAgIGZwcmludGYgKHBy aXYtPmxvZywgIiVzIGtleToldSBzeW06JXggc3lzdGVtX3N5bToleCBtb2RpZmllcnM6JXggIgor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdGU6JXMgZmlsdGVyZWQ6JWRcbiIsCisr ICAgICAgICAgICAgICAgICBHX1NUUkZVTkMsCisrICAgICAgICAgICAgICAgICBrZXksIHN5bSwg c3lzdGVtX3N5bSwgbW9kaWZpZXJzLCBzdGF0ZSA/ICJwcmVzcyIgOiAicmVsZWFzZSIsCisrICAg ICAgICAgICAgICAgICBmaWx0ZXJlZCk7CisrICAgICAgICBmZmx1c2ggKHByaXYtPmxvZyk7Cisr ICAgIH0KKysjZW5kaWYKKysgICAgKm1vZHNfZGVwcmVzc2VkID0gbmV3X21vZHNfZGVwcmVzc2Vk OworKyAgICByZXR1cm4gZmlsdGVyZWQ7CisrfQorKworKworKy8qKgorKyAqIGlidXNfd2F5bGFu ZF9pbV91cGRhdGVfdmlydHVhbF94a2Jfc3RhdGU6CisrICoKKysgKiBVcGRhdGUgdmlydHVhbCBJ QnVzIHhrYl9zdGF0ZSBieSBLZXlQcmVzcyBhbmQgS2V5UmVsZWFzZS4KKysgKi8KKytzdGF0aWMg dm9pZAorK2lidXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF94a2Jfc3RhdGUgKElCdXNXYXls YW5kSU0gKndsaW0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgICAgICAga2V5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQzMl90ICAgICAgIHN0YXRlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHhrYl9tb2RfbWFza190IG1vZHNfZGVwcmVzc2VkLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhrYl9tb2RfbWFza190IG5ld19tb2Rz X2RlcHJlc3NlZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn Ym9vbGVhbiAgICAgICBjbGVhcl92aXJ0dWFsX3N0YXRlKQorK3sKKysgICAgSUJ1c1dheWxhbmRJ TVByaXZhdGUgKnByaXY7CisrICAgIHVpbnQzMl90IGNvZGUgPSBrZXkgKyA4OworKyAgICB4a2Jf bW9kX21hc2tfdCBtb2RzX2xvY2tlZDsKKysgICAgeGtiX2xheW91dF9pbmRleF90ICBncm91cDsK KysKKysgICAgZ19hc3NlcnQgKElCVVNfSVNfV0FZTEFORF9JTSAod2xpbSkpOworKworKyAgICBw cml2ID0gaWJ1c193YXlsYW5kX2ltX2dldF9pbnN0YW5jZV9wcml2YXRlICh3bGltKTsKKysgICAg bW9kc19sb2NrZWQgPSB4a2Jfc3RhdGVfc2VyaWFsaXplX21vZHMgKHByaXYtPnN0YXRlLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX01PRFNf TE9DS0VEKTsKKysgICAgLyogWEtCIGdyb3VwIGxheW91dCBpcyBjb25maWd1cmVkIGluIHRoZSBz eXN0ZW0ga2V5bWFwIGJ1dCBub3QgdGhlCisrICAgICAqIHVzZXIga2V5bWFwIHdoaWNoIGFsd2F5 cyBpbmNsdWRlcyBhIHNpbmdsZSBsYXlvdXQuCisrICAgICAqLworKyAgICBncm91cCA9IHhrYl9z dGF0ZV9zZXJpYWxpemVfbGF5b3V0IChwcml2LT5zdGF0ZV9zeXN0ZW0sCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhLQl9TVEFURV9MQVlPVVRfTE9DS0VEKTsKKysK KysgICAgaWYgKHByaXYtPmlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGUpIHsKKysgICAgICAgIGlmIChu ZXdfbW9kc19kZXByZXNzZWQgIT0gbW9kc19kZXByZXNzZWQpIHsKKysgICAgICAgICAgICBpbnB1 dF9tZXRob2Rfa2V5Ym9hcmRfbW9kaWZpZXJzICh3bGltLCBOVUxMLCAwLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHNfbG9ja2VkLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwKTsKKysgICAgICAg IH0KKysgICAgICAgIGlmIChjbGVhcl92aXJ0dWFsX3N0YXRlKQorKyAgICAgICAgICAgIHByaXYt PmlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGUgPSBGQUxTRTsKKysgICAgfQorKyAgICBpZiAoIXByaXYt PmlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGUgfHwKKysgICAgICAgIChzdGF0ZSAhPSBXTF9LRVlCT0FS RF9LRVlfU1RBVEVfUkVMRUFTRUQpKSB7CisrICAgICAgICB4a2Jfc3RhdGVfdXBkYXRlX2tleSAo cHJpdi0+c3RhdGUsIGNvZGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0YXRl ID09IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9SRUxFQVNFRCkKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA/IFhLQl9LRVlfVVAgOiBYS0JfS0VZX0RPV04pOworKyAgICB9CisrfQorKwor KworIHN0YXRpYyB2b2lkCisgX2NvbnRleHRfY29tbWl0X3RleHRfY2IgKElCdXNJbnB1dENvbnRl eHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIElCdXNUZXh0ICAgICAgICAg KnRleHQsCitAQCAtMTI1NywxMiArMTQ2Miw3IEBAIGlidXNfd2F5bGFuZF9pbV9wb3N0X2tleSAo SUJ1c1dheWxhbmRJTSAqd2xpbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFu ICAgICAgIGZpbHRlcmVkKQorIHsKKyAgICAgSUJ1c1dheWxhbmRJTVByaXZhdGUgKnByaXY7Cist ICAgIHhrYl9tb2RfbWFza190IG1vZHNfZGVwcmVzc2VkID0gMCwgbmV3X21vZHNfZGVwcmVzc2Vk ID0gMDsKKy0gICAgeGtiX21vZF9tYXNrX3QgbW9kc19sb2NrZWQ7CistICAgIHhrYl9sYXlvdXRf aW5kZXhfdCAgZ3JvdXA7CistICAgIHhrYl9rZXlzeW1fdCBzeXN0ZW1fc3ltOworLSAgICB1aW50 MzJfdCBjb2RlID0ga2V5ICsgODsKKy0gICAgdWludDMyX3QgY2g7CisrICAgIHhrYl9tb2RfbWFz a190IG1vZHNfZGVwcmVzc2VkLCBuZXdfbW9kc19kZXByZXNzZWQ7CisgICAgIGdib29sZWFuIGNs ZWFyX3ZpcnR1YWxfc3RhdGUgPSBGQUxTRTsKKyAKKyAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwg KElCVVNfSVNfV0FZTEFORF9JTSAod2xpbSksIEZBTFNFKTsKK0BAIC0xMjg3LDExOSArMTQ4Nywy NyBAQCBpYnVzX3dheWxhbmRfaW1fcG9zdF9rZXkgKElCdXNXYXlsYW5kSU0gKndsaW0sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYS0JfU1RBVEVfREVQ UkVTU0VEIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFhLQl9TVEFURV9MQVRDSEVEKTsKKyAgICAgbmV3X21vZHNfZGVwcmVzc2VkID0gbW9kc19kZXBy ZXNzZWQ7CistICAgIG1vZHNfbG9ja2VkID0geGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzIChwcml2 LT5zdGF0ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhL Ql9TVEFURV9NT0RTX0xPQ0tFRCk7CistICAgIC8qIFhLQiBncm91cCBsYXlvdXQgaXMgY29uZmln dXJlZCBpbiB0aGUgc3lzdGVtIGtleW1hcCBidXQgbm90IHRoZQorLSAgICAgKiB1c2VyIGtleW1h cCB3aGljaCBhbHdheXMgaW5jbHVkZXMgYSBzaW5nbGUgbGF5b3V0LgorLSAgICAgKi8KKy0gICAg Z3JvdXAgPSB4a2Jfc3RhdGVfc2VyaWFsaXplX2xheW91dCAocHJpdi0+c3RhdGVfc3lzdGVtLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYS0JfU1RBVEVfTEFZT1VU X0xPQ0tFRCk7CistICAgIGlmICghZmlsdGVyZWQpIHsKKy0gICAgICAgIHN5c3RlbV9zeW0gPSB4 a2Jfc3RhdGVfa2V5X2dldF9vbmVfc3ltIChwcml2LT5zdGF0ZV9zeXN0ZW0sIGNvZGUpOworLSAg ICAgICAgc3dpdGNoIChzeW0pIHsKKy0gICAgICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVsMl9M YXRjaDoKKy0gICAgICAgICAgICBmaWx0ZXJlZCA9IFRSVUU7CistICAgICAgICAgICAgYnJlYWs7 CistICAgICAgICAvKiBMZXZlbDNfbGF0Y2ggaXMgY2F1c2VkIGJ5IFRMREUga2V5IGluIGx2KHRp bGRlKSBrZXltYXAuCistICAgICAgICAgKiBMZXZlbDNfU2hpZnQgaXMgY2F1c2VkIGJ5IEFsdCBr ZXkgaW4gbHYodGlsZGUpIGtleW1hcC4KKy0gICAgICAgICAqLworLSAgICAgICAgY2FzZSBJQlVT X0tFWV9JU09fTGV2ZWwzX0xhdGNoOgorLSAgICAgICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2ZWwz X1NoaWZ0OgorLSAgICAgICAgICAgIGlmIChzdGF0ZSA9PSBXTF9LRVlCT0FSRF9LRVlfU1RBVEVf UFJFU1NFRCkgeworLSAgICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgfD0gcHJpdi0+ bW9kNV9tYXNrOworLSAgICAgICAgICAgICAgICBpZiAoc3ltICE9IHN5c3RlbV9zeW0pCistICAg ICAgICAgICAgICAgICAgICBwcml2LT5pc192aXJ0dWFsX2xhdGNoX3N0YXRlID0gVFJVRTsKKy0g ICAgICAgICAgICAgICAgZmlsdGVyZWQgPSBUUlVFOworLSAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICBicmVhazsKKy0gICAgICAgIC8qIExldmVsNV9MYXRjaCBpcyBjYXVzZWQgYnkgU2hpZnQr QWx0IGtleSBpbiBkZShUMykga2V5bWFwLgorLSAgICAgICAgICovCistICAgICAgICBjYXNlIElC VVNfS0VZX0lTT19MZXZlbDVfTGF0Y2g6CistICAgICAgICBjYXNlIElCVVNfS0VZX0lTT19MZXZl bDVfU2hpZnQ6CistICAgICAgICAgICAgaWYgKHN0YXRlID09IFdMX0tFWUJPQVJEX0tFWV9TVEFU RV9QUkVTU0VEKSB7CistICAgICAgICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCB8PSBwcml2 LT5tb2QzX21hc2s7CistICAgICAgICAgICAgICAgIGlmIChzeW0gIT0gc3lzdGVtX3N5bSkKKy0g ICAgICAgICAgICAgICAgICAgIHByaXYtPmlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGUgPSBUUlVFOwor LSAgICAgICAgICAgICAgICBmaWx0ZXJlZCA9IFRSVUU7CistICAgICAgICAgICAgfQorLSAgICAg ICAgICAgIGJyZWFrOworLSAgICAgICAgY2FzZSBJQlVTX0tFWV9TaGlmdF9MOgorLSAgICAgICAg Y2FzZSBJQlVTX0tFWV9TaGlmdF9SOgorLSAgICAgICAgICAgIGlmIChzdGF0ZSA9PSBXTF9LRVlC T0FSRF9LRVlfU1RBVEVfUFJFU1NFRCkKKy0gICAgICAgICAgICAgICAgbmV3X21vZHNfZGVwcmVz c2VkIHw9IHByaXYtPnNoaWZ0X21hc2s7CistICAgICAgICAgICAgZWxzZQorLSAgICAgICAgICAg ICAgICBuZXdfbW9kc19kZXByZXNzZWQgJj0gfnByaXYtPnNoaWZ0X21hc2s7CistICAgICAgICAg ICAgYnJlYWs7CistICAgICAgICBkZWZhdWx0OjsKKy0gICAgICAgIH0KKy0jaWZkZWYgSUJVU19M T0dfU0hPV19LRVlTWU0KKy0gICAgICAgIGlmIChwcml2LT52ZXJib3NlKSB7CistICAgICAgICAg ICAgZnByaW50ZiAocHJpdi0+bG9nLCAiJXMga2V5OiV1IHN5bToleCBzeXN0ZW1fc3ltOiV4IG1v ZGlmaWVyczoleCAiCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdGU6JXMg ZmlsdGVyZWQ6JWRcbiIsCistICAgICAgICAgICAgICAgICAgICAgR19TVFJGVU5DLAorLSAgICAg ICAgICAgICAgICAgICAgIGtleSwgc3ltLCBzeXN0ZW1fc3ltLCBtb2RpZmllcnMsCistICAgICAg ICAgICAgICAgICAgICAgc3RhdGUgPyAicHJlc3MiIDogInJlbGVhc2UiLAorLSAgICAgICAgICAg ICAgICAgICAgIGZpbHRlcmVkKTsKKy0gICAgICAgICAgICBmZmx1c2ggKHByaXYtPmxvZyk7Cist ICAgICAgICB9CistI2VuZGlmCistICAgIH0KKy0gICAgaWYgKHN0YXRlICE9IFdMX0tFWUJPQVJE X0tFWV9TVEFURV9SRUxFQVNFRCkgeworLSAgICAgICAgY2ggPSBpYnVzX2tleXZhbF90b191bmlj b2RlIChzeW0pOworLSAgICAgICAgaWYgKGNoID09IDAgfHwgZ191bmljaGFyX2lzY250cmwgKGNo KSkKKy0gICAgICAgICAgICBjaCA9IHhrYl9zdGF0ZV9rZXlfZ2V0X3V0ZjMyIChwcml2LT5zdGF0 ZSwgY29kZSk7CistLyogTm8gdGV4dCB3aXRoIENvbnRyb2wgJiBBbHQgJiBTdXBlciBrZXlzICov CistI2lmbmRlZiBHREtfV0lORE9XSU5HX1FVQVJUWgorLSMgIGRlZmluZSBfSUJVU19OT19URVhU X0lOUFVUX01PRF9NQVNLIChcCistICAgIElCVVNfQ09OVFJPTF9NQVNLIHwgSUJVU19NT0QxX01B U0sgfCBJQlVTX01PRDRfTUFTSykKKy0jZWxzZQorLSMgIGRlZmluZSBfSUJVU19OT19URVhUX0lO UFVUX01PRF9NQVNLIChcCistICAgIElCVVNfQ09OVFJPTF9NQVNLIHwgSUJVU19NT0QyX01BU0sg fCBJQlVTX01PRDRfTUFTSykKKy0jZW5kaWYKKy0gICAgICAgIGlmICgoIWZpbHRlcmVkICYmICEo bW9kaWZpZXJzICYgX0lCVVNfTk9fVEVYVF9JTlBVVF9NT0RfTUFTSykgJiYKKy0gICAgICAgICAg ICAgIWdfdW5pY2hhcl9pc2NudHJsIChjaCkpIHx8IGZpbHRlcmVkKSB7CistICAgICAgICAgICAg aWYgKCFmaWx0ZXJlZCkgeworLSAgICAgICAgICAgICAgICBnY2hhciBidWZmWzhdID0geyAwLCB9 OworLSAgICAgICAgICAgICAgICBidWZmW2dfdW5pY2hhcl90b191dGY4IChjaCwgYnVmZildID0g J1wwJzsKKy0gICAgICAgICAgICAgICAgaWJ1c193YXlsYW5kX2ltX2NvbW1pdF90ZXh0ICh3bGlt LCBidWZmKTsKKy0gICAgICAgICAgICAgICAgZmlsdGVyZWQgPSBUUlVFOworLSAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAvKiBJZiBgZmlsdGVyZWRgIGlzICVUUlVFLCB0aGUga2V5c3ltIGNh biBiZSBlYXRlbiBmb3IgdGhlIGNvbXBvc2UKKy0gICAgICAgICAgICAgKiBwcmVlZGl0IGJ5IElC dXMgWEtCIGVuZ2luZS4gRS5nLiBBbHRHci1TaGlmdC1WIGtleSBwcm9kdWNlcworLSAgICAgICAg ICAgICAqIGBMZXZlbDNfU2hpZnQnIGFuZCBgR3JlZWtfT01FR0FgIGtleXN5bSB3aXRoICJ1cyhz eW1ib2xpYykiCistICAgICAgICAgICAgICoga2V5bWFwLiBIb3dldmVyIGlmIHlvdSBjb25maWdy ZSBtdWx0aXBsZSBrZXltYXBzLCBBbHRHci1TaGlmdAorLSAgICAgICAgICAgICAqIG1heSBwcm9k dWNlIHRoZSBrZXltYXAgc3dpdGNoIGFsdGhvdWdoIEFsdEdyLVNoaWZ0LVYgcHJvZHVjZXMKKy0g ICAgICAgICAgICAgKiBgR3JlZWtfT01FR0FgLgorLSAgICAgICAgICAgICAqIEknbSBub3QgY2xh cmlmaWVkIHdpdGggImxldmVsMyhyYWx0X3N3aXRjaCkiIGluIHVzIFhLQiBrZXltYXBzLgorLSAg ICAgICAgICAgICAqLworLSAgICAgICAgICAgIGlmIChtb2RpZmllcnMgJiBJQlVTX01PRDNfTUFT SykgeworLSAgICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgJj0gfnByaXYtPm1vZDNf bWFzazsKKy0gICAgICAgICAgICAgICAgY2xlYXJfdmlydHVhbF9zdGF0ZSA9IFRSVUU7CistICAg ICAgICAgICAgfQorLSAgICAgICAgICAgIGlmIChtb2RpZmllcnMgJiBJQlVTX01PRDVfTUFTSykg eworLSAgICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgJj0gfnByaXYtPm1vZDVfbWFz azsKKy0gICAgICAgICAgICAgICAgY2xlYXJfdmlydHVhbF9zdGF0ZSA9IFRSVUU7CistICAgICAg ICAgICAgfQorLSAgICAgICAgfQorLSN1bmRlZiBfSUJVU19OT19URVhUX0lOUFVUX01PRF9NQVNL CistICAgIH0KKy0gICAgaWYgKHByaXYtPmlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGUpIHsKKy0gICAg ICAgIGlmIChuZXdfbW9kc19kZXByZXNzZWQgIT0gbW9kc19kZXByZXNzZWQpIHsKKy0gICAgICAg ICAgICBpbnB1dF9tZXRob2Rfa2V5Ym9hcmRfbW9kaWZpZXJzICh3bGltLCBOVUxMLCAwLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19tb2RzX2RlcHJl c3NlZCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHNfbG9ja2Vk LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwKTsK Ky0gICAgICAgIH0KKy0gICAgICAgIGlmIChjbGVhcl92aXJ0dWFsX3N0YXRlKQorLSAgICAgICAg ICAgIHByaXYtPmlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGUgPSBGQUxTRTsKKy0gICAgfQorLSAgICBp ZiAoIXByaXYtPmlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGUgfHwKKy0gICAgICAgIChzdGF0ZSAhPSBX TF9LRVlCT0FSRF9LRVlfU1RBVEVfUkVMRUFTRUQpKSB7CistICAgICAgICB4a2Jfc3RhdGVfdXBk YXRlX2tleSAocHJpdi0+c3RhdGUsIGNvZGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHN0YXRlID09IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9SRUxFQVNFRCkKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA/IFhLQl9LRVlfVVAgOiBYS0JfS0VZX0RPV04pOworLSAgICB9 CisrICAgIGZpbHRlcmVkID0gaWJ1c193YXlsYW5kX2ltX3VwZGF0ZV92aXJ0dWFsX2RlcHJlc3Nl ZCAod2xpbSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBrZXksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbW9kaWZpZXJzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmbmV3X21vZHNfZGVwcmVzc2VkKTsKKysgICAgZmlsdGVyZWQgPSBpYnVzX3dheWxhbmRfaW1f Y29tbWl0X2tleV9ldmVudCAod2xpbSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAga2V5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtb2RpZmllcnMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzeW0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmbmV3X21vZHNfZGVwcmVzc2VkLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2xlYXJfdmlydHVhbF9z dGF0ZSk7CisrICAgIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF94a2Jfc3RhdGUgKHds aW0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHNfZGVwcmVz c2VkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdf bW9kc19kZXByZXNzZWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNsZWFyX3ZpcnR1YWxfc3RhdGUpOworICAgICByZXR1cm4gZmlsdGVyZWQ7CisgfQor IAorLS0gCisyLjUzLjAKKworRnJvbSA1ZWM1YThjNDI4Y2I2NGJlNjQ5MWJlMWQ3NjVhYjZlMTVk ZDdjMTcyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogZnVqaXdhcmF0IDx0YWthby5m dWppd2FyYTFAZ21haWwuY29tPgorRGF0ZTogRnJpLCAyOSBNYXkgMjAyNiAxNzo0Mjo1MSArMDkw MAorU3ViamVjdDogW1BBVENIIDMvOV0gY2xpZW50L3dheWxhbmQ6IFNlcGFyYXRlIHN5c3RlbSB4 a2Jfc3RhdGUgZnJvbSB1c2VyIG9uZQorCitUaGUgbW9kaWZpZXIgbWFza3MgY291bGQgYmUgZGlm ZmVyZW50IGJ5IGtleW1hcHMgd2hlbgoreGtiX21hcF9tb2RfZ2V0X2luZGV4KGtleW1hcCwgLi4u KSBpcyBjYWxsZWQgYW5kIG5vdyB0aGUga2V5bWFwcworYW5kIHN0YXRlcyBhcmUgc2VwYXJhdGVk IGJldHdlZW4gdGhlIHN5c3RlbSBhbmQgdXNlci4KKworQWxzbyB4a2Jfc3RhdGVfcmVmKCkgd291 bGQgbm90IGJlIGdvb2QgYmVjYXVzZSB0aGUgaW50ZXJuYWwga2V5bWFwcworYXJlIG5vdCByZWYt Y291bnRlZCBzbyBub3cgdXNlIHhrYl9zdGF0ZV9uZXcoeGtiX2tleW1hcF9yZWYoa2V5bWFwKSkK K2luc3RlYWQuCisKK0ZpeGVzOiBodHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL3B1bGwvMjg2 OSNkaXNjdXNzaW9uX3IzMDk5OTYzMzg2CistLS0KKyBjbGllbnQvd2F5bGFuZC9pYnVzd2F5bGFu ZGltLmMgfCAyNzcgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNo YW5nZWQsIDE2NiBpbnNlcnRpb25zKCspLCAxMTEgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS9jbGllbnQvd2F5bGFuZC9pYnVzd2F5bGFuZGltLmMgYi9jbGllbnQvd2F5bGFuZC9pYnVzd2F5 bGFuZGltLmMKK2luZGV4IDQyNTU3NGJkLi4yYzAyMjU0OCAxMDA2NDQKKy0tLSBhL2NsaWVudC93 YXlsYW5kL2lidXN3YXlsYW5kaW0uYworKysrIGIvY2xpZW50L3dheWxhbmQvaWJ1c3dheWxhbmRp bS5jCitAQCAtOTgsOSArOTgsMjggQEAgc3RydWN0IF9JQnVzV2F5bGFuZFNlYXQKKyAgICAgZ2Jv b2xlYW4gYWN0aXZlOworICAgICBnYm9vbGVhbiBwZW5kaW5nX2FjdGl2YXRlOworICAgICBnYm9v bGVhbiBwZW5kaW5nX2RlYWN0aXZhdGU7CistICAgIGdib29sZWFuIGhhc19rZXltYXA7CisrICAg IGdib29sZWFuIGhhc19jb21wb3NpdG9yX2tleW1hcDsKKyB9OworIAorK3R5cGVkZWYgc3RydWN0 IF9JQnVzWGtiS2V5bWFwCisreworKyAgICBpbnQzMl90IGZkOworKyAgICBzdHJ1Y3QgeGtiX2tl eW1hcCAqa2V5bWFwOworKyAgICBzdHJ1Y3QgeGtiX3N0YXRlICpzdGF0ZTsKKysKKysgICAgeGti X21vZF9tYXNrX3Qgc2hpZnRfbWFzazsKKysgICAgeGtiX21vZF9tYXNrX3QgbG9ja19tYXNrOwor KyAgICB4a2JfbW9kX21hc2tfdCBjb250cm9sX21hc2s7CisrICAgIHhrYl9tb2RfbWFza190IG1v ZDFfbWFzazsKKysgICAgeGtiX21vZF9tYXNrX3QgbW9kMl9tYXNrOworKyAgICB4a2JfbW9kX21h c2tfdCBtb2QzX21hc2s7CisrICAgIHhrYl9tb2RfbWFza190IG1vZDRfbWFzazsKKysgICAgeGti X21vZF9tYXNrX3QgbW9kNV9tYXNrOworKyAgICB4a2JfbW9kX21hc2tfdCBzdXBlcl9tYXNrOwor KyAgICB4a2JfbW9kX21hc2tfdCBoeXBlcl9tYXNrOworKyAgICB4a2JfbW9kX21hc2tfdCBtZXRh X21hc2s7CisrfSBJQnVzWGtiS2V5bWFwOworKworIHR5cGVkZWYgc3RydWN0IF9JQnVzV2F5bGFu ZElNUHJpdmF0ZSBJQnVzV2F5bGFuZElNUHJpdmF0ZTsKKyBzdHJ1Y3QgX0lCdXNXYXlsYW5kSU1Q cml2YXRlCisgeworQEAgLTE0MCwyMSArMTU5LDggQEAgc3RydWN0IF9JQnVzV2F5bGFuZElNUHJp dmF0ZQorIAorICAgICBzdHJ1Y3QgeGtiX2NvbnRleHQgKnhrYl9jb250ZXh0OworIAorLSAgICBz dHJ1Y3QgeGtiX2tleW1hcCAqa2V5bWFwOworLSAgICBzdHJ1Y3QgeGtiX3N0YXRlICpzdGF0ZTsK Ky0gICAgc3RydWN0IHhrYl9zdGF0ZSAqc3RhdGVfc3lzdGVtOworLQorLSAgICB4a2JfbW9kX21h c2tfdCBzaGlmdF9tYXNrOworLSAgICB4a2JfbW9kX21hc2tfdCBsb2NrX21hc2s7CistICAgIHhr Yl9tb2RfbWFza190IGNvbnRyb2xfbWFzazsKKy0gICAgeGtiX21vZF9tYXNrX3QgbW9kMV9tYXNr OworLSAgICB4a2JfbW9kX21hc2tfdCBtb2QyX21hc2s7CistICAgIHhrYl9tb2RfbWFza190IG1v ZDNfbWFzazsKKy0gICAgeGtiX21vZF9tYXNrX3QgbW9kNF9tYXNrOworLSAgICB4a2JfbW9kX21h c2tfdCBtb2Q1X21hc2s7CistICAgIHhrYl9tb2RfbWFza190IHN1cGVyX21hc2s7CistICAgIHhr Yl9tb2RfbWFza190IGh5cGVyX21hc2s7CistICAgIHhrYl9tb2RfbWFza190IG1ldGFfbWFzazsK KysgICAgSUJ1c1hrYktleW1hcCBrZXlfdXNlcjsKKysgICAgSUJ1c1hrYktleW1hcCBrZXlfc3lz OworIAorICAgICB1aW50MzJfdCBpbV9zZXJpYWw7CisgICAgIGludDMyX3QgcmVwZWF0X3JhdGU7 CitAQCAtMzY1LDYgKzM3MSw3IEBAIGlidXNfd2F5bGFuZF9pbV9jb21taXRfa2V5X2V2ZW50IChJ QnVzV2F5bGFuZElNICAqd2xpbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgICAgICAgIG1vZGlmaWVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDMyX3QgICAgICAgIHN0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB4a2Jfa2V5c3ltX3QgICAgc3ltLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJQnVzWGtiS2V5bWFwICAqYWN0aXZlX2tleSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGZpbHRlcmVkLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB4a2JfbW9kX21hc2tfdCAqbmV3X21vZHNfZGVwcmVzc2VkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAqY2xlYXJf dmlydHVhbF9zdGF0ZSkKK0BAIC0zODEsNyArMzg4LDcgQEAgaWJ1c193YXlsYW5kX2ltX2NvbW1p dF9rZXlfZXZlbnQgKElCdXNXYXlsYW5kSU0gICp3bGltLAorIAorICAgICBjaCA9IGlidXNfa2V5 dmFsX3RvX3VuaWNvZGUgKHN5bSk7CisgICAgIGlmIChjaCA9PSAwIHx8IGdfdW5pY2hhcl9pc2Nu dHJsIChjaCkpCistICAgICAgICBjaCA9IHhrYl9zdGF0ZV9rZXlfZ2V0X3V0ZjMyIChwcml2LT5z dGF0ZSwgY29kZSk7CisrICAgICAgICBjaCA9IHhrYl9zdGF0ZV9rZXlfZ2V0X3V0ZjMyIChhY3Rp dmVfa2V5LT5zdGF0ZSwgY29kZSk7CisgCisgLyogTm8gdGV4dCB3aXRoIENvbnRyb2wgJiBBbHQg JiBTdXBlciBrZXlzICovCisgI2lmbmRlZiBHREtfV0lORE9XSU5HX1FVQVJUWgorQEAgLTQwOCwx MyArNDE1LDEzIEBAIGlidXNfd2F5bGFuZF9pbV9jb21taXRfa2V5X2V2ZW50IChJQnVzV2F5bGFu ZElNICAqd2xpbSwKKyAgICAgICAgICAqLworICAgICAgICAgaWYgKG1vZGlmaWVycyAmIElCVVNf TU9EM19NQVNLKSB7CisgICAgICAgICAgICAgaWYgKG5ld19tb2RzX2RlcHJlc3NlZCkKKy0gICAg ICAgICAgICAgICAgKm5ld19tb2RzX2RlcHJlc3NlZCAmPSB+cHJpdi0+bW9kM19tYXNrOworKyAg ICAgICAgICAgICAgICAqbmV3X21vZHNfZGVwcmVzc2VkICY9IH5hY3RpdmVfa2V5LT5tb2QzX21h c2s7CisgICAgICAgICAgICAgaWYgKGNsZWFyX3ZpcnR1YWxfc3RhdGUpCisgICAgICAgICAgICAg ICAgICpjbGVhcl92aXJ0dWFsX3N0YXRlID0gVFJVRTsKKyAgICAgICAgIH0KKyAgICAgICAgIGlm IChtb2RpZmllcnMgJiBJQlVTX01PRDVfTUFTSykgeworICAgICAgICAgICAgIGlmIChuZXdfbW9k c19kZXByZXNzZWQpCistICAgICAgICAgICAgICAgICpuZXdfbW9kc19kZXByZXNzZWQgJj0gfnBy aXYtPm1vZDVfbWFzazsKKysgICAgICAgICAgICAgICAgKm5ld19tb2RzX2RlcHJlc3NlZCAmPSB+ YWN0aXZlX2tleS0+bW9kNV9tYXNrOworICAgICAgICAgICAgIGlmIChjbGVhcl92aXJ0dWFsX3N0 YXRlKQorICAgICAgICAgICAgICAgICAqY2xlYXJfdmlydHVhbF9zdGF0ZSA9IFRSVUU7CisgICAg ICAgICB9CitAQCAtNDQ1LDExICs0NTIsMTEgQEAgaWJ1c193YXlsYW5kX2ltX2tleSAoSUJ1c1dh eWxhbmRJTSAqd2xpbSwKKyAgICAgY2FzZSBJTlBVVF9NRVRIT0RfVjI6CisgICAgICAgICAvKiB3 bHJvb3RzL3R5cGVzL3dscl92aXJ0dWFsX2tleWJvYXJkX3YxLmM6dmlydHVhbF9rZXlib2FyZF9r ZXkoKQorICAgICAgICAgICogcmV0dXJucyAiQ2Fubm90IHNlbmQgYSBrZXlwcmVzcyBiZWZvcmUg ZGVmaW5pbmcgYSBrZXltYXAiCistICAgICAgICAgKiBpZiBgaGFzX2tleW1hcGAgaXMgJUZBTFNF LgorKyAgICAgICAgICogaWYgYGhhc19jb21wb3NpdG9yX2tleW1hcGAgaXMgJUZBTFNFLgorICAg ICAgICAgICovCisgICAgICAgICBpZiAoIXByaXYtPnNlYXQpCisgICAgICAgICAgICAgYnJlYWs7 CistICAgICAgICBpZiAocHJpdi0+c2VhdC0+aGFzX2tleW1hcCkgeworKyAgICAgICAgaWYgKHBy aXYtPnNlYXQtPmhhc19jb21wb3NpdG9yX2tleW1hcCkgeworICAgICAgICAgICAgIHp3cF92aXJ0 dWFsX2tleWJvYXJkX3YxX2tleSAocHJpdi0+c2VhdC0+dmlydHVhbF9rZXlib2FyZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUsIGtleSwgc3RhdGUpOwor ICAgICAgICAgfQorQEAgLTUwNiw2ICs1MTMsNyBAQCBpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3Zp cnR1YWxfZGVwcmVzc2VkIChJQnVzV2F5bGFuZElNICAqd2xpbSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICAgbW9kaWZpZXJzLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICAgICAgICBz dGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4a2Jfa2V5 c3ltX3QgICAgc3ltLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElCdXNYa2JLZXltYXAgICphY3RpdmVfa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBmaWx0ZXJlZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4a2JfbW9kX21hc2tfdCAqbW9kc19kZXByZXNz ZWQpCisgeworQEAgLTUxOCw2ICs1MjYsNyBAQCBpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1 YWxfZGVwcmVzc2VkIChJQnVzV2F5bGFuZElNICAqd2xpbSwKKyAgICAgICAgIHJldHVybiBmaWx0 ZXJlZDsKKyAKKyAgICAgZ19hc3NlcnQgKElCVVNfSVNfV0FZTEFORF9JTSAod2xpbSkpOworKyAg ICBnX2Fzc2VydCAoYWN0aXZlX2tleSk7CisgICAgIGdfYXNzZXJ0IChtb2RzX2RlcHJlc3NlZCk7 CisgCisgICAgIHByaXYgPSBpYnVzX3dheWxhbmRfaW1fZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHds aW0pOworQEAgLTUyNyw3ICs1MzYsNyBAQCBpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxf ZGVwcmVzc2VkIChJQnVzV2F5bGFuZElNICAqd2xpbSwKKyAgICAgICAgIGdfd2FybmluZyAoIklC dXMgbW9kaWZpZXJzICVYIGlzIGRpZmZlcmVudCBmcm9tIFhLQiBkZXByZXNzZWQgJVgiLAorICAg ICAgICAgICAgICAgICAgICBtb2RpZmllcnMsIG5ld19tb2RzX2RlcHJlc3NlZCk7CisgICAgIH0K Ky0gICAgc3lzdGVtX3N5bSA9IHhrYl9zdGF0ZV9rZXlfZ2V0X29uZV9zeW0gKHByaXYtPnN0YXRl X3N5c3RlbSwgY29kZSk7CisrICAgIHN5c3RlbV9zeW0gPSB4a2Jfc3RhdGVfa2V5X2dldF9vbmVf c3ltIChwcml2LT5rZXlfc3lzLnN0YXRlLCBjb2RlKTsKKyAgICAgc3dpdGNoIChzeW0pIHsKKyAg ICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2ZWwyX0xhdGNoOgorICAgICAgICAgZmlsdGVyZWQgPSBU UlVFOworQEAgLTUzOCw3ICs1NDcsNyBAQCBpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxf ZGVwcmVzc2VkIChJQnVzV2F5bGFuZElNICAqd2xpbSwKKyAgICAgY2FzZSBJQlVTX0tFWV9JU09f TGV2ZWwzX0xhdGNoOgorICAgICBjYXNlIElCVVNfS0VZX0lTT19MZXZlbDNfU2hpZnQ6CisgICAg ICAgICBpZiAoc3RhdGUgPT0gV0xfS0VZQk9BUkRfS0VZX1NUQVRFX1BSRVNTRUQpIHsKKy0gICAg ICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgfD0gcHJpdi0+bW9kNV9tYXNrOworKyAgICAgICAg ICAgIG5ld19tb2RzX2RlcHJlc3NlZCB8PSBhY3RpdmVfa2V5LT5tb2Q1X21hc2s7CisgICAgICAg ICAgICAgaWYgKHN5bSAhPSBzeXN0ZW1fc3ltKQorICAgICAgICAgICAgICAgICBwcml2LT5pc192 aXJ0dWFsX2xhdGNoX3N0YXRlID0gVFJVRTsKKyAgICAgICAgICAgICBmaWx0ZXJlZCA9IFRSVUU7 CitAQCAtNTQ5LDcgKzU1OCw3IEBAIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF9kZXBy ZXNzZWQgKElCdXNXYXlsYW5kSU0gICp3bGltLAorICAgICBjYXNlIElCVVNfS0VZX0lTT19MZXZl bDVfTGF0Y2g6CisgICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVsNV9TaGlmdDoKKyAgICAgICAg IGlmIChzdGF0ZSA9PSBXTF9LRVlCT0FSRF9LRVlfU1RBVEVfUFJFU1NFRCkgeworLSAgICAgICAg ICAgIG5ld19tb2RzX2RlcHJlc3NlZCB8PSBwcml2LT5tb2QzX21hc2s7CisrICAgICAgICAgICAg bmV3X21vZHNfZGVwcmVzc2VkIHw9IGFjdGl2ZV9rZXktPm1vZDNfbWFzazsKKyAgICAgICAgICAg ICBpZiAoc3ltICE9IHN5c3RlbV9zeW0pCisgICAgICAgICAgICAgICAgIHByaXYtPmlzX3ZpcnR1 YWxfbGF0Y2hfc3RhdGUgPSBUUlVFOworICAgICAgICAgICAgIGZpbHRlcmVkID0gVFJVRTsKK0BA IC01NTgsOSArNTY3LDkgQEAgaWJ1c193YXlsYW5kX2ltX3VwZGF0ZV92aXJ0dWFsX2RlcHJlc3Nl ZCAoSUJ1c1dheWxhbmRJTSAgKndsaW0sCisgICAgIGNhc2UgSUJVU19LRVlfU2hpZnRfTDoKKyAg ICAgY2FzZSBJQlVTX0tFWV9TaGlmdF9SOgorICAgICAgICAgaWYgKHN0YXRlID09IFdMX0tFWUJP QVJEX0tFWV9TVEFURV9QUkVTU0VEKQorLSAgICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCB8 PSBwcml2LT5zaGlmdF9tYXNrOworKyAgICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCB8PSBh Y3RpdmVfa2V5LT5zaGlmdF9tYXNrOworICAgICAgICAgZWxzZQorLSAgICAgICAgICAgIG5ld19t b2RzX2RlcHJlc3NlZCAmPSB+cHJpdi0+c2hpZnRfbWFzazsKKysgICAgICAgICAgICBuZXdfbW9k c19kZXByZXNzZWQgJj0gfmFjdGl2ZV9rZXktPnNoaWZ0X21hc2s7CisgICAgICAgICBicmVhazsK KyAgICAgZGVmYXVsdDo7CisgICAgIH0KK0BAIC01ODgsNiArNTk3LDcgQEAgc3RhdGljIHZvaWQK KyBpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxfeGtiX3N0YXRlIChJQnVzV2F5bGFuZElN ICp3bGltLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQz Ml90ICAgICAgIGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1aW50MzJfdCAgICAgICBzdGF0ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJQnVzWGtiS2V5bWFwICphY3RpdmVfa2V5LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHhrYl9tb2RfbWFza190IG1vZHNfZGVwcmVzc2VkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhrYl9tb2RfbWFza190 IG5ld19tb2RzX2RlcHJlc3NlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBnYm9vbGVhbiAgICAgICBjbGVhcl92aXJ0dWFsX3N0YXRlKQorQEAgLTYwMCwxMiAr NjEwLDEyIEBAIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF94a2Jfc3RhdGUgKElCdXNX YXlsYW5kSU0gKndsaW0sCisgICAgIGdfYXNzZXJ0IChJQlVTX0lTX1dBWUxBTkRfSU0gKHdsaW0p KTsKKyAKKyAgICAgcHJpdiA9IGlidXNfd2F5bGFuZF9pbV9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAo d2xpbSk7CistICAgIG1vZHNfbG9ja2VkID0geGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzIChwcml2 LT5zdGF0ZSwKKysgICAgbW9kc19sb2NrZWQgPSB4a2Jfc3RhdGVfc2VyaWFsaXplX21vZHMgKGFj dGl2ZV9rZXktPnN0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgWEtCX1NUQVRFX01PRFNfTE9DS0VEKTsKKyAgICAgLyogWEtCIGdyb3VwIGxheW91dCBp cyBjb25maWd1cmVkIGluIHRoZSBzeXN0ZW0ga2V5bWFwIGJ1dCBub3QgdGhlCisgICAgICAqIHVz ZXIga2V5bWFwIHdoaWNoIGFsd2F5cyBpbmNsdWRlcyBhIHNpbmdsZSBsYXlvdXQuCisgICAgICAq LworLSAgICBncm91cCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbGF5b3V0IChwcml2LT5zdGF0ZV9z eXN0ZW0sCisrICAgIGdyb3VwID0geGtiX3N0YXRlX3NlcmlhbGl6ZV9sYXlvdXQgKHByaXYtPmtl eV9zeXMuc3RhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhL Ql9TVEFURV9MQVlPVVRfTE9DS0VEKTsKKyAKKyAgICAgaWYgKHByaXYtPmlzX3ZpcnR1YWxfbGF0 Y2hfc3RhdGUpIHsKK0BAIC02MjEsNyArNjMxLDcgQEAgaWJ1c193YXlsYW5kX2ltX3VwZGF0ZV92 aXJ0dWFsX3hrYl9zdGF0ZSAoSUJ1c1dheWxhbmRJTSAqd2xpbSwKKyAgICAgfQorICAgICBpZiAo IXByaXYtPmlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGUgfHwKKyAgICAgICAgIChzdGF0ZSAhPSBXTF9L RVlCT0FSRF9LRVlfU1RBVEVfUkVMRUFTRUQpKSB7CistICAgICAgICB4a2Jfc3RhdGVfdXBkYXRl X2tleSAocHJpdi0+c3RhdGUsIGNvZGUsCisrICAgICAgICB4a2Jfc3RhdGVfdXBkYXRlX2tleSAo YWN0aXZlX2tleS0+c3RhdGUsIGNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHN0YXRlID09IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9SRUxFQVNFRCkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA/IFhLQl9LRVlfVVAgOiBYS0JfS0VZX0RPV04pOworICAgICB9CitA QCAtMTI3Niw0NyArMTI4Niw1MyBAQCBjcmVhdGVfc3lzdGVtX3hrYl9rZXltYXAgKHN0cnVjdCB4 a2JfY29udGV4dCAqeGtiX2NvbnRleHQsCisgCisgCisgc3RhdGljIGdib29sZWFuCistaWJ1c193 YXlsYW5kX2ltX3VwZGF0ZV94a2Jfc3RhdGUgKElCdXNXYXlsYW5kSU0gICAgICp3bGltLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGtiX2tleW1hcCAqa2V5bWFw KQorK2lidXNfeGtiX2tleW1hcF91cGRhdGVfd2l0aF9rZXltYXAgKElCdXNYa2JLZXltYXAgICAg ICppYnVzX2tleW1hcCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgeGtiX2tleW1hcCAqa2V5bWFwLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludDMyX3QgICAgICAgICAgICBmZCkKKyB7CistICAgIElCdXNXYXlsYW5kSU1Qcml2YXRl ICpwcml2OworICAgICBzdHJ1Y3QgeGtiX3N0YXRlICpzdGF0ZTsKKyAKKy0gICAgZ19yZXR1cm5f dmFsX2lmX2ZhaWwgKElCVVNfSVNfV0FZTEFORF9JTSAod2xpbSksIEZBTFNFKTsKKy0gICAgcHJp diA9IGlidXNfd2F5bGFuZF9pbV9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAod2xpbSk7CisrICAgIGdf cmV0dXJuX3ZhbF9pZl9mYWlsIChpYnVzX2tleW1hcCwgRkFMU0UpOworICAgICBnX3JldHVybl92 YWxfaWZfZmFpbCAoa2V5bWFwLCBGQUxTRSk7CisgICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsICgo c3RhdGUgPSB4a2Jfc3RhdGVfbmV3IChrZXltYXApKSwgRkFMU0UpOworIAorLSAgICBwcml2LT5z aGlmdF9tYXNrID0KKysgICAgaWYgKGlidXNfa2V5bWFwLT5zdGF0ZSkKKysgICAgICAgIHhrYl9z dGF0ZV91bnJlZiAoaWJ1c19rZXltYXAtPnN0YXRlKTsKKysgICAgaWYgKGlidXNfa2V5bWFwLT5r ZXltYXApIHsKKysgICAgICAgIHhrYl9rZXltYXBfdW5yZWYgKGlidXNfa2V5bWFwLT5rZXltYXAp OworKyAgICAgICAgaWYgKGlidXNfa2V5bWFwLT5mZCkgeworKyAgICAgICAgICAgIGNsb3NlIChp YnVzX2tleW1hcC0+ZmQpOworKyAgICAgICAgICAgIGlidXNfa2V5bWFwLT5mZCA9IDA7CisrICAg ICAgICB9CisrICAgIH0KKysgICAgaWJ1c19rZXltYXAtPmtleW1hcCA9IGtleW1hcDsKKysgICAg aWJ1c19rZXltYXAtPnN0YXRlID0gc3RhdGU7CisrICAgIGlmIChmZCA+IDApCisrICAgICAgICBp YnVzX2tleW1hcC0+ZmQgPSBmZDsKKysKKysgICAgaWJ1c19rZXltYXAtPnNoaWZ0X21hc2sgPQor ICAgICAgICAgMSA8PCB4a2JfbWFwX21vZF9nZXRfaW5kZXggKGtleW1hcCwgIlNoaWZ0Iik7Cist ICAgIHByaXYtPmxvY2tfbWFzayA9CisrICAgIGlidXNfa2V5bWFwLT5sb2NrX21hc2sgPQorICAg ICAgICAgMSA8PCB4a2JfbWFwX21vZF9nZXRfaW5kZXggKGtleW1hcCwgIkxvY2siKTsKKy0gICAg cHJpdi0+Y29udHJvbF9tYXNrID0KKysgICAgaWJ1c19rZXltYXAtPmNvbnRyb2xfbWFzayA9Cisg ICAgICAgICAxIDw8IHhrYl9tYXBfbW9kX2dldF9pbmRleCAoa2V5bWFwLCAiQ29udHJvbCIpOwor LSAgICBwcml2LT5tb2QxX21hc2sgPQorKyAgICBpYnVzX2tleW1hcC0+bW9kMV9tYXNrID0KKyAg ICAgICAgIDEgPDwgeGtiX21hcF9tb2RfZ2V0X2luZGV4IChrZXltYXAsICJNb2QxIik7CistICAg IHByaXYtPm1vZDJfbWFzayA9CisrICAgIGlidXNfa2V5bWFwLT5tb2QyX21hc2sgPQorICAgICAg ICAgMSA8PCB4a2JfbWFwX21vZF9nZXRfaW5kZXggKGtleW1hcCwgIk1vZDIiKTsKKy0gICAgcHJp di0+bW9kM19tYXNrID0KKysgICAgaWJ1c19rZXltYXAtPm1vZDNfbWFzayA9CisgICAgICAgICAx IDw8IHhrYl9tYXBfbW9kX2dldF9pbmRleCAoa2V5bWFwLCAiTW9kMyIpOworLSAgICBwcml2LT5t b2Q0X21hc2sgPQorKyAgICBpYnVzX2tleW1hcC0+bW9kNF9tYXNrID0KKyAgICAgICAgIDEgPDwg eGtiX21hcF9tb2RfZ2V0X2luZGV4IChrZXltYXAsICJNb2Q0Iik7CistICAgIHByaXYtPm1vZDVf bWFzayA9CisrICAgIGlidXNfa2V5bWFwLT5tb2Q1X21hc2sgPQorICAgICAgICAgMSA8PCB4a2Jf bWFwX21vZF9nZXRfaW5kZXggKGtleW1hcCwgIk1vZDUiKTsKKy0gICAgcHJpdi0+c3VwZXJfbWFz ayA9CisrICAgIGlidXNfa2V5bWFwLT5zdXBlcl9tYXNrID0KKyAgICAgICAgIDEgPDwgeGtiX21h cF9tb2RfZ2V0X2luZGV4IChrZXltYXAsICJTdXBlciIpOworLSAgICBwcml2LT5oeXBlcl9tYXNr ID0KKysgICAgaWJ1c19rZXltYXAtPmh5cGVyX21hc2sgPQorICAgICAgICAgMSA8PCB4a2JfbWFw X21vZF9nZXRfaW5kZXggKGtleW1hcCwgIkh5cGVyIik7CistICAgIHByaXYtPm1ldGFfbWFzayA9 CisrICAgIGlidXNfa2V5bWFwLT5tZXRhX21hc2sgPQorICAgICAgICAgMSA8PCB4a2JfbWFwX21v ZF9nZXRfaW5kZXggKGtleW1hcCwgIk1ldGEiKTsKKyAKKy0gICAgaWYgKHByaXYtPnN0YXRlKQor LSAgICAgICAgeGtiX3N0YXRlX3VucmVmIChwcml2LT5zdGF0ZSk7CistICAgIGlmIChwcml2LT5r ZXltYXApCistICAgICAgICB4a2Jfa2V5bWFwX3VucmVmIChwcml2LT5rZXltYXApOworLSAgICBw cml2LT5rZXltYXAgPSBrZXltYXA7CistICAgIHByaXYtPnN0YXRlID0gc3RhdGU7CistCisgICAg IHJldHVybiBUUlVFOworIH0KKyAKK0BAIC0xMzM3LDEzICsxMzUzLDE2IEBAIF9idXNfZ2xvYmFs X2VuZ2luZV9jaGFuZ2VkX2NiIChJQnVzQnVzICAgICAgICpidXMsCisgICAgIGdfYXNzZXJ0IChk ZXNjKTsKKyAgICAgZ19hc3NlcnQgKCFnX3N0cmNtcDAgKGlidXNfZW5naW5lX2Rlc2NfZ2V0X25h bWUgKGRlc2MpLCBlbmdpbmVfbmFtZSkpOworICAgICBrZXltYXAgPSBjcmVhdGVfdXNlcl94a2Jf a2V5bWFwIChwcml2LT54a2JfY29udGV4dCwgZGVzYyk7CistICAgIGlmIChrZXltYXAgJiYgIWli dXNfd2F5bGFuZF9pbV91cGRhdGVfeGtiX3N0YXRlICh3bGltLCBrZXltYXApKQorKyAgICBpZiAo a2V5bWFwICYmICFpYnVzX3hrYl9rZXltYXBfdXBkYXRlX3dpdGhfa2V5bWFwICgmcHJpdi0+a2V5 X3VzZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGtleW1hcCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMCkpIHsKKyAgICAgICAgIGdfY2xlYXJfcG9pbnRlciAoJmtleW1hcCwg eGtiX2tleW1hcF91bnJlZik7CisrICAgIH0KKyAgICAgaWYgKHByaXYtPnZlcmJvc2UpIHsKKyAg ICAgICAgIGZwcmludGYgKHByaXYtPmxvZywgIk5ldyBlbmdpbmU6JXMga2V5bWFwOiVzIHN0YXRl OiVzXG4iLAorICAgICAgICAgICAgICAgICAgaWJ1c19lbmdpbmVfZGVzY19nZXRfbmFtZSAoZGVz YyksCisgICAgICAgICAgICAgICAgICBrZXltYXAgPyAiVFJVRSIgOiAiRkFMU0UiLAorLSAgICAg ICAgICAgICAgICAgcHJpdi0+c3RhdGUgPyAiVFJVRSIgOiAiRkFMU0UiKTsKKysgICAgICAgICAg ICAgICAgIHByaXYtPmtleV91c2VyLnN0YXRlID8gIlRSVUUiIDogIkZBTFNFIik7CisgICAgICAg ICBmZmx1c2ggKHByaXYtPmxvZyk7CisgICAgIH0KKyAgICAgZ19vYmplY3RfdW5yZWYgKGRlc2Mp OworQEAgLTEzNjAsOCArMTM3OSw2IEBAIGlucHV0X21ldGhvZF9rZXlib2FyZF9rZXltYXAgKHZv aWQgICAgICAgICAgICAgICAgICAgICAgKmRhdGEsCisgICAgIElCdXNXYXlsYW5kSU0gKndsaW0g PSBkYXRhOworICAgICBJQnVzV2F5bGFuZElNUHJpdmF0ZSAqcHJpdjsKKyAgICAgc3RydWN0IHhr Yl9rZXltYXAgKmtleW1hcDsKKy0gICAgc3RydWN0IHhrYl9zdGF0ZSAqcHJldl9zdGF0ZSA9IE5V TEw7CistICAgIGdib29sZWFuIGhhc19uZXdfc3RhdGUgPSBGQUxTRTsKKyAKKyAgICAgaWYgKCFJ QlVTX0lTX1dBWUxBTkRfSU0gKHdsaW0pKSB7CisgICAgICAgICBjbG9zZSAoZmQpOworQEAgLTEz NzcsNDIgKzEzOTQsMzggQEAgaW5wdXRfbWV0aG9kX2tleWJvYXJkX2tleW1hcCAodm9pZCAgICAg ICAgICAgICAgICAgICAgICAqZGF0YSwKKyAgICAgICAgIHp3cF92aXJ0dWFsX2tleWJvYXJkX3Yx X2tleW1hcCAocHJpdi0+c2VhdC0+dmlydHVhbF9rZXlib2FyZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LCBmZCwgc2l6ZSk7CisgICAgICAgICAvKiB3 bHJvb3RzL3R5cGVzL3dscl92aXJ0dWFsX2tleWJvYXJkX3YxLmM6dmlydHVhbF9rZXlib2FyZF9r ZXltYXAoKQorLSAgICAgICAgICogc2V0cyAlVFJVRSB0byBgaGFzX2tleW1hcGAuCisrICAgICAg ICAgKiBzZXRzICVUUlVFIHRvIGBoYXNfY29tcG9zaXRvcl9rZXltYXBgLgorICAgICAgICAgICov CistICAgICAgICBwcml2LT5zZWF0LT5oYXNfa2V5bWFwID0gVFJVRTsKKysgICAgICAgIHByaXYt PnNlYXQtPmhhc19jb21wb3NpdG9yX2tleW1hcCA9IFRSVUU7CisgICAgIH0KKy0gICAgaWYgKHBy aXYtPmtleW1hcCAmJiBwcml2LT5zdGF0ZSAmJiBwcml2LT5zdGF0ZV9zeXN0ZW0pIHsKKysgICAg aWYgKHByaXYtPmtleV91c2VyLmtleW1hcCAmJiBwcml2LT5rZXlfdXNlci5zdGF0ZSAmJiBwcml2 LT5rZXlfc3lzLnN0YXRlKSB7CisgICAgICAgICBjbG9zZSAoZmQpOworICAgICAgICAgcmV0dXJu OworICAgICB9CisgICAgIGtleW1hcCA9IGNyZWF0ZV9zeXN0ZW1feGtiX2tleW1hcCAocHJpdi0+ eGtiX2NvbnRleHQsIGZvcm1hdCwgZmQsIHNpemUpOworLSAgICBpZiAocHJpdi0+c3RhdGUpCist ICAgICAgICBwcmV2X3N0YXRlID0geGtiX3N0YXRlX3JlZiAocHJpdi0+c3RhdGUpOworLSAgICBp ZiAoa2V5bWFwKQorLSAgICAgICAgaGFzX25ld19zdGF0ZSA9IGlidXNfd2F5bGFuZF9pbV91cGRh dGVfeGtiX3N0YXRlICh3bGltLCBrZXltYXApOworLSAgICBpZiAocHJpdi0+c3RhdGUpIHsKKy0g ICAgICAgIGlmIChoYXNfbmV3X3N0YXRlKSB7CistICAgICAgICAgICAgcHJpdi0+c3RhdGVfc3lz dGVtID0geGtiX3N0YXRlX3JlZiAocHJpdi0+c3RhdGUpOworLSAgICAgICAgICAgIC8qIHByZXYt PnN0YXRlIGlzIHVzZXIgcHJldi0+c3RhdGVfc3lzdGVtIGlzIHN5c3RlbSAqLworLSAgICAgICAg ICAgIGlmIChwcmV2X3N0YXRlKSB7CistICAgICAgICAgICAgICAgIHhrYl9zdGF0ZV91bnJlZiAo cHJpdi0+c3RhdGUpOworLSAgICAgICAgICAgICAgICBwcml2LT5zdGF0ZSA9IHByZXZfc3RhdGU7 CistICAgICAgICAgICAgfQorLSAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICBpZiAocHJl dl9zdGF0ZSkKKy0gICAgICAgICAgICAgICAgeGtiX3N0YXRlX3VucmVmIChwcmV2X3N0YXRlKTsK Ky0gICAgICAgICAgICBpZiAoa2V5bWFwKQorLSAgICAgICAgICAgICAgICBnX2NsZWFyX3BvaW50 ZXIgKCZrZXltYXAsIHhrYl9rZXltYXBfdW5yZWYpOworLSAgICAgICAgfQorLSAgICB9IGVsc2Ug aWYgKGtleW1hcCkgeworKyAgICBpZiAoa2V5bWFwICYmCisrICAgICAgICAhaWJ1c194a2Jfa2V5 bWFwX3VwZGF0ZV93aXRoX2tleW1hcCAoJnByaXYtPmtleV9zeXMsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGtiX2tleW1hcF9yZWYgKGtleW1hcCksCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQpKSB7CisrICAg ICAgICB4a2Jfa2V5bWFwX3VucmVmIChrZXltYXApOworKyAgICAgICAgZ19jbGVhcl9wb2ludGVy ICgma2V5bWFwLCB4a2Jfa2V5bWFwX3VucmVmKTsKKysgICAgICAgIGNsb3NlIChmZCk7CisrICAg IH0KKysgICAgaWYgKGtleW1hcCAmJiAhcHJpdi0+a2V5X3VzZXIuc3RhdGUgJiYKKysgICAgICAg ICFpYnVzX3hrYl9rZXltYXBfdXBkYXRlX3dpdGhfa2V5bWFwICgmcHJpdi0+a2V5X3VzZXIsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGtiX2tleW1hcF9y ZWYgKGtleW1hcCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMCkpIHsKKysgICAgICAgIHhrYl9rZXltYXBfdW5yZWYgKGtleW1hcCk7CisgICAgICAgICBn X2NsZWFyX3BvaW50ZXIgKCZrZXltYXAsIHhrYl9rZXltYXBfdW5yZWYpOworICAgICB9CisrICAg IGlmIChrZXltYXApCisrICAgICAgICB4a2Jfa2V5bWFwX3VucmVmIChrZXltYXApOworICAgICBp ZiAocHJpdi0+dmVyYm9zZSkgeworICAgICAgICAgZnByaW50ZiAocHJpdi0+bG9nLCAiU3lzdGVt IGtleW1hcCBmb3JtYXQ6JXUgZmQ6JWQgc2l6ZToldSAiCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJrZXltYXA6JXMgc3RhdGU6JXNcbiIsCisgICAgICAgICAgICAgICAgICBmb3JtYXQs IGZkLCBzaXplLAorICAgICAgICAgICAgICAgICAga2V5bWFwID8gIlRSVUUiIDogIkZBTFNFIiwK Ky0gICAgICAgICAgICAgICAgIHByaXYtPnN0YXRlID8gIlRSVUUiIDogIkZBTFNFIik7CisrICAg ICAgICAgICAgICAgICBwcml2LT5rZXlfc3lzLnN0YXRlID8gIlRSVUUiIDogIkZBTFNFIik7Cisg ICAgICAgICBmZmx1c2ggKHByaXYtPmxvZyk7CisgICAgIH0KKyB9CitAQCAtMTQ2Miw2ICsxNDc1 LDcgQEAgaWJ1c193YXlsYW5kX2ltX3Bvc3Rfa2V5IChJQnVzV2F5bGFuZElNICp3bGltLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgZmlsdGVyZWQpCisgeworICAg ICBJQnVzV2F5bGFuZElNUHJpdmF0ZSAqcHJpdjsKKysgICAgSUJ1c1hrYktleW1hcCAqYWN0aXZl X2tleTsKKyAgICAgeGtiX21vZF9tYXNrX3QgbW9kc19kZXByZXNzZWQsIG5ld19tb2RzX2RlcHJl c3NlZDsKKyAgICAgZ2Jvb2xlYW4gY2xlYXJfdmlydHVhbF9zdGF0ZSA9IEZBTFNFOworIAorQEAg LTE0ODEsOSArMTQ5NSwxMyBAQCBpYnVzX3dheWxhbmRfaW1fcG9zdF9rZXkgKElCdXNXYXlsYW5k SU0gKndsaW0sCisgICAgIGRlZmF1bHQ6CisgICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCAo KTsKKyAgICAgfQorLSAgICBpZiAoIXByaXYtPnN0YXRlKQorLSAgICAgICAgcmV0dXJuIEZBTFNF OworLSAgICBtb2RzX2RlcHJlc3NlZCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbW9kcyAocHJpdi0+ c3RhdGUsCisrICAgIGlmIChwcml2LT51c2Vfc3lzX2tleW1hcCkKKysgICAgICAgIGFjdGl2ZV9r ZXkgPSAmcHJpdi0+a2V5X3N5czsKKysgICAgZWxzZQorKyAgICAgICAgYWN0aXZlX2tleSA9ICZw cml2LT5rZXlfdXNlcjsKKysgICAgaWYgKCFhY3RpdmVfa2V5LT5zdGF0ZSkKKysgICAgICAgICAg ICByZXR1cm4gRkFMU0U7CisrICAgIG1vZHNfZGVwcmVzc2VkID0geGtiX3N0YXRlX3NlcmlhbGl6 ZV9tb2RzIChhY3RpdmVfa2V5LT5zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFhLQl9TVEFURV9ERVBSRVNTRUQgfAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX0xBVENIRUQpOworICAg ICBuZXdfbW9kc19kZXByZXNzZWQgPSBtb2RzX2RlcHJlc3NlZDsKK0BAIC0xNDkyLDYgKzE1MTAs NyBAQCBpYnVzX3dheWxhbmRfaW1fcG9zdF9rZXkgKElCdXNXYXlsYW5kSU0gKndsaW0sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9k aWZpZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN5bSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVfa2V5LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuZXdf bW9kc19kZXByZXNzZWQpOworICAgICBmaWx0ZXJlZCA9IGlidXNfd2F5bGFuZF9pbV9jb21taXRf a2V5X2V2ZW50ICh3bGltLAorQEAgLTE0OTksMTIgKzE1MTgsMTQgQEAgaWJ1c193YXlsYW5kX2lt X3Bvc3Rfa2V5IChJQnVzV2F5bGFuZElNICp3bGltLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllcnMsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW0sCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZV9rZXksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmV3X21vZHNfZGVwcmVz c2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm Y2xlYXJfdmlydHVhbF9zdGF0ZSk7CisgICAgIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVh bF94a2Jfc3RhdGUgKHdsaW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RhdGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFjdGl2ZV9rZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1vZHNfZGVwcmVzc2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyX3ZpcnR1YWxfc3RhdGUpOworQEAgLTE5Mjgs OCArMTk0OSwxMCBAQCBpbnB1dF9tZXRob2Rfa2V5Ym9hcmRfa2V5ICh2b2lkICAgICAgICAgICAg ICAgICAgICAgICpkYXRhLAorIAorICAgICBnX3JldHVybl9pZl9mYWlsIChJQlVTX0lTX1dBWUxB TkRfSU0gKHdsaW0pKTsKKyAgICAgcHJpdiA9IGlidXNfd2F5bGFuZF9pbV9nZXRfaW5zdGFuY2Vf cHJpdmF0ZSAod2xpbSk7CistICAgIGlmICghcHJpdi0+c3RhdGUpCisrICAgIGlmICghcHJpdi0+ a2V5X3VzZXIuc3RhdGUpIHsKKysgICAgICAgIGlidXNfd2F5bGFuZF9pbV9rZXkgKHdsaW0sIGtl eV9zZXJpYWwsIHRpbWUsIGtleSwgc3RhdGUpOworICAgICAgICAgcmV0dXJuOworKyAgICB9Cisg CisgICAgIGlmICghcHJpdi0+aWJ1c2NvbnRleHQpIHsKKyAgICAgICAgIGdib29sZWFuIHJldHZh bCA9IGlidXNfd2F5bGFuZF9pbV9wb3N0X2tleSAod2xpbSwKK0BAIC0xOTUwLDE0ICsxOTczLDE0 IEBAIGlucHV0X21ldGhvZF9rZXlib2FyZF9rZXkgKHZvaWQgICAgICAgICAgICAgICAgICAgICAg KmRhdGEsCisgICAgIGNvZGUgPSBrZXkgKyA4OworICAgICBldmVudC5zeW0gPSAwOworICAgICAv KiB4a2Jfa2V5X2dldF9zeW1zKCkgZG9lcyBub3QgcmV0dXJuIHRoZSBjYXBpdGFsIHN5bXMgd2l0 aCBTaGlmdCBrZXkuICovCistICAgIGlmIChwcml2LT5zdGF0ZV9zeXN0ZW0pCistICAgICAgICBl dmVudC5zeW0gPSB4a2Jfc3RhdGVfa2V5X2dldF9vbmVfc3ltIChwcml2LT5zdGF0ZV9zeXN0ZW0s IGNvZGUpOworKyAgICBpZiAocHJpdi0+a2V5X3N5cy5zdGF0ZSkKKysgICAgICAgIGV2ZW50LnN5 bSA9IHhrYl9zdGF0ZV9rZXlfZ2V0X29uZV9zeW0gKHByaXYtPmtleV9zeXMuc3RhdGUsIGNvZGUp OworICAgICBzd2l0Y2ggKGV2ZW50LnN5bSkgeworICAgICBjYXNlIElCVVNfS0VZX011bHRpX2tl eToKKyAgICAgY2FzZSBJQlVTX0tFWV9JU09fTmV4dF9Hcm91cDoKKyAgICAgICAgIGJyZWFrOwor ICAgICBkZWZhdWx0OgorLSAgICAgICAgZXZlbnQuc3ltID0geGtiX3N0YXRlX2tleV9nZXRfb25l X3N5bSAocHJpdi0+c3RhdGUsIGNvZGUpOworKyAgICAgICAgZXZlbnQuc3ltID0geGtiX3N0YXRl X2tleV9nZXRfb25lX3N5bSAocHJpdi0+a2V5X3VzZXIuc3RhdGUsIGNvZGUpOworICAgICB9Cisg ICAgIGV2ZW50Lm1vZGlmaWVycyA9IHByaXYtPm1vZGlmaWVyczsKKyAgICAgaWYgKHN0YXRlID09 IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9SRUxFQVNFRCkKK0BAIC0xOTcxLDggKzE5OTQsOCBAQCBp bnB1dF9tZXRob2Rfa2V5Ym9hcmRfa2V5ICh2b2lkICAgICAgICAgICAgICAgICAgICAgICpkYXRh LAorICAgICAgICAgICAgICAgICAgR19TVFJGVU5DLAorICAgICAgICAgICAgICAgICAga2V5X3Nl cmlhbCwgdGltZSwga2V5LAorICAgICAgICAgICAgICAgICAgZXZlbnQuc3ltLAorLSAgICAgICAg ICAgICAgICAgeGtiX3N0YXRlX2tleV9nZXRfb25lX3N5bSAocHJpdi0+c3RhdGUsIGNvZGUpLAor LSAgICAgICAgICAgICAgICAgeGtiX3N0YXRlX2tleV9nZXRfb25lX3N5bSAocHJpdi0+c3RhdGVf c3lzdGVtLCBjb2RlKSwKKysgICAgICAgICAgICAgICAgIHhrYl9zdGF0ZV9rZXlfZ2V0X29uZV9z eW0gKHByaXYtPmtleV91c2VyLnN0YXRlLCBjb2RlKSwKKysgICAgICAgICAgICAgICAgIHhrYl9z dGF0ZV9rZXlfZ2V0X29uZV9zeW0gKHByaXYtPmtleV9zeXMuc3RhdGUsIGNvZGUpLAorICAgICAg ICAgICAgICAgICAgZXZlbnQubW9kaWZpZXJzLCBzdGF0ZSA/ICJwcmVzcyIgOiAicmVsZWFzZSIp OworICAgICAgICAgZmZsdXNoIChwcml2LT5sb2cpOworICAgICB9CitAQCAtMTk5MCw2ICsyMDEz LDI5IEBAIGlucHV0X21ldGhvZF9rZXlib2FyZF9rZXkgKHZvaWQgICAgICAgICAgICAgICAgICAg ICAgKmRhdGEsCisgfQorIAorIAorKy8qKgorKyAqIGlucHV0X21ldGhvZF9rZXlib2FyZF9tb2Rp ZmllcnM6CisrICoKKysgKiBUaGlzIGlzIGEgY29tbW9uIEFQSSBvZiBpbnB1dF9tZXRob2Rfa2V5 Ym9hcmRfbW9kaWZpZXJzX3YxKCkgYW5kCisrICogaW5wdXRfbWV0aG9kX2tleWJvYXJkX21vZGlm aWVyc192MigpLgorKyAqIElmIHlvdSBjb25maWd1cmUgbXVsdGlwbGUgWEtCIGxheW91dHMgaW4g dGhlIHN5c3RlbSB3aXRoCisrICogL2V0Yy92Y29uc29sZS5jb25mIGZpbGUsIHlvdSBjYW4gc3dp dGNoIHRoZSBhY3RpdmUgbGF5b3V0IHdpdGgKKysgKiB0aGUgWEtCIG9wdGlvbnMgYW5kIEBncm91 cCBpcyBjaGFuZ2VkIHdpdGggdGhlIHNob3J0Y3V0IGtleSBsaWtlCisrICogImdycDpsYWx0X2xz aGlmdF90b2dnbGUiIGJ1dCBJZiB5b3UgY2xpY2sgdGhlIGtleWJvYXJkIGljb24gaW4KKysgKiBQ bGFzbWEgS0RFIGFuZCBjaGFuZ2UgdGhlIGFjdGl2ZSBsYXlvdXQgd2l0aCBHVUksIEBncm91cCBp cyBub3QKKysgKiBjaGFuZ2VkIGFuZCBJIGFzc3VtZSBpdCdzIGEgYnVnIFsxXS4KKysgKiBDdXJy ZW50bHkgdGhlcmUgYXJlIHR3byBjYXNlcyBvZiB0aGUgY29tYmluYXRpb25zIG9mIHRoZSBJQnVz IGtleW1hcCBhbmQKKysgKiB0aGUgc3lzdGVtIGtleW1hcCBzdXBwb3J0ZWQgYnkgSUJ1czoKKysg KiAxLiBBbHdheXMgU2FtZSBrZXltYXBzCisrICogICAgRS5nLiBJQnVzIGtleW1hcCBpcyAibHYo dGlsZGUpIiBhbmQgc3lzdGVtIG9uZSBpcyAibHYodGlsZGUpIgorKyAqIDIuIFN5c3RlbSBrZXlt YXAgaXMgIlVTIiBhbmQgc3dpdGNoIElCdXMga2V5bWFwcyB3aXRoIFN1cGVyLXNwYWNlIGtleQor KyAqICAgIEUuZy4gSUJ1cyBrZXltYXAgaXMgImx2KHRpbGRlKSIgYW5kIHN5c3RlbSBvbmUgaXMg InVzIgorKyAqIFNvIHlvdSBzaG91bGQgdXNlIGJvdGggWEtCIG9wdGlvbiBrZXlzIGFuZCBJQnVz IHNob3J0Y3V0a2V5cyB0byBzd2l0Y2ggdGhlCisrICoga2V5bWFwcyB0byBjaGFuZ2UgYm90aCBY S0Iga2V5bWFwcyBhbmQgSUJ1cyBrZXltYXBzIGJ1dCB5b3Ugc2hvdWxkIG5vdAorKyAqIGNsaWNr IHRoZSBrZXlib2FyZCBpY29uIGluIEtERS4KKysgKgorKyAqIFsxXSBodHRwczovL2J1Z3Mua2Rl Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4MzcxCisrICovCisgc3RhdGljIHZvaWQKKyBpbnB1dF9t ZXRob2Rfa2V5Ym9hcmRfbW9kaWZpZXJzICh2b2lkICAgICAgICAgICAgICAgICAgICAgICpkYXRh LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB6d3Bfa2V5Ym9hcmRf dW5pb24gKmtleWJvYXJkLAorQEAgLTIwMDEsMTAgKzIwNDcsMTUgQEAgaW5wdXRfbWV0aG9kX2tl eWJvYXJkX21vZGlmaWVycyAodm9pZCAgICAgICAgICAgICAgICAgICAgICAqZGF0YSwKKyB7Cisg ICAgIElCdXNXYXlsYW5kSU0gKndsaW0gPSBkYXRhOworICAgICBJQnVzV2F5bGFuZElNUHJpdmF0 ZSAqcHJpdjsKKysgICAgSUJ1c1hrYktleW1hcCAqYWN0aXZlX2tleTsKKyAgICAgeGtiX21vZF9t YXNrX3QgbWFzazsKKyAKKyAgICAgZ19yZXR1cm5faWZfZmFpbCAoSUJVU19JU19XQVlMQU5EX0lN ICh3bGltKSk7CisgICAgIHByaXYgPSBpYnVzX3dheWxhbmRfaW1fZ2V0X2luc3RhbmNlX3ByaXZh dGUgKHdsaW0pOworKyAgICBpZiAocHJpdi0+dXNlX3N5c19rZXltYXApCisrICAgICAgICBhY3Rp dmVfa2V5ID0gJnByaXYtPmtleV9zeXM7CisrICAgIGVsc2UKKysgICAgICAgIGFjdGl2ZV9rZXkg PSAmcHJpdi0+a2V5X3VzZXI7CisgICAgIC8qIERvIG5vdCByZXNldCBMYXRjaCBtb2RpZmllcnMg Ynkgc3lzdGVtIGluIGNhc2UgdGhlIHN5c3RlbSBrZXltYXAKKyAgICAgICogaGFzIG5vIHRoZSBM YXRjaCBrZXkuCisgICAgICAqIEluIGNhc2UgdGhlIHVzZXIga2V5bWFwIGlzICJsdih0aWxkZSki IGFuZCB0aGUgc3lzdGVtIG9uZSBpcyAidXMiLAorQEAgLTIwMTcsNTggKzIwNjgsNTkgQEAgaW5w dXRfbWV0aG9kX2tleWJvYXJkX21vZGlmaWVycyAodm9pZCAgICAgICAgICAgICAgICAgICAgICAq ZGF0YSwKKyAgICAgICogbm90IHRvIG92ZXJyaWRlIHRoZSBzdGF0ZSBvZiB0aGUgInVzIiBrZXlt YXAuCisgICAgICAqLworICAgICBpZiAoIXByaXYtPmlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGUgfHwg a2V5X3NlcmlhbCA9PSAwKSB7CistICAgICAgICB4a2Jfc3RhdGVfdXBkYXRlX21hc2sgKHByaXYt PnN0YXRlLCBtb2RzX2RlcHJlc3NlZCwKKysgICAgICAgIHhrYl9zdGF0ZV91cGRhdGVfbWFzayAo cHJpdi0+a2V5X3VzZXIuc3RhdGUsIG1vZHNfZGVwcmVzc2VkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtb2RzX2xhdGNoZWQsIG1vZHNfbG9ja2VkLCAwLCAwLCBncm91cCk7Cisg ICAgICAgICAvKiBQcmVzc2luZyBYS0IgZ3JvdXAga2V5IGxpa2VzIEFsdF9SIHdpdGggZ3JwOnRv Z2dsZSBjYWxscworICAgICAgICAgICogaW5wdXRfbWV0aG9kX2tleWJvYXJkX21vZGlmaWVycygp IHdpdGggdGhlIHVwZGF0ZWQgYGdyb3VwYAorLSAgICAgICAgICogYW5kIG5lZWQgdG8gdXBkYXRl IHByaXYtPnN0YXRlX3N5c3RlbSB0byBzd2l0Y2ggdGhlIFhLQiBncm91cAorKyAgICAgICAgICog YW5kIG5lZWQgdG8gdXBkYXRlIHByaXYtPmtleV9zeXMuc3RhdGUgdG8gc3dpdGNoIHRoZSBYS0Ig Z3JvdXAKKyAgICAgICAgICAqIGluIHRoZSBzeXN0ZW0ga2V5bWFwLgorICAgICAgICAgICoKKyAg ICAgICAgICAqIFhLQiBncm91cCBrZXkgY2FuIHN3aXRjaCBgZ3JvdXBgIGJ1dCBjbGlja2luZyB0 aGUga2V5Ym9hcmQgaWNvbgorICAgICAgICAgICogb2YgS0RFIGRvZXMgbm90IGNoYW5nZSBgZ3Jv dXBgIGF0IHByZXNlbnQuIE1heWJlIGEgYnVnIGluIHRoZQorICAgICAgICAgICogS0RFIFdheWxh bmQgY29tcG9zaXRvci4KKyAgICAgICAgICAqLworLSAgICAgICAgeGtiX3N0YXRlX3VwZGF0ZV9t YXNrIChwcml2LT5zdGF0ZV9zeXN0ZW0sIG1vZHNfZGVwcmVzc2VkLAorKyAgICAgICAgeGtiX3N0 YXRlX3VwZGF0ZV9tYXNrIChwcml2LT5rZXlfc3lzLnN0YXRlLCBtb2RzX2RlcHJlc3NlZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kc19sYXRjaGVkLCBtb2RzX2xvY2tlZCwg MCwgMCwgZ3JvdXApOworICAgICB9CisgICAgIC8qIENhcHNMb2NrIG5lZWRzIFhLQl9TVEFURV9N T0RTX0xPQ0tFRCAqLworLSAgICBtYXNrID0geGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzIChwcml2 LT5zdGF0ZSwKKysgICAgbWFzayA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbW9kcyAoYWN0aXZlX2tl eS0+c3RhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhLQl9TVEFU RV9ERVBSRVNTRUQgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYS0Jf U1RBVEVfTEFUQ0hFRCB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhL Ql9TVEFURV9NT0RTX0xPQ0tFRCk7CisgICAgIGlmIChwcml2LT52ZXJib3NlKSB7CisrICAgICAg ICBzdHJ1Y3QgeGtiX3N0YXRlICpzdGF0ZSA9IGFjdGl2ZV9rZXktPnN0YXRlOworICAgICAgICAg ZnByaW50ZiAocHJpdi0+bG9nLCAiVXBkYXRlIG1vZGlmaWVycyBzZXJpYWw6JXUgZGVwcmVzczol WCBsYXRjaDolWCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibG9jazolWCBncm91 cDolWCBvcmlnX2RlcHJlOiVYIG9yaWdfbGF0Y2g6JVggIgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIm9yaWdfbG9jazolWFxuIiwKKyAgICAgICAgICAgICAgICAgIGtleV9zZXJpYWws IG1vZHNfZGVwcmVzc2VkLCBtb2RzX2xhdGNoZWQsIG1vZHNfbG9ja2VkLCBncm91cCwKKy0gICAg ICAgICAgICAgICAgIHhrYl9zdGF0ZV9zZXJpYWxpemVfbW9kcyAocHJpdi0+c3RhdGUsIFhLQl9T VEFURV9ERVBSRVNTRUQpLAorLSAgICAgICAgICAgICAgICAgeGtiX3N0YXRlX3NlcmlhbGl6ZV9t b2RzIChwcml2LT5zdGF0ZSwgWEtCX1NUQVRFX0xBVENIRUQpLAorLSAgICAgICAgICAgICAgICAg eGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzIChwcml2LT5zdGF0ZSwgWEtCX1NUQVRFX01PRFNfTE9D S0VEKSk7CisrICAgICAgICAgICAgICAgICB4a2Jfc3RhdGVfc2VyaWFsaXplX21vZHMgKHN0YXRl LCBYS0JfU1RBVEVfREVQUkVTU0VEKSwKKysgICAgICAgICAgICAgICAgIHhrYl9zdGF0ZV9zZXJp YWxpemVfbW9kcyAoc3RhdGUsIFhLQl9TVEFURV9MQVRDSEVEKSwKKysgICAgICAgICAgICAgICAg IHhrYl9zdGF0ZV9zZXJpYWxpemVfbW9kcyAoc3RhdGUsIFhLQl9TVEFURV9NT0RTX0xPQ0tFRCkp OworICAgICAgICAgZmZsdXNoIChwcml2LT5sb2cpOworICAgICB9CisgCisgICAgIHByaXYtPm1v ZGlmaWVycyA9IDA7CistICAgIGlmIChtYXNrICYgcHJpdi0+c2hpZnRfbWFzaykKKysgICAgaWYg KG1hc2sgJiBhY3RpdmVfa2V5LT5zaGlmdF9tYXNrKQorICAgICAgICAgcHJpdi0+bW9kaWZpZXJz IHw9IElCVVNfU0hJRlRfTUFTSzsKKy0gICAgaWYgKG1hc2sgJiBwcml2LT5sb2NrX21hc2spCisr ICAgIGlmIChtYXNrICYgYWN0aXZlX2tleS0+bG9ja19tYXNrKQorICAgICAgICAgcHJpdi0+bW9k aWZpZXJzIHw9IElCVVNfTE9DS19NQVNLOworLSAgICBpZiAobWFzayAmIHByaXYtPmNvbnRyb2xf bWFzaykKKysgICAgaWYgKG1hc2sgJiBhY3RpdmVfa2V5LT5jb250cm9sX21hc2spCisgICAgICAg ICBwcml2LT5tb2RpZmllcnMgfD0gSUJVU19DT05UUk9MX01BU0s7CistICAgIGlmIChtYXNrICYg cHJpdi0+bW9kMV9tYXNrKQorKyAgICBpZiAobWFzayAmIGFjdGl2ZV9rZXktPm1vZDFfbWFzaykK KyAgICAgICAgIHByaXYtPm1vZGlmaWVycyB8PSBJQlVTX01PRDFfTUFTSzsKKy0gICAgaWYgKG1h c2sgJiBwcml2LT5tb2QyX21hc2spCisrICAgIGlmIChtYXNrICYgYWN0aXZlX2tleS0+bW9kMl9t YXNrKQorICAgICAgICAgcHJpdi0+bW9kaWZpZXJzIHw9IElCVVNfTU9EMl9NQVNLOworLSAgICBp ZiAobWFzayAmIHByaXYtPm1vZDNfbWFzaykKKysgICAgaWYgKG1hc2sgJiBhY3RpdmVfa2V5LT5t b2QzX21hc2spCisgICAgICAgICBwcml2LT5tb2RpZmllcnMgfD0gSUJVU19NT0QzX01BU0s7Cist ICAgIGlmIChtYXNrICYgcHJpdi0+bW9kNF9tYXNrKQorKyAgICBpZiAobWFzayAmIGFjdGl2ZV9r ZXktPm1vZDRfbWFzaykKKyAgICAgICAgIHByaXYtPm1vZGlmaWVycyB8PSBJQlVTX01PRDRfTUFT SzsKKy0gICAgaWYgKG1hc2sgJiBwcml2LT5tb2Q1X21hc2spCisrICAgIGlmIChtYXNrICYgYWN0 aXZlX2tleS0+bW9kNV9tYXNrKQorICAgICAgICAgcHJpdi0+bW9kaWZpZXJzIHw9IElCVVNfTU9E NV9NQVNLOworLSAgICBpZiAobWFzayAmIHByaXYtPnN1cGVyX21hc2spCisrICAgIGlmIChtYXNr ICYgYWN0aXZlX2tleS0+c3VwZXJfbWFzaykKKyAgICAgICAgIHByaXYtPm1vZGlmaWVycyB8PSBJ QlVTX1NVUEVSX01BU0s7CistICAgIGlmIChtYXNrICYgcHJpdi0+aHlwZXJfbWFzaykKKysgICAg aWYgKG1hc2sgJiBhY3RpdmVfa2V5LT5oeXBlcl9tYXNrKQorICAgICAgICAgcHJpdi0+bW9kaWZp ZXJzIHw9IElCVVNfSFlQRVJfTUFTSzsKKy0gICAgaWYgKG1hc2sgJiBwcml2LT5tZXRhX21hc2sp CisrICAgIGlmIChtYXNrICYgYWN0aXZlX2tleS0+bWV0YV9tYXNrKQorICAgICAgICAgcHJpdi0+ bW9kaWZpZXJzIHw9IElCVVNfTUVUQV9NQVNLOworIAorICAgICBpZiAoIWtleV9zZXJpYWwpCitA QCAtMjA4MywxMSArMjEzNSwxMSBAQCBpbnB1dF9tZXRob2Rfa2V5Ym9hcmRfbW9kaWZpZXJzICh2 b2lkICAgICAgICAgICAgICAgICAgICAgICpkYXRhLAorICAgICBjYXNlIElOUFVUX01FVEhPRF9W MjoKKyAgICAgICAgIC8qIHdscm9vdHMvdHlwZXMvd2xyX3ZpcnR1YWxfa2V5Ym9hcmRfdjEuYzp2 aXJ0dWFsX2tleWJvYXJkX21vZGlmaWVycygpCisgICAgICAgICAgKiByZXR1cm5zICJDYW5ub3Qg c2VuZCBhIG1vZGlmaWVyIHN0YXRlIGJlZm9yZSBkZWZpbmluZyBhIGtleW1hcCIKKy0gICAgICAg ICAqIGlmIGBoYXNfa2V5bWFwYCBpcyAlRkFMU0UuCisrICAgICAgICAgKiBpZiBgaGFzX2NvbXBv c2l0b3Jfa2V5bWFwYCBpcyAlRkFMU0UuCisgICAgICAgICAgKi8KKyAgICAgICAgIGlmICghcHJp di0+c2VhdCkKKyAgICAgICAgICAgICBicmVhazsKKy0gICAgICAgIGlmIChwcml2LT5zZWF0LT5o YXNfa2V5bWFwKSB7CisrICAgICAgICBpZiAocHJpdi0+c2VhdC0+aGFzX2NvbXBvc2l0b3Jfa2V5 bWFwKSB7CisgICAgICAgICAgICAgendwX3ZpcnR1YWxfa2V5Ym9hcmRfdjFfbW9kaWZpZXJzIChw cml2LT5zZWF0LT52aXJ0dWFsX2tleWJvYXJkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbW9kc19kZXByZXNzZWQsIG1vZHNfbGF0Y2hlZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHNfbG9ja2VkLCBn cm91cCk7CitAQCAtMjM3Miw3ICsyNDI0LDcgQEAgaW5wdXRfbWV0aG9kX2FjdGl2YXRlICh2b2lk ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpkYXRhLAorICAgICAgICAgLyogUmVnZW5l cmF0aW5nIGB2aXJ0dWFsX2tleWJvYXJkYCBjYXVzZXMgYHNpemVgID0gMCBpbgorICAgICAgICAg ICogaW5wdXRfbWV0aG9kX2tleWJvYXJkX2tleW1hcCgpIHdpdGggZm9jdXMgY2hhbmdlcyBpbiBT d2F5IHNlc3Npb24uCisgICAgICAgICAgKi8KKy0gICAgICAgIHByaXYtPnNlYXQtPmhhc19rZXlt YXAgPSBGQUxTRTsKKysgICAgICAgIHByaXYtPnNlYXQtPmhhc19jb21wb3NpdG9yX2tleW1hcCA9 IEZBTFNFOworICAgICAgICAgcHJpdi0+c2VhdC0+a2V5Ym9hcmRfdjIgPSB6d3BfaW5wdXRfbWV0 aG9kX3YyX2dyYWJfa2V5Ym9hcmQgKAorICAgICAgICAgICAgICAgICBpbnB1dF9tZXRob2QtPnUu aW5wdXRfbWV0aG9kX3YyKTsKKyAgICAgICAgIHp3cF9pbnB1dF9tZXRob2Rfa2V5Ym9hcmRfZ3Jh Yl92Ml9hZGRfbGlzdGVuZXIgKAorQEAgLTMwNTEsOCArMzEwMywxMSBAQCBpYnVzX3dheWxhbmRf aW1fY29uc3RydWN0b3IgKEdUeXBlICAgICAgICAgICAgICAgICAgdHlwZSwKKyAgICAgZGVzYyA9 IGlidXNfYnVzX2dldF9nbG9iYWxfZW5naW5lIChwcml2LT5pYnVzYnVzKTsKKyAgICAgaWYgKGRl c2MpCisgICAgICAgICBrZXltYXAgPSBjcmVhdGVfdXNlcl94a2Jfa2V5bWFwIChwcml2LT54a2Jf Y29udGV4dCwgZGVzYyk7CistICAgIGlmIChrZXltYXAgJiYgIWlidXNfd2F5bGFuZF9pbV91cGRh dGVfeGtiX3N0YXRlICh3bGltLCBrZXltYXApKQorKyAgICBpZiAoa2V5bWFwICYmICFpYnVzX3hr Yl9rZXltYXBfdXBkYXRlX3dpdGhfa2V5bWFwICgmcHJpdi0+a2V5X3VzZXIsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleW1hcCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCkp IHsKKyAgICAgICAgIGdfY2xlYXJfcG9pbnRlciAoJmtleW1hcCwgeGtiX2tleW1hcF91bnJlZik7 CisrICAgIH0KKyAgICAgaWYgKHByaXYtPnZlcmJvc2UpIHsKKyAgICAgICAgIGlmICghZGVzYykg eworICAgICAgICAgICAgIGZwcmludGYgKHByaXYtPmxvZywgIkNvbnN0cnVjdG9yIGhhcyBObyBn bG9iYWwgZW5naW5lXG4iKTsKK0BAIC0zMDYwLDcgKzMxMTUsNyBAQCBpYnVzX3dheWxhbmRfaW1f Y29uc3RydWN0b3IgKEdUeXBlICAgICAgICAgICAgICAgICAgdHlwZSwKKyAgICAgICAgICAgICBm cHJpbnRmIChwcml2LT5sb2csICJDb25zdHJ1Y3RvciBlbmdpbmUgJXMga2V5bWFwOiVzIHN0YXRl OiVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgIGlidXNfZW5naW5lX2Rlc2NfZ2V0X25hbWUg KGRlc2MpLAorICAgICAgICAgICAgICAgICAgICAgIGtleW1hcCA/ICJUUlVFIiA6ICJGQUxTRSIs CistICAgICAgICAgICAgICAgICAgICAgcHJpdi0+c3RhdGUgPyAiVFJVRSIgOiAiRkFMU0UiKTsK KysgICAgICAgICAgICAgICAgICAgICBwcml2LT5rZXlfdXNlci5zdGF0ZSA/ICJUUlVFIiA6ICJG QUxTRSIpOworICAgICAgICAgfQorICAgICAgICAgZmZsdXNoIChwcml2LT5sb2cpOworICAgICB9 CistLSAKKzIuNTMuMAorCitGcm9tIDY1NTIwYjljMjA5NDNmZjZkM2IyOTBiOWNhNDFlZDM3MGU5 NGNkZjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1 aml3YXJhMUBnbWFpbC5jb20+CitEYXRlOiBGcmksIDI5IE1heSAyMDI2IDE3OjQzOjE3ICswOTAw CitTdWJqZWN0OiBbUEFUQ0ggNC85XSBjbGllbnQvd2F5bGFuZDogUmVmYWN0b3IgSVNPX0xldmVs WzN8NV1fU2hpZnQgc3RhdGUKKworVGhlIHN0YXRlcyBvZiBJU08gU2hpZnQga2V5cyBzaG91bGQg YmUgY2xlYXJlZCB3aGVuIHRoZSBrZXkgaXMgcmVsZWFzZWQKK2FnYWluc3QgSVNPIExhdGNoIGtl eXMuIEUuZy4gIlJBTFQiIGtleSBpbiAibHYodGlsZGUpIiBrZXltYXAuCisKK1RoZSBzdGF0ZSBv ZiB0aGUgIlJBTFQiIGtleSBpcyBzdHJhbmdlIGluICJkZShUMykiIGtleW1hcCwgaS5lLgorIklT T19MZXZlbDNfU2hpZnQiIGtleXN5bSBmb3IgdGhlIGtleXByZXNzIGFuZCBJU09fTGV2ZWw1X0xh dGNoIGtleXNtCitmb3Iga2V5cmVsZWFzZSBhbmQgSUJ1cyBjb3VsZCBub3QgZ2V0IHRoZSBjb3Jy ZWN0IGRlYWQga2V5cyBhbmQKK2NsZWFyIHRoZSBzdGF0ZS4gTm93IHRoZSAiaXNfcHJlc3NlZF9t b2Q1IiBmbGFnIGNoZWNrcyBpZiB0aGUKK2tleSBpcyBwcmVzc2VkIGFuZCBhZGQgYSB3b3JrYXJv dW5kLgorCitDbG9zZXM6IHJoYnojMjQ0NDAwOQorLS0tCisgY2xpZW50L3dheWxhbmQvaWJ1c3dh eWxhbmRpbS5jIHwgMTM5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQorIDEgZmls ZSBjaGFuZ2VkLCAxMjcgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1n aXQgYS9jbGllbnQvd2F5bGFuZC9pYnVzd2F5bGFuZGltLmMgYi9jbGllbnQvd2F5bGFuZC9pYnVz d2F5bGFuZGltLmMKK2luZGV4IDJjMDIyNTQ4Li5jZDkyYTk4OCAxMDA2NDQKKy0tLSBhL2NsaWVu dC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYworKysrIGIvY2xpZW50L3dheWxhbmQvaWJ1c3dheWxh bmRpbS5jCitAQCAtNjIsNiArNjIsMTMgQEAgdHlwZWRlZiBlbnVtCisgICAgIElOUFVUX01FVEhP RF9WMiwKKyB9IElNUHJvdG9jb2xWZXJzaW9uOworIAorK3R5cGVkZWYgZW51bSB7CisrICAgIElC VVNfS0VZX0lTT19MRVZFTF9JTlZBTElELAorKyAgICBJQlVTX0tFWV9JU09fTEVWRUxfMiwKKysg ICAgSUJVU19LRVlfSVNPX0xFVkVMXzMsCisrICAgIElCVVNfS0VZX0lTT19MRVZFTF81CisrfSBJ QnVzS2V5SXNvTGV2ZWxWYWx1ZTsKKysKKyBzdHJ1Y3QgendwX2lucHV0X21ldGhvZF9jb250ZXh0 X3VuaW9uIHsKKyAgICAgdW5pb24geworICAgICAgICAgc3RydWN0IHp3cF9pbnB1dF9tZXRob2Rf Y29udGV4dF92MSAqY29udGV4dF92MTsKK0BAIC0xNjEsNiArMTY4LDggQEAgc3RydWN0IF9JQnVz V2F5bGFuZElNUHJpdmF0ZQorIAorICAgICBJQnVzWGtiS2V5bWFwIGtleV91c2VyOworICAgICBJ QnVzWGtiS2V5bWFwIGtleV9zeXM7CisrICAgIGdib29sZWFuIGlzX3ByZXNzZWRfbW9kMzsKKysg ICAgZ2Jvb2xlYW4gaXNfcHJlc3NlZF9tb2Q1OworIAorICAgICB1aW50MzJfdCBpbV9zZXJpYWw7 CisgICAgIGludDMyX3QgcmVwZWF0X3JhdGU7CitAQCAtMzM5LDYgKzM0OCwyOCBAQCBpYnVzX3dh eWxhbmRfc291cmNlX25ldyAoc3RydWN0IHdsX2Rpc3BsYXkgKmRpc3BsYXkpCisgfQorIAorIAor K3N0YXRpYyB2b2lkCisraWJ1c193YXlsYW5kX2ltX3Jlc2V0X21vZGlmaWVycyAoSUJ1c1dheWxh bmRJTSAqd2xpbSkKKyt7CisrICAgIElCdXNXYXlsYW5kSU1Qcml2YXRlICpwcml2OworKyAgICB4 a2JfbGF5b3V0X2luZGV4X3QgIGdyb3VwID0gMDsKKysKKysgICAgZ19hc3NlcnQgKElCVVNfSVNf V0FZTEFORF9JTSAod2xpbSkpOworKworKyAgICBwcml2ID0gaWJ1c193YXlsYW5kX2ltX2dldF9p bnN0YW5jZV9wcml2YXRlICh3bGltKTsKKysgICAgcHJpdi0+aXNfdmlydHVhbF9sYXRjaF9zdGF0 ZSA9IEZBTFNFOworKyAgICBwcml2LT5pc19wcmVzc2VkX21vZDMgPSBGQUxTRTsKKysgICAgcHJp di0+aXNfcHJlc3NlZF9tb2Q1ID0gRkFMU0U7CisrICAgIGlmIChwcml2LT5rZXlfdXNlci5zdGF0 ZSAmJiBwcml2LT5rZXlfc3lzLnN0YXRlKSB7CisrICAgICAgICBncm91cCA9IHhrYl9zdGF0ZV9z ZXJpYWxpemVfbGF5b3V0IChwcml2LT5rZXlfc3lzLnN0YXRlLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX0xBWU9VVF9MT0NLRUQpOworKyAg ICAgICAgaW5wdXRfbWV0aG9kX2tleWJvYXJkX21vZGlmaWVycyAod2xpbSwgTlVMTCwgMCwgMCwg MCwgMCwgZ3JvdXApOworKyAgICB9IGVsc2UgeworKyAgICAgICAgcHJpdi0+bW9kaWZpZXJzID0g MDsKKysgICAgfQorK30KKysKKysKKyBzdGF0aWMgdm9pZAorIGlidXNfd2F5bGFuZF9pbV9jb21t aXRfdGV4dCAoSUJ1c1dheWxhbmRJTSAqd2xpbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgICAgKnN0cikKK0BAIC01MTUsNyArNTQ2LDggQEAgaWJ1c193YXlsYW5k X2ltX3VwZGF0ZV92aXJ0dWFsX2RlcHJlc3NlZCAoSUJ1c1dheWxhbmRJTSAgKndsaW0sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGtiX2tleXN5bV90ICAgIHN5 bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQnVzWGtiS2V5 bWFwICAqYWN0aXZlX2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnYm9vbGVhbiAgICAgICAgZmlsdGVyZWQsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeGtiX21vZF9tYXNrX3QgKm1vZHNfZGVwcmVzc2VkKQorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhrYl9tb2RfbWFza190ICptb2Rz X2RlcHJlc3NlZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn Ym9vbGVhbiAgICAgICAqY2xlYXJfdmlydHVhbF9zdGF0ZSkKKyB7CisgICAgIElCdXNXYXlsYW5k SU1Qcml2YXRlICpwcml2OworICAgICB1aW50MzJfdCBjb2RlID0ga2V5ICsgODsKK0BAIC01Mjgs NiArNTYwLDcgQEAgaWJ1c193YXlsYW5kX2ltX3VwZGF0ZV92aXJ0dWFsX2RlcHJlc3NlZCAoSUJ1 c1dheWxhbmRJTSAgKndsaW0sCisgICAgIGdfYXNzZXJ0IChJQlVTX0lTX1dBWUxBTkRfSU0gKHds aW0pKTsKKyAgICAgZ19hc3NlcnQgKGFjdGl2ZV9rZXkpOworICAgICBnX2Fzc2VydCAobW9kc19k ZXByZXNzZWQpOworKyAgICBnX2Fzc2VydCAoY2xlYXJfdmlydHVhbF9zdGF0ZSk7CisgCisgICAg IHByaXYgPSBpYnVzX3dheWxhbmRfaW1fZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHdsaW0pOworICAg ICBuZXdfbW9kc19kZXByZXNzZWQgPSAqbW9kc19kZXByZXNzZWQ7CitAQCAtNTQzLDI1ICs1NzYs ODcgQEAgaWJ1c193YXlsYW5kX2ltX3VwZGF0ZV92aXJ0dWFsX2RlcHJlc3NlZCAoSUJ1c1dheWxh bmRJTSAgKndsaW0sCisgICAgICAgICBicmVhazsKKyAgICAgLyogTGV2ZWwzX2xhdGNoIGlzIGNh dXNlZCBieSBUTERFIGtleSBpbiBsdih0aWxkZSkga2V5bWFwLgorICAgICAgKiBMZXZlbDNfU2hp ZnQgaXMgY2F1c2VkIGJ5IEFsdCBrZXkgaW4gbHYodGlsZGUpIGtleW1hcC4KKysgICAgICogTGV2 ZWw1X0xhdGNoIGlzIGNhdXNlZCBieSBTaGlmdCtBbHQga2V5IGluIGRlKFQzKSBrZXltYXAuCisg ICAgICAqLworICAgICBjYXNlIElCVVNfS0VZX0lTT19MZXZlbDNfTGF0Y2g6CisgICAgIGNhc2Ug SUJVU19LRVlfSVNPX0xldmVsM19TaGlmdDoKKy0gICAgICAgIGlmIChzdGF0ZSA9PSBXTF9LRVlC T0FSRF9LRVlfU1RBVEVfUFJFU1NFRCkgeworLSAgICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3Nl ZCB8PSBhY3RpdmVfa2V5LT5tb2Q1X21hc2s7CistICAgICAgICAgICAgaWYgKHN5bSAhPSBzeXN0 ZW1fc3ltKQorLSAgICAgICAgICAgICAgICBwcml2LT5pc192aXJ0dWFsX2xhdGNoX3N0YXRlID0g VFJVRTsKKy0gICAgICAgICAgICBmaWx0ZXJlZCA9IFRSVUU7CistICAgICAgICB9CistICAgICAg ICBicmVhazsKKy0gICAgLyogTGV2ZWw1X0xhdGNoIGlzIGNhdXNlZCBieSBTaGlmdCtBbHQga2V5 IGluIGRlKFQzKSBrZXltYXAuCistICAgICAqLworICAgICBjYXNlIElCVVNfS0VZX0lTT19MZXZl bDVfTGF0Y2g6CisgICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVsNV9TaGlmdDoKKyAgICAgICAg IGlmIChzdGF0ZSA9PSBXTF9LRVlCT0FSRF9LRVlfU1RBVEVfUFJFU1NFRCkgeworLSAgICAgICAg ICAgIG5ld19tb2RzX2RlcHJlc3NlZCB8PSBhY3RpdmVfa2V5LT5tb2QzX21hc2s7CisrICAgICAg ICAgICAgc3dpdGNoIChzeW0pIHsKKysgICAgICAgICAgICBjYXNlIElCVVNfS0VZX0lTT19MZXZl bDNfTGF0Y2g6CisrICAgICAgICAgICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2ZWwzX1NoaWZ0Ogor KyAgICAgICAgICAgICAgICBwcml2LT5pc19wcmVzc2VkX21vZDUgPSBUUlVFOworKyAgICAgICAg ICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgfD0gYWN0aXZlX2tleS0+bW9kNV9tYXNrOworKyAg ICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgICBjYXNlIElCVVNfS0VZX0lTT19MZXZl bDVfTGF0Y2g6CisrICAgICAgICAgICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2ZWw1X1NoaWZ0Ogor KyAgICAgICAgICAgICAgICBwcml2LT5pc19wcmVzc2VkX21vZDMgPSBUUlVFOworKyAgICAgICAg ICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgfD0gYWN0aXZlX2tleS0+bW9kM19tYXNrOworKyAg ICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgICBkZWZhdWx0OgorKyAgICAgICAgICAg ICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCAoKTsKKysgICAgICAgICAgICB9CisgICAgICAgICAg ICAgaWYgKHN5bSAhPSBzeXN0ZW1fc3ltKQorICAgICAgICAgICAgICAgICBwcml2LT5pc192aXJ0 dWFsX2xhdGNoX3N0YXRlID0gVFJVRTsKKyAgICAgICAgICAgICBmaWx0ZXJlZCA9IFRSVUU7Cisr ICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgIElCdXNLZXlJc29MZXZlbFZhbHVlIGN1cnJl bnRfbGV2ZWwgPSBJQlVTX0tFWV9JU09fTEVWRUxfSU5WQUxJRDsKKysgICAgICAgICAgICBnYm9v bGVhbiAqaXNfcHJlc3NlZF9jdXJyZW50X21vZCA9IE5VTEw7CisrICAgICAgICAgICAgZ2Jvb2xl YW4gKmlzX3ByZXNzZWRfcmV2ZXJzZV9tb2QgPSBOVUxMOworKyAgICAgICAgICAgIHhrYl9tb2Rf bWFza190IGN1cnJlbnRfbW9kZV9tYXNrID0gMDsKKysgICAgICAgICAgICB4a2JfbW9kX21hc2tf dCByZXZlcnNlX21vZGVfbWFzayA9IDA7CisrICAgICAgICAgICAgc3dpdGNoIChzeW0pIHsKKysg ICAgICAgICAgICBjYXNlIElCVVNfS0VZX0lTT19MZXZlbDNfTGF0Y2g6CisrICAgICAgICAgICAg Y2FzZSBJQlVTX0tFWV9JU09fTGV2ZWwzX1NoaWZ0OgorKyAgICAgICAgICAgICAgICBjdXJyZW50 X2xldmVsID0gSUJVU19LRVlfSVNPX0xFVkVMXzM7CisrICAgICAgICAgICAgICAgIGlzX3ByZXNz ZWRfY3VycmVudF9tb2QgPSAmcHJpdi0+aXNfcHJlc3NlZF9tb2Q1OworKyAgICAgICAgICAgICAg ICBpc19wcmVzc2VkX3JldmVyc2VfbW9kID0gJnByaXYtPmlzX3ByZXNzZWRfbW9kMzsKKysgICAg ICAgICAgICAgICAgY3VycmVudF9tb2RlX21hc2sgPSBhY3RpdmVfa2V5LT5tb2Q1X21hc2s7Cisr ICAgICAgICAgICAgICAgIHJldmVyc2VfbW9kZV9tYXNrID0gYWN0aXZlX2tleS0+bW9kM19tYXNr OworKyAgICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgICBjYXNlIElCVVNfS0VZX0lT T19MZXZlbDVfTGF0Y2g6CisrICAgICAgICAgICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2ZWw1X1No aWZ0OgorKyAgICAgICAgICAgICAgICBjdXJyZW50X2xldmVsID0gSUJVU19LRVlfSVNPX0xFVkVM XzU7CisrICAgICAgICAgICAgICAgIGlzX3ByZXNzZWRfY3VycmVudF9tb2QgPSAmcHJpdi0+aXNf cHJlc3NlZF9tb2QzOworKyAgICAgICAgICAgICAgICBpc19wcmVzc2VkX3JldmVyc2VfbW9kID0g JnByaXYtPmlzX3ByZXNzZWRfbW9kNTsKKysgICAgICAgICAgICAgICAgY3VycmVudF9tb2RlX21h c2sgPSBhY3RpdmVfa2V5LT5tb2QzX21hc2s7CisrICAgICAgICAgICAgICAgIHJldmVyc2VfbW9k ZV9tYXNrID0gYWN0aXZlX2tleS0+bW9kNV9tYXNrOworKyAgICAgICAgICAgICAgICBicmVhazsK KysgICAgICAgICAgICBkZWZhdWx0OjsKKysgICAgICAgICAgICB9CisrICAgICAgICAgICAgZ19h c3NlcnQgKGN1cnJlbnRfbGV2ZWwgIT0gSUJVU19LRVlfSVNPX0xFVkVMX0lOVkFMSUQpOworKyAg ICAgICAgICAgIGdfYXNzZXJ0IChpc19wcmVzc2VkX2N1cnJlbnRfbW9kICYmIGlzX3ByZXNzZWRf cmV2ZXJzZV9tb2QpOworKyAgICAgICAgICAgIGlmIChHX0xJS0VMWSAoKmlzX3ByZXNzZWRfY3Vy cmVudF9tb2QpKSB7CisrICAgICAgICAgICAgICAgICppc19wcmVzc2VkX2N1cnJlbnRfbW9kID0g RkFMU0U7CisrICAgICAgICAgICAgfSBlbHNlIGlmICgqaXNfcHJlc3NlZF9yZXZlcnNlX21vZCAm JgorKyAgICAgICAgICAgICAgICAgICAgICAgKG5ld19tb2RzX2RlcHJlc3NlZCAmIGFjdGl2ZV9r ZXktPm1vZDNfbWFzaykpIHsKKysgICAgICAgICAgICAgICAgLyogVGhlIHVubGlrZWx5IGNhc2Ug IXByaXYtPmlzX3ByZXNzZWRfbW9kMyBhbmQKKysgICAgICAgICAgICAgICAgICogcHJpdi0+aXNf cHJlc3NlZF9tb2Q1IG1lYW5zIHRoYXQgImRlKFQzKSIga2V5bWFwIGdpdmVzCisrICAgICAgICAg ICAgICAgICAqIHRoZSBwcmVzc2VkICJMZXZlbDNfU2hpZnQiIGtleXN5bSBhbmQKKysgICAgICAg ICAgICAgICAgICogdGhlIHJlbGVhc2VkICJMZXZlbDVfTGF0Y2giIGtleXN5bSBmb3IgdGhlIGtl eSA8UkFMVD4uCisrICAgICAgICAgICAgICAgICAqIE1heWJlIGEgYnVnIGluICJkZShUMykiIHNv IG5lZWQgdG8gY2xlYXIgdGhlIE1PRDUgc3RhdGUKKysgICAgICAgICAgICAgICAgICogYnkgdGhl IHByZXNzZWQgIkxldmVsM19TaGlmdCIga2V5c3ltLgorKyAgICAgICAgICAgICAgICAgKi8KKysg ICAgICAgICAgICAgICAgKmlzX3ByZXNzZWRfcmV2ZXJzZV9tb2QgPSBGQUxTRTsKKysgICAgICAg ICAgICAgICAgbmV3X21vZHNfZGVwcmVzc2VkICY9IH5yZXZlcnNlX21vZGVfbWFzazsKKysgICAg ICAgICAgICAgICAgKmNsZWFyX3ZpcnR1YWxfc3RhdGUgPSBUUlVFOworKyAgICAgICAgICAgICAg ICBnX2RlYnVnICgiR290IGEgd3JvbmcgcmVsZWFzZWQgJXMga2V5IHdpdGhvdXQgdGhlICIKKysg ICAgICAgICAgICAgICAgICAgICAgICAgInByZXNzZWQgb25lLiBNYXliZSBhIGJ1ZyBpbiBYS0Iu IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudF9sZXZlbCA9PSBJQlVTX0tFWV9J U09fTEVWRUxfMyA/CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxldmVsMyIg OiAiTGV2ZWw1Iik7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIC8qIFRoZSAibHYodGls ZGUpIiBrZXltYXAgZ2l2ZXMgdGhlICJMZXZlbDNfU2hpZnQiIGtleXN5bQorKyAgICAgICAgICAg ICAqIHdpdGggdGhlIGtleSA8UkFMVD4uCisrICAgICAgICAgICAgICovCisrICAgICAgICAgICAg aWYgKChjdXJyZW50X2xldmVsID09IElCVVNfS0VZX0lTT19MRVZFTF8zICYmCisrICAgICAgICAg ICAgICAgICBzeW0gPT0gSUJVU19LRVlfSVNPX0xldmVsM19TaGlmdCkgfHwKKysgICAgICAgICAg ICAgICAgKGN1cnJlbnRfbGV2ZWwgPT0gSUJVU19LRVlfSVNPX0xFVkVMXzUgJiYKKysgICAgICAg ICAgICAgICAgIHN5bSA9PSBJQlVTX0tFWV9JU09fTGV2ZWw1X1NoaWZ0KSkgeworKyAgICAgICAg ICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgJj0gfmN1cnJlbnRfbW9kZV9tYXNrOworKyAgICAg ICAgICAgICAgICBpZiAoc3ltICE9IHN5c3RlbV9zeW0pCisrICAgICAgICAgICAgICAgICAgICBj bGVhcl92aXJ0dWFsX3N0YXRlID0gVFJVRTsKKysgICAgICAgICAgICB9CisgICAgICAgICB9Cisg ICAgICAgICBicmVhazsKKyAgICAgY2FzZSBJQlVTX0tFWV9TaGlmdF9MOgorQEAgLTYzNSw2ICs3 MzAsMjMgQEAgaWJ1c193YXlsYW5kX2ltX3VwZGF0ZV92aXJ0dWFsX3hrYl9zdGF0ZSAoSUJ1c1dh eWxhbmRJTSAqd2xpbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RhdGUgPT0g V0xfS0VZQk9BUkRfS0VZX1NUQVRFX1JFTEVBU0VEKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgID8gWEtCX0tFWV9VUCA6IFhLQl9LRVlfRE9XTik7CisgICAgIH0KKysgICAgaWYgKHBy aXYtPmlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGUgJiYKKysgICAgICAgIChuZXdfbW9kc19kZXByZXNz ZWQgIT0gbW9kc19kZXByZXNzZWQpICYmCisrICAgICAgICAoc3RhdGUgIT0gV0xfS0VZQk9BUkRf S0VZX1NUQVRFX1JFTEVBU0VEKSkgeworKyAgICAgICAgeGtiX21vZF9tYXNrX3QgbmV3Ml9tb2Rz X2RlcHJlc3NlZDsKKysgICAgICAgIG5ldzJfbW9kc19kZXByZXNzZWQgPSB4a2Jfc3RhdGVfc2Vy aWFsaXplX21vZHMgKGFjdGl2ZV9rZXktPnN0YXRlLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX0RFUFJFU1NFRCB8Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBY S0JfU1RBVEVfTEFUQ0hFRCk7CisrICAgICAgICAvKiAiZGUoVDMpIiBrZXltYXAgZ2l2ZXMgdGhl IHByZXNzZWQgIkxldmVsM19TaGlmdCIga2V5c3ltIGFuZAorKyAgICAgICAgICogc2V0cyBib3Ro IE1PRDMoTGV2ZWw1KSBhbmQgTU9ENShMZXZlbDMpIHN0YXRlcyBhZnRlcgorKyAgICAgICAgICog eGtiX3N0YXRlX3VwZGF0ZV9rZXkoKSBpcyBjYWxsZWQgd2l0aCB0aGUga2V5cHJlc3MuCisrICAg ICAgICAgKiBNYXliZSBhIGJ1ZyBpbiAiZGUoVDMpIiBhbmQgc2V0cyBNT0Q1KExldmVsMykgYWdh aW4gaGVyZS4KKysgICAgICAgICAqLworKyAgICAgICAgaWYgKEdfVU5MSUtFTFkgKG5ld19tb2Rz X2RlcHJlc3NlZCAhPSBuZXcyX21vZHNfZGVwcmVzc2VkKSkgeworKyAgICAgICAgICAgIHhrYl9z dGF0ZV91cGRhdGVfbWFzayAoYWN0aXZlX2tleS0+c3RhdGUsIG5ld19tb2RzX2RlcHJlc3NlZCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIG1vZHNfbG9ja2VkLCAwLCAw LCBncm91cCk7CisrICAgICAgICB9CisrICAgIH0KKyB9CisgCisgCitAQCAtMTM1MCw2ICsxNDYy LDcgQEAgX2J1c19nbG9iYWxfZW5naW5lX2NoYW5nZWRfY2IgKElCdXNCdXMgICAgICAgKmJ1cywK KyAgICAgZ19yZXR1cm5faWZfZmFpbCAoSUJVU19JU19XQVlMQU5EX0lNICh3bGltKSk7CisgICAg IHByaXYgPSBpYnVzX3dheWxhbmRfaW1fZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHdsaW0pOworICAg ICBkZXNjID0gaWJ1c19idXNfZ2V0X2dsb2JhbF9lbmdpbmUgKGJ1cyk7CisrICAgIGlidXNfd2F5 bGFuZF9pbV9yZXNldF9tb2RpZmllcnMgKHdsaW0pOworICAgICBnX2Fzc2VydCAoZGVzYyk7Cisg ICAgIGdfYXNzZXJ0ICghZ19zdHJjbXAwIChpYnVzX2VuZ2luZV9kZXNjX2dldF9uYW1lIChkZXNj KSwgZW5naW5lX25hbWUpKTsKKyAgICAga2V5bWFwID0gY3JlYXRlX3VzZXJfeGtiX2tleW1hcCAo cHJpdi0+eGtiX2NvbnRleHQsIGRlc2MpOworQEAgLTE1MTIsNyArMTYyNSw4IEBAIGlidXNfd2F5 bGFuZF9pbV9wb3N0X2tleSAoSUJ1c1dheWxhbmRJTSAqd2xpbSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW0sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlX2tl eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmaWx0ZXJlZCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmbmV3X21vZHNfZGVwcmVzc2VkKTsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmV3X21vZHNfZGVwcmVz c2VkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZjbGVhcl92aXJ0dWFsX3N0YXRlKTsKKyAgICAgZmlsdGVyZWQgPSBpYnVzX3dheWxh bmRfaW1fY29tbWl0X2tleV9ldmVudCAod2xpbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllcnMsCitAQCAtMjM3OCw2ICsyNDkyLDcgQEAg X2NyZWF0ZV9pbnB1dF9jb250ZXh0X2RvbmUgKEdPYmplY3QgICAgICAqb2JqZWN0LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJV RSk7CisgICAgICAgICB9CisgICAgICAgICBpYnVzX2lucHV0X2NvbnRleHRfZm9jdXNfaW4gKHBy aXYtPmlidXNjb250ZXh0KTsKKysgICAgICAgIGlidXNfd2F5bGFuZF9pbV9yZXNldF9tb2RpZmll cnMgKHdsaW0pOworICAgICAgICAgZ19zaWduYWxfZW1pdCAod2xpbSwKKyAgICAgICAgICAgICAg ICAgICAgICAgIHdheWxhbmRfaW1fc2lnbmFsc1tJQlVTX0ZPQ1VTX0lOXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgIDAsCistLSAKKzIuNTMuMAorCitGcm9tIGU4MWRhOWUxMWU2ZmYzODQ3ZDZi ODRmZWMwY2ZmOWZjZjE1NjU2NjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBmdWpp d2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CitEYXRlOiBGcmksIDI5IE1heSAyMDI2 IDE3OjQzOjI2ICswOTAwCitTdWJqZWN0OiBbUEFUQ0ggNS85XSBjbGllbnQvd2F5bGFuZDogRml4 IGluZmluaXRlIGRlYWRfZGlhZXJlc2lzIHdpdGggZnIoZXJnb2wpIGtleW1hcAorCitUeXBpbmcg dGhlIGtleSA8QUQwOT4gdHdpY2UgZ2l2ZXMgZGlmZmVyZW50IGtleXN5bXMgYmV0d2VlbiBLZXlQ cmVzcworYW5kIEtleVJlbGVhc2UgZXZlbnRzIGFuZCBjYXVzZXMgdGhlIHJldmVyc2Ugb3JkZXIg b2YgS2V5UHJlc3MgYW5kCitLZXlSZWxlYXNlIG9mIHRoZSAiZGVhZF9kaWFlcmVzaXMiIGtleXN5 bS4KK05vdyBpYnVzLXdheWxhbmQgY2hlY2tzIHRoZSBzcGVjaWFsIG9yZGVyIG5vdCB0byBjYXVz ZSB0aGUga2V5IHJlcGVhdGluZy4KK0Fsc28gaWJ1cy13YXlsYW5kIHJlbGVhc2VzIHRoZSBzdGF0 ZSBvZiAiSVNPX0xldmVsNV9MYXRjaCIgd2l0aCB0eXBpbmcKK3RoZSBrZXkgPEFEMDk+IHR3aWNl LgorCitDbG9zZXM6ICMyODk0CistLS0KKyBjbGllbnQvd2F5bGFuZC9pYnVzd2F5bGFuZGltLmMg fCAyMjcgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQs IDE2MyBpbnNlcnRpb25zKCspLCA2NCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NsaWVu dC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYyBiL2NsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0u YworaW5kZXggY2Q5MmE5ODguLjFlMWUyNzJjIDEwMDY0NAorLS0tIGEvY2xpZW50L3dheWxhbmQv aWJ1c3dheWxhbmRpbS5jCisrKysgYi9jbGllbnQvd2F5bGFuZC9pYnVzd2F5bGFuZGltLmMKK0BA IC02OSw2ICs2OSwxMiBAQCB0eXBlZGVmIGVudW0geworICAgICBJQlVTX0tFWV9JU09fTEVWRUxf NQorIH0gSUJ1c0tleUlzb0xldmVsVmFsdWU7CisgCisrdHlwZWRlZiBlbnVtIHsKKysgICAgSUJV U19LRVlfSVNPX0xFVkVMX1NUQVRFX1JFTEVBU0UsCisrICAgIElCVVNfS0VZX0lTT19MRVZFTF9T VEFURV9TSElGVCwKKysgICAgSUJVU19LRVlfSVNPX0xFVkVMX1NUQVRFX0xBVENICisrfSBJQnVz S2V5SXNvTGV2ZWxTdGF0ZTsKKysKKyBzdHJ1Y3QgendwX2lucHV0X21ldGhvZF9jb250ZXh0X3Vu aW9uIHsKKyAgICAgdW5pb24geworICAgICAgICAgc3RydWN0IHp3cF9pbnB1dF9tZXRob2RfY29u dGV4dF92MSAqY29udGV4dF92MTsKK0BAIC0xNjgsMTIgKzE3NCwxNCBAQCBzdHJ1Y3QgX0lCdXNX YXlsYW5kSU1Qcml2YXRlCisgCisgICAgIElCdXNYa2JLZXltYXAga2V5X3VzZXI7CisgICAgIElC dXNYa2JLZXltYXAga2V5X3N5czsKKy0gICAgZ2Jvb2xlYW4gaXNfcHJlc3NlZF9tb2QzOworLSAg ICBnYm9vbGVhbiBpc19wcmVzc2VkX21vZDU7CisrICAgIElCdXNLZXlJc29MZXZlbFN0YXRlIGlz b19sZXZlbDNfc3RhdGU7CisrICAgIElCdXNLZXlJc29MZXZlbFN0YXRlIGlzb19sZXZlbDVfc3Rh dGU7CisgCisgICAgIHVpbnQzMl90IGltX3NlcmlhbDsKKyAgICAgaW50MzJfdCByZXBlYXRfcmF0 ZTsKKyAgICAgaW50MzJfdCByZXBlYXRfZGVsYXk7CisrICAgIHhrYl9rZXlzeW1fdCBwcmVzc2Vk X2RlYWRfa2V5OworKyAgICB4a2Jfa2V5c3ltX3QgcmVsZWFzZWRfZGVhZF9rZXlfd29fcHJlc3M7 CisgCisgICAgIEdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGU7CisgfTsKK0BAIC0zNTgsOCArMzY2 LDEwIEBAIGlidXNfd2F5bGFuZF9pbV9yZXNldF9tb2RpZmllcnMgKElCdXNXYXlsYW5kSU0gKnds aW0pCisgCisgICAgIHByaXYgPSBpYnVzX3dheWxhbmRfaW1fZ2V0X2luc3RhbmNlX3ByaXZhdGUg KHdsaW0pOworICAgICBwcml2LT5pc192aXJ0dWFsX2xhdGNoX3N0YXRlID0gRkFMU0U7CistICAg IHByaXYtPmlzX3ByZXNzZWRfbW9kMyA9IEZBTFNFOworLSAgICBwcml2LT5pc19wcmVzc2VkX21v ZDUgPSBGQUxTRTsKKysgICAgcHJpdi0+aXNvX2xldmVsNV9zdGF0ZSA9IElCVVNfS0VZX0lTT19M RVZFTF9TVEFURV9SRUxFQVNFOworKyAgICBwcml2LT5pc29fbGV2ZWw1X3N0YXRlID0gSUJVU19L RVlfSVNPX0xFVkVMX1NUQVRFX1JFTEVBU0U7CisrICAgIHByaXYtPnByZXNzZWRfZGVhZF9rZXkg PSAwOworKyAgICBwcml2LT5yZWxlYXNlZF9kZWFkX2tleV93b19wcmVzcyA9IDA7CisgICAgIGlm IChwcml2LT5rZXlfdXNlci5zdGF0ZSAmJiBwcml2LT5rZXlfc3lzLnN0YXRlKSB7CisgICAgICAg ICBncm91cCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbGF5b3V0IChwcml2LT5rZXlfc3lzLnN0YXRl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEtCX1NUQVRF X0xBWU9VVF9MT0NLRUQpOworQEAgLTQwNSw3ICs0MTUsOCBAQCBpYnVzX3dheWxhbmRfaW1fY29t bWl0X2tleV9ldmVudCAoSUJ1c1dheWxhbmRJTSAgKndsaW0sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElCdXNYa2JLZXltYXAgICphY3RpdmVfa2V5LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgZmlsdGVyZWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhrYl9tb2RfbWFza190ICpuZXdfbW9kc19kZXBy ZXNzZWQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAg ICpjbGVhcl92aXJ0dWFsX3N0YXRlKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnYm9vbGVhbiAgICAgICAqY2xlYXJfdmlydHVhbF9zdGF0ZSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgKmlzX2ludmFsaWRfa2V5KQorIHsKKyAg ICAgSUJ1c1dheWxhbmRJTVByaXZhdGUgKnByaXY7CisgICAgIHVpbnQzMl90IGNvZGUgPSBrZXkg KyA4OworQEAgLTQxNCw5ICs0MjUsNiBAQCBpYnVzX3dheWxhbmRfaW1fY29tbWl0X2tleV9ldmVu dCAoSUJ1c1dheWxhbmRJTSAgKndsaW0sCisgICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChJQlVT X0lTX1dBWUxBTkRfSU0gKHdsaW0pLCBmaWx0ZXJlZCk7CisgICAgIHByaXYgPSBpYnVzX3dheWxh bmRfaW1fZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHdsaW0pOworIAorLSAgICBpZiAoc3RhdGUgPT0g V0xfS0VZQk9BUkRfS0VZX1NUQVRFX1JFTEVBU0VEKQorLSAgICAgICAgcmV0dXJuIGZpbHRlcmVk OworLQorICAgICBjaCA9IGlidXNfa2V5dmFsX3RvX3VuaWNvZGUgKHN5bSk7CisgICAgIGlmIChj aCA9PSAwIHx8IGdfdW5pY2hhcl9pc2NudHJsIChjaCkpCisgICAgICAgICBjaCA9IHhrYl9zdGF0 ZV9rZXlfZ2V0X3V0ZjMyIChhY3RpdmVfa2V5LT5zdGF0ZSwgY29kZSk7CitAQCAtNDI5LDE0ICs0 MzcsMTkgQEAgaWJ1c193YXlsYW5kX2ltX2NvbW1pdF9rZXlfZXZlbnQgKElCdXNXYXlsYW5kSU0g ICp3bGltLAorICMgIGRlZmluZSBfSUJVU19OT19URVhUX0lOUFVUX01PRF9NQVNLIChcCisgICAg IElCVVNfQ09OVFJPTF9NQVNLIHwgSUJVU19NT0QyX01BU0sgfCBJQlVTX01PRDRfTUFTSykKKyAj ZW5kaWYKKy0gICAgaWYgKCghZmlsdGVyZWQgJiYgIShtb2RpZmllcnMgJiBfSUJVU19OT19URVhU X0lOUFVUX01PRF9NQVNLKSAmJgorLSAgICAgICAgICFnX3VuaWNoYXJfaXNjbnRybCAoY2gpKSB8 fCBmaWx0ZXJlZCkgeworLSAgICAgICAgaWYgKCFmaWx0ZXJlZCkgeworLSAgICAgICAgICAgIGdj aGFyIGJ1ZmZbOF0gPSB7IDAsIH07CistICAgICAgICAgICAgYnVmZltnX3VuaWNoYXJfdG9fdXRm OCAoY2gsIGJ1ZmYpXSA9ICdcMCc7CistICAgICAgICAgICAgaWJ1c193YXlsYW5kX2ltX2NvbW1p dF90ZXh0ICh3bGltLCBidWZmKTsKKy0gICAgICAgICAgICBmaWx0ZXJlZCA9IFRSVUU7CistICAg ICAgICB9CisrICAgIGlmICgoc3RhdGUgPT0gV0xfS0VZQk9BUkRfS0VZX1NUQVRFX1JFTEVBU0VE KSB8fAorKyAgICAgICAgKG1vZGlmaWVycyAmIF9JQlVTX05PX1RFWFRfSU5QVVRfTU9EX01BU0sp KSB7CisrICAgICAgICByZXR1cm4gZmlsdGVyZWQ7CisrICAgIH0KKysjdW5kZWYgX0lCVVNfTk9f VEVYVF9JTlBVVF9NT0RfTUFTSworKworKyAgICBpZiAoIWZpbHRlcmVkICYmICFnX3VuaWNoYXJf aXNjbnRybCAoY2gpKSB7CisrICAgICAgICBnY2hhciBidWZmWzhdID0geyAwLCB9OworKyAgICAg ICAgYnVmZltnX3VuaWNoYXJfdG9fdXRmOCAoY2gsIGJ1ZmYpXSA9ICdcMCc7CisrICAgICAgICBp YnVzX3dheWxhbmRfaW1fY29tbWl0X3RleHQgKHdsaW0sIGJ1ZmYpOworKyAgICAgICAgZmlsdGVy ZWQgPSBUUlVFOworKyAgICB9CisrICAgIGlmICghZ191bmljaGFyX2lzY250cmwgKGNoKSB8fCBJ U19ERUFEX0tFWSAoc3ltKSkgeworICAgICAgICAgLyogSWYgYGZpbHRlcmVkYCBpcyAlVFJVRSwg dGhlIGtleXN5bSBjYW4gYmUgZWF0ZW4gZm9yIHRoZSBjb21wb3NlCisgICAgICAgICAgKiBwcmVl ZGl0IGJ5IElCdXMgWEtCIGVuZ2luZS4gRS5nLiBBbHRHci1TaGlmdC1WIGtleSBwcm9kdWNlcwor ICAgICAgICAgICogYExldmVsM19TaGlmdCcgYW5kIGBHcmVla19PTUVHQWAga2V5c3ltIHdpdGgg InVzKHN5bWJvbGljKSIga2V5bWFwLgorQEAgLTQ0NSwxOSArNDU4LDQyIEBAIGlidXNfd2F5bGFu ZF9pbV9jb21taXRfa2V5X2V2ZW50IChJQnVzV2F5bGFuZElNICAqd2xpbSwKKyAgICAgICAgICAq IEknbSBub3QgY2xhcmlmaWVkIHdpdGggImxldmVsMyhyYWx0X3N3aXRjaCkiIGluIHVzIFhLQiBr ZXltYXBzLgorICAgICAgICAgICovCisgICAgICAgICBpZiAobW9kaWZpZXJzICYgSUJVU19NT0Qz X01BU0spIHsKKysgICAgICAgICAgICAvKiBXaXRoIHRoZSAiZnIoZXJnb2wpIiBrZXltYXAsIFR5 cGluZyB0aGUga2V5IDxBRDA5PiB0d2ljZQorKyAgICAgICAgICAgICAqIHByb2R1Y2VzIHRoZSAi SVNPX0xldmVsNV9MYXRjaCIga2V5c3ltIGZvciB0aGUgZmlyc3QgS2V5UHJlc3MKKysgICAgICAg ICAgICAgKiBhbmQgdGhlICJkZWFkX2RpYWVyZXNpcyIga2V5c3ltIGZvciB0aGUgZmlyc3QgS2V5 UmVsZWVhc2UKKysgICAgICAgICAgICAgKiBiZWNhdXNlIHRoZSByZWxlYXNlIGtleSBldmVudCBo YXMgTU9EMyhsZXZlbDUpIHN0YXRlLgorKyAgICAgICAgICAgICAqIEFuZCB0aGUgc2Vjb25kIEtl eVByZXNzIGhhcyB0aGUgImRlYWRfZGlhZXJlc2lzIiBrZXlzeW0gYW5kCisrICAgICAgICAgICAg ICogdGhlIHNlY29uZCBLZXlSZWxlYXNlIGhhcyB0aGUgIklTT19MZXZlbDVfTGF0Y2giIGtleXN5 bS4KKysgICAgICAgICAgICAgKiBUaGUgbGF0Y2ggc3RhdGUgc2hvdWxkIGJlIGNsZWFyZWQgd2l0 aCB0aGUgZGVhZCBrZXlzLgorKyAgICAgICAgICAgICAqIEkgZG93bmdyYWRlIHRoZSBsYXRjaCBz dGF0ZSB0byB0aGUgc2hpZnQgc3RhdGUgaGVyZSBhbmQKKysgICAgICAgICAgICAgKiB0aGUgc2hp ZnQgc3RhdGUgd2lsbCBiZSBjbGVhcmVkIGJ5IHRoZSByZWxlYXNlZAorKyAgICAgICAgICAgICAq ICJJU09fTGV2ZWw1X0xhdGNoIiBrZXlzeW0gYnV0IG5vdCB0aGUgcHJlc3NlZCBkZWFkIGtleXMK KysgICAgICAgICAgICAgKiBiZWNhdXNlIHhrYl9zdGF0ZV91cGRhdGVfa2V5KCkgd2lsbCByZXZl cnQgdGhlIE1PRDMobGV2ZWw1KQorKyAgICAgICAgICAgICAqIHN0YXRlIG9mIHRoZSBkZXByZXNz ZWQgeGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzKCkKKysgICAgICAgICAgICAgKiB3aXRoIHRoZSBk ZWFkIGtleXMuCisrICAgICAgICAgICAgICovCisrICAgICAgICAgICAgaWYgKHByaXYtPmlzb19s ZXZlbDVfc3RhdGUgPT0gSUJVU19LRVlfSVNPX0xFVkVMX1NUQVRFX0xBVENIKSB7CisrICAgICAg ICAgICAgICAgIHByaXYtPmlzb19sZXZlbDVfc3RhdGUgPSBJQlVTX0tFWV9JU09fTEVWRUxfU1RB VEVfU0hJRlQ7CisrICAgICAgICAgICAgICAgIGlmIChpc19pbnZhbGlkX2tleSkKKysgICAgICAg ICAgICAgICAgICAgICppc19pbnZhbGlkX2tleSA9IFRSVUU7CisrICAgICAgICAgICAgfSBlbHNl IGlmIChjbGVhcl92aXJ0dWFsX3N0YXRlKSB7CisrICAgICAgICAgICAgICAgICpjbGVhcl92aXJ0 dWFsX3N0YXRlID0gVFJVRTsKKysgICAgICAgICAgICB9CisgICAgICAgICAgICAgaWYgKG5ld19t b2RzX2RlcHJlc3NlZCkKKyAgICAgICAgICAgICAgICAgKm5ld19tb2RzX2RlcHJlc3NlZCAmPSB+ YWN0aXZlX2tleS0+bW9kM19tYXNrOworLSAgICAgICAgICAgIGlmIChjbGVhcl92aXJ0dWFsX3N0 YXRlKQorLSAgICAgICAgICAgICAgICAqY2xlYXJfdmlydHVhbF9zdGF0ZSA9IFRSVUU7CisgICAg ICAgICB9CisgICAgICAgICBpZiAobW9kaWZpZXJzICYgSUJVU19NT0Q1X01BU0spIHsKKysgICAg ICAgICAgICBpZiAocHJpdi0+aXNvX2xldmVsM19zdGF0ZSA9PSBJQlVTX0tFWV9JU09fTEVWRUxf U1RBVEVfTEFUQ0gpIHsKKysgICAgICAgICAgICAgICAgcHJpdi0+aXNvX2xldmVsM19zdGF0ZSA9 IElCVVNfS0VZX0lTT19MRVZFTF9TVEFURV9TSElGVDsKKysgICAgICAgICAgICAgICAgaWYgKGlz X2ludmFsaWRfa2V5KQorKyAgICAgICAgICAgICAgICAgICAgKmlzX2ludmFsaWRfa2V5ID0gVFJV RTsKKysgICAgICAgICAgICB9IGVsc2UgaWYgKGNsZWFyX3ZpcnR1YWxfc3RhdGUpIHsKKysgICAg ICAgICAgICAgICAgKmNsZWFyX3ZpcnR1YWxfc3RhdGUgPSBUUlVFOworKyAgICAgICAgICAgIH0K KyAgICAgICAgICAgICBpZiAobmV3X21vZHNfZGVwcmVzc2VkKQorICAgICAgICAgICAgICAgICAq bmV3X21vZHNfZGVwcmVzc2VkICY9IH5hY3RpdmVfa2V5LT5tb2Q1X21hc2s7CistICAgICAgICAg ICAgaWYgKGNsZWFyX3ZpcnR1YWxfc3RhdGUpCistICAgICAgICAgICAgICAgICpjbGVhcl92aXJ0 dWFsX3N0YXRlID0gVFJVRTsKKyAgICAgICAgIH0KKyAgICAgfQorLSN1bmRlZiBfSUJVU19OT19U RVhUX0lOUFVUX01PRF9NQVNLCisgICAgIHJldHVybiBmaWx0ZXJlZDsKKyB9CisgCitAQCAtNTQ3 LDcgKzU4Myw4IEBAIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF9kZXByZXNzZWQgKElC dXNXYXlsYW5kSU0gICp3bGltLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElCdXNYa2JLZXltYXAgICphY3RpdmVfa2V5LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBmaWx0ZXJlZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4a2JfbW9kX21hc2tfdCAqbW9kc19k ZXByZXNzZWQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jv b2xlYW4gICAgICAgKmNsZWFyX3ZpcnR1YWxfc3RhdGUpCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgKmNsZWFyX3ZpcnR1YWxfc3RhdGUs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAg ICAgKmlzX2ludmFsaWRfa2V5KQorIHsKKyAgICAgSUJ1c1dheWxhbmRJTVByaXZhdGUgKnByaXY7 CisgICAgIHVpbnQzMl90IGNvZGUgPSBrZXkgKyA4OworQEAgLTU2MSw2ICs1OTgsNyBAQCBpYnVz X3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxfZGVwcmVzc2VkIChJQnVzV2F5bGFuZElNICAqd2xp bSwKKyAgICAgZ19hc3NlcnQgKGFjdGl2ZV9rZXkpOworICAgICBnX2Fzc2VydCAobW9kc19kZXBy ZXNzZWQpOworICAgICBnX2Fzc2VydCAoY2xlYXJfdmlydHVhbF9zdGF0ZSk7CisrICAgIGdfYXNz ZXJ0IChpc19pbnZhbGlkX2tleSk7CisgCisgICAgIHByaXYgPSBpYnVzX3dheWxhbmRfaW1fZ2V0 X2luc3RhbmNlX3ByaXZhdGUgKHdsaW0pOworICAgICBuZXdfbW9kc19kZXByZXNzZWQgPSAqbW9k c19kZXByZXNzZWQ7CitAQCAtNTg1LDEzICs2MjMsMTkgQEAgaWJ1c193YXlsYW5kX2ltX3VwZGF0 ZV92aXJ0dWFsX2RlcHJlc3NlZCAoSUJ1c1dheWxhbmRJTSAgKndsaW0sCisgICAgICAgICBpZiAo c3RhdGUgPT0gV0xfS0VZQk9BUkRfS0VZX1NUQVRFX1BSRVNTRUQpIHsKKyAgICAgICAgICAgICBz d2l0Y2ggKHN5bSkgeworICAgICAgICAgICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVsM19MYXRj aDoKKysgICAgICAgICAgICAgICAgcHJpdi0+aXNvX2xldmVsM19zdGF0ZSA9IElCVVNfS0VZX0lT T19MRVZFTF9TVEFURV9MQVRDSDsKKysgICAgICAgICAgICAgICAgbmV3X21vZHNfZGVwcmVzc2Vk IHw9IGFjdGl2ZV9rZXktPm1vZDVfbWFzazsKKysgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICAgICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2ZWwzX1NoaWZ0OgorLSAgICAgICAgICAgICAg ICBwcml2LT5pc19wcmVzc2VkX21vZDUgPSBUUlVFOworKyAgICAgICAgICAgICAgICBwcml2LT5p c29fbGV2ZWwzX3N0YXRlID0gSUJVU19LRVlfSVNPX0xFVkVMX1NUQVRFX1NISUZUOworICAgICAg ICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgfD0gYWN0aXZlX2tleS0+bW9kNV9tYXNrOwor ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICBjYXNlIElCVVNfS0VZX0lTT19M ZXZlbDVfTGF0Y2g6CisrICAgICAgICAgICAgICAgIHByaXYtPmlzb19sZXZlbDVfc3RhdGUgPSBJ QlVTX0tFWV9JU09fTEVWRUxfU1RBVEVfTEFUQ0g7CisrICAgICAgICAgICAgICAgIG5ld19tb2Rz X2RlcHJlc3NlZCB8PSBhY3RpdmVfa2V5LT5tb2QzX21hc2s7CisrICAgICAgICAgICAgICAgIGJy ZWFrOworICAgICAgICAgICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVsNV9TaGlmdDoKKy0gICAg ICAgICAgICAgICAgcHJpdi0+aXNfcHJlc3NlZF9tb2QzID0gVFJVRTsKKysgICAgICAgICAgICAg ICAgcHJpdi0+aXNvX2xldmVsNV9zdGF0ZSA9IElCVVNfS0VZX0lTT19MRVZFTF9TVEFURV9TSElG VDsKKyAgICAgICAgICAgICAgICAgbmV3X21vZHNfZGVwcmVzc2VkIHw9IGFjdGl2ZV9rZXktPm1v ZDNfbWFzazsKKyAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgZGVmYXVsdDoK K0BAIC02MDIsNjEgKzY0Niw3MCBAQCBpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxfZGVw cmVzc2VkIChJQnVzV2F5bGFuZElNICAqd2xpbSwKKyAgICAgICAgICAgICBmaWx0ZXJlZCA9IFRS VUU7CisgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgIElCdXNLZXlJc29MZXZlbFZhbHVl IGN1cnJlbnRfbGV2ZWwgPSBJQlVTX0tFWV9JU09fTEVWRUxfSU5WQUxJRDsKKy0gICAgICAgICAg ICBnYm9vbGVhbiAqaXNfcHJlc3NlZF9jdXJyZW50X21vZCA9IE5VTEw7CistICAgICAgICAgICAg Z2Jvb2xlYW4gKmlzX3ByZXNzZWRfcmV2ZXJzZV9tb2QgPSBOVUxMOworLSAgICAgICAgICAgIHhr Yl9tb2RfbWFza190IGN1cnJlbnRfbW9kZV9tYXNrID0gMDsKKy0gICAgICAgICAgICB4a2JfbW9k X21hc2tfdCByZXZlcnNlX21vZGVfbWFzayA9IDA7CisrICAgICAgICAgICAgSUJ1c0tleUlzb0xl dmVsU3RhdGUgKmN1cnJlbnRfc3RhdGUgPSBOVUxMOworKyAgICAgICAgICAgIElCdXNLZXlJc29M ZXZlbFN0YXRlICpyZXZlcnNlX3N0YXRlID0gTlVMTDsKKyAgICAgICAgICAgICBzd2l0Y2ggKHN5 bSkgeworICAgICAgICAgICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVsM19MYXRjaDoKKyAgICAg ICAgICAgICBjYXNlIElCVVNfS0VZX0lTT19MZXZlbDNfU2hpZnQ6CisgICAgICAgICAgICAgICAg IGN1cnJlbnRfbGV2ZWwgPSBJQlVTX0tFWV9JU09fTEVWRUxfMzsKKy0gICAgICAgICAgICAgICAg aXNfcHJlc3NlZF9jdXJyZW50X21vZCA9ICZwcml2LT5pc19wcmVzc2VkX21vZDU7CistICAgICAg ICAgICAgICAgIGlzX3ByZXNzZWRfcmV2ZXJzZV9tb2QgPSAmcHJpdi0+aXNfcHJlc3NlZF9tb2Qz OworLSAgICAgICAgICAgICAgICBjdXJyZW50X21vZGVfbWFzayA9IGFjdGl2ZV9rZXktPm1vZDVf bWFzazsKKy0gICAgICAgICAgICAgICAgcmV2ZXJzZV9tb2RlX21hc2sgPSBhY3RpdmVfa2V5LT5t b2QzX21hc2s7CisrICAgICAgICAgICAgICAgIGN1cnJlbnRfc3RhdGUgPSAmcHJpdi0+aXNvX2xl dmVsM19zdGF0ZTsKKysgICAgICAgICAgICAgICAgcmV2ZXJzZV9zdGF0ZSA9ICZwcml2LT5pc29f bGV2ZWw1X3N0YXRlOworICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICBjYXNl IElCVVNfS0VZX0lTT19MZXZlbDVfTGF0Y2g6CisgICAgICAgICAgICAgY2FzZSBJQlVTX0tFWV9J U09fTGV2ZWw1X1NoaWZ0OgorICAgICAgICAgICAgICAgICBjdXJyZW50X2xldmVsID0gSUJVU19L RVlfSVNPX0xFVkVMXzU7CistICAgICAgICAgICAgICAgIGlzX3ByZXNzZWRfY3VycmVudF9tb2Qg PSAmcHJpdi0+aXNfcHJlc3NlZF9tb2QzOworLSAgICAgICAgICAgICAgICBpc19wcmVzc2VkX3Jl dmVyc2VfbW9kID0gJnByaXYtPmlzX3ByZXNzZWRfbW9kNTsKKy0gICAgICAgICAgICAgICAgY3Vy cmVudF9tb2RlX21hc2sgPSBhY3RpdmVfa2V5LT5tb2QzX21hc2s7CistICAgICAgICAgICAgICAg IHJldmVyc2VfbW9kZV9tYXNrID0gYWN0aXZlX2tleS0+bW9kNV9tYXNrOworKyAgICAgICAgICAg ICAgICBjdXJyZW50X3N0YXRlID0gJnByaXYtPmlzb19sZXZlbDVfc3RhdGU7CisrICAgICAgICAg ICAgICAgIHJldmVyc2Vfc3RhdGUgPSAmcHJpdi0+aXNvX2xldmVsM19zdGF0ZTsKKyAgICAgICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgZGVmYXVsdDo7CisgICAgICAgICAgICAgfQor ICAgICAgICAgICAgIGdfYXNzZXJ0IChjdXJyZW50X2xldmVsICE9IElCVVNfS0VZX0lTT19MRVZF TF9JTlZBTElEKTsKKy0gICAgICAgICAgICBnX2Fzc2VydCAoaXNfcHJlc3NlZF9jdXJyZW50X21v ZCAmJiBpc19wcmVzc2VkX3JldmVyc2VfbW9kKTsKKy0gICAgICAgICAgICBpZiAoR19MSUtFTFkg KCppc19wcmVzc2VkX2N1cnJlbnRfbW9kKSkgeworLSAgICAgICAgICAgICAgICAqaXNfcHJlc3Nl ZF9jdXJyZW50X21vZCA9IEZBTFNFOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAoKmlzX3ByZXNz ZWRfcmV2ZXJzZV9tb2QgJiYKKy0gICAgICAgICAgICAgICAgICAgICAgIChuZXdfbW9kc19kZXBy ZXNzZWQgJiBhY3RpdmVfa2V5LT5tb2QzX21hc2spKSB7CisrICAgICAgICAgICAgZ19hc3NlcnQg KGN1cnJlbnRfc3RhdGUgJiYgcmV2ZXJzZV9zdGF0ZSk7CisrICAgICAgICAgICAgLyogVGhlICJs dih0aWxkZSkiIGtleW1hcCBnaXZlcyB0aGUgIkxldmVsM19TaGlmdCIga2V5c3ltCisrICAgICAg ICAgICAgICogd2l0aCB0aGUga2V5IDxSQUxUPi4KKysgICAgICAgICAgICAgKgorKyAgICAgICAg ICAgICAqIEhhbmRsZSB0aGUgIklTT19MZXZlbDVfTGF0Y2giIGtleXN5bSBpbiB0aGUgImZyKGVy Z29sKSIga2V5bWFwLgorKyAgICAgICAgICAgICAqIERvIG5vdCB1c2Uga2V5c3ltIGJ1dCBgY3Vy cmVudF9zdGF0ZWAgYmVjYXVzZSB0aGUgbGF0Y2ggc3RhdGUKKysgICAgICAgICAgICAgKiBjYW4g YmUgY2hhbmdlZCB0byB0aGUgc2hpZnQgc3RhdGUgd2l0aCBzb21lIGtleSBjb25kaXRpb25zLgor KyAgICAgICAgICAgICAqLworKyAgICAgICAgICAgIGlmICgqY3VycmVudF9zdGF0ZSA9PSBJQlVT X0tFWV9JU09fTEVWRUxfU1RBVEVfU0hJRlQpIHsKKysgICAgICAgICAgICAgICAgKmN1cnJlbnRf c3RhdGUgPSBJQlVTX0tFWV9JU09fTEVWRUxfU1RBVEVfUkVMRUFTRTsKKysgICAgICAgICAgICAg ICAgaWYgKGN1cnJlbnRfbGV2ZWwgPT0gSUJVU19LRVlfSVNPX0xFVkVMXzMpCisrICAgICAgICAg ICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgJj0gfmFjdGl2ZV9rZXktPm1vZDVfbWFzazsK KysgICAgICAgICAgICAgICAgZWxzZSBpZiAoY3VycmVudF9sZXZlbCA9PSBJQlVTX0tFWV9JU09f TEVWRUxfNSkKKysgICAgICAgICAgICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCAmPSB+YWN0 aXZlX2tleS0+bW9kM19tYXNrOworKyAgICAgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAg ICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCAoKTsKKysgICAgICAgICAgICAgICAgaWYgKHN5 bSAhPSBzeXN0ZW1fc3ltKQorKyAgICAgICAgICAgICAgICAgICAgKmNsZWFyX3ZpcnR1YWxfc3Rh dGUgPSBUUlVFOworKyAgICAgICAgICAgIH0gZWxzZSBpZiAoISpjdXJyZW50X3N0YXRlICYmICpy ZXZlcnNlX3N0YXRlICYmCisrICAgICAgICAgICAgICAgICAgICAgICAoKChjdXJyZW50X2xldmVs ID09IElCVVNfS0VZX0lTT19MRVZFTF8zKSAmJgorKyAgICAgICAgICAgICAgICAgICAgICAgICAo bmV3X21vZHNfZGVwcmVzc2VkICYgYWN0aXZlX2tleS0+bW9kM19tYXNrKSkgfHwKKysgICAgICAg ICAgICAgICAgICAgICAgICAoKGN1cnJlbnRfbGV2ZWwgPT0gSUJVU19LRVlfSVNPX0xFVkVMXzUp ICYmCisrICAgICAgICAgICAgICAgICAgICAgICAgIChuZXdfbW9kc19kZXByZXNzZWQgJiBhY3Rp dmVfa2V5LT5tb2Q1X21hc2spKQorKyAgICAgICAgICAgICAgICAgICAgICAgKSkgeworICAgICAg ICAgICAgICAgICAvKiBUaGUgdW5saWtlbHkgY2FzZSAhcHJpdi0+aXNfcHJlc3NlZF9tb2QzIGFu ZAorICAgICAgICAgICAgICAgICAgKiBwcml2LT5pc19wcmVzc2VkX21vZDUgbWVhbnMgdGhhdCAi ZGUoVDMpIiBrZXltYXAgZ2l2ZXMKKyAgICAgICAgICAgICAgICAgICogdGhlIHByZXNzZWQgIkxl dmVsM19TaGlmdCIga2V5c3ltIGFuZAorICAgICAgICAgICAgICAgICAgKiB0aGUgcmVsZWFzZWQg IkxldmVsNV9MYXRjaCIga2V5c3ltIGZvciB0aGUga2V5IDxSQUxUPi4KKy0gICAgICAgICAgICAg ICAgICogTWF5YmUgYSBidWcgaW4gImRlKFQzKSIgc28gbmVlZCB0byBjbGVhciB0aGUgTU9ENSBz dGF0ZQorLSAgICAgICAgICAgICAgICAgKiBieSB0aGUgcHJlc3NlZCAiTGV2ZWwzX1NoaWZ0IiBr ZXlzeW0uCisrICAgICAgICAgICAgICAgICAqIFRoaXMgY2FzZSBjYW4gaGFwcGVuIGlmIHRoZSBu b3JtYWwga2V5c3ltIGFuZCBzaGlmdCBrZXlzeW0KKysgICAgICAgICAgICAgICAgICogYXJlIGRp ZmZlcmVudC4KKyAgICAgICAgICAgICAgICAgICovCistICAgICAgICAgICAgICAgICppc19wcmVz c2VkX3JldmVyc2VfbW9kID0gRkFMU0U7CistICAgICAgICAgICAgICAgIG5ld19tb2RzX2RlcHJl c3NlZCAmPSB+cmV2ZXJzZV9tb2RlX21hc2s7CisrICAgICAgICAgICAgICAgICpyZXZlcnNlX3N0 YXRlID0gSUJVU19LRVlfSVNPX0xFVkVMX1NUQVRFX1JFTEVBU0U7CisrICAgICAgICAgICAgICAg ICppc19pbnZhbGlkX2tleSA9IFRSVUU7CisrICAgICAgICAgICAgICAgIGlmIChjdXJyZW50X2xl dmVsID09IElCVVNfS0VZX0lTT19MRVZFTF8zKQorKyAgICAgICAgICAgICAgICAgICAgbmV3X21v ZHNfZGVwcmVzc2VkICY9IH5hY3RpdmVfa2V5LT5tb2QzX21hc2s7CisrICAgICAgICAgICAgICAg IGVsc2UgaWYgKGN1cnJlbnRfbGV2ZWwgPT0gSUJVU19LRVlfSVNPX0xFVkVMXzUpCisrICAgICAg ICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgJj0gfmFjdGl2ZV9rZXktPm1vZDVfbWFz azsKKysgICAgICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgICAgICAgZ19hc3NlcnRf bm90X3JlYWNoZWQgKCk7CisgICAgICAgICAgICAgICAgICpjbGVhcl92aXJ0dWFsX3N0YXRlID0g VFJVRTsKKyAgICAgICAgICAgICAgICAgZ19kZWJ1ZyAoIkdvdCBhIHdyb25nIHJlbGVhc2VkICVz IGtleSB3aXRob3V0IHRoZSAiCistICAgICAgICAgICAgICAgICAgICAgICAgICJwcmVzc2VkIG9u ZS4gTWF5YmUgYSBidWcgaW4gWEtCLiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICJwcmVz c2VkIG9uZS4gTWF5YmUgdGhlIG5leHQgU2hpZnQgc3RhdGUgd2lsbCAiCisrICAgICAgICAgICAg ICAgICAgICAgICAgICJwcm9kdWNlIHRoZSBkZWxheWVkIHByZXNzZWQgb25lLiIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfbGV2ZWwgPT0gSUJVU19LRVlfSVNPX0xFVkVMXzMg PworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMZXZlbDMiIDogIkxldmVsNSIp OworICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAvKiBUaGUgImx2KHRpbGRlKSIga2V5bWFw IGdpdmVzIHRoZSAiTGV2ZWwzX1NoaWZ0IiBrZXlzeW0KKy0gICAgICAgICAgICAgKiB3aXRoIHRo ZSBrZXkgPFJBTFQ+LgorLSAgICAgICAgICAgICAqLworLSAgICAgICAgICAgIGlmICgoY3VycmVu dF9sZXZlbCA9PSBJQlVTX0tFWV9JU09fTEVWRUxfMyAmJgorLSAgICAgICAgICAgICAgICAgc3lt ID09IElCVVNfS0VZX0lTT19MZXZlbDNfU2hpZnQpIHx8CistICAgICAgICAgICAgICAgIChjdXJy ZW50X2xldmVsID09IElCVVNfS0VZX0lTT19MRVZFTF81ICYmCistICAgICAgICAgICAgICAgICBz eW0gPT0gSUJVU19LRVlfSVNPX0xldmVsNV9TaGlmdCkpIHsKKy0gICAgICAgICAgICAgICAgbmV3 X21vZHNfZGVwcmVzc2VkICY9IH5jdXJyZW50X21vZGVfbWFzazsKKy0gICAgICAgICAgICAgICAg aWYgKHN5bSAhPSBzeXN0ZW1fc3ltKQorLSAgICAgICAgICAgICAgICAgICAgY2xlYXJfdmlydHVh bF9zdGF0ZSA9IFRSVUU7CistICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgICAgYnJl YWs7CisgICAgIGNhc2UgSUJVU19LRVlfU2hpZnRfTDoKK0BAIC02OTUsNyArNzQ4LDggQEAgaWJ1 c193YXlsYW5kX2ltX3VwZGF0ZV92aXJ0dWFsX3hrYl9zdGF0ZSAoSUJ1c1dheWxhbmRJTSAqd2xp bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQnVzWGtiS2V5 bWFwICphY3RpdmVfa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHhrYl9tb2RfbWFza190IG1vZHNfZGVwcmVzc2VkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHhrYl9tb2RfbWFza190IG5ld19tb2RzX2RlcHJlc3NlZCwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAg ICBjbGVhcl92aXJ0dWFsX3N0YXRlKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdib29sZWFuICAgICAgIGNsZWFyX3ZpcnR1YWxfc3RhdGUsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgaXNfaW52YWxp ZF9rZXkpCisgeworICAgICBJQnVzV2F5bGFuZElNUHJpdmF0ZSAqcHJpdjsKKyAgICAgdWludDMy X3QgY29kZSA9IGtleSArIDg7CitAQCAtNzI0LDggKzc3OCw5IEBAIGlidXNfd2F5bGFuZF9pbV91 cGRhdGVfdmlydHVhbF94a2Jfc3RhdGUgKElCdXNXYXlsYW5kSU0gKndsaW0sCisgICAgICAgICBp ZiAoY2xlYXJfdmlydHVhbF9zdGF0ZSkKKyAgICAgICAgICAgICBwcml2LT5pc192aXJ0dWFsX2xh dGNoX3N0YXRlID0gRkFMU0U7CisgICAgIH0KKy0gICAgaWYgKCFwcml2LT5pc192aXJ0dWFsX2xh dGNoX3N0YXRlIHx8CistICAgICAgICAoc3RhdGUgIT0gV0xfS0VZQk9BUkRfS0VZX1NUQVRFX1JF TEVBU0VEKSkgeworKyAgICBpZiAoR19MSUtFTFkgKCFpc19pbnZhbGlkX2tleSkgJiYKKysgICAg ICAgICghcHJpdi0+aXNfdmlydHVhbF9sYXRjaF9zdGF0ZSB8fAorKyAgICAgICAgIChzdGF0ZSAh PSBXTF9LRVlCT0FSRF9LRVlfU1RBVEVfUkVMRUFTRUQpKSkgeworICAgICAgICAgeGtiX3N0YXRl X3VwZGF0ZV9rZXkgKGFjdGl2ZV9rZXktPnN0YXRlLCBjb2RlLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChzdGF0ZSA9PSBXTF9LRVlCT0FSRF9LRVlfU1RBVEVfUkVMRUFTRUQpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBYS0JfS0VZX1VQIDogWEtCX0tFWV9ET1dO KTsKK0BAIC03NDAsNyArNzk1LDggQEAgaWJ1c193YXlsYW5kX2ltX3VwZGF0ZV92aXJ0dWFsX3hr Yl9zdGF0ZSAoSUJ1c1dheWxhbmRJTSAqd2xpbSwKKyAgICAgICAgIC8qICJkZShUMykiIGtleW1h cCBnaXZlcyB0aGUgcHJlc3NlZCAiTGV2ZWwzX1NoaWZ0IiBrZXlzeW0gYW5kCisgICAgICAgICAg KiBzZXRzIGJvdGggTU9EMyhMZXZlbDUpIGFuZCBNT0Q1KExldmVsMykgc3RhdGVzIGFmdGVyCisg ICAgICAgICAgKiB4a2Jfc3RhdGVfdXBkYXRlX2tleSgpIGlzIGNhbGxlZCB3aXRoIHRoZSBrZXlw cmVzcy4KKy0gICAgICAgICAqIE1heWJlIGEgYnVnIGluICJkZShUMykiIGFuZCBzZXRzIE1PRDUo TGV2ZWwzKSBhZ2FpbiBoZXJlLgorKyAgICAgICAgICogRklYTUU6IFNob3VsZCBzZXQgYGlzX2lu dmFsaWRfa2V5YCBpbiB0aGlzIGNhc2Ugb2YgdGhlICJkZShUMykiCisrICAgICAgICAgKiBrZXlt YXAgdG9vIG5vdCB0byBjYWxsIHhrYl9zdGF0ZV91cGRhdGVfa2V5KCkgaGVyZT8KKyAgICAgICAg ICAqLworICAgICAgICAgaWYgKEdfVU5MSUtFTFkgKG5ld19tb2RzX2RlcHJlc3NlZCAhPSBuZXcy X21vZHNfZGVwcmVzc2VkKSkgeworICAgICAgICAgICAgIHhrYl9zdGF0ZV91cGRhdGVfbWFzayAo YWN0aXZlX2tleS0+c3RhdGUsIG5ld19tb2RzX2RlcHJlc3NlZCwKK0BAIC0xNTkxLDYgKzE2NDcs NyBAQCBpYnVzX3dheWxhbmRfaW1fcG9zdF9rZXkgKElCdXNXYXlsYW5kSU0gKndsaW0sCisgICAg IElCdXNYa2JLZXltYXAgKmFjdGl2ZV9rZXk7CisgICAgIHhrYl9tb2RfbWFza190IG1vZHNfZGVw cmVzc2VkLCBuZXdfbW9kc19kZXByZXNzZWQ7CisgICAgIGdib29sZWFuIGNsZWFyX3ZpcnR1YWxf c3RhdGUgPSBGQUxTRTsKKysgICAgZ2Jvb2xlYW4gaXNfaW52YWxpZF9rZXkgPSBGQUxTRTsKKyAK KyAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKElCVVNfSVNfV0FZTEFORF9JTSAod2xpbSksIEZB TFNFKTsKKyAgICAgcHJpdiA9IGlidXNfd2F5bGFuZF9pbV9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAo d2xpbSk7CitAQCAtMTYyNiw3ICsxNjgzLDggQEAgaWJ1c193YXlsYW5kX2ltX3Bvc3Rfa2V5IChJ QnVzV2F5bGFuZElNICp3bGltLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZV9rZXksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyZWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ld19tb2Rz X2RlcHJlc3NlZCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmY2xlYXJfdmlydHVhbF9zdGF0ZSk7CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNsZWFyX3ZpcnR1YWxfc3Rh dGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmlzX2ludmFsaWRfa2V5KTsKKyAgICAgZmlsdGVyZWQgPSBpYnVzX3dheWxhbmRfaW1f Y29tbWl0X2tleV9ldmVudCAod2xpbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtb2RpZmllcnMsCitAQCAtMTYzNSwxNCArMTY5MywxNiBAQCBpYnVz X3dheWxhbmRfaW1fcG9zdF9rZXkgKElCdXNXYXlsYW5kSU0gKndsaW0sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZV9rZXksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmV3X21vZHNf ZGVwcmVzc2VkLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmY2xlYXJfdmlydHVhbF9zdGF0ZSk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZjbGVhcl92aXJ0dWFsX3N0YXRlLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaXNfaW52YWxpZF9rZXkpOwor ICAgICBpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxfeGtiX3N0YXRlICh3bGltLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVfa2V5LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RzX2RlcHJlc3NlZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X21vZHNf ZGVwcmVzc2VkLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjbGVhcl92aXJ0dWFsX3N0YXRlKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2xlYXJfdmlydHVhbF9zdGF0ZSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfaW52YWxpZF9rZXkpOworICAgICByZXR1cm4g ZmlsdGVyZWQ7CisgfQorIAorQEAgLTIwMjEsNiArMjA4MSwyMSBAQCBrZXlfZXZlbnRfY2hlY2tf cmVwZWF0IChJQnVzV2F5bGFuZElNICAgICAgICp3bGltLAorICAgICAgICAgZ19jbGVhcl9wb2lu dGVyICgmcmVwZWF0aW5nX2V2ZW50LmlidXNfb2JqZWN0X3BhdGgsIGdfZnJlZSk7CisgICAgICAg ICBpZiAoIXByaXYtPmlidXNjb250ZXh0KQorICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKKysg ICAgICAgIGlmIChJU19ERUFEX0tFWSAoZXZlbnQtPnN5bSkpIHsKKysgICAgICAgICAgICAvKiBX aXRoICJmcihlcmdvbCkiIGtleW1hcCwgaW4gY2FzZSB0aGF0IGtleSA8QUQwOT4gaXMgdHlwZWQK KysgICAgICAgICAgICAgKiB0d2ljZSwgdGhlIHNlY29uZCBwcmVzc2VkIGtleXN5bSBpcyAiZGVh ZF9kaWFlcmVzaXMiIGFuZAorKyAgICAgICAgICAgICAqIHRoZSBzZWNvbmQgcmVsZWFzZWQga2V5 c3ltIGlzICJJU09fTGV2ZWw1X0xhdGNoIi4KKysgICAgICAgICAgICAgKiBUaGUga2V5c3ltICJk ZWFkX2RpYWVyZXNpcyIgc2hvdWxkIG5vdCBiZSBhdXRvLXJlcGVhdGVkCisrICAgICAgICAgICAg ICogaW4gdGhpcyBjYXNlLgorKyAgICAgICAgICAgICAqLworKyAgICAgICAgICAgIGlmIChwcml2 LT5yZWxlYXNlZF9kZWFkX2tleV93b19wcmVzcyA9PSBldmVudC0+c3ltKSB7CisrICAgICAgICAg ICAgICAgIHByaXYtPnJlbGVhc2VkX2RlYWRfa2V5X3dvX3ByZXNzID0gMDsKKysgICAgICAgICAg ICAgICAgcmV0dXJuIFRSVUU7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIHByaXYtPnBy ZXNzZWRfZGVhZF9rZXkgPSBldmVudC0+c3ltOworKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAg ICAgICBwcml2LT5yZWxlYXNlZF9kZWFkX2tleV93b19wcmVzcyA9IDA7CisrICAgICAgICB9Cisg ICAgICAgICBzb3VyY2UgPSBnX3RpbWVvdXRfc291cmNlX25ldyAocHJpdi0+cmVwZWF0X2RlbGF5 KTsKKyAgICAgICAgIGdfc291cmNlX2F0dGFjaCAoc291cmNlLCBOVUxMKTsKKyAgICAgICAgIGdf c291cmNlX3VucmVmIChzb3VyY2UpOworQEAgLTIwMzQsNiArMjEwOSwzMCBAQCBrZXlfZXZlbnRf Y2hlY2tfcmVwZWF0IChJQnVzV2F5bGFuZElNICAgICAgICp3bGltLAorICAgICAgICAgZ19zb3Vy Y2Vfc2V0X2NhbGxiYWNrIChzb3VyY2UsIF9wcm9jZXNzX2tleV9ldmVudF9yZXBlYXRfZGVsYXlf Y2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZXBlYXRpbmdfZXZlbnQsIE5V TEwpOworICAgICB9IGVsc2UgeworKyAgICAgICAgaWYgKGV2ZW50LT5zeW0gIT0gcmVwZWF0aW5n X2V2ZW50LnN5bSkgeworKyAgICAgICAgICAgIGlmIChJU19ERUFEX0tFWSAoZXZlbnQtPnN5bSkp IHsKKysgICAgICAgICAgICAgICAgaWYgKGV2ZW50LT5zeW0gPT0gcHJpdi0+cHJlc3NlZF9kZWFk X2tleSkgeworKyAgICAgICAgICAgICAgICAgICAgcHJpdi0+cHJlc3NlZF9kZWFkX2tleSA9IDA7 CisrICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXByaXYtPnByZXNzZWRfZGVhZF9rZXkpIHsK KysgICAgICAgICAgICAgICAgICAgIC8qIFdpdGggImZyKGVyZ29sKSIga2V5bWFwLCBpbiBjYXNl IHRoYXQga2V5IDxBRDA5PiBpcworKyAgICAgICAgICAgICAgICAgICAgICogdHlwZWQgdHdpY2Us IHRoZSBmaXJzdCBwcmVzc2VkIGtleXN5bSBpcworKyAgICAgICAgICAgICAgICAgICAgICogIklT T19MZXZlbDVfTGF0Y2giIGFuZCB0aGUgZmlyc3QgcmVsZWFzZWQga2V5c3ltIGlzCisrICAgICAg ICAgICAgICAgICAgICAgKiAiZGVhZF9kaWFlcmVzaXMiIHdpdGggdGhlIE1PRDModGhlIGxldmVs NSkgbWFzaywKKysgICAgICAgICAgICAgICAgICAgICAqIHRoZSBzZWNvbmQgcHJlc3NlZCBrZXlz eW0gaXMgImRlYWRfZGlhZXJlc2lzIiBhbmQKKysgICAgICAgICAgICAgICAgICAgICAqIHRoZSBz ZWNvbmQgcmVsZWFzZWQga2V5c3ltIGlzICJJU09fTGV2ZWw1X0xhdGNoIi4KKysgICAgICAgICAg ICAgICAgICAgICAqIFNvIHRoZSBmaXJzdCByZWxlYXNlZCAiZGVhZF9kaWFlcmVzaXMiIGlzIGlu dmFsaWQgYW5kCisrICAgICAgICAgICAgICAgICAgICAgKiB0aGUgc2Vjb25kIHByZXNzZWQgImRl YWRfZGlhZXJlc2lzIiBzaG91bGQgYmUgcmVsZWFzZWQKKysgICAgICAgICAgICAgICAgICAgICAq IGltbWVkaWF0ZWx5LgorKyAgICAgICAgICAgICAgICAgICAgICovCisrICAgICAgICAgICAgICAg ICAgICBwcml2LT5yZWxlYXNlZF9kZWFkX2tleV93b19wcmVzcyA9IGV2ZW50LT5zeW07CisrICAg ICAgICAgICAgICAgIH0KKysgICAgICAgICAgICB9CisrICAgICAgICB9IGVsc2UgaWYgKElTX0RF QURfS0VZIChyZXBlYXRpbmdfZXZlbnQuc3ltKSkgeworKyAgICAgICAgICAgIGlmIChyZXBlYXRp bmdfZXZlbnQuc3ltID09IHByaXYtPnByZXNzZWRfZGVhZF9rZXkpCisrICAgICAgICAgICAgICAg IHByaXYtPnByZXNzZWRfZGVhZF9rZXkgPSAwOworKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAg ICAgICBwcml2LT5yZWxlYXNlZF9kZWFkX2tleV93b19wcmVzcyA9IDA7CisrICAgICAgICB9Cisg ICAgICAgICBpZiAocmVwZWF0aW5nX2V2ZW50LnJlcGVhdF9yYXRlX2lkKSB7CisgICAgICAgICAg ICAgZ19zb3VyY2VfcmVtb3ZlIChyZXBlYXRpbmdfZXZlbnQucmVwZWF0X3JhdGVfaWQpOworICAg ICAgICAgICAgIHJlcGVhdGluZ19ldmVudC5yZXBlYXRfcmF0ZV9pZCA9IDA7CistLSAKKzIuNTMu MAorCitGcm9tIDY2YzNiNGEwMmU5NzVjMjMwZWQ4ZWFhYjNkZDAzMTFlNDBkYTdiN2IgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFp bC5jb20+CitEYXRlOiBGcmksIDI5IE1heSAyMDI2IDE3OjQzOjM1ICswOTAwCitTdWJqZWN0OiBb UEFUQ0ggNi85XSBjbGllbnQvd2F5bGFuZDogSW1wbGVtZW50IElCdXNXYXlsYW5kSU06dXNlLXN5 c3RlbS1rZXltYXAKKworU3VwcG9ydCB0byB1c2UgdGhlIHNlc3Npb24ga2V5bWFwIGZvcmNpYmx5 IHJlZ2FyZGxlc3Mgb2YgSUJ1cyBYS0IKK2VuZ2luZXMuIEFsc28gbGV0IGVhY2ggYXBwbGljYXRp b24gaGFuZGxlIEFTQ0lJIGtleXMgc2luY2UgdGhlIFdheWxhbmQKK2lucHV0LW1ldGhvZCBwcm90 b2NvbCBkb2VzIG5vdCBzdXBwb3J0IHRvIGhhbmRsZSBrZXlzIGFmdGVyIGFwcGxpY2F0aW9ucwor aGFuZGxlIG9uZS4KKy0tLQorIGNsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYyB8IDQzICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMzggaW5z ZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NsaWVudC93YXlsYW5k L2lidXN3YXlsYW5kaW0uYyBiL2NsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYworaW5kZXgg MWUxZTI3MmMuLjU3NjJmMTBiIDEwMDY0NAorLS0tIGEvY2xpZW50L3dheWxhbmQvaWJ1c3dheWxh bmRpbS5jCisrKysgYi9jbGllbnQvd2F5bGFuZC9pYnVzd2F5bGFuZGltLmMKK0BAIC00Nyw3ICs0 Nyw4IEBAIGVudW0geworICAgICBQUk9QX0JVUywKKyAgICAgUFJPUF9ESVNQTEFZLAorICAgICBQ Uk9QX0xPRywKKy0gICAgUFJPUF9WRVJCT1NFCisrICAgIFBST1BfVkVSQk9TRSwKKysgICAgUFJP UF9VU0VfU1lTX0tFWU1BUAorIH07CisgCisgZW51bSB7CitAQCAtMTM4LDYgKzEzOSw3IEBAIHN0 cnVjdCBfSUJ1c1dheWxhbmRJTVByaXZhdGUKKyB7CisgICAgIEZJTEUgKmxvZzsKKyAgICAgZ2Jv b2xlYW4gdmVyYm9zZTsKKysgICAgZ2Jvb2xlYW4gdXNlX3N5c19rZXltYXA7CisgICAgIHN0cnVj dCB3bF9kaXNwbGF5ICpkaXNwbGF5OworICAgICBJTVByb3RvY29sVmVyc2lvbiB2ZXJzaW9uOwor IAorQEAgLTQ0Myw3ICs0NDUsMTYgQEAgaWJ1c193YXlsYW5kX2ltX2NvbW1pdF9rZXlfZXZlbnQg KElCdXNXYXlsYW5kSU0gICp3bGltLAorICAgICB9CisgI3VuZGVmIF9JQlVTX05PX1RFWFRfSU5Q VVRfTU9EX01BU0sKKyAKKy0gICAgaWYgKCFmaWx0ZXJlZCAmJiAhZ191bmljaGFyX2lzY250cmwg KGNoKSkgeworKyAgICAvKiBJbiBjYXNlIGB1c2Vfc3lzX2tleW1hcGAgaXMgJVRSVUUsIElCdXMg ZG9lcyBub3QgY29tbWl0IEFTQ0lJIGNoYXJzCisrICAgICAqIGJ1dCBmb3J3YXJkcyB0aGUga2V5 IGV2ZW50cyB0byB0aGUgZm9jdXNlZCBhcHBsaWNhdGlvbiBoZXJlLgorKyAgICAgKiBCZWNhdXNl IHNvbWUgYXBwbGljYXRpb25zIHRyZWF0IHRoZSBwcmludGFibGUga2V5cyBhcyBjb250cm9sIGtl eXMsCisrICAgICAqIEUuZy4gZ2FtZSBhcHBzICJoamtsIiB1c2UgdGhlIGN1cnNvciBtb3ZlIGxp a2UgVkkgbW9kZS4KKysgICAgICogVW5mb3J0dW5hdGVseSB0aGUgV2F5bGFuZCBpbnB1dC1tZXRo b2QgcHJvdG9jb2wgZG9lcyBub3QgcHJvdmlkZQorKyAgICAgKiB0aGUgZmFsbGJhY2sgbG9naWMg YWZ0ZXIgYXBwcyBoYW5kbGUgdGhlIGtleSBldmVudHMgbGlrZSBHVEszLzIKKysgICAgICogSU0g bW9kdWxlcy4gQnV0IFRoZSBpbnB1dC1tZXRob2QgYWx3YXlzIHNob3VsZCBoYW5kbGVzIGtleSBl dmVudHMKKysgICAgICogcHJpb3IgdG8gYXBwcy4KKysgICAgICovCisrICAgIGlmICghZmlsdGVy ZWQgJiYgIWdfdW5pY2hhcl9pc2NudHJsIChjaCkgJiYgIXByaXYtPnVzZV9zeXNfa2V5bWFwKSB7 CisgICAgICAgICBnY2hhciBidWZmWzhdID0geyAwLCB9OworICAgICAgICAgYnVmZltnX3VuaWNo YXJfdG9fdXRmOCAoY2gsIGJ1ZmYpXSA9ICdcMCc7CisgICAgICAgICBpYnVzX3dheWxhbmRfaW1f Y29tbWl0X3RleHQgKHdsaW0sIGJ1ZmYpOworQEAgLTE1MTIsNyArMTUyMyw3IEBAIF9idXNfZ2xv YmFsX2VuZ2luZV9jaGFuZ2VkX2NiIChJQnVzQnVzICAgICAgICpidXMsCisgeworICAgICBJQnVz V2F5bGFuZElNUHJpdmF0ZSAqcHJpdjsKKyAgICAgSUJ1c0VuZ2luZURlc2MgKmRlc2M7CistICAg IHN0cnVjdCB4a2Jfa2V5bWFwICprZXltYXA7CisrICAgIHN0cnVjdCB4a2Jfa2V5bWFwICprZXlt YXAgPSBOVUxMOworIAorICAgICBnX3JldHVybl9pZl9mYWlsIChJQlVTX0lTX0JVUyAoYnVzKSk7 CisgICAgIGdfcmV0dXJuX2lmX2ZhaWwgKElCVVNfSVNfV0FZTEFORF9JTSAod2xpbSkpOworQEAg LTE1MjEsNyArMTUzMiw4IEBAIF9idXNfZ2xvYmFsX2VuZ2luZV9jaGFuZ2VkX2NiIChJQnVzQnVz ICAgICAgICpidXMsCisgICAgIGlidXNfd2F5bGFuZF9pbV9yZXNldF9tb2RpZmllcnMgKHdsaW0p OworICAgICBnX2Fzc2VydCAoZGVzYyk7CisgICAgIGdfYXNzZXJ0ICghZ19zdHJjbXAwIChpYnVz X2VuZ2luZV9kZXNjX2dldF9uYW1lIChkZXNjKSwgZW5naW5lX25hbWUpKTsKKy0gICAga2V5bWFw ID0gY3JlYXRlX3VzZXJfeGtiX2tleW1hcCAocHJpdi0+eGtiX2NvbnRleHQsIGRlc2MpOworKyAg ICBpZiAoIXByaXYtPnVzZV9zeXNfa2V5bWFwKQorKyAgICAgICAga2V5bWFwID0gY3JlYXRlX3Vz ZXJfeGtiX2tleW1hcCAocHJpdi0+eGtiX2NvbnRleHQsIGRlc2MpOworICAgICBpZiAoa2V5bWFw ICYmICFpYnVzX3hrYl9rZXltYXBfdXBkYXRlX3dpdGhfa2V5bWFwICgmcHJpdi0+a2V5X3VzZXIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGtleW1hcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMCkpIHsKK0BAIC0zMTc5LDYgKzMxOTEsMjEgQEAgaWJ1c193YXlsYW5kX2ltX2Ns YXNzX2luaXQgKElCdXNXYXlsYW5kSU1DbGFzcyAqY2xhc3MpCisgICAgICAgICAgICAgICAgICAg ICAgICAgRkFMU0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9SRUFEV1JJVEUg fCBHX1BBUkFNX0NPTlNUUlVDVF9PTkxZKSk7CisgCisrICAgIC8qKgorKyAgICAgKiBJQnVzV2F5 bGFuZElNOnVzZS1zeXN0ZW0ta2V5bWFwOgorKyAgICAgKgorKyAgICAgKiBVc2Ugc3lzdGVtIGtl eW1hcC4KKysgICAgICogJVRSVUUgaWYgdGhlIHNlc3Npb24ga2V5bWFwIGlzIHVzZWQgZm9yY2li bHkgaW5zdGVhZCBvZiBrZXltYXBzIG9mIHRoZQorKyAgICAgKiBJQnVzIFhLQiBlbmdpbmVzLCBv dGhlcndpc2UgJUZBTFNFLgorKyAgICAgKi8KKysgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9w cm9wZXJ0eSAoZ29iamVjdF9jbGFzcywKKysgICAgICAgICAgICAgICAgICAgIFBST1BfVVNFX1NZ U19LRVlNQVAsCisrICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbiAoInVz ZS1zeXN0ZW0ta2V5bWFwIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAidXNlIHN5c3RlbSBr ZXltYXAiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICJVc2Ugc3lzdGVtIGtleW1hcCIsCisr ICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCisrICAgICAgICAgICAgICAgICAgICAgICAg R19QQVJBTV9SRUFEV1JJVEUpKTsKKysKKyAgICAgLyogaW5zdGFsbCBzaWduYWxzICovCisgICAg IC8qIHRoaXMgbW9kdWxlIGNhbiBjYWxsIGlidXNfaW5wdXRfY29udGV4dF9mb2N1c19pbigpIGFu ZCB0aGUgZm9jdXMtaW4KKyAgICAgICogc2lnbmFsIGNhbiByZWFjaCB0aGUgSUJ1cyBwYW5lbCBh bmQgdGhpcyBhbHNvIGNhbiBjYWxsCitAQCAtMzMxNSw3ICszMzQyLDcgQEAgaWJ1c193YXlsYW5k X2ltX2NvbnN0cnVjdG9yIChHVHlwZSAgICAgICAgICAgICAgICAgIHR5cGUsCisgICAgICAgICBy ZXR1cm4gTlVMTDsKKyAgICAgfQorICAgICBkZXNjID0gaWJ1c19idXNfZ2V0X2dsb2JhbF9lbmdp bmUgKHByaXYtPmlidXNidXMpOworLSAgICBpZiAoZGVzYykKKysgICAgaWYgKGRlc2MgJiYgIXBy aXYtPnVzZV9zeXNfa2V5bWFwKQorICAgICAgICAga2V5bWFwID0gY3JlYXRlX3VzZXJfeGtiX2tl eW1hcCAocHJpdi0+eGtiX2NvbnRleHQsIGRlc2MpOworICAgICBpZiAoa2V5bWFwICYmICFpYnVz X3hrYl9rZXltYXBfdXBkYXRlX3dpdGhfa2V5bWFwICgmcHJpdi0+a2V5X3VzZXIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleW1hcCwK K0BAIC0zNDA4LDYgKzM0MzUsOSBAQCBpYnVzX3dheWxhbmRfaW1fc2V0X3Byb3BlcnR5IChJQnVz V2F5bGFuZElNICp3bGltLAorICAgICAgICAgZ19hc3NlcnQgKCFwcml2LT52ZXJib3NlKTsKKyAg ICAgICAgIHByaXYtPnZlcmJvc2UgPSBnX3ZhbHVlX2dldF9ib29sZWFuICh2YWx1ZSk7CisgICAg ICAgICBicmVhazsKKysgICAgY2FzZSBQUk9QX1VTRV9TWVNfS0VZTUFQOgorKyAgICAgICAgcHJp di0+dXNlX3N5c19rZXltYXAgPSBnX3ZhbHVlX2dldF9ib29sZWFuICh2YWx1ZSk7CisrICAgICAg ICBicmVhazsKKyAgICAgZGVmYXVsdDoKKyAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9Q Uk9QRVJUWV9JRCAod2xpbSwgcHJvcF9pZCwgcHNwZWMpOworICAgICB9CitAQCAtMzQzNyw2ICsz NDY3LDkgQEAgaWJ1c193YXlsYW5kX2ltX2dldF9wcm9wZXJ0eSAoSUJ1c1dheWxhbmRJTSAqd2xp bSwKKyAgICAgY2FzZSBQUk9QX1ZFUkJPU0U6CisgICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFu ICh2YWx1ZSwgcHJpdi0+dmVyYm9zZSk7CisgICAgICAgICBicmVhazsKKysgICAgY2FzZSBQUk9Q X1VTRV9TWVNfS0VZTUFQOgorKyAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbiAodmFsdWUsIHBy aXYtPnVzZV9zeXNfa2V5bWFwKTsKKysgICAgICAgIGJyZWFrOworICAgICBkZWZhdWx0OgorICAg ICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEICh3bGltLCBwcm9wX2lkLCBw c3BlYyk7CisgICAgIH0KKy0tIAorMi41My4wCisKK0Zyb20gODg0NjNmY2ZlZGIwMTdhNDdlNTQ5 MzcyNmQxNTUxMGZjNzIzOTEzOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IGZ1aml3 YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMjkgTWF5IDIwMjYg MTc6NDM6NDMgKzA5MDAKK1N1YmplY3Q6IFtQQVRDSCA3LzldIHVpL2d0azM6IFN1cHBvcnQgdXNl LXN5c3RlbS1rZXlib2FyZC1sYXlvdXQgZm9yIFdheWxhbmQKKworLS0tCisgdWkvZ3RrMy9hcHBs aWNhdGlvbi52YWxhIHwgNyArKysrKysrCisgdWkvZ3RrMy9wYW5lbC52YWxhICAgICAgIHwgNyAr KysrLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQorCitkaWZmIC0tZ2l0IGEvdWkvZ3RrMy9hcHBsaWNhdGlvbi52YWxhIGIvdWkvZ3RrMy9hcHBs aWNhdGlvbi52YWxhCitpbmRleCBhOTk2MjY4NS4uZDgyYmNjNzYgMTAwNjQ0CistLS0gYS91aS9n dGszL2FwcGxpY2F0aW9uLnZhbGEKKysrKyBiL3VpL2d0azMvYXBwbGljYXRpb24udmFsYQorQEAg LTM5LDYgKzM5LDcgQEAgY2xhc3MgQXBwbGljYXRpb24geworICNpZiBVU0VfR0RLX1dBWUxBTkQK KyAgICAgcHJpdmF0ZSBzdGF0aWMgdWxvbmcgbV9idXNfY29ubmVjdGVkX2lkOworICAgICBwcml2 YXRlIHN0YXRpYyB1bG9uZyBtX3JlYWxpemVfc3VyZmFjZV9pZDsKKysgICAgcHJpdmF0ZSBzdGF0 aWMgdWxvbmcgbV91c2Vfc3lzdGVtX2tleW1hcF9pZDsKKyAgICAgcHJpdmF0ZSBzdGF0aWMgdWxv bmcgbV9pYnVzX2ZvY3VzX2luX2lkOworICAgICBwcml2YXRlIHN0YXRpYyB1bG9uZyBtX2lidXNf Zm9jdXNfb3V0X2lkOworICAgICBwcml2YXRlIHN0YXRpYyBzdHJpbmcgbV91c2VyOworQEAgLTEx NSw2ICsxMTYsOCBAQCBjbGFzcyBBcHBsaWNhdGlvbiB7CisgICAgICAgICBpZiAobV93YXlsYW5k X2ltICE9IG51bGwpIHsKKyAgICAgICAgICAgICBtX3JlYWxpemVfc3VyZmFjZV9pZCA9IG1fcGFu ZWwucmVhbGl6ZV9zdXJmYWNlLmNvbm5lY3QoCisgICAgICAgICAgICAgICAgICAgICAodywgcykg PT4gdGhpcy5zZXRfd2F5bGFuZF9zdXJmYWNlKHMpKTsKKysgICAgICAgICAgICBtX3VzZV9zeXN0 ZW1fa2V5bWFwX2lkID0gbV9wYW5lbC51c2Vfc3lzdGVtX2tleW1hcC5jb25uZWN0KAorKyAgICAg ICAgICAgICAgICAgICAgKHcsIGIpID0+IG1fd2F5bGFuZF9pbS51c2Vfc3lzdGVtX2tleW1hcCA9 IGIpOworICAgICAgICAgICAgIG1faWJ1c19mb2N1c19pbl9pZCA9IG1fd2F5bGFuZF9pbS5pYnVz X2ZvY3VzX2luLmNvbm5lY3QoCisgICAgICAgICAgICAgICAgICAgICAodywgbykgPT4gbV9wYW5l bC5zZXRfd2F5bGFuZF9vYmplY3RfcGF0aChvKSk7CisgICAgICAgICAgICAgbV9pYnVzX2ZvY3Vz X291dF9pZCA9IG1fd2F5bGFuZF9pbS5pYnVzX2ZvY3VzX291dC5jb25uZWN0KAorQEAgLTE0Niw2 ICsxNDksMTAgQEAgY2xhc3MgQXBwbGljYXRpb24geworICAgICAgICAgICAgIEdMaWIuU2lnbmFs SGFuZGxlci5kaXNjb25uZWN0KG1fcGFuZWwsIG1fcmVhbGl6ZV9zdXJmYWNlX2lkKTsKKyAgICAg ICAgICAgICBtX3JlYWxpemVfc3VyZmFjZV9pZCA9IDA7CisgICAgICAgICB9CisrICAgICAgICBp ZiAobV91c2Vfc3lzdGVtX2tleW1hcF9pZCAhPSAwKSB7CisrICAgICAgICAgICAgR0xpYi5TaWdu YWxIYW5kbGVyLmRpc2Nvbm5lY3QobV9wYW5lbCwgbV91c2Vfc3lzdGVtX2tleW1hcF9pZCk7Cisr ICAgICAgICAgICAgbV91c2Vfc3lzdGVtX2tleW1hcF9pZCA9IDA7CisrICAgICAgICB9CisgICAg ICAgICBpZiAobV9pYnVzX2ZvY3VzX2luX2lkICE9IDApIHsKKyAgICAgICAgICAgICBHTGliLlNp Z25hbEhhbmRsZXIuZGlzY29ubmVjdChtX3dheWxhbmRfaW0sIG1faWJ1c19mb2N1c19pbl9pZCk7 CisgICAgICAgICAgICAgbV9pYnVzX2ZvY3VzX2luX2lkID0gMDsKK2RpZmYgLS1naXQgYS91aS9n dGszL3BhbmVsLnZhbGEgYi91aS9ndGszL3BhbmVsLnZhbGEKK2luZGV4IGExM2I4NzczLi5hNDE2 YTZlZiAxMDA2NDQKKy0tLSBhL3VpL2d0azMvcGFuZWwudmFsYQorKysrIGIvdWkvZ3RrMy9wYW5l bC52YWxhCitAQCAtMTA0LDkgKzEwNCw3IEBAIGNsYXNzIFBhbmVsIDogSUJ1cy5QYW5lbFNlcnZp Y2UgeworICNpZiBVU0VfR0RLX1dBWUxBTkQKKyAgICAgcHJpdmF0ZSBzdHJpbmc/IG1fd2F5bGFu ZF9vYmplY3RfcGF0aDsKKyAgICAgcHVibGljIHNpZ25hbCB2b2lkIHJlYWxpemVfc3VyZmFjZSh2 b2lkICpzdXJmYWNlKTsKKy0gICAgcHVibGljIHNpZ25hbCB2b2lkIHVwZGF0ZV9zaG9ydGN1dF9r ZXlzKAorLSAgICAgICAgICAgIElCdXMuUHJvY2Vzc0tleUV2ZW50RGF0YVtdIGRhdGEsCistICAg ICAgICAgICAgQmluZGluZ0NvbW1vbi5LZXlFdmVudEZ1bmNUeXBlIGZ0eXBlKTsKKysgICAgcHVi bGljIHNpZ25hbCB2b2lkIHVzZV9zeXN0ZW1fa2V5bWFwKGJvb2wgdXNlX3N5c19rZXltYXApOwor ICNlbmRpZgorIAorICAgICBwdWJsaWMgUGFuZWwoSUJ1cy5CdXMgYnVzLAorQEAgLTc0Nyw2ICs3 NDUsOSBAQCBjbGFzcyBQYW5lbCA6IElCdXMuUGFuZWxTZXJ2aWNlIHsKKyAgICAgcHJpdmF0ZSB2 b2lkIHNldF91c2Vfc3lzdGVtX2tleWJvYXJkX2xheW91dCgpIHsKKyAgICAgICAgIG1fdXNlX3N5 c3RlbV9rZXlib2FyZF9sYXlvdXQgPQorICAgICAgICAgICAgICAgICBtX3NldHRpbmdzX2dlbmVy YWwuZ2V0X2Jvb2xlYW4oInVzZS1zeXN0ZW0ta2V5Ym9hcmQtbGF5b3V0Iik7CisrI2lmIFVTRV9H REtfV0FZTEFORAorKyAgICAgICAgdXNlX3N5c3RlbV9rZXltYXAobV91c2Vfc3lzdGVtX2tleWJv YXJkX2xheW91dCk7CisrI2VuZGlmCisgICAgIH0KKyAKKyAgICAgcHJpdmF0ZSB2b2lkIHNldF9l bWJlZF9wcmVlZGl0X3RleHQoKSB7CistLSAKKzIuNTMuMAorCitGcm9tIDA3YmM2ZjdhM2YxM2Qy MTEzZTM0N2ZiNGM5MTdmMTJkNGEyZjBlYzEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CitEYXRlOiBGcmksIDI5IE1h eSAyMDI2IDE4OjI2OjU0ICswOTAwCitTdWJqZWN0OiBbUEFUQ0ggOC85XSBzcmM6IFVwZGF0ZSBJ U19ERUFEX0tFWSgpCisKK2V4cG9ydCBJU19ERUFEX0tFWSgpIGluIGlidXNpbnRlcm5hbC5oIGZv ciBpYnVzLXdheWxhbmQuCitBZGQgZW5naW5lL3Rlc3QtZGVhZC5weSB0byBjb21wYXJlIGlidXNp bnRlcm5hbC5oIGFuZCBpYnVza2V5c3ltcy5oCistLS0KKyBjb25maWd1cmUuYWMgICAgICAgICAg ICAgICAgICB8ICAxMyArKysrCisgZW5naW5lL01ha2VmaWxlLmFtICAgICAgICAgICAgfCAgMTAg KystCisgZW5naW5lL21lc29uLmJ1aWxkICAgICAgICAgICAgfCAgMTYgKystLQorIGVuZ2luZS90 ZXN0LWRlYWQucHkgICAgICAgICAgIHwgMTM2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKKyBtZXNvbi5vcHRpb25zICAgICAgICAgICAgICAgICB8ICAgNSArKworIHNyYy9pYnVz Y29tcG9zZXRhYmxlLmMgICAgICAgIHwgIDE1ICsrLS0KKyBzcmMvaWJ1c2VuZ2luZXNpbXBsZS5j ICAgICAgICB8ICAgNCArLQorIHNyYy9pYnVzZW5naW5lc2ltcGxlcHJpdmF0ZS5oIHwgIDEyICst LQorIHNyYy9pYnVzaW50ZXJuYWwuaCAgICAgICAgICAgIHwgIDExICsrLQorIDkgZmlsZXMgY2hh bmdlZCwgMjAwIGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEw MDc1NSBlbmdpbmUvdGVzdC1kZWFkLnB5CisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9j b25maWd1cmUuYWMKK2luZGV4IGE1OWViZTQ3Li44OGM2ZDhmZCAxMDA2NDQKKy0tLSBhL2NvbmZp Z3VyZS5hYworKysrIGIvY29uZmlndXJlLmFjCitAQCAtNzkzLDYgKzc5MywxOCBAQCBQS0dfQ0hF Q0tfTU9EVUxFUyhYRklYRVMsCisgICAgIFtoYXZlX3hmaXhlcz0ibm8gKGxpYlhmaXhlcyB2ZXJz aW9uIGlzIGxvd2VyIHRoYW4gNikiXQorICkKKyAKKysjIC0tZW5hYmxlLWRpc3Ryby10ZXN0cwor K0FDX0FSR19FTkFCTEUoZGlzdHJvLXRlc3RzLAorKyAgICBBU19IRUxQX1NUUklORyhbLS1lbmFi bGUtZGlzdHJvLXRlc3RzXSwKKysgICAgICAgICAgICAgICAgICAgW0VuYWJsZSB0byB0ZXN0IGRp c3RybyBmaWxlc10pLAorKyAgICBbZW5hYmxlX2Rpc3Ryb190ZXN0cz0kZW5hYmxldmFsXSwKKysg ICAgW2VuYWJsZV9kaXN0cm9fdGVzdHM9bm9dCisrKQorK0FNX0NPTkRJVElPTkFMKFtFTkFCTEVf RElTVFJPX1RFU1RTXSwgW3Rlc3QgeCIkZW5hYmxlX2Rpc3Ryb190ZXN0cyIgPSB4InllcyJdKQor K2lmIHRlc3QgeCIkZW5hYmxlX2Rpc3Ryb190ZXN0cyIgPSB4Im5vIjsgdGhlbgorKyAgICBlbmFi bGVfZGlzdHJvX3Rlc3RzPSJubyAoZGlzYWJsZWQsIHVzZSAtLWVuYWJsZS1kaXN0cm8tdGVzdHMg dG8gZW5hYmxlKSIKKytmaQorKworICMgLS1lbmFibGUtaW5zdGFsbC10ZXN0cworIEFDX0FSR19F TkFCTEUoaW5zdGFsbC10ZXN0cywKKyAgICAgQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWluc3Rh bGwtdGVzdHNdLAorQEAgLTEwNjksNiArMTA4MSw3IEBAIEJ1aWxkIG9wdGlvbnM6CisgICBYRml4 ZXMgY2xpZW50IGRpc2Nvbm5lY3QgICAgICAkaGF2ZV94Zml4ZXMKKyAgIEluc3RhbGwgc3lzdGVt ZCBzZXJ2aWNlICAgICAgICRlbmFibGVfc3lzdGVtZAorICAgUnVuIHRlc3QgY2FzZXMgICAgICAg ICAgICAgICAgJGVuYWJsZV90ZXN0cworKyAgRGlzdHJvIHRlc3RzICAgICAgICAgICAgICAgICAg JGVuYWJsZV9kaXN0cm9fdGVzdHMKKyAgIEluc3RhbGwgdGVzdHMgICAgICAgICAgICAgICAgICRl bmFibGVfaW5zdGFsbF90ZXN0cworIF0pCisgQVNfSUYoW3Rlc3QgJEhBU19PVVRQVVRfVEFJTCAt ZXEgMV0sCitkaWZmIC0tZ2l0IGEvZW5naW5lL01ha2VmaWxlLmFtIGIvZW5naW5lL01ha2VmaWxl LmFtCitpbmRleCAzZTRkMDQ1Zi4uMDJkNjVjMjYgMTAwNjQ0CistLS0gYS9lbmdpbmUvTWFrZWZp bGUuYW0KKysrKyBiL2VuZ2luZS9NYWtlZmlsZS5hbQorQEAgLTQsNyArNCw3IEBACisgIworICMg Q29weXJpZ2h0IChjKSAyMDEwLTIwMTYsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu CisgIyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxNiBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdt YWlsLmNvbT4KKy0jIENvcHlyaWdodCAoYykgMjAxMy0yMDI1IFRha2FvIEZ1aml3YXJhIDx0YWth by5mdWppd2FyYTFAZ21haWwuY29tPgorKyMgQ29weXJpZ2h0IChjKSAyMDEzLTIwMjYgVGFrYW8g RnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisgIworICMgVGhpcyBsaWJyYXJ5 IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICMgbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor QEAgLTU3LDExICs1NywxOCBAQCBBTV9WQUxBRkxBR1MgPSBcCisgICAgIC0tdGFyZ2V0LWdsaWI9 IiQoVkFMQV9UQVJHRVRfR0xJQl9WRVJTSU9OKSIgXAorICAgICAkKE5VTEwpCisgCisrVEVTVFNf RU5WSVJPTk1FTlQgPSBcCisrICAgIGxpYl9zcmNkaXI9JChzcmNkaXIpLy4uL3NyYyBcCisrICAg ICQoTlVMTCkKKysKKyBURVNUUyA9CisgCisraWYgRU5BQkxFX0RJU1RST19URVNUUworK1RFU1RT ICs9IHRlc3QtZGVhZC5weQorIGlmIEVOQUJMRV9QWUdOT01FX0RFU0tUT1AKKyBURVNUUyArPSB0 ZXN0LWdub21lLnB5CisgZW5kaWYKKytlbmRpZgorIAorIGxpYmV4ZWNfUFJPR1JBTVMgPSBcCisg ICAgIGlidXMtZW5naW5lLXNpbXBsZSBcCitAQCAtOTksNiArMTA2LDcgQEAgRVhUUkFfRElTVCA9 IFwKKyAgICAgZ2Vuc2ltcGxlLnB5IFwKKyAgICAgaXNvNjM5Y29udmVydGVyLnB5IFwKKyAgICAg c2ltcGxlLnhtbC5pbiBcCisrICAgIHRlc3QtZGVhZC5weSBcCisgICAgIHRlc3QtZ25vbWUucHkg XAorICAgICAkKE5VTEwpCisgCitkaWZmIC0tZ2l0IGEvZW5naW5lL21lc29uLmJ1aWxkIGIvZW5n aW5lL21lc29uLmJ1aWxkCitpbmRleCBhNmFiNWI0ZS4uODg3YzljNDIgMTAwNjQ0CistLS0gYS9l bmdpbmUvbWVzb24uYnVpbGQKKysrKyBiL2VuZ2luZS9tZXNvbi5idWlsZAorQEAgLTQwLDE3ICs0 MCwyMSBAQCBzaW1wbGVfeG1sID0gY3VzdG9tX3RhcmdldCgnc2ltcGxlLnhtbCcsCisgICBpbnN0 YWxsX2RpcjogcGtnZGF0YWRpciAvICdjb21wb25lbnQnLAorICkKKyAKKy1pZiBnZXRfb3B0aW9u KCd0ZXN0cycpCistICBweW92ZXJyaWRlc190ZXN0cyA9IFsKKy0gICAgeworLSAgICAgICduYW1l JzogJ3Rlc3QtZ25vbWUnLAorLSAgICB9LAorK2Rpc3Jyb190ZXN0c19lbnYgPSB7CisrICAnbGli X3NyY2Rpcic6IHNvdXJjZV9yb290IC8gJ3NyYycsCisrfQorKworK2lmIGdldF9vcHRpb24oJ3Rl c3RzJykgYW5kIGdldF9vcHRpb24oJ2Rpc3Ryby10ZXN0cycpCisrICBkaXN0cm9fdGVzdHMgPSBb CisrICAgIHsgJ25hbWUnOiAndGVzdC1kZWFkJywgfSwKKysgICAgeyAnbmFtZSc6ICd0ZXN0LWdu b21lJywgfSwKKyAgIF0KKyAKKy0gIGZvcmVhY2ggX3Rlc3QgOiBweW92ZXJyaWRlc190ZXN0cwor KyAgZm9yZWFjaCBfdGVzdCA6IGRpc3Ryb190ZXN0cworICAgICB0aW1lb3V0ID0gX3Rlc3QuZ2V0 KCd0aW1lb3V0JywgMzApCisgICAgIHRlc3QoX3Rlc3RbJ25hbWUnXSwgZmlsZXMoW3B5dGhvbi5m dWxsX3BhdGgoKV0pWzBdLAorICAgICAgIGFyZ3M6IFsgbWVzb24uY3VycmVudF9zb3VyY2VfZGly KCkgLyAnQDBALnB5Jy5mb3JtYXQoX3Rlc3RbJ25hbWUnXSkgXSwKKysgICAgICBlbnY6IGVudmly b25tZW50KGRpc3Jyb190ZXN0c19lbnYpLAorICAgICAgIHN1aXRlOiAnZW5naW5lJywKKyAgICAg ICB0aW1lb3V0OiB0aW1lb3V0LAorICAgICApCitkaWZmIC0tZ2l0IGEvZW5naW5lL3Rlc3QtZGVh ZC5weSBiL2VuZ2luZS90ZXN0LWRlYWQucHkKK25ldyBmaWxlIG1vZGUgMTAwNzU1CitpbmRleCAw MDAwMDAwMC4uNGYzNTFlZTgKKy0tLSAvZGV2L251bGwKKysrKyBiL2VuZ2luZS90ZXN0LWRlYWQu cHkKK0BAIC0wLDAgKzEsMTM2IEBACisrIyEvdXNyL2Jpbi9weXRob24zCisrIyB2aW06c2V0IGZp bGVlbmNvZGluZz11dGYtOCBldCBzdHM9NCBzdz00OgorKyMKKysjIGlidXMgLSBJbnRlbGxpZ2Vu dCBJbnB1dCBCdXMgZm9yIExpbnV4IC8gVW5peCBPUworKyMKKysjIENvcHlyaWdodCDCqSAyMDI2 IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorKyMKKysjIFRoaXMg bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK KysjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMKKysjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlcgorKyMgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZSBHTlUKKysjIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworKyMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeS4g SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworKyMgQ2hlY2sg c3JjL2lidXNpbnRlcm5hbC5oOklTX0RFQURfS0VZKCkKKysKKytpbXBvcnQgb3MsIHN5cworK2Zy b20gcGF0aGxpYiBpbXBvcnQgUGF0aAorKworK2NsYXNzIFRlc3REZWFkS2V5OgorKyAgICBfX3Ny Y2RpciA9IE5vbmUKKysgICAgX19wcmduYW1lID0gTm9uZQorKyAgICBfX2lzX2RlYWRfa2V5X2Zp bGUgPSBQYXRoKCdpYnVzaW50ZXJuYWwuaCcpCisrICAgIF9fZGVhZF9rZXlzX2ZpbGUgID0gUGF0 aCgnaWJ1c2tleXN5bXMuaCcpCisrICAgIF9fbWF4X2RlYWRfbGluZSA9IE5vbmUKKysgICAgX19t YXhfZGVhZF9rZXkgID0gTm9uZQorKyAgICBfX21heF9kZWFkX3ZhbCA9IDAKKysgICAgX19taW5f ZGVhZF9saW5lID0gTm9uZQorKyAgICBfX21pbl9kZWFkX2tleSAgPSBOb25lCisrICAgIF9fbWlu X2RlYWRfdmFsID0gMHhmZmZmCisrCisrICAgIEBjbGFzc21ldGhvZAorKyAgICBkZWYgcGFyc2Vf YXJncyhjbHMpOgorKyAgICAgICAgYXJnMCA9IFBhdGgoc3lzLmFyZ3ZbMF0pCisrICAgICAgICBj bHMuX19zcmNkaXIgPSBhcmcwLnBhcmVudC5wYXJlbnQKKysgICAgICAgIGNscy5fX3ByZ25hbWUg PSBhcmcwLm5hbWUKKysgICAgICAgIGxpYl9zcmNkaXIgPSBvcy5nZXRlbnYoJ2xpYl9zcmNkaXIn KQorKyAgICAgICAgaWYgbGVuKHN5cy5hcmd2KSA+IDE6CisrICAgICAgICAgICAgY2xzLl9fc3Jj ZGlyID0gUGF0aChzeXMuYXJndlsxXSkKKysgICAgICAgIGVsaWYgbGliX3NyY2RpciAhPSBOb25l OgorKyAgICAgICAgICAgIGNscy5fX3NyY2RpciA9IFBhdGgobGliX3NyY2RpcikKKysgICAgICAg IGlmIHN0cihjbHMuX19zcmNkaXIpID09ICcnOgorKyAgICAgICAgICAgIGNscy5fX3NyY2RpciA9 IFBhdGgoJy4nKQorKworKyAgICBkZWYgdGVzdHMoc2VsZik6CisrICAgICAgICBwcmludCgnVEFQ IHZlcnNpb24gMTQnKQorKyAgICAgICAgcHJpbnQoJzEuLjEnKQorKyAgICAgICAgZGVhZF9rZXlz X3BhdGggPSBzZWxmLl9fc3JjZGlyIC8gc2VsZi5fX2RlYWRfa2V5c19maWxlCisrICAgICAgICBp ZiBub3QgZGVhZF9rZXlzX3BhdGguZXhpc3RzKCk6CisrICAgICAgICAgICAgcHJpbnQoZidmYWls IE5vdCBmb3VuZCB7c3RyKGRlYWRfa2V5c19wYXRoKX0nLCBmaWxlPXN5cy5zdGRlcnIpCisrICAg ICAgICAgICAgc3lzLmV4aXQoMSkKKysgICAgICAgIGlzX2RlYWRfa2V5X3BhdGggPSBzZWxmLl9f c3JjZGlyIC8gc2VsZi5fX2lzX2RlYWRfa2V5X2ZpbGUKKysgICAgICAgIGlmIG5vdCBpc19kZWFk X2tleV9wYXRoLmV4aXN0cygpOgorKyAgICAgICAgICAgIHByaW50KGYnZmFpbCBOb3QgZm91bmQg e3N0cihpc19kZWFkX2tleV9wYXRoKX0nLCBmaWxlPXN5cy5zdGRlcnIpCisrICAgICAgICAgICAg c3lzLmV4aXQoMSkKKysgICAgICAgIHNlbGYucmVhZF9kZWFkX2tleXNfZmlsZShkZWFkX2tleXNf cGF0aCkKKysgICAgICAgIGlmIHNlbGYucmVhZF9pc19kZWFkX2tleV9maWxlKGlzX2RlYWRfa2V5 X3BhdGgpOgorKyAgICAgICAgICAgIHByaW50KGYnb2sgMSAve3NlbGYuX19wcmduYW1lfScpCisr ICAgICAgICBlbHNlOgorKyAgICAgICAgICAgIHN5cy5leGl0KDEpCisrCisrICAgIGRlZiByZWFk X2RlYWRfa2V5c19maWxlKHNlbGYsIGRlYWRfa2V5c19wYXRoKToKKysgICAgICAgIHdpdGggZGVh ZF9rZXlzX3BhdGgub3BlbigpIGFzIGY6CisrICAgICAgICAgICAgZm9yIGxpbmUgaW4gZjoKKysg ICAgICAgICAgICAgICAgZWxlbWVudHMgPSBsaW5lLnNwbGl0KCkKKysgICAgICAgICAgICAgICAg aWYgbGVuKGVsZW1lbnRzKSA8IDM6CisrICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorKyAg ICAgICAgICAgICAgICBpZiBlbGVtZW50c1swXSAhPSAnI2RlZmluZSc6CisrICAgICAgICAgICAg ICAgICAgICBjb250aW51ZQorKyAgICAgICAgICAgICAgICBpZiBub3QgZWxlbWVudHNbMV0uc3Rh cnRzd2l0aCgnSUJVU19LRVlfZGVhZCcpOgorKyAgICAgICAgICAgICAgICAgICAgY29udGludWUK KysgICAgICAgICAgICAgICAgdmFsID0gaW50KGVsZW1lbnRzWzJdLCAxNikKKysgICAgICAgICAg ICAgICAgaWYgc2VsZi5fX21heF9kZWFkX3ZhbCA8IHZhbDoKKysgICAgICAgICAgICAgICAgICAg IHNlbGYuX19tYXhfZGVhZF92YWwgPSB2YWwKKysgICAgICAgICAgICAgICAgICAgIHNlbGYuX19t YXhfZGVhZF9saW5lID0gbGluZQorKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fX21heF9kZWFk X2tleSA9IGVsZW1lbnRzWzFdCisrICAgICAgICAgICAgICAgIGlmIHNlbGYuX19taW5fZGVhZF92 YWwgPiB2YWw6CisrICAgICAgICAgICAgICAgICAgICBzZWxmLl9fbWluX2RlYWRfdmFsID0gdmFs CisrICAgICAgICAgICAgICAgICAgICBzZWxmLl9fbWluX2RlYWRfbGluZSA9IGxpbmUKKysgICAg ICAgICAgICAgICAgICAgIHNlbGYuX19taW5fZGVhZF9rZXkgPSBlbGVtZW50c1sxXQorKyAgICAg ICAgaWYgc2VsZi5fX21pbl9kZWFkX3ZhbCA+PSBzZWxmLl9fbWF4X2RlYWRfdmFsOgorKyAgICAg ICAgICAgIHByaW50KGYnZmFpbCB7c2VsZi5fX21pbl9kZWFkX2xpbmV9IDwge3NlbGYuX19tYXhf ZGVhZF9saW5lfScsCisrICAgICAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyKQorKyAgICAg ICAgICAgIHN5cy5leGl0KDEpCisrCisrICAgIGRlZiByZWFkX2lzX2RlYWRfa2V5X2ZpbGUoc2Vs ZiwgaXNfZGVhZF9rZXlfcGF0aCk6CisrICAgICAgICBoYXNfZGVmaW5pdGlvbiA9IEZhbHNlCisr ICAgICAgICBtaW5fa2V5ID0gJycKKysgICAgICAgIG1heF9rZXkgPSAnJworKyAgICAgICAgd2l0 aCBpc19kZWFkX2tleV9wYXRoLm9wZW4oKSBhcyBmOgorKyAgICAgICAgICAgIGZvciBsaW5lIGlu IGY6CisrICAgICAgICAgICAgICAgIGVsZW1lbnRzID0gbGluZS5zcGxpdCgpCisrICAgICAgICAg ICAgICAgIGlmIG5vdCBoYXNfZGVmaW5pdGlvbjoKKysgICAgICAgICAgICAgICAgICAgIGlmIGxl bihlbGVtZW50cykgPCAyOgorKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisrICAg ICAgICAgICAgICAgICAgICBpZiBlbGVtZW50c1swXSAhPSAnI2RlZmluZSc6CisrICAgICAgICAg ICAgICAgICAgICAgICAgY29udGludWUKKysgICAgICAgICAgICAgICAgICAgIGlmIGVsZW1lbnRz WzFdLnN0YXJ0c3dpdGgoJ0lTX0RFQURfS0VZKCcpOgorKyAgICAgICAgICAgICAgICAgICAgICAg IGhhc19kZWZpbml0aW9uID0gVHJ1ZQorKyAgICAgICAgICAgICAgICAjICgoaykgPj0gSUJVU19L RVlfZGVhZF9taW4gJiYgKGspIDw9IElCVVNfS0VZX2RlYWRfbWF4KQorKyAgICAgICAgICAgICAg ICBlbHNlOgorKyAgICAgICAgICAgICAgICAgICAgaWYgbGVuKGVsZW1lbnRzKSA8IDc6CisrICAg ICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKysgICAgICAgICAgICAgICAgICAgIG1pbl9r ZXkgPSBlbGVtZW50c1syXQorKyAgICAgICAgICAgICAgICAgICAgbWF4X2tleSA9IGVsZW1lbnRz WzZdCisrICAgICAgICAgICAgICAgICAgICBpZiBtYXhfa2V5W2xlbihtYXhfa2V5KSAtIDFdID09 ICcpJzoKKysgICAgICAgICAgICAgICAgICAgICAgICBtYXhfa2V5ID0gbWF4X2tleVs6bGVuKG1h eF9rZXkpIC0gMV0KKysgICAgICAgICAgICAgICAgICAgIGJyZWFrCisrICAgICAgICBpc19mYWls ZWQgPSBGYWxzZQorKyAgICAgICAgcHJpbnQoZicjIG1pbjoge21pbl9rZXl9IDwgbWF4OiB7bWF4 X2tleX0nKQorKyAgICAgICAgaWYgc2VsZi5fX21pbl9kZWFkX2tleSAhPSBtaW5fa2V5OgorKyAg ICAgICAgICAgIHByaW50KGYnZmFpbCBtaW4gb2YgSVNfREVBRF9LRVkoKSBpcyAlcyBidXQgbWlu IGluICVzIGlzICVzJyAlIFwKKysgICAgICAgICAgICAgICAgICAobWluX2tleSwgc3RyKHNlbGYu X19kZWFkX2tleXNfZmlsZSksIHNlbGYuX19taW5fZGVhZF9rZXkpLAorKyAgICAgICAgICAgICAg ICAgIGZpbGU9c3lzLnN0ZGVycikKKysgICAgICAgICAgICBpc19mYWlsZWQgPSBUcnVlCisrICAg ICAgICBpZiBzZWxmLl9fbWF4X2RlYWRfa2V5ICE9IG1heF9rZXk6CisrICAgICAgICAgICAgcHJp bnQoZidmYWlsIG1heCBvZiBJU19ERUFEX0tFWSgpIGlzICVzIGJ1dCBtYXggaW4gJXMgaXMgJXMn ICUgXAorKyAgICAgICAgICAgICAgICAgIChtYXhfa2V5LCBzdHIoc2VsZi5fX2RlYWRfa2V5c19m aWxlKSwgc2VsZi5fX21heF9kZWFkX2tleSksCisrICAgICAgICAgICAgICAgICAgZmlsZT1zeXMu c3RkZXJyKQorKyAgICAgICAgICAgIGlzX2ZhaWxlZCA9IFRydWUKKysgICAgICAgIHJldHVybiBu b3QgaXNfZmFpbGVkCisrCisrCisrZGVmIG1haW4oKToKKysgICAgVGVzdERlYWRLZXkucGFyc2Vf YXJncygpCisrICAgIG9iaiA9IFRlc3REZWFkS2V5KCkKKysgICAgb2JqLnRlc3RzKCkKKysgICAg c3lzLmV4aXQoMCkKKysKKyttYWluKCkKK2RpZmYgLS1naXQgYS9tZXNvbi5vcHRpb25zIGIvbWVz b24ub3B0aW9ucworaW5kZXggOGFhYjgxZWYuLmI1OTMyMDQ0IDEwMDY0NAorLS0tIGEvbWVzb24u b3B0aW9ucworKysrIGIvbWVzb24ub3B0aW9ucworQEAgLTMsNiArMywxMSBAQCBvcHRpb24oJ3Rl c3RzJywKKyAgIHZhbHVlOiB0cnVlLAorICAgZGVzY3JpcHRpb246ICdCdWlsZCB0ZXN0cycsCisg KQorK29wdGlvbignZGlzdHJvLXRlc3RzJywKKysgIHR5cGU6ICdib29sZWFuJywKKysgIHZhbHVl OiBmYWxzZSwKKysgIGRlc2NyaXB0aW9uOiAnRW5hYmxlIHRvIHRlc3QgZGlzdHJvIGZpbGVzJywK KyspCisgb3B0aW9uKCd0ZXN0cy1leGNsdWRlLXN1aXRlcycsCisgICB0eXBlOiAnc3RyaW5nJywK KyAgIHZhbHVlOiAnJywKK2RpZmYgLS1naXQgYS9zcmMvaWJ1c2NvbXBvc2V0YWJsZS5jIGIvc3Jj L2lidXNjb21wb3NldGFibGUuYworaW5kZXggOTMyNjJmM2EuLjI0MDk2YTcwIDEwMDY0NAorLS0t IGEvc3JjL2lidXNjb21wb3NldGFibGUuYworKysrIGIvc3JjL2lidXNjb21wb3NldGFibGUuYwor QEAgLTM2LDYgKzM2LDcgQEAKKyAjaW5jbHVkZSAiaWJ1c3R5cGVzLmgiCisgCisgI2luY2x1ZGUg ImlidXNlbmdpbmVzaW1wbGVwcml2YXRlLmgiCisrI2luY2x1ZGUgImlidXNpbnRlcm5hbC5oIgor IAorIAorICNkZWZpbmUgSUJVU19DT01QT1NFX1RBQkxFX01BR0lDICJJQnVzQ29tcG9zZVRhYmxl IgorQEAgLTEwMSw4ICsxMDIsOCBAQCBwYXJzZV9jb21wb3NlX3ZhbHVlIChJQnVzQ29tcG9zZURh dGEgICpjb21wb3NlX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAg ICAqdmFsLAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgICAgICAgKmxpbmUpCisg eworLSAgICBjaGFyICpoZWFkLCAqZW5kLCAqcDsKKy0gICAgY2hhciAqdXN0ciA9IE5VTEw7Cisr ICAgIGNvbnN0IGNoYXIgKmhlYWQsICplbmQsICpwOworKyAgICBjaGFyICp1c3RyID0gTlVMTCwg KmNvbW1lbnQ7CisgICAgIGd1bmljaGFyICp1Y2hhcnMgPSBOVUxMLCAqdXA7CisgICAgIEdFcnJv ciAqZXJyb3IgPSBOVUxMOworICAgICBpbnQgbl91Y2hhcnMgPSAwOworQEAgLTE2NSw3ICsxNjYs OSBAQCBwYXJzZV9jb21wb3NlX3ZhbHVlIChJQnVzQ29tcG9zZURhdGEgICpjb21wb3NlX2RhdGEs CisgCisgICAgIGdfZnJlZSAodXN0cik7CisgICAgIGdfZnJlZSAodWNoYXJzKTsKKy0gICAgY29t cG9zZV9kYXRhLT5jb21tZW50ID0gZ19zdHJkdXAgKGdfc3Ryc3RyaXAgKGVuZCArIDEpKTsKKysg ICAgY29tbWVudCA9IGdfc3RyZHVwIChlbmQgKyAxKTsKKysgICAgY29tcG9zZV9kYXRhLT5jb21t ZW50ID0gZ19zdHJkdXAgKGdfc3Ryc3RyaXAgKGNvbW1lbnQpKTsKKysgICAgZ19mcmVlIChjb21t ZW50KTsKKyAKKyAgICAgcmV0dXJuIFRSVUU7CisgCitAQCAtMTk5MSw3ICsxOTk0LDcgQEAgaWJ1 c19jb21wb3NlX3RhYmxlX2NoZWNrIChjb25zdCBJQnVzQ29tcG9zZVRhYmxlRXggKnRhYmxlLAor ICAgICBpbnQgcm93X3N0cmlkZSA9IHRhYmxlLT5tYXhfc2VxX2xlbiArIDI7CisgICAgIGNvbnN0 IGd1aW50MTYgKmRhdGFfZmlyc3Q7CisgICAgIGludCBuX3NlcXM7CistICAgIGd1aW50MTYgKnNl cTsKKysgICAgY29uc3QgZ3VpbnQxNiAqc2VxLCAqcHJldl9zZXE7CisgCisgICAgIGlmIChjb21w b3NlX2ZpbmlzaCkKKyAgICAgICAgICpjb21wb3NlX2ZpbmlzaCA9IEZBTFNFOworQEAgLTIwMjAs OCArMjAyMyw2IEBAIGlidXNfY29tcG9zZV90YWJsZV9jaGVjayAoY29uc3QgSUJ1c0NvbXBvc2VU YWJsZUV4ICp0YWJsZSwKKyAgICAgaWYgKHNlcSA9PSBOVUxMKQorICAgICAgICAgcmV0dXJuIEZB TFNFOworIAorLSAgICBndWludDE2ICpwcmV2X3NlcTsKKy0KKyAgICAgLyogQmFjayB1cCB0byB0 aGUgZmlyc3Qgc2VxdWVuY2UgdGhhdCBtYXRjaGVzIHRvIG1ha2Ugc3VyZQorICAgICAgKiB3ZSBm aW5kIHRoZSBleGFjdCBtYXRjaCBpZiB0aGVpciBpcyBvbmUuCisgICAgICAqLworQEAgLTIwMzQs NyArMjAzNSw3IEBAIGlidXNfY29tcG9zZV90YWJsZV9jaGVjayAoY29uc3QgSUJ1c0NvbXBvc2VU YWJsZUV4ICp0YWJsZSwKKyAKKyAgICAgLyogY29tcGxldGUgc2VxdWVuY2UgKi8KKyAgICAgaWYg KG5fY29tcG9zZSA9PSB0YWJsZS0+bWF4X3NlcV9sZW4gfHwgc2VxW25fY29tcG9zZV0gPT0gMCkg eworLSAgICAgICAgZ3VpbnQxNiAqbmV4dF9zZXE7CisrICAgICAgICBjb25zdCBndWludDE2ICpu ZXh0X3NlcTsKKyAgICAgICAgIGd1bmljaGFyIHZhbHVlID0gMDsKKyAgICAgICAgIGludCBudW0g PSAwOworICAgICAgICAgaW50IGluZGV4ID0gMDsKK2RpZmYgLS1naXQgYS9zcmMvaWJ1c2VuZ2lu ZXNpbXBsZS5jIGIvc3JjL2lidXNlbmdpbmVzaW1wbGUuYworaW5kZXggMWVlY2NkNTIuLmMwNWUy ODFjIDEwMDY0NAorLS0tIGEvc3JjL2lidXNlbmdpbmVzaW1wbGUuYworKysrIGIvc3JjL2lidXNl bmdpbmVzaW1wbGUuYworQEAgLTI4LDEyICsyOCwxNCBAQAorICNpbmNsdWRlICJpYnVzY29tcG9z ZXRhYmxlLmgiCisgI2luY2x1ZGUgImlidXNlbW9qaS5oIgorICNpbmNsdWRlICJpYnVzZW5naW5l c2ltcGxlLmgiCistI2luY2x1ZGUgImlidXNlbmdpbmVzaW1wbGVwcml2YXRlLmgiCisgCisgI2lu Y2x1ZGUgImlidXNrZXlzLmgiCisgI2luY2x1ZGUgImlidXNrZXlzeW1zLmgiCisgI2luY2x1ZGUg ImlidXN1dGlsLmgiCisgCisrI2luY2x1ZGUgImlidXNlbmdpbmVzaW1wbGVwcml2YXRlLmgiCisr I2luY2x1ZGUgImlidXNpbnRlcm5hbC5oIgorKworICNpbmNsdWRlIDxtZW1vcnkuaD4KKyAjaW5j bHVkZSA8c3RkbGliLmg+CisgI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CitkaWZmIC0tZ2l0 IGEvc3JjL2lidXNlbmdpbmVzaW1wbGVwcml2YXRlLmggYi9zcmMvaWJ1c2VuZ2luZXNpbXBsZXBy aXZhdGUuaAoraW5kZXggYzNmOTI5MjAuLmM2MzUyMmZlIDEwMDY0NAorLS0tIGEvc3JjL2lidXNl bmdpbmVzaW1wbGVwcml2YXRlLmgKKysrKyBiL3NyYy9pYnVzZW5naW5lc2ltcGxlcHJpdmF0ZS5o CitAQCAtMzUsMTIgKzM1LDYgQEAgR19CRUdJTl9ERUNMUworICAqLworICNkZWZpbmUgSUJVU19D T01QT1NFX0VSUk9SIChpYnVzX2NvbXBvc2VfZXJyb3JfcXVhcmsgKCkpCisgCistLyogQ2hlY2tz IGlmIGEga2V5c3ltIGlzIGEgZGVhZCBrZXkuIERlYWQga2V5IGtleXN5bSB2YWx1ZXMgYXJlIGRl ZmluZWQgaW4KKy0gKiBpYnVza2V5c3ltcy5oIGFuZCB0aGUgZmlyc3QgaXMgR0RLX0tFWV9kZWFk X2dyYXZlLgorLSAqLworLSNkZWZpbmUgSVNfREVBRF9LRVkoaykgXAorLSAgICAgICgoaykgPj0g SUJVU19LRVlfZGVhZF9ncmF2ZSAmJiAoaykgPD0gSUJVU19LRVlfZGVhZF9ncmVlaykKKy0KKyAK KyBzdHJ1Y3QgX0lCdXNDb21wb3NlVGFibGVQcml2YXRlCisgeworQEAgLTU3LDggKzUxLDEwIEBA IHN0cnVjdCBfSUJ1c0NvbXBvc2VUYWJsZVByaXZhdGUKKyAgKiBTaW5jZTogMS41LjMzCisgICog U3RhYmlsaXR5OiBVbnN0YWJsZQorICAqLworK0dfR05VQ19JTlRFUk5BTAorIEdRdWFyayAgIGli dXNfY29tcG9zZV9lcnJvcl9xdWFyayAgICh2b2lkKTsKKyBndWludCAgICBpYnVzX2NvbXBvc2Vf a2V5X2ZsYWcgICAgICAoZ3VpbnQgICAgICAgICAgICAgICAgICAgICAgIGtleSk7CisrR19HTlVD X0lOVEVSTkFMCisgZ2Jvb2xlYW4gaWJ1c19jaGVja19hbGdvcml0aG1pY2FsbHkgKGNvbnN0IGd1 aW50ICAgICAgICAgICAgICAgICpjb21wb3NlX2J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgIG5fY29tcG9zZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VuaWNoYXIgICAgICAgICAg ICAgICAgICAgKm91dHB1dCk7CitAQCAtNjcsMTEgKzYzLDEzIEBAIEdWYXJpYW50ICoKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSUJ1c0NvbXBvc2VUYWJsZUV4CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICpjb21wb3NlX3RhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnYm9vbGVhbiAgICAgICAgICAgICAgICAgICByZXZlcnNlX2VuZGlhbik7CisrR19HTlVDX0lO VEVSTkFMCisgSUJ1c0NvbXBvc2VUYWJsZUV4ICoKKyAgICAgICAgICBpYnVzX2NvbXBvc2VfdGFi bGVfZGVzZXJpYWxpemUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29u c3QgY2hhciAgICAgICAgICAgICAgICAgKmNvbnRlbnRzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBnc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludDE2ICAgICAgICAgICAgICAg ICAgICAqc2F2ZWRfdmVyc2lvbik7CisrR19HTlVDX0lOVEVSTkFMCisgZ2Jvb2xlYW4gaWJ1c19j b21wb3NlX3RhYmxlX2NoZWNrICAgKGNvbnN0IElCdXNDb21wb3NlVGFibGVFeCAgICp0YWJsZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAg ICAgICAgICAgKmNvbXBvc2VfYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgbl9jb21wb3NlLAorQEAgLTc5LDYg Kzc3LDcgQEAgZ2Jvb2xlYW4gaWJ1c19jb21wb3NlX3RhYmxlX2NoZWNrICAgKGNvbnN0IElCdXND b21wb3NlVGFibGVFeCAgICp0YWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgICAgKmNvbXBvc2VfbWF0Y2gsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdTdHJpbmcgICAgICAgICAgICAgICAgICAg ICpvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFu ICAgICAgICAgICAgICAgICAgICBpc18zMmJpdCk7CisrR19HTlVDX0lOVEVSTkFMCisgZ3VuaWNo YXIgaWJ1c19rZXlzeW1fdG9fdW5pY29kZSAgICAgKGd1aW50ICAgICAgICAgICAgICAgICAgICAg ICBrZXlzeW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFu ICAgICAgICAgICAgICAgICAgICBjb21iaW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgICAgICAgICpuZWVkX3NwYWNlKTsKK0BA IC04OCw2ICs4Nyw3IEBAIGd1bmljaGFyIGlidXNfa2V5c3ltX3RvX3VuaWNvZGUgICAgIChndWlu dCAgICAgICAgICAgICAgICAgICAgICAga2V5c3ltLAorICAqIFNpbmNlOiAxLjUuMzMKKyAgKiBT dGFiaWxpdHk6IFVuc3RhYmxlCisgICovCisrR19HTlVDX0lOVEVSTkFMCisgZ3VuaWNoYXIgaWJ1 c19rZXlzeW1fdG9fdW5pY29kZV93aXRoX2xheW91dAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChndWludCAgICAgICAgICAgICAgICAgICAgICAga2V5c3ltLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAg ICAgY29tYmluaW5nLAorZGlmZiAtLWdpdCBhL3NyYy9pYnVzaW50ZXJuYWwuaCBiL3NyYy9pYnVz aW50ZXJuYWwuaAoraW5kZXggYzI2MzdhYjUuLjA0NTUzMjM2IDEwMDY0NAorLS0tIGEvc3JjL2li dXNpbnRlcm5hbC5oCisrKysgYi9zcmMvaWJ1c2ludGVybmFsLmgKK0BAIC02Miw1ICs2MiwxNCBA QAorIEdfR05VQ19JTlRFUk5BTCB2b2lkCisgaWJ1c19nX3ZhcmlhbnRfZ2V0X2NoaWxkX3N0cmlu ZyAoR1ZhcmlhbnQgKnZhcmlhbnQsIGdzaXplIGluZGV4LCBjaGFyICoqc3RyKTsKKyAKKy0jZW5k aWYKKysjaWZkZWYgSUJVU19LRVlfZGVhZF9ncmF2ZQorKyNpZmRlZiBJQlVTX0tFWV9kZWFkX2xv bmdzb2xpZHVzb3ZlcmxheQorKy8qIENoZWNrcyBpZiBhIGtleXN5bSBpcyBhIGRlYWQga2V5LiBE ZWFkIGtleSBrZXlzeW0gdmFsdWVzIGFyZSBkZWZpbmVkIGluCisrICogaWJ1c2tleXN5bXMuaCBh bmQgdGhlIGZpcnN0IGlzIEdES19LRVlfZGVhZF9ncmF2ZS4KKysgKi8KKysjZGVmaW5lIElTX0RF QURfS0VZKGspIFwKKysgICAgICAoKGspID49IElCVVNfS0VZX2RlYWRfZ3JhdmUgJiYgKGspIDw9 IElCVVNfS0VZX2RlYWRfbG9uZ3NvbGlkdXNvdmVybGF5KQorKyNlbmRpZiAvKiBJQlVTX0tFWV9k ZWFkX2xvbmdzb2xpZHVzb3ZlcmxheSAqLworKyNlbmRpZiAvKiBJQlVTX0tFWV9kZWFkX2dyYXZl ICovCisgCisrI2VuZGlmCistLSAKKzIuNTMuMAorCg==