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=-5.1 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 autolearn=unavailable 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 57826C433DF for ; Tue, 19 May 2020 09:30:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 32C37207C4 for ; Tue, 19 May 2020 09:30:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=armlinux.org.uk header.i=@armlinux.org.uk header.b="zs9tbHcL" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726717AbgESJaq (ORCPT ); Tue, 19 May 2020 05:30:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38290 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726505AbgESJap (ORCPT ); Tue, 19 May 2020 05:30:45 -0400 Received: from pandora.armlinux.org.uk (pandora.armlinux.org.uk [IPv6:2001:4d48:ad52:3201:214:fdff:fe10:1be6]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D1B03C061A0C; Tue, 19 May 2020 02:30:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=rDkog1PAN1T7MdqLtFOWdqFB/5sRcxJYVWYK5k03nOM=; b=zs9tbHcLyegSt8cjSfSKZTO6e QJLFRolcnj4GdZkdBdkicC6cnqALIXzgo5h3DvhWUOIFdlMeWnWo6bM2JmqHo+Z6nHhJNGdSygzbY 5X+ggygXn+p5NQKdwWO4XyCwKLgBAMGIwE6KTxZG3pOBxN1/ataFbZIRTMcRFIoiPYT3bvhgrwy1V 6FVrhFDqsBw5DAHTEwkt0XH8DF/IQUavfWNnh4pRubqkB8rm1+YYASvZYxhaZFYuu879guP/L+E0D 5PyhqNNLeu6/CXeMQjCbI1R3U3re7k1j1vJobb2wFPFaXgsAOWs2o9mq4bEDRR2YYh7HvYfdmhYZB NT9HL7pCw==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:34112) by pandora.armlinux.org.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jayZi-0004p1-M8; Tue, 19 May 2020 10:30:14 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.92) (envelope-from ) id 1jayZZ-0005ak-JV; Tue, 19 May 2020 10:30:05 +0100 Date: Tue, 19 May 2020 10:30:05 +0100 From: Russell King - ARM Linux admin To: Lukasz Stelmach Cc: Geert Uytterhoeven , Dmitry Osipenko , Nicolas Pitre , Arnd Bergmann , Eric Miao , Uwe =?iso-8859-1?Q?Kleine-K=F6nig?= , Masahiro Yamada , Ard Biesheuvel , Marek Szyprowski , Chris Brandt , linux-arm-kernel@lists.infradead.org, linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org, Bartlomiej Zolnierkiewicz Subject: Re: [PATCH v6] ARM: boot: Obtain start of physical memory from DTB Message-ID: <20200519093005.GX1551@shell.armlinux.org.uk> References: <20200429082120.16259-1-geert+renesas@glider.be> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-renesas-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-renesas-soc@vger.kernel.org On Tue, May 19, 2020 at 10:53:52AM +0200, Lukasz Stelmach wrote: > It was <2020-04-29 śro 10:21>, when Geert Uytterhoeven wrote: > > Currently, the start address of physical memory is obtained by masking > > the program counter with a fixed mask of 0xf8000000. This mask value > > was chosen as a balance between the requirements of different platforms. > > However, this does require that the start address of physical memory is > > a multiple of 128 MiB, precluding booting Linux on platforms where this > > requirement is not fulfilled. > > > > Fix this limitation by obtaining the start address from the DTB instead, > > if available (either explicitly passed, or appended to the kernel). > > Fall back to the traditional method when needed. > > > > This allows to boot Linux on r7s9210/rza2mevb using the 64 MiB of SDRAM > > on the RZA2MEVB sub board, which is located at 0x0C000000 (CS3 space), > > i.e. not at a multiple of 128 MiB. > > > > Suggested-by: Nicolas Pitre > > Signed-off-by: Geert Uytterhoeven > > Reviewed-by: Nicolas Pitre > > Reviewed-by: Ard Biesheuvel > > Tested-by: Marek Szyprowski > > Tested-by: Dmitry Osipenko > > --- > > [...] > > Apparently reading physical memory layout from DTB breaks crashdump > kernels. A crashdump kernel is loaded into a region of memory, that is > reserved in the original (i.e. to be crashed) kernel. The reserved > region is large enough for the crashdump kernel to run completely inside > it and don't modify anything outside it, just read and dump the remains > of the crashed kernel. Using the information from DTB makes the > decompressor place the kernel outside of the dedicated region. > > The log below shows that a zImage and DTB are loaded at 0x18eb8000 and > 0x193f6000 (physical). The kernel is expected to run at 0x18008000, but > it is decompressed to 0x00008000 (see r4 reported before jumping from > within __enter_kernel). Right, and it's important that the kernel decompresses to 0x18008000 so it doesn't overwrite memory that was being used by the crashing kernel, and thus can create a true coredump image of the failed kernel. Meanwhile, the DTB still needs to describe the full memory layout so that we know where memory is located in order to coredump it properly. So, this is a flaw with this approach, and will need the commit to be dropped yet again - this patch is fundamentally incompatible with the way kexec's crashdump works. Looking back at the history, we've been trying this approach since February with four patches submitted to the patch system, and problems eventually found with each of them. I think this shows that the way the decompressor works out where to decompress the kernel to today is relied upon all over the place, and changing it is always going to cause problems. So, I don't think we /can/ change it without causing a regression for someone. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line in suburbia: sync at 10.2Mbps down 587kbps up 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=-5.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham 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 CC3DEC433E1 for ; Tue, 19 May 2020 09:30:47 +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 98821207C4 for ; Tue, 19 May 2020 09:30:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="ZIXYhAYp"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=armlinux.org.uk header.i=@armlinux.org.uk header.b="zs9tbHcL" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 98821207C4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=armlinux.org.uk 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=bAtLuqaVunl7W3gbF9/HcYQ8n1njIaaqPmfNrAW+mxI=; b=ZIXYhAYpdRDqRR bjR08CAzPN6iQTsqXaVTAeRvPjhXpQvLSyW0wuspBQaf0B02aBZXZM44MESftFFNI6RZmbbI2zUrn MH06ra5I9CRCOoZZFGmNrShnh/SOGhUAI08PethFMSfD9p+ZuFLf6Z3MjqAIuPBR5xayBWnjGLvN6 JUr51wAK/i78qtgGBNHwv968+B3cPL+/G5xR/7RojLGZfljPJwTp6dLX5YvEuoi4iiA+Zm2WZN740 HHfvaso4B7rTMZAeYJNGK88wGdQ+z7RNPbKEu4TCKa4teliQyKQrSKz3RdC2bigtO7LqZ2CrxHqX+ qYyUYyFwwUO9rmKPDNQA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jayaE-00066T-58; Tue, 19 May 2020 09:30:46 +0000 Received: from pandora.armlinux.org.uk ([2001:4d48:ad52:3201:214:fdff:fe10:1be6]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jayaA-00065y-B9 for linux-arm-kernel@lists.infradead.org; Tue, 19 May 2020 09:30:45 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=rDkog1PAN1T7MdqLtFOWdqFB/5sRcxJYVWYK5k03nOM=; b=zs9tbHcLyegSt8cjSfSKZTO6e QJLFRolcnj4GdZkdBdkicC6cnqALIXzgo5h3DvhWUOIFdlMeWnWo6bM2JmqHo+Z6nHhJNGdSygzbY 5X+ggygXn+p5NQKdwWO4XyCwKLgBAMGIwE6KTxZG3pOBxN1/ataFbZIRTMcRFIoiPYT3bvhgrwy1V 6FVrhFDqsBw5DAHTEwkt0XH8DF/IQUavfWNnh4pRubqkB8rm1+YYASvZYxhaZFYuu879guP/L+E0D 5PyhqNNLeu6/CXeMQjCbI1R3U3re7k1j1vJobb2wFPFaXgsAOWs2o9mq4bEDRR2YYh7HvYfdmhYZB NT9HL7pCw==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:34112) by pandora.armlinux.org.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jayZi-0004p1-M8; Tue, 19 May 2020 10:30:14 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.92) (envelope-from ) id 1jayZZ-0005ak-JV; Tue, 19 May 2020 10:30:05 +0100 Date: Tue, 19 May 2020 10:30:05 +0100 From: Russell King - ARM Linux admin To: Lukasz Stelmach Subject: Re: [PATCH v6] ARM: boot: Obtain start of physical memory from DTB Message-ID: <20200519093005.GX1551@shell.armlinux.org.uk> References: <20200429082120.16259-1-geert+renesas@glider.be> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200519_023042_520340_CFD14816 X-CRM114-Status: GOOD ( 24.51 ) 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: Geert Uytterhoeven , Arnd Bergmann , Nicolas Pitre , Masahiro Yamada , Bartlomiej Zolnierkiewicz , linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Chris Brandt , Uwe =?iso-8859-1?Q?Kleine-K=F6nig?= , Eric Miao , Dmitry Osipenko , Ard Biesheuvel , linux-arm-kernel@lists.infradead.org, Marek Szyprowski 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 T24gVHVlLCBNYXkgMTksIDIwMjAgYXQgMTA6NTM6NTJBTSArMDIwMCwgTHVrYXN6IFN0ZWxtYWNo IHdyb3RlOgo+IEl0IHdhcyA8MjAyMC0wNC0yOSDFm3JvIDEwOjIxPiwgd2hlbiBHZWVydCBVeXR0 ZXJob2V2ZW4gd3JvdGU6Cj4gPiBDdXJyZW50bHksIHRoZSBzdGFydCBhZGRyZXNzIG9mIHBoeXNp Y2FsIG1lbW9yeSBpcyBvYnRhaW5lZCBieSBtYXNraW5nCj4gPiB0aGUgcHJvZ3JhbSBjb3VudGVy IHdpdGggYSBmaXhlZCBtYXNrIG9mIDB4ZjgwMDAwMDAuICBUaGlzIG1hc2sgdmFsdWUKPiA+IHdh cyBjaG9zZW4gYXMgYSBiYWxhbmNlIGJldHdlZW4gdGhlIHJlcXVpcmVtZW50cyBvZiBkaWZmZXJl bnQgcGxhdGZvcm1zLgo+ID4gSG93ZXZlciwgdGhpcyBkb2VzIHJlcXVpcmUgdGhhdCB0aGUgc3Rh cnQgYWRkcmVzcyBvZiBwaHlzaWNhbCBtZW1vcnkgaXMKPiA+IGEgbXVsdGlwbGUgb2YgMTI4IE1p QiwgcHJlY2x1ZGluZyBib290aW5nIExpbnV4IG9uIHBsYXRmb3JtcyB3aGVyZSB0aGlzCj4gPiBy ZXF1aXJlbWVudCBpcyBub3QgZnVsZmlsbGVkLgo+ID4KPiA+IEZpeCB0aGlzIGxpbWl0YXRpb24g Ynkgb2J0YWluaW5nIHRoZSBzdGFydCBhZGRyZXNzIGZyb20gdGhlIERUQiBpbnN0ZWFkLAo+ID4g aWYgYXZhaWxhYmxlIChlaXRoZXIgZXhwbGljaXRseSBwYXNzZWQsIG9yIGFwcGVuZGVkIHRvIHRo ZSBrZXJuZWwpLgo+ID4gRmFsbCBiYWNrIHRvIHRoZSB0cmFkaXRpb25hbCBtZXRob2Qgd2hlbiBu ZWVkZWQuCj4gPgo+ID4gVGhpcyBhbGxvd3MgdG8gYm9vdCBMaW51eCBvbiByN3M5MjEwL3J6YTJt ZXZiIHVzaW5nIHRoZSA2NCBNaUIgb2YgU0RSQU0KPiA+IG9uIHRoZSBSWkEyTUVWQiBzdWIgYm9h cmQsIHdoaWNoIGlzIGxvY2F0ZWQgYXQgMHgwQzAwMDAwMCAoQ1MzIHNwYWNlKSwKPiA+IGkuZS4g bm90IGF0IGEgbXVsdGlwbGUgb2YgMTI4IE1pQi4KPiA+Cj4gPiBTdWdnZXN0ZWQtYnk6IE5pY29s YXMgUGl0cmUgPG5pY29AZmx1eG5pYy5uZXQ+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBHZWVydCBVeXR0 ZXJob2V2ZW4gPGdlZXJ0K3JlbmVzYXNAZ2xpZGVyLmJlPgo+ID4gUmV2aWV3ZWQtYnk6IE5pY29s YXMgUGl0cmUgPG5pY29AZmx1eG5pYy5uZXQ+Cj4gPiBSZXZpZXdlZC1ieTogQXJkIEJpZXNoZXV2 ZWwgPGFyZGJAa2VybmVsLm9yZz4KPiA+IFRlc3RlZC1ieTogTWFyZWsgU3p5cHJvd3NraSA8bS5z enlwcm93c2tpQHNhbXN1bmcuY29tPgo+ID4gVGVzdGVkLWJ5OiBEbWl0cnkgT3NpcGVua28gPGRp Z2V0eEBnbWFpbC5jb20+Cj4gPiAtLS0KPiAKPiBbLi4uXQo+IAo+IEFwcGFyZW50bHkgcmVhZGlu ZyBwaHlzaWNhbCBtZW1vcnkgbGF5b3V0IGZyb20gRFRCIGJyZWFrcyBjcmFzaGR1bXAKPiBrZXJu ZWxzLiBBIGNyYXNoZHVtcCBrZXJuZWwgaXMgbG9hZGVkIGludG8gYSByZWdpb24gb2YgbWVtb3J5 LCB0aGF0IGlzCj4gcmVzZXJ2ZWQgaW4gdGhlIG9yaWdpbmFsIChpLmUuIHRvIGJlIGNyYXNoZWQp IGtlcm5lbC4gVGhlIHJlc2VydmVkCj4gcmVnaW9uIGlzIGxhcmdlIGVub3VnaCBmb3IgdGhlIGNy YXNoZHVtcCBrZXJuZWwgdG8gcnVuIGNvbXBsZXRlbHkgaW5zaWRlCj4gaXQgYW5kIGRvbid0IG1v ZGlmeSBhbnl0aGluZyBvdXRzaWRlIGl0LCBqdXN0IHJlYWQgYW5kIGR1bXAgdGhlIHJlbWFpbnMK PiBvZiB0aGUgY3Jhc2hlZCBrZXJuZWwuIFVzaW5nIHRoZSBpbmZvcm1hdGlvbiBmcm9tIERUQiBt YWtlcyB0aGUKPiBkZWNvbXByZXNzb3IgcGxhY2UgdGhlIGtlcm5lbCBvdXRzaWRlIG9mIHRoZSBk ZWRpY2F0ZWQgcmVnaW9uLgo+IAo+IFRoZSBsb2cgYmVsb3cgc2hvd3MgdGhhdCBhIHpJbWFnZSBh bmQgRFRCIGFyZSBsb2FkZWQgYXQgMHgxOGViODAwMCBhbmQKPiAweDE5M2Y2MDAwIChwaHlzaWNh bCkuIFRoZSBrZXJuZWwgaXMgZXhwZWN0ZWQgdG8gcnVuIGF0IDB4MTgwMDgwMDAsIGJ1dAo+IGl0 IGlzIGRlY29tcHJlc3NlZCB0byAweDAwMDA4MDAwIChzZWUgcjQgcmVwb3J0ZWQgYmVmb3JlIGp1 bXBpbmcgZnJvbQo+IHdpdGhpbiBfX2VudGVyX2tlcm5lbCkuCgpSaWdodCwgYW5kIGl0J3MgaW1w b3J0YW50IHRoYXQgdGhlIGtlcm5lbCBkZWNvbXByZXNzZXMgdG8gMHgxODAwODAwMApzbyBpdCBk b2Vzbid0IG92ZXJ3cml0ZSBtZW1vcnkgdGhhdCB3YXMgYmVpbmcgdXNlZCBieSB0aGUgY3Jhc2hp bmcKa2VybmVsLCBhbmQgdGh1cyBjYW4gY3JlYXRlIGEgdHJ1ZSBjb3JlZHVtcCBpbWFnZSBvZiB0 aGUgZmFpbGVkCmtlcm5lbC4gIE1lYW53aGlsZSwgdGhlIERUQiBzdGlsbCBuZWVkcyB0byBkZXNj cmliZSB0aGUgZnVsbCBtZW1vcnkKbGF5b3V0IHNvIHRoYXQgd2Uga25vdyB3aGVyZSBtZW1vcnkg aXMgbG9jYXRlZCBpbiBvcmRlciB0byBjb3JlZHVtcAppdCBwcm9wZXJseS4KClNvLCB0aGlzIGlz IGEgZmxhdyB3aXRoIHRoaXMgYXBwcm9hY2gsIGFuZCB3aWxsIG5lZWQgdGhlIGNvbW1pdCB0byBi ZQpkcm9wcGVkIHlldCBhZ2FpbiAtIHRoaXMgcGF0Y2ggaXMgZnVuZGFtZW50YWxseSBpbmNvbXBh dGlibGUgd2l0aCB0aGUKd2F5IGtleGVjJ3MgY3Jhc2hkdW1wIHdvcmtzLgoKTG9va2luZyBiYWNr IGF0IHRoZSBoaXN0b3J5LCB3ZSd2ZSBiZWVuIHRyeWluZyB0aGlzIGFwcHJvYWNoIHNpbmNlCkZl YnJ1YXJ5IHdpdGggZm91ciBwYXRjaGVzIHN1Ym1pdHRlZCB0byB0aGUgcGF0Y2ggc3lzdGVtLCBh bmQgcHJvYmxlbXMKZXZlbnR1YWxseSBmb3VuZCB3aXRoIGVhY2ggb2YgdGhlbS4gIEkgdGhpbmsg dGhpcyBzaG93cyB0aGF0IHRoZSB3YXkKdGhlIGRlY29tcHJlc3NvciB3b3JrcyBvdXQgd2hlcmUg dG8gZGVjb21wcmVzcyB0aGUga2VybmVsIHRvIHRvZGF5IGlzCnJlbGllZCB1cG9uIGFsbCBvdmVy IHRoZSBwbGFjZSwgYW5kIGNoYW5naW5nIGl0IGlzIGFsd2F5cyBnb2luZyB0bwpjYXVzZSBwcm9i bGVtcy4gIFNvLCBJIGRvbid0IHRoaW5rIHdlIC9jYW4vIGNoYW5nZSBpdCB3aXRob3V0IGNhdXNp bmcKYSByZWdyZXNzaW9uIGZvciBzb21lb25lLgoKLS0gClJNSydzIFBhdGNoIHN5c3RlbTogaHR0 cHM6Ly93d3cuYXJtbGludXgub3JnLnVrL2RldmVsb3Blci9wYXRjaGVzLwpGVFRDIGJyb2FkYmFu ZCBmb3IgMC44bWlsZSBsaW5lIGluIHN1YnVyYmlhOiBzeW5jIGF0IDEwLjJNYnBzIGRvd24gNTg3 a2JwcyB1cAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZy YWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu dXgtYXJtLWtlcm5lbAo=