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.web09.4360.1610517598541294778 for ; Tue, 12 Jan 2021 21:59:58 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=bHBeIfKQ; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: hao.a.wu@intel.com) IronPort-SDR: RVKjwzRCj9k/tybZ8D7QLuSvQrgpl1Cp2PkSVDOgGq7T+W+tw1I+TsNNU1N5Zq3mTd8E7hk4l5 CMqXGi2q0mqg== X-IronPort-AV: E=McAfee;i="6000,8403,9862"; a="262941191" X-IronPort-AV: E=Sophos;i="5.79,343,1602572400"; d="scan'208";a="262941191" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jan 2021 21:59:57 -0800 IronPort-SDR: ZPEYmDz3qupfNZ/HrwHjuMRpX38vAn76LOCN0GplAWi2GiFqkhL0cfIVgHKLcUVPJknkKWnu9d IW/Ok1UL2yvg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,343,1602572400"; d="scan'208";a="404716995" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by FMSMGA003.fm.intel.com with ESMTP; 12 Jan 2021 21:59:56 -0800 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) 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.1713.5; Tue, 12 Jan 2021 21:59:55 -0800 Received: from fmsmsx605.amr.corp.intel.com (10.18.126.85) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 12 Jan 2021 21:59:55 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 12 Jan 2021 21:59:55 -0800 Received: from NAM02-CY1-obe.outbound.protection.outlook.com (104.47.37.56) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Tue, 12 Jan 2021 21:59:54 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MTyIkfjmBMjiKBnqe1tpS1Qyqyda/3Etl+qYJd8enIC3phHJCfDYPY1TDZuaSiR4NJeKUfQSmJBP3VXm93t0xtyGNmixPCxz9UE4L/r+0AcZWDHLtot4a+9tZU7U2V95Cb/qgWISvEJEdFiz29oOYS5fH1IsCmCTE2o7LjaY/21RRwjtE5clkkyHzgMXuwHNaBYnM8OuL9+00DgzR82ZYyIAasue1yXWvs7I4WzG1JYinRY23TClC3MoM2vCIcm7mnp4EGp44v8pS4XFYp1lwNOXdF8wr7wDwaHhsFsi9GtEff9IFSdVrvCPlom2GzP7pXPsUxw+X1FIikSckWyeoA== 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=NXs0A0Jh3H1zh08vv6M7nP+YFED6dJeGU29ahm4cQps=; b=gO7j7ltCQ0z82j9S6kOsmrKaJ8hhzym1EZGBBjvY+wynjtQGaQiI/5e/YKINd+DoNmLVJBl/OPaVG6Y+ixHWX0MSyaeRtM10C6vWPx+x0hZikjeFhHylD01POs10LNk0Y55H/bE6Cu4kbCtfeFa6DlKib2a4EunuxZaVjM+JmM3/KTyNCempvBNfWIcXGmGRF7Gmt+unvV58/QlTA82Sk1PZunJe+RoeQw8O+/qInGuQO4rHflETff5w9QY4CAGudQkGN7JDfGMrUSgXJTjgMP3KKbETTZaEd32frxHyDlD++HIu7QNY5s0EsyzKVqC8lx1EF2ezcNWmYqJG0x5u5Q== 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=NXs0A0Jh3H1zh08vv6M7nP+YFED6dJeGU29ahm4cQps=; b=bHBeIfKQfidqw33H96Xv5ojTOCtIlVac35CyWY2s+PuifVDcQ2sOFAJT9/n8El6kYtW+Emr7LnzRHiPpmJ7nowMT/dCKl3JYmKdZidvtsCLH1XypfAdHPaNpNG2d2lnjGXJTyuazV20Qb7Q06ZT7OkG/EAq3trzGhAE5egoacEc= Received: from BN8PR11MB3666.namprd11.prod.outlook.com (2603:10b6:408:8c::19) by BN6PR1101MB2163.namprd11.prod.outlook.com (2603:10b6:405:58::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3763.10; Wed, 13 Jan 2021 05:59:53 +0000 Received: from BN8PR11MB3666.namprd11.prod.outlook.com ([fe80::d11e:3b2:e34f:7f0f]) by BN8PR11MB3666.namprd11.prod.outlook.com ([fe80::d11e:3b2:e34f:7f0f%5]) with mapi id 15.20.3763.010; Wed, 13 Jan 2021 05:59:53 +0000 From: "Wu, Hao A" To: "Ni, Ray" , Laszlo Ersek , "devel@edk2.groups.io" , "Luo, Heng" CC: "Kinney, Michael D" Subject: Re: [edk2-devel] [Patch V3 2/2] MdeModulePkg/Bus/Pci/PciBusDxe: Support PCIe Resizable BAR Capability Thread-Topic: [edk2-devel] [Patch V3 2/2] MdeModulePkg/Bus/Pci/PciBusDxe: Support PCIe Resizable BAR Capability Thread-Index: AQHW4mc//McFRNhEhkScVihm5VCAFKoi3byAgABymwCAAcxw0A== Date: Wed, 13 Jan 2021 05:59:53 +0000 Message-ID: References: <20210104065954.3901-1-heng.luo@intel.com> <20210104065954.3901-2-heng.luo@intel.com> <9a081622-94c8-d921-1631-b595f189c807@redhat.com> In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.218] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e88355ae-619c-4edd-defe-08d8b788729c x-ms-traffictypediagnostic: BN6PR1101MB2163: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: kZvVAxRMu5V8Gc9P4/CrNhuuCkzE1i5LF+JekGOrKEQaj5OBYsBWVhk79oGCIWIKgHwvst2ZtqR1aAMdRjsRjEvJGOaSdZ2GdviePkqJYbIzU7ziN7zA/6GOOqEkkgIwH7Y0Z19egi5Ywt/sqz5QikXp7MsKMi8mH30zZnvOWV6EXKinYvjHrySPCcoMXhMwfBwqwJXDwMjNhc2GO/aa8vk7CqbhrcRaWuqmNNiEi9B0XopAYE4rQdzFGQ08FAfZ9Ody9v8+LYMoms7jBEIZIZxMSJv2Xz/2HLU63oNBWZSkQ192eSFK4dojg/R0j/DlAroVBB39bDBWTn9FogezYUVPI8GElpxHpldCGS3OiM4mntxmpjDm0ZayGYhbc/S+hAV2O/nfeQweEsDagEt31vg4qW/ibyga/+2rGmcPRGt1YiCR7ylfGvOgJPaC3Mud44QmcKOic4S1OAUz1WZAlw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN8PR11MB3666.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(136003)(346002)(396003)(376002)(366004)(39860400002)(33656002)(83380400001)(2906002)(6506007)(53546011)(6636002)(86362001)(316002)(4326008)(107886003)(71200400001)(478600001)(966005)(8676002)(9686003)(55016002)(66476007)(64756008)(66556008)(52536014)(76116006)(7696005)(5660300002)(66446008)(8936002)(26005)(110136005)(66946007)(186003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?VTVDT0RoSHN5ZjQ2dGg4cnNrQ3hESm15VTVqUjJlMEhzbFJSTktCQ1ZBN1V5?= =?utf-8?B?MlUyL2lCYllxWXpqREVuY1FpUnBuVG9uRkVlU1pZTWZ6ODd5c29OSWI4ZmxU?= =?utf-8?B?ZGZqMWJXUWoyNGNpK1FyS1o3RUtSZ3poK3pYNk42OHYzZXBRTVVpZU9HRGNa?= =?utf-8?B?MkNvcmRlMjZFbzJzMGJVYzczVjhtWEM3ZzU0TEFBcUhhc0hmVWFMZEtUdXpk?= =?utf-8?B?a0lHZ2J2NG9ZYUNrK2NUbVRueU1NMXZ6TjUvNjRzWFZVQk1VT0dTSk5uR2JF?= =?utf-8?B?aGd3a3Q3bDZscHVmYkdtaWI1aXJzMEdmSEV3NTROd0QvVXFIVEFDU29OZkd4?= =?utf-8?B?Y05lZi9DQ1FyZkNUYlpuSHdXTFVlaU4wNytnRWxURFFMV3FpaDVmT1EvWVcx?= =?utf-8?B?UHhSWjJkSmlhcmJsL1prNVVORWwwc2x0a0xrWUc5QkZ5NVFCR3NhQkp6VDVD?= =?utf-8?B?eUgzVFl6T2NxUllSVDZTVzJxdTRNRmxnTUN1RTBPd2QrcEZEMllKVzlxOUNV?= =?utf-8?B?YzRoQ3hNVFh0RThYVUt0VUdWNUZLaldEaStJS3ZjUi9KbE05cjYxZnB2OGNP?= =?utf-8?B?dlVvTHVCM2tqUWdlcXloMkhNOUVTNWRGbDgrRnBHMUtqYm1mcURmUUFlcG43?= =?utf-8?B?NHNvRkh3QlhKNkN0UEFIL29lZGp2NXdydTFCa0FFZGV5TlRqMk5WOEFNNDVD?= =?utf-8?B?WVE2VUk4c09WTU5wOXIwWngyUHlkdU4xWW1PMGdYdW9KNS9CM2pjbE1UVlgr?= =?utf-8?B?YWtxRmdTdmYzOG01bU0wUkZZNFpFQlZYYzEvWk1OZDZSbWNVck5mTjdUU1pz?= =?utf-8?B?bld1Tk5EKyt2bEdQRWVwVFdEQWlvRWU0VGJ0cVRpMDJtUDQvaGNBc2ZBbDlS?= =?utf-8?B?VXJmUFNSQk9QMEgyMGVFK3o2ZVovdmpZaEp3ODd4bmhTTzJQaEVlT0ZZZmZG?= =?utf-8?B?SWxGbjFHOGNYVVNvSGZod2lpOVJoT1JKQUVSSElqUDZqY3IwSGh5VzBKU2J3?= =?utf-8?B?eGw2SmRUd2wxNFZadzFiQ2ZaWFBwck9jWFllTVFkVHR1QXRPQzJKazR4VUs5?= =?utf-8?B?cTZja1QwYmlCZGdyK2pVWmdyT1NVWTJSMm81bitic1hCeXJ6VVI5Ly91ckVC?= =?utf-8?B?RldhVGREK0pEVnBUWWlKNzR6eEUzVUxwNko3VW9zaGc1dGJnQllLOUpOQndL?= =?utf-8?B?R2k1TzQvWmw1WDBvRjhUZWkvU0tWT2FDN0w4NW0rUjJEYXNQaWdpdXRsd1pr?= =?utf-8?B?S0ZOdEhBdkpNQkVmQjVocVlxNGo0bHdqem92K3FGMkMrdVpZd1RkUTdObHk3?= =?utf-8?Q?0eBtpthG95dxo=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN8PR11MB3666.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e88355ae-619c-4edd-defe-08d8b788729c X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jan 2021 05:59:53.8294 (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: utzxAxzHRwY7GAkAquUHb9njGwIA83VFrLGeZd0n/UL+HNTAX2c1Xl2e/CzsjFOkSRXM52semffYYuVnIqev/Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR1101MB2163 Return-Path: hao.a.wu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBOaSwgUmF5IDxyYXkubmlAaW50 ZWwuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBKYW51YXJ5IDEyLCAyMDIxIDEwOjI4IEFNDQo+IFRv OiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87 IEx1bywgSGVuZw0KPiA8aGVuZy5sdW9AaW50ZWwuY29tPg0KPiBDYzogV3UsIEhhbyBBIDxoYW8u YS53dUBpbnRlbC5jb20+OyBLaW5uZXksIE1pY2hhZWwgRA0KPiA8bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BhdGNoIFYzIDIvMl0gTWRl TW9kdWxlUGtnL0J1cy9QY2kvUGNpQnVzRHhlOg0KPiBTdXBwb3J0IFBDSWUgUmVzaXphYmxlIEJB UiBDYXBhYmlsaXR5DQo+IA0KPiA+ID4gSXQgc2VlbXMgbGlrZSB0aGUgbWF4IEJBUiBzaXplIGlz IHNlbGVjdGVkIGZpcnN0LCBidXQgaWYgdGhlcmUncyBhDQo+ID4gPiAicmVzb3VyY2UgY29uZmxp Y3QiIChydW5uaW5nIG91dCBvZiBhIHBhcnRpY3VsYXIgcmVzb3VyY2UgdHlwZQ0KPiA+ID4gYXBl cnR1cmUpLCB0aGVuIHRoZSBtaW5pbXVtIEJBUiBzaXplIGlzIHNlbGVjdGVkLiBJIGRvbid0IGtu b3cgd2hhdA0KPiA+ID4gc2V0IG9mIGRldmljZXMgYW5kL29yIHJlc2l6YWJsZSBCQVJzIHRoaXMg bG9naWMgYXBwbGllcyB0bywgaWYgdGhlcmUNCj4gPiA+IGFyZSBtdWx0aXBsZSBvZiB0aGVtLg0K PiANCj4gPiA+IFBlciB0aGUgUENJZSBzcGVjaWZpY2F0aW9uIChyZXZpc2lvbiA1LjAsIHZlcnNp b24gMC45KSA3LjguNjoNCj4gPiA+DQo+ID4gPiAgIFNvZnR3YXJlIGRldGVybWluZXMsIHRocm91 Z2ggYSBwcm9wcmlldGFyeSBtZWNoYW5pc20sIHdoYXQgdGhlDQo+ID4gPiAgIG9wdGltYWwgc2l6 ZSBpcyBmb3IgdGhlIHJlc291cmNlLCBhbmQgcHJvZ3JhbXMgdGhhdCBzaXplIHZpYSB0aGUgQkFS DQo+ID4gPiAgIFNpemUgZmllbGQgb2YgdGhlIFJlc2l6YWJsZSBCQVIgQ29udHJvbCByZWdpc3Rl ci4NCj4gPiA+DQo+ID4gPiBGdXJ0aGVybW9yZSwgVGFibGUgNy0xMTQgZGVmaW5lcyB0aGUgQmFy IFNpemUgZmllbGQgb2YgdGhlIGNvbnRyb2wNCj4gPiA+IHJlZ2lzdGVyIHN0YXRpbmc6DQo+ID4g Pg0KPiA+ID4gICBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGlzIGZpZWxkIGlzIGVxdWFsIHRvIHRo ZSBkZWZhdWx0IHNpemUgb2YgdGhlDQo+ID4gPiAgIGFkZHJlc3Mgc3BhY2UgdGhhdCB0aGUgQkFS IHJlc291cmNlIGlzIHJlcXVlc3RpbmcgdmlhIHRoZSBCQVIncw0KPiA+ID4gICByZWFkLW9ubHkg Yml0cy4NCj4gPiA+DQo+ID4gPiBUaGVyZWZvcmUgdGhlIG1heGltdW0gc2l6ZSBpcyBub3QgbmVj ZXNzYXJpbHkgb3B0aW1hbCwgbm9yIHNob3VsZA0KPiA+ID4gdGhlIG1pbmltdW0gc2l6ZSBiZSBj b25zaWRlcmVkIHRoZSBkZWZhdWx0LiAgSW4gZmFjdCwgW3dlXSB0ZXN0ZWQNCj4gPiA+IHZhcmlv dXMgaGFuZG9mZiBCQVIgc2l6ZXMgZm9yIFthIHBhcnRpY3VsYXJdIEdQVSBhbmQgZm91bmQgdGhh dA0KPiA+ID4gV2luZG93cyBkaWRuJ3QgbGlrZSB0aGUgbWF4aW11bSBCQVIgc2l6ZS4NCj4gPiA+ DQo+ID4gPiBFbHNld2hlcmUgaW4gdGhlIGRpc2N1c3Npb24gWzFdIHRoZSBBTUQgYXV0aG9yIG9m IHRoZSBrZXJuZWwgc3VwcG9ydA0KPiA+ID4gZm9yIHJlc2l6ZWFibGUgQkFScyBpbmRpY2F0ZXMg dGhhdCBGUEdBIGRldmljZXMgbWlnaHQgaW1wbGVtZW50IHRoZQ0KPiA+ID4gUkVCQVIgY2FwYWJp bGl0eSBhcyBwYXJ0IG9mIHRoZWlyIHN0YW5kYXJkIFBDSSB3cmFwcGVyIChbb3VyXQ0KPiA+ID4g aW50ZXJwcmV0YXRpb24pLCBidXQgdGhlIEJBUiB1c2FnZSB3b3VsZCBiZSBkZXRlcm1pbmVkIGJ5 IHRoZSBhY3R1YWwNCj4gPiA+IGJpdHN0cmVhbSB3cml0dGVuIHRvIHRoZSBkZXZpY2UsIHRoZXJl Zm9yZSB0aGVyZSBtaWdodCBiZSBhIGZ1bGwNCj4gPiA+IGJpdG1hc2sgZm9yIHRoZSBCQVIgc2l6 ZXMgc3VwcG9ydGVkIGJ5IHRoZSBkZXZpY2UuDQo+ID4gPg0KPiA+ID4gWzFdDQo+ID4gPiBodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAyMS1KYW51YXJ5 L3RocmVhZA0KPiA+ID4gLmh0bWwNCj4gPiA+DQo+ID4gPiBJdCB3b3VsZCBjZXJ0YWlubHkgbWFr ZSBzZW5zZSBmb3IgdGhlIGZpcm13YXJlIHRvIHRha2UgUkVCQVINCj4gPiA+IGNhcGFiaWxpdGll cyBpbnRvIGFjY291bnQgd2hlbiBzaXppbmcgYnJpZGdlIGFwZXJ0dXJlcywgYnV0IHRvDQo+ID4g PiBnZW5lcmljYWxseSBlbmFibGUgZXh0ZW5kZWQgQkFSIHNpemVzIHdvdWxkIG1ha2UgbG90cyBv ZiBhc3N1bXB0aW9ucw0KPiA+ID4gYWJvdXQgdGhlIGRldmljZSB1c2FnZSBhbmQgY29tcGF0aWJp bGl0eS4NCj4gPiA+DQo+ID4gPiBbLi4uXSBBdCBsZWFzdCBmb3IgR1BVcyB0aGUgZXhwZWN0YXRp b24gd291bGQgYmUgYSBkZWZhdWx0LCBzbWFsbGVyDQo+ID4gPiBjb21wYXRpYmlsaXR5IHNpemUg ZXhwYW5kaW5nIHRvIHNvbWUgcmVwcmVzZW50YXRpb24gdGhhdCBhbGxvd3MNCj4gPiA+IGRpcmVj dCBETUEgdG8gdGhlIGVudGlyZSBtZW1vcnkgb2YgdGhlIGNhcmQuDQo+ID4NCj4gPiBTbyB0aGlz IHBhdGNoIHNob3VsZCBlaXRoZXIgYmUgcmV2ZXJ0ZWQ7IG9yIG1pbmltYWxseSwgdGhlIGRlZmF1 bHQNCj4gPiB2YWx1ZSBvZiAiUGNkUGNpZVJlc2l6YWJsZUJhclN1cHBvcnQiIHNob3VsZCBiZSBz ZXQgdG8gRkFMU0UsIGFzIHRoZQ0KPiA+IHBvbGljeSBmb3IgQkFSIHNpemluZyBkb2Vzbid0IGxv b2sgcm9idXN0IG9yIHBvcnRhYmxlLg0KPiA+DQo+ID4NCj4gPiBHZW5lcmFsIHJlcXVlc3QgZm9y IHRoZSBmdXR1cmU6IGlmIHlvdSBpbXBsZW1lbnQgc29tZSBraW5kIG9mIHBvbGljeQ0KPiA+IGlu IGNvcmUgZWRrMiwgcGxlYXNlIGF0IGxlYXN0ICpkb2N1bWVudCogdGhlIHBvbGljeSBzb21ld2hl cmUuIEl0J3MNCj4gPiB1bmFjY2VwdGFibGUgdG8gaGF2ZSB0byBkZWNpcGhlciB0aGUgc291cmNl IGNvZGUgZm9yIHN1Y2ggYSBwb3NzaWJseQ0KPiA+IGltcGFjdGZ1bCBjaGFuZ2UgaW4gdGhlIGNv cmUuIFRoZXJlIGlzIG5vIG5lZWQgZm9yIGEgd2lraSBwYWdlIG9yIGFuDQo+ID4gUkZDLCBidXQg YSBzYW5lIGJ1Z3ppbGxhIHRpY2tldCBhbmQgYSBzYW5lIGNvbW1pdCBtZXNzYWdlIGFyZSByZXF1 aXJlZC4NCj4gPg0KPiA+IChUaGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgUENEIGluIHRoZSAiTWRl TW9kdWxlUGtnLmRlYyIgZmlsZSBpcw0KPiA+IHVuc2F0aXNmYWN0b3J5IHRvbywgYW5kIHRoZSBV TkkgZmlsZSBoYXMgbm90IGJlZW4gdXBkYXRlZCBhdCBhbGwuKQ0KPiA+DQo+IA0KPiANCj4gDQo+ IFlvdXIgdW5kZXJzdGFuZGluZyBpcyBjb3JyZWN0LiBPcmlnaW5hbCBpZGVhIGlzIHRvIGxldCBw bGF0Zm9ybSBzdXBwbHkgdGhlIHBvbGljeQ0KPiBhYm91dCB3aGF0IHRoZSBvcHRpbWFsIEJBUiBz aXplIGlzIGZvciBlYWNoIHJlc2l6YWJsZSBCQVIuDQo+IFRoZSBjdXJyZW50IGltcGxlbWVudGF0 aW9uIGlzIGEgdHJ5IHRvIGF2b2lkIGFza2luZyBwbGF0Zm9ybSBjb2RlIGZvciBzdWNoDQo+IHBv bGljeSBiZWNhdXNlIHdlIHRob3VnaHQgaXQncyBhIGJ1cmRlbiBmb3IgcGxhdGZvcm0gdG8gc3Vw cGx5IHRoZSBwb2xpY3kgZGF0YS4NCj4gDQo+IEkgYWdyZWUgdGhhdCB3ZSBzZXQgdGhlIFBDRCBk ZWZhdWx0IHZhbHVlIGFzIGRpc2FibGVkIGFuZCBhZnRlciBhIHBlcmlvZCBvZg0KPiBzdHVkeSwg d2Ugd2lsbCB1bmRlcnN0YW5kIHdoZXRoZXIgYSBwbGF0Zm9ybSBwb2xpY3kgaXMgcmVhbGx5IG5l ZWRlZC4NCg0KDQpIZWxsbyBMYXN6bG8gYW5kIFJheSwNCg0KSSBzYXcgSGVuZydzIHBhdGNoIHNl cmllcyB0bw0KICAxKSBTZXQgdGhlIFBDRCBkZWZhdWx0IHZhbHVlIHRvIEZBTFNFOiBodHRwczov L2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS83MDEzOQ0KICAyKSBVcGRhdGUgdGhlIFVO SSBmaWxlOiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS83MDE0MA0KaGFz IGdvdCBSZXZpZXdlZC1ieS9BY2tlZC1ieSB0YWdzIGZyb20gcmV2aWV3ZXJzLg0KDQpEbyB5b3Ug aGF2ZSBmdXJ0aGVyIGNvbW1lbnRzIGZvciB0aGUgc2VyaWVzPw0KSWYgbm90LCBJIHdpbGwgbWVy Z2UgdGhpcyBjaGFuZ2UgaW4gdGhlIG5leHQgMjQgaG91cnMuDQoNClRoYW5rcyBpbiBhZHZhbmNl Lg0KDQpCZXN0IFJlZ2FyZHMsDQpIYW8gV3UNCg0KDQo+IA0KPiBUaGFua3MsDQo+IFJheQ0K