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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 BE4F6ECAAA1 for ; Tue, 30 Aug 2022 13:17:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=mljRWL12mNOQk+3ReaDLAnkmGG3h8sGxqDhmeq6JToM=; b=1LLejQgNDkvSI7 wX8bWdfZyiDerbv1+PbbOPpXYYOha+SByQQgC6irMgboB1yIh0ROBHlHOO4dn5sjga9AHk8Gcv1cu yxJ6N5kQcmFdOviZQeyewWd0rX4Z/vngZ1WcOIahdSk9IJngbjUYM6UxqGqysEYbmf++B5RjgWp81 mR+qjO1/Wax2g2egzmoxD0+F//PrFdBSEjHw/5Uorn5llJKXD3PpZHmEr8lYxJw2aKp7dZ6Af4NAV kJetZzBow5pPX58dnnoe8FAo+6QR1PzLCceBPqfv6vpj7AiVtwdR3TACkNEZY24IcFuiN8t6wu0mQ VqVxD62bsgmiixCI0OCw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oT16W-00HKqN-40; Tue, 30 Aug 2022 13:16:32 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oT16U-00HKq8-V8 for linux-arm-kernel@bombadil.infradead.org; Tue, 30 Aug 2022 13:16:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date:Message-ID:Sender :Reply-To:Content-ID:Content-Description; bh=3nqP8QAupSaKTzdFHLCCRlPLY4NrdlFdc+gTkalpsfc=; b=fpnWyim8nLW6nw8eQTNz3T/g0y ceKJSIcZ5k8fXpkz2iDeVczLC/wAPtIgsH5rtBmu+Ey6QiILW7Zd01C4zff7AEJcrdlZBSo5uqdlZ oWpiEjt6Ur3IMxXc0mUclc4oFRmeKHzb9niiybbBMvnnXBjDdTK1wQ93Cmka9ict1FT4z4LKbtoVB SLQ+pw7dzPypdub71wnrWBHX1+Kv6DJJ0ejkuUKbECyNLCwG00Jyt45UGseiRz3fJoSjYrmkmfzCI SrLLqaMbYc4vlYavyRx9PvkYe4KuExifeOVSg7lHZ54X75FKZKJc813ASYkM3yB0tKd3dZLX88S+8 Yrt2c+9g==; Received: from mx1.riseup.net ([198.252.153.129]) by casper.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oT16R-0044uU-9e for linux-arm-kernel@lists.infradead.org; Tue, 30 Aug 2022 13:16:30 +0000 Received: from fews1.riseup.net (fews1-pn.riseup.net [10.0.1.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "mail.riseup.net", Issuer "R3" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4MH6rN25ZCzDrg6; Tue, 30 Aug 2022 13:01:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1661864485; bh=Nk7sSkLdWjbvaHwlOx/XVnKITNR4n1yEk7l3jrLRub0=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=Xgywuz6lmTAvGUs7vhxY2Loa6qW52AKr1P+aLSAV8WNCb1nXHfXLN9zA9+a7kvcGa C2O/Sa81vfeQTy6RT2sveyndq5X61MaAaJa/5eq5NBxrJwq9YwujDDfXL+vlXIzgY9 6l0M5ENRY20bYDrOXr3S/kJWWAVHQHzrazjQI4Xg= X-Riseup-User-ID: 5D5EE6516F5DE958141214263D4B3555CC47E2A84653AF835A73DC2E5E0FD65F Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews1.riseup.net (Postfix) with ESMTPSA id 4MH6rB0pmNz5vXJ; Tue, 30 Aug 2022 13:01:12 +0000 (UTC) Message-ID: <485b38c1-517c-d3fd-c5c0-7136cbae25e2@riseup.net> Date: Tue, 30 Aug 2022 10:01:11 -0300 MIME-Version: 1.0 Subject: Re: [PATCH v2 10/41] drm/modes: Add a function to generate analog display modes Content-Language: en-US To: Maxime Ripard , Maxime Ripard , Ben Skeggs , David Airlie , Chen-Yu Tsai , Thomas Zimmermann , Jani Nikula , Lyude Paul , Philipp Zabel , Maarten Lankhorst , Rodrigo Vivi , Tvrtko Ursulin , Jernej Skrabec , Samuel Holland , Karol Herbst , =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= , Emma Anholt , Daniel Vetter , Joonas Lahtinen Cc: Dom Cobley , Dave Stevenson , nouveau@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-sunxi@lists.linux.dev, Hans de Goede , Geert Uytterhoeven , Mateusz Kwiatkowski , Phil Elwell , linux-arm-kernel@lists.infradead.org References: <20220728-rpi-analog-tv-properties-v2-0-459522d653a7@cerno.tech> <20220728-rpi-analog-tv-properties-v2-10-459522d653a7@cerno.tech> From: =?UTF-8?Q?Ma=c3=adra_Canal?= In-Reply-To: <20220728-rpi-analog-tv-properties-v2-10-459522d653a7@cerno.tech> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220830_141627_992065_C6CCCBA4 X-CRM114-Status: GOOD ( 27.38 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgTWF4aW1lLAoKT24gOC8yOS8yMiAxMDoxMSwgTWF4aW1lIFJpcGFyZCB3cm90ZToKPiBNdWx0 aXBsZSBkcml2ZXJzIChtZXNvbiwgdmM0LCBzdW40aSkgZGVmaW5lIGFuYWxvZyBUViA1MjUtbGlu ZXMgYW5kCj4gNjI1LWxpbmVzIG1vZGVzIGluIHRoZWlyIGRyaXZlcnMuCj4gCj4gU2luY2UgdGhv c2UgbW9kZXMgYXJlIGZhaXJseSBzdGFuZGFyZCwgYW5kIHRoYXQgd2UnbGwgbmVlZCB0byB1c2Ug dGhlbQo+IGluIG1vcmUgcGxhY2VzIGluIHRoZSBmdXR1cmUsIGl0IG1ha2VzIHNlbnNlIHRvIG1v dmUgdGhlaXIgZGVmaW5pdGlvbgo+IGludG8gdGhlIGNvcmUgZnJhbWV3b3JrLgo+IAo+IEhvd2V2 ZXIsIGFuYWxvZyBkaXNwbGF5IHVzdWFsbHkgaGF2ZSBmYWlybHkgbG9vc2UgdGltaW5ncyByZXF1 aXJlbWVudHMsCj4gdGhlIG9ubHkgZGlzY3JldGUgcGFyYW1ldGVycyBiZWluZyB0aGUgdG90YWwg bnVtYmVyIG9mIGxpbmVzIGFuZCBwaXhlbAo+IGNsb2NrIGZyZXF1ZW5jeS4gVGh1cywgd2UgY3Jl YXRlZCBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBjcmVhdGUgYSBkaXNwbGF5Cj4gbW9kZSBmcm9tIHRo ZSBzdGFuZGFyZCwgdGhlIHBpeGVsIGZyZXF1ZW5jeSBhbmQgdGhlIGFjdGl2ZSBhcmVhLgo+IAo+ IFNpZ25lZC1vZmYtYnk6IE1heGltZSBSaXBhcmQgPG1heGltZUBjZXJuby50ZWNoPgo+IAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzLmMgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX21vZGVzLmMKPiBpbmRleCAzMDQwMDRmYjgwYWEuLmVlNTgxZWUxNzE3MSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX21vZGVzLmMKPiBAQCAtMTE2LDYgKzExNiw0NTkgQEAgdm9pZCBkcm1fbW9kZV9wcm9iZWRf YWRkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIH0KPiAgRVhQT1JUX1NZTUJP TChkcm1fbW9kZV9wcm9iZWRfYWRkKTsKPiAgCj4gK2VudW0gZHJtX21vZGVfYW5hbG9nIHsKPiAr CURSTV9NT0RFX0FOQUxPR19OVFNDLAo+ICsJRFJNX01PREVfQU5BTE9HX1BBTCwKPiArfTsKPiAr Cj4gKy8qCj4gKyAqIFRoZSB0aW1pbmdzIGNvbWUgZnJvbToKPiArICogLSBodHRwczovL3dlYi5h cmNoaXZlLm9yZy93ZWIvMjAyMjA0MDYyMzI3MDgvaHR0cDovL3d3dy5rb2x1bWJ1cy5maS9wYW1p MS92aWRlby9wYWxfbnRzYy5odG1sCj4gKyAqIC0gaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2Vi LzIwMjIwNDA2MTI0OTE0L2h0dHA6Ly9tYXJ0aW4uaGlubmVyLmluZm8vdmdhL3BhbC5odG1sCj4g KyAqIC0gaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMjIwNjA5MjAyNDMzL2h0dHA6Ly93 d3cuYmF0c29ja3MuY28udWsvcmVhZG1lL3ZpZGVvX3RpbWluZy5odG0KPiArICovCj4gKyNkZWZp bmUgTlRTQ19MSU5FX0RVUkFUSU9OX05TCQk2MzU1NlUKPiArI2RlZmluZSBOVFNDX0xJTkVTX05V TUJFUgkJNTI1Cj4gKwo+ICsjZGVmaW5lIE5UU0NfSEJMS19EVVJBVElPTl9UWVBfTlMJMTA5MDBV Cj4gKyNkZWZpbmUgTlRTQ19IQkxLX0RVUkFUSU9OX01JTl9OUwkoTlRTQ19IQkxLX0RVUkFUSU9O X1RZUF9OUyAtIDIwMCkKPiArI2RlZmluZSBOVFNDX0hCTEtfRFVSQVRJT05fTUFYX05TCShOVFND X0hCTEtfRFVSQVRJT05fVFlQX05TICsgMjAwKQo+ICsKPiArI2RlZmluZSBOVFNDX0hBQ1RfRFVS QVRJT05fVFlQX05TCShOVFNDX0xJTkVfRFVSQVRJT05fTlMgLSBOVFNDX0hCTEtfRFVSQVRJT05f VFlQX05TKQo+ICsjZGVmaW5lIE5UU0NfSEFDVF9EVVJBVElPTl9NSU5fTlMJKE5UU0NfTElORV9E VVJBVElPTl9OUyAtIE5UU0NfSEJMS19EVVJBVElPTl9NQVhfTlMpCj4gKyNkZWZpbmUgTlRTQ19I QUNUX0RVUkFUSU9OX01BWF9OUwkoTlRTQ19MSU5FX0RVUkFUSU9OX05TIC0gTlRTQ19IQkxLX0RV UkFUSU9OX01JTl9OUykKPiArCj4gKyNkZWZpbmUgTlRTQ19IRlBfRFVSQVRJT05fVFlQX05TCTE1 MDAKPiArI2RlZmluZSBOVFNDX0hGUF9EVVJBVElPTl9NSU5fTlMJMTI3MAo+ICsjZGVmaW5lIE5U U0NfSEZQX0RVUkFUSU9OX01BWF9OUwkyMjIwCj4gKwo+ICsjZGVmaW5lIE5UU0NfSFNMRU5fRFVS QVRJT05fVFlQX05TCTQ3MDAKPiArI2RlZmluZSBOVFNDX0hTTEVOX0RVUkFUSU9OX01JTl9OUwko TlRTQ19IU0xFTl9EVVJBVElPTl9UWVBfTlMgLSAxMDApCj4gKyNkZWZpbmUgTlRTQ19IU0xFTl9E VVJBVElPTl9NQVhfTlMJKE5UU0NfSFNMRU5fRFVSQVRJT05fVFlQX05TICsgMTAwKQo+ICsKPiAr I2RlZmluZSBOVFNDX0hCUF9EVVJBVElPTl9UWVBfTlMJNDcwMAo+ICsKPiArLyoKPiArICogSSBj b3VsZG4ndCBmaW5kIHRoZSBhY3R1YWwgdG9sZXJhbmNlIGZvciB0aGUgYmFjayBwb3JjaCwgc28g bGV0J3MKPiArICoganVzdCByZXVzZSB0aGUgc3luYyBsZW5ndGggb25lcy4KPiArICovCj4gKyNk ZWZpbmUgTlRTQ19IQlBfRFVSQVRJT05fTUlOX05TCShOVFNDX0hCUF9EVVJBVElPTl9UWVBfTlMg LSAxMDApCj4gKyNkZWZpbmUgTlRTQ19IQlBfRFVSQVRJT05fTUFYX05TCShOVFNDX0hCUF9EVVJB VElPTl9UWVBfTlMgKyAxMDApCj4gKwo+ICsjZGVmaW5lIFBBTF9MSU5FX0RVUkFUSU9OX05TCQk2 NDAwMFUKPiArI2RlZmluZSBQQUxfTElORVNfTlVNQkVSCQk2MjUKPiArCj4gKyNkZWZpbmUgUEFM X0hBQ1RfRFVSQVRJT05fVFlQX05TCTUxOTUwVQo+ICsjZGVmaW5lIFBBTF9IQUNUX0RVUkFUSU9O X01JTl9OUwkoUEFMX0hBQ1RfRFVSQVRJT05fVFlQX05TIC0gMTAwKQo+ICsjZGVmaW5lIFBBTF9I QUNUX0RVUkFUSU9OX01BWF9OUwkoUEFMX0hBQ1RfRFVSQVRJT05fVFlQX05TICsgNDAwKQo+ICsK PiArI2RlZmluZSBQQUxfSEJMS19EVVJBVElPTl9UWVBfTlMJKFBBTF9MSU5FX0RVUkFUSU9OX05T IC0gUEFMX0hBQ1RfRFVSQVRJT05fVFlQX05TKQo+ICsjZGVmaW5lIFBBTF9IQkxLX0RVUkFUSU9O X01JTl9OUwkoUEFMX0xJTkVfRFVSQVRJT05fTlMgLSBQQUxfSEFDVF9EVVJBVElPTl9NQVhfTlMp Cj4gKyNkZWZpbmUgUEFMX0hCTEtfRFVSQVRJT05fTUFYX05TCShQQUxfTElORV9EVVJBVElPTl9O UyAtIFBBTF9IQUNUX0RVUkFUSU9OX01JTl9OUykKPiArCj4gKyNkZWZpbmUgUEFMX0hGUF9EVVJB VElPTl9UWVBfTlMJCTE2NTAKPiArI2RlZmluZSBQQUxfSEZQX0RVUkFUSU9OX01JTl9OUwkJKFBB TF9IRlBfRFVSQVRJT05fVFlQX05TIC0gMTAwKQo+ICsjZGVmaW5lIFBBTF9IRlBfRFVSQVRJT05f TUFYX05TCQkoUEFMX0hGUF9EVVJBVElPTl9UWVBfTlMgKyA0MDApCj4gKwo+ICsjZGVmaW5lIFBB TF9IU0xFTl9EVVJBVElPTl9UWVBfTlMJNDcwMAo+ICsjZGVmaW5lIFBBTF9IU0xFTl9EVVJBVElP Tl9NSU5fTlMJKFBBTF9IU0xFTl9EVVJBVElPTl9UWVBfTlMgLSAyMDApCj4gKyNkZWZpbmUgUEFM X0hTTEVOX0RVUkFUSU9OX01BWF9OUwkoUEFMX0hTTEVOX0RVUkFUSU9OX1RZUF9OUyArIDIwMCkK PiArCj4gKyNkZWZpbmUgUEFMX0hCUF9EVVJBVElPTl9UWVBfTlMJCTU3MDAKPiArI2RlZmluZSBQ QUxfSEJQX0RVUkFUSU9OX01JTl9OUwkJKFBBTF9IQlBfRFVSQVRJT05fVFlQX05TIC0gMjAwKQo+ ICsjZGVmaW5lIFBBTF9IQlBfRFVSQVRJT05fTUFYX05TCQkoUEFMX0hCUF9EVVJBVElPTl9UWVBf TlMgKyAyMDApCj4gKwo+ICsjZGVmaW5lIFBBTF9WRlBfSU5URVJMQUNFX0xJTkVTCQk1Cj4gKyNk ZWZpbmUgUEFMX1ZTTEVOX0lOVEVSTEFDRV9MSU5FUwk1Cj4gKwo+ICsjZGVmaW5lIFBBTF9TSE9S VF9TWU5DX0RVUkFUSU9OX05TCSgoMiArIDMwKSAqIE5TRUNfUEVSX1VTRUMpCj4gKyNkZWZpbmUg UEFMX0xPTkdfU1lOQ19EVVJBVElPTl9OUwkoKDMwICsgMikgKiBOU0VDX1BFUl9VU0VDKQo+ICsK PiArc3RydWN0IGFuYWxvZ19wYXJhbV9maWVsZCB7Cj4gKwl1bnNpZ25lZCBpbnQgZXZlbiwgb2Rk Owo+ICt9Owo+ICsKPiArI2RlZmluZSBQQVJBTV9GSUVMRChfb2RkLCBfZXZlbikJCVwKPiArCXsg LmV2ZW4gPSBfZXZlbiwgLm9kZCA9IF9vZGQgfQo+ICsKPiArc3RydWN0IGFuYWxvZ19wYXJhbV9y YW5nZSB7Cj4gKwl1bnNpZ25lZCBpbnQJbWluLCB0eXAsIG1heDsKPiArfTsKPiArCj4gKyNkZWZp bmUgUEFSQU1fUkFOR0UoX21pbiwgX3R5cCwgX21heCkJCVwKPiArCXsgLm1pbiA9IF9taW4sIC50 eXAgPSBfdHlwLCAubWF4ID0gX21heCB9Cj4gKwo+ICtzdHJ1Y3QgYW5hbG9nX3BhcmFtZXRlcnMg ewo+ICsJdW5zaWduZWQgaW50CQkJbnVtX2xpbmVzOwo+ICsJdW5zaWduZWQgaW50CQkJbGluZV9k dXJhdGlvbl9uczsKPiArCj4gKwlzdHJ1Y3QgYW5hbG9nX3BhcmFtX3JhbmdlCWhhY3RfbnM7Cj4g KwlzdHJ1Y3QgYW5hbG9nX3BhcmFtX3JhbmdlCWhmcF9uczsKPiArCXN0cnVjdCBhbmFsb2dfcGFy YW1fcmFuZ2UJaHNsZW5fbnM7Cj4gKwlzdHJ1Y3QgYW5hbG9nX3BhcmFtX3JhbmdlCWhicF9uczsK PiArCXN0cnVjdCBhbmFsb2dfcGFyYW1fcmFuZ2UJaGJsa19uczsKPiArCj4gKwlzdHJ1Y3QgYW5h bG9nX3BhcmFtX2ZpZWxkCXZmcF9saW5lczsKPiArCXN0cnVjdCBhbmFsb2dfcGFyYW1fZmllbGQJ dnNsZW5fbGluZXM7Cj4gKwlzdHJ1Y3QgYW5hbG9nX3BhcmFtX2ZpZWxkCXZicF9saW5lczsKPiAr fTsKPiArCj4gKyNkZWZpbmUgVFZfTU9ERV9QQVJBTUVURVIoX21vZGUsIF9saW5lcywgX2xpbmVf ZHVyLCBfaGFjdCwgX2hmcCwgX2hzbGVuLCBfaGJwLCBfaGJsaywgX3ZmcCwgX3ZzbGVuLCBfdmJw KSBcCj4gKwlbX21vZGVdID0gewkJCQkJCQlcCj4gKwkJLm51bV9saW5lcyA9IF9saW5lcywJCQkJ CVwKPiArCQkubGluZV9kdXJhdGlvbl9ucyA9IF9saW5lX2R1ciwJCQkJXAo+ICsJCS5oYWN0X25z ID0gX2hhY3QsCQkJCQlcCj4gKwkJLmhmcF9ucyA9IF9oZnAsCQkJCQkJXAo+ICsJCS5oc2xlbl9u cyA9IF9oc2xlbiwJCQkJCVwKPiArCQkuaGJwX25zID0gX2hicCwJCQkJCQlcCj4gKwkJLmhibGtf bnMgPSBfaGJsaywJCQkJCVwKPiArCQkudmZwX2xpbmVzID0gX3ZmcCwJCQkJCVwKPiArCQkudnNs ZW5fbGluZXMgPSBfdnNsZW4sCQkJCQlcCj4gKwkJLnZicF9saW5lcyA9IF92YnAsCQkJCQlcCj4g Kwl9Cj4gKwo+ICtjb25zdCBzdGF0aWMgc3RydWN0IGFuYWxvZ19wYXJhbWV0ZXJzIHR2X21vZGVz X3BhcmFtZXRlcnNbXSA9IHsKPiArCVRWX01PREVfUEFSQU1FVEVSKERSTV9NT0RFX0FOQUxPR19O VFNDLAo+ICsJCQkgIE5UU0NfTElORVNfTlVNQkVSLAo+ICsJCQkgIE5UU0NfTElORV9EVVJBVElP Tl9OUywKPiArCQkJICBQQVJBTV9SQU5HRShOVFNDX0hBQ1RfRFVSQVRJT05fTUlOX05TLAo+ICsJ CQkJICAgICAgTlRTQ19IQUNUX0RVUkFUSU9OX1RZUF9OUywKPiArCQkJCSAgICAgIE5UU0NfSEFD VF9EVVJBVElPTl9NQVhfTlMpLAo+ICsJCQkgIFBBUkFNX1JBTkdFKE5UU0NfSEZQX0RVUkFUSU9O X01JTl9OUywKPiArCQkJCSAgICAgIE5UU0NfSEZQX0RVUkFUSU9OX1RZUF9OUywKPiArCQkJCSAg ICAgIE5UU0NfSEZQX0RVUkFUSU9OX01BWF9OUyksCj4gKwkJCSAgUEFSQU1fUkFOR0UoTlRTQ19I U0xFTl9EVVJBVElPTl9NSU5fTlMsCj4gKwkJCQkgICAgICBOVFNDX0hTTEVOX0RVUkFUSU9OX1RZ UF9OUywKPiArCQkJCSAgICAgIE5UU0NfSFNMRU5fRFVSQVRJT05fTUFYX05TKSwKPiArCQkJICBQ QVJBTV9SQU5HRShOVFNDX0hCUF9EVVJBVElPTl9NSU5fTlMsCj4gKwkJCQkgICAgICBOVFNDX0hC UF9EVVJBVElPTl9UWVBfTlMsCj4gKwkJCQkgICAgICBOVFNDX0hCUF9EVVJBVElPTl9NQVhfTlMp LAo+ICsJCQkgIFBBUkFNX1JBTkdFKE5UU0NfSEJMS19EVVJBVElPTl9NSU5fTlMsCj4gKwkJCQkg ICAgICBOVFNDX0hCTEtfRFVSQVRJT05fVFlQX05TLAo+ICsJCQkJICAgICAgTlRTQ19IQkxLX0RV UkFUSU9OX01BWF9OUyksCj4gKwkJCSAgUEFSQU1fRklFTEQoMywgMyksCj4gKwkJCSAgUEFSQU1f RklFTEQoMywgMyksCj4gKwkJCSAgUEFSQU1fRklFTEQoMywgMykpLAo+ICsJVFZfTU9ERV9QQVJB TUVURVIoRFJNX01PREVfQU5BTE9HX1BBTCwKPiArCQkJICBQQUxfTElORVNfTlVNQkVSLAo+ICsJ CQkgIFBBTF9MSU5FX0RVUkFUSU9OX05TLAo+ICsJCQkgIFBBUkFNX1JBTkdFKFBBTF9IQUNUX0RV UkFUSU9OX01JTl9OUywKPiArCQkJCSAgICAgIFBBTF9IQUNUX0RVUkFUSU9OX1RZUF9OUywKPiAr CQkJCSAgICAgIFBBTF9IQUNUX0RVUkFUSU9OX01BWF9OUyksCj4gKwkJCSAgUEFSQU1fUkFOR0Uo UEFMX0hGUF9EVVJBVElPTl9NSU5fTlMsCj4gKwkJCQkgICAgICBQQUxfSEZQX0RVUkFUSU9OX1RZ UF9OUywKPiArCQkJCSAgICAgIFBBTF9IRlBfRFVSQVRJT05fTUFYX05TKSwKPiArCQkJICBQQVJB TV9SQU5HRShQQUxfSFNMRU5fRFVSQVRJT05fTUlOX05TLAo+ICsJCQkJICAgICAgUEFMX0hTTEVO X0RVUkFUSU9OX1RZUF9OUywKPiArCQkJCSAgICAgIFBBTF9IU0xFTl9EVVJBVElPTl9NQVhfTlMp LAo+ICsJCQkgIFBBUkFNX1JBTkdFKFBBTF9IQlBfRFVSQVRJT05fTUlOX05TLAo+ICsJCQkJICAg ICAgUEFMX0hCUF9EVVJBVElPTl9UWVBfTlMsCj4gKwkJCQkgICAgICBQQUxfSEJQX0RVUkFUSU9O X01BWF9OUyksCj4gKwkJCSAgUEFSQU1fUkFOR0UoUEFMX0hCTEtfRFVSQVRJT05fTUlOX05TLAo+ ICsJCQkJICAgICAgUEFMX0hCTEtfRFVSQVRJT05fVFlQX05TLAo+ICsJCQkJICAgICAgUEFMX0hC TEtfRFVSQVRJT05fTUFYX05TKSwKPiArCj4gKwkJCSAgLyoKPiArCQkJICAgKiBUaGUgZnJvbnQg cG9yY2ggaXMgYWN0dWFsbHkgNiBzaG9ydCBzeW5jCj4gKwkJCSAgICogcHVsc2VzIGZvciB0aGUg ZXZlbiBmaWVsZCwgYW5kIDUgZm9yIHRoZQo+ICsJCQkgICAqIG9kZCBmaWVsZC4gRWFjaCBzeW5j IHRha2VzIGhhbGYgYSBsaWZlIHNvCj4gKwkJCSAgICogdGhlIG9kZCBmaWVsZCBmcm9udCBwb3Jj aCBpcyBzaG9ydGVyIGJ5Cj4gKwkJCSAgICogaGFsZiBhIGxpbmUuCj4gKwkJCSAgICoKPiArCQkJ ICAgKiBJbiBwcm9ncmVzc2l2ZSwgd2UncmUgc3VwcG9zZWQgdG8gdXNlIDYKPiArCQkJICAgKiBw dWxzZXMsIHNvIHdlJ3JlIGZpbmUgdGhlcmUKPiArCQkJICAgKi8KPiArCQkJICBQQVJBTV9GSUVM RCgzLCAyKSwKPiArCj4gKwkJCSAgLyoKPiArCQkJICAgKiBUaGUgdnN5bmMgbGVuZ3RoIGlzIDUg bG9uZyBzeW5jIHB1bHNlcywKPiArCQkJICAgKiBlYWNoIGZpZWxkIHRha2luZyBoYWxmIGEgbGlu ZS4gV2UncmUKPiArCQkJICAgKiBzaG9ydGVyIGZvciBib3RoIGZpZWxkcyBieSBoYWxmIGEgbGlu ZS4KPiArCQkJICAgKgo+ICsJCQkgICAqIEluIHByb2dyZXNzaXZlLCB3ZSdyZSBzdXBwb3NlZCB0 byB1c2UgNQo+ICsJCQkgICAqIHB1bHNlcywgc28gd2UncmUgb2ZmIGJ5IGhhbGYKPiArCQkJICAg KiBhIGxpbmUuCj4gKwkJCSAgICoKPiArCQkJICAgKiBJbiBpbnRlcmxhY2UsIHdlJ3JlIG5vdyBv ZmYgYnkgaGFsZiBhIGxpbmUKPiArCQkJICAgKiBmb3IgdGhlIGV2ZW4gZmllbGQgYW5kIG9uZSBs aW5lIGZvciB0aGUgb2RkCj4gKwkJCSAgICogZmllbGQuCj4gKwkJCSAgICovCj4gKwkJCSAgUEFS QU1fRklFTEQoMywgMyksCj4gKwo+ICsJCQkgIC8qCj4gKwkJCSAgICogVGhlIGJhY2sgcG9yY2gg aXMgYWN0dWFsbHkgNSBzaG9ydCBzeW5jCj4gKwkJCSAgICogcHVsc2VzIGZvciB0aGUgZXZlbiBm aWVsZCwgNCBmb3IgdGhlIG9kZAo+ICsJCQkgICAqIGZpZWxkLiBJbiBwcm9ncmVzc2l2ZSwgaXQn cyA1IHNob3J0IHN5bmNzLgo+ICsJCQkgICAqCj4gKwkJCSAgICogSW4gcHJvZ3Jlc3NpdmUsIHdl IHRodXMgaGF2ZSAyLjUgbGluZXMsCj4gKwkJCSAgICogcGx1cyB0aGUgMC41IGxpbmUgd2Ugd2Vy ZSBtaXNzaW5nCj4gKwkJCSAgICogcHJldmlvdXNseSwgc28gd2Ugc2hvdWxkIHVzZSAzIGxpbmVz Lgo+ICsJCQkgICAqCj4gKwkJCSAgICogSW4gaW50ZXJsYWNlLCB0aGUgZXZlbiBmaWVsZCBpcyBp biB0aGUKPiArCQkJICAgKiBleGFjdCBzYW1lIGNhc2UgdGhhbiBwcm9ncmVzc2l2ZS4gRm9yIHRo ZQo+ICsJCQkgICAqIG9kZCBmaWVsZCwgd2Ugc2hvdWxkIGJlIHVzaW5nIDIgbGluZXMgYnV0Cj4g KwkJCSAgICogd2UncmUgb25lIGxpbmUgc2hvcnQsIHNvIHdlJ2xsIG1ha2UgdXAgZm9yCj4gKwkJ CSAgICogaXQgaGVyZSBieSB1c2luZyAzLgo+ICsJCQkgICAqLwo+ICsJCQkgIFBBUkFNX0ZJRUxE KDMsIDMpKSwKPiArfTsKPiArCj4gK3N0YXRpYyBpbnQgZmlsbF9hbmFsb2dfbW9kZShzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiArCQkJICAgIGNvbnN0IHN0cnVjdCBhbmFsb2dfcGFy YW1ldGVycyAqcGFyYW1zLAo+ICsJCQkgICAgdW5zaWduZWQgbG9uZyBwaXhlbF9jbG9ja19oeiwK PiArCQkJICAgIHVuc2lnbmVkIGludCBoYWN0aXZlLAo+ICsJCQkgICAgdW5zaWduZWQgaW50IHZh Y3RpdmUsCj4gKwkJCSAgICBib29sIGludGVybGFjZSkKPiArewo+ICsJdW5zaWduZWQgbG9uZyBw aXhlbF9kdXJhdGlvbl9ucyA9IE5TRUNfUEVSX1NFQyAvIHBpeGVsX2Nsb2NrX2h6Owo+ICsJdW5z aWduZWQgbG9uZyBsb25nIGh0b3RhbDsKPiArCXVuc2lnbmVkIGludCB2dG90YWw7Cj4gKwl1bnNp Z25lZCBpbnQgbWF4X2hhY3QsIGhhY3RfZHVyYXRpb25fbnM7Cj4gKwl1bnNpZ25lZCBpbnQgaGJs aywgaGJsa19kdXJhdGlvbl9uczsKPiArCXVuc2lnbmVkIGludCBoZnAsIGhmcF9taW4sIGhmcF9k dXJhdGlvbl9uczsKPiArCXVuc2lnbmVkIGludCBoc2xlbiwgaHNsZW5fZHVyYXRpb25fbnM7Cj4g Kwl1bnNpZ25lZCBpbnQgaGJwLCBoYnBfbWluLCBoYnBfZHVyYXRpb25fbnM7Cj4gKwl1bnNpZ25l ZCBpbnQgcG9yY2hlcywgcG9yY2hlc19kdXJhdGlvbl9uczsKPiArCXVuc2lnbmVkIGludCB2ZnAs IHZmcF9taW47Cj4gKwl1bnNpZ25lZCBpbnQgdmJwLCB2YnBfbWluOwo+ICsJdW5zaWduZWQgaW50 IHZzbGVuOwo+ICsJaW50IHBvcmNoZXNfcmVtOwo+ICsJYm9vbCBzdHJpY3QgPSB0cnVlOwo+ICsK PiArCW1heF9oYWN0ID0gcGFyYW1zLT5oYWN0X25zLm1heCAvIHBpeGVsX2R1cmF0aW9uX25zOwo+ ICsJaWYgKHBpeGVsX2Nsb2NrX2h6ID09IDEzNTAwMDAwICYmIGhhY3RpdmUgPiBtYXhfaGFjdCAm JiBoYWN0aXZlIDw9IDcyMCkKPiArCQlzdHJpY3QgPSBmYWxzZTsKPiArCj4gKwkvKgo+ICsJICog T3VyIHBpeGVsIGR1cmF0aW9uIGlzIGdvaW5nIHRvIGJlIHJvdW5kIGRvd24gYnkgdGhlIGRpdmlz aW9uLAo+ICsJICogc28gcm91bmRpbmcgdXAgaXMgcHJvYmFibHkgZ29pbmcgdG8gaW50cm9kdWNl IGV2ZW4gbW9yZQo+ICsJICogZGV2aWF0aW9uLgo+ICsJICovCj4gKwlodG90YWwgPSBwYXJhbXMt PmxpbmVfZHVyYXRpb25fbnMgKiBwaXhlbF9jbG9ja19oeiAvIE5TRUNfUEVSX1NFQzsKPiArCj4g KwloYWN0X2R1cmF0aW9uX25zID0gaGFjdGl2ZSAqIHBpeGVsX2R1cmF0aW9uX25zOwo+ICsJaWYg KHN0cmljdCAmJgo+ICsJICAgIChoYWN0X2R1cmF0aW9uX25zIDwgcGFyYW1zLT5oYWN0X25zLm1p biB8fAo+ICsJICAgICBoYWN0X2R1cmF0aW9uX25zID4gcGFyYW1zLT5oYWN0X25zLm1heCkpIHsK PiArCQlEUk1fRVJST1IoIkludmFsaWQgaG9yaXpvbnRhbCBhY3RpdmUgYXJlYSBkdXJhdGlvbjog JXVucyAobWluOiAldSwgbWF4ICV1KVxuIiwKPiArCQkJICBoYWN0X2R1cmF0aW9uX25zLCBwYXJh bXMtPmhhY3RfbnMubWluLCBwYXJhbXMtPmhhY3RfbnMubWF4KTsKPiArCQlyZXR1cm4gLUVJTlZB TDsKPiArCX0KPiArCj4gKwloYmxrID0gaHRvdGFsIC0gaGFjdGl2ZTsKPiArCWhibGtfZHVyYXRp b25fbnMgPSBoYmxrICogcGl4ZWxfZHVyYXRpb25fbnM7Cj4gKwlpZiAoc3RyaWN0ICYmCj4gKwkg ICAgKGhibGtfZHVyYXRpb25fbnMgPCBwYXJhbXMtPmhibGtfbnMubWluIHx8Cj4gKwkgICAgIGhi bGtfZHVyYXRpb25fbnMgPiBwYXJhbXMtPmhibGtfbnMubWF4KSkgewo+ICsJCURSTV9FUlJPUigi SW52YWxpZCBob3Jpem9udGFsIGJsYW5raW5nIGR1cmF0aW9uOiAldW5zIChtaW46ICV1LCBtYXgg JXUpXG4iLAo+ICsJCQkgIGhibGtfZHVyYXRpb25fbnMsIHBhcmFtcy0+aGJsa19ucy5taW4sIHBh cmFtcy0+aGJsa19ucy5tYXgpOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsJfQo+ICsKPiArCWhz bGVuID0gRElWX1JPVU5EX1VQKHBhcmFtcy0+aHNsZW5fbnMudHlwLCBwaXhlbF9kdXJhdGlvbl9u cyk7Cj4gKwloc2xlbl9kdXJhdGlvbl9ucyA9IGhzbGVuICogcGl4ZWxfZHVyYXRpb25fbnM7Cj4g KwlpZiAoc3RyaWN0ICYmCj4gKwkgICAgKGhzbGVuX2R1cmF0aW9uX25zIDwgcGFyYW1zLT5oc2xl bl9ucy5taW4gfHwKPiArCSAgICAgaHNsZW5fZHVyYXRpb25fbnMgPiBwYXJhbXMtPmhzbGVuX25z Lm1heCkpIHsKPiArCQlEUk1fRVJST1IoIkludmFsaWQgaG9yaXpvbnRhbCBzeW5jIGR1cmF0aW9u OiAldW5zIChtaW46ICV1LCBtYXggJXUpXG4iLAo+ICsJCQkgIGhzbGVuX2R1cmF0aW9uX25zLCBw YXJhbXMtPmhzbGVuX25zLm1pbiwgcGFyYW1zLT5oc2xlbl9ucy5tYXgpOwo+ICsJCXJldHVybiAt RUlOVkFMOwo+ICsJfQo+ICsKPiArCXBvcmNoZXMgPSBoYmxrIC0gaHNsZW47Cj4gKwlwb3JjaGVz X2R1cmF0aW9uX25zID0gcG9yY2hlcyAqIHBpeGVsX2R1cmF0aW9uX25zOwo+ICsJaWYgKHN0cmlj dCAmJgo+ICsJICAgIChwb3JjaGVzX2R1cmF0aW9uX25zID4gKHBhcmFtcy0+aGZwX25zLm1heCAr IHBhcmFtcy0+aGJwX25zLm1heCkgfHwKPiArCSAgICAgcG9yY2hlc19kdXJhdGlvbl9ucyA8IChw YXJhbXMtPmhmcF9ucy5taW4gKyBwYXJhbXMtPmhicF9ucy5taW4pKSkgewo+ICsJCURSTV9FUlJP UigiSW52YWxpZCBob3Jpem9udGFsIHBvcmNoZXMgZHVyYXRpb246ICV1bnNcbiIsIHBvcmNoZXNf ZHVyYXRpb25fbnMpOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsJfQo+ICsKPiArCWhmcF9taW4g PSBESVZfUk9VTkRfVVAocGFyYW1zLT5oZnBfbnMubWluLCBwaXhlbF9kdXJhdGlvbl9ucyk7Cj4g KwloYnBfbWluID0gRElWX1JPVU5EX1VQKHBhcmFtcy0+aGJwX25zLm1pbiwgcGl4ZWxfZHVyYXRp b25fbnMpOwo+ICsJcG9yY2hlc19yZW0gPSBwb3JjaGVzIC0gaGZwX21pbiAtIGhicF9taW47Cj4g Kwo+ICsJaGZwID0gaGZwX21pbiArIERJVl9ST1VORF9VUChwb3JjaGVzX3JlbSwgMik7Cj4gKwlo ZnBfZHVyYXRpb25fbnMgPSBoZnAgKiBwaXhlbF9kdXJhdGlvbl9uczsKPiArCWlmIChzdHJpY3Qg JiYKPiArCSAgICAoaGZwX2R1cmF0aW9uX25zIDwgcGFyYW1zLT5oZnBfbnMubWluIHx8Cj4gKwkg ICAgIGhmcF9kdXJhdGlvbl9ucyA+IHBhcmFtcy0+aGZwX25zLm1heCkpIHsKPiArCQlEUk1fRVJS T1IoIkludmFsaWQgaG9yaXpvbnRhbCBmcm9udCBwb3JjaCBkdXJhdGlvbjogJXVucyAobWluOiAl dSwgbWF4ICV1KVxuIiwKPiArCQkJICBoZnBfZHVyYXRpb25fbnMsIHBhcmFtcy0+aGZwX25zLm1p biwgcGFyYW1zLT5oZnBfbnMubWF4KTsKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCX0KPiArCj4g KwloYnAgPSBwb3JjaGVzIC0gaGZwOwo+ICsJaGJwX2R1cmF0aW9uX25zID0gaGJwICogcGl4ZWxf ZHVyYXRpb25fbnM7Cj4gKwlpZiAoc3RyaWN0ICYmCj4gKwkgICAgKGhicF9kdXJhdGlvbl9ucyA8 IHBhcmFtcy0+aGJwX25zLm1pbiB8fAo+ICsJICAgICBoYnBfZHVyYXRpb25fbnMgPiBwYXJhbXMt PmhicF9ucy5tYXgpKSB7Cj4gKwkJRFJNX0VSUk9SKCJJbnZhbGlkIGhvcml6b250YWwgYmFjayBw b3JjaCBkdXJhdGlvbjogJXVucyAobWluOiAldSwgbWF4ICV1KVxuIiwKPiArCQkJICBoYnBfZHVy YXRpb25fbnMsIHBhcmFtcy0+aGJwX25zLm1pbiwgcGFyYW1zLT5oYnBfbnMubWF4KTsKPiArCQly ZXR1cm4gLUVJTlZBTDsKPiArCX0KPiArCj4gKwlpZiAoaHRvdGFsICE9IChoYWN0aXZlICsgaGZw ICsgaHNsZW4gKyBoYnApKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCW1vZGUtPmNsb2Nr ID0gcGl4ZWxfY2xvY2tfaHogLyAxMDAwOwo+ICsJbW9kZS0+aGRpc3BsYXkgPSBoYWN0aXZlOwo+ ICsJbW9kZS0+aHN5bmNfc3RhcnQgPSBoYWN0aXZlICsgaGZwOwo+ICsJbW9kZS0+aHN5bmNfZW5k ID0gaGFjdGl2ZSArIGhmcCArIGhzbGVuOwo+ICsJbW9kZS0+aHRvdGFsID0gaGFjdGl2ZSArIGhm cCArIGhzbGVuICsgaGJwOwo+ICsKPiArCWlmIChpbnRlcmxhY2UpIHsKPiArCQl2ZnBfbWluID0g cGFyYW1zLT52ZnBfbGluZXMuZXZlbiArIHBhcmFtcy0+dmZwX2xpbmVzLm9kZDsKPiArCQl2YnBf bWluID0gcGFyYW1zLT52YnBfbGluZXMuZXZlbiArIHBhcmFtcy0+dmJwX2xpbmVzLm9kZDsKPiAr CQl2c2xlbiA9IHBhcmFtcy0+dnNsZW5fbGluZXMuZXZlbiArIHBhcmFtcy0+dnNsZW5fbGluZXMu b2RkOwo+ICsJfSBlbHNlIHsKPiArCQkvKgo+ICsJCSAqIEJ5IGNvbnZlbnRpb24sIE5TVEMgKGFr YSA1MjUvNjApIHN5c3RlbXMgc3RhcnQgd2l0aAo+ICsJCSAqIHRoZSBldmVuIGZpZWxkLCBidXQg UEFMIChha2EgNjI1LzUwKSBzeXN0ZW1zIHN0YXJ0Cj4gKwkJICogd2l0aCB0aGUgb2RkIG9uZS4K PiArCQkgKgo+ICsJCSAqIFBBTCBzeXN0ZW1zIGFsc28gaGF2ZSBhc3ltZXRyaWMgdGltaW5ncyBi ZXR3ZWVuIHRoZQo+ICsJCSAqIGV2ZW4gYW5kIG9kZCBmaWVsZCwgd2hpbGUgTlRTQyBpcyBzeW1l dHJpYy4KPiArCQkgKgo+ICsJCSAqIE1vcmVvdmVyLCBpZiB3ZSB3YW50IHRvIGNyZWF0ZSBhIHBy b2dyZXNzaXZlIG1vZGUgZm9yCj4gKwkJICogUEFMLCB3ZSBuZWVkIHRvIHVzZSB0aGUgb2RkIGZp ZWxkIHRpbWluZ3MuCj4gKwkJICoKPiArCQkgKiBTaW5jZSBvZGQgPT0gZXZlbiBmb3IgTlRTQywg d2UgY2FuIGp1c3QgdXNlIHRoZSBvZGQKPiArCQkgKiBvbmUgYWxsIHRoZSB0aW1lIHRvIHNpbXBs aWZ5IHRoZSBjb2RlIGEgYml0Lgo+ICsJCSAqLwo+ICsJCXZmcF9taW4gPSBwYXJhbXMtPnZmcF9s aW5lcy5vZGQ7Cj4gKwkJdmJwX21pbiA9IHBhcmFtcy0+dmJwX2xpbmVzLm9kZDsKPiArCQl2c2xl biA9IHBhcmFtcy0+dnNsZW5fbGluZXMub2RkOwo+ICsJfQo+ICsKPiArCXBvcmNoZXMgPSBwYXJh bXMtPm51bV9saW5lcyAtIHZhY3RpdmUgLSB2c2xlbjsKPiArCXBvcmNoZXNfcmVtID0gcG9yY2hl cyAtIHZmcF9taW4gLSB2YnBfbWluOwo+ICsKPiArCXZmcCA9IHZmcF9taW4gKyAocG9yY2hlc19y ZW0gLyAyKTsKPiArCXZicCA9IHBvcmNoZXMgLSB2ZnA7Cj4gKwo+ICsJdnRvdGFsID0gdmFjdGl2 ZSArIHZmcCArIHZzbGVuICsgdmJwOwo+ICsJaWYgKHBhcmFtcy0+bnVtX2xpbmVzICE9IHZ0b3Rh bCkgewo+ICsJCURSTV9FUlJPUigiSW52YWxpZCB2ZXJ0aWNhbCB0b3RhbDogJXVweCAoZXhwZWN0 ZWQgJXVweClcbiIsCj4gKwkJCSAgdnRvdGFsLCBwYXJhbXMtPm51bV9saW5lcyk7Cj4gKwkJcmV0 dXJuIC1FSU5WQUw7Cj4gKwl9Cj4gKwo+ICsJbW9kZS0+dmRpc3BsYXkgPSB2YWN0aXZlOwo+ICsJ bW9kZS0+dnN5bmNfc3RhcnQgPSB2YWN0aXZlICsgdmZwOwo+ICsJbW9kZS0+dnN5bmNfZW5kID0g dmFjdGl2ZSArIHZmcCArIHZzbGVuOwo+ICsJbW9kZS0+dnRvdGFsID0gdmFjdGl2ZSArIHZmcCAr IHZzbGVuICsgdmJwOwo+ICsKPiArCW1vZGUtPnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZFUjsK PiArCW1vZGUtPmZsYWdzID0gRFJNX01PREVfRkxBR19OVlNZTkMgfCBEUk1fTU9ERV9GTEFHX05I U1lOQzsKPiArCWlmIChpbnRlcmxhY2UpCj4gKwkJbW9kZS0+ZmxhZ3MgfD0gRFJNX01PREVfRkxB R19JTlRFUkxBQ0U7Cj4gKwo+ICsJZHJtX21vZGVfc2V0X25hbWUobW9kZSk7Cj4gKwo+ICsJaWYg KG1vZGUtPnZ0b3RhbCAhPSBwYXJhbXMtPm51bV9saW5lcykKPiArCQlyZXR1cm4gLUVJTlZBTDsK PiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArLyoqCj4gKyAqIGRybV9hbmFsb2dfdHZfbW9k ZSAtIGNyZWF0ZSBhIGRpc3BsYXkgbW9kZSBmb3IgYW4gYW5hbG9nIFRWCj4gKyAqIEBkZXY6IGRy bSBkZXZpY2UKPiArICogQHR2X21vZGU6IFRWIE1vZGUgc3RhbmRhcmQgdG8gY3JlYXRlIGEgbW9k ZSBmb3IuIFNlZSBEUk1fTU9ERV9UVl9NT0RFXyouCj4gKyAqIEBwaXhlbF9jbG9ja19oejogUGl4 ZWwgQ2xvY2sgRnJlcXVlbmN5LCBpbiBIZXJ0ego+ICsgKiBAaGRpc3BsYXk6IGhkaXNwbGF5IHNp emUKPiArICogQHZkaXNwbGF5OiB2ZGlzcGxheSBzaXplCj4gKyAqIEBpbnRlcmxhY2U6IHdoZXRo ZXIgdG8gY29tcHV0ZSBhbiBpbnRlcmxhY2VkIG1vZGUKPiArICoKPiArICogVGhpcyBmdW5jdGlv biBjcmVhdGVzIGEgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgaW5zdGFuY2Ugc3VpdGVkIGZvcgo+ ICsgKiBhbiBhbmFsb2cgVFYgb3V0cHV0LCBmb3Igb25lIG9mIHRoZSB1c3VhbCBhbmFsb2cgVFYg bW9kZS4KPiArICoKPiArICogTm90ZSB0aGF0IEBoZGlzcGxheSBpcyBsYXJnZXIgdGhhbiB0aGUg dXN1YWwgY29uc3RyYWludHMgZm9yIHRoZSBQQUwKPiArICogYW5kIE5UU0MgdGltaW5ncywgYW5k IHdlJ2xsIGNob29zZSB0byBpZ25vcmUgbW9zdCB0aW1pbmdzIGNvbnN0cmFpbnRzCj4gKyAqIHRv IHJlYWNoIHRob3NlIHJlc29sdXRpb25zLgo+ICsgKgo+ICsgKiBSZXR1cm5zOgo+ICsgKgo+ICsg KiBBIHBvaW50ZXIgdG8gdGhlIG1vZGUsIGFsbG9jYXRlZCB3aXRoIGRybV9tb2RlX2NyZWF0ZSgp LiBSZXR1cm5zIE5VTEwKPiArICogb24gZXJyb3IuCj4gKyAqLwo+ICtzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqZHJtX2FuYWxvZ190dl9tb2RlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJ CQkJICAgIGVudW0gZHJtX2Nvbm5lY3Rvcl90dl9tb2RlIHR2X21vZGUsCj4gKwkJCQkJICAgIHVu c2lnbmVkIGxvbmcgcGl4ZWxfY2xvY2tfaHosCj4gKwkJCQkJICAgIHVuc2lnbmVkIGludCBoZGlz cGxheSwKPiArCQkJCQkgICAgdW5zaWduZWQgaW50IHZkaXNwbGF5LAo+ICsJCQkJCSAgICBib29s IGludGVybGFjZSkKPiArewo+ICsJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7Cj4gKwll bnVtIGRybV9tb2RlX2FuYWxvZyBhbmFsb2c7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXN3aXRjaCAo dHZfbW9kZSkgewo+ICsJY2FzZSBEUk1fTU9ERV9UVl9NT0RFX05UU0NfNDQzOgo+ICsJCWZhbGx0 aHJvdWdoOwo+ICsJY2FzZSBEUk1fTU9ERV9UVl9NT0RFX05UU0NfSjoKPiArCQlmYWxsdGhyb3Vn aDsKPiArCWNhc2UgRFJNX01PREVfVFZfTU9ERV9OVFNDX006Cj4gKwkJZmFsbHRocm91Z2g7Cj4g KwljYXNlIERSTV9NT0RFX1RWX01PREVfUEFMXzYwOgo+ICsJCWZhbGx0aHJvdWdoOwo+ICsJY2Fz ZSBEUk1fTU9ERV9UVl9NT0RFX1BBTF9NOgo+ICsJCWZhbGx0aHJvdWdoOwo+ICsJY2FzZSBEUk1f TU9ERV9UVl9NT0RFX1NFQ0FNXzYwOgo+ICsJCWFuYWxvZyA9IERSTV9NT0RFX0FOQUxPR19OVFND Owo+ICsJCWJyZWFrOwo+ICsKPiArCWNhc2UgRFJNX01PREVfVFZfTU9ERV9QQUxfQjoKPiArCQlm YWxsdGhyb3VnaDsKPiArCWNhc2UgRFJNX01PREVfVFZfTU9ERV9QQUxfRDoKPiArCQlmYWxsdGhy b3VnaDsKPiArCWNhc2UgRFJNX01PREVfVFZfTU9ERV9QQUxfRzoKPiArCQlmYWxsdGhyb3VnaDsK PiArCWNhc2UgRFJNX01PREVfVFZfTU9ERV9QQUxfSDoKPiArCQlmYWxsdGhyb3VnaDsKPiArCWNh c2UgRFJNX01PREVfVFZfTU9ERV9QQUxfSToKPiArCQlmYWxsdGhyb3VnaDsKPiArCWNhc2UgRFJN X01PREVfVFZfTU9ERV9QQUxfTjoKPiArCQlmYWxsdGhyb3VnaDsKPiArCWNhc2UgRFJNX01PREVf VFZfTU9ERV9QQUxfTkM6Cj4gKwkJZmFsbHRocm91Z2g7Cj4gKwljYXNlIERSTV9NT0RFX1RWX01P REVfU0VDQU1fQjoKPiArCQlmYWxsdGhyb3VnaDsKPiArCWNhc2UgRFJNX01PREVfVFZfTU9ERV9T RUNBTV9EOgo+ICsJCWZhbGx0aHJvdWdoOwo+ICsJY2FzZSBEUk1fTU9ERV9UVl9NT0RFX1NFQ0FN X0c6Cj4gKwkJZmFsbHRocm91Z2g7Cj4gKwljYXNlIERSTV9NT0RFX1RWX01PREVfU0VDQU1fSzoK PiArCQlmYWxsdGhyb3VnaDsKPiArCWNhc2UgRFJNX01PREVfVFZfTU9ERV9TRUNBTV9LMToKPiAr CQlmYWxsdGhyb3VnaDsKPiArCWNhc2UgRFJNX01PREVfVFZfTU9ERV9TRUNBTV9MOgo+ICsJCWFu YWxvZyA9IERSTV9NT0RFX0FOQUxPR19QQUw7Cj4gKwkJYnJlYWs7Cj4gKwo+ICsJZGVmYXVsdDoK PiArCQlyZXR1cm4gTlVMTDsKPiArCX0KPiArCj4gKwltb2RlID0gZHJtX21vZGVfY3JlYXRlKGRl dik7Cj4gKwlpZiAoIW1vZGUpCj4gKwkJcmV0dXJuIE5VTEw7Cj4gKwo+ICsJcmV0ID0gZmlsbF9h bmFsb2dfbW9kZShtb2RlLAo+ICsJCQkgICAgICAgJnR2X21vZGVzX3BhcmFtZXRlcnNbYW5hbG9n XSwKPiArCQkJICAgICAgIHBpeGVsX2Nsb2NrX2h6LCBoZGlzcGxheSwgdmRpc3BsYXksIGludGVy bGFjZSk7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZXJyX2ZyZWVfbW9kZTsKPiArCj4gKwlyZXR1 cm4gbW9kZTsKPiArCj4gK2Vycl9mcmVlX21vZGU6Cj4gKwlkcm1fbW9kZV9kZXN0cm95KGRldiwg bW9kZSk7Cj4gKwlyZXR1cm4gTlVMTDsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9hbmFsb2df dHZfbW9kZSk7Cj4gKwo+ICAvKioKPiAgICogZHJtX2N2dF9tb2RlIC1jcmVhdGUgYSBtb2RlbGlu ZSBiYXNlZCBvbiB0aGUgQ1ZUIGFsZ29yaXRobQo+ICAgKiBAZGV2OiBkcm0gZGV2aWNlCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZXN0cy9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2Ry bS90ZXN0cy9NYWtlZmlsZQo+IGluZGV4IGIyOWVmMTA4NWNhZC4uYjIyYWM5NmZkZDY1IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90ZXN0cy9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS90ZXN0cy9NYWtlZmlsZQo+IEBAIC0xMCw1ICsxMCw2IEBAIG9iai0kKENPTkZJR19E Uk1fS1VOSVRfVEVTVCkgKz0gXAo+ICAJZHJtX2ZyYW1lYnVmZmVyX3Rlc3QubyBcCj4gIAlkcm1f a3VuaXRfaGVscGVycy5vIFwKPiAgCWRybV9tbV90ZXN0Lm8gXAo+ICsJZHJtX21vZGVzX3Rlc3Qu byBcCj4gIAlkcm1fcGxhbmVfaGVscGVyX3Rlc3QubyBcCj4gIAlkcm1fcmVjdF90ZXN0Lm8KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9tb2Rlc190ZXN0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX21vZGVzX3Rlc3QuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi44N2QzOThmY2I5OWUKPiAtLS0gL2Rldi9udWxsCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9tb2Rlc190ZXN0LmMKPiBAQCAtMCwwICsxLDEz MSBAQAo+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+ICsvKgo+ICsgKiBL dW5pdCB0ZXN0IGZvciBkcm1fbW9kZXMgZnVuY3Rpb25zCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUg PGt1bml0L3Rlc3QuaD4KPiArCj4gKyNpbmNsdWRlIDxkcm0vZHJtX21vZGVzLmg+Cj4gKwo+ICsj aW5jbHVkZSAiZHJtX2t1bml0X2hlbHBlcnMuaCIKPiArCj4gK3N0cnVjdCBkcm1fbW9kZXNfdGVz dF9wcml2IHsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkcm07Cj4gK307Cj4gKwo+ICtzdGF0aWMg aW50IGRybV9tb2Rlc190ZXN0X2luaXQoc3RydWN0IGt1bml0ICp0ZXN0KQo+ICt7Cj4gKwlzdHJ1 Y3QgZHJtX21vZGVzX3Rlc3RfcHJpdiAqcHJpdjsKPiArCj4gKwlwcml2ID0ga3VuaXRfa3phbGxv Yyh0ZXN0LCBzaXplb2YoKnByaXYpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghcHJpdikKPiArCQly ZXR1cm4gLUVOT01FTTsKCkkgYmVsaWV2ZSBpdCB3b3VsZCBiZSBuaWNlciB0byB1c2UgS1VOSVRf QVNTRVJUX05PVF9OVUxMIGhlcmUsIGluc3RlYWQKb2YgcmV0dXJuaW5nIGEgZXJyb3IuCgo+ICsJ dGVzdC0+cHJpdiA9IHByaXY7Cj4gKwo+ICsJcHJpdi0+ZHJtID0gZHJtX2t1bml0X2RldmljZV9p bml0KCJkcm0tbW9kZXMtdGVzdCIpOwo+ICsJaWYgKElTX0VSUihwcml2LT5kcm0pKQo+ICsJCXJl dHVybiBQVFJfRVJSKHByaXYtPmRybSk7CgpIZXJlIHlvdSBjb3VsZCB1c2UgS1VOSVRfQVNTRVJU X05PVF9FUlJfT1JfTlVMTC4KCj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyB2 b2lkIGRybV9tb2Rlc190ZXN0X2V4aXQoc3RydWN0IGt1bml0ICp0ZXN0KQo+ICt7Cj4gKwlzdHJ1 Y3QgZHJtX21vZGVzX3Rlc3RfcHJpdiAqcHJpdiA9IHRlc3QtPnByaXY7Cj4gKwo+ICsJZHJtX2t1 bml0X2RldmljZV9leGl0KHByaXYtPmRybSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGRybV9t b2Rlc19hbmFsb2dfdHZfbnRzY180ODBpKHN0cnVjdCBrdW5pdCAqdGVzdCkKPiArewo+ICsJc3Ry dWN0IGRybV9tb2Rlc190ZXN0X3ByaXYgKnByaXYgPSB0ZXN0LT5wcml2Owo+ICsJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGU7Cj4gKwo+ICsJbW9kZSA9IGRybV9hbmFsb2dfdHZfbW9kZShw cml2LT5kcm0sCj4gKwkJCQkgIERSTV9NT0RFX1RWX01PREVfTlRTQ19NLAo+ICsJCQkJICAxMzUw MCAqIDEwMDAsIDcyMCwgNDgwLAo+ICsJCQkJICB0cnVlKTsKPiArCUtVTklUX0FTU0VSVF9OT1Rf TlVMTCh0ZXN0LCBtb2RlKTsKPiArCj4gKwlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgZHJtX21vZGVf dnJlZnJlc2gobW9kZSksIDYwKTsKPiArCUtVTklUX0VYUEVDVF9FUSh0ZXN0LCBtb2RlLT5oZGlz cGxheSwgNzIwKTsKPiArCj4gKwkvKiA2My41NTZ1cyAqIDEzLjVNSHogPSA4NTggcGl4ZWxzICov Cj4gKwlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgbW9kZS0+aHRvdGFsLCA4NTgpOwo+ICsJS1VOSVRf RVhQRUNUX0VRKHRlc3QsIG1vZGUtPnZkaXNwbGF5LCA0ODApOwo+ICsJS1VOSVRfRVhQRUNUX0VR KHRlc3QsIG1vZGUtPnZ0b3RhbCwgNTI1KTsKPiArfQoKSSB3b3VsZCBiZSBuaWNlIHRvIHNlZSB0 aGlzIHRlc3QgYW5kIGRybV9tb2Rlc19hbmFsb2dfdHZfcGFsXzU3NmkKcGFyYW1ldHJpemVkLgoK QmVzdCBSZWdhcmRzLAotIE1hw61yYSBDYW5hbAoKPiArCj4gK3N0YXRpYyB2b2lkIGRybV9tb2Rl c19hbmFsb2dfdHZfbnRzY180ODBpX2lubGluZWQoc3RydWN0IGt1bml0ICp0ZXN0KQo+ICt7Cj4g KwlzdHJ1Y3QgZHJtX21vZGVzX3Rlc3RfcHJpdiAqcHJpdiA9IHRlc3QtPnByaXY7Cj4gKwlzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZXhwZWN0ZWQsICptb2RlOwo+ICsKPiArCWV4cGVjdGVkID0g ZHJtX2FuYWxvZ190dl9tb2RlKHByaXYtPmRybSwKPiArCQkJCSAgICAgIERSTV9NT0RFX1RWX01P REVfTlRTQ19NLAo+ICsJCQkJICAgICAgMTM1MDAgKiAxMDAwLCA3MjAsIDQ4MCwKPiArCQkJCSAg ICAgIHRydWUpOwo+ICsJS1VOSVRfQVNTRVJUX05PVF9OVUxMKHRlc3QsIGV4cGVjdGVkKTsKPiAr Cj4gKwltb2RlID0gZHJtX21vZGVfYW5hbG9nX250c2NfNDgwaShwcml2LT5kcm0pOwo+ICsJS1VO SVRfQVNTRVJUX05PVF9OVUxMKHRlc3QsIG1vZGUpOwo+ICsKPiArCUtVTklUX0VYUEVDVF9UUlVF KHRlc3QsIGRybV9tb2RlX2VxdWFsKGV4cGVjdGVkLCBtb2RlKSk7Cj4gK30KPiArCj4gK3N0YXRp YyB2b2lkIGRybV9tb2Rlc19hbmFsb2dfdHZfcGFsXzU3Nmkoc3RydWN0IGt1bml0ICp0ZXN0KQo+ ICt7Cj4gKwlzdHJ1Y3QgZHJtX21vZGVzX3Rlc3RfcHJpdiAqcHJpdiA9IHRlc3QtPnByaXY7Cj4g KwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKPiArCj4gKwltb2RlID0gZHJtX2FuYWxv Z190dl9tb2RlKHByaXYtPmRybSwKPiArCQkJCSAgRFJNX01PREVfVFZfTU9ERV9QQUxfQiwKPiAr CQkJCSAgMTM1MDAgKiAxMDAwLCA3MjAsIDU3NiwKPiArCQkJCSAgdHJ1ZSk7Cj4gKwlLVU5JVF9B U1NFUlRfTk9UX05VTEwodGVzdCwgbW9kZSk7Cj4gKwo+ICsJS1VOSVRfRVhQRUNUX0VRKHRlc3Qs IGRybV9tb2RlX3ZyZWZyZXNoKG1vZGUpLCA1MCk7Cj4gKwlLVU5JVF9FWFBFQ1RfRVEodGVzdCwg bW9kZS0+aGRpc3BsYXksIDcyMCk7Cj4gKwo+ICsJLyogNjR1cyAqIDEzLjVNSHogPSA4NjQgcGl4 ZWxzICovCj4gKwlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgbW9kZS0+aHRvdGFsLCA4NjQpOwo+ICsJ S1VOSVRfRVhQRUNUX0VRKHRlc3QsIG1vZGUtPnZkaXNwbGF5LCA1NzYpOwo+ICsJS1VOSVRfRVhQ RUNUX0VRKHRlc3QsIG1vZGUtPnZ0b3RhbCwgNjI1KTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQg ZHJtX21vZGVzX2FuYWxvZ190dl9wYWxfNTc2aV9pbmxpbmVkKHN0cnVjdCBrdW5pdCAqdGVzdCkK PiArewo+ICsJc3RydWN0IGRybV9tb2Rlc190ZXN0X3ByaXYgKnByaXYgPSB0ZXN0LT5wcml2Owo+ ICsJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmV4cGVjdGVkLCAqbW9kZTsKPiArCj4gKwlleHBl Y3RlZCA9IGRybV9hbmFsb2dfdHZfbW9kZShwcml2LT5kcm0sCj4gKwkJCQkgICAgICBEUk1fTU9E RV9UVl9NT0RFX1BBTF9CLAo+ICsJCQkJICAgICAgMTM1MDAgKiAxMDAwLCA3MjAsIDU3NiwKPiAr CQkJCSAgICAgIHRydWUpOwo+ICsJS1VOSVRfQVNTRVJUX05PVF9OVUxMKHRlc3QsIGV4cGVjdGVk KTsKPiArCj4gKwltb2RlID0gZHJtX21vZGVfYW5hbG9nX3BhbF81NzZpKHByaXYtPmRybSk7Cj4g KwlLVU5JVF9BU1NFUlRfTk9UX05VTEwodGVzdCwgbW9kZSk7Cj4gKwo+ICsJS1VOSVRfRVhQRUNU X1RSVUUodGVzdCwgZHJtX21vZGVfZXF1YWwoZXhwZWN0ZWQsIG1vZGUpKTsKPiArfQo+ICsKPiAr c3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIGRybV9tb2Rlc19hbmFsb2dfdHZfdGVzdHNbXSA9IHsK PiArCUtVTklUX0NBU0UoZHJtX21vZGVzX2FuYWxvZ190dl9udHNjXzQ4MGkpLAo+ICsJS1VOSVRf Q0FTRShkcm1fbW9kZXNfYW5hbG9nX3R2X250c2NfNDgwaV9pbmxpbmVkKSwKPiArCUtVTklUX0NB U0UoZHJtX21vZGVzX2FuYWxvZ190dl9wYWxfNTc2aSksCj4gKwlLVU5JVF9DQVNFKGRybV9tb2Rl c19hbmFsb2dfdHZfcGFsXzU3NmlfaW5saW5lZCksCj4gKwl7IH0KPiArfTsKPiArCj4gK3N0YXRp YyBzdHJ1Y3Qga3VuaXRfc3VpdGUgZHJtX21vZGVzX2FuYWxvZ190dl90ZXN0X3N1aXRlID0gewo+ ICsJLm5hbWUgPSAiZHJtX21vZGVzX2FuYWxvZ190diIsCj4gKwkuaW5pdCA9IGRybV9tb2Rlc190 ZXN0X2luaXQsCj4gKwkuZXhpdCA9IGRybV9tb2Rlc190ZXN0X2V4aXQsCj4gKwkudGVzdF9jYXNl cyA9IGRybV9tb2Rlc19hbmFsb2dfdHZfdGVzdHMsCj4gK307Cj4gKwo+ICtrdW5pdF90ZXN0X3N1 aXRlcygKPiArCSZkcm1fbW9kZXNfYW5hbG9nX3R2X3Rlc3Rfc3VpdGUKPiArKTsKPiArTU9EVUxF X0xJQ0VOU0UoIkdQTCB2MiIpOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fbW9kZXMu aCBiL2luY2x1ZGUvZHJtL2RybV9tb2Rlcy5oCj4gaW5kZXggYTgwYWU5NjM5ZTk2Li41Y2NmM2Q1 MWQzMTMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX21vZGVzLmgKPiArKysgYi9pbmNs dWRlL2RybS9kcm1fbW9kZXMuaAo+IEBAIC00NDMsNiArNDQzLDIzIEBAIGJvb2wgZHJtX21vZGVf aXNfNDIwX2Fsc28oY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmRpc3BsYXksCj4gIGJv b2wgZHJtX21vZGVfaXNfNDIwKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICpkaXNwbGF5 LAo+ICAJCSAgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpOwo+ICAKPiAr c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmRybV9hbmFsb2dfdHZfbW9kZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+ICsJCQkJCSAgICBlbnVtIGRybV9jb25uZWN0b3JfdHZfbW9kZSBtb2RlLAo+ ICsJCQkJCSAgICB1bnNpZ25lZCBsb25nIHBpeGVsX2Nsb2NrX2h6LAo+ICsJCQkJCSAgICB1bnNp Z25lZCBpbnQgaGRpc3BsYXksCj4gKwkJCQkJICAgIHVuc2lnbmVkIGludCB2ZGlzcGxheSwKPiAr CQkJCQkgICAgYm9vbCBpbnRlcmxhY2UpOwo+ICsKPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqZHJtX21vZGVfYW5hbG9nX250c2NfNDgwaShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ICt7Cj4gKwlyZXR1cm4gZHJtX2FuYWxvZ190dl9tb2RlKGRldiwgRFJNX01PREVf VFZfTU9ERV9OVFNDX00sIDEzNTAwMDAwLCA3MjAsIDQ4MCwgdHJ1ZSk7Cj4gK30KPiArCj4gK3N0 YXRpYyBpbmxpbmUgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmRybV9tb2RlX2FuYWxvZ19wYWxf NTc2aShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICt7Cj4gKwlyZXR1cm4gZHJtX2FuYWxvZ190 dl9tb2RlKGRldiwgRFJNX01PREVfVFZfTU9ERV9QQUxfQiwgMTM1MDAwMDAsIDcyMCwgNTc2LCB0 cnVlKTsKPiArfQo+ICsKPiAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmRybV9jdnRfbW9kZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJICAgICAgaW50IGhkaXNwbGF5LCBpbnQgdmRp c3BsYXksIGludCB2cmVmcmVzaCwKPiAgCQkJCSAgICAgIGJvb2wgcmVkdWNlZCwgYm9vbCBpbnRl cmxhY2VkLAo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtYXJtLWtlcm5lbAo=