From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 5D34DAC149D for ; Thu, 21 Sep 2023 16:52:07 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=UI0dsxVc8zrciIzJzsXqlw2MIBfQRWbBh+Vr3B/7MBU=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1695315125; v=1; b=rJlKkdGeJOrTRVvgk1t7vwuD1CAZwuyVWPOKfZBkvwKZmUsuP0Cv4HGV4KOUaKg168GH2dCW iYOxFWcCjDpcmZ88ZfAUPcE5iy4Omw7nB/D/+mpoPcpgN93N4yrNfhlIPNKuYaYhJCZP8P+JVYx tIzi13lmTKxwtjVlIync0qvs= X-Received: by 127.0.0.2 with SMTP id OajrYY7687511xafqOiEqhdo; Thu, 21 Sep 2023 09:52:05 -0700 X-Received: from NAM11-CO1-obe.outbound.protection.outlook.com (NAM11-CO1-obe.outbound.protection.outlook.com [40.107.220.89]) by mx.groups.io with SMTP id smtpd.web11.584.1695315124917485453 for ; Thu, 21 Sep 2023 09:52:05 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NRX1luHsnrgyQ3KR/D/WX3V5LOETNm2MjZFlsUhIAoEU5zpz0lDKB0QjuQte0uZJhJBKyKnYFveyitCLNUr8iENt2j9QRXFkMV5GHXW9TZO+MvRp3C2ZZFG5otdfrMBuDJOkC7+9YoFhSBcdFMsnfTzKSTaEy/7w61eUfuKAW47pol1ekJnT+jXUN2iL8nQ5AI+P7GqFMtg5U2Ebbd2BoHztCbGP8TIGlvXpb6ZpocqvwZVzteOkiskF4gS4/ZTCUcvgPFnHvDNLUWVv7zCkVh6oOJ2bDobptLn7Y3N6IAOLcoXALOJsXlSsTHRzZ0dFUceaBJB+WknTMS2gCELPEQ== 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=peLNsjdQgvfKb723ZVX8a7lj1fLgxfWCP8+x8mBsC/s=; b=GOcyJI6CbWKICqp0EeZ+6lcLZ0LcKArNCK9H3HYQLXMWKSrNrqJWBcpGXZkaZtvCntdqkBs/Wghwr+spkEzyau1Z1l7d6Oqc6TR3pcF23W/XgzK4WGNrAWdNVMlFtwgpT4DxUOXnlfrpxbtBsCImdLOGH2Lp5vgXUMnPU8XnMxM7joLUYcDNV9TckcaQzSzVc/+ys8ZNdnwV5Xo9IvMWiS0YzMJXp+JZH9lJxc1cGnRTlzmPESkobLXw8aXN59NJBQk5mlY5xrdxHwn3OboqE+kDxOT/+YqlsZ+isrlahc8CGThuzWwvxiKdoyGu7GFQUGFtxOKMv/HxPGOREDj7AA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none X-Received: from DS7PR12MB5789.namprd12.prod.outlook.com (2603:10b6:8:74::21) by PH7PR12MB8427.namprd12.prod.outlook.com (2603:10b6:510:242::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.20; Thu, 21 Sep 2023 16:52:02 +0000 X-Received: from DS7PR12MB5789.namprd12.prod.outlook.com ([fe80::639c:a3f3:9403:ed05]) by DS7PR12MB5789.namprd12.prod.outlook.com ([fe80::639c:a3f3:9403:ed05%4]) with mapi id 15.20.6813.017; Thu, 21 Sep 2023 16:52:02 +0000 From: "Jeff Brasen via groups.io" To: Sami Mujawar , "devel@edk2.groups.io" CC: "pierre.gondois@arm.com" , Swatisri Kantamsetti , Ashish Singhal , "nd@arm.com" Subject: Re: [edk2-devel] [PATCH v4 3/4] DynamicTablesPkg: Add support to add Strings to package Thread-Topic: [PATCH v4 3/4] DynamicTablesPkg: Add support to add Strings to package Thread-Index: AQHZ7KunTlUg4pmhrEaiZ40EgsVK9rAlfkug Date: Thu, 21 Sep 2023 16:52:01 +0000 Message-ID: References: <0b3876f84e0044990f18f81f4128de548797ff53.1695049337.git.jbrasen@nvidia.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DS7PR12MB5789:EE_|PH7PR12MB8427:EE_ x-ms-office365-filtering-correlation-id: 61fb7d14-0e86-4212-c1e1-08dbbac313fb x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: ryLbsG4DLpEfJ4jZGyGbQcP5DpC6Luug8fF2G8aboxe6hjb7ldc51W2e5o/HzHiW6p3I+q8v9fpst3GkZ0HuRjdtszg5aoRrUVw7wsFw5Cas9NkbhOZqISCe6nfTNntNB73za+6kANhm4xKg6MdGRy3DJPyyasfn9cBweVkGkG5qS7Uba0O8/l1vShmaS2E9gjXdz6cp/vD/xBNz0bLERXwq1ekQXoegfXFCQt8hlzdercHq2dM/JRefim29wEuGVNlAzUzbCQ87GHQt6Yxrz6IbYTHt+tMRx7JigeyAVlHYfQJZg8QvF5PuqY0mDLj2T30RVlb0FDCVcKHBK18UAVthqlUtPZoLS9bf3Co4v1YICYsV9zF0ZA8Z8qJ5pnMBoWnXr27NB26ZgRH36zAtlmTmvxWP+4n6jTta9U9jBzZ06gLljn7YixMrTDtqZh8ZnkICoeXG9jUPXMe/Ur9D4PqGHh0nEWuGcfe1D2RYradouDBf+FAbGLrW5FfK9Ab9eYERQUV0n5HY1ROkeWHkGFCROXu69UCxpO34bbcC9xTkss25dZKcd4c1PwALDhuD31WoVaEoGOlEWnTwallgjj7k30J4mYYpYTIKaD/wFmfmqA7uu6hJ7G6ypb7+zb6V x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SUNnMDRWVU9td2Y1Q1FTUW1vbjBQc0NwTVhXMUo3M010QjlZSitJL0ROT2h6?= =?utf-8?B?YS8wZVAzZHZ1RkxUMHlPNDFVN20wSTJlaWV1amphcXI5djgybUc1VE5tUGIv?= =?utf-8?B?NkNxd1dHOG5DRnVROGhpM3NyY1h0N2c3Q05RNHRKanFlTVZwTGlEZEl1VVRJ?= =?utf-8?B?clhiZnFyenVUZm9kdEVLdnZOOG9WekF5alBKZGVZY3ZDVmRtblBHaVRUdHRF?= =?utf-8?B?bUdFdUE3ZElTSlprZi9zL1ZaZFJiS213ZmdiZkN1dk1Rd21DQStWZHNQQUFE?= =?utf-8?B?VjFiYWx0OWlmcjh5RWJHNUtxT3VjZEdaZ3o2RWNQaEdRTEFMMUZvcUVHbDF3?= =?utf-8?B?Qi93cjRwUG1pWXJXSmc2MmpnbDloN1dldG5mYm5WRWNkaWlqNW05QlhzS0hT?= =?utf-8?B?amxncEd0OVJaTXVJZVJRc0pEdjQwVkNXWms0cFg5SHRUTzJPZjdlT2JZck8v?= =?utf-8?B?S0p1NCtQRG1KQ2lOQnFDUU50dnVXSUpmaHhvb1dRTXpXc2Z4NEJaSWVnZ01r?= =?utf-8?B?Q0dET2hqMldDWVRxa0UvME9ua3ZEVmcrZHRpcjVaL3gwWUNCMVYvVEZUbndM?= =?utf-8?B?b3VSL3BLKzhxek9QejV5UUdySFRKL0xxbFpnVzlWNHF1eHRtd2svUW5UY09n?= =?utf-8?B?bDhPSFJqRXh6UGtLTjg1T3NHZXYwQVlUcWhXaW5WVlJCOHM4cmpFeFF6T284?= =?utf-8?B?dGZBS1BaZUtsb1BxV1RNVDYxa1VyNWxIVmdjR3pmQW9aZEdCdHYyVTBFa000?= =?utf-8?B?b21KaEorL1F0UVNZNStHRjhyR0ZjaXpLaStEbTJQUElJNWFiVlYxcjhpL3ky?= =?utf-8?B?Q1dudHlyRmhpMGdhNUsrTFh6U1ExYW5hdzRqUC9CU3N6VDRPQTNFSWNkREd4?= =?utf-8?B?VWUwNkJ2Rm4yZXN3UzRxazcvTTQ3b0liWGhLelNMMVpuY0wwVmpmenA2aEhU?= =?utf-8?B?M2tvb2pnYTQrZnFwRFNzMnY4bnZzSWRxR0VZNGlrWXVSZFVPc0JwNjA2cnhn?= =?utf-8?B?WnduMEF1djV5ajkzR3J0V0hnTmhRbUVjM0Nld2FENFFTRjlNWmk2ZlI1cERh?= =?utf-8?B?R0lJUEZYS3NuN1dNQ1JYQVFHbHhqUFhHNW1WbzAreU9ObnZmTjhTU3YrZzZ2?= =?utf-8?B?ekhjbEQ3dWxaY1ZYRzVmOHhzZnNLMC9aYUR1cldPdTM2N3pTWWM2M1ZqOVNK?= =?utf-8?B?QXZhSkVTbWNOaTBPMHNoWEJISUVKOFBBYll3ZW9hNUJESHJQcklBZHQ0Tmgw?= =?utf-8?B?Q2hCbzZTSU93dFlFNUZpVTZVaDBsbGwzem5xM285NEdkVFA5SnptM0dnSEoz?= =?utf-8?B?QXZZQXI4K0pkbTg3VWQ2UG1nVGtQSWpveVhhajVBenV0TCtvNkRFWmhHSEVh?= =?utf-8?B?T2pMY1JNM0tXaUFLdk5FSTJiTDh0bTVsU2pHS0hmK1p6R0hHeFBGM0F6bmFp?= =?utf-8?B?Y2V2akJVK0VlcW90MDJOOW1oQitRQXh2ZmVJdG5QOURCWjZKa254Q2NTekh6?= =?utf-8?B?SXE5ZzBzaVR5UlZwZGM0NUY2MHZNRXFFRXBxNmZDRmtUdXlBRmhOczVLSjk4?= =?utf-8?B?Rjc3Y2ttVW53dFR5R01FcmlkeVhnSHkvZHU4aFVtWDhyMEd5UGJrbm5jZFhh?= =?utf-8?B?aDR5ZThoUjlxc2tZTjd5Vk9LWnFmSGRNNEF4Vy9VN3pjZ1NtcXVQN3pQb0Zj?= =?utf-8?B?SEcxbk53ZHl5SmpUa1BRazA0Mk0xS29qZW5SdlZ1RGNQWDZqakZoK2o5ZUdC?= =?utf-8?B?YWF4ZDRiaWZxZXNUaGUxZWxOQ1pYVXYyVjhmMGF1R3BnSlBGQjk0Z3JoVXZQ?= =?utf-8?B?UmhnRUluWThGTkMxTVBaMEFQUVdIaTJDZXFqN3o0SmJDOTdzUG1pZ3FNeVdw?= =?utf-8?B?eFR4VTJSVFhibE91V1pacDlWVHVMZ3JaMWQ2ZmczY2FvOUhHeTd1SlR5K2Vl?= =?utf-8?B?Y0hYMUorb09QWTBRcmdySkF5blgydC8ydFhsYXVLUWUyOEx0MVBibXNWUzNp?= =?utf-8?B?VlFqNWd2NFZkZVlySjNDMDJHalFaMWVubDkwdGRLTU1ZdmlITmdyMHRZNzJ5?= =?utf-8?B?YXZqcUorRzBWRWhkN0NxeUwrRXZqSjNjb2pOOUR0MU04VWlxYitkbVVFNk55?= =?utf-8?Q?ilDbrXKJrpfw40Xy0HoMDKG1r?= MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB5789.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 61fb7d14-0e86-4212-c1e1-08dbbac313fb X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Sep 2023 16:52:01.9252 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: BLc3dr+kyClQPeWQNjiP70UGGdQ7WooW0TmgV6KfHvNyRQeW6TWBO/xm2KWAdTjrEzSA6RaH2dg0YSb0qAgNxA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB8427 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,jbrasen@nvidia.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: YNu1Pev4PUoHZ5BPrsyTF4Ekx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=rJlKkdGe; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=none; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io SGkgU2FtaSwNCg0KICBUaGF0IHNvdW5kcyBnb29kLg0KDQpUaGFua3MsDQpKZWZmDQoNCj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogU2FtaSBNdWphd2FyIDxzYW1pLm11amF3 YXJAYXJtLmNvbT4NCj4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciAyMSwgMjAyMyAxMDo1MCBB TQ0KPiBUbzogSmVmZiBCcmFzZW4gPGpicmFzZW5AbnZpZGlhLmNvbT47IGRldmVsQGVkazIuZ3Jv dXBzLmlvDQo+IENjOiBwaWVycmUuZ29uZG9pc0Bhcm0uY29tOyBTd2F0aXNyaSBLYW50YW1zZXR0 aSA8c3dhdGlzcmlrQG52aWRpYS5jb20+Ow0KPiBBc2hpc2ggU2luZ2hhbCA8YXNoaXNoc2luZ2hh QG52aWRpYS5jb20+OyBuZEBhcm0uY29tDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjQgMy80XSBE eW5hbWljVGFibGVzUGtnOiBBZGQgc3VwcG9ydCB0byBhZGQgU3RyaW5ncyB0bw0KPiBwYWNrYWdl DQo+IA0KPiBFeHRlcm5hbCBlbWFpbDogVXNlIGNhdXRpb24gb3BlbmluZyBsaW5rcyBvciBhdHRh Y2htZW50cw0KPiANCj4gDQo+IEhpIEplZmYsDQo+IA0KPiBUaGFuayB5b3UgZm9yIHRoaXMgcGF0 Y2guDQo+IA0KPiBQbGVhc2Ugc2VlIG15IHJlc3BvbnNlIGlubGluZSBtYXJrZWQgW1NBTUldLg0K PiANCj4gUmVnYXJkcywNCj4gDQo+IFNhbWkgTXVqYXdhcg0KPiANCj4gT24gMTgvMDkvMjAyMyAw NDo0NiBwbSwgSmVmZiBCcmFzZW4gd3JvdGU6DQo+ID4gQWRkIEFQSSB0byBhZGQgYSBTdHJpbmcg dG8gYSBwYWNrYWdlIGNyZWF0ZWQgd2l0aCBOYW1lZFBhY2thZ2UgQVBJLg0KPiA+DQo+ID4NCj4g Pg0KPiA+IFNpZ25lZC1vZmYtYnk6IEplZmYgQnJhc2VuIDxqYnJhc2VuQG52aWRpYS5jb20+DQo+ ID4NCj4gPiAtLS0NCj4gPg0KPiA+ICAgLi4uL0luY2x1ZGUvTGlicmFyeS9BbWxMaWIvQW1sTGli LmggICAgICAgICAgIHwgMTcgKysrKw0KPiA+DQo+ID4gICAuLi4vQ29tbW9uL0FtbExpYi9Db2Rl R2VuL0FtbENvZGVHZW4uYyAgICAgICAgfCA4OA0KPiArKysrKysrKysrKysrKysrKysrDQo+ID4N Cj4gPiAgIDIgZmlsZXMgY2hhbmdlZCwgMTA1IGluc2VydGlvbnMoKykNCj4gPg0KPiA+DQo+ID4N Cj4gPiBkaWZmIC0tZ2l0IGEvRHluYW1pY1RhYmxlc1BrZy9JbmNsdWRlL0xpYnJhcnkvQW1sTGli L0FtbExpYi5oDQo+ID4gYi9EeW5hbWljVGFibGVzUGtnL0luY2x1ZGUvTGlicmFyeS9BbWxMaWIv QW1sTGliLmgNCj4gPg0KPiA+IGluZGV4IGI4MmM3YTNjZTguLmY0YTQ5MDg3NTMgMTAwNjQ0DQo+ ID4NCj4gPiAtLS0gYS9EeW5hbWljVGFibGVzUGtnL0luY2x1ZGUvTGlicmFyeS9BbWxMaWIvQW1s TGliLmgNCj4gPg0KPiA+ICsrKyBiL0R5bmFtaWNUYWJsZXNQa2cvSW5jbHVkZS9MaWJyYXJ5L0Ft bExpYi9BbWxMaWIuaA0KPiA+DQo+ID4gQEAgLTE0NzIsNCArMTQ3MiwyMSBAQCBBbWxDcmVhdGVD cGNOb2RlICgNCj4gPg0KPiA+ICAgICBPVVQgQU1MX09CSkVDVF9OT0RFX0hBTkRMRSAgKk5ld0Nw Y05vZGUgICBPUFRJT05BTA0KPiA+DQo+ID4gICAgICk7DQo+ID4NCj4gPg0KPiA+DQo+ID4gKy8q KiBBTUwgY29kZSBnZW5lcmF0aW9uIHRvIGFkZCBhIE5hbWVTdHJpbmcgdG8gdGhlIHBhY2thZ2Ug aW4gYSBuYW1lZA0KPiBub2RlLg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAg QHBhcmFtIFtpbl0gIE5hbWVTdHJpbmcgICAgIE5hbWVTdHJpbmcgdG8gYWRkDQo+ID4NCj4gPiAr ICBAcGFyYW0gW2luXSAgTmFtZWROb2RlICAgICAgTm9kZSB0byBhZGQgdGhlIHN0cmluZyB0byB0 aGUgaW5jbHVkZWQNCj4gcGFja2FnZS4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIEByZXR2YWwg RUZJX1NVQ0NFU1MgICAgICAgICAgICAgU3VjY2Vzcy4NCj4gPg0KPiA+ICsgIEByZXR2YWwgRUZJ X0lOVkFMSURfUEFSQU1FVEVSICAgSW52YWxpZCBwYXJhbWV0ZXIuDQo+ID4NCj4gPiArICBAcmV0 dmFsIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICAgIEZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkuDQo+ ID4NCj4gPiArKiovDQo+ID4NCj4gPiArRUZJX1NUQVRVUw0KPiA+DQo+ID4gK0VGSUFQSQ0KPiA+ DQo+ID4gK0FtbEFkZE5hbWVTdHJpbmdUb05hbWVkUGFja2FnZSAoDQo+ID4NCj4gPiArICBJTiBD SEFSOCAgICAgICAgICAgICAgICAgICAqTmFtZVN0cmluZywNCj4gPg0KPiA+ICsgIElOIEFNTF9P QkpFQ1RfTk9ERV9IQU5ETEUgIE5hbWVkTm9kZQ0KPiA+DQo+ID4gKyAgKTsNCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICAgI2VuZGlmIC8vIEFNTF9MSUJfSF8NCj4gPg0KPiA+IGRpZmYgLS1naXQNCj4g PiBhL0R5bmFtaWNUYWJsZXNQa2cvTGlicmFyeS9Db21tb24vQW1sTGliL0NvZGVHZW4vQW1sQ29k ZUdlbi5jDQo+ID4gYi9EeW5hbWljVGFibGVzUGtnL0xpYnJhcnkvQ29tbW9uL0FtbExpYi9Db2Rl R2VuL0FtbENvZGVHZW4uYw0KPiA+DQo+ID4gaW5kZXggZWE1MTlkMWFhOC4uMmFmZDQwNTc1MCAx MDA2NDQNCj4gPg0KPiA+IC0tLQ0KPiBhL0R5bmFtaWNUYWJsZXNQa2cvTGlicmFyeS9Db21tb24v QW1sTGliL0NvZGVHZW4vQW1sQ29kZUdlbi5jDQo+ID4NCj4gPiArKysNCj4gYi9EeW5hbWljVGFi bGVzUGtnL0xpYnJhcnkvQ29tbW9uL0FtbExpYi9Db2RlR2VuL0FtbENvZGVHZW4uYw0KPiA+DQo+ ID4gQEAgLTM2ODUsMyArMzY4NSw5MSBAQCBlcnJvcl9oYW5kbGVyOg0KPiA+DQo+ID4gICAgIEFt bERlbGV0ZVRyZWUgKChBTUxfTk9ERV9IQU5ETEUpQ3BjTm9kZSk7DQo+ID4NCj4gPiAgICAgcmV0 dXJuIFN0YXR1czsNCj4gPg0KPiA+ICAgfQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKy8qKiBBTUwg Y29kZSBnZW5lcmF0aW9uIHRvIGFkZCBhIE5hbWVTdHJpbmcgdG8gdGhlIHBhY2thZ2UgaW4gYSBu YW1lZA0KPiBub2RlLg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgQHBhcmFt IFtpbl0gIE5hbWVTdHJpbmcgICAgIE5hbWVTdHJpbmcgdG8gYWRkDQo+ID4NCj4gPiArICBAcGFy YW0gW2luXSAgTmFtZWROb2RlICAgICAgTm9kZSB0byBhZGQgdGhlIHN0cmluZyB0byB0aGUgaW5j bHVkZWQNCj4gcGFja2FnZS4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIEByZXR2YWwgRUZJX1NV Q0NFU1MgICAgICAgICAgICAgU3VjY2Vzcy4NCj4gPg0KPiA+ICsgIEByZXR2YWwgRUZJX0lOVkFM SURfUEFSQU1FVEVSICAgSW52YWxpZCBwYXJhbWV0ZXIuDQo+ID4NCj4gPiArICBAcmV0dmFsIEVG SV9PVVRfT0ZfUkVTT1VSQ0VTICAgIEZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkuDQo+ID4NCj4g PiArKiovDQo+ID4NCj4gPiArRUZJX1NUQVRVUw0KPiA+DQo+ID4gK0VGSUFQSQ0KPiA+DQo+ID4g K0FtbEFkZE5hbWVTdHJpbmdUb05hbWVkUGFja2FnZSAoDQo+ID4NCj4gPiArICBJTiBDSEFSOCAg ICAgICAgICAgICAgICAgICAqTmFtZVN0cmluZywNCj4gPg0KPiA+ICsgIElOIEFNTF9PQkpFQ1Rf Tk9ERV9IQU5ETEUgIE5hbWVkTm9kZQ0KPiA+DQo+ID4gKyAgKQ0KPiA+DQo+ID4gK3sNCj4gPg0K PiA+ICsgIEVGSV9TVEFUVVMgICAgICAgICAgICAgIFN0YXR1czsNCj4gPg0KPiA+ICsgIEFNTF9E QVRBX05PREUgICAgICAgICAgICpEYXRhTm9kZTsNCj4gPg0KPiA+ICsgIENIQVI4ICAgICAgICAg ICAgICAgICAgICpBbWxOYW1lU3RyaW5nOw0KPiA+DQo+ID4gKyAgVUlOVDMyICAgICAgICAgICAg ICAgICAgQW1sTmFtZVN0cmluZ1NpemU7DQo+ID4NCj4gPiArICBBTUxfT0JKRUNUX05PREVfSEFO RExFICBQYWNrYWdlTm9kZTsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIERhdGFOb2RlID0gTlVM TDsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIGlmICgoTmFtZWROb2RlID09IE5VTEwpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8DQo+ID4NCj4gPiArICAg ICAgKEFtbEdldE5vZGVUeXBlICgoQU1MX05PREVfSEFORExFKU5hbWVkTm9kZSkgIT0NCj4gRUFt bE5vZGVPYmplY3QpDQo+ID4gKyB8fA0KPiA+DQo+ID4gKyAgICAgICghQW1sTm9kZUhhc09wQ29k ZSAoTmFtZWROb2RlLCBBTUxfTkFNRV9PUCwgMCkpKQ0KPiA+DQo+ID4gKyAgew0KPiA+DQo+ID4g KyAgICBBU1NFUlQgKDApOw0KPiA+DQo+ID4gKyAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1F VEVSOw0KPiA+DQo+ID4gKyAgfQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgUGFja2FnZU5vZGUg PSAoQU1MX09CSkVDVF9OT0RFX0hBTkRMRSlBbWxHZXRGaXhlZEFyZ3VtZW50ICgNCj4gPg0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lZE5vZGUsDQo+ ID4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUFtbFBh cnNlSW5kZXhUZXJtMQ0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICk7DQo+ID4NCj4gPiArICBpZiAoKFBhY2thZ2VOb2RlID09IE5VTEwpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwNCj4gPg0KPiA+ICsgICAg ICAoQW1sR2V0Tm9kZVR5cGUgKChBTUxfTk9ERV9IQU5ETEUpUGFja2FnZU5vZGUpICE9DQo+ID4g KyBFQW1sTm9kZU9iamVjdCkgfHwNCj4gPg0KPiA+ICsgICAgICAoIUFtbE5vZGVIYXNPcENvZGUg KFBhY2thZ2VOb2RlLCBBTUxfUEFDS0FHRV9PUCwgMCkpKQ0KPiA+DQo+ID4gKyAgew0KPiA+DQo+ ID4gKyAgICBBU1NFUlQgKDApOw0KPiA+DQo+ID4gKyAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFS QU1FVEVSOw0KPiA+DQo+ID4gKyAgfQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgU3RhdHVzID0g Q29udmVydEFzbE5hbWVUb0FtbE5hbWUgKE5hbWVTdHJpbmcsICZBbWxOYW1lU3RyaW5nKTsNCj4g Pg0KPiA+ICsgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPg0KPiA+ICsgICAgQVNTRVJU ICgwKTsNCj4gPg0KPiA+ICsgICAgcmV0dXJuIFN0YXR1czsNCj4gPg0KPiA+ICsgIH0NCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICsgIFN0YXR1cyA9IEFtbEdldE5hbWVTdHJpbmdTaXplIChBbWxOYW1l U3RyaW5nLCAmQW1sTmFtZVN0cmluZ1NpemUpOw0KPiA+DQo+ID4gKyAgaWYgKEVGSV9FUlJPUiAo U3RhdHVzKSkgew0KPiA+DQo+ID4gKyAgICBBU1NFUlQgKDApOw0KPiA+DQo+ID4gKyAgICBnb3Rv IGV4aXRfaGFuZGxlcjsNCj4gPg0KPiA+ICsgIH0NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIFN0 YXR1cyA9IEFtbENyZWF0ZURhdGFOb2RlICgNCj4gPg0KPiA+ICsgICAgICAgICAgICAgRUFtbE5v ZGVEYXRhVHlwZU5hbWVTdHJpbmcsDQo+ID4NCj4gPiArICAgICAgICAgICAgIChVSU5UOCAqKUFt bE5hbWVTdHJpbmcsDQo+ID4NCj4gPiArICAgICAgICAgICAgIEFtbE5hbWVTdHJpbmdTaXplLA0K PiA+DQo+ID4gKyAgICAgICAgICAgICAmRGF0YU5vZGUNCj4gPg0KPiA+ICsgICAgICAgICAgICAg KTsNCj4gPg0KPiA+ICsgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPg0KPiA+ICsgICAg QVNTRVJUICgwKTsNCj4gPg0KPiA+ICsgICAgZ290byBleGl0X2hhbmRsZXI7DQo+ID4NCj4gPiAr ICB9DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArICBTdGF0dXMgPSBBbWxWYXJMaXN0QWRkVGFpbCAo DQo+ID4NCj4gPiArICAgICAgICAgICAgIChBTUxfTk9ERV9IQU5ETEUpUGFja2FnZU5vZGUsDQo+ ID4NCj4gPiArICAgICAgICAgICAgIChBTUxfTk9ERV9IQU5ETEUpRGF0YU5vZGUNCj4gPg0KPiA+ ICsgICAgICAgICAgICAgKTsNCj4gPg0KPiA+ICsgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7 DQo+ID4NCj4gPiArDQo+ID4NCj4gPiArZXhpdF9oYW5kbGVyOg0KPiA+DQo+ID4gKyAgaWYgKEFt bE5hbWVTdHJpbmcgIT0gTlVMTCkgew0KPiA+DQo+ID4gKyAgICBGcmVlUG9vbCAoQW1sTmFtZVN0 cmluZyk7DQo+ID4NCj4gPiArICB9DQo+ID4NCj4gPiArDQo+IFtTQU1JXSBJIHRoaW5rIHRoZSBl cnJvciBoYW5kbGluZyBjb2RlIGJlbG93IGNhbiBiZSBtb3ZlZCBhZnRlcg0KPiBBbWxWYXJMaXN0 QWRkVGFpbCgpIGFib3ZlIGFuZCBBU1NFUlRfRUZJX0VSUk9SKCkgY2FuIG1lIHJlbW92ZWQuIElm IHlvdQ0KPiBhZ3JlZSwgSSB3aWxsIG1ha2UgdGhpcyBjaGFuZ2UgYmVmb3JlIG1lcmdpbmcgdGhl IHNlcmllcy4NCj4gPg0KW0plZmZdIFRoYXQgc291bmRzIGdvb2QNCj4gPiArICBpZiAoRUZJX0VS Uk9SIChTdGF0dXMpKSB7DQo+ID4NCj4gPiArICAgIGlmIChEYXRhTm9kZSAhPSBOVUxMKSB7DQo+ ID4NCj4gPiArICAgICAgQW1sRGVsZXRlVHJlZSAoKEFNTF9OT0RFX0hBTkRMRSlEYXRhTm9kZSk7 DQo+ID4NCj4gPiArICAgIH0NCj4gPg0KPiA+ICsgIH0NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsg IHJldHVybiBTdGF0dXM7DQo+ID4NCj4gPiArfQ0KPiA+DQoNCgotPS09LT0tPS09LT0tPS09LT0t PS09LQpHcm91cHMuaW8gTGlua3M6IFlvdSByZWNlaXZlIGFsbCBtZXNzYWdlcyBzZW50IHRvIHRo aXMgZ3JvdXAuClZpZXcvUmVwbHkgT25saW5lICgjMTA4OTU3KTogaHR0cHM6Ly9lZGsyLmdyb3Vw cy5pby9nL2RldmVsL21lc3NhZ2UvMTA4OTU3Ck11dGUgVGhpcyBUb3BpYzogaHR0cHM6Ly9ncm91 cHMuaW8vbXQvMTAxNDM2MzM4Lzc2ODYxNzYKR3JvdXAgT3duZXI6IGRldmVsK293bmVyQGVkazIu Z3JvdXBzLmlvClVuc3Vic2NyaWJlOiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvdW5z dWIgW3JlYmVjY2FAb3BlbmZ3LmlvXQotPS09LT0tPS09LT0tPS09LT0tPS09LQoKDQo=