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 D020FC282DE for ; Mon, 10 Mar 2025 15:47:32 +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:MIME-Version:Message-ID:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=qVJVGTP8jCGLU3A0RZqvEUDLeMCgjkjwMbCCyp0M1os=; b=xNw6otc/poq/wC AO0rPAFB8LcqM9qNLWkI5MJtKlc4rrAlBYItXlotdHYlhQGx1plNE5AD/aCAVCkJxDoEKUX8ZqbYI OUdzCU3J+IsRNX+Blcagshs+FyCEXDZeX4kZghrpG/REuZscp/+tLDdVFtktLfMRYmyQLu83OQwMf LWFRgIcUcxJuuZL6K6YJQ1t1wdjYSMd9pSSEN9DAqRaDEY7oKQn+Gk9a3mWz4gbSeuoUfkYeDIItd xN+3a4KpsXdRLrSZ34T4nyzZMfO2WzLWAOaAzjorV3iPEzE+SgsS2EJalJz20Kdthp3RpmkqAF43n 2TlPvcgFLbkr3F38uKbA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1trfLo-00000003FrA-1nax; Mon, 10 Mar 2025 15:47:32 +0000 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1treoB-000000037KG-2Ib6 for kvm-riscv@lists.infradead.org; Mon, 10 Mar 2025 15:12:49 +0000 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-224191d92e4so74370495ad.3 for ; Mon, 10 Mar 2025 08:12:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1741619566; x=1742224366; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=WET834fPtyfjXUSYYGbdV0Bszy0RPsJUskkYImXS/yw=; b=xt7+zqlVT/Zpa5pST13PAhh3h5lD2jSnWC8Yuih0ikjeJWE4CKzSv8csv2F+Bitd76 EJjOkgBWVVTTtEGgFRDVbU3mF7bd7fzlgA1iEyUNK27F4TPKR+zkeP6uz667JQEUDuKG mVh78ej2phL5aqS6YB2SAhWubtxX6mvkFBUmm4uidEyECWAsiclMdDLf2BgmjIjQpP2y +OoQINUALEF4GHxIeCGO4UCjdCAnScqB5EtuOXrhrYTWMvJDrFKnfGquUV9eBuWFahGO I/Zfn0pRRbqt1j/JhvZwyUAVPulcujImI+eEz0nwXLBXz9BGWwjiy3BJpNu/2VPJLuoK PYuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741619566; x=1742224366; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=WET834fPtyfjXUSYYGbdV0Bszy0RPsJUskkYImXS/yw=; b=G97aY9pymULdpnDHG9R8b1sUYi4ONoGoJZ43932k40ViOPner9ihY3+6bPSijwJfCe AL6gxi9CBoEfHnnf/JfucoVnMKPJP5DjfJX8B7ezns6+lYeZQ5qF0QtPCdWTu5EYuIab rDWDf8QSWvJE4x6++x/TsRZ94gK2ekhJymYHw9L3k/kloWWV0mTgwa7CaEcaitZD3bmj F8ENA1nXqrC20EbmBh4dQfN/caTSmEkcrR3JUE0i16dapdK7p/xpYzpOYS3xq0cQdtI8 Zfw25O2ysnjxOaGikZINUzArknSKdk06I5TzWCAlUi1NfxSqOJgIr6w+YdENU9TKUKDP 1bGw== X-Forwarded-Encrypted: i=1; AJvYcCUBLkecdr2S6gYRe+4YLlDRyXP96Zvkpje5aLHPWmetKHZGqT8CvwaT3+cg+HuirqScFfpXX/r1q7g=@lists.infradead.org X-Gm-Message-State: AOJu0YzMGdAcWVAZc17pSIRXUW3XgyUjmTLsZ9j5OLvva0y3HfV7wVCI 8nWuQ+14Xgppoz1Z/D8IGKuQbf07CDwt+gy511eDwcaVcRmSYcXJBdGdctTJkNs= X-Gm-Gg: ASbGncuVnWTHdijCVB7bs5PZjnQGJQ6ifSR5qYfWaGHiIuvCCp8TvdBoRa72keaPE3m rRA+Jsq5dhVtcEQ0m3dBlLLIRNVGRFkfKHXwcLtJqQXzkwnMGNUGoNCGP8+FaEzuIHINf7z+7bz YJLvp0uZB5OR67L70txV3ijLz8hxFSOWjwJHWzRmnkx70frYLdxp5OuGw4QlMsEGoG7h3plK3YT 5zaJcs1jDWm7RhiKKV5eHdrVj/LXhpKRiSP4mQKHW9n5zg36vVxscwr6dupc2K+oMb5zYXMDUGQ 3brXNIDV68q5/I187r22Q/MvaLRCJTLuSXSWQfOlU41EuQ== X-Google-Smtp-Source: AGHT+IEDrhoKW7rr9/McSHUbkOLSWYi1sSzsVFxLf+Ak7uOZ2UAbwnGmTpmu6+G3w62SnxldCFFNoA== X-Received: by 2002:a17:902:e5d2:b0:224:160d:3f5b with SMTP id d9443c01a7336-22428c1169cmr234143285ad.49.1741619566397; Mon, 10 Mar 2025 08:12:46 -0700 (PDT) Received: from carbon-x1.. ([2a01:e0a:e17:9700:16d2:7456:6634:9626]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-224109e99dfsm79230515ad.91.2025.03.10.08.12.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Mar 2025 08:12:45 -0700 (PDT) From: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= To: Paul Walmsley , Palmer Dabbelt , Anup Patel , Atish Patra , Shuah Khan , Jonathan Corbet , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-kselftest@vger.kernel.org Cc: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Samuel Holland Subject: [PATCH v3 00/17] riscv: add SBI FWFT misaligned exception delegation support Date: Mon, 10 Mar 2025 16:12:07 +0100 Message-ID: <20250310151229.2365992-1-cleger@rivosinc.com> X-Mailer: git-send-email 2.47.2 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250310_081247_594740_B94251B4 X-CRM114-Status: GOOD ( 16.87 ) X-BeenThere: kvm-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: "kvm-riscv" Errors-To: kvm-riscv-bounces+kvm-riscv=archiver.kernel.org@lists.infradead.org VGhlIFNCSSBGaXJtd2FyZSBGZWF0dXJlIGV4dGVuc2lvbiBhbGxvd3MgdGhlIFMtbW9kZSB0byBy ZXF1ZXN0IHNvbWUKc3BlY2lmaWMgZmVhdHVyZXMgKGVpdGhlciBoYXJkd2FyZSBvciBzb2Z0d2Fy ZSkgdG8gYmUgZW5hYmxlZC4gVGhpcwpzZXJpZXMgdXNlcyB0aGlzIGV4dGVuc2lvbiB0byByZXF1 ZXN0IG1pc2FsaWduZWQgYWNjZXNzIGV4Y2VwdGlvbgpkZWxlZ2F0aW9uIHRvIFMtbW9kZSBpbiBv cmRlciB0byBsZXQgdGhlIGtlcm5lbCBoYW5kbGUgaXQuIEl0IGFsc28gYWRkcwpzdXBwb3J0IGZv ciB0aGUgS1ZNIEZXRlQgU0JJIGV4dGVuc2lvbiBiYXNlZCBvbiB0aGUgbWlzYWxpZ25lZCBhY2Nl c3MKaGFuZGxpbmcgaW5mcmFzdHJ1Y3R1cmUuCgpGV0ZUIFNCSSBleHRlbnNpb24gaXMgcGFydCBv ZiB0aGUgU0JJIFYzLjAgc3BlY2lmaWNhdGlvbnMgWzFdLiBJdCBjYW4gYmUKdGVzdGVkIHVzaW5n IHRoZSBxZW11IHByb3ZpZGVkIGF0IFsyXSB3aGljaCBjb250YWlucyB0aGUgc2VyaWVzIGZyb20K WzNdLiBrdm0tdW5pdC10ZXN0cyBbNF0gY2FuIGJlIHVzZWQgaW5zaWRlIGt2bSB0byB0ZXN0cyB0 aGUgY29ycmVjdApkZWxlZ2F0aW9uIG9mIG1pc2FsaWduZWQgZXhjZXB0aW9ucy4gVXBzdHJlYW0g T3BlblNCSSBjYW4gYmUgdXNlZC4KCk5vdGU6IFNpbmNlIFNCSSBWMy4wIGlzIG5vdCB5ZXQgcmF0 aWZpZWQsIEZXRlQgZXh0ZW5zaW9uIEFQSSBpcyBzcGxpdApiZXR3ZWVuIGludGVyZmFjZSBvbmx5 IGFuZCBpbXBsZW1lbnRhdGlvbiwgYWxsb3dpbmcgdG8gcGljayBvbmx5IHRoZQppbnRlcmZhY2Ug d2hpY2ggZG8gbm90IGhhdmUgaGFyZCBkZXBlbmRlbmNpZXMgb24gU0JJLgoKVGhlIHRlc3RzIGNh biBiZSBydW4gdXNpbmcgdGhlIGluY2x1ZGVkIGtzZWxmdGVzdDoKCiQgcWVtdS1zeXN0ZW0tcmlz Y3Y2NCBcCgktY3B1IHJ2NjQsdHJhcC1taXNhbGlnbmVkLWFjY2Vzcz10cnVlLHY9dHJ1ZSBcCgkt TSB2aXJ0IFwKCS1tIDEwMjRNIFwKCS1iaW9zIGZ3X2R5bmFtaWMuYmluIFwKCS1rZXJuZWwgSW1h Z2UKIC4uLgoKICMgLi9taXNhbGlnbmVkCiBUQVAgdmVyc2lvbiAxMwogMS4uMjMKICMgU3RhcnRp bmcgMjMgdGVzdHMgZnJvbSAxIHRlc3QgY2FzZXMuCiAjICBSVU4gICAgICAgICAgIGdsb2JhbC5n cF9sb2FkX2xoIC4uLgogIyAgICAgICAgICAgIE9LICBnbG9iYWwuZ3BfbG9hZF9saAogb2sgMSBn bG9iYWwuZ3BfbG9hZF9saAogIyAgUlVOICAgICAgICAgICBnbG9iYWwuZ3BfbG9hZF9saHUgLi4u CiAjICAgICAgICAgICAgT0sgIGdsb2JhbC5ncF9sb2FkX2xodQogb2sgMiBnbG9iYWwuZ3BfbG9h ZF9saHUKICMgIFJVTiAgICAgICAgICAgZ2xvYmFsLmdwX2xvYWRfbHcgLi4uCiAjICAgICAgICAg ICAgT0sgIGdsb2JhbC5ncF9sb2FkX2x3CiBvayAzIGdsb2JhbC5ncF9sb2FkX2x3CiAjICBSVU4g ICAgICAgICAgIGdsb2JhbC5ncF9sb2FkX2x3dSAuLi4KICMgICAgICAgICAgICBPSyAgZ2xvYmFs LmdwX2xvYWRfbHd1CiBvayA0IGdsb2JhbC5ncF9sb2FkX2x3dQogIyAgUlVOICAgICAgICAgICBn bG9iYWwuZ3BfbG9hZF9sZCAuLi4KICMgICAgICAgICAgICBPSyAgZ2xvYmFsLmdwX2xvYWRfbGQK IG9rIDUgZ2xvYmFsLmdwX2xvYWRfbGQKICMgIFJVTiAgICAgICAgICAgZ2xvYmFsLmdwX2xvYWRf Y19sdyAuLi4KICMgICAgICAgICAgICBPSyAgZ2xvYmFsLmdwX2xvYWRfY19sdwogb2sgNiBnbG9i YWwuZ3BfbG9hZF9jX2x3CiAjICBSVU4gICAgICAgICAgIGdsb2JhbC5ncF9sb2FkX2NfbGQgLi4u CiAjICAgICAgICAgICAgT0sgIGdsb2JhbC5ncF9sb2FkX2NfbGQKIG9rIDcgZ2xvYmFsLmdwX2xv YWRfY19sZAogIyAgUlVOICAgICAgICAgICBnbG9iYWwuZ3BfbG9hZF9jX2xkc3AgLi4uCiAjICAg ICAgICAgICAgT0sgIGdsb2JhbC5ncF9sb2FkX2NfbGRzcAogb2sgOCBnbG9iYWwuZ3BfbG9hZF9j X2xkc3AKICMgIFJVTiAgICAgICAgICAgZ2xvYmFsLmdwX2xvYWRfc2ggLi4uCiAjICAgICAgICAg ICAgT0sgIGdsb2JhbC5ncF9sb2FkX3NoCiBvayA5IGdsb2JhbC5ncF9sb2FkX3NoCiAjICBSVU4g ICAgICAgICAgIGdsb2JhbC5ncF9sb2FkX3N3IC4uLgogIyAgICAgICAgICAgIE9LICBnbG9iYWwu Z3BfbG9hZF9zdwogb2sgMTAgZ2xvYmFsLmdwX2xvYWRfc3cKICMgIFJVTiAgICAgICAgICAgZ2xv YmFsLmdwX2xvYWRfc2QgLi4uCiAjICAgICAgICAgICAgT0sgIGdsb2JhbC5ncF9sb2FkX3NkCiBv ayAxMSBnbG9iYWwuZ3BfbG9hZF9zZAogIyAgUlVOICAgICAgICAgICBnbG9iYWwuZ3BfbG9hZF9j X3N3IC4uLgogIyAgICAgICAgICAgIE9LICBnbG9iYWwuZ3BfbG9hZF9jX3N3CiBvayAxMiBnbG9i YWwuZ3BfbG9hZF9jX3N3CiAjICBSVU4gICAgICAgICAgIGdsb2JhbC5ncF9sb2FkX2Nfc2QgLi4u CiAjICAgICAgICAgICAgT0sgIGdsb2JhbC5ncF9sb2FkX2Nfc2QKIG9rIDEzIGdsb2JhbC5ncF9s b2FkX2Nfc2QKICMgIFJVTiAgICAgICAgICAgZ2xvYmFsLmdwX2xvYWRfY19zZHNwIC4uLgogIyAg ICAgICAgICAgIE9LICBnbG9iYWwuZ3BfbG9hZF9jX3Nkc3AKIG9rIDE0IGdsb2JhbC5ncF9sb2Fk X2Nfc2RzcAogIyAgUlVOICAgICAgICAgICBnbG9iYWwuZnB1X2xvYWRfZmx3IC4uLgogIyAgICAg ICAgICAgIE9LICBnbG9iYWwuZnB1X2xvYWRfZmx3CiBvayAxNSBnbG9iYWwuZnB1X2xvYWRfZmx3 CiAjICBSVU4gICAgICAgICAgIGdsb2JhbC5mcHVfbG9hZF9mbGQgLi4uCiAjICAgICAgICAgICAg T0sgIGdsb2JhbC5mcHVfbG9hZF9mbGQKIG9rIDE2IGdsb2JhbC5mcHVfbG9hZF9mbGQKICMgIFJV TiAgICAgICAgICAgZ2xvYmFsLmZwdV9sb2FkX2NfZmxkIC4uLgogIyAgICAgICAgICAgIE9LICBn bG9iYWwuZnB1X2xvYWRfY19mbGQKIG9rIDE3IGdsb2JhbC5mcHVfbG9hZF9jX2ZsZAogIyAgUlVO ICAgICAgICAgICBnbG9iYWwuZnB1X2xvYWRfY19mbGRzcCAuLi4KICMgICAgICAgICAgICBPSyAg Z2xvYmFsLmZwdV9sb2FkX2NfZmxkc3AKIG9rIDE4IGdsb2JhbC5mcHVfbG9hZF9jX2ZsZHNwCiAj ICBSVU4gICAgICAgICAgIGdsb2JhbC5mcHVfc3RvcmVfZnN3IC4uLgogIyAgICAgICAgICAgIE9L ICBnbG9iYWwuZnB1X3N0b3JlX2Zzdwogb2sgMTkgZ2xvYmFsLmZwdV9zdG9yZV9mc3cKICMgIFJV TiAgICAgICAgICAgZ2xvYmFsLmZwdV9zdG9yZV9mc2QgLi4uCiAjICAgICAgICAgICAgT0sgIGds b2JhbC5mcHVfc3RvcmVfZnNkCiBvayAyMCBnbG9iYWwuZnB1X3N0b3JlX2ZzZAogIyAgUlVOICAg ICAgICAgICBnbG9iYWwuZnB1X3N0b3JlX2NfZnNkIC4uLgogIyAgICAgICAgICAgIE9LICBnbG9i YWwuZnB1X3N0b3JlX2NfZnNkCiBvayAyMSBnbG9iYWwuZnB1X3N0b3JlX2NfZnNkCiAjICBSVU4g ICAgICAgICAgIGdsb2JhbC5mcHVfc3RvcmVfY19mc2RzcCAuLi4KICMgICAgICAgICAgICBPSyAg Z2xvYmFsLmZwdV9zdG9yZV9jX2ZzZHNwCiBvayAyMiBnbG9iYWwuZnB1X3N0b3JlX2NfZnNkc3AK ICMgIFJVTiAgICAgICAgICAgZ2xvYmFsLmdlbl9zaWdidXMgLi4uCiBbMTI3OTcuOTg4NjQ3XSBt aXNhbGlnbmVkWzYxOF06IHVuaGFuZGxlZCBzaWduYWwgNyBjb2RlIDB4MSBhdCAweDAwMDAwMDAw MDAwMTRkYzAgaW4gbWlzYWxpZ25lZFs0ZGMwLDEwMDAwKzc2MDAwXQogWzEyNzk3Ljk4ODk5MF0g Q1BVOiAwIFVJRDogMCBQSUQ6IDYxOCBDb21tOiBtaXNhbGlnbmVkIE5vdCB0YWludGVkIDYuMTMu MC1yYzYtMDAwMDgtZzRlYzQ0Njg5NjdjOS1kaXJ0eSAjNTEKIFsxMjc5Ny45ODkxNjldIEhhcmR3 YXJlIG5hbWU6IHJpc2N2LXZpcnRpbyxxZW11IChEVCkKIFsxMjc5Ny45ODkyNjRdIGVwYyA6IDAw MDAwMDAwMDAwMTRkYzAgcmEgOiAwMDAwMDAwMDAwMDE0ZDAwIHNwIDogMDAwMDdmZmZlMTY1ZDEw MAogWzEyNzk3Ljk4OTQwN10gIGdwIDogMDAwMDAwMDAwMDA4ZjZlOCB0cCA6IDAwMDAwMDAwMDAw OTU3NjAgdDAgOiAwMDAwMDAwMDAwMDAwMDA4CiBbMTI3OTcuOTg5NTQ0XSAgdDEgOiAwMDAwMDAw MDAwMDk2NWQ4IHQyIDogMDAwMDAwMDAwMDA4ZTgzMCBzMCA6IDAwMDA3ZmZmZTE2NWQxNjAKIFsx Mjc5Ny45ODk2OTJdICBzMSA6IDAwMDAwMDAwMDAwMDAwMWEgYTAgOiAwMDAwMDAwMDAwMDAwMDAw IGExIDogMDAwMDAwMDAwMDAwMDAwMgogWzEyNzk3Ljk4OTgzMV0gIGEyIDogMDAwMDAwMDAwMDAw MDAwMCBhMyA6IDAwMDAwMDAwMDAwMDAwMDAgYTQgOiBmZmZmZmZmZmRlYWRiZWVmCiBbMTI3OTcu OTg5OTY0XSAgYTUgOiAwMDAwMDAwMDAwMDhlZjYxIGE2IDogNjI2NzY5NzM1ZjZlMDAwMCBhNyA6 IGZmZmZmZmZmZmZmZmYwMDAKIFsxMjc5Ny45OTAwOTRdICBzMiA6IDAwMDAwMDAwMDAwMDAwMDEg czMgOiAwMDAwN2ZmZmUxNjVkODM4IHM0IDogMDAwMDdmZmZlMTY1ZDg0OAogWzEyNzk3Ljk5MDIz OF0gIHM1IDogMDAwMDAwMDAwMDAwMDAxYSBzNiA6IDAwMDAwMDAwMDAwMTA0NDIgczcgOiAwMDAw MDAwMDAwMDEwMjAwCiBbMTI3OTcuOTkwMzkxXSAgczggOiAwMDAwMDAwMDAwMDAwMDNhIHM5IDog MDAwMDAwMDAwMDA5NDUwOCBzMTA6IDAwMDAwMDAwMDAwMDAwMDAKIFsxMjc5Ny45OTA1MjZdICBz MTE6IDAwMDA1NTU1Njc0NjA2NjggdDMgOiAwMDAwN2ZmZmUxNjVkMDcwIHQ0IDogMDAwMDAwMDAw MDA5NjVkMAogWzEyNzk3Ljk5MDY1Nl0gIHQ1IDogZmVmZWZlZmVmZWZlZmVmZiB0NiA6IDAwMDAw MDAwMDAwMDAwNzMKIFsxMjc5Ny45OTA3NTZdIHN0YXR1czogMDAwMDAwMDIwMDAwNDAyMCBiYWRh ZGRyOiAwMDAwMDAwMDAwMDhlZjYxIGNhdXNlOiAwMDAwMDAwMDAwMDAwMDA2CiBbMTI3OTcuOTkw OTExXSBDb2RlOiA4NzkzIDg3OTEgMzQyMyBmY2Y0IDM3ODMgZmM4NCBjNzM3IGRlYWQgMDcxMyBl ZWY3IChjMzk4KSAwMDAxCiAjICAgICAgICAgICAgT0sgIGdsb2JhbC5nZW5fc2lnYnVzCiBvayAy MyBnbG9iYWwuZ2VuX3NpZ2J1cwogIyBQQVNTRUQ6IDIzIC8gMjMgdGVzdHMgcGFzc2VkLgogIyBU b3RhbHM6IHBhc3M6MjMgZmFpbDowIHhmYWlsOjAgeHBhc3M6MCBza2lwOjAgZXJyb3I6MAoKV2l0 aCBrdm0tdG9vbHM6CgogIyBsa3ZtIHJ1biAtayBzYmkuZmxhdCAtbSAxMjgKICBJbmZvOiAjIGxr dm0gcnVuIC1rIHNiaS5mbGF0IC1tIDEyOCAtYyAxIC0tbmFtZSBndWVzdC05NwogIEluZm86IFJl bW92ZWQgZ2hvc3Qgc29ja2V0IGZpbGUgIi9yb290Ly5sa3ZtLy9ndWVzdC05Ny5zb2NrIi4KCiAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIwogIyAgICBrdm0tdW5pdC10ZXN0cwogIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK CiAuLi4gW3Rlc3QgbWVzc2FnZXMgZWxpZGVkXQogUEFTUzogc2JpOiBmd2Z0OiBGV0ZUIGV4dGVu c2lvbiBwcm9iaW5nIG5vIGVycm9yCiBQQVNTOiBzYmk6IGZ3ZnQ6IGdldC9zZXQgcmVzZXJ2ZWQg ZmVhdHVyZSAweDYgZXJyb3IgPT0gU0JJX0VSUl9ERU5JRUQKIFBBU1M6IHNiaTogZndmdDogZ2V0 L3NldCByZXNlcnZlZCBmZWF0dXJlIDB4M2ZmZmZmZmYgZXJyb3IgPT0gU0JJX0VSUl9ERU5JRUQK IFBBU1M6IHNiaTogZndmdDogZ2V0L3NldCByZXNlcnZlZCBmZWF0dXJlIDB4ODAwMDAwMDAgZXJy b3IgPT0gU0JJX0VSUl9ERU5JRUQKIFBBU1M6IHNiaTogZndmdDogZ2V0L3NldCByZXNlcnZlZCBm ZWF0dXJlIDB4YmZmZmZmZmYgZXJyb3IgPT0gU0JJX0VSUl9ERU5JRUQKIFBBU1M6IHNiaTogZndm dDogbWlzYWxpZ25lZF9kZWxlZzogR2V0IG1pc2FsaWduZWQgZGVsZWcgZmVhdHVyZSBubyBlcnJv cgogUEFTUzogc2JpOiBmd2Z0OiBtaXNhbGlnbmVkX2RlbGVnOiBTZXQgbWlzYWxpZ25lZCBkZWxl ZyBmZWF0dXJlIGludmFsaWQgdmFsdWUgZXJyb3IKIFBBU1M6IHNiaTogZndmdDogbWlzYWxpZ25l ZF9kZWxlZzogU2V0IG1pc2FsaWduZWQgZGVsZWcgZmVhdHVyZSBpbnZhbGlkIHZhbHVlIGVycm9y CiBQQVNTOiBzYmk6IGZ3ZnQ6IG1pc2FsaWduZWRfZGVsZWc6IFNldCBtaXNhbGlnbmVkIGRlbGVn IGZlYXR1cmUgdmFsdWUgbm8gZXJyb3IKIFBBU1M6IHNiaTogZndmdDogbWlzYWxpZ25lZF9kZWxl ZzogU2V0IG1pc2FsaWduZWQgZGVsZWcgZmVhdHVyZSB2YWx1ZSAwCiBQQVNTOiBzYmk6IGZ3ZnQ6 IG1pc2FsaWduZWRfZGVsZWc6IFNldCBtaXNhbGlnbmVkIGRlbGVnIGZlYXR1cmUgdmFsdWUgbm8g ZXJyb3IKIFBBU1M6IHNiaTogZndmdDogbWlzYWxpZ25lZF9kZWxlZzogU2V0IG1pc2FsaWduZWQg ZGVsZWcgZmVhdHVyZSB2YWx1ZSAxCiBQQVNTOiBzYmk6IGZ3ZnQ6IG1pc2FsaWduZWRfZGVsZWc6 IFZlcmlmeSBtaXNhbGlnbmVkIGxvYWQgZXhjZXB0aW9uIHRyYXAgaW4gc3VwZXJ2aXNvcgogU1VN TUFSWTogNTAgdGVzdHMsIDIgdW5leHBlY3RlZCBmYWlsdXJlcywgMTIgc2tpcHBlZAoKVGhpcyBz ZXJpZXMgaXMgYXZhaWxhYmxlIGF0IFs2XS4KCkxpbms6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaXNj di1ub24taXNhL3Jpc2N2LXNiaS1kb2MvcmVsZWFzZXMvZG93bmxvYWQvdnYzLjAtcmMyL3Jpc2N2 LXNiaS5wZGYgWzFdCkxpbms6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaXZvc2luYy9xZW11L3RyZWUv ZGV2L2NsZWdlci9taXNhbGlnbmVkIFsyXQpMaW5rOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9h bGwvMjAyNDEyMTEyMTE5MzMuMTk4NzkyLTMtZmtvbnJhZEBhbWQuY29tL1QvIFszXQpMaW5rOiBo dHRwczovL2dpdGh1Yi5jb20vY2xlbWVudGxlZ2VyL2t2bS11bml0LXRlc3RzL3RyZWUvZGV2L2Ns ZWdlci9md2Z0X3YxIFs0XQpMaW5rOiBodHRwczovL2dpdGh1Yi5jb20vY2xlbWVudGxlZ2VyL3Vu YWxpZ25lZF90ZXN0IFs1XQpMaW5rOiBodHRwczovL2dpdGh1Yi5jb20vcml2b3NpbmMvbGludXgv dHJlZS9kZXYvY2xlZ2VyL2Z3ZnRfdjEgWzZdCi0tLQoKVjM6CiAtIEFkZGVkIGNvbW1lbnQgYWJv dXQga3ZtIHNiaSBmd2Z0IHN1cHBvcnRlZC9zZXQvZ2V0IGNhbGxiYWNrCiAgIHJlcXVpcmVtZW50 cwogLSBNb3ZlIHN0cnVjdCBrdm1fc2JpX2Z3ZnRfZmVhdHVyZSBpbiBrdm1fc2JpX2Z3ZnQuYwog LSBBZGQgYSBGV0ZUIGludGVyZmFjZQoKVjI6CiAtIEFkZGVkIEtzZWxmdGVzdCBmb3IgbWlzYWxp Z25lZCB0ZXN0aW5nCiAtIEFkZGVkIGdldF91c2VyKCkgdXNhZ2UgaW5zdGVhZCBvZiBfX2dldF91 c2VyKCkKIC0gUmVlbmFibGUgaW50ZXJydXB0IHdoZW4gcG9zc2libGUgaW4gbWlzYWxpZ25lZCBh Y2Nlc3MgaGFuZGxpbmcKIC0gRG9jdW1lbnQgdGhhdCByaXNjdiBzdXBwb3J0cyB1bmFsaWduZWQt dHJhcHMKIC0gRml4IEtWTSBleHRlbnNpb24gc3RhdGUgd2hlbiBhbiBpbml0IGZ1bmN0aW9uIGlz IHByZXNlbnQKIC0gUmV3b3JrIFNCSSBtaXNhbGlnbmVkIGFjY2Vzc2VzIHRyYXAgZGVsZWdhdGlv biBjb2RlCiAtIEFkZGVkIHN1cHBvcnQgZm9yIENQVSBob3RwbHVnZ2luZwogLSBBZGRlZCBLVk0g U0JJIHJlc2V0IGNhbGxiYWNrCiAtIEFkZGVkIHJlc2V0IGZvciBLVk0gU0JJIEZXRlQgbG9jawog LSBSZXR1cm4gU0JJX0VSUl9ERU5JRURfTE9DS0VEIHdoZW4gTE9DSyBmbGFnIGlzIHNldAoKQ2zD qW1lbnQgTMOpZ2VyICgxNyk6CiAgcmlzY3Y6IGFkZCBGaXJtd2FyZSBGZWF0dXJlIChGV0ZUKSBT QkkgZXh0ZW5zaW9ucyBkZWZpbml0aW9ucwogIHJpc2N2OiBzYmk6IGFkZCBGV0ZUIGV4dGVuc2lv biBpbnRlcmZhY2UKICByaXNjdjogc2JpOiBhZGQgU0JJIEZXRlQgZXh0ZW5zaW9uIGNhbGxzCiAg cmlzY3Y6IG1pc2FsaWduZWQ6IHJlcXVlc3QgbWlzYWxpZ25lZCBleGNlcHRpb24gZnJvbSBTQkkK ICByaXNjdjogbWlzYWxpZ25lZDogdXNlIG9uX2VhY2hfY3B1KCkgZm9yIHNjYWxhciBtaXNhbGln bmVkIGFjY2VzcwogICAgcHJvYmluZwogIHJpc2N2OiBtaXNhbGlnbmVkOiB1c2UgY29ycmVjdCBD T05GSUdfIGlmZGVmIGZvcgogICAgbWlzYWxpZ25lZF9hY2Nlc3Nfc3BlZWQKICByaXNjdjogbWlz YWxpZ25lZDogbW92ZSBlbXVsYXRlZCBhY2Nlc3MgdW5pZm9ybWl0eSBjaGVjayBpbiBhIGZ1bmN0 aW9uCiAgcmlzY3Y6IG1pc2FsaWduZWQ6IGFkZCBhIGZ1bmN0aW9uIHRvIGNoZWNrIG1pc2FsaWdu IHRyYXAgZGVsZWdhYmlsaXR5CiAgcmlzY3Y6IG1pc2FsaWduZWQ6IGZhY3Rvcml6ZSB0cmFwIGhh bmRsaW5nCiAgcmlzY3Y6IG1pc2FsaWduZWQ6IGVuYWJsZSBJUlFzIHdoaWxlIGhhbmRsaW5nIG1p c2FsaWduZWQgYWNjZXNzZXMKICByaXNjdjogbWlzYWxpZ25lZDogdXNlIGdldF91c2VyKCkgaW5z dGVhZCBvZiBfX2dldF91c2VyKCkKICBEb2N1bWVudGF0aW9uL3N5c2N0bDogYWRkIHJpc2N2IHRv IHVuYWxpZ25lZC10cmFwIHN1cHBvcnRlZCBhcmNocwogIHNlbGZ0ZXN0czogcmlzY3Y6IGFkZCBt aXNhbGlnbmVkIGFjY2VzcyB0ZXN0aW5nCiAgUklTQy1WOiBLVk06IGFkZCBTQkkgZXh0ZW5zaW9u IGluaXQoKS9kZWluaXQoKSBmdW5jdGlvbnMKICBSSVNDLVY6IEtWTTogYWRkIFNCSSBleHRlbnNp b24gcmVzZXQgY2FsbGJhY2sKICBSSVNDLVY6IEtWTTogYWRkIHN1cHBvcnQgZm9yIEZXRlQgU0JJ IGV4dGVuc2lvbgogIFJJU0MtVjogS1ZNOiBhZGQgc3VwcG9ydCBmb3IgU0JJX0ZXRlRfTUlTQUxJ R05FRF9ERUxFRwoKIERvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvc3lzY3RsL2tlcm5lbC5yc3Qg ICB8ICAgNCArLQogYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlLmggICAgICAgICAg IHwgICA4ICstCiBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggICAgICAgICAgICAg fCAgIDUgKy0KIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX3ZjcHVfc2JpLmggICAgICAgICB8 ICAxMiArCiBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV92Y3B1X3NiaV9md2Z0LmggICAgfCAg MzEgKysrCiBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3NiaS5oICAgICAgICAgICAgICAgICAgfCAg MzggKysrCiBhcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20va3ZtLmggICAgICAgICAgICAgfCAg IDEgKwogYXJjaC9yaXNjdi9rZXJuZWwvc2JpLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTIz ICsrKysrKysrKwogYXJjaC9yaXNjdi9rZXJuZWwvdHJhcHMuYyAgICAgICAgICAgICAgICAgICAg IHwgIDU3ICsrLS0KIGFyY2gvcmlzY3Yva2VybmVsL3RyYXBzX21pc2FsaWduZWQuYyAgICAgICAg ICB8IDExOSArKysrKysrLQogYXJjaC9yaXNjdi9rZXJuZWwvdW5hbGlnbmVkX2FjY2Vzc19zcGVl ZC5jICAgIHwgIDExICstCiBhcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZSAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDEgKwogYXJjaC9yaXNjdi9rdm0vdmNwdS5jICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICA3ICstCiBhcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaS5jICAgICAgICAgICAgICAgICAg ICAgfCAgNTcgKysrKwogYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfZndmdC5jICAgICAgICAgICAg ICAgIHwgMjUxICsrKysrKysrKysrKysrKysrCiBhcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9zdGEu YyAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIC4uLi9zZWxmdGVzdHMvcmlzY3YvbWlzYWxpZ25l ZC8uZ2l0aWdub3JlICAgICB8ICAgMSArCiAuLi4vc2VsZnRlc3RzL3Jpc2N2L21pc2FsaWduZWQv TWFrZWZpbGUgICAgICAgfCAgMTIgKwogLi4uL3NlbGZ0ZXN0cy9yaXNjdi9taXNhbGlnbmVkL2Nv bW1vbi5TICAgICAgIHwgIDMzICsrKwogLi4uL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jpc2N2L21pc2Fs aWduZWQvZnB1LlMgIHwgMTgwICsrKysrKysrKysrKysKIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3Rz L3Jpc2N2L21pc2FsaWduZWQvZ3AuUyB8IDEwMyArKysrKysrCiAuLi4vc2VsZnRlc3RzL3Jpc2N2 L21pc2FsaWduZWQvbWlzYWxpZ25lZC5jICAgfCAyNTQgKysrKysrKysrKysrKysrKysrCiAyMiBm aWxlcyBjaGFuZ2VkLCAxMjY0IGluc2VydGlvbnMoKyksIDQ3IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGFyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX3ZjcHVfc2JpX2Z3ZnQuaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX2Z3ZnQuYwogY3JlYXRl IG1vZGUgMTAwNjQ0IHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jpc2N2L21pc2FsaWduZWQvLmdp dGlnbm9yZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jpc2N2 L21pc2FsaWduZWQvTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy90ZXN0aW5nL3Nl bGZ0ZXN0cy9yaXNjdi9taXNhbGlnbmVkL2NvbW1vbi5TCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9v bHMvdGVzdGluZy9zZWxmdGVzdHMvcmlzY3YvbWlzYWxpZ25lZC9mcHUuUwogY3JlYXRlIG1vZGUg MTAwNjQ0IHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jpc2N2L21pc2FsaWduZWQvZ3AuUwogY3Jl YXRlIG1vZGUgMTAwNjQ0IHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jpc2N2L21pc2FsaWduZWQv bWlzYWxpZ25lZC5jCgotLSAKMi40Ny4yCgoKLS0gCmt2bS1yaXNjdiBtYWlsaW5nIGxpc3QKa3Zt LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9rdm0tcmlzY3YK From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.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 3359722B5AB for ; Mon, 10 Mar 2025 15:12:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741619570; cv=none; b=dQubHLik+tjzozLe26lPrJGq8crHMsRrSUioLcyRPcFFjbN4EZ04Ys4N8FWUGR+fMJxMS2wg9NSx6v9aG/B1lFKmrKuBdAeB0wkvhH9aMVpWDoG8D8XIsUh57rpaVAd7dnWfUU4idcTCX3vxl+jYMjaBtsREC+HbPoY070Uoum0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741619570; c=relaxed/simple; bh=1qnx4OrvHqAIC29AcSnbIqDkJTwGbkzUZMhfXmg4zZE=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=eS1FJusVjwHmUgMaoqRNaZK+DxK1meNTRwcaYGJgNWl0JHRhntQj0ODJw/tEfj8RGC6nEbBAj0Z2aWGiHrEKM6BGJ6PqwJ4gko0ANQlqAKXTtjw/+I1EndsH3uQC5WfHNiU7ouUEyFf/tvizOalp/TpdcyG5udP9KeiJmv9eCrw= 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=05HQMVCv; arc=none smtp.client-ip=209.85.214.172 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="05HQMVCv" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2239c066347so74840655ad.2 for ; Mon, 10 Mar 2025 08:12:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1741619566; x=1742224366; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=WET834fPtyfjXUSYYGbdV0Bszy0RPsJUskkYImXS/yw=; b=05HQMVCvOgyk3ien7Ecn04rtqVILOsyeoEDUVYu/3pSaGApVbkZLVqI2MOSwhJ6epU Ud8VUSNEkXaubsK5pbGnrqsPmV2EP1wtzFjZ71x4BNjMJBeTiKBxtMtUZKqW+2Let/iD Rs9iL0hIiqNip+ZBHie2dnHf3EDpFnDbWCtxKqLTmjIiAZMSkCy63ckC17Im3YYgnC5M JALTVNhmsLV+eW0R+N9Vrj3SyJQemCiVp0AxOT2goSivP6LdXY0l5CgYefY8qKghFzXk F3CTEs6dJad470Jwnweai5Zj+wdQ1ynf0J2zXehnfz4zDjhuNhVcdjBgSckWCYIFOWiR piTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741619566; x=1742224366; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=WET834fPtyfjXUSYYGbdV0Bszy0RPsJUskkYImXS/yw=; b=Q3Ch2IAPYuEP2wFb8SEB7hEle7cOgY2kJw13gkiJ38gPj7cak9vgjQoh49eEpsqBCV uwYw6frqbAtexb8YtarCKwtzLi3ux6FOQ2heweEngsWUm3Nt48gV3yYeBclz98j4pojh auZZwRy9EPQZxqMaWhGz8sRa+IqrFEgcsXWbdkghalqhQNMjE+omNToar7Y3go22Ws9o 0BZ6A1KED41rEi6AVZSkbxsIFvcesebddK7nWXitP13a7FaI1fty54aMSCsxr5XkRRBP VEwAhz9NcIQ3ggSlYRIB5bB2uSAhsKwYDaTzplgAhIOlriQcKWfFX7csGyxmmN8RaRUj ymvg== X-Forwarded-Encrypted: i=1; AJvYcCVELOEPI8MGBZhK0cL523/WCAK7UySiNUoSeX7TD/GG+W+vH72E5sjRgIxo3znR0agGmqo=@vger.kernel.org X-Gm-Message-State: AOJu0Ywxy2s5evBaw/ToUTbFiFBk/KDSu72859IQBHmTlmAB5ICuNPbO z1NxM6XL3rk9WYBl/r1CY3+1A6U0FmhBkdbfLQPZOA5IeUHU4PLM6msGFlzgav0= X-Gm-Gg: ASbGncs71+8sd589ArYtO7nZw/6TXGhGcmwoHwyEReaqfDVtxpC4JnrP7RqXTEvmoUM Z9V1uCUyujnkqNxsI97zZT7mGMG/fJDPdV8JZsPwjEIcQw//VcU1LxbbE5Eg34D+ZNsEMRa9HBK Mk74D/m1Kg8N5PQBlzt83xoZR9pRWhmbARlMEV3EiOxGzWF0ygP96IvxvtV5gs8NeAeH39gDyHV jTLEXbONb2jPL/cgGkIb9BTEzlBkzXvExl+VE0uvI853fI2hYHs0Z+ohC3GunMLJc9VlOW8LXNy jyIyvVMvriDlwm3z1VxbXI1lcjOTyS4WrCFxBblBc7617w== X-Google-Smtp-Source: AGHT+IEDrhoKW7rr9/McSHUbkOLSWYi1sSzsVFxLf+Ak7uOZ2UAbwnGmTpmu6+G3w62SnxldCFFNoA== X-Received: by 2002:a17:902:e5d2:b0:224:160d:3f5b with SMTP id d9443c01a7336-22428c1169cmr234143285ad.49.1741619566397; Mon, 10 Mar 2025 08:12:46 -0700 (PDT) Received: from carbon-x1.. ([2a01:e0a:e17:9700:16d2:7456:6634:9626]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-224109e99dfsm79230515ad.91.2025.03.10.08.12.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Mar 2025 08:12:45 -0700 (PDT) From: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= To: Paul Walmsley , Palmer Dabbelt , Anup Patel , Atish Patra , Shuah Khan , Jonathan Corbet , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-kselftest@vger.kernel.org Cc: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Samuel Holland Subject: [PATCH v3 00/17] riscv: add SBI FWFT misaligned exception delegation support Date: Mon, 10 Mar 2025 16:12:07 +0100 Message-ID: <20250310151229.2365992-1-cleger@rivosinc.com> X-Mailer: git-send-email 2.47.2 Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The SBI Firmware Feature extension allows the S-mode to request some specific features (either hardware or software) to be enabled. This series uses this extension to request misaligned access exception delegation to S-mode in order to let the kernel handle it. It also adds support for the KVM FWFT SBI extension based on the misaligned access handling infrastructure. FWFT SBI extension is part of the SBI V3.0 specifications [1]. It can be tested using the qemu provided at [2] which contains the series from [3]. kvm-unit-tests [4] can be used inside kvm to tests the correct delegation of misaligned exceptions. Upstream OpenSBI can be used. Note: Since SBI V3.0 is not yet ratified, FWFT extension API is split between interface only and implementation, allowing to pick only the interface which do not have hard dependencies on SBI. The tests can be run using the included kselftest: $ qemu-system-riscv64 \ -cpu rv64,trap-misaligned-access=true,v=true \ -M virt \ -m 1024M \ -bios fw_dynamic.bin \ -kernel Image ... # ./misaligned TAP version 13 1..23 # Starting 23 tests from 1 test cases. # RUN global.gp_load_lh ... # OK global.gp_load_lh ok 1 global.gp_load_lh # RUN global.gp_load_lhu ... # OK global.gp_load_lhu ok 2 global.gp_load_lhu # RUN global.gp_load_lw ... # OK global.gp_load_lw ok 3 global.gp_load_lw # RUN global.gp_load_lwu ... # OK global.gp_load_lwu ok 4 global.gp_load_lwu # RUN global.gp_load_ld ... # OK global.gp_load_ld ok 5 global.gp_load_ld # RUN global.gp_load_c_lw ... # OK global.gp_load_c_lw ok 6 global.gp_load_c_lw # RUN global.gp_load_c_ld ... # OK global.gp_load_c_ld ok 7 global.gp_load_c_ld # RUN global.gp_load_c_ldsp ... # OK global.gp_load_c_ldsp ok 8 global.gp_load_c_ldsp # RUN global.gp_load_sh ... # OK global.gp_load_sh ok 9 global.gp_load_sh # RUN global.gp_load_sw ... # OK global.gp_load_sw ok 10 global.gp_load_sw # RUN global.gp_load_sd ... # OK global.gp_load_sd ok 11 global.gp_load_sd # RUN global.gp_load_c_sw ... # OK global.gp_load_c_sw ok 12 global.gp_load_c_sw # RUN global.gp_load_c_sd ... # OK global.gp_load_c_sd ok 13 global.gp_load_c_sd # RUN global.gp_load_c_sdsp ... # OK global.gp_load_c_sdsp ok 14 global.gp_load_c_sdsp # RUN global.fpu_load_flw ... # OK global.fpu_load_flw ok 15 global.fpu_load_flw # RUN global.fpu_load_fld ... # OK global.fpu_load_fld ok 16 global.fpu_load_fld # RUN global.fpu_load_c_fld ... # OK global.fpu_load_c_fld ok 17 global.fpu_load_c_fld # RUN global.fpu_load_c_fldsp ... # OK global.fpu_load_c_fldsp ok 18 global.fpu_load_c_fldsp # RUN global.fpu_store_fsw ... # OK global.fpu_store_fsw ok 19 global.fpu_store_fsw # RUN global.fpu_store_fsd ... # OK global.fpu_store_fsd ok 20 global.fpu_store_fsd # RUN global.fpu_store_c_fsd ... # OK global.fpu_store_c_fsd ok 21 global.fpu_store_c_fsd # RUN global.fpu_store_c_fsdsp ... # OK global.fpu_store_c_fsdsp ok 22 global.fpu_store_c_fsdsp # RUN global.gen_sigbus ... [12797.988647] misaligned[618]: unhandled signal 7 code 0x1 at 0x0000000000014dc0 in misaligned[4dc0,10000+76000] [12797.988990] CPU: 0 UID: 0 PID: 618 Comm: misaligned Not tainted 6.13.0-rc6-00008-g4ec4468967c9-dirty #51 [12797.989169] Hardware name: riscv-virtio,qemu (DT) [12797.989264] epc : 0000000000014dc0 ra : 0000000000014d00 sp : 00007fffe165d100 [12797.989407] gp : 000000000008f6e8 tp : 0000000000095760 t0 : 0000000000000008 [12797.989544] t1 : 00000000000965d8 t2 : 000000000008e830 s0 : 00007fffe165d160 [12797.989692] s1 : 000000000000001a a0 : 0000000000000000 a1 : 0000000000000002 [12797.989831] a2 : 0000000000000000 a3 : 0000000000000000 a4 : ffffffffdeadbeef [12797.989964] a5 : 000000000008ef61 a6 : 626769735f6e0000 a7 : fffffffffffff000 [12797.990094] s2 : 0000000000000001 s3 : 00007fffe165d838 s4 : 00007fffe165d848 [12797.990238] s5 : 000000000000001a s6 : 0000000000010442 s7 : 0000000000010200 [12797.990391] s8 : 000000000000003a s9 : 0000000000094508 s10: 0000000000000000 [12797.990526] s11: 0000555567460668 t3 : 00007fffe165d070 t4 : 00000000000965d0 [12797.990656] t5 : fefefefefefefeff t6 : 0000000000000073 [12797.990756] status: 0000000200004020 badaddr: 000000000008ef61 cause: 0000000000000006 [12797.990911] Code: 8793 8791 3423 fcf4 3783 fc84 c737 dead 0713 eef7 (c398) 0001 # OK global.gen_sigbus ok 23 global.gen_sigbus # PASSED: 23 / 23 tests passed. # Totals: pass:23 fail:0 xfail:0 xpass:0 skip:0 error:0 With kvm-tools: # lkvm run -k sbi.flat -m 128 Info: # lkvm run -k sbi.flat -m 128 -c 1 --name guest-97 Info: Removed ghost socket file "/root/.lkvm//guest-97.sock". ########################################################################## # kvm-unit-tests ########################################################################## ... [test messages elided] PASS: sbi: fwft: FWFT extension probing no error PASS: sbi: fwft: get/set reserved feature 0x6 error == SBI_ERR_DENIED PASS: sbi: fwft: get/set reserved feature 0x3fffffff error == SBI_ERR_DENIED PASS: sbi: fwft: get/set reserved feature 0x80000000 error == SBI_ERR_DENIED PASS: sbi: fwft: get/set reserved feature 0xbfffffff error == SBI_ERR_DENIED PASS: sbi: fwft: misaligned_deleg: Get misaligned deleg feature no error PASS: sbi: fwft: misaligned_deleg: Set misaligned deleg feature invalid value error PASS: sbi: fwft: misaligned_deleg: Set misaligned deleg feature invalid value error PASS: sbi: fwft: misaligned_deleg: Set misaligned deleg feature value no error PASS: sbi: fwft: misaligned_deleg: Set misaligned deleg feature value 0 PASS: sbi: fwft: misaligned_deleg: Set misaligned deleg feature value no error PASS: sbi: fwft: misaligned_deleg: Set misaligned deleg feature value 1 PASS: sbi: fwft: misaligned_deleg: Verify misaligned load exception trap in supervisor SUMMARY: 50 tests, 2 unexpected failures, 12 skipped This series is available at [6]. Link: https://github.com/riscv-non-isa/riscv-sbi-doc/releases/download/vv3.0-rc2/riscv-sbi.pdf [1] Link: https://github.com/rivosinc/qemu/tree/dev/cleger/misaligned [2] Link: https://lore.kernel.org/all/20241211211933.198792-3-fkonrad@amd.com/T/ [3] Link: https://github.com/clementleger/kvm-unit-tests/tree/dev/cleger/fwft_v1 [4] Link: https://github.com/clementleger/unaligned_test [5] Link: https://github.com/rivosinc/linux/tree/dev/cleger/fwft_v1 [6] --- V3: - Added comment about kvm sbi fwft supported/set/get callback requirements - Move struct kvm_sbi_fwft_feature in kvm_sbi_fwft.c - Add a FWFT interface V2: - Added Kselftest for misaligned testing - Added get_user() usage instead of __get_user() - Reenable interrupt when possible in misaligned access handling - Document that riscv supports unaligned-traps - Fix KVM extension state when an init function is present - Rework SBI misaligned accesses trap delegation code - Added support for CPU hotplugging - Added KVM SBI reset callback - Added reset for KVM SBI FWFT lock - Return SBI_ERR_DENIED_LOCKED when LOCK flag is set Clément Léger (17): riscv: add Firmware Feature (FWFT) SBI extensions definitions riscv: sbi: add FWFT extension interface riscv: sbi: add SBI FWFT extension calls riscv: misaligned: request misaligned exception from SBI riscv: misaligned: use on_each_cpu() for scalar misaligned access probing riscv: misaligned: use correct CONFIG_ ifdef for misaligned_access_speed riscv: misaligned: move emulated access uniformity check in a function riscv: misaligned: add a function to check misalign trap delegability riscv: misaligned: factorize trap handling riscv: misaligned: enable IRQs while handling misaligned accesses riscv: misaligned: use get_user() instead of __get_user() Documentation/sysctl: add riscv to unaligned-trap supported archs selftests: riscv: add misaligned access testing RISC-V: KVM: add SBI extension init()/deinit() functions RISC-V: KVM: add SBI extension reset callback RISC-V: KVM: add support for FWFT SBI extension RISC-V: KVM: add support for SBI_FWFT_MISALIGNED_DELEG Documentation/admin-guide/sysctl/kernel.rst | 4 +- arch/riscv/include/asm/cpufeature.h | 8 +- arch/riscv/include/asm/kvm_host.h | 5 +- arch/riscv/include/asm/kvm_vcpu_sbi.h | 12 + arch/riscv/include/asm/kvm_vcpu_sbi_fwft.h | 31 +++ arch/riscv/include/asm/sbi.h | 38 +++ arch/riscv/include/uapi/asm/kvm.h | 1 + arch/riscv/kernel/sbi.c | 123 +++++++++ arch/riscv/kernel/traps.c | 57 ++-- arch/riscv/kernel/traps_misaligned.c | 119 +++++++- arch/riscv/kernel/unaligned_access_speed.c | 11 +- arch/riscv/kvm/Makefile | 1 + arch/riscv/kvm/vcpu.c | 7 +- arch/riscv/kvm/vcpu_sbi.c | 57 ++++ arch/riscv/kvm/vcpu_sbi_fwft.c | 251 +++++++++++++++++ arch/riscv/kvm/vcpu_sbi_sta.c | 3 +- .../selftests/riscv/misaligned/.gitignore | 1 + .../selftests/riscv/misaligned/Makefile | 12 + .../selftests/riscv/misaligned/common.S | 33 +++ .../testing/selftests/riscv/misaligned/fpu.S | 180 +++++++++++++ tools/testing/selftests/riscv/misaligned/gp.S | 103 +++++++ .../selftests/riscv/misaligned/misaligned.c | 254 ++++++++++++++++++ 22 files changed, 1264 insertions(+), 47 deletions(-) create mode 100644 arch/riscv/include/asm/kvm_vcpu_sbi_fwft.h create mode 100644 arch/riscv/kvm/vcpu_sbi_fwft.c create mode 100644 tools/testing/selftests/riscv/misaligned/.gitignore create mode 100644 tools/testing/selftests/riscv/misaligned/Makefile create mode 100644 tools/testing/selftests/riscv/misaligned/common.S create mode 100644 tools/testing/selftests/riscv/misaligned/fpu.S create mode 100644 tools/testing/selftests/riscv/misaligned/gp.S create mode 100644 tools/testing/selftests/riscv/misaligned/misaligned.c -- 2.47.2 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 DAA80C35FF1 for ; Mon, 10 Mar 2025 15:47:38 +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:MIME-Version:Message-ID:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=jrUhNUX1K/+rPLAA20JP991apgEoCqF47QZiQOe9ZAo=; b=nBHK0rCyKbpzZm 1WPgtN/77vtfwr2hvRsc1Q9VUB549dL4EehbXken7oP+brE01utH/G4NV5iUc5n+V+EOsWNVmYEOi WacQGezqcQjI6hcD8+G37r+Bo4e54KRPJC+UZkbzPu+zaEg1Gfo72DmOaV3fOS82afrgB5hUGVLnP sbZ/A/4yzIOVwCXRsHo+FeluxUvyWskeJZyeF5oJtPICHgZNBVLiG6gQcnIPO3a2nZY4JrrPiTbRM UPW2M5WZg/CjITga8Y9zwulwhXimqC5jfPL75pNdgQQqfYYxPCDBBMvDTwWCiqzzMSClGQKMBKhP6 k1sOKnLZQ8MKSlTbYpdQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1trfLo-00000003FrJ-3CBQ; Mon, 10 Mar 2025 15:47:32 +0000 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1treoB-000000037KH-2LaY for linux-riscv@lists.infradead.org; Mon, 10 Mar 2025 15:12:49 +0000 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-223fd89d036so85373285ad.1 for ; Mon, 10 Mar 2025 08:12:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1741619566; x=1742224366; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=WET834fPtyfjXUSYYGbdV0Bszy0RPsJUskkYImXS/yw=; b=xt7+zqlVT/Zpa5pST13PAhh3h5lD2jSnWC8Yuih0ikjeJWE4CKzSv8csv2F+Bitd76 EJjOkgBWVVTTtEGgFRDVbU3mF7bd7fzlgA1iEyUNK27F4TPKR+zkeP6uz667JQEUDuKG mVh78ej2phL5aqS6YB2SAhWubtxX6mvkFBUmm4uidEyECWAsiclMdDLf2BgmjIjQpP2y +OoQINUALEF4GHxIeCGO4UCjdCAnScqB5EtuOXrhrYTWMvJDrFKnfGquUV9eBuWFahGO I/Zfn0pRRbqt1j/JhvZwyUAVPulcujImI+eEz0nwXLBXz9BGWwjiy3BJpNu/2VPJLuoK PYuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741619566; x=1742224366; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=WET834fPtyfjXUSYYGbdV0Bszy0RPsJUskkYImXS/yw=; b=FEiuk1Ohqdb/DiVioKCgeKCix7RegkPYvWk67GXK7vRNOiex08oEGEXqI9NoHhfjX7 A61vMLNCU0/Elj5bpBdj/iWGOUiHR+oKSGzyAwenO8blvwKsm+iFQrQfvzfyhZ/fC6eo SvzlPzcrksGtp8fI65Lyje1eLb6CSQrE05UEA4qwh9ZfECOD7j0sCpR8XBij/yUL7Eh6 Faq4nQkLkJ/Ipoj1x2lzhvtzoKbtjoejxV/3U0/Yc88wgNyD5mpIS9r5eDHfD6vGLsjr gK8DYCWA8p0XllHuDs1knNspaav4NWndlZ9X/yLTPcoa4ympwRskypeX+7608WUbz6Sd 5dkQ== X-Forwarded-Encrypted: i=1; AJvYcCV5WHEe8ATzH0rNK6a5FeeCgfFlRpdaenTM71SBuLsYUU2CSb6xojV8hkd8jbq/Fde2ZYAJSqFWTm+sig==@lists.infradead.org X-Gm-Message-State: AOJu0Ywx4nMiwA3tbSFIJd4eB8Qdng3wqb347gTbqZs95XCGkWCIEc6k 6L3w1eqwG5u0m5S8PXiGKhyXy+MpbcSv3xEuUfwlCs1RUNUvvKHK3EqcwXhK51RAA/0HHhyeNw+ JTOE= X-Gm-Gg: ASbGnctXoqZSyC52zP6B3sZZStMzmDJtw6fPb3Y18cwqoU2uls+MYVDbcumV8A3Gmda lLruT9Pe6hY5Epp/G6C0ZRVahcTrlZYwqSIp7JKIrV4Acem8S7Qh0jWZXq5+MUy/dvzz7bTTBSd XGk+vzlVPRlR7P4YdX++aIOWQiX/7BjvPRfm8MKX8yzBCXxhzF9wt7MlGzvcS4EvFyDBc+uI4RJ c2WeStdmEO4WQMofF+PxijajmFM2kpypruD+3TuUKtyproh1106T2w46G5VKLTUJ5jTu2wCK3Um XDv1Wgn4MQxX39LXtpDfunlQ4t4iu7hgW5EF5SUeQRbY6w== X-Google-Smtp-Source: AGHT+IEDrhoKW7rr9/McSHUbkOLSWYi1sSzsVFxLf+Ak7uOZ2UAbwnGmTpmu6+G3w62SnxldCFFNoA== X-Received: by 2002:a17:902:e5d2:b0:224:160d:3f5b with SMTP id d9443c01a7336-22428c1169cmr234143285ad.49.1741619566397; Mon, 10 Mar 2025 08:12:46 -0700 (PDT) Received: from carbon-x1.. ([2a01:e0a:e17:9700:16d2:7456:6634:9626]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-224109e99dfsm79230515ad.91.2025.03.10.08.12.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Mar 2025 08:12:45 -0700 (PDT) From: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= To: Paul Walmsley , Palmer Dabbelt , Anup Patel , Atish Patra , Shuah Khan , Jonathan Corbet , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-kselftest@vger.kernel.org Cc: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Samuel Holland Subject: [PATCH v3 00/17] riscv: add SBI FWFT misaligned exception delegation support Date: Mon, 10 Mar 2025 16:12:07 +0100 Message-ID: <20250310151229.2365992-1-cleger@rivosinc.com> X-Mailer: git-send-email 2.47.2 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250310_081247_595535_B4A595C9 X-CRM114-Status: GOOD ( 16.87 ) 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 VGhlIFNCSSBGaXJtd2FyZSBGZWF0dXJlIGV4dGVuc2lvbiBhbGxvd3MgdGhlIFMtbW9kZSB0byBy ZXF1ZXN0IHNvbWUKc3BlY2lmaWMgZmVhdHVyZXMgKGVpdGhlciBoYXJkd2FyZSBvciBzb2Z0d2Fy ZSkgdG8gYmUgZW5hYmxlZC4gVGhpcwpzZXJpZXMgdXNlcyB0aGlzIGV4dGVuc2lvbiB0byByZXF1 ZXN0IG1pc2FsaWduZWQgYWNjZXNzIGV4Y2VwdGlvbgpkZWxlZ2F0aW9uIHRvIFMtbW9kZSBpbiBv cmRlciB0byBsZXQgdGhlIGtlcm5lbCBoYW5kbGUgaXQuIEl0IGFsc28gYWRkcwpzdXBwb3J0IGZv ciB0aGUgS1ZNIEZXRlQgU0JJIGV4dGVuc2lvbiBiYXNlZCBvbiB0aGUgbWlzYWxpZ25lZCBhY2Nl c3MKaGFuZGxpbmcgaW5mcmFzdHJ1Y3R1cmUuCgpGV0ZUIFNCSSBleHRlbnNpb24gaXMgcGFydCBv ZiB0aGUgU0JJIFYzLjAgc3BlY2lmaWNhdGlvbnMgWzFdLiBJdCBjYW4gYmUKdGVzdGVkIHVzaW5n IHRoZSBxZW11IHByb3ZpZGVkIGF0IFsyXSB3aGljaCBjb250YWlucyB0aGUgc2VyaWVzIGZyb20K WzNdLiBrdm0tdW5pdC10ZXN0cyBbNF0gY2FuIGJlIHVzZWQgaW5zaWRlIGt2bSB0byB0ZXN0cyB0 aGUgY29ycmVjdApkZWxlZ2F0aW9uIG9mIG1pc2FsaWduZWQgZXhjZXB0aW9ucy4gVXBzdHJlYW0g T3BlblNCSSBjYW4gYmUgdXNlZC4KCk5vdGU6IFNpbmNlIFNCSSBWMy4wIGlzIG5vdCB5ZXQgcmF0 aWZpZWQsIEZXRlQgZXh0ZW5zaW9uIEFQSSBpcyBzcGxpdApiZXR3ZWVuIGludGVyZmFjZSBvbmx5 IGFuZCBpbXBsZW1lbnRhdGlvbiwgYWxsb3dpbmcgdG8gcGljayBvbmx5IHRoZQppbnRlcmZhY2Ug d2hpY2ggZG8gbm90IGhhdmUgaGFyZCBkZXBlbmRlbmNpZXMgb24gU0JJLgoKVGhlIHRlc3RzIGNh biBiZSBydW4gdXNpbmcgdGhlIGluY2x1ZGVkIGtzZWxmdGVzdDoKCiQgcWVtdS1zeXN0ZW0tcmlz Y3Y2NCBcCgktY3B1IHJ2NjQsdHJhcC1taXNhbGlnbmVkLWFjY2Vzcz10cnVlLHY9dHJ1ZSBcCgkt TSB2aXJ0IFwKCS1tIDEwMjRNIFwKCS1iaW9zIGZ3X2R5bmFtaWMuYmluIFwKCS1rZXJuZWwgSW1h Z2UKIC4uLgoKICMgLi9taXNhbGlnbmVkCiBUQVAgdmVyc2lvbiAxMwogMS4uMjMKICMgU3RhcnRp bmcgMjMgdGVzdHMgZnJvbSAxIHRlc3QgY2FzZXMuCiAjICBSVU4gICAgICAgICAgIGdsb2JhbC5n cF9sb2FkX2xoIC4uLgogIyAgICAgICAgICAgIE9LICBnbG9iYWwuZ3BfbG9hZF9saAogb2sgMSBn bG9iYWwuZ3BfbG9hZF9saAogIyAgUlVOICAgICAgICAgICBnbG9iYWwuZ3BfbG9hZF9saHUgLi4u CiAjICAgICAgICAgICAgT0sgIGdsb2JhbC5ncF9sb2FkX2xodQogb2sgMiBnbG9iYWwuZ3BfbG9h ZF9saHUKICMgIFJVTiAgICAgICAgICAgZ2xvYmFsLmdwX2xvYWRfbHcgLi4uCiAjICAgICAgICAg ICAgT0sgIGdsb2JhbC5ncF9sb2FkX2x3CiBvayAzIGdsb2JhbC5ncF9sb2FkX2x3CiAjICBSVU4g ICAgICAgICAgIGdsb2JhbC5ncF9sb2FkX2x3dSAuLi4KICMgICAgICAgICAgICBPSyAgZ2xvYmFs LmdwX2xvYWRfbHd1CiBvayA0IGdsb2JhbC5ncF9sb2FkX2x3dQogIyAgUlVOICAgICAgICAgICBn bG9iYWwuZ3BfbG9hZF9sZCAuLi4KICMgICAgICAgICAgICBPSyAgZ2xvYmFsLmdwX2xvYWRfbGQK IG9rIDUgZ2xvYmFsLmdwX2xvYWRfbGQKICMgIFJVTiAgICAgICAgICAgZ2xvYmFsLmdwX2xvYWRf Y19sdyAuLi4KICMgICAgICAgICAgICBPSyAgZ2xvYmFsLmdwX2xvYWRfY19sdwogb2sgNiBnbG9i YWwuZ3BfbG9hZF9jX2x3CiAjICBSVU4gICAgICAgICAgIGdsb2JhbC5ncF9sb2FkX2NfbGQgLi4u CiAjICAgICAgICAgICAgT0sgIGdsb2JhbC5ncF9sb2FkX2NfbGQKIG9rIDcgZ2xvYmFsLmdwX2xv YWRfY19sZAogIyAgUlVOICAgICAgICAgICBnbG9iYWwuZ3BfbG9hZF9jX2xkc3AgLi4uCiAjICAg ICAgICAgICAgT0sgIGdsb2JhbC5ncF9sb2FkX2NfbGRzcAogb2sgOCBnbG9iYWwuZ3BfbG9hZF9j X2xkc3AKICMgIFJVTiAgICAgICAgICAgZ2xvYmFsLmdwX2xvYWRfc2ggLi4uCiAjICAgICAgICAg ICAgT0sgIGdsb2JhbC5ncF9sb2FkX3NoCiBvayA5IGdsb2JhbC5ncF9sb2FkX3NoCiAjICBSVU4g ICAgICAgICAgIGdsb2JhbC5ncF9sb2FkX3N3IC4uLgogIyAgICAgICAgICAgIE9LICBnbG9iYWwu Z3BfbG9hZF9zdwogb2sgMTAgZ2xvYmFsLmdwX2xvYWRfc3cKICMgIFJVTiAgICAgICAgICAgZ2xv YmFsLmdwX2xvYWRfc2QgLi4uCiAjICAgICAgICAgICAgT0sgIGdsb2JhbC5ncF9sb2FkX3NkCiBv ayAxMSBnbG9iYWwuZ3BfbG9hZF9zZAogIyAgUlVOICAgICAgICAgICBnbG9iYWwuZ3BfbG9hZF9j X3N3IC4uLgogIyAgICAgICAgICAgIE9LICBnbG9iYWwuZ3BfbG9hZF9jX3N3CiBvayAxMiBnbG9i YWwuZ3BfbG9hZF9jX3N3CiAjICBSVU4gICAgICAgICAgIGdsb2JhbC5ncF9sb2FkX2Nfc2QgLi4u CiAjICAgICAgICAgICAgT0sgIGdsb2JhbC5ncF9sb2FkX2Nfc2QKIG9rIDEzIGdsb2JhbC5ncF9s b2FkX2Nfc2QKICMgIFJVTiAgICAgICAgICAgZ2xvYmFsLmdwX2xvYWRfY19zZHNwIC4uLgogIyAg ICAgICAgICAgIE9LICBnbG9iYWwuZ3BfbG9hZF9jX3Nkc3AKIG9rIDE0IGdsb2JhbC5ncF9sb2Fk X2Nfc2RzcAogIyAgUlVOICAgICAgICAgICBnbG9iYWwuZnB1X2xvYWRfZmx3IC4uLgogIyAgICAg ICAgICAgIE9LICBnbG9iYWwuZnB1X2xvYWRfZmx3CiBvayAxNSBnbG9iYWwuZnB1X2xvYWRfZmx3 CiAjICBSVU4gICAgICAgICAgIGdsb2JhbC5mcHVfbG9hZF9mbGQgLi4uCiAjICAgICAgICAgICAg T0sgIGdsb2JhbC5mcHVfbG9hZF9mbGQKIG9rIDE2IGdsb2JhbC5mcHVfbG9hZF9mbGQKICMgIFJV TiAgICAgICAgICAgZ2xvYmFsLmZwdV9sb2FkX2NfZmxkIC4uLgogIyAgICAgICAgICAgIE9LICBn bG9iYWwuZnB1X2xvYWRfY19mbGQKIG9rIDE3IGdsb2JhbC5mcHVfbG9hZF9jX2ZsZAogIyAgUlVO ICAgICAgICAgICBnbG9iYWwuZnB1X2xvYWRfY19mbGRzcCAuLi4KICMgICAgICAgICAgICBPSyAg Z2xvYmFsLmZwdV9sb2FkX2NfZmxkc3AKIG9rIDE4IGdsb2JhbC5mcHVfbG9hZF9jX2ZsZHNwCiAj ICBSVU4gICAgICAgICAgIGdsb2JhbC5mcHVfc3RvcmVfZnN3IC4uLgogIyAgICAgICAgICAgIE9L ICBnbG9iYWwuZnB1X3N0b3JlX2Zzdwogb2sgMTkgZ2xvYmFsLmZwdV9zdG9yZV9mc3cKICMgIFJV TiAgICAgICAgICAgZ2xvYmFsLmZwdV9zdG9yZV9mc2QgLi4uCiAjICAgICAgICAgICAgT0sgIGds b2JhbC5mcHVfc3RvcmVfZnNkCiBvayAyMCBnbG9iYWwuZnB1X3N0b3JlX2ZzZAogIyAgUlVOICAg ICAgICAgICBnbG9iYWwuZnB1X3N0b3JlX2NfZnNkIC4uLgogIyAgICAgICAgICAgIE9LICBnbG9i YWwuZnB1X3N0b3JlX2NfZnNkCiBvayAyMSBnbG9iYWwuZnB1X3N0b3JlX2NfZnNkCiAjICBSVU4g ICAgICAgICAgIGdsb2JhbC5mcHVfc3RvcmVfY19mc2RzcCAuLi4KICMgICAgICAgICAgICBPSyAg Z2xvYmFsLmZwdV9zdG9yZV9jX2ZzZHNwCiBvayAyMiBnbG9iYWwuZnB1X3N0b3JlX2NfZnNkc3AK ICMgIFJVTiAgICAgICAgICAgZ2xvYmFsLmdlbl9zaWdidXMgLi4uCiBbMTI3OTcuOTg4NjQ3XSBt aXNhbGlnbmVkWzYxOF06IHVuaGFuZGxlZCBzaWduYWwgNyBjb2RlIDB4MSBhdCAweDAwMDAwMDAw MDAwMTRkYzAgaW4gbWlzYWxpZ25lZFs0ZGMwLDEwMDAwKzc2MDAwXQogWzEyNzk3Ljk4ODk5MF0g Q1BVOiAwIFVJRDogMCBQSUQ6IDYxOCBDb21tOiBtaXNhbGlnbmVkIE5vdCB0YWludGVkIDYuMTMu MC1yYzYtMDAwMDgtZzRlYzQ0Njg5NjdjOS1kaXJ0eSAjNTEKIFsxMjc5Ny45ODkxNjldIEhhcmR3 YXJlIG5hbWU6IHJpc2N2LXZpcnRpbyxxZW11IChEVCkKIFsxMjc5Ny45ODkyNjRdIGVwYyA6IDAw MDAwMDAwMDAwMTRkYzAgcmEgOiAwMDAwMDAwMDAwMDE0ZDAwIHNwIDogMDAwMDdmZmZlMTY1ZDEw MAogWzEyNzk3Ljk4OTQwN10gIGdwIDogMDAwMDAwMDAwMDA4ZjZlOCB0cCA6IDAwMDAwMDAwMDAw OTU3NjAgdDAgOiAwMDAwMDAwMDAwMDAwMDA4CiBbMTI3OTcuOTg5NTQ0XSAgdDEgOiAwMDAwMDAw MDAwMDk2NWQ4IHQyIDogMDAwMDAwMDAwMDA4ZTgzMCBzMCA6IDAwMDA3ZmZmZTE2NWQxNjAKIFsx Mjc5Ny45ODk2OTJdICBzMSA6IDAwMDAwMDAwMDAwMDAwMWEgYTAgOiAwMDAwMDAwMDAwMDAwMDAw IGExIDogMDAwMDAwMDAwMDAwMDAwMgogWzEyNzk3Ljk4OTgzMV0gIGEyIDogMDAwMDAwMDAwMDAw MDAwMCBhMyA6IDAwMDAwMDAwMDAwMDAwMDAgYTQgOiBmZmZmZmZmZmRlYWRiZWVmCiBbMTI3OTcu OTg5OTY0XSAgYTUgOiAwMDAwMDAwMDAwMDhlZjYxIGE2IDogNjI2NzY5NzM1ZjZlMDAwMCBhNyA6 IGZmZmZmZmZmZmZmZmYwMDAKIFsxMjc5Ny45OTAwOTRdICBzMiA6IDAwMDAwMDAwMDAwMDAwMDEg czMgOiAwMDAwN2ZmZmUxNjVkODM4IHM0IDogMDAwMDdmZmZlMTY1ZDg0OAogWzEyNzk3Ljk5MDIz OF0gIHM1IDogMDAwMDAwMDAwMDAwMDAxYSBzNiA6IDAwMDAwMDAwMDAwMTA0NDIgczcgOiAwMDAw MDAwMDAwMDEwMjAwCiBbMTI3OTcuOTkwMzkxXSAgczggOiAwMDAwMDAwMDAwMDAwMDNhIHM5IDog MDAwMDAwMDAwMDA5NDUwOCBzMTA6IDAwMDAwMDAwMDAwMDAwMDAKIFsxMjc5Ny45OTA1MjZdICBz MTE6IDAwMDA1NTU1Njc0NjA2NjggdDMgOiAwMDAwN2ZmZmUxNjVkMDcwIHQ0IDogMDAwMDAwMDAw MDA5NjVkMAogWzEyNzk3Ljk5MDY1Nl0gIHQ1IDogZmVmZWZlZmVmZWZlZmVmZiB0NiA6IDAwMDAw MDAwMDAwMDAwNzMKIFsxMjc5Ny45OTA3NTZdIHN0YXR1czogMDAwMDAwMDIwMDAwNDAyMCBiYWRh ZGRyOiAwMDAwMDAwMDAwMDhlZjYxIGNhdXNlOiAwMDAwMDAwMDAwMDAwMDA2CiBbMTI3OTcuOTkw OTExXSBDb2RlOiA4NzkzIDg3OTEgMzQyMyBmY2Y0IDM3ODMgZmM4NCBjNzM3IGRlYWQgMDcxMyBl ZWY3IChjMzk4KSAwMDAxCiAjICAgICAgICAgICAgT0sgIGdsb2JhbC5nZW5fc2lnYnVzCiBvayAy MyBnbG9iYWwuZ2VuX3NpZ2J1cwogIyBQQVNTRUQ6IDIzIC8gMjMgdGVzdHMgcGFzc2VkLgogIyBU b3RhbHM6IHBhc3M6MjMgZmFpbDowIHhmYWlsOjAgeHBhc3M6MCBza2lwOjAgZXJyb3I6MAoKV2l0 aCBrdm0tdG9vbHM6CgogIyBsa3ZtIHJ1biAtayBzYmkuZmxhdCAtbSAxMjgKICBJbmZvOiAjIGxr dm0gcnVuIC1rIHNiaS5mbGF0IC1tIDEyOCAtYyAxIC0tbmFtZSBndWVzdC05NwogIEluZm86IFJl bW92ZWQgZ2hvc3Qgc29ja2V0IGZpbGUgIi9yb290Ly5sa3ZtLy9ndWVzdC05Ny5zb2NrIi4KCiAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIwogIyAgICBrdm0tdW5pdC10ZXN0cwogIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK CiAuLi4gW3Rlc3QgbWVzc2FnZXMgZWxpZGVkXQogUEFTUzogc2JpOiBmd2Z0OiBGV0ZUIGV4dGVu c2lvbiBwcm9iaW5nIG5vIGVycm9yCiBQQVNTOiBzYmk6IGZ3ZnQ6IGdldC9zZXQgcmVzZXJ2ZWQg ZmVhdHVyZSAweDYgZXJyb3IgPT0gU0JJX0VSUl9ERU5JRUQKIFBBU1M6IHNiaTogZndmdDogZ2V0 L3NldCByZXNlcnZlZCBmZWF0dXJlIDB4M2ZmZmZmZmYgZXJyb3IgPT0gU0JJX0VSUl9ERU5JRUQK IFBBU1M6IHNiaTogZndmdDogZ2V0L3NldCByZXNlcnZlZCBmZWF0dXJlIDB4ODAwMDAwMDAgZXJy b3IgPT0gU0JJX0VSUl9ERU5JRUQKIFBBU1M6IHNiaTogZndmdDogZ2V0L3NldCByZXNlcnZlZCBm ZWF0dXJlIDB4YmZmZmZmZmYgZXJyb3IgPT0gU0JJX0VSUl9ERU5JRUQKIFBBU1M6IHNiaTogZndm dDogbWlzYWxpZ25lZF9kZWxlZzogR2V0IG1pc2FsaWduZWQgZGVsZWcgZmVhdHVyZSBubyBlcnJv cgogUEFTUzogc2JpOiBmd2Z0OiBtaXNhbGlnbmVkX2RlbGVnOiBTZXQgbWlzYWxpZ25lZCBkZWxl ZyBmZWF0dXJlIGludmFsaWQgdmFsdWUgZXJyb3IKIFBBU1M6IHNiaTogZndmdDogbWlzYWxpZ25l ZF9kZWxlZzogU2V0IG1pc2FsaWduZWQgZGVsZWcgZmVhdHVyZSBpbnZhbGlkIHZhbHVlIGVycm9y CiBQQVNTOiBzYmk6IGZ3ZnQ6IG1pc2FsaWduZWRfZGVsZWc6IFNldCBtaXNhbGlnbmVkIGRlbGVn IGZlYXR1cmUgdmFsdWUgbm8gZXJyb3IKIFBBU1M6IHNiaTogZndmdDogbWlzYWxpZ25lZF9kZWxl ZzogU2V0IG1pc2FsaWduZWQgZGVsZWcgZmVhdHVyZSB2YWx1ZSAwCiBQQVNTOiBzYmk6IGZ3ZnQ6 IG1pc2FsaWduZWRfZGVsZWc6IFNldCBtaXNhbGlnbmVkIGRlbGVnIGZlYXR1cmUgdmFsdWUgbm8g ZXJyb3IKIFBBU1M6IHNiaTogZndmdDogbWlzYWxpZ25lZF9kZWxlZzogU2V0IG1pc2FsaWduZWQg ZGVsZWcgZmVhdHVyZSB2YWx1ZSAxCiBQQVNTOiBzYmk6IGZ3ZnQ6IG1pc2FsaWduZWRfZGVsZWc6 IFZlcmlmeSBtaXNhbGlnbmVkIGxvYWQgZXhjZXB0aW9uIHRyYXAgaW4gc3VwZXJ2aXNvcgogU1VN TUFSWTogNTAgdGVzdHMsIDIgdW5leHBlY3RlZCBmYWlsdXJlcywgMTIgc2tpcHBlZAoKVGhpcyBz ZXJpZXMgaXMgYXZhaWxhYmxlIGF0IFs2XS4KCkxpbms6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaXNj di1ub24taXNhL3Jpc2N2LXNiaS1kb2MvcmVsZWFzZXMvZG93bmxvYWQvdnYzLjAtcmMyL3Jpc2N2 LXNiaS5wZGYgWzFdCkxpbms6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaXZvc2luYy9xZW11L3RyZWUv ZGV2L2NsZWdlci9taXNhbGlnbmVkIFsyXQpMaW5rOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9h bGwvMjAyNDEyMTEyMTE5MzMuMTk4NzkyLTMtZmtvbnJhZEBhbWQuY29tL1QvIFszXQpMaW5rOiBo dHRwczovL2dpdGh1Yi5jb20vY2xlbWVudGxlZ2VyL2t2bS11bml0LXRlc3RzL3RyZWUvZGV2L2Ns ZWdlci9md2Z0X3YxIFs0XQpMaW5rOiBodHRwczovL2dpdGh1Yi5jb20vY2xlbWVudGxlZ2VyL3Vu YWxpZ25lZF90ZXN0IFs1XQpMaW5rOiBodHRwczovL2dpdGh1Yi5jb20vcml2b3NpbmMvbGludXgv dHJlZS9kZXYvY2xlZ2VyL2Z3ZnRfdjEgWzZdCi0tLQoKVjM6CiAtIEFkZGVkIGNvbW1lbnQgYWJv dXQga3ZtIHNiaSBmd2Z0IHN1cHBvcnRlZC9zZXQvZ2V0IGNhbGxiYWNrCiAgIHJlcXVpcmVtZW50 cwogLSBNb3ZlIHN0cnVjdCBrdm1fc2JpX2Z3ZnRfZmVhdHVyZSBpbiBrdm1fc2JpX2Z3ZnQuYwog LSBBZGQgYSBGV0ZUIGludGVyZmFjZQoKVjI6CiAtIEFkZGVkIEtzZWxmdGVzdCBmb3IgbWlzYWxp Z25lZCB0ZXN0aW5nCiAtIEFkZGVkIGdldF91c2VyKCkgdXNhZ2UgaW5zdGVhZCBvZiBfX2dldF91 c2VyKCkKIC0gUmVlbmFibGUgaW50ZXJydXB0IHdoZW4gcG9zc2libGUgaW4gbWlzYWxpZ25lZCBh Y2Nlc3MgaGFuZGxpbmcKIC0gRG9jdW1lbnQgdGhhdCByaXNjdiBzdXBwb3J0cyB1bmFsaWduZWQt dHJhcHMKIC0gRml4IEtWTSBleHRlbnNpb24gc3RhdGUgd2hlbiBhbiBpbml0IGZ1bmN0aW9uIGlz IHByZXNlbnQKIC0gUmV3b3JrIFNCSSBtaXNhbGlnbmVkIGFjY2Vzc2VzIHRyYXAgZGVsZWdhdGlv biBjb2RlCiAtIEFkZGVkIHN1cHBvcnQgZm9yIENQVSBob3RwbHVnZ2luZwogLSBBZGRlZCBLVk0g U0JJIHJlc2V0IGNhbGxiYWNrCiAtIEFkZGVkIHJlc2V0IGZvciBLVk0gU0JJIEZXRlQgbG9jawog LSBSZXR1cm4gU0JJX0VSUl9ERU5JRURfTE9DS0VEIHdoZW4gTE9DSyBmbGFnIGlzIHNldAoKQ2zD qW1lbnQgTMOpZ2VyICgxNyk6CiAgcmlzY3Y6IGFkZCBGaXJtd2FyZSBGZWF0dXJlIChGV0ZUKSBT QkkgZXh0ZW5zaW9ucyBkZWZpbml0aW9ucwogIHJpc2N2OiBzYmk6IGFkZCBGV0ZUIGV4dGVuc2lv biBpbnRlcmZhY2UKICByaXNjdjogc2JpOiBhZGQgU0JJIEZXRlQgZXh0ZW5zaW9uIGNhbGxzCiAg cmlzY3Y6IG1pc2FsaWduZWQ6IHJlcXVlc3QgbWlzYWxpZ25lZCBleGNlcHRpb24gZnJvbSBTQkkK ICByaXNjdjogbWlzYWxpZ25lZDogdXNlIG9uX2VhY2hfY3B1KCkgZm9yIHNjYWxhciBtaXNhbGln bmVkIGFjY2VzcwogICAgcHJvYmluZwogIHJpc2N2OiBtaXNhbGlnbmVkOiB1c2UgY29ycmVjdCBD T05GSUdfIGlmZGVmIGZvcgogICAgbWlzYWxpZ25lZF9hY2Nlc3Nfc3BlZWQKICByaXNjdjogbWlz YWxpZ25lZDogbW92ZSBlbXVsYXRlZCBhY2Nlc3MgdW5pZm9ybWl0eSBjaGVjayBpbiBhIGZ1bmN0 aW9uCiAgcmlzY3Y6IG1pc2FsaWduZWQ6IGFkZCBhIGZ1bmN0aW9uIHRvIGNoZWNrIG1pc2FsaWdu IHRyYXAgZGVsZWdhYmlsaXR5CiAgcmlzY3Y6IG1pc2FsaWduZWQ6IGZhY3Rvcml6ZSB0cmFwIGhh bmRsaW5nCiAgcmlzY3Y6IG1pc2FsaWduZWQ6IGVuYWJsZSBJUlFzIHdoaWxlIGhhbmRsaW5nIG1p c2FsaWduZWQgYWNjZXNzZXMKICByaXNjdjogbWlzYWxpZ25lZDogdXNlIGdldF91c2VyKCkgaW5z dGVhZCBvZiBfX2dldF91c2VyKCkKICBEb2N1bWVudGF0aW9uL3N5c2N0bDogYWRkIHJpc2N2IHRv IHVuYWxpZ25lZC10cmFwIHN1cHBvcnRlZCBhcmNocwogIHNlbGZ0ZXN0czogcmlzY3Y6IGFkZCBt aXNhbGlnbmVkIGFjY2VzcyB0ZXN0aW5nCiAgUklTQy1WOiBLVk06IGFkZCBTQkkgZXh0ZW5zaW9u IGluaXQoKS9kZWluaXQoKSBmdW5jdGlvbnMKICBSSVNDLVY6IEtWTTogYWRkIFNCSSBleHRlbnNp b24gcmVzZXQgY2FsbGJhY2sKICBSSVNDLVY6IEtWTTogYWRkIHN1cHBvcnQgZm9yIEZXRlQgU0JJ IGV4dGVuc2lvbgogIFJJU0MtVjogS1ZNOiBhZGQgc3VwcG9ydCBmb3IgU0JJX0ZXRlRfTUlTQUxJ R05FRF9ERUxFRwoKIERvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvc3lzY3RsL2tlcm5lbC5yc3Qg ICB8ICAgNCArLQogYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlLmggICAgICAgICAg IHwgICA4ICstCiBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggICAgICAgICAgICAg fCAgIDUgKy0KIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX3ZjcHVfc2JpLmggICAgICAgICB8 ICAxMiArCiBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV92Y3B1X3NiaV9md2Z0LmggICAgfCAg MzEgKysrCiBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3NiaS5oICAgICAgICAgICAgICAgICAgfCAg MzggKysrCiBhcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20va3ZtLmggICAgICAgICAgICAgfCAg IDEgKwogYXJjaC9yaXNjdi9rZXJuZWwvc2JpLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTIz ICsrKysrKysrKwogYXJjaC9yaXNjdi9rZXJuZWwvdHJhcHMuYyAgICAgICAgICAgICAgICAgICAg IHwgIDU3ICsrLS0KIGFyY2gvcmlzY3Yva2VybmVsL3RyYXBzX21pc2FsaWduZWQuYyAgICAgICAg ICB8IDExOSArKysrKysrLQogYXJjaC9yaXNjdi9rZXJuZWwvdW5hbGlnbmVkX2FjY2Vzc19zcGVl ZC5jICAgIHwgIDExICstCiBhcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZSAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDEgKwogYXJjaC9yaXNjdi9rdm0vdmNwdS5jICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICA3ICstCiBhcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaS5jICAgICAgICAgICAgICAgICAg ICAgfCAgNTcgKysrKwogYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfZndmdC5jICAgICAgICAgICAg ICAgIHwgMjUxICsrKysrKysrKysrKysrKysrCiBhcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9zdGEu YyAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIC4uLi9zZWxmdGVzdHMvcmlzY3YvbWlzYWxpZ25l ZC8uZ2l0aWdub3JlICAgICB8ICAgMSArCiAuLi4vc2VsZnRlc3RzL3Jpc2N2L21pc2FsaWduZWQv TWFrZWZpbGUgICAgICAgfCAgMTIgKwogLi4uL3NlbGZ0ZXN0cy9yaXNjdi9taXNhbGlnbmVkL2Nv bW1vbi5TICAgICAgIHwgIDMzICsrKwogLi4uL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jpc2N2L21pc2Fs aWduZWQvZnB1LlMgIHwgMTgwICsrKysrKysrKysrKysKIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3Rz L3Jpc2N2L21pc2FsaWduZWQvZ3AuUyB8IDEwMyArKysrKysrCiAuLi4vc2VsZnRlc3RzL3Jpc2N2 L21pc2FsaWduZWQvbWlzYWxpZ25lZC5jICAgfCAyNTQgKysrKysrKysrKysrKysrKysrCiAyMiBm aWxlcyBjaGFuZ2VkLCAxMjY0IGluc2VydGlvbnMoKyksIDQ3IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGFyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX3ZjcHVfc2JpX2Z3ZnQuaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX2Z3ZnQuYwogY3JlYXRl IG1vZGUgMTAwNjQ0IHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jpc2N2L21pc2FsaWduZWQvLmdp dGlnbm9yZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jpc2N2 L21pc2FsaWduZWQvTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy90ZXN0aW5nL3Nl bGZ0ZXN0cy9yaXNjdi9taXNhbGlnbmVkL2NvbW1vbi5TCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9v bHMvdGVzdGluZy9zZWxmdGVzdHMvcmlzY3YvbWlzYWxpZ25lZC9mcHUuUwogY3JlYXRlIG1vZGUg MTAwNjQ0IHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jpc2N2L21pc2FsaWduZWQvZ3AuUwogY3Jl YXRlIG1vZGUgMTAwNjQ0IHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jpc2N2L21pc2FsaWduZWQv bWlzYWxpZ25lZC5jCgotLSAKMi40Ny4yCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxp c3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9saW51eC1yaXNjdgo=