From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (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 605EF1DB92E for ; Tue, 17 Dec 2024 06:44:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.178 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734417849; cv=none; b=eMs/iYt2iuhKKE7clg3oDM2lntPbwc4VqoZJVWREGhoGmShNmZAIruxFE1uHtagoUAh6XO9K41tWbuDqwd7XbvKgJYcEI6fZC6MGanFYviZZ73Q+tTYqlY5sZOyX+akWw3V3hDbd8MOsyBp1mQp5GKGDXK8tQ1fqqKmdMDOZbAQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734417849; c=relaxed/simple; bh=XM6EdApDEzksuMmtbmXfUCRcI+WD33NtLIPMOkhyeDU=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=MANFgqHenT6fxXHlnh7aBZnWHyN7lesgRzd2SEox90XXEQwYDNr5mYgCEIF8IlCip+4g18x+pk1+ayU6bukHawckA+YgU/srG1O/drtIfzJ9188AKbXBa4/fW+qhuUlLqEA1dVC4jbQxDCTriVYr/6pSiy6TSSOXfuHt9xAiUho= 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=pPJ8kf2x; arc=none smtp.client-ip=209.85.214.178 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="pPJ8kf2x" Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-21634338cfdso58641905ad.2 for ; Mon, 16 Dec 2024 22:44:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1734417847; x=1735022647; 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=sptCrX+fdOk7TfHGeXVf4O4ZKbAw/hvz5tMzXM5QRWU=; b=pPJ8kf2xnBe8hCzY7j+cNwCDDWX/xrw6NTCPVg6r/6fMr/ZyI9sfwuZ+ntElJSdTWZ ZhCeYwVODP25g9JqlF9g69CnE57SuasPlm+ZY0/r9lVUr/enbHje8ZxKfgXgXfXuDmV8 mO2Xc+LvvQ0HsnMNRlF7Pnf1Aqb3jpiF8/xw7rCugs6XAuCcSMH+H+Qpi/DSN4HwY/eG CdUxgyMQj3MJFIBo0nAWzVOAyU8BJRN64wR27IGgtc5x8GrjArGUtz3HtHx+PPuIDPUx ifGB69DweiNwetpCZuDy1R4nyKMkBNg26RYNqX5WXwMYx0dgRO7Vl9CDklcds2glDjbC OmyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734417847; x=1735022647; 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=sptCrX+fdOk7TfHGeXVf4O4ZKbAw/hvz5tMzXM5QRWU=; b=ReYR+w1/8LYLg0pHHYSWkmPs9yKc3avy3NUYEQb5aWrfigydM9OGaHKfYLny1BI9ic IryVZd4UG4PxUeR3Q6GVXXdnPqisnuuOhAusH0K27Ap7umM5eQPvZqosIBjVCu3ZiGKN lifQkN758QpqJR1IonfX8BxMDNnM0kI0eSlF+4jGW7OR2bx+1Bk3QKqrxJQPD2V33nRW vvhOpDElAeXilbjfqGui/lpzJN40cLl5hkqryL57dNfewjfb7WfJ/DC+K5xgo+7o1i/Y knuRQm96LD6RcjhwVCJblehPDbLJj5Uk2GBZhWi6JGHLZVb+vpLZn3t9ggkNwTzhlsAj g0cQ== X-Forwarded-Encrypted: i=1; AJvYcCW0fX7X5DeUPKbr9p0YC4/8gERFCr0G7Kd5Nys32R7P3TCe0YT8BmQ9oVpU7Cr6KbUc1cV+5sXXyAN1OGA=@vger.kernel.org X-Gm-Message-State: AOJu0Yz1i0hyaSkNWlmOLeMUoXFdQ4PveLJA9BR4Shyu2Xe4V+dfc3Je 733tD5bEksFKr0W3XE7Msnk5ir4z9wp98RvuzcuWs7bYNsg7R+rlpNaNipehe+I= X-Gm-Gg: ASbGncsXLB2iVha1wFPH6D8y1GCXmS1QutB7wJxfARl6L1aiENDPTUPnDaBb0fDXCu4 pGELzsVo+5tgd+3455JH5JhnBvShYRSpgGnLa6/z96sxuf/GKKxWwD0/30ygRdwgduOzfD98+BW QkFPMWY2UrGfCAnm5oOsDg8cyl7llDIWEi6jp/g63QTHG1WdJlLOK4ZDyQT7NEQtB7Tk/Yp2VMN bbrTBLMrKrSNpA60ExHXprhqRoRm0GBz+SGWHLWHv633ZSoJS8= X-Google-Smtp-Source: AGHT+IFbTJRs0BXv1Y7k1oAF2gI2HiBiChGf9jttH4DB2JoV1zZ1F2nYln3NdWZebP2jJGmxHiY0Vg== X-Received: by 2002:a17:902:cec4:b0:216:2e6d:babd with SMTP id d9443c01a7336-21892a0dfc5mr201253875ad.15.1734417846715; Mon, 16 Dec 2024 22:44:06 -0800 (PST) Received: from ghost ([2601:647:6700:64d0:9708:a71e:40e6:860]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-218a1e643d5sm53002335ad.235.2024.12.16.22.44.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Dec 2024 22:44:05 -0800 (PST) Date: Mon, 16 Dec 2024 22:44:02 -0800 From: Charlie Jenkins To: Ian Rogers Cc: Masahiro Yamada , Paul Walmsley , Palmer Dabbelt , Albert Ou , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Adrian Hunter , =?iso-8859-1?Q?Micka=EBl_Sala=FCn?= , =?iso-8859-1?Q?G=FCnther?= Noack , Nelson Chu , linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-riscv@lists.infradead.org, llvm@lists.linux.dev, linux-perf-users@vger.kernel.org, linux-security-module@vger.kernel.org Subject: Re: [PATCH 2/2] tools: perf: tests: Fix code reading for riscv Message-ID: References: <20241216-perf_fix_riscv_obj_reading-v1-0-b75962660a9b@rivosinc.com> <20241216-perf_fix_riscv_obj_reading-v1-2-b75962660a9b@rivosinc.com> Precedence: bulk X-Mailing-List: linux-kbuild@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 Mon, Dec 16, 2024 at 08:57:20PM -0800, Ian Rogers wrote: > On Mon, Dec 16, 2024 at 3:13 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 > > --- > > arch/riscv/Kconfig | 5 +++++ > > tools/perf/tests/code-reading.c | 17 ++++++++++++++++- > > Files under tools use a different Build system than the kernel. The > Kconfig value won't have an effect. Check out Makefile.config: > https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/Makefile.config?h=perf-tools-next > which is included into the build here: > https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/Makefile.perf?h=perf-tools-next#n313 > Ahh okay, thank you. It was properly enabling when I was testing, is there some bleeding over? > > 2 files changed, 21 insertions(+), 1 deletion(-) > > > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > > index d4a7ca0388c071b536df59c0eb11d55f9080c7cd..f164047471267936bc62389b7d7d9a7cbdca8f97 100644 > > --- a/arch/riscv/Kconfig > > +++ b/arch/riscv/Kconfig > > @@ -229,6 +229,11 @@ config GCC_SUPPORTS_DYNAMIC_FTRACE > > def_bool CC_IS_GCC > > depends on $(cc-option,-fpatchable-function-entry=8) > > > > +config RISCV_OBJDUMP_SUPPORTS_SPLIT_INSTRUCTION > > + # Some versions of objdump do not support dumping partial instructions > > + def_bool y > > + depends on !(OBJDUMP_IS_GNU && OBJDUMP_VERSION > 24100) > > + > > config HAVE_SHADOW_CALL_STACK > > def_bool $(cc-option,-fsanitize=shadow-call-stack) > > # https://github.com/riscv-non-isa/riscv-elf-psabi-doc/commit/a484e843e6eeb51f0cb7b8819e50da6d2444d769 > > diff --git a/tools/perf/tests/code-reading.c b/tools/perf/tests/code-reading.c > > index 27c82cfb7e7de42284bf5af9cf7594a3a963052e..605f4a8e1dbc00d8a572503f45053c2f30ad19e3 100644 > > --- a/tools/perf/tests/code-reading.c > > +++ b/tools/perf/tests/code-reading.c > > @@ -1,5 +1,6 @@ > > // SPDX-License-Identifier: GPL-2.0 > > #include > > +#include > > #include > > #include > > #include > > @@ -183,9 +184,23 @@ 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) && !IS_ENABLED(CONFIG_RISCV_OBJDUMP_SUPPORTS_SPLIT_INSTRUCTION)) { > > It would be nice if this could be a runtime rather than build time detected. Hmm that is a good point. I will change this to check the version at runtime. - Charlie > > Thanks, > Ian > > > + /* > > + * On some versions of riscv objdump, dumping in the middle of > > + * instructions is not supported. riscv instructions are aligned along > > + * 2-byte intervals and can be either 2-bytes or 4-bytes. This makes it > > + * possible that the stop-address lands in the middle of a 4-byte > > + * instruction. Increase the stop_address by two to ensure an > > + * instruction is not cut in half, but leave the len as-is so only the > > + * expected number of bytes are collected. > > + */ > > + stop_address += 2; > > + } > > > > fmt = "%s -z -d --start-address=0x%"PRIx64" --stop-address=0x%"PRIx64" %s"; > > - ret = snprintf(cmd, sizeof(cmd), fmt, test_objdump_path, addr, addr + len, > > + ret = snprintf(cmd, sizeof(cmd), fmt, test_objdump_path, addr, stop_address, > > filename); > > if (ret <= 0 || (size_t)ret >= sizeof(cmd)) > > return -1; > > > > -- > > 2.34.1 > > 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 02A07E7716A for ; Tue, 17 Dec 2024 06:59:05 +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=YCLk4UfyF2USzcR2dg81dInCyKKsXIJVhtwWxyz1ZQA=; b=x0sJ1zSLQ4ZgaT dzI/PtxSaf6hI34AS8JeAUL+4h2Fjoqi5babW6I3+lsDXMmbE9DGIfjlKhJ6E67PZU8YwI1y2temt SPyCcabG8Els1/jmAzxZMWdnRwDDbGYli47PTHexZSt2tijJnQh19CfCVxaEA3qZC+ptxahtFBvXr JsWDNrc+eqmOVWx2MmIkniZVB6K00r4mR/MZ/Mfhcf5D+1xZ3WCKgmv9jM6kIMWAdJYgK3RL1oEBP BBi2rcZttWmJssPuBYJTFJmlwBeyTuJHMKM7mqWQeiY9ljdB4pJSAXow1e9b+b/PWpPj1nzLnS0tL 5z829F//Pl7PnV+HNrXQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tNRXo-0000000CVEU-18zx; Tue, 17 Dec 2024 06:59:00 +0000 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tNRJP-0000000CS3i-1b1b for linux-riscv@lists.infradead.org; Tue, 17 Dec 2024 06:44:08 +0000 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-21644e6140cso46274615ad.1 for ; Mon, 16 Dec 2024 22:44:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1734417847; x=1735022647; 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=sptCrX+fdOk7TfHGeXVf4O4ZKbAw/hvz5tMzXM5QRWU=; b=de30Vq2ChJLFLHbwHJeu3h2V7Mj4RMFWfPu/FYcXOkdPBXRdFHvAFWDVoFrFM0XG90 eOc5q44ing54G2gJgbGR/3BJw+n5chEj9mhMDlE9DK4AfKE6P0Q6xz+Kqd4kh7vYIK+e LUVeTUBvMhWUffKy2HT/6YJWA7pTABGBbubGmb3qBTe50kJS7rC0PCH/NYbhor3JWmqG zKGR4HX/+IB6b4ZmIASk35Db1oZ8KfKKKhw9u/TA3opy7oGsmQz2MJkC3IgbZFVmKIsc YL3uNnHko+1kSpSb72N/yca7pxTKqXuu0pJ29vXFPbhMgMO9M6pJ6n/gJrNwaCTC65LX 3VpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734417847; x=1735022647; 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=sptCrX+fdOk7TfHGeXVf4O4ZKbAw/hvz5tMzXM5QRWU=; b=b5aqAolj/4h9tXhFSKEImRRkcA7uifgZqRpnqPeq5kNehP2Psu0hLt2Isk7tjZd/NM 036s16gl32AoyOIkitC5nXGZfuWc+FGrCuBg6Vy6/PAflQzy88oXl5hJSRpc9jkVwmSs +64pLyF3ZZv4Jm4UopOs+iumzOpnv39D0wftxDdtQum4kTEtDCPw/UYeatGJQwpkfmYL nz+PsDaaSwD6qc/E2DKp/8crVlzKjcDBwo0SvPMtGMJKPWPtLDAXIh1BEeIBczCjvKb3 N3GKtW4fvXe+t4vaHK6/M9w0/SBnwiA9zbBIqpisLFMxz+klpPaNq0B23+7J0ylLcseu Q3IA== X-Forwarded-Encrypted: i=1; AJvYcCXlVu4GlAgoUOFfqr6TpB/h4U3JiTaSmdGsaPBdvl7GLKDr8j520WUbx1asXn1IzOhBuWZ0Vx/BGSM9Vw==@lists.infradead.org X-Gm-Message-State: AOJu0YxDhRyUoOaeulwnWV4O8V7afRd4C8WlcwX3Ny5Zaa5mCj9p2FMu 0TnWwtOlEADnywYVPl6V0H5MEC3446ctIMtrvtwA4oCbl0JhLLUazYxpdFaSpZc= X-Gm-Gg: ASbGncu9WQ7iJsVLLFiNjgDShkQg+55dsgl4gOtrhYlVR50tESnCUktbu9JSL41S+wd yY4IxdgHYLIvd8k2btCe9O6TCVz4G0zDtFfRIPqM7pMplDPF1/pm7U0q8/lPlbn840UztB2sBUA L+g2jSdbCIKua3v19qsbKllJRoH/BWsL2MF3zNitq1No9B1rXyFzK3f/YFXEgkqVLsofjNWqMlX LhClxt8pF/c36dLl51tGOHMmYvrfYYEFfIn4JLRbXclT2md5ik= X-Google-Smtp-Source: AGHT+IFbTJRs0BXv1Y7k1oAF2gI2HiBiChGf9jttH4DB2JoV1zZ1F2nYln3NdWZebP2jJGmxHiY0Vg== X-Received: by 2002:a17:902:cec4:b0:216:2e6d:babd with SMTP id d9443c01a7336-21892a0dfc5mr201253875ad.15.1734417846715; Mon, 16 Dec 2024 22:44:06 -0800 (PST) Received: from ghost ([2601:647:6700:64d0:9708:a71e:40e6:860]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-218a1e643d5sm53002335ad.235.2024.12.16.22.44.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Dec 2024 22:44:05 -0800 (PST) Date: Mon, 16 Dec 2024 22:44:02 -0800 From: Charlie Jenkins To: Ian Rogers Cc: Masahiro Yamada , Paul Walmsley , Palmer Dabbelt , Albert Ou , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Adrian Hunter , =?iso-8859-1?Q?Micka=EBl_Sala=FCn?= , =?iso-8859-1?Q?G=FCnther?= Noack , Nelson Chu , linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-riscv@lists.infradead.org, llvm@lists.linux.dev, linux-perf-users@vger.kernel.org, linux-security-module@vger.kernel.org Subject: Re: [PATCH 2/2] tools: perf: tests: Fix code reading for riscv Message-ID: References: <20241216-perf_fix_riscv_obj_reading-v1-0-b75962660a9b@rivosinc.com> <20241216-perf_fix_riscv_obj_reading-v1-2-b75962660a9b@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-20241216_224407_418694_6FD5C21D X-CRM114-Status: GOOD ( 32.22 ) 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 T24gTW9uLCBEZWMgMTYsIDIwMjQgYXQgMDg6NTc6MjBQTSAtMDgwMCwgSWFuIFJvZ2VycyB3cm90 ZToKPiBPbiBNb24sIERlYyAxNiwgMjAyNCBhdCAzOjEz4oCvUE0gQ2hhcmxpZSBKZW5raW5zIDxj aGFybGllQHJpdm9zaW5jLmNvbT4gd3JvdGU6Cj4gPgo+ID4gQWZ0ZXIgYmludXRpbHMgY29tbWl0 IGU0M2Q4NzYgd2hpY2ggd2FzIGZpcnN0IGluY2x1ZGVkIGluIGJpbnV0aWxzIDIuNDEsCj4gPiBy aXNjdiBubyBsb25nZXIgc3VwcG9ydHMgZHVtcGluZyBpbiB0aGUgbWlkZGxlIG9mIGluc3RydWN0 aW9ucy4gSW5jcmVhc2UKPiA+IHRoZSBvYmpkdW1wIHdpbmRvdyBieSAyLWJ5dGVzIHRvIGVuc3Vy ZSB0aGF0IGFueSBpbnN0cnVjdGlvbiB0aGF0IHNpdHMKPiA+IG9uIHRoZSBib3VuZGFyeSBvZiB0 aGUgc3BlY2lmaWVkIHN0b3AtYWRkcmVzcyBpcyBub3QgY3V0IGluIGhhbGYuCj4gPgo+ID4gU2ln bmVkLW9mZi1ieTogQ2hhcmxpZSBKZW5raW5zIDxjaGFybGllQHJpdm9zaW5jLmNvbT4KPiA+IC0t LQo+ID4gIGFyY2gvcmlzY3YvS2NvbmZpZyAgICAgICAgICAgICAgfCAgNSArKysrKwo+ID4gIHRv b2xzL3BlcmYvdGVzdHMvY29kZS1yZWFkaW5nLmMgfCAxNyArKysrKysrKysrKysrKysrLQo+IAo+ IEZpbGVzIHVuZGVyIHRvb2xzIHVzZSBhIGRpZmZlcmVudCBCdWlsZCBzeXN0ZW0gdGhhbiB0aGUg a2VybmVsLiBUaGUKPiBLY29uZmlnIHZhbHVlIHdvbid0IGhhdmUgYW4gZWZmZWN0LiBDaGVjayBv dXQgTWFrZWZpbGUuY29uZmlnOgo+IGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51 eC9rZXJuZWwvZ2l0L3BlcmYvcGVyZi10b29scy1uZXh0LmdpdC90cmVlL3Rvb2xzL3BlcmYvTWFr ZWZpbGUuY29uZmlnP2g9cGVyZi10b29scy1uZXh0Cj4gd2hpY2ggaXMgaW5jbHVkZWQgaW50byB0 aGUgYnVpbGQgaGVyZToKPiBodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2Vy bmVsL2dpdC9wZXJmL3BlcmYtdG9vbHMtbmV4dC5naXQvdHJlZS90b29scy9wZXJmL01ha2VmaWxl LnBlcmY/aD1wZXJmLXRvb2xzLW5leHQjbjMxMwo+IAoKQWhoIG9rYXksIHRoYW5rIHlvdS4gSXQg d2FzIHByb3Blcmx5IGVuYWJsaW5nIHdoZW4gSSB3YXMgdGVzdGluZywgaXMKdGhlcmUgc29tZSBi bGVlZGluZyBvdmVyPwoKPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9LY29uZmlnIGIvYXJj aC9yaXNjdi9LY29uZmlnCj4gPiBpbmRleCBkNGE3Y2EwMzg4YzA3MWI1MzZkZjU5YzBlYjExZDU1 ZjkwODBjN2NkLi5mMTY0MDQ3NDcxMjY3OTM2YmM2MjM4OWI3ZDdkOWE3Y2JkY2E4Zjk3IDEwMDY0 NAo+ID4gLS0tIGEvYXJjaC9yaXNjdi9LY29uZmlnCj4gPiArKysgYi9hcmNoL3Jpc2N2L0tjb25m aWcKPiA+IEBAIC0yMjksNiArMjI5LDExIEBAIGNvbmZpZyBHQ0NfU1VQUE9SVFNfRFlOQU1JQ19G VFJBQ0UKPiA+ICAgICAgICAgZGVmX2Jvb2wgQ0NfSVNfR0NDCj4gPiAgICAgICAgIGRlcGVuZHMg b24gJChjYy1vcHRpb24sLWZwYXRjaGFibGUtZnVuY3Rpb24tZW50cnk9OCkKPiA+Cj4gPiArY29u ZmlnIFJJU0NWX09CSkRVTVBfU1VQUE9SVFNfU1BMSVRfSU5TVFJVQ1RJT04KPiA+ICsgICAgICAg IyBTb21lIHZlcnNpb25zIG9mIG9iamR1bXAgZG8gbm90IHN1cHBvcnQgZHVtcGluZyBwYXJ0aWFs IGluc3RydWN0aW9ucwo+ID4gKyAgICAgICBkZWZfYm9vbCB5Cj4gPiArICAgICAgIGRlcGVuZHMg b24gIShPQkpEVU1QX0lTX0dOVSAmJiBPQkpEVU1QX1ZFUlNJT04gPiAyNDEwMCkKPiA+ICsKPiA+ ICBjb25maWcgSEFWRV9TSEFET1dfQ0FMTF9TVEFDSwo+ID4gICAgICAgICBkZWZfYm9vbCAkKGNj LW9wdGlvbiwtZnNhbml0aXplPXNoYWRvdy1jYWxsLXN0YWNrKQo+ID4gICAgICAgICAjIGh0dHBz Oi8vZ2l0aHViLmNvbS9yaXNjdi1ub24taXNhL3Jpc2N2LWVsZi1wc2FiaS1kb2MvY29tbWl0L2E0 ODRlODQzZTZlZWI1MWYwY2I3Yjg4MTllNTBkYTZkMjQ0NGQ3NjkKPiA+IGRpZmYgLS1naXQgYS90 b29scy9wZXJmL3Rlc3RzL2NvZGUtcmVhZGluZy5jIGIvdG9vbHMvcGVyZi90ZXN0cy9jb2RlLXJl YWRpbmcuYwo+ID4gaW5kZXggMjdjODJjZmI3ZTdkZTQyMjg0YmY1YWY5Y2Y3NTk0YTNhOTYzMDUy ZS4uNjA1ZjRhOGUxZGJjMDBkOGE1NzI1MDNmNDUwNTNjMmYzMGFkMTllMyAxMDA2NDQKPiA+IC0t LSBhL3Rvb2xzL3BlcmYvdGVzdHMvY29kZS1yZWFkaW5nLmMKPiA+ICsrKyBiL3Rvb2xzL3BlcmYv dGVzdHMvY29kZS1yZWFkaW5nLmMKPiA+IEBAIC0xLDUgKzEsNiBAQAo+ID4gIC8vIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCj4gPiAgI2luY2x1ZGUgPGVycm5vLmg+Cj4gPiArI2lu Y2x1ZGUgPGxpbnV4L2tjb25maWcuaD4KPiA+ICAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Cj4g PiAgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cj4gPiAgI2luY2x1ZGUgPGludHR5cGVzLmg+Cj4g PiBAQCAtMTgzLDkgKzE4NCwyMyBAQCBzdGF0aWMgaW50IHJlYWRfdmlhX29iamR1bXAoY29uc3Qg Y2hhciAqZmlsZW5hbWUsIHU2NCBhZGRyLCB2b2lkICpidWYsCj4gPiAgICAgICAgIGNvbnN0IGNo YXIgKmZtdDsKPiA+ICAgICAgICAgRklMRSAqZjsKPiA+ICAgICAgICAgaW50IHJldDsKPiA+ICsg ICAgICAgdTY0IHN0b3BfYWRkcmVzcyA9IGFkZHIgKyBsZW47Cj4gPiArCj4gPiArICAgICAgIGlm IChJU19FTkFCTEVEKF9fcmlzY3YpICYmICFJU19FTkFCTEVEKENPTkZJR19SSVNDVl9PQkpEVU1Q X1NVUFBPUlRTX1NQTElUX0lOU1RSVUNUSU9OKSkgewo+IAo+IEl0IHdvdWxkIGJlIG5pY2UgaWYg dGhpcyBjb3VsZCBiZSBhIHJ1bnRpbWUgcmF0aGVyIHRoYW4gYnVpbGQgdGltZSBkZXRlY3RlZC4K CkhtbSB0aGF0IGlzIGEgZ29vZCBwb2ludC4gSSB3aWxsIGNoYW5nZSB0aGlzIHRvIGNoZWNrIHRo ZSB2ZXJzaW9uIGF0CnJ1bnRpbWUuCgotIENoYXJsaWUKCj4gCj4gVGhhbmtzLAo+IElhbgo+IAo+ ID4gKyAgICAgICAgICAgICAgIC8qCj4gPiArICAgICAgICAgICAgICAgICogT24gc29tZSB2ZXJz aW9ucyBvZiByaXNjdiBvYmpkdW1wLCBkdW1waW5nIGluIHRoZSBtaWRkbGUgb2YKPiA+ICsgICAg ICAgICAgICAgICAgKiBpbnN0cnVjdGlvbnMgaXMgbm90IHN1cHBvcnRlZC4gcmlzY3YgaW5zdHJ1 Y3Rpb25zIGFyZSBhbGlnbmVkIGFsb25nCj4gPiArICAgICAgICAgICAgICAgICogMi1ieXRlIGlu dGVydmFscyBhbmQgY2FuIGJlIGVpdGhlciAyLWJ5dGVzIG9yIDQtYnl0ZXMuIFRoaXMgbWFrZXMg aXQKPiA+ICsgICAgICAgICAgICAgICAgKiBwb3NzaWJsZSB0aGF0IHRoZSBzdG9wLWFkZHJlc3Mg bGFuZHMgaW4gdGhlIG1pZGRsZSBvZiBhIDQtYnl0ZQo+ID4gKyAgICAgICAgICAgICAgICAqIGlu c3RydWN0aW9uLiBJbmNyZWFzZSB0aGUgc3RvcF9hZGRyZXNzIGJ5IHR3byB0byBlbnN1cmUgYW4K PiA+ICsgICAgICAgICAgICAgICAgKiBpbnN0cnVjdGlvbiBpcyBub3QgY3V0IGluIGhhbGYsIGJ1 dCBsZWF2ZSB0aGUgbGVuIGFzLWlzIHNvIG9ubHkgdGhlCj4gPiArICAgICAgICAgICAgICAgICog ZXhwZWN0ZWQgbnVtYmVyIG9mIGJ5dGVzIGFyZSBjb2xsZWN0ZWQuCj4gPiArICAgICAgICAgICAg ICAgICovCj4gPiArICAgICAgICAgICAgICAgc3RvcF9hZGRyZXNzICs9IDI7Cj4gPiArICAgICAg IH0KPiA+Cj4gPiAgICAgICAgIGZtdCA9ICIlcyAteiAtZCAtLXN0YXJ0LWFkZHJlc3M9MHglIlBS SXg2NCIgLS1zdG9wLWFkZHJlc3M9MHglIlBSSXg2NCIgJXMiOwo+ID4gLSAgICAgICByZXQgPSBz bnByaW50ZihjbWQsIHNpemVvZihjbWQpLCBmbXQsIHRlc3Rfb2JqZHVtcF9wYXRoLCBhZGRyLCBh ZGRyICsgbGVuLAo+ID4gKyAgICAgICByZXQgPSBzbnByaW50ZihjbWQsIHNpemVvZihjbWQpLCBm bXQsIHRlc3Rfb2JqZHVtcF9wYXRoLCBhZGRyLCBzdG9wX2FkZHJlc3MsCj4gPiAgICAgICAgICAg ICAgICAgICAgICAgIGZpbGVuYW1lKTsKPiA+ICAgICAgICAgaWYgKHJldCA8PSAwIHx8IChzaXpl X3QpcmV0ID49IHNpemVvZihjbWQpKQo+ID4gICAgICAgICAgICAgICAgIHJldHVybiAtMTsKPiA+ Cj4gPiAtLQo+ID4gMi4zNC4xCj4gPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3Rz LmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1yaXNjdgo=