From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 398CB36074F; Wed, 5 Aug 2026 08:16:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785917788; cv=none; b=PXbBtpxr8iQalqKSG8QoGvFd+UdY/+odscmiQSOvqInC3QxHMP58SpC0+s6YboJ8Jg4dtCQyKAsn9X/ZxnEymRDnxJnrybL3lQ41JSHAxqZ9foIqvZxJ1BvfAf0rOTGUYIu3v1FMwwk+akxJy3MLx4qsvC2kfybkpnQJMri+ZAk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785917788; c=relaxed/simple; bh=V9Th3TgV65LAlXZ8vKDIOYe4FiVjOsGO3n0dR8ksgj4=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=aYtZQs3UUyKCBuoz0zffQnhY7JFzPQWKoDn7GVmlmMqEVJl17w6DADHfie9exYLCmdNrS929pgV2EWCt5dN8NKdI+KGE7Pn12dIs63pXbh5OraZtQbaNmSkKuw95rZ4nKDrT8M8F+6VvPjoR1t7R9sG4n6s+nTCDU6EG2ke0oLo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=T4YFaBDH; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="T4YFaBDH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8F9BD1F000E9; Wed, 5 Aug 2026 08:16:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1785917787; bh=m82iw9fI3V25WDVV6gSdMwmA4oHcgc8w57jvm+Rj57Y=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=T4YFaBDHKfroh3f0X5t52LCo50uswkrvomwQ03p5vYWcCF1JYgw0N3i3eaU4e+1Ua H0Ntwa6GvRbkDmLTThLU1LoUV5lBmut+i9mBLArxtn9CsErtltVqphV1YdypjU+KMt n6qXrjxDDmCvgApkQIPzZ7mCBcThKGsTQDHORElYltrFEr5w1x93nQX7opc53M+T6p HRvBM3NCB2kCIxznXY9hljA7Eg+bai4gPZg7UOk5fv050OkfGv7vZ6k7HoFvbJB8ii 8JnfBso7iA3O93LLPO/0AwfgaFBXeZDblrEW4v2c6LnAqJVugpD1Rhz3fvmsFC1jRn gzDtE2nLA4pbQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v9 1/6] mfd: khadas-mcu: Add per-variant configuration infrastructure and VIM4 support Reply-To: sashiko-reviews@lists.linux.dev To: "Ronald Claveau" Cc: mfd@lists.linux.dev, neil.armstrong@linaro.org, linux-amlogic@lists.infradead.org, lee@kernel.org, robh@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org In-Reply-To: <20260805-add-mcu-fan-khadas-vim4-v9-1-75df78710b9e@aliel.fr> References: <20260805-add-mcu-fan-khadas-vim4-v9-0-75df78710b9e@aliel.fr> <20260805-add-mcu-fan-khadas-vim4-v9-1-75df78710b9e@aliel.fr> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Wed, 05 Aug 2026 08:16:26 +0000 Message-Id: <20260805081626.8F9BD1F000E9@smtp.kernel.org> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Thank you for your contribution! Sashiko AI review found 2 potential issue(= s) to consider: - [Medium] Passing child-specific configuration (fan registers and cooling = levels) from the core MFD parent driver to the child violates MFD separatio= n of concerns. - [Medium] The patch claims to remove hardcoded constants and add VIM4 supp= ort but fails to include the corresponding C code modifications, leaving th= e feature entirely unimplemented. -- --- Patch [1]: [PATCH v9 1/6] mfd: khadas-mcu: Add per-variant configuratio= n infrastructure and VIM4 support --- commit 9c30c9c20ad7d8a42c271a8ebbe94020ab58ae90 Author: Ronald Claveau mfd: khadas-mcu: Add per-variant configuration infrastructure and VIM4 supp= ort This commit adds per-variant configuration structures and enums to manage different MCU variants, specifically adding VIM4 support. It also introduces a structure to pass fan configuration to the fan sub-driver to remove hardcoded constants. > diff --git a/include/linux/mfd/khadas-mcu.h b/include/linux/mfd/khadas-mc= u.h > index a99ba2ed0e4e0..e4044c251b97e 100644 > --- a/include/linux/mfd/khadas-mcu.h > +++ b/include/linux/mfd/khadas-mcu.h > @@ -70,6 +70,13 @@ > #define KHADAS_MCU_WOL_INIT_START_REG 0x87 /* WO */ > #define KHADAS_MCU_CMD_FAN_STATUS_CTRL_REG 0x88 /* WO */ > =20 > +/* VIM4 specific registers */ > +#define KHADAS_MCU_VIM4_REST_CONF_REG 0x2c /* WO - reset EEPROM */ > +#define KHADAS_MCU_VIM4_LED_ON_RAM_REG 0x89 /* WO - LED volatile */ > +#define KHADAS_MCU_VIM4_FAN_CTRL_REG 0x8a /* WO */ > +#define KHADAS_MCU_VIM4_WDT_EN_REG 0x8b /* WO */ > +#define KHADAS_MCU_VIM4_SYS_RST_REG 0x91 /* WO */ [Severity: Medium] Will these new VIM4 specific registers exceed the unchanged max_register (0x88) in the core driver's regmap configuration? It looks like the C file modifications are missing from this patch, meaning these new registers might be rejected by the regmap API if the configuration is not updated to allow access up to 0x91. [ ... ] > @@ -88,4 +95,21 @@ struct khadas_mcu { > struct regmap *regmap; > }; > =20 > +/** > + * struct khadas_mcu_fan_pdata - fan sub-driver configuration > + * @fan_reg: register address to write the fan level > + * @levels: table mapping logical cooling-device states to raw fan levels > + * @nlevels: number of entries in @levels > + */ > +struct khadas_mcu_fan_pdata { > + unsigned int fan_reg; > + const unsigned int *levels; > + unsigned int nlevels; > +}; [Severity: Medium] Does passing child-specific configuration like fan registers and cooling levels from the core MFD parent driver to the child violate MFD separation of concerns? The MFD subsystem guidelines suggest that the core MFD parent driver should only handle shared core resources. Private resources consumed exclusively by a single child driver should typically be initialized directly within that child rather than passed from the parent. [Severity: Medium] The commit message mentions removing hardcoded constants and passing these parameters to the fan sub-driver, but is this structure actually used anywhere in the code? The corresponding C file modifications appear to be missing from the commit, which leaves this structure entirely unused. --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260805-add-mcu-fa= n-khadas-vim4-v9-0-75df78710b9e@aliel.fr?part=3D1 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 A722DC55822 for ; Wed, 5 Aug 2026 08:16:35 +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:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=l0tqRUzjTrmWqSU9Y9gjmB/ZUbmpThSVpljofppnd8U=; b=gT6YbkERXA991y qnIE8oHapAGpiHd6rnrksSbI3al5lHvJWxJkr8lMj2L7MGyfr9Up893fbKuojj3lVzHmFS6moFDYz hDJoaMNI+SGphd+sM3yYWiEI4JqsIFH3u0EADpMCRVfHCx7IKeV52YmCeaDR3+HbEMR1Q0mM6MSEs LhGswMxlrHWNMEGnoi1bpg7aS7BWI91RqwXpJWMfO1pEsnuSLQafKqD63UdkrE8tkUt1ip8Xco6c8 eSvMox1XgDILsrdzAljGEEePzYLUyBcYrYk7bo7aeEgHcXKaNFw4EfgeLt6R+VaXZ/V7ztja9gUSy 6e3l5QQN+0BKAgtvzSTA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wrWnd-00000003Vts-3dR7; Wed, 05 Aug 2026 08:16:29 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wrWnc-00000003Vtg-1OLu for linux-amlogic@lists.infradead.org; Wed, 05 Aug 2026 08:16:28 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 22749408DD; Wed, 5 Aug 2026 08:16:27 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8F9BD1F000E9; Wed, 5 Aug 2026 08:16:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1785917787; bh=m82iw9fI3V25WDVV6gSdMwmA4oHcgc8w57jvm+Rj57Y=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=T4YFaBDHKfroh3f0X5t52LCo50uswkrvomwQ03p5vYWcCF1JYgw0N3i3eaU4e+1Ua H0Ntwa6GvRbkDmLTThLU1LoUV5lBmut+i9mBLArxtn9CsErtltVqphV1YdypjU+KMt n6qXrjxDDmCvgApkQIPzZ7mCBcThKGsTQDHORElYltrFEr5w1x93nQX7opc53M+T6p HRvBM3NCB2kCIxznXY9hljA7Eg+bai4gPZg7UOk5fv050OkfGv7vZ6k7HoFvbJB8ii 8JnfBso7iA3O93LLPO/0AwfgaFBXeZDblrEW4v2c6LnAqJVugpD1Rhz3fvmsFC1jRn gzDtE2nLA4pbQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v9 1/6] mfd: khadas-mcu: Add per-variant configuration infrastructure and VIM4 support To: "Ronald Claveau" Cc: mfd@lists.linux.dev, neil.armstrong@linaro.org, linux-amlogic@lists.infradead.org, lee@kernel.org, robh@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org In-Reply-To: <20260805-add-mcu-fan-khadas-vim4-v9-1-75df78710b9e@aliel.fr> References: <20260805-add-mcu-fan-khadas-vim4-v9-0-75df78710b9e@aliel.fr> <20260805-add-mcu-fan-khadas-vim4-v9-1-75df78710b9e@aliel.fr> Date: Wed, 05 Aug 2026 08:16:26 +0000 Message-Id: <20260805081626.8F9BD1F000E9@smtp.kernel.org> X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MiBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW01lZGl1bV0gUGFzc2luZyBjaGls ZC1zcGVjaWZpYyBjb25maWd1cmF0aW9uIChmYW4gcmVnaXN0ZXJzIGFuZCBjb29saW5nIGxldmVs cykgZnJvbSB0aGUgY29yZSBNRkQgcGFyZW50IGRyaXZlciB0byB0aGUgY2hpbGQgdmlvbGF0ZXMg TUZEIHNlcGFyYXRpb24gb2YgY29uY2VybnMuCi0gW01lZGl1bV0gVGhlIHBhdGNoIGNsYWltcyB0 byByZW1vdmUgaGFyZGNvZGVkIGNvbnN0YW50cyBhbmQgYWRkIFZJTTQgc3VwcG9ydCBidXQgZmFp bHMgdG8gaW5jbHVkZSB0aGUgY29ycmVzcG9uZGluZyBDIGNvZGUgbW9kaWZpY2F0aW9ucywgbGVh dmluZyB0aGUgZmVhdHVyZSBlbnRpcmVseSB1bmltcGxlbWVudGVkLgotLQoKLS0tIFBhdGNoIFsx XTogW1BBVENIIHY5IDEvNl0gbWZkOiBraGFkYXMtbWN1OiBBZGQgcGVyLXZhcmlhbnQgY29uZmln dXJhdGlvbiBpbmZyYXN0cnVjdHVyZSBhbmQgVklNNCBzdXBwb3J0IC0tLQpjb21taXQgOWMzMGM5 YzIwYWQ3ZDhhNDJjMjcxYThlYmJlOTQwMjBhYjU4YWU5MApBdXRob3I6IFJvbmFsZCBDbGF2ZWF1 IDxsaW51eC1rZXJuZWwtZGV2QGFsaWVsLmZyPgoKbWZkOiBraGFkYXMtbWN1OiBBZGQgcGVyLXZh cmlhbnQgY29uZmlndXJhdGlvbiBpbmZyYXN0cnVjdHVyZSBhbmQgVklNNCBzdXBwb3J0CgpUaGlz IGNvbW1pdCBhZGRzIHBlci12YXJpYW50IGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlcyBhbmQgZW51 bXMgdG8gbWFuYWdlCmRpZmZlcmVudCBNQ1UgdmFyaWFudHMsIHNwZWNpZmljYWxseSBhZGRpbmcg VklNNCBzdXBwb3J0LiBJdCBhbHNvIGludHJvZHVjZXMKYSBzdHJ1Y3R1cmUgdG8gcGFzcyBmYW4g Y29uZmlndXJhdGlvbiB0byB0aGUgZmFuIHN1Yi1kcml2ZXIgdG8gcmVtb3ZlCmhhcmRjb2RlZCBj b25zdGFudHMuCgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21mZC9raGFkYXMtbWN1Lmgg Yi9pbmNsdWRlL2xpbnV4L21mZC9raGFkYXMtbWN1LmgKPiBpbmRleCBhOTliYTJlZDBlNGUwLi5l NDA0NGMyNTFiOTdlIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbGludXgvbWZkL2toYWRhcy1tY3Uu aAo+ICsrKyBiL2luY2x1ZGUvbGludXgvbWZkL2toYWRhcy1tY3UuaAo+IEBAIC03MCw2ICs3MCwx MyBAQAo+ICAjZGVmaW5lIEtIQURBU19NQ1VfV09MX0lOSVRfU1RBUlRfUkVHCQkweDg3IC8qIFdP ICovCj4gICNkZWZpbmUgS0hBREFTX01DVV9DTURfRkFOX1NUQVRVU19DVFJMX1JFRwkweDg4IC8q IFdPICovCj4gIAo+ICsvKiBWSU00IHNwZWNpZmljIHJlZ2lzdGVycyAqLwo+ICsjZGVmaW5lIEtI QURBU19NQ1VfVklNNF9SRVNUX0NPTkZfUkVHCQkweDJjIC8qIFdPIC0gcmVzZXQgRUVQUk9NICov Cj4gKyNkZWZpbmUgS0hBREFTX01DVV9WSU00X0xFRF9PTl9SQU1fUkVHCQkweDg5IC8qIFdPIC0g TEVEIHZvbGF0aWxlICovCj4gKyNkZWZpbmUgS0hBREFTX01DVV9WSU00X0ZBTl9DVFJMX1JFRwkJ MHg4YSAvKiBXTyAqLwo+ICsjZGVmaW5lIEtIQURBU19NQ1VfVklNNF9XRFRfRU5fUkVHCQkweDhi IC8qIFdPICovCj4gKyNkZWZpbmUgS0hBREFTX01DVV9WSU00X1NZU19SU1RfUkVHCQkweDkxIC8q IFdPICovCgpbU2V2ZXJpdHk6IE1lZGl1bV0KV2lsbCB0aGVzZSBuZXcgVklNNCBzcGVjaWZpYyBy ZWdpc3RlcnMgZXhjZWVkIHRoZSB1bmNoYW5nZWQgbWF4X3JlZ2lzdGVyCigweDg4KSBpbiB0aGUg Y29yZSBkcml2ZXIncyByZWdtYXAgY29uZmlndXJhdGlvbj8KCkl0IGxvb2tzIGxpa2UgdGhlIEMg ZmlsZSBtb2RpZmljYXRpb25zIGFyZSBtaXNzaW5nIGZyb20gdGhpcyBwYXRjaCwgbWVhbmluZwp0 aGVzZSBuZXcgcmVnaXN0ZXJzIG1pZ2h0IGJlIHJlamVjdGVkIGJ5IHRoZSByZWdtYXAgQVBJIGlm IHRoZSBjb25maWd1cmF0aW9uCmlzIG5vdCB1cGRhdGVkIHRvIGFsbG93IGFjY2VzcyB1cCB0byAw eDkxLgoKWyAuLi4gXQoKPiBAQCAtODgsNCArOTUsMjEgQEAgc3RydWN0IGtoYWRhc19tY3Ugewo+ ICAJc3RydWN0IHJlZ21hcCAqcmVnbWFwOwo+ICB9Owo+ICAKPiArLyoqCj4gKyAqIHN0cnVjdCBr aGFkYXNfbWN1X2Zhbl9wZGF0YSAtIGZhbiBzdWItZHJpdmVyIGNvbmZpZ3VyYXRpb24KPiArICog QGZhbl9yZWc6IHJlZ2lzdGVyIGFkZHJlc3MgdG8gd3JpdGUgdGhlIGZhbiBsZXZlbAo+ICsgKiBA bGV2ZWxzOiB0YWJsZSBtYXBwaW5nIGxvZ2ljYWwgY29vbGluZy1kZXZpY2Ugc3RhdGVzIHRvIHJh dyBmYW4gbGV2ZWxzCj4gKyAqIEBubGV2ZWxzOiBudW1iZXIgb2YgZW50cmllcyBpbiBAbGV2ZWxz Cj4gKyAqLwo+ICtzdHJ1Y3Qga2hhZGFzX21jdV9mYW5fcGRhdGEgewo+ICsJdW5zaWduZWQgaW50 IGZhbl9yZWc7Cj4gKwljb25zdCB1bnNpZ25lZCBpbnQgKmxldmVsczsKPiArCXVuc2lnbmVkIGlu dCBubGV2ZWxzOwo+ICt9OwoKW1NldmVyaXR5OiBNZWRpdW1dCkRvZXMgcGFzc2luZyBjaGlsZC1z cGVjaWZpYyBjb25maWd1cmF0aW9uIGxpa2UgZmFuIHJlZ2lzdGVycyBhbmQgY29vbGluZwpsZXZl bHMgZnJvbSB0aGUgY29yZSBNRkQgcGFyZW50IGRyaXZlciB0byB0aGUgY2hpbGQgdmlvbGF0ZSBN RkQgc2VwYXJhdGlvbgpvZiBjb25jZXJucz8KClRoZSBNRkQgc3Vic3lzdGVtIGd1aWRlbGluZXMg c3VnZ2VzdCB0aGF0IHRoZSBjb3JlIE1GRCBwYXJlbnQgZHJpdmVyIHNob3VsZApvbmx5IGhhbmRs ZSBzaGFyZWQgY29yZSByZXNvdXJjZXMuIFByaXZhdGUgcmVzb3VyY2VzIGNvbnN1bWVkIGV4Y2x1 c2l2ZWx5IGJ5CmEgc2luZ2xlIGNoaWxkIGRyaXZlciBzaG91bGQgdHlwaWNhbGx5IGJlIGluaXRp YWxpemVkIGRpcmVjdGx5IHdpdGhpbiB0aGF0CmNoaWxkIHJhdGhlciB0aGFuIHBhc3NlZCBmcm9t IHRoZSBwYXJlbnQuCgpbU2V2ZXJpdHk6IE1lZGl1bV0KVGhlIGNvbW1pdCBtZXNzYWdlIG1lbnRp b25zIHJlbW92aW5nIGhhcmRjb2RlZCBjb25zdGFudHMgYW5kIHBhc3NpbmcgdGhlc2UKcGFyYW1l dGVycyB0byB0aGUgZmFuIHN1Yi1kcml2ZXIsIGJ1dCBpcyB0aGlzIHN0cnVjdHVyZSBhY3R1YWxs eSB1c2VkCmFueXdoZXJlIGluIHRoZSBjb2RlPwoKVGhlIGNvcnJlc3BvbmRpbmcgQyBmaWxlIG1v ZGlmaWNhdGlvbnMgYXBwZWFyIHRvIGJlIG1pc3NpbmcgZnJvbSB0aGUgY29tbWl0LAp3aGljaCBs ZWF2ZXMgdGhpcyBzdHJ1Y3R1cmUgZW50aXJlbHkgdW51c2VkLgoKLS0gClNhc2hpa28gQUkgcmV2 aWV3IMK3IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9wYXRjaHNldC8yMDI2MDgwNS1hZGQtbWN1LWZh bi1raGFkYXMtdmltNC12OS0wLTc1ZGY3ODcxMGI5ZUBhbGllbC5mcj9wYXJ0PTEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFtbG9naWMgbWFp bGluZyBsaXN0CmxpbnV4LWFtbG9naWNAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFtbG9naWMK