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 BB0FBC0502A for ; Tue, 30 Aug 2022 12:36:45 +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=MSNha4dyANLNcHrmbF0Lo1iwSuXC6z/cFEO39quSxo8=; b=fhcUCDCTuOQ2p6 MjC4PaChFglfon4M9MVWTn1pQXy650sx8eXFZ9iJJDDJ76pgw7NdiPcaADEIh9EKKUjfcz9L9YNfr vsj7CLQU5GGz72PnQdc5ZY78DeKBmlGdcBeUMwOZiF1X4AD8vZTZgMV3MbADtQorbgBFyeDR45vLq MicWC8qArPBW9HgEA21EnwPfP27TTGJACjlnwnASEOf/I5U6bzJm8RS8QwUYT5xg548e7hw4EJVng KBgbqhtdsjBK240CxyU4M/GDB8U0FysyfcAGIi2SCr6yeyZQtjMCI0tU3GqOGC4KZFKHbHD7QjXyx e9CfE0x3z19m3yUO8+KQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oT0Sm-00GrN3-5x; Tue, 30 Aug 2022 12:35:28 +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 1oT0Sg-00GrKM-3b for linux-arm-kernel@bombadil.infradead.org; Tue, 30 Aug 2022 12:35:25 +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=LOLFbPMwILZcA+q58Rzm/uDZGd3z1GpLfz6LdgkDPik=; b=PIRm4gywRviKRT2cpHJZ7rvMIC TfzuT1e8DO1xyoU+xxGHw6XWstyp78dtxR24ZnKmd54C3Af9CjNCzwccxm4RYKzvHv+d/T2bK65tK fZvoiJ9x6vM5FqNHqkkXYGS2E5k+O89DKrxT4NxgcZ2gHChp9vF68m4nNdOl1Oi9aUtZX7rUVjwn4 dlrww+sXfcOaujAWduk9At8w/7OUdCuw5HTXlqSIGgdZCo5Qo7SD1TiWTgfKbZuL34ry3R5P4JDBh h3gPgNeCqy+oytBpbp8mVXOjgMkpj59P6UkHr5VUZqYFzMhrN/jX8GHfpMDanGkSldGi8ufqvHR51 1ClMV22Q==; Received: from mx0.riseup.net ([198.252.153.6]) by casper.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oT0SZ-00429G-VU for linux-arm-kernel@lists.infradead.org; Tue, 30 Aug 2022 12:35:21 +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 mx0.riseup.net (Postfix) with ESMTPS id 4MH6G33z0Jz9spH; Tue, 30 Aug 2022 12:35:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1661862908; bh=OW5Si2V5toqtmIHNaREVvGMPB0YJovcvgLjrqBDWMP0=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=VRQX0iazTanVS5OceiJXZsNOZurFR6J6wCyykFuUK6WFMDOpJsOrs0UPDQUO+d33G WEvACnYOpROhdazpsJvBRbP66IKP9ARhEDe3Ixl4q9flwxW8fA8nWzvcl26VXhkMov 5VW6GwaC0F7Miinq8IRccOhzjvvkWG6Of13Qo2Bk= X-Riseup-User-ID: BBFF72A898285B82B5AA53FEBBD26A988533D0558A62D62D26F14A98968C09B5 Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews1.riseup.net (Postfix) with ESMTPSA id 4MH6Fs35Yvz5vP3; Tue, 30 Aug 2022 12:34:57 +0000 (UTC) Message-ID: <1109a3f0-3b07-e354-91dc-b786370f5ccf@riseup.net> Date: Tue, 30 Aug 2022 09:34:53 -0300 MIME-Version: 1.0 Subject: Re: [PATCH v2 19/41] drm/modes: Introduce the tv_mode property as a command-line option 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-19-459522d653a7@cerno.tech> From: =?UTF-8?Q?Ma=c3=adra_Canal?= In-Reply-To: <20220728-rpi-analog-tv-properties-v2-19-459522d653a7@cerno.tech> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220830_133516_611006_819C0E82 X-CRM114-Status: GOOD ( 23.49 ) 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 SGkgTWF4aW1lLAoKT24gOC8yOS8yMiAxMDoxMSwgTWF4aW1lIFJpcGFyZCB3cm90ZToKPiBPdXIg bmV3IHR2IG1vZGUgb3B0aW9uIGFsbG93cyB0byBzcGVjaWZ5IHRoZSBUViBtb2RlIGZyb20gYSBw cm9wZXJ0eS4KPiBIb3dldmVyLCBpdCBjYW4gc3RpbGwgYmUgdXNlZnVsLCBmb3IgZXhhbXBsZSB0 byBhdm9pZCBhbnkgYm9vdCB0aW1lCj4gYXJ0aWZhY3QsIHRvIHNldCB0aGF0IHByb3BlcnR5IGRp cmVjdGx5IGZyb20gdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUuCj4gCj4gTGV0J3MgYWRkIHNvbWUg Y29kZSB0byBhbGxvdyBpdCwgYW5kIHNvbWUgdW5pdCB0ZXN0cyB0byBleGVyY2lzZSB0aGF0IGNv ZGUuCj4gCj4gU2lnbmVkLW9mZi1ieTogTWF4aW1lIFJpcGFyZCA8bWF4aW1lQGNlcm5vLnRlY2g+ Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fbW9kZXMuYwo+IGluZGV4IDczZDAxZTc1NTQ5Ni4uYTc1OWE0YmEwMDM2IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fbW9kZXMuYwo+IEBAIC0yMTE1LDYgKzIxMTUsMzAgQEAgc3RhdGljIGludCBk cm1fbW9kZV9wYXJzZV9wYW5lbF9vcmllbnRhdGlvbihjb25zdCBjaGFyICpkZWxpbSwKPiAgCXJl dHVybiAwOwo+ICB9Cj4gIAo+ICtzdGF0aWMgaW50IGRybV9tb2RlX3BhcnNlX3R2X21vZGUoY29u c3QgY2hhciAqZGVsaW0sCj4gKwkJCQkgIHN0cnVjdCBkcm1fY21kbGluZV9tb2RlICptb2RlKQo+ ICt7Cj4gKwljb25zdCBjaGFyICp2YWx1ZTsKPiArCXVuc2lnbmVkIGludCBsZW47CgpMb29rcyBs aWtlIHRoaXMgdmFyaWFibGUgbGVuIGlzIG5vdCBiZWluZyB1c2VkIGFuZCBpcyBwcm9kdWNpbmcg dGhlCmZvbGxvd2luZyB3YXJuaW5nOgoKLi4vZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlcy5jOjIx MjI6MTU6IHdhcm5pbmc6IHVudXNlZCB2YXJpYWJsZSAnbGVuJwpbLVd1bnVzZWQtdmFyaWFibGVd CiAgICAgICAgdW5zaWduZWQgaW50IGxlbjsKICAgICAgICAgICAgICAgICAgICAgXgoKQmVzdCBS ZWdhcmRzLAotIE1hw61yYSBDYW5hbAoKPiArCWludCByZXQ7Cj4gKwo+ICsJaWYgKCpkZWxpbSAh PSAnPScpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJdmFsdWUgPSBkZWxpbSArIDE7Cj4g KwlkZWxpbSA9IHN0cmNocih2YWx1ZSwgJywnKTsKPiArCWlmICghZGVsaW0pCj4gKwkJZGVsaW0g PSB2YWx1ZSArIHN0cmxlbih2YWx1ZSk7Cj4gKwo+ICsJcmV0ID0gZHJtX2dldF90dl9tb2RlX2Zy b21fbmFtZSh2YWx1ZSwgZGVsaW0gLSB2YWx1ZSk7Cj4gKwlpZiAocmV0IDwgMCkKPiArCQlyZXR1 cm4gcmV0Owo+ICsKPiArCW1vZGUtPnR2X21vZGUgPSByZXQ7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4g K30KPiArCj4gIHN0YXRpYyBpbnQgZHJtX21vZGVfcGFyc2VfY21kbGluZV9vcHRpb25zKGNvbnN0 IGNoYXIgKnN0ciwKPiAgCQkJCQkgIGJvb2wgZnJlZXN0YW5kaW5nLAo+ICAJCQkJCSAgY29uc3Qg c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiBAQCAtMjE4NCw2ICsyMjA4LDkgQEAg c3RhdGljIGludCBkcm1fbW9kZV9wYXJzZV9jbWRsaW5lX29wdGlvbnMoY29uc3QgY2hhciAqc3Ry LAo+ICAJCX0gZWxzZSBpZiAoIXN0cm5jbXAob3B0aW9uLCAicGFuZWxfb3JpZW50YXRpb24iLCBk ZWxpbSAtIG9wdGlvbikpIHsKPiAgCQkJaWYgKGRybV9tb2RlX3BhcnNlX3BhbmVsX29yaWVudGF0 aW9uKGRlbGltLCBtb2RlKSkKPiAgCQkJCXJldHVybiAtRUlOVkFMOwo+ICsJCX0gZWxzZSBpZiAo IXN0cm5jbXAob3B0aW9uLCAidHZfbW9kZSIsIGRlbGltIC0gb3B0aW9uKSkgewo+ICsJCQlpZiAo ZHJtX21vZGVfcGFyc2VfdHZfbW9kZShkZWxpbSwgbW9kZSkpCj4gKwkJCQlyZXR1cm4gLUVJTlZB TDsKPiAgCQl9IGVsc2Ugewo+ICAJCQlyZXR1cm4gLUVJTlZBTDsKPiAgCQl9Cj4gQEAgLTIyMTIs MjAgKzIyMzksMjIgQEAgc3RydWN0IGRybV9uYW1lZF9tb2RlIHsKPiAgCXVuc2lnbmVkIGludCB4 cmVzOwo+ICAJdW5zaWduZWQgaW50IHlyZXM7Cj4gIAl1bnNpZ25lZCBpbnQgZmxhZ3M7Cj4gKwl1 bnNpZ25lZCBpbnQgdHZfbW9kZTsKPiAgfTsKPiAgCj4gLSNkZWZpbmUgTkFNRURfTU9ERShfbmFt ZSwgX3BjbGssIF94LCBfeSwgX2ZsYWdzKQlcCj4gKyNkZWZpbmUgTkFNRURfTU9ERShfbmFtZSwg X3BjbGssIF94LCBfeSwgX2ZsYWdzLCBfbW9kZSkJXAo+ICAJewkJCQkJCVwKPiAgCQkubmFtZSA9 IF9uYW1lLAkJCQlcCj4gIAkJLnBpeGVsX2Nsb2NrX2toeiA9IF9wY2xrLAkJXAo+ICAJCS54cmVz ID0gX3gsCQkJCVwKPiAgCQkueXJlcyA9IF95LAkJCQlcCj4gIAkJLmZsYWdzID0gX2ZsYWdzLAkJ CVwKPiArCQkudHZfbW9kZSA9IF9tb2RlLAkJCVwKPiAgCX0KPiAgCj4gIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX25hbWVkX21vZGUgZHJtX25hbWVkX21vZGVzW10gPSB7Cj4gLQlOQU1FRF9NT0RF KCJOVFNDIiwgMTM1MDAsIDcyMCwgNDgwLCBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSksCj4gLQlO QU1FRF9NT0RFKCJQQUwiLCAxMzUwMCwgNzIwLCA1NzYsIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNF KSwKPiArCU5BTUVEX01PREUoIk5UU0MiLCAxMzUwMCwgNzIwLCA0ODAsIERSTV9NT0RFX0ZMQUdf SU5URVJMQUNFLCBEUk1fTU9ERV9UVl9NT0RFX05UU0NfTSksCj4gKwlOQU1FRF9NT0RFKCJQQUwi LCAxMzUwMCwgNzIwLCA1NzYsIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFLCBEUk1fTU9ERV9UVl9N T0RFX1BBTF9CKSwKPiAgfTsKPiAgCj4gIHN0YXRpYyBpbnQgZHJtX21vZGVfcGFyc2VfY21kbGlu ZV9uYW1lZF9tb2RlKGNvbnN0IGNoYXIgKm5hbWUsCj4gQEAgLTIyNzEsNiArMjMwMCw3IEBAIHN0 YXRpYyBpbnQgZHJtX21vZGVfcGFyc2VfY21kbGluZV9uYW1lZF9tb2RlKGNvbnN0IGNoYXIgKm5h bWUsCj4gIAkJY21kbGluZV9tb2RlLT54cmVzID0gbW9kZS0+eHJlczsKPiAgCQljbWRsaW5lX21v ZGUtPnlyZXMgPSBtb2RlLT55cmVzOwo+ICAJCWNtZGxpbmVfbW9kZS0+aW50ZXJsYWNlID0gISEo bW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSk7Cj4gKwkJY21kbGluZV9tb2Rl LT50dl9tb2RlID0gbW9kZS0+dHZfbW9kZTsKPiAgCQljbWRsaW5lX21vZGUtPnNwZWNpZmllZCA9 IHRydWU7Cj4gIAo+ICAJCXJldHVybiAxOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v dGVzdHMvZHJtX2NtZGxpbmVfcGFyc2VyX3Rlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS90ZXN0cy9k cm1fY21kbGluZV9wYXJzZXJfdGVzdC5jCj4gaW5kZXggNTliMjljZGZkZDM1Li5mMWU3M2VkNjVi ZTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbWRsaW5lX3BhcnNl cl90ZXN0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NtZGxpbmVfcGFyc2Vy X3Rlc3QuYwo+IEBAIC04ODUsNiArODg1LDIwMSBAQCBzdGF0aWMgdm9pZCBkcm1fY21kbGluZV90 ZXN0X211bHRpcGxlX29wdGlvbnMoc3RydWN0IGt1bml0ICp0ZXN0KQo+ICAJS1VOSVRfRVhQRUNU X0VRKHRlc3QsIG1vZGUuZm9yY2UsIERSTV9GT1JDRV9VTlNQRUNJRklFRCk7Cj4gIH0KPiAgCj4g K3N0YXRpYyB2b2lkIGRybV9jbWRsaW5lX3Rlc3RfdHZfb3B0aW9ucyhzdHJ1Y3Qga3VuaXQgKnRl c3QsCj4gKwkJCQkJY29uc3QgY2hhciAqY21kbGluZSwKPiArCQkJCQljb25zdCBzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqZXhwZWN0ZWRfbW9kZSwKPiArCQkJCQl1bnNpZ25lZCBpbnQgZXhwZWN0 ZWRfdHZfbW9kZSkKPiArewo+ICsJc3RydWN0IGRybV9jbWRsaW5lX21vZGUgbW9kZSA9IHsgfTsK PiArCj4gKwlLVU5JVF9FWFBFQ1RfVFJVRSh0ZXN0LCBkcm1fbW9kZV9wYXJzZV9jb21tYW5kX2xp bmVfZm9yX2Nvbm5lY3RvcihjbWRsaW5lLAo+ICsJCQkJCQkJCQkgICZub19jb25uZWN0b3IsICZt b2RlKSk7Cj4gKwlLVU5JVF9FWFBFQ1RfVFJVRSh0ZXN0LCBtb2RlLnNwZWNpZmllZCk7Cj4gKwlL VU5JVF9FWFBFQ1RfRVEodGVzdCwgbW9kZS54cmVzLCBleHBlY3RlZF9tb2RlLT5oZGlzcGxheSk7 Cj4gKwlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgbW9kZS55cmVzLCBleHBlY3RlZF9tb2RlLT52ZGlz cGxheSk7Cj4gKwlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgbW9kZS50dl9tb2RlLCBleHBlY3RlZF90 dl9tb2RlKTsKPiArCj4gKwlLVU5JVF9FWFBFQ1RfRkFMU0UodGVzdCwgbW9kZS5yZWZyZXNoX3Nw ZWNpZmllZCk7Cj4gKwo+ICsJS1VOSVRfRVhQRUNUX0ZBTFNFKHRlc3QsIG1vZGUuYnBwX3NwZWNp ZmllZCk7Cj4gKwo+ICsJS1VOSVRfRVhQRUNUX0ZBTFNFKHRlc3QsIG1vZGUucmIpOwo+ICsJS1VO SVRfRVhQRUNUX0ZBTFNFKHRlc3QsIG1vZGUuY3Z0KTsKPiArCUtVTklUX0VYUEVDVF9FUSh0ZXN0 LCBtb2RlLmludGVybGFjZSwgISEoZXhwZWN0ZWRfbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFH X0lOVEVSTEFDRSkpOwo+ICsJS1VOSVRfRVhQRUNUX0ZBTFNFKHRlc3QsIG1vZGUubWFyZ2lucyk7 Cj4gKwlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgbW9kZS5mb3JjZSwgRFJNX0ZPUkNFX1VOU1BFQ0lG SUVEKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZHJtX2NtZGxpbmVfdGVzdF90dl9vcHRpb25f bnRzY180NDMoc3RydWN0IGt1bml0ICp0ZXN0KQo+ICt7Cj4gKwlkcm1fY21kbGluZV90ZXN0X3R2 X29wdGlvbnModGVzdCwKPiArCQkJCSAgICAiNzIweDQ4MGksdHZfbW9kZT1OVFNDLTQ0MyIsCj4g KwkJCQkgICAgZHJtX21vZGVfYW5hbG9nX250c2NfNDgwaShOVUxMKSwKPiArCQkJCSAgICBEUk1f TU9ERV9UVl9NT0RFX05UU0NfNDQzKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZHJtX2NtZGxp bmVfdGVzdF90dl9vcHRpb25fbnRzY19qKHN0cnVjdCBrdW5pdCAqdGVzdCkKPiArewo+ICsJZHJt X2NtZGxpbmVfdGVzdF90dl9vcHRpb25zKHRlc3QsCj4gKwkJCQkgICAgIjcyMHg0ODBpLHR2X21v ZGU9TlRTQy1KIiwKPiArCQkJCSAgICBkcm1fbW9kZV9hbmFsb2dfbnRzY180ODBpKE5VTEwpLAo+ ICsJCQkJICAgIERSTV9NT0RFX1RWX01PREVfTlRTQ19KKTsKPiArfQo+ICsKPiArc3RhdGljIHZv aWQgZHJtX2NtZGxpbmVfdGVzdF90dl9vcHRpb25fbnRzY19tKHN0cnVjdCBrdW5pdCAqdGVzdCkK PiArewo+ICsJZHJtX2NtZGxpbmVfdGVzdF90dl9vcHRpb25zKHRlc3QsCj4gKwkJCQkgICAgIjcy MHg0ODBpLHR2X21vZGU9TlRTQy1NIiwKPiArCQkJCSAgICBkcm1fbW9kZV9hbmFsb2dfbnRzY180 ODBpKE5VTEwpLAo+ICsJCQkJICAgIERSTV9NT0RFX1RWX01PREVfTlRTQ19NKTsKPiArfQo+ICsK PiArc3RhdGljIHZvaWQgZHJtX2NtZGxpbmVfdGVzdF90dl9vcHRpb25fcGFsXzYwKHN0cnVjdCBr dW5pdCAqdGVzdCkKPiArewo+ICsJZHJtX2NtZGxpbmVfdGVzdF90dl9vcHRpb25zKHRlc3QsCj4g KwkJCQkgICAgIjcyMHg1NzZpLHR2X21vZGU9UEFMLTYwIiwKPiArCQkJCSAgICBkcm1fbW9kZV9h bmFsb2dfcGFsXzU3NmkoTlVMTCksCj4gKwkJCQkgICAgRFJNX01PREVfVFZfTU9ERV9QQUxfNjAp Owo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBkcm1fY21kbGluZV90ZXN0X3R2X29wdGlvbl9wYWxf YihzdHJ1Y3Qga3VuaXQgKnRlc3QpCj4gK3sKPiArCWRybV9jbWRsaW5lX3Rlc3RfdHZfb3B0aW9u cyh0ZXN0LAo+ICsJCQkJICAgICI3MjB4NTc2aSx0dl9tb2RlPVBBTC1CIiwKPiArCQkJCSAgICBk cm1fbW9kZV9hbmFsb2dfcGFsXzU3NmkoTlVMTCksCj4gKwkJCQkgICAgRFJNX01PREVfVFZfTU9E RV9QQUxfQik7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGRybV9jbWRsaW5lX3Rlc3RfdHZfb3B0 aW9uX3BhbF9kKHN0cnVjdCBrdW5pdCAqdGVzdCkKPiArewo+ICsJZHJtX2NtZGxpbmVfdGVzdF90 dl9vcHRpb25zKHRlc3QsCj4gKwkJCQkgICAgIjcyMHg1NzZpLHR2X21vZGU9UEFMLUQiLAo+ICsJ CQkJICAgIGRybV9tb2RlX2FuYWxvZ19wYWxfNTc2aShOVUxMKSwKPiArCQkJCSAgICBEUk1fTU9E RV9UVl9NT0RFX1BBTF9EKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZHJtX2NtZGxpbmVfdGVz dF90dl9vcHRpb25fcGFsX2coc3RydWN0IGt1bml0ICp0ZXN0KQo+ICt7Cj4gKwlkcm1fY21kbGlu ZV90ZXN0X3R2X29wdGlvbnModGVzdCwKPiArCQkJCSAgICAiNzIweDU3NmksdHZfbW9kZT1QQUwt RyIsCj4gKwkJCQkgICAgZHJtX21vZGVfYW5hbG9nX3BhbF81NzZpKE5VTEwpLAo+ICsJCQkJICAg IERSTV9NT0RFX1RWX01PREVfUEFMX0cpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBkcm1fY21k bGluZV90ZXN0X3R2X29wdGlvbl9wYWxfaChzdHJ1Y3Qga3VuaXQgKnRlc3QpCj4gK3sKPiArCWRy bV9jbWRsaW5lX3Rlc3RfdHZfb3B0aW9ucyh0ZXN0LAo+ICsJCQkJICAgICI3MjB4NTc2aSx0dl9t b2RlPVBBTC1IIiwKPiArCQkJCSAgICBkcm1fbW9kZV9hbmFsb2dfcGFsXzU3NmkoTlVMTCksCj4g KwkJCQkgICAgRFJNX01PREVfVFZfTU9ERV9QQUxfSCk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lk IGRybV9jbWRsaW5lX3Rlc3RfdHZfb3B0aW9uX3BhbF9pKHN0cnVjdCBrdW5pdCAqdGVzdCkKPiAr ewo+ICsJZHJtX2NtZGxpbmVfdGVzdF90dl9vcHRpb25zKHRlc3QsCj4gKwkJCQkgICAgIjcyMHg1 NzZpLHR2X21vZGU9UEFMLUkiLAo+ICsJCQkJICAgIGRybV9tb2RlX2FuYWxvZ19wYWxfNTc2aShO VUxMKSwKPiArCQkJCSAgICBEUk1fTU9ERV9UVl9NT0RFX1BBTF9JKTsKPiArfQo+ICsKPiArc3Rh dGljIHZvaWQgZHJtX2NtZGxpbmVfdGVzdF90dl9vcHRpb25fcGFsX20oc3RydWN0IGt1bml0ICp0 ZXN0KQo+ICt7Cj4gKwlkcm1fY21kbGluZV90ZXN0X3R2X29wdGlvbnModGVzdCwKPiArCQkJCSAg ICAiNzIweDQ4MGksdHZfbW9kZT1QQUwtTSIsCj4gKwkJCQkgICAgZHJtX21vZGVfYW5hbG9nX250 c2NfNDgwaShOVUxMKSwKPiArCQkJCSAgICBEUk1fTU9ERV9UVl9NT0RFX1BBTF9NKTsKPiArfQo+ ICsKPiArc3RhdGljIHZvaWQgZHJtX2NtZGxpbmVfdGVzdF90dl9vcHRpb25fcGFsX24oc3RydWN0 IGt1bml0ICp0ZXN0KQo+ICt7Cj4gKwlkcm1fY21kbGluZV90ZXN0X3R2X29wdGlvbnModGVzdCwK PiArCQkJCSAgICAiNzIweDU3NmksdHZfbW9kZT1QQUwtTiIsCj4gKwkJCQkgICAgZHJtX21vZGVf YW5hbG9nX3BhbF81NzZpKE5VTEwpLAo+ICsJCQkJICAgIERSTV9NT0RFX1RWX01PREVfUEFMX04p Owo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBkcm1fY21kbGluZV90ZXN0X3R2X29wdGlvbl9wYWxf bmMoc3RydWN0IGt1bml0ICp0ZXN0KQo+ICt7Cj4gKwlkcm1fY21kbGluZV90ZXN0X3R2X29wdGlv bnModGVzdCwKPiArCQkJCSAgICAiNzIweDU3NmksdHZfbW9kZT1QQUwtTmMiLAo+ICsJCQkJICAg IGRybV9tb2RlX2FuYWxvZ19wYWxfNTc2aShOVUxMKSwKPiArCQkJCSAgICBEUk1fTU9ERV9UVl9N T0RFX1BBTF9OQyk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGRybV9jbWRsaW5lX3Rlc3RfdHZf b3B0aW9uX3NlY2FtXzYwKHN0cnVjdCBrdW5pdCAqdGVzdCkKPiArewo+ICsJZHJtX2NtZGxpbmVf dGVzdF90dl9vcHRpb25zKHRlc3QsCj4gKwkJCQkgICAgIjcyMHg1NzZpLHR2X21vZGU9U0VDQU0t NjAiLAo+ICsJCQkJICAgIGRybV9tb2RlX2FuYWxvZ19wYWxfNTc2aShOVUxMKSwKPiArCQkJCSAg ICBEUk1fTU9ERV9UVl9NT0RFX1NFQ0FNXzYwKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZHJt X2NtZGxpbmVfdGVzdF90dl9vcHRpb25fc2VjYW1fYihzdHJ1Y3Qga3VuaXQgKnRlc3QpCj4gK3sK PiArCWRybV9jbWRsaW5lX3Rlc3RfdHZfb3B0aW9ucyh0ZXN0LAo+ICsJCQkJICAgICI3MjB4NTc2 aSx0dl9tb2RlPVNFQ0FNLUIiLAo+ICsJCQkJICAgIGRybV9tb2RlX2FuYWxvZ19wYWxfNTc2aShO VUxMKSwKPiArCQkJCSAgICBEUk1fTU9ERV9UVl9NT0RFX1NFQ0FNX0IpOwo+ICt9Cj4gKwo+ICtz dGF0aWMgdm9pZCBkcm1fY21kbGluZV90ZXN0X3R2X29wdGlvbl9zZWNhbV9kKHN0cnVjdCBrdW5p dCAqdGVzdCkKPiArewo+ICsJZHJtX2NtZGxpbmVfdGVzdF90dl9vcHRpb25zKHRlc3QsCj4gKwkJ CQkgICAgIjcyMHg1NzZpLHR2X21vZGU9U0VDQU0tRCIsCj4gKwkJCQkgICAgZHJtX21vZGVfYW5h bG9nX3BhbF81NzZpKE5VTEwpLAo+ICsJCQkJICAgIERSTV9NT0RFX1RWX01PREVfU0VDQU1fRCk7 Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGRybV9jbWRsaW5lX3Rlc3RfdHZfb3B0aW9uX3NlY2Ft X2coc3RydWN0IGt1bml0ICp0ZXN0KQo+ICt7Cj4gKwlkcm1fY21kbGluZV90ZXN0X3R2X29wdGlv bnModGVzdCwKPiArCQkJCSAgICAiNzIweDU3NmksdHZfbW9kZT1TRUNBTS1HIiwKPiArCQkJCSAg ICBkcm1fbW9kZV9hbmFsb2dfcGFsXzU3NmkoTlVMTCksCj4gKwkJCQkgICAgRFJNX01PREVfVFZf TU9ERV9TRUNBTV9HKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZHJtX2NtZGxpbmVfdGVzdF90 dl9vcHRpb25fc2VjYW1fayhzdHJ1Y3Qga3VuaXQgKnRlc3QpCj4gK3sKPiArCWRybV9jbWRsaW5l X3Rlc3RfdHZfb3B0aW9ucyh0ZXN0LAo+ICsJCQkJICAgICI3MjB4NTc2aSx0dl9tb2RlPVNFQ0FN LUsiLAo+ICsJCQkJICAgIGRybV9tb2RlX2FuYWxvZ19wYWxfNTc2aShOVUxMKSwKPiArCQkJCSAg ICBEUk1fTU9ERV9UVl9NT0RFX1NFQ0FNX0spOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBkcm1f Y21kbGluZV90ZXN0X3R2X29wdGlvbl9zZWNhbV9rMShzdHJ1Y3Qga3VuaXQgKnRlc3QpCj4gK3sK PiArCWRybV9jbWRsaW5lX3Rlc3RfdHZfb3B0aW9ucyh0ZXN0LAo+ICsJCQkJICAgICI3MjB4NTc2 aSx0dl9tb2RlPVNFQ0FNLUsxIiwKPiArCQkJCSAgICBkcm1fbW9kZV9hbmFsb2dfcGFsXzU3Nmko TlVMTCksCj4gKwkJCQkgICAgRFJNX01PREVfVFZfTU9ERV9TRUNBTV9LMSk7Cj4gK30KPiArCj4g K3N0YXRpYyB2b2lkIGRybV9jbWRsaW5lX3Rlc3RfdHZfb3B0aW9uX3NlY2FtX2woc3RydWN0IGt1 bml0ICp0ZXN0KQo+ICt7Cj4gKwlkcm1fY21kbGluZV90ZXN0X3R2X29wdGlvbnModGVzdCwKPiAr CQkJCSAgICAiNzIweDU3NmksdHZfbW9kZT1TRUNBTS1MIiwKPiArCQkJCSAgICBkcm1fbW9kZV9h bmFsb2dfcGFsXzU3NmkoTlVMTCksCj4gKwkJCQkgICAgRFJNX01PREVfVFZfTU9ERV9TRUNBTV9M KTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZHJtX2NtZGxpbmVfdGVzdF90dl9vcHRpb25faW52 YWxpZChzdHJ1Y3Qga3VuaXQgKnRlc3QpCj4gK3sKPiArCXN0cnVjdCBkcm1fY21kbGluZV9tb2Rl IG1vZGUgPSB7IH07Cj4gKwljb25zdCBjaGFyICpjbWRsaW5lID0gIjcyMHg0ODBpLHR2X21vZGU9 aW52YWxpZCI7Cj4gKwo+ICsJS1VOSVRfRVhQRUNUX0ZBTFNFKHRlc3QsIGRybV9tb2RlX3BhcnNl X2NvbW1hbmRfbGluZV9mb3JfY29ubmVjdG9yKGNtZGxpbmUsCj4gKwkJCQkJCQkJCSAgICZub19j b25uZWN0b3IsICZtb2RlKSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGRybV9jbWRsaW5lX3Rl c3RfdHZfb3B0aW9uX3RydW5jYXRlZChzdHJ1Y3Qga3VuaXQgKnRlc3QpCj4gK3sKPiArCXN0cnVj dCBkcm1fY21kbGluZV9tb2RlIG1vZGUgPSB7IH07Cj4gKwljb25zdCBjaGFyICpjbWRsaW5lID0g IjcyMHg0ODBpLHR2X21vZGU9TlRTQyI7Cj4gKwo+ICsJS1VOSVRfRVhQRUNUX0ZBTFNFKHRlc3Qs IGRybV9tb2RlX3BhcnNlX2NvbW1hbmRfbGluZV9mb3JfY29ubmVjdG9yKGNtZGxpbmUsCj4gKwkJ CQkJCQkJCSAgICZub19jb25uZWN0b3IsICZtb2RlKSk7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lk IGRybV9jbWRsaW5lX3Rlc3RfaW52YWxpZF9vcHRpb24oc3RydWN0IGt1bml0ICp0ZXN0KQo+ICB7 Cj4gIAlzdHJ1Y3QgZHJtX2NtZGxpbmVfbW9kZSBtb2RlID0geyB9Owo+IEBAIC0xMDQ3LDYgKzEy NDIsMjcgQEAgc3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIGRybV9jbWRsaW5lX3BhcnNlcl90ZXN0 c1tdID0gewo+ICAJS1VOSVRfQ0FTRShkcm1fY21kbGluZV90ZXN0X25hbWVfcmVmcmVzaF9pbnZh bGlkX21vZGUpLAo+ICAJS1VOSVRfQ0FTRShkcm1fY21kbGluZV90ZXN0X25hbWVfb3B0aW9uKSwK PiAgCUtVTklUX0NBU0UoZHJtX2NtZGxpbmVfdGVzdF9uYW1lX2JwcF9vcHRpb24pLAo+ICsJS1VO SVRfQ0FTRShkcm1fY21kbGluZV90ZXN0X3R2X29wdGlvbl9udHNjXzQ0MyksCj4gKwlLVU5JVF9D QVNFKGRybV9jbWRsaW5lX3Rlc3RfdHZfb3B0aW9uX250c2NfaiksCj4gKwlLVU5JVF9DQVNFKGRy bV9jbWRsaW5lX3Rlc3RfdHZfb3B0aW9uX250c2NfbSksCj4gKwlLVU5JVF9DQVNFKGRybV9jbWRs aW5lX3Rlc3RfdHZfb3B0aW9uX3BhbF82MCksCj4gKwlLVU5JVF9DQVNFKGRybV9jbWRsaW5lX3Rl c3RfdHZfb3B0aW9uX3BhbF9iKSwKPiArCUtVTklUX0NBU0UoZHJtX2NtZGxpbmVfdGVzdF90dl9v cHRpb25fcGFsX2QpLAo+ICsJS1VOSVRfQ0FTRShkcm1fY21kbGluZV90ZXN0X3R2X29wdGlvbl9w YWxfZyksCj4gKwlLVU5JVF9DQVNFKGRybV9jbWRsaW5lX3Rlc3RfdHZfb3B0aW9uX3BhbF9oKSwK PiArCUtVTklUX0NBU0UoZHJtX2NtZGxpbmVfdGVzdF90dl9vcHRpb25fcGFsX2kpLAo+ICsJS1VO SVRfQ0FTRShkcm1fY21kbGluZV90ZXN0X3R2X29wdGlvbl9wYWxfbSksCj4gKwlLVU5JVF9DQVNF KGRybV9jbWRsaW5lX3Rlc3RfdHZfb3B0aW9uX3BhbF9uKSwKPiArCUtVTklUX0NBU0UoZHJtX2Nt ZGxpbmVfdGVzdF90dl9vcHRpb25fcGFsX25jKSwKPiArCUtVTklUX0NBU0UoZHJtX2NtZGxpbmVf dGVzdF90dl9vcHRpb25fc2VjYW1fNjApLAo+ICsJS1VOSVRfQ0FTRShkcm1fY21kbGluZV90ZXN0 X3R2X29wdGlvbl9zZWNhbV9iKSwKPiArCUtVTklUX0NBU0UoZHJtX2NtZGxpbmVfdGVzdF90dl9v cHRpb25fc2VjYW1fZCksCj4gKwlLVU5JVF9DQVNFKGRybV9jbWRsaW5lX3Rlc3RfdHZfb3B0aW9u X3NlY2FtX2cpLAo+ICsJS1VOSVRfQ0FTRShkcm1fY21kbGluZV90ZXN0X3R2X29wdGlvbl9zZWNh bV9rKSwKPiArCUtVTklUX0NBU0UoZHJtX2NtZGxpbmVfdGVzdF90dl9vcHRpb25fc2VjYW1fazEp LAo+ICsJS1VOSVRfQ0FTRShkcm1fY21kbGluZV90ZXN0X3R2X29wdGlvbl9zZWNhbV9sKSwKPiAr CUtVTklUX0NBU0UoZHJtX2NtZGxpbmVfdGVzdF90dl9vcHRpb25faW52YWxpZCksCj4gKwlLVU5J VF9DQVNFKGRybV9jbWRsaW5lX3Rlc3RfdHZfb3B0aW9uX3RydW5jYXRlZCksCj4gIAlLVU5JVF9D QVNFKGRybV9jbWRsaW5lX3Rlc3Rfcm90YXRlXzApLAo+ICAJS1VOSVRfQ0FTRShkcm1fY21kbGlu ZV90ZXN0X3JvdGF0ZV85MCksCj4gIAlLVU5JVF9DQVNFKGRybV9jbWRsaW5lX3Rlc3Rfcm90YXRl XzE4MCksCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCBiL2luY2x1 ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+IGluZGV4IDQ5ZDI2MTk3N2Q0ZS4uOTU4OTEwOGJhMjAy IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+ICsrKyBiL2luY2x1 ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+IEBAIC0xNDQ3LDYgKzE0NDcsMTEgQEAgc3RydWN0IGRy bV9jbWRsaW5lX21vZGUgewo+ICAJICogQHR2X21hcmdpbnM6IFRWIG1hcmdpbnMgdG8gYXBwbHkg dG8gdGhlIG1vZGUuCj4gIAkgKi8KPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yX3R2X21hcmdpbnMg dHZfbWFyZ2luczsKPiArCj4gKwkvKioKPiArCSAqIEB0dl9tb2RlOiBUViBtb2RlIHN0YW5kYXJk LiBTZWUgRFJNX01PREVfVFZfTU9ERV8qLgo+ICsJICovCj4gKwllbnVtIGRybV9jb25uZWN0b3Jf dHZfbW9kZSB0dl9tb2RlOwo+ICB9Owo+ICAKPiAgLyoqCj4gCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlz dApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJh ZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==