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 89BACC77B7E for ; Tue, 2 May 2023 10:00:15 +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=vhOgAsjr+wI6MVyiqhOAhhx7Zzui3Xjbbpra+eM1ATA=; b=gpBzAW65IoeSrw cQdYxgZSFtuWMP3ipnTWbdrbg/6AFoE7sDtDnwN7E0BS3MHTmY93Oqc/1Bwnkh7JSQKt5VXcTwNdw CWEZwoUc2ohsyDUvvfvVeGF/bcTDlEI3SRBEWjbtbk3KpqbBh4zTwWLP8VZScg/xgzJ6tAC9psHra cmWsEjzULRoknF73wfMT27l539tBXIwsQydQxar7zB+bOKU0uy5SkXkXAVCa9Suo+Z0Kf7+BdayBV 11ondeiGgKaTLZ9nHWFY+CFJrO9kw1h6YigraQTMZjOi/l9VC/cSfNVVI+miqJknIZJOKtIWdwfXb D0I8hyMxgS6ZzHvdS4qw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1ptmnA-000qi0-0c; Tue, 02 May 2023 09:59:28 +0000 Received: from relay6-d.mail.gandi.net ([2001:4b98:dc4:8::226]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1ptmn5-000qfx-1l; Tue, 02 May 2023 09:59:25 +0000 Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id B2348C000D; Tue, 2 May 2023 09:59:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1683021558; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5dvd+YJ9QYW6nikd3ncq16PFBQQJnsDafDti7fUtdmI=; b=cWTT6ps84p3U/m7lifbiRXvE2IJtKcWqcbVBlbIja+s9iQl0F0L+lhbHG7mRT+VZ6/fqBi /wrhO0go0gJ+6CEJxKUKQnzsmRzj7WvAkJ7mS/GsG0hn128iZ9lHP3+h43ATJQIpDzcjck BmsYiiemDjLIPOfgIQIwCpNe9ru/fXYGipRN2g0KrNuHrasKevDocqmX7HaNuT6UuJ6R8z JMIZFCulerVZTCHRW8aRqb/JfAAViiMut18/gzChhpMgQIIqMpmOV30jGOrYifMF1RElw3 vFjM0gY29qCWX4oUlFARkaV8uvOhnZcT6XP30D2tbCry+ywEAjYCxFQ5OujPJw== Date: Tue, 2 May 2023 11:59:13 +0200 From: Miquel Raynal To: Arseniy Krasnov Cc: Liang Yang , Richard Weinberger , Vignesh Raghavendra , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Jianxin Pan , Yixun Lan , , , , , , , "yonghui.yu" Subject: Re: [PATCH v1 4/5] mtd: rawnand: meson: clear OOB buffer before read Message-ID: <20230502115913.78012d98@xps-13> In-Reply-To: References: <20230412061700.1492474-1-AVKrasnov@sberdevices.ru> <20230412163214.0c764bb3@xps-13> <0c61eaae-053e-5768-a533-70b2ff0cc95d@amlogic.com> <7520e512-8a19-ff04-364c-b5be0a579ef0@sberdevices.ru> <20230413102200.309fbe9c@xps-13> <20230413122252.0a8efcd8@xps-13> <569a948e-654a-b21f-8a4f-55dc4b295387@sberdevices.ru> <60fa656e-bda1-1de6-a79e-3e3041cd69a8@sberdevices.ru> <780c0cae-18b6-2652-1c2c-6d398ea60451@amlogic.com> <20230418152505.72fc16da@xps-13> <15a6e415-1489-a81f-fc8f-2372678ad2cb@sberdevices.ru> <5e4b395e-bf9d-0123-a0f2-2b378d950b29@sberdevices.ru> Organization: Bootlin X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; 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-20230502_025923_884936_88DB2D96 X-CRM114-Status: GOOD ( 39.14 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgQXJzZW5peSwKCmF2a3Jhc25vdkBzYmVyZGV2aWNlcy5ydSB3cm90ZSBvbiBXZWQsIDI2IEFw ciAyMDIzIDE3OjQ2OjE5ICswMzAwOgoKPiBPbiAyNi4wNC4yMDIzIDE2OjUxLCBMaWFuZyBZYW5n IHdyb3RlOgo+ID4gSGkgQXJzZW5peSwKPiA+IAo+ID4gT24gMjAyMy80LzIwIDE3OjM3LCBBcnNl bml5IEtyYXNub3Ygd3JvdGU6ICAKPiA+PiBbIEVYVEVSTkFMIEVNQUlMIF0KPiA+Pgo+ID4+IE9u IDE5LjA0LjIwMjMgMDk6NDEsIEFyc2VuaXkgS3Jhc25vdiB3cm90ZTogIAo+ID4+Pgo+ID4+Pgo+ ID4+PiBPbiAxOS4wNC4yMDIzIDA2OjA1LCBMaWFuZyBZYW5nIHdyb3RlOiAgCj4gPj4+PiBIaSBB cnNlbml5LAo+ID4+Pj4KPiA+Pj4+IE9uIDIwMjMvNC8xOCAyMjo1NywgQXJzZW5peSBLcmFzbm92 IHdyb3RlOiAgCj4gPj4+Pj4gWyBFWFRFUk5BTCBFTUFJTCBdCj4gPj4+Pj4KPiA+Pj4+Pgo+ID4+ Pj4+Cj4gPj4+Pj4gT24gMTguMDQuMjAyMyAxNjoyNSwgTWlxdWVsIFJheW5hbCB3cm90ZTogIAo+ ID4+Pj4+PiBIaSBBcnNlbml5LAo+ID4+Pj4+PiAgCj4gPj4+Pj4+Pj4+IEhlbGxvIGFnYWluIEBM aWFuZyBATWlxdWVsIQo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBPbmUgbW9yZSBxdWVzdGlvbiBh Ym91dCBPT0IgYWNjZXNzLCBhcyBJIGNhbiBzZWUgY3VycmVudCBkcml2ZXIgdXNlcyB0aGUgZm9s bG93aW5nCj4gPj4+Pj4+Pj4+IGNhbGxiYWNrczoKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gwqDC oMKgwqDCoCBuYW5kLT5lY2Mud3JpdGVfb29iX3JhdyA9IG5hbmRfd3JpdGVfb29iX3N0ZDsKPiA+ Pj4+Pj4+Pj4gwqDCoMKgwqDCoCBuYW5kLT5lY2Mud3JpdGVfb29iID0gbmFuZF93cml0ZV9vb2Jf c3RkOwo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBGdW5jdGlvbiAnbmFuZF93 cml0ZV9vb2Jfc3RkKCknIHdyaXRlcyBkYXRhIHRvIHRoZSBlbmQgb2YgdGhlIHBhZ2UuIEJ1dCBh cyBJCj4gPj4+Pj4+Pj4+IGNhbiBzZWUgYnkgZHVtcGluZyAnZGF0YV9idWYnIGR1cmluZyByZWFk LCBwaHlzaWNhbCBsYXlvdXQgb2YgZWFjaCBwYWdlIGlzIHRoZQo+ID4+Pj4+Pj4+PiBmb2xsb3dp bmcgKDFLQiBFQ0MpOgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiAweDAwMDogW8KgwqDCoMKgwqDC oMKgwqAgMSBLQiBvZiBkYXRhwqDCoMKgwqDCoMKgwqAgXQo+ID4+Pj4+Pj4+PiAweDQwMDogWyAy QiB1c2VyIGRhdGFdIFsgMTRCIEVDQyBjb2RlXQo+ID4+Pj4+Pj4+PiAweDQxMDogW8KgwqDCoMKg wqDCoMKgwqAgMSBLQiBvZiBkYXRhwqDCoMKgwqDCoMKgwqAgXcKgwqDCoCAoQSkKPiA+Pj4+Pj4+ Pj4gMHg4MTA6IFsgMkIgdXNlciBkYXRhXSBbIDE0QiBFQ0MgY29kZV0KPiA+Pj4+Pj4+Pj4gMHg4 MjA6IFvCoMKgwqDCoMKgwqDCoCAzMkIgdW51c2VkwqDCoMKgwqDCoMKgwqDCoMKgwqAgXQo+ID4+ Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBTbywgYWZ0ZXIgJ25h bmRfd3JpdGVfb29iX3N0ZCgpJyAobGV0IGRhdGEgYmUgc2VxdWVuY2UgZnJvbSBbMHgwIC4uLiAw eDNmXSksCj4gPj4+Pj4+Pj4+IHBhZ2Ugd2lsbCBsb29rIGxpa2UgdGhpczoKPiA+Pj4+Pj4+Pj4K PiA+Pj4+Pj4+Pj4gMHgwMDA6IFvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMHhGRsKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgXQo+ID4+Pj4+Pj4+PiAweDQwMDogW8KgwqDCoMKgwqDCoMKgwqDCoMKg IC4uLi4uLi4uwqDCoMKgwqDCoMKgwqDCoMKgIF0KPiA+Pj4+Pj4+Pj4gMHg3ZjA6IFvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgMHhGRsKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXQo+ID4+Pj4+Pj4+ PiAweDgwMDogWyAwMCAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLsKgIF0KPiA+Pj4+Pj4+Pj4gMHg4 MzA6IFsgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIDNmIF0KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+ Pj4gSGVyZSB3ZSBoYXZlIHR3byBwcm9ibGVtczoKPiA+Pj4+Pj4+Pj4gMSkgQXR0ZW1wdCB0byBk aXNwbGF5IHJhdyBkYXRhIGJ5ICduYW5kZHVtcCcgdXRpbGl0eSBwcm9kdWNlcyBhIGxpdHRsZSBi aXQKPiA+Pj4+Pj4+Pj4gwqDCoMKgwqDCoCBpbnZhbGlkIG91dHB1dCwgYXMgZHJpdmVyIHJlbGll cyBvbiBsYXlvdXQgKEEpIGZyb20gYWJvdmUuIEUuZy4gT09CIGRhdGEKPiA+Pj4+Pj4+Pj4gwqDC oMKgwqDCoCBpcyBhdCAweDQwMCBhbmQgMHg4MTAuIEhlcmUgaXMgYW4gZXhhbXBsZSAoYXR0ZW1w dCB0byB3cml0ZSAweDExIDB4MjIgMHgzMyAweDQ0KToKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4g MHgwMDAwMDdmMDogMTEgMjIgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYg ZmbCoCB8LiIuLi4uLi4uLi4uLi4uLnwKPiA+Pj4+Pj4+Pj4gwqDCoMKgwqAgT09CIERhdGE6IGZm IGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmwqAgfC4uLi4uLi4u Li4uLi4uLi58Cj4gPj4+Pj4+Pj4+IMKgwqDCoMKgIE9PQiBEYXRhOiAzMyA0NCBmZiBmZiBmZiBm ZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZsKgIHwzRC4uLi4uLi4uLi4uLi4ufAo+ID4+ Pj4+Pj4+PiDCoMKgwqDCoCBPT0IgRGF0YTogZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYg ZmYgZmYgZmYgZmYgZmYgZmbCoCB8Li4uLi4uLi4uLi4uLi4uLnwKPiA+Pj4+Pj4+Pj4gwqDCoMKg wqAgT09CIERhdGE6IGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZm IGZmwqAgfC4uLi4uLi4uLi4uLi4uLi58Cj4gPj4+Pj4+Pj4+ICAKPiA+Pj4+Pj4+PiBIaSBBcnNl bml5LAo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gSSByZWFsaXplZCB0aGUgd3JpdGVfb29iX3Jhdygp IGFuZCB3cml0ZV9vb2IoKSBhcmUgd3JvbmcgaW4gbWVzb25fbmFuZC5jLiBJIHN1Z2dlc3QgYm90 aCBvZiB0aGVtIHNob3VsZCBiZSByZXdvcmtlZCBhbmQgZm9sbG93IHRoZSBmb3JtYXQgb2YgbWVz b24gbmFuZCBjb250cm9sbGVyLiBpLmUuIGZpcnN0bHkgZm9ybWF0IHRoZSBkYXRhIGluIExheW91 dCAoQSkgYW5kIHRoZW4gd3JpdGUuIHJlYWRpbmcgaXMgZmlyc3RseSByZWFkaW5nIHRoZSBkYXRh IG9mIGxheW91dCAoQSkgYW5kIHRoZW4gY29tcG9zdCB0aGUgbGF5b3V0IChCKS4gIAo+ID4+Pj4+ Pj4KPiA+Pj4+Pj4+IElJVUMgYWZ0ZXIgc3VjaCB3cml0aW5nIG9ubHkgT09CIChlLmcuIHVzZXIg Ynl0ZXMpIGFjY29yZGluZyBsYXlvdXQgKEEpLCBodyB3aWxsIGFsc28gd3JpdGUgRUNDIGNvZGVz LCBzbwo+ID4+Pj4+Pj4gaXQgd2lsbCBiZSBpbXBvc3NpYmxlIHRvIHdyaXRlIGRhdGEgdG8gdGhp cyBwYWdlIGxhdGVyLCBiZWNhdXNlIHdlIGNhbm5vdCB1cGRhdGUgRUNDIGNvZGVzIHByb3Blcmx5 IGZvciB0aGUgbmV3bHkKPiA+Pj4+Pj4+IHdyaXR0ZW4gZGF0YSAod2UgY2FuJ3QgdXBkYXRlIGJp dHMgZnJvbSAwIHRvIDEpLgo+ID4+Pj4+Pj4gIAo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gIAo+ID4+ Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiAyKSBBdHRlbXB0IHRvIHJlYWQgZGF0YSBpbiBFQ0MgbW9kZSB3 aWxsIGZhaWwsIGJlY2F1c2UgSUlVQyBwYWdlIGlzIGluIGRpcnR5Cj4gPj4+Pj4+Pj4+IMKgwqDC oMKgwqAgc3RhdGUgKEkgbWVhbiB3YXMgd3JpdHRlbiBhdCBsZWFzdCBvbmNlKSBhbmQgTkFORCBj b250cm9sbGVyIHRyaWVzIHRvIHVzZQo+ID4+Pj4+Pj4+PiDCoMKgwqDCoMKgIEVDQyBjb2RlcyBh dCAweDQwMCBhbmQgMHg4MTAsIHdoaWNoIGFyZSBvYnZpb3VzbHkgYnJva2VuIGluIHRoaXMgY2Fz ZS4gVGh1cyAgCj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiBBcyBpIHNhaWQgYWJvdmUsIHdyaXRlX29v Yl9yYXcoKSBhbmQgd3JpdGVfb29iKCkgc2hvdWxkIGJlIHJld29ya2VkLgo+ID4+Pj4+Pj4+IGkg ZG9uJ3Qga25vdyB3aGF0IGRvIHlvdSBtZWFuIHBhZ2Ugd2FzIHdyaXR0ZW4gYXQgbGVhc3Qgb25j ZS4gYW55d2F5IHRoZSBwYWdlIHNob3VsZCBiZSB3cml0dGVuIG9uY2UsIGV2ZW4ganVzdCB3cml0 ZV9vb2JfcmF3KCkuICAKPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBTb3JyeSwgWW91IG1lYW4gdGhhdCBh ZnRlciBPT0Igd3JpdGUsIHdlIGNhbm5vdCB3cml0ZSB0byB0aGUgZGF0YSBhcmVhIChlLmcuIDB4 MCAuLiAweDgxMCkgdW50aWwgcGFnZSB3aWxsIGJlIGVyYXNlZD8gRm9yIGV4YW1wbGUKPiA+Pj4+ Pj4+IEpGRlMyIHdyaXRlcyB0byBPT0Igb3duIG1hcmtlcnMsIHRoZW4gaXQgdHJpZXMgdG8gd3Jp dGUgdG8gdGhlIGRhdGEgYXJlYSBvZiBzdWNoIHBhZ2UuICAKPiA+Pj4+Pgo+ID4+Pj4+IEBMaWFu ZywgSSdsbCBkZXNjcmliZSBjdXJyZW50IHRlc3QgY2FzZSBpbiBkZXRhaWxzOgo+ID4+Pj4+IDEp IEkgaGF2ZSBlcmFzZWQgcGFnZSwgSSBjYW4gcmVhZCBpdCBpbsKgIGJvdGggcmF3IGFuZCBlY2Mg bW9kZXMgLSBubyBwcm9ibGVtIChpdCBpcyBmdWxsIG9mIDB4RkYpLgo+ID4+Pj4+IDIpIEkgKEpG RlMyIGZvciBleGFtcGxlKSB3YW50IHRvIHdyaXRlIG9ubHkgT09CIC0gbGV0IGl0IGJlIGNsZWFu IG1hcmtlcnMuCj4gPj4+Pj4gMykgSSB1c2UgcmF3IHdyaXRlIHRvIHRoZSBuZWVkZWQgcGFnZSAo cGxlYXNlIGNvcnJlY3QgbWUgaWYgaSdtIHdyb25nKS4gRm91ciBieXRlcwo+ID4+Pj4+IMKgwqDC oMKgIGF0IDB4NDAwIGFuZCAweDgxMCBhcmUgdXBkYXRlZC4gQWxsIG90aGVyIGJ5dGVzIHN0aWxs IDB4ZmYuCj4gPj4+Pj4gNCkgTm93LCB3aGVuIGknbSB0cnlpbmcgdG8gcmVhZCB0aGlzIHBhZ2Ug aW4gRUNDIG1vZGUsIEkgZ2V0IEVDQyBlcnJvcnM6IElJVUMgdGhpcwo+ID4+Pj4+IMKgwqDCoMKg IGhhcHBlbnMgYmVjYXVzZSBmcm9tIGNvbnRyb2xsZXIgcG9pbnQgb2YgdmlldyBFQ0MgY29kZXMg YXJlIGludmFsaWQgZm9yIGN1cnJlbnQKPiA+Pj4+PiDCoMKgwqDCoCBkYXRhIChhbGwgRUNDcyBh cmUgMHhmZikuIElzIHRoaXMgYmVoYXZpb3VyIGlzIG9rPyAgCj4gPj4+Pgo+ID4+Pj4gWWVzLCBp dCBpcyBleGFjdGx5IHJlcG9ydGVkIEVDQyBlcnJvcnMuICAKPiA+Pj4KPiA+Pj4gSSBzZWUsIHNv IGlmIHdlIHdyaXRlIE9PQiAoZS5nLiB1c2luZyByYXcgbW9kZSksIHRoZXJlIGlzIG5vIHdheSB0 byByZWFkIHRoaXMgcGFnZSBpbiBFQ0MgbW9kZSBsYXRlcj8gQW5kIHRoZSAgCj4gPiAKPiA+IE9m IGNvdXJzZSwgdGhlcmUgaXMgbm8gRUNDIHBhcml0eSBieXRlcyBpbiBpdDsgb3IgcmF3IHdyaXRl IHRoZSBkYXRhIHdpdGggdGhlIEVDQyBwYXJpdHkgYnl0ZXMgcGVyIHRoZSBsYXlvdXQgKEEpIHlv dSBkZXNjcmliZSBhYm92ZS4KPiA+ICAgCj4gCj4gQnV0IGRvbid0IGl0IGxvb2tzIGxpa2Ugc3Ry YW5nZT8gSnVzdCB3cml0aW5nIE9PQiBtYWtlcyBwYWdlIHVucmVhZGFibGU/IE1heSBiZSBpdCBp cyBiZXR0ZXIgdG8gbW92ZSBPT0IgZGF0YQo+IG91dCBvZiBFQ0MgYXJlYSBhcyBJIHN1Z2dlc3Rl ZCBpbiB2Mj8KPiAKPiA+Pj4gb25seSB3YXkgdG8gbWFrZSBpdCByZWFkYWJsZSBpcyB0byB3cml0 ZSBpdCBpbiBFQ0MgbW9kZSwgYnV0IGJlZm9yZSB0aGlzIHdyaXRlLCB3ZSBuZWVkIHRvIHJlYWQg aXQncwo+ID4+PiB1c2VyJ3MgYnl0ZSAoZnJvbSBwcmV2aW91cyBPT0Igd3JpdGUpIGluIHJhdyBt b2RlLCBwdXQgaXQgdG8gaW5mbyBidWYgKGFzIHVzZXIncyBieXRlcykgYW5kIHdyaXRlIHRoaXMg cGFnZS4gSW4gdGhpcwo+ID4+PiBjYXNlIE5BTkQgY29udHJvbGxlciB3aWxsIGdlbmVyYXRlIEVD QyBjb2RlcyBpbmNsdWRpbmcgdXNlcidzIGJ5dGUgYW5kIHBhZ2UgYmVjb21lIHJlYWRhYmxlIGlu IEVDQyBtb2RlCj4gPj4+IGFnYWluLiAgCj4gPiAKPiA+IHllcywgeW91IGFyZSByaWdodC4KPiA+ ICAgCj4gPj4+ICAKPiA+Pj4+ICAKPiA+Pj4+PiA1KSBPaywgZG9uJ3QgY2FyZSBvbiB0aGVzZSBF Q0MgZXJyb3JzLCBsZXQncyBnbyBmdXJ0aGVyLgo+ID4+Pj4+IDYpIEknbSBnb2luZyB0byB3cml0 ZSBzYW1lIHBhZ2UgaW4gRUNDIG1vZGUgLSBob3cgdG8gZG8gaXQgY29ycmVjdGx5PyBUaGVyZSBp cyBhbHJlYWR5Cj4gPj4+Pj4gwqDCoMKgwqAgNCBPT0IgYnl0ZXMsIGNvbnNpZGVyZWQgdG8gYmUg Y292ZXJlZCBieSBFQ0MgKGJ1dCBpbiBmYWN0IG5vdyAtIEVDQyBhcmVhIGlzIEZGZWQpLiAgCj4g Pj4+Pgo+ID4+Pj4gSWYgc3RlcCA0IGhhcyBleGN1dGVkICJwcm9ncmFtIiBjb21tYW5kIGF0IHRo ZSBwYWdlIChuYW5kX3dyaXRlX29vYl9zdGQoKSBkb2VzKSwgaXQgY2FuJ3QgYmUgd3JpdHRlbiBh Z2FpbiBiZWZvcmUgZXJhc2luZyB0aGUgcGFnZShibG9jaykuIHNvIHdlIGhhdmUgdG8gcmVhZCB0 aGUgd2hvbGUgcGFnZSBpbiB0aGUgZGRyIGFuZCBjaGFuZ2UgdGhlIGNvbnRlbnQsIGVyYXNlIGJs b2NrLCB3cml0ZSBpdCBhZ2Fpbi4KPiA+Pj4+Cj4gPj4+PiBJIGRvbid0IHRoaW5rIEpmZnMyIGhh cyB0aGUgc2FtZSBzdGVwcyAoMS02KSBhcyB5b3Ugc2FpZCBhYm92ZS4gYXJlIHlvdSBzdXJlIHRo YXQgaGFwcGVzIG9uIEpmZnMyIG9yIGp1c3QgYW4gZXhhbXBsZT8gIAo+ID4+Cj4gPj4gIAo+ID4+ Pgo+ID4+PiBJIGp1c3QgY2hlY2tlZCBKRkZTMiBtb3VudC91bW91bnQgYWdhaW4sIGhlcmUgaXMg d2hhdCBpIHNlZToKPiA+Pj4gMCkgRmlyc3QgYXR0ZW1wdCB0byBtb3VudCBKRkZTMi4KPiA+Pj4g MSkgSXQgd3JpdGVzIE9PQiB0byBwYWdlIE4gKGknbSB1c2luZyByYXcgd3JpdGUpLiBJdCBpcyBj bGVhbm1hcmtlciB2YWx1ZSAweDg1IDB4MTkgMHgwMyAweDIwLiBNb3VudCBpcyBkb25lLgo+ID4+ PiAyKSBVbW91bnQgSkZGUzIuIERvbmUuCj4gPj4+IDMpIFNlY29uZCBhdHRlbXB0IHRvIG1vdW50 IEpGRlMyLgo+ID4+PiA0KSBJdCByZWFkcyBPT0IgZnJvbSBwYWdlIE4gKGknbSB1c2luZyByYXcg cmVhZCkuIFZhbHVlIGlzIDB4ODUgMHgxOSAweDAzIDB4MjAuIERvbmUuCj4gPj4+IDUpIEl0IHJl YWRzIHBhZ2UgTiBpbiBFQ0MgbW9kZSwgYW5kIGkgZ2V0Ogo+ID4+PiDCoMKgwqDCoCBqZmZzMjog bXRkLT5yZWFkKDB4MTAwIGJ5dGVzIGZyb20gTikgcmV0dXJuZWQgRUNDIGVycm9yCj4gPj4+IDYp IE1vdW50IGZhaWxlZC4KPiA+Pj4KPiA+Pj4gV2UgYWxyZWFkeSBoYWQgcHJvYmxlbSB3aGljaCBs b29rcyBsaWtlIHRoaXMgb24gYW5vdGhlciBkZXZpY2UuIFNvbHV0aW9uIHdhcyB0byB1c2UgT09C IGFyZWEgd2hpY2ggaXMKPiA+Pj4gbm90IGNvdmVyZWQgYnkgRUNDIGZvciBKRkZTMiBjbGVhbm1h cmtlcnMuICAKPiA+IAo+ID4gb2ssIHNvIHRoZXJlIGlzIG5vdCBFQ0MgcGFyaXR5IGJ5dGVzIGFu ZCBtdGQtPnJlYWQoKSByZXR1cm5zIEVDQyBlcnJvci4KPiA+IGRvZXMgaXQgaGF2ZSB0byB1c2Ug cmF3IHdyaXRlL3JlYWQgb24gc3RlcCAxKSBhbmQgNCk/Cj4gPiAgIAo+IAo+IElmIGknbSB1c2lu ZyBub24gcmF3IGFjY2VzcyB0byBPT0IsIGZvciBleGFtcGxlIHdyaXRlIE9PQiAodXNlciBieXRl cykgaW4gRUNDIG1vZGUsIHRoZW4KPiBzdGVwcyAxKSBhbmQgNCkgYW5kIDUpIHBhc3NlcyBvaywg YnV0IHdyaXRlIHRvIHRoaXMgcGFnZSB3aWxsIGJlIGltcG9zc2libGUgKGZvciBleGFtcGxlIEpG RlMyCj4gd3JpdGVzIHRvIHN1Y2ggcGFnZXMgbGF0ZXIpIC0gd2UgY2FuJ3QgdXBkYXRlIEVDQyBj b2RlcyBwcm9wZXJseSB3aXRob3V0IGVyYXNpbmcgd2hvbGUgcGFnZS4KPiBXcml0ZSBvcGVyYXRp b24gd2lsbCBiZSBkb25lIHdpdGhvdXQgcHJvYmxlbSwgYnV0IHJlYWQgd2lsbCB0cmlnZ2VyIEVD QyBlcnJvcnMgZHVlIHRvIGJyb2tlbgo+IEVDQyBjb2Rlcy4KPiAKPiBJbiBnZW5lcmFsIHByb2Js ZW0gdGhhdCB3ZSBkaXNjdXNzIGlzIHRoYXQgaW4gY3VycmVudCBpbXBsZW1lbnRhdGlvbiBkYXRh IGFuZCBPT0IgY29uZmxpY3RzCj4gd2l0aCBlYWNoIG90aGVyIGJ5IHNoYXJpbmcgc2FtZSBFQ0Mg Y29kZXMsIHRoZXNlIEVDQyBjb2RlcyBjb3VsZCBiZSB3cml0dGVuIG9ubHkgb25jZSAod2l0aG91 dAo+IGVyYXNpbmcpLCB3aGlsZSBkYXRhIGFuZCBPT0IgaGFzIGRpZmZlcmVudCBjYWxsYmFja3Mg dG8gYWNjZXNzIGFuZCB0aHVzIHN1cHBvc2VkIHRvIHdvcmsKPiBzZXBhcmF0ZWx5LgoKVGhlIGZh Y3QgdGhhdCB0aGVyZSBtaWdodCBiZSBoZWxwZXJzIGp1c3QgZm9yIHdyaXRpbmcgT09CIGFyZWFz IG9yIGp1c3QKaW4tYmFuZCBhcmVhcyBhcmUgb3B0aW1pemF0aW9ucy4gTkFORCBwYWdlcyBhcmUg bWVhbnQgdG8gYmUgd3JpdHRlbiBhCnNpbmdsZSB0aW1lLCBubyBtYXR0ZXIgd2hhdCBwb3J0aW9u IHlvdSB3cml0ZS4gSW4gc29tZSBjYXNlcywgaXQgaXMKcG9zc2libGUgdG8gcGVyZm9ybSBzdWJw YWdlIHdyaXRlcyBpZiB0aGUgY2hpcCBzdXBwb3J0cyBpdC4gUGFnZXMgbWF5CmJlIHNwbGl0IGlu dG8gc2V2ZXJhbCBhcmVhcyB3aGljaCBjb3ZlciBhIHBhcnRpYWwgaW4tYmFuZCBhcmVhICphbmQq IGEKcGFydGlhbCBPT0IgYXJlYS4gSWYgeW91IHdyaXRlIGludG8gdGhlIGluLWJhbmQgKm9yKiBv dXQtb2YtYmFuZCBhcmVhcwpvZiBhIGdpdmVuIHN1YnBhZ2UsIHlvdSAqY2Fubm90KiB3cml0ZSB0 aGUgb3RoZXIgcGFydCBsYXRlciB3aXRob3V0CmVyYXNpbmcuCgpUaGFua3MsCk1pcXXDqGwKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1r ZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJu ZWwK