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 A3C4DC83F16 for ; Thu, 29 Aug 2024 12:57:47 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 548A710E671; Thu, 29 Aug 2024 12:57:47 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="ARYZyGi2"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.9]) by gabe.freedesktop.org (Postfix) with ESMTPS id 13D3210E671 for ; Thu, 29 Aug 2024 12:57:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1724936263; x=1756472263; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=pfeOzuvZTT1DX03QXDUyKliyTlQFTYkkxSxyQHUH/qM=; b=ARYZyGi296mEZgxxOmwoGof/YvhWIbioQZl8Adhk20bd8Y5xuZg2RPdh 8bASRZhfyLskZ6OzZf8gMRYvK6ZBLDtkbWew45S5kSmldjsc977iEG0oM D4XoXezblxjiVwRyKZUgq2zTXRy8o+D9x4JD3BeclyhSdfxPBb8wjkPE0 IzS6UbmHqdllg+VfOOoM+mq4DrrtLJGO6xATzmpnfda3r1XONM9ZjdZqp 2mevBZYBVwZBDlfUOSr9af+1kLzDiSBCEkysD0Zzewn4C5GzKOwrUczvM K/KkXLRTU1LbYsmhgmkpJFk6I2iqKbQzeicBbVNCRLL8caz5codC08IQy Q==; X-CSE-ConnectionGUID: 81sKhOolRiW4ODvQg9FmVw== X-CSE-MsgGUID: ecD7yVDQTDeLIvWwjjTJ0g== X-IronPort-AV: E=McAfee;i="6700,10204,11179"; a="34181806" X-IronPort-AV: E=Sophos;i="6.10,185,1719903600"; d="scan'208";a="34181806" Received: from orviesa005.jf.intel.com ([10.64.159.145]) by fmvoesa103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Aug 2024 05:57:43 -0700 X-CSE-ConnectionGUID: GlQuZ++oRC+CehIUb6Nhjw== X-CSE-MsgGUID: s/oe6tgjTly7/HIXdzmLcA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.10,185,1719903600"; d="scan'208";a="68393258" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orviesa005.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 29 Aug 2024 05:57:35 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 29 Aug 2024 05:57:33 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 29 Aug 2024 05:57:33 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Thu, 29 Aug 2024 05:57:33 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.171) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Thu, 29 Aug 2024 05:57:32 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BLFIpZBUFiqDvrTHX2v+S5KYMMvH6xd50n7vj9VTZTSj3F4NQaSxzAVS5rZGnbYP3z1LN0VoqMuhLftnW1H+GIwMZtRxEJJ1MP2Bkwp2W84Hgl74XylkLAgDlmjaaU0uveWm0oBTWPDEujquqE4VUYLLsRjkECDequJ1onqXXZD1doc+UJHWAUSW2dKb0nJz5yWAdUDipPooCxNL/GIZwxHLncXtE86hb8vaHwvP92HaSfgzJcmIgaVzIGJlEZrB5cN8InQh3YrXLZ63xPDdJ5UMS/ANAeIiegtd3zH3IYW8OF3QnPeysnAKzQYjC4JSAd3Qu2kEIrfBbg6YgdNv5A== 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=pfeOzuvZTT1DX03QXDUyKliyTlQFTYkkxSxyQHUH/qM=; b=gbEnvtp0CwDw6PJcL+4/O+Hk/osZrT7a1GubTidhX7SR+7/XUMiPyk/jqB54BU1rwa5pFJsI2Mb8I7hY/JjZEY7qa7z1tVhq3WUWpwPsynxz0qCV//OuVb60LQ5HcSp1qlPsvO6m6DNTaD9jMVtStqy7jqt/YBhKCHzCvxem3zz8RYukwktL7AT721ObwtcsVg5e2PDgVT0tabHNsCasj0JYywztt+aY7RNs49bJQGBHwQ19GeAUZXqLhtxbeN72vS7UHiWQB0eO0CxLZNL7bWH+7+1WlT5p/y+HpEx2LrHChO5wLDpykPJqTvAS380jq0aZlnzPAgydvqLpPpqDzg== 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 IA0PR11MB7864.namprd11.prod.outlook.com (2603:10b6:208:3df::14) by MW6PR11MB8440.namprd11.prod.outlook.com (2603:10b6:303:242::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7897.28; Thu, 29 Aug 2024 12:57:28 +0000 Received: from IA0PR11MB7864.namprd11.prod.outlook.com ([fe80::9333:15de:faa8:4cf9]) by IA0PR11MB7864.namprd11.prod.outlook.com ([fe80::9333:15de:faa8:4cf9%5]) with mapi id 15.20.7897.027; Thu, 29 Aug 2024 12:57:27 +0000 From: "Grzegorzek, Dominik" To: "Kempczynski, Zbigniew" , "Manszewski, Christoph" CC: "Patelczyk, Maciej" , "Hajda, Andrzej" , "Kuoppala, Mika" , "Sikora, Pawel" , "Piatkowski, Dominik Karol" , "Mun, Gwan-gyeong" , "igt-dev@lists.freedesktop.org" , "kamil.konieczny@linux.intel.com" , Kolanupaka Naveena Subject: Re: [PATCH i-g-t v4 04/17] lib/gpgpu_shader: Extend shader building library Thread-Topic: [PATCH i-g-t v4 04/17] lib/gpgpu_shader: Extend shader building library Thread-Index: AQHa9Yl/WFZj8EXDx0uY1hfelNW737I+DG6AgAAufQA= Date: Thu, 29 Aug 2024 12:57:27 +0000 Message-ID: References: <20240823182222.305965-1-christoph.manszewski@intel.com> <20240823182222.305965-5-christoph.manszewski@intel.com> <20240829101103.yejj4bekc2o6pvin@zkempczy-mobl2> In-Reply-To: <20240829101103.yejj4bekc2o6pvin@zkempczy-mobl2> 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=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: IA0PR11MB7864:EE_|MW6PR11MB8440:EE_ x-ms-office365-filtering-correlation-id: ad85ed26-b6c2-45f4-2f9f-08dcc82a2290 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|376014|366016|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?Y0Y0S0NWRU5sd2xRTEF4NjVxM016TWQ5N1VNWGVxcHVRMVBSN3VRSVI3WjBt?= =?utf-8?B?SE5EUEQwNFQ0bFU5OUcyK0dKd25Rd1hrOG9tOW9idXFaQXZFN2Vsakk4QmMr?= =?utf-8?B?RjBSeWtUZTFYRWN1VW5QNUVvTnRsREVwbmhKTnI4RGxvMTBVeVpyZ1FMR1Z1?= =?utf-8?B?MS9qcU1wSjJQOEdMVXVkaG9aRENlVHA5YThFVkFEK0ZRVFZRVGhtY0hMdjJD?= =?utf-8?B?dkk2VUZIQ3VUSExvaTA1VnZYQ2pYVWFrY2FWZ0sxVG5MeFdLRDB1ZFVEemNo?= =?utf-8?B?V1VaUVdZSnVBZUxkTHgvdnNBeW1objhmRWFDblZJOE83TlR3elFvdkEybXRF?= =?utf-8?B?VldOOUF2RlZCbm43dzRDdWxJdlUvcTJZOXhFUWFXcE41WWRzYlQ2cWFFK0V1?= =?utf-8?B?S2UvQzBsRndtZFArSCtsTFRDbGVwWGlwaWM3bFJ2S1Q2Q1JPSVRRU3ZmYW9N?= =?utf-8?B?M2ZpVEU2ZXBoaElBN21PT29ObGFXR3VPUllKY3NZdU54clNSSkZFYnovSTRo?= =?utf-8?B?OFF1Rk50OGxOc1JRamJaYTJicUpaUGMrK0VkeFA2d3hqZjR1Q20vcVpRNjNE?= =?utf-8?B?clhmQUh1SnFKOFRqNUFyRnJNSXU4QlZZZjE5V0NWTDRDUWFleEJlWnJCWnEw?= =?utf-8?B?WHYvbFdxYnZYNE9SbDkrOEtiRG1EeWNjTGRTTWhxellWd3dET1RsbkZRSVAx?= =?utf-8?B?N3c0VzVnSHRNVG5yUXZrQXk3V3hXZlp0UHU0cVgvZjFnaUdTa0RnQTB2RmY5?= =?utf-8?B?SEdaOHJUWjR4eDZMS2FWZ3hFR01kY2U2R3pwRzk3WjFPZ2RJckREeVdlUUhq?= =?utf-8?B?K1NVOWNjM05kSzNQNjNONUNGcnpxMThNcDJpK2RYSS9NbjF1ejFsY0luTHYw?= =?utf-8?B?TEpPdjNReE9NM1hIajA5VlRKZktBWlR0S2syZit1ay96R2hYQVZkUzlKK3Qx?= =?utf-8?B?ZXFFMVRhd0F0ZnFkYkpnazAxUElYUDJmay9GWXRUMndsRlN4QkRqWXpJRVM3?= =?utf-8?B?U00yT3NoNkNFRTNQWGpWVytlNzhnRXBXMXJqWU1FV3BHYlBFYTNYbndhSERY?= =?utf-8?B?ZWdUbFdRcEhNek1wcVFaeFhMd0RXb05rZGVFcGluSDcxdVA2UXVtWDdpSU5I?= =?utf-8?B?U1B0OFJZT1dYUzdVVDl6UDAzZTAwek1pV0RQMllWcklkczlMejJldTFTSWdD?= =?utf-8?B?K1p1ZFVYY1Q5ajlRNWY3NDFKMjdZTnpuclZINHJrdmhjb0tTTDVjWjc0VGJN?= =?utf-8?B?OE9BekhoT3J0UlhidkVmZ2RSZ2NNZkZBZXE3RlFFMWJKMEJxc0hEVnBueVJq?= =?utf-8?B?cm5kODJQVXJkTkp5clFiTjBpWUV2Y1cxUFlaZ3ZNaHppZmQ4VXdOcG9aUjRk?= =?utf-8?B?NDhpcG9TSW42VDZMVFdjY1FwK3hWV3BlbHhGaFBwbFlzMzExb3FyQUVIa0xl?= =?utf-8?B?SnNyWnJIaGN5NFJDMTRENjVhTnkwUWZJWlJBMGU5Y1F2NGJHdmpJVkN0bzZZ?= =?utf-8?B?VHpQWHBaeStZN3YyOWVhL2cxU1piZFBXRHZZRG80U1UyaVI2ZkdVMlhEa3Bz?= =?utf-8?B?cWtEQlkzaGJqaFpSSW5kUmVsNGdONkhmWTNXb29DcVpUd1Uvb0hveC9RamZ5?= =?utf-8?B?RHk5OExJQlZ4Nkk2RTA0NVdvays4cUZqMlpzU1BxdUhEcTNOYjY4bjY1NmxQ?= =?utf-8?B?L0R4NjgzeHhCN29xTEpQc0hsZ0x0Uk12c2hxYjJaWnlDbVR4OXVvQitMYnlB?= =?utf-8?B?SHNJUVl5Q2xQSFZDdHlQZkNCZStFZGw1LzIxYjhyVHZvRmREcEROcFFUR0NC?= =?utf-8?B?a2g2c2djZXJxa2M5UTRycSt4SVhmUzlYTlpqYXJ2OEtHSmxXODUrR0pTdjFI?= =?utf-8?B?SWZkekcxNjZpa25kRWxhNTBrdENNNDZLVlBMTEdrYlJKQXc9PQ==?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:IA0PR11MB7864.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(376014)(366016)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RS9CTG1ERlhhc1FVTmdBNnRkZTRKb0tLbUFhVWZSeVVmRTNRdTNsM2dzODlN?= =?utf-8?B?TEo5Z2dLTDgxbnYyYjBnRjNKZXhCTldXN0Y4T21hUDBsRWhNbkxqRnliRTg5?= =?utf-8?B?c0lCRzEzVTgrN2VQVEdReGt4ODZqSWJIdFMvay82RWxmdWJNUVc0ejRrS0NJ?= =?utf-8?B?Y3MzdzBReVYwbytnWTVJMTBhL2NYU1BaZDAwYThtTDJMVWVCZk91cHFZQWZp?= =?utf-8?B?emdoUE96ckduN2g1Z2QyWXNNaE9rUXJGMk5lbG1QNGgxUEJUWEowaS9TTnpQ?= =?utf-8?B?ejZaUld0WHVSVlJlT3hLT3VQckhCbTFwM1FNdmtiRnM0ZU51NGcrVy9vSzVQ?= =?utf-8?B?YTJSN3lVNmorL1plWmJTZE1hTlNKNUVqVVU0TjliQm5qYVp0QzAyRkVUZExF?= =?utf-8?B?RDFHM1pxNlFUbGxiWkFjbjlYRkgvaVpuanlLZ1RXL0o0YWZnRFJ6ZXJCM2pU?= =?utf-8?B?eFY4VzQ2aE93Z3grWWlPYUliQkg4T3R4c0F2TC9UWnkreXVxQnFJYzVRTGE3?= =?utf-8?B?NGtIdFVqUVBHVXN1UVFuajk5M2MzazBXVEN3OE0zbUIzd1U2LzdBMkdjYnMz?= =?utf-8?B?UnJRUDc1QTRweDZwZFBCMUZ6d1J4Y1hzcmNjeldPNkpScnA4VWo0TmNabGJn?= =?utf-8?B?cCs5N0FFR2NubHRETEFNcnhoTnE1WFBzZ2RndGRTWHhLU2dCcDFRUkI1b3lS?= =?utf-8?B?ODdOT1hqeVdhZmZrdmhSejc5Q0RWQURiak5FWGdteVgwbm9iUnBhKzJYeXpi?= =?utf-8?B?RS95Yjd2eU5TeVhMZzhwRmFHdm13V0x0NENKeWROU0RaWWdYeTExeXlYaDV1?= =?utf-8?B?S0FvUEwyb1lhcnN6SzhEVHlrMGVuNWdkaTlNdHFTVXF4SWllY0FmTFNTUnBM?= =?utf-8?B?WklReFFrcm5TcnUyOERqNEc5NndiY0swaUFpcm1jWVZmanFTVGpBT05ZcnZi?= =?utf-8?B?VTNVTVZOL0lTZmtXZkhKNGpZNGdHSEE5Y0JBOXRIeHFjQ0lhOW04enZJRUlv?= =?utf-8?B?Q3krQzlKMzI1aXJIdW1FU1ZVOHBKSjAyR2RaTlpXMFNxaWhHUGltQ1FuMm9K?= =?utf-8?B?a2dyRkJPcTdYYytpY1RTTnNmRlBoRVZSdy91dTRsUjNleUF5SGwwM2ZQVFJ5?= =?utf-8?B?dTZxRTZ1d2huaHlDWlVtYktUZWNsZVhzOFJtaWExK3Y2bFRoOWZjZXJaeFVE?= =?utf-8?B?TXluVk52MWFPYVVJenNjc3o0NjdUM1ZXS1RGalFYOEwvaHI1U3pWdmdiOG9k?= =?utf-8?B?YlVBa3JnUHpZajFvVnZ1M3dwY2xuVzMvdWZ4blFmempjV1BjSXJMQkVYTlQy?= =?utf-8?B?RVNQRWl0TzRlZTdOYUdOOU42eVFmZTRMVzYya1I5bE9wbDFDYlJKekVMWmth?= =?utf-8?B?b3V0aEd6SGNVMjJCZHJ1QkJYelFINjlaRE1XQmlaNzJYaUF6TVNLazdKUjJ3?= =?utf-8?B?NjVkVHFsanFjcFA3dUNoVUxleEJ6cVFhYUVFWG8zQ25tRkI1ZlRsRlJ0RUdv?= =?utf-8?B?Nk5FYjRuS3FlMXlPZW04bnpzdUo0NEFnSUpWSGxvL2x0SVNwaCttM1dQclQy?= =?utf-8?B?Mk5IbytVTEhac2U3SGtiN0d6elFaUVAyZHBQZndweHpTYm9mTXRlNGQxb2NM?= =?utf-8?B?M1MxdXlzOWdPSE9tV1g4K2RQRFlma2NmM3VwYXNudU1FSUIrb3Jsakoxd0Vn?= =?utf-8?B?RzBDUEZRWklrWnJCOUFMOEt1eENoYTB4cytoZmdLdGxqNWpidUQ4VVBiL2ts?= =?utf-8?B?TXhmM0hTeGI2U0lkVUpJeGpZNnIxRSttTmU5UGRiV00wODltaHFFVCtVS0Zh?= =?utf-8?B?QUNOVEVGSWI0ZWxsTUVnaGhSY3NxVlVQcXcwazhDZWYzUDFYV2V2YXZ3VzZm?= =?utf-8?B?ZCtKcnp4OHZGa0x6SThhMGRVWEw5a05Wb2x4RFpGRHZkZmx6YjE1QlJFMThL?= =?utf-8?B?OHVPTDAvaWhxL3RMbEttU1ZYK3IxVFhZSE1JWktQbnNWUW10T3hIVExaNEk3?= =?utf-8?B?cHB1TEdYNzdQdzZvbmx6ZmFQNU9vNitDbkJEK2JCUW9GOEYyZS9UdnN4TW5R?= =?utf-8?B?N1VOY0V0dmFBZ05yY24rdDFuUkprZTRRVDFYZk9IYVRJSEZUdmdmWVpUUm1v?= =?utf-8?B?bERkQjY5TmF2M3cyd1ZyZ0NyYUU3N3g2MGROVU03dW9VSzhOZ2NjcFRhSFZh?= =?utf-8?Q?fowBb8GPc3x/0IRd8bryOQ0=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <5E2CA6802168734FB6BC55BCCA01D22E@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: IA0PR11MB7864.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ad85ed26-b6c2-45f4-2f9f-08dcc82a2290 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2024 12:57:27.3296 (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: heqJgJFHc/WmYy+d6NA1sl1aNAY3oJquJGiwqryck7Kya9ifsCnM4VjaE5nJ6xS/5TjpRLsL+ExFvgwHm9bspbG1npNMin1ZwYqMwGTry80= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR11MB8440 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" SGkgWmJpZ25pZXchDQpPbiBUaHUsIDIwMjQtMDgtMjkgYXQgMTI6MTEgKzAyMDAsIFpiaWduaWV3 IEtlbXBjennFhHNraSB3cm90ZToNCj4gT24gRnJpLCBBdWcgMjMsIDIwMjQgYXQgMDg6MjI6MDlQ TSArMDIwMCwgQ2hyaXN0b3BoIE1hbnN6ZXdza2kgd3JvdGU6DQo+ID4gQWRkIHNoYWRlciBidWls ZGluZyBmdW5jdGlvbnMgYW5kIGlnYTY0IGNvZGUgdXNlZCBieSBldWRlYnVnIHN1YnRlc3RzLg0K PiA+IA0KPiA+IFNpZ25lZC1vZmYtYnk6IERvbWluaWsgR3J6ZWdvcnplayA8ZG9taW5pay5ncnpl Z29yemVrQGludGVsLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGggTWFuc3pld3Nr aSA8Y2hyaXN0b3BoLm1hbnN6ZXdza2lAaW50ZWwuY29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6IEFu ZHJ6ZWogSGFqZGEgPGFuZHJ6ZWouaGFqZGFAaW50ZWwuY29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6 IERvbWluaWsgS2Fyb2wgUGnEhXRrb3dza2kgPGRvbWluaWsua2Fyb2wucGlhdGtvd3NraUBpbnRl bC5jb20+DQo+ID4gQ2M6IERvbWluaWsgR3J6ZWdvcnplayA8ZG9taW5pay5ncnplZ29yemVrQGlu dGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgbGliL2dwZ3B1X3NoYWRlci5jICAgICAgICAgIHwgMzg2 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0NCj4gPiAgbGliL2dwZ3B1X3NoYWRl ci5oICAgICAgICAgIHwgIDI0ICsrLQ0KPiA+ICBsaWIvaWdhNjRfZ2VuZXJhdGVkX2NvZGVzLmMg fCA0MDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystDQo+ID4gIDMgZmlsZXMg Y2hhbmdlZCwgODA3IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pDQo+ID4gDQo+ID4gZGlm ZiAtLWdpdCBhL2xpYi9ncGdwdV9zaGFkZXIuYyBiL2xpYi9ncGdwdV9zaGFkZXIuYw0KPiA+IGlu ZGV4IDgwYmFkMzQyYS4uM2RhYjIzOTQyIDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9ncGdwdV9zaGFk ZXIuYw0KPiA+ICsrKyBiL2xpYi9ncGdwdV9zaGFkZXIuYw0KPiA+IEBAIC03LDEwICs3LDE2IEBA DQo+ID4gIA0KPiA+ICAjaW5jbHVkZSA8aTkxNV9kcm0uaD4NCj4gPiAgDQo+ID4gKyNpbmNsdWRl ICJpZ3RfbWFwLmgiDQo+ID4gICNpbmNsdWRlICJpb2N0bF93cmFwcGVycy5oIg0KPiA+ICAjaW5j bHVkZSAiZ3BncHVfc2hhZGVyLmgiDQo+ID4gICNpbmNsdWRlICJncHVfY21kcy5oIg0KPiA+ICAN Cj4gPiArc3RydWN0IGxhYmVsX2VudHJ5IHsNCj4gPiArCXVpbnQzMl90IGlkOw0KPiA+ICsJdWlu dDMyX3Qgb2Zmc2V0Ow0KPiA+ICt9Ow0KPiA+ICsNCj4gPiAgI2RlZmluZSBJR0E2NF9BUkcwIDB4 YzBkZWQwMDANCj4gPiAgI2RlZmluZSBJR0E2NF9BUkdfTUFTSyAweGZmZmZmZjAwDQo+ID4gIA0K PiA+IEBAIC0zMiw3ICszOCw3IEBAIHN0YXRpYyB2b2lkIGdwZ3B1X3NoYWRlcl9leHRlbmQoc3Ry dWN0IGdwZ3B1X3NoYWRlciAqc2hkcikNCj4gPiAgCWlndF9hc3NlcnQoc2hkci0+Y29kZSk7DQo+ ID4gIH0NCj4gPiAgDQo+ID4gLXZvaWQNCj4gPiArdWludDMyX3QNCj4gPiAgX19lbWl0X2lnYTY0 X2NvZGUoc3RydWN0IGdwZ3B1X3NoYWRlciAqc2hkciwgc3RydWN0IGlnYTY0X3RlbXBsYXRlIGNv bnN0ICp0cGxzLA0KPiA+ICAJCSAgaW50IGFyZ2MsIHVpbnQzMl90ICphcmd2KQ0KPiA+ICB7DQo+ ID4gQEAgLTYwLDYgKzY2LDggQEAgX19lbWl0X2lnYTY0X2NvZGUoc3RydWN0IGdwZ3B1X3NoYWRl ciAqc2hkciwgc3RydWN0IGlnYTY0X3RlbXBsYXRlIGNvbnN0ICp0cGxzLA0KPiA+ICAJfQ0KPiA+ ICANCj4gPiAgCXNoZHItPnNpemUgKz0gdHBscy0+c2l6ZTsNCj4gPiArDQo+ID4gKwlyZXR1cm4g dHBscy0+c2l6ZTsNCj4gPiAgfQ0KPiA+ICANCj4gPiAgc3RhdGljIHVpbnQzMl90IGZpbGxfc2lw KHN0cnVjdCBpbnRlbF9iYiAqaWJiLA0KPiA+IEBAIC0yMzUsNiArMjQzLDcgQEAgc3RydWN0IGdw Z3B1X3NoYWRlciAqZ3BncHVfc2hhZGVyX2NyZWF0ZShpbnQgZmQpDQo+ID4gIAlzaGRyLT5nZW5f dmVyID0gMTAwICogaW5mby0+Z3JhcGhpY3NfdmVyICsgaW5mby0+Z3JhcGhpY3NfcmVsOw0KPiA+ ICAJc2hkci0+bWF4X3NpemUgPSAxNiAqIDQ7DQo+ID4gIAlzaGRyLT5jb2RlID0gbWFsbG9jKDQg KiBzaGRyLT5tYXhfc2l6ZSk7DQo+ID4gKwlzaGRyLT5sYWJlbHMgPSBpZ3RfbWFwX2NyZWF0ZShp Z3RfbWFwX2hhc2hfMzIsIGlndF9tYXBfZXF1YWxfMzIpOw0KPiA+ICAJaWd0X2Fzc2VydChzaGRy LT5jb2RlKTsNCj4gPiAgCXJldHVybiBzaGRyOw0KPiA+ICB9DQo+ID4gQEAgLTI1MSw2ICsyNjAs NzAgQEAgdm9pZCBncGdwdV9zaGFkZXJfZGVzdHJveShzdHJ1Y3QgZ3BncHVfc2hhZGVyICpzaGRy KQ0KPiA+ICAJZnJlZShzaGRyKTsNCj4gPiAgfQ0KPiA+ICANCj4gPiArLyoqDQo+ID4gKyAqIGdw Z3B1X3NoYWRlcl9kdW1wOg0KPiA+ICsgKiBAc2hkcjogc2hhZGVyIHRvIGJlIHByaW50ZWQNCj4g PiArICoNCj4gPiArICogUHJpbnQgc2hhZGVyIGluc3RydWN0aW9ucyBmcm9tIEBzaGRyIGluIGhl eC4NCj4gPiArICovDQo+ID4gK3ZvaWQgZ3BncHVfc2hhZGVyX2R1bXAoc3RydWN0IGdwZ3B1X3No YWRlciAqc2hkcikNCj4gPiArew0KPiA+ICsJZm9yIChpbnQgaSA9IDA7IGkgPCBzaGRyLT5zaXpl IC8gNDsgaSsrKQ0KPiA+ICsJCWlndF9pbmZvKCIweCUwOHggMHglMDh4IDB4JTA4eCAweCUwOHhc biIsDQo+ID4gKwkJCSBzaGRyLT5pbnN0cltpXVswXSwgc2hkci0+aW5zdHJbaV1bMV0sDQo+ID4g KwkJCSBzaGRyLT5pbnN0cltpXVsyXSwgc2hkci0+aW5zdHJbaV1bM10pOw0KPiA+ICt9DQo+ID4g Kw0KPiA+ICsvKioNCj4gPiArICogZ3BncHVfc2hhZGVyX19icmVha3BvaW50X29uOg0KPiA+ICsg KiBAc2hkcjogc2hhZGVyIHRvIGNyZWF0ZSBicmVha3BvaW50IGluDQo+ID4gKyAqIEBjbWRfbm86 IGluZGV4IG9mIHRoZSBpbnN0cnVjdGlvbiB0byBicmVhayBvbg0KPiA+ICsgKg0KPiA+ICsgKiBJ bnNlcnQgYSBicmVha3BvaW50IG9uIHRoZSBAY21kX25vJ3RoIGluc3RydWN0aW9uIHdpdGhpbiBA c2hkci4NCj4gPiArICovDQo+ID4gK3ZvaWQgZ3BncHVfc2hhZGVyX19icmVha3BvaW50X29uKHN0 cnVjdCBncGdwdV9zaGFkZXIgKnNoZHIsIHVpbnQzMl90IGNtZF9ubykNCj4gPiArew0KPiA+ICsJ c2hkci0+aW5zdHJbY21kX25vXVswXSB8PSAxPDwzMDsNCj4gDQo+IEkgdGhpbmsgeW91IHNob3Vs ZCBjaGVjayBjbWRfbm8gaXMgd2l0aGluIHRoZSByYW5nZSBvZiB0aGUgc2hhZGVyIHNpemUuDQpH b29kIHBvaW50LCB0aGFua3MhDQo+IA0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICog Z3BncHVfc2hhZGVyX19icmVha3BvaW50Og0KPiA+ICsgKiBAc2hkcjogc2hhZGVyIHRvIGNyZWF0 ZSBicmVha3BvaW50IGluDQo+ID4gKyAqDQo+ID4gKyAqIEluc2VydCBhIGJyZWFrcG9pbnQgb24g dGhlIGxhc3QgaW5zdHJ1Y3Rpb24gaW4gQHNoZHIuDQo+ID4gKyAqLw0KPiA+ICt2b2lkIGdwZ3B1 X3NoYWRlcl9fYnJlYWtwb2ludChzdHJ1Y3QgZ3BncHVfc2hhZGVyICpzaGRyKQ0KPiA+ICt7DQo+ ID4gKwlncGdwdV9zaGFkZXJfX2JyZWFrcG9pbnRfb24oc2hkciwgc2hkci0+c2l6ZSAvIDQgLSAx KTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIGdwZ3B1X3NoYWRlcl9fd2FpdDoN Cj4gPiArICogQHNoZHI6IHNoYWRlciB0byBiZSBtb2RpZmllZA0KPiA+ICsgKg0KPiA+ICsgKiBB cHBlbmQgd2FpdCBpbnN0cnVjdGlvbiB0byBAc2hhZGVyLiBUaGlzIGluc3RydWN0aW9uIHJhaXNl cyBhdHRlbnRpb24NCj4gPiArICogYW5kIHN0b3BzIGV4ZWN1dGlvbi4NCj4gPiArICovDQo+ID4g K3ZvaWQgZ3BncHVfc2hhZGVyX193YWl0KHN0cnVjdCBncGdwdV9zaGFkZXIgKnNoZHIpDQo+ID4g K3sNCj4gPiArCWVtaXRfaWdhNjRfY29kZShzaGRyLCBzeW5jX2hvc3QsICIJXG5cDQo+ID4gKyhX KQlzeW5jLmhvc3QJICAgICAgICBudWxsCQlcblwNCj4gPiArCSIpOw0KPiA+ICt9DQo+ID4gKw0K PiA+ICsvKioNCj4gPiArICogZ3BncHVfc2hhZGVyX19ub3A6DQo+ID4gKyAqIEBzaGRyOiBzaGFk ZXIgdG8gYmUgbW9kaWZpZWQNCj4gPiArICoNCj4gPiArICogQXBwZW5kIGEgbm8tb3AgaW5zdHJ1 Y3Rpb24gdG8gQHNoZHIuDQo+ID4gKyAqLw0KPiA+ICt2b2lkIGdwZ3B1X3NoYWRlcl9fbm9wKHN0 cnVjdCBncGdwdV9zaGFkZXIgKnNoZHIpDQo+ID4gK3sNCj4gPiArCWVtaXRfaWdhNjRfY29kZShz aGRyLCBub3AsICIJXG5cDQo+ID4gKyhXKQlub3AJCQkJXG5cDQo+ID4gKwkiKTsNCj4gPiArfQ0K PiA+ICsNCj4gPiAgLyoqDQo+ID4gICAqIGdwZ3B1X3NoYWRlcl9fZW90Og0KPiA+ICAgKiBAc2hk cjogc2hhZGVyIHRvIGJlIG1vZGlmaWVkDQo+ID4gQEAgLTI2OSw2ICszNDIsMjQ3IEBAIHZvaWQg Z3BncHVfc2hhZGVyX19lb3Qoc3RydWN0IGdwZ3B1X3NoYWRlciAqc2hkcikNCj4gPiAgCSIpOw0K PiA+ICB9DQo+ID4gIA0KPiA+ICsvKioNCj4gPiArICogZ3BncHVfc2hhZGVyX19sYWJlbDoNCj4g PiArICogQHNoZHI6IHNoYWRlciB0byBiZSBtb2RpZmllZA0KPiA+ICsgKiBAbGFiZWxfaWQ6IGlk IG9mIHRoZSBsYWJlbCB0byBiZSBjcmVhdGVkDQo+ID4gKyAqDQo+ID4gKyAqIENyZWF0ZSBhIGxh YmVsIGZvciB0aGUgbGFzdCBpbnN0cnVjdGlvbiB3aXRoaW4gQHNoZHIuDQo+ID4gKyAqLw0KPiA+ ICt2b2lkIGdwZ3B1X3NoYWRlcl9fbGFiZWwoc3RydWN0IGdwZ3B1X3NoYWRlciAqc2hkciwgaW50 IGxhYmVsX2lkKQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgbGFiZWxfZW50cnkgKmwgPSBtYWxsb2Mo c2l6ZW9mKCpsKSk7DQo+ID4gKw0KPiA+ICsJbC0+aWQgPSBsYWJlbF9pZDsNCj4gPiArCWwtPm9m ZnNldCA9IHNoZHItPnNpemU7DQo+ID4gKwlpZ3RfbWFwX2luc2VydChzaGRyLT5sYWJlbHMsICZs LT5pZCwgbCk7DQo+ID4gK30NCj4gPiArDQo+ID4gKyNkZWZpbmUgT1BDT0RFKHgpICh4ICYgMHg3 ZikNCj4gPiArI2RlZmluZSBPUENPREVfSlVNUF9JTkRFWEVEIDB4MjANCj4gPiArc3RhdGljIHZv aWQgX19wYXRjaF9pbmRleGVkX2p1bXAoc3RydWN0IGdwZ3B1X3NoYWRlciAqc2hkciwgaW50IGxh YmVsX2lkLA0KPiA+ICsJCQkJIHVpbnQzMl90IGp1bXBfaWdhNjRfc2l6ZSkNCj4gPiArew0KPiA+ ICsJc3RydWN0IGxhYmVsX2VudHJ5ICpsOw0KPiA+ICsJdWludDMyX3QgKnN0YXJ0LCAqZW5kLCAq bGFiZWw7DQo+ID4gKwlpbnQzMl90IHJlbGF0aXZlOw0KPiA+ICsNCj4gPiArCWwgPSBpZ3RfbWFw X3NlYXJjaChzaGRyLT5sYWJlbHMsICZsYWJlbF9pZCk7DQo+ID4gKwlpZ3RfYXNzZXJ0KGwpOw0K PiA+ICsNCj4gPiArCWlndF9hc3NlcnQoanVtcF9pZ2E2NF9zaXplICUgNCA9PSAwKTsNCj4gPiAr DQo+ID4gKwlsYWJlbCA9IHNoZHItPmNvZGUgKyBsLT5vZmZzZXQ7DQo+ID4gKwllbmQgPSBzaGRy LT5jb2RlICsgc2hkci0+c2l6ZTsNCj4gPiArCXN0YXJ0ID0gZW5kIC0ganVtcF9pZ2E2NF9zaXpl Ow0KPiA+ICsNCj4gPiArCWZvciAoOyBzdGFydCA8IGVuZDsgc3RhcnQgKz0gNCkNCj4gPiArCQlp ZiAoT1BDT0RFKCpzdGFydCkgPT0gT1BDT0RFX0pVTVBfSU5ERVhFRCkgew0KPiA+ICsJCQlyZWxh dGl2ZSA9IChsYWJlbCAtIHN0YXJ0KSAqIDQ7DQo+ID4gKwkJCSooc3RhcnQgKyAzKSA9IHJlbGF0 aXZlOw0KPiANCj4gSXMgYW55IHJlc3RyaWN0aW9uIHRvIHJlbGF0aXZlIHZhbHVlPyBJIG1lYW4g YXJlIGFsbCAzMiBiaXRzDQo+IHVzZWQgZm9yIHRoZSBhZGRyZXNzPw0KQXMgSSByZW1lbWJlciB0 aGVyZSB3YXMgbm8gcmVzdHJpY3Rpb24uIEJ1dCBJJ3ZlIHdyaXR0ZW4gdGhpcyBxdWl0ZSBsb25n IHRpbWUgYWdvIHNvIEkgd2lsbCBkb3VibGUNCmNoZWNrLg0KPiANCj4gPiArCQkJYnJlYWs7DQo+ ID4gKwkJfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICogZ3BncHVfc2hhZGVyX19q dW1wOg0KPiA+ICsgKiBAc2hkcjogc2hhZGVyIHRvIGJlIG1vZGlmaWVkDQo+ID4gKyAqIEBsYWJl bF9pZDogbGFiZWwgdG8ganVtcCB0bw0KPiA+ICsgKg0KPiA+ICsgKiBBcHBlbmQganVtcCBpbnN0 cnVjdGlvbiB0byBAc2hkci4gSnVtcCB0byBpbnN0cnVjdGlvbiB3aXRoIGxhYmVsIEBsYWJlbF9p ZC4NCj4gPiArICovDQo+ID4gK3ZvaWQgZ3BncHVfc2hhZGVyX19qdW1wKHN0cnVjdCBncGdwdV9z aGFkZXIgKnNoZHIsIGludCBsYWJlbF9pZCkNCj4gPiArew0KPiA+ICsJc2l6ZV90IHNoYWRlcl9z aXplOw0KPiA+ICsNCj4gPiArCXNoYWRlcl9zaXplID0gZW1pdF9pZ2E2NF9jb2RlKHNoZHIsIGp1 bXAsICIJXG5cDQo+ID4gK0wwOgkJCQkJCQlcblwNCj4gPiArKFcpCWptcGkgICAgICAgIEwwCQkJ CQlcblwNCj4gPiArCSIpOw0KPiA+ICsNCj4gPiArCV9fcGF0Y2hfaW5kZXhlZF9qdW1wKHNoZHIs IGxhYmVsX2lkLCBzaGFkZXJfc2l6ZSk7DQo+IA0KPiBJZiBJJ20gbm90IHdyb25nIHRoaXMgc3Vw cG9ydHMgb25seSBiYWNrd2FyZCBqdW1wcy4gRG8geW91IHBsYW4gdG8NCj4gYWRkIGZvcndhcmQg anVtcCBwYXRjaGluZyBvciB0aGlzIGlzIG5vdCBuZWNlc3Nhcnk/DQpZZXMgYW5kIGl0IGlzIHNv bWV3aGF0IGZvcmNlZCBieSB0aGUgYXBpLiBGaXJzdCB5b3UgbmVlZCB0byBhZGQgbGFiZWwgdG8g Z3BncHVfc2hhZGVyLCANCmFuZCBvbmx5IHRoZW4geW91IGNhbiB1c2Ugc2hhZGVyX19qdW1wLiBV cCB0byB0aGlzIHBvaW50IHRoZXJlIHdhcyBubyBuZWVkIHRvIGNyZWF0ZSBub24gYmFja3dvcmQN Cmp1bXBzLiBDYW4gd2UganVzdCB1bmRlcmxpbmUgdGhpcyByZXF1aXJlbWVudCBpbiB0aGUgZGVz Y3JpcHRpb24/DQo+IA0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICogZ3BncHVfc2hh ZGVyX19qdW1wX25lcToNCj4gPiArICogQHNoZHI6IHNoYWRlciB0byBiZSBtb2RpZmllZA0KPiA+ ICsgKiBAbGFiZWxfaWQ6IGxhYmVsIHRvIGp1bXAgdG8NCj4gPiArICogQHlfb2Zmc2V0OiBvZmZz ZXQgd2l0aGluIHRhcmdldCBidWZmZXIgaW4gcm93cw0KPiA+ICsgKiBAdmFsdWU6IGV4cGVjdGVk IHZhbHVlDQo+ID4gKyAqDQo+ID4gKyAqIEFwcGVuZCBqdW1wIGluc3RydWN0aW9uIHRvIEBzaGRy LiBKdW1wIHRvIGluc3RydWN0aW9uIHdpdGggbGFiZWwgQGxhYmVsX2lkDQo+ID4gKyAqIHdoZW4g QHZhbHVlIGlzIG5vdCBlcXVhbCB0byBkd29yZCBzdG9yZWQgYXQgQGR3X29mZnNldCB3aXRoaW4g dGhlIHN1cmZhY2UuDQo+ID4gKyAqDQo+ID4gKyAqIE5vdGU6IEBkd19vZmZzZXQgaGFzIHRvIGJl IGFsaWduZWQgdG8gNA0KPiANCj4gV2hhdCdzIGR3IG9mZnNldD8NCmxlZnRvdmVyID0pDQo+IA0K PiA+ICsgKi8NCj4gPiArdm9pZCBncGdwdV9zaGFkZXJfX2p1bXBfbmVxKHN0cnVjdCBncGdwdV9z aGFkZXIgKnNoZHIsIGludCBsYWJlbF9pZCwNCj4gPiArCQkJICAgIHVpbnQzMl90IHlfb2Zmc2V0 LCB1aW50MzJfdCB2YWx1ZSkNCj4gPiArew0KPiA+ICsJdWludDMyX3Qgc2l6ZTsNCj4gPiArDQo+ ID4gKwlzaXplID0gZW1pdF9pZ2E2NF9jb2RlKHNoZHIsIGp1bXBfZHdfbmVxLCAiCQkJCQlcblwN Cj4gPiArTDA6CQkJCQkJCQkJCQlcblwNCj4gPiArKFcpCQltb3YgKDE2fE0wKSAgICAgICAgICAg ICAgcjMwLjA8MT46dWQgICAgMHgwOnVkCQkJCVxuXA0KPiA+ICsjaWYgR0VOX1ZFUiA8IDIwMDAg Ly8gTWVkaWEgQmxvY2sgV3JpdGUJCQkJCQkJXG5cDQo+ID4gKwkvLyBZIG9mZnNldCBvZiB0aGUg YmxvY2sgaW4gcm93cyA6PSB0aHJlYWQgZ3JvdXAgaWQgWQkJCQlcblwNCj4gPiArKFcpCQltb3Yg KDF8TTApICAgICAgICAgICAgICAgcjMwLjE8MT46dWQgICAgQVJHKDApOnVkCQkJXG5cDQo+ID4g KwkvLyBibG9jayB3aWR0aCBbMCw2M10gcmVwcmVzZW50aW5nIDEgdG8gNjQgYnl0ZXMsIHdlIHdh bnQgZHdvcmQJCQlcblwNCj4gPiArKFcpCQltb3YgKDF8TTApICAgICAgICAgICAgICAgcjMwLjI8 MT46dWQgICAgMHgzOnVkCQkJCVxuXA0KPiA+ICsJLy8gRkZUSUQgOj0gRkZUSUQgZnJvbSBSMCBo ZWFkZXIJCQkJCQlcblwNCj4gPiArKFcpCQltb3YgKDF8TTApICAgICAgICAgICAgICAgcjMwLjQ8 MT46dWQgICAgcjAuNTwwOzEsMD46dWQgIAkJXG5cDQo+ID4gKyhXKQkJc2VuZC5kYzEgKDE2fE0w KSAgICAgICAgIHIzMSAgICAgcjMwICAgICAgbnVsbCAgICAweDAJMHgyMTkwMDAwCVxuXA0KPiA+ ICsjZWxzZSAvLyBUeXBlZCAyRCBCbG9jayBTdG9yZQkJCQkJCQkJXG5cDQo+ID4gKwkvLyBTdG9y ZSBYIGFuZCBZIGJsb2NrIHN0YXJ0ICgxNjA6MTkxIGFuZCAxOTI6MjIzKQkJCQlcblwNCj4gPiAr KFcpICAgICAgICAgICAgbW92ICgyfE0wKSAgICAgICAgICAgICAgIHIzMC42PDE+OnVkICAgIEFS RygwKTp1ZAkJCVxuXA0KPiA+ICsJLy8gU3RvcmUgWCBhbmQgWSBibG9jayBzaXplICgyMjQ6MjMx IGFuZCAyMzI6MjM5KQkJCQlcblwNCj4gPiArKFcpICAgICAgICAgICAgbW92ICgxfE0wKSAgICAg ICAgICAgICAgIHIzMC43PDE+OnVkICAgIDB4Mzp1ZAkJCQlcblwNCj4gPiArKFcpICAgICAgICAg ICAgc2VuZC50Z20gKDE2fE0wKSAgICAgICAgIHIzMSAgICAgcjMwICAgIG51bGw6MCAgICAweDAg ICAgMHg2MjEwMDAwMwlcblwNCj4gPiArI2VuZGlmCQkJCQkJCQkJCQlcblwNCj4gPiArCS8vIGNs ZWFyIHRoZSBmbGFnIHJlZ2lzdGVyCQkJCQkJCVxuXA0KPiA+ICsoVykJCW1vdiAoMXxNMCkgICAg ICAgICAgICAgICBmMC4wPDE+OnVkICAgIDB4MDp1ZAkJCQlcblwNCj4gPiArKFcpCQljbXAgKDF8 TTApICAgIChuZSlmMC4wICAgbnVsbDwxPjp1ZCAgICAgcjMxLjA8MDsxLDA+OnVkICAgQVJHKDEp OnVkCVxuXA0KPiA+ICsoVyZmMC4wKQlqbXBpICAgICAgICAgICAgICAgICAgICAgTDAJCQkJCQlc blwNCj4gPiArCSIsIHlfb2Zmc2V0LCB2YWx1ZSk7DQo+ID4gKw0KPiA+ICsJX19wYXRjaF9pbmRl eGVkX2p1bXAoc2hkciwgbGFiZWxfaWQsIHNpemUpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioN Cj4gPiArICogZ3BncHVfc2hhZGVyX19sb29wX2JlZ2luOg0KPiA+ICsgKiBAc2hkcjogc2hhZGVy IHRvIGJlIG1vZGlmaWVkDQo+ID4gKyAqIEBsYWJlbF9pZDogaWQgb2YgdGhlIGxhYmVsIHRvIGJl IGNyZWF0ZWQNCj4gPiArICoNCj4gPiArICogQmVnaW4gYSBjb3VudGluZyBsb29wIGluIEBzaGRy LiBBbGwgc3Vic2VxdWVudCBpbnN0cnVjdGlvbnMgd2lsbCBjb25zdGl0dXRlDQo+ID4gKyAqIHRo ZSBsb29wIGJvZHkgdXAgdW50aWwgJ2dwZ3B1X3NoYWRlcl9fbG9vcF9lbmQnIGdldHMgY2FsbGVk LiBUaGUgZmlyc3QNCj4gPiArICogaW5zdHJ1Y3Rpb24gb2YgdGhlIGxvb3Agd2lsbCBiZSBhdCBs YWJlbCBAbGFiZWxfaWQuDQo+IA0KPiBJIHdvdWxkIGFkZCByNDAgcmVnaXN0ZXIgd2lsbCBiZSBv dmVyd3JpdHRlbiwganVzdCBmb3IgdGhlIHNha2Ugb2YgY2xhcml0eS4NCnN1cmUNCj4gDQo+ID4g KyAqLw0KPiA+ICt2b2lkIGdwZ3B1X3NoYWRlcl9fbG9vcF9iZWdpbihzdHJ1Y3QgZ3BncHVfc2hh ZGVyICpzaGRyLCBpbnQgbGFiZWxfaWQpDQo+ID4gK3sNCj4gPiArCWVtaXRfaWdhNjRfY29kZShz aGRyLCBjbGVhcl9yNDAsICIJCVxuXA0KPiA+ICtMMDoJCQkJCQkJXG5cDQo+ID4gKyhXKQltb3Yg KDF8TTApICAgICAgICAgICAgICAgcjQwOnVkICAgIDB4MDp1ZAlcblwNCj4gPiArCSIpOw0KPiA+ ICsNCj4gPiArCWdwZ3B1X3NoYWRlcl9fbGFiZWwoc2hkciwgbGFiZWxfaWQpOw0KPiA+ICt9DQo+ ID4gKw0KPiA+ICsvKioNCj4gPiArICogZ3BncHVfc2hhZGVyX19sb29wX2VuZDoNCj4gPiArICog QHNoZHI6IHNoYWRlciB0byBiZSBtb2RpZmllZA0KPiA+ICsgKiBAbGFiZWxfaWQ6IGxhYmVsIGlk IHBhc3NlZCB0byAnZ3BncHVfc2hhZGVyX19sb29wX2JlZ2luJw0KPiA+ICsgKiBAaXRlcjogaXRl cmF0aW9uIGNvdW50DQo+ID4gKyAqDQo+ID4gKyAqIEVuZCBsb29wIGJvZHkgaW4gQHNoZHIuDQo+ ID4gKyAqLw0KPiA+ICt2b2lkIGdwZ3B1X3NoYWRlcl9fbG9vcF9lbmQoc3RydWN0IGdwZ3B1X3No YWRlciAqc2hkciwgaW50IGxhYmVsX2lkLCB1aW50MzJfdCBpdGVyKQ0KPiA+ICt7DQo+ID4gKwl1 aW50MzJfdCBzaXplOw0KPiA+ICsNCj4gPiArCXNpemUgPSBlbWl0X2lnYTY0X2NvZGUoc2hkciwg aW5jX3I0MF9qdW1wX25lcSwgIgkJCQlcblwNCj4gPiArTDA6CQkJCQkJCQkJCQlcblwNCj4gPiAr KFcpCQlhZGQgKDF8TTApICAgICAgICAgICAgICByNDA6dWQgICAgICAgICAgcjQwLjA8MDsxLDA+ OnVkIDB4MTp1ZAkJXG5cDQo+ID4gKyhXKQkJbW92ICgxfE0wKSAgICAgICAgICAgICAgZjAuMDwx Pjp1ZCAgICAgIDB4MDp1ZAkJCQlcblwNCj4gPiArKFcpCQljbXAgKDF8TTApICAgIChuZSlmMC4w ICAgbnVsbDwxPjp1ZCAgICAgcjQwLjA8MDsxLDA+OnVkICAgQVJHKDApOnVkCVxuXA0KPiA+ICso VyZmMC4wKQlqbXBpICAgICAgICAgICAgICAgICAgICAgTDAJCQkJCQlcblwNCj4gPiArCSIsIGl0 ZXIpOw0KPiA+ICsNCj4gPiArCV9fcGF0Y2hfaW5kZXhlZF9qdW1wKHNoZHIsIGxhYmVsX2lkLCBz aXplKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIGdwZ3B1X3NoYWRlcl9fY29t bW9uX3RhcmdldF93cml0ZToNCj4gPiArICogQHNoZHI6IHNoYWRlciB0byBiZSBtb2RpZmllZA0K PiA+ICsgKiBAeV9vZmZzZXQ6IHdyaXRlIHRhcmdldCBvZmZzZXQgd2l0aGluIHRhcmdldCBidWZm ZXIgaW4gcm93cw0KPiA+ICsgKiBAdmFsdWU6IG93b3JkIHRvIGJlIHdyaXR0ZW4NCj4gPiArICoN Cj4gPiArICogV3JpdGUgdGhlIG93b3JkIHN0b3JlZCBpbiBAdmFsdWUgdG8gdGhlIHRhcmdldCBi dWZmZXIgYXQgQHlfb2Zmc2V0Lg0KPiA+ICsgKi8NCj4gDQo+IFNob3VsZG4ndCB0aGlzIGZ1bmN0 aW9uIGJlIGNhbGxlZCB0aGVuIGdwZ3B1X3NoYWRlcl9fb3dvcmRfd3JpdGUoKQ0KPiBvciB3cml0 ZV9vd29yZCgpPw0KDQpXZWxsIGl0IHVzZWQgdG8gYmUgbGlrZSB0aGF0LCBidXQgdGhlcmUgaXMg ZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgZnVuY3Rpb24gYW5kIF93cml0ZV9kd29yZCBvbmUuDQpI ZXJlLCBhbGwgdGhyZWFkcyBhcmUgd3JpdGluZyB0aGUgdmFsdWUgdG8gY29tbW9uIEB5X29mZnNl dCwgc28gYmFzaWNhbGx5IHRoZXkgYXJlIG92ZXJyd3JpdGluZw0KdGhlbXNlbHZlcyBpZiBtb3Jl IHRoYXQgb25lIHRocmVhZCB3YXMgdXNlZCBpbiB0aGUgd29ya2xvYWQuDQo+IA0KPiA+ICt2b2lk IGdwZ3B1X3NoYWRlcl9fY29tbW9uX3RhcmdldF93cml0ZShzdHJ1Y3QgZ3BncHVfc2hhZGVyICpz aGRyLA0KPiA+ICsJCQkJICAgICAgIHVpbnQzMl90IHlfb2Zmc2V0LCBjb25zdCB1aW50MzJfdCB2 YWx1ZVs0XSkNCj4gPiArew0KPiA+ICsJZW1pdF9pZ2E2NF9jb2RlKHNoZHIsIGNvbW1vbl90YXJn ZXRfd3JpdGUsICIJCQkJXG5cDQo+ID4gKyhXKQltb3YgKDE2fE0wKQkJcjMxLjA8MT46dWQJMHgw OnVkCQkJCVxuXA0KPiA+ICsoVykJbW92ICgxfE0wKQkJcjMxLjA8MT46dWQJQVJHKDEpOnVkCQkJ XG5cDQo+ID4gKyhXKQltb3YgKDF8TTApCQlyMzEuMTwxPjp1ZAlBUkcoMik6dWQJCQlcblwNCj4g PiArKFcpCW1vdiAoMXxNMCkJCXIzMS4yPDE+OnVkCUFSRygzKTp1ZAkJCVxuXA0KPiA+ICsoVykJ bW92ICgxfE0wKQkJcjMxLjM8MT46dWQJQVJHKDQpOnVkCQkJXG5cDQo+ID4gKyhXKQltb3YgKDE2 fE0wKQkJcjMwLjA8MT46dWQJMHgwOnVkCQkJCVxuXA0KPiA+ICsjaWYgR0VOX1ZFUiA8IDIwMDAg Ly8gTWVkaWEgQmxvY2sgV3JpdGUJCQkJCQlcblwNCj4gPiArCS8vIFkgb2Zmc2V0IG9mIHRoZSBi bG9jayBpbiByb3dzCQkJCQlcblwNCj4gPiArKFcpCW1vdiAoMXxNMCkJCXIzMC4xPDE+OnVkCUFS RygwKTp1ZAkJCVxuXA0KPiA+ICsJLy8gYmxvY2sgd2lkdGggWzAsNjNdIHJlcHJlc2VudGluZyAx IHRvIDY0IGJ5dGVzCQkJXG5cDQo+ID4gKyhXKQltb3YgKDF8TTApCQlyMzAuMjwxPjp1ZAkweGY6 dWQJCQkJXG5cDQo+ID4gKwkvLyBGRlRJRCA6PSBGRlRJRCBmcm9tIFIwIGhlYWRlcgkJCQkJXG5c DQo+ID4gKyhXKQltb3YgKDF8TTApCQlyMzAuNDwxPjp1ZAlyMC41PDA7MSwwPjp1ZAkJCVxuXA0K PiA+ICsJLy8gd3JpdHRlbiB2YWx1ZQkJCQkJCQlcblwNCj4gPiArKFcpCXNlbmQuZGMxICgxNnxN MCkJbnVsbAlyMzAJc3JjMV9udWxsICAweDAJMHg0MEE4MDAwCVxuXA0KPiA+ICsjZWxzZQkvLyBU eXBlZCAyRCBCbG9jayBTdG9yZQkJCQkJCQlcblwNCj4gPiArCS8vIFN0b3JlIFggYW5kIFkgYmxv Y2sgc3RhcnQgKDE2MDoxOTEgYW5kIDE5MjoyMjMpCQkJXG5cDQo+ID4gKyhXKQltb3YgKDJ8TTAp ICAgICAgICAgICAgICByMzAuNjwxPjp1ZCAgICAgQVJHKDApOnVkCQkJXG5cDQo+ID4gKwkvLyBT dG9yZSBYIGFuZCBZIGJsb2NrIHNpemUgKDIyNDoyMzEgYW5kIDIzMjoyMzkpCQkJXG5cDQo+ID4g KyhXKQltb3YgKDF8TTApICAgICAgICAgICAgICByMzAuNzwxPjp1ZCAgICAgMHhmOnVkCQkJCVxu XA0KPiA+ICsoVykJc2VuZC50Z20gKDE2fE0wKSAgICAgICAgbnVsbCAgICByMzAgICAgIG51bGw6 MCAgMHgwICAgICAweDY0MDAwMDA3CVxuXA0KPiA+ICsjZW5kaWYJCQkJCQkJCQkJXG5cDQo+ID4g KwkiLCB5X29mZnNldCwgdmFsdWVbMF0sIHZhbHVlWzFdLCB2YWx1ZVsyXSwgdmFsdWVbM10pOw0K PiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICogZ3BncHVfc2hhZGVyX19jb21tb25fdGFy Z2V0X3dyaXRlX3UzMjoNCj4gPiArICogQHNoZHI6IHNoYWRlciB0byBiZSBtb2RpZmllZA0KPiA+ ICsgKiBAeV9vZmZzZXQ6IHdyaXRlIHRhcmdldCBvZmZzZXQgd2l0aGluIHRhcmdldCBidWZmZXIg aW4gcm93cw0KPiA+ICsgKiBAdmFsdWU6IGR3b3JkIHRvIGJlIHdyaXR0ZW4NCj4gPiArICoNCj4g PiArICogRmlsbCBvd29yZCBhdCBAeV9vZmZzZXQgd2l0aCBkd29yZCBzdG9yZWQgaW4gQHZhbHVl Lg0KPiA+ICsgKi8NCj4gDQo+IEFuZCBncGdwdV9zaGFkZXJfX2R3b3JkX3dyaXRlKCkvd3JpdGVf ZHdvcmQoKT8gV2hhdCdzIHRoZSBtZWFuaW5nIG9mIGNvbW1vbl90YXJnZXQNCj4gaGVyZT8NCmNv bW1vbl90YXJnZXQgYmVjYXVzZSBhbGwgdGhyZWFkcyBhcmUgd3JpdGluZyB0byB0aGUgc2FtZSBw bGFjZS4gSW4gZnVuY3Rpb24gX19kd29yZF93cml0ZSgpIHRvIGVhY2gNCm9mZnNldCB3ZSBhcmUg YWRkaW5nIHRocmVhZCBncm91cCBpZCAoeCBhbmQgeSksIHNvIGFsbCB0aHJlYWRzIGZyb20gMmQg d29ya2xvYWQgaGF2ZSB0aGVpciBleGNsdXNpdmUNCnNwYWNlIHRvIHdyaXRlIGR3b3JkLg0KPiAN Cj4gPiArdm9pZCBncGdwdV9zaGFkZXJfX2NvbW1vbl90YXJnZXRfd3JpdGVfdTMyKHN0cnVjdCBn cGdwdV9zaGFkZXIgKnNoZHIsDQo+ID4gKwkJCQkJICAgdWludDMyX3QgeV9vZmZzZXQsIHVpbnQz Ml90IHZhbHVlKQ0KPiA+ICt7DQo+ID4gKwljb25zdCB1aW50MzJfdCBvd2Jsb2NrWzRdID0gew0K PiA+ICsJCXZhbHVlLCB2YWx1ZSwgdmFsdWUsIHZhbHVlDQo+ID4gKwl9Ow0KPiA+ICsJZ3BncHVf c2hhZGVyX19jb21tb25fdGFyZ2V0X3dyaXRlKHNoZHIsIHlfb2Zmc2V0LCBvd2Jsb2NrKTsNCj4g PiArfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIGdwZ3B1X3NoYWRlcl9fd3JpdGVfYWlwOg0K PiA+ICsgKiBAc2hkcjogc2hhZGVyIHRvIGJlIG1vZGlmaWVkDQo+ID4gKyAqIEB5X29mZnNldDog d3JpdGUgdGFyZ2V0IG9mZnNldCB3aXRoaW4gdGhlIHN1cmZhY2UgaW4gcm93cw0KPiA+ICsgKg0K PiA+ICsgKiBXcml0ZSBhZGRyZXNzIGluc3RydWN0aW9uIHBvaW50ZXIgdG8gcm93IHRnX2lkX3kg KyBAeV9vZmZzZXQuDQo+ID4gKyAqLw0KPiA+ICt2b2lkIGdwZ3B1X3NoYWRlcl9fd3JpdGVfYWlw KHN0cnVjdCBncGdwdV9zaGFkZXIgKnNoZHIsIHVpbnQzMl90IHlfb2Zmc2V0KQ0KPiA+ICt7DQo+ ID4gKwllbWl0X2lnYTY0X2NvZGUoc2hkciwgbWVkaWFfYmxvY2tfd3JpdGVfYWlwLCAiCQkJCVxu XA0KPiA+ICsJLy8gUGF5bG9hZAkJCQkJCQkJXG5cDQo+ID4gKyhXKQltb3YgKDF8TTApICAgICAg ICAgICAgICAgcjUuMDwxPjp1ZCAgICBjcjAuMjp1ZAkJCQlcblwNCj4gPiArI2lmIEdFTl9WRVIg PCAyMDAwIC8vIE1lZGlhIEJsb2NrIFdyaXRlCQkJCQkJXG5cDQo+ID4gKwkvLyBYIG9mZnNldCBv ZiB0aGUgYmxvY2sgaW4gYnl0ZXMgOj0gKHRocmVhZCBncm91cCBpZCBYIDw8IEFSRygwKSkJXG5c DQo+ID4gKyhXKQlzaGwgKDF8TTApICAgICAgICAgICAgICAgcjQuMDwxPjp1ZCAgICByMC4xPDA7 MSwwPjp1ZCAgICAweDI6dWQJCVxuXA0KPiA+ICsJLy8gWSBvZmZzZXQgb2YgdGhlIGJsb2NrIGlu IHJvd3MgOj0gdGhyZWFkIGdyb3VwIGlkIFkJCQlcblwNCj4gPiArKFcpCW1vdiAoMXxNMCkgICAg ICAgICAgICAgICByNC4xPDE+OnVkICAgIHIwLjY8MDsxLDA+OnVkCQkJXG5cDQo+ID4gKyhXKQlh ZGQgKDF8TTApICAgICAgICAgICAgICAgcjQuMTwxPjp1ZCAgICByNC4xPDA7MSwwPjp1ZCAgICBB UkcoMCk6dWQJXG5cDQo+ID4gKwkvLyBibG9jayB3aWR0aCBbMCw2M10gcmVwcmVzZW50aW5nIDEg dG8gNjQgYnl0ZXMJCQlcblwNCj4gPiArKFcpCW1vdiAoMXxNMCkgICAgICAgICAgICAgICByNC4y PDE+OnVkICAgIDB4Mzp1ZAkJCQlcblwNCj4gPiArCS8vIEZGVElEIDo9IEZGVElEIGZyb20gUjAg aGVhZGVyCQkJCQlcblwNCj4gPiArKFcpCW1vdiAoMXxNMCkgICAgICAgICAgICAgICByNC40PDE+ OnVkICAgIHIwLjU8MDsxLDA+OnVkCQkJXG5cDQo+ID4gKyhXKQlzZW5kLmRjMSAoMTZ8TTApICAg ICAgICAgbnVsbCAgICAgcjQgICBzcmMxX251bGwgMCAgICAgICAweDQwQTgwMDAJXG5cDQo+ID4g KyNlbHNlIC8vIFR5cGVkIDJEIEJsb2NrIFN0b3JlCQkJCQkJCVxuXA0KPiA+ICsJLy8gTG9hZCBy Mi4wLTMgd2l0aCB0ZyBpZCBYIDw8IEFSRygwKQkJCQkJXG5cDQo+ID4gKyhXKQlzaGwgKDF8TTAp ICAgICAgICAgICAgICAgcjIuMDwxPjp1ZCAgICByMC4xPDA7MSwwPjp1ZCAgICAweDI6dWQJCVxu XA0KPiA+ICsJLy8gTG9hZCByMi40LTcgd2l0aCB0ZyBpZCBZICsgQVJHKDEpOnVkCQkJCQlcblwN Cj4gPiArKFcpCW1vdiAoMXxNMCkgICAgICAgICAgICAgICByMi4xPDE+OnVkICAgIHIwLjY8MDsx LDA+OnVkCQkJXG5cDQo+ID4gKyhXKQlhZGQgKDF8TTApICAgICAgICAgICAgICAgcjIuMTwxPjp1 ZCAgICByMi4xPDA7MSwwPjp1ZCAgICBBUkcoMCk6dWQJXG5cDQo+ID4gKwkvLyBwYXlsb2FkIHNl dHVwCQkJCQkJCVxuXA0KPiA+ICsoVykJbW92ICgxNnxNMCkgICAgICAgICAgICAgIHI0LjA8MT46 dWQgICAgMHgwOnVkCQkJCVxuXA0KPiA+ICsJLy8gU3RvcmUgWCBhbmQgWSBibG9jayBzdGFydCAo MTYwOjE5MSBhbmQgMTkyOjIyMykJCQlcblwNCj4gPiArKFcpCW1vdiAoMnxNMCkgICAgICAgICAg ICAgICByNC41PDE+OnVkICAgIHIyLjA8MjsyLDE+OnVkCQkJXG5cDQo+ID4gKwkvLyBTdG9yZSBY IGFuZCBZIGJsb2NrIG1heF9zaXplICgyMjQ6MjMxIGFuZCAyMzI6MjM5KQkJCVxuXA0KPiA+ICso VykJbW92ICgxfE0wKSAgICAgICAgICAgICAgIHI0Ljc8MT46dWQgICAgMHgzOnVkCQkJCVxuXA0K PiA+ICsoVykJc2VuZC50Z20gKDE2fE0wKSAgICAgICAgIG51bGwgICAgIHI0ICAgbnVsbDowICAg IDAgICAgMHg2NDAwMDAwNwlcblwNCj4gPiArI2VuZGlmCQkJCQkJCQkJCVxuXA0KPiA+ICsJIiwg eV9vZmZzZXQpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICAvKioNCj4gPiAgICogZ3BncHVfc2hhZGVy X193cml0ZV9kd29yZDoNCj4gPiAgICogQHNoZHI6IHNoYWRlciB0byBiZSBtb2RpZmllZA0KPiA+ IEBAIC0zMTMsMyArNjI3LDczIEBAIHZvaWQgZ3BncHVfc2hhZGVyX193cml0ZV9kd29yZChzdHJ1 Y3QgZ3BncHVfc2hhZGVyICpzaGRyLCB1aW50MzJfdCB2YWx1ZSwNCj4gPiAgI2VuZGlmCQkJCQkJ CQkJCVxuXA0KPiA+ICAJIiwgMiwgeV9vZmZzZXQsIDMsIHZhbHVlLCB2YWx1ZSwgdmFsdWUsIHZh bHVlKTsNCj4gPiAgfQ0KPiANCj4gU2hvdWxkbid0IHRoaXMgb25lIGJlIGNhbGxlZCBncGdwdV9z aGFkZXJfX3dyaXRlXzR4ZHdvcmQoKT8gRm9yIG1lIGlzDQo+IGNvdW50ZXIgaW50dWl0aXZlIHRv IGhhdmUgd3JpdGVfZHdvcmQoKSBmdW5jdGlvbiB3aGljaCB3cml0ZXMgNCBkd29yZHMNCj4gaW4g c2VxdWVuY2UuIEkgc2VlIHRoaXMgaXMgZnJvbSB0aGUgb3RoZXIgcGF0Y2ggYnV0IG5hbWluZyBm b3IgbWUgaXMNCj4gY29uZnVzaW5nIGhlcmUuDQpJdCB3cml0ZXMgZHdvcmQuIFRoZSBzaGFkZXIg d2FzIHBhcmFtZXRyaXplZCBpbiB0aGUgd2F5IHRoYXQgeW91IGNhbiBtYW5pcHVsYXRlIHRoZSBz aXplIG9mIHRoZQ0Kd3JpdHRlbiBibG9jay4gJzMnIHN0YW5kcyBmb3IgNCBieXRlcyBvZiB0aGUg YmxvY2sgd2lkdGgoLTEgbm90YXRpb24pLiBTbyBoZXJlLCBvbmx5IG9uZSAndmFsdWUnIGhhcw0K cmVhbCBtZWFuaW5nLCBidXQgcG90ZW50aWFsbHkgd2l0aCAnZWFzZScgY291bGQgYmUgY2hhbmdl ZCBpbiBhIHdheSB0aGF0IHNpbmdsZSB0aHJlYWQgd3JpdGVzIG1vcmUNCnRoYW4gZHdvcmQsIGp1 c3QgYnkgY2hhbmdpbmcgdGhvc2UgcGFyYW1zLg0KPiANCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsg KiBncGdwdV9zaGFkZXJfX2VuZF9zeXN0ZW1fcm91dGluZToNCj4gPiArICogQHNoZHI6IHNoYWRl ciB0byBiZSBtb2RpZmllZA0KPiA+ICsgKiBAYnJlYWtwb2ludF9zdXBwcmVzczogYnJlYWtwb2lu dCBzdXBwcmVzcyBmbGFnDQo+ID4gKyAqDQo+ID4gKyAqIFJldHVybiBmcm9tIHN5c3RlbSByb3V0 aW5lLiBUbyBwcmV2ZW50IGluZmluaXRlIGp1bXBpbmcgdG8gdGhlIHN5c3RlbQ0KPiA+ICsgKiBy b3V0aW5lIG9uIGEgYnJlYWtwb2ludCwgQGJyZWFrcG9pbnRfc3VwcHJlcyBmbGFnIGhhcyB0byBi ZSBzZXQuDQo+IA0KPiBzL2JyZWFrcG9pbnRfc3VwcHJlcy9icmVha3BvaW50X3N1cHByZXNzLw0K R29vZCBjYXRjaCwgdGhhbmtzIGZvciB0aGUgZmVlZGJhY2shDQoNClJlZ2FyZHMsDQpEb21pbmlr DQo+IA0KPiAtLQ0KPiBaYmlnbmlldw0KPiANCj4gPiArICovDQo+ID4gK3ZvaWQgZ3BncHVfc2hh ZGVyX19lbmRfc3lzdGVtX3JvdXRpbmUoc3RydWN0IGdwZ3B1X3NoYWRlciAqc2hkciwNCj4gPiAr CQkJCSAgICAgIGJvb2wgYnJlYWtwb2ludF9zdXBwcmVzcykNCj4gPiArew0KPiA+ICsJLyoNCj4g PiArCSAqIHNldCBicmVha3BvaW50IHN1cHByZXNzIGJpdCB0byBhdm9pZCBhbiBlbmRsZXNzIGxv b3ANCj4gPiArCSAqIHdoZW4gc2lwIHdhcyBpbnZva2VkIGJ5IGEgYnJlYWtwb2ludA0KPiA+ICsJ ICovDQo+ID4gKwlpZiAoYnJlYWtwb2ludF9zdXBwcmVzcykNCj4gPiArCQllbWl0X2lnYTY0X2Nv ZGUoc2hkciwgYnJlYWtwb2ludF9zdXBwcmVzcywgIgkJCVxuXA0KPiA+ICsoVykJb3IgICgxfE0w KSAgICAgICAgICAgICAgIGNyMC4wPDE+OnVkICAgY3IwLjA8MDsxLDA+OnVkICAgMHg4MDAwOnVk CVxuXA0KPiA+ICsJCSIpOw0KPiA+ICsNCj4gPiArCWVtaXRfaWdhNjRfY29kZShzaGRyLCBlbmRf c3lzdGVtX3JvdXRpbmUsICIJCQkJXG5cDQo+ID4gKyhXKQlhbmQgKDF8TTApICAgICAgICAgICAg ICAgY3IwLjE8MT46dWQgICBjcjAuMTwwOzEsMD46dWQgICBBUkcoMCk6dWQJXG5cDQo+ID4gKwkv LyByZXR1cm4gdG8gYW4gYXBwbGljYXRpb24JCQkJCQlcblwNCj4gPiArKFcpCWFuZCAoMXxNMCkg ICAgICAgICAgICAgICBjcjAuMDwxPjp1ZCAgIGNyMC4wPDA7MSwwPjp1ZCAgIDB4N0ZGRkZGRkQ6 dWQJXG5cDQo+ID4gKwkiLCAweDdmZmZmZiB8ICgxIDw8IDI2KSk7IC8qIGNsZWFyIGFsbCBleGNl cHRpb25zLCBleGNlcHQgcmVhZCBvbmx5IGJpdCAqLw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioN Cj4gPiArICogZ3BncHVfc2hhZGVyX19lbmRfc3lzdGVtX3JvdXRpbmVfc3RlcF9pZl9lcToNCj4g PiArICogQHNoZHI6IHNoYWRlciB0byBiZSBtb2RpZmllZA0KPiA+ICsgKiBAeV9vZmZzZXQ6IG9m ZnNldCB3aXRoaW4gdGFyZ2V0IGJ1ZmZlciBpbiByb3dzDQo+ID4gKyAqIEB2YWx1ZTogZXhwZWN0 ZWQgdmFsdWUgZm9yIHNpbmdsZSBzdGVwcGluZyBleGVjdXRpb24NCj4gPiArICoNCj4gPiArICog UmV0dXJuIGZyb20gc3lzdGVtIHJvdXRpbmUuIERvbid0IGNsZWFyIGJyZWFrcG9pbnQgZXhjZXB0 aW9uIHdoZW4gQHZhbHVlDQo+ID4gKyAqIGlzIGVxdWFsIHRvIHZhbHVlIHN0b3JlZCBhdCBAZHdf b2Zmc2V0LiBUaGlzIHRyaWdnZXJzIHRoZSBzeXN0ZW0gcm91dGluZQ0KPiA+ICsgKiBhZnRlciB0 aGUgc3Vic2VxdWVudCBpbnN0cnVjdGlvbiwgcmVzdWx0aW5nIGluIHNpbmdsZSBzdGVwcGluZyBl eGVjdXRpb24uDQo+ID4gKyAqLw0KPiA+ICt2b2lkIGdwZ3B1X3NoYWRlcl9fZW5kX3N5c3RlbV9y b3V0aW5lX3N0ZXBfaWZfZXEoc3RydWN0IGdwZ3B1X3NoYWRlciAqc2hkciwNCj4gPiArCQkJCQkJ IHVpbnQzMl90IHlfb2Zmc2V0LA0KPiA+ICsJCQkJCQkgdWludDMyX3QgdmFsdWUpDQo+ID4gK3sN Cj4gPiArCWVtaXRfaWdhNjRfY29kZShzaGRyLCBlbmRfc3lzdGVtX3JvdXRpbmVfc3RlcF9pZl9l cSwgIgkJCQlcblwNCj4gPiArKFcpCQlvciAgKDF8TTApICAgICAgICAgICAgICAgY3IwLjA8MT46 dWQgICBjcjAuMDwwOzEsMD46dWQgICAweDgwMDA6dWQJXG5cDQo+ID4gKyhXKQkJYW5kICgxfE0w KSAgICAgICAgICAgICAgIGNyMC4xPDE+OnVkICAgY3IwLjE8MDsxLDA+OnVkICAgQVJHKDApOnVk CVxuXA0KPiA+ICsoVykJCW1vdiAoMTZ8TTApICAgICAgICAgICAgICByMzAuMDwxPjp1ZCAgICAw eDA6dWQJCQkJXG5cDQo+ID4gKyNpZiBHRU5fVkVSIDwgMjAwMCAvLyBNZWRpYSBCbG9jayBXcml0 ZQkJCQkJCQlcblwNCj4gPiArCQkvLyBZIG9mZnNldCBvZiB0aGUgYmxvY2sgaW4gcm93cyA6PSB0 aHJlYWQgZ3JvdXAgaWQgWQkJCVxuXA0KPiA+ICsoVykJCW1vdiAoMXxNMCkgICAgICAgICAgICAg ICByMzAuMTwxPjp1ZCAgICBBUkcoMSk6dWQJCQlcblwNCj4gPiArCQkvLyBibG9jayB3aWR0aCBb MCw2M10gcmVwcmVzZW50aW5nIDEgdG8gNjQgYnl0ZXMsIHdlIHdhbnQgZHdvcmQJCVxuXA0KPiA+ ICsoVykJCW1vdiAoMXxNMCkgICAgICAgICAgICAgICByMzAuMjwxPjp1ZCAgICAweDM6dWQJCQkJ XG5cDQo+ID4gKwkJLy8gRkZUSUQgOj0gRkZUSUQgZnJvbSBSMCBoZWFkZXIJCQkJCVxuXA0KPiA+ ICsoVykJCW1vdiAoMXxNMCkgICAgICAgICAgICAgICByMzAuNDwxPjp1ZCAgICByMC41PDA7MSww Pjp1ZAkJCVxuXA0KPiA+ICsoVykJCXNlbmQuZGMxICgxNnxNMCkgICAgICAgICByMzEgICAgIHIz MCAgICAgIG51bGwgICAgMHgwCTB4MjE5MDAwMAlcblwNCj4gPiArI2Vsc2UJLy8gVHlwZWQgMkQg QmxvY2sgU3RvcmUJCQkJCQkJCVxuXA0KPiA+ICsJCS8vIFN0b3JlIFggYW5kIFkgYmxvY2sgc3Rh cnQgKDE2MDoxOTEgYW5kIDE5MjoyMjMpCQkJXG5cDQo+ID4gKyhXKQkJbW92ICgyfE0wKSAgICAg ICAgICAgICAgIHIzMC42PDE+OnVkICAgIEFSRygxKTp1ZAkJCVxuXA0KPiA+ICsJCS8vIFN0b3Jl IFggYW5kIFkgYmxvY2sgc2l6ZSAoMjI0OjIzMSBhbmQgMjMyOjIzOSkJCQlcblwNCj4gPiArKFcp CQltb3YgKDF8TTApICAgICAgICAgICAgICAgcjMwLjc8MT46dWQgICAgMHgzOnVkCQkJCVxuXA0K PiA+ICsoVykJCXNlbmQudGdtICgxNnxNMCkgICAgICAgICByMzEgICAgIHIzMCAgICBudWxsOjAg ICAgMHgwICAgIDB4NjIxMDAwMDMJXG5cDQo+ID4gKyNlbmRpZgkJCQkJCQkJCQkJXG5cDQo+ID4g KwkJLy8gY2xlYXIgdGhlIGZsYWcgcmVnaXN0ZXIJCQkJCQlcblwNCj4gPiArKFcpCQltb3YgKDF8 TTApICAgICAgICAgICAgICAgZjAuMDwxPjp1ZCAgICAweDA6dWQJCQkJXG5cDQo+ID4gKyhXKQkJ Y21wICgxfE0wKSAgICAobmUpZjAuMCAgIG51bGw8MT46dWQgICAgIHIzMS4wPDA7MSwwPjp1ZCAg IEFSRygyKTp1ZAlcblwNCj4gPiArKFcmZjAuMCkJYW5kICgxfE0wKSAgICAgICAgICAgICAgY3Iw LjE8MT46dWQgICAgIGNyMC4xPDA7MSwwPjp1ZCAgIEFSRygzKTp1ZAlcblwNCj4gPiArCQkvLyBy ZXR1cm4gdG8gYW4gYXBwbGljYXRpb24JCQkJCQlcblwNCj4gPiArKFcpCQlhbmQgKDF8TTApICAg ICAgICAgICAgICAgY3IwLjA8MT46dWQgICBjcjAuMDwwOzEsMD46dWQgICAweDdGRkZGRkZEOnVk CVxuXA0KPiA+ICsJIiwgMHg4MDdmZmZmZiwgLyogbGVhdmUgYnJlYWtwb2ludCBleGNlcHRpb24g Ki8NCj4gPiArCXlfb2Zmc2V0LCB2YWx1ZSwgMHg3ZmZmZmYgLyogY2xlYXIgYWxsIGV4Y2VwdGlv bnMgKi8gKTsNCj4gPiArfQ0KPiA+IGRpZmYgLS1naXQgYS9saWIvZ3BncHVfc2hhZGVyLmggYi9s aWIvZ3BncHVfc2hhZGVyLmgNCj4gPiBpbmRleCAyNTVmOTNiNGQuLmU0Y2EwYmU0YyAxMDA2NDQN Cj4gPiAtLS0gYS9saWIvZ3BncHVfc2hhZGVyLmgNCj4gPiArKysgYi9saWIvZ3BncHVfc2hhZGVy LmgNCj4gPiBAQCAtMjEsNiArMjEsNyBAQCBzdHJ1Y3QgZ3BncHVfc2hhZGVyIHsNCj4gPiAgCQl1 aW50MzJfdCAqY29kZTsNCj4gPiAgCQl1aW50MzJfdCAoKmluc3RyKVs0XTsNCj4gPiAgCX07DQo+ ID4gKwlzdHJ1Y3QgaWd0X21hcCAqbGFiZWxzOw0KPiA+ICB9Ow0KPiA+ICANCj4gPiAgc3RydWN0 IGlnYTY0X3RlbXBsYXRlIHsNCj4gPiBAQCAtMzEsNyArMzIsNyBAQCBzdHJ1Y3QgaWdhNjRfdGVt cGxhdGUgew0KPiA+ICANCj4gPiAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV25l c3RlZC1leHRlcm5zIg0KPiA+ICANCj4gPiAtdm9pZA0KPiA+ICt1aW50MzJfdA0KPiA+ICBfX2Vt aXRfaWdhNjRfY29kZShzdHJ1Y3QgZ3BncHVfc2hhZGVyICpzaGRyLCBjb25zdCBzdHJ1Y3QgaWdh NjRfdGVtcGxhdGUgKnRwbHMsDQo+ID4gIAkJICBpbnQgYXJnYywgdWludDMyX3QgKmFyZ3YpOw0K PiA+ICANCj4gPiBAQCAtNTYsOCArNTcsMjcgQEAgdm9pZCBncGdwdV9zaGFkZXJfZXhlYyhzdHJ1 Y3QgaW50ZWxfYmIgKmliYiwNCj4gPiAgCQkgICAgICAgc3RydWN0IGdwZ3B1X3NoYWRlciAqc2lw LA0KPiA+ICAJCSAgICAgICB1aW50NjRfdCByaW5nLCBib29sIGV4cGxpY2l0X2VuZ2luZSk7DQo+ ID4gIA0KPiA+ICt2b2lkIGdwZ3B1X3NoYWRlcl9fd2FpdChzdHJ1Y3QgZ3BncHVfc2hhZGVyICpz aGRyKTsNCj4gPiArdm9pZCBncGdwdV9zaGFkZXJfX2JyZWFrcG9pbnRfb24oc3RydWN0IGdwZ3B1 X3NoYWRlciAqc2hkciwgdWludDMyX3QgY21kX25vKTsNCj4gPiArdm9pZCBncGdwdV9zaGFkZXJf X2JyZWFrcG9pbnQoc3RydWN0IGdwZ3B1X3NoYWRlciAqc2hkcik7DQo+ID4gK3ZvaWQgZ3BncHVf c2hhZGVyX19ub3Aoc3RydWN0IGdwZ3B1X3NoYWRlciAqc2hkcik7DQo+ID4gIHZvaWQgZ3BncHVf c2hhZGVyX19lb3Qoc3RydWN0IGdwZ3B1X3NoYWRlciAqc2hkcik7DQo+ID4gK3ZvaWQgZ3BncHVf c2hhZGVyX19jb21tb25fdGFyZ2V0X3dyaXRlKHN0cnVjdCBncGdwdV9zaGFkZXIgKnNoZHIsDQo+ ID4gKwkJCQkgICAgICAgdWludDMyX3QgeV9vZmZzZXQsIGNvbnN0IHVpbnQzMl90IHZhbHVlWzRd KTsNCj4gPiArdm9pZCBncGdwdV9zaGFkZXJfX2NvbW1vbl90YXJnZXRfd3JpdGVfdTMyKHN0cnVj dCBncGdwdV9zaGFkZXIgKnNoZHIsDQo+ID4gKwkJCQkgICAgIHVpbnQzMl90IHlfb2Zmc2V0LCB1 aW50MzJfdCB2YWx1ZSk7DQo+ID4gK3ZvaWQgZ3BncHVfc2hhZGVyX19lbmRfc3lzdGVtX3JvdXRp bmUoc3RydWN0IGdwZ3B1X3NoYWRlciAqc2hkciwNCj4gPiArCQkJCSAgICAgIGJvb2wgYnJlYWtw b2ludF9zdXBwcmVzcyk7DQo+ID4gK3ZvaWQgZ3BncHVfc2hhZGVyX19lbmRfc3lzdGVtX3JvdXRp bmVfc3RlcF9pZl9lcShzdHJ1Y3QgZ3BncHVfc2hhZGVyICpzaGRyLA0KPiA+ICsJCQkJCQkgdWlu dDMyX3QgZHdfb2Zmc2V0LA0KPiA+ICsJCQkJCQkgdWludDMyX3QgdmFsdWUpOw0KPiA+ICt2b2lk IGdwZ3B1X3NoYWRlcl9fd3JpdGVfYWlwKHN0cnVjdCBncGdwdV9zaGFkZXIgKnNoZHIsIHVpbnQz Ml90IHlfb2Zmc2V0KTsNCj4gPiAgdm9pZCBncGdwdV9zaGFkZXJfX3dyaXRlX2R3b3JkKHN0cnVj dCBncGdwdV9zaGFkZXIgKnNoZHIsIHVpbnQzMl90IHZhbHVlLA0KPiA+ICAJCQkgICAgICAgdWlu dDMyX3QgeV9vZmZzZXQpOw0KPiA+IC0NCj4gPiArdm9pZCBncGdwdV9zaGFkZXJfX2xhYmVsKHN0 cnVjdCBncGdwdV9zaGFkZXIgKnNoZHIsIGludCBsYWJlbF9pZCk7DQo+ID4gK3ZvaWQgZ3BncHVf c2hhZGVyX19qdW1wKHN0cnVjdCBncGdwdV9zaGFkZXIgKnNoZHIsIGludCBsYWJlbF9pZCk7DQo+ ID4gK3ZvaWQgZ3BncHVfc2hhZGVyX19qdW1wX25lcShzdHJ1Y3QgZ3BncHVfc2hhZGVyICpzaGRy LCBpbnQgbGFiZWxfaWQsDQo+ID4gKwkJCSAgICB1aW50MzJfdCBkd19vZmZzZXQsIHVpbnQzMl90 IHZhbHVlKTsNCj4gPiArdm9pZCBncGdwdV9zaGFkZXJfX2xvb3BfYmVnaW4oc3RydWN0IGdwZ3B1 X3NoYWRlciAqc2hkciwgaW50IGxhYmVsX2lkKTsNCj4gPiArdm9pZCBncGdwdV9zaGFkZXJfX2xv b3BfZW5kKHN0cnVjdCBncGdwdV9zaGFkZXIgKnNoZHIsIGludCBsYWJlbF9pZCwgdWludDMyX3Qg aXRlcik7DQo+ID4gICNlbmRpZiAvKiBHUEdQVV9TSEFERVJfSCAqLw0KPiA+IGRpZmYgLS1naXQg YS9saWIvaWdhNjRfZ2VuZXJhdGVkX2NvZGVzLmMgYi9saWIvaWdhNjRfZ2VuZXJhdGVkX2NvZGVz LmMNCj4gPiBpbmRleCA4NzI3MGJiNDYuLmFiZmIxZjIwMyAxMDA2NDQNCj4gPiAtLS0gYS9saWIv aWdhNjRfZ2VuZXJhdGVkX2NvZGVzLmMNCj4gPiArKysgYi9saWIvaWdhNjRfZ2VuZXJhdGVkX2Nv ZGVzLmMNCj4gPiBAQCAtMyw3ICszLDEyMCBAQA0KPiA+ICANCj4gPiAgI2luY2x1ZGUgImdwZ3B1 X3NoYWRlci5oIg0KPiA+ICANCj4gPiAtI2RlZmluZSBNRDVfU1VNX0lHQTY0X0FTTVMgOTZhYmYx YWEyZDBjYzkwMGViYmE4MjAzY2VmZGQzMGMNCj4gPiArI2RlZmluZSBNRDVfU1VNX0lHQTY0X0FT TVMgNTkwNjY0YTY3Y2UyYzFkMDFhYTkyYjY5ZDJmODIxZjUNCj4gPiArDQo+ID4gK3N0cnVjdCBp Z2E2NF90ZW1wbGF0ZSBjb25zdCBpZ2E2NF9jb2RlX2VuZF9zeXN0ZW1fcm91dGluZV9zdGVwX2lm X2VxW10gPSB7DQo+ID4gKwl7IC5nZW5fdmVyID0gMjAwMCwgLnNpemUgPSA0NCwgLmNvZGUgPSAo Y29uc3QgdWludDMyX3QgW10pIHsNCj4gPiArCQkweDgwMDAwOTY2LCAweDgwMDE4MjIwLCAweDAy MDA4MDAwLCAweDAwMDA4MDAwLA0KPiA+ICsJCTB4ODAwMDA5NjUsIDB4ODAxMTgyMjAsIDB4MDIw MDgwMTAsIDB4YzBkZWQwMDAsDQo+ID4gKwkJMHg4MDEwMDk2MSwgMHgxZTA1NDIyMCwgMHgwMDAw MDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgwMDQwMDYxLCAweDFlNjU0MjIwLCAweDAwMDAw MDAwLCAweGMwZGVkMDAxLA0KPiA+ICsJCTB4ODAwMDAwNjEsIDB4MWU3NTQyMjAsIDB4MDAwMDAw MDAsIDB4MDAwMDAwMDMsDQo+ID4gKwkJMHg4MDEzMjAzMSwgMHgxZjBjMDAwMCwgMHhkMDA2MWU4 YywgMHgwNDAwMDAwMCwNCj4gPiArCQkweDgwMDAwMDYxLCAweDMwMDE0MjIwLCAweDAwMDAwMDAw LCAweDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAwMDgwNzAsIDB4MDAwMTgyMjAsIDB4MjIwMDFmMDQs IDB4YzBkZWQwMDIsDQo+ID4gKwkJMHg4NDAwMDk2NSwgMHg4MDExODIyMCwgMHgwMjAwODAxMCwg MHhjMGRlZDAwMywNCj4gPiArCQkweDgwMDAwOTY1LCAweDgwMDE4MjIwLCAweDAyMDA4MDAwLCAw eDdmZmZmZmZkLA0KPiA+ICsJCTB4ODAwMDA5MDEsIDB4MDAwMTAwMDAsIDB4MDAwMDAwMDAsIDB4 MDAwMDAwMDAsDQo+ID4gKwl9fSwNCj4gPiArCXsgLmdlbl92ZXIgPSAxMjcwLCAuc2l6ZSA9IDUy LCAuY29kZSA9IChjb25zdCB1aW50MzJfdCBbXSkgew0KPiA+ICsJCTB4ODAwMDA5NjYsIDB4ODAw MTgyMjAsIDB4MDIwMDgwMDAsIDB4MDAwMDgwMDAsDQo+ID4gKwkJMHg4MDAwMDk2NSwgMHg4MDIx ODIyMCwgMHgwMjAwODAyMCwgMHhjMGRlZDAwMCwNCj4gPiArCQkweDgwMDQwOTYxLCAweDFlMDU0 MjIwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAwMDAwNjEsIDB4MWUyNTQy MjAsIDB4MDAwMDAwMDAsIDB4YzBkZWQwMDEsDQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgxZTQ1NDIy MCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMywNCj4gPiArCQkweDgwMDAwMDYxLCAweDFlODUwMjIw LCAweDAwMDAwMGE0LCAweDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAwMDE5MDEsIDB4MDAwMTAwMDAs IDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ID4gKwkJMHg4MDA0NDAzMSwgMHgxZjBjMDAwMCwg MHhjMDAwMWUwYywgMHgwMjQwMDAwMCwNCj4gPiArCQkweDgwMDAwMDYxLCAweDMwMDE0MjIwLCAw eDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAwMDIwNzAsIDB4MDAwMTgyMjAsIDB4 MjIwMDFmMDQsIDB4YzBkZWQwMDIsDQo+ID4gKwkJMHg4MTAwMDk2NSwgMHg4MDIxODIyMCwgMHgw MjAwODAyMCwgMHhjMGRlZDAwMywNCj4gPiArCQkweDgwMDAwOTY1LCAweDgwMDE4MjIwLCAweDAy MDA4MDAwLCAweDdmZmZmZmZkLA0KPiA+ICsJCTB4ODAwMDA5MDEsIDB4MDAwMTAwMDAsIDB4MDAw MDAwMDAsIDB4MDAwMDAwMDAsDQo+ID4gKwl9fSwNCj4gPiArCXsgLmdlbl92ZXIgPSAxMjYwLCAu c2l6ZSA9IDQ4LCAuY29kZSA9IChjb25zdCB1aW50MzJfdCBbXSkgew0KPiA+ICsJCTB4ODAwMDA5 NjYsIDB4ODAwMTgyMjAsIDB4MDIwMDgwMDAsIDB4MDAwMDgwMDAsDQo+ID4gKwkJMHg4MDAwMDk2 NSwgMHg4MDExODIyMCwgMHgwMjAwODAxMCwgMHhjMGRlZDAwMCwNCj4gPiArCQkweDgwMTAwOTYx LCAweDFlMDU0MjIwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAwMDAwNjEs IDB4MWUxNTQyMjAsIDB4MDAwMDAwMDAsIDB4YzBkZWQwMDEsDQo+ID4gKwkJMHg4MDAwMDA2MSwg MHgxZTI1NDIyMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMywNCj4gPiArCQkweDgwMDAwMDYxLCAw eDFlNDUwMjIwLCAweDAwMDAwMDU0LCAweDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAxMzIwMzEsIDB4 MWYwYzAwMDAsIDB4YzAwMDFlMGMsIDB4MDI0MDAwMDAsDQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgz MDAxNDIyMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgwMDA4MDcwLCAweDAw MDE4MjIwLCAweDIyMDAxZjA0LCAweGMwZGVkMDAyLA0KPiA+ICsJCTB4ODQwMDA5NjUsIDB4ODAx MTgyMjAsIDB4MDIwMDgwMTAsIDB4YzBkZWQwMDMsDQo+ID4gKwkJMHg4MDAwMDk2NSwgMHg4MDAx ODIyMCwgMHgwMjAwODAwMCwgMHg3ZmZmZmZmZCwNCj4gPiArCQkweDgwMDAwOTAxLCAweDAwMDEw MDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJfX0sDQo+ID4gKwl7IC5nZW5fdmVy ID0gMTI1MCwgLnNpemUgPSA1MiwgLmNvZGUgPSAoY29uc3QgdWludDMyX3QgW10pIHsNCj4gPiAr CQkweDgwMDAwOTY2LCAweDgwMDE4MjIwLCAweDAyMDA4MDAwLCAweDAwMDA4MDAwLA0KPiA+ICsJ CTB4ODAwMDA5NjUsIDB4ODAyMTgyMjAsIDB4MDIwMDgwMjAsIDB4YzBkZWQwMDAsDQo+ID4gKwkJ MHg4MDA0MDk2MSwgMHgxZTA1NDIyMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCQkw eDgwMDAwMDYxLCAweDFlMjU0MjIwLCAweDAwMDAwMDAwLCAweGMwZGVkMDAxLA0KPiA+ICsJCTB4 ODAwMDAwNjEsIDB4MWU0NTQyMjAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDMsDQo+ID4gKwkJMHg4 MDAwMDA2MSwgMHgxZTg1MDIyMCwgMHgwMDAwMDBhNCwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgw MDAxOTAxLCAweDAwMDEwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAw NDQwMzEsIDB4MWYwYzAwMDAsIDB4YzAwMDFlMGMsIDB4MDI0MDAwMDAsDQo+ID4gKwkJMHg4MDAw MDA2MSwgMHgzMDAxNDIyMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgwMDAy MDcwLCAweDAwMDE4MjIwLCAweDIyMDAxZjA0LCAweGMwZGVkMDAyLA0KPiA+ICsJCTB4ODEwMDA5 NjUsIDB4ODAyMTgyMjAsIDB4MDIwMDgwMjAsIDB4YzBkZWQwMDMsDQo+ID4gKwkJMHg4MDAwMDk2 NSwgMHg4MDAxODIyMCwgMHgwMjAwODAwMCwgMHg3ZmZmZmZmZCwNCj4gPiArCQkweDgwMDAwOTAx LCAweDAwMDEwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJfX0sDQo+ID4gKwl7 IC5nZW5fdmVyID0gMCwgLnNpemUgPSA0OCwgLmNvZGUgPSAoY29uc3QgdWludDMyX3QgW10pIHsN Cj4gPiArCQkweDgwMDAwMTY2LCAweDgwMDE4MjIwLCAweDAyMDA4MDAwLCAweDAwMDA4MDAwLA0K PiA+ICsJCTB4ODAwMDAxNjUsIDB4ODAyMTgyMjAsIDB4MDIwMDgwMjAsIDB4YzBkZWQwMDAsDQo+ ID4gKwkJMHg4MDA0MDE2MSwgMHgxZTA1NDIyMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4g PiArCQkweDgwMDAwMDYxLCAweDFlMjU0MjIwLCAweDAwMDAwMDAwLCAweGMwZGVkMDAxLA0KPiA+ ICsJCTB4ODAwMDAwNjEsIDB4MWU0NTQyMjAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDMsDQo+ID4g KwkJMHg4MDAwMDA2MSwgMHgxZTg1MDIyMCwgMHgwMDAwMDBhNCwgMHgwMDAwMDAwMCwNCj4gPiAr CQkweDgwMDQ5MDMxLCAweDFmMGMwMDAwLCAweGMwMDAxZTBjLCAweDAyNDAwMDAwLA0KPiA+ICsJ CTB4ODAwMDAwNjEsIDB4MzAwMTQyMjAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ID4gKwkJ MHg4MDAwMjA3MCwgMHgwMDAxODIyMCwgMHgyMjAwMWYwNCwgMHhjMGRlZDAwMiwNCj4gPiArCQkw eDgxMDAwMTY1LCAweDgwMjE4MjIwLCAweDAyMDA4MDIwLCAweGMwZGVkMDAzLA0KPiA+ICsJCTB4 ODAwMDAxNjUsIDB4ODAwMTgyMjAsIDB4MDIwMDgwMDAsIDB4N2ZmZmZmZmQsDQo+ID4gKwkJMHg4 MDAwMDEwMSwgMHgwMDAxMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCX19DQo+ ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgaWdhNjRfdGVtcGxhdGUgY29uc3QgaWdhNjRfY29k ZV9lbmRfc3lzdGVtX3JvdXRpbmVbXSA9IHsNCj4gPiArCXsgLmdlbl92ZXIgPSAyMDAwLCAuc2l6 ZSA9IDEyLCAuY29kZSA9IChjb25zdCB1aW50MzJfdCBbXSkgew0KPiA+ICsJCTB4ODAwMDA5NjUs IDB4ODAxMTgyMjAsIDB4MDIwMDgwMTAsIDB4YzBkZWQwMDAsDQo+ID4gKwkJMHg4MDAwMDk2NSwg MHg4MDAxODIyMCwgMHgwMjAwODAwMCwgMHg3ZmZmZmZmZCwNCj4gPiArCQkweDgwMDAwOTAxLCAw eDAwMDEwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJfX0sDQo+ID4gKwl7IC5n ZW5fdmVyID0gMTI3MCwgLnNpemUgPSAxMiwgLmNvZGUgPSAoY29uc3QgdWludDMyX3QgW10pIHsN Cj4gPiArCQkweDgwMDAwOTY1LCAweDgwMjE4MjIwLCAweDAyMDA4MDIwLCAweGMwZGVkMDAwLA0K PiA+ICsJCTB4ODAwMDA5NjUsIDB4ODAwMTgyMjAsIDB4MDIwMDgwMDAsIDB4N2ZmZmZmZmQsDQo+ ID4gKwkJMHg4MDAwMDkwMSwgMHgwMDAxMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4g PiArCX19LA0KPiA+ICsJeyAuZ2VuX3ZlciA9IDEyNjAsIC5zaXplID0gMTIsIC5jb2RlID0gKGNv bnN0IHVpbnQzMl90IFtdKSB7DQo+ID4gKwkJMHg4MDAwMDk2NSwgMHg4MDExODIyMCwgMHgwMjAw ODAxMCwgMHhjMGRlZDAwMCwNCj4gPiArCQkweDgwMDAwOTY1LCAweDgwMDE4MjIwLCAweDAyMDA4 MDAwLCAweDdmZmZmZmZkLA0KPiA+ICsJCTB4ODAwMDA5MDEsIDB4MDAwMTAwMDAsIDB4MDAwMDAw MDAsIDB4MDAwMDAwMDAsDQo+ID4gKwl9fSwNCj4gPiArCXsgLmdlbl92ZXIgPSAxMjUwLCAuc2l6 ZSA9IDEyLCAuY29kZSA9IChjb25zdCB1aW50MzJfdCBbXSkgew0KPiA+ICsJCTB4ODAwMDA5NjUs IDB4ODAyMTgyMjAsIDB4MDIwMDgwMjAsIDB4YzBkZWQwMDAsDQo+ID4gKwkJMHg4MDAwMDk2NSwg MHg4MDAxODIyMCwgMHgwMjAwODAwMCwgMHg3ZmZmZmZmZCwNCj4gPiArCQkweDgwMDAwOTAxLCAw eDAwMDEwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJfX0sDQo+ID4gKwl7IC5n ZW5fdmVyID0gMCwgLnNpemUgPSAxMiwgLmNvZGUgPSAoY29uc3QgdWludDMyX3QgW10pIHsNCj4g PiArCQkweDgwMDAwMTY1LCAweDgwMjE4MjIwLCAweDAyMDA4MDIwLCAweGMwZGVkMDAwLA0KPiA+ ICsJCTB4ODAwMDAxNjUsIDB4ODAwMTgyMjAsIDB4MDIwMDgwMDAsIDB4N2ZmZmZmZmQsDQo+ID4g KwkJMHg4MDAwMDEwMSwgMHgwMDAxMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiAr CX19DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgaWdhNjRfdGVtcGxhdGUgY29uc3QgaWdh NjRfY29kZV9icmVha3BvaW50X3N1cHByZXNzW10gPSB7DQo+ID4gKwl7IC5nZW5fdmVyID0gMTI1 MCwgLnNpemUgPSA4LCAuY29kZSA9IChjb25zdCB1aW50MzJfdCBbXSkgew0KPiA+ICsJCTB4ODAw MDA5NjYsIDB4ODAwMTgyMjAsIDB4MDIwMDgwMDAsIDB4MDAwMDgwMDAsDQo+ID4gKwkJMHg4MDAw MDkwMSwgMHgwMDAxMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCX19LA0KPiA+ ICsJeyAuZ2VuX3ZlciA9IDAsIC5zaXplID0gOCwgLmNvZGUgPSAoY29uc3QgdWludDMyX3QgW10p IHsNCj4gPiArCQkweDgwMDAwMTY2LCAweDgwMDE4MjIwLCAweDAyMDA4MDAwLCAweDAwMDA4MDAw LA0KPiA+ICsJCTB4ODAwMDAxMDEsIDB4MDAwMTAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAs DQo+ID4gKwl9fQ0KPiA+ICt9Ow0KPiA+ICANCj4gPiAgc3RydWN0IGlnYTY0X3RlbXBsYXRlIGNv bnN0IGlnYTY0X2NvZGVfbWVkaWFfYmxvY2tfd3JpdGVbXSA9IHsNCj4gPiAgCXsgLmdlbl92ZXIg PSAyMDAwLCAuc2l6ZSA9IDU2LCAuY29kZSA9IChjb25zdCB1aW50MzJfdCBbXSkgew0KPiA+IEBA IC05MCw2ICsyMDMsMjcwIEBAIHN0cnVjdCBpZ2E2NF90ZW1wbGF0ZSBjb25zdCBpZ2E2NF9jb2Rl X21lZGlhX2Jsb2NrX3dyaXRlW10gPSB7DQo+ID4gIAl9fQ0KPiA+ICB9Ow0KPiA+ICANCj4gPiAr c3RydWN0IGlnYTY0X3RlbXBsYXRlIGNvbnN0IGlnYTY0X2NvZGVfbWVkaWFfYmxvY2tfd3JpdGVf YWlwW10gPSB7DQo+ID4gKwl7IC5nZW5fdmVyID0gMjAwMCwgLnNpemUgPSA0NCwgLmNvZGUgPSAo Y29uc3QgdWludDMyX3QgW10pIHsNCj4gPiArCQkweDgwMDAwOTYxLCAweDA1MDUwMjIwLCAweDAw MDA4MDIwLCAweDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAwMDA5NjksIDB4MDIwNTgyMjAsIDB4MDIw MDAwMTQsIDB4MDAwMDAwMDIsDQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgwMjE1MDIyMCwgMHgwMDAw MDA2NCwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgwMDAxOTQwLCAweDAyMTU4MjIwLCAweDAyMDAw MjE0LCAweGMwZGVkMDAwLA0KPiA+ICsJCTB4ODAxMDAwNjEsIDB4MDQwNTQyMjAsIDB4MDAwMDAw MDAsIDB4MDAwMDAwMDAsDQo+ID4gKwkJMHg4MDA0MWE2MSwgMHgwNDU1MDIyMCwgMHgwMDIyMDIw NSwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgwMDAwMDYxLCAweDA0NzU0MjIwLCAweDAwMDAwMDAw LCAweDAwMDAwMDAzLA0KPiA+ICsJCTB4ODAxMzIwMzEsIDB4MDAwMDAwMDAsIDB4ZDAwZTA0OTQs IDB4MDQwMDAwMDAsDQo+ID4gKwkJMHg4MDAwMDAwMSwgMHgwMDAxMDAwMCwgMHgyMDAwMDAwMCwg MHgwMDAwMDAwMCwNCj4gPiArCQkweDgwMDAwMDAxLCAweDAwMDEwMDAwLCAweDMwMDAwMDAwLCAw eDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAwMDA5MDEsIDB4MDAwMTAwMDAsIDB4MDAwMDAwMDAsIDB4 MDAwMDAwMDAsDQo+ID4gKwl9fSwNCj4gPiArCXsgLmdlbl92ZXIgPSAxMjcwLCAuc2l6ZSA9IDQ0 LCAuY29kZSA9IChjb25zdCB1aW50MzJfdCBbXSkgew0KPiA+ICsJCTB4ODAwMDA5NjEsIDB4MDUw NTAyMjAsIDB4MDAwMDgwNDAsIDB4MDAwMDAwMDAsDQo+ID4gKwkJMHg4MDAwMDk2OSwgMHgwNDA1 ODIyMCwgMHgwMjAwMDAyNCwgMHgwMDAwMDAwMiwNCj4gPiArCQkweDgwMDAwMDYxLCAweDA0MjUw MjIwLCAweDAwMDAwMGM0LCAweDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAwMDE5NDAsIDB4MDQyNTgy MjAsIDB4MDIwMDA0MjQsIDB4YzBkZWQwMDAsDQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgwNDQ1NDIy MCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMywNCj4gPiArCQkweDgwMDAwMDYxLCAweDA0ODUwMjIw LCAweDAwMDAwMGE0LCAweDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAwMDE5MDEsIDB4MDAwMTAwMDAs IDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ID4gKwkJMHg4MDA0NDAzMSwgMHgwMDAwMDAwMCwg MHhjMDAwMDQxNCwgMHgwMmEwMDAwMCwNCj4gPiArCQkweDgwMDAwMDAxLCAweDAwMDEwMDAwLCAw eDIwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAwMDAwMDEsIDB4MDAwMTAwMDAsIDB4 MzAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ID4gKwkJMHg4MDAwMDkwMSwgMHgwMDAxMDAwMCwgMHgw MDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCX19LA0KPiA+ICsJeyAuZ2VuX3ZlciA9IDEyNjAs IC5zaXplID0gNDAsIC5jb2RlID0gKGNvbnN0IHVpbnQzMl90IFtdKSB7DQo+ID4gKwkJMHg4MDAw MDk2MSwgMHgwNTA1MDIyMCwgMHgwMDAwODAyMCwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgwMDAw OTY5LCAweDA0MDU4MjIwLCAweDAyMDAwMDE0LCAweDAwMDAwMDAyLA0KPiA+ICsJCTB4ODAwMDAw NjEsIDB4MDQxNTAyMjAsIDB4MDAwMDAwNjQsIDB4MDAwMDAwMDAsDQo+ID4gKwkJMHg4MDAwMTk0 MCwgMHgwNDE1ODIyMCwgMHgwMjAwMDQxNCwgMHhjMGRlZDAwMCwNCj4gPiArCQkweDgwMDAwMDYx LCAweDA0MjU0MjIwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAzLA0KPiA+ICsJCTB4ODAwMDAwNjEs IDB4MDQ0NTAyMjAsIDB4MDAwMDAwNTQsIDB4MDAwMDAwMDAsDQo+ID4gKwkJMHg4MDEzMjAzMSwg MHgwMDAwMDAwMCwgMHhjMDAwMDQxNCwgMHgwMmEwMDAwMCwNCj4gPiArCQkweDgwMDAwMDAxLCAw eDAwMDEwMDAwLCAweDIwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAwMDAwMDEsIDB4 MDAwMTAwMDAsIDB4MzAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ID4gKwkJMHg4MDAwMDkwMSwgMHgw MDAxMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCX19LA0KPiA+ICsJeyAuZ2Vu X3ZlciA9IDEyNTAsIC5zaXplID0gNDQsIC5jb2RlID0gKGNvbnN0IHVpbnQzMl90IFtdKSB7DQo+ ID4gKwkJMHg4MDAwMDk2MSwgMHgwNTA1MDIyMCwgMHgwMDAwODA0MCwgMHgwMDAwMDAwMCwNCj4g PiArCQkweDgwMDAwOTY5LCAweDA0MDU4MjIwLCAweDAyMDAwMDI0LCAweDAwMDAwMDAyLA0KPiA+ ICsJCTB4ODAwMDAwNjEsIDB4MDQyNTAyMjAsIDB4MDAwMDAwYzQsIDB4MDAwMDAwMDAsDQo+ID4g KwkJMHg4MDAwMTk0MCwgMHgwNDI1ODIyMCwgMHgwMjAwMDQyNCwgMHhjMGRlZDAwMCwNCj4gPiAr CQkweDgwMDAwMDYxLCAweDA0NDU0MjIwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAzLA0KPiA+ICsJ CTB4ODAwMDAwNjEsIDB4MDQ4NTAyMjAsIDB4MDAwMDAwYTQsIDB4MDAwMDAwMDAsDQo+ID4gKwkJ MHg4MDAwMTkwMSwgMHgwMDAxMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCQkw eDgwMDQ0MDMxLCAweDAwMDAwMDAwLCAweGMwMDAwNDE0LCAweDAyYTAwMDAwLA0KPiA+ICsJCTB4 ODAwMDAwMDEsIDB4MDAwMTAwMDAsIDB4MjAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ID4gKwkJMHg4 MDAwMDAwMSwgMHgwMDAxMDAwMCwgMHgzMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgw MDAwOTAxLCAweDAwMDEwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJfX0sDQo+ ID4gKwl7IC5nZW5fdmVyID0gMCwgLnNpemUgPSA0MCwgLmNvZGUgPSAoY29uc3QgdWludDMyX3Qg W10pIHsNCj4gPiArCQkweDgwMDAwMTYxLCAweDA1MDUwMjIwLCAweDAwMDA4MDQwLCAweDAwMDAw MDAwLA0KPiA+ICsJCTB4ODAwMDAxNjksIDB4MDQwNTgyMjAsIDB4MDIwMDAwMjQsIDB4MDAwMDAw MDIsDQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgwNDI1MDIyMCwgMHgwMDAwMDBjNCwgMHgwMDAwMDAw MCwNCj4gPiArCQkweDgwMDAwMTQwLCAweDA0MjU4MjIwLCAweDAyMDAwNDI0LCAweGMwZGVkMDAw LA0KPiA+ICsJCTB4ODAwMDAwNjEsIDB4MDQ0NTQyMjAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDMs DQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgwNDg1MDIyMCwgMHgwMDAwMDBhNCwgMHgwMDAwMDAwMCwN Cj4gPiArCQkweDgwMDQ5MDMxLCAweDAwMDAwMDAwLCAweGMwMDAwNDE0LCAweDAyYTAwMDAwLA0K PiA+ICsJCTB4ODAwMDAwMDEsIDB4MDAwMTAwMDAsIDB4MjAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ ID4gKwkJMHg4MDAwMDAwMSwgMHgwMDAxMDAwMCwgMHgzMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4g PiArCQkweDgwMDAwMTAxLCAweDAwMDEwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ ICsJfX0NCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0cnVjdCBpZ2E2NF90ZW1wbGF0ZSBjb25zdCBp Z2E2NF9jb2RlX2NvbW1vbl90YXJnZXRfd3JpdGVbXSA9IHsNCj4gPiArCXsgLmdlbl92ZXIgPSAy MDAwLCAuc2l6ZSA9IDQ4LCAuY29kZSA9IChjb25zdCB1aW50MzJfdCBbXSkgew0KPiA+ICsJCTB4 ODAxMDAwNjEsIDB4MWYwNTQyMjAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ID4gKwkJMHg4 MDAwMDA2MSwgMHgxZjA1NDIyMCwgMHgwMDAwMDAwMCwgMHhjMGRlZDAwMSwNCj4gPiArCQkweDgw MDAwMDYxLCAweDFmMTU0MjIwLCAweDAwMDAwMDAwLCAweGMwZGVkMDAyLA0KPiA+ICsJCTB4ODAw MDAwNjEsIDB4MWYyNTQyMjAsIDB4MDAwMDAwMDAsIDB4YzBkZWQwMDMsDQo+ID4gKwkJMHg4MDAw MDA2MSwgMHgxZjM1NDIyMCwgMHgwMDAwMDAwMCwgMHhjMGRlZDAwNCwNCj4gPiArCQkweDgwMTAw MDYxLCAweDFlMDU0MjIwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAwNDAw NjEsIDB4MWU2NTQyMjAsIDB4MDAwMDAwMDAsIDB4YzBkZWQwMDAsDQo+ID4gKwkJMHg4MDAwMDA2 MSwgMHgxZTc1NDIyMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwZiwNCj4gPiArCQkweDgwMTMyMDMx LCAweDAwMDAwMDAwLCAweGQwMGUxZTk0LCAweDA0MDAwMDAwLA0KPiA+ICsJCTB4ODAwMDAwMDEs IDB4MDAwMTAwMDAsIDB4MjAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ID4gKwkJMHg4MDAwMDAwMSwg MHgwMDAxMDAwMCwgMHgzMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgwMDAwOTAxLCAw eDAwMDEwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJfX0sDQo+ID4gKwl7IC5n ZW5fdmVyID0gMTI3MCwgLnNpemUgPSA1NiwgLmNvZGUgPSAoY29uc3QgdWludDMyX3QgW10pIHsN Cj4gPiArCQkweDgwMDQwMDYxLCAweDFmMDU0MjIwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0K PiA+ICsJCTB4ODAwMDAwNjEsIDB4MWYwNTQyMjAsIDB4MDAwMDAwMDAsIDB4YzBkZWQwMDEsDQo+ ID4gKwkJMHg4MDAwMDA2MSwgMHgxZjI1NDIyMCwgMHgwMDAwMDAwMCwgMHhjMGRlZDAwMiwNCj4g PiArCQkweDgwMDAwMDYxLCAweDFmNDU0MjIwLCAweDAwMDAwMDAwLCAweGMwZGVkMDAzLA0KPiA+ ICsJCTB4ODAwMDAwNjEsIDB4MWY2NTQyMjAsIDB4MDAwMDAwMDAsIDB4YzBkZWQwMDQsDQo+ID4g KwkJMHg4MDA0MDA2MSwgMHgxZTA1NDIyMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiAr CQkweDgwMDAwMDYxLCAweDFlMjU0MjIwLCAweDAwMDAwMDAwLCAweGMwZGVkMDAwLA0KPiA+ICsJ CTB4ODAwMDAwNjEsIDB4MWU0NTQyMjAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMGYsDQo+ID4gKwkJ MHg4MDAwMDA2MSwgMHgxZTg1MDIyMCwgMHgwMDAwMDBhNCwgMHgwMDAwMDAwMCwNCj4gPiArCQkw eDgwMDAxOTAxLCAweDAwMDEwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJCTB4 ODAwNDQwMzEsIDB4MDAwMDAwMDAsIDB4YzAwMDFlMTQsIDB4MDJhMDAwMDAsDQo+ID4gKwkJMHg4 MDAwMDAwMSwgMHgwMDAxMDAwMCwgMHgyMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgw MDAwMDAxLCAweDAwMDEwMDAwLCAweDMwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAw MDA5MDEsIDB4MDAwMTAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ID4gKwl9fSwNCj4g PiArCXsgLmdlbl92ZXIgPSAxMjYwLCAuc2l6ZSA9IDUyLCAuY29kZSA9IChjb25zdCB1aW50MzJf dCBbXSkgew0KPiA+ICsJCTB4ODAxMDAwNjEsIDB4MWYwNTQyMjAsIDB4MDAwMDAwMDAsIDB4MDAw MDAwMDAsDQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgxZjA1NDIyMCwgMHgwMDAwMDAwMCwgMHhjMGRl ZDAwMSwNCj4gPiArCQkweDgwMDAwMDYxLCAweDFmMTU0MjIwLCAweDAwMDAwMDAwLCAweGMwZGVk MDAyLA0KPiA+ICsJCTB4ODAwMDAwNjEsIDB4MWYyNTQyMjAsIDB4MDAwMDAwMDAsIDB4YzBkZWQw MDMsDQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgxZjM1NDIyMCwgMHgwMDAwMDAwMCwgMHhjMGRlZDAw NCwNCj4gPiArCQkweDgwMTAwMDYxLCAweDFlMDU0MjIwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAw LA0KPiA+ICsJCTB4ODAwMDAwNjEsIDB4MWUxNTQyMjAsIDB4MDAwMDAwMDAsIDB4YzBkZWQwMDAs DQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgxZTI1NDIyMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwZiwN Cj4gPiArCQkweDgwMDAwMDYxLCAweDFlNDUwMjIwLCAweDAwMDAwMDU0LCAweDAwMDAwMDAwLA0K PiA+ICsJCTB4ODAxMzIwMzEsIDB4MDAwMDAwMDAsIDB4YzAwMDFlMTQsIDB4MDJhMDAwMDAsDQo+ ID4gKwkJMHg4MDAwMDAwMSwgMHgwMDAxMDAwMCwgMHgyMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4g PiArCQkweDgwMDAwMDAxLCAweDAwMDEwMDAwLCAweDMwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ ICsJCTB4ODAwMDA5MDEsIDB4MDAwMTAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ID4g Kwl9fSwNCj4gPiArCXsgLmdlbl92ZXIgPSAxMjUwLCAuc2l6ZSA9IDU2LCAuY29kZSA9IChjb25z dCB1aW50MzJfdCBbXSkgew0KPiA+ICsJCTB4ODAwNDAwNjEsIDB4MWYwNTQyMjAsIDB4MDAwMDAw MDAsIDB4MDAwMDAwMDAsDQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgxZjA1NDIyMCwgMHgwMDAwMDAw MCwgMHhjMGRlZDAwMSwNCj4gPiArCQkweDgwMDAwMDYxLCAweDFmMjU0MjIwLCAweDAwMDAwMDAw LCAweGMwZGVkMDAyLA0KPiA+ICsJCTB4ODAwMDAwNjEsIDB4MWY0NTQyMjAsIDB4MDAwMDAwMDAs IDB4YzBkZWQwMDMsDQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgxZjY1NDIyMCwgMHgwMDAwMDAwMCwg MHhjMGRlZDAwNCwNCj4gPiArCQkweDgwMDQwMDYxLCAweDFlMDU0MjIwLCAweDAwMDAwMDAwLCAw eDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAwMDAwNjEsIDB4MWUyNTQyMjAsIDB4MDAwMDAwMDAsIDB4 YzBkZWQwMDAsDQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgxZTQ1NDIyMCwgMHgwMDAwMDAwMCwgMHgw MDAwMDAwZiwNCj4gPiArCQkweDgwMDAwMDYxLCAweDFlODUwMjIwLCAweDAwMDAwMGE0LCAweDAw MDAwMDAwLA0KPiA+ICsJCTB4ODAwMDE5MDEsIDB4MDAwMTAwMDAsIDB4MDAwMDAwMDAsIDB4MDAw MDAwMDAsDQo+ID4gKwkJMHg4MDA0NDAzMSwgMHgwMDAwMDAwMCwgMHhjMDAwMWUxNCwgMHgwMmEw MDAwMCwNCj4gPiArCQkweDgwMDAwMDAxLCAweDAwMDEwMDAwLCAweDIwMDAwMDAwLCAweDAwMDAw MDAwLA0KPiA+ICsJCTB4ODAwMDAwMDEsIDB4MDAwMTAwMDAsIDB4MzAwMDAwMDAsIDB4MDAwMDAw MDAsDQo+ID4gKwkJMHg4MDAwMDkwMSwgMHgwMDAxMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAw MCwNCj4gPiArCX19LA0KPiA+ICsJeyAuZ2VuX3ZlciA9IDAsIC5zaXplID0gNTIsIC5jb2RlID0g KGNvbnN0IHVpbnQzMl90IFtdKSB7DQo+ID4gKwkJMHg4MDA0MDA2MSwgMHgxZjA1NDIyMCwgMHgw MDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgwMDAwMDYxLCAweDFmMDU0MjIwLCAweDAw MDAwMDAwLCAweGMwZGVkMDAxLA0KPiA+ICsJCTB4ODAwMDAwNjEsIDB4MWYyNTQyMjAsIDB4MDAw MDAwMDAsIDB4YzBkZWQwMDIsDQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgxZjQ1NDIyMCwgMHgwMDAw MDAwMCwgMHhjMGRlZDAwMywNCj4gPiArCQkweDgwMDAwMDYxLCAweDFmNjU0MjIwLCAweDAwMDAw MDAwLCAweGMwZGVkMDA0LA0KPiA+ICsJCTB4ODAwNDAwNjEsIDB4MWUwNTQyMjAsIDB4MDAwMDAw MDAsIDB4MDAwMDAwMDAsDQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgxZTI1NDIyMCwgMHgwMDAwMDAw MCwgMHhjMGRlZDAwMCwNCj4gPiArCQkweDgwMDAwMDYxLCAweDFlNDU0MjIwLCAweDAwMDAwMDAw LCAweDAwMDAwMDBmLA0KPiA+ICsJCTB4ODAwMDAwNjEsIDB4MWU4NTAyMjAsIDB4MDAwMDAwYTQs IDB4MDAwMDAwMDAsDQo+ID4gKwkJMHg4MDA0OTAzMSwgMHgwMDAwMDAwMCwgMHhjMDAwMWUxNCwg MHgwMmEwMDAwMCwNCj4gPiArCQkweDgwMDAwMDAxLCAweDAwMDEwMDAwLCAweDIwMDAwMDAwLCAw eDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAwMDAwMDEsIDB4MDAwMTAwMDAsIDB4MzAwMDAwMDAsIDB4 MDAwMDAwMDAsDQo+ID4gKwkJMHg4MDAwMDEwMSwgMHgwMDAxMDAwMCwgMHgwMDAwMDAwMCwgMHgw MDAwMDAwMCwNCj4gPiArCX19DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgaWdhNjRfdGVt cGxhdGUgY29uc3QgaWdhNjRfY29kZV9pbmNfcjQwX2p1bXBfbmVxW10gPSB7DQo+ID4gKwl7IC5n ZW5fdmVyID0gMjAwMCwgLnNpemUgPSAyMCwgLmNvZGUgPSAoY29uc3QgdWludDMyX3QgW10pIHsN Cj4gPiArCQkweDgwMDAwMDQwLCAweDI4MDU4MjIwLCAweDAyMDAyODA0LCAweDAwMDAwMDAxLA0K PiA+ICsJCTB4ODAwMDAwNjEsIDB4MzAwMTQyMjAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ ID4gKwkJMHg4MDAwMWE3MCwgMHgwMDAxODIyMCwgMHgyMjAwMjgwNCwgMHhjMGRlZDAwMCwNCj4g PiArCQkweDg0MDAwMDIwLCAweDAwMDA0MDAwLCAweDAwMDAwMDAwLCAweGZmZmZmZmQwLA0KPiA+ ICsJCTB4ODAwMDA5MDEsIDB4MDAwMTAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ID4g Kwl9fSwNCj4gPiArCXsgLmdlbl92ZXIgPSAxMjcwLCAuc2l6ZSA9IDIwLCAuY29kZSA9IChjb25z dCB1aW50MzJfdCBbXSkgew0KPiA+ICsJCTB4ODAwMDAwNDAsIDB4MjgwNTgyMjAsIDB4MDIwMDI4 MDQsIDB4MDAwMDAwMDEsDQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgzMDAxNDIyMCwgMHgwMDAwMDAw MCwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgwMDAxYTcwLCAweDAwMDE4MjIwLCAweDIyMDAyODA0 LCAweGMwZGVkMDAwLA0KPiA+ICsJCTB4ODEwMDAwMjAsIDB4MDAwMDQwMDAsIDB4MDAwMDAwMDAs IDB4ZmZmZmZmZDAsDQo+ID4gKwkJMHg4MDAwMDkwMSwgMHgwMDAxMDAwMCwgMHgwMDAwMDAwMCwg MHgwMDAwMDAwMCwNCj4gPiArCX19LA0KPiA+ICsJeyAuZ2VuX3ZlciA9IDEyNjAsIC5zaXplID0g MjAsIC5jb2RlID0gKGNvbnN0IHVpbnQzMl90IFtdKSB7DQo+ID4gKwkJMHg4MDAwMDA0MCwgMHgy ODA1ODIyMCwgMHgwMjAwMjgwNCwgMHgwMDAwMDAwMSwNCj4gPiArCQkweDgwMDAwMDYxLCAweDMw MDE0MjIwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAwMDFhNzAsIDB4MDAw MTgyMjAsIDB4MjIwMDI4MDQsIDB4YzBkZWQwMDAsDQo+ID4gKwkJMHg4NDAwMDAyMCwgMHgwMDAw NDAwMCwgMHgwMDAwMDAwMCwgMHhmZmZmZmZkMCwNCj4gPiArCQkweDgwMDAwOTAxLCAweDAwMDEw MDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJfX0sDQo+ID4gKwl7IC5nZW5fdmVy ID0gMTI1MCwgLnNpemUgPSAyMCwgLmNvZGUgPSAoY29uc3QgdWludDMyX3QgW10pIHsNCj4gPiAr CQkweDgwMDAwMDQwLCAweDI4MDU4MjIwLCAweDAyMDAyODA0LCAweDAwMDAwMDAxLA0KPiA+ICsJ CTB4ODAwMDAwNjEsIDB4MzAwMTQyMjAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ID4gKwkJ MHg4MDAwMWE3MCwgMHgwMDAxODIyMCwgMHgyMjAwMjgwNCwgMHhjMGRlZDAwMCwNCj4gPiArCQkw eDgxMDAwMDIwLCAweDAwMDA0MDAwLCAweDAwMDAwMDAwLCAweGZmZmZmZmQwLA0KPiA+ICsJCTB4 ODAwMDA5MDEsIDB4MDAwMTAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ID4gKwl9fSwN Cj4gPiArCXsgLmdlbl92ZXIgPSAwLCAuc2l6ZSA9IDIwLCAuY29kZSA9IChjb25zdCB1aW50MzJf dCBbXSkgew0KPiA+ICsJCTB4ODAwMDAwNDAsIDB4MjgwNTgyMjAsIDB4MDIwMDI4MDQsIDB4MDAw MDAwMDEsDQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgzMDAxNDIyMCwgMHgwMDAwMDAwMCwgMHgwMDAw MDAwMCwNCj4gPiArCQkweDgwMDAwMjcwLCAweDAwMDE4MjIwLCAweDIyMDAyODA0LCAweGMwZGVk MDAwLA0KPiA+ICsJCTB4ODEwMDAwMjAsIDB4MDAwMDQwMDAsIDB4MDAwMDAwMDAsIDB4ZmZmZmZm ZDAsDQo+ID4gKwkJMHg4MDAwMDEwMSwgMHgwMDAxMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAw MCwNCj4gPiArCX19DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgaWdhNjRfdGVtcGxhdGUg Y29uc3QgaWdhNjRfY29kZV9jbGVhcl9yNDBbXSA9IHsNCj4gPiArCXsgLmdlbl92ZXIgPSAxMjUw LCAuc2l6ZSA9IDgsIC5jb2RlID0gKGNvbnN0IHVpbnQzMl90IFtdKSB7DQo+ID4gKwkJMHg4MDAw MDA2MSwgMHgyODA1NDIyMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgwMDAw OTAxLCAweDAwMDEwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJfX0sDQo+ID4g Kwl7IC5nZW5fdmVyID0gMCwgLnNpemUgPSA4LCAuY29kZSA9IChjb25zdCB1aW50MzJfdCBbXSkg ew0KPiA+ICsJCTB4ODAwMDAwNjEsIDB4MjgwNTQyMjAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAs DQo+ID4gKwkJMHg4MDAwMDEwMSwgMHgwMDAxMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwN Cj4gPiArCX19DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgaWdhNjRfdGVtcGxhdGUgY29u c3QgaWdhNjRfY29kZV9qdW1wX2R3X25lcVtdID0gew0KPiA+ICsJeyAuZ2VuX3ZlciA9IDIwMDAs IC5zaXplID0gMzIsIC5jb2RlID0gKGNvbnN0IHVpbnQzMl90IFtdKSB7DQo+ID4gKwkJMHg4MDEw MDA2MSwgMHgxZTA1NDIyMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgwMDQw MDYxLCAweDFlNjU0MjIwLCAweDAwMDAwMDAwLCAweGMwZGVkMDAwLA0KPiA+ICsJCTB4ODAwMDAw NjEsIDB4MWU3NTQyMjAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDMsDQo+ID4gKwkJMHg4MDEzMjAz MSwgMHgxZjBjMDAwMCwgMHhkMDA2MWU4YywgMHgwNDAwMDAwMCwNCj4gPiArCQkweDgwMDAwMDYx LCAweDMwMDE0MjIwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAwMDgwNzAs IDB4MDAwMTgyMjAsIDB4MjIwMDFmMDQsIDB4YzBkZWQwMDEsDQo+ID4gKwkJMHg4NDAwMDAyMCwg MHgwMDAwNDAwMCwgMHgwMDAwMDAwMCwgMHhmZmZmZmZhMCwNCj4gPiArCQkweDgwMDAwOTAxLCAw eDAwMDEwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJfX0sDQo+ID4gKwl7IC5n ZW5fdmVyID0gMTI3MCwgLnNpemUgPSA0MCwgLmNvZGUgPSAoY29uc3QgdWludDMyX3QgW10pIHsN Cj4gPiArCQkweDgwMDQwMDYxLCAweDFlMDU0MjIwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0K PiA+ICsJCTB4ODAwMDAwNjEsIDB4MWUyNTQyMjAsIDB4MDAwMDAwMDAsIDB4YzBkZWQwMDAsDQo+ ID4gKwkJMHg4MDAwMDA2MSwgMHgxZTQ1NDIyMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMywNCj4g PiArCQkweDgwMDAwMDYxLCAweDFlODUwMjIwLCAweDAwMDAwMGE0LCAweDAwMDAwMDAwLA0KPiA+ ICsJCTB4ODAwMDE5MDEsIDB4MDAwMTAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ID4g KwkJMHg4MDA0NDAzMSwgMHgxZjBjMDAwMCwgMHhjMDAwMWUwYywgMHgwMjQwMDAwMCwNCj4gPiAr CQkweDgwMDAwMDYxLCAweDMwMDE0MjIwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJ CTB4ODAwMDIwNzAsIDB4MDAwMTgyMjAsIDB4MjIwMDFmMDQsIDB4YzBkZWQwMDEsDQo+ID4gKwkJ MHg4MTAwMDAyMCwgMHgwMDAwNDAwMCwgMHgwMDAwMDAwMCwgMHhmZmZmZmY4MCwNCj4gPiArCQkw eDgwMDAwOTAxLCAweDAwMDEwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJfX0s DQo+ID4gKwl7IC5nZW5fdmVyID0gMTI2MCwgLnNpemUgPSAzNiwgLmNvZGUgPSAoY29uc3QgdWlu dDMyX3QgW10pIHsNCj4gPiArCQkweDgwMTAwMDYxLCAweDFlMDU0MjIwLCAweDAwMDAwMDAwLCAw eDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAwMDAwNjEsIDB4MWUxNTQyMjAsIDB4MDAwMDAwMDAsIDB4 YzBkZWQwMDAsDQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgxZTI1NDIyMCwgMHgwMDAwMDAwMCwgMHgw MDAwMDAwMywNCj4gPiArCQkweDgwMDAwMDYxLCAweDFlNDUwMjIwLCAweDAwMDAwMDU0LCAweDAw MDAwMDAwLA0KPiA+ICsJCTB4ODAxMzIwMzEsIDB4MWYwYzAwMDAsIDB4YzAwMDFlMGMsIDB4MDI0 MDAwMDAsDQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgzMDAxNDIyMCwgMHgwMDAwMDAwMCwgMHgwMDAw MDAwMCwNCj4gPiArCQkweDgwMDA4MDcwLCAweDAwMDE4MjIwLCAweDIyMDAxZjA0LCAweGMwZGVk MDAxLA0KPiA+ICsJCTB4ODQwMDAwMjAsIDB4MDAwMDQwMDAsIDB4MDAwMDAwMDAsIDB4ZmZmZmZm OTAsDQo+ID4gKwkJMHg4MDAwMDkwMSwgMHgwMDAxMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAw MCwNCj4gPiArCX19LA0KPiA+ICsJeyAuZ2VuX3ZlciA9IDEyNTAsIC5zaXplID0gNDAsIC5jb2Rl ID0gKGNvbnN0IHVpbnQzMl90IFtdKSB7DQo+ID4gKwkJMHg4MDA0MDA2MSwgMHgxZTA1NDIyMCwg MHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgwMDAwMDYxLCAweDFlMjU0MjIwLCAw eDAwMDAwMDAwLCAweGMwZGVkMDAwLA0KPiA+ICsJCTB4ODAwMDAwNjEsIDB4MWU0NTQyMjAsIDB4 MDAwMDAwMDAsIDB4MDAwMDAwMDMsDQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgxZTg1MDIyMCwgMHgw MDAwMDBhNCwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgwMDAxOTAxLCAweDAwMDEwMDAwLCAweDAw MDAwMDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJCTB4ODAwNDQwMzEsIDB4MWYwYzAwMDAsIDB4YzAw MDFlMGMsIDB4MDI0MDAwMDAsDQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgzMDAxNDIyMCwgMHgwMDAw MDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgwMDAyMDcwLCAweDAwMDE4MjIwLCAweDIyMDAx ZjA0LCAweGMwZGVkMDAxLA0KPiA+ICsJCTB4ODEwMDAwMjAsIDB4MDAwMDQwMDAsIDB4MDAwMDAw MDAsIDB4ZmZmZmZmODAsDQo+ID4gKwkJMHg4MDAwMDkwMSwgMHgwMDAxMDAwMCwgMHgwMDAwMDAw MCwgMHgwMDAwMDAwMCwNCj4gPiArCX19LA0KPiA+ICsJeyAuZ2VuX3ZlciA9IDAsIC5zaXplID0g MzYsIC5jb2RlID0gKGNvbnN0IHVpbnQzMl90IFtdKSB7DQo+ID4gKwkJMHg4MDA0MDA2MSwgMHgx ZTA1NDIyMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgwMDAwMDYxLCAweDFl MjU0MjIwLCAweDAwMDAwMDAwLCAweGMwZGVkMDAwLA0KPiA+ICsJCTB4ODAwMDAwNjEsIDB4MWU0 NTQyMjAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDMsDQo+ID4gKwkJMHg4MDAwMDA2MSwgMHgxZTg1 MDIyMCwgMHgwMDAwMDBhNCwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgwMDQ5MDMxLCAweDFmMGMw MDAwLCAweGMwMDAxZTBjLCAweDAyNDAwMDAwLA0KPiA+ICsJCTB4ODAwMDAwNjEsIDB4MzAwMTQy MjAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ID4gKwkJMHg4MDAwMjA3MCwgMHgwMDAxODIy MCwgMHgyMjAwMWYwNCwgMHhjMGRlZDAwMSwNCj4gPiArCQkweDgxMDAwMDIwLCAweDAwMDA0MDAw LCAweDAwMDAwMDAwLCAweGZmZmZmZjkwLA0KPiA+ICsJCTB4ODAwMDAxMDEsIDB4MDAwMTAwMDAs IDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ID4gKwl9fQ0KPiA+ICt9Ow0KPiA+ICsNCj4gPiAr c3RydWN0IGlnYTY0X3RlbXBsYXRlIGNvbnN0IGlnYTY0X2NvZGVfanVtcFtdID0gew0KPiA+ICsJ eyAuZ2VuX3ZlciA9IDEyNTAsIC5zaXplID0gOCwgLmNvZGUgPSAoY29uc3QgdWludDMyX3QgW10p IHsNCj4gPiArCQkweDgwMDAwMDIwLCAweDAwMDA0MDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAw LA0KPiA+ICsJCTB4ODAwMDA5MDEsIDB4MDAwMTAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAs DQo+ID4gKwl9fSwNCj4gPiArCXsgLmdlbl92ZXIgPSAwLCAuc2l6ZSA9IDgsIC5jb2RlID0gKGNv bnN0IHVpbnQzMl90IFtdKSB7DQo+ID4gKwkJMHg4MDAwMDAyMCwgMHgwMDAwNDAwMCwgMHgwMDAw MDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCQkweDgwMDAwMTAxLCAweDAwMDEwMDAwLCAweDAwMDAw MDAwLCAweDAwMDAwMDAwLA0KPiA+ICsJfX0NCj4gPiArfTsNCj4gPiArDQo+ID4gIHN0cnVjdCBp Z2E2NF90ZW1wbGF0ZSBjb25zdCBpZ2E2NF9jb2RlX2VvdFtdID0gew0KPiA+ICAJeyAuZ2VuX3Zl ciA9IDIwMDAsIC5zaXplID0gOCwgLmNvZGUgPSAoY29uc3QgdWludDMyX3QgW10pIHsNCj4gPiAg CQkweDgwMGMwMDYxLCAweDcwMDUwMjIwLCAweDAwNDYwMDA1LCAweDAwMDAwMDAwLA0KPiA+IEBA IC0xMTQsMyArNDkxLDI1IEBAIHN0cnVjdCBpZ2E2NF90ZW1wbGF0ZSBjb25zdCBpZ2E2NF9jb2Rl X2VvdFtdID0gew0KPiA+ICAJCTB4ODAwNDkwMzEsIDB4MDAwMDAwMDQsIDB4NzAyMDcwMGMsIDB4 MTAwMDAwMDAsDQo+ID4gIAl9fQ0KPiA+ICB9Ow0KPiA+ICsNCj4gPiArc3RydWN0IGlnYTY0X3Rl bXBsYXRlIGNvbnN0IGlnYTY0X2NvZGVfbm9wW10gPSB7DQo+ID4gKwl7IC5nZW5fdmVyID0gMTI1 MCwgLnNpemUgPSA4LCAuY29kZSA9IChjb25zdCB1aW50MzJfdCBbXSkgew0KPiA+ICsJCTB4MDAw MDAwNjAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ID4gKwkJMHg4MDAw MDkwMSwgMHgwMDAxMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCX19LA0KPiA+ ICsJeyAuZ2VuX3ZlciA9IDAsIC5zaXplID0gOCwgLmNvZGUgPSAoY29uc3QgdWludDMyX3QgW10p IHsNCj4gPiArCQkweDAwMDAwMDYwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAw LA0KPiA+ICsJCTB4ODAwMDAxMDEsIDB4MDAwMTAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAs DQo+ID4gKwl9fQ0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RydWN0IGlnYTY0X3RlbXBsYXRlIGNv bnN0IGlnYTY0X2NvZGVfc3luY19ob3N0W10gPSB7DQo+ID4gKwl7IC5nZW5fdmVyID0gMTI1MCwg LnNpemUgPSA4LCAuY29kZSA9IChjb25zdCB1aW50MzJfdCBbXSkgew0KPiA+ICsJCTB4ODAwMDAw MDEsIDB4MDAwMTAwMDAsIDB4ZjAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ID4gKwkJMHg4MDAwMDkw MSwgMHgwMDAxMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCX19LA0KPiA+ICsJ eyAuZ2VuX3ZlciA9IDAsIC5zaXplID0gOCwgLmNvZGUgPSAoY29uc3QgdWludDMyX3QgW10pIHsN Cj4gPiArCQkweDgwMDAwMDAxLCAweDAwMDEwMDAwLCAweGYwMDAwMDAwLCAweDAwMDAwMDAwLA0K PiA+ICsJCTB4ODAwMDAxMDEsIDB4MDAwMTAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ ID4gKwl9fQ0KPiA+ICt9Ow0KPiA+IC0tIA0KPiA+IDIuMzQuMQ0KPiA+IA0KDQo=