From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) (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 AD1851BC07A for ; Thu, 5 Dec 2024 21:40:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.51 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733434847; cv=none; b=aLo3ri6j/12OKgRvEIPrOdmOFvY5RIQwoPQQqmpjOdVrA8rwO1NpF5ZaxB51lJ8GqYL1NjLFmUDdUzZxpB5otUmwwLN6CrwWrORLdIzZPe7wrg9pos4zbEpmO0zfcZFR8Xoie25sIrEF7Y7OxU98GM+MEqmLEnvFmLYfh+6Hj2A= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733434847; c=relaxed/simple; bh=IAy04chLo3eZtgzzPRGzr2UrSR3kk3M7KZ7SaOe7jFc=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=UoDcGOFw5pAD7o/z+jEMVKeOkyfmI8/2M1jtvwhmZsQ2RsfONFs40gph1vHQ1WCXTfBPrpDl3Cym141pAPeUlYT6XNNK8sG3Erbp88HvEqPhAPAc9ebJAn9yfHs/ZC9YnX8kqvWUOUf1GZBnmaQU0cqpBuQVyOo1ezPBNCrkVS4= 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=nMWUT7rl; arc=none smtp.client-ip=209.85.216.51 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="nMWUT7rl" Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-2eed4fa2b3aso1142046a91.0 for ; Thu, 05 Dec 2024 13:40:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1733434845; x=1734039645; 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=FUO4VmwlwS9KniRNf2k+C8HeNtScfo04esFXfVztpHE=; b=nMWUT7rl4ij5gcYG6SFjVKa9GG2M8pnruCWjQFSFfWGDbv4I5GpgMeXlKZFmy1DVXT MlK+P+av/XG8o0NI0q1hSXj56TXze0EAHNs3jONvBH0u7XJ5iyfQrv/hVmO3bm2NSv8z koY4qtlyeEs6PnRNP4K635uoxoR6MHUDI3G9x9zpEraE2mbmz74hFiRlEOG+DxlI39xS YXNXg9v0Diz5ggTTs2MX9X6icv8dsVTzzC/2RX4M1cLX9GB0YYVR1quEirytc7DLnykH w2cQON7c7MVD2lCPNbTXQA8oppMs/4LELmMdf4zmlLyFNiymYVtV1EIiO6Oi6Mf5pn9K oBfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733434845; x=1734039645; 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=FUO4VmwlwS9KniRNf2k+C8HeNtScfo04esFXfVztpHE=; b=tbbHROyAxu1ODA/W4JPzKf1jzAQGnn4ysXHaazOzF6fpKkfwuhikeaEPEjUAsZdh3Q VTs6SaRPGlkRewIOkKnv4kwsadumk9ZAS/lNHTXo2H5geLcLtfi98D33id2aRC/3lKVN mE53s5oRxtVssmfd6mFjY3o0fevD7UYAHA7VWyA77Q8N1DWuATuAxacCcRC/cb9u2dgo +I77LUNi2e8i5YVG1111X7FBR2xTYp8IbHuCnn0zQOPctG+0tSIWknxrrsM270Lp7NF2 HnkJpfL32zRWK15A1sz3NjiI8qD/qFOcILb1rnnoT6fadsI8Gjp94Y4ukhEfMypKCj3f de/w== X-Forwarded-Encrypted: i=1; AJvYcCV+DoJo75pmJynrI4++R+qhEA00k7+MCn0ilxtyGLeftmuMTHHUxbS+VCcCXBIWCoT9PhMSPEKUOcf5cyBzEhA=@vger.kernel.org X-Gm-Message-State: AOJu0YzRGVEUzxuEdWJeIpY4pxguKh6KpIsnx6j/Xs2sJAwOSQwPLJ7F ZLuPjQCtgSaaEGF8kXV+fEuohKpRo6BMkp+WP6PM5OudrZplF5kQdS1vIFWMfa8= X-Gm-Gg: ASbGncvJ22+FpWajVrBStvVBLABbKB4XHb8ZhN7ZVjQ1R71sO5Ct5JOUdGV3OWh6mD4 cqS1wP+cqyU3c1qzN/60nPwOa/7AUuz2S5Ri6yW7Wn5QDA0ZrSzxHIF/ToBEY1/Q8fbfqcCMG60 da8Xiscy6AZ+5o6uogLD6rCSLVBmp5zmih0fypvja3Vf7DemV/xtydOrIN3fWakZOMRaQ29slEe 7eoxftSLkasnTIi5Q+I3z3DLhKm+J8yVOMj9336Av8t X-Google-Smtp-Source: AGHT+IF5ybXEcs76e3fOo5rpErVKtitKRm+7lczuVir2hwC784IqB0KDYLqOXuCZa4uwvcbdbJMPWQ== X-Received: by 2002:a17:90b:1dcf:b0:2ee:d96a:5816 with SMTP id 98e67ed59e1d1-2ef69e16decmr996540a91.10.1733434844979; Thu, 05 Dec 2024 13:40:44 -0800 (PST) Received: from ghost ([2601:647:6700:64d0:643d:2bb:e7d1:adbd]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2eeffcdd432sm3054184a91.2.2024.12.05.13.40.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Dec 2024 13:40:44 -0800 (PST) Date: Thu, 5 Dec 2024 13:40:42 -0800 From: Charlie Jenkins To: Andrew Jones Cc: Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Samuel Holland , linux-kselftest@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt Subject: Re: [PATCH v2] riscv: selftests: Fix warnings pointer masking test Message-ID: References: <20241204-fix_warnings_pointer_masking_tests-v2-1-1bf0c5095f58@rivosinc.com> <20241205-45c00adab2636bf26ce05f70@orel> Precedence: bulk X-Mailing-List: linux-kselftest@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 Thu, Dec 05, 2024 at 01:30:59PM -0800, Charlie Jenkins wrote: > On Thu, Dec 05, 2024 at 09:04:12AM +0100, Andrew Jones wrote: > > On Wed, Dec 04, 2024 at 06:57:10PM -0800, Charlie Jenkins wrote: > > > When compiling the pointer masking tests with -Wall this warning > > > is present: > > > > > > pointer_masking.c: In function ‘test_tagged_addr_abi_sysctl’: > > > pointer_masking.c:203:9: warning: ignoring return value of ‘pwrite’ > > > declared with attribute ‘warn_unused_result’ [-Wunused-result] > > > 203 | pwrite(fd, &value, 1, 0); | > > > ^~~~~~~~~~~~~~~~~~~~~~~~ pointer_masking.c:208:9: warning: > > > ignoring return value of ‘pwrite’ declared with attribute > > > ‘warn_unused_result’ [-Wunused-result] > > > 208 | pwrite(fd, &value, 1, 0); > > > > > > I came across this on riscv64-linux-gnu-gcc (Ubuntu > > > 11.4.0-1ubuntu1~22.04). # Testing tagged address ABI sysctl ok 57 # SKIP failed to open sysctl file ok 58 # SKIP failed to open sysctl file> > > > > > Fix this by checking that the number of bytes written equal the expected > > > number of bytes written. > > > > > > Fixes: 7470b5afd150 ("riscv: selftests: Add a pointer masking test") > > > Signed-off-by: Charlie Jenkins > > > --- > > > Changes in v2: > > > - I had ret != 2 for testing, I changed it to be ret != 1. > > > - Link to v1: https://lore.kernel.org/r/20241204-fix_warnings_pointer_masking_tests-v1-1-ea1e9665ce7a@rivosinc.com > > > --- > > > tools/testing/selftests/riscv/abi/pointer_masking.c | 19 +++++++++++++++---- > > > 1 file changed, 15 insertions(+), 4 deletions(-) > > > > > > diff --git a/tools/testing/selftests/riscv/abi/pointer_masking.c b/tools/testing/selftests/riscv/abi/pointer_masking.c > > > index dee41b7ee3e3..229d85ccff50 100644 > > > --- a/tools/testing/selftests/riscv/abi/pointer_masking.c > > > +++ b/tools/testing/selftests/riscv/abi/pointer_masking.c > > > @@ -189,6 +189,7 @@ static void test_tagged_addr_abi_sysctl(void) > > > { > > > char value; > > > int fd; > > > + int ret; > > > > > > ksft_print_msg("Testing tagged address ABI sysctl\n"); > > > > > > @@ -200,14 +201,24 @@ static void test_tagged_addr_abi_sysctl(void) > > > } > > > > > > value = '1'; > > > - pwrite(fd, &value, 1, 0); > > > + ret = pwrite(fd, &value, 1, 0); > > > + if (ret != 1) { > > > + ksft_test_result_fail("Write to /proc/sys/abi/tagged_addr_disabled failed.\n"); > > > + return; > > > + } > > > + > > > ksft_test_result(set_tagged_addr_ctrl(min_pmlen, true) == -EINVAL, > > > "sysctl disabled\n"); > > > > > > value = '0'; > > > - pwrite(fd, &value, 1, 0); > > > - ksft_test_result(set_tagged_addr_ctrl(min_pmlen, true) == 0, > > > - "sysctl enabled\n"); > > > + ret = pwrite(fd, &value, 1, 0); > > > + if (ret != 1) { > > > + ksft_test_result_fail("Write to /proc/sys/abi/tagged_addr_disabled failed.\n"); > > > + return; > > > + } > > > > Could make a wrapper function for pwrite() to avoid duplicating the ret > > value check. > > I'll change it to a goto statement to avoid duplicating the > ksft_test_result_fail call. > > > > > > + > > > + ksft_test_result(set_tagged_addr_ctrl(min_pmlen, true) == -EINVAL, > > > + "sysctl disabled\n"); > > > > Why is this changed from expecting 0 for the return and being the > > "sysctrl enabled" test? We still write '0' to tagged_addr_disabled here. > > Silly copy mistake, thank you! > > > > > > > > > set_tagged_addr_ctrl(0, false); > > > > > > > > > --- > > > base-commit: 40384c840ea1944d7c5a392e8975ed088ecf0b37 > > > change-id: 20241204-fix_warnings_pointer_masking_tests-3860e4f35429 > > > -- > > > - Charlie > > > > > > > Not part of this patch, but now that I looked at > > test_tagged_addr_abi_sysctl() I see that > > ksft_test_result_skip() is duplicated. > > Oh huh I hadn't noticed that. I'll send a patch for that I guess, easy > fix. Oh wait, there are two skips because there are two ksft_test_result() in this function. I guess I should make it so that if the first pwrite() fails (for the sysctl disabled test) it should skip the "sysctl enabled" test. - Charlie > > - Charlie > > > > > Thanks, > > drew > > > > > > > > _______________________________________________ > > > linux-riscv mailing list > > > linux-riscv@lists.infradead.org > > > http://lists.infradead.org/mailman/listinfo/linux-riscv 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 84A1CE77170 for ; Thu, 5 Dec 2024 21:40:55 +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=8VvTvWuRs+IJEH0NQw4Y60Ob+p9kDSS1g8qKbkXTjb0=; b=cXgJVGpz4frxvc 9jOb2oGVUJxcxEbpLR9lDVHbkt6xNFLmotSHU/Y6/rm/ypHlnh1x1iPiGH8gn5xlEdAVWCUkc3Yw8 MIi0UFklaO97kXskeVhn+HLMlhgiwyaXw6O/Z+1WybtKEeJFTMcaiJXfc31HBil63syB0a+bjhCAv ow2tansSBGsfU8Ob9VJatjLx98Bx5C+3R7Kb3uuOfXCDn2boAiSGhuqdydLpsc341WWn6sxZEhdid TMt0cVVEcxr2uQgXUdANLmhioGULTK3LM/Ff3ncTuSv1hXZYI8HUlZl32k0KAoQPYibIZAaSp9reb SMGrCATpnoz9cD5aHsRg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tJJab-0000000HQ4w-3iO1; Thu, 05 Dec 2024 21:40:49 +0000 Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tJJaZ-0000000HQ4U-0kCS for linux-riscv@lists.infradead.org; Thu, 05 Dec 2024 21:40:48 +0000 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-2ee4f78493aso1123975a91.3 for ; Thu, 05 Dec 2024 13:40:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1733434845; x=1734039645; 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=FUO4VmwlwS9KniRNf2k+C8HeNtScfo04esFXfVztpHE=; b=qGgT6Dte2iqqbHS/KrXndFFqmhIVb7AwqsJhkKOyLVA54iJd1HvFgmhk0yiAagA+l8 hJSuQ+84zNdLyRH0Czwg/BoVJehV62mzB1KqkMWpfERmhonKJeZk4S3HW6FTEgagma+Q QLDwdUrszyD+gCf+zEUDJW0KTcylAuzfl4jRqCgo3IHa4SUFi2/0cO0F/J0QTUROFgFg jLTgG4EWJu1NqvH1GcbzNw2CFYLngnWMEr4fX/HLTxs5BLSoKneqB5s4qq7y0PZwwN+f bmPTICVNDa5dCxa03E1rakEJ85vp7MIQo+MbKEvqIOgx52KN8z8K9tsB3jyjefxer2/c yfFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733434845; x=1734039645; 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=FUO4VmwlwS9KniRNf2k+C8HeNtScfo04esFXfVztpHE=; b=tkfhf2P5Y/a4fWuUomZhya5RDWwECPKYxNM5bPIqDJYwaW2lTKpev+2Xvm2tVmBdLb lJk4W1jUdsz8gxDwoYAazJtKnsHJvOvBKplp9QQ6F544T34EwPMj14rpe0uSRMWaCo3o Eivcuw4V/LI/KPRH1Vghep7tQ88cb7sEzQEQ0PnAmYeei6/gbUPR5Xw8gK3v9DnvpOpZ NMfFHEamcMbFYdOzyXYskNtxh1Iffnkf+CbhsgKmO44UoK89ZybY+eHmMH6WrS/rtTDQ xHlsPkx5hattTkTBspbkpmKs4nR7K64sZC1k1yi5qSf/e//bovbAn0Mn/8MwDXBjLwI2 NVvw== X-Forwarded-Encrypted: i=1; AJvYcCVecH1mgPs7TkucphHK3tdmTGWDs7mc0zMamoAYevbYM434ZonHKu5id6+23GBYpdKNh3opc9HAjskY4A==@lists.infradead.org X-Gm-Message-State: AOJu0YwTjwk+ZDyhHiLm8pX/Ubz3I0Bp2Ml1xiky0jq66lb4EBv3uTGT edbltEhilfKEQi49MTvt/QvjodvzKAw6MdMjc3qum3MNOnI0Nbh8yxfqL/CNEK8= X-Gm-Gg: ASbGncu9j98VDobWNKM9qDzvV93HbHyaJKj53WvcCiMGiSwVi9CmNRUdCSaOrrPuxvv yHAV8ioFLOcIR0FpJhrJCbc4r8KDXhzrepPoynxQAGXlwa5MLlnjY9PUVmIv+AUzz2UQTisVcHa 64z6LEQGySzrxpULxMoUoHzLFCVzfQi9YvTej5sjmQedGIKlQtcZh1MQhEFO0q/sk4hO2wULN2E 9z3DOvwhejo6yB9OonJg1z3Kp1OcOK4gZsSEyxFUU+u X-Google-Smtp-Source: AGHT+IF5ybXEcs76e3fOo5rpErVKtitKRm+7lczuVir2hwC784IqB0KDYLqOXuCZa4uwvcbdbJMPWQ== X-Received: by 2002:a17:90b:1dcf:b0:2ee:d96a:5816 with SMTP id 98e67ed59e1d1-2ef69e16decmr996540a91.10.1733434844979; Thu, 05 Dec 2024 13:40:44 -0800 (PST) Received: from ghost ([2601:647:6700:64d0:643d:2bb:e7d1:adbd]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2eeffcdd432sm3054184a91.2.2024.12.05.13.40.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Dec 2024 13:40:44 -0800 (PST) Date: Thu, 5 Dec 2024 13:40:42 -0800 From: Charlie Jenkins To: Andrew Jones Cc: Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Samuel Holland , linux-kselftest@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt Subject: Re: [PATCH v2] riscv: selftests: Fix warnings pointer masking test Message-ID: References: <20241204-fix_warnings_pointer_masking_tests-v2-1-1bf0c5095f58@rivosinc.com> <20241205-45c00adab2636bf26ce05f70@orel> 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-20241205_134047_366735_F0F2263D X-CRM114-Status: GOOD ( 31.94 ) 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 T24gVGh1LCBEZWMgMDUsIDIwMjQgYXQgMDE6MzA6NTlQTSAtMDgwMCwgQ2hhcmxpZSBKZW5raW5z IHdyb3RlOgo+IE9uIFRodSwgRGVjIDA1LCAyMDI0IGF0IDA5OjA0OjEyQU0gKzAxMDAsIEFuZHJl dyBKb25lcyB3cm90ZToKPiA+IE9uIFdlZCwgRGVjIDA0LCAyMDI0IGF0IDA2OjU3OjEwUE0gLTA4 MDAsIENoYXJsaWUgSmVua2lucyB3cm90ZToKPiA+ID4gV2hlbiBjb21waWxpbmcgdGhlIHBvaW50 ZXIgbWFza2luZyB0ZXN0cyB3aXRoIC1XYWxsIHRoaXMgd2FybmluZwo+ID4gPiBpcyBwcmVzZW50 Ogo+ID4gPiAKPiA+ID4gcG9pbnRlcl9tYXNraW5nLmM6IEluIGZ1bmN0aW9uIOKAmHRlc3RfdGFn Z2VkX2FkZHJfYWJpX3N5c2N0bOKAmToKPiA+ID4gcG9pbnRlcl9tYXNraW5nLmM6MjAzOjk6IHdh cm5pbmc6IGlnbm9yaW5nIHJldHVybiB2YWx1ZSBvZiDigJhwd3JpdGXigJkKPiA+ID4gZGVjbGFy ZWQgd2l0aCBhdHRyaWJ1dGUg4oCYd2Fybl91bnVzZWRfcmVzdWx04oCZIFstV3VudXNlZC1yZXN1 bHRdCj4gPiA+ICAgMjAzIHwgICAgICAgICBwd3JpdGUoZmQsICZ2YWx1ZSwgMSwgMCk7IHwKPiA+ ID4gICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+IHBvaW50ZXJfbWFza2luZy5jOjIwODo5 OiB3YXJuaW5nOgo+ID4gPiBpZ25vcmluZyByZXR1cm4gdmFsdWUgb2Yg4oCYcHdyaXRl4oCZIGRl Y2xhcmVkIHdpdGggYXR0cmlidXRlCj4gPiA+IOKAmHdhcm5fdW51c2VkX3Jlc3VsdOKAmSBbLVd1 bnVzZWQtcmVzdWx0XQo+ID4gPiAgIDIwOCB8ICAgICAgICAgcHdyaXRlKGZkLCAmdmFsdWUsIDEs IDApOwo+ID4gPiAKPiA+ID4gSSBjYW1lIGFjcm9zcyB0aGlzIG9uIHJpc2N2NjQtbGludXgtZ251 LWdjYyAoVWJ1bnR1Cj4gPiA+IDExLjQuMC0xdWJ1bnR1MX4yMi4wNCkuCiMgVGVzdGluZyB0YWdn ZWQgYWRkcmVzcyBBQkkgc3lzY3RsCm9rIDU3ICMgU0tJUCBmYWlsZWQgdG8gb3BlbiBzeXNjdGwg ZmlsZQpvayA1OCAjIFNLSVAgZmFpbGVkIHRvIG9wZW4gc3lzY3RsIGZpbGU+ID4gPiAKPiA+ID4g Rml4IHRoaXMgYnkgY2hlY2tpbmcgdGhhdCB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gZXF1 YWwgdGhlIGV4cGVjdGVkCj4gPiA+IG51bWJlciBvZiBieXRlcyB3cml0dGVuLgo+ID4gPiAKPiA+ ID4gRml4ZXM6IDc0NzBiNWFmZDE1MCAoInJpc2N2OiBzZWxmdGVzdHM6IEFkZCBhIHBvaW50ZXIg bWFza2luZyB0ZXN0IikKPiA+ID4gU2lnbmVkLW9mZi1ieTogQ2hhcmxpZSBKZW5raW5zIDxjaGFy bGllQHJpdm9zaW5jLmNvbT4KPiA+ID4gLS0tCj4gPiA+IENoYW5nZXMgaW4gdjI6Cj4gPiA+IC0g SSBoYWQgcmV0ICE9IDIgZm9yIHRlc3RpbmcsIEkgY2hhbmdlZCBpdCB0byBiZSByZXQgIT0gMS4K PiA+ID4gLSBMaW5rIHRvIHYxOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9yLzIwMjQxMjA0LWZp eF93YXJuaW5nc19wb2ludGVyX21hc2tpbmdfdGVzdHMtdjEtMS1lYTFlOTY2NWNlN2FAcml2b3Np bmMuY29tCj4gPiA+IC0tLQo+ID4gPiAgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcmlzY3YvYWJp L3BvaW50ZXJfbWFza2luZy5jIHwgMTkgKysrKysrKysrKysrKysrLS0tLQo+ID4gPiAgMSBmaWxl IGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBk aWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcmlzY3YvYWJpL3BvaW50ZXJfbWFz a2luZy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcmlzY3YvYWJpL3BvaW50ZXJfbWFza2lu Zy5jCj4gPiA+IGluZGV4IGRlZTQxYjdlZTNlMy4uMjI5ZDg1Y2NmZjUwIDEwMDY0NAo+ID4gPiAt LS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9yaXNjdi9hYmkvcG9pbnRlcl9tYXNraW5nLmMK PiA+ID4gKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcmlzY3YvYWJpL3BvaW50ZXJfbWFz a2luZy5jCj4gPiA+IEBAIC0xODksNiArMTg5LDcgQEAgc3RhdGljIHZvaWQgdGVzdF90YWdnZWRf YWRkcl9hYmlfc3lzY3RsKHZvaWQpCj4gPiA+ICB7Cj4gPiA+ICAJY2hhciB2YWx1ZTsKPiA+ID4g IAlpbnQgZmQ7Cj4gPiA+ICsJaW50IHJldDsKPiA+ID4gIAo+ID4gPiAgCWtzZnRfcHJpbnRfbXNn KCJUZXN0aW5nIHRhZ2dlZCBhZGRyZXNzIEFCSSBzeXNjdGxcbiIpOwo+ID4gPiAgCj4gPiA+IEBA IC0yMDAsMTQgKzIwMSwyNCBAQCBzdGF0aWMgdm9pZCB0ZXN0X3RhZ2dlZF9hZGRyX2FiaV9zeXNj dGwodm9pZCkKPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4gIAl2YWx1ZSA9ICcxJzsKPiA+ID4gLQlw d3JpdGUoZmQsICZ2YWx1ZSwgMSwgMCk7Cj4gPiA+ICsJcmV0ID0gcHdyaXRlKGZkLCAmdmFsdWUs IDEsIDApOwo+ID4gPiArCWlmIChyZXQgIT0gMSkgewo+ID4gPiArCQlrc2Z0X3Rlc3RfcmVzdWx0 X2ZhaWwoIldyaXRlIHRvIC9wcm9jL3N5cy9hYmkvdGFnZ2VkX2FkZHJfZGlzYWJsZWQgZmFpbGVk LlxuIik7Cj4gPiA+ICsJCXJldHVybjsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gIAlrc2Z0X3Rl c3RfcmVzdWx0KHNldF90YWdnZWRfYWRkcl9jdHJsKG1pbl9wbWxlbiwgdHJ1ZSkgPT0gLUVJTlZB TCwKPiA+ID4gIAkJCSAic3lzY3RsIGRpc2FibGVkXG4iKTsKPiA+ID4gIAo+ID4gPiAgCXZhbHVl ID0gJzAnOwo+ID4gPiAtCXB3cml0ZShmZCwgJnZhbHVlLCAxLCAwKTsKPiA+ID4gLQlrc2Z0X3Rl c3RfcmVzdWx0KHNldF90YWdnZWRfYWRkcl9jdHJsKG1pbl9wbWxlbiwgdHJ1ZSkgPT0gMCwKPiA+ ID4gLQkJCSAic3lzY3RsIGVuYWJsZWRcbiIpOwo+ID4gPiArCXJldCA9IHB3cml0ZShmZCwgJnZh bHVlLCAxLCAwKTsKPiA+ID4gKwlpZiAocmV0ICE9IDEpIHsKPiA+ID4gKwkJa3NmdF90ZXN0X3Jl c3VsdF9mYWlsKCJXcml0ZSB0byAvcHJvYy9zeXMvYWJpL3RhZ2dlZF9hZGRyX2Rpc2FibGVkIGZh aWxlZC5cbiIpOwo+ID4gPiArCQlyZXR1cm47Cj4gPiA+ICsJfQo+ID4gCj4gPiBDb3VsZCBtYWtl IGEgd3JhcHBlciBmdW5jdGlvbiBmb3IgcHdyaXRlKCkgdG8gYXZvaWQgZHVwbGljYXRpbmcgdGhl IHJldAo+ID4gdmFsdWUgY2hlY2suCj4gCj4gSSdsbCBjaGFuZ2UgaXQgdG8gYSBnb3RvIHN0YXRl bWVudCB0byBhdm9pZCBkdXBsaWNhdGluZyB0aGUKPiBrc2Z0X3Rlc3RfcmVzdWx0X2ZhaWwgY2Fs bC4KPiAKPiA+IAo+ID4gPiArCj4gPiA+ICsJa3NmdF90ZXN0X3Jlc3VsdChzZXRfdGFnZ2VkX2Fk ZHJfY3RybChtaW5fcG1sZW4sIHRydWUpID09IC1FSU5WQUwsCj4gPiA+ICsJCQkgInN5c2N0bCBk aXNhYmxlZFxuIik7Cj4gPiAKPiA+IFdoeSBpcyB0aGlzIGNoYW5nZWQgZnJvbSBleHBlY3Rpbmcg MCBmb3IgdGhlIHJldHVybiBhbmQgYmVpbmcgdGhlCj4gPiAic3lzY3RybCBlbmFibGVkIiB0ZXN0 PyBXZSBzdGlsbCB3cml0ZSAnMCcgdG8gdGFnZ2VkX2FkZHJfZGlzYWJsZWQgaGVyZS4KPiAKPiBT aWxseSBjb3B5IG1pc3Rha2UsIHRoYW5rIHlvdSEKPiAKPiA+IAo+ID4gPiAgCj4gPiA+ICAJc2V0 X3RhZ2dlZF9hZGRyX2N0cmwoMCwgZmFsc2UpOwo+ID4gPiAgCj4gPiA+IAo+ID4gPiAtLS0KPiA+ ID4gYmFzZS1jb21taXQ6IDQwMzg0Yzg0MGVhMTk0NGQ3YzVhMzkyZTg5NzVlZDA4OGVjZjBiMzcK PiA+ID4gY2hhbmdlLWlkOiAyMDI0MTIwNC1maXhfd2FybmluZ3NfcG9pbnRlcl9tYXNraW5nX3Rl c3RzLTM4NjBlNGYzNTQyOQo+ID4gPiAtLSAKPiA+ID4gLSBDaGFybGllCj4gPiA+Cj4gPiAKPiA+ IE5vdCBwYXJ0IG9mIHRoaXMgcGF0Y2gsIGJ1dCBub3cgdGhhdCBJIGxvb2tlZCBhdAo+ID4gdGVz dF90YWdnZWRfYWRkcl9hYmlfc3lzY3RsKCkgSSBzZWUgdGhhdAo+ID4ga3NmdF90ZXN0X3Jlc3Vs dF9za2lwKCkgaXMgZHVwbGljYXRlZC4KPiAKPiBPaCBodWggSSBoYWRuJ3Qgbm90aWNlZCB0aGF0 LiBJJ2xsIHNlbmQgYSBwYXRjaCBmb3IgdGhhdCBJIGd1ZXNzLCBlYXN5Cj4gZml4LgoKT2ggd2Fp dCwgdGhlcmUgYXJlIHR3byBza2lwcyBiZWNhdXNlIHRoZXJlIGFyZSB0d28ga3NmdF90ZXN0X3Jl c3VsdCgpIGluCnRoaXMgZnVuY3Rpb24uIEkgZ3Vlc3MgSSBzaG91bGQgbWFrZSBpdCBzbyB0aGF0 IGlmIHRoZSBmaXJzdCBwd3JpdGUoKQpmYWlscyAoZm9yIHRoZSBzeXNjdGwgZGlzYWJsZWQgdGVz dCkgaXQgc2hvdWxkIHNraXAgdGhlICJzeXNjdGwgZW5hYmxlZCIKdGVzdC4KCi0gQ2hhcmxpZQoK PiAKPiAtIENoYXJsaWUKPiAKPiA+IAo+ID4gVGhhbmtzLAo+ID4gZHJldwo+ID4gCj4gPiA+IAo+ ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4g PiBsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKPiA+ID4gbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFk ZWFkLm9yZwo+ID4gPiBodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LXJpc2N2CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJp c2N2Cg==