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 X-Spam-Level: X-Spam-Status: No, score=-4.5 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS, URIBL_BLOCKED,USER_AGENT_NEOMUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 522D6ECDE4B for ; Thu, 8 Nov 2018 15:54:29 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 23AE02077B for ; Thu, 8 Nov 2018 15:54:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="sp8cRodq"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="CdcSa6eM" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 23AE02077B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-riscv-bounces+infradead-linux-riscv=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject: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=n7w9YrNYN4juWfPlDpBb6wAb1RBiS7uUGWg9mt2llcI=; b=sp8cRodqH6Dbwp KNT7HQHjPW88H+2kYhiLzNSSEPL5WNI7/1GvWFl9VxxouZOgmTO8Kxxy5lQ56hLXTkPFlBoPE3QfT 6iDf0jzaq34ZDazgEuZzyglCFvVvBJ0Fydq1/9fTlxutTYT+xNFw6+XUdHU7pdvKg6kbQt4JVNdt4 XLz9ZacLES2+FoCwnRv9rMYMsCjHCLzEL0jPHB+6wPU1oZLndLDo1mk2aFpUamXqfaxoOYyGM2Dao wqTJ37zjFFkDxTgH1zKmW9YwsL3AWwbfbP1z1wl7E6op+u7Je/9trraR+pfH9+U5dnRmnGkL3gVzo cAc1PfGufPYOfXaPS/KA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gKmdY-0006Vz-7B; Thu, 08 Nov 2018 15:54:28 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gKmdX-0006Vs-CD for linux-riscv@bombadil.infradead.org; Thu, 08 Nov 2018 15:54:27 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Transfer-Encoding: Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender: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=W3D1jKTMpJW6fd10hQaEasBNWSYmO6KqQ4Wr7TpcOm8=; b=CdcSa6eM21tnheWck+vo9D/img uLnNGRCs/ON6wUwnnrtXfQyca48e9d9ERyzN6Dn+k1ngboEoxnb7RvMTM7TB0f9OpGD95zQOh/Mkz Q+p/arYREzGNyvNJkmgQUsLrum0DFHPnFhz/NHyd54KPX6xy7lki/WdAGCSPSFCA/51/ei4PDOtrW 0zcUfJVWQ9lMv3srI9kBx1SNnCsNF/t8jAMCx1p49R6KBPcJUFxzwESkpEOG4AI7LoeMTKf9Uj8jL 6SXHls1k0khAOtXyQr+/SWNrwkmx9R9Z9PJTB0QPrqyExL9wuqS7BMIePqYYWM0yy1zouYvgmJGLI 2jGy8S0A==; Received: from foss.arm.com ([217.140.101.70]) by casper.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gKmdT-000864-Ho for linux-riscv@lists.infradead.org; Thu, 08 Nov 2018 15:54:25 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 7B04380D; Thu, 8 Nov 2018 07:54:12 -0800 (PST) Received: from lakrids.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.72.51.249]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 233E53F5CF; Thu, 8 Nov 2018 07:54:09 -0800 (PST) Date: Thu, 8 Nov 2018 15:54:05 +0000 From: Mark Rutland To: Nick Kossifidis Subject: Re: [RFC 0/2] Add RISC-V cpu topology Message-ID: <20181108155404.32ja7bbxu62nyytt@lakrids.cambridge.arm.com> References: <1541113468-22097-1-git-send-email-atish.patra@wdc.com> <866dedbc78ab4fa0e3b040697e112106@mailhost.ics.forth.gr> <20181106141331.GA28458@e107155-lin> <969fc2a5198984e0dfe8c3f585dc65f9@mailhost.ics.forth.gr> <20181106162051.w7fyweuxrl7ujzuz@lakrids.cambridge.arm.com> <20181107120645.sc3wjgr2yakvxktl@lakrids.cambridge.arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20170113 (1.7.2) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181108_155423_945249_6AB9D09D X-CRM114-Status: GOOD ( 81.04 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, Damien.LeMoal@wdc.com, alankao@andestech.com, hch@infradead.org, anup@brainfault.org, palmer@sifive.com, linux-kernel@vger.kernel.org, zong@andestech.com, Atish Patra , robh+dt@kernel.org, Sudeep Holla , linux-riscv@lists.infradead.org, tglx@linutronix.de Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+infradead-linux-riscv=archiver.kernel.org@lists.infradead.org Message-ID: <20181108155405.6X4YNlaQ34gb5cMv-ZSE2HZdSVoNrtekQd399lhxtg4@z> T24gVGh1LCBOb3YgMDgsIDIwMTggYXQgMDM6NDU6MzZQTSArMDIwMCwgTmljayBLb3NzaWZpZGlz IHdyb3RlOgo+IM6jz4TOuc+CIDIwMTgtMTEtMDcgMTQ6MDYsIE1hcmsgUnV0bGFuZCDOrc6zz4HO sc+IzrU6Cj4gPiBPbiBXZWQsIE5vdiAwNywgMjAxOCBhdCAwNDozMTozNEFNICswMjAwLCBOaWNr IEtvc3NpZmlkaXMgd3JvdGU6Cj4gPiA+IE1hcmsgYW5kIFN1bmRlZXAgdGhhbmtzIGEgbG90IGZv ciB5b3VyIGZlZWRiYWNrLCBJIGd1ZXNzIHlvdSBjb252aW5jZWQKPiA+ID4gbWUgdGhhdCBoYXZp bmcgYSBkZXZpY2UgdHJlZSBiaW5kaW5nIGZvciB0aGUgc2NoZWR1bGVyIGlzIG5vdCBhCj4gPiA+ IGNvcnJlY3QgYXBwcm9hY2guIEl0J3Mgbm90IGEgZGV2aWNlIGFmdGVyIGFsbCBhbmQgSSBhZ3Jl ZSB0aGF0IHRoZQo+ID4gPiBkZXZpY2UgdHJlZSBzaG91bGRuJ3QgYmVjb21lIGFuIE9TIGNvbmZp Z3VyYXRpb24gZmlsZS4KPiA+IAo+ID4gR29vZCB0byBoZWFyLgo+ID4gCj4gPiA+IFJlZ2FyZGlu ZyBtdWx0aXBsZSBsZXZlbHMgb2Ygc2hhcmVkIHJlc291cmNlcyBteSBwb2ludCBpcyB0aGF0IHNp bmNlCj4gPiA+IGNwdS1tYXAgZG9lc24ndCBjb250YWluIGFueSBpbmZvcm1hdGlvbiBvZiB3aGF0 IGlzIHNoYXJlZCBhbW9uZyB0aGUKPiA+ID4gY2x1c3Rlci9jb3JlIG1lbWJlcnMgaXQncyBub3Qg ZWFzeSB0byBkbyBhbnkgZnVydGhlciB0cmFuc2xhdGlvbi4gTGFzdAo+ID4gPiB0aW1lIEkgY2hl Y2tlZCB0aGUgYXJtIGNvZGUgdGhhdCB1c2VzIGNwdS1tYXAsIGl0IG9ubHkgZGVmaW5lcyBvbmUK PiA+ID4gZG9tYWluIGZvciBTTVQsIG9uZSBmb3IgTUMgYW5kIHRoZW4gZXZlcnl0aGluZyBlbHNl IGlzIGlnbm9yZWQuIE5vCj4gPiA+IG1hdHRlciBob3cgbWFueSBjbHVzdGVycyBoYXZlIGJlZW4g ZGVmaW5lZCwgYW55dGhpbmcgYWJvdmUgdGhlIGNvcmUKPiA+ID4gbGV2ZWwgaXMgdGhlIHNhbWUg KGFuZCB0aGVuIEkgZ3Vlc3MgeW91IHN0YXJ0ZWQgdGFsa2luZyBhYm91dCBhZGRpbmcKPiA+ID4g InBhY2thZ2VzIiBvbiB0aGUgcmVwcmVzZW50YXRpb24gc2lkZSkuCj4gPiAKPiA+IFdoaWxlIGNw dS1tYXAgZG9lc24ndCBjb250YWluIHRoYXQgaW5mb3JtYXRpb24gdG9kYXksIHdlIGNhbiAqYWRk KiB0aGF0Cj4gPiBpbmZvcm1hdGlvbiB0byB0aGUgY3B1LW1hcCBiaW5kaW5nIGlmIG5lY2Vzc2Fy eS4KPiA+IAo+ID4gPiBUaGUgcmVhc29uIEkgcHJvcG9zZWQgdG8gaGF2ZSBhIGJpbmRpbmcgZm9y IHRoZSBzY2hlZHVsZXIgZGlyZWN0bHkgaXMKPiA+ID4gbm90IG9ubHkgYmVjYXVzZSBpdCdzIHNp bXBsZXIgYW5kIGNsb3NlciB0byB3aGF0IHJlYWxseSBoYXBwZW5zIGluIHRoZQo+ID4gPiBjb2Rl LCBpdCBhbHNvIG1ha2VzIG1vcmUgc2Vuc2UgdG8gbWUgdGhhbiB0aGUgY29tYmluYXRpb24gb2Yg Y3B1LW1hcAo+ID4gPiB3aXRoIGFsbCB0aGUgcmVsYXRlZCBtYXBwaW5ncyBlLmcuICBmb3IgbnVt YSBvciBjYWNoZXMgb3IgcG93ZXIKPiA+ID4gZG9tYWlucyBldGMuCj4gPiA+IAo+ID4gPiBIb3dl dmVyIHlvdSBhcmUgcmlnaHQgd2UgY291bGQgZGVmaW5pdGVseSBhdWdtZW50IGNwdS1tYXAgdG8g aW5jbHVkZQo+ID4gPiBzdXBwb3J0IGZvciB3aGF0IEknbSBzYXlpbmcgYW5kIGNsZWFuIHRoaW5n cyB1cCwgYW5kIHNpbmNlIHlvdSBhcmUKPiA+ID4gb3BlbiBhYm91dCBpbXByb3ZpbmcgaXQgaGVy ZSBpcyBhIHByb3Bvc2FsIHRoYXQgSSBob3BlIHlvdSBmaW5kCj4gPiA+IGludGVyZXN0aW5nOgo+ ID4gPiAKPiA+ID4gQXQgZmlyc3QgbGV0J3MgZ2V0IHJpZCBvZiB0aGUgPHRocmVhZD4gbm9kZXMs IHRoZXkgZG9uJ3QgbWFrZSBzZW5zZToKPiA+ID4gCj4gPiA+IHRocmVhZDAgewo+ID4gPiAgY3B1 ID0gPCZDUFUwPjsKPiA+ID4gfTsKPiA+ID4gCj4gPiA+IEEgdGhyZWFkIG5vZGUgY2FuJ3QgaGF2 ZSBtb3JlIHRoYW4gb25lIGNwdSBlbnRyeSBhbmQgYW55IHByb3BlcnRpZXMKPiA+ID4gc2hvdWxk IGJlIG9uIHRoZSBjcHUgbm9kZSBpdHNlbGYsIHNvIGl0IGRvZXNuJ3QgLyBjYW4ndCBhZGQgYW55 Cj4gPiA+IG1vcmUgaW5mb3JtYXRpb24uIFdlIGNvdWxkIGp1c3QgaGF2ZSBhbiBhcnJheSBvZiBj cHUgbm9kZXMgb24gdGhlCj4gPiA+IDxjb3JlPiBub2RlLCBpdCdzIG11Y2ggY2xlYW5lciB0aGlz IHdheS4KPiA+ID4gCj4gPiA+IGNvcmUwIHsKPiA+ID4gIG1lbWJlcnMgPSA8JkNQVTA+LCA8JkNQ VTE+Owo+ID4gPiB9Owo+ID4gCj4gPiBIb2xkIG9uLiBSYXRoZXIgdGhhbiByZWludmVudGluZyB0 aGluZ3MgZnJvbSBmaXJzdCBwcmluY2lwbGVzLCBjYW4gd2UKPiA+IHBsZWFzZSBkaXNjdXNzIHdo YXQgeW91IHdhbnQgdG8gKmFjaGlldmUqLCBpLmUuIHdoYXQgaW5mb3JtYXRpb24geW91Cj4gPiBu ZWVkPwo+ID4gCj4gPiBIYXZpbmcgYSBub2RlIGlzIG5vdCBhIHNpZ25pZmljYW50IGNvc3QsIGFu ZCB0aGVyZSBhcmUgcmVhc29ucyB3ZSBtYXkKPiA+IHdhbnQgdGhyZWFkIG5vZGVzLiBGb3IgZXhh bXBsZSwgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gYWx3YXlzIHJlZmVyIHRvIGFueQo+ID4gbGV2ZWwg b2YgdG9wb2xvZ3kgd2l0aCBhIHBoYW5kbGUsIGFuZCB3ZSBtaWdodCB3YW50IHRvIGRlc2NyaWJl Cj4gPiB0aHJlYWQtYWZmaW5lIGRldmljZXMgaW4gZnV0dXJlLgo+IAo+IFlvdSBjYW4gdXNlIHRo ZSBwaGFuZGxlIG9mIHRoZSBjcHUgbm9kZSwgdGhlIHRocmVhZCBub2RlIGRvZXNuJ3QgYWRkCj4g YW55dGhpbmcgbW9yZSB0aGFuIGNvbXBsZXhpdHkgdG8gdGhlIHJlcHJlc2VudGF0aW9uLgoKVGhh dCBhZGRzIGNvbXBsZXhpdHkgZWxzZXdoZXJlLCBiZWNhdXNlIHRoZSBwaGFuZGxlIG9mIGEgQ1BV IG5vZGUgaXMgbm90CmEgY2hpbGQgb2YgdGhlIGNwdS1tYXAgbm9kZSwgYW5kIHlvdSBjYW4ndCBz aW1wbHkgd2FsayB1cCB0aGUgdHJlZQpoaWVyYXJjaHkgdG8gZmluZCBwYXJlbnQgbm9kZXMuCgpJ IHNlZSBubyByZWFzb24gdG8gY2hhbmdlIHRoaXMgcGFydCBvZiB0aGUgYmluZGluZy4gR2l2ZW4g aXQncyBhbHJlYWR5Cm91dCB0aGVyZSwgd2l0aCBleGlzdGluZyBwYXJzaW5nIGNvZGUsIGNoYW5n aW5nIGl0IG9ubHkgc2VydmVzIHRvIGFkZApjb21wbGV4aXR5IHRvIGFueSBjb21tb24gY29kZSB3 aGljaCBoYXMgdG8gcGFyc2UgdGhpcy4KCkNhbiB3ZSBwbGVhc2UgZHJvcCB0aGUgaWRlYSBvZiBk cm9wcGluZyB0aGUgdGhyZWFkIG5vZGU/Cgo+ID4gVGhlcmUgYXJlIGEgdG9ubmUgb2YgZXhpc3Rp bmcgYmluZGluZ3MgdGhhdCBhcmUgdWdseSwgYnV0IHJlLWludmVudGluZwo+ID4gdGhlbSBmb3Ig dGFzdGUgcmVhc29ucyBhbG9uZSBpcyBtb3JlIGNvc3RseSB0byB0aGUgZWNvc3lzdGVtIHRoYW4g c2ltcGx5Cj4gPiB1c2luZyB0aGUgZXhpc3RpbmcgYmluZGluZ3MuIFdlIGF2b2lkIHJlLWludmVu dGluZyBiaW5kaW5ncyB1bmxlc3MgdGhlcmUKPiA+IGlzIGEgZnVuY3Rpb25hbCBwcm9ibGVtIGUu Zy4gY2FzZXMgd2hpY2ggdGhleSBjYW5ub3QgcG9zc2libHkgZGVzY3JpYmUuCj4gCj4gV2UgYXJl IHRhbGtpbmcgYWJvdXQgdXNpbmcgc29tZXRoaW5nIGZvciBSSVNDLVYgYW5kIHBvc3NpYmx5IGNv bW1vbiBhY3Jvc3MKPiBkaWZmZXJlbnQgYXJjaHMgYW5kLCBJIGRvbid0IHNlZSB3aHkgd2Ugc2hv dWxkIGtlZXAgdGhlIHVnbGluZXNzIG9mIGEKPiBiaW5kaW5nIHNwZWMgcGx1cyBpbiB0aGlzIGNh c2UgdGhlIDx0cmhlYWQ+IG5vZGUgY2FuJ3QgcG9zc2libHkgZGVzY3JpYmUKPiBhbnl0aGluZyBl bHNlIHRoYW4gYSBjcHU9PG5vZGU+IGFsaWFzLCBpdCdzIHJlZHVuZGFudC4KCldoaWxlIGl0IG1h eSBiZSB1Z2x5LCByZW1vdmluZyBpdCBvbmx5IHNlcnZlcyB0byBhZGQgY29tcGxleGl0eSBmb3IK Y29tbW9uIHBhcnNpbmcgY29kZSwgYW5kIHJlbW92ZXMgZmxleGliaWxpdHkgdGhhdCB3ZSBtYXkg d2FudCBpbiBmdXR1cmUuCkl0cyBwcmVzZW5jZSBkb2VzIG5vdCBjYXVzZSBhbnkgdGVjaG5pY2Fs IHByb2JsZW0uCgpGb3IgYmV0dGVyIG9yIHdvcnNlIHdlJ3JlIGFsbCBzaGFyaW5nIHRoZSBzYW1l IGNvZGViYXNlIGhlcmUuIFRoZSBjb21tb24KY2FzZSBtYXR0ZXJzLCBhcyBkb2VzIHRoZSBjb21w bGV4aXR5IG9mIHRoZSBjb2RlYmFzZSBhcyBhIHdob2xlLgoKSSByZWFsaXNlIGl0IGNhbiBiZSBm cnVzdHJhdGluZyB0byBoYXZlIHRvIHVzZSBzb21ldGhpbmcgeW91IGZlZWwgaXMKc3ViLW9wdGlt YWwsIGJ1dCBwdXR0aW5nIHVwIHdpdGggYSBmZXcgbm9kZXMgd2hpY2ggeW91IHBlcnNvbmFsbHkg ZmVlbAphcmUgcmVkdW5kYW50IGlzIG9mIG11Y2ggbG93ZXIgY29zdCB0byB0aGUgZWNvc3lzdGVt IHRoYW4gaGF2aW5nCmluY29tcGF0aWJsZSBiaW5kaW5ncyB3aGVyZSB3ZSBjb3VsZCBoYXZlIG9u ZS4gSWYgeW91IHB1dCB1cCB3aXRoIHRoYXQsCnlvdSBjYW4gZm9jdXMgeW91ciBlZmZvcnRzIG9u IG1vcmUgd29ydGh3aGlsZSB0ZWNobmljYWwgZXhlcmNpc2VzLgoKPiA+ID4gVGhlbiBsZXQncyBh bGxvdyB0aGUgY2x1c3RlciBhbmQgY29yZSBub2RlcyB0byBhY2NlcHQgYXR0cmlidXRlcwo+ID4g PiB0aGF0IGFyZQo+ID4gPiBjb21tb24gZm9yIHRoZSBjcHVzIHRoZXkgY29udGFpbi4gUmlnaHQg bm93IHRoaXMgaXMgY29uc2lkZXJlZAo+ID4gPiBpbnZhbGlkLgo+ID4gPiAKPiA+ID4gRm9yIHBv d2VyIGRvbWFpbnMgd2UgaGF2ZSBhIGdlbmVyaWMgYmluZGluZyBkZXNjcmliZWQgb24KPiA+ID4g RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Bvd2VyL3Bvd2VyX2RvbWFpbi50eHQK PiA+ID4gd2hpY2ggYmFzaWNhbGx5IHNheXMgdGhhdCB3ZSBuZWVkIHRvIHB1dCBwb3dlci1kb21h aW5zID0gPHBvd2VyIGRvbWFpbgo+ID4gPiBzcGVjaWZpZXJzPgo+ID4gPiBhdHRyaWJ1dGUgb24g ZWFjaCBvZiB0aGUgY3B1IG5vZGVzLgo+ID4gCj4gPiBGV0lXLCBnaXZlbiB0aGlzIGlzIGFyZ3Vh Ymx5IHRvcG9sb2dpY2FsLCBJJ20gbm90IHBlcnNvbmFsbHkgYXZlcnNlIHRvCj4gPiBkZXNjcmli aW5nIHRoaXMgaW4gdGhlIGNwdS1tYXAsIGlmIHRoYXQgYWN0dWFsbHkgZ2FpbnMgdXMgbW9yZSB0 aGFuIHRoZQo+ID4gY29tcGxleGl0eSByZXF1aXJlIHRvIHN1cHBvcnQgaXQuCj4gPiAKPiA+IEdp dmVuIHdlIGRvbid0IGRvIHRoaXMgZm9yIGRldmljZSBwb3dlciBkb21haW5zLCBJIHN1c3BlY3Qg dGhhdCBpdCdzCj4gPiBzaW1wbGVyIHRvIHN0aWNrIHdpdGggdGhlIGV4aXN0aW5nIGJpbmRpbmcu Cj4gPiAKPiA+ID4gVGhlIHNhbWUgaGFwcGVucyB3aXRoIHRoZSBjYXBhY2l0eSBiaW5kaW5nIHNw ZWNpZmllZCBmb3IgYXJtIG9uCj4gPiA+IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5n cy9hcm0vY3B1LWNhcGFjaXR5LnR4dAo+ID4gPiB3aGljaCBzYXlzIHdlIHNob3VsZCBhZGQgdGhl IGNhcGFjaXR5LWRtaXBzLW1oeiBvbiBlYWNoIG9mIHRoZSBjcHUKPiA+ID4gbm9kZXMuCj4gPiAK PiA+IFRoZSBjcHUtbWFwIHdhcyBpbnRlbmRlZCB0byBleHBvc2UgdG9wb2xvZ2ljYWwgZHRhaWxz LCBhbmQgdGhpcyBpc24ndAo+ID4gcmVhbGx5IGEgdG9wb2xvZ2ljYWwgcHJvcGVydHkuIEZvciBl eGFtcGxlLCBBcm0gRHluYW1JUSBzeXN0ZW1zIGNhbiBoYXZlCj4gPiBoZXRlcm9nZW5lb3VzIENQ VXMgd2l0aGluIGNsdXN0ZXJzLgo+ID4gCj4gPiBJIGRvIG5vdCB0aGluayBpdCdzIHdvcnRoIG1v dmluZyB0aGlzLCB0YmguCj4gPiAKPiA+ID4gVGhlIHNhbWUgYWxzbyBoYXBwZW5zIHdpdGggdGhl IGdlbmVyaWMgbnVtYSBiaW5kaW5nIG9uCj4gPiA+IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9i aW5kaW5ncy9udW1hLnR4dAo+ID4gPiB3aGljaCBzYXlzIHdlIHNob3VsZCBhZGQgdGhlIG51bmEt bm9kZS1pZCBvbiBlYWNoIG9mIHRoZSBjcHUgbm9kZXMuCj4gPiAKPiA+IElzIHRoZXJlIGEgc3Ry b25nIGdhaW4gZnJvbSBtb3ZpbmcgdGhpcz8KPiA+IAo+ID4gWy4uLl0KPiAKPiBSaWdodCBub3cg d2l0aCB0aGUgZGV2aWNlIHRyZWUgc3BlYyBhbmQgdGhlIGFib3ZlIGJpbmRpbmdzIHdlIGNhbgo+ IHVzZSB0aGUgaW5mb3JtYXRpb24gZnJvbSBjcHUgbm9kZXMgdG8gaW5mZXIgdGhlIGNhY2hlIHRv cG9sb2d5LAo+IHRoZSBtZW1vcnkgdG9wb2xvZ3ksIHRoZSBwb3dlciBkb21haW4gdG9wb2xvZ3kg ZXRjLgo+IAo+IFdlIGhhdmUgb2ZfZmluZF9uZXh0X2NhY2hlX25vZGUgYW5kIG9mX2ZpbmRfbGFz dF9jYWNoZV9sZXZlbCBmb3IgZXhhbXBsZQo+IHRoYXQgdXNlICJuZXh0LWxldmVsLWNhY2hlIiBh bmQgYXJlIHVzZWQgb24gcG93ZXJwYyAod2hlcmUgdGhpcyBzcGVjIGNvbWVzCj4gZnJvbSksIHRo YXQgd2UgY2FuIGZ1cnRoZXIgYnVpbGQgb24gdG9wIG9mIHRoZW0gKHNpbmNlIHRoaXMgaXMgbm93 IHBhcnQKPiBvZiB0aGUgIGRldmljZSB0cmVlIHNwZWMgYW55d2F5KSwgdG8gZS5nLiBwb3B1bGF0 ZSB0aGUgbGV2ZWxzIG9mIGNhY2hlLAo+IHRoZSBsZXZlbHMgb2Ygc2hhcmVkIGNhY2hlIGFuZCBm aW5hbGx5IGNyZWF0ZSBjcHUgbWFza3MgZm9yIHRoZSBkaWZmZXJlbnQKPiBjYWNoZSBzaGFyaW5n IGxldmVscy4KClRoZSBjcHUtbWFwIGJpbmRpbmcgZG9lcyBub3QgZGVzY3JpYmUgY2FjaGUgdG9w b2xvZ3kuIEkgbmV2ZXIgc3VnZ2VzdGVkCnRoYXQgaXQgZGlkLgoKPiBUaGlzIGlzIHN0YW5kYXJk cy1jb21wbGlhbnQsIGFyY2gtaW5kZXBlbmRlbnQgKHRoZXkgYXJlIG9uIG9mL2Jhc2UuYyksIGFu ZAo+IGl0IHByb3ZpZGVzIGEgY29uY3JldGUgaGludCBvbiBDUFUgdG9wb2xvZ3kgcmF0aGVyIGdy b3VwaW5nIGhhcnRzIHRvIGNsYXNzZXMKPiBsaWtlICJjb3JlIiwgInBhY2thZ2UiLCAic29ja2V0 IiwgImNsdXN0ZXIiIGV0YyB0aGF0IGRvbid0IG1lYW4gYW55dGhpbmcKPiBzcGVjaWZpYyBhbmQg d2UgYXNzdW1lIHRvIG1hcCB0byBzcGVjaWZpYyBsZXZlbHMgb2YgY2FjaGUgc2hhcmluZy4KClBs ZWFzZSBub3RlIHRoYXQgSSBoYXZlIG5ldmVyIHN1Z2dlc3RlZCAicGFja2FnZSIsIGFuZCBJJ20g bm90IHN1cmUgd2hhdAp0aGF0J3MgaW4gcmVzcG9uc2UgdG8uCgpQbGVhc2UgYWxzbyBub3QgdGhh dCB3aGlsZSB0aGUgY2FjaGUgdG9wb2xvZ3kgYW5kIENQVSB0b3BvbG9neSBhcmUKc29tZXdoYXQg cmVsYXRlZCwgaW4gZ2VuZXJhbCAodGhpcyBpcyBhdCBsZWFzdCB0cnVlIG9uIEFSTSBzeXN0ZW1z KQp0aGVyZSdzIG5vIHN0cmljdCBtYXBwaW5nIGJldHdlZW4gdGhlIHR3bywgd2hpY2ggaXMgd2h5 IHdlIGhhdmUgc2VwYXJhdGUKYmluZGluZ3MgaW4gdGhlIGZpcnN0IHBsYWNlLgoKRGlzdGluY3Qg Q1BVIHRvcG9sb2dpZXMgY291bGQgbG9vayBpZGVudGljYWwgaW4gY2FjaGUgdG9wb2xvZ3ksIGFu ZAp2aWNlLXZlcnNhLgoKPiBUaGUgc2FtZSBnb2VzIGZvciB0aGUgcG93ZXIgZG9tYWluIHRvcG9s b2d5LCBudW1hIHRvcG9sb2d5LCBvciBmb3IKPiB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgY3B1cyBh cmUgZ3JvdXBlZCBpbiB0ZXJtcyBvZiBjYXBhY2l0eSwgd2UgY2FuCj4gYWx3YXlzIGp1c3QgdXNl IHRoZSBhYm92ZSBiaW5kaW5ncyBvbiBjcHUgbm9kZXMgYW5kIGJlIGRvbmUgd2l0aCBpdC4KPiAK PiBUaGUgd2F5IEkgc2VlIGl0IGNwdS1tYXAgZG9lc24ndCBhZGQgYW55dGhpbmcgbmV3IHRvIHRo ZSBzcGVjIGF0IHRoaXMKPiBwb2ludCwgaXQncyBqdXN0IHRoZXJlIGZvciBjb252ZW5pZW5jZSBz byB0aGF0IHBlb3BsZSBkb24ndCBoYXZlIHRvIGFkZCBhbGwKPiB0aGVzZSBpbmZvcyBvbiB0aGUg Y3B1IG5vZGVzLiBJbnN0ZWFkIG9mIGFkZGluZyBjYWNoZSBub2RlcyBhbmQgdXNlIHRoZQo+IG5l eHQtbGV2ZWwtY2FjaGUgcHJvcGVydHkgbGlrZSB0aGUgZGV2aWNlIHRyZWUgc3BlYyBzYXlzLCB3 ZSBoYXZlIGNwdS1tYXAKPiB0aGF0IHByZXNlbnRzIGhvdyB0aGUgaGFydHMgYXJlICJwYWNrZWQi IGluc2lkZSB0aGUgY2hpcCwgYXNzdW1pbmcgdGhhdAo+IHRoZWlyIHBhY2tpbmcgYWxzbyBhbGln bnMgb24gaG93IHRoZXkgc2hhcmUgdGhlaXIgY2FjaGVzICh0aGV5IHNheQo+IG5vdGhpbmcgYWJv dXQgaG93IHRoZXkgc2hhcmUgdGhlaXIgcG93ZXIgZG9tYWluIG9yIG90aGVyIGF0dHJpYnV0ZXMp LgoKVGhlIGNwdS1tYXAgYW5kIGNhY2hlIGJpbmRpbmdzIGRlc2NyaWJlIHNlcGFyYXRlIHRvcG9s b2dpY2FsIGRldGFpbHMsCmFuZCBuZWl0aGVyIGlzIGludGVuZGVkIHRvIHJlcGxhY2UgdGhlIG90 aGVyLiBUaGVyZSBhcmUgcGxlbnR5IG9mIERUCmZpbGVzIHdpdGggYm90aC4KCj4gSW4gYSBzZW5z ZSBpdCBnb2VzIGFnYWluc3QgeW91ciBydWxlIG9mICJyZS1pbnZlbnRpbmcgdGhlbSBmb3IgdGFz dGUKPiByZWFzb25zIGFsb25lIGlzIG1vcmUgY29zdGx5IHRvIHRoZSBlY29zeXN0ZW0gdGhhbiBz aW1wbHkgdXNpbmcgdGhlCj4gZXhpc3RpbmcgYmluZGluZ3MiLCBJIGZhaWwgdG8gc2VlIGFueXRo aW5nIGVsc2UgdGhhbiAidGFzdGUgcmVhc29ucyIKPiB3aGVuIGl0IGNvbWVzIHRvIGNwdS1tYXAs IHNpbmNlIHRoZXJlIGFyZSBleGlzdGluZyBiaW5kaW5ncyBmb3IKPiBpbmZlcnJpbmcgdGhlIENQ VSB0b3BvbG9neSBhbHJlYWR5LCB0aGV5IGFyZSBqdXN0IG5vdCB0aGF0IGNvbnZlbmllbnQuCgpJ ZiB5b3UgYmVsaWV2ZSB0aGF0J3MgdGhlIGNhc2UsIHRoZW4geW91IGNhbiBwZXJmZWN0bHkgdXNl IHRoZSBleGlzdGluZwpjYWNoZSBhbmQgTlVNQSBiaW5kaW5ncywgYW5kIG5vdCBkZXNjcmliZSB0 aGUgY3B1IHRvcG9sb2d5IGF0IGFsbCwgbm8KbmVlZCB0byBjaGFuZ2UgY3B1LW1hcCBvciBjb21l IHVwIHdpdGggYSBuZXcgYmluZGluZy4KCj4gSSdtIHByb3Bvc2luZyB0byBhZGQgdGhlIG9wdGlv biAobm90IGVuZm9yY2UpIG9mIGFkZGluZyB0aG9zZQo+IGF0dHJpYnV0ZXMgdGhhdCBhcmUgbWVh bnQgdG8gYmUgdXNlZCBvbiBjcHUgbm9kZXMsIG9uIHRoZSB2YXJpb3VzCj4gZ3JvdXBzL2NsYXNz ZXMgb2YgdGhlIGNwdS1tYXAsIHRoaXMgd2F5IGNwdS1tYXAgd2lsbCBwcm92aWRlIHNvbWV0aGlu Zwo+IG1vcmUgbWVhbmluZ2Z1bCBhbmQgYXQgbGVhc3QgaW1wcm92ZSB0aGUgcmVwcmVzZW50YXRp b24gc2lkZSBvZgo+IHRoaW5ncy4gT24gdGhlIGltcGxlbWVudGF0aW9uIHNpZGUgaXQgbWlnaHQg c2F2ZSB1cyB0aGUgYnVyZGVuIG9mCj4gaW5mZXJpbmcgdGhlIHRvcG9sb2d5IGZyb20gcGFyc2lu ZyBhbGwgY3B1IG5vZGVzIGVhY2ggdGltZS4gSXQncyBhbHNvCj4gYmFja3dhcmRzIGNvbXBhdGli bGUgd2l0aCB3aGF0IHlvdSBhbHJlYWR5IGhhdmUsIHRoZSBvbmx5IHRoaW5nIHRoYXQncwo+IG5v dCBiYWNrd2FyZHMgY29tcGF0aWJsZSBpcyB0aGUgcmVtb3ZhbCBvZiB0aGUgPHRocmVhZD4gbm9k ZSwgd2hpY2ggSQo+IGRvbid0IHRoaW5rIGlzIHN1Y2ggYSBiaWcgZGVhbCB0byBmaXguCgpTb3Jy eSwgYnV0IGFzIEkgaGF2ZSBzdGF0ZWQgcmVwZWF0ZWRseSwgdGhpcyBjb21wbGljYXRlcyB0aGUg Y29tbW9uIGNvZGUKZm9yIHdoYXQgeW91IGFkbWl0IGlzIGEgbWF0dGVyIG9mIHRhc3RlLiBJIHdv dWxkIHJhdGhlciBtYWludGFpbiB0aGUKc2ltcGxpY2l0eSBvZiB0aGlzIGJpbmRpbmcgYW5kIGV4 aXN0aW5nIHBhcnNpbmcgY29kZSwgYW5kIG5vdApwb3RlbnRpYWxseSBicmVhayBvdGhlciBwYXJz ZXJzLCBpZiB0aGUgb25seSBjb3N0IGlzIGEgZmV3IG5vZGVzIHdoaWNoCnlvdSBwZXJzb25hbGx5 IGNvbnNpZGVyIHRvIGJlIHJlZHVuZGFudC4KCj4gPiA+IEZpbmFsbHkgZnJvbSB0aGUgZXhhbXBs ZXMgYWJvdmUgSSdkIGxpa2UgdG8gc3RyZXNzIG91dCB0aGF0IHRoZQo+ID4gPiBkaXN0aW5jdGlv biBiZXR3ZWVuIGEgY2x1c3RlciBhbmQgYSBjb3JlIGRvZXNuJ3QgbWFrZSBtdWNoIHNlbnNlCj4g PiA+IGFuZCBpdCBhbHNvIG1ha2VzIHRoZSByZXByZXNlbnRhdGlvbiBtb3JlIGNvbXBsaWNhdGVk LiBUbyBiZWdpbgo+ID4gPiB3aXRoLCBob3cgd291bGQgeW91IGNhbGwgdGhlIHNldHVwIG9uIEhp Rml2ZSBVbmxlYXNoZWQgPyBBIGNsdXN0ZXIKPiA+ID4gb2YgNCBjb3JlcyB0aGF0IHNoYXJlIHRo ZSBzYW1lIEwzIGNhY2hlID8KPiA+IAo+ID4gTm90IGtub3dpbmcgbXVjaCBhYm91dCB0aGUgaGFy ZHdhcmUsIEkgY2FuJ3QgcmVhbGx5IHNheS4KPiA+IAo+ID4gSSdtIG5vdCBzdXJlIEkgZm9sbG93 IHdoeSB0aGUgZGlzdGluY3Rpb24gYmV0d2VlbiBhIGNsdXN0ZXIgYW5kIGEgY29yZQo+ID4gaXMg bm9uLXNlbnNpY2FsLiBBIGNsdXN0ZXIgaXMgYWx3YXlzIGEgY29sbGVjdGlvbiBvZiBjb3Jlcy4K PiA+IAo+ID4gQSBoYXJ0IGNvdWxkIGJlIGEgY29yZSBpbiBpdHMgb3duIHJpZ2h0LCBvciBpdCBj b3VsZCBiZSBhIHRocmVhZCB1bmRlciBhCj4gPiBjb3JlLCB3aGljaCBzaGFyZXMgZnVuY3Rpb25h bCB1bml0cyB3aXRoIG90aGVyIGhhcnRzIHdpdGhpbiB0aGF0IGNvcmUuCj4gPiAKPiA+IEFyZ3Vh Ymx5LCB3ZSBjb3VsZCBoYXZlIG1hbmRhdGVkIHRoYXQgdGhlIHRvcG9sb2d5IGFsd2F5cyBuZWVk ZWQgdG8KPiA+IGRlc2NyaWJlIGRvd24gdG8gYSB0aHJlYWQsIGV2ZW4gaWYgYSBjb3JlIG9ubHkg aGFkIGEgc2luZ2xlIHRocmVhZC4gVGhhdAo+ID4gc2hpcCBoYXMgc2FpbGVkLCBob3dldmVyLgo+ IAo+IFNvIHdlIGFncmVlLCB0aGUgImNvcmUiIGRvZXNuJ3Qgc2F5IGFueXRoaW5nIHVzZWZ1bCBy ZWdhcmRpbmcgdGhlCj4gdG9wb2xvZ3ksIHdoeSBrZWVwIHVzaW5nIHRoaXMgZGlzdGluY3Rpb24g b24gYSBiaW5kaW5nIGZvciBSSVNDLVYgYW5kCj4gcG9zc2libHkgb3RoZXIgYXJjaHMgKHNpbmNl IHdlIGFyZSBhbHNvIHRhbGtpbmcgb24gYW4gYXJjaC1pbmRlcGVuZGVudAo+IGFwcHJvYWNoKSA/ CgpXZSBrZWVwIGl0IGJlY2F1c2UgdGhlIGJpbmRpbmcgaGFzIGFscmVhZHkgYmVlbiBmaW5hbGlz ZWQgYW5kIGlzIHVzZSBpbgpwcmFjdGljZS4gVGhlIGV4aXN0aW5nIGJpbmRpbmcgYW5kIHBhcnNp bmcgY29kZSBpcyAqc3VmZmljaWVudCogZm9yIHlvdXIKbmVlZHMuIFBlcnNvbmFsIHRhc3RlIGFu ZCBtaW5vciBzYXZpbmdzIGluIHRoZSBudW1iZXIgb2Ygbm9kZXMgaW4gYSBEVAphcmUgbm90IGNv bXBlbGxpbmcgcmVhc29ucyB0byBjaGFuZ2UgdGhpcyB3aGVuIHRoZSBjb3N0IGlzIGNvbXBsZXhp dHkKdGhhdCB3ZSBoYXZlIHRvIG1haW50YWluICpmb3JldmVyKi4KClRoYW5rcywKTWFyay4KCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2 IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK