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 E3D86C77B73 for ; Wed, 24 May 2023 12:25:56 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 517FC10E5D3; Wed, 24 May 2023 12:25:56 +0000 (UTC) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 29CDF10E5D3 for ; Wed, 24 May 2023 12:25:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684931155; x=1716467155; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=X2uPh37U/g94clWT61aBzNlER8TQF/3ruwGSQe2iJ3o=; b=EaRa+JW3RImaBFtTSY8NI4SZlPXytSLBeg8HuB7Cn675z3I9SovCJN5T 34w91Abiz+6LC/W//jahzpQU1FjeZt+6V/EgeLzHSXU5hNW65V9yObSfn xloArx7BgJbBwzKHGO1G0uJz9voD2CRcloNuhQO+A0D74mudI0engY9zU tHY3eCgoLp9AiRgDWB3J+tp5UhMswfEGuCRvs3CTR+hY8HWAhz9h9afna ZCuxuUvXidUPOGsKrYmut34EnenGXDIYARRL06aAM9xx9uLYiTqW4HfMI aEAbuyiQ8A4I6bLBorUabi5Ke8g3VklvXgV/uKKGEaiPtSGcJ5su6cdxE A==; X-IronPort-AV: E=McAfee;i="6600,9927,10720"; a="439901591" X-IronPort-AV: E=Sophos;i="6.00,189,1681196400"; d="scan'208";a="439901591" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 May 2023 05:25:43 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10720"; a="950996702" X-IronPort-AV: E=Sophos;i="6.00,189,1681196400"; d="scan'208";a="950996702" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga006.fm.intel.com with ESMTP; 24 May 2023 05:25:41 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) 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.23; Wed, 24 May 2023 05:25:39 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) 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.23 via Frontend Transport; Wed, 24 May 2023 05:25:39 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.173) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Wed, 24 May 2023 05:25:39 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fBR7GxazeQsgomLZuHtkKjVIAxQ+Jwz6BNIEqYu7NHkiVpB9JiOtcIX2WoZbIA8KP4+ksoOA8woTQoOf7zmKUeymdzcYlapapJ2SuGQQggAPTyPfNPZdfruq0zepXFlEiAhMRYK+zRXUdFxaEXYarX8S+JoL0E2LDmirWaAVrUhs6qZAbnnNZX4hSI+o4dEHsc2nqn4JE1k9aQoQEWSChNFQ4arULMnOhTyr8qbw4NpiDoNb2B3eCQBMnjNJmNnTdT+26NlqFPdF0cGNyHHvJz+Z3UZZd7SB9f1c3JB6Baubsp9jIM3yF14q01fgGT4CauAcfJvgWs75ZZODLX8wQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=X2uPh37U/g94clWT61aBzNlER8TQF/3ruwGSQe2iJ3o=; b=GEyA/GdxNI+cP4HDprM1dK7UDewwIf7cHH5EsFA77IqZjTysM1rJwOmJL+NxyFZl/01ej1vkEMMIronLU0TezirNJ24NNLUuwBGIPwF3q8WX4d9N2N3emKnZ/rTenYmUpAuz0LoIFhLU+GG70ZYgkoyuuQaLCtwA44iOHqSXLrmQuqEQjU341080tb2selYHLEEfrQuErSjSc7n8lOTZYW42wIzuB9KCIXgL0Yy4Fr+uA+OFqqZO9B++WuouDLXrj8HRgUJ+fOmpnKAZHu5gtIwpGRhiRpMpZYOF5Nsed6ONsHkwLGnR9ALgcPMNuBvhIduYqAbyGQ5fCfCa+79kQA== 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 DS0PR11MB7382.namprd11.prod.outlook.com (2603:10b6:8:131::13) by DM4PR11MB8227.namprd11.prod.outlook.com (2603:10b6:8:184::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.15; Wed, 24 May 2023 12:25:36 +0000 Received: from DS0PR11MB7382.namprd11.prod.outlook.com ([fe80::7c95:e842:18f6:92f9]) by DS0PR11MB7382.namprd11.prod.outlook.com ([fe80::7c95:e842:18f6:92f9%6]) with mapi id 15.20.6433.015; Wed, 24 May 2023 12:25:35 +0000 From: "Coelho, Luciano" To: "tvrtko.ursulin@linux.intel.com" , "intel-gfx@lists.freedesktop.org" Thread-Topic: [Intel-gfx] [PATCH v2 2/3] drm/i915: add a dedicated workqueue inside drm_i915_private Thread-Index: AQHZji77XwkIxcOAzU+3dSti1nwN1a9pWU2A Date: Wed, 24 May 2023 12:25:35 +0000 Message-ID: References: <20230524090521.596399-1-luciano.coelho@intel.com> <20230524090521.596399-3-luciano.coelho@intel.com> <0a1cf2a3-3402-04dd-b276-4d1ecd0d170b@linux.intel.com> In-Reply-To: <0a1cf2a3-3402-04dd-b276-4d1ecd0d170b@linux.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.46.4-2 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: DS0PR11MB7382:EE_|DM4PR11MB8227:EE_ x-ms-office365-filtering-correlation-id: 62310868-9f18-4976-fe7c-08db5c51f9e2 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: c0UtDmJ/fHuNMRT80pIHw+Oq1iK08v7wrDax/EdjIXrinfIjCDDFsjxDR1z2CY2EBOA0TiJHdiNdVPDE/xuPlxSPuv5ecFhGuftDY48dgpsHQdBBZOO1r6/RM/REj1Oqj9XwaQEVfLDC37Y+RKLeUhRvNZPP4RdRAuqRG8PRXTTy6SmezX0vIZxnlRpL35KpM6gGalQ+MY2FU/JQ9ccROUojFdN2tBVY9Hu7w94SiWetlOdFpXOZQ/F0DZNziW9eu+sa1+s5yOoed+WwZ1V7+DIlldsAOU7WykFZcUJVG20ifUk6ybikRKtLkqDYOqNDRmoUgyqyXkenOcQ+gGPN5f/b/lgFoI4uUBpMoYCxqH4PNwbkCA8OTV+IsaU3ONbOZr4mVtyZXHXMqrlk4G/DSLamG1N494OXkers5lDT4g19VejnyOp2/r8l40e/gxcg2bj3sNZN/2X5d6bwWrG6Gb6bNgs+Vlsh5MyH3RF9oUYn1wTgH6AfTwKbofKSMAVztk4QHxYFIW3GhgQsFPvxvSTqrq9xrmyWnqlCkYeZaCe8XZitQ0BeYI+3W6UBIBp7 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DS0PR11MB7382.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(366004)(136003)(39860400002)(396003)(376002)(346002)(451199021)(122000001)(38100700002)(38070700005)(8676002)(8936002)(5660300002)(82960400001)(53546011)(66574015)(26005)(6512007)(6506007)(30864003)(186003)(2906002)(2616005)(36756003)(83380400001)(86362001)(110136005)(71200400001)(316002)(478600001)(4326008)(66446008)(64756008)(66476007)(66556008)(66946007)(76116006)(91956017)(966005)(6486002)(41300700001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bENzL1JiR3VqL3R4MGlTMzR1clg4VlpUd0paV2RoWG5ud250cUZnS2gyRmQ5?= =?utf-8?B?M2IxUFNESGJSaEZGUGJ0TGVWeHQxdG5OTVlEUnhKeDUrcU1POUJISXRsSDJj?= =?utf-8?B?VnEyWjFIWm1HTGtGUENDeG9CdHpiWEp6WGkvc215ZnMyVG5SR0NWMXNGM1dN?= =?utf-8?B?NjFUQjZGWWpPN1hhUXptdzlZak1QQXBKck5jSExDU01sRGFBZnlyNHhadXpr?= =?utf-8?B?SnY5akRKSlB0TldUbHVNNHhYRFQvd0dZT1lXM1FGRkNka2RnMmJiMHN1dVE3?= =?utf-8?B?RnVIaUdTZTFJTk1NY21jOUhmbjREOE5yNldRTzB6eWJsQjdFa3BORmp0a01K?= =?utf-8?B?MmlsVE9wN1h5YWFxN0NTTGluQW1FTnZsWXVpVG9mT1dlQ09FRmJkOTlvT1Jv?= =?utf-8?B?OGFEZ21OUmpDOWR3dVVjUVhqcTVyZklNSkVwaFJXUFB4Yjh0V0pDNlUvK0lI?= =?utf-8?B?ckZxbWJzWFg0WHZoeTdMUGRybGZXL0UraFBKUXRITkRMTy94ekJrTkNKRUlp?= =?utf-8?B?OFJzQnh4UlNKbGpRQ2lLbEV3Mk9NODM1MzA4S1Z2RnBVOC9TMWk4V0ZjZTVD?= =?utf-8?B?QXM3RE10eG41QXFESlF1SEdTbUYrUHRRSU1NK1dQNlFRZGZGdk5mZnlxTzhZ?= =?utf-8?B?WjM4VE91VG5nRHpTOVh6L0JxSjRMNmNQZUQ1SjJmeU1pSVQ4MjdWOVJLNW1T?= =?utf-8?B?VWxNemowREk2RlR2RzFyNDk5U2xpYUQxZC9GTU9idkREb0dTNTBLNDhPWUNR?= =?utf-8?B?andPSlFicEkwY1V5QTd2d2doYjFvNk1QRHp2NzhHN3k3VGllQUN2VVdIYm5Q?= =?utf-8?B?dGI5cGNXQnZGTVlsNUxJTVlMQVBYcnVsemhJNXlVU0F5Uk5Kd3ZvYmdZbDFX?= =?utf-8?B?b0RzUGNldUtUaGxkYWExRHlNWC92aExGVUE3c2dPMm5INCsxOVRXdmtTNVZk?= =?utf-8?B?ZTZXaVhDdkRvZGphYkFSVUNDeW9JcUV3bG95dHErYjZiaVEwQ1pSbFVOZjdu?= =?utf-8?B?ZnpGMjJEcnRPRS9MUzdmdGY0SWpCdGwrTXJ3WG9OV25BY1pOamQ0NWtMbDFo?= =?utf-8?B?aEMwVEFTS3hIUUxVakw0T3RmVHpGelpzZ2taVHNGZjJZeFRVL2ROcWErTEE3?= =?utf-8?B?d0cvZk1PYXkwdXZrRWtZckI2Mk1GNEtoQU92bzI4QUVpdDk1NUEvb3NOMjk2?= =?utf-8?B?Vmp5L0pVMW5nMUEzbkZ3VjVoMkx5Y1dzamc4Q25EbjNIWXV6eG9EcTY1ZU1X?= =?utf-8?B?andneUNPNkRoUlNpN0NiRm1tWlkwRGh1VWV6NkpsaTlRSG5TekVHV2l4dy9I?= =?utf-8?B?WTBWbVc0eHBPRTJ4L1NxUFZxdGNJdnBnL29JcnZMa1ROeDJHc2Q3K3MwTVhU?= =?utf-8?B?bnFYRi9KYmdvU2VBdnJCcWt0R3dRRCthTDVsZzlkTzVHMkM1Sm1rSmVFMlN5?= =?utf-8?B?REx2c2UxYXdYbFR1d290NUpVLzN0cUxmNEtZQkUxdE5kbUlHMzFEYktpOFM5?= =?utf-8?B?UlBNc3lGUHZoUWczVENyeEtpSURHMysyR1lDU1RuSkhPYXFvOWVvVitpQTUy?= =?utf-8?B?ekV2VE1qQ0NkV1pueHorWHpYei9xb1BvUmhlWDNSSm5XRlFDaWpOUTRZZllX?= =?utf-8?B?Rm9MZXYyaWNLZUFCeEc3TElzQ1pxd1hMWkRYbzc0c0plTGswUmZsc0tJM1k5?= =?utf-8?B?N3dpMnc1MUVQMmRvV3d2QS9jWWQ0UU1pclpmODhsTmovbmhhbmdYcGlIcGdr?= =?utf-8?B?WkNHc0JOZHkvTXE4a3Q4NHN4cXJIalNxMEduanc4YlpwWFpmeTBjRXlnNW42?= =?utf-8?B?RWNFQ1B3ZWNXcmw2UlFMOWhNMkw0dEx0Q0N3eUxHaExxbFlhOFlxODFVSTI5?= =?utf-8?B?c3EwSlV2L2Fvd0cyTDR3c3ZIc2creFlrRHllMDh5bzQrUFFEQXVaeFR4LzQv?= =?utf-8?B?RU9jSUw3dDE0VWJlK2x4clh2M1JwdklVdXVLRHlmdjVLWUdkR0gzcUpPNHpx?= =?utf-8?B?QTREUlRmSWh6SVFTSVZDamVJc1Bwd3ZyY0xWVndYWVlBeTJOMDFPaUsyMTRi?= =?utf-8?B?MVFYZnNIL0FvNmpiSk42Rk03N05xcG9mS2pKMWJaRlUzM3RvSW1XMGhPWnBT?= =?utf-8?B?OUY3WnhrMUZMaFZ6ZkhtQ1M5Y20wODZ3WXdaRkpxMXVDT25mdENwVHhVeG1z?= =?utf-8?B?dnc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <31E73DDF18A1CA4A8FAB4EDFA6309CB6@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7382.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 62310868-9f18-4976-fe7c-08db5c51f9e2 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 May 2023 12:25:35.7318 (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: lwDCeJfN73nFxq8l/ck6kiSo5ySHCtfVD2l9J3Ds5Sfy+GLEocGYo6HsuNB3W9pa9BgBijoBKhOpQXC0ffYB7pzs9oESPqVgMWiLSUn//+I= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB8227 X-OriginatorOrg: intel.com Subject: Re: [Intel-gfx] [PATCH v2 2/3] drm/i915: add a dedicated workqueue inside drm_i915_private X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Vivi, Rodrigo" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gV2VkLCAyMDIzLTA1LTI0IGF0IDEyOjAwICswMTAwLCBUdnJ0a28gVXJzdWxpbiB3cm90ZToN Cj4gT24gMjQvMDUvMjAyMyAxMDowNSwgTHVjYSBDb2VsaG8gd3JvdGU6DQo+ID4gSW4gb3JkZXIg dG8gYXZvaWQgZmx1c2hfc2NoZWR1bGVkX3dvcmsoKSB1c2FnZSwgYWRkIGEgZGVkaWNhdGVkDQo+ ID4gd29ya3F1ZXVlIGluIHRoZSBkcm1faTkxNV9wcml2YXRlIHN0cnVjdHVyZS4gIEluIHRoaXMg d2F5LCB3ZSBkb24ndA0KPiA+IG5lZWQgdG8gdXNlIHRoZSBzeXN0ZW0gcXVldWUgYW55bW9yZS4N Cj4gPiANCj4gPiBUaGlzIGNoYW5nZSBpcyBtb3N0bHkgbWVjaGFuaWNhbCBhbmQgYmFzZWQgb24g VGV0c3VvJ3Mgb3JpZ2luYWwNCj4gPiBwYXRjaFsxXS4NCj4gPiANCj4gPiBMaW5rOiBodHRwczov L3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvc2VyaWVzLzExNDYwOC8gWzFdDQo+ID4gQ2M6IFRl dHN1byBIYW5kYSA8cGVuZ3Vpbi1rZXJuZWxASS1sb3ZlLlNBS1VSQS5uZS5qcD4NCj4gPiBDYzog VHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4NCj4gPiBDYzogSmFuaSBO aWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4NCj4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBMdWNhIENv ZWxobyA8bHVjaWFuby5jb2VsaG9AaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgIHwgIDUgKystLQ0KPiA+ICAgLi4u L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9kcml2ZXIuYyAgIHwgIDIgKy0NCj4gPiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZG1jLmMgICAgICB8ICAyICstDQo+ ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMgICAgICAgfCAgMiAr LQ0KPiA+ICAgLi4uL2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbGlua190cmFpbmluZy5jIHwg IDMgKystDQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RycnMuYyAg ICAgfCAgNCArKystDQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Zi Yy5jICAgICAgfCAgMiArLQ0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9mYmRldi5jICAgIHwgIDMgKystDQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2hkY3AuYyAgICAgfCAyMyArKysrKysrKysrKy0tLS0tLS0tDQo+ID4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hvdHBsdWcuYyAgfCAxOCArKysrKysrKysrLS0t LS0NCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfb3ByZWdpb24uYyB8 ICAzICsrLQ0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wcHMuYyAg ICAgIHwgIDQgKysrLQ0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9w c3IuYyAgICAgIHwgIDggKysrKy0tLQ0KPiA+ICAgLi4uL2RybS9pOTE1L2d0L2ludGVsX2V4ZWNs aXN0c19zdWJtaXNzaW9uLmMgIHwgIDUgKystLQ0KPiA+ICAgLi4uL2dwdS9kcm0vaTkxNS9ndC9p bnRlbF9ndF9idWZmZXJfcG9vbC5jICAgIHwgMTAgKysrKy0tLS0NCj4gPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX2d0X2lycS5jICAgICAgICB8ICAyICstDQo+ID4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9yZXF1ZXN0cy5jICAgfCAxMCArKysrLS0tLQ0KPiA+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYyAgICAgICAgIHwgIDIgKy0N Cj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jwcy5jICAgICAgICAgICB8IDIw ICsrKysrKysrLS0tLS0tLS0NCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0 X2VuZ2luZV9jcy5jICB8ICAyICstDQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry aXZlci5jICAgICAgICAgICAgfCAxMSArKysrKysrKysNCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggICAgICAgICAgICAgICB8ICA5ICsrKysrKystDQo+ID4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyAgICAgICAgICAgfCAgMiArLQ0KPiA+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd2FrZXJlZi5jICAgICAgICAgIHwgIDIgKy0NCj4gPiAg IDI0IGZpbGVzIGNoYW5nZWQsIDk5IGluc2VydGlvbnMoKyksIDU1IGRlbGV0aW9ucygtKQ0KPiAN Cj4gSSdsbCB0YWtlIGEgbG9vayBhdCB0aGUgZ3QvIHBhcnRzIG9ubHkgc2luY2UgZGlzcGxheSBl eHBlcnRzIG5lZWQgdG8gDQo+IG9rYXkgdGhlIHBvaW50IERhbmllbCByYWlzZSBhbnl3YXkuDQoN ClRoYW5rcyENCg0KDQoNCj4gODwNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L2ludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uLmMNCj4gPiBpbmRleCA3NTAzMjY0MzQ2Nzcu LjJlYmQ5MzdmM2I0YyAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9p bnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbi5jDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Npb24uYw0KPiA+IEBAIC0yMzI3LDYgKzIzMjcs NyBAQCBzdGF0aWMgdTMyIGFjdGl2ZV9jY2lkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkNCj4gPiAgIA0KPiA+ICAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2NhcHR1cmUoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQ0KPiA+ICAgew0KPiA+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUgPSBlbmdpbmUtPmk5MTU7DQo+ID4gICAJc3RydWN0IGV4ZWNsaXN0c19jYXB0 dXJlICpjYXA7DQo+ID4gICANCj4gPiAgIAlpZiAoIUlTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1 X0NBUFRVUkVfRVJST1IpKQ0KPiA+IEBAIC0yMzc1LDcgKzIzNzYsNyBAQCBzdGF0aWMgdm9pZCBl eGVjbGlzdHNfY2FwdHVyZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpDQo+ID4gICAJ CWdvdG8gZXJyX3JxOw0KPiA+ICAgDQo+ID4gICAJSU5JVF9XT1JLKCZjYXAtPndvcmssIGV4ZWNs aXN0c19jYXB0dXJlX3dvcmspOw0KPiA+IC0Jc2NoZWR1bGVfd29yaygmY2FwLT53b3JrKTsNCj4g PiArCXF1ZXVlX3dvcmsoaTkxNS0+dW5vcmRlcmVkX3dxLCAmY2FwLT53b3JrKTsNCj4gPiAgIAly ZXR1cm47DQo+ID4gICANCj4gPiAgIGVycl9ycToNCj4gPiBAQCAtMzY4MCw3ICszNjgxLDcgQEAg c3RhdGljIHZvaWQgdmlydHVhbF9jb250ZXh0X2Rlc3Ryb3koc3RydWN0IGtyZWYgKmtyZWYpDQo+ ID4gICAJICogbG9jaywgd2UgY2FuIGRlbGVnYXRlIHRoZSBmcmVlIG9mIHRoZSBlbmdpbmUgdG8g YW4gUkNVIHdvcmtlci4NCj4gPiAgIAkgKi8NCj4gPiAgIAlJTklUX1JDVV9XT1JLKCZ2ZS0+cmN1 LCByY3VfdmlydHVhbF9jb250ZXh0X2Rlc3Ryb3kpOw0KPiA+IC0JcXVldWVfcmN1X3dvcmsoc3lz dGVtX3dxLCAmdmUtPnJjdSk7DQo+ID4gKwlxdWV1ZV9yY3Vfd29yayh2ZS0+Y29udGV4dC5lbmdp bmUtPmk5MTUtPnVub3JkZXJlZF93cSwgJnZlLT5yY3UpOw0KPiA+ICAgfQ0KPiA+ICAgDQo+ID4g ICBzdGF0aWMgdm9pZCB2aXJ0dWFsX2VuZ2luZV9pbml0aWFsX2hpbnQoc3RydWN0IHZpcnR1YWxf ZW5naW5lICp2ZSkNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfZ3RfYnVmZmVyX3Bvb2wuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X2J1 ZmZlcl9wb29sLmMNCj4gPiBpbmRleCBjYWRmZDg1Nzg1YjEuLjg2YjVhOWJhMzIzZCAxMDA2NDQN Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9idWZmZXJfcG9vbC5j DQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfYnVmZmVyX3Bvb2wu Yw0KPiA+IEBAIC04OCwxMCArODgsMTEgQEAgc3RhdGljIHZvaWQgcG9vbF9mcmVlX3dvcmsoc3Ry dWN0IHdvcmtfc3RydWN0ICp3cmspDQo+ID4gICB7DQo+ID4gICAJc3RydWN0IGludGVsX2d0X2J1 ZmZlcl9wb29sICpwb29sID0NCj4gPiAgIAkJY29udGFpbmVyX29mKHdyaywgdHlwZW9mKCpwb29s KSwgd29yay53b3JrKTsNCj4gPiArCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPSBjb250YWluZXJfb2Yo cG9vbCwgc3RydWN0IGludGVsX2d0LCBidWZmZXJfcG9vbCk7DQo+IA0KPiBPa2F5LiBPciBhbHRl cm5hdGl2ZWx5LCBwb29sID0gJmd0LT5idWZmZXJfcG9vbCwgbWlnaHQgcmVhZCBzaW1wbGVyLi4u DQoNClNvcnJ5LCBJIGRvbid0IGZvbGxvdy4gIHdyayBpcyBpbnNpZGUgaW50ZWxfZ3RfYnVmZmVy X3Bvb2wsIHNvIHdlIGNhbg0KZGVyaXZlIHBvb2wgZnJvbSB3b3JrLiAgQW5kIHRoZW4gd2Uga25v dyB0aGF0IHBvb2wgaXMgaW5zaWRlIGludGVsX2d0LA0Kc28gd2UgZGVyaXZlIGd0IGZyb20gdGhh dC4gIEhvdyB3b3VsZCBJIGdldCBndCBmaXJzdCBhbmQgZGVyaXZlIHBvb2wNCmZyb20gdGhhdD8N Cg0KDQo+ID4gICANCj4gPiAgIAlpZiAocG9vbF9mcmVlX29sZGVyX3RoYW4ocG9vbCwgSFopKQ0K PiA+IC0JCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmcG9vbC0+d29yaywNCj4gPiAtCQkJCSAgICAg IHJvdW5kX2ppZmZpZXNfdXBfcmVsYXRpdmUoSFopKTsNCj4gPiArCQlxdWV1ZV9kZWxheWVkX3dv cmsoZ3QtPmk5MTUtPnVub3JkZXJlZF93cSwgJnBvb2wtPndvcmssDQo+ID4gKwkJCQkgICByb3Vu ZF9qaWZmaWVzX3VwX3JlbGF0aXZlKEhaKSk7DQo+ID4gICB9DQo+ID4gICANCj4gPiAgIHN0YXRp YyB2b2lkIHBvb2xfcmV0aXJlKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKQ0KPiA+IEBAIC05OSw2 ICsxMDAsNyBAQCBzdGF0aWMgdm9pZCBwb29sX3JldGlyZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJl ZikNCj4gPiAgIAlzdHJ1Y3QgaW50ZWxfZ3RfYnVmZmVyX3Bvb2xfbm9kZSAqbm9kZSA9DQo+ID4g ICAJCWNvbnRhaW5lcl9vZihyZWYsIHR5cGVvZigqbm9kZSksIGFjdGl2ZSk7DQo+ID4gICAJc3Ry dWN0IGludGVsX2d0X2J1ZmZlcl9wb29sICpwb29sID0gbm9kZS0+cG9vbDsNCj4gPiArCXN0cnVj dCBpbnRlbF9ndCAqZ3QgPSBjb250YWluZXJfb2YocG9vbCwgc3RydWN0IGludGVsX2d0LCBidWZm ZXJfcG9vbCk7DQo+IA0KPiAuLi4gYWx0aG91Z2ggSSBhbSBiZWdpbm5pbmcgdG8gd29uZGVyIGlm IGludGVsX2d0X2J1ZmZlcl9wb29sIHNob3VsZG4ndCANCj4ganVzdCBnYWluIGEgZ3QgYmFja3Bv aW50ZXI/IFRoYXQgd291bGQgZGVjb3VwbGUgdGhpbmdzIG1vcmUgaW5zdGVhZCBvZiANCj4gdHlp bmcgdGhlIGltcGxlbWVudGF0aW9uIHdpdGggaW50ZWxfZ3QgaW1wbGljaXRseS4gTm90IGEgc3Ry b25nIA0KPiBkaXJlY3Rpb24gdGhvdWdoLg0KPiANCj4gPiAgIAlzdHJ1Y3QgbGlzdF9oZWFkICps aXN0ID0gYnVja2V0X2Zvcl9zaXplKHBvb2wsIG5vZGUtPm9iai0+YmFzZS5zaXplKTsNCj4gPiAg IAl1bnNpZ25lZCBsb25nIGZsYWdzOw0KPiA+ICAgDQo+ID4gQEAgLTExNiw4ICsxMTgsOCBAQCBz dGF0aWMgdm9pZCBwb29sX3JldGlyZShzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZikNCj4gPiAgIAlX UklURV9PTkNFKG5vZGUtPmFnZSwgamlmZmllcyA/OiAxKTsgLyogMCByZXNlcnZlZCBmb3IgYWN0 aXZlIG5vZGVzICovDQo+ID4gICAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9vbC0+bG9jaywg ZmxhZ3MpOw0KPiA+ICAgDQo+ID4gLQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJnBvb2wtPndvcmss DQo+ID4gLQkJCSAgICAgIHJvdW5kX2ppZmZpZXNfdXBfcmVsYXRpdmUoSFopKTsNCj4gPiArCXF1 ZXVlX2RlbGF5ZWRfd29yayhndC0+aTkxNS0+dW5vcmRlcmVkX3dxLCAmcG9vbC0+d29yaywNCj4g PiArCQkJICAgcm91bmRfamlmZmllc191cF9yZWxhdGl2ZShIWikpOw0KPiA+ICAgfQ0KPiA+ICAg DQo+ID4gICB2b2lkIGludGVsX2d0X2J1ZmZlcl9wb29sX21hcmtfdXNlZChzdHJ1Y3QgaW50ZWxf Z3RfYnVmZmVyX3Bvb2xfbm9kZSAqbm9kZSkNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9ndF9pcnEuYw0KPiA+IGluZGV4IDhmODg4ZDM2ZjE2ZC4uNjJmZDAwYzllNTE5IDEwMDY0NA0K PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X2lycS5jDQo+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfaXJxLmMNCj4gPiBAQCAtMzc2LDcg KzM3Niw3IEBAIHN0YXRpYyB2b2lkIGdlbjdfcGFyaXR5X2Vycm9yX2lycV9oYW5kbGVyKHN0cnVj dCBpbnRlbF9ndCAqZ3QsIHUzMiBpaXIpDQo+ID4gICAJaWYgKGlpciAmIEdUX1JFTkRFUl9MM19Q QVJJVFlfRVJST1JfSU5URVJSVVBUKQ0KPiA+ICAgCQlndC0+aTkxNS0+bDNfcGFyaXR5LndoaWNo X3NsaWNlIHw9IDEgPDwgMDsNCj4gPiAgIA0KPiA+IC0Jc2NoZWR1bGVfd29yaygmZ3QtPmk5MTUt PmwzX3Bhcml0eS5lcnJvcl93b3JrKTsNCj4gPiArCXF1ZXVlX3dvcmsoZ3QtPmk5MTUtPnVub3Jk ZXJlZF93cSwgJmd0LT5pOTE1LT5sM19wYXJpdHkuZXJyb3Jfd29yayk7DQo+ID4gICB9DQo+ID4g ICANCj4gPiAgIHZvaWQgZ2VuNl9ndF9pcnFfaGFuZGxlcihzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCB1 MzIgZ3RfaWlyKQ0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9ndF9yZXF1ZXN0cy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfcmVxdWVz dHMuYw0KPiA+IGluZGV4IDFkZmQwMTY2OGM3OS4uZDFhMzgyZGZhYTFkIDEwMDY0NA0KPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3JlcXVlc3RzLmMNCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9yZXF1ZXN0cy5jDQo+ID4gQEAgLTEx Niw3ICsxMTYsNyBAQCB2b2lkIGludGVsX2VuZ2luZV9hZGRfcmV0aXJlKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSwNCj4gPiAgIAlHRU1fQlVHX09OKGludGVsX2VuZ2luZV9pc192aXJ0 dWFsKGVuZ2luZSkpOw0KPiA+ICAgDQo+ID4gICAJaWYgKGFkZF9yZXRpcmUoZW5naW5lLCB0bCkp DQo+ID4gLQkJc2NoZWR1bGVfd29yaygmZW5naW5lLT5yZXRpcmVfd29yayk7DQo+ID4gKwkJcXVl dWVfd29yayhlbmdpbmUtPmk5MTUtPnVub3JkZXJlZF93cSwgJmVuZ2luZS0+cmV0aXJlX3dvcmsp Ow0KPiA+ICAgfQ0KPiA+ICAgDQo+ID4gICB2b2lkIGludGVsX2VuZ2luZV9pbml0X3JldGlyZShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpDQo+ID4gQEAgLTIwNyw4ICsyMDcsOCBAQCBz dGF0aWMgdm9pZCByZXRpcmVfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykN Cj4gPiAgIAlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0NCj4gPiAgIAkJY29udGFpbmVyX29mKHdvcmss IHR5cGVvZigqZ3QpLCByZXF1ZXN0cy5yZXRpcmVfd29yay53b3JrKTsNCj4gPiAgIA0KPiA+IC0J c2NoZWR1bGVfZGVsYXllZF93b3JrKCZndC0+cmVxdWVzdHMucmV0aXJlX3dvcmssDQo+ID4gLQkJ CSAgICAgIHJvdW5kX2ppZmZpZXNfdXBfcmVsYXRpdmUoSFopKTsNCj4gPiArCXF1ZXVlX2RlbGF5 ZWRfd29yayhndC0+aTkxNS0+dW5vcmRlcmVkX3dxLCAmZ3QtPnJlcXVlc3RzLnJldGlyZV93b3Jr LA0KPiA+ICsJCQkgICByb3VuZF9qaWZmaWVzX3VwX3JlbGF0aXZlKEhaKSk7DQo+ID4gICAJaW50 ZWxfZ3RfcmV0aXJlX3JlcXVlc3RzKGd0KTsNCj4gPiAgIH0NCj4gPiAgIA0KPiA+IEBAIC0yMjQs OCArMjI0LDggQEAgdm9pZCBpbnRlbF9ndF9wYXJrX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9ndCAq Z3QpDQo+ID4gICANCj4gPiAgIHZvaWQgaW50ZWxfZ3RfdW5wYXJrX3JlcXVlc3RzKHN0cnVjdCBp bnRlbF9ndCAqZ3QpDQo+ID4gICB7DQo+ID4gLQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmd0LT5y ZXF1ZXN0cy5yZXRpcmVfd29yaywNCj4gPiAtCQkJICAgICAgcm91bmRfamlmZmllc191cF9yZWxh dGl2ZShIWikpOw0KPiA+ICsJcXVldWVfZGVsYXllZF93b3JrKGd0LT5pOTE1LT51bm9yZGVyZWRf d3EsICZndC0+cmVxdWVzdHMucmV0aXJlX3dvcmssDQo+ID4gKwkJCSAgIHJvdW5kX2ppZmZpZXNf dXBfcmVsYXRpdmUoSFopKTsNCj4gPiAgIH0NCj4gPiAgIA0KPiA+ICAgdm9pZCBpbnRlbF9ndF9m aW5pX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9ndCAqZ3QpDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9yZXNldC5jDQo+ID4gaW5kZXggMTk1ZmY3MmQ3YTE0Li5lMjE1MmY3NWJhMmUgMTAw NjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYw0KPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMNCj4gPiBAQCAtMTYy NSw3ICsxNjI1LDcgQEAgdm9pZCBfX2ludGVsX2luaXRfd2VkZ2Uoc3RydWN0IGludGVsX3dlZGdl X21lICp3LA0KPiA+ICAgCXctPm5hbWUgPSBuYW1lOw0KPiA+ICAgDQo+ID4gICAJSU5JVF9ERUxB WUVEX1dPUktfT05TVEFDSygmdy0+d29yaywgaW50ZWxfd2VkZ2VfbWUpOw0KPiA+IC0Jc2NoZWR1 bGVfZGVsYXllZF93b3JrKCZ3LT53b3JrLCB0aW1lb3V0KTsNCj4gPiArCXF1ZXVlX2RlbGF5ZWRf d29yayhndC0+aTkxNS0+dW5vcmRlcmVkX3dxLCAmdy0+d29yaywgdGltZW91dCk7DQo+ID4gICB9 DQo+ID4gICANCj4gPiAgIHZvaWQgX19pbnRlbF9maW5pX3dlZGdlKHN0cnVjdCBpbnRlbF93ZWRn ZV9tZSAqdykNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf cnBzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ycHMuYw0KPiA+IGluZGV4IGU2 OGE5OTIwNTU5OS4uZTkyZTYyNmQ0OTk0IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX3Jwcy5jDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfcnBzLmMNCj4gPiBAQCAtNzMsMTMgKzczLDE0IEBAIHN0YXRpYyB2b2lkIHNldChzdHJ1 Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUsIGk5MTVfcmVnX3QgcmVnLCB1MzIgdmFsKQ0KPiA+ICAg c3RhdGljIHZvaWQgcnBzX3RpbWVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KQ0KPiA+ICAgew0KPiA+ ICAgCXN0cnVjdCBpbnRlbF9ycHMgKnJwcyA9IGZyb21fdGltZXIocnBzLCB0LCB0aW1lcik7DQo+ ID4gKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gcnBzX3RvX2d0KHJwcyk7DQo+ID4gICAJc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOw0KPiA+ICAgCWt0aW1lX3QgZHQsIGxhc3QsIHRpbWVz dGFtcDsNCj4gPiAgIAllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsNCj4gPiAgIAlzNjQgbWF4X2J1 c3lbM10gPSB7fTsNCj4gPiAgIA0KPiA+ICAgCXRpbWVzdGFtcCA9IDA7DQo+ID4gLQlmb3JfZWFj aF9lbmdpbmUoZW5naW5lLCBycHNfdG9fZ3QocnBzKSwgaWQpIHsNCj4gPiArCWZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGd0LCBpZCkgew0KPiA+ICAgCQlzNjQgYnVzeTsNCj4gPiAgIAkJaW50IGk7 DQo+ID4gICANCj4gPiBAQCAtMTIzLDcgKzEyNCw3IEBAIHN0YXRpYyB2b2lkIHJwc190aW1lcihz dHJ1Y3QgdGltZXJfbGlzdCAqdCkNCj4gPiAgIA0KPiA+ICAgCQkJYnVzeSArPSBkaXZfdTY0KG1h eF9idXN5W2ldLCAxIDw8IGkpOw0KPiA+ICAgCQl9DQo+ID4gLQkJR1RfVFJBQ0UocnBzX3RvX2d0 KHJwcyksDQo+ID4gKwkJR1RfVFJBQ0UoZ3QsDQo+ID4gICAJCQkgImJ1c3k6JWxsZCBbJWQlJV0s IG1heDpbJWxsZCwgJWxsZCwgJWxsZF0sIGludGVydmFsOiVkXG4iLA0KPiA+ICAgCQkJIGJ1c3ks IChpbnQpZGl2NjRfdTY0KDEwMCAqIGJ1c3ksIGR0KSwNCj4gPiAgIAkJCSBtYXhfYnVzeVswXSwg bWF4X2J1c3lbMV0sIG1heF9idXN5WzJdLA0KPiA+IEBAIC0xMzMsMTIgKzEzNCwxMiBAQCBzdGF0 aWMgdm9pZCBycHNfdGltZXIoc3RydWN0IHRpbWVyX2xpc3QgKnQpDQo+ID4gICAJCSAgICBycHMt PmN1cl9mcmVxIDwgcnBzLT5tYXhfZnJlcV9zb2Z0bGltaXQpIHsNCj4gPiAgIAkJCXJwcy0+cG1f aWlyIHw9IEdFTjZfUE1fUlBfVVBfVEhSRVNIT0xEOw0KPiA+ICAgCQkJcnBzLT5wbV9pbnRlcnZh bCA9IDE7DQo+ID4gLQkJCXNjaGVkdWxlX3dvcmsoJnJwcy0+d29yayk7DQo+ID4gKwkJCXF1ZXVl X3dvcmsoZ3QtPmk5MTUtPnVub3JkZXJlZF93cSwgJnJwcy0+d29yayk7DQo+ID4gICAJCX0gZWxz ZSBpZiAoMTAwICogYnVzeSA8IHJwcy0+cG93ZXIuZG93bl90aHJlc2hvbGQgKiBkdCAmJg0KPiA+ ICAgCQkJICAgcnBzLT5jdXJfZnJlcSA+IHJwcy0+bWluX2ZyZXFfc29mdGxpbWl0KSB7DQo+ID4g ICAJCQlycHMtPnBtX2lpciB8PSBHRU42X1BNX1JQX0RPV05fVEhSRVNIT0xEOw0KPiA+ICAgCQkJ cnBzLT5wbV9pbnRlcnZhbCA9IDE7DQo+ID4gLQkJCXNjaGVkdWxlX3dvcmsoJnJwcy0+d29yayk7 DQo+ID4gKwkJCXF1ZXVlX3dvcmsoZ3QtPmk5MTUtPnVub3JkZXJlZF93cSwgJnJwcy0+d29yayk7 DQo+ID4gICAJCX0gZWxzZSB7DQo+ID4gICAJCQlycHMtPmxhc3RfYWRqID0gMDsNCj4gPiAgIAkJ fQ0KPiA+IEBAIC05NzMsNyArOTc0LDcgQEAgc3RhdGljIGludCBycHNfc2V0X2Jvb3N0X2ZyZXEo c3RydWN0IGludGVsX3JwcyAqcnBzLCB1MzIgdmFsKQ0KPiA+ICAgCX0NCj4gPiAgIAltdXRleF91 bmxvY2soJnJwcy0+bG9jayk7DQo+ID4gICAJaWYgKGJvb3N0KQ0KPiA+IC0JCXNjaGVkdWxlX3dv cmsoJnJwcy0+d29yayk7DQo+ID4gKwkJcXVldWVfd29yayhycHNfdG9fZ3QocnBzKS0+aTkxNS0+ dW5vcmRlcmVkX3dxLCAmcnBzLT53b3JrKTsNCj4gPiAgIA0KPiA+ICAgCXJldHVybiAwOw0KPiA+ ICAgfQ0KPiA+IEBAIC0xMDI1LDcgKzEwMjYsOCBAQCB2b2lkIGludGVsX3Jwc19ib29zdChzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpycSkNCj4gPiAgIAkJCWlmICghYXRvbWljX2ZldGNoX2luYygmc2xw Yy0+bnVtX3dhaXRlcnMpKSB7DQo+ID4gICAJCQkJR1RfVFJBQ0UocnBzX3RvX2d0KHJwcyksICJi b29zdCBmZW5jZTolbGx4OiVsbHhcbiIsDQo+ID4gICAJCQkJCSBycS0+ZmVuY2UuY29udGV4dCwg cnEtPmZlbmNlLnNlcW5vKTsNCj4gPiAtCQkJCXNjaGVkdWxlX3dvcmsoJnNscGMtPmJvb3N0X3dv cmspOw0KPiA+ICsJCQkJcXVldWVfd29yayhycHNfdG9fZ3QocnBzKS0+aTkxNS0+dW5vcmRlcmVk X3dxLA0KPiA+ICsJCQkJCSAgICZzbHBjLT5ib29zdF93b3JrKTsNCj4gPiAgIAkJCX0NCj4gPiAg IA0KPiA+ICAgCQkJcmV0dXJuOw0KPiA+IEBAIC0xMDQxLDcgKzEwNDMsNyBAQCB2b2lkIGludGVs X3Jwc19ib29zdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkNCj4gPiAgIAkJCSBycS0+ZmVuY2Uu Y29udGV4dCwgcnEtPmZlbmNlLnNlcW5vKTsNCj4gPiAgIA0KPiA+ICAgCQlpZiAoUkVBRF9PTkNF KHJwcy0+Y3VyX2ZyZXEpIDwgcnBzLT5ib29zdF9mcmVxKQ0KPiA+IC0JCQlzY2hlZHVsZV93b3Jr KCZycHMtPndvcmspOw0KPiA+ICsJCQlxdWV1ZV93b3JrKHJwc190b19ndChycHMpLT5pOTE1LT51 bm9yZGVyZWRfd3EsICZycHMtPndvcmspOw0KPiA+ICAgDQo+ID4gICAJCVdSSVRFX09OQ0UocnBz LT5ib29zdHMsIHJwcy0+Ym9vc3RzICsgMSk7IC8qIGRlYnVnIG9ubHkgKi8NCj4gPiAgIAl9DQo+ ID4gQEAgLTE5MDAsNyArMTkwMiw3IEBAIHZvaWQgZ2VuMTFfcnBzX2lycV9oYW5kbGVyKHN0cnVj dCBpbnRlbF9ycHMgKnJwcywgdTMyIHBtX2lpcikNCj4gPiAgIAlnZW42X2d0X3BtX21hc2tfaXJx KGd0LCBldmVudHMpOw0KPiA+ICAgDQo+ID4gICAJcnBzLT5wbV9paXIgfD0gZXZlbnRzOw0KPiA+ IC0Jc2NoZWR1bGVfd29yaygmcnBzLT53b3JrKTsNCj4gPiArCXF1ZXVlX3dvcmsoZ3QtPmk5MTUt PnVub3JkZXJlZF93cSwgJnJwcy0+d29yayk7DQo+ID4gICB9DQo+ID4gICANCj4gPiAgIHZvaWQg Z2VuNl9ycHNfaXJxX2hhbmRsZXIoc3RydWN0IGludGVsX3JwcyAqcnBzLCB1MzIgcG1faWlyKQ0K PiA+IEBAIC0xOTE3LDcgKzE5MTksNyBAQCB2b2lkIGdlbjZfcnBzX2lycV9oYW5kbGVyKHN0cnVj dCBpbnRlbF9ycHMgKnJwcywgdTMyIHBtX2lpcikNCj4gPiAgIAkJZ2VuNl9ndF9wbV9tYXNrX2ly cShndCwgZXZlbnRzKTsNCj4gPiAgIAkJcnBzLT5wbV9paXIgfD0gZXZlbnRzOw0KPiA+ICAgDQo+ ID4gLQkJc2NoZWR1bGVfd29yaygmcnBzLT53b3JrKTsNCj4gPiArCQlxdWV1ZV93b3JrKGd0LT5p OTE1LT51bm9yZGVyZWRfd3EsICZycHMtPndvcmspOw0KPiA+ICAgCQlzcGluX3VubG9jayhndC0+ aXJxX2xvY2spOw0KPiA+ICAgCX0NCj4gPiAgIA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3NlbGZ0ZXN0X2VuZ2luZV9jcy5jDQo+ID4gaW5kZXggNTQyY2U2ZDJkZTE5Li43OGNkZmM2 ZjMxNWYgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rf ZW5naW5lX2NzLmMNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9l bmdpbmVfY3MuYw0KPiA+IEBAIC0yNyw3ICsyNyw3IEBAIHN0YXRpYyB2b2lkIHBlcmZfYmVnaW4o c3RydWN0IGludGVsX2d0ICpndCkNCj4gPiAgIA0KPiA+ICAgCS8qIEJvb3N0IGdwdWZyZXEgdG8g bWF4IFt3YWl0Ym9vc3RdIGFuZCBrZWVwIGl0IGZpeGVkICovDQo+ID4gICAJYXRvbWljX2luYygm Z3QtPnJwcy5udW1fd2FpdGVycyk7DQo+ID4gLQlzY2hlZHVsZV93b3JrKCZndC0+cnBzLndvcmsp Ow0KPiA+ICsJcXVldWVfd29yayhndC0+aTkxNS0+dW5vcmRlcmVkX3dxLCAmZ3QtPnJwcy53b3Jr KTsNCj4gPiAgIAlmbHVzaF93b3JrKCZndC0+cnBzLndvcmspOw0KPiA+ICAgfQ0KPiA+ICAgDQo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJpdmVyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RyaXZlci5jDQo+ID4gaW5kZXggNTIyNzMzYTg5OTQ2Li44 ODgwOGFhODViMjYgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cml2ZXIuYw0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJpdmVyLmMNCj4g PiBAQCAtMTMyLDggKzEzMiwxOCBAQCBzdGF0aWMgaW50IGk5MTVfd29ya3F1ZXVlc19pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikNCj4gPiAgIAlpZiAoZGV2X3ByaXYtPmRp c3BsYXkuaG90cGx1Zy5kcF93cSA9PSBOVUxMKQ0KPiA+ICAgCQlnb3RvIG91dF9mcmVlX3dxOw0K PiA+ICAgDQo+ID4gKwkvKg0KPiA+ICsJICogVGhlIHVub3JkZXJlZCBpOTE1IHdvcmtxdWV1ZSBz aG91bGQgYmUgdXNlZCBmb3IgYWxsIHdvcmsNCj4gPiArCSAqIHNjaGVkdWxpbmcgdGhhdCBkbyBu b3QgcmVxdWlyZSBydW5uaW5nIGluIG9yZGVyLg0KPiA+ICsJICovDQo+IA0KPiBIYS1oYS4gTmlj ZSBjb3Agb3V0LiA7KSBCdXQgb2theSwgbm93IHRoYXQgd2UgaGF2ZSB0d28gd2UgZG9uJ3Qga25v dyANCj4gd2hlbiB0byB1c2UgZWFjaCB0aGF0IHdlbGwgc28gbm90IGZhaXIgb24geW91IHRvIGZp Z3VyZSBpdCBvdXQuDQoNCjpEDQoNClRvIGJlIGhvbmVzdCwgSSBsb29rZWQgYXQgYWxsIHRoZSBl eGlzdGluZyB1c2VycyBhbmQgZGVzY3JpYmVkIHByZXR0eQ0KbXVjaCB3aGF0IGlzIGhhcHBlbmlu Zy4gIEFzIGZhciBhcyBJIGNvdWxkIHRlbGwsIHNvbWVvbmUgc3RhcnRlZCB1c2luZw0KdGhlIHN5 c3RlbSBxdWV1ZSBhIGxvbmcgdGltZSBhZ28gYW5kLCBpbiBsYWNrIG9mIGJldHRlciBhbHRlcm5h dGl2ZXMsDQpldmVyeW9uZSBlbHNlIHdobyBuZWVkZWQgYSB3b3JrIGZvbGxvd2VkIHRoYXQuICBT byB0aGUgbmV3IHF1ZXVlIGlzDQppbmRlZWQgYSBjYXRjaCBhbGwgZm9yIG5vbi1vcmRlcmVkIHF1 ZXVlcyBhdCB0aGUgbW9tZW50IChpbiBwcmV0dHkgbXVjaA0KdGhlIHNhbWUgd2F5IGFzIHRoZSBz eXN0ZW0gcXVldWUgd2FzIGJlZm9yZSkuLi4NCg0KQWRkaXRpb25hbGx5LCBJIGRvbid0IGtub3cg YWxsIHRoZSBjdXJyZW50IHVzZXJzIHdlbGwsIHNpbmNlIHRoZXkgYXJlDQpldmVyeXdoZXJlLCBh bmQgSSBkb24ndCB0aGluayB0aGVyZSBoYXMgYmVlbiBhIHNwZWNpZmljIHJ1bGUgd2hlbiB0bw0K dXNlIHRoZSBzeXN0ZW0gcXVldWUgYmVmb3JlLg0KDQpJJ20gdG90YWxseSBvcGVuIGZvciBiZXR0 ZXIgZGVzY3JpcHRpb25zLiA6KQ0KDQoNCj4gPiArCWRldl9wcml2LT51bm9yZGVyZWRfd3EgPSBh bGxvY193b3JrcXVldWUoImk5MTUtdW5vcmRlcmVkIiwgMCwgMCk7DQo+ID4gKwlpZiAoZGV2X3By aXYtPnVub3JkZXJlZF93cSA9PSBOVUxMKQ0KPiA+ICsJCWdvdG8gb3V0X2ZyZWVfZHBfd3E7DQo+ ID4gKw0KPiA+ICAgCXJldHVybiAwOw0KPiA+ICAgDQo+ID4gK291dF9mcmVlX2RwX3dxOg0KPiA+ ICsJZGVzdHJveV93b3JrcXVldWUoZGV2X3ByaXYtPnVub3JkZXJlZF93cSk7DQo+IA0KPiBXcm9u ZyB3cS4NCg0KT3VjaC4gIEdvb2QgY2F0Y2guDQoNCg0KPiA+ICAgb3V0X2ZyZWVfd3E6DQo+ID4g ICAJZGVzdHJveV93b3JrcXVldWUoZGV2X3ByaXYtPndxKTsNCj4gPiAgIG91dF9lcnI6DQo+ID4g QEAgLTE0NCw2ICsxNTQsNyBAQCBzdGF0aWMgaW50IGk5MTVfd29ya3F1ZXVlc19pbml0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikNCj4gPiAgIA0KPiA+ICAgc3RhdGljIHZvaWQg aTkxNV93b3JrcXVldWVzX2NsZWFudXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQ0KPiA+ICAgew0KPiA+ICsJZGVzdHJveV93b3JrcXVldWUoZGV2X3ByaXYtPnVub3JkZXJlZF93 cSk7DQo+ID4gICAJZGVzdHJveV93b3JrcXVldWUoZGV2X3ByaXYtPmRpc3BsYXkuaG90cGx1Zy5k cF93cSk7DQo+ID4gICAJZGVzdHJveV93b3JrcXVldWUoZGV2X3ByaXYtPndxKTsNCj4gPiAgIH0N Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgNCj4gPiBpbmRleCAxNGM1MzM4Yzk2YTYuLjhmMjY2 NWU4YWZiNSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o DQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiA+IEBAIC0yNTks NiArMjU5LDE0IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsNCj4gPiAgIAkgKi8NCj4gPiAg IAlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqd3E7DQo+ID4gICANCj4gPiArCS8qKg0KPiA+ICsJ ICogdW5vcmRlcmVkX3dxIC0gaW50ZXJuYWwgd29ya3F1ZXVlIGZvciB1bm9yZGVyZWQgd29yaw0K PiA+ICsJICoNCj4gPiArCSAqIFRoaXMgd29ya3F1ZXVlIHNob3VsZCBiZSB1c2VkIGZvciBhbGwg dW5vcmRlcmVkIHdvcmsNCj4gPiArCSAqIHNjaGVkdWxpbmcgd2l0aGluIGk5MTUuDQo+IA0KPiBQ cm9hYmx5IGFkZCBzb21ldGhpbmcgbGlrZSAiLCB3aGljaCB1c2VkIHRvIGJlIHNjaGVkdWxlZCBv biB0aGUgDQo+IHN5c3RlbV93cSBiZWZvcmUgbW92aW5nIHRvIGEgZHJpdmVyIGluc3RhbmNlIGR1 ZSBkZXByZWNhdGlvbiBvZg0KPiBmbHVzaF9zY2hlZHVsZWRfd29yaygpLiINCg0KSSBkaWQgc3Rh cnQgd3JpdGluZyBzb21ldGhpbmcgbGlrZSB0aGF0LCBidXQgdGhlbiBJIHRob3VnaHQgdGhhdCwg aW4NCnRoZSBjb2RlLCB3cml0aW5nIGFib3V0IHRoZSBoaXN0b3J5IG9mIHRoZSBpbXBsZW1lbnRh dGlvbiBkb2Vzbid0IGFkZA0KbXVjaC4gIFdlIGhhdmUgdGhlIGdpdCBsb2cgZm9yIHRoYXQuICBC dXQsIG9idmlvdXNseSwgSSBjYW4gYWRkIHRoYXQgaWYNCnlvdSB3YW50Lg0KDQoNCj4gVGhhdCB3 YXkgd2UgbGVhdmUgc29tZSBub3RlIHRvIHRoZSByZWFkZXIuDQo+IA0KPiA+ICsJICovDQo+ID4g KwlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqdW5vcmRlcmVkX3dxOw0KPiA+ICsNCj4gPiAgIAkv KiBwbSBwcml2YXRlIGNsb2NrIGdhdGluZyBmdW5jdGlvbnMgKi8NCj4gPiAgIAljb25zdCBzdHJ1 Y3QgZHJtX2k5MTVfY2xvY2tfZ2F0aW5nX2Z1bmNzICpjbG9ja19nYXRpbmdfZnVuY3M7DQo+ID4g ICANCj4gPiBAQCAtOTMwLDUgKzkzOCw0IEBAIElTX1NVQlBMQVRGT1JNKGNvbnN0IHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1LA0KPiA+ICAgDQo+ID4gICAjZGVmaW5lIEhBU19MTUVNQkFS X1NNRU1fU1RPTEVOKGk5MTUpICghSEFTX0xNRU0oaTkxNSkgJiYgXA0KPiA+ICAgCQkJCSAgICAg ICBHUkFQSElDU19WRVJfRlVMTChpOTE1KSA+PSBJUF9WRVIoMTIsIDcwKSkNCj4gPiAtDQo+IA0K PiBUaWR5IGlmIHlvdSBjYW4gcGxlYXNlLg0KDQpPb3BzIQ0KDQoNCj4gPiAgICNlbmRpZg0KPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jDQo+ID4gaW5kZXggNjMwYTczMmFhZWNjLi44 OTQwNjhiYjM3YjYgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZXF1ZXN0LmMNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYw0K PiA+IEBAIC0yOTAsNyArMjkwLDcgQEAgc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IF9fcnFf d2F0Y2hkb2dfZXhwaXJlZChzdHJ1Y3QgaHJ0aW1lciAqaHJ0aW1lcikNCj4gPiAgIA0KPiA+ICAg CWlmICghaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChycSkpIHsNCj4gPiAgIAkJaWYgKGxsaXN0X2Fk ZCgmcnEtPndhdGNoZG9nLmxpbmssICZndC0+d2F0Y2hkb2cubGlzdCkpDQo+ID4gLQkJCXNjaGVk dWxlX3dvcmsoJmd0LT53YXRjaGRvZy53b3JrKTsNCj4gPiArCQkJcXVldWVfd29yayhndC0+aTkx NS0+dW5vcmRlcmVkX3dxLCAmZ3QtPndhdGNoZG9nLndvcmspOw0KPiA+ICAgCX0gZWxzZSB7DQo+ ID4gICAJCWk5MTVfcmVxdWVzdF9wdXQocnEpOw0KPiA+ICAgCX0NCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd2FrZXJlZi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfd2FrZXJlZi5jDQo+ID4gaW5kZXggNDBhYWZlNjc2MDE3Li40OTdlYTIxYTM0N2Ug MTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd2FrZXJlZi5jDQo+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd2FrZXJlZi5jDQo+ID4gQEAgLTc1 LDcgKzc1LDcgQEAgdm9pZCBfX2ludGVsX3dha2VyZWZfcHV0X2xhc3Qoc3RydWN0IGludGVsX3dh a2VyZWYgKndmLCB1bnNpZ25lZCBsb25nIGZsYWdzKQ0KPiA+ICAgDQo+ID4gICAJLyogQXNzdW1l IHdlIGFyZSBub3QgaW4gcHJvY2VzcyBjb250ZXh0IGFuZCBzbyBjYW5ub3Qgc2xlZXAuICovDQo+ ID4gICAJaWYgKGZsYWdzICYgSU5URUxfV0FLRVJFRl9QVVRfQVNZTkMgfHwgIW11dGV4X3RyeWxv Y2soJndmLT5tdXRleCkpIHsNCj4gPiAtCQltb2RfZGVsYXllZF93b3JrKHN5c3RlbV93cSwgJndm LT53b3JrLA0KPiA+ICsJCW1vZF9kZWxheWVkX3dvcmsod2YtPmk5MTUtPndxLCAmd2YtPndvcmss DQo+ID4gICAJCQkJIEZJRUxEX0dFVChJTlRFTF9XQUtFUkVGX1BVVF9ERUxBWSwgZmxhZ3MpKTsN Cj4gPiAgIAkJcmV0dXJuOw0KPiA+ICAgCX0NCj4gDQo+IFBlbmRpbmcgdGhlIG9uZSBvciB0d28g ZGV0YWlscyB0aGUgbm9uLWRpc3BsYXkgcGFydHMgbG9vayBnb29kIHRvIG1lLg0KDQpHcmVhdCwg dGhhbmtzISBJJ2xsIHNlbmQgYSBuZXcgdmVyc2lvbiBhZGRyZXNzaW5nIHlvdXIgY29tbWVudHMg YW5kDQp3YWl0IGZvciBkaXNwbGF5IHBhcnRzIHJldmlldy4NCg0KLS0NCkNoZWVycywNCkx1Y2Eu DQo=