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=-16.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 167F7C64E90 for ; Tue, 1 Dec 2020 02:32:14 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 90F3220809 for ; Tue, 1 Dec 2020 02:32:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="1M5PVhwi" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 90F3220809 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=huawei.com 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=merlin.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=9O+oFtmnMOX/mqcXLhTLfwdLkjSAs7GPQmUxATDY6Ko=; b=1M5PVhwikzvEdtgik9fG7u/Sm IOtHIfmv3cBGqOuzKdiAFpMHD6XKl2gQbBtvolTrlo34QwWyPelToCrTBWw19T+3bF0Nw5gSNgOUT 3InqiWGRgTjHn37w+GQCETsWwnuX80FY/zh33lUrHL1lHW+HHLD27x2owVZSRiji0NmNnekMy2twq A7VaeAE956qHB0aIJi+tXeAqYWI9mIJFn/V0nWylGcXdcmvp3ZmRPQRuN8ro426n7rGEka3kUBAdy qfaVLMQFSS5B3z82Y66kRVZFH3wHGFpyby6lFn9HHHL2otqBrweZndzVsTBlcesKhawikHcLUdZpr JDA4MBCkg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kjvRS-0008Bb-1d; Tue, 01 Dec 2020 02:30:58 +0000 Received: from szxga02-in.huawei.com ([45.249.212.188]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kjvRO-00089Z-89 for linux-arm-kernel@lists.infradead.org; Tue, 01 Dec 2020 02:30:55 +0000 Received: from dggeme715-chm.china.huawei.com (unknown [172.30.72.57]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4ClR0872RLz4yWX; Tue, 1 Dec 2020 10:30:16 +0800 (CST) Received: from [10.174.186.123] (10.174.186.123) by dggeme715-chm.china.huawei.com (10.1.199.111) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1913.5; Tue, 1 Dec 2020 10:30:41 +0800 Subject: Re: [RFC PATCH 2/3] KVM: arm64: Fix handling of merging tables into a block entry To: Will Deacon References: <20201130121847.91808-1-wangyanan55@huawei.com> <20201130121847.91808-3-wangyanan55@huawei.com> <20201130133421.GB24837@willie-the-truck> <67e9e393-1836-eca7-4235-6f4a19fed652@huawei.com> <20201130160119.GA25051@willie-the-truck> From: "wangyanan (Y)" Message-ID: <868a4403-10d3-80f3-4ae1-a490813c55e2@huawei.com> Date: Tue, 1 Dec 2020 10:30:41 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <20201130160119.GA25051@willie-the-truck> Content-Language: en-US X-Originating-IP: [10.174.186.123] X-ClientProxiedBy: dggeme704-chm.china.huawei.com (10.1.199.100) To dggeme715-chm.china.huawei.com (10.1.199.111) X-CFilter-Loop: Reflected X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201130_213054_783796_25DAEE62 X-CRM114-Status: GOOD ( 32.85 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: jiangkunkun@huawei.com, Gavin Shan , Suzuki K Poulose , Marc Zyngier , wangjingyi11@huawei.com, Quentin Perret , lushenming@huawei.com, linux-kernel@vger.kernel.org, yezengruan@huawei.com, James Morse , linux-arm-kernel@lists.infradead.org, Catalin Marinas , yuzenghui@huawei.com, wanghaibin.wang@huawei.com, zhukeqian1@huawei.com, Julien Thierry Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgV2lsbCwKCk9uIDIwMjAvMTIvMSAwOjAxLCBXaWxsIERlYWNvbiB3cm90ZToKPiBIaSwKPgo+ IENoZWVycyBmb3IgdGhlIHF1aWNrIHJlcGx5LiBTZWUgYmVsb3cgZm9yIG1vcmUgcXVlc3Rpb25z Li4uCj4KPiBPbiBNb24sIE5vdiAzMCwgMjAyMCBhdCAxMToyNDoxOVBNICswODAwLCB3YW5neWFu YW4gKFkpIHdyb3RlOgo+PiBPbiAyMDIwLzExLzMwIDIxOjM0LCBXaWxsIERlYWNvbiB3cm90ZToK Pj4+IE9uIE1vbiwgTm92IDMwLCAyMDIwIGF0IDA4OjE4OjQ2UE0gKzA4MDAsIFlhbmFuIFdhbmcg d3JvdGU6Cj4+Pj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva3ZtL2h5cC9wZ3RhYmxlLmMgYi9h cmNoL2FybTY0L2t2bS9oeXAvcGd0YWJsZS5jCj4+Pj4gaW5kZXggNjk2YjZhYTgzZmFmLi5mZWM4 ZGM5ZjJiYWEgMTAwNjQ0Cj4+Pj4gLS0tIGEvYXJjaC9hcm02NC9rdm0vaHlwL3BndGFibGUuYwo+ Pj4+ICsrKyBiL2FyY2gvYXJtNjQva3ZtL2h5cC9wZ3RhYmxlLmMKPj4+PiBAQCAtNTAwLDYgKzUw MCw5IEBAIHN0YXRpYyBpbnQgc3RhZ2UyX21hcF93YWxrX3RhYmxlX3ByZSh1NjQgYWRkciwgdTY0 IGVuZCwgdTMyIGxldmVsLAo+Pj4+ICAgIAlyZXR1cm4gMDsKPj4+PiAgICB9Cj4+Pj4gK3N0YXRp YyB2b2lkIHN0YWdlMl9mbHVzaF9kY2FjaGUodm9pZCAqYWRkciwgdTY0IHNpemUpOwo+Pj4+ICtz dGF0aWMgYm9vbCBzdGFnZTJfcHRlX2NhY2hlYWJsZShrdm1fcHRlX3QgcHRlKTsKPj4+PiArCj4+ Pj4gICAgc3RhdGljIGludCBzdGFnZTJfbWFwX3dhbGtfbGVhZih1NjQgYWRkciwgdTY0IGVuZCwg dTMyIGxldmVsLCBrdm1fcHRlX3QgKnB0ZXAsCj4+Pj4gICAgCQkJCXN0cnVjdCBzdGFnZTJfbWFw X2RhdGEgKmRhdGEpCj4+Pj4gICAgewo+Pj4+IEBAIC01MDcsOSArNTEwLDE3IEBAIHN0YXRpYyBp bnQgc3RhZ2UyX21hcF93YWxrX2xlYWYodTY0IGFkZHIsIHU2NCBlbmQsIHUzMiBsZXZlbCwga3Zt X3B0ZV90ICpwdGVwLAo+Pj4+ICAgIAlzdHJ1Y3QgcGFnZSAqcGFnZSA9IHZpcnRfdG9fcGFnZShw dGVwKTsKPj4+PiAgICAJaWYgKGRhdGEtPmFuY2hvcikgewo+Pj4+IC0JCWlmIChrdm1fcHRlX3Zh bGlkKHB0ZSkpCj4+Pj4gKwkJaWYgKGt2bV9wdGVfdmFsaWQocHRlKSkgewo+Pj4+ICsJCQlrdm1f c2V0X2ludmFsaWRfcHRlKHB0ZXApOwo+Pj4+ICsJCQlrdm1fY2FsbF9oeXAoX19rdm1fdGxiX2Zs dXNoX3ZtaWRfaXBhLCBkYXRhLT5tbXUsCj4+Pj4gKwkJCQkgICAgIGFkZHIsIGxldmVsKTsKPj4+ PiAgICAJCQlwdXRfcGFnZShwYWdlKTsKPj4+IFRoaXMgZG9lc24ndCBtYWtlIHNlbnNlIHRvIG1l OiB0aGUgcGFnZS10YWJsZSBwYWdlcyB3ZSdyZSB3YWxraW5nIHdoZW4gdGhlCj4+PiBhbmNob3Ig aXMgc2V0IGFyZSBub3QgYWNjZXNzaWJsZSB0byB0aGUgaGFyZHdhcmUgd2Fsa2VyIGJlY2F1c2Ug d2UgdW5ob29rZWQKPj4+IHRoZSBlbnRpcmUgc3ViLXRhYmxlIGluIHN0YWdlMl9tYXBfd2Fsa190 YWJsZV9wcmUoKSwgd2hpY2ggaGFzIHRoZSBuZWNlc3NhcnkKPj4+IFRMQiBpbnZhbGlkYXRpb24u Cj4+Pgo+Pj4gQXJlIHlvdSBzZWVpbmcgYSBwcm9ibGVtIGluIHByYWN0aWNlIGhlcmU/Cj4+IFll cywgSSBpbmRlZWQgZmluZCBhIHByb2JsZW0gaW4gcHJhY3RpY2UuCj4+Cj4+IFdoZW4gdGhlIG1p Z3JhdGlvbiB3YXMgY2FuY2VsbGVkLCBhIFRMQiBjb25mbGljIGFib3J0wqAgd2FzIGZvdW5kIGlu IGd1ZXN0Lgo+Pgo+PiBUaGlzIHByb2JsZW0gaXMgZml4ZWQgYmVmb3JlIHJld29yayBvZiB0aGUg cGFnZSB0YWJsZSBjb2RlLCB5b3UgY2FuIGhhdmUgYQo+PiBsb29rIGluIHRoZSBmb2xsb3dpbmcg dHdvIGxpbmtzOgo+Pgo+PiBodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2Vy bmVsL2dpdC90b3J2YWxkcy9saW51eC5naXQvY29tbWl0Lz9pZD0zYzM3MzZjZDMyYmY1MTk3YWVk MTQxMGFlODI2ZDJkMjU0YTViMjc3Cj4+Cj4+IGh0dHBzOi8vbGlzdHMuY3MuY29sdW1iaWEuZWR1 L3BpcGVybWFpbC9rdm1hcm0vMjAxOS1NYXJjaC8wMzUwMzEuaHRtbAo+IE9rLCBsZXQncyBnbyB0 aHJvdWdoIHRoaXMsIGJlY2F1c2UgSSBzdGlsbCBkb24ndCBzZWUgdGhlIGJ1Zy4gUGxlYXNlIGNv cnJlY3QKPiBtZSBpZiB5b3Ugc3BvdCBhbnkgbWlzdGFrZXM6Cj4KPiAgICAxLiBXZSBoYXZlIGEg YmxvY2sgbWFwcGluZyBmb3IgWCA9PiBZCj4gICAgMi4gRGlydHkgbG9nZ2luZyBpcyBlbmFibGVk LCBzbyB0aGUgYmxvY2sgbWFwcGluZyBpcyB3cml0ZS1wcm90ZWN0ZWQgYW5kCj4gICAgICAgZW5k cyB1cCBiZWluZyBzcGxpdCBpbnRvIHBhZ2UgbWFwcGluZ3MKPiAgICAzLiBEaXJ0eSBsb2dnaW5n IGlzIGRpc2FibGVkIGR1ZSB0byBhIGZhaWxlZCBtaWdyYXRpb24uCj4KPiAtLS0gQXQgdGhpcyBw b2ludCwgSSB0aGluayB3ZSBhZ3JlZSB0aGF0IHRoZSBzdGF0ZSBvZiB0aGUgTU1VIGlzIGFscmln aHQgLS0tCj4KPiAgICA0LiBXZSB0YWtlIGEgc3RhZ2UtMiBmYXVsdCBhbmQgd2FudCB0byByZWlu c3RhbGwgdGhlIGJsb2NrIG1hcHBpbmc6Cj4KPiAgICAgICBhLiBrdm1fcGd0YWJsZV9zdGFnZTJf bWFwKCkgaXMgaW52b2tlZCB0byBpbnN0YWxsIHRoZSBibG9jayBtYXBwaW5nCj4gICAgICAgYi4g c3RhZ2UyX21hcF93YWxrX3RhYmxlX3ByZSgpIGZpbmRzIGEgdGFibGUgd2hlcmUgd2Ugd291bGQg bGlrZSB0bwo+ICAgICAgICAgIGluc3RhbGwgdGhlIGJsb2NrOgo+Cj4gCWkuICAgVGhlIGFuY2hv ciBpcyBzZXQgdG8gcG9pbnQgYXQgdGhpcyBlbnRyeQo+IAlpaS4gIFRoZSBlbnRyeSBpcyBtYWRl IGludmFsaWQKPiAJaWlpLiBXZSBpbnZhbGlkYXRlIHRoZSBUTEIgZm9yIHRoZSBpbnB1dCBhZGRy ZXNzLiBUaGlzIGlzCj4gCSAgICAgVExCSSBJUEFTMlNFMUlTIHdpdGhvdXQgbGV2ZWwgaGludCBh bmQgdGhlbiBUTEJJIFZNQUxMRTFJUy4KPgo+IAkqKiogQXQgdGhpcyBwb2ludCwgdGhlIHBhZ2Ut dGFibGUgcG9pbnRlZCB0byBieSB0aGUgb2xkIHRhYmxlIGVudHJ5Cj4gCSAgICBpcyBub3QgcmVh Y2hhYmxlIHRvIHRoZSBoYXJkd2FyZSB3YWxrZXIgKioqCj4KPiAgICAgICBjLiBzdGFnZTJfbWFw X3dhbGtfbGVhZigpIGlzIGNhbGxlZCBmb3IgZWFjaCBsZWFmIGVudHJ5IGluIHRoZQo+ICAgICAg ICAgIG5vdy11bnJlYWNoYWJsZSBzdWJ0cmVlLCBkcm9wcGluZyBwYWdlLXJlZmVyZW5jZXMgZm9y IGVhY2ggdmFsaWQKPiAJZW50cnkgaXQgZmluZHMuCj4gICAgICAgZC4gc3RhZ2UyX21hcF93YWxr X3RhYmxlX3Bvc3QoKSBpcyBldmVudHVhbGx5IGNhbGxlZCBmb3IgdGhlIGVudHJ5Cj4gICAgICAg ICAgd2hpY2ggd2UgY2xlYXJlZCBiYWNrIGluIGIuaWksIHNvIHdlIGluc3RhbGwgdGhlIG5ldyBi bG9jayBtYXBwaW5nLgo+Cj4gWW91IGFyZSBwcm9wb3NpbmcgdG8gYWRkIGFkZGl0aW9uYWwgVExC IGludmFsaWRhdGlvbiB0byAoYyksIGJ1dCBJIGRvbid0Cj4gdGhpbmsgdGhhdCBpcyBuZWNlc3Nh cnksIHRoYW5rcyB0byB0aGUgaW52YWxpZGF0aW9uIGFscmVhZHkgcGVyZm9ybWVkIGluCj4gYi5p aWkuIFdoYXQgYW0gSSBtaXNzaW5nIGhlcmU/CgpUaGUgcG9pbnQgaXMgYXQgYi5paWkgd2hlcmUg dGhlIFRMQkkgaXMgbm90IGVub3VnaC4gVGhlcmUgYXJlIG1hbnkgcGFnZSAKbWFwcGluZ3MgdGhh dCB3ZSBuZWVkIHRvIG1lcmdlIGludG8gYSBibG9jayBtYXBwaW5nLgoKV2UgaW52YWxpZGF0ZSB0 aGUgVExCIGZvciB0aGUgaW5wdXQgYWRkcmVzcyB3aXRob3V0IGxldmVsIGhpbnQgYXQgYi5paWks IApidXQgdGhpcyBvcGVyYXRpb24ganVzdCBmbHVzaCBUTEIgZm9yIG9uZSBwYWdlIG1hcHBpbmcs IHRoZXJlCgphcmUgc3RpbGwgc29tZSBUTEIgZW50cmllcyBmb3IgdGhlIG90aGVyIHBhZ2UgbWFw cGluZ3MgaW4gdGhlIGNhY2hlLCB0aGUgCk1NVSBoYXJkd2FyZSB3YWxrZXIgY2FuIHN0aWxsIGhp dCB0aGVzZSBlbnRyaWVzIG5leHQgdGltZS4KCgpNYXliZSB3ZSBjYW4gaW1hZ2luZSBhIGNvbmNy ZXRlIGV4YW1wbGUgaGVyZS4gSWYgd2Ugbm93IG5lZWQgdG8gbWVyZ2UgCnBhZ2UgbWFwcGluZ3Mg aW50byBhIDFHIGJsb2NrIG1hcHBpbmcsIGFuZCB0aGUKCmZhdWx0X2lwYSB0byB1c2VyX21lbV9h Ym9ydCgpIGlzIDB4MjI1MDQzMDAwLCBhZnRlciBBTElHTk1FTlQgdG8gMUcsIHRoZSAKaW5wdXQg YWRkcmVzcyB3aWxsIGJlIDB4MjAwMDAwMDAwLCB0aGVuIHRoZSBUTEJJCgpvcGVyYXRpb24gYXQg Yi5paWkgd2lsbCBpbnZhbGlkYXRlIHRoZSBUTEIgZW50cnkgZm9yIGFkZHJlc3MgCjB4MjAwMDAw MDAwLiBCdXQgd2hhdCBhYm91dCBhZGRyZXNzIDB4MjAwMDAxMDAwICwgMHgyMDAwMDIwMDAgLi4u ID8KCkFmdGVyIHRoZSBpbnN0YWxsaW5nIG9mIDFHIGJsb2NrIG1hcHBpbmcgaXMgZmluaXNoZWQs IHdoZW4gdGhlIGZhdWx0X2lwYSAKaXMgMHgyMDAwMDcwMDAsIE1NVSBjYW4gc3RpbGwgaGl0IHRo ZSBUTEIgZW50cnkgZm9yIHBhZ2UKCm1hcHBpbmcgaW4gdGhlIGNhY2hlIGFuZCBjYW4gYWxzbyBh Y2Nlc3MgbWVtb3J5IHRocm91Z2ggdGhlIG5ldyBibG9jayBlbnRyeS4KCgpTbyBhZGRpbmcgVExC SSBvcGVyYXRpb24gaW4gc3RhZ2UyX21hcF93YWxrX2xlYWYoKSBhaW1zIHRvIGludmFsaWRhdGUg ClRMQiBlbnRyaWVzIGZvciBhbGwgdGhlIHBhZ2UgbWFwcGluZ3MgdGhhdCB3aWxsIGJlIG1lcmdl ZC4KCkluIHRoaXMgd2F5LCBhZnRlciBpbnN0YWxsaW5nIG9mIGJsb2NrIG1hcHBpbmcsIE1NVSBj YW4gb25seSBhY2Nlc3MgCm1lbW9yeSB0aHJvdWdoIHRoZSBuZXcgYmxvY2sgZW50cnkuCgo+Pj4+ ICsJCQlpZiAoc3RhZ2UyX3B0ZV9jYWNoZWFibGUocHRlKSkKPj4+PiArCQkJCXN0YWdlMl9mbHVz aF9kY2FjaGUoa3ZtX3B0ZV9mb2xsb3cocHRlKSwKPj4+PiArCQkJCQkJICAgIGt2bV9ncmFudWxl X3NpemUobGV2ZWwpKTsKPj4+IEkgZG9uJ3QgdW5kZXJzdGFuZCB0aGUgbmVlZCBmb3IgdGhlIGZs dXNoIGVpdGhlciwgYXMgd2UncmUganVzdCBjb2FsZXNjaW5nCj4+PiBleGlzdGluZyBlbnRyaWVz IGludG8gYSBsYXJnZXIgYmxvY2sgbWFwcGluZy4KPj4gSW4gbXkgb3BpbmlvbiwgYWZ0ZXIgdW5t YXBwaW5nLCBpdCBpcyBuZWNlc3NhcnkgdG8gZW5zdXJlIHRoZSBjYWNoZQo+PiBjb2hlcmVuY3ks IGJlY2F1c2UgaXQgaXMgdW5rbm93biB3aGV0aGVyIHRoZSBmdXR1cmUgbWFwcGluZyBtZW1vcnkg YXR0cmlidXRlCj4+IGlzIGNoYW5nZWQgb3Igbm90IChjYWNoZWFibGUgLT4gbm9uX2NhY2hlYWJs ZSkgdGhlb3JldGljYWxseS4KPiBCdXQgaW4gdGhpcyBjYXNlIHdlJ3JlIGp1c3QgY2hhbmdpbmcg dGhlIHN0cnVjdHVyZSBvZiB0aGUgcGFnZS10YWJsZXMsCj4gbm90IHRoZSBwYWdlcyB3aGljaCBh cmUgbWFwcGVkLCBhcmUgd2U/Cj4KPiBXaWxsCj4gLgoKWWVzLCB0aGVyZSBpcyBub3QgYSBjb25k aXRpb24gZm9yIG5vdyB0aGF0IGNhY2hlIGF0dHJpYnV0ZXMgd2lsbCBiZSAKY2hhbmdlZCBpbiB0 aGlzIGNhc2UuCgpNYXliZSB0aGlzIHBhcnQgb2YgZGNhY2hlIGZsdXNoIGNhbiBiZSBjdXQuCgoK WWFuYW4KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwps aW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1hcm0ta2VybmVsCg==