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 A3ADA45984; Sat, 14 Sep 2024 01:18:21 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8FBBA42FD7; Sat, 14 Sep 2024 01:18:21 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.19]) by mails.dpdk.org (Postfix) with ESMTP id 6CB2B42FBF for ; Sat, 14 Sep 2024 01:18:20 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1726269500; x=1757805500; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=E2M801w4vjHf4/bNVrnkLZ22IICajbDExiMakWbn5mQ=; b=XeXnE+OPUOzukqB8UYXprgI4IdqOhRg9D6wVEncC4WwZwEOEzRbRGp+V TUY/t185nHu4FMVtXR2bHZzeF3NRjrFTmE/loQRgp7coXqXmMl71aVevn Qblih/WGR+lETqQtNG+8SILyV+tGDgQVCF7H427zjDHlZHSzs5m7xgxwy dBM+/H2xdWLUunObX433gNff2yEMa1liya7LKBiW5pfqZjrDTA5oG7NpL Qirwa5pSQISiFlGpxZkbVezZ8sX7etitCrLW/LYdpK5NBVeXexADrXA7O ojiRJnFa/5rDJQogvbSWB3xLW819Rd9VrwoH3O0wSEr4BHQsgL8WA8DRd w==; X-CSE-ConnectionGUID: bSU5eRMWQtiXDhCw2eKWlw== X-CSE-MsgGUID: tkkWhB5lReiKxNfQpjfdtw== X-IronPort-AV: E=McAfee;i="6700,10204,11194"; a="24723680" X-IronPort-AV: E=Sophos;i="6.10,227,1719903600"; d="scan'208";a="24723680" Received: from fmviesa002.fm.intel.com ([10.60.135.142]) by fmvoesa113.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Sep 2024 16:18:19 -0700 X-CSE-ConnectionGUID: 2mnN83UCQDiph2QMcVp9rg== X-CSE-MsgGUID: Dy6XbC9PSqyCXXQ3S+/C4Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.10,227,1719903600"; d="scan'208";a="91497897" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmviesa002.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 13 Sep 2024 16:18:19 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 13 Sep 2024 16:18:19 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Fri, 13 Sep 2024 16:18:19 -0700 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (104.47.56.47) 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.2507.39; Fri, 13 Sep 2024 16:18:19 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DcWUlmI9Njtr+n76kSFP1X9Mkb91gjjP6tyvVLjVFmRZ2eim2C5JQY1SRt/AzXenopwM7wHCJi8sqEbElVnIVZszWVMDbdsBimFQtaAgX5XqzPe6g2tOjdbkw9mc4t3djBpQt3HMdEvUQ3kRIZqFHXZTmyQHNsywFXYiyriipA0WtekaF/1ou4I7CdXMHnqdtufEGJWZjqxVzpuVmdw9wn8TyP9WvG24GL2rcnTyiuqqfchH2EjGx44Z1RiCilqqM+0SwojBm8HSB2nVvC0GEbpY0/KqhnNUuMotR1MMul/bB/EPXFeL6pouetwE5ujCzkwOO8PDTfS20mOUWyF7AQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=E2M801w4vjHf4/bNVrnkLZ22IICajbDExiMakWbn5mQ=; b=AyArZy9uNGnY9Rn+mRPUCHPUpiWhdRTpGPz4dGL7erb5YTE25enAwT7B+BRH1OYIdxjZsLpeV9YWDUb1rDzXJ0GVxg4LuMGQ+Nf2Bw/v5KUu30X/jjSg8JXqzsmjXiTXTyUF0qJiHhHEP/7Uz0NsQcFGB92GZbcU37ZJpmLzhsmNIPD7R7yZH0yp66vEJeTzXj7ePhg+Hyu6uLEG6/5dzI5VnnPT3FGBLLFbZwy+5tVFHjHzapGEGOyp8ZZx3Cu5UTwxpQzGpkh/nVq9XjB2E7K1c5HKiucaOO3rDpus9SYlZDZaDk4NYG25dvbtw5q2TdRPC98jLOS19PvRpAEKwA== 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 Received: from PH8PR11MB6684.namprd11.prod.outlook.com (2603:10b6:510:1c7::6) by CY5PR11MB6438.namprd11.prod.outlook.com (2603:10b6:930:35::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7962.19; Fri, 13 Sep 2024 23:18:15 +0000 Received: from PH8PR11MB6684.namprd11.prod.outlook.com ([fe80::fc24:fa85:9365:d6b6]) by PH8PR11MB6684.namprd11.prod.outlook.com ([fe80::fc24:fa85:9365:d6b6%4]) with mapi id 15.20.7962.017; Fri, 13 Sep 2024 23:18:15 +0000 From: "Chautru, Nicolas" To: Maxime Coquelin , "dev@dpdk.org" CC: "hemant.agrawal@nxp.com" , "Marchand, David" , "Vargas, Hernan" Subject: RE: [PATCH v2 1/2] bbdev: add new function to dump debug information Thread-Topic: [PATCH v2 1/2] bbdev: add new function to dump debug information Thread-Index: AQHa+k6WIloXu4xfykyGHxgwV0BXt7JV2K2AgACZCFA= Date: Fri, 13 Sep 2024 23:18:15 +0000 Message-ID: References: <20240829200624.38551-1-nicolas.chautru@intel.com> <20240829200624.38551-2-nicolas.chautru@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH8PR11MB6684:EE_|CY5PR11MB6438:EE_ x-ms-office365-filtering-correlation-id: 917a18be-7d7f-4f62-c6cd-08dcd44a5858 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|376014|366016|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?dWQ3VDJtbVFUVlFiNTdzVDJhbHU3WDZ3UjBaZko3T2pWNVZRL2dJY3VDOGl3?= =?utf-8?B?WWQxZ3B6OXhXSVcrQytHK0FKcHcyZERIQjJqUzJhWUM4bVl3bUh3MnBrb2hu?= =?utf-8?B?OHdGZDFaOUNZTTgvNC9WWHlVcGs1eW1zd2d3bTR3ZUh6QzROdjJTa3A0QXRC?= =?utf-8?B?SDdCcVFyeXVHNm5wL1lvQURDWkRmZ2ZHZWtIa2hLTHNPM0tMUmhMeFpibFFF?= =?utf-8?B?TjV3TVJuc1dibVp0azJLNzdER3ROYTBGS0tJN1h1UTl3cmVnazhhVU1KcFg4?= =?utf-8?B?Y3B2aTlvVlZHRHdlWXhlNzN3K3FxRHA3a3I5ZnpsRS81ckJxcS9Pc0JCMFZ0?= =?utf-8?B?KytvOFF1d3ovdWtWaktiUUdEYjVwUndpaU9GRVRDb2hyMWN6RERoMGFDTk92?= =?utf-8?B?L2JLWE1vVE9NdmR6SWtCZytZZmlwd2h0d2gybVB4TXBoQ3RpcWtBYndvOUkz?= =?utf-8?B?dkN3bHNCQitJZVVkYlE3aVRHbi9lQy9ZUW5MSFZTVzNMNitHZ1pwdnEwb2E0?= =?utf-8?B?aC9qUi9aMlR0bjBhemE5YUpQV3lROUJJYlQ1OHVUMjJhSGZ0N2IwUTJ0d3lq?= =?utf-8?B?Vm5UOUlSS0lRZ2dxRXVIVXVHQTQ1TEtNSU5UZGNZbnoyd3VCUTQ4YzlsRFlX?= =?utf-8?B?dTFaSmd4a3JnMEJIRTAvTlBwU0lsUUZKMWxFZlJTejdldGhYVHE4RUIxbERs?= =?utf-8?B?UzBxeWpoQ1RBRGQ5b2p6bXcvajloWXpGRVFJSWx1WDRnNkxsU0w2WGRlUXpD?= =?utf-8?B?NFIybzZKa2llZWhBWFlRdVZwZ1pOSkxDNlVaWjBuUmhIc2p5MXdYamFYNU5S?= =?utf-8?B?d3dyOUdWbnY4NndsOUhjTHJDU1dHQUxWRDlPODhJTmlZMVU4clFCU3dWdGxY?= =?utf-8?B?V0oxQm4rbEIvREpwRVhvQ2dCK0JoaUVBUm5JOFlJdFB2OHNiOUJ1T3k2ZGlv?= =?utf-8?B?dGQvWjc2RkpEelRXaEdXZGRuSE44S1BkbXBLRDdoMEhyQW9XN3dvblN0eUFa?= =?utf-8?B?L0J3WDlmZUJTdEw4bk5SSkI5NU5NNFdKTXJqSU5lSWJpaFB6OGpMZnRjM3FL?= =?utf-8?B?VXI4ZmtOWU53Nll3SU9lVUtHRTl3VW0xb1ZvMXoyMzFPZ1MvRWdycW5sbXRJ?= =?utf-8?B?Y0VQZ2VvN1E5TUI0azV4eVFLQ2VSdEUyQmxIZHRTT0dtZUFJeXVLVkVlSE5D?= =?utf-8?B?QWZoTEhDWVFwemZVMEdEUVJRK2RFZHFzYkhnTXJoSGdhZFBuVHZhNVNndXlP?= =?utf-8?B?UjFJaTJvRDYyaFovZXNtYm5mYzI0bjhncGZpOUdUMHFOT3czRktiODNmYVRv?= =?utf-8?B?MnB4Z0JlUTFSckE2QXpQL21SN1VCc21EWjFBWlhScDZ0K2pqMlNCcEk5ZGRw?= =?utf-8?B?UzZVaFF3M1cvSkg1NnRMZXRKVGptWm9wN2FJV1hqUy9UNjljL1p0cEltRTlW?= =?utf-8?B?KzFRVzFZSDlha3lYUDFUaU9YK3ZJbVVESElia3hZeE8yUEczRmxEZTlUNDZz?= =?utf-8?B?YnZFRlUrUlgwZEgzRlFRZlNpT01scXgwajNJMjJONjQ1aXVFajhMTXZpU3dQ?= =?utf-8?B?NURwL2ZsNU8zTWhtcnpZZktGTlRoT3BWRUMzeEx6c3l3aW52d1dVT2hBMGcr?= =?utf-8?B?MVJmczhpN24xZzFvNGlmYmZLdUZ4NFJlckREUjdzbHpOT1NNbks3M295a3pS?= =?utf-8?B?RmF1TnhheXhnVEZ1TjFENWo1cUcwc05RSzI4ejljZkl3WlRZRlZqZVdYeTFa?= =?utf-8?B?RUU4RThOK05lTC9tQ3BVeTFhcnZoU0RVZGRqMlB3MUNsa0NORVhHSFRCSkpu?= =?utf-8?B?bTNWaHZuZnJmMWR0Ym1wRWNhOGFtVm9kUUZ0U0pucFRnZkpwNVFNcE55RmpX?= =?utf-8?B?dEFsd1BaUmRFYmlGZ1RIZml6ZnRLbXhRa0JBb2RNMXg1NXc9PQ==?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH8PR11MB6684.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(376014)(366016)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MUQrcTA0VGJaajlmMERIQkN1d29zOFFqb2laUzkrUzdyMENqUVF3Z1gyRXZ4?= =?utf-8?B?czNUa2RRQUNHcWd5WTUzUzJ2YU5BNGN6WTUyUGFndytBbWM3YnJUVTcva3Jr?= =?utf-8?B?UDdCOUpLdXdjRkpYcjhmOE9MMXBJbklvbW1pdkJRRUpQK2tPQkdBU1M5L1Zs?= =?utf-8?B?Q3lGQTJ3NmUyQWFVcnQ4V3BYaVYxUDN5OGY2SHdjQ1ZVSkxVcjl4YUJWZ0pU?= =?utf-8?B?U0E0Q0FGaVIzbzNqeE9MbTU5WWRIcTZ5eDQ2dUxzU2wvM1g4TWRUTzBwc1Y1?= =?utf-8?B?UTFoZmp6djlKdDVjMFZlSHF1RVNkbGVzTTlhYWNtT21PbThSdS85VUJGdVZH?= =?utf-8?B?NDE4T2diUkRkMVplUE1uK3hocjFnMXhZYW9qUE1WNDE0OC9oRmk4bm5BVkJ4?= =?utf-8?B?VVZsaG5pRzdoWlg3Qng1STIwbjJjZ0FXRm1ROElnNXJaRFBpa3BncTQzRkxM?= =?utf-8?B?SkF0dzlSWVVhcXMxeHU4YzJSRFJWTTJIZWZHTEdkdXlSWGJkQ1NJUTE0eEJH?= =?utf-8?B?aTlzWHJranc3K05mZ1ljTGduajllQXIrTVVKSlFBak5FSXdzR0xsUWVvSkQ3?= =?utf-8?B?bEI4MkYrUEtkZ21GQzZjTXlBN0xhWDRySE5qSW5ZWS8yOXpEMlhsS0RsQTkx?= =?utf-8?B?VWFaSXpZZTc0YjhBWWIzWWQ0QXErTnlWT3AvbloyZlBiYTVGSmRtVFo4ZTBm?= =?utf-8?B?dDV6ODFRYUtoSHhvQTdpYlFGTlEreElTczlCbUQ2b3V6N0t4Wm1pQTBSTW9V?= =?utf-8?B?T1JQVURqVkRqRVR3QVdXTUphNUtKL1RPZEt4OTRQcGQ5YkFiVnNaRzVrcDJW?= =?utf-8?B?SFpaM3hPUHpCTTJsVXR2c01IWXNIUW92Y2cxT2d3VktLckQwM1htMTZDU1ov?= =?utf-8?B?bXZPUzZuVlpvdm5LOC9Xa2ROOFFKb0s2NEtENisveU1VRng0akVDaWtQQlhp?= =?utf-8?B?Y2dVRldWTi9YR3RGemhzUU5JZ2JsT1J3UnlvWW9TbzNHU2c0VVBsczI4OWVM?= =?utf-8?B?NVk1aWdDZDB0VkxXVzZHbGJGM00raVlWUHJvMU8wSGgxSGZRUUIyU1E5enYr?= =?utf-8?B?TTRVOHNvQ21Kc1FPY3R0dUZCUjllV0FRQ0taTU1nd2N0eVdSUW5oTGRwaGN5?= =?utf-8?B?NU50K2JUbzVwNUZnYWZtbHlJb3JPaXB0VE1TUTdiRUdyVDdjOEJqWVVvL2lY?= =?utf-8?B?WWZGeldPZDdoK1FUamNNK1EvVVFCRkZVSWRYcURGbGcrZHU2Rjc1WU1MWUpv?= =?utf-8?B?WkNueXhSbGFEQjhOUHFpRUZ4SlBsN0pRVTR5SCtjN1p6b1I5cHRoYXduYmtn?= =?utf-8?B?TlFOZ1J4Zytab2w4d3gzVklWZ2xWV0xkbU45aWxUZm4vUmFkV29OUnN2aGdM?= =?utf-8?B?YkI0a1lpVGxHdnZ4dHh3UWdmZ2ZIZFE3NjI0U3NrNFpDK3ZZUE5xMlArWFZN?= =?utf-8?B?TTFTMVlGODJJSmNqZ2JmMEtFTXJHYnFEeFBrdWpybUhwUmtFanBIRHkvZXpy?= =?utf-8?B?b1dPTGVLbDZjUDZLclA1QlRERGQ1UHZpU0hMSzZyb21scHI4eXd1VXo3a3JI?= =?utf-8?B?azBoL1hLUHRaczhuQ2c4WEUzSnoyZFdPcE1JNWI0bjNJZm80REhkaVFnK3BE?= =?utf-8?B?RmZEUEJRdm1ROC84T0JncUhOZjVjUGw2YllrQXdQcDdhWnlrMUVkREdzeFhZ?= =?utf-8?B?bndIQVZRak1BOVNHTGJBZ0pWbmNDcGY4OUp1Y0VXZHllbGlscFZRZnNycS84?= =?utf-8?B?QUFlTVBTZnVmN2RCQURXdFN3dVN1RlJ6Ykpuc1dDdjBSU3MvdXNwTnpldGRE?= =?utf-8?B?Z2dZNXU4NDlKM2pPbGJZcXZNZ2pDMW52TEtNK3E2bUlkY2t2U3J3SWRuanND?= =?utf-8?B?V0lCUnZZSFJzbXpxSlZvZnZGVE1GeHZRQmNmRWU5dnNYcktoOVBQR3h5V3dU?= =?utf-8?B?THg2UmRnT2xOanJmMlhSdXJjRWZzOUJmZVlYSWtRZG5Jc1QzV1FOcTFTQk1H?= =?utf-8?B?M1RROEhNMDU2THlJMms1UndtN2dZc2xLcmdRbDA1cUdtSDh4OWIxMHJnVTN3?= =?utf-8?B?bHIwcXBLWkFnNm1qMlpQa1YzWUVzL3VGYnNPY2QrUmpCUzBGOHgraTQrc2pV?= =?utf-8?Q?g6luE9wPl0GZjGWjon/9r8FUY?= 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: PH8PR11MB6684.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 917a18be-7d7f-4f62-c6cd-08dcd44a5858 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Sep 2024 23:18:15.4529 (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: LHn3mGEfjMJ82U4L0L1XEgULpo+gVQPMu/l3DOOoLQL3DOLh0akqvR1OYRcjNks/O/n7sNni/ZgWIQWle6Y9u5KOXuX7nIM3rPAx3DS0tS0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR11MB6438 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 SGkgTWF4aW1lLCANCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhp bWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBGcmlkYXks IFNlcHRlbWJlciAxMywgMjAyNCA3OjEwIEFNDQo+IFRvOiBDaGF1dHJ1LCBOaWNvbGFzIDxuaWNv bGFzLmNoYXV0cnVAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+IENjOiBoZW1hbnQuYWdyYXdh bEBueHAuY29tOyBNYXJjaGFuZCwgRGF2aWQNCj4gPGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20+ OyBWYXJnYXMsIEhlcm5hbiA8aGVybmFuLnZhcmdhc0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJl OiBbUEFUQ0ggdjIgMS8yXSBiYmRldjogYWRkIG5ldyBmdW5jdGlvbiB0byBkdW1wIGRlYnVnDQo+ IGluZm9ybWF0aW9uDQo+IA0KPiANCj4gDQo+IE9uIDgvMjkvMjQgMjI6MDYsIE5pY29sYXMgQ2hh dXRydSB3cm90ZToNCj4gPiBUaGlzIHByb3ZpZGVzIGEgbmV3IEFQSSB0byBkdW1wIG1vcmUgZGVi dWcgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUNCj4gPiBzdGF0dXMgb24gYSBnaXZlbiBiYmRl diBxdWV1ZS4NCj4gPiBTb21lIG9mIHRoaXMgaW5mb3JtYXRpb24gaXMgdmlzaWJsZSBhdCBiYmRl diBsZXZlbC4NCj4gPiBUaGlzIGFsc28gcHJvdmlkZXMgYSBuZXcgb3B0aW9uIGRldiBvcCwgdG8g cHJpbnQgbW9yZSBpbmZvcm1hdGlvbiBhdA0KPiA+IHRoZSBsb3dlciBQTUQgbGV2ZWwuDQo+ID4g VGhpcyBoZWxwcyB1c2VyIHRvIHRyb3VibGVzaG9vdCBpc3N1ZXMgcmVsYXRlZCB0byBwcmV2aW91 cyBvcGVyYXRpb25zDQo+ID4gcHJvdmlkZWQgaW50byBhIHF1ZXVlIGNhdXNpbmcgcG9zc2libGUg aGFyZC10by1kZWJ1ZyBuZWdhdGl2ZQ0KPiA+IHNjZW5hcmlvcy4NCj4gPg0KPiA+IFNpZ25lZC1v ZmYtYnk6IE5pY29sYXMgQ2hhdXRydSA8bmljb2xhcy5jaGF1dHJ1QGludGVsLmNvbT4NCj4gPiAt LS0NCj4gPiAgIGxpYi9iYmRldi9ydGVfYmJkZXYuYyAgICAgfCAyMTQNCj4gKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiAgIGxpYi9iYmRldi9ydGVfYmJkZXYuaCAg ICAgfCAgNDEgKysrKysrKysNCj4gPiAgIGxpYi9iYmRldi9ydGVfYmJkZXZfcG1kLmggfCAgIDkg KysNCj4gPiAgIGxpYi9iYmRldi92ZXJzaW9uLm1hcCAgICAgfCAgIDQgKw0KPiA+ICAgNCBmaWxl cyBjaGFuZ2VkLCAyNjggaW5zZXJ0aW9ucygrKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9i YmRldi9ydGVfYmJkZXYuYyBiL2xpYi9iYmRldi9ydGVfYmJkZXYuYyBpbmRleA0KPiA+IDEzYmRl M2MyNWIuLjkwODc4NjJjNzYgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2JiZGV2L3J0ZV9iYmRldi5j DQo+ID4gKysrIGIvbGliL2JiZGV2L3J0ZV9iYmRldi5jDQo+ID4gQEAgLTExOTAsMyArMTE5MCwy MTcgQEAgcnRlX2JiZGV2X2VucXVldWVfc3RhdHVzX3N0cihlbnVtDQo+IHJ0ZV9iYmRldl9lbnF1 ZXVlX3N0YXR1cyBzdGF0dXMpDQo+ID4gICAJcnRlX2JiZGV2X2xvZyhFUlIsICJJbnZhbGlkIGVu cXVldWUgc3RhdHVzIik7DQo+ID4gICAJcmV0dXJuIE5VTEw7DQo+ID4gICB9DQo+ID4gKw0KPiA+ ICsNCj4gPiAraW50DQo+ID4gK3J0ZV9iYmRldl9xdWV1ZV9vcHNfZHVtcCh1aW50MTZfdCBkZXZf aWQsIHVpbnQxNl90IHF1ZXVlX2lkLCBGSUxFICpmKQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgcnRl X2JiZGV2X3F1ZXVlX2RhdGEgKnFfZGF0YTsNCj4gPiArCXN0cnVjdCBydGVfYmJkZXZfc3RhdHMg KnN0YXRzOw0KPiA+ICsJdWludDE2X3QgaTsNCj4gPiArCXN0cnVjdCBydGVfYmJkZXYgKmRldiA9 IGdldF9kZXYoZGV2X2lkKTsNCj4gPiArDQo+ID4gKwlWQUxJRF9ERVZfT1JfUkVUX0VSUihkZXYs IGRldl9pZCk7DQo+ID4gKwlWQUxJRF9RVUVVRV9PUl9SRVRfRVJSKHF1ZXVlX2lkLCBkZXYpOw0K PiA+ICsJVkFMSURfREVWX09QU19PUl9SRVRfRVJSKGRldiwgZGV2X2lkKTsNCj4gPiArCVZBTElE X0ZVTkNfT1JfUkVUX0VSUihkZXYtPmRldl9vcHMtPnF1ZXVlX29wc19kdW1wLA0KPiBkZXZfaWQp Ow0KPiA+ICsNCj4gPiArCXFfZGF0YSA9ICZkZXYtPmRhdGEtPnF1ZXVlc1txdWV1ZV9pZF07DQo+ ID4gKw0KPiA+ICsJaWYgKGYgPT0gTlVMTCkNCj4gPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gPiAr DQo+ID4gKwlmcHJpbnRmKGYsICJEdW1wIG9mIG9wZXJhdGlvbnMgb24gJXMgcXVldWUgJWRcbiIs DQo+ID4gKwkJCWRldi0+ZGF0YS0+bmFtZSwgcXVldWVfaWQpOw0KPiA+ICsJZnByaW50ZihmLCAi ICBMYXN0IEVucXVldWUgU3RhdHVzICVzXG4iLA0KPiA+ICsJCQlydGVfYmJkZXZfZW5xdWV1ZV9z dGF0dXNfc3RyKHFfZGF0YS0NCj4gPmVucXVldWVfc3RhdHVzKSk7DQo+ID4gKwlmb3IgKGkgPSAw OyBpIDwgUlRFX0JCREVWX0VOUV9TVEFUVVNfU0laRV9NQVg7IGkrKykNCj4gPiArCQlpZiAocV9k YXRhLT5xdWV1ZV9zdGF0cy5lbnF1ZXVlX3N0YXR1c19jb3VudFtpXSA+IDApDQo+ID4gKwkJCWZw cmludGYoZiwgIiAgRW5xdWV1ZSBTdGF0dXMgQ291bnRlcnMgJXMgJSIgUFJJdTY0DQo+ICJcbiIs DQo+ID4gKwkJCQkJcnRlX2JiZGV2X2VucXVldWVfc3RhdHVzX3N0cihpKSwNCj4gPiArCQkJCQlx X2RhdGEtDQo+ID5xdWV1ZV9zdGF0cy5lbnF1ZXVlX3N0YXR1c19jb3VudFtpXSk7DQo+ID4gKwlz dGF0cyA9ICZkZXYtPmRhdGEtPnF1ZXVlc1txdWV1ZV9pZF0ucXVldWVfc3RhdHM7DQo+ID4gKw0K PiA+ICsJZnByaW50ZihmLCAiICBFbnF1ZXVlIENvdW50ICUiIFBSSXU2NCAiIFdhcm5pbmcgJSIg UFJJdTY0ICIgRXJyb3IgJSINCj4gUFJJdTY0ICJcbiIsDQo+ID4gKwkJCXN0YXRzLT5lbnF1ZXVl ZF9jb3VudCwgc3RhdHMtPmVucXVldWVfd2Fybl9jb3VudCwNCj4gPiArCQkJc3RhdHMtPmVucXVl dWVfZXJyX2NvdW50KTsNCj4gPiArCWZwcmludGYoZiwgIiAgRGVxdWV1ZSBDb3VudCAlIiBQUkl1 NjQgIiBXYXJuaW5nICUiIFBSSXU2NCAiIEVycm9yICUiDQo+IFBSSXU2NCAiXG4iLA0KPiA+ICsJ CQlzdGF0cy0+ZGVxdWV1ZWRfY291bnQsIHN0YXRzLT5kZXF1ZXVlX3dhcm5fY291bnQsDQo+ID4g KwkJCXN0YXRzLT5kZXF1ZXVlX2Vycl9jb3VudCk7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIGRldi0+ ZGV2X29wcy0+cXVldWVfb3BzX2R1bXAoZGV2LCBxdWV1ZV9pZCwgZik7IH0NCj4gPiArDQo+ID4g K2NoYXIgKg0KPiA+ICtydGVfYmJkZXZfb3BzX3BhcmFtX3N0cmluZyh2b2lkICpvcCwgZW51bSBy dGVfYmJkZXZfb3BfdHlwZSBvcF90eXBlKQ0KPiA+ICt7DQo+ID4gKwlzdGF0aWMgY2hhciBzdHJb MTAyNF07DQo+ID4gKwlzdGF0aWMgY2hhciBwYXJ0aWFsWzEwMjRdOw0KPiANCj4gSXQgaXMgYmV0 dGVyIHRvIGhhdmUgdGhlIHN0cmluZyBhbGxvY2F0ZWQgYnkgdGhlIGFwcGxpY2F0aW9uLCBpdCB3 b3VsZCBiZSBwYXNzZWQgYXMNCj4gYSBwb2ludGVyIGFuZCBsZW5ndGggb2YgdGhlIGFsbG9jYXRl ZCBidWZmZXIgd291bGQgYmUgcGFzc2VkIGFsc28gYXMgYW4NCj4gYXJndW1lbnQuDQoNCk9rLiBV cGRhdGVkIGluIHYzLiBUaGFua3MNCg0KPiANCj4gPiArCXN0cnVjdCBydGVfYmJkZXZfZGVjX29w ICpvcF9kZWM7DQo+ID4gKwlzdHJ1Y3QgcnRlX2JiZGV2X2VuY19vcCAqb3BfZW5jOw0KPiA+ICsJ c3RydWN0IHJ0ZV9iYmRldl9mZnRfb3AgKm9wX2ZmdDsNCj4gPiArCXN0cnVjdCBydGVfYmJkZXZf bWxkdHNfb3AgKm9wX21sZHRzOw0KPiA+ICsNCj4gPiArCXJ0ZV9pb3ZhX3QgYWRkMCA9IDAsIGFk ZDEgPSAwLCBhZGQyID0gMCwgYWRkMyA9IDAsIGFkZDQgPSAwOw0KPiA+ICsNCj4gPiArCWlmIChv cCA9PSBOVUxMKSB7DQo+ID4gKwkJc25wcmludGYoc3RyLCBzaXplb2Yoc3RyKSwgIkludmFsaWQg T3BlcmF0aW9uIHBvaW50ZXJcbiIpOw0KPiA+ICsJCXJldHVybiBzdHI7DQo+ID4gKwl9DQo+ID4g Kw0KPiA+ICsJaWYgKG9wX3R5cGUgPT0gUlRFX0JCREVWX09QX0xEUENfREVDKSB7DQo+ID4gKwkJ b3BfZGVjID0gb3A7DQo+ID4gKwkJaWYgKG9wX2RlYy0+bGRwY19kZWMuY29kZV9ibG9ja19tb2Rl ID09DQo+IFJURV9CQkRFVl9UUkFOU1BPUlRfQkxPQ0spDQo+ID4gKwkJCXNucHJpbnRmKHBhcnRp YWwsIHNpemVvZihwYXJ0aWFsKSwgIkMgJWQgQ2FiICVkIEVhICVkIEViDQo+ICVkIHIgJWQiLA0K PiA+ICsJCQkJCW9wX2RlYy0+bGRwY19kZWMudGJfcGFyYW1zLmMsDQo+ID4gKwkJCQkJb3BfZGVj LT5sZHBjX2RlYy50Yl9wYXJhbXMuY2FiLA0KPiA+ICsJCQkJCW9wX2RlYy0+bGRwY19kZWMudGJf cGFyYW1zLmVhLA0KPiA+ICsJCQkJCW9wX2RlYy0+bGRwY19kZWMudGJfcGFyYW1zLmViLA0KPiA+ ICsJCQkJCW9wX2RlYy0+bGRwY19kZWMudGJfcGFyYW1zLnIpOw0KPiA+ICsJCWVsc2UNCj4gPiAr CQkJc25wcmludGYocGFydGlhbCwgc2l6ZW9mKHBhcnRpYWwpLCAiRSAlZCIsIG9wX2RlYy0NCj4g PmxkcGNfZGVjLmNiX3BhcmFtcy5lKTsNCj4gPiArCQlpZiAob3BfZGVjLT5sZHBjX2RlYy5pbnB1 dC5kYXRhICE9IE5VTEwpDQo+ID4gKwkJCWFkZDAgPSBydGVfcGt0bWJ1Zl9pb3ZhX29mZnNldChv cF9kZWMtDQo+ID5sZHBjX2RlYy5pbnB1dC5kYXRhLCAwKTsNCj4gPiArCQlpZiAob3BfZGVjLT5s ZHBjX2RlYy5oYXJkX291dHB1dC5kYXRhICE9IE5VTEwpDQo+ID4gKwkJCWFkZDEgPSBydGVfcGt0 bWJ1Zl9pb3ZhX29mZnNldChvcF9kZWMtDQo+ID5sZHBjX2RlYy5oYXJkX291dHB1dC5kYXRhLCAw KTsNCj4gPiArCQlpZiAob3BfZGVjLT5sZHBjX2RlYy5zb2Z0X291dHB1dC5kYXRhICE9IE5VTEwp DQo+ID4gKwkJCWFkZDIgPSBydGVfcGt0bWJ1Zl9pb3ZhX29mZnNldChvcF9kZWMtDQo+ID5sZHBj X2RlYy5zb2Z0X291dHB1dC5kYXRhLCAwKTsNCj4gPiArCQlpZiAob3BfZGVjLT5sZHBjX2RlYy5o YXJxX2NvbWJpbmVkX2lucHV0LmRhdGEgIT0gTlVMTCkNCj4gPiArCQkJYWRkMyA9IHJ0ZV9wa3Rt YnVmX2lvdmFfb2Zmc2V0KG9wX2RlYy0NCj4gPmxkcGNfZGVjLmhhcnFfY29tYmluZWRfaW5wdXQu ZGF0YSwNCj4gPiArCQkJCQkwKTsNCj4gPiArCQlpZiAob3BfZGVjLT5sZHBjX2RlYy5oYXJxX2Nv bWJpbmVkX291dHB1dC5kYXRhICE9IE5VTEwpDQo+ID4gKwkJCWFkZDQgPSBydGVfcGt0bWJ1Zl9p b3ZhX29mZnNldChvcF9kZWMtDQo+ID5sZHBjX2RlYy5oYXJxX2NvbWJpbmVkX291dHB1dC5kYXRh LA0KPiA+ICsJCQkJCTApOw0KPiA+ICsJCXNucHJpbnRmKHN0ciwgc2l6ZW9mKHN0ciksICJvcCAl eCBzdCAleCBCRyAlZCBaYyAlZCBOY2IgJWQgcW0NCj4gJWQgRiAlZCBSdiAlZCBJdCAlZCBJdCAl ZCAiDQo+ID4gKwkJCSJIQVJRaW4gJWQgaW4gJSIgUFJJeDY0ICIgaG8gJSIgUFJJeDY0ICIgc28g JSINCj4gUFJJeDY0ICIgaGkgJSIgUFJJeDY0ICIgIg0KPiA+ICsJCQkiaG8gJSIgUFJJeDY0ICIg JXNcbiIsDQo+ID4gKwkJCW9wX2RlYy0+bGRwY19kZWMub3BfZmxhZ3MsIG9wX2RlYy0+c3RhdHVz LA0KPiA+ICsJCQlvcF9kZWMtPmxkcGNfZGVjLmJhc2VncmFwaCwgb3BfZGVjLT5sZHBjX2RlYy56 X2MsDQo+ID4gKwkJCW9wX2RlYy0+bGRwY19kZWMubl9jYiwgb3BfZGVjLT5sZHBjX2RlYy5xX20s DQo+ID4gKwkJCW9wX2RlYy0+bGRwY19kZWMubl9maWxsZXIsIG9wX2RlYy0NCj4gPmxkcGNfZGVj LnJ2X2luZGV4LA0KPiA+ICsJCQlvcF9kZWMtPmxkcGNfZGVjLml0ZXJfbWF4LCBvcF9kZWMtDQo+ ID5sZHBjX2RlYy5pdGVyX2NvdW50LA0KPiA+ICsJCQlvcF9kZWMtPmxkcGNfZGVjLmhhcnFfY29t YmluZWRfaW5wdXQubGVuZ3RoLA0KPiA+ICsJCQlhZGQwLCBhZGQxLCBhZGQyLCBhZGQzLCBhZGQ0 LCBwYXJ0aWFsKTsNCj4gPiArCX0gZWxzZSBpZiAob3BfdHlwZSA9PSBSVEVfQkJERVZfT1BfVFVS Qk9fREVDKSB7DQo+ID4gKwkJb3BfZGVjID0gb3A7DQo+ID4gKwkJaWYgKG9wX2RlYy0+dHVyYm9f ZGVjLmNvZGVfYmxvY2tfbW9kZSA9PQ0KPiBSVEVfQkJERVZfVFJBTlNQT1JUX0JMT0NLKQ0KPiA+ ICsJCQlzbnByaW50ZihwYXJ0aWFsLCBzaXplb2YocGFydGlhbCksICJDICVkIENhYiAlZCBFYSAl ZCBFYg0KPiAlZCByICVkIEsgJWQiLA0KPiA+ICsJCQkJCW9wX2RlYy0+dHVyYm9fZGVjLnRiX3Bh cmFtcy5jLA0KPiA+ICsJCQkJCW9wX2RlYy0+dHVyYm9fZGVjLnRiX3BhcmFtcy5jYWIsDQo+ID4g KwkJCQkJb3BfZGVjLT50dXJib19kZWMudGJfcGFyYW1zLmVhLA0KPiA+ICsJCQkJCW9wX2RlYy0+ dHVyYm9fZGVjLnRiX3BhcmFtcy5lYiwNCj4gPiArCQkJCQlvcF9kZWMtPnR1cmJvX2RlYy50Yl9w YXJhbXMuciwNCj4gPiArCQkJCQlvcF9kZWMtDQo+ID50dXJib19kZWMudGJfcGFyYW1zLmtfbmVn KTsNCj4gPiArCQllbHNlDQo+ID4gKwkJCXNucHJpbnRmKHBhcnRpYWwsIHNpemVvZihwYXJ0aWFs KSwgIkUgJWQgSyAlZCIsDQo+ID4gKwkJCQkJb3BfZGVjLT50dXJib19kZWMuY2JfcGFyYW1zLmUs DQo+ID4gKwkJCQkJb3BfZGVjLT50dXJib19kZWMuY2JfcGFyYW1zLmspOw0KPiA+ICsJCWlmIChv cF9kZWMtPnR1cmJvX2RlYy5pbnB1dC5kYXRhICE9IE5VTEwpDQo+ID4gKwkJCWFkZDAgPSBydGVf cGt0bWJ1Zl9pb3ZhX29mZnNldChvcF9kZWMtDQo+ID50dXJib19kZWMuaW5wdXQuZGF0YSwgMCk7 DQo+ID4gKwkJaWYgKG9wX2RlYy0+dHVyYm9fZGVjLmhhcmRfb3V0cHV0LmRhdGEgIT0gTlVMTCkN Cj4gPiArCQkJYWRkMSA9IHJ0ZV9wa3RtYnVmX2lvdmFfb2Zmc2V0KG9wX2RlYy0NCj4gPnR1cmJv X2RlYy5oYXJkX291dHB1dC5kYXRhLCAwKTsNCj4gPiArCQlpZiAob3BfZGVjLT50dXJib19kZWMu c29mdF9vdXRwdXQuZGF0YSAhPSBOVUxMKQ0KPiA+ICsJCQlhZGQyID0gcnRlX3BrdG1idWZfaW92 YV9vZmZzZXQob3BfZGVjLQ0KPiA+dHVyYm9fZGVjLnNvZnRfb3V0cHV0LmRhdGEsIDApOw0KPiA+ ICsJCXNucHJpbnRmKHN0ciwgc2l6ZW9mKHN0ciksICJvcCAleCBzdCAleCBDQk0gJWQgSXRlciAl ZCBtYXAgJWQNCj4gUnYgJWQgZXh0ICVkICINCj4gPiArCQkJCSJpbiAlIiBQUkl4NjQgIiBobyAl IiBQUkl4NjQgIiBzbyAlIiBQUkl4NjQgIg0KPiAlc1xuIiwNCj4gPiArCQkJCW9wX2RlYy0+dHVy Ym9fZGVjLm9wX2ZsYWdzLCBvcF9kZWMtPnN0YXR1cywNCj4gPiArCQkJCW9wX2RlYy0+dHVyYm9f ZGVjLmNvZGVfYmxvY2tfbW9kZSwNCj4gPiArCQkJCW9wX2RlYy0+dHVyYm9fZGVjLml0ZXJfbWF4 LCBvcF9kZWMtDQo+ID50dXJib19kZWMubnVtX21hcHMsDQo+ID4gKwkJCQlvcF9kZWMtPnR1cmJv X2RlYy5ydl9pbmRleCwgb3BfZGVjLQ0KPiA+dHVyYm9fZGVjLmV4dF9zY2FsZSwNCj4gPiArCQkJ CWFkZDAsIGFkZDEsIGFkZDIsIHBhcnRpYWwpOw0KPiA+ICsJfSBlbHNlIGlmIChvcF90eXBlID09 IFJURV9CQkRFVl9PUF9MRFBDX0VOQykgew0KPiA+ICsJCW9wX2VuYyA9IG9wOw0KPiA+ICsJCWlm IChvcF9lbmMtPmxkcGNfZW5jLmNvZGVfYmxvY2tfbW9kZSA9PQ0KPiBSVEVfQkJERVZfVFJBTlNQ T1JUX0JMT0NLKQ0KPiA+ICsJCQlzbnByaW50ZihwYXJ0aWFsLCBzaXplb2YocGFydGlhbCksICJD ICVkIENhYiAlZCBFYSAlZCBFYg0KPiAlZCByICVkIiwNCj4gPiArCQkJCQlvcF9lbmMtPmxkcGNf ZW5jLnRiX3BhcmFtcy5jLA0KPiA+ICsJCQkJCW9wX2VuYy0+bGRwY19lbmMudGJfcGFyYW1zLmNh YiwNCj4gPiArCQkJCQlvcF9lbmMtPmxkcGNfZW5jLnRiX3BhcmFtcy5lYSwNCj4gPiArCQkJCQlv cF9lbmMtPmxkcGNfZW5jLnRiX3BhcmFtcy5lYiwNCj4gPiArCQkJCQlvcF9lbmMtPmxkcGNfZW5j LnRiX3BhcmFtcy5yKTsNCj4gPiArCQllbHNlDQo+ID4gKwkJCXNucHJpbnRmKHBhcnRpYWwsIHNp emVvZihwYXJ0aWFsKSwgIkUgJWQiLA0KPiA+ICsJCQkJCW9wX2VuYy0+bGRwY19lbmMuY2JfcGFy YW1zLmUpOw0KPiA+ICsJCWlmIChvcF9lbmMtPmxkcGNfZW5jLmlucHV0LmRhdGEgIT0gTlVMTCkN Cj4gPiArCQkJYWRkMCA9IHJ0ZV9wa3RtYnVmX2lvdmFfb2Zmc2V0KG9wX2VuYy0NCj4gPmxkcGNf ZW5jLmlucHV0LmRhdGEsIDApOw0KPiA+ICsJCWlmIChvcF9lbmMtPmxkcGNfZW5jLm91dHB1dC5k YXRhICE9IE5VTEwpDQo+ID4gKwkJCWFkZDEgPSBydGVfcGt0bWJ1Zl9pb3ZhX29mZnNldChvcF9l bmMtDQo+ID5sZHBjX2VuYy5vdXRwdXQuZGF0YSwgMCk7DQo+ID4gKwkJc25wcmludGYoc3RyLCBz aXplb2Yoc3RyKSwgIm9wICV4IHN0ICV4IEJHICVkIFpjICVkIE5jYiAlZCBxX20NCj4gJWQgRiAl ZCBSdiAlZCAiDQo+ID4gKwkJCQkiaW4gJSIgUFJJeDY0ICIgb3V0ICUiIFBSSXg2NCAiICVzXG4i LA0KPiA+ICsJCQkJb3BfZW5jLT5sZHBjX2VuYy5vcF9mbGFncywgb3BfZW5jLT5zdGF0dXMsDQo+ ID4gKwkJCQlvcF9lbmMtPmxkcGNfZW5jLmJhc2VncmFwaCwgb3BfZW5jLQ0KPiA+bGRwY19lbmMu el9jLA0KPiA+ICsJCQkJb3BfZW5jLT5sZHBjX2VuYy5uX2NiLCBvcF9lbmMtDQo+ID5sZHBjX2Vu Yy5xX20sDQo+ID4gKwkJCQlvcF9lbmMtPmxkcGNfZW5jLm5fZmlsbGVyLCBvcF9lbmMtDQo+ID5s ZHBjX2VuYy5ydl9pbmRleCwNCj4gPiArCQkJCWFkZDAsIGFkZDEsIHBhcnRpYWwpOw0KPiA+ICsJ fSBlbHNlIGlmIChvcF90eXBlID09IFJURV9CQkRFVl9PUF9UVVJCT19FTkMpIHsNCj4gPiArCQlv cF9lbmMgPSBvcDsNCj4gPiArCQlpZiAob3BfZW5jLT50dXJib19lbmMuY29kZV9ibG9ja19tb2Rl ID09DQo+IFJURV9CQkRFVl9UUkFOU1BPUlRfQkxPQ0spDQo+ID4gKwkJCXNucHJpbnRmKHBhcnRp YWwsIHNpemVvZihwYXJ0aWFsKSwNCj4gPiArCQkJCQkiQyAlZCBDYWIgJWQgRWEgJWQgRWIgJWQg ciAlZCBLICVkDQo+IE5jYiAlZCIsDQo+ID4gKwkJCQkJb3BfZW5jLT50dXJib19lbmMudGJfcGFy YW1zLmMsDQo+ID4gKwkJCQkJb3BfZW5jLT50dXJib19lbmMudGJfcGFyYW1zLmNhYiwNCj4gPiAr CQkJCQlvcF9lbmMtPnR1cmJvX2VuYy50Yl9wYXJhbXMuZWEsDQo+ID4gKwkJCQkJb3BfZW5jLT50 dXJib19lbmMudGJfcGFyYW1zLmViLA0KPiA+ICsJCQkJCW9wX2VuYy0+dHVyYm9fZW5jLnRiX3Bh cmFtcy5yLA0KPiA+ICsJCQkJCW9wX2VuYy0+dHVyYm9fZW5jLnRiX3BhcmFtcy5rX25lZywNCj4g PiArCQkJCQlvcF9lbmMtDQo+ID50dXJib19lbmMudGJfcGFyYW1zLm5jYl9uZWcpOw0KPiA+ICsJ CWVsc2UNCj4gPiArCQkJc25wcmludGYocGFydGlhbCwgc2l6ZW9mKHBhcnRpYWwpLCAiRSAlZCBL ICVkIiwNCj4gPiArCQkJCQlvcF9lbmMtPnR1cmJvX2VuYy5jYl9wYXJhbXMuZSwNCj4gPiArCQkJ CQlvcF9lbmMtPnR1cmJvX2VuYy5jYl9wYXJhbXMuayk7DQo+ID4gKwkJaWYgKG9wX2VuYy0+dHVy Ym9fZW5jLmlucHV0LmRhdGEgIT0gTlVMTCkNCj4gPiArCQkJYWRkMCA9IHJ0ZV9wa3RtYnVmX2lv dmFfb2Zmc2V0KG9wX2VuYy0NCj4gPnR1cmJvX2VuYy5pbnB1dC5kYXRhLCAwKTsNCj4gPiArCQlp ZiAob3BfZW5jLT50dXJib19lbmMub3V0cHV0LmRhdGEgIT0gTlVMTCkNCj4gPiArCQkJYWRkMSA9 IHJ0ZV9wa3RtYnVmX2lvdmFfb2Zmc2V0KG9wX2VuYy0NCj4gPnR1cmJvX2VuYy5vdXRwdXQuZGF0 YSwgMCk7DQo+ID4gKwkJc25wcmludGYoc3RyLCBzaXplb2Yoc3RyKSwgIm9wICV4IHN0ICV4IENC TSAlZCBSdiAlZCBJbiAlIg0KPiBQUkl4NjQgIiBPdXQgJSIgUFJJeDY0ICIgJXNcbiIsDQo+ID4g KwkJCQlvcF9lbmMtPnR1cmJvX2VuYy5vcF9mbGFncywgb3BfZW5jLT5zdGF0dXMsDQo+ID4gKwkJ CQlvcF9lbmMtPnR1cmJvX2VuYy5jb2RlX2Jsb2NrX21vZGUsDQo+IG9wX2VuYy0+dHVyYm9fZW5j LnJ2X2luZGV4LA0KPiA+ICsJCQkJYWRkMCwgYWRkMSwgcGFydGlhbCk7DQo+ID4gKwl9IGVsc2Ug aWYgKG9wX3R5cGUgPT0gUlRFX0JCREVWX09QX0ZGVCkgew0KPiA+ICsJCW9wX2ZmdCA9IG9wOw0K PiA+ICsJCWlmIChvcF9mZnQtPmZmdC5iYXNlX2lucHV0LmRhdGEgIT0gTlVMTCkNCj4gPiArCQkJ YWRkMCA9IHJ0ZV9wa3RtYnVmX2lvdmFfb2Zmc2V0KG9wX2ZmdC0NCj4gPmZmdC5iYXNlX2lucHV0 LmRhdGEsIDApOw0KPiA+ICsJCWlmIChvcF9mZnQtPmZmdC5iYXNlX291dHB1dC5kYXRhICE9IE5V TEwpDQo+ID4gKwkJCWFkZDEgPSBydGVfcGt0bWJ1Zl9pb3ZhX29mZnNldChvcF9mZnQtDQo+ID5m ZnQuYmFzZV9vdXRwdXQuZGF0YSwgMCk7DQo+ID4gKwkJaWYgKG9wX2ZmdC0+ZmZ0LmRld2luZG93 aW5nX2lucHV0LmRhdGEgIT0gTlVMTCkNCj4gPiArCQkJYWRkMiA9IHJ0ZV9wa3RtYnVmX2lvdmFf b2Zmc2V0KG9wX2ZmdC0NCj4gPmZmdC5kZXdpbmRvd2luZ19pbnB1dC5kYXRhLCAwKTsNCj4gPiAr CQlpZiAob3BfZmZ0LT5mZnQucG93ZXJfbWVhc19vdXRwdXQuZGF0YSAhPSBOVUxMKQ0KPiA+ICsJ CQlhZGQzID0gcnRlX3BrdG1idWZfaW92YV9vZmZzZXQob3BfZmZ0LQ0KPiA+ZmZ0LnBvd2VyX21l YXNfb3V0cHV0LmRhdGEsIDApOw0KPiA+ICsJCXNucHJpbnRmKHN0ciwgc2l6ZW9mKHN0ciksICJv cCAleCBzdCAleCBpbiAlZCBpbmwgJWQgb3V0ICVkIG91dGwNCj4gJWQgY3MgJXggYW50cyAlZCAi DQo+ID4gKwkJCQkiaWRmdCAlZCBkZnQgJWQgY3N0ICVkIGlzaCAlZCBkc2ggJWQgbmNzICVkDQo+ IHB3c2ggJWQgZnAxNiAlZCBmciAlZCAiDQo+ID4gKwkJCQkib3V0ZGUgJWQgaW4gJSIgUFJJeDY0 ICIgb3V0ICUiIFBSSXg2NCAiIGR3DQo+ICUiIFBSSXg2NCAiICINCj4gPiArCQkJCSJwbSAlIiBQ Ukl4NjQgIlxuIiwNCj4gPiArCQkJCW9wX2ZmdC0+ZmZ0Lm9wX2ZsYWdzLCBvcF9mZnQtPnN0YXR1 cywNCj4gPiArCQkJCW9wX2ZmdC0+ZmZ0LmlucHV0X3NlcXVlbmNlX3NpemUsIG9wX2ZmdC0NCj4g PmZmdC5pbnB1dF9sZWFkaW5nX3BhZGRpbmcsDQo+ID4gKwkJCQlvcF9mZnQtPmZmdC5vdXRwdXRf c2VxdWVuY2Vfc2l6ZSwNCj4gPiArCQkJCW9wX2ZmdC0+ZmZ0Lm91dHB1dF9sZWFkaW5nX2RlcGFk ZGluZywNCj4gPiArCQkJCW9wX2ZmdC0+ZmZ0LmNzX2JpdG1hcCwgb3BfZmZ0LQ0KPiA+ZmZ0Lm51 bV9hbnRlbm5hc19sb2cyLA0KPiA+ICsJCQkJb3BfZmZ0LT5mZnQuaWRmdF9sb2cyLCBvcF9mZnQt PmZmdC5kZnRfbG9nMiwNCj4gPiArCQkJCW9wX2ZmdC0+ZmZ0LmNzX3RpbWVfYWRqdXN0bWVudCwN Cj4gPiArCQkJCW9wX2ZmdC0+ZmZ0LmlkZnRfc2hpZnQsIG9wX2ZmdC0+ZmZ0LmRmdF9zaGlmdCwN Cj4gPiArCQkJCW9wX2ZmdC0+ZmZ0Lm5jc19yZWNpcHJvY2FsLCBvcF9mZnQtDQo+ID5mZnQucG93 ZXJfc2hpZnQsDQo+ID4gKwkJCQlvcF9mZnQtPmZmdC5mcDE2X2V4cF9hZGp1c3QsIG9wX2ZmdC0N Cj4gPmZmdC5mcmVxX3Jlc2FtcGxlX21vZGUsDQo+ID4gKwkJCQlvcF9mZnQtPmZmdC5vdXRwdXRf ZGVwYWRkZWRfc2l6ZSwgYWRkMCwgYWRkMSwNCj4gYWRkMiwgYWRkMyk7DQo+ID4gKwl9IGVsc2Ug aWYgKG9wX3R5cGUgPT0gUlRFX0JCREVWX09QX01MRFRTKSB7DQo+ID4gKwkJb3BfbWxkdHMgPSBv cDsNCj4gPiArCQlpZiAob3BfbWxkdHMtPm1sZHRzLnFoeV9pbnB1dC5kYXRhICE9IE5VTEwpDQo+ ID4gKwkJCWFkZDAgPSBydGVfcGt0bWJ1Zl9pb3ZhX29mZnNldChvcF9tbGR0cy0NCj4gPm1sZHRz LnFoeV9pbnB1dC5kYXRhLCAwKTsNCj4gPiArCQlpZiAob3BfbWxkdHMtPm1sZHRzLnJfaW5wdXQu ZGF0YSAhPSBOVUxMKQ0KPiA+ICsJCQlhZGQxID0gcnRlX3BrdG1idWZfaW92YV9vZmZzZXQob3Bf bWxkdHMtDQo+ID5tbGR0cy5yX2lucHV0LmRhdGEsIDApOw0KPiA+ICsJCWlmIChvcF9tbGR0cy0+ bWxkdHMub3V0cHV0LmRhdGEgIT0gTlVMTCkNCj4gPiArCQkJYWRkMiA9IHJ0ZV9wa3RtYnVmX2lv dmFfb2Zmc2V0KG9wX21sZHRzLQ0KPiA+bWxkdHMub3V0cHV0LmRhdGEsIDApOw0KPiA+ICsJCXNu cHJpbnRmKHN0ciwgc2l6ZW9mKHN0ciksDQo+ID4gKwkJCQkib3AgJXggc3QgJXggcmJzICVkIGxh eSAlZCBycmVwICVkIGNyZXAlZA0KPiBxbSAlZCAlZCAlZCAlZCAiDQo+ID4gKwkJCQkicWh5ICUi IFBSSXg2NCAiIHIgJSIgUFJJeDY0ICIgb3V0ICUiIFBSSXg2NA0KPiAiXG4iLA0KPiA+ICsJCQkJ b3BfbWxkdHMtPm1sZHRzLm9wX2ZsYWdzLCBvcF9tbGR0cy0+c3RhdHVzLA0KPiA+ICsJCQkJb3Bf bWxkdHMtPm1sZHRzLm51bV9yYnMsIG9wX21sZHRzLQ0KPiA+bWxkdHMubnVtX2xheWVycywNCj4g PiArCQkJCW9wX21sZHRzLT5tbGR0cy5yX3JlcCwgb3BfbWxkdHMtDQo+ID5tbGR0cy5jX3JlcCwN Cj4gPiArCQkJCW9wX21sZHRzLT5tbGR0cy5xX21bMF0sIG9wX21sZHRzLQ0KPiA+bWxkdHMucV9t WzFdLA0KPiA+ICsJCQkJb3BfbWxkdHMtPm1sZHRzLnFfbVsyXSwgb3BfbWxkdHMtDQo+ID5tbGR0 cy5xX21bM10sDQo+ID4gKwkJCQlhZGQwLCBhZGQxLCBhZGQyKTsNCj4gPiArDQo+ID4gKwl9IGVs c2Ugew0KPiA+ICsJCXNucHJpbnRmKHN0ciwgc2l6ZW9mKHN0ciksICJJbnZhbGlkIE9wZXJhdGlv biB0eXBlICVkXG4iLA0KPiBvcF90eXBlKTsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlyZXR1cm4g c3RyOw0KPiA+ICt9DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9iYmRldi9ydGVfYmJkZXYuaCBiL2xp Yi9iYmRldi9ydGVfYmJkZXYuaCBpbmRleA0KPiA+IDBjYmZkZDFjOTUuLmE3MGQ4NDEzNzkgMTAw NjQ0DQo+ID4gLS0tIGEvbGliL2JiZGV2L3J0ZV9iYmRldi5oDQo+ID4gKysrIGIvbGliL2JiZGV2 L3J0ZV9iYmRldi5oDQo+ID4gQEAgLTEwNjEsNiArMTA2MSw0NyBAQCBydGVfYmJkZXZfZGV2aWNl X3N0YXR1c19zdHIoZW51bQ0KPiBydGVfYmJkZXZfZGV2aWNlX3N0YXR1cyBzdGF0dXMpOw0KPiA+ ICAgY29uc3QgY2hhcioNCj4gPiAgIHJ0ZV9iYmRldl9lbnF1ZXVlX3N0YXR1c19zdHIoZW51bSBy dGVfYmJkZXZfZW5xdWV1ZV9zdGF0dXMgc3RhdHVzKTsNCj4gPg0KPiA+ICsvKioNCj4gPiArICog RHVtcCBvcGVyYXRpb25zIGluZm8gZnJvbSBkZXZpY2UgdG8gYSBmaWxlLg0KPiA+ICsgKiBUaGlz IEFQSSBpcyB1c2VkIGZvciBkZWJ1Z2dpbmcgcHJvdmlkZWQgaW5wdXQgb3BlcmF0aW9ucywgbm90 IGEgZGF0YXBsYW5lDQo+IEFQSS4NCj4gPiArICoNCj4gPiArICogIEBwYXJhbSBkZXZfaWQNCj4g PiArICogICAgVGhlIGRldmljZSBpZGVudGlmaWVyLg0KPiA+ICsgKg0KPiA+ICsgKiAgQHBhcmFt IHF1ZXVlX2luZGV4DQo+ID4gKyAqICAgIEluZGV4IG9mIHF1ZXVlLg0KPiA+ICsgKg0KPiA+ICsg KiAgQHBhcmFtIGZpbGUNCj4gPiArICogICAgQSBwb2ludGVyIHRvIGEgZmlsZSBmb3Igb3V0cHV0 Lg0KPiA+ICsgKg0KPiA+ICsgKiBAcmV0dXJucw0KPiA+ICsgKiAgIC0gMCBvbiBzdWNjZXNzDQo+ ID4gKyAqICAgLSBFTk9UU1VQIGlmIGludGVycnVwdHMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdGhl IGlkZW50aWZpZWQgZGV2aWNlDQo+ID4gKyAqICAgLSBuZWdhdGl2ZSB2YWx1ZSBvbiBmYWlsdXJl IC0gYXMgcmV0dXJuZWQgZnJvbSBQTUQNCj4gPiArICoNCj4gPiArICovDQo+ID4gK19fcnRlX2V4 cGVyaW1lbnRhbA0KPiA+ICtpbnQNCj4gPiArcnRlX2JiZGV2X3F1ZXVlX29wc19kdW1wKHVpbnQx Nl90IGRldl9pZCwgdWludDE2X3QgcXVldWVfaW5kZXgsIEZJTEUNCj4gPiArKmZpbGUpOw0KPiA+ ICsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBTdHJpbmcgb2YgcGFyYW1ldGVycyByZWxhdGVk IHRvIHRoZSBwYXJhbWV0ZXJzIG9mIGFuIG9wZXJhdGlvbiBvZiBhIGdpdmVuDQo+IHR5cGUuDQo+ ID4gKyAqDQo+ID4gKyAqICBAcGFyYW0gb3ANCj4gPiArICogICAgUG9pbnRlciB0byBhbiBvcGVy YXRpb24uDQo+ID4gKyAqDQo+ID4gKyAqICBAcGFyYW0gb3BfdHlwZQ0KPiA+ICsgKiAgICBPcGVy YXRpb24gdHlwZSBlbnVtLg0KPiA+ICsgKg0KPiA+ICsgKiBAcmV0dXJucw0KPiA+ICsgKiAgIFN0 cmluZyBkZXNjcmliaW5nIHRoZSBwcm92aWRlZCBvcGVyYXRpb24uDQo+ID4gKyAqDQo+ID4gKyAq Lw0KPiA+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gPiArY2hhciAqDQo+ID4gK3J0ZV9iYmRldl9v cHNfcGFyYW1fc3RyaW5nKHZvaWQgKm9wLCBlbnVtIHJ0ZV9iYmRldl9vcF90eXBlIG9wX3R5cGUp Ow0KPiA+ICsNCj4gPiAgICNpZmRlZiBfX2NwbHVzcGx1cw0KPiA+ICAgfQ0KPiA+ICAgI2VuZGlm DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9iYmRldi9ydGVfYmJkZXZfcG1kLmggYi9saWIvYmJkZXYv cnRlX2JiZGV2X3BtZC5oDQo+ID4gaW5kZXggNDQyYjIzOTQzZC4uYzIxYTdmMGMxZSAxMDA2NDQN Cj4gPiAtLS0gYS9saWIvYmJkZXYvcnRlX2JiZGV2X3BtZC5oDQo+ID4gKysrIGIvbGliL2JiZGV2 L3J0ZV9iYmRldl9wbWQuaA0KPiA+IEBAIC0xMzMsNiArMTMzLDEzIEBAIHR5cGVkZWYgaW50DQo+ ICgqcnRlX2JiZGV2X3F1ZXVlX2ludHJfZW5hYmxlX3QpKHN0cnVjdCBydGVfYmJkZXYgKmRldiwN Cj4gPiAgIHR5cGVkZWYgaW50ICgqcnRlX2JiZGV2X3F1ZXVlX2ludHJfZGlzYWJsZV90KShzdHJ1 Y3QgcnRlX2JiZGV2ICpkZXYsDQo+ID4gICAJCQkJICAgIHVpbnQxNl90IHF1ZXVlX2lkKTsNCj4g Pg0KPiA+ICsvKg0KPiA+ICsgKiBAaW50ZXJuYWwNCj4gPiArICogRnVuY3Rpb24gdG8gZHVtcCBw cmV2aW91cyBvcGVyYXRpb25zIG9uIGEgcXVldWUgb2YgYSBkZXZpY2UuDQo+ID4gKyAqLw0KPiA+ ICt0eXBlZGVmIGludCAoKnJ0ZV9iYmRldl9xdWV1ZV9vcHNfZHVtcF90KShzdHJ1Y3QgcnRlX2Ji ZGV2ICpkZXYsDQo+ID4gKwkJdWludDE2X3QgcXVldWVfaWQsIEZJTEUgKmZpbGUpOw0KPiA+ICsN Cj4gPiAgIC8qKg0KPiA+ICAgICogT3BlcmF0aW9ucyBpbXBsZW1lbnRlZCBieSBkcml2ZXJzLiBG aWVsZHMgbWFya2VkIGFzICJSZXF1aXJlZCIgbXVzdCBiZQ0KPiA+ICAgICogcHJvdmlkZWQgYnkg YSBkcml2ZXIgZm9yIGEgZGV2aWNlIHRvIGhhdmUgYmFzaWMgZnVuY3Rpb25hbGl0eS4gIk9wdGlv bmFsIg0KPiA+IEBAIC0xNzAsNiArMTc3LDggQEAgc3RydWN0IHJ0ZV9iYmRldl9vcHMgew0KPiA+ ICAgCXJ0ZV9iYmRldl9xdWV1ZV9pbnRyX2VuYWJsZV90IHF1ZXVlX2ludHJfZW5hYmxlOw0KPiA+ ICAgCS8qKiBEaXNhYmxlIHF1ZXVlIGludGVycnVwdC4gT3B0aW9uYWwgKi8NCj4gPiAgIAlydGVf YmJkZXZfcXVldWVfaW50cl9kaXNhYmxlX3QgcXVldWVfaW50cl9kaXNhYmxlOw0KPiA+ICsJLyoq IER1bXAgb3BlcmF0aW9ucyBvbiB0aGUgcXVldWUuIE9wdGlvbmFsICovDQo+ID4gKwlydGVfYmJk ZXZfcXVldWVfb3BzX2R1bXBfdCBxdWV1ZV9vcHNfZHVtcDsNCj4gPiAgIH07DQo+ID4NCj4gPiAg IC8qKg0KPiA+IGRpZmYgLS1naXQgYS9saWIvYmJkZXYvdmVyc2lvbi5tYXAgYi9saWIvYmJkZXYv dmVyc2lvbi5tYXAgaW5kZXgNCj4gPiBlMGQ4MmZmNzUyLi5kYjZkZmRmM2M2IDEwMDY0NA0KPiA+ IC0tLSBhL2xpYi9iYmRldi92ZXJzaW9uLm1hcA0KPiA+ICsrKyBiL2xpYi9iYmRldi92ZXJzaW9u Lm1hcA0KPiA+IEBAIC01NCw0ICs1NCw4IEBAIEVYUEVSSU1FTlRBTCB7DQo+ID4gICAJcnRlX2Ji ZGV2X2VucXVldWVfbWxkdHNfb3BzOw0KPiA+ICAgCXJ0ZV9iYmRldl9tbGR0c19vcF9hbGxvY19i dWxrOw0KPiA+ICAgCXJ0ZV9iYmRldl9tbGR0c19vcF9mcmVlX2J1bGs7DQo+ID4gKw0KPiA+ICsJ IyBhZGRlZCBpbiAyNC4xMQ0KPiA+ICsJcnRlX2JiZGV2X3F1ZXVlX29wc19kdW1wOw0KPiA+ICsJ cnRlX2JiZGV2X29wc19wYXJhbV9zdHJpbmc7DQo+ID4gICB9Ow0KDQo=