From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 551072C80 for ; Mon, 3 Jan 2022 11:43:03 +0000 (UTC) Received: by mail-wr1-f43.google.com with SMTP id w20so60364142wra.9 for ; Mon, 03 Jan 2022 03:43:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=aPS6KYT8HDzSVLi9dYZW0290KgEUx0odBCGRdWGGbmA=; b=RhQoXZQGhW+n8fbQRI6HZ2Vk1rCJW3oJIAhklT3BtSw9ljwr73+gPoJumo5N90v9Br ZtxgV5xQxAf9+T4GDdfT7yiPugQrWkxBJT0O47f19IFHw66EAkO8CumDcAs6GkF9uY0S e6gxcEKqCkt6aDa/LGJ/Z/jCZliO04gX5QE6N6NMSX7zezRskUur0mLRwxi0NHPFKgsG FlMen61FgDno0drxB2HXLc8vp7dQj2V02QND4krsDYibROly3MT+RDITuifK8s1PjyeW JS9i8v5hUrPALrwI977Vg6tC1QFu53HWy2pfG+3wGyClJSW/3wdHx3zs/oGMAukpt9qo HGWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=aPS6KYT8HDzSVLi9dYZW0290KgEUx0odBCGRdWGGbmA=; b=S7SvhI1d2X02odE09MaTva3HRGjSi/T/0/N39goGt0WXEEjYYPY/HES3Ia1Hk0+0JY 8LQBYh7d/AIFGabbWwmsFmhITublIg3ePoX4Elc+FbeZukPPcsi+Diei2LkuT7DsVk5i aaV4NLsaAvXjEQuJ0nISdV1oBAfpJ/RXbMNwqPLdYHKaMOzgoUrmtKwM0u/YJtncllcu wlsfd1TZ/zobmQnn59I1NPS4WlstJo54GvXs4HvSAGoV5FmYW+g8It6MQFeUA9Wa7wU1 1OwFanyRQFuh5yEjTOVV1fhJGNTeGj70fU2KkVZTSCpn0tW8XfAxTlx7M9MR/QeFUion EC+g== X-Gm-Message-State: AOAM532iCe5LXTiZsHte6TiXNyraohWgbIxX/5LIIcd/3bNqzVrEsErm 9copm5sTTmzgRBLF3xqrrY4= X-Google-Smtp-Source: ABdhPJy/h/Spn2vlWYfowVvuzEWHSRLKESCvh3uQMdUybgLIjY+pVyXq8leo4KCUBQqC2p30fnwJqw== X-Received: by 2002:adf:dd8b:: with SMTP id x11mr27986945wrl.626.1641210181646; Mon, 03 Jan 2022 03:43:01 -0800 (PST) Received: from Red ([2a01:cb1d:3d5:a100:264b:feff:fe03:2806]) by smtp.googlemail.com with ESMTPSA id m17sm38946504wms.25.2022.01.03.03.43.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Jan 2022 03:43:01 -0800 (PST) Date: Mon, 3 Jan 2022 12:42:58 +0100 From: Corentin Labbe To: Conley Lee Cc: davem@davemloft.net, mripard@kernel.org, wens@csie.org, jernej.skrabec@gmail.com, netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org Subject: Re: [PATCH v6] sun4i-emac.c: add dma support Message-ID: References: <20211228164817.1297c1c9@kicinski-fedora-PC1C0HJN.hsd1.ca.comcast.net> Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Le Mon, Jan 03, 2022 at 10:55:04AM +0800, Conley Lee a écrit : > On 01/02/22 at 06:38下午, Corentin Labbe wrote: > > Date: Sun, 2 Jan 2022 18:38:51 +0100 > > From: Corentin Labbe > > To: Conley Lee > > Cc: davem@davemloft.net, kuba@kernel.org, mripard@kernel.org, > > wens@csie.org, netdev@vger.kernel.org, > > linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, > > linux-sunxi@lists.linux.dev, jernej.skrabec@gmail.com > > Subject: Re: [PATCH v6] sun4i-emac.c: add dma support > > > > Le Sat, Jan 01, 2022 at 03:09:01PM +0800, Conley Lee a écrit : > > > On 12/31/21 at 11:43上午, Corentin Labbe wrote: > > > > Date: Fri, 31 Dec 2021 11:43:53 +0100 > > > > From: Corentin Labbe > > > > To: conleylee@foxmail.com > > > > Cc: davem@davemloft.net, kuba@kernel.org, mripard@kernel.org, > > > > wens@csie.org, netdev@vger.kernel.org, > > > > linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org > > > > Subject: Re: [PATCH v6] sun4i-emac.c: add dma support > > > > > > > > Le Wed, Dec 29, 2021 at 09:43:51AM +0800, conleylee@foxmail.com a écrit : > > > > > From: Conley Lee > > > > > > > > > > Thanks for your review. Here is the new version for this patch. > > > > > > > > > > This patch adds support for the emac rx dma present on sun4i. The emac > > > > > is able to move packets from rx fifo to RAM by using dma. > > > > > > > > > > Change since v4. > > > > > - rename sbk field to skb > > > > > - rename alloc_emac_dma_req to emac_alloc_dma_req > > > > > - using kzalloc(..., GPF_ATOMIC) in interrupt context to avoid > > > > > sleeping > > > > > - retry by using emac_inblk_32bit when emac_dma_inblk_32bit fails > > > > > - fix some code style issues > > > > > > > > > > Change since v5. > > > > > - fix some code style issue > > > > > > > > > > > > > Hello > > > > > > > > I just tested this on a sun4i-a10-olinuxino-lime > > > > > > > > I got: > > > > [ 2.922812] sun4i-emac 1c0b000.ethernet (unnamed net_device) (uninitialized): get io resource from device: 0x1c0b000, size = 4096 > > > > [ 2.934512] sun4i-emac 1c0b000.ethernet (unnamed net_device) (uninitialized): failed to request dma channel. dma is disabled > > > > [ 2.945740] sun4i-emac 1c0b000.ethernet (unnamed net_device) (uninitialized): configure dma failed. disable dma. > > > > [ 2.957887] sun4i-emac 1c0b000.ethernet: eth0: at (ptrval), IRQ 19 MAC: 02:49:09:40:ab:3d > > > > > > > > On which board did you test it and how ? > > > > > > > > Regards > > > > > > Sorry. I sent the email with text/html format. This email is an clean version. > > > > > > In order to enable dma rx channel. `dmas` and `dma-names` properties > > > should be added to emac section in dts: > > > > > > emac: ethernet@1c0b000 { > > > ... > > > dmas = <&dma SUN4I_DMA_DEDICATED 7>; > > > dma-names = "rx"; > > > ... > > > } > > > > Helo > > > > Yes I figured that out. But you should have done a patch serie adding this. > > Your patch is now applied but it is a useless change without the dtb change. > > You should also probably update the driver binding (Documentation/devicetree/bindings/net/allwinner,sun4i-a10-emac.yaml) since you add new members to DT node. > > > > Furthermore, why did you add RX only and not TX dma also ? > > > > Probably it is too late since patch is applied but it is: > > Tested-by: Corentin Labbe > > Tested-on: sun4i-a10-olinuxino-lime > > > > Regards > > Thanks for your suggestion. I will submit a patch to add those changes > later. > > And the reason why I didn't add TX support is becasuse there is no any > public page to describe sun4i emac TX DMA register map. So, I don't known > how to enable TX DMA at hardware level. If you has any page or datasheet > about EMAC TX DMA, can you share with me ? Thanks. Hello You can find TX DMA info on the R40 Use manual (8.10.5.2 Register Name: EMAC_TX_MODE) You should keep all people in CC when you answer to someone. Regards 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 53FA2C433EF for ; Mon, 3 Jan 2022 11:44:26 +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:In-Reply-To:MIME-Version:References: 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=E+aCtBnuI9uATYNfTMLJY2klry1d9Afu+Y4nWEV52oY=; b=d3XYQHaNuoa+Aa t+Weexfvq6Uz3xkDz5vNdgWjGkBcvoadwXWUxMjzCPiVtlfMXf+fniaRSguita0ASCoUM8T67zDTU C51NkJgot+33RIGMoC/YgjjGVJZopO5xhFAvsuLTK3YyVCCXfbTS84Qqn53icCeVA6mbDj92S5zZ3 mEgFyPr6UmELz1yB2XdVR0yPcC3t2J2lvyIcoQgkmpCSxILcprelzITUJ1/DwqAXo/zln+HJZQRp/ x1aEGrezGX8ODCgzV3bEoYXf1nnswvzYBYD6F/rgw2VomC9X5lM9hZRVggxndWbTupWjBMGm5Fenu +COnT8zkAVQW8XVSPIMA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n4Lk2-008uCc-KJ; Mon, 03 Jan 2022 11:43:06 +0000 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n4Ljy-008uBe-Sq for linux-arm-kernel@lists.infradead.org; Mon, 03 Jan 2022 11:43:04 +0000 Received: by mail-wr1-x429.google.com with SMTP id i22so69325136wrb.13 for ; Mon, 03 Jan 2022 03:43:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=aPS6KYT8HDzSVLi9dYZW0290KgEUx0odBCGRdWGGbmA=; b=RhQoXZQGhW+n8fbQRI6HZ2Vk1rCJW3oJIAhklT3BtSw9ljwr73+gPoJumo5N90v9Br ZtxgV5xQxAf9+T4GDdfT7yiPugQrWkxBJT0O47f19IFHw66EAkO8CumDcAs6GkF9uY0S e6gxcEKqCkt6aDa/LGJ/Z/jCZliO04gX5QE6N6NMSX7zezRskUur0mLRwxi0NHPFKgsG FlMen61FgDno0drxB2HXLc8vp7dQj2V02QND4krsDYibROly3MT+RDITuifK8s1PjyeW JS9i8v5hUrPALrwI977Vg6tC1QFu53HWy2pfG+3wGyClJSW/3wdHx3zs/oGMAukpt9qo HGWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=aPS6KYT8HDzSVLi9dYZW0290KgEUx0odBCGRdWGGbmA=; b=1RwP+RAp7pOYegpZoXJM0D1WnC1mAV3JRGo6FkECxaensWLzR1Vx95oHBbKpE0thYX J6GnagUwguUyvrtxBNooKHEPqcFQJPE+Sp02I7ETJFSzJIi05sNNXky8U30Nu1PYAP9o KkV9X6WmObMLx50HlZkljtlA6M+VkCMsJt9XCuEMmmqYf6Ufurtb3he4osj2Dc9hTalk +e99q4pziNwtAWIbRa5U+WmVAzFp7/blyPgvM0dNjNDPnLxscdFvXH7mAM/r0okJuglx AG0zD0VkDL2PusE+Bn151VnndttkY00QIjqS/NCnCzilp6vLBX++MzEH+I6qoLDVYXy5 5D4g== X-Gm-Message-State: AOAM5339cgy5U60KsGRiwlKMZp/UEQADvB3/CWR7xkB4avbnQ8W8Ns+Q CoaM0jyqZIH2XwRK/sEntWE= X-Google-Smtp-Source: ABdhPJy/h/Spn2vlWYfowVvuzEWHSRLKESCvh3uQMdUybgLIjY+pVyXq8leo4KCUBQqC2p30fnwJqw== X-Received: by 2002:adf:dd8b:: with SMTP id x11mr27986945wrl.626.1641210181646; Mon, 03 Jan 2022 03:43:01 -0800 (PST) Received: from Red ([2a01:cb1d:3d5:a100:264b:feff:fe03:2806]) by smtp.googlemail.com with ESMTPSA id m17sm38946504wms.25.2022.01.03.03.43.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Jan 2022 03:43:01 -0800 (PST) Date: Mon, 3 Jan 2022 12:42:58 +0100 From: Corentin Labbe To: Conley Lee Cc: davem@davemloft.net, mripard@kernel.org, wens@csie.org, jernej.skrabec@gmail.com, netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org Subject: Re: [PATCH v6] sun4i-emac.c: add dma support Message-ID: References: <20211228164817.1297c1c9@kicinski-fedora-PC1C0HJN.hsd1.ca.comcast.net> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220103_034302_999274_4AF32C78 X-CRM114-Status: GOOD ( 34.87 ) 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 TGUgTW9uLCBKYW4gMDMsIDIwMjIgYXQgMTA6NTU6MDRBTSArMDgwMCwgQ29ubGV5IExlZSBhIMOp Y3JpdCA6Cj4gT24gMDEvMDIvMjIgYXQgMDY6MzjkuIvljYgsIENvcmVudGluIExhYmJlIHdyb3Rl Ogo+ID4gRGF0ZTogU3VuLCAyIEphbiAyMDIyIDE4OjM4OjUxICswMTAwCj4gPiBGcm9tOiBDb3Jl bnRpbiBMYWJiZSA8Y2xhYmJlLm1vbnRqb2llQGdtYWlsLmNvbT4KPiA+IFRvOiBDb25sZXkgTGVl IDxjb25sZXlsZWVAZm94bWFpbC5jb20+Cj4gPiBDYzogZGF2ZW1AZGF2ZW1sb2Z0Lm5ldCwga3Vi YUBrZXJuZWwub3JnLCBtcmlwYXJkQGtlcm5lbC5vcmcsCj4gPiAgd2Vuc0Bjc2llLm9yZywgbmV0 ZGV2QHZnZXIua2VybmVsLm9yZywKPiA+ICBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVh ZC5vcmcsIGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcsCj4gPiAgbGludXgtc3VueGlAbGlz dHMubGludXguZGV2LCBqZXJuZWouc2tyYWJlY0BnbWFpbC5jb20KPiA+IFN1YmplY3Q6IFJlOiBb UEFUQ0ggdjZdIHN1bjRpLWVtYWMuYzogYWRkIGRtYSBzdXBwb3J0Cj4gPiAKPiA+IExlIFNhdCwg SmFuIDAxLCAyMDIyIGF0IDAzOjA5OjAxUE0gKzA4MDAsIENvbmxleSBMZWUgYSDDqWNyaXQgOgo+ ID4gPiBPbiAxMi8zMS8yMSBhdCAxMTo0M+S4iuWNiCwgQ29yZW50aW4gTGFiYmUgd3JvdGU6Cj4g PiA+ID4gRGF0ZTogRnJpLCAzMSBEZWMgMjAyMSAxMTo0Mzo1MyArMDEwMAo+ID4gPiA+IEZyb206 IENvcmVudGluIExhYmJlIDxjbGFiYmUubW9udGpvaWVAZ21haWwuY29tPgo+ID4gPiA+IFRvOiBj b25sZXlsZWVAZm94bWFpbC5jb20KPiA+ID4gPiBDYzogZGF2ZW1AZGF2ZW1sb2Z0Lm5ldCwga3Vi YUBrZXJuZWwub3JnLCBtcmlwYXJkQGtlcm5lbC5vcmcsCj4gPiA+ID4gIHdlbnNAY3NpZS5vcmcs IG5ldGRldkB2Z2VyLmtlcm5lbC5vcmcsCj4gPiA+ID4gIGxpbnV4LWFybS1rZXJuZWxAbGlzdHMu aW5mcmFkZWFkLm9yZywgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwo+ID4gPiA+IFN1Ympl Y3Q6IFJlOiBbUEFUQ0ggdjZdIHN1bjRpLWVtYWMuYzogYWRkIGRtYSBzdXBwb3J0Cj4gPiA+ID4g Cj4gPiA+ID4gTGUgV2VkLCBEZWMgMjksIDIwMjEgYXQgMDk6NDM6NTFBTSArMDgwMCwgY29ubGV5 bGVlQGZveG1haWwuY29tIGEgw6ljcml0IDoKPiA+ID4gPiA+IEZyb206IENvbmxleSBMZWUgPGNv bmxleWxlZUBmb3htYWlsLmNvbT4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gVGhhbmtzIGZvciB5b3Vy IHJldmlldy4gSGVyZSBpcyB0aGUgbmV3IHZlcnNpb24gZm9yIHRoaXMgcGF0Y2guCj4gPiA+ID4g PiAKPiA+ID4gPiA+IFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgZW1hYyByeCBkbWEg cHJlc2VudCBvbiBzdW40aS4gVGhlIGVtYWMKPiA+ID4gPiA+IGlzIGFibGUgdG8gbW92ZSBwYWNr ZXRzIGZyb20gcnggZmlmbyB0byBSQU0gYnkgdXNpbmcgZG1hLgo+ID4gPiA+ID4gCj4gPiA+ID4g PiBDaGFuZ2Ugc2luY2UgdjQuCj4gPiA+ID4gPiAgIC0gcmVuYW1lIHNiayBmaWVsZCB0byBza2IK PiA+ID4gPiA+ICAgLSByZW5hbWUgYWxsb2NfZW1hY19kbWFfcmVxIHRvIGVtYWNfYWxsb2NfZG1h X3JlcQo+ID4gPiA+ID4gICAtIHVzaW5nIGt6YWxsb2MoLi4uLCBHUEZfQVRPTUlDKSBpbiBpbnRl cnJ1cHQgY29udGV4dCB0byBhdm9pZAo+ID4gPiA+ID4gICAgIHNsZWVwaW5nCj4gPiA+ID4gPiAg IC0gcmV0cnkgYnkgdXNpbmcgZW1hY19pbmJsa18zMmJpdCB3aGVuIGVtYWNfZG1hX2luYmxrXzMy Yml0IGZhaWxzCj4gPiA+ID4gPiAgIC0gZml4IHNvbWUgY29kZSBzdHlsZSBpc3N1ZXMgCj4gPiA+ ID4gPiAKPiA+ID4gPiA+IENoYW5nZSBzaW5jZSB2NS4KPiA+ID4gPiA+ICAgLSBmaXggc29tZSBj b2RlIHN0eWxlIGlzc3VlCj4gPiA+ID4gPiAKPiA+ID4gPiAKPiA+ID4gPiBIZWxsbwo+ID4gPiA+ IAo+ID4gPiA+IEkganVzdCB0ZXN0ZWQgdGhpcyBvbiBhIHN1bjRpLWExMC1vbGludXhpbm8tbGlt ZQo+ID4gPiA+IAo+ID4gPiA+IEkgZ290Ogo+ID4gPiA+IFsgICAgMi45MjI4MTJdIHN1bjRpLWVt YWMgMWMwYjAwMC5ldGhlcm5ldCAodW5uYW1lZCBuZXRfZGV2aWNlKSAodW5pbml0aWFsaXplZCk6 IGdldCBpbyByZXNvdXJjZSBmcm9tIGRldmljZTogMHgxYzBiMDAwLCBzaXplID0gNDA5Ngo+ID4g PiA+IFsgICAgMi45MzQ1MTJdIHN1bjRpLWVtYWMgMWMwYjAwMC5ldGhlcm5ldCAodW5uYW1lZCBu ZXRfZGV2aWNlKSAodW5pbml0aWFsaXplZCk6IGZhaWxlZCB0byByZXF1ZXN0IGRtYSBjaGFubmVs LiBkbWEgaXMgZGlzYWJsZWQKPiA+ID4gPiBbICAgIDIuOTQ1NzQwXSBzdW40aS1lbWFjIDFjMGIw MDAuZXRoZXJuZXQgKHVubmFtZWQgbmV0X2RldmljZSkgKHVuaW5pdGlhbGl6ZWQpOiBjb25maWd1 cmUgZG1hIGZhaWxlZC4gZGlzYWJsZSBkbWEuCj4gPiA+ID4gWyAgICAyLjk1Nzg4N10gc3VuNGkt ZW1hYyAxYzBiMDAwLmV0aGVybmV0OiBldGgwOiBhdCAocHRydmFsKSwgSVJRIDE5IE1BQzogMDI6 NDk6MDk6NDA6YWI6M2QKPiA+ID4gPiAKPiA+ID4gPiBPbiB3aGljaCBib2FyZCBkaWQgeW91IHRl c3QgaXQgYW5kIGhvdyA/Cj4gPiA+ID4gCj4gPiA+ID4gUmVnYXJkcwo+ID4gPiAKPiA+ID4gU29y cnkuIEkgc2VudCB0aGUgZW1haWwgd2l0aCB0ZXh0L2h0bWwgZm9ybWF0LiBUaGlzIGVtYWlsIGlz IGFuIGNsZWFuIHZlcnNpb24uCj4gPiA+IAo+ID4gPiBJbiBvcmRlciB0byBlbmFibGUgZG1hIHJ4 IGNoYW5uZWwuIGBkbWFzYCBhbmQgYGRtYS1uYW1lc2AgcHJvcGVydGllcwo+ID4gPiBzaG91bGQg YmUgYWRkZWQgdG8gZW1hYyBzZWN0aW9uIGluIGR0czoKPiA+ID4gCj4gPiA+IGVtYWM6IGV0aGVy bmV0QDFjMGIwMDAgewo+ID4gPiAJLi4uCj4gPiA+IAlkbWFzID0gPCZkbWEgU1VONElfRE1BX0RF RElDQVRFRCA3PjsKPiA+ID4gCWRtYS1uYW1lcyA9ICJyeCI7Cj4gPiA+IAkuLi4KPiA+ID4gfQo+ ID4gCj4gPiBIZWxvCj4gPiAKPiA+IFllcyBJIGZpZ3VyZWQgdGhhdCBvdXQuIEJ1dCB5b3Ugc2hv dWxkIGhhdmUgZG9uZSBhIHBhdGNoIHNlcmllIGFkZGluZyB0aGlzLgo+ID4gWW91ciBwYXRjaCBp cyBub3cgYXBwbGllZCBidXQgaXQgaXMgYSB1c2VsZXNzIGNoYW5nZSB3aXRob3V0IHRoZSBkdGIg Y2hhbmdlLgo+ID4gWW91IHNob3VsZCBhbHNvIHByb2JhYmx5IHVwZGF0ZSB0aGUgZHJpdmVyIGJp bmRpbmcgKERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1 bjRpLWExMC1lbWFjLnlhbWwpIHNpbmNlIHlvdSBhZGQgbmV3IG1lbWJlcnMgdG8gRFQgbm9kZS4K PiA+IAo+ID4gRnVydGhlcm1vcmUsIHdoeSBkaWQgeW91IGFkZCBSWCBvbmx5IGFuZCBub3QgVFgg ZG1hIGFsc28gPwo+ID4gCj4gPiBQcm9iYWJseSBpdCBpcyB0b28gbGF0ZSBzaW5jZSBwYXRjaCBp cyBhcHBsaWVkIGJ1dCBpdCBpczoKPiA+IFRlc3RlZC1ieTogQ29yZW50aW4gTGFiYmUgPGNsYWJi ZS5tb250am9pZUBnbWFpbC5jb20+Cj4gPiBUZXN0ZWQtb246IHN1bjRpLWExMC1vbGludXhpbm8t bGltZQo+ID4gCj4gPiBSZWdhcmRzCj4gCj4gVGhhbmtzIGZvciB5b3VyIHN1Z2dlc3Rpb24uIEkg d2lsbCBzdWJtaXQgYSBwYXRjaCB0byBhZGQgdGhvc2UgY2hhbmdlcwo+IGxhdGVyLiAKPiAKPiBB bmQgdGhlIHJlYXNvbiB3aHkgSSBkaWRuJ3QgYWRkIFRYIHN1cHBvcnQgaXMgYmVjYXN1c2UgdGhl cmUgaXMgbm8gYW55Cj4gcHVibGljIHBhZ2UgdG8gZGVzY3JpYmUgc3VuNGkgZW1hYyBUWCBETUEg cmVnaXN0ZXIgbWFwLiBTbywgSSBkb24ndCBrbm93bgo+IGhvdyB0byBlbmFibGUgVFggRE1BIGF0 IGhhcmR3YXJlIGxldmVsLiBJZiB5b3UgaGFzIGFueSBwYWdlIG9yIGRhdGFzaGVldAo+IGFib3V0 IEVNQUMgVFggRE1BLCBjYW4geW91IHNoYXJlIHdpdGggbWUgPyBUaGFua3MuCgpIZWxsbwoKWW91 IGNhbiBmaW5kIFRYIERNQSBpbmZvIG9uIHRoZSBSNDAgVXNlIG1hbnVhbCAoOC4xMC41LjIgUmVn aXN0ZXIgTmFtZTogRU1BQ19UWF9NT0RFKQoKWW91IHNob3VsZCBrZWVwIGFsbCBwZW9wbGUgaW4g Q0Mgd2hlbiB5b3UgYW5zd2VyIHRvIHNvbWVvbmUuCgpSZWdhcmRzCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcg bGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==