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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 175FDC00140 for ; Wed, 10 Aug 2022 13:37:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232356AbiHJNhk (ORCPT ); Wed, 10 Aug 2022 09:37:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48840 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231854AbiHJNhj (ORCPT ); Wed, 10 Aug 2022 09:37:39 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4F6E9642CA; Wed, 10 Aug 2022 06:37:38 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 0BE29B81C11; Wed, 10 Aug 2022 13:37:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5B3E5C433D6; Wed, 10 Aug 2022 13:37:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1660138655; bh=BCT9siJ0phFlpvN0VulM+8XMMYtLtAqqfNjnsK71SuE=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=V1gnsfxYkIRAlDn1A0U+6+kXrAKQYdKnfLBnu7T5hbxy+yK625eckli+X+7KiuCjf 6BYgu2BW97ptwgF4zmqS/wr77JacLkRao4KPWUGN+aTm/sMe0B3QGmUOafqAOT9aQD 9bH6yOcSshqKrcwoXmtGRH1RxSpMIZoLR/8H299hBAfyeQtE8mKWO1abHy95bsML0N Fkk18wHDhx+L3S3E4z6guw02aRCDZnQzqxERxb0Cv6dGpZ7ucHFdnGprph56ImEDwa 5RHSMy1aAl4FGfnTvzQyNl35VWhor3i5ty4ltI24H5Hzc9sKw7TUhZ5GrACNgCErmu gCUAE4M2g/3Fg== Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id 5E8044035A; Wed, 10 Aug 2022 10:37:32 -0300 (-03) Date: Wed, 10 Aug 2022 10:37:32 -0300 From: Arnaldo Carvalho de Melo To: Leo Yan Cc: Peter Zijlstra , Ingo Molnar , Mark Rutland , Jiri Olsa , Namhyung Kim , Ian Rogers , John Garry , Will Deacon , James Clark , German Gomez , Ali Saidi , Joe Mario , Adam Li , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v5 00/17] perf c2c: Support data source and display for Arm64 Message-ID: References: <20220604042820.2270916-1-leo.yan@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20220604042820.2270916-1-leo.yan@linaro.org> X-Url: http://acmel.wordpress.com Precedence: bulk List-ID: X-Mailing-List: linux-perf-users@vger.kernel.org Em Sat, Jun 04, 2022 at 12:28:03PM +0800, Leo Yan escreveu: > Arm64 Neoverse CPUs supports data source in Arm SPE trace, this allows > us to detect cache line contention and transfers. > > This patch set includes Ali's patch set v9 "perf: arm-spe: Decode SPE > source and use for perf c2c" [1] and rebased on the latest perf core > banch with latest commit 1bcca2b1bd67 ("perf vendor events intel: > Update metrics for Alderlake"). > > Patches 01-05 comes from Ali's patch set to support data source for Arm > SPE for neoverse cores. Leo, please remove touching the kernel perf_event.h on the first patch, I see it doesn't affect the kernel right now as it is done just from synthesizing perf records from hw trace data, and we haven't received any review comment from Peter Zijlstra (I think he is in vacations). Also please refresh it: ⬢[acme@toolbox perf]$ git am ./v5_20220604_leo_yan_perf_c2c_support_data_source_and_display_for_arm64.mbx Applying: perf: Add SNOOP_PEER flag to perf mem data struct Applying: perf tools: sync addition of PERF_MEM_SNOOPX_PEER Applying: perf mem: Print snoop peer flag Applying: perf arm-spe: Don't set data source if it's not a memory operation error: patch failed: tools/perf/util/arm-spe.c:387 error: tools/perf/util/arm-spe.c: patch does not apply Patch failed at 0004 perf arm-spe: Don't set data source if it's not a memory operation hint: Use 'git am --show-current-patch=diff' to see the failed patch When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort". ⬢[acme@toolbox perf]$ - Arnaldo > Patches 06-17 are patches from patch set v4 for support perf c2c peer > display for Arm64 [2]. > > This patch set has been verified for both x86 perf memory events and Arm > SPE events. > > [1] https://lore.kernel.org/lkml/20220517020326.18580-1-alisaidi@amazon.com/ > [2] https://lore.kernel.org/lkml/20220530114036.3225544-1-leo.yan@linaro.org/ > > Changes from v4: > * Included Ali's patch set for adding data source in Arm SPE samples; > * Added Ian's ACK and Ali's review and test tags; > * Update document for the default peer dispaly for Arm64 (Ali). > > Changes from v3: > * Changed to display remote and local peer accesses (Joe); > * Fixed the usage info for display types (Joe); > * Do not display HITM dimensions when use 'peer' display, and HITM > display doesn't show any 'peer' dimensions (James); > * Split to smaller patches for adding dimensions of peer operations; > * Updated documentation to reflect the latest GUI and stdio. > > Changes from v2: > * Updated patch 04 to account metrics for both cache level and ld_peer > for PEER flag; > * Updated document for metric 'rmt_hit' which is accounted for all > remote accesses (include remote DRAM and any upward caches). > > Changes from v1: > * Updated patches 01, 02 and 03 to support 'N/A' metrics for store > operations, so can align with the patch set [1] for store samples. > > > Ali Saidi (3): > perf: Add SNOOP_PEER flag to perf mem data struct > perf tools: sync addition of PERF_MEM_SNOOPX_PEER > perf arm-spe: Use SPE data source for neoverse cores > > Leo Yan (14): > perf mem: Print snoop peer flag > perf arm-spe: Don't set data source if it's not a memory operation > perf mem: Add statistics for peer snooping > perf c2c: Output statistics for peer snooping > perf c2c: Add dimensions for peer load operations > perf c2c: Add dimensions of peer metrics for cache line view > perf c2c: Add mean dimensions for peer operations > perf c2c: Use explicit names for display macros > perf c2c: Rename dimension from 'percent_hitm' to > 'percent_costly_snoop' > perf c2c: Refactor node header > perf c2c: Refactor display string > perf c2c: Sort on peer snooping for load operations > perf c2c: Use 'peer' as default display for Arm64 > perf c2c: Update documentation for new display option 'peer' > > include/uapi/linux/perf_event.h | 2 +- > tools/include/uapi/linux/perf_event.h | 2 +- > tools/perf/Documentation/perf-c2c.txt | 31 +- > tools/perf/builtin-c2c.c | 454 ++++++++++++++---- > .../util/arm-spe-decoder/arm-spe-decoder.c | 1 + > .../util/arm-spe-decoder/arm-spe-decoder.h | 12 + > tools/perf/util/arm-spe.c | 140 +++++- > tools/perf/util/mem-events.c | 46 +- > tools/perf/util/mem-events.h | 3 + > 9 files changed, 550 insertions(+), 141 deletions(-) > > -- > 2.25.1 -- - 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 E6B27C00140 for ; Wed, 10 Aug 2022 13:39:00 +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=Ym5Anraj4fJpeu/jt0SKN8oJn1a11SmgnHPsQO73O+k=; b=mb2pdS+w0XBFPV jnWK5CMZl5EbSu4OQ5RDCiw/2adoA57Wmt6Z3TyApMb4TvQwQExZyBCawdbEHIIln062hplubzPMf AGQpBizMUx0xqEgc8fxbns2+5SNB6CsKKQkm/MFH74oC0sDjRmEtm/ESXfPlHsst2GUXtD3+nItJM bUXBIWt9IuzaCT2bWIyekxg/yREbCsuoC5bRFQot7DZoDIQPZi1r8UJDXujVqfNleuBDdqjPxJlut FRA69lCJuwUkJ2SBfT3zukSN2XGVkDAaBuhMjLSwQi27isga28FNPyWWL5A4i5affNuuvlStMBROF ocqZSRzrHqIkB2K5XSGg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oLlu6-00C4KI-DG; Wed, 10 Aug 2022 13:37:48 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oLltx-00C4IT-Fz for linux-arm-kernel@bombadil.infradead.org; Wed, 10 Aug 2022 13:37:37 +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; bh=t8e1pNVsVD2/PJBgmHsZcQXMBTI8QR1CpYn8yXqhJg4=; b=dhzjqmPlGLpAalInedRnxyYoeX w6sS+05n2rvxY7SFLQpIzqfl0oGQnoEN2RV00oerrf0HLsR2v+5R3Ac1MozcK4prR/zfPinw79wNB kpZ4YfEQhdEBhsyeRZ1EZ6DB0U/PoJv6ngncFgpuaRJJcdl8utxlogTGmh9lJMgLzY2tTpqQZzLV7 HLux9YrwydGPDHVAPIDx+gFEHyf1gfv8wb4p39wDU8UhPXLuuobWLdM1R8PWSb3DiUCyIKKdlk3Se UjmQCUTx4RfYhl8JobbSmsdBdNtWOmF33C3VG3yNxqKqh6jaWYJUCpMFrnN02JUh8ST1PK9cQfMTs c6nyHOTA==; Received: from [187.19.239.32] (helo=quaco.ghostprotocols.net) by casper.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1oLltv-00Gr34-CG; Wed, 10 Aug 2022 13:37:35 +0000 Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id 5E8044035A; Wed, 10 Aug 2022 10:37:32 -0300 (-03) Date: Wed, 10 Aug 2022 10:37:32 -0300 From: Arnaldo Carvalho de Melo To: Leo Yan Cc: Peter Zijlstra , Ingo Molnar , Mark Rutland , Jiri Olsa , Namhyung Kim , Ian Rogers , John Garry , Will Deacon , James Clark , German Gomez , Ali Saidi , Joe Mario , Adam Li , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v5 00/17] perf c2c: Support data source and display for Arm64 Message-ID: References: <20220604042820.2270916-1-leo.yan@linaro.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220604042820.2270916-1-leo.yan@linaro.org> 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 RW0gU2F0LCBKdW4gMDQsIDIwMjIgYXQgMTI6Mjg6MDNQTSArMDgwMCwgTGVvIFlhbiBlc2NyZXZl dToKPiBBcm02NCBOZW92ZXJzZSBDUFVzIHN1cHBvcnRzIGRhdGEgc291cmNlIGluIEFybSBTUEUg dHJhY2UsIHRoaXMgYWxsb3dzCj4gdXMgdG8gZGV0ZWN0IGNhY2hlIGxpbmUgY29udGVudGlvbiBh bmQgdHJhbnNmZXJzLgo+IAo+IFRoaXMgcGF0Y2ggc2V0IGluY2x1ZGVzIEFsaSdzIHBhdGNoIHNl dCB2OSAicGVyZjogYXJtLXNwZTogRGVjb2RlIFNQRQo+IHNvdXJjZSBhbmQgdXNlIGZvciBwZXJm IGMyYyIgWzFdIGFuZCByZWJhc2VkIG9uIHRoZSBsYXRlc3QgcGVyZiBjb3JlCj4gYmFuY2ggd2l0 aCBsYXRlc3QgY29tbWl0IDFiY2NhMmIxYmQ2NyAoInBlcmYgdmVuZG9yIGV2ZW50cyBpbnRlbDoK PiBVcGRhdGUgbWV0cmljcyBmb3IgQWxkZXJsYWtlIikuCj4gCj4gUGF0Y2hlcyAwMS0wNSBjb21l cyBmcm9tIEFsaSdzIHBhdGNoIHNldCB0byBzdXBwb3J0IGRhdGEgc291cmNlIGZvciBBcm0KPiBT UEUgZm9yIG5lb3ZlcnNlIGNvcmVzLgoKTGVvLCBwbGVhc2UgcmVtb3ZlIHRvdWNoaW5nIHRoZSBr ZXJuZWwgcGVyZl9ldmVudC5oIG9uIHRoZSBmaXJzdCBwYXRjaCwKSSBzZWUgaXQgZG9lc24ndCBh ZmZlY3QgdGhlIGtlcm5lbCByaWdodCBub3cgYXMgaXQgaXMgZG9uZSBqdXN0IGZyb20Kc3ludGhl c2l6aW5nIHBlcmYgcmVjb3JkcyBmcm9tIGh3IHRyYWNlIGRhdGEsIGFuZCB3ZSBoYXZlbid0IHJl Y2VpdmVkCmFueSByZXZpZXcgY29tbWVudCBmcm9tIFBldGVyIFppamxzdHJhIChJIHRoaW5rIGhl IGlzIGluIHZhY2F0aW9ucykuCgpBbHNvIHBsZWFzZSByZWZyZXNoIGl0OgoK4qyiW2FjbWVAdG9v bGJveCBwZXJmXSQgICAgICAgIGdpdCBhbSAuL3Y1XzIwMjIwNjA0X2xlb195YW5fcGVyZl9jMmNf c3VwcG9ydF9kYXRhX3NvdXJjZV9hbmRfZGlzcGxheV9mb3JfYXJtNjQubWJ4CkFwcGx5aW5nOiBw ZXJmOiBBZGQgU05PT1BfUEVFUiBmbGFnIHRvIHBlcmYgbWVtIGRhdGEgc3RydWN0CkFwcGx5aW5n OiBwZXJmIHRvb2xzOiBzeW5jIGFkZGl0aW9uIG9mIFBFUkZfTUVNX1NOT09QWF9QRUVSCkFwcGx5 aW5nOiBwZXJmIG1lbTogUHJpbnQgc25vb3AgcGVlciBmbGFnCkFwcGx5aW5nOiBwZXJmIGFybS1z cGU6IERvbid0IHNldCBkYXRhIHNvdXJjZSBpZiBpdCdzIG5vdCBhIG1lbW9yeSBvcGVyYXRpb24K ZXJyb3I6IHBhdGNoIGZhaWxlZDogdG9vbHMvcGVyZi91dGlsL2FybS1zcGUuYzozODcKZXJyb3I6 IHRvb2xzL3BlcmYvdXRpbC9hcm0tc3BlLmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5ClBhdGNoIGZh aWxlZCBhdCAwMDA0IHBlcmYgYXJtLXNwZTogRG9uJ3Qgc2V0IGRhdGEgc291cmNlIGlmIGl0J3Mg bm90IGEgbWVtb3J5IG9wZXJhdGlvbgpoaW50OiBVc2UgJ2dpdCBhbSAtLXNob3ctY3VycmVudC1w YXRjaD1kaWZmJyB0byBzZWUgdGhlIGZhaWxlZCBwYXRjaApXaGVuIHlvdSBoYXZlIHJlc29sdmVk IHRoaXMgcHJvYmxlbSwgcnVuICJnaXQgYW0gLS1jb250aW51ZSIuCklmIHlvdSBwcmVmZXIgdG8g c2tpcCB0aGlzIHBhdGNoLCBydW4gImdpdCBhbSAtLXNraXAiIGluc3RlYWQuClRvIHJlc3RvcmUg dGhlIG9yaWdpbmFsIGJyYW5jaCBhbmQgc3RvcCBwYXRjaGluZywgcnVuICJnaXQgYW0gLS1hYm9y dCIuCuKsolthY21lQHRvb2xib3ggcGVyZl0kCgotIEFybmFsZG8KIAo+IFBhdGNoZXMgMDYtMTcg YXJlIHBhdGNoZXMgZnJvbSBwYXRjaCBzZXQgdjQgZm9yIHN1cHBvcnQgcGVyZiBjMmMgcGVlcgo+ IGRpc3BsYXkgZm9yIEFybTY0IFsyXS4KPiAKPiBUaGlzIHBhdGNoIHNldCBoYXMgYmVlbiB2ZXJp ZmllZCBmb3IgYm90aCB4ODYgcGVyZiBtZW1vcnkgZXZlbnRzIGFuZCBBcm0KPiBTUEUgZXZlbnRz Lgo+IAo+IFsxXSBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzIwMjIwNTE3MDIwMzI2LjE4 NTgwLTEtYWxpc2FpZGlAYW1hem9uLmNvbS8KPiBbMl0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcv bGttbC8yMDIyMDUzMDExNDAzNi4zMjI1NTQ0LTEtbGVvLnlhbkBsaW5hcm8ub3JnLwo+IAo+IENo YW5nZXMgZnJvbSB2NDoKPiAqIEluY2x1ZGVkIEFsaSdzIHBhdGNoIHNldCBmb3IgYWRkaW5nIGRh dGEgc291cmNlIGluIEFybSBTUEUgc2FtcGxlczsKPiAqIEFkZGVkIElhbidzIEFDSyBhbmQgQWxp J3MgcmV2aWV3IGFuZCB0ZXN0IHRhZ3M7Cj4gKiBVcGRhdGUgZG9jdW1lbnQgZm9yIHRoZSBkZWZh dWx0IHBlZXIgZGlzcGFseSBmb3IgQXJtNjQgKEFsaSkuCj4gCj4gQ2hhbmdlcyBmcm9tIHYzOgo+ ICogQ2hhbmdlZCB0byBkaXNwbGF5IHJlbW90ZSBhbmQgbG9jYWwgcGVlciBhY2Nlc3NlcyAoSm9l KTsKPiAqIEZpeGVkIHRoZSB1c2FnZSBpbmZvIGZvciBkaXNwbGF5IHR5cGVzIChKb2UpOwo+ICog RG8gbm90IGRpc3BsYXkgSElUTSBkaW1lbnNpb25zIHdoZW4gdXNlICdwZWVyJyBkaXNwbGF5LCBh bmQgSElUTQo+ICAgZGlzcGxheSBkb2Vzbid0IHNob3cgYW55ICdwZWVyJyBkaW1lbnNpb25zIChK YW1lcyk7Cj4gKiBTcGxpdCB0byBzbWFsbGVyIHBhdGNoZXMgZm9yIGFkZGluZyBkaW1lbnNpb25z IG9mIHBlZXIgb3BlcmF0aW9uczsKPiAqIFVwZGF0ZWQgZG9jdW1lbnRhdGlvbiB0byByZWZsZWN0 IHRoZSBsYXRlc3QgR1VJIGFuZCBzdGRpby4KPiAKPiBDaGFuZ2VzIGZyb20gdjI6Cj4gKiBVcGRh dGVkIHBhdGNoIDA0IHRvIGFjY291bnQgbWV0cmljcyBmb3IgYm90aCBjYWNoZSBsZXZlbCBhbmQg bGRfcGVlcgo+ICAgZm9yIFBFRVIgZmxhZzsKPiAqIFVwZGF0ZWQgZG9jdW1lbnQgZm9yIG1ldHJp YyAncm10X2hpdCcgd2hpY2ggaXMgYWNjb3VudGVkIGZvciBhbGwKPiAgIHJlbW90ZSBhY2Nlc3Nl cyAoaW5jbHVkZSByZW1vdGUgRFJBTSBhbmQgYW55IHVwd2FyZCBjYWNoZXMpLgo+IAo+IENoYW5n ZXMgZnJvbSB2MToKPiAqIFVwZGF0ZWQgcGF0Y2hlcyAwMSwgMDIgYW5kIDAzIHRvIHN1cHBvcnQg J04vQScgbWV0cmljcyBmb3Igc3RvcmUKPiAgIG9wZXJhdGlvbnMsIHNvIGNhbiBhbGlnbiB3aXRo IHRoZSBwYXRjaCBzZXQgWzFdIGZvciBzdG9yZSBzYW1wbGVzLgo+IAo+IAo+IEFsaSBTYWlkaSAo Myk6Cj4gICBwZXJmOiBBZGQgU05PT1BfUEVFUiBmbGFnIHRvIHBlcmYgbWVtIGRhdGEgc3RydWN0 Cj4gICBwZXJmIHRvb2xzOiBzeW5jIGFkZGl0aW9uIG9mIFBFUkZfTUVNX1NOT09QWF9QRUVSCj4g ICBwZXJmIGFybS1zcGU6IFVzZSBTUEUgZGF0YSBzb3VyY2UgZm9yIG5lb3ZlcnNlIGNvcmVzCj4g Cj4gTGVvIFlhbiAoMTQpOgo+ICAgcGVyZiBtZW06IFByaW50IHNub29wIHBlZXIgZmxhZwo+ICAg cGVyZiBhcm0tc3BlOiBEb24ndCBzZXQgZGF0YSBzb3VyY2UgaWYgaXQncyBub3QgYSBtZW1vcnkg b3BlcmF0aW9uCj4gICBwZXJmIG1lbTogQWRkIHN0YXRpc3RpY3MgZm9yIHBlZXIgc25vb3BpbmcK PiAgIHBlcmYgYzJjOiBPdXRwdXQgc3RhdGlzdGljcyBmb3IgcGVlciBzbm9vcGluZwo+ICAgcGVy ZiBjMmM6IEFkZCBkaW1lbnNpb25zIGZvciBwZWVyIGxvYWQgb3BlcmF0aW9ucwo+ICAgcGVyZiBj MmM6IEFkZCBkaW1lbnNpb25zIG9mIHBlZXIgbWV0cmljcyBmb3IgY2FjaGUgbGluZSB2aWV3Cj4g ICBwZXJmIGMyYzogQWRkIG1lYW4gZGltZW5zaW9ucyBmb3IgcGVlciBvcGVyYXRpb25zCj4gICBw ZXJmIGMyYzogVXNlIGV4cGxpY2l0IG5hbWVzIGZvciBkaXNwbGF5IG1hY3Jvcwo+ICAgcGVyZiBj MmM6IFJlbmFtZSBkaW1lbnNpb24gZnJvbSAncGVyY2VudF9oaXRtJyB0bwo+ICAgICAncGVyY2Vu dF9jb3N0bHlfc25vb3AnCj4gICBwZXJmIGMyYzogUmVmYWN0b3Igbm9kZSBoZWFkZXIKPiAgIHBl cmYgYzJjOiBSZWZhY3RvciBkaXNwbGF5IHN0cmluZwo+ICAgcGVyZiBjMmM6IFNvcnQgb24gcGVl ciBzbm9vcGluZyBmb3IgbG9hZCBvcGVyYXRpb25zCj4gICBwZXJmIGMyYzogVXNlICdwZWVyJyBh cyBkZWZhdWx0IGRpc3BsYXkgZm9yIEFybTY0Cj4gICBwZXJmIGMyYzogVXBkYXRlIGRvY3VtZW50 YXRpb24gZm9yIG5ldyBkaXNwbGF5IG9wdGlvbiAncGVlcicKPiAKPiAgaW5jbHVkZS91YXBpL2xp bnV4L3BlcmZfZXZlbnQuaCAgICAgICAgICAgICAgIHwgICAyICstCj4gIHRvb2xzL2luY2x1ZGUv dWFwaS9saW51eC9wZXJmX2V2ZW50LmggICAgICAgICB8ICAgMiArLQo+ICB0b29scy9wZXJmL0Rv Y3VtZW50YXRpb24vcGVyZi1jMmMudHh0ICAgICAgICAgfCAgMzEgKy0KPiAgdG9vbHMvcGVyZi9i dWlsdGluLWMyYy5jICAgICAgICAgICAgICAgICAgICAgIHwgNDU0ICsrKysrKysrKysrKysrLS0t LQo+ICAuLi4vdXRpbC9hcm0tc3BlLWRlY29kZXIvYXJtLXNwZS1kZWNvZGVyLmMgICAgfCAgIDEg Kwo+ICAuLi4vdXRpbC9hcm0tc3BlLWRlY29kZXIvYXJtLXNwZS1kZWNvZGVyLmggICAgfCAgMTIg Kwo+ICB0b29scy9wZXJmL3V0aWwvYXJtLXNwZS5jICAgICAgICAgICAgICAgICAgICAgfCAxNDAg KysrKystCj4gIHRvb2xzL3BlcmYvdXRpbC9tZW0tZXZlbnRzLmMgICAgICAgICAgICAgICAgICB8 ICA0NiArLQo+ICB0b29scy9wZXJmL3V0aWwvbWVtLWV2ZW50cy5oICAgICAgICAgICAgICAgICAg fCAgIDMgKwo+ICA5IGZpbGVzIGNoYW5nZWQsIDU1MCBpbnNlcnRpb25zKCspLCAxNDEgZGVsZXRp b25zKC0pCj4gCj4gLS0gCj4gMi4yNS4xCgotLSAKCi0gQXJuYWxkbwoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5n IGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5p bmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=