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 578B6C54E41 for ; Sat, 9 Mar 2024 10:33:51 +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: Subject:Cc:To:From:Message-ID:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=glebbA5ZEJFRkpGlayXsAoruzAAA72oEPjaNDkH5v3w=; b=fnl0rZPIMllouN Y5Q94Wy2BTnd8gGrMWK2dGLO/bmZ/TYhAJpAIJYtBMORFmYAHvySCJto3ZwoeI3DRhrsAU4nPeqHq T5sxQ3gYDJkautGYwq/AJq0Neez4ufPlcj7UIV3VSdAs/+jwrAQ/+FUUHlI/m+sylPtDzs2LaqGqt 2h7YzHcHIR/TvbThLiMf89vCp5LrKjA7uTqjrrv1jbOVn1wfbKroRchVyNPI2SFjG9TNpuYp55ncP m8sTNkZ8qs+k3pS/vgRrJDPM2IciFG7klhAs+U3dcUwTXaJJTRNfYehNBXL/m9KDUc/NFPj/PGmvx GNTsNeZ6+385zbvnOvDg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1riu1G-0000000D7AI-1cnQ; Sat, 09 Mar 2024 10:33:34 +0000 Received: from sin.source.kernel.org ([145.40.73.55]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1riu1D-0000000D793-0Sb1 for linux-arm-kernel@lists.infradead.org; Sat, 09 Mar 2024 10:33:33 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 5FB41CE0691; Sat, 9 Mar 2024 10:33:28 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7E1CCC433C7; Sat, 9 Mar 2024 10:33:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1709980407; bh=ep80T4R3DsChFlCxVs40oKoocVSvRg0xEN7d7U/tIbo=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=KrmXG+T15xq3cHjLexInxaHKvv7nQHc4nVfoQeFwC9C5CIKv3SG9hwz1HCKO4e8zZ y4dH4ErV1XuGC0zjuIdaXbPzooGVe6DIV4fN6WoT2A60aNMeBtQHdglR3VI0ipu3oV vXRQFRFJs8Lu+lZWG4/KbydkKnOPnwLnvuo2J3WMfqjqNJKp6tWHrZpPucsj1yL1S4 TdW7zjJxwTjv799dA9v7LwjE5OaEdc17Weq9gbG/aRuu/FMJUd4uPdXvK+B6FJmfLg ban7vmFsKfrm02sEGCibboTqgd4Ouvg6RpX8hJQEIdo+VGl+ATCFnC8rHiILYtqOOv w2OxHiQaa6siw== Received: from sofa.misterjones.org ([185.219.108.64] helo=wait-a-minute.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1riu17-00Ay3W-63; Sat, 09 Mar 2024 10:33:25 +0000 Date: Sat, 09 Mar 2024 10:33:18 +0000 Message-ID: <8734szr8y9.wl-maz@kernel.org> From: Marc Zyngier To: Ruidong Tian Cc: catalin.marinas@arm.com, will@kernel.org, lpieralisi@kernel.org, guohanjun@huawei.com, sudeep.holla@arm.com, xueshuai@linux.alibaba.com, baolin.wang@linux.alibaba.com, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Tyler Baicar Subject: Re: [PATCH 1/2] ACPI/AEST: Initial AEST driver In-Reply-To: References: <20240304111517.33001-1-tianruidong@linux.alibaba.com> <20240304111517.33001-2-tianruidong@linux.alibaba.com> <86wmqi19pg.wl-maz@kernel.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/28.2 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: tianruidong@linux.alibaba.com, catalin.marinas@arm.com, will@kernel.org, lpieralisi@kernel.org, guohanjun@huawei.com, sudeep.holla@arm.com, xueshuai@linux.alibaba.com, baolin.wang@linux.alibaba.com, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, baicar@os.amperecomputing.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240309_023331_528926_D250FE12 X-CRM114-Status: GOOD ( 45.07 ) 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 T24gRnJpLCAwOCBNYXIgMjAyNCAwMzo0MzozMCArMDAwMCwKUnVpZG9uZyBUaWFuIDx0aWFucnVp ZG9uZ0BsaW51eC5hbGliYWJhLmNvbT4gd3JvdGU6Cj4gCj4g5ZyoIDIwMjQvMy80IDIwOjA3LCBN YXJjIFp5bmdpZXIg5YaZ6YGTOgo+ID4gT24gTW9uLCAwNCBNYXIgMjAyNCAxMToxNToxNiArMDAw MCwKPiA+IFJ1aWRvbmcgVGlhbjx0aWFucnVpZG9uZ0BsaW51eC5hbGliYWJhLmNvbT4gIHdyb3Rl Ogo+ID4+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3Jhcy5oIGIvYXJjaC9h cm02NC9pbmNsdWRlL2FzbS9yYXMuaAo+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPj4gaW5k ZXggMDAwMDAwMDAwMDAwLi4yZmIwZDk3NDE1NjcKPiA+PiAtLS0gL2Rldi9udWxsCj4gPj4gKysr IGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9yYXMuaAo+ID4+IEBAIC0wLDAgKzEsMzggQEAKPiA+ PiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KPiA+PiArI2lmbmRlZiBf X0FTTV9SQVNfSAo+ID4+ICsjZGVmaW5lIF9fQVNNX1JBU19ICj4gPj4gKwo+ID4+ICsjaW5jbHVk ZSA8bGludXgvdHlwZXMuaD4KPiA+PiArI2luY2x1ZGUgPGxpbnV4L2JpdHMuaD4KPiA+PiArCj4g Pj4gKyNkZWZpbmUgRVJSX1NUQVRVU19BVgkJQklUKDMxKQo+ID4+ICsjZGVmaW5lIEVSUl9TVEFU VVNfVgkJQklUKDMwKQo+ID4+ICsjZGVmaW5lIEVSUl9TVEFUVVNfVUUJCUJJVCgyOSkKPiA+PiAr I2RlZmluZSBFUlJfU1RBVFVTX0VSCQlCSVQoMjgpCj4gPj4gKyNkZWZpbmUgRVJSX1NUQVRVU19P RgkJQklUKDI3KQo+ID4+ICsjZGVmaW5lIEVSUl9TVEFUVVNfTVYJCUJJVCgyNikKPiA+PiArI2Rl ZmluZSBFUlJfU1RBVFVTX0NFCQkoQklUKDI1KSB8IEJJVCgyNCkpCj4gPj4gKyNkZWZpbmUgRVJS X1NUQVRVU19ERQkJQklUKDIzKQo+ID4+ICsjZGVmaW5lIEVSUl9TVEFUVVNfUE4JCUJJVCgyMikK PiA+PiArI2RlZmluZSBFUlJfU1RBVFVTX1VFVAkJKEJJVCgyMSkgfCBCSVQoMjApKQo+ID4+ICsj ZGVmaW5lIEVSUl9TVEFUVVNfQ0kJCUJJVCgxOSkKPiA+PiArI2RlZmluZSBFUlJfU1RBVFVTX0lF UlIgCUdFTk1BU0tfVUxMKDE1LCA4KQo+ID4+ICsjZGVmaW5lIEVSUl9TVEFUVVNfU0VSUiAJR0VO TUFTS19VTEwoNywgMCkKPiA+IEFsbCB0aGVzZSBiaXRzIG5lZWQgdG8gYmUgZGVmaW5lZCBpbiBh cmNoL2FybTY0L3Rvb2xzL3N5c3JlZyBhcwo+ID4gRVJYU1RBVFVTX0VMMSBmaWVsZHMuCj4gCj4g VGhpcyBmaWxlIG9ubHkgZGVzY3JpYmVzIHRoZSBzeXN0ZW0gcmVnaXN0ZXIsIGJ1dCBSQVMgTU1J TyByZWdpc3RlcnMKPiB1c2UgdGhlc2UgYml0cyB0b28uIFdvdWxkIGl0IGJlIGFwcHJvcHJpYXRl IHRvIGRlZmluZSB0aGVtIGluCj4gYXJjaC9hcm02NC90b29scy9zeXNyZWc/CgpZb3UgYXJlIHVz aW5nIHRoZW0gZm9yIHN5c3RlbSByZWdpc3RlcnMsIHRoZXkgbmVlZCB0byBiZSBkZWZpbmVkCnRo ZXJlLiBUaGUgZmFjdCB0aGF0IHRoZXkgYXJlIGFsc28gdXNlZCB0byBNTUlPIGlzIGFuZWNkb3Rh bC4KClsuLi5dCgo+ID4+ICsjZGVmaW5lIENBU0VfUkVBRF9DTEVBUih4LCBjbGVhcikJCQkJCVwK PiA+PiArCWNhc2UgKHgpOiB7CQkJCQkJCVwKPiA+PiArCQlyZXMgPSByZWFkX3N5c3JlZ19zKFNZ U18jI3gjI19FTDEpOwkJCVwKPiA+PiArCQlpZiAoY2xlYXIpCQkJCQkJXAo+ID4+ICsJCQl3cml0 ZV9zeXNyZWdfcygwLCBTWVNfIyN4IyNfRUwxKTsJCVwKPiA+PiArCQlicmVhazsJCQkJCQkJXAo+ ID4+ICsJfQo+ID4gUGxlYXNlIGRvbid0IHVzZSBtYWNyb3Mgd2l0aCBzaWRlIGVmZmVjdHMuIFRo aXMgaXMgaG9ycmlibGUgdG8gZGVidWcuCj4gPiBJbnN0ZWFkLCAqcmV0dXJuKiB0aGUgdmFsdWUg ZnJvbSB0aGUgbWFjcm8sIG9yIHBhc3MgdGhlIHZhcmlhYmxlIHlvdQo+ID4gd2FudCB0byBhZmZl Y3QgYXMgYSBwYXJhbWV0ZXIuCj4gCj4gT0ssIEkgd2lsbCBwYXNzICoqcmVzKiogYXMgYSBwYXJh bWV0ZXIgbGlrZSB0aGlzOgo+IAo+ICAgI2RlZmluZSBDQVNFX1JFQURfQ0xFQVIocmVzLCB4LCBj bGVhcikJCQlcCj4gCSAgY2FzZSAoeCk6IHsJCQkJCQlcCj4gCQkgIHJlcyA9IHJlYWRfc3lzcmVn X3MoU1lTXyMjeCMjX0VMMSk7CQlcCj4gCQkgIGlmIChjbGVhcikJCQkJCVwKPiAJCQkgIHdyaXRl X3N5c3JlZ19zKDAsIFNZU18jI3gjI19FTDEpOwlcCj4gCQkgIGJyZWFrOwkJCQkJXAo+IAkgIH0K PiAKPiA+IAo+ID4gQWxzbywgd2hhdCBlbnN1cmVzIHRoZSBzeW5jaHJvbmlzYXRpb24gb2YgdGhp cyB3cml0ZT8gSG93IGlzIHRoZSBXMVRDCj4gPiBhc3BlY3QgZW5mb3JjZWQ/Cj4gCj4gYWVzdF9w cm9jIGlzIGp1c3QgY2FsbCBpbiBpcnEgY29udGV4dCwgb25lIHJhcyBlcnJvciBpcyBqdXN0IHJv dXRlZCB0bwo+IG9uZSBjb3JlLCBzbyBpdCBpcyB0aHJlYWQgc2FmZS4gQW5kIHRoaXMgaXMgYSBX cml0ZS1BZnRlci1SZWFkIChXQVIpCj4gSGF6YXJkcyB3aXRoIGRlcGVuZGVuY2XvvIxjYW4gaSBh c3N1bWUgdGhhdCBwaXBlbGluZSB3b3VsZCBndWFyYW50ZWUKPiB0aGUgb3JkZXIgb2Ygd3JpdGlu ZyBhbmQgcmVhZGluZz8KCllvdSBhcmUgbWlzc2luZyB0aGUgcG9pbnQuIFdBUiBoYXphcmRpbmcg ZG9lc24ndCBtZWFuIHRoYXQgdGhlIHdyaXRlCmhhcyB0YWtlbiBlZmZlY3QsIGFuZCBjYW4gYmUg ZGVsYXllZCBmb3IgYXMgbG9uZyBhcyB0aGUgQ1BVIGRlY2lkZXMKdG8sIHVudGlsIHRoZSBuZXN0 IGNvbnRleHQgc3luY2hyb25pc2F0aW9uIGV2ZW50LgoKVGhlIFcxVEMgcXVlc3Rpb24gc3RpbGwg c3RhbmRzLgoKWy4uLl0KCj4gPj4gK3N0YXRpYyB1NjQgYWVzdF9pb21lbV9yZWFkX2NsZWFyKHU2 NCBiYXNlLCB1MzIgb2Zmc2V0LCBib29sIGNsZWFyKQo+ID4+ICt7Cj4gPj4gKwl1NjQgcmVzOwo+ ID4+ICsKPiA+PiArCXJlcyA9IHJlYWRxKCh2b2lkICopKGJhc2UgKyBvZmZzZXQpKTsKPiA+PiAr CWlmIChjbGVhcikKPiA+PiArCQl3cml0ZXEoMCwgKHZvaWQgKikoYmFzZSArIG9mZnNldCkpOwo+ ID4gRG8geW91IG5lZWQgdGhlIGV4cGxpY2l0IHN5bmNocm9uaXNhdGlvbj8gV2hhdCBvcmRlcmlu ZyBhcmUgeW91IHRyeWluZwo+ID4gdG8gZ3VhcmFudGVlPwo+IAo+IFRoaXMgcmVhZCBhbmQgd3Jp dGUgdXNlIHRoZSBzYW1lIGFkZHJlc3MsIHBpcGVsaW5lIHdvdWxkIGd1YXJhbnRlZQo+IHRoZSBv cmRlciBvZiB3cml0aW5nIGFuZCByZWFkaW5nLgoKWW91IGFyZSBtaXNzaW5nIHRoZSBwb2ludCBh Z2Fpbi4gTm9uLXJlbGF4ZWQgYWNjZXNzb3JzIGNvbWUgd2l0aCBhIERNQgp0aGF0IGVuZm9yY2Vz IG9yZGVyaW5nIHdpdGggeW91bmdlciByZWFkcyBhbmQgb2xkZXIgd3JpdGVzLiBXaHkgZG8geW91 Cm5lZWQgdGhvc2U/CgpbLi4uXQoKPiA+PiArc3RhdGljIGludCBfX2luaXQgYWVzdF9yZWdpc3Rl cl9nc2kodTMyIGdzaSwgaW50IHRyaWdnZXIsIHZvaWQgKmRhdGEsCj4gPj4gKwkJCQkJaXJxX2hh bmRsZXJfdCBhZXN0X2lycV9mdW5jKQo+ID4+ICt7Cj4gPj4gKwlpbnQgY3B1LCBpcnE7Cj4gPj4g Kwo+ID4+ICsJaXJxID0gYWNwaV9yZWdpc3Rlcl9nc2koTlVMTCwgZ3NpLCB0cmlnZ2VyLCBBQ1BJ X0FDVElWRV9ISUdIKTsKPiA+PiArCj4gPj4gKwlpZiAoaXJxID09IC1FSU5WQUwpIHsKPiA+PiAr CQlwcl9lcnIoImZhaWxlZCB0byBtYXAgQUVTVCBHU0kgJWRcbiIsIGdzaSk7Cj4gPj4gKwkJcmV0 dXJuIC1FSU5WQUw7Cj4gPj4gKwl9Cj4gPj4gKwo+ID4+ICsJaWYgKGdzaSA8IDE2KSB7Cj4gPj4g KwkJcHJfZXJyKCJpbnZhbGlkIEdTSSAlZFxuIiwgZ3NpKTsKPiA+PiArCQlyZXR1cm4gLUVJTlZB TDsKPiA+PiArCX0gZWxzZSBpZiAoZ3NpIDwgMzIpIHsKPiA+PiArCQlpZiAocHBpX2lkeCA+PSBB RVNUX01BWF9QUEkpIHsKPiA+PiArCQkJcHJfZXJyKCJVbmFibGUgdG8gcmVnaXN0ZXIgUFBJICVk XG4iLCBnc2kpOwo+ID4+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPiA+PiArCQl9Cj4gPj4gKwkJcHBp X2lycXNbcHBpX2lkeF0gPSBpcnE7Cj4gPj4gKwkJZW5hYmxlX3BlcmNwdV9pcnEoaXJxLCBJUlFf VFlQRV9OT05FKTsKPiA+IEVuYWJsaW5nIHRoZSBQUEkgYmVmb3JlIHJlcXVlc3RpbmcgaXQ/IExv b2tzLi4uIGdyZWF0LiBBbmQgaG93IGRvZXMKPiA+IHRoaXMgd29yayBvbiBhIHN5c3RlbSB0aGF0 IHN1cHBvcnRzIEVQUElzLCB3aGljaCBhcmUgaW4gdGhlCj4gPiBbMTExOToxMDU2XSByYW5nZT8K PiAKPiBJdCBpcyBiZXR0ZXIgdG8gZW5hYmxlIGl0IGFmdGVyIHJlcXVlc3QgaXQsIGkgd2lsbCBm aXggaXQgbmV4dCB2ZXJzaW9uLgo+IE15IG1hY2hpbmUgZG8gbm90IHVzZSBFUFBJIGFzIFJBUyBp bnRlcnJ1cHQsIGkgY2FuIG5vdCB0ZXN0IGl0IG5vdy4gQ2FuCj4gd2Ugc3VwcG9ydCBFUFBJIGlu IGxhdGVyIHBhdGNoPwoKTm8sIGJlY2F1c2UgeW91IHNob3VsZG4ndCBldmVuIGhhdmUgdG8gY2Fy ZS4gQ2FuIHlvdSBzZWUgYSBzaW5nbGUKZHJpdmVyIGluIHRoZSB0cmVlIHRoYXQgZG8gdGhpcz8K Cj4gCj4gPiAKPiA+IEFsc28sIGlmIHlvdSBnZXQgYSB0cmlnZ2VyIGFzIGEgcGFyYW1ldGVyLCB3 aHkgdGhlIElSUV9UWVBFX05PTkU/Cj4gPiAKPiBTb3Jyee+8jEkgZG8gbm90IHJlYWxseSB1bmRl cnN0YW5kIHRoaXMgY29tbWVudCwgc2hvdWxkIEkgdXNlCj4gKElSUV9MRVZFTCB8IElSUV9QRVJf Q1BVKT8KCllvdSB0ZWxsIG1lLiBFaXRoZXIgdGhlIHRyaWdnZXIgaXMgcmVsZXZhbnQsIG9yIGl0 IGlzbid0LiBCdXQgSSBhc3N1bWUKaXQgaXMgcGFzc2VkIGFzIGEgcGFyYW1ldGVyIHRvIHRoZSBm dW5jdGlvbiBmb3IgYSBnb29kIHJlYXNvbi4KCj4gCj4gPj4gKwkJZm9yX2VhY2hfcG9zc2libGVf Y3B1KGNwdSkgewo+ID4+ICsJCQltZW1jcHkocGVyX2NwdV9wdHIocHBpX2RhdGFbcHBpX2lkeF0s IGNwdSksIGRhdGEsCj4gPj4gKwkJCSAgICAgICBzaXplb2Yoc3RydWN0IGFlc3Rfbm9kZSkpOwo+ ID4+ICsJCX0KPiA+PiArCQlpZiAocmVxdWVzdF9wZXJjcHVfaXJxKGlycSwgYWVzdF9pcnFfZnVu YywgIkFFU1QiLAo+ID4+ICsJCQkJICAgICAgIHBwaV9kYXRhW3BwaV9pZHgrK10pKSB7Cj4gPj4g KwkJCXByX2VycigiZmFpbGVkIHRvIHJlZ2lzdGVyIEFFU1QgSVJRICVkXG4iLCBpcnEpOwo+ID4+ ICsJCQlyZXR1cm4gLUVJTlZBTDsKPiA+PiArCQl9Cj4gPj4gKwl9IGVsc2UgaWYgKGdzaSA8IDEw MjApIHsKPiA+PiArCQlpZiAocmVxdWVzdF9pcnEoaXJxLCBhZXN0X2lycV9mdW5jLCBJUlFGX1NI QVJFRCwgIkFFU1QiLAo+ID4+ICsJCQkJZGF0YSkpIHsKPiA+IFdoeSBTSEFSRUQ/IFdobyB3b3Vs ZCBzaGFyZSBhIFJBUyBpbnRlcnJ1cHQ/Pz8/Pwo+IAo+IE11bHRpIEFFU1Qgbm9kZXMgbWF5IHVz ZSB0aGUgc2FtZSBpbnRlcnJ1cHQsIGZvciBleGFtcGxlLCBvbmUgRERSQyB3aXRoCj4gYSBSQVMg aW50ZXJydXB0IGhhcyB0d28gc3ViIGNoYW5uZWxzLCB0aGVzZSB0d28gc3ViIGNoYW5uZWwgaXMg ZGVzY3JpYmVkCj4gYXMgdHdvIEFFU1Qgbm9kZSBpbiBBRVNUIHRhYmxlLCBzbyB0aGV5IHNoYXJl IHRoZSBzYW1lIG9uZS4gSW4gYW5vdGhlcgo+IGNhc2UsIFNNTVUgaGFzIHR3byBSQVMgbm9kZSwg VENVIGFuZCBUQlUsIHRoZXkgbWF5IGFsc28gc2hhcmUgdGhlIHNhbWUKPiBpbnRlcnJ1cHQuCgpJ IHN0aWxsIGZpbmQgaXQgb2RkLCBidXQgaGV5LCBpZiB0aGF0J3MgdGhlIHdheSBwZW9wbGUgd2Fu dCB0byBoYW5kbGUKUkFTLCB0aGV5IG1pZ2h0IGFzIHdlbGwgT1IgYWxsIG9mIHRoZW0gYW5kIHdp cmUgaXQgdG8gdGhlIFJFU0VUIHBpbi4KCj4KPiA+IAo+ID4+ICsJCQlwcl9lcnIoImZhaWxlZCB0 byByZWdpc3RlciBBRVNUIElSUSAlZFxuIiwgaXJxKTsKPiA+PiArCQkJcmV0dXJuIC1FSU5WQUw7 Cj4gPiBTYW1lIHF1ZXN0aW9uIGFib3V0IGV4dGVuZGVkIFNQSXMuCj4gPiAKPiA+IEFsbCBpbiBh bGwsIHRoaXMgd2hvbGUgbG9naWMgaXMgdG90YWxseSB1c2VsZXNzLiBJdCBpc24ndCB0aGUgZHJp dmVyJ3MKPiA+IGpvYiB0byBjbGFzc2lmeSB0aGUgR0lDIElOVElEcy4uLgo+IAo+IEFFU1QgdXNl IGJvdGggUFBJIGFuZCBTUEksIGl0IHNlZW1zIHRoYXQgQUVTVCBkcml2ZXIgbXVzdCByZWNvZ25p emUKPiBJTlRJRCBpbiBvcmRlciB0byByZXF1ZXN0IGlycSBudW1iZXIgd2l0aCBkaWZmZXJlbnQg ZnVuY3Rpb24sIGRvIHlvdQo+IGhhdmUgYmV0dGVyIHNvbHV0aW9uIGhlcmU/CgpBZ2FpbiwgeW91 IHNob3VsZCBoYXZlIHRvIGxvb2sgYXQgdGhlIElOVElELCBldmVyLiBUaGF0J3Mgbm9uZSBvZiB5 b3VyCmJ1c2luZXNzLCBhbmQgeW91IGRvbid0IGV2ZW4ga25vdyB3aGF0IGludGVycnVwdCBjb250 cm9sbGVyIHRoZSBzeXN0ZW0KaXMgcHJlc2VudGluZyB5b3UgYW55d2F5LiBUaGUgd2F5IHRvIGlk ZW50aWZ5IGEgcGVyLUNQVSBpbnRlcnJ1cHQgaXMKdG8gdXNlIHRoZSBpcnFfaXNfcGVyY3B1X2Rl dmlkKCkgaGVscGVyLCBhbmQgbm90IHRvIG1lc3Mgd2l0aApwb2ludGxlc3MgaGV1cmlzdGljcy4K ClRoYW5rcywKCglNLgoKLS0gCldpdGhvdXQgZGV2aWF0aW9uIGZyb20gdGhlIG5vcm0sIHByb2dy ZXNzIGlzIG5vdCBwb3NzaWJsZS4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJu ZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK