From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailgw01.mediatek.com (unknown [60.244.123.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7BBF31FAA; Wed, 3 Jul 2024 02:50:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=60.244.123.138 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719975003; cv=fail; b=j6mI5Mn1sFZ2EaoB2xfPRquZ64+Cyay8irHnzrFUKdQoYSgrZkS2SJLuyCRFvqM2uhPvGAmmFW7GcBV4Y7sJV5c19BKLneK8mfqewJVLc+13/IEqa5yaCaOsQGsaGJMoOp5pfLn5fLWdmvvmRQtwleanYxOpvd3N2QZJVKxjcG8= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719975003; c=relaxed/simple; bh=G4gZEtInD1scTrUQcyJcoG6FZBF+bHIVZDgUDdoIvCM=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=KMaAwhLUVzvrCl9gzmvp1H7CB5y8i5s93p6sah9Xg7uFD4LDvvmCVf3gtZ2vLAES864dzUbkRPNod7OsDN8B+dWBw/Mj38KcQaf2Lr6X/6Voq5vgbYQ+6Z8GwDnA60oojbtyGpvwpNvgrqb56aOQOasOhDqsqoERgMOU2uD0mv4= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=mediatek.com; spf=pass smtp.mailfrom=mediatek.com; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b=nu2P58qY; dkim=pass (1024-bit key) header.d=mediateko365.onmicrosoft.com header.i=@mediateko365.onmicrosoft.com header.b=TM7HkNey; arc=fail smtp.client-ip=60.244.123.138 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=mediatek.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mediatek.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="nu2P58qY"; dkim=pass (1024-bit key) header.d=mediateko365.onmicrosoft.com header.i=@mediateko365.onmicrosoft.com header.b="TM7HkNey" X-UUID: ee01ec9a38e611ef8b8f29950b90a568-20240703 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=MIME-Version:Content-Transfer-Encoding:Content-ID:Content-Type:In-Reply-To:References:Message-ID:Date:Subject:CC:To:From; bh=G4gZEtInD1scTrUQcyJcoG6FZBF+bHIVZDgUDdoIvCM=; b=nu2P58qY3mtkC+I3sIc9bLf7RRBOpHunABWmaW+VF9hbeRzAHWrfMhuRf5QsjFj1ynF+jcETBQUTul8qew0IhzPMGMomQhjj8tLcJXrk/VmiLwnC8PnhAgy4NfL4zUl2PWFnSeZG0IxpF98dlbQVrWyA50sG/tyaSJd5JN9fJMU=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.40,REQID:3fbb0021-47ae-448e-a850-27393ed70606,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:0 X-CID-META: VersionHash:ba885a6,CLOUDID:2fa6ff0c-46b0-425a-97d3-4623fe284021,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL:11|1,File:nil,RT:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES :1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0,ARC:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_ULN X-UUID: ee01ec9a38e611ef8b8f29950b90a568-20240703 Received: from mtkmbs10n1.mediatek.inc [(172.21.101.34)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1026645936; Wed, 03 Jul 2024 10:49:55 +0800 Received: from mtkmbs10n1.mediatek.inc (172.21.101.34) by mtkmbs13n1.mediatek.inc (172.21.101.193) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Wed, 3 Jul 2024 10:49:55 +0800 Received: from APC01-PSA-obe.outbound.protection.outlook.com (172.21.101.237) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server id 15.2.1118.26 via Frontend Transport; Wed, 3 Jul 2024 10:49:55 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I6Ly2ixJG2eqsnkxh9sWpDiykeh/VY9ke27rVtA1orCZ1aHCtNlWulgSX/b6EWnDzfydeTc5xFyGXmpxi6jfpI013tLjxu0iW6OpncYrXH18AwODW2uJ0N33Q1aoc8OtEeEa2aoG4T6ZXfTOWsweB0c7HpPM8l/0KzcKBHjQufnvR6N4eMDjSQWIzlbEufqphWcxhpbImgV3PpUpSqDLH1WJ/vb2jcCKkH30HuPOh901WquiDrmT4xWga5oqqgUMUz8VNcHtEox2XJ89QjEVpKYHjEi/Q887JPAufjQ1ok9r0IsriZPC8quj3HaDPM4DDQf6olU+P6nx5N1yqROzPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=G4gZEtInD1scTrUQcyJcoG6FZBF+bHIVZDgUDdoIvCM=; b=LZKvUZgUMIpxEDEgkc7MY4C2ms+wxBynDpy8oRzNj9mY+1npFd4J5JyNrUID8w+LRrdSzSp8Ut4HBWyshx0Lhsr7lPJxbVOmbtBAknoY8/P8DTo0Ry523Cx80HTVX+99sY1rV29hMgjyID6NxwmRXxVaaI8/mSFCltqGl8yf14JJBc5iv1Lw63ftNCxTfJLzTHFseXh7356YFcmlv8an+RyDZQkuKDiMtN0iVnhMLj4FsoYj6t6NCNoI9coJ/9yjEncgIgrBqCvAgw1jzrzC6CvHJUw/FZO1NVy5DBVtdWj3CZGldGyGkR4eZsxRSA+PADnQhwuKWhF/KX1+27vB9A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mediatek.com; dmarc=pass action=none header.from=mediatek.com; dkim=pass header.d=mediatek.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mediateko365.onmicrosoft.com; s=selector2-mediateko365-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=G4gZEtInD1scTrUQcyJcoG6FZBF+bHIVZDgUDdoIvCM=; b=TM7HkNeyKa6vwPTSi0WQ6EE/48aAKsxtfRFiDdNRrKnR8sJokwR4HWbXr02/C4JnsHX21qaeXM2gruK8xQokRtHUdrq+vf/EO4YbLKDiIxHBwEv6+Te2C/FX7YmOwFkgBLWGyBwpkNcKw+FaEF6vE59NlS4koKg/J7p6yfDuhzo= Received: from TYZPR03MB5741.apcprd03.prod.outlook.com (2603:1096:400:72::8) by KL1PR03MB8002.apcprd03.prod.outlook.com (2603:1096:820:fc::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7719.32; Wed, 3 Jul 2024 02:49:52 +0000 Received: from TYZPR03MB5741.apcprd03.prod.outlook.com ([fe80::110c:1c24:758d:5daf]) by TYZPR03MB5741.apcprd03.prod.outlook.com ([fe80::110c:1c24:758d:5daf%4]) with mapi id 15.20.7719.029; Wed, 3 Jul 2024 02:49:52 +0000 From: =?utf-8?B?Q2hyaXMgTHUgKOmZuOeomuazkyk=?= To: "luiz.dentz@gmail.com" CC: "marcel@holtmann.org" , "linux-mediatek@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "linux-bluetooth@vger.kernel.org" , "johan.hedberg@gmail.com" , =?utf-8?B?U3RldmUgTGVlICjmnY7oppboqqAp?= , Sean Wang , =?utf-8?B?QWFyb24gSG91ICjkvq/kv4rku7Ap?= Subject: Re: [PATCH v6 8/8] Bluetooth: btusb: mediatek: add ISO data transmission functions Thread-Topic: [PATCH v6 8/8] Bluetooth: btusb: mediatek: add ISO data transmission functions Thread-Index: AQHazHNvgqGPFC6Knk2MuFFuhwaRObHjwJmAgACN1YA= Date: Wed, 3 Jul 2024 02:49:52 +0000 Message-ID: References: <20240702113051.24372-1-chris.lu@mediatek.com> <20240702113051.24372-9-chris.lu@mediatek.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=mediatek.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYZPR03MB5741:EE_|KL1PR03MB8002:EE_ x-ms-office365-filtering-correlation-id: 363dd8ed-a7e7-466d-57e8-08dc9b0ad037 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?QkVyVm1WenMxeEtyWE1XTU5QdmhBWXNzSXpnQ3QwbUgvNEV3Tk1sMUQrRUJZ?= =?utf-8?B?Z1QrTXJGME9hUGZmL3pNYjZXbVpHekVUMkttZmRydm55Tmc1MGJGT2N3ZlE5?= =?utf-8?B?TFVGUGpoU0ZlM25mekxwWTczbDRwV2N2QVlFSEppVFRlWmJ0dDZwWkQ0MkI0?= =?utf-8?B?enVxOFZOR2s5YlRqLzRDNjFmR2pUODVtTGlwaExGUU5Lb3JPR2U3eGI1ay9K?= =?utf-8?B?OGIxbVRUVW9Lb0x6ZGF6NnRUK0Fab1JOSHRHR25OQ1pFSFlIUy9yZFVLRkJz?= =?utf-8?B?d2p3aE0zaVFTbEJjZ2VQcGtwam15Q2pXeFNWMmVUZnZUMHlWRUI5Vm0wWGxH?= =?utf-8?B?dzhXL2VtV1V4NUkyZFoxOGVPQUZUM0VSRmhtWVBuTkRuQ2xVYWx2dTY1U3Rl?= =?utf-8?B?ejdKWEFjUW4reXc0MktWTEo1Rjh0b3k3RWZ5Q3hlSXcxVS9SSmdaTUVxZlpz?= =?utf-8?B?Ky83djdxQnFQdUpxaE85eXdyWWhEWnFGdE91WTFJNklHMGJEelhWdWVIeGgz?= =?utf-8?B?eCtPVDlRV1p1amxJWjZsZG9hQUZtZmczRTJROGlUcUZ1MU1EdlBhR1VTMGhK?= =?utf-8?B?Q1NpZ3RPWDdPZzBES0J0Rnk1VDlhL25mMllQK1g3akxNcFVwTEhjR2orTHps?= =?utf-8?B?YUJXbnBjdU5nb01GOXdBR1MxZ3BpVmZhbFgrd050OXNMUE1SV1kxc2RQay8v?= =?utf-8?B?cFQvRmZlczZEUUd0M0J3NkFuSngybjZqbVJxWEZ5WExMY0YyNHFNTHl2S20y?= =?utf-8?B?MVpjWGRHZGU5Vndka0t5a2V2Z3YyUTNYZUJVZlozTmNqTGNWSGdMY2E5bHFQ?= =?utf-8?B?Q3JWOSt3MC9yNTlWN2M0QVVmbHI0WlA4cGZaeXl2ME9rdTNvalJNMHQ0U0pV?= =?utf-8?B?Z1hicDF4eTE5YUJ4RkZxU1d0MjJoMXpYaTNkZUNtdWxHOTBWM2ozNVpxQlFw?= =?utf-8?B?Wm0zU0h2QkFzNUEzTjBSY2ZlSVZIQXN3RndRVFJ6SDV4S3BtUENFRnNWV3Rx?= =?utf-8?B?Qkl1SkxXdys4Mjhjb3B4eUoraXkzSXhQSEcxR21oMlh1dE5wNjN0MXlRdjZZ?= =?utf-8?B?RlcxZ0d0SnlVQ1lodUVrdDdpR1d1V0VmakRFS2ZmQmdhWVN4emNuODA5MWkw?= =?utf-8?B?Q3dIcC82dUdlTXE3NW9EQ2NGTE5vdWdUOWdYVk45dDArMS9uanU0ZVBuZC90?= =?utf-8?B?WVFuWUtJNUZoSjByUHo1Rkk3YlhLVS9YOW5CTksxQWZ3a3NDNVgyTllJbnpn?= =?utf-8?B?S1BQV0N1ZFVMTkVNMFJwekxZSlhNK29sU3Bzd09PVjlFbkxtT2drQ3ZhRzRK?= =?utf-8?B?NXNxQWdrZ082TCtTMXNMUjdKWFU1bitjUWtWRzEwT0I0aEtxajcvSHpxc2FM?= =?utf-8?B?Zm4vY0x2S1c5clZ2Y1ZQazZJZWl4ekVXTmJNSjF0WW1zeXF0aTFDTlZRNnYw?= =?utf-8?B?NVFlc2RCenNKN1AyVVZJSldEOXRkOUVYck8vYnVXUHJFdEgwbjlmdTlRQ3BX?= =?utf-8?B?MVE1WDlQeHhTWk1leHpSQXhKR012QTBNNGl1dFNCVkJldEZ2a0gwV01ZYXRP?= =?utf-8?B?aytqNXRhUGVEOXRMZnJQRm5WdnJZWFFtcHFOZFU5U2M3STI4QUwvT0tpM24v?= =?utf-8?B?akw4Q0tQVmpUVGFTK2hyazVlQ1B1NnBVODh4MXQwVERBZk5rTVZueGRnZWZG?= =?utf-8?B?aDFTYm9tcFQ0Mkh3MmFjZ2pkbTdIYkVTYkRHTThHQTQ4bkNOTEVqYTJOQTY4?= =?utf-8?B?ZWN5V3pxMkExV2JmK1VaTUZRTFpXdFN1N3hMOTMxK0FPUW5tTUFCeXpDOUN3?= =?utf-8?B?bS82YmZITlU2YytZcHBiaU9IVHc3L2JIUUhkQ3FINUxIbzhEVms0RHkrak4x?= =?utf-8?B?UG5zYU9vT3dub1pYU3V0N3lGMVpqQ0pUei9TcU43Z0Y1Smc9PQ==?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR03MB5741.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RXU0RlE2d1pKNVkzYnlnbENBemFuZVBiWXF2a1dnc09tQm54eVkweVRyaENk?= =?utf-8?B?aS96eEtyeUcxbzVJbStrQVFwdnp5YkdoTlVwbGpZRS9DVC9vMXRuNlNhV1V5?= =?utf-8?B?SWI4a3hZak02YVd6cVo5aXA3eUIvNkl0MGlPQlFzNy9wZWhkNkJHZ3d4a3Za?= =?utf-8?B?dXErMDJOdFB2NVQ4WFMwU1RtRDZCNU1aTXZhYU9MOGUxaTNKbGtWcG01M1dE?= =?utf-8?B?ckZ2ZHhSaDRGNTBOS0pyWlBPQytGMmtYalZnNlJpSFFHaW1KMi9qZ2pmd2RP?= =?utf-8?B?VjNBeUYrQmdkUzRsb1ExSmJBSjIrc2RScGNqMCtQY0NZRTRVKzVkQTFPNDMw?= =?utf-8?B?c1hvOWJMYkNxSXhaRlpScWZwd1U2aHp1TkRtcHlkMCtUQityZTcyVFZNQ2J5?= =?utf-8?B?RFZ2NkU1TzdSa05nRHlZa1dFd2RvNmwvcXVBQ1RIcFlJTnB5QXpSUjRYalRq?= =?utf-8?B?VC92NkIwT2tXK0RpVUNrQU80eGtXY1pXVTJRZ1RWYmhUWXlSWDdTK3NrUUlM?= =?utf-8?B?VnR4cDZiSW5pNzZyMlhvMFdGbnR3Ryt2dG1DRkU5bmZVenNHZ2QwY1EwaWYz?= =?utf-8?B?Z1lwTlB2dTNyK29lclY1NWlUWUUyOGlCSy9BdDh5UExzSHJzN2diRjllZjFR?= =?utf-8?B?dnpZWGVES3dlcnhJRkQ5Y2cwaTM0clkyaTF1WWdBaVMveFRyWUFEbW81Z29r?= =?utf-8?B?QkcyS1ZhQzBRb09HL3NMRE52UUlLaXZkalltdzFPc2hmbGYxZlM5YUV2Q1hC?= =?utf-8?B?dDBScXZPejFMMVdzSjZwM0diVTdLNzZ2L3c0ZjBiZVpZa1dNZjJoSzVQVTZH?= =?utf-8?B?MXJ4NFh1ZllaNWdFLy96VFFQQUxGeTM1VjdkQzlNWFIxelYvNjZYN2pOSnJI?= =?utf-8?B?cU14bGVTODd2K0haSVRRZmtrTUtyVkk5bnJ6clhON2d4WXFmV29kdWhvbURK?= =?utf-8?B?TERGamp6eU1EdHRJZzMxZVZkWEVLZkVnbFZaTy9aUDZSb2JmQ2pNQVc1QkN3?= =?utf-8?B?VVZKR1l2OFBFWFUvelBpclBxMW1UdnY2ekljNHNvR2Vzek1Zb1JKOE53T244?= =?utf-8?B?UkF2ckgzWXFNVmNXclZLRFBFMFgzU0laZXVQUHh1TmFVWTkzS1dJUmxEaEVH?= =?utf-8?B?b1RKSmNiRFErd0NDVk1uU2htMEhGQmhFa0xVMzBlTEcvWm96NUFpMG1hNkRX?= =?utf-8?B?V0ZDb3phYlZsTFAvVGhoaGkxSElXZVZIbUZJT1dOblhGWkF2eHlsY3JleU14?= =?utf-8?B?LzV2RTBla3dkTk1ZR2ozOG1nbjJzWjBzektBcW5Lc0dYWk1Wd2g2OUpHV1Mv?= =?utf-8?B?bU5hb28wVHNabk03VTYzUlRCUnZVY3ZqQXVQaFFpeXhJeXVMN2Q3bHFRWUtH?= =?utf-8?B?T2NhZUZpeExIekVxWU9pM0RQSVJDa1E0L1lpLy90ZjA5MG5xSkc2eGhVN3Jq?= =?utf-8?B?R01jczZrOU1BTHgzRzdGQitWMUJzVlNPVUxMTEpJNHp0MnQrMVVjSXUycmI3?= =?utf-8?B?endDN054dUJlODBCQ24xd0VSNitoL2Ewcy9KdmZKdk9xYnRadEpBT2xIN2lB?= =?utf-8?B?eURBMDF6dzZwV1R5UEFTeE5XUlBDOVRnTk5nbEdvQ2NNUlZKQTlCUmVkaGNt?= =?utf-8?B?VnoxcGM0aXJ0VTJGYXZxdEwvY0ZFWEtFekpCOGhGRFlCd0ZZZXpLMVR2UFdW?= =?utf-8?B?TmVLWGxRM21RWFJnWHhRWEhWYi9WTzB0eHV0ME5HYU5RVHNYNW4vdERoTDFI?= =?utf-8?B?emxRN3lPUE5LUFdkcU1yMHVIajBkc0x5K1gvU3lWU2kxaVY0U1RDVWZyVk5B?= =?utf-8?B?N0NES0NNSWRQanVOVnhSeU00WnFLV3FETHJjV0FGMzFzYjVscDlmN2JsZHRQ?= =?utf-8?B?RkYrV0FwUlFlMkpwVkE5RVNiN0NBcmgwc2x6MXVzTU8rbXgxM3R1YnFWbkQ3?= =?utf-8?B?SGxrUENTV3cwbTJRV2VxUCtTWlJ4alNWTG5mTnhwRjJDbnRhbHZRWjFhZ3Ar?= =?utf-8?B?c1JsbDJlVzhUL3FFTG9mRkt4ODJVS0xMQWtERU1GWlF0T0sxNjdMV0JnREI2?= =?utf-8?B?cnVYcE1TOGtIZ0wwbHNFL1doamNFS055ZDdMS3ErUXYraG9VTUpiZWpBZnBl?= =?utf-8?B?L1crY1Y4cGRzOSs2SXJNcmY0NUl5K0dEbU5QU3hpakozb2d4VUE2Vm1IZjBB?= =?utf-8?B?QlE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <7D6725808A90F94F9A153ADFFA96346D@apcprd03.prod.outlook.com> Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYZPR03MB5741.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 363dd8ed-a7e7-466d-57e8-08dc9b0ad037 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Jul 2024 02:49:52.4802 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a7687ede-7a6b-4ef6-bace-642f677fbe31 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: WrByW2PucmqyoNMaNnVbkOOJRbntvWR8FLiySbfD+BfyJLwqKhJXZykQUD/WTPXCeKFPekrc1vvHk4VGgxN2Bg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR03MB8002 SGkgTHVpeiwNCg0KT24gVHVlLCAyMDI0LTA3LTAyIGF0IDE0OjIyIC0wNDAwLCBMdWl6IEF1Z3Vz dG8gdm9uIERlbnR6DQp3cm90ZToNCj4gIAkgDQo+IEV4dGVybmFsIGVtYWlsIDogUGxlYXNlIGRv IG5vdCBjbGljayBsaW5rcyBvciBvcGVuIGF0dGFjaG1lbnRzIHVudGlsDQo+IHlvdSBoYXZlIHZl cmlmaWVkIHRoZSBzZW5kZXIgb3IgdGhlIGNvbnRlbnQuDQo+ICBIaSBDaHJpcywNCj4gDQo+IE9u IFR1ZSwgSnVsIDIsIDIwMjQgYXQgNzozMeKAr0FNIENocmlzIEx1IDxjaHJpcy5sdUBtZWRpYXRl ay5jb20+DQo+IHdyb3RlOg0KPiA+DQo+ID4gVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGZ1bmN0aW9u cyBmb3IgSVNPIGRhdGEgc2VuZCBhbmQgcmVjZWl2ZSBpbg0KPiBidHVzYg0KPiA+IGRyaXZlciBm b3IgTWVkaWFUZWsncyBjb250cm9sbGVyLg0KPiA+DQo+ID4gTWVkaWFUZWsgZGVmaW5lcyBhIHNw ZWNpZmljIGludGVycnVwdCBlbmRwb2ludCBmb3IgSVNPIGRhdGENCj4gdHJhbnNtaXNzaW4NCj4g PiBiZWNhdXNlIHRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgaW50ZXJydXB0IGVuZHBvaW50IGFyZSBz aW1pbGFyIHRvDQo+IHRoZQ0KPiA+IGFwcGxpY2F0aW9uIG9mIElTTyBkYXRhIHdoaWNoIGNhbiBz dXBwb3J0IGd1YXJhbnRlZWQgdHJhbnNtaXNzaW4NCj4gPiBiYW5kd2lkdGgsIGVub3VnaCBtYXhp bXVtIGRhdGEgbGVuZ3RoIGFuZCBlcnJvciBjaGVja2luZyBtZWNoYW5pc20uDQo+ID4NCj4gPiBE cml2ZXIgc2V0cyB1cCBJU08gaW50ZXJmYWNlIGFuZCBlbmRwb2ludHMgaW4gYnR1c2JfbXRrX3Nl dHVwIGFuZA0KPiBjbGVhcnMNCj4gPiB0aGUgc2V0dXAgaW4gYnR1c2JfbXRrX3NodXRkb3duLiBU aGVzZSBmbG93IGNhbid0IG1vdmUgdG8gYnRtdGsuYw0KPiBkdWUgdG8NCj4gPiBidHVzYl9kcml2 ZXIgaXMgb25seSBkZWZpbmVkIGluIGJ0dXNiLmMgd2hlbiBjbGFpbWluZy9yZWxhZXNpbmcNCj4g aW50ZXJmYWNlLg0KPiA+IElTTyBwYWNrZXQgYW5jaG9yIHN0b3BzIHdoZW4gZHJpdmVyIHN1c3Bl bmRpbmcgYW5kIHJlc3VibWl0DQo+IGludGVycnVwdCB1cmINCj4gPiBmb3IgSVNPIGRhdGEgd2hl biBkcml2ZXIgcmVzdW1pbmcuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBMdSA8Y2hy aXMubHVAbWVkaWF0ZWsuY29tPg0KPiA+IC0tLQ0KPiA+ICBkcml2ZXJzL2JsdWV0b290aC9idG10 ay5jIHwgMzAzDQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4g IGRyaXZlcnMvYmx1ZXRvb3RoL2J0bXRrLmggfCAgMzYgKysrKysNCj4gPiAgZHJpdmVycy9ibHVl dG9vdGgvYnR1c2IuYyB8ICA2OCArKysrKysrKysNCj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCA0MDcg aW5zZXJ0aW9ucygrKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmx1ZXRvb3RoL2J0 bXRrLmMgYi9kcml2ZXJzL2JsdWV0b290aC9idG10ay5jDQo+ID4gaW5kZXggZmUzYjg5MmY2YzZl Li5kZmVhZTljMjgzYTkgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ibHVldG9vdGgvYnRtdGsu Yw0KPiA+ICsrKyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2J0bXRrLmMNCj4gPiBAQCAtMjIsNiArMjIs OSBAQA0KPiA+ICAjZGVmaW5lIE1US19TRUNfTUFQX0NPTU1PTl9TSVpFICAgICAgICAxMg0KPiA+ ICAjZGVmaW5lIE1US19TRUNfTUFQX05FRURfU0VORF9TSVpFICAgICA1Mg0KPiA+DQo+ID4gKy8q IEl0IGlzIGZvciBtdDc5eHggaXNvIGRhdGEgdHJhbnNtaXNzaW9uIHNldHRpbmcgKi8NCj4gPiAr I2RlZmluZSBNVEtfSVNPX1RIUkVTSE9MRCAgICAgIDI2NA0KPiA+ICsNCj4gPiAgc3RydWN0IGJ0 bXRrX3BhdGNoX2hlYWRlciB7DQo+ID4gICAgICAgICB1OCBkYXRldGltZVsxNl07DQo+ID4gICAg ICAgICB1OCBwbGF0Zm9ybVs0XTsNCj4gPiBAQCAtOTYzLDYgKzk2NiwzMDAgQEAgaW50IGJ0bXRr X3VzYl9yZWN2X2FjbChzdHJ1Y3QgaGNpX2RldiAqaGRldiwNCj4gc3RydWN0IHNrX2J1ZmYgKnNr YikNCj4gPiAgfQ0KPiA+ICBFWFBPUlRfU1lNQk9MX0dQTChidG10a191c2JfcmVjdl9hY2wpOw0K PiA+DQo+ID4gK3N0YXRpYyBpbnQgYnRtdGtfaXNvcGt0X3BhZChzdHJ1Y3QgaGNpX2RldiAqaGRl diwgc3RydWN0IHNrX2J1ZmYNCj4gKnNrYikNCj4gPiArew0KPiA+ICsgICAgICAgaWYgKHNrYi0+ bGVuID4gTVRLX0lTT19USFJFU0hPTEQpDQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAtRUlO VkFMOw0KPiA+ICsNCj4gPiArICAgICAgIGlmIChza2JfcGFkKHNrYiwgTVRLX0lTT19USFJFU0hP TEQgLSBza2ItPmxlbikpDQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiA+ ICsNCj4gPiArICAgICAgIF9fc2tiX3B1dChza2IsIE1US19JU09fVEhSRVNIT0xEIC0gc2tiLT5s ZW4pOw0KPiA+ICsNCj4gPiArICAgICAgIHJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtz dGF0aWMgaW50IF9fc2V0X210a19pbnRyX2ludGVyZmFjZShzdHJ1Y3QgaGNpX2RldiAqaGRldikN Cj4gPiArew0KPiA+ICsgICAgICAgc3RydWN0IGJ0bXRrX2RhdGEgKmJ0bXRrX2RhdGEgPSBoY2lf Z2V0X3ByaXYoaGRldik7DQo+ID4gKyAgICAgICBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiA9 IGJ0bXRrX2RhdGEtPmlzb3BrdF9pbnRmOw0KPiA+ICsgICAgICAgaW50IGksIGVycjsNCj4gPiAr DQo+ID4gKyAgICAgICBpZiAoIWJ0bXRrX2RhdGEtPmlzb3BrdF9pbnRmKQ0KPiA+ICsgICAgICAg ICAgICAgICByZXR1cm4gLUVOT0RFVjsNCj4gPiArDQo+ID4gKyAgICAgICBlcnIgPSB1c2Jfc2V0 X2ludGVyZmFjZShidG10a19kYXRhLT51ZGV2LCBNVEtfSVNPX0lGTlVNLA0KPiAxKTsNCj4gPiAr ICAgICAgIGlmIChlcnIgPCAwKSB7DQo+ID4gKyAgICAgICAgICAgICAgIGJ0X2Rldl9lcnIoaGRl diwgInNldHRpbmcgaW50ZXJmYWNlIGZhaWxlZCAoJWQpIiwNCj4gLWVycik7DQo+ID4gKyAgICAg ICAgICAgICAgIHJldHVybiBlcnI7DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAg YnRtdGtfZGF0YS0+aXNvcGt0X3R4X2VwID0gTlVMTDsNCj4gPiArICAgICAgIGJ0bXRrX2RhdGEt Pmlzb3BrdF9yeF9lcCA9IE5VTEw7DQo+ID4gKw0KPiA+ICsgICAgICAgZm9yIChpID0gMDsgaSA8 IGludGYtPmN1cl9hbHRzZXR0aW5nLT5kZXNjLmJOdW1FbmRwb2ludHM7DQo+IGkrKykgew0KPiA+ ICsgICAgICAgICAgICAgICBzdHJ1Y3QgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3IgKmVwX2Rlc2M7 DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBlcF9kZXNjID0gJmludGYtPmN1cl9hbHRzZXR0 aW5nLT5lbmRwb2ludFtpXS5kZXNjOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgaWYgKCFi dG10a19kYXRhLT5pc29wa3RfdHhfZXAgJiYNCj4gPiArICAgICAgICAgICAgICAgICAgIHVzYl9l bmRwb2ludF9pc19pbnRfb3V0KGVwX2Rlc2MpKSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgYnRtdGtfZGF0YS0+aXNvcGt0X3R4X2VwID0gZXBfZGVzYzsNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICBjb250aW51ZTsNCj4gPiArICAgICAgICAgICAgICAgfQ0KPiA+ICsNCj4gPiAr ICAgICAgICAgICAgICAgaWYgKCFidG10a19kYXRhLT5pc29wa3RfcnhfZXAgJiYNCj4gPiArICAg ICAgICAgICAgICAgICAgIHVzYl9lbmRwb2ludF9pc19pbnRfaW4oZXBfZGVzYykpIHsNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICBidG10a19kYXRhLT5pc29wa3RfcnhfZXAgPSBlcF9kZXNj Ow0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ICsgICAgICAgICAg ICAgICB9DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgaWYgKCFidG10a19kYXRh LT5pc29wa3RfdHhfZXAgfHwNCj4gPiArICAgICAgICAgICAhYnRtdGtfZGF0YS0+aXNvcGt0X3J4 X2VwKSB7DQo+ID4gKyAgICAgICAgICAgICAgIGJ0X2Rldl9lcnIoaGRldiwgImludmFsaWQgaW50 ZXJydXB0IGRlc2NyaXB0b3JzIik7DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5PREVW Ow0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIHJldHVybiAwOw0KPiA+ICt9DQo+ ID4gKw0KPiA+ICtzdHJ1Y3QgdXJiICphbGxvY19tdGtfaW50cl91cmIoc3RydWN0IGhjaV9kZXYg KmhkZXYsIHN0cnVjdA0KPiBza19idWZmICpza2IsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVzYl9jb21wbGV0ZV90IHR4X2NvbXBsZXRlKQ0KPiA+ICt7DQo+ID4gKyAgICAg ICBzdHJ1Y3QgYnRtdGtfZGF0YSAqYnRtdGtfZGF0YSA9IGhjaV9nZXRfcHJpdihoZGV2KTsNCj4g PiArICAgICAgIHN0cnVjdCB1cmIgKnVyYjsNCj4gPiArICAgICAgIHVuc2lnbmVkIGludCBwaXBl Ow0KPiA+ICsNCj4gPiArICAgICAgIGlmICghYnRtdGtfZGF0YS0+aXNvcGt0X3R4X2VwKQ0KPiA+ ICsgICAgICAgICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PREVWKTsNCj4gPiArDQo+ID4gKyAg ICAgICB1cmIgPSB1c2JfYWxsb2NfdXJiKDAsIEdGUF9LRVJORUwpOw0KPiA+ICsgICAgICAgaWYg KCF1cmIpDQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBFUlJfUFRSKC1FTk9NRU0pOw0KPiA+ ICsNCj4gPiArICAgICAgIGlmIChidG10a19pc29wa3RfcGFkKGhkZXYsIHNrYikpDQo+ID4gKyAg ICAgICAgICAgICAgIHJldHVybiBFUlJfUFRSKC1FSU5WQUwpOw0KPiA+ICsNCj4gPiArICAgICAg IHBpcGUgPSB1c2Jfc25kaW50cGlwZShidG10a19kYXRhLT51ZGV2LA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJ0bXRrX2RhdGEtPmlzb3BrdF90eF9lcC0NCj4gPmJFbmRwb2lu dEFkZHJlc3MpOw0KPiA+ICsNCj4gPiArICAgICAgIHVzYl9maWxsX2ludF91cmIodXJiLCBidG10 a19kYXRhLT51ZGV2LCBwaXBlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBza2ItPmRh dGEsIHNrYi0+bGVuLCB0eF9jb21wbGV0ZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg c2tiLCBidG10a19kYXRhLT5pc29wa3RfdHhfZXAtPmJJbnRlcnZhbCk7DQo+ID4gKw0KPiA+ICsg ICAgICAgc2tiLT5kZXYgPSAodm9pZCAqKWhkZXY7DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0dXJu IHVyYjsNCj4gPiArfQ0KPiA+ICtFWFBPUlRfU1lNQk9MX0dQTChhbGxvY19tdGtfaW50cl91cmIp Ow0KPiA+ICsNCj4gPiArc3RhdGljIGludCBidG10a19yZWN2X2lzb3BrdChzdHJ1Y3QgaGNpX2Rl diAqaGRldiwgdm9pZCAqYnVmZmVyLA0KPiBpbnQgY291bnQpDQo+ID4gK3sNCj4gPiArICAgICAg IHN0cnVjdCBidG10a19kYXRhICpidG10a19kYXRhID0gaGNpX2dldF9wcml2KGhkZXYpOw0KPiA+ ICsgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYjsNCj4gPiArICAgICAgIHVuc2lnbmVkIGxvbmcg ZmxhZ3M7DQo+ID4gKyAgICAgICBpbnQgZXJyID0gMDsNCj4gPiArDQo+ID4gKyAgICAgICBzcGlu X2xvY2tfaXJxc2F2ZSgmYnRtdGtfZGF0YS0+aXNvcnhsb2NrLCBmbGFncyk7DQo+ID4gKyAgICAg ICBza2IgPSBidG10a19kYXRhLT5pc29wa3Rfc2tiOw0KPiA+ICsNCj4gPiArICAgICAgIHdoaWxl IChjb3VudCkgew0KPiA+ICsgICAgICAgICAgICAgICBpbnQgbGVuOw0KPiA+ICsNCj4gPiArICAg ICAgICAgICAgICAgaWYgKCFza2IpIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBza2Ig PSBidF9za2JfYWxsb2MoSENJX01BWF9JU09fU0laRSwNCj4gR0ZQX0FUT01JQyk7DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgaWYgKCFza2IpIHsNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGVyciA9IC1FTk9NRU07DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICB9DQo+ID4gKw0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIGhjaV9za2JfcGt0X3R5cGUoc2tiKSA9IEhDSV9JU09E QVRBX1BLVDsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBoY2lfc2tiX2V4cGVjdChza2Ip ID0gSENJX0lTT19IRFJfU0laRTsNCj4gPiArICAgICAgICAgICAgICAgfQ0KPiA+ICsNCj4gPiAr ICAgICAgICAgICAgICAgbGVuID0gbWluX3QodWludCwgaGNpX3NrYl9leHBlY3Qoc2tiKSwgY291 bnQpOw0KPiA+ICsgICAgICAgICAgICAgICBza2JfcHV0X2RhdGEoc2tiLCBidWZmZXIsIGxlbik7 DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBjb3VudCAtPSBsZW47DQo+ID4gKyAgICAgICAg ICAgICAgIGJ1ZmZlciArPSBsZW47DQo+ID4gKyAgICAgICAgICAgICAgIGhjaV9za2JfZXhwZWN0 KHNrYikgLT0gbGVuOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgaWYgKHNrYi0+bGVuID09 IEhDSV9JU09fSERSX1NJWkUpIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBfX2xlMTYg ZGxlbiA9ICgoc3RydWN0IGhjaV9pc29faGRyICopc2tiLQ0KPiA+ZGF0YSktPmRsZW47DQo+ID4g Kw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBsZXRlIElTTyBoZWFkZXIgKi8N Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICBoY2lfc2tiX2V4cGVjdChza2IpID0gX19sZTE2 X3RvX2NwdShkbGVuKTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNr Yl90YWlscm9vbShza2IpIDwNCj4gaGNpX3NrYl9leHBlY3Qoc2tiKSkgew0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAga2ZyZWVfc2tiKHNrYik7DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBza2IgPSBOVUxMOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGVyciA9IC1FSUxTRVE7DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICB9DQo+ID4g KyAgICAgICAgICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIGlmICghaGNpX3Nr Yl9leHBlY3Qoc2tiKSkgew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBsZXRl IGZyYW1lICovDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgaGNpX3JlY3ZfZnJhbWUoaGRl diwgc2tiKTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBza2IgPSBOVUxMOw0KPiA+ICsg ICAgICAgICAgICAgICB9DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgYnRtdGtf ZGF0YS0+aXNvcGt0X3NrYiA9IHNrYjsNCj4gPiArICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmJ0bXRrX2RhdGEtPmlzb3J4bG9jaywgZmxhZ3MpOw0KPiA+ICsNCj4gPiArICAgICAgIHJl dHVybiBlcnI7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIGJ0bXRrX2ludHJfY29t cGxldGUoc3RydWN0IHVyYiAqdXJiKQ0KPiA+ICt7DQo+ID4gKyAgICAgICBzdHJ1Y3QgaGNpX2Rl diAqaGRldiA9IHVyYi0+Y29udGV4dDsNCj4gPiArICAgICAgIHN0cnVjdCBidG10a19kYXRhICpi dG10a19kYXRhID0gaGNpX2dldF9wcml2KGhkZXYpOw0KPiA+ICsgICAgICAgaW50IGVycjsNCj4g PiArDQo+ID4gKyAgICAgICBCVF9EQkcoIiVzIHVyYiAlcCBzdGF0dXMgJWQgY291bnQgJWQiLCBo ZGV2LT5uYW1lLCB1cmIsDQo+IHVyYi0+c3RhdHVzLA0KPiA+ICsgICAgICAgICAgICAgIHVyYi0+ YWN0dWFsX2xlbmd0aCk7DQo+ID4gKw0KPiA+ICsgICAgICAgaWYgKCF0ZXN0X2JpdChIQ0lfUlVO TklORywgJmhkZXYtPmZsYWdzKSkNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICsN Cj4gPiArICAgICAgIGlmIChoZGV2LT5zdXNwZW5kZWQpDQo+ID4gKyAgICAgICAgICAgICAgIHJl dHVybjsNCj4gPiArDQo+ID4gKyAgICAgICBpZiAodXJiLT5zdGF0dXMgPT0gMCkgew0KPiA+ICsg ICAgICAgICAgICAgICBoZGV2LT5zdGF0LmJ5dGVfcnggKz0gdXJiLT5hY3R1YWxfbGVuZ3RoOw0K PiA+ICsNCj4gPiArICAgICAgICAgICAgICAgaWYgKGJ0bXRrX3JlY3ZfaXNvcGt0KGhkZXYsIHVy Yi0+dHJhbnNmZXJfYnVmZmVyLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdXJiLT5hY3R1YWxfbGVuZ3RoKSA8IDApIHsNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICBidF9kZXZfZXJyKGhkZXYsICJjb3JydXB0ZWQgaXNvIHBhY2tldCIpOw0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIGhkZXYtPnN0YXQuZXJyX3J4Kys7DQo+ID4gKyAgICAgICAgICAg ICAgIH0NCj4gPiArICAgICAgIH0gZWxzZSBpZiAodXJiLT5zdGF0dXMgPT0gLUVOT0VOVCkgew0K PiA+ICsgICAgICAgICAgICAgICAvKiBBdm9pZCBzdXNwZW5kIGZhaWxlZCB3aGVuIHVzYl9raWxs X3VyYiAqLw0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm47DQo+ID4gKyAgICAgICB9DQo+ID4g Kw0KPiA+ICsgICAgICAgdXNiX21hcmtfbGFzdF9idXN5KGJ0bXRrX2RhdGEtPnVkZXYpOw0KPiA+ ICsgICAgICAgdXNiX2FuY2hvcl91cmIodXJiLCAmYnRtdGtfZGF0YS0+aXNvcGt0X2FuY2hvcik7 DQo+ID4gKw0KPiA+ICsgICAgICAgZXJyID0gdXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfQVRPTUlD KTsNCj4gPiArICAgICAgIGlmIChlcnIgPCAwKSB7DQo+ID4gKyAgICAgICAgICAgICAgIC8qIC1F UEVSTTogdXJiIGlzIGJlaW5nIGtpbGxlZDsNCj4gPiArICAgICAgICAgICAgICAgICogLUVOT0RF VjogZGV2aWNlIGdvdCBkaXNjb25uZWN0ZWQNCj4gPiArICAgICAgICAgICAgICAgICovDQo+ID4g KyAgICAgICAgICAgICAgIGlmIChlcnIgIT0gLUVQRVJNICYmIGVyciAhPSAtRU5PREVWKQ0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIGJ0X2Rldl9lcnIoaGRldiwgInVyYiAlcCBmYWlsZWQg dG8gcmVzdWJtaXQNCj4gKCVkKSIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1cmIsIC1lcnIpOw0KPiA+ICsgICAgICAgICAgICAgICBpZiAoZXJyICE9IC1FUEVSTSkN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICBoY2lfY21kX3N5bmNfY2FuY2VsKGhkZXYsIC1l cnIpOw0KPiA+ICsgICAgICAgICAgICAgICB1c2JfdW5hbmNob3JfdXJiKHVyYik7DQo+ID4gKyAg ICAgICB9DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgYnRtdGtfc3VibWl0X2ludHJf dXJiKHN0cnVjdCBoY2lfZGV2ICpoZGV2LCBnZnBfdA0KPiBtZW1fZmxhZ3MpDQo+ID4gK3sNCj4g PiArICAgICAgIHN0cnVjdCBidG10a19kYXRhICpidG10a19kYXRhID0gaGNpX2dldF9wcml2KGhk ZXYpOw0KPiA+ICsgICAgICAgdW5zaWduZWQgY2hhciAqYnVmOw0KPiA+ICsgICAgICAgdW5zaWdu ZWQgaW50IHBpcGU7DQo+ID4gKyAgICAgICBzdHJ1Y3QgdXJiICp1cmI7DQo+ID4gKyAgICAgICBp bnQgZXJyLCBzaXplOw0KPiA+ICsNCj4gPiArICAgICAgIEJUX0RCRygiJXMiLCBoZGV2LT5uYW1l KTsNCj4gPiArDQo+ID4gKyAgICAgICBpZiAoIWJ0bXRrX2RhdGEtPmlzb3BrdF9yeF9lcCkNCj4g PiArICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7DQo+ID4gKw0KPiA+ICsgICAgICAgdXJi ID0gdXNiX2FsbG9jX3VyYigwLCBtZW1fZmxhZ3MpOw0KPiA+ICsgICAgICAgaWYgKCF1cmIpDQo+ ID4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiA+ICsgICAgICAgc2l6ZSA9IGxl MTZfdG9fY3B1KGJ0bXRrX2RhdGEtPmlzb3BrdF9yeF9lcC0NCj4gPndNYXhQYWNrZXRTaXplKTsN Cj4gPiArDQo+ID4gKyAgICAgICBidWYgPSBrbWFsbG9jKHNpemUsIG1lbV9mbGFncyk7DQo+ID4g KyAgICAgICBpZiAoIWJ1Zikgew0KPiA+ICsgICAgICAgICAgICAgICB1c2JfZnJlZV91cmIodXJi KTsNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ID4gKyAgICAgICB9DQo+ ID4gKw0KPiA+ICsgICAgICAgcGlwZSA9IHVzYl9yY3ZpbnRwaXBlKGJ0bXRrX2RhdGEtPnVkZXYs DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnRtdGtfZGF0YS0+aXNvcGt0X3J4 X2VwLQ0KPiA+YkVuZHBvaW50QWRkcmVzcyk7DQo+ID4gKw0KPiA+ICsgICAgICAgdXNiX2ZpbGxf aW50X3VyYih1cmIsIGJ0bXRrX2RhdGEtPnVkZXYsIHBpcGUsIGJ1Ziwgc2l6ZSwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgYnRtdGtfaW50cl9jb21wbGV0ZSwgaGRldiwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgYnRtdGtfZGF0YS0+aXNvcGt0X3J4X2VwLT5iSW50ZXJ2YWwp Ow0KPiA+ICsNCj4gPiArICAgICAgIHVyYi0+dHJhbnNmZXJfZmxhZ3MgfD0gVVJCX0ZSRUVfQlVG RkVSOw0KPiA+ICsNCj4gPiArICAgICAgIHVzYl9tYXJrX2xhc3RfYnVzeShidG10a19kYXRhLT51 ZGV2KTsNCj4gPiArICAgICAgIHVzYl9hbmNob3JfdXJiKHVyYiwgJmJ0bXRrX2RhdGEtPmlzb3Br dF9hbmNob3IpOw0KPiA+ICsNCj4gPiArICAgICAgIGVyciA9IHVzYl9zdWJtaXRfdXJiKHVyYiwg bWVtX2ZsYWdzKTsNCj4gPiArICAgICAgIGlmIChlcnIgPCAwKSB7DQo+ID4gKyAgICAgICAgICAg ICAgIGlmIChlcnIgIT0gLUVQRVJNICYmIGVyciAhPSAtRU5PREVWKQ0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIGJ0X2Rldl9lcnIoaGRldiwgInVyYiAlcCBzdWJtaXNzaW9uIGZhaWxlZA0K PiAoJWQpIiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVyYiwgLWVy cik7DQo+ID4gKyAgICAgICAgICAgICAgIHVzYl91bmFuY2hvcl91cmIodXJiKTsNCj4gPiArICAg ICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICB1c2JfZnJlZV91cmIodXJiKTsNCj4gPiArDQo+ID4g KyAgICAgICByZXR1cm4gZXJyOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IGJ0bXRr X3VzYl9pc29pbnRmX2luaXQoc3RydWN0IGhjaV9kZXYgKmhkZXYpDQo+ID4gK3sNCj4gPiArICAg ICAgIHN0cnVjdCBidG10a19kYXRhICpidG10a19kYXRhID0gaGNpX2dldF9wcml2KGhkZXYpOw0K PiA+ICsgICAgICAgdTggaXNvX3BhcmFtWzJdID0geyAweDA4LCAweDAxIH07DQo+ID4gKyAgICAg ICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiOw0KPiA+ICsgICAgICAgaW50IGVycjsNCj4gPiArDQo+ID4g KyAgICAgICBpbml0X3VzYl9hbmNob3IoJmJ0bXRrX2RhdGEtPmlzb3BrdF9hbmNob3IpOw0KPiA+ ICsgICAgICAgc3Bpbl9sb2NrX2luaXQoJmJ0bXRrX2RhdGEtPmlzb3J4bG9jayk7DQo+ID4gKw0K PiA+ICsgICAgICAgX19zZXRfbXRrX2ludHJfaW50ZXJmYWNlKGhkZXYpOw0KPiA+ICsNCj4gPiAr ICAgICAgIGVyciA9IGJ0bXRrX3N1Ym1pdF9pbnRyX3VyYihoZGV2LCBHRlBfS0VSTkVMKTsNCj4g PiArICAgICAgIGlmIChlcnIgPCAwKSB7DQo+ID4gKyAgICAgICAgICAgICAgIGJ0bXRrX3VzYl9p c29wa3Rfc3RvcChoZGV2KTsNCj4gPiArICAgICAgICAgICAgICAgYnRfZGV2X2VycihoZGV2LCAi SVNPIGludGYgbm90IHN1cHBvcnQgKCVkKSIsIGVycik7DQo+ID4gKyAgICAgICAgICAgICAgIHJl dHVybiBlcnI7DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgc2tiID0gX19oY2lf Y21kX3N5bmMoaGRldiwgMHhmZDk4LCBzaXplb2YoaXNvX3BhcmFtKSwNCj4gaXNvX3BhcmFtLA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgSENJX0lOSVRfVElNRU9VVCk7DQo+ID4g KyAgICAgICBpZiAoSVNfRVJSKHNrYikpIHsNCj4gPiArICAgICAgICAgICAgICAgYnRfZGV2X2Vy cihoZGV2LCAiRmFpbGVkIHRvIGFwcGx5IGlzbyBzZXR0aW5nDQo+ICglbGQpIiwgUFRSX0VSUihz a2IpKTsNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIoc2tiKTsNCj4gPiArICAg ICAgIH0NCj4gPiArICAgICAgIGtmcmVlX3NrYihza2IpOw0KPiA+ICsNCj4gPiArICAgICAgIHJl dHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtpbnQgYnRtdGtfdXNiX2lzb3BrdF9zdGFydChz dHJ1Y3QgaGNpX2RldiAqaGRldikNCj4gPiArew0KPiA+ICsgICAgICAgc3RydWN0IGJ0bXRrX2Rh dGEgKmJ0bXRrX2RhdGEgPSBoY2lfZ2V0X3ByaXYoaGRldik7DQo+ID4gKw0KPiA+ICsgICAgICAg aWYgKHRlc3RfYml0KEJUTVRLX0lTT1BLVF9SVU5OSU5HLCAmYnRtdGtfZGF0YS0+ZmxhZ3MpKSB7 DQo+ID4gKyAgICAgICAgICAgICAgIGlmIChidG10a19zdWJtaXRfaW50cl91cmIoaGRldiwgR0ZQ X05PSU8pIDwgMCkNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBjbGVhcl9iaXQoQlRNVEtf SVNPUEtUX1JVTk5JTkcsDQo+ICZidG10a19kYXRhLT5mbGFncyk7DQo+ID4gKyAgICAgICB9DQo+ ID4gKw0KPiA+ICsgICAgICAgcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArRVhQT1JUX1NZTUJPTF9H UEwoYnRtdGtfdXNiX2lzb3BrdF9zdGFydCk7DQo+ID4gKw0KPiA+ICtpbnQgYnRtdGtfdXNiX2lz b3BrdF9zdG9wKHN0cnVjdCBoY2lfZGV2ICpoZGV2KQ0KPiA+ICt7DQo+ID4gKyAgICAgICBzdHJ1 Y3QgYnRtdGtfZGF0YSAqYnRtdGtfZGF0YSA9IGhjaV9nZXRfcHJpdihoZGV2KTsNCj4gPiArDQo+ ID4gKyAgICAgICB1c2Jfa2lsbF9hbmNob3JlZF91cmJzKCZidG10a19kYXRhLT5pc29wa3RfYW5j aG9yKTsNCj4gPiArDQo+ID4gKyAgICAgICByZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICtFWFBPUlRf U1lNQk9MX0dQTChidG10a191c2JfaXNvcGt0X3N0b3ApOw0KPiA+ICsNCj4gPiAgaW50IGJ0bXRr X3VzYl9zZXR1cChzdHJ1Y3QgaGNpX2RldiAqaGRldikNCj4gPiAgew0KPiA+ICAgICAgICAgc3Ry dWN0IGJ0bXRrX2RhdGEgKmJ0bXRrX2RhdGEgPSBoY2lfZ2V0X3ByaXYoaGRldik7DQo+ID4gQEAg LTEwNjQsNiArMTM2MSwxMiBAQCBpbnQgYnRtdGtfdXNiX3NldHVwKHN0cnVjdCBoY2lfZGV2ICpo ZGV2KQ0KPiA+ICAgICAgICAgICAgICAgICBoY2lfc2V0X21zZnRfb3Bjb2RlKGhkZXYsIDB4RkQz MCk7DQo+ID4gICAgICAgICAgICAgICAgIGhjaV9zZXRfYW9zcF9jYXBhYmxlKGhkZXYpOw0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgIC8qIFNldCB1cCBJU08gaW50ZXJmYWNlIGFmdGVyIHByb3Rv Y29sIGVuYWJsZWQgKi8NCj4gPiArICAgICAgICAgICAgICAgaWYgKHRlc3RfYml0KEJUTVRLX0lT T1BLVF9PVkVSX0lOVFIsICZidG10a19kYXRhLQ0KPiA+ZmxhZ3MpKSB7DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgaWYgKCFidG10a191c2JfaXNvaW50Zl9pbml0KGhkZXYpKQ0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0X2JpdChCVE1US19JU09QS1RfUlVOTklO RywNCj4gJmJ0bXRrX2RhdGEtPmZsYWdzKTsNCj4gPiArICAgICAgICAgICAgICAgfQ0KPiA+ICsN Cj4gPiAgICAgICAgICAgICAgICAgZ290byBkb25lOw0KPiA+ICAgICAgICAgZGVmYXVsdDoNCj4g PiAgICAgICAgICAgICAgICAgYnRfZGV2X2VycihoZGV2LCAiVW5zdXBwb3J0ZWQgaGFyZHdhcmUg dmFyaWFudA0KPiAoJTA4eCkiLA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2JsdWV0b290aC9i dG10ay5oIGIvZHJpdmVycy9ibHVldG9vdGgvYnRtdGsuaA0KPiA+IGluZGV4IDQ3MTkzYjg2N2I5 Zi4uYjg4YjU5OTAxOGZhIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvYmx1ZXRvb3RoL2J0bXRr LmgNCj4gPiArKysgYi9kcml2ZXJzL2JsdWV0b290aC9idG10ay5oDQo+ID4gQEAgLTQwLDYgKzQw LDkgQEANCj4gPiAgI2RlZmluZSBNVEtfQlRfUkVTRVRfUkVHX0NPTk5WMyAgICAgICAgMHg3MDAy ODYxMA0KPiA+ICAjZGVmaW5lIE1US19CVF9SRUFEX0RFVl9JRCAgICAgMHg3MDAxMDIwMA0KPiA+ DQo+ID4gKy8qIE1lZGlhVGVrIElTTyBJbnRlcmZhY2UgKi8NCj4gPiArI2RlZmluZSBNVEtfSVNP X0lGTlVNICAgICAgICAgIDINCj4gPiArDQo+ID4gIGVudW0gew0KPiA+ICAgICAgICAgQlRNVEtf V01UX1BBVENIX0RXTkxEID0gMHgxLA0KPiA+ICAgICAgICAgQlRNVEtfV01UX1RFU1QgPSAweDIs DQo+ID4gQEAgLTE0Miw2ICsxNDUsOCBAQCBlbnVtIHsNCj4gPiAgICAgICAgIEJUTVRLX1RYX1dB SVRfVk5EX0VWVCwNCj4gPiAgICAgICAgIEJUTVRLX0ZJUk1XQVJFX0xPQURFRCwNCj4gPiAgICAg ICAgIEJUTVRLX0hXX1JFU0VUX0FDVElWRSwNCj4gPiArICAgICAgIEJUTVRLX0lTT1BLVF9PVkVS X0lOVFIsDQo+ID4gKyAgICAgICBCVE1US19JU09QS1RfUlVOTklORywNCj4gPiAgfTsNCj4gPg0K PiA+ICB0eXBlZGVmIGludCAoKmJ0bXRrX3Jlc2V0X3N5bmNfZnVuY190KShzdHJ1Y3QgaGNpX2Rl diAqLCB2b2lkICopOw0KPiA+IEBAIC0xNjQsNiArMTY5LDE0IEBAIHN0cnVjdCBidG10a19kYXRh IHsNCj4gPiAgICAgICAgIHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmOw0KPiA+ICAgICAgICAg c3RydWN0IHVzYl9hbmNob3IgKmN0cmxfYW5jaG9yOw0KPiA+ICAgICAgICAgc3RydWN0IHNrX2J1 ZmYgKmV2dF9za2I7DQo+ID4gKyAgICAgICBzdHJ1Y3QgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3Ig Kmlzb3BrdF90eF9lcDsNCj4gPiArICAgICAgIHN0cnVjdCB1c2JfZW5kcG9pbnRfZGVzY3JpcHRv ciAqaXNvcGt0X3J4X2VwOw0KPiA+ICsgICAgICAgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmlzb3Br dF9pbnRmOw0KPiA+ICsgICAgICAgc3RydWN0IHVzYl9hbmNob3IgaXNvcGt0X2FuY2hvcjsNCj4g PiArICAgICAgIHN0cnVjdCBza19idWZmICppc29wa3Rfc2tiOw0KPiA+ICsNCj4gPiArICAgICAg IC8qIHNwaW5sb2NrIGZvciBJU08gZGF0YSB0cmFuc21pc3Npb24gKi8NCj4gPiArICAgICAgIHNw aW5sb2NrX3QgaXNvcnhsb2NrOw0KPiA+ICB9Ow0KPiA+DQo+ID4gIHR5cGVkZWYgaW50ICgqd210 X2NtZF9zeW5jX2Z1bmNfdCkoc3RydWN0IGhjaV9kZXYgKiwNCj4gPiBAQCAtMTkzLDYgKzIwNiwx MyBAQCBpbnQgYnRtdGtfdXNiX3N1YnN5c19yZXNldChzdHJ1Y3QgaGNpX2Rldg0KPiAqaGRldiwg dTMyIGRldl9pZCk7DQo+ID4NCj4gPiAgaW50IGJ0bXRrX3VzYl9yZWN2X2FjbChzdHJ1Y3QgaGNp X2RldiAqaGRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYik7DQo+ID4NCj4gPiArc3RydWN0IHVyYiAq YWxsb2NfbXRrX2ludHJfdXJiKHN0cnVjdCBoY2lfZGV2ICpoZGV2LCBzdHJ1Y3QNCj4gc2tfYnVm ZiAqc2tiLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2JfY29tcGxldGVf dCB0eF9jb21wbGV0ZSk7DQo+ID4gKw0KPiA+ICtpbnQgYnRtdGtfdXNiX2lzb3BrdF9zdGFydChz dHJ1Y3QgaGNpX2RldiAqaGRldik7DQo+ID4gKw0KPiA+ICtpbnQgYnRtdGtfdXNiX2lzb3BrdF9z dG9wKHN0cnVjdCBoY2lfZGV2ICpoZGV2KTsNCj4gPiArDQo+ID4gIGludCBidG10a191c2Jfc2V0 dXAoc3RydWN0IGhjaV9kZXYgKmhkZXYpOw0KPiA+DQo+ID4gIGludCBidG10a191c2Jfc2h1dGRv d24oc3RydWN0IGhjaV9kZXYgKmhkZXYpOw0KPiA+IEBAIC0yNDYsNiArMjY2LDIyIEBAIHN0YXRp YyBpbnQgYnRtdGtfdXNiX3JlY3ZfYWNsKHN0cnVjdCBoY2lfZGV2DQo+ICpoZGV2LCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiKQ0KPiA+ICAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOw0KPiA+ICB9DQo+ ID4NCj4gPiArc3RhdGljIHN0cnVjdCB1cmIgKmFsbG9jX210a19pbnRyX3VyYihzdHJ1Y3QgaGNp X2RldiAqaGRldiwgc3RydWN0DQo+IHNrX2J1ZmYgKnNrYiwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVzYl9jb21wbGV0ZV90IHR4X2NvbXBsZXRlKQ0KPiA+ICt7 DQo+ID4gKyAgICAgICByZXR1cm4gRVJSX1BUUigtRU9QTk9UU1VQUCk7DQo+ID4gK30NCj4gPiAr DQo+ID4gK3N0YXRpYyBpbnQgYnRtdGtfdXNiX2lzb3BrdF9zdGFydChzdHJ1Y3QgaGNpX2RldiAq aGRldikNCj4gPiArew0KPiA+ICsgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOw0KPiA+ICt9DQo+ ID4gKw0KPiA+ICtzdGF0aWMgaW50IGJ0bXRrX3VzYl9pc29wa3Rfc3RvcChzdHJ1Y3QgaGNpX2Rl diAqaGRldikNCj4gPiArew0KPiA+ICsgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOw0KPiA+ICt9 DQo+ID4gKw0KPiA+ICBzdGF0aWMgaW50IGJ0bXRrX3VzYl9zZXR1cChzdHJ1Y3QgaGNpX2RldiAq aGRldikNCj4gPiAgew0KPiA+ICAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOw0KPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2JsdWV0b290aC9idHVzYi5jIGIvZHJpdmVycy9ibHVldG9vdGgvYnR1 c2IuYw0KPiA+IGluZGV4IDVkZTUwYzgzNTk2NC4uNTkwNjAyZGNlM2Y4IDEwMDY0NA0KPiA+IC0t LSBhL2RyaXZlcnMvYmx1ZXRvb3RoL2J0dXNiLmMNCj4gPiArKysgYi9kcml2ZXJzL2JsdWV0b290 aC9idHVzYi5jDQo+ID4gQEAgLTI2NDEsNiArMjY0MSw0MCBAQCBzdGF0aWMgaW50IGJ0dXNiX3Jl Y3ZfZXZlbnRfcmVhbHRlayhzdHJ1Y3QNCj4gaGNpX2RldiAqaGRldiwgc3RydWN0IHNrX2J1ZmYg KnNrYikNCj4gPiAgICAgICAgIHJldHVybiBoY2lfcmVjdl9mcmFtZShoZGV2LCBza2IpOw0KPiA+ ICB9DQo+ID4NCj4gPiArc3RhdGljIHZvaWQgYnR1c2JfbXRrX2NsYWltX2lzb19pbnRmKHN0cnVj dCBidHVzYl9kYXRhICpkYXRhKQ0KPiA+ICt7DQo+ID4gKyAgICAgICBzdHJ1Y3QgYnRtdGtfZGF0 YSAqYnRtdGtfZGF0YSA9IGhjaV9nZXRfcHJpdihkYXRhLT5oZGV2KTsNCj4gPiArICAgICAgIGlu dCBlcnI7DQo+ID4gKw0KPiA+ICsgICAgICAgZXJyID0gdXNiX2RyaXZlcl9jbGFpbV9pbnRlcmZh Y2UoJmJ0dXNiX2RyaXZlciwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJ0bXRrX2RhdGEtPmlzb3BrdF9pbnRmLA0KPiBkYXRhKTsNCj4gPiArICAgICAgIGlm IChlcnIgPCAwKSB7DQo+ID4gKyAgICAgICAgICAgICAgIGJ0bXRrX2RhdGEtPmlzb3BrdF9pbnRm ID0gTlVMTDsNCj4gPiArICAgICAgICAgICAgICAgYnRfZGV2X2VycihkYXRhLT5oZGV2LCAiRmFp bGVkIHRvIGNsYWltIGlzbw0KPiBpbnRlcmZhY2UiKTsNCj4gPiArICAgICAgICAgICAgICAgcmV0 dXJuOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIHNldF9iaXQoQlRNVEtfSVNP UEtUX09WRVJfSU5UUiwgJmJ0bXRrX2RhdGEtPmZsYWdzKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAr c3RhdGljIHZvaWQgYnR1c2JfbXRrX3JlbGVhc2VfaXNvX2ludGYoc3RydWN0IGJ0dXNiX2RhdGEg KmRhdGEpDQo+ID4gK3sNCj4gPiArICAgICAgIHN0cnVjdCBidG10a19kYXRhICpidG10a19kYXRh ID0gaGNpX2dldF9wcml2KGRhdGEtPmhkZXYpOw0KPiA+ICsNCj4gPiArICAgICAgIGlmIChidG10 a19kYXRhLT5pc29wa3RfaW50Zikgew0KPiA+ICsgICAgICAgICAgICAgICBidG10a191c2JfaXNv cGt0X3N0b3AoZGF0YS0+aGRldik7DQo+ID4gKyAgICAgICAgICAgICAgIGNsZWFyX2JpdChCVE1U S19JU09QS1RfUlVOTklORywgJmJ0bXRrX2RhdGEtDQo+ID5mbGFncyk7DQo+ID4gKw0KPiA+ICsg ICAgICAgICAgICAgICBkZXZfa2ZyZWVfc2tiX2lycShidG10a19kYXRhLT5pc29wa3Rfc2tiKTsN Cj4gPiArICAgICAgICAgICAgICAgYnRtdGtfZGF0YS0+aXNvcGt0X3NrYiA9IE5VTEw7DQo+ID4g KyAgICAgICAgICAgICAgIHVzYl9zZXRfaW50ZmRhdGEoYnRtdGtfZGF0YS0+aXNvcGt0X2ludGYs IE5VTEwpOw0KPiA+ICsgICAgICAgICAgICAgICB1c2JfZHJpdmVyX3JlbGVhc2VfaW50ZXJmYWNl KCZidHVzYl9kcml2ZXIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYnRtdGtfZGF0YS0NCj4gPmlzb3BrdF9pbnRmKTsNCj4gPiArICAgICAgIH0NCj4g PiArDQo+ID4gKyAgICAgICBjbGVhcl9iaXQoQlRNVEtfSVNPUEtUX09WRVJfSU5UUiwgJmJ0bXRr X2RhdGEtPmZsYWdzKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAgc3RhdGljIGludCBidHVzYl9tdGtf cmVzZXQoc3RydWN0IGhjaV9kZXYgKmhkZXYsIHZvaWQgKnJzdF9kYXRhKQ0KPiA+ICB7DQo+ID4g ICAgICAgICBzdHJ1Y3QgYnR1c2JfZGF0YSAqZGF0YSA9IGhjaV9nZXRfZHJ2ZGF0YShoZGV2KTsN Cj4gPiBAQCAtMjY1Nyw2ICsyNjkxLDkgQEAgc3RhdGljIGludCBidHVzYl9tdGtfcmVzZXQoc3Ry dWN0IGhjaV9kZXYNCj4gKmhkZXYsIHZvaWQgKnJzdF9kYXRhKQ0KPiA+ICAgICAgICAgaWYgKGVy ciA8IDApDQo+ID4gICAgICAgICAgICAgICAgIHJldHVybiBlcnI7DQo+ID4NCj4gPiArICAgICAg IGlmICh0ZXN0X2JpdChCVE1US19JU09QS1RfUlVOTklORywgJmJ0bXRrX2RhdGEtPmZsYWdzKSkN Cj4gPiArICAgICAgICAgICAgICAgYnR1c2JfbXRrX3JlbGVhc2VfaXNvX2ludGYoZGF0YSk7DQo+ ID4gKw0KPiA+ICAgICAgICAgYnR1c2Jfc3RvcF90cmFmZmljKGRhdGEpOw0KPiA+ICAgICAgICAg dXNiX2tpbGxfYW5jaG9yZWRfdXJicygmZGF0YS0+dHhfYW5jaG9yKTsNCj4gPg0KPiA+IEBAIC0y NjY4LDYgKzI3MDUsMjMgQEAgc3RhdGljIGludCBidHVzYl9tdGtfcmVzZXQoc3RydWN0IGhjaV9k ZXYNCj4gKmhkZXYsIHZvaWQgKnJzdF9kYXRhKQ0KPiA+ICAgICAgICAgcmV0dXJuIGVycjsNCj4g PiAgfQ0KPiA+DQo+ID4gK3N0YXRpYyBpbnQgYnR1c2Jfc2VuZF9mcmFtZV9tdGsoc3RydWN0IGhj aV9kZXYgKmhkZXYsIHN0cnVjdA0KPiBza19idWZmICpza2IpDQo+ID4gK3sNCj4gPiArICAgICAg IHN0cnVjdCB1cmIgKnVyYjsNCj4gPiArDQo+ID4gKyAgICAgICBCVF9EQkcoIiVzIiwgaGRldi0+ bmFtZSk7DQo+ID4gKw0KPiA+ICsgICAgICAgaWYgKGhjaV9za2JfcGt0X3R5cGUoc2tiKSA9PSBI Q0lfSVNPREFUQV9QS1QpIHsNCj4gPiArICAgICAgICAgICAgICAgdXJiID0gYWxsb2NfbXRrX2lu dHJfdXJiKGhkZXYsIHNrYiwNCj4gYnR1c2JfdHhfY29tcGxldGUpOw0KPiA+ICsgICAgICAgICAg ICAgICBpZiAoSVNfRVJSKHVyYikpDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IFBUUl9FUlIodXJiKTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBzdWJtaXRf b3JfcXVldWVfdHhfdXJiKGhkZXYsIHVyYik7DQo+ID4gKyAgICAgICB9IGVsc2Ugew0KPiA+ICsg ICAgICAgICAgICAgICByZXR1cm4gYnR1c2Jfc2VuZF9mcmFtZShoZGV2LCBza2IpOw0KPiA+ICsg ICAgICAgfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICBzdGF0aWMgaW50IGJ0dXNiX210a19zZXR1cChz dHJ1Y3QgaGNpX2RldiAqaGRldikNCj4gPiAgew0KPiA+ICAgICAgICAgc3RydWN0IGJ0dXNiX2Rh dGEgKmRhdGEgPSBoY2lfZ2V0X2RydmRhdGEoaGRldik7DQo+ID4gQEAgLTI2ODIsMTEgKzI3MzYs MjIgQEAgc3RhdGljIGludCBidHVzYl9tdGtfc2V0dXAoc3RydWN0IGhjaV9kZXYNCj4gKmhkZXYp DQo+ID4gICAgICAgICBidG10a19kYXRhLT5jdHJsX2FuY2hvciA9ICZkYXRhLT5jdHJsX2FuY2hv cjsNCj4gPiAgICAgICAgIGJ0bXRrX2RhdGEtPnJlc2V0X3N5bmMgPSBidHVzYl9tdGtfcmVzZXQ7 DQo+ID4NCj4gPiArICAgICAgIC8qIENsYWltIElTTyBkYXRhIGludGVyZmFjZSBhbmQgZW5kcG9p bnQgKi8NCj4gPiArICAgICAgIGJ0bXRrX2RhdGEtPmlzb3BrdF9pbnRmID0gdXNiX2lmbnVtX3Rv X2lmKGRhdGEtPnVkZXYsDQo+IE1US19JU09fSUZOVU0pOw0KPiA+ICsgICAgICAgaWYgKGJ0bXRr X2RhdGEtPmlzb3BrdF9pbnRmKQ0KPiA+ICsgICAgICAgICAgICAgICBidHVzYl9tdGtfY2xhaW1f aXNvX2ludGYoZGF0YSk7DQo+ID4gKw0KPiA+ICAgICAgICAgcmV0dXJuIGJ0bXRrX3VzYl9zZXR1 cChoZGV2KTsNCj4gPiAgfQ0KPiA+DQo+ID4gIHN0YXRpYyBpbnQgYnR1c2JfbXRrX3NodXRkb3du KHN0cnVjdCBoY2lfZGV2ICpoZGV2KQ0KPiA+ICB7DQo+ID4gKyAgICAgICBzdHJ1Y3QgYnR1c2Jf ZGF0YSAqZGF0YSA9IGhjaV9nZXRfZHJ2ZGF0YShoZGV2KTsNCj4gPiArICAgICAgIHN0cnVjdCBi dG10a19kYXRhICpidG10a19kYXRhID0gaGNpX2dldF9wcml2KGhkZXYpOw0KPiA+ICsNCj4gPiAr ICAgICAgIGlmICh0ZXN0X2JpdChCVE1US19JU09QS1RfUlVOTklORywgJmJ0bXRrX2RhdGEtPmZs YWdzKSkNCj4gPiArICAgICAgICAgICAgICAgYnR1c2JfbXRrX3JlbGVhc2VfaXNvX2ludGYoZGF0 YSk7DQo+ID4gKw0KPiA+ICAgICAgICAgcmV0dXJuIGJ0bXRrX3VzYl9zaHV0ZG93bihoZGV2KTsN Cj4gPiAgfQ0KPiA+DQo+ID4gQEAgLTM3OTMsOSArMzg1OCwxMiBAQCBzdGF0aWMgaW50IGJ0dXNi X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlDQo+ICppbnRmLA0KPiA+ICAgICAgICAgICAgICAg ICBoZGV2LT5tYW51ZmFjdHVyZXIgPSA3MDsNCj4gPiAgICAgICAgICAgICAgICAgaGRldi0+Y21k X3RpbWVvdXQgPSBidG10a19yZXNldF9zeW5jOw0KPiA+ICAgICAgICAgICAgICAgICBoZGV2LT5z ZXRfYmRhZGRyID0gYnRtdGtfc2V0X2JkYWRkcjsNCj4gPiArICAgICAgICAgICAgICAgaGRldi0+ c2VuZCA9IGJ0dXNiX3NlbmRfZnJhbWVfbXRrOw0KPiA+ICAgICAgICAgICAgICAgICBzZXRfYml0 KEhDSV9RVUlSS19CUk9LRU5fRU5IQU5DRURfU0VUVVBfU1lOQ19DT05OLA0KPiAmaGRldi0+cXVp cmtzKTsNCj4gPiAgICAgICAgICAgICAgICAgc2V0X2JpdChIQ0lfUVVJUktfTk9OX1BFUlNJU1RF TlRfU0VUVVAsICZoZGV2LQ0KPiA+cXVpcmtzKTsNCj4gPiAgICAgICAgICAgICAgICAgZGF0YS0+ cmVjdl9hY2wgPSBidG10a191c2JfcmVjdl9hY2w7DQo+ID4gKyAgICAgICAgICAgICAgIGRhdGEt PnN1c3BlbmQgPSBidG10a191c2JfaXNvcGt0X3N0b3A7DQo+ID4gKyAgICAgICAgICAgICAgIGRh dGEtPnJlc3VtZSA9IGJ0bXRrX3VzYl9pc29wa3Rfc3RhcnQ7DQo+IA0KPiBTbWFsbCBuaXRwaWNr LCBhbHRob3VnaCBpdCBpcyBqdXN0IGNsZWFuaW5nIHVwIHRoZSBpc28gZW5kcG9pbnQgdGhlDQo+ IHN1c3BlbmQgYW5kIHJlc3VtZSBzaGFsbCBwcm9iYWJseSBiZSBuYW1lZCBtb3JlIGdlbmVyaWNh bGx5LCBlLmc6DQo+IGJ0bXRrX3VzYl9zdXNwZW5kLCBldGMsIHNvIGxhdGVyIGlmIHlvdSBuZWVk IHRvIGFkZCBtb3JlIGNvZGUgd2UNCj4gZG9uJ3QNCj4gbmVlZCB0byByZW5hbWUgdGhlIGZ1bmN0 aW9uIG5hbWVzLg0KPiANClRoYW5rcyBmb3IgeW91ciBzdWdnZXN0aW9uLiBJbmRlZWQsIGNoYW5n ZSBhIG5hbWluZyB3aWxsIGdldCBhIGJldHRlcg0Kc2NhbGFiaWxpdHkgaW4gdGhlIGZ1dHVyZSBp ZiB0aGVyZSBpcyBhbm90aGVyIGFjdGlvbiBuZWVkIHRvIGJlIGFkZGVkDQpkdXJpbmcgc3VzcGVu ZCBhbmQgcmVzdW1lLiBJJ2xsIHJldmlldyB0aGUgZnVuY3Rpb24gbmFtaW5nIGFnYWluIGFuZA0K YWRkIHNvbWUgY29tbWVudCB0byBlbnN1cmUgb3VyIG1lbWJlciBjYW4gdW5kZXJzdGFuZCB0aGVz ZSBzZWN0aW9uLg0KDQpUaGFua3MsDQpDaHJpcyBMdQ0KPiA+ICAgICAgICAgfQ0KPiA+DQo+ID4g ICAgICAgICBpZiAoaWQtPmRyaXZlcl9pbmZvICYgQlRVU0JfU1dBVkUpIHsNCj4gPiAtLQ0KPiA+ IDIuMTguMA0KPiA+DQo+IA0KPiANCj4gLS0gDQo+IEx1aXogQXVndXN0byB2b24gRGVudHoNCg==