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 658AFC4828D for ; Tue, 6 Feb 2024 20:08:41 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 12D9E10E712; Tue, 6 Feb 2024 20:08:41 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="TYA0Zpsv"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.9]) by gabe.freedesktop.org (Postfix) with ESMTPS id 92FD110E712 for ; Tue, 6 Feb 2024 20:08:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1707250119; x=1738786119; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=1E1eXa6o/C50Fe3OY2nekS6jxUSZyTu2AB2Q2QR65UM=; b=TYA0ZpsvPTQ7By3UxtahncLEQmHhjSiOejdnL3BYBBOL8mlCPCj+dEVq trFsQ7OyXOpM+GV3/nebAv6KBgjVr+AmiqcCsCGrnUEz3ZSp5HgBKpzrq STLsde8jiiUISTAEnTf/a7rvyYnc/Wwwd6CA4rVFedpFQKHcdHxR9TV8u xSxom+QfjsC2NwlIBuxHdRVOdXKbPPXd412hox+eqJXrPysjibzgZ6/GR Ue9w9+2cH86kuO6P0AUKI0k6LedhhAIDsstfvF5ar3JZT3LynotxprJuh VJeR91XcUtd2cDKvVMlwlpt6TGBNxEjMAlfRZXLJp50dhd8zQatRmxbHo Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10976"; a="11570757" X-IronPort-AV: E=Sophos;i="6.05,248,1701158400"; d="scan'208";a="11570757" Received: from fmviesa004.fm.intel.com ([10.60.135.144]) by fmvoesa103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Feb 2024 12:08:36 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.05,248,1701158400"; d="scan'208";a="5731653" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmviesa004.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 06 Feb 2024 12:08:36 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) 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.35; Tue, 6 Feb 2024 12:08:35 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Tue, 6 Feb 2024 12:08:35 -0800 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.168) 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.35; Tue, 6 Feb 2024 12:08:35 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B+UxIOu0acZnxtBE3kDuuM+f/u7NkA1znTvxXStJydgp1gTvAo+iQr0a5AIcWtUymZs/B3lFkiHstAEJBniUdhwjUlzoG19w9KGtSepRGDOQfR392wnaID6xHnGJ5zQAt8bi5QRzJpo5w++pHW4nNCSKRTE2VV9XhNstIInSLf2/O2+JDQEQ7b6I07oEcgymB0k668qrLvZ8upGEV5hd4FHQuGTPzBEJb4ElJ4/5eY3Bgmf15rulGy2IlWj0B7Uy5ByX6vrRYwStYYYidb0I5s6ieY0zAJFMT9cHebga7mP38ilYP05O9sCb6u0stTWFmRJIl4cz1gb67HZ4pSEp5Q== 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=1E1eXa6o/C50Fe3OY2nekS6jxUSZyTu2AB2Q2QR65UM=; b=g/W7/7iByNCTvLIt86wQ+q+8GEAE1AWINQaUJQ3zYAmYgxmoXyEYvw9Zf9BaprWmQTdJqIpfp+4ut4ZF6PLqy/aeaCGx9LR5dqcv1gmJFAW5jHEIPQs6jTNOMXr202X+H+n2OEDV+wrADSwIehgKz3oYjr2lifJGnRvqbGCdu+N++5b9rJvYO2mwugJ1PMqulfkRuREHh8OoDTGjGhXJbZ6X6234vkG+d7d1UUP0dhiFz+FSS3BsUhvQW2wk3trnIaqb4NO3lOaPclQ7U9FizlieK+VkGUFqmGH1OVmMOjYQpcohF7kVy88sIMx7nhTJIUV7ZKdCWm1jhuyyY/yBfw== 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 DM4PR11MB8179.namprd11.prod.outlook.com (2603:10b6:8:18e::22) by SJ0PR11MB6814.namprd11.prod.outlook.com (2603:10b6:a03:483::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7249.36; Tue, 6 Feb 2024 20:08:32 +0000 Received: from DM4PR11MB8179.namprd11.prod.outlook.com ([fe80::f3a9:7ba0:d19a:a630]) by DM4PR11MB8179.namprd11.prod.outlook.com ([fe80::f3a9:7ba0:d19a:a630%7]) with mapi id 15.20.7249.035; Tue, 6 Feb 2024 20:08:32 +0000 From: "Souza, Jose" To: "intel-xe@lists.freedesktop.org" , "maarten.lankhorst@linux.intel.com" Subject: Re: [PATCH v3.1] drm/xe: Implement VM snapshot support for BO's and userptr Thread-Topic: [PATCH v3.1] drm/xe: Implement VM snapshot support for BO's and userptr Thread-Index: AQHaVimHtmeVHNKr4k6QH61l1/WavrD79XYAgABECwCAAYqsgA== Date: Tue, 6 Feb 2024 20:08:32 +0000 Message-ID: <9aecff32333d8a0a533bc17ffe24577a44f7eed4.camel@intel.com> References: <20240202224052.848867-4-maarten.lankhorst@linux.intel.com> <20240202224514.855946-1-maarten.lankhorst@linux.intel.com> <41fa06d2fa3c3de1fe09b1cbdea9745dec9e8424.camel@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR11MB8179:EE_|SJ0PR11MB6814:EE_ x-ms-office365-filtering-correlation-id: 9ee6ec0f-a970-4dae-165f-08dc274f648f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 4IEZINOfSrYjt5+OWIIUlOuDACOJFx00rvlugro8TGbWKwX8F0uVDpSbiPTIHlXJ1Iv77C9PlEwIY0XtNjvLQ2pgAg3OlT0lvGeisKSR1Ehgg9KAH13xl1gqHmdNmkv2zIntjIR4OQtUT1ab3sbpHNM6aQCJDl0cbzEuIVmuDJCO/W4/2yF6tvlVKjfKKyJFnDX/5DPGJmsdqcjZNxnWVqu3MaxX5oximEKX17LkyUIMf8Gr1Lp/zjR9xN1YWS539NrDx62KunOdXbXXsgNuJlmzlo2E1CfUsYFdG4uvSuRKRXLCU79lHVNGK4ijgpCXx1L7oa8q4PgRhk4tFsv59g/RoZqeIH+HCsQg4ohTDqa/nU/qn9xCRb3SRCBvXtwp1n85WJeSUH9Y4wTSWr3kIX84B1tJXdgP1IDlY8zow28hLnPfHZc1IPRpRnPnwgI5yh8Vvv1TyyVAfVG2t6MCJ0aX8ITYxCBJfFSmfgartGPU8ved87aJ+B3FI7cgDdtV+h6r/7NHgyc7BtQibhDHC5Oo5pMeOZ+uP7YAIDgSYnW3pVu7VsrpnsYUBRkbCr/VjYLTXu7QC3ussGFIzXivwfDCMUs02n8YLaMxOcc+5oY= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB8179.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(136003)(396003)(366004)(346002)(39860400002)(376002)(230922051799003)(230273577357003)(64100799003)(451199024)(186009)(1800799012)(41300700001)(83380400001)(8936002)(966005)(76116006)(6486002)(66556008)(66476007)(66446008)(36756003)(6506007)(6512007)(110136005)(45080400002)(66946007)(64756008)(478600001)(71200400001)(8676002)(38070700009)(316002)(38100700002)(26005)(2616005)(122000001)(86362001)(82960400001)(5660300002)(30864003)(2906002)(579004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZUlLT3pKR3NTQUN4WlpZUEpkdG4xKzI2NmxmbVhpcEtha3NkelRZbzR1M1Bk?= =?utf-8?B?OG5zd0wrVFllbDJES1pqTnJ5OEp2TW9GUVE4Y0hTVVk2K0ZXQ2dEbEZ2ZmpM?= =?utf-8?B?N3VYay9VajhiOXBPc3hkOXBiVFZuMmhGVE9Qblg1ZUlva0x3MFJDTk0yYktD?= =?utf-8?B?SmFYZlN2WHRHZ1d5YU5YZTVYNlNSNkRMMFhBZDZEbWNZWnREZSsreVRmY0VI?= =?utf-8?B?Uld3MEJ3dGxpSzRoZTVrNnFTNU8xZFlJT1dZaXBZWUpiNENORkJNY0tQbVdC?= =?utf-8?B?WjlwZTRSR2hwYmJMK0pqbWE4Z2hMb0tiTkV1Qjl5R25VVEJRRi9QeDUvWHNI?= =?utf-8?B?dERBVFh5aTRZSmNkYStVUFRCRXBsTGkvRXdLaDIwcWFhWEVtZUhrUHhRR1Z0?= =?utf-8?B?NEFnb2NlNlBpTHBuL3hwbzV6UEhPbXJyN1JXRm96dDRCb0FWUWx0ZlFJd0FK?= =?utf-8?B?a3VOMVFKY1YxUlJqQkFXSXFsQ0xPM0wvcjl2UVFWWFk5Qk1NbC9zZ3FjQVVT?= =?utf-8?B?OUVUZjdpMC9ieHBrc2FDV3ZUQ2VZL2FEQThMeGh6TkVLdDdMQkx2bUR6NDY4?= =?utf-8?B?c3RQM3BYRFlRQTh0cGlHOWR3VVdwZnUxSGE0MG84N2JKOFI5NWp0aVJOUjBr?= =?utf-8?B?ajJ3T2VrM3VGRWdqdzdudXJablp3YnJyeHVObjFVZDNwZVhHczlBRXF1SHp3?= =?utf-8?B?YWdjcWNoMXRUVHhpYnAzTER6UThwdCtjMXIwQ3ZLVVZJZkUxOEdvbGxadnRy?= =?utf-8?B?SkVselpVZjBlVFZvYThlMTFyWFF5dFE2dFBWV1pwdjdCeExvMDlsVFVXbzFq?= =?utf-8?B?a2YwbmtZN2xGRUViUzJXay9uZDFMWHdUSWVZcEE4bkNkOVU0MUlHL1JBL3lI?= =?utf-8?B?UHdnVEtBTURuT200YURHYU9ieGp6YnlvcjRtSU9tL0JBejZRekVXZlpobmkv?= =?utf-8?B?TXpGZjBTRUVDL01TZEhEVG9LN0puM1FNMTR5cnlYZUZnUzBHN1NsR3dKMklm?= =?utf-8?B?UGQ2MlRBcGtJdmI4dEdmejlqVzFYa3JYR3BmeENWRnJBazEvZWlBM1pabmYx?= =?utf-8?B?YUhxZTJkakcxY2hrTENLbVJCcU9oSU5ad1ZPNHRaQzFNRWFJSUpVdjlJUVhK?= =?utf-8?B?SGJrbEtnVUtXR0hiS09KbVhtOEhtV3MyMGJEUlJJY2ltSzY4MVF4Tk5Dd2F5?= =?utf-8?B?OXlZM3dzbU1jMkxLV0s4MnNmdjVrOGlIV1NTZHNydEJxcUFvOExTaWxDUFo5?= =?utf-8?B?UTBXaWZ4dzQxTUxBWmY3UnVMWVhHNTlDc3YveUFCSlNsV2JTeG9ma0pocDZw?= =?utf-8?B?WVVNUGJ6L1RDenl5K2FpZkRhQ21vNlZSWnpzaFRvMXBFSVpJbVpkeEI1bno1?= =?utf-8?B?SU1jTXpweFgrOVN6OTRLT0E2RE5CYVZoTHYwOFBHdUkvQ0FjbUprUVFnR1VK?= =?utf-8?B?V3gyc2hLU0pkSzNaQmtUdVQyalVEUnpGYlkwc1c4VkY1dnVoTmNabFVPVzkx?= =?utf-8?B?SFBqZnozR2VxdUR5aGdjN2hHRVdPUGpXbWo2cTI1c1p5NUZDN00zVDUzMmRT?= =?utf-8?B?dXlVMjRDNFVMRlZIMitxcGVTMFhjY0lLeWdmd3FQbnVBaklvWjFobVBRbFhi?= =?utf-8?B?d1lBZFcvcC8yY1B2TWUyWFhjWEx1bTNxalFIZURQb1Y2TmdiWVpzbEdZZm1G?= =?utf-8?B?bkNxaGdPVjU3YXFvQkt2T2hGMDl4aVVyNTlMQ24yWWUzMU1TRFZZM09aUDIv?= =?utf-8?B?UzVLTyt4SFZ4UFdHQ3krek1MdkZLZkVIemw1YXA2YXJ4WEMyY3M3a09ldkVl?= =?utf-8?B?YnpMYUJNU1VhbElIZGtDYzh4VFlpUk9EZllIcGpyRHVBa29zVGpPVllaNk5a?= =?utf-8?B?ZFRHSkp0K1RrNi81UUZYVjNCcUh4cVYxVXdXWXVSZXZNY2F6T1pZbU05NHBY?= =?utf-8?B?dWNIMHF0ZFB5bUdqRi9zcUZjR2dhRkl4aHNYK2tQQS9YQkxldlI2dE1zUFE3?= =?utf-8?B?WW56a1V1bmZrT05HUWYwMUswa2U1Sy8xT25uZThiZTVhdWtDT1BnMzJndjRk?= =?utf-8?B?a1hPYTZTbUJHb1QxbDFwUmQwT0dxVGlOTFlTbVp1TzFoTlpkTHVWZzIrWVNx?= =?utf-8?B?aWFFWndDQ1JNSG54SHJCcG1rRFdzTVNTdVE1cEhJY2l1d3BHUGo0YlNGSWdH?= =?utf-8?B?cWc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <9B95A32AB377734CBA60252B61DAB68C@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB8179.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ee6ec0f-a970-4dae-165f-08dc274f648f X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Feb 2024 20:08:32.2336 (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: efgA2dPegFpO8cd3BJn0Tzx8j8CMdBeLRhMzeQ/joyWjAXv1mfoXnLR5/AW+jAMgaSuOAIfE1nfZplTKxT15kg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB6814 X-OriginatorOrg: intel.com X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" T24gTW9uLCAyMDI0LTAyLTA1IGF0IDEyOjM1IC0wODAwLCBKb3PDqSBSb2JlcnRvIGRlIFNvdXph IHdyb3RlOg0KPiBPbiBNb24sIDIwMjQtMDItMDUgYXQgMDg6MzIgLTA4MDAsIEpvc8OpIFJvYmVy dG8gZGUgU291emEgd3JvdGU6DQo+ID4gT24gRnJpLCAyMDI0LTAyLTAyIGF0IDIzOjQ1ICswMTAw LCBNYWFydGVuIExhbmtob3JzdCB3cm90ZToNCj4gPiA+IFNpbmNlIHdlIGNhbm5vdCBpbW1lZGlh dGVseSBjYXB0dXJlIHRoZSBCTydzIGFuZCB1c2VycHRyLCBwZXJmb3JtIGl0IGluDQo+ID4gPiAy IHN0YWdlcy4gVGhlIGltbWVkaWF0ZSBzdGFnZSB0YWtlcyBhIHJlZmVyZW5jZSB0byBlYWNoIEJP IGFuZCB1c2VycHRyLA0KPiA+ID4gd2hpbGUgYSBkZWxheWVkIHdvcmtlciBjYXB0dXJlcyB0aGUg Y29udGVudHMgYW5kIHRoZW4gZnJlZXMgdGhlDQo+ID4gPiByZWZlcmVuY2UuDQo+ID4gPiANCj4g PiA+IFRoaXMgaXMgcmVxdWlyZWQgYmVjYXVzZSBpbiBzaWduYWxpbmcgY29udGV4dCwgbm8gbG9j a3MgY2FuIGJlIHRha2VuLCBubw0KPiA+ID4gbWVtb3J5IGNhbiBiZSBhbGxvY2F0ZWQsIGFuZCBu byB3YWl0cyBvbiB1c2Vyc3BhY2UgY2FuIGJlIHBlcmZvcm1lZC4NCj4gPiA+IA0KPiA+ID4gV2l0 aCB0aGUgZGVsYXllZCB3b3JrZXIsIGFsbCBvZiB0aGlzIGNhbiBiZSBwZXJmb3JtZWQgdmVyeSBl YXNpbHksDQo+ID4gPiB3aXRob3V0IGhhdmluZyB0byByZXNvcnQgdG8gaGFja3MuDQo+ID4gPiAN Cj4gPiA+IENoYW5nZXMgc2luY2UgdjE6DQo+ID4gPiAtIEZpeCBjcmFzaCBvbiBOVUxMIGNhcHR1 cmVkIHZtLg0KPiA+ID4gLSBVc2UgYXNjaWk4NV9lbmNvZGUgdG8gY2FwdHVyZSBCTyBjb250ZW50 cyBhbmQgc2F2ZSBzb21lIHNwYWNlLg0KPiA+ID4gLSBBZGQgbGVuZ3RoIHRvIGNvcmVkdW1wIG91 dHB1dCBmb3IgZWFjaCBjYXB0dXJlZCBhcmVhLg0KPiA+ID4gQ2hhbmdlcyBzaW5jZSB2MjoNCj4g PiA+IC0gRHVtcCBlYWNoIG1hcHBpbmcgb24gdGhlaXIgb3duIGxpbmUsIHRvIHNpbXBsaWZ5IHRv b2xpbmcuDQo+ID4gPiAtIEZpeCBudWxsIHBvaW50ZXIgZGVyZWYgaW4geGVfdm1fc25hcHNob3Rf ZnJlZS4NCj4gPiANCj4gPiANCj4gPiBGaXJzdCBjcmFzaCBkdW1wIHdpdGggcGlnbGl0IGFscmVh ZHkgZ290Og0KPiA+IA0KPiA+IA0KPiA+IFsgICA2NS4wOTc3MzVdIHhlIDAwMDA6MDA6MDIuMDog W2RybTppbnRlbF9wcHNfdmRkX29mZl9zeW5jX3VubG9ja2VkIFt4ZV1dIFtFTkNPREVSOjMwNzpE REkgQS9QSFkgQV0gUFBTIDAgUFBfU1RBVFVTOiAweDgwMDAwMDA4IFBQX0NPTlRST0w6DQo+ID4g MHgwMDAwMDA2Nw0KPiA+IFsgICA2NS4yMzg5NzVdIHhlIDAwMDA6MDA6MDIuMDogW2RybTppbnRl bF9wb3dlcl93ZWxsX2Rpc2FibGUgW3hlXV0gZGlzYWJsaW5nIFBXXzMNCj4gPiBbICAgNjUuMjM5 MDUwXSB4ZSAwMDAwOjAwOjAyLjA6IFtkcm06aW50ZWxfcG93ZXJfd2VsbF9kaXNhYmxlIFt4ZV1d IGRpc2FibGluZyBQV18yDQo+ID4gWyAgMzA1LjIyNTM2M10gbG9vcDA6IGRldGVjdGVkIGNhcGFj aXR5IGNoYW5nZSBmcm9tIDAgdG8gOA0KPiA+IFsgIDQzMC42ODk1NzRdIHhlIDAwMDA6MDA6MDIu MDogW2RybV0gVGltZWRvdXQgam9iOiBzZXFubz00Mjk0OTY3MTY5LCBndWNfaWQ9MiwgZmxhZ3M9 MHg4DQo+ID4gWyAgNDMwLjY4OTkzM10gLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0tLS0t LS0tDQo+ID4gWyAgNDMwLjY4OTk1OF0gREVCVUdfTE9DS1NfV0FSTl9PTihsb2NrLT5tYWdpYyAh PSBsb2NrKQ0KPiA+IFsgIDQzMC42ODk5NjRdIFdBUk5JTkc6IENQVTogNiBQSUQ6IDk0IGF0IGtl cm5lbC9sb2NraW5nL211dGV4LmM6NTg3IF9fbXV0ZXhfbG9jaysweDUwZC8weGI4MA0KPiA+IFsg IDQzMC42OTAwMDddIE1vZHVsZXMgbGlua2VkIGluOiBzbmRfaGRhX2NvZGVjX2hkbWkgc25kX2N0 bF9sZWQgbGVkdHJpZ19hdWRpbyBzbmRfaGRhX2NvZGVjX3JlYWx0ZWsgc25kX2hkYV9jb2RlY19n ZW5lcmljIHhlIGRybV90dG1faGVscGVyIGdwdV9zY2hlZA0KPiA+IGRybV9zdWJhbGxvY19oZWxw ZXIgZHJtX2dwdXZtIGRybV9leGVjIGkyY19hbGdvX2JpdCBkcm1fYnVkZHkgZHJtX2Rpc3BsYXlf aGVscGVyIHR0bSB4ODZfcGtnX3RlbXBfdGhlcm1hbCBtZWlfcHhwIG1laV9oZGNwIGNvcmV0ZW1w IHNuZF9oZGFfaW50ZWwNCj4gPiB3bWlfYm1vZiBjcmN0MTBkaWZfcGNsbXVsIHNuZF9pbnRlbF9k c3BjZmcgY3JjMzJfcGNsbXVsIHNuZF9oZGFfY29kZWMgZTEwMDBlIHZpZGVvIGdoYXNoX2NsbXVs bmlfaW50ZWwgc25kX2h3ZGVwIGt2bV9pbnRlbCBzbmRfaGRhX2NvcmUgcHRwIGkyY19pODAxDQo+ ID4gc25kX3BjbSBwcHNfY29yZSBpMmNfc21idXMgbWVpX21lIG1laSBpbnRlbF9wbWNfY29yZSBp bnRlbF92c2VjIHdtaSBwbXRfdGVsZW1ldHJ5IHBtdF9jbGFzcyBmdXNlDQo+ID4gWyAgNDMwLjY5 MDE2NF0gQ1BVOiA2IFBJRDogOTQgQ29tbToga3dvcmtlci91MTY6MiBOb3QgdGFpbnRlZCA2Ljgu MC1yYzMtemVoLXhlKyAjMTIyMg0KPiA+IFsgIDQzMC42OTAxODhdIEhhcmR3YXJlIG5hbWU6IERl bGwgSW5jLiBMYXRpdHVkZSA1NDIwLzAxTTNNNCwgQklPUyAxLjI3LjAgMDMvMTcvMjAyMw0KPiA+ IFsgIDQzMC42OTAyMTJdIFdvcmtxdWV1ZTogZ3Qtb3JkZXJlZC13cSBkcm1fc2NoZWRfam9iX3Rp bWVkb3V0IFtncHVfc2NoZWRdDQo+ID4gWyAgNDMwLjY5MDIzOV0gUklQOiAwMDEwOl9fbXV0ZXhf bG9jaysweDUwZC8weGI4MA0KPiA+IFsgIDQzMC42OTAyNTRdIENvZGU6IGZmIDg1IGMwIDBmIDg0 IDdkIGZiIGZmIGZmIDhiIDE1IGIyIGVjIGJhIDAwIDg1IGQyIDBmIDg1IDZmIGZiIGZmIGZmIDQ4 IGM3IGM2IGNhIDQ2IDNhIDgyIDQ4IGM3IGM3IDczIGQ2IDM5IDgyIGU4IDczIDE5IDQwIGZmDQo+ ID4gPDBmPiAwYiBlOSA1NSBmYiBmZiBmZiAzMSBjOSAzMSBkMiA0YyA4OSBlNyBlOCA4MCA3ZSA0 NyBmZiA4NCBjMCAwZg0KPiA+IFsgIDQzMC42OTAyOThdIFJTUDogMDAxODpmZmZmYzkwMDAwNWVi YzYwIEVGTEFHUzogMDAwMTAyODINCj4gPiBbICA0MzAuNjkwMzEzXSBSQVg6IDAwMDAwMDAwMDAw MDAwMDAgUkJYOiAwMDAwMDAwMDAwMDAwMDAwIFJDWDogMDAwMDAwMDAwMDAwMDAwMA0KPiA+IFsg IDQzMC42OTAzMzJdIFJEWDogMDAwMDAwMDAwMDAwMDAwMiBSU0k6IDAwMDAwMDAwMDAwMDAwMjcg UkRJOiAwMDAwMDAwMGZmZmZmZmZmDQo+ID4gWyAgNDMwLjY5MDM1Nl0gUkJQOiBmZmZmYzkwMDAw NWViY2YwIFIwODogMDAwMDAwMDBmZmZlZmZmZiBSMDk6IDAwMDAwMDAwMDAwMDAwMDENCj4gPiBb ICA0MzAuNjkwMzc1XSBSMTA6IDAwMDAwMDAwZmZmZWZmZmYgUjExOiBmZmZmODg4Mjg3MDgwMDAw IFIxMjogZmZmZjg4ODI0OTk4ZDRhOA0KPiA+IFsgIDQzMC42OTAzOTRdIFIxMzogMDAwMDAwMDAw MDAwMDAwMCBSMTQ6IGZmZmY4ODgyNDk5OGQwMzggUjE1OiBmZmZmODg4MTEwOWIzZTAwDQo+ID4g WyAgNDMwLjY5MDQxN10gRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmY4ODgyODdi MDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMA0KPiA+IFsgIDQzMC42OTA0MzhdIENT OiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMNCj4gPiBbICA0 MzAuNjkwNDU1XSBDUjI6IDAwMDA3ZjVjY2Q5OWRlM2UgQ1IzOiAwMDAwMDAwMDA1NjRhMDAzIENS NDogMDAwMDAwMDAwMDc3MGVmMA0KPiA+IFsgIDQzMC42OTA0NzVdIFBLUlU6IDU1NTU1NTU0DQo+ ID4gWyAgNDMwLjY5MDQ4NV0gQ2FsbCBUcmFjZToNCj4gPiBbICA0MzAuNjkwNDk1XSAgPFRBU0s+ DQo+ID4gWyAgNDMwLjY5MDUwNF0gID8gX19tdXRleF9sb2NrKzB4NTBkLzB4YjgwDQo+ID4gWyAg NDMwLjY5MDUxOF0gID8gX193YXJuKzB4N2MvMHgxNzANCj4gPiBbICA0MzAuNjkwNTM4XSAgPyBf X211dGV4X2xvY2srMHg1MGQvMHhiODANCj4gPiBbICA0MzAuNjkwNTc1XSAgPyByZXBvcnRfYnVn KzB4MTg5LzB4MWMwDQo+ID4gWyAgNDMwLjY5MDU5N10gID8gaGFuZGxlX2J1ZysweDM2LzB4NzAN Cj4gPiBbICA0MzAuNjkwNjE2XSAgPyBleGNfaW52YWxpZF9vcCsweDEzLzB4NjANCj4gPiBbICA0 MzAuNjkwNjM3XSAgPyBhc21fZXhjX2ludmFsaWRfb3ArMHgxNi8weDIwDQo+ID4gWyAgNDMwLjY5 MDY2MV0gID8gX19tdXRleF9sb2NrKzB4NTBkLzB4YjgwDQo+ID4gWyAgNDMwLjY5MDY4MF0gID8g X19zbGFiX2FsbG9jLmlzcmEuMCsweDRkLzB4OTANCj4gPiBbICA0MzAuNjkwNzAzXSAgPyBfX3Ns YWJfYWxsb2MuaXNyYS4wKzB4NWEvMHg5MA0KPiA+IFsgIDQzMC42OTA3MjJdICA/IHhlX3ZtX3Nu YXBzaG90X2NhcHR1cmUrMHgzNS8weDFmMCBbeGVdDQo+ID4gWyAgNDMwLjY5MDg0MF0gID8gcmN1 X2lzX3dhdGNoaW5nKzB4ZC8weDQwDQo+ID4gWyAgNDMwLjY5MDg2M10gID8gX19rbWFsbG9jKzB4 MmJkLzB4NDAwDQo+ID4gWyAgNDMwLjY5MDg4M10gID8geGVfdm1fc25hcHNob3RfY2FwdHVyZSsw eDM1LzB4MWYwIFt4ZV0NCj4gPiBbICA0MzAuNjkwOTg0XSAgeGVfdm1fc25hcHNob3RfY2FwdHVy ZSsweDM1LzB4MWYwIFt4ZV0NCj4gPiBbICA0MzAuNjkxMDcwXSAgPyB4ZV9zY2hlZF9qb2Jfc25h cHNob3RfY2FwdHVyZSsweDY0LzB4ODAgW3hlXQ0KPiA+IFsgIDQzMC42OTExNTVdICB4ZV9kZXZj b3JlZHVtcCsweDFiOS8weDJlMCBbeGVdDQo+ID4gWyAgNDMwLjY5MTIyNl0gIGd1Y19leGVjX3F1 ZXVlX3RpbWVkb3V0X2pvYisweDk4LzB4NWEwIFt4ZV0NCj4gPiBbICA0MzAuNjkxMzA1XSAgZHJt X3NjaGVkX2pvYl90aW1lZG91dCsweDc3LzB4ZTAgW2dwdV9zY2hlZF0NCj4gPiBbICA0MzAuNjkx MzM3XSAgPyBwcm9jZXNzX29uZV93b3JrKzB4MThkLzB4NGQwDQo+ID4gWyAgNDMwLjY5MTM2MF0g IHByb2Nlc3Nfb25lX3dvcmsrMHgxZjQvMHg0ZDANCj4gPiBbICA0MzAuNjkxMzc4XSAgd29ya2Vy X3RocmVhZCsweDFkOC8weDNjMA0KPiA+IFsgIDQzMC42OTEzOTZdICA/IHJlc2N1ZXJfdGhyZWFk KzB4MzkwLzB4MzkwDQo+ID4gWyAgNDMwLjY5MTQxNF0gIGt0aHJlYWQrMHhmYi8weDEzMA0KPiA+ IFsgIDQzMC42OTE0MjldICA/IGt0aHJlYWRfY29tcGxldGVfYW5kX2V4aXQrMHgyMC8weDIwDQo+ ID4gWyAgNDMwLjY5MTQ1MV0gIHJldF9mcm9tX2ZvcmsrMHgyOC8weDQwDQo+ID4gWyAgNDMwLjY5 MTQ3MF0gID8ga3RocmVhZF9jb21wbGV0ZV9hbmRfZXhpdCsweDIwLzB4MjANCj4gPiBbICA0MzAu NjkxNDk1XSAgcmV0X2Zyb21fZm9ya19hc20rMHgxMS8weDIwDQo+ID4gWyAgNDMwLjY5MTUxNF0g IDwvVEFTSz4NCj4gPiBbICA0MzAuNjkxNTIzXSBpcnEgZXZlbnQgc3RhbXA6IDYwNzcyODENCj4g PiBbICA0MzAuNjkxNTM3XSBoYXJkaXJxcyBsYXN0ICBlbmFibGVkIGF0ICg2MDc3MjgxKTogWzxm ZmZmZmZmZjgxZDJkY2FhPl0gX3Jhd19zcGluX3VubG9ja19pcnFyZXN0b3JlKzB4NGEvMHg3MA0K PiA+IFsgIDQzMC42OTE1OThdIGhhcmRpcnFzIGxhc3QgZGlzYWJsZWQgYXQgKDYwNzcyODApOiBb PGZmZmZmZmZmODFkMmRhN2E+XSBfcmF3X3NwaW5fbG9ja19pcnFzYXZlKzB4NGEvMHg1MA0KPiA+ IFsgIDQzMC42OTE2NDBdIHNvZnRpcnFzIGxhc3QgIGVuYWJsZWQgYXQgKDYwNzUyMTIpOiBbPGZm ZmZmZmZmODExMzE5NjI+XSBpcnFfZXhpdF9yY3UrMHg4Mi8weGUwDQo+ID4gWyAgNDMwLjY5MTY3 OV0gc29mdGlycXMgbGFzdCBkaXNhYmxlZCBhdCAoNjA3NTIwNSk6IFs8ZmZmZmZmZmY4MTEzMTk2 Mj5dIGlycV9leGl0X3JjdSsweDgyLzB4ZTANCj4gPiBbICA0MzAuNjkxNzIyXSAtLS1bIGVuZCB0 cmFjZSAwMDAwMDAwMDAwMDAwMDAwIF0tLS0NCj4gPiBbICA0MzAuNjkxODAyXSB4ZSAwMDAwOjAw OjAyLjA6IFtkcm1dIFhlIGRldmljZSBjb3JlZHVtcCBoYXMgYmVlbiBjcmVhdGVkDQo+IA0KPiBI b2xkIGEgYml0IGluIHRoaXMgY3Jhc2gsIHRoZSBWTSBpcyBiZWluZyBkZXN0cm95ZWQgYnkgSXJp cyBiZWZvcmUgZHJtX2V4ZWMgaXMgZG9uZS4NCj4gSSB0aGluayBmaXhpbmcgaXQgd2lsbCBmaXgg dGhpcyB3YXJuaW5nLg0KDQpZZXAgdGhhdCB3YXMgdGhlIGNhc2UsIGl0IHdpbGwgYmUgZml4ZWQg YnkgaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL21lc2EvbWVzYS8tL21lcmdlX3JlcXVl c3RzLzI3NTAwDQoNCj4gDQo+ID4gDQo+ID4gQW5kIGFnYWluIHRoaXMgaXMgbWlzc2luZyAnaHcg c3RhdHVzJywgJ2h3IGNvbnRleHQnIGFuZCAnR3VDIGxvZyBidWZmZXInIGR1bXBzKHVzaW5nIGk5 MTUgZXJyb3IgZHVtcCBuYW1lcykuDQo+ID4gDQoNCklmIGNvdWxkIGF0IGxlYXN0IGluY2x1ZGUg J2h3IHN0YXR1cycgYW5kICdodyBjb250ZXh0JyBidWZmZXJzIGluIHRoZSBkdW1wIGFuZCBmaXgg dGhlIG90aGVyIGNvbW1lbnRzIHRoYXQgSSBsZWZ0IHdlIHdvdWxkIGJlIHJlYWR5IHRvIG1lcmdl IHRoaXMuDQpUaGUgJ0d1QyBsb2cgYnVmZmVyJyBjYW4gYmUgYWRkZWQgbGF0ZXIuDQoNCj4gPiAN Cj4gPiA+IA0KPiA+ID4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4u bGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4NCj4gPiA+IC0tLQ0KPiA+ID4gIGRyaXZlcnMvZ3B1 L2RybS94ZS94ZV9kZXZjb3JlZHVtcC5jICAgICAgIHwgIDMzICsrKystDQo+ID4gPiAgZHJpdmVy cy9ncHUvZHJtL3hlL3hlX2RldmNvcmVkdW1wX3R5cGVzLmggfCAgIDggKysNCj4gPiA+ICBkcml2 ZXJzL2dwdS9kcm0veGUveGVfdm0uYyAgICAgICAgICAgICAgICB8IDE2MiArKysrKysrKysrKysr KysrKysrKysrDQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmggICAgICAgICAgICAg ICAgfCAgIDUgKw0KPiA+ID4gIDQgZmlsZXMgY2hhbmdlZCwgMjA2IGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pDQo+ID4gPiANCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v eGUveGVfZGV2Y29yZWR1bXAuYyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9kZXZjb3JlZHVtcC5j DQo+ID4gPiBpbmRleCAwOGQzZjZjYjcyMjkyLi4zZTg2M2U1MWI5ZDRkIDEwMDY0NA0KPiA+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2RldmNvcmVkdW1wLmMNCj4gPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS94ZS94ZV9kZXZjb3JlZHVtcC5jDQo+ID4gPiBAQCAtMTcsNiArMTcsNyBA QA0KPiA+ID4gICNpbmNsdWRlICJ4ZV9ndWNfc3VibWl0LmgiDQo+ID4gPiAgI2luY2x1ZGUgInhl X2h3X2VuZ2luZS5oIg0KPiA+ID4gICNpbmNsdWRlICJ4ZV9zY2hlZF9qb2IuaCINCj4gPiA+ICsj aW5jbHVkZSAieGVfdm0uaCINCj4gPiA+ICANCj4gPiA+ICAvKioNCj4gPiA+ICAgKiBET0M6IFhl IGRldmljZSBjb3JlZHVtcA0KPiA+ID4gQEAgLTU5LDEyICs2MCwyMiBAQCBzdGF0aWMgc3RydWN0 IHhlX2d1YyAqZXhlY19xdWV1ZV90b19ndWMoc3RydWN0IHhlX2V4ZWNfcXVldWUgKnEpDQo+ID4g PiAgCXJldHVybiAmcS0+Z3QtPnVjLmd1YzsNCj4gPiA+ICB9DQo+ID4gPiAgDQo+ID4gPiArc3Rh dGljIHZvaWQgeGVfZGV2Y29yZWR1bXBfZGVmZXJyZWRfc25hcF93b3JrKHN0cnVjdCB3b3JrX3N0 cnVjdCAqd29yaykNCj4gPiA+ICt7DQo+ID4gPiArCXN0cnVjdCB4ZV9kZXZjb3JlZHVtcF9zbmFw c2hvdCAqc3MgPSBjb250YWluZXJfb2Yod29yaywgdHlwZW9mKCpzcyksIHdvcmspOw0KPiA+ID4g Kw0KPiA+ID4gKwl4ZV9mb3JjZV93YWtlX2dldChndF90b19mdyhzcy0+Z3QpLCBYRV9GT1JDRVdB S0VfQUxMKTsNCj4gPiA+ICsJaWYgKHNzLT52bSkNCj4gPiA+ICsJCXhlX3ZtX3NuYXBzaG90X2Nh cHR1cmVfZGVsYXllZChzcy0+dm0pOw0KPiA+ID4gKwl4ZV9mb3JjZV93YWtlX3B1dChndF90b19m dyhzcy0+Z3QpLCBYRV9GT1JDRVdBS0VfQUxMKTsNCj4gPiA+ICt9DQo+ID4gPiArDQo+ID4gPiAg c3RhdGljIHNzaXplX3QgeGVfZGV2Y29yZWR1bXBfcmVhZChjaGFyICpidWZmZXIsIGxvZmZfdCBv ZmZzZXQsDQo+ID4gPiAgCQkJCSAgIHNpemVfdCBjb3VudCwgdm9pZCAqZGF0YSwgc2l6ZV90IGRh dGFsZW4pDQo+ID4gPiAgew0KPiA+ID4gIAlzdHJ1Y3QgeGVfZGV2Y29yZWR1bXAgKmNvcmVkdW1w ID0gZGF0YTsNCj4gPiA+ICAJc3RydWN0IHhlX2RldmljZSAqeGUgPSBjb3JlZHVtcF90b194ZShj b3JlZHVtcCk7DQo+ID4gPiAtCXN0cnVjdCB4ZV9kZXZjb3JlZHVtcF9zbmFwc2hvdCAqc3M7DQo+ ID4gPiArCXN0cnVjdCB4ZV9kZXZjb3JlZHVtcF9zbmFwc2hvdCAqc3MgPSAmY29yZWR1bXAtPnNu YXBzaG90Ow0KPiA+ID4gIAlzdHJ1Y3QgZHJtX3ByaW50ZXIgcDsNCj4gPiA+ICAJc3RydWN0IGRy bV9wcmludF9pdGVyYXRvciBpdGVyOw0KPiA+ID4gIAlzdHJ1Y3QgdGltZXNwZWM2NCB0czsNCj4g PiA+IEBAIC03NCwxMiArODUsMTQgQEAgc3RhdGljIHNzaXplX3QgeGVfZGV2Y29yZWR1bXBfcmVh ZChjaGFyICpidWZmZXIsIGxvZmZfdCBvZmZzZXQsDQo+ID4gPiAgCWlmICghZGF0YSB8fCAhY29y ZWR1bXBfdG9feGUoY29yZWR1bXApKQ0KPiA+ID4gIAkJcmV0dXJuIC1FTk9ERVY7DQo+ID4gPiAg DQo+ID4gPiArCS8qIEVuc3VyZSBkZWxheWVkIHdvcmsgaXMgY2FwdHVyZWQgYmVmb3JlIGNvbnRp bnVpbmcgKi8NCj4gPiA+ICsJZmx1c2hfd29yaygmc3MtPndvcmspOw0KPiA+ID4gKw0KPiA+ID4g IAlpdGVyLmRhdGEgPSBidWZmZXI7DQo+ID4gPiAgCWl0ZXIub2Zmc2V0ID0gMDsNCj4gPiA+ICAJ aXRlci5zdGFydCA9IG9mZnNldDsNCj4gPiA+ICAJaXRlci5yZW1haW4gPSBjb3VudDsNCj4gPiA+ ICANCj4gPiA+IC0Jc3MgPSAmY29yZWR1bXAtPnNuYXBzaG90Ow0KPiA+ID4gIAlwID0gZHJtX2Nv cmVkdW1wX3ByaW50ZXIoJml0ZXIpOw0KPiA+ID4gIA0KPiA+ID4gIAlkcm1fcHJpbnRmKCZwLCAi KioqKiBYZSBEZXZpY2UgQ29yZWR1bXAgKioqKlxuIik7DQo+ID4gPiBAQCAtMTA0LDYgKzExNywx MCBAQCBzdGF0aWMgc3NpemVfdCB4ZV9kZXZjb3JlZHVtcF9yZWFkKGNoYXIgKmJ1ZmZlciwgbG9m Zl90IG9mZnNldCwNCj4gPiA+ICAJCWlmIChjb3JlZHVtcC0+c25hcHNob3QuaHdlW2ldKQ0KPiA+ ID4gIAkJCXhlX2h3X2VuZ2luZV9zbmFwc2hvdF9wcmludChjb3JlZHVtcC0+c25hcHNob3QuaHdl W2ldLA0KPiA+ID4gIAkJCQkJCSAgICAmcCk7DQo+ID4gPiArCWlmIChjb3JlZHVtcC0+c25hcHNo b3Qudm0pIHsNCj4gPiA+ICsJCWRybV9wcmludGYoJnAsICJcbioqKiogVk0gc3RhdGUgKioqKlxu Iik7DQo+ID4gPiArCQl4ZV92bV9zbmFwc2hvdF9wcmludChjb3JlZHVtcC0+c25hcHNob3Qudm0s ICZwKTsNCj4gPiA+ICsJfQ0KPiA+ID4gIA0KPiA+ID4gIAlyZXR1cm4gY291bnQgLSBpdGVyLnJl bWFpbjsNCj4gPiA+ICB9DQo+ID4gPiBAQCAtMTE3LDEyICsxMzQsMTYgQEAgc3RhdGljIHZvaWQg eGVfZGV2Y29yZWR1bXBfZnJlZSh2b2lkICpkYXRhKQ0KPiA+ID4gIAlpZiAoIWRhdGEgfHwgIWNv cmVkdW1wX3RvX3hlKGNvcmVkdW1wKSkNCj4gPiA+ICAJCXJldHVybjsNCj4gPiA+ICANCj4gPiA+ ICsJY2FuY2VsX3dvcmtfc3luYygmY29yZWR1bXAtPnNuYXBzaG90LndvcmspOw0KPiA+ID4gKw0K PiA+ID4gIAl4ZV9ndWNfY3Rfc25hcHNob3RfZnJlZShjb3JlZHVtcC0+c25hcHNob3QuY3QpOw0K PiA+ID4gIAl4ZV9ndWNfZXhlY19xdWV1ZV9zbmFwc2hvdF9mcmVlKGNvcmVkdW1wLT5zbmFwc2hv dC5nZSk7DQo+ID4gPiAgCXhlX3NjaGVkX2pvYl9zbmFwc2hvdF9mcmVlKGNvcmVkdW1wLT5zbmFw c2hvdC5qb2IpOw0KPiA+ID4gIAlmb3IgKGkgPSAwOyBpIDwgWEVfTlVNX0hXX0VOR0lORVM7IGkr KykNCj4gPiA+ICAJCWlmIChjb3JlZHVtcC0+c25hcHNob3QuaHdlW2ldKQ0KPiA+ID4gIAkJCXhl X2h3X2VuZ2luZV9zbmFwc2hvdF9mcmVlKGNvcmVkdW1wLT5zbmFwc2hvdC5od2VbaV0pOw0KPiA+ ID4gKwl4ZV92bV9zbmFwc2hvdF9mcmVlKGNvcmVkdW1wLT5zbmFwc2hvdC52bSk7DQo+ID4gPiAr CW1lbXNldCgmY29yZWR1bXAtPnNuYXBzaG90LCAwLCBzaXplb2YoY29yZWR1bXAtPnNuYXBzaG90 KSk7DQo+ID4gPiAgDQo+ID4gPiAgCWNvcmVkdW1wLT5jYXB0dXJlZCA9IGZhbHNlOw0KPiA+ID4g IAlkcm1faW5mbygmY29yZWR1bXBfdG9feGUoY29yZWR1bXApLT5kcm0sDQo+ID4gPiBAQCAtMTQ1 LDYgKzE2Niw5IEBAIHN0YXRpYyB2b2lkIGRldmNvcmVkdW1wX3NuYXBzaG90KHN0cnVjdCB4ZV9k ZXZjb3JlZHVtcCAqY29yZWR1bXAsDQo+ID4gPiAgCXNzLT5zbmFwc2hvdF90aW1lID0ga3RpbWVf Z2V0X3JlYWwoKTsNCj4gPiA+ICAJc3MtPmJvb3RfdGltZSA9IGt0aW1lX2dldF9ib290dGltZSgp Ow0KPiA+ID4gIA0KPiA+ID4gKwlzcy0+Z3QgPSBxLT5ndDsNCj4gPiA+ICsJSU5JVF9XT1JLKCZz cy0+d29yaywgeGVfZGV2Y29yZWR1bXBfZGVmZXJyZWRfc25hcF93b3JrKTsNCj4gPiA+ICsNCj4g PiA+ICAJY29va2llID0gZG1hX2ZlbmNlX2JlZ2luX3NpZ25hbGxpbmcoKTsNCj4gPiA+ICAJZm9y IChpID0gMDsgcS0+d2lkdGggPiAxICYmIGkgPCBYRV9IV19FTkdJTkVfTUFYX0lOU1RBTkNFOykg ew0KPiA+ID4gIAkJaWYgKGFkal9sb2dpY2FsX21hc2sgJiBCSVQoaSkpIHsNCj4gPiA+IEBAIC0x NjAsNiArMTg0LDcgQEAgc3RhdGljIHZvaWQgZGV2Y29yZWR1bXBfc25hcHNob3Qoc3RydWN0IHhl X2RldmNvcmVkdW1wICpjb3JlZHVtcCwNCj4gPiA+ICAJY29yZWR1bXAtPnNuYXBzaG90LmN0ID0g eGVfZ3VjX2N0X3NuYXBzaG90X2NhcHR1cmUoJmd1Yy0+Y3QsIHRydWUpOw0KPiA+ID4gIAljb3Jl ZHVtcC0+c25hcHNob3QuZ2UgPSB4ZV9ndWNfZXhlY19xdWV1ZV9zbmFwc2hvdF9jYXB0dXJlKGpv Yik7DQo+ID4gPiAgCWNvcmVkdW1wLT5zbmFwc2hvdC5qb2IgPSB4ZV9zY2hlZF9qb2Jfc25hcHNo b3RfY2FwdHVyZShqb2IpOw0KPiA+ID4gKwljb3JlZHVtcC0+c25hcHNob3Qudm0gPSB4ZV92bV9z bmFwc2hvdF9jYXB0dXJlKHEtPnZtKTsNCj4gPiA+ICANCj4gPiA+ICAJZm9yX2VhY2hfaHdfZW5n aW5lKGh3ZSwgcS0+Z3QsIGlkKSB7DQo+ID4gPiAgCQlpZiAoaHdlLT5jbGFzcyAhPSBxLT5od2Ut PmNsYXNzIHx8DQo+ID4gPiBAQCAtMTcwLDYgKzE5NSw5IEBAIHN0YXRpYyB2b2lkIGRldmNvcmVk dW1wX3NuYXBzaG90KHN0cnVjdCB4ZV9kZXZjb3JlZHVtcCAqY29yZWR1bXAsDQo+ID4gPiAgCQlj b3JlZHVtcC0+c25hcHNob3QuaHdlW2lkXSA9IHhlX2h3X2VuZ2luZV9zbmFwc2hvdF9jYXB0dXJl KGh3ZSk7DQo+ID4gPiAgCX0NCj4gPiA+ICANCj4gPiA+ICsJaWYgKHNzLT52bSkNCj4gPiA+ICsJ CXF1ZXVlX3dvcmsoc3lzdGVtX3VuYm91bmRfd3EsICZzcy0+d29yayk7DQo+ID4gPiArDQo+ID4g PiAgCXhlX2ZvcmNlX3dha2VfcHV0KGd0X3RvX2Z3KHEtPmd0KSwgWEVfRk9SQ0VXQUtFX0FMTCk7 DQo+ID4gPiAgCWRtYV9mZW5jZV9lbmRfc2lnbmFsbGluZyhjb29raWUpOw0KPiA+ID4gIH0NCj4g PiA+IEBAIC0yMDMsMyArMjMxLDQgQEAgdm9pZCB4ZV9kZXZjb3JlZHVtcChzdHJ1Y3QgeGVfc2No ZWRfam9iICpqb2IpDQo+ID4gPiAgCQkgICAgICB4ZV9kZXZjb3JlZHVtcF9yZWFkLCB4ZV9kZXZj b3JlZHVtcF9mcmVlKTsNCj4gPiA+ICB9DQo+ID4gPiAgI2VuZGlmDQo+ID4gPiArDQo+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2RldmNvcmVkdW1wX3R5cGVzLmggYi9k cml2ZXJzL2dwdS9kcm0veGUveGVfZGV2Y29yZWR1bXBfdHlwZXMuaA0KPiA+ID4gaW5kZXggZDI1 OTExOWIyYzk4MC4uYjM4OWMxYTI5OGUzZCAxMDA2NDQNCj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS94ZS94ZV9kZXZjb3JlZHVtcF90eXBlcy5oDQo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0veGUveGVfZGV2Y29yZWR1bXBfdHlwZXMuaA0KPiA+ID4gQEAgLTEyLDYgKzEyLDcgQEANCj4g PiA+ICAjaW5jbHVkZSAieGVfaHdfZW5naW5lX3R5cGVzLmgiDQo+ID4gPiAgDQo+ID4gPiAgc3Ry dWN0IHhlX2RldmljZTsNCj4gPiA+ICtzdHJ1Y3QgeGVfZ3Q7DQo+ID4gPiAgDQo+ID4gPiAgLyoq DQo+ID4gPiAgICogc3RydWN0IHhlX2RldmNvcmVkdW1wX3NuYXBzaG90IC0gQ3Jhc2ggc25hcHNo b3QNCj4gPiA+IEBAIC0yNiw2ICsyNywxMSBAQCBzdHJ1Y3QgeGVfZGV2Y29yZWR1bXBfc25hcHNo b3Qgew0KPiA+ID4gIAkvKiogQGJvb3RfdGltZTogIFJlbGF0aXZlIGJvb3QgdGltZSBzbyB0aGUg dXB0aW1lIGNhbiBiZSBjYWxjdWxhdGVkLiAqLw0KPiA+ID4gIAlrdGltZV90IGJvb3RfdGltZTsN Cj4gPiA+ICANCj4gPiA+ICsJLyoqIEBndDogQWZmZWN0ZWQgR1QsIHVzZWQgYnkgZm9yY2V3YWtl IGZvciBkZWxheWVkIGNhcHR1cmUgKi8NCj4gPiA+ICsJc3RydWN0IHhlX2d0ICpndDsNCj4gPiA+ ICsJLyoqIEB3b3JrOiBXb3JrcXVldWUgZm9yIGRlZmZlcmVkIGNhcHR1cmUgb3V0c2lkZSBvZiBz aWduYWxpbmcgY29udGV4dCAqLw0KPiA+ID4gKwlzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsNCj4g PiA+ICsNCj4gPiA+ICAJLyogR3VDIHNuYXBzaG90cyAqLw0KPiA+ID4gIAkvKiogQGN0OiBHdUMg Q1Qgc25hcHNob3QgKi8NCj4gPiA+ICAJc3RydWN0IHhlX2d1Y19jdF9zbmFwc2hvdCAqY3Q7DQo+ ID4gPiBAQCAtMzYsNiArNDIsOCBAQCBzdHJ1Y3QgeGVfZGV2Y29yZWR1bXBfc25hcHNob3Qgew0K PiA+ID4gIAlzdHJ1Y3QgeGVfaHdfZW5naW5lX3NuYXBzaG90ICpod2VbWEVfTlVNX0hXX0VOR0lO RVNdOw0KPiA+ID4gIAkvKiogQGpvYjogU25hcHNob3Qgb2Ygam9iIHN0YXRlICovDQo+ID4gPiAg CXN0cnVjdCB4ZV9zY2hlZF9qb2Jfc25hcHNob3QgKmpvYjsNCj4gPiA+ICsJLyoqIEB2bTogU25h cHNob3Qgb2YgVk0gc3RhdGUgKi8NCj4gPiA+ICsJc3RydWN0IHhlX3ZtX3NuYXBzaG90ICp2bTsN Cj4gPiA+ICB9Ow0KPiA+ID4gIA0KPiA+ID4gIC8qKg0KPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS94ZS94ZV92bS5jIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmMNCj4gPiA+ IGluZGV4IDFmMGQ1OGJmZDEwNDYuLjY5NjVmZTE1YmNiZWEgMTAwNjQ0DQo+ID4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0veGUveGVfdm0uYw0KPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3hl L3hlX3ZtLmMNCj4gPiA+IEBAIC0xMyw2ICsxMyw3IEBADQo+ID4gPiAgI2luY2x1ZGUgPGRybS90 dG0vdHRtX2V4ZWNidWZfdXRpbC5oPg0KPiA+ID4gICNpbmNsdWRlIDxkcm0vdHRtL3R0bV90dC5o Pg0KPiA+ID4gICNpbmNsdWRlIDxkcm0veGVfZHJtLmg+DQo+ID4gPiArI2luY2x1ZGUgPGxpbnV4 L2FzY2lpODUuaD4NCj4gPiA+ICAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4NCj4gPiA+ICAjaW5j bHVkZSA8bGludXgva3RocmVhZC5oPg0KPiA+ID4gICNpbmNsdWRlIDxsaW51eC9tbS5oPg0KPiA+ ID4gQEAgLTMyNjcsMyArMzI2OCwxNjQgQEAgaW50IHhlX2FuYWx5emVfdm0oc3RydWN0IGRybV9w cmludGVyICpwLCBzdHJ1Y3QgeGVfdm0gKnZtLCBpbnQgZ3RfaWQpDQo+ID4gPiAgDQo+ID4gPiAg CXJldHVybiAwOw0KPiA+ID4gIH0NCj4gPiA+ICsNCj4gPiA+ICtzdHJ1Y3QgeGVfdm1fc25hcHNo b3Qgew0KPiA+ID4gKwl1bnNpZ25lZCBsb25nIG51bV9zbmFwczsNCj4gPiA+ICsJc3RydWN0IHsN Cj4gPiA+ICsJCXVpbnQ2NF90IG9mcywgYm9fb2ZzOw0KPiA+ID4gKwkJdW5zaWduZWQgbG9uZyBs ZW47DQo+ID4gPiArCQlzdHJ1Y3QgeGVfYm8gKmJvOw0KPiA+ID4gKwkJdm9pZCAqZGF0YTsNCj4g PiA+ICsJCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tOw0KPiA+ID4gKwl9IHNuYXBbXTsNCj4gPiA+ICt9 Ow0KPiA+ID4gKw0KPiA+ID4gK3N0cnVjdCB4ZV92bV9zbmFwc2hvdCAqeGVfdm1fc25hcHNob3Rf Y2FwdHVyZShzdHJ1Y3QgeGVfdm0gKnZtKQ0KPiA+ID4gK3sNCj4gPiA+ICsJdW5zaWduZWQgbG9u ZyBudW1fc25hcHMgPSAwLCBpOw0KPiA+ID4gKwlzdHJ1Y3QgeGVfdm1fc25hcHNob3QgKnNuYXAg PSBOVUxMOw0KPiA+ID4gKwlzdHJ1Y3QgZHJtX2dwdXZhICpncHV2YTsNCj4gPiA+ICsNCj4gPiA+ ICsJaWYgKCF2bSkNCj4gPiA+ICsJCXJldHVybiBOVUxMOw0KPiA+ID4gKw0KPiA+ID4gKwltdXRl eF9sb2NrKCZ2bS0+c25hcF9tdXRleCk7DQo+ID4gPiArCWRybV9ncHV2bV9mb3JfZWFjaF92YShn cHV2YSwgJnZtLT5ncHV2bSkgew0KPiA+ID4gKwkJaWYgKGdwdXZhLT5mbGFncyAmIFhFX1ZNQV9E VU1QQUJMRSkNCj4gPiA+ICsJCQludW1fc25hcHMrKzsNCj4gPiA+ICsJfQ0KPiA+ID4gKw0KPiA+ ID4gKwlpZiAobnVtX3NuYXBzKQ0KPiA+ID4gKwkJc25hcCA9IGt2emFsbG9jKG9mZnNldG9mKHN0 cnVjdCB4ZV92bV9zbmFwc2hvdCwgc25hcFtudW1fc25hcHNdKSwgR0ZQX05PV0FJVCk7DQo+ID4g PiArCWlmICghc25hcCkNCj4gPiA+ICsJCWdvdG8gb3V0X3VubG9jazsNCj4gPiA+ICsNCj4gPiA+ ICsJc25hcC0+bnVtX3NuYXBzID0gbnVtX3NuYXBzOw0KPiA+ID4gKwlpID0gMDsNCj4gPiA+ICsJ ZHJtX2dwdXZtX2Zvcl9lYWNoX3ZhKGdwdXZhLCAmdm0tPmdwdXZtKSB7DQo+ID4gPiArCQlzdHJ1 Y3QgeGVfdm1hICp2bWEgPSBncHV2YV90b192bWEoZ3B1dmEpOw0KPiA+ID4gKwkJc3RydWN0IHhl X2JvICpibyA9IHZtYS0+Z3B1dmEuZ2VtLm9iaiA/DQo+ID4gPiArCQkJZ2VtX3RvX3hlX2JvKHZt YS0+Z3B1dmEuZ2VtLm9iaikgOiBOVUxMOw0KPiA+ID4gKw0KPiA+ID4gKwkJaWYgKCEoZ3B1dmEt PmZsYWdzICYgWEVfVk1BX0RVTVBBQkxFKSkNCj4gPiA+ICsJCQljb250aW51ZTsNCj4gPiA+ICsN Cj4gPiA+ICsJCXNuYXAtPnNuYXBbaV0ub2ZzID0geGVfdm1hX3N0YXJ0KHZtYSk7DQo+ID4gPiAr CQlzbmFwLT5zbmFwW2ldLmxlbiA9IHhlX3ZtYV9zaXplKHZtYSk7DQo+ID4gPiArCQlpZiAoYm8p IHsNCj4gPiA+ICsJCQlzbmFwLT5zbmFwW2ldLmJvID0geGVfYm9fZ2V0KGJvKTsNCj4gPiA+ICsJ CQlzbmFwLT5zbmFwW2ldLmJvX29mcyA9IHhlX3ZtYV9ib19vZmZzZXQodm1hKTsNCj4gPiA+ICsJ CX0gZWxzZSBpZiAoeGVfdm1hX2lzX3VzZXJwdHIodm1hKSkgew0KPiA+ID4gKwkJCXN0cnVjdCB4 ZV91c2VycHRyICp1c2VycHRyID0gJnRvX3VzZXJwdHJfdm1hKHZtYSktPnVzZXJwdHI7DQo+ID4g PiArCQkJaWYgKG1tZ2V0X25vdF96ZXJvKHVzZXJwdHItPm5vdGlmaWVyLm1tKSkNCj4gPiA+ICsJ CQkJc25hcC0+c25hcFtpXS5tbSA9IHVzZXJwdHItPm5vdGlmaWVyLm1tOw0KPiA+ID4gKwkJCWVs c2UNCj4gPiA+ICsJCQkJc25hcC0+c25hcFtpXS5kYXRhID0gRVJSX1BUUigtRUZBVUxUKTsNCj4g PiA+ICsJCQlzbmFwLT5zbmFwW2ldLmJvX29mcyA9IHhlX3ZtYV91c2VycHRyKHZtYSk7DQo+ID4g PiArCQl9IGVsc2Ugew0KPiA+ID4gKwkJCXNuYXAtPnNuYXBbaV0uZGF0YSA9IEVSUl9QVFIoLUVO T0VOVCk7DQo+ID4gPiArCQl9DQo+ID4gPiArCQlpKys7DQo+ID4gPiArCX0NCj4gPiA+ICsNCj4g PiA+ICtvdXRfdW5sb2NrOg0KPiA+ID4gKwltdXRleF91bmxvY2soJnZtLT5zbmFwX211dGV4KTsN Cj4gPiA+ICsJcmV0dXJuIHNuYXA7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gK3ZvaWQgeGVf dm1fc25hcHNob3RfY2FwdHVyZV9kZWxheWVkKHN0cnVjdCB4ZV92bV9zbmFwc2hvdCAqc25hcCkN Cj4gPiA+ICt7DQo+ID4gPiArCWZvciAoaW50IGkgPSAwOyBpIDwgc25hcC0+bnVtX3NuYXBzOyBp KyspIHsNCj4gPiA+ICsJCXN0cnVjdCB4ZV9ibyAqYm8gPSBzbmFwLT5zbmFwW2ldLmJvOw0KPiA+ ID4gKwkJc3RydWN0IGlvc3lzX21hcCBzcmM7DQo+ID4gPiArCQlpbnQgZXJyOw0KPiA+ID4gKw0K PiA+ID4gKwkJaWYgKElTX0VSUihzbmFwLT5zbmFwW2ldLmRhdGEpKQ0KPiA+ID4gKwkJCWNvbnRp bnVlOw0KPiA+ID4gKw0KPiA+ID4gKwkJc25hcC0+c25hcFtpXS5kYXRhID0ga3ZtYWxsb2Moc25h cC0+c25hcFtpXS5sZW4sIEdGUF9VU0VSKTsNCj4gPiA+ICsJCWlmICghc25hcC0+c25hcFtpXS5k YXRhKSB7DQo+ID4gPiArCQkJc25hcC0+c25hcFtpXS5kYXRhID0gRVJSX1BUUigtRU5PTUVNKTsN Cj4gPiA+ICsJCQlnb3RvIGNsZWFudXBfYm87DQo+ID4gPiArCQl9DQo+ID4gPiArDQo+ID4gPiAr CQlpZiAoYm8pIHsNCj4gPiA+ICsJCQlkbWFfcmVzdl9sb2NrKGJvLT50dG0uYmFzZS5yZXN2LCBO VUxMKTsNCj4gPiA+ICsJCQllcnIgPSB0dG1fYm9fdm1hcCgmYm8tPnR0bSwgJnNyYyk7DQo+ID4g PiArCQkJaWYgKCFlcnIpIHsNCj4gPiA+ICsJCQkJeGVfbWFwX21lbWNweV9mcm9tKHhlX2JvX2Rl dmljZShibyksDQo+ID4gPiArCQkJCQkJICAgc25hcC0+c25hcFtpXS5kYXRhLA0KPiA+ID4gKwkJ CQkJCSAgICZzcmMsIHNuYXAtPnNuYXBbaV0uYm9fb2ZzLA0KPiA+ID4gKwkJCQkJCSAgIHNuYXAt PnNuYXBbaV0ubGVuKTsNCj4gPiA+ICsJCQkJdHRtX2JvX3Z1bm1hcCgmYm8tPnR0bSwgJnNyYyk7 DQo+ID4gPiArCQkJfQ0KPiA+ID4gKwkJCWRtYV9yZXN2X3VubG9jayhiby0+dHRtLmJhc2UucmVz dik7DQo+ID4gPiArCQl9IGVsc2Ugew0KPiA+ID4gKwkJCXZvaWQgX191c2VyICp1c2VycHRyID0g KHZvaWQgX191c2VyICopKHNpemVfdClzbmFwLT5zbmFwW2ldLmJvX29mczsNCj4gPiA+ICsJCQlr dGhyZWFkX3VzZV9tbShzbmFwLT5zbmFwW2ldLm1tKTsNCj4gPiA+ICsNCj4gPiA+ICsJCQlpZiAo IWNvcHlfZnJvbV91c2VyKHNuYXAtPnNuYXBbaV0uZGF0YSwgdXNlcnB0ciwgc25hcC0+c25hcFtp XS5sZW4pKQ0KPiA+ID4gKwkJCQllcnIgPSAwOw0KPiA+ID4gKwkJCWVsc2UNCj4gPiA+ICsJCQkJ ZXJyID0gLUVGQVVMVDsNCj4gPiA+ICsJCQlrdGhyZWFkX3VudXNlX21tKHNuYXAtPnNuYXBbaV0u bW0pOw0KPiA+ID4gKwkJCW1tcHV0KHNuYXAtPnNuYXBbaV0ubW0pOw0KPiA+ID4gKwkJCXNuYXAt PnNuYXBbaV0ubW0gPSBOVUxMOw0KPiA+ID4gKwkJfQ0KPiA+ID4gKw0KPiA+ID4gKwkJaWYgKGVy cikgew0KPiA+ID4gKwkJCWt2ZnJlZShzbmFwLT5zbmFwW2ldLmRhdGEpOw0KPiA+ID4gKwkJCXNu YXAtPnNuYXBbaV0uZGF0YSA9IEVSUl9QVFIoZXJyKTsNCj4gPiA+ICsJCX0NCj4gPiA+ICsNCj4g PiA+ICtjbGVhbnVwX2JvOg0KPiA+ID4gKwkJeGVfYm9fcHV0KGJvKTsNCj4gPiA+ICsJCXNuYXAt PnNuYXBbaV0uYm8gPSBOVUxMOw0KPiA+ID4gKwl9DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4g K3ZvaWQgeGVfdm1fc25hcHNob3RfcHJpbnQoc3RydWN0IHhlX3ZtX3NuYXBzaG90ICpzbmFwLCBz dHJ1Y3QgZHJtX3ByaW50ZXIgKnApDQo+ID4gPiArew0KPiA+ID4gKwl1bnNpZ25lZCBsb25nIGks IGo7DQo+ID4gPiArDQo+ID4gPiArCWZvciAoaSA9IDA7IGkgPCBzbmFwLT5udW1fc25hcHM7IGkr Kykgew0KPiA+ID4gKwkJaWYgKElTX0VSUihzbmFwLT5zbmFwW2ldLmRhdGEpKQ0KPiA+ID4gKwkJ CWdvdG8gdW5jYXB0dXJlZDsNCj4gPiA+ICsNCj4gPiA+ICsJCWRybV9wcmludGYocCwgIlslbGx4 XS5sZW5ndGg6IDB4JWx4XG4iLCBzbmFwLT5zbmFwW2ldLm9mcywgc25hcC0+c25hcFtpXS5sZW4p Ow0KPiA+ID4gKwkJZHJtX3ByaW50ZihwLCAiWyVsbHhdLmRhdGE6ICIsDQo+ID4gPiArCQkJICAg c25hcC0+c25hcFtpXS5vZnMgKyBqKTsNCj4gPiA+ICsNCj4gPiA+ICsJCWZvciAoaiA9IDA7IGog PCBzbmFwLT5zbmFwW2ldLmxlbjsgaiArPSBzaXplb2YodTMyKSkgew0KPiA+ID4gKwkJCXVpbnQz Ml90ICp2YWwgPSBzbmFwLT5zbmFwW2ldLmRhdGEgKyBqOw0KPiA+ID4gKwkJCWNoYXIgZHVtcGVk W0FTQ0lJODVfQlVGU1pdOw0KPiA+ID4gKw0KPiA+ID4gKwkJCWRybV9wdXRzKHAsIGFzY2lpODVf ZW5jb2RlKCp2YWwsIGR1bXBlZCkpOw0KPiA+ID4gKwkJfQ0KPiA+ID4gKw0KPiA+ID4gKwkJZHJt X3B1dHMocCwgIlxuIik7DQo+ID4gPiArCQljb250aW51ZTsNCj4gPiA+ICsNCj4gPiA+ICt1bmNh cHR1cmVkOg0KPiA+ID4gKwkJZHJtX3ByaW50ZihwLCAiVW5hYmxlIHRvIGNhcHR1cmUgcmFuZ2Ug WyVsbHgtJWxseF06ICVsaVxuIiwNCj4gPiA+ICsJCQkgICBzbmFwLT5zbmFwW2ldLm9mcywgc25h cC0+c25hcFtpXS5vZnMgKyBzbmFwLT5zbmFwW2ldLmxlbiAtIDEsDQo+ID4gPiArCQkJICAgUFRS X0VSUihzbmFwLT5zbmFwW2ldLmRhdGEpKTsNCj4gPiA+ICsJfQ0KPiA+ID4gK30NCj4gPiA+ICsN Cj4gPiA+ICt2b2lkIHhlX3ZtX3NuYXBzaG90X2ZyZWUoc3RydWN0IHhlX3ZtX3NuYXBzaG90ICpz bmFwKQ0KPiA+ID4gK3sNCj4gPiA+ICsJdW5zaWduZWQgbG9uZyBpOw0KPiA+ID4gKw0KPiA+ID4g KwlpZiAoIXNuYXApDQo+ID4gPiArCQlyZXR1cm47DQo+ID4gPiArDQo+ID4gPiArCWZvciAoaSA9 IDA7IGkgPCBzbmFwLT5udW1fc25hcHM7IGkrKykgew0KPiA+ID4gKwkJaWYgKCFJU19FUlIoc25h cC0+c25hcFtpXS5kYXRhKSkNCj4gPiA+ICsJCQlrdmZyZWUoc25hcC0+c25hcFtpXS5kYXRhKTsN Cj4gPiA+ICsJCXhlX2JvX3B1dChzbmFwLT5zbmFwW2ldLmJvKTsNCj4gPiA+ICsJCWlmIChzbmFw LT5zbmFwW2ldLm1tKQ0KPiA+ID4gKwkJCW1tcHV0KHNuYXAtPnNuYXBbaV0ubW0pOw0KPiA+ID4g Kwl9DQo+ID4gPiArCWt2ZnJlZShzbmFwKTsNCj4gPiA+ICt9DQo+ID4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmggYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uaA0K PiA+ID4gaW5kZXggZGY0YTgyZTk2MGZmMC4uNmRmMWYxYzdmODVkOSAxMDA2NDQNCj4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92bS5oDQo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0veGUveGVfdm0uaA0KPiA+ID4gQEAgLTI3MSwzICsyNzEsOCBAQCBzdGF0aWMgaW5saW5lIHZv aWQgdm1fZGJnKGNvbnN0IHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsDQo+ID4gPiAgeyAvKiBub29w ICovIH0NCj4gPiA+ICAjZW5kaWYNCj4gPiA+ICAjZW5kaWYNCj4gPiA+ICsNCj4gPiA+ICtzdHJ1 Y3QgeGVfdm1fc25hcHNob3QgKnhlX3ZtX3NuYXBzaG90X2NhcHR1cmUoc3RydWN0IHhlX3ZtICp2 bSk7DQo+ID4gPiArdm9pZCB4ZV92bV9zbmFwc2hvdF9jYXB0dXJlX2RlbGF5ZWQoc3RydWN0IHhl X3ZtX3NuYXBzaG90ICpzbmFwKTsNCj4gPiA+ICt2b2lkIHhlX3ZtX3NuYXBzaG90X3ByaW50KHN0 cnVjdCB4ZV92bV9zbmFwc2hvdCAqc25hcCwgc3RydWN0IGRybV9wcmludGVyICpwKTsNCj4gPiA+ ICt2b2lkIHhlX3ZtX3NuYXBzaG90X2ZyZWUoc3RydWN0IHhlX3ZtX3NuYXBzaG90ICpzbmFwKTsN Cj4gPiANCj4gDQoNCg==