Received: by 2002:a05:7412:d1aa:b0:fc:a2b0:25d7 with SMTP id ba42csp1285154rdb; Tue, 30 Jan 2024 13:48:54 -0800 (PST) X-Google-Smtp-Source: AGHT+IFCo2B7z8jd3oqc+F+C9q7YlEW/tf+y3JgSX8rNr0aiYyoS9wEnimv4o2+sBnAh/os3v0MF X-Received: by 2002:a05:6a00:1949:b0:6dd:7c10:5dd4 with SMTP id s9-20020a056a00194900b006dd7c105dd4mr2360836pfk.27.1706651334529; Tue, 30 Jan 2024 13:48:54 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706651334; cv=pass; d=google.com; s=arc-20160816; b=e9wOTjhDifTQBwdr5728cD1kZMZQ7ReIbaoToUb7TAeh2JW9MvdM8+2haN1EbWNvim CyTuFVk0q5on8Ru+4q2cjJo63tWiK++Qc1Esj3cR++woFXUx4MaPeW2bQjxdDvkGLMCe P6AF8TbpsCrvICHxA72wX4n1culIqPqSLD5nJdVHWhRlq3n0uA2W+Ag4fhGWPh1Anyld iQ5RWOHlbuXUoWBfwJsEhl328UPGL+zE7H18gL7pa9DPd8eCCArdXSiA07OI6308pGZR C8Ym5QKrYCcLX4lUdt+xJSTBJ8dQg451n2tADKbYpGzGsWM4KAoODVNOJHC9pB1hqa+n aeVA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=subject:from:cc:to:content-language:user-agent:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:date:message-id :dkim-signature; bh=x3ym+Jw+wlcCZgk37z9qUcMVPU5TrgNT7xyxMT+TWbk=; fh=tZZy0R8SdvbAc0xCEMdL7cMpXQReMCaeFtpHnglFHiQ=; b=PakRfXer9HOzy5zai2ieCqqWqQfPNFgdyuMPi1kBmeI7Gm8Zoc8gYKj8fLsH7zDNyv ZcKbL7h4V9sJ/XKsoIsl2Lsy2JtCqFnRKt9Rg7fmJ38ZeZL/qWyziEWndQv245IDfNyP hFpwrdF8xCw98e+kWnzIPQBoH5K0oBP/lHn/WbUmBrDDinw9eAInrDEkmRV9DPaPZDdO AiO55u6r+Cr6yGGgP2uvN5+dLQ04uXeSKs+ab92gsSES8kyH1GC6yU/0g6fXakCMWBbo pzeZR8ydrw9aGqY4mfvSAnpWeJw2lU1P9/j+Ln2kHRuS19iLDATQeP9NfsAVQtxMGB1M hCOw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=google header.b=OES+4NOm; arc=pass (i=1 spf=pass spfdomain=linuxfoundation.org dkim=pass dkdomain=linuxfoundation.org dmarc=pass fromdomain=linuxfoundation.org); spf=pass (google.com: domain of linux-kernel+bounces-45348-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-45348-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id g20-20020a633754000000b005c65d0dd99fsi8136633pgn.505.2024.01.30.13.48.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Jan 2024 13:48:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-45348-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=google header.b=OES+4NOm; arc=pass (i=1 spf=pass spfdomain=linuxfoundation.org dkim=pass dkdomain=linuxfoundation.org dmarc=pass fromdomain=linuxfoundation.org); spf=pass (google.com: domain of linux-kernel+bounces-45348-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-45348-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 2C0B52822AD for ; Tue, 30 Jan 2024 21:48:54 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id CA0F77866D; Tue, 30 Jan 2024 21:48:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="OES+4NOm" Received: from mail-il1-f172.google.com (mail-il1-f172.google.com [209.85.166.172]) (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 5CD2278661 for ; Tue, 30 Jan 2024 21:48:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706651329; cv=none; b=YQVJPRuzxeNgYkd1U7yV/3SoK3c6Y2e4DUo1Tfd9JDRPlMliN9aCeJZ7/MtbEPLoiEgCgYL8aeYcT7+1z4IMxBwD9jTa/zSKY736OQqzP6mKXloD/M103YaGMG8ZbhriKdP9ncbA3SyNNdAjJvE6hKm5/oQB6AD2IHCkLxv/E0o= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706651329; c=relaxed/simple; bh=XQqAdxMvHb6MNyfU29+BvJQ7ft0vuK2MuXgy6bImbPA=; h=Content-Type:Message-ID:Date:MIME-Version:To:Cc:From:Subject; b=T67ovr7SqN9E7sf8UxA2nu7HsIIoO4vmBOg+Qx6ysnKDAN2B82DFZAJ5Ox4/QruJKuQnpJNQE+Zen0bBD4FrrkfZtHeaLZWKoNpMQKT6dXUlBtczMZqgqqtBjwyDEs3QQoduieh+3adNjpAK5Ug3kP+A9j1Q374BNlQ2LGPBGUg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linuxfoundation.org; spf=pass smtp.mailfrom=linuxfoundation.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=OES+4NOm; arc=none smtp.client-ip=209.85.166.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linuxfoundation.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linuxfoundation.org Received: by mail-il1-f172.google.com with SMTP id e9e14a558f8ab-363790f53e7so808675ab.0 for ; Tue, 30 Jan 2024 13:48:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=google; t=1706651324; x=1707256124; darn=vger.kernel.org; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=x3ym+Jw+wlcCZgk37z9qUcMVPU5TrgNT7xyxMT+TWbk=; b=OES+4NOmgikUOXMX16cZ/My5Tp1HKG5zz90cNo4zub1xah/zOgqa121SS5OARWwywF llZBOdja50Iqv1QfpFrb6SSXb7cGePQxRWiqkotqx/O8WAShRxaJ1LtZkqv2Yfg+okQS 4dOD5dzSXcc1LjorGZNzFvKizx8RELv8EcliY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706651324; x=1707256124; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=x3ym+Jw+wlcCZgk37z9qUcMVPU5TrgNT7xyxMT+TWbk=; b=wJyvLC5wXlibz+c75Gae/SNolR/EF735tyWDOFgnZoOvB6PG640KQE2c2TFW2NwYcJ gKFU7xoolnbVD7TMQAT1ZUvW4noTFQxEnb4W8RucfeHhEim43eoTVuQFmhG1Ao24p5fd u6MHYOsozeNkxBtC7DJ9ntSczGyA1J7ZMBjLCUSxEM7jf/o2z6CLaKF9C14EeCOLg1mH sihFK6CJ83x7kUBFd9mQ4EKmHtigFHjfZS0VAiSzeqw2MLUWQ/R4V283RjyB2in9TkLb FxSLqBBaGGIwf3nUfYV7CaGWTscSmT31A3E+O0trNXjB1VFyPhK9jb+6iwvRompadD1h ag5Q== X-Gm-Message-State: AOJu0Yx1S95JLhKmHs+TLYD4M66dzIdlI6rPY8GqDBan1Au6t34LUgy0 QfMhiJ3WA/ivrbTdeiygInLCcem80/XyNyeAEir95+sJXVKyACGVG1MdryE5jmgpagylMwfY2vI w X-Received: by 2002:a6b:f814:0:b0:7bf:4758:2a12 with SMTP id o20-20020a6bf814000000b007bf47582a12mr10394640ioh.0.1706651324389; Tue, 30 Jan 2024 13:48:44 -0800 (PST) Received: from [192.168.1.128] ([38.175.170.29]) by smtp.gmail.com with ESMTPSA id co13-20020a0566383e0d00b00470d3ede912sm795960jab.49.2024.01.30.13.48.43 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 30 Jan 2024 13:48:44 -0800 (PST) Content-Type: multipart/mixed; boundary="------------Es48IjXg70X00NumyK0dWW8k" Message-ID: <352c935d-530e-48d6-aaef-b2093066a22f@linuxfoundation.org> Date: Tue, 30 Jan 2024 14:48:43 -0700 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: Linus Torvalds Cc: shuah , Shuah Khan , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org From: Shuah Khan Subject: [GIT PULL] Kselftest fixes update for Linux 6.8-rc3 This is a multi-part message in MIME format. --------------Es48IjXg70X00NumyK0dWW8k Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi Linus, Please pull the following kselftest fixes update for Linux 6.8-rc3. This kselftest fixes update for Linux 6.8-rc3 consists of three fixes to livepatch, rseq, and seccomp tests. diff is attached thanks, -- Shuah ---------------------------------------------------------------- The following changes since commit 6613476e225e090cc9aad49be7fa504e290dd33d: Linux 6.8-rc1 (2024-01-21 14:11:32 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest tags/linux_kselftest-fixes-6.8-rc3 for you to fetch changes up to b54761f6e9773350c0d1fb8e1e5aacaba7769d0f: kselftest/seccomp: Report each expectation we assert as a KTAP test (2024-01-30 08:55:42 -0700) ---------------------------------------------------------------- linux_kselftest-fixes-6.8-rc3 This kselftest fixes update for Linux 6.8-rc3 consists of three fixes to livepatch, rseq, and seccomp tests. ---------------------------------------------------------------- Joe Lawrence (1): selftests/livepatch: fix and refactor new dmesg message code Mark Brown (2): kselftest/seccomp: Use kselftest output functions for benchmark kselftest/seccomp: Report each expectation we assert as a KTAP test Mathieu Desnoyers (1): selftests/rseq: Do not skip !allowed_cpus for mm_cid tools/testing/selftests/livepatch/functions.sh | 37 ++++---- .../testing/selftests/rseq/basic_percpu_ops_test.c | 14 ++- tools/testing/selftests/rseq/param_test.c | 22 +++-- .../testing/selftests/seccomp/seccomp_benchmark.c | 104 +++++++++++++-------- 4 files changed, 109 insertions(+), 68 deletions(-) ---------------------------------------------------------------- --------------Es48IjXg70X00NumyK0dWW8k Content-Type: text/x-patch; charset=UTF-8; name="linux_kselftest-fixes-6.8-rc3.diff" Content-Disposition: attachment; filename="linux_kselftest-fixes-6.8-rc3.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2xpdmVwYXRjaC9mdW5jdGlv bnMuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9saXZlcGF0Y2gvZnVuY3Rpb25zLnNo CmluZGV4IGM4NDE2YzU0YjQ2My4uYjFmZDczNjJjMmZlIDEwMDY0NAotLS0gYS90b29scy90 ZXN0aW5nL3NlbGZ0ZXN0cy9saXZlcGF0Y2gvZnVuY3Rpb25zLnNoCisrKyBiL3Rvb2xzL3Rl c3Rpbmcvc2VsZnRlc3RzL2xpdmVwYXRjaC9mdW5jdGlvbnMuc2gKQEAgLTQyLDE3ICs0Miw2 IEBAIGZ1bmN0aW9uIGRpZSgpIHsKIAlleGl0IDEKIH0KIAotIyBzYXZlIGV4aXN0aW5nIGRt ZXNnIHNvIHdlIGNhbiBkZXRlY3QgbmV3IGNvbnRlbnQKLWZ1bmN0aW9uIHNhdmVfZG1lc2co KSB7Ci0JU0FWRURfRE1FU0c9JChta3RlbXAgLS10bXBkaXIgLXQga2xwLWRtZXNnLVhYWFhY WCkKLQlkbWVzZyA+ICIkU0FWRURfRE1FU0ciCi19Ci0KLSMgY2xlYW51cCB0ZW1wb3Jhcnkg ZG1lc2cgZmlsZSBmcm9tIHNhdmVfZG1lc2coKQotZnVuY3Rpb24gY2xlYW51cF9kbWVzZ19m aWxlKCkgewotCXJtIC1mICIkU0FWRURfRE1FU0ciCi19Ci0KIGZ1bmN0aW9uIHB1c2hfY29u ZmlnKCkgewogCURZTkFNSUNfREVCVUc9JChncmVwICdea2VybmVsL2xpdmVwYXRjaCcgL3N5 cy9rZXJuZWwvZGVidWcvZHluYW1pY19kZWJ1Zy9jb250cm9sIHwgXAogCQkJYXdrIC1GJ1s6 IF0nICd7cHJpbnQgImZpbGUgIiAkMSAiIGxpbmUgIiAkMiAiICIgJDR9JykKQEAgLTk5LDcg Kzg4LDYgQEAgZnVuY3Rpb24gc2V0X2Z0cmFjZV9lbmFibGVkKCkgewogCiBmdW5jdGlvbiBj bGVhbnVwKCkgewogCXBvcF9jb25maWcKLQljbGVhbnVwX2RtZXNnX2ZpbGUKIH0KIAogIyBz ZXR1cF9jb25maWcgLSBzYXZlIHRoZSBjdXJyZW50IGNvbmZpZyBhbmQgc2V0IGEgc2NyaXB0 IGV4aXQgdHJhcCB0aGF0CkBAIC0yODAsNyArMjY4LDE1IEBAIGZ1bmN0aW9uIHNldF9wcmVf cGF0Y2hfcmV0IHsKIGZ1bmN0aW9uIHN0YXJ0X3Rlc3QgewogCWxvY2FsIHRlc3Q9IiQxIgog Ci0Jc2F2ZV9kbWVzZworCSMgRHVtcCBzb21ldGhpbmcgdW5pcXVlIGludG8gdGhlIGRtZXNn IGxvZywgdGhlbiBzdGFzaCB0aGUgZW50cnkKKwkjIGluIExBU1RfRE1FU0cuICBUaGUgY2hl Y2tfcmVzdWx0KCkgZnVuY3Rpb24gd2lsbCB1c2UgaXQgdG8KKwkjIGZpbmQgbmV3IGtlcm5l bCBtZXNzYWdlcyBzaW5jZSB0aGUgdGVzdCBzdGFydGVkLgorCWxvY2FsIGxhc3RfZG1lc2df bXNnPSJsaXZlcGF0Y2gga3NlbGZ0ZXN0IHRpbWVzdGFtcDogJChkYXRlIC0tcmZjLTMzMzk9 bnMpIgorCWxvZyAiJGxhc3RfZG1lc2dfbXNnIgorCWxvb3BfdW50aWwgJ2RtZXNnIHwgZ3Jl cCAtcSAiJGxhc3RfZG1lc2dfbXNnIicgfHwKKwkJZGllICJidWZmZXIgYnVzeT8gY2FuJ3Qg ZmluZCBjYW5hcnkgZG1lc2cgbWVzc2FnZTogJGxhc3RfZG1lc2dfbXNnIgorCUxBU1RfRE1F U0c9JChkbWVzZyB8IGdyZXAgIiRsYXN0X2RtZXNnX21zZyIpCisKIAllY2hvIC1uICJURVNU OiAkdGVzdCAuLi4gIgogCWxvZyAiPT09PT0gVEVTVDogJHRlc3QgPT09PT0iCiB9CkBAIC0y OTEsMjMgKzI4NywyNCBAQCBmdW5jdGlvbiBjaGVja19yZXN1bHQgewogCWxvY2FsIGV4cGVj dD0iJCoiCiAJbG9jYWwgcmVzdWx0CiAKLQkjIE5vdGU6IHdoZW4gY29tcGFyaW5nIGRtZXNn IG91dHB1dCwgdGhlIGtlcm5lbCBsb2cgdGltZXN0YW1wcwotCSMgaGVscCBkaWZmZXJlbnRp YXRlIHJlcGVhdGVkIHRlc3RpbmcgcnVucy4gIFJlbW92ZSB0aGVtIHdpdGggYQotCSMgcG9z dC1jb21wYXJpc29uIHNlZCBmaWx0ZXIuCi0KLQlyZXN1bHQ9JChkbWVzZyB8IGNvbW0gLS1u b2NoZWNrLW9yZGVyIC0xMyAiJFNBVkVEX0RNRVNHIiAtIHwgXAorCSMgVGVzdCByZXN1bHRz IGluY2x1ZGUgYW55IG5ldyBkbWVzZyBlbnRyeSBzaW5jZSBMQVNUX0RNRVNHLCB0aGVuOgor CSMgLSBpbmNsdWRlIGxpbmVzIG1hdGNoaW5nIGtleXdvcmRzCisJIyAtIGV4Y2x1ZGUgbGlu ZXMgbWF0Y2hpbmcga2V5d29yZHMKKwkjIC0gZmlsdGVyIG91dCBkbWVzZyB0aW1lc3RhbXAg cHJlZml4ZXMKKwlyZXN1bHQ9JChkbWVzZyB8IGF3ayAtdiBsYXN0X2RtZXNnPSIkTEFTVF9E TUVTRyIgJ3A7ICQwID09IGxhc3RfZG1lc2cgeyBwPTEgfScgfCBcCiAJCSBncmVwIC1lICds aXZlcGF0Y2g6JyAtZSAndGVzdF9rbHAnIHwgXAogCQkgZ3JlcCAtdiAnXCh0YWludGluZ1x8 dGFpbnRzXCkga2VybmVsJyB8IFwKIAkJIHNlZCAncy9eXFtbIDAtOS5dKlxdIC8vJykKIAog CWlmIFtbICIkZXhwZWN0IiA9PSAiJHJlc3VsdCIgXV0gOyB0aGVuCiAJCWVjaG8gIm9rIgor CWVsaWYgW1sgIiRyZXN1bHQiID09ICIiIF1dIDsgdGhlbgorCQllY2hvIC1lICJub3Qgb2tc blxuYnVmZmVyIG92ZXJydW4/IGNhbid0IGZpbmQgY2FuYXJ5IGRtZXNnIGVudHJ5OiAkTEFT VF9ETUVTR1xuIgorCQlkaWUgImxpdmVwYXRjaCBrc2VsZnRlc3QocykgZmFpbGVkIgogCWVs c2UKIAkJZWNobyAtZSAibm90IG9rXG5cbiQoZGlmZiAtdXByIC0tbGFiZWwgZXhwZWN0ZWQg LS1sYWJlbCByZXN1bHQgPChlY2hvICIkZXhwZWN0IikgPChlY2hvICIkcmVzdWx0IikpXG4i CiAJCWRpZSAibGl2ZXBhdGNoIGtzZWxmdGVzdChzKSBmYWlsZWQiCiAJZmkKLQotCWNsZWFu dXBfZG1lc2dfZmlsZQogfQogCiAjIGNoZWNrX3N5c2ZzX3JpZ2h0cyhtb2RuYW1lLCByZWxf cGF0aCwgZXhwZWN0ZWRfcmlnaHRzKSAtIGNoZWNrIHN5c2ZzCmRpZmYgLS1naXQgYS90b29s cy90ZXN0aW5nL3NlbGZ0ZXN0cy9yc2VxL2Jhc2ljX3BlcmNwdV9vcHNfdGVzdC5jIGIvdG9v bHMvdGVzdGluZy9zZWxmdGVzdHMvcnNlcS9iYXNpY19wZXJjcHVfb3BzX3Rlc3QuYwppbmRl eCA4ODc1NDI5NjE5NjguLjIzNDhkMmMyMGQwYSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGlu Zy9zZWxmdGVzdHMvcnNlcS9iYXNpY19wZXJjcHVfb3BzX3Rlc3QuYworKysgYi90b29scy90 ZXN0aW5nL3NlbGZ0ZXN0cy9yc2VxL2Jhc2ljX3BlcmNwdV9vcHNfdGVzdC5jCkBAIC0yNCw2 ICsyNCwxMSBAQCBib29sIHJzZXFfdmFsaWRhdGVfY3B1X2lkKHZvaWQpCiB7CiAJcmV0dXJu IHJzZXFfbW1fY2lkX2F2YWlsYWJsZSgpOwogfQorc3RhdGljCitib29sIHJzZXFfdXNlX2Nw dV9pbmRleCh2b2lkKQoreworCXJldHVybiBmYWxzZTsJLyogVXNlIG1tX2NpZCAqLworfQog I2Vsc2UKICMgZGVmaW5lIFJTRVFfUEVSQ1BVCVJTRVFfUEVSQ1BVX0NQVV9JRAogc3RhdGlj CkBAIC0zNiw2ICs0MSwxMSBAQCBib29sIHJzZXFfdmFsaWRhdGVfY3B1X2lkKHZvaWQpCiB7 CiAJcmV0dXJuIHJzZXFfY3VycmVudF9jcHVfcmF3KCkgPj0gMDsKIH0KK3N0YXRpYworYm9v bCByc2VxX3VzZV9jcHVfaW5kZXgodm9pZCkKK3sKKwlyZXR1cm4gdHJ1ZTsJLyogVXNlIGNw dV9pZCBhcyBpbmRleC4gKi8KK30KICNlbmRpZgogCiBzdHJ1Y3QgcGVyY3B1X2xvY2tfZW50 cnkgewpAQCAtMjc0LDcgKzI4NCw3IEBAIHZvaWQgdGVzdF9wZXJjcHVfbGlzdCh2b2lkKQog CS8qIEdlbmVyYXRlIGxpc3QgZW50cmllcyBmb3IgZXZlcnkgdXNhYmxlIGNwdS4gKi8KIAlz Y2hlZF9nZXRhZmZpbml0eSgwLCBzaXplb2YoYWxsb3dlZF9jcHVzKSwgJmFsbG93ZWRfY3B1 cyk7CiAJZm9yIChpID0gMDsgaSA8IENQVV9TRVRTSVpFOyBpKyspIHsKLQkJaWYgKCFDUFVf SVNTRVQoaSwgJmFsbG93ZWRfY3B1cykpCisJCWlmIChyc2VxX3VzZV9jcHVfaW5kZXgoKSAm JiAhQ1BVX0lTU0VUKGksICZhbGxvd2VkX2NwdXMpKQogCQkJY29udGludWU7CiAJCWZvciAo aiA9IDE7IGogPD0gMTAwOyBqKyspIHsKIAkJCXN0cnVjdCBwZXJjcHVfbGlzdF9ub2RlICpu b2RlOwpAQCAtMjk5LDcgKzMwOSw3IEBAIHZvaWQgdGVzdF9wZXJjcHVfbGlzdCh2b2lkKQog CWZvciAoaSA9IDA7IGkgPCBDUFVfU0VUU0laRTsgaSsrKSB7CiAJCXN0cnVjdCBwZXJjcHVf bGlzdF9ub2RlICpub2RlOwogCi0JCWlmICghQ1BVX0lTU0VUKGksICZhbGxvd2VkX2NwdXMp KQorCQlpZiAocnNlcV91c2VfY3B1X2luZGV4KCkgJiYgIUNQVV9JU1NFVChpLCAmYWxsb3dl ZF9jcHVzKSkKIAkJCWNvbnRpbnVlOwogCiAJCXdoaWxlICgobm9kZSA9IF9fcGVyY3B1X2xp c3RfcG9wKCZsaXN0LCBpKSkpIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRl c3RzL3JzZXEvcGFyYW1fdGVzdC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcnNlcS9w YXJhbV90ZXN0LmMKaW5kZXggMjA0MDNkNTgzNDVjLi4yZjM3OTYxMjQwY2EgMTAwNjQ0Ci0t LSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3JzZXEvcGFyYW1fdGVzdC5jCisrKyBiL3Rv b2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3JzZXEvcGFyYW1fdGVzdC5jCkBAIC0yODgsNiArMjg4 LDExIEBAIGJvb2wgcnNlcV92YWxpZGF0ZV9jcHVfaWQodm9pZCkKIHsKIAlyZXR1cm4gcnNl cV9tbV9jaWRfYXZhaWxhYmxlKCk7CiB9CitzdGF0aWMKK2Jvb2wgcnNlcV91c2VfY3B1X2lu ZGV4KHZvaWQpCit7CisJcmV0dXJuIGZhbHNlOwkvKiBVc2UgbW1fY2lkICovCit9CiAjIGlm ZGVmIFRFU1RfTUVNQkFSUklFUgogLyoKICAqIE1lbWJhcnJpZXIgZG9lcyBub3QgY3VycmVu dGx5IHN1cHBvcnQgdGFyZ2V0aW5nIGEgbW1fY2lkLCBzbwpAQCAtMzEyLDYgKzMxNywxMSBA QCBib29sIHJzZXFfdmFsaWRhdGVfY3B1X2lkKHZvaWQpCiB7CiAJcmV0dXJuIHJzZXFfY3Vy cmVudF9jcHVfcmF3KCkgPj0gMDsKIH0KK3N0YXRpYworYm9vbCByc2VxX3VzZV9jcHVfaW5k ZXgodm9pZCkKK3sKKwlyZXR1cm4gdHJ1ZTsJLyogVXNlIGNwdV9pZCBhcyBpbmRleC4gKi8K K30KICMgaWZkZWYgVEVTVF9NRU1CQVJSSUVSCiBzdGF0aWMKIGludCByc2VxX21lbWJhcnJp ZXJfZXhwZWRpdGVkKGludCBjcHUpCkBAIC03MTUsNyArNzI1LDcgQEAgdm9pZCB0ZXN0X3Bl cmNwdV9saXN0KHZvaWQpCiAJLyogR2VuZXJhdGUgbGlzdCBlbnRyaWVzIGZvciBldmVyeSB1 c2FibGUgY3B1LiAqLwogCXNjaGVkX2dldGFmZmluaXR5KDAsIHNpemVvZihhbGxvd2VkX2Nw dXMpLCAmYWxsb3dlZF9jcHVzKTsKIAlmb3IgKGkgPSAwOyBpIDwgQ1BVX1NFVFNJWkU7IGkr KykgewotCQlpZiAoIUNQVV9JU1NFVChpLCAmYWxsb3dlZF9jcHVzKSkKKwkJaWYgKHJzZXFf dXNlX2NwdV9pbmRleCgpICYmICFDUFVfSVNTRVQoaSwgJmFsbG93ZWRfY3B1cykpCiAJCQlj b250aW51ZTsKIAkJZm9yIChqID0gMTsgaiA8PSAxMDA7IGorKykgewogCQkJc3RydWN0IHBl cmNwdV9saXN0X25vZGUgKm5vZGU7CkBAIC03NTIsNyArNzYyLDcgQEAgdm9pZCB0ZXN0X3Bl cmNwdV9saXN0KHZvaWQpCiAJZm9yIChpID0gMDsgaSA8IENQVV9TRVRTSVpFOyBpKyspIHsK IAkJc3RydWN0IHBlcmNwdV9saXN0X25vZGUgKm5vZGU7CiAKLQkJaWYgKCFDUFVfSVNTRVQo aSwgJmFsbG93ZWRfY3B1cykpCisJCWlmIChyc2VxX3VzZV9jcHVfaW5kZXgoKSAmJiAhQ1BV X0lTU0VUKGksICZhbGxvd2VkX2NwdXMpKQogCQkJY29udGludWU7CiAKIAkJd2hpbGUgKChu b2RlID0gX19wZXJjcHVfbGlzdF9wb3AoJmxpc3QsIGkpKSkgewpAQCAtOTAyLDcgKzkxMiw3 IEBAIHZvaWQgdGVzdF9wZXJjcHVfYnVmZmVyKHZvaWQpCiAJLyogR2VuZXJhdGUgbGlzdCBl bnRyaWVzIGZvciBldmVyeSB1c2FibGUgY3B1LiAqLwogCXNjaGVkX2dldGFmZmluaXR5KDAs IHNpemVvZihhbGxvd2VkX2NwdXMpLCAmYWxsb3dlZF9jcHVzKTsKIAlmb3IgKGkgPSAwOyBp IDwgQ1BVX1NFVFNJWkU7IGkrKykgewotCQlpZiAoIUNQVV9JU1NFVChpLCAmYWxsb3dlZF9j cHVzKSkKKwkJaWYgKHJzZXFfdXNlX2NwdV9pbmRleCgpICYmICFDUFVfSVNTRVQoaSwgJmFs bG93ZWRfY3B1cykpCiAJCQljb250aW51ZTsKIAkJLyogV29yc2UtY2FzZSBpcyBldmVyeSBp dGVtIGluIHNhbWUgQ1BVLiAqLwogCQlidWZmZXIuY1tpXS5hcnJheSA9CkBAIC05NTIsNyAr OTYyLDcgQEAgdm9pZCB0ZXN0X3BlcmNwdV9idWZmZXIodm9pZCkKIAlmb3IgKGkgPSAwOyBp IDwgQ1BVX1NFVFNJWkU7IGkrKykgewogCQlzdHJ1Y3QgcGVyY3B1X2J1ZmZlcl9ub2RlICpu b2RlOwogCi0JCWlmICghQ1BVX0lTU0VUKGksICZhbGxvd2VkX2NwdXMpKQorCQlpZiAocnNl cV91c2VfY3B1X2luZGV4KCkgJiYgIUNQVV9JU1NFVChpLCAmYWxsb3dlZF9jcHVzKSkKIAkJ CWNvbnRpbnVlOwogCiAJCXdoaWxlICgobm9kZSA9IF9fcGVyY3B1X2J1ZmZlcl9wb3AoJmJ1 ZmZlciwgaSkpKSB7CkBAIC0xMTEzLDcgKzExMjMsNyBAQCB2b2lkIHRlc3RfcGVyY3B1X21l bWNweV9idWZmZXIodm9pZCkKIAkvKiBHZW5lcmF0ZSBsaXN0IGVudHJpZXMgZm9yIGV2ZXJ5 IHVzYWJsZSBjcHUuICovCiAJc2NoZWRfZ2V0YWZmaW5pdHkoMCwgc2l6ZW9mKGFsbG93ZWRf Y3B1cyksICZhbGxvd2VkX2NwdXMpOwogCWZvciAoaSA9IDA7IGkgPCBDUFVfU0VUU0laRTsg aSsrKSB7Ci0JCWlmICghQ1BVX0lTU0VUKGksICZhbGxvd2VkX2NwdXMpKQorCQlpZiAocnNl cV91c2VfY3B1X2luZGV4KCkgJiYgIUNQVV9JU1NFVChpLCAmYWxsb3dlZF9jcHVzKSkKIAkJ CWNvbnRpbnVlOwogCQkvKiBXb3JzZS1jYXNlIGlzIGV2ZXJ5IGl0ZW0gaW4gc2FtZSBDUFUu ICovCiAJCWJ1ZmZlci5jW2ldLmFycmF5ID0KQEAgLTExNjAsNyArMTE3MCw3IEBAIHZvaWQg dGVzdF9wZXJjcHVfbWVtY3B5X2J1ZmZlcih2b2lkKQogCWZvciAoaSA9IDA7IGkgPCBDUFVf U0VUU0laRTsgaSsrKSB7CiAJCXN0cnVjdCBwZXJjcHVfbWVtY3B5X2J1ZmZlcl9ub2RlIGl0 ZW07CiAKLQkJaWYgKCFDUFVfSVNTRVQoaSwgJmFsbG93ZWRfY3B1cykpCisJCWlmIChyc2Vx X3VzZV9jcHVfaW5kZXgoKSAmJiAhQ1BVX0lTU0VUKGksICZhbGxvd2VkX2NwdXMpKQogCQkJ Y29udGludWU7CiAKIAkJd2hpbGUgKF9fcGVyY3B1X21lbWNweV9idWZmZXJfcG9wKCZidWZm ZXIsICZpdGVtLCBpKSkgewpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMv c2VjY29tcC9zZWNjb21wX2JlbmNobWFyay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMv c2VjY29tcC9zZWNjb21wX2JlbmNobWFyay5jCmluZGV4IDViNWM5ZDU1OGRlZS4uOTdiODY5 ODBiNzY4IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9zZWNjb21wL3Nl Y2NvbXBfYmVuY2htYXJrLmMKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvc2VjY29t cC9zZWNjb21wX2JlbmNobWFyay5jCkBAIC0zOCwxMCArMzgsMTAgQEAgdW5zaWduZWQgbG9u ZyBsb25nIHRpbWluZyhjbG9ja2lkX3QgY2xrX2lkLCB1bnNpZ25lZCBsb25nIGxvbmcgc2Ft cGxlcykKIAlpICo9IDEwMDAwMDAwMDBVTEw7CiAJaSArPSBmaW5pc2gudHZfbnNlYyAtIHN0 YXJ0LnR2X25zZWM7CiAKLQlwcmludGYoIiVsdS4lMDlsdSAtICVsdS4lMDlsdSA9ICVsbHUg KCUuMWZzKVxuIiwKLQkJZmluaXNoLnR2X3NlYywgZmluaXNoLnR2X25zZWMsCi0JCXN0YXJ0 LnR2X3NlYywgc3RhcnQudHZfbnNlYywKLQkJaSwgKGRvdWJsZSlpIC8gMTAwMDAwMDAwMC4w KTsKKwlrc2Z0X3ByaW50X21zZygiJWx1LiUwOWx1IC0gJWx1LiUwOWx1ID0gJWxsdSAoJS4x ZnMpXG4iLAorCQkgICAgICAgZmluaXNoLnR2X3NlYywgZmluaXNoLnR2X25zZWMsCisJCSAg ICAgICBzdGFydC50dl9zZWMsIHN0YXJ0LnR2X25zZWMsCisJCSAgICAgICBpLCAoZG91Ymxl KWkgLyAxMDAwMDAwMDAwLjApOwogCiAJcmV0dXJuIGk7CiB9CkBAIC01Myw3ICs1Myw3IEBA IHVuc2lnbmVkIGxvbmcgbG9uZyBjYWxpYnJhdGUodm9pZCkKIAlwaWRfdCBwaWQsIHJldDsK IAlpbnQgc2Vjb25kcyA9IDE1OwogCi0JcHJpbnRmKCJDYWxpYnJhdGluZyBzYW1wbGUgc2l6 ZSBmb3IgJWQgc2Vjb25kcyB3b3J0aCBvZiBzeXNjYWxscyAuLi5cbiIsIHNlY29uZHMpOwor CWtzZnRfcHJpbnRfbXNnKCJDYWxpYnJhdGluZyBzYW1wbGUgc2l6ZSBmb3IgJWQgc2Vjb25k cyB3b3J0aCBvZiBzeXNjYWxscyAuLi5cbiIsIHNlY29uZHMpOwogCiAJc2FtcGxlcyA9IDA7 CiAJcGlkID0gZ2V0cGlkKCk7CkBAIC05OCwyNCArOTgsMzYgQEAgYm9vbCBsZShpbnQgaV9v bmUsIGludCBpX3R3bykKIH0KIAogbG9uZyBjb21wYXJlKGNvbnN0IGNoYXIgKm5hbWVfb25l LCBjb25zdCBjaGFyICpuYW1lX2V2YWwsIGNvbnN0IGNoYXIgKm5hbWVfdHdvLAotCSAgICAg dW5zaWduZWQgbG9uZyBsb25nIG9uZSwgYm9vbCAoKmV2YWwpKGludCwgaW50KSwgdW5zaWdu ZWQgbG9uZyBsb25nIHR3bykKKwkgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBvbmUsIGJvb2wg KCpldmFsKShpbnQsIGludCksIHVuc2lnbmVkIGxvbmcgbG9uZyB0d28sCisJICAgICBib29s IHNraXApCiB7CiAJYm9vbCBnb29kOwogCi0JcHJpbnRmKCJcdCVzICVzICVzICglbGxkICVz ICVsbGQpOiAiLCBuYW1lX29uZSwgbmFtZV9ldmFsLCBuYW1lX3R3bywKLQkgICAgICAgKGxv bmcgbG9uZylvbmUsIG5hbWVfZXZhbCwgKGxvbmcgbG9uZyl0d28pOworCWlmIChza2lwKSB7 CisJCWtzZnRfdGVzdF9yZXN1bHRfc2tpcCgiJXMgJXMgJXNcbiIsIG5hbWVfb25lLCBuYW1l X2V2YWwsCisJCQkJICAgICAgbmFtZV90d28pOworCQlyZXR1cm4gMDsKKwl9CisKKwlrc2Z0 X3ByaW50X21zZygiXHQlcyAlcyAlcyAoJWxsZCAlcyAlbGxkKTogIiwgbmFtZV9vbmUsIG5h bWVfZXZhbCwgbmFtZV90d28sCisJCSAgICAgICAobG9uZyBsb25nKW9uZSwgbmFtZV9ldmFs LCAobG9uZyBsb25nKXR3byk7CiAJaWYgKG9uZSA+IElOVF9NQVgpIHsKLQkJcHJpbnRmKCJN aXNjYWxjdWxhdGlvbiEgTWVhc3VyZW1lbnQgd2VudCBuZWdhdGl2ZTogJWxsZFxuIiwgKGxv bmcgbG9uZylvbmUpOwotCQlyZXR1cm4gMTsKKwkJa3NmdF9wcmludF9tc2coIk1pc2NhbGN1 bGF0aW9uISBNZWFzdXJlbWVudCB3ZW50IG5lZ2F0aXZlOiAlbGxkXG4iLCAobG9uZyBsb25n KW9uZSk7CisJCWdvb2QgPSBmYWxzZTsKKwkJZ290byBvdXQ7CiAJfQogCWlmICh0d28gPiBJ TlRfTUFYKSB7Ci0JCXByaW50ZigiTWlzY2FsY3VsYXRpb24hIE1lYXN1cmVtZW50IHdlbnQg bmVnYXRpdmU6ICVsbGRcbiIsIChsb25nIGxvbmcpdHdvKTsKLQkJcmV0dXJuIDE7CisJCWtz ZnRfcHJpbnRfbXNnKCJNaXNjYWxjdWxhdGlvbiEgTWVhc3VyZW1lbnQgd2VudCBuZWdhdGl2 ZTogJWxsZFxuIiwgKGxvbmcgbG9uZyl0d28pOworCQlnb29kID0gZmFsc2U7CisJCWdvdG8g b3V0OwogCX0KIAogCWdvb2QgPSBldmFsKG9uZSwgdHdvKTsKIAlwcmludGYoIiVzXG4iLCBn b29kID8gIuKclO+4jyIgOiAi4p2MIik7CiAKK291dDoKKwlrc2Z0X3Rlc3RfcmVzdWx0KGdv b2QsICIlcyAlcyAlc1xuIiwgbmFtZV9vbmUsIG5hbWVfZXZhbCwgbmFtZV90d28pOworCiAJ cmV0dXJuIGdvb2QgPyAwIDogMTsKIH0KIApAQCAtMTQyLDE1ICsxNTQsMjIgQEAgaW50IG1h aW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAl1bnNpZ25lZCBsb25nIGxvbmcgc2FtcGxl cywgY2FsYzsKIAl1bnNpZ25lZCBsb25nIGxvbmcgbmF0aXZlLCBmaWx0ZXIxLCBmaWx0ZXIy LCBiaXRtYXAxLCBiaXRtYXAyOwogCXVuc2lnbmVkIGxvbmcgbG9uZyBlbnRyeSwgcGVyX2Zp bHRlcjEsIHBlcl9maWx0ZXIyOworCWJvb2wgc2tpcCA9IGZhbHNlOwogCiAJc2V0YnVmKHN0 ZG91dCwgTlVMTCk7CiAKLQlwcmludGYoIlJ1bm5pbmcgb246XG4iKTsKKwlrc2Z0X3ByaW50 X2hlYWRlcigpOworCWtzZnRfc2V0X3BsYW4oNyk7CisKKwlrc2Z0X3ByaW50X21zZygiUnVu bmluZyBvbjpcbiIpOworCWtzZnRfcHJpbnRfbXNnKCIiKTsKIAlzeXN0ZW0oInVuYW1lIC1h Iik7CiAKLQlwcmludGYoIkN1cnJlbnQgQlBGIHN5c2N0bCBzZXR0aW5nczpcbiIpOworCWtz ZnRfcHJpbnRfbXNnKCJDdXJyZW50IEJQRiBzeXNjdGwgc2V0dGluZ3M6XG4iKTsKIAkvKiBB dm9pZCB1c2luZyAic3lzY3RsIiB3aGljaCBtYXkgbm90IGJlIGluc3RhbGxlZC4gKi8KKwlr c2Z0X3ByaW50X21zZygiIik7CiAJc3lzdGVtKCJncmVwIC1IIC4gL3Byb2Mvc3lzL25ldC9j b3JlL2JwZl9qaXRfZW5hYmxlIik7CisJa3NmdF9wcmludF9tc2coIiIpOwogCXN5c3RlbSgi Z3JlcCAtSCAuIC9wcm9jL3N5cy9uZXQvY29yZS9icGZfaml0X2hhcmRlbiIpOwogCiAJaWYg KGFyZ2MgPiAxKQpAQCAtMTU4LDExICsxNzcsMTEgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSkKIAllbHNlCiAJCXNhbXBsZXMgPSBjYWxpYnJhdGUoKTsKIAotCXByaW50 ZigiQmVuY2htYXJraW5nICVsbHUgc3lzY2FsbHMuLi5cbiIsIHNhbXBsZXMpOworCWtzZnRf cHJpbnRfbXNnKCJCZW5jaG1hcmtpbmcgJWxsdSBzeXNjYWxscy4uLlxuIiwgc2FtcGxlcyk7 CiAKIAkvKiBOYXRpdmUgY2FsbCAqLwogCW5hdGl2ZSA9IHRpbWluZyhDTE9DS19QUk9DRVNT X0NQVVRJTUVfSUQsIHNhbXBsZXMpIC8gc2FtcGxlczsKLQlwcmludGYoImdldHBpZCBuYXRp dmU6ICVsbHUgbnNcbiIsIG5hdGl2ZSk7CisJa3NmdF9wcmludF9tc2coImdldHBpZCBuYXRp dmU6ICVsbHUgbnNcbiIsIG5hdGl2ZSk7CiAKIAlyZXQgPSBwcmN0bChQUl9TRVRfTk9fTkVX X1BSSVZTLCAxLCAwLCAwLCAwKTsKIAlhc3NlcnQocmV0ID09IDApOwpAQCAtMTcyLDM1ICsx OTEsMzcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAlhc3NlcnQocmV0 ID09IDApOwogCiAJYml0bWFwMSA9IHRpbWluZyhDTE9DS19QUk9DRVNTX0NQVVRJTUVfSUQs IHNhbXBsZXMpIC8gc2FtcGxlczsKLQlwcmludGYoImdldHBpZCBSRVRfQUxMT1cgMSBmaWx0 ZXIgKGJpdG1hcCk6ICVsbHUgbnNcbiIsIGJpdG1hcDEpOworCWtzZnRfcHJpbnRfbXNnKCJn ZXRwaWQgUkVUX0FMTE9XIDEgZmlsdGVyIChiaXRtYXApOiAlbGx1IG5zXG4iLCBiaXRtYXAx KTsKIAogCS8qIFNlY29uZCBmaWx0ZXIgcmVzdWx0aW5nIGluIGEgYml0bWFwICovCiAJcmV0 ID0gcHJjdGwoUFJfU0VUX1NFQ0NPTVAsIFNFQ0NPTVBfTU9ERV9GSUxURVIsICZiaXRtYXBf cHJvZyk7CiAJYXNzZXJ0KHJldCA9PSAwKTsKIAogCWJpdG1hcDIgPSB0aW1pbmcoQ0xPQ0tf UFJPQ0VTU19DUFVUSU1FX0lELCBzYW1wbGVzKSAvIHNhbXBsZXM7Ci0JcHJpbnRmKCJnZXRw aWQgUkVUX0FMTE9XIDIgZmlsdGVycyAoYml0bWFwKTogJWxsdSBuc1xuIiwgYml0bWFwMik7 CisJa3NmdF9wcmludF9tc2coImdldHBpZCBSRVRfQUxMT1cgMiBmaWx0ZXJzIChiaXRtYXAp OiAlbGx1IG5zXG4iLCBiaXRtYXAyKTsKIAogCS8qIFRoaXJkIGZpbHRlciwgY2FuIG5vIGxv bmdlciBiZSBjb252ZXJ0ZWQgdG8gYml0bWFwICovCiAJcmV0ID0gcHJjdGwoUFJfU0VUX1NF Q0NPTVAsIFNFQ0NPTVBfTU9ERV9GSUxURVIsICZwcm9nKTsKIAlhc3NlcnQocmV0ID09IDAp OwogCiAJZmlsdGVyMSA9IHRpbWluZyhDTE9DS19QUk9DRVNTX0NQVVRJTUVfSUQsIHNhbXBs ZXMpIC8gc2FtcGxlczsKLQlwcmludGYoImdldHBpZCBSRVRfQUxMT1cgMyBmaWx0ZXJzIChm dWxsKTogJWxsdSBuc1xuIiwgZmlsdGVyMSk7CisJa3NmdF9wcmludF9tc2coImdldHBpZCBS RVRfQUxMT1cgMyBmaWx0ZXJzIChmdWxsKTogJWxsdSBuc1xuIiwgZmlsdGVyMSk7CiAKIAkv KiBGb3VydGggZmlsdGVyLCBjYW4gbm90IGJlIGNvbnZlcnRlZCB0byBiaXRtYXAgYmVjYXVz ZSBvZiBmaWx0ZXIgMyAqLwogCXJldCA9IHByY3RsKFBSX1NFVF9TRUNDT01QLCBTRUNDT01Q X01PREVfRklMVEVSLCAmYml0bWFwX3Byb2cpOwogCWFzc2VydChyZXQgPT0gMCk7CiAKIAlm aWx0ZXIyID0gdGltaW5nKENMT0NLX1BST0NFU1NfQ1BVVElNRV9JRCwgc2FtcGxlcykgLyBz YW1wbGVzOwotCXByaW50ZigiZ2V0cGlkIFJFVF9BTExPVyA0IGZpbHRlcnMgKGZ1bGwpOiAl bGx1IG5zXG4iLCBmaWx0ZXIyKTsKKwlrc2Z0X3ByaW50X21zZygiZ2V0cGlkIFJFVF9BTExP VyA0IGZpbHRlcnMgKGZ1bGwpOiAlbGx1IG5zXG4iLCBmaWx0ZXIyKTsKIAogCS8qIEVzdGlt YXRpb25zICovCiAjZGVmaW5lIEVTVElNQVRFKGZtdCwgdmFyLCB3aGF0KQlkbyB7CQkJXAog CQl2YXIgPSAod2hhdCk7CQkJCQlcCi0JCXByaW50ZigiRXN0aW1hdGVkICIgZm10ICI6ICVs bHUgbnNcbiIsIHZhcik7CVwKLQkJaWYgKHZhciA+IElOVF9NQVgpCQkJCVwKLQkJCWdvdG8g bW9yZV9zYW1wbGVzOwkJCVwKKwkJa3NmdF9wcmludF9tc2coIkVzdGltYXRlZCAiIGZtdCAi OiAlbGx1IG5zXG4iLCB2YXIpOwlcCisJCWlmICh2YXIgPiBJTlRfTUFYKSB7CQkJCVwKKwkJ CXNraXAgPSB0cnVlOwkJCQlcCisJCQlyZXQgfD0gMTsJCQkJXAorCQl9CQkJCQkJXAogCX0g d2hpbGUgKDApCiAKIAlFU1RJTUFURSgidG90YWwgc2VjY29tcCBvdmVyaGVhZCBmb3IgMSBi aXRtYXBwZWQgZmlsdGVyIiwgY2FsYywKQEAgLTIxOCwzMSArMjM5LDM0IEBAIGludCBtYWlu KGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJRVNUSU1BVEUoInNlY2NvbXAgcGVyLWZpbHRl ciBvdmVyaGVhZCAoZmlsdGVycyAvIDQpIiwgcGVyX2ZpbHRlcjIsCiAJCSAoZmlsdGVyMiAt IG5hdGl2ZSAtIGVudHJ5KSAvIDQpOwogCi0JcHJpbnRmKCJFeHBlY3RhdGlvbnM6XG4iKTsK LQlyZXQgfD0gY29tcGFyZSgibmF0aXZlIiwgIuKJpCIsICIxIGJpdG1hcCIsIG5hdGl2ZSwg bGUsIGJpdG1hcDEpOwotCWJpdHMgPSBjb21wYXJlKCJuYXRpdmUiLCAi4omkIiwgIjEgZmls dGVyIiwgbmF0aXZlLCBsZSwgZmlsdGVyMSk7CisJa3NmdF9wcmludF9tc2coIkV4cGVjdGF0 aW9uczpcbiIpOworCXJldCB8PSBjb21wYXJlKCJuYXRpdmUiLCAi4omkIiwgIjEgYml0bWFw IiwgbmF0aXZlLCBsZSwgYml0bWFwMSwKKwkJICAgICAgIHNraXApOworCWJpdHMgPSBjb21w YXJlKCJuYXRpdmUiLCAi4omkIiwgIjEgZmlsdGVyIiwgbmF0aXZlLCBsZSwgZmlsdGVyMSwK KwkJICAgICAgIHNraXApOwogCWlmIChiaXRzKQotCQlnb3RvIG1vcmVfc2FtcGxlczsKKwkJ c2tpcCA9IHRydWU7CiAKIAlyZXQgfD0gY29tcGFyZSgicGVyLWZpbHRlciAobGFzdCAyIGRp ZmYpIiwgIuKJiCIsICJwZXItZmlsdGVyIChmaWx0ZXJzIC8gNCkiLAotCQkJcGVyX2ZpbHRl cjEsIGFwcHJveCwgcGVyX2ZpbHRlcjIpOworCQkgICAgICAgcGVyX2ZpbHRlcjEsIGFwcHJv eCwgcGVyX2ZpbHRlcjIsIHNraXApOwogCiAJYml0cyA9IGNvbXBhcmUoIjEgYml0bWFwcGVk IiwgIuKJiCIsICIyIGJpdG1hcHBlZCIsCi0JCQliaXRtYXAxIC0gbmF0aXZlLCBhcHByb3gs IGJpdG1hcDIgLSBuYXRpdmUpOworCQkgICAgICAgYml0bWFwMSAtIG5hdGl2ZSwgYXBwcm94 LCBiaXRtYXAyIC0gbmF0aXZlLCBza2lwKTsKIAlpZiAoYml0cykgewotCQlwcmludGYoIlNr aXBwaW5nIGNvbnN0YW50IGFjdGlvbiBiaXRtYXAgZXhwZWN0YXRpb25zOiB0aGV5IGFwcGVh ciB1bnN1cHBvcnRlZC5cbiIpOwotCQlnb3RvIG91dDsKKwkJa3NmdF9wcmludF9tc2coIlNr aXBwaW5nIGNvbnN0YW50IGFjdGlvbiBiaXRtYXAgZXhwZWN0YXRpb25zOiB0aGV5IGFwcGVh ciB1bnN1cHBvcnRlZC5cbiIpOworCQlza2lwID0gdHJ1ZTsKIAl9CiAKLQlyZXQgfD0gY29t cGFyZSgiZW50cnkiLCAi4omIIiwgIjEgYml0bWFwcGVkIiwgZW50cnksIGFwcHJveCwgYml0 bWFwMSAtIG5hdGl2ZSk7Ci0JcmV0IHw9IGNvbXBhcmUoImVudHJ5IiwgIuKJiCIsICIyIGJp dG1hcHBlZCIsIGVudHJ5LCBhcHByb3gsIGJpdG1hcDIgLSBuYXRpdmUpOworCXJldCB8PSBj b21wYXJlKCJlbnRyeSIsICLiiYgiLCAiMSBiaXRtYXBwZWQiLCBlbnRyeSwgYXBwcm94LAor CQkgICAgICAgYml0bWFwMSAtIG5hdGl2ZSwgc2tpcCk7CisJcmV0IHw9IGNvbXBhcmUoImVu dHJ5IiwgIuKJiCIsICIyIGJpdG1hcHBlZCIsIGVudHJ5LCBhcHByb3gsCisJCSAgICAgICBi aXRtYXAyIC0gbmF0aXZlLCBza2lwKTsKIAlyZXQgfD0gY29tcGFyZSgibmF0aXZlICsgZW50 cnkgKyAocGVyIGZpbHRlciAqIDQpIiwgIuKJiCIsICI0IGZpbHRlcnMgdG90YWwiLAotCQkJ ZW50cnkgKyAocGVyX2ZpbHRlcjEgKiA0KSArIG5hdGl2ZSwgYXBwcm94LCBmaWx0ZXIyKTsK LQlpZiAocmV0ID09IDApCi0JCWdvdG8gb3V0OworCQkgICAgICAgZW50cnkgKyAocGVyX2Zp bHRlcjEgKiA0KSArIG5hdGl2ZSwgYXBwcm94LCBmaWx0ZXIyLAorCQkgICAgICAgc2tpcCk7 CiAKLW1vcmVfc2FtcGxlczoKLQlwcmludGYoIlNhdyB1bmV4cGVjdGVkIGJlbmNobWFyayBy ZXN1bHQuIFRyeSBydW5uaW5nIGFnYWluIHdpdGggbW9yZSBzYW1wbGVzP1xuIik7Ci1vdXQ6 Ci0JcmV0dXJuIDA7CisJaWYgKHJldCkKKwkJa3NmdF9wcmludF9tc2coIlNhdyB1bmV4cGVj dGVkIGJlbmNobWFyayByZXN1bHQuIFRyeSBydW5uaW5nIGFnYWluIHdpdGggbW9yZSBzYW1w bGVzP1xuIik7CisKKwlrc2Z0X2ZpbmlzaGVkKCk7CiB9Cg== --------------Es48IjXg70X00NumyK0dWW8k--