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 11E04CCD1BF for ; Fri, 24 Oct 2025 03:20:03 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:To:Subject:Cc: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=VLYOiRDrhRzetXNEyZjRGbDB/3twDJxjxJXPuMsGGA4=; b=rIbF7qs+ZqfGTm Iam14kwcW03pmRh0F/5ybNz4y6Oz8EXevl4LTZNpLQzCay7UZ7dnlbgL5h+mKBqsN99pb0JflYuB6 QrxyJuvp7hpklWPOCnzYiSSQ9F4ZS0VunV4oIspZGGtUjoCVlivpXFIr7ky/KIGfMsVa4312ShREV N5xuaypNQ0A+Fw1TTWRfgDa2HGD6TNfAaqj5NkEX3bIK9gEw31oZZsuLyu6HRBq/Aggdk35hq+57G VpkpuZzH0ZlDiELJni1mCj7cS7qUSiNpgteQeKy0w19fQ9cKmVw/HMTbuzOnKb6xDBNyo1LTQaVev AOg1cs5il6QtZv50O8qg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vC8LM-000000088aY-34ai; Fri, 24 Oct 2025 03:19:56 +0000 Received: from mail-m19731100.qiye.163.com ([220.197.31.100]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vC8LJ-000000088a3-35om for linux-rockchip@lists.infradead.org; Fri, 24 Oct 2025 03:19:55 +0000 Received: from [172.16.12.129] (unknown [58.22.7.114]) by smtp.qiye.163.com (Hmail) with ESMTP id 27047eccc; Fri, 24 Oct 2025 11:19:48 +0800 (GMT+08:00) Message-ID: Date: Fri, 24 Oct 2025 11:19:45 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Cc: shawn.lin@rock-chips.com, Heiko Stuebner , Manivannan Sadhasivam , Bjorn Helgaas , linux-rockchip@lists.infradead.org, Niklas Cassel , linux-pci@vger.kernel.org Subject: Re: [PATCH v3 1/2] PCI: dw-rockchip: Configure L1sub support To: Frank Li References: <1761187883-150120-1-git-send-email-shawn.lin@rock-chips.com> From: Shawn Lin In-Reply-To: X-HM-Tid: 0a9a143acad009cckunme6e8b8b9a407f9 X-HM-MType: 1 X-HM-Spam-Status: e1kfGhgUHx5ZQUpXWQgPGg8OCBgUHx5ZQUlOS1dZFg8aDwILHllBWSg2Ly tZV1koWUFDSUNOT01LS0k3V1ktWUFJV1kPCRoVCBIfWUFZQhkdHlYfThlLHkNLQx9CSU1WFRQJFh oXVRMBExYaEhckFA4PWVdZGBILWUFZTkNVSUlVTFVKSk9ZV1kWGg8SFR0UWUFZT0tIVUpLSEpKQk xVSktLVUpCS0tZBg++ DKIM-Signature: a=rsa-sha256; b=PPc8oujA8M125ZSfo6H2wzhmT3CslUHfcPDDzv/TYGxP42JbqLl2kZYblf8iTALQNuUR8W781paxyX5KEX44DY4x2u7AeCyCYzxkDmd8fsZMeabhKc19HxZJmViH+xnLTMSH8tRBQ48e+CT/4LVkrr2kuSMGj9qkbWiVz77H+pc=; s=default; c=relaxed/relaxed; d=rock-chips.com; v=1; bh=xcJbpwYnSyres1NRPrUOlCjS3GNGFftDM0G2F7GNv28=; h=date:mime-version:subject:message-id:from; X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251023_201954_331269_64E0E05F X-CRM114-Status: GOOD ( 21.12 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org 5ZyoIDIwMjUvMTAvMjQg5pif5pyf5LqUIDExOjA5LCBGcmFuayBMaSDlhpnpgZM6Cj4gT24gRnJp LCBPY3QgMjQsIDIwMjUgYXQgMDg6NDM6MjhBTSArMDgwMCwgU2hhd24gTGluIHdyb3RlOgo+PiDl nKggMjAyNS8xMC8yMyDmmJ/mnJ/lm5sgMjM6NDYsIEZyYW5rIExpIOWGmemBkzoKPj4+IE9uIFRo dSwgT2N0IDIzLCAyMDI1IGF0IDEwOjUxOjIyQU0gKzA4MDAsIFNoYXduIExpbiB3cm90ZToKPj4+ PiBMMSBQTSBTdWJzdGF0ZXMgZm9yIFJDIG1vZGUgcmVxdWlyZSBzdXBwb3J0IGluIHRoZSBkdy1y b2NrY2hpcCBkcml2ZXIKPj4+PiBpbmNsdWRpbmcgcHJvcGVyIGhhbmRsaW5nIG9mIHRoZSBDTEtS RVEjIHNpZGViYW5kIHNpZ25hbC4gSXQgaXMgbW9zdGx5Cj4+Pj4gaGFuZGxlZCBieSBoYXJkd2Fy ZSwgYnV0IHNvZnR3YXJlIHN0aWxsIG5lZWRzIHRvIHNldCB0aGUgY2xrcmVxIGZpZWxkcwo+Pj4+ IGluIHRoZSBQQ0lFX0NMSUVOVF9QT1dFUl9DT04gcmVnaXN0ZXIgdG8gbWF0Y2ggdGhlIGhhcmR3 YXJlIGltcGxlbWVudGF0aW9uLgo+Pj4+Cj4+Pj4gRm9yIG1vcmUgZGV0YWlscywgc2VlIHNlY3Rp b24gJzE4LjYuNi40IEwxIFN1YnN0YXRlJyBpbiB0aGUgUkszNjU4IFRSTSAxLjEKPj4+PiBQYXJ0 IDIsIG9yIHNlY3Rpb24gJzExLjYuNi40IEwxIFN1YnN0YXRlJyBpbiB0aGUgUkszNTg4IFRSTSAx LjAgUGFydDIuCj4+Pj4KPj4+PiBNZWFud2hpbGUsIGZvciB0aGUgRVAgbW9kZSwgd2UgaGF2ZW4n dCBwcmVwYXJlZCBlbm91Z2ggdG8gYWN0dWFsbHkgc3VwcG9ydAo+Pj4+IEwxIFBNIFN1YnN0YXRl cyB5ZXQuIFNvIGRpc2FibGUgaXQgbm93IHVudGlsIHByb3BlciBzdXBwb3J0IGlzIGFkZGVkIGxh dGVyLgo+Pj4+Cj4+Pj4gU2lnbmVkLW9mZi1ieTogU2hhd24gTGluIDxzaGF3bi5saW5Acm9jay1j aGlwcy5jb20+Cj4+Pj4KPj4+PiAtLS0KPj4+Pgo+Pj4+IENoYW5nZXMgaW4gdjM6Cj4+Pj4gLSBy ZXBocmVhc2UgdGhlIGNoYW5nZWxvZwo+Pj4+IC0gdXNlIEZJRUxEX1BSRVBfV00xNgo+Pj4+IC0g cmVuYW1lIHRvIHJvY2tjaGlwX3BjaWVfY29uZmlndXJlX2wxc3ViCj4+Pj4gLSBkaXNhYmxlIEwx c3MgZm9yIEVQIG1vZGUKPj4+Pgo+Pj4+IENoYW5nZXMgaW4gdjI6Cj4+Pj4gLSBkcm9wIG9mX3Bj aV9jbGtyZXFfcHJlc250IEFQSQo+Pj4+IC0gZHJvcCBkZXBlbmRlbmN5IG9mIE5pa2xhcydzIHBh dGNoCj4+Pj4KPj4+PiAgICBkcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWR3LXJvY2tj aGlwLmMgfCA0MyArKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4+PiAgICAxIGZpbGUgY2hh bmdlZCwgNDMgaW5zZXJ0aW9ucygrKQo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNp L2NvbnRyb2xsZXIvZHdjL3BjaWUtZHctcm9ja2NoaXAuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvZHdjL3BjaWUtZHctcm9ja2NoaXAuYwo+Pj4+IGluZGV4IDNlMjc1MmMuLjI1ZDI0NzQgMTAw NjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kdy1yb2NrY2hp cC5jCj4+Pj4gKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kdy1yb2NrY2hp cC5jCj4+Pj4gQEAgLTYyLDYgKzYyLDEyIEBACj4+Pj4gICAgLyogSW50ZXJydXB0IE1hc2sgUmVn aXN0ZXIgUmVsYXRlZCB0byBNaXNjZWxsYW5lb3VzIE9wZXJhdGlvbiAqLwo+Pj4+ICAgICNkZWZp bmUgUENJRV9DTElFTlRfSU5UUl9NQVNLX01JU0MJMHgyNAo+Pj4+Cj4+Pj4gKy8qIFBvd2VyIE1h bmFnZW1lbnQgQ29udHJvbCBSZWdpc3RlciAqLwo+Pj4+ICsjZGVmaW5lIFBDSUVfQ0xJRU5UX1BP V0VSX0NPTgkJMHgyYwo+Pj4+ICsjZGVmaW5lICBQQ0lFX0NMS1JFUV9SRUFEWQkJRklFTERfUFJF UF9XTTE2KEJJVCgwKSwgMSkKPj4+PiArI2RlZmluZSAgUENJRV9DTEtSRVFfTk9UX1JFQURZCQlG SUVMRF9QUkVQX1dNMTYoQklUKDApLCAwKQo+Pj4+ICsjZGVmaW5lICBQQ0lFX0NMS1JFUV9QVUxM X0RPV04JCUZJRUxEX1BSRVBfV00xNihHRU5NQVNLKDEzLCAxMiksIDEpCj4+Pj4gKwo+Pj4+ICAg IC8qIEhvdCBSZXNldCBDb250cm9sIFJlZ2lzdGVyICovCj4+Pj4gICAgI2RlZmluZSBQQ0lFX0NM SUVOVF9IT1RfUkVTRVRfQ1RSTAkweDE4MAo+Pj4+ICAgICNkZWZpbmUgIFBDSUVfTFRTU01fQVBQ X0RMWTJfRU4JCUJJVCgxKQo+Pj4+IEBAIC04NSw2ICs5MSw3IEBAIHN0cnVjdCByb2NrY2hpcF9w Y2llIHsKPj4+PiAgICAJc3RydWN0IHJlZ3VsYXRvciAqdnBjaWUzdjM7Cj4+Pj4gICAgCXN0cnVj dCBpcnFfZG9tYWluICppcnFfZG9tYWluOwo+Pj4+ICAgIAljb25zdCBzdHJ1Y3Qgcm9ja2NoaXBf cGNpZV9vZl9kYXRhICpkYXRhOwo+Pj4+ICsJYm9vbCBzdXBwb3J0c19jbGtyZXE7Cj4+Pj4gICAg fTsKPj4+Pgo+Pj4+ICAgIHN0cnVjdCByb2NrY2hpcF9wY2llX29mX2RhdGEgewo+Pj4+IEBAIC0y MDAsNiArMjA3LDM3IEBAIHN0YXRpYyBib29sIHJvY2tjaGlwX3BjaWVfbGlua191cChzdHJ1Y3Qg ZHdfcGNpZSAqcGNpKQo+Pj4+ICAgIAlyZXR1cm4gRklFTERfR0VUKFBDSUVfTElOS1VQX01BU0ss IHZhbCkgPT0gUENJRV9MSU5LVVA7Cj4+Pj4gICAgfQo+Pj4+Cj4+Pj4gKy8qCj4+Pj4gKyAqIFNl ZSBlLmcuIHNlY3Rpb24gJzExLjYuNi40IEwxIFN1YnN0YXRlJyBpbiB0aGUgUkszNTg4IFRSTSBW MS4wIGZvciB0aGUgc3RlcHMKPj4+PiArICogbmVlZGVkIHRvIHN1cHBvcnQgTDEgc3Vic3RhdGVz LiBDdXJyZW50bHksIGp1c3QgZW5hYmxlIEwxIHN1YnN0YXRlcyBmb3IgUkMKPj4+PiArICogbW9k ZSBpZiBDTEtSRVEjIGlzIHByb3Blcmx5IGNvbm5lY3RlZCBhbmQgc3VwcG9ydHMtY2xrcmVxIGlz IHByZXNlbnQgaW4gRFQuCj4+Pj4gKyAqIEZvciBFUCBtb2RlLCB0aGVyZSBhcmUgbW9yZSB0aGlu Z3Mgc2hvdWxkIGJlIGRvbmUgdG8gYWN0dWFsbHkgc2F2ZSBwb3dlciBpbgo+Pj4+ICsgKiBMMSBz dWJzdGF0ZXMsIHNvIGRpc2FibGUgTDEgc3Vic3RhdGVzIHVudGlsIHRoZXJlIGlzIHByb3BlciBz dXBwb3J0Lgo+Pj4+ICsgKi8KPj4+PiArc3RhdGljIHZvaWQgcm9ja2NoaXBfcGNpZV9jb25maWd1 cmVfbDFzdWIoc3RydWN0IGR3X3BjaWUgKnBjaSkKPj4+PiArewo+Pj4+ICsJc3RydWN0IHJvY2tj aGlwX3BjaWUgKnJvY2tjaGlwID0gdG9fcm9ja2NoaXBfcGNpZShwY2kpOwo+Pj4+ICsJdTMyIGNh cCwgbDFzdWJjYXA7Cj4+Pj4gKwo+Pj4+ICsJLyogRW5hYmxlIEwxIHN1YnN0YXRlcyBpZiBDTEtS RVEjIGlzIHByb3Blcmx5IGNvbm5lY3RlZCAqLwo+Pj4+ICsJaWYgKHJvY2tjaGlwLT5zdXBwb3J0 c19jbGtyZXEgJiYgcm9ja2NoaXAtPmRhdGEtPm1vZGUgPT0gRFdfUENJRV9SQ19UWVBFICkgewo+ Pj4+ICsJCXJvY2tjaGlwX3BjaWVfd3JpdGVsX2FwYihyb2NrY2hpcCwgUENJRV9DTEtSRVFfUkVB RFksIFBDSUVfQ0xJRU5UX1BPV0VSX0NPTik7Cj4+Pj4gKwkJcmV0dXJuOwo+Pj4+ICsJfQo+Pj4+ ICsKPj4+PiArCS8qIE90aGVyd2lzZSwgcHVsbCBkb3duIENMS1JFUSMgYW5kIGRpc2FibGUgTDEg UE0gc3Vic3RhdGVzICovCj4+Pj4gKwlyb2NrY2hpcF9wY2llX3dyaXRlbF9hcGIocm9ja2NoaXAs IFBDSUVfQ0xLUkVRX1BVTExfRE9XTiB8IFBDSUVfQ0xLUkVRX05PVF9SRUFEWSwKPj4+PiArCQkJ CSBQQ0lFX0NMSUVOVF9QT1dFUl9DT04pOwo+Pj4KPj4+IExvb2tzIGxpa2UgeW91IGZvcmNlIHB1 bGwgZG93biBjbGtyZXEgc2hvdWxkIGJlIGVub3VnaCwgbmVlZG4ndCBkaXNhYmxlCj4+PiBMMVNT LiB3aGVuIFJDIGZvcmNlIGNsa3JlcSBpcyBsb3csIFJlZiBDTEsgYWx3YXlzIG9uIGV2ZW4gaWYg TDFTUyBlbmFibGVkLgo+Pj4KPj4+IE9mIGNvdXJzZSBpdCBkZXBlbmQgb24gaGFyZHdhcmUgaW1w bGVtZW50YXRpb24sIEJ1dCBJIHRoaW5rIEZVTExfRE9XTiBoYXZlCj4+PiBoaWdoIHByaW9yaXR5 IHRvIGZvcmNlIGNsa3JlcSB0byBsb3cgdGhlbiBQQ0lfTDFTUyBjb250cm9sLgo+Pj4KPj4KPj4g SGkgRnJhbmssCj4+Cj4+IFRoYW5rcyBmb3IgeW91ciByZXZpZXcuIFRCSCwgdGhlIGJhc2ljIGlk ZWEgaGVyZSBJIHRoaW5rIGlzIG5vdCB0bwo+PiBhZHZlcnRpc2UgYSBjYXBhYmlsaXR5IGlmIHRo ZSBIVyBhcyB3aG9sZSBoYXNuJ3QgYmVlbiB3ZWxsIHByZXBhcmVkIHRvCj4+IHN1cHBvcnQgaXQg eWV0LiBTbyBJJ2QgcHJlZmVyIHRvIGtlZXAgaXQgYXMtaXMuCj4+Cj4gCj4gSWYgdGhhdCwgSSBw cmVmZXIgZG8gaXQgYXQgZHdjIGNvbW1vbiBkcml2ZXIgb3IgcHJvdmlkZSBoZWxwZXIgZnVuY3Rp b24gdG8KPiBhdm9pZCBvdGhlciB2ZW5kb3IgdG8gY29weSBzYW1lIGxvZ2ljLgoKUmlnaHQsIGRl ZmluaXRlbHkgd2UgY291bGQgaW1wcm92ZSBpdCBvbmNlIGFub3RoZXIgZHJpdmVyIG5lZWQgaXQu IDopCgo+IAo+IEZyYW5rCj4gCj4+PiBGcmFuawo+Pj4KPj4+PiArCWNhcCA9IGR3X3BjaWVfZmlu ZF9leHRfY2FwYWJpbGl0eShwY2ksIFBDSV9FWFRfQ0FQX0lEX0wxU1MpOwo+Pj4+ICsJaWYgKGNh cCkgewo+Pj4+ICsJCWwxc3ViY2FwID0gZHdfcGNpZV9yZWFkbF9kYmkocGNpLCBjYXAgKyBQQ0lf TDFTU19DQVApOwo+Pj4+ICsJCWwxc3ViY2FwICY9IH4oUENJX0wxU1NfQ0FQX0wxX1BNX1NTIHwg UENJX0wxU1NfQ0FQX0FTUE1fTDFfMSB8Cj4+Pj4gKwkJCSAgICAgIFBDSV9MMVNTX0NBUF9BU1BN X0wxXzIgfCBQQ0lfTDFTU19DQVBfUENJUE1fTDFfMSB8Cj4+Pj4gKwkJCSAgICAgIFBDSV9MMVNT X0NBUF9QQ0lQTV9MMV8yKTsKPj4+PiArCQlkd19wY2llX3dyaXRlbF9kYmkocGNpLCBjYXAgKyBQ Q0lfTDFTU19DQVAsIGwxc3ViY2FwKTsKPj4+PiArCX0KPj4+PiArfQo+Pj4+ICsKPj4+PiAgICBz dGF0aWMgdm9pZCByb2NrY2hpcF9wY2llX2VuYWJsZV9sMHMoc3RydWN0IGR3X3BjaWUgKnBjaSkK Pj4+PiAgICB7Cj4+Pj4gICAgCXUzMiBjYXAsIGxua2NhcDsKPj4+PiBAQCAtMjY0LDYgKzMwMiw3 IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfcGNpZV9ob3N0X2luaXQoc3RydWN0IGR3X3BjaWVfcnAg KnBwKQo+Pj4+ICAgIAlpcnFfc2V0X2NoYWluZWRfaGFuZGxlcl9hbmRfZGF0YShpcnEsIHJvY2tj aGlwX3BjaWVfaW50eF9oYW5kbGVyLAo+Pj4+ICAgIAkJCQkJIHJvY2tjaGlwKTsKPj4+Pgo+Pj4+ ICsJcm9ja2NoaXBfcGNpZV9jb25maWd1cmVfbDFzdWIocGNpKTsKPj4+PiAgICAJcm9ja2NoaXBf cGNpZV9lbmFibGVfbDBzKHBjaSk7Cj4+Pj4KPj4+PiAgICAJcmV0dXJuIDA7Cj4+Pj4gQEAgLTMw MSw2ICszNDAsNyBAQCBzdGF0aWMgdm9pZCByb2NrY2hpcF9wY2llX2VwX2luaXQoc3RydWN0IGR3 X3BjaWVfZXAgKmVwKQo+Pj4+ICAgIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9m cm9tX2VwKGVwKTsKPj4+PiAgICAJZW51bSBwY2lfYmFybm8gYmFyOwo+Pj4+Cj4+Pj4gKwlyb2Nr Y2hpcF9wY2llX2NvbmZpZ3VyZV9sMXN1YihwY2kpOwo+Pj4+ICAgIAlyb2NrY2hpcF9wY2llX2Vu YWJsZV9sMHMocGNpKTsKPj4+PiAgICAJcm9ja2NoaXBfcGNpZV9lcF9oaWRlX2Jyb2tlbl9hdHNf Y2FwX3JrMzU4OChlcCk7Cj4+Pj4KPj4+PiBAQCAtNDEyLDYgKzQ1Miw5IEBAIHN0YXRpYyBpbnQg cm9ja2NoaXBfcGNpZV9yZXNvdXJjZV9nZXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwK Pj4+PiAgICAJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5kZXYsIFBUUl9FUlIocm9ja2No aXAtPnJzdCksCj4+Pj4gICAgCQkJCSAgICAgImZhaWxlZCB0byBnZXQgcmVzZXQgbGluZXNcbiIp Owo+Pj4+Cj4+Pj4gKwlyb2NrY2hpcC0+c3VwcG9ydHNfY2xrcmVxID0gb2ZfcHJvcGVydHlfcmVh ZF9ib29sKHBkZXYtPmRldi5vZl9ub2RlLAo+Pj4+ICsJCQkJCQkJICAic3VwcG9ydHMtY2xrcmVx Iik7Cj4+Pj4gKwo+Pj4+ICAgIAlyZXR1cm4gMDsKPj4+PiAgICB9Cj4+Pj4KPj4+PiAtLQo+Pj4+ IDIuNy40Cj4+Pj4KPj4+Pgo+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4+Pj4gTGludXgtcm9ja2NoaXAgbWFpbGluZyBsaXN0Cj4+Pj4gTGludXgt cm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZwo+Pj4+IGh0dHA6Ly9saXN0cy5pbmZyYWRlYWQu b3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcm9ja2NoaXAKPj4+Cj4+Cj4+Cj4+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IExpbnV4LXJvY2tjaGlw IG1haWxpbmcgbGlzdAo+PiBMaW51eC1yb2NrY2hpcEBsaXN0cy5pbmZyYWRlYWQub3JnCj4+IGh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcm9ja2NoaXAK PiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IExp bnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdAo+IExpbnV4LXJvY2tjaGlwQGxpc3RzLmluZnJhZGVh ZC5vcmcKPiBodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LXJvY2tjaGlwCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KTGludXgtcm9ja2NoaXAgbWFpbGluZyBsaXN0CkxpbnV4LXJvY2tjaGlwQGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1yb2NrY2hpcAo=