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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 69CB2C433EF for ; Thu, 9 Jun 2022 03:44:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232788AbiFIDo4 (ORCPT ); Wed, 8 Jun 2022 23:44:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33926 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231326AbiFIDoy (ORCPT ); Wed, 8 Jun 2022 23:44:54 -0400 Received: from mail.tkos.co.il (golan.tkos.co.il [84.110.109.230]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 418FE267170; Wed, 8 Jun 2022 20:44:53 -0700 (PDT) Received: from tarshish (unknown [10.0.8.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.tkos.co.il (Postfix) with ESMTPS id 5CCA8440852; Thu, 9 Jun 2022 06:44:37 +0300 (IDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tkos.co.il; s=default; t=1654746277; bh=EWe42ZBC6Hrzj+YG80I5ZMUF+bsbGfPPCSZmNiV399s=; h=References:From:To:Cc:Subject:Date:In-reply-to:From; b=nqu33TuHHoGsX6jGe+dYYWPOFVxxDiCsynNa657VbaIbZhQeHvUFvud2+YYg5WgaW 4Gw3VU8dJjxMcxN+Ki259adtdkm2rGEyHDpLvaRJ5dU+0QQSYwQlhiLQbgH1x6ni6a OIIiwJos2dnDyEn5TvkmQADLOBWYRV6nIMEv7/OUwEE9bRQT4mKVwQGfHiT52Xatsy U+bAMis8VP8w1dMzf+rzVHwt8fGRh4c6JcsJQA/6w1mXDXpuhqkTpV2gTzUMkCrJIV 3NbkRwkLSKT1Elgcxey49Wzn72MLUsCTeNrKZR8Jc2pcOi7ni9lVmL5iiSbgFHedLv X4ObjxfA3C60Q== References: <20220608230008.acp6lwu6xjin62ql@pali> User-agent: mu4e 1.6.10; emacs 27.1 From: Baruch Siach To: Pali =?utf-8?Q?Roh=C3=A1r?= Cc: Andy Gross , Bjorn Andersson , Selvam Sathappan Periakaruppan , Kathiravan T , Bjorn Helgaas , Rob Herring , Thierry Reding , Jonathan Hunter , Jingoo Han , Gustavo Pimentel , Robert Marko , Bryan O'Donoghue , linux-pci@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-tegra@vger.kernel.org, Stanimir Varbanov Subject: Re: [PATCH v6 2/3] PCI: qcom: Define slot capabilities using PCI_EXP_SLTCAP_* Date: Thu, 09 Jun 2022 06:27:34 +0300 In-reply-to: <20220608230008.acp6lwu6xjin62ql@pali> Message-ID: <87r13ymrf2.fsf@tarshish> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Hi Pali, On Thu, Jun 09 2022, Pali Roh=C3=A1r wrote: > On Monday 07 February 2022 16:51:25 Baruch Siach wrote: >> From: Baruch Siach >>=20 >> The PCIE_CAP_LINK1_VAL macro actually defines slot capabilities. Use >> PCI_EXP_SLTCAP_* macros to spell its value, and rename it to better >> describe its meaning. >>=20 >> Signed-off-by: Baruch Siach >> --- >> drivers/pci/controller/dwc/pcie-qcom.c | 15 +++++++++++++-- >> 1 file changed, 13 insertions(+), 2 deletions(-) >>=20 >> diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/contro= ller/dwc/pcie-qcom.c >> index c19cd506ed3f..01e58b057d2a 100644 >> --- a/drivers/pci/controller/dwc/pcie-qcom.c >> +++ b/drivers/pci/controller/dwc/pcie-qcom.c >> @@ -69,7 +69,18 @@ >> #define PCIE20_AXI_MSTR_RESP_COMP_CTRL1 0x81c >> #define CFG_BRIDGE_SB_INIT BIT(0) >>=20=20 >> -#define PCIE_CAP_LINK1_VAL 0x2FD7F >> +#define PCIE_CAP_SLOT_POWER_LIMIT_VAL 0x7D00 >> +#define PCIE_CAP_SLOT_POWER_LIMIT_SCALE 0x8000 > > Hello! > > Please do not use hardcoded values for slot power limit value and scale > numbers. There are macros PCI_EXP_SLTCAP_SPLV and PCI_EXP_SLTCAP_SPLS > for composing mask: > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/i= nclude/uapi/linux/pci_regs.h?h=3Dv5.19-rc1#n593 > Which could be used together with FIELD_PREP(). See e.g. aardvark commit: > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit= /?id=3D0d5b8c298545c827ca9f2461b2655277ce0aef79 Thanks for the tip. > And the important information: Slot power limit is board specific and > depends on how power supply and power regulators are designed. So slot > power limit **cannot** be hardcoded in driver. Instead this value should > be read from device tree file for the current board. > > There is a new kernel function of_pci_get_slot_power_limit() which reads > it and compose PCIe slot power limit value and scale numbers. See: > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/d= rivers/pci/of.c?h=3Dv5.19-rc1#n631 The 'slot-power-limit-milliwatt' property appears to be undocumented as of v5.19-rc1. This patch should make no functional change. I guess we should keep the default hard-coded driver value for compatibility with existing DTs with no 'slot-power-limit-milliwatt'. Thanks, baruch >> +#define PCIE_CAP_SLOT_VAL (PCI_EXP_SLTCAP_ABP | \ >> + PCI_EXP_SLTCAP_PCP | \ >> + PCI_EXP_SLTCAP_MRLSP | \ >> + PCI_EXP_SLTCAP_AIP | \ >> + PCI_EXP_SLTCAP_PIP | \ >> + PCI_EXP_SLTCAP_HPS | \ >> + PCI_EXP_SLTCAP_HPC | \ >> + PCI_EXP_SLTCAP_EIP | \ >> + PCIE_CAP_SLOT_POWER_LIMIT_VAL | \ >> + PCIE_CAP_SLOT_POWER_LIMIT_SCALE) >>=20=20 >> #define PCIE20_PARF_Q2A_FLUSH 0x1AC >>=20=20 >> @@ -1111,7 +1122,7 @@ static int qcom_pcie_init_2_3_3(struct qcom_pcie *= pcie) >>=20=20 >> writel(PCI_COMMAND_MASTER, pci->dbi_base + PCI_COMMAND); >> writel(DBI_RO_WR_EN, pci->dbi_base + PCIE20_MISC_CONTROL_1_REG); >> - writel(PCIE_CAP_LINK1_VAL, pci->dbi_base + offset + PCI_EXP_SLTCAP); >> + writel(PCIE_CAP_SLOT_VAL, pci->dbi_base + offset + PCI_EXP_SLTCAP); >>=20=20 >> val =3D readl(pci->dbi_base + offset + PCI_EXP_LNKCAP); >> val &=3D ~PCI_EXP_LNKCAP_ASPMS; >> --=20 >> 2.34.1 >>=20 --=20 ~. .~ Tk Open Systems =3D}------------------------------------------------ooO--U--Ooo------------= {=3D - baruch@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il - 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 2A2B2C43334 for ; Thu, 9 Jun 2022 03:46:14 +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:MIME-Version:Message-ID:In-reply-to: Date:Subject:Cc:To:From:References:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=lqD/JX99h3aFQLg3U5zVYpCMucBenk8JeO4+0ONNIiY=; b=HnejoQCe12lzdP CX6qheKv4UkTyjwdsLiPkH79r4UcptgSrQuPGku/ZSZI2swV0haRnDvxacmOoWATADKY1XvXQVyQB qlIPqNlvwcoc/tr5qyjdI9krBZT5+cVTEpEcOHI/9p2FhJwAQtwwcxLk0sLZHeT1NGK2GISu9ulSw 7OUQn1AyfeZBT4g4rdYRBNiBotrfjbZC6pkER7CdpHGtW0XlGDBUSm3dNwGkNUA2ahztdbIfDYI1O EIj4hlfxT/kKNZhzunjB/vCGclPLdHdk+9ymA9GJ75xRBwVtOzfum7sGEgSYcl5Dgfq6bYjrAcIv4 ZAMK+NlUiuPN0EfUVDZQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nz96U-00Fwc0-3L; Thu, 09 Jun 2022 03:45:02 +0000 Received: from wiki.tkos.co.il ([84.110.109.230] helo=mail.tkos.co.il) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nz96Q-00FwaQ-IC for linux-arm-kernel@lists.infradead.org; Thu, 09 Jun 2022 03:45:00 +0000 Received: from tarshish (unknown [10.0.8.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.tkos.co.il (Postfix) with ESMTPS id 5CCA8440852; Thu, 9 Jun 2022 06:44:37 +0300 (IDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tkos.co.il; s=default; t=1654746277; bh=EWe42ZBC6Hrzj+YG80I5ZMUF+bsbGfPPCSZmNiV399s=; h=References:From:To:Cc:Subject:Date:In-reply-to:From; b=nqu33TuHHoGsX6jGe+dYYWPOFVxxDiCsynNa657VbaIbZhQeHvUFvud2+YYg5WgaW 4Gw3VU8dJjxMcxN+Ki259adtdkm2rGEyHDpLvaRJ5dU+0QQSYwQlhiLQbgH1x6ni6a OIIiwJos2dnDyEn5TvkmQADLOBWYRV6nIMEv7/OUwEE9bRQT4mKVwQGfHiT52Xatsy U+bAMis8VP8w1dMzf+rzVHwt8fGRh4c6JcsJQA/6w1mXDXpuhqkTpV2gTzUMkCrJIV 3NbkRwkLSKT1Elgcxey49Wzn72MLUsCTeNrKZR8Jc2pcOi7ni9lVmL5iiSbgFHedLv X4ObjxfA3C60Q== References: <20220608230008.acp6lwu6xjin62ql@pali> User-agent: mu4e 1.6.10; emacs 27.1 From: Baruch Siach To: Pali =?utf-8?Q?Roh=C3=A1r?= Cc: Andy Gross , Bjorn Andersson , Selvam Sathappan Periakaruppan , Kathiravan T , Bjorn Helgaas , Rob Herring , Thierry Reding , Jonathan Hunter , Jingoo Han , Gustavo Pimentel , Robert Marko , Bryan O'Donoghue , linux-pci@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-tegra@vger.kernel.org, Stanimir Varbanov Subject: Re: [PATCH v6 2/3] PCI: qcom: Define slot capabilities using PCI_EXP_SLTCAP_* Date: Thu, 09 Jun 2022 06:27:34 +0300 In-reply-to: <20220608230008.acp6lwu6xjin62ql@pali> Message-ID: <87r13ymrf2.fsf@tarshish> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220608_204459_054020_692C6CFE X-CRM114-Status: GOOD ( 20.78 ) 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 SGkgUGFsaSwKCk9uIFRodSwgSnVuIDA5IDIwMjIsIFBhbGkgUm9ow6FyIHdyb3RlOgo+IE9uIE1v bmRheSAwNyBGZWJydWFyeSAyMDIyIDE2OjUxOjI1IEJhcnVjaCBTaWFjaCB3cm90ZToKPj4gRnJv bTogQmFydWNoIFNpYWNoIDxiYXJ1Y2guc2lhY2hAc2lrbHUuY29tPgo+PiAKPj4gVGhlIFBDSUVf Q0FQX0xJTksxX1ZBTCBtYWNybyBhY3R1YWxseSBkZWZpbmVzIHNsb3QgY2FwYWJpbGl0aWVzLiBV c2UKPj4gUENJX0VYUF9TTFRDQVBfKiBtYWNyb3MgdG8gc3BlbGwgaXRzIHZhbHVlLCBhbmQgcmVu YW1lIGl0IHRvIGJldHRlcgo+PiBkZXNjcmliZSBpdHMgbWVhbmluZy4KPj4gCj4+IFNpZ25lZC1v ZmYtYnk6IEJhcnVjaCBTaWFjaCA8YmFydWNoLnNpYWNoQHNpa2x1LmNvbT4KPj4gLS0tCj4+ICBk cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXFjb20uYyB8IDE1ICsrKysrKysrKysrKyst LQo+PiAgMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4+ IAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1xY29tLmMg Yi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXFjb20uYwo+PiBpbmRleCBjMTljZDUw NmVkM2YuLjAxZTU4YjA1N2QyYSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxl ci9kd2MvcGNpZS1xY29tLmMKPj4gKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp ZS1xY29tLmMKPj4gQEAgLTY5LDcgKzY5LDE4IEBACj4+ICAjZGVmaW5lIFBDSUUyMF9BWElfTVNU Ul9SRVNQX0NPTVBfQ1RSTDEJCTB4ODFjCj4+ICAjZGVmaW5lIENGR19CUklER0VfU0JfSU5JVAkJ CUJJVCgwKQo+PiAgCj4+IC0jZGVmaW5lIFBDSUVfQ0FQX0xJTksxX1ZBTAkJCTB4MkZEN0YKPj4g KyNkZWZpbmUgUENJRV9DQVBfU0xPVF9QT1dFUl9MSU1JVF9WQUwJCTB4N0QwMAo+PiArI2RlZmlu ZSBQQ0lFX0NBUF9TTE9UX1BPV0VSX0xJTUlUX1NDQUxFCQkweDgwMDAKPgo+IEhlbGxvIQo+Cj4g UGxlYXNlIGRvIG5vdCB1c2UgaGFyZGNvZGVkIHZhbHVlcyBmb3Igc2xvdCBwb3dlciBsaW1pdCB2 YWx1ZSBhbmQgc2NhbGUKPiBudW1iZXJzLiBUaGVyZSBhcmUgbWFjcm9zIFBDSV9FWFBfU0xUQ0FQ X1NQTFYgYW5kIFBDSV9FWFBfU0xUQ0FQX1NQTFMKPiBmb3IgY29tcG9zaW5nIG1hc2s6Cj4gaHR0 cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGlu dXguZ2l0L3RyZWUvaW5jbHVkZS91YXBpL2xpbnV4L3BjaV9yZWdzLmg/aD12NS4xOS1yYzEjbjU5 Mwo+IFdoaWNoIGNvdWxkIGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBGSUVMRF9QUkVQKCkuIFNlZSBl LmcuIGFhcmR2YXJrIGNvbW1pdDoKPiBodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGlu dXgva2VybmVsL2dpdC90b3J2YWxkcy9saW51eC5naXQvY29tbWl0Lz9pZD0wZDViOGMyOTg1NDVj ODI3Y2E5ZjI0NjFiMjY1NTI3N2NlMGFlZjc5CgpUaGFua3MgZm9yIHRoZSB0aXAuCgo+IEFuZCB0 aGUgaW1wb3J0YW50IGluZm9ybWF0aW9uOiBTbG90IHBvd2VyIGxpbWl0IGlzIGJvYXJkIHNwZWNp ZmljIGFuZAo+IGRlcGVuZHMgb24gaG93IHBvd2VyIHN1cHBseSBhbmQgcG93ZXIgcmVndWxhdG9y cyBhcmUgZGVzaWduZWQuIFNvIHNsb3QKPiBwb3dlciBsaW1pdCAqKmNhbm5vdCoqIGJlIGhhcmRj b2RlZCBpbiBkcml2ZXIuIEluc3RlYWQgdGhpcyB2YWx1ZSBzaG91bGQKPiBiZSByZWFkIGZyb20g ZGV2aWNlIHRyZWUgZmlsZSBmb3IgdGhlIGN1cnJlbnQgYm9hcmQuCj4KPiBUaGVyZSBpcyBhIG5l dyBrZXJuZWwgZnVuY3Rpb24gb2ZfcGNpX2dldF9zbG90X3Bvd2VyX2xpbWl0KCkgd2hpY2ggcmVh ZHMKPiBpdCBhbmQgY29tcG9zZSBQQ0llIHNsb3QgcG93ZXIgbGltaXQgdmFsdWUgYW5kIHNjYWxl IG51bWJlcnMuIFNlZToKPiBodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2Vy bmVsL2dpdC90b3J2YWxkcy9saW51eC5naXQvdHJlZS9kcml2ZXJzL3BjaS9vZi5jP2g9djUuMTkt cmMxI242MzEKClRoZSAnc2xvdC1wb3dlci1saW1pdC1taWxsaXdhdHQnIHByb3BlcnR5IGFwcGVh cnMgdG8gYmUgdW5kb2N1bWVudGVkIGFzCm9mIHY1LjE5LXJjMS4KClRoaXMgcGF0Y2ggc2hvdWxk IG1ha2Ugbm8gZnVuY3Rpb25hbCBjaGFuZ2UuIEkgZ3Vlc3Mgd2Ugc2hvdWxkIGtlZXAgdGhlCmRl ZmF1bHQgaGFyZC1jb2RlZCBkcml2ZXIgdmFsdWUgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBleGlz dGluZyBEVHMgd2l0aApubyAnc2xvdC1wb3dlci1saW1pdC1taWxsaXdhdHQnLgoKVGhhbmtzLApi YXJ1Y2gKCj4+ICsjZGVmaW5lIFBDSUVfQ0FQX1NMT1RfVkFMCQkJKFBDSV9FWFBfU0xUQ0FQX0FC UCB8IFwKPj4gKwkJCQkJCVBDSV9FWFBfU0xUQ0FQX1BDUCB8IFwKPj4gKwkJCQkJCVBDSV9FWFBf U0xUQ0FQX01STFNQIHwgXAo+PiArCQkJCQkJUENJX0VYUF9TTFRDQVBfQUlQIHwgXAo+PiArCQkJ CQkJUENJX0VYUF9TTFRDQVBfUElQIHwgXAo+PiArCQkJCQkJUENJX0VYUF9TTFRDQVBfSFBTIHwg XAo+PiArCQkJCQkJUENJX0VYUF9TTFRDQVBfSFBDIHwgXAo+PiArCQkJCQkJUENJX0VYUF9TTFRD QVBfRUlQIHwgXAo+PiArCQkJCQkJUENJRV9DQVBfU0xPVF9QT1dFUl9MSU1JVF9WQUwgfCBcCj4+ ICsJCQkJCQlQQ0lFX0NBUF9TTE9UX1BPV0VSX0xJTUlUX1NDQUxFKQo+PiAgCj4+ICAjZGVmaW5l IFBDSUUyMF9QQVJGX1EyQV9GTFVTSAkJCTB4MUFDCj4+ICAKPj4gQEAgLTExMTEsNyArMTEyMiw3 IEBAIHN0YXRpYyBpbnQgcWNvbV9wY2llX2luaXRfMl8zXzMoc3RydWN0IHFjb21fcGNpZSAqcGNp ZSkKPj4gIAo+PiAgCXdyaXRlbChQQ0lfQ09NTUFORF9NQVNURVIsIHBjaS0+ZGJpX2Jhc2UgKyBQ Q0lfQ09NTUFORCk7Cj4+ICAJd3JpdGVsKERCSV9ST19XUl9FTiwgcGNpLT5kYmlfYmFzZSArIFBD SUUyMF9NSVNDX0NPTlRST0xfMV9SRUcpOwo+PiAtCXdyaXRlbChQQ0lFX0NBUF9MSU5LMV9WQUws IHBjaS0+ZGJpX2Jhc2UgKyBvZmZzZXQgKyBQQ0lfRVhQX1NMVENBUCk7Cj4+ICsJd3JpdGVsKFBD SUVfQ0FQX1NMT1RfVkFMLCBwY2ktPmRiaV9iYXNlICsgb2Zmc2V0ICsgUENJX0VYUF9TTFRDQVAp Owo+PiAgCj4+ICAJdmFsID0gcmVhZGwocGNpLT5kYmlfYmFzZSArIG9mZnNldCArIFBDSV9FWFBf TE5LQ0FQKTsKPj4gIAl2YWwgJj0gflBDSV9FWFBfTE5LQ0FQX0FTUE1TOwo+PiAtLSAKPj4gMi4z NC4xCj4+IAoKCi0tIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH4uIC5+ICAgVGsgT3BlbiBTeXN0ZW1zCj19LS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tb29PLS1VLS1Pb28tLS0tLS0tLS0tLS17PQogICAt IGJhcnVjaEB0a29zLmNvLmlsIC0gdGVsOiArOTcyLjUyLjM2OC40NjU2LCBodHRwOi8vd3d3LnRr b3MuY28uaWwgLQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtYXJtLWtlcm5lbAo=