From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web08.31672.1628820994388129755 for ; Thu, 12 Aug 2021 19:16:35 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=TVWn8bTW; spf=pass (domain: intel.com, ip: 192.55.52.115, mailfrom: michael.d.kinney@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10074"; a="215217049" X-IronPort-AV: E=Sophos;i="5.84,317,1620716400"; d="scan'208";a="215217049" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Aug 2021 19:16:32 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,317,1620716400"; d="scan'208";a="485725678" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by fmsmga008.fm.intel.com with ESMTP; 12 Aug 2021 19:16:32 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) 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.10; Thu, 12 Aug 2021 19:16:32 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Thu, 12 Aug 2021 19:16:31 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Thu, 12 Aug 2021 19:16:31 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.102) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Thu, 12 Aug 2021 19:16:29 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M+eW565GJPwOED4W7rOAuQdexn2vgHBre+5T5hZOHa/caWymXmE7oufHB0qJimGTX+BuRoYcvt3GaN7qhIC5vDokrN4waTudag2qAyMpUaXLnPVy9rI4S0NpL7MvB2+a4KVCZ6IMGo6mvI+ArK5LVWDyBofEU7u5IqIushSnO8BkXUzMLS/arBOtx9aFW4gRfANHAD9gi+VuZ04wo3PXdE2RKRHZWfNCDan26DUpb96KYF+Csq+wnwNYs5KFK4vAQnDOWIsj3BkCZNSlEOEIw5ZCTUWctQ3Iyv0DYFMw1O62xdGyoXzt9VDBwVNNTx0BM9vxQB5VzkYrw9qQOn6K6Q== 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=3btciBAficTIxxAFlm9jQHS5RtEhex2nyqy3VQHE4eg=; b=S8DcZcOE6byk/HUECTgtataUB/n4QoP75DLskIby3Ys/sYuHtNT0wGIu4RDhQKJUljOG/n0jb73hLTy3Hc33yjHxpEGv7h8yruib7CBZFRmZaDa769zLnfmvkhwrj9X8Zn2CkGlSyFmzJxe0Mo7z4ecCDMs+fBS0DzaU3qWCKGo3KLmXOiqL+7ELU0v24Hq3qG5lXi71WqK+Y+D/XW4IQ6a6mbkh56AlfiNy8Lg+gnxsunNVwzHNbiURLLR1mXVfDv9rqeDEspH9F8rePH+I2k26pSlaQnNl5LldD+TyHXtQoFk7wL5YC8z5vl62Lft1FIyo09QIXtlIInWn5SXqGQ== 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=3btciBAficTIxxAFlm9jQHS5RtEhex2nyqy3VQHE4eg=; b=TVWn8bTWMaH8/GKBfZrT+2Im5Er1vd44KdRtdSe70s4OEKGG+Uf6ydsKsLS4UVsHyYwzSxThKCN7skjw1OVMjsKSHVmRigWTH9z/mrsxURebthSeGFEDWW6pryDoC2MuMhaigQGvzPt/YdnVKEmdPs355iQM4Ef76KmaFoK8DWE= Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by CO1PR11MB5012.namprd11.prod.outlook.com (2603:10b6:303:90::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.17; Fri, 13 Aug 2021 02:16:27 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::41d4:9acf:4230:9084]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::41d4:9acf:4230:9084%8]) with mapi id 15.20.4415.016; Fri, 13 Aug 2021 02:16:27 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "rebecca@nuviainc.com" , Daryl McDaniel , "Carsey, Jaben" , "Kinney, Michael D" Subject: Re: [edk2-devel] [edk2-libc PATCH 1/1] Update LibC to use safe string functions Thread-Topic: [edk2-devel] [edk2-libc PATCH 1/1] Update LibC to use safe string functions Thread-Index: AQHXW7lQZwr+/XrdhUibHEJzsRqZJatxGRoggAABtmA= Date: Fri, 13 Aug 2021 02:16:27 +0000 Message-ID: References: <20210607162145.14377-1-rebecca@nuviainc.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.100.41 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: 558d3179-8d21-4411-75e4-08d95e005b58 x-ms-traffictypediagnostic: CO1PR11MB5012: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2449; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: T71G0pSXRNa290NdNIwU5K8LQ717BarG8dPKDtGvvepLaI8o28PF1mljiFE/txkCNgt9uewFbBwrZghTbDKDe5ivpEpbR7Pzs8fvLr26R0ypXxoe0o6P3m6mf2ItPQD1LOHhpLG9yYcs3HIHDpp9w8McHI7bQPZubJjIXJg/b2br+IN+mPoXOvrkbIiH48Q3KG9a1wnCMfFNqSE167M1DJpPw1Ojl2cABLkuggTkawvlu7RiOowr+55HwUrFOoSFx2sXvc9qshU3XtrDF5fX+R8IsT3xOD566IDN0uf+W4rIvxrtgNvDyJPdDqUioJfbgjub8nUNGR1LtMCp5A/R6iqrOmnhY/y39TpN01WiJ4T9MMv2284CI/luf6tGedAeCD/wWZWHerSE1nlUIHZqZK3VpmQl3DOeQgjQvE4XDJQPHoZR4uDZ6C6XMcPJQ3K6IkC4xMNCjoN2meEDb4njg+ZWdywtvVt9o6GIO9ncOszBLGUAYoisI8gq1nKTZ7A7wTm4tII7seIP1cHphFXdjga5WMvN1hKETmtWlz3VnzezsDSHziZrxyHBuVIRsGROAVndeCQVY7DWy7isW5wztpELcvAneG6iv1TUPNAqoRQpUCLlDOF4uBTjBofMDXKgYxrauhScxHDXv+s1kQAZyh7hXrJf3h0R9TeqsJBZWfLsPE/2hghMyQHJ2++fIBoLU04A7+I0XQ53s+EfpC+kn4aKwqZ/88+P2XsB2h/ZebJEbosRATykjCPV1WZtLkfeRks9d8B7QuNGv2Dae8W0OXqgjzUpcwFryjfIUhlxRBagaFOhQCc6RSr0OD7lHTywrmS1kYf34bAws6+SSrEa2w== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(396003)(136003)(346002)(376002)(366004)(39860400002)(66476007)(66556008)(64756008)(66446008)(316002)(66946007)(76116006)(71200400001)(26005)(186003)(33656002)(966005)(83380400001)(86362001)(2940100002)(478600001)(55016002)(110136005)(7696005)(53546011)(6506007)(8676002)(8936002)(2906002)(9686003)(122000001)(38100700002)(52536014)(15650500001)(5660300002)(38070700005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WnpyT1pSTlBqd0F5bjNCSkNoQnYwY2E1bFEyN0xhdjJTUzBHWnYyQmJoRjRi?= =?utf-8?B?VmlLVjNaZ1pNU0p1bDVUeWxDaDRuVG8yWE4rQXVUQXRCbTZpMzJQdHI5aVYw?= =?utf-8?B?U3lEcG40UjRIellzT0UxVi9BQkZBSUxyMDB6eHFjRS9rTnJHTEp2Y2NmUFMw?= =?utf-8?B?VnlhTTFjRmNqWDA2S3R3Z0xERWpLeW9MdDZKcGVTL1Y0MFVLK3I2V2FLc2hk?= =?utf-8?B?K1VIbFdxM254WWtyMWozZUpyYUtRUmUvSmlyOFpmUGFLY2haOGFLSzRkTVZx?= =?utf-8?B?bnNhb1ZGZWZSVXh1cGxCNXA2VzJHaXU3WE9waTJzUmNoT05DSEVUM1N3Mkgz?= =?utf-8?B?MmxNOFZMNUx1V01TVE9DaldQdWY0WkxEUGU1QitiZUZveTZFdk5OdDY0RGRD?= =?utf-8?B?TFBTZkZ2R3pHcm5MMEl3YW1oOG1mS3JrU1l5OUVLMkZWaERFUytIRWVpS0NF?= =?utf-8?B?ZzZyUng3SVc5SXlMblUyeVc5ckYreUdFYWdmaGVoaURQZGc5U0dmdFNJeGxo?= =?utf-8?B?TEVQUWxUUnlZejBZOThjRzdqZCtqYUhYb3FoYzN6Z212TlJsRitNcGJyTnZG?= =?utf-8?B?dXFjLzQ2SklJSVdYUmRaWnhzZW1kbXFqOVBHNXFHUnFTQ0p1c3IyTWZjWFJx?= =?utf-8?B?Y1g5bGtkd3U1bjQ5T2tVeDVBOUFJL1B5THZlYVc4cnczQ1kvR3BIVXpHKzRP?= =?utf-8?B?R2JaNERXcTJQSjNjWTlLL1JadzB6VHRWTmdnSFJVeGV5Yi9wYURoWG80UHVq?= =?utf-8?B?ZkcyTGdFL09QUjJvWjNSWlhOS05VQ1JyaGNvS1FDemZ2ODVDUmFQWFREMTlk?= =?utf-8?B?emIydTQwbTY5V2g1VkxwRElaSU5sVjhGaXZneTlZc0cxR3V1aUlzaEgrMmJy?= =?utf-8?B?YmxFSGlkVS8vTVF2VktCQUpmSURSMkNzLzkwWUpHeFNOYzVDY0Q4cUFxTjNy?= =?utf-8?B?TlQybG1RajJjWGtYT3VFUWlIdEg3Q2N4ME93YU40c29iMXY4OUJjVnh0NnR3?= =?utf-8?B?dzFlOUtLYnozT0c2bmpLU0NWMGJ5L2IxWEN6a3pscnNkaDJLZHNtVWlLS0dj?= =?utf-8?B?ZmE1RnRDeE8wbm9zcFNwdUd3RTNUaXNubEpnZjFtQ3hyQmE0cnZNQ0kwV2t1?= =?utf-8?B?WktYYTVzT2RXRzFrQk55V0lPMGxCaVFJK1FVbzlSRG5WVENtT1NDOWk3djRE?= =?utf-8?B?Z1VzK2Y0cnJWT1JSUzZYWFY2ZzFydi91bTNzMGNEMDlzUEVpS0VibWtKWkEy?= =?utf-8?B?ZVExdEtleU1yL0JVOUxTb2xHcjlRRVlmTC8vbDcyWU4xeEo0dy9WcHpBZnhh?= =?utf-8?B?emJidWZwREJOaVg1ZWhVU0lmM0ltbVBFT0JVOTVETGZnMnpPMldOQ1JSWm1F?= =?utf-8?B?bjlnM0xVWVVvenU0UGFsMS9HeFpLTTFIZXR4QWlVYzFtVU9JNFBlRzMxemlR?= =?utf-8?B?NWR1WXRSYXRFMHFpdmpjeitVQ1l5ZEl5UmpKUnJySDZiY1lvQUJiVmRNWWhx?= =?utf-8?B?cHEzdXdlWEZMOWp3YmdJUThxbzNTRlhaMkZMM1hFOWczTGc2UFh4Y2d5RWVr?= =?utf-8?B?RldoSnpxaHQ5VHd6VlBsRGpKQm1ON3dhRWJsY1lzS0lkYW1NTVNLRzhsR2lG?= =?utf-8?B?dDBLRVBvc29EcHU0R0NXeWFMMEFLbTFUajd2NVY5b3B4R2VBRkU5SWpkYW8z?= =?utf-8?B?eXc1STFSYlh5VENhdnBHMXhtelZJTU1IRVlycXFjK2lkTm1rRkhtL0NUbGhV?= =?utf-8?Q?Zth0h5OB6PPB/Ph7ulKxUqyu/aEL9lOO8LAuWsf?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 558d3179-8d21-4411-75e4-08d95e005b58 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Aug 2021 02:16:27.4732 (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: zss53hd0W9JWTFfjC1MbBRIKHt7eFjbEjt58UOz8FNBDXLhT5ZJ4E0sJ/cAAPPjbpRLIT963dB77DikWr9whsTUcvI/rydOUrnaO7uea3Qo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB5012 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UHVzaGVkIDY2ZGQyMThiODljNmNmODRiNDM5NjE4MzM4YzU2MzI3NGVkMGFlNGMNCg0KTWlrZQ0K DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEtpbm5leSwgTWljaGFlbCBE IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gU2VudDogVGh1cnNkYXksIEF1Z3VzdCAx MiwgMjAyMSA3OjEwIFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgcmViZWNjYUBudXZp YWluYy5jb207IERhcnlsIE1jRGFuaWVsIDxlZGsyLWxpc3RzQG1jMnJlc2VhcmNoLm9yZz47IENh cnNleSwgSmFiZW4NCj4gPGphYmVuLmNhcnNleUBpbnRlbC5jb20+OyBLaW5uZXksIE1pY2hhZWwg RCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZl bF0gW2VkazItbGliYyBQQVRDSCAxLzFdIFVwZGF0ZSBMaWJDIHRvIHVzZSBzYWZlIHN0cmluZyBm dW5jdGlvbnMNCj4gDQo+IFJldmlld2VkLWJ5OiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT4NCj4gDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBP biBCZWhhbGYgT2YgUmViZWNjYSBDcmFuDQo+ID4gU2VudDogTW9uZGF5LCBKdW5lIDcsIDIwMjEg OToyMiBBTQ0KPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgRGFyeWwgTWNEYW5pZWwgPGVk azItbGlzdHNAbWMycmVzZWFyY2gub3JnPjsgQ2Fyc2V5LCBKYWJlbiA8amFiZW4uY2Fyc2V5QGlu dGVsLmNvbT4NCj4gPiBDYzogUmViZWNjYSBDcmFuIDxyZWJlY2NhQG51dmlhaW5jLmNvbT4NCj4g PiBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW2VkazItbGliYyBQQVRDSCAxLzFdIFVwZGF0ZSBMaWJD IHRvIHVzZSBzYWZlIHN0cmluZyBmdW5jdGlvbnMNCj4gPg0KPiA+IFRoZSBpbnNlY3VyZSBzdHJp bmcgZnVuY3Rpb25zIHN1Y2ggYXMgU3RyQ3B5IHdlcmUgcmVtb3ZlZCBhIHdoaWxlIGFnbywNCj4g PiBicmVha2luZyB0aGUgU3RkTGliIGJ1aWxkLiBNaWdyYXRlIFN0ZExpYi9MaWJDIHRvIHRoZSBz YWZlIHN0cmluZw0KPiA+IHZlcnNpb25zLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogUmViZWNj YSBDcmFuIDxyZWJlY2NhQG51dmlhaW5jLmNvbT4NCj4gPiAtLS0NCj4gPiAgU3RkTGliL0xpYkMv U3RkTGliL0Vudmlyb25zLmMgICAgICAgICAgIHwgMTEgKysrKysrLS0tLS0NCj4gPiAgU3RkTGli L0xpYkMvU3RkTGliL3JlYWxwYXRoLmMgICAgICAgICAgIHwgIDUgKysrLS0NCj4gPiAgU3RkTGli L0xpYkMvU3RyaW5nL0NvbmNhdGVuYXRpb24uYyAgICAgIHwgIDcgKysrKystLQ0KPiA+ICBTdGRM aWIvTGliQy9TdHJpbmcvQ29weWluZy5jICAgICAgICAgICAgfCAgNyArKysrKy0tDQo+ID4gIFN0 ZExpYi9MaWJDL1VlZmkvRGV2aWNlcy9VdGlsaXR5L1BhdGguYyB8ICAzICsrLQ0KPiA+ICBTdGRM aWIvTGliQy9VZWZpL1N5c0NhbGxzLmMgICAgICAgICAgICAgfCAgNSArKystLQ0KPiA+ICBTdGRM aWIvTGliQy9XY2hhci9Db25jYXRlbmF0aW9uLmMgICAgICAgfCAgNiArKysrLS0NCj4gPiAgU3Rk TGliL0xpYkMvV2NoYXIvQ29weWluZy5jICAgICAgICAgICAgIHwgIDQgKystLQ0KPiA+ICA4IGZp bGVzIGNoYW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4g ZGlmZiAtLWdpdCBhL1N0ZExpYi9MaWJDL1N0ZExpYi9FbnZpcm9ucy5jIGIvU3RkTGliL0xpYkMv U3RkTGliL0Vudmlyb25zLmMNCj4gPiBpbmRleCBhMjljYjk5NTRjZjkuLmFkNTY2Mjk1NTRkZiAx MDA2NDQNCj4gPiAtLS0gYS9TdGRMaWIvTGliQy9TdGRMaWIvRW52aXJvbnMuYw0KPiA+ICsrKyBi L1N0ZExpYi9MaWJDL1N0ZExpYi9FbnZpcm9ucy5jDQo+ID4gQEAgLTE1MSw3ICsxNTEsNyBAQCBz eXN0ZW0oY29uc3QgY2hhciAqc3RyaW5nKQ0KPiA+ICAgIGlmKCBzdHJpbmcgPT0gTlVMTCkgew0K PiA+ICAgICAgcmV0dXJuIDE7DQo+ID4gICAgfQ0KPiA+IC0gICh2b2lkKUFzY2lpU3RyVG9Vbmlj b2RlU3RyKCBzdHJpbmcsIGdNRC0+VVN0cmluZyk7DQo+ID4gKyAgKHZvaWQpQXNjaWlTdHJUb1Vu aWNvZGVTdHJTIChzdHJpbmcsIGdNRC0+VVN0cmluZywgVU5JQ09ERV9TVFJJTkdfTUFYKTsNCj4g PiAgICBPcFN0YXQgPSBTaGVsbEV4ZWN1dGUoICZNeUhhbmRsZSwgZ01ELT5VU3RyaW5nLCBGQUxT RSwgTlVMTCwgJkNtZFN0YXQpOw0KPiA+ICAgIGlmKE9wU3RhdCA9PSBSRVRVUk5fU1VDQ0VTUykg ew0KPiA+ICAgICAgRUZJZXJybm8gPSBDbWRTdGF0Ow0KPiA+IEBAIC0xNzcsMTAgKzE3NywxMSBA QCBjaGFyICAgKmdldGVudihjb25zdCBjaGFyICpuYW1lKQ0KPiA+ICAgIGNvbnN0IENIQVIxNiAg KkVmaUVudjsNCj4gPiAgICBjaGFyICAgICAgICAgICpyZXR2YWwgPSBOVUxMOw0KPiA+DQo+ID4g LSAgKHZvaWQpQXNjaWlTdHJUb1VuaWNvZGVTdHIoIG5hbWUsIGdNRC0+VVN0cmluZyk7DQo+ID4g KyAgKHZvaWQpQXNjaWlTdHJUb1VuaWNvZGVTdHJTIChuYW1lLCBnTUQtPlVTdHJpbmcsIFVOSUNP REVfU1RSSU5HX01BWCk7DQo+ID4gICAgRWZpRW52ID0gU2hlbGxHZXRFbnZpcm9ubWVudFZhcmlh YmxlKGdNRC0+VVN0cmluZyk7DQo+ID4gICAgaWYoRWZpRW52ICE9IE5VTEwpIHsNCj4gPiAtICAg IHJldHZhbCA9IFVuaWNvZGVTdHJUb0FzY2lpU3RyKCBFZmlFbnYsIGdNRC0+QVNnZXRlbnYpOw0K PiA+ICsgICAgKHZvaWQpVW5pY29kZVN0clRvQXNjaWlTdHJTIChFZmlFbnYsIGdNRC0+QVNnZXRl bnYsIFVOSUNPREVfU1RSSU5HX01BWCk7DQo+ID4gKyAgICByZXR2YWwgPSBnTUQtPkFTZ2V0ZW52 Ow0KPiA+ICAgIH0NCj4gPg0KPiA+ICAgIHJldHVybiByZXR2YWw7DQo+ID4gQEAgLTIzOCw4ICsy MzksOCBAQCBzZXRlbnYgKA0KPiA+ICAgICAgLy8NCj4gPiAgICAgIC8vICBDb252ZXJ0IHRoZSBz dHJpbmdzDQo+ID4gICAgICAvLw0KPiA+IC0gICAgQXNjaWlTdHJUb1VuaWNvZGVTdHIgKCBuYW1l LCBVTmFtZSApOw0KPiA+IC0gICAgQXNjaWlTdHJUb1VuaWNvZGVTdHIgKCB2YWx1ZSwgVVZhbHVl ICk7DQo+ID4gKyAgICBBc2NpaVN0clRvVW5pY29kZVN0clMgKG5hbWUsIFVOYW1lLCBVTklDT0RF X1NUUklOR19NQVgpOw0KPiA+ICsgICAgQXNjaWlTdHJUb1VuaWNvZGVTdHJTICh2YWx1ZSwgVVZh bHVlLCBVTklDT0RFX1NUUklOR19NQVgpOw0KPiA+DQo+ID4gICAgICAvLw0KPiA+ICAgICAgLy8g IERldGVybWluZSBpZiB0aGUgc3RyaW5nIGlzIGFscmVhZHkgcHJlc2VudA0KPiA+IGRpZmYgLS1n aXQgYS9TdGRMaWIvTGliQy9TdGRMaWIvcmVhbHBhdGguYyBiL1N0ZExpYi9MaWJDL1N0ZExpYi9y ZWFscGF0aC5jDQo+ID4gaW5kZXggNmQ3NWYxN2EzOTRkLi5hOGZmMWU5ZDViMWQgMTAwNjQ0DQo+ ID4gLS0tIGEvU3RkTGliL0xpYkMvU3RkTGliL3JlYWxwYXRoLmMNCj4gPiArKysgYi9TdGRMaWIv TGliQy9TdGRMaWIvcmVhbHBhdGguYw0KPiA+IEBAIC0xNCw2ICsxNCw3IEBADQo+ID4gICNpbmNs dWRlIDxMaWJyYXJ5L0Jhc2VMaWIuaD4NCj4gPiAgI2luY2x1ZGUgPExpYnJhcnkvTWVtb3J5QWxs b2NhdGlvbkxpYi5oPg0KPiA+ICAjaW5jbHVkZSA8ZXJybm8uaD4NCj4gPiArI2luY2x1ZGUgPGxp bWl0cy5oPg0KPiA+DQo+ID4gIC8qKiBUaGUgcmVhbHBhdGgoKSBmdW5jdGlvbiBzaGFsbCBkZXJp dmUsIGZyb20gdGhlIHBhdGhuYW1lIHBvaW50ZWQgdG8gYnkNCj4gPiAgICAgIGZpbGVfbmFtZSwg YW4gYWJzb2x1dGUgcGF0aG5hbWUgdGhhdCBuYW1lcyB0aGUgc2FtZSBmaWxlLCB3aG9zZSByZXNv bHV0aW9uDQo+ID4gQEAgLTQ3LDggKzQ4LDggQEAgcmVhbHBhdGgoDQo+ID4gICAgICBlcnJubyA9 IEVOT01FTTsNCj4gPiAgICAgIHJldHVybiAoTlVMTCk7DQo+ID4gICAgfQ0KPiA+IC0gIEFzY2lp U3RyVG9Vbmljb2RlU3RyKGZpbGVfbmFtZSwgVGVtcCk7DQo+ID4gKyAgQXNjaWlTdHJUb1VuaWNv ZGVTdHJTIChmaWxlX25hbWUsIFRlbXAsIFVOSUNPREVfU1RSSU5HX01BWCk7DQo+ID4gICAgUGF0 aENsZWFuVXBEaXJlY3RvcmllcyhUZW1wKTsNCj4gPiAtICBVbmljb2RlU3RyVG9Bc2NpaVN0cihU ZW1wLCByZXNvbHZlZF9uYW1lKTsNCj4gPiArICBVbmljb2RlU3RyVG9Bc2NpaVN0clMgKFRlbXAs IHJlc29sdmVkX25hbWUsIFVOSUNPREVfU1RSSU5HX01BWCk7DQo+ID4gICAgcmV0dXJuIChyZXNv bHZlZF9uYW1lKTsNCj4gPiAgfQ0KPiA+IGRpZmYgLS1naXQgYS9TdGRMaWIvTGliQy9TdHJpbmcv Q29uY2F0ZW5hdGlvbi5jIGIvU3RkTGliL0xpYkMvU3RyaW5nL0NvbmNhdGVuYXRpb24uYw0KPiA+ IGluZGV4IGU3NmJlYTBiZjg1OC4uZjc4ODM2ZmJlMGQ2IDEwMDY0NA0KPiA+IC0tLSBhL1N0ZExp Yi9MaWJDL1N0cmluZy9Db25jYXRlbmF0aW9uLmMNCj4gPiArKysgYi9TdGRMaWIvTGliQy9TdHJp bmcvQ29uY2F0ZW5hdGlvbi5jDQo+ID4gQEAgLTE1LDYgKzE1LDcgQEANCj4gPg0KPiA+ICAjaW5j bHVkZSAgPExpYkNvbmZpZy5oPg0KPiA+DQo+ID4gKyNpbmNsdWRlIDxsaW1pdHMuaD4NCj4gPiAg I2luY2x1ZGUgIDxzdHJpbmcuaD4NCj4gPg0KPiA+ICAvKiogVGhlIHN0cmNhdCBmdW5jdGlvbiBh cHBlbmRzIGEgY29weSBvZiB0aGUgc3RyaW5nIHBvaW50ZWQgdG8gYnkgczINCj4gPiBAQCAtMjgs NyArMjksOCBAQA0KPiA+ICBjaGFyICoNCj4gPiAgc3RyY2F0KGNoYXIgKiBfX3Jlc3RyaWN0IHMx LCBjb25zdCBjaGFyICogX19yZXN0cmljdCBzMikNCj4gPiAgew0KPiA+IC0gIHJldHVybiBBc2Np aVN0ckNhdCggczEsIHMyKTsNCj4gPiArICBBc2NpaVN0ckNhdFMgKHMxLCBVTklDT0RFX1NUUklO R19NQVgsIHMyKTsNCj4gPiArICByZXR1cm4gczE7DQo+ID4gIH0NCj4gPg0KPiA+ICAvKiogVGhl IHN0cm5jYXQgZnVuY3Rpb24gYXBwZW5kcyBub3QgbW9yZSB0aGFuIG4gY2hhcmFjdGVycyAoYSBu dWxsIGNoYXJhY3Rlcg0KPiA+IEBAIC00Myw3ICs0NSw4IEBAIHN0cmNhdChjaGFyICogX19yZXN0 cmljdCBzMSwgY29uc3QgY2hhciAqIF9fcmVzdHJpY3QgczIpDQo+ID4gIGNoYXIgKg0KPiA+ICBz dHJuY2F0KGNoYXIgKiBfX3Jlc3RyaWN0IHMxLCBjb25zdCBjaGFyICogX19yZXN0cmljdCBzMiwg c2l6ZV90IG4pDQo+ID4gIHsNCj4gPiAtICByZXR1cm4gQXNjaWlTdHJuQ2F0KCBzMSwgczIsIG4p Ow0KPiA+ICsgIEFzY2lpU3RybkNhdFMgKHMxLCBVTklDT0RFX1NUUklOR19NQVgsIHMyLCBuKTsN Cj4gPiArICByZXR1cm4gczE7DQo+ID4gIH0NCj4gPg0KPiA+ICAvKiogVGhlIHN0cm5jYXRYIGZ1 bmN0aW9uIGFwcGVuZHMgbm90IG1vcmUgdGhhbiBuIGNoYXJhY3RlcnMgKGEgbnVsbCBjaGFyYWN0 ZXINCj4gPiBkaWZmIC0tZ2l0IGEvU3RkTGliL0xpYkMvU3RyaW5nL0NvcHlpbmcuYyBiL1N0ZExp Yi9MaWJDL1N0cmluZy9Db3B5aW5nLmMNCj4gPiBpbmRleCAzMjM0ZWNjZjA4MDguLmNjMjA3N2E1 YjgwYSAxMDA2NDQNCj4gPiAtLS0gYS9TdGRMaWIvTGliQy9TdHJpbmcvQ29weWluZy5jDQo+ID4g KysrIGIvU3RkTGliL0xpYkMvU3RyaW5nL0NvcHlpbmcuYw0KPiA+IEBAIC0xNiw2ICsxNiw3IEBA DQo+ID4NCj4gPiAgI2luY2x1ZGUgIDxMaWJDb25maWcuaD4NCj4gPg0KPiA+ICsjaW5jbHVkZSA8 bGltaXRzLmg+DQo+ID4gICNpbmNsdWRlICA8c3RkbGliLmg+DQo+ID4gICNpbmNsdWRlICA8c3Ry aW5nLmg+DQo+ID4NCj4gPiBAQCAtNzMsNyArNzQsOCBAQCBzdHJjcHkoY2hhciAqIF9fcmVzdHJp Y3QgczEsIGNvbnN0IGNoYXIgKiBfX3Jlc3RyaWN0IHMyKQ0KPiA+DQo+ID4gICAgLy93aGlsZSAo ICpzMSsrID0gKnMyKyspICAvKiBFbXB0eSBCb2R5ICovOw0KPiA+ICAgIC8vcmV0dXJuKHMxcmV0 KTsNCj4gPiAtICByZXR1cm4gQXNjaWlTdHJDcHkoIHMxLCBzMik7DQo+ID4gKyAgQXNjaWlTdHJD cHlTIChzMSwgVU5JQ09ERV9TVFJJTkdfTUFYLCBzMik7DQo+ID4gKyAgcmV0dXJuIHMxOw0KPiA+ ICB9DQo+ID4NCj4gPiAgLyoqIFRoZSBzdHJuY3B5IGZ1bmN0aW9uIGNvcGllcyBub3QgbW9yZSB0 aGFuIG4gY2hhcmFjdGVycyAoY2hhcmFjdGVycyB0aGF0DQo+ID4gQEAgLTg5LDcgKzkxLDggQEAg c3RyY3B5KGNoYXIgKiBfX3Jlc3RyaWN0IHMxLCBjb25zdCBjaGFyICogX19yZXN0cmljdCBzMikN Cj4gPiAgKiovDQo+ID4gIGNoYXIgICAgICpzdHJuY3B5KGNoYXIgKiBfX3Jlc3RyaWN0IHMxLCBj b25zdCBjaGFyICogX19yZXN0cmljdCBzMiwgc2l6ZV90IG4pDQo+ID4gIHsNCj4gPiAtICByZXR1 cm4gQXNjaWlTdHJuQ3B5KCBzMSwgczIsIG4pOw0KPiA+ICsgIEFzY2lpU3RybkNweVMgKHMxLCBV TklDT0RFX1NUUklOR19NQVgsIHMyLCBuKTsNCj4gPiArICByZXR1cm4gczE7DQo+ID4gICAgLy9j aGFyICpkZXN0ID0gczE7DQo+ID4NCj4gPiAgICAvL3doaWxlKG4gIT0gMCkgew0KPiA+IGRpZmYg LS1naXQgYS9TdGRMaWIvTGliQy9VZWZpL0RldmljZXMvVXRpbGl0eS9QYXRoLmMgYi9TdGRMaWIv TGliQy9VZWZpL0RldmljZXMvVXRpbGl0eS9QYXRoLmMNCj4gPiBpbmRleCA5NjM5MmUwMThkYWMu LmQ2NzI4ZDNhNjQ3ZSAxMDA2NDQNCj4gPiAtLS0gYS9TdGRMaWIvTGliQy9VZWZpL0RldmljZXMv VXRpbGl0eS9QYXRoLmMNCj4gPiArKysgYi9TdGRMaWIvTGliQy9VZWZpL0RldmljZXMvVXRpbGl0 eS9QYXRoLmMNCj4gPiBAQCAtMTEwLDcgKzExMCw4IEBAIE5vcm1hbGl6ZVBhdGgoIGNvbnN0IGNo YXIgKnBhdGgpDQo+ID4gICAgd2NoYXJfdCAgKk5ld1BhdGg7DQo+ID4gICAgc2l6ZV90ICAgIExl bmd0aDsNCj4gPg0KPiA+IC0gIE9sZFBhdGggPSBBc2NpaVN0clRvVW5pY29kZVN0cihwYXRoLCBn TUQtPlVTdHJpbmcpOw0KPiA+ICsgIEFzY2lpU3RyVG9Vbmljb2RlU3RyUyAocGF0aCwgZ01ELT5V U3RyaW5nLCBVTklDT0RFX1NUUklOR19NQVgpOw0KPiA+ICsgIE9sZFBhdGggPSBnTUQtPlVTdHJp bmc7DQo+ID4gICAgTGVuZ3RoICA9IHdjc2xlbihPbGRQYXRoKSArIDE7DQo+ID4NCj4gPiAgICBO ZXdQYXRoID0gY2FsbG9jKExlbmd0aCwgc2l6ZW9mKHdjaGFyX3QpKTsNCj4gPiBkaWZmIC0tZ2l0 IGEvU3RkTGliL0xpYkMvVWVmaS9TeXNDYWxscy5jIGIvU3RkTGliL0xpYkMvVWVmaS9TeXNDYWxs cy5jDQo+ID4gaW5kZXggZmFhNzNlZDdhNGVlLi5lODNiNzIzMDhmYmUgMTAwNjQ0DQo+ID4gLS0t IGEvU3RkTGliL0xpYkMvVWVmaS9TeXNDYWxscy5jDQo+ID4gKysrIGIvU3RkTGliL0xpYkMvVWVm aS9TeXNDYWxscy5jDQo+ID4gQEAgLTEzMjAsNyArMTMyMCw4IEBAIGNoYXINCj4gPiAgICAgIGVy cm5vID0gRVJBTkdFOw0KPiA+ICAgICAgcmV0dXJuIChOVUxMKTsNCj4gPiAgICB9DQo+ID4gLSAg cmV0dXJuIChVbmljb2RlU3RyVG9Bc2NpaVN0cihDd2QsIGJ1ZikpOw0KPiA+ICsgIFVuaWNvZGVT dHJUb0FzY2lpU3RyUyAoQ3dkLCBidWYsIFVOSUNPREVfU1RSSU5HX01BWCk7DQo+ID4gKyAgcmV0 dXJuIGJ1ZjsNCj4gPiAgfQ0KPiA+DQo+ID4gIC8qKiBDaGFuZ2UgdGhlIGN1cnJlbnQgd29ya2lu ZyBkaXJlY3RvcnkuDQo+ID4gQEAgLTEzNTgsNyArMTM1OSw3IEBAIGNoZGlyIChjb25zdCBjaGFy ICpwYXRoKQ0KPiA+ICAgICAgICAgIGVycm5vID0gRU5PTUVNOw0KPiA+ICAgICAgICAgIHJldHVy biAtMTsNCj4gPiAgICAgICAgfQ0KPiA+IC0gICAgICBBc2NpaVN0clRvVW5pY29kZVN0cihwYXRo LCBVbmljb2RlUGF0aCk7DQo+ID4gKyAgICAgIEFzY2lpU3RyVG9Vbmljb2RlU3RyUyAocGF0aCwg VW5pY29kZVBhdGgsIFVOSUNPREVfU1RSSU5HX01BWCk7DQo+ID4gICAgICAgIFN0YXR1cyA9IGdF ZmlTaGVsbFByb3RvY29sLT5TZXRDdXJEaXIoTlVMTCwgVW5pY29kZVBhdGgpOw0KPiA+ICAgICAg ICBGcmVlUG9vbChVbmljb2RlUGF0aCk7DQo+ID4gICAgICAgIGlmIChFRklfRVJST1IoU3RhdHVz KSkgew0KPiA+IGRpZmYgLS1naXQgYS9TdGRMaWIvTGliQy9XY2hhci9Db25jYXRlbmF0aW9uLmMg Yi9TdGRMaWIvTGliQy9XY2hhci9Db25jYXRlbmF0aW9uLmMNCj4gPiBpbmRleCBjZjU5NWE0NjFm MGUuLjcyODkyNDA5NTFhYSAxMDA2NDQNCj4gPiAtLS0gYS9TdGRMaWIvTGliQy9XY2hhci9Db25j YXRlbmF0aW9uLmMNCj4gPiArKysgYi9TdGRMaWIvTGliQy9XY2hhci9Db25jYXRlbmF0aW9uLmMN Cj4gPiBAQCAtMzEsNyArMzEsOCBAQA0KPiA+ICAqKi8NCj4gPiAgd2NoYXJfdCAqd2NzY2F0KHdj aGFyX3QgKiBfX3Jlc3RyaWN0IHMxLCBjb25zdCB3Y2hhcl90ICogX19yZXN0cmljdCBzMikNCj4g PiAgew0KPiA+IC0gIHJldHVybiAod2NoYXJfdCAqKVN0ckNhdCggKENIQVIxNiAqKXMxLCAoQ09O U1QgQ0hBUjE2ICopczIpOw0KPiA+ICsgIFN0ckNhdFMgKChDSEFSMTYgKilzMSwgVU5JQ09ERV9T VFJJTkdfTUFYLCAoQ09OU1QgQ0hBUjE2ICopczIpOw0KPiA+ICsgIHJldHVybiBzMTsNCj4gPiAg fQ0KPiA+DQo+ID4gIC8qKiBUaGUgd2NzbmNhdCBmdW5jdGlvbiBhcHBlbmRzIG5vdCBtb3JlIHRo YW4gbiB3aWRlIGNoYXJhY3RlcnMgKGEgbnVsbCB3aWRlDQo+ID4gQEAgLTQ0LDUgKzQ1LDYgQEAg d2NoYXJfdCAqd2NzY2F0KHdjaGFyX3QgKiBfX3Jlc3RyaWN0IHMxLCBjb25zdCB3Y2hhcl90ICog X19yZXN0cmljdCBzMikNCj4gPiAgKiovDQo+ID4gIHdjaGFyX3QgKndjc25jYXQod2NoYXJfdCAq IF9fcmVzdHJpY3QgczEsIGNvbnN0IHdjaGFyX3QgKiBfX3Jlc3RyaWN0IHMyLCBzaXplX3QgbikN Cj4gPiAgew0KPiA+IC0gIHJldHVybiAod2NoYXJfdCAqKVN0cm5DYXQoIChDSEFSMTYgKilzMSwg KENPTlNUIENIQVIxNiAqKXMyLCAoVUlOVE4pbik7DQo+ID4gKyAgU3RybkNhdFMgKChDSEFSMTYg KilzMSwgVU5JQ09ERV9TVFJJTkdfTUFYLCAoQ09OU1QgQ0hBUjE2ICopczIsIChVSU5UTiluKTsN Cj4gPiArICByZXR1cm4gczE7DQo+ID4gIH0NCj4gPiBkaWZmIC0tZ2l0IGEvU3RkTGliL0xpYkMv V2NoYXIvQ29weWluZy5jIGIvU3RkTGliL0xpYkMvV2NoYXIvQ29weWluZy5jDQo+ID4gaW5kZXgg NzA3NTQzNzk2NWFkLi44NDhjODM0MTlkZGIgMTAwNjQ0DQo+ID4gLS0tIGEvU3RkTGliL0xpYkMv V2NoYXIvQ29weWluZy5jDQo+ID4gKysrIGIvU3RkTGliL0xpYkMvV2NoYXIvQ29weWluZy5jDQo+ ID4gQEAgLTI5LDcgKzI5LDcgQEANCj4gPiAgKiovDQo+ID4gIHdjaGFyX3QgKndjc2NweSh3Y2hh cl90ICogX19yZXN0cmljdCBzMSwgY29uc3Qgd2NoYXJfdCAqIF9fcmVzdHJpY3QgczIpDQo+ID4g IHsNCj4gPiAtICByZXR1cm4gKHdjaGFyX3QgKilTdHJDcHkoIChDSEFSMTYgKilzMSwgKENPTlNU IENIQVIxNiAqKXMyKTsNCj4gPiArICByZXR1cm4gKHdjaGFyX3QgKilTdHJDcHlTICgoQ0hBUjE2 ICopczEsIFVOSUNPREVfU1RSSU5HX01BWCwgKENPTlNUIENIQVIxNiAqKXMyKTsNCj4gPiAgfQ0K PiA+DQo+ID4gIC8qKiBUaGUgd2NzbmNweSBmdW5jdGlvbiBjb3BpZXMgbm90IG1vcmUgdGhhbiBu IHdpZGUgY2hhcmFjdGVycyAodGhvc2UgdGhhdA0KPiA+IEBAIC00NCw3ICs0NCw3IEBAIHdjaGFy X3QgKndjc2NweSh3Y2hhcl90ICogX19yZXN0cmljdCBzMSwgY29uc3Qgd2NoYXJfdCAqIF9fcmVz dHJpY3QgczIpDQo+ID4gICoqLw0KPiA+ICB3Y2hhcl90ICp3Y3NuY3B5KHdjaGFyX3QgKiBfX3Jl c3RyaWN0IHMxLCBjb25zdCB3Y2hhcl90ICogX19yZXN0cmljdCBzMiwgc2l6ZV90IG4pDQo+ID4g IHsNCj4gPiAtICByZXR1cm4gKHdjaGFyX3QgKilTdHJuQ3B5KCAoQ0hBUjE2ICopczEsIChDT05T VCBDSEFSMTYgKilzMiwgKFVJTlROKW4pOw0KPiA+ICsgIHJldHVybiAod2NoYXJfdCAqKVN0cm5D cHlTICgoQ0hBUjE2ICopczEsIFVOSUNPREVfU1RSSU5HX01BWCwgKENPTlNUIENIQVIxNiAqKXMy LCAoVUlOVE4pbik7DQo+ID4gIH0NCj4gPg0KPiA+ICAvKiogVGhlIHdtZW1jcHkgZnVuY3Rpb24g Y29waWVzIG4gd2lkZSBjaGFyYWN0ZXJzIGZyb20gdGhlIG9iamVjdCBwb2ludGVkIHRvIGJ5DQo+ ID4gLS0NCj4gPiAyLjI2LjINCj4gPg0KPiA+DQo+ID4NCj4gPiANCj4gPg0KDQo=