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 57CB0EA3F36 for ; Tue, 10 Feb 2026 10:13:00 +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:Message-ID:Date:References :In-Reply-To:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=+XTUiGIVJnEnrKCqVXf/Ze9Dpm551eKLsQQDzAhznoI=; b=oJf4YY+LXt2T5H rUKRz4SFSTd5HqgG30gyQVYETBwmQXShGz5ppxWQfWcBq7pACObRU0a6QmN6Sri4vnBClZFbFBsmU rI6gViihvR2cm9AfFmQ/EJXgUP7vmFpD4n1JCRMt058paE7jXsS5mmC2XZ6gWr9P7/kQ9OVaKTcbi KNj/yCjhiF6WpN0jkpxFclR2sXJGBkiSQB0tXu0f2YAjXbMWbJpQVkYl7g07RO5hLaStbfc+V7LGJ EXN/vWvqRBewMuaYE55sLN2DNaENHIeEGUTZDUSBLOSOGlgnGlQ8is8F9SwizoNt+QMsr2eGmb32y p/AEIFQI68WDzLW3rFZA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vpkjq-0000000Gp3q-0MDg; Tue, 10 Feb 2026 10:12:58 +0000 Received: from smtpout-03.galae.net ([185.246.85.4]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vpkjm-0000000Gp3C-3WLT for linux-mtd@lists.infradead.org; Tue, 10 Feb 2026 10:12:56 +0000 Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id A8AEE4E40BCF; Tue, 10 Feb 2026 10:12:50 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 7D6CA606BD; Tue, 10 Feb 2026 10:12:50 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 58BDF119D1118; Tue, 10 Feb 2026 11:12:45 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1770718369; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=13CJ6GcsDkfjvHlrjdlrrF8UPpH9+R7ZGOa7PZoy5uI=; b=Vr4CfPIzA8e6u3hIVXR6Pow/Tgvhi4HtXeETB48PN7iJqHEBpxbsBD6YfT4b9/TtNhEcul JC+S/t2Tm7Ba05XW3rgBvsc9MebVPYazk5UAte4IMY+ZofjvhTGq99hpYNV8nYTY+tggEa u83STRE9swA3TUGuHAvP4r4q2ANmFjvNcgOibMQh0TW5uPu2mSzkvY5LYL5NiKLi5IFWdJ G65ui02qbsMv2oSP4y7ULuJvswyKQuoffexuGYwlFIDILId1tqxSL5f6+rTwm6m5XBFqV6 2zQKPxcRilaG76Dr0fsq1xcYmFWH4fX031GKUx5jqPOW0Gv0kSLh2BlZyMbMYw== From: Miquel Raynal To: Andrea Scian Cc: "linux-mtd@lists.infradead.org" , "michal.simek@amd.com" , "richard@nod.at" , "vigneshr@ti.com" , "amit.kumar-mahapatra@amd.com" Subject: Re: PL353 NAND Controller - SW vs HW ECC In-Reply-To: (Andrea Scian's message of "Mon, 9 Feb 2026 11:37:37 +0000") References: User-Agent: mu4e 1.12.7; emacs 30.2 Date: Tue, 10 Feb 2026 11:12:45 +0100 Message-ID: <87v7g4zz36.fsf@bootlin.com> MIME-Version: 1.0 X-Last-TLS-Session-Version: TLSv1.3 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260210_021255_178913_16CE1420 X-CRM114-Status: GOOD ( 47.92 ) 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 SGkgQW5kcmVhLAoKT24gMDkvMDIvMjAyNiBhdCAxMTozNzozNyBHTVQsIEFuZHJlYSBTY2lhbiA8 YW5kcmVhLnNjaWFuQGRhdmUuZXU+IHdyb3RlOgoKPiBEZWFyIGFsbCwKPgo+IEkgaG9wZSBJIGRv bid0IGFubm95aW5nIHlvdSBieSBwdXR0aW5nIGRpcmVjdGx5IGluIENDLCBidXQgdGhlc2UgcGVv cGxlIGFyZSB0aGUgb25lIHRoYXQgd2VyZSBhbHJlYWR5IGludm9sdmVkIGluIG15IHBhdGNoIHRv IGZpeCBTVyBFQ0Mgc3VwcG9ydCBpbiBQTDM1MyBOQU5EIGNvbnRyb2xsZXIgKG1haW5seSB1c2Vk IGluIFhpbGlueC9BTUQgWnlucTdrIFNvQyksIGFuZCBJIHRoaW5rIGFyZSB0aGUgb25lIHRoYXQg bWlnaHQgaGVscCBtZSB3aXRoIHRoaXMgZm9sbG93LXVwLgo+Cj4gT3VyIHN0YW5kYXJkIEhXL1NX IHZhbGlkYXRpb24gcHJvY2VkdXJlIGZvciBCU1BzIGluY2x1ZGVzIChhZnRlciBzb21lIGJhc2lj IGZ1bmN0aW9uYWwgdGVzdHMpIHJhdyBOQU5EIE1URCB0ZXN0cy4KPgo+IFVzdWFsbHkgd2UgY2hl Y2sgRUNDIGZ1bmN0aW9uYWxpdHkgd2l0aCBtdGRfbmFuZGJpdGVycnMgYnV0IGl0J3Mgd2F5Cj4g b2YgdGVzdGluZyBFQ0MgY29ycmVjdGlvbiBpcyBxdWl0ZSBvYnNjdXJlIGFuZCB1bm1haW50YWlu ZWQgKHNlZSBhCj4gdGhyZWFkIGJldHdlZW4gbWUgYW5kIE1pcXVlbCBvbiB0aGlzIG1haWxpbmcg bGlzdCBpbiBEZWNlbWJlciAyMDI1IG9uCj4gdGhpcyB0b3BpYykuCgpXZSBzdG9wcGVkIGRldmVs b3BpbmcgdGhlIGtlcm5lbCBtb2R1bGVzLCBmb3IgdGVzdGluZyB3ZSBhZHZpc2UgdG8gdXNlCnRo ZSBzYW1lIHRvb2xzIGZyb20gdGhlIG10ZC11dGlscyB0ZXN0IHN1aXRlIHdoaWNoIGFyZSBhY3Rp dmVseQptYWludGFpbmVkLgoKbmFuZGJpdGVycnMgLWkgaXMgdGhlIGNvcnJlY3QgdG9vbCBmb3Ig dGVzdGluZyB5b3VyIEVDQyBlbmdpbmUuIEl0IHdvcmtzCnRoaXMgd2F5IChmcm9tIG1lbW9yeSwg bWF5YmUgbm90IDEwMCUgYWNjdXJhdGUsIGJ1dCB0aGF0J3MgdGhlIGlkZWEpOgoqIE9uZSB0aW1l OgotIHdyaXRlIGEgKHBzZXVkbykgcmFuZG9tIGNvbnRlbnQKLSByZWFkcyBpdCBiYWNrIGFuZCB2 ZXJpZnkgdGhlIGNvbnRlbnQsIGV4cGVjdCAwIGJmCi0gcmVhZHMgaXQgYmFjayBpbiByYXcgbW9k ZSwgaW5jbHVkaW5nIHRoZSBPT0IgYXJlYSB3aXRoIHRoZSBFQ0MgYnl0ZXMKCiogUmVwZWF0czoK LSBpbnNlcnQgYSBiaXRmbGlwIGluIHRoZSBmaXJzdCBzdWJwYWdlCi0gd3JpdGUgaXQgaW4gcmF3 IG1vZGUgdG8gZm9yY2UgdGhlIGJpdGZsaXAKLSByZWFkcyBpdCBiYWNrIGFuZCBleHBlY3QgdGhl IGRhdGEgdG8gYmUgY29ycmVjdGVkLCBiaXRmbGlwIGNvdW50IHNoYWxsCiAgYmUgcmVwb3J0ZWQu IElmIGRhdGEgaXMgaW5jb3JyZWN0LCBwYWdlIGhlbHBlcnMgYXJlIGluY29ycmVjdC4KCiogRmlu aXNoZXM6CldoZW4gcmVhY2hpbmcgdGhlIHRocmVzaG9sZCBvZiB5b3VyIGVuZ2luZSwgeW91IHNo b3VsZCBleHBlY3QgYW4gRUNDCmVycm9yIHdoaWNoIGluZGljYXRlcyBhIHN1Y2Nlc3MgZm9yIHRo ZSB0ZXN0LiBJZiB5b3UgZ2V0IHBhc3NlZCB0aGUKdGhyZXNob2xkLCB0aGUgRUNDIGVuZ2luZSBp cyBub3QgZnVuY3Rpb25hbC4gSWYgdGhlIHRlc3Qgc3RvcHMgYmVmb3JlCnRoZSB0aHJlc2hvbGQs IHNvbWV0aGluZyBpcyB3cm9uZyBpbiB5b3VyIGNvbmZpZ3VyYXRpb24gb3IgRUNDIGVuZ2luZS4K Cj4gV2UndmUgdGh1cyBtb3ZlZCB0byB1c2Vyc3BhY2UgbmFuZGZsaXBiaXRzIHdoaWNoIGdpdmUg bXVjaCBtb3JlCj4gY29udHJvbCBvbiBiaXRmbGlwIGdlbmVyYXRpb24sIG1ha2luZyBlYXNpZXIg dG8gdW5kZXJzdGFuZCBpZgo+IGV2ZXJ5dGhpbmcncyBmaW5lIG9yIG5vdC4KCm5hbmRmbGlwYml0 cyBpcyBtb3JlIGZsZXhpYmxlIGJ1dCBsZXNzIGF1dG9tYXRlZC4gSXQgd29ya3MgaWRlbnRpY2Fs bHksCmV4Y2VwdCBJIGJlbGlldmUgaXQgZXJhc2VzIGJlZm9yZSByZXdyaXRpbmcgaW4gcmF3IG1v ZGUgKHdoaWNoIGlzIGEKc3VidGxlIGRpZmZlcmVuY2UsIHRoaXMgbWF5IGhhdmUgYW4gaW1wYWN0 IHdpdGggc29tZSAtcmFyZS0gY2hpcHMpLgoKPiBCeSB1c2luZyB0aGlzIHRvb2wsIEknbSBhYmxl IHRvIHJlcHJvZHVjZSB3aGF0IEkgdGhpbmsgaXMgYSBQTDM1MyBIVwo+IEVDQyBtYWxmdW5jdGlv biwgdGhhdCBJIHRoaW5rIGlzIGhhcmR3YXJlIHJlbGF0ZWQgKHRoZXJlJ3Mgc29tZSwKPiBjcnlw dGljIElNSE8sIGVycmF0YSBvbiB0aGlzKSBidXQgSSBtYXkgYmUgbWlzc2luZyBzb21ldGhpbmcg YW5kIGl0Cj4gbWF5IGJlICJqdXN0IiBhIHNvZnR3YXJlIGJ1ZyBUaGVyZSdzIGFsc28gdGhlIG9i dmlvdXMgM3JkIG9wdGlvbjoKPiBQRUJLQUMuIEknbSBkb2luZyBzb21ldGhpbmcgd3Jvbmcgd2l0 aCBteSB0ZXN0IHNldHVwLCBlaXRoZXIgb24KPiBrZXJuZWwvdGVzdCBjb25maWd1cmF0aW9uL3Vz YWdlIG9yIGluIGh3IHNldHVwIDstKSApCgpJIGFtIGludGVyZXN0ZWQgYnkgdGhpcyBlcnJhdGEs IGRvIHlvdSBoYXZlIGEgbGluaz8gSSBkbyBub3QgcmVtZW1iZXIKc2VlaW5nIGl0IHdoZW4gSSB3 b3JrZWQgb24gdGhpcyBjb250cm9sbGVyLgoKPiBTdGVwIDEgLSBTVyBFQ0MKPgo+IFRoYW5rcyB0 byBteSBwYXRjaCAoYW5kIG1haWxpbmcgbGlzdCByZXZpZXcpIG5vdyBJIGNhbiB1c2UgU1cgSGFt bWluZyBFQ0Mgb24gWnlucTdrIGJhc2VkIGRldmljZXMuIFNvIHRoaXMgdGVzdCBpcyBhYm91dCB1 c2luZyBzb2Z0d2FyZSBoYW1taW5nIEVDQyBvbiAoMSBiaXQgb24gMjU2IGJ5dGUpCj4KPiBUaGlz IGlzIHRoZSBkZXZpY2UgdHJlZQo+Cj4gJm5mYzAgewo+ICAgc3RhdHVzID0gIm9rYXkiOwo+ICAg bmFuZEAwIHsKPiAgICAgcmVnID0gPDB4MD47Cj4gICAgICNhZGRyZXNzLWNlbGxzID0gPDB4MT47 Cj4gICAgICNzaXplLWNlbGxzID0gPDB4MT47Cj4KPiAgICAgbmFuZC1lY2MtbW9kZSA9ICJzb2Z0 IjsKPiAgICAgbmFuZC1lY2MtYWxnbyA9ICJoYW1taW5nIjsKPiAgICAgbmFuZC1lY2Mtc3RyZW5n dGggPSA8MT47Cj4gICAgIG5hbmQtZWNjLXN0ZXAtc2l6ZSA9IDwyNTY+Owo+Cj4gICAgIG5hbmQt b24tZmxhc2gtYmJ0Owo+Cj4gICAgIG5hbmQtYnVzLXdpZHRoID0gPDg+Owo+ICAgICBzdGF0dXMg PSAib2theSI7Cj4KPiAgICAgcGFydGl0aW9uQG5hbmQtdWJpIHsKPiAgICAgICBsYWJlbCA9ICJ1 YmkiOwo+ICAgICAgIHJlZyA9IDwweDAwMDAwMDAwIDB4MD47Cj4gICAgIH07Cj4gICB9Owo+IH07 Cj4KPiBUbyBtYWtlIGl0IHF1aWNrLCBJJ20gdXNpbmcganVzdCB0aGUgZmlyc3QgRUIsIHdpdGgg YSBzaW1wbGUgc3RyaW5nIG9uIGl0IChpbiBteSBjYXNlLAo+IHRoaXMgaXMgdXNlZnVsIGZvciB0 ZXN0aW5nIG9uIHUtYm9vdCB0b28sIGJ1dCB0aGlzIGlzIGZvciBhbm90aGVyIHNlcGFyYXRlIHRo cmVhZCA7LSkgKQo+Cj4gcm9vdEBzdzAwMDUtZGV2ZWw6fiMgZmxhc2hfZXJhc2UgL2Rldi9tdGQw IDAgMQo+IEVyYXNpbmcgMTI4IEtpYnl0ZSBAIDAgLS0gMTAwICUgY29tcGxldGUKPiByb290QHN3 MDAwNS1kZXZlbDp+IyBlY2hvIGp1c3QgdGVzdGluZyB8IG5hbmR3cml0ZSAtcCAvZGV2L210ZDAK PiBXcml0aW5nIGRhdGEgdG8gYmxvY2sgMCBhdCBvZmZzZXQgMHgwCj4gcm9vdEBzdzAwMDUtZGV2 ZWw6fiMgbmFuZGR1bXAgLWMgLXMgMCAtLWxlbmd0aD0xMDAgL2Rldi9tdGQwICB8IGhlYWQgLW4g MQo+IEVDQyBmYWlsZWQ6IDAKPiBFQ0MgY29ycmVjdGVkOiAwCj4gTnVtYmVyIG9mIGJhZCBibG9j a3M6IDAKPiBOdW1iZXIgb2YgYmJ0IGJsb2NrczogNAo+IEJsb2NrIHNpemUgMTMxMDcyLCBwYWdl IHNpemUgMjA0OCwgT09CIHNpemUgNjQKPiBEdW1waW5nIGRhdGEgc3RhcnRpbmcgYXQgMHgwMDAw MDAwMCBhbmQgZW5kaW5nIGF0IDB4MDAwMDAwNjQuLi4KPiAweDAwMDAwMDAwOiA2YSA3NSA3MyA3 NCAyMCA3NCA2NSA3MyA3NCA2OSA2ZSA2NyAwYSBmZiBmZiBmZiAgfGp1c3QgdGVzdGluZy4uLi58 Cj4KPiBJJ20gbm93IGluc2VydGluZyBvbmUgYml0ZmxpcCwgd2hpY2ggaXMgZGV0ZWN0ZWQgYW5k IGNvcnJlY3RlZCBhcyBleHBlY3RlZAo+Cj4gcm9vdEBzdzAwMDUtZGV2ZWw6fiMgbmFuZGZsaXBi aXRzIC9kZXYvbXRkMCAwQDEKPiByb290QHN3MDAwNS1kZXZlbDp+IyBuYW5kZHVtcCAtbiAtYyAt cyAwIC0tbGVuZ3RoPTEwMCAvZGV2L210ZDAgIHwgaGVhZCAtbiAxCj4gQmxvY2sgc2l6ZSAxMzEw NzIsIHBhZ2Ugc2l6ZSAyMDQ4LCBPT0Igc2l6ZSA2NAo+IER1bXBpbmcgZGF0YSBzdGFydGluZyBh dCAweDAwMDAwMDAwIGFuZCBlbmRpbmcgYXQgMHgwMDAwMDA2NC4uLgo+IDB4MDAwMDAwMDA6IDZh IDc0IDczIDc0IDIwIDc0IDY1IDczIDc0IDY5IDZlIDY3IDBhIGZmIGZmIGZmICB8anRzdCB0ZXN0 aW5nLi4uLnwKPiByb290QHN3MDAwNS1kZXZlbDp+IyBuYW5kZHVtcCAtYyAtcyAwIC0tbGVuZ3Ro PTEwMCAvZGV2L210ZDAgIHwgaGVhZCAtbiAxCj4gRUNDIGZhaWxlZDogMAo+IEVDQyBjb3JyZWN0 ZWQ6IDAKPiBOdW1iZXIgb2YgYmFkIGJsb2NrczogMAo+IE51bWJlciBvZiBiYnQgYmxvY2tzOiA0 Cj4gQmxvY2sgc2l6ZSAxMzEwNzIsIHBhZ2Ugc2l6ZSAyMDQ4LCBPT0Igc2l6ZSA2NAo+IER1bXBp bmcgZGF0YSBzdGFydGluZyBhdCAweDAwMDAwMDAwIGFuZCBlbmRpbmcgYXQgMHgwMDAwMDA2NC4u Lgo+IEVDQzogMSBjb3JyZWN0ZWQgYml0ZmxpcChzKSBhdCBvZmZzZXQgMHgwMDAwMDAwMAo+IDB4 MDAwMDAwMDA6IDZhIDc1IDczIDc0IDIwIDc0IDY1IDczIDc0IDY5IDZlIDY3IDBhIGZmIGZmIGZm ICB8anVzdCB0ZXN0aW5nLi4uLnwKPgo+IFdpdGggYW4gYWRkaXRpb25hbCBiaXRmbGlwLCB3ZSBo YXZlIGFuIHVuY29ycmVjdGFibGUgZXJyb3IgKGFuZCB0aGlzIGlzLCBhZ2FpbiwgZXhwZWN0ZWQp Cj4KPiByb290QHN3MDAwNS1kZXZlbDp+IyBuYW5kZmxpcGJpdHMgL2Rldi9tdGQwIDBAMgo+IHJv b3RAc3cwMDA1LWRldmVsOn4jIG5hbmRkdW1wIC1uIC1jIC1zIDAgLS1sZW5ndGg9MTAwIC9kZXYv bXRkMCAgfCBoZWFkIC1uIDEKPiBCbG9jayBzaXplIDEzMTA3MiwgcGFnZSBzaXplIDIwNDgsIE9P QiBzaXplIDY0Cj4gRHVtcGluZyBkYXRhIHN0YXJ0aW5nIGF0IDB4MDAwMDAwMDAgYW5kIGVuZGlu ZyBhdCAweDAwMDAwMDY0Li4uCj4gMHgwMDAwMDAwMDogNmEgNzQgNzIgNzQgMjAgNzQgNjUgNzMg NzQgNjkgNmUgNjcgMGEgZmYgZmYgZmYgIHxqdHJ0IHRlc3RpbmcuLi4ufAo+IHJvb3RAc3cwMDA1 LWRldmVsOn4jIG5hbmRkdW1wIC1jIC1zIDAgLS1sZW5ndGg9MTAwIC9kZXYvbXRkMCAgfCBoZWFk IC1uIDEKPiBFQ0MgZmFpbGVkOiAwCj4gRUNDIGNvcnJlY3RlZDogMQo+IE51bWJlciBvZiBiYWQg YmxvY2tzOiAwCj4gTnVtYmVyIG9mIGJidCBibG9ja3M6IDQKPiBCbG9jayBzaXplIDEzMTA3Miwg cGFnZSBzaXplIDIwNDgsIE9PQiBzaXplIDY0Cj4gRHVtcGluZyBkYXRhIHN0YXJ0aW5nIGF0IDB4 MDAwMDAwMDAgYW5kIGVuZGluZyBhdCAweDAwMDAwMDY0Li4uCj4gRUNDOiAxIHVuY29ycmVjdGFi bGUgYml0ZmxpcChzKSBhdCBvZmZzZXQgMHgwMDAwMDAwMAo+IDB4MDAwMDAwMDA6IDZhIDc0IDcy IDc0IDIwIDc0IDY1IDczIDc0IDY5IDZlIDY3IDBhIGZmIGZmIGZmICB8anRydCB0ZXN0aW5nLi4u LnwKPgo+IFRoZSBzYW1lIGFwcGxpZXMgdG8gYW5vdGhlciBjb21iaW5hdGlvbiBvZiBiaXRmbGlw cyAodGhpcyB3aWxsIGJlIHVzZWZ1bCBsYXRlciBhbmQgZG9uJ3QgbG9vayBhdCBFQ0MgY291bnRl cnMuLiBJIGhhZCB0byByZWJvb3QgdGhlIHN5c3RlbSA7LSkgKQo+Cj4gcm9vdEBzdzAwMDUtZGV2 ZWw6fiMgZmxhc2hfZXJhc2UgL2Rldi9tdGQwIDAgMQo+IEVyYXNpbmcgMTI4IEtpYnl0ZSBAIDAg LS0gMTAwICUgY29tcGxldGUKPiByb290QHN3MDAwNS1kZXZlbDp+IyBlY2hvIGp1c3QgdGVzdGlu ZyB8IG5hbmR3cml0ZSAtcCAvZGV2L210ZDAKPiBXcml0aW5nIGRhdGEgdG8gYmxvY2sgMCBhdCBv ZmZzZXQgMHgwCj4gcm9vdEBzdzAwMDUtZGV2ZWw6fiMgbmFuZGZsaXBiaXRzIC9kZXYvbXRkMCAw QDEKPiByb290QHN3MDAwNS1kZXZlbDp+IyBuYW5kZmxpcGJpdHMgL2Rldi9tdGQwIDBAMAo+IHJv b3RAc3cwMDA1LWRldmVsOn4jIG5hbmRkdW1wIC1jIC1zIDAgLS1sZW5ndGg9MTAwIC9kZXYvbXRk MCAgfCBoZWFkIC1uIDEKPiBFQ0MgZmFpbGVkOiAwCj4gRUNDIGNvcnJlY3RlZDogMAo+IE51bWJl ciBvZiBiYWQgYmxvY2tzOiAwCj4gTnVtYmVyIG9mIGJidCBibG9ja3M6IDQKPiBCbG9jayBzaXpl IDEzMTA3MiwgcGFnZSBzaXplIDIwNDgsIE9PQiBzaXplIDY0Cj4gRHVtcGluZyBkYXRhIHN0YXJ0 aW5nIGF0IDB4MDAwMDAwMDAgYW5kIGVuZGluZyBhdCAweDAwMDAwMDY0Li4uCj4gRUNDOiAxIHVu Y29ycmVjdGFibGUgYml0ZmxpcChzKSBhdCBvZmZzZXQgMHgwMDAwMDAwMAo+IDB4MDAwMDAwMDA6 IDZiIDc0IDczIDc0IDIwIDc0IDY1IDczIDc0IDY5IDZlIDY3IDBhIGZmIGZmIGZmICB8a3RzdCB0 ZXN0aW5nLi4uLnwKPgo+Cj4KPiBTdGVwIDIgLSBQTDM1MyBIVyBFQ0MKPgo+IFRoZSBkZXZpY2Ug dHJlZSBpcyBub3cKPiAmbmZjMCB7Cj4gICBzdGF0dXMgPSAib2theSI7Cj4gICBuYW5kQDAgewo+ ICAgICByZWcgPSA8MHgwPjsKPiAgICAgI2FkZHJlc3MtY2VsbHMgPSA8MHgxPjsKPiAgICAgI3Np emUtY2VsbHMgPSA8MHgxPjsKPgo+ICAgICBuYW5kLWVjYy1tb2RlID0gImh3IjsKPiAgICAgbmFu ZC1lY2Mtc3RyZW5ndGggPSA8MT47Cj4gICAgIG5hbmQtZWNjLXN0ZXAtc2l6ZSA9IDwyNTY+Owo+ Cj4gICAgIG5hbmQtb24tZmxhc2gtYmJ0Owo+Cj4gICAgIG5hbmQtYnVzLXdpZHRoID0gPDg+Owo+ ICAgICBzdGF0dXMgPSAib2theSI7Cj4KPiAgICAgcGFydGl0aW9uQG5hbmQtdWJpIHsKPiAgICAg ICBsYWJlbCA9ICJ1YmkiOwo+ICAgICAgIHJlZyA9IDwweDAwMDAwMDAwIDB4MD47Cj4gICAgIH07 Cj4gICB9Owo+IH07Cj4KPiBQbGVhc2Ugbm90ZSB0aGF0IFBMMzUzIGlzIG5vdCB1c2luZyBuYW5k LWVjYy1zdGVwLXNpemUgcHJvcGVydHkKPiBjb3JyZWN0bHksIGJ1dCB0aGlzIGlzIGEgc2Vjb25k YXJ5IGlzc3VlICh0aGlzIE5BTkQgZGV2aWNlIHJlcXVpcmVzIDEKPiBiaXQgb24gNTEyIGJ5dGUs IHNvIGl0J3MgZmluZSBhbnl3YXkpCgpDYW4geW91IGVsYWJvcmF0ZT8gTG9va2luZyBhdCB0aGUg ZHJpdmVyLCBpdCB0YWtlcyB0aGUgRUNDIGNvbmZpZ3VyYXRpb24KZnJvbSB0aGUgY29yZSAoaGVu Y2UsIHVzdWFsbHkgZnJvbSB0aGUgRFQpLCBvdGhlcndpc2UgaXQgZmFsbHMgYmFjayB0bwp3aGF0 IHRoZSBjaGlwIGFkdmVydGlzZXMgaW4gdGVybXMgb2YgcmVxdWlyZW1lbnRzLCBhbmQgZmluYWxs eSBpdCBmYWxscwpiYWNrIHRvIDFiLzUxMkIgYXMgZGVmYXVsdC4KCj4gcm9vdEBzdzAwMDUtZGV2 ZWw6L2xpYi9tb2R1bGVzIyBjYXQgL3N5cy9jbGFzcy9tdGQvbXRkMC9lY2Nfc3RlcF9zaXplCj4g NTEyCj4KPiBSZS1kb2luZyB0aGUgc2FtZSB0ZXN0IGFzIGFib3ZlCj4KPiByb290QHN3MDAwNS1k ZXZlbDp+IyBmbGFzaF9lcmFzZSAvZGV2L210ZDAgMCAxCj4gRXJhc2luZyAxMjggS2lieXRlIEAg MCAtLSAxMDAgJSBjb21wbGV0ZQo+IHJvb3RAc3cwMDA1LWRldmVsOn4jIGVjaG8ganVzdCB0ZXN0 aW5nIHwgbmFuZHdyaXRlIC1wIC9kZXYvbXRkMAo+IFdyaXRpbmcgZGF0YSB0byBibG9jayAwIGF0 IG9mZnNldCAweDAKPiByb290QHN3MDAwNS1kZXZlbDp+IyBuYW5kZHVtcCAtYyAtcyAwIC0tbGVu Z3RoPTEwMCAvZGV2L210ZDAgIHwgaGVhZCAtbiAxCj4gRUNDIGZhaWxlZDogMAo+IEVDQyBjb3Jy ZWN0ZWQ6IDAKPiBOdW1iZXIgb2YgYmFkIGJsb2NrczogMAo+IE51bWJlciBvZiBiYnQgYmxvY2tz OiA0Cj4gQmxvY2sgc2l6ZSAxMzEwNzIsIHBhZ2Ugc2l6ZSAyMDQ4LCBPT0Igc2l6ZSA2NAo+IER1 bXBpbmcgZGF0YSBzdGFydGluZyBhdCAweDAwMDAwMDAwIGFuZCBlbmRpbmcgYXQgMHgwMDAwMDA2 NC4uLgo+IDB4MDAwMDAwMDA6IDZhIDc1IDczIDc0IDIwIDc0IDY1IDczIDc0IDY5IDZlIDY3IDBh IGZmIGZmIGZmICB8anVzdCB0ZXN0aW5nLi4uLnwKPgo+IE9uZSBzaW5nbGUgYml0ZmxpcCBpcyBk ZXRlY3RlZCBhbmQgY29ycmVjdGVkIGFzIGV4cGVjdGVkOgo+Cj4gcm9vdEBzdzAwMDUtZGV2ZWw6 fiMgbmFuZGZsaXBiaXRzIC9kZXYvbXRkMCAwQDEKPiByb290QHN3MDAwNS1kZXZlbDp+IyBuYW5k ZHVtcCAtbiAtYyAtcyAwIC0tbGVuZ3RoPTEwMCAvZGV2L210ZDAgIHwgaGVhZCAtbiAxCj4gQmxv Y2sgc2l6ZSAxMzEwNzIsIHBhZ2Ugc2l6ZSAyMDQ4LCBPT0Igc2l6ZSA2NAo+IER1bXBpbmcgZGF0 YSBzdGFydGluZyBhdCAweDAwMDAwMDAwIGFuZCBlbmRpbmcgYXQgMHgwMDAwMDA2NC4uLgo+IDB4 MDAwMDAwMDA6IDZhIDc0IDczIDc0IDIwIDc0IDY1IDczIDc0IDY5IDZlIDY3IDBhIGZmIGZmIGZm ICB8anRzdCB0ZXN0aW5nLi4uLnwKPiByb290QHN3MDAwNS1kZXZlbDp+IyBuYW5kZHVtcCAtYyAt cyAwIC0tbGVuZ3RoPTEwMCAvZGV2L210ZDAgIHwgaGVhZCAtbiAxCj4gRUNDIGZhaWxlZDogMAo+ IEVDQyBjb3JyZWN0ZWQ6IDAKPiBOdW1iZXIgb2YgYmFkIGJsb2NrczogMAo+IE51bWJlciBvZiBi YnQgYmxvY2tzOiA0Cj4gQmxvY2sgc2l6ZSAxMzEwNzIsIHBhZ2Ugc2l6ZSAyMDQ4LCBPT0Igc2l6 ZSA2NAo+IER1bXBpbmcgZGF0YSBzdGFydGluZyBhdCAweDAwMDAwMDAwIGFuZCBlbmRpbmcgYXQg MHgwMDAwMDA2NC4uLgo+IEVDQzogMSBjb3JyZWN0ZWQgYml0ZmxpcChzKSBhdCBvZmZzZXQgMHgw MDAwMDAwMAo+IDB4MDAwMDAwMDA6IDZhIDc1IDczIDc0IDIwIDc0IDY1IDczIDc0IDY5IDZlIDY3 IDBhIGZmIGZmIGZmICB8anVzdCB0ZXN0aW5nLi4uLnwKPgo+IGEgMm5kIGJpdGZsaXAgaXMgZGV0 ZWN0ZWQgYXMgdW5jb3JyZWN0YWJsZSBhcyBleHBlY3RlZDoKPgo+IHJvb3RAc3cwMDA1LWRldmVs On4jIG5hbmRmbGlwYml0cyAvZGV2L210ZDAgMEAyCj4gcm9vdEBzdzAwMDUtZGV2ZWw6fiMgbmFu ZGR1bXAgLW4gLWMgLXMgMCAtLWxlbmd0aD0xMDAgL2Rldi9tdGQwICB8IGhlYWQgLW4gMQo+IEJs b2NrIHNpemUgMTMxMDcyLCBwYWdlIHNpemUgMjA0OCwgT09CIHNpemUgNjQKPiBEdW1waW5nIGRh dGEgc3RhcnRpbmcgYXQgMHgwMDAwMDAwMCBhbmQgZW5kaW5nIGF0IDB4MDAwMDAwNjQuLi4KPiAw eDAwMDAwMDAwOiA2YSA3NCA3MiA3NCAyMCA3NCA2NSA3MyA3NCA2OSA2ZSA2NyAwYSBmZiBmZiBm ZiAgfGp0cnQgdGVzdGluZy4uLi58Cj4gcm9vdEBzdzAwMDUtZGV2ZWw6fiMgbmFuZGR1bXAgLWMg LXMgMCAtLWxlbmd0aD0xMDAgL2Rldi9tdGQwICB8IGhlYWQgLW4gMQo+IEVDQyBmYWlsZWQ6IDAK PiBFQ0MgY29ycmVjdGVkOiAxCj4gTnVtYmVyIG9mIGJhZCBibG9ja3M6IDAKPiBOdW1iZXIgb2Yg YmJ0IGJsb2NrczogNAo+IEJsb2NrIHNpemUgMTMxMDcyLCBwYWdlIHNpemUgMjA0OCwgT09CIHNp emUgNjQKPiBEdW1waW5nIGRhdGEgc3RhcnRpbmcgYXQgMHgwMDAwMDAwMCBhbmQgZW5kaW5nIGF0 IDB4MDAwMDAwNjQuLi4KPiBFQ0M6IDEgdW5jb3JyZWN0YWJsZSBiaXRmbGlwKHMpIGF0IG9mZnNl dCAweDAwMDAwMDAwCj4gMHgwMDAwMDAwMDogNmEgNzQgNzIgNzQgMjAgNzQgNjUgNzMgNzQgNjkg NmUgNjcgMGEgZmYgZmYgZmYgIHxqdHJ0IHRlc3RpbmcuLi4ufAo+Cj4gQnV0IHRoZXJlJ3Mgc29t ZSBjb3JuZXIgY2FzZSwgZS5nLiBkb3VibGUgYml0IGZsaXAgdGhhdCBhcmUgZGV0ZWN0ZWQgKHdy b25nbHkpIGFzIHNpbmdsZSBiaXRmbGlwIGFuZCByZXR1cm4gd3JvbmcgZGF0YToKPgo+IHJvb3RA c3cwMDA1LWRldmVsOn4jIG5hbmRmbGlwYml0cyAvZGV2L210ZDAgMEAyCj4gcm9vdEBzdzAwMDUt ZGV2ZWw6fiMgbmFuZGZsaXBiaXRzIC9kZXYvbXRkMCAxQDEKPiByb290QHN3MDAwNS1kZXZlbDp+ IyBuYW5kZHVtcCAtYyAtcyAwIC0tbGVuZ3RoPTEwMCAvZGV2L210ZDAgIHwgaGVhZCAtbiAxCj4g RUNDIGZhaWxlZDogMQo+IEVDQyBjb3JyZWN0ZWQ6IDIKPiBOdW1iZXIgb2YgYmFkIGJsb2Nrczog MAo+IE51bWJlciBvZiBiYnQgYmxvY2tzOiA0Cj4gQmxvY2sgc2l6ZSAxMzEwNzIsIHBhZ2Ugc2l6 ZSAyMDQ4LCBPT0Igc2l6ZSA2NAo+IER1bXBpbmcgZGF0YSBzdGFydGluZyBhdCAweDAwMDAwMDAw IGFuZCBlbmRpbmcgYXQgMHgwMDAwMDA2NC4uLgo+IEVDQzogMSBjb3JyZWN0ZWQgYml0ZmxpcChz KSBhdCBvZmZzZXQgMHgwMDAwMDAwMAo+IDB4MDAwMDAwMDA6IDZhIDc2IDczIDc0IDIwIDc0IDY1 IDczIDc0IDY5IDZlIDY3IDBhIGZmIGZmIGZmICB8anZzdCB0ZXN0aW5nLi4uLnwKPgo+IEFub3Ro ZXIgZnVsbCB0ZXN0IGZyb20gc2NyYXRjaCAoRUNDIGNvcnJlY3RlZCBjb3VudGVyIGlzIGJpZ2dl ciB0aGF0IGV4cGVjdGVkIGJlY2F1c2UgSSBoYWQgdG8gdHJ5IGEgZmV3IGNvbWJpbmF0aW9uLCB3 aXRob3V0IHJlYm9vdGluZyA7LSkgKQo+Cj4gcm9vdEBzdzAwMDUtZGV2ZWw6fiMgZmxhc2hfZXJh c2UgL2Rldi9tdGQwIDAgMQo+IEVyYXNpbmcgMTI4IEtpYnl0ZSBAIDAgLS0gMTAwICUgY29tcGxl dGUKPiByb290QHN3MDAwNS1kZXZlbDp+IyBlY2hvIGp1c3QgdGVzdGluZyB8IG5hbmR3cml0ZSAt cCAvZGV2L210ZDAKPiBXcml0aW5nIGRhdGEgdG8gYmxvY2sgMCBhdCBvZmZzZXQgMHgwCj4gcm9v dEBzdzAwMDUtZGV2ZWw6fiMgbmFuZGZsaXBiaXRzIC9kZXYvbXRkMCAwQDEKPiByb290QHN3MDAw NS1kZXZlbDp+IyBuYW5kZmxpcGJpdHMgL2Rldi9tdGQwIDBAMAo+IHJvb3RAc3cwMDA1LWRldmVs On4jIG5hbmRkdW1wIC1jIC1zIDAgLS1sZW5ndGg9MTAwIC9kZXYvbXRkMCAgfCBoZWFkIC1uIDEK PiBFQ0MgZmFpbGVkOiAxCj4gRUNDIGNvcnJlY3RlZDogNgo+IE51bWJlciBvZiBiYWQgYmxvY2tz OiAwCj4gTnVtYmVyIG9mIGJidCBibG9ja3M6IDQKPiBCbG9jayBzaXplIDEzMTA3MiwgcGFnZSBz aXplIDIwNDgsIE9PQiBzaXplIDY0Cj4gRHVtcGluZyBkYXRhIHN0YXJ0aW5nIGF0IDB4MDAwMDAw MDAgYW5kIGVuZGluZyBhdCAweDAwMDAwMDY0Li4uCj4gRUNDOiAxIGNvcnJlY3RlZCBiaXRmbGlw KHMpIGF0IG9mZnNldCAweDAwMDAwMDAwCj4gMHgwMDAwMDAwMDogNmIgNzQgNzMgNzQgMjAgNzQg NjUgNzMgNzQgNjkgNmUgNjcgMGEgZmYgZmYgZmYgIHxrdHN0Cj4gdGVzdGluZy4uLi58CgpUaGlz IGlzIHNjYXJ5LgoKPiBDb25jbHVzaW9uczoKPgo+IElJVUMgd2l0aCB0aGUgcmVzdWx0cyBvZiB0 aGUgYWJvdmUgdGVzdCwgd2UgaGF2ZSBhbiBpc3N1ZSBvbiBQTDM1MyBiZWNhdXNlIGl0IGNhbm5v dCBkZXRlY3QgZG91YmxlIGJpdCBlcnJvcnMgKGF0IGxlYXN0IHNvbWUgY29tYmluYXRpb24gb2Yg dGhlbSkgYW5kLCB3aGlsZSB0aGlzIGlzIGEgcmFyZSBldmVudCBvbiBTTEMgTkFORCBkZXZpY2Vz ICh0aGF0IHJlcXVpcmVzIDEgYml0IEVDQyB0byBndWFyYW50ZWUgMTAwayBQRSBjeWNsZXMpLCBJ IHRoaW5rIHRoYXQgdGhpcyBtaWdodCBnaXZlIHNvbWUgY2F0YXN0cm9waGljIGZhaWx1cmVzIG9u IGZpZWxkIChiZWNhdXNlLCBBRkFJSywgdXBwZXIgTVREIGxheWVycywgbGlrZSBVQkksIGRvbid0 IGV4cGVjdCB0aGlzIHNpdHVhdGlvbikuCj4gQW0gSSB3cm9uZz8KCklmIHlvdSB1c2UgVUJJIG9u IHRvcCwgZGVwZW5kaW5nIG9uIHdoZXJlIHRoZSBiaXRmbGlwcyBhcmUsIHRoZXkgbWF5IGJlCmZv dW5kIGR1ZSB0byBVQkkgdXNpbmcgY2hlY2tzdW1zIHF1aXRlIGV4dGVuc2l2ZWx5LCBidXQgdGhp cyBpcyBjbGVhcmx5Cm5vdCB0aGUgbm9taW5hbCBjYXNlLiBUaGlzIGlzIGEgZGFuZ2Vyb3VzIGhh cmR3YXJlIGJ1Zy4KCj4gSSBraW5kbHkgYXNrIHRvIHRoZSBNVEQgZXhwZXJ0cyBpZiBJIGhhdmUg dG8gd29ycnkgYWJvdXQgdGhpcyBvciBpZiB3ZQo+IGNhbiBhc3N1bWUgdGhhdCBjb3JyZWN0aW5n IDEgYml0IGVycm9yIGlzIGVub3VnaCBmb3IgdGhpcyBzdWJzeXN0ZW0uCgpObywgdGhlIGV4cGVj dGF0aW9uIGlzIGEgY2xlYXIgZmFpbHVyZSB1cG9uIGRvdWJsZSBiaXQgZXJyb3JzLiBCZQpjYXJl ZnVsIHRob3VnaCwgSGFtbWluZyBFQ0MgZW5naW5lcyBjYXJyeSAqbm8gZ3VhcmFudHkqIGZvciAz IGJpdAplcnJvcnMuIE9ubHkgMCwgMSBhbmQgMiBhcmUgcGFydCBvZiB0aGUgc2NvcGUsIGFuZCAy IGJpdCBlcnJvcnMgYXJlCnVuY29ycmVjdGFibGUsIHdoaWNoIG1lYW5zOgotIDAgYmYsIG9rCi0g MSBiZiwgb2sgKyByZXBvcnRpbmcgMSBiZgotIDIgYmYsIE5PSyArIHJlcG9ydGluZyBhbiBlcnJv cgotIG1vcmUgYmY6IG5vIGd1YXJhbnRlZSwgdXN1YWxseSByZXR1cm5zIGluY29ycmVjdCBkYXRh IHdpdGggYSBjb3JyZWN0CnN0YXR1cwoKV2hhdCB5b3Ugb2JzZXJ2ZSBpcyBtYXliZSB0aGUgbGFz dCBjYXNlLiBJZiB5b3UgcmVhZCB0aGUgd2hvbGUgcGFnZSByYXcsCm1heWJlIHlvdSBhcmUgc2ls ZW50bHkgZmFjaW5nIGEgMyBiaXQgZXJyb3IgY2FzZSBkdWUgdG8gYSBsb3Qgb2YKcmVwZXRpdGlv bnMgKD8pLCBpdCBjYW4gYmUgc29tZXdoZXJlIGVsc2UgaW4gdGhlIHBhZ2UuIEJlIHZlcnkgY2Fy ZWZ1bAp3aGVuIHRlc3Rpbmcgd2l0aCBuYW5mbGlwYml0cyBiZWNhdXNlIHRoZSB0b29sIGRvZXMg bm90IGNoZWNrIGZvciBkYXRhCmludGVncml0eSwgdW5saWtlIG5hbmRiaXRlcnJzLCB3aGljaCBk b2VzLiBBcmUgeW91IHN1cmUgeW91ciBkaXNhcHByb3ZhbApvZiBuYW5kYml0ZXJycyBpcyBqdXN0 aWZpZWQgaW4gdGhlIGZpcnN0IHBsYWNlPyBDb3VsZCBpdCBiZSB0aGF0IHRoZQpOQU5EIGNoaXAg eW91J3JlIHRlc3Rpbmcgd2l0aCBpcyBhIGJpdCBmYXVsdHkvdW5zdGFibGUgYW5kIG5hbmRiaXRl cnJzCnJldHVybnMgZXJyb3JzIHdoZXJlIHlvdSBkbyBub3QgZXhwZWN0IHRoZW0gYmVjYXVzZSBv ZiB0aGF0PwoKVGhpcyBpcyBvYnZpb3VzbHkganVzdCBzcGVjdWxhdGlvbiwgbWF5YmUgdGhlIGVy cmF0YSB5b3UgbWVudGlvbmVkIGFib3ZlCndpbGwgYnJpbmcgYW4gb2J2aW91cyBoYXJkd2FyZSBm YWlsdXJlIHRvIG91ciBhdHRlbnRpb24uIFRoZSBBcmFzYW4gSVAKdXNlZCBvbiBaeW5xTVAgYWxz byBzdWZmZXJzIGZyb20gYSBzaW1pbGFyIGxpbWl0YXRpb24gKG5vdCBhYmxlIHRvCmNvcnJlY3Rs eSByZXBvcnQgZmFpbHVyZXMpIGFuZCBJIGRlY2lkZWQgdG8gaW1wbGVtZW50IG9uZSBwYXRoIHVz aW5nIHRoZQpzb2Z0d2FyZSBCQ0ggZW5naW5lLCB3aXRoIGEgdGltZSBwZW5hbHR5IG9mIGNvdXJz ZS4KClRoYW5rcywKTWlxdcOobAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkxpbnV4IE1URCBkaXNjdXNzaW9uIG1haWxpbmcgbGlzdApodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW10ZC8K