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 A4638E7717F for ; Tue, 17 Dec 2024 16:38:09 +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=XQAqvOT1mhbTimwa9TYaIm7VcdRYCNvdyp3HRLo3NFQ=; b=rkRAniCAPYoTSe rPq4mQ3s1gFnHqa/ZvLXndWkIP5p4ddLLP/Wqudnp/JaAFlbmBHqjsV1qCQIXyiZoVPath8nCGUMw +qxSB6QAYUGOnQtSA1LL7Kn7c/nFAMxwmusZdse7rXhYH1Dg6Vom/7SN4mFj83qqglJAqpvdRST5f 1XvmtBvaz4hmFEsEs6bl6UH2jKIyOCRAO34Ciu3IcMEaGkvx2ROsxjXec2CUFgx/FraLt4MBVGBYX BXyOf+QedSItO3GWi33sFFRUYH4or0ZwsGnVoWgb64uNrv7J7h+U6yg+DgM66I8WzKvGvbw6LBOA7 2gjDrlH2JCD++wmpEWfA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tNaaE-0000000EDet-2Sa1; Tue, 17 Dec 2024 16:38:06 +0000 Received: from bali.collaboradmins.com ([2a01:4f8:201:9162::2]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tNaYw-0000000EDKE-2VTB; Tue, 17 Dec 2024 16:36:48 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1734453404; bh=PAu25BTtqRIZ7TehGqU+OEInbWitHM7ErDsbsrjdeLs=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=j4RLQUW7ucEUCYXiyDkUlnsBvM/2UW3XQ+tXe5QtFGmabPBx/LEHLzuToIckoi5IE zM3iHNiqHKT2QFXip3jfVJFifsncvj5ApK2DQ8dmGHB2+qwUWZuwSJViEwPrcvnuer PLuBaW2XhQIz6BhRQ31wDM23mjlyMMaumPdvrxi/WoUJFI7K8eMCjGeo0lFTRFmM8Y LV4D6WbdcnnnNMoy95UFIYJQDoJ90kDeP2ZeWPKamvyUqUiF/rEHfsCsCwluXgJ2Z5 SSJ4atgRy08XXAkbddJdCVc5VcANcz0QUfFFLV+5HqC0DMbUsC0+ZSS3iKYSN0wGTS 3hJ6hpWYhdifA== Received: from [192.168.1.90] (unknown [84.232.140.38]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: cristicc) by bali.collaboradmins.com (Postfix) with ESMTPSA id EF34517E37B2; Tue, 17 Dec 2024 17:36:43 +0100 (CET) Message-ID: Date: Tue, 17 Dec 2024 18:36:41 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 3/5] drm/rockchip: vop2: Improve display modes handling on RK3588 HDMI0 To: Maxime Ripard , =?UTF-8?Q?Heiko_St=C3=BCbner?= Cc: Sandy Huang , Andy Yan , Maarten Lankhorst , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , kernel@collabora.com, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, FUKAUMI Naoki References: <20241211-vop2-hdmi0-disp-modes-v2-0-471cf5001e45@collabora.com> <1820767.5KxKD5qtyk@diego> <1756448.izSxrag8PF@diego> <20241217-ubiquitous-refreshing-finch-aceade@houat> From: Cristian Ciocaltea Content-Language: en-US In-Reply-To: <20241217-ubiquitous-refreshing-finch-aceade@houat> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241217_083646_807345_61C949C6 X-CRM114-Status: GOOD ( 27.74 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org T24gMTIvMTcvMjQgNTowMCBQTSwgTWF4aW1lIFJpcGFyZCB3cm90ZToKPiBPbiBXZWQsIERlYyAx MSwgMjAyNCBhdCAwNzowMToxNVBNICswMTAwLCBIZWlrbyBTdMO8Ym5lciB3cm90ZToKPj4gQW0g TWl0dHdvY2gsIDExLiBEZXplbWJlciAyMDI0LCAxODo0Nzo0NCBDRVQgc2NocmllYiBNYXhpbWUg UmlwYXJkOgo+Pj4gT24gV2VkLCBEZWMgMTEsIDIwMjQgYXQgMDY6MjM6MDNQTSArMDEwMCwgSGVp a28gU3TDvGJuZXIgd3JvdGU6Cj4+Pj4gQW0gTWl0dHdvY2gsIDExLiBEZXplbWJlciAyMDI0LCAx ODowNzo1NyBDRVQgc2NocmllYiBNYXhpbWUgUmlwYXJkOgo+Pj4+PiBPbiBXZWQsIERlYyAxMSwg MjAyNCBhdCAxMjoxNTowN1BNICswMjAwLCBDcmlzdGlhbiBDaW9jYWx0ZWEgd3JvdGU6Cj4+Pj4+ PiBUaGUgUkszNTg4IHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGlzIGN1cnJlbnRseSBxdWl0ZSBs aW1pdGVkIGluIHRlcm1zCj4+Pj4+PiBvZiBoYW5kbGluZyB0aGUgZnVsbCByYW5nZSBvZiBkaXNw bGF5IG1vZGVzIHN1cHBvcnRlZCBieSB0aGUgY29ubmVjdGVkCj4+Pj4+PiBzY3JlZW5zLCBlLmcu IDI1NjB4MTQ0MEA3NUh6LCAyMDQ4eDExNTJANjBIeiwgMTAyNHg3NjhANjBIeiBhcmUganVzdCBh Cj4+Pj4+PiBmZXcgb2YgdGhlbS4KPj4+Pj4+Cj4+Pj4+PiBBZGRpdGlvbmFsbHksIGl0IGRvZXNu J3QgY29wZSB3ZWxsIHdpdGggbm9uLWludGVnZXIgcmVmcmVzaCByYXRlcyBsaWtlCj4+Pj4+PiA1 OS45NCwgMjkuOTcsIDIzLjk4LCBldGMuCj4+Pj4+Pgo+Pj4+Pj4gTWFrZSB1c2Ugb2YgSERNSTAg UEhZIFBMTCBhcyBhIG1vcmUgYWNjdXJhdGUgRENMSyBzb3VyY2UgdG8gaGFuZGxlCj4+Pj4+PiBh bGwgZGlzcGxheSBtb2RlcyB1cCB0byA0S0A2MEh6Lgo+Pj4+Pj4KPj4+Pj4+IFRlc3RlZC1ieTog RlVLQVVNSSBOYW9raSA8bmFva2lAcmFkeGEuY29tPgo+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogQ3Jp c3RpYW4gQ2lvY2FsdGVhIDxjcmlzdGlhbi5jaW9jYWx0ZWFAY29sbGFib3JhLmNvbT4KPj4+Pj4+ IC0tLQo+Pj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wMi5j IHwgMzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+Pj4+Pj4gIDEgZmlsZSBjaGFuZ2Vk LCAzNCBpbnNlcnRpb25zKCspCj4+Pj4+Pgo+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wMi5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tj aGlwL3JvY2tjaGlwX2RybV92b3AyLmMKPj4+Pj4+IGluZGV4IDhiMmY1M2ZmZWZkYmYxY2M4NzM3 YjNhODZlNjMwYTAzYTdmZDkzNDguLjM5M2ZlNmFhMTcwYWFlZTk2NjNjNGE2ZDk4YzFjZDZhNWVm NzkzOTIgMTAwNjQ0Cj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2No aXBfZHJtX3ZvcDIuYwo+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tj aGlwX2RybV92b3AyLmMKPj4+Pj4+IEBAIC0xNTgsNiArMTU4LDcgQEAgc3RydWN0IHZvcDJfdmlk ZW9fcG9ydCB7Cj4+Pj4+PiAgCXN0cnVjdCBkcm1fY3J0YyBjcnRjOwo+Pj4+Pj4gIAlzdHJ1Y3Qg dm9wMiAqdm9wMjsKPj4+Pj4+ICAJc3RydWN0IGNsayAqZGNsazsKPj4+Pj4+ICsJc3RydWN0IGNs ayAqZGNsa19zcmM7Cj4+Pj4+PiAgCXVuc2lnbmVkIGludCBpZDsKPj4+Pj4+ICAJY29uc3Qgc3Ry dWN0IHZvcDJfdmlkZW9fcG9ydF9kYXRhICpkYXRhOwo+Pj4+Pj4gIAo+Pj4+Pj4gQEAgLTIxMiw2 ICsyMTMsNyBAQCBzdHJ1Y3Qgdm9wMiB7Cj4+Pj4+PiAgCXN0cnVjdCBjbGsgKmhjbGs7Cj4+Pj4+ PiAgCXN0cnVjdCBjbGsgKmFjbGs7Cj4+Pj4+PiAgCXN0cnVjdCBjbGsgKnBjbGs7Cj4+Pj4+PiAr CXN0cnVjdCBjbGsgKnBsbF9oZG1pcGh5MDsKPj4+Pj4+ICAKPj4+Pj4+ICAJLyogb3B0aW9uYWwg aW50ZXJuYWwgcmdiIGVuY29kZXIgKi8KPj4+Pj4+ICAJc3RydWN0IHJvY2tjaGlwX3JnYiAqcmdi Owo+Pj4+Pj4gQEAgLTIyMCw2ICsyMjIsOCBAQCBzdHJ1Y3Qgdm9wMiB7Cj4+Pj4+PiAgCXN0cnVj dCB2b3AyX3dpbiB3aW5bXTsKPj4+Pj4+ICB9Owo+Pj4+Pj4gIAo+Pj4+Pj4gKyNkZWZpbmUgVk9Q Ml9NQVhfRENMS19SQVRFCQk2MDAwMDAgLyoga0h6ICovCj4+Pj4+PiArCj4+Pj4+PiAgI2RlZmlu ZSB2b3AyX291dHB1dF9pZl9pc19oZG1pKHgpCSgoeCkgPT0gUk9DS0NISVBfVk9QMl9FUF9IRE1J MCB8fCBcCj4+Pj4+PiAgCQkJCQkgKHgpID09IFJPQ0tDSElQX1ZPUDJfRVBfSERNSTEpCj4+Pj4+ PiAgCj4+Pj4+PiBAQCAtMTAzMyw2ICsxMDM3LDkgQEAgc3RhdGljIHZvaWQgdm9wMl9jcnRjX2F0 b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPj4+Pj4+ICAKPj4+Pj4+ICAJdm9w Ml9jcnRjX2Rpc2FibGVfaXJxKHZwLCBWUF9JTlRfRFNQX0hPTERfVkFMSUQpOwo+Pj4+Pj4gIAo+ Pj4+Pj4gKwlpZiAodnAtPmRjbGtfc3JjKQo+Pj4+Pj4gKwkJY2xrX3NldF9wYXJlbnQodnAtPmRj bGssIHZwLT5kY2xrX3NyYyk7Cj4+Pj4+PiArCj4+Pj4+PiAgCWNsa19kaXNhYmxlX3VucHJlcGFy ZSh2cC0+ZGNsayk7Cj4+Pj4+PiAgCj4+Pj4+PiAgCXZvcDItPmVuYWJsZV9jb3VudC0tOwo+Pj4+ Pj4gQEAgLTIwNDksNiArMjA1NiwyNyBAQCBzdGF0aWMgdm9pZCB2b3AyX2NydGNfYXRvbWljX2Vu YWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4+Pj4+PiAgCj4+Pj4+PiAgCXZvcDJfdnBfd3Jp dGUodnAsIFJLMzU2OF9WUF9NSVBJX0NUUkwsIDApOwo+Pj4+Pj4gIAo+Pj4+Pj4gKwkvKgo+Pj4+ Pj4gKwkgKiBTd2l0Y2ggdG8gSERNSSBQSFkgUExMIGFzIERDTEsgc291cmNlIGZvciBkaXNwbGF5 IG1vZGVzIHVwCj4+Pj4+PiArCSAqIHRvIDRLQDYwSHosIGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNl IGtlZXAgdXNpbmcgdGhlIHN5c3RlbSBDUlUuCj4+Pj4+PiArCSAqLwo+Pj4+Pj4gKwlpZiAodm9w Mi0+cGxsX2hkbWlwaHkwICYmIG1vZGUtPmNydGNfY2xvY2sgPD0gVk9QMl9NQVhfRENMS19SQVRF KSB7Cj4+Pj4+PiArCQlkcm1fZm9yX2VhY2hfZW5jb2Rlcl9tYXNrKGVuY29kZXIsIGNydGMtPmRl diwgY3J0Y19zdGF0ZS0+ZW5jb2Rlcl9tYXNrKSB7Cj4+Pj4+PiArCQkJc3RydWN0IHJvY2tjaGlw X2VuY29kZXIgKnJrZW5jb2RlciA9IHRvX3JvY2tjaGlwX2VuY29kZXIoZW5jb2Rlcik7Cj4+Pj4+ PiArCj4+Pj4+PiArCQkJaWYgKHJrZW5jb2Rlci0+Y3J0Y19lbmRwb2ludF9pZCA9PSBST0NLQ0hJ UF9WT1AyX0VQX0hETUkwKSB7Cj4+Pj4+PiArCQkJCWlmICghdnAtPmRjbGtfc3JjKQo+Pj4+Pj4g KwkJCQkJdnAtPmRjbGtfc3JjID0gY2xrX2dldF9wYXJlbnQodnAtPmRjbGspOwo+Pj4+Pj4gKwo+ Pj4+Pj4gKwkJCQlyZXQgPSBjbGtfc2V0X3BhcmVudCh2cC0+ZGNsaywgdm9wMi0+cGxsX2hkbWlw aHkwKTsKPj4+Pj4+ICsJCQkJaWYgKHJldCA8IDApCj4+Pj4+PiArCQkJCQlkcm1fd2Fybih2b3Ay LT5kcm0sCj4+Pj4+PiArCQkJCQkJICJDb3VsZCBub3Qgc3dpdGNoIHRvIEhETUkwIFBIWSBQTEw6 ICVkXG4iLCByZXQpOwo+Pj4+Pj4gKwkJCQlicmVhazsKPj4+Pj4+ICsJCQl9Cj4+Pj4+PiArCQl9 Cj4+Pj4+PiArCX0KPj4+Pj4+ICsKPj4+Pj4KPj4+Pj4gSXQgc2VlbXMgcHJldHR5IGZyYWdpbGUg dG8gZG8gaXQgYXQgYXRvbWljX2VuYWJsZSB0aW1lLCBldmVuIG1vcmUgc28KPj4+Pj4gc2luY2Ug eW91IGRvbid0IGxvY2sgdGhlIHBhcmVudCBlaXRoZXIuCj4+Pj4+Cj4+Pj4+IEFueSByZWFzb24g bm90IHRvIGRvIGl0IGluIHRoZSBEUk0gb3IgY2xvY2sgZHJpdmVyIHByb2JlLCBhbmQgbWFrZSBz dXJlCj4+Pj4+IHlvdSBuZXZlciBjaGFuZ2UgdGhlIHBhcmVudCBzb21laG93Pwo+Pj4+Cj4+Pj4g T24gcmszNTg4IHdlIGhhdmUgMyBkY2xrX3MgYW5kIDIgaGRtaSBjb250cm9sbGVycy4gRWFjaCB2 aWRlby1wb3J0IGNhbgo+Pj4+IHVzZSB0aGUgY2xvY2sgZ2VuZXJhdGVkIGZyb20gZWl0aGVyIHRo ZSBoZG1pMHBoeSBvciBoZG1pMXBoeSwgZGVwZW5kaW5nCj4+Pj4gb24gd2hpY2ggaGRtaS1jb250 cm9sbGVyIGl0IHVzZXMuCj4+Pj4KPj4+PiBTbyB5b3UgYWN0dWFsbHkgbmVlZCB0byBrbm93IHdo aWNoIHZwWCB3aWxsIG91dHB1dCB0byB3aGljaCBoZG1pWSB0byB0aGVuCj4+Pj4gcmVwYXJlbnQg dGhhdCBkY2xrIHRvIHRoZSBoZG1pcGh5IG91dHB1dC4KPj4+Cj4+PiBUaGUgUm9ja2NoaXAgbm9t ZW5jbGF0dXJlIGlzbid0IHN1cGVyIG9idmlvdXMgdG8gbWUsIHNvcnJ5LiBJcyB0aGVyZSBhCj4+ PiBkYXRhc2hlZXQgZm9yIHRoaXMgc29tZXdoZXJlPyBBbHNvLCBkb2VzIHRoaXMgdnBYIC0+IEhE TUktWSBtYXBwaW5nIG5lZWQKPj4+IHRvIGJlIGR5bmFtaWM/Cj4+Cj4+IFZQcyBhcmUgQ1JUQ3Mg aW4gZHJtLWxhbmd1YWdlIGFuZCBlYWNoIG9mIHRoZW0gY2FuIGRyaXZlIGEgZGlmZmVyaW5nCj4+ IG51bWJlciBvZiBvdXRwdXQgZW5jb2RlcnMuIFRob3NlIHZpZGVvLXBvcnRzIGFsc28gaGF2ZSBk aWZmZXJpbmcgb3V0cHV0Cj4+IGNoYXJhY3RlcmlzdGljcyBpbiB0ZXJtcyBvZiBzdXBwb3J0ZWQg cmVzb2x1dGlvbiBhbmQgb3RoZXIgcHJvcGVydGllcy4KPj4KPj4gVGhlIHJrMzU4OCBUUk0gaGFz IGxlYWtlZCBpbiBhIG51bWJlciBvZiBwbGFjZXMsIGFuZCBpZiB5b3UgZmluZCBhCj4+IFRSTS1w YXJ0MiwgdGhlcmUgaXMgYSBzZWN0aW9uIGxhYmVsZWQgIkRpc3BsYXkgT3V0cHV0IEludGVyZmFj ZSBEZXNjcmlwdGlvbiIKPj4gdGhhdCBoYXMgYSBuaWNlIGdyYXBoaWMgZm9yIHRoYXQuCj4+Cj4+ IE9yIGluIHNob3J0Ogo+PiAtIENSVEMoVlApMCBzdXBwb3J0cyA4SyByZXNvbHV0aW9uIGFuZCBj YW4gZHJpdmUgRFAwKzEsIEhETUkwKzEsIGVEUDArMQo+PiAgIFtpZiBJJ20gcmVhZGluZyB0aGlu Z3MgY29ycmVjdGx5LCA4SyB0b2dldGhlciB3aXRoIENSVEMxIHNvbWVob3cpCj4+IC0gQ1JUQyhW UCkxIHN1cHBvcnRzIDRLIHJlc29sdXRpb24gYW5kIGNhbiBkcml2ZSBEUDArMSwgSERNSTArMSwg ZURQMCsxCj4+IC0gQ1JUQyhWUCkyIHN1cHBvcnRzIDRLIHJlc29sdXRpb24gYW5kIGNhbiBkcml2 ZSBEUDArMSwgSERNSTArMSwgZURQMDEsIERTSTArMQo+PiAtIENSVEMoVlApMyBzdXBwb3J0cyAy SyByZXNvbHV0aW9uIGFuZCBjYW4gZHJpdmUgRFNJMCsxIGFuZCBzb21lIEJUMTEyMCxCVDY1Ngo+ Pgo+PiBzbyBmb3IgdGhlIDMgaGlnaGVyIHJlc29sdXRpb24gQ1JUQ3MgdGhlcmUgYXJlIGVzc2Vu dGlhbGx5IDYgb3IgOCBvdXRwdXQgb3B0aW9ucwo+PiBkZXBlbmRpbmcgb24gdGhlIGJvYXJkIGRl c2lnbgo+IAo+IFRoYXQncyBtdWNoIGNsZWFyZXIsIHRoYW5rcy4gSSdtIG5vdCBlbnRpcmVseSBz dXJlIGhvdyB0aGF0IGxpbmtzIHRvIHRoZQo+IG5lZWQgZm9yIHRoZSBQTEwgdG8gY2hhbmdlIGl0 cyBwYXJlbnQgZGVwZW5kaW5nIG9uIHRoZSBvdXB1dC4gRG8geW91Cj4gbmVlZCB0byBhbHdheXMg aGF2ZSBhbGwgdGhlIG91dHB1dHMgb24gdGhlIHNhbWUgUExMPwoKT25lIG9mIHRoZSBwcm9ibGVt cyBpcyB0aGF0IHRoZSBQSFkgUExMcyBjYW5ub3QgYmUgdXNlZCBhcyBjbG9jayBzb3VyY2VzCmZv ciByZXNvbHV0aW9ucyBhYm92ZSA0S0A2MEh6LCB3aGlsZSBWT1AyIG9uIFJLMzU4OCBzdXBwb3J0 cyB1cCB0byA4S0A2MEh6LAp3aGljaCBpcyBzdXBwb3NlZCB0byBiZSBoYW5kbGVkIGJ5IHRoZSBz eXN0ZW0gQ1JVLgoKTW9yZW92ZXIsIHRoZSAyIFBMTHMgYXJlIHNoYXJlZCBiZXR3ZWVuIDMgb3V0 IG9mIHRoZSA0IHZpZGVvIHBvcnRzIGFscmVhZHkKbWVudGlvbmVkIGJ5IEhlaWtvLiAgVGhlcmUg aXMgcXVpdGUgYSBiaXQgb2YgY29tcGxleGl0eSBpbiBkb3duc3RyZWFtCmRyaXZlciB0byBoYW5k bGUgYWxsIHBvc3NpYmxlIHVzZWNhc2VzIC0gc2VlIFsxXSBmb3IgYSBicmllZiBkZXNjcmlwdGlv biBvbgpob3cgd2FzIHRoYXQgZGVzaWduZWQgdG8gd29yay4KClJlZ2FyZHMsCkNyaXN0aWFuCgpb MV0gaHR0cHM6Ly9naXRodWIuY29tL3JhZHhhL2tlcm5lbC9ibG9iL2xpbnV4LTYuMS1zdGFuLXJr cjQuMS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcDIuYyNMNDc0MgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgtcm9j a2NoaXAgbWFpbGluZyBsaXN0CkxpbnV4LXJvY2tjaGlwQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yb2NrY2hpcAo=