From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3539C36B1A; Wed, 18 Oct 2023 14:12:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="W+Gvms76" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4D05EC433C9; Wed, 18 Oct 2023 14:12:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1697638376; bh=51fIDWCVKB8uS2JBPxXFm+H74EFZkbMSdzM2pSNC22c=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=W+Gvms76pV5hSiJAOrI7JIk44J4aJD7XIdf7yMDCPx20skfodeyV+Cp8GCsFRftJh qz+RiAq7N/TbfgTkm1dyIZ4LCHrmPMhyJYbYbzSGW4OnqNp1Ht5FdCWP0knGAjbLNw ukttiawgU6pYBeK4MaphTHoLfctNQ/ntcCNwaHhFwLCVyn7UT4NZu82tLUXFk+JBAh 2mI8IKAxvFfmhVvoUNrHiABrwtp9a07fXKQC1xmVXku52jGP4l0nF9YllHc33owMIw JRL/RW9l5ne/Prnc1Dk6oMQFiEs1CLsbeWW3uiGULtPDGvHGoRWDp0Xv05zBckuotp FGdLs3ivRIO5Q== Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id A57F140016; Wed, 18 Oct 2023 11:12:53 -0300 (-03) Date: Wed, 18 Oct 2023 11:12:53 -0300 From: Arnaldo Carvalho de Melo To: Namhyung Kim Cc: Oliver Upton , kvm@vger.kernel.org, kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, Mark Brown , Jing Zhang , Zenghui Yu , Suzuki K Poulose , James Morse , Marc Zyngier , Paolo Bonzini , Adrian Hunter , Ian Rogers , Jiri Olsa , Alexander Shishkin , Mark Rutland , Ingo Molnar , Peter Zijlstra Subject: Re: [PATCH v3 2/5] perf build: Generate arm64's sysreg-defs.h and add to include path Message-ID: References: <20231011195740.3349631-1-oliver.upton@linux.dev> <20231011195740.3349631-3-oliver.upton@linux.dev> Precedence: bulk X-Mailing-List: kvmarm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Url: http://acmel.wordpress.com Em Tue, Oct 17, 2023 at 03:23:40PM -0700, Namhyung Kim escreveu: > Hello, > > On Wed, Oct 11, 2023 at 12:58 PM Oliver Upton wrote: > > > > Start generating sysreg-defs.h in anticipation of updating sysreg.h to a > > version that needs the generated output. > > > > Signed-off-by: Oliver Upton > > It seems we also need this on non-ARM archs to process ARM SPE data. > > Acked-by: Namhyung Kim When building with CORESIGHT=1, yes. I have it in my tests and: ⬢[acme@toolbox perf-tools-next]$ ls -la /tmp/build/perf-tools-next/util/arm-spe.o -rw-r--r--. 1 acme acme 135432 Oct 17 16:49 /tmp/build/perf-tools-next/util/arm-spe.o ⬢[acme@toolbox perf-tools-next]$ ldd /tmp/build/perf-tools-next/perf | grep csd libopencsd_c_api.so.1 => /lib64/libopencsd_c_api.so.1 (0x00007f36bfca5000) libopencsd.so.1 => /lib64/libopencsd.so.1 (0x00007f36be2e0000) ⬢[acme@toolbox perf-tools-next]$ rpm -qf /lib64/libopencsd.so.1 opencsd-1.3.3-1.fc38.x86_64 ⬢[acme@toolbox perf-tools-next]$ rpm -q --qf "%{summary}\n" opencsd An open source CoreSight(tm) Trace Decode library ⬢[acme@toolbox perf-tools-next]$ Well, double checked and arm-spe.o is built by default, only way to disable it is using NO_AUXTRACE=1 in the make command line, but then IIRC one needs linking with opencsd to decode all those traces, right? Anyway: Acked-by: Arnaldo Carvalho de Melo - Arnaldo > Thanks, > Namhyung > > > > --- > > tools/perf/Makefile.perf | 15 +++++++++++++-- > > tools/perf/util/Build | 2 +- > > 2 files changed, 14 insertions(+), 3 deletions(-) > > > > diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf > > index 37af6df7b978..14dedd11a1f5 100644 > > --- a/tools/perf/Makefile.perf > > +++ b/tools/perf/Makefile.perf > > @@ -443,6 +443,15 @@ drm_ioctl_tbl := $(srctree)/tools/perf/trace/beauty/drm_ioctl.sh > > # Create output directory if not already present > > _dummy := $(shell [ -d '$(beauty_ioctl_outdir)' ] || mkdir -p '$(beauty_ioctl_outdir)') > > > > +arm64_gen_sysreg_dir := $(srctree)/tools/arch/arm64/tools > > + > > +arm64-sysreg-defs: FORCE > > + $(Q)$(MAKE) -C $(arm64_gen_sysreg_dir) > > + > > +arm64-sysreg-defs-clean: > > + $(call QUIET_CLEAN,arm64-sysreg-defs) > > + $(Q)$(MAKE) -C $(arm64_gen_sysreg_dir) clean > /dev/null > > + > > $(drm_ioctl_array): $(drm_hdr_dir)/drm.h $(drm_hdr_dir)/i915_drm.h $(drm_ioctl_tbl) > > $(Q)$(SHELL) '$(drm_ioctl_tbl)' $(drm_hdr_dir) > $@ > > > > @@ -716,7 +725,9 @@ endif > > __build-dir = $(subst $(OUTPUT),,$(dir $@)) > > build-dir = $(or $(__build-dir),.) > > > > -prepare: $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)common-cmds.h archheaders $(drm_ioctl_array) \ > > +prepare: $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)common-cmds.h archheaders \ > > + arm64-sysreg-defs \ > > + $(drm_ioctl_array) \ > > $(fadvise_advice_array) \ > > $(fsconfig_arrays) \ > > $(fsmount_arrays) \ > > @@ -1125,7 +1136,7 @@ endif # BUILD_BPF_SKEL > > bpf-skel-clean: > > $(call QUIET_CLEAN, bpf-skel) $(RM) -r $(SKEL_TMP_OUT) $(SKELETONS) > > > > -clean:: $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD)-clean $(LIBSYMBOL)-clean $(LIBPERF)-clean fixdep-clean python-clean bpf-skel-clean tests-coresight-targets-clean > > +clean:: $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD)-clean $(LIBSYMBOL)-clean $(LIBPERF)-clean arm64-sysreg-defs-clean fixdep-clean python-clean bpf-skel-clean tests-coresight-targets-clean > > $(call QUIET_CLEAN, core-objs) $(RM) $(LIBPERF_A) $(OUTPUT)perf-archive $(OUTPUT)perf-iostat $(LANG_BINDINGS) > > $(Q)find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete > > $(Q)$(RM) $(OUTPUT).config-detected > > diff --git a/tools/perf/util/Build b/tools/perf/util/Build > > index 6d657c9927f7..2f76230958ad 100644 > > --- a/tools/perf/util/Build > > +++ b/tools/perf/util/Build > > @@ -345,7 +345,7 @@ CFLAGS_rbtree.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ET > > CFLAGS_libstring.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))" > > CFLAGS_hweight.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))" > > CFLAGS_header.o += -include $(OUTPUT)PERF-VERSION-FILE > > -CFLAGS_arm-spe.o += -I$(srctree)/tools/arch/arm64/include/ > > +CFLAGS_arm-spe.o += -I$(srctree)/tools/arch/arm64/include/ -I$(srctree)/tools/arch/arm64/include/generated/ > > > > $(OUTPUT)util/argv_split.o: ../lib/argv_split.c FORCE > > $(call rule_mkdir) > > -- > > 2.42.0.609.gbb76f46606-goog > > -- - Arnaldo 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 2CCEFCDB482 for ; Wed, 18 Oct 2023 14:13:30 +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=vlwiS6eVPuQHTKjRTWqRDHfC7efpVLOpDUqu1JdSkbA=; b=i69yxTfjyqMrsP PCzk9FdUqIkYdn3Baudi1eW47byjj9rlNfZecqx/U7YH9t0jqIEQ5Z4t8w3MN5cxg/mVT57uhXMVJ IFwMhJk1x/HPoaRGysWQWRmAxdwLYzpgOJLFetsiBRH9Ln2jKm/ZaL+ImFgvbwoaPWs6+E14uPu67 qk1c8E56j0NP0Qq53YtvCVKunxmlsTeyqle26WKHqgdlFWNWN/tnWJbRrLfhX84Sgz5k66vcgFq6i SMf6lg0qs43oTUX0rrxvnB3e6fEyXSmRZ5emPjIVuMXFYKEqmSsC2TcqZo4VZ5qoAI7Y945wirltS YTOxiWTGn85q6KB+4reQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qt7IL-00Erg2-0w; Wed, 18 Oct 2023 14:13:09 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qt7IE-00Erc5-2U for linux-arm-kernel@bombadil.infradead.org; Wed, 18 Oct 2023 14:13:02 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; 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; bh=DV7of7h2edg8wItbHBTer2yzh1X/6LqLzsIPcjcoy2M=; b=divc7YDJ0VLjEcFvdYrxmhK+7+ k4T7ddOsFxlqWS69eiKkaDKnSa46zIC6PQc0c0wXe8ANWwy2hTr5Hzp3WugrX8nlSzpDjytFCApme w7+tnAIYqAzAuBbhuS6EA8S1sd6NxbLKJ22SWXpq3TD8lt9MgHj/F8IfatSvrEXPuUhQhc9ght5pE eao2AOSzJkUtdGmVcUurySt0kDFiRzh9BQDsLVqNTsswPlcOYFfnMo8LXRJXduSnmmeI+nzgdzM8h ogn9PeUWlLYb9EshWTZ7E7t2PPWysQaQ87TlSNCyCmcaoJXuxSZTumTPmUw6bYYaqK1+7pWcQLv3R 088jXipQ==; Received: from [179.97.37.151] (helo=quaco.ghostprotocols.net) by desiato.infradead.org with esmtpsa (Exim 4.96 #2 (Red Hat Linux)) id 1qt7I9-008Af8-2j; Wed, 18 Oct 2023 14:12:59 +0000 Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id A57F140016; Wed, 18 Oct 2023 11:12:53 -0300 (-03) Date: Wed, 18 Oct 2023 11:12:53 -0300 From: Arnaldo Carvalho de Melo To: Namhyung Kim Cc: Oliver Upton , kvm@vger.kernel.org, kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, Mark Brown , Jing Zhang , Zenghui Yu , Suzuki K Poulose , James Morse , Marc Zyngier , Paolo Bonzini , Adrian Hunter , Ian Rogers , Jiri Olsa , Alexander Shishkin , Mark Rutland , Ingo Molnar , Peter Zijlstra Subject: Re: [PATCH v3 2/5] perf build: Generate arm64's sysreg-defs.h and add to include path Message-ID: References: <20231011195740.3349631-1-oliver.upton@linux.dev> <20231011195740.3349631-3-oliver.upton@linux.dev> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-Url: http://acmel.wordpress.com 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 RW0gVHVlLCBPY3QgMTcsIDIwMjMgYXQgMDM6MjM6NDBQTSAtMDcwMCwgTmFtaHl1bmcgS2ltIGVz Y3JldmV1Ogo+IEhlbGxvLAo+IAo+IE9uIFdlZCwgT2N0IDExLCAyMDIzIGF0IDEyOjU44oCvUE0g T2xpdmVyIFVwdG9uIDxvbGl2ZXIudXB0b25AbGludXguZGV2PiB3cm90ZToKPiA+Cj4gPiBTdGFy dCBnZW5lcmF0aW5nIHN5c3JlZy1kZWZzLmggaW4gYW50aWNpcGF0aW9uIG9mIHVwZGF0aW5nIHN5 c3JlZy5oIHRvIGEKPiA+IHZlcnNpb24gdGhhdCBuZWVkcyB0aGUgZ2VuZXJhdGVkIG91dHB1dC4K PiA+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBPbGl2ZXIgVXB0b24gPG9saXZlci51cHRvbkBsaW51eC5k ZXY+Cj4gCj4gSXQgc2VlbXMgd2UgYWxzbyBuZWVkIHRoaXMgb24gbm9uLUFSTSBhcmNocyB0byBw cm9jZXNzIEFSTSBTUEUgZGF0YS4KPiAKPiBBY2tlZC1ieTogTmFtaHl1bmcgS2ltIDxuYW1oeXVu Z0BrZXJuZWwub3JnPgoKV2hlbiBidWlsZGluZyB3aXRoIENPUkVTSUdIVD0xLCB5ZXMuCgpJIGhh dmUgaXQgaW4gbXkgdGVzdHMgYW5kOgoK4qyiW2FjbWVAdG9vbGJveCBwZXJmLXRvb2xzLW5leHRd JCBscyAtbGEgL3RtcC9idWlsZC9wZXJmLXRvb2xzLW5leHQvdXRpbC9hcm0tc3BlLm8KLXJ3LXIt LXItLS4gMSBhY21lIGFjbWUgMTM1NDMyIE9jdCAxNyAxNjo0OSAvdG1wL2J1aWxkL3BlcmYtdG9v bHMtbmV4dC91dGlsL2FybS1zcGUubwrirKJbYWNtZUB0b29sYm94IHBlcmYtdG9vbHMtbmV4dF0k IGxkZCAvdG1wL2J1aWxkL3BlcmYtdG9vbHMtbmV4dC9wZXJmIHwgZ3JlcCBjc2QKCWxpYm9wZW5j c2RfY19hcGkuc28uMSA9PiAvbGliNjQvbGlib3BlbmNzZF9jX2FwaS5zby4xICgweDAwMDA3ZjM2 YmZjYTUwMDApCglsaWJvcGVuY3NkLnNvLjEgPT4gL2xpYjY0L2xpYm9wZW5jc2Quc28uMSAoMHgw MDAwN2YzNmJlMmUwMDAwKQrirKJbYWNtZUB0b29sYm94IHBlcmYtdG9vbHMtbmV4dF0kIHJwbSAt cWYgL2xpYjY0L2xpYm9wZW5jc2Quc28uMQpvcGVuY3NkLTEuMy4zLTEuZmMzOC54ODZfNjQK4qyi W2FjbWVAdG9vbGJveCBwZXJmLXRvb2xzLW5leHRdJCBycG0gLXEgLS1xZiAiJXtzdW1tYXJ5fVxu IiBvcGVuY3NkCkFuIG9wZW4gc291cmNlIENvcmVTaWdodCh0bSkgVHJhY2UgRGVjb2RlIGxpYnJh cnkK4qyiW2FjbWVAdG9vbGJveCBwZXJmLXRvb2xzLW5leHRdJAoKV2VsbCwgZG91YmxlIGNoZWNr ZWQgYW5kIGFybS1zcGUubyBpcyBidWlsdCBieSBkZWZhdWx0LCBvbmx5IHdheSB0bwpkaXNhYmxl IGl0IGlzIHVzaW5nIE5PX0FVWFRSQUNFPTEgaW4gdGhlIG1ha2UgY29tbWFuZCBsaW5lLCBidXQg dGhlbgpJSVJDIG9uZSBuZWVkcyBsaW5raW5nIHdpdGggb3BlbmNzZCB0byBkZWNvZGUgYWxsIHRo b3NlIHRyYWNlcywgcmlnaHQ/CgpBbnl3YXk6CgpBY2tlZC1ieTogQXJuYWxkbyBDYXJ2YWxobyBk ZSBNZWxvIDxhY21lQHJlZGhhdC5jb20+CgotIEFybmFsZG8KIAo+IFRoYW5rcywKPiBOYW1oeXVu Zwo+IAo+IAo+ID4gLS0tCj4gPiAgdG9vbHMvcGVyZi9NYWtlZmlsZS5wZXJmIHwgMTUgKysrKysr KysrKysrKy0tCj4gPiAgdG9vbHMvcGVyZi91dGlsL0J1aWxkICAgIHwgIDIgKy0KPiA+ICAyIGZp bGVzIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4gPgo+ID4gZGlm ZiAtLWdpdCBhL3Rvb2xzL3BlcmYvTWFrZWZpbGUucGVyZiBiL3Rvb2xzL3BlcmYvTWFrZWZpbGUu cGVyZgo+ID4gaW5kZXggMzdhZjZkZjdiOTc4Li4xNGRlZGQxMWExZjUgMTAwNjQ0Cj4gPiAtLS0g YS90b29scy9wZXJmL01ha2VmaWxlLnBlcmYKPiA+ICsrKyBiL3Rvb2xzL3BlcmYvTWFrZWZpbGUu cGVyZgo+ID4gQEAgLTQ0Myw2ICs0NDMsMTUgQEAgZHJtX2lvY3RsX3RibCA6PSAkKHNyY3RyZWUp L3Rvb2xzL3BlcmYvdHJhY2UvYmVhdXR5L2RybV9pb2N0bC5zaAo+ID4gICMgQ3JlYXRlIG91dHB1 dCBkaXJlY3RvcnkgaWYgbm90IGFscmVhZHkgcHJlc2VudAo+ID4gIF9kdW1teSA6PSAkKHNoZWxs IFsgLWQgJyQoYmVhdXR5X2lvY3RsX291dGRpciknIF0gfHwgbWtkaXIgLXAgJyQoYmVhdXR5X2lv Y3RsX291dGRpciknKQo+ID4KPiA+ICthcm02NF9nZW5fc3lzcmVnX2RpciA6PSAkKHNyY3RyZWUp L3Rvb2xzL2FyY2gvYXJtNjQvdG9vbHMKPiA+ICsKPiA+ICthcm02NC1zeXNyZWctZGVmczogRk9S Q0UKPiA+ICsgICAgICAgJChRKSQoTUFLRSkgLUMgJChhcm02NF9nZW5fc3lzcmVnX2RpcikKPiA+ ICsKPiA+ICthcm02NC1zeXNyZWctZGVmcy1jbGVhbjoKPiA+ICsgICAgICAgJChjYWxsIFFVSUVU X0NMRUFOLGFybTY0LXN5c3JlZy1kZWZzKQo+ID4gKyAgICAgICAkKFEpJChNQUtFKSAtQyAkKGFy bTY0X2dlbl9zeXNyZWdfZGlyKSBjbGVhbiA+IC9kZXYvbnVsbAo+ID4gKwo+ID4gICQoZHJtX2lv Y3RsX2FycmF5KTogJChkcm1faGRyX2RpcikvZHJtLmggJChkcm1faGRyX2RpcikvaTkxNV9kcm0u aCAkKGRybV9pb2N0bF90YmwpCj4gPiAgICAgICAgICQoUSkkKFNIRUxMKSAnJChkcm1faW9jdGxf dGJsKScgJChkcm1faGRyX2RpcikgPiAkQAo+ID4KPiA+IEBAIC03MTYsNyArNzI1LDkgQEAgZW5k aWYKPiA+ICBfX2J1aWxkLWRpciA9ICQoc3Vic3QgJChPVVRQVVQpLCwkKGRpciAkQCkpCj4gPiAg YnVpbGQtZGlyICAgPSAkKG9yICQoX19idWlsZC1kaXIpLC4pCj4gPgo+ID4gLXByZXBhcmU6ICQo T1VUUFVUKVBFUkYtVkVSU0lPTi1GSUxFICQoT1VUUFVUKWNvbW1vbi1jbWRzLmggYXJjaGhlYWRl cnMgJChkcm1faW9jdGxfYXJyYXkpIFwKPiA+ICtwcmVwYXJlOiAkKE9VVFBVVClQRVJGLVZFUlNJ T04tRklMRSAkKE9VVFBVVCljb21tb24tY21kcy5oIGFyY2hoZWFkZXJzIFwKPiA+ICsgICAgICAg YXJtNjQtc3lzcmVnLWRlZnMgXAo+ID4gKyAgICAgICAkKGRybV9pb2N0bF9hcnJheSkgXAo+ID4g ICAgICAgICAkKGZhZHZpc2VfYWR2aWNlX2FycmF5KSBcCj4gPiAgICAgICAgICQoZnNjb25maWdf YXJyYXlzKSBcCj4gPiAgICAgICAgICQoZnNtb3VudF9hcnJheXMpIFwKPiA+IEBAIC0xMTI1LDcg KzExMzYsNyBAQCBlbmRpZiAjIEJVSUxEX0JQRl9TS0VMCj4gPiAgYnBmLXNrZWwtY2xlYW46Cj4g PiAgICAgICAgICQoY2FsbCBRVUlFVF9DTEVBTiwgYnBmLXNrZWwpICQoUk0pIC1yICQoU0tFTF9U TVBfT1VUKSAkKFNLRUxFVE9OUykKPiA+Cj4gPiAtY2xlYW46OiAkKExJQkFQSSktY2xlYW4gJChM SUJCUEYpLWNsZWFuICQoTElCU1VCQ01EKS1jbGVhbiAkKExJQlNZTUJPTCktY2xlYW4gJChMSUJQ RVJGKS1jbGVhbiBmaXhkZXAtY2xlYW4gcHl0aG9uLWNsZWFuIGJwZi1za2VsLWNsZWFuIHRlc3Rz LWNvcmVzaWdodC10YXJnZXRzLWNsZWFuCj4gPiArY2xlYW46OiAkKExJQkFQSSktY2xlYW4gJChM SUJCUEYpLWNsZWFuICQoTElCU1VCQ01EKS1jbGVhbiAkKExJQlNZTUJPTCktY2xlYW4gJChMSUJQ RVJGKS1jbGVhbiBhcm02NC1zeXNyZWctZGVmcy1jbGVhbiBmaXhkZXAtY2xlYW4gcHl0aG9uLWNs ZWFuIGJwZi1za2VsLWNsZWFuIHRlc3RzLWNvcmVzaWdodC10YXJnZXRzLWNsZWFuCj4gPiAgICAg ICAgICQoY2FsbCBRVUlFVF9DTEVBTiwgY29yZS1vYmpzKSAgJChSTSkgJChMSUJQRVJGX0EpICQo T1VUUFVUKXBlcmYtYXJjaGl2ZSAkKE9VVFBVVClwZXJmLWlvc3RhdCAkKExBTkdfQklORElOR1Mp Cj4gPiAgICAgICAgICQoUSlmaW5kICQob3IgJChPVVRQVVQpLC4pIC1uYW1lICcqLm8nIC1kZWxl dGUgLW8gLW5hbWUgJ1wuKi5jbWQnIC1kZWxldGUgLW8gLW5hbWUgJ1wuKi5kJyAtZGVsZXRlCj4g PiAgICAgICAgICQoUSkkKFJNKSAkKE9VVFBVVCkuY29uZmlnLWRldGVjdGVkCj4gPiBkaWZmIC0t Z2l0IGEvdG9vbHMvcGVyZi91dGlsL0J1aWxkIGIvdG9vbHMvcGVyZi91dGlsL0J1aWxkCj4gPiBp bmRleCA2ZDY1N2M5OTI3ZjcuLjJmNzYyMzA5NThhZCAxMDA2NDQKPiA+IC0tLSBhL3Rvb2xzL3Bl cmYvdXRpbC9CdWlsZAo+ID4gKysrIGIvdG9vbHMvcGVyZi91dGlsL0J1aWxkCj4gPiBAQCAtMzQ1 LDcgKzM0NSw3IEBAIENGTEFHU19yYnRyZWUubyAgICAgICAgKz0gLVduby11bnVzZWQtcGFyYW1l dGVyIC1ERVRDX1BFUkZDT05GSUc9IkJVSUxEX1NUUigkKEVUCj4gPiAgQ0ZMQUdTX2xpYnN0cmlu Zy5vICAgICArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLURFVENfUEVSRkNPTkZJRz0iQlVJTERf U1RSKCQoRVRDX1BFUkZDT05GSUdfU1EpKSIKPiA+ICBDRkxBR1NfaHdlaWdodC5vICAgICAgICs9 IC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtREVUQ19QRVJGQ09ORklHPSJCVUlMRF9TVFIoJChFVENf UEVSRkNPTkZJR19TUSkpIgo+ID4gIENGTEFHU19oZWFkZXIubyAgICAgICAgKz0gLWluY2x1ZGUg JChPVVRQVVQpUEVSRi1WRVJTSU9OLUZJTEUKPiA+IC1DRkxBR1NfYXJtLXNwZS5vICAgICAgICs9 IC1JJChzcmN0cmVlKS90b29scy9hcmNoL2FybTY0L2luY2x1ZGUvCj4gPiArQ0ZMQUdTX2FybS1z cGUubyAgICAgICArPSAtSSQoc3JjdHJlZSkvdG9vbHMvYXJjaC9hcm02NC9pbmNsdWRlLyAtSSQo c3JjdHJlZSkvdG9vbHMvYXJjaC9hcm02NC9pbmNsdWRlL2dlbmVyYXRlZC8KPiA+Cj4gPiAgJChP VVRQVVQpdXRpbC9hcmd2X3NwbGl0Lm86IC4uL2xpYi9hcmd2X3NwbGl0LmMgRk9SQ0UKPiA+ICAg ICAgICAgJChjYWxsIHJ1bGVfbWtkaXIpCj4gPiAtLQo+ID4gMi40Mi4wLjYwOS5nYmI3NmY0NjYw Ni1nb29nCj4gPgoKLS0gCgotIEFybmFsZG8KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFy bS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK