From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B0723A0032; Tue, 16 Nov 2021 18:28:26 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id F2A28426F5; Tue, 16 Nov 2021 18:28:25 +0100 (CET) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id 0A1E54117A for ; Tue, 16 Nov 2021 18:28:23 +0100 (CET) X-IronPort-AV: E=McAfee;i="6200,9189,10169"; a="214465033" X-IronPort-AV: E=Sophos;i="5.87,239,1631602800"; d="scan'208";a="214465033" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Nov 2021 09:16:22 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,239,1631602800"; d="scan'208";a="567276322" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by fmsmga004.fm.intel.com with ESMTP; 16 Nov 2021 09:16:21 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) 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.2242.12; Tue, 16 Nov 2021 09:16:21 -0800 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) 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.12; Tue, 16 Nov 2021 09:16:21 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) 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.2242.12 via Frontend Transport; Tue, 16 Nov 2021 09:16:21 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.171) 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.12; Tue, 16 Nov 2021 09:16:21 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oYy4d+kzbnFPrQilk94IFaIWwl5hRBnHafv5ibZwdZbWGAlARiqF+YfstGbSMfcDnx2jmkishWeMZ1FUN4bHkcWy9apks8ke3jeVjE77CZ34y9mHSpXhqPWmH5m7c4Fuf/SxgCcF+HWKIv5i/ddALzA8g1l/nhi7C6GR2IaQUnpm4de+XNNIxju555kmxvFTpev1gPrsFWNozwzd79QqZHM6O+jYCWVJ49AbvE7i5oRTuZqGcaQEcMRH2R82Fft0/eSqRCyqPo9H3oploV0lBfqlnpIP2MRwHXFyJDk/B8xeIyUkWWGq3ePNRFEpIgyK+1CECyieOnBuZ8RBt/TPkw== 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=FDplPVMM2PpXmJAqppNMF6gYOu2c1CPGyPLJRep/mLA=; b=g2AUk0fsC42EdgGLw6rOYynRbgWvcd7RuJYxP5GBPqvuhIF2MfpaR57gUHN2sPc6wlEUxuvlk+p/2nyctMrrbK08iW4qwcMLpCLyj7+q+YdtWCqgl5K0JLMdlrNX7E+qNA6sxffHHTuLWx78wDT/7ey01yfNXWVxvJY2Oyouiu9PTEV+s7bUzZEzcrvmXFvjlf84QaWlNJN7I03ufuvoU/do1GFbz1fxLVUUzYRzuFWAYmc84YI5vnp7LNnTiTyrdOaG9v98HJsoHAIKQNHrHQxiBiZHNJ9ySK+q+JMdX4AiVYfKgVQexG35IYuAwoZCEqw1vwcsY2ckRhubC/apdw== 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=FDplPVMM2PpXmJAqppNMF6gYOu2c1CPGyPLJRep/mLA=; b=qO2gnct36zYfkLfsF/HzYTI0lnZWBA1UhScvLFC9w4E/nyiVmIPRmYg0/BX0JSWbsTuw+Um/rTsRk/5aWxTqKZ1tB6bC5AOXGufQrWUHk0sF0yxve8l4GQv/1sahy0/Zrddu5A5CQ5Wi9nsycz/DvssOXn1WTZiR/uBLE412SqE= Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by DM6PR11MB4185.namprd11.prod.outlook.com (2603:10b6:5:195::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov 2021 17:16:19 +0000 Received: from DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::2c0c:5383:f814:3b4e]) by DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::2c0c:5383:f814:3b4e%6]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021 17:16:19 +0000 From: "Ananyev, Konstantin" To: Slava Ovsiienko , Elena Agostini , "dev@dpdk.org" Subject: RE: [PATCH v2 1/1] app/testpmd: add GPU memory option in iofwd engine Thread-Topic: [PATCH v2 1/1] app/testpmd: add GPU memory option in iofwd engine Thread-Index: AQHX1wB/xl2ppmyWIUmSJhzCEcV9lKwGX+iAgAAK7PA= Date: Tue, 16 Nov 2021 17:16:19 +0000 Message-ID: References: <20211029204909.21318-1-eagostini@nvidia.com> <20211111214141.26612-1-eagostini@nvidia.com> <20211111214141.26612-2-eagostini@nvidia.com> In-Reply-To: Accept-Language: en-GB, en-US Content-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: 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: 932cc80b-04be-4286-060f-08d9a924ce80 x-ms-traffictypediagnostic: DM6PR11MB4185: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1443; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ctoTyK5Pd23Bw6e2S1AgoiGru8Sm4tXyW9xS1xC62PV9uZ/uHTpAB82CqMHeutJV+feWsoNsVkmnxhtCXo2aShcee9Q4o444vWFYbc80sadbySgYUe1UpekLxw9qsAZI2g3UPrZXTkLqcoL84Vt6BEfnSZTp0PWdUSBnhtq9ZhAUGFk9qp2JDM1kwT+TiQ373qisApf4rbhtoSjgQB1ukl1WDsgff18rdR9cnI+gCGqPj20hhN8wnTHTBvbRd6gh28tc3Gk0iLJkxxdtSLdIiNK1KbXbhpsic2x95vtp37au632g7B33raY1IElGkb0iHXSbceYWzuYb9F5mNUgaw8Ogh0umCzHKu+dezyzlI5UdZFhFdDMDsSQib+XlqFHE8p4nI9mqWJrDc8Gi8qTsfOxaOrsppZXSsufPoEtMY8/Fmot3YFR/ITOMYIuR+ycGiVQLBaiB/kSB6e01h8spTV6J0hXZwmSGlLkBP2T89X5f2NUwWPWaSI6b8ea/vyT3aRofo2C3IwKS/La5FTf7H7L6mT4FEpOGVZDlVZB/EwD8tOGYbl4zcjg8FLA4jLSQ0hm8hzcGnCaq/td/whiAjAx5aOUur/sUV/NEoTeezApUzorc1Y+K8Vr7HsLte9WOF2rg3LPgLts6rYRW+mW7UzSxHn5UGlvHL3KzI+MoXyfZthUaxl8gu3X5vAE2FhttIAGCiebkxdB++iR6QRMJFA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB4491.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(26005)(55016002)(316002)(38100700002)(71200400001)(55236004)(6506007)(66556008)(122000001)(82960400001)(508600001)(83380400001)(9686003)(186003)(66476007)(33656002)(8936002)(66946007)(64756008)(66446008)(76116006)(38070700005)(52536014)(7696005)(86362001)(110136005)(8676002)(5660300002)(2906002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?T2xubzRveGpYSDVaU1J0NCtkSnVjekIzeUM3NjEyUnc1ZEgxT2FZelRxekth?= =?utf-8?B?cnVLQnExeTZYUmdTTWw4N0E0M0FSNGRiQVJCMmx5bDRBcFlSSXBwMnhxT3pB?= =?utf-8?B?OG9tWHZRSHdiYkZ6anoyajBFVGxXemJmSVRoVC9OYXhMVkNNY2FDWUhYRDBD?= =?utf-8?B?ZjdLVFFNNEEvRUZLcUZUL0d0VFhkZHdiM3JORXUzeExzUE9CeGE4QzJmYUFR?= =?utf-8?B?MXlNQTYxSzlycGZtZFc3Vi9RMEZZeVpIVll5dkUvNElXVS9TSm5vRXJtK0RJ?= =?utf-8?B?bGU5a2hXeWhLMnpkQ0l5Qk5XN2doN0J2Zy95T3pqejl2a000bnlVSG5tRlQz?= =?utf-8?B?ZGdnckVybERDcEo3VTJibXEvbmorRXp2V2czbVZwVjByWlF5ekxzZFZ1bFdP?= =?utf-8?B?ZGc5eE53cStQN2VRamZUZmVzNm5YeHUzN2x4VGVzWmZBNWtFNGRhcVZCSFpj?= =?utf-8?B?amhTYkoxN2NxZ1JyWnlIVytkNzRmb2YwK1hOb0tTYm41RHFkeTVmYnNGYjNt?= =?utf-8?B?TEUwUlhQcFpFOHk0dDY1YzhuV2o4cnlXVnlYbG0zVExkSDRFa2xyZlBOZEpK?= =?utf-8?B?aFljYU42a1VrWkVZZDBUN1A0YVZleTdTdUJNUlYydmlLaHhDRGI0ZHdFbmY2?= =?utf-8?B?THkvWUJTdU9EaW1PSjRHZ2FLSURoUC9vSDBqVG5YUUM1TDZHTmVDKzlmOGY4?= =?utf-8?B?WVluVVZNN2pCT3M1bHhpS1BWdnAwNnR2VXZxTWc1YzhteStldW5KZ0lJdUc0?= =?utf-8?B?M0VBeUNmSTNSNGxIZjNtZ0d4Qyt3a1JVME5JODhQNjV1SlVFcXY5ODNxYS9G?= =?utf-8?B?bjRwelowVTJoK1dtQlJxRE9DdDJXSFVEZjlidkZyakdZblZrT2c0MmhsL2t3?= =?utf-8?B?V2NOVzRrL2FldXpPSVlPTmh2R0hKL0ZjUjFWK1BVejMwaUdJWXBsbVloWWFB?= =?utf-8?B?OE1lVGdhZGMxQ0dhUUFoMUI3QW9WZFRlM0NKc1N1WWVNSlJBdDROTlZTM0NR?= =?utf-8?B?TkczaklsT0JiNTF4Q3ZWZlhQUUZoQTFSWHBKcEhLeS9panNYNnVYblc1bmV3?= =?utf-8?B?c3duU3ZIZHQ0U1dMb2JvQ0hVZWZUTmgyTUk3ZXhmakRCUytFM2R6bTRLKys0?= =?utf-8?B?TnVKS3dBV00zY2xsUUpBVVBEYkQ3amFQWi9NaG1jTnU1ZU5DRkEvaFdyV2NB?= =?utf-8?B?Rm9ITzViTU9KdDhzM2JCSTBsbGNDUU9pcmw5ZHJCYXB0SU5DNTFXbENuVkpO?= =?utf-8?B?WlJtTHhKMlYySVR2UlZ2Z2JPUjVpZlpKSklQY1NCZ0UxcU1iNkY3c2d6RnRF?= =?utf-8?B?Z2tDdW43UFRPaXJ6dzNJNFZrNGdwZTdXUE5aWnozd0U3eG9zbVlsNTN3RTh6?= =?utf-8?B?MFJTdlY0MDIvRUZsRlVqOEQzQVB4TXpVMFA0ZUlpV3NEZFlnREdHQUZNTHZS?= =?utf-8?B?MVJnQTVjWXQ3OFFxSEZsdVV3T2l3NlVnWGNDL1B5b3M1b2d6RVZGUk0zQjBW?= =?utf-8?B?S1d6Z1FuL0lobDRDTi96QVFMSVNFVjI1Z3NTTE9CUmNldTcya0VQZEJFblZj?= =?utf-8?B?UE54UVloclhZYkhVZk1nOTRXQ2dyY0F2N3NCSDVWb2M0a2hVK1RsTmlRVU9C?= =?utf-8?B?WFBsbkdzYWk2Qzl2cDEwaVJyQjN0R284Qm1QNC9VRDlPTDJxemxQWWhXanRw?= =?utf-8?B?YmRXVzkxci9wM2U3blc1a2tFT1J1YkFFRFh2OWJVZ2gzamQ4SlkvTk5OWGZp?= =?utf-8?B?YnNmd3dBaUNFRlUrbVdOWXFHUE1BSWpEa2NINWVtQStyMndpOXpmbXlaNGsz?= =?utf-8?B?Um1ib2phR0ZDUlRoUm90WDNibWVQMVVObVZBUjlkZTJTTTRhbnlGc09jOFFw?= =?utf-8?B?WTdwSUdNa2huYVpYUjlybENqRVM4WEp2ZE9LVlowaFY1c01NZjVBdU1jbjk0?= =?utf-8?B?cGY0Y2lSK2grQjZROFIxU0JCT0hwMENVVXZaSWtmdmpWZWU0bkg0RU9reUZN?= =?utf-8?B?K0lJTG4wUVVOV3BBYUdGR1JDWGRCaStzWWtCZzNxR3E4YXVOWk1rOWxNMkd5?= =?utf-8?B?cERhZGJiaUFHaDVRZ2loTXJob1l1clpyNzJSWGE3d05KT0EzZnZWZk16bHAz?= =?utf-8?B?UTdpMUpEVnF4MVpDV3pwNWx3c0FjamJRdGN2bnp2ZDlYTkxtZElFdTZMREtD?= =?utf-8?B?MSttb3ZaVjZLeFgxSzlMWGhsSjd0RFR1aG5NdkNvUlhWbk51NDNKcWtQSTlO?= =?utf-8?B?Y3Q3eVBaTWduS0xVQTU0eFUrcE9BPT0=?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4491.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 932cc80b-04be-4286-060f-08d9a924ce80 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Nov 2021 17:16:19.7399 (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: 6TMD76r/z9fMmuxPQCPr8op2rnCDTJD/gPItamNUsBAo7zWd+rEsVltuOc0TzGEjpv2y6vimQATmBgPB8HPaPeCC0tR5aEHNLtnPPTF1DFo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4185 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org DQoNCj4gQ291bGQgeW91LCBwbGVhc2UsIHNldCAiQXV0aG9yIiBjb3JyZWN0bHkgLSAiRWxlbmEg QWdvc3RpbmkgPGVhZ29zdGluaUBudmlkaWEuY29tPiI/DQo+IE90aGVyd2lzZSwgd2Ugc2VlIGlu IHRoZSBnaXQgbG9nOg0KPiANCj4gIkF1dGhvcjogZWFnb3N0aW5pIDxlYWdvc3RpbmlAbnZpZGlh LmNvbT4iDQo+IA0KPiBDb21wYXJlIHdpdGg6DQo+ICJBdXRob3I6IEJpbmcgWmhhbyA8YmluZ3pA bnZpZGlhLmNvbT4iDQo+ICJBdXRob3I6IFZpYWNoZXNsYXYgT3ZzaWllbmtvIDx2aWFjaGVzbGF2 b0BudmlkaWEuY29tPiINCj4gDQo+IEFsc28sIHBsZWFzZSwgc2VlIHRoZSBjb2Rlc3R5bGUgaXNz dWVzLCB0b28gbWFueSBjb2RlIGxpbmVzIGZhciBiZXlvbmQgMTAwIGNoYXJzLg0KPiBMaW5lcyBs aWtlIHRoaXM6DQo+ICsJCWlmIChtYnVmX21lbV90eXBlc1tpZHhdID09IE1CVUZfTUVNX0dQVSAm JiBzdHJjbXAoY3VyX2Z3ZF9lbmctPmZ3ZF9tb2RlX25hbWUsICJpbyIpICE9IDApIHsNCj4gY2Fu IGJlIGVhc2lseSBiZSBzcGxpdHRlZC4NCj4gDQo+ID4+YXBwL3Rlc3RwbWQ6IGFkZCBHUFUgbWVt b3J5IG9wdGlvbiBpbiBpb2Z3ZA0KPiBBcyBJIHNlZSBmcm9tIHRoZSBwYXRjaCAtIGl0IGFkZHMg dGhlIG5ldyBtYnVmIHBvb2wgdHlwZSAocmVzaWRpbmcgb24gR1BVIG1lbW9yeSkuDQo+IE1heSBi ZSwgd2Ugc2hvdWxkIHJld29yZCB0aGUgdGl0bGU/DQo+ICIgYXBwL3Rlc3RwbWQ6IGFkZCBHUFUg bWVtb3J5IG9wdGlvbiBmb3IgbWJ1ZiBwb29scyINCj4gDQo+ID4NCj4gPiBUaGlzIHBhdGNoIGlu dHJvZHVjZXMgR1BVIG1lbW9yeSBpbiB0ZXN0cG1kIHRocm91Z2ggdGhlIGdwdWRldiBsaWJyYXJ5 Lg0KPiA+IFRlc3RwbWQgY2FuIGJlIHVzZWQgZm9yIG5ldHdvcmsgYmVuY2htYXJrcyB3aGVuIHVz aW5nIEdQVSBtZW1vcnkNCj4gPiBpbnN0ZWFkIG9mIHJlZ3VsYXIgQ1BVIG1lbW9yeSB0byBzZW5k IGFuZCByZWNlaXZlIHBhY2tldHMuDQo+ID4gVGhpcyBvcHRpb24gaXMgY3VycmVudGx5IGxpbWl0 ZWQgdG8gaW9md2QgZW5naW5lLg0KPiBXaHk/IEJlY2F1c2UgaW9md2QgdGhlIG9ubHkgbW9kZSBu b3QgdG91Y2hpbmcgdGhlIG1idWYgZGF0YT8NCj4gSXMgaXQgY3JpdGljYWwgZm9yIGZ1bmN0aW9u YWxpdHk/IElzIEdQVSBtYnVmIHBvb2wgbWVtb3J5IGFjY2Vzc2libGUgZnJvbSBDUFUgc2lkZT8N Cj4gSSB3b3VsZCBleHBsYWluIHRoZSByZWFzb25zIChmb3Igc3VwcG9ydGluZyBpb2Z3ZCBtb2Rl IG9ubHkpIGluIGNvbW1pdCBtZXNzYWdlLg0KPiANCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IEVs ZW5hIEFnb3N0aW5pIDxlYWdvc3RpbmlAbnZpZGlhLmNvbT4NCj4gPg0KPiA+IERlcGVuZHMtb246 IHNlcmllcy0xOTQ2NSAoIkdQVSBsaWJyYXJ5IikNCj4gPiBEZXBlbmRzLW9uOiBzZXJpZXMtMjA0 MjIgKCJjb21tb24vbWx4NTogZml4IGV4dGVybmFsIG1lbW9yeSBwb29sDQo+ID4gcmVnaXN0cmF0 aW9uIikNCj4gPiAtLS0NCj4gPiAgYXBwL3Rlc3QtcG1kL2NtZGxpbmUuYyAgICAgICAgICAgICAg ICB8ICAxNCArKysNCj4gPiAgYXBwL3Rlc3QtcG1kL21lc29uLmJ1aWxkICAgICAgICAgICAgICB8 ICAgMiArLQ0KPiA+ICBhcHAvdGVzdC1wbWQvcGFyYW1ldGVycy5jICAgICAgICAgICAgIHwgIDEz ICsrLQ0KPiA+ICBhcHAvdGVzdC1wbWQvdGVzdHBtZC5jICAgICAgICAgICAgICAgIHwgMTMzICsr KysrKysrKysrKysrKysrKysrKysrLS0tDQo+ID4gIGFwcC90ZXN0LXBtZC90ZXN0cG1kLmggICAg ICAgICAgICAgICAgfCAgMTYgKysrLQ0KPiA+ICBkb2MvZ3VpZGVzL3Rlc3RwbWRfYXBwX3VnL3J1 bl9hcHAucnN0IHwgICAzICsNCj4gPiAgNiBmaWxlcyBjaGFuZ2VkLCAxNjQgaW5zZXJ0aW9ucygr KSwgMTcgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QtcG1kL2Nt ZGxpbmUuYyBiL2FwcC90ZXN0LXBtZC9jbWRsaW5lLmMgaW5kZXgNCj4gPiA0ZjUxYjI1OWZlLi4z NjE5M2JjNTY2IDEwMDY0NA0KPiA+IC0tLSBhL2FwcC90ZXN0LXBtZC9jbWRsaW5lLmMNCj4gPiAr KysgYi9hcHAvdGVzdC1wbWQvY21kbGluZS5jDQo+ID4gQEAgLTM2MTQsNiArMzYxNCw3IEBAIHBh cnNlX2l0ZW1fbGlzdChjb25zdCBjaGFyICpzdHIsIGNvbnN0IGNoYXINCj4gDQo+IFRoZSAicGFy c2VfaXRlbV9saXN0KCkiIGlzIHVzZWQgdG8gcGFyc2UgdGhlIGxpc3QgbG9va2luZyBsaWtlICJu dW1iZXIwLCBudW1iZXIxLCAuLi4uLCBudW1iZXJOIg0KPiBhbmQgaW52b2tlZCBmb3IgImNvcmUi LCJwb3J0IiwgInR4dGltZXMiLCBldGMuIE5vdCBzdXJlIGFsbCBvZiB0aGVzZSBwYXJhbXMgbmVl ZCB0byBoYW5kbGUgImciDQo+IHN1ZmZpeC4gV2Ugc2hvdWxkIGFsbG93ICJnIiBwcm9jZXNzaW5n IG9ubHkgZm9yICJtYnVmLXNpemUiLiBXZSBoYXZlICJpdGVtX25hbWUiIGFyZ3VtZW50DQo+IHRv IGNoZWNrIHdoZXRoZXIgd2UgYXJlIGludm9rZWQgb24gIm1idWYtc2l6ZSIuDQo+IA0KPiA+ICpp dGVtX25hbWUsIHVuc2lnbmVkIGludCBtYXhfaXRlbXMsDQo+ID4gIAl1bnNpZ25lZCBpbnQgajsN Cj4gPiAgCWludCB2YWx1ZV9vazsNCj4gPiAgCWNoYXIgYzsNCj4gPiArCWludCBncHVfbWJ1ZiA9 IDA7DQo+ID4NCj4gPiAgCS8qDQo+ID4gIAkgKiBGaXJzdCBwYXJzZSBhbGwgaXRlbXMgaW4gdGhl IGxpc3QgYW5kIHN0b3JlIHRoZWlyIHZhbHVlLg0KPiA+IEBAIC0zNjI4LDYgKzM2MjksMTQgQEAg cGFyc2VfaXRlbV9saXN0KGNvbnN0IGNoYXIgKnN0ciwgY29uc3QgY2hhcg0KPiA+ICppdGVtX25h bWUsIHVuc2lnbmVkIGludCBtYXhfaXRlbXMsDQo+ID4gIAkJCXZhbHVlX29rID0gMTsNCj4gPiAg CQkJY29udGludWU7DQo+ID4gIAkJfQ0KPiA+ICsJCWlmIChjID09ICdnJykgew0KPiBXZSBzaG91 bGQgY2hlY2sgd2hldGhlciAiZyIgaXMgdGhlIHNpbmdsZSBjaGFyIHN1ZmZpeCAobGFzdCBjaGFy KS4NCj4gT3RoZXJ3aXNlLCAiMjBnNDgiIGFuZCAiZzIwZ2dnZzQ4IiB3b3VsZCBiZSBhbHNvIHZh bGlkIHZhbHVlcy4NCj4gDQo+ID4gKwkJCS8qDQo+ID4gKwkJCSAqIFdoZW4gdGhpcyBmbGFnIGlz IHNldCwgbWJ1ZnMgZm9yIHRoaXMgc2VnbWVudA0KPiA+ICsJCQkgKiB3aWxsIGJlIGNyZWF0ZWQg b24gR1BVIG1lbW9yeS4NCj4gPiArCQkJICovDQo+ID4gKwkJCWdwdV9tYnVmID0gMTsNCj4gPiAr CQkJY29udGludWU7DQo+ID4gKwkJfQ0KPiA+ICAJCWlmIChjICE9ICcsJykgew0KPiA+ICAJCQlm cHJpbnRmKHN0ZGVyciwgImNoYXJhY3RlciAlYyBpcyBub3QgYSBkZWNpbWFsIGRpZ2l0XG4iLA0K PiA+IGMpOw0KPiA+ICAJCQlyZXR1cm4gMDsNCj4gPiBAQCAtMzY0MCw2ICszNjQ5LDggQEAgcGFy c2VfaXRlbV9saXN0KGNvbnN0IGNoYXIgKnN0ciwgY29uc3QgY2hhcg0KPiA+ICppdGVtX25hbWUs IHVuc2lnbmVkIGludCBtYXhfaXRlbXMsDQo+ID4gIAkJCXBhcnNlZF9pdGVtc1tuYl9pdGVtXSA9 IHZhbHVlOw0KPiA+ICAJCQl2YWx1ZV9vayA9IDA7DQo+ID4gIAkJCXZhbHVlID0gMDsNCj4gPiAr CQkJbWJ1Zl9tZW1fdHlwZXNbbmJfaXRlbV0gPSBncHVfbWJ1ZiA/DQo+ID4gTUJVRl9NRU1fR1BV IDogTUJVRl9NRU1fQ1BVOw0KPiA+ICsJCQlncHVfbWJ1ZiA9IDA7DQo+ID4gIAkJfQ0KPiA+ICAJ CW5iX2l0ZW0rKzsNCj4gPiAgCX0NCj4gPiBAQCAtMzY0OCw2ICszNjU5LDkgQEAgcGFyc2VfaXRl bV9saXN0KGNvbnN0IGNoYXIgKnN0ciwgY29uc3QgY2hhcg0KPiA+ICppdGVtX25hbWUsIHVuc2ln bmVkIGludCBtYXhfaXRlbXMsDQo+ID4gIAkJCWl0ZW1fbmFtZSwgbmJfaXRlbSArIDEsIG1heF9p dGVtcyk7DQo+ID4gIAkJcmV0dXJuIDA7DQo+ID4gIAl9DQo+ID4gKw0KPiA+ICsJbWJ1Zl9tZW1f dHlwZXNbbmJfaXRlbV0gPSBncHVfbWJ1ZiA/IE1CVUZfTUVNX0dQVSA6DQo+ID4gTUJVRl9NRU1f Q1BVOw0KPiA+ICsNCj4gPiAgCXBhcnNlZF9pdGVtc1tuYl9pdGVtKytdID0gdmFsdWU7DQo+ID4g IAlpZiAoISBjaGVja191bmlxdWVfdmFsdWVzKQ0KPiA+ICAJCXJldHVybiBuYl9pdGVtOw0KPiA+ IGRpZmYgLS1naXQgYS9hcHAvdGVzdC1wbWQvbWVzb24uYnVpbGQgYi9hcHAvdGVzdC1wbWQvbWVz b24uYnVpbGQgaW5kZXgNCj4gPiBkNWRmNTJjNDcwLi41YzhjYTY4YzlkIDEwMDY0NA0KPiA+IC0t LSBhL2FwcC90ZXN0LXBtZC9tZXNvbi5idWlsZA0KPiA+ICsrKyBiL2FwcC90ZXN0LXBtZC9tZXNv bi5idWlsZA0KPiA+IEBAIC0zMiw3ICszMiw3IEBAIGlmIGRwZGtfY29uZi5oYXMoJ1JURV9IQVNf SkFOU1NPTicpDQo+ID4gICAgICBleHRfZGVwcyArPSBqYW5zc29uX2RlcA0KPiA+ICBlbmRpZg0K PiA+DQo+ID4gLWRlcHMgKz0gWydldGhkZXYnLCAnZ3JvJywgJ2dzbycsICdjbWRsaW5lJywgJ21l dHJpY3MnLCAnYnVzX3BjaSddDQo+ID4gK2RlcHMgKz0gWydldGhkZXYnLCAnZ3JvJywgJ2dzbycs ICdjbWRsaW5lJywgJ21ldHJpY3MnLCAnYnVzX3BjaScsDQo+ID4gKydncHVkZXYnXQ0KPiA+ICBp ZiBkcGRrX2NvbmYuaGFzKCdSVEVfQ1JZUFRPX1NDSEVEVUxFUicpDQo+ID4gICAgICBkZXBzICs9 ICdjcnlwdG9fc2NoZWR1bGVyJw0KPiA+ICBlbmRpZg0KPiA+IGRpZmYgLS1naXQgYS9hcHAvdGVz dC1wbWQvcGFyYW1ldGVycy5jIGIvYXBwL3Rlc3QtcG1kL3BhcmFtZXRlcnMuYyBpbmRleA0KPiA+ IDA5NzRiMGEzOGYuLmQ0MWY3ZjIyMGIgMTAwNjQ0DQo+ID4gLS0tIGEvYXBwL3Rlc3QtcG1kL3Bh cmFtZXRlcnMuYw0KPiA+ICsrKyBiL2FwcC90ZXN0LXBtZC9wYXJhbWV0ZXJzLmMNCj4gPiBAQCAt ODcsNyArODcsMTAgQEAgdXNhZ2UoY2hhciogcHJvZ25hbWUpDQo+ID4gIAkgICAgICAgImluIE5V TUEgbW9kZS5cbiIpOw0KPiA+ICAJcHJpbnRmKCIgIC0tbWJ1Zi1zaXplPU4sW04xWywuLk5uXTog c2V0IHRoZSBkYXRhIHNpemUgb2YgbWJ1ZiB0byAiDQo+ID4gIAkgICAgICAgIk4gYnl0ZXMuIElm IG11bHRpcGxlIG51bWJlcnMgYXJlIHNwZWNpZmllZCB0aGUgZXh0cmEgcG9vbHMgIg0KPiA+IC0J ICAgICAgICJ3aWxsIGJlIGNyZWF0ZWQgdG8gcmVjZWl2ZSB3aXRoIHBhY2tldCBzcGxpdCBmZWF0 dXJlc1xuIik7DQo+ID4gKwkgICAgICAgIndpbGwgYmUgY3JlYXRlZCB0byByZWNlaXZlIHdpdGgg cGFja2V0IHNwbGl0IGZlYXR1cmVzXG4iDQo+ID4gKwkJICAgIlVzZSAnZycgc3VmZml4IGZvciBH UFUgbWVtb3J5LlxuIg0KPiA+ICsJCSAgICJJZiBubyBvciBhbiB1bnJlY29nbml6ZWQgc3VmZml4 IGlzIHByb3ZpZGVkLCBDUFUgaXMNCj4gPiBhc3N1bWVkXG4iKTsNCj4gVW5yZWNvZ25pemVkIHN1 ZmZpeD8gSSB3b3VsZCBlbWl0IGFuIGVycm9yIGFuZCBhYm9ydCB0aGUgbGF1bmNoLg0KPiANCj4g PiArDQo+ID4gIAlwcmludGYoIiAgLS10b3RhbC1udW0tbWJ1ZnM9Tjogc2V0IHRoZSBudW1iZXIg b2YgbWJ1ZnMgdG8gYmUNCj4gPiBhbGxvY2F0ZWQgIg0KPiA+ICAJICAgICAgICJpbiBtYnVmIHBv b2xzLlxuIik7DQo+ID4gIAlwcmludGYoIiAgLS1tYXgtcGt0LWxlbj1OOiBzZXQgdGhlIG1heGlt dW0gc2l6ZSBvZiBwYWNrZXQgdG8gTg0KPiA+IGJ5dGVzLlxuIik7IEBAIC01OTUsNiArNTk4LDcg QEAgbGF1bmNoX2FyZ3NfcGFyc2UoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQ0KPiA+ICAJc3RydWN0 IHJ0ZV9ldGhfZGV2X2luZm8gZGV2X2luZm87DQo+ID4gIAl1aW50MTZfdCByZWNfbmJfcGt0czsN Cj4gPiAgCWludCByZXQ7DQo+ID4gKwl1aW50MzJfdCBpZHggPSAwOw0KPiA+DQo+ID4gIAlzdGF0 aWMgc3RydWN0IG9wdGlvbiBsZ29wdHNbXSA9IHsNCj4gPiAgCQl7ICJoZWxwIiwJCQkwLCAwLCAw IH0sDQo+ID4gQEAgLTE1MzgsNCArMTU0MiwxMSBAQCBsYXVuY2hfYXJnc19wYXJzZShpbnQgYXJn YywgY2hhcioqIGFyZ3YpDQo+ID4gIAkJCQkgICJpZ25vcmVkXG4iKTsNCj4gPiAgCQltZW1wb29s X2ZsYWdzID0gMDsNCj4gPiAgCX0NCj4gPiArDQo+ID4gKwlmb3IgKGlkeCA9IDA7IGlkeCA8IG1i dWZfZGF0YV9zaXplX247IGlkeCsrKSB7DQo+ID4gKwkJaWYgKG1idWZfbWVtX3R5cGVzW2lkeF0g PT0gTUJVRl9NRU1fR1BVICYmDQo+ID4gc3RyY21wKGN1cl9md2RfZW5nLT5md2RfbW9kZV9uYW1l LCAiaW8iKSAhPSAwKSB7DQo+ID4gKwkJCWZwcmludGYoc3RkZXJyLCAiR1BVIG1lbW9yeSBtYnVm cyBjYW4gYmUgdXNlZCB3aXRoDQo+ID4gaW9md2QgZW5naW5lIG9ubHlcbiIpOw0KPiA+ICsJCQly dGVfZXhpdChFWElUX0ZBSUxVUkUsICJDb21tYW5kIGxpbmUgaXMNCj4gPiBpbmNvcnJlY3RcbiIp Ow0KPiA+ICsJCX0NCj4gPiArCX0NCj4gUGxlYXNlLCBub3RlLCB0aGUgZm9yd2FyZGluZyBtb2Rl IGNhbiBiZSBjaGFuZ2VkIGZyb20gaW50ZXJhY3RpdmUgcHJvbXB0IHdpdGggInNldCBmd2QgPG1v ZGU+IiBjb21tYW5kLg0KPiBJZiBpb2Z3ZCBtb2RlIGlzIGNydWNpYWwgZm9yIEdQVSBmdW5jdGlv bmFsaXR5IC0gd2Ugc2hvdWxkIHByZXZlbnQgc3dpdGNoaW5nIHRvIG90aGVyIG1vZGVzIGlmIEdQ VSBwb29scyBhcmUgZW5nYWdlZC4NCj4gDQo+IA0KPiA+ICB9DQo+ID4gZGlmZiAtLWdpdCBhL2Fw cC90ZXN0LXBtZC90ZXN0cG1kLmMgYi9hcHAvdGVzdC1wbWQvdGVzdHBtZC5jIGluZGV4DQo+ID4g YTY2ZGZiMjk3Yy4uMWFmMjM1YzRkOCAxMDA2NDQNCj4gPiAtLS0gYS9hcHAvdGVzdC1wbWQvdGVz dHBtZC5jDQo+ID4gKysrIGIvYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuYw0KPiA+IEBAIC0yMDUsNiAr MjA1LDEyIEBAIHVpbnQzMl90IG1idWZfZGF0YV9zaXplX24gPSAxOyAvKiBOdW1iZXIgb2YNCj4g PiBzcGVjaWZpZWQgbWJ1ZiBzaXplcy4gKi8gIHVpbnQxNl90IG1idWZfZGF0YV9zaXplW01BWF9T RUdTX0JVRkZFUl9TUExJVF0NCj4gPiA9IHsNCj4gPiAgCURFRkFVTFRfTUJVRl9EQVRBX1NJWkUN Cj4gPiAgfTsgLyoqPCBNYnVmIGRhdGEgc3BhY2Ugc2l6ZS4gKi8NCj4gPiArDQo+ID4gKy8qIE1i dWYgbWVtb3J5IHR5cGVzLiAqLw0KPiA+ICtlbnVtIG1idWZfbWVtX3R5cGUgbWJ1Zl9tZW1fdHlw ZXNbTUFYX1NFR1NfQlVGRkVSX1NQTElUXTsNCj4gPiArLyogUG9pbnRlcnMgdG8gZXh0ZXJuYWwg bWVtb3J5IGFsbG9jYXRlZCBmb3IgbWVtcG9vbHMuICovIHVpbnRwdHJfdA0KPiA+ICttZW1wb29s c19leHRfcHRyW01BWF9TRUdTX0JVRkZFUl9TUExJVF07DQo+ID4gKw0KPiA+ICB1aW50MzJfdCBw YXJhbV90b3RhbF9udW1fbWJ1ZnMgPSAwOyAgLyoqPCBudW1iZXIgb2YgbWJ1ZnMgaW4gYWxsIHBv b2xzIC0gaWYNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHNw ZWNpZmllZCBvbiBjb21tYW5kLWxpbmUuICovICB1aW50MTZfdA0KPiA+IHN0YXRzX3BlcmlvZDsg LyoqPCBQZXJpb2QgdG8gc2hvdyBzdGF0aXN0aWNzIChkaXNhYmxlZCBieSBkZWZhdWx0KSAqLyBA QCAtDQo+ID4gNTQzLDYgKzU0OSwxMiBAQCBpbnQgcHJvY19pZDsNCj4gPiAgICovDQo+ID4gIHVu c2lnbmVkIGludCBudW1fcHJvY3MgPSAxOw0KPiA+DQo+ID4gKy8qDQo+ID4gKyAqIEluIGNhc2Ug b2YgR1BVIG1lbW9yeSBleHRlcm5hbCBtYnVmcyB1c2UsIGZvciBzaW1wbGljaXR5LA0KPiA+ICsg KiB0aGUgZmlyc3QgR1BVIGRldmljZSBpbiB0aGUgbGlzdC4NCj4gPiArICovDQo+ID4gK2ludCBn cHVfaWQgPSAwOw0KPiBJdCBpcyBhc3NpZ25lZCB3aXRoIHplcm8gYW5kIG5ldmVyIGNoYW5nZXMu IFN1cHBvcnQgdGhlIGZpcnN0IEdQVSBvbmx5Pw0KPiBUaGlzIGxpbWl0YXRpb24gc2hvdWxkIGJl IG1lbnRpb25lZCBpbiBkb2N1bWVudGF0aW9uLg0KPiANCj4gPiArDQo+ID4gIHN0YXRpYyB2b2lk DQo+ID4gIGV0aF9yeF9tZXRhZGF0YV9uZWdvdGlhdGVfbXAodWludDE2X3QgcG9ydF9pZCkgIHsg QEAgLTExMDMsNiArMTExNSw3OQ0KPiA+IEBAIHNldHVwX2V4dGJ1Zih1aW50MzJfdCBuYl9tYnVm cywgdWludDE2X3QgbWJ1Zl9zeiwgdW5zaWduZWQgaW50DQo+ID4gc29ja2V0X2lkLA0KPiA+ICAJ cmV0dXJuIGV4dF9udW07DQo+ID4gIH0NCj4gPg0KPiA+ICtzdGF0aWMgc3RydWN0IHJ0ZV9tZW1w b29sICoNCj4gPiArZ3B1X21idWZfcG9vbF9jcmVhdGUodWludDE2X3QgbWJ1Zl9zZWdfc2l6ZSwg dW5zaWduZWQgaW50IG5iX21idWYsDQo+ID4gKwkJCXVuc2lnbmVkIGludCBzb2NrZXRfaWQsIHVp bnQxNl90IHBvcnRfaWQsDQo+ID4gKwkJCWludCBncHVfaWQsIHVpbnRwdHJfdCAqIG1wX2FkZHIp DQo+ID4gK3sNCj4gPiArCWludCByZXQgPSAwOw0KPiA+ICsJY2hhciBwb29sX25hbWVbUlRFX01F TVBPT0xfTkFNRVNJWkVdOw0KPiA+ICsJc3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gZGV2X2luZm87 DQo+ID4gKwlzdHJ1Y3QgcnRlX21lbXBvb2wgKnJ0ZV9tcCA9IE5VTEw7DQo+ID4gKwlzdHJ1Y3Qg cnRlX3BrdG1idWZfZXh0bWVtIGdwdV9tZW07DQo+ID4gKwlzdHJ1Y3QgcnRlX2dwdV9pbmZvIGdp bmZvOw0KPiA+ICsJdWludDhfdCBncHVfcGFnZV9zaGlmdCA9IDE2Ow0KPiA+ICsJdWludDMyX3Qg Z3B1X3BhZ2Vfc2l6ZSA9ICgxVUwgPDwgZ3B1X3BhZ2Vfc2hpZnQpOw0KPiA+ICsNCj4gPiArCXJl dCA9IGV0aF9kZXZfaW5mb19nZXRfcHJpbnRfZXJyKHBvcnRfaWQsICZkZXZfaW5mbyk7DQo+ID4g KwlpZiAocmV0ICE9IDApDQo+ID4gKwkJcnRlX2V4aXQoRVhJVF9GQUlMVVJFLA0KPiA+ICsJCQki RmFpbGVkIHRvIGdldCBkZXZpY2UgaW5mbyBmb3IgcG9ydCAlZFxuIiwNCj4gPiArCQkJcG9ydF9p ZCk7DQo+ID4gKw0KPiA+ICsJbWJ1Zl9wb29sbmFtZV9idWlsZChzb2NrZXRfaWQsIHBvb2xfbmFt ZSwgc2l6ZW9mKHBvb2xfbmFtZSksDQo+ID4gcG9ydF9pZCwgTUJVRl9NRU1fR1BVKTsNCj4gPiAr CWlmICghaXNfcHJvY19wcmltYXJ5KCkpIHsNCj4gPiArCQlydGVfbXAgPSBydGVfbWVtcG9vbF9s b29rdXAocG9vbF9uYW1lKTsNCj4gPiArCQlpZiAocnRlX21wID09IE5VTEwpDQo+ID4gKwkJCXJ0 ZV9leGl0KEVYSVRfRkFJTFVSRSwNCj4gPiArCQkJCSJHZXQgbWJ1ZiBwb29sIGZvciBzb2NrZXQg JXUgZmFpbGVkOiAlc1xuIiwNCj4gPiArCQkJCXNvY2tldF9pZCwgcnRlX3N0cmVycm9yKHJ0ZV9l cnJubykpOw0KPiA+ICsJCXJldHVybiBydGVfbXA7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJaWYg KHJ0ZV9ncHVfaW5mb19nZXQoZ3B1X2lkLCAmZ2luZm8pKQ0KPiA+ICsJCXJ0ZV9leGl0KEVYSVRf RkFJTFVSRSwgIkNhbid0IHJldHJpZXZlIGluZm8gYWJvdXQgR1BVICVkIC0NCj4gPiBieWVcbiIs DQo+ID4gK2dwdV9pZCk7DQo+ID4gKw0KPiA+ICsJVEVTVFBNRF9MT0coSU5GTywNCj4gPiArCQki Y3JlYXRlIGEgbmV3IG1idWYgcG9vbCA8JXM+OiBuPSV1LCBzaXplPSV1LCBzb2NrZXQ9JXUNCj4g PiBHUFUgZGV2aWNlPSVzXG4iLA0KPiA+ICsJCXBvb2xfbmFtZSwgbmJfbWJ1ZiwgbWJ1Zl9zZWdf c2l6ZSwgc29ja2V0X2lkLCBnaW5mby5uYW1lKTsNCj4gPiArDQo+ID4gKwkvKiBDcmVhdGUgYW4g ZXh0ZXJuYWwgbWVtb3J5IG1lbXBvb2wgdXNpbmcgbWVtb3J5IGFsbG9jYXRlZCBvbg0KPiA+IHRo ZQ0KPiA+ICtHUFUuICovDQo+ID4gKw0KPiA+ICsJZ3B1X21lbS5lbHRfc2l6ZSA9IFJURV9NQlVG X0RFRkFVTFRfQlVGX1NJWkU7DQo+ID4gKwlncHVfbWVtLmJ1Zl9sZW4gPSBSVEVfQUxJR05fQ0VJ TChuYl9tYnVmICogZ3B1X21lbS5lbHRfc2l6ZSwNCj4gPiBncHVfcGFnZV9zaXplKTsNCj4gPiAr CWdwdV9tZW0uYnVmX2lvdmEgPSBSVEVfQkFEX0lPVkE7DQo+ID4gKw0KPiA+ICsJZ3B1X21lbS5i dWZfcHRyID0gcnRlX2dwdV9tZW1fYWxsb2MoZ3B1X2lkLCBncHVfbWVtLmJ1Zl9sZW4pOw0KPiA+ ICsJaWYgKGdwdV9tZW0uYnVmX3B0ciA9PSBOVUxMKQ0KPiA+ICsJCXJ0ZV9leGl0KEVYSVRfRkFJ TFVSRSwgIkNvdWxkIG5vdCBhbGxvY2F0ZSBHUFUgZGV2aWNlDQo+ID4gbWVtb3J5XG4iKTsNCj4g PiArDQo+ID4gKwlyZXQgPSBydGVfZXh0bWVtX3JlZ2lzdGVyKGdwdV9tZW0uYnVmX3B0ciwgZ3B1 X21lbS5idWZfbGVuLA0KPiA+IE5VTEwsIGdwdV9tZW0uYnVmX2lvdmEsIGdwdV9wYWdlX3NpemUp Ow0KPiA+ICsJaWYgKHJldCkNCj4gPiArCQlydGVfZXhpdChFWElUX0ZBSUxVUkUsICJVbmFibGUg dG8gcmVnaXN0ZXIgYWRkciAweCVwLCByZXQNCj4gPiAlZFxuIiwNCj4gPiArZ3B1X21lbS5idWZf cHRyLCByZXQpOw0KPiA+ICsNCj4gPiArCXVpbnQxNl90IHBpZCA9IDA7DQo+ID4gKw0KPiA+ICsJ UlRFX0VUSF9GT1JFQUNIX0RFVihwaWQpDQo+ID4gKwl7DQo+ID4gKwkJcmV0ID0gcnRlX2Rldl9k bWFfbWFwKGRldl9pbmZvLmRldmljZSwgZ3B1X21lbS5idWZfcHRyLA0KPiA+ICsJCQkJCSAgZ3B1 X21lbS5idWZfaW92YSwNCj4gPiBncHVfbWVtLmJ1Zl9sZW4pOw0KPiA+ICsJCWlmIChyZXQpIHsN Cj4gPiArCQkJcnRlX2V4aXQoRVhJVF9GQUlMVVJFLCAiVW5hYmxlIHRvIERNQSBtYXAgYWRkcg0K PiA+IDB4JXAgZm9yIGRldmljZSAlc1xuIiwNCj4gPiArCQkJCQkgZ3B1X21lbS5idWZfcHRyLCBk ZXZfaW5mby5kZXZpY2UtDQo+ID4gPm5hbWUpOw0KPiA+ICsJCX0NCj4gPiArCX0NCj4gPiArDQo+ ID4gKwlydGVfbXAgPSBydGVfcGt0bWJ1Zl9wb29sX2NyZWF0ZV9leHRidWYocG9vbF9uYW1lLCBu Yl9tYnVmLA0KPiA+IG1iX21lbXBvb2xfY2FjaGUsIDAsIG1idWZfc2VnX3NpemUsIHNvY2tldF9p ZCwgJmdwdV9tZW0sIDEpOw0KPiA+ICsJaWYgKHJ0ZV9tcCA9PSBOVUxMKSB7DQo+ID4gKwkJcnRl X2V4aXQoRVhJVF9GQUlMVVJFLCAiQ3JlYXRpb24gb2YgR1BVIG1lbXBvb2wgPCVzPg0KPiA+IGZh aWxlZFxuIiwgcG9vbF9uYW1lKTsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwkqbXBfYWRkciA9ICh1 aW50cHRyX3QpIGdwdV9tZW0uYnVmX3B0cjsNCj4gPiArDQo+ID4gKwlyZXR1cm4gcnRlX21wOw0K PiA+ICt9DQo+ID4gKw0KPiA+ICAvKg0KPiA+ICAgKiBDb25maWd1cmF0aW9uIGluaXRpYWxpc2F0 aW9uIGRvbmUgb25jZSBhdCBpbml0IHRpbWUuDQo+ID4gICAqLw0KPiA+IEBAIC0xMTE3LDcgKzEy MDIsNyBAQCBtYnVmX3Bvb2xfY3JlYXRlKHVpbnQxNl90IG1idWZfc2VnX3NpemUsDQo+ID4gdW5z aWduZWQgbmJfbWJ1ZiwNCj4gPg0KPiA+ICAJbWJfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcnRlX21i dWYpICsgbWJ1Zl9zZWdfc2l6ZTsgICNlbmRpZg0KPiA+IC0JbWJ1Zl9wb29sbmFtZV9idWlsZChz b2NrZXRfaWQsIHBvb2xfbmFtZSwgc2l6ZW9mKHBvb2xfbmFtZSksDQo+ID4gc2l6ZV9pZHgpOw0K PiA+ICsJbWJ1Zl9wb29sbmFtZV9idWlsZChzb2NrZXRfaWQsIHBvb2xfbmFtZSwgc2l6ZW9mKHBv b2xfbmFtZSksDQo+ID4gc2l6ZV9pZHgsDQo+ID4gK01CVUZfTUVNX0NQVSk7DQo+ID4gIAlpZiAo IWlzX3Byb2NfcHJpbWFyeSgpKSB7DQo+ID4gIAkJcnRlX21wID0gcnRlX21lbXBvb2xfbG9va3Vw KHBvb2xfbmFtZSk7DQo+ID4gIAkJaWYgKHJ0ZV9tcCA9PSBOVUxMKQ0KPiA+IEBAIC0xNzAwLDE5 ICsxNzg1LDQyIEBAIGluaXRfY29uZmlnKHZvaWQpDQo+ID4NCj4gPiAgCQlmb3IgKGkgPSAwOyBp IDwgbnVtX3NvY2tldHM7IGkrKykNCj4gPiAgCQkJZm9yIChqID0gMDsgaiA8IG1idWZfZGF0YV9z aXplX247IGorKykNCj4gPiAtCQkJCW1lbXBvb2xzW2kgKiBNQVhfU0VHU19CVUZGRVJfU1BMSVQg KyBqXQ0KPiA+ID0NCj4gPiAtCQkJCQltYnVmX3Bvb2xfY3JlYXRlKG1idWZfZGF0YV9zaXplW2pd LA0KPiA+IC0JCQkJCQkJICBuYl9tYnVmX3Blcl9wb29sLA0KPiA+IC0JCQkJCQkJICBzb2NrZXRf aWRzW2ldLCBqKTsNCj4gPiArCQkJew0KPiA+ICsJCQkJaWYgKG1idWZfbWVtX3R5cGVzW2pdID09 IE1CVUZfTUVNX0dQVSkNCj4gPiB7DQo+ID4gKwkJCQkJaWYgKHJ0ZV9ncHVfY291bnRfYXZhaWwo KSA9PSAwKQ0KPiA+ICsJCQkJCQlydGVfZXhpdChFWElUX0ZBSUxVUkUsICJObw0KPiA+IEdQVSBk ZXZpY2UgYXZhaWxhYmxlLlxuIik7DQo+ID4gKw0KPiA+ICsJCQkJCW1lbXBvb2xzW2kgKg0KPiA+ IE1BWF9TRUdTX0JVRkZFUl9TUExJVCArIGpdID0NCj4gPiArDQo+ID4gCWdwdV9tYnVmX3Bvb2xf Y3JlYXRlKG1idWZfZGF0YV9zaXplW2pdLA0KPiBXaGF0IGFib3V0IEdQVS9DUFUgYWRoZXJlbmNl ID8gRG8gd2UgY3JlYXRlIG9uZSBHUFUgcG9vbCBwZXIgQ1BVIHNvY2tldD8NCj4gRGlzcmVnYXJk aW5nICBoYXJkd2FyZSB0b3BvbG9neSBhdCBhbGw/DQo+IFdlIGNhbiBtaXRpZ2F0ZSB0aGUgaXNz dWUgYnkgIi0tc29ja2V0LW1lbS8tLXNvY2tldC1udW0iIHBhcmFtZXRlciB0aG91Z2guDQo+IA0K PiA+ICsNCj4gPiAJCSBuYl9tYnVmX3Blcl9wb29sLA0KPiA+ICsNCj4gPiAJCSBzb2NrZXRfaWRz W2ldLCBqLCBncHVfaWQsDQo+ID4gKw0KPiA+IAkJICYobWVtcG9vbHNfZXh0X3B0cltqXSkpOw0K PiA+ICsJCQkJfSBlbHNlIHsNCj4gPiArCQkJCQltZW1wb29sc1tpICoNCj4gPiBNQVhfU0VHU19C VUZGRVJfU1BMSVQgKyBqXSA9DQo+ID4gKw0KPiA+IAltYnVmX3Bvb2xfY3JlYXRlKG1idWZfZGF0 YV9zaXplW2pdLA0KPiA+ICsNCj4gPiAJbmJfbWJ1Zl9wZXJfcG9vbCwNCj4gPiArCQkJCQkJCQlz b2NrZXRfaWRzW2ldLA0KPiA+IGopOw0KPiA+ICsJCQkJfQ0KPiA+ICsJCQl9DQo+ID4gIAl9IGVs c2Ugew0KPiA+ICAJCXVpbnQ4X3QgaTsNCj4gPg0KPiA+ICAJCWZvciAoaSA9IDA7IGkgPCBtYnVm X2RhdGFfc2l6ZV9uOyBpKyspDQo+ID4gLQkJCW1lbXBvb2xzW2ldID0gbWJ1Zl9wb29sX2NyZWF0 ZQ0KPiA+IC0JCQkJCShtYnVmX2RhdGFfc2l6ZVtpXSwNCj4gPiAtCQkJCQkgbmJfbWJ1Zl9wZXJf cG9vbCwNCj4gPiAtCQkJCQkgc29ja2V0X251bSA9PSBVTUFfTk9fQ09ORklHID8NCj4gPiAtCQkJ CQkgMCA6IHNvY2tldF9udW0sIGkpOw0KPiA+ICsJCXsNCj4gPiArCQkJaWYgKG1idWZfbWVtX3R5 cGVzW2ldID09IE1CVUZfTUVNX0dQVSkgew0KPiA+ICsJCQkJbWVtcG9vbHNbaV0gPQ0KPiA+IGdw dV9tYnVmX3Bvb2xfY3JlYXRlKG1idWZfZGF0YV9zaXplW2ldLA0KPiA+ICsNCj4gPiAJCQkgICBu Yl9tYnVmX3Blcl9wb29sLA0KPiA+ICsNCj4gPiAJCQkgICBzb2NrZXRfbnVtID09IFVNQV9OT19D T05GSUcgPyAwIDogc29ja2V0X251bSwNCj4gPiArDQo+ID4gCQkJICAgaSwgZ3B1X2lkLA0KPiA+ ICsNCj4gPiAJCQkgICAmKG1lbXBvb2xzX2V4dF9wdHJbaV0pKTsNCj4gPiArCQkJfSBlbHNlIHsN Cj4gPiArCQkJCW1lbXBvb2xzW2ldID0NCj4gPiBtYnVmX3Bvb2xfY3JlYXRlKG1idWZfZGF0YV9z aXplW2ldLA0KPiA+ICsJCQkJCQkJbmJfbWJ1Zl9wZXJfcG9vbCwNCj4gPiArCQkJCQkJCXNvY2tl dF9udW0gPT0NCj4gPiBVTUFfTk9fQ09ORklHID8NCj4gPiArCQkJCQkJCTAgOiBzb2NrZXRfbnVt LCBpKTsNCj4gPiArCQkJfQ0KPiA+ICsJCX0NCj4gPiArDQo+ID4gIAl9DQo+ID4NCj4gPiAgCWlu aXRfcG9ydF9jb25maWcoKTsNCj4gPiBAQCAtMzQxNSw4ICszNTIzLDExIEBAIHBtZF90ZXN0X2V4 aXQodm9pZCkNCj4gPiAgCQl9DQo+ID4gIAl9DQo+ID4gIAlmb3IgKGkgPSAwIDsgaSA8IFJURV9E SU0obWVtcG9vbHMpIDsgaSsrKSB7DQo+ID4gLQkJaWYgKG1lbXBvb2xzW2ldKQ0KPiA+ICsJCWlm IChtZW1wb29sc1tpXSkgew0KPiA+ICAJCQltZW1wb29sX2ZyZWVfbXAobWVtcG9vbHNbaV0pOw0K PiA+ICsJCQlpZiAobWJ1Zl9tZW1fdHlwZXNbaV0gPT0gTUJVRl9NRU1fR1BVKQ0KPiA+ICsJCQkJ cnRlX2dwdV9tZW1fZnJlZShncHVfaWQsICh2b2lkDQo+ID4gKiltZW1wb29sc19leHRfcHRyW2ld KTsNCj4gPiArCQl9DQo+ID4gIAl9DQo+ID4gIAlmcmVlKHhzdGF0c19kaXNwbGF5KTsNCj4gPg0K PiA+IGRpZmYgLS1naXQgYS9hcHAvdGVzdC1wbWQvdGVzdHBtZC5oIGIvYXBwL3Rlc3QtcG1kL3Rl c3RwbWQuaCBpbmRleA0KPiA+IDY2OWNlMWU4N2QuLjk5MTkwNDQzNzIgMTAwNjQ0DQo+ID4gLS0t IGEvYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuaA0KPiA+ICsrKyBiL2FwcC90ZXN0LXBtZC90ZXN0cG1k LmgNCj4gPiBAQCAtMTIsNiArMTIsNyBAQA0KPiA+ICAjaW5jbHVkZSA8cnRlX2dyby5oPg0KPiA+ ICAjaW5jbHVkZSA8cnRlX2dzby5oPg0KPiA+ICAjaW5jbHVkZSA8cnRlX29zX3NoaW0uaD4NCj4g PiArI2luY2x1ZGUgPHJ0ZV9ncHVkZXYuaD4NCj4gPiAgI2luY2x1ZGUgPGNtZGxpbmUuaD4NCj4g PiAgI2luY2x1ZGUgPHN5cy9xdWV1ZS5oPg0KPiA+ICAjaWZkZWYgUlRFX0hBU19KQU5TU09ODQo+ ID4gQEAgLTQ3NCw2ICs0NzUsMTEgQEAgZXh0ZXJuIHVpbnQ4X3QgZGNiX2NvbmZpZzsgIGV4dGVy biB1aW50MzJfdA0KPiA+IG1idWZfZGF0YV9zaXplX247ICBleHRlcm4gdWludDE2X3QNCj4gPiBt YnVmX2RhdGFfc2l6ZVtNQVhfU0VHU19CVUZGRVJfU1BMSVRdOw0KPiA+ICAvKio8IE1idWYgZGF0 YSBzcGFjZSBzaXplLiAqLw0KPiA+ICtlbnVtIG1idWZfbWVtX3R5cGUgew0KPiA+ICsJTUJVRl9N RU1fQ1BVLA0KPiA+ICsJTUJVRl9NRU1fR1BVDQo+ID4gK307DQo+ID4gK2V4dGVybiBlbnVtIG1i dWZfbWVtX3R5cGUNCj4gPiBtYnVmX21lbV90eXBlc1tNQVhfU0VHU19CVUZGRVJfU1BMSVRdOw0K PiA+ICBleHRlcm4gdWludDMyX3QgcGFyYW1fdG90YWxfbnVtX21idWZzOw0KPiA+DQo+ID4gIGV4 dGVybiB1aW50MTZfdCBzdGF0c19wZXJpb2Q7DQo+ID4gQEAgLTcxNywxNCArNzIzLDE2IEBAIGN1 cnJlbnRfZndkX2xjb3JlKHZvaWQpDQo+ID4gIC8qIE1idWYgUG9vbHMgKi8NCj4gPiAgc3RhdGlj IGlubGluZSB2b2lkDQo+ID4gIG1idWZfcG9vbG5hbWVfYnVpbGQodW5zaWduZWQgaW50IHNvY2tf aWQsIGNoYXIgKm1wX25hbWUsDQo+ID4gLQkJICAgIGludCBuYW1lX3NpemUsIHVpbnQxNl90IGlk eCkNCj4gPiArCQkgICAgaW50IG5hbWVfc2l6ZSwgdWludDE2X3QgaWR4LCBlbnVtIG1idWZfbWVt X3R5cGUNCj4gPiBtZW1fdHlwZSkNCj4gPiAgew0KPiA+ICsJY29uc3QgY2hhciAqc3VmZml4ID0g bWVtX3R5cGUgPT0gTUJVRl9NRU1fR1BVID8gIl9ncHUiIDogIiI7DQo+ID4gKw0KPiA+ICAJaWYg KCFpZHgpDQo+ID4gIAkJc25wcmludGYobXBfbmFtZSwgbmFtZV9zaXplLA0KPiA+IC0JCQkgTUJV Rl9QT09MX05BTUVfUEZYICJfJXUiLCBzb2NrX2lkKTsNCj4gPiArCQkJIE1CVUZfUE9PTF9OQU1F X1BGWCAiXyV1JXMiLCBzb2NrX2lkLCBzdWZmaXgpOw0KPiA+ICAJZWxzZQ0KPiA+ICAJCXNucHJp bnRmKG1wX25hbWUsIG5hbWVfc2l6ZSwNCj4gPiAtCQkJIE1CVUZfUE9PTF9OQU1FX1BGWCAiXyVo dV8laHUiLA0KPiA+ICh1aW50MTZfdClzb2NrX2lkLCBpZHgpOw0KPiA+ICsJCQkgTUJVRl9QT09M X05BTUVfUEZYICJfJWh1XyVodSVzIiwNCj4gPiAodWludDE2X3Qpc29ja19pZCwgaWR4LCBzdWZm aXgpOw0KPiA+ICB9DQo+ID4NCj4gPiAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcnRlX21lbXBvb2wg Kg0KPiA+IEBAIC03MzIsNyArNzQwLDcgQEAgbWJ1Zl9wb29sX2ZpbmQodW5zaWduZWQgaW50IHNv Y2tfaWQsIHVpbnQxNl90IGlkeCkgIHsNCj4gPiAgCWNoYXIgcG9vbF9uYW1lW1JURV9NRU1QT09M X05BTUVTSVpFXTsNCj4gPg0KPiA+IC0JbWJ1Zl9wb29sbmFtZV9idWlsZChzb2NrX2lkLCBwb29s X25hbWUsIHNpemVvZihwb29sX25hbWUpLCBpZHgpOw0KPiA+ICsJbWJ1Zl9wb29sbmFtZV9idWls ZChzb2NrX2lkLCBwb29sX25hbWUsIHNpemVvZihwb29sX25hbWUpLCBpZHgsDQo+ID4gK21idWZf bWVtX3R5cGVzW2lkeF0pOw0KPiA+ICAJcmV0dXJuIHJ0ZV9tZW1wb29sX2xvb2t1cCgoY29uc3Qg Y2hhciAqKXBvb2xfbmFtZSk7ICB9DQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy90 ZXN0cG1kX2FwcF91Zy9ydW5fYXBwLnJzdA0KPiA+IGIvZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91 Zy9ydW5fYXBwLnJzdA0KPiA+IGluZGV4IDMwZWRlZjA3ZWEuLmVkZTdiNzlhYmIgMTAwNjQ0DQo+ ID4gLS0tIGEvZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy9ydW5fYXBwLnJzdA0KPiA+ICsrKyBi L2RvYy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcvcnVuX2FwcC5yc3QNCj4gPiBAQCAtMTE5LDYgKzEx OSw5IEBAIFRoZSBjb21tYW5kIGxpbmUgb3B0aW9ucyBhcmU6DQo+ID4gICAgICBUaGUgZGVmYXVs dCB2YWx1ZSBpcyAyMDQ4LiBJZiBtdWx0aXBsZSBtYnVmLXNpemUgdmFsdWVzIGFyZSBzcGVjaWZp ZWQgdGhlDQo+ID4gICAgICBleHRyYSBtZW1vcnkgcG9vbHMgd2lsbCBiZSBjcmVhdGVkIGZvciBh bGxvY2F0aW5nIG1idWZzIHRvIHJlY2VpdmUgcGFja2V0cw0KPiA+ICAgICAgd2l0aCBidWZmZXIg c3BsaXR0aW5nIGZlYXR1cmVzLg0KPiA+ICsgICAgUHJvdmlkaW5nIG1idWYgc2l6ZSB3aXRoIGEg J2cnIHN1ZmZpeCAoZS5nLiBgYC0tbWJ1Zi1zaXplPTIwNDhnYGApLA0KPiA+ICsgICAgd2lsbCBj YXVzZSB0aGUgbWVtcG9vbCB0byBiZSBjcmVhdGVkIG9uIGEgR1BVIG1lbW9yeSBhcmVhIGFsbG9j YXRlZC4NCj4gPiArICAgIFRoaXMgb3B0aW9uIGlzIGN1cnJlbnRseSBsaW1pdGVkIHRvIGlvZndk IGVuZ2luZSB3aXRoIHRoZSBmaXJzdCBHUFUuDQo+IE1tbSwgaWYgd2UgaGF2ZSBtdWx0aXBsZSBH UFVzIC0gd2UgaGF2ZSBubyB3YXkgdG8gc3BlY2lmeSBvbiB3aGljaCBvbmUgd2Ugc2hvdWxkIGFs bG9jYXRlIHRoZSBwb29sLg0KPiBTeW50YXggaXMgbm90IGNvbXBsZXRl4pi5LiBQb3NzaWJsZSB3 ZSBzaG91bGQgc3BlY2lmeSBHUFUgcG9ydCBpZCBhZnRlciB0aGUgc3VmZml4ID8gTGlrZSAyMDQ4 ZzIgPw0KPiBJZiBwb3J0IGluZGV4IGlzIG9taXR0ZWQgd2Ugc2hvdWxkIGNvbnNpZGVyIHdlIGhh dmUgdGhlIG9ubHkgR1BVIGFuZCBjaGVjayB0aGlzLg0KDQpEbyB3ZSBuZWVkIHRvIG92ZXJsb2Fk IC0tbWJ1Zi1zaXplIHBhcmFtZXRlciBoZXJlPw0KV2h5IG5vdCBhZGQgJ2dwdScgb3B0aW9uIHRv IC0tbXAtYWxsb2MgcGFyYW1ldGVyPyANCg0K