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 335E6C43334 for ; Mon, 27 Jun 2022 09:44:06 +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: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=+lOAu21eMhNK7pNWmZriW5qtAKBjZLU/Glo5h7JpSe4=; b=hH/B5umy37S0x8 QWDlSHfIpeMw0m9mdRMHUsgYx8nFEyuS1DRfFkZ8yNb298AGT2FqyxZlhOPHf1X7Dx4v/GqswHQtm stVhAfrjBgi73fE38ilx8H4h/p93L37SzodCyuEbRYb9W1K49HwG2dv2o5N8ju7M/LW4U6kvAPCUN fUzULeIEPa0E5rclwPrqMELoopPShQ/qvNODXr8UPY3Lzg5ZtSKiJFvSUatWsagaBSFm072GgC8PC 098NeRxmyPY1XKiFpKQvR3Jes2msRTx2sgSiyQEYo2XbqRxC1GnYnR7q8lgcCwvfEPI7JozkdAVpf RMW1mXDEQ80c9Qby2zNA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o5lHK-00HQ4Z-Bu; Mon, 27 Jun 2022 09:43:34 +0000 Received: from 3.mo548.mail-out.ovh.net ([188.165.32.156]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o5lHG-00HQ0C-Ed for linux-mtd@lists.infradead.org; Mon, 27 Jun 2022 09:43:32 +0000 Received: from mxplan5.mail.ovh.net (unknown [10.108.16.62]) by mo548.mail-out.ovh.net (Postfix) with ESMTPS id 7066B21B82; Mon, 27 Jun 2022 09:43:22 +0000 (UTC) Received: from kaod.org (37.59.142.96) by DAG4EX1.mxp5.local (172.16.2.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.9; Mon, 27 Jun 2022 11:43:20 +0200 Authentication-Results: garm.ovh; auth=pass (GARM-96R001214c8b85-88ae-43d7-9f45-820f0b88e976, D5BAD815273CE4794DDBC5929823026F491AE39B) smtp.auth=clg@kaod.org X-OVh-ClientIp: 82.64.250.170 Message-ID: <82015d89-cab5-3e9a-a40e-e5dafa17ec0c@kaod.org> Date: Mon, 27 Jun 2022 11:43:15 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.0 Subject: Re: [RFC PATCH 3/6] mtd: spi-nor: core: run calibration when initialization is done Content-Language: en-US To: Pratyush Yadav CC: Miquel Raynal , Nishanth Menon , Tero Kristo , Rob Herring , Tudor Ambarus , Michael Walle , Richard Weinberger , Vignesh Raghavendra , Mark Brown , , , , , , Joel Stanley References: <20210311191216.7363-1-p.yadav@ti.com> <20210311191216.7363-4-p.yadav@ti.com> <20220517160226.4107f282@xps-13> <20220518060640.os5fp5rez4ie7qc4@ti.com> <20220518091931.279c5398@xps-13> <20220518075651.mvdhfnfbgutecgyq@ti.com> <20220627091404.54257obrdazcjhre@ti.com> From: =?UTF-8?Q?C=c3=a9dric_Le_Goater?= In-Reply-To: <20220627091404.54257obrdazcjhre@ti.com> X-Originating-IP: [37.59.142.96] X-ClientProxiedBy: DAG3EX2.mxp5.local (172.16.2.22) To DAG4EX1.mxp5.local (172.16.2.31) X-Ovh-Tracer-GUID: d90d66d2-6dd4-4970-a538-40e48684ccd2 X-Ovh-Tracer-Id: 8915438414617938820 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvfedrudeghedgvddtucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhepkfffgggfuffvvehfhfgjtgfgihesthekredttdefjeenucfhrhhomhepveorughrihgtpgfnvggpifhorghtvghruceotghlgheskhgrohgurdhorhhgqeenucggtffrrghtthgvrhhnpeekteejtdelkeejvdevffduhfetteelieefgeefffeugffhfeekheffueefledujeenucfkpheptddrtddrtddrtddpfeejrdehledrudegvddrleeinecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmohguvgepshhmthhpohhuthdphhgvlhhopehmgihplhgrnhehrdhmrghilhdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhnsggprhgtphhtthhopedupdhrtghpthhtohepjhhovghlsehjmhhsrdhiugdrrghupdfovfetjfhoshhtpehmohehgeek X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220627_024330_846394_5E1F35FF X-CRM114-Status: GOOD ( 39.63 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org T24gNi8yNy8yMiAxMToxNCwgUHJhdHl1c2ggWWFkYXYgd3JvdGU6Cj4gT24gMTgvMDUvMjIgMTA6 NTFBTSwgQ8OpZHJpYyBMZSBHb2F0ZXIgd3JvdGU6Cj4+IEhlbGxvLAo+Pgo+PiBPbiA1LzE4LzIy IDA5OjU2LCBQcmF0eXVzaCBZYWRhdiB3cm90ZToKPj4+IE9uIDE4LzA1LzIyIDA5OjE5QU0sIE1p cXVlbCBSYXluYWwgd3JvdGU6Cj4+Pj4gSGkgUHJhdHl1c2gsCj4+Pj4KPj4+PiBwLnlhZGF2QHRp LmNvbSB3cm90ZSBvbiBXZWQsIDE4IE1heSAyMDIyIDExOjM3OjA1ICswNTMwOgo+Pj4+Cj4+Pj4+ ICtDZWRyaWMKPj4+Pj4KPj4+Pj4gT24gMTcvMDUvMjIgMDQ6MDJQTSwgTWlxdWVsIFJheW5hbCB3 cm90ZToKPj4+Pj4+IEhpIFByYXR5dXNoLAo+Pj4+Pj4KPj4+Pj4+IHAueWFkYXZAdGkuY29tIHdy b3RlIG9uIEZyaSwgMTIgTWFyIDIwMjEgMDA6NDI6MTMgKzA1MzA6Cj4+Pj4+Pj4gT25jZSB0aGUg Zmxhc2ggaXMgaW5pdGlhbGl6ZWQgdGVsbCB0aGUgY29udHJvbGxlciBpdCBjYW4gcnVuCj4+Pj4+ Pj4gY2FsaWJyYXRpb24gcHJvY2VkdXJlcyBpZiBuZWVkZWQuIFRoaXMgY2FuIGJlIHVzZWZ1bCB3 aGVuIGNhbGlicmF0aW9uIGlzCj4+Pj4+Pj4gbmVlZGVkIHRvIHJ1biBhdCBoaWdoZXIgY2xvY2sg c3BlZWRzLgo+Pj4+Pj4+Cj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogUHJhdHl1c2ggWWFkYXYgPHAu eWFkYXZAdGkuY29tPgo+Pj4+Pj4+IC0tLQo+Pj4+Pj4+ICAgIGRyaXZlcnMvbXRkL3NwaS1ub3Iv Y29yZS5jIHwgMTIgKysrKysrKysrKy0tCj4+Pj4+Pj4gICAgMSBmaWxlIGNoYW5nZWQsIDEwIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4+Pj4+Pj4KPj4+Pj4+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9tdGQvc3BpLW5vci9jb3JlLmMgYi9kcml2ZXJzL210ZC9zcGktbm9yL2NvcmUuYwo+ Pj4+Pj4+IGluZGV4IDg4ODg4ZGYwMDlmMC4uZTBjYmNhZjFiZTg5IDEwMDY0NAo+Pj4+Pj4+IC0t LSBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvY29yZS5jCj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9tdGQv c3BpLW5vci9jb3JlLmMKPj4+Pj4+PiBAQCAtMzY1MCw2ICszNjUwLDcgQEAgc3RhdGljIGludCBz cGlfbm9yX3Byb2JlKHN0cnVjdCBzcGlfbWVtICpzcGltZW0pCj4+Pj4+Pj4gICAgCSAqIGNoZWNr aW5nIHdoYXQncyByZWFsbHkgc3VwcG9ydGVkIHVzaW5nIHNwaV9tZW1fc3VwcG9ydHNfb3AoKS4K Pj4+Pj4+PiAgICAJICovCj4+Pj4+Pj4gICAgCWNvbnN0IHN0cnVjdCBzcGlfbm9yX2h3Y2FwcyBo d2NhcHMgPSB7IC5tYXNrID0gU05PUl9IV0NBUFNfQUxMIH07Cj4+Pj4+Pj4gKwlzdHJ1Y3Qgc3Bp X21lbV9vcCBvcDsKPj4+Pj4+PiAgICAJY2hhciAqZmxhc2hfbmFtZTsKPj4+Pj4+PiAgICAJaW50 IHJldDsKPj4+Pj4+PiBAQCAtMzcwOSw4ICszNzEwLDE1IEBAIHN0YXRpYyBpbnQgc3BpX25vcl9w cm9iZShzdHJ1Y3Qgc3BpX21lbSAqc3BpbWVtKQo+Pj4+Pj4+ICAgIAlpZiAocmV0KQo+Pj4+Pj4+ ICAgIAkJcmV0dXJuIHJldDsKPj4+Pj4+PiAtCXJldHVybiBtdGRfZGV2aWNlX3JlZ2lzdGVyKCZu b3ItPm10ZCwgZGF0YSA/IGRhdGEtPnBhcnRzIDogTlVMTCwKPj4+Pj4+PiAtCQkJCSAgIGRhdGEg PyBkYXRhLT5ucl9wYXJ0cyA6IDApOwo+Pj4+Pj4+ICsJcmV0ID0gbXRkX2RldmljZV9yZWdpc3Rl cigmbm9yLT5tdGQsIGRhdGEgPyBkYXRhLT5wYXJ0cyA6IE5VTEwsCj4+Pj4+Pj4gKwkJCQkgIGRh dGEgPyBkYXRhLT5ucl9wYXJ0cyA6IDApOwo+Pj4+Pj4+ICsJaWYgKHJldCkKPj4+Pj4+PiArCQly ZXR1cm4gcmV0Owo+Pj4+Pj4+ICsKPj4+Pj4+PiArCW9wID0gc3BpX25vcl9zcGltZW1fZ2V0X3Jl YWRfb3Aobm9yKTsKPj4+Pj4+Cj4+Pj4+PiBJc24ndCB0aGlzIHRvbyBzcGVjaWZpYz8gSSByZWFs bHkgZG9uJ3Qga25vdyBtdWNoIGFib3V0IHNwaS1ub3JzLCBidXQgSQo+Pj4+Pj4gZmluZCBvZGQg dG8gaGF2ZSB0aGlzIG9wIGJlaW5nIGNyZWF0ZWQgaGVyZSwgd2h5IG5vdCBtb3ZpbmcgdGhpcyBp bnRvCj4+Pj4+PiB0aGUgX2RvX2NhbGlicmF0aW9uKCkgaGVscGVyPwo+Pj4+Pgo+Pj4+PiBNYXli ZSB0aGUgbmFtaW5nIGNvbmZ1c2VkIHlvdSBidXQgdGhpcyBpcyBhIGZ1bmN0aW9uIGluIHRoZSBT UEkgTk9SCj4+Pj4+IGNvcmUsIG5vdCBpbiBTUEkgTUVNLiBTUEkgTk9SIHN1cHBvcnRzIGJvdGgg U1BJIE1FTSBiYXNlZCBjb250cm9sbGVycwo+Pj4+PiBhbmQgImxlZ2FjeSIgY29udHJvbGxlcnMs IHNvIHRoZSBjb252ZW50aW9uIGlzIHRvIGFkZCB0aGUgInNwaW1lbSIKPj4+Pj4gcHJlZml4IGJl Zm9yZSBTUEkgTUVNIHNwZWNpZmljIGZ1bmN0aW9ucy4gU28gSSBkb24ndCBnZXQgdGhlIGNvbW1l bnQKPj4+Pj4gYWJvdXQgaXQgYmVpbmcgdG9vIHNwZWNpZmljLiBJdCBpcyB0b28gc3BlY2lmaWMg dG8gd2hhdD8KPj4+Pgo+Pj4+IE1taCByaWdodCwgaXQncyBmaW5lIHRoZW4uCj4+Pj4KPj4+Pj4K Pj4+Pj4gQW5kIGhvdyBjYW4gc3BpX21lbV9kb19jYWxpYnJhdGlvbigpIGtub3cgd2hhdCBvcCB0 aGUgZmxhc2ggdXNlcyB0byByZWFkCj4+Pj4+IGRhdGE/IFNQSSBOT1Igb3IgU1BJIE5BTkQgd291 bGQga25vdyBpdCwgYnV0IG5vdCBTUEkgTUVNLiBUaGF0IGlzIHdoeSB3ZQo+Pj4+PiBwYXNzIGlu IHRoYXQgaW5mb3JtYXRpb24gdG8gc3BpX21lbV9kb19jYWxpYnJhdGlvbigpLgo+Pj4+Cj4+Pj4g QnV0IGhlcmUgdGhlIG9wIGlzICJzcGktbm9yIHdpZGUiLCBJIHdvdWxkIGhhdmUgZXhwZWN0ZWQg YQo+Pj4+IHBlci1kZXZpY2Ugb3AuIEJ1dCB0aGF0IGlzIG5vdCBhIGJpZyBkZWFsLCB0aGF0IGlz IHNvbWV0aGluZyB0aGF0IGNhbgo+Pj4+IGFsc28gYmUgdXBkYXRlZCBsYXRlciBpZiBuZWVkZWQg SSBndWVzcy4KPj4+Cj4+PiBJdCBpcyBwZXItZGV2aWNlLiBUaGUgb3AgaXMgZ2VuZXJhdGVkIHVz aW5nIG5vci0+cmVhZF9vcGNvZGUsCj4+PiBub3ItPmFkZHJfd2lkdGgsIG5vci0+cmVhZF9kdW1t eSwgZXRjLiBTbyBpZiB5b3UgaGF2ZSAyIE5PUiBmbGFzaGVzIG9uCj4+PiB5b3VyIHN5c3RlbSB3 aXRoIGRpZmZlcmVudCBvcGNvZGVzLCBpdCB3b3VsZCB3b3JrIGZvciBib3RoLgo+Pj4KPj4+Pgo+ Pj4+IE9uZSBsYXN0IHF1ZXN0aW9uLCBpcyB0aGVyZSBzb21ldGhpbmcgdGhhdCBtdGRfZGV2aWNl X3JlZ2lzdGVyKCkgZG9lcwo+Pj4+IHRoYXQgaXMgcmVhbGx5IG5lZWRlZCBmb3IgdGhlIGNhbGli cmF0aW9uIHRvIHdvcms/IE90aGVyd2lzZSBJIHdvdWxkCj4+Pj4gcmF0aGVyIHByZWZlciB0byBo YXZlIHRoYXQgY2FsaWJyYXRpb24gaGFwcGVuaW5nIGJlZm9yZSB0aGUgdXNlciBnZXRzCj4+Pj4g YWNjZXNzIHRvIHRoZSBkZXZpY2UuCj4+Cj4+IFdoaWNoIHdvdWxkIG1lYW4gY2FsbGluZyBpdCBy aWdodCBhZnRlciA6Cj4+Cj4+IAlyZXQgPSBzcGlfbm9yX2NyZWF0ZV9yZWFkX2Rpcm1hcChub3Ip Owo+PiAJaWYgKHJldCkKPj4gCQlyZXR1cm4gcmV0Owo+Pgo+PiAJcmV0ID0gc3BpX25vcl9jcmVh dGVfd3JpdGVfZGlybWFwKG5vcik7Cj4+IAlpZiAocmV0KQo+PiAJCXJldHVybiByZXQ7Cj4+Cj4+ PiBUaGUgY2FsaWJyYXRpb24gd29ya3MgYnkgcmVhZGluZyBhIGtub3duIHBhdHRlcm4gdGhhdCBp cyBhbHJlYWR5IHdyaXR0ZW4KPj4+IHRvIHRoZSBmbGFzaCBhZ2FpbiBhbmQgYWdhaW4gYW5kIHNl ZWluZyB3aGF0IGRlbGF5cyB3b3JrIGFuZCB3aGF0IGRvbid0Lgo+Pj4gRm9yIHRoYXQgdG8gaGFw cGVuLCB0aGUgY29udHJvbGxlciBkcml2ZXIgbmVlZHMgdG8ga25vdyB3aGVyZSB0aGUKPj4+IHBh dHRlcm4gaXMgc3RvcmVkLgo+Pgo+PiBXaHkgZG9uJ3QgeW91IHNpbXBseSBjaG9vc2Ugc29tZSBy YW5kb20gcGxhY2UsIGZpcnN0IDE2S0IgZm9yIGluc3RhbmNlLAo+PiBhbmQgY2hlY2sgdGhhdCB0 aGUgZGF0YSBpcyByYW5kb20gZW5vdWdoID8gSWYgbm90LCBkZWNsYXJlIGNhbGlicmF0aW9uCj4+ IG5vdCBwb3NzaWJsZSBhbmQgY2hvb3NlIGEgZGVmYXVsdCBzYWZlIHNldHRpbmcgd2hpY2ggaXMg YW55aG93IGEKPj4gcmVxdWlyZW1lbnQgZm9yIGNhbGlicmF0aW9uLiBSZXRyeSBhdCByZWJvb3Qg YXMgZGF0YSBtaWdodCBoYXZlIGNoYW5nZWQuCj4gCj4gSSBkaWQgbm90IGNvbWUgdXAgd2l0aCB0 aGUgcGF0dGVybiBteXNlbGYuIEJ1dCBmcm9tIHdoYXQgSSBjYW4KPiB1bmRlcnN0YW5kLCB0aGUg cGF0dGVybiBpcyBub3QgcmFuZG9tIGF0IGFsbCwgYnV0IGlzIGNhcmVmdWxseSBjaG9zZW4gdG8K PiB0YXJnZXQgY2VydGFpbiB3YXlzIGEgcmVhZCBjYW4gZmFpbCBvbiB0aGUgY29udHJvbGxlci4g U28gYSByYW5kb20gcGllY2UKPiBvZiBkYXRhIHdvbid0IHdvcmsgYXMgd2VsbCBhcyB0aGlzIGNh cmVmdWxseSBkZXNpZ25lZCBwYXR0ZXJuLgoKVHJ1ZS4gSSBkb24ndCBleGFjdGx5IHJlbWVtYmVy IGhvdyB5b3VyIHByb3Bvc2FsIHdvcmtlZCBmcm9tIHRoZQpkcml2ZXIgc2lkZSBidXQgSSBpbWFn aW5lIGhhdmluZyBhIHNwZWNpZmljIERUIHByb3BlcnR5IHRvIGxvY2F0ZQp0aGF0IHBhdHRlcm4g aW4gdGhlIHNldHVwIGhhbmRsZXIgYW5kIHRvIHVzZSBpdCBsYXRlciBvbiBpcyBub3QKdG9vIGNv bXBsZXguCgo+Pj4gVGhpcyBzZXJpZXMgZG9lcyB0aGF0IGJ5IGxvb2tpbmcgYXQgdGhlIE1URAo+ Pj4gcGFydGl0aW9ucy4gRm9yIHRoYXQgdG8gaGFwcGVuLCB3ZSBuZWVkIHRvIGNyZWF0ZSB0aG9z ZSBwYXJ0aXRpb25zCj4+PiBmaXJzdCwgd2hpY2ggaGFwcGVucyBhZnRlciBtdGRfZGV2aWNlX3Jl Z2lzdGVyKCkuCj4+Cj4+IGhtbSwgdGhhdCBtaWdodCB3b3JrIGZvciBzb21lIGJvYXJkcy4gVGhp cyBpcyBub3QgYXQgYWxsIHRoZSBjYXNlIGZvcgo+PiB0aGUgQk1DIGJvYXJkcy4gVmVuZG9ycyBj YW4gcHV0IGFueSBraW5kIG9mIGZsYXNoIG1vZGVsIGFuZC9vciBsYXlvdXQKPj4gYW5kIHRoZSBk cml2ZXIgbmVlZHMgdG8gYmUgbW9yZSBnZW5lcmljLgo+IAo+IFllcywgdmVuZG9ycyBjYW4gY2hv b3NlIGFueSBsYXlvdXQsIGJ1dCBvbmUgcGFydGl0aW9uIG9uIHRoYXQgbGF5b3V0Cj4gd291bGQg YmUgeW91ciBjYWxpYnJhdGlvbiBwYXR0ZXJuLiBJIHRoaW5rIHlvdSBjYW4gdXNlIGEgZGlmZmVy ZW50Cj4gY29tcGF0aWJsZSBmb3IgdGhhdCBwYXJ0aXRpb24uIAoKT0suIGFuZCB0aGF0IGl0IHdv dWxkIGJlY29tZSBtb3JlIGdlbmVyaWMgdGhlbi4KCj4gSSBoYXZlIG5vdCB0aG91Z2h0IHRoaXMg dGhyb3VnaCB5ZXQgdGhvdWdoLgoKSWYgYSBwYXJ0aXRpb24gaXMgcmVxdWlyZWQsIHRoYXQncyBh IGRlcGVuZGVuY3kgb24gbXRkcGFydC4KCkl0IGNvdWxkIGJlIGRvbmUgZnJvbSBzcGlfbm9yX3By b2JlKCkgYWZ0ZXIgbXRkX2RldmljZV9yZWdpc3RlcigpIHdpdGgKc29tZSBzcGltZW0gaGFuZGxl ciB1c2luZyB0aGUgJ3N0cnVjdCBtdGRfcGFydGl0aW9uJyBmb3IgdGhlIHtzaXplLG9mZnNldH0K cGFyYW1ldGVycy4KCj4+Cj4+PiBCdXQgSSBhbSBwbGFubmluZyB0byB1c2UgZGV2aWNlIHRyZWUg dG8gZ2V0IHRoYXQgaW5mb3JtYXRpb24gbm93IHNvIHRoaXMKPj4+IHNob3VsZCBubyBsb25nZXIg YmUgbmVlZGVkIGFuZCB3ZSBjYW4gZG8gY2FsaWJyYXRpb24gYmVmb3JlIHJlZ2lzdGVyaW5nCj4+ PiB0aGUgZGV2aWNlIHdpdGggTVRELgo+Pgo+PiBQZXJmZWN0LCB3ZSBjYW4gbW92ZSB0aGUgY2Fs aWJyYXRpb24gaG9vayBpbiBzcGlfbm9yX2NyZWF0ZV9yZWFkX2Rpcm1hcCgpCj4+IHRoZW4sIG9y IGluIGRldm1fc3BpX21lbV9kaXJtYXBfY3JlYXRlKCksIHdoaWNoIHdvdWxkIG1ha2UgbW9yZSBz ZW5zZSBJTUhPLgo+IAo+IFNvcnJ5LCBJIHN0aWxsIGRvbid0IGdldCB3aHkgeW91IHdhbnQgdG8g dGllIGRpcm1hcCBhbmQgY2FsaWJyYXRpb24KPiB0b2dldGhlci4gSnVzdCBsZXQgdGhlbSBiZSBp bmRlcGVuZGVudCBhbmQgbGV0IGZsYXNoIGRyaXZlcnMgdGFrZSBjYXJlCj4gb2Ygd2hlbiB0byBj YWxsIHdoYXQuIFNQSSBNRU0gc2hvdWxkIG5vdCBjYXJlLgoKSSBrbm93IHlvdSB3b3VsZCBwcmVm ZXIgYSBzcGVjaWZpYyBoYW5kbGVyIGFuZCB0aGF0IGNhbiBzdGlsbCBiZSBkb25lLgoKVGhhbmtz LAoKQy4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpMaW51eCBNVEQgZGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJh ZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1tdGQvCg==