From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web10.89.1637767842466570154 for ; Wed, 24 Nov 2021 07:30:42 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=thfJOx9c; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: jiewen.yao@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10178"; a="259186064" X-IronPort-AV: E=Sophos;i="5.87,260,1631602800"; d="scan'208";a="259186064" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Nov 2021 07:30:40 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,260,1631602800"; d="scan'208";a="554221536" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by fmsmga008.fm.intel.com with ESMTP; 24 Nov 2021 07:30:40 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Wed, 24 Nov 2021 07:30:40 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Wed, 24 Nov 2021 07:30:40 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.103) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Wed, 24 Nov 2021 07:30:39 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VJXEHZJiXMnS5I2lOnJzTUP/Q0tZ9MsABGbT3wO8iMwOib0qFYUgWRL3sr9hdgznK821jLQZLoIw7bpx2JapbSdd20SnowLz/qlMngdQiYv+fkwUseoHyi/yfZMJvLBGIIU9IHJ4KlW7tP7PzbtUFbaXK1i4QXkUVzqhSEXTZqYnduMFGE6aFFMb6QQM3DY+CNsByLCUYJY2uHC00HxcjnpbrKDS33hgg4bdPWqx89n/DxQEOBiQaAXjszu+YN4tKpNG74PuXDb6SCzd8zAkykZgndf3x9dKBoCcI/WcZNpt1Ke2cLJTNm0Hw0q0uYVXbMpqwbTbZTcKYxOLowfQlw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ESa79XlxamvEf9E0NlSLK2gWz2Utgzun5O11eE1jngE=; b=h9xU8UtMhZOWuGMgtDMv7A1qEfMH7c8dQTbfQc4nWifuMY0pfRJ21s0QF/QlNA+VTQ2yjzb9wZx6FFWPmMjwmutCWN+PPhcDokNANe4pJMcm0s1zowFTG9SHDEPtYcBbilO7SqWm9nQjuyFzpzyUHPD2SuRgeoXVycM67QhYgNdDLl893mdEHxBzc6uRSash/sc0uDzL3MPvF0LLdrPmKwFnZKN7VmpPgyx4tUHcY3WmwzOJhbHo9O/+rWDopWGcoqEiSpEruC9rewF89+8zrt61GYrRNVR9hsZxh/86wXbETijoOn9ezvAupnpGx8LNNyzarAhcSRN6i1v4Dhr7jQ== 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=ESa79XlxamvEf9E0NlSLK2gWz2Utgzun5O11eE1jngE=; b=thfJOx9cjnuSZSvimQpnu4OG/m9cqowLW2l4faiglXQhf6pwWfWmmyq4v/krZEt4zg5xREtk9WPv3jX4KUkacvMbVk9+SUhWk2sJ9cVj3+blBz6kWSygw2/N8TFk3WMqmhqb5dB1J9ge/yYWvFrsCpqShXfF4RiosF7uRCo/Hsw= Received: from MW4PR11MB5872.namprd11.prod.outlook.com (2603:10b6:303:169::14) by MWHPR11MB1822.namprd11.prod.outlook.com (2603:10b6:300:111::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Wed, 24 Nov 2021 15:30:37 +0000 Received: from MW4PR11MB5872.namprd11.prod.outlook.com ([fe80::1d07:d296:b2c7:7114]) by MW4PR11MB5872.namprd11.prod.outlook.com ([fe80::1d07:d296:b2c7:7114%8]) with mapi id 15.20.4669.016; Wed, 24 Nov 2021 15:30:37 +0000 From: "Yao, Jiewen" To: "devel@edk2.groups.io" , "Yao, Jiewen" , "jejb@linux.ibm.com" , "Gerd Hoffmann" CC: "Xu, Min M" , Ard Biesheuvel , "Justen, Jordan L" , Brijesh Singh , Erdem Aktas , Tom Lendacky Subject: Re: [edk2-devel] [PATCH V3 15/29] OvmfPkg: Update SecEntry.nasm to support Tdx Thread-Topic: [edk2-devel] [PATCH V3 15/29] OvmfPkg: Update SecEntry.nasm to support Tdx Thread-Index: AQHX2uMZH+dNhguCw0OBghbxJplRDawH11AAgAEwN+CAAfIoAIAAvv7AgAVfi4CAAAXBAIAAGIUAgAAC0naAAAQtAIAABTlIgAAHrQCAAKQIkIAAcbwAgAArxNCAAC6GgIAABxjAgAAB1wCAAABGQIAAFJQA Date: Wed, 24 Nov 2021 15:30:37 +0000 Message-ID: References: <20211119151130.g2wcnuhivt3lxvzi@sirius.home.kraxel.org> <20211123123821.q4fanslttg72n2r3@sirius.home.kraxel.org> <1D6AF5B4-87BD-4773-A5C7-4779016A0673@intel.com> <1DF0C062-BF78-44E2-BE96-2C8727C36845@intel.com> <5ec6897681e46fe181193651164f0f17d5d1205d.camel@linux.ibm.com> <20211124081204.ortxlgwgp2c5dlhw@sirius.home.kraxel.org> <5d39c546fe66fc945e9687f187ed9892b6a6a00c.camel@linux.ibm.com> <16BA8381113E7B1B.22735@groups.io> In-Reply-To: <16BA8381113E7B1B.22735@groups.io> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.200.16 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: ab6644eb-3e0a-4974-1dec-08d9af5f5d98 x-ms-traffictypediagnostic: MWHPR11MB1822: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr 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: 6bd5nySejsDPKSCYXRgtc74ci7Q8MaEnUwyARGmyLPo3CQThchlbjz7BwQTgJLcGWabM87Wt+/FY3kUyE5c1L6EMGEnwRSnpyC6PyA5qj+yLc8zkSpyVw5pHYfo+QCkXL3W3QGZfRhXDg9ZwVrbhzAj8rNzSCoXBSIIYcazmoxqi5VzEyYe25ngVfuvIaoUSmVwPaFD75DNXBO1J3ou8M3ey1KVAUYKvrGAI6gOVmaN2dXRlBkB/cdr79+uDPg6NqkCzHWW8Ccn62IKzcxwOwY5GBjFXtzMCslnYG/z4zH0RyulEAx1t1sw4J4u1AwQmtLdBZFH8uOfd0IHJpjFbn0EDVe/2ihPPJfUfaNmU/EQINydjytFhUMK9kNv27IPcsF95wkJCt2q0AFZqMaaqTp6f8odLKHYIFiZxrGXjXL1b1UI5ziZRCxA8jnozNI/W9uFcH6Fv/ZjmHjqEuV1ywwvpJQvg9QhpUTqEFCrg5EHrvdXrEoRW4JdxhDxGYABA+8pa56y9OgtBRkT6a3WNlwF+usNX1nSj4bZIcyxyCTGjRA0IsxmLmlUI4VbORZ9zk8vsuIXhYw9ND+VcpuGAIdQgXWZQ7RPmuw3OUUprMd/zEQuofAnBs5KvrpEqfF213y8i32vzjxbyoXDIkegdkZ7JJge+L98GswTwWu0bUfS6jLg92ZbsoLvfWjZzoLr6FMqktBV/o0+2tMPG0VkUlHpGnro+EXwd4lK3BJIR8PkYAk9PMsqqyxX79VNgIgV0BD5Nj6/WFIRU3h3iN4hK+KsA+TMTCbcbsTSsAySaUjfuktr+SpRMFHVZDZccyAp0kQ557TsalILC4B/HQ8ThLQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR11MB5872.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(53546011)(508600001)(8676002)(6506007)(9686003)(4001150100001)(7696005)(52536014)(54906003)(110136005)(122000001)(38100700002)(4326008)(316002)(5660300002)(76116006)(71200400001)(26005)(82960400001)(15650500001)(2906002)(66556008)(66476007)(33656002)(66446008)(64756008)(66946007)(55016003)(38070700005)(186003)(8936002)(83380400001)(966005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cUd0eGtLU040ZmdrMUNKb28yK05Ca1JiZmhDN1ZldExRbDhYajhidVB1b1Nx?= =?utf-8?B?ZjI1cVZvbkNXU0lZeFYwdlRiU0lRa2lPSnFSMFc3cnRxQnZnQ1B6bmJTSjht?= =?utf-8?B?QklwSGUwbVNCSWFzN3dnckNMV1pRc0owRlJRQU94OVAxQW9YNHZnRUc1T3Y2?= =?utf-8?B?VHpTMFRxSUxubVkwNVhYNENFVm5FeDMwZUFHRlZEUDVDVEZCLzJBUTMrUVNI?= =?utf-8?B?VHVlYStvRUlJNmxSZmdYYVFSc0VmbHZlTjFBSStpRVJuUnVHaUZ0RVowYnRD?= =?utf-8?B?clRlL05VRkUwRW5vK2xxVUExZjdUV3VzekVFYmlpWWtpd2FtbElzWm42TjM2?= =?utf-8?B?Vm9xazljRmU0a3V2WDhWN3Y0bnRDQWFia1g4bWV3Z1J2NnFPRTV2Mk5sa25J?= =?utf-8?B?c1dZeWhpcGIxSG1IaHJjSENsZGRQelRwSHk4b0xITTFNVXhFOXczWXMvL0FN?= =?utf-8?B?WlpTTVd4eDRnWFF2T1cxeXBHT3FWcnhJUWdoSXp5REtvUktUTjRrQjdEMnpM?= =?utf-8?B?bjVHSUk2alA3N0NONEc4RFR1V1c4bXRpY3FwQTh0RVVNMnhyem8zZm1lYVJs?= =?utf-8?B?dlFKREZKR3ZzRkRQa0loVUxWY3lkdUlQUkJuMG5La3piSHcvYk84WHFCblFr?= =?utf-8?B?LzQyYjhrK1pEektqcW9GM0JMVGNRdDRuZGNDam1WVVhtb0VRaVlJZXlqdlo4?= =?utf-8?B?OUZnd3ZYdTFMWTQxa1JmcG5Oek1QQzZ6K2liYUlhUWk5VExtVVB0OXdEWk9v?= =?utf-8?B?d3pRUDJmWHFVMk05cUdIc2F3VnJNOW9zYkNVaDZMYVNZT3ZFaC81VDZFOHpv?= =?utf-8?B?Z2RaZkc2dEw4UW1JcWRjSTVVTEJYNjhvU1A3ZmNrNnZYOGUvS2Z5UVo0ekF6?= =?utf-8?B?dGdlMWhpUDQzQ0RJb0xRTWNpWmFWcXNSWE0vVkI0SmhOUlNXWGllandKNGE5?= =?utf-8?B?NWtDNzlyQnhnRk9PZlJMSHFYeTMwTThnVlV2aURtVjgzUHBoSFFRbGJJK3U0?= =?utf-8?B?UlN0ZTB0UHc2VWhGS1hDRE0wK3dmODB5NGFHQzltazNUbTkxVnFuY21PT2dk?= =?utf-8?B?OXdVMTQwWktBbURXZys0RzEzZkNkeFhxUnREVzN2Q0JERDVPclM4cmJ3dzdv?= =?utf-8?B?V1JhUjk4Q1hiRytUemlhMGxwSEQ3VExKWlRzbWoyT2dIdnZidi94dkFOdjlL?= =?utf-8?B?ZzJLUi90dFhFZExvdG0zdEhSSGl2TGJhNWlneldPL0dvL1ZtQkR5RU01MXFQ?= =?utf-8?B?RzBVQzFkbllFRzF5R2J4emVPblNkcTVnMGdaK0NESGxFY0ZkanRsTjh3UGQz?= =?utf-8?B?MmNsYTV1WFBtcUJrMHZWZklQTjYwaVkwcEJHbnRJUkdZQVpTTU9vTFk4T1V4?= =?utf-8?B?d1NndVhtSElRNlFxWHJ1ZlZWSlZhNHA0RFZzUjVVMitBUzRJL0prUGw3TERS?= =?utf-8?B?NTB4UzF0K3N1b1dGUUNCNmNWclR6MjA2QlhaVzh4SFR1Q0czWk9VNDF5a0Jo?= =?utf-8?B?ZVVnV0Eyemk2SGRZc1JaUU5MdDRnU1FwNC9zMDU3VHVBVkNCeXFqUWFhYTU4?= =?utf-8?B?T1N6TCszYnZCOTVqc2JDeFNrSFJ4NCt3SllzZVVRd0dzOUJjQzEzbEhTWXY1?= =?utf-8?B?bkdWTHJ0eWc1ZTRsRTRVN3dpT1h4RDhZekU0MTFjWEJDeHR6aXdNNlRmMlZP?= =?utf-8?B?cS9NOTM0S016OGNBdzZWL1JKcGhLcmNKU3JFM1QzRTFGT01temtKVkdRdXdr?= =?utf-8?B?L2wybFltcXprTmg1ZW9ldHUxZkQ4QTEvR0xRWENGY2NaQVRDS1I5cS9YWFRv?= =?utf-8?B?M0NJenh5eWtuS3pHT1o5VzA0NVUwZnJnNnJIdlQyOVVRR2EwWlE5QVBqMUtJ?= =?utf-8?B?cFpCYzJPZ1liNE1wNndHdERDUy83WnQrZ1lEQktYSnU5dFFOOTl2KzZKaFBE?= =?utf-8?B?SldGa3hXN215Y0VGU0x2YnQ3OWhJS25TWW55NXVpREkzSy9LSHhEakpTdEhQ?= =?utf-8?B?Wm51V1VlVWVINDdncHE4R1pWNUd4RDRwV216cE1kWk1STXFSVmJiSk1sWmh3?= =?utf-8?B?QksxRDYweUdXRnZNaVVkMk9tblZBbWxLOHA5eHdzOXZnaE1NTmdRWjlIdUlY?= =?utf-8?B?ejVPcUdkNE5FOWlxekJsbW5qM3lHN1JDVkQvMTNnaTJsWjY3WFB0QzNvbEZX?= =?utf-8?Q?LkJbnHwmjeFeVC98vzFljaY=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR11MB5872.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ab6644eb-3e0a-4974-1dec-08d9af5f5d98 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2021 15:30:37.5425 (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: MEMMncYWpiXfqHUDKcy3TYpnWHCK5L7KLpFZoelpNfOV+47MjyNpWOrCyj2e/jnSEDHsq1rjfKmNbdnQN9bImw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1822 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 T25lIG1vcmUgY2xhcmlmaWNhdGlvbjogTXkgY29tbWVudCBiZWxvdyBpcyBvbmx5IGFwcGxpY2Fi bGUgZm9yIHRoZSBURFZGIHBsYXRmb3JtLCBidXQgbm90IGFwcGxpY2FibGUgdG8gYSBnZW5lcmFs IHBsYXRmb3JtIGluY2x1ZGluZyBPVk1GLg0KDQpJbiBURFZGLCBGZWF0dXJlIFgqIGlzIGEgdmVy eSBzbWFsbCBzZXQsIGJ1dCBpbiBPVk1GIG9yIGdlbmVyYWwgcGxhdGZvcm0sIEZlYXR1cmUgWCog aXMgYSBsYXJnZSBzZXQuDQoNCkZvciBleGFtcGxlLCBpZiBhIHBsYXRmb3JtIG5lZWQgc3VwcG9y dCBTMyByZXN1bWUsIFJlY292ZXJ5LCBDYXBzdWxlIFVwZGF0ZSwgdGhlbiBJIHdvbid0IHJlY29t bWVuZCB0byByZW1vdmUgUEVJLg0KVGhlIHJlYXNvbiBpcyAyKSB0aGUgZGVsdGEgb2YgcmlzayBi ZWNvbWVzIGhpZ2ggdGhlbi4gQ3VycmVudCBQRUkgYWxyZWFkeSBwcm92aWRlcyBhIG1hdHVyZSAo YW5kIGNvbXBsZXgpIGluZnJhc3RydWN0dXJlIGZvciB0aGVtLg0KTW92aW5nIHRob3NlIGZlYXR1 cmUgdG8gc29tZXdoZXJlIGVsc2UgbWVhbnMgdG8gY2FycnkgdGhlIGJ1cmRlbiB0byByZWludmVu dCB0aGUgaW5mcmFzdHJ1Y3R1cmUgZm9yIFMzLCByZWNvdmVyeSwgY2Fwc3VsZSB1cGRhdGUuDQoN CkhlcmUsIEkgb25seSByZWNvbW1lbmQgdG8gcmVtb3ZlIGZvciBURFZGIGNvbmZpZy1CLCBiZWNh dXNlIHRoZSBGZWF0dXJlIFgqIGlzIHNvIHNpbXBsZSB0aGF0IGl0IGNvdWxkIGJlIG1vdmVkIHRv IFNFQyB3aXRob3V0IGV4dHJhIHJpc2suDQoNClJlbW92aW5nIFBFSSBmb3IgZ2VuZXJhbCBPVk1G IGlzIGEgZGlmZmVyZW50IHRvcGljLiBJIGRvbuKAmXQgd2FudCB0byBkaXNjdXNzIGluIHRoaXMg dGhyZWFkLg0KDQpUaGFuayB5b3UNCllhbyBKaWV3ZW4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMu aW8+IE9uIEJlaGFsZiBPZiBZYW8sIEppZXdlbg0KPiBTZW50OiBXZWRuZXNkYXksIE5vdmVtYmVy IDI0LCAyMDIxIDExOjAwIFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgamVqYkBsaW51 eC5pYm0uY29tOyBHZXJkIEhvZmZtYW5uDQo+IDxrcmF4ZWxAcmVkaGF0LmNvbT4NCj4gQ2M6IFh1 LCBNaW4gTSA8bWluLm0ueHVAaW50ZWwuY29tPjsgQXJkIEJpZXNoZXV2ZWwNCj4gPGFyZGIrdGlh bm9jb3JlQGtlcm5lbC5vcmc+OyBKdXN0ZW4sIEpvcmRhbiBMIDxqb3JkYW4ubC5qdXN0ZW5AaW50 ZWwuY29tPjsNCj4gQnJpamVzaCBTaW5naCA8YnJpamVzaC5zaW5naEBhbWQuY29tPjsgRXJkZW0g QWt0YXMNCj4gPGVyZGVtYWt0YXNAZ29vZ2xlLmNvbT47IFRvbSBMZW5kYWNreSA8dGhvbWFzLmxl bmRhY2t5QGFtZC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIFYzIDE1 LzI5XSBPdm1mUGtnOiBVcGRhdGUgU2VjRW50cnkubmFzbSB0bw0KPiBzdXBwb3J0IFRkeA0KPiAN Cj4gT0suIEdvdCBpdC4NCj4gTGV0IG1lIGV4cGxhaW4gaXQgaW4gbW9yZSBkZXRhaWwuDQo+IA0K PiBMZXQncyBhc3N1bWUgUEVJIHBoYXNlIGluY2x1ZGUgMyBtYWpvciBjbGFzc2VzIHtQRUkgQ29y ZSwgUEVJIEFyY2ggUEVNKiwNCj4gRmVhdHVyZSBYKn0uICogbWVhbnMgMH5tdWx0aXBsZS4NCj4g VG8gYWxsIG9mIHVzIHdoYXQgcmVhbGx5IG1hdHRlciBpcyBGZWF0dXJlIFgsIHRoZSBleGlzdGVu Y2Ugb2YgUEVJIENvcmUgKyBQRUkgQXJjaA0KPiBQRUlNKiBpcyB0byBzdXBwb3J0IEZlYXR1cmUg WCouDQo+IA0KPiBGcm9tIGFyY2hpdGVjdHVyZSBwZXJzcGVjdGl2ZSwgaWYgYSBwbGF0Zm9ybSBp cyBjb21wbGV4IChlLmcuIHRoZXJlIGFyZSBsb3RzIG9mDQo+IEZlYXR1cmUgWCopIGFuZCBmZWF0 dXJlIFgqIGhhdmUgbG90cyBvZiBpbnRlci1kZXBlbmRlbmN5LCB0aGVuIFBFSSBpcyBhIGdvb2QN Cj4gcGxhY2UgdG8gY29vcmRpbmF0ZSB0aGUgRmVhdHVyZSBYKi4gKEV4YW1wbGUsIEZlYXR1cmUg WCogYXJlIG1lbW9yeSBpbml0IGFuZA0KPiBzaWxpY29uIGluaXQpDQo+IEJ1dCBpZiBhIHBsYXRm b3JtIHNpbXBsZSAoZS5nLiB0aGVyZSBpcyBvbmx5IGZldyBGZWF0dXJlIFgqKSBhbmQgZmVhdHVy ZSBYKiBoYXZlDQo+IG5vIG11Y2ggZGVwZW5kZW5jeSwgdGhlIGluY2x1ZGluZyBQRUkgZG9lcyBu b3QgYnJpbmcgdG9vIG11Y2ggdmFsdWUuIFRoYXQgaXMNCj4gd2h5IHlvdSBzZWUgbXVsdGlwbGUg cGxhdGZvcm1zIGluIEVES0lJIGRvZXMgbm90IGluY2x1ZGUgUEVJLg0KPiANCj4gRnJvbSBzZWN1 cml0eSBwZXJzcGVjdGl2ZSwgRmVhdHVyZSBYKiBzaGFsbCBhbHdheXMgcGVyZm9ybSBjaGVjaywg bm8gbWF0dGVyDQo+IHdoZXJlIHRoZSBmZWF0dXJlIFggc2l0cyBpbiBTRUMsIFBFSSBvciBEWEUu IFRoZSByaXNrIG9mIEZlYXR1cmUgWCBhbHdheXMgZXhpc3RzLA0KPiBubyBtYXR0ZXIgd2hlcmUg dGhlIGZlYXR1cmUgWCBzaXRzIGluIFNFQywgUEVJIG9yIERYRS4gSSBjb21wbGV0ZWx5IGFncmVl Lg0KPiBBdCBzYW1lIHRpbWUsIHRoZSBQRUkgQ29yZSArIFBFSSBBcmNoIFBFSU0qIGFsc28gYnJp bmcgdW5rbm93biBzZWN1cml0eSByaXNrLg0KPiBUaGF0IHdhcyBUUlVFIGluIGhpc3RvcnkuIEl0 IGRpZCBoYXBwZW4uIFNvIG15IG1vdGl2YXRpb24gdG8gcmVtb3ZlIFBFSSBwaGFzZQ0KPiBpcyB0 byByZWR1Y2UgdGhlIHJpc2sgaW50cm9kdWNlZCBieSBQRUkgQ29yZSArIFBFSSBBcmNoIFBFSU0q LiBBZ2FpbiwgSSBkbyBub3QNCj4gbWVhbiB0byByZWR1Y2UgdGhlIHJpc2sgaW50cm9kdWNlZCBi eSBGZWF0dXJlIFguDQo+IA0KPiBOb3cgaXQgc2VlbXMgd2UgYXJlIHJlYWxseSBkZWJhdGluZyB0 d28gdGhpbmdzOiAocGxlYXNlIGNvcnJlY3QgbWUgaWYgSSBhbQ0KPiB3cm9uZykNCj4gMSkgV2hh dCBpcyByaXNrIGludHJvZHVjZWQgYnkgUEVJIENvcmUgKyBQRUkgQXJjaCBQRUlNKiA/DQo+IDIp IFdoYXQgaXMgdGhlIGRlbHRhIG9mIHJpc2sgYnkgbW92aW5nIEZlYXR1cmUgWCBmcm9tIFBFSSB0 byBvdGhlciBwbGFjZSAoU0VDIG9yDQo+IERYRSkgPw0KPiANCj4gRm9yIDEpLCBteSBhbnN3ZXIg aXMgdGhhdCB0aGUgcmlzayBpcyBkZWZpbml0ZWx5IGJpZ2dlciB0aGFuIHplcm8sIGJhc2VkIHVw b24NCj4gaGlzdG9yeSBkYXRhLiAoVGhpcyBpcyBhbiBvYmplY3RpdmUgYW5zd2VyLikgVGhhdCBp cyB0aGUgbWFpbiBvZiBteSBtb3RpdmF0aW9uIHRvDQo+IG1ha2UgaXQgYmVjb21lIHplcm8gYnkg cmVtb3ZpbmcgUEVJLg0KPiBGb3IgMiksIG15IGFuc3dlciBpcyB0aGF0IHRoZSBkZWx0YSBpcyBh bG1vc3QgMCwgYmFzZWQgdXBvbiBteSBleHBlcmllbmNlLiAoSQ0KPiBhZG1pdCB0aGlzIGlzIGEg c3ViamVjdGl2ZSBhbnN3ZXIsIGJlY2F1c2UgSSBjYW5ub3QgcHJvdmUuKS4gV2UgYXJlIHRyeWlu ZyBvdXINCj4gYmVzdCB0byByZWR1Y2UgdGhlIHJpc2sgb2YgdGhlIEZlYXR1cmUgQSogYXMgd2Vs bC4gQXNzdW1pbmcgZGVsdGEgb2YgcmlzayA8PSByaXNrLA0KPiB0aGVuIGl0IHdpbGwgYmVjb21l IHZlcnkgc21hbGxlci4NCj4gDQo+IFNvLCBteSBqdWRnZW1lbnQgaXMgYnkgcmVtb3ZpbmcgUEVJ LCB3ZSBjYW4gcmVkdWNlIHRoZSByaXNrIGludHJvZHVjZSBieSBQRUkNCj4gQ29yZSArIFBFSSBB cmNoIFBFSU0qLiBSZWR1Y2luZyBjb2RlID09IFJlZHVjaW5nIFNlY3VyaXR5IFJpc2suDQo+IEFs c28sIHRoaXMgZ2l2ZXMgdXMgYSBjaGFuY2UgdG8gZm9jdXMgb24gcmV2aWV3aW5nIEZlYXR1cmUg WCBpdHNlbGYsIGluc3RlYWQgb2YgdGhlDQo+IGNvbXBsZXggaW50ZXJhY3Rpb24gd2l0aCBQRUkg Q29yZSArIFBFSSBBcmNoIFBFSU0qLiBSZWR1Y2luZyBjb21wbGV4aXR5ID09DQo+IFJlZHVjaW5n IFNlY3VyaXR5IFJpc2suDQo+IChJbiBoaXN0b3J5LCB3ZSBnb3QgbG90cyBvZiBjb21wbGFpbiBv biB0aGUgY29tcGxleGl0eSBvZiB0aGUgbm9uLWRldGVybWluaXN0aWMNCj4gZmxvdyBieSBDQUxM QkFDSyBhbmQgTk9USUZZIGZ1bmN0aW9uIGluIENvcmUuIEEgZmVhdHVyZSBkZXZlbG9wZXIgbWln aHQgbm90DQo+IGhhdmUgaWRlYSBvbiB3aGVuIHRoZSBjb2RlIHdpbGwgYmUgY2FsbGVkLCBhbmQg d2hhdCB0aGUgc3lzdGVtIHN0YXR1cyBpcyBhdCB0aGF0DQo+IG1vbWVudC4pDQo+IA0KPiANCj4g VGhhbmsgeW91DQo+IFlhbyBKaWV3ZW4NCj4gDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBz LmlvPiBPbiBCZWhhbGYgT2YgSmFtZXMNCj4gPiBCb3R0b21sZXkNCj4gPiBTZW50OiBXZWRuZXNk YXksIE5vdmVtYmVyIDI0LCAyMDIxIDEwOjA3IFBNDQo+ID4gVG86IFlhbywgSmlld2VuIDxqaWV3 ZW4ueWFvQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBHZXJkDQo+ID4gSG9mZm1h bm4gPGtyYXhlbEByZWRoYXQuY29tPg0KPiA+IENjOiBYdSwgTWluIE0gPG1pbi5tLnh1QGludGVs LmNvbT47IEFyZCBCaWVzaGV1dmVsDQo+ID4gPGFyZGIrdGlhbm9jb3JlQGtlcm5lbC5vcmc+OyBK dXN0ZW4sIEpvcmRhbiBMIDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPjsNCj4gPiBCcmlqZXNo IFNpbmdoIDxicmlqZXNoLnNpbmdoQGFtZC5jb20+OyBFcmRlbSBBa3Rhcw0KPiA+IDxlcmRlbWFr dGFzQGdvb2dsZS5jb20+OyBUb20gTGVuZGFja3kgPHRob21hcy5sZW5kYWNreUBhbWQuY29tPg0K PiA+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIFYzIDE1LzI5XSBPdm1mUGtnOiBV cGRhdGUgU2VjRW50cnkubmFzbQ0KPiB0bw0KPiA+IHN1cHBvcnQgVGR4DQo+ID4NCj4gPiBPbiBX ZWQsIDIwMjEtMTEtMjQgYXQgMTQ6MDMgKzAwMDAsIFlhbywgSmlld2VuIHdyb3RlOg0KPiA+ID4g SmFtZXMNCj4gPiA+IEkgYW0gc29ycnkgdGhhdCBpdCBpcyBoYXJkIGZvciBtZSB0byB1bmRlcnN0 YW5kIHlvdXIgcG9pbnQuDQo+ID4gPg0KPiA+ID4gVG8gYmUgaG9uZXN0LCBJIGFtIG5vdCBzdXJl IHdoYXQgaXMgb2JqZWN0aXZlIG9uIHRoZSBkaXNjdXNzaW9uLg0KPiA+ID4gQXJlIHlvdSBxdWVz dGlvbiB0aGUgZ2VuZXJhbCB0aHJlYXQgbW9kZWwgYW5hbHlzaXMgb24gVUVGSSBQSQ0KPiA+ID4g YXJjaGl0ZWN0dXJlPw0KPiA+DQo+ID4gVGhlIG9iamVjdCBpcyBmb3IgbWUgdG8gdW5kZXJzdGFu ZCB3aHkgeW91IHRoaW5rIGVsaW1pbmF0aW5nIFBFSQ0KPiA+IGltcHJvdmVzIHNlY3VyaXR5IGJl Y2F1c2UgSSB0aGluayBpdCBtb3ZlcyBpdCBpbiB0aGUgb3Bwb3NpdGUNCj4gPiBkaXJlY3Rpb24u DQo+ID4NCj4gPiA+IE9yIGFyZSB5b3UgdHJ5aW5nIHRvIHBlcnN1YWRlIG1lIHdlIHNob3VsZCBp bmNsdWRlIFBFSSBpbiBURFZGLA0KPiA+ID4gYmVjYXVzZSB5b3UgdGhpbmsgaXQgaXMgc2FmZXIg dG8gYWRkIGNvZGUgaW4gUEVJID8NCj4gPiA+IE9yIHNvbWV0aGluZyBlbHNlPw0KPiA+ID4NCj4g PiA+IFBsZWFzZSBlbmxpZ2h0ZW4gbWUgdGhhdC4NCj4gPg0KPiA+IFNvbWV3aGVyZSBhIGRlY2lz aW9uIHdhcyB0YWtlbiB0byByZW1vdmUgUEVJIGZyb20gdGhlIE9WTUYgdGhhdCBpcyB1c2VkDQo+ ID4gdG8gYnJpbmcgdXAgVERYIG9uIHRoZSBncm91bmRzIG9mICJpbXByb3Zpbmcgc2VjdXJpdHki LiAgSSdtIHN0cnVnZ2xpbmcNCj4gPiB0byB1bmRlcnN0YW5kIHRoZSByYXRpb25hbGUgZm9yIHRo aXMuDQo+ID4NCj4gPiBKYW1lcw0KPiA+DQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gPg0KPiANCj4g DQo+IA0KPiANCj4gDQoNCg==