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 85A04C48BF6 for ; Thu, 29 Feb 2024 14:15:24 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=QismaYeiOjqYPjFDj1cuawkDCoowbXhcyJUoyHXFofA=; b=FryDlkiBPIPnc4 Yg7Wa1jxZ7KFkNQ2eHVPsaYsk8itW3W8Pmtbcn6CGPPMyumAP6c3NSJ05sL7FO/yUc7P8Ce33uNF1 OJUGrxr3ydKJfTaj7oNd0ePyr2JVifoap29iF+Vb83r7JC7l58mxO3h2XXe9FbwnikXKE103MJi6b n8z6OYMW85ee36q1QB/N6emaibK+VuD5TLyrO6PbVKEwQBz9F5+QWSjHlj2gq0i/bFFnGHgHe2t98 N7vOoNLsmH+BUg7SzMG0ikZLCIM3mwvhHX5fVhqWxYLjqAxqkDw5k+6N3hcYYn38Lu83pZtYWfmnH 6+lVu9M01OPvX/8eAcBA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rfhBo-0000000DonD-0NLT; Thu, 29 Feb 2024 14:15:12 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rfhBl-0000000DokX-07Ah for linux-arm-kernel@lists.infradead.org; Thu, 29 Feb 2024 14:15:10 +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 F36AA1FB; Thu, 29 Feb 2024 06:15:41 -0800 (PST) Received: from [10.57.13.21] (unknown [10.57.13.21]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id CF16A3F6C4; Thu, 29 Feb 2024 06:15:00 -0800 (PST) Message-ID: <66ca73cc-8bdd-453a-951c-5e0166340edd@arm.com> Date: Thu, 29 Feb 2024 14:15:17 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH V3 2/2] cpufreq: scmi: Register for limit change notifications Content-Language: en-US To: Cristian Marussi , Sibi Sankar Cc: sudeep.holla@arm.com, linux-arm-kernel@lists.infradead.org, pierre.gondois@arm.com, dietmar.eggemann@arm.com, morten.rasmussen@arm.com, viresh.kumar@linaro.org, rafael@kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, quic_mdtipton@quicinc.com, linux-arm-msm@vger.kernel.org References: <20240227181632.659133-1-quic_sibis@quicinc.com> <20240227181632.659133-3-quic_sibis@quicinc.com> <2608b2d8-f3b0-b4f5-f8e4-1f2242043ded@quicinc.com> <64c6a1bc-92f2-4f44-ab10-cbd2473746f3@arm.com> <18c249b2-ce8c-435b-8d65-a1770a1f294e@arm.com> <7c82b316-89d9-470d-b46d-f86e81e2add3@arm.com> From: Lukasz Luba In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240229_061509_205166_3363CB79 X-CRM114-Status: GOOD ( 39.37 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgpPbiAyLzI5LzI0IDEyOjExLCBDcmlzdGlhbiBNYXJ1c3NpIHdyb3RlOgo+IE9uIFRodSwgRmVi IDI5LCAyMDI0IGF0IDExOjQ1OjQxQU0gKzAwMDAsIEx1a2FzeiBMdWJhIHdyb3RlOgo+Pgo+Pgo+ PiBPbiAyLzI5LzI0IDExOjI4LCBDcmlzdGlhbiBNYXJ1c3NpIHdyb3RlOgo+Pj4gT24gVGh1LCBG ZWIgMjksIDIwMjQgYXQgMTA6MjI6MzlBTSArMDAwMCwgTHVrYXN6IEx1YmEgd3JvdGU6Cj4+Pj4K Pj4+Pgo+Pj4+IE9uIDIvMjkvMjQgMDk6NTksIEx1a2FzeiBMdWJhIHdyb3RlOgo+Pj4+Pgo+Pj4+ Pgo+Pj4+PiBPbiAyLzI4LzI0IDE3OjAwLCBTaWJpIFNhbmthciB3cm90ZToKPj4+Pj4+Cj4+Pj4+ Pgo+Pj4+Pj4gT24gMi8yOC8yNCAxODo1NCwgTHVrYXN6IEx1YmEgd3JvdGU6Cj4+Pj4+Pj4KPj4+ Pj4+Pgo+Pj4+Pj4+IE9uIDIvMjcvMjQgMTg6MTYsIFNpYmkgU2Fua2FyIHdyb3RlOgo+Pj4+Pj4+ PiBSZWdpc3RlciBmb3IgbGltaXQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgaWYgc3VwcG9ydGVkIGFu ZCB1c2UKPj4+Pj4+Pj4gdGhlIHRocm90dGxlZAo+Pj4+Pj4+PiBmcmVxdWVuY3kgZnJvbSB0aGUg bm90aWZpY2F0aW9uIHRvIGFwcGx5IEhXIHByZXNzdXJlLgo+Pj4+Pj4KPj4+Pj4+IEx1a2FzeiwK Pj4+Pj4+Cj4+Pj4+PiBUaGFua3MgZm9yIHRha2luZyB0aW1lIHRvIHJldmlldyB0aGUgc2VyaWVz IQo+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogU2liaSBTYW5rYXIgPHF1 aWNfc2liaXNAcXVpY2luYy5jb20+Cj4+Pj4+Pj4+IC0tLQo+Pj4+Pj4+Pgo+Pj4+Pj4+PiB2MzoK Pj4+Pj4+Pj4gKiBTYW5pdGl6ZSByYW5nZV9tYXggcmVjZWl2ZWQgZnJvbSB0aGUgbm90aWZpZXIu IFtQaWVycmVdCj4+Pj4+Pj4+ICogVXBkYXRlIGNvbW1pdCBtZXNzYWdlLgo+Pj4+Pj4+Pgo+Pj4+ Pj4+PiDDr8K/wr0gZHJpdmVycy9jcHVmcmVxL3NjbWktY3B1ZnJlcS5jIHwgMjkgKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0KPj4+Pj4+Pj4gw6/Cv8K9IDEgZmlsZSBjaGFuZ2VkLCAyOCBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2NwdWZyZXEvc2NtaS1jcHVmcmVxLmMKPj4+Pj4+Pj4gYi9kcml2ZXJzL2NwdWZy ZXEvc2NtaS1jcHVmcmVxLmMKPj4+Pj4+Pj4gaW5kZXggNzZhMGRkYmQ5ZDI0Li43OGI4N2I3Mjk2 MmQgMTAwNjQ0Cj4+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvY3B1ZnJlcS9zY21pLWNwdWZyZXEuYwo+ Pj4+Pj4+PiArKysgYi9kcml2ZXJzL2NwdWZyZXEvc2NtaS1jcHVmcmVxLmMKPj4+Pj4+Pj4gQEAg LTI1LDkgKzI1LDEzIEBAIHN0cnVjdCBzY21pX2RhdGEgewo+Pj4+Pj4+PiDDr8K/wr3Dr8K/wr3D r8K/wr3Dr8K/wr3Dr8K/wr0gaW50IGRvbWFpbl9pZDsKPj4+Pj4+Pj4gw6/Cv8K9w6/Cv8K9w6/C v8K9w6/Cv8K9w6/Cv8K9IGludCBucl9vcHA7Cj4+Pj4+Pj4+IMOvwr/CvcOvwr/CvcOvwr/CvcOv wr/CvcOvwr/CvSBzdHJ1Y3QgZGV2aWNlICpjcHVfZGV2Owo+Pj4+Pj4+PiArw6/Cv8K9w6/Cv8K9 w6/Cv8K9IHN0cnVjdCBjcHVmcmVxX3BvbGljeSAqcG9saWN5Owo+Pj4+Pj4+PiDDr8K/wr3Dr8K/ wr3Dr8K/wr3Dr8K/wr3Dr8K/wr0gY3B1bWFza192YXJfdCBvcHBfc2hhcmVkX2NwdXM7Cj4+Pj4+ Pj4+ICvDr8K/wr3Dr8K/wr3Dr8K/wr0gc3RydWN0IG5vdGlmaWVyX2Jsb2NrIGxpbWl0X25vdGlm eV9uYjsKPj4+Pj4+Pj4gw6/Cv8K9IH07Cj4+Pj4+Pj4+ICtjb25zdCBzdHJ1Y3Qgc2NtaV9oYW5k bGUgKmhhbmRsZTsKPj4+Pj4KPj4+Pj4gSSd2ZSBtaXNzZWQgdGhpcyBiaXQgaGVyZS4KPj4+Pgo+ Pj4+IFNvIGZvciB0aGlzIGNoYW5nZSB3ZSBhY3R1YWxseSBoYXZlIHRvIGFzayBDcmlzdGlhbiBv ciBTdWRlZXAKPj4+PiBiZWNhdXNlIEknbSBub3Qgc3VyZSBpZiB3ZSBoYXZlIG9ubHkgb25lICdo YW5kbGUnIGluc3RhbmNlCj4+Pj4gZm9yIGFsbCBjcHVmcmVxIGRldmljZXMuCj4+Pj4KPj4+PiBJ ZiB3ZSBoYXZlIGRpZmZlcmVudCAnaGFuZGxlJyB3ZSBjYW5ub3QgbW92ZSBpdCB0byB0aGUKPj4+ PiBnbG9iYWwgc2luZ2xlIHBvaW50ZXIuCj4+Pj4KPj4+PiBTdWRlZXAsIENyaXN0aWFuIHdoYXQg ZG8geW91IHRoaW5rPwo+Pj4KPj4+IEkgd2FzIGp1c3QgcmVwbHlpbmcgbm90aWNpbmcgdGhpcyA6 RCAuLi4uIHNpbmNlIFNDTUkgZHJpdmVycyBjYW4gYmUKPj4+IHByb2JlZCBtdWx0aXBsZSB0aW1l cyBJRiB5b3UgZGVmaW5lZCBtdWx0aXBsZSBzY21pIHRvcCBub2RlcyBpbiB5b3VyIERUCj4+PiBj b250YWluaW5nIHRoZSBzYW1lIHByb3RvY29sIG5vZGVzLCB0aGV5IHJlY2VpdmUgYSBkaXN0aW5j dCBzZGV2L2hhbmRsZS9waAo+Pj4gZm9yIGVhY2ggcHJvYmUuLi5zbyBhbnkgYXR0ZW1wdCB0byBn bG9iYWxpemUgdGhlc2Ugd29udCB3b3JrLi4uQlVULi4uCj4+Pgo+Pj4gLi4udGhpcyBpcyBhIGJp dCBvZiBhIHdlaXJkIHNldHVwIEJVVCBpdCBpcyBub3QgYWdhaW5zdCB0aGUgc3BlYyBhbmQgaXQg Y2FuCj4+PiBiZSB1c2VkIHRvIHBhcmFsbGVsaXplIG1vcmUgdGhlIFNDTUkgYWNjZXNzZXMgdG8g ZGlzam9udCBzZXQgb2YgcmVzb3VyY2VzCj4+PiB3aXRoaW4gdGhlIHNhbWUgcHJvdG9jb2wgKGEg bG9uZyBzdG9yeSBoZXJlLi4uKSBBTkQgdGhpcyB0eXBlIG9mIHNldHVwIGlzCj4+PiBzb21ldGhp bmcgdGhhdCBpdCBpcyBhbHJlYWR5IHVzZWQgYnkgc29tZSBvdGhlciBjb2xsZWFndWVzIG9mIFNp Ymkgd29ya2luZwo+Pj4gb24gYSBkaWZmZXJlbnQgbGluZSBvZiBwcm9kdWN0cyAoQUZBSUspLi4u Cj4+Pgo+Pj4gU28sIGZvciB0aGVzZSByZWFzb25zLCB1c3VhbGx5LCBhbGwgdGhlIG90aGVyIFND TUkgZHJpdmVycyBoYXZlIHBlci1pbnN0YW5jZQo+Pj4gbm9uLWdsb2JhbCByZWZlcmVuY2VzIHRv IGhhbmRsZS9zZGV2L3BoLi4uLgo+Pj4KPj4+IC4uLmhhdmluZyBzYWlkIHRoYXQsIHRob3VnaHQs IGxvb2tpbmcgYXQgdGhlIHN0cnVjdHVyZSBvZiBDUFVGUmVxCj4+PiBkcml2ZXJzLCBJIGFtIG5v dCBzdXJlIHRoYXQgdGhleSBjYW4gc3RhbmQgc3VjaCBhIHNpbWlsYXIgc2V0dXAKPj4+IHdoZXJl IG11bHRpcGxlIGluc3RhbmNlcyBvZiB0aGlzIHNhbWUgZHJpdmVyIGFyZSBwcm9iZWQKPj4+Cj4+ PiAuLi4uIGluZGVlZCB0aGUgZXhpc3RlbnQgKnBoIHJlZnMgYWJvdmUgaXMgYWxyZWFkeSBnbG9i YWwuLi4uc28gaXQgd29udCBhbHJlYWR5Cj4+PiB3b3JrIGFueXdheSBpbiBjYXNlIG9mIG11bHRp cGxlIGluc3RhbmNlcyBub3cuLi4KPj4+Cj4+PiAuLi5hbmQgaWYgSSBsb29rIGF0IGhvdyBDUFVG cmVxIGV4cGVjdHMgdGhlIHNpZ25hdHVyZSBvZiBzY21pX2NwdWZyZXFfZ2V0X3JhdGUoKQo+Pj4g dG8gYmUgYW5uZCBob3cgaXQgaXMgaW1wbGVtZW50ZWQgbm93IHVzaW5nIHRoZSBnbG9iYWwgKnBo IHJlZmVyZW5jZSwgaXQgaXMKPj4+IGNsZWFybHkgYWxyZWFkeSBub3Qgd29ya2luZyBjbGVhbmx5 IG9uIGEgbXVsdGktaW5zdGFuY2Ugc2V0dXAuLi4KPj4+Cj4+PiAuLi5ub3cuLi5JIGNhbiBpbWFn aW5lIGhvdyB0byAobWF5YmUpIGZpeCB0aGUgYWJvdmUgcmVtb3ZpbmcgdGhlIGdsb2JhbHMgYW5k Cj4+PiBmaXhpbmcgdGhpcywgQlVUIHRoZSBxdWVzdGlvbiwgbW9yZSBnZW5lcmFsbHksIGlzIENQ VUZyZXEgc3VwcG9zZWQgdG8gd29yayBhdCBhbGwgaW4KPj4+IHRoaXMgbXVsdGktcHJvYmVkIG1v ZGUgb2Ygb3BlcmF0aW9uID8KPj4+IERvZXMgaXQgZXZlbiBtYWtlIHNlbnNlIHRvIGJlIGFibGUg dG8gc3VwcG9ydCB0aGlzIGluIENQVUZSRVEgPwo+Pj4KPj4+IChhcyBhbiBleGFtcGxlIGluIGNw dWZyZXEsYyB0aGVyZSBpcyBzdGF0aWMgZ2xvYmFsIGNwdWZyZXFfZHJpdmVyCj4+PiAgICBwb2lu dGluZyB0byB0aGUgYXJjaC1zcGVjaWZpYyBjb25maWd1cmVkIGRyaXZlciBCVVQgdGhhdCBhbHNv IGhvbGRzCj4+PiAgICBzb21lIC5kcml2ZXJfZGF0YSBBTkQgdGhhdCBjbGVyYWx5IHdvbnQgYmUg aW5zdGFuY2Ugc3BlY2lmaWMgaWYgeW91Cj4+PiAgICBwcm9iZSBtdWx0aXBsZSB0aW1lcyBhbmQg cmVnaXN0ZXIgd2l0aCBDUFVGcmVxIG11bHRpcGxlIHRpbWVzLi4uKQo+Pj4KPj4+ICAgIE1vcmUg cXVlc3Rpb25zIHRoYW4gYW5zd2VycyBoZXJlIDpECj4+Pgo+Pgo+PiBUaGFua3MgQ3Jpc3RpYW4g Zm9yIGluc3RhbnQgcmVzcG9uc2UuIFllcywgaW5kZWVkIG5vdyB3ZSBoYXZlIG1vcmUKPj4gcXVl c3Rpb25zIDopICh3aGljaCBpcyBnb29kKS4gQnV0IHRoYXQncyBnb29kIGRlc2NyaXB0aW9uIG9m IHRoZQo+PiBzaXR1YXRpb24uCj4+Cj4+IFNvIGxldHMgY29uc2lkZXIgYSBmZXcgb3B0aW9uIHdo YXQgd2UgY291bGQgZG8gbm93Ogo+PiAxLiBMZXQgU2liaSBhZGQgYW5vdGhlciBnbG9iYWwgc3Rh dGUgdGhlICdoYW5kbGUnIGJ1dCBhZGQKPj4gICAgIGEgQlVHX09OKCkgb3IgV0FSTl9PTigpIGlu IHRoZSBwcm9iZSBwYXRoIGlmIHRoZSBuZXh0Cj4+ICAgICAnaGFuZGxlJyBpbnN0YW5jZSBpcyBk aWZmZXJlbnQgdGhhbiBhbHJlYWR5IHNldCBpbiBnbG9iYWwuCj4+ICAgICBUaGlzIHdvdWxkIHNp bXBseSBtZWFuIHRoYXQgd2UgZG9uJ3Qgc3VwcG9ydCAoeWV0KQo+PiAgICAgc3VjaCBjb25maWd1 cmF0aW9uIGluIGEgcGxhdGZvcm0uIEFzIHlvdSBzYWlkLCB3ZQo+PiAgICAgYWxyZWFkeSBoYXZl IHRoZSAqcGggZ2xvYmFsLCBzbyBtYXliZSBzdWNoIHBsYXRmb3Jtcwo+PiAgICAgd2l0aCBtdWx0 aXBsZSBpbnN0YW5jZXMgZm9yIHRoaXMgcGFydGljdWxhciBjcHVmcmVxIGFuZAo+PiAgICAgcGVy Zm9ybWFuY2UgcHJvdG9jb2wgZG9uJ3QgZXhpc3QgeWV0Lgo+IAo+IFllcyB0aGlzIGlzIHRoZSBx dWlja3N0IHdheSAoYW5kIGEgV0FSTl9PTigpIGlzIGJldHRlciBJJ2Qgc2F5KSBidXQgdGhlcmUK PiBhcmUgc2ltaWxhciBpc3N1ZXMgb2YgInVuaWNpdHkiIGN1cnJlbnRseSBhbHJlYWR5IHdpdGgg YW5vdGhlciB2ZW5kb3IgU0NNSQo+IGRyaXZlcnMgYW5kIGN1c3RvbSBwcm90b2NvbCBjdXJyZW50 bHkgdW5kZXIgcmV2aWV3LCBzbyBJIHdhcyB0aGlua2luZyB0bwo+IGFkZCBhIG5ldyBjb21tb24g bWVjaGFuaXNtIGluIFNDTUkgdG8gaGFuZGxlIHRoaXMgLi4uIG5vdCB0aG91Z2h0IGFib3V0Cj4g dGhpcyByZWFsbHkgaW4gZGVwdGggYW5kIEkgd2FudCB0byBjaGF0IHdpdGggU3VkZWVwIGFib3V0 IHRoaXMuLi4KPiAKPj4gMi4gQXNrIFNpYmkgdG8gd2FpdCB3aXRoIHRoaXMgY2hhbmdlLCB0aWxs IHdlIHJlZmFjdG9yIHRoZQo+PiAgICAgZXhpdGluZyBkcml2ZXIgc3VjaCB0aGF0IGl0IGNvdWxk IHN1cHBvcnQgZWFzaWx5IHRob3NlCj4+ICAgICBtdWx0aXBsZSBpbnN0YW5jZXMuIFRoZW4gcGlj ayB1cCB0aGlzIHBhdGNoIHNldC4KPj4gICAgIEFsdGhvdWdoLCB3ZSB3b3VsZCBhbHNvIGxpa2Ug dG8gaGF2ZSB0aG9zZSBub3RpZmljYXRpb25zIGZyb20gb3VyCj4+ICAgICBKdW5vIFNDUCByZWZl cmVuY2UgRlcsIHNvIHRoZSBmZWF0dXJlIGlzIHVzZWZ1bC4KPj4gMy4gQXNrIFNpYmkgdG8gcmVm YWN0b3IgaGlzIHBhdGNoIHRvIHNvbWVob3cgZ2V0IHRoZSAnaGFuZGxlJwo+PiAgICAgaW4gZGlm ZmVyZW50IHdheSwgdXNpbmcgZXhpdGluZyBjb2RlIGFuZCBub3QgaW50cm9kdWNlIHRoaXMgZ2xv YmFsLgo+Pgo+IAo+PiBJSE1PIHdlIGNvdWxkIGRvIHRoaXMgaW4gc3RlcHM6IDEuIGFuZCB0aGVu IDIuIFdoZW4KPj4gd2UgY3JlYXRlIHNvbWUgbW9jayBwbGF0Zm9ybSB0byB0ZXN0IHRoaXMgcmVm YWN0b3Jpbmcgd2UgY2FuCj4+IHN0YXJ0IGNsZWFuaW5nIGl0Lgo+Pgo+IAo+IEJvdGggb2YgdGhl c2Ugb3B0aW9ucyByZWFsbHkgYmVnIGFuIGFuc3dlciB0byBteSBvcmlnaW5hbCBwcmV2aW91cyBx Cj4gcXVlc3Rpb24uLi5pZiB3ZSBzb21laG93IGVuYWJsZSB0aGlzIG11bHRpLXByb2JlIHN1cHBv cnQgaW4gdGhlCj4gc2NtaS1jcHVmcmVxLmMgZHJpdmVyIGJ5IGF2b2lkaW5nIGdsYmFscyByZWZz LCBkb2VzIHRoaXMgd29yayBhdCBhbGwgaW4KPiB0aGUgY29udGV4dCBvZiBDUFVGcmVxID8KCkkg ZG9uJ3Qga25vdyB5ZXQuCgo+IAo+IC4uLm9yIGl0IGlzIGp1c3QgdGhhdCBDUFVGcmVxIGNhbm5v dCBoYW5kbGUgc3VjaCBhIGNvbmZpZ3VyYXRpb24gKGFuZAo+IG1heWJlIGRvbnQgd2FudCB0bykg YW5kIHNvIHRoZSBvbmx5IHNvbHV0aW9uIGhlcmUgaXMganVzdCAxLiBhdCBmaXJzdCBhbmQKPiB0 aGVuIGEgY29tbW9uIHJlZmluZWQgbWVjaGFuaXNtIChhcyBtZW50aW9uZWQgYWJvdmUpIHRvIGVu c3VyZSB0aGlzICJ1bmljaXR5Igo+IG9mIHRoZSBwcm9iZXMgZm9yIHNvbWUgZHJpdmVycyA/CgpU aGlzIHNvdW5kcyByZWFzb25hYmxlLgoKPiAKPiBJJ20gbm90IGZhbWlsaWFyIGVub3VnaCB0byBn cmFzcCBpZiB0aGlzICJtdWx0aS1wcm9iZWQiIG1vZGUgb2Ygb3BlcmF0aW9uIGlzCj4gYWxsb3dl ZC9zdXBwb3J0ZWQgYnkgQ1BVRnJlcSBhbmQsIG1vcmUgaW1wb3J0YW50LCBpZiBpdCBtYWtlcyBh bnkgc2Vuc2UKPiBhdCBhbGwgdG8gYmUgYSBzdXBwb3J0ZWQgbW9kZS4uLgo+IAoKT0ssIGxldCBt ZSBjaGVjayBzb21lIHN0dWZmIGluIHRoZSBjb2RlIGFuZCB0aGluayBmb3IgYSB3aGlsZSBvbiB0 aGF0LgpUaGFua3MgQ3Jpc3RpYW4hCgpTaWJpLCBwbGVhc2UgZ2l2ZSBtZSBhIGZldyBkYXlzLiBJ biB0aGUgbWVhbnRpbWUgeW91IGNhbiBjb250aW51ZQpvbiB0aGUgJ2Jvb3N0JyBwYXRjaCBzZXQg cHJvYmFibHkuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1hcm0ta2VybmVsCg==