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 CA977C77B75 for ; Tue, 16 May 2023 11:50:57 +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=DoSV/L4Vo25mkBRH9R5niI203HVmbvMXWF1gDByoBoA=; b=p3SmYnhgLPnA9p EEtnAARfS1iegvv2SW2uBIjAUSBLmOWk5Lqhy605Rd8a3nkgPSVZ/oMdue1gS4scsTOb5pLu/6PJs BWFOlaS/aJzmwneiTkc22h3bhGY0NW6r1UFPM2uJoW4h8n+MypiZXFbXSsqel++f9KfwumlCd8bjq QueDdKbEvw7dOSJq9IhX727awcfi0plNJ36+MOaEQ+0hgqfJvPIPKhsaPrGfSryWoPBhkh7wLuYy5 XOcGgWL2f7QQjq+mcGD5GtZYYr8EZXv6kvTtOcAhwiKJ5OLBLkS/zSnXuEo2UHHYu9OSl0ARE/w9K bpJMyGVi73Fkg4InceYA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pytCF-005dpd-18; Tue, 16 May 2023 11:50:27 +0000 Received: from pandora.armlinux.org.uk ([2001:4d48:ad52:32c8:5054:ff:fe00:142]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pytCB-005doa-2L; Tue, 16 May 2023 11:50:25 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To: Content-Transfer-Encoding:Content-Type: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-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=12oCxnsjDGRIi94hOFSo73JpXQEuM8yD/ulEikbT2L4=; b=tuwTkh+5w5+Qt2MPL0jAfyNZxg DWX0hQcDynjGyxGAzHbREit1U7MiRp8je4AjojwvfK7s9TJZa9Xg2DUAlpGMp7NaXJpSvN/46IQuS Yp7YOpdIouupc8LfTIbSxG2pvxGVwVqRZsNKDVsmvS/YQFn8jrDZqvzjc4rPl2sljF4u5sAR9L7jx dMQrhzkdiGF8W5w1z3UZ3qsv+YmJKrNr55c7y3DNyCTg9y67ip6RHyxOssInIQ440xlvY5pppOm0X qZ8K8RliQdmLz9UKNIahBBG58/PAAZERMFtrsFVksLl/J1feC/Ku/KQGmoumQ7XZngXU485rQ8YRG BYtONZZQ==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:56526) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1pytBf-0005fL-QL; Tue, 16 May 2023 12:49:51 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1pytBY-0000me-Em; Tue, 16 May 2023 12:49:44 +0100 Date: Tue, 16 May 2023 12:49:44 +0100 From: "Russell King (Oracle)" To: Vladimir Oltean Cc: Andrew Lunn , AngeloGioacchino Del Regno , Daniel Machon , "David S. Miller" , Eric Dumazet , Felix Fietkau , Florian Fainelli , Heiner Kallweit , Horatiu Vultur , Ioana Ciornei , Jakub Kicinski , John Crispin , Jose Abreu , Lars Povlsen , Lorenzo Bianconi , Marcin Wojtas , Mark Lee , Matthias Brugger , Maxime Chevallier , Paolo Abeni , Sean Wang , Steen Hegelund , Taras Chornyi , Thomas Petazzoni , UNGLinuxDriver@microchip.com, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, netdev@vger.kernel.org Subject: Re: [PATCH RFC] Providing a helper for PCS inband negotiation Message-ID: References: <20230515195616.uwg62f7hw47mktfu@skbuf> <20230515220833.up43pd76zne2suy2@skbuf> <20230516090009.ssq3uedjl53kzsjr@skbuf> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230516090009.ssq3uedjl53kzsjr@skbuf> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230516_045023_910062_A793E036 X-CRM114-Status: GOOD ( 58.08 ) 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 T24gVHVlLCBNYXkgMTYsIDIwMjMgYXQgMTI6MDA6MDlQTSArMDMwMCwgVmxhZGltaXIgT2x0ZWFu IHdyb3RlOgo+IE9uIFR1ZSwgTWF5IDE2LCAyMDIzIGF0IDEyOjM2OjMzQU0gKzAxMDAsIFJ1c3Nl bGwgS2luZyAoT3JhY2xlKSB3cm90ZToKPiA+ID4gQ2xhdXNlIDczIG5lZ290aWF0ZXMgdGhlIGFj dHVhbCB1c2Ugb2YgMTBHQmFzZS1LUiBhcyBhIFNFUkRFUyBwcm90b2NvbAo+ID4gPiB0aHJvdWdo IHRoZSBjb3BwZXIgYmFja3BsYW5lIGluIGZhdm9yIG9mIG90aGVyICJCYXNlLUsqIiBhbHRlcm5h dGl2ZQo+ID4gPiBsaW5rIG1vZGVzLCBzbyBpdCdzIG5vdCBxdWl0ZSBwcm9wZXIgdG8gc2F5IHRo YXQgMTBHQmFzZS1LUiBpcyBhIGNsYXVzZQo+ID4gPiA3MyB1c2luZyBwcm90b2NvbC4KPiA+IAo+ ID4gSSBiZWxpZXZlIGl0IGlzIGNvcnJlY3QgdG8gc3RhdGUgaXQgYXMgc3VjaCwgYmVjYXVzZToK PiA+IAo+ID4gNzIuMTogVGFibGUgNzLigJMx4oCUUGh5c2ljYWwgTGF5ZXIgY2xhdXNlcyBhc3Nv Y2lhdGVkIHdpdGggdGhlIDEwR0JBU0UtS1IgUE1ECj4gPiAKPiA+IAk3M+KAlEF1dG8tTmVnb3Rp YXRpb24gZm9yIEJhY2twbGFuZSBFdGhlcm5ldCAgICAgICAgICAgICAgUmVxdWlyZWQKPiA+IAo+ ID4gRXNzZW50aWFsbHksIDgwMi4zIGRvZXNuJ3QgcGVybWl0IDEwR0JBU0UtS1Igd2l0aG91dCBo YXJkd2FyZSBzdXBwb3J0Cj4gPiBmb3IgQ2xhdXNlIDczIEFOIChidXQgdGhhdCBBTiBkb2Vzbid0 IGhhdmUgdG8gYmUgZW5hYmxlZCBieSBtYW5hZ2VtZW50Cj4gPiBzb2Z0d2FyZS4pCj4gCj4gSnVz dCBsaWtlIGNsYXVzZSA0MCAoUENTIGFuZCBQTUEgZm9yIDEwMDBCQVNFLVQpIHJlcXVpcmVzIGNs YXVzZSAyOCBBTgo+IHRvIGJlIHN1cHBvcnRlZC4gQnV0LCB3aGVuIHRoZSBhdXRvbmVnIHByb2Nl c3MgYmVnaW5zLCB0aGUgdXNlIG9mCj4gMTBHQmFzZS1LUiBhcyBhIHByb3RvY29sIG92ZXIgdGhl IGJhY2twbGFuZSBsaW5rIGhhc24ndCBldmVuIGJlZW4geWV0Cj4gZXN0YWJsaXNoZWQsIHNvIEkg ZmluZCBpdCB1bm5hdHVyYWwgdG8gc3BlYWsgb2YgY2xhdXNlIDczIGF1dG9uZWcgYXMKPiBzb21l dGhpbmcgdGhhdCAxMEdCYXNlLUtSIGhhcy4KPiAKPiBUaGUgcmVhc29uIHdoeSBJJ20gaW5zaXN0 aW5nIG9uIHRoaXMgaXMgYmVjYXVzZSB0byBtZSwgdG8gdHJlYXQgY2xhdXNlCj4gNzMgYXMgYW4g aW4tYmFuZCBhdXRvbmVnIHByb2Nlc3Mgb2YgMTBHQmFzZS1LUiBzb3VuZHMgbGlrZSBhIHJldmVy c2FsIG9mCj4gY2F1c2FsaXR5LiBUaGUgY2xhdXNlIDczIGxpbmsgY29kZXdvcmQgaGFzIGEgVGVj aG5vbG9neSBBYmlsaXR5IGZpZWxkCj4gdGhyb3VnaCB3aGljaCAxMEdCYXNlLUtSLCAxR0Jhc2Ut S1ggZXRjIGFyZSBhZHZlcnRpc2VkIGFzIHN1cHBvcnRlZAo+IHByb3RvY29scy4gSWYgQzczIGlz IGFuIGluYmFuZCBwcm90b2NvbCBvZiAxMEdCYXNlLUtSLCB3aGF0IHNob3VsZCB0aGUKPiBsb2Nh bCBQQ1MgYWR2ZXJ0aXNlIGZvciBpdHMgVGVjaG5vbG9neSBBYmlsaXR5PyBPbmx5IDEwR0Jhc2Ut S1IsIGJlY2F1c2UKPiB0aGlzIGlzIHdoYXQgaXMgaW1wbGllZCBieSB0cmVhdGluZyBpdCBhcyBh biBhdHRyaWJ1dGUgb2YgMTBHQmFzZS1LUiwgbm8/CgpJJ20gbm90IGdvaW5nIHRvIGdldCBodW5n IHVwIG9uIHRoaXMsIGJlY2F1c2UgSSBkb24ndCByZWdhcmQgdGhlIHBvaW50CmFzIGJlaW5nIHBh cnRpY3VsYXJseSBpbXBvcnRhbnQgdG8gdGhpcyBkaXNjdXNzaW9uLiBZb3UgYXJlIHJpZ2h0IHRo YXQKQ2xhdXNlIDczIEFOIHNlbGVjdHMgd2hldGhlciBlLmcuIDEwR0JBU0UtS1IgZ2V0cyB1c2Vk LCBhbmQgSSBkb24ndApkaXNhZ3JlZSB3aXRoIHRoYXQuIFdlJ3JlIGp1c3QgZW50ZXJpbmcgaW50 byB3aGF0IHNlZW1zIGxpa2UgYSBwb2ludGxlc3MKZGViYXRlIHRoYXQgZWF0cyB1cCBlbWFpbCBi YW5kd2lkdGguCgo+IEJ1dCB0aGF0IHdvdWxkIGJlIGEgZGVuYXR1cmVkIHdheSBvZiBuZWdvdGlh dGluZyAtIGFkdmVydGlzZSBhIHNpbmdsZQo+IGxpbmsgbW9kZSwgdGFrZSBpdCBvciBsZWF2ZSBp dC4gQW5kIHdoYXQgb3RoZXIgaW5iYW5kIGF1dG9uZWcgcHJvdG9jb2xzCj4gcGVybWl0LCBzYXks IHN0YXJ0aW5nIGZyb20gU0dNSUkgYW5kIGVuZGluZyBpbiAxMDAwQmFzZS1YPyBDbGF1c2UgNzMK PiBjYW4ndCBiZSBkaXJlY3RseSBjb21wYXJlZCB0byB3aGF0IHdlIGN1cnJlbnRseSBtZWFuIGJ5 IG1hbmFnZWQgPQo+ICJpbi1iYW5kLXN0YXR1cyIuCj4gCj4gTm90IG9ubHkgaXMgQzM3IGF1dG9u ZWcgbm90IGRpcmVjdGx5IGNvbXBhcmFibGUgdG8gQzczLCBidXQgdGhleSBhcmUgbm90Cj4gbXV0 dWFsbHkgZXhjbHVzaXZlLCBlaXRoZXIuIEkgd291bGQgc2F5IHRoZXkgYXJlIG1vcmUgb3IgbGVz cyBvcnRob2dvbmFsLgo+IE1vcmUgYmVsb3cuCj4gCj4gSSBkb24ndCBiZWxpZXZlIHRoYXQgdG9n Z2xpbmcgY2xhdXNlIDczIGF1dG9uZWcgYmFzZWQgb24gcGh5bGlua19wY3NfbmVnX21vZGUoKQo+ IG1ha2VzIG11Y2ggc2Vuc2UuCgpJIGFncmVlLCB3aGljaCBtZWFucyBwaHlsaW5rX3Bjc19uZWdf bW9kZSgpIG5lZWRzIHRvIGRvY3VtZW50IHRoaXMgc28KdGhhdCBwZW9wbGUgZG9uJ3QgdGhpbmsg aXQgZG9lcyAtIGFuZCB0aGF0IHNvbHZlcyBib3RoIG9mIHRoZSBpc3N1ZXMKSSB3YXMgYnJpbmdp bmcgdXAgaW4gbXkgb3JpZ2luYWwgZW1haWwuCgo+ID4gSG93ZXZlciwgaWYgd2UgZGlkIHdhbnQg dG8gZXh0ZW5kIHRoaXMgdG9waWMsIHRoZW4gdGhlcmUgYXJlIGEgbnVtYmVyCj4gPiBvZiBxdWVz dGlvbnMgdGhhdCByZWFsbHkgbmVlZCB0byBiZSBhc2tlZCBpcyBhYm91dCB0aGUgWFBDUyBkcml2 ZXIuCj4gPiBTdWNoIGFzIC0gd2hhdCBkb2VzIDEwMDBCQVNFLUtYLCAxMDAwMEJBU0UtS1g0LCAx MDAwMEJBU0UtS1IgYW5kCj4gPiAyNTAwQkFTRS1YIGhhdmUgdG8gZG8gd2l0aCBVU1hHTUlJLCBh bmQgd2h5IGFyZSB0aGVyZSBubyBjb3BwZXIKPiA+IGV0aHRvb2wgbW9kZXMgbGlzdGVkIHdoZW4g YSBVU1hHTUlJIGxpbmsgY2FuIGRlZmluaXRlbHkgc3VwcG9ydAo+ID4gYmVpbmcgY29ubmVjdGVk IHRvIGEgY29wcGVyIFBIWT8gKFNlZSB4cGNzX3VzeGdtaWlfZmVhdHVyZXNbXSkuCj4gPiAKPiA+ IFdoeSBkb2VzIFhQQ1MgdGhpbmsgdGhhdCBVU1hHTUlJIHVzZXMgQ2xhdXNlIDczIEFOPyAoc2Vl IHRoZSBmaXJzdAo+ID4gZW50cnkgaW4gc3lub3BzeXNfeHBjc19jb21wYXRbXS4pCj4gCj4gRmly c3QsIGluIHByaW5jaXBsZSBVU1hHTUlJIGFuZCBjbGF1c2UgNzMgYXJlIG5vdCBtdXR1YWxseSBl eGNsdXNpdmUuCj4gCj4gSXQgaXMgcG9zc2libGUgdG8gdXNlIGNsYXVzZSA3MyB0byBhZHZlcnRp c2UgMTBHQmFzZS1LUiBhcyBhIGxpbmsgbW9kZSwKPiBhbmQgdGhhdCB3aWxsIGdpdmUgeW91IGxp bmsgdHJhaW5pbmcgZm9yIHByb3BlciAzLXRhcCBlbGVjdHJpY2FsCj4gZXF1YWxpemF0aW9uIG92 ZXIgdGhlIGNvcHBlciBiYWNrcGxhbmUuCj4gCj4gVGhlbiwgb25jZSBDNzMgQU4vTFQgZW5kZWQg YW5kIDEwR0Jhc2UtS1IgaGFzIGJlZW4gZXN0YWJsaXNoZWQsIGlzCj4gcG9zc2libGUgdG8gY29u ZmlndXJlIHRoZSAxMEdCYXNlLVIgUENTIHRvIGVuYWJsZSBDMzcgVVNYR01JSSB0byBzZWxlY3QK PiB0aGUgYWN0dWFsIGRhdGEgcmF0ZSB2aWEgc3ltYm9sIHJlcGxpY2F0aW9uLCB3aGlsZSB0aGUg U0VSREVTIGxhbmUKPiByZW1haW5zIGF0IDEwR0JhdWQuIEF0IGxlYXN0LCB0aGUgWFBDUyBzZWVt cyB0byBwZXJtaXQgZW5hYmxpbmcgc3ltYm9sCj4gcmVwbGljYXRpb24gaW4gY29uanVuY3Rpb24g d2l0aCAxMEdCYXNlLUtSLgoKTXkgY29tbWVudHMgYXJlIGFnYWluc3QgdGhlIGRyaXZlciBhcyBp dCBzdGFuZHMgdG9kYXksIG5vdCBzb21lCnRoZW9yZXRpY2FsIGNhc2UgdGhhdCB0aGUgaGFyZHdh cmUgbWF5IHN1cHBvcnQuCgpXaGF0IEknbSBnZXR0aW5nIGF0IGlzIGlmIHRoZSBpbnRlcmZhY2Ug bW9kZSBpcwpQSFlfSU5URVJGQUNFX01PREVfVVNYR01JSSwgdGhlbi4uLiBva2F5Li4uIHdlIF9t YXlfIHdpc2ggdG8gZG8KY2xhdXNlIDczIG5lZ290aWF0aW9uIGFkdmVydGlzaW5nIDEwR0JBU0Ut S1IgYW5kIHRoZW4gZG8gY2xhdXNlIDczCmZvciB0aGUgVVNYR01JSSBjb250cm9sIHdvcmQgLSBi dXQgdGhlIGRyaXZlciBkb2Vzbid0IGRvIHRoaXMgYXMgZmFyCmFzIEkgY2FuIHNlZS4gSWYgQzcz IEFOIGlzIGJlaW5nIHVzZWQsIGl0IG1lcmVseSByZWFkcyB0aGUgQzczCnN0YXRlIGFuZCByZXR1 cm5zIHRoZSByZXNvbHV0aW9uIGZyb20gdGhhdC4gQW55IHNwZWVkIGluZm9ybWF0aW9uIHRoYXQK YSBVU1hHTUlJIFBIWSBwYXNzZXMgYmFjayBvdmVyIHRoZSBDMzcgaW5iYW5kIHNpZ25hbGxpbmcg d291bGQgYmUKaWdub3JlZCBiZWNhdXNlIHRoZXJlIHNlZW1zIHRvIGJlIG5vIHByb3Zpc2lvbiBm b3IgdGhlIFVTWEdNSUkKaW5iYW5kIHNpZ25hbGxpbmcuCgpTbyBJJ20gY29uZnVzZWQgd2hhdCB0 aGUgeHBjcyBkcml2ZXIgX2FjdHVhbGx5XyBkb2VzIHdoZW4gVVNYR01JSQptb2RlIGlzIHNlbGVj dGVkIGJ5IFBIWV9JTlRFUkZBQ0VfTU9ERV9VU1hHTUlJLCBiZWNhdXNlIGxvb2tpbmcgYXQKdGhl IGRyaXZlciwgaXQgZG9lc24ndCBsb29rIGxpa2UgaXQncyBVU1hHTUlJIGF0IGFsbC4KCj4gVGhl biwgdGhlcmUncyB0aGUgZW50aXJlIGlzc3VlIHRoYXQgdGhlIGNvZGUsIGFzIGl0IHdhcyBvcmln aW5hbGx5Cj4gaW50cm9kdWNlZCwgaXMgbm90IHRoZSBzYW1lIGFzIGl0IGlzIG5vdy4gRm9yIGV4 YW1wbGUsIHRoaXMgYml0IGluCj4geHBjc19kb19jb25maWcoKToKPiAKPiAJc3dpdGNoIChjb21w YXQtPmFuX21vZGUpIHsKPiAJY2FzZSBEV19BTl9DNzM6Cj4gCQlpZiAocGh5bGlua19hdXRvbmVn X2luYmFuZChtb2RlKSkgewo+IAkJCXJldCA9IHhwY3NfY29uZmlnX2FuZWdfYzczKHhwY3MsIGNv bXBhdCk7Cj4gCQkJaWYgKHJldCkKPiAJCQkJcmV0dXJuIHJldDsKPiAJCX0KPiAJCWJyZWFrOwo+ IAo+IHVzZWQgdG8gbG9vayBhdCBzdGF0ZS0+YW5fZW5hYmxlZCByYXRoZXIgdGhhbiBwaHlsaW5r X2F1dG9uZWdfaW5iYW5kKCkuCj4gVGhyb3VnaCBteSBpZGlvY3ksIEkgaW5hZHZlcnRlbnRseSBj b252ZXJ0ZWQgdGhhdCBpbiBjb21taXQgMTEwNTk3NDBlNjE2Cj4gKCJuZXQ6IHBjczogeHBjczog Y29udmVydCB0byBwaHlsaW5rX3Bjc19vcHMiKS4KCklmIHdlIHdhbnQgdG8gY2hhbmdlIHRoYXQg YmFjayB0byB0aGUgb2xkIGJlaGF2aW91ciwgdGhhdCBuZWVkcyB0bwpiZToKCQlpZiAodGVzdF9i aXQoRVRIVE9PTF9MSU5LX01PREVfQXV0b25lZ19CSVQsIGFkdmVydGlzaW5nKSkgewoJCQkuLi4K CQl9CgkJYnJlYWs7CgpidXQgdGhhdCB3b3VsZG4ndCBldmVyIGhhdmUgYmVlbiBzdWZmaWNpZW50 LCBldmVuIHdoZW4gdGhlIGNvZGUgd2FzCnVzaW5nIGFuX2VuYWJsZWQsIGJlY2F1c2UgYm90aCBv ZiB0aGVzZSByZWZsZWN0IHRoZSB1c2VyIGNvbmZpZ3VyYXRpb24uCihhbl9lbmFibGVkIHdhcyBq dXN0IGEgcHJveHkgZm9yIHRoaXMgQXV0b25lZyBiaXQpLiBJJ20gZ29pbmcgdG8gY2FsbApib3Ro IG9mIHRoZXNlIGFuICJBTiBpbmRpY2F0b3IiIGluIHRoZSBxdWVzdGlvbiBiZWxvdy4KCklzbid0 IGl0IHJhdGhlciBwZXJ2ZXJzZSB0aGF0IHRoZSBkcml2ZXIgY29uZmlndXJlcyBBTiBpZiB0aGlz IEFOCmluZGljYXRvciBpcyBzZXQsIGJ1dCB0aGVuIGRvZXMgbm90aGluZyBpZiBpdCBpc24ndD8K Cj4gPiB4cGNzX3NnbWlpX2ZlYXR1cmVzW10gb25seSBtZW50aW9ucyBjb3BwZXIgbGlua21vZGVz LCBidXQgYXMgd2Uga25vdywKPiA+IGl0J3MgY29tbW9uIGZvciBjb3BwZXIgUEhZcyB0byBhbHNv IHN1cHBvcnQgZmlicmUgd2l0aCBhbiBhdXRvLQo+ID4gc2VsZWN0aW9uIG1lY2hhbmlzbS4gU28s IDEwMDBCQVNFLVggaXMgZGVmaW5pdGVseSBwb3NzaWJsZSBpZiBTR01JSQo+ID4gaXMgc3VwcG9y dGVkLCBzbyB3aHkgaXNuJ3QgaXQgbGlzdGVkLgo+IAo+IE1vc3QgbGlrZWx5IGV4cGxhbmF0aW9u IGlzIHRoYXQgWFBDUyBoYXMgbmV2ZXIgYmVlbiBwYWlyZWQgdXAgdW50aWwgbm93Cj4gdG8gc3Vj aCBhIFBIWS4KClNvIGl0J3MgcHJvYmFibHkgc2FmZSB0byBhZGQgRVRIVE9PTF9MSU5LX01PREVf MTAwMGJhc2VYX0Z1bGxfQklUCnRoZXJlIC0gdGhhbmtzLgoKPiA+IEFzIHByZXZpb3VzbHkgc2Fp ZCwgMTAwMEJBU0UtWCBjYW4gYmUgY29ubmVjdGVkIHRvIGEgUEhZIHRoYXQgZG9lcwo+ID4gMTAw MEJBU0UtVCwgc28gd2h5IGRvZXMgeHBjc18xMDAwYmFzZXhfZmVhdHVyZXNbXSBub3QgbWVudGlv bgo+ID4gMTAwMGJhc2VUX0Z1bGwuLi4gdGhlcmUncyBwcm9iYWJseSBtb3JlIGhlcmUgYXMgd2Vs bC4KPiA+IAo+ID4gSW50ZXJlc3RpbmdseSwgeHBjc18yNTAwYmFzZXhfZmVhdHVyZXNbXSBfZG9l c18gbWVudGlvbiBib3RoCj4gPiAyNTAwQkFTRS1YIGFuZCAyNTAwQkFTRS1ULCBidXQgSSB0aGlu ayB0aGF0IG9ubHkgZG9lcyBiZWNhdXNlIEkKPiA+IGhhcHBlbmVkIHRvIGNvbW1lbnQgb24gaXQg ZHVyaW5nIGEgcmV2aWV3Lgo+ID4gCj4gPiBJIHRoaW5rIHhwY3MgaXMgYW5vdGhlciBjYW4gb2Yg d29ybXMsIGJ1dCBpcyBhbiBlYXNpZXIgY2FuIG9mIHdvcm1zCj4gPiB0byBzb2x2ZSB0aGFuIHRy eWluZyB0byBzb3J0IG91dCB0aGF0ICJ3aGF0J3MgYW4gZXRoZXJuZXQgUEhZIgo+ID4gcXVlc3Rp b24gd2Ugc2VlbSB0byBiZSBoZWFkaW5nIHRvd2FyZHMgKHdoaWNoIEkgdGhpbmsgd291bGQgYmUg YQo+ID4gbWFtbW90aCB0YXNrLCBldmVuIGJhY2sgd2hlbiBwaHlsaW5rIGRpZG4ndCBleGlzdCwg dG8gc29ydCBvdXQuKQo+IAo+IEkgd2Fzbid0IG5lY2Vzc2FyaWx5IGdvaW5nIHRvIGdvIGFsbCB0 aGUgd2F5IGludG8gIndoYXQncyBhIFBIWT8iLgo+IEkganVzdCB3YW50IHRvIGNsYXJpZnkgc29t ZSB0ZXJtcyBzdWNoIHRoYXQgd2UgY2FuIGFncmVlIHdoYXQgaXMgY29ycmVjdAo+IGFuZCB3aGF0 IGlzIG5vdC4gSSBiZWxpZXZlIHRoYXQgbXVjaCBvZiB3aGF0J3MgY3VycmVudGx5IGluIFhQQ1Mg dy5yLnQuCj4gQzczIGlzIG5vdCBjb3JyZWN0LCBwYXJ0bHkgdGhyb3VnaCBpbml0aWFsIGludGVu dGlvbiBhbmQgcGFydGx5IHRocm91Z2gKPiBibGluZCBjb252ZXJzaW9ucyBzdWNoIGFzIG1pbmUu CgpSaWdodCwgdGhhdCdzIHByb2JhYmx5IHdoeSBJJ20gaGF2aW5nIGEgaGFyZCB0aW1lIGludGVy cHJldGluZyB3aGF0CnRoaXMgZHJpdmVyIGlzIGRvaW5nIHdoZW4gaXQgY29tZXMgdG8gdGhlc2Ug bW9kZXMgdGhhdCBtYWtlcyB1c2UKY2xhdXNlIDczLgoKQXMgdGhpcyBpcyB0aGUgb25seSBwaHls aW5rLXVzaW5nIGltcGxlbWVudGF0aW9uIHRoYXQgaW52b2x2ZXMgY2xhdXNlCjczIGF0IHByZXNl bnQsIEkgd291bGQgbGlrZSB0byBlbnN1cmUgdGhhdCB0aGVyZSdzIGEgY2xlYXIgcmVzb2x1dGlv bgpvZiB0aGUgZXhwZWN0ZWQgYmVoYXZpb3VyIGJlZm9yZSB3ZSBnZXQgZnVydGhlciBpbXBsZW1l bnRhdGlvbnMsIGFuZApwcmVmZXJhYmx5IGRvY3VtZW50IHdoYXQncyBleHBlY3RlZC4KCi0tIApS TUsncyBQYXRjaCBzeXN0ZW06IGh0dHBzOi8vd3d3LmFybWxpbnV4Lm9yZy51ay9kZXZlbG9wZXIv cGF0Y2hlcy8KRlRUUCBpcyBoZXJlISA4ME1icHMgZG93biAxME1icHMgdXAuIERlY2VudCBjb25u ZWN0aXZpdHkgYXQgbGFzdCEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxA bGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK