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 63C81C433EF for ; Fri, 17 Jun 2022 11:23:46 +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=n4MX3H/rOnwS0bo5m4k624HXivbBF4bDldy07Dwh0oo=; b=rbgPznNZEIDKxZ 5XKteiwPK/+3P9LpDY+1BaauG+2zfUG+uDGHTPoKwKvrlEevFtChByFSEUc6+i1QuG8kfFgI+dFMj CESuU4K3ixWPAyIgBsSB4umqLUxVJzHOLQ0+1KUpMNz0rk6fYS9KQyNgRPke9kEHiaxUYHnS4P33o 8oqEcg3Lfp143o4vIJmodClmGL8SqL+o79KVIiJQX7FY/AW8Vz3co255B/lG0Wpc7yeUkALqyR5DB yuLR9seIIuGzQDG/khYLUZyjAOWSVs0kFeJ5DCuKsht27ZtQErTZHpSXI5GOXOAyo+cJ3mwo41xJL lsGbd2NM7rall55DXNnw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o2A3c-007InL-8z; Fri, 17 Jun 2022 11:22:32 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o29zK-007Gr8-0y; Fri, 17 Jun 2022 11:18:08 +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 E29FD113E; Fri, 17 Jun 2022 04:17:59 -0700 (PDT) Received: from bogus (unknown [10.57.11.43]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BF7333F73B; Fri, 17 Jun 2022 04:17:57 -0700 (PDT) Date: Fri, 17 Jun 2022 12:16:47 +0100 From: Sudeep Holla To: Dietmar Eggemann Cc: Vincent Guittot , linux-kernel@vger.kernel.org, Atish Patra , Atish Patra , Morten Rasmussen , Qing Wang , linux-arm-kernel@lists.infradead.org, linux-riscv@lists.infradead.org, Rob Herring Subject: Re: [PATCH v3 15/16] arch_topology: Set cluster identifier in each core/thread from /cpu-map Message-ID: <20220617111647.62hsqbpl3bk7xb2y@bogus> References: <20220525081416.3306043-14-sudeep.holla@arm.com> <20220525081416.3306043-15-sudeep.holla@arm.com> <20220525081416.3306043-16-sudeep.holla@arm.com> <947470ba-35fc-3c72-d01b-c0a7337216a2@arm.com> <20220606102159.dduxmvq4m2fm6gks@bogus> <20220610102753.virkx47uyfsojol6@bogus> <20220613111743.3od6a5dyyogad4ay@bogus> <73574a8f-5c72-8f7e-3dc4-42493131681e@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <73574a8f-5c72-8f7e-3dc4-42493131681e@arm.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220617_041806_230527_5E9BA994 X-CRM114-Status: GOOD ( 48.62 ) 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 T24gVGh1LCBKdW4gMTYsIDIwMjIgYXQgMDU6MDI6MjhQTSArMDEwMCwgRGlldG1hciBFZ2dlbWFu biB3cm90ZToKPiBPbiAxMy8wNi8yMDIyIDEyOjE3LCBTdWRlZXAgSG9sbGEgd3JvdGU6Cj4gPiBP biBNb24sIEp1biAxMywgMjAyMiBhdCAxMToxOTozNkFNICswMjAwLCBEaWV0bWFyIEVnZ2VtYW5u IHdyb3RlOgo+ID4+IE9uIDEwLzA2LzIwMjIgMTI6MjcsIFN1ZGVlcCBIb2xsYSB3cm90ZToKPiA+ Pj4gT24gRnJpLCBKdW4gMTAsIDIwMjIgYXQgMTI6MDg6NDRQTSArMDIwMCwgVmluY2VudCBHdWl0 dG90IHdyb3RlOgo+ID4+Pj4gT24gTW9uLCA2IEp1biAyMDIyIGF0IDEyOjIyLCBTdWRlZXAgSG9s bGEgPHN1ZGVlcC5ob2xsYUBhcm0uY29tPiB3cm90ZToKPiAKPiBbLi4uXQo+IAo+ID4+PiBBZ2Fp biBJIGNvbXBsZXRlbHkgZGlzYWdyZWUuIExldCB1cyBsb29rIGF0IHRoZSBwcm9ibGVtcyBzZXBh cmF0ZWx5Lgo+ID4+PiBUaGUgaGFyZHdhcmUgdG9wb2xvZ3kgdGhhdCBzb21lIG9mIHRoZSB0b29s cyBsaWtlIGxzY3B1IGFuZCBsc3RvcG8gZXhwZWN0cwo+ID4+PiB3aGF0IHRoZSBoYXJkd2FyZSBs b29rcyBsaWtlIGFuZCBub3QgdGhlIHNjaGVkdWxlcidzIHZpZXcgb2YgdGhlIGhhcmR3YXJlLgo+ ID4+PiBTbyB0aGUgdG9wb2xvZ3kgbWFza3MgdGhhdCBnZXRzIGV4cG9zZWQgdG8gdGhlIHVzZXIt c3BhY2UgbmVlZHMgZml4aW5nCj4gPj4+IGV2ZW4gdG9kYXkuIEkgaGF2ZSByZXBvcnRzIGZyb20g dmFyaW91cyB0b29saW5nIHBlb3BsZSBhYm91dCB0aGUgc2FtZS4KPiA+Pj4gRS5nLiBKdW5vIGdl dHRpbmcgZXhwb3NlZCBhcyBkdWFsIHNvY2tldCBzeXN0ZW0gaXMgdXR0ZXIgbm9uLXNlbnNlLgo+ ID4+Pgo+ID4+PiBZZXMgc2NoZWR1bGVyIHVzZXMgbW9zdCBvZiB0aGUgdG9wb2xvZ3kgbWFza3Mg YXMgaXMgYnV0IHRoYXQgaXMgbm90IGEgbXVzdC4KPiA+Pj4gVGhlcmUgYXJlIHRoZXNlICpncm91 cF9tYXNrIGZ1bmN0aW9ucyB0aGF0IGNhbiBpbXBsZW1lbnQgd2hhdCBzY2hlZHVsZXIKPiA+Pj4g bmVlZHMgdG8gYmUgZmVkLgo+ID4+Pgo+ID4+PiBJIGFtIG5vdCBzdXJlIHdoeSB0aGUgMiBpc3N1 ZXMgYXJlIGdldHRpbmcgbWl4ZWQgdXAgYW5kIHRoYXQgaXMgdGhlIG1haW4KPiA+Pj4gcmVhc29u IHdoeSBJIGp1bXBlZCBpbnRvIHRoaXMgdG8gbWFrZSBzdXJlIHRoZSB0b3BvbG9neSBtYXNrcyBh cmUKPiA+Pj4gbm90IHRhbXBlcmVkIGJhc2VkIG9uIHRoZSB3YXkgaXQgbmVlZHMgdG8gYmUgdXNl ZCBmb3Igc2NoZWR1bGVyLgo+ID4+Cj4gPj4gSSdtIGFsbCBpbiBmYXZvciBvZiBub3QgbWl4aW5n IHVwIHRob3NlIDIgaXNzdWVzLiBCdXQgSSBkb24ndCB1bmRlcnN0YW5kCj4gPj4gd2h5IHlvdSBo YXZlIHRvIGdsdWUgdGhlbSB0b2dldGhlci4KPiA+Pgo+ID4gCj4gPiBXaGF0IGFyZSB5b3UgcmVm ZXJyaW5nIGFzICdnbHVlIHRoZW0gdG9nZXRoZXInLiBBcyBJIHNhaWQgdGhpcyBzZXJpZXMganVz dAo+ID4gYWRkcmVzcyB0aGUgaGFyZHdhcmUgdG9wb2xvZ3kgYW5kIGlmIHRoZXJlIGlzIGFueSBp bXBhY3Qgb24gc2NoZWQgZG9tYWlucwo+ID4gdGhlbiBpdCBpcyBkbyB3aXRoIGFsaWdubWVudCB3 aXRoIEFDUEkgYW5kIERUIHBsYXRmb3JtIGJlaGF2aW91ci4gSSBhbSBub3QKPiA+IGFkZGluZyBh bnl0aGluZyBtb3JlIHRvIGdsdWUgdG9wb2xvZ3kgYW5kIGluZm8gbmVlZGVkIGZvciBzY2hlZCBk b21haW5zLgo+IAo+IFlvdSBjYW4gZml4ICgxKSB3aXRob3V0ICgyKSBwYXJzaW5nIDEuIGxldmVs IGNsdXN0ZXIgbm9kZXMgYXMKPiBjbHVzdGVyX3NpYmxpbmdzLgo+CgpUZWNobmljYWxseSB5ZXMs IGJ1dCBJIHNlZSBubyBwb2ludCBpbiBkZWxheWluZyBpdCBhcyBpdCBpcyBjb25zaWRlcmVkIGFz CmJyb2tlbiB3aXRoIHJlc3BlY3QgdG8gdGhlIG1vbWVudCBBQ1BJIGV4cG9zZWQgdGhlIGNvcnJl Y3QgdmFsdWUgYW5kIGF0IHRoZQpzYW1lIHRpbWUgcmVzdWx0ZWQgaW4gZXhwb3NpbmcgaW5jb3Jy ZWN0IHZhbHVlIGluIGNhc2Ugb2YgRFQuIEkgYW0gcmVmZXJyaW5nCnRvIHRoZSBzYW1lIGNoYW5n ZSB0aGF0IGludHJvZHVjZWQgU0NIRURfQ0xVU1RFUi4gVGhlIGRhbWFnZSBpcyBkb25lIGFuZCBp dApuZWVkcyByZXBhaXJpbmcgQVNBUC4KCj4gPiBJbmRlZWQuIEJ1dCBJIGRvbid0IGdldCB3aGF0 IHlvdSBtZWFuIGJ5IDIgbGV2ZWwgaGVyZS4gQUNQSSBwdXRzIDFzdCBsZXZlbAo+IAo+IGNwdV9t YXAgewo+ICAgc29ja2V0MCB7Cj4gICAgIGNsdXN0ZXIwIHsgICAgPC0tIDEuIGxldmVsIGNsdXN0 ZXIKPiAgICAgICBjbHVzdGVyMCB7ICA8LS0gMi4gbGV2ZWwgY2x1c3RlciAoMyAtLT4pCgpPaCBJ IGhhZCBtaXN1bmRlcnN0b29kIHRoaXMgbGV2ZWwgbm9tZW5jbGF0dXJlLCBJIHJlZmVyIGl0IGFz IGxlYWYgY2x1c3Rlcgpub2RlIHdoaWNoIGlzIDIuIGxldmVsIGNsdXN0ZXIgaW4gdGhpcyBEVCBz bmlwcGV0LgoKPiAgICAgICAgIGNvcmUwIHsKPiAKPiAgICAgICAgIH07Cj4gICAgICAgICBjb3Jl MSB7Cj4gCj4gICAgICAgICB9Owo+ICAgICAgIGNsdXN0ZXIxIHsKPiAgIC4uLgo+IAo+IEFybXY5 IEwyIGNvbXBsZXhlczogZS5nLiBRQyBTTTg0NTA6Cj4gCj4gICAgICAgLi0tLS0tLS0tLS0tLS0t LS4KPiBDUFUgICB8MCAxIDIgMyA0IDUgNiA3fAo+ICAgICAgICstLS0tLS0tLS0tLS0tLS0rCj4g dWFyY2ggfGwgbCBsIGwgbSBtIG0gYnwgKHNvIGNhbGxlZCB0cmktZ2VhcjogbGl0dGxlLCBtZWRp dW0sIGJpZykKPiAgICAgICArLS0tLS0tLS0tLS0tLS0tKwo+ICAgTDIgIHwgICB8ICAgfCB8IHwg fCB8IDwtLSAyLiBsZXZlbCBjbHVzdGVyLCBBcm12OSBMMiBjb21wbGV4ZXMgKDwtLSAzKQoKQWdh aW4gYmVmb3JlIEkgYXNzdW1lLCB3aGF0IGV4YWN0bHkgPC0tMyBoZXJlIGFuZCBpbiBhYm92ZSBz bmlwcGV0IG1lYW4gPwoKPiAgICAgICArLS0tLS0tLS0tLS0tLS0tKwo+ICAgTDMgIHw8LS0gICAg ICAgICAtLT58Cj4gICAgICAgKy0tLS0tLS0tLS0tLS0tLSsKPiAgICAgICB8PC0tIGNsdXN0ZXIg LS0+fAoKSSB0aGluayB0aGlzIGlzIDIgbGV2ZWwgY2x1c3RlciBvciBvbmx5IGNsdXN0ZXIgaW4g dGhpcyBzeXN0ZW0gdy5yLnQgaGFyZHdhcmUuClNvIGxldHMgbm90IGNvbmZ1c2Ugd2l0aCBtdWx0 aS1sZXZlbCBpZiBub3QgbmVjZXNzYXJ5LgoKPiAgICAgICArLS0tLS0tLS0tLS0tLS0tKwo+ICAg ICAgIHw8LS0gICBEU1UgICAtLT58Cj4gICAgICAgJy0tLS0tLS0tLS0tLS0tLScKPgo+IE9ubHkg aWYgd2UgbWFwIChpKSBpbnRvIGNsdXN0ZXJfc2libGluZywgd2UgZ2V0IHRoZSBzYW1lIGhhcmR3 YXJlCj4gcmVwcmVzZW50YXRpb24gKGZvciB0aGUgdGFzayBzY2hlZHVsZXIpIGZvciBBQ1BJICg0 KSBhbmQgRFQgKDUpIHN5c3RlbXMuCj4KCldoYXQgaXMgKGkpIGFib3ZlID8KCj4gKDQpIGV4YW1w bGVzOgo+Cj4gS3VucGVuZzkyMCAtIDI0IENQVXMgc2hhcmluZyBMTEMgKGNwdV9jb3JlZ3JvdXBf bWFzaygpKSwgNCBDUFVzIHNoYXJpbmcKPiBMMy10YWcgKGNwdV9jbHVzdGVyZ3JvdXBfbWFzaygp KS4KPgoKQWdhaW4gZGVjb3VwbGUgY2FjaGUgaW5mbyBhbmQgY2x1c3RlciBpbmZvIGZyb20gaC93 LCB5b3UgaGF2ZSBhbGwgdGhlIGluZm8uCllvdSBjYW4gY291cGxlIHRoZW0gdG9nZXRoZXIgaWYg dGhhdCBoZWxwcyB3aGVuIHlvdSBmZWVkIHNjaGVkX2RvbWFpbnMuCgo+IFg4NiBKYWNvYnN2aWxs ZSAtIDI0IENQVXMgc2hhcmluZyBMTEMgKEwzKSwgNCBDUFVzIHNoYXJpbmcgTDIKPgo+IEFybXY5 IEwyIGNvbXBsZXhlczogZS5nLiBRQyBTTTg0NTAgLSA4IENQVXMgc2hhcmluZyBMTEMgKEwzKSwg KGZvciBBNTEwCj4gKGxpdHRsZSBDUFVzKSkgMiBDUFVzIHNoYXJpbmcgTDIKClsuLi5dCgo+ID4g QW5kIHllcyBsc3RvcG8gZG9lc24ndCByZWFkIGNsdXN0ZXIgSURzLiBCdXQgd2UgZXhwb3NlIHRo ZW0gaW4gQUNQSSBzeXN0ZW0KPiA+IGFuZCBub3Qgb24gRFQgd2hpY2ggd2FzIG15IG1haW4gcG9p bnQuCj4gCj4gVW5kZXJzdG9vZC4gQnV0IGEgS3VucGVuZzkyMCBgY2x1c3Rlcl9jcHVzX2xpc3Rg IGZpbGUgd291bGQgY29udGFpbgo+IGxvZ2ljYWxseSBkaWZmZXJlbnQgaW5mb3JtYXRpb24gdGhh biBhIEp1bm8gYGNsdXN0ZXJfY3B1c19saXN0YCBmaWxlLgo+CgpBbmQgd2h5IGlzIHRoYXQgPwoK PiBLdW5wZW5nOTIwIGBjbHVzdGVyX2NwdXNfbGlzdGAgY29udGFpbiA0IENQVXMgc2hhcmluZyBM My10YWcgKGxlc3MgdGhhbgo+IExMQykgd2hlcmVhcyBKdW5vIGNsdXN0ZXJfY3B1c19saXN0IGNv bnRhaW4gMiBvciA0IENQVXMgKHdoaWNoIGlzIExMQykuCj4KCkNvcnJlY3QgYmVjYXVzZSB0aGF0 IGlzIGhvdyB0aGUgaGFyZHdhcmUgY2x1c3RlcnMgYXJlIGRlc2lnbmVkIG9uIHRob3NlIFNvQy4K Q2FjaGUgdG9wb2xvZ3kgaXMgZGlmZmVyZW50LgoKPiBJIHRoaW5rIGtleSBpcyB0byBhZ3JlZSB3 aGF0IGEgQ0xVU1RFUiBhY3R1YWxseSByZXByZXNlbnQgYW5kIGVzcGVjaWFsbHkKPiBpbiBjYXNl IHdoZW4gYHRoZSBsZXZlbCBvZiB0b3BvbG9neSBhYm92ZSBDUFVzYCBpcyBjb25ncnVlbnQgd2l0 aCBMTEMKPiBib3VuZGFyaWVzLiBCZWNhdXNlIG15IGZlZWxpbmcgaXMgdGhhdCBwZW9wbGUgZGlk bid0IHBheSBhdHRlbnRpb24gdG8KPiB0aGlzIGRldGFpbCB3aGVuIHRoZXkgaW50cm9kdWNlZCBT Q0hFRF9DT05GSUdfQ0xVU1RFUi4gQSByZWxhdGVkIGlzc3VlCj4gaXMgdGhlIEFtcGVyZSBBbHRy YSBoYWNrIGluIGNwdV9jb3JlZ3JvdXBfbWFzaygpLgo+CgpUaGUgaXMgZGVmaW5lZCBieSBoYXJk d2FyZSBhbmQgRFQvQUNQSSBoYXMgYmluZGluZ3MgZm9yIGl0LiBXZSBjYW4ndCByZWRlZmluZQpD TFVTVEVSIGluIGEgd2F5IHRoYXQgYnJlYWtzIHRob3NlIGRlZmluaXRpb25zLiBBZ2FpbiBjbHVz dGVyIGlzIHBhcnQgb2YgQ1BVCnRvcG9sb2d5IGFuZCBjYWNoZSB0b3BvbG9neSBjYW4gYmUgZGlm ZmVyZW50IGFuZCBuZWVkIG5vdCBiZSBjb25ncnVlbnQgd2l0aApDUFUgdG9wb2xvZ3kgaW4gc29t ZSB3YXlzLCBPZmNvdXJzZSB0aGV5IGFyZSBpbiBzb21lIG90aGVyIHdheXMgYnV0IHRoZXJlIHdp bGwKYmUgbm8gc2luZ2xlIGxpbmUgb2YgYWxpZ25tZW50IGFjcm9zcyBTb0NzIHdoaWNoIGlzIHF1 aXRlIGV2aWRlbnQgd2l0aCB0aGUKZXhhbXBsZXMgeW91IGhhdmUgbGlzdGVkLiBKdXN0IGFkZCBB bXBlcmUgQWx0cmEgdG8gbWFrZSBpdCBtb3JlIGZ1bi4KCj4gPiBBcyBwb2ludGVkIG91dCBlYXJs aWVyLCBoYXZlIHlvdSBjaGVja2VkIEFDUEkgb24gSnVubyBhbmQgd2l0aCAKPiA+IENPTkZJR19T Q0hFRF9DTFVTVEVSID8gSWYgdGhlIGJlaGF2aW91ciB3aXRoIG15IHNlcmllcyBvbiBEVCBhbmQg QUNQSQo+ID4gZGlmZmVycywgdGhlbiBpdCBpcyBhbiBpc3N1ZS4gQnV0IEFGQUlVLCBpdCBkb2Vz bid0IGFuZCB0aGF0IGlzIG15IG1haW4KPiA+IGFyZ3VtZW50LiBZb3UgYXJlIGp1c3QgYXNzdW1p bmcgd2hhdCB3ZSBoYXZlIG9uIEp1bm8gd2l0aCBEVCBpcyBjb3JyZWN0Cj4gPiB3aGljaCBtYXkg YmUgdy5yLnQgdG8gc2NoZWR1bGVyIGJ1dCBkZWZpbml0ZWx5IG5vdCB3aXRoIHJlc3BlY3QgdG8g dGhlCj4gPiBoYXJkd2FyZSB0b3BvbG9neSBleHBvc2VkIHRvIHRoZSB1c2Vycy4gU28gbXkgYWlt IGlzIHRvIGdldCB0aGF0IGZpeGVkLgo+IAo+IEkgbmV2ZXIgcnVuIEp1bm8gdy8gQUNQSS4gQXJl IHlvdSBzYXlpbmcgdGhhdAo+IGZpbmRfYWNwaV9jcHVfdG9wb2xvZ3lfY2x1c3RlcigpIHJldHVy bnMgY3B1X3RvcG9sb2d5W2NwdV0uY2x1c3Rlcl9pZCdzCj4gd2hpY2ggbWF0Y2ggdGhlIGAxLiBs ZXZlbCBjbHVzdGVyIG5vZGVzYD8KPgoKQWdhaW4gSSBhbSB0b3RhbGx5IGNvbmZ1c2VkIGFzIHdo eSB0aGlzIGlzIG5vdyAxLmxldmVsIGNsdXN0ZXIgd2hlcmUgYXMgYWJvdmUKU0RNIHdhcyAyLmxl dmVsIGNsdXN0ZXIuIEJvdGggU29DcyBoYXZlIG9ubHkgMSBsZXZlbCBvZiBjbHVzdGVyLiBXaGls ZSBTRE0KaGFzIDEgRFNVIGNsdXN0ZXIsIEp1bm8gaGFzIDIgY2x1c3RlcnMuCgo+IFRoZSBmdW5j dGlvbiBoZWFkZXIgb2YgZmluZF9hY3BpX2NwdV90b3BvbG9neV9jbHVzdGVyKCkgc2F5cyB0aGF0 IGAuLi4KPiB0aGUgY2x1c3RlciwgaWYgcHJlc2VudCBpcyB0aGUgbGV2ZWwgb2YgdG9wb2xvZ3kg YWJvdmUgQ1BVcy4gLi4uYC4KPgoKRXhhY3RseSBhbmQgdGhhdCdzIGhvdyBzeXNmcyBpcyBhbHNv IGRlZmluZWQgYW5kIHdlIGNhbid0IGdvIGJhY2sgYW5kIGNoYW5nZQp0aGF0IG5vdy4gSSBkb24n dCBzZWUgYW55IGlzc3VlIFRCSC4KCj4gRnJvbSB0aGlzIHBlcnNwZWN0aXZlIEkgY2FuIHNlZSB5 b3VyIHBvaW50LiBCdXQgdGhpcyBpcyB0aGVuIHN0aWxsCj4gY2xlYXJseSBwb29ybHkgZGVzaWdu ZWQuCgpOb3QgcmVhbGx5IGFzIHBlciB0aGUgZGVmaW5pdGlvbi4KCj4gSG93IHdvdWxkIHdlIGV2 ZXIgc3VwcG9ydCBDT05GSUdfU0NIRURfQ0xVU1RFUgo+IGluIERUIHdoZW4gaXQgcmVhbGx5IChw b3RlbnRpYWxseSkgd291bGQgYnJpbmcgYSBiZW5lZml0IChpLmUuIGluIHRoZQo+IEFybXY5IEwy LWNvbXBsZXggY2FzZSkgYW5kIG5vdCBvbmx5IGNyZWF0ZSB0cm91YmxlIGZvciB0aGUgdGFzawo+ IHNjaGVkdWxlciB0byBzZXR1cCBpdHMgZG9tYWlucyBjb3JyZWN0bHk/CgpJbmRlZWQsIHRoYXQg aXMgdGhlIG5leHQgcHJvYmxlbSBvbmNlIHdlIGdldCBhbGwgdGhlc2UgYWxpZ25lZCBhY3Jvc3MK RFQgYW5kIEFDUEkuIFRoZXkgaGF2ZSBkaXZlcmdlZCBhbmQgSSBwcmVmZXIgbm90IHRvIGFsbG93 IHRoYXQgYW55bW9yZQpieSBhZGRpbmcgbW9yZSBkaXZlcmdlbmNlIGUuZy4gdG8gc3VwcG9ydCBB cm12OSBMMi1jb21wbGV4IGNhc2UuIFBsZWFzZQpjb25zaWRlciB0aGF0IG9uIHRvcCBvZiB0aGVz ZSwgSSBhbSBub3QgYWRkcmVzc2luZyB0aGF0IGF0IHRoZSBtb21lbnQuCkluIGZhY3QgSSBhbSBu b3QgYWRkcmVzc2luZyBhbnkgc2NoZWRfZG9tYWluIHRvcGljcyBvciBpc3N1ZXMuIEkgaGF2ZSBt YWRlCnRoYXQgY2xlYXIg8J+YiS4KCj4gQWxzbyBpbiBjYXNlIHdlIHN0aWNrIHRvCj4gc2V0dGlu ZyBDT05GSUdfU0NIRURfQ0xVU1RFUj0xIGJ5IGRlZmF1bHQsIENMUyBzaG91bGQgYmUgdGhlIGRl ZmF1bHQgTExDCj4gc2NoZWQgZG9tYWluIGFuZCBNQyB0aGUgZXhjZXB0aW9uYWwgb25lLiBKdXN0 IHRvIHJlc3BlY3QgdGhlIHdheSBob3cgdGhlCj4gdGFzayBzY2hlZHVsZXIgcmVtb3ZlcyBub3Qg dXNlZnVsIGRvbWFpbnMgdG9kYXkuCj4KCkZpeCB0aGUgY3B1X2NsdXN0ZXJncm91cF9tYXNrIG9y IGFueSBvdGhlciBjcHVfKmdyb3VwX21hc2sgYXMgcGVyIHlvdXIKdGFzdGUuIFRoZSB0b3BvbG9n eSBtYXNrcyBhcmUganVzdCBpbnB1dHMgdG8gdGhlc2UgYW5kIHdpbGwgbm90IGJlIGNoYW5nZWQK b3IgZGl2ZXJnZWQgZm9yIHRoZXNlIHJlYXNvbnMuIFNvcnJ5IGlmIHRoYXQgaXMgbm90IGhlbHBm dWwsIGJ1dCB0aGF0IGlzIHRoZQpyZWFsaXR5IHdpdGggc3lzZnMgZXhwb3NlZCB0byB0aGUgdXNl ci1zcGFjZS4KCj4gPiBJZiB5b3UgYXJlIG5vdCBoYXBweSB3aXRoIHRoYXQsIHRoZW4gaG93IGNh biBiZSBiZSBoYXBweSB3aXRoIHdoYXQgaXMgdGhlCj4gPiBjdXJyZW50IGJlaGF2aW91ciBvbiBB Q1BJICsgYW5kIC0gQ09ORklHX1NDSEVEX0NMVVNURVIuIEkgaGF2ZW4ndCBnb3QKPiA+IHlvdXIg b3BpbmlvbiB5ZXQgb24gdGhhdCBtYXR0ZXIuCj4gCj4gSSBndWVzcyBpdCdzIGNsZWFyIG5vdyB0 aGF0IEFDUEkgKyBDT05GSUdfU0NIRURfQ0xVU1RFUiB3aXRoIGBgdGhlIGxldmVsCj4gb2YgdG9w b2xvZ3kgYWJvdmUgQ1BVc2AgaXMgY29uZ3J1ZW50IHdpdGggTExDYCBjcmVhdGVzIHRyb3VibGUg dG8gdGhlCj4gc2NoZWR1bGVyLiBTbyBJIGRvbid0IHNlZSB3aHkgd2Ugc2hvdWxkIHJlcGxpY2F0 ZSB0aGlzIGZvciBEVC4gTGV0J3MKPiBkaXNjdXNzIGZ1cnRoZXIgdG9tb3Jyb3cgaW4gcGVyc29u LgoKSSBzZWUgaXQgZGlmZmVyZW50bHkuIElmIHRoYXQgY3JlYXRlcyBhIHRyb3VibGUsIGZpeCB0 aGF0IGFuZCB5b3Ugd2lsbCBub3QKaGF2ZSBhbnkgaXNzdWVzIHdpdGggRFQgdG9vLgoKLS0gClJl Z2FyZHMsClN1ZGVlcAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtYXJtLWtlcm5lbAo=