From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 90AD31FAC51 for ; Wed, 18 Dec 2024 20:57:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734555462; cv=none; b=f73lYo9zdrRavKFm5Tw28BlpqXq96lBFWrAtMqFZjOA0EUVYE1DhblYjjajT8k7Hhw7pVMf4IGWo0vR3CXoZMegGGE8bqbsZp9mwq9csnbwQxxDSVxmFPcmlEcBfbNupLVzoD3/lsWg55bY1qlOFNZIJgTS8RYOfZJ0ILwT+liE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734555462; c=relaxed/simple; bh=8H3wMQ/MbfGoC09L1FK6owB/PgM/HCZEYV5FlSKzB9k=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=A0ObmZxUKUii9PSUiHK3OEHm4/Klp1txKnNpFzLyygTclprOTJImy/5OFb9AKBSTD74j6nYGHKdFlSiXzJmUqUoQME7Irhsz7UJUcYBbzkD2Zz+nmd/RDtOfDRyO+hQWLnDtI6anWmdD7hF1VPEPMuFwXai8kB9us8JwUrTuL5w= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b=aUsulFri; arc=none smtp.client-ip=209.85.214.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b="aUsulFri" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-216728b1836so1124365ad.0 for ; Wed, 18 Dec 2024 12:57:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1734555460; x=1735160260; darn=vger.kernel.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=DnlzBZ1bNkNrCyadScSxNwpP2f0bFLt+gzSGc7X//Xk=; b=aUsulFriOiUJHlAIMnRUPoQ+THfbjjbAh35BHX5+D288HYeeU1MOk1t8G89qb90YQI t3Q4bkmhJtuBlOZgzUhODG+21ZAzgwEnzgyOoIuM1B3c47wqUH7rfI0PCCLYlPLSuLJF 5dDjQsP3VAY+a+vLV/4KXm2+cpLceLZHTunP3d5tXBrnXkHyYZctm5IGk0AKdNpCfRGy R6jOIDf1nyleZlb4dkaEeUeO0DwZCVQ0Ya30mjKB75vUNCGEaSlAXciHgVHCKEjON+7h mwZuQYJPZg8XVMuq0rG8/lfQPzYzeeWkDqHLmGo2/ZhlCQPFAa0kKuG3i88tZMxNceR7 ui+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734555460; x=1735160260; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=DnlzBZ1bNkNrCyadScSxNwpP2f0bFLt+gzSGc7X//Xk=; b=WUjiwAs5v8YIbXC5PGDExlgdd/KTvbRRsPoGMwXmu8dJAPLRZ0fc3tbWQzpqtfvxbx z8+ZIlxp/RR1aJ5poX6zd/IgQSG4CT6gR1/XjjD0zeCRLOsdUHl2FqdpAdx4slScQN7v HgDUjHEW/LXYiqkSyO7bFxAqW60YiMsO+uknazGHzp8LMOldrPZwssZKkHXvn3BKYJUT yVTg8eXq82cvJVt3+BAWeb0M6bWtVpeJKMGC9IUCqYJVOJ5RJzeT6lOMAWduxNqCx2jY wwYggL/1tBOXA+TF4kpFEqvngvPOpxplYpZZ1Xp5dfnmS+NirtxKYGrBqb3i7F3fDLz9 kL+A== X-Forwarded-Encrypted: i=1; AJvYcCVh2RMQS4CYhA3jRya9wSpURW1y0w8i84yheLjzZwnBFjpUPbdBs89z1AoTme9pBX9Gf9pPGoQ9Jp1giOdPK0z2@vger.kernel.org X-Gm-Message-State: AOJu0YydIJMDImbEqetuFlLI84ZVGh7hsHVC+DR8Nx+t2RTwDQx4O8yi GZHXAL6J0IAK4RQ9+tKNoVMaRjnLtE7IkMUdXaB5nan3o6ng2FdB7JeC1NkM1aQ= X-Gm-Gg: ASbGncuKEM+5R7rjgG6KWlqmyID/0BFQqRty4XEIXI+r3BiYNifH/fUPB6u5cy1DTvb VVU8ahWtW84m6keHswvWN+L3OrEyWiGzb+PC6nM3+GQ2lDRQTS7h7H9FwmV/V47dg+NFR50R3ok L/qrNz8mOS064X5U8Fp13tVO3jZlQQcfLRinPh+CQHKZzeZr8eTuzaxfCbDOTFQ8B7WchCw03uF kH6x0QIG/6TGgmZQufB0tfbJ/tIyNwCJ/oRu8ZgB/3JwaE= X-Google-Smtp-Source: AGHT+IFbrr3Ugx9sJuxckBLXykfeFQB9mdy4wgUJpUjJFCoKZYBQ4+1F1qUWmiA9nhDeXvGo84jWaQ== X-Received: by 2002:a17:902:e741:b0:216:386e:dbc with SMTP id d9443c01a7336-218d6fdfd08mr57672385ad.13.1734555459502; Wed, 18 Dec 2024 12:57:39 -0800 (PST) Received: from ghost ([50.145.13.30]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-218a1e5437asm80558955ad.162.2024.12.18.12.57.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Dec 2024 12:57:38 -0800 (PST) Date: Wed, 18 Dec 2024 12:57:36 -0800 From: Charlie Jenkins To: Arnaldo Carvalho de Melo Cc: Ian Rogers , Peter Zijlstra , Ingo Molnar , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Adrian Hunter , Paul Walmsley , Palmer Dabbelt , Albert Ou , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org Subject: Re: [PATCH v2] tools: perf: tests: Fix code reading for riscv Message-ID: References: <20241217-perf_fix_riscv_obj_reading-v2-1-58f81b7b4c7d@rivosinc.com> Precedence: bulk X-Mailing-List: linux-perf-users@vger.kernel.org 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: On Wed, Dec 18, 2024 at 03:41:32PM -0300, Arnaldo Carvalho de Melo wrote: > On Tue, Dec 17, 2024 at 04:30:15PM -0800, Charlie Jenkins wrote: > > On Tue, Dec 17, 2024 at 04:18:32PM -0800, Ian Rogers wrote: > > > On Tue, Dec 17, 2024 at 3:52 PM Charlie Jenkins wrote: > > > > After binutils commit e43d876 which was first included in binutils 2.41, > > > > riscv no longer supports dumping in the middle of instructions. Increase > > > > the objdump window by 2-bytes to ensure that any instruction that sits > > > > on the boundary of the specified stop-address is not cut in half. > > > > > Signed-off-by: Charlie Jenkins > > > > Reviewed-by: Ian Rogers > > > > > A binutils patch has been sent as well to fix this in objdump [1]. > > > > > Link: https://sourceware.org/pipermail/binutils/2024-December/138139.html [1] > > > > > Changes in v2: > > > > - Do objdump version detection at runtime (Ian) > > > > - Link to v1: https://lore.kernel.org/r/20241216-perf_fix_riscv_obj_reading-v1-0-b75962660a9b@rivosinc.com > > > > > --- a/tools/perf/tests/code-reading.c > > > > @@ -183,9 +244,30 @@ static int read_via_objdump(const char *filename, u64 addr, void *buf, > > > > const char *fmt; > > > > FILE *f; > > > > int ret; > > > > + u64 stop_address = addr + len; > > > > + > > > > + if (IS_ENABLED(__riscv)) { > > > > Not sure if there is a consistency issue here. Elsewhere we're just > > > using ifdef, such as: > > > https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/util/include/dwarf-regs.h?h=perf-tools-next#n69 > > > I don't have any strong feelings about that. I can change it to be an > > ifdef. On other lists I have been told to use IS_ENABLED whenever > > possible, but it's only a small difference. > > Can't we just use uname here? > > So that we don't use kconfig.h since its not used in tools/perf/ and > makes it looks like perf is in lockstep with the kernel source tree > version it was compiled from? > > $ git grep kconfig.h tools/perf/ > $ > > BTW, what would happen if I collected a perf.data file on x86_64 and > would read it in a RiscV machine with such a objdump version? The same > problem? Yes that's a good point, we should be detecting riscv at runtime too. - Charlie > > - 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 4043BE77187 for ; Wed, 18 Dec 2024 20:57:52 +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=vM2anBHFfJsenVEvrf5wQM31cDBtxp9SQvVPj1F7gcE=; b=mhCk8mmTpWxt3V 4efvfaiKRUpa90oVjOt1VdD0/Mjv67fBSp/Jyy3jMGRe1MxHEfIsr0Vz3zlTosZiWtPoboOrVu/H1 +iSM0tZiBwDGj5M7RoEj2QLDNlQSe8nxcroLXujiISY1Wm7gcigZp9QdvSzWHjiD721M0Tat/Ldgy 7067bvb/fPI2kcV1S3khVzyyGfuoKGE2Lqm1IiLj8yUTo166T2xAk9aIkIMVHwyWyuxj9i5dUotF7 /cJmeNb7B8x7L86CN0/JZAzKnBCFdx0aLPzBDCQZ5Vuo4TOmT1EAgp1BMCFioGBXwFeUyCxS/b1RJ S4E3jYoEBV/tJzV+OywA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tO171-000000005Ct-0JhE; Wed, 18 Dec 2024 20:57:43 +0000 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tO16y-000000005CB-2VJR for linux-riscv@lists.infradead.org; Wed, 18 Dec 2024 20:57:42 +0000 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-21654fdd5daso1050955ad.1 for ; Wed, 18 Dec 2024 12:57:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1734555460; x=1735160260; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=DnlzBZ1bNkNrCyadScSxNwpP2f0bFLt+gzSGc7X//Xk=; b=YHQzibwQQJCVrgWBvVTALXpIx9aGtdS3z9KFc0BGuGnBm8YjCELW3m9mswvG4xOKFQ 0l4rcKbw4836+mouMuazdRO9JBzI/5cV7EtluNcGZavoEbqYATsdKoiZGuvM2KbWPb2Z nNBlD/F6Bt007qwxdnp0jylxqqoi3oFBcI9U4q/hwNgcL35oBOYJexSwxVGdl8lV/G6D dUcvV0j0M5t14i7z5X69FrubaOJyfqDLUUU+7Iz7R01UvpPz6ilOYZ2XcFj1224SfQsu Zvt90ART3Rr9RcPxrLSjD6kfp8phcAOq28DDOw9H6QszOQfZPok+6R/8p+grPXR/OV+l iYRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734555460; x=1735160260; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=DnlzBZ1bNkNrCyadScSxNwpP2f0bFLt+gzSGc7X//Xk=; b=irpQBDfv0ICed14w3icmN7nDlNhrjJVLLcDq32EYkRx49h/RGP+SVaiHGNOsNXJ/eU jMiCqwHDnA6OnIVsVDI3KKUW/6BgQj+wylGs2Kivs2ciGDEKMaJuEJBXLS5LWcnEF/bf GzmcBpRjPxHQTZNn8YE/wDZfWaRj0vc8QgRtFc+o02oms9q1YtFvTEr6L/I+38R0dj7x z4elBkHNL+7cteOQ/PWHvjufkEkyap2SFcO/9sk/slO+HykXItUU8qmAydAJo5hzGYzX ivFSpPDFyWET1b0g0OBHAMODp5RvftvhlwdDK2RgOqrTUZZWS+sazAFc1n5WXBi9aZP7 KG2Q== X-Forwarded-Encrypted: i=1; AJvYcCWmB30NumE0AkBXlEfchFEQF6hGAnJmoy//sfjK1q5vcUhgdvroVlpjaImL30q7wDiy+aG5olHWrsqG/Q==@lists.infradead.org X-Gm-Message-State: AOJu0YwUAP6VtB72tRkG1PfEDHKtcmhmd3DHwgh3FSDeNSwlh8Ys5NF9 Sg7PD9Y4Eg73xDQsuD7fjRjJmdfG9Y3A4JnbDgbBwxkLecG7OfJu3P+obtiAopk= X-Gm-Gg: ASbGncvwhrqpfv2t5MUc1Msii+NbmTUo8Ai+Jh4xMx2FhdJ4E+6u7CdrkJZIoI+RyWI RAx1IBDOmgzcHf986kCAECvbZEB/SdIvqLJoJscWUj8uNL7+2RtNGIhMkZR7Ai7l5xK7gvxL3kl GnX0y27Q7E3sWDGRkXlL8OtwG5cEsD9PEh/gWgppW08SSlpHG0sbeIlZHL7jO2i9f4k/wAC62lI 2hUM95h81TiVW5PLn4j+iLM6r8lEtrBudAlT5UQMenO7SA= X-Google-Smtp-Source: AGHT+IFbrr3Ugx9sJuxckBLXykfeFQB9mdy4wgUJpUjJFCoKZYBQ4+1F1qUWmiA9nhDeXvGo84jWaQ== X-Received: by 2002:a17:902:e741:b0:216:386e:dbc with SMTP id d9443c01a7336-218d6fdfd08mr57672385ad.13.1734555459502; Wed, 18 Dec 2024 12:57:39 -0800 (PST) Received: from ghost ([50.145.13.30]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-218a1e5437asm80558955ad.162.2024.12.18.12.57.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Dec 2024 12:57:38 -0800 (PST) Date: Wed, 18 Dec 2024 12:57:36 -0800 From: Charlie Jenkins To: Arnaldo Carvalho de Melo Cc: Ian Rogers , Peter Zijlstra , Ingo Molnar , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Adrian Hunter , Paul Walmsley , Palmer Dabbelt , Albert Ou , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org Subject: Re: [PATCH v2] tools: perf: tests: Fix code reading for riscv Message-ID: References: <20241217-perf_fix_riscv_obj_reading-v2-1-58f81b7b4c7d@rivosinc.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241218_125740_725447_97F354BB X-CRM114-Status: GOOD ( 28.10 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gV2VkLCBEZWMgMTgsIDIwMjQgYXQgMDM6NDE6MzJQTSAtMDMwMCwgQXJuYWxkbyBDYXJ2YWxo byBkZSBNZWxvIHdyb3RlOgo+IE9uIFR1ZSwgRGVjIDE3LCAyMDI0IGF0IDA0OjMwOjE1UE0gLTA4 MDAsIENoYXJsaWUgSmVua2lucyB3cm90ZToKPiA+IE9uIFR1ZSwgRGVjIDE3LCAyMDI0IGF0IDA0 OjE4OjMyUE0gLTA4MDAsIElhbiBSb2dlcnMgd3JvdGU6Cj4gPiA+IE9uIFR1ZSwgRGVjIDE3LCAy MDI0IGF0IDM6NTLigK9QTSBDaGFybGllIEplbmtpbnMgPGNoYXJsaWVAcml2b3NpbmMuY29tPiB3 cm90ZToKPiA+ID4gPiBBZnRlciBiaW51dGlscyBjb21taXQgZTQzZDg3NiB3aGljaCB3YXMgZmly c3QgaW5jbHVkZWQgaW4gYmludXRpbHMgMi40MSwKPiA+ID4gPiByaXNjdiBubyBsb25nZXIgc3Vw cG9ydHMgZHVtcGluZyBpbiB0aGUgbWlkZGxlIG9mIGluc3RydWN0aW9ucy4gSW5jcmVhc2UKPiA+ ID4gPiB0aGUgb2JqZHVtcCB3aW5kb3cgYnkgMi1ieXRlcyB0byBlbnN1cmUgdGhhdCBhbnkgaW5z dHJ1Y3Rpb24gdGhhdCBzaXRzCj4gPiA+ID4gb24gdGhlIGJvdW5kYXJ5IG9mIHRoZSBzcGVjaWZp ZWQgc3RvcC1hZGRyZXNzIGlzIG5vdCBjdXQgaW4gaGFsZi4KPiAKPiA+ID4gPiBTaWduZWQtb2Zm LWJ5OiBDaGFybGllIEplbmtpbnMgPGNoYXJsaWVAcml2b3NpbmMuY29tPgo+IAo+ID4gPiBSZXZp ZXdlZC1ieTogSWFuIFJvZ2VycyA8aXJvZ2Vyc0Bnb29nbGUuY29tPgo+IAo+ID4gPiA+IEEgYmlu dXRpbHMgcGF0Y2ggaGFzIGJlZW4gc2VudCBhcyB3ZWxsIHRvIGZpeCB0aGlzIGluIG9iamR1bXAg WzFdLgo+IAo+ID4gPiA+IExpbms6IGh0dHBzOi8vc291cmNld2FyZS5vcmcvcGlwZXJtYWlsL2Jp bnV0aWxzLzIwMjQtRGVjZW1iZXIvMTM4MTM5Lmh0bWwgWzFdCj4gCj4gPiA+ID4gQ2hhbmdlcyBp biB2MjoKPiA+ID4gPiAtIERvIG9iamR1bXAgdmVyc2lvbiBkZXRlY3Rpb24gYXQgcnVudGltZSAo SWFuKQo+ID4gPiA+IC0gTGluayB0byB2MTogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvci8yMDI0 MTIxNi1wZXJmX2ZpeF9yaXNjdl9vYmpfcmVhZGluZy12MS0wLWI3NTk2MjY2MGE5YkByaXZvc2lu Yy5jb20KPiAKPiA+ID4gPiAtLS0gYS90b29scy9wZXJmL3Rlc3RzL2NvZGUtcmVhZGluZy5jCj4g PiA+ID4gQEAgLTE4Myw5ICsyNDQsMzAgQEAgc3RhdGljIGludCByZWFkX3ZpYV9vYmpkdW1wKGNv bnN0IGNoYXIgKmZpbGVuYW1lLCB1NjQgYWRkciwgdm9pZCAqYnVmLAo+ID4gPiA+ICAgICAgICAg Y29uc3QgY2hhciAqZm10Owo+ID4gPiA+ICAgICAgICAgRklMRSAqZjsKPiA+ID4gPiAgICAgICAg IGludCByZXQ7Cj4gPiA+ID4gKyAgICAgICB1NjQgc3RvcF9hZGRyZXNzID0gYWRkciArIGxlbjsK PiA+ID4gPiArCj4gPiA+ID4gKyAgICAgICBpZiAoSVNfRU5BQkxFRChfX3Jpc2N2KSkgewo+IAo+ ID4gPiBOb3Qgc3VyZSBpZiB0aGVyZSBpcyBhIGNvbnNpc3RlbmN5IGlzc3VlIGhlcmUuIEVsc2V3 aGVyZSB3ZSdyZSBqdXN0Cj4gPiA+IHVzaW5nIGlmZGVmLCBzdWNoIGFzOgo+ID4gPiBodHRwczov L2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9wZXJmL3BlcmYtdG9vbHMt bmV4dC5naXQvdHJlZS90b29scy9wZXJmL3V0aWwvaW5jbHVkZS9kd2FyZi1yZWdzLmg/aD1wZXJm LXRvb2xzLW5leHQjbjY5Cj4gIAo+ID4gSSBkb24ndCBoYXZlIGFueSBzdHJvbmcgZmVlbGluZ3Mg YWJvdXQgdGhhdC4gSSBjYW4gY2hhbmdlIGl0IHRvIGJlIGFuCj4gPiBpZmRlZi4gT24gb3RoZXIg bGlzdHMgSSBoYXZlIGJlZW4gdG9sZCB0byB1c2UgSVNfRU5BQkxFRCB3aGVuZXZlcgo+ID4gcG9z c2libGUsIGJ1dCBpdCdzIG9ubHkgYSBzbWFsbCBkaWZmZXJlbmNlLgo+IAo+IENhbid0IHdlIGp1 c3QgdXNlIHVuYW1lIGhlcmU/Cj4gCj4gU28gdGhhdCB3ZSBkb24ndCB1c2Uga2NvbmZpZy5oIHNp bmNlIGl0cyBub3QgdXNlZCBpbiB0b29scy9wZXJmLyBhbmQKPiBtYWtlcyBpdCBsb29rcyBsaWtl IHBlcmYgaXMgaW4gbG9ja3N0ZXAgd2l0aCB0aGUga2VybmVsIHNvdXJjZSB0cmVlCj4gdmVyc2lv biBpdCB3YXMgY29tcGlsZWQgZnJvbT8KPiAKPiAkIGdpdCBncmVwIGtjb25maWcuaCB0b29scy9w ZXJmLwo+ICQKPiAKPiBCVFcsIHdoYXQgd291bGQgaGFwcGVuIGlmIEkgY29sbGVjdGVkIGEgcGVy Zi5kYXRhIGZpbGUgb24geDg2XzY0IGFuZAo+IHdvdWxkIHJlYWQgaXQgaW4gYSBSaXNjViBtYWNo aW5lIHdpdGggc3VjaCBhIG9iamR1bXAgdmVyc2lvbj8gVGhlIHNhbWUKPiBwcm9ibGVtPwoKWWVz IHRoYXQncyBhIGdvb2QgcG9pbnQsIHdlIHNob3VsZCBiZSBkZXRlY3RpbmcgcmlzY3YgYXQgcnVu dGltZSB0b28uCgotIENoYXJsaWUKCj4gCj4gLSBBcm5hbGRvCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGlu dXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==