From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011057.outbound.protection.outlook.com [52.101.65.57]) (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 C68231DE4D2; Fri, 6 Jun 2025 08:14:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.57 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749197645; cv=fail; b=ViQ357tLTzfxjRaf7mutM/2IbtUSKKfLRWFUh+QOIryisSB/nI5vHBHBSxxEEvJb/AiPx0aRvkhsFYzvdZriaNlnI/tDjYCa5ZzQXpbzgaLVQBrv+w2MzHGMB2j1GVAbQpmx4IHTGrtXez2XT7Kv+LAey3FWrOxUck5BTcqOVPU= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749197645; c=relaxed/simple; bh=8/NZ91/74jkOgSUGexNLRv+dfUmjp6fpmQ3XUHb9jc8=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=X54wUHHztinwnxPiWbnp33LSGpn3QkHmkHHCptkrmhMuTWFrieIduvPGsk9c/XNNVVWgTXNB/eK9ZkCAqkFTXBZaxZilKHZDFXacW5IMe2wFTJpJUjmCOrWz/JYVU3nwwwAi2jqUPDUfg4CKNAr0uoTNmXcIVbhctkegCv0TUfE= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=siemens.com; spf=pass smtp.mailfrom=siemens.com; dkim=pass (2048-bit key) header.d=siemens.com header.i=@siemens.com header.b=mx/UzUmh; arc=fail smtp.client-ip=52.101.65.57 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=siemens.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=siemens.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siemens.com header.i=@siemens.com header.b="mx/UzUmh" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pekkuKF+dc72YZ+BBB7Ic93FYBr1yGs4mSv3fDnNF6cK0kZFibtPMOYREQN5L/thVR/Kx2Nuj43AvwPyQ7Z2tlaZTbZ+6gDhCrJdpXsbvDW+czIXBZNMU6hN/mgWtW2zQ3RmJrXDgM8facKD9jU6D/9oeFoB+SdUfgmAcrB/oq9gpwewvDpPDhSKzyvH58vHHdaTAF6YCkZpucRjpj6wApiCrM4amcIBIb7M8dNe6FYHiK2y3LYIf/CqQ2EwnnuMUgtoUiaUgvIqIY4M8UyOOXHOSm2Ejd97M+iCImylm14DRQ8FmxagpDrf8dYsfBdxezsxf2Thqt1fe0HzRGj1rw== 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=8/NZ91/74jkOgSUGexNLRv+dfUmjp6fpmQ3XUHb9jc8=; b=Ic3eHQwCQF2GkXHDx5efwrLDij2lUTXKJNDQOwK6kGmVDJsDA4l3ajZRSNN8E/c34k9YoYbDZobipNLiMtdkAZ3OQD+AfevqmV4ZDcc+u6kjgffk70oDtT/LQm/PBaLcCtVJiXW6m1Foy0Wm91H4rz+uz4I7+Vr7Agd+EUJTxFUtZIC4b0bF4OtaU7OckJShNre9LYjCrfTdNzAUUu0o+Pq14j0ZtKwH0uB9fnAr2x+NaVlRZWXBv5xT5IgkaQfWjt8q16/FWkt2IQD1yfmGDYBK+IYS7mEZm+kkChW6x/HcFiXqeL9XhjgTvEF+Rfdy+AxbfgoEoi0W93NVywSpLQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com; dkim=pass header.d=siemens.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siemens.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8/NZ91/74jkOgSUGexNLRv+dfUmjp6fpmQ3XUHb9jc8=; b=mx/UzUmhNSxiSU7Ns5HIEaFROYIbvqyNLEDtyqPjPDbkl4f0Gv7wgcc7+G/m0txOnvKjLvuLUJwa6wRleqtae34ObcU7PRKatUy6FL9/zjvgMSB94Gw06xCNep23RKK/N7UQ8NCg7qniTxmZBZyPsgPl6jNVGkapLWM2tqfZvWZALsV3c3lMjCkpvlPce9MvtZOT7Q4FHd19MKhPwoudwI7HVlCRl5uJuGQvGiT4mhuwS680mp2FfQNlro4rRiUhPJ2EYXRwG5E4+ZkGupIDndRoGlzvu2q4okeXlGLvsEFx1yjHaqGsmSUTAwm5Jp6R1TU6XPE8OgvTyjJdeU49EQ== Received: from AM6PR10MB2375.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:49::16) by DB9PR10MB6354.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:3c6::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.34; Fri, 6 Jun 2025 08:13:58 +0000 Received: from AM6PR10MB2375.EURPRD10.PROD.OUTLOOK.COM ([fe80::f29:ba6f:4b5c:650b]) by AM6PR10MB2375.EURPRD10.PROD.OUTLOOK.COM ([fe80::f29:ba6f:4b5c:650b%6]) with mapi id 15.20.8792.033; Fri, 6 Jun 2025 08:13:58 +0000 From: "Flot, Julien" To: "rostedt@goodmis.org" CC: "Ziegler, Andreas" , "linux-rt-users@vger.kernel.org" , "mathieu.desnoyers@efficios.com" , "paulmck@kernel.org" , "MOESSBAUER, Felix" , "Schmidt, Adriaan" , "Kiszka, Jan" , "linux-trace-kernel@vger.kernel.org" Subject: Re: ftrace regression with PREEMPT_RT kernels Thread-Topic: ftrace regression with PREEMPT_RT kernels Thread-Index: AQHb1fikfPRE6ZFei0qJvAAWQ1AHBbP0ftIAgAAlJYCAAAKMAIAAUUOAgADSL4A= Date: Fri, 6 Jun 2025 08:13:58 +0000 Message-ID: References: <240017f656631c7dd4017aa93d91f41f653788ea.camel@siemens.com> <20250605082846.179bca96@gandalf.local.home> <5f721932e0bbf880d2817498e35b54eabb167d98.camel@siemens.com> <20250605105050.219a4a1c@gandalf.local.home> <20250605154141.5b496e2c@gandalf.local.home> In-Reply-To: <20250605154141.5b496e2c@gandalf.local.home> 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=siemens.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM6PR10MB2375:EE_|DB9PR10MB6354:EE_ x-ms-office365-filtering-correlation-id: b8110785-2e26-437f-000b-08dda4d21680 x-ms-exchange-atpmessageproperties: SA x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?MXpLd092MkRoWGQ5dXdXelVXQW85TlVMK2RuZzdwam9ybTAvZ3JoV20vbnlx?= =?utf-8?B?VXFJeDdyelM4eXJuWDhOcVhrRjRmRDEwWkJUN2NDS25rampJRkxwaWlCZzlG?= =?utf-8?B?NFY3TXl0VzNHV2FQZVB1T0JUVy80K2J3NFg0dmJkazN5VzcvUGhlTjFqVEhm?= =?utf-8?B?MWF6R25CbGRUeWVsdCtvVjl2NnZUYTdVRzhOSHJqWjUzQSs4WHdxUHE3OEUw?= =?utf-8?B?WXFndFFtR1lEaTJCM3BLOTdibU1FUFk4WTcxZy9Zbkh0VlNPZjZhVkpHVUVS?= =?utf-8?B?clZxZUtLSDZxendHT0ZqZTRkakVUaWJCZ3lFcXd4VWZSN2YveC8rYmFPVjQr?= =?utf-8?B?ODNWTjZac1I3TGJ5V2poN25TV2lTNTV6MFlObVN5OThFQ2Z4QlhlZy9NVjdm?= =?utf-8?B?bnphRTc2V1pyMFBLVWd6d2F2dWc1bkxHejZpQUJrY3RZTnNkT1M4WUVCYTIv?= =?utf-8?B?amtYREdVcE12U25pL2oxM0g3RktyQ2xyaGtCZzBYSHZySnpYcHQvcHFNN0tp?= =?utf-8?B?L05PODJaeXFmUE5kcjRhZGh0YnlYa3JESHExdWxBRXErdFFnK29kNHNrVkl4?= =?utf-8?B?UmJrQlQ4bkd3VGhUeWtYcXNub3NNWS9pUEFOUERPdmJ1b0V0bXlzT2d5WXVQ?= =?utf-8?B?ZVdhSEJRQ2RUR3dOaWY2Z1JZNk5MTUViWkdoTnVMQ3JJNXdkbldINktRL1JU?= =?utf-8?B?Vm93Z0VGc2gyL3pkaElHTnFiajJIWTd3SzhBSzAzZStqczRoTEpsWXpGQjJk?= =?utf-8?B?bmNwWHh2N0M5d3JhZVl1bkdZcERacEk4UlRyYnUwMEtmNkhzZkFlTndRTmFu?= =?utf-8?B?V0oyTUd6OFR0VU9jdDR3WTBvUjRXd21WRVc0RXE2eEJ4VXd0QVVIV01SemNm?= =?utf-8?B?SHpGZW8wWnljNUNXbXUyQ1ZpdTdOTzRYTDR4YnM0RFB3a2h0bmVHQk5rZGJi?= =?utf-8?B?dExVZElBd2ZPWU9yaHlSVmlhMWw1MmJnSmZiRnR1WFdiOVlMRUhUb3JMMkwx?= =?utf-8?B?dzBzQUd3Mys2MmNtcVJkejd6RHlTbWpWeWwzV0k0cDBGZHc5YjZLaWpDNU8r?= =?utf-8?B?UUNGeWloUlI0Nyt1NXhoZ1c4ang4N3NFRTdnd0dLV3hIY3l4ZkhoN0lxUzda?= =?utf-8?B?cmtYbzF5SzJMM1BHZGhSdXJKdDQ5aW1VeFhQMjZqc0Z0aEFvRldCWUF6YTdH?= =?utf-8?B?dmJPZkpCQUY1dzZjR2hrbUpYN2M4TzZpMGllTjVOanRKMzV6eXVNM0I4Mjh1?= =?utf-8?B?dlZDK1N2MDkyWEdXRnlSUVo0TVlOOXFsR25UcmZ0Lzl4N1ZleXp0U1N6a1Iw?= =?utf-8?B?dng2TGNMYzMzVkRORGp1dlltV0tkTmNMV1dOcTA4bnB3bTFRckRRWXlFN2RR?= =?utf-8?B?UTR5a01hajdQd3hoWFlNNkY0amlHT3IrNURIdnlXWnQyM3V1NlZlNXFiMmJK?= =?utf-8?B?TWlDV2hIbVpNUTkwM1A0ejIxM2hXWHpGZG5vK3V2TDltdmxZMEFDVGlnZ09D?= =?utf-8?B?eEFLMXFPMHgyYW1tWllsaHZPRmJCNm9oeVBIU3pGc0dMZ2pLUnhMa1plY2hL?= =?utf-8?B?NUZoaHdqbDBNTmxrVUdZR044SlRMMzJ2a0xlc1JreTM4SVpVQjZtblJ1RnVV?= =?utf-8?B?U2JCclNKZzlPTVBXMGl6M2pDTWYwNlBMQ1N3M09pSkdwNFdlZTNpUHl0RjZx?= =?utf-8?B?UmpZLzZJME1qaFA5NFpnOHJQVHNNQVJxajlqZ1pwV3BWYnBneVFOMk11Tk1k?= =?utf-8?B?YU9lc1VjNGowcEw1MEhrUUx4bFRFanpnK3BZTzdwUEsrVlJMbURjcnNlTG5W?= =?utf-8?B?S0hyN2IxMDJaR2doODR3b0U3WUpQVlVVZGRGZUVSeXFUMElCSHVoS1g3cGtk?= =?utf-8?B?MTRPdXJncGdxa2EwZlNLUGRLU1c2L2hheG9YUHV1Rmw0cjRNeHBnUVl3Wmt6?= =?utf-8?Q?1f34iEPqgtI=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR10MB2375.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cDR4REEyUXJPQVBxZVl2WEN4c1lwRXc2QmVCM3NiWEh3MFpmcWdzTUlWcnF4?= =?utf-8?B?YXhGSk04Z1g4eCtsYzdSVnRHODA3cHBhSDhaWTRsUWhCK1Y3aFhDZk95YXZp?= =?utf-8?B?eFdTa3ptd2paNC9OOWNZajBQNS9mNWp3dDUvL3lCRzFUcWl5QTdkek8xWWN5?= =?utf-8?B?SzFKUlU0ZG1PQWgyQWIvUlFlQWl0a0tSTUU0aHdZY1N1NStYTXNaa0M5UVZp?= =?utf-8?B?NWFvTGlHa0FUQUtDbGg1NkF6eW85bjVmOGVNZmlGM0ZtU3AvRkNaSDVvcUE5?= =?utf-8?B?RmJITWx2eStjUE4rMzFabU9wbWo2c3FiYTVnQnZDSVV5QXA5dTZJSVRyS01o?= =?utf-8?B?bUYxdzRXcmxXTFkrcURyU055Z1JIeDJiWEhCQ2ZUV3VVbEI3S1IzbmUyV0dX?= =?utf-8?B?V0VYclhDb2piTFI4d2dWK2R5aTg3dCs2Z0kvMUZMeU9zUml5c0M1M3kycHdm?= =?utf-8?B?Q2ZxV1E0QjhZTHRVTk0vYm5MOVhwU0hVbkZKSktCZ0Z0R05nR0hwVGNLMkYz?= =?utf-8?B?NG9sQVl3TFhmWDR4clBiazgrTkF0cE5WYnZZNXFNbldadTJwU1N5bDhjMWdl?= =?utf-8?B?amJVN3EzSCszRmdXOVYvbkRUcEc0eXNOaGRabVIyZjdkWTNmY1M5QytwaGFQ?= =?utf-8?B?SkFNb0FMRXV4VlpVaWhOZityQjlrUXBXVXpmUTRaczA2YUc4eFRCSkd6a3Bv?= =?utf-8?B?bGJ4a0xpUWRvcHRTd3NMdnNuMlgyMjR5bWJXMmJ3ZHU4RENERlNaWDNaWkk1?= =?utf-8?B?UTNmemFWME5RQVVaYlBnSXZJcEtVWmNwazdpM1g2MmNSdzR3UExQSXkxRU0y?= =?utf-8?B?dG9VTnBzb2pLdmRFN2trb3dtN1paQ0xmVno1K0gvb1ZUOHg5akw0QTJrdWpJ?= =?utf-8?B?L3NMVHVzK2NQVXprYzkxNUpieVlXNVhSY2doVEsvdmlTZ3pwbFErc0RYYzFX?= =?utf-8?B?Nmk0WlR4Zlc1aEhHbW5BTGdyMG42bldLcTNyM1JvM3BPSlRwTmlEVGtDRjVT?= =?utf-8?B?OGdualJndkVsSjdSeURGKzlVbkx5QlU1RkxoSzRIMkJUOEUyWVVzWGg3bTV0?= =?utf-8?B?bjdOSHJiUE9BY1gxc0J4Y0htc1hPdzNxc0tjU3JaZkY4SmwrT1M2T2ZyeTha?= =?utf-8?B?SythclNtMUdLMmVic24xZ3luN0N3VzJlNjBxQXRIYTQvdlhCRDQ3ck0vL2Mw?= =?utf-8?B?M1FmNmlDTmhOemtZczg5MGNtbE1QYU51RHd1LzFuaWlqZmljVyt3N0Q5ejFJ?= =?utf-8?B?dXg3UU1aQ0p2UGhDSW9ZNTRIaUF2ZnhOZWZSQzJJanJtZWt5bUcrNm9QbCtK?= =?utf-8?B?OVAyUWR3cVJJVzFSNWlGVEorcjNLQTB4UFY0UkpBWHpSc0xjUHJBSksybEVn?= =?utf-8?B?VUw3WTNRZDNWbWU5WGxobHBnb1dqMzdjSkpGWXk1aVIvUDVpajgwZ1llYnI0?= =?utf-8?B?Q2FPTkNTNHBwc1pVSjhoZnJyKzRyWVBnTzljN1VKb3UxV2dNb2VoWGRHY1dW?= =?utf-8?B?QTNaR0tmMUE3UXNKQ2tRTlRDdWozcG5VbjJpVGxKMU1UcElxTzlqbE1EMUNR?= =?utf-8?B?bU8zRkk0dkpJZVhmK1BiOXlMemhvQVo1TGJ5SFZnTXZRaUJ4WFVaa2taWkQr?= =?utf-8?B?MG5NV2hsbEQ2Nm1WVEZKTEN4Q2o3TG9JdmQvb0Z5NzF5WG9WRS9YaGdMZEo2?= =?utf-8?B?VkswajVqbjFPU2xsMjJIRFN4Tm1oU1VKMDdwUmhWSGhkbndTUXdXdFFjYzRm?= =?utf-8?B?S1FtQTNRd3NzS2NwSFhMZHR0MnNWczQ5YlYxVmVYRERaODh2d3p4Znd4enFJ?= =?utf-8?B?RW1DSUVFQURQaVFSZm5vZ1UxQzJGSWx1Rkd4MFJCNjIxL2JFSXIrSXhzZmE0?= =?utf-8?B?RXZmVmY5T04yRzQ1L1c5QXcxUnRNdFh6ZnZBU2hTY0F2aG9vNkxoUU9Rb1BU?= =?utf-8?B?cUI2b0ZlTytzdkRxbGVrTnVYM0ZNMkliK1VyTHFHeGdUNXNsNElqSjYxMTlv?= =?utf-8?B?TEdadllydy83VVo2QjdtSVArb0VWL1JYK1JHOU1oZjJnK0FjZmJiTlJGQUls?= =?utf-8?B?dmxBRks0T09WcG9wRTdUdVE2bmtnRUl2OFFIM0QzOHQ1UzdIMzByanVUSGJh?= =?utf-8?B?N0ZvdjIvOFM3cThLczdEa1pQV0l4UW9nWnliQWNFeGs0eE1uTWl3bDZLMmgy?= =?utf-8?B?NUE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-trace-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM6PR10MB2375.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: b8110785-2e26-437f-000b-08dda4d21680 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jun 2025 08:13:58.3711 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 3ynMMC53Gbe50ghVYjnMozyzNs3T+O7t93ErjTZ8hFtpu3TD0wJNpraICdNnfO/qk6f8H3zmZWqQs2PSHObKtQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR10MB6354 T24gVGh1LCAyMDI1LTA2LTA1IGF0IDE1OjQxIC0wNDAwLCBTdGV2ZW4gUm9zdGVkdCB3cm90ZToN Cj4gT24gVGh1LCA1IEp1biAyMDI1IDEwOjUwOjUwIC0wNDAwDQo+IFN0ZXZlbiBSb3N0ZWR0IDxy b3N0ZWR0QGdvb2RtaXMub3JnPiB3cm90ZToNCj4gDQo+ID4gT24gVGh1LCA1IEp1biAyMDI1IDE0 OjQxOjQzICswMDAwDQo+ID4gIkZsb3QsIEp1bGllbiIgPGp1bGllbi5mbG90QHNpZW1lbnMuY29t PiB3cm90ZToNCj4gPiANCj4gPiANCj4gPiA+IEkgaGF2ZSB0cmllZCB0aGUgcGF0Y2gsIEkgYW0g YWZyYWlkIGl0IGRvZXMgbm90IGhlbHAuIEkgaGF2ZQ0KPiA+ID4gcm91Z2hseQ0KPiA+ID4gdGhl IHNhbWUgcmVzdWx0cyBhcyBpbiBwcmV2aW91cyB2ZXJzaW9ucy7CoCANCj4gPiANCj4gPiBCYWgs IHRoZXJlJ3MgdGhyZWUgbW9yZSBwbGFjZXMgdGhhdCBjYWxsDQo+ID4gdHJhY2Vwb2ludF9zeW5j aHJvbml6ZV91bnJlZ2lzdGVyKCkgOi1wDQo+ID4gDQo+ID4gTGV0IG1lIHRyeSB0byBnZXQgcmlk IG9mIHRob3NlIHRvby4NCj4gDQo+IFNvIEkgZGVjaWRlZCB0byBlbmFibGUgUFJFRU1QVF9SVCBh bmQgeWVzLCBJIGNhbiByZXByb2R1Y2UgdGhpcyB0b28uDQo+IA0KPiBJIHJhbiB0aGUgZm9sbG93 aW5nOg0KPiANCj4gwqAgIyB0cmFjZS1jbWQgc3FsaGlzdCAtZSAtbiBzY2hlZF9zdGFja8KgIHNl bGVjdCBzdGFydC5wcmV2X3N0YXRlIGFzDQo+IHN0YXRlLCBlbmQubmV4dF9jb21tIGFzIGNvbW0s IFRJTUVTVEFNUF9ERUxUQV9VU0VDUyBhcyBkZWx0YSzCoA0KPiBzdGFydC5TVEFDS1RSQUNFIGFz IHN0YWNrIGZyb20gc2NoZWRfc3dpdGNoIGFzIHN0YXJ0IGpvaW4NCj4gc2NoZWRfc3dpdGNoIGFz IGVuZCBvbiBzdGFydC5wcmV2X3BpZCA9IGVuZC5uZXh0X3BpZA0KPiANCj4gVGhlIGFib3ZlIGNy ZWF0ZXMgYSBzeW50aGV0aWMgZXZlbnQgdGhhdCBjcmVhdGVzIGEgc3RhY2sgdHJhY2Ugd2hlbiBh DQo+IHRhc2sNCj4gc2NoZWR1bGVzIG91dCBhbmQgcmVjb3JkcyBpdCB3aXRoIHRoZSB0aW1lIGl0 IHNjaGVkdWxlZCBiYWNrIGluLg0KPiBCYXNpY2FsbHkNCj4gdGhlIHRpbWUgYSB0YXNrIGlzIG9m ZiB0aGUgQ1BVLiBJdCBhbHNvIHJlY29yZHMgdGhlIHN0YXRlIG9mIHRoZSB0YXNrDQo+IHdoZW4N Cj4gaXQgbGVmdCB0aGUgQ1BVIChydW5uaW5nLCBibG9ja2VkLCBzbGVlcGluZywgZXRjKS4gSXQg YWxzbyBzYXZlcyB0aGUNCj4gY29tbQ0KPiBvZiB0aGUgdGFzayBhcyAiY29tbSIgKG5lZWRlZCBm b3IgdGhlIG5leHQgY29tbWFuZCkuDQo+IA0KPiDCoCAjIGVjaG8NCj4gJ2hpc3Q6a2V5cz1zdGF0 ZSxzdGFjay5zdGFja3RyYWNlOnZhbHM9ZGVsdGE6c29ydD1zdGF0ZSxkZWx0YSBpZiBjb21tDQo+ ID09ICJ0cmFjZS1jbWQiICYmwqAgc3RhdGUgJiAzJyA+DQo+IC9zeXMva2VybmVsL3RyYWNpbmcv ZXZlbnRzL3N5bnRoZXRpYy9zY2hlZF9zdGFjay90cmlnZ2VyDQo+IA0KPiBUaGUgYWJvdmUgY3Jl YXRlcyBhIGhpc3RvZ3JhbSB3aXRoIGJ1Y2tldHMgcGVyIHN0YXRlLCBwZXIgc3RhY2ssIGFuZA0K PiB0aGUNCj4gdmFsdWUgb2YgdGhlIHRvdGFsIHRpbWUgaXQgd2FzIG9mZiB0aGUgQ1BVIGZvciB0 aGF0IHN0YWNrIHRyYWNlLiBJdA0KPiBmaWx0ZXJzDQo+IG9uIHRhc2tzIHdpdGggImNvbW0gPT0g dHJhY2UtY21kIiBhbmQgb25seSB0aGUgc2xlZXBpbmcgYW5kIGJsb2NrZWQNCj4gc3RhdGVzDQo+ ICgxIC0gc2xlZXBpbmcsIDIgLSBibG9ja2VkKS4NCj4gDQo+IMKgICMgdHJhY2UtY21kIHJlY29y ZCAtcCBmdW5jdGlvbiBzbGVlcCAxDQo+IA0KPiDCoCAjIGNhdCAvc3lzL2tlcm5lbC90cmFjaW5n L2V2ZW50cy9zeW50aGV0aWMvc2NoZWRfc3RhY2svaGlzdCB8IHRhaWwNCj4gLTUwDQo+IMKgwqDC oMKgwqDCoMKgwqAgcGF0aF9vcGVuYXQrMHgxYTM2LzB4Mjk5MA0KPiDCoMKgwqDCoMKgwqDCoMKg IGRvX2ZpbHBfb3BlbisweDFjNS8weDQyMA0KPiDCoMKgwqDCoMKgwqDCoMKgIGRvX3N5c19vcGVu YXQyKzB4ZWQvMHgxODANCj4gwqDCoMKgwqDCoMKgwqDCoCBfX3g2NF9zeXNfb3BlbmF0KzB4MTA4 LzB4MWQwDQo+IMKgwqDCoMKgwqDCoMKgwqAgZG9fc3lzY2FsbF82NCsweDdiLzB4NDIwDQo+IH0g aGl0Y291bnQ6wqDCoMKgwqDCoMKgwqDCoMKgIDLCoCBkZWx0YTrCoMKgwqDCoMKgIDc0NzgxDQo+ IHsgc3RhdGU6wqDCoMKgwqDCoMKgwqDCoMKgIDIsIHN0YWNrLnN0YWNrdHJhY2XCoMKgwqDCoMKg wqDCoMKgDQo+IF9fc2NoZWR1bGUrMHgxNTQ1LzB4MzcwMA0KPiDCoMKgwqDCoMKgwqDCoMKgIHNj aGVkdWxlKzB4ZTIvMHgzOTANCj4gwqDCoMKgwqDCoMKgwqDCoCBzY2hlZHVsZV90aW1lb3V0KzB4 MTc1LzB4MjAwDQo+IMKgwqDCoMKgwqDCoMKgwqAgd2FpdF9mb3JfY29tcGxldGlvbl9zdGF0ZSsw eDI5NC8weDQ0MA0KPiDCoMKgwqDCoMKgwqDCoMKgIF9fd2FpdF9yY3VfZ3ArMHgyNDcvMHg0ZjAN Cj4gwqDCoMKgwqDCoMKgwqDCoCBzeW5jaHJvbml6ZV9yY3VfdGFza3NfZ2VuZXJpYysweDE1MS8w eDIzMA0KPiDCoMKgwqDCoMKgwqDCoMKgIGFwcGx5X3N1YnN5c3RlbV9ldmVudF9maWx0ZXIrMHg3 N2MvMHgxMzAwDQo+IMKgwqDCoMKgwqDCoMKgwqAgc3Vic3lzdGVtX2ZpbHRlcl93cml0ZSsweDY3 LzB4YzANCj4gwqDCoMKgwqDCoMKgwqDCoCB2ZnNfd3JpdGUrMHgxZTIvMHhlYjANCj4gwqDCoMKg wqDCoMKgwqDCoCBrc3lzX3dyaXRlKzB4ZmYvMHgxZDANCj4gwqDCoMKgwqDCoMKgwqDCoCBkb19z eXNjYWxsXzY0KzB4N2IvMHg0MjANCj4gwqDCoMKgwqDCoMKgwqDCoCBlbnRyeV9TWVNDQUxMXzY0 X2FmdGVyX2h3ZnJhbWUrMHg3Ni8weDdlDQo+IH0gaGl0Y291bnQ6wqDCoMKgwqDCoMKgwqDCoMKg IDHCoCBkZWx0YTrCoMKgwqDCoCAyMTA5NTcNCj4geyBzdGF0ZTrCoMKgwqDCoMKgwqDCoMKgwqAg Miwgc3RhY2suc3RhY2t0cmFjZcKgwqDCoMKgwqDCoMKgwqANCj4gX19zY2hlZHVsZSsweDE1NDUv MHgzNzAwDQo+IMKgwqDCoMKgwqDCoMKgwqAgc2NoZWR1bGUrMHhlMi8weDM5MA0KPiDCoMKgwqDC oMKgwqDCoMKgIHNjaGVkdWxlX3RpbWVvdXQrMHgxNzUvMHgyMDANCj4gwqDCoMKgwqDCoMKgwqDC oCB3YWl0X2Zvcl9jb21wbGV0aW9uX3N0YXRlKzB4Mjk0LzB4NDQwDQo+IMKgwqDCoMKgwqDCoMKg wqAgX193YWl0X3JjdV9ncCsweDI0Ny8weDRmMA0KPiDCoMKgwqDCoMKgwqDCoMKgIHN5bmNocm9u aXplX3JjdV9ub3JtYWwrMHgzZGIvMHg1YzANCj4gwqDCoMKgwqDCoMKgwqDCoCBhcHBseV9zdWJz eXN0ZW1fZXZlbnRfZmlsdGVyKzB4YTMwLzB4MTMwMA0KPiDCoMKgwqDCoMKgwqDCoMKgIHN1YnN5 c3RlbV9maWx0ZXJfd3JpdGUrMHg2Ny8weGMwDQo+IMKgwqDCoMKgwqDCoMKgwqAgdmZzX3dyaXRl KzB4MWUyLzB4ZWIwDQo+IMKgwqDCoMKgwqDCoMKgwqAga3N5c193cml0ZSsweGZmLzB4MWQwDQo+ IMKgwqDCoMKgwqDCoMKgwqAgZG9fc3lzY2FsbF82NCsweDdiLzB4NDIwDQo+IMKgwqDCoMKgwqDC oMKgwqAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NzYvMHg3ZQ0KPiB9IGhpdGNv dW50OsKgwqDCoMKgwqDCoMKgIDIzN8KgIGRlbHRhOsKgwqDCoCA2MzE2NTAwDQo+IHsgc3RhdGU6 wqDCoMKgwqDCoMKgwqDCoMKgIDIsIHN0YWNrLnN0YWNrdHJhY2XCoMKgwqDCoMKgwqDCoMKgDQo+ IF9fc2NoZWR1bGUrMHgxNTQ1LzB4MzcwMA0KPiDCoMKgwqDCoMKgwqDCoMKgIHNjaGVkdWxlKzB4 ZTIvMHgzOTANCj4gwqDCoMKgwqDCoMKgwqDCoCBzY2hlZHVsZV90aW1lb3V0KzB4MTc1LzB4MjAw DQo+IMKgwqDCoMKgwqDCoMKgwqAgd2FpdF9mb3JfY29tcGxldGlvbl9zdGF0ZSsweDI5NC8weDQ0 MA0KPiDCoMKgwqDCoMKgwqDCoMKgIF9fd2FpdF9yY3VfZ3ArMHgyNDcvMHg0ZjANCj4gwqDCoMKg wqDCoMKgwqDCoCBzeW5jaHJvbml6ZV9yY3VfdGFza3NfZ2VuZXJpYysweDE1MS8weDIzMA0KPiDC oMKgwqDCoMKgwqDCoMKgIGFwcGx5X3N1YnN5c3RlbV9ldmVudF9maWx0ZXIrMHhhMmIvMHgxMzAw DQo+IMKgwqDCoMKgwqDCoMKgwqAgc3Vic3lzdGVtX2ZpbHRlcl93cml0ZSsweDY3LzB4YzANCj4g wqDCoMKgwqDCoMKgwqDCoCB2ZnNfd3JpdGUrMHgxZTIvMHhlYjANCj4gwqDCoMKgwqDCoMKgwqDC oCBrc3lzX3dyaXRlKzB4ZmYvMHgxZDANCj4gwqDCoMKgwqDCoMKgwqDCoCBkb19zeXNjYWxsXzY0 KzB4N2IvMHg0MjANCj4gwqDCoMKgwqDCoMKgwqDCoCBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3 ZnJhbWUrMHg3Ni8weDdlDQo+IH0gaGl0Y291bnQ6wqDCoMKgwqDCoMKgwqAgMjM3wqAgZGVsdGE6 wqDCoCA5OTc1NjI4OMKgIDw8LS0tLS0tLS0tLS0tLS0tIERlbHRhIGlzDQo+IDk5IHNlY29uZHMh DQo+IA0KPiBUb3RhbHM6DQo+IMKgwqDCoCBIaXRzOiA1MjUNCj4gwqDCoMKgIEVudHJpZXM6IDIx DQo+IMKgwqDCoCBEcm9wcGVkOiAwDQo+IA0KPiANCj4gVGhpcyBzaG93cyB0aGF0IGl0IGlzIGRl ZmluaXRlbHkgd2FpdGluZyBvbiB0aGUNCj4gc3luY2hyb25pemVfcmN1X3Rhc2tzKCkgYnV0DQo+ IEkgc2VlIHRoYXQgaXQncyBjYWxsZWQgYnkgYXBwbHlfc3Vic3lzdGVtX2V2ZW50X2ZpbHRlcigp IHdoaWNoIEkNCj4gZGlkbid0DQo+IGNvdmVyLiBCdXQgSSBsb29rZWQgYXQgYWxsIHRoZSB0cmFj ZXBvaW50X3N5bmNocm9uaXplX3VucmVnaXN0ZXIoKSBpbg0KPiB0aGUNCj4gdHJhY2VfZXZlbnRz X2ZpbHRlci5jIGNvZGUgYW5kIHJlcGxhY2VkIHRoZW0gd2l0aCBhIGRvdWJsZQ0KPiBjYWxsX3Jj dV90YXNrL3JjdSgpLg0KPiANCj4gVGhpcyBhcHBlYXJzIHRvIGZpeCB0aGUgaXNzdWUuIFdpdGgg dGhhdCwgdHJhY2UtY21kIHJlY29yZCBpcyBtdWNoDQo+IGZhc3Rlcg0KPiBhbmQgdGhlIGhpc3Rv Z3JhbSBub3cgbG9va3MgbGlrZSB0aGlzOg0KPiANCj4gfiMgY2F0IC9zeXMva2VybmVsL3RyYWNp bmcvZXZlbnRzL3N5bnRoZXRpYy9zY2hlZF9zdGFjay9oaXN0IHwgdGFpbCAtDQo+IDUwDQo+IMKg wqDCoMKgwqDCoMKgwqAgc2NoZWR1bGVfdGltZW91dCsweDE3NS8weDIwMA0KPiDCoMKgwqDCoMKg wqDCoMKgIHdhaXRfZm9yX2NvbXBsZXRpb25fc3RhdGUrMHgyOTQvMHg0NDANCj4gwqDCoMKgwqDC oMKgwqDCoCBfX3dhaXRfcmN1X2dwKzB4MjQ3LzB4NGYwDQo+IMKgwqDCoMKgwqDCoMKgwqAgc3lu Y2hyb25pemVfcmN1X25vcm1hbCsweDNkYi8weDVjMFRlc3RlZC1ieTogSnVsaWVuIEZsb3QNCj4g PGp1bGllbi5mbG90QHNpZW1lbnMuY29tPlRlc3RlZC1ieTogSnVsaWVuIEZsb3QNCj4gPGp1bGll bi5mbG90QHNpZW1lbnMuY29tPg0KPiDCoMKgwqDCoMKgwqDCoMKgIHJpbmdfYnVmZmVyX3Jlc2V0 X29ubGluZV9jcHVzKzB4MTQyLzB4MzUwDQo+IMKgwqDCoMKgwqDCoMKgwqAgdHJhY2luZ19yZXNl dF9vbmxpbmVfY3B1cysweDE0Yi8weDFlMA0KPiDCoMKgwqDCoMKgwqDCoMKgIHRyYWNpbmdfb3Bl bisweDMzNS8weDQ0MA0KPiDCoMKgwqDCoMKgwqDCoMKgIGRvX2RlbnRyeV9vcGVuKzB4NGM2LzB4 MTdhMA0KPiDCoMKgwqDCoMKgwqDCoMKgIHZmc19vcGVuKzB4ODIvMHgzNjANCj4gwqDCoMKgwqDC oMKgwqDCoCBwYXRoX29wZW5hdCsweDFhMzYvMHgyOTkwDQo+IMKgwqDCoMKgwqDCoMKgwqAgZG9f ZmlscF9vcGVuKzB4MWM1LzB4NDIwDQo+IMKgwqDCoMKgwqDCoMKgwqAgZG9fc3lzX29wZW5hdDIr MHhlZC8weDE4MA0KPiDCoMKgwqDCoMKgwqDCoMKgIF9feDY0X3N5c19vcGVuYXQrMHgxMDgvMHgx ZDANCj4gfSBoaXRjb3VudDrCoMKgwqDCoMKgwqDCoMKgwqAgMsKgIGRlbHRhOsKgwqDCoMKgwqAg NjEyNjANCj4geyBzdGF0ZTrCoMKgwqDCoMKgwqDCoMKgwqAgMiwgc3RhY2suc3RhY2t0cmFjZcKg wqDCoMKgwqDCoMKgwqANCj4gX19zY2hlZHVsZSsweDE1NDUvMHgzNzAwDQo+IMKgwqDCoMKgwqDC oMKgwqAgc2NoZWR1bGUrMHhlMi8weDM5MA0KPiDCoMKgwqDCoMKgwqDCoMKgIHNjaGVkdWxlX3Rp bWVvdXQrMHgxNzUvMHgyMDANCj4gwqDCoMKgwqDCoMKgwqDCoCB3YWl0X2Zvcl9jb21wbGV0aW9u X3N0YXRlKzB4Mjk0LzB4NDQwDQo+IMKgwqDCoMKgwqDCoMKgwqAgX193YWl0X3JjdV9ncCsweDI0 Ny8weDRmMA0KPiDCoMKgwqDCoMKgwqDCoMKgIHN5bmNocm9uaXplX3JjdV9ub3JtYWwrMHgzZGIv MHg1YzANCj4gwqDCoMKgwqDCoMKgwqDCoCByaW5nX2J1ZmZlcl9yZXNldF9vbmxpbmVfY3B1cysw eDE0Mi8weDM1MA0KPiDCoMKgwqDCoMKgwqDCoMKgIHRyYWNpbmdfcmVzZXRfb25saW5lX2NwdXMr MHgxNGIvMHgxZTANCj4gwqDCoMKgwqDCoMKgwqDCoCB0cmFjaW5nX3NldF90cmFjZXIrMHg0ZDUv MHhhODANCj4gwqDCoMKgwqDCoMKgwqDCoCB0cmFjaW5nX3NldF90cmFjZV93cml0ZSsweDEzOC8w eDFlMA0KPiDCoMKgwqDCoMKgwqDCoMKgIHZmc193cml0ZSsweDFlMi8weGViMA0KPiDCoMKgwqDC oMKgwqDCoMKgIGtzeXNfd3JpdGUrMHhmZi8weDFkMA0KPiDCoMKgwqDCoMKgwqDCoMKgIGRvX3N5 c2NhbGxfNjQrMHg3Yi8weDQyMA0KPiDCoMKgwqDCoMKgwqDCoMKgIGVudHJ5X1NZU0NBTExfNjRf YWZ0ZXJfaHdmcmFtZSsweDc2LzB4N2UNCj4gfSBoaXRjb3VudDrCoMKgwqDCoMKgwqDCoMKgwqAg MsKgIGRlbHRhOsKgwqDCoMKgwqAgNjE2OTkNCj4geyBzdGF0ZTrCoMKgwqDCoMKgwqDCoMKgwqAg Miwgc3RhY2suc3RhY2t0cmFjZcKgwqDCoMKgwqDCoMKgwqANCj4gX19zY2hlZHVsZSsweDE1NDUv MHgzNzAwDQo+IMKgwqDCoMKgwqDCoMKgwqAgc2NoZWR1bGUrMHhlMi8weDM5MA0KPiDCoMKgwqDC oMKgwqDCoMKgIHNjaGVkdWxlX3RpbWVvdXQrMHgxNzUvMHgyMDANCj4gwqDCoMKgwqDCoMKgwqDC oCB3YWl0X2Zvcl9jb21wbGV0aW9uX3N0YXRlKzB4Mjk0LzB4NDQwDQo+IMKgwqDCoMKgwqDCoMKg wqAgX193YWl0X3JjdV9ncCsweDI0Ny8weDRmMA0KPiDCoMKgwqDCoMKgwqDCoMKgIHN5bmNocm9u aXplX3JjdV9ub3JtYWwrMHgzZGIvMHg1YzANCj4gwqDCoMKgwqDCoMKgwqDCoCB0cmFjaW5nX3Jl c2V0X29ubGluZV9jcHVzKzB4OGYvMHgxZTANCj4gwqDCoMKgwqDCoMKgwqDCoCB0cmFjaW5nX29w ZW4rMHgzMzUvMHg0NDANCj4gwqDCoMKgwqDCoMKgwqDCoCBkb19kZW50cnlfb3BlbisweDRjNi8w eDE3YTANCj4gwqDCoMKgwqDCoMKgwqDCoCB2ZnNfb3BlbisweDgyLzB4MzYwDQo+IMKgwqDCoMKg wqDCoMKgwqAgcGF0aF9vcGVuYXQrMHgxYTM2LzB4Mjk5MA0KPiDCoMKgwqDCoMKgwqDCoMKgIGRv X2ZpbHBfb3BlbisweDFjNS8weDQyMA0KPiDCoMKgwqDCoMKgwqDCoMKgIGRvX3N5c19vcGVuYXQy KzB4ZWQvMHgxODANCj4gwqDCoMKgwqDCoMKgwqDCoCBfX3g2NF9zeXNfb3BlbmF0KzB4MTA4LzB4 MWQwDQo+IMKgwqDCoMKgwqDCoMKgwqAgZG9fc3lzY2FsbF82NCsweDdiLzB4NDIwDQo+IH0gaGl0 Y291bnQ6wqDCoMKgwqDCoMKgwqDCoMKgIDLCoCBkZWx0YTrCoMKgwqDCoMKgIDc3MDQ0DQo+IA0K PiBUb3RhbHM6DQo+IMKgwqDCoCBIaXRzOiA1NQ0KPiDCoMKgwqAgRW50cmllczogMjgNCj4gwqDC oMKgIERyb3BwZWQ6IDANCj4gDQo+IA0KPiBXaXRoIHRoZSBtYXggZGVsdGEgd2FpdCB0aW1lIG9m IGp1c3QgNzcgbWlsbGlzZWNvbmRzIHRvdGFsLg0KPiANCj4gLS0gU3RldmUNCj4gDQo+IGRpZmYg LS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2VfZXZlbnRzX2ZpbHRlci5jDQo+IGIva2VybmVsL3Ry YWNlL3RyYWNlX2V2ZW50c19maWx0ZXIuYw0KPiBpbmRleCAyMDQ4NTYwMjY0YmIuLjNmZjc4MmQ2 YjUyMiAxMDA2NDQNCj4gLS0tIGEva2VybmVsL3RyYWNlL3RyYWNlX2V2ZW50c19maWx0ZXIuYw0K PiArKysgYi9rZXJuZWwvdHJhY2UvdHJhY2VfZXZlbnRzX2ZpbHRlci5jDQo+IEBAIC0xMzM1LDYg KzEzMzUsNzQgQEAgc3RhdGljIHZvaWQgZmlsdGVyX2ZyZWVfc3Vic3lzdGVtX3ByZWRzKHN0cnVj dA0KPiB0cmFjZV9zdWJzeXN0ZW1fZGlyICpkaXIsDQo+IMKgCX0NCj4gwqB9DQo+IMKgDQo+ICtz dHJ1Y3QgZmlsdGVyX2xpc3Qgew0KPiArCXN0cnVjdCBsaXN0X2hlYWQJbGlzdDsNCj4gKwlzdHJ1 Y3QgZXZlbnRfZmlsdGVyCSpmaWx0ZXI7DQo+ICt9Ow0KPiArDQo+ICtzdHJ1Y3QgZmlsdGVyX2hl YWQgew0KPiArCXN0cnVjdCBsaXN0X2hlYWQJbGlzdDsNCj4gKwlzdHJ1Y3QgcmN1X2hlYWQJCXJj dTsNCj4gK307DQo+ICsNCj4gKw0KPiArc3RhdGljIHZvaWQgZnJlZV9maWx0ZXJfbGlzdChzdHJ1 Y3QgcmN1X2hlYWQgKnJocCkNCj4gK3sNCj4gKwlzdHJ1Y3QgZmlsdGVyX2hlYWQgKmZpbHRlcl9s aXN0ID0gY29udGFpbmVyX29mKHJocCwgc3RydWN0DQo+IGZpbHRlcl9oZWFkLCByY3UpOw0KPiAr CXN0cnVjdCBmaWx0ZXJfbGlzdCAqZmlsdGVyX2l0ZW0sICp0bXA7DQo+ICsNCj4gKwlsaXN0X2Zv cl9lYWNoX2VudHJ5X3NhZmUoZmlsdGVyX2l0ZW0sIHRtcCwgJmZpbHRlcl9saXN0LQ0KPiA+bGlz dCwgbGlzdCkgew0KPiArCQlfX2ZyZWVfZmlsdGVyKGZpbHRlcl9pdGVtLT5maWx0ZXIpOw0KPiAr CQlsaXN0X2RlbCgmZmlsdGVyX2l0ZW0tPmxpc3QpOw0KPiArCQlrZnJlZShmaWx0ZXJfaXRlbSk7 DQo+ICsJfQ0KPiArCWtmcmVlKGZpbHRlcl9saXN0KTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZv aWQgZnJlZV9maWx0ZXJfbGlzdF90YXNrcyhzdHJ1Y3QgcmN1X2hlYWQgKnJocCkNCj4gK3sNCj4g KwljYWxsX3JjdShyaHAsIGZyZWVfZmlsdGVyX2xpc3QpOw0KPiArfQ0KPiArDQo+ICsvKg0KPiAr ICogVGhlIHRyYWNlcG9pbnRfc3luY2hyb25pemVfdW5yZWdpc3RlcigpIGlzIGEgZG91YmxlIHJj dSBjYWxsLg0KPiArICogSXQgY2FsbHMgc3luY2hyb25pemVfcmN1X3Rhc2tzX3RyYWNlKCkgZm9s bG93ZWQgYnkNCj4gc3luY2hyb25pemVfcmN1KCkuDQo+ICsgKiBJbnN0ZWFkIG9mIHdhaXRpbmcg Zm9yIGl0LCBzaW1wbHkgY2FsbCB0aGVzZSB2aWEgdGhlIGNhbGxfcmN1KigpDQo+ICsgKiB2YXJp YW50cy4NCj4gKyAqLw0KPiArc3RhdGljIHZvaWQgZGVsYXlfZnJlZV9maWx0ZXIoc3RydWN0IGZp bHRlcl9oZWFkICpoZWFkKQ0KPiArew0KPiArCWNhbGxfcmN1X3Rhc2tzX3RyYWNlKCZoZWFkLT5y Y3UsIGZyZWVfZmlsdGVyX2xpc3RfdGFza3MpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCB0 cnlfZGVsYXlfZnJlZV9maWx0ZXIoc3RydWN0IGV2ZW50X2ZpbHRlciAqZmlsdGVyKQ0KPiArew0K PiArCXN0cnVjdCBmaWx0ZXJfaGVhZCAqaGVhZDsNCj4gKwlzdHJ1Y3QgZmlsdGVyX2xpc3QgKml0 ZW07DQo+ICsNCj4gKwloZWFkID0ga21hbGxvYyhzaXplb2YoKmhlYWQpLCBHRlBfS0VSTkVMKTsN Cj4gKwlpZiAoIWhlYWQpDQo+ICsJCWdvdG8gZnJlZV9ub3c7DQo+ICsNCj4gKwlJTklUX0xJU1Rf SEVBRCgmaGVhZC0+bGlzdCk7DQo+ICsNCj4gKwlpdGVtID0ga21hbGxvYyhzaXplb2YoKml0ZW0p LCBHRlBfS0VSTkVMKTsNCj4gKwlpZiAoIWl0ZW0pIHsNCj4gKwkJa2ZyZWUoaGVhZCk7DQo+ICsJ CWdvdG8gZnJlZV9ub3c7DQo+ICsJfQ0KPiArDQo+ICsJaXRlbS0+ZmlsdGVyID0gZmlsdGVyOw0K PiArCWxpc3RfYWRkX3RhaWwoJml0ZW0tPmxpc3QsICZoZWFkLT5saXN0KTsNCj4gKwlkZWxheV9m cmVlX2ZpbHRlcihoZWFkKTsNCj4gKwlyZXR1cm47DQo+ICsNCj4gKyBmcmVlX25vdzoNCj4gKwkv KiBNYWtlIHN1cmUgdGhlIGZpbHRlciBpcyBub3QgYmVpbmcgdXNlZCAqLw0KPiArCXRyYWNlcG9p bnRfc3luY2hyb25pemVfdW5yZWdpc3RlcigpOw0KPiArCV9fZnJlZV9maWx0ZXIoZmlsdGVyKTsN Cj4gK30NCj4gKw0KPiDCoHN0YXRpYyBpbmxpbmUgdm9pZCBfX2ZyZWVfc3Vic3lzdGVtX2ZpbHRl cihzdHJ1Y3QgdHJhY2VfZXZlbnRfZmlsZQ0KPiAqZmlsZSkNCj4gwqB7DQo+IMKgCV9fZnJlZV9m aWx0ZXIoZmlsZS0+ZmlsdGVyKTsNCj4gQEAgLTEzNDIsMTUgKzE0MTAsNTMgQEAgc3RhdGljIGlu bGluZSB2b2lkDQo+IF9fZnJlZV9zdWJzeXN0ZW1fZmlsdGVyKHN0cnVjdCB0cmFjZV9ldmVudF9m aWxlICpmaWxlKQ0KPiDCoH0NCj4gwqANCj4gwqBzdGF0aWMgdm9pZCBmaWx0ZXJfZnJlZV9zdWJz eXN0ZW1fZmlsdGVycyhzdHJ1Y3QgdHJhY2Vfc3Vic3lzdGVtX2Rpcg0KPiAqZGlyLA0KPiAtCQkJ CQnCoCBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQ0KPiArCQkJCQnCoCBzdHJ1Y3QgdHJhY2VfYXJy YXkgKnRyLA0KPiArCQkJCQnCoCBzdHJ1Y3QgZXZlbnRfZmlsdGVyDQo+ICpmaWx0ZXIpDQo+IMKg ew0KPiDCoAlzdHJ1Y3QgdHJhY2VfZXZlbnRfZmlsZSAqZmlsZTsNCj4gKwlzdHJ1Y3QgZmlsdGVy X2hlYWQgKmhlYWQ7DQo+ICsJc3RydWN0IGZpbHRlcl9saXN0ICppdGVtOw0KPiArDQo+ICsJaGVh ZCA9IGttYWxsb2Moc2l6ZW9mKCpoZWFkKSwgR0ZQX0tFUk5FTCk7DQo+ICsJaWYgKCFoZWFkKQ0K PiArCQlnb3RvIGZyZWVfbm93Ow0KPiArDQo+ICsJSU5JVF9MSVNUX0hFQUQoJmhlYWQtPmxpc3Qp Ow0KPiArDQo+ICsJaXRlbSA9IGttYWxsb2Moc2l6ZW9mKCppdGVtKSwgR0ZQX0tFUk5FTCk7DQo+ ICsJaWYgKCFpdGVtKSB7DQo+ICsJCWtmcmVlKGhlYWQpOw0KPiArCQlnb3RvIGZyZWVfbm93Ow0K PiArCX0NCj4gKw0KPiArCWl0ZW0tPmZpbHRlciA9IGZpbHRlcjsNCj4gKwlsaXN0X2FkZF90YWls KCZpdGVtLT5saXN0LCAmaGVhZC0+bGlzdCk7DQo+IMKgDQo+IMKgCWxpc3RfZm9yX2VhY2hfZW50 cnkoZmlsZSwgJnRyLT5ldmVudHMsIGxpc3QpIHsNCj4gwqAJCWlmIChmaWxlLT5zeXN0ZW0gIT0g ZGlyKQ0KPiDCoAkJCWNvbnRpbnVlOw0KPiAtCQlfX2ZyZWVfc3Vic3lzdGVtX2ZpbHRlcihmaWxl KTsNCj4gKwkJaXRlbSA9IGttYWxsb2Moc2l6ZW9mKCppdGVtKSwgR0ZQX0tFUk5FTCk7DQo+ICsJ CWlmICghaXRlbSkNCj4gKwkJCWdvdG8gZnJlZV9ub3c7DQo+ICsJCWl0ZW0tPmZpbHRlciA9IGZp bGUtPmZpbHRlcjsNCj4gKwkJbGlzdF9hZGRfdGFpbCgmaXRlbS0+bGlzdCwgJmhlYWQtPmxpc3Qp Ow0KPiArCQlmaWxlLT5maWx0ZXIgPSBOVUxMOw0KPiArCX0NCj4gKw0KPiArCWRlbGF5X2ZyZWVf ZmlsdGVyKGhlYWQpOw0KPiArCXJldHVybjsNCj4gKyBmcmVlX25vdzoNCj4gKwl0cmFjZXBvaW50 X3N5bmNocm9uaXplX3VucmVnaXN0ZXIoKTsNCj4gKw0KPiArCWlmIChoZWFkKQ0KPiArCQlmcmVl X2ZpbHRlcl9saXN0KCZoZWFkLT5yY3UpOw0KPiArDQo+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShm aWxlLCAmdHItPmV2ZW50cywgbGlzdCkgew0KPiArCQlpZiAoZmlsZS0+c3lzdGVtICE9IGRpciB8 fCAhZmlsZS0+ZmlsdGVyKQ0KPiArCQkJY29udGludWU7DQo+ICsJCV9fZnJlZV9maWx0ZXIoZmls ZS0+ZmlsdGVyKTsNCj4gwqAJfQ0KPiArCV9fZnJlZV9maWx0ZXIoZmlsdGVyKTsNCj4gwqB9DQo+ IMKgDQo+IMKgaW50IGZpbHRlcl9hc3NpZ25fdHlwZShjb25zdCBjaGFyICp0eXBlKQ0KPiBAQCAt MjEzMSwxMSArMjIzNyw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBldmVudF9jbGVhcl9maWx0ZXIo c3RydWN0DQo+IHRyYWNlX2V2ZW50X2ZpbGUgKmZpbGUpDQo+IMKgCVJDVV9JTklUX1BPSU5URVIo ZmlsZS0+ZmlsdGVyLCBOVUxMKTsNCj4gwqB9DQo+IMKgDQo+IC1zdHJ1Y3QgZmlsdGVyX2xpc3Qg ew0KPiAtCXN0cnVjdCBsaXN0X2hlYWQJbGlzdDsNCj4gLQlzdHJ1Y3QgZXZlbnRfZmlsdGVyCSpm aWx0ZXI7DQo+IC19Ow0KPiAtDQo+IMKgc3RhdGljIGludCBwcm9jZXNzX3N5c3RlbV9wcmVkcyhz dHJ1Y3QgdHJhY2Vfc3Vic3lzdGVtX2RpciAqZGlyLA0KPiDCoAkJCQlzdHJ1Y3QgdHJhY2VfYXJy YXkgKnRyLA0KPiDCoAkJCQlzdHJ1Y3QgZmlsdGVyX3BhcnNlX2Vycm9yICpwZSwNCj4gQEAgLTIx NDQsMTEgKzIyNDUsMTYgQEAgc3RhdGljIGludCBwcm9jZXNzX3N5c3RlbV9wcmVkcyhzdHJ1Y3QN Cj4gdHJhY2Vfc3Vic3lzdGVtX2RpciAqZGlyLA0KPiDCoAlzdHJ1Y3QgdHJhY2VfZXZlbnRfZmls ZSAqZmlsZTsNCj4gwqAJc3RydWN0IGZpbHRlcl9saXN0ICpmaWx0ZXJfaXRlbTsNCj4gwqAJc3Ry dWN0IGV2ZW50X2ZpbHRlciAqZmlsdGVyID0gTlVMTDsNCj4gLQlzdHJ1Y3QgZmlsdGVyX2xpc3Qg KnRtcDsNCj4gLQlMSVNUX0hFQUQoZmlsdGVyX2xpc3QpOw0KPiArCXN0cnVjdCBmaWx0ZXJfaGVh ZCAqZmlsdGVyX2xpc3Q7DQo+IMKgCWJvb2wgZmFpbCA9IHRydWU7DQo+IMKgCWludCBlcnI7DQo+ IMKgDQo+ICsJZmlsdGVyX2xpc3QgPSBrbWFsbG9jKHNpemVvZigqZmlsdGVyX2xpc3QpLCBHRlBf S0VSTkVMKTsNCj4gKwlpZiAoIWZpbHRlcl9saXN0KQ0KPiArCQlyZXR1cm4gLUVOT01FTTsNCj4g Kw0KPiArCUlOSVRfTElTVF9IRUFEKCZmaWx0ZXJfbGlzdC0+bGlzdCk7DQo+ICsNCj4gwqAJbGlz dF9mb3JfZWFjaF9lbnRyeShmaWxlLCAmdHItPmV2ZW50cywgbGlzdCkgew0KPiDCoA0KPiDCoAkJ aWYgKGZpbGUtPnN5c3RlbSAhPSBkaXIpDQo+IEBAIC0yMTc1LDcgKzIyODEsNyBAQCBzdGF0aWMg aW50IHByb2Nlc3Nfc3lzdGVtX3ByZWRzKHN0cnVjdA0KPiB0cmFjZV9zdWJzeXN0ZW1fZGlyICpk aXIsDQo+IMKgCQlpZiAoIWZpbHRlcl9pdGVtKQ0KPiDCoAkJCWdvdG8gZmFpbF9tZW07DQo+IMKg DQo+IC0JCWxpc3RfYWRkX3RhaWwoJmZpbHRlcl9pdGVtLT5saXN0LCAmZmlsdGVyX2xpc3QpOw0K PiArCQlsaXN0X2FkZF90YWlsKCZmaWx0ZXJfaXRlbS0+bGlzdCwgJmZpbHRlcl9saXN0LQ0KPiA+ bGlzdCk7DQo+IMKgCQkvKg0KPiDCoAkJICogUmVnYXJkbGVzcyBvZiBpZiB0aGlzIHJldHVybmVk IGFuIGVycm9yLCB3ZSBzdGlsbA0KPiDCoAkJICogcmVwbGFjZSB0aGUgZmlsdGVyIGZvciB0aGUg Y2FsbC4NCj4gQEAgLTIxOTUsMzEgKzIzMDEsMjIgQEAgc3RhdGljIGludCBwcm9jZXNzX3N5c3Rl bV9wcmVkcyhzdHJ1Y3QNCj4gdHJhY2Vfc3Vic3lzdGVtX2RpciAqZGlyLA0KPiDCoAkgKiBEbyBh IHN5bmNocm9uaXplX3JjdSgpIGFuZCB0byBlbnN1cmUgYWxsIGNhbGxzIGFyZQ0KPiDCoAkgKiBk b25lIHdpdGggdGhlbSBiZWZvcmUgd2UgZnJlZSB0aGVtLg0KPiDCoAkgKi8NCj4gLQl0cmFjZXBv aW50X3N5bmNocm9uaXplX3VucmVnaXN0ZXIoKTsNCj4gLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3Nh ZmUoZmlsdGVyX2l0ZW0sIHRtcCwgJmZpbHRlcl9saXN0LA0KPiBsaXN0KSB7DQo+IC0JCV9fZnJl ZV9maWx0ZXIoZmlsdGVyX2l0ZW0tPmZpbHRlcik7DQo+IC0JCWxpc3RfZGVsKCZmaWx0ZXJfaXRl bS0+bGlzdCk7DQo+IC0JCWtmcmVlKGZpbHRlcl9pdGVtKTsNCj4gLQl9DQo+ICsJZGVsYXlfZnJl ZV9maWx0ZXIoZmlsdGVyX2xpc3QpOw0KPiDCoAlyZXR1cm4gMDsNCj4gwqAgZmFpbDoNCj4gwqAJ LyogTm8gY2FsbCBzdWNjZWVkZWQgKi8NCj4gLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZmls dGVyX2l0ZW0sIHRtcCwgJmZpbHRlcl9saXN0LA0KPiBsaXN0KSB7DQo+IC0JCWxpc3RfZGVsKCZm aWx0ZXJfaXRlbS0+bGlzdCk7DQo+IC0JCWtmcmVlKGZpbHRlcl9pdGVtKTsNCj4gLQl9DQo+ICsJ ZnJlZV9maWx0ZXJfbGlzdCgmZmlsdGVyX2xpc3QtPnJjdSk7DQo+IMKgCXBhcnNlX2Vycm9yKHBl LCBGSUxUX0VSUl9CQURfU1VCU1lTX0ZJTFRFUiwgMCk7DQo+IMKgCXJldHVybiAtRUlOVkFMOw0K PiDCoCBmYWlsX21lbToNCj4gwqAJX19mcmVlX2ZpbHRlcihmaWx0ZXIpOw0KPiArDQo+IMKgCS8q IElmIGFueSBjYWxsIHN1Y2NlZWRlZCwgd2Ugc3RpbGwgbmVlZCB0byBzeW5jICovDQo+IMKgCWlm ICghZmFpbCkNCj4gLQkJdHJhY2Vwb2ludF9zeW5jaHJvbml6ZV91bnJlZ2lzdGVyKCk7DQo+IC0J bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGZpbHRlcl9pdGVtLCB0bXAsICZmaWx0ZXJfbGlzdCwN Cj4gbGlzdCkgew0KPiAtCQlfX2ZyZWVfZmlsdGVyKGZpbHRlcl9pdGVtLT5maWx0ZXIpOw0KPiAt CQlsaXN0X2RlbCgmZmlsdGVyX2l0ZW0tPmxpc3QpOw0KPiAtCQlrZnJlZShmaWx0ZXJfaXRlbSk7 DQo+IC0JfQ0KPiArCQlkZWxheV9mcmVlX2ZpbHRlcihmaWx0ZXJfbGlzdCk7DQo+ICsJZWxzZQ0K PiArCQlmcmVlX2ZpbHRlcl9saXN0KCZmaWx0ZXJfbGlzdC0+cmN1KTsNCj4gKw0KPiDCoAlyZXR1 cm4gLUVOT01FTTsNCj4gwqB9DQo+IMKgDQo+IEBAIC0yMzYxLDkgKzI0NTgsNyBAQCBpbnQgYXBw bHlfZXZlbnRfZmlsdGVyKHN0cnVjdCB0cmFjZV9ldmVudF9maWxlDQo+ICpmaWxlLCBjaGFyICpm aWx0ZXJfc3RyaW5nKQ0KPiDCoA0KPiDCoAkJZXZlbnRfY2xlYXJfZmlsdGVyKGZpbGUpOw0KPiDC oA0KPiAtCQkvKiBNYWtlIHN1cmUgdGhlIGZpbHRlciBpcyBub3QgYmVpbmcgdXNlZCAqLw0KPiAt CQl0cmFjZXBvaW50X3N5bmNocm9uaXplX3VucmVnaXN0ZXIoKTsNCj4gLQkJX19mcmVlX2ZpbHRl cihmaWx0ZXIpOw0KPiArCQl0cnlfZGVsYXlfZnJlZV9maWx0ZXIoZmlsdGVyKTsNCj4gwqANCj4g wqAJCXJldHVybiAwOw0KPiDCoAl9DQo+IEBAIC0yMzg3LDExICsyNDgyLDggQEAgaW50IGFwcGx5 X2V2ZW50X2ZpbHRlcihzdHJ1Y3QgdHJhY2VfZXZlbnRfZmlsZQ0KPiAqZmlsZSwgY2hhciAqZmls dGVyX3N0cmluZykNCj4gwqANCj4gwqAJCWV2ZW50X3NldF9maWx0ZXIoZmlsZSwgZmlsdGVyKTsN Cj4gwqANCj4gLQkJaWYgKHRtcCkgew0KPiAtCQkJLyogTWFrZSBzdXJlIHRoZSBjYWxsIGlzIGRv bmUgd2l0aCB0aGUNCj4gZmlsdGVyICovDQo+IC0JCQl0cmFjZXBvaW50X3N5bmNocm9uaXplX3Vu cmVnaXN0ZXIoKTsNCj4gLQkJCV9fZnJlZV9maWx0ZXIodG1wKTsNCj4gLQkJfQ0KPiArCQlpZiAo dG1wKQ0KPiArCQkJdHJ5X2RlbGF5X2ZyZWVfZmlsdGVyKHRtcCk7DQo+IMKgCX0NCj4gwqANCj4g wqAJcmV0dXJuIGVycjsNCj4gQEAgLTI0MTcsOSArMjUwOSw3IEBAIGludCBhcHBseV9zdWJzeXN0 ZW1fZXZlbnRfZmlsdGVyKHN0cnVjdA0KPiB0cmFjZV9zdWJzeXN0ZW1fZGlyICpkaXIsDQo+IMKg CQlmaWx0ZXIgPSBzeXN0ZW0tPmZpbHRlcjsNCj4gwqAJCXN5c3RlbS0+ZmlsdGVyID0gTlVMTDsN Cj4gwqAJCS8qIEVuc3VyZSBhbGwgZmlsdGVycyBhcmUgbm8gbG9uZ2VyIHVzZWQgKi8NCj4gLQkJ dHJhY2Vwb2ludF9zeW5jaHJvbml6ZV91bnJlZ2lzdGVyKCk7DQo+IC0JCWZpbHRlcl9mcmVlX3N1 YnN5c3RlbV9maWx0ZXJzKGRpciwgdHIpOw0KPiAtCQlfX2ZyZWVfZmlsdGVyKGZpbHRlcik7DQo+ ICsJCWZpbHRlcl9mcmVlX3N1YnN5c3RlbV9maWx0ZXJzKGRpciwgdHIsIGZpbHRlcik7DQo+IMKg CQlyZXR1cm4gMDsNCj4gwqAJfQ0KPiDCoA0KDQpUaGFuayB5b3UgdmVyeSBtdWNoLCBpdCBhbHNv IHdvcmtzIGZvciBtZSAhDQoNClRlc3RlZC1ieTogSnVsaWVuIEZsb3QgPGp1bGllbi5mbG90QHNp ZW1lbnMuY29tPg0KDQotLSANCkp1bGllbiBGbG90DQpTaWVtZW5zIEFHDQp3d3cuc2llbWVucy5j b20NCg==