From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4FDA7CEACEF for ; Mon, 17 Nov 2025 14:03:20 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E4FDA10E1C5; Mon, 17 Nov 2025 14:03:19 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="cTMxIvPs"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.9]) by gabe.freedesktop.org (Postfix) with ESMTPS id A94AD10E1C5 for ; Mon, 17 Nov 2025 14:03:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1763388198; x=1794924198; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=P1vxTp/rc9do9kQum2er1glrMMv3kGnWLJlF7Pg8pmI=; b=cTMxIvPsAFxJ8uwWcIuEYQsMhRPmMhmCjFEhuzua5r2m6eHJVwxP/Cf2 Ke8SmOF6nmJovCKkNXM4A6Y1IABhSdvr8KPmgJGBrYidpPNcrhasRugPq 9t4P/hOoVqPHq72p8dxhAzOF1Uxdv8lk5Gig6mMnYgMnW0vpzc9yueBg6 ZUNhHnLGmB92aCnZvIEClRlAmo2+N7luhfj/uWpS3OX+d3BK2oAzgMNaG my2CEamz2QipYONDvIWmAXeVN5kZSQSo+sMUk7CixUYELsooAHUUt7dAq LhjovT6MJK+ZvHQoCW6IlLIZ/qvKZ1GnITGuV2juMoCXdAGOUMclGfII6 g==; X-CSE-ConnectionGUID: RMSLoEs7SAyXOcIQb5KQTA== X-CSE-MsgGUID: S17fC1O1QGShmzUQFxxNOA== X-IronPort-AV: E=McAfee;i="6800,10657,11616"; a="76066391" X-IronPort-AV: E=Sophos;i="6.19,312,1754982000"; d="scan'208";a="76066391" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by fmvoesa103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Nov 2025 06:03:18 -0800 X-CSE-ConnectionGUID: xEsDLLHoTi+fjY0yTAX8jA== X-CSE-MsgGUID: x5vp40TNTeWhIkKnuWo2wQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.19,312,1754982000"; d="scan'208";a="190613071" Received: from orsmsx902.amr.corp.intel.com ([10.22.229.24]) by orviesa008.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Nov 2025 06:03:03 -0800 Received: from ORSMSX903.amr.corp.intel.com (10.22.229.25) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.27; Mon, 17 Nov 2025 06:03:03 -0800 Received: from ORSEDG901.ED.cps.intel.com (10.7.248.11) by ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.27 via Frontend Transport; Mon, 17 Nov 2025 06:03:03 -0800 Received: from CO1PR03CU002.outbound.protection.outlook.com (52.101.46.40) by edgegateway.intel.com (134.134.137.111) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.27; Mon, 17 Nov 2025 06:02:55 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jLzD5bMCpOygPTT4oF2SMsGaxTpWkq1LRyS5RMLR+sQQo5Aal3v19KnWbXIdvNuDdYHR084zY9OL/oIj+hYk94APHfQdOcChq5FkAmqzW3AFjyuiM8QVuEqW/9MlkLKuJT+pDPadoHOyAHvW0gjUUXCKECI0vf2Iuz7d1UN9T91rSX6n5KUo5+g9SlQmctq0JLy8ZW6KQRNlFpWL/WAhTv7mcEEs77Z+fO4LmiBd09yyNNWkh/ogEWOGamY7iBj8bVO1JUIz9qK7bhjaeVhkmivaNdGJn3VwJ75vEKl3wchCFLxDVW1+ycOGwmCx8eaNmNAH5uuKVbuIv2sAOk7Yxg== 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=P1vxTp/rc9do9kQum2er1glrMMv3kGnWLJlF7Pg8pmI=; b=iVVmTvM+RWhokc09H32NIvBoV+w9J57aVf456hGkeO9awbdyqRaMa0NESmvmHk82E2l5egq/E6WhzTvqeM6Ft7qB/bPf0mAk3cqwHgzYAnDCXpdFAL4WPZLsfdqD5negf0InYQEdanYrr0S52NF/RStfNa5t7tJAlt8deCJspUCRUUb2WGE2b03L9OX0eDoCQzb+B7367DV6CfM8r9XlAJ092k+F4BSHvOCCaA6M5sWPgSlwCmK5rf0gs7f8CKU6jRFKLWI9/m+gKn3Ww2phCjWe4Ik2InWT+A7uhtjsz051C7gOb1SQQYBY0lt9x1e7QYUiyIGZOj0OWl3D3iiMTQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DS0PR11MB7733.namprd11.prod.outlook.com (2603:10b6:8:dc::19) by CY5PR11MB6440.namprd11.prod.outlook.com (2603:10b6:930:33::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.18; Mon, 17 Nov 2025 14:02:53 +0000 Received: from DS0PR11MB7733.namprd11.prod.outlook.com ([fe80::41a9:1573:32ad:202c]) by DS0PR11MB7733.namprd11.prod.outlook.com ([fe80::41a9:1573:32ad:202c%6]) with mapi id 15.20.9320.013; Mon, 17 Nov 2025 14:02:52 +0000 From: "Hellstrom, Thomas" To: "igt-dev@lists.freedesktop.org" , "Sharma, Nishit" Subject: Re: [PATCH i-g-t v7 05/10] tests/intel/xe_multi_gpusvm.c: Add SVM multi-GPU coherency test Thread-Topic: [PATCH i-g-t v7 05/10] tests/intel/xe_multi_gpusvm.c: Add SVM multi-GPU coherency test Thread-Index: AQHcVLs7CeCAQvTLJUeXO6+rzCfFeLT27EKA Date: Mon, 17 Nov 2025 14:02:51 +0000 Message-ID: References: <20251113163308.633818-1-nishit.sharma@intel.com> <20251113163308.633818-6-nishit.sharma@intel.com> In-Reply-To: <20251113163308.633818-6-nishit.sharma@intel.com> Accept-Language: en-SE, en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.54.3 (3.54.3-2.fc41) authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DS0PR11MB7733:EE_|CY5PR11MB6440:EE_ x-ms-office365-filtering-correlation-id: a804ea01-752c-405f-03cd-08de25e1ff9c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|10070799003|38070700021; x-microsoft-antispam-message-info: =?utf-8?B?SkI4M3EwRjljcGlvbmIrdnpPUlAxSFQ5OHFzN3lSMXRXbnFCK3hraDRNaVZ1?= =?utf-8?B?K2lLNDRtM1pkcW9razRuNzhQM2ZlVFk5U3h6UW9MRDA4eENQbmNXT2J6OGdM?= =?utf-8?B?b0lrTHArU0NpOGxIL1JkYzlVaHVUUWVHcStjd3MvWEppUlF4YkVEd0xDTVRM?= =?utf-8?B?TVM5SlJtOUgxTUdBN3NjV0U2T1E5ckE5OXVRcVRBOGlZdU9BRFEraHVuTWZl?= =?utf-8?B?T01Zcmkrak9HMkdsNVA5bDB2NEt0OHBUVUpFNTVXcGJPeXBoZGZ5VkM4TzJx?= =?utf-8?B?NFNPOHNOZjkzckRPcGNLYzNmVTg4L0J6bGE0aHo1d2tQMWdWWEV0VUZWY2tG?= =?utf-8?B?Ty9GSE93S1phQm9FNXBoamhBWERvWC92QUQ1bmtaRE43a01rY2t1eDF1akFQ?= =?utf-8?B?REFWL0RyODRpR1MvSWt3RXora1lsYjgySW0wVDNGVVd0R3NMaEVOVnAwN0VS?= =?utf-8?B?VXlySkpLOVVScTBOaGQ1SExWUFJueG8zT2tYbFdodkhBMFdjVTdVMTlJYTRW?= =?utf-8?B?QXFUelFVU2pIcHRqdlgyK1Q4b090THB3azhQb044YkMyOVpNcUZHeEpUR1hT?= =?utf-8?B?K3pnRklNU1dRV3puclh5cWxjcnh4L2I3dkpmbTNmZE1JaTVCR3Y3cStDVHBr?= =?utf-8?B?cFJNVGhPYTVDRVVSaFJDODhsVjNUOVZ0Q2xUWlRqRkkyN0pCblNxd2laNk8y?= =?utf-8?B?aUNnVzdKSFhMS2Y2MjRTb1hFdnBUZFhRbWZOZ2kwVmFjMFdYYjBMeFMwT3hZ?= =?utf-8?B?d1hQMS9hUU5xeFh5bTc4YUhDdDM2elNINnVtZGI2bUxsRnA0cTI1RTJ5NFlh?= =?utf-8?B?dWJzcUlLam5UN0tUNFdHQ3ErdkVESmw0aFAzU3c4NUJrRWR0aE1UMjZOMDBG?= =?utf-8?B?MU5yMHFnRktieEYwY1Znb09Ka3piSVNrMEJ0ekxzNGgzK1pwQW8vTkNyb2g4?= =?utf-8?B?T1pOT2VGM1VOSEc4djBIUjBIU1ZYcTcyQXBvQnRpbUhrYjZzVTdxTlhtZ3Rz?= =?utf-8?B?czRTTzFuRVJoVnJJZ2Q3d1U3STZGWWluV0pTbXIrSHhIcFEvcGI5YUZmeFVw?= =?utf-8?B?SmxhY3E4TVhjRmdHR3NsMDl0WXBkOEdjbjdtU3RUMCsyc281aVFCUzNMd0Mz?= =?utf-8?B?ZWhyOVovRmVWQjMvTlN3UEFVd1pvOEd1QmowNHZ2WWFNbWZhekoxVzF2VWJV?= =?utf-8?B?UEU4dGFCYjN4UHZHK1BKR083MmJEZ2pHQmZwNGk1ZHFKcXI2YnUvbW1uQ2pD?= =?utf-8?B?dUNoazQyYkZjT0VGb0ZERUQ2ak5PNjNxUlQrL0tBekJGZUVIZ1Yzb3dJSXRi?= =?utf-8?B?ZS9yWlZBR2JJMVpZVkRWZjVqYkJ4QVQ5enJ5cnpUWmdQUVcrNFFmeHRVNGlB?= =?utf-8?B?VS90blRSRkt0TlJONnRxRm9tdERYekl1aDRwSU5EVUVvTnRzNnBia2xiOEty?= =?utf-8?B?VzVSaTJVclRZeFJ4WGMzVlhxUGY0eC9UV1psNG1sMWJZQVJ5U2JpT0tZMU5o?= =?utf-8?B?OGppdG1KYVRSZ1p4YjlQRlNCU0x0ZnRUTmRaWEc0N2JEcG1zYk5rNHlNY1dQ?= =?utf-8?B?eFY4REI0a1hhR0dVRTd1MDdMZWoxZG9JUWpUeFRpbm81aDkvbk8xWVRIMDZD?= =?utf-8?B?cFBNaEZtVUprUWpHUGkzSnFzZUF0V25MMitxR0drSnJVN245UHVuM05FdVBB?= =?utf-8?B?U3YxV0JPdUdOT0lLL0JTeU5HczRQZ2s1RHJLUVNoazk4Ynh6YlZsL1RzYTNx?= =?utf-8?B?MGxndGpPSHRPYXZXZ2RJYUswRUF4QjhiYUhOMEJSeVY5ZHZ6bC9oVkh4QVY1?= =?utf-8?B?UndFQ0pyYzNzd3BvVFJIajNVeEZ0V2ZBMWZVR1VKSFNudkdBOWhQL2Y3OVR2?= =?utf-8?B?ZEttTEM0a0srcjNMbFVKM29IWmxLZ09qcVlIQnJka3pQNkFmV0xlNlJ2Nzhx?= =?utf-8?B?SVVoc1hLdVhGK3VQay8zcjVpVE9EZG9KTHpGdEVVOTBWSG84R2J5b29EWTY5?= =?utf-8?B?dHJzclpQQjNMcS8wci8wTGhNeVFYT0tQcWNhQXd4ZGc2M1BKOE9oc1M5Z0dQ?= =?utf-8?Q?LdD4Au?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DS0PR11MB7733.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(366016)(1800799024)(10070799003)(38070700021); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WC9ldFRybnBwSmgrKys5T2Y3R1UzM2RKcVVldEhCc2dvb0lFWGhneFppTi9E?= =?utf-8?B?NkVuWktZYW01REgzQ2JvejA5b0tOWXBJcmJyS2lra001WTJuditRdTZLTi9q?= =?utf-8?B?R1g5U2drNGFhMkM5cHE4bFZnZ1RqWTZXdUJRbmUrS0lSdWJDWmZxRlAySk1O?= =?utf-8?B?b0Evc2VyNjUrVm1VQUI4dUhEdUYwd2N4STZqMWRhb0Z6WkwwaVNpd1RJWk5a?= =?utf-8?B?Q2dzSlpTL2t1dXoyVWIreUt0MkJYemlDRzhaTjVPb25Tak9JSTBZanFWRkN2?= =?utf-8?B?OEFYQWh3VXhISHYxMnFlcDdkdmZyZnY2ZVp3MjlzTFY2cFVjdXNjVjI2L0RH?= =?utf-8?B?MG94Nngva0JxTUEwOE9HUHY0YWVSaGZkU2JQNEcyUGw1b3dpMThnYWN1V0JZ?= =?utf-8?B?SjZJalc5OEFjYVlQRUgvTU9ucnQvR2sveGRWeVdhTjZBR3BQdEdyeFhCSDdR?= =?utf-8?B?RjFOMFNhUFVUKysrc0cwN1pCdlRsbnN1TUtVdFpoNDFxYU41SlRPZ0JIaWdY?= =?utf-8?B?Q2NKeDBGdnJkdkMxZnFCc2tJVW9Cb0s1WWU5bnNSK2QvekZFZUFON3BONkpl?= =?utf-8?B?d28rdk9IK2NHd1MvWTc3TE81K25QSEx3eWNPNVJkenRxUVpEM05SU2RYb0Vt?= =?utf-8?B?RFVFQlFqNHlUTjFjY045NUl5RTE5ZkJUYlhKTERKUndCajFyN2dFZzhySDJW?= =?utf-8?B?eWtabHdWVmFxZTYzY3dFVFhaNW92cVJ5ellMVklFRU54NEVyYldaRkhXKzV1?= =?utf-8?B?L1o5RmtJOFE5OG9FcHRFVERaQXdJaTFYMkNmUEhwcU9OT0xSQ3FxSXFiQm9i?= =?utf-8?B?VDVhbWFQY0NBVENsY3hKTVpQMy8rUVl4UG9PQ1lxMkNUbnp4NDlYOWJBRXFZ?= =?utf-8?B?aFk3bit0WXJoVnZ6NnFlbmJTYm8rTFVYWU9YcGZZdkJ5VVhBOHNZZEppTnFi?= =?utf-8?B?UHVUNG50MHlkYnRYUU83ZWV5eFNVVnYrVy9Xay95ejhZSThRclZYT1FDcVBQ?= =?utf-8?B?cklhTHRDclVtWTlaeXhOYytqaFpJVEpzeHU0am55ZlJKc0NUeDVkL01PdnVy?= =?utf-8?B?cmR5ampKMlo3bXlWUDJHOFp0clhrUEtsZXp6T3lLaGFDcTNKeG5QYzFiMG8v?= =?utf-8?B?Uk5FM25FNjVNdmdtaG5SNkJDam04Zk1TRG1GdkoyZVlVNXNuTmR0L1N5SnhG?= =?utf-8?B?Qi85YjhVN3JZbWhwQlFKNEU4eHMvTU9RNXB3WHQwWFJaMkVJb0NLajc1aVpT?= =?utf-8?B?OHRHS3JPSlpvMWZDd2xOUlFNeW5PRWluV2UvakUxWVlRM0k4Z0s3YzZLOElJ?= =?utf-8?B?a3Z1Tno0cnVUVVJxMGhGZGRzaCt6d1djN2d6Nyt2eWxNVkhpRk9mbkhrZnl2?= =?utf-8?B?UjlyTnVPNjZ2T3dPaTZpM29FWExjSkVVSVFDUFAzZWVUb2ZNRk5GdGRpbkNh?= =?utf-8?B?aWtJUmQ3dmNramJNRlFMTlRYY2hCRUJ6YUExVGZKSnJsdUJiUzJPTWo3Q1R0?= =?utf-8?B?b3ZJWGlZbGc1eWpaOTNMakZNNnB5eG9pK1pxL2w4aGpuZVpUYVNoVmhqWVZQ?= =?utf-8?B?LzE1MU0wM1lzMHVPTnVIT2M2VHBOcERhOE1sNEQrTDVYL2NValVPdHVGVkx1?= =?utf-8?B?M1hmZWt4RHV1N0VDWHd3eTJNdXJlRjZpbDhSbVJVTHN3SU5zbndxa2xKcFIv?= =?utf-8?B?aTFuS0s4WktaMjJaNzQydnRaL2gxT1dXbTVVWlhQaWFNdlZDcm5BV0thS1NL?= =?utf-8?B?U0l5TW05Nm9xTVB3V1FVTFpmemwxdTBKN1luWVgvQmNmZzQxcHY5ZURaVVFG?= =?utf-8?B?dUpFaU94Wm9UT05oU1ROeld1WWhYQWpOcy9pZVd5SmlHQmg3U0ZjSE5yeEd0?= =?utf-8?B?UzBmUFg0WXpNVW50T05DbFJlbW1QSG5CQlk2QXdRSy9ERXlZdm5JVkZGZm1q?= =?utf-8?B?R3Mzdm9LRElmMmxlN09YbFZOV0dnVlNvV2l4Y0liTHdhZU5CUXdqTkdoRkRm?= =?utf-8?B?WEM1MVJvOW9pSjZud3VVdWtJQU1XUmlNbjRKdDZReUpDWXRoTWNmT0N3Z0Fl?= =?utf-8?B?eEtraXJqdHJRS1RFajZDSUR4dmtQSi9aWWNHZnFPeTRpL25TT3FJOERUU3dy?= =?utf-8?B?aThid0RzUCtJYVBBTGlCYm1hejU0aWM2VjF4TjZzZmhBbEkySVp0bWdvSTlr?= =?utf-8?Q?9lYeelH4kYjH9RoWZhfGkCs42o7pRvxhZWDMNZJRw9zK?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7733.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a804ea01-752c-405f-03cd-08de25e1ff9c X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Nov 2025 14:02:51.9230 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: xpEq5cuGkXS5MCjSc9MQzhRWhm4768W6GgMpmMT0C9pitCov5GrpZQtCVwFeUZJc6mRJksONSa9u4KOz93oTrRxefiKGJCvtkmJ/5z5uWaQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR11MB6440 X-OriginatorOrg: intel.com X-BeenThere: igt-dev@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development mailing list for IGT GPU Tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" T24gVGh1LCAyMDI1LTExLTEzIGF0IDE2OjMzICswMDAwLCBuaXNoaXQuc2hhcm1hQGludGVsLmNv bSB3cm90ZToNCj4gRnJvbTogTmlzaGl0IFNoYXJtYSA8bmlzaGl0LnNoYXJtYUBpbnRlbC5jb20+ DQo+IA0KPiBUaGlzIHRlc3QgdmVyaWZpZXMgbWVtb3J5IGNvaGVyZW5jeSBpbiBhIG11bHRpLUdQ VSBlbnZpcm9ubWVudCB1c2luZw0KPiBTVk0uDQo+IEdQVSAxIHdyaXRlcyB0byBhIHNoYXJlZCBi dWZmZXIsIEdQVSAyIHJlYWRzIGFuZCBjaGVja3MgZm9yIGNvcnJlY3QNCj4gZGF0YQ0KPiB3aXRo b3V0IGV4cGxpY2l0IHN5bmNocm9uaXphdGlvbiwgYW5kIHRoZSB0ZXN0IGlzIHJlcGVhdGVkIHdp dGggQ1BVDQo+IGFuZA0KPiBib3RoIEdQVXMgdG8gZW5zdXJlIGNvbnNpc3RlbnQgbWVtb3J5IHZp c2liaWxpdHkgYWNyb3NzIGFnZW50cy4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE5pc2hpdCBTaGFy bWEgPG5pc2hpdC5zaGFybWFAaW50ZWwuY29tPg0KPiAtLS0NCj4gwqB0ZXN0cy9pbnRlbC94ZV9t dWx0aV9ncHVzdm0uYyB8IDIwMw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst DQo+IMKgMSBmaWxlIGNoYW5nZWQsIDIwMSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0K PiANCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ludGVsL3hlX211bHRpX2dwdXN2bS5jDQo+IGIvdGVz dHMvaW50ZWwveGVfbXVsdGlfZ3B1c3ZtLmMNCj4gaW5kZXggNTRlMDM2NzI0Li42NzkyZWY3MmMg MTAwNjQ0DQo+IC0tLSBhL3Rlc3RzL2ludGVsL3hlX211bHRpX2dwdXN2bS5jDQo+ICsrKyBiL3Rl c3RzL2ludGVsL3hlX211bHRpX2dwdXN2bS5jDQo+IEBAIC0zNCw4ICszNCwxMyBAQA0KPiDCoCAq IFNVQlRFU1Q6IGF0b21pYy1pbmMtZ3B1LW9wDQo+IMKgICogRGVzY3JpcHRpb246DQo+IMKgICrC oAlUaGlzIHRlc3QgZG9lcyBhdG9taWMgb3BlcmF0aW9uIGluIG11bHRpLWdwdSBieSBleGVjdXRp bmcNCj4gYXRvbWljDQo+IC0gKglvcGVyYXRpb24gb24gR1BVMSBhbmQgdGhlbiBhdG9taWMgb3Bl cmF0aW9uIG9uIEdQVTIgdXNpbmcNCj4gc2FtZQ0KPiAtICoJYWRyZXNzDQo+ICsgKsKgCW9wZXJh dGlvbiBvbiBHUFUxIGFuZCB0aGVuIGF0b21pYyBvcGVyYXRpb24gb24gR1BVMiB1c2luZw0KPiBz YW1lDQo+ICsgKsKgCWFkcmVzcw0KPiArICoNCj4gKyAqIFNVQlRFU1Q6IGNvaGVyZW5jeS1tdWx0 aS1ncHUNCj4gKyAqIERlc2NyaXB0aW9uOg0KPiArICrCoAlUaGlzIHRlc3QgY2hlY2tzIGNvaGVy ZW5jeSBpbiBtdWx0aS1ncHUgYnkgd3JpdGluZyBmcm9tIEdQVTANCj4gKyAqwqAJcmVhZGluZyBm cm9tIEdQVTEgYW5kIHZlcmlmeSBhbmQgcmVwZWF0aW5nIHdpdGggQ1BVIGFuZCBib3RoDQo+IEdQ VXMNCj4gwqAgKi8NCj4gwqANCj4gwqAjZGVmaW5lIE1BWF9YRV9SRUdJT05TCTgNCj4gQEAgLTkz LDYgKzk4LDExIEBAIHN0YXRpYyB2b2lkIGdwdV9hdG9taWNfaW5jX3dyYXBwZXIoc3RydWN0DQo+ IHhlX3N2bV9ncHVfaW5mbyAqc3JjLA0KPiDCoAkJCQnCoMKgIHN0cnVjdA0KPiBkcm1feGVfZW5n aW5lX2NsYXNzX2luc3RhbmNlICplY2ksDQo+IMKgCQkJCcKgwqAgdm9pZCAqZXh0cmFfYXJncyk7 DQo+IMKgDQo+ICtzdGF0aWMgdm9pZCBncHVfY29oZXJlY3lfdGVzdF93cmFwcGVyKHN0cnVjdCB4 ZV9zdm1fZ3B1X2luZm8gKnNyYywNCj4gKwkJCQnCoMKgwqDCoMKgIHN0cnVjdCB4ZV9zdm1fZ3B1 X2luZm8gKmRzdCwNCj4gKwkJCQnCoMKgwqDCoMKgIHN0cnVjdA0KPiBkcm1feGVfZW5naW5lX2Ns YXNzX2luc3RhbmNlICplY2ksDQo+ICsJCQkJwqDCoMKgwqDCoCB2b2lkICpleHRyYV9hcmdzKTsN Cj4gKw0KPiDCoHN0YXRpYyB2b2lkDQo+IMKgY3JlYXRlX3ZtX2FuZF9xdWV1ZShzdHJ1Y3QgeGVf c3ZtX2dwdV9pbmZvICpncHUsIHN0cnVjdA0KPiBkcm1feGVfZW5naW5lX2NsYXNzX2luc3RhbmNl ICplY2ksDQo+IMKgCQnCoMKgwqAgdWludDMyX3QgKnZtLCB1aW50MzJfdCAqZXhlY19xdWV1ZSkN Cj4gQEAgLTIxNCw2ICsyMjQsMzUgQEAgYXRvbWljX2JhdGNoX2luaXQoaW50IGZkLCB1aW50MzJf dCB2bSwgdWludDY0X3QNCj4gc3JjX2FkZHIsDQo+IMKgCSphZGRyID0gYmF0Y2hfYWRkcjsNCj4g wqB9DQo+IMKgDQo+ICtzdGF0aWMgdm9pZA0KPiArc3RvcmVfZHdvcmRfYmF0Y2hfaW5pdChpbnQg ZmQsIHVpbnQzMl90IHZtLCB1aW50NjRfdCBzcmNfYWRkciwNCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVpbnQzMl90ICpibywgdWludDY0X3QgKmFkZHIs IGludCB2YWx1ZSkNCj4gK3sNCj4gK8KgwqDCoMKgwqDCoMKgIHVpbnQzMl90IGJhdGNoX2JvX3Np emUgPSBCQVRDSF9TSVpFKGZkKTsNCj4gK8KgwqDCoMKgwqDCoMKgIHVpbnQzMl90IGJhdGNoX2Jv Ow0KPiArwqDCoMKgwqDCoMKgwqAgdWludDY0X3QgYmF0Y2hfYWRkcjsNCj4gK8KgwqDCoMKgwqDC oMKgIHZvaWQgKmJhdGNoOw0KPiArwqDCoMKgwqDCoMKgwqAgdWludDMyX3QgKmNtZDsNCj4gK8Kg wqDCoMKgwqDCoMKgIGludCBpID0gMDsNCj4gKw0KPiArwqDCoMKgwqDCoMKgwqAgYmF0Y2hfYm8g PSB4ZV9ib19jcmVhdGUoZmQsIHZtLCBiYXRjaF9ib19zaXplLA0KPiB2cmFtX2lmX3Bvc3NpYmxl KGZkLCAwKSwgMCk7DQo+ICvCoMKgwqDCoMKgwqDCoCBiYXRjaCA9IHhlX2JvX21hcChmZCwgYmF0 Y2hfYm8sIGJhdGNoX2JvX3NpemUpOw0KPiArwqDCoMKgwqDCoMKgwqAgY21kID0gKHVpbnQzMl90 ICopIGJhdGNoOw0KPiArDQo+ICvCoMKgwqDCoMKgwqDCoCBjbWRbaSsrXSA9IE1JX1NUT1JFX0RX T1JEX0lNTV9HRU40Ow0KPiArwqDCoMKgwqDCoMKgwqAgY21kW2krK10gPSBzcmNfYWRkcjsNCj4g K8KgwqDCoMKgwqDCoMKgIGNtZFtpKytdID0gc3JjX2FkZHIgPj4gMzI7DQo+ICvCoMKgwqDCoMKg wqDCoCBjbWRbaSsrXSA9IHZhbHVlOw0KPiArwqDCoMKgwqDCoMKgwqAgY21kW2krK10gPSBNSV9C QVRDSF9CVUZGRVJfRU5EOw0KPiArDQo+ICvCoMKgwqDCoMKgwqDCoCBiYXRjaF9hZGRyID0gdG9f dXNlcl9wb2ludGVyKGJhdGNoKTsNCj4gKw0KPiArwqDCoMKgwqDCoMKgwqAgLyogUHVuY2ggYSBn YXAgaW4gdGhlIFNWTSBtYXAgd2hlcmUgd2UgbWFwIHRoZSBiYXRjaF9ibyAqLw0KPiArwqDCoMKg wqDCoMKgwqAgeGVfdm1fYmluZF9scl9zeW5jKGZkLCB2bSwgYmF0Y2hfYm8sIDAsIGJhdGNoX2Fk ZHIsDQo+IGJhdGNoX2JvX3NpemUsIDApOw0KPiArwqDCoMKgwqDCoMKgwqAgKmJvID0gYmF0Y2hf Ym87DQo+ICvCoMKgwqDCoMKgwqDCoCAqYWRkciA9IGJhdGNoX2FkZHI7DQo+ICt9DQo+ICsNCj4g wqBzdGF0aWMgdm9pZCBiYXRjaF9pbml0KGludCBmZCwgdWludDMyX3Qgdm0sIHVpbnQ2NF90IHNy Y19hZGRyLA0KPiDCoAkJwqDCoMKgwqDCoMKgIHVpbnQ2NF90IGRzdF9hZGRyLCB1aW50NjRfdCBj b3B5X3NpemUsDQo+IMKgCQnCoMKgwqDCoMKgwqAgdWludDMyX3QgKmJvLCB1aW50NjRfdCAqYWRk cikNCj4gQEAgLTM3Myw2ICs0MTIsMTQzIEBAIGdwdV9tZW1fYWNjZXNzX3dyYXBwZXIoc3RydWN0 IHhlX3N2bV9ncHVfaW5mbw0KPiAqc3JjLA0KPiDCoAljb3B5X3NyY19kc3Qoc3JjLCBkc3QsIGVj aSwgYXJncy0+cHJlZmV0Y2hfcmVxKTsNCj4gwqB9DQo+IMKgDQo+ICtzdGF0aWMgdm9pZA0KPiAr Y29oZXJlbmN5X3Rlc3RfbXVsdGlncHUoc3RydWN0IHhlX3N2bV9ncHVfaW5mbyAqZ3B1MCwNCj4g KwkJCXN0cnVjdCB4ZV9zdm1fZ3B1X2luZm8gKmdwdTEsDQo+ICsJCQlzdHJ1Y3QgZHJtX3hlX2Vu Z2luZV9jbGFzc19pbnN0YW5jZSAqZWNpLA0KPiArCQkJYm9vbCBjb2hfZmFpbF9zZXQsDQo+ICsJ CQlib29sIHByZWZldGNoX3JlcSkNCj4gK3sNCj4gK8KgwqDCoMKgwqDCoMKgIHVpbnQ2NF90IGFk ZHI7DQo+ICvCoMKgwqDCoMKgwqDCoCB1aW50MzJfdCB2bVsyXTsNCj4gK8KgwqDCoMKgwqDCoMKg IHVpbnQzMl90IGV4ZWNfcXVldWVbMl07DQo+ICvCoMKgwqDCoMKgwqDCoCB1aW50MzJfdCBiYXRj aF9ibywgYmF0Y2gxX2JvWzJdOw0KPiArwqDCoMKgwqDCoMKgwqAgdWludDY0X3QgYmF0Y2hfYWRk ciwgYmF0Y2gxX2FkZHJbMl07DQo+ICvCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX3hlX3N5bmMg c3luYyA9IHt9Ow0KPiArwqDCoMKgwqDCoMKgwqAgdm9sYXRpbGUgdWludDY0X3QgKnN5bmNfYWRk cjsNCj4gK8KgwqDCoMKgwqDCoMKgIGludCB2YWx1ZSA9IDYwOw0KPiArCXVpbnQ2NF90ICpkYXRh MTsNCj4gKwl2b2lkICpjb3B5X2RzdDsNCj4gKw0KPiArCWNyZWF0ZV92bV9hbmRfcXVldWUoZ3B1 MCwgZWNpLCAmdm1bMF0sICZleGVjX3F1ZXVlWzBdKTsNCj4gKwljcmVhdGVfdm1fYW5kX3F1ZXVl KGdwdTEsIGVjaSwgJnZtWzFdLCAmZXhlY19xdWV1ZVsxXSk7DQo+ICsNCj4gK8KgwqDCoMKgwqDC oMKgIGRhdGExID0gYWxpZ25lZF9hbGxvYyhTWl8yTSwgU1pfNEspOw0KPiArCWlndF9hc3NlcnQo ZGF0YTEpOw0KPiArCWFkZHIgPSB0b191c2VyX3BvaW50ZXIoZGF0YTEpOw0KPiArDQo+ICsJY29w eV9kc3QgPSBhbGlnbmVkX2FsbG9jKFNaXzJNLCBTWl80Syk7DQo+ICsJaWd0X2Fzc2VydChjb3B5 X2RzdCk7DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgIHN0b3JlX2R3b3JkX2JhdGNoX2luaXQoZ3B1 MC0+ZmQsIHZtWzBdLCBhZGRyLCAmYmF0Y2hfYm8sDQo+ICZiYXRjaF9hZGRyLCB2YWx1ZSk7DQo+ ICsNCj4gK8KgwqDCoMKgwqDCoMKgIC8qIFBsYWNlIGRlc3RpbmF0aW9uIGluIEdQVTAgbG9jYWwg bWVtb3J5IGxvY2F0aW9uIHRvIHRlc3QNCj4gKi8NCg0KSW5kZW50YXRpb24gbG9va3Mgb2RkIHRo cm91Z2hvdXQgdGhpcyBmdW5jdGlvbi4gSXMgdGhlcmUgYQ0KZm9ybWF0dGluZyAvIHN0eWxlIGNo ZWNrZXIgdGhhdCBoYXMgYmVlbiBydW4gb24gdGhlc2UgcGF0Y2hlcz8NCg0KPiArCXhlX211bHRp Z3B1X21hZHZpc2UoZ3B1MC0+ZmQsIHZtWzBdLCBhZGRyLCBTWl80SywgMCwNCj4gKwkJCcKgwqDC oCBEUk1fWEVfTUVNX1JBTkdFX0FUVFJfUFJFRkVSUkVEX0xPQywNCj4gKwkJCcKgwqDCoCBncHUw LT5mZCwgMCwgZ3B1MC0+dnJhbV9yZWdpb25zWzBdLA0KPiBleGVjX3F1ZXVlWzBdLA0KPiArCQkJ wqDCoMKgIDAsIDApOw0KPiArDQo+ICsJc2V0dXBfc3luYygmc3luYywgJnN5bmNfYWRkciwgQklO RF9TWU5DX1ZBTCk7DQo+ICsJeGVfbXVsdGlncHVfcHJlZmV0Y2goZ3B1MC0+ZmQsIHZtWzBdLCBh ZGRyLCBTWl80SywgJnN5bmMsDQo+ICsJCQnCoMKgwqDCoCBzeW5jX2FkZHIsIGV4ZWNfcXVldWVb MF0sDQo+IHByZWZldGNoX3JlcSk7DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgIHN5bmNfYWRkciA9 ICh2b2lkICopKChjaGFyICopYmF0Y2hfYWRkciArIFNaXzRLKTsNCj4gK8KgwqDCoMKgwqDCoMKg IHN5bmMuYWRkciA9IHRvX3VzZXJfcG9pbnRlcigodWludDY0X3QgKilzeW5jX2FkZHIpOw0KPiAr wqDCoMKgwqDCoMKgwqAgc3luYy50aW1lbGluZV92YWx1ZSA9IEVYRUNfU1lOQ19WQUw7DQo+ICvC oMKgwqDCoMKgwqDCoCAqc3luY19hZGRyID0gMDsNCg0KPiArDQo+ICvCoMKgwqDCoMKgwqDCoCAv KiBFeGVjdXRlIFNUT1JFIGNvbW1hbmQgb24gR1BVMCAqLw0KPiArwqDCoMKgwqDCoMKgwqAgeGVf ZXhlY19zeW5jKGdwdTAtPmZkLCBleGVjX3F1ZXVlWzBdLCBiYXRjaF9hZGRyLCAmc3luYywgMSk7 DQo+ICvCoMKgwqDCoMKgwqDCoCBpZiAoKnN5bmNfYWRkciAhPSBFWEVDX1NZTkNfVkFMKQ0KPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHhlX3dhaXRfdWZlbmNlKGdwdTAtPmZkLCAo dWludDY0X3QgKilzeW5jX2FkZHIsDQo+IEVYRUNfU1lOQ19WQUwsIGV4ZWNfcXVldWVbMF0sDQo+ ICsJCQnCoMKgwqDCoMKgwqAgTlNFQ19QRVJfU0VDICogMTApOw0KPiArDQo+ICvCoMKgwqDCoMKg wqDCoCBpZ3RfYXNzZXJ0X2VxKCoodWludDY0X3QgKilhZGRyLCB2YWx1ZSk7DQoNClRoaXMgYXNz ZXJ0IHdpbGwgY2F1c2UgYSBDUFUgcmVhZCB3aGljaCBtaWdyYXRlcyB0aGUgZGF0YSB0byBzeXN0 ZW0sIHNvDQpwZXJoYXBzIG5vdCBpZGVhbCBpZiB3ZSB3YW50IHRvIHRlc3QgY29oZXJlbmN5IGFj cm9zcyBncHVzPw0KDQoNCj4gKw0KPiArCS8qIENyZWF0aW5nIGJhdGNoIGZvciBHUFUxIHVzaW5n IGFkZHIgYXMgU3JjIHdoaWNoIGhhdmUNCj4gdmFsdWUgZnJvbSBHUFUwICovDQo+ICsJYmF0Y2hf aW5pdChncHUxLT5mZCwgdm1bMV0sIGFkZHIsIHRvX3VzZXJfcG9pbnRlcihjb3B5X2RzdCksDQo+ ICsJCcKgwqAgU1pfNEssICZiYXRjaF9ibywgJmJhdGNoX2FkZHIpOw0KPiArDQo+ICvCoMKgwqDC oMKgwqDCoCAvKiBQbGFjZSBkZXN0aW5hdGlvbiBpbiBHUFUxIGxvY2FsIG1lbW9yeSBsb2NhdGlv biB0byB0ZXN0DQo+ICovDQo+ICsJeGVfbXVsdGlncHVfbWFkdmlzZShncHUxLT5mZCwgdm1bMV0s IGFkZHIsIFNaXzRLLCAwLA0KPiArCQkJwqDCoMKgIERSTV9YRV9NRU1fUkFOR0VfQVRUUl9QUkVG RVJSRURfTE9DLA0KPiArCQkJwqDCoMKgIGdwdTEtPmZkLCAwLCBncHUxLT52cmFtX3JlZ2lvbnNb MF0sDQo+IGV4ZWNfcXVldWVbMV0sDQo+ICsJCQnCoMKgwqAgMCwgMCk7DQo+ICsNCj4gKwlzZXR1 cF9zeW5jKCZzeW5jLCAmc3luY19hZGRyLCBCSU5EX1NZTkNfVkFMKTsNCj4gKwl4ZV9tdWx0aWdw dV9wcmVmZXRjaChncHUxLT5mZCwgdm1bMV0sIGFkZHIsIFNaXzRLLCAmc3luYywNCj4gKwkJCcKg wqDCoMKgIHN5bmNfYWRkciwgZXhlY19xdWV1ZVsxXSwNCj4gcHJlZmV0Y2hfcmVxKTsNCj4gKw0K PiArwqDCoMKgwqDCoMKgwqAgc3luY19hZGRyID0gKHZvaWQgKikoKGNoYXIgKiliYXRjaF9hZGRy ICsgU1pfNEspOw0KPiArwqDCoMKgwqDCoMKgwqAgc3luYy5hZGRyID0gdG9fdXNlcl9wb2ludGVy KCh1aW50NjRfdCAqKXN5bmNfYWRkcik7DQo+ICvCoMKgwqDCoMKgwqDCoCBzeW5jLnRpbWVsaW5l X3ZhbHVlID0gRVhFQ19TWU5DX1ZBTDsNCj4gK8KgwqDCoMKgwqDCoMKgICpzeW5jX2FkZHIgPSAw Ow0KPiArDQo+ICvCoMKgwqDCoMKgwqDCoCAvKiBFeGVjdXRlIENPUFkgY29tbWFuZCBvbiBHUFUx ICovDQo+ICvCoMKgwqDCoMKgwqDCoCB4ZV9leGVjX3N5bmMoZ3B1MS0+ZmQsIGV4ZWNfcXVldWVb MV0sIGJhdGNoX2FkZHIsICZzeW5jLCAxKTsNCj4gK8KgwqDCoMKgwqDCoMKgIGlmICgqc3luY19h ZGRyICE9IEVYRUNfU1lOQ19WQUwpDQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg eGVfd2FpdF91ZmVuY2UoZ3B1MS0+ZmQsICh1aW50NjRfdCAqKXN5bmNfYWRkciwNCj4gRVhFQ19T WU5DX1ZBTCwgZXhlY19xdWV1ZVsxXSwNCj4gKwkJCcKgwqDCoMKgwqDCoCBOU0VDX1BFUl9TRUMg KiAxMCk7DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgIGlndF9hc3NlcnRfZXEoKih1aW50NjRfdCAq KWNvcHlfZHN0LCB2YWx1ZSk7DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgIC8qIENQVSB3cml0ZXMg MTAsIG1lbXNldCBzZXQgYnl0ZXMgbm8gaW50ZWdlciBoZW5jZSBtZW1zZXQNCj4gZmlsbHMgNCBi eXRlcyB3aXRoIDB4MEEgKi8NCj4gK8KgwqDCoMKgwqDCoMKgIG1lbXNldCgodm9pZCAqKSh1aW50 cHRyX3QpYWRkciwgMTAsIHNpemVvZihpbnQpKTsNCj4gK8KgwqDCoMKgwqDCoMKgIGlndF9hc3Nl cnRfZXEoKih1aW50NjRfdCAqKWFkZHIsIDB4MEEwQTBBMEEpOw0KPiArDQo+ICsJaWYgKGNvaF9m YWlsX3NldCkgew0KPiArCQlpZ3RfaW5mbygiY29oZXJlbmN5IGZhaWwgaW1wbFxuIik7DQo+ICsN Cj4gKwkJLyogQ29oZXJlbmN5IGZhaWwgc2NlbmFyaW8gKi8NCj4gKwkJc3RvcmVfZHdvcmRfYmF0 Y2hfaW5pdChncHUwLT5mZCwgdm1bMF0sIGFkZHIsDQo+ICZiYXRjaDFfYm9bMF0sICZiYXRjaDFf YWRkclswXSwgdmFsdWUgKyAxMCk7DQo+ICsJCXN0b3JlX2R3b3JkX2JhdGNoX2luaXQoZ3B1MS0+ ZmQsIHZtWzFdLCBhZGRyLA0KPiAmYmF0Y2gxX2JvWzFdLCAmYmF0Y2gxX2FkZHJbMV0sIHZhbHVl ICsgMjApOw0KPiArDQo+ICsJCXN5bmNfYWRkciA9ICh2b2lkICopKChjaGFyICopYmF0Y2gxX2Fk ZHJbMF0gKw0KPiBTWl80Syk7DQo+ICsJCXN5bmMuYWRkciA9IHRvX3VzZXJfcG9pbnRlcigodWlu dDY0X3QgKilzeW5jX2FkZHIpOw0KPiArCQlzeW5jLnRpbWVsaW5lX3ZhbHVlID0gRVhFQ19TWU5D X1ZBTDsNCj4gKwkJKnN5bmNfYWRkciA9IDA7DQo+ICsNCj4gKwkJLyogRXhlY3V0ZSBTVE9SRSBj b21tYW5kIG9uIEdQVTEgKi8NCj4gKwkJeGVfZXhlY19zeW5jKGdwdTAtPmZkLCBleGVjX3F1ZXVl WzBdLA0KPiBiYXRjaDFfYWRkclswXSwgJnN5bmMsIDEpOw0KPiArCQlpZiAoKnN5bmNfYWRkciAh PSBFWEVDX1NZTkNfVkFMKQ0KPiArCQkJeGVfd2FpdF91ZmVuY2UoZ3B1MC0+ZmQsICh1aW50NjRf dA0KPiAqKXN5bmNfYWRkciwgRVhFQ19TWU5DX1ZBTCwgZXhlY19xdWV1ZVswXSwNCj4gKwkJCQnC oMKgwqDCoMKgwqAgTlNFQ19QRVJfU0VDICogMTApOw0KPiArDQo+ICsJCXN5bmNfYWRkciA9ICh2 b2lkICopKChjaGFyICopYmF0Y2gxX2FkZHJbMV0gKw0KPiBTWl80Syk7DQo+ICsJCXN5bmMuYWRk ciA9IHRvX3VzZXJfcG9pbnRlcigodWludDY0X3QgKilzeW5jX2FkZHIpOw0KPiArCQlzeW5jLnRp bWVsaW5lX3ZhbHVlID0gRVhFQ19TWU5DX1ZBTDsNCj4gKwkJKnN5bmNfYWRkciA9IDA7DQo+ICsN Cj4gKwkJLyogRXhlY3V0ZSBTVE9SRSBjb21tYW5kIG9uIEdQVTIgKi8NCj4gKwkJeGVfZXhlY19z eW5jKGdwdTEtPmZkLCBleGVjX3F1ZXVlWzFdLA0KPiBiYXRjaDFfYWRkclsxXSwgJnN5bmMsIDEp Ow0KPiArCQlpZiAoKnN5bmNfYWRkciAhPSBFWEVDX1NZTkNfVkFMKQ0KPiArCQkJeGVfd2FpdF91 ZmVuY2UoZ3B1MS0+ZmQsICh1aW50NjRfdA0KPiAqKXN5bmNfYWRkciwgRVhFQ19TWU5DX1ZBTCwg ZXhlY19xdWV1ZVsxXSwNCj4gKwkJCQnCoMKgwqDCoMKgwqAgTlNFQ19QRVJfU0VDICogMTApOw0K PiArDQo+ICsJCWlndF93YXJuX29uX2YoKih1aW50NjRfdCAqKWFkZHIgIT0gKHZhbHVlICsgMTAp LA0KPiArCQkJwqDCoMKgwqDCoCAiR1BVMihkc3RfZ3B1XSBoYXMgb3ZlcndyaXR0ZW4gdmFsdWUN Cj4gYXQgYWRkclxuIik7DQpQYXJlbnRoZXNpcyBtaXNtYXRjaC4NCg0KQlRXLCBpc24ndCBncHUy IHN1cHBvc2VkIHRvIG92ZXJ3cml0ZSB0aGUgdmFsdWUgaGVyZT8gUGVyaGFwcyBJJ20NCm1pc3Np bmcgc29tZXRoaW5nPw0KDQpBbHNvIHJlZ2FyZGluZyB0aGUgcHJldmlvdXMgY29tbWVudCBXUlQg dXNpbmcgdGhlIG5hbWluZyBncHUwIGFuZCBncHUxDQp2cyBncHUxIGFuZCBncHUyPyBTaG91bGRu J3Qgd2UgdHJ5IHRvIGJlIGNvbnNpc3RlbnQgaGVyZSB0byBhdm9pZA0KY29uZnVzaW9uPw0KDQov VGhvbWFzDQoNCg0KDQo+ICsNCj4gKwkJbXVubWFwKCh2b2lkICopYmF0Y2gxX2FkZHJbMF0sIEJB VENIX1NJWkUoZ3B1MC0NCj4gPmZkKSk7DQo+ICsJCW11bm1hcCgodm9pZCAqKWJhdGNoMV9hZGRy WzFdLCBCQVRDSF9TSVpFKGdwdTEtDQo+ID5mZCkpOw0KPiArDQo+ICsJCWJhdGNoX2ZpbmkoZ3B1 MC0+ZmQsIHZtWzBdLCBiYXRjaDFfYm9bMF0sDQo+IGJhdGNoMV9hZGRyWzBdKTsNCj4gKwkJYmF0 Y2hfZmluaShncHUxLT5mZCwgdm1bMV0sIGJhdGNoMV9ib1sxXSwNCj4gYmF0Y2gxX2FkZHJbMV0p Ow0KPiArCX0NCj4gKw0KPiArwqDCoMKgwqDCoMKgwqAgLyogQ1BVIHdyaXRlcyAxMSwgbWVtc2V0 IHNldCBieXRlcyBubyBpbnRlZ2VyIGhlbmNlIG1lbXNldA0KPiBmaWxscyA0IGJ5dGVzIHdpdGgg MHgwQiAqLw0KPiArwqDCoMKgwqDCoMKgwqAgbWVtc2V0KCh2b2lkICopKHVpbnRwdHJfdClhZGRy LCAxMSwgc2l6ZW9mKGludCkpOw0KPiArwqDCoMKgwqDCoMKgwqAgaWd0X2Fzc2VydF9lcSgqKHVp bnQ2NF90ICopYWRkciwgMHgwQjBCMEIwQik7DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgIG11bm1h cCgodm9pZCAqKWJhdGNoX2FkZHIsIEJBVENIX1NJWkUoZ3B1MC0+ZmQpKTsNCj4gK8KgwqDCoMKg wqDCoMKgIGJhdGNoX2ZpbmkoZ3B1MC0+ZmQsIHZtWzBdLCBiYXRjaF9ibywgYmF0Y2hfYWRkcik7 DQo+ICvCoMKgwqDCoMKgwqDCoCBiYXRjaF9maW5pKGdwdTEtPmZkLCB2bVsxXSwgYmF0Y2hfYm8s IGJhdGNoX2FkZHIpOw0KPiArwqDCoMKgwqDCoMKgwqAgZnJlZShkYXRhMSk7DQo+ICsJZnJlZShj b3B5X2RzdCk7DQo+ICsNCj4gKwljbGVhbnVwX3ZtX2FuZF9xdWV1ZShncHUwLCB2bVswXSwgZXhl Y19xdWV1ZVswXSk7DQo+ICsJY2xlYW51cF92bV9hbmRfcXVldWUoZ3B1MSwgdm1bMV0sIGV4ZWNf cXVldWVbMV0pOw0KPiArfQ0KPiArDQo+IMKgc3RhdGljIHZvaWQNCj4gwqBhdG9taWNfaW5jX29w KHN0cnVjdCB4ZV9zdm1fZ3B1X2luZm8gKmdwdTAsDQo+IMKgCcKgwqDCoMKgwqAgc3RydWN0IHhl X3N2bV9ncHVfaW5mbyAqZ3B1MSwNCj4gQEAgLTQ3Miw2ICs2NDgsMTkgQEAgZ3B1X2F0b21pY19p bmNfd3JhcHBlcihzdHJ1Y3QgeGVfc3ZtX2dwdV9pbmZvDQo+ICpzcmMsDQo+IMKgCWF0b21pY19p bmNfb3Aoc3JjLCBkc3QsIGVjaSwgYXJncy0+cHJlZmV0Y2hfcmVxKTsNCj4gwqB9DQo+IMKgDQo+ ICtzdGF0aWMgdm9pZA0KPiArZ3B1X2NvaGVyZWN5X3Rlc3Rfd3JhcHBlcihzdHJ1Y3QgeGVfc3Zt X2dwdV9pbmZvICpzcmMsDQo+ICsJCQnCoCBzdHJ1Y3QgeGVfc3ZtX2dwdV9pbmZvICpkc3QsDQo+ ICsJCQnCoCBzdHJ1Y3QgZHJtX3hlX2VuZ2luZV9jbGFzc19pbnN0YW5jZSAqZWNpLA0KPiArCQkJ wqAgdm9pZCAqZXh0cmFfYXJncykNCj4gK3sNCj4gKwlzdHJ1Y3QgbXVsdGlncHVfb3BzX2FyZ3Mg KmFyZ3MgPSAoc3RydWN0IG11bHRpZ3B1X29wc19hcmdzDQo+ICopZXh0cmFfYXJnczsNCj4gKwlp Z3RfYXNzZXJ0KHNyYyk7DQo+ICsJaWd0X2Fzc2VydChkc3QpOw0KPiArDQo+ICsJY29oZXJlbmN5 X3Rlc3RfbXVsdGlncHUoc3JjLCBkc3QsIGVjaSwgYXJncy0+b3BfbW9kLCBhcmdzLQ0KPiA+cHJl ZmV0Y2hfcmVxKTsNCj4gK30NCj4gKw0KPiDCoGlndF9tYWluDQo+IMKgew0KPiDCoAlzdHJ1Y3Qg eGVfc3ZtX2dwdV9pbmZvIGdwdXNbTUFYX1hFX0dQVVNdOw0KPiBAQCAtNTE5LDYgKzcwOCwxNiBA QCBpZ3RfbWFpbg0KPiDCoAkJZm9yX2VhY2hfZ3B1X3BhaXIoZ3B1X2NudCwgZ3B1cywgJmVjaSwN Cj4gZ3B1X2F0b21pY19pbmNfd3JhcHBlciwgJmF0b21pY19hcmdzKTsNCj4gwqAJfQ0KPiDCoA0K PiArCWlndF9zdWJ0ZXN0KCJjb2hlcmVuY3ktbXVsdGktZ3B1Iikgew0KPiArCQlzdHJ1Y3QgbXVs dGlncHVfb3BzX2FyZ3MgY29oX2FyZ3M7DQo+ICsJCWNvaF9hcmdzLnByZWZldGNoX3JlcSA9IDE7 DQo+ICsJCWNvaF9hcmdzLm9wX21vZCA9IDA7DQo+ICsJCWZvcl9lYWNoX2dwdV9wYWlyKGdwdV9j bnQsIGdwdXMsICZlY2ksDQo+IGdwdV9jb2hlcmVjeV90ZXN0X3dyYXBwZXIsICZjb2hfYXJncyk7 DQo+ICsJCWNvaF9hcmdzLnByZWZldGNoX3JlcSA9IDA7DQo+ICsJCWNvaF9hcmdzLm9wX21vZCA9 IDE7DQo+ICsJCWZvcl9lYWNoX2dwdV9wYWlyKGdwdV9jbnQsIGdwdXMsICZlY2ksDQo+IGdwdV9j b2hlcmVjeV90ZXN0X3dyYXBwZXIsICZjb2hfYXJncyk7DQo+ICsJfQ0KPiArDQo+IMKgCWlndF9m aXh0dXJlIHsNCj4gwqAJCWludCBjbnQ7DQo+IMKgDQoNCg==