From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web12.5167.1632406511441642374 for ; Thu, 23 Sep 2021 07:15:12 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=neBE6cK+; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: min.m.xu@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10115"; a="309409070" X-IronPort-AV: E=Sophos;i="5.85,316,1624345200"; d="scan'208";a="309409070" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Sep 2021 07:15:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,316,1624345200"; d="scan'208";a="436609204" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by orsmga003.jf.intel.com with ESMTP; 23 Sep 2021 07:15:09 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Thu, 23 Sep 2021 07:15:09 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Thu, 23 Sep 2021 07:15:09 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.175) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Thu, 23 Sep 2021 07:15:09 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GPoRCmv2hgzdt7cQlksxZozGjjg8CNjab8rywl2LgVKWBQ4bCdT2mMW39qNdBXzzpEAqshv4oQ35Sd5axuhCr3UBgoEqNu768C/AMXHkmE5uldLtIy/tN+DVpyMu4S8SohnWra7vnAz4EkEgrS7xZUhQ9rGxqzjRiWW3psDAs31wNnWHv7hB0HmoXAl5ndtTbEOy4WKjRAB8YNtzlAbYfxIsauZSmrewnRizuXlGW13LcJsqkTdnVI6Wc7swy+BITJP4Ud5jDz5QfOSC9v5EhRbGy04jrjW1q5/retDQJLwoJtOb4uYnfsHFmpHjjO25Yl3JpaMF88C+2W7Lz8DFpQ== 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; bh=xkxKtU3cBHGa1fLsQSMvReK92g0Ib0EOLNnBQaK45sM=; b=TISNgtFPT9MIJ6Ey7hSFk1v8b0pCrVewgsSC8vUGJuZjiCCAS+330hiy1Di24oYx0saE1XDaYsI7z2KfT+aGCxxPaFHZ3s+OXwxoICdMkzk1lxw9s589aZvoXbCYgRIMZXo0UievbjLexc65G2dLcNLOOlQQv5FaEZvFsQKsC1+S8CNnBRMGP0kbQFFN2TH9U3fAR9EVitOVFt2zLY3Y2mnDr1eH2zQN4P8pjFl8lgPxr4UwKecM+eIw2ELoEgGyD/rNTwUxetWMGeDzgK7X63KMP7Q0dxjGoAy/OITYw9GuX3NUsZfZ5qynkbnSAmf4wmAM6a6E3906c8m0UcCl8Q== 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=xkxKtU3cBHGa1fLsQSMvReK92g0Ib0EOLNnBQaK45sM=; b=neBE6cK+Q+/PHXRmi7IL8R0QA6OCN+RzeLZ6rPt/RGatxD5gFpp6qDj26cFfQd5jOHZxujl+BPoBHCM6Z2h12l0b/lW11YP5RI7tgUxTQjq4NLAPLLZUxUU6rI35zGdqE05OUfn4iR2+jTiiLr/n2cYxaA/bhz1cXGAhdEccubQ= Received: from PH0PR11MB5064.namprd11.prod.outlook.com (2603:10b6:510:3b::15) by PH0PR11MB5206.namprd11.prod.outlook.com (2603:10b6:510:3f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.14; Thu, 23 Sep 2021 14:15:07 +0000 Received: from PH0PR11MB5064.namprd11.prod.outlook.com ([fe80::c93:200e:5aeb:e11b]) by PH0PR11MB5064.namprd11.prod.outlook.com ([fe80::c93:200e:5aeb:e11b%3]) with mapi id 15.20.4415.029; Thu, 23 Sep 2021 14:15:07 +0000 From: "Min Xu" To: Brijesh Singh , "Yao, Jiewen" , "devel@edk2.groups.io" , "Gerd Hoffmann" CC: Ard Biesheuvel , "Justen, Jordan L" , Erdem Aktas , "James Bottomley" , Tom Lendacky Subject: Re: [edk2-devel] [PATCH V7 1/1] OvmfPkg: Enable TDX in ResetVector Thread-Topic: [edk2-devel] [PATCH V7 1/1] OvmfPkg: Enable TDX in ResetVector Thread-Index: AQHXrsfvMPrievJgoEGG0tDgpJPsrauvry6AgAAIPYCAAZqLgIAAL+cAgAAU7QCAAAKEQIAACdMAgAAG74CAAAJkoA== Date: Thu, 23 Sep 2021 14:15:06 +0000 Message-ID: References: <12721dade1f2f9905cc34271d9abec24650442ff.1632214561.git.min.m.xu@intel.com> <20210922074929.e5iwf24t6wyndgbu@sirius.home.kraxel.org> <20210923084821.yxizus3loa2p6hms@sirius.home.kraxel.org> <7c9aeb95-5c33-bd8d-4f0c-40133f4c7c3d@amd.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: amd.com; dkim=none (message not signed) header.d=none;amd.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4a5a6ea1-4aad-4537-9e94-08d97e9c8b89 x-ms-traffictypediagnostic: PH0PR11MB5206: 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: PYzrTtmb09cy0a94Yp4SevpO/phAhQsdh/S0SQQqE5l3ZzkTlBWKm0Bx5yvOf0ezBUusTerhXCXdlRAwAWLrS/82lgLOmGG9k+RfFmjjRN2o1QQmn7ZRV262xknG0rw5pSMj1ic6vjubf0AhgiGkxAjQdEZZjocq9uR3TC60vW4Kut8aHJoG1SErg/MC25/l/8fhc19NNPJvN2Bf5ATScpJ8ZA46tzSCekHAv4BJWAaXjrEZxMTQVKnRMWTpLNA6Nxltalda54NFLytRgUpXV9gOs0E2AKE0vicWqrnqvYLTVlM5iB7gt8VS0bLNNVGu405ymlR8QWUm7JCLRi3Ae6QC7TBEz6UZqRrDHoMuhXM8Isfjfe3nEUx5YnxTOAYl8eUUaEfYb7o83KjLvlUZ/7DjnvFRZhJkNkpi5a8AJbh0MbtuqvlQ7wB4up20lVPr5/lHWwEZ12hf0mpKLr8LzZZ7JQMECrBL7SSP4gng6IKsUG6oJ8gqLEG24x7A7Ls+t6mV0FnVEQn2nwihR1qoFEswbyBBrzsZUh3Kw9/+BA8rGRpjTRdI2Oal3v+OArvbnmAIUjD/DLmY8LfgzZL+2Zcfb9h7dlaBTP3MgsGYVJL0tDCrLQ8iVr4XGWB3ADcveZNn+F50L13UHDfIjJTIjTLhbnEZWiEI85XhXvGyAIi/Dpsq9CcepCYzFyUIFZPJSDgPkvacQ99th4ht4qf6ejtckinbvj/Eg74fr6WOyUHpKsgCSjx2AnI02zIT8DpeLaMFp1sHiZl8fqUgB3G7pBSewixoOtTkm/gI1ZW7taNPncd3SpWHR/qm7gXb1vNQOIUIlWXYgzao5ibgkFSMXkXN19vIIHjNi/MFiD0WlxI= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5064.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(86362001)(83380400001)(66476007)(64756008)(66556008)(45080400002)(508600001)(122000001)(30864003)(8676002)(76116006)(66946007)(966005)(38100700002)(66446008)(2906002)(38070700005)(6506007)(52536014)(33656002)(8936002)(110136005)(5660300002)(54906003)(55016002)(71200400001)(4326008)(186003)(7696005)(316002)(53546011)(9686003)(26005)(21314003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UWNhckF0eXc4Z0Y3aUc3bGhpMUFNTFVVMWFMTXd3K3RDQ1BKbG9Ya1ozeXpG?= =?utf-8?B?VWlNZkdPRkhJRnhaOXpQMWRLa3ZwZEhKaWRoYTVlRGN3R2ZaSURhUEIyNkZE?= =?utf-8?B?dHZpSnp4N2ZPSU03a2c4U1VJeXlmSERZeTdleGVua2YrWHdyZmErZ2xEKzQx?= =?utf-8?B?RzZWLzQ4R1k4aGgwSnBVcTY5OFlTSGRFbTc3REhNTTJNSitOei8raWhHVDdQ?= =?utf-8?B?KzZRVURzVnkwR3pyVzNCVHB2T1BBYkF1aTMza2cvZXR4ZksreVowb3oxTmkr?= =?utf-8?B?d1l4ZW1SZmFPNWc0U1hYclU3T3MxUmJvY2lYdXZrK3FmMzFmTnF6QkhDbFNO?= =?utf-8?B?WWZTdkZ2ZzRUMjhqblZQKzhRU1RUeGpxaHpsRUVUSXhpeFNGQ1RzOU44Rjh1?= =?utf-8?B?bXVZR1cyRHJ0NnM3SjViNXdDaUdHajYzVGkwN05OZDNSRG5nSW05WlpBSVlS?= =?utf-8?B?b3VEYXdSZGFJUytXdFpNTDVnbVhXOGJaZGw5Nm5CWE94ME5QR1lTV0ZuOEYz?= =?utf-8?B?ZmVaUjAxM1FlOE1ET2poU3A2M3MxcVZPS1VoK0ZjWlBGMmE0SXRYMmJGb1Qv?= =?utf-8?B?emJpbEE4NmpDc0xCaVVPeXVwQWVaZEhmemF6cWZPRVVIT1ZFSnlBNnJESXZV?= =?utf-8?B?N1haU3Z3OFN6QU5pUU5sajB5UWFhTlNSRkc2bGJLZW1obzRneTR2aE5hT0JP?= =?utf-8?B?anZ4aGlab3VObFNXcHNYREk1bGc5a1JyVDdtaTRGbE5LUDVBRXUzcDJab1BV?= =?utf-8?B?Ky9VUjNEcWxkeXg1YURrbWYyUG5RL0dITmlEREMvRGl0MHdwclNJVUxMYndv?= =?utf-8?B?VGJBbXpkWjhINkl6WE8zVEJqeU1BaGRURFdKcG5PVnp2VkRrUXRzb2g1ZlNE?= =?utf-8?B?aDkxU296V2MrRy9lMC9Da0FjbVVOK1BEcE1lejdMbjFVMXdWSXgxSGVad3Zv?= =?utf-8?B?aHVETXRwMGlMTXFyU3hvZmdXOWxLc3I2MUJrbUNlWlgzcFBtUUwrT00rRDNw?= =?utf-8?B?ZFpDNDY5T01kUm5BaU1LR0lsbnlPTS9XYzhjc29JbDh3ekhGdWU5WFkxN1Fq?= =?utf-8?B?bnNYN0J6L3U0RmVQZWxlODF2bDY0UzZ2QnEzbHE0K1N3SThjYmVVV2pzMHhB?= =?utf-8?B?TU1idGpMdmY1eld0dHZGeFQrQ1hnT2lYK2R2N0E5VXZlYzYwZVI5TUdMcmg2?= =?utf-8?B?cXRJOXRoQzBLMk5sMGFqZTUxc3UrQTQvMjdmV2FkUlZpRXdGcTJVbGxTOCtE?= =?utf-8?B?c0VvVnlNRFNOazFhY2RKbkNTWkNpc2wxOTI5emdXZzQrN3RyK0tVK2VrOFZz?= =?utf-8?B?SnkwSkRCM0hscTVHcDZpbzEzbHZLbUNIOWhSNmdyUThJR3FReE1HSDJhV3Nk?= =?utf-8?B?M2YyY2Z2N3k4NzZQbGVab2M5RDFGYWV2c1Z4a1FIRllCR0VUb3c3OFQrZVdI?= =?utf-8?B?V0w0ZHRzL3JQWHNiS0FGVCt5cjlSTXhGMFFKSi9EQ0s0cUN6WXgxUGFhZVgz?= =?utf-8?B?Vi8rWFRadzc4UkFGL1o2VjlhMEpOT3A4WXM5KzdNVkJuUnp3MGFyMC9aZ1FZ?= =?utf-8?B?d2RucXBoWHppdW0rek9zK3NaTmI0TGtVOXBmYk1jYXA2NkNWcnJ2VGRPeGlZ?= =?utf-8?B?Q2VGRFVkVVduSGowblprWWRkRUlxNWppay90Wm81OXFEUFVtK3F6MmxWZGR3?= =?utf-8?B?eFpDUHlrb3A0cWljMmFKNzRxODRrSUFVcWtDbnJrZWZ5T3V1YlVDOEdzOGMw?= =?utf-8?Q?ldrx3z5ivPV1AixOwmhc5tzKNfyeSapzmCXh96n?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5064.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a5a6ea1-4aad-4537-9e94-08d97e9c8b89 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Sep 2021 14:15:06.9411 (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: sCOiCLtJvr5BL0ruLNZMg98f8Vg/E6SkzaTI2F+dVqqcArMa1oSmwtOvZyHyQ6HtD7jma8vFO0ZDMpb4XH2NZQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5206 Return-Path: min.m.xu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 T24gU2VwdGVtYmVyIDIzLCAyMDIxIDEwOjA0IFBNLCBCcmlqZXNoIFNpbmdoIHdyb3RlOg0KPiAN Cj4gU0VWIGhhcmR3YXJlIGRvZXMgbm90IGhhdmUgYSBjb25jZXB0IG9mIHRoZSBtZXRhZGF0YS4g VG8gYm9vdCBTRVYgZ3Vlc3Qgd2UNCj4gbmVlZCB0byBwYXNzIHNvbWUgaW5mb3JtYXRpb24gdG8g Vk1NIGFuZCBpbiBwYXN0IHRob3NlIGluZm9ybWF0aW9uIHdlcmUNCj4gcGFzc2VkIHRocm91Z2gg U05QX0JPT1RfQkxPQ0sgKEdVSURlZCBzdHJ1Y3R1cmUpIGJ1dCBHZXJkIHJlY29tbWVuZGVkDQo+ IHRoYXQgaXQgd2lsbCBiZSBnb29kIGlkZWEgaWYgYm90aCBTRVYgYW5kIFREWCB1c2VzIGEgY29t bW9uIG1ldGFkYXRhIGFwcHJvYWNoDQo+IHRvIHBhc3MgdGhlc2UgaW5mb3JtYXRpb24uIEkgcGVy c29uYWxseSB0aGluayBpdCB3YXMgYSBnb29kIHN1Z2dlc3Rpb24uIFNvLCBpbiBTTlANCj4gc2Vy aWVzIEkgd2VudCBhaGVhZCBhbmQgY3JlYXRlZCBhIGdlbmVyaWMgbWV0YWRhdGEgc3RydWN0dXJl IGFuZCAgaG9wZSB0aGF0DQo+IFREWCB3aWxsIGJ1aWxkIG9uIGl0LiBUaGUgdXNlciBvZiB0aGUg bWV0YWRhdGEgc3RydWN0dXJlIGlzIFZNTSAocWVtdSwgZXRjKTsNCj4gd2hpbGUgbGF1bmNoaW5n IHRoZSBndWVzdCB0aGUgVk1NIGtub3dzIHdoZXRoZXIgaXRzIGNyZWF0aW5nIHRoZSBTRVYgb3Ig VERYDQo+IGd1ZXN0IGFuZCB3aWxsIHByb2Nlc3MgdGhlIGVudHJpZXMgYWNjb3JkaW5nbHkuDQo+ IA0KPiBBcyBwZXIgdGhlIG51bWJlciBvZiBmaWVsZHMgaW4gdGhlIG1ldGFkYXRhIGlzIGNvbmNl cm5zLCBJIGZlbHQgMyBmaWVsZHMgKHN0YXJ0LCBzaXplDQo+IGFuZCB0eXBlKSBzaG91bGQgYmUg Z29vZCBlbm91Z2ggZm9yIGFsbCB0aGUgY2FzZXMuIFRoZXJlIHdhcyBhIHF1ZXN0aW9uIGZyb20N Cj4gR2VyZCB0byBNaW4gYXNraW5nIHdoeSBkbyB5b3UgbmVlZCB0aGUgZGF0YW9mZnNldC9yYXdk YXRhc2l6ZSBldGMgYW5kIEkgZG9uJ3QNCj4gcmVtZW1iZXIgc2VlaW5nIHRoZSBhbnN3ZXIgZm9y IGl0Lg0KPg0KVGhlIGRpc2N1c3Npb24gaXMgaW4gdGhpcyBsaW5rLiBodHRwczovL2VkazIuZ3Jv dXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS84MDI4OQ0KPg0KPkFzIEkgc2FpZCBpbiB0aGUgc3RhcnQs IFNOUCBoYXJkd2FyZSBkb2VzIG5vdA0KPiBlbmZvcmNlIG1ldGFkYXRhIGxheW91dCBzbyBJIGFt IGZsZXhpYmxlIHRvIGFkZCBtb3JlIGZpZWxkIG9yIHJlbW92ZSBvciBrZWVwIGl0DQo+IHNlcGFy YXRlLg0KPiANCj4gdGhhbmtzDQo+IA0KPiBPbiA5LzIzLzIxIDg6MzggQU0sIFlhbywgSmlld2Vu IHdyb3RlOg0KPiA+IEdvb2QgcG9pbnQsIE1pbi4NCj4gPg0KPiA+IElmDQo+IGh0dHBzOi8vbmFt MTEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmdp dGh1Yi4NCj4gY29tJTJGQU1ERVNFJTJGb3ZtZiUyRmJsb2IlMkZzbnAtDQo+IHY4JTJGT3ZtZlBr ZyUyRlJlc2V0VmVjdG9yJTJGWDY0JTJGT3ZtZk1ldGFkYXRhLmFzbSZhbXA7ZGF0YT0wDQo+IDQl N0MwMSU3Q2JyaWplc2guc2luZ2glNDBhbWQuY29tJTdDNTJmNjMyN2VmYTMzNDgwYmY0YTMwOGQ5 N2U5NzcNCj4gZmYwJTdDM2RkODk2MWZlNDg4NGU2MDhlMTFhODJkOTk0ZTE4M2QlN0MwJTdDMCU3 QzYzNzY4MDAxMTQxNg0KPiAxMTc4MjYlN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKV0lqb2lN QzR3TGpBd01EQWlMQ0pRSWpvaVYybA0KPiB1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1u MCUzRCU3QzEwMDAmYW1wO3NkYXRhPXpEZmlrUlloeGQ4RQ0KPiBSWSUyRnc2a0pMaEpLUk5XYllU bDRENlBwcUslMkJWTnN1cyUzRCZhbXA7cmVzZXJ2ZWQ9MCBpcyB0aGUNCj4gcHJvcG9zYWwsIHRo ZW4gSSBoYXZlIG1vcmUgY29tbWVudDoNCj4gPg0KPiA+IFR5cGU6IE9WTUZfU0VDVElPTl9UWVBF X0NPREUsIE9WTUZfU0VDVElPTl9UWVBFX1ZBUlMgYXJlIE5PVA0KPiB1c2VkIGZvciBTRVYuIEkg YW0gbm90IHN1cmUgd2h5IHRoZXkgYXJlIHRoZXJlLg0KPiA+DQo+ID4gVHlwZTogT1ZNRl9TRUNU SU9OX1RZUEVfQ1BVSUQgc2hvdWxkIGJlIFNFViBzcGVjaWZpYy4gVERYIGRvZXMgbm90DQo+IG5l ZWQgQ1BVSUQgcGFnZS4NCj4gPg0KPiA+IFR5cGU6IE9WTUZfU0VDVElPTl9UWVBFX1NFQ19NRU0g YWxzbyBzZWVtcyBmb3IgU0VWLiBURFggZG9lcyBub3QNCj4gbmVlZCB0aGlzIHNwZWNpYWwgbWVt b3J5LCBzdWNoIGFzIFBhZ2UgdGFibGUuIEl0IGlzIGFscmVhZHkgY292ZXJlZCBieSBjb2RlLg0K PiA+DQo+ID4gVHlwZTogT1ZNRl9TRUNUSU9OX1RZUEVfU05QX1NFQ1JFVFMgLw0KPiBPVk1GX1NF Q1RJT05fVFlQRV9TTlBfU0VDX01FTSBpcyBTRVYgc3BlY2lmaWMuDQo+ID4NCj4gPiBUaGUgU0VW IHRhYmxlIGlzIHRvdGFsbHkgZGlmZmVyZW50IHdpdGggVERYIG1ldGFkYXRhIHRhYmxlLiBJIHJl YWxseSBjYW5ub3Qgc2VlDQo+IHRoZSBiZW5lZml0IHRvIG1lcmdlIGludG8gb25lIHRhYmxlLg0K PiA+DQo+ID4gVGhhbmsgeW91DQo+ID4gWWFvIEppZXdlbg0KPiA+DQo+ID4+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IFh1LCBNaW4gTSA8bWluLm0ueHVAaW50ZWwuY29t Pg0KPiA+PiBTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDIzLCAyMDIxIDk6MjAgUE0NCj4gPj4g VG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBicmlqZXNoLnNpbmdoQGFtZC5jb207IFlhbywgSmll d2VuDQo+ID4+IDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IEdlcmQgSG9mZm1hbm4gPGtyYXhlbEBy ZWRoYXQuY29tPg0KPiA+PiBDYzogQXJkIEJpZXNoZXV2ZWwgPGFyZGIrdGlhbm9jb3JlQGtlcm5l bC5vcmc+OyBKdXN0ZW4sIEpvcmRhbiBMDQo+ID4+IDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29t PjsgRXJkZW0gQWt0YXMgPGVyZGVtYWt0YXNAZ29vZ2xlLmNvbT47DQo+ID4+IEphbWVzIEJvdHRv bWxleSA8amVqYkBsaW51eC5pYm0uY29tPjsgVG9tIExlbmRhY2t5DQo+ID4+IDx0aG9tYXMubGVu ZGFja3lAYW1kLmNvbT4NCj4gPj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggVjcg MS8xXSBPdm1mUGtnOiBFbmFibGUgVERYIGluDQo+ID4+IFJlc2V0VmVjdG9yDQo+ID4+DQo+ID4+ IEkgc3VnZ2VzdCBTRVYgYW5kIFREWCBrZWVwIHRoZWlyIG93biBtZXRhZGF0YSBpbiBzZXBhcmF0 ZSBmaWxlcy4gVGhpcw0KPiA+PiBpcyBiZWNhdXNlIFNFViBhbmQgVERYIGhhcyBkaWZmZXJlbnQg aXRlbSBzdHJ1Y3R1cmUuDQo+ID4+DQo+ID4+ICBGcm9tIHRoZSBPdm1mTWV0YWRhdGEgZGVmaW5p dGlvbiBpbiBTRVYNCj4gPj4gKGh0dHBzOi8vbmFtMTEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0 bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmdpDQo+ID4+IHRodWIuY29tJTJGQU1ERVNFJTJG b3ZtZiUyRmJsb2IlMkZzbnAtDQo+ICZhbXA7ZGF0YT0wNCU3QzAxJTdDYnJpamVzaC5zaW4NCj4g Pj4NCj4gZ2glNDBhbWQuY29tJTdDNTJmNjMyN2VmYTMzNDgwYmY0YTMwOGQ5N2U5NzdmZjAlN0Mz ZGQ4OTYxZmU0ODgNCj4gNGU2MDhlMQ0KPiA+Pg0KPiAxYTgyZDk5NGUxODNkJTdDMCU3QzAlN0M2 Mzc2ODAwMTE0MTYxMTc4MjYlN0NVbmtub3duJTdDVFdGDQo+IHBiR1pzYjNkOGV5DQo+ID4+DQo+ IEpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0pCVGlJNklrMWhhV3dpTENKWFZD STZNbjAlM0QlDQo+IDdDMTANCj4gPj4NCj4gMDAmYW1wO3NkYXRhPWF0NDNIOXNnbWxhRDc3M3dz VTUlMkJvUFBTakltbzBVaUN4UTBubXdkVjlkcyUzRA0KPiAmYW1wO3Jlcw0KPiA+PiBlcnZlZD0w DQo+ID4+IHY4L092bWZQa2cvUmVzZXRWZWN0b3IvWDY0L092bWZNZXRhZGF0YS5hc20pIHRoZXJl IGFyZSAzIGZpZWxkcyBpbg0KPiA+PiB0aGUgaXRlbS4gKEJhc2UvU2l6ZS9UeXBlKS4NCj4gPj4N Cj4gPj4gQnV0IGZvciBURFgsIHRoZXJlIGFyZSA2IGZpZWxkcw0KPiA+PiAoRGF0YU9mZnNldC9S YXdEYXRhU2l6ZS9NZW1vcnlBZGRyZXNzL01lbW9yeVNpemUvVHlwZS9BdHRyaWJ1dGUpIGluDQo+ ID4+IG9uZSBpdGVtLg0KPiA+PiBUaGF0IGlzIGJlY2F1c2UgVERYLVFFTVUgbm90IG9ubHkgaW5p dGlhbGl6ZSB0aGUgbWVtb3J5IHJlZ2lvbiwgYnV0DQo+ID4+IGFsc28gZG9lcyBtb3JlIHRhc2tz IChtZWFzdXJlbWVudCkgaWYgdGhlIEF0dHJpYnV0ZSBpbmRpY2F0ZXMuDQo+ID4+IERhdGFPZmZz ZXQvUmF3RGF0YVNpemUgaXMgdXNlZCBieSB0aGUgVERYLVFFTVUgdG8gZG8gdGhlIG1lYXN1cmVt ZW50DQo+ID4+IGlmIHRoZSBBdHRyaWJ1dGUgZmllbGQgaXMgTVIuRVhURU5ELg0KPiA+PiBNZW1v cnlBZGRyZXNzL01lbW9yeVNpemUgaW5kaWNhdGVzIHRoZSBURFgtUUVNVSBob3cgdG8gaW5pdGlh bGl6ZSB0aGUNCj4gPj4gbWVtb3J5IHJlZ2lvbi4NCj4gPj4NCj4gPj4gV2UgY2FuIGFkZCBtb3Jl IGZpZWxkcyBpbiB0aGUgaXRlbSB0byBtYWtlIGl0IHdvcmthYmxlIGZvciBib3RoIFNFVg0KPiA+ PiBhbmQgVERYLCAoZm9yIGV4YW1wbGUsIGFkZCBEYXRhT2Zmc2V0L1Jhd0RhdGFTaXplL0F0dHJp YnV0ZSksIGJ1dCBpdA0KPiA+PiBhbHNvIHJlc3RyaWN0IHRoZSBjaGFuZ2VzIGluIHRoZSBmdXR1 cmUgaWYgbW9yZSBmaWVsZHMgaXMgbmVlZGVkDQo+ID4+IChURFgncyBjaGFuZ2Ugd2lsbCBpbXBh Y3QgdGhlIGV4aXN0aW5nIFNFVi1RRU1VKS4NCj4gPj4NCj4gPj4gT24gU2VwdGVtYmVyIDIzLCAy MDIxIDg6NTUgUE0sIEJyaWplc2ggU2luZ2ggd3JvdGU6DQo+ID4+Pg0KPiA+Pj4gTGlrZSBHZXJk IEkgd291bGQgcHJlZmVyIHRvIGhhdmUgb25lIG1ldGFkYXRhIHRhYmxlIGluIHRoZSByZXNldCBH VUlELg0KPiA+Pj4gVGhlIG1ldGFkYXRhIHRhYmxlIHdpbGwgY29udGFpbiBtdWx0aXBsZSBlbnRy aWVzOyBsb3Qgb2YgZW50cmllcyBhcmUNCj4gPj4+IGNvbW1vbiBiZXR3ZWVuIFNOUCBhbmQgVERY LiBTb21lIGVudHJpZXMgd2lsbCBoYXZlIHNwZWNpZmljIG1lYW5pbmcNCj4gPj4+IGZvciB0aGUN Cj4gPj4gcGxhdGZvcm0uDQo+ID4+PiBUaG9zZSBzcGVjaWFsIGVudHJpZXMgc2hvdWxkIGJlIG1h cmtlZCB1c2luZyB0aGUNCj4gPj4+IE9WTUZfU0VDVElPTl9UWVBFX3tURFgsU05QfV9YWFhYLiBJ dCBpcyBwZXJmZWN0bHkgZmluZSB0byBoYXZlIGENCj4gPj4+IG1vcmUNCj4gPj4gdGhhbg0KPiA+ Pj4gb25lIGVudHJ5IGZvciB0aGUgc2FtZSByZWdpb24gd2l0aCBkaWZmZXJlbnQgdHlwZSwgZS5n DQo+ID4+Pg0KPiA+Pj4gR2hjYkJvb2trZWVwaW5nU25wOg0KPiA+Pj4NCj4gPj4+ICDCoCBHSENC X0JPT0tLRVBJTkdfQkFTRV9BRERSRVNTDQo+ID4+Pg0KPiA+Pj4gIMKgIEdIQ0JfQk9PS0tFRVBJ TkdfU0laRQ0KPiA+Pj4NCj4gPj4+ICDCoCBPVk1GX1NFQ1RJT05fVFlQRV9TTlBfTUVNDQo+ID4+ Pg0KPiA+Pj4gVGR4TWFpbEJveEV4dDoNCj4gPj4+DQo+ID4+PiAgwqAgR0hDQl9CT09LS0VQSU5H X0JBU0VfQUREUkVTUw0KPiA+Pj4NCj4gPj4+ICDCoCBHSENCX0JPT0tLRUVQSU5HX1NJWkUNCj4g Pj4+DQo+ID4+PiAgwqAgT1ZNRl9TRUNUSU9OX1RZUEVfVERYX01BSUxCT1gNCj4gPj4+DQo+ID4+ PiBJZiB3ZSB3YW50IGFsbCB0aGUgT1ZNRl9TRUNUSU9OX1RZUEVfU05QX3h4eCBzaG91bGQgYmUg ZGVmaW5lZCBpbiBhDQo+ID4+PiBzZXBhcmF0ZSBmaWxlIHRoZW4gdGhhdCBpcyBhbHNvIGRvYWJs ZS4gSSBwdXQgZXZlcnl0aGluZyBpbiBvbmUNCj4gPj4+IHBsYWNlIGJlY2F1c2UgSQ0KPiA+PiB3 YXMNCj4gPj4+IHRyeWluZyB0byBrZWVwIGVudHJ5IG9yZGVyIHNpbWlsYXIgdG8gd2hhdCBpcyBw cmVzZW50IGluIE1FTUZELg0KPiA+Pj4NCj4gPj4+IHRoYW5rcw0KPiA+Pj4NCj4gPj4+IE9uIDkv MjMvMjEgNjozOSBBTSwgWWFvLCBKaWV3ZW4gd3JvdGU6DQo+ID4+Pj4gSSBzdHJvbmdseSByZWNv bW1lbmQgdG8gc2VwYXJhdGUgU0VWIGFuZCBURFggaW4gYWxsIGNvbnRleHQsIGlmIGl0DQo+ID4+ Pj4gaXMNCj4gPj4gc29tZXRoaW5nDQo+ID4+PiBTRVYgb3IgVERYIHNwZWNpZmljLg0KPiA+Pj4+ IFRoZW4gZWFjaCBmaWxlIGhhcyBjbGVhciBvd25lcnNoaXAuDQo+ID4+Pj4gSWYgaXQgaXMgc29t ZXRoaW5nIGdlbmVyaWMgZm9yIGJvdGggU0VWIGFuZCBURFgsIGl0IGNhbiBpbiBvbmUgZmlsZS4N Cj4gPj4+Pg0KPiA+Pj4+IEZvciBleGFtcGxlLCBTZWNQZWlUZW1wUmFtL1NlY1BhZ2VUYWJsZSBj YW4gYmUgaW4gY29tbW9uIGZpbGUuDQo+ID4+Pj4gQnV0IFNldlNucFNlY3JldHMvR2hjYkJvb2tr ZWVwaW5nIHNob3VsZCBiZSBpbiBTRVYgZmlsZS4NCj4gPj4+Pg0KPiA+Pj4+IFRoYW5rIHlvdQ0K PiA+Pj4+IFlhbyBKaWV3ZW4NCj4gPj4+Pg0KPiA+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+Pj4+PiBGcm9tOiBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNvbT4NCj4g Pj4+Pj4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciAyMywgMjAyMSA0OjQ4IFBNDQo+ID4+Pj4+ IFRvOiBYdSwgTWluIE0gPG1pbi5tLnh1QGludGVsLmNvbT4NCj4gPj4+Pj4gQ2M6IGRldmVsQGVk azIuZ3JvdXBzLmlvOyBBcmQgQmllc2hldXZlbA0KPiA+Pj4+PiA8YXJkYit0aWFub2NvcmVAa2Vy bmVsLm9yZz47IEp1c3RlbiwgSm9yZGFuIEwNCj4gPj4+Pj4gPGpvcmRhbi5sLmp1c3RlbkBpbnRl bC5jb20+OyBCcmlqZXNoIFNpbmdoDQo+ID4+Pj4+IDxicmlqZXNoLnNpbmdoQGFtZC5jb20+OyBF cmRlbSBBa3RhcyA8ZXJkZW1ha3Rhc0Bnb29nbGUuY29tPjsNCj4gPj4gSmFtZXMNCj4gPj4+Pj4g Qm90dG9tbGV5IDxqZWpiQGxpbnV4LmlibS5jb20+OyBZYW8sIEppZXdlbg0KPiA+Pj4+PiA8amll d2VuLnlhb0BpbnRlbC5jb20+OyBUb20gTGVuZGFja3kgPHRob21hcy5sZW5kYWNreUBhbWQuY29t Pg0KPiA+Pj4+PiBTdWJqZWN0OiBSZTogW1BBVENIIFY3IDEvMV0gT3ZtZlBrZzogRW5hYmxlIFRE WCBpbiBSZXNldFZlY3Rvcg0KPiA+Pj4+Pg0KPiA+Pj4+PiBPbiBUaHUsIFNlcCAyMywgMjAyMSBh dCAxMjozODoyNEFNICswMDAwLCBYdSwgTWluIE0gd3JvdGU6DQo+ID4+Pj4+PiBPbiBTZXB0ZW1i ZXIgMjIsIDIwMjEgMzo0OSBQTSwgR2VyZCBIb2ZmbWFubiB3cm90ZToNCj4gPj4+Pj4+PiAgICBI aSwNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+PiArJWlmZGVmIEFSQ0hfWDY0DQo+ID4+Pj4+Pj4+ICs7 DQo+ID4+Pj4+Pj4+ICs7IFREWCBNZXRhZGF0YSBvZmZzZXQgYmxvY2sNCj4gPj4+Pj4+Pj4gKzsN Cj4gPj4+Pj4+Pj4gKzsgVGR4TWV0YWRhdGEuYXNtIGlzIGluY2x1ZGVkIGluIEFSQ0hfWDY0IGJl Y2F1c2UgSW50ZSBURFggaXMNCj4gPj4+Pj4+Pj4gK29ubHkgOyBhdmFpbGFibGUgaW4gQVJDSF9Y NjQuIEJlbG93IGJsb2NrIGRlc2NyaWJlcyB0aGUgb2Zmc2V0DQo+ID4+Pj4+Pj4+ICtvZiA7IFRk eE1ldGFkYXRhIGJsb2NrIGluIE92bWYgaW1hZ2UgOyA7IEdVSUQgOg0KPiA+Pj4+Pj4+PiArZTQ3 YTY1MzUtOTg0YS00Nzk4LTg2NWUtNDY4NWE3YmY4ZWMyDQo+ID4+Pj4+Pj4+ICs7DQo+ID4+Pj4+ Pj4+ICt0ZHhNZXRhZGF0YU9mZnNldFN0YXJ0Og0KPiA+Pj4+Pj4+PiArICAgIEREICAgICAgdGR4 TWV0YWRhdGFPZmZzZXRTdGFydCAtIFRkeE1ldGFkYXRhR3VpZCAtIDE2DQo+ID4+Pj4+Pj4+ICsg ICAgRFcgICAgICB0ZHhNZXRhZGF0YU9mZnNldEVuZCAtIHRkeE1ldGFkYXRhT2Zmc2V0U3RhcnQN Cj4gPj4+Pj4+Pj4gKyAgICBEQiAgICAgIDB4MzUsIDB4NjUsIDB4N2EsIDB4ZTQsIDB4NGEsIDB4 OTgsIDB4OTgsIDB4NDcNCj4gPj4+Pj4+Pj4gKyAgICBEQiAgICAgIDB4ODYsIDB4NWUsIDB4NDYs IDB4ODUsIDB4YTcsIDB4YmYsIDB4OGUsIDB4YzINCj4gPj4+Pj4+Pj4gK3RkeE1ldGFkYXRhT2Zm c2V0RW5kOg0KPiA+Pj4+Pj4+PiArDQo+ID4+Pj4+Pj4+ICslZW5kaWYNCj4gPj4+Pj4+PiBUaGlz IHNob3VsZCBiZSBzd2l0Y2hlZCB0byBjb21tb24gb3ZtZiBtZXRhZGF0YSAoc2VlIHBhdGNoZXMg NC03DQo+ID4+Pj4+Pj4gb2YgdGhlIFNFVi1TTlAgc2VyaWVzKS4NCj4gPj4+Pj4+Pg0KPiA+Pj4+ Pj4+IE1pbjogcGxlYXNlIGhhdmUgYSBsb29rIGF0IHRoZXNlIHBhdGNoZXMuDQo+ID4+Pj4+Pj4N Cj4gPj4+Pj4+IEhpLCBHZXJkDQo+ID4+Pj4+PiBJIGNoZWNrZWQgdGhlIHBhdGNoZXMgNC03IG9m IHRoZSBTRVYtU05QIHNlcmllcy4gVGhlIGNvbW1vbg0KPiA+Pj4+Pj4gT3ZtZk1ldGFkYXRhIGlz IGRlc2lnbmVkIGZvciBib3RoIFNFViBhbmQgVERYLCByaWdodD8NCj4gPj4+Pj4gVGhhdCBpcyB0 aGUgaWRlYSwgeWVzLg0KPiA+Pj4+Pg0KPiA+Pj4+Pj4gSWYgc28sIHRoZW4gaXQgbWVhbnMgdGhl IFNFViBhbmQgVERYIG1ldGFkYXRhIHdpbGwgYmUgbWl4ZWQgaW4NCj4gPj4+Pj4+IHRoaXMgT3Zt Zk1ldGFkYXRhLg0KPiA+Pj4+PiBZZXMuDQo+ID4+Pj4+DQo+ID4+Pj4+PiBJIGFtIHRoaW5raW5n IHRoZXJlIHdpbGwgYWx3YXlzIGJlIGRpZmZlcmVudCBmaWVsZHMgZm9yIFNFViBhbmQgVERYLg0K PiA+Pj4+Pj4gRm9yIGV4YW1wbGUsIFNFViBoYXMgUGNkT3ZtZlNlY0doY2JQYWdlVGFibGUgYnV0 IFREWCBkb2Vzbid0IG5lZWQNCj4gPj4+Pj4+IHRoYXQgcGFnZS4gSWYgdGhlIGNvbW1vbiBPdm1m TWV0YWRhdGEgaXMgY29uc3VtZWQgYnkgVERYLVFFTVUsDQo+ID4+IHRoZW4NCj4gPj4+Pj4+IFBj ZE92bWZTZWNHaGNiUGFnZVRhYmxlQmFzZSB3aWxsIGJlIGluaXRpYWxpemVkIHRvby4NCj4gPj4+ Pj4+IFRoYXQgZG9lc24ndCBtYWtlIHNlbnNlLg0KPiA+Pj4+PiBXZSBoYXZlIGRpZmZlcmVudCBy YW5nZSB0eXBlcy4gIE9WTUZfKiBhcmUgdGhlIGNvbW1vbiBhcmVhcy4NCj4gPj4+Pj4gU0VWXyog d2lsbCBiZSB1c2VkIGJ5IHNldiBvbmx5LCBURFhfKiB3aWxsIGJlIHVzZWQgYnkgdGR4IG9ubHku DQo+ID4+Pj4+IFREWCBhbmQgU0VWIGVudHJpZXMgYXJlIGFsbG93ZWQgdG8gb3ZlcmxhcCwgaS5l Lg0KPiA+Pj4+PiBQY2RPdm1mU2VjR2hjYlBhZ2VUYWJsZUJhc2Ugc2hvdWxkIGhhdmUgc29tZSBT RVZfKiB0eXBlIGZvciBzZXYgKEkNCj4gPj4+Pj4gdGhpbmsgdGhpcyBuZWVkcyBmaXhpbmcgaW4g dGhlIHNlcmllcyksIGFuZCB0ZHggY2FuIHVzZSB0aGUgcGFnZQ0KPiA+Pj4+PiBmb3Igc29tZXRo aW5nIGVsc2UgYnkgYWRkaW5nIGFuDQo+ID4+Pj4+IFREWF8qIGVudHJ5IGZvciB0aGUgc2FtZSBy YW5nZS4NCj4gPj4+Pj4NCj4gPj4+Pj4+IEkgYW0gdGhpbmtpbmcgdGhhdCBTRVYgYW5kIFREWCBj YW4ga2VlcCB0aGVpciBvd24gTWV0YWRhdGEgKGluDQo+ID4+Pj4+PiBzZXBhcmF0ZSBmaWxlcywg U2V2TWV0YWRhdGEuYXNtIGFuZCBUZHhNZXRhZGF0YS5hc20pIHdoaWNoIGFyZQ0KPiA+Pj4+Pj4g cG9pbnRlZCBieSB0aGUgU0VWIG9yIFREWCBvZmZzZXRzIGluIHRoZSBHVUlELWVkIGNoYWluIGlu IFJlc2V0VmVjdG9yLg0KPiA+Pj4+PiBJJ2QgdmVyeSBtdWNoIHByZWZlciB0byBoYXZlIGEgc2lu Z2xlIHRhYmxlIHRvIGF2b2lkIGR1cGxpY2F0aW9uDQo+ID4+Pj4+IGZvciB0aGUgY29tbW9uIG1l bW9yeSBhcmVhcyBhbmQga2VlcCB0aGUgcmVzZXQgdmVjdG9yIHNtYWxsLg0KPiA+Pj4+Pg0KPiA+ Pj4+PiBIYXZpbmcgc2VwYXJhdGUgU2V2TWV0YWRhdGEuYXNtICsgVGR4TWV0YWRhdGEuYXNtIGZp bGVzICh0aGVuIGhhdmUNCj4gPj4+Pj4gT3ZtZk1ldGFkYXRhLmFzbSBpbmNsdWRlIHRoZXNlIHR3 bykgaXMgYW4gb3B0aW9uLiAgSSB0aGluayB0aGlzDQo+ID4+Pj4+IGlzbid0IG5lZWRlZCwgd2Ug Y2FuIGFsc28ganVzdCBncm91cCB0aGUgZW50cmllcyBpbiBPdm1mTWV0YWRhdGEuYXNtLg0KPiA+ Pj4+Pg0KPiA+Pj4+Pj4gSW4gdGhpcyBjYXNlLCBTRVYgYW5kIFREWCBjYW4gZGVzaWduIHRoZWly IG93biBtZXRhZGF0YSBmbGV4aWJseSwNCj4gPj4+Pj4+IGZvciBleGFtcGxlLCB0aGUgYXR0cmli dXRlLCB0aGUgaXRlbSBzdHJ1Y3R1cmUsIGFkZC9yZW1vdmUvdXBkYXRlDQo+ID4+Pj4+PiB0aGUg aXRlbXMsIGV0Yy4NCj4gPj4+Pj4gV2h5IGhhdmUgdHdvIHdheXMgdG8gZG8gdGhlIHNhbWUgdGhp bmc/DQo+ID4+Pj4+DQo+ID4+Pj4+IHRha2UgY2FyZSwNCj4gPj4+Pj4gICAgR2VyZA0KPiA+Pj4N Cj4gPj4+DQo+ID4+PiANCj4gPj4+DQo+ID4NCg==