From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.107.0.77; helo=eur02-am5-obe.outbound.protection.outlook.com; envelope-from=supreeth.venkatesh@arm.com; receiver=edk2-devel@lists.01.org Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00077.outbound.protection.outlook.com [40.107.0.77]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id CA3E621164C6B for ; Mon, 15 Oct 2018 06:10:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EkteeIUeQMiFNfcqQt5M2/Cp5OyvsAOhZTAfw97cfj0=; b=iyYeEUUDRYWDZZOVWVgWc9OUgMuXdzYqII8wDw/6fU0RmCB6dNYdi7G0St/E/Y56O7YpX/3q/Jt7rcEsUFLpPlA7n4aZXW9qu69cxhX63CxU7VJxw2Ph1u1yEYZ230MxBCCSdOpK3lVfrnuCk2qBFRlYiy98S4G6jFgO61t2/04= Received: from AM4PR08MB2788.eurprd08.prod.outlook.com (10.171.191.18) by AM4PR08MB0770.eurprd08.prod.outlook.com (10.164.82.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1228.24; Mon, 15 Oct 2018 13:09:59 +0000 Received: from AM4PR08MB2788.eurprd08.prod.outlook.com ([fe80::d4b:69c8:51b8:1739]) by AM4PR08MB2788.eurprd08.prod.outlook.com ([fe80::d4b:69c8:51b8:1739%4]) with mapi id 15.20.1228.027; Mon, 15 Oct 2018 13:09:59 +0000 From: Supreeth Venkatesh To: Eric Jin , "edk2-devel@lists.01.org" CC: Jiaxin Wu , Supreeth Venkatesh Thread-Topic: [PATCH] uefi-sct/SctPkg:Add the checkpoint of Toggle state of ReadKeyStrokeEx Thread-Index: AQHUYxDbEE/fMjNq5kS4hTxCmdpBX6UfQJAAgACzMYA= Date: Mon, 15 Oct 2018 13:09:59 +0000 Message-ID: References: <20181013162143.16760-1-eric.jin@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 x-ms-exchange-imapappendstamp: AM4PR08MB2788.eurprd08.prod.outlook.com (15.20.1228.020) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Supreeth.Venkatesh@arm.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [217.140.111.135] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM4PR08MB0770; 6:yN4OzAd8Y3Fe91tx2hOXT0q5eJJWDhFl3w34iZmVJIKx9ahxUTNkwrT1PqoIvxdiHaTU4IX0Zl5Z8LKKfamJrpG3+Ko/71/Otz3cO/9hqYiMHVQ2kkgHf6Ov3ESZw51maxD6NvzEzWI0jdLYdk9zri07MM9bQCKjM0uTPUXWbt4rjuI2U0DTX0bUMmaWtV5TLyW4oqMD3ypwNYR0yuU1TIrr0Ry6vyo8+Jena3g/WeySs96rn5d8zENYHRc3eXlBIhThEsmEJZ9WjZJQ4z2TURi6t486LZgo9QN1zQXI7jtapOuKZoXfWsViquvFnouHzEZ0Xi9rdqvGjke4de9wrJdk3n7vKcr3n3gRKTVIj5xNMo+oLBsVyHngh0kykN0d0Y9VeusiuZDkaU8JR0q8pRH061iq2ULaLsJ3OpKvijBwzNGZdTdStF7P8ZYqTRqCsb0IVAwD8GMoFI8NNUZoog==; 5:pn/EWYijPDQuKANt2nCA4G7HxChkMxFwTxqvxEGPkQyS+7aWv5Hp+MlvEcaOBYYGG6C7oZ1c9Mx5+0L4WeiYA6hhll1LwrSF+Rfvux2+gzfo5pe0AGhPWp7sLH2rIHZxc46PSf6xgmhoFfD27oIjEcCHMfZY6tt4NK+/IXE/mvc=; 7:KMT46wzL7rqnZm2FrherA9wDT3YcwIJ9oYTDDkBR2G6WY4I6fy+7u8oOjubzSP4AkEjjGcuz1Ard1tT2b4/4U9UGAsr9HLtrocLzYcxaFHMPGrbWjz6n++OtdChoz9iuOD5cKxSwgoevh9GObpQylN6eEOjAAD+GWyS4RWjlCA8Xc6JrUx0l+KgMd5nXVtpG5ZshG5cnpeudZ2wxmPKaYYhFlc3iLxYxzLu1M1V02LSzNBrO0pyX2lJ/OlaNd+wa x-ms-office365-filtering-correlation-id: d7638e08-8acf-4e93-0645-08d6329f830b x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM4PR08MB0770; x-ms-traffictypediagnostic: AM4PR08MB0770: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917)(228905959029699)(21748063052155)(28532068793085)(190501279198761)(227612066756510); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(3231355)(944501410)(52105095)(10201501046)(93006095)(93001095)(6055026)(149066)(150057)(6041310)(20161123560045)(20161123558120)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051)(76991067); SRVR:AM4PR08MB0770; BCL:0; PCL:0; RULEID:; SRVR:AM4PR08MB0770; x-forefront-prvs: 0826B2F01B x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(366004)(39860400002)(376002)(136003)(396003)(69234005)(189003)(199004)(40434004)(2501003)(7696005)(44832011)(76176011)(2906002)(7736002)(5250100002)(99286004)(476003)(97736004)(4326008)(4744004)(6506007)(74316002)(446003)(256004)(71200400001)(19627235002)(71190400001)(25786009)(5024004)(14444005)(229853002)(11346002)(53546011)(3846002)(6116002)(790700001)(486006)(33656002)(53946003)(16200700003)(6306002)(72206003)(68736007)(54896002)(5660300001)(2900100001)(9686003)(86362001)(236005)(53936002)(110136005)(64126003)(54906003)(58126008)(316002)(26005)(102836004)(6436002)(65826007)(186003)(8676002)(478600001)(81166006)(81156014)(8936002)(14454004)(55016002)(575784001)(105586002)(6246003)(66066001)(106356001)(65806001)(65956001)(65966003)(559001)(579004)(569006); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR08MB0770; H:AM4PR08MB2788.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: iHjXLPP5rYpRsrlBWbjoJEG5BF29vFFOLiskAE5KLNzLMoIVyeV2Znb9oYOioEwuY1HmpIGKmJRfqWaSzA3VTD9dvAxtYdaOwC+YbT+QBbRkCb0VgQdCkScsk/9+Pi3svyBQeNYHEg0Gvy6p+JeoSKBDcPcaRd2gcjBoIM1v2mdvrzjqf94Lq5/M0Ufs+Y/tDeVs0mcI2Y8h781KK0FPLRAsk73QHiau7TUiyT9evsGyTZYKBMoFukozbxuVtSXDBkqR2k0MSqxVaP1aLyVxemDAq4uTOtbNz6hLOgbp1fqs9Fwk4PToq/BOpnMxZIyKVgT9bFR4efsGt7uK6/KizPJ+aFsRHL9Z+uTyqN7ADcA= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: d7638e08-8acf-4e93-0645-08d6329f830b X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Oct 2018 13:09:59.8761 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR08MB0770 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [PATCH] uefi-sct/SctPkg:Add the checkpoint of Toggle state of ReadKeyStrokeEx X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Oct 2018 13:10:03 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 RllJDQoNCk9uIDEwLzE1LzIwMTggMDM6MTcgQU0sIFN1cHJlZXRoIFZlbmthdGVzaCB3cm90ZToN Cg0KDQpPbiAxMC8xMy8yMDE4IDA1OjIxIFBNLCBFcmljIEppbiB3cm90ZToNCg0KVUVGSSBTcGVj IGNsYXJpZnkgdGhlIFRvZ2dsZSBzdGF0ZQ0KDQpDYzogU3VwcmVldGggVmVua2F0ZXNoIDxzdXBy ZWV0aC52ZW5rYXRlc2hAYXJtLmNvbT48bWFpbHRvOnN1cHJlZXRoLnZlbmthdGVzaEBhcm0uY29t Pg0KQ2M6IEppYXhpbiBXdSA8amlheGluLnd1QGludGVsLmNvbT48bWFpbHRvOmppYXhpbi53dUBp bnRlbC5jb20+DQpDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3Jl ZW1lbnQgMS4xDQpTaWduZWQtb2ZmLWJ5OiBFcmljIEppbiA8ZXJpYy5qaW5AaW50ZWwuY29tPjxt YWlsdG86ZXJpYy5qaW5AaW50ZWwuY29tPg0KLS0tDQogIC4uLi9TaW1wbGVUZXh0SW5wdXRFeC9C bGFja0JveFRlc3QvR3VpZC5jICAgICB8ICAgNyArLQ0KICAuLi4vU2ltcGxlVGV4dElucHV0RXgv QmxhY2tCb3hUZXN0L0d1aWQuaCAgICAgfCAgMTIgKy0NCiAgLi4uL1NpbXBsZVRleHRJbnB1dEV4 QkJUZXN0RnVuY3Rpb24uYyAgICAgICAgIHwgMjEwICsrKysrKysrKysrKysrKysrDQogIC4uLi9T aW1wbGVUZXh0SW5wdXRFeEJCVGVzdE1haW4uYyAgICAgICAgICAgICB8ICAxMyArLQ0KICAuLi4v U2ltcGxlVGV4dElucHV0RXhCQlRlc3RNYWluLmggICAgICAgICAgICAgfCAgMjIgKy0NCiAgLi4u L1NpbXBsZVRleHRJbnB1dEV4L0JsYWNrQm94VGVzdC9HdWlkLmMgICAgIHwgICA3ICstDQogIC4u Li9TaW1wbGVUZXh0SW5wdXRFeC9CbGFja0JveFRlc3QvR3VpZC5oICAgICB8ICAxMiArLQ0KICAu Li4vU2ltcGxlVGV4dElucHV0RXhCQlRlc3RGdW5jdGlvbi5jICAgICAgICAgfCAyMTIgKysrKysr KysrKysrKysrKystDQogIC4uLi9TaW1wbGVUZXh0SW5wdXRFeEJCVGVzdE1haW4uYyAgICAgICAg ICAgICB8ICAxMSArLQ0KICAuLi4vU2ltcGxlVGV4dElucHV0RXhCQlRlc3RNYWluLmggICAgICAg ICAgICAgfCAgMjAgKy0NCiAgMTAgZmlsZXMgY2hhbmdlZCwgNTEzIGluc2VydGlvbnMoKyksIDEz IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvdWVmaS1zY3QvU2N0UGtnL1Rlc3RDYXNlL1VF RkkvRUZJL1Byb3RvY29sL1NpbXBsZVRleHRJbnB1dEV4L0JsYWNrQm94VGVzdC9HdWlkLmMgYi91 ZWZpLXNjdC9TY3RQa2cvVGVzdENhc2UvVUVGSS9FRkkvUHJvdG9jb2wvU2ltcGxlVGV4dElucHV0 RXgvQmxhY2tCb3hUZXN0L0d1aWQuYw0KaW5kZXggOWNiMTlmNDguLmZmMmQ1MGZhIDEwMDY0NA0K LS0tIGEvdWVmaS1zY3QvU2N0UGtnL1Rlc3RDYXNlL1VFRkkvRUZJL1Byb3RvY29sL1NpbXBsZVRl eHRJbnB1dEV4L0JsYWNrQm94VGVzdC9HdWlkLmMNCisrKyBiL3VlZmktc2N0L1NjdFBrZy9UZXN0 Q2FzZS9VRUZJL0VGSS9Qcm90b2NvbC9TaW1wbGVUZXh0SW5wdXRFeC9CbGFja0JveFRlc3QvR3Vp ZC5jDQpAQCAtMSw3ICsxLDcgQEANCiAgLyoqIEBmaWxlDQogICAgICBDb3B5cmlnaHQgMjAwNiAt IDIwMTIgVW5pZmllZCBFRkksIEluYy48QlI+DQotICBDb3B5cmlnaHQgKGMpIDIwMTAgLSAyMDEy LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQorICBDb3B5cmln aHQgKGMpIDIwMTAgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQogICAgICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxz DQogICAgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5k IGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlDQpAQCAtNjMsMyArNjMsOCBAQCBFRklfR1VJ RCBnU2ltcGxlVGV4dElucHV0RXhCQlRlc3RGdW5jdGlvbkFzc2VydGlvbkd1aWQwMDcgPSBFRklf VEVTVF9TSU1QTEVURVhUSQ0KICBFRklfR1VJRCBnU2ltcGxlVGV4dElucHV0RXhCQlRlc3RGdW5j dGlvbkFzc2VydGlvbkd1aWQwMDggPSBFRklfVEVTVF9TSU1QTEVURVhUSU5QVVRFWEJCVEVTVEZV TkNUSU9OX0FTU0VSVElPTl8wMDhfR1VJRDsNCiAgICBFRklfR1VJRCBnU2ltcGxlVGV4dElucHV0 RXhCQlRlc3RGdW5jdGlvbkFzc2VydGlvbkd1aWQwMDkgPSBFRklfVEVTVF9TSU1QTEVURVhUSU5Q VVRFWEJCVEVTVEZVTkNUSU9OX0FTU0VSVElPTl8wMDlfR1VJRDsNCisNCitFRklfR1VJRCBnU2lt cGxlVGV4dElucHV0RXhCQlRlc3RGdW5jdGlvbkFzc2VydGlvbkd1aWQwMTAgPSBFRklfVEVTVF9T SU1QTEVURVhUSU5QVVRFWEJCVEVTVEZVTkNUSU9OX0FTU0VSVElPTl8wMTBfR1VJRDsNCisNCitF RklfR1VJRCBnU2ltcGxlVGV4dElucHV0RXhCQlRlc3RGdW5jdGlvbkFzc2VydGlvbkd1aWQwMTEg PSBFRklfVEVTVF9TSU1QTEVURVhUSU5QVVRFWEJCVEVTVEZVTkNUSU9OX0FTU0VSVElPTl8wMTFf R1VJRDsNCisNCmRpZmYgLS1naXQgYS91ZWZpLXNjdC9TY3RQa2cvVGVzdENhc2UvVUVGSS9FRkkv UHJvdG9jb2wvU2ltcGxlVGV4dElucHV0RXgvQmxhY2tCb3hUZXN0L0d1aWQuaCBiL3VlZmktc2N0 L1NjdFBrZy9UZXN0Q2FzZS9VRUZJL0VGSS9Qcm90b2NvbC9TaW1wbGVUZXh0SW5wdXRFeC9CbGFj a0JveFRlc3QvR3VpZC5oDQppbmRleCA2YzkwZmNhMy4uMmE2YmU0OGIgMTAwNjQ0DQotLS0gYS91 ZWZpLXNjdC9TY3RQa2cvVGVzdENhc2UvVUVGSS9FRkkvUHJvdG9jb2wvU2ltcGxlVGV4dElucHV0 RXgvQmxhY2tCb3hUZXN0L0d1aWQuaA0KKysrIGIvdWVmaS1zY3QvU2N0UGtnL1Rlc3RDYXNlL1VF RkkvRUZJL1Byb3RvY29sL1NpbXBsZVRleHRJbnB1dEV4L0JsYWNrQm94VGVzdC9HdWlkLmgNCkBA IC0xLDcgKzEsNyBAQA0KICAvKiogQGZpbGUNCiAgICAgIENvcHlyaWdodCAyMDA2IC0gMjAxMCBV bmlmaWVkIEVGSSwgSW5jLjxCUj4NCi0gIENvcHlyaWdodCAoYykgMjAxMCwgSW50ZWwgQ29ycG9y YXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KKyAgQ29weXJpZ2h0IChjKSAyMDEwIC0g MjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KICAgICAg VGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KICAgIGFyZSBsaWNl bnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9m IHRoZSBCU0QgTGljZW5zZQ0KQEAgLTExOSwzICsxMTksMTMgQEAgZXh0ZXJuIEVGSV9HVUlEIGdT aW1wbGVUZXh0SW5wdXRFeEJCVGVzdEZ1bmN0aW9uQXNzZXJ0aW9uR3VpZDAwODsNCiAgeyAweDUz NDM2OWY3LCAweDgzOTksIDB4NDM1MywgeyAweDk0LCAweGFkLCAweGM0LCAweDQ4LCAweGZhLCAw eGRhLCAweGViLCAweDg0IH0gfQ0KICAgIGV4dGVybiBFRklfR1VJRCBnU2ltcGxlVGV4dElucHV0 RXhCQlRlc3RGdW5jdGlvbkFzc2VydGlvbkd1aWQwMDk7DQorDQorI2RlZmluZSBFRklfVEVTVF9T SU1QTEVURVhUSU5QVVRFWEJCVEVTVEZVTkNUSU9OX0FTU0VSVElPTl8wMTBfR1VJRCBcDQoreyAw eGNmNGQ1NGViLCAweDY2OTYsIDB4NDc5NCwgeyAweDkxLCAweDc0LCAweDU5LCAweGQsIDB4MWMs IDB4MjIsIDB4YTgsIDB4NjcgfSB9DQorDQorZXh0ZXJuIEVGSV9HVUlEIGdTaW1wbGVUZXh0SW5w dXRFeEJCVGVzdEZ1bmN0aW9uQXNzZXJ0aW9uR3VpZDAxMDsNCisNCisjZGVmaW5lIEVGSV9URVNU X1NJTVBMRVRFWFRJTlBVVEVYQkJURVNURlVOQ1RJT05fQVNTRVJUSU9OXzAxMV9HVUlEIFwNCit7 IDB4ZjhlOGY4NzksIDB4YTZkNCwgMHg0ZmQzLCB7IDB4OGIsIDB4OGUsIDB4YmEsIDB4MWQsIDB4 MTgsIDB4ZjEsIDB4NDAsIDB4NzEgfSB9DQorDQorZXh0ZXJuIEVGSV9HVUlEIGdTaW1wbGVUZXh0 SW5wdXRFeEJCVGVzdEZ1bmN0aW9uQXNzZXJ0aW9uR3VpZDAxMTsNCmRpZmYgLS1naXQgYS91ZWZp LXNjdC9TY3RQa2cvVGVzdENhc2UvVUVGSS9FRkkvUHJvdG9jb2wvU2ltcGxlVGV4dElucHV0RXgv QmxhY2tCb3hUZXN0L1NpbXBsZVRleHRJbnB1dEV4QkJUZXN0RnVuY3Rpb24uYyBiL3VlZmktc2N0 L1NjdFBrZy9UZXN0Q2FzZS9VRUZJL0VGSS9Qcm90b2NvbC9TaW1wbGVUZXh0SW5wdXRFeC9CbGFj a0JveFRlc3QvU2ltcGxlVGV4dElucHV0RXhCQlRlc3RGdW5jdGlvbi5jDQppbmRleCAxNTNhZGUw My4uNDhmOTEwMDIgMTAwNjQ0DQotLS0gYS91ZWZpLXNjdC9TY3RQa2cvVGVzdENhc2UvVUVGSS9F RkkvUHJvdG9jb2wvU2ltcGxlVGV4dElucHV0RXgvQmxhY2tCb3hUZXN0L1NpbXBsZVRleHRJbnB1 dEV4QkJUZXN0RnVuY3Rpb24uYw0KKysrIGIvdWVmaS1zY3QvU2N0UGtnL1Rlc3RDYXNlL1VFRkkv RUZJL1Byb3RvY29sL1NpbXBsZVRleHRJbnB1dEV4L0JsYWNrQm94VGVzdC9TaW1wbGVUZXh0SW5w dXRFeEJCVGVzdEZ1bmN0aW9uLmMNCkBAIC00NTYsNiArNDU2LDc4IEBAIEJCVGVzdFVucmVnaXN0 ZXJLZXlOb3RpZnlGdW5jdGlvbk1hbnVhbFRlc3QgKA0KICB9DQogICAgK0VGSV9TVEFUVVMNCitC QlRlc3RSZWFkS2V5U3Ryb2tlRXhGdW5jdGlvbkF1dG9UZXN0ICgNCisgIElOIEVGSV9CQl9URVNU X1BST1RPQ09MICAgICAgICpUaGlzLA0KKyAgSU4gVk9JRCAgICAgICAgICAgICAgICAgICAgICAg KkNsaWVudEludGVyZmFjZSwNCisgIElOIEVGSV9URVNUX0xFVkVMICAgICAgICAgICAgIFRlc3RM ZXZlbCwNCisgIElOIEVGSV9IQU5ETEUgICAgICAgICAgICAgICAgIFN1cHBvcnRIYW5kbGUNCisg ICkNCit7DQorICBFRklfU1RBTkRBUkRfVEVTVF9MSUJSQVJZX1BST1RPQ09MICAgICpTdGFuZGFy ZExpYjsNCisgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzOw0K KyAgRUZJX1NJTVBMRV9URVhUX0lOUFVUX0VYX1BST1RPQ09MICAgICAqU2ltcGxlVGV4dElucHV0 RXg7DQorDQorICBFRklfREVWSUNFX1BBVEhfUFJPVE9DT0wgICAgICAgICAgICAgKkRldmljZVBh dGg7DQorICBDSEFSMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKkRldmljZVBhdGhT dHI7DQorDQorICAvLw0KKyAgLy8gaW5pdA0KKyAgLy8NCisgIFNpbXBsZVRleHRJbnB1dEV4ID0g KEVGSV9TSU1QTEVfVEVYVF9JTlBVVF9FWF9QUk9UT0NPTCopQ2xpZW50SW50ZXJmYWNlOw0KKw0K KyAgLy8NCisgIC8vIEdldCB0aGUgU3RhbmRhcmQgTGlicmFyeSBJbnRlcmZhY2UNCisgIC8vDQor ICBTdGF0dXMgPSBndEJTLT5IYW5kbGVQcm90b2NvbCAoDQorICAgICAgICAgICAgICAgICAgIFN1 cHBvcnRIYW5kbGUsDQorICAgICAgICAgICAgICAgICAgICZnRWZpU3RhbmRhcmRUZXN0TGlicmFy eUd1aWQsDQorICAgICAgICAgICAgICAgICAgIChWT0lEICoqKSAmU3RhbmRhcmRMaWINCisgICAg ICAgICAgICAgICAgICAgKTsNCisgIGlmIChFRklfRVJST1IoU3RhdHVzKSkgew0KKyAgICByZXR1 cm4gU3RhdHVzOw0KKyAgfQ0KKw0KKyAgLy8NCisgIC8vIEdldCBEZXZpY2UgUGF0aCBvZiBjdXJy ZW50IFNpbXBsZV9UZXh0X0lucHV0X0V4X1Byb3RvY29sDQorICAvLyBBbmQgb3V0IHB1dCBkZXZp Y2UgcGF0aCBvciBkZXZpY2UgbmFtZQ0KKyAgLy8NCisgIFN0YXR1cyA9IExvY2F0ZURldmljZVBh dGhGcm9tU2ltcGxlVGV4dElucHV0RXggKFNpbXBsZVRleHRJbnB1dEV4LCAmRGV2aWNlUGF0aCwg U3RhbmRhcmRMaWIpOw0KKyAgaWYgKFN0YXR1cyA9PSBFRklfU1VDQ0VTUykgew0KKyAgICBEZXZp Y2VQYXRoU3RyID0gU2N0RGV2aWNlUGF0aFRvU3RyIChEZXZpY2VQYXRoKTsNCisgICAgaWYgKERl dmljZVBhdGhTdHIgIT0gTlVMTCkgew0KKyAgICAgIFN0YW5kYXJkTGliLT5SZWNvcmRNZXNzYWdl ICgNCisgICAgICAgICAgICAgICAgICAgICBTdGFuZGFyZExpYiwNCisgICAgICAgICAgICAgICAg ICAgICBFRklfVkVSQk9TRV9MRVZFTF9ERUZBVUxULA0KKyAgICAgICAgICAgICAgICAgICAgIEwi XHJcbkN1cnJlbnQgRGV2aWNlOiAlcyIsDQorICAgICAgICAgICAgICAgICAgICAgRGV2aWNlUGF0 aFN0cg0KKyAgICAgICAgICAgICAgICAgICAgICk7DQorICAgICAgU3RhdHVzID0gZ3RCUy0+RnJl ZVBvb2wgKERldmljZVBhdGhTdHIpOw0KKyAgICAgIGlmIChFRklfRVJST1IoU3RhdHVzKSkNCisg ICAgICAgIHJldHVybiBTdGF0dXM7DQorICAgICAgRGV2aWNlUGF0aFN0cj1OVUxMOw0KKyAgICB9 DQorICB9IGVsc2Ugew0KKyAgICAvLw0KKyAgICAvLyBDb25zb2xlIFNwbGl0dGVyL1N0ZEVycg0K KyAgICAvLw0KKyAgICBTdGFuZGFyZExpYi0+UmVjb3JkTWVzc2FnZSAoDQorICAgICAgICAgICAg ICAgICAgIFN0YW5kYXJkTGliLA0KKyAgICAgICAgICAgICAgICAgICBFRklfVkVSQk9TRV9MRVZF TF9ERUZBVUxULA0KKyAgICAgICAgICAgICAgICAgICBMIlxyXG5DdXJyZW50IERldmljZTogQ29u c29sZVNwbGl0dGVyL1R4dEluIg0KKyAgICAgICAgICAgICAgICAgICApOw0KKyAgfQ0KKw0KKyAg Ly8NCisgIC8vDQorICAvLw0KKyAgQkJUZXN0UmVhZEtleVN0cm9rZUV4RnVuY3Rpb25BdXRvVGVz dENoZWNrcG9pbnQxICggU3RhbmRhcmRMaWIsIFNpbXBsZVRleHRJbnB1dEV4ICk7DQorDQorICBy ZXR1cm4gRUZJX1NVQ0NFU1M7DQorfQ0KKw0KKw0KKw0KICAvLw0KICAvL0NoZWNrIFBvaW50cw0K ICAvLw0KQEAgLTEwNjEsMyArMTEzMywxNDEgQEAgQkJUZXN0VW5yZWdpc3RlcktleU5vdGlmeUZ1 bmN0aW9uTWFudWFsVGVzdENoZWNrcG9pbnQxICgNCiAgICAgIHJldHVybiBFRklfU1VDQ0VTUzsN CiAgfQ0KKw0KK0VGSV9TVEFUVVMNCitCQlRlc3RSZWFkS2V5U3Ryb2tlRXhGdW5jdGlvbkF1dG9U ZXN0Q2hlY2twb2ludDEgKA0KKyAgSU4gRUZJX1NUQU5EQVJEX1RFU1RfTElCUkFSWV9QUk9UT0NP TCAgICAgICAgICpTdGFuZGFyZExpYiwNCisgIElOIEVGSV9TSU1QTEVfVEVYVF9JTlBVVF9FWF9Q Uk9UT0NPTCAgICAgICAgICAqU2ltcGxlVGV4dElucHV0RXgNCisgICkNCit7DQorICBFRklfU1RB VFVTICAgICAgICAgICAgU3RhdHVzOw0KKyAgRUZJX1RFU1RfQVNTRVJUSU9OICAgIEFzc2VydGlv blR5cGU7DQorICBFRklfS0VZX0RBVEEgICAgICAgICAgS2V5Ow0KKyAgVUlOVDggICAgICAgICAg ICAgICAgIEluZGV4Ow0KKw0KKyAgRUZJX0tFWV9UT0dHTEVfU1RBVEUgIFN0YXRlID0gRUZJX1RP R0dMRV9TVEFURV9WQUxJRCB8IEVGSV9LRVlfU1RBVEVfRVhQT1NFRDsNCisNCisgIEVGSV9LRVlf VE9HR0xFX1NUQVRFICBWYWxpZFN0YXRlWzddID0gew0KTWFnaWMgTnVtYmVyIDcNCg0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgRUZJX1RPR0dMRV9TVEFURV9WQUxJRCB8IEVGSV9LRVlfU1RB VEVfRVhQT1NFRCB8IEVGSV9TQ1JPTExfTE9DS19BQ1RJVkUsDQorICAgICAgICAgICAgICAgICAg ICAgICAgICBFRklfVE9HR0xFX1NUQVRFX1ZBTElEIHwgRUZJX0tFWV9TVEFURV9FWFBPU0VEIHwg RUZJX05VTV9MT0NLX0FDVElWRSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9UT0dH TEVfU1RBVEVfVkFMSUQgfCBFRklfS0VZX1NUQVRFX0VYUE9TRUQgfCBFRklfQ0FQU19MT0NLX0FD VElWRSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9UT0dHTEVfU1RBVEVfVkFMSUQg fCBFRklfS0VZX1NUQVRFX0VYUE9TRUQgfCBFRklfU0NST0xMX0xPQ0tfQUNUSVZFIHwgRUZJX05V TV9MT0NLX0FDVElWRSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9UT0dHTEVfU1RB VEVfVkFMSUQgfCBFRklfS0VZX1NUQVRFX0VYUE9TRUQgfCBFRklfU0NST0xMX0xPQ0tfQUNUSVZF IHwgRUZJX0NBUFNfTE9DS19BQ1RJVkUsDQorICAgICAgICAgICAgICAgICAgICAgICAgICBFRklf VE9HR0xFX1NUQVRFX1ZBTElEIHwgRUZJX0tFWV9TVEFURV9FWFBPU0VEIHwgRUZJX05VTV9MT0NL X0FDVElWRSB8IEVGSV9DQVBTX0xPQ0tfQUNUSVZFLA0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgRUZJX1RPR0dMRV9TVEFURV9WQUxJRCB8IEVGSV9LRVlfU1RBVEVfRVhQT1NFRCB8IEVGSV9T Q1JPTExfTE9DS19BQ1RJVkUgfEVGSV9OVU1fTE9DS19BQ1RJVkUgfCBFRklfQ0FQU19MT0NLX0FD VElWRSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgIH07DQorDQorICAvLw0KKyAgLy9SZXNl dCB0aGUgY29uc29sZQ0KKyAgLy8NCisgIFN0YXR1cyA9IFNpbXBsZVRleHRJbnB1dEV4LT5SZWFk S2V5U3Ryb2tlRXggKA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW1wbGVU ZXh0SW5wdXRFeCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJktleQ0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KKyAgaWYgKEVGSV9FUlJPUihTdGF0 dXMpICYmIFN0YXR1cyAhPSBFRklfTk9UX1JFQURZKSB7DQorICAgICAgIHJldHVybiBTdGF0dXM7 DQorICB9DQorDQorICBpZiAoKEtleS5LZXlTdGF0ZS5LZXlUb2dnbGVTdGF0ZSAmIEVGSV9UT0dH TEVfU1RBVEVfVkFMSUQpID09IDApIHsNCisgICAgICAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsN CisgIH0NCisNCisgIC8vDQorICAvL1NldCB0aGUgS0VZX1NUQVRFX0VYUE9TRUQgdG8gY2hlY2sg dGhlIGltY29tcGxldGUga2V5c3Ryb2tlIHN1cHBvcnQNCisgIC8vDQorICBTdGF0dXMgPSBTaW1w bGVUZXh0SW5wdXRFeC0+U2V0U3RhdGUgKA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU2ltcGxlVGV4dElucHV0RXgsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm U3RhdGUNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQorDQorICBpZiAoU3Rh dHVzID09IEVGSV9VTlNVUFBPUlRFRCB8fCBTdGF0dXMgPT0gRUZJX0RFVklDRV9FUlJPUikgew0K KyAgICBTdGFuZGFyZExpYi0+UmVjb3JkQXNzZXJ0aW9uICgNCisgICAgICAgICAgICAgICAgICAg U3RhbmRhcmRMaWIsDQorICAgICAgICAgICAgICAgICAgIEVGSV9URVNUX0FTU0VSVElPTl9XQVJO SU5HLA0KKyAgICAgICAgICAgICAgICAgICBnVGVzdEdlbmVyaWNGYWlsdXJlR3VpZCwNCisgICAg ICAgICAgICAgICAgICAgTCJFRklfU0lNUExFX1RFWFRfSU5QVVRfRVhfUFJPVE9DT0wuU2V0U3Rh dGUgLSBTZXRTdGF0ZSgpIGRvZXNuJ3QgcmV0dXJuIEVGSV9TVUNDRVNTIHdpdGggRUZJX0tFWV9T VEFURV9FWFBPU0VEIiwNCisgICAgICAgICAgICAgICAgICAgTCIlYTolZCwgU3RhdHVzID0gJXJc biIsDQorICAgICAgICAgICAgICAgICAgIF9fRklMRV9fLA0KKyAgICAgICAgICAgICAgICAgICAo VUlOVE4pX19MSU5FX18sDQorICAgICAgICAgICAgICAgICAgIFN0YXR1cw0KKyAgICAgICAgICAg ICAgICAgICApOw0KKyAgICByZXR1cm4gU3RhdHVzOw0KKyAgfQ0KKw0KKyAgZm9yIChJbmRleD0w OyBJbmRleDw3OyBJbmRleCsrKSB7DQpNYWdpYyBOdW1iZXIgNw0KDQorDQorICAgIC8vDQorICAg IC8vIFNldCB0aGUgdmFsaWQgS2V5VG9nZ2xlU3RhdGUNCisgICAgLy8NCisgICAgU3RhdHVzID0g U2ltcGxlVGV4dElucHV0RXgtPlNldFN0YXRlICgNCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU2ltcGxlVGV4dElucHV0RXgsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFZhbGlkU3RhdGUgKyBJbmRleA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICApOw0KKw0KKyAgICBpZiAoU3RhdHVzICE9IEVGSV9TVUNDRVNTKSB7DQorICAgICAgU3Rh bmRhcmRMaWItPlJlY29yZEFzc2VydGlvbiAoDQorICAgICAgICAgICAgICAgICAgICAgU3RhbmRh cmRMaWIsDQorICAgICAgICAgICAgICAgICAgICAgRUZJX1RFU1RfQVNTRVJUSU9OX0ZBSUxFRCwN CisgICAgICAgICAgICAgICAgICAgICBnVGVzdEdlbmVyaWNGYWlsdXJlR3VpZCwNCisgICAgICAg ICAgICAgICAgICAgICBMIkVGSV9TSU1QTEVfVEVYVF9JTlBVVF9FWF9QUk9UT0NPTC5TZXRTdGF0 ZSAtIFNldFN0YXRlKCkgZG9lc24ndCByZXR1cm4gRUZJX1NVQ0NFU1Mgd2l0aCB0aGUgdmFsaWQg S2V5VG9nZ2xlU3RhdGUiLA0KKyAgICAgICAgICAgICAgICAgICAgIEwiJWE6JWQsIFN0YXR1cyA9 ICVyLCBLZXlUb2dnbGVTdGF0ZSA9ICV4XG4iLA0KKyAgICAgICAgICAgICAgICAgICAgIF9fRklM RV9fLA0KKyAgICAgICAgICAgICAgICAgICAgIChVSU5UTilfX0xJTkVfXywNCisgICAgICAgICAg ICAgICAgICAgICBTdGF0dXMsDQorICAgICAgICAgICAgICAgICAgICAgVmFsaWRTdGF0ZVtJbmRl eF0NCisgICAgICAgICAgICAgICAgICAgICApOw0KKyAgICAgIGNvbnRpbnVlOw0KKyAgICB9DQor DQorICAgIC8vDQorICAgIC8vIEdldCB0aGUgS2V5VG9nZ2xlU3RhdGUNCisgICAgLy8NCisgICAg U3RhdHVzID0gU2ltcGxlVGV4dElucHV0RXgtPlJlYWRLZXlTdHJva2VFeCAoDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNpbXBsZVRleHRJbnB1dEV4LA0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmS2V5DQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICk7DQorDQorICAgIGlmIChTdGF0dXMgIT0gRUZJX05PVF9SRUFEWSkgew0KKyAgICAg IEFzc2VydGlvblR5cGUgPSBFRklfVEVTVF9BU1NFUlRJT05fRkFJTEVEOw0KKw0KKyAgICAgIFN0 YW5kYXJkTGliLT5SZWNvcmRBc3NlcnRpb24gKA0KKyAgICAgICAgICAgICAgICAgICAgIFN0YW5k YXJkTGliLA0KKyAgICAgICAgICAgICAgICAgICAgIEFzc2VydGlvblR5cGUsDQorICAgICAgICAg ICAgICAgICAgICAgZ1NpbXBsZVRleHRJbnB1dEV4QkJUZXN0RnVuY3Rpb25Bc3NlcnRpb25HdWlk MDEwLA0KKyAgICAgICAgICAgICAgICAgICAgIEwiRUZJX1NJTVBMRV9URVhUX0lOUFVUX0VYX1BS T1RPQ09MLlJlYWRLZXlTdHJva2VFeCAtIFJlYWRLZXlTdHJva2VFeCgpIGRvZXNuJ3QgcmV0dXJu IEVGSV9OT1RfUkVBRFkgd2hlbiB0aGVyZSBpcyBubyBLZXkgZGF0YSBhbmQgRUZJX0tFWV9TVEFU RV9FWFBPU0VEIGlzIGVuYWJsZWQiLA0KKyAgICAgICAgICAgICAgICAgICAgIEwiJWE6JWQsIFN0 YXR1cyA9ICVyLCBJbmRleCA9ICVkLCBLZXlUb2dnbGVTdGF0ZSA9ICV4XG4iLA0KKyAgICAgICAg ICAgICAgICAgICAgIF9fRklMRV9fLA0KKyAgICAgICAgICAgICAgICAgICAgIChVSU5UTilfX0xJ TkVfXywNCisgICAgICAgICAgICAgICAgICAgICBTdGF0dXMsDQorICAgICAgICAgICAgICAgICAg ICAgSW5kZXgsDQorICAgICAgICAgICAgICAgICAgICAgVmFsaWRTdGF0ZVtJbmRleF0NCisgICAg ICAgICAgICAgICAgICAgICApOw0KKw0KKyAgICB9IGVsc2Ugew0KKyAgICAgIGlmIChLZXkuS2V5 U3RhdGUuS2V5VG9nZ2xlU3RhdGUgPT0gVmFsaWRTdGF0ZVtJbmRleF0gJiYNCisgICAgICAgICAg ICAgKEtleS5LZXlTdGF0ZS5LZXlTaGlmdFN0YXRlID09IDAgfHwgS2V5LktleVN0YXRlLktleVNo aWZ0U3RhdGUgPT0gRUZJX1NISUZUX1NUQVRFX1ZBTElEKSAmJg0KKyAgICAgICAgICAgS2V5Lktl eS5TY2FuQ29kZSA9PSAwICYmIEtleS5LZXkuVW5pY29kZUNoYXIgPT0gMCkNCisgICAgICAgIEFz c2VydGlvblR5cGUgPSBFRklfVEVTVF9BU1NFUlRJT05fUEFTU0VEOw0KKyAgICAgIGVsc2UNCisg ICAgICAgICAgIEFzc2VydGlvblR5cGUgPSBFRklfVEVTVF9BU1NFUlRJT05fRkFJTEVEOw0KKw0K Kw0KKyAgICAgIFN0YW5kYXJkTGliLT5SZWNvcmRBc3NlcnRpb24gKA0KKyAgICAgICAgICAgICAg ICAgICAgIFN0YW5kYXJkTGliLA0KKyAgICAgICAgICAgICAgICAgICAgIEFzc2VydGlvblR5cGUs DQorICAgICAgICAgICAgICAgICAgICAgZ1NpbXBsZVRleHRJbnB1dEV4QkJUZXN0RnVuY3Rpb25B c3NlcnRpb25HdWlkMDExLA0KKyAgICAgICAgICAgICAgICAgICAgIEwiRUZJX1NJTVBMRV9URVhU X0lOUFVUX0VYX1BST1RPQ09MLlJlYWRLZXlTdHJva2VFeCAtIFJlYWRLZXlTdHJva2VFeCgpIHNo b3VsZCBnZXQgdGhlIFZhbGlkU3RhdGUgd2l0aCBFRklfTk9UX1JFQURZIGFuZCBvdGhlciBmaWVs ZCBpcyB6ZXJvIiwNCisgICAgICAgICAgICAgICAgICAgICBMIiVhOiVkLCBTdGF0dXMgPSAlciwg SW5kZXggPSAlZCwgS2V5VG9nZ2xlU3RhdGUgPSAleCwgZXhwZWN0IFN0YXRlID0gJXhcbiIsDQor ICAgICAgICAgICAgICAgICAgICAgX19GSUxFX18sDQorICAgICAgICAgICAgICAgICAgICAgKFVJ TlROKV9fTElORV9fLA0KKyAgICAgICAgICAgICAgICAgICAgIFN0YXR1cywNCisgICAgICAgICAg ICAgICAgICAgICBJbmRleCwNCisgICAgICAgICAgICAgICAgICAgICBLZXkuS2V5U3RhdGUuS2V5 VG9nZ2xlU3RhdGUsDQorICAgICAgICAgICAgICAgICAgICAgVmFsaWRTdGF0ZVtJbmRleF0NCisg ICAgICAgICAgICAgICAgICAgICApOw0KKw0KKyAgICB9DQorICB9DQorDQorICByZXR1cm4gRUZJ X1NVQ0NFU1M7DQorfQ0KZGlmZiAtLWdpdCBhL3VlZmktc2N0L1NjdFBrZy9UZXN0Q2FzZS9VRUZJ L0VGSS9Qcm90b2NvbC9TaW1wbGVUZXh0SW5wdXRFeC9CbGFja0JveFRlc3QvU2ltcGxlVGV4dElu cHV0RXhCQlRlc3RNYWluLmMgYi91ZWZpLXNjdC9TY3RQa2cvVGVzdENhc2UvVUVGSS9FRkkvUHJv dG9jb2wvU2ltcGxlVGV4dElucHV0RXgvQmxhY2tCb3hUZXN0L1NpbXBsZVRleHRJbnB1dEV4QkJU ZXN0TWFpbi5jDQppbmRleCBmZGJjOTBmZS4uNWI3MWI2YTkgMTAwNjQ0DQotLS0gYS91ZWZpLXNj dC9TY3RQa2cvVGVzdENhc2UvVUVGSS9FRkkvUHJvdG9jb2wvU2ltcGxlVGV4dElucHV0RXgvQmxh Y2tCb3hUZXN0L1NpbXBsZVRleHRJbnB1dEV4QkJUZXN0TWFpbi5jDQorKysgYi91ZWZpLXNjdC9T Y3RQa2cvVGVzdENhc2UvVUVGSS9FRkkvUHJvdG9jb2wvU2ltcGxlVGV4dElucHV0RXgvQmxhY2tC b3hUZXN0L1NpbXBsZVRleHRJbnB1dEV4QkJUZXN0TWFpbi5jDQpAQCAtMSw3ICsxLDcgQEANCiAg LyoqIEBmaWxlDQogICAgICBDb3B5cmlnaHQgMjAwNiAtIDIwMTcgVW5pZmllZCBFRkksIEluYy48 QlI+DQotICBDb3B5cmlnaHQgKGMpIDIwMTAgLSAyMDE3LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs IHJpZ2h0cyByZXNlcnZlZC48QlI+DQorICBDb3B5cmlnaHQgKGMpIDIwMTAgLSAyMDE4LCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQogICAgICBUaGlzIHByb2dy YW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQogICAgYXJlIGxpY2Vuc2VkIGFuZCBt YWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBM aWNlbnNlDQpAQCAtMTA1LDYgKzEwNSwxNSBAQCBFRklfQkJfVEVTVF9FTlRSWV9GSUVMRCBnQkJU ZXN0RW50cnlGaWVsZFtdID0gew0KICAgICAgQkJUZXN0VW5yZWdpc3RlcktleU5vdGlmeUZ1bmN0 aW9uTWFudWFsVGVzdA0KICAgIH0sDQogICNlbmRpZg0KKyAgew0KKyAgICBFRklfU0lNUExFX1RF WFRfSU5QVVRfRVhfUFJPVE9DT0xfVEVTVF9FTlRSWV9HVUlEMDEwNywNCisgICAgTCJSZWFkS2V5 U3Ryb2tlRXhGdW5jdGlvbkF1dG8iLA0KKyAgICBMIkZ1bmN0aW9uIEF1dG8gdGVzdCBmb3IgU2lt cGxlIFRleHQgSW5wdXQgRXggUHJvdG9jb2wgUmVhZEtleVN0cm9rZUV4KCkuIiwNCisgICAgRUZJ X1RFU1RfTEVWRUxfTUlOSU1BTCwNCisgICAgZ1N1cHBvcnRQcm90b2NvbEd1aWQsDQorICAgIEVG SV9URVNUX0NBU0VfQVVUTywNCisgICAgQkJUZXN0UmVhZEtleVN0cm9rZUV4RnVuY3Rpb25BdXRv VGVzdA0KKyAgfSwNCiAgICB7DQogICAgICBFRklfU0lNUExFX1RFWFRfSU5QVVRfRVhfUFJPVE9D T0xfVEVTVF9FTlRSWV9HVUlEMDIwMSwNCiAgICAgIEwiUmVhZEtleVN0cm9rZUV4Q29uZm9ybWFu Y2UiLA0KQEAgLTE1MSw3ICsxNjAsNiBAQCBCT09MRUFOICAgICBCZWVuRXhlY3V0ZWQ7DQogIC8v DQogICAgRUZJX1NUQVRVUw0KLUVGSUFQSQ0KICBJbml0aWFsaXplU2ltcGxlVGV4dElucHV0RXhC QlRlc3QgKA0KICAgIElOIEVGSV9IQU5ETEUgICAgICAgICAgICAgICAgICAgSW1hZ2VIYW5kbGUs DQogICAgSU4gRUZJX1NZU1RFTV9UQUJMRSAgICAgICAgICAgICAqU3lzdGVtVGFibGUNCkBAIC0x NzksNyArMTg3LDYgQEAgSW5pdGlhbGl6ZVNpbXBsZVRleHRJbnB1dEV4QkJUZXN0ICgNCiAgICAg IEVGSV9TVEFUVVMNCi1FRklBUEkNCiAgVW5sb2FkU2ltcGxlVGV4dElucHV0RXhCQlRlc3QgKA0K ICAgIElOIEVGSV9IQU5ETEUgICAgICAgICAgICAgICAgICAgSW1hZ2VIYW5kbGUNCiAgICApDQpk aWZmIC0tZ2l0IGEvdWVmaS1zY3QvU2N0UGtnL1Rlc3RDYXNlL1VFRkkvRUZJL1Byb3RvY29sL1Np bXBsZVRleHRJbnB1dEV4L0JsYWNrQm94VGVzdC9TaW1wbGVUZXh0SW5wdXRFeEJCVGVzdE1haW4u aCBiL3VlZmktc2N0L1NjdFBrZy9UZXN0Q2FzZS9VRUZJL0VGSS9Qcm90b2NvbC9TaW1wbGVUZXh0 SW5wdXRFeC9CbGFja0JveFRlc3QvU2ltcGxlVGV4dElucHV0RXhCQlRlc3RNYWluLmgNCmluZGV4 IGNiMjE2MGIzLi44Njc2NjA2OCAxMDA2NDQNCi0tLSBhL3VlZmktc2N0L1NjdFBrZy9UZXN0Q2Fz ZS9VRUZJL0VGSS9Qcm90b2NvbC9TaW1wbGVUZXh0SW5wdXRFeC9CbGFja0JveFRlc3QvU2ltcGxl VGV4dElucHV0RXhCQlRlc3RNYWluLmgNCisrKyBiL3VlZmktc2N0L1NjdFBrZy9UZXN0Q2FzZS9V RUZJL0VGSS9Qcm90b2NvbC9TaW1wbGVUZXh0SW5wdXRFeC9CbGFja0JveFRlc3QvU2ltcGxlVGV4 dElucHV0RXhCQlRlc3RNYWluLmgNCkBAIC0xLDcgKzEsNyBAQA0KICAvKiogQGZpbGUNCiAgICAg IENvcHlyaWdodCAyMDA2IC0gMjAxNyBVbmlmaWVkIEVGSSwgSW5jLjxCUj4NCi0gIENvcHlyaWdo dCAoYykgMjAxMCAtIDIwMTcsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4NCisgIENvcHlyaWdodCAoYykgMjAxMCAtIDIwMTgsIEludGVsIENvcnBvcmF0aW9uLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCiAgICAgIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29t cGFueWluZyBtYXRlcmlhbHMNCiAgICBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVu ZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEIExpY2Vuc2UNCkBAIC01Nyw2 ICs1Nyw4IEBAIEFic3RyYWN0Og0KICAjZGVmaW5lIEVGSV9TSU1QTEVfVEVYVF9JTlBVVF9FWF9Q Uk9UT0NPTF9URVNUX0VOVFJZX0dVSUQwMTA2IFwNCiAgeyAweGRiYzZlNjU5LCAweGIwZTAsIDB4 NDQ3MSwgeyAweDk0LCAweDEzLCAweDQ1LCAweDFiLCAweGRjLCAweGUyLCAweGFkLCAweGM3IH0g fQ0KICArI2RlZmluZSBFRklfU0lNUExFX1RFWFRfSU5QVVRfRVhfUFJPVE9DT0xfVEVTVF9FTlRS WV9HVUlEMDEwNyBcDQoreyAweDJjM2NhMjgyLCAweDU2NDQsIDB4NDFiNiwgeyAweGFmLCAweGM5 LCAweDQzLCAweDg3LCAweGYyLCAweDUzLCAweDg5LCAweGJkIH0gfQ0KICAvLw0KICAvLyBFbnRy eSBHVUlEcyBmb3IgQ29uZiBUZXN0DQogIC8vDQpAQCAtODYsNyArODgsNiBAQCB0eXBlZGVmIGVu dW0gew0KICAvLw0KICAvLw0KICBFRklfU1RBVFVTDQotRUZJQVBJDQogIEluaXRpYWxpemVTaW1w bGVUZXh0SW5wdXRFeEJCVGVzdCAoDQogICAgSU4gRUZJX0hBTkRMRSAgICAgICAgICAgICAgICAg ICBJbWFnZUhhbmRsZSwNCiAgICBJTiBFRklfU1lTVEVNX1RBQkxFICAgICAgICAgICAgICpTeXN0 ZW1UYWJsZQ0KQEAgLTk0LDcgKzk1LDYgQEAgSW5pdGlhbGl6ZVNpbXBsZVRleHRJbnB1dEV4QkJU ZXN0ICgNCiAgICAgICAgICBFRklfU1RBVFVTDQotRUZJQVBJDQogIFVubG9hZFNpbXBsZVRleHRJ bnB1dEV4QkJUZXN0ICgNCiAgICBJTiBFRklfSEFORExFICAgICAgICAgICAgICAgICAgIEltYWdl SGFuZGxlDQogICAgKTsNCkBAIC0xNTUsNiArMTU1LDE1IEBAIEJCVGVzdFVucmVnaXN0ZXJLZXlO b3RpZnlGdW5jdGlvbk1hbnVhbFRlc3QgKA0KICAgIElOIEVGSV9URVNUX0xFVkVMICAgICAgICAg ICAgIFRlc3RMZXZlbCwNCiAgICBJTiBFRklfSEFORExFICAgICAgICAgICAgICAgICBTdXBwb3J0 SGFuZGxlDQogICAgKTsNCisNCisNCitFRklfU1RBVFVTDQorQkJUZXN0UmVhZEtleVN0cm9rZUV4 RnVuY3Rpb25BdXRvVGVzdCAoDQorICBJTiBFRklfQkJfVEVTVF9QUk9UT0NPTCAgICAgICAqVGhp cywNCisgIElOIFZPSUQgICAgICAgICAgICAgICAgICAgICAgICpDbGllbnRJbnRlcmZhY2UsDQor ICBJTiBFRklfVEVTVF9MRVZFTCAgICAgICAgICAgICBUZXN0TGV2ZWwsDQorICBJTiBFRklfSEFO RExFICAgICAgICAgICAgICAgICBTdXBwb3J0SGFuZGxlDQorICApOw0KICAgICAgICAgIEVGSV9T VEFUVVMNCkBAIC0yMzgsNiArMjQ3LDEzIEBAIEJCVGVzdFVucmVnaXN0ZXJLZXlOb3RpZnlGdW5j dGlvbk1hbnVhbFRlc3RDaGVja3BvaW50MSAoDQogICAgKTsNCiAgICArRUZJX1NUQVRVUw0KK0JC VGVzdFJlYWRLZXlTdHJva2VFeEZ1bmN0aW9uQXV0b1Rlc3RDaGVja3BvaW50MSAoDQorICBJTiBF RklfU1RBTkRBUkRfVEVTVF9MSUJSQVJZX1BST1RPQ09MICAgICAgICAgKlN0YW5kYXJkTGliLA0K KyAgSU4gRUZJX1NJTVBMRV9URVhUX0lOUFVUX0VYX1BST1RPQ09MICAgICAgICAgICpTaW1wbGVU ZXh0SW5wdXRFeA0KKyAgKTsNCisNCisNCiAgRUZJX1NUQVRVUw0KICBCQlRlc3RSZWFkS2V5U3Ry b2tlRXhDb25mb3JtYW5jZVRlc3RDaGVja3BvaW50MSAoDQogICAgSU4gRUZJX1NUQU5EQVJEX1RF U1RfTElCUkFSWV9QUk9UT0NPTCAgICAgICAgICpTdGFuZGFyZExpYiwNCmRpZmYgLS1naXQgYS91 ZWZpLXNjdC9TY3RQa2cvVGVzdENhc2UvVUVGSS9JSFYvUHJvdG9jb2wvU2ltcGxlVGV4dElucHV0 RXgvQmxhY2tCb3hUZXN0L0d1aWQuYyBiL3VlZmktc2N0L1NjdFBrZy9UZXN0Q2FzZS9VRUZJL0lI Vi9Qcm90b2NvbC9TaW1wbGVUZXh0SW5wdXRFeC9CbGFja0JveFRlc3QvR3VpZC5jDQppbmRleCBi Nzk3NzJjOS4uNjg3NjgxNGMgMTAwNjQ0DQotLS0gYS91ZWZpLXNjdC9TY3RQa2cvVGVzdENhc2Uv VUVGSS9JSFYvUHJvdG9jb2wvU2ltcGxlVGV4dElucHV0RXgvQmxhY2tCb3hUZXN0L0d1aWQuYw0K KysrIGIvdWVmaS1zY3QvU2N0UGtnL1Rlc3RDYXNlL1VFRkkvSUhWL1Byb3RvY29sL1NpbXBsZVRl eHRJbnB1dEV4L0JsYWNrQm94VGVzdC9HdWlkLmMNCkBAIC0xLDcgKzEsNyBAQA0KICAvKiogQGZp bGUNCiAgICAgIENvcHlyaWdodCAyMDA2IC0gMjAxNSBVbmlmaWVkIEVGSSwgSW5jLjxCUj4NCi0g IENvcHlyaWdodCAoYykgMjAxMCAtIDIwMTUsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCisgIENvcHlyaWdodCAoYykgMjAxMCAtIDIwMTgsIEludGVsIENvcnBv cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCiAgICAgIFRoaXMgcHJvZ3JhbSBhbmQg dGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCiAgICBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZh aWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEIExpY2Vuc2UN CkBAIC02MywzICs2Myw4IEBAIEVGSV9HVUlEIGdTaW1wbGVUZXh0SW5wdXRFeEJCVGVzdEZ1bmN0 aW9uQXNzZXJ0aW9uR3VpZDAwNyA9IEVGSV9URVNUX1NJTVBMRVRFWFRJDQogIEVGSV9HVUlEIGdT aW1wbGVUZXh0SW5wdXRFeEJCVGVzdEZ1bmN0aW9uQXNzZXJ0aW9uR3VpZDAwOCA9IEVGSV9URVNU X1NJTVBMRVRFWFRJTlBVVEVYQkJURVNURlVOQ1RJT05fQVNTRVJUSU9OXzAwOF9HVUlEOw0KICAg IEVGSV9HVUlEIGdTaW1wbGVUZXh0SW5wdXRFeEJCVGVzdEZ1bmN0aW9uQXNzZXJ0aW9uR3VpZDAw OSA9IEVGSV9URVNUX1NJTVBMRVRFWFRJTlBVVEVYQkJURVNURlVOQ1RJT05fQVNTRVJUSU9OXzAw OV9HVUlEOw0KKw0KK0VGSV9HVUlEIGdTaW1wbGVUZXh0SW5wdXRFeEJCVGVzdEZ1bmN0aW9uQXNz ZXJ0aW9uR3VpZDAxMCA9IEVGSV9URVNUX1NJTVBMRVRFWFRJTlBVVEVYQkJURVNURlVOQ1RJT05f QVNTRVJUSU9OXzAxMF9HVUlEOw0KKw0KK0VGSV9HVUlEIGdTaW1wbGVUZXh0SW5wdXRFeEJCVGVz dEZ1bmN0aW9uQXNzZXJ0aW9uR3VpZDAxMSA9IEVGSV9URVNUX1NJTVBMRVRFWFRJTlBVVEVYQkJU RVNURlVOQ1RJT05fQVNTRVJUSU9OXzAxMV9HVUlEOw0KKw0KZGlmZiAtLWdpdCBhL3VlZmktc2N0 L1NjdFBrZy9UZXN0Q2FzZS9VRUZJL0lIVi9Qcm90b2NvbC9TaW1wbGVUZXh0SW5wdXRFeC9CbGFj a0JveFRlc3QvR3VpZC5oIGIvdWVmaS1zY3QvU2N0UGtnL1Rlc3RDYXNlL1VFRkkvSUhWL1Byb3Rv Y29sL1NpbXBsZVRleHRJbnB1dEV4L0JsYWNrQm94VGVzdC9HdWlkLmgNCmluZGV4IDZjOTBmY2Ez Li4yYTZiZTQ4YiAxMDA2NDQNCi0tLSBhL3VlZmktc2N0L1NjdFBrZy9UZXN0Q2FzZS9VRUZJL0lI Vi9Qcm90b2NvbC9TaW1wbGVUZXh0SW5wdXRFeC9CbGFja0JveFRlc3QvR3VpZC5oDQorKysgYi91 ZWZpLXNjdC9TY3RQa2cvVGVzdENhc2UvVUVGSS9JSFYvUHJvdG9jb2wvU2ltcGxlVGV4dElucHV0 RXgvQmxhY2tCb3hUZXN0L0d1aWQuaA0KQEAgLTEsNyArMSw3IEBADQogIC8qKiBAZmlsZQ0KICAg ICAgQ29weXJpZ2h0IDIwMDYgLSAyMDEwIFVuaWZpZWQgRUZJLCBJbmMuPEJSPg0KLSAgQ29weXJp Z2h0IChjKSAyMDEwLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQorICBDb3B5cmlnaHQgKGMpIDIwMTAgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQogICAgICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlp bmcgbWF0ZXJpYWxzDQogICAgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0 aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlDQpAQCAtMTE5LDMgKzEx OSwxMyBAQCBleHRlcm4gRUZJX0dVSUQgZ1NpbXBsZVRleHRJbnB1dEV4QkJUZXN0RnVuY3Rpb25B c3NlcnRpb25HdWlkMDA4Ow0KICB7IDB4NTM0MzY5ZjcsIDB4ODM5OSwgMHg0MzUzLCB7IDB4OTQs IDB4YWQsIDB4YzQsIDB4NDgsIDB4ZmEsIDB4ZGEsIDB4ZWIsIDB4ODQgfSB9DQogICAgZXh0ZXJu IEVGSV9HVUlEIGdTaW1wbGVUZXh0SW5wdXRFeEJCVGVzdEZ1bmN0aW9uQXNzZXJ0aW9uR3VpZDAw OTsNCisNCisjZGVmaW5lIEVGSV9URVNUX1NJTVBMRVRFWFRJTlBVVEVYQkJURVNURlVOQ1RJT05f QVNTRVJUSU9OXzAxMF9HVUlEIFwNCit7IDB4Y2Y0ZDU0ZWIsIDB4NjY5NiwgMHg0Nzk0LCB7IDB4 OTEsIDB4NzQsIDB4NTksIDB4ZCwgMHgxYywgMHgyMiwgMHhhOCwgMHg2NyB9IH0NCisNCitleHRl cm4gRUZJX0dVSUQgZ1NpbXBsZVRleHRJbnB1dEV4QkJUZXN0RnVuY3Rpb25Bc3NlcnRpb25HdWlk MDEwOw0KKw0KKyNkZWZpbmUgRUZJX1RFU1RfU0lNUExFVEVYVElOUFVURVhCQlRFU1RGVU5DVElP Tl9BU1NFUlRJT05fMDExX0dVSUQgXA0KK3sgMHhmOGU4Zjg3OSwgMHhhNmQ0LCAweDRmZDMsIHsg MHg4YiwgMHg4ZSwgMHhiYSwgMHgxZCwgMHgxOCwgMHhmMSwgMHg0MCwgMHg3MSB9IH0NCisNCitl eHRlcm4gRUZJX0dVSUQgZ1NpbXBsZVRleHRJbnB1dEV4QkJUZXN0RnVuY3Rpb25Bc3NlcnRpb25H dWlkMDExOw0KZGlmZiAtLWdpdCBhL3VlZmktc2N0L1NjdFBrZy9UZXN0Q2FzZS9VRUZJL0lIVi9Q cm90b2NvbC9TaW1wbGVUZXh0SW5wdXRFeC9CbGFja0JveFRlc3QvU2ltcGxlVGV4dElucHV0RXhC QlRlc3RGdW5jdGlvbi5jIGIvdWVmaS1zY3QvU2N0UGtnL1Rlc3RDYXNlL1VFRkkvSUhWL1Byb3Rv Y29sL1NpbXBsZVRleHRJbnB1dEV4L0JsYWNrQm94VGVzdC9TaW1wbGVUZXh0SW5wdXRFeEJCVGVz dEZ1bmN0aW9uLmMNCmluZGV4IGNlNWE4MGFjLi4wNDk0OWRlOCAxMDA2NDQNCi0tLSBhL3VlZmkt c2N0L1NjdFBrZy9UZXN0Q2FzZS9VRUZJL0lIVi9Qcm90b2NvbC9TaW1wbGVUZXh0SW5wdXRFeC9C bGFja0JveFRlc3QvU2ltcGxlVGV4dElucHV0RXhCQlRlc3RGdW5jdGlvbi5jDQorKysgYi91ZWZp LXNjdC9TY3RQa2cvVGVzdENhc2UvVUVGSS9JSFYvUHJvdG9jb2wvU2ltcGxlVGV4dElucHV0RXgv QmxhY2tCb3hUZXN0L1NpbXBsZVRleHRJbnB1dEV4QkJUZXN0RnVuY3Rpb24uYw0KQEAgLTQ1Niw2 ICs0NTYsNzggQEAgQkJUZXN0VW5yZWdpc3RlcktleU5vdGlmeUZ1bmN0aW9uTWFudWFsVGVzdCAo DQogIH0NCiAgICArRUZJX1NUQVRVUw0KK0JCVGVzdFJlYWRLZXlTdHJva2VFeEZ1bmN0aW9uQXV0 b1Rlc3QgKA0KKyAgSU4gRUZJX0JCX1RFU1RfUFJPVE9DT0wgICAgICAgKlRoaXMsDQorICBJTiBW T0lEICAgICAgICAgICAgICAgICAgICAgICAqQ2xpZW50SW50ZXJmYWNlLA0KKyAgSU4gRUZJX1RF U1RfTEVWRUwgICAgICAgICAgICAgVGVzdExldmVsLA0KKyAgSU4gRUZJX0hBTkRMRSAgICAgICAg ICAgICAgICAgU3VwcG9ydEhhbmRsZQ0KKyAgKQ0KK3sNCisgIEVGSV9TVEFOREFSRF9URVNUX0xJ QlJBUllfUFJPVE9DT0wgICAgKlN0YW5kYXJkTGliOw0KKyAgRUZJX1NUQVRVUyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTdGF0dXM7DQorICBFRklfU0lNUExFX1RFWFRfSU5QVVRfRVhfUFJP VE9DT0wgICAgICpTaW1wbGVUZXh0SW5wdXRFeDsNCisNCisgIEVGSV9ERVZJQ0VfUEFUSF9QUk9U T0NPTCAgICAgICAgICAgICAqRGV2aWNlUGF0aDsNCisgIENIQVIxNiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqRGV2aWNlUGF0aFN0cjsNCisNCisgIC8vDQorICAvLyBpbml0DQorICAv Lw0KKyAgU2ltcGxlVGV4dElucHV0RXggPSAoRUZJX1NJTVBMRV9URVhUX0lOUFVUX0VYX1BST1RP Q09MKilDbGllbnRJbnRlcmZhY2U7DQorDQorICAvLw0KKyAgLy8gR2V0IHRoZSBTdGFuZGFyZCBM aWJyYXJ5IEludGVyZmFjZQ0KKyAgLy8NCisgIFN0YXR1cyA9IGd0QlMtPkhhbmRsZVByb3RvY29s ICgNCisgICAgICAgICAgICAgICAgICAgU3VwcG9ydEhhbmRsZSwNCisgICAgICAgICAgICAgICAg ICAgJmdFZmlTdGFuZGFyZFRlc3RMaWJyYXJ5R3VpZCwNCisgICAgICAgICAgICAgICAgICAgKFZP SUQgKiopICZTdGFuZGFyZExpYg0KKyAgICAgICAgICAgICAgICAgICApOw0KKyAgaWYgKEVGSV9F UlJPUihTdGF0dXMpKSB7DQorICAgIHJldHVybiBTdGF0dXM7DQorICB9DQorDQorICAvLw0KKyAg Ly8gR2V0IERldmljZSBQYXRoIG9mIGN1cnJlbnQgU2ltcGxlX1RleHRfSW5wdXRfRXhfUHJvdG9j b2wNCisgIC8vIEFuZCBvdXQgcHV0IGRldmljZSBwYXRoIG9yIGRldmljZSBuYW1lDQorICAvLw0K KyAgU3RhdHVzID0gTG9jYXRlRGV2aWNlUGF0aEZyb21TaW1wbGVUZXh0SW5wdXRFeCAoU2ltcGxl VGV4dElucHV0RXgsICZEZXZpY2VQYXRoLCBTdGFuZGFyZExpYik7DQorICBpZiAoU3RhdHVzID09 IEVGSV9TVUNDRVNTKSB7DQorICAgIERldmljZVBhdGhTdHIgPSBTY3REZXZpY2VQYXRoVG9TdHIg KERldmljZVBhdGgpOw0KKyAgICBpZiAoRGV2aWNlUGF0aFN0ciAhPSBOVUxMKSB7DQorICAgICAg U3RhbmRhcmRMaWItPlJlY29yZE1lc3NhZ2UgKA0KKyAgICAgICAgICAgICAgICAgICAgIFN0YW5k YXJkTGliLA0KKyAgICAgICAgICAgICAgICAgICAgIEVGSV9WRVJCT1NFX0xFVkVMX0RFRkFVTFQs DQorICAgICAgICAgICAgICAgICAgICAgTCJcclxuQ3VycmVudCBEZXZpY2U6ICVzIiwNCisgICAg ICAgICAgICAgICAgICAgICBEZXZpY2VQYXRoU3RyDQorICAgICAgICAgICAgICAgICAgICAgKTsN CisgICAgICBTdGF0dXMgPSBndEJTLT5GcmVlUG9vbCAoRGV2aWNlUGF0aFN0cik7DQorICAgICAg aWYgKEVGSV9FUlJPUihTdGF0dXMpKQ0KKyAgICAgICAgcmV0dXJuIFN0YXR1czsNCisgICAgICBE ZXZpY2VQYXRoU3RyPU5VTEw7DQorICAgIH0NCisgIH0gZWxzZSB7DQorICAgIC8vDQorICAgIC8v IENvbnNvbGUgU3BsaXR0ZXIvU3RkRXJyDQorICAgIC8vDQorICAgIFN0YW5kYXJkTGliLT5SZWNv cmRNZXNzYWdlICgNCisgICAgICAgICAgICAgICAgICAgU3RhbmRhcmRMaWIsDQorICAgICAgICAg ICAgICAgICAgIEVGSV9WRVJCT1NFX0xFVkVMX0RFRkFVTFQsDQorICAgICAgICAgICAgICAgICAg IEwiXHJcbkN1cnJlbnQgRGV2aWNlOiBDb25zb2xlU3BsaXR0ZXIvVHh0SW4iDQorICAgICAgICAg ICAgICAgICAgICk7DQorICB9DQorDQorICAvLw0KKyAgLy8NCisgIC8vDQorICBCQlRlc3RSZWFk S2V5U3Ryb2tlRXhGdW5jdGlvbkF1dG9UZXN0Q2hlY2twb2ludDEgKCBTdGFuZGFyZExpYiwgU2lt cGxlVGV4dElucHV0RXggKTsNCisNCisgIHJldHVybiBFRklfU1VDQ0VTUzsNCit9DQorDQorDQor DQogIC8vDQogIC8vQ2hlY2sgUG9pbnRzDQogIC8vDQpAQCAtMTA2MCw0ICsxMTMyLDE0MiBAQCBC QlRlc3RVbnJlZ2lzdGVyS2V5Tm90aWZ5RnVuY3Rpb25NYW51YWxUZXN0Q2hlY2twb2ludDEgKA0K ICAgICAgICAgICAgICk7DQogICAgICByZXR1cm4gRUZJX1NVQ0NFU1M7DQotfQ0KXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlDQorfQ0KKw0KK0VGSV9TVEFUVVMNCitCQlRlc3RSZWFkS2V5U3Ry b2tlRXhGdW5jdGlvbkF1dG9UZXN0Q2hlY2twb2ludDEgKA0KKyAgSU4gRUZJX1NUQU5EQVJEX1RF U1RfTElCUkFSWV9QUk9UT0NPTCAgICAgICAgICpTdGFuZGFyZExpYiwNCisgIElOIEVGSV9TSU1Q TEVfVEVYVF9JTlBVVF9FWF9QUk9UT0NPTCAgICAgICAgICAqU2ltcGxlVGV4dElucHV0RXgNCisg ICkNCit7DQorICBFRklfU1RBVFVTICAgICAgICAgICAgU3RhdHVzOw0KKyAgRUZJX1RFU1RfQVNT RVJUSU9OICAgIEFzc2VydGlvblR5cGU7DQorICBFRklfS0VZX0RBVEEgICAgICAgICAgS2V5Ow0K KyAgVUlOVDggICAgICAgICAgICAgICAgIEluZGV4Ow0KKw0KKyAgRUZJX0tFWV9UT0dHTEVfU1RB VEUgIFN0YXRlID0gRUZJX1RPR0dMRV9TVEFURV9WQUxJRCB8IEVGSV9LRVlfU1RBVEVfRVhQT1NF RDsNCisNCisgIEVGSV9LRVlfVE9HR0xFX1NUQVRFICBWYWxpZFN0YXRlWzddID0gew0KTWFnaWMg TnVtYmVyIDcNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX1RPR0dMRV9TVEFURV9W QUxJRCB8IEVGSV9LRVlfU1RBVEVfRVhQT1NFRCB8IEVGSV9TQ1JPTExfTE9DS19BQ1RJVkUsDQor ICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfVE9HR0xFX1NUQVRFX1ZBTElEIHwgRUZJX0tF WV9TVEFURV9FWFBPU0VEIHwgRUZJX05VTV9MT0NLX0FDVElWRSwNCisgICAgICAgICAgICAgICAg ICAgICAgICAgIEVGSV9UT0dHTEVfU1RBVEVfVkFMSUQgfCBFRklfS0VZX1NUQVRFX0VYUE9TRUQg fCBFRklfQ0FQU19MT0NLX0FDVElWRSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9U T0dHTEVfU1RBVEVfVkFMSUQgfCBFRklfS0VZX1NUQVRFX0VYUE9TRUQgfCBFRklfU0NST0xMX0xP Q0tfQUNUSVZFIHwgRUZJX05VTV9MT0NLX0FDVElWRSwNCisgICAgICAgICAgICAgICAgICAgICAg ICAgIEVGSV9UT0dHTEVfU1RBVEVfVkFMSUQgfCBFRklfS0VZX1NUQVRFX0VYUE9TRUQgfCBFRklf U0NST0xMX0xPQ0tfQUNUSVZFIHwgRUZJX0NBUFNfTE9DS19BQ1RJVkUsDQorICAgICAgICAgICAg ICAgICAgICAgICAgICBFRklfVE9HR0xFX1NUQVRFX1ZBTElEIHwgRUZJX0tFWV9TVEFURV9FWFBP U0VEIHwgRUZJX05VTV9MT0NLX0FDVElWRSB8IEVGSV9DQVBTX0xPQ0tfQUNUSVZFLA0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgRUZJX1RPR0dMRV9TVEFURV9WQUxJRCB8IEVGSV9LRVlfU1RB VEVfRVhQT1NFRCB8IEVGSV9TQ1JPTExfTE9DS19BQ1RJVkUgfEVGSV9OVU1fTE9DS19BQ1RJVkUg fCBFRklfQ0FQU19MT0NLX0FDVElWRSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgIH07DQor DQorICAvLw0KKyAgLy9SZXNldCB0aGUgY29uc29sZQ0KKyAgLy8NCisgIFN0YXR1cyA9IFNpbXBs ZVRleHRJbnB1dEV4LT5SZWFkS2V5U3Ryb2tlRXggKA0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTaW1wbGVUZXh0SW5wdXRFeCwNCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJktleQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KKyAg aWYgKEVGSV9FUlJPUihTdGF0dXMpICYmIFN0YXR1cyAhPSBFRklfTk9UX1JFQURZKSB7DQorICAg ICAgIHJldHVybiBTdGF0dXM7DQorICB9DQorDQorICBpZiAoKEtleS5LZXlTdGF0ZS5LZXlUb2dn bGVTdGF0ZSAmIEVGSV9UT0dHTEVfU1RBVEVfVkFMSUQpID09IDApIHsNCisgICAgICAgcmV0dXJu IEVGSV9VTlNVUFBPUlRFRDsNCisgIH0NCisNCisgIC8vDQorICAvL1NldCB0aGUgS0VZX1NUQVRF X0VYUE9TRUQgdG8gY2hlY2sgdGhlIGltY29tcGxldGUga2V5c3Ryb2tlIHN1cHBvcnQNCisgIC8v DQorICBTdGF0dXMgPSBTaW1wbGVUZXh0SW5wdXRFeC0+U2V0U3RhdGUgKA0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU2ltcGxlVGV4dElucHV0RXgsDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmU3RhdGUNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICk7DQorDQorICBpZiAoU3RhdHVzID09IEVGSV9VTlNVUFBPUlRFRCB8fCBTdGF0dXMgPT0gRUZJ X0RFVklDRV9FUlJPUikgew0KKyAgICBTdGFuZGFyZExpYi0+UmVjb3JkQXNzZXJ0aW9uICgNCisg ICAgICAgICAgICAgICAgICAgU3RhbmRhcmRMaWIsDQorICAgICAgICAgICAgICAgICAgIEVGSV9U RVNUX0FTU0VSVElPTl9XQVJOSU5HLA0KKyAgICAgICAgICAgICAgICAgICBnVGVzdEdlbmVyaWNG YWlsdXJlR3VpZCwNCisgICAgICAgICAgICAgICAgICAgTCJFRklfU0lNUExFX1RFWFRfSU5QVVRf RVhfUFJPVE9DT0wuU2V0U3RhdGUgLSBTZXRTdGF0ZSgpIGRvZXNuJ3QgcmV0dXJuIEVGSV9TVUND RVNTIHdpdGggRUZJX0tFWV9TVEFURV9FWFBPU0VEIiwNCisgICAgICAgICAgICAgICAgICAgTCIl YTolZCwgU3RhdHVzID0gJXJcbiIsDQorICAgICAgICAgICAgICAgICAgIF9fRklMRV9fLA0KKyAg ICAgICAgICAgICAgICAgICAoVUlOVE4pX19MSU5FX18sDQorICAgICAgICAgICAgICAgICAgIFN0 YXR1cw0KKyAgICAgICAgICAgICAgICAgICApOw0KKyAgICByZXR1cm4gU3RhdHVzOw0KKyAgfQ0K Kw0KKyAgZm9yIChJbmRleD0wOyBJbmRleDw3OyBJbmRleCsrKSB7DQpNYWdpYyBOdW1iZXIgNw0K DQorDQorICAgIC8vDQorICAgIC8vIFNldCB0aGUgdmFsaWQgS2V5VG9nZ2xlU3RhdGUNCisgICAg Ly8NCisgICAgU3RhdHVzID0gU2ltcGxlVGV4dElucHV0RXgtPlNldFN0YXRlICgNCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU2ltcGxlVGV4dElucHV0RXgsDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkU3RhdGUgKyBJbmRleA0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICApOw0KKw0KKyAgICBpZiAoU3RhdHVzICE9IEVGSV9TVUND RVNTKSB7DQorICAgICAgU3RhbmRhcmRMaWItPlJlY29yZEFzc2VydGlvbiAoDQorICAgICAgICAg ICAgICAgICAgICAgU3RhbmRhcmRMaWIsDQorICAgICAgICAgICAgICAgICAgICAgRUZJX1RFU1Rf QVNTRVJUSU9OX0ZBSUxFRCwNCisgICAgICAgICAgICAgICAgICAgICBnVGVzdEdlbmVyaWNGYWls dXJlR3VpZCwNCisgICAgICAgICAgICAgICAgICAgICBMIkVGSV9TSU1QTEVfVEVYVF9JTlBVVF9F WF9QUk9UT0NPTC5TZXRTdGF0ZSAtIFNldFN0YXRlKCkgZG9lc24ndCByZXR1cm4gRUZJX1NVQ0NF U1Mgd2l0aCB0aGUgdmFsaWQgS2V5VG9nZ2xlU3RhdGUiLA0KKyAgICAgICAgICAgICAgICAgICAg IEwiJWE6JWQsIFN0YXR1cyA9ICVyLCBLZXlUb2dnbGVTdGF0ZSA9ICV4XG4iLA0KKyAgICAgICAg ICAgICAgICAgICAgIF9fRklMRV9fLA0KKyAgICAgICAgICAgICAgICAgICAgIChVSU5UTilfX0xJ TkVfXywNCisgICAgICAgICAgICAgICAgICAgICBTdGF0dXMsDQorICAgICAgICAgICAgICAgICAg ICAgVmFsaWRTdGF0ZVtJbmRleF0NCisgICAgICAgICAgICAgICAgICAgICApOw0KKyAgICAgIGNv bnRpbnVlOw0KKyAgICB9DQorDQorICAgIC8vDQorICAgIC8vIEdldCB0aGUgS2V5VG9nZ2xlU3Rh dGUNCisgICAgLy8NCisgICAgU3RhdHVzID0gU2ltcGxlVGV4dElucHV0RXgtPlJlYWRLZXlTdHJv a2VFeCAoDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpbXBsZVRleHRJbnB1 dEV4LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmS2V5DQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICk7DQorDQorICAgIGlmIChTdGF0dXMgIT0gRUZJX05P VF9SRUFEWSkgew0KKyAgICAgIEFzc2VydGlvblR5cGUgPSBFRklfVEVTVF9BU1NFUlRJT05fRkFJ TEVEOw0KKw0KKyAgICAgIFN0YW5kYXJkTGliLT5SZWNvcmRBc3NlcnRpb24gKA0KKyAgICAgICAg ICAgICAgICAgICAgIFN0YW5kYXJkTGliLA0KKyAgICAgICAgICAgICAgICAgICAgIEFzc2VydGlv blR5cGUsDQorICAgICAgICAgICAgICAgICAgICAgZ1NpbXBsZVRleHRJbnB1dEV4QkJUZXN0RnVu Y3Rpb25Bc3NlcnRpb25HdWlkMDEwLA0KKyAgICAgICAgICAgICAgICAgICAgIEwiRUZJX1NJTVBM RV9URVhUX0lOUFVUX0VYX1BST1RPQ09MLlJlYWRLZXlTdHJva2VFeCAtIFJlYWRLZXlTdHJva2VF eCgpIGRvZXNuJ3QgcmV0dXJuIEVGSV9OT1RfUkVBRFkgd2hlbiB0aGVyZSBpcyBubyBLZXkgZGF0 YSBhbmQgRUZJX0tFWV9TVEFURV9FWFBPU0VEIGlzIGVuYWJsZWQiLA0KKyAgICAgICAgICAgICAg ICAgICAgIEwiJWE6JWQsIFN0YXR1cyA9ICVyLCBJbmRleCA9ICVkLCBLZXlUb2dnbGVTdGF0ZSA9 ICV4XG4iLA0KKyAgICAgICAgICAgICAgICAgICAgIF9fRklMRV9fLA0KKyAgICAgICAgICAgICAg ICAgICAgIChVSU5UTilfX0xJTkVfXywNCisgICAgICAgICAgICAgICAgICAgICBTdGF0dXMsDQor ICAgICAgICAgICAgICAgICAgICAgSW5kZXgsDQorICAgICAgICAgICAgICAgICAgICAgVmFsaWRT dGF0ZVtJbmRleF0NCisgICAgICAgICAgICAgICAgICAgICApOw0KKw0KKyAgICB9IGVsc2Ugew0K KyAgICAgIGlmIChLZXkuS2V5U3RhdGUuS2V5VG9nZ2xlU3RhdGUgPT0gVmFsaWRTdGF0ZVtJbmRl eF0gJiYNCisgICAgICAgICAgICAgKEtleS5LZXlTdGF0ZS5LZXlTaGlmdFN0YXRlID09IDAgfHwg S2V5LktleVN0YXRlLktleVNoaWZ0U3RhdGUgPT0gRUZJX1NISUZUX1NUQVRFX1ZBTElEKSAmJg0K KyAgICAgICAgICAgS2V5LktleS5TY2FuQ29kZSA9PSAwICYmIEtleS5LZXkuVW5pY29kZUNoYXIg PT0gMCkNCisgICAgICAgIEFzc2VydGlvblR5cGUgPSBFRklfVEVTVF9BU1NFUlRJT05fUEFTU0VE Ow0KKyAgICAgIGVsc2UNCisgICAgICAgICAgIEFzc2VydGlvblR5cGUgPSBFRklfVEVTVF9BU1NF UlRJT05fRkFJTEVEOw0KKw0KKw0KKyAgICAgIFN0YW5kYXJkTGliLT5SZWNvcmRBc3NlcnRpb24g KA0KKyAgICAgICAgICAgICAgICAgICAgIFN0YW5kYXJkTGliLA0KKyAgICAgICAgICAgICAgICAg ICAgIEFzc2VydGlvblR5cGUsDQorICAgICAgICAgICAgICAgICAgICAgZ1NpbXBsZVRleHRJbnB1 dEV4QkJUZXN0RnVuY3Rpb25Bc3NlcnRpb25HdWlkMDExLA0KKyAgICAgICAgICAgICAgICAgICAg IEwiRUZJX1NJTVBMRV9URVhUX0lOUFVUX0VYX1BST1RPQ09MLlJlYWRLZXlTdHJva2VFeCAtIFJl YWRLZXlTdHJva2VFeCgpIHNob3VsZCBnZXQgdGhlIFZhbGlkU3RhdGUgd2l0aCBFRklfTk9UX1JF QURZIGFuZCBvdGhlciBmaWVsZCBpcyB6ZXJvIiwNCisgICAgICAgICAgICAgICAgICAgICBMIiVh OiVkLCBTdGF0dXMgPSAlciwgSW5kZXggPSAlZCwgS2V5VG9nZ2xlU3RhdGUgPSAleCwgZXhwZWN0 IFN0YXRlID0gJXhcbiIsDQorICAgICAgICAgICAgICAgICAgICAgX19GSUxFX18sDQorICAgICAg ICAgICAgICAgICAgICAgKFVJTlROKV9fTElORV9fLA0KKyAgICAgICAgICAgICAgICAgICAgIFN0 YXR1cywNCisgICAgICAgICAgICAgICAgICAgICBJbmRleCwNCisgICAgICAgICAgICAgICAgICAg ICBLZXkuS2V5U3RhdGUuS2V5VG9nZ2xlU3RhdGUsDQorICAgICAgICAgICAgICAgICAgICAgVmFs aWRTdGF0ZVtJbmRleF0NCisgICAgICAgICAgICAgICAgICAgICApOw0KKw0KKyAgICB9DQorICB9 DQorDQorICByZXR1cm4gRUZJX1NVQ0NFU1M7DQorfQ0KZGlmZiAtLWdpdCBhL3VlZmktc2N0L1Nj dFBrZy9UZXN0Q2FzZS9VRUZJL0lIVi9Qcm90b2NvbC9TaW1wbGVUZXh0SW5wdXRFeC9CbGFja0Jv eFRlc3QvU2ltcGxlVGV4dElucHV0RXhCQlRlc3RNYWluLmMgYi91ZWZpLXNjdC9TY3RQa2cvVGVz dENhc2UvVUVGSS9JSFYvUHJvdG9jb2wvU2ltcGxlVGV4dElucHV0RXgvQmxhY2tCb3hUZXN0L1Np bXBsZVRleHRJbnB1dEV4QkJUZXN0TWFpbi5jDQppbmRleCA0M2RiYmRhZS4uYzBhNGY1YWEgMTAw NjQ0DQotLS0gYS91ZWZpLXNjdC9TY3RQa2cvVGVzdENhc2UvVUVGSS9JSFYvUHJvdG9jb2wvU2lt cGxlVGV4dElucHV0RXgvQmxhY2tCb3hUZXN0L1NpbXBsZVRleHRJbnB1dEV4QkJUZXN0TWFpbi5j DQorKysgYi91ZWZpLXNjdC9TY3RQa2cvVGVzdENhc2UvVUVGSS9JSFYvUHJvdG9jb2wvU2ltcGxl VGV4dElucHV0RXgvQmxhY2tCb3hUZXN0L1NpbXBsZVRleHRJbnB1dEV4QkJUZXN0TWFpbi5jDQpA QCAtMSw3ICsxLDcgQEANCiAgLyoqIEBmaWxlDQogICAgICBDb3B5cmlnaHQgMjAwNiAtIDIwMTYg VW5pZmllZCBFRkksIEluYy48QlI+DQotICBDb3B5cmlnaHQgKGMpIDIwMTAgLSAyMDE2LCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQorICBDb3B5cmlnaHQgKGMp IDIwMTAgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQogICAgICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQogICAg YXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRp dGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlDQpAQCAtMTA1LDYgKzEwNSwxNSBAQCBFRklfQkJfVEVT VF9FTlRSWV9GSUVMRCBnQkJUZXN0RW50cnlGaWVsZFtdID0gew0KICAgICAgQkJUZXN0VW5yZWdp c3RlcktleU5vdGlmeUZ1bmN0aW9uTWFudWFsVGVzdA0KICAgIH0sDQogICNlbmRpZg0KKyAgew0K KyAgICBFRklfU0lNUExFX1RFWFRfSU5QVVRfRVhfUFJPVE9DT0xfVEVTVF9FTlRSWV9HVUlEMDEw NywNCisgICAgTCJSZWFkS2V5U3Ryb2tlRXhGdW5jdGlvbkF1dG8iLA0KKyAgICBMIkZ1bmN0aW9u IEF1dG8gdGVzdCBmb3IgU2ltcGxlIFRleHQgSW5wdXQgRXggUHJvdG9jb2wgUmVhZEtleVN0cm9r ZUV4KCkuIiwNCisgICAgRUZJX1RFU1RfTEVWRUxfTUlOSU1BTCwNCisgICAgZ1N1cHBvcnRQcm90 b2NvbEd1aWQsDQorICAgIEVGSV9URVNUX0NBU0VfQVVUTywNCisgICAgQkJUZXN0UmVhZEtleVN0 cm9rZUV4RnVuY3Rpb25BdXRvVGVzdA0KKyAgfSwNCiAgICB7DQogICAgICBFRklfU0lNUExFX1RF WFRfSU5QVVRfRVhfUFJPVE9DT0xfVEVTVF9FTlRSWV9HVUlEMDIwMSwNCiAgICAgIEwiUmVhZEtl eVN0cm9rZUV4Q29uZm9ybWFuY2UiLA0KZGlmZiAtLWdpdCBhL3VlZmktc2N0L1NjdFBrZy9UZXN0 Q2FzZS9VRUZJL0lIVi9Qcm90b2NvbC9TaW1wbGVUZXh0SW5wdXRFeC9CbGFja0JveFRlc3QvU2lt cGxlVGV4dElucHV0RXhCQlRlc3RNYWluLmggYi91ZWZpLXNjdC9TY3RQa2cvVGVzdENhc2UvVUVG SS9JSFYvUHJvdG9jb2wvU2ltcGxlVGV4dElucHV0RXgvQmxhY2tCb3hUZXN0L1NpbXBsZVRleHRJ bnB1dEV4QkJUZXN0TWFpbi5oDQppbmRleCAwYjMzMTJlOS4uYmIwZDhjOWEgMTAwNjQ0DQotLS0g YS91ZWZpLXNjdC9TY3RQa2cvVGVzdENhc2UvVUVGSS9JSFYvUHJvdG9jb2wvU2ltcGxlVGV4dElu cHV0RXgvQmxhY2tCb3hUZXN0L1NpbXBsZVRleHRJbnB1dEV4QkJUZXN0TWFpbi5oDQorKysgYi91 ZWZpLXNjdC9TY3RQa2cvVGVzdENhc2UvVUVGSS9JSFYvUHJvdG9jb2wvU2ltcGxlVGV4dElucHV0 RXgvQmxhY2tCb3hUZXN0L1NpbXBsZVRleHRJbnB1dEV4QkJUZXN0TWFpbi5oDQpAQCAtMSw3ICsx LDcgQEANCiAgLyoqIEBmaWxlDQogICAgICBDb3B5cmlnaHQgMjAwNiAtIDIwMTQgVW5pZmllZCBF RkksIEluYy48QlI+DQotICBDb3B5cmlnaHQgKGMpIDIwMTAgLSAyMDE0LCBJbnRlbCBDb3Jwb3Jh dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQorICBDb3B5cmlnaHQgKGMpIDIwMTAgLSAy MDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQogICAgICBU aGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQogICAgYXJlIGxpY2Vu c2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2Yg dGhlIEJTRCBMaWNlbnNlDQpAQCAtNjEsNiArNjEsOCBAQCBBYnN0cmFjdDoNCiAgI2RlZmluZSBF RklfU0lNUExFX1RFWFRfSU5QVVRfRVhfUFJPVE9DT0xfVEVTVF9FTlRSWV9HVUlEMDEwNiBcDQog IHsgMHhkYmM2ZTY1OSwgMHhiMGUwLCAweDQ0NzEsIHsgMHg5NCwgMHgxMywgMHg0NSwgMHgxYiwg MHhkYywgMHhlMiwgMHhhZCwgMHhjNyB9IH0NCiAgKyNkZWZpbmUgRUZJX1NJTVBMRV9URVhUX0lO UFVUX0VYX1BST1RPQ09MX1RFU1RfRU5UUllfR1VJRDAxMDcgXA0KK3sgMHgyYzNjYTI4MiwgMHg1 NjQ0LCAweDQxYjYsIHsgMHhhZiwgMHhjOSwgMHg0MywgMHg4NywgMHhmMiwgMHg1MywgMHg4OSwg MHhiZCB9IH0NCiAgLy8NCiAgLy8gRW50cnkgR1VJRHMgZm9yIENvbmYgVGVzdA0KICAvLw0KQEAg LTE1Nyw2ICsxNTksMTUgQEAgQkJUZXN0VW5yZWdpc3RlcktleU5vdGlmeUZ1bmN0aW9uTWFudWFs VGVzdCAoDQogICAgSU4gRUZJX1RFU1RfTEVWRUwgICAgICAgICAgICAgVGVzdExldmVsLA0KICAg IElOIEVGSV9IQU5ETEUgICAgICAgICAgICAgICAgIFN1cHBvcnRIYW5kbGUNCiAgICApOw0KKw0K Kw0KK0VGSV9TVEFUVVMNCitCQlRlc3RSZWFkS2V5U3Ryb2tlRXhGdW5jdGlvbkF1dG9UZXN0ICgN CisgIElOIEVGSV9CQl9URVNUX1BST1RPQ09MICAgICAgICpUaGlzLA0KKyAgSU4gVk9JRCAgICAg ICAgICAgICAgICAgICAgICAgKkNsaWVudEludGVyZmFjZSwNCisgIElOIEVGSV9URVNUX0xFVkVM ICAgICAgICAgICAgIFRlc3RMZXZlbCwNCisgIElOIEVGSV9IQU5ETEUgICAgICAgICAgICAgICAg IFN1cHBvcnRIYW5kbGUNCisgICk7DQogICAgICAgICAgRUZJX1NUQVRVUw0KQEAgLTI0MCw2ICsy NTEsMTMgQEAgQkJUZXN0VW5yZWdpc3RlcktleU5vdGlmeUZ1bmN0aW9uTWFudWFsVGVzdENoZWNr cG9pbnQxICgNCiAgICApOw0KICAgICtFRklfU1RBVFVTDQorQkJUZXN0UmVhZEtleVN0cm9rZUV4 RnVuY3Rpb25BdXRvVGVzdENoZWNrcG9pbnQxICgNCisgIElOIEVGSV9TVEFOREFSRF9URVNUX0xJ QlJBUllfUFJPVE9DT0wgICAgICAgICAqU3RhbmRhcmRMaWIsDQorICBJTiBFRklfU0lNUExFX1RF WFRfSU5QVVRfRVhfUFJPVE9DT0wgICAgICAgICAgKlNpbXBsZVRleHRJbnB1dEV4DQorICApOw0K Kw0KKw0KICBFRklfU1RBVFVTDQogIEJCVGVzdFJlYWRLZXlTdHJva2VFeENvbmZvcm1hbmNlVGVz dENoZWNrcG9pbnQxICgNCiAgICBJTiBFRklfU1RBTkRBUkRfVEVTVF9MSUJSQVJZX1BST1RPQ09M ICAgICAgICAgKlN0YW5kYXJkTGliLA0KDQoNCklNUE9SVEFOVCBOT1RJQ0U6IFRoZSBjb250ZW50 cyBvZiB0aGlzIGVtYWlsIGFuZCBhbnkgYXR0YWNobWVudHMgYXJlIGNvbmZpZGVudGlhbCBhbmQg bWF5IGFsc28gYmUgcHJpdmlsZWdlZC4gSWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lw aWVudCwgcGxlYXNlIG5vdGlmeSB0aGUgc2VuZGVyIGltbWVkaWF0ZWx5IGFuZCBkbyBub3QgZGlz Y2xvc2UgdGhlIGNvbnRlbnRzIHRvIGFueSBvdGhlciBwZXJzb24sIHVzZSBpdCBmb3IgYW55IHB1 cnBvc2UsIG9yIHN0b3JlIG9yIGNvcHkgdGhlIGluZm9ybWF0aW9uIGluIGFueSBtZWRpdW0uIFRo YW5rIHlvdS4NCg==