From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector2-amdcloud-onmicrosoft-com header.b=JMckLHwJ; spf=none, err=SPF record not found (domain: amd.com, ip: 40.107.68.54, mailfrom: thomas.lendacky@amd.com) Received: from NAM04-BN3-obe.outbound.protection.outlook.com (NAM04-BN3-obe.outbound.protection.outlook.com [40.107.68.54]) by groups.io with SMTP; Mon, 30 Sep 2019 12:52:42 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gPOyDNvwutkLxNWIZNVLacDJ0tPwov3ZOeQDXAQnsEtghCYZ61K7f9bq3AHw89XqMpuHH6immaOKS+jgDlPilSN7m+f63Y6NJxcEh/NDYQmIZ1FYilN+Zj5dccLpXaHLk5pDsnJJ5ivcnygL0rKoGJWAqHta/xysACIepiMkVc8coFd0mHYi2D69xyNeU5KlZ7lp2HXK2l7kaj7NT9dEdgcWY1KTNwR9Fu7sOldIQb869/up5Z27RRSt4ZkyrwSb3aFlXNRXuz78y28SRHtqNLlIaJxv3f+ZXdKrSJ9V78Ppt28goyGiSIvwOv3ib3jK7cEWcYYqN5OGRAX8KLTGlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=e9mUNqD/M+NHn1ednpgQloJWuqiELx8NqB34MNYW2OI=; b=QqwnbKWffgKO6BVsXijy/fQzn4k7AY4XDwjKHYq0hM/Zcnp6DhNEM46OF/2O65PhD1ugNo+KPZiqWVovJedskGFff5KUxO5b5sHHqBFUaQDZ8jMlCtgNek5ampmvhkzGlMrQOFAM5cQpKfupJ6W+V0N2jsuwxyfLTHz7+r0nyK33Kbui6Tvv7oI5tUAsD5ZVWCeGSL6S3bjlh3j2kgXfMRN043KdjrL2jmbiwcuUaUUt1gSktZ39CBxwkCmfe6BDzTXrcxAiYB5gv6MdBdiHSt8zHj28H4UKdoS4HDVi+2Sf7nzvLphh82hnznTVOZGjwjX1gABGQdOvY4bN3HosoA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=e9mUNqD/M+NHn1ednpgQloJWuqiELx8NqB34MNYW2OI=; b=JMckLHwJEemccTrcUqnMmJ83ijv6ocOMLAyv20c1yJ/89QS/nnR1YYJ8XFJpeIZUWRmRnbohbpIAVVTr40pxul63Hb82Cp3AlLKM6yVfPq6LfZ24gtvIU73gos9iiAJ+imGsmzjewZR2laAtEmRCx4WEDXytN4JfsYklzfROeiE= Received: from DM6PR12MB3163.namprd12.prod.outlook.com (20.179.104.150) by DM6PR12MB4188.namprd12.prod.outlook.com (10.141.185.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2305.17; Mon, 30 Sep 2019 19:52:39 +0000 Received: from DM6PR12MB3163.namprd12.prod.outlook.com ([fe80::85b7:7456:1a67:78aa]) by DM6PR12MB3163.namprd12.prod.outlook.com ([fe80::85b7:7456:1a67:78aa%7]) with mapi id 15.20.2305.017; Mon, 30 Sep 2019 19:52:39 +0000 From: "Lendacky, Thomas" To: "devel@edk2.groups.io" , "lersek@redhat.com" CC: Jordan Justen , Ard Biesheuvel , Michael D Kinney , Liming Gao , Eric Dong , Ray Ni , "Singh, Brijesh" Subject: Re: [edk2-devel] [RFC PATCH v2 10/44] OvmfPkg: A per-CPU variable area for #VC usage Thread-Topic: [edk2-devel] [RFC PATCH v2 10/44] OvmfPkg: A per-CPU variable area for #VC usage Thread-Index: AQHVbyPIi0t/93BoCUigK+eNYlDx0Kc9p3cAgABsgICABpS7AIAACj6A Date: Mon, 30 Sep 2019 19:52:39 +0000 Message-ID: <4f66627c-84b4-ed61-8053-b527407359fe@amd.com> References: <6fac34b0-2d20-e2ff-66b6-de9bd7488f40@redhat.com> <84459a29-fbf2-d7ad-f66a-9877e28729b4@redhat.com> In-Reply-To: <84459a29-fbf2-d7ad-f66a-9877e28729b4@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SN6PR04CA0054.namprd04.prod.outlook.com (2603:10b6:805:2a::31) To DM6PR12MB3163.namprd12.prod.outlook.com (2603:10b6:5:182::22) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [165.204.78.1] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f8a7cb9a-db31-444f-4e4d-08d745dfbf90 x-ms-office365-filtering-ht: Tenant x-ms-traffictypediagnostic: DM6PR12MB4188: x-ms-exchange-purlcount: 7 x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 01762B0D64 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(4636009)(346002)(136003)(366004)(376002)(39860400002)(396003)(199004)(189003)(86362001)(66066001)(6116002)(3846002)(31686004)(66476007)(66446008)(64756008)(66556008)(5660300002)(66946007)(966005)(31696002)(2501003)(7736002)(6246003)(99286004)(305945005)(2906002)(4326008)(25786009)(8676002)(14454004)(14444005)(256004)(8936002)(229853002)(36756003)(102836004)(19627235002)(71200400001)(6512007)(386003)(110136005)(54906003)(76176011)(71190400001)(81156014)(81166006)(11346002)(446003)(52116002)(316002)(6506007)(2616005)(476003)(486006)(6436002)(26005)(186003)(478600001)(6486002)(6306002)(53546011);DIR:OUT;SFP:1101;SCL:1;SRVR:DM6PR12MB4188;H:DM6PR12MB3163.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8Yo2eIOIBGHMsDbXyslqV/dTmkwnJBCuB70MmI28ulUdsCyw2+V5JEMbrSUjy4xqMK9ibkGCxPBIi1+mvh9PadZKWAOXJFYl468U/fQlqSH98WjjYA85zHyxxjGaC4sd15m09DLq1QkbOOEl3Fd3AcoKqg2pvhftEjLFFSvCDqmK4sfIxS28KeydfZJ0EFMOnVEI9DpgGTzmGVDiPIuGvqnH9nS6pw8thstMgqDiXmdH1Vl9v/z6Tdo4fXNA31RHV4Pk3EhBCQQW3+rw2zf+MEvZBvTJy2OKD+210ZKmvf0Az6WO2hihy7AaabR7vL6kCMMFMwdwzTLHuQEsek9aBCxYjoZduFDUF5nY7hGgaawRVo+arsM30oleTZ7zcg9Wpu6rGpjaogrhdqQbYMJS+8OVVMAajwuZYo/G57HB6R3B5+xcc2tjnC32VdaDc/BlXyJlCtYWsqnzCj32f43WFg== MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: f8a7cb9a-db31-444f-4e4d-08d745dfbf90 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Sep 2019 19:52:39.2342 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: YaItDKg6onwVpv9eyNLGKmLb5216zWuPvXLchkberEOEC9Z61DEHvj6fPymLVMwI8uEmAcLsqiXSxVZUL8qW0g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4188 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 T24gOS8zMC8xOSAyOjE1IFBNLCBMYXN6bG8gRXJzZWsgdmlhIEdyb3Vwcy5JbyB3cm90ZToNCj4g T24gMDkvMjYvMTkgMTY6NDYsIExlbmRhY2t5LCBUaG9tYXMgd3JvdGU6DQo+PiBPbiA5LzI2LzE5 IDM6MTcgQU0sIExhc3psbyBFcnNlayB3cm90ZToNCj4+PiBPbiAwOS8xOS8xOSAyMTo1MiwgTGVu ZGFja3ksIFRob21hcyB3cm90ZToNCj4+Pj4gRnJvbTogVG9tIExlbmRhY2t5IDx0aG9tYXMubGVu ZGFja3lAYW1kLmNvbT4NCj4+Pj4NCj4+Pj4gQlo6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3Jl Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5OA0KPj4+Pg0KPj4+PiBBIHBlci1DUFUgaW1wbGVtZW50 YXRpb24gZm9yIGhvbGRpbmcgdmFsdWVzIHNwZWNpZmljIHRvIGEgQ1BVIHdoZW4NCj4+Pj4gcnVu bmluZyBhcyBhbiBTRVYtRVMgZ3Vlc3QsIHNwZWNpZmljYWxseSB0byBob2xkIHRoZSBEZWJ1ZyBS ZWdpc3Rlcg0KPj4+PiB2YWx1ZS4gQWxsb2NhdGUgYW4gZXh0cmEgcGFnZSBpbW1lZGlhdGVseSBh ZnRlciB0aGUgR0hDQiBwYWdlIGZvciBlYWNoDQo+Pj4+IEFQLg0KPj4+Pg0KPj4+PiBVc2luZyB0 aGUgcGFnZSBhZnRlciB0aGUgR0hDQiBlbnN1cmVzIHRoYXQgaXQgaXMgdW5pcXVlIHBlciBBUC4g QnV0LA0KPj4+PiBpdCBhbHNvIGVuZHMgdXAgYmVpbmcgbWFya2VkIHNoYXJlZC91bmVuY3J5cHRl ZCB3aGVuIGl0IGRvZXNuJ3QgbmVlZCB0bw0KPj4+PiBiZS4gSXQgaXMgcG9zc2libGUgZHVyaW5n IFBFSSB0byBtYXJrIG9ubHkgdGhlIEdIQ0IgcGFnZXMgYXMgc2hhcmVkIChhbmQNCj4+Pj4gdGhh dCBpcyBkb25lKSwgYnV0IERYRSBpcyBub3QgYXMgZWFzeS4gVGhlcmUgbmVlZHMgdG8gYmUgYSB3 YXkgdG8gY2hhbmdlDQo+Pj4+IHRoZSBwYWdldGFibGVzIGNyZWF0ZWQgZm9yIERYRSB1c2luZyBD cmVhdGVJZGVudGl0eU1hcHBpbmdQYWdlVGFibGVzKCkNCj4+Pj4gYmVmb3JlIHN3aXRjaGluZyB0 byB0aGVtLg0KPj4+Pg0KPj4+PiBDYzogSm9yZGFuIEp1c3RlbiA8am9yZGFuLmwuanVzdGVuQGlu dGVsLmNvbT4NCj4+Pj4gQ2M6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+Pj4+ IENjOiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4NCj4+Pj4gU2ln bmVkLW9mZi1ieTogVG9tIExlbmRhY2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT4NCj4+Pj4g LS0tDQo+Pj4+ICBPdm1mUGtnL092bWZQa2dYNjQuZmRmICAgICAgICAgICAgICAgIHwgMiArLQ0K Pj4+PiAgT3ZtZlBrZy9QbGF0Zm9ybVBlaS9BbWRTZXYuYyAgICAgICAgICB8IDIgKy0NCj4+Pj4g IE92bWZQa2cvUmVzZXRWZWN0b3IvUmVzZXRWZWN0b3IubmFzbWIgfCAyICstDQo+Pj4+ICAzIGZp bGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4+Pj4NCj4+Pj4g ZGlmZiAtLWdpdCBhL092bWZQa2cvT3ZtZlBrZ1g2NC5mZGYgYi9Pdm1mUGtnL092bWZQa2dYNjQu ZmRmDQo+Pj4+IGluZGV4IGE1NjcxMzFhMDU5MS4uODQ3MTY5NTIwNTJkIDEwMDY0NA0KPj4+PiAt LS0gYS9Pdm1mUGtnL092bWZQa2dYNjQuZmRmDQo+Pj4+ICsrKyBiL092bWZQa2cvT3ZtZlBrZ1g2 NC5mZGYNCj4+Pj4gQEAgLTc5LDcgKzc5LDcgQEAgW0ZELk1FTUZEXQ0KPj4+PiAgMHgwMDgwMDB8 MHgwMDEwMDANCj4+Pj4gIGdVZWZpT3ZtZlBrZ1Rva2VuU3BhY2VHdWlkLlBjZE92bWZTZWNHaGNi UGFnZVRhYmxlQmFzZXxnVWVmaU92bWZQa2dUb2tlblNwYWNlR3VpZC5QY2RPdm1mU2VjR2hjYlBh Z2VUYWJsZVNpemUNCj4+Pj4NCj4+Pj4gLTB4MDA5MDAwfDB4MDAxMDAwDQo+Pj4+ICsweDAwOTAw MHwweDAwMjAwMA0KPj4+PiAgZ1VlZmlPdm1mUGtnVG9rZW5TcGFjZUd1aWQuUGNkT3ZtZlNlY0do Y2JCYXNlfGdVZWZpT3ZtZlBrZ1Rva2VuU3BhY2VHdWlkLlBjZE92bWZTZWNHaGNiU2l6ZQ0KPj4+ Pg0KPj4+PiAgMHgwMTAwMDB8MHgwMTAwMDANCj4+Pj4gZGlmZiAtLWdpdCBhL092bWZQa2cvUGxh dGZvcm1QZWkvQW1kU2V2LmMgYi9Pdm1mUGtnL1BsYXRmb3JtUGVpL0FtZFNldi5jDQo+Pj4+IGlu ZGV4IDMwYzBlNGFmNzI1Mi4uNjk5YmI4YjExNTU3IDEwMDY0NA0KPj4+PiAtLS0gYS9Pdm1mUGtn L1BsYXRmb3JtUGVpL0FtZFNldi5jDQo+Pj4+ICsrKyBiL092bWZQa2cvUGxhdGZvcm1QZWkvQW1k U2V2LmMNCj4+Pj4gQEAgLTQ4LDcgKzQ4LDcgQEAgQW1kU2V2RXNJbml0aWFsaXplICgNCj4+Pj4g ICAgLy8NCj4+Pj4gICAgLy8gQWxsb2NhdGUgR0hDQiBwYWdlcy4NCj4+Pj4gICAgLy8NCj4+Pj4g LSAgR2hjYlBhZ2VDb3VudCA9IG1NYXhDcHVDb3VudDsNCj4+Pj4gKyAgR2hjYlBhZ2VDb3VudCA9 IG1NYXhDcHVDb3VudCAqIDI7DQo+Pj4+ICAgIEdoY2JCYXNlID0gQWxsb2NhdGVQYWdlcyAoR2hj YlBhZ2VDb3VudCk7DQo+Pj4+ICAgIEFTU0VSVCAoR2hjYkJhc2UpOw0KPj4+Pg0KPj4+PiBkaWZm IC0tZ2l0IGEvT3ZtZlBrZy9SZXNldFZlY3Rvci9SZXNldFZlY3Rvci5uYXNtYiBiL092bWZQa2cv UmVzZXRWZWN0b3IvUmVzZXRWZWN0b3IubmFzbWINCj4+Pj4gaW5kZXggODkwOWZjOTMxM2Y0Li5k N2MwYWIzYWRhMDAgMTAwNjQ0DQo+Pj4+IC0tLSBhL092bWZQa2cvUmVzZXRWZWN0b3IvUmVzZXRW ZWN0b3IubmFzbWINCj4+Pj4gKysrIGIvT3ZtZlBrZy9SZXNldFZlY3Rvci9SZXNldFZlY3Rvci5u YXNtYg0KPj4+PiBAQCAtNTcsNyArNTcsNyBAQA0KPj4+PiAgICAgICVlcnJvciAiVGhpcyBpbXBs ZW1lbnRhdGlvbiBpbmhlcmVudGx5IGRlcGVuZHMgb24gUGNkT3ZtZlNlY0doY2JQYWdlVGFibGVT aXplIg0KPj4+PiAgICAlZW5kaWYNCj4+Pj4NCj4+Pj4gLSAgJWlmIChGaXhlZFBjZEdldDMyIChQ Y2RPdm1mU2VjR2hjYlNpemUpICE9IDB4MTAwMCkNCj4+Pj4gKyAgJWlmIChGaXhlZFBjZEdldDMy IChQY2RPdm1mU2VjR2hjYlNpemUpICE9IDB4MjAwMCkNCj4+Pj4gICAgICAlZXJyb3IgIlRoaXMg aW1wbGVtZW50YXRpb24gaW5oZXJlbnRseSBkZXBlbmRzIG9uIFBjZE92bWZTZWNHaGNiU2l6ZSIN Cj4+Pj4gICAgJWVuZGlmDQo+Pj4+DQo+Pj4+DQo+Pj4NCj4+PiBJbiBjb25uZWN0aW9uIHRvIG15 IHF1ZXN0aW9uIGF0IFsxXToNCj4+Pg0KPj4+ICogV2h5IGRvIHdlIGFkZCB0aGUgZXh0cmEgcGFn ZSB0byBTRUMgYXMgd2VsbD8NCj4+DQo+PiBXZSBhZGQgdGhlIGV4dHJhIHBhZ2UgYmVjYXVzZSBp dCBtYXkgYmUgcmVmZXJlbmNlZCBzaG91bGQgYSByZWFkIG9yIHdyaXRlDQo+PiB0byBEUjcgYmUg ZG9uZSBkdXJpbmcgU0VDLiBCYXNlZCBvbiB0aGUgR0hDQiBwcm90b2NvbCwgd2UgbmVlZCB0byBj YWNoZQ0KPj4gdGhlIHZhbHVlIHdyaXR0ZW4gKGFuZCBub3QgYWN0dWFsbHkgdXBkYXRlIHRoZSBE UjcgcmVnaXN0ZXIpIGFuZCByZXR1cm4NCj4+IGl0IG9uIHJlYWQuDQo+Pg0KPj4+DQo+Pj4gICBJ IHRob3VnaHQgdGhhdCwgYWZ0ZXIgcGF0Y2ggNCAoIk92bWZQa2cvUmVzZXRWZWN0b3I6IEFkZCBz dXBwb3J0IGZvciBhDQo+Pj4gICAzMi1iaXQgU0VWIGNoZWNrIiksIHdlIHdlcmUgYWxsIHNldCBm b3IgaGFuZGxpbmcgI1ZDLCBmb3IgdGhlIHRpbWUgb2YNCj4+PiAgIHRoZSBpbml0aWFsIFNFViBj aGVjazsgZnVydGhlcm1vcmUsIHRoYXQgb25seSBDUFVJRCB3b3VsZCBjYXVzZSBhICNWQy4NCj4+ DQo+PiBQYXRjaCAjNCBjb3ZlcnMgdGhlIHNtYWxsIHdpbmRvdyB3aGVyZSB0aGUgU0VWIHN1cHBv cnQgY2hlY2sgaXMgYmVpbmcgZG9uZQ0KPj4gaW4gMzItYml0IG1vZGUgaW4gb3JkZXIgdG8gYnVp bGQgdGhlIHBhZ2UgdGFibGVzIGZvciA2NC1iaXQgbW9kZS4gVGhlDQo+PiBleGNlcHRpb24gaGFu ZGxpbmcgc3VwcG9ydCBpcyB2ZXJ5IHNwZWNpZmljIGF0IHRoaXMgc3RhZ2UgdG8gcGVyZm9ybSBq dXN0DQo+PiB0aGUgR0hDQiBDUFVJRCBwcm90b2NvbCBiZWNhdXNlIHdlIGFyZSBub3QgcnVubmlu ZyBpbiA2NC1iaXQgbW9kZSBhbmQgc28gYQ0KPj4gR0hDQiBwYWdlIGNhbid0IGJlIHVzZWQgYmVj YXVzZSBpdCBjYW4ndCBiZSBzaGFyZWQgd2l0aCB0aGUgaHlwZXJ2aXNvci4NCj4+DQo+Pj4NCj4+ PiAgIElmIHRoYXQncyB0aGUgY2FzZSwgd2hlbiBleGFjdGx5IHdvdWxkIGJlIHRoZSBuZXcgcGFn ZSAoYXQgMHg4MF9hMDAwKQ0KPj4+ICAgYmUgdXNlZD8NCj4+DQo+PiBQYXRjaCAjMTcgKFVlZmlD cHVQa2cvQ3B1RXhjZXB0aW9uSGFuZGxlcjogQWRkICNWQyBleGNlcHRpb24gaGFuZGxpbmcgZm9y DQo+PiBTZWMgcGhhc2UpIGlzIHdoZXJlIHRoZSBTRUMgZXhjZXB0aW9uIGhhbmRsaW5nIGlzIGVu YWJsZWQgd2hpY2ggd2lsbCB1c2UNCj4+IHRoZSBuZXcgcGFnZXMgYXQgMHg4MF85MDAwIGFuZCAw eDgwX2EwMDAuIFRoZSBHSENCIHBhZ2UgaGFzIGEgc3BlY2lmaWMNCj4+IGZvcm1hdCBhbmQgd2Ug Y2FuJ3Qgc3RvcmUgZGF0YSBpbiBpdCwgc28gYW5vdGhlciBwYWdlIGlzIG5lZWRlZCBmb3IgdGhl DQo+PiBEUjcgZGF0YS4NCj4gDQo+IFRoYW5rcywgdGhhdCBzZWVtcyB0byBjb25maXJtIG15IHVu ZGVyc3RhbmRpbmcgb2YgeW91ciBvdGhlciByZXBseS4NCj4gDQo+PiBJdCB3b3VsZCBiZSBuaWNl IGlmIEVESzIgaGFkIHN1cHBvcnQgZm9yIHBlci1DUFUgdmFyaWFibGVzIHNvIHRoYXQgdGhpcw0K Pj4gZXh0cmEgcGFnZSB3b3VsZG4ndCBiZSByZXF1aXJlZC4NCj4+DQo+PiBBbmQgc2luY2UgdGhl IEdIQ0JfQkFTRSBpcyB1c2VkIGJ5IHRoZSBTRUMgZXhjZXB0aW9uIGhhbmRsZXIsIEkgcHJvYmFi bHkNCj4+IG5lZWQgdG8gcmVuYW1lIFBjZE92bWZTZWNHaGNiQmFzZS9TaXplIHRvIFBjZFVlZmlD cHVTZWNHaGNiQmFzZS9TaXplIGFuZA0KPj4gZGVmaW5lIHRoZW0gdW5kZXIgVWVmaUNwdVBrZyBh bmQganVzdCBpbml0aWFsaXplIHRoZW0gaW4gdGhlIE92bWZQa2csDQo+PiByaWdodD8NCj4gDQo+ IFllcywgdGhhdCBhcHBlYXJzIGNvcnJlY3QgKGFsc28gYWxpZ25lZCB3aXRoIHdoYXQgSSByZXNw b25kZWQgdG8geW91cg0KPiBvdGhlciBlbWFpbCkgLS0gVWVmaUNwdVBrZyB3b3VsZCBvZmZlciB0 aGUgZmVhdHVyZSwgYW5kIHBsYXRmb3JtIGNvZGUgaW4NCj4gT3ZtZlBrZyB3b3VsZCBwdXQgaXQg dG8gdXNlLg0KDQpPaywgbGV0IG1lIHNlZSBob3cgSSBjYW4gcmV3b3JrIHRoaXMgYXJlYS4NCg0K VGhhbmtzLA0KVG9tDQoNCj4gDQo+Pg0KPj4+DQo+Pj4gKiBBc3N1bWluZyB3ZSByZWFsbHkgbmVl ZCBQY2RPdm1mU2VjR2hjYlNpemUgPSAweDAwMjAwMCwgaXQgaXMgbm93DQo+Pj4gICB0aGVvcmV0 aWNhbGx5IHBvc3NpYmxlIHRoYXQgdGhlIDhLQiBhcmVhIHN0cmFkZGxlcyBhIDJNQiBwYWdlDQo+ Pj4gICBib3VuZGFyeS4NCj4+Pg0KPj4+ICAgT2J2aW91c2x5IHdlIGRvbid0IHdhbnQgdG8gYWNj b21tb2RhdGUgdGhhdCBjb3JuZXIgY2FzZSwgYnV0IHdlIHNob3VsZA0KPj4+ICAgY2F0Y2ggaXQu IEkgdGhpbmsgd2Ugc2hvdWxkIGVuZm9yY2UgLS0gd2l0aCBhbiAlaWYgLyAlZXJyb3IgLS0NCj4+ PiAgIHNvbWV0aGluZyBsaWtlOg0KPj4+DQo+Pj4gICAoRml4ZWRQY2RHZXQzMiAoUGNkT3ZtZlNl Y0doY2JCYXNlKSA+PiAyMSkgPT0NCj4+PiAgICgoRml4ZWRQY2RHZXQzMiAoUGNkT3ZtZlNlY0do Y2JCYXNlKSArIEZpeGVkUGNkR2V0MzIgKFBjZE92bWZTZWNHaGNiU2l6ZSkgLSAxKSA+PiAyMSkN Cj4+Pg0KPj4+ICAgVGhhdCBzYW5pdHkgY2hlY2sgaXMgbGlrZWx5IGJlc3QgdG8gc3F1YXNoIGlu dG8gcGF0Y2ggNiAoIk92bWZQa2c6DQo+Pj4gICBDcmVhdGUgYSBHSENCIHBhZ2UgZm9yIHVzZSBk dXJpbmcgU2VjIHBoYXNlIikuDQo+Pg0KPj4gWXVwLCBJIGNhbiBhZGQgdGhhdC4NCj4gDQo+IFRo YW5rcyENCj4gTGFzemxvDQo+IA0KPj4+DQo+Pj4gWzFdIGh0dHA6Ly9taWQubWFpbC1hcmNoaXZl LmNvbS9hZDI4OTc1MS1jMWI3LWM4N2EtNDFkMS05Y2U5ODM4ZDk0ZjFAcmVkaGF0LmNvbQ0KPj4+ ICAgICBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS80ODA4MA0KPj4+DQo+ Pj4gVGhhbmtzIQ0KPj4+IExhc3psbw0KPj4+DQo+IA0KPiANCj4gDQo+IA0K