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] f45: Delete upstreamed patches Date: Wed, 12 Aug 2026 03:34:33 GMT Message-ID: <178650567348.1.5818170819872040377.rpms-ibus-d3bddab90644@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: f45 X-Git-Rev: d3bddab90644a1c1aa1452a1a3c86e8316db01b0 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvaWJ1cwpCcmFuY2gg OiBmNDUKQ29tbWl0IDogZDNiZGRhYjkwNjQ0YTFjMWFhMTQ1MmExYTNjODZlODMxNmRiMDFiMApB dXRob3IgOiBUYWthbyBGdWppd2FyYSA8dGZ1aml3YXJAcmVkaGF0LmNvbT4KRGF0ZSAgIDogMjAy Ni0wOC0xMlQxMjoyNzowNSswOTowMApTdGF0cyAgOiArMC8tMjU0NiBpbiAxIGZpbGUocykKVVJM ICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9pYnVzL2MvZDNiZGRhYjkw NjQ0YTFjMWFhMTQ1MmExYTNjODZlODMxNmRiMDFiMD9icmFuY2g9ZjQ1CgpMb2c6CkRlbGV0ZSB1 cHN0cmVhbWVkIHBhdGNoZXMKCi0tLQpkaWZmIC0tZ2l0IGEvaWJ1cy1IRUFELnBhdGNoIGIvaWJ1 cy1IRUFELnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZTM0ZDU0Li4wMDAw MDAwCi0tLSBhL2lidXMtSEVBRC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI1NDYgKzAsMCBA QAotRnJvbSA0NGUyMmU1ZTc2MDJiYzc5MDQwZGY0MmNiZmE4MzZiYTMyZGEwMWVmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwu Y29tPgotRGF0ZTogVGh1LCAxNiBKdWwgMjAyNiAxMjozNzoyOCArMDkwMAotU3ViamVjdDogW1BB VENIIDEvMl0gc3JjL3Rlc3RzOiBGaXggQ0kgaXNzdWVzIGluIEdOT01FIDUwCi0KLS0gMTAwLWli dXMtY2kucnVsZXM6IERpc2FibGUgYXV0aGVudGljYXRpb24gZGlhbG9ncyBpbiBnbm9tZS1zaGVs bAotLSBpYnVzLWNvbXBvc2U6Ci0gIG8gQWRkIHRha2luZyBzY3JlZW5zaG90cyB3aXRoIElCVVNf VEVTVF9TQ1JFRU5TSE9UCi0gIG8gRGVmaW5lIGlidXNfYnJlYWtfaWZfZmFpbCgpIGZyb20gZ19y ZXR1cm5faWZfZmFpbCgpCi0tIGlidXMtZGVza3RvcC10ZXN0aW5nLWF1dG9zdGFydDogQ2FsbCBk dW1wX3NjcmVlbl9vZl90ZXN0X2Nhc2VzKCkKLS0gaWJ1cy1kZXNrdG9wLXRlc3RpbmctbW9kdWxl OgotICBvIFVwZGF0ZSB0aGUgbGF0ZXN0IGdub21lLXNoZWxsIHNlcnZpY2UgZmlsZSBmb3IgR05P TUUgNTAuCi0gIG8gUmVwbGFjZSBpbml0IHdpdGggc3lzdGVtY3RsIGluIGlidXMtZGVza3RvcC10 ZXN0aW5nLW1vZHVsZQotICBvIFNldCBsb2NhbGUgZm9yIGdub21lLXNoZWxsIHdoaWxlIHRoZSB1 c2VyIHN5c3RlbWQgcnVucyBpbiBDIGxvY2FsZQotICBvIEltcGxlbWVudCBkdW1wX3NjcmVlbl9v Zl90ZXN0X2Nhc2VzKCkgdG8gZHVtcCBzY3JlZW5zaG90cyBvZiB0ZXN0IGNhc2VzCi0gIG8gZXhw b3J0IElCVVNfVEVTVF9TQ1JFRU5TSE9UIHRvIGVhY2ggdGVzdCBjYXNlIHRvIHRha2Ugc2NyZWVu c2hvdHMKLSAgbyBJbnN0YWxsIHBvbGtpdCBydWxlIGZpbGUKLSAgbyBmb3J3YXJkIC0tc2NyZWVu ZHVtcCBvcHRpb24gdG8gYXV0b3N0YXJ0IHNjcmlwdAotLSBydW50ZXN0OiBTZXQgdHN0ZGlyIGZv ciBQeXRob24gdGVzdCBjYXNlcwotCi0tIHNyYy9tZXNvbjogUmVkdWNlIHRpbWUgdG8gYnVpbGQg ZW1vamkgZGljdHMKLS0gc3JjL3Rlc3RzL1tNYWtlZmlsZXxtZXNvbl06IEluc3RhbGwgMTAwLWli dXMtY2kucnVsZXMKLQotQ2xvc2VzICMyOTIxCi0tLS0KLSBzcmMvbWVzb24uYnVpbGQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDQxICsrKystLS0KLSBzcmMvdGVzdHMvMTAwLWlidXMt Y2kucnVsZXMgICAgICAgICAgICAgICAgIHwgICA4ICsrCi0gc3JjL3Rlc3RzL01ha2VmaWxlLmFt ICAgICAgICAgICAgICAgICAgICAgICB8ICAxMiArLQotIHNyYy90ZXN0cy9pYnVzLWNvbXBvc2Uu YyAgICAgICAgICAgICAgICAgICAgfCAgNzYgKysrKysrKysrKysrCi0gc3JjL3Rlc3RzL2lidXMt ZGVza3RvcC10ZXN0aW5nLWF1dG9zdGFydC5pbiB8ICAgMSArCi0gc3JjL3Rlc3RzL2lidXMtZGVz a3RvcC10ZXN0aW5nLW1vZHVsZSAgICAgICB8IDEyMiArKysrKysrKysrKysrKysrLS0tLQotIHNy Yy90ZXN0cy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKwotIHNyYy90 ZXN0cy9ydW50ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgODEgKysrKysrLS0tLS0t LQotIDggZmlsZXMgY2hhbmdlZCwgMjY2IGluc2VydGlvbnMoKyksIDgwIGRlbGV0aW9ucygtKQot IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdHMvMTAwLWlidXMtY2kucnVsZXMKLQotZGlmZiAt LWdpdCBhL3NyYy9tZXNvbi5idWlsZCBiL3NyYy9tZXNvbi5idWlsZAotaW5kZXggMWZiMDc4NmIu LjM0ZGExMzM0IDEwMDY0NAotLS0tIGEvc3JjL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbWVzb24u YnVpbGQKLUBAIC0zMDEsMjMgKzMwMSwzMCBAQCBpZiBnZXRfb3B0aW9uKCdlbW9qaS1kaWN0JykK LSAgICAgICBdCi0gICAgIGVuZGlmCi0gCi0tICAgIGVtb2ppX3BhcnNlcl9nZW4gPSBjdXN0b21f dGFyZ2V0KGdlbl9lbW9qaV9kaWN0LAotLSAgICAgIGlucHV0OiBlbW9qaV94bWwsCi0tICAgICAg b3V0cHV0OiBnZW5fZW1vamlfZGljdCwKLS0gICAgICBjb21tYW5kOiBbCi0tICAgICAgICBlbW9q aV9wYXJzZXIsCi0tICAgICAgICAnLS11bmljb2RlLWVtb2ppLWRpcicsIGdldF9vcHRpb24oJ3Vu aWNvZGUtZW1vamktZGlyJyksCi0tICAgICAgICAnLS14bWwnLCBlbW9qaV94bWwsCi0tICAgICAg ICAnLS1vdXQnLCAnQE9VVFBVVEAnLAotLSAgICAgICAgZW1vamlfcGFyc2VyX2V4dHJhX29wdHMs Ci0tICAgICAgXSwKLS0gICAgICBpbnN0YWxsX2RpcjogcGtnZGF0YWRpciAvICdkaWN0cycsCi0t ICAgICAgIyBUaGUgY29uZGl0aW9uYWwgaW5zdGFsbGF0aW9uIGRvZXMgbm90IHdvcmsgc28gdXNl Ci0tICAgICAgIyBtZXNvbi5hZGRfaW5zdGFsbF9zY3JpcHQoKQotLSAgICAgICMgaW5zdGFsbDog ZnMuZXhpc3RzKCdAT1VUUFVUQCcpIGFuZCBmcy5zaXplKCdAT1VUUFVUQCcpID4gMCwKLS0gICAg ICBpbnN0YWxsOiB0cnVlLAotLSAgICAgIGJ1aWxkX2J5X2RlZmF1bHQ6IHRydWUsCi0tICAgICkK LSsgICAgaWYgZnMuZXhpc3RzKG1lc29uLmN1cnJlbnRfYnVpbGRfZGlyKCkgLyBnZW5fZW1vamlf ZGljdCkKLSsgICAgICBpbnN0YWxsX2RhdGEoCi0rICAgICAgICBtZXNvbi5jdXJyZW50X2J1aWxk X2RpcigpIC8gZ2VuX2Vtb2ppX2RpY3QsCi0rICAgICAgICBpbnN0YWxsX2RpcjogcGtnZGF0YWRp ciAvICdkaWN0cycsCi0rICAgICAgKQotKyAgICBlbHNlCi0rICAgICAgZW1vamlfcGFyc2VyX2dl biA9IGN1c3RvbV90YXJnZXQoZ2VuX2Vtb2ppX2RpY3QsCi0rICAgICAgICBpbnB1dDogZW1vamlf eG1sLAotKyAgICAgICAgb3V0cHV0OiBnZW5fZW1vamlfZGljdCwKLSsgICAgICAgIGNvbW1hbmQ6 IFsKLSsgICAgICAgICAgZW1vamlfcGFyc2VyLAotKyAgICAgICAgICAnLS11bmljb2RlLWVtb2pp LWRpcicsIGdldF9vcHRpb24oJ3VuaWNvZGUtZW1vamktZGlyJyksCi0rICAgICAgICAgICctLXht bCcsIGVtb2ppX3htbCwKLSsgICAgICAgICAgJy0tb3V0JywgJ0BPVVRQVVRAJywKLSsgICAgICAg ICAgZW1vamlfcGFyc2VyX2V4dHJhX29wdHMsCi0rICAgICAgICBdLAotKyAgICAgICAgaW5zdGFs bF9kaXI6IHBrZ2RhdGFkaXIgLyAnZGljdHMnLAotKyAgICAgICAgIyBUaGUgY29uZGl0aW9uYWwg aW5zdGFsbGF0aW9uIGRvZXMgbm90IHdvcmsgc28gdXNlCi0rICAgICAgICAjIG1lc29uLmFkZF9p bnN0YWxsX3NjcmlwdCgpCi0rICAgICAgICAjIGluc3RhbGw6IGZzLmV4aXN0cygnQE9VVFBVVEAn KSBhbmQgZnMuc2l6ZSgnQE9VVFBVVEAnKSA+IDAsCi0rICAgICAgICBpbnN0YWxsOiB0cnVlLAot KyAgICAgICAgYnVpbGRfYnlfZGVmYXVsdDogdHJ1ZSwKLSsgICAgICApCi0rICAgIGVuZGlmCi0g ICBlbmRmb3JlYWNoCi0gCi0gICAjIFRoZXJlIGFyZSBjYXNlcyB3aGVyZSB0aGVyZSB3YXMgbm8g LmRpY3QgZmlsZSB0byBvdXRwdXQKLWRpZmYgLS1naXQgYS9zcmMvdGVzdHMvMTAwLWlidXMtY2ku cnVsZXMgYi9zcmMvdGVzdHMvMTAwLWlidXMtY2kucnVsZXMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0 Ci1pbmRleCAwMDAwMDAwMC4uZDZkMmY3YzAKLS0tLSAvZGV2L251bGwKLSsrKyBiL3NyYy90ZXN0 cy8xMDAtaWJ1cy1jaS5ydWxlcwotQEAgLTAsMCArMSw4IEBACi0rcG9sa2l0LmFkZFJ1bGUoZnVu Y3Rpb24oYWN0aW9uLCBzdWJqZWN0KSB7Ci0rICAgIGlmICgoYWN0aW9uLmlkID09ICJvcmcuZnJl ZWRlc2t0b3AuRmxhdHBhay5tZXRhZGF0YS11cGRhdGUiIHx8Ci0rICAgICAgICAgYWN0aW9uLmlk ID09ICJvcmcuZnJlZWRlc2t0b3AuRmxhdHBhay5tb2RpZnktcmVwbyIgfHwKLSsgICAgICAgICBh Y3Rpb24uaWQgPT0gIm9yZy5mcmVlZGVza3RvcC5md3VwZC5yZWZyZXNoLXJlbW90ZSIgKSAmJgot KyAgICAgICAgc3ViamVjdC5pc0luR3JvdXAoIml0ZXN0dXNlciIpKSB7Ci0rICAgICAgICByZXR1 cm4gcG9sa2l0LlJlc3VsdC5ZRVM7Ci0rICAgIH0KLSt9KTsKLWRpZmYgLS1naXQgYS9zcmMvdGVz dHMvTWFrZWZpbGUuYW0gYi9zcmMvdGVzdHMvTWFrZWZpbGUuYW0KLWluZGV4IDc1Y2FhYjU3Li40 N2NkM2RiMSAxMDA2NDQKLS0tLSBhL3NyYy90ZXN0cy9NYWtlZmlsZS5hbQotKysrIGIvc3JjL3Rl c3RzL01ha2VmaWxlLmFtCi1AQCAtMTMxLDExICsxMzEsMTQgQEAgQ0xFQU5GSUxFUyArPSBpYnVz LWNvbXBvc2UtbG9jYWxlcwotIGVuZGlmCi0gdGVzdF9leGVjc2RpciA9ICQobGliZXhlY2Rpcikv aW5zdGFsbGVkLXRlc3RzL2lidXMKLSBsaWJleGVjX1NDUklQVFMgPSBcCi0tICBpYnVzLWRlc2t0 b3AtdGVzdGluZy1hdXRvc3RhcnQgXAotLSAgaWJ1cy1kZXNrdG9wLXRlc3RpbmctbW9kdWxlIFwK LS0gICQoTlVMTCkKLSsgICAgaWJ1cy1kZXNrdG9wLXRlc3RpbmctYXV0b3N0YXJ0IFwKLSsgICAg aWJ1cy1kZXNrdG9wLXRlc3RpbmctbW9kdWxlIFwKLSsgICAgJChOVUxMKQotIAotLXRlc3RfZnJh bWVfREFUQSA9IG9yZy5mcmVlZGVza3RvcC5JQnVzLkRlc2t0b3AuVGVzdGluZy5kZXNrdG9wCi0r dGVzdF9mcmFtZV9EQVRBID0gXAotKyAgICAxMDAtaWJ1cy1jaS5ydWxlcyBcCi0rICAgIG9yZy5m cmVlZGVza3RvcC5JQnVzLkRlc2t0b3AuVGVzdGluZy5kZXNrdG9wIFwKLSsgICAgJChOVUxMKQot IHRlc3RfZnJhbWVkaXIgPSAkKHBrZ2RhdGFkaXIpL3Rlc3RzCi0gb3JnLmZyZWVkZXNrdG9wLklC dXMuRGVza3RvcC5UZXN0aW5nLmRlc2t0b3A6IGlidXMtZGVza3RvcC10ZXN0aW5nLmRlc2t0b3Au aW4KLSAJJChBTV9WX0dFTikgc2VkIC1lICJzfFxAbGliZXhlY2RpclxAfCQobGliZXhlY2Rpcil8 ZyIgXAotQEAgLTE5NCw2ICsxOTcsNyBAQCBpYnVzLWRlc2t0b3AtdGVzdGluZy1ydW5uZXI6IGli dXMtZGVza3RvcC10ZXN0aW5nLXJ1bm5lci5pbgotIEVYVFJBX0RJU1QgPSBcCi0gICAgICQodGVz dF9tZXRhc19pbikgXAotICAgICAkKFRFU1RTX1NDUklQVCkgXAotKyAgICAxMDAtaWJ1cy1jaS5y dWxlcyBcCi0gICAgIHJ1bnRlc3QgXAotICAgICBpYnVzLWNvbXBvc2UuYmFzaWMgXAotICAgICBp YnVzLWNvbXBvc2UuYmFzaWMyIFwKLWRpZmYgLS1naXQgYS9zcmMvdGVzdHMvaWJ1cy1jb21wb3Nl LmMgYi9zcmMvdGVzdHMvaWJ1cy1jb21wb3NlLmMKLWluZGV4IDY5Zjg0NGIyLi5jMzZiNGM4MSAx MDA2NDQKLS0tLSBhL3NyYy90ZXN0cy9pYnVzLWNvbXBvc2UuYwotKysrIGIvc3JjL3Rlc3RzL2li dXMtY29tcG9zZS5jCi1AQCAtNyw2ICs3LDE3IEBACi0gI2RlZmluZSBSRUQgICAiXDAzM1swOzMx bSIKLSAjZGVmaW5lIE5DICAgICJcMDMzWzBtIgotIAotKyNkZWZpbmUgaWJ1c19icmVha19pZl9m YWlsKGV4cHIpIFwKLSsgICAgR19TVE1UX1NUQVJUIHsgXAotKyAgICAgICAgaWYgKEdfTElLRUxZ IChleHByKSkgeyBcCi0rICAgICAgICB9IGVsc2UgeyBcCi0rICAgICAgICAgICAgZ19yZXR1cm5f aWZfZmFpbF93YXJuaW5nIChHX0xPR19ET01BSU4sIFwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdfU1RSRlVOQywgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgI2V4cHIpOyBcCi0rICAgICAgICAgICAgYnJlYWs7IFwKLSsgICAgICAgIH0g XAotKyAgICB9IEdfU1RNVF9FTkQKLSsKLSBzdGF0aWMgZ2NoYXIgKm1fdGVzdF9sb2NhbGU7Ci0g c3RhdGljIGdjaGFyICptX3Rlc3RfbmFtZTsKLSBzdGF0aWMgZ2NoYXIgKm1fc2Vzc2lvbl9uYW1l OwotQEAgLTExMyw2ICsxMjQsNjcgQEAgZ2V0X2NvbXBvc2VfcGF0aCAoKQotIH0KLSAKLSAKLStz dGF0aWMgdm9pZAotK3Rha2Vfc2NyZWVuc2hvdCAodm9pZCkKLSt7Ci0rICAgIGdpbnQ2NCB0Owot KyAgICBHRGF0ZVRpbWUgKmR0OwotKyAgICBnY2hhciAqcHJnbmFtZSA9IE5VTEw7Ci0rICAgIGdj aGFyICpjYXNlbmFtZSA9IE5VTEw7Ci0rICAgIGdjaGFyICpmaWxlbmFtZSA9IE5VTEw7Ci0rICAg IGdjaGFyICpwYXRoID0gTlVMTDsKLSsgICAgZ2NoYXIgKmFyZ3NbNF0gPSB7ICJnbm9tZS1zY3Jl ZW5zaG90IiwgIi0tZmlsZSIsIDAsIDAgfTsKLSsgICAgR1NwYXduRmxhZ3MgZmxhZ3MgPSBHX1NQ QVdOX1NFQVJDSF9QQVRIOwotKyAgICBnY2hhciAqc3RkX291dHB1dCA9IE5VTEw7Ci0rICAgIGdj aGFyICpzdGRfZXJyb3IgPSBOVUxMOwotKyAgICBHRXJyb3IgKmVycm9yID0gTlVMTDsKLSsKLSsg ICAgdCA9IGdfZ2V0X3JlYWxfdGltZSAoKTsKLSsgICAgdCA9IHQgLyBHX1VTRUNfUEVSX1NFQzsK LSsgICAgZHQgPSBnX2RhdGVfdGltZV9uZXdfZnJvbV91bml4X3V0YyAodCk7Ci0rICAgIGdfcmV0 dXJuX2lmX2ZhaWwgKGR0KTsKLSsKLSsgICAgd2hpbGUgKEZBTFNFKSB7Ci0rICAgICAgICBwcmdu YW1lID0gZ19wYXRoX2dldF9iYXNlbmFtZSAoZ19nZXRfcHJnbmFtZSAoKSk7Ci0rICAgICAgICBj YXNlbmFtZSA9IGdfcGF0aF9nZXRfYmFzZW5hbWUgKGdfdGVzdF9nZXRfcGF0aCAoKSk7Ci0rICAg ICAgICBpYnVzX2JyZWFrX2lmX2ZhaWwgKHByZ25hbWUpOwotKyAgICAgICAgaWJ1c19icmVha19p Zl9mYWlsIChjYXNlbmFtZSk7Ci0rICAgICAgICBmaWxlbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAo IiVzJXMtJTAyZCUwMmQlMDJkLnBuZyIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcHJnbmFtZSwgY2FzZW5hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ19kYXRlX3RpbWVfZ2V0X2hvdXIgKGR0KSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnX2RhdGVfdGltZV9nZXRfbWludXRlIChkdCksCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ19kYXRlX3RpbWVfZ2V0X3NlY29uZCAoZHQpKTsKLSsg ICAgICAgIGlidXNfYnJlYWtfaWZfZmFpbCAoZmlsZW5hbWUpOwotKyAgICAgICAgLyogVGhlIGli dXMtY29tcG9zZS1sb2NhbGVzIHJ1bnMgaW4gYSB0ZW1wIGRpci4gKi8KLSsgICAgICAgIHBhdGgg PSBnX2J1aWxkX2ZpbGVuYW1lIChnX2dldF9ob21lX2RpciAoKSwgZmlsZW5hbWUsIE5VTEwpOwot KyAgICAgICAgaWJ1c19icmVha19pZl9mYWlsIChwYXRoKTsKLSsgICAgICAgIGFyZ3NbMl0gPSBw YXRoOwotKyAgICAgICAgaWYgKCFnX3NwYXduX3N5bmMgKE5VTEwsIGFyZ3MsIE5VTEwsIGZsYWdz LCBOVUxMLCBOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICZzdGRfb3V0cHV0LCAm c3RkX2Vycm9yLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgJmVycm9yKSkgewotKyAgICAgICAgICAgIGdfd2FybmluZyAoIkZh aWxlZCB0byB0YWtlIGEgc2NyZWVuc2hvdDogJXM6ICVzOiAlcyIsCi0rICAgICAgICAgICAgICAg ICAgICAgICBlcnJvci0+bWVzc2FnZSwKLSsgICAgICAgICAgICAgICAgICAgICAgIHN0ZF9vdXRw dXQgPyBzdGRfb3V0cHV0IDogIiIsCi0rICAgICAgICAgICAgICAgICAgICAgICBzdGRfZXJyb3Ig PyBzdGRfZXJyb3IgOiAiIik7Ci0rICAgICAgICAgICAgZ19lcnJvcl9mcmVlIChlcnJvcik7Ci0r ICAgICAgICB9IGVsc2UgaWYgKHN0ZF9lcnJvciAmJiAqc3RkX2Vycm9yKSB7Ci0rICAgICAgICAg ICAgZ193YXJuaW5nICgiRmFpbGVkIHRvIHRha2UgYSBzY3JlZW5zaG90OiAlczogJXMiLAotKyAg ICAgICAgICAgICAgICAgICAgICAgc3RkX291dHB1dCA/IHN0ZF9vdXRwdXQgOiAiIiwKLSsgICAg ICAgICAgICAgICAgICAgICAgIHN0ZF9lcnJvcik7Ci0rICAgICAgICB9Ci0rICAgIH0KLSsKLSsg ICAgZ19mcmVlIChwcmduYW1lKTsKLSsgICAgZ19mcmVlIChjYXNlbmFtZSk7Ci0rICAgIGdfZGF0 ZV90aW1lX3VucmVmIChkdCk7Ci0rICAgIGdfZnJlZSAoZmlsZW5hbWUpOwotKyAgICBnX2ZyZWUg KHBhdGgpOwotKyAgICBnX2ZyZWUgKHN0ZF9vdXRwdXQpOwotKyAgICBnX2ZyZWUgKHN0ZF9lcnJv cik7Ci0rfQotKwotKwotIGdib29sZWFuCi0gaWRsZV9jYiAoZ3BvaW50ZXIgdXNlcl9kYXRhKQot IHsKLUBAIC00MzYsOSArNTA4LDEzIEBAIHNldF9lbmdpbmVfY2IgKEdPYmplY3QgICAgICAqb2Jq ZWN0LAotICAgICAgICAgcmV0dXJuOwotICAgICB9Ci0gCi0rICAgIGlmIChnX2dldGVudiAoIklC VVNfVEVTVF9TQ1JFRU5TSE9UIikpCi0rICAgICAgICB0YWtlX3NjcmVlbnNob3QgKCk7Ci0gICAg IHNlbmRfa2V5X2V2ZW50IChtX2NvbXBvc2VfdGFibGUpOwotICAgICBpZiAobV9ub19sb2FkX2Nv bXBvc2VfdGFibGUpCi0gICAgICAgICBzZW5kX2tleV9ldmVudCAobV9ub19sb2FkX2NvbXBvc2Vf dGFibGUpOwotKyAgICBpZiAoZ19nZXRlbnYgKCJJQlVTX1RFU1RfU0NSRUVOU0hPVCIpKQotKyAg ICAgICAgdGFrZV9zY3JlZW5zaG90ICgpOwotIAotICNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoNCwg MCwgMCkKLSAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jICgKLWRpZmYg LS1naXQgYS9zcmMvdGVzdHMvaWJ1cy1kZXNrdG9wLXRlc3RpbmctYXV0b3N0YXJ0LmluIGIvc3Jj L3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLWF1dG9zdGFydC5pbgotaW5kZXggOWVjYzhjMjcu LmE5YTU3YmVkIDEwMDc1NQotLS0tIGEvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLWF1 dG9zdGFydC5pbgotKysrIGIvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLWF1dG9zdGFy dC5pbgotQEAgLTc2LDYgKzc2LDcgQEAgbWFpbigpCi0gICAgICNydW5fbW9uaXRvcgotICAgICBz YXZlX3NjcmVlbgotICAgICBydW5fdGVzdF9zdWl0ZQotKyAgICBkdW1wX3NjcmVlbl9vZl90ZXN0 X2Nhc2VzCi0gICAgIGZpbml0Ci0gfQotIAotZGlmZiAtLWdpdCBhL3NyYy90ZXN0cy9pYnVzLWRl c2t0b3AtdGVzdGluZy1tb2R1bGUgYi9zcmMvdGVzdHMvaWJ1cy1kZXNrdG9wLXRlc3RpbmctbW9k dWxlCi1pbmRleCA1NWViMjQ4ZS4uYjcxZDczYTkgMTAwNzU1Ci0tLS0gYS9zcmMvdGVzdHMvaWJ1 cy1kZXNrdG9wLXRlc3RpbmctbW9kdWxlCi0rKysgYi9zcmMvdGVzdHMvaWJ1cy1kZXNrdG9wLXRl c3RpbmctbW9kdWxlCi1AQCAtNTEsMTYgKzUxLDE5IEBAIFRFU1RfVVNFUj1pdGVzdHVzZXIKLSBU RVNUX1VTRVJfSE9NRT0vZXhwb3J0L2hvbWUvJFRFU1RfVVNFUgotIEdETV9DT05GPS9ydW4vZ2Rt L2N1c3RvbS5jb25mCi0gQVVUT1NUQVJUX0RFU0tUT1BfRklMRT0ib3JnLmZyZWVkZXNrdG9wLklC dXMuRGVza3RvcC5UZXN0aW5nLmRlc2t0b3AiCi0rUE9MS0lUX0NVU1RPTV9SVUxFX0ZJTEU9IjEw MC1pYnVzLWNpLnJ1bGVzIgotIFRFU1RTPSIiCi0gVElNRU9VVD0zMDAKLSBHUkVFTj0nXDAzM1sw OzMybScKLSBSRUQ9J1wwMzNbMDszMW0nCi0gTkM9J1wwMzNbMG0nCi0rRFE9JyInCi0gRU5WX0NI RUNLPTAKLSBFTlZfQ09NTUFORFM9JwotIGlkCi0gcHdkCi0gcHN0cmVlIC1hc3AgJCQKLSt0ciAi XFwwIiAiXFxuIiA8IC9wcm9jLyQkL2Vudmlyb24KLSBnc2V0dGluZ3MgbGlzdC1yZWN1cnNpdmVs eSBvcmcuZ25vbWUuc2hlbGwKLSBycG0gLXEgZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW5vLW92ZXJ2 aWV3IGdub21lLXNoZWxsIGdub21lLXNlc3Npb24KLSBwcyAtZWYgfCBncmVwIGlidXMgfCBncmVw IC12IFRNVCB8IGdyZXAgLXYgZ3JlcAotQEAgLTEzMiw3ICsxMzUsNyBAQCBkZWxldGUtdGVzdHNc Ci0gY2hlY2tfdHR5KCkKLSB7Ci0gICAgIFRUWT1gdHR5YAotLSAgICBpZiBlY2hvICRQUk9HTkFN RSB8IGdyZXAgLXEgcnVubmVyIDsgdGhlbgotKyAgICBpZiBlY2hvICIkUFJPR05BTUUiIHwgZ3Jl cCAtcSBydW5uZXIgOyB0aGVuCi0gICAgICAgICBpZiBbICRFTkFCTEVEX1NZU1RFTUQgLWVxIDEg XSAmJiBbICAkU0VTU0lPTl9JU19HTk9NRSAtZXEgMSBdIDsgdGhlbgotICAgICAgICAgICAgICMg Im5vdCBhIHR0eSIgaXMgY29ycmVjdCB3aXRoIFRNVCB0b29sCi0gICAgICAgICAgICAgaWYgZWNo byAiJFRUWSIgfCBncmVwIC1FICd0dHl8Y29uc29sZScgfCBncmVwIC12ICJub3QgYSB0dHkiIDsg dGhlbgotQEAgLTIxNyw2ICsyMjAsMjAgQEAgc2F2ZV9zY3JlZW4oKQotIH0KLSAKLSAKLStkdW1w X3NjcmVlbl9vZl90ZXN0X2Nhc2VzKCkKLSt7Ci0rICAgIGlmIHRlc3QgeCIkU0NSRUVOX0xPRyIg IT0geFNURE9VVCA7IHRoZW4KLSsgICAgICAgIHJldHVybgotKyAgICBmaQotKyAgICBmb3IgcG5n IGluICIkVEVTVF9VU0VSX0hPTUUiLyoucG5nIDsgZG8KLSsgICAgICAgIHRlc3QgLWYgIiRwbmci IHx8IGNvbnRpbnVlCi0rICAgICAgICBlY2hvICIjIyBEdW1wIHN0YXJ0ICRwbmciIDI+PiRURVNU X0xPRyAxPj4kVEVTVF9MT0cKLSsgICAgICAgIGJhc2U2NCAiJHBuZyIgICAgICAgICAgICAgMj4+ JFRFU1RfTE9HIDE+PiRURVNUX0xPRwotKyAgICAgICAgZWNobyAiIyMgRHVtcCBlbmQgJHBuZyIg ICAyPj4kVEVTVF9MT0cgMT4+JFRFU1RfTE9HCi0rICAgIGRvbmUKLSt9Ci0rCi0rCi0gY3JlYXRl X3Rlc3RfdXNlcigpCi0gewotICAgICBpZiBncmVwIC1xICRURVNUX1VTRVIgL2V0Yy9wYXNzd2Q7 IHRoZW4KLUBAIC0yMzAsMTAgKzI0NywxMSBAQCBjcmVhdGVfdGVzdF91c2VyKCkKLSAKLSBjcmVh dGVfYXV0b2xvZ2luX2dkbSgpCi0gewotLSAgICBpZiB0ZXN0IC1mICRHRE1fQ09ORiAmJiBncmVw IC1xICRURVNUX1VTRVIgJEdETV9DT05GOyB0aGVuCi0rICAgIG1rZGlyIC1wICBgZGlybmFtZSAi JEdETV9DT05GImAKLSsgICAgaWYgdGVzdCAtZiAiJEdETV9DT05GIiAmJiBncmVwIC1xICIkVEVT VF9VU0VSIiAiJEdETV9DT05GIjsgdGhlbgotICAgICAgICAgcmV0dXJuOwotICAgICBmaQotLSAg ICBjYXQgPiAkR0RNX0NPTkYgPDwgX0VPRl9HRE1fQ09ORgotKyAgICBjYXQgPiAiJEdETV9DT05G IiA8PCBfRU9GX0dETV9DT05GCi0gW2RhZW1vbl0KLSBBdXRvbWF0aWNMb2dpbkVuYWJsZT10cnVl Ci0gQXV0b21hdGljTG9naW49JFRFU1RfVVNFUgotQEAgLTI1Niw3ICsyNzQsMTIgQEAgY3JlYXRl X3hkZ19hdXRvc3RhcnQoKQotICAgICAgICAgZXhpdCAxCi0gICAgIGZpCi0gICAgIG1rZGlyIC1w ICIkVEVTVF9VU0VSX0hPTUUvLmNvbmZpZy9hdXRvc3RhcnQiCi0tICAgIHNlZCAtZSAicy9cKF5F eGVjPS4qXCl0ZXN0cyBpYnVzXCguKlwpL1wxdGVzdHMgJFRFU1RTXDIvIiAiJGRlc2t0b3BfZmls ZSIgXAotKyAgICBBUkdTX1BMVVM9IiIKLSsgICAgaWYgdGVzdCB4IiRTQ1JFRU5fTE9HIiAhPSB4 IDsgdGhlbgotKyAgICAgICAgQVJHU19QTFVTPSIkQVJHU19QTFVTIC0tc2NyZWVuZHVtcCAkU0NS RUVOX0xPRyIKLSsgICAgZmkKLSsgICAgc2VkIC1lICJzL1woXkV4ZWM9LipcKXRlc3RzIGlidXNc KC4qXCkvXDF0ZXN0cyAkVEVTVFMgJEFSR1NfUExVU1wyLyIgXAotKyAgICAgICAgIiRkZXNrdG9w X2ZpbGUiIFwKLSAgICAgICAgID4gIiRURVNUX1VTRVJfSE9NRS8uY29uZmlnL2F1dG9zdGFydC8k QVVUT1NUQVJUX0RFU0tUT1BfRklMRSIKLSAgICAgTElORT0iQXV0b3N0YXJ0Q29uZGl0aW9uPWlm LWV4aXN0cyAkVEVTVF9VU0VSX0hPTUUvLmNvbmZpZy9hdXRvc3RhcnQvJEFVVE9TVEFSVF9ERVNL VE9QX0ZJTEUiCi0gICAgIGVjaG8gIiRMSU5FIiA+PiAiJFRFU1RfVVNFUl9IT01FLy5jb25maWcv YXV0b3N0YXJ0LyRBVVRPU1RBUlRfREVTS1RPUF9GSUxFIgotQEAgLTMzNCw2ICszNTcsMjEgQEAg aW5pdF9zZXNzaW9uKCkKLSAgICAgICAgIFRFU1RTPSdpYnVzJwotICAgICBmaQotICAgICBjaGVj a190dHkKLSsgICAgSVNfU1lTVEVNX0FDQ09VTlQ9ZmFsc2UKLSsgICAgaWYgWyAiJExPR0lOX1VT RVIiID0gInJvb3QiIF0gOyB0aGVuCi0rICAgICAgICAgICAgSVNfU1lTVEVNX0FDQ09VTlQ9dHJ1 ZQotKyAgICBmaQotKyAgICBpZiB0ZXN0IHgiJFNFU1NJT05fTEFORyIgPSB4IDsgdGhlbgotKyAg ICAgICAgU0VTU0lPTl9MQU5HPSRMQU5HCi0rICAgIGZpCi0rICAgIGlmIHRlc3QgeCIkU0NSRUVO X0xPRyIgIT0geCA7IHRoZW4KLSsgICAgICAgIGV4cG9ydCBJQlVTX1RFU1RfU0NSRUVOU0hPVD0x Ci0rICAgIGZpCi0rCi0rICAgIGlmICEgZWNobyAiJFBST0dOQU1FIiB8IGdyZXAgLXEgcnVubmVy IDsgdGhlbgotKyAgICAgICAgcmV0dXJuCi0rICAgIGZpCi0rCi0gICAgIGlmIFsgJEVOQUJMRURf U1lTVEVNRCAtZXEgMSBdICYmIFsgICRTRVNTSU9OX0lTX0dOT01FIC1lcSAxIF0gOyB0aGVuCi0g ICAgICAgICBTRVNTSU9OX0ZJTEUxPSIvdXNyL2xpYi9zeXN0ZW1kL3N5c3RlbS9nbm9tZS1oZWFk bGVzcy1zZXNzaW9uQC5zZXJ2aWNlIgotICAgICAgICAgU0VTU0lPTl9GSUxFMj0iL3Vzci9saWIv c3lzdGVtZC9zeXN0ZW0vZ3JhcGhpY2FsLnRhcmdldCIKLUBAIC0zNjUsMTMgKzQwMyw2IEBAIGlu aXRfc2Vzc2lvbigpCi0gICAgICAgICB0b3VjaCAkTE9HSU5fSE9NRS8uY29uZmlnL2dub21lLWlu aXRpYWwtc2V0dXAtZG9uZQotICAgICAgICAgY2hvd24gLVIgJExPR0lOX1VTRVIgJExPR0lOX0hP TUUvLmNvbmZpZwotICAgICBmaQotLSAgICBJU19TWVNURU1fQUNDT1VOVD1mYWxzZQotLSAgICBp ZiBbICIkTE9HSU5fVVNFUiIgPSAicm9vdCIgXSA7IHRoZW4KLS0gICAgICAgICAgICBJU19TWVNU RU1fQUNDT1VOVD10cnVlCi0tICAgIGZpCi0tICAgIGlmIHRlc3QgeCIkU0VTU0lPTl9MQU5HIiA9 IHggOyB0aGVuCi0tICAgICAgICBTRVNTSU9OX0xBTkc9JExBTkcKLS0gICAgZmkKLSAgICAgaWYg dGVzdCAtZiAvdmFyL2xpYi9BY2NvdW50c1NlcnZpY2UvdXNlcnMvJExPR0lOX1VTRVI7IHRoZW4K LSAgICAgICAgIHNlZCAtaSAtZSAicy9cKExhbmd1YWdlPVwpLiovXDEkU0VTU0lPTl9MQU5HLyIg XAotICAgICAgICAgICAgICAgICAvdmFyL2xpYi9BY2NvdW50c1NlcnZpY2UvdXNlcnMvJExPR0lO X1VTRVIKLUBAIC0zODQsNiArNDE1LDM1IEBAIFhTZXNzaW9uPWdub21lCi0gU3lzdGVtQWNjb3Vu dD0kSVNfU1lTVEVNX0FDQ09VTlQKLSBfRU9GX0FTX0NPTkYKLSAgICAgZmkKLSsgICAgIyBmb3Ig aWJ1cy1rZXlwcmVzcwotKyAgICBscyAtbCAvZGV2L3VpbnB1dCAyPj4kVEVTVF9MT0cgMT4+JFRF U1RfTE9HCi0rICAgIGNoZ3JwIGl0ZXN0dXNlciAvZGV2L3VpbnB1dAotKyAgICBjaG1vZCBnK3J3 IC9kZXYvdWlucHV0Ci0rICAgIGxzIC1sIC9kZXYvdWlucHV0IDI+PiRURVNUX0xPRyAxPj4kVEVT VF9MT0cKLSsKLSsgICAgIyBhY2l0b24uaWQgJ29yZy5mcmVlZGVza3RvcC5md3VwZC5yZWZyZXNo LXJlbW90ZScgYW5kCi0rICAgICMgYWNpdG9uLm1lc3NhZ2UgIkF1dGhlbnRpY2F0aW9uIGlzIHJl cXVpcmVkIHRvIHVwZGF0ZSB0aGUgbWV0YWRhdGEgZm9yIGEgIgotKyAgICAjICJjb25maWd1cmVk IHJlbW90ZSB1c2VkIGZvciBmaXJtd2FyZSB1cGRhdGVzIiBpcyBkZWZpbmVkIGluCi0rICAgICMg L3Vzci9zaGFyZS9wb2xraXQtMS9hY3Rpb25zL29yZy5mcmVlZGVza3RvcC5md3VwZC5wb2xpY3kg ZmlsZQotKyAgICAjIGFuZCB0aGF0IG1lc3NhZ2UgaXMgc2hvd24gaW4gIkF1dGhlbnRpY2F0aW9u IFJlcXVpcmVkIiBkaWFsb2cgaW4KLSsgICAgIyBnbm9tZS1zaGVsbCBoZWFkbGVzcyBzZXNzaW9u IGluIEdOT01FIDUwLgotKyAgICAjIGFjdGlvbi5pZCAnb3JnLmZyZWVkZXNrdG9wLkZsYXRwYWsu bWV0YWRhdGEtdXBkYXRlJyBhbmQKLSsgICAgIyBhY3Rpb24uaWQgJ29yZy5mcmVlZGVza3RvcC5G bGF0cGFrLm1vZGlmeS1yZXBvJyBhcmUgYWxzbyBzaG93bi4KLSsgICAgcnVsZV9maWxlPSIkQVVU T1NUQVJUX0RFU0tUT1BfRElSLyRQT0xLSVRfQ1VTVE9NX1JVTEVfRklMRSIKLSsgICAgaWYgdGVz dCAhIC1mICIkcnVsZV9maWxlIiA7IHRoZW4KLSsgICAgICAgIHByaW50X2xvZyAtZSAiJHtSRUR9 RkFJTCR7TkN9OiAke1JFRH1FUlJPUiR7TkN9OiBObyAkcnVsZV9maWxlIgotKyAgICAgICAgZXhp dCAxCi0rICAgIGZpCi0rICAgIFBPTEtJVF9DVVNUT01fUlVMRV9ESVI9Ii9ldGMvcG9sa2l0LTEv cnVsZXMuZCIKLSsgICAgaWYgdGVzdCAhIC1kICIkUE9MS0lUX0NVU1RPTV9SVUxFX0RJUiIgOyB0 aGVuCi0rICAgICAgICBta2RpciAtcCAgIiRQT0xLSVRfQ1VTVE9NX1JVTEVfRElSIgotKyAgICAg ICAgY2htb2QgNzU1ICIkUE9MS0lUX0NVU1RPTV9SVUxFX0RJUiIKLSsgICAgZmkKLSsgICAgaWYg dGVzdCAhIC1mICIkUE9MS0lUX0NVU1RPTV9SVUxFX0RJUi8kUE9MS0lUX0NVU1RPTV9SVUxFX0ZJ TEUiIDsgdGhlbgotKyAgICAgICAgY3AgIiRydWxlX2ZpbGUiICIkUE9MS0lUX0NVU1RPTV9SVUxF X0RJUi8kUE9MS0lUX0NVU1RPTV9SVUxFX0ZJTEUiCi0rICAgICAgICBjaG1vZCA2NDQgIiRQT0xL SVRfQ1VTVE9NX1JVTEVfRElSLyRQT0xLSVRfQ1VTVE9NX1JVTEVfRklMRSIKLSsgICAgICAgIHN5 c3RlbWN0bCByZXN0YXJ0IHBvbGtpdAotKyAgICBmaQotIAotICAgICAjIFByZXZlbnQgZnJvbSBs YXVuY2hpbmcgYSBYREcgZGlhbG9nCi0gICAgIFhER19MT0NBTEVfRklMRT0iJExPR0lOX0hPTUUv LmNvbmZpZy91c2VyLWRpcnMubG9jYWxlIgotQEAgLTUwMywxOSArNTYzLDM5IEBAIGluaXRfZ25v bWUoKQotICAgICAjIyBnbm9tZS1oZWFkbGVzcy1zZXNzaW9uIGRvZXMgbm90IHB1bGwgTEFORyBm cm9tIEFjY291bnRzU2VydmljZS4KLSAgICAgIyMKLSAgICAgaWYgWyAkTE9HSU5fVVNFUiAhPSAk VVNFUiBdIDsgdGhlbgotLSAgICAgICAgU0hFTExfU0VSVklDRV9GSUxFPSJvcmcuZ25vbWUuU2hl bGxAd2F5bGFuZC5zZXJ2aWNlIgotKyAgICAgICAgU0hFTExfU0VSVklDRV9GSUxFPSJvcmcuZ25v bWUuU2hlbGxALnNlcnZpY2UiCi0rICAgICAgICBTSEVMTF9TRVJWSUNFX0RFU1RfRklMRT0ib3Jn Lmdub21lLlNoZWxsQHVzZXIuc2VydmljZSIKLSAgICAgICAgIFNZU1RFTURfVVNFUl9ESVI9IiRU RVNUX1VTRVJfSE9NRS8uY29uZmlnL3N5c3RlbWQvdXNlciIKLSAgICAgICAgIEVOVl9VU0VSX0RJ Uj0iJFRFU1RfVVNFUl9IT01FLy5jb25maWcvZW52aXJvbm1lbnQuZCIKLSAgICAgICAgIExPQ0FM RV9DT05GPSIkRU5WX1VTRVJfRElSL2lidXMuY29uZiIKLSsgICAgICAgICMgSWYgR05PTUUgdmVy c2lvbiA8IDUwCi0rICAgICAgICBpZiB0ZXN0ICEgLWYgIiRTWVNURU1EX1NZU1RFTV9ESVIvJFNI RUxMX1NFUlZJQ0VfRklMRSIgOyB0aGVuCi0rICAgICAgICAgICAgU0hFTExfU0VSVklDRV9GSUxF PSJvcmcuZ25vbWUuU2hlbGxAd2F5bGFuZC5zZXJ2aWNlIgotKyAgICAgICAgICAgIFNIRUxMX1NF UlZJQ0VfREVTVF9GSUxFPSIkU0hFTExfU0VSVklDRV9GSUxFIgotKyAgICAgICAgZWxzZQotKyAg ICAgICAgICAgIEdOT01FX1NIRUxMX1dBWUxBTkRfQ09NTUFORD0iJEdOT01FX1NIRUxMX1dBWUxB TkRfQ09NTUFORCAtLW1vZGU9JWkiCi0rICAgICAgICBmaQotKyAgICAgICAgaWYgdGVzdCB4IiRT Q1JFRU5fTE9HIiAhPSB4IDsgdGhlbgotKyAgICAgICAgICAgIEdOT01FX1NIRUxMX1dBWUxBTkRf Q09NTUFORD0iJEdOT01FX1NIRUxMX1dBWUxBTkRfQ09NTUFORCAtLXVuc2FmZS1tb2RlIgotKyAg ICAgICAgZmkKLSAgICAgICAgIGlmIHRlc3QgJEhBVkVfR1JBUEhJQ1MgLW5lIDEgOyB0aGVuCi0g ICAgICAgICAgICAgaWYgdGVzdCAhIC1mICIkU1lTVEVNRF9VU0VSX0RJUi8kU0hFTExfU0VSVklD RV9GSUxFIiA7IHRoZW4KLSsgICAgICAgICAgICAgICAgUFJFVl9ESVI9IiRQV0QiCi0gICAgICAg ICAgICAgICAgIG1rZGlyIC1wICIkU1lTVEVNRF9VU0VSX0RJUiIKLS0gICAgICAgICAgICAgICAg cHVzaGQgIiRTWVNURU1EX1VTRVJfRElSIgotKyAgICAgICAgICAgICAgICBjZCAiJFNZU1RFTURf VVNFUl9ESVIiCi0rICAgICAgICAgICAgICAgICMgVGhlIHVzZXIgc3lzdGVtZCBhbmQgJEdOT01F X1NIRUxMX1dBWUxBTkRfQ09NTUFORCBubyBsb25nZXIKLSsgICAgICAgICAgICAgICAgIyBsb2Fk cyAkTE9DQUxFX0NPTkYgZmlsZQotKyAgICAgICAgICAgICAgICAjIFNvIHNldHMgRW52aXJvbm1l bnQgaW4gdGhlIHNlcnZpY2UgZmlsZS4KLSAgICAgICAgICAgICAgICAgc2VkIC1lICJzfF5FeGVj U3RhcnQ9Lip8RXhlY1N0YXJ0PSRHTk9NRV9TSEVMTF9XQVlMQU5EX0NPTU1BTkR8IiBcCi0tICAg ICAgICAgICAgICAgICAgICAkU1lTVEVNRF9TWVNURU1fRElSLyRTSEVMTF9TRVJWSUNFX0ZJTEUg XAotLSAgICAgICAgICAgICAgICAgICAgPiAkU0hFTExfU0VSVklDRV9GSUxFCi0tICAgICAgICAg ICAgICAgIGRpZmYgJFNZU1RFTURfU1lTVEVNX0RJUi8kU0hFTExfU0VSVklDRV9GSUxFICRTSEVM TF9TRVJWSUNFX0ZJTEUKLS0gICAgICAgICAgICAgICAgcG9wZAotKyAgICAgICAgICAgICAgICAg ICAgJFNZU1RFTURfU1lTVEVNX0RJUi8kU0hFTExfU0VSVklDRV9GSUxFIHwgXAotKyAgICAgICAg ICAgICAgICBzZWQgLWUgIi9eRXhlY1N0YXJ0PS9pXFwKLStFbnZpcm9ubWVudD1MQU5HPSREUSRT RVNTSU9OX0xBTkckRFEiIFwKLSsgICAgICAgICAgICAgICAgICAgID4gIiRTSEVMTF9TRVJWSUNF X0RFU1RfRklMRSIKLSsgICAgICAgICAgICAgICAgZWNobyAiIyBkaWZmICRTWVNURU1EX1NZU1RF TV9ESVIvJFNIRUxMX1NFUlZJQ0VfRklMRSIgXAotKyAgICAgICAgICAgICAgICAgICAgICIkU0hF TExfU0VSVklDRV9ERVNUX0ZJTEUiIDI+PiRURVNUX0xPRyAxPj4kVEVTVF9MT0cKLSsgICAgICAg ICAgICAgICAgZGlmZiAiJFNZU1RFTURfU1lTVEVNX0RJUi8kU0hFTExfU0VSVklDRV9GSUxFIiBc Ci0rICAgICAgICAgICAgICAgICAgICAgIiRTSEVMTF9TRVJWSUNFX0RFU1RfRklMRSIgMj4+JFRF U1RfTE9HIDE+PiRURVNUX0xPRwotKyAgICAgICAgICAgICAgICBjZCAiJFBSRVZfRElSIgotICAg ICAgICAgICAgIGZpCi0gICAgICAgICAgICAgbWtkaXIgLXAgIiRFTlZfVVNFUl9ESVIiCi0gICAg ICAgICAgICAgY2F0ID4gIiRMT0NBTEVfQ09ORiIgPDwgX0VPRl9MT0NBTEVfQ09ORgotQEAgLTU5 MCw3ICs2NzAsNyBAQCBvcGVyYXRlX2Rlc2t0b3Bfd2l0aF9zeXN0ZW1kKCkKLSAgICAgICAgICJz dGFydCIpIHN5c3RlbWN0bCBpc29sYXRlIGdyYXBoaWNhbC50YXJnZXQKLSAgICAgICAgICAgICAg ICAgIGVjaG8gIiIKLSAgICAgICAgICAgICAgICAgIDs7Ci0tICAgICAgICAic3RvcCIpICBpbml0 IDM7OwotKyAgICAgICAgInN0b3AiKSAgc3lzdGVtY3RsIGlzb2xhdGUgbXVsdGktdXNlci50YXJn ZXQ7OwotICAgICAgICAgIiIpICAgICAgcHJpbnRfbG9nIC1lICIke1JFRH1GQUlMJHtOQ306ICR7 UkVEfUVSUk9SJHtOQ306IFdyb25nIGNvbW1hbmQgJENPTU1BTkQiCi0gICAgICAgICAgICAgICAg ICBleGl0IDE7OwotICAgICAgICAgZXNhYwotQEAgLTgwOCw2ICs4ODgsOCBAQCBydW5fZ25vbWVf ZGVza3RvcF90ZXN0aW5nX3J1bm5lcigpCi0gICAgIGZhaWw9MAotICAgICBpZiBlY2hvICRQUk9H TkFNRSB8IGdyZXAgLXEgYXV0b3N0YXJ0IDsgdGhlbgotICAgICAgICAgZXhwb3J0IElCVVNfREFF TU9OX1dJVEhfU1lTVEVNRD0xCi0rICAgICAgICAjZXhwb3J0IEdTS19SRU5ERVJFUj1jYWlybwot KyAgICAgICAgZXhwb3J0IFZLX0lDRF9GSUxFTkFNRVM9L3Vzci9zaGFyZS92dWxrYW4vaWNkLmQv bHZwX2ljZC5gdW5hbWUgLW1gLmpzb24KLSAgICAgZmkKLSAgICAgZm9yIHRzdCBpbiAkVEVTVFM7 IGRvCi0gICAgICAgICB0c3RfZGlyPSIkVEVTVF9DQVNFX0RJUi8kdHN0IgotQEAgLTg0MCw3ICs5 MjIsNyBAQCBFT0YKLSBydW5fdGVzdF9zdWl0ZSgpCi0gewotICAgICBwcmludF9sb2cgLWUgIlN0 YXJ0IHRlc3Qgc3VpdGUgYGRhdGUgJyslRiAlSDolTTolUzolTidgIgotLSAgICBpZiBlY2hvICRQ Uk9HTkFNRSB8IGdyZXAgLXEgcnVubmVyIDsgdGhlbgotKyAgICBpZiBlY2hvICIkUFJPR05BTUUi IHwgZ3JlcCAtcSBydW5uZXIgOyB0aGVuCi0gICAgICAgICBpZiBbICRFTkFCTEVEX1NZU1RFTUQg LWVxIDEgXSAmJiBbICAkU0VTU0lPTl9JU19HTk9NRSAtZXEgMSBdIDsgdGhlbgotICAgICAgICAg ICAgIHdhaXRfZm9yX3N5c3RlbWRfYXV0b3N0YXJ0Ci0gICAgICAgICAgICAgcmV0dXJuCi1AQCAt OTAzLDcgKzk4NSw3IEBAIGZpbml0KCkKLSAgICAgICAgICAgICBlY2hvICIkTEVGVF9DQUxFTkRB UiIgfCBhd2sgJ3twcmludCAkMn0nIHwgeGFyZ3Mga2lsbAotICAgICAgICAgZmkKLSAgICAgZmkK LS0gICAgaWYgZWNobyAkUFJPR05BTUUgfCBncmVwIC1xIHJ1bm5lciA7IHRoZW4KLSsgICAgaWYg ZWNobyAiJFBST0dOQU1FIiB8IGdyZXAgLXEgcnVubmVyIDsgdGhlbgotICAgICAgICAgaWYgWyAk RU5BQkxFRF9TWVNURU1EIC1lcSAxIF0gJiYgWyAgJFNFU1NJT05fSVNfR05PTUUgLWVxIDEgXSA7 IHRoZW4KLSAgICAgICAgICAgICBvcGVyYXRlX2Rlc2t0b3Bfd2l0aF9zeXN0ZW1kICJzdG9wIgot ICAgICAgICAgZmkKLWRpZmYgLS1naXQgYS9zcmMvdGVzdHMvbWVzb24uYnVpbGQgYi9zcmMvdGVz dHMvbWVzb24uYnVpbGQKLWluZGV4IDk0YWMwM2UwLi4wYmFhNmM4ZiAxMDA2NDQKLS0tLSBhL3Ny Yy90ZXN0cy9tZXNvbi5idWlsZAotKysrIGIvc3JjL3Rlc3RzL21lc29uLmJ1aWxkCi1AQCAtMTkz LDQgKzE5Myw5IEBAIGlmIGdldF9vcHRpb24oJ2luc3RhbGwtdGVzdHMnKQotICAgICB9LAotICAg ICBpbnN0YWxsX2RpcjogcGtnZGF0YWRpciAvICd0ZXN0cycsCi0gICApCi0rCi0rICBpbnN0YWxs X2RhdGEoCi0rICAgICcxMDAtaWJ1cy1jaS5ydWxlcycsCi0rICAgIGluc3RhbGxfZGlyOiBwa2dk YXRhZGlyIC8gJ3Rlc3RzJywKLSsgICkKLSBlbmRpZgotZGlmZiAtLWdpdCBhL3NyYy90ZXN0cy9y dW50ZXN0IGIvc3JjL3Rlc3RzL3J1bnRlc3QKLWluZGV4IDRlNTQ0MjBmLi5kZWU2NzVjYiAxMDA3 NTUKLS0tLSBhL3NyYy90ZXN0cy9ydW50ZXN0Ci0rKysgYi9zcmMvdGVzdHMvcnVudGVzdAotQEAg LTk0LDEyICs5NCwxMiBAQCBmdW5jX2Rpcm5hbWUgKCkgewotIAotICMgS2lsbCBpYnVzLWRhZW1v biBwcm9jZXNzIGFuZCByZW1vdmUgdGVtcG9yYXJ5IGZpbGVzLgotIGZ1bmNfY2xlYW51cCAoKSB7 Ci0tICAgIHRzdGRpcj0kMQotLSAgICBpZiB0ZXN0IC1mICR0c3RkaXIvaWJ1cy1kYWVtb24ucGlk OyB0aGVuCi0tICAgICAgICAuICR0c3RkaXIvaWJ1cy1kYWVtb24ucGlkCi0rICAgIHRzdGRpcj0i JDEiCi0rICAgIGlmIHRlc3QgLWYgIiR0c3RkaXIvaWJ1cy1kYWVtb24ucGlkIjsgdGhlbgotKyAg ICAgICAgLiAiJHRzdGRpci9pYnVzLWRhZW1vbi5waWQiCi0gICAgICAgICBraWxsICRJQlVTX0RB RU1PTl9QSUQgPiAvZGV2L251bGwgMj4mMQotICAgICBmaQotLSAgICBybSAtZnIgJHRzdGRpcgot KyAgICBybSAtZnIgIiR0c3RkaXIiCi0gfQotIAotICMgUHJlcGFyZSBjb21wb25lbnQgZmlsZXMg bmVjZXNzYXJ5IGZvciB0ZXN0aW5nLCB1bmRlciBjb21wb25lbnRzLy4KLUBAIC0xMTUsMTMgKzEx NSwxOCBAQCBmdW5jX2NvcHlfY29tcG9uZW50ICgpIHsKLSAgICAgZmkKLSB9Ci0gCi0tdHJhcCAn ZnVuY19jbGVhbnVwICR0c3RkaXInIDEgMiAzIDE1Ci0rdHJhcCAnZnVuY19jbGVhbnVwICIkdHN0 ZGlyIicgMSAyIDMgMTUKLSAKLS10c3Q9JDE7IHNoaWZ0Ci0tdHN0ZGlyPXRtcC1gZnVuY19iYXNl bmFtZSAkdHN0YAotK3RzdD0iJDEiOyBzaGlmdAotK3JlYWxfdHN0PSIkdHN0IgotK2lmIGVjaG8g IiR0c3QiIHwgZ3JlcCAtcSAncHl0aG9uJyA7IHRoZW4KLSsgICAgcmVhbF90c3Q9IiQxIgotK2Zp Ci0rcmVhbF90c3RfbmFtZT1gZnVuY19iYXNlbmFtZSAiJHJlYWxfdHN0ImAKLSt0c3RkaXI9InRt cC0kcmVhbF90c3RfbmFtZSIKLSAKLSBmb3IgdCBpbiAkRElTQUJMRV9HVUlfVEVTVFM7IGRvCi0t ICAgIGlmIHRlc3QgJHQgPSBgZnVuY19iYXNlbmFtZSAkdHN0YDsgdGhlbgotKyAgICBpZiB0ZXN0 ICIkdCIgPSAiJHJlYWxfdHN0X25hbWUiOyB0aGVuCi0gICAgICAgICBleGl0IDc3Ci0gICAgIGZp Ci0gZG9uZQotQEAgLTEzNCwyNCArMTM5LDIyIEBAIGZpCi0gCi0gcnVuX3Rlc3RfY2FzZSgpCi0g ewotLSAgICB0ZXN0IC1kICR0c3RkaXIgfHwgbWtkaXIgJHRzdGRpcgotLSAgICBiYWNrdXBfZGly PSRQV0QKLS0gICAgY2QgJHRzdGRpcgotLQotICAgICBpZiBlY2hvICIkdHN0IiB8IGdyZXAgLXEg J3B5dGhvbicgOyB0aGVuCi0gICAgICAgICAjIENvbnZlcnQgdGhlIHJlbGF0aXZlIHBhdGggdG8g dGhlIGFic29sdXRlIHBhdGguCi0gICAgICAgICBpZiBlY2hvICIkdHN0IiB8IGdyZXAgLXEgIlwu LyIgOyB0aGVuCi0tICAgICAgICAgICAgdHN0PWByZWFscGF0aCAkdHN0YAotKyAgICAgICAgICAg IHRzdD1gcmVhbHBhdGggIiR0c3QiYAotICAgICAgICAgZWxpZiAhIGVjaG8gIiR0c3QiIHwgZ3Jl cCAtcSAiLyIgOyB0aGVuCi0tICAgICAgICAgICAgdHN0PWBjb21tYW5kIC12ICR0c3RgCi0rICAg ICAgICAgICAgdHN0PWBjb21tYW5kIC12ICIkdHN0ImAKLSAgICAgICAgIGZpCi0tICAgICAgICBu YW1lPWBmdW5jX2Jhc2VuYW1lICIkMSJgCi0tICAgIGVsc2UKLS0gICAgICAgIG5hbWU9YGZ1bmNf YmFzZW5hbWUgIiR0c3QiYAotICAgICBmaQotKwotKyAgICB0ZXN0IC1kICIkdHN0ZGlyIiB8fCBt a2RpciAiJHRzdGRpciIKLSsgICAgYmFja3VwX2Rpcj0iJFBXRCIKLSsgICAgY2QgIiR0c3RkaXIi Ci0rCi0gICAgIG5lZWRfYnVzPW5vCi0gICAgIGZvciB0IGluICRCVVNfUkVRVUlSRURfVEVTVFM7 IGRvCi0tICAgICAgICBpZiB0ZXN0ICIkdCIgPSAiJG5hbWUiOyB0aGVuCi0rICAgICAgICBpZiB0 ZXN0ICIkdCIgPSAiJHJlYWxfdHN0X25hbWUiOyB0aGVuCi0gICAgICAgICAgICAgbmVlZF9idXM9 eWVzCi0gICAgICAgICBmaQotICAgICBkb25lCi1AQCAtMTY1LDEwICsxNjgsMTAgQEAgcnVuX3Rl c3RfY2FzZSgpCi0gICAgICAgICBmdW5jX2NvcHlfY29tcG9uZW50ICIkdGVzdF90b3Bfc3JjZGly L2VuZ2luZS9zaW1wbGUueG1sIgotICAgICAgICAgZnVuY19jb3B5X2NvbXBvbmVudCAiJHRlc3Rf dG9wX3NyY2Rpci9jb25mL21lbWNvbmYvbWVtY29uZi54bWwiCi0gCi0tICAgICAgICBJQlVTX0NP TVBPTkVOVF9QQVRIPSRQV0QvY29tcG9uZW50cwotKyAgICAgICAgSUJVU19DT01QT05FTlRfUEFU SD0iJFBXRC9jb21wb25lbnRzIgotICAgICAgICAgZXhwb3J0IElCVVNfQ09NUE9ORU5UX1BBVEgK LSAKLS0gICAgICAgIElCVVNfQUREUkVTU19GSUxFPSRQV0QvaWJ1cy1kYWVtb24ucGlkCi0rICAg ICAgICBJQlVTX0FERFJFU1NfRklMRT0iJFBXRC9pYnVzLWRhZW1vbi5waWQiCi0gICAgICAgICBl eHBvcnQgSUJVU19BRERSRVNTX0ZJTEUKLSAKLSAgICAgICAgIHRlc3QgJFRFU1RfR1RLIC1lcSAx ICYmIGNhc2UgJFRFU1RfR1RLX1ZFUlNJT04gaW4KLUBAIC0xOTQsOSArMTk3LDkgQEAgcnVuX3Rl c3RfY2FzZSgpCi0gICAgICAgICAgICAgICAgIGVjaG8gIk5PVCBGT1VORCAkdG9wX2J1aWxkZGly L2NsaWVudC9ndGszL2ltLWlidXMuc28iCi0gICAgICAgICAgICAgICAgIGV4aXQgMQotICAgICAg ICAgICAgIGZpCi0tICAgICAgICAgICAgR1RLX0lNX01PRFVMRV9GSUxFPSRQV0QvaW1jYWNoZQot KyAgICAgICAgICAgIEdUS19JTV9NT0RVTEVfRklMRT0iJFBXRC9pbWNhY2hlIgotICAgICAgICAg ICAgIGV4cG9ydCBHVEtfSU1fTU9EVUxFX0ZJTEUKLS0gICAgICAgICAgICAkR1RLX1FVRVJZX01P RFVMRSAiJElNX0lCVVNfU08iID4gJEdUS19JTV9NT0RVTEVfRklMRQotKyAgICAgICAgICAgICRH VEtfUVVFUllfTU9EVUxFICIkSU1fSUJVU19TTyIgPiAiJEdUS19JTV9NT0RVTEVfRklMRSIKLSAg ICAgICAgICAgICA7OwotICAgICAgICAgKikKLSAgICAgICAgICAgICBlY2hvICJOT1QgU1VQUE9S VCBHVEtfVkVSU0lPTiAkVEVTVF9HVEtfVkVSU0lPTiIKLUBAIC0yMDQsMTkgKzIwNywxOSBAQCBy dW5fdGVzdF9jYXNlKCkKLSAgICAgICAgICAgICA7OwotICAgICAgICAgZXNhYyB8fCA6Ci0gCi0t ICAgICAgICBjcCAiJHRlc3RfdG9wX3NyY2Rpci9kYXRhL2Rjb25mLyRJQlVTX1NDSEVNQV9GSUxF IiAkUFdECi0tICAgICAgICBnbGliLWNvbXBpbGUtc2NoZW1hcyAkUFdEIDI+L2Rldi9udWxsCi0r ICAgICAgICBjcCAiJHRlc3RfdG9wX3NyY2Rpci9kYXRhL2Rjb25mLyRJQlVTX1NDSEVNQV9GSUxF IiAiJFBXRCIKLSsgICAgICAgIGdsaWItY29tcGlsZS1zY2hlbWFzICIkUFdEIiAyPi9kZXYvbnVs bAotICAgICAgICAgaWYgdGVzdCAkPyAtbmUgMCA7IHRoZW4KLSAgICAgICAgICAgICBlY2hvICJG QUlMRUQgZ2xpYi1jb21waWxlLXNjaGVtYXMiCi0gICAgICAgICAgICAgcmV0dmFsPTEKLSAgICAg ICAgICAgICByZXR1cm4KLSAgICAgICAgIGZpCi0tICAgICAgICBpZiB0ZXN0ICEgLWYgJFBXRC9n c2NoZW1hcy5jb21waWxlZCA7IHRoZW4KLSsgICAgICAgIGlmIHRlc3QgISAtZiAiJFBXRC9nc2No ZW1hcy5jb21waWxlZCIgOyB0aGVuCi0gICAgICAgICAgICAgZWNobyAiTk9UIEZPVU5EICRQV0Qv Z3NjaGVtYXMuY29tcGlsZWQiCi0gICAgICAgICAgICAgcmV0dmFsPTEKLSAgICAgICAgICAgICBy ZXR1cm4KLSAgICAgICAgIGZpCi0tICAgICAgICBleHBvcnQgR1NFVFRJTkdTX1NDSEVNQV9ESVI9 JFBXRAotKyAgICAgICAgZXhwb3J0IEdTRVRUSU5HU19TQ0hFTUFfRElSPSIkUFdEIgotIAotICAg ICAgICAgIyBTdGFydCBpYnVzLWRhZW1vbi4KLSAgICAgICAgIERBRU1PTl9BUkdTPScKLUBAIC0y MjcsMTAgKzIzMCwxMCBAQCBydW5fdGVzdF9jYXNlKCkKLSAgICAgICAgICAgICAtLXZlcmJvc2UK LSAgICAgICAgICcKLSAgICAgICAgIGlmIHRlc3QgeCIkRElTQUJMRV9EQUVNT05JWkVfSU5fVEVT VFMiID0geCA7IHRoZW4KLS0gICAgICAgICAgICAkdGVzdF90b3BfYnVpbGRkaXIvYnVzL2lidXMt ZGFlbW9uIFwKLSsgICAgICAgICAgICAiJHRlc3RfdG9wX2J1aWxkZGlyL2J1cy9pYnVzLWRhZW1v biIgXAotICAgICAgICAgICAgICAgICAkREFFTU9OX0FSR1MgLS1kYWVtb25pemU7Ci0gICAgICAg ICBlbHNlCi0tICAgICAgICAgICAgJHRlc3RfdG9wX2J1aWxkZGlyL2J1cy9pYnVzLWRhZW1vbiBc Ci0rICAgICAgICAgICAgIiR0ZXN0X3RvcF9idWlsZGRpci9idXMvaWJ1cy1kYWVtb24iIFwKLSAg ICAgICAgICAgICAgICAgJERBRU1PTl9BUkdTICYKLSAgICAgICAgIGZpCi0gCi1AQCAtMjUwLDgg KzI1Myw4IEBAIHJ1bl90ZXN0X2Nhc2UoKQotIAotICAgICBpZiBlY2hvICIkdHN0IiB8IGdyZXAg LXEgJ14vJyA7IHRoZW4KLSAgICAgICAgIGlmIGVjaG8gIiR0c3QiIHwgZ3JlcCAtcSAncHl0aG9u JyA7IHRoZW4KLS0gICAgICAgICAgICBpbnRlcnByZXRlcj0kdHN0Ci0tICAgICAgICAgICAgdHN0 PSQxCi0rICAgICAgICAgICAgaW50ZXJwcmV0ZXI9IiR0c3QiCi0rICAgICAgICAgICAgdHN0PSIk MSIKLSAgICAgICAgICAgICBzaGlmdAotICAgICAgICAgICAgIGlmIGVjaG8gIiR0c3QiIHwgZ3Jl cCAtcSAnXi8nIDsgdGhlbgotICAgICAgICAgICAgICAgICAjIGFic29sdXRlIHBhdGggZm9yIE1l c29uCi1AQCAtMjYyLDI4ICsyNjUsMjggQEAgcnVuX3Rlc3RfY2FzZSgpCi0gICAgICAgICAgICAg ZmkKLSAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAjIGFic29sdXRlIHBhdGggZm9yIE1lc29u Ci0tICAgICAgICAgICAgIiR0c3QiICR0ZXN0X3RvcF9zcmNkaXIvc3JjL3Rlc3RzICR7MSsiJEAi fQotKyAgICAgICAgICAgICIkdHN0IiAiJHRlc3RfdG9wX3NyY2Rpci9zcmMvdGVzdHMiICR7MSsi JEAifQotICAgICAgICAgZmkKLSAgICAgZWxzZQotICAgICAgICAgIyByZWxhdGl2ZSBwYXRoIGZv ciBlYWNoIGV4ZWN1dGlvbgotLSAgICAgICAgIi4uLyR0c3QiICR0ZXN0X3RvcF9zcmNkaXIvc3Jj L3Rlc3RzICR7MSsiJEAifQotKyAgICAgICAgIi4uLyR0c3QiICIkdGVzdF90b3Bfc3JjZGlyL3Ny Yy90ZXN0cyIgJHsxKyIkQCJ9Ci0gICAgIGZpCi0gCi0gICAgIHJldHZhbD1gZXhwciAkcmV0dmFs IFx8ICQ/YAotIAotLSAgICBjZCAkYmFja3VwX2RpcgotKyAgICBjZCAiJGJhY2t1cF9kaXIiCi0g Ci0tICAgIGZ1bmNfY2xlYW51cCAkdHN0ZGlyCi0rICAgIGZ1bmNfY2xlYW51cCAiJHRzdGRpciIK LSB9Ci0gCi0tZW52ZmlsZT0kc3JjZGlyL2BmdW5jX2Jhc2VuYW1lICR0c3RgLmVudgotLWlmIHRl c3QgLWYgJGVudmZpbGUgOyB0aGVuCi0rZW52ZmlsZT0iJHNyY2Rpci8kcmVhbF90c3RfbmFtZSIu ZW52Ci0raWYgdGVzdCAtZiAiJGVudmZpbGUiIDsgdGhlbgotICAgICBFTlZTPSJgY2F0ICRlbnZm aWxlYCIKLSBmaTsKLSBpZiB0ZXN0IHgiJEVOVlMiID0geCA7IHRoZW4KLSAgICAgcnVuX3Rlc3Rf Y2FzZSAkQAotIGVsc2UKLS0gICAgTEFOR19iYWNrdXA9JExBTkcKLSsgICAgTEFOR19iYWNrdXA9 IiRMQU5HIgotICAgICBpPTEKLSAgICAgIyBtZXNvbmJ1aWxkL210ZXN0LnB5OlRBUFBhcnNlci5w YXJzZV9saW5lKCkgc2F5czoKLSAgICAgIyAndmVyc2lvbiBudW1iZXIgbXVzdCBiZSBvbiB0aGUg Zmlyc3QgbGluZScKLUBAIC0zMDcsNyArMzEwLDcgQEAgZWxzZQotICAgICAgICAgdW5zZXQgQ09N UE9TRV9GSUxFCi0gICAgICAgICBleHBvcnQgJGUKLSAgICAgICAgICMgVEFQIGluZm8gc2hvdWxk IHN0YXJ0IHdpdGggIiMgIi4KLS0gICAgICAgIGVjaG8gIiMgUnVuIGBmdW5jX2Jhc2VuYW1lICR0 c3RgIG9uICRlIgotKyAgICAgICAgZWNobyAiIyBSdW4gJHJlYWxfdHN0X25hbWUgb24gJGUiCi0g ICAgICAgICBlY2hvICIjID09PT09PT09PT09PT09PT09PT09PT09IgotICAgICAgICAgcnVuX3Rl c3RfY2FzZSAkQAotICAgICAgICAgbmFtZT0iLyJgYmFzZW5hbWUgIiQxImAiOiRMQU5HOiRDT01Q T1NFX0ZJTEU6JE5PX0xPQURfQ09NUE9TRV9GSUxFIgotQEAgLTMyNSw3ICszMjgsNyBAQCBlbHNl Ci0gICAgIGBlY2hvICIkRU5WUyJgCi0gRU9GX0VOVlMKLSAgICAgdW5zZXQgR19URVNUX1JPT1Rf UFJPQ0VTUwotLSAgICBleHBvcnQgTEFORz0kTEFOR19iYWNrdXAKLSsgICAgZXhwb3J0IExBTkc9 IiRMQU5HX2JhY2t1cCIKLSBmaQotIAotIGV4aXQgJHJldHZhbAotLS0gCi0yLjU0LjAKLQotRnJv bSAxYTBkOWE2YmMzYWZlMjQxODM4Yzk3Y2EzODFlMWJkMGIzNzZhMmI1IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgot RGF0ZTogU3VuLCAxOSBKdWwgMjAyNiAxODoxMDowMSArMDkwMAotU3ViamVjdDogW1BBVENIIDIv Ml0gc3JjL3Rlc3RzL2lidXMtY29tcG9zZTogRml4IHR5cG8KLQotRml4ZXM6IDQ0ZTIyZTVlCi0t LS0KLSBtZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAxICsKLSBzcmMvdGVzdHMvaWJ1cy1jb21w b3NlLmMgfCA0ICsrLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL21lc29uLmJ1aWxkIGIvbWVzb24uYnVpbGQKLWluZGV4 IDdjZDkwNmQ3Li5jNTdiMDAyZCAxMDA2NDQKLS0tLSBhL21lc29uLmJ1aWxkCi0rKysgYi9tZXNv bi5idWlsZAotQEAgLTM5MSw2ICszOTEsNyBAQCBpbnN0YWxsX2VtcHR5ZGlyKGdldF9vcHRpb24o J2RhdGFkaXInKSAvICdpYnVzJyAvICdlbmdpbmUnKQotIHN1bW1hcnkoewotICAgJ0luc3RhbGwg cHJlZml4JzogICAgICAgICAgICAgICAgZ2V0X29wdGlvbigncHJlZml4JyksCi0gICAnQ0ZMQUdT JzogICAgICAgICAgICAgICAgICAgICAgICBnZXRfb3B0aW9uKCdjX2FyZ3MnKSwKLSsgICdMREZM QUdTJzogICAgICAgICAgICAgICAgICAgICAgIGdldF9vcHRpb24oJ2NfbGlua19hcmdzJyksCi0g ICAnQnVpbGQgZW5kaWFubmVzcyc6ICAgICAgICAgICAgICBlbmRpYW4sCi0gICAnUFlUSE9OJzog ICAgICAgICAgICAgICAgICAgICAgICBweXRob24uZnVsbF9wYXRoKCksCi0gICAnQnVpbGQgUHlH T2JqZWN0JzogICAgICAgICAgICAgICBlbmFibGVfcHlnb2JqZWN0LAotZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0cy9pYnVzLWNvbXBvc2UuYyBiL3NyYy90ZXN0cy9pYnVzLWNvbXBvc2UuYwotaW5kZXgg YzM2YjRjODEuLmQwYzU3M2U1IDEwMDY0NAotLS0tIGEvc3JjL3Rlc3RzL2lidXMtY29tcG9zZS5j Ci0rKysgYi9zcmMvdGVzdHMvaWJ1cy1jb21wb3NlLmMKLUBAIC0xNDQsNyArMTQ0LDcgQEAgdGFr ZV9zY3JlZW5zaG90ICh2b2lkKQotICAgICBkdCA9IGdfZGF0ZV90aW1lX25ld19mcm9tX3VuaXhf dXRjICh0KTsKLSAgICAgZ19yZXR1cm5faWZfZmFpbCAoZHQpOwotIAotLSAgICB3aGlsZSAoRkFM U0UpIHsKLSsgICAgZG8gewotICAgICAgICAgcHJnbmFtZSA9IGdfcGF0aF9nZXRfYmFzZW5hbWUg KGdfZ2V0X3ByZ25hbWUgKCkpOwotICAgICAgICAgY2FzZW5hbWUgPSBnX3BhdGhfZ2V0X2Jhc2Vu YW1lIChnX3Rlc3RfZ2V0X3BhdGggKCkpOwotICAgICAgICAgaWJ1c19icmVha19pZl9mYWlsIChw cmduYW1lKTsKLUBAIC0xNzMsNyArMTczLDcgQEAgdGFrZV9zY3JlZW5zaG90ICh2b2lkKQotICAg ICAgICAgICAgICAgICAgICAgICAgc3RkX291dHB1dCA/IHN0ZF9vdXRwdXQgOiAiIiwKLSAgICAg ICAgICAgICAgICAgICAgICAgIHN0ZF9lcnJvcik7Ci0gICAgICAgICB9Ci0tICAgIH0KLSsgICAg fSB3aGlsZSAoRkFMU0UpOwotIAotICAgICBnX2ZyZWUgKHByZ25hbWUpOwotICAgICBnX2ZyZWUg KGNhc2VuYW1lKTsKLS0tIAotMi41NC4wCi0KLUZyb20gODRhYWY2MWZjNTY3MzVjNjVlYjljNDY4 NmFhNzczY2IzYjA1ZmFhMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJh dCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IE1vbiwgMjkgSnVuIDIwMjYgMTI6 NTA6NTYgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSCAxLzVdIGNsaWVudC93YXlsYW5kOiBGaXggbGF0 Y2gga2V5IGluIExhdHZpYW4odGlsZGUpIGtleW1hcAotCi0ibHYodGlsZGUpIiBrZXltYXAgaGFz IGBJU09fTGV2ZWwzX0xhdGNoYCBhbmQgdGhlcmUgYXJlIHNldmVyYWwgaXNzdWVzLgotMS4gS0RF IFdheWxhbmQgZG9lcyBub3QgaGFuZGxlIGBJU09fTGV2ZWwzX0xhdGNoYCBrZXlzeW0gYnV0IG91 dHB1dHMgdGhlCi0gICB0aWxkZSBldmVuIGlmIHRoZSBzeXN0ZW0ga2V5bWFwIGlzICJsdih0aWxk ZSkiLiBUaGUgcHJldmlvdXMgY2hhbmdlCi0gICAwMTA0NDg2IGZpeGVzIHRoYXQgaXNzdWUgaW4g SUJ1cyBzaWRlLgotMi4gVGhlcmUgaXMgYSByYWNlIHdoZW4gQElCdXNXYXlsYW5kSU0gcmVjZWl2 ZXMgdGhlIHN5c3RlbSBrZXltYXAgZnJvbQotICAgdGhlIFdheWxhbmQgY29tcG9zaXRvciBhbmQg dGhlIHVzZXIga2V5bWFwIGZyb20gdGhlIElCdXMgWEtCCi0gICBlbmdpbmUgYW5kIHRoZSB1c2Vy IGtleW1hcCBzaG91bGQgbm90IGJlIG92ZXJyaWRkZW4gYnkgdGhlIHN5c3RlbSBvbmUuCi0zLiBA SUJ1c1dheWxhbmRJTSBjYW4gaGFuZGxlIHRoZSBjb21wb3NlIGtleXMgb25seSBpZiBgSVNPX0xl dmVsM19MYXRjaGAKLSAgIGlzIGhlbGQgcHJlc3NpbmcgYXQgcHJlc2VudC4gQnV0IHRoZSBsYXRj aCBzdGF0ZSBzaG91bGQgYmUgaGVsZCB3aGVuCi0gICB0aGUgbGF0Y2gga2V5IGlzIHJlbGVhc2Vk IGJ1dCBjbGVhcmVkIHdoZW4gb3RoZXIga2V5cyBhcmUgcHJlc3NlZC4KLTQuIEluIGNhc2UgdGhl IHN5c3RlbSBrZXltYXAgaXMgbm90ICJsdih0aWxkZSkiLCBFLmcuICJ1cyIsIHRoZSByZWxlYXNl Ci0gICBldmVudCBvZiB0aGUgdmlydHVhbCBgSVNPX0xldmVsM19MYXRjaGAga2V5LCB0aGUgV2F5 bGFuZCBjb21wb3NpdG9yCi0gICBpbW1lZGlhdGVseSBzZW5kcyB0byB6ZXJvIG1vZGlmaWVyIHN0 YXRlIHRvIGNsZWFyIHRoZSBsYXRjaCBzdGF0ZS4KLSAgIFNvIHByb2JhYmx5IEBJQnVzV2F5bGFu ZElNIHNob3VsZCBub3Qgc2VuZCB0aGUgcmVsZWFzZSBldmVudCBvZiB0aGUKLSAgIGxhdGNoIGtl eS4KLTUuIFhLQiBncm91cCBJRCBjYW4gYmUgc3dpdGNoZWQgYnkgWEtCIG9wdGlvbiBrZXkgbGlr ZXMgYGdycDp0b2dnbGVgCi0gICBidXQgY2xpY2tpbmcga2V5Ym9hcmQgaWNvbiBpbiBLREUgcGFu ZWwgZG9lcyBub3Qgd29yayBhbmQgbWF5YmUKLSAgIGl0J3MgYSBidWcgaW4gS0RFIGNvbXBvc2l0 b3IuCi02LiBGaXggdG8gY2xlYXIgbW9kaWZpZXJzIHdpdGggdGhlIGtleSByZWxlYXNlIG9mIFNo aWZ0ICsgTGF0Y2gga2V5LgotNy4gU2F2ZSBDYXBzTG9jayBzdGF0ZQotCi1GaXhlczogMDEwNDQ4 NgotRml4ZXM6ICMyODY5Ci1DbG9zZXM6IHJoYnojMjQ0NDAwOQotLS0tCi0gY2xpZW50L3dheWxh bmQvaWJ1c3dheWxhbmRpbS5jIHwgMzYwICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LQotIDEgZmlsZSBjaGFuZ2VkLCAyODUgaW5zZXJ0aW9ucygrKSwgNzUgZGVsZXRpb25zKC0pCi0K LWRpZmYgLS1naXQgYS9jbGllbnQvd2F5bGFuZC9pYnVzd2F5bGFuZGltLmMgYi9jbGllbnQvd2F5 bGFuZC9pYnVzd2F5bGFuZGltLmMKLWluZGV4IGQ3ZDEyZDA1Li45NWIzMzBmOCAxMDA2NDQKLS0t LSBhL2NsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYwotKysrIGIvY2xpZW50L3dheWxhbmQv aWJ1c3dheWxhbmRpbS5jCi1AQCAtNDAsNiArNDAsOSBAQAotICNpbmNsdWRlICJ2aXJ0dWFsLWtl eWJvYXJkLXVuc3RhYmxlLXYxLWNsaWVudC1wcm90b2NvbC5oIgotICNpbmNsdWRlICJpYnVzd2F5 bGFuZGltLmgiCi0gCi0rLyoga2V5c3ltICYga2V5Y29kZSBzaG91bGQgbm90IGJlIGxvZ2dlZCBm b3IgdGhlIHNlY3VyaXR5IGlzc3VlLiAqLwotKy8qICNkZWZpbmUgSUJVU19MT0dfU0hPV19LRVlT WU0gKi8KLSsKLSBlbnVtIHsKLSAgICAgUFJPUF8wID0gMCwKLSAgICAgUFJPUF9CVVMsCi1AQCAt MTQ2LDYgKzE0OSw3IEBAIHN0cnVjdCBfSUJ1c1dheWxhbmRJTVByaXZhdGUKLSAgICAgZ3VpbnQg cHJlZWRpdF9jdXJzb3JfcG9zOwotICAgICBndWludCBwcmVlZGl0X21vZGU7Ci0gICAgIElCdXNN b2RpZmllclR5cGUgbW9kaWZpZXJzOwotKyAgICBnYm9vbGVhbiBpc192aXJ0dWFsX2xhdGNoX3N0 YXRlOwotICAgICBnYm9vbGVhbiBoaWRpbmdfcHJlZWRpdF90ZXh0OwotICAgICBJQnVzSW5wdXRI aW50cyBpYnVzX2hpbnRzOwotICAgICBJQnVzSW5wdXRQdXJwb3NlIGlidXNfcHVycG9zZTsKLUBA IC0yMDMsMTAgKzIwNyw2IEBAIHN0YXRpYyBjaGFyIF91c2Vfc3luY19tb2RlID0gMTsKLSAKLSBz dGF0aWMgZ3VpbnQgd2F5bGFuZF9pbV9zaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCB9OwotIAot LXN0YXRpYyB2b2lkICAgICAgICAgaW5wdXRfbWV0aG9kX2RlYWN0aXZhdGUKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAodm9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq ZGF0YSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHp3cF9pbnB1dF9t ZXRob2RfdW5pb24gICAgICAqaW5wdXRfbWV0aG9kLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgendwX2lucHV0X21ldGhvZF9jb250ZXh0X3YxICpjb250ZXh0KTsKLSBz dGF0aWMgR09iamVjdCAgICAgKmlidXNfd2F5bGFuZF9pbV9jb25zdHJ1Y3RvciAgICAgICAgKEdU eXBlICAgICAgICAgIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICBuX3BhcmFtcywKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdPYmplY3RDb25z dHJ1Y3RQYXJhbQotQEAgLTIyOCw2ICsyMjgsMTkgQEAgc3RhdGljIGdib29sZWFuICAgICBpYnVz X3dheWxhbmRfaW1fcG9zdF9rZXkgICAgICAgICAgIChJQnVzV2F5bGFuZElNICp3bGltLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGti X2tleXN5bV90ICAgc3ltLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyZWQpOwotK3N0 YXRpYyB2b2lkICAgICAgICAgaW5wdXRfbWV0aG9kX2RlYWN0aXZhdGUKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAodm9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqZGF0 YSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHp3cF9pbnB1dF9tZXRo b2RfdW5pb24gICAgICAqaW5wdXRfbWV0aG9kLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgendwX2lucHV0X21ldGhvZF9jb250ZXh0X3YxICpjb250ZXh0KTsKLStzdGF0 aWMgdm9pZCAgICAgICAgIGlucHV0X21ldGhvZF9rZXlib2FyZF9tb2RpZmllcnMKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAqZGF0YSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHp3cF9rZXli b2FyZF91bmlvbiAgICAgICAgICAqa2V5Ym9hcmQsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9zZXJpYWwsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RzX2Rl cHJlc3NlZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbW9kc19sYXRjaGVkLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1aW50MzJfdCAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RzX2xvY2tl ZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ3JvdXApOwotIAotIAotIHN0YXRpYyBjaGFyCi1AQCAtMTA3OSw3ICsx MDkyLDcgQEAgaWJ1c194a2Jfa2V5bWFwX3VwZGF0ZV93aXRoX2tleW1hcCAoSUJ1c1hrYktleW1h cCAgICAgKmlidXNfa2V5bWFwLAotICAgICAgICAgeGtiX3N0YXRlX3VucmVmIChpYnVzX2tleW1h cC0+c3RhdGUpOwotICAgICBpZiAoaWJ1c19rZXltYXAtPmtleW1hcCkKLSAgICAgICAgIHhrYl9r ZXltYXBfdW5yZWYgKGlidXNfa2V5bWFwLT5rZXltYXApOwotLSAgICBpYnVzX2tleW1hcC0+a2V5 bWFwID0ga2V5bWFwOwotKyAgICBpYnVzX2tleW1hcC0+a2V5bWFwID0geGtiX2tleW1hcF9yZWYg KGtleW1hcCk7Ci0gICAgIGlidXNfa2V5bWFwLT5zdGF0ZSA9IHN0YXRlOwotIAotICAgICAvKiB4 a2JfbWFwX21vZF9nZXRfaW5kZXgoKSBjYW4gcmV0dXJuIGFueSB4a2JfbW9kX2luZGV4X3QgdmFs dWUsIGluY2x1ZGluZwotQEAgLTExMTUsNiArMTEyOCw3IEBAIF9idXNfZ2xvYmFsX2VuZ2luZV9j aGFuZ2VkX2NiIChJQnVzQnVzICAgICAgICpidXMsCi0gICAgIElCdXNXYXlsYW5kSU1Qcml2YXRl ICpwcml2OwotICAgICBJQnVzRW5naW5lRGVzYyAqZGVzYzsKLSAgICAgc3RydWN0IHhrYl9rZXlt YXAgKmtleW1hcDsKLSsgICAgZ2Jvb2xlYW4gaGFzX2tleW1hcCA9IEZBTFNFOwotIAotICAgICBn X3JldHVybl9pZl9mYWlsIChJQlVTX0lTX0JVUyAoYnVzKSk7Ci0gICAgIGdfcmV0dXJuX2lmX2Zh aWwgKElCVVNfSVNfV0FZTEFORF9JTSAod2xpbSkpOwotQEAgLTExMjcsMTAgKzExNDEsMTggQEAg X2J1c19nbG9iYWxfZW5naW5lX2NoYW5nZWRfY2IgKElCdXNCdXMgICAgICAgKmJ1cywKLSAgICAg ICogaW1tZWRpYXRlbHkgd2l0aG91dCBjaGVja2luZyB0aGUgR3NldHRpbmdzLgotICAgICAgKi8K LSAgICAga2V5bWFwID0gY3JlYXRlX3VzZXJfeGtiX2tleW1hcCAocHJpdi0+eGtiX2NvbnRleHQs IGRlc2MpOwotLSAgICBpZiAoa2V5bWFwICYmICFpYnVzX3hrYl9rZXltYXBfdXBkYXRlX3dpdGhf a2V5bWFwICgmcHJpdi0+a2V5X3VzZXIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGtleW1hcCkpIHsKLSsgICAgaWYgKGtleW1hcCkgewot KyAgICAgICAgaGFzX2tleW1hcCA9IGlidXNfeGtiX2tleW1hcF91cGRhdGVfd2l0aF9rZXltYXAg KCZwcml2LT5rZXlfdXNlciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBrZXltYXApOwotICAgICAgICAgeGtiX2tleW1hcF91bnJlZiAo a2V5bWFwKTsKLSAgICAgfQotKyAgICBpZiAocHJpdi0+dmVyYm9zZSkgewotKyAgICAgICAgZnBy aW50ZiAocHJpdi0+bG9nLCAiTmV3IGVuZ2luZTolcyBrZXltYXA6JXMgc3RhdGU6JXNcbiIsCi0r ICAgICAgICAgICAgICAgICBpYnVzX2VuZ2luZV9kZXNjX2dldF9uYW1lIChkZXNjKSwKLSsgICAg ICAgICAgICAgICAgIGhhc19rZXltYXAgPyAiVFJVRSIgOiAiRkFMU0UiLAotKyAgICAgICAgICAg ICAgICAgcHJpdi0+a2V5X3VzZXIuc3RhdGUgPyAiVFJVRSIgOiAiRkFMU0UiKTsKLSsgICAgICAg IGZmbHVzaCAocHJpdi0+bG9nKTsKLSsgICAgfQotICAgICBnX29iamVjdF91bnJlZiAoZGVzYyk7 Ci0gfQotIAotQEAgLTExNDUsNiArMTE2Nyw3IEBAIGlucHV0X21ldGhvZF9rZXlib2FyZF9rZXlt YXAgKHZvaWQgICAgICAgICAgICAgICAgICAgICAgKmRhdGEsCi0gICAgIElCdXNXYXlsYW5kSU0g KndsaW0gPSBkYXRhOwotICAgICBJQnVzV2F5bGFuZElNUHJpdmF0ZSAqcHJpdjsKLSAgICAgc3Ry dWN0IHhrYl9rZXltYXAgKmtleW1hcDsKLSsgICAgZ2Jvb2xlYW4gaGFzX2tleW1hcCA9IEZBTFNF OwotIAotICAgICBpZiAoIUlCVVNfSVNfV0FZTEFORF9JTSAod2xpbSkpIHsKLSAgICAgICAgIGNs b3NlIChmZCk7Ci1AQCAtMTE5NCwyNSArMTIxNywyNSBAQCBpbnB1dF9tZXRob2Rfa2V5Ym9hcmRf a2V5bWFwICh2b2lkICAgICAgICAgICAgICAgICAgICAgICpkYXRhLAotICAgICAgICAgcmV0dXJu OwotICAgICB9Ci0gICAgIGtleW1hcCA9IGNyZWF0ZV9zeXN0ZW1feGtiX2tleW1hcCAocHJpdi0+ eGtiX2NvbnRleHQsIGZvcm1hdCwgZmQsIHNpemUpOwotLSAgICBpZiAoa2V5bWFwICYmCi0tICAg ICAgICAhaWJ1c194a2Jfa2V5bWFwX3VwZGF0ZV93aXRoX2tleW1hcCAoJnByaXYtPmtleV9zeXMs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGtiX2tleW1h cF9yZWYgKGtleW1hcCkpKSB7Ci0tICAgICAgICB4a2Jfa2V5bWFwX3VucmVmIChrZXltYXApOwot LSAgICAgICAgZ19jbGVhcl9wb2ludGVyICgma2V5bWFwLCB4a2Jfa2V5bWFwX3VucmVmKTsKLS0g ICAgfQotLSAgICBpZiAoa2V5bWFwICYmICFwcml2LT5rZXlfdXNlci5zdGF0ZSAmJgotLSAgICAg ICAgIWlidXNfeGtiX2tleW1hcF91cGRhdGVfd2l0aF9rZXltYXAgKCZwcml2LT5rZXlfdXNlciwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4a2Jfa2V5bWFw X3JlZiAoa2V5bWFwKSkpIHsKLS0gICAgICAgIHhrYl9rZXltYXBfdW5yZWYgKGtleW1hcCk7Ci0t ICAgICAgICBnX2NsZWFyX3BvaW50ZXIgKCZrZXltYXAsIHhrYl9rZXltYXBfdW5yZWYpOwotLSAg ICB9Ci0tICAgIGlmIChrZXltYXApCi0rICAgIGlmIChrZXltYXApIHsKLSsgICAgICAgIGhhc19r ZXltYXAgPSBpYnVzX3hrYl9rZXltYXBfdXBkYXRlX3dpdGhfa2V5bWFwICgmcHJpdi0+a2V5X3N5 cywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBrZXltYXApOwotKyAgICAgICAgaWYgKCFoYXNfa2V5bWFwKQotKyAgICAgICAgICAgIGdf Y2xlYXJfcG9pbnRlciAoJmtleW1hcCwgeGtiX2tleW1hcF91bnJlZik7Ci0rICAgIH0KLSsgICAg aWYgKGhhc19rZXltYXAgJiYgIXByaXYtPmtleV91c2VyLnN0YXRlKSB7Ci0rICAgICAgICBoYXNf a2V5bWFwID0gaWJ1c194a2Jfa2V5bWFwX3VwZGF0ZV93aXRoX2tleW1hcCAoJnByaXYtPmtleV91 c2VyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGtleW1hcCk7Ci0rICAgICAgICBpZiAoIWhhc19rZXltYXApCi0rICAgICAgICAgICAg Z19jbGVhcl9wb2ludGVyICgma2V5bWFwLCB4a2Jfa2V5bWFwX3VucmVmKTsKLSsgICAgfQotKyAg ICBpZiAoaGFzX2tleW1hcCkKLSAgICAgICAgIHhrYl9rZXltYXBfdW5yZWYgKGtleW1hcCk7Ci0g ICAgIGlmIChwcml2LT52ZXJib3NlKSB7Ci0gICAgICAgICBmcHJpbnRmIChwcml2LT5sb2csICJT eXN0ZW0ga2V5bWFwIGZvcm1hdDoldSBmZDolZCBzaXplOiV1ICIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgImtleW1hcDolcyBzdGF0ZTolc1xuIiwKLSAgICAgICAgICAgICAgICAgIGZv cm1hdCwgZmQsIHNpemUsCi0tICAgICAgICAgICAgICAgICBrZXltYXAgPyAiVFJVRSIgOiAiRkFM U0UiLAotKyAgICAgICAgICAgICAgICAgaGFzX2tleW1hcCA/ICJUUlVFIiA6ICJGQUxTRSIsCi0g ICAgICAgICAgICAgICAgICBwcml2LT5rZXlfc3lzLnN0YXRlID8gIlRSVUUiIDogIkZBTFNFIik7 Ci0gICAgICAgICBmZmx1c2ggKHByaXYtPmxvZyk7Ci0gICAgIH0KLUBAIC0xMjUzLDYgKzEyNzYs NyBAQCBfZ2V0X3NlYXRfd2l0aF9uYW1lIChHUHRyQXJyYXkgKnNlYXRzLAotICAgICByZXR1cm4g TlVMTDsKLSB9Ci0gCi0rCi0gc3RhdGljIGdib29sZWFuCi0gaWJ1c193YXlsYW5kX2ltX3Bvc3Rf a2V5IChJQnVzV2F5bGFuZElNICp3bGltLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDMyX3QgICAgICAga2V5LAotQEAgLTEyNjMsOCArMTI4NywxMyBAQCBpYnVzX3dheWxhbmRfaW1f cG9zdF9rZXkgKElCdXNXYXlsYW5kSU0gKndsaW0sCi0gewotICAgICBJQnVzV2F5bGFuZElNUHJp dmF0ZSAqcHJpdjsKLSAgICAgSUJ1c1hrYktleW1hcCAqYWN0aXZlX2tleTsKLSsgICAgeGtiX21v ZF9tYXNrX3QgbW9kc19kZXByZXNzZWQgPSAwLCBuZXdfbW9kc19kZXByZXNzZWQgPSAwOwotKyAg ICB4a2JfbW9kX21hc2tfdCBtb2RzX2xvY2tlZDsKLSsgICAgeGtiX2xheW91dF9pbmRleF90ICBn cm91cCA9IDA7Ci0rICAgIHhrYl9rZXlzeW1fdCBzeXN0ZW1fc3ltID0gc3ltOwotICAgICB1aW50 MzJfdCBjb2RlID0ga2V5ICsgODsKLSAgICAgdWludDMyX3QgY2g7Ci0rICAgIGdib29sZWFuIGNs ZWFyX3ZpcnR1YWxfc3RhdGUgPSBGQUxTRTsKLSAKLSAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwg KElCVVNfSVNfV0FZTEFORF9JTSAod2xpbSksIEZBTFNFKTsKLSAgICAgcHJpdiA9IGlidXNfd2F5 bGFuZF9pbV9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAod2xpbSk7Ci1AQCAtMTI4OCw0OSArMTMxNywx MzUgQEAgaWJ1c193YXlsYW5kX2ltX3Bvc3Rfa2V5IChJQnVzV2F5bGFuZElNICp3bGltLAotICAg ICAgICAgYWN0aXZlX2tleSA9ICZwcml2LT5rZXlfdXNlcjsKLSAgICAgaWYgKCFhY3RpdmVfa2V5 LT5zdGF0ZSkKLSAgICAgICAgIHJldHVybiBGQUxTRTsKLSsgICAgbW9kc19kZXByZXNzZWQgPSB4 a2Jfc3RhdGVfc2VyaWFsaXplX21vZHMgKGFjdGl2ZV9rZXktPnN0YXRlLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX0RFUFJFU1NFRCB8 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYS0JfU1RB VEVfTEFUQ0hFRCk7Ci0rICAgIG5ld19tb2RzX2RlcHJlc3NlZCA9IG1vZHNfZGVwcmVzc2VkOwot KyAgICBtb2RzX2xvY2tlZCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbW9kcyAoYWN0aXZlX2tleS0+ c3RhdGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYS0Jf U1RBVEVfTU9EU19MT0NLRUQpOwotKyAgICAvKiBYS0IgZ3JvdXAgbGF5b3V0IGlzIGNvbmZpZ3Vy ZWQgaW4gdGhlIHN5c3RlbSBrZXltYXAgYnV0IG5vdCB0aGUKLSsgICAgICogdXNlciBrZXltYXAg d2hpY2ggYWx3YXlzIGluY2x1ZGVzIGEgc2luZ2xlIGxheW91dC4KLSsgICAgICovCi0rICAgIGlm IChwcml2LT5rZXlfc3lzLnN0YXRlKSB7Ci0rICAgICAgICBncm91cCA9IHhrYl9zdGF0ZV9zZXJp YWxpemVfbGF5b3V0IChwcml2LT5rZXlfc3lzLnN0YXRlLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX0xBWU9VVF9MT0NLRUQpOwotKyAgICB9 Ci0gICAgIGlmICghZmlsdGVyZWQpIHsKLS0jaWYgMAotLSAgICAgICAgLyogRklYTUU6IE5lZWQg dG8gY29uZmlybSBhbnkgbW9kaWZpZXJzIHNob3VsZCBiZSBpZ25vcmVkLiAqLwotLSAgICAgICAg aWYgKCFpYnVzX2FjY2VsZXJhdG9yX3ZhbGlkICgKLS0gICAgICAgICAgICAgICAgICAgIHN5bSwK LS0gICAgICAgICAgICAgICAgICAgIG1vZGlmaWVycyAmIElCVVNfTU9ESUZJRVJfTUFTSyAmIH5J QlVTX1NISUZUX01BU0spKSB7Ci0tICAgICAgICAgICAgZmlsdGVyZWQgPSBUUlVFOwotLSAgICAg ICAgfQotLSNlbHNlCi0rICAgICAgICBpZiAocHJpdi0+a2V5X3N5cy5zdGF0ZSkKLSsgICAgICAg ICAgICBzeXN0ZW1fc3ltID0geGtiX3N0YXRlX2tleV9nZXRfb25lX3N5bSAocHJpdi0+a2V5X3N5 cy5zdGF0ZSwgY29kZSk7Ci0gICAgICAgICBzd2l0Y2ggKHN5bSkgewotLSAgICAgICAgY2FzZSBJ QlVTX0lTT19MZXZlbDJfTGF0Y2g6Ci0tICAgICAgICBjYXNlIElCVVNfSVNPX0xldmVsM19MYXRj aDoKLS0gICAgICAgIGNhc2UgSUJVU19JU09fTGV2ZWw1X0xhdGNoOgotKyAgICAgICAgY2FzZSBJ QlVTX0tFWV9JU09fTGV2ZWwyX0xhdGNoOgotICAgICAgICAgICAgIGZpbHRlcmVkID0gVFJVRTsK LSAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgIC8qIExldmVsM19sYXRjaCBpcyBjYXVzZWQg YnkgVExERSBrZXkgaW4gbHYodGlsZGUpIGtleW1hcC4KLSsgICAgICAgICAqIExldmVsM19TaGlm dCBpcyBjYXVzZWQgYnkgQWx0IGtleSBpbiBsdih0aWxkZSkga2V5bWFwLgotKyAgICAgICAgICov Ci0rICAgICAgICBjYXNlIElCVVNfS0VZX0lTT19MZXZlbDNfTGF0Y2g6Ci0rICAgICAgICBjYXNl IElCVVNfS0VZX0lTT19MZXZlbDNfU2hpZnQ6Ci0rICAgICAgICAgICAgaWYgKHN0YXRlID09IFdM X0tFWUJPQVJEX0tFWV9TVEFURV9QUkVTU0VEKSB7Ci0rICAgICAgICAgICAgICAgIG5ld19tb2Rz X2RlcHJlc3NlZCB8PSBhY3RpdmVfa2V5LT5tb2Q1X21hc2s7Ci0rICAgICAgICAgICAgICAgIGlm IChzeW0gIT0gc3lzdGVtX3N5bSkKLSsgICAgICAgICAgICAgICAgICAgIHByaXYtPmlzX3ZpcnR1 YWxfbGF0Y2hfc3RhdGUgPSBUUlVFOwotKyAgICAgICAgICAgICAgICBmaWx0ZXJlZCA9IFRSVUU7 Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgLyogTGV2ZWw1 X0xhdGNoIGlzIGNhdXNlZCBieSBTaGlmdCtBbHQga2V5IGluIGRlKFQzKSBrZXltYXAuCi0rICAg ICAgICAgKi8KLSsgICAgICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVsNV9MYXRjaDoKLSsgICAg ICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVsNV9TaGlmdDoKLSsgICAgICAgICAgICBpZiAoc3Rh dGUgPT0gV0xfS0VZQk9BUkRfS0VZX1NUQVRFX1BSRVNTRUQpIHsKLSsgICAgICAgICAgICAgICAg bmV3X21vZHNfZGVwcmVzc2VkIHw9IGFjdGl2ZV9rZXktPm1vZDNfbWFzazsKLSsgICAgICAgICAg ICAgICAgaWYgKHN5bSAhPSBzeXN0ZW1fc3ltKQotKyAgICAgICAgICAgICAgICAgICAgcHJpdi0+ aXNfdmlydHVhbF9sYXRjaF9zdGF0ZSA9IFRSVUU7Ci0rICAgICAgICAgICAgICAgIGZpbHRlcmVk ID0gVFJVRTsKLSsgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICBj YXNlIElCVVNfS0VZX1NoaWZ0X0w6Ci0rICAgICAgICBjYXNlIElCVVNfS0VZX1NoaWZ0X1I6Ci0r ICAgICAgICAgICAgaWYgKHN0YXRlID09IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9QUkVTU0VEKQot KyAgICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgfD0gYWN0aXZlX2tleS0+c2hpZnRf bWFzazsKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgICAgIG5ld19tb2RzX2RlcHJl c3NlZCAmPSB+YWN0aXZlX2tleS0+c2hpZnRfbWFzazsKLSsgICAgICAgICAgICBicmVhazsKLSAg ICAgICAgIGRlZmF1bHQ6OwotICAgICAgICAgfQotKyNpZmRlZiBJQlVTX0xPR19TSE9XX0tFWVNZ TQotKyAgICAgICAgaWYgKHByaXYtPnZlcmJvc2UpIHsKLSsgICAgICAgICAgICBmcHJpbnRmIChw cml2LT5sb2csICIlcyBrZXk6JXUgc3ltOiV4IHN5c3RlbV9zeW06JXggbW9kaWZpZXJzOiV4ICIK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0ZTolcyBmaWx0ZXJlZDolZFxu IiwKLSsgICAgICAgICAgICAgICAgICAgICBHX1NUUkZVTkMsCi0rICAgICAgICAgICAgICAgICAg ICAga2V5LCBzeW0sIHN5c3RlbV9zeW0sIG1vZGlmaWVycywKLSsgICAgICAgICAgICAgICAgICAg ICBzdGF0ZSA/ICJwcmVzcyIgOiAicmVsZWFzZSIsCi0rICAgICAgICAgICAgICAgICAgICAgZmls dGVyZWQpOwotKyAgICAgICAgICAgIGZmbHVzaCAocHJpdi0+bG9nKTsKLSsgICAgICAgIH0KLSAj ZW5kaWYKLSAgICAgfQotLSAgICAvKiBJbiBjYXNlIGB1c2Vfc3lzX2tleW1hcGAgaXMgJVRSVUUs IElCdXMgZG9lcyBub3QgY29tbWl0IEFTQ0lJIGNoYXJzCi0tICAgICAqIGJ1dCBmb3J3YXJkcyB0 aGUga2V5IGV2ZW50cyB0byB0aGUgZm9jdXNlZCBhcHBsaWNhdGlvbiBoZXJlLgotLSAgICAgKiBC ZWNhdXNlIHNvbWUgYXBwbGljYXRpb25zIHRyZWF0IHRoZSBwcmludGFibGUga2V5cyBhcyBjb250 cm9sIGtleXMsCi0tICAgICAqIEUuZy4gZ2FtZSBhcHBzICJoamtsIiB1c2UgdGhlIGN1cnNvciBt b3ZlIGxpa2UgVkkgbW9kZS4KLS0gICAgICogVW5mb3J0dW5hdGVseSB0aGUgV2F5bGFuZCBpbnB1 dC1tZXRob2QgcHJvdG9jb2wgZG9lcyBub3QgcHJvdmlkZQotLSAgICAgKiB0aGUgZmFsbGJhY2sg bG9naWMgYWZ0ZXIgYXBwcyBoYW5kbGUgdGhlIGtleSBldmVudHMgbGlrZSBHVEszLzIKLS0gICAg ICogSU0gbW9kdWxlcy4gQnV0IFRoZSBpbnB1dC1tZXRob2QgYWx3YXlzIHNob3VsZCBoYW5kbGVz IGtleSBldmVudHMKLS0gICAgICogcHJpb3IgdG8gYXBwcy4KLS0gICAgICovCi0tICAgIGlmICgh ZmlsdGVyZWQgJiYgKHN0YXRlICE9IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9SRUxFQVNFRCkgJiYK LS0gICAgICAgICFwcml2LT51c2Vfc3lzX2tleW1hcCkgewotLSAgICAgICAgY2ggPSB4a2Jfc3Rh dGVfa2V5X2dldF91dGYzMiAoYWN0aXZlX2tleS0+c3RhdGUsIGNvZGUpOwotLSAgICAgICAgaWYg KCEobW9kaWZpZXJzICYgSUJVU19NT0RJRklFUl9NQVNLICYgfklCVVNfU0hJRlRfTUFTSykgJiYK LS0gICAgICAgICAgICBjaCAmJiBjaCAhPSAnXG4nICYmIGNoICE9ICdcYicgJiYgY2ggIT0gJ1xy JyAmJiBjaCAhPSAnXHQnICYmCi0tICAgICAgICAgICAgY2ggIT0gJ1wwMzMnICYmIGNoICE9ICdc eDdmJykgewotLSAgICAgICAgICAgIGdjaGFyIGJ1ZmZbOF0gPSB7IDAsIH07Ci0tICAgICAgICAg ICAgYnVmZltnX3VuaWNoYXJfdG9fdXRmOCAoY2gsIGJ1ZmYpXSA9ICdcMCc7Ci0tICAgICAgICAg ICAgaWJ1c193YXlsYW5kX2ltX2NvbW1pdF90ZXh0ICh3bGltLCBidWZmKTsKLS0gICAgICAgICAg ICBmaWx0ZXJlZCA9IFRSVUU7Ci0rICAgIGlmIChzdGF0ZSAhPSBXTF9LRVlCT0FSRF9LRVlfU1RB VEVfUkVMRUFTRUQpIHsKLSsgICAgICAgIGNoID0gaWJ1c19rZXl2YWxfdG9fdW5pY29kZSAoc3lt KTsKLSsgICAgICAgIGlmIChjaCA9PSAwIHx8IGdfdW5pY2hhcl9pc2NudHJsIChjaCkpCi0rICAg ICAgICAgICAgY2ggPSB4a2Jfc3RhdGVfa2V5X2dldF91dGYzMiAoYWN0aXZlX2tleS0+c3RhdGUs IGNvZGUpOwotKy8qIE5vIHRleHQgd2l0aCBDb250cm9sICYgQWx0ICYgU3VwZXIga2V5cyAqLwot KyNpZm5kZWYgR0RLX1dJTkRPV0lOR19RVUFSVFoKLSsjICBkZWZpbmUgX0lCVVNfTk9fVEVYVF9J TlBVVF9NT0RfTUFTSyAoXAotKyAgICBJQlVTX0NPTlRST0xfTUFTSyB8IElCVVNfTU9EMV9NQVNL IHwgSUJVU19NT0Q0X01BU0spCi0rI2Vsc2UKLSsjICBkZWZpbmUgX0lCVVNfTk9fVEVYVF9JTlBV VF9NT0RfTUFTSyAoXAotKyAgICBJQlVTX0NPTlRST0xfTUFTSyB8IElCVVNfTU9EMl9NQVNLIHwg SUJVU19NT0Q0X01BU0spCi0rI2VuZGlmCi0rICAgICAgICBpZiAoKCFmaWx0ZXJlZCAmJiAhKG1v ZGlmaWVycyAmIF9JQlVTX05PX1RFWFRfSU5QVVRfTU9EX01BU0spICYmCi0rICAgICAgICAgICAg ICFnX3VuaWNoYXJfaXNjbnRybCAoY2gpKSB8fCBmaWx0ZXJlZCkgewotKyAgICAgICAgLyogSW4g Y2FzZSBgdXNlX3N5c19rZXltYXBgIGlzICVUUlVFLCBJQnVzIGRvZXMgbm90IGNvbW1pdCBBU0NJ SSBjaGFycwotKyAgICAgICAgICogYnV0IGZvcndhcmRzIHRoZSBrZXkgZXZlbnRzIHRvIHRoZSBm b2N1c2VkIGFwcGxpY2F0aW9uIGhlcmUuCi0rICAgICAgICAgKiBCZWNhdXNlIHNvbWUgYXBwbGlj YXRpb25zIHRyZWF0IHRoZSBwcmludGFibGUga2V5cyBhcyBjb250cm9sIGtleXMsCi0rICAgICAg ICAgKiBFLmcuIGdhbWUgYXBwcyAiaGprbCIgdXNlIHRoZSBjdXJzb3IgbW92ZSBsaWtlIFZJIG1v ZGUuCi0rICAgICAgICAgKiBVbmZvcnR1bmF0ZWx5IHRoZSBXYXlsYW5kIGlucHV0LW1ldGhvZCBw cm90b2NvbCBkb2VzIG5vdCBwcm92aWRlCi0rICAgICAgICAgKiB0aGUgZmFsbGJhY2sgbG9naWMg YWZ0ZXIgYXBwcyBoYW5kbGUgdGhlIGtleSBldmVudHMgbGlrZSBHVEszLzIKLSsgICAgICAgICAq IElNIG1vZHVsZXMuIEJ1dCB0aGUgaW5wdXQtbWV0aG9kIGFsd2F5cyBzaG91bGQgaGFuZGxlIGtl eSBldmVudHMKLSsgICAgICAgICAqIHByaW9yIHRvIGFwcHMuCi0rICAgICAgICAgKi8KLSsgICAg ICAgICAgICBpZiAoIWZpbHRlcmVkICYmICFwcml2LT51c2Vfc3lzX2tleW1hcCkgewotKyAgICAg ICAgICAgICAgICBnY2hhciBidWZmWzhdID0geyAwLCB9OwotKyAgICAgICAgICAgICAgICBnX3Vu aWNoYXJfdG9fdXRmOCAoY2gsIGJ1ZmYpOwotKyAgICAgICAgICAgICAgICBpYnVzX3dheWxhbmRf aW1fY29tbWl0X3RleHQgKHdsaW0sIGJ1ZmYpOwotKyAgICAgICAgICAgICAgICBmaWx0ZXJlZCA9 IFRSVUU7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgICAgIC8qIElmIGBmaWx0ZXJlZGAgaXMg JVRSVUUsIHRoZSBrZXlzeW0gY2FuIGJlIGVhdGVuIGZvciB0aGUgY29tcG9zZQotKyAgICAgICAg ICAgICAqIHByZWVkaXQgYnkgSUJ1cyBYS0IgZW5naW5lLiBFLmcuIEFsdEdyLVNoaWZ0LVYga2V5 IHByb2R1Y2VzCi0rICAgICAgICAgICAgICogYExldmVsM19TaGlmdCcgYW5kIGBHcmVla19PTUVH QWAga2V5c3ltIHdpdGggInVzKHN5bWJvbGljKSIKLSsgICAgICAgICAgICAgKiBrZXltYXAuIEhv d2V2ZXIgaWYgeW91IGNvbmZpZ3VyZSBtdWx0aXBsZSBrZXltYXBzLCBBbHRHci1TaGlmdAotKyAg ICAgICAgICAgICAqIG1heSBwcm9kdWNlIHRoZSBrZXltYXAgc3dpdGNoIGFsdGhvdWdoIEFsdEdy LVNoaWZ0LVYgcHJvZHVjZXMKLSsgICAgICAgICAgICAgKiBgR3JlZWtfT01FR0FgLgotKyAgICAg ICAgICAgICAqIEknbSBub3QgY2xhcmlmaWVkIHdpdGggImxldmVsMyhyYWx0X3N3aXRjaCkiIGlu IHVzIFhLQiBrZXltYXBzLgotKyAgICAgICAgICAgICAqLwotKyAgICAgICAgICAgIGlmIChtb2Rp ZmllcnMgJiBJQlVTX01PRDNfTUFTSykgewotKyAgICAgICAgICAgICAgICBuZXdfbW9kc19kZXBy ZXNzZWQgJj0gfmFjdGl2ZV9rZXktPm1vZDNfbWFzazsKLSsgICAgICAgICAgICAgICAgY2xlYXJf dmlydHVhbF9zdGF0ZSA9IFRSVUU7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgICAgIGlmICht b2RpZmllcnMgJiBJQlVTX01PRDVfTUFTSykgewotKyAgICAgICAgICAgICAgICBuZXdfbW9kc19k ZXByZXNzZWQgJj0gfmFjdGl2ZV9rZXktPm1vZDVfbWFzazsKLSsgICAgICAgICAgICAgICAgY2xl YXJfdmlydHVhbF9zdGF0ZSA9IFRSVUU7Ci0rICAgICAgICAgICAgfQotICAgICAgICAgfQotKyN1 bmRlZiBfSUJVU19OT19URVhUX0lOUFVUX01PRF9NQVNLCi0rICAgIH0KLSsgICAgaWYgKHByaXYt PmlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGUpIHsKLSsgICAgICAgIGlmIChuZXdfbW9kc19kZXByZXNz ZWQgIT0gbW9kc19kZXByZXNzZWQpIHsKLSsgICAgICAgICAgICBpbnB1dF9tZXRob2Rfa2V5Ym9h cmRfbW9kaWZpZXJzICh3bGltLCBOVUxMLCAwLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1vZHNfbG9ja2VkLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwKTsKLSsgICAgICAgIH0KLSsgICAgICAgIGlm IChjbGVhcl92aXJ0dWFsX3N0YXRlKQotKyAgICAgICAgICAgIHByaXYtPmlzX3ZpcnR1YWxfbGF0 Y2hfc3RhdGUgPSBGQUxTRTsKLSsgICAgfQotKyAgICBpZiAoIXByaXYtPmlzX3ZpcnR1YWxfbGF0 Y2hfc3RhdGUgfHwKLSsgICAgICAgIChzdGF0ZSAhPSBXTF9LRVlCT0FSRF9LRVlfU1RBVEVfUkVM RUFTRUQpKSB7Ci0rICAgICAgICB4a2Jfc3RhdGVfdXBkYXRlX2tleSAoYWN0aXZlX2tleS0+c3Rh dGUsIGNvZGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0YXRlID09IFdMX0tF WUJPQVJEX0tFWV9TVEFURV9SRUxFQVNFRCkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA/IFhLQl9LRVlfVVAgOiBYS0JfS0VZX0RPV04pOwotICAgICB9Ci0tICAgIHhrYl9zdGF0ZV91 cGRhdGVfa2V5IChhY3RpdmVfa2V5LT5zdGF0ZSwgY29kZSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgIChzdGF0ZSA9PSBXTF9LRVlCT0FSRF9LRVlfU1RBVEVfUkVMRUFTRUQpCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICA/IFhLQl9LRVlfVVAgOiBYS0JfS0VZX0RPV04pOwotICAgICBy ZXR1cm4gZmlsdGVyZWQ7Ci0gfQotIAotQEAgLTE3NzcsMTIgKzE4OTIsMzYgQEAgaW5wdXRfbWV0 aG9kX2tleWJvYXJkX2tleSAodm9pZCAgICAgICAgICAgICAgICAgICAgICAqZGF0YSwKLSAgICAg LyogeGtiX2tleV9nZXRfc3ltcygpIGRvZXMgbm90IHJldHVybiB0aGUgY2FwaXRhbCBzeW1zIHdp dGggU2hpZnQga2V5LiAqLwotICAgICBpZiAocHJpdi0+a2V5X3N5cy5zdGF0ZSkKLSAgICAgICAg IGV2ZW50LnN5bSA9IHhrYl9zdGF0ZV9rZXlfZ2V0X29uZV9zeW0gKHByaXYtPmtleV9zeXMuc3Rh dGUsIGNvZGUpOwotLSAgICBpZiAoZXZlbnQuc3ltICE9IElCVVNfS0VZX011bHRpX2tleSAmJiBw cml2LT5rZXlfdXNlci5zdGF0ZSkKLS0gICAgICAgIGV2ZW50LnN5bSA9IHhrYl9zdGF0ZV9rZXlf Z2V0X29uZV9zeW0gKHByaXYtPmtleV91c2VyLnN0YXRlLCBjb2RlKTsKLSsgICAgc3dpdGNoIChl dmVudC5zeW0pIHsKLSsgICAgY2FzZSBJQlVTX0tFWV9NdWx0aV9rZXk6Ci0rICAgIGNhc2UgSUJV U19LRVlfSVNPX05leHRfR3JvdXA6Ci0rICAgICAgICBicmVhazsKLSsgICAgZGVmYXVsdDoKLSsg ICAgICAgIGlmIChwcml2LT5rZXlfdXNlci5zdGF0ZSkKLSsgICAgICAgICAgICBldmVudC5zeW0g PSB4a2Jfc3RhdGVfa2V5X2dldF9vbmVfc3ltIChwcml2LT5rZXlfdXNlci5zdGF0ZSwgY29kZSk7 Ci0rICAgIH0KLSAgICAgZXZlbnQubW9kaWZpZXJzID0gcHJpdi0+bW9kaWZpZXJzOwotICAgICBp ZiAoc3RhdGUgPT0gV0xfS0VZQk9BUkRfS0VZX1NUQVRFX1JFTEVBU0VEKQotICAgICAgICAgZXZl bnQubW9kaWZpZXJzIHw9IElCVVNfUkVMRUFTRV9NQVNLOwotICAgICBldmVudC53bGltID0gd2xp bTsKLSsjaWZkZWYgSUJVU19MT0dfU0hPV19LRVlTWU0KLSsgICAgaWYgKHByaXYtPnZlcmJvc2Up IHsKLSsgICAgICAgIGZwcmludGYgKHByaXYtPmxvZywgIiVzIHNlcmlhbDoldSB0aW1lOiV1IGtl eToldSAiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzeW06JXggc3lzdGVtX3VzZXI6 JXggc3lzdGVtX3N5bToleCAiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb2RpZmll cnM6JXggc3RhdGU6JXNcbiIsCi0rICAgICAgICAgICAgICAgICBHX1NUUkZVTkMsCi0rICAgICAg ICAgICAgICAgICBrZXlfc2VyaWFsLCB0aW1lLCBrZXksCi0rICAgICAgICAgICAgICAgICBldmVu dC5zeW0sCi0rICAgICAgICAgICAgICAgICBwcml2LT5rZXlfdXNlci5zdGF0ZSA/Ci0rICAgICAg ICAgICAgICAgICAgICAgeGtiX3N0YXRlX2tleV9nZXRfb25lX3N5bSAocHJpdi0+a2V5X3VzZXIu c3RhdGUsIGNvZGUpIDoKLSsgICAgICAgICAgICAgICAgICAgICAwLAotKyAgICAgICAgICAgICAg ICAgcHJpdi0+a2V5X3N5cy5zdGF0ZSA/Ci0rICAgICAgICAgICAgICAgICAgICAgeGtiX3N0YXRl X2tleV9nZXRfb25lX3N5bSAocHJpdi0+a2V5X3N5cy5zdGF0ZSwgY29kZSkgOgotKyAgICAgICAg ICAgICAgICAgICAgIDAsCi0rICAgICAgICAgICAgICAgICBldmVudC5tb2RpZmllcnMsIHN0YXRl ID8gInByZXNzIiA6ICJyZWxlYXNlIik7Ci0rICAgICAgICBmZmx1c2ggKHByaXYtPmxvZyk7Ci0r ICAgIH0KLSsjZW5kaWYKLSAKLSAgICAga2V5X2V2ZW50X2NoZWNrX3JlcGVhdCAod2xpbSwgJmV2 ZW50KTsKLSAgICAgc3dpdGNoIChfdXNlX3N5bmNfbW9kZSkgewotQEAgLTE3OTYsNiArMTkzNSwy OSBAQCBpbnB1dF9tZXRob2Rfa2V5Ym9hcmRfa2V5ICh2b2lkICAgICAgICAgICAgICAgICAgICAg ICpkYXRhLAotIH0KLSAKLSAKLSsvKioKLSsgKiBpbnB1dF9tZXRob2Rfa2V5Ym9hcmRfbW9kaWZp ZXJzOgotKyAqCi0rICogVGhpcyBpcyBhIGNvbW1vbiBBUEkgb2YgaW5wdXRfbWV0aG9kX2tleWJv YXJkX21vZGlmaWVyc192MSgpIGFuZAotKyAqIGlucHV0X21ldGhvZF9rZXlib2FyZF9tb2RpZmll cnNfdjIoKS4KLSsgKiBJZiB5b3UgY29uZmlndXJlIG11bHRpcGxlIFhLQiBsYXlvdXRzIGluIHRo ZSBzeXN0ZW0gd2l0aAotKyAqIC9ldGMvdmNvbnNvbGUuY29uZiBmaWxlLCB5b3UgY2FuIHN3aXRj aCB0aGUgYWN0aXZlIGxheW91dCB3aXRoCi0rICogdGhlIFhLQiBvcHRpb25zIGFuZCBAZ3JvdXAg aXMgY2hhbmdlZCB3aXRoIHRoZSBzaG9ydGN1dCBrZXkgbGlrZQotKyAqICJncnA6bGFsdF9sc2hp ZnRfdG9nZ2xlIiBidXQgSWYgeW91IGNsaWNrIHRoZSBrZXlib2FyZCBpY29uIGluCi0rICogUGxh c21hIEtERSBhbmQgY2hhbmdlIHRoZSBhY3RpdmUgbGF5b3V0IHdpdGggR1VJLCBAZ3JvdXAgaXMg bm90Ci0rICogY2hhbmdlZCBhbmQgSSBhc3N1bWUgaXQncyBhIGJ1ZyBbMV0uCi0rICogQ3VycmVu dGx5IHRoZXJlIGFyZSB0d28gY2FzZXMgb2YgdGhlIGNvbWJpbmF0aW9ucyBvZiB0aGUgSUJ1cyBr ZXltYXAgYW5kCi0rICogdGhlIHN5c3RlbSBrZXltYXAgc3VwcG9ydGVkIGJ5IElCdXM6Ci0rICog MS4gQWx3YXlzIFNhbWUga2V5bWFwcwotKyAqICAgIEUuZy4gSUJ1cyBrZXltYXAgaXMgImx2KHRp bGRlKSIgYW5kIHN5c3RlbSBvbmUgaXMgImx2KHRpbGRlKSIKLSsgKiAyLiBTeXN0ZW0ga2V5bWFw IGlzICJVUyIgYW5kIHN3aXRjaCBJQnVzIGtleW1hcHMgd2l0aCBTdXBlci1zcGFjZSBrZXkKLSsg KiAgICBFLmcuIElCdXMga2V5bWFwIGlzICJsdih0aWxkZSkiIGFuZCBzeXN0ZW0gb25lIGlzICJ1 cyIKLSsgKiBTbyB5b3Ugc2hvdWxkIHVzZSBib3RoIFhLQiBvcHRpb24ga2V5cyBhbmQgSUJ1cyBz aG9ydGN1dGtleXMgdG8gc3dpdGNoIHRoZQotKyAqIGtleW1hcHMgdG8gY2hhbmdlIGJvdGggWEtC IGtleW1hcHMgYW5kIElCdXMga2V5bWFwcyBidXQgeW91IHNob3VsZCBub3QKLSsgKiBjbGljayB0 aGUga2V5Ym9hcmQgaWNvbiBpbiBLREUuCi0rICoKLSsgKiBbMV0gaHR0cHM6Ly9idWdzLmtkZS5v cmcvc2hvd19idWcuY2dpP2lkPTUxODM3MQotKyAqLwotIHN0YXRpYyB2b2lkCi0gaW5wdXRfbWV0 aG9kX2tleWJvYXJkX21vZGlmaWVycyAodm9pZCAgICAgICAgICAgICAgICAgICAgICAqZGF0YSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgendwX2tleWJvYXJkX3Vu aW9uICprZXlib2FyZCwKLUBAIC0xODE2LDI3ICsxOTc4LDU5IEBAIGlucHV0X21ldGhvZF9rZXli b2FyZF9tb2RpZmllcnMgKHZvaWQgICAgICAgICAgICAgICAgICAgICAgKmRhdGEsCi0gICAgICAg ICBhY3RpdmVfa2V5ID0gJnByaXYtPmtleV9zeXM7Ci0gICAgIGVsc2UKLSAgICAgICAgIGFjdGl2 ZV9rZXkgPSAmcHJpdi0+a2V5X3VzZXI7Ci0tICAgIGlmIChwcml2LT5rZXlfdXNlci5zdGF0ZSkg ewotLSAgICAgICAgeGtiX3N0YXRlX3VwZGF0ZV9tYXNrIChwcml2LT5rZXlfdXNlci5zdGF0ZSwg bW9kc19kZXByZXNzZWQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHNfbGF0 Y2hlZCwgbW9kc19sb2NrZWQsIDAsIDAsIGdyb3VwKTsKLS0gICAgfQotLSAgICAvKiBQcmVzc2lu ZyBYS0IgZ3JvdXAga2V5IGxpa2VzIEFsdF9SIHdpdGggZ3JwOnRvZ2dsZSBjYWxscwotLSAgICAg KiBpbnB1dF9tZXRob2Rfa2V5Ym9hcmRfbW9kaWZpZXJzKCkgd2l0aCB0aGUgdXBkYXRlZCBgZ3Jv dXBgCi0tICAgICAqIGFuZCBuZWVkIHRvIHVwZGF0ZSBwcml2LT5rZXlfc3lzLnN0YXRlIHRvIHN3 aXRjaCB0aGUgWEtCIGdyb3VwCi0tICAgICAqIGluIHRoZSBzeXN0ZW0ga2V5bWFwLgotLSAgICAg KgotLSAgICAgKiBYS0IgZ3JvdXAga2V5IGNhbiBzd2l0Y2ggYGdyb3VwYCBidXQgY2xpY2tpbmcg dGhlIGtleWJvYXJkIGljb24KLS0gICAgICogb2YgS0RFIGRvZXMgbm90IGNoYW5nZSBgZ3JvdXBg IGF0IHByZXNlbnQuIE1heWJlIGEgYnVnIGluIHRoZQotLSAgICAgKiBLREUgV2F5bGFuZCBjb21w b3NpdG9yLgotKyAgICAvKiBEbyBub3QgcmVzZXQgTGF0Y2ggbW9kaWZpZXJzIGJ5IHN5c3RlbSBp biBjYXNlIHRoZSBzeXN0ZW0ga2V5bWFwCi0rICAgICAqIGhhcyBubyB0aGUgTGF0Y2gga2V5Lgot KyAgICAgKiBJbiBjYXNlIHRoZSB1c2VyIGtleW1hcCBpcyAibHYodGlsZGUpIiBhbmQgdGhlIHN5 c3RlbSBvbmUgaXMgInVzIiwKLSsgICAgICogaW5wdXRfbWV0aG9kX2tleWJvYXJkX21vZGlmaWVy cygpIGNsZWFycyBzdGF0ZSBvZiBMZXZlbDNfTGF0Y2gga2V5Ci0rICAgICAqIGltbWVkaWF0ZWx5 IGFmdGVyIHRoZSBMZXZlbDNfTGF0Y2gga2V5IGlzIHJlbGVhc2VkIGJlY2F1c2UgdGhlICJ1cyIK LSsgICAgICoga2V5bWFwIGRvZXMgbm90IGhhdmUgdGhlIGxhdGNoIGtleXMuCi0rICAgICAqIFRo ZSBiZWhhdmlvciBpcyBkaWZmZXJlbnQgaW4gY2FzZSBib3RoIHVzZXIgYW5kIHN5c3RlbSBrZXlt YXBzIGFyZQotKyAgICAgKiAibHYodGlsZGUpIi4KLSsgICAgICogU28gYGlzX3ZpcnR1YWxfbGF0 Y2hfc3RhdGVgIGtlZXBzIHRoZSB2aXJ0dWFsIHN0YXRlIG9mIHRoZSBsYXRjaCBrZXlzCi0rICAg ICAqIG5vdCB0byBvdmVycmlkZSB0aGUgc3RhdGUgb2YgdGhlICJ1cyIga2V5bWFwLgotICAgICAg Ki8KLS0gICAgaWYgKHByaXYtPmtleV9zeXMuc3RhdGUpIHsKLS0gICAgICAgIHhrYl9zdGF0ZV91 cGRhdGVfbWFzayAocHJpdi0+a2V5X3N5cy5zdGF0ZSwgbW9kc19kZXByZXNzZWQsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHNfbGF0Y2hlZCwgbW9kc19sb2NrZWQsIDAsIDAs IGdyb3VwKTsKLSsgICAgaWYgKCFwcml2LT5pc192aXJ0dWFsX2xhdGNoX3N0YXRlIHx8IGtleV9z ZXJpYWwgPT0gMCkgewotKyAgICAgICAgaWYgKHByaXYtPmtleV91c2VyLnN0YXRlKSB7Ci0rICAg ICAgICAgICAgeGtiX3N0YXRlX3VwZGF0ZV9tYXNrIChwcml2LT5rZXlfdXNlci5zdGF0ZSwgbW9k c19kZXByZXNzZWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RzX2xh dGNoZWQsIG1vZHNfbG9ja2VkLCAwLCAwLCBncm91cCk7Ci0rICAgICAgICB9Ci0rICAgICAgICAv KiBQcmVzc2luZyBYS0IgZ3JvdXAga2V5IGxpa2VzIEFsdF9SIHdpdGggZ3JwOnRvZ2dsZSBjYWxs cwotKyAgICAgICAgICogaW5wdXRfbWV0aG9kX2tleWJvYXJkX21vZGlmaWVycygpIHdpdGggdGhl IHVwZGF0ZWQgYGdyb3VwYAotKyAgICAgICAgICogYW5kIG5lZWQgdG8gdXBkYXRlIHByaXYtPmtl eV9zeXMuc3RhdGUgdG8gc3dpdGNoIHRoZSBYS0IgZ3JvdXAKLSsgICAgICAgICAqIGluIHRoZSBz eXN0ZW0ga2V5bWFwLgotKyAgICAgICAgICoKLSsgICAgICAgICAqIFhLQiBncm91cCBrZXkgY2Fu IHN3aXRjaCBgZ3JvdXBgIGJ1dCBjbGlja2luZyB0aGUga2V5Ym9hcmQgaWNvbgotKyAgICAgICAg ICogb2YgS0RFIGRvZXMgbm90IGNoYW5nZSBgZ3JvdXBgIGF0IHByZXNlbnQuIE1heWJlIGEgYnVn IGluIHRoZQotKyAgICAgICAgICogS0RFIFdheWxhbmQgY29tcG9zaXRvci4KLSsgICAgICAgICAq LwotKyAgICAgICAgaWYgKHByaXYtPmtleV9zeXMuc3RhdGUpIHsKLSsgICAgICAgICAgICB4a2Jf c3RhdGVfdXBkYXRlX21hc2sgKHByaXYtPmtleV9zeXMuc3RhdGUsIG1vZHNfZGVwcmVzc2VkLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kc19sYXRjaGVkLCBtb2RzX2xv Y2tlZCwgMCwgMCwgZ3JvdXApOwotKyAgICAgICAgfQotICAgICB9Ci0gICAgIGlmIChhY3RpdmVf a2V5LT5zdGF0ZSkgewotKyAgICAgICAgLyogQ2Fwc0xvY2sgbmVlZHMgWEtCX1NUQVRFX01PRFNf TE9DS0VEICovCi0gICAgICAgICBtYXNrID0geGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzIChhY3Rp dmVfa2V5LT5zdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFhLQl9TVEFURV9ERVBSRVNTRUQgfAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgWEtCX1NUQVRFX0xBVENIRUQpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgWEtCX1NUQVRFX0xBVENIRUQgfAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX01PRFNfTE9DS0VEKTsKLSsgICAgfQotKyAg ICBpZiAocHJpdi0+dmVyYm9zZSkgewotKyAgICAgICAgc3RydWN0IHhrYl9zdGF0ZSAqc3RhdGUg PSBhY3RpdmVfa2V5LT5zdGF0ZTsKLSsgICAgICAgIGZwcmludGYgKHByaXYtPmxvZywgIlVwZGF0 ZSBtb2RpZmllcnMgc2VyaWFsOiV1IGRlcHJlc3M6JVggbGF0Y2g6JVggIgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImxvY2s6JVggZ3JvdXA6JVggb3JpZ19kZXByZTolWCBvcmlnX2xh dGNoOiVYICIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcmlnX2xvY2s6JVhcbiIs Ci0rICAgICAgICAgICAgICAgICBrZXlfc2VyaWFsLCBtb2RzX2RlcHJlc3NlZCwgbW9kc19sYXRj aGVkLCBtb2RzX2xvY2tlZCwgZ3JvdXAsCi0rICAgICAgICAgICAgICAgICBzdGF0ZSA/Ci0rICAg ICAgICAgICAgICAgICAgICAgeGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzIChzdGF0ZSwgWEtCX1NU QVRFX0RFUFJFU1NFRCkgOgotKyAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsCi0rICAg ICAgICAgICAgICAgICBzdGF0ZSA/Ci0rICAgICAgICAgICAgICAgICAgICAgeGtiX3N0YXRlX3Nl cmlhbGl6ZV9tb2RzIChzdGF0ZSwgWEtCX1NUQVRFX0xBVENIRUQpIDoKLSsgICAgICAgICAgICAg ICAgICAgICAweEZGRkZGRkZGLAotKyAgICAgICAgICAgICAgICAgc3RhdGUgPwotKyAgICAgICAg ICAgICAgICAgICAgIHhrYl9zdGF0ZV9zZXJpYWxpemVfbW9kcyAoc3RhdGUsIFhLQl9TVEFURV9N T0RTX0xPQ0tFRCkgOgotKyAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYpOwotKyAgICAg ICAgZmZsdXNoIChwcml2LT5sb2cpOwotICAgICB9Ci0gCi0gICAgIHByaXYtPm1vZGlmaWVycyA9 IDA7Ci1AQCAtMTg2Myw2ICsyMDU3LDkgQEAgaW5wdXRfbWV0aG9kX2tleWJvYXJkX21vZGlmaWVy cyAodm9pZCAgICAgICAgICAgICAgICAgICAgICAqZGF0YSwKLSAgICAgaWYgKG1hc2sgJiBhY3Rp dmVfa2V5LT5tZXRhX21hc2spCi0gICAgICAgICBwcml2LT5tb2RpZmllcnMgfD0gSUJVU19NRVRB X01BU0s7Ci0gCi0rICAgIGlmICgha2V5X3NlcmlhbCkKLSsgICAgICAgIHJldHVybjsKLSsKLSAg ICAgc3dpdGNoIChwcml2LT52ZXJzaW9uKSB7Ci0gICAgIGNhc2UgSU5QVVRfTUVUSE9EX1YxOgot ICAgICAgICAgendwX2lucHV0X21ldGhvZF9jb250ZXh0X3YxX21vZGlmaWVycyAocHJpdi0+Y29u dGV4dCwga2V5X3NlcmlhbCwKLUBAIC0yODM0LDYgKzMwMzEsNyBAQCBpYnVzX3dheWxhbmRfaW1f Y29uc3RydWN0b3IgKEdUeXBlICAgICAgICAgICAgICAgICAgdHlwZSwKLSAgICAgSUJ1c1dheWxh bmRTZWF0ICpzZWF0ID0gTlVMTDsKLSAgICAgSUJ1c0VuZ2luZURlc2MgKmRlc2M7Ci0gICAgIHN0 cnVjdCB4a2Jfa2V5bWFwICprZXltYXAgPSBOVUxMOwotKyAgICBnYm9vbGVhbiBoYXNfa2V5bWFw ID0gRkFMU0U7Ci0gCi0gICAgIG9iamVjdCA9IEdfT0JKRUNUX0NMQVNTIChpYnVzX3dheWxhbmRf aW1fcGFyZW50X2NsYXNzKS0+Y29uc3RydWN0b3IgKAotICAgICAgICAgICAgIHR5cGUsIG5fcGFy YW1zLCBwYXJhbXMpOwotQEAgLTI4ODIsOSArMzA4MCwyMSBAQCBpYnVzX3dheWxhbmRfaW1fY29u c3RydWN0b3IgKEdUeXBlICAgICAgICAgICAgICAgICAgdHlwZSwKLSAgICAgZGVzYyA9IGlidXNf YnVzX2dldF9nbG9iYWxfZW5naW5lIChwcml2LT5pYnVzYnVzKTsKLSAgICAgaWYgKGRlc2MpCi0g ICAgICAgICBrZXltYXAgPSBjcmVhdGVfdXNlcl94a2Jfa2V5bWFwIChwcml2LT54a2JfY29udGV4 dCwgZGVzYyk7Ci0tICAgIGlmIChrZXltYXAgJiYgIWlidXNfeGtiX2tleW1hcF91cGRhdGVfd2l0 aF9rZXltYXAgKCZwcml2LT5rZXlfdXNlciwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5bWFwKSkgewotLSAgICAgICAgZ19jbGVhcl9w b2ludGVyICgma2V5bWFwLCB4a2Jfa2V5bWFwX3VucmVmKTsKLSsgICAgaWYgKGtleW1hcCkgewot KyAgICAgICAgaGFzX2tleW1hcCA9IGlidXNfeGtiX2tleW1hcF91cGRhdGVfd2l0aF9rZXltYXAg KCZwcml2LT5rZXlfdXNlciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBrZXltYXApOwotKyAgICAgICAgeGtiX2tleW1hcF91bnJlZiAo a2V5bWFwKTsKLSsgICAgfQotKyAgICBpZiAocHJpdi0+dmVyYm9zZSkgewotKyAgICAgICAgaWYg KCFkZXNjKSB7Ci0rICAgICAgICAgICAgZnByaW50ZiAocHJpdi0+bG9nLCAiQ29uc3RydWN0b3Ig aGFzIG5vIGdsb2JhbCBlbmdpbmVcbiIpOwotKyAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAg ICBmcHJpbnRmIChwcml2LT5sb2csICJDb25zdHJ1Y3RvciBlbmdpbmUgJXMga2V5bWFwOiVzIHN0 YXRlOiVzXG4iLAotKyAgICAgICAgICAgICAgICAgICAgIGlidXNfZW5naW5lX2Rlc2NfZ2V0X25h bWUgKGRlc2MpLAotKyAgICAgICAgICAgICAgICAgICAgIGhhc19rZXltYXAgPyAiVFJVRSIgOiAi RkFMU0UiLAotKyAgICAgICAgICAgICAgICAgICAgIHByaXYtPmtleV91c2VyLnN0YXRlID8gIlRS VUUiIDogIkZBTFNFIik7Ci0rICAgICAgICB9Ci0rICAgICAgICBmZmx1c2ggKHByaXYtPmxvZyk7 Ci0gICAgIH0KLSAgICAgaWJ1c19idXNfc2V0X3dhdGNoX2lidXNfc2lnbmFsIChwcml2LT5pYnVz YnVzLCBUUlVFKTsKLSAgICAgZ19zaWduYWxfY29ubmVjdCAocHJpdi0+aWJ1c2J1cywgImdsb2Jh bC1lbmdpbmUtY2hhbmdlZCIsCi0tLSAKLTIuNTQuMAotCi1Gcm9tIGRmODIzMGZmOTBlYzNhYWZm ZmUxMGFmNzY5YWQ2NmFhOTQ4YWMzNDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBm dWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBNb24sIDI5IEp1biAy MDI2IDEyOjUxOjA3ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0ggMi81XSBjbGllbnQvd2F5bGFuZDog UmVmYWN0b3IgaWJ1c193YXlsYW5kX2ltX3Bvc3Rfa2V5KCkKLQotU2VwYXJhdGUgMyBmdW5jdGlv bnMuCi0KLUZpeGVzOiAjMjg2OQotQ2xvc2VzOiByaGJ6IzI0NDQwMDkKLS0tLQotIGNsaWVudC93 YXlsYW5kL2lidXN3YXlsYW5kaW0uYyB8IDM3NyArKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMjQ2IGluc2VydGlvbnMoKyksIDEzMSBkZWxldGlvbnMo LSkKLQotZGlmZiAtLWdpdCBhL2NsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYyBiL2NsaWVu dC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYwotaW5kZXggOTViMzMwZjguLmIxNmZmNTIxIDEwMDY0 NAotLS0tIGEvY2xpZW50L3dheWxhbmQvaWJ1c3dheWxhbmRpbS5jCi0rKysgYi9jbGllbnQvd2F5 bGFuZC9pYnVzd2F5bGFuZGltLmMKLUBAIC0zNjcsNiArMzY3LDgxIEBAIGlidXNfd2F5bGFuZF9p bV9jb21taXRfdGV4dCAoSUJ1c1dheWxhbmRJTSAqd2xpbSwKLSB9Ci0gCi0gCi0rc3RhdGljIGdi b29sZWFuCi0raWJ1c193YXlsYW5kX2ltX2NvbW1pdF9rZXlfZXZlbnQgKElCdXNXYXlsYW5kSU0g ICp3bGltLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAg ICAga2V5LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAg ICAgbW9kaWZpZXJzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf dCAgICAgICAgc3RhdGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhrYl9r ZXlzeW1fdCAgICBzeW0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCdXNY a2JLZXltYXAgICphY3RpdmVfa2V5LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnYm9vbGVhbiAgICAgICAgZmlsdGVyZWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHhrYl9tb2RfbWFza190ICpuZXdfbW9kc19kZXByZXNzZWQsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICpjbGVhcl92aXJ0dWFsX3N0YXRl KQotK3sKLSsgICAgSUJ1c1dheWxhbmRJTVByaXZhdGUgKnByaXY7Ci0rICAgIHVpbnQzMl90IGNv ZGUgPSBrZXkgKyA4OwotKyAgICB1aW50MzJfdCBjaDsKLSsKLSsgICAgZ19yZXR1cm5fdmFsX2lm X2ZhaWwgKElCVVNfSVNfV0FZTEFORF9JTSAod2xpbSksIGZpbHRlcmVkKTsKLSsgICAgcHJpdiA9 IGlidXNfd2F5bGFuZF9pbV9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAod2xpbSk7Ci0rCi0rICAgIGlm IChzdGF0ZSA9PSBXTF9LRVlCT0FSRF9LRVlfU1RBVEVfUkVMRUFTRUQpCi0rICAgICAgICByZXR1 cm4gZmlsdGVyZWQ7Ci0rCi0rICAgIGNoID0gaWJ1c19rZXl2YWxfdG9fdW5pY29kZSAoc3ltKTsK LSsgICAgaWYgKGNoID09IDAgfHwgZ191bmljaGFyX2lzY250cmwgKGNoKSkKLSsgICAgICAgIGNo ID0geGtiX3N0YXRlX2tleV9nZXRfdXRmMzIgKGFjdGl2ZV9rZXktPnN0YXRlLCBjb2RlKTsKLSsK LSsvKiBObyB0ZXh0IHdpdGggQ29udHJvbCAmIEFsdCAmIFN1cGVyIGtleXMgKi8KLSsjaWZuZGVm IEdES19XSU5ET1dJTkdfUVVBUlRaCi0rIyAgZGVmaW5lIF9JQlVTX05PX1RFWFRfSU5QVVRfTU9E X01BU0sgKFwKLSsgICAgSUJVU19DT05UUk9MX01BU0sgfCBJQlVTX01PRDFfTUFTSyB8IElCVVNf TU9ENF9NQVNLKQotKyNlbHNlCi0rIyAgZGVmaW5lIF9JQlVTX05PX1RFWFRfSU5QVVRfTU9EX01B U0sgKFwKLSsgICAgSUJVU19DT05UUk9MX01BU0sgfCBJQlVTX01PRDJfTUFTSyB8IElCVVNfTU9E NF9NQVNLKQotKyNlbmRpZgotKyAgICBpZiAoKCFmaWx0ZXJlZCAmJiAhKG1vZGlmaWVycyAmIF9J QlVTX05PX1RFWFRfSU5QVVRfTU9EX01BU0spICYmCi0rICAgICAgICAgIWdfdW5pY2hhcl9pc2Nu dHJsIChjaCkpIHx8IGZpbHRlcmVkKSB7Ci0rICAgICAgICAvKiBJbiBjYXNlIGB1c2Vfc3lzX2tl eW1hcGAgaXMgJVRSVUUsIElCdXMgZG9lcyBub3QgY29tbWl0IEFTQ0lJIGNoYXJzCi0rICAgICAg ICAgKiBidXQgZm9yd2FyZHMgdGhlIGtleSBldmVudHMgdG8gdGhlIGZvY3VzZWQgYXBwbGljYXRp b24gaGVyZS4KLSsgICAgICAgICAqIEJlY2F1c2Ugc29tZSBhcHBsaWNhdGlvbnMgdHJlYXQgdGhl IHByaW50YWJsZSBrZXlzIGFzIGNvbnRyb2wga2V5cywKLSsgICAgICAgICAqIEUuZy4gZ2FtZSBh cHBzICJoamtsIiB1c2UgdGhlIGN1cnNvciBtb3ZlIGxpa2UgVkkgbW9kZS4KLSsgICAgICAgICAq IFVuZm9ydHVuYXRlbHkgdGhlIFdheWxhbmQgaW5wdXQtbWV0aG9kIHByb3RvY29sIGRvZXMgbm90 IHByb3ZpZGUKLSsgICAgICAgICAqIHRoZSBmYWxsYmFjayBsb2dpYyBhZnRlciBhcHBzIGhhbmRs ZSB0aGUga2V5IGV2ZW50cyBsaWtlIEdUSzMvMgotKyAgICAgICAgICogSU0gbW9kdWxlcy4gQnV0 IHRoZSBpbnB1dC1tZXRob2QgYWx3YXlzIHNob3VsZCBoYW5kbGUga2V5IGV2ZW50cwotKyAgICAg ICAgICogcHJpb3IgdG8gYXBwcy4KLSsgICAgICAgICAqLwotKyAgICAgICAgaWYgKCFmaWx0ZXJl ZCAmJiAhcHJpdi0+dXNlX3N5c19rZXltYXApIHsKLSsgICAgICAgICAgICBnY2hhciBidWZmWzhd ID0geyAwLCB9OwotKyAgICAgICAgICAgIGdfdW5pY2hhcl90b191dGY4IChjaCwgYnVmZik7Ci0r ICAgICAgICAgICAgaWJ1c193YXlsYW5kX2ltX2NvbW1pdF90ZXh0ICh3bGltLCBidWZmKTsKLSsg ICAgICAgICAgICBmaWx0ZXJlZCA9IFRSVUU7Ci0rICAgICAgICB9Ci0rICAgICAgICAvKiBJZiBg ZmlsdGVyZWRgIGlzICVUUlVFLCB0aGUga2V5c3ltIGNhbiBiZSBlYXRlbiBmb3IgdGhlIGNvbXBv c2UKLSsgICAgICAgICAqIHByZWVkaXQgYnkgSUJ1cyBYS0IgZW5naW5lLiBFLmcuIEFsdEdyLVNo aWZ0LVYga2V5IHByb2R1Y2VzCi0rICAgICAgICAgKiBgTGV2ZWwzX1NoaWZ0JyBhbmQgYEdyZWVr X09NRUdBYCBrZXlzeW0gd2l0aCAidXMoc3ltYm9saWMpIiBrZXltYXAuCi0rICAgICAgICAgKiBI b3dldmVyIGlmIHlvdSBjb25maWd1cmUgbXVsdGlwbGUga2V5bWFwcywgQWx0R3ItU2hpZnQgbWF5 IHByb2R1Y2UKLSsgICAgICAgICAqIHRoZSBrZXltYXAgc3dpdGNoIGFsdGhvdWdoIEFsdEdyLVNo aWZ0LVYgcHJvZHVjZXMgYEdyZWVrX09NRUdBYC4KLSsgICAgICAgICAqIEknbSBub3QgY2xhcmlm aWVkIHdpdGggImxldmVsMyhyYWx0X3N3aXRjaCkiIGluIHVzIFhLQiBrZXltYXBzLgotKyAgICAg ICAgICovCi0rICAgICAgICBpZiAobW9kaWZpZXJzICYgSUJVU19NT0QzX01BU0spIHsKLSsgICAg ICAgICAgICBpZiAobmV3X21vZHNfZGVwcmVzc2VkKQotKyAgICAgICAgICAgICAgICAqbmV3X21v ZHNfZGVwcmVzc2VkICY9IH5hY3RpdmVfa2V5LT5tb2QzX21hc2s7Ci0rICAgICAgICAgICAgaWYg KGNsZWFyX3ZpcnR1YWxfc3RhdGUpCi0rICAgICAgICAgICAgICAgICpjbGVhcl92aXJ0dWFsX3N0 YXRlID0gVFJVRTsKLSsgICAgICAgIH0KLSsgICAgICAgIGlmIChtb2RpZmllcnMgJiBJQlVTX01P RDVfTUFTSykgewotKyAgICAgICAgICAgIGlmIChuZXdfbW9kc19kZXByZXNzZWQpCi0rICAgICAg ICAgICAgICAgICpuZXdfbW9kc19kZXByZXNzZWQgJj0gfmFjdGl2ZV9rZXktPm1vZDVfbWFzazsK LSsgICAgICAgICAgICBpZiAoY2xlYXJfdmlydHVhbF9zdGF0ZSkKLSsgICAgICAgICAgICAgICAg KmNsZWFyX3ZpcnR1YWxfc3RhdGUgPSBUUlVFOwotKyAgICAgICAgfQotKyAgICB9Ci0rI3VuZGVm IF9JQlVTX05PX1RFWFRfSU5QVVRfTU9EX01BU0sKLSsgICAgcmV0dXJuIGZpbHRlcmVkOwotK30K LSsKLSsKLSBzdGF0aWMgdm9pZAotIGlidXNfd2F5bGFuZF9pbV9rZXkgKElCdXNXYXlsYW5kSU0g KndsaW0sCi0gICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAga2V5X3NlcmlhbCwK LUBAIC00MzEsNiArNTA2LDE1MiBAQCBpYnVzX3dheWxhbmRfaW1fa2V5c3ltIChJQnVzV2F5bGFu ZElNICp3bGltLAotIH0KLSAKLSAKLSsvKioKLSsgKiBpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3Zp cnR1YWxfZGVwcmVzc2VkOgotKyAqCi0rICogSWYgdGhlIElCdXMga2V5bWFwIGlzIGRpZmZlcmVu dCBmcm9tIHRoZSBjb21wb3NpdG9yIGtleW1hcCwKLSsgKiBJQnVzIG5lZWRzIHRvIG1haW50YWlu IHRoZSBtb2RpZmllcnMgc3RhdGUgYnkgaXRzZWxmIHRvIGNhbGwKLSsgKiB4a2Jfc3RhdGVfdXBk YXRlX21hc2soKSwgRS5nLiBJQnVzIGtleW1hcCBpcyAibHYodGlsZGUpIiBhbmQgdGhlIHN5c3Rl bQotKyAqIG9uZSBpcyAidXMiLCBiZWNhdXNlIGlucHV0X21ldGhvZF9rZXlib2FyZF9tb2RpZmll cnMoKQotKyAqIGlzIG5vdCBjYWxsZWQgYnkgdGhlIFdheWxhbmQgY29tcG9zaXRvciBpbiB0aGF0 IGNhc2UuCi0rICogU28gdGhpcyBBUEkgdXBkYXRlcyBAbW9kc19kZXByZXNzZWQgd2l0aCBJU08g bGV2ZWwzIGFuZCBsZXZlbDUKLSsgKiBsYXRjaCBhbmQgc2hpZnQgc3RhdGVzLCBhbmQgc2VuZCBp dCB0bwotKyAqIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF94a2Jfc3RhdGUoKS4KLSsg Ki8KLStzdGF0aWMgZ2Jvb2xlYW4KLStpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxfZGVw cmVzc2VkIChJQnVzV2F5bGFuZElNICAqd2xpbSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICAga2V5LAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICAgICAgICBtb2RpZmllcnMsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgIHN0 YXRlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhrYl9rZXlz eW1fdCAgICBzeW0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SUJ1c1hrYktleW1hcCAgKmFjdGl2ZV9rZXksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGZpbHRlcmVkLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhrYl9tb2RfbWFza190ICptb2RzX2RlcHJlc3Nl ZCkKLSt7Ci0rICAgIElCdXNXYXlsYW5kSU1Qcml2YXRlICpwcml2OwotKyAgICB1aW50MzJfdCBj b2RlID0ga2V5ICsgODsKLSsgICAgeGtiX21vZF9tYXNrX3QgbmV3X21vZHNfZGVwcmVzc2VkOwot KyAgICB4a2Jfa2V5c3ltX3Qgc3lzdGVtX3N5bSA9IHN5bTsKLSsKLSsgICAgaWYgKGZpbHRlcmVk KQotKyAgICAgICAgcmV0dXJuIGZpbHRlcmVkOwotKwotKyAgICBnX2Fzc2VydCAoSUJVU19JU19X QVlMQU5EX0lNICh3bGltKSk7Ci0rICAgIGdfYXNzZXJ0IChhY3RpdmVfa2V5KTsKLSsgICAgZ19h c3NlcnQgKG1vZHNfZGVwcmVzc2VkKTsKLSsKLSsgICAgcHJpdiA9IGlidXNfd2F5bGFuZF9pbV9n ZXRfaW5zdGFuY2VfcHJpdmF0ZSAod2xpbSk7Ci0rICAgIG5ld19tb2RzX2RlcHJlc3NlZCA9ICpt b2RzX2RlcHJlc3NlZDsKLSsKLSsgICAgaWYgKChtb2RpZmllcnMgJiB+SUJVU19SRUxFQVNFX01B U0sgKSAhPSBuZXdfbW9kc19kZXByZXNzZWQpIHsKLSsgICAgICAgIGdfd2FybmluZyAoIklCdXMg bW9kaWZpZXJzICVYIGlzIGRpZmZlcmVudCBmcm9tIFhLQiBkZXByZXNzZWQgJVgiLAotKyAgICAg ICAgICAgICAgICAgICBtb2RpZmllcnMsIG5ld19tb2RzX2RlcHJlc3NlZCk7Ci0rICAgIH0KLSsg ICAgaWYgKHByaXYtPmtleV9zeXMuc3RhdGUpCi0rICAgICAgICBzeXN0ZW1fc3ltID0geGtiX3N0 YXRlX2tleV9nZXRfb25lX3N5bSAocHJpdi0+a2V5X3N5cy5zdGF0ZSwgY29kZSk7Ci0rICAgIHN3 aXRjaCAoc3ltKSB7Ci0rICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVsMl9MYXRjaDoKLSsgICAg ICAgIGZpbHRlcmVkID0gVFJVRTsKLSsgICAgICAgIGJyZWFrOwotKyAgICAvKiBMZXZlbDNfbGF0 Y2ggaXMgY2F1c2VkIGJ5IFRMREUga2V5IGluIGx2KHRpbGRlKSBrZXltYXAuCi0rICAgICAqIExl dmVsM19TaGlmdCBpcyBjYXVzZWQgYnkgQWx0IGtleSBpbiBsdih0aWxkZSkga2V5bWFwLgotKyAg ICAgKi8KLSsgICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2ZWwzX0xhdGNoOgotKyAgICBjYXNlIElC VVNfS0VZX0lTT19MZXZlbDNfU2hpZnQ6Ci0rICAgICAgICBpZiAoc3RhdGUgPT0gV0xfS0VZQk9B UkRfS0VZX1NUQVRFX1BSRVNTRUQpIHsKLSsgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQg fD0gYWN0aXZlX2tleS0+bW9kNV9tYXNrOwotKyAgICAgICAgICAgIGlmIChzeW0gIT0gc3lzdGVt X3N5bSkKLSsgICAgICAgICAgICAgICAgcHJpdi0+aXNfdmlydHVhbF9sYXRjaF9zdGF0ZSA9IFRS VUU7Ci0rICAgICAgICAgICAgZmlsdGVyZWQgPSBUUlVFOwotKyAgICAgICAgfQotKyAgICAgICAg YnJlYWs7Ci0rICAgIC8qIExldmVsNV9MYXRjaCBpcyBjYXVzZWQgYnkgU2hpZnQrQWx0IGtleSBp biBkZShUMykga2V5bWFwLgotKyAgICAgKi8KLSsgICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2ZWw1 X0xhdGNoOgotKyAgICBjYXNlIElCVVNfS0VZX0lTT19MZXZlbDVfU2hpZnQ6Ci0rICAgICAgICBp ZiAoc3RhdGUgPT0gV0xfS0VZQk9BUkRfS0VZX1NUQVRFX1BSRVNTRUQpIHsKLSsgICAgICAgICAg ICBuZXdfbW9kc19kZXByZXNzZWQgfD0gYWN0aXZlX2tleS0+bW9kM19tYXNrOwotKyAgICAgICAg ICAgIGlmIChzeW0gIT0gc3lzdGVtX3N5bSkKLSsgICAgICAgICAgICAgICAgcHJpdi0+aXNfdmly dHVhbF9sYXRjaF9zdGF0ZSA9IFRSVUU7Ci0rICAgICAgICAgICAgZmlsdGVyZWQgPSBUUlVFOwot KyAgICAgICAgfQotKyAgICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgSUJVU19LRVlfU2hpZnRfTDoK LSsgICAgY2FzZSBJQlVTX0tFWV9TaGlmdF9SOgotKyAgICAgICAgaWYgKHN0YXRlID09IFdMX0tF WUJPQVJEX0tFWV9TVEFURV9QUkVTU0VEKQotKyAgICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3Nl ZCB8PSBhY3RpdmVfa2V5LT5zaGlmdF9tYXNrOwotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAg IG5ld19tb2RzX2RlcHJlc3NlZCAmPSB+YWN0aXZlX2tleS0+c2hpZnRfbWFzazsKLSsgICAgICAg IGJyZWFrOwotKyAgICBkZWZhdWx0OjsKLSsgICAgfQotKyNpZmRlZiBJQlVTX0xPR19TSE9XX0tF WVNZTQotKyAgICBpZiAocHJpdi0+dmVyYm9zZSkgewotKyAgICAgICAgZnByaW50ZiAocHJpdi0+ bG9nLCAiJXMga2V5OiV1IHN5bToleCBzeXN0ZW1fc3ltOiV4IG1vZGlmaWVyczoleCAiCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0ZTolcyBmaWx0ZXJlZDolZFxuIiwKLSsgICAg ICAgICAgICAgICAgIEdfU1RSRlVOQywKLSsgICAgICAgICAgICAgICAgIGtleSwgc3ltLCBzeXN0 ZW1fc3ltLCBtb2RpZmllcnMsIHN0YXRlID8gInByZXNzIiA6ICJyZWxlYXNlIiwKLSsgICAgICAg ICAgICAgICAgIGZpbHRlcmVkKTsKLSsgICAgICAgIGZmbHVzaCAocHJpdi0+bG9nKTsKLSsgICAg fQotKyNlbmRpZgotKyAgICAqbW9kc19kZXByZXNzZWQgPSBuZXdfbW9kc19kZXByZXNzZWQ7Ci0r ICAgIHJldHVybiBmaWx0ZXJlZDsKLSt9Ci0rCi0rCi0rLyoqCi0rICogaWJ1c193YXlsYW5kX2lt X3VwZGF0ZV92aXJ0dWFsX3hrYl9zdGF0ZToKLSsgKgotKyAqIFVwZGF0ZSB2aXJ0dWFsIElCdXMg eGtiX3N0YXRlIGJ5IEtleVByZXNzIGFuZCBLZXlSZWxlYXNlLgotKyAqLwotK3N0YXRpYyB2b2lk Ci0raWJ1c193YXlsYW5kX2ltX3VwZGF0ZV92aXJ0dWFsX3hrYl9zdGF0ZSAoSUJ1c1dheWxhbmRJ TSAqd2xpbSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50 MzJfdCAgICAgICBrZXksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDMyX3QgICAgICAgc3RhdGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSUJ1c1hrYktleW1hcCAqYWN0aXZlX2tleSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB4a2JfbW9kX21hc2tfdCBtb2RzX2RlcHJlc3NlZCwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4a2JfbW9kX21hc2tf dCBuZXdfbW9kc19kZXByZXNzZWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ2Jvb2xlYW4gICAgICAgY2xlYXJfdmlydHVhbF9zdGF0ZSkKLSt7Ci0rICAgIElC dXNXYXlsYW5kSU1Qcml2YXRlICpwcml2OwotKyAgICB1aW50MzJfdCBjb2RlID0ga2V5ICsgODsK LSsgICAgeGtiX21vZF9tYXNrX3QgbW9kc19sb2NrZWQ7Ci0rICAgIHhrYl9sYXlvdXRfaW5kZXhf dCAgZ3JvdXAgPSAwOwotKwotKyAgICBnX2Fzc2VydCAoSUJVU19JU19XQVlMQU5EX0lNICh3bGlt KSk7Ci0rCi0rICAgIHByaXYgPSBpYnVzX3dheWxhbmRfaW1fZ2V0X2luc3RhbmNlX3ByaXZhdGUg KHdsaW0pOwotKyAgICBtb2RzX2xvY2tlZCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbW9kcyAoYWN0 aXZlX2tleS0+c3RhdGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBYS0JfU1RBVEVfTU9EU19MT0NLRUQpOwotKyAgICAvKiBYS0IgZ3JvdXAgbGF5b3V0IGlz IGNvbmZpZ3VyZWQgaW4gdGhlIHN5c3RlbSBrZXltYXAgYnV0IG5vdCB0aGUKLSsgICAgICogdXNl ciBrZXltYXAgd2hpY2ggYWx3YXlzIGluY2x1ZGVzIGEgc2luZ2xlIGxheW91dC4KLSsgICAgICov Ci0rICAgIGlmIChwcml2LT5rZXlfc3lzLnN0YXRlKSB7Ci0rICAgICAgICBncm91cCA9IHhrYl9z dGF0ZV9zZXJpYWxpemVfbGF5b3V0IChwcml2LT5rZXlfc3lzLnN0YXRlLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX0xBWU9VVF9MT0NLRUQp OwotKyAgICB9Ci0rCi0rICAgIGlmIChwcml2LT5pc192aXJ0dWFsX2xhdGNoX3N0YXRlKSB7Ci0r ICAgICAgICBpZiAobmV3X21vZHNfZGVwcmVzc2VkICE9IG1vZHNfZGVwcmVzc2VkKSB7Ci0rICAg ICAgICAgICAgaW5wdXRfbWV0aG9kX2tleWJvYXJkX21vZGlmaWVycyAod2xpbSwgTlVMTCwgMCwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfbW9kc19k ZXByZXNzZWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RzX2xv Y2tlZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91 cCk7Ci0rICAgICAgICB9Ci0rICAgICAgICBpZiAoY2xlYXJfdmlydHVhbF9zdGF0ZSkKLSsgICAg ICAgICAgICBwcml2LT5pc192aXJ0dWFsX2xhdGNoX3N0YXRlID0gRkFMU0U7Ci0rICAgIH0KLSsg ICAgaWYgKCFwcml2LT5pc192aXJ0dWFsX2xhdGNoX3N0YXRlIHx8Ci0rICAgICAgICAoc3RhdGUg IT0gV0xfS0VZQk9BUkRfS0VZX1NUQVRFX1JFTEVBU0VEKSkgewotKyAgICAgICAgeGtiX3N0YXRl X3VwZGF0ZV9rZXkgKGFjdGl2ZV9rZXktPnN0YXRlLCBjb2RlLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChzdGF0ZSA9PSBXTF9LRVlCT0FSRF9LRVlfU1RBVEVfUkVMRUFTRUQpCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBYS0JfS0VZX1VQIDogWEtCX0tFWV9ET1dO KTsKLSsgICAgfQotK30KLSsKLSsKLSBzdGF0aWMgdm9pZAotIF9jb250ZXh0X2NvbW1pdF90ZXh0 X2NiIChJQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAg ICBJQnVzVGV4dCAgICAgICAgICp0ZXh0LAotQEAgLTEyODcsMTIgKzE1MDgsNyBAQCBpYnVzX3dh eWxhbmRfaW1fcG9zdF9rZXkgKElCdXNXYXlsYW5kSU0gKndsaW0sCi0gewotICAgICBJQnVzV2F5 bGFuZElNUHJpdmF0ZSAqcHJpdjsKLSAgICAgSUJ1c1hrYktleW1hcCAqYWN0aXZlX2tleTsKLS0g ICAgeGtiX21vZF9tYXNrX3QgbW9kc19kZXByZXNzZWQgPSAwLCBuZXdfbW9kc19kZXByZXNzZWQg PSAwOwotLSAgICB4a2JfbW9kX21hc2tfdCBtb2RzX2xvY2tlZDsKLS0gICAgeGtiX2xheW91dF9p bmRleF90ICBncm91cCA9IDA7Ci0tICAgIHhrYl9rZXlzeW1fdCBzeXN0ZW1fc3ltID0gc3ltOwot LSAgICB1aW50MzJfdCBjb2RlID0ga2V5ICsgODsKLS0gICAgdWludDMyX3QgY2g7Ci0rICAgIHhr Yl9tb2RfbWFza190IG1vZHNfZGVwcmVzc2VkLCBuZXdfbW9kc19kZXByZXNzZWQ7Ci0gICAgIGdi b29sZWFuIGNsZWFyX3ZpcnR1YWxfc3RhdGUgPSBGQUxTRTsKLSAKLSAgICAgZ19yZXR1cm5fdmFs X2lmX2ZhaWwgKElCVVNfSVNfV0FZTEFORF9JTSAod2xpbSksIEZBTFNFKTsKLUBAIC0xMzIxLDEz MSArMTUzNywzMCBAQCBpYnVzX3dheWxhbmRfaW1fcG9zdF9rZXkgKElCdXNXYXlsYW5kSU0gKnds aW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYS0Jf U1RBVEVfREVQUkVTU0VEIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFhLQl9TVEFURV9MQVRDSEVEKTsKLSAgICAgbmV3X21vZHNfZGVwcmVzc2VkID0g bW9kc19kZXByZXNzZWQ7Ci0tICAgIG1vZHNfbG9ja2VkID0geGtiX3N0YXRlX3NlcmlhbGl6ZV9t b2RzIChhY3RpdmVfa2V5LT5zdGF0ZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFhLQl9TVEFURV9NT0RTX0xPQ0tFRCk7Ci0tICAgIC8qIFhLQiBncm91cCBs YXlvdXQgaXMgY29uZmlndXJlZCBpbiB0aGUgc3lzdGVtIGtleW1hcCBidXQgbm90IHRoZQotLSAg ICAgKiB1c2VyIGtleW1hcCB3aGljaCBhbHdheXMgaW5jbHVkZXMgYSBzaW5nbGUgbGF5b3V0Lgot LSAgICAgKi8KLS0gICAgaWYgKHByaXYtPmtleV9zeXMuc3RhdGUpIHsKLS0gICAgICAgIGdyb3Vw ID0geGtiX3N0YXRlX3NlcmlhbGl6ZV9sYXlvdXQgKHByaXYtPmtleV9zeXMuc3RhdGUsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYS0JfU1RBVEVfTEFZT1VU X0xPQ0tFRCk7Ci0tICAgIH0KLS0gICAgaWYgKCFmaWx0ZXJlZCkgewotLSAgICAgICAgaWYgKHBy aXYtPmtleV9zeXMuc3RhdGUpCi0tICAgICAgICAgICAgc3lzdGVtX3N5bSA9IHhrYl9zdGF0ZV9r ZXlfZ2V0X29uZV9zeW0gKHByaXYtPmtleV9zeXMuc3RhdGUsIGNvZGUpOwotLSAgICAgICAgc3dp dGNoIChzeW0pIHsKLS0gICAgICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVsMl9MYXRjaDoKLS0g ICAgICAgICAgICBmaWx0ZXJlZCA9IFRSVUU7Ci0tICAgICAgICAgICAgYnJlYWs7Ci0tICAgICAg ICAvKiBMZXZlbDNfbGF0Y2ggaXMgY2F1c2VkIGJ5IFRMREUga2V5IGluIGx2KHRpbGRlKSBrZXlt YXAuCi0tICAgICAgICAgKiBMZXZlbDNfU2hpZnQgaXMgY2F1c2VkIGJ5IEFsdCBrZXkgaW4gbHYo dGlsZGUpIGtleW1hcC4KLS0gICAgICAgICAqLwotLSAgICAgICAgY2FzZSBJQlVTX0tFWV9JU09f TGV2ZWwzX0xhdGNoOgotLSAgICAgICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2ZWwzX1NoaWZ0Ogot LSAgICAgICAgICAgIGlmIChzdGF0ZSA9PSBXTF9LRVlCT0FSRF9LRVlfU1RBVEVfUFJFU1NFRCkg ewotLSAgICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgfD0gYWN0aXZlX2tleS0+bW9k NV9tYXNrOwotLSAgICAgICAgICAgICAgICBpZiAoc3ltICE9IHN5c3RlbV9zeW0pCi0tICAgICAg ICAgICAgICAgICAgICBwcml2LT5pc192aXJ0dWFsX2xhdGNoX3N0YXRlID0gVFJVRTsKLS0gICAg ICAgICAgICAgICAgZmlsdGVyZWQgPSBUUlVFOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICBicmVhazsKLS0gICAgICAgIC8qIExldmVsNV9MYXRjaCBpcyBjYXVzZWQgYnkgU2hpZnQrQWx0 IGtleSBpbiBkZShUMykga2V5bWFwLgotLSAgICAgICAgICovCi0tICAgICAgICBjYXNlIElCVVNf S0VZX0lTT19MZXZlbDVfTGF0Y2g6Ci0tICAgICAgICBjYXNlIElCVVNfS0VZX0lTT19MZXZlbDVf U2hpZnQ6Ci0tICAgICAgICAgICAgaWYgKHN0YXRlID09IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9Q UkVTU0VEKSB7Ci0tICAgICAgICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCB8PSBhY3RpdmVf a2V5LT5tb2QzX21hc2s7Ci0tICAgICAgICAgICAgICAgIGlmIChzeW0gIT0gc3lzdGVtX3N5bSkK LS0gICAgICAgICAgICAgICAgICAgIHByaXYtPmlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGUgPSBUUlVF OwotLSAgICAgICAgICAgICAgICBmaWx0ZXJlZCA9IFRSVUU7Ci0tICAgICAgICAgICAgfQotLSAg ICAgICAgICAgIGJyZWFrOwotLSAgICAgICAgY2FzZSBJQlVTX0tFWV9TaGlmdF9MOgotLSAgICAg ICAgY2FzZSBJQlVTX0tFWV9TaGlmdF9SOgotLSAgICAgICAgICAgIGlmIChzdGF0ZSA9PSBXTF9L RVlCT0FSRF9LRVlfU1RBVEVfUFJFU1NFRCkKLS0gICAgICAgICAgICAgICAgbmV3X21vZHNfZGVw cmVzc2VkIHw9IGFjdGl2ZV9rZXktPnNoaWZ0X21hc2s7Ci0tICAgICAgICAgICAgZWxzZQotLSAg ICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgJj0gfmFjdGl2ZV9rZXktPnNoaWZ0X21h c2s7Ci0tICAgICAgICAgICAgYnJlYWs7Ci0tICAgICAgICBkZWZhdWx0OjsKLS0gICAgICAgIH0K LS0jaWZkZWYgSUJVU19MT0dfU0hPV19LRVlTWU0KLS0gICAgICAgIGlmIChwcml2LT52ZXJib3Nl KSB7Ci0tICAgICAgICAgICAgZnByaW50ZiAocHJpdi0+bG9nLCAiJXMga2V5OiV1IHN5bToleCBz eXN0ZW1fc3ltOiV4IG1vZGlmaWVyczoleCAiCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAic3RhdGU6JXMgZmlsdGVyZWQ6JWRcbiIsCi0tICAgICAgICAgICAgICAgICAgICAgR19T VFJGVU5DLAotLSAgICAgICAgICAgICAgICAgICAgIGtleSwgc3ltLCBzeXN0ZW1fc3ltLCBtb2Rp ZmllcnMsCi0tICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPyAicHJlc3MiIDogInJlbGVhc2Ui LAotLSAgICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkKTsKLS0gICAgICAgICAgICBmZmx1c2gg KHByaXYtPmxvZyk7Ci0tICAgICAgICB9Ci0tI2VuZGlmCi0tICAgIH0KLS0gICAgaWYgKHN0YXRl ICE9IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9SRUxFQVNFRCkgewotLSAgICAgICAgY2ggPSBpYnVz X2tleXZhbF90b191bmljb2RlIChzeW0pOwotLSAgICAgICAgaWYgKGNoID09IDAgfHwgZ191bmlj aGFyX2lzY250cmwgKGNoKSkKLS0gICAgICAgICAgICBjaCA9IHhrYl9zdGF0ZV9rZXlfZ2V0X3V0 ZjMyIChhY3RpdmVfa2V5LT5zdGF0ZSwgY29kZSk7Ci0tLyogTm8gdGV4dCB3aXRoIENvbnRyb2wg JiBBbHQgJiBTdXBlciBrZXlzICovCi0tI2lmbmRlZiBHREtfV0lORE9XSU5HX1FVQVJUWgotLSMg IGRlZmluZSBfSUJVU19OT19URVhUX0lOUFVUX01PRF9NQVNLIChcCi0tICAgIElCVVNfQ09OVFJP TF9NQVNLIHwgSUJVU19NT0QxX01BU0sgfCBJQlVTX01PRDRfTUFTSykKLS0jZWxzZQotLSMgIGRl ZmluZSBfSUJVU19OT19URVhUX0lOUFVUX01PRF9NQVNLIChcCi0tICAgIElCVVNfQ09OVFJPTF9N QVNLIHwgSUJVU19NT0QyX01BU0sgfCBJQlVTX01PRDRfTUFTSykKLS0jZW5kaWYKLS0gICAgICAg IGlmICgoIWZpbHRlcmVkICYmICEobW9kaWZpZXJzICYgX0lCVVNfTk9fVEVYVF9JTlBVVF9NT0Rf TUFTSykgJiYKLS0gICAgICAgICAgICAgIWdfdW5pY2hhcl9pc2NudHJsIChjaCkpIHx8IGZpbHRl cmVkKSB7Ci0tICAgICAgICAvKiBJbiBjYXNlIGB1c2Vfc3lzX2tleW1hcGAgaXMgJVRSVUUsIElC dXMgZG9lcyBub3QgY29tbWl0IEFTQ0lJIGNoYXJzCi0tICAgICAgICAgKiBidXQgZm9yd2FyZHMg dGhlIGtleSBldmVudHMgdG8gdGhlIGZvY3VzZWQgYXBwbGljYXRpb24gaGVyZS4KLS0gICAgICAg ICAqIEJlY2F1c2Ugc29tZSBhcHBsaWNhdGlvbnMgdHJlYXQgdGhlIHByaW50YWJsZSBrZXlzIGFz IGNvbnRyb2wga2V5cywKLS0gICAgICAgICAqIEUuZy4gZ2FtZSBhcHBzICJoamtsIiB1c2UgdGhl IGN1cnNvciBtb3ZlIGxpa2UgVkkgbW9kZS4KLS0gICAgICAgICAqIFVuZm9ydHVuYXRlbHkgdGhl IFdheWxhbmQgaW5wdXQtbWV0aG9kIHByb3RvY29sIGRvZXMgbm90IHByb3ZpZGUKLS0gICAgICAg ICAqIHRoZSBmYWxsYmFjayBsb2dpYyBhZnRlciBhcHBzIGhhbmRsZSB0aGUga2V5IGV2ZW50cyBs aWtlIEdUSzMvMgotLSAgICAgICAgICogSU0gbW9kdWxlcy4gQnV0IHRoZSBpbnB1dC1tZXRob2Qg YWx3YXlzIHNob3VsZCBoYW5kbGUga2V5IGV2ZW50cwotLSAgICAgICAgICogcHJpb3IgdG8gYXBw cy4KLS0gICAgICAgICAqLwotLSAgICAgICAgICAgIGlmICghZmlsdGVyZWQgJiYgIXByaXYtPnVz ZV9zeXNfa2V5bWFwKSB7Ci0tICAgICAgICAgICAgICAgIGdjaGFyIGJ1ZmZbOF0gPSB7IDAsIH07 Ci0tICAgICAgICAgICAgICAgIGdfdW5pY2hhcl90b191dGY4IChjaCwgYnVmZik7Ci0tICAgICAg ICAgICAgICAgIGlidXNfd2F5bGFuZF9pbV9jb21taXRfdGV4dCAod2xpbSwgYnVmZik7Ci0tICAg ICAgICAgICAgICAgIGZpbHRlcmVkID0gVFJVRTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgLyogSWYgYGZpbHRlcmVkYCBpcyAlVFJVRSwgdGhlIGtleXN5bSBjYW4gYmUgZWF0ZW4gZm9y IHRoZSBjb21wb3NlCi0tICAgICAgICAgICAgICogcHJlZWRpdCBieSBJQnVzIFhLQiBlbmdpbmUu IEUuZy4gQWx0R3ItU2hpZnQtViBrZXkgcHJvZHVjZXMKLS0gICAgICAgICAgICAgKiBgTGV2ZWwz X1NoaWZ0JyBhbmQgYEdyZWVrX09NRUdBYCBrZXlzeW0gd2l0aCAidXMoc3ltYm9saWMpIgotLSAg ICAgICAgICAgICAqIGtleW1hcC4gSG93ZXZlciBpZiB5b3UgY29uZmlndXJlIG11bHRpcGxlIGtl eW1hcHMsIEFsdEdyLVNoaWZ0Ci0tICAgICAgICAgICAgICogbWF5IHByb2R1Y2UgdGhlIGtleW1h cCBzd2l0Y2ggYWx0aG91Z2ggQWx0R3ItU2hpZnQtViBwcm9kdWNlcwotLSAgICAgICAgICAgICAq IGBHcmVla19PTUVHQWAuCi0tICAgICAgICAgICAgICogSSdtIG5vdCBjbGFyaWZpZWQgd2l0aCAi bGV2ZWwzKHJhbHRfc3dpdGNoKSIgaW4gdXMgWEtCIGtleW1hcHMuCi0tICAgICAgICAgICAgICov Ci0tICAgICAgICAgICAgaWYgKG1vZGlmaWVycyAmIElCVVNfTU9EM19NQVNLKSB7Ci0tICAgICAg ICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCAmPSB+YWN0aXZlX2tleS0+bW9kM19tYXNrOwot LSAgICAgICAgICAgICAgICBjbGVhcl92aXJ0dWFsX3N0YXRlID0gVFJVRTsKLS0gICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgaWYgKG1vZGlmaWVycyAmIElCVVNfTU9ENV9NQVNLKSB7Ci0tICAg ICAgICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCAmPSB+YWN0aXZlX2tleS0+bW9kNV9tYXNr OwotLSAgICAgICAgICAgICAgICBjbGVhcl92aXJ0dWFsX3N0YXRlID0gVFJVRTsKLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tI3VuZGVmIF9JQlVTX05PX1RFWFRfSU5QVVRfTU9EX01BU0sK LS0gICAgfQotLSAgICBpZiAocHJpdi0+aXNfdmlydHVhbF9sYXRjaF9zdGF0ZSkgewotLSAgICAg ICAgaWYgKG5ld19tb2RzX2RlcHJlc3NlZCAhPSBtb2RzX2RlcHJlc3NlZCkgewotLSAgICAgICAg ICAgIGlucHV0X21ldGhvZF9rZXlib2FyZF9tb2RpZmllcnMgKHdsaW0sIE5VTEwsIDAsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X21vZHNfZGVwcmVz c2VkLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kc19sb2NrZWQs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXApOwot LSAgICAgICAgfQotLSAgICAgICAgaWYgKGNsZWFyX3ZpcnR1YWxfc3RhdGUpCi0tICAgICAgICAg ICAgcHJpdi0+aXNfdmlydHVhbF9sYXRjaF9zdGF0ZSA9IEZBTFNFOwotLSAgICB9Ci0tICAgIGlm ICghcHJpdi0+aXNfdmlydHVhbF9sYXRjaF9zdGF0ZSB8fAotLSAgICAgICAgKHN0YXRlICE9IFdM X0tFWUJPQVJEX0tFWV9TVEFURV9SRUxFQVNFRCkpIHsKLS0gICAgICAgIHhrYl9zdGF0ZV91cGRh dGVfa2V5IChhY3RpdmVfa2V5LT5zdGF0ZSwgY29kZSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoc3RhdGUgPT0gV0xfS0VZQk9BUkRfS0VZX1NUQVRFX1JFTEVBU0VEKQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgID8gWEtCX0tFWV9VUCA6IFhLQl9LRVlfRE9XTik7Ci0t ICAgIH0KLSsgICAgZmlsdGVyZWQgPSBpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxfZGVw cmVzc2VkICh3bGltLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGtleSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllcnMsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2 ZV9rZXksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZmlsdGVyZWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJm5ld19tb2RzX2RlcHJlc3NlZCk7Ci0rICAgIGZpbHRlcmVk ID0gaWJ1c193YXlsYW5kX2ltX2NvbW1pdF9rZXlfZXZlbnQgKHdsaW0sCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJzLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVfa2V5LAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZCwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ld19t b2RzX2RlcHJlc3NlZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmNsZWFyX3ZpcnR1YWxfc3RhdGUpOwotKyAgICBpYnVzX3dheWxhbmRfaW1fdXBk YXRlX3ZpcnR1YWxfeGtiX3N0YXRlICh3bGltLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBrZXksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0YXRlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhY3RpdmVfa2V5LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtb2RzX2RlcHJlc3NlZCwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbmV3X21vZHNfZGVwcmVzc2VkLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhcl92aXJ0dWFsX3N0YXRlKTsK LSAgICAgcmV0dXJuIGZpbHRlcmVkOwotIH0KLSAKLS0tIAotMi41NC4wCi0KLUZyb20gMDU2YjNl NTljYzkxYmRkOTdlZmM4YjI4ODYwYmYyMWUzNjQxNmFmZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IFdl ZCwgMTcgSnVuIDIwMjYgMTk6NTE6MDggKzA5MDAKLVN1YmplY3Q6IFtQQVRDSCAzLzVdIGNsaWVu dC93YXlsYW5kOiBSZWZhY3RvciBJU09fTGV2ZWxbM3w1XV9TaGlmdCBzdGF0ZQotCi1UaGUgc3Rh dGVzIG9mIElTTyBTaGlmdCBrZXlzIHNob3VsZCBiZSBjbGVhcmVkIHdoZW4gdGhlIGtleSBpcyBy ZWxlYXNlZAotYWdhaW5zdCBJU08gTGF0Y2gga2V5cy4gRS5nLiAiUkFMVCIga2V5IGluICJsdih0 aWxkZSkiIGtleW1hcC4KLQotVGhlIHN0YXRlIG9mIHRoZSAiUkFMVCIga2V5IGlzIHN0cmFuZ2Ug aW4gImRlKFQzKSIga2V5bWFwLCBpLmUuCi0iSVNPX0xldmVsM19TaGlmdCIga2V5c3ltIGZvciB0 aGUga2V5cHJlc3MgYW5kIElTT19MZXZlbDVfTGF0Y2gga2V5c20KLWZvciBrZXlyZWxlYXNlIGFu ZCBJQnVzIGNvdWxkIG5vdCBnZXQgdGhlIGNvcnJlY3QgZGVhZCBrZXlzIGFuZAotY2xlYXIgdGhl IHN0YXRlLiBOb3cgdGhlICJpc19wcmVzc2VkX21vZDUiIGZsYWcgY2hlY2tzIGlmIHRoZQota2V5 IGlzIHByZXNzZWQgYW5kIGFkZCBhIHdvcmthcm91bmQuCi0KLUZpeGVzOiAjMjg2OQotQ2xvc2Vz OiByaGJ6IzI0NDQwMDkKLS0tLQotIGNsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYyB8IDEz OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KLSAxIGZpbGUgY2hhbmdlZCwgMTI3 IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY2xpZW50L3dh eWxhbmQvaWJ1c3dheWxhbmRpbS5jIGIvY2xpZW50L3dheWxhbmQvaWJ1c3dheWxhbmRpbS5jCi1p bmRleCBiMTZmZjUyMS4uOTdlM2NlMzggMTAwNjQ0Ci0tLS0gYS9jbGllbnQvd2F5bGFuZC9pYnVz d2F5bGFuZGltLmMKLSsrKyBiL2NsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYwotQEAgLTY0 LDYgKzY0LDEzIEBAIHR5cGVkZWYgZW51bQotICAgICBJTlBVVF9NRVRIT0RfVjIsCi0gfSBJTVBy b3RvY29sVmVyc2lvbjsKLSAKLSt0eXBlZGVmIGVudW0gewotKyAgICBJQlVTX0tFWV9JU09fTEVW RUxfSU5WQUxJRCwKLSsgICAgSUJVU19LRVlfSVNPX0xFVkVMXzIsCi0rICAgIElCVVNfS0VZX0lT T19MRVZFTF8zLAotKyAgICBJQlVTX0tFWV9JU09fTEVWRUxfNQotK30gSUJ1c0tleUlzb0xldmVs VmFsdWU7Ci0rCi0gc3RydWN0IHp3cF9pbnB1dF9tZXRob2RfY29udGV4dF91bmlvbiB7Ci0gICAg IHVuaW9uIHsKLSAgICAgICAgIHN0cnVjdCB6d3BfaW5wdXRfbWV0aG9kX2NvbnRleHRfdjEgKmNv bnRleHRfdjE7Ci1AQCAtMTYzLDYgKzE3MCw4IEBAIHN0cnVjdCBfSUJ1c1dheWxhbmRJTVByaXZh dGUKLSAKLSAgICAgSUJ1c1hrYktleW1hcCBrZXlfdXNlcjsKLSAgICAgSUJ1c1hrYktleW1hcCBr ZXlfc3lzOwotKyAgICBnYm9vbGVhbiBpc19wcmVzc2VkX21vZDM7Ci0rICAgIGdib29sZWFuIGlz X3ByZXNzZWRfbW9kNTsKLSAKLSAgICAgdWludDMyX3QgaW1fc2VyaWFsOwotICAgICBpbnQzMl90 IHJlcGVhdF9yYXRlOwotQEAgLTM0MSw2ICszNTAsMjggQEAgaWJ1c193YXlsYW5kX3NvdXJjZV9u ZXcgKHN0cnVjdCB3bF9kaXNwbGF5ICpkaXNwbGF5KQotIH0KLSAKLSAKLStzdGF0aWMgdm9pZAot K2lidXNfd2F5bGFuZF9pbV9yZXNldF9tb2RpZmllcnMgKElCdXNXYXlsYW5kSU0gKndsaW0pCi0r ewotKyAgICBJQnVzV2F5bGFuZElNUHJpdmF0ZSAqcHJpdjsKLSsgICAgeGtiX2xheW91dF9pbmRl eF90ICBncm91cCA9IDA7Ci0rCi0rICAgIGdfYXNzZXJ0IChJQlVTX0lTX1dBWUxBTkRfSU0gKHds aW0pKTsKLSsKLSsgICAgcHJpdiA9IGlidXNfd2F5bGFuZF9pbV9nZXRfaW5zdGFuY2VfcHJpdmF0 ZSAod2xpbSk7Ci0rICAgIHByaXYtPmlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGUgPSBGQUxTRTsKLSsg ICAgcHJpdi0+aXNfcHJlc3NlZF9tb2QzID0gRkFMU0U7Ci0rICAgIHByaXYtPmlzX3ByZXNzZWRf bW9kNSA9IEZBTFNFOwotKyAgICBpZiAocHJpdi0+a2V5X3VzZXIuc3RhdGUgJiYgcHJpdi0+a2V5 X3N5cy5zdGF0ZSkgewotKyAgICAgICAgZ3JvdXAgPSB4a2Jfc3RhdGVfc2VyaWFsaXplX2xheW91 dCAocHJpdi0+a2V5X3N5cy5zdGF0ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFhLQl9TVEFURV9MQVlPVVRfTE9DS0VEKTsKLSsgICAgICAgIGlucHV0X21l dGhvZF9rZXlib2FyZF9tb2RpZmllcnMgKHdsaW0sIE5VTEwsIDAsIDAsIDAsIDAsIGdyb3VwKTsK LSsgICAgfSBlbHNlIHsKLSsgICAgICAgIHByaXYtPm1vZGlmaWVycyA9IDA7Ci0rICAgIH0KLSt9 Ci0rCi0rCi0gc3RhdGljIHZvaWQKLSBpYnVzX3dheWxhbmRfaW1fY29tbWl0X3RleHQgKElCdXNX YXlsYW5kSU0gKndsaW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy ICAgICpzdHIpCi1AQCAtNTI2LDcgKzU1Nyw4IEBAIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmly dHVhbF9kZXByZXNzZWQgKElCdXNXYXlsYW5kSU0gICp3bGltLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHhrYl9rZXlzeW1fdCAgICBzeW0sCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJ1c1hrYktleW1hcCAgKmFjdGl2ZV9r ZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4g ICAgICAgIGZpbHRlcmVkLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHhrYl9tb2RfbWFza190ICptb2RzX2RlcHJlc3NlZCkKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB4a2JfbW9kX21hc2tfdCAqbW9kc19kZXByZXNzZWQsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAg KmNsZWFyX3ZpcnR1YWxfc3RhdGUpCi0gewotICAgICBJQnVzV2F5bGFuZElNUHJpdmF0ZSAqcHJp djsKLSAgICAgdWludDMyX3QgY29kZSA9IGtleSArIDg7Ci1AQCAtNTM5LDYgKzU3MSw3IEBAIGli dXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF9kZXByZXNzZWQgKElCdXNXYXlsYW5kSU0gICp3 bGltLAotICAgICBnX2Fzc2VydCAoSUJVU19JU19XQVlMQU5EX0lNICh3bGltKSk7Ci0gICAgIGdf YXNzZXJ0IChhY3RpdmVfa2V5KTsKLSAgICAgZ19hc3NlcnQgKG1vZHNfZGVwcmVzc2VkKTsKLSsg ICAgZ19hc3NlcnQgKGNsZWFyX3ZpcnR1YWxfc3RhdGUpOwotIAotICAgICBwcml2ID0gaWJ1c193 YXlsYW5kX2ltX2dldF9pbnN0YW5jZV9wcml2YXRlICh3bGltKTsKLSAgICAgbmV3X21vZHNfZGVw cmVzc2VkID0gKm1vZHNfZGVwcmVzc2VkOwotQEAgLTU1NSwyNSArNTg4LDg3IEBAIGlidXNfd2F5 bGFuZF9pbV91cGRhdGVfdmlydHVhbF9kZXByZXNzZWQgKElCdXNXYXlsYW5kSU0gICp3bGltLAot ICAgICAgICAgYnJlYWs7Ci0gICAgIC8qIExldmVsM19sYXRjaCBpcyBjYXVzZWQgYnkgVExERSBr ZXkgaW4gbHYodGlsZGUpIGtleW1hcC4KLSAgICAgICogTGV2ZWwzX1NoaWZ0IGlzIGNhdXNlZCBi eSBBbHQga2V5IGluIGx2KHRpbGRlKSBrZXltYXAuCi0rICAgICAqIExldmVsNV9MYXRjaCBpcyBj YXVzZWQgYnkgU2hpZnQrQWx0IGtleSBpbiBkZShUMykga2V5bWFwLgotICAgICAgKi8KLSAgICAg Y2FzZSBJQlVTX0tFWV9JU09fTGV2ZWwzX0xhdGNoOgotICAgICBjYXNlIElCVVNfS0VZX0lTT19M ZXZlbDNfU2hpZnQ6Ci0tICAgICAgICBpZiAoc3RhdGUgPT0gV0xfS0VZQk9BUkRfS0VZX1NUQVRF X1BSRVNTRUQpIHsKLS0gICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgfD0gYWN0aXZlX2tl eS0+bW9kNV9tYXNrOwotLSAgICAgICAgICAgIGlmIChzeW0gIT0gc3lzdGVtX3N5bSkKLS0gICAg ICAgICAgICAgICAgcHJpdi0+aXNfdmlydHVhbF9sYXRjaF9zdGF0ZSA9IFRSVUU7Ci0tICAgICAg ICAgICAgZmlsdGVyZWQgPSBUUlVFOwotLSAgICAgICAgfQotLSAgICAgICAgYnJlYWs7Ci0tICAg IC8qIExldmVsNV9MYXRjaCBpcyBjYXVzZWQgYnkgU2hpZnQrQWx0IGtleSBpbiBkZShUMykga2V5 bWFwLgotLSAgICAgKi8KLSAgICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2ZWw1X0xhdGNoOgotICAg ICBjYXNlIElCVVNfS0VZX0lTT19MZXZlbDVfU2hpZnQ6Ci0gICAgICAgICBpZiAoc3RhdGUgPT0g V0xfS0VZQk9BUkRfS0VZX1NUQVRFX1BSRVNTRUQpIHsKLS0gICAgICAgICAgICBuZXdfbW9kc19k ZXByZXNzZWQgfD0gYWN0aXZlX2tleS0+bW9kM19tYXNrOwotKyAgICAgICAgICAgIHN3aXRjaCAo c3ltKSB7Ci0rICAgICAgICAgICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2ZWwzX0xhdGNoOgotKyAg ICAgICAgICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVsM19TaGlmdDoKLSsgICAgICAgICAgICAg ICAgcHJpdi0+aXNfcHJlc3NlZF9tb2Q1ID0gVFJVRTsKLSsgICAgICAgICAgICAgICAgbmV3X21v ZHNfZGVwcmVzc2VkIHw9IGFjdGl2ZV9rZXktPm1vZDVfbWFzazsKLSsgICAgICAgICAgICAgICAg YnJlYWs7Ci0rICAgICAgICAgICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2ZWw1X0xhdGNoOgotKyAg ICAgICAgICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVsNV9TaGlmdDoKLSsgICAgICAgICAgICAg ICAgcHJpdi0+aXNfcHJlc3NlZF9tb2QzID0gVFJVRTsKLSsgICAgICAgICAgICAgICAgbmV3X21v ZHNfZGVwcmVzc2VkIHw9IGFjdGl2ZV9rZXktPm1vZDNfbWFzazsKLSsgICAgICAgICAgICAgICAg YnJlYWs7Ci0rICAgICAgICAgICAgZGVmYXVsdDoKLSsgICAgICAgICAgICAgICAgZ19hc3NlcnRf bm90X3JlYWNoZWQgKCk7Ci0rICAgICAgICAgICAgfQotICAgICAgICAgICAgIGlmIChzeW0gIT0g c3lzdGVtX3N5bSkKLSAgICAgICAgICAgICAgICAgcHJpdi0+aXNfdmlydHVhbF9sYXRjaF9zdGF0 ZSA9IFRSVUU7Ci0gICAgICAgICAgICAgZmlsdGVyZWQgPSBUUlVFOwotKyAgICAgICAgfSBlbHNl IHsKLSsgICAgICAgICAgICBJQnVzS2V5SXNvTGV2ZWxWYWx1ZSBjdXJyZW50X2xldmVsID0gSUJV U19LRVlfSVNPX0xFVkVMX0lOVkFMSUQ7Ci0rICAgICAgICAgICAgZ2Jvb2xlYW4gKmlzX3ByZXNz ZWRfY3VycmVudF9tb2QgPSBOVUxMOwotKyAgICAgICAgICAgIGdib29sZWFuICppc19wcmVzc2Vk X3JldmVyc2VfbW9kID0gTlVMTDsKLSsgICAgICAgICAgICB4a2JfbW9kX21hc2tfdCBjdXJyZW50 X21vZGVfbWFzayA9IDA7Ci0rICAgICAgICAgICAgeGtiX21vZF9tYXNrX3QgcmV2ZXJzZV9tb2Rl X21hc2sgPSAwOwotKyAgICAgICAgICAgIHN3aXRjaCAoc3ltKSB7Ci0rICAgICAgICAgICAgY2Fz ZSBJQlVTX0tFWV9JU09fTGV2ZWwzX0xhdGNoOgotKyAgICAgICAgICAgIGNhc2UgSUJVU19LRVlf SVNPX0xldmVsM19TaGlmdDoKLSsgICAgICAgICAgICAgICAgY3VycmVudF9sZXZlbCA9IElCVVNf S0VZX0lTT19MRVZFTF8zOwotKyAgICAgICAgICAgICAgICBpc19wcmVzc2VkX2N1cnJlbnRfbW9k ID0gJnByaXYtPmlzX3ByZXNzZWRfbW9kNTsKLSsgICAgICAgICAgICAgICAgaXNfcHJlc3NlZF9y ZXZlcnNlX21vZCA9ICZwcml2LT5pc19wcmVzc2VkX21vZDM7Ci0rICAgICAgICAgICAgICAgIGN1 cnJlbnRfbW9kZV9tYXNrID0gYWN0aXZlX2tleS0+bW9kNV9tYXNrOwotKyAgICAgICAgICAgICAg ICByZXZlcnNlX21vZGVfbWFzayA9IGFjdGl2ZV9rZXktPm1vZDNfbWFzazsKLSsgICAgICAgICAg ICAgICAgYnJlYWs7Ci0rICAgICAgICAgICAgY2FzZSBJQlVTX0tFWV9JU09fTGV2ZWw1X0xhdGNo OgotKyAgICAgICAgICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVsNV9TaGlmdDoKLSsgICAgICAg ICAgICAgICAgY3VycmVudF9sZXZlbCA9IElCVVNfS0VZX0lTT19MRVZFTF81OwotKyAgICAgICAg ICAgICAgICBpc19wcmVzc2VkX2N1cnJlbnRfbW9kID0gJnByaXYtPmlzX3ByZXNzZWRfbW9kMzsK LSsgICAgICAgICAgICAgICAgaXNfcHJlc3NlZF9yZXZlcnNlX21vZCA9ICZwcml2LT5pc19wcmVz c2VkX21vZDU7Ci0rICAgICAgICAgICAgICAgIGN1cnJlbnRfbW9kZV9tYXNrID0gYWN0aXZlX2tl eS0+bW9kM19tYXNrOwotKyAgICAgICAgICAgICAgICByZXZlcnNlX21vZGVfbWFzayA9IGFjdGl2 ZV9rZXktPm1vZDVfbWFzazsKLSsgICAgICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICAgICAg ZGVmYXVsdDo7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgICAgIGdfYXNzZXJ0IChjdXJyZW50 X2xldmVsICE9IElCVVNfS0VZX0lTT19MRVZFTF9JTlZBTElEKTsKLSsgICAgICAgICAgICBnX2Fz c2VydCAoaXNfcHJlc3NlZF9jdXJyZW50X21vZCAmJiBpc19wcmVzc2VkX3JldmVyc2VfbW9kKTsK LSsgICAgICAgICAgICBpZiAoR19MSUtFTFkgKCppc19wcmVzc2VkX2N1cnJlbnRfbW9kKSkgewot KyAgICAgICAgICAgICAgICAqaXNfcHJlc3NlZF9jdXJyZW50X21vZCA9IEZBTFNFOwotKyAgICAg ICAgICAgIH0gZWxzZSBpZiAoKmlzX3ByZXNzZWRfcmV2ZXJzZV9tb2QgJiYKLSsgICAgICAgICAg ICAgICAgICAgICAgIChuZXdfbW9kc19kZXByZXNzZWQgJiBhY3RpdmVfa2V5LT5tb2QzX21hc2sp KSB7Ci0rICAgICAgICAgICAgICAgIC8qIFRoZSB1bmxpa2VseSBjYXNlICFwcml2LT5pc19wcmVz c2VkX21vZDMgYW5kCi0rICAgICAgICAgICAgICAgICAqIHByaXYtPmlzX3ByZXNzZWRfbW9kNSBt ZWFucyB0aGF0ICJkZShUMykiIGtleW1hcCBnaXZlcwotKyAgICAgICAgICAgICAgICAgKiB0aGUg cHJlc3NlZCAiTGV2ZWwzX1NoaWZ0IiBrZXlzeW0gYW5kCi0rICAgICAgICAgICAgICAgICAqIHRo ZSByZWxlYXNlZCAiTGV2ZWw1X0xhdGNoIiBrZXlzeW0gZm9yIHRoZSBrZXkgPFJBTFQ+LgotKyAg ICAgICAgICAgICAgICAgKiBNYXliZSBhIGJ1ZyBpbiAiZGUoVDMpIiBzbyBuZWVkIHRvIGNsZWFy IHRoZSBNT0Q1IHN0YXRlCi0rICAgICAgICAgICAgICAgICAqIGJ5IHRoZSBwcmVzc2VkICJMZXZl bDNfU2hpZnQiIGtleXN5bS4KLSsgICAgICAgICAgICAgICAgICovCi0rICAgICAgICAgICAgICAg ICppc19wcmVzc2VkX3JldmVyc2VfbW9kID0gRkFMU0U7Ci0rICAgICAgICAgICAgICAgIG5ld19t b2RzX2RlcHJlc3NlZCAmPSB+cmV2ZXJzZV9tb2RlX21hc2s7Ci0rICAgICAgICAgICAgICAgICpj bGVhcl92aXJ0dWFsX3N0YXRlID0gVFJVRTsKLSsgICAgICAgICAgICAgICAgZ19kZWJ1ZyAoIkdv dCBhIHdyb25nIHJlbGVhc2VkICVzIGtleSB3aXRob3V0IHRoZSAiCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICJwcmVzc2VkIG9uZS4gTWF5YmUgYSBidWcgaW4gWEtCLiIsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgIGN1cnJlbnRfbGV2ZWwgPT0gSUJVU19LRVlfSVNPX0xFVkVMXzMgPwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMZXZlbDMiIDogIkxldmVsNSIpOwot KyAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAvKiBUaGUgImx2KHRpbGRlKSIga2V5bWFwIGdp dmVzIHRoZSAiTGV2ZWwzX1NoaWZ0IiBrZXlzeW0KLSsgICAgICAgICAgICAgKiB3aXRoIHRoZSBr ZXkgPFJBTFQ+LgotKyAgICAgICAgICAgICAqLwotKyAgICAgICAgICAgIGlmICgoY3VycmVudF9s ZXZlbCA9PSBJQlVTX0tFWV9JU09fTEVWRUxfMyAmJgotKyAgICAgICAgICAgICAgICAgc3ltID09 IElCVVNfS0VZX0lTT19MZXZlbDNfU2hpZnQpIHx8Ci0rICAgICAgICAgICAgICAgIChjdXJyZW50 X2xldmVsID09IElCVVNfS0VZX0lTT19MRVZFTF81ICYmCi0rICAgICAgICAgICAgICAgICBzeW0g PT0gSUJVU19LRVlfSVNPX0xldmVsNV9TaGlmdCkpIHsKLSsgICAgICAgICAgICAgICAgbmV3X21v ZHNfZGVwcmVzc2VkICY9IH5jdXJyZW50X21vZGVfbWFzazsKLSsgICAgICAgICAgICAgICAgaWYg KHN5bSAhPSBzeXN0ZW1fc3ltKQotKyAgICAgICAgICAgICAgICAgICAgY2xlYXJfdmlydHVhbF9z dGF0ZSA9IFRSVUU7Ci0rICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAgYnJlYWs7 Ci0gICAgIGNhc2UgSUJVU19LRVlfU2hpZnRfTDoKLUBAIC02NDksNiArNzQ0LDIzIEBAIGlidXNf d2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF94a2Jfc3RhdGUgKElCdXNXYXlsYW5kSU0gKndsaW0s Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0YXRlID09IFdMX0tFWUJPQVJEX0tF WV9TVEFURV9SRUxFQVNFRCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFhLQl9L RVlfVVAgOiBYS0JfS0VZX0RPV04pOwotICAgICB9Ci0rICAgIGlmIChwcml2LT5pc192aXJ0dWFs X2xhdGNoX3N0YXRlICYmCi0rICAgICAgICAobmV3X21vZHNfZGVwcmVzc2VkICE9IG1vZHNfZGVw cmVzc2VkKSAmJgotKyAgICAgICAgKHN0YXRlICE9IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9SRUxF QVNFRCkpIHsKLSsgICAgICAgIHhrYl9tb2RfbWFza190IG5ldzJfbW9kc19kZXByZXNzZWQ7Ci0r ICAgICAgICBuZXcyX21vZHNfZGVwcmVzc2VkID0geGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzIChh Y3RpdmVfa2V5LT5zdGF0ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFhLQl9TVEFURV9ERVBSRVNTRUQgfAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX0xBVENI RUQpOwotKyAgICAgICAgLyogImRlKFQzKSIga2V5bWFwIGdpdmVzIHRoZSBwcmVzc2VkICJMZXZl bDNfU2hpZnQiIGtleXN5bSBhbmQKLSsgICAgICAgICAqIHNldHMgYm90aCBNT0QzKExldmVsNSkg YW5kIE1PRDUoTGV2ZWwzKSBzdGF0ZXMgYWZ0ZXIKLSsgICAgICAgICAqIHhrYl9zdGF0ZV91cGRh dGVfa2V5KCkgaXMgY2FsbGVkIHdpdGggdGhlIGtleXByZXNzLgotKyAgICAgICAgICogTWF5YmUg YSBidWcgaW4gImRlKFQzKSIgYW5kIHNldHMgTU9ENShMZXZlbDMpIGFnYWluIGhlcmUuCi0rICAg ICAgICAgKi8KLSsgICAgICAgIGlmIChHX1VOTElLRUxZIChuZXdfbW9kc19kZXByZXNzZWQgIT0g bmV3Ml9tb2RzX2RlcHJlc3NlZCkpIHsKLSsgICAgICAgICAgICB4a2Jfc3RhdGVfdXBkYXRlX21h c2sgKGFjdGl2ZV9rZXktPnN0YXRlLCBuZXdfbW9kc19kZXByZXNzZWQsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAwLCBtb2RzX2xvY2tlZCwgMCwgMCwgZ3JvdXApOwotKyAg ICAgICAgfQotKyAgICB9Ci0gfQotIAotIAotQEAgLTEzNTUsNiArMTQ2Nyw3IEBAIF9idXNfZ2xv YmFsX2VuZ2luZV9jaGFuZ2VkX2NiIChJQnVzQnVzICAgICAgICpidXMsCi0gICAgIGdfcmV0dXJu X2lmX2ZhaWwgKElCVVNfSVNfV0FZTEFORF9JTSAod2xpbSkpOwotICAgICBwcml2ID0gaWJ1c193 YXlsYW5kX2ltX2dldF9pbnN0YW5jZV9wcml2YXRlICh3bGltKTsKLSAgICAgZGVzYyA9IGlidXNf YnVzX2dldF9nbG9iYWxfZW5naW5lIChidXMpOwotKyAgICBpYnVzX3dheWxhbmRfaW1fcmVzZXRf bW9kaWZpZXJzICh3bGltKTsKLSAgICAgZ19hc3NlcnQgKGRlc2MpOwotICAgICBnX2Fzc2VydCAo IWdfc3RyY21wMCAoaWJ1c19lbmdpbmVfZGVzY19nZXRfbmFtZSAoZGVzYyksIGVuZ2luZV9uYW1l KSk7Ci0gICAgIC8qIEFsd2F5cyB1cGRhdGUgcHJpdi0+a2V5X3VzZXIgZXZlbiBpZiBwcml2LT51 c2Vfc3lzX2tleW1hcCBpcyAlRkFMU0UKLUBAIC0xNTQ0LDcgKzE2NTcsOCBAQCBpYnVzX3dheWxh bmRfaW1fcG9zdF9rZXkgKElCdXNXYXlsYW5kSU0gKndsaW0sCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZV9rZXks Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZmlsdGVyZWQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJm5ld19tb2RzX2RlcHJlc3NlZCk7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ld19tb2RzX2RlcHJlc3Nl ZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmY2xlYXJfdmlydHVhbF9zdGF0ZSk7Ci0gICAgIGZpbHRlcmVkID0gaWJ1c193YXlsYW5k X2ltX2NvbW1pdF9rZXlfZXZlbnQgKHdsaW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJzLAotQEAgLTI0MjcsNiArMjU0MSw3IEBAIF9j cmVhdGVfaW5wdXRfY29udGV4dF9kb25lIChHT2JqZWN0ICAgICAgKm9iamVjdCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUp OwotICAgICAgICAgfQotICAgICAgICAgaWJ1c19pbnB1dF9jb250ZXh0X2ZvY3VzX2luIChwcml2 LT5pYnVzY29udGV4dCk7Ci0rICAgICAgICBpYnVzX3dheWxhbmRfaW1fcmVzZXRfbW9kaWZpZXJz ICh3bGltKTsKLSAgICAgICAgIGdfc2lnbmFsX2VtaXQgKHdsaW0sCi0gICAgICAgICAgICAgICAg ICAgICAgICB3YXlsYW5kX2ltX3NpZ25hbHNbSUJVU19GT0NVU19JTl0sCi0gICAgICAgICAgICAg ICAgICAgICAgICAwLAotLS0gCi0yLjU0LjAKLQotRnJvbSAyMmNhMzdhNWQ0M2FjN2NmMDQ5Nzgw ZGE1ZTE0NTI1MDU0MDZjMDcyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdh cmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogVGh1LCAyNSBKdW4gMjAyNiAy MjoxNjo0MiArMDkwMAotU3ViamVjdDogW1BBVENIIDQvNV0gY2xpZW50L3dheWxhbmQ6IEZpeCBp bmZpbml0ZSBkZWFkX2RpYWVyZXNpcyB3aXRoIGZyKGVyZ29sKSBrZXltYXAKLQotVHlwaW5nIHRo ZSBrZXkgPEFEMDk+IHR3aWNlIGdpdmVzIGRpZmZlcmVudCBrZXlzeW1zIGJldHdlZW4gS2V5UHJl c3MKLWFuZCBLZXlSZWxlYXNlIGV2ZW50cyBhbmQgY2F1c2VzIHRoZSByZXZlcnNlIG9yZGVyIG9m IEtleVByZXNzIGFuZAotS2V5UmVsZWFzZSBvZiB0aGUgImRlYWRfZGlhZXJlc2lzIiBrZXlzeW0u Ci1Ob3cgaWJ1cy13YXlsYW5kIGNoZWNrcyB0aGUgc3BlY2lhbCBvcmRlciBub3QgdG8gY2F1c2Ug dGhlIGtleSByZXBlYXRpbmcuCi1BbHNvIGlidXMtd2F5bGFuZCByZWxlYXNlcyB0aGUgc3RhdGUg b2YgIklTT19MZXZlbDVfTGF0Y2giIHdpdGggdHlwaW5nCi10aGUga2V5IDxBRDA5PiB0d2ljZS4K LQotRml4ZXM6ICMyODY5Ci1DbG9zZXM6ICMyODk0Ci0tLS0KLSBjbGllbnQvd2F5bGFuZC9pYnVz d2F5bGFuZGltLmMgfCAyNDUgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCi0gMSBm aWxlIGNoYW5nZWQsIDE3MiBpbnNlcnRpb25zKCspLCA3MyBkZWxldGlvbnMoLSkKLQotZGlmZiAt LWdpdCBhL2NsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYyBiL2NsaWVudC93YXlsYW5kL2li dXN3YXlsYW5kaW0uYwotaW5kZXggOTdlM2NlMzguLmVmZWI2NzgzIDEwMDY0NAotLS0tIGEvY2xp ZW50L3dheWxhbmQvaWJ1c3dheWxhbmRpbS5jCi0rKysgYi9jbGllbnQvd2F5bGFuZC9pYnVzd2F5 bGFuZGltLmMKLUBAIC03MSw2ICs3MSwxMiBAQCB0eXBlZGVmIGVudW0gewotICAgICBJQlVTX0tF WV9JU09fTEVWRUxfNQotIH0gSUJ1c0tleUlzb0xldmVsVmFsdWU7Ci0gCi0rdHlwZWRlZiBlbnVt IHsKLSsgICAgSUJVU19LRVlfSVNPX0xFVkVMX1NUQVRFX1JFTEVBU0UsCi0rICAgIElCVVNfS0VZ X0lTT19MRVZFTF9TVEFURV9TSElGVCwKLSsgICAgSUJVU19LRVlfSVNPX0xFVkVMX1NUQVRFX0xB VENICi0rfSBJQnVzS2V5SXNvTGV2ZWxTdGF0ZTsKLSsKLSBzdHJ1Y3QgendwX2lucHV0X21ldGhv ZF9jb250ZXh0X3VuaW9uIHsKLSAgICAgdW5pb24gewotICAgICAgICAgc3RydWN0IHp3cF9pbnB1 dF9tZXRob2RfY29udGV4dF92MSAqY29udGV4dF92MTsKLUBAIC0xNzAsMTIgKzE3NiwxNCBAQCBz dHJ1Y3QgX0lCdXNXYXlsYW5kSU1Qcml2YXRlCi0gCi0gICAgIElCdXNYa2JLZXltYXAga2V5X3Vz ZXI7Ci0gICAgIElCdXNYa2JLZXltYXAga2V5X3N5czsKLS0gICAgZ2Jvb2xlYW4gaXNfcHJlc3Nl ZF9tb2QzOwotLSAgICBnYm9vbGVhbiBpc19wcmVzc2VkX21vZDU7Ci0rICAgIElCdXNLZXlJc29M ZXZlbFN0YXRlIGlzb19sZXZlbDNfc3RhdGU7Ci0rICAgIElCdXNLZXlJc29MZXZlbFN0YXRlIGlz b19sZXZlbDVfc3RhdGU7Ci0gCi0gICAgIHVpbnQzMl90IGltX3NlcmlhbDsKLSAgICAgaW50MzJf dCByZXBlYXRfcmF0ZTsKLSAgICAgaW50MzJfdCByZXBlYXRfZGVsYXk7Ci0rICAgIHhrYl9rZXlz eW1fdCBwcmVzc2VkX2RlYWRfa2V5OwotKyAgICB4a2Jfa2V5c3ltX3QgcmVsZWFzZWRfZGVhZF9r ZXlfd29fcHJlc3M7Ci0gCi0gICAgIEdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGU7Ci0gfTsKLUBA IC0zNjAsOCArMzY4LDEwIEBAIGlidXNfd2F5bGFuZF9pbV9yZXNldF9tb2RpZmllcnMgKElCdXNX YXlsYW5kSU0gKndsaW0pCi0gCi0gICAgIHByaXYgPSBpYnVzX3dheWxhbmRfaW1fZ2V0X2luc3Rh bmNlX3ByaXZhdGUgKHdsaW0pOwotICAgICBwcml2LT5pc192aXJ0dWFsX2xhdGNoX3N0YXRlID0g RkFMU0U7Ci0tICAgIHByaXYtPmlzX3ByZXNzZWRfbW9kMyA9IEZBTFNFOwotLSAgICBwcml2LT5p c19wcmVzc2VkX21vZDUgPSBGQUxTRTsKLSsgICAgcHJpdi0+aXNvX2xldmVsM19zdGF0ZSA9IElC VVNfS0VZX0lTT19MRVZFTF9TVEFURV9SRUxFQVNFOwotKyAgICBwcml2LT5pc29fbGV2ZWw1X3N0 YXRlID0gSUJVU19LRVlfSVNPX0xFVkVMX1NUQVRFX1JFTEVBU0U7Ci0rICAgIHByaXYtPnByZXNz ZWRfZGVhZF9rZXkgPSAwOwotKyAgICBwcml2LT5yZWxlYXNlZF9kZWFkX2tleV93b19wcmVzcyA9 IDA7Ci0gICAgIGlmIChwcml2LT5rZXlfdXNlci5zdGF0ZSAmJiBwcml2LT5rZXlfc3lzLnN0YXRl KSB7Ci0gICAgICAgICBncm91cCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbGF5b3V0IChwcml2LT5r ZXlfc3lzLnN0YXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgWEtCX1NUQVRFX0xBWU9VVF9MT0NLRUQpOwotQEAgLTQwNyw3ICs0MTcsOCBAQCBpYnVzX3dh eWxhbmRfaW1fY29tbWl0X2tleV9ldmVudCAoSUJ1c1dheWxhbmRJTSAgKndsaW0sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCdXNYa2JLZXltYXAgICphY3RpdmVfa2V5LAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgZmlsdGVy ZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhrYl9tb2RfbWFza190ICpu ZXdfbW9kc19kZXByZXNzZWQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdi b29sZWFuICAgICAgICpjbGVhcl92aXJ0dWFsX3N0YXRlKQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAqY2xlYXJfdmlydHVhbF9zdGF0ZSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgKmlzX2ludmFsaWRf a2V5KQotIHsKLSAgICAgSUJ1c1dheWxhbmRJTVByaXZhdGUgKnByaXY7Ci0gICAgIHVpbnQzMl90 IGNvZGUgPSBrZXkgKyA4OwotQEAgLTQxNiw5ICs0MjcsNiBAQCBpYnVzX3dheWxhbmRfaW1fY29t bWl0X2tleV9ldmVudCAoSUJ1c1dheWxhbmRJTSAgKndsaW0sCi0gICAgIGdfcmV0dXJuX3ZhbF9p Zl9mYWlsIChJQlVTX0lTX1dBWUxBTkRfSU0gKHdsaW0pLCBmaWx0ZXJlZCk7Ci0gICAgIHByaXYg PSBpYnVzX3dheWxhbmRfaW1fZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHdsaW0pOwotIAotLSAgICBp ZiAoc3RhdGUgPT0gV0xfS0VZQk9BUkRfS0VZX1NUQVRFX1JFTEVBU0VEKQotLSAgICAgICAgcmV0 dXJuIGZpbHRlcmVkOwotLQotICAgICBjaCA9IGlidXNfa2V5dmFsX3RvX3VuaWNvZGUgKHN5bSk7 Ci0gICAgIGlmIChjaCA9PSAwIHx8IGdfdW5pY2hhcl9pc2NudHJsIChjaCkpCi0gICAgICAgICBj aCA9IHhrYl9zdGF0ZV9rZXlfZ2V0X3V0ZjMyIChhY3RpdmVfa2V5LT5zdGF0ZSwgY29kZSk7Ci1A QCAtNDMxLDIzICs0MzksMjggQEAgaWJ1c193YXlsYW5kX2ltX2NvbW1pdF9rZXlfZXZlbnQgKElC dXNXYXlsYW5kSU0gICp3bGltLAotICMgIGRlZmluZSBfSUJVU19OT19URVhUX0lOUFVUX01PRF9N QVNLIChcCi0gICAgIElCVVNfQ09OVFJPTF9NQVNLIHwgSUJVU19NT0QyX01BU0sgfCBJQlVTX01P RDRfTUFTSykKLSAjZW5kaWYKLS0gICAgaWYgKCghZmlsdGVyZWQgJiYgIShtb2RpZmllcnMgJiBf SUJVU19OT19URVhUX0lOUFVUX01PRF9NQVNLKSAmJgotLSAgICAgICAgICFnX3VuaWNoYXJfaXNj bnRybCAoY2gpKSB8fCBmaWx0ZXJlZCkgewotLSAgICAgICAgLyogSW4gY2FzZSBgdXNlX3N5c19r ZXltYXBgIGlzICVUUlVFLCBJQnVzIGRvZXMgbm90IGNvbW1pdCBBU0NJSSBjaGFycwotLSAgICAg ICAgICogYnV0IGZvcndhcmRzIHRoZSBrZXkgZXZlbnRzIHRvIHRoZSBmb2N1c2VkIGFwcGxpY2F0 aW9uIGhlcmUuCi0tICAgICAgICAgKiBCZWNhdXNlIHNvbWUgYXBwbGljYXRpb25zIHRyZWF0IHRo ZSBwcmludGFibGUga2V5cyBhcyBjb250cm9sIGtleXMsCi0tICAgICAgICAgKiBFLmcuIGdhbWUg YXBwcyAiaGprbCIgdXNlIHRoZSBjdXJzb3IgbW92ZSBsaWtlIFZJIG1vZGUuCi0tICAgICAgICAg KiBVbmZvcnR1bmF0ZWx5IHRoZSBXYXlsYW5kIGlucHV0LW1ldGhvZCBwcm90b2NvbCBkb2VzIG5v dCBwcm92aWRlCi0tICAgICAgICAgKiB0aGUgZmFsbGJhY2sgbG9naWMgYWZ0ZXIgYXBwcyBoYW5k bGUgdGhlIGtleSBldmVudHMgbGlrZSBHVEszLzIKLS0gICAgICAgICAqIElNIG1vZHVsZXMuIEJ1 dCB0aGUgaW5wdXQtbWV0aG9kIGFsd2F5cyBzaG91bGQgaGFuZGxlIGtleSBldmVudHMKLS0gICAg ICAgICAqIHByaW9yIHRvIGFwcHMuCi0tICAgICAgICAgKi8KLS0gICAgICAgIGlmICghZmlsdGVy ZWQgJiYgIXByaXYtPnVzZV9zeXNfa2V5bWFwKSB7Ci0tICAgICAgICAgICAgZ2NoYXIgYnVmZls4 XSA9IHsgMCwgfTsKLS0gICAgICAgICAgICBnX3VuaWNoYXJfdG9fdXRmOCAoY2gsIGJ1ZmYpOwot LSAgICAgICAgICAgIGlidXNfd2F5bGFuZF9pbV9jb21taXRfdGV4dCAod2xpbSwgYnVmZik7Ci0t ICAgICAgICAgICAgZmlsdGVyZWQgPSBUUlVFOwotLSAgICAgICAgfQotKyAgICBpZiAoKHN0YXRl ID09IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9SRUxFQVNFRCkgfHwKLSsgICAgICAgIChtb2RpZmll cnMgJiBfSUJVU19OT19URVhUX0lOUFVUX01PRF9NQVNLKSkgewotKyAgICAgICAgcmV0dXJuIGZp bHRlcmVkOwotKyAgICB9Ci0rI3VuZGVmIF9JQlVTX05PX1RFWFRfSU5QVVRfTU9EX01BU0sKLSsK LSsgICAgLyogSW4gY2FzZSBgdXNlX3N5c19rZXltYXBgIGlzICVUUlVFLCBJQnVzIGRvZXMgbm90 IGNvbW1pdCBBU0NJSSBjaGFycwotKyAgICAgKiBidXQgZm9yd2FyZHMgdGhlIGtleSBldmVudHMg dG8gdGhlIGZvY3VzZWQgYXBwbGljYXRpb24gaGVyZS4KLSsgICAgICogQmVjYXVzZSBzb21lIGFw cGxpY2F0aW9ucyB0cmVhdCB0aGUgcHJpbnRhYmxlIGtleXMgYXMgY29udHJvbCBrZXlzLAotKyAg ICAgKiBFLmcuIGdhbWUgYXBwcyAiaGprbCIgdXNlIHRoZSBjdXJzb3IgbW92ZSBsaWtlIFZJIG1v ZGUuCi0rICAgICAqIFVuZm9ydHVuYXRlbHkgdGhlIFdheWxhbmQgaW5wdXQtbWV0aG9kIHByb3Rv Y29sIGRvZXMgbm90IHByb3ZpZGUKLSsgICAgICogdGhlIGZhbGxiYWNrIGxvZ2ljIGFmdGVyIGFw cHMgaGFuZGxlIHRoZSBrZXkgZXZlbnRzIGxpa2UgR1RLMy8yCi0rICAgICAqIElNIG1vZHVsZXMu IEJ1dCB0aGUgaW5wdXQtbWV0aG9kIGFsd2F5cyBzaG91bGQgaGFuZGxlIGtleSBldmVudHMKLSsg ICAgICogcHJpb3IgdG8gYXBwcy4KLSsgICAgICovCi0rICAgIGlmICghZmlsdGVyZWQgJiYgIWdf dW5pY2hhcl9pc2NudHJsIChjaCkgJiYgIXByaXYtPnVzZV9zeXNfa2V5bWFwKSB7Ci0rICAgICAg ICBnY2hhciBidWZmWzhdID0geyAwLCB9OwotKyAgICAgICAgZ191bmljaGFyX3RvX3V0ZjggKGNo LCBidWZmKTsKLSsgICAgICAgIGlidXNfd2F5bGFuZF9pbV9jb21taXRfdGV4dCAod2xpbSwgYnVm Zik7Ci0rICAgICAgICBmaWx0ZXJlZCA9IFRSVUU7Ci0rICAgIH0KLSsgICAgaWYgKCFnX3VuaWNo YXJfaXNjbnRybCAoY2gpIHx8IElTX0RFQURfS0VZIChzeW0pKSB7Ci0gICAgICAgICAvKiBJZiBg ZmlsdGVyZWRgIGlzICVUUlVFLCB0aGUga2V5c3ltIGNhbiBiZSBlYXRlbiBmb3IgdGhlIGNvbXBv c2UKLSAgICAgICAgICAqIHByZWVkaXQgYnkgSUJ1cyBYS0IgZW5naW5lLiBFLmcuIEFsdEdyLVNo aWZ0LVYga2V5IHByb2R1Y2VzCi0gICAgICAgICAgKiBgTGV2ZWwzX1NoaWZ0JyBhbmQgYEdyZWVr X09NRUdBYCBrZXlzeW0gd2l0aCAidXMoc3ltYm9saWMpIiBrZXltYXAuCi1AQCAtNDU2LDE5ICs0 NjksNDIgQEAgaWJ1c193YXlsYW5kX2ltX2NvbW1pdF9rZXlfZXZlbnQgKElCdXNXYXlsYW5kSU0g ICp3bGltLAotICAgICAgICAgICogSSdtIG5vdCBjbGFyaWZpZWQgd2l0aCAibGV2ZWwzKHJhbHRf c3dpdGNoKSIgaW4gdXMgWEtCIGtleW1hcHMuCi0gICAgICAgICAgKi8KLSAgICAgICAgIGlmICht b2RpZmllcnMgJiBJQlVTX01PRDNfTUFTSykgewotKyAgICAgICAgICAgIC8qIFdpdGggdGhlICJm cihlcmdvbCkiIGtleW1hcCwgVHlwaW5nIHRoZSBrZXkgPEFEMDk+IHR3aWNlCi0rICAgICAgICAg ICAgICogcHJvZHVjZXMgdGhlICJJU09fTGV2ZWw1X0xhdGNoIiBrZXlzeW0gZm9yIHRoZSBmaXJz dCBLZXlQcmVzcwotKyAgICAgICAgICAgICAqIGFuZCB0aGUgImRlYWRfZGlhZXJlc2lzIiBrZXlz eW0gZm9yIHRoZSBmaXJzdCBLZXlSZWxlZWFzZQotKyAgICAgICAgICAgICAqIGJlY2F1c2UgdGhl IHJlbGVhc2Uga2V5IGV2ZW50IGhhcyBNT0QzKGxldmVsNSkgc3RhdGUuCi0rICAgICAgICAgICAg ICogQW5kIHRoZSBzZWNvbmQgS2V5UHJlc3MgaGFzIHRoZSAiZGVhZF9kaWFlcmVzaXMiIGtleXN5 bSBhbmQKLSsgICAgICAgICAgICAgKiB0aGUgc2Vjb25kIEtleVJlbGVhc2UgaGFzIHRoZSAiSVNP X0xldmVsNV9MYXRjaCIga2V5c3ltLgotKyAgICAgICAgICAgICAqIFRoZSBsYXRjaCBzdGF0ZSBz aG91bGQgYmUgY2xlYXJlZCB3aXRoIHRoZSBkZWFkIGtleXMuCi0rICAgICAgICAgICAgICogSSBk b3duZ3JhZGUgdGhlIGxhdGNoIHN0YXRlIHRvIHRoZSBzaGlmdCBzdGF0ZSBoZXJlIGFuZAotKyAg ICAgICAgICAgICAqIHRoZSBzaGlmdCBzdGF0ZSB3aWxsIGJlIGNsZWFyZWQgYnkgdGhlIHJlbGVh c2VkCi0rICAgICAgICAgICAgICogIklTT19MZXZlbDVfTGF0Y2giIGtleXN5bSBidXQgbm90IHRo ZSBwcmVzc2VkIGRlYWQga2V5cwotKyAgICAgICAgICAgICAqIGJlY2F1c2UgeGtiX3N0YXRlX3Vw ZGF0ZV9rZXkoKSB3aWxsIHJldmVydCB0aGUgTU9EMyhsZXZlbDUpCi0rICAgICAgICAgICAgICog c3RhdGUgb2YgdGhlIGRlcHJlc3NlZCB4a2Jfc3RhdGVfc2VyaWFsaXplX21vZHMoKQotKyAgICAg ICAgICAgICAqIHdpdGggdGhlIGRlYWQga2V5cy4KLSsgICAgICAgICAgICAgKi8KLSsgICAgICAg ICAgICBpZiAocHJpdi0+aXNvX2xldmVsNV9zdGF0ZSA9PSBJQlVTX0tFWV9JU09fTEVWRUxfU1RB VEVfTEFUQ0gpIHsKLSsgICAgICAgICAgICAgICAgcHJpdi0+aXNvX2xldmVsNV9zdGF0ZSA9IElC VVNfS0VZX0lTT19MRVZFTF9TVEFURV9TSElGVDsKLSsgICAgICAgICAgICAgICAgaWYgKGlzX2lu dmFsaWRfa2V5KQotKyAgICAgICAgICAgICAgICAgICAgKmlzX2ludmFsaWRfa2V5ID0gVFJVRTsK LSsgICAgICAgICAgICB9IGVsc2UgaWYgKGNsZWFyX3ZpcnR1YWxfc3RhdGUpIHsKLSsgICAgICAg ICAgICAgICAgKmNsZWFyX3ZpcnR1YWxfc3RhdGUgPSBUUlVFOwotKyAgICAgICAgICAgIH0KLSAg ICAgICAgICAgICBpZiAobmV3X21vZHNfZGVwcmVzc2VkKQotICAgICAgICAgICAgICAgICAqbmV3 X21vZHNfZGVwcmVzc2VkICY9IH5hY3RpdmVfa2V5LT5tb2QzX21hc2s7Ci0tICAgICAgICAgICAg aWYgKGNsZWFyX3ZpcnR1YWxfc3RhdGUpCi0tICAgICAgICAgICAgICAgICpjbGVhcl92aXJ0dWFs X3N0YXRlID0gVFJVRTsKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIChtb2RpZmllcnMgJiBJQlVT X01PRDVfTUFTSykgewotKyAgICAgICAgICAgIGlmIChwcml2LT5pc29fbGV2ZWwzX3N0YXRlID09 IElCVVNfS0VZX0lTT19MRVZFTF9TVEFURV9MQVRDSCkgewotKyAgICAgICAgICAgICAgICBwcml2 LT5pc29fbGV2ZWwzX3N0YXRlID0gSUJVU19LRVlfSVNPX0xFVkVMX1NUQVRFX1NISUZUOwotKyAg ICAgICAgICAgICAgICBpZiAoaXNfaW52YWxpZF9rZXkpCi0rICAgICAgICAgICAgICAgICAgICAq aXNfaW52YWxpZF9rZXkgPSBUUlVFOwotKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY2xlYXJfdmly dHVhbF9zdGF0ZSkgewotKyAgICAgICAgICAgICAgICAqY2xlYXJfdmlydHVhbF9zdGF0ZSA9IFRS VUU7Ci0rICAgICAgICAgICAgfQotICAgICAgICAgICAgIGlmIChuZXdfbW9kc19kZXByZXNzZWQp Ci0gICAgICAgICAgICAgICAgICpuZXdfbW9kc19kZXByZXNzZWQgJj0gfmFjdGl2ZV9rZXktPm1v ZDVfbWFzazsKLS0gICAgICAgICAgICBpZiAoY2xlYXJfdmlydHVhbF9zdGF0ZSkKLS0gICAgICAg ICAgICAgICAgKmNsZWFyX3ZpcnR1YWxfc3RhdGUgPSBUUlVFOwotICAgICAgICAgfQotICAgICB9 Ci0tI3VuZGVmIF9JQlVTX05PX1RFWFRfSU5QVVRfTU9EX01BU0sKLSAgICAgcmV0dXJuIGZpbHRl cmVkOwotIH0KLSAKLUBAIC01NTgsNyArNTk0LDggQEAgaWJ1c193YXlsYW5kX2ltX3VwZGF0ZV92 aXJ0dWFsX2RlcHJlc3NlZCAoSUJ1c1dheWxhbmRJTSAgKndsaW0sCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJ1c1hrYktleW1hcCAgKmFjdGl2ZV9rZXksCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAg IGZpbHRlcmVkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhr Yl9tb2RfbWFza190ICptb2RzX2RlcHJlc3NlZCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAqY2xlYXJfdmlydHVhbF9zdGF0ZSkKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAq Y2xlYXJfdmlydHVhbF9zdGF0ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBnYm9vbGVhbiAgICAgICAqaXNfaW52YWxpZF9rZXkpCi0gewotICAgICBJQnVzV2F5 bGFuZElNUHJpdmF0ZSAqcHJpdjsKLSAgICAgdWludDMyX3QgY29kZSA9IGtleSArIDg7Ci1AQCAt NTcyLDYgKzYwOSw3IEBAIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF9kZXByZXNzZWQg KElCdXNXYXlsYW5kSU0gICp3bGltLAotICAgICBnX2Fzc2VydCAoYWN0aXZlX2tleSk7Ci0gICAg IGdfYXNzZXJ0IChtb2RzX2RlcHJlc3NlZCk7Ci0gICAgIGdfYXNzZXJ0IChjbGVhcl92aXJ0dWFs X3N0YXRlKTsKLSsgICAgZ19hc3NlcnQgKGlzX2ludmFsaWRfa2V5KTsKLSAKLSAgICAgcHJpdiA9 IGlidXNfd2F5bGFuZF9pbV9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAod2xpbSk7Ci0gICAgIG5ld19t b2RzX2RlcHJlc3NlZCA9ICptb2RzX2RlcHJlc3NlZDsKLUBAIC01OTcsMTMgKzYzNSwxOSBAQCBp YnVzX3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxfZGVwcmVzc2VkIChJQnVzV2F5bGFuZElNICAq d2xpbSwKLSAgICAgICAgIGlmIChzdGF0ZSA9PSBXTF9LRVlCT0FSRF9LRVlfU1RBVEVfUFJFU1NF RCkgewotICAgICAgICAgICAgIHN3aXRjaCAoc3ltKSB7Ci0gICAgICAgICAgICAgY2FzZSBJQlVT X0tFWV9JU09fTGV2ZWwzX0xhdGNoOgotKyAgICAgICAgICAgICAgICBwcml2LT5pc29fbGV2ZWwz X3N0YXRlID0gSUJVU19LRVlfSVNPX0xFVkVMX1NUQVRFX0xBVENIOwotKyAgICAgICAgICAgICAg ICBuZXdfbW9kc19kZXByZXNzZWQgfD0gYWN0aXZlX2tleS0+bW9kNV9tYXNrOwotKyAgICAgICAg ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICBjYXNlIElCVVNfS0VZX0lTT19MZXZlbDNfU2hp ZnQ6Ci0tICAgICAgICAgICAgICAgIHByaXYtPmlzX3ByZXNzZWRfbW9kNSA9IFRSVUU7Ci0rICAg ICAgICAgICAgICAgIHByaXYtPmlzb19sZXZlbDNfc3RhdGUgPSBJQlVTX0tFWV9JU09fTEVWRUxf U1RBVEVfU0hJRlQ7Ci0gICAgICAgICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCB8PSBhY3Rp dmVfa2V5LT5tb2Q1X21hc2s7Ci0gICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg IGNhc2UgSUJVU19LRVlfSVNPX0xldmVsNV9MYXRjaDoKLSsgICAgICAgICAgICAgICAgcHJpdi0+ aXNvX2xldmVsNV9zdGF0ZSA9IElCVVNfS0VZX0lTT19MRVZFTF9TVEFURV9MQVRDSDsKLSsgICAg ICAgICAgICAgICAgbmV3X21vZHNfZGVwcmVzc2VkIHw9IGFjdGl2ZV9rZXktPm1vZDNfbWFzazsK LSsgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgY2FzZSBJQlVTX0tFWV9JU09f TGV2ZWw1X1NoaWZ0OgotLSAgICAgICAgICAgICAgICBwcml2LT5pc19wcmVzc2VkX21vZDMgPSBU UlVFOwotKyAgICAgICAgICAgICAgICBwcml2LT5pc29fbGV2ZWw1X3N0YXRlID0gSUJVU19LRVlf SVNPX0xFVkVMX1NUQVRFX1NISUZUOwotICAgICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNz ZWQgfD0gYWN0aXZlX2tleS0+bW9kM19tYXNrOwotICAgICAgICAgICAgICAgICBicmVhazsKLSAg ICAgICAgICAgICBkZWZhdWx0OgotQEAgLTYxNCw2MSArNjU4LDcwIEBAIGlidXNfd2F5bGFuZF9p bV91cGRhdGVfdmlydHVhbF9kZXByZXNzZWQgKElCdXNXYXlsYW5kSU0gICp3bGltLAotICAgICAg ICAgICAgIGZpbHRlcmVkID0gVFJVRTsKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg SUJ1c0tleUlzb0xldmVsVmFsdWUgY3VycmVudF9sZXZlbCA9IElCVVNfS0VZX0lTT19MRVZFTF9J TlZBTElEOwotLSAgICAgICAgICAgIGdib29sZWFuICppc19wcmVzc2VkX2N1cnJlbnRfbW9kID0g TlVMTDsKLS0gICAgICAgICAgICBnYm9vbGVhbiAqaXNfcHJlc3NlZF9yZXZlcnNlX21vZCA9IE5V TEw7Ci0tICAgICAgICAgICAgeGtiX21vZF9tYXNrX3QgY3VycmVudF9tb2RlX21hc2sgPSAwOwot LSAgICAgICAgICAgIHhrYl9tb2RfbWFza190IHJldmVyc2VfbW9kZV9tYXNrID0gMDsKLSsgICAg ICAgICAgICBJQnVzS2V5SXNvTGV2ZWxTdGF0ZSAqY3VycmVudF9zdGF0ZSA9IE5VTEw7Ci0rICAg ICAgICAgICAgSUJ1c0tleUlzb0xldmVsU3RhdGUgKnJldmVyc2Vfc3RhdGUgPSBOVUxMOwotICAg ICAgICAgICAgIHN3aXRjaCAoc3ltKSB7Ci0gICAgICAgICAgICAgY2FzZSBJQlVTX0tFWV9JU09f TGV2ZWwzX0xhdGNoOgotICAgICAgICAgICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVsM19TaGlm dDoKLSAgICAgICAgICAgICAgICAgY3VycmVudF9sZXZlbCA9IElCVVNfS0VZX0lTT19MRVZFTF8z OwotLSAgICAgICAgICAgICAgICBpc19wcmVzc2VkX2N1cnJlbnRfbW9kID0gJnByaXYtPmlzX3By ZXNzZWRfbW9kNTsKLS0gICAgICAgICAgICAgICAgaXNfcHJlc3NlZF9yZXZlcnNlX21vZCA9ICZw cml2LT5pc19wcmVzc2VkX21vZDM7Ci0tICAgICAgICAgICAgICAgIGN1cnJlbnRfbW9kZV9tYXNr ID0gYWN0aXZlX2tleS0+bW9kNV9tYXNrOwotLSAgICAgICAgICAgICAgICByZXZlcnNlX21vZGVf bWFzayA9IGFjdGl2ZV9rZXktPm1vZDNfbWFzazsKLSsgICAgICAgICAgICAgICAgY3VycmVudF9z dGF0ZSA9ICZwcml2LT5pc29fbGV2ZWwzX3N0YXRlOwotKyAgICAgICAgICAgICAgICByZXZlcnNl X3N0YXRlID0gJnByaXYtPmlzb19sZXZlbDVfc3RhdGU7Ci0gICAgICAgICAgICAgICAgIGJyZWFr OwotICAgICAgICAgICAgIGNhc2UgSUJVU19LRVlfSVNPX0xldmVsNV9MYXRjaDoKLSAgICAgICAg ICAgICBjYXNlIElCVVNfS0VZX0lTT19MZXZlbDVfU2hpZnQ6Ci0gICAgICAgICAgICAgICAgIGN1 cnJlbnRfbGV2ZWwgPSBJQlVTX0tFWV9JU09fTEVWRUxfNTsKLS0gICAgICAgICAgICAgICAgaXNf cHJlc3NlZF9jdXJyZW50X21vZCA9ICZwcml2LT5pc19wcmVzc2VkX21vZDM7Ci0tICAgICAgICAg ICAgICAgIGlzX3ByZXNzZWRfcmV2ZXJzZV9tb2QgPSAmcHJpdi0+aXNfcHJlc3NlZF9tb2Q1Owot LSAgICAgICAgICAgICAgICBjdXJyZW50X21vZGVfbWFzayA9IGFjdGl2ZV9rZXktPm1vZDNfbWFz azsKLS0gICAgICAgICAgICAgICAgcmV2ZXJzZV9tb2RlX21hc2sgPSBhY3RpdmVfa2V5LT5tb2Q1 X21hc2s7Ci0rICAgICAgICAgICAgICAgIGN1cnJlbnRfc3RhdGUgPSAmcHJpdi0+aXNvX2xldmVs NV9zdGF0ZTsKLSsgICAgICAgICAgICAgICAgcmV2ZXJzZV9zdGF0ZSA9ICZwcml2LT5pc29fbGV2 ZWwzX3N0YXRlOwotICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICBkZWZhdWx0 OjsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgZ19hc3NlcnQgKGN1cnJlbnRfbGV2ZWwg IT0gSUJVU19LRVlfSVNPX0xFVkVMX0lOVkFMSUQpOwotLSAgICAgICAgICAgIGdfYXNzZXJ0IChp c19wcmVzc2VkX2N1cnJlbnRfbW9kICYmIGlzX3ByZXNzZWRfcmV2ZXJzZV9tb2QpOwotLSAgICAg ICAgICAgIGlmIChHX0xJS0VMWSAoKmlzX3ByZXNzZWRfY3VycmVudF9tb2QpKSB7Ci0tICAgICAg ICAgICAgICAgICppc19wcmVzc2VkX2N1cnJlbnRfbW9kID0gRkFMU0U7Ci0tICAgICAgICAgICAg fSBlbHNlIGlmICgqaXNfcHJlc3NlZF9yZXZlcnNlX21vZCAmJgotLSAgICAgICAgICAgICAgICAg ICAgICAgKG5ld19tb2RzX2RlcHJlc3NlZCAmIGFjdGl2ZV9rZXktPm1vZDNfbWFzaykpIHsKLSsg ICAgICAgICAgICBnX2Fzc2VydCAoY3VycmVudF9zdGF0ZSAmJiByZXZlcnNlX3N0YXRlKTsKLSsg ICAgICAgICAgICAvKiBUaGUgImx2KHRpbGRlKSIga2V5bWFwIGdpdmVzIHRoZSAiTGV2ZWwzX1No aWZ0IiBrZXlzeW0KLSsgICAgICAgICAgICAgKiB3aXRoIHRoZSBrZXkgPFJBTFQ+LgotKyAgICAg ICAgICAgICAqCi0rICAgICAgICAgICAgICogSGFuZGxlIHRoZSAiSVNPX0xldmVsNV9MYXRjaCIg a2V5c3ltIGluIHRoZSAiZnIoZXJnb2wpIiBrZXltYXAuCi0rICAgICAgICAgICAgICogRG8gbm90 IHVzZSBrZXlzeW0gYnV0IGBjdXJyZW50X3N0YXRlYCBiZWNhdXNlIHRoZSBsYXRjaCBzdGF0ZQot KyAgICAgICAgICAgICAqIGNhbiBiZSBjaGFuZ2VkIHRvIHRoZSBzaGlmdCBzdGF0ZSB3aXRoIHNv bWUga2V5IGNvbmRpdGlvbnMuCi0rICAgICAgICAgICAgICovCi0rICAgICAgICAgICAgaWYgKCpj dXJyZW50X3N0YXRlID09IElCVVNfS0VZX0lTT19MRVZFTF9TVEFURV9TSElGVCkgewotKyAgICAg ICAgICAgICAgICAqY3VycmVudF9zdGF0ZSA9IElCVVNfS0VZX0lTT19MRVZFTF9TVEFURV9SRUxF QVNFOwotKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudF9sZXZlbCA9PSBJQlVTX0tFWV9JU09f TEVWRUxfMykKLSsgICAgICAgICAgICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCAmPSB+YWN0 aXZlX2tleS0+bW9kNV9tYXNrOwotKyAgICAgICAgICAgICAgICBlbHNlIGlmIChjdXJyZW50X2xl dmVsID09IElCVVNfS0VZX0lTT19MRVZFTF81KQotKyAgICAgICAgICAgICAgICAgICAgbmV3X21v ZHNfZGVwcmVzc2VkICY9IH5hY3RpdmVfa2V5LT5tb2QzX21hc2s7Ci0rICAgICAgICAgICAgICAg IGVsc2UKLSsgICAgICAgICAgICAgICAgICAgIGdfYXNzZXJ0X25vdF9yZWFjaGVkICgpOwotKyAg ICAgICAgICAgICAgICBpZiAoc3ltICE9IHN5c3RlbV9zeW0pCi0rICAgICAgICAgICAgICAgICAg ICAqY2xlYXJfdmlydHVhbF9zdGF0ZSA9IFRSVUU7Ci0rICAgICAgICAgICAgfSBlbHNlIGlmICgh KmN1cnJlbnRfc3RhdGUgJiYgKnJldmVyc2Vfc3RhdGUgJiYKLSsgICAgICAgICAgICAgICAgICAg ICAgICgoKGN1cnJlbnRfbGV2ZWwgPT0gSUJVU19LRVlfSVNPX0xFVkVMXzMpICYmCi0rICAgICAg ICAgICAgICAgICAgICAgICAgIChuZXdfbW9kc19kZXByZXNzZWQgJiBhY3RpdmVfa2V5LT5tb2Qz X21hc2spKSB8fAotKyAgICAgICAgICAgICAgICAgICAgICAgICgoY3VycmVudF9sZXZlbCA9PSBJ QlVTX0tFWV9JU09fTEVWRUxfNSkgJiYKLSsgICAgICAgICAgICAgICAgICAgICAgICAgKG5ld19t b2RzX2RlcHJlc3NlZCAmIGFjdGl2ZV9rZXktPm1vZDVfbWFzaykpCi0rICAgICAgICAgICAgICAg ICAgICAgICApKSB7Ci0gICAgICAgICAgICAgICAgIC8qIFRoZSB1bmxpa2VseSBjYXNlICFwcml2 LT5pc19wcmVzc2VkX21vZDMgYW5kCi0gICAgICAgICAgICAgICAgICAqIHByaXYtPmlzX3ByZXNz ZWRfbW9kNSBtZWFucyB0aGF0ICJkZShUMykiIGtleW1hcCBnaXZlcwotICAgICAgICAgICAgICAg ICAgKiB0aGUgcHJlc3NlZCAiTGV2ZWwzX1NoaWZ0IiBrZXlzeW0gYW5kCi0gICAgICAgICAgICAg ICAgICAqIHRoZSByZWxlYXNlZCAiTGV2ZWw1X0xhdGNoIiBrZXlzeW0gZm9yIHRoZSBrZXkgPFJB TFQ+LgotLSAgICAgICAgICAgICAgICAgKiBNYXliZSBhIGJ1ZyBpbiAiZGUoVDMpIiBzbyBuZWVk IHRvIGNsZWFyIHRoZSBNT0Q1IHN0YXRlCi0tICAgICAgICAgICAgICAgICAqIGJ5IHRoZSBwcmVz c2VkICJMZXZlbDNfU2hpZnQiIGtleXN5bS4KLSsgICAgICAgICAgICAgICAgICogVGhpcyBjYXNl IGNhbiBoYXBwZW4gaWYgdGhlIG5vcm1hbCBrZXlzeW0gYW5kIHNoaWZ0IGtleXN5bQotKyAgICAg ICAgICAgICAgICAgKiBhcmUgZGlmZmVyZW50LgotICAgICAgICAgICAgICAgICAgKi8KLS0gICAg ICAgICAgICAgICAgKmlzX3ByZXNzZWRfcmV2ZXJzZV9tb2QgPSBGQUxTRTsKLS0gICAgICAgICAg ICAgICAgbmV3X21vZHNfZGVwcmVzc2VkICY9IH5yZXZlcnNlX21vZGVfbWFzazsKLSsgICAgICAg ICAgICAgICAgKnJldmVyc2Vfc3RhdGUgPSBJQlVTX0tFWV9JU09fTEVWRUxfU1RBVEVfUkVMRUFT RTsKLSsgICAgICAgICAgICAgICAgKmlzX2ludmFsaWRfa2V5ID0gVFJVRTsKLSsgICAgICAgICAg ICAgICAgaWYgKGN1cnJlbnRfbGV2ZWwgPT0gSUJVU19LRVlfSVNPX0xFVkVMXzMpCi0rICAgICAg ICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgJj0gfmFjdGl2ZV9rZXktPm1vZDNfbWFz azsKLSsgICAgICAgICAgICAgICAgZWxzZSBpZiAoY3VycmVudF9sZXZlbCA9PSBJQlVTX0tFWV9J U09fTEVWRUxfNSkKLSsgICAgICAgICAgICAgICAgICAgIG5ld19tb2RzX2RlcHJlc3NlZCAmPSB+ YWN0aXZlX2tleS0+bW9kNV9tYXNrOwotKyAgICAgICAgICAgICAgICBlbHNlCi0rICAgICAgICAg ICAgICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCAoKTsKLSAgICAgICAgICAgICAgICAgKmNs ZWFyX3ZpcnR1YWxfc3RhdGUgPSBUUlVFOwotICAgICAgICAgICAgICAgICBnX2RlYnVnICgiR290 IGEgd3JvbmcgcmVsZWFzZWQgJXMga2V5IHdpdGhvdXQgdGhlICIKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgInByZXNzZWQgb25lLiBNYXliZSBhIGJ1ZyBpbiBYS0IuIiwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgInByZXNzZWQgb25lLiBNYXliZSB0aGUgbmV4dCBTaGlmdCBzdGF0ZSB3 aWxsICIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgInByb2R1Y2UgdGhlIGRlbGF5ZWQgcHJl c3NlZCBvbmUuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudF9sZXZlbCA9PSBJ QlVTX0tFWV9JU09fTEVWRUxfMyA/Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IkxldmVsMyIgOiAiTGV2ZWw1Iik7Ci0gICAgICAgICAgICAgfQotLSAgICAgICAgICAgIC8qIFRo ZSAibHYodGlsZGUpIiBrZXltYXAgZ2l2ZXMgdGhlICJMZXZlbDNfU2hpZnQiIGtleXN5bQotLSAg ICAgICAgICAgICAqIHdpdGggdGhlIGtleSA8UkFMVD4uCi0tICAgICAgICAgICAgICovCi0tICAg ICAgICAgICAgaWYgKChjdXJyZW50X2xldmVsID09IElCVVNfS0VZX0lTT19MRVZFTF8zICYmCi0t ICAgICAgICAgICAgICAgICBzeW0gPT0gSUJVU19LRVlfSVNPX0xldmVsM19TaGlmdCkgfHwKLS0g ICAgICAgICAgICAgICAgKGN1cnJlbnRfbGV2ZWwgPT0gSUJVU19LRVlfSVNPX0xFVkVMXzUgJiYK LS0gICAgICAgICAgICAgICAgIHN5bSA9PSBJQlVTX0tFWV9JU09fTGV2ZWw1X1NoaWZ0KSkgewot LSAgICAgICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQgJj0gfmN1cnJlbnRfbW9kZV9tYXNr OwotLSAgICAgICAgICAgICAgICBpZiAoc3ltICE9IHN5c3RlbV9zeW0pCi0tICAgICAgICAgICAg ICAgICAgICBjbGVhcl92aXJ0dWFsX3N0YXRlID0gVFJVRTsKLS0gICAgICAgICAgICB9Ci0gICAg ICAgICB9Ci0gICAgICAgICBicmVhazsKLSAgICAgY2FzZSBJQlVTX0tFWV9TaGlmdF9MOgotQEAg LTcwNyw3ICs3NjAsOCBAQCBpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxfeGtiX3N0YXRl IChJQnVzV2F5bGFuZElNICp3bGltLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElCdXNYa2JLZXltYXAgKmFjdGl2ZV9rZXksCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgeGtiX21vZF9tYXNrX3QgbW9kc19kZXByZXNzZWQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGtiX21vZF9tYXNrX3Qg bmV3X21vZHNfZGVwcmVzc2VkLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGdib29sZWFuICAgICAgIGNsZWFyX3ZpcnR1YWxfc3RhdGUpCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgY2xlYXJfdmlydHVh bF9zdGF0ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9v bGVhbiAgICAgICBpc19pbnZhbGlkX2tleSkKLSB7Ci0gICAgIElCdXNXYXlsYW5kSU1Qcml2YXRl ICpwcml2OwotICAgICB1aW50MzJfdCBjb2RlID0ga2V5ICsgODsKLUBAIC03MzgsOCArNzkyLDkg QEAgaWJ1c193YXlsYW5kX2ltX3VwZGF0ZV92aXJ0dWFsX3hrYl9zdGF0ZSAoSUJ1c1dheWxhbmRJ TSAqd2xpbSwKLSAgICAgICAgIGlmIChjbGVhcl92aXJ0dWFsX3N0YXRlKQotICAgICAgICAgICAg IHByaXYtPmlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGUgPSBGQUxTRTsKLSAgICAgfQotLSAgICBpZiAo IXByaXYtPmlzX3ZpcnR1YWxfbGF0Y2hfc3RhdGUgfHwKLS0gICAgICAgIChzdGF0ZSAhPSBXTF9L RVlCT0FSRF9LRVlfU1RBVEVfUkVMRUFTRUQpKSB7Ci0rICAgIGlmIChHX0xJS0VMWSAoIWlzX2lu dmFsaWRfa2V5KSAmJgotKyAgICAgICAgKCFwcml2LT5pc192aXJ0dWFsX2xhdGNoX3N0YXRlIHx8 Ci0rICAgICAgICAgKHN0YXRlICE9IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9SRUxFQVNFRCkpKSB7 Ci0gICAgICAgICB4a2Jfc3RhdGVfdXBkYXRlX2tleSAoYWN0aXZlX2tleS0+c3RhdGUsIGNvZGUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0YXRlID09IFdMX0tFWUJPQVJEX0tF WV9TVEFURV9SRUxFQVNFRCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFhLQl9L RVlfVVAgOiBYS0JfS0VZX0RPV04pOwotQEAgLTc1NCw3ICs4MDksOCBAQCBpYnVzX3dheWxhbmRf aW1fdXBkYXRlX3ZpcnR1YWxfeGtiX3N0YXRlIChJQnVzV2F5bGFuZElNICp3bGltLAotICAgICAg ICAgLyogImRlKFQzKSIga2V5bWFwIGdpdmVzIHRoZSBwcmVzc2VkICJMZXZlbDNfU2hpZnQiIGtl eXN5bSBhbmQKLSAgICAgICAgICAqIHNldHMgYm90aCBNT0QzKExldmVsNSkgYW5kIE1PRDUoTGV2 ZWwzKSBzdGF0ZXMgYWZ0ZXIKLSAgICAgICAgICAqIHhrYl9zdGF0ZV91cGRhdGVfa2V5KCkgaXMg Y2FsbGVkIHdpdGggdGhlIGtleXByZXNzLgotLSAgICAgICAgICogTWF5YmUgYSBidWcgaW4gImRl KFQzKSIgYW5kIHNldHMgTU9ENShMZXZlbDMpIGFnYWluIGhlcmUuCi0rICAgICAgICAgKiBGSVhN RTogU2hvdWxkIHNldCBgaXNfaW52YWxpZF9rZXlgIGluIHRoaXMgY2FzZSBvZiB0aGUgImRlKFQz KSIKLSsgICAgICAgICAqIGtleW1hcCB0b28gbm90IHRvIGNhbGwgeGtiX3N0YXRlX3VwZGF0ZV9r ZXkoKSBoZXJlPwotICAgICAgICAgICovCi0gICAgICAgICBpZiAoR19VTkxJS0VMWSAobmV3X21v ZHNfZGVwcmVzc2VkICE9IG5ldzJfbW9kc19kZXByZXNzZWQpKSB7Ci0gICAgICAgICAgICAgeGti X3N0YXRlX3VwZGF0ZV9tYXNrIChhY3RpdmVfa2V5LT5zdGF0ZSwgbmV3X21vZHNfZGVwcmVzc2Vk LAotQEAgLTE2MjMsNiArMTY3OSw3IEBAIGlidXNfd2F5bGFuZF9pbV9wb3N0X2tleSAoSUJ1c1dh eWxhbmRJTSAqd2xpbSwKLSAgICAgSUJ1c1hrYktleW1hcCAqYWN0aXZlX2tleTsKLSAgICAgeGti X21vZF9tYXNrX3QgbW9kc19kZXByZXNzZWQsIG5ld19tb2RzX2RlcHJlc3NlZDsKLSAgICAgZ2Jv b2xlYW4gY2xlYXJfdmlydHVhbF9zdGF0ZSA9IEZBTFNFOwotKyAgICBnYm9vbGVhbiBpc19pbnZh bGlkX2tleSA9IEZBTFNFOwotIAotICAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoSUJVU19JU19X QVlMQU5EX0lNICh3bGltKSwgRkFMU0UpOwotICAgICBwcml2ID0gaWJ1c193YXlsYW5kX2ltX2dl dF9pbnN0YW5jZV9wcml2YXRlICh3bGltKTsKLUBAIC0xNjU4LDcgKzE3MTUsOCBAQCBpYnVzX3dh eWxhbmRfaW1fcG9zdF9rZXkgKElCdXNXYXlsYW5kSU0gKndsaW0sCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlX2tleSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm aWx0ZXJlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmbmV3X21vZHNfZGVwcmVzc2VkLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjbGVhcl92aXJ0dWFsX3N0YXRlKTsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmY2xlYXJfdmlydHVhbF9zdGF0ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmaXNfaW52YWxpZF9rZXkpOwotICAgICBmaWx0ZXJl ZCA9IGlidXNfd2F5bGFuZF9pbV9jb21taXRfa2V5X2V2ZW50ICh3bGltLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVycywKLUBAIC0xNjY3 LDE0ICsxNzI1LDE2IEBAIGlidXNfd2F5bGFuZF9pbV9wb3N0X2tleSAoSUJ1c1dheWxhbmRJTSAq d2xpbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YWN0aXZlX2tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZmlsdGVyZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZuZXdfbW9kc19kZXByZXNzZWQsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZjbGVhcl92aXJ0dWFsX3N0YXRlKTsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNsZWFyX3ZpcnR1YWxf c3RhdGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZpc19pbnZhbGlkX2tleSk7Ci0gICAgIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF94 a2Jfc3RhdGUgKHdsaW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFjdGl2ZV9rZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1vZHNfZGVwcmVzc2VkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBuZXdfbW9kc19kZXByZXNzZWQsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNsZWFyX3ZpcnR1YWxfc3RhdGUpOwotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhcl92aXJ0dWFsX3N0YXRlLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19pbnZhbGlk X2tleSk7Ci0gICAgIHJldHVybiBmaWx0ZXJlZDsKLSB9Ci0gCi1AQCAtMjA1Myw2ICsyMTEzLDIx IEBAIGtleV9ldmVudF9jaGVja19yZXBlYXQgKElCdXNXYXlsYW5kSU0gICAgICAgKndsaW0sCi0g ICAgICAgICBnX2NsZWFyX3BvaW50ZXIgKCZyZXBlYXRpbmdfZXZlbnQuaWJ1c19vYmplY3RfcGF0 aCwgZ19mcmVlKTsKLSAgICAgICAgIGlmICghcHJpdi0+aWJ1c2NvbnRleHQpCi0gICAgICAgICAg ICAgcmV0dXJuIEZBTFNFOwotKyAgICAgICAgaWYgKElTX0RFQURfS0VZIChldmVudC0+c3ltKSkg ewotKyAgICAgICAgICAgIC8qIFdpdGggImZyKGVyZ29sKSIga2V5bWFwLCBpbiBjYXNlIHRoYXQg a2V5IDxBRDA5PiBpcyB0eXBlZAotKyAgICAgICAgICAgICAqIHR3aWNlLCB0aGUgc2Vjb25kIHBy ZXNzZWQga2V5c3ltIGlzICJkZWFkX2RpYWVyZXNpcyIgYW5kCi0rICAgICAgICAgICAgICogdGhl IHNlY29uZCByZWxlYXNlZCBrZXlzeW0gaXMgIklTT19MZXZlbDVfTGF0Y2giLgotKyAgICAgICAg ICAgICAqIFRoZSBrZXlzeW0gImRlYWRfZGlhZXJlc2lzIiBzaG91bGQgbm90IGJlIGF1dG8tcmVw ZWF0ZWQKLSsgICAgICAgICAgICAgKiBpbiB0aGlzIGNhc2UuCi0rICAgICAgICAgICAgICovCi0r ICAgICAgICAgICAgaWYgKHByaXYtPnJlbGVhc2VkX2RlYWRfa2V5X3dvX3ByZXNzID09IGV2ZW50 LT5zeW0pIHsKLSsgICAgICAgICAgICAgICAgcHJpdi0+cmVsZWFzZWRfZGVhZF9rZXlfd29fcHJl c3MgPSAwOwotKyAgICAgICAgICAgICAgICByZXR1cm4gVFJVRTsKLSsgICAgICAgICAgICB9Ci0r ICAgICAgICAgICAgcHJpdi0+cHJlc3NlZF9kZWFkX2tleSA9IGV2ZW50LT5zeW07Ci0rICAgICAg ICB9IGVsc2UgewotKyAgICAgICAgICAgIHByaXYtPnJlbGVhc2VkX2RlYWRfa2V5X3dvX3ByZXNz ID0gMDsKLSsgICAgICAgIH0KLSAgICAgICAgIHNvdXJjZSA9IGdfdGltZW91dF9zb3VyY2VfbmV3 IChwcml2LT5yZXBlYXRfZGVsYXkpOwotICAgICAgICAgZ19zb3VyY2VfYXR0YWNoIChzb3VyY2Us IE5VTEwpOwotICAgICAgICAgZ19zb3VyY2VfdW5yZWYgKHNvdXJjZSk7Ci1AQCAtMjA2Niw2ICsy MTQxLDMwIEBAIGtleV9ldmVudF9jaGVja19yZXBlYXQgKElCdXNXYXlsYW5kSU0gICAgICAgKnds aW0sCi0gICAgICAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sgKHNvdXJjZSwgX3Byb2Nlc3Nfa2V5 X2V2ZW50X3JlcGVhdF9kZWxheV9jYiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JnJlcGVhdGluZ19ldmVudCwgTlVMTCk7Ci0gICAgIH0gZWxzZSB7Ci0rICAgICAgICBpZiAoZXZl bnQtPnN5bSAhPSByZXBlYXRpbmdfZXZlbnQuc3ltKSB7Ci0rICAgICAgICAgICAgaWYgKElTX0RF QURfS0VZIChldmVudC0+c3ltKSkgewotKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQtPnN5bSA9 PSBwcml2LT5wcmVzc2VkX2RlYWRfa2V5KSB7Ci0rICAgICAgICAgICAgICAgICAgICBwcml2LT5w cmVzc2VkX2RlYWRfa2V5ID0gMDsKLSsgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghcHJpdi0+ cHJlc3NlZF9kZWFkX2tleSkgewotKyAgICAgICAgICAgICAgICAgICAgLyogV2l0aCAiZnIoZXJn b2wpIiBrZXltYXAsIGluIGNhc2UgdGhhdCBrZXkgPEFEMDk+IGlzCi0rICAgICAgICAgICAgICAg ICAgICAgKiB0eXBlZCB0d2ljZSwgdGhlIGZpcnN0IHByZXNzZWQga2V5c3ltIGlzCi0rICAgICAg ICAgICAgICAgICAgICAgKiAiSVNPX0xldmVsNV9MYXRjaCIgYW5kIHRoZSBmaXJzdCByZWxlYXNl ZCBrZXlzeW0gaXMKLSsgICAgICAgICAgICAgICAgICAgICAqICJkZWFkX2RpYWVyZXNpcyIgd2l0 aCB0aGUgTU9EMyh0aGUgbGV2ZWw1KSBtYXNrLAotKyAgICAgICAgICAgICAgICAgICAgICogdGhl IHNlY29uZCBwcmVzc2VkIGtleXN5bSBpcyAiZGVhZF9kaWFlcmVzaXMiIGFuZAotKyAgICAgICAg ICAgICAgICAgICAgICogdGhlIHNlY29uZCByZWxlYXNlZCBrZXlzeW0gaXMgIklTT19MZXZlbDVf TGF0Y2giLgotKyAgICAgICAgICAgICAgICAgICAgICogU28gdGhlIGZpcnN0IHJlbGVhc2VkICJk ZWFkX2RpYWVyZXNpcyIgaXMgaW52YWxpZCBhbmQKLSsgICAgICAgICAgICAgICAgICAgICAqIHRo ZSBzZWNvbmQgcHJlc3NlZCAiZGVhZF9kaWFlcmVzaXMiIHNob3VsZCBiZSByZWxlYXNlZAotKyAg ICAgICAgICAgICAgICAgICAgICogaW1tZWRpYXRlbHkuCi0rICAgICAgICAgICAgICAgICAgICAg Ki8KLSsgICAgICAgICAgICAgICAgICAgIHByaXYtPnJlbGVhc2VkX2RlYWRfa2V5X3dvX3ByZXNz ID0gZXZlbnQtPnN5bTsKLSsgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgIH0KLSsgICAg ICAgIH0gZWxzZSBpZiAoSVNfREVBRF9LRVkgKHJlcGVhdGluZ19ldmVudC5zeW0pKSB7Ci0rICAg ICAgICAgICAgaWYgKHJlcGVhdGluZ19ldmVudC5zeW0gPT0gcHJpdi0+cHJlc3NlZF9kZWFkX2tl eSkKLSsgICAgICAgICAgICAgICAgcHJpdi0+cHJlc3NlZF9kZWFkX2tleSA9IDA7Ci0rICAgICAg ICB9IGVsc2UgewotKyAgICAgICAgICAgIHByaXYtPnJlbGVhc2VkX2RlYWRfa2V5X3dvX3ByZXNz ID0gMDsKLSsgICAgICAgIH0KLSAgICAgICAgIGlmIChyZXBlYXRpbmdfZXZlbnQucmVwZWF0X3Jh dGVfaWQpIHsKLSAgICAgICAgICAgICBnX3NvdXJjZV9yZW1vdmUgKHJlcGVhdGluZ19ldmVudC5y ZXBlYXRfcmF0ZV9pZCk7Ci0gICAgICAgICAgICAgcmVwZWF0aW5nX2V2ZW50LnJlcGVhdF9yYXRl X2lkID0gMDsKLS0tIAotMi41NC4wCi0KLUZyb20gYjYwYjU0MDQ0NDA2ZmY1MDhmZDAyNWRlMzJj MTBkNzg4MjlmZjJhMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8 dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IFN1biwgMTkgSnVsIDIwMjYgMTg6MTU6 NDIgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSCA1LzVdIGNsaWVudC93YXlsYW5kOiBGaXggQ2Fwc0xv Y2sgYmV0d2VlbiBmb2N1cyBjaGFuZ2VzCi0KLWlidXNfd2F5bGFuZF9pbV9yZXNldF9tb2RpZmll cnMoKSBzaG91bGQgbm90IHJlc2V0IHRoZSBzdGF0ZSBvZiBDYXBzTG9jawotYW5kIGlidXNfd2F5 bGFuZF9pbV91cGRhdGVfdmlydHVhbF9kZXByZXNzZWQoKSBzaG91bGQgY29tcGFyZQotYHByaXYt Pm1vZGlmaWVyc2AgYW5kIGAobW9kc19kZXByZXNzZWQgJiBtb2RzX2xvY2tlZClgLgotCi1GaXhl czogIzI4NjkKLS0tLQotIGNsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYyB8IDMzICsrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAyNCBpbnNlcnRp b25zKCspLCA5IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY2xpZW50L3dheWxhbmQvaWJ1 c3dheWxhbmRpbS5jIGIvY2xpZW50L3dheWxhbmQvaWJ1c3dheWxhbmRpbS5jCi1pbmRleCBlZmVi Njc4My4uOGIxZTdiNTMgMTAwNjQ0Ci0tLS0gYS9jbGllbnQvd2F5bGFuZC9pYnVzd2F5bGFuZGlt LmMKLSsrKyBiL2NsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYwotQEAgLTM2Miw2ICszNjIs NyBAQCBzdGF0aWMgdm9pZAotIGlidXNfd2F5bGFuZF9pbV9yZXNldF9tb2RpZmllcnMgKElCdXNX YXlsYW5kSU0gKndsaW0pCi0gewotICAgICBJQnVzV2F5bGFuZElNUHJpdmF0ZSAqcHJpdjsKLSsg ICAgeGtiX21vZF9tYXNrX3QgbW9kc19sb2NrZWQgPSAwOwotICAgICB4a2JfbGF5b3V0X2luZGV4 X3QgIGdyb3VwID0gMDsKLSAKLSAgICAgZ19hc3NlcnQgKElCVVNfSVNfV0FZTEFORF9JTSAod2xp bSkpOwotQEAgLTM3MywxMSArMzc0LDE1IEBAIGlidXNfd2F5bGFuZF9pbV9yZXNldF9tb2RpZmll cnMgKElCdXNXYXlsYW5kSU0gKndsaW0pCi0gICAgIHByaXYtPnByZXNzZWRfZGVhZF9rZXkgPSAw OwotICAgICBwcml2LT5yZWxlYXNlZF9kZWFkX2tleV93b19wcmVzcyA9IDA7Ci0gICAgIGlmIChw cml2LT5rZXlfdXNlci5zdGF0ZSAmJiBwcml2LT5rZXlfc3lzLnN0YXRlKSB7Ci0rICAgICAgICBt b2RzX2xvY2tlZCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbW9kcyAocHJpdi0+a2V5X3N5cy5zdGF0 ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYS0Jf U1RBVEVfTE9DS0VEKTsKLSAgICAgICAgIGdyb3VwID0geGtiX3N0YXRlX3NlcmlhbGl6ZV9sYXlv dXQgKHByaXYtPmtleV9zeXMuc3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBYS0JfU1RBVEVfTEFZT1VUX0xPQ0tFRCk7Ci0tICAgICAgICBpbnB1dF9t ZXRob2Rfa2V5Ym9hcmRfbW9kaWZpZXJzICh3bGltLCBOVUxMLCAwLCAwLCAwLCAwLCBncm91cCk7 Ci0rICAgICAgICBpbnB1dF9tZXRob2Rfa2V5Ym9hcmRfbW9kaWZpZXJzICh3bGltLCBOVUxMLCAw LCAwLCAwLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kc19s b2NrZWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cCk7 Ci0gICAgIH0gZWxzZSB7Ci0tICAgICAgICBwcml2LT5tb2RpZmllcnMgPSAwOwotKyAgICAgICAg cHJpdi0+bW9kaWZpZXJzICY9IElCVVNfTE9DS19NQVNLOwotICAgICB9Ci0gfQotIAotQEAgLTYw MCw2ICs2MDUsNyBAQCBpYnVzX3dheWxhbmRfaW1fdXBkYXRlX3ZpcnR1YWxfZGVwcmVzc2VkIChJ QnVzV2F5bGFuZElNICAqd2xpbSwKLSAgICAgSUJ1c1dheWxhbmRJTVByaXZhdGUgKnByaXY7Ci0g ICAgIHVpbnQzMl90IGNvZGUgPSBrZXkgKyA4OwotICAgICB4a2JfbW9kX21hc2tfdCBuZXdfbW9k c19kZXByZXNzZWQ7Ci0rICAgIHhrYl9tb2RfbWFza190IG1vZHNfbG9ja2VkOwotICAgICB4a2Jf a2V5c3ltX3Qgc3lzdGVtX3N5bSA9IHN5bTsKLSAKLSAgICAgaWYgKGZpbHRlcmVkKQotQEAgLTYx MywxMCArNjE5LDEzIEBAIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF9kZXByZXNzZWQg KElCdXNXYXlsYW5kSU0gICp3bGltLAotIAotICAgICBwcml2ID0gaWJ1c193YXlsYW5kX2ltX2dl dF9pbnN0YW5jZV9wcml2YXRlICh3bGltKTsKLSAgICAgbmV3X21vZHNfZGVwcmVzc2VkID0gKm1v ZHNfZGVwcmVzc2VkOwotKyAgICBtb2RzX2xvY2tlZCA9IHhrYl9zdGF0ZV9zZXJpYWxpemVfbW9k cyAoYWN0aXZlX2tleS0+c3RhdGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBYS0JfU1RBVEVfTE9DS0VEKTsKLSAKLS0gICAgaWYgKChtb2RpZmllcnMgJiB+ SUJVU19SRUxFQVNFX01BU0sgKSAhPSBuZXdfbW9kc19kZXByZXNzZWQpIHsKLSsgICAgaWYgKCht b2RpZmllcnMgJiB+SUJVU19SRUxFQVNFX01BU0sgKSAhPQotKyAgICAgICAgKG5ld19tb2RzX2Rl cHJlc3NlZCB8IG1vZHNfbG9ja2VkKSkgewotICAgICAgICAgZ193YXJuaW5nICgiSUJ1cyBtb2Rp ZmllcnMgJVggaXMgZGlmZmVyZW50IGZyb20gWEtCIGRlcHJlc3NlZCAlWCIsCi0tICAgICAgICAg ICAgICAgICAgIG1vZGlmaWVycywgbmV3X21vZHNfZGVwcmVzc2VkKTsKLSsgICAgICAgICAgICAg ICAgICAgbW9kaWZpZXJzLCBuZXdfbW9kc19kZXByZXNzZWQgfCBtb2RzX2xvY2tlZCk7Ci0gICAg IH0KLSAgICAgaWYgKHByaXYtPmtleV9zeXMuc3RhdGUpCi0gICAgICAgICBzeXN0ZW1fc3ltID0g eGtiX3N0YXRlX2tleV9nZXRfb25lX3N5bSAocHJpdi0+a2V5X3N5cy5zdGF0ZSwgY29kZSk7Ci1A QCAtNzcyLDcgKzc4MSw3IEBAIGlidXNfd2F5bGFuZF9pbV91cGRhdGVfdmlydHVhbF94a2Jfc3Rh dGUgKElCdXNXYXlsYW5kSU0gKndsaW0sCi0gCi0gICAgIHByaXYgPSBpYnVzX3dheWxhbmRfaW1f Z2V0X2luc3RhbmNlX3ByaXZhdGUgKHdsaW0pOwotICAgICBtb2RzX2xvY2tlZCA9IHhrYl9zdGF0 ZV9zZXJpYWxpemVfbW9kcyAoYWN0aXZlX2tleS0+c3RhdGUsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBYS0JfU1RBVEVfTU9EU19MT0NLRUQpOwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX0xPQ0tFRCk7 Ci0gICAgIC8qIFhLQiBncm91cCBsYXlvdXQgaXMgY29uZmlndXJlZCBpbiB0aGUgc3lzdGVtIGtl eW1hcCBidXQgbm90IHRoZQotICAgICAgKiB1c2VyIGtleW1hcCB3aGljaCBhbHdheXMgaW5jbHVk ZXMgYSBzaW5nbGUgbGF5b3V0LgotICAgICAgKi8KLUBAIC0yMjIwLDkgKzIyMjksMTUgQEAgaW5w dXRfbWV0aG9kX2tleWJvYXJkX2tleSAodm9pZCAgICAgICAgICAgICAgICAgICAgICAqZGF0YSwK LSAgICAgLyogeGtiX2tleV9nZXRfc3ltcygpIGRvZXMgbm90IHJldHVybiB0aGUgY2FwaXRhbCBz eW1zIHdpdGggU2hpZnQga2V5LiAqLwotICAgICBpZiAocHJpdi0+a2V5X3N5cy5zdGF0ZSkKLSAg ICAgICAgIGV2ZW50LnN5bSA9IHhrYl9zdGF0ZV9rZXlfZ2V0X29uZV9zeW0gKHByaXYtPmtleV9z eXMuc3RhdGUsIGNvZGUpOwotKyAgICAvKiBUaGUgcG9zaXRpb24gb2YgQ2Fwc19Mb2NrLCBDb250 cm9sLCBJU09fTmV4dF9Hcm91cCwgTXVsdGlfa2V5IGtleXN5bXMKLSsgICAgICogY2FuIGJlIGN1 c3RvbXppZWQgYnkgZWFjaCBkZXNrdG9wIGNvbmZpZ3VyYXRpb24uCi0rICAgICAqLwotICAgICBz d2l0Y2ggKGV2ZW50LnN5bSkgewotLSAgICBjYXNlIElCVVNfS0VZX011bHRpX2tleToKLSsgICAg Y2FzZSBJQlVTX0tFWV9DYXBzX0xvY2s6Ci0rICAgIGNhc2UgSUJVU19LRVlfQ29udHJvbF9MOgot KyAgICBjYXNlIElCVVNfS0VZX0NvbnRyb2xfUjoKLSAgICAgY2FzZSBJQlVTX0tFWV9JU09fTmV4 dF9Hcm91cDoKLSsgICAgY2FzZSBJQlVTX0tFWV9NdWx0aV9rZXk6Ci0gICAgICAgICBicmVhazsK LSAgICAgZGVmYXVsdDoKLSAgICAgICAgIGlmIChwcml2LT5rZXlfdXNlci5zdGF0ZSkKLUBAIC0y MzM3LDExICsyMzUyLDExIEBAIGlucHV0X21ldGhvZF9rZXlib2FyZF9tb2RpZmllcnMgKHZvaWQg ICAgICAgICAgICAgICAgICAgICAgKmRhdGEsCi0gICAgICAgICB9Ci0gICAgIH0KLSAgICAgaWYg KGFjdGl2ZV9rZXktPnN0YXRlKSB7Ci0tICAgICAgICAvKiBDYXBzTG9jayBuZWVkcyBYS0JfU1RB VEVfTU9EU19MT0NLRUQgKi8KLSsgICAgICAgIC8qIENhcHNMb2NrIG5lZWRzIFhLQl9TVEFURV9M T0NLRUQgKi8KLSAgICAgICAgIG1hc2sgPSB4a2Jfc3RhdGVfc2VyaWFsaXplX21vZHMgKGFjdGl2 ZV9rZXktPnN0YXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg WEtCX1NUQVRFX0RFUFJFU1NFRCB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBYS0JfU1RBVEVfTEFUQ0hFRCB8Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBYS0JfU1RBVEVfTU9EU19MT0NLRUQpOwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgWEtCX1NUQVRFX0xPQ0tFRCk7Ci0gICAgIH0KLSAgICAg aWYgKHByaXYtPnZlcmJvc2UpIHsKLSAgICAgICAgIHN0cnVjdCB4a2Jfc3RhdGUgKnN0YXRlID0g YWN0aXZlX2tleS0+c3RhdGU7Ci1AQCAtMjM1Niw3ICsyMzcxLDcgQEAgaW5wdXRfbWV0aG9kX2tl eWJvYXJkX21vZGlmaWVycyAodm9pZCAgICAgICAgICAgICAgICAgICAgICAqZGF0YSwKLSAgICAg ICAgICAgICAgICAgICAgICB4a2Jfc3RhdGVfc2VyaWFsaXplX21vZHMgKHN0YXRlLCBYS0JfU1RB VEVfTEFUQ0hFRCkgOgotICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsCi0gICAgICAg ICAgICAgICAgICBzdGF0ZSA/Ci0tICAgICAgICAgICAgICAgICAgICAgeGtiX3N0YXRlX3Nlcmlh bGl6ZV9tb2RzIChzdGF0ZSwgWEtCX1NUQVRFX01PRFNfTE9DS0VEKSA6Ci0rICAgICAgICAgICAg ICAgICAgICAgeGtiX3N0YXRlX3NlcmlhbGl6ZV9tb2RzIChzdGF0ZSwgWEtCX1NUQVRFX0xPQ0tF RCkgOgotICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYpOwotICAgICAgICAgZmZsdXNo IChwcml2LT5sb2cpOwotICAgICB9Ci0tLSAKLTIuNTQuMAotCg==