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 C2DE4459B6; Tue, 17 Sep 2024 20:25:27 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7AF9340E28; Tue, 17 Sep 2024 20:25:27 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id CD88F40280 for ; Tue, 17 Sep 2024 20:25:25 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 48HH8nU6017797 for ; Tue, 17 Sep 2024 11:25:24 -0700 Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 41qdwg8am8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 17 Sep 2024 11:25:24 -0700 (PDT) Received: from m0045849.ppops.net (m0045849.ppops.net [127.0.0.1]) by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 48HIPOCV021611; Tue, 17 Sep 2024 11:25:24 -0700 Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2047.outbound.protection.outlook.com [104.47.55.47]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 41qdwg8am5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 17 Sep 2024 11:25:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GCEkJywOKi5IrG2YW4TgdkmDm/RLytP1ZukW7TCjdge0Lq/XM4N+KQgTa61OcjAjWAbUCbyjpgYUXE5zv9DLc6sn5jUgsLh4ZLKC6J46ZoLTxguG5PFUSFujaGt4lxXSPnvG7nmdGzMYXM1Cr837UnKFAzFj2YCsiEfUvZUy/fjBJngrqrELhHfE0a8hOOBc+YLzuAqa7sy2wg0pUlguJVNtOgHoHknaJV+3NUz0tmlXUYMSUbE6hDuXQm3eKjUMQuycZBbyA2KvsQJE6qCPEJkPib2sWvJgfJrk7afTUM9KYHgQ1ctzcvG7h4i7tiRM1Nz1hhoywbCkOaMDuyPAVg== 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=B6RgRpuaIF30zdIiGhSvBmD07nIW+HBmIk9v6i6VuvE=; b=KPL2iszrjwoFk4NWRCjbG2xEgkRVmQ2RMDJOx2lV5/YXd8g3Q2h2h1yLx/OfUcjw7cxU4e7Qciaf/kTf/mpVHmF0FzVl+bF0yLAf6svuAXO2us7nX0SdlHVgQb0BtrAJ0K+5q4/CjrZM5baoaUYn5sMpgH0Jx8rvVV373k5ZjmbohBCxPRzFd/6GFoLVBryXRHLW5ViZ+RDMG5AfwwNYi1AWr296kDuPPVPogsTZpA/vsP28698qvbD5QQxhvdlMjRbt4zRUVuXZS6L8/rvKm4dkLPN2CaCWJBbBWc2APNi5zFJgTJjWTQ4L+tBX3wM/jnTGEjtRt6QscNxrbqfruA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=B6RgRpuaIF30zdIiGhSvBmD07nIW+HBmIk9v6i6VuvE=; b=qIoQRCITiwaTSvJrB7ckJq7XCfbKrjXnipWIyYC5xxFjvOZFwD5oFdyFMSYe104+AUPMCL2h4wHfJ1Okbo0ad7fcQXF+RkOSTpT5yIE3jjGu1NByxZCwN05pr1EJFnSfQk66mWgJ/JqQTQ+F88PaDAxoPmioXu8o+jqY9hlfCy0= Received: from CO6PR18MB4484.namprd18.prod.outlook.com (2603:10b6:5:359::9) by CO6PR18MB4019.namprd18.prod.outlook.com (2603:10b6:5:34c::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7962.24; Tue, 17 Sep 2024 18:25:21 +0000 Received: from CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::3c98:dd36:4897:a51d]) by CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::3c98:dd36:4897:a51d%5]) with mapi id 15.20.7962.022; Tue, 17 Sep 2024 18:25:21 +0000 From: Akhil Goyal To: Hanxiao Li , "dev@dpdk.org" CC: "wang.yong19@zte.com.cn" Subject: RE: [EXTERNAL] [PATCH v6 6/8] zsda: add zsda crypto-pmd Thread-Topic: [EXTERNAL] [PATCH v6 6/8] zsda: add zsda crypto-pmd Thread-Index: AQHbBCAB/q4P3EH+mUiYcZB2sUZRerJcVT+Q Date: Tue, 17 Sep 2024 18:25:21 +0000 Message-ID: References: <20240911075200.4074366-1-li.hanxiao@zte.com.cn> <20240911075447.4074486-1-li.hanxiao@zte.com.cn> <20240911075447.4074486-5-li.hanxiao@zte.com.cn> In-Reply-To: <20240911075447.4074486-5-li.hanxiao@zte.com.cn> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO6PR18MB4484:EE_|CO6PR18MB4019:EE_ x-ms-office365-filtering-correlation-id: 0d168e09-6ee1-4fc9-7e0b-08dcd7461736 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|1800799024|366016|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?eDBZK29FR0Z0K3kxOXVUclhSajhnSG16WEE5dFhycFd5RUlsS04zZkN2c0d2?= =?utf-8?B?SEJFTGRXb2tsTktMTkZCdnBnRXhBU01SQzExZG8wZHlpWldJaHRXWnRla21p?= =?utf-8?B?bUdnTE51bk9VazFYQUpCeWUwbGdWVGZBeWxGOVJiZWxZaHhBNUVBRXU1Mkl4?= =?utf-8?B?RWhtT2VCYWdGR3RZVXM5Qys1aWtKcXdvMjVqUUhEL3V3QzRoSVEySHI0V2Ix?= =?utf-8?B?SXRQcVFaWWxDREtOZXR0YXNZRStlbnMrQVRLQ3VveWhlbjk2MUJmUmE1Skxp?= =?utf-8?B?amZsajJLMDdMQ2Z2b3hCOG4xWEVnMkFnZkJ0NXhkb3BzQ3ZnVXZRSnVQMDI5?= =?utf-8?B?d0NPYVExUUcxNGlHbGk2U05PU3JqdFRuc0FpdFl0d3hNWEFZNm9DRUs5akR0?= =?utf-8?B?ZVlTK0xFUjFSKzQ3N1p2TzMwSUlVU2FzTEk5aVd4RWxqMmxGeGtna3lVaXNk?= =?utf-8?B?bi9pWHNLUVpnUTlrV3JwT0lGOTZnOCtxeTcxdWNDbjl5Q1UvVTNMRjVRRVIw?= =?utf-8?B?dFVYRktBaGNtL2NsYmtualFZekZibnE3SFdoMmdFWmJjcVJ5TGhUUmpxVS84?= =?utf-8?B?OWYyUFFrdzZodEVQOFdQbVlPdFB3cUwzc1pFVkxacUNGK2E2ZnZheHg0cHNY?= =?utf-8?B?UldtT3ljb3QwK2NtOWNYL0grWjl2czN4RlZwd2RmQlRaK3RUUnNKdUdoT0hx?= =?utf-8?B?Q1hLNkZIQTUyWmdTa2dnMWFNRjBwZTVuZjNCZXpQdU5ZSG1iUmpVU3ZuS1B1?= =?utf-8?B?Z0RocDRlT1dFUVozTzlWeFBHV0pRQldXSHZrYkRidTRiMFQ2S0hUNjg4YlFz?= =?utf-8?B?b25CSCtUQjhmbGhUZ0pjZjI1M2VHWTJTYzNZOEczOUpmOFpTVEhHWEJtWUxI?= =?utf-8?B?d1ViV3hmbVptU1FwajdsQ05hQWZwYlpaSmxHbkhOR2doTWhDdXhLc0ZndUwv?= =?utf-8?B?RzZLRkE5V2NWYzZmNmZ2eVBCQmNFQkZRTEdTMWtVU0NoaDVXODl0azRleTEv?= =?utf-8?B?cGFybzFmQXlBNmErWTd2MGJKM0tUQ2g3b3Y3MkVUSGxwWDVnOEJjbkU0Szgy?= =?utf-8?B?ZzN5eUJCbFkyZ0ZTRE9uR0Z4dStaaGxCYzBSSndlNjBGTG5GVkRFblpwN01a?= =?utf-8?B?S3g0QWVjVnlNdk1udDVjaFdGMzlXT0dYN1ZDcXRWV0NKR2VuQVZvbVRkQ1FW?= =?utf-8?B?Nmk5Rm42b1MzVCtSM2xnYjhpd2w3RGl4c2pKMTI5SXdzNDNPc2ppUCtreG9u?= =?utf-8?B?bnVoWXk5QnVZakdEOVd4dXdmb1lJbzZURmhScG9mcHpvWEF3WUZZTWg5WGx1?= =?utf-8?B?WHh6d1RMbktVVmxNWEM3ZXFwYWNoU1dYaForTDFocUdRVEN6Tms3bEFVc2hE?= =?utf-8?B?cWFERFBWYWEwNndXQ002d2puczJ3Zll1bnU0M1VNNHJoU0o1ZTd4cmg0c3d0?= =?utf-8?B?eFlaVm5TUnRPWGlueTYzeFJ6aXpLT0NBaVFZdmVtSUluQ3NQd290UnZLK3oz?= =?utf-8?B?MzZCdFBJVmd2OG55ZDRweEZHb3c1aHNzTjZMNEYrZlVLQk1BRS9YZVdlRWZy?= =?utf-8?B?RVFNNGpIVXFZMmNyRURVMUNYemQ5cWFwSG9KcE1XSHBvc1V0SjVEODAvcmhl?= =?utf-8?B?YkFqbGtOL2hOOVhYS0VnWTFGOUNBY0xSTDB1bW5qV1FySDk2OGpxZWZyRWs1?= =?utf-8?B?ZUZraVI1TzFjT1ovdFdjalFkcURCUVJzcWpVOEpqRnVQb2NVS2k1d2Vjd05S?= =?utf-8?B?b2FrOEFUWDJZcCtqVE8yTTFXWHh5TW9wUkFMaHBqMStudDRZVmYrdS9qRSs5?= =?utf-8?B?UFV5UVMxUmEyZUp6UDVJZFhxWnNSUFdKSnhMam1oekJKUndaUVJwbU9qRjJX?= =?utf-8?B?Qi91bEo5SndFRFZQRnpyV21yYmszc2tCU2lpRVFsOUljVWc9PQ==?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO6PR18MB4484.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(366016)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Q3k3Q0xsNWRYY09TZUF1Q0d2TWdLSnVDQ1pONHpBRTJKMWNXcFNWN2hVY1dV?= =?utf-8?B?NjRuUk0vQ1YwMkczeU9lT1JMZkFwN1YwS0hjTVIyYTRocjVIaEJDT3l5Y3ZS?= =?utf-8?B?aVpabjNjUjIwOHlnT2RaZjJvN0FjU3AvVUovOHlqcjhZdDRVSCthOWtaeFVW?= =?utf-8?B?b2VkT3J1ck80cytzZ2Z5Z1JOT3p0Zy9QVnRMZFBDYm9DTjN6NFpiRHExTkZF?= =?utf-8?B?S0RmSnliNGZ6aEF2TVlrbUsxaG13VHpDc0plWGJ4dk11bjQ1MEFxbVhJbGNB?= =?utf-8?B?V0phTjJac2dNOEZudkZqaUYwaFBPcU5sYXdNc2hFSHB6OFlKblZaNDU1WHhL?= =?utf-8?B?QzNSNUNYRDVsNlhPclRuT1FpZ214TU1QU3VTdDhmUkVKbUVqYldKN0dJYU1F?= =?utf-8?B?T1J6b25TUTUraFZxRE5JVTZQUFVYRXNCRXgvOWthS3daaHhNVm9vQ1R6bWJH?= =?utf-8?B?Y2kzWTlnelZxZ3l2ZE9NUDFJeTlPQ3h1eDNiQXhSTW5Wb2pzN2p3MEtwSEZS?= =?utf-8?B?T2JNQkV5MnVDNXJJTjBobkRsVEdDZFkrdzkxQjlXOGVVUTN0YlVPZ3ZiVThi?= =?utf-8?B?bG5SZWhLeWo4WjVoRlRWalFTcGhDNnl0ZHpjWmFMTnZ0SUhVeU9UZ2x2ZUlz?= =?utf-8?B?WlBnV0pCUmlKb2QxODAva3RBRzUvVnFiMmlBYVJhbE1USGtweVFCUkFFZmNY?= =?utf-8?B?aGxIcHNxM3Q4ZkQvM0Qzd2JZT2M1VDlQaTN0bk41U2xlUWlrTWk2dW4ydjNC?= =?utf-8?B?UU55U3E3V0dmL2llWDc4Wmw3S1lqZ3BKRTM0RTFFVkYxYzNuWHFPWm1TdldS?= =?utf-8?B?Yy90eXZSMTJDTGRaa0ZLdERFcGptcWJmdVM1SWxPdThrTkxlT2NCOWtmcEJO?= =?utf-8?B?bmx2Unc1RXJNN1IwMllaaUNZcGFwUUhMMzhWQ1RoOC9WM3AvMW9OeGNZdS9i?= =?utf-8?B?RG1RZHVGUXF5UDlTRzVBbWVXMllQbVZ1eFRjSnBqNkk4QVhmWjVhbytnUlVC?= =?utf-8?B?YW1jRmhCdDVGWjJBYUlGcWtyNXBuZW5SM2lZRTZwcE5SMzhzZTd3SG1wRm5n?= =?utf-8?B?RUtkZjhsbVBDRlhnczBXN3MrdXpYSlc5alh0cFd2Nk1kUVozb3FCajhwVUVR?= =?utf-8?B?bWhMWmhka1dDbGhaNFB1b0p1OCtRdVlJRmpzQzVFS08vOCs3YUtTWXFaZDcv?= =?utf-8?B?KzRIelI3dmN1ckdJTTduc2wxL1k4YWI5aTRGSnQyMXhCWmRmTzdxcUdCTDdw?= =?utf-8?B?RWhtMTdYSHNsRjVLYmIyekVxQnkvdjI0emFJRXZDL0E5Q0kxbHdBYzdGRjlV?= =?utf-8?B?Z0hRbGRCZ0RJb0x5Kzdya0hORVBaOSsrOUdiaURNZUMwRkNTckp4QitCNE52?= =?utf-8?B?ZWc4bHNqbnJoM0RUWi9nZXFJTTJyckJFM1plcTYrNUQ0MVVoQmZZOXJNT0Rr?= =?utf-8?B?M2hLWC95MUVkQ21RTWJZSmk0R095QVV4QlRySlFQOVBENWt5czlmL1A3VFdG?= =?utf-8?B?WS9EeVNZa2xEVnZ2RWYwVFNwUllsQ2VYYkRBZnlIeEtRbVl5ZVBhWncwTzFZ?= =?utf-8?B?WkZCVDd3dlNtdGFsMmk3RUc2RE5rWllUWks3QkhjeUNrZHY1QmMveVhaZGNk?= =?utf-8?B?QXNjQU1wZUh4cUNBVVN2b1NLOHBldUpyZTZZZ010RUR1UW9kOFA5OE9DMDNW?= =?utf-8?B?ekJ1VHE3WVRlMXpoK2tHK1poVVNzWWZ1TjVVUC83SjhqOHRkN1ZJTVZvbVBF?= =?utf-8?B?UHh5cXYvNHA5aGR1YVQ2RktidUV3dzZDWFR1QVFtR1QzZWJza2JoZ1ZsNGVT?= =?utf-8?B?MnVNS0Yrb3lDdGEvZGNBalgxOFl1anV6V1dNNk4wWHJLV0ZNYUV2VWtsVjEz?= =?utf-8?B?VDVXZ0xxLy91YmsyU2puTXU5OU1qbUZ2ek5xZ0plNDRtVk9sWGNqZDV4Mjlq?= =?utf-8?B?enJMWC85VVJkajdIL0FseEQrS01UeWQrQlZ3am83OXI1UEVQTFc2TmM3bDFz?= =?utf-8?B?cVQ4WHM5cFlmOGNEd3p5NjN1SnpjbHJ0Z3VmYU5tNTRkZVQxTHNOSStMZ1Ru?= =?utf-8?B?Y082Y1h4M1FJMFVtQ1V6a281TFAwNTJZVXEwdjlqVmltWGxseU9KL2hldGpO?= =?utf-8?Q?ekl0=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO6PR18MB4484.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0d168e09-6ee1-4fc9-7e0b-08dcd7461736 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Sep 2024 18:25:21.6817 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Cmmf9ISduoxzEuJNM5wBbD/6eBj4GpHYNe6XTSYCwuUsjLZRu/2/3RDb6okn7aq31fZotWCoBR4JLL9pOAo6xQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR18MB4019 X-Proofpoint-GUID: 4FMT-Pdi_R8rfZmm6Mx3iWoAWlRYyqtA X-Proofpoint-ORIG-GUID: XYhuuqfPYk2lhS1oB463vlxOHlYqXIrd X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.60.29 definitions=2024-09-06_09,2024-09-06_01,2024-09-02_01 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 PiBBZGQgbmV3IGZpbGUgenNkYV9zeW1fcG1kLmMsIHpzZGFfc3ltX3BtZC5oIGluIGRyaXZlcnMv Y3J5cHRvL3pzZGENCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEhhbnhpYW8gTGkgPGxpLmhhbnhpYW9A enRlLmNvbS5jbj4NCg0KDQpQbGVhc2Ugc3BsaXQgdGhlIHBhdGNoZXMgYXBwcm9wcmlhdGVseSBm b3IgYmV0dGVyIHJldmlldy4NClBsZWFzZSBmb2xsb3cNCmh0dHBzOi8vcGF0Y2hlcy5kcGRrLm9y Zy9wcm9qZWN0L2RwZGsvcGF0Y2gvMjAyNDA5MTYxNjI4NTYuMTE1NjYtMS1zdGVwaGVuQG5ldHdv cmtwbHVtYmVyLm9yZy8NCj4gLS0tDQo+ICBkcml2ZXJzL2NyeXB0by96c2RhL3pzZGFfc3ltX2Nh cGFiaWxpdGllcy5oIHwgMTEyICsrKysrDQo+ICBkcml2ZXJzL2NyeXB0by96c2RhL3pzZGFfc3lt X3BtZC5jICAgICAgICAgIHwgNDI5ICsrKysrKysrKysrKysrKysrKysrDQo+ICBkcml2ZXJzL2Ny eXB0by96c2RhL3pzZGFfc3ltX3BtZC5oICAgICAgICAgIHwgIDM1ICsrDQo+ICAzIGZpbGVzIGNo YW5nZWQsIDU3NiBpbnNlcnRpb25zKCspDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9j cnlwdG8venNkYS96c2RhX3N5bV9jYXBhYmlsaXRpZXMuaA0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvY3J5cHRvL3pzZGEvenNkYV9zeW1fcG1kLmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2NyeXB0by96c2RhL3pzZGFfc3ltX3BtZC5oDQo+IA0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9jcnlwdG8venNkYS96c2RhX3N5bV9jYXBhYmlsaXRpZXMuaA0KPiBiL2RyaXZlcnMv Y3J5cHRvL3pzZGEvenNkYV9zeW1fY2FwYWJpbGl0aWVzLmgNCj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uZGQzODdiMzZhZA0KPiAtLS0gL2Rldi9udWxsDQo+ICsr KyBiL2RyaXZlcnMvY3J5cHRvL3pzZGEvenNkYV9zeW1fY2FwYWJpbGl0aWVzLmgNCj4gQEAgLTAs MCArMSwxMTIgQEANCj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UN Cj4gKyAqIENvcHlyaWdodChjKSAyMDI0IFpURSBDb3Jwb3JhdGlvbg0KPiArICovDQo+ICsNCj4g KyNpZm5kZWYgX1pTREFfU1lNX0NBUEFCSUxJVElFU19IXw0KPiArI2RlZmluZSBfWlNEQV9TWU1f Q0FQQUJJTElUSUVTX0hfDQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX2NyeXB0b2Rl dl9jYXBhYmlsaXRpZXMgenNkYV9jcnlwdG9fc3ltX2NhcGFiaWxpdGllc1tdID0gew0KPiArICAg IHsvKiBTSEExICovDQo+ICsgICAgICAgIC5vcCA9IFJURV9DUllQVE9fT1BfVFlQRV9TWU1NRVRS SUMsDQo+ICsgICAgICAgIHsgLnN5bSA9IHsueGZvcm1fdHlwZSA9IFJURV9DUllQVE9fU1lNX1hG T1JNX0FVVEgsDQo+ICsgICAgICAgICAgICB7IC5hdXRoID0gew0KPiArICAgICAgICAgICAgICAg IC5hbGdvID0gUlRFX0NSWVBUT19BVVRIX1NIQTEsDQo+ICsgICAgICAgICAgICAgICAgLmJsb2Nr X3NpemUgPSA2NCwNCj4gKyAgICAgICAgICAgICAgICAua2V5X3NpemUgPSB7Lm1pbiA9IDAsIC5t YXggPSAwLCAuaW5jcmVtZW50ID0gMH0sDQo+ICsgICAgICAgICAgICAgICAgLmRpZ2VzdF9zaXpl ID0gey5taW4gPSAyMCwgLm1heCA9IDIwLCAuaW5jcmVtZW50ID0gMn0sDQo+ICsgICAgICAgICAg ICAgICAgLml2X3NpemUgPSB7MH0gfSwNCj4gKyAgICAgICAgICAgIH0gICAgfSwNCj4gKyAgICAg ICAgfQ0KPiArICAgIH0sDQo+ICsgICAgey8qIFNIQTIyNCAqLw0KPiArICAgICAgICAub3AgPSBS VEVfQ1JZUFRPX09QX1RZUEVfU1lNTUVUUklDLA0KPiArICAgICAgICB7IC5zeW0gPSB7DQo+ICsg ICAgICAgICAgICAueGZvcm1fdHlwZSA9IFJURV9DUllQVE9fU1lNX1hGT1JNX0FVVEgsDQo+ICsg ICAgICAgICAgICB7IC5hdXRoID0gew0KPiArICAgICAgICAgICAgICAgIC5hbGdvID0gUlRFX0NS WVBUT19BVVRIX1NIQTIyNCwNCj4gKyAgICAgICAgICAgICAgICAuYmxvY2tfc2l6ZSA9IDY0LA0K PiArICAgICAgICAgICAgICAgIC5rZXlfc2l6ZSA9IHsubWluID0gMCwgLm1heCA9IDAsIC5pbmNy ZW1lbnQgPSAwfSwNCj4gKyAgICAgICAgICAgICAgICAuZGlnZXN0X3NpemUgPSB7Lm1pbiA9IDI4 LCAubWF4ID0gMjgsIC5pbmNyZW1lbnQgPSAwfSwNCj4gKyAgICAgICAgICAgICAgICAuaXZfc2l6 ZSA9IHswfSB9LA0KPiArICAgICAgICAgICAgfSAgICB9LA0KPiArICAgICAgICB9DQo+ICsgICAg fSwNCj4gKyAgICB7LyogU0hBMjU2ICovDQo+ICsgICAgICAgIC5vcCA9IFJURV9DUllQVE9fT1Bf VFlQRV9TWU1NRVRSSUMsDQo+ICsgICAgICAgIHsgLnN5bSA9IHsNCj4gKyAgICAgICAgICAgIC54 Zm9ybV90eXBlID0gUlRFX0NSWVBUT19TWU1fWEZPUk1fQVVUSCwNCj4gKyAgICAgICAgICAgIHsg LmF1dGggPSB7DQo+ICsgICAgICAgICAgICAgICAgLmFsZ28gPSBSVEVfQ1JZUFRPX0FVVEhfU0hB MjU2LA0KPiArICAgICAgICAgICAgICAgIC5ibG9ja19zaXplID0gNjQsDQo+ICsgICAgICAgICAg ICAgICAgLmtleV9zaXplID0gey5taW4gPSAwLCAubWF4ID0gMCwgLmluY3JlbWVudCA9IDB9LA0K PiArICAgICAgICAgICAgICAgIC5kaWdlc3Rfc2l6ZSA9IHsubWluID0gMzIsIC5tYXggPSAzMiwg LmluY3JlbWVudCA9IDB9LA0KPiArICAgICAgICAgICAgICAgIC5pdl9zaXplID0gezB9IH0sDQo+ ICsgICAgICAgICAgICB9IH0sDQo+ICsgICAgICAgIH0NCj4gKyAgICB9LA0KPiArICAgIHsvKiBT SEEzODQgKi8NCj4gKyAgICAgICAgLm9wID0gUlRFX0NSWVBUT19PUF9UWVBFX1NZTU1FVFJJQywN Cj4gKyAgICAgICAgeyAuc3ltID0gew0KPiArICAgICAgICAgICAgLnhmb3JtX3R5cGUgPSBSVEVf Q1JZUFRPX1NZTV9YRk9STV9BVVRILA0KPiArICAgICAgICAgICAgeyAuYXV0aCA9IHsNCj4gKyAg ICAgICAgICAgICAgICAuYWxnbyA9IFJURV9DUllQVE9fQVVUSF9TSEEzODQsDQo+ICsgICAgICAg ICAgICAgICAgLmJsb2NrX3NpemUgPSAxMjgsDQo+ICsgICAgICAgICAgICAgICAgLmtleV9zaXpl ID0gey5taW4gPSAwLCAubWF4ID0gMCwgLmluY3JlbWVudCA9IDB9LA0KPiArICAgICAgICAgICAg ICAgIC5kaWdlc3Rfc2l6ZSA9IHsubWluID0gNDgsIC5tYXggPSA0OCwgLmluY3JlbWVudCA9IDB9 LA0KPiArICAgICAgICAgICAgICAgIC5pdl9zaXplID0gezB9IH0sDQo+ICsgICAgICAgICAgICB9 IH0sDQo+ICsgICAgICAgIH0NCj4gKyAgICB9LA0KPiArICAgIHsvKiBTSEE1MTIgKi8NCj4gKyAg ICAgICAgLm9wID0gUlRFX0NSWVBUT19PUF9UWVBFX1NZTU1FVFJJQywNCj4gKyAgICAgICAgeyAu c3ltID0gew0KPiArICAgICAgICAgICAgLnhmb3JtX3R5cGUgPSBSVEVfQ1JZUFRPX1NZTV9YRk9S TV9BVVRILA0KPiArICAgICAgICAgICAgeyAuYXV0aCA9IHsNCj4gKyAgICAgICAgICAgICAgICAu YWxnbyA9IFJURV9DUllQVE9fQVVUSF9TSEE1MTIsDQo+ICsgICAgICAgICAgICAgICAgLmJsb2Nr X3NpemUgPSAxMjgsDQo+ICsgICAgICAgICAgICAgICAgLmtleV9zaXplID0gey5taW4gPSAwLCAu bWF4ID0gMCwgLmluY3JlbWVudCA9IDB9LA0KPiArICAgICAgICAgICAgICAgIC5kaWdlc3Rfc2l6 ZSA9IHsubWluID0gNjQsIC5tYXggPSA2NCwgLmluY3JlbWVudCA9IDB9LA0KPiArICAgICAgICAg ICAgICAgIC5pdl9zaXplID0gezB9IH0sDQo+ICsgICAgICAgICAgICB9IH0sDQo+ICsgICAgICAg IH0NCj4gKyAgICB9LA0KPiArICAgIHsvKiBTTTMgKi8NCj4gKyAgICAgICAgLm9wID0gUlRFX0NS WVBUT19PUF9UWVBFX1NZTU1FVFJJQywNCj4gKyAgICAgICAgeyAuc3ltID0gew0KPiArICAgICAg ICAgICAgLnhmb3JtX3R5cGUgPSBSVEVfQ1JZUFRPX1NZTV9YRk9STV9BVVRILA0KPiArICAgICAg ICAgICAgeyAuYXV0aCA9IHsNCj4gKyAgICAgICAgICAgICAgICAuYWxnbyA9IFJURV9DUllQVE9f QVVUSF9TTTMsDQo+ICsgICAgICAgICAgICAgICAgLmJsb2NrX3NpemUgPSA2NCwNCj4gKyAgICAg ICAgICAgICAgICAua2V5X3NpemUgPSB7Lm1pbiA9IDAsIC5tYXggPSAwLCAuaW5jcmVtZW50ID0g MH0sDQo+ICsgICAgICAgICAgICAgICAgLmRpZ2VzdF9zaXplID0gey5taW4gPSAzMiwgLm1heCA9 IDMyLCAuaW5jcmVtZW50ID0gMH0sDQo+ICsgICAgICAgICAgICAgICAgLml2X3NpemUgPSB7MH0g fSwNCj4gKyAgICAgICAgICAgIH0gfSwNCj4gKyAgICAgICAgfQ0KPiArICAgIH0sDQo+ICsgICAg ey8qIEFFUyBYVFMgKi8NCj4gKyAgICAgICAgLm9wID0gUlRFX0NSWVBUT19PUF9UWVBFX1NZTU1F VFJJQywNCj4gKyAgICAgICAgeyAuc3ltID0gew0KPiArICAgICAgICAgICAgLnhmb3JtX3R5cGUg PSBSVEVfQ1JZUFRPX1NZTV9YRk9STV9DSVBIRVIsDQo+ICsgICAgICAgICAgICB7IC5jaXBoZXIg PSB7DQo+ICsgICAgICAgICAgICAgICAgLmFsZ28gPSBSVEVfQ1JZUFRPX0NJUEhFUl9BRVNfWFRT LA0KPiArICAgICAgICAgICAgICAgIC5ibG9ja19zaXplID0gMTYsDQo+ICsgICAgICAgICAgICAg ICAgLmtleV9zaXplID0gey5taW4gPSAxNiwgLm1heCA9IDMyLCAuaW5jcmVtZW50ID0gMTZ9LA0K PiArICAgICAgICAgICAgICAgIC5pdl9zaXplID0gey5taW4gPSAxNiwgLm1heCA9IDE2LCAuaW5j cmVtZW50ID0gMH0gfSwNCj4gKyAgICAgICAgICAgIH0gfSwNCj4gKyAgICAgICAgfQ0KPiArICAg IH0sDQo+ICsgICAgey8qIFNNNCBYVFMgKi8NCj4gKyAgICAgICAgLm9wID0gUlRFX0NSWVBUT19P UF9UWVBFX1NZTU1FVFJJQywNCj4gKyAgICAgICAgeyAuc3ltID0gew0KPiArICAgICAgICAgICAg Lnhmb3JtX3R5cGUgPSBSVEVfQ1JZUFRPX1NZTV9YRk9STV9DSVBIRVIsDQo+ICsgICAgICAgICAg ICB7IC5jaXBoZXIgPSB7DQo+ICsgICAgICAgICAgICAgICAgLmFsZ28gPSBSVEVfQ1JZUFRPX0NJ UEhFUl9TTTRfWFRTLA0KPiArICAgICAgICAgICAgICAgIC5ibG9ja19zaXplID0gMTYsDQo+ICsg ICAgICAgICAgICAgICAgLmtleV9zaXplID0gey5taW4gPSAzMiwgLm1heCA9IDMyLCAuaW5jcmVt ZW50ID0gMH0sDQo+ICsgICAgICAgICAgICAgICAgLml2X3NpemUgPSB7Lm1pbiA9IDE2LCAubWF4 ID0gMTYsIC5pbmNyZW1lbnQgPSAwfSB9LA0KPiArICAgICAgICAgICAgfSB9LA0KPiArICAgICAg ICB9DQo+ICsgICAgfQ0KPiArfTsNCj4gKyNlbmRpZiAvKiBfWlNEQV9TWU1fQ0FQQUJJTElUSUVT X0hfICovDQo+ICsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3pzZGEvenNkYV9zeW1f cG1kLmMNCj4gYi9kcml2ZXJzL2NyeXB0by96c2RhL3pzZGFfc3ltX3BtZC5jDQo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLmFjNWE2M2I5NmUNCj4gLS0tIC9kZXYv bnVsbA0KPiArKysgYi9kcml2ZXJzL2NyeXB0by96c2RhL3pzZGFfc3ltX3BtZC5jDQo+IEBAIC0w LDAgKzEsNDI5IEBADQo+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNl DQo+ICsgKiBDb3B5cmlnaHQoYykgMjAyNCBaVEUgQ29ycG9yYXRpb24NCj4gKyAqLw0KPiArDQo+ ICsjaW5jbHVkZSA8cnRlX2NyeXB0b2Rldi5oPg0KPiArDQo+ICsjaW5jbHVkZSAiY3J5cHRvZGV2 X3BtZC5oIg0KPiArI2luY2x1ZGUgInpzZGFfbG9ncy5oIg0KPiArI2luY2x1ZGUgInpzZGFfc3lt LmgiDQo+ICsjaW5jbHVkZSAienNkYV9zeW1fcG1kLmgiDQo+ICsjaW5jbHVkZSAienNkYV9zeW1f c2Vzc2lvbi5oIg0KPiArI2luY2x1ZGUgInpzZGFfc3ltX2NhcGFiaWxpdGllcy5oIg0KPiArDQo+ ICt1aW50OF90IHpzZGFfc3ltX2RyaXZlcl9pZDsNCj4gKw0KPiArc3RhdGljIGludA0KPiArenNk YV9zeW1fZGV2X2NvbmZpZyhfX3J0ZV91bnVzZWQgc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRldiwN Cj4gKyAgICAgICAgICAgIF9fcnRlX3VudXNlZCBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9jb25maWcg KmNvbmZpZykNCj4gK3sNCj4gKyAgICByZXR1cm4gWlNEQV9TVUNDRVNTOw0KPiArfQ0KPiArDQo+ ICtzdGF0aWMgaW50IHpzZGFfc3ltX3FwX3JlbGVhc2Uoc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRl diwNCj4gKyAgICAgICAgICAgICAgICB1aW50MTZfdCBxdWV1ZV9wYWlyX2lkKTsNCj4gKw0KPiAr c3RhdGljIGludA0KPiArenNkYV9zeW1fZGV2X3N0YXJ0KHN0cnVjdCBydGVfY3J5cHRvZGV2ICpk ZXYpDQo+ICt7DQo+ICsgICAgc3RydWN0IHpzZGFfc3ltX2Rldl9wcml2YXRlICpzeW1fZGV2ID0g ZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gKyAgICBpbnQgcmV0ID0gMDsNCj4gKw0KPiArICAg IHJldCA9IHpzZGFfcXVldWVfc3RhcnQoc3ltX2Rldi0+enNkYV9wY2lfZGV2LT5wY2lfZGV2KTsN Cj4gKw0KPiArICAgIGlmIChyZXQpDQo+ICsgICAgICAgIFpTREFfTE9HKEVSUiwgRV9TVEFSVF9R KTsNCj4gKyAgICByZXR1cm4gcmV0Ow0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZA0KPiArenNk YV9zeW1fZGV2X3N0b3Aoc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRldikNCj4gK3sNCj4gKyAgICBz dHJ1Y3QgenNkYV9zeW1fZGV2X3ByaXZhdGUgKnN5bV9kZXYgPSBkZXYtPmRhdGEtPmRldl9wcml2 YXRlOw0KPiArDQo+ICsgICAgenNkYV9xdWV1ZV9zdG9wKHN5bV9kZXYtPnpzZGFfcGNpX2Rldi0+ cGNpX2Rldik7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3pzZGFfc3ltX2Rldl9jbG9z ZShzdHJ1Y3QgcnRlX2NyeXB0b2RldiAqZGV2KQ0KPiArew0KPiArICAgIGludCByZXQgPSAwOw0K PiArICAgIHVpbnQxNl90IGk7DQo+ICsNCj4gKyAgICBmb3IgKGkgPSAwOyBpIDwgZGV2LT5kYXRh LT5uYl9xdWV1ZV9wYWlyczsgaSsrKQ0KPiArICAgICAgICByZXQgfD0genNkYV9zeW1fcXBfcmVs ZWFzZShkZXYsIGkpOw0KPiArDQo+ICsgICAgcmV0dXJuIHJldDsNCj4gK30NCj4gKw0KPiArc3Rh dGljIHZvaWQNCj4gK3pzZGFfc3ltX2Rldl9pbmZvX2dldChzdHJ1Y3QgcnRlX2NyeXB0b2RldiAq ZGV2LA0KPiArICAgICAgICAgICAgICBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9pbmZvICppbmZvKQ0K PiArew0KPiArICAgIHN0cnVjdCB6c2RhX3N5bV9kZXZfcHJpdmF0ZSAqc3ltX3ByaXYgPSBkZXYt PmRhdGEtPmRldl9wcml2YXRlOw0KPiArDQo+ICsgICAgaWYgKGluZm8gIT0gTlVMTCkgew0KPiAr ICAgICAgICBpbmZvLT5tYXhfbmJfcXVldWVfcGFpcnMgPQ0KPiArICAgICAgICAgICAgenNkYV9j cnlwdG9fbWF4X25iX3FwcyhzeW1fcHJpdi0+enNkYV9wY2lfZGV2KTsNCj4gKyAgICAgICAgaW5m by0+ZmVhdHVyZV9mbGFncyA9IGRldi0+ZmVhdHVyZV9mbGFnczsNCj4gKyAgICAgICAgaW5mby0+ Y2FwYWJpbGl0aWVzID0gc3ltX3ByaXYtPnpzZGFfZGV2X2NhcGFiaWxpdGllczsNCj4gKyAgICAg ICAgaW5mby0+ZHJpdmVyX2lkID0genNkYV9zeW1fZHJpdmVyX2lkOw0KPiArICAgICAgICBpbmZv LT5zeW0ubWF4X25iX3Nlc3Npb25zID0gMDsNCj4gKyAgICB9DQo+ICt9DQo+ICsNCj4gK3N0YXRp YyB2b2lkDQo+ICt6c2RhX3N5bV9zdGF0c19nZXQoc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRldiwg c3RydWN0IHJ0ZV9jcnlwdG9kZXZfc3RhdHMNCj4gKnN0YXRzKQ0KPiArew0KPiArICAgIHN0cnVj dCB6c2RhX2NvbW1vbl9zdGF0IGNvbW0gPSB7MH07DQo+ICsNCj4gKyAgICB6c2RhX3N0YXRzX2dl dChkZXYtPmRhdGEtPnF1ZXVlX3BhaXJzLCBkZXYtPmRhdGEtPm5iX3F1ZXVlX3BhaXJzLA0KPiAr ICAgICAgICAgICAgICAgJmNvbW0pOw0KPiArICAgIHN0YXRzLT5lbnF1ZXVlZF9jb3VudCA9IGNv bW0uZW5xdWV1ZWRfY291bnQ7DQo+ICsgICAgc3RhdHMtPmRlcXVldWVkX2NvdW50ID0gY29tbS5k ZXF1ZXVlZF9jb3VudDsNCj4gKyAgICBzdGF0cy0+ZW5xdWV1ZV9lcnJfY291bnQgPSBjb21tLmVu cXVldWVfZXJyX2NvdW50Ow0KPiArICAgIHN0YXRzLT5kZXF1ZXVlX2Vycl9jb3VudCA9IGNvbW0u ZGVxdWV1ZV9lcnJfY291bnQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkDQo+ICt6c2RhX3N5 bV9zdGF0c19yZXNldChzdHJ1Y3QgcnRlX2NyeXB0b2RldiAqZGV2KQ0KPiArew0KPiArICAgIHpz ZGFfc3RhdHNfcmVzZXQoZGV2LT5kYXRhLT5xdWV1ZV9wYWlycywgZGV2LT5kYXRhLT5uYl9xdWV1 ZV9wYWlycyk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3pzZGFfc3ltX3FwX3JlbGVh c2Uoc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRldiwgdWludDE2X3QgcXVldWVfcGFpcl9pZCkNCj4g K3sNCj4gKyAgICBaU0RBX0xPRyhERUJVRywgIlJlbGVhc2Ugc3ltIHFwICV1IG9uIGRldmljZSAl ZCIsIHF1ZXVlX3BhaXJfaWQsDQo+ICsgICAgICAgICBkZXYtPmRhdGEtPmRldl9pZCk7DQo+ICsN Cj4gKyAgICByZXR1cm4genNkYV9xdWV1ZV9wYWlyX3JlbGVhc2UoDQo+ICsgICAgICAgIChzdHJ1 Y3QgenNkYV9xcCAqKikmKGRldi0+ZGF0YS0+cXVldWVfcGFpcnNbcXVldWVfcGFpcl9pZF0pKTsN Cj4gK30NCj4gKw0KPiArc3RhdGljIGludA0KPiArenNkYV9zZXR1cF9lbmNyeXB0b19xdWV1ZShz dHJ1Y3QgenNkYV9wY2lfZGV2aWNlICp6c2RhX3BjaV9kZXYsIHVpbnQxNl90DQo+IHFwX2lkLA0K PiArICAgICAgICAgICAgIHN0cnVjdCB6c2RhX3FwICpxcCwgdWludDMyX3QgbmJfZGVzLCBpbnQg c29ja2V0X2lkKQ0KPiArew0KPiArICAgIGVudW0genNkYV9zZXJ2aWNlX3R5cGUgdHlwZSA9IFpT REFfU0VSVklDRV9TWU1NRVRSSUNfRU5DUllQVDsNCj4gKyAgICBzdHJ1Y3QgenNkYV9xcF9jb25m aWcgY29uZjsNCj4gKyAgICBpbnQgcmV0ID0gMDsNCj4gKyAgICBzdHJ1Y3QgenNkYV9xcF9odyAq cXBfaHc7DQo+ICsNCj4gKyAgICBxcF9odyA9IHpzZGFfcXBzX2h3X3Blcl9zZXJ2aWNlKHpzZGFf cGNpX2RldiwgdHlwZSk7DQo+ICsgICAgY29uZi5odyA9IHFwX2h3LT5kYXRhICsgcXBfaWQ7DQo+ ICsgICAgY29uZi5zZXJ2aWNlX3R5cGUgPSB0eXBlOw0KPiArICAgIGNvbmYuY29va2llX3NpemUg PSBzaXplb2Yoc3RydWN0IHpzZGFfb3BfY29va2llKTsNCj4gKyAgICBjb25mLm5iX2Rlc2NyaXB0 b3JzID0gbmJfZGVzOw0KPiArICAgIGNvbmYuc29ja2V0X2lkID0gc29ja2V0X2lkOw0KPiArICAg IGNvbmYuc2VydmljZV9zdHIgPSAic3ltX2VuY3J5cHQiOw0KPiArDQo+ICsgICAgcmV0ID0genNk YV9jb21tb25fc2V0dXBfcXAoenNkYV9wY2lfZGV2LT56c2RhX2Rldl9pZCwgJnFwLCBxcF9pZCwN Cj4gJmNvbmYpOw0KPiArICAgIHFwLT5zcnZbdHlwZV0ucnhfY2IgPSB6c2RhX2NyeXB0b19jYWxs YmFjazsNCj4gKyAgICBxcC0+c3J2W3R5cGVdLnR4X2NiID0genNkYV9idWlsZF9jaXBoZXJfcmVx dWVzdDsNCj4gKyAgICBxcC0+c3J2W3R5cGVdLm1hdGNoID0genNkYV9lbmNyeV9tYXRjaDsNCj4g Kw0KPiArICAgIHJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3pzZGFf c2V0dXBfZGVjcnlwdG9fcXVldWUoc3RydWN0IHpzZGFfcGNpX2RldmljZSAqenNkYV9wY2lfZGV2 LCB1aW50MTZfdA0KPiBxcF9pZCwNCj4gKyAgICAgICAgICAgICBzdHJ1Y3QgenNkYV9xcCAqcXAs IHVpbnQzMl90IG5iX2RlcywgaW50IHNvY2tldF9pZCkNCj4gK3sNCj4gKyAgICBlbnVtIHpzZGFf c2VydmljZV90eXBlIHR5cGUgPSBaU0RBX1NFUlZJQ0VfU1lNTUVUUklDX0RFQ1JZUFQ7DQo+ICsg ICAgc3RydWN0IHpzZGFfcXBfY29uZmlnIGNvbmY7DQo+ICsgICAgaW50IHJldCA9IDA7DQo+ICsg ICAgc3RydWN0IHpzZGFfcXBfaHcgKnFwX2h3Ow0KPiArDQo+ICsgICAgcXBfaHcgPSB6c2RhX3Fw c19od19wZXJfc2VydmljZSh6c2RhX3BjaV9kZXYsIHR5cGUpOw0KPiArICAgIGNvbmYuaHcgPSBx cF9ody0+ZGF0YSArIHFwX2lkOw0KPiArICAgIGNvbmYuc2VydmljZV90eXBlID0gdHlwZTsNCj4g Kw0KPiArICAgIGNvbmYuY29va2llX3NpemUgPSBzaXplb2Yoc3RydWN0IHpzZGFfb3BfY29va2ll KTsNCj4gKyAgICBjb25mLm5iX2Rlc2NyaXB0b3JzID0gbmJfZGVzOw0KPiArICAgIGNvbmYuc29j a2V0X2lkID0gc29ja2V0X2lkOw0KPiArICAgIGNvbmYuc2VydmljZV9zdHIgPSAic3ltX2RlY3J5 cHQiOw0KPiArDQo+ICsgICAgcmV0ID0genNkYV9jb21tb25fc2V0dXBfcXAoenNkYV9wY2lfZGV2 LT56c2RhX2Rldl9pZCwgJnFwLCBxcF9pZCwNCj4gJmNvbmYpOw0KPiArICAgIHFwLT5zcnZbdHlw ZV0ucnhfY2IgPSB6c2RhX2NyeXB0b19jYWxsYmFjazsNCj4gKyAgICBxcC0+c3J2W3R5cGVdLnR4 X2NiID0genNkYV9idWlsZF9jaXBoZXJfcmVxdWVzdDsNCj4gKyAgICBxcC0+c3J2W3R5cGVdLm1h dGNoID0genNkYV9kZWNyeV9tYXRjaDsNCj4gKw0KPiArICAgIHJldHVybiByZXQ7DQo+ICt9DQo+ ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3pzZGFfc2V0dXBfaGFzaF9xdWV1ZShzdHJ1Y3QgenNkYV9w Y2lfZGV2aWNlICp6c2RhX3BjaV9kZXYsIHVpbnQxNl90IHFwX2lkLA0KPiArICAgICAgICAgc3Ry dWN0IHpzZGFfcXAgKnFwLCB1aW50MzJfdCBuYl9kZXMsIGludCBzb2NrZXRfaWQpDQo+ICt7DQo+ ICsgICAgZW51bSB6c2RhX3NlcnZpY2VfdHlwZSB0eXBlID0gWlNEQV9TRVJWSUNFX0hBU0hfRU5D T0RFOw0KPiArICAgIHN0cnVjdCB6c2RhX3FwX2NvbmZpZyBjb25mOw0KPiArICAgIGludCByZXQg PSAwOw0KPiArICAgIHN0cnVjdCB6c2RhX3FwX2h3ICpxcF9odzsNCj4gKw0KPiArICAgIHFwX2h3 ID0genNkYV9xcHNfaHdfcGVyX3NlcnZpY2UoenNkYV9wY2lfZGV2LCB0eXBlKTsNCj4gKyAgICBj b25mLmh3ID0gcXBfaHctPmRhdGEgKyBxcF9pZDsNCj4gKyAgICBjb25mLnNlcnZpY2VfdHlwZSA9 IHR5cGU7DQo+ICsgICAgY29uZi5jb29raWVfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgenNkYV9vcF9j b29raWUpOw0KPiArICAgIGNvbmYubmJfZGVzY3JpcHRvcnMgPSBuYl9kZXM7DQo+ICsgICAgY29u Zi5zb2NrZXRfaWQgPSBzb2NrZXRfaWQ7DQo+ICsgICAgY29uZi5zZXJ2aWNlX3N0ciA9ICJzeW1f aGFzaCI7DQo+ICsNCj4gKyAgICByZXQgPSB6c2RhX2NvbW1vbl9zZXR1cF9xcCh6c2RhX3BjaV9k ZXYtPnpzZGFfZGV2X2lkLCAmcXAsIHFwX2lkLA0KPiAmY29uZik7DQo+ICsgICAgcXAtPnNydlt0 eXBlXS5yeF9jYiA9IHpzZGFfY3J5cHRvX2NhbGxiYWNrOw0KPiArICAgIHFwLT5zcnZbdHlwZV0u dHhfY2IgPSB6c2RhX2J1aWxkX2hhc2hfcmVxdWVzdDsNCj4gKyAgICBxcC0+c3J2W3R5cGVdLm1h dGNoID0genNkYV9oYXNoX21hdGNoOw0KPiArDQo+ICsgICAgcmV0dXJuIHJldDsNCj4gK30NCj4g Kw0KPiArc3RhdGljIGludA0KPiArenNkYV9zeW1fcXBfc2V0dXAoc3RydWN0IHJ0ZV9jcnlwdG9k ZXYgKmRldiwgdWludDE2X3QgcXBfaWQsDQo+ICsgICAgICAgICAgY29uc3Qgc3RydWN0IHJ0ZV9j cnlwdG9kZXZfcXBfY29uZiAqcXBfY29uZiwNCj4gKyAgICAgICAgICBpbnQgc29ja2V0X2lkKQ0K PiArew0KPiArICAgIGludCByZXQgPSAwOw0KPiArICAgIHN0cnVjdCB6c2RhX3FwICpxcF9uZXc7 DQo+ICsNCj4gKyAgICBzdHJ1Y3QgenNkYV9xcCAqKnFwX2FkZHIgPQ0KPiArICAgICAgICAoc3Ry dWN0IHpzZGFfcXAgKiopJihkZXYtPmRhdGEtPnF1ZXVlX3BhaXJzW3FwX2lkXSk7DQo+ICsgICAg c3RydWN0IHpzZGFfc3ltX2Rldl9wcml2YXRlICpzeW1fcHJpdiA9IGRldi0+ZGF0YS0+ZGV2X3By aXZhdGU7DQo+ICsgICAgc3RydWN0IHpzZGFfcGNpX2RldmljZSAqenNkYV9wY2lfZGV2ID0gc3lt X3ByaXYtPnpzZGFfcGNpX2RldjsNCj4gKyAgICB1aW50MTZfdCBudW1fcXBzX2VuY3J5cHQgPSB6 c2RhX3Fwc19wZXJfc2VydmljZSgNCj4gKyAgICAgICAgenNkYV9wY2lfZGV2LCBaU0RBX1NFUlZJ Q0VfU1lNTUVUUklDX0VOQ1JZUFQpOw0KPiArICAgIHVpbnQxNl90IG51bV9xcHNfZGVjcnlwdCA9 IHpzZGFfcXBzX3Blcl9zZXJ2aWNlKA0KPiArICAgICAgICB6c2RhX3BjaV9kZXYsIFpTREFfU0VS VklDRV9TWU1NRVRSSUNfREVDUllQVCk7DQo+ICsgICAgdWludDE2X3QgbnVtX3Fwc19oYXNoID0g enNkYV9xcHNfcGVyX3NlcnZpY2UoDQo+ICsgICAgICAgIHpzZGFfcGNpX2RldiwgWlNEQV9TRVJW SUNFX0hBU0hfRU5DT0RFKTsNCj4gKw0KPiArICAgIHVpbnQzMl90IG5iX2RlcyA9IHFwX2NvbmYt Pm5iX2Rlc2NyaXB0b3JzOw0KPiArICAgIG5iX2RlcyA9IChuYl9kZXMgPT0gTkJfREVTKSA/IG5i X2RlcyA6IE5CX0RFUzsNCj4gKw0KPiArICAgIGlmICgqcXBfYWRkciAhPSBOVUxMKSB7DQo+ICsg ICAgICAgIHJldCA9IHpzZGFfc3ltX3FwX3JlbGVhc2UoZGV2LCBxcF9pZCk7DQo+ICsgICAgICAg IGlmIChyZXQpDQo+ICsgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiArICAgIH0NCj4gKw0KPiAr ICAgIHFwX25ldyA9IHJ0ZV96bWFsbG9jX3NvY2tldCgienNkYSBQTUQgcXAgbWV0YWRhdGEiLCBz aXplb2YoKnFwX25ldyksDQo+ICsgICAgICAgICAgICAgICAgICAgIFJURV9DQUNIRV9MSU5FX1NJ WkUsIHNvY2tldF9pZCk7DQo+ICsgICAgaWYgKHFwX25ldyA9PSBOVUxMKSB7DQo+ICsgICAgICAg IFpTREFfTE9HKEVSUiwgIkZhaWxlZCB0byBhbGxvYyBtZW0gZm9yIHFwIHN0cnVjdCIpOw0KPiAr ICAgICAgICByZXR1cm4gLUVOT01FTTsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBpZiAobnVtX3Fw c19lbmNyeXB0ID09IE1BWF9RUFNfT05fRlVOQ1RJT04pDQo+ICsgICAgICAgIHJldCA9IHpzZGFf c2V0dXBfZW5jcnlwdG9fcXVldWUoenNkYV9wY2lfZGV2LCBxcF9pZCwgcXBfbmV3LCBuYl9kZXMs DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXRfaWQpOw0KPiArICAgIGVsc2UgaWYg KG51bV9xcHNfZGVjcnlwdCA9PSBNQVhfUVBTX09OX0ZVTkNUSU9OKQ0KPiArICAgICAgICByZXQg PSB6c2RhX3NldHVwX2RlY3J5cHRvX3F1ZXVlKHpzZGFfcGNpX2RldiwgcXBfaWQsIHFwX25ldywg bmJfZGVzLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0X2lkKTsNCj4gKyAgICBl bHNlIGlmIChudW1fcXBzX2hhc2ggPT0gTUFYX1FQU19PTl9GVU5DVElPTikNCj4gKyAgICAgICAg cmV0ID0genNkYV9zZXR1cF9oYXNoX3F1ZXVlKHpzZGFfcGNpX2RldiwgcXBfaWQsIHFwX25ldywg bmJfZGVzLA0KPiArICAgICAgICAgICAgICAgICAgICBzb2NrZXRfaWQpOw0KPiArICAgIGVsc2Ug ew0KPiArICAgICAgICByZXQgPSB6c2RhX3NldHVwX2VuY3J5cHRvX3F1ZXVlKHpzZGFfcGNpX2Rl diwgcXBfaWQsIHFwX25ldywgbmJfZGVzLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgc29j a2V0X2lkKTsNCj4gKyAgICAgICAgcmV0IHw9IHpzZGFfc2V0dXBfZGVjcnlwdG9fcXVldWUoenNk YV9wY2lfZGV2LCBxcF9pZCwgcXBfbmV3LCBuYl9kZXMsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICBzb2NrZXRfaWQpOw0KPiArICAgICAgICByZXQgfD0genNkYV9zZXR1cF9oYXNoX3F1ZXVl KHpzZGFfcGNpX2RldiwgcXBfaWQsIHFwX25ldywgbmJfZGVzLA0KPiArICAgICAgICAgICAgICAg ICAgICBzb2NrZXRfaWQpOw0KPiArICAgIH0NCj4gKw0KPiArICAgIGlmIChyZXQpIHsNCj4gKyAg ICAgICAgcnRlX2ZyZWUocXBfbmV3KTsNCj4gKyAgICAgICAgcmV0dXJuIHJldDsNCj4gKyAgICB9 DQo+ICsNCj4gKyAgICBxcF9uZXctPm1tYXBfYmFyX2FkZHIgPQ0KPiArICAgICAgICBzeW1fcHJp di0+enNkYV9wY2lfZGV2LT5wY2lfZGV2LT5tZW1fcmVzb3VyY2VbMF0uYWRkcjsNCj4gKyAgICAq cXBfYWRkciA9IHFwX25ldzsNCj4gKw0KPiArICAgIHJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4g K3N0YXRpYyB1bnNpZ25lZCBpbnQNCj4gK3pzZGFfc3ltX3Nlc3Npb25fZ2V0X3ByaXZhdGVfc2l6 ZShzdHJ1Y3QgcnRlX2NyeXB0b2RldiAqZGV2IF9fcnRlX3VudXNlZCkNCj4gK3sNCj4gKyAgICBy ZXR1cm4gUlRFX0FMSUdOX0NFSUwoc2l6ZW9mKHN0cnVjdCB6c2RhX3N5bV9zZXNzaW9uKSwgOCk7 DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3pzZGFfc3ltX3Nlc3Npb25fY29uZmlndXJl KHN0cnVjdCBydGVfY3J5cHRvZGV2ICpkZXYgX19ydGVfdW51c2VkLA0KPiArICAgICAgICAgICAg ICAgc3RydWN0IHJ0ZV9jcnlwdG9fc3ltX3hmb3JtICp4Zm9ybSwNCj4gKyAgICAgICAgICAgICAg IHN0cnVjdCBydGVfY3J5cHRvZGV2X3N5bV9zZXNzaW9uICpzZXNzKQ0KPiArew0KPiArICAgIHZv aWQgKnNlc3NfcHJpdmF0ZV9kYXRhOw0KPiArICAgIGludCByZXQgPSAwOw0KPiArDQo+ICsgICAg aWYgKHVubGlrZWx5KHNlc3MgPT0gTlVMTCkpIHsNCj4gKyAgICAgICAgWlNEQV9MT0coRVJSLCAi SW52YWxpZCBzZXNzaW9uIHN0cnVjdCIpOw0KPiArICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4g KyAgICB9DQo+ICsNCj4gKyAgICBzZXNzX3ByaXZhdGVfZGF0YSA9IENSWVBUT0RFVl9HRVRfU1lN X1NFU1NfUFJJVihzZXNzKTsNCj4gKw0KPiArICAgIHJldCA9IHpzZGFfY3J5cHRvX3NldF9zZXNz aW9uX3BhcmFtZXRlcnMoDQo+ICsgICAgICAgICAgICBzZXNzX3ByaXZhdGVfZGF0YSwgeGZvcm0p Ow0KPiArDQo+ICsgICAgaWYgKHJldCAhPSAwKSB7DQo+ICsgICAgICAgIFpTREFfTE9HKEVSUiwg IkZhaWxlZCBjb25maWd1cmUgc2Vzc2lvbiBwYXJhbWV0ZXJzIik7DQo+ICsgICAgICAgIHJldHVy biByZXQ7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0 YXRpYyB2b2lkDQo+ICt6c2RhX3N5bV9zZXNzaW9uX2NsZWFyKHN0cnVjdCBydGVfY3J5cHRvZGV2 ICpkZXYgX19ydGVfdW51c2VkLA0KPiArICAgICAgICAgICAgc3RydWN0IHJ0ZV9jcnlwdG9kZXZf c3ltX3Nlc3Npb24gICpzZXNzIF9fcnRlX3VudXNlZCkNCj4gK3t9DQo+ICsNCj4gK3N0YXRpYyBz dHJ1Y3QgcnRlX2NyeXB0b2Rldl9vcHMgY3J5cHRvX3pzZGFfb3BzID0gew0KPiArDQo+ICsgICAg LmRldl9jb25maWd1cmUgPSB6c2RhX3N5bV9kZXZfY29uZmlnLA0KPiArICAgIC5kZXZfc3RhcnQg PSB6c2RhX3N5bV9kZXZfc3RhcnQsDQo+ICsgICAgLmRldl9zdG9wID0genNkYV9zeW1fZGV2X3N0 b3AsDQo+ICsgICAgLmRldl9jbG9zZSA9IHpzZGFfc3ltX2Rldl9jbG9zZSwNCj4gKyAgICAuZGV2 X2luZm9zX2dldCA9IHpzZGFfc3ltX2Rldl9pbmZvX2dldCwNCj4gKw0KPiArICAgIC5zdGF0c19n ZXQgPSB6c2RhX3N5bV9zdGF0c19nZXQsDQo+ICsgICAgLnN0YXRzX3Jlc2V0ID0genNkYV9zeW1f c3RhdHNfcmVzZXQsDQo+ICsgICAgLnF1ZXVlX3BhaXJfc2V0dXAgPSB6c2RhX3N5bV9xcF9zZXR1 cCwNCj4gKyAgICAucXVldWVfcGFpcl9yZWxlYXNlID0genNkYV9zeW1fcXBfcmVsZWFzZSwNCj4g Kw0KPiArICAgIC5zeW1fc2Vzc2lvbl9nZXRfc2l6ZSA9IHpzZGFfc3ltX3Nlc3Npb25fZ2V0X3By aXZhdGVfc2l6ZSwNCj4gKyAgICAuc3ltX3Nlc3Npb25fY29uZmlndXJlID0genNkYV9zeW1fc2Vz c2lvbl9jb25maWd1cmUsDQo+ICsgICAgLnN5bV9zZXNzaW9uX2NsZWFyID0genNkYV9zeW1fc2Vz c2lvbl9jbGVhciwNCj4gK307DQo+ICsNCj4gK3N0YXRpYyB1aW50MTZfdA0KPiArenNkYV9zeW1f cG1kX2VucXVldWVfb3BfYnVyc3Qodm9pZCAqcXAsIHN0cnVjdCBydGVfY3J5cHRvX29wICoqb3Bz LA0KPiArICAgICAgICAgICAgICAgICAgdWludDE2X3QgbmJfb3BzKQ0KPiArew0KPiArICAgIHJl dHVybiB6c2RhX2VucXVldWVfb3BfYnVyc3QoKHN0cnVjdCB6c2RhX3FwICopcXAsICh2b2lkICoq KW9wcywNCj4gKyAgICAgICAgICAgICAgICAgICAgIG5iX29wcyk7DQo+ICt9DQo+ICsNCj4gK3N0 YXRpYyB1aW50MTZfdA0KPiArenNkYV9zeW1fcG1kX2RlcXVldWVfb3BfYnVyc3Qodm9pZCAqcXAs IHN0cnVjdCBydGVfY3J5cHRvX29wICoqb3BzLA0KPiArICAgICAgICAgICAgICAgICAgdWludDE2 X3QgbmJfb3BzKQ0KPiArew0KPiArICAgIHJldHVybiB6c2RhX2RlcXVldWVfb3BfYnVyc3QoKHN0 cnVjdCB6c2RhX3FwICopcXAsICh2b2lkICoqKW9wcywNCj4gKyAgICAgICAgICAgICAgICAgICAg IG5iX29wcyk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBjaGFyIHpzZGFfc3ltX2Rydl9u YW1lW10gPQ0KPiBSVEVfU1RSKENSWVBUT0RFVl9OQU1FX1pTREFfU1lNX1BNRCk7DQo+ICtzdGF0 aWMgY29uc3Qgc3RydWN0IHJ0ZV9kcml2ZXIgY3J5cHRvZGV2X3pzZGFfc3ltX2RyaXZlciA9IHsN Cj4gKyAgICAubmFtZSA9IHpzZGFfc3ltX2Rydl9uYW1lLCAuYWxpYXMgPSB6c2RhX3N5bV9kcnZf bmFtZX07DQo+ICsNCj4gK2ludA0KPiArenNkYV9zeW1fZGV2X2NyZWF0ZShzdHJ1Y3QgenNkYV9w Y2lfZGV2aWNlICp6c2RhX3BjaV9kZXYpDQo+ICt7DQo+ICsgICAgaW50IHJldCA9IDA7DQo+ICsg ICAgc3RydWN0IHpzZGFfZGV2aWNlX2luZm8gKmRldl9pbmZvID0NCj4gKyAgICAgICAgJnpzZGFf ZGV2c1t6c2RhX3BjaV9kZXYtPnpzZGFfZGV2X2lkXTsNCj4gKw0KPiArICAgIHN0cnVjdCBydGVf Y3J5cHRvZGV2X3BtZF9pbml0X3BhcmFtcyBpbml0X3BhcmFtcyA9IHsNCj4gKyAgICAgICAgLm5h bWUgPSAiIiwNCj4gKyAgICAgICAgLnNvY2tldF9pZCA9IChpbnQpcnRlX3NvY2tldF9pZCgpLA0K PiArICAgICAgICAucHJpdmF0ZV9kYXRhX3NpemUgPSBzaXplb2Yoc3RydWN0IHpzZGFfc3ltX2Rl dl9wcml2YXRlKX07DQo+ICsNCj4gKyAgICBjaGFyIG5hbWVbUlRFX0NSWVBUT0RFVl9OQU1FX01B WF9MRU5dOw0KPiArICAgIGNoYXIgY2FwYV9tZW16X25hbWVbUlRFX0NSWVBUT0RFVl9OQU1FX01B WF9MRU5dOw0KPiArICAgIHN0cnVjdCBydGVfY3J5cHRvZGV2ICpjcnlwdG9kZXY7DQo+ICsgICAg c3RydWN0IHpzZGFfc3ltX2Rldl9wcml2YXRlICpzeW1fcHJpdjsNCj4gKyAgICBjb25zdCBzdHJ1 Y3QgcnRlX2NyeXB0b2Rldl9jYXBhYmlsaXRpZXMgKmNhcGFiaWxpdGllczsNCj4gKyAgICB1aW50 NjRfdCBjYXBhX3NpemU7DQo+ICsNCj4gKyAgICBpbml0X3BhcmFtcy5tYXhfbmJfcXVldWVfcGFp cnMgPSB6c2RhX2NyeXB0b19tYXhfbmJfcXBzKHpzZGFfcGNpX2Rldik7DQo+ICsgICAgc25wcmlu dGYobmFtZSwgUlRFX0NSWVBUT0RFVl9OQU1FX01BWF9MRU4sICIlc18lcyIsIHpzZGFfcGNpX2Rl di0NCj4gPm5hbWUsDQo+ICsgICAgICAgICAic3ltX2VuY3J5cHQiKTsNCj4gKyAgICBaU0RBX0xP RyhERUJVRywgIkNyZWF0aW5nIFpTREEgU1lNIGRldmljZSAlcyIsIG5hbWUpOw0KPiArDQo+ICsg ICAgaWYgKHJ0ZV9lYWxfcHJvY2Vzc190eXBlKCkgIT0gUlRFX1BST0NfUFJJTUFSWSkNCj4gKyAg ICAgICAgcmV0dXJuIFpTREFfU1VDQ0VTUzsNCj4gKw0KPiArICAgIGRldl9pbmZvLT5zeW1fcnRl X2Rldi5kcml2ZXIgPSAmY3J5cHRvZGV2X3pzZGFfc3ltX2RyaXZlcjsNCj4gKyAgICBkZXZfaW5m by0+c3ltX3J0ZV9kZXYubnVtYV9ub2RlID0gZGV2X2luZm8tPnBjaV9kZXYtDQo+ID5kZXZpY2Uu bnVtYV9ub2RlOw0KPiArICAgIGRldl9pbmZvLT5zeW1fcnRlX2Rldi5kZXZhcmdzID0gTlVMTDsN Cj4gKw0KPiArICAgIGNyeXB0b2RldiA9IHJ0ZV9jcnlwdG9kZXZfcG1kX2NyZWF0ZShuYW1lLCAm KGRldl9pbmZvLT5zeW1fcnRlX2RldiksDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgJmlu aXRfcGFyYW1zKTsNCj4gKw0KPiArICAgIGlmIChjcnlwdG9kZXYgPT0gTlVMTCkNCj4gKyAgICAg ICAgcmV0dXJuIC1FTk9ERVY7DQo+ICsNCj4gKyAgICBkZXZfaW5mby0+c3ltX3J0ZV9kZXYubmFt ZSA9IGNyeXB0b2Rldi0+ZGF0YS0+bmFtZTsNCj4gKyAgICBjcnlwdG9kZXYtPmRyaXZlcl9pZCA9 IHpzZGFfc3ltX2RyaXZlcl9pZDsNCj4gKw0KPiArICAgIGNyeXB0b2Rldi0+ZGV2X29wcyA9ICZj cnlwdG9fenNkYV9vcHM7DQo+ICsNCj4gKyAgICBjcnlwdG9kZXYtPmVucXVldWVfYnVyc3QgPSB6 c2RhX3N5bV9wbWRfZW5xdWV1ZV9vcF9idXJzdDsNCj4gKyAgICBjcnlwdG9kZXYtPmRlcXVldWVf YnVyc3QgPSB6c2RhX3N5bV9wbWRfZGVxdWV1ZV9vcF9idXJzdDsNCj4gKw0KPiArICAgIGNyeXB0 b2Rldi0+ZmVhdHVyZV9mbGFncyA9IFJURV9DUllQVE9ERVZfRkZfU1lNTUVUUklDX0NSWVBUTyB8 DQo+ICsgICAgICAgICAgICAgICAgICAgUlRFX0NSWVBUT0RFVl9GRl9TWU1fU0VTU0lPTkxFU1Mg fA0KPiArICAgICAgICAgICAgICAgICAgIFJURV9DUllQVE9ERVZfRkZfT09QX0xCX0lOX0xCX09V VCB8DQo+ICsgICAgICAgICAgICAgICAgICAgUlRFX0NSWVBUT0RFVl9GRl9PT1BfTEJfSU5fU0dM X09VVCB8DQo+ICsgICAgICAgICAgICAgICAgICAgUlRFX0NSWVBUT0RFVl9GRl9PT1BfU0dMX0lO X0xCX09VVCB8DQo+ICsgICAgICAgICAgICAgICAgICAgUlRFX0NSWVBUT0RFVl9GRl9PT1BfU0dM X0lOX1NHTF9PVVQgfA0KPiArICAgICAgICAgICAgICAgICAgIFJURV9DUllQVE9ERVZfRkZfSFdf QUNDRUxFUkFURUQ7DQo+ICsNCj4gKyAgICBzeW1fcHJpdiA9IGNyeXB0b2Rldi0+ZGF0YS0+ZGV2 X3ByaXZhdGU7DQo+ICsgICAgc3ltX3ByaXYtPnpzZGFfcGNpX2RldiA9IHpzZGFfcGNpX2RldjsN Cj4gKyAgICBjYXBhYmlsaXRpZXMgPSB6c2RhX2NyeXB0b19zeW1fY2FwYWJpbGl0aWVzOw0KPiAr ICAgIGNhcGFfc2l6ZSA9IHNpemVvZih6c2RhX2NyeXB0b19zeW1fY2FwYWJpbGl0aWVzKTsNCj4g Kw0KPiArICAgIHNucHJpbnRmKGNhcGFfbWVtel9uYW1lLCBSVEVfQ1JZUFRPREVWX05BTUVfTUFY X0xFTiwNCj4gIlpTREFfU1lNX0NBUEEiKTsNCj4gKw0KPiArICAgIHN5bV9wcml2LT5jYXBhX216 ID0gcnRlX21lbXpvbmVfbG9va3VwKGNhcGFfbWVtel9uYW1lKTsNCj4gKyAgICBpZiAoc3ltX3By aXYtPmNhcGFfbXogPT0gTlVMTCkNCj4gKyAgICAgICAgc3ltX3ByaXYtPmNhcGFfbXogPSBydGVf bWVtem9uZV9yZXNlcnZlKA0KPiArICAgICAgICAgICAgY2FwYV9tZW16X25hbWUsIGNhcGFfc2l6 ZSwgcnRlX3NvY2tldF9pZCgpLCAwKTsNCj4gKw0KPiArICAgIGlmIChzeW1fcHJpdi0+Y2FwYV9t eiA9PSBOVUxMKSB7DQo+ICsgICAgICAgIFpTREFfTE9HKEVSUiwgRV9NQUxMT0MpOw0KPiArICAg ICAgICByZXQgPSAtRUZBVUxUOw0KPiArICAgICAgICBnb3RvIGVycm9yOw0KPiArICAgIH0NCj4g Kw0KPiArICAgIG1lbWNweShzeW1fcHJpdi0+Y2FwYV9tei0+YWRkciwgY2FwYWJpbGl0aWVzLCBj YXBhX3NpemUpOw0KPiArICAgIHN5bV9wcml2LT56c2RhX2Rldl9jYXBhYmlsaXRpZXMgPSBzeW1f cHJpdi0+Y2FwYV9tei0+YWRkcjsNCj4gKw0KPiArICAgIHpzZGFfcGNpX2Rldi0+c3ltX2RldiA9 IHN5bV9wcml2Ow0KPiArDQo+ICsgICAgcmV0dXJuIFpTREFfU1VDQ0VTUzsNCj4gKw0KPiArZXJy b3I6DQo+ICsNCj4gKyAgICBydGVfY3J5cHRvZGV2X3BtZF9kZXN0cm95KGNyeXB0b2Rldik7DQo+ ICsgICAgbWVtc2V0KCZkZXZfaW5mby0+c3ltX3J0ZV9kZXYsIDAsIHNpemVvZihkZXZfaW5mby0+ c3ltX3J0ZV9kZXYpKTsNCj4gKw0KPiArICAgIHJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gK2lu dA0KPiArenNkYV9zeW1fZGV2X2Rlc3Ryb3koc3RydWN0IHpzZGFfcGNpX2RldmljZSAqenNkYV9w Y2lfZGV2KQ0KPiArew0KPiArICAgIHN0cnVjdCBydGVfY3J5cHRvZGV2ICpjcnlwdG9kZXY7DQo+ ICsNCj4gKyAgICBpZiAoenNkYV9wY2lfZGV2ID09IE5VTEwpDQo+ICsgICAgICAgIHJldHVybiAt RU5PREVWOw0KPiArICAgIGlmICh6c2RhX3BjaV9kZXYtPnN5bV9kZXYgPT0gTlVMTCkNCj4gKyAg ICAgICAgcmV0dXJuIFpTREFfU1VDQ0VTUzsNCj4gKyAgICBpZiAocnRlX2VhbF9wcm9jZXNzX3R5 cGUoKSA9PSBSVEVfUFJPQ19QUklNQVJZKQ0KPiArICAgICAgICBydGVfbWVtem9uZV9mcmVlKHpz ZGFfcGNpX2Rldi0+c3ltX2Rldi0+Y2FwYV9teik7DQo+ICsNCj4gKyAgICBjcnlwdG9kZXYgPSBy dGVfY3J5cHRvZGV2X3BtZF9nZXRfZGV2KHpzZGFfcGNpX2Rldi0+enNkYV9kZXZfaWQpOw0KPiAr DQo+ICsgICAgcnRlX2NyeXB0b2Rldl9wbWRfZGVzdHJveShjcnlwdG9kZXYpOw0KPiArICAgIHpz ZGFfZGV2c1t6c2RhX3BjaV9kZXYtPnpzZGFfZGV2X2lkXS5zeW1fcnRlX2Rldi5uYW1lID0gTlVM TDsNCj4gKyAgICB6c2RhX3BjaV9kZXYtPnN5bV9kZXYgPSBOVUxMOw0KPiArDQo+ICsgICAgcmV0 dXJuIFpTREFfU1VDQ0VTUzsNCj4gK30NCj4gKw0KPiArc3RhdGljIHN0cnVjdCBjcnlwdG9kZXZf ZHJpdmVyIHpzZGFfY3J5cHRvX2RydjsNCj4gK1JURV9QTURfUkVHSVNURVJfQ1JZUFRPX0RSSVZF Uih6c2RhX2NyeXB0b19kcnYsDQo+IGNyeXB0b2Rldl96c2RhX3N5bV9kcml2ZXIsDQo+ICsgICAg ICAgICAgICAgICAgICAgenNkYV9zeW1fZHJpdmVyX2lkKTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvY3J5cHRvL3pzZGEvenNkYV9zeW1fcG1kLmgNCj4gYi9kcml2ZXJzL2NyeXB0by96c2RhL3pz ZGFfc3ltX3BtZC5oDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAu Ljc3MTc1ZmVkNDcNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2ZXJzL2NyeXB0by96c2Rh L3pzZGFfc3ltX3BtZC5oDQo+IEBAIC0wLDAgKzEsMzUgQEANCj4gKy8qIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gKyAqIENvcHlyaWdodChjKSAyMDI0IFpURSBDb3Jw b3JhdGlvbg0KPiArICovDQo+ICsNCj4gKyNpZm5kZWYgX1pTREFfU1lNX1BNRF9IXw0KPiArI2Rl ZmluZSBfWlNEQV9TWU1fUE1EX0hfDQo+ICsNCj4gKyNpbmNsdWRlICJ6c2RhX2RldmljZS5oIg0K PiArDQo+ICsvKiogWlNEQSBTeW1tZXRyaWMgQ3J5cHRvIFBNRCBkcml2ZXIgbmFtZSAqLw0KPiAr I2RlZmluZSBDUllQVE9ERVZfTkFNRV9aU0RBX1NZTV9QTUQgY3J5cHRvX3pzZGENCj4gKw0KPiAr ZXh0ZXJuIHVpbnQ4X3QgenNkYV9zeW1fZHJpdmVyX2lkOw0KPiArDQo+ICsvKiogcHJpdmF0ZSBk YXRhIHN0cnVjdHVyZSBmb3IgYSBaU0RBIGRldmljZS4NCj4gKyAqIFRoaXMgWlNEQSBkZXZpY2Ug aXMgYSBkZXZpY2Ugb2ZmZXJpbmcgb25seSBzeW1tZXRyaWMgY3J5cHRvIHNlcnZpY2UsDQo+ICsg KiB0aGVyZSBjYW4gYmUgb25lIG9mIHRoZXNlIG9uIGVhY2ggenNkYV9wY2lfZGV2aWNlIChWRiku DQo+ICsgKi8NCj4gK3N0cnVjdCB6c2RhX3N5bV9kZXZfcHJpdmF0ZSB7DQo+ICsgICAgc3RydWN0 IHpzZGFfcGNpX2RldmljZSAqenNkYV9wY2lfZGV2Ow0KPiArICAgIC8qKjwgVGhlIHpzZGEgcGNp IGRldmljZSBob3N0aW5nIHRoZSBzZXJ2aWNlICovDQo+ICsNCj4gKyAgICBjb25zdCBzdHJ1Y3Qg cnRlX2NyeXB0b2Rldl9jYXBhYmlsaXRpZXMgKnpzZGFfZGV2X2NhcGFiaWxpdGllczsNCj4gKyAg ICAvKiBaU0RBIGRldmljZSBzeW1tZXRyaWMgY3J5cHRvIGNhcGFiaWxpdGllcyAqLw0KPiArICAg IGNvbnN0IHN0cnVjdCBydGVfbWVtem9uZSAqY2FwYV9tejsNCj4gKyAgICAvKiBTaGFyZWQgbWVt em9uZSBmb3Igc3RvcmluZyBjYXBhYmlsaXRpZXMgKi8NCj4gKyAgICB1aW50MTZfdCBtaW5fZW5x X2J1cnN0X3RocmVzaG9sZDsNCj4gKyAgICB1aW50MzJfdCBpbnRlcm5hbF9jYXBhYmlsaXRpZXM7 IC8qIHNlZSBmbGFncyBaU0RBX1NZTV9DQVBfeHh4ICovDQo+ICt9Ow0KPiArDQo+ICtpbnQgenNk YV9zeW1fZGV2X2NyZWF0ZShzdHJ1Y3QgenNkYV9wY2lfZGV2aWNlICp6c2RhX3BjaV9kZXYpOw0K PiArDQo+ICtpbnQgenNkYV9zeW1fZGV2X2Rlc3Ryb3koc3RydWN0IHpzZGFfcGNpX2RldmljZSAq enNkYV9wY2lfZGV2KTsNCj4gKw0KPiArI2VuZGlmIC8qIF9aU0RBX1NZTV9QTURfSF8gKi8NCj4g LS0NCj4gMi4yNy4wDQoNCg==