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 9FF64C433F5 for ; Tue, 4 Jan 2022 18:38:31 +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:References:In-Reply-To: Message-ID:Subject:Cc: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=csxdVTqyykQYBmYZenT+O/ITyU78Txn8+qgqkWMGupo=; b=Cn+Lkoi6VY4YjP NAkrd6K6nZiEquF5RDZ2j5QyuqnvIyAlubrlv7rdUhpZmr9A38kjeNctXbCIftUV+WYu/TrfKo7FE VOESTwHT2nE+yAeWVQ2P0jFfs63ZQTh9+Yek9/liNiOJE1jC2KP7zBTibx4/M4s+JyjU8aIoxfTh1 CM0YlH09DIxQ6ir5atoxcxxjmRm0IbgSy9sIlBrFa4IQTwdGYcWWuSK2hOTvYBZxkUp+m9o6MIVYu G7jDp5MeMuiM8kfH0tWLCP9Ip4fDJ2JnED3HEQAQY0lKAMS0jq9RUTu/mlwPRZlzHEt2XS1gs17RF GxRlNe5DK+Gyj+NmFR6Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n4ogu-00CWqL-8q; Tue, 04 Jan 2022 18:37:48 +0000 Received: from relay3-d.mail.gandi.net ([217.70.183.195]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n4ogp-00CWos-W6 for linux-mtd@lists.infradead.org; Tue, 04 Jan 2022 18:37:46 +0000 Received: (Authenticated sender: miquel.raynal@bootlin.com) by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 5BA126000B; Tue, 4 Jan 2022 18:37:37 +0000 (UTC) Date: Tue, 4 Jan 2022 19:37:36 +0100 From: Miquel Raynal To: Florian Fainelli Cc: linux-mtd@lists.infradead.org, =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= , Richard Weinberger , Vignesh Raghavendra , Brian Norris , Kamal Dasu , Arnd Bergmann , Cai Huoqing , Colin Ian King , open list , "open list:BROADCOM SPECIFIC AMBA DRIVER (BCMA)" , "open list:BROADCOM STB NAND FLASH DRIVER" Subject: Re: [PATCH 1/9] mtd: rawnand: brcmnand: Allow SoC to provide I/O operations Message-ID: <20220104193736.7eb6a445@xps13> In-Reply-To: <9e4c0120-e088-fca0-0194-c45fcf9181cb@gmail.com> References: <20211223002225.3738385-1-f.fainelli@gmail.com> <20211223002225.3738385-2-f.fainelli@gmail.com> <20220103174953.40d7fa52@xps13> <299bf6ed-80e6-ad15-8dc7-5ededaca15c5@gmail.com> <20220104093221.6414aab9@xps13> <20220104095755.46858287@xps13> <9e4c0120-e088-fca0-0194-c45fcf9181cb@gmail.com> Organization: Bootlin X-Mailer: Claws Mail 3.17.7 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220104_103744_341493_E05C17DA X-CRM114-Status: GOOD ( 31.86 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org SGkgRmxvcmlhbiwKCmYuZmFpbmVsbGlAZ21haWwuY29tIHdyb3RlIG9uIFR1ZSwgNCBKYW4gMjAy MiAxMDozNDozNSAtMDgwMDoKCj4gT24gMS80LzIyIDEyOjU3IEFNLCBNaXF1ZWwgUmF5bmFsIHdy b3RlOgo+ID4gSGkgTWlxdWVsLAo+ID4gCj4gPiBtaXF1ZWwucmF5bmFsQGJvb3RsaW4uY29tIHdy b3RlIG9uIFR1ZSwgNCBKYW4gMjAyMiAwOTozMjoyMSArMDEwMDoKPiA+ICAgCj4gPj4gSGkgRmxv cmlhbiwKPiA+Pgo+ID4+IGYuZmFpbmVsbGlAZ21haWwuY29tIHdyb3RlIG9uIE1vbiwgMyBKYW4g MjAyMiAwOToyNDoyNiAtMDgwMDoKPiA+PiAgCj4gPj4+IE9uIDEvMy8yMDIyIDg6NDkgQU0sIE1p cXVlbCBSYXluYWwgd3JvdGU6ICAgIAo+ID4+Pj4gSGkgRmxvcmlhbiwKPiA+Pj4+Cj4gPj4+PiBm LmZhaW5lbGxpQGdtYWlsLmNvbSB3cm90ZSBvbiBXZWQsIDIyIERlYyAyMDIxIDE2OjIyOjE3IC0w ODAwOgo+ID4+Pj4gICAgICAgCj4gPj4+Pj4gQWxsb3cgYSBicmNtbmFuZF9zb2MgaW5zdGFuY2Ug dG8gcHJvdmlkZSBhIGN1c3RvbSBzZXQgb2YgSS9PIG9wZXJhdGlvbnMKPiA+Pj4+PiB3aGljaCB3 ZSB3aWxsIHJlcXVpcmUgd2hlbiB1c2luZyB0aGlzIGRyaXZlciBvbiBhIEJDTUEgYnVzIHdoaWNo IGlzIG5vdAo+ID4+Pj4+IGRpcmVjdGx5IG1lbW9yeSBtYXBwZWQgSS9PLiBVcGRhdGUgdGhlIG5h bmRfe3JlYWQsd3JpdGV9X3JlZyBhY2NvcmRpbmdseQo+ID4+Pj4+IHRvIHVzZSB0aGUgU29DIG9w ZXJhdGlvbnMgaWYgcHJvdmlkZWQuCj4gPj4+Pj4KPiA+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBGbG9y aWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KPiA+Pj4+PiAtLS0KPiA+Pj4+PiAg IGRyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmMgfCAxNCArKysrKysrKysr KystLQo+ID4+Pj4+ICAgZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuaCB8 IDIzICsrKysrKysrKysrKysrKysrKysrKysrCj4gPj4+Pj4gICAyIGZpbGVzIGNoYW5nZWQsIDM1 IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4gPj4+Pj4KPiA+Pj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuYyBiL2RyaXZlcnMvbXRk L25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmMKPiA+Pj4+PiBpbmRleCBmNzU5Mjk3ODNiOTQu LjdhMTY3M2IxYjFhZiAxMDA2NDQKPiA+Pj4+PiAtLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9i cmNtbmFuZC9icmNtbmFuZC5jCj4gPj4+Pj4gKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJj bW5hbmQvYnJjbW5hbmQuYwo+ID4+Pj4+IEBAIC01OTQsMTMgKzU5NCwxOCBAQCBlbnVtIHsgICAg ICAKPiA+Pj4+PiAgID4+ICAgc3RhdGljIGlubGluZSB1MzIgbmFuZF9yZWFkcmVnKHN0cnVjdCBi cmNtbmFuZF9jb250cm9sbGVyICpjdHJsLCB1MzIgb2ZmcykgICAgICAKPiA+Pj4+PiAgIHsKPiA+ Pj4+PiArCWlmIChicmNtbmFuZF9zb2NfaGFzX29wcyhjdHJsLT5zb2MpKQo+ID4+Pj4+ICsJCXJl dHVybiBicmNtbmFuZF9zb2NfcmVhZChjdHJsLT5zb2MsIG9mZnMpOwo+ID4+Pj4+ICAgCXJldHVy biBicmNtbmFuZF9yZWFkbChjdHJsLT5uYW5kX2Jhc2UgKyBvZmZzKTsKPiA+Pj4+PiAgIH0gICAg ICAKPiA+Pj4+PiAgID4+ICAgc3RhdGljIGlubGluZSB2b2lkIG5hbmRfd3JpdGVyZWcoc3RydWN0 IGJyY21uYW5kX2NvbnRyb2xsZXIgKmN0cmwsIHUzMiBvZmZzLCAgICAgIAo+ID4+Pj4+ICAgCQkJ CSB1MzIgdmFsKQo+ID4+Pj4+ICAgewo+ID4+Pj4+IC0JYnJjbW5hbmRfd3JpdGVsKHZhbCwgY3Ry bC0+bmFuZF9iYXNlICsgb2Zmcyk7Cj4gPj4+Pj4gKwlpZiAoYnJjbW5hbmRfc29jX2hhc19vcHMo Y3RybC0+c29jKSkKPiA+Pj4+PiArCQlicmNtbmFuZF9zb2Nfd3JpdGUoY3RybC0+c29jLCB2YWws IG9mZnMpOwo+ID4+Pj4+ICsJZWxzZQo+ID4+Pj4+ICsJCWJyY21uYW5kX3dyaXRlbCh2YWwsIGN0 cmwtPm5hbmRfYmFzZSArIG9mZnMpOwo+ID4+Pj4+ICAgfSAgICAgIAo+ID4+Pj4+ICAgPj4gICBz dGF0aWMgaW50IGJyY21uYW5kX3JldmlzaW9uX2luaXQoc3RydWN0IGJyY21uYW5kX2NvbnRyb2xs ZXIgKmN0cmwpICAgICAgCj4gPj4+Pj4gQEAgLTc2NiwxMyArNzcxLDE4IEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBicmNtbmFuZF9ybXdfcmVnKHN0cnVjdCBicmNtbmFuZF9jb250cm9sbGVyICpjdHJs LCAgICAgIAo+ID4+Pj4+ICAgPj4gICBzdGF0aWMgaW5saW5lIHUzMiBicmNtbmFuZF9yZWFkX2Zj KHN0cnVjdCBicmNtbmFuZF9jb250cm9sbGVyICpjdHJsLCBpbnQgd29yZCkgICAgICAKPiA+Pj4+ PiAgIHsKPiA+Pj4+PiArCWlmIChicmNtbmFuZF9zb2NfaGFzX29wcyhjdHJsLT5zb2MpKQo+ID4+ Pj4+ICsJCXJldHVybiBicmNtbmFuZF9zb2NfcmVhZChjdHJsLT5zb2MsIH4wKTsKPiA+Pj4+PiAg IAlyZXR1cm4gX19yYXdfcmVhZGwoY3RybC0+bmFuZF9mYyArIHdvcmQgKiA0KTsKPiA+Pj4+PiAg IH0gICAgICAKPiA+Pj4+PiAgID4+ICAgc3RhdGljIGlubGluZSB2b2lkIGJyY21uYW5kX3dyaXRl X2ZjKHN0cnVjdCBicmNtbmFuZF9jb250cm9sbGVyICpjdHJsLCAgICAgIAo+ID4+Pj4+ICAgCQkJ CSAgICAgaW50IHdvcmQsIHUzMiB2YWwpCj4gPj4+Pj4gICB7Cj4gPj4+Pj4gLQlfX3Jhd193cml0 ZWwodmFsLCBjdHJsLT5uYW5kX2ZjICsgd29yZCAqIDQpOwo+ID4+Pj4+ICsJaWYgKGJyY21uYW5k X3NvY19oYXNfb3BzKGN0cmwtPnNvYykpCj4gPj4+Pj4gKwkJYnJjbW5hbmRfc29jX3dyaXRlKGN0 cmwtPnNvYywgdmFsLCB+MCk7Cj4gPj4+Pj4gKwllbHNlCj4gPj4+Pj4gKwkJX19yYXdfd3JpdGVs KHZhbCwgY3RybC0+bmFuZF9mYyArIHdvcmQgKiA0KTsKPiA+Pj4+PiAgIH0gICAgICAKPiA+Pj4+ PiAgID4+ICAgc3RhdGljIGlubGluZSB2b2lkIGVkdV93cml0ZWwoc3RydWN0IGJyY21uYW5kX2Nv bnRyb2xsZXIgKmN0cmwsICAgICAgCj4gPj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25h bmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmggYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9icmNtbmFu ZC9icmNtbmFuZC5oCj4gPj4+Pj4gaW5kZXggZWI0OThmYmU1MDVlLi5hM2YyYWQ1ZjY1NzIgMTAw NjQ0Cj4gPj4+Pj4gLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQu aAo+ID4+Pj4+ICsrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmgK PiA+Pj4+PiBAQCAtMTEsMTIgKzExLDE5IEBAICAgICAgCj4gPj4+Pj4gICA+PiAgIHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2U7ICAgICAgCj4gPj4+Pj4gICBzdHJ1Y3QgZGV2X3BtX29wczsKPiA+Pj4+ PiArc3RydWN0IGJyY21uYW5kX2lvX29wczsgICAgICAKPiA+Pj4+PiAgID4+ICAgc3RydWN0IGJy Y21uYW5kX3NvYyB7ICAgICAgCj4gPj4+Pj4gICAJYm9vbCAoKmN0bHJkeV9hY2spKHN0cnVjdCBi cmNtbmFuZF9zb2MgKnNvYyk7Cj4gPj4+Pj4gICAJdm9pZCAoKmN0bHJkeV9zZXRfZW5hYmxlZCko c3RydWN0IGJyY21uYW5kX3NvYyAqc29jLCBib29sIGVuKTsKPiA+Pj4+PiAgIAl2b2lkICgqcHJl cGFyZV9kYXRhX2J1cykoc3RydWN0IGJyY21uYW5kX3NvYyAqc29jLCBib29sIHByZXBhcmUsCj4g Pj4+Pj4gICAJCQkJIGJvb2wgaXNfcGFyYW0pOwo+ID4+Pj4+ICsJY29uc3Qgc3RydWN0IGJyY21u YW5kX2lvX29wcyAqb3BzOwo+ID4+Pj4+ICt9Owo+ID4+Pj4+ICsKPiA+Pj4+PiArc3RydWN0IGJy Y21uYW5kX2lvX29wcyB7Cj4gPj4+Pj4gKwl1MzIgKCpyZWFkX3JlZykoc3RydWN0IGJyY21uYW5k X3NvYyAqc29jLCB1MzIgb2Zmc2V0KTsKPiA+Pj4+PiArCXZvaWQgKCp3cml0ZV9yZWcpKHN0cnVj dCBicmNtbmFuZF9zb2MgKnNvYywgdTMyIHZhbCwgdTMyIG9mZnNldCk7Cj4gPj4+Pj4gICB9OyAg ICAgIAo+ID4+Pj4+ICAgPj4gICBzdGF0aWMgaW5saW5lIHZvaWQgYnJjbW5hbmRfc29jX2RhdGFf YnVzX3ByZXBhcmUoc3RydWN0IGJyY21uYW5kX3NvYyAqc29jLCAgICAgIAo+ID4+Pj4+IEBAIC01 OCw2ICs2NSwyMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYnJjbW5hbmRfd3JpdGVsKHUzMiB2YWws IHZvaWQgX19pb21lbSAqYWRkcikKPiA+Pj4+PiAgIAkJd3JpdGVsX3JlbGF4ZWQodmFsLCBhZGRy KTsKPiA+Pj4+PiAgIH0gICAgICAKPiA+Pj4+PiAgID4+ICtzdGF0aWMgaW5saW5lIGJvb2wgYnJj bW5hbmRfc29jX2hhc19vcHMoc3RydWN0IGJyY21uYW5kX3NvYyAqc29jKSAgICAgIAo+ID4+Pj4+ ICt7Cj4gPj4+Pj4gKwlyZXR1cm4gc29jICYmIHNvYy0+b3BzICYmIHNvYy0+b3BzLT5yZWFkX3Jl ZyAmJiBzb2MtPm9wcy0+d3JpdGVfcmVnOwo+ID4+Pj4+ICt9Cj4gPj4+Pj4gKwo+ID4+Pj4+ICtz dGF0aWMgaW5saW5lIHUzMiBicmNtbmFuZF9zb2NfcmVhZChzdHJ1Y3QgYnJjbW5hbmRfc29jICpz b2MsIHUzMiBvZmZzZXQpCj4gPj4+Pj4gK3sKPiA+Pj4+PiArCXJldHVybiBzb2MtPm9wcy0+cmVh ZF9yZWcoc29jLCBvZmZzZXQpOwo+ID4+Pj4+ICt9Cj4gPj4+Pj4gKwo+ID4+Pj4+ICtzdGF0aWMg aW5saW5lIHZvaWQgYnJjbW5hbmRfc29jX3dyaXRlKHN0cnVjdCBicmNtbmFuZF9zb2MgKnNvYywg dTMyIHZhbCwKPiA+Pj4+PiArCQkJCSAgICAgIHUzMiBvZmZzZXQpCj4gPj4+Pj4gK3sKPiA+Pj4+ PiArCXNvYy0+b3BzLT53cml0ZV9yZWcoc29jLCB2YWwsIG9mZnNldCk7Cj4gPj4+Pj4gK30KPiA+ Pj4+PiArICAgICAgCj4gPj4+Pgo+ID4+Pj4gSXQgbWlnaHQgYmUgd29ydGggbG9va2luZyBpbnRv IG1vcmUgb3B0aW1pemVkIHdheXMgdG8gZG8gdGhlc2UgY2hlY2tzLAo+ID4+Pj4gaW4gcGFydGlj dWxhciB0aGUgcmVhZC93cml0ZV9yZWcgb25lcyBiZWNhdXNlIHlvdSdyZSBjaGVja2luZyBhZ2Fp bnN0Cj4gPj4+PiBzb21lIHN0YXRpYyBkYXRhIHdoaWNoIGNhbm5vdCBiZSBvcHRpbWl6ZWQgb3V0 IGJ5IHRoZSBjb21waWxlciBidXQKPiA+Pj4+IHdvbid0IGNoYW5nZSBpbiB0aGUgbGlmZXRpbWUg b2YgdGhlIGtlcm5lbC4gICAgICAKPiA+Pj4KPiA+Pj4gSSBzdXBwb3NlIEkgY291bGQgYWRkIGFu IGFkZGl0aW9uIGlmIElTX0VOQUJMRUQoQ09ORklHX01URF9OQU5EX0JSQ01OQU5EX0JDTUEpIGF0 IHRoZSBmcm9udCBvZiBicmNtbmFuZF9zb2NfaGFzX29wcygpLCB3b3VsZCB0aGF0IGFkZHJlc3Mg eW91ciBjb25jZXJuIG9yIHlvdSBoYXZlIHNvbWV0aGluZyBlbHNlIGluIG1pbmQ/ICAgIAo+ID4+ Cj4gPj4gSSBkb24ndCBsaWtlIG11Y2ggdGhlICNpZmRlZiBzb2x1dGlvbiwgaW5zdGVhZCB5b3Ug bWlnaHQgdGhpbmsgb2YKPiA+PiBzdGF0aWMga2V5cywgb3IgZXZlbiBiZXR0ZXIgdXNpbmcgYSBy ZWdtYXAuIFJlZ21hcCBpbXBsZW1lbnRhdGlvbiBpcwo+ID4+IGZyZWUsIHlvdSBjYW4gdXNlIGVp dGhlciBvbmUgd2F5IG9yIHRoZSBvdGhlciBhbmQgZm9yIGFsbW9zdCBubwo+ID4+IG92ZXJoZWFk IGNvbXBhcmVkIHRvIHRoZSBidW5jaCBvZiBmdW5jdGlvbnMgeW91IGhhdmUgaGVyZS4gIAo+ID4g Cj4gPiBNYXliZSByZWdtYXBzIHdpbGwgYWN0dWFsbHkgYmUgc2xvd2VyIHRoYW4gdGhlc2UgcmVn dWxhciBpZidzLiBQZXJoYXBzCj4gPiBzdGF0aWMga2V5cyBhcmUgdGhlIGJlc3Qgb3B0aW9uPyAg Cj4gCj4gT0sgc3RhdGljIGtleXMgd291bGQgcHJvYmFibHkgd29yay4gSSBhbSBub3Qgc3VyZSB0 aGF0IHRoZSBhZGRpdGlvbmFsCj4gYnJhbmNoZXMgZm9yIGVhY2ggcmVnaXN0ZXIgYWNjZXNzIHdv dWxkIGFjdHVhbGx5IGJlIGNhdXNpbmcgYSBub3RpY2VhYmxlCj4gcGVyZm9ybWFuY2UgaW1wYWN0 LiBQcmV0dHkgbXVjaCBhbnkgY2hpcCB3aGVyZSB0aGlzIGNvbnRyb2xsZXIgaXMgdXNlZAo+IGhh cyBhIERNQSBpbnRlcmZhY2UgdGhhdCB5b3UgcHJvZ3JhbSBhbmQga2ljaywgdGhlIFBJTyBpcyBh bHJlYWR5Cj4gYXNzdW1lZCB0byBiZSBzbG93LCBhbmQgZWFjaCByZWdpc3RlciBhY2Nlc3MgaXMg YWJvdXQgMjAwbnMgb24gU1RCIGNoaXBzCj4gYXQgbGVhc3QuCgpJIHNlZS4gSSdsbCBsZXQgeW91 IGRlY2lkZSB3aGF0IHlvdSBwcmVmZXIsIEkgd29uJ3QgYmxvY2sgaWYgeW91IHN0aWNrCnRvIHRo ZSByZWd1bGFyIGlmL2Vsc2UgaW1wbGVtZW50YXRpb24uCgpUaGFua3MsCk1pcXXDqGwKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eCBN VEQgZGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1tdGQvCg==