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 128F0C02183 for ; Fri, 17 Jan 2025 14:54:44 +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=Sld9ZeovYmpof2p2O8YrYzTO94CuiNk7PEGE7F8SYYo=; b=m7Q1mX2qib0dyU acJmzC0+Hc8LKEXbh9qnKkM0pGIVEPUNNv4sNS7VAKNp+jQ0vNF/xGei3jerC9CsaDLHjx97o9G/s 9EyxeXs1znKqvTE5FG0oD5xFFQgueaZDWZc3J39Ysez0h6CojRRTnKYgW+Y1W42TTnzzij4aSR7Qh TDMH2BO0ly+i5hibk++cWiR5uGCOYzvNaebnn05gnZZCR7LgorSfNZdMoaHtzBw6jHMx8uWlIkYgy WvH9QowNvV85d5ACEkFxffXcYlmc777j0hhG4Ak6+7BxdRNR0MQCKYPfuNeDyWuEoZs17gEBC3q/J 8NluamdU1d1pAGoo0+EQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tYnk3-00000000XW1-3Rv8; Fri, 17 Jan 2025 14:54:35 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tYni8-00000000X2g-2iFk; Fri, 17 Jan 2025 14:52:38 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6A7931476; Fri, 17 Jan 2025 06:53:03 -0800 (PST) Received: from donnerap.manchester.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D21683F73F; Fri, 17 Jan 2025 06:52:30 -0800 (PST) Date: Fri, 17 Jan 2025 14:52:28 +0000 From: Andre Przywara To: Linus Walleij Cc: Andras Szemzo , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Philipp Zabel , Maxime Ripard , Vinod Koul , Kishon Vijay Abraham I , Ulf Hansson , Paul Walmsley , Palmer Dabbelt , Albert Ou , Uwe =?UTF-8?B?S2xlaW5lLUvDtm5pZw==?= , Florian Fainelli , linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-riscv@lists.infradead.org Subject: Re: [PATCH 03/12] pinctrl: sunxi: add driver for Allwinner V853. Message-ID: <20250117145228.2fc8a64e@donnerap.manchester.arm.com> In-Reply-To: References: <20250110123923.270626-1-szemzo.andras@gmail.com> <20250110123923.270626-4-szemzo.andras@gmail.com> <20250114141954.2785879a@donnerap.manchester.arm.com> <20250115152635.1b89e7f4@donnerap.manchester.arm.com> Organization: ARM X-Mailer: Claws Mail 3.18.0 (GTK+ 2.24.32; aarch64-unknown-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250117_065236_777119_9553E68D X-CRM114-Status: GOOD ( 77.38 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gVGh1LCAxNiBKYW4gMjAyNSAxMDozNDoyNiArMDEwMApMaW51cyBXYWxsZWlqIDxsaW51cy53 YWxsZWlqQGxpbmFyby5vcmc+IHdyb3RlOgoKSGkgTGludXMsCgo+IHNvbWUgbmljZSB0YWxrIGhl cmUsIGFjdHVhbGx5IHRoZSBmb2xsb3dpbmcgaXMganVzdCBvcGluaW9ucywgSSB3aWxsCj4gYmUg bGlrZWx5IGhhcHB5IHdpdGggd2hhdGV2ZXIgYXBwcm9hY2ggaXMgdGFrZW4gZXZlbnR1YWxseS4K Cml0J3MgaW5kZWVkIGFuIGludHJpZ3VpbmcgZGlzY3Vzc2lvbiwgbWFkZSBtZSB0aGluayBhIGJp dCAuLi4KQW5kIHRoYW5rcyBmb3IgZGVzY3JpYmluZyB5b3VyIG1haW50YWluZXIncyB2aWV3LCB0 aGF0J3MgZGVmaW5pdGVseQpoZWxwZnVsLgoKPiBPbiBXZWQsIEphbiAxNSwgMjAyNSBhdCA0OjI2 4oCvUE0gQW5kcmUgUHJ6eXdhcmEgPGFuZHJlLnByenl3YXJhQGFybS5jb20+IHdyb3RlOgo+IAo+ ID4gPiBwaW86IHBpbmN0cmxAMWMyMDgwMCB7Cj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAg IGNvbXBhdGlibGUgPSAiYWxsd2lubmVyLHN1bjhpLXI0MC1waW5jdHJsIjsKPiA+ID4gKC4uLikK PiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgaTJjMF9waW5zOiBpMmMwLXBpbnMgewo+ID4g PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpbnMgPSAiUEIwIiwgIlBCMSI7Cj4g PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gPSAiaTJjMCI7Cj4g PiA+ICAgICAgICAgICAgICAgICAgICAgICAgIH07Cj4gPiA+Cj4gPiA+IGFic3RyYWN0LCBzdHJp bmdzLCBuaWNlLiBUaGUgZHJpdmVyIGhhbmRsZXMgdGhlIHBhcnRpY3VsYXJzLiAgCj4gPgo+ID4g V2hhdCBidWdzIG1lIGFib3V0IHRoaXMgaXQgdGhhdCB0aGlzIGhhcyBxdWl0ZSBzb21lIHNlZW1p bmdseSByZWR1bmRhbnQKPiA+IGluZm9ybWF0aW9uIChXaG8gd291bGQgaGF2ZSB0aG91Z2h0IHRo YXQgdGhlIGkyYzAgcGlucyB1c2UgZnVuY3Rpb24KPiA+ICJpMmMwIj8pLCBidXQgbWlzc2VzIG91 dCBvbiB0aGUgYWN0dWFsIDQgYml0cyghKSBvZiBpbmZvcm1hdGlvbi4gIAo+IAo+IHRoZSBwaW5z IGluIHRoaXMgZXhhbXBsZSBhcmUgY2FsbGVkIFBCMCBhbmQgUEIxIHRob3VnaC4gVGhlIGRlc2ln bmF0aW9uCj4gb24gdGhlIHBhY2thZ2UuIEFuZCBvZnRlbiBwaW5zIGFjdHVhbGx5IG5hbWVkICJp MmMwXzEiICJpMmMwXzIiIGFyZQo+IGZvciB0aGF0IHByaW1hcnkgZnVuY3Rpb24sIGJ1dCBtdXhh YmxlIHRvIGEgZmV3IG90aGVyIGZ1bmN0aW9ucywKPiBhdCBsZWFzdCBHUElPIGluIG1vc3QgY2Fz ZXMuIFNvIGl0J3MganVzdCBzb21lIG5hbWUgZm9yIHRoZSBwaW4KPiByZWFsbHkuCgpTdXJlLCB0 aGVyZSBpcyBpbmZvcm1hdGlvbiBpbiB0aGUgZm9ybSB0aGF0IG1hcmtzIHRob3NlIHR3byBwaW5z IGZvcgpiZWluZyB1c2FibGUgYXMgSTJDIHBpbnMuIEJ1dCBJIGZlZWwgbGlrZSB0aGUgZnVuY3Rp b24gcGFyYW1ldGVyIGlzIG5vdApsaXZpbmcgdXAgdG8gaXRzIHByb21pc2UgKHNlZSBiZWxvdyku Cgo+ID4gPiBUaGF0IGlzIGxpa2Ugc28gYmVjYXVzZSB3ZSBhcmUgZGVzaWduaW5nIGZvciB1c2Vy cyB3aGljaCBhcmUKPiA+ID4gbGV0J3Mgc2F5IGN1c3RvbWl6YXRpb24gZW5naW5lZXJzLiBJZiB0 aGVzZSBlbmdpbmVlcnMganVtcCBmcm9tCj4gPiA+IHByb2plY3QgdG8gcHJvamVjdCBtYXRjaGlu ZyBmdW5jdGlvbiBzdHJpbmdzIHRvIGdyb3VwIHN0cmluZ3Mgd2lsbAo+ID4gPiBiZSBhIGNvbW1v biB3YXkgdG8gc2V0IHVwIHBpbnMsIGFuZCBlYXN5IHRvIHVuZGVyc3RhbmQgYW5kCj4gPiA+IGdy YXNwLCBhbmQgaXQgbWFrZXMgdGhlIERUUyB2ZXJ5IHJlYWRhYmxlLiAgCj4gPgo+ID4gVGhhdCdz IGFuIGludGVyZXN0aW5nIHZpZXcsIGFuZCBJIHNlZSB0aGUgcG9pbnQgb2YgaXQgYmVpbmcgZWFz eSB0byByZWFkLAo+ID4gYnV0IHRoaXMgaXMgcGFydGx5IGJlY2F1c2UgaXQgZG9lc24ndCBjb252 ZXkgdG9vIG11Y2ggYWN0dWFsIGluZm9ybWF0aW9uLAo+ID4gZG9lcyBpdCwgYXMgaXQgcmVxdWly ZXMgYW5vdGhlciBsb29rdXAgb3IgdHdvLgo+ID4gQW5kIHRoZSBwaW5jdHJsIGdyb3VwIG5vZGVz IGFyZSBhY3R1YWxseSBpbiB0aGUgLmR0c2kgZmlsZSwgd2hpY2ggYXJlCj4gPiB0eXBpY2FsbHkg d3JpdHRlbiBvbmNlIGR1cmluZyB0aGUgaW5pdGlhbCBTb0MgZW5hYmxlbWVudCwgYW5kIG5ldyBi b2FyZAo+ID4gLmR0cyBmaWxlcyBub3JtYWxseSBqdXN0IHJlZmVyZW5jZSB0aGUgZXhpc3Rpbmcg cGluZ3JvdXAgbm9kZXMuIFNvIGFueW9uZQo+ID4gZGVhbGluZyB3aXRoIGp1c3QgYSBuZXcgYm9h cmQgaXMgbm90IGJvdGhlcmVkIGJ5IHRoaXMuICAKPiAKPiBZb3UgaGF2ZSBhIHBvaW50LCBhbmQg d2hlbiB3b3JraW5nIHdpdGggYSBzeXN0ZW0gdGhlIGFwcGxpY2F0aW9uCj4gZW5naW5lZXIgb2Z0 ZW4gZmluZHMgYnVncyBpbiB0aGUgcGluIGNvbnRyb2wgZHJpdmVyLCBhbmQgaGFzIHRvIGdvCj4g YW5kIGZpeCB0aGUgYWN0dWFsIGRyaXZlciBhbmQgdGhlbiBhbGwgdGhlIGluZm9ybWF0aW9uIGhp ZGluZyBhbmQKPiBzaW1wbGlmaWNhdGlvbiBpcyBtb290Lgo+IAo+IFRoaXMgY2FuIGJlY29tZSBh biBleHBlbnNpdmUgbGVzc29uIGZvciB0aGUgY3VycmVudCBhdHRlbXB0cwo+IHRvIHB1c2ggcGlu IGNvbnRyb2wgaW50byBmaXJtd2FyZSB3aGVyZSB0aGUgY29uZmlndXJhdGlvbiBpcwo+IG1vc3Rs eSAiZGVhZCBzaW1wbGUiIChhbmQganVzdCB1c2luZyBzdHJpbmdzKSAtIHRoZSBidWdzIHdpbGwg YmUKPiBpbiB0aGUgZmlybXdhcmUgaW5zdGVhZCwgYW5kIGltcG9zc2libGUgb3IgcmVhbGx5IGhh cmQgdG8gZml4LgoKLi4uIGluIHRoYXQgb2xkIGVtYmVkZGVkIHdvcmxkIHdoZXJlIGZpcm13YXJl IGlzIGFuIG9wYXF1ZSBjbG9zZWQgc291cmNlCnVuZml4YWJsZSBibG9iLiBNYWlubGluZSBBbGx3 aW5uZXIgaXMgYWxsICJvcmdhbmljIjogd2UgaGF2ZSB1cHN0cmVhbWVkClUtQm9vdCBhbmQgVEYt QSBzdXBwb3J0LCBhY3RpdmVseSBtYWludGFpbmVkLCBwbHVzIGFuIE9wZW4gU291cmNlCm1hbmFn ZW1lbnQgZmlybXdhcmUuIFVwZGF0aW5nIHRoZSBmaXJtd2FyZSBpcyBhIG1hdHRlciBvZiAiZGQi IG9yCiJmbGFzaGNwIiAtIGF0IGxlYXN0IGluIHRoZW9yeS4gQW5kIEknZCByYXRoZXIgdGhpbmsg b2YgdGhlIGtlcm5lbCBiZWluZwpub3QgZWFzeSB0byBjaGFuZ2UgLSB0aGluayBEZWJpYW4gaW5z dGFsbGVyIGltYWdlLCBvciBnZXR0aW5nIGl0IHVwc3RyZWFtCmZpcnN0LCB0aGVuIGJhY2twb3J0 ZWQsIHRoZW4gcGlja2VkIHVwIGJ5IGEgZGlzdHJvLgpCdXQgSSB0aGluayB0aGlzIGRpc2N1c3Np b24gc2xpZ2h0bHkgZGlncmVzc2VzIGhlcmUgLSBhdCBsZWFzdCBmb2xsb3dpbmcgaXQKd291bGQg ZG91YmxlIHRoZSBsZW5ndGggb2YgdGhpcyBlbWFpbCA7LSkKCj4gPiBBbHNvIGluIG15IGV4cGVy aWVuY2UgbW9zdCBwZW9wbGUgaGF2ZSBubyBwcm9ibGVtcyBpbiB1bmRlcnN0YW5kaW5nIHRoZQo+ ID4gY29uY2VwdCBvZiBwaW5tdXhpbmcgYW5kIHRoYXQgdGhlcmUgaXMgYSBzZWxlY3RvciBudW1i ZXIsIGFsc28gd2hlcmUgdG8KPiA+IGZpbmQgdGhpcy4gIAo+IAo+IFllYWggdGhlIGFtYml0aW9u IHdpdGggdGhlIHN0cmluZ3Mgd2FzIHRvIGF2b2lkIGZvcmNpbmcgYXBwbGljYXRpb24KPiBlbmdp bmVlcnMgdG8ga25vdyBhbGwgYWJvdXQgdGhhdC4gSWYgdGhleSBkbywgdGhleSBhcmUgdGhlbgo+ IGRldmVsb3BpbmcgdGhlIGRyaXZlciwgbm90IGp1c3QgdXNpbmcgaXQuCgpJJ2QgYXJndWUgdGhh dCBhbiBhcHBsaWNhdGlvbiBlbmdpbmVlciBqdXN0IGhhcyB0byBjaG9vc2UgdGhlIHJpZ2h0CnBp bmdyb3VwIERUIG5vZGU6CglwaW5jdHJsLTAgPSA8JmkyYzJfcGJfcGlucz47CkluIHRoZSB3b3Jz dCBjYXNlIHRoZXkgZ28gYWhlYWQgYW5kIGFzayB0aGVpciBoYXJkd2FyZSBidWRkeSwgYW5kIGNy ZWF0ZQphIG5ldyBwaW5ncm91cCBub2RlLiBJbiBteSBleHBlcmllbmNlIHRoZSB0eXBpY2FsIEFs bHdpbm5lciB1c2VycyBhcmUgbW9yZQpvbiB0aGUgaGFyZHdhcmUgc2lkZSwgc28gYXJlIG5vIHN0 cmFuZ2VycyB0byBsb29raW5nIHVwIGRhdGEgc2hlZXRzLgoKPiA+ID4gTWVkaWF0ZWsgYW5kIFNU TTMyIG1hZGUgYSBjb21wcm9taXNlIGJ5IHVzaW5nIHBpbm11eAo+ID4gPiBhbmQgYWRkaW5nIHNv bWUgbWFjcm9zIHRvIGRlZmluZSB0aGVtIHNvIGl0IGxvb2tzIG1vcmUKPiA+ID4gcGxlYXNhbnQ6 Cj4gPiA+Cj4gPiA+ICAgICAgIGkyYzBfcGluc19hOiBpMmMwLWRlZmF1bHQgewo+ID4gPiAgICAg ICAgICAgICAgICAgcGlucy1pMmMwIHsKPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcGlu bXV4ID0gPE1UNzYyM19QSU5fNzVfU0RBMF9GVU5DX1NEQTA+LAo+ID4gPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8TVQ3NjIzX1BJTl83Nl9TQ0wwX0ZVTkNfU0NMMD47ICAKPiA+ Cj4gPiBXZWxsLCBJIGRvbid0IHJlYWxseSBnZXQgd2h5IHRoZXkgZG9uJ3QgdXNlIHRoZSAoTVRL X1BJTl9OTyg3NSkgfCAxKQo+ID4gZGVmaW5pdGlvbiBkaXJlY3RseSwgc2VlbXMgdG8gYmUgbW9y ZSB0ZWxsaW5nIHRvIG1lPyAgCj4gCj4gVGhhdCdzIHdoYXQgU1RNMzIgZG9lcyBhcyB3ZWxsIGFu ZCBpdCdzIHVzYWJsZS4KPiAKPiBCdXQgb2YgY291cnNlIGl0IGRyaXZlcyBhIHRydWNrIHRocm91 Z2ggdGhlIGluaXRpYWwgYW1iaXRpb24gdGhhdCBwaW5zCj4gb24gYWxsIHN5c3RlbXMgYmUgY29u ZmlndXJlZCB0aGUgc2FtZSB3YXksIHdpdGggc3RyaW5ncy4gU28gbm93Cj4gdGhlcmUgYXJlIHNv bWUgZmFtaWxpZXMgb2YgZHJpdmVycyBhbGwgIm5lY2Vzc2FyaWx5IGRpZmZlcmVudCIgd2hpY2gK PiBpcyBub3Qgc28gbmljZSBmb3IgcGVvcGxlIGp1bXBpbmcgYmV0d2VlbiBkaWZmZXJlbnQgU29D cywgYnV0Cj4gdmVyeSBjb21wZWxsaW5nIGZvciBwZW9wbGUgZm9jdXNpbmcgb24ganVzdCBvbmUg U29DLgoKQWgsIEkgdGhpbmsgSSBnZXQgeW91ciBwb2ludC4KCj4gV2VsbCwgdW5sZXNzIHRoaXMg d2F5IG9mIGRvaW5nIHRoaW5ncyBiZWNvbWVzIHNvIHByZXZhbGVudCB0aGF0Cj4gaXQncyB0aGUg bmV3IGJsYWNrLgoKVGhhdCBpcyBhY3R1YWxseSBhIGdvb2QgYXJndW1lbnQ6IEF0IHRoZSBtb21l bnQgSSBhbSBoYXBweSB3aXRoIG15CnByb3Bvc2FsICh0aGUgYWxsd2lubmVyLHBpbm11eCA9IDxu dW1iZXI+OyBwcm9wZXJ0eSksIGJ1dCB0aGF0IHNlZW1zIGxpa2UKc3RhbmRhcmQgIzE1IHRoZW4u ClNvIHdvdWxkIGJpdGluZyB0aGUgYnVsbGV0IGFuZCBhZG9wdGluZyB0aGUgQXBwbGUvU1RNMzIg d2F5IHRoZW4gYmUgbW9yZQpzdXN0YWluYWJsZT8KT24gdGhlIG90aGVyIGhhbmQ6IHRoZSBhbGx3 aW5uZXIscGlubXV4IHNvbHV0aW9uIGhhcyB0aGUgYWR2YW50YWdlIG9mIGJlaW5nCmFscmVhZHkg d3JpdHRlbiBhbmQgcHJvdmVuIHdvcmtpbmcsIGFsc28gaXQgc3RheXMgdmVyeSBjbG9zZSB0byB0 aGUKZXhpc3RpbmcgZGVzY3JpcHRpb24vYmluZGluZyAtIHNvIGltcGxlbWVudGF0aW9ucyBsaWtl IFUtQm9vdCBjb3VsZCBqdXN0CmtlZXAgb24gdXNpbmcgdGhlICJmdW5jdGlvbiIgc3RyaW5nLgoK SSBhbSBhIGJpdCB0b3JuIGhlcmUuLi4gSSBkb24ndCB0aGluayBJIHdpbGwgZmluZCB0aGUgc29s aXR1ZGUgdG8KaW1wbGVtZW50IHRoaXMgIkFwcGxlIiBhcHByb2FjaCBpbiB0aGUgbmV4dCBmZXcg d2Vla3MuCgo+ID4gU28gdGhlIHBsYW4gZm9yIHN1bnhpIHdvdWxkIGJlOiA8U1VOWElfUElOTVVY KFBPUlRDLCAyMywgTVVYXzEpPiwgLi4uCj4gPiBBbmQgdGhpcyB3b3VsZCBub3QgYmUgcmVhbGx5 ICJvcGFxdWUiLCBzaW5jZSBpdCBoYXMgYSBmaXhlZCBrbm93biBtYXBwaW5nOgo+ID4gICAgICAg ICAocG9ydCA8PCAxNikgfCAocGluIDw8IDgpIHwgKG11eCA8PCAwKSkKPiA+IEkgZmluZCB0aGlz IGJvdGggdGVjaG5pY2FsbHkgZWxlZ2FudCwgYmVjYXVzZSBpdCBjb21iaW5lcyBhbGwgdGhlCj4g PiBpbmZvcm1hdGlvbiBpbnRvIGp1c3Qgb25lIGNvbXBhY3QgY2VsbCwgYnV0IGFsc28gcmVhZGFi bGUgYnkgb3V0c2lkZXJzLAo+ID4gdGhhbmtzIHRvIHRoZSBtYWNyby4gIAo+IAo+IEFuZCBhIG5l dyBzdGFuZGFyZCwgdG8gYWRkIHRvIHRoZSBvdGhlciBzdGFuZGFyZHMsIHNvIHRoYXQKPiBpcyBt eSBwcm9ibGVtIGFzIG1haW50YWluZXIuIEl0IG1ha2VzIHNlbnNlIG9uIGl0cyBvd24sIGFuZCBp dAo+IGNvbXBsaWNhdGVzIHRoZSBiaWdnZXIgcGljdHVyZS4KCkkgc2VlIHlvdXIgcG9pbnQgLSB4 a2NkIDkyNy4KCj4gPiBNeSBtYWluIGFyZ3VtZW50cyBhZ2FpbnN0IHRoZSBjdXJyZW50IChzdHJp bmctYmFzZWQpIGFwcHJvYWNoOgo+ID4gLSBUaGV5IHJlcXVpcmUgdGhlIG1hcHBpbmcgdGFibGUg dG8gYmUgaW4gZXZlcnkgRFQgdXNlciwgc28gbm90IG9ubHkgdGhlCj4gPiAgIExpbnV4IGtlcm5l bCwgYnV0IGFsc28gVS1Cb290LCBGcmVlQlNELCB5b3UgbmFtZSBpdC4uLiAgCj4gCj4gVGhhdCdz IHRydWUuCj4gCj4gVGhpcyBjb21lcyBmcm9tIHRoZSBEVCBhbWJpdGlvbiB0byBkZXNjcmliZSBo YXJkd2FyZSBhbmQgY29uZmlnLAo+IGJ1dCBub3QgKmRlZmluZSogaGFyZHdhcmUsIGkuZS4gdG8g c3RvcCBkZXZpY2UgdHJlZSB0byB0dXJuIGludG8KPiBWZXJpbG9nIG9yIFN5c3RlbUMsIHdoaWNo IGlzIHdoYXQgd2lsbCBoYXBwZW4gaWYgd2UgdGFrZSB0aGUKPiAxOjEgcmVmbGVjdGlvbiBvZiBo YXJkd2FyZSB0byBkZXZpY2UgdHJlZSB0b28gZmFyLgo+IAo+IEkgZG9uJ3QgdGhpbmsgYW55b25l IHJlYWxseSBrbm93cyB3aGVyZSB0byBjdXQgdGhlIGxpbmUuCgpUaGF0J3MgdHJ1ZSwgYW5kIEkg bGVhcm5lZCB0byBzdGVwIGJhY2sgZnJvbSB0aGlzIGFtYml0aW9uIC0gaXQncwp0ZW1wdGluZywg YnV0IGluZGVlZCBvdXQgb2Ygc2NvcGUuCk9uZSB0aGluZyB0byBjb25zaWRlciwgdGhvdWdoOiB0 aGUgZnVuY3Rpb24gbmFtZXMgYXJlIGVmZmVjdGl2ZWx5IHBhcnQgb2YKdGhlIGJpbmRpbmcsIHNp bmNlIHRoZXkgbXVzdCBtYXRjaCBleGFjdGx5IGJldHdlZW4gdGhlIGRyaXZlciBhbmQgRFQgLSBp dCdzCm5vdCBqdXN0IGEgbmFtZS4gQnV0IHRoZXkgYXJlIGRvY3VtZW50ZWQgbm93aGVyZS4gTmFt ZXMgbGlrZSAiaTJjMCIgb3IKInVhcnQyIiBzZWVtIG9idmlvdXMsIGJ1dCB0aGVyZSBhcmUgYW1i aWd1aXRpZXMgbGlrZSAidHdpIiB2cyAiaTJjIiAodGhlCmZvcm1lciB1c2VkIGluIHRoZSB2ZW5k b3IgQlNQKSwgb3IgIm93YSIgdnMgInNwZGlmIiAoc2FtZSBzaXR1YXRpb24pLgpBbHNvLCBpcyBp dCAiZW1hYyIgb3IgImVtYWMwIj8gRm9yIHNvbWUgU29DcyB3ZSBkaXNjb3ZlciBhIHNlY29uZApp bnRlcmZhY2UgbGF0ZXI6IEE1MjMganVzdCBleHBvc2VzIG9uZSBFTUFDLCBidXQgdGhlIEE1Mjcg cGFja2FnZSAoc2FtZQpkaWUpIHByb3ZpZGVzIHRoZSBwaW5zIGZvciB0aGUgc2Vjb25kIE1BQyBh cyB3ZWxsLiBTbyBJIGFtIGFmcmFpZCBzdHJpbmdzCmFyZSBub3QgYXMgdW5pcXVlIG9yIHN0cmFp Z2h0LWZvcndhcmQgYXMgd2UgaG9wZSBmb3IuCgpTbyBmb3IgY3JlYXRpbmcgYSBuZXcgcGluZ3Jv dXAsIGFuIGFwcGxpY2F0aW9uIGVuZ2luZWVyIHdvdWxkIG5lZWQgdG8KY2hlY2sgdGhlIExpbnV4 IGRyaXZlciAob3IgVS1Cb290PyBPciBGcmVlQlNEPykgZm9yIHRoZSBuYW1lIHRvIHVzZSAtIHRo YXQKc291bmRzIHNvbWV3aGF0IHdyb25nIHRvIG1lLgpJbiB0aGUgbmV3IG1vZGVsIHRoZXkganVz dCBjcmVhdGUgYSB1bmlxdWUgZnVuY3Rpb24gbmFtZSBhbmQgZW50ZXIgdGhlCnBpbm11eCBmcm9t IHRoZSBkYXRhc2hlZXQgLSBJIHRoaW5rIHRoYXQncyBub3QgdG9vIG11Y2ggdG8gYXNrPwoKPiA+ IC0gVGhlIHRhYmxlcyBhcmUgZ2V0dGluZyBxdWl0ZSBsYXJnZSwgYW5kIHRoZXkgcG9sbHV0ZSB0 aGUgc2luZ2xlIGltYWdlCj4gPiAgIExpbnV4IGtlcm5lbCwgd2l0aCB0b25zIG9mIHZlcnkgc3Bl Y2lmaWMgaW5mb3JtYXRpb24gZm9yIGEgbnVtYmVyIG9mIHZlcnkKPiA+ICAgcGl0aWZ1bCBBbGx3 aW5uZXIgU29Dcy4gQXQgdGhlIG1vbWVudCB0aGUgdGFsbHkgaXMgYXQgMTQ1S0Igb2YgY29kZStk YXRhCj4gPiAgIGZvciB0aGUgZXhpc3RpbmcgYXJtNjQgU29Dcywgd2l0aCB0aGUgbmV3ZXIgU29D cyBldmVyIGdyb3dpbmcgKEg2MTYgYWxvbmUKPiA+ICAgaXMgMjdLQiwgQTUyMyB3b3VsZCBiZSBx dWl0ZSBsYXJnZXIgZXZlbiwgSSBndWVzcyA0MEspLiBUaGUgbmV3IEE1MjMKPiA+ICAgc3BlY2lm aWMgcGluY3RybCBzdXBwb3J0IGFkZHMgODcyIEJ5dGVzLiAgCj4gCj4gVGhpcyBpcyBhIGdlbmVy aWMgcHJvYmxlbSB0aG91Z2gsIGxvb2sgYXQgR1BVIGRyaXZlcnMuCgpZZXMsIGJ1dCBmb3IgR1BV cyB0aGVyZSBpcyBnb29kIHJhdGlvbmFsZSAoYmVjYXVzZSB0aGV5IGFyZSBiaWcKY29tcGxpY2F0 ZWQgcGllY2VzIG9mIGhhcmR3YXJlKSwgYW5kIHRoZXkgYXJlIGVhc2lseSBwdXQgaW50byBtb2R1 bGVzLgpQaW5jdHJsIG9uIHRoZSBvdGhlciBoYW5kIGlzIGVzc2VudGlhbCBmb3IgKmFueSogZGV2 aWNlIHRvIGNvbWUgdXAKKFVBUlQhKSwgc28gaGF2aW5nIHRoZW0gaW4gdGhlIGltYWdlIG1ha2Vz IHRoaW5ncyBtdWNoIGVhc2llci4gQWxzbwpBbGx3aW5uZXIgcGluY3RybCBkZXZpY2VzIGFyZSBu b3QgbmVhcmx5IGFzIHNleHkgYXMgYSBSYWRlb24gb3IgR2Vmb3JjZSA7LSkKCj4gVGhlIGNvbW11 bml0eSAoZXNwZWNpYWxseSBBbmRyb2lkKSBzZWVtIHNldCBvbiBmaXhpbmcgdGhpcyBieSB1c2lu Zwo+IG1vZHVsZXMuCj4gCj4gPiAtIE1vc3Qgb2YgdGhlIG1hcHBpbmdzIGFyZSB1bnRlc3RlZCBh dCBwaW5jdHJsIGRyaXZlciBjb21taXQgdGltZSwgc2luY2Ugd2UKPiA+ICAgZG9uJ3QgaGF2ZSB0 aGUgZGV2aWNlIGRyaXZlcnMgcmVhZHkgeWV0IC0gYnkgYSBtYXJnaW4uIFRoZSBuZXcgYXBwcm9h Y2gKPiA+ICAgd291bGQgYWRkIHRoZSBwaW5tdXggdmFsdWVzIHdoZW4gd2UgbmVlZCB0aGVtIGFu ZCBjYW4gdGVzdCB0aGVtLiAgCj4gCj4gSSBsaWtlIHRoaXMgYXJndW1lbnQgdGhlIGJlc3QuCj4g Cj4gSG93ZXZlciB0aGlzIGFsc28gcmVhZHMgInVwZnJvbnQgZmlybXdhcmUgdG8gaGFuZGxlIHBp biBjb250cm9sIGlzIGEKPiBkZWFkIGVuZCIgeWV0IHRoZXJlIGFyZSBwZW9wbGUgZGVkaWNhdGVk bHkgd29ya2luZyBvbiBleGFjdGx5IHRoYXQuCj4gKE5vdCB0aGF0IGl0cycgdGhlIEFsbHdpbm5l ciBkZXZlbG9wZXJzJyBwcm9ibGVtLi4uKQoKSSBzZWUsIGJ1dCBJIGZlZWwgaXQncyBhbiBvcnRo b2dvbmFsIHByb2JsZW0sIGFuZCByZWxpZXMgb24gdGhlIGEKcGVzc2ltaXN0aWMgZmlybXdhcmUg dmlldyAoc2VlIGFib3ZlKS4KSGF2aW5nIHRob3NlIGdvcnkgU29DIHNwZWNpZmljIGRldGFpbHMg aW4gZmlybXdhcmUgKHdoaWNoIGlzIGJ5CmRlZmluaXRpb24gZGV2aWNlIHNwZWNpZmljKSBzb2x2 ZXMgb25lIGJpZyBwcm9ibGVtLCB0aG91Z2g6IHRoZXJlIGlzIGEKY2hhbmNlIHRoYXQgZXhpc3Rp bmcga2VybmVscyB3b3VsZCBhbHJlYWR5IHJ1biBvbiBuZXcgU29Dcy9ib2FyZHMuCkJ1dCBhZ2Fp bjogZGlmZmVyZW50IGRpc2N1c3Npb24gdGhyZWFkLCBJIGd1ZXNzLCBhbmQgbm90IHdoYXQgSSBh c2sgZm9yLgoKPiA+IC0gVGhlIGNvbW1lbnRzIGluIHRoZSB0YWJsZSBnaXZlIGF3YXkgdGhhdCBz b21ldGhpbmcgaXMgbm90IHF1aXRlIHJpZ2h0Ogo+ID4gICAgICAgICAgICAgICAgICAgU1VOWElf RlVOQ1RJT04oMHgyLCAiaTJjMCIpKSwgICAgICAgICAvKiBTREEgKi8KPiA+ICAgVGhpcyBpcyBq dXN0IGEgY29tbWVudCwgc28gaGFzIG5vIHJlbGV2YW5jZSBmb3IgdGhlIGNvZGUsIGJ1dCBpdCdz IG5vdAo+ID4gICBtZWFudCBmb3IgaHVtYW5zIGVpdGhlci4gWWV0IHdlIHRyeSB0byBtYWtlIHRo aXMgY29ycmVjdCBhbmQgbWFpbnRhaW4KPiA+ICAgaXQuIE9kZC4gIAo+IAo+IFNvIGkyYzAgaXMg U0RBIGFuZCBpMmMxIGlzIFNDTCBvciBzb21ldGhpbmc/CgpObywgc29ycnksIEkgY3V0IG91dCB0 b28gbXVjaCwgaXQgbG9va3MgbGlrZSB0aGlzOgoKCVNVTlhJX1BJTihTVU5YSV9QSU5DVFJMX1BJ TihJLCA1KSwKCQkgIFNVTlhJX0ZVTkNUSU9OKDB4NSwgImkyYzAiKSwJCS8qIFNDSyAqLwoJCS4u LgogICAgICAgIFNVTlhJX1BJTihTVU5YSV9QSU5DVFJMX1BJTihJLCA2KSwKCQkgIFNVTlhJX0ZV TkNUSU9OKDB4NSwgImkyYzAiKSwJCS8qIFNEQSAqLwoJCS4uLgogICAgICAgIFNVTlhJX1BJTihT VU5YSV9QSU5DVFJMX1BJTihJLCA3KSwKCQkgIFNVTlhJX0ZVTkNUSU9OKDB4NSwgImkyYzEiKSwJ CS8qIFNDSyAqLwoJCS4uLgogICAgICAgIFNVTlhJX1BJTihTVU5YSV9QSU5DVFJMX1BJTihJLCA4 KSwKCQkgIFNVTlhJX0ZVTkNUSU9OKDB4NSwgImkyYzEiKSwJCS8qIFNEQSAqLwoKU28gdGhlIGZ1 bmN0aW9uIGp1c3Qgc2VsZWN0cyB0aGUgZ3JvdXAsIGFuZCB0aGUgYWN0dWFsIHBpbiBuYW1lIGlz CmNvbXBsZXRlbHkgaXJyZWxldmFudCB0byB0aGUgc29mdHdhcmUgc2lkZSAtIGhlbmNlIHRoZSBj b21tZW50LgpCdXQgdGhpcyAicHV0IHNvbWV0aGluZyBub3QgbWVhbnQgZm9yIHRoZSBodW1hbiBy ZWFkZXIgaW50byBhIGNvbW1lbnQiCnR5cGljYWxseSBwb2ludHMgdG8gc29tZXRoaW5nIG5vdCBi ZWluZyBxdWl0ZSByaWdodC4KCkNoZWVycywKQW5kcmUKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1y aXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt YW4vbGlzdGluZm8vbGludXgtcmlzY3YK