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=-17.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 3B38EC43461 for ; Thu, 6 May 2021 16:03:48 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 ADDCB61073 for ; Thu, 6 May 2021 16:03:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ADDCB61073 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+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=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:Cc:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=zJ4Qt/zwFXDPeo3ymsvfNExNj42XxXauWk2txAnbb5s=; b=OeJWSFhgYnZtBLx3Bh5w61tez FZlzRw5eGrC1IhYpMGk2vwMU7fEldQ+UQUi8Hean8hkmVrZdHz7Cg0A2rf7+wiiukzrAwDTKNahB8 CfOjUHq96hF2Dqwc8axpvQbKzE1aeKyF29QxsyqYMUzBVhK+ui0Drhb/1NWO66ZvMbYSKrf7bP4RU G0iQYWfSARpAvhvePuiDmqzLI8yIdRhc2cJN6tyZFPx6lPfNaR4sxAp25Ggj3jFFD6qgs8Yvs14vb w3qXOlJrj6wiWTHMqm2Y/Qi/lS7h6ia/CqSR0Ym50kPMD2sM2QTpk7B16/L7kQhzHJkQ0vOTAtRIt 7HlG0rstg==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1legEp-004fES-Gd; Thu, 06 May 2021 15:48:32 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lefzq-004a7t-TP for linux-arm-kernel@desiato.infradead.org; Thu, 06 May 2021 15:33:04 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc: To:From:Sender:Reply-To:Content-ID:Content-Description; bh=eOfjyVnowt166Ky7AsOxTOxN3CESr/UCj+2gvgaZq7A=; b=jjRrA9Yji827K+8ntg/sh7iI2i xjsq1QIq/bYRSDtqO8tvLMSo+b/IluIS2uPsx19pGphEuEiyTX5oMnxpdceLg96wda7Idf4bTakJk AAtPxTnQyo4JruWJgTgodvpavmd298b7oZuF0yG5wQpG3bh0wzw5EDNVTHdQI+CCoNXUMV8lIWFYx G7UouE1PIvn/a929Udzi6QepPp/WFL6BRej47jAEQAO/opbTBmEJ04pAS5okOg8t7Yu3x6GXsV1WD d33arsA3nrRUmjnfTcCMj87z8/a7Zz8Dv866dtrXmkehZULf7xnB2izbrezNmkrJUon0Z0VDeXpYG FpVxVFeQ==; Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lefzl-0069ga-7N for linux-arm-kernel@lists.infradead.org; Thu, 06 May 2021 15:33:01 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id B6214613B5; Thu, 6 May 2021 15:32:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620315174; bh=JtpzxROGnZVDcJeZYzWfrsnJEYa+UhigCuLwKzPz8pI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=q7xwc5ANNXpJa4sYpgJ9cScgGOgl2KJRynZD6qVxsvTciEAhMSEZY9Rw/gOM1dJKR YRhUlLxjn6KcSeiB6BFwCKxYxrndvvlneMqpRA/sDRPcWTX+Gy+cex9e+jaPjApjID 8M4Ep7ErS7+tGRKkm+MC9lhABLkBxjnM28NJCrR1vPOlIavw8lZdlwTRFt1RDXC2IT FKLA0eSQkU6/MT+bkR4XTE8Rfmh8bPU/9nwWKsvQjQpJkuZDnwh2J/X+lRWhzOIPVj YBhFanaOYqNc9ouWufijbUX/F22Qx27TkFLV6yxfNek2rwcHUO7upf1nVS1J12uBE1 BD5jRGzIsD4KA== Received: by pali.im (Postfix) id 6A75189A; Thu, 6 May 2021 17:32:53 +0200 (CEST) From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: Lorenzo Pieralisi , Thomas Petazzoni , Rob Herring , Bjorn Helgaas Cc: Russell King , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Remi Pommarel , Xogium , Tomasz Maciej Nowak , Marc Zyngier , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 31/42] PCI: aardvark: Use separate INTA interrupt for emulated root bridge Date: Thu, 6 May 2021 17:31:42 +0200 Message-Id: <20210506153153.30454-32-pali@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210506153153.30454-1-pali@kernel.org> References: <20210506153153.30454-1-pali@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210506_083257_370241_E3D742D6 X-CRM114-Status: GOOD ( 19.33 ) 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 RW11bGF0ZWQgcm9vdCBicmlkZ2UgY3VycmVudGx5IHByb3ZpZGVzIG9ubHkgb25lIExlZ2FjeSBJ TlRBIGludGVycnVwdAp3aGljaCBpcyB1c2VkIGZvciByZXBvcnRpbmcgUENJZSBQTUUgYW5kIEVS UiBldmVudHMgYW5kIGhhbmRsZWQgYnkga2VybmVsClBDSWUgUE1FIGFuZCBBRVIgZHJpdmVycy4K CkFhcmR2YXJrIEhXIHJlcG9ydHMgdGhlc2UgUE1FIGFuZCBFUlIgZXZlbnRzIHNlcGFyYXRlbHks IHNvIHRoZXJlIGlzIG5vCm5lZWQgdG8gbWl4IHJlYWwgSU5UQSBpbnRlcnJ1cHQgYW5kIGVtdWxh dGVkIElOVEEgaW50ZXJydXB0IGZvciBQQ0llIFBNRQphbmQgQUVSIGRyaXZlcnMuCgpSZWdpc3Rl ciBhIG5ldyBhZHZrLUVNVSBpcnEgY2hpcCBhbmQgYSBuZXcgaXJxIGRvbWFpbiBmb3IgZW11bGF0 ZWQgcm9vdApicmlkZ2UgYW5kIHVzZSB0aGlzIG5ldyBzZXBhcmF0ZSBpcnEgZG9tYWluIGZvciBw cm92aWRpbmcgSU5UQSBpbnRlcnJ1cHQKZnJvbSBlbXVsYXRlZCByb290IGJyaWRnZSBmb3IgUE1F IGFuZCBFUlIgZXZlbnRzLgoKVGhlIHJlYWwgSU5UQSBpbnRlcnJ1cHQgZnJvbSByZWFsIGRldmlj ZXMgaXMgbm93IHNlcGFyYXRlLgoKQSBjdXN0b20gbWFwX2lycSBjYWxsYmFjayBmdW5jdGlvbiBv biBQQ0kgaG9zdCBicmlkZ2Ugc3RydWN0dXJlIGlzIHVzZWQgdG8KYWxsb2NhdGUgSVJRIG1hcHBp bmcgZm9yIGVtdWxhdGVkIHJvb3QgYnJpZGdlIGZyb20gbmV3IGlycSBkb21haW4uIE9yaWdpbmFs CmNhbGxiYWNrIG9mX2lycV9wYXJzZV9hbmRfbWFwX3BjaSgpIGlzIHVzZWQgZm9yIGFsbCBvdGhl ciBkZXZpY2VzIGFzIGJlZm9yZS4KClNpZ25lZC1vZmYtYnk6IFBhbGkgUm9ow6FyIDxwYWxpQGtl cm5lbC5vcmc+ClJldmlld2VkLWJ5OiBNYXJlayBCZWjDum4gPGthYmVsQGtlcm5lbC5vcmc+Ci0t LQogZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktYWFyZHZhcmsuYyB8IDY2ICsrKysrKysrKysr KysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktYWFyZHZh cmsuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWFhcmR2YXJrLmMKaW5kZXggZjJlZDI3 NmI3ZTE4Li5lNzI0ZDA1YTYxYTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIv cGNpLWFhcmR2YXJrLmMKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktYWFyZHZhcmsu YwpAQCAtMTk0LDYgKzE5NCw4IEBAIHN0cnVjdCBhZHZrX3BjaWUgewogCXN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXY7CiAJdm9pZCBfX2lvbWVtICpiYXNlOwogCWludCBpcnE7CisJc3RydWN0 IGlycV9kb21haW4gKmVtdWxfaXJxX2RvbWFpbjsKKwlzdHJ1Y3QgaXJxX2NoaXAgZW11bF9pcnFf Y2hpcDsKIAlzdHJ1Y3QgaXJxX2RvbWFpbiAqaXJxX2RvbWFpbjsKIAlzdHJ1Y3QgaXJxX2NoaXAg aXJxX2NoaXA7CiAJc3RydWN0IGlycV9kb21haW4gKm1zaV9kb21haW47CkBAIC0xMDc0LDYgKzEw NzYsMjIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfZG9tYWluX29wcyBhZHZrX3BjaWVfaXJx X2RvbWFpbl9vcHMgPSB7CiAJLnhsYXRlID0gaXJxX2RvbWFpbl94bGF0ZV9vbmVjZWxsLAogfTsK IAorc3RhdGljIGludCBhZHZrX3BjaWVfZW11bF9pcnFfbWFwKHN0cnVjdCBpcnFfZG9tYWluICpo LAorCQkJCSAgdW5zaWduZWQgaW50IHZpcnEsIGlycV9od19udW1iZXJfdCBod2lycSkKK3sKKwlz dHJ1Y3QgYWR2a19wY2llICpwY2llID0gaC0+aG9zdF9kYXRhOworCisJaXJxX3NldF9jaGlwX2Fu ZF9oYW5kbGVyKHZpcnEsICZwY2llLT5lbXVsX2lycV9jaGlwLCBoYW5kbGVfc2ltcGxlX2lycSk7 CisJaXJxX3NldF9jaGlwX2RhdGEodmlycSwgcGNpZSk7CisKKwlyZXR1cm4gMDsKK30KKworc3Rh dGljIGNvbnN0IHN0cnVjdCBpcnFfZG9tYWluX29wcyBhZHZrX3BjaWVfZW11bF9pcnFfZG9tYWlu X29wcyA9IHsKKwkubWFwID0gYWR2a19wY2llX2VtdWxfaXJxX21hcCwKKwkueGxhdGUgPSBpcnFf ZG9tYWluX3hsYXRlX29uZWNlbGwsCit9OworCiBzdGF0aWMgaW50IGFkdmtfcGNpZV9pbml0X21z aV9pcnFfZG9tYWluKHN0cnVjdCBhZHZrX3BjaWUgKnBjaWUpCiB7CiAJc3RydWN0IGRldmljZSAq ZGV2ID0gJnBjaWUtPnBkZXYtPmRldjsKQEAgLTExNjcsNiArMTE4NSwyNCBAQCBzdGF0aWMgdm9p ZCBhZHZrX3BjaWVfcmVtb3ZlX2lycV9kb21haW4oc3RydWN0IGFkdmtfcGNpZSAqcGNpZSkKIAlp cnFfZG9tYWluX3JlbW92ZShwY2llLT5pcnFfZG9tYWluKTsKIH0KIAorc3RhdGljIGludCBhZHZr X3BjaWVfaW5pdF9lbXVsX2lycV9kb21haW4oc3RydWN0IGFkdmtfcGNpZSAqcGNpZSkKK3sKKwlw Y2llLT5lbXVsX2lycV9jaGlwLm5hbWUgPSAiYWR2ay1FTVUiOworCXBjaWUtPmVtdWxfaXJxX2Rv bWFpbiA9IGlycV9kb21haW5fYWRkX2xpbmVhcihOVUxMLCAxLAorCQkJCSZhZHZrX3BjaWVfZW11 bF9pcnFfZG9tYWluX29wcywgcGNpZSk7CisJaWYgKCFwY2llLT5lbXVsX2lycV9kb21haW4pIHsK KwkJZGV2X2VycigmcGNpZS0+cGRldi0+ZGV2LCAiRmFpbGVkIHRvIGFkZCBlbXVsIElSUSBkb21h aW5cbiIpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGlj IHZvaWQgYWR2a19wY2llX3JlbW92ZV9lbXVsX2lycV9kb21haW4oc3RydWN0IGFkdmtfcGNpZSAq cGNpZSkKK3sKKwlpcnFfZG9tYWluX3JlbW92ZShwY2llLT5lbXVsX2lycV9kb21haW4pOworfQor CiBzdGF0aWMgdm9pZCBhZHZrX3BjaWVfaGFuZGxlX21zaShzdHJ1Y3QgYWR2a19wY2llICpwY2ll KQogewogCXN0cnVjdCBpcnFfZGF0YSAqaXJxX2RhdGE7CkBAIC0xMjQ0LDcgKzEyODAsNyBAQCBz dGF0aWMgdm9pZCBhZHZrX3BjaWVfaGFuZGxlX2ludChzdHJ1Y3QgYWR2a19wY2llICpwY2llKQog CQkJICogQWFyZHZhcmsgSFcgcmV0dXJucyB6ZXJvIGZvciBQQ0lfRVhQX0ZMQUdTX0lSUSwgc28g dXNlIFBDSWUgaW50ZXJydXB0IDAuCiAJCQkgKi8KIAkJCWlmIChsZTE2X3RvX2NwdShwY2llLT5i cmlkZ2UucGNpZV9jb25mLnJvb3RjdGwpICYgUENJX0VYUF9SVENUTF9QTUVJRSkgewotCQkJCXZp cnEgPSBpcnFfZmluZF9tYXBwaW5nKHBjaWUtPmlycV9kb21haW4sIDApOworCQkJCXZpcnEgPSBp cnFfZmluZF9tYXBwaW5nKHBjaWUtPmVtdWxfaXJxX2RvbWFpbiwgMCk7CiAJCQkJaWYgKHZpcnEp CiAJCQkJCWdlbmVyaWNfaGFuZGxlX2lycSh2aXJxKTsKIAkJCQllbHNlCkBAIC0xMjU3LDcgKzEy OTMsNyBAQCBzdGF0aWMgdm9pZCBhZHZrX3BjaWVfaGFuZGxlX2ludChzdHJ1Y3QgYWR2a19wY2ll ICpwY2llKQogCWlmIChlcnJfYml0cykgewogCQlhZHZrX3dyaXRlbChwY2llLCBlcnJfYml0cywg UENJRV9JU1IwX1JFRyk7CiAJCS8qIEFhcmR2YXJrIEhXIHJldHVybnMgemVybyBmb3IgUENJX0VS Ul9ST09UX0FFUl9JUlEsIHNvIHVzZSBQQ0llIGludGVycnVwdCAwICovCi0JCXZpcnEgPSBpcnFf ZmluZF9tYXBwaW5nKHBjaWUtPmlycV9kb21haW4sIDApOworCQl2aXJxID0gaXJxX2ZpbmRfbWFw cGluZyhwY2llLT5lbXVsX2lycV9kb21haW4sIDApOwogCQlpZiAodmlycSkKIAkJCWdlbmVyaWNf aGFuZGxlX2lycSh2aXJxKTsKIAkJZWxzZQpAQCAtMTMwNCw2ICsxMzQwLDIxIEBAIHN0YXRpYyB2 b2lkIGFkdmtfcGNpZV9pcnFfaGFuZGxlcihzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MpCiAJY2hhaW5l ZF9pcnFfZXhpdChjaGlwLCBkZXNjKTsKIH0KIAorc3RhdGljIGludCBhZHZrX3BjaWVfbWFwX2ly cShjb25zdCBzdHJ1Y3QgcGNpX2RldiAqZGV2LCB1OCBzbG90LCB1OCBwaW4pCit7CisJc3RydWN0 IGFkdmtfcGNpZSAqcGNpZSA9IGRldi0+YnVzLT5zeXNkYXRhOworCisJLyoKKwkgKiBFbXVsYXRl ZCByb290IGJyaWRnZSBoYXMgaXR3IG93biBlbXVsYXRlZCBpcnEgY2hpcCBhbmQgaXJxIGRvbWFp bi4KKwkgKiBWYXJpYWJsZSBwaW4gaXMgdGhlIElOVHggcGluICgxPUlOVEEsIDI9SU5UQiwgMz1J TlRDLCA0PUlOVEQpIGFuZAorCSAqIGh3aXJxIGZvciBpcnFfY3JlYXRlX21hcHBpbmcoKSBpcyBp bmRleGVkIGZyb20gemVyby4KKwkgKi8KKwlpZiAocGNpX2lzX3Jvb3RfYnVzKGRldi0+YnVzKSkK KwkJcmV0dXJuIGlycV9jcmVhdGVfbWFwcGluZyhwY2llLT5lbXVsX2lycV9kb21haW4sIHBpbi0x KTsKKwllbHNlCisJCXJldHVybiBvZl9pcnFfcGFyc2VfYW5kX21hcF9wY2koZGV2LCBzbG90LCBw aW4pOworfQorCiBzdGF0aWMgdm9pZCBfX21heWJlX3VudXNlZCBhZHZrX3BjaWVfZGlzYWJsZV9w aHkoc3RydWN0IGFkdmtfcGNpZSAqcGNpZSkKIHsKIAlwaHlfcG93ZXJfb2ZmKHBjaWUtPnBoeSk7 CkBAIC0xNDMyLDEzICsxNDgzLDIzIEBAIHN0YXRpYyBpbnQgYWR2a19wY2llX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXJldHVybiByZXQ7CiAJfQogCisJcmV0ID0gYWR2 a19wY2llX2luaXRfZW11bF9pcnFfZG9tYWluKHBjaWUpOworCWlmIChyZXQpIHsKKwkJZGV2X2Vy cihkZXYsICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBpcnFcbiIpOworCQlhZHZrX3BjaWVfcmVtb3Zl X2lycV9kb21haW4ocGNpZSk7CisJCWFkdmtfcGNpZV9yZW1vdmVfbXNpX2lycV9kb21haW4ocGNp ZSk7CisJCXJldHVybiByZXQ7CisJfQorCiAJaXJxX3NldF9jaGFpbmVkX2hhbmRsZXJfYW5kX2Rh dGEocGNpZS0+aXJxLCBhZHZrX3BjaWVfaXJxX2hhbmRsZXIsIHBjaWUpOwogCiAJYnJpZGdlLT5z eXNkYXRhID0gcGNpZTsKIAlicmlkZ2UtPm9wcyA9ICZhZHZrX3BjaWVfb3BzOworCWJyaWRnZS0+ bWFwX2lycSA9IGFkdmtfcGNpZV9tYXBfaXJxOwogCiAJcmV0ID0gcGNpX2hvc3RfcHJvYmUoYnJp ZGdlKTsKIAlpZiAocmV0IDwgMCkgeworCQlhZHZrX3BjaWVfcmVtb3ZlX2VtdWxfaXJxX2RvbWFp bihwY2llKTsKIAkJYWR2a19wY2llX3JlbW92ZV9tc2lfaXJxX2RvbWFpbihwY2llKTsKIAkJYWR2 a19wY2llX3JlbW92ZV9pcnFfZG9tYWluKHBjaWUpOwogCQlpcnFfc2V0X2NoYWluZWRfaGFuZGxl cl9hbmRfZGF0YShwY2llLT5pcnEsIE5VTEwsIE5VTEwpOwpAQCAtMTQ4Nyw2ICsxNTQ4LDcgQEAg c3RhdGljIGludCBhZHZrX3BjaWVfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp CiAJYWR2a193cml0ZWwocGNpZSwgUENJRV9JUlFfQUxMX01BU0ssIEhPU1RfQ1RSTF9JTlRfU1RB VFVTX1JFRyk7CiAKIAkvKiBSZW1vdmUgSVJRIGRvbWFpbnMgKi8KKwlhZHZrX3BjaWVfcmVtb3Zl X2VtdWxfaXJxX2RvbWFpbihwY2llKTsKIAlhZHZrX3BjaWVfcmVtb3ZlX21zaV9pcnFfZG9tYWlu KHBjaWUpOwogCWFkdmtfcGNpZV9yZW1vdmVfaXJxX2RvbWFpbihwY2llKTsKIAotLSAKMi4yMC4x CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgt YXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQu b3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJt LWtlcm5lbAo=