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 X-Spam-Level: X-Spam-Status: No, score=-3.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 506E4C49ED7 for ; Thu, 19 Sep 2019 12:21:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EEE7A21D56 for ; Thu, 19 Sep 2019 12:21:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=megous.com header.i=@megous.com header.b="kTdFWb2G" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390285AbfISMVB (ORCPT ); Thu, 19 Sep 2019 08:21:01 -0400 Received: from vps.xff.cz ([195.181.215.36]:48692 "EHLO vps.xff.cz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387977AbfISMVA (ORCPT ); Thu, 19 Sep 2019 08:21:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megous.com; s=mail; t=1568895658; bh=DqSuKlgtgfCl7vwt3b48cW4t7q3h+us6tEnhNhgaN+E=; h=Date:From:To:Cc:Subject:References:X-My-GPG-KeyId:From; b=kTdFWb2GFFllFkv4JMgHqgabRRuxwN4ML8mLbNQuo20IqJZZvEltfHl/FqlR1380E TvXyQlIeGIgk9qZ+YH+mi2xe3EILN9qrqf/w/WBg/09YuOPSxXaFGLlNgHcPMNfUH9 lL5y74N1kzBAQ6QHmSyUx1ilToCdP/Vl3/gptIIY= Date: Thu, 19 Sep 2019 14:20:58 +0200 From: =?utf-8?Q?Ond=C5=99ej?= Jirman To: Maxime Ripard Cc: David Airlie , Daniel Vetter , Chen-Yu Tsai , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] drm: sun8i-ui/vi: Fix layer zpos change/atomic modesetting Message-ID: <20190919122058.fhpuafogdq7oir2d@core.my.home> Mail-Followup-To: Maxime Ripard , David Airlie , Daniel Vetter , Chen-Yu Tsai , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20190914220337.646719-1-megous@megous.com> <20190918141734.kerdbbaynwutrxf6@gilmour> <20190918152309.j2dbu63jaru6jn2t@core.my.home> <20190918201617.5gwzmshoxbcxbmrx@gilmour> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20190918201617.5gwzmshoxbcxbmrx@gilmour> X-My-GPG-KeyId: EBFBDDE11FB918D44D1F56C1F9F0A873BE9777ED Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Sep 18, 2019 at 10:16:17PM +0200, Maxime Ripard wrote: > On Wed, Sep 18, 2019 at 05:23:09PM +0200, Ondřej Jirman wrote: > > Hi, > > > > On Wed, Sep 18, 2019 at 04:17:34PM +0200, Maxime Ripard wrote: > > > Hi, > > > > > > On Sun, Sep 15, 2019 at 12:03:37AM +0200, megous@megous.com wrote: > > > > From: Ondrej Jirman > > > > > > > > There are various issues that this re-work of sun8i_[uv]i_layer_enable > > > > function fixes: > > > > > > > > - Make sure that we re-initialize zpos on reset > > > > - Minimize register updates by doing them only when state changes > > > > - Fix issue where DE pipe might get disabled even if it is no longer > > > > used by the layer that's currently calling sun8i_ui_layer_enable > > > > - .atomic_disable callback is not really needed because .atomic_update > > > > can do the disable too, so drop the duplicate code > > > > > > > > Signed-off-by: Ondrej Jirman > > > > > > It looks like these fixes should be in separate patches. Is there any > > > reason it's not the case? > > > > Bullet points just describe the resulting effect/benefits of the change to fix > > the pipe control register update issue (see the referenced e-mail). > > It's definitely ok to have multiple patches needed to address a single > perceived issue. Yes, but I can't simply split the patch. In order for each change to work on its own, they'd have to be done differently than the final result. I wouldn't mind at all if it was just a simple splitting, but you're asking for too much work, this time, for no benefit that I can see. > A commit is not about what you're fixing but what you're changing. And > the fact that you have tha bullet list in the first place proves that > you have multiple logical changes in your patch. > > And even then, your commit log mentions that you're fixing multiple > issues (without explaining them). I can reword the commit message if that helps, and skip the bullet list if it is confusing. There's a single core issue and that is that the driver doesn't update the pipe/channel configuration correctly leading to disabling of arbitrary layers (not even those being updated - update of UI layer may disable VI layer as a side effect for example) at wrong times. And only changes necessary to debug/fix this are included. I may try generating a nicer patch with a different diff options, if it makes it more readable for review. > > I can maybe split off the first bullet point into a separate patch. But > > I can't guarantee it will not make the original issue worse, because it might > > have been hiding the other issue with register updates. > > > > The rest is just a result of the single logical change. It doesn't work > > individually, it all has the goal of fixing the issue as a whole. > > > > If I were to split it I would have to actually re-implement .atomic_disable > > callback only to remove it in the next patch. I don't see the benefit. > > Your commit log says that you remove atomic_disable. Why would you > remove it, to add it back, to remove it again? Because if I remove it I need to re-implement the functionality in the update callback. The core will change what is called based on presence of callbacks. It's not a simple removal. If I first implement the new sun8i_[uv]i_layer_enable and update callback, keeping a disable callback would not work, because the new update callback will only work if disable callback is not defined (because it it is, then the drm core will not call the update callback in all cases that I need). regards, o. > Maxime > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel 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 X-Spam-Level: X-Spam-Status: No, score=-2.7 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_ADSP_ALL, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 71D6FC49ED7 for ; Thu, 19 Sep 2019 12:21:24 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 3FC56207FC for ; Thu, 19 Sep 2019 12:21:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="O+EJZ7Gx"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=megous.com header.i=@megous.com header.b="kTdFWb2G" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3FC56207FC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=megous.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=BZ8Q3hvpg8JOtK+BM/FH1rvfnoIgzwoEuN8xr6ftUTA=; b=O+EJZ7GxekLIRC A9IXyljQF9zpon3SbUK3n1JrkUpjP7y/tsKK8ahGDZjvwCfPKgt4b1OLsxj5UVKcqEdENaHwiA7f4 y5b3ijbpIGVOKCExWuInQ9cGCXdcLRxM5zzXTzpguRWL9OxjwMRdrggCXeHNskpy/yp+IUoYpQHuI SYeBEb/YcOVhelCbJOdlZ4pFagQKJdgQj7cPUfizDLIoHahjdGVg1GJtNmkSMo/aUHKu6+1oSQJbh hzR1s5eid3fPJMmmUkEl9INuAhXfXYq6x9lTVhsM5NvKCKT6hqG6/C2w7CnSlK6tKyIKqktQ+bmKM Rv6zaX/AkdE4FfqTJptA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.2 #3 (Red Hat Linux)) id 1iAvQr-0000UK-1R; Thu, 19 Sep 2019 12:21:09 +0000 Received: from vps.xff.cz ([195.181.215.36]) by bombadil.infradead.org with esmtps (Exim 4.92.2 #3 (Red Hat Linux)) id 1iAvQj-0000TD-Gk for linux-arm-kernel@lists.infradead.org; Thu, 19 Sep 2019 12:21:06 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megous.com; s=mail; t=1568895658; bh=DqSuKlgtgfCl7vwt3b48cW4t7q3h+us6tEnhNhgaN+E=; h=Date:From:To:Cc:Subject:References:X-My-GPG-KeyId:From; b=kTdFWb2GFFllFkv4JMgHqgabRRuxwN4ML8mLbNQuo20IqJZZvEltfHl/FqlR1380E TvXyQlIeGIgk9qZ+YH+mi2xe3EILN9qrqf/w/WBg/09YuOPSxXaFGLlNgHcPMNfUH9 lL5y74N1kzBAQ6QHmSyUx1ilToCdP/Vl3/gptIIY= Date: Thu, 19 Sep 2019 14:20:58 +0200 From: =?utf-8?Q?Ond=C5=99ej?= Jirman To: Maxime Ripard Subject: Re: [PATCH] drm: sun8i-ui/vi: Fix layer zpos change/atomic modesetting Message-ID: <20190919122058.fhpuafogdq7oir2d@core.my.home> Mail-Followup-To: Maxime Ripard , David Airlie , Daniel Vetter , Chen-Yu Tsai , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20190914220337.646719-1-megous@megous.com> <20190918141734.kerdbbaynwutrxf6@gilmour> <20190918152309.j2dbu63jaru6jn2t@core.my.home> <20190918201617.5gwzmshoxbcxbmrx@gilmour> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190918201617.5gwzmshoxbcxbmrx@gilmour> X-My-GPG-KeyId: EBFBDDE11FB918D44D1F56C1F9F0A873BE9777ED X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190919_052102_062390_2FD2CBBC X-CRM114-Status: GOOD ( 27.94 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Airlie , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Chen-Yu Tsai , Daniel Vetter , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gV2VkLCBTZXAgMTgsIDIwMTkgYXQgMTA6MTY6MTdQTSArMDIwMCwgTWF4aW1lIFJpcGFyZCB3 cm90ZToKPiBPbiBXZWQsIFNlcCAxOCwgMjAxOSBhdCAwNToyMzowOVBNICswMjAwLCBPbmTFmWVq IEppcm1hbiB3cm90ZToKPiA+IEhpLAo+ID4KPiA+IE9uIFdlZCwgU2VwIDE4LCAyMDE5IGF0IDA0 OjE3OjM0UE0gKzAyMDAsIE1heGltZSBSaXBhcmQgd3JvdGU6Cj4gPiA+IEhpLAo+ID4gPgo+ID4g PiBPbiBTdW4sIFNlcCAxNSwgMjAxOSBhdCAxMjowMzozN0FNICswMjAwLCBtZWdvdXNAbWVnb3Vz LmNvbSB3cm90ZToKPiA+ID4gPiBGcm9tOiBPbmRyZWogSmlybWFuIDxtZWdvdXNAbWVnb3VzLmNv bT4KPiA+ID4gPgo+ID4gPiA+IFRoZXJlIGFyZSB2YXJpb3VzIGlzc3VlcyB0aGF0IHRoaXMgcmUt d29yayBvZiBzdW44aV9bdXZdaV9sYXllcl9lbmFibGUKPiA+ID4gPiBmdW5jdGlvbiBmaXhlczoK PiA+ID4gPgo+ID4gPiA+IC0gTWFrZSBzdXJlIHRoYXQgd2UgcmUtaW5pdGlhbGl6ZSB6cG9zIG9u IHJlc2V0Cj4gPiA+ID4gLSBNaW5pbWl6ZSByZWdpc3RlciB1cGRhdGVzIGJ5IGRvaW5nIHRoZW0g b25seSB3aGVuIHN0YXRlIGNoYW5nZXMKPiA+ID4gPiAtIEZpeCBpc3N1ZSB3aGVyZSBERSBwaXBl IG1pZ2h0IGdldCBkaXNhYmxlZCBldmVuIGlmIGl0IGlzIG5vIGxvbmdlcgo+ID4gPiA+ICAgdXNl ZCBieSB0aGUgbGF5ZXIgdGhhdCdzIGN1cnJlbnRseSBjYWxsaW5nIHN1bjhpX3VpX2xheWVyX2Vu YWJsZQo+ID4gPiA+IC0gLmF0b21pY19kaXNhYmxlIGNhbGxiYWNrIGlzIG5vdCByZWFsbHkgbmVl ZGVkIGJlY2F1c2UgLmF0b21pY191cGRhdGUKPiA+ID4gPiAgIGNhbiBkbyB0aGUgZGlzYWJsZSB0 b28sIHNvIGRyb3AgdGhlIGR1cGxpY2F0ZSBjb2RlCj4gPiA+ID4KPiA+ID4gPiBTaWduZWQtb2Zm LWJ5OiBPbmRyZWogSmlybWFuIDxtZWdvdXNAbWVnb3VzLmNvbT4KPiA+ID4KPiA+ID4gSXQgbG9v a3MgbGlrZSB0aGVzZSBmaXhlcyBzaG91bGQgYmUgaW4gc2VwYXJhdGUgcGF0Y2hlcy4gSXMgdGhl cmUgYW55Cj4gPiA+IHJlYXNvbiBpdCdzIG5vdCB0aGUgY2FzZT8KPiA+Cj4gPiBCdWxsZXQgcG9p bnRzIGp1c3QgZGVzY3JpYmUgdGhlIHJlc3VsdGluZyBlZmZlY3QvYmVuZWZpdHMgb2YgdGhlIGNo YW5nZSB0byBmaXgKPiA+IHRoZSBwaXBlIGNvbnRyb2wgcmVnaXN0ZXIgdXBkYXRlIGlzc3VlIChz ZWUgdGhlIHJlZmVyZW5jZWQgZS1tYWlsKS4KPiAKPiBJdCdzIGRlZmluaXRlbHkgb2sgdG8gaGF2 ZSBtdWx0aXBsZSBwYXRjaGVzIG5lZWRlZCB0byBhZGRyZXNzIGEgc2luZ2xlCj4gcGVyY2VpdmVk IGlzc3VlLgoKWWVzLCBidXQgSSBjYW4ndCBzaW1wbHkgc3BsaXQgdGhlIHBhdGNoLiBJbiBvcmRl ciBmb3IgZWFjaCBjaGFuZ2UgdG8gd29yayBvbiBpdHMKb3duLCB0aGV5J2QgaGF2ZSB0byBiZSBk b25lIGRpZmZlcmVudGx5IHRoYW4gdGhlIGZpbmFsIHJlc3VsdC4KCkkgd291bGRuJ3QgbWluZCBh dCBhbGwgaWYgaXQgd2FzIGp1c3QgYSBzaW1wbGUgc3BsaXR0aW5nLCBidXQgeW91J3JlIGFza2lu Zwpmb3IgdG9vIG11Y2ggd29yaywgdGhpcyB0aW1lLCBmb3Igbm8gYmVuZWZpdCB0aGF0IEkgY2Fu IHNlZS4KCj4gQSBjb21taXQgaXMgbm90IGFib3V0IHdoYXQgeW91J3JlIGZpeGluZyBidXQgd2hh dCB5b3UncmUgY2hhbmdpbmcuIEFuZAo+IHRoZSBmYWN0IHRoYXQgeW91IGhhdmUgdGhhIGJ1bGxl dCBsaXN0IGluIHRoZSBmaXJzdCBwbGFjZSBwcm92ZXMgdGhhdAo+IHlvdSBoYXZlIG11bHRpcGxl IGxvZ2ljYWwgY2hhbmdlcyBpbiB5b3VyIHBhdGNoLgo+IAo+IEFuZCBldmVuIHRoZW4sIHlvdXIg Y29tbWl0IGxvZyBtZW50aW9ucyB0aGF0IHlvdSdyZSBmaXhpbmcgbXVsdGlwbGUKPiBpc3N1ZXMg KHdpdGhvdXQgZXhwbGFpbmluZyB0aGVtKS4KCkkgY2FuIHJld29yZCB0aGUgY29tbWl0IG1lc3Nh Z2UgaWYgdGhhdCBoZWxwcywgYW5kIHNraXAgdGhlIGJ1bGxldCBsaXN0IGlmIGl0CmlzIGNvbmZ1 c2luZy4gVGhlcmUncyBhIHNpbmdsZSBjb3JlIGlzc3VlIGFuZCB0aGF0IGlzIHRoYXQgdGhlIGRy aXZlciBkb2Vzbid0CnVwZGF0ZSB0aGUgcGlwZS9jaGFubmVsIGNvbmZpZ3VyYXRpb24gY29ycmVj dGx5IGxlYWRpbmcgdG8gZGlzYWJsaW5nIG9mCmFyYml0cmFyeSBsYXllcnMgKG5vdCBldmVuIHRo b3NlIGJlaW5nIHVwZGF0ZWQgLSB1cGRhdGUgb2YgVUkgbGF5ZXIgbWF5IGRpc2FibGUKVkkgbGF5 ZXIgYXMgYSBzaWRlIGVmZmVjdCBmb3IgZXhhbXBsZSkgYXQgd3JvbmcgdGltZXMuIEFuZCBvbmx5 IGNoYW5nZXMKbmVjZXNzYXJ5IHRvIGRlYnVnL2ZpeCB0aGlzIGFyZSBpbmNsdWRlZC4KCkkgbWF5 IHRyeSBnZW5lcmF0aW5nIGEgbmljZXIgcGF0Y2ggd2l0aCBhIGRpZmZlcmVudCBkaWZmIG9wdGlv bnMsIGlmIGl0IG1ha2VzIGl0Cm1vcmUgcmVhZGFibGUgZm9yIHJldmlldy4KCj4gPiBJIGNhbiBt YXliZSBzcGxpdCBvZmYgdGhlIGZpcnN0IGJ1bGxldCBwb2ludCBpbnRvIGEgc2VwYXJhdGUgcGF0 Y2guIEJ1dAo+ID4gSSBjYW4ndCBndWFyYW50ZWUgaXQgd2lsbCBub3QgbWFrZSB0aGUgb3JpZ2lu YWwgaXNzdWUgd29yc2UsIGJlY2F1c2UgaXQgbWlnaHQKPiA+IGhhdmUgYmVlbiBoaWRpbmcgdGhl IG90aGVyIGlzc3VlIHdpdGggcmVnaXN0ZXIgdXBkYXRlcy4KPiA+Cj4gPiBUaGUgcmVzdCBpcyBq dXN0IGEgcmVzdWx0IG9mIHRoZSBzaW5nbGUgbG9naWNhbCBjaGFuZ2UuIEl0IGRvZXNuJ3Qgd29y awo+ID4gaW5kaXZpZHVhbGx5LCBpdCBhbGwgaGFzIHRoZSBnb2FsIG9mIGZpeGluZyB0aGUgaXNz dWUgYXMgYSB3aG9sZS4KPiA+Cj4gPiBJZiBJIHdlcmUgdG8gc3BsaXQgaXQgSSB3b3VsZCBoYXZl IHRvIGFjdHVhbGx5IHJlLWltcGxlbWVudCAuYXRvbWljX2Rpc2FibGUKPiA+IGNhbGxiYWNrIG9u bHkgdG8gcmVtb3ZlIGl0IGluIHRoZSBuZXh0IHBhdGNoLiBJIGRvbid0IHNlZSB0aGUgYmVuZWZp dC4KPiAKPiBZb3VyIGNvbW1pdCBsb2cgc2F5cyB0aGF0IHlvdSByZW1vdmUgYXRvbWljX2Rpc2Fi bGUuIFdoeSB3b3VsZCB5b3UKPiByZW1vdmUgaXQsIHRvIGFkZCBpdCBiYWNrLCB0byByZW1vdmUg aXQgYWdhaW4/CgpCZWNhdXNlIGlmIEkgcmVtb3ZlIGl0IEkgbmVlZCB0byByZS1pbXBsZW1lbnQg dGhlIGZ1bmN0aW9uYWxpdHkgaW4gdGhlIHVwZGF0ZQpjYWxsYmFjay4gVGhlIGNvcmUgd2lsbCBj aGFuZ2Ugd2hhdCBpcyBjYWxsZWQgYmFzZWQgb24gcHJlc2VuY2Ugb2YgY2FsbGJhY2tzLgpJdCdz IG5vdCBhIHNpbXBsZSByZW1vdmFsLgoKSWYgSSBmaXJzdCBpbXBsZW1lbnQgdGhlIG5ldyBzdW44 aV9bdXZdaV9sYXllcl9lbmFibGUgYW5kIHVwZGF0ZSBjYWxsYmFjaywKa2VlcGluZyBhIGRpc2Fi bGUgY2FsbGJhY2sgd291bGQgbm90IHdvcmssIGJlY2F1c2UgdGhlIG5ldyB1cGRhdGUgY2FsbGJh Y2sKd2lsbCBvbmx5IHdvcmsgaWYgZGlzYWJsZSBjYWxsYmFjayBpcyBub3QgZGVmaW5lZCAoYmVj YXVzZSBpdCBpdCBpcywgdGhlbgp0aGUgZHJtIGNvcmUgd2lsbCBub3QgY2FsbCB0aGUgdXBkYXRl IGNhbGxiYWNrIGluIGFsbCBjYXNlcyB0aGF0IEkgbmVlZCkuCgpyZWdhcmRzLAoJby4KCj4gTWF4 aW1lCgoKCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K PiBsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdAo+IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMu aW5mcmFkZWFkLm9yZwo+IGh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtYXJtLWtlcm5lbAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJu ZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK