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 42C1CC41535 for ; Tue, 19 Dec 2023 07:45:25 +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: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=Pm4PSs0LcjFHB4LwjqhdOtY+fOYMugWI/kiZhPCQszk=; b=HS8J/xjqQQQg7o W9V/5+gvx/Zol/WMWhfDiw3f+AdH7dX02DP5XY5Vh3S1myp9uYP2hZnH9CRixxDHTV7MHckXYWDIW uZa6tDM2FlZdnefJA2GXy98GRL3qolmpSagEbbw8MLHuX1NjPVfDe/xRSUs1qZEOLEq9tvwftXSWZ Bkj+NL0WYEWjjAaTHVgsP6zQHYUpjANRNxIGT5CmDdpZXYRO9o281O8NwUbLVFv0y+URIcwHsWikV u7Ye+fsWZzumRVbLZPqDOwb/2zwKdC3AqtYb0PZIHocIfuuZwAMsobGv9ywwxopKndyutytW3AhVe vImF+jw0AYN/SzZFZ50A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rFUmz-00D8qT-2C; Tue, 19 Dec 2023 07:45:17 +0000 Received: from 60-248-80-70.hinet-ip.hinet.net ([60.248.80.70] helo=Atcsqr.andestech.com) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rFUmu-00D8nw-1Y; Tue, 19 Dec 2023 07:45:14 +0000 Received: from mail.andestech.com (ATCPCS16.andestech.com [10.0.1.222]) by Atcsqr.andestech.com with ESMTP id 3BJ7hYaZ012432; Tue, 19 Dec 2023 15:43:34 +0800 (+08) (envelope-from peterlin@andestech.com) Received: from APC323 (10.0.12.98) by ATCPCS16.andestech.com (10.0.1.222) with Microsoft SMTP Server id 14.3.498.0; Tue, 19 Dec 2023 15:43:32 +0800 Date: Tue, 19 Dec 2023 15:43:29 +0800 From: Yu-Chien Peter Lin To: Anup Patel Subject: Re: [PATCH v5 02/16] irqchip/riscv-intc: Allow large non-standard interrupt number Message-ID: References: <20231213070301.1684751-1-peterlin@andestech.com> <20231213070301.1684751-3-peterlin@andestech.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/2.2.12 (2023-09-09) X-Originating-IP: [10.0.12.98] X-DNSRBL: X-MAIL: Atcsqr.andestech.com 3BJ7hYaZ012432 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231218_234512_975986_78616EC4 X-CRM114-Status: GOOD ( 42.98 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mark.rutland@arm.com, irogers@google.com, heiko@sntech.de, geert+renesas@glider.be, alexander.shishkin@linux.intel.com, paul.walmsley@sifive.com, linux-kernel@vger.kernel.org, conor.dooley@microchip.com, guoren@kernel.org, krzysztof.kozlowski+dt@linaro.org, linux-riscv@lists.infradead.org, will@kernel.org, linux-renesas-soc@vger.kernel.org, tim609@andestech.com, samuel@sholland.org, anup@brainfault.org, dminus@andestech.com, magnus.damm@gmail.com, jernej.skrabec@gmail.com, peterz@infradead.org, wens@csie.org, mingo@redhat.com, linux-arm-kernel@lists.infradead.org, inochiama@outlook.com, linux-sunxi@lists.linux.dev, ajones@ventanamicro.com, devicetree@vger.kernel.org, conor+dt@kernel.org, aou@eecs.berkeley.edu, andre.przywara@arm.com, locus84@andestech.com, acme@kernel.org, prabhakar.mahadev-lad.rj@bp.renesas.com, robh+dt@kernel.org, atishp@atishpatra.org, namhyung@kernel.org, tglx@linutronix.de, jszhang@kernel.org, ycliang@andestech.com, n.shubin@yadro.com, rdunlap@infradead.org, adrian.hunter@intel.com, conor@kernel.org, linux-perf-users@vger.kernel.org, evan@rivosinc.com, palmer@dabbelt.com, jolsa@kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org SGkgQW51cCwKCk9uIFdlZCwgRGVjIDEzLCAyMDIzIGF0IDA4OjQ5OjIzUE0gKzA1MzAsIEFudXAg UGF0ZWwgd3JvdGU6Cj4gT24gV2VkLCBEZWMgMTMsIDIwMjMgYXQgNzo1OOKAr1BNIEFudXAgUGF0 ZWwgPGFwYXRlbEB2ZW50YW5hbWljcm8uY29tPiB3cm90ZToKPiA+Cj4gPiBPbiBXZWQsIERlYyAx MywgMjAyMyBhdCAxMjozNOKAr1BNIFl1IENoaWVuIFBldGVyIExpbgo+ID4gPHBldGVybGluQGFu ZGVzdGVjaC5jb20+IHdyb3RlOgo+ID4gPgo+ID4gPiBDdXJyZW50bHksIHRoZSBpbXBsZW1lbnRh dGlvbiBvZiB0aGUgUklTQy1WIElOVEMgZHJpdmVyIHVzZXMgdGhlCj4gPiA+IGludGVycnVwdCBj YXVzZSBhcyBoYXJkd2FyZSBpbnRlcnJ1cHQgbnVtYmVyIGFuZCBoYXMgYSBsaW1pdGF0aW9uIG9m Cj4gPiA+IHN1cHBvcnRpbmcgYSBtYXhpbXVtIG9mIDY0IGludGVycnVwdHMuIEhvd2V2ZXIsIGFj Y29yZGluZyB0byB0aGUKPiA+ID4gcHJpdmlsZWdlZCBzcGVjLCBpbnRlcnJ1cHQgY2F1c2VzID49 IDE2IGFyZSBkZWZpbmVkIGZvciBwbGF0Zm9ybSB1c2UuCj4gPgo+ID4gSSBkaXNhZ3JlZSB3aXRo IHRoaXMgcGF0Y2guCj4gPgo+ID4gRXZlbiB0aG91Z2ggUklTQy1WIHByaXYgc2VwYyBhbGxvd3Mg aW50ZXJydXB0IGNhdXNlcyA+PSAxNiwgd2UKPiA+IHN0aWxsIG5lZWQgQ1NScyB0byBtYW5hZ2Ug YXJiaXRyYXJ5IGxvY2FsIGludGVycnVwdHMKPiA+Cj4gPiBDdXJyZW50bHksIHdlIGhhdmUgZm9s bG93aW5nIHN0YW5kYXJkIENTUnM6Cj4gPiAxKSBbbXxzXWllIGFuZCBbbXxzXWlwIHdoaWNoIGFy ZSBYTEVOIHdpZGUKPiA+IDIpIFdpdGggQUlBLCB3ZSBoYXZlIFttfHNdaWVoIGFuZCBbbXxzXWlw aCBmb3IgUlYzMgo+ID4KPiA+IENsZWFybHksIHdlIGNhbiBvbmx5IGhhdmUgYSBYTEVOIG51bWJl ciBvZiBzdGFuZGFyZCBsb2NhbAo+ID4gaW50ZXJydXB0cyB3aXRob3V0IEFJQSBhbmQgNjQgbG9j YWwgaW50ZXJydXB0cyB3aXRoIEFJQS4KPiA+Cj4gPiBOb3cgZm9yIGltcGxlbWVudGF0aW9ucyB3 aXRoIGN1c3RvbSBDU1JzIChzdWNoIGFzIEFuZGVzKSwKPiA+IHdlIHN0aWxsIGNhbid0IGFzc3Vt ZSBpbmZpbml0ZSBsb2NhbCBpbnRlcnJ1cHRzIGJlY2F1c2UgSFcgd2lsbAo+ID4gaGF2ZSBhIGZp bml0ZSBudW1iZXIgb2YgY3VzdG9tIENTUnMuCj4gPgo+ID4gPgo+ID4gPiBUaGlzIGxpbWl0YXRp b24gcHJldmVudHMgdG8gZnVsbHkgdXRpbGl6ZSB0aGUgYXZhaWxhYmxlIGxvY2FsIGludGVycnVw dAo+ID4gPiBzb3VyY2VzLiBBZGRpdGlvbmFsbHksIHRoZSBpbnRlcnJ1cHQgbnVtYmVyIHVzZWQg b24gUklTQy1WIGFyZSBzcGFyc2UsCj4gPiA+IHdpdGggb25seSBpbnRlcnJ1cHQgbnVtYmVycyAx LCA1IGFuZCA5IChwbHVzIFNzY29mcG1mIG9yIFQtSGVhZCdzIFBNVQo+ID4gPiBpbnRlcnJ1cHQp IGJlaW5nIGN1cnJlbnRseSB1c2VkIGZvciBzdXBlcnZpc29yIG1vZGUuCj4gPiA+Cj4gPiA+IFN3 aXRjaCB0byB1c2luZyBpcnFfZG9tYWluX2NyZWF0ZV90cmVlKCkgdG8gY3JlYXRlIHRoZSByYWRp eCB0cmVlCj4gPiA+IG1hcCwgc28gYSBsYXJnZXIgbnVtYmVyIG9mIGhhcmR3YXJlIGludGVycnVw dHMgY2FuIGJlIGhhbmRsZWQuCj4gPiA+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IFl1IENoaWVuIFBl dGVyIExpbiA8cGV0ZXJsaW5AYW5kZXN0ZWNoLmNvbT4KPiA+ID4gUmV2aWV3ZWQtYnk6IENoYXJs ZXMgQ2ktSnl1biBXdSA8ZG1pbnVzQGFuZGVzdGVjaC5jb20+Cj4gPiA+IFJldmlld2VkLWJ5OiBM ZW8gWXUtQ2hpIExpYW5nIDx5Y2xpYW5nQGFuZGVzdGVjaC5jb20+Cj4gPiA+IC0tLQo+ID4gPiBD aGFuZ2VzIHYxIC0+IHYyOgo+ID4gPiAgIC0gRml4ZWQgaXJxIG1hcHBpbmcgZmFpbHVyZSBjaGVj a2luZyAoc3VnZ2VzdGVkIGJ5IENsw6ltZW50IGFuZCBBbnVwKQo+ID4gPiBDaGFuZ2VzIHYyIC0+ IHYzOgo+ID4gPiAgIC0gTm8gY2hhbmdlCj4gPiA+IENoYW5nZXMgdjMgLT4gdjQ6IChTdWdnZXN0 ZWQgYnkgVGhvbWFzIFsxXSkKPiA+ID4gICAtIFVzZSBwcl93YXJuX3JhdGVsaW1pdGVkIGluc3Rl YWQKPiA+ID4gICAtIEZpeCBjb2Rpbmcgc3R5bGUgYW5kIGNvbW1pdCBtZXNzYWdlCj4gPiA+IENo YW5nZXMgdjQgLT4gdjU6IChTdWdnZXN0ZWQgYnkgVGhvbWFzKQo+ID4gPiAgIC0gRml4IGNvbW1p dCBtZXNzYWdlCj4gPiA+Cj4gPiA+IFsxXSBodHRwczovL3BhdGNod29yay5rZXJuZWwub3JnL3By b2plY3QvbGludXgtcmlzY3YvcGF0Y2gvMjAyMzEwMjMwMDQxMDAuMjY2MzQ4Ni0zLXBldGVybGlu QGFuZGVzdGVjaC5jb20vIzI1NTczMDg1Cj4gPiA+IC0tLQo+ID4gPiAgZHJpdmVycy9pcnFjaGlw L2lycS1yaXNjdi1pbnRjLmMgfCAxMiArKysrLS0tLS0tLS0KPiA+ID4gIDEgZmlsZSBjaGFuZ2Vk LCA0IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4gPiA+Cj4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2lycWNoaXAvaXJxLXJpc2N2LWludGMuYyBiL2RyaXZlcnMvaXJxY2hpcC9pcnEt cmlzY3YtaW50Yy5jCj4gPiA+IGluZGV4IGU4ZDAxYjE0Y2NkZC4uMmZkZDQwZjJhNzkxIDEwMDY0 NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2lycWNoaXAvaXJxLXJpc2N2LWludGMuYwo+ID4gPiArKysg Yi9kcml2ZXJzL2lycWNoaXAvaXJxLXJpc2N2LWludGMuYwo+ID4gPiBAQCAtMjQsMTAgKzI0LDkg QEAgc3RhdGljIGFzbWxpbmthZ2Ugdm9pZCByaXNjdl9pbnRjX2lycShzdHJ1Y3QgcHRfcmVncyAq cmVncykKPiA+ID4gIHsKPiA+ID4gICAgICAgICB1bnNpZ25lZCBsb25nIGNhdXNlID0gcmVncy0+ Y2F1c2UgJiB+Q0FVU0VfSVJRX0ZMQUc7Cj4gPiA+Cj4gPiA+IC0gICAgICAgaWYgKHVubGlrZWx5 KGNhdXNlID49IEJJVFNfUEVSX0xPTkcpKQo+ID4gPiAtICAgICAgICAgICAgICAgcGFuaWMoInVu ZXhwZWN0ZWQgaW50ZXJydXB0IGNhdXNlIik7Cj4gPiA+IC0KPiA+ID4gLSAgICAgICBnZW5lcmlj X2hhbmRsZV9kb21haW5faXJxKGludGNfZG9tYWluLCBjYXVzZSk7Cj4gPiA+ICsgICAgICAgaWYg KGdlbmVyaWNfaGFuZGxlX2RvbWFpbl9pcnEoaW50Y19kb21haW4sIGNhdXNlKSkKPiA+ID4gKyAg ICAgICAgICAgICAgIHByX3dhcm5fcmF0ZWxpbWl0ZWQoIkZhaWxlZCB0byBoYW5kbGUgaW50ZXJy dXB0IChjYXVzZTogJWxkKVxuIiwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2F1c2UpOwo+ID4gPiAgfQo+ID4gPgo+ID4gPiAgLyoKPiA+ID4gQEAgLTExNyw4ICsx MTYsNyBAQCBzdGF0aWMgaW50IF9faW5pdCByaXNjdl9pbnRjX2luaXRfY29tbW9uKHN0cnVjdCBm d25vZGVfaGFuZGxlICpmbikKPiA+ID4gIHsKPiA+ID4gICAgICAgICBpbnQgcmM7Cj4gPiA+Cj4g PiA+IC0gICAgICAgaW50Y19kb21haW4gPSBpcnFfZG9tYWluX2NyZWF0ZV9saW5lYXIoZm4sIEJJ VFNfUEVSX0xPTkcsCj4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJnJpc2N2X2ludGNfZG9tYWluX29wcywgTlVMTCk7Cj4gPiA+ICsgICAgICAgaW50 Y19kb21haW4gPSBpcnFfZG9tYWluX2NyZWF0ZV90cmVlKGZuLCAmcmlzY3ZfaW50Y19kb21haW5f b3BzLCBOVUxMKTsKPiA+Cj4gPiBJIGRpc2FncmVlIHdpdGggdGhpcyBjaGFuZ2UgYmFzZWQgb24g dGhlIHJlYXNvbmluZyBhYm92ZS4KPiA+Cj4gPiBJbnN0ZWFkIG9mIHRoaXMsIHdlIHNob3VsZCBk ZXRlcm1pbmUgdGhlIG51bWJlciBvZiBsb2NhbCBpbnRlcnJ1cHRzCj4gPiBiYXNlZCBvbiB0aGUg dHlwZSBvZiBSSVNDLVYgaW50YzoKPiA+IDEpIEZvciBzdGFuZGFyZCBJTlRDIHdpdGhvdXQgQUlB LCB3ZSBoYXZlIFhMRU4gKG9yIEJJVFNfUEVSX0xPTkcpCj4gPiAgICAgbG9jYWwgaW50ZXJydXB0 cwo+ID4gMikgRm9yIHN0YW5kYXJ0IElOVEMgd2l0aCBBSUEsIHdlIGhhdmUgNjQgbG9jYWwgaW50 ZXJydXB0cwo+ID4gMykgRm9yIGN1c3RvbSBJTlRDIChzdWNoIGFzIEFuZGVzKSwgdGhlIG51bWJl ciBvZiBsb2NhbCBpbnRlcnJ1cHQKPiA+ICAgICBzaG91bGQgYmUgY3VzdG9tIChBbmRlcyBzcGVj aWZpYykgd2hpY2ggY2FuIGJlIGRldGVybWluZWQgYmFzZWQKPiA+ICAgICBvbiBjb21wYXRpYmxl IHN0cmluZy4KPiA+Cj4gPiBBbHNvLCBjcmVhdGluZyBhIGxpbmVhciBkb21haW4gd2l0aCBhIGZp eGVkIG51bWJlciBvZiBsb2NhbCBpbnRlcnJ1cHRzCj4gPiBlbnN1cmVzIHRoYXQgZHJpdmVycyBj YW4ndCBtYXAgYSBsb2NhbCBpbnRlcnJ1cHQgYmV5b25kIHRoZSBhdmFpbGFiaWxpdHkKPiA+IG9m IENTUnMgdG8gbWFuYWdlIGl0Lgo+IAo+IFRoaW5raW5nIGFib3V0IHRoaXMgbW9yZS4gV2UgZG8g aGF2ZSBhIHByb2JsZW0gYmVjYXVzZSBBbmRlcyBsb2NhbAo+IGludGVycnVwdHMgYXJlIHJlYWxs eSBzcGFyc2Ugd2hpY2ggaXMgbm90IHRoZSBjYXNlIGZvciBzdGFuZGFyZCBsb2NhbAo+IGludGVy cnVwdHMKPiAKPiBJIGhhdmUgYW4gYWx0ZXJuYXRlIHN1Z2dlc3Rpb24gd2hpY2ggZ29lcyBhcyBm b2xsb3dzIC4uLgo+IAo+IFdlIHVzZSBpcnFfZG9tYWluX2NyZWF0ZV90cmVlKCkgaW4tcGxhY2Ug b2YgaXJxX2RvbWFpbl9jcmVhdGVfbGluZWFyKCkKPiBhbmQgZW5mb3JjZSBjaGVja3Mgb24gaHdp cnEgaW4gcmlzY3ZfaW50Y19kb21haW5fYWxsb2MoKSB0byBlbnN1cmUgdGhhdAo+IHdlIG9ubHkg YWxsb3cgaHdpcnEgZm9yIHdoaWNoIHdlIGhhdmUgY29ycmVzcG9uZGluZyBzdGFuZGFyZCBvciBj dXN0b20KPiBDU1IuCj4gCj4gVG8gYWNoaWV2ZSB0aGlzLCByaXNjdl9pbnRjX2luaXRfY29tbW9u KCkgd2lsbCBoYXZlIHRvIHNhdmUgdGhlIGZvbGxvd2luZwo+IGFzIHN0YXRpYyBnbG9iYWwgdmFy aWFibGVzOgo+IDEpIHJpc2N2X2ludGNfbnJfaXJxczogTnVtYmVyIG9mIHN0YW5kYXJkIGxvY2Fs IGludGVycnVwdHMKPiAyKSByaXNjdl9pbnRjX2N1c3RvbV9iYXNlIGFuZCByaXNjdl9pbnRjX2N1 c3RvbV9ucl9pcnFzOiBCYXNlIGFuZAo+ICAgICBudW1iZXIgb2YgY3VzdG9tIGxvY2FsIGludGVy cnVwdHMuCj4gCj4gVXNpbmcgdGhlIGFib3ZlIHN0YXRpYyBnbG9iYWwgdmFyaWFibGVzLCB0aGUg cmlzY3ZfaW50Y19kb21haW5fYWxsb2MoKQo+IGNhbiByZXR1cm4gZXJyb3IgaWYgb25lIG9mIHRo ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0Ogo+IDEpIHJpc2N2X2ludGNfbnJfaXJxczw9 IGh3aXJxICYmIGh3aXJxIDwgcmlzY3ZfaW50Y19jdXN0b21fYmFzZQo+IDIpIChyaXNjdl9pbnRj X2N1c3RvbV9iYXNlICsgcmlzY3ZfaW50Y19jdXN0b21fbnJfaXJxcykgPD0gaHdpcnEKPiAKPiBG b3Igc3RhbmRhcmQgSU5UQywgd2UgY2FuIHNldCB0aGUgc3RhdGljIGdsb2JhbCB2YXJpYWJsZSBh cyBmb2xsb3dzOgo+IHJpc2N2X2ludGNfbnJfaXJxcyA9IFhMRU4gb3IgQklUU19QRVJfTE9ORwo+ IHJpc2N2X2ludGNfY3VzdG9tX2Jhc2UgPSByaXNjdl9pbnRjX25yX2lycXMKPiByaXNjdl9pbnRj X2N1c3RvbV9ucl9pcnFzID0gMAo+IAo+IEZvciBBbmRlcyBJTlRDLCB3ZSBjYW4gc2V0IHRoZSBz dGF0aWMgZ2xvYmFsIHZhcmlhYmxlcyBhcyBmb2xsb3dzOgo+IHJpc2N2X2ludGNfbnJfaXJxcyA9 IFhMRU4gb3IgQklUU19QRVJfTE9ORwo+IHJpc2N2X2ludGNfY3VzdG9tX2Jhc2UgPSAyNTYKPiBy aXNjdl9pbnRjX2N1c3RvbV9ucl9pcnFzID0gWExFTiBvciBCSVRTX1BFUl9MT05HCj4gCj4gUmVn YXJkcywKPiBBbnVwCgpUaGFuayB5b3UgZm9yIG9mZmVyaW5nIHlvdXIgaGVscCBvbiB0aGlzLgpJ IHdpbGwgcmV3b3JrIHRoZSBwYXRjaCBhY2NvcmRpbmdseS4KCkJlc3QgcmVnYXJkcywKUGV0ZXIg TGluCgo+ID4KPiA+ID4gICAgICAgICBpZiAoIWludGNfZG9tYWluKSB7Cj4gPiA+ICAgICAgICAg ICAgICAgICBwcl9lcnIoInVuYWJsZSB0byBhZGQgSVJRIGRvbWFpblxuIik7Cj4gPiA+ICAgICAg ICAgICAgICAgICByZXR1cm4gLUVOWElPOwo+ID4gPiBAQCAtMTMyLDggKzEzMCw2IEBAIHN0YXRp YyBpbnQgX19pbml0IHJpc2N2X2ludGNfaW5pdF9jb21tb24oc3RydWN0IGZ3bm9kZV9oYW5kbGUg KmZuKQo+ID4gPgo+ID4gPiAgICAgICAgIHJpc2N2X3NldF9pbnRjX2h3bm9kZV9mbihyaXNjdl9p bnRjX2h3bm9kZSk7Cj4gPiA+Cj4gPiA+IC0gICAgICAgcHJfaW5mbygiJWQgbG9jYWwgaW50ZXJy dXB0cyBtYXBwZWRcbiIsIEJJVFNfUEVSX0xPTkcpOwo+ID4gPiAtCj4gPgo+ID4gU2FtZSBhcyBh Ym92ZSwgd2Ugc2hvdWxkIGRlZmluaXRlbHkgYWR2ZXJ0aXNlIHRoZSB0eXBlIG9mIElOVEMgYW5k Cj4gPiBudW1iZXIgb2YgbG9jYWwgaW50ZXJydXB0cyBtYXBwZWQuCj4gPgo+ID4gUmVnYXJkcywK PiA+IEFudXAKPiA+Cj4gPiA+ICAgICAgICAgcmV0dXJuIDA7Cj4gPiA+ICB9Cj4gPiA+Cj4gPiA+ IC0tCj4gPiA+IDIuMzQuMQo+ID4gPgo+ID4gPgo+ID4gPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gPiBsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QK PiA+ID4gbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwo+ID4gPiBodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2CgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxp c3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==