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 63DBDC61DA4 for ; Tue, 7 Mar 2023 02:17:24 +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:In-Reply-To:From:References:CC:To: Subject: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=O77eRAM85oy6qw+LRhbOSpSPOvCYiOuRlkw82h9mPi0=; b=WOCXRuwJIzvtvC T+SoNZ804VoITHoB1vYf0dQEMMmrPdli8eBgRft/hyoLJib0wQrp/c9/wsYDKA5ZdZLD3D9zWF8ai OTf58F3KryH/tZO0pYhB/43aMSZIF9jFMS3gaUT/nMQnu4YjvaBDk61BRvhdDTnhyOsWLJSnbjMUQ j6ZgiNYCykmfznxaDms4nKxk0tI/Dm7qKqH5Bom3znYU40EFUm0gt+R/zx90kBWnml8Zt1fNpvElZ JLYelO6LUhOcVe8/19gHrUmpEwzYm+uvvPdAPN5VGuteH4YTSJL+ZllYY/BATaIhAqq8+m60Ptnvy 6s3BCBN5djNJSnmeUdJg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pZMtA-00FpSm-LL; Tue, 07 Mar 2023 02:17:16 +0000 Received: from ex01.ufhost.com ([61.152.239.75]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pZMt6-00FpRK-Ll for linux-riscv@lists.infradead.org; Tue, 07 Mar 2023 02:17:15 +0000 Received: from EXMBX166.cuchost.com (unknown [175.102.18.54]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "EXMBX166", Issuer "EXMBX166" (not verified)) by ex01.ufhost.com (Postfix) with ESMTP id 6651924E226; Tue, 7 Mar 2023 10:17:00 +0800 (CST) Received: from EXMBX162.cuchost.com (172.16.6.72) by EXMBX166.cuchost.com (172.16.6.76) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Tue, 7 Mar 2023 10:17:00 +0800 Received: from [192.168.120.42] (171.223.208.138) by EXMBX162.cuchost.com (172.16.6.72) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Tue, 7 Mar 2023 10:16:59 +0800 Message-ID: Date: Tue, 7 Mar 2023 10:16:57 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: [PATCH v5 08/12] net: stmmac: starfive_dmac: Add phy interface settings Content-Language: en-US To: Emil Renner Berthing CC: , , , , "David S . Miller" , Eric Dumazet , "Jakub Kicinski" , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Emil Renner Berthing , Richard Cochran , Andrew Lunn , Heiner Kallweit , Peter Geis , Yanhong Wang References: <20230303085928.4535-1-samin.guo@starfivetech.com> <20230303085928.4535-9-samin.guo@starfivetech.com> From: Guo Samin In-Reply-To: X-Originating-IP: [171.223.208.138] X-ClientProxiedBy: EXCAS064.cuchost.com (172.16.6.24) To EXMBX162.cuchost.com (172.16.6.72) X-YovoleRuleAgent: yovoleflag X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230306_181713_402378_AB9C9DE0 X-CRM114-Status: GOOD ( 27.37 ) 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: , 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 CgrlnKggMjAyMy8zLzYgMjA6NDk6NTcsIEVtaWwgUmVubmVyIEJlcnRoaW5nIOWGmemBkzoKPiBP biBNb24sIDYgTWFyIDIwMjMgYXQgMDQ6MDcsIEd1byBTYW1pbiA8c2FtaW4uZ3VvQHN0YXJmaXZl dGVjaC5jb20+IHdyb3RlOgo+PiDlnKggMjAyMy8zLzQgMDo1MDo1NCwgRW1pbCBSZW5uZXIgQmVy dGhpbmcg5YaZ6YGTOgo+Pj4gT24gRnJpLCAzIE1hciAyMDIzIGF0IDEwOjAxLCBTYW1pbiBHdW8g PHNhbWluLmd1b0BzdGFyZml2ZXRlY2guY29tPiB3cm90ZToKPj4+Pgo+Pj4+IGR3bWFjIHN1cHBv cnRzIG11bHRpcGxlIG1vZGVzcy4gV2hlbiB3b3JraW5nIHVuZGVyIHJtaWkgYW5kIHJnbWlpLAo+ Pj4+IHlvdSBuZWVkIHRvIHNldCBkaWZmZXJlbnQgcGh5IGludGVyZmFjZXMuCj4+Pj4KPj4+PiBB Y2NvcmRpbmcgdG8gdGhlIGR3bWFjIGRvY3VtZW50LCB3aGVuIHdvcmtpbmcgaW4gcm1paSwgaXQg bmVlZHMgdG8gYmUKPj4+PiBzZXQgdG8gMHg0LCBhbmQgcmdtaWkgbmVlZHMgdG8gYmUgc2V0IHRv IDB4MS4KPj4+Pgo+Pj4+IFRoZSBwaHkgaW50ZXJmYWNlIG5lZWRzIHRvIGJlIHNldCBpbiBzeXNj b24sIHRoZSBmb3JtYXQgaXMgYXMgZm9sbG93czoKPj4+PiBzdGFyZml2ZSxzeXNjb246IDwmc3lz Y29uLCBvZmZzZXQsIG1hc2s+Cj4+Pj4KPj4+PiBTaWduZWQtb2ZmLWJ5OiBTYW1pbiBHdW8gPHNh bWluLmd1b0BzdGFyZml2ZXRlY2guY29tPgo+Pj4+IC0tLQo+Pj4+ICAuLi4vZXRoZXJuZXQvc3Rt aWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYyAgfCA0NiArKysrKysrKysrKysrKysrKysrCj4+ Pj4gIDEgZmlsZSBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspCj4+Pj4KPj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmMKPj4+ PiBpbmRleCA1NjYzNzgzMDZmNjcuLjQwZmRkNzAzNjEyNyAxMDA2NDQKPj4+PiAtLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jCj4+Pj4gKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYwo+ Pj4+IEBAIC03LDEwICs3LDE1IEBACj4+Pj4gICAqCj4+Pj4gICAqLwo+Pj4+Cj4+Pj4gKyNpbmNs dWRlIDxsaW51eC9tZmQvc3lzY29uLmg+Cj4+Pj4gICNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2Uu aD4KPj4+PiArI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgo+Pj4+Cj4+Pj4gICNpbmNsdWRlICJz dG1tYWNfcGxhdGZvcm0uaCIKPj4+Pgo+Pj4+ICsjZGVmaW5lIE1BQ1BIWUNfUEhZX0lORlRfUk1J SSAgMHg0Cj4+Pj4gKyNkZWZpbmUgTUFDUEhZQ19QSFlfSU5GVF9SR01JSSAweDEKPj4+Cj4+PiBQ bGVhc2UgcHJlZml4IHRoZXNlIHdpdGggc29tZXRoaW5nIGxpa2UgU1RBUkZJVkVfRFdNQUNfCj4+ Pgo+PiBIaSwgRW1pbCwgVGhlc2UgZGVmaW5pdGlvbnMgY29tZSBmcm9tIHRoZSBkYXRhc2hlZXQg b2YgZHdtYWMuIEhvd2V2ZXIsIGFkZCBTVEFSRFJJVkVfIERXTUFDIGlzIGEgZ29vZCBpZGVhLiBJ IHdpbGwgZml4IGl0LHRoYW5rcy4KPj4+PiAgc3RydWN0IHN0YXJmaXZlX2R3bWFjIHsKPj4+PiAg ICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldjsKPj4+PiAgICAgICAgIHN0cnVjdCBjbGsgKmNsa190 eDsKPj4+PiBAQCAtNTMsNiArNTgsNDYgQEAgc3RhdGljIHZvaWQgc3RhcmZpdmVfZXRoX2ZpeF9t YWNfc3BlZWQodm9pZCAqcHJpdiwgdW5zaWduZWQgaW50IHNwZWVkKQo+Pj4+ICAgICAgICAgICAg ICAgICBkZXZfZXJyKGR3bWFjLT5kZXYsICJmYWlsZWQgdG8gc2V0IHR4IHJhdGUgJWx1XG4iLCBy YXRlKTsKPj4+PiAgfQo+Pj4+Cj4+Pj4gK3N0YXRpYyBpbnQgc3RhcmZpdmVfZHdtYWNfc2V0X21v ZGUoc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCkKPj4+PiArewo+Pj4+ICsg ICAgICAgc3RydWN0IHN0YXJmaXZlX2R3bWFjICpkd21hYyA9IHBsYXRfZGF0LT5ic3BfcHJpdjsK Pj4+PiArICAgICAgIHN0cnVjdCBvZl9waGFuZGxlX2FyZ3MgYXJnczsKPj4+PiArICAgICAgIHN0 cnVjdCByZWdtYXAgKnJlZ21hcDsKPj4+PiArICAgICAgIHVuc2lnbmVkIGludCByZWcsIG1hc2ss IG1vZGU7Cj4+Pj4gKyAgICAgICBpbnQgZXJyOwo+Pj4+ICsKPj4+PiArICAgICAgIHN3aXRjaCAo cGxhdF9kYXQtPmludGVyZmFjZSkgewo+Pj4+ICsgICAgICAgY2FzZSBQSFlfSU5URVJGQUNFX01P REVfUk1JSToKPj4+PiArICAgICAgICAgICAgICAgbW9kZSA9IE1BQ1BIWUNfUEhZX0lORlRfUk1J STsKPj4+PiArICAgICAgICAgICAgICAgYnJlYWs7Cj4+Pj4gKwo+Pj4+ICsgICAgICAgY2FzZSBQ SFlfSU5URVJGQUNFX01PREVfUkdNSUk6Cj4+Pj4gKyAgICAgICBjYXNlIFBIWV9JTlRFUkZBQ0Vf TU9ERV9SR01JSV9JRDoKPj4+PiArICAgICAgICAgICAgICAgbW9kZSA9IE1BQ1BIWUNfUEhZX0lO RlRfUkdNSUk7Cj4+Pj4gKyAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4+ICsKPj4+PiArICAgICAg IGRlZmF1bHQ6Cj4+Pj4gKyAgICAgICAgICAgICAgIGRldl9lcnIoZHdtYWMtPmRldiwgIlVuc3Vw cG9ydGVkIGludGVyZmFjZSAlZFxuIiwKPj4+PiArICAgICAgICAgICAgICAgICAgICAgICBwbGF0 X2RhdC0+aW50ZXJmYWNlKTsKPj4+PiArICAgICAgIH0KPj4+PiArCj4+Pj4gKyAgICAgICBlcnIg PSBvZl9wYXJzZV9waGFuZGxlX3dpdGhfZml4ZWRfYXJncyhkd21hYy0+ZGV2LT5vZl9ub2RlLAo+ Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXJm aXZlLHN5c2NvbiIsIDIsIDAsICZhcmdzKTsKPj4+PiArICAgICAgIGlmIChlcnIpIHsKPj4+PiAr ICAgICAgICAgICAgICAgZGV2X2RiZyhkd21hYy0+ZGV2LCAic3lzY29uIHJlZyBub3QgZm91bmRc biIpOwo+Pj4+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4+PiArICAgICAgIH0K Pj4+PiArCj4+Pj4gKyAgICAgICByZWcgPSBhcmdzLmFyZ3NbMF07Cj4+Pj4gKyAgICAgICBtYXNr ID0gYXJncy5hcmdzWzFdOwo+Pj4+ICsgICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVn bWFwKGFyZ3MubnApOwo+Pj4+ICsgICAgICAgb2Zfbm9kZV9wdXQoYXJncy5ucCk7Cj4+Pgo+Pj4g SSB0aGluayB0aGUgYWJvdmUgaXMgYmFzaWNhbGx5Cj4+PiB1bnNpZ25lZCBpbnQgYXJnc1syXTsK Pj4+IHN5c2Nvbl9yZWdtYXBfbG9va3VwX2J5X3BoYW5kbGVfYXJncyhkd21hYy0+ZGV2X29mX25v ZGUsCj4+PiAic3RhcmZpdmUsc3lzY29uIiwgMiwgYXJncyk7Cj4+Pgo+Pj4gLi5idXQgYXMgQW5k cmV3IHBvaW50cyBvdXQgYW5vdGhlciBzb2x1dGlvbiBpcyB0byB1c2UgcGxhdGZvcm0gbWF0Y2gK Pj4+IGRhdGEgZm9yIHRoaXMuIEVnLgo+Pj4KPj4+IHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RhcmZp dmVfZHdtYWNfbWF0Y2hfZGF0YSBzdGFyZml2ZV9kd21hY19qaDcxMTBfZGF0YSB7Cj4+PiAgIC5w aHlfaW50ZXJmYWNlX29mZnNldCA9IDB4YywKPj4+ICAgLnBoeV9pbnRlcmZhY2VfbWFzayA9IDB4 MWMwMDAwLAo+Pj4gfTsKPj4+Cj4+PiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBz dGFyZml2ZV9kd21hY19tYXRjaFtdID0gewo+Pj4gICB7IC5jb21wYXRpYmxlID0gInN0YXJmaXZl LGpoNzExMC1kd21hYyIsIC5kYXRhID0KPj4+ICZzdGFyZml2ZV9kd21hY19qaDcxMTBfZGF0YSB9 LAo+Pj4gICB7IC8qIHNlbnRpbmVsICovIH0KPj4+IH07Cj4+Pgo+Pj4gYW5kIGluIHRoZSBwcm9i ZSBmdW5jdGlvbjoKPj4+Cj4+IEhpIEVtaWwsIFllc++8jHRoaXMgaXMgdXN1YWxseSBhIGdvb2Qg c29sdXRpb24sIGFuZCBJIGhhdmUgY29uc2lkZXJlZCB0aGlzIHBsYW4gYmVmb3JlLgo+PiBIb3dl dmVyLCBnbWFjMCBvZiBqaDcxMTAgaXMgZGlmZmVyZW50IGZyb20gdGhlIHJlZy9tYXNrIG9mIGdt YWMxLgo+PiBZb3UgY2FuIGZpbmQgaXQgaW4gcGF0Y2gtOToKPj4KPj4gJmdtYWMwIHsKPj4gICAg ICAgICBzdGFyZml2ZSxzeXNjb24gPSA8JmFvbl9zeXNjb24gMHhjIDB4MWMwMDAwPjsKPj4gfTsK Pj4KPj4gJmdtYWMxIHsKPj4gICAgICAgICBzdGFyZml2ZSxzeXNjb24gPSA8JnN5c19zeXNjb24g MHg5MCAweDFjPjsKPj4gfTsKPj4KPj4gSW4gdGhpcyBjYXNlLCB1c2luZyBtYXRjaF9kYXRhIG9m IHN0YXJmaXZlLGpoNzExMC1kd21hIGRvZXMgbm90IHNlZW0gdG8gYmUgY29tcGF0aWJsZS4KPiAK PiBVZ2gsIHlvdSdyZSByaWdodC4gQm90aCB0aGUgc3lzY29uIGJsb2NrLCB0aGUgcmVnaXN0ZXIg b2Zmc2V0IGFuZCB0aGUKPiBiaXQgcG9zaXRpb24gaW4gdGhvc2UgcmVnaXN0ZXJzIGFyZSBkaWZm ZXJlbnQgZnJvbSBnbWFjMCB0byBnbWFjMSwgYW5kCj4gc2luY2Ugd2UgbmVlZCBhIHBoYW5kbGUg dG8gdGhlIHN5c2NvbiBibG9jayBhbnl3YXkgcGFzc2luZyB0aG9zZSB0d28KPiBvdGhlciBwYXJh bWV0ZXJzIGFzIGFyZ3VtZW50cyBpcyBwcm9iYWJseSB0aGUgbmljZXN0IHNvbHV0aW9uLiBGb3Ig dGhlCj4gbmV4dCB2ZXJzaW9uIEknZCBjaGFuZ2UgdGhlIDJuZCBhcmd1bWVudCBmcm9tIG1hc2sg dG8gdGhlIGJpdCBwb3NpdGlvbgo+IHRob3VnaC4gSXQgc2VlbXMgdGhlIGZpZWxkIGlzIGFsd2F5 cyAzIGJpdHMgd2lkZSBhbmQgdGhpcyBtYWtlcyBpdCBhCj4gbGl0dGxlIGNsZWFyZXIgdGhhdCB3 ZSdyZSBub3QganVzdCBwdXR0aW5nIHJlZ2lzdGVyIHZhbHVlcyBpbiB0aGUKPiBkZXZpY2UgdHJl ZS4gRWcuIHNvbWV0aGluZyBsaWtlCj4gClllc++8jHRoZSBmaWVsZCBpcyBhbHdheXMgMyBiaXRz IHdpZGUsIHRoZSBuZXh0IHZlcnNpb24gd2lsbCB1c2UgYml0IHBvc2l0aW9uIGluc3RlYWQgb2Yg bWFzay4KVGhhbmsgeW91IGZvciB5b3VyIGFkdmljZS4KPiByZWdtYXAgPSBzeXNjb25fcmVnbWFw X2xvb2t1cF9ieV9waGFuZGxlX2FyZ3MoZGV2LT5vZl9ub2RlLAo+ICJzdGFyZml2ZSxzeXNjb24i LCAyLCBhcmdzKTsKPiAuLi4KPiBlcnIgPSByZWdtYXBfdXBkYXRlX2JpdHMocmVnbWFwLCBhcmdz WzBdLCA3VSA8PCBhcmdzWzFdLCBtb2RlIDw8IGFyZ3NbMV0pOwo+IC4uLgo+IApJIGFsc28gdGhp bmsgdGhlIGN1cnJlbnQgbWV0aG9kIGlzIHJlbGF0aXZlbHkgc2ltcGxlIGFuZCBjb21wYXRpYmxl LgoKCkJlc3QgcmVnYXJkcywKU2FtaW4KPiBBbHRlcm5hdGl2ZWx5IHdlJ2QgcHV0IGRhdGEgZm9y IGVhY2ggZ21hYyBpbnRlcmZhY2UgaW4gdGhlIHBsYXRmb3JtCj4gZGF0YSBpbmNsdWRpbmcgdGhl IHN5c2NvbiBjb21wYXRpYmxlIHN0cmluZywgYW5kIHVzZQo+IHN5c2Nvbl9yZWdtYXBfbG9va3Vw X2J5X2NvbXBhdGlibGUoInN0YXJmaXZlLGpoNzExMC1hb24tc3lzY29uIik7IGZvcgo+IGdtYWMw IGZ4LiBUaGlzIHdheSB0aGUgZGVwZW5kZW5jeSBmcm9tIHRoZSBnbWFjIG5vZGVzIHRvIHRoZSBz eXNjb24KPiBub2RlcyB3b24ndCBiZSByZWNvcmRlZCBpcyB0aGUgZGV2aWNlIHRyZWUgdGhvdWdo Lgo+IAo+IEBBbmRyZXcgaXMgdGhpcyB3aGF0IHlvdSB3ZXJlIHN1Z2dlc3Rpbmc/Cj4gCgoKPj4+ IHN0cnVjdCBzdGFyZml2ZV9kd21hY19tYXRjaF9kYXRhICpwZGF0YSA9IGRldmljZV9nZXRfbWF0 Y2hfZGF0YSgmcGRldi0+ZGV2KTsKPj4+Cj4+Pj4gKyAgICAgICBpZiAoSVNfRVJSKHJlZ21hcCkp Cj4+Pj4gKyAgICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKHJlZ21hcCk7Cj4+Pj4gKwo+Pj4+ ICsgICAgICAgcmV0dXJuIHJlZ21hcF91cGRhdGVfYml0cyhyZWdtYXAsIHJlZywgbWFzaywgbW9k ZSA8PCBfX2ZmcyhtYXNrKSk7Cj4+Pj4gK30KPj4+PiArCj4+Pj4gIHN0YXRpYyBpbnQgc3RhcmZp dmVfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPj4+PiAgewo+Pj4+ ICAgICAgICAgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdDsKPj4+PiBAQCAt OTMsNiArMTM4LDcgQEAgc3RhdGljIGludCBzdGFyZml2ZV9kd21hY19wcm9iZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQo+Pj4+ICAgICAgICAgcGxhdF9kYXQtPmJzcF9wcml2ID0gZHdt YWM7Cj4+Pj4gICAgICAgICBwbGF0X2RhdC0+ZG1hX2NmZy0+ZGNoZSA9IHRydWU7Cj4+Pj4KPj4+ PiArICAgICAgIHN0YXJmaXZlX2R3bWFjX3NldF9tb2RlKHBsYXRfZGF0KTsKPj4+Cj4+PiBUaGUg ZnVuY3Rpb24gcmV0dXJucyBlcnJvcnMgaW4gYW4gaW50LCBidXQgeW91IG5ldmVyIGNoZWNrIGl0 IDooCj4+Pgo+PiBUaGFuayB5b3UgZm9yIHBvaW50aW5nIG91dCB0aGF0IGl0IHdpbGwgYmUgYWRk ZWQgaW4gdGhlIG5leHQgdmVyc2lvbi4KPj4+PiAgICAgICAgIGVyciA9IHN0bW1hY19kdnJfcHJv YmUoJnBkZXYtPmRldiwgcGxhdF9kYXQsICZzdG1tYWNfcmVzKTsKPj4+PiAgICAgICAgIGlmIChl cnIpIHsKPj4+PiAgICAgICAgICAgICAgICAgc3RtbWFjX3JlbW92ZV9jb25maWdfZHQocGRldiwg cGxhdF9kYXQpOwo+Pgo+Pgo+PiBCZXN0IHJlZ2FyZHMsCj4+IFNhbWluCj4+Cj4+Pj4gLS0KPj4+ PiAyLjE3LjEKPj4+Pgo+Pj4+Cj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KPj4+PiBsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKPj4+PiBsaW51eC1y aXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCj4+Pj4gaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo+Pgo+PiAtLQo+PiBCZXN0IHJlZ2FyZHMsCj4+ IFNhbWluCgotLSAKQmVzdCByZWdhcmRzLApTYW1pbgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJp c2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1h bi9saXN0aW5mby9saW51eC1yaXNjdgo=