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 83EF345AF1; Wed, 9 Oct 2024 12:03:30 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 482474065D; Wed, 9 Oct 2024 12:03:30 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 2CD33402DB for ; Wed, 9 Oct 2024 12:03:27 +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 499724vJ007040; Wed, 9 Oct 2024 03:03:27 -0700 Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2046.outbound.protection.outlook.com [104.47.66.46]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 425n2ygc5u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 09 Oct 2024 03:03:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ssDAVXerGAR4570mPAWS61QM7cHyjNsi1r9iVsksp9PjwpNCyGvKdGmCunoj2gmYjUcTnooxWUlbxSxQ5nsBuHhVxgKh4GsSRzTvKhUEBojOfJDwzJ01YmJ822v8Dglz8MfRQZgWz3zoFPyuQaOsTf5tNu6Yq6eVjRPUA06+NaLFgLC9d5bhC8U/IJEcl4GYSuk/Qt29xbsOwtWHnUuYkJEZfNn8oxanvVPmEe5dEOXt9m79/0sBjFaJzksb7pLb/pYB7Kilg47/3MFui8M96j85pDgg6AixinfCeC/gRcVrZn4JUBzyZ31LZRINKSvw87PTKADRGr1L2Rqi6pv8bA== 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=V4ytqfxcX+aZOhtJ3GSMPTtR62mDLdWAkqUtC8X0gDU=; b=ScYZbxARn8584TnigsW1/6VPPPQzho5fZ5/IX/efeWED7504pa+C9OoIzUIPKePGqE8T51fl2YTt49bAsbwC+pEP1fVxMLpYQuEQJpQhmfTpo5DyxXQWD8WJ/A03t1MsGIvhNTfMn8SW7x4ADxe2ezlljyZJUHhM/bEMJgO3WOO26mGU0OyGPsn2U2BOXVWdmezSxRB2YaWlrLkKry0a4e1XWHmfPhg5ketiuc3NYUrqS0/MMtpT9cJDzBwdWMnqGH90uUAfuDsFgDCElp3YzctoIdrM95zKUPAOjafTPZr+/gXDuPisM6UH13kgS0Eu2G7paTcw6n5yjyM1KllZIw== 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=V4ytqfxcX+aZOhtJ3GSMPTtR62mDLdWAkqUtC8X0gDU=; b=PlYjVqNDo9LDoyADISdDW5jP7ZOE5LOBzA/v51wCW1Lqzl5eJATHWHx/RF4lqrdesu6JnbkLexnS9BfG7EzG9tzBDIBZWfSA9/uA5kJqRNU6xrM5VJ0xZdlXtUwl6+5NWy+KL0dDeOX1WmAfP/X496Fv5Kw5sFCL7OKU8x8Z/64= Received: from CO6PR18MB4484.namprd18.prod.outlook.com (2603:10b6:5:359::9) by CH3PR18MB6073.namprd18.prod.outlook.com (2603:10b6:610:1e4::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.16; Wed, 9 Oct 2024 10:03:22 +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.8048.013; Wed, 9 Oct 2024 10:03:21 +0000 From: Akhil Goyal To: Brian Dooley , Kai Ji , Pablo de Lara CC: "dev@dpdk.org" Subject: RE: [EXTERNAL] [PATCH v2] crypto/ipsec_mb: bump minimum IPsec MB version Thread-Topic: [EXTERNAL] [PATCH v2] crypto/ipsec_mb: bump minimum IPsec MB version Thread-Index: AQHbGNjddB1Tb77L40WXWqokQb+lYrJ+Mvag Date: Wed, 9 Oct 2024 10:03:21 +0000 Message-ID: References: <20241004145815.2275878-1-brian.dooley@intel.com> <20241007164910.3452748-1-brian.dooley@intel.com> In-Reply-To: <20241007164910.3452748-1-brian.dooley@intel.com> 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_|CH3PR18MB6073:EE_ x-ms-office365-filtering-correlation-id: 0df0955d-6994-422d-61e8-08dce8499b53 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?NzZrWjNyTkVCUi9odU9JNkdZeVVqcW9aYXQwa3A1L3YxWWh5cDFIN1dFVDNQ?= =?utf-8?B?WVpXdkpTSVBWZ0gwdzZOTFBKMnhXaHdEclorSHBpM2JEL2tZN3F3WjB0S1B1?= =?utf-8?B?Yi9vTmFQNjBDbDZ2SHZma0FISmRLN0ZwMUZIRDQrOStBTGUyc2xlUUhKRFpN?= =?utf-8?B?Qk02L1QxUS9PWUxxUUtCSVBiUWV0OXBLS21YYUs5NUU5WnVneWMwbjd1cmNJ?= =?utf-8?B?UEU1K3pOandQZ1h5TnBXNW03OXNUYUZsL09yWkk4alpZb3RTZ2ZRZXJ5a29r?= =?utf-8?B?S0RFdVpuV2ZYbUt5UzR6K0F1cnVHQ1A2NTcwR1FnTVVvTUI2Mi9tWVkzSkRs?= =?utf-8?B?cElnWWtpd0M4R3dadjJQUGxENDZRV2NJMXlCbDZRbmpnc2kwWjlaU3BQQU05?= =?utf-8?B?TzRSRDYyUElwT3phbjd5OEVvWG1jVzNuclVoR0puR2t0b1RLcFd0dE5ET1pw?= =?utf-8?B?cE5iZ3gyTGNIblNKRVJ1ZGQ1bXhBS3VSK1I0bU9HNzhjMmVLaDJiSWxDc3JD?= =?utf-8?B?SUJXMERGQ3JsS3lZbnpuY1JWd2k1VUhPMTY4L1RQWHZwL3IrOXh6REFxWTdX?= =?utf-8?B?aEIrdFhTUE5Fd0lkUHNLWlRFY2UraEhzOTJrc2tIVnJJaWRWTzE2eVh1M1VC?= =?utf-8?B?Y0hGcjcrOHNpRFV0QitOVk5ZUHI3UkJOdlFvb3F0VFg4YUtKakVoNjVJNURM?= =?utf-8?B?MnpyNTRMYXo5bjA1WU1KWUI4N2ZGVTFMNTljQXVqK1hiRWhnSFdGR3JnWWRq?= =?utf-8?B?cU9KSWVKdklFTy9KSllHcUxaR2t3MGRiK2dpT2hWN3lFUHJVaFE3bElnY3Jy?= =?utf-8?B?SE5XS3o4bHJOQ0RUb2VLekNQTU1mNFVGUXJLbjkydW5kTS9UR1dnd1JjRHJO?= =?utf-8?B?VTdITFJwSDR2VE1lbElKVmtQQ0xmVnNaK25MS010ZlBFQUFrcGhKNStOdTdH?= =?utf-8?B?QlVPRjlpbnBSUTVzRyt4QzFieFhFb29vNFltTlJqL2gzdW5NUGJxWTE2ajNC?= =?utf-8?B?dDAwYlJoSnYzZmhRdnRUTXZmS3FUbWRhZmZBaU1FZ1J6WjdQZVZUVVdsOVZs?= =?utf-8?B?WnpRamYrMEJmTDR4TXNSeWJTT0xjSVdtSnlHZzk5WjZlbVJ3U0ZDL2VyczZP?= =?utf-8?B?Q2xac1UyZ1NLSFdFRGI1UDNPVlVuNDQ2eEdjdHQreUFHUFVwVDk4UnpGUXpr?= =?utf-8?B?ek5JejhoTGRzMm54M0wxMXNTS2t4TTUwZVM2emc0UXp6cndXckZmdmVYOFV1?= =?utf-8?B?dnEvUlVGT0I0ZldnTm5FZXhDOEk4bzVGKzFmSHhDdGhrYTlZeUdNK2hkRmdr?= =?utf-8?B?M1VSZlYzVVR5RW5ab3hEOG8wN2F4NXNRZWVZWk9INDkvb3pYSk9tVmZ1VEp2?= =?utf-8?B?QUd0U1E3Z1lSNElCMUtSSks2UnViQm45RmQxNnlGaEVMY3VzQUFaeS9PS1Yx?= =?utf-8?B?OEVJcVRTL0xpNlZ3aldnQlhhV01Kbmw1emhpZytrN2hHeE5GTVhaVUxoS0Rj?= =?utf-8?B?Y1hqYWFpQU53MlpxdFpqVEtTNkRHRkdNSUpaQXVrWURNcXlLMlQvT1laZnJQ?= =?utf-8?B?MktxbVBSVGVoZ1pmbU9pTFZQZUZYTWpJTGNRNzlmWGtvTmxZOUhTUGNqZkll?= =?utf-8?B?VUtMTGFiUHM4di9OR3R5RUw5MFZpREZkbnZxd010SHNxNHI1My9sdENCV2N3?= =?utf-8?B?V04rdjZ0cHFVZVhvc0NPUHRzOWhTa3diK2Z3a2JydHJTUC9aZllRMFRBPT0=?= 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)(1800799024)(376014)(366016)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cHdiMytuOWlKQlZDRlhPVHg1S01rRThqaUtTYlZWZG0vU3hQUW5RS2swQU1v?= =?utf-8?B?a0hFc1ZtbTZJVkFsandTNGZ6VTZxdWY4NElXdFhaWmFhTW5SSmMxRXB3VWM5?= =?utf-8?B?SE5OaUhtNGdOUnN1aktzL2VBbWdNdXdnekVERDgrTFUxRitMMDlsSnBoK3dw?= =?utf-8?B?YTVHbUt3ekR1VXpkMkNpSGlHNmxmYkFrRlhtNFRnNExiS1FSb0xCblBTVU9F?= =?utf-8?B?VDZhYjVwaWFWeWJGQzdQa1dDNWxGM2creFpJd1FkTHd3WDZNMm9jZytrQjVr?= =?utf-8?B?SXpWYWY0aHdlUkJZQUM0ZE9CY1RKa2t2SHk3Ujl2WHVHR212bE9ieHFDeGI2?= =?utf-8?B?S0FFaU9IRmdMNUNWSDlmZ3ZOdGJNMVRYcmJsN2xrbEZBdmdzc0FkK0pycm94?= =?utf-8?B?akRrVElTcGNRMDRMUVlUQVdrc0QrUllyMHlxVWo0RmF0LzkyT0dYbmJMbGdp?= =?utf-8?B?N0xkY0lhWVN4MzRHUEtuL2hEbUpCajR1dk8rd0RJa1NqSy9Dak9sU1Z2VlFU?= =?utf-8?B?bkJPK2Q3eTViTHZuMnNuUlVZdFhEeXoxb3JSOGJYb1d3RGkzUlIvNzFoZDJE?= =?utf-8?B?cEgzQkI4YVN3Nk9LeVpyclI1ZFdydFo3K3BQK1YwWVJ4NWJEVjM0WHJ6eitO?= =?utf-8?B?c1k0eXVpb2c3a3hoc0p5QzhPY2dycW90dU94ZVlnSkhOZTVWQWxTUUJ2dXMv?= =?utf-8?B?U0VJNDFjYitJOEdOTll2OXdrN0xYcnVLU1hhV09aaTQ4SzFLL0lYZUtPVHRB?= =?utf-8?B?TENaMzRkb2ZGQXNleDlSb0ZUL0UydDJWazlTWVVOTjhEVjgvUjBBRFlnMStU?= =?utf-8?B?U2ppakJGeHdRYTc5cFpXYmxUM0phb0x3STFSV3kxM2crYVo4R0UzdUVmSmVI?= =?utf-8?B?bWN2clFtVFA2TllXNTBlZDlGeWtyVk0yRHd6cjIxRVpoLzJINW53NDFaM2xZ?= =?utf-8?B?bGtGbS9xbDNmSEVJVFB0K2NSRmRIdGZ6R0N1WS9TdkJieUxMVjhtSDVXM2Nr?= =?utf-8?B?NkFkWDR5WnlzNjN5MkdXSmpYK3AraGJYdVZnaWZlL2Izcm5ONjdja1dCeHMw?= =?utf-8?B?cEUxMDhGRzdMYUNieEhLNDF0OTVxSEw0dXZialpUWncwc1FCZnU4cFA0ckZS?= =?utf-8?B?cnBqTGtvTzFVaThzTk5GSkhVVU1EMjZmcUtHV2ZmTENTSTJMdVhpV0Vtd0dY?= =?utf-8?B?MzhCTVZXcnB6RGM4cWpuT2NqRG5FbUUxaXN2T2lLcmZEckpnSlBBWFM1VVF3?= =?utf-8?B?ZjE4dGprTGxrdEpiMEtxQVcrMHFER3kvY2pRakM5YXMrT2xoYUtUVlJRejhI?= =?utf-8?B?aXUxUm9DdzZWUlVzTFdIeW1yZ1dlV3lJdU15ZVQ5RnNjWTZ6QXJQQitPZWpp?= =?utf-8?B?eVZDdktzYmVEcFYveWticHk0WVhTUTlRcXZpVENlOHNiZlBmYkJxYWpsQnFL?= =?utf-8?B?ZHBSaEZoTTIzd1hGaHBNenErSm1uOGVhWnBuS1FsRm1zYXJnYWdLR2ljWHZO?= =?utf-8?B?TlJSbnp3enFGdUU0Qi9CTVRMMUt6dTQ0TlNGRmowMDhnd1dBaml0clBoV2xv?= =?utf-8?B?RVZHckJWc1ZrRi9FT2FmdGdJUzU0ZkdhTklxSWFKaC9mM3k3a1JJREp1aDR4?= =?utf-8?B?OWNBS0srMmtFallzK2FiWEJXUnRoanVFZXdkajU2KzlZQm03K3pncHNzVWRP?= =?utf-8?B?TlNuVlJJbk4rRUFnWEtYRldKc0paQ0YwZlgrbkh6YUpzcmExaEZpY0dhRFY3?= =?utf-8?B?QXl6ZlJBb0xISDM2bGw3ejlPM3EzRndtNjYxWUF6eWdYeFc4WEw4SUk5ZGxI?= =?utf-8?B?Z2FtekFESHdYMWFJdkhDT1lhV1NycDk4d1hrREQ2aUJrTVJ6WFJUWk5tUk42?= =?utf-8?B?NFVzdGV3cXhGM3FXa3FGTEViLytnbEs5UWdLcld5Tng1bDRma2Z4VCt4Tkd1?= =?utf-8?B?bXBKckZmc0s3bDNzUFFObGo3Z1FCTVkyWmk5OWJjK2hkVzRnbzdvVTU1NFFJ?= =?utf-8?B?M2E0OHZ1a0F6dnhBN0xuRHd0TWdlTHVGb3dJaGw3UnFORFVyblYydkU4anZr?= =?utf-8?B?OHNPK0doL2dLYVJnTlF0U1RKWlNOd1JaMk1uRkd1dVFKRzBUQ2xKdnpDMno4?= =?utf-8?Q?AiAU=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: 0df0955d-6994-422d-61e8-08dce8499b53 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Oct 2024 10:03:21.5669 (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: DcIl4/JkeT5hE3PROlUUtrCYOaNYZL2XdHAelqHfc+acE/Ukr2mhbd61ZMspNfb319RuKIRbL0omLx2S0nD7zw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR18MB6073 X-Proofpoint-ORIG-GUID: Biwfvf82QrwRQq3L6xFoYVJE5ZvYb4dY X-Proofpoint-GUID: Biwfvf82QrwRQq3L6xFoYVJE5ZvYb4dY 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 PiBBRVNOSV9NQiBTVyBQTURzIGluY3JlbWVudCBJbnRlbCBJUHNlYyBNQiB2ZXJzaW9uIHRvIDEu NC4NCj4gQSBtaW5pbXVtIElQc2VjIE11bHRpLWJ1ZmZlciB2ZXJzaW9uIG9mIDEuNCBvciBncmVh dGVyIGlzIG5vdyByZXF1aXJlZA0KPiBmb3IgdGhlIDI0LjExIExUUyByZWxlYXNlLg0KPiANCj4g U2lnbmVkLW9mZi1ieTogQnJpYW4gRG9vbGV5IDxicmlhbi5kb29sZXlAaW50ZWwuY29tPg0KPiBB Y2tlZC1ieTogS2FpIEppIDxrYWkuamlAaW50ZWwuY29tPg0KPiBBY2tlZC1ieTogUGFibG8gZGUg TGFyYSA8cGFibG8uZGUubGFyYS5ndWFyY2hAaW50ZWwuY29tPg0KPiAtLS0NCj4gVGhpcyBwYXRj aCByZWxhdGVzIHRvIGEgZGVwcmVjYXRpb24gbm90aWNlIHNlbnQgaW4gdGhlIDI0LjAzIHJlbGVh c2UuDQoNCllvdSBzaG91bGQgYWxzbyByZW1vdmUgdGhlIGRlcHJlY2F0aW9uIG5vdGljZSBpbiB0 aGlzIHBhdGNoLg0KDQo+IEludGVsIElQc2VjIE1CIG1pbmltdW0gdmVyc2lvbiBiZWluZyBidW1w ZWQgdG8gMS40IGZvciB0aGUgMjQuMTEgcmVsZWFzZS4NCj4gaHR0cHM6Ly9wYXRjaGVzLmRwZGsu b3JnL3Byb2plY3QvZHBkay9wYXRjaC8yMDI0MDMxNDEwMzczMS4zMjQyMDg2LTItYnJpYW4uZG9v bGV5QGludGVsLmNvbS8NCj4gDQo+IHYyOg0KPiAJQWRkZWQgcmVsZWFzZSBub3RlDQo+IAlSZW1v dmUgbW9yZSBJTUJfVkVSU0lPTiBjaGVja3MNCj4gLS0tDQo+ICBkb2MvZ3VpZGVzL2NyeXB0b2Rl dnMvYWVzbmlfZ2NtLnJzdCAgICAgICAgIHwgICAzICstDQo+ICBkb2MvZ3VpZGVzL2NyeXB0b2Rl dnMvYWVzbmlfbWIucnN0ICAgICAgICAgIHwgICAzICstDQo+ICBkb2MvZ3VpZGVzL2NyeXB0b2Rl dnMvY2hhY2hhMjBfcG9seTEzMDUucnN0IHwgICAzICstDQo+ICBkb2MvZ3VpZGVzL2NyeXB0b2Rl dnMva2FzdW1pLnJzdCAgICAgICAgICAgIHwgICAzICstDQo+ICBkb2MvZ3VpZGVzL2NyeXB0b2Rl dnMvc25vdzNnLnJzdCAgICAgICAgICAgIHwgICAzICstDQo+ICBkb2MvZ3VpZGVzL2NyeXB0b2Rl dnMvenVjLnJzdCAgICAgICAgICAgICAgIHwgICAzICstDQo+ICBkb2MvZ3VpZGVzL3JlbF9ub3Rl cy9yZWxlYXNlXzI0XzExLnJzdCAgICAgIHwgICA3ICsNCj4gIGRyaXZlcnMvY3J5cHRvL2lwc2Vj X21iL2lwc2VjX21iX29wcy5jICAgICAgfCAgMjQgLS0NCj4gIGRyaXZlcnMvY3J5cHRvL2lwc2Vj X21iL21lc29uLmJ1aWxkICAgICAgICAgfCAgIDIgKy0NCj4gIGRyaXZlcnMvY3J5cHRvL2lwc2Vj X21iL3BtZF9hZXNuaV9tYi5jICAgICAgfCAyNjggKy0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gIGRy aXZlcnMvY3J5cHRvL2lwc2VjX21iL3BtZF9hZXNuaV9tYl9wcml2LmggfCAgIDkgLQ0KPiAgMTEg ZmlsZXMgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMzA1IGRlbGV0aW9ucygtKQ0KPiANCj4g ZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvY3J5cHRvZGV2cy9hZXNuaV9nY20ucnN0DQo+IGIvZG9j L2d1aWRlcy9jcnlwdG9kZXZzL2Flc25pX2djbS5yc3QNCj4gaW5kZXggM2FmMTQ4NjU1My4uNzU5 MmQzM2RhMiAxMDA2NDQNCj4gLS0tIGEvZG9jL2d1aWRlcy9jcnlwdG9kZXZzL2Flc25pX2djbS5y c3QNCj4gKysrIGIvZG9jL2d1aWRlcy9jcnlwdG9kZXZzL2Flc25pX2djbS5yc3QNCj4gQEAgLTc0 LDcgKzc0LDggQEAgYW5kIHRoZSBleHRlcm5hbCBjcnlwdG8gbGlicmFyaWVzIHN1cHBvcnRlZCBi eSB0aGVtOg0KPiAgICAgRFBESyB2ZXJzaW9uICAgQ3J5cHRvIGxpYnJhcnkgdmVyc2lvbg0KPiAg ICAgPT09PT09PT09PT09PSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gICAg IDIwLjExIC0gMjEuMDggIE11bHRpLWJ1ZmZlciBsaWJyYXJ5IDAuNTMgLSAxLjMNCj4gLSAgIDIx LjExKyAgICAgICAgIE11bHRpLWJ1ZmZlciBsaWJyYXJ5IDEuMCAgLSAxLjUNCj4gKyAgIDIxLjEx IC0gMjQuMDcgIE11bHRpLWJ1ZmZlciBsaWJyYXJ5IDEuMCAgLSAxLjUNCj4gKyAgIDI0LjExKyAg ICAgICAgIE11bHRpLWJ1ZmZlciBsaWJyYXJ5IDEuNCAgLSAxLjUNCj4gICAgID09PT09PT09PT09 PT0gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IA0KPiAgSW5pdGlhbGl6YXRp b24NCj4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvY3J5cHRvZGV2cy9hZXNuaV9tYi5yc3QNCj4g Yi9kb2MvZ3VpZGVzL2NyeXB0b2RldnMvYWVzbmlfbWIucnN0DQo+IGluZGV4IDNjNzdkMGY0NjMu LmMyZjY2MzNlZTYgMTAwNjQ0DQo+IC0tLSBhL2RvYy9ndWlkZXMvY3J5cHRvZGV2cy9hZXNuaV9t Yi5yc3QNCj4gKysrIGIvZG9jL2d1aWRlcy9jcnlwdG9kZXZzL2Flc25pX21iLnJzdA0KPiBAQCAt MTMyLDcgKzEzMiw4IEBAIGFuZCB0aGUgTXVsdGktQnVmZmVyIGxpYnJhcnkgdmVyc2lvbiBzdXBw b3J0ZWQgYnkgdGhlbToNCj4gICAgIERQREsgdmVyc2lvbiAgICBNdWx0aS1idWZmZXIgbGlicmFy eSB2ZXJzaW9uDQo+ICAgICA9PT09PT09PT09PT09PSAgPT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KPiAgICAgMjAuMTEgLSAyMS4wOCAgIDAuNTMgLSAxLjMNCj4gLSAgIDIxLjExKyAgICAg ICAgICAxLjAgIC0gMS41DQo+ICsgICAyMS4xMSAtIDI0LjA3ICAgMS4wICAtIDEuNQ0KPiArICAg MjQuMTErICAgICAgICAgIDEuNCAgLSAxLjUNCj4gICAgID09PT09PT09PT09PT09ICA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQo+IA0KPiAgSW5pdGlhbGl6YXRpb24NCj4gZGlmZiAtLWdp dCBhL2RvYy9ndWlkZXMvY3J5cHRvZGV2cy9jaGFjaGEyMF9wb2x5MTMwNS5yc3QNCj4gYi9kb2Mv Z3VpZGVzL2NyeXB0b2RldnMvY2hhY2hhMjBfcG9seTEzMDUucnN0DQo+IGluZGV4IDQ0Y2ZmODU5 MTguLmI1YTk4MGIyNDcgMTAwNjQ0DQo+IC0tLSBhL2RvYy9ndWlkZXMvY3J5cHRvZGV2cy9jaGFj aGEyMF9wb2x5MTMwNS5yc3QNCj4gKysrIGIvZG9jL2d1aWRlcy9jcnlwdG9kZXZzL2NoYWNoYTIw X3BvbHkxMzA1LnJzdA0KPiBAQCAtNjYsNyArNjYsOCBAQCBhbmQgdGhlIGV4dGVybmFsIGNyeXB0 byBsaWJyYXJpZXMgc3VwcG9ydGVkIGJ5IHRoZW06DQo+ICAgICA9PT09PT09PT09PT09ICA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiAgICAgRFBESyB2ZXJzaW9uICAgQ3J5cHRv IGxpYnJhcnkgdmVyc2lvbg0KPiAgICAgPT09PT09PT09PT09PSAgPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0NCj4gLSAgIDIxLjExKyAgICAgICAgIE11bHRpLWJ1ZmZlciBsaWJyYXJ5 IDEuMC0xLjUNCj4gKyAgIDIxLjExIC0gMjQuMDcgIE11bHRpLWJ1ZmZlciBsaWJyYXJ5IDEuMCAg LSAxLjUNCj4gKyAgIDI0LjExKyAgICAgICAgIE11bHRpLWJ1ZmZlciBsaWJyYXJ5IDEuNCAgLSAx LjUNCj4gICAgID09PT09PT09PT09PT0gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 DQo+IA0KPiAgSW5pdGlhbGl6YXRpb24NCj4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvY3J5cHRv ZGV2cy9rYXN1bWkucnN0DQo+IGIvZG9jL2d1aWRlcy9jcnlwdG9kZXZzL2thc3VtaS5yc3QNCj4g aW5kZXggNDA3MGYwMjVlMS4uYjU3ZjE4YjU2ZiAxMDA2NDQNCj4gLS0tIGEvZG9jL2d1aWRlcy9j cnlwdG9kZXZzL2thc3VtaS5yc3QNCj4gKysrIGIvZG9jL2d1aWRlcy9jcnlwdG9kZXZzL2thc3Vt aS5yc3QNCj4gQEAgLTgwLDcgKzgwLDggQEAgYW5kIHRoZSBleHRlcm5hbCBjcnlwdG8gbGlicmFy aWVzIHN1cHBvcnRlZCBieSB0aGVtOg0KPiAgICAgRFBESyB2ZXJzaW9uICAgQ3J5cHRvIGxpYnJh cnkgdmVyc2lvbg0KPiAgICAgPT09PT09PT09PT09PSAgPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NCj4gICAgIDIwLjAyIC0gMjEuMDggIE11bHRpLWJ1ZmZlciBsaWJyYXJ5IDAuNTMg LSAxLjMNCj4gLSAgIDIxLjExKyAgICAgICAgIE11bHRpLWJ1ZmZlciBsaWJyYXJ5IDEuMCAgLSAx LjUNCj4gKyAgIDIxLjExIC0gMjQuMDcgIE11bHRpLWJ1ZmZlciBsaWJyYXJ5IDEuMCAgLSAxLjUN Cj4gKyAgIDI0LjExKyAgICAgICAgIE11bHRpLWJ1ZmZlciBsaWJyYXJ5IDEuNCAgLSAxLjUNCj4g ICAgID09PT09PT09PT09PT0gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IA0K PiAgSW5pdGlhbGl6YXRpb24NCj4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvY3J5cHRvZGV2cy9z bm93M2cucnN0DQo+IGIvZG9jL2d1aWRlcy9jcnlwdG9kZXZzL3Nub3czZy5yc3QNCj4gaW5kZXgg NmViODIyOWZiNS4uZmI0ZTA0NDhhYyAxMDA2NDQNCj4gLS0tIGEvZG9jL2d1aWRlcy9jcnlwdG9k ZXZzL3Nub3czZy5yc3QNCj4gKysrIGIvZG9jL2d1aWRlcy9jcnlwdG9kZXZzL3Nub3czZy5yc3QN Cj4gQEAgLTg5LDcgKzg5LDggQEAgYW5kIHRoZSBleHRlcm5hbCBjcnlwdG8gbGlicmFyaWVzIHN1 cHBvcnRlZCBieSB0aGVtOg0KPiAgICAgRFBESyB2ZXJzaW9uICAgQ3J5cHRvIGxpYnJhcnkgdmVy c2lvbg0KPiAgICAgPT09PT09PT09PT09PSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCj4gICAgIDIwLjAyIC0gMjEuMDggIE11bHRpLWJ1ZmZlciBsaWJyYXJ5IDAuNTMgLSAxLjMN Cj4gLSAgIDIxLjExKyAgICAgICAgIE11bHRpLWJ1ZmZlciBsaWJyYXJ5IDEuMCAgLSAxLjUNCj4g KyAgIDIxLjExIC0gMjQuMDcgIE11bHRpLWJ1ZmZlciBsaWJyYXJ5IDEuMCAgLSAxLjUNCj4gKyAg IDI0LjExKyAgICAgICAgIE11bHRpLWJ1ZmZlciBsaWJyYXJ5IDEuNCAgLSAxLjUNCj4gICAgID09 PT09PT09PT09PT0gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IA0KPiAgSW5p dGlhbGl6YXRpb24NCj4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvY3J5cHRvZGV2cy96dWMucnN0 IGIvZG9jL2d1aWRlcy9jcnlwdG9kZXZzL3p1Yy5yc3QNCj4gaW5kZXggMjlmZTYyNzlhYS4uNDYx NTU2MjI0NiAxMDA2NDQNCj4gLS0tIGEvZG9jL2d1aWRlcy9jcnlwdG9kZXZzL3p1Yy5yc3QNCj4g KysrIGIvZG9jL2d1aWRlcy9jcnlwdG9kZXZzL3p1Yy5yc3QNCj4gQEAgLTg4LDcgKzg4LDggQEAg YW5kIHRoZSBleHRlcm5hbCBjcnlwdG8gbGlicmFyaWVzIHN1cHBvcnRlZCBieSB0aGVtOg0KPiAg ICAgRFBESyB2ZXJzaW9uICAgQ3J5cHRvIGxpYnJhcnkgdmVyc2lvbg0KPiAgICAgPT09PT09PT09 PT09PSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gICAgIDIwLjAyIC0gMjEu MDggIE11bHRpLWJ1ZmZlciBsaWJyYXJ5IDAuNTMgLSAxLjMNCj4gLSAgIDIxLjExKyAgICAgICAg IE11bHRpLWJ1ZmZlciBsaWJyYXJ5IDEuMCAgLSAxLjUNCj4gKyAgIDIxLjExIC0gMjQuMDcgIE11 bHRpLWJ1ZmZlciBsaWJyYXJ5IDEuMCAgLSAxLjUNCj4gKyAgIDI0LjExKyAgICAgICAgIE11bHRp LWJ1ZmZlciBsaWJyYXJ5IDEuNCAgLSAxLjUNCj4gICAgID09PT09PT09PT09PT0gID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09DQo+IA0KPiAgSW5pdGlhbGl6YXRpb24NCj4gZGlmZiAt LWdpdCBhL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjRfMTEucnN0DQo+IGIvZG9jL2d1 aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yNF8xMS5yc3QNCj4gaW5kZXggZTBhOWFhNTVhMS4uMTFl Yjc4NmZkNCAxMDA2NDQNCj4gLS0tIGEvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yNF8x MS5yc3QNCj4gKysrIGIvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yNF8xMS5yc3QNCj4g QEAgLTY3LDYgKzY3LDEzIEBAIE5ldyBGZWF0dXJlcw0KPiANCj4gICAgVGhlIG5ldyBzdGF0aXN0 aWNzIGFyZSB1c2VmdWwgZm9yIGRlYnVnZ2luZyBhbmQgcHJvZmlsaW5nLg0KPiANCj4gKyogKipV cGRhdGVkIElQc2VjX01CIGNyeXB0byBkcml2ZXIuKioNCj4gKw0KPiArICAqIEluIDI0LjExIExU UyByZWxlYXNlIHRoZSBJbnRlbCBJUHNlYyBNdWx0aS1idWZmZXIgdmVyc2lvbiBpcyBidW1wZWQg dG8gYQ0KPiArICAgIG1pbmltdW0gdmVyc2lvbiBvZiB2MS40LiBUaGlzIHdpbGwgZWZmZWN0IHRo ZSBLQVNVTUksIFNOT1czRywgWlVDLA0KPiArICAgIEFFU05JIEdDTSwgQUVTTkkgTUIgYW5kIENI QUNIQVBPTFkgU1cgUE1Ecy4NCj4gKw0KPiArDQo+IA0KPiAgUmVtb3ZlZCBJdGVtcw0KPiAgLS0t LS0tLS0tLS0tLQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vaXBzZWNfbWIvaXBzZWNf bWJfb3BzLmMNCj4gYi9kcml2ZXJzL2NyeXB0by9pcHNlY19tYi9pcHNlY19tYl9vcHMuYw0KPiBp bmRleCBiYTg5OTYwNGQyLi45MTBlZmIxYTk3IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2NyeXB0 by9pcHNlY19tYi9pcHNlY19tYl9vcHMuYw0KPiArKysgYi9kcml2ZXJzL2NyeXB0by9pcHNlY19t Yi9pcHNlY19tYl9vcHMuYw0KPiBAQCAtMTEsOCArMTEsNiBAQA0KPiANCj4gICNpbmNsdWRlICJp cHNlY19tYl9wcml2YXRlLmgiDQo+IA0KPiAtI2RlZmluZSBJTUJfTVBfUkVRX1ZFUl9TVFIgIjEu MS4wIg0KPiAtDQo+ICAvKiogQ29uZmlndXJlIGRldmljZSAqLw0KPiAgaW50DQo+ICBpcHNlY19t Yl9jb25maWcoX19ydGVfdW51c2VkIHN0cnVjdCBydGVfY3J5cHRvZGV2ICpkZXYsDQo+IEBAIC0x NDcsMTUgKzE0NSwxMCBAQCBpcHNlY19tYl9xcF9yZWxlYXNlKHN0cnVjdCBydGVfY3J5cHRvZGV2 ICpkZXYsDQo+IHVpbnQxNl90IHFwX2lkKQ0KPiAgCWlmIChydGVfZWFsX3Byb2Nlc3NfdHlwZSgp ID09IFJURV9QUk9DX1BSSU1BUlkpIHsNCj4gIAkJcnRlX3JpbmdfZnJlZShydGVfcmluZ19sb29r dXAocXAtPm5hbWUpKTsNCj4gDQo+IC0jaWYgSU1CX1ZFUlNJT04oMSwgMSwgMCkgPiBJTUJfVkVS U0lPTl9OVU0NCj4gLQkJaWYgKHFwLT5tYl9tZ3IpDQo+IC0JCQlmcmVlX21iX21ncihxcC0+bWJf bWdyKTsNCj4gLSNlbHNlDQo+ICAJCWlmIChxcC0+bWJfbWdyX216KSB7DQo+ICAJCQlydGVfbWVt em9uZV9mcmVlKHFwLT5tYl9tZ3JfbXopOw0KPiAgCQkJcXAtPm1iX21nciA9IE5VTEw7DQo+ICAJ CX0NCj4gLSNlbmRpZg0KPiAgCQlydGVfZnJlZShxcCk7DQo+ICAJCWRldi0+ZGF0YS0+cXVldWVf cGFpcnNbcXBfaWRdID0gTlVMTDsNCj4gIAl9IGVsc2UgeyAvKiBzZWNvbmRhcnkgcHJvY2VzcyAq Lw0KPiBAQCAtMjExLDcgKzIwNCw2IEBAIHN0YXRpYyBzdHJ1Y3QgcnRlX3JpbmcNCj4gIAkJCSAg ICAgICBSSU5HX0ZfU1BfRU5RIHwgUklOR19GX1NDX0RFUSk7DQo+ICB9DQo+IA0KPiAtI2lmIElN Ql9WRVJTSU9OKDEsIDEsIDApIDw9IElNQl9WRVJTSU9OX05VTQ0KPiAgc3RhdGljIElNQl9NR1Ig Kg0KPiAgaXBzZWNfbWJfYWxsb2NfbWdyX2Zyb21fbWVtem9uZShjb25zdCBzdHJ1Y3QgcnRlX21l bXpvbmUgKiptYl9tZ3JfbXosDQo+ICAJCWNvbnN0IGNoYXIgKm1iX21ncl9tel9uYW1lKQ0KPiBA QCAtMjQ0LDcgKzIzNiw2IEBAIGlwc2VjX21iX2FsbG9jX21ncl9mcm9tX21lbXpvbmUoY29uc3Qg c3RydWN0DQo+IHJ0ZV9tZW16b25lICoqbWJfbWdyX216LA0KPiAgCX0NCj4gIAlyZXR1cm4gbWJf bWdyOw0KPiAgfQ0KPiAtI2VuZGlmDQo+IA0KPiAgLyoqIFNldHVwIGEgcXVldWUgcGFpciAqLw0K PiAgaW50DQo+IEBAIC0yNjAsMTIgKzI1MSw2IEBAIGlwc2VjX21iX3FwX3NldHVwKHN0cnVjdCBy dGVfY3J5cHRvZGV2ICpkZXYsDQo+IHVpbnQxNl90IHFwX2lkLA0KPiAgCWludCByZXQ7DQo+IA0K PiAgCWlmIChydGVfZWFsX3Byb2Nlc3NfdHlwZSgpID09IFJURV9QUk9DX1NFQ09OREFSWSkgew0K PiAtI2lmIElNQl9WRVJTSU9OKDEsIDEsIDApID4gSU1CX1ZFUlNJT05fTlVNDQo+IC0JCUlQU0VD X01CX0xPRyhFUlIsICJUaGUgaW50ZWwtaXBzZWMtbWIgdmVyc2lvbiAoJXMpIGRvZXMgbm90DQo+ IHN1cHBvcnQgbXVsdGlwcm9jZXNzLCINCj4gLQkJCQkidGhlIG1pbmltdW0gdmVyc2lvbiByZXF1 aXJlZCBmb3IgdGhpcyBmZWF0dXJlDQo+IGlzICVzLiIsDQo+IC0JCQkJSU1CX1ZFUlNJT05fU1RS LCBJTUJfTVBfUkVRX1ZFUl9TVFIpOw0KPiAtCQlyZXR1cm4gLUVJTlZBTDsNCj4gLSNlbmRpZg0K PiAgCQlxcCA9IGRldi0+ZGF0YS0+cXVldWVfcGFpcnNbcXBfaWRdOw0KPiAgCQlpZiAocXAgPT0g TlVMTCkgew0KPiAgCQkJSVBTRUNfTUJfTE9HKERFQlVHLCAiU2Vjb25kYXJ5IHByb2Nlc3Mgc2V0 dGluZyB1cA0KPiBkZXZpY2UgcXAuIik7DQo+IEBAIC0yODUsMTUgKzI3MCwxMSBAQCBpcHNlY19t Yl9xcF9zZXR1cChzdHJ1Y3QgcnRlX2NyeXB0b2RldiAqZGV2LA0KPiB1aW50MTZfdCBxcF9pZCwN Cj4gIAkJCXJldHVybiAtRU5PTUVNOw0KPiAgCX0NCj4gDQo+IC0jaWYgSU1CX1ZFUlNJT04oMSwg MSwgMCkgPiBJTUJfVkVSU0lPTl9OVU0NCj4gLQlxcC0+bWJfbWdyID0gYWxsb2NfaW5pdF9tYl9t Z3IoKTsNCj4gLSNlbHNlDQo+ICAJY2hhciBtel9uYW1lW0lQU0VDX01CX01BWF9NWl9OQU1FXTsN Cj4gIAlzbnByaW50Zihtel9uYW1lLCBzaXplb2YobXpfbmFtZSksICJJTUJfTUdSX0RFVl8lZF9R UF8lZCIsDQo+ICAJCQlkZXYtPmRhdGEtPmRldl9pZCwgcXBfaWQpOw0KPiAgCXFwLT5tYl9tZ3Ig PSBpcHNlY19tYl9hbGxvY19tZ3JfZnJvbV9tZW16b25lKCYocXAtDQo+ID5tYl9tZ3JfbXopLA0K PiAgCQkJbXpfbmFtZSk7DQo+IC0jZW5kaWYNCj4gIAlpZiAocXAtPm1iX21nciA9PSBOVUxMKSB7 DQo+ICAJCXJldCA9IC1FTk9NRU07DQo+ICAJCWdvdG8gcXBfc2V0dXBfY2xlYW51cDsNCj4gQEAg LTMzMCwxNCArMzExLDkgQEAgaXBzZWNfbWJfcXBfc2V0dXAoc3RydWN0IHJ0ZV9jcnlwdG9kZXYg KmRldiwNCj4gdWludDE2X3QgcXBfaWQsDQo+ICAJcmV0dXJuIDA7DQo+IA0KPiAgcXBfc2V0dXBf Y2xlYW51cDoNCj4gLSNpZiBJTUJfVkVSU0lPTigxLCAxLCAwKSA+IElNQl9WRVJTSU9OX05VTQ0K PiAtCWlmIChxcC0+bWJfbWdyKQ0KPiAtCQlmcmVlX21iX21ncihxcC0+bWJfbWdyKTsNCj4gLSNl bHNlDQo+ICAJaWYgKHJ0ZV9lYWxfcHJvY2Vzc190eXBlKCkgPT0gUlRFX1BST0NfU0VDT05EQVJZ KQ0KPiAgCQlyZXR1cm4gcmV0Ow0KPiAgCXJ0ZV9tZW16b25lX2ZyZWUocXAtPm1iX21ncl9teik7 DQo+IC0jZW5kaWYNCj4gIAlydGVfZnJlZShxcCk7DQo+ICAJcmV0dXJuIHJldDsNCj4gIH0NCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL2lwc2VjX21iL21lc29uLmJ1aWxkDQo+IGIvZHJp dmVycy9jcnlwdG8vaXBzZWNfbWIvbWVzb24uYnVpbGQNCj4gaW5kZXggODdiZjk2NTU1NC4uMGM5 ODhkNzQxMSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9jcnlwdG8vaXBzZWNfbWIvbWVzb24uYnVp bGQNCj4gKysrIGIvZHJpdmVycy9jcnlwdG8vaXBzZWNfbWIvbWVzb24uYnVpbGQNCj4gQEAgLTcs NyArNyw3IEBAIGlmIGlzX3dpbmRvd3MNCj4gICAgICBzdWJkaXJfZG9uZSgpDQo+ICBlbmRpZg0K PiANCj4gLUlNQl9yZXF1aXJlZF92ZXIgPSAnMS4wLjAnDQo+ICtJTUJfcmVxdWlyZWRfdmVyID0g JzEuNC4wJw0KPiAgSU1CX2hlYWRlciA9ICcjaW5jbHVkZTxpbnRlbC1pcHNlYy1tYi5oPicNCj4g IGlmIGFyY2hfc3ViZGlyID09ICdhcm0nDQo+ICAgICAgSU1CX2hlYWRlciA9ICcjaW5jbHVkZTxp cHNlYy1tYi5oPicNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL2lwc2VjX21iL3BtZF9h ZXNuaV9tYi5jDQo+IGIvZHJpdmVycy9jcnlwdG8vaXBzZWNfbWIvcG1kX2Flc25pX21iLmMNCj4g aW5kZXggZjM2MzMwOTFhOS4uYjhmMTAzNDk2ZiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9jcnlw dG8vaXBzZWNfbWIvcG1kX2Flc25pX21iLmMNCj4gKysrIGIvZHJpdmVycy9jcnlwdG8vaXBzZWNf bWIvcG1kX2Flc25pX21iLmMNCj4gQEAgLTE1LDUxICsxNSw2IEBAIHN0cnVjdCBhZXNuaV9tYl9v cF9idWZfZGF0YSB7DQo+ICAJdWludDMyX3Qgb2Zmc2V0Ow0KPiAgfTsNCj4gDQo+IC0jaWYgSU1C X1ZFUlNJT04oMSwgMywgMCkgPj0gSU1CX1ZFUlNJT05fTlVNDQo+IC0vKioNCj4gLSAqIENhbGN1 bGF0ZSB0aGUgYXV0aGVudGljYXRpb24gcHJlLWNvbXB1dGVzDQo+IC0gKg0KPiAtICogQHBhcmFt IG9uZV9ibG9ja19oYXNoCUZ1bmN0aW9uIHBvaW50ZXINCj4gLSAqCQkJCXRvIGNhbGN1bGF0ZSBk aWdlc3Qgb24gaXBhZC9vcGFkDQo+IC0gKiBAcGFyYW0gaXBhZAkJCUlubmVyIHBhZCBvdXRwdXQg Ynl0ZSBhcnJheQ0KPiAtICogQHBhcmFtIG9wYWQJCQlPdXRlciBwYWQgb3V0cHV0IGJ5dGUgYXJy YXkNCj4gLSAqIEBwYXJhbSBoa2V5CQkJQXV0aGVudGljYXRpb24ga2V5DQo+IC0gKiBAcGFyYW0g aGtleV9sZW4JCUF1dGhlbnRpY2F0aW9uIGtleSBsZW5ndGgNCj4gLSAqIEBwYXJhbSBibG9ja3Np emUJCUJsb2NrIHNpemUgb2Ygc2VsZWN0ZWQgaGFzaCBhbGdvDQo+IC0gKi8NCj4gLXN0YXRpYyB2 b2lkDQo+IC1jYWxjdWxhdGVfYXV0aF9wcmVjb21wdXRlcyhoYXNoX29uZV9ibG9ja190IG9uZV9i bG9ja19oYXNoLA0KPiAtCQl1aW50OF90ICppcGFkLCB1aW50OF90ICpvcGFkLA0KPiAtCQljb25z dCB1aW50OF90ICpoa2V5LCB1aW50MTZfdCBoa2V5X2xlbiwNCj4gLQkJdWludDE2X3QgYmxvY2tz aXplKQ0KPiAtew0KPiAtCXVpbnQzMl90IGksIGxlbmd0aDsNCj4gLQ0KPiAtCWFsaWduYXMoMTYp IHVpbnQ4X3QgaXBhZF9idWZbYmxvY2tzaXplXTsNCj4gLQlhbGlnbmFzKDE2KSB1aW50OF90IG9w YWRfYnVmW2Jsb2Nrc2l6ZV07DQo+IC0NCj4gLQkvKiBTZXR1cCBpbm5lciBhbmQgb3V0ZXIgcGFk cyAqLw0KPiAtCW1lbXNldChpcGFkX2J1ZiwgSE1BQ19JUEFEX1ZBTFVFLCBibG9ja3NpemUpOw0K PiAtCW1lbXNldChvcGFkX2J1ZiwgSE1BQ19PUEFEX1ZBTFVFLCBibG9ja3NpemUpOw0KPiAtDQo+ IC0JLyogWE9SIGhhc2gga2V5IHdpdGggaW5uZXIgYW5kIG91dGVyIHBhZHMgKi8NCj4gLQlsZW5n dGggPSBoa2V5X2xlbiA+IGJsb2Nrc2l6ZSA/IGJsb2Nrc2l6ZSA6IGhrZXlfbGVuOw0KPiAtDQo+ IC0JZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7DQo+IC0JCWlwYWRfYnVmW2ldIF49IGhr ZXlbaV07DQo+IC0JCW9wYWRfYnVmW2ldIF49IGhrZXlbaV07DQo+IC0JfQ0KPiAtDQo+IC0JLyog Q29tcHV0ZSBwYXJ0aWFsIGhhc2hlcyAqLw0KPiAtCSgqb25lX2Jsb2NrX2hhc2gpKGlwYWRfYnVm LCBpcGFkKTsNCj4gLQkoKm9uZV9ibG9ja19oYXNoKShvcGFkX2J1Ziwgb3BhZCk7DQo+IC0NCj4g LQkvKiBDbGVhbiB1cCBzdGFjayAqLw0KPiAtCW1lbXNldChpcGFkX2J1ZiwgMCwgYmxvY2tzaXpl KTsNCj4gLQltZW1zZXQob3BhZF9idWYsIDAsIGJsb2Nrc2l6ZSk7DQo+IC19DQo+IC0jZW5kaWYN Cj4gLQ0KPiAgc3RhdGljIGlubGluZSBpbnQNCj4gIGlzX2FlYWRfYWxnbyhJTUJfSEFTSF9BTEcg aGFzaF9hbGcsIElNQl9DSVBIRVJfTU9ERSBjaXBoZXJfbW9kZSkNCj4gIHsNCj4gQEAgLTc0LDEw ICsyOSw2IEBAIGFlc25pX21iX3NldF9zZXNzaW9uX2F1dGhfcGFyYW1ldGVycyhJTUJfTUdSDQo+ ICptYl9tZ3IsDQo+ICAJCXN0cnVjdCBhZXNuaV9tYl9zZXNzaW9uICpzZXNzLA0KPiAgCQljb25z dCBzdHJ1Y3QgcnRlX2NyeXB0b19zeW1feGZvcm0gKnhmb3JtKQ0KPiAgew0KPiAtI2lmIElNQl9W RVJTSU9OKDEsIDMsIDApID49IElNQl9WRVJTSU9OX05VTQ0KPiAtCWhhc2hfb25lX2Jsb2NrX3Qg aGFzaF9vbmVibG9ja19mbiA9IE5VTEw7DQo+IC0JdW5zaWduZWQgaW50IGtleV9sYXJnZXJfYmxv Y2tfc2l6ZSA9IDA7DQo+IC0jZW5kaWYNCj4gIAl1aW50OF90IGhhc2hlZF9rZXlbSE1BQ19NQVhf QkxPQ0tfU0laRV0gPSB7IDAgfTsNCj4gIAl1aW50MzJfdCBhdXRoX3ByZWNvbXB1dGUgPSAxOw0K PiANCj4gQEAgLTIxNiwxMyArMTY3LDkgQEAgYWVzbmlfbWJfc2V0X3Nlc3Npb25fYXV0aF9wYXJh bWV0ZXJzKElNQl9NR1INCj4gKm1iX21nciwNCj4gIAkJCX0NCj4gIAkJfSBlbHNlIGlmICh4Zm9y bS0+YXV0aC5rZXkubGVuZ3RoID09IDMyKSB7DQo+ICAJCQlzZXNzLT50ZW1wbGF0ZV9qb2IuaGFz aF9hbGcgPQ0KPiBJTUJfQVVUSF9aVUMyNTZfRUlBM19CSVRMRU47DQo+IC0jaWYgSU1CX1ZFUlNJ T04oMSwgMiwgMCkgPCBJTUJfVkVSU0lPTl9OVU0NCj4gIAkJCWlmIChzZXNzLT5hdXRoLnJlcV9k aWdlc3RfbGVuICE9IDQgJiYNCj4gIAkJCQkJc2Vzcy0+YXV0aC5yZXFfZGlnZXN0X2xlbiAhPSA4 ICYmDQo+ICAJCQkJCXNlc3MtPmF1dGgucmVxX2RpZ2VzdF9sZW4gIT0gMTYpIHsNCj4gLSNlbHNl DQo+IC0JCQlpZiAoc2Vzcy0+YXV0aC5yZXFfZGlnZXN0X2xlbiAhPSA0KSB7DQo+IC0jZW5kaWYN Cj4gIAkJCQlJUFNFQ19NQl9MT0coRVJSLCAiSW52YWxpZCBkaWdlc3Qgc2l6ZSIpOw0KPiAgCQkJ CXJldHVybiAtRUlOVkFMOw0KPiAgCQkJfQ0KPiBAQCAtMjczLDI0ICsyMjAsMTUgQEAgYWVzbmlf bWJfc2V0X3Nlc3Npb25fYXV0aF9wYXJhbWV0ZXJzKElNQl9NR1INCj4gKm1iX21nciwNCj4gIAlz d2l0Y2ggKHhmb3JtLT5hdXRoLmFsZ28pIHsNCj4gIAljYXNlIFJURV9DUllQVE9fQVVUSF9NRDVf SE1BQzoNCj4gIAkJc2Vzcy0+dGVtcGxhdGVfam9iLmhhc2hfYWxnID0gSU1CX0FVVEhfTUQ1Ow0K PiAtI2lmIElNQl9WRVJTSU9OKDEsIDMsIDApID49IElNQl9WRVJTSU9OX05VTQ0KPiAtCQloYXNo X29uZWJsb2NrX2ZuID0gbWJfbWdyLT5tZDVfb25lX2Jsb2NrOw0KPiAtI2VuZGlmDQo+ICAJCWJy ZWFrOw0KPiAgCWNhc2UgUlRFX0NSWVBUT19BVVRIX1NIQTFfSE1BQzoNCj4gIAkJc2Vzcy0+dGVt cGxhdGVfam9iLmhhc2hfYWxnID0gSU1CX0FVVEhfSE1BQ19TSEFfMTsNCj4gLSNpZiBJTUJfVkVS U0lPTigxLCAzLCAwKSA+PSBJTUJfVkVSU0lPTl9OVU0NCj4gLQkJaGFzaF9vbmVibG9ja19mbiA9 IG1iX21nci0+c2hhMV9vbmVfYmxvY2s7DQo+IC0jZW5kaWYNCj4gIAkJaWYgKHhmb3JtLT5hdXRo LmtleS5sZW5ndGggPiBnZXRfYXV0aF9hbGdvX2Jsb2Nrc2l6ZSgNCj4gIAkJCQlJTUJfQVVUSF9I TUFDX1NIQV8xKSkgew0KPiAgCQkJSU1CX1NIQTEobWJfbWdyLA0KPiAgCQkJCXhmb3JtLT5hdXRo LmtleS5kYXRhLA0KPiAgCQkJCXhmb3JtLT5hdXRoLmtleS5sZW5ndGgsDQo+ICAJCQkJaGFzaGVk X2tleSk7DQo+IC0jaWYgSU1CX1ZFUlNJT04oMSwgMywgMCkgPj0gSU1CX1ZFUlNJT05fTlVNDQo+ IC0JCQlrZXlfbGFyZ2VyX2Jsb2NrX3NpemUgPSAxOw0KPiAtI2VuZGlmDQo+ICAJCX0NCj4gIAkJ YnJlYWs7DQo+ICAJY2FzZSBSVEVfQ1JZUFRPX0FVVEhfU0hBMToNCj4gQEAgLTI5OSwxOCArMjM3 LDEyIEBAIGFlc25pX21iX3NldF9zZXNzaW9uX2F1dGhfcGFyYW1ldGVycyhJTUJfTUdSDQo+ICpt Yl9tZ3IsDQo+ICAJCWJyZWFrOw0KPiAgCWNhc2UgUlRFX0NSWVBUT19BVVRIX1NIQTIyNF9ITUFD Og0KPiAgCQlzZXNzLT50ZW1wbGF0ZV9qb2IuaGFzaF9hbGcgPSBJTUJfQVVUSF9ITUFDX1NIQV8y MjQ7DQo+IC0jaWYgSU1CX1ZFUlNJT04oMSwgMywgMCkgPj0gSU1CX1ZFUlNJT05fTlVNDQo+IC0J CWhhc2hfb25lYmxvY2tfZm4gPSBtYl9tZ3ItPnNoYTIyNF9vbmVfYmxvY2s7DQo+IC0jZW5kaWYN Cj4gIAkJaWYgKHhmb3JtLT5hdXRoLmtleS5sZW5ndGggPiBnZXRfYXV0aF9hbGdvX2Jsb2Nrc2l6 ZSgNCj4gIAkJCQlJTUJfQVVUSF9ITUFDX1NIQV8yMjQpKSB7DQo+ICAJCQlJTUJfU0hBMjI0KG1i X21nciwNCj4gIAkJCQl4Zm9ybS0+YXV0aC5rZXkuZGF0YSwNCj4gIAkJCQl4Zm9ybS0+YXV0aC5r ZXkubGVuZ3RoLA0KPiAgCQkJCWhhc2hlZF9rZXkpOw0KPiAtI2lmIElNQl9WRVJTSU9OKDEsIDMs IDApID49IElNQl9WRVJTSU9OX05VTQ0KPiAtCQkJa2V5X2xhcmdlcl9ibG9ja19zaXplID0gMTsN Cj4gLSNlbmRpZg0KPiAgCQl9DQo+ICAJCWJyZWFrOw0KPiAgCWNhc2UgUlRFX0NSWVBUT19BVVRI X1NIQTIyNDoNCj4gQEAgLTMxOSwxOCArMjUxLDEyIEBAIGFlc25pX21iX3NldF9zZXNzaW9uX2F1 dGhfcGFyYW1ldGVycyhJTUJfTUdSDQo+ICptYl9tZ3IsDQo+ICAJCWJyZWFrOw0KPiAgCWNhc2Ug UlRFX0NSWVBUT19BVVRIX1NIQTI1Nl9ITUFDOg0KPiAgCQlzZXNzLT50ZW1wbGF0ZV9qb2IuaGFz aF9hbGcgPSBJTUJfQVVUSF9ITUFDX1NIQV8yNTY7DQo+IC0jaWYgSU1CX1ZFUlNJT04oMSwgMywg MCkgPj0gSU1CX1ZFUlNJT05fTlVNDQo+IC0JCWhhc2hfb25lYmxvY2tfZm4gPSBtYl9tZ3ItPnNo YTI1Nl9vbmVfYmxvY2s7DQo+IC0jZW5kaWYNCj4gIAkJaWYgKHhmb3JtLT5hdXRoLmtleS5sZW5n dGggPiBnZXRfYXV0aF9hbGdvX2Jsb2Nrc2l6ZSgNCj4gIAkJCQlJTUJfQVVUSF9ITUFDX1NIQV8y NTYpKSB7DQo+ICAJCQlJTUJfU0hBMjU2KG1iX21nciwNCj4gIAkJCQl4Zm9ybS0+YXV0aC5rZXku ZGF0YSwNCj4gIAkJCQl4Zm9ybS0+YXV0aC5rZXkubGVuZ3RoLA0KPiAgCQkJCWhhc2hlZF9rZXkp Ow0KPiAtI2lmIElNQl9WRVJTSU9OKDEsIDMsIDApID49IElNQl9WRVJTSU9OX05VTQ0KPiAtCQkJ a2V5X2xhcmdlcl9ibG9ja19zaXplID0gMTsNCj4gLSNlbmRpZg0KPiAgCQl9DQo+ICAJCWJyZWFr Ow0KPiAgCWNhc2UgUlRFX0NSWVBUT19BVVRIX1NIQTI1NjoNCj4gQEAgLTMzOSwxOCArMjY1LDEy IEBAIGFlc25pX21iX3NldF9zZXNzaW9uX2F1dGhfcGFyYW1ldGVycyhJTUJfTUdSDQo+ICptYl9t Z3IsDQo+ICAJCWJyZWFrOw0KPiAgCWNhc2UgUlRFX0NSWVBUT19BVVRIX1NIQTM4NF9ITUFDOg0K PiAgCQlzZXNzLT50ZW1wbGF0ZV9qb2IuaGFzaF9hbGcgPSBJTUJfQVVUSF9ITUFDX1NIQV8zODQ7 DQo+IC0jaWYgSU1CX1ZFUlNJT04oMSwgMywgMCkgPj0gSU1CX1ZFUlNJT05fTlVNDQo+IC0JCWhh c2hfb25lYmxvY2tfZm4gPSBtYl9tZ3ItPnNoYTM4NF9vbmVfYmxvY2s7DQo+IC0jZW5kaWYNCj4g IAkJaWYgKHhmb3JtLT5hdXRoLmtleS5sZW5ndGggPiBnZXRfYXV0aF9hbGdvX2Jsb2Nrc2l6ZSgN Cj4gIAkJCQlJTUJfQVVUSF9ITUFDX1NIQV8zODQpKSB7DQo+ICAJCQlJTUJfU0hBMzg0KG1iX21n ciwNCj4gIAkJCQl4Zm9ybS0+YXV0aC5rZXkuZGF0YSwNCj4gIAkJCQl4Zm9ybS0+YXV0aC5rZXku bGVuZ3RoLA0KPiAgCQkJCWhhc2hlZF9rZXkpOw0KPiAtI2lmIElNQl9WRVJTSU9OKDEsIDMsIDAp ID49IElNQl9WRVJTSU9OX05VTQ0KPiAtCQkJa2V5X2xhcmdlcl9ibG9ja19zaXplID0gMTsNCj4g LSNlbmRpZg0KPiAgCQl9DQo+ICAJCWJyZWFrOw0KPiAgCWNhc2UgUlRFX0NSWVBUT19BVVRIX1NI QTM4NDoNCj4gQEAgLTM1OSwxOCArMjc5LDEyIEBAIGFlc25pX21iX3NldF9zZXNzaW9uX2F1dGhf cGFyYW1ldGVycyhJTUJfTUdSDQo+ICptYl9tZ3IsDQo+ICAJCWJyZWFrOw0KPiAgCWNhc2UgUlRF X0NSWVBUT19BVVRIX1NIQTUxMl9ITUFDOg0KPiAgCQlzZXNzLT50ZW1wbGF0ZV9qb2IuaGFzaF9h bGcgPSBJTUJfQVVUSF9ITUFDX1NIQV81MTI7DQo+IC0jaWYgSU1CX1ZFUlNJT04oMSwgMywgMCkg Pj0gSU1CX1ZFUlNJT05fTlVNDQo+IC0JCWhhc2hfb25lYmxvY2tfZm4gPSBtYl9tZ3ItPnNoYTUx Ml9vbmVfYmxvY2s7DQo+IC0jZW5kaWYNCj4gIAkJaWYgKHhmb3JtLT5hdXRoLmtleS5sZW5ndGgg PiBnZXRfYXV0aF9hbGdvX2Jsb2Nrc2l6ZSgNCj4gIAkJCQlJTUJfQVVUSF9ITUFDX1NIQV81MTIp KSB7DQo+ICAJCQlJTUJfU0hBNTEyKG1iX21nciwNCj4gIAkJCQl4Zm9ybS0+YXV0aC5rZXkuZGF0 YSwNCj4gIAkJCQl4Zm9ybS0+YXV0aC5rZXkubGVuZ3RoLA0KPiAgCQkJCWhhc2hlZF9rZXkpOw0K PiAtI2lmIElNQl9WRVJTSU9OKDEsIDMsIDApID49IElNQl9WRVJTSU9OX05VTQ0KPiAtCQkJa2V5 X2xhcmdlcl9ibG9ja19zaXplID0gMTsNCj4gLSNlbmRpZg0KPiAgCQl9DQo+ICAJCWJyZWFrOw0K PiAgCWNhc2UgUlRFX0NSWVBUT19BVVRIX1NIQTUxMjoNCj4gQEAgLTQwNCwyNSArMzE4LDkgQEAg YWVzbmlfbWJfc2V0X3Nlc3Npb25fYXV0aF9wYXJhbWV0ZXJzKElNQl9NR1INCj4gKm1iX21nciwN Cj4gIAkJcmV0dXJuIDA7DQo+IA0KPiAgCS8qIENhbGN1bGF0ZSBBdXRoZW50aWNhdGlvbiBwcmVj b21wdXRlcyAqLw0KPiAtI2lmIElNQl9WRVJTSU9OKDEsIDMsIDApIDwgSU1CX1ZFUlNJT05fTlVN DQo+IC0JCWltYl9obWFjX2lwYWRfb3BhZChtYl9tZ3IsIHNlc3MtPnRlbXBsYXRlX2pvYi5oYXNo X2FsZywNCj4gLQkJCQkJeGZvcm0tPmF1dGgua2V5LmRhdGEsIHhmb3JtLQ0KPiA+YXV0aC5rZXku bGVuZ3RoLA0KPiAtCQkJCQlzZXNzLT5hdXRoLnBhZHMuaW5uZXIsIHNlc3MtDQo+ID5hdXRoLnBh ZHMub3V0ZXIpOw0KPiAtI2Vsc2UNCj4gLQlpZiAoa2V5X2xhcmdlcl9ibG9ja19zaXplKSB7DQo+ IC0JCWNhbGN1bGF0ZV9hdXRoX3ByZWNvbXB1dGVzKGhhc2hfb25lYmxvY2tfZm4sDQo+IC0JCQlz ZXNzLT5hdXRoLnBhZHMuaW5uZXIsIHNlc3MtPmF1dGgucGFkcy5vdXRlciwNCj4gLQkJCWhhc2hl ZF9rZXksDQo+IC0JCQl4Zm9ybS0+YXV0aC5rZXkubGVuZ3RoLA0KPiAtCQkJZ2V0X2F1dGhfYWxn b19ibG9ja3NpemUoc2Vzcy0+dGVtcGxhdGVfam9iLmhhc2hfYWxnKSk7DQo+IC0JfSBlbHNlIHsN Cj4gLQkJY2FsY3VsYXRlX2F1dGhfcHJlY29tcHV0ZXMoaGFzaF9vbmVibG9ja19mbiwNCj4gLQkJ CXNlc3MtPmF1dGgucGFkcy5pbm5lciwgc2Vzcy0+YXV0aC5wYWRzLm91dGVyLA0KPiAtCQkJeGZv cm0tPmF1dGgua2V5LmRhdGEsDQo+IC0JCQl4Zm9ybS0+YXV0aC5rZXkubGVuZ3RoLA0KPiAtCQkJ Z2V0X2F1dGhfYWxnb19ibG9ja3NpemUoc2Vzcy0+dGVtcGxhdGVfam9iLmhhc2hfYWxnKSk7DQo+ IC0JfQ0KPiAtI2VuZGlmDQo+ICsJaW1iX2htYWNfaXBhZF9vcGFkKG1iX21nciwgc2Vzcy0+dGVt cGxhdGVfam9iLmhhc2hfYWxnLA0KPiArCQkJCXhmb3JtLT5hdXRoLmtleS5kYXRhLCB4Zm9ybS0+ YXV0aC5rZXkubGVuZ3RoLA0KPiArCQkJCXNlc3MtPmF1dGgucGFkcy5pbm5lciwgc2Vzcy0+YXV0 aC5wYWRzLm91dGVyKTsNCj4gIAlzZXNzLT50ZW1wbGF0ZV9qb2IudS5ITUFDLl9oYXNoZWRfYXV0 aF9rZXlfeG9yX2lwYWQgPQ0KPiAgCQlzZXNzLT5hdXRoLnBhZHMuaW5uZXI7DQo+ICAJc2Vzcy0+ dGVtcGxhdGVfam9iLnUuSE1BQy5faGFzaGVkX2F1dGhfa2V5X3hvcl9vcGFkID0NCj4gQEAgLTg3 OSwxMSArNzc3LDkgQEAgYWVzbmlfbWJfc2Vzc2lvbl9jb25maWd1cmUoSU1CX01HUiAqbWJfbWdy LA0KPiAgCQl9DQo+ICAJfQ0KPiANCj4gLSNpZiBJTUJfVkVSU0lPTigxLCAzLCAwKSA8IElNQl9W RVJTSU9OX05VTQ0KPiAgCXNlc3MtPnNlc3Npb25faWQgPSBpbWJfc2V0X3Nlc3Npb24obWJfbWdy LCAmc2Vzcy0+dGVtcGxhdGVfam9iKTsNCj4gIAlzZXNzLT5waWQgPSBnZXRwaWQoKTsNCj4gIAlS VEVfUEVSX0xDT1JFKHBpZCkgPSBzZXNzLT5waWQ7DQo+IC0jZW5kaWYNCj4gDQo+ICAJcmV0dXJu IDA7DQo+ICB9DQo+IEBAIC0xMDE2LDkgKzkxMiw3IEBAIGFlc25pX21iX3NldF9kb2NzaXNfc2Vj X3Nlc3Npb25fcGFyYW1ldGVycygNCj4gIAkJZ290byBlcnJvcl9leGl0Ow0KPiAgCX0NCj4gDQo+ IC0jaWYgSU1CX1ZFUlNJT04oMSwgMywgMCkgPCBJTUJfVkVSU0lPTl9OVU0NCj4gIAlpcHNlY19z ZXNzLT5zZXNzaW9uX2lkID0gaW1iX3NldF9zZXNzaW9uKG1iX21nciwgJmlwc2VjX3Nlc3MtDQo+ ID50ZW1wbGF0ZV9qb2IpOw0KPiAtI2VuZGlmDQo+IA0KPiAgZXJyb3JfZXhpdDoNCj4gIAlmcmVl X21iX21ncihtYl9tZ3IpOw0KPiBAQCAtMTI3Myw3ICsxMTY3LDYgQEAgaW1iX2xpYl9zdXBwb3J0 X3NnbF9hbGdvKElNQl9DSVBIRVJfTU9ERSBhbGcpDQo+ICAJcmV0dXJuIDA7DQo+ICB9DQo+IA0K PiAtI2lmIElNQl9WRVJTSU9OKDEsIDIsIDApIDwgSU1CX1ZFUlNJT05fTlVNDQo+ICBzdGF0aWMg aW5saW5lIGludA0KPiAgc2luZ2xlX3NnbF9qb2IoSU1CX0pPQiAqam9iLCBzdHJ1Y3QgcnRlX2Ny eXB0b19vcCAqb3AsDQo+ICAJCWludCBvb3AsIHVpbnQzMl90IG9mZnNldCwgc3RydWN0IHJ0ZV9t YnVmICptX3NyYywNCj4gQEAgLTEzNTgsNyArMTI1MSw2IEBAIHNpbmdsZV9zZ2xfam9iKElNQl9K T0IgKmpvYiwgc3RydWN0IHJ0ZV9jcnlwdG9fb3ANCj4gKm9wLA0KPiAgCWpvYi0+c2dsX2lvX3Nl Z3MgPSBzZ2xfc2VnczsNCj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4gLSNlbmRpZg0KPiANCj4gIHN0 YXRpYyBpbmxpbmUgaW50DQo+ICBtdWx0aV9zZ2xfam9iKElNQl9KT0IgKmpvYiwgc3RydWN0IHJ0 ZV9jcnlwdG9fb3AgKm9wLA0KPiBAQCAtMTQyOCw5ICsxMzIwLDcgQEAgc2V0X2djbV9qb2IoSU1C X01HUiAqbWJfbWdyLCBJTUJfSk9CICpqb2IsDQo+IGNvbnN0IHVpbnQ4X3Qgc2dsLA0KPiAgCQlq b2ItPm1zZ19sZW5fdG9faGFzaF9pbl9ieXRlcyA9IDA7DQo+ICAJCWpvYi0+bXNnX2xlbl90b19j aXBoZXJfaW5fYnl0ZXMgPSAwOw0KPiAgCQlqb2ItPmNpcGhlcl9zdGFydF9zcmNfb2Zmc2V0X2lu X2J5dGVzID0gMDsNCj4gLSNpZiBJTUJfVkVSU0lPTigxLCAzLCAwKSA8IElNQl9WRVJTSU9OX05V TQ0KPiAgCQlpbWJfc2V0X3Nlc3Npb24obWJfbWdyLCBqb2IpOw0KPiAtI2VuZGlmDQo+ICAJfSBl bHNlIHsNCj4gIAkJam9iLT5oYXNoX3N0YXJ0X3NyY19vZmZzZXRfaW5fYnl0ZXMgPQ0KPiAgCQkJ CW9wLT5zeW0tPmFlYWQuZGF0YS5vZmZzZXQ7DQo+IEBAIC0xNDU4LDEzICsxMzQ4LDExIEBAIHNl dF9nY21fam9iKElNQl9NR1IgKm1iX21nciwgSU1CX0pPQiAqam9iLA0KPiBjb25zdCB1aW50OF90 IHNnbCwNCj4gIAkJam9iLT5zcmMgPSBOVUxMOw0KPiAgCQlqb2ItPmRzdCA9IE5VTEw7DQo+IA0K PiAtI2lmIElNQl9WRVJTSU9OKDEsIDIsIDApIDwgSU1CX1ZFUlNJT05fTlVNDQo+ICAJCWlmICht X3NyYy0+bmJfc2VncyA8PSBNQVhfTlVNX1NFR1MpDQo+ICAJCQlyZXR1cm4gc2luZ2xlX3NnbF9q b2Ioam9iLCBvcCwgb29wLA0KPiAgCQkJCQltX29mZnNldCwgbV9zcmMsIG1fZHN0LA0KPiAgCQkJ CQlxcF9kYXRhLT5zZ2xfc2Vncyk7DQo+ICAJCWVsc2UNCj4gLSNlbmRpZg0KPiAgCQkJcmV0dXJu IG11bHRpX3NnbF9qb2Ioam9iLCBvcCwgb29wLA0KPiAgCQkJCQltX29mZnNldCwgbV9zcmMsIG1f ZHN0LCBtYl9tZ3IpOw0KPiAgCX0gZWxzZSB7DQo+IEBAIC0xNTU0LDEwICsxNDQyLDYgQEAgc2V0 X21iX2pvYl9wYXJhbXMoSU1CX0pPQiAqam9iLCBzdHJ1Y3QNCj4gaXBzZWNfbWJfcXAgKnFwLA0K PiAgCXVpbnQ4X3Qgc2dsID0gMDsNCj4gIAl1aW50OF90IGxiX3NnbCA9IDA7DQo+IA0KPiAtI2lm IElNQl9WRVJTSU9OKDEsIDMsIDApID49IElNQl9WRVJTSU9OX05VTQ0KPiAtCSh2b2lkKSBwaWQ7 DQo+IC0jZW5kaWYNCj4gLQ0KPiAgCXNlc3Npb24gPSBpcHNlY19tYl9nZXRfc2Vzc2lvbl9wcml2 YXRlKHFwLCBvcCk7DQo+ICAJaWYgKHNlc3Npb24gPT0gTlVMTCkgew0KPiAgCQlvcC0+c3RhdHVz ID0gUlRFX0NSWVBUT19PUF9TVEFUVVNfSU5WQUxJRF9TRVNTSU9OOw0KPiBAQCAtMTU2NywxMiAr MTQ1MSwxMCBAQCBzZXRfbWJfam9iX3BhcmFtcyhJTUJfSk9CICpqb2IsIHN0cnVjdA0KPiBpcHNl Y19tYl9xcCAqcXAsDQo+ICAJY29uc3QgSU1CX0NJUEhFUl9NT0RFIGNpcGhlcl9tb2RlID0NCj4g IAkJCXNlc3Npb24tPnRlbXBsYXRlX2pvYi5jaXBoZXJfbW9kZTsNCj4gDQo+IC0jaWYgSU1CX1ZF UlNJT04oMSwgMywgMCkgPCBJTUJfVkVSU0lPTl9OVU0NCj4gIAlpZiAoc2Vzc2lvbi0+cGlkICE9 IHBpZCkgew0KPiAgCQltZW1jcHkoam9iLCAmc2Vzc2lvbi0+dGVtcGxhdGVfam9iLCBzaXplb2Yo SU1CX0pPQikpOw0KPiAgCQlpbWJfc2V0X3Nlc3Npb24obWJfbWdyLCBqb2IpOw0KPiAgCX0gZWxz ZSBpZiAoam9iLT5zZXNzaW9uX2lkICE9IHNlc3Npb24tPnNlc3Npb25faWQpDQo+IC0jZW5kaWYN Cj4gIAkJbWVtY3B5KGpvYiwgJnNlc3Npb24tPnRlbXBsYXRlX2pvYiwgc2l6ZW9mKElNQl9KT0Ip KTsNCj4gDQo+ICAJaWYgKCFvcC0+c3ltLT5tX2RzdCkgew0KPiBAQCAtMTYxMyw5ICsxNDk1LDcg QEAgc2V0X21iX2pvYl9wYXJhbXMoSU1CX0pPQiAqam9iLCBzdHJ1Y3QNCj4gaXBzZWNfbWJfcXAg KnFwLA0KPiAgCQkJam9iLT51LkdDTS5jdHggPSAmcXBfZGF0YS0+Z2NtX3NnbF9jdHg7DQo+ICAJ CQlqb2ItPmNpcGhlcl9tb2RlID0gSU1CX0NJUEhFUl9HQ01fU0dMOw0KPiAgCQkJam9iLT5oYXNo X2FsZyA9IElNQl9BVVRIX0dDTV9TR0w7DQo+IC0jaWYgSU1CX1ZFUlNJT04oMSwgMywgMCkgPCBJ TUJfVkVSU0lPTl9OVU0NCj4gIAkJCWltYl9zZXRfc2Vzc2lvbihtYl9tZ3IsIGpvYik7DQo+IC0j ZW5kaWYNCj4gIAkJfQ0KPiAgCQlicmVhazsNCj4gIAljYXNlIElNQl9BVVRIX0FFU19HTUFDXzEy ODoNCj4gQEAgLTE2NDAsOSArMTUyMCw3IEBAIHNldF9tYl9qb2JfcGFyYW1zKElNQl9KT0IgKmpv Yiwgc3RydWN0DQo+IGlwc2VjX21iX3FwICpxcCwNCj4gIAkJCWpvYi0+dS5DSEFDSEEyMF9QT0xZ MTMwNS5jdHggPSAmcXBfZGF0YS0NCj4gPmNoYWNoYV9zZ2xfY3R4Ow0KPiAgCQkJam9iLT5jaXBo ZXJfbW9kZSA9DQo+IElNQl9DSVBIRVJfQ0hBQ0hBMjBfUE9MWTEzMDVfU0dMOw0KPiAgCQkJam9i LT5oYXNoX2FsZyA9DQo+IElNQl9BVVRIX0NIQUNIQTIwX1BPTFkxMzA1X1NHTDsNCj4gLSNpZiBJ TUJfVkVSU0lPTigxLCAzLCAwKSA8IElNQl9WRVJTSU9OX05VTQ0KPiAgCQkJaW1iX3NldF9zZXNz aW9uKG1iX21nciwgam9iKTsNCj4gLSNlbmRpZg0KPiAgCQl9DQo+ICAJCWJyZWFrOw0KPiAgCWRl ZmF1bHQ6DQo+IEBAIC0xODM4LDEzICsxNzE2LDExIEBAIHNldF9tYl9qb2JfcGFyYW1zKElNQl9K T0IgKmpvYiwgc3RydWN0DQo+IGlwc2VjX21iX3FwICpxcCwNCj4gIAkJaWYgKGxiX3NnbCkNCj4g IAkJCXJldHVybiBoYW5kbGVfc2dsX2xpbmVhcihqb2IsIG9wLCBtX29mZnNldCwgc2Vzc2lvbik7 DQo+IA0KPiAtI2lmIElNQl9WRVJTSU9OKDEsIDIsIDApIDwgSU1CX1ZFUlNJT05fTlVNDQo+ICAJ CWlmIChtX3NyYy0+bmJfc2VncyA8PSBNQVhfTlVNX1NFR1MpDQo+ICAJCQlyZXR1cm4gc2luZ2xl X3NnbF9qb2Ioam9iLCBvcCwgb29wLA0KPiAgCQkJCQltX29mZnNldCwgbV9zcmMsIG1fZHN0LA0K PiAgCQkJCQlxcF9kYXRhLT5zZ2xfc2Vncyk7DQo+ICAJCWVsc2UNCj4gLSNlbmRpZg0KPiAgCQkJ cmV0dXJuIG11bHRpX3NnbF9qb2Ioam9iLCBvcCwgb29wLA0KPiAgCQkJCQltX29mZnNldCwgbV9z cmMsIG1fZHN0LCBtYl9tZ3IpOw0KPiAgCX0NCj4gQEAgLTIxNjQsNyArMjA0MCw2IEBAIHNldF9q b2JfbnVsbF9vcChJTUJfSk9CICpqb2IsIHN0cnVjdCBydGVfY3J5cHRvX29wDQo+ICpvcCkNCj4g IAlyZXR1cm4gam9iOw0KPiAgfQ0KPiANCj4gLSNpZiBJTUJfVkVSU0lPTigxLCAyLCAwKSA8IElN Ql9WRVJTSU9OX05VTQ0KPiAgdWludDE2X3QNCj4gIGFlc25pX21iX2RlcXVldWVfYnVyc3Qodm9p ZCAqcXVldWVfcGFpciwgc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKipvcHMsDQo+ICAJCXVpbnQxNl90 IG5iX29wcykNCj4gQEAgLTIyOTcsMTQ0ICsyMTcyLDcgQEAgYWVzbmlfbWJfZGVxdWV1ZV9idXJz dCh2b2lkICpxdWV1ZV9wYWlyLCBzdHJ1Y3QNCj4gcnRlX2NyeXB0b19vcCAqKm9wcywNCj4gDQo+ ICAJcmV0dXJuIHByb2Nlc3NlZF9qb2JzOw0KPiAgfQ0KPiAtI2Vsc2UNCj4gLQ0KPiAtLyoqDQo+ IC0gKiBQcm9jZXNzIGEgY29tcGxldGVkIElNQl9KT0Igam9iIGFuZCBrZWVwIHByb2Nlc3Npbmcg am9icyB1bnRpbA0KPiAtICogZ2V0X2NvbXBsZXRlZF9qb2IgcmV0dXJuIE5VTEwNCj4gLSAqDQo+ IC0gKiBAcGFyYW0gcXAJCVF1ZXVlIFBhaXIgdG8gcHJvY2Vzcw0KPiAtICogQHBhcmFtIG1iX21n cglJTUJfTUdSIHRvIHVzZQ0KPiAtICogQHBhcmFtIGpvYgkJSU1CX0pPQiBqb2INCj4gLSAqIEBw YXJhbSBvcHMJCWNyeXB0byBvcHMgdG8gZmlsbA0KPiAtICogQHBhcmFtIG5iX29wcwludW1iZXIg b2YgY3J5cHRvIG9wcw0KPiAtICoNCj4gLSAqIEByZXR1cm4NCj4gLSAqIC0gTnVtYmVyIG9mIHBy b2Nlc3NlZCBqb2JzDQo+IC0gKi8NCj4gLXN0YXRpYyB1bnNpZ25lZA0KPiAtaGFuZGxlX2NvbXBs ZXRlZF9qb2JzKHN0cnVjdCBpcHNlY19tYl9xcCAqcXAsIElNQl9NR1IgKm1iX21nciwNCj4gLQkJ SU1CX0pPQiAqam9iLCBzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqKm9wcywNCj4gLQkJdWludDE2X3Qg bmJfb3BzKQ0KPiAtew0KPiAtCXN0cnVjdCBydGVfY3J5cHRvX29wICpvcCA9IE5VTEw7DQo+IC0J dWludDE2X3QgcHJvY2Vzc2VkX2pvYnMgPSAwOw0KPiAtDQo+IC0Jd2hpbGUgKGpvYiAhPSBOVUxM KSB7DQo+IC0JCW9wID0gcG9zdF9wcm9jZXNzX21iX2pvYihxcCwgam9iKTsNCj4gLQ0KPiAtCQlp ZiAob3ApIHsNCj4gLQkJCW9wc1twcm9jZXNzZWRfam9icysrXSA9IG9wOw0KPiAtCQkJcXAtPnN0 YXRzLmRlcXVldWVkX2NvdW50Kys7DQo+IC0JCX0gZWxzZSB7DQo+IC0JCQlxcC0+c3RhdHMuZGVx dWV1ZV9lcnJfY291bnQrKzsNCj4gLQkJCWJyZWFrOw0KPiAtCQl9DQo+IC0JCWlmIChwcm9jZXNz ZWRfam9icyA9PSBuYl9vcHMpDQo+IC0JCQlicmVhazsNCj4gLQ0KPiAtCQlqb2IgPSBJTUJfR0VU X0NPTVBMRVRFRF9KT0IobWJfbWdyKTsNCj4gLQl9DQo+IC0NCj4gLQlyZXR1cm4gcHJvY2Vzc2Vk X2pvYnM7DQo+IC19DQo+IC0NCj4gLXN0YXRpYyBpbmxpbmUgdWludDE2X3QNCj4gLWZsdXNoX21i X21ncihzdHJ1Y3QgaXBzZWNfbWJfcXAgKnFwLCBJTUJfTUdSICptYl9tZ3IsDQo+IC0JCXN0cnVj dCBydGVfY3J5cHRvX29wICoqb3BzLCB1aW50MTZfdCBuYl9vcHMpDQo+IC17DQo+IC0JaW50IHBy b2Nlc3NlZF9vcHMgPSAwOw0KPiAtDQo+IC0JLyogRmx1c2ggdGhlIHJlbWFpbmluZyBqb2JzICov DQo+IC0JSU1CX0pPQiAqam9iID0gSU1CX0ZMVVNIX0pPQihtYl9tZ3IpOw0KPiAtDQo+IC0JaWYg KGpvYikNCj4gLQkJcHJvY2Vzc2VkX29wcyArPSBoYW5kbGVfY29tcGxldGVkX2pvYnMocXAsIG1i X21nciwgam9iLA0KPiAtCQkJCSZvcHNbcHJvY2Vzc2VkX29wc10sIG5iX29wcyAtIHByb2Nlc3Nl ZF9vcHMpOw0KPiAtDQo+IC0JcmV0dXJuIHByb2Nlc3NlZF9vcHM7DQo+IC19DQo+IC0NCj4gLXVp bnQxNl90DQo+IC1hZXNuaV9tYl9kZXF1ZXVlX2J1cnN0KHZvaWQgKnF1ZXVlX3BhaXIsIHN0cnVj dCBydGVfY3J5cHRvX29wICoqb3BzLA0KPiAtCQl1aW50MTZfdCBuYl9vcHMpDQo+IC17DQo+IC0J c3RydWN0IGlwc2VjX21iX3FwICpxcCA9IHF1ZXVlX3BhaXI7DQo+IC0JSU1CX01HUiAqbWJfbWdy ID0gcXAtPm1iX21ncjsNCj4gLQlzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3A7DQo+IC0JSU1CX0pP QiAqam9iOw0KPiAtCWludCByZXR2YWwsIHByb2Nlc3NlZF9qb2JzID0gMDsNCj4gLQlwaWRfdCBw aWQgPSAwOw0KPiAtDQo+IC0JaWYgKHVubGlrZWx5KG5iX29wcyA9PSAwIHx8IG1iX21nciA9PSBO VUxMKSkNCj4gLQkJcmV0dXJuIDA7DQo+IC0NCj4gLQl1aW50OF90IGRpZ2VzdF9pZHggPSBxcC0+ ZGlnZXN0X2lkeDsNCj4gDQo+IC0JZG8gew0KPiAtCQkvKiBHZXQgbmV4dCBmcmVlIG1iIGpvYiBz dHJ1Y3QgZnJvbSBtYiBtYW5hZ2VyICovDQo+IC0JCWpvYiA9IElNQl9HRVRfTkVYVF9KT0IobWJf bWdyKTsNCj4gLQkJaWYgKHVubGlrZWx5KGpvYiA9PSBOVUxMKSkgew0KPiAtCQkJLyogaWYgbm8g ZnJlZSBtYiBqb2Igc3RydWN0cyB3ZSBuZWVkIHRvIGZsdXNoIG1iX21nciAqLw0KPiAtCQkJcHJv Y2Vzc2VkX2pvYnMgKz0gZmx1c2hfbWJfbWdyKHFwLCBtYl9tZ3IsDQo+IC0JCQkJCSZvcHNbcHJv Y2Vzc2VkX2pvYnNdLA0KPiAtCQkJCQluYl9vcHMgLSBwcm9jZXNzZWRfam9icyk7DQo+IC0NCj4g LQkJCWlmIChuYl9vcHMgPT0gcHJvY2Vzc2VkX2pvYnMpDQo+IC0JCQkJYnJlYWs7DQo+IC0NCj4g LQkJCWpvYiA9IElNQl9HRVRfTkVYVF9KT0IobWJfbWdyKTsNCj4gLQkJfQ0KPiAtDQo+IC0JCS8q DQo+IC0JCSAqIEdldCBuZXh0IG9wZXJhdGlvbiB0byBwcm9jZXNzIGZyb20gaW5ncmVzcyBxdWV1 ZS4NCj4gLQkJICogVGhlcmUgaXMgbm8gbmVlZCB0byByZXR1cm4gdGhlIGpvYiB0byB0aGUgSU1C X01HUg0KPiAtCQkgKiBpZiB0aGVyZSBhcmUgbm8gbW9yZSBvcGVyYXRpb25zIHRvIHByb2Nlc3Ms IHNpbmNlIHRoZQ0KPiBJTUJfTUdSDQo+IC0JCSAqIGNhbiB1c2UgdGhhdCBwb2ludGVyIGFnYWlu IGluIG5leHQgZ2V0X25leHQgY2FsbHMuDQo+IC0JCSAqLw0KPiAtCQlyZXR2YWwgPSBydGVfcmlu Z19kZXF1ZXVlKHFwLT5pbmdyZXNzX3F1ZXVlLCAodm9pZCAqKikmb3ApOw0KPiAtCQlpZiAocmV0 dmFsIDwgMCkNCj4gLQkJCWJyZWFrOw0KPiAtDQo+IC0JCWlmIChvcC0+c2Vzc190eXBlID09IFJU RV9DUllQVE9fT1BfU0VDVVJJVFlfU0VTU0lPTikNCj4gLQkJCXJldHZhbCA9IHNldF9zZWNfbWJf am9iX3BhcmFtcyhqb2IsIHFwLCBvcCwNCj4gLQkJCQkJCSZkaWdlc3RfaWR4KTsNCj4gLQkJZWxz ZQ0KPiAtCQkJcmV0dmFsID0gc2V0X21iX2pvYl9wYXJhbXMoam9iLCBxcCwgb3AsDQo+IC0JCQkJ JmRpZ2VzdF9pZHgsIG1iX21nciwgcGlkKTsNCj4gLQ0KPiAtCQlpZiAodW5saWtlbHkocmV0dmFs ICE9IDApKSB7DQo+IC0JCQlxcC0+c3RhdHMuZGVxdWV1ZV9lcnJfY291bnQrKzsNCj4gLQkJCXNl dF9qb2JfbnVsbF9vcChqb2IsIG9wKTsNCj4gLQkJfQ0KPiAtDQo+IC0JCS8qIFN1Ym1pdCBqb2Ig dG8gbXVsdGktYnVmZmVyIGZvciBwcm9jZXNzaW5nICovDQo+IC0jaWZkZWYgUlRFX0xJQlJURV9Q TURfQUVTTklfTUJfREVCVUcNCj4gLQkJam9iID0gSU1CX1NVQk1JVF9KT0IobWJfbWdyKTsNCj4g LSNlbHNlDQo+IC0JCWpvYiA9IElNQl9TVUJNSVRfSk9CX05PQ0hFQ0sobWJfbWdyKTsNCj4gLSNl bmRpZg0KPiAtCQkvKg0KPiAtCQkgKiBJZiBzdWJtaXQgcmV0dXJucyBhIHByb2Nlc3NlZCBqb2Ig dGhlbiBoYW5kbGUgaXQsDQo+IC0JCSAqIGJlZm9yZSBzdWJtaXR0aW5nIHN1YnNlcXVlbnQgam9i cw0KPiAtCQkgKi8NCj4gLQkJaWYgKGpvYikNCj4gLQkJCXByb2Nlc3NlZF9qb2JzICs9IGhhbmRs ZV9jb21wbGV0ZWRfam9icyhxcCwgbWJfbWdyLA0KPiAtCQkJCQlqb2IsICZvcHNbcHJvY2Vzc2Vk X2pvYnNdLA0KPiAtCQkJCQluYl9vcHMgLSBwcm9jZXNzZWRfam9icyk7DQo+IC0NCj4gLQl9IHdo aWxlIChwcm9jZXNzZWRfam9icyA8IG5iX29wcyk7DQo+IC0NCj4gLQlxcC0+ZGlnZXN0X2lkeCA9 IGRpZ2VzdF9pZHg7DQo+IC0NCj4gLQlpZiAocHJvY2Vzc2VkX2pvYnMgPCAxKQ0KPiAtCQlwcm9j ZXNzZWRfam9icyArPSBmbHVzaF9tYl9tZ3IocXAsIG1iX21nciwNCj4gLQkJCQkmb3BzW3Byb2Nl c3NlZF9qb2JzXSwNCj4gLQkJCQluYl9vcHMgLSBwcm9jZXNzZWRfam9icyk7DQo+IC0NCj4gLQly ZXR1cm4gcHJvY2Vzc2VkX2pvYnM7DQo+IC19DQo+IC0jZW5kaWYNCj4gIHN0YXRpYyBpbmxpbmUg aW50DQo+ICBjaGVja19jcnlwdG9fc2dsKHVuaW9uIHJ0ZV9jcnlwdG9fc3ltX29mcyBzbywgY29u c3Qgc3RydWN0IHJ0ZV9jcnlwdG9fc2dsICpzZ2wpDQo+ICB7DQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2NyeXB0by9pcHNlY19tYi9wbWRfYWVzbmlfbWJfcHJpdi5oDQo+IGIvZHJpdmVycy9jcnlw dG8vaXBzZWNfbWIvcG1kX2Flc25pX21iX3ByaXYuaA0KPiBpbmRleCBkNmFmMmQ0ZGVkLi42YWY2 OTliZmRkIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2NyeXB0by9pcHNlY19tYi9wbWRfYWVzbmlf bWJfcHJpdi5oDQo+ICsrKyBiL2RyaXZlcnMvY3J5cHRvL2lwc2VjX21iL3BtZF9hZXNuaV9tYl9w cml2LmgNCj4gQEAgLTE3LDkgKzE3LDcgQEANCj4gICNkZWZpbmUgSE1BQ19JUEFEX1ZBTFVFCQkJ KDB4MzYpDQo+ICAjZGVmaW5lIEhNQUNfT1BBRF9WQUxVRQkJCSgweDVDKQ0KPiANCj4gLSNpZiBJ TUJfVkVSU0lPTigxLCAyLCAwKSA8IElNQl9WRVJTSU9OX05VTQ0KPiAgI2RlZmluZSBNQVhfTlVN X1NFR1MgMTYNCj4gLSNlbmRpZg0KPiANCj4gIGludA0KPiAgYWVzbmlfbWJfc2Vzc2lvbl9jb25m aWd1cmUoSU1CX01HUiAqIG0gX19ydGVfdW51c2VkLCB2b2lkICpwcml2X3Nlc3MsDQo+IEBAIC01 ODAsMTMgKzU3OCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9jYXBhYmls aXRpZXMNCj4gYWVzbmlfbWJfY2FwYWJpbGl0aWVzW10gPSB7DQo+ICAJCQkJfSwNCj4gIAkJCQku ZGlnZXN0X3NpemUgPSB7DQo+ICAJCQkJCS5taW4gPSA0LA0KPiAtI2lmIElNQl9WRVJTSU9OKDEs IDIsIDApIDwgSU1CX1ZFUlNJT05fTlVNDQo+ICAJCQkJCS5tYXggPSAxNiwNCj4gIAkJCQkJLmlu Y3JlbWVudCA9IDQNCj4gLSNlbHNlDQo+IC0JCQkJCS5tYXggPSA0LA0KPiAtCQkJCQkuaW5jcmVt ZW50ID0gMA0KPiAtI2VuZGlmDQo+ICAJCQkJfSwNCj4gIAkJCQkuaXZfc2l6ZSA9IHsNCj4gIAkJ CQkJLm1pbiA9IDE2LA0KPiBAQCAtNzQxLDkgKzczNCw3IEBAIHN0cnVjdCBhZXNuaV9tYl9xcF9k YXRhIHsNCj4gIAkgKiBieSB0aGUgZHJpdmVyIHdoZW4gdmVyaWZ5aW5nIGEgZGlnZXN0IHByb3Zp ZGVkDQo+ICAJICogYnkgdGhlIHVzZXIgKHVzaW5nIGF1dGhlbnRpY2F0aW9uIHZlcmlmeSBvcGVy YXRpb24pDQo+ICAJICovDQo+IC0jaWYgSU1CX1ZFUlNJT04oMSwgMiwgMCkgPCBJTUJfVkVSU0lP Tl9OVU0NCj4gIAlzdHJ1Y3QgSU1CX1NHTF9JT1Ygc2dsX3NlZ3NbTUFYX05VTV9TRUdTXTsNCj4g LSNlbmRpZg0KPiAgCXVuaW9uIHsNCj4gIAkJc3RydWN0IGdjbV9jb250ZXh0X2RhdGEgZ2NtX3Nn bF9jdHg7DQo+ICAJCXN0cnVjdCBjaGFjaGEyMF9wb2x5MTMwNV9jb250ZXh0X2RhdGEgY2hhY2hh X3NnbF9jdHg7DQo+IC0tDQo+IDIuMjUuMQ0KDQo=