From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web10.8672.1628082990556506946 for ; Wed, 04 Aug 2021 06:16:30 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=wJ1dNFgA; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: jiewen.yao@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10065"; a="213946351" X-IronPort-AV: E=Sophos;i="5.84,294,1620716400"; d="scan'208";a="213946351" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2021 06:16:29 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,294,1620716400"; d="scan'208";a="521880692" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by fmsmga002.fm.intel.com with ESMTP; 04 Aug 2021 06:16:28 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Wed, 4 Aug 2021 06:16:28 -0700 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Wed, 4 Aug 2021 06:16:27 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Wed, 4 Aug 2021 06:16:27 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.177) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Wed, 4 Aug 2021 06:16:27 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BebfM1gD5D6kU3Pzvx69gC3gtZZRuRydd2SHtyPTmbn9tJez72hNA9XZ8ReAIYXGVjx0FJy5NMxXxgn9oiCTaRupJZX7WusCnBBh3eDjYs6rTFhnneXrGfDqUvDZXFldXeExtw+dkbHswkiveDvdL4vtD9FERWzPUCORQsp1uAWeybrOeO0/oLdJehV/bpziu6gjdWNQKPPvwergRRW5m+JY+/bgTOFohUbrNp/WThn75kznbVOCEpBpqKEF1ZwS8CG9ndSGlsBekXlLWfGbGtR1jIdvfy99RAYK7bHXi4Gn2LpfGUx85ATc5LNxIn27JlNQ8UmnSTWlTzmb1r6AGg== 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=0/SvCNwC83sSFBRJxBlNd0jMzqnidShTy9yeVSUqM8c=; b=PX2K0al3KR4BB+vEiHFd+bV40nI6vhMOuiAbcZ9LbiOkY6GYQHuZZyxRnZnivW6PrzZIg6nCkLCr64tJcqUfpeZr/NOSE9HJSierDpXjgC+qCP/aN1Id2g/9K9txTFbLXYyHL5cZFcNRJMqyT28yZfbzRgmULZmpUgrrA369Au1n1f36ffsliKXNwMZQuNUB0pg9wJtFiVqJ7zo+bszlX78d5WEWQzJlxGSKyZpX1nC6d1f4V3BtJaZuZHYMt2aYCT5+yIzFi2BT76HenBxSr5drkPthZ4/YLMtkbAmaW7UB3H27E45VJOLML2njrB6m7WO+0hugy73Y9/W8LnAhTQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0/SvCNwC83sSFBRJxBlNd0jMzqnidShTy9yeVSUqM8c=; b=wJ1dNFgAnYjIzgIxvM+G8kWAGgVoMENWZat5t8rOCIul8Cxed9l+jQWJjFxahIgmfneR1kTH4W2EJA1hb+MEsIWzy5tpmPWU2IPBocZS2xvaBp8sFjVATF75pI6v3w0ma671VqDJnAGicPhNqsi6D04fXOaRsj+4E5b6xeJs9+Y= Received: from PH0PR11MB4885.namprd11.prod.outlook.com (2603:10b6:510:35::14) by PH0PR11MB5015.namprd11.prod.outlook.com (2603:10b6:510:39::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4373.19; Wed, 4 Aug 2021 13:16:22 +0000 Received: from PH0PR11MB4885.namprd11.prod.outlook.com ([fe80::6c99:8170:1c3c:9121]) by PH0PR11MB4885.namprd11.prod.outlook.com ([fe80::6c99:8170:1c3c:9121%3]) with mapi id 15.20.4373.026; Wed, 4 Aug 2021 13:16:22 +0000 From: "Yao, Jiewen" To: "devel@edk2.groups.io" , "brijesh.singh@amd.com" CC: James Bottomley , "Xu, Min M" , Tom Lendacky , "Justen, Jordan L" , Ard Biesheuvel , Laszlo Ersek , Erdem Aktas , "Dong, Eric" , "Ni, Ray" , "Kumar, Rahul1" , "Kinney, Michael D" , Liming Gao , "Liu, Zhiguang" , Michael Roth Subject: Re: [edk2-devel] [RFC PATCH v4 00/27] Add AMD Secure Nested Paging (SEV-SNP) support Thread-Topic: [edk2-devel] [RFC PATCH v4 00/27] Add AMD Secure Nested Paging (SEV-SNP) support Thread-Index: AQHXbEUe0OJdKZm7ykimI2AJrn8auKtYNNJwgAB7WgCAABThwIAAkDWggAjDBACAAXLS0A== Date: Wed, 4 Aug 2021 13:16:22 +0000 Message-ID: References: <20210628174223.1302-1-brijesh.singh@amd.com> <39b6b63f-4632-d654-a29a-80fc8a75e311@amd.com> <3ea6b4f8-80e2-2f70-2880-d0666246db4b@amd.com> In-Reply-To: <3ea6b4f8-80e2-2f70-2880-d0666246db4b@amd.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c6695137-3e41-4004-0260-08d9574a0e4c x-ms-traffictypediagnostic: PH0PR11MB5015: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: mWyZMYHnKVBqF/zuXAjJysX6CR1uGWFdOOgEqQ71dFQog7Z1BIkNdabkh6gjFU5ycv/v1vW2aN4dkma/w9fl2RVoVwHISaGtmD/SS3Pa+duB+AsN2kZV+UBDKA2UnHBRxxJd9Cu5lU1P8gen7hCBFYYQgUX+B5HkU9m8lUXAUqdBOHTh9RmJlIihfsax1hmmt74uBMcfdOrGg52BCazKodGoXLenOwqJf7QmhYFtz1atqkWoo8ZmK9jQY3VF9kii26dJCp1IXbrTlLn9iI4TdrN5k2JiT+b838I8saXk4lSi5Z7nI++Aj8WtJu3jMwfaCJu/whA+yZb0W11nrM3IzqIluflYB5iE93T5bwErTmXvudveNiOhjg/NDr2u0YZ/36a998oTBiwx7OK8yww5Qn/EF6EVsaIQeN3hrXmRTgax8WLNUe3P7emWzrZfv9Z0n0KUhRqsbWzojN1qgSQ6X4zZC/7zMay4FqInBUZRJbZxVzqwK324XRg6YZA+SpeunlQUkNxC0S9K0G6mwrpJmmYBbL2z8iU3r77n2m1fYa1I1J5W843x0tDqrxoPLFdwXBRY9zhHglF+CYyowLn5wgC3TDCl7y04S4/h7By/6cDVsr9u8EW/9yEEHjNTZ9iisCq04RNBOtip3EKoNaBW2atgwuez1W/1wEG7uw8M1Kz1Fx4vZGwa5Gla4L/7tWRQl4VQlOJk2V9OdT70GiFDOtivA2vthIfKunfQdmeYda3Snkbiu4cQ6fU22woRnRf9JhQ9bqsAfJLeSdtDkTgJa9V6v+RYcfgRvvHvvEMZOMuwnOk91ePfo7NioVrfUtyntxkzedvG6S6oyVNZ+Osvrw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB4885.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(346002)(376002)(366004)(39860400002)(396003)(136003)(38100700002)(83380400001)(55016002)(54906003)(186003)(316002)(53546011)(6506007)(26005)(478600001)(122000001)(66946007)(76116006)(5660300002)(110136005)(2906002)(86362001)(52536014)(33656002)(8676002)(966005)(71200400001)(8936002)(7696005)(9686003)(66446008)(64756008)(38070700005)(4326008)(19627235002)(66476007)(66556008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?R2JJWVJLM3dzdFZxT1d6NDVzYnBFWmI0STN5OUJvOUxES2dmd1RYSStGSTdk?= =?utf-8?B?MEJUYS9BRGU3Q2E1YlNjWGNqYy9WYWxRYVZDOGVDb0RTRnRHVUZkSmZ1Qjcy?= =?utf-8?B?VXhXR21WWFYwTW9iOGpWNHNsN1FVd2wyNDF5UEladUNOdm9Tb05scDJ2Tktl?= =?utf-8?B?RDRZVmVnUUFHVE56alVBNlRFdmlhNElCRStEZzhlRGUyWE9yamk3NnFtTHRl?= =?utf-8?B?R0xlMzB0bkFvYW5aVkJXQUxkR0d2NUtkaFpsSDh6aURDVlVjOEkzY0VQYTJI?= =?utf-8?B?OUZETk5SQ1BobmVvOWRVVmJmelZrQkovQm9xZjZMekVZS3RHbEMwa25GdENo?= =?utf-8?B?anJnM3hTakNuL1k0eTA3dGJUaGdlNndYRDgzVmdsQWduLzBQR0o3WDZmNS8y?= =?utf-8?B?OW54bVdIZk1nYjZ3RXhZYlJGWnU4NmJGZEo3VzRkSk04bFp2bnZKYVJnZjFT?= =?utf-8?B?aFdJOXM5VGptTmxPNVpUU3lRYnEzM3czNTZ5ZitzdmlXVjk3MkFZaFM0NEZY?= =?utf-8?B?TE1ubGtIcFNHUG1yZ0dFRHBBMjV0c2V5K21yOWc5M1Z4eUZZek53UWpuUm9E?= =?utf-8?B?SnQzdFVtMHNDNWJqYXNKRnpQMklhQW5UZUQ5dC9JWTE5a0lLeFdoY0IwWnJz?= =?utf-8?B?T09VeVNtZUg4c0RMZVFzOG5mNENZN3pqUmk1Y2NmSmtxKzk4akhXRy81Z0tp?= =?utf-8?B?WVhTSlRGSXZFRnVmZjFvTTdRYkxUWmMwenk2K0ZsRG0wczZGQWNtYXhROU9H?= =?utf-8?B?OURhRUYrUzNHZ2t6TUlqQ0YrZVl2bTdnbEQyT0ppMVllVUFGUXhoVlZnR1Zs?= =?utf-8?B?NTFTNWpUampnVTdQSGhFbDRBd0JCUXAvaWZXVzBrZWZDVDhLcENGSUlGREVL?= =?utf-8?B?dGgrMGQrY3ZyeUFtSFpzMEIrZnpyZGdEd3RZK0grM29vaWlEektEcWlnTVhQ?= =?utf-8?B?WDAxTDhUcmtWMHE4VTlSSzY5QXJiRENDSzBQbFhFUysrVi9MOEJSOXBLTDZP?= =?utf-8?B?NTlFNmljS2gzVFVSQkc2WXRKMFNaRlc0ME9lcGg2ZUR5M2hwazJteTVHRmg3?= =?utf-8?B?TDFQZlVxK243bUt0eGthM1ZVMzZQdjl3eDdIc1JoS2ZWT1p0OXRPeHk0a0Qv?= =?utf-8?B?WXBJTFBHYjlxUVNFUTVkTWYzcFBwT1lyVnR6a0FTQUp0aThwWjc0RStxakJ5?= =?utf-8?B?K1A2dmZkN0xzbkFSdE1yeXJIL0ViTG1WMEpTR0ZHK2prSlFXNjduWktiTHhX?= =?utf-8?B?RlYzWmluTHF4VXJ4Q2s2aEVyYjBLYU10S2ZnUDRScFNRb0s2STBxV1pidDNW?= =?utf-8?B?SzdoVDI4SG83eGRPS285NjFYWjBXdkRFNG1CTUIvbTFLeVNrOGloaE4vcVhD?= =?utf-8?B?Yk1rN2pQdGpUalFUREd4OWwzaGVad0RROURiSVBBSThaTnhaZVVRWGxiNmJJ?= =?utf-8?B?ZmNNTHViQlFzRTJhakR5c1BqUVR4QTRLTG1yeVhUcEp3SEIzWi9zMmNBeWh6?= =?utf-8?B?M2FZTi8vTTNtVml3aGhtSjBaZUtNZjZaNExZdk1vM0l5TWlJVGljeWJoSG9I?= =?utf-8?B?eGkwZjc2N1RLeW1QWWE3OFFrQVF5eC9RUVdCNURjVmJjSFppeTBEL2RPbGRQ?= =?utf-8?B?VjUvUm43N3duVG9QWE9wSmpTQm5qdEdKSUJzVVN2QzY4OEdYaFR6RERFSDZ6?= =?utf-8?B?cy9kZFlDSmw5ZUUvemg4YVQ2K3dLTzVpdC81RXdQN1drdnlmMmRGT2VaNWtT?= =?utf-8?Q?Ob1x1zY0vwjghT3huM=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB4885.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c6695137-3e41-4004-0260-08d9574a0e4c X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Aug 2021 13:16:22.5050 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: +GhdKBwAeqEaPhtMQJuSmzGJAxyApZaCPIQaprkI+ejzvj04HeYyPj15ZABT5HkgrZdVm0FBI1T0O9/KIEbpcA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5015 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U2VlIG15IGZlZWRiYWNrIGJlbG93Lg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVo YWxmIE9mIEJyaWplc2gNCj4gU2luZ2ggdmlhIGdyb3Vwcy5pbw0KPiBTZW50OiBUdWVzZGF5LCBB dWd1c3QgMywgMjAyMSAxMTowMSBQTQ0KPiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50 ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IGJyaWplc2guc2luZ2hAYW1kLmNv bTsgSmFtZXMgQm90dG9tbGV5IDxqZWpiQGxpbnV4LmlibS5jb20+OyBYdSwgTWluIE0NCj4gPG1p bi5tLnh1QGludGVsLmNvbT47IFRvbSBMZW5kYWNreSA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+ OyBKdXN0ZW4sDQo+IEpvcmRhbiBMIDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPjsgQXJkIEJp ZXNoZXV2ZWwNCj4gPGFyZGIrdGlhbm9jb3JlQGtlcm5lbC5vcmc+OyBMYXN6bG8gRXJzZWsgPGxl cnNla0ByZWRoYXQuY29tPjsgRXJkZW0gQWt0YXMNCj4gPGVyZGVtYWt0YXNAZ29vZ2xlLmNvbT47 IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBOaSwgUmF5DQo+IDxyYXkubmlAaW50 ZWwuY29tPjsgS3VtYXIsIFJhaHVsMSA8cmFodWwxLmt1bWFyQGludGVsLmNvbT47IEtpbm5leSwg TWljaGFlbA0KPiBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IExpbWluZyBHYW8gPGdh b2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IExpdSwNCj4gWmhpZ3VhbmcgPHpoaWd1YW5nLmxpdUBp bnRlbC5jb20+OyBNaWNoYWVsIFJvdGggPE1pY2hhZWwuUm90aEBhbWQuY29tPg0KPiBTdWJqZWN0 OiBSZTogW2VkazItZGV2ZWxdIFtSRkMgUEFUQ0ggdjQgMDAvMjddIEFkZCBBTUQgU2VjdXJlIE5l c3RlZCBQYWdpbmcNCj4gKFNFVi1TTlApIHN1cHBvcnQNCj4gDQo+IA0KPiANCj4gT24gNy8yOC8y MSA5OjIyIFBNLCBZYW8sIEppZXdlbiB3cm90ZToNCj4gPiBIaSBCcmlqZXNoDQo+ID4gVGhhbmtz IGZvciB0aGUgcGF0aWVudC4NCj4gPiBNb3N0IG9mIG15IGNvbW1lbnQgZm9jdXMgb24gdGhlICpj b21tb24qIHBhcnQsIGFuZCAqaW50ZXJmYWNlKiBiZXR3ZWVuDQo+IFNFViBhbmQgY29tbW9uIGNv ZGUuDQo+ID4gSSB3aWxsIGxlYXZlIHlvdSB0byBkZWNpZGUgdGhlIGRldGFpbGVkIFNFViBzcGVj aWZpYyBpbXBsZW1lbnRhdGlvbi4NCj4gPg0KPiANCj4gVGhhbmsgeW91IEppZXdlbiBmb3IgeW91 ciBmZWVkYmFjay4gSSB3aWxsIHRyeSB0byBhZGRyZXNzIHRoZSBjb21tZW50cw0KPiBpbiBuZXh0 IHZlcnNpb24uDQo+IA0KPiA+DQo+ID4gUGF0Y2gtMDQ6DQo+ID4gQ2FuIHdlIHVzZSBjb25zaXN0 ZW50IG5hbWluZyBjb252ZXJzaW9uPw0KPiA+IFdlIGhhdmUgUGNkT3ZtZlNlY0doY2JQYWdlVGFi bGVCYXNlLCBQY2RPdm1mU2VjR2hjYkJhc2UsDQo+IFBjZFNldkxhdW5jaFNlY3JldEJhc2UuIE5v dyB3ZSBhcmUgYWRkaW5nIFBjZE92bWZTbnBTZWNyZXRzQmFzZS4NCj4gPiBDYW4gd2UgY2hhbmdl IFBjZE92bWZTbnBTZWNyZXRzQmFzZSB0byBQY2RTZXZTbnBTZWNyZXRzQmFzZT8NCj4gPiBPciB3 ZSBjaGFuZ2UgUGNkU2V2TGF1bmNoU2VjcmV0QmFzZSB0byBQY2RPdm1mU2V2TGF1bmNoU2VjcmV0 QmFzZT8NCj4gDQo+IEkgZG9uJ3Qga25vdyB3aHkgd2UgY2hvb3NlICJPdm1mIiBmcm9tIHRoZSBM YXVuY2hTZWNyZXRzQmFzZSBQQ0QuIEkNCj4gdGhvdWdodCBQQ0QncyBzcGVjaWZpYyB0aGUgVWVm aSB0eXBpY2FsbHkgY29udGFpbnMgdGhlIE92bWYgbmFtZS4gTWF5YmUNCj4gd2UgY2FuIGZpeCB0 aGUgTGF1bmNoU2VjcmV0c0Jhc2UgdG8gbWF0Y2ggd2l0aCB0aGUgbmFtZS4gSSB3aWxsIGRvIHRo YXQNCj4gYXMgYSBzZXBhcmF0ZSBwYXRjaC4NCj4gDQo+ID4NCj4gPiBQYXRjaC0wNToNCj4gPiBE aXR0by4gTmFtaW5nIGNvbnZlbnRpb24uDQo+ID4NCj4gPiBQYXRjaC0wNjoNCj4gPiBJIGhhdmUg cmVjb21tZW5kYXRpb24gdG8gTWluLCB0byBzZXBhcmF0ZSBTRVYgc3R1ZmYgdG8gYSBzdGFuZGFs b25lIGZpbGUgZnJvbQ0KPiBSZXNldFZlY3RvclZ0ZjAuYXNtLg0KPiA+IEludGVsIGNhbiBhZGQg VERYIHN0dWZmIHRvIGEgc3RhbmRhbG9uZSBmaWxlLCBhbmQgbWFrZSBpdCBpbmNsdWRlZCBieQ0K PiBSZXNldFZlY3RvclZ0ZjAuYXNtLg0KPiA+DQo+ID4gSSBhbSBub3Qgc3VyZSBpZiB5b3Ugd2Fu dCB0byBkbyBpdCwgb3IgeW91IGxlYXZlIE1pbiB0byBkbyBpdC4NCj4gPg0KPiANCj4gRm9yIHRo ZSBTRVYgc3R1ZmYsIEkgd2lsbCBkbyBpdCBteXNlbGYgc28gdGhhdCBJIGNhbiB0ZXN0IGl0IGFz IHdlbGwgOikNCj4gDQo+ID4gUGF0Y2gtMDc6DQo+ID4gU2FtZSBuYW1pbmcgY29udmVudGlvbiBp c3N1ZS4gU2VlICMwNCBhbmQgIzA1Lg0KPiA+DQo+ID4gUGF0Y2gtMDg6DQo+ID4gSSBob3BlIHdl IGNhbiBtb3ZlIGFsbCBiZWxvdyBjb2RlIHRvIEFtZFNldi5hc20sIHN1Y2ggYXMNCj4gUG9zdFBh Z2VUYWJsZUhvb2tTZXYoKS4NCj4gPiBUaGVuIHRoZSBQYWdlVGFibGU2NC5hc20gY2FuIGJlIFNF Vi9URFggYWdub3N0aWMuDQo+ID4NCj4gPiBJIGFtIG5vdCBzdXJlIGlmIHlvdSB3YW50IHRvIGRv IGl0LCBvciB5b3UgbGVhdmUgTWluIHRvIGRvIGl0Lg0KPiA+DQo+ID4gPT09PT09PT09PT09PT0N Cj4gPiAgICAgIDsNCj4gPiAgICAgIDsgQ2xlYXIgdGhlIGVuY3J5cHRpb24gYml0IGZyb20gdGhl IEdIQ0IgZW50cnkNCj4gPiAgICAgIDsNCj4gPiAgICAgIG1vdiAgICAgZWN4LCAoR0hDQl9CQVNF ICYgMHgxRl9GRkZGKSA+PiAxMg0KPiA+ICAgICAgbW92ICAgICBbZWN4ICogOCArIEdIQ0JfUFRf QUREUiArIDRdLCBzdHJpY3QgZHdvcmQgMA0KPiA+DQo+ID4gICAgICBtb3YgICAgIGVjeCwgR0hD Ql9TSVpFIC8gNA0KPiA+ICAgICAgeG9yICAgICBlYXgsIGVheA0KPiA+IGNsZWFyR2hjYk1lbW9y eUxvb3A6DQo+ID4gICAgICBtb3YgICAgIGR3b3JkW2VjeCAqIDQgKyBHSENCX0JBU0UgLSA0XSwg ZWF4DQo+ID4gICAgICBsb29wICAgIGNsZWFyR2hjYk1lbW9yeUxvb3ANCj4gPg0KPiA+ICAgICAg Ow0KPiA+ICAgICAgOyBUaGUgcGFnZSB0YWJsZSBidWlsdCBhYm92ZSBjbGVhcmVkIHRoZSBtZW1v cnkgZW5jcnlwdGlvbiBtYXNrIGZyb20gdGhlDQo+ID4gICAgICA7IEdIQ0JfQkFTRSAoYWthIG1h ZGUgaXQgc2hhcmVkKS4gV2hlbiBTRVYtU05QIGlzIGVuYWJsZWQsIHRvIG1haW50YWluDQo+ID4g ICAgICA7IHRoZSBzZWN1cml0eSBndWFyYW50ZWVzLCB0aGUgcGFnZSBzdGF0ZSB0cmFuc2l0aW9u IGZyb20gcHJpdmF0ZSB0bw0KPiA+ICAgICAgOyBzaGFyZWQgbXVzdCBnbyB0aHJvdWdoIHRoZSBw YWdlIGludmFsaWRhdGlvbiBzdGVwcy4gSW52YWxpZGF0ZSB0aGUNCj4gPiAgICAgIDsgbWVtb3J5 IHJhbmdlIGJlZm9yZSBsb2FkaW5nIHRoZSBwYWdlIHRhYmxlIGJlbG93Lg0KPiA+ICAgICAgOw0K PiA+ICAgICAgOyBOT1RFOiB0aGUgaW52YWxpZGF0aW9uIG11c3QgaGFwcGVuIGFmdGVyIHplcm9p bmcgdGhlIEdIQ0IgbWVtb3J5LiBUaGlzDQo+ID4gICAgICA7ICAgICAgIGlzIGJlY2F1c2UsIGlu IHRoZSAzMi1iaXQgbW9kZSBhbGwgdGhlIGFjY2VzcyBhcmUgY29uc2lkZXJlZCBwcml2YXRlLg0K PiA+ICAgICAgOyAgICAgICBUaGUgaW52YWxpZGF0aW9uIGJlZm9yZSB0aGUgemVybydpbmcgd2ls bCBjYXVzZSBhICNWQy4NCj4gPiAgICAgIDsNCj4gPiAgICAgIE9uZVRpbWVDYWxsICBJbnZhbGlk YXRlR0hDQlBhZ2UNCj4gPiA9PT09PT09PT09PT09PQ0KPiA+DQo+IA0KPiBJIHdpbGwgdHJ5IHRv IHNlZSBpZiBJIGNhbiBtb3ZlIHRoYXQgb3V0IGFzIHdlbGwuDQo+IA0KPiA+IFBhdGNoLTEwOg0K PiA+IEkgYW0gbm90IFVFRkkgQ1BVIHBhY2thZ2UgbWFpbnRhaW5lci4gQnV0IEkgZG8gaGF2ZSBh IGxpdHRsZSBjb25jZXJuIHRvIGFkZA0KPiBtb3JlIFBjZFh4eElzRW5hYmxlIHN0eWxlIFBDRCwg ZXNwZWNpYWxseSB3aGVuIHRoZXkgYXJlIG11dHVhbCBleGNsdXNpdmUgKGxpa2UNCj4gVERYIHYu cyBTRVYpLg0KPiA+IElmIHdlIGZvbGxvdyB0aGlzIHBhdHRlcm4sIHdlIHdpbGwgaGF2ZSBQY2RT ZXZFc0lzRW5hYmxlZCwgUGNkU2V2U25wSXNFbmFibGVkLA0KPiBQY2RTZXZGdXR1cmVJc0VuYWJs ZWQsIFBjZFRkeElzRW5hYmxlZCwgUGNkVGR4RnV0dXJlSXNFbmFibGVkLCAuLi4gdGhhdCB3aWxs IGJlDQo+IGFuIGVuZGxlc3MgbGlzdC4NCj4gPg0KPiA+IElmIHBvc3NpYmxlLCBJIHN1Z2dlc3Qg ZGVmaW5lIG9uZSBQY2RDb25maWRlbnRpYWxDb21wdXRpbmdUeXBlIC0gaW5kaWNhdGUNCj4gTGVn YWN5LCBTRVYsIFREWC4NCj4gPg0KPiANCj4gVGhlcmUgYXJlIGNlcnRhaW4gdGhpbmdzIHdoaWNo IGFyZSBhcHBsaWNhYmxlIHRvIFNFVi1FUyBhbmQgbm90IGZvciB0aGUNCj4gU0VWLVNOUCBhbmQg dmljZSB2ZXJzYS4gSSBhbSBub3Qgb3Bwb3NlIHRvIGNyZWF0ZSBhIGdlbmVyaWMgaGVscGVyIGUu Zw0KPiANCj4gZW51bSB7DQo+IAlBbWRTZXYsDQo+IAlBbWRTZXZFcywNCj4gCUFtZFNldlNucCwN Cj4gCUludGVsVGR4LA0KPiAJSW50ZWxTZ3gsDQo+IAkuLg0KPiAJLi4NCj4gfTsNCj4gDQo+IGJv b2wgRW5jcnlwdGVkR3Vlc3RGZWF0dXJlRW5hYmxlZChlbnVtIHR5cGUpOw0KPiANCj4gQnV0IEkg dGhpbmsgc29tZSBvZiB0aGlzIGNhbiBiZSBkb25lIGxhdGVyIGFzIHdlbGwuDQo+IA0KPiA+IFBh dGNoLTEyOg0KPiA+IENhbiB3ZSBtb3ZlIGFsbCBTRVYgc3R1ZmYgdG8gYSBzdGFuZGFsb25lIGZp bGUsIHN1Y2ggYXMgQW1kU2V2LmM/DQo+ID4NCj4gPiBJIGFtIG5vdCBzdXJlIGlmIHlvdSB3YW50 IHRvIGRvIGl0LCBvciB5b3UgbGVhdmUgTWluIHRvIGRvIGl0Lg0KPiA+DQo+IA0KPiBZZXMsIEkg Y2FuIGRvIGl0Lg0KPiANCj4gPiBQYXRjaC0xODoNCj4gPiBJZiB3ZSBoYXZlIGEgc3RhbmRhbG9u ZSBBbWRTZXYuYyAoIzEyKSwgdGhlbiB3ZSBjYW4gbW92ZSB0aGUgZnVuY3Rpb24gdG8NCj4gdGhh dCBmaWxlLCBhbmQgb25seSBsZWF2ZSBhIGhvb2sgY2FsbCB0byBTRVYuDQo+ID4NCj4gDQo+IEkg d2lsbCB0cnkgdG8gY29uc29saWRhdGUgaXQgaW4gQW1kU2V2LmMNCj4gDQo+ID4gUGF0Y2gtMjM6 DQo+ID4gVGhpcyBpcyBVRUZJIENQVSBwYWNrYWdlIHVwZGF0ZS4gSSBhbSB0aGlua2luZyBpZiB3 ZSBjYW4gZm9sbG93IHNhbWUgcGF0dGVyIHRvDQo+IG1vdmUgYWxsIFNFViBzdHVmZiB0byBhIHN0 YW5kYWxvbmUgZmlsZSwgc3VjaCBhcyBBbWRTZXYuYywgQW1kU2V2LmFzbS4NCj4gPiBJbiB0aGUg ZnV0dXJlLCB3ZSBtYXkgYWRkIFREWCBzdHVmZiBhcyB3ZWxsLg0KPiA+DQo+ID4gUGF0Y2gtMjY6 DQo+ID4gU2FtZSBjb21tZW50IGFzICMyMy4NCj4gPg0KPiA+IFBhdGNoLTI3Og0KPiA+IENhbiB3 ZSBtb3ZlIHRoYXQgZnVuY3Rpb24gdG8gYSBzdGFuZGFsb25lIEFtZFNldi5jID8NCj4gPg0KPiA+ IFBhdGNoLTI4Og0KPiA+IFdvdWxkIHlvdSBwbGVhc2UgZGVzY3JpYmUgbW9yZSBvbiB3aGF0IGlz IENvbmZpZGVudGlhbENvbXB1dGluZ0Jsb2IgPw0KPiANCj4gV2hpbGUgbGF1bmNoaW5nIHRoZSBT RVYtU05QIGd1ZXN0cywgdGhlIGh5cGVydmlzb3IgbWF5IG5lZWQgdG8gcHJvdmlkZQ0KPiBzb21l IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZHVyaW5nIHRoZSBndWVzdCBib290LiBXaGVuIGJvb3Rp bmcgdW5kZXINCj4gdGhlIEVGSSBiYXNlZCBCSU9TLCB0aGUgRUZJIGNvbmZpZ3VyYXRpb24gdGFi bGUgY29udGFpbnMgYW4gZW50cnkgZm9yDQo+IHRoZSBjb25maWRlbnRpYWwgY29tcHV0aW5nIGJs b2IgdGhhdCBjb250YWlucyB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24uDQo+IFRoZSBMaW51eCBr ZXJuZWwgd2lsbCBsb29rdXAgZm9yIHRoaXMgRUZJIHRhYmxlIGR1cmluZyB0aGUgYm9vdCB0bw0K PiBsb2NhdGUgdGhlIHNlY3JldHMgYW5kIGNwdWlkIHBhZ2UuDQo+IA0KPiANCj4gPiBJcyB0aGF0 IGdlbmVyaWMgY29uY2VwdD8gT3IgU0VWIHNwZWNpZmljIHRoaW5nPw0KPiANCj4gSXRzIGRlc2ln bmVkIGFzIGEgZ2VuZXJpYyBhbmQgdGhlIGN1cnJlbnQgb25seSBTRVYtU05QIHByb3ZpZGVzIGl0 Lg0KPiA+IFdobyBpcyBjb25zdW1lcj8NCj4gDQo+IEFueSBndWVzdCBrZXJuZWwgKHdpbmRvdyBv ciBMaW51eCkNCj4gDQo+ID4gV2hhdCBpcyBkaWZmZXJlbmNlIGJldHdlZW4gQ29uZmlkZW50aWFs Q29tcHV0aW5nU2VjcmV0IGFuZA0KPiBDb25maWRlbnRpYWxDb21wdXRpbmdCbG9iID8gV2hlbiB0 byB1c2Ugd2hpY2g/DQo+ID4NCj4gDQo+IFRoZSBjb25maWRlbnRpYWxDb21wdXRpbmdTZWNyZXRz IGNvbnRhaW5zIHRoZSBzZWNyZXRzIGtleXMgd2hlcmUgdGhlDQo+IENDQmxvYiBjb250YWlucyB0 aGUgaW5mb3JtYXRpb24gd2hpY2ggbWF5YmUgdXNlZCBkdXJpbmcgdGhlIGJvb3QuDQo+IA0KPiBZ b3UgY2FuIHNlZSBzb21lIG1vcmUgYWJvdXQgaXQgb24gbXkga2VybmVsIHBhdGNoZXM6DQo+IA0K PiBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzIwMjEwNzA3MTgxNTA2LjMwNDg5LTI2LQ0K PiBicmlqZXNoLnNpbmdoQGFtZC5jb20vDQo+IA0KPiA+IEkgY2FuIHVuZGVyc3RhbmQgaG93IFRE WCB1c2UgQ29uZmlkZW50aWFsQ29tcHV0aW5nU2VjcmV0LCBidXQgaG93IGRvIHlvdQ0KPiBleHBl Y3QgVERYIHVzZSBDb25maWRlbnRpYWxDb21wdXRpbmdCbG9iIChpZiBpdCBpcyBhIGdlbmVyaWMg Y29uY2VwdCkgPw0KPiANCj4gSSB0aGluayBpbiB0aGUgY2FzZSBvZiBURFggLCB0aGUgaW5mb3Jt YXRpb24gbmVlZGVkIGR1cmluZyB0aGUgYm9vdCBpcw0KPiBwcm92aWRlZCB0aHJvdWdoIHRoZSBB Q1BJIHRhYmxlcyBidXQgaW4gU0VWLVNOUCB0aG9zZSBhcmUgcHJvdmlkZWQNCj4gdGhyb3VnaHQg dGhlIENDQmxvYi4gSW4gdGhlIGNvbnRpYW5lciBlbnZpcm9uZW1lbnQgdGhlcmUgd2lsbCBiZSBu byBFRkkNCj4gc28gaW4gdGhhdCBjYXNlIHRoZSBCbG9iIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBi b290IGxvYWRlciBzZXR1cCBkYXRhLg0KPiBJZiByZXF1aXJlZCB0aGVuIFREWCBjYW4gdXNlIGl0 IHRvIHBhc3MgdGhlIGJvb3QgaW5mb3JtYXRpb24uDQoNCltKaWV3ZW5dIEdvdCBpdC4gSSB0cmVh dCBpdCBhcyBhIGdlbmVyaWMgd2F5IHRvIHBhc3MgaW5mb3JtYXRpb24gZnJvbSBHdWVzdCBGVyB0 byBndWVzdCBPUy4NCklmIHNvLCBJIGhhdmUgY29uY2VybiBvbiBoYXZpbmcgYSBnZW5lcmljIG5h bWUgLSBDQ19CTE9CLCBidXQgb25seSBpbmNsdWRlcyBTRVYgc3BlY2lmaWMgZGF0YSBzdHJ1Y3R1 cmUgdGhlcmUuDQoNCkkgb2ZmZXIgdHdvIHBvc3NpYmxlIGFsdGVybmF0aXZlcywgYW5kIEkgb3Bl biBvbiBvdGhlciBvcHRpb25zLg0KQSkgZGVmaW5lIGl0IGFzIFNFVl9CTE9CLiBEb27igJl0IHVz ZSBnZW5lcmljIG5hbWUuIEFzIHN1Y2gsIHRoZSBjb25zdW1lIGtub3dzIHRoaXMgYmxvYiBpcyBm b3IgU0VWLg0KQikgZGVmaW5lIGl0IFRZUEUtTEVOR1RILVZBTFVFIGxpc3QgaW4gQ0NfQkxPQi4g QXMgc3VjaCwgdGhlIGNvbnN1bWUgY2FuIHBhc3MgdGhlIFRZUEUgdG8ga25vdyB0aGlzIGJsb2Ig aXMgZm9yIFNFVi4NCg0KSWYgcG9zc2libGUsIEkgcHJlZmVyIHRvIHNwbGl0IHRoaXMgYmlnIHBh dGNoIHNlcmllcyB0byBzbWFsbGVyIG9uZSwgZXNwZWNpYWxseSB0aGUgQ0NfQkxPQi4NCkkgdGhp bmsgd2UgbWF5IGhhdmUgbW9yZSBkaXNjdXNzaW9uIG9uIGhvdyB0byBzdXBwb3J0IHRoYXQuDQpC dXQgSSBkb27igJl0IHdhbnQgdG8gYmxvY2sgeW91ciBvdGhlciB3b3JrIHN1Y2ggYXMgY3JlYXRp bmcgc3RhbmRhbG9uZSBTRVYgZmlsZSBhbmQgYWRkIFNFVi1TTlAgc3R1ZmYgdGhlcmUuDQoNCg0K DQoNCg0KPiANCj4gdGhhbmtzDQo+IA0KPiANCj4gDQo+IA0KDQo=