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 A1204C636CD for ; Wed, 1 Feb 2023 13:01:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id: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=HQt5K+vK3f++IFhIZnoNZqiMGEgl59j6OGwqzf1ULXU=; b=HPQG3yoEi/sDts KXHMFlRIgItrm2XYU0mCFL3Z2q8ldEOF2ETDHEjfrLqCPS9lpMDNRhQXX9noWuV/qH9oMjvlnq1GU RYQjf4q8afpDTEwehr5QFiN0liGc3kq3w0AMdD7XShoH2sMtE6gHcdW2w/c5P0LITZaQzw8BzvskQ wAeoZffTSPULrOvA4s4R/D8Mp+47M+XeTj6cHFs5lPu/NPrR3Prnwdg5xQmsuOg7ExN2ZhQX/HoMH X6FUlvc9HcByXpi+32j1+oGyCN1pZ1lOVHPQ7Wzb6BJEwB/RrUfpMT3FaYiaw3HNDf3JYi7Lj5oJH g+k74xa0F/qx7ZHpJtqA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pNCiA-00BnOQ-Lw; Wed, 01 Feb 2023 12:59:38 +0000 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pNChv-00BnFL-1O for linux-arm-kernel@lists.infradead.org; Wed, 01 Feb 2023 12:59:25 +0000 Received: by mail-wr1-x42b.google.com with SMTP id m7so17221921wru.8 for ; Wed, 01 Feb 2023 04:59:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=VLwwDnyRxUIk04LctYlJIiJXPDb99zDQ0mkniPbimTE=; b=U9RLp3as5sbiG9ImsyZYSkygJF2rsCmvkgMOTFbfS57BJjrA2J23dp5xfYe4goWGRB klpnEfv0qB3H6gdPd8jWI+GjAUpu3O5dzLIWod0Ye148672tK8t4MrJZWmZ6hdNPwzpv C6+qUk5BWgkqkCWMvueVFC6odlvcK2vuQM/4EeLuf9txuzKomdsuP8ki2zMzLVzrB8Rt YrF0oQAAtNk3rfOGFOi+c3crBGWFiWZ0iYSqCbwln35SbgcpQJWkgD17EySDcc2yYV2j BLGF0NZJMasSkbiXnfjQnQRKwmr5usVJF7wS10W9bRxg2Nnp340vufW10kDmM+A2T369 KlwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=VLwwDnyRxUIk04LctYlJIiJXPDb99zDQ0mkniPbimTE=; b=NZmAl6gpFQqLHmdLsEAx9V16Zys+D8tzTcCbS0/qM9+2RIPU9UKaKUGA8TMxsnMayX u23a/ldpUIEHWywIGujrmse41VDvGRrf2TJScUrHlNXT698EeIYzjdoibDsWYDY9IMs5 W6iTUkqfJk7tTSKEC7lXNCYsy4eHdXZLmNwQ9BrePLd2ewCh6yvMJ5kasidnWIVt8qvE SqKPE2dOiSeVv6ukrz1dmO1+tafewgb+ICJJjYzDtRPStIZRaOKql5tMWbxESqYeCBDD SIRtjoDBfUM73jg9IsZNkTbFNPZGCWdviSNeLorEyDxSkhH/rvzk6ur7ExO1tbh1b/G7 S/RQ== X-Gm-Message-State: AO0yUKW6xcljnpPoFPLozqnSYCDf0U6r9gPFf6cSpnvBI1juDs4RI4rl pXTPwfKm3d+tgU2zdkZVesfMgQ== X-Google-Smtp-Source: AK7set+0MVYoW/tl+4fxD0uxWT3sNMcCa/0flt96XdghvR/Hw02VWtwdBqXKUzbsDZD9oTmFAwALnQ== X-Received: by 2002:adf:c754:0:b0:2bf:e533:3158 with SMTP id b20-20020adfc754000000b002bfe5333158mr2556951wrh.20.1675256358203; Wed, 01 Feb 2023 04:59:18 -0800 (PST) Received: from localhost.localdomain (054592b0.skybroadband.com. [5.69.146.176]) by smtp.gmail.com with ESMTPSA id m15-20020a056000024f00b002bfae16ee2fsm17972811wrz.111.2023.02.01.04.59.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Feb 2023 04:59:17 -0800 (PST) From: Jean-Philippe Brucker To: maz@kernel.org, catalin.marinas@arm.com, will@kernel.org, joro@8bytes.org Cc: robin.murphy@arm.com, james.morse@arm.com, suzuki.poulose@arm.com, oliver.upton@linux.dev, yuzenghui@huawei.com, smostafa@google.com, dbrazdil@google.com, ryan.roberts@arm.com, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, iommu@lists.linux.dev, Jean-Philippe Brucker Subject: [RFC PATCH 00/45] KVM: Arm SMMUv3 driver for pKVM Date: Wed, 1 Feb 2023 12:52:44 +0000 Message-Id: <20230201125328.2186498-1-jean-philippe@linaro.org> X-Mailer: git-send-email 2.39.0 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230201_045923_112339_39BCC018 X-CRM114-Status: GOOD ( 33.34 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org VGhlIHBLVk0gaHlwZXJ2aXNvciwgcmVjZW50bHkgaW50cm9kdWNlZCBvbiBhcm02NCwgcHJvdmlk ZXMgYSBzZXBhcmF0aW9uCm9mIHByaXZpbGVnZXMgYmV0d2VlbiB0aGUgaG9zdCBhbmQgaHlwZXJ2 aXNvciBwYXJ0cyBvZiBLVk0sIHdoZXJlIHRoZQpoeXBlcnZpc29yIGlzIHRydXN0ZWQgYnkgZ3Vl c3RzIGJ1dCB0aGUgaG9zdCBpcyBub3QgWzFdLiBUaGUgaG9zdCBpcwppbml0aWFsbHkgdHJ1c3Rl ZCBkdXJpbmcgYm9vdCwgYnV0IGl0cyBwcml2aWxlZ2VzIGFyZSByZWR1Y2VkIGFmdGVyIEtWTQpp cyBpbml0aWFsaXplZCBzbyB0aGF0LCBpZiBhbiBhZHZlcnNhcnkgbGF0ZXIgZ2FpbnMgYWNjZXNz IHRvIHRoZSBsYXJnZQphdHRhY2sgc3VyZmFjZSBvZiB0aGUgaG9zdCwgaXQgY2Fubm90IGFjY2Vz cyBndWVzdCBkYXRhLgoKQ3VycmVudGx5IHdpdGggcEtWTSwgdGhlIGhvc3QgY2FuIHN0aWxsIGlu c3RydWN0IERNQS1jYXBhYmxlIGRldmljZXMKbGlrZSB0aGUgR1BVIHRvIGFjY2VzcyBndWVzdCBh bmQgaHlwZXJ2aXNvciBtZW1vcnksIHdoaWNoIHVuZGVybWluZXMKdGhpcyBpc29sYXRpb24uIFBy ZXZlbnRpbmcgRE1BIGF0dGFja3MgcmVxdWlyZXMgYW4gSU9NTVUsIG93bmVkIGJ5IHRoZQpoeXBl cnZpc29yLgoKVGhpcyBzZXJpZXMgYWRkcyBhIGh5cGVydmlzb3IgZHJpdmVyIGZvciB0aGUgQXJt IFNNTVV2MyBJT01NVS4gU2luY2UgdGhlCmh5cGVydmlzb3IgcGFydCBvZiBwS1ZNIChjYWxsZWQg blZIRSBoZXJlKSBpcyBtaW5pbWFsLCBtb3ZpbmcgdGhlIHdob2xlCmhvc3QgU01NVSBkcml2ZXIg aW50byBuVkhFIGlzbid0IHJlYWxseSBhbiBvcHRpb24uIEl0IGlzIHRvbyBsYXJnZSBhbmQKY29t cGxleCBhbmQgcmVxdWlyZXMgaW5mcmFzdHJ1Y3R1cmUgZnJvbSBhbGwgb3ZlciB0aGUga2VybmVs LiBXZSBhZGQgYQpyZWR1Y2VkIG5WSEUgZHJpdmVyIHRoYXQgZGVhbHMgd2l0aCBwb3B1bGF0aW5n IHRoZSBTTU1VIHRhYmxlcyBhbmQgdGhlCmNvbW1hbmQgcXVldWUsIGFuZCB0aGUgaG9zdCBkcml2 ZXIgc3RpbGwgZGVhbHMgd2l0aCBwcm9iaW5nIGFuZCBzb21lCmluaXRpYWxpemF0aW9uLgoKClBh dGNoIG92ZXJ2aWV3Cj09PT09PT09PT09PT09CgpBIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhp cyBzZXJpZXMganVzdCBtb3ZlcyBhbmQgZmFjdG9ycyBjb2RlIHRvCmF2b2lkIGR1cGxpY2F0aW9u cy4gVGhpbmdzIGdldCBpbnRlcmVzdGluZyBvbmx5IGFyb3VuZCBwYXRjaCAxNSwgd2hpY2gKYWRk cyB0d28gaGVscGVycyB0aGF0IHRyYWNrIHBhZ2VzIG1hcHBlZCBpbiB0aGUgSU9NTVUsIGFuZCBl bnN1cmUgdGhvc2UKcGFnZXMgYXJlIG5vdCBkb25hdGVkIHRvIGd1ZXN0cy4gVGhlbiBwYXRjaGVz IDE2LTI3IGFkZCB0aGUgaHlwZXJ2aXNvcgpJT01NVSBkcml2ZXIsIHNwbGl0IGludG8gYSBnZW5l cmljIHBhcnQgdGhhdCBjYW4gYmUgcmV1c2VkIGJ5IG90aGVyCmRyaXZlcnMsIGFuZCBjb2RlIHNw ZWNpZmljIHRvIFNNTVV2My4KClBhdGNoZXMgMzQtNDAgaW50cm9kdWNlIHRoZSBob3N0IGNvbXBv bmVudCBvZiB0aGUgcEtWTSBTTU1VdjMgZHJpdmVyLAp3aGljaCBpbml0aWFsaXplcyB0aGUgY29u ZmlndXJhdGlvbiBhbmQgZm9yd2FyZHMgbWFwcGluZyByZXF1ZXN0cyB0byB0aGUKaHlwZXJ2aXNv ci4gSWRlYWxseSB0aGVyZSB3b3VsZCBiZSBhIHNpbmdsZSBob3N0IGRyaXZlciB3aXRoIHR3byBz ZXRzIG9mCklPTU1VIG9wcywgYW5kIHdoaWxlIEkgYmVsaWV2ZSBtb3JlIGNvZGUgY2FuIHN0aWxs IGJlIHNoYXJlZCwgdGhlCmluaXRpYWxpemF0aW9uIGlzIHZlcnkgZGlmZmVyZW50IGFuZCBoYXZp bmcgc2VwYXJhdGUgZHJpdmVyIGVudHJ5IHBvaW50cwpzZWVtcyBjbGVhcmVyLgoKUGF0Y2hlcyA0 MS00NSBwcm92aWRlIGEgcm91Z2ggZXhhbXBsZSBvZiBwb3dlciBtYW5hZ2VtZW50IHRocm91Z2gg U0NNSS4KQWx0aG91Z2ggdGhlIGhvc3QgZGVjaWRlcyBvbiBwb3dlciBtYW5hZ2VtZW50IHBvbGlj aWVzLCB0aGUgaHlwZXJ2aXNvcgptdXN0IGF0IGxlYXN0IGJlIGF3YXJlIG9mIHBvd2VyIGNoYW5n ZXMsIHNvIHRoYXQgaXQgZG9lc24ndCBhY2Nlc3MgcG93ZXJlZApkb3duIGludGVyZmFjZXMuIFdl IGV4cGVjdCB0aGF0IHRoZSBwbGF0Zm9ybSBjb250cm9sbGVyIGVuZm9yY2VzCmRlcGVuZGVuY2ll cyBzbyB0aGF0IERNQSBkb2Vzbid0IGJ5cGFzcyBhIHBvd2VyZWQgZG93biBJT01NVS4gQnV0IHRo ZXNlCnRoaW5ncyBhcmUgdW5mb3J0dW5hdGVseSBwbGF0Zm9ybSBkZXBlbmRlbnQgYW5kIHRoZSBT Q01JIHBhdGNoZXMgYXJlCm9ubHkgaWxsdXN0cmF0aXZlLgoKVGhlc2UgcGF0Y2hlcyBpbiBwYXJ0 aWN1bGFyIGFyZSBiZXN0IHJldmlld2VkIHdpdGggZ2l0J3MgLS1jb2xvci1tb3ZlZDoKMSwyCWlv bW11L2lvLXBndGFibGUtYXJtOiBTcGxpdCoKNywyOS0zMglpb21tdS9hcm0tc21tdS12MzogTW92 ZSoKCkEgZGV2ZWxvcG1lbnQgYnJhbmNoIGlzIGF2YWlsYWJsZSBhdApodHRwczovL2pwYnJ1Y2tl ci5uZXQvZ2l0L2xpbnV4IHBrdm0vc21tdQoKCkRlc2lnbgo9PT09PT0KCldlJ3ZlIGV4cGxvcmVk IHRocmVlIHNvbHV0aW9ucyBzbyBmYXIuIFRoaXMgcG9zdGluZyBpbXBsZW1lbnRzIHRoZSB0aGly ZApvbmUsIHNsaWdodGx5IG1vcmUgaW52YXNpdmUgaW4gdGhlIGh5cGVydmlzb3IgYnV0IHRoZSBt b3N0IGZsZXhpYmxlLgoKMS4gU2hhcmluZyBzdGFnZS0yIHBhZ2UgdGFibGVzCgpUaGlzIGlzIHRo ZSBzaW1wbGVzdCBzb2x1dGlvbiwgc2hhcmluZyB0aGUgc3RhZ2UtMiBwYWdlIHRhYmxlcyAod2hp Y2gKdHJhbnNsYXRlcyBob3N0IHBoeXNpY2FsIGFkZHJlc3MgLT4gc3lzdGVtIHBoeXNpY2FsIGFk ZHJlc3MpIGJldHdlZW4gQ1BVCmFuZCBTTU1VLiBXaGF0ZXZlciB0aGUgaG9zdCBjYW4gYWNjZXNz IG9uIHRoZSBDUFUsIGl0IGNhbiBhbHNvIGFjY2VzcyB3aXRoCkRNQS4gTWVtb3J5IHRoYXQgaXMg bm90IGFjY2Vzc2libGUgdG8gdGhlIGhvc3QgYmVjYXVzZSBkb25hdGVkIHRvIHRoZQpoeXBlcnZp c29yIG9yIGd1ZXN0cywgRE1BIGNhbm5vdCBhY2Nlc3MgZWl0aGVyLgoKcEtWTSBub3JtYWxseSBw b3B1bGF0ZXMgdGhlIGhvc3Qgc3RhZ2UtMiBwYWdlIHRhYmxlcyBsYXppbHksIHdoZW4gdGhlIGhv c3QKZmlyc3QgYWNjZXNzZXMgdGhlbS4gSG93ZXZlciB0aGlzIHJlbGllcyBvbiBDUFUgcGFnZSBm YXVsdHMsIGFuZCBETUEKZ2VuZXJhbGx5IGNhbm5vdCBmYXVsdC4gVGhlIHdob2xlIHN0YWdlLTIg bXVzdCB0aGVyZWZvcmUgYmUgcG9wdWxhdGVkIGF0CmJvb3QuIFRoYXQncyBlYXN5IHRvIGRvIGJl Y2F1c2UgdGhlIEhQQS0+UEEgbWFwcGluZyBmb3IgdGhlIGhvc3QgaXMgYW4KaWRlbnRpdHkuCgpJ dCBnZXRzIG1vcmUgY29tcGxpY2F0ZWQgd2hlbiBkb25hdGluZyBzb21lIHBhZ2VzIHRvIGd1ZXN0 cywgd2hpY2gKaW52b2x2ZXMgcmVtb3ZpbmcgdGhvc2UgcGFnZXMgZnJvbSB0aGUgaG9zdCBzdGFn ZS0yLiBUbyBzYXZlIG1lbW9yeSBhbmQgYmUKVExCIGVmZmljaWVudCwgdGhlIHN0YWdlLTIgaXMg bWFwcGVkIHdpdGggYmxvY2sgbWFwcGluZ3MgKDFHIG9yIDJNQgpjb250aWd1b3VzIHJhbmdlLCBy YXRoZXIgdGhhbiBpbmRpdmlkdWFsIDRrIHVuaXRzKS4gV2hlbiBkb25hdGluZyBhIHBhZ2UKZnJv bSB0aGF0IHJhbmdlLCB0aGUgaHlwZXJ2aXNvciBtdXN0IHJlbW92ZSB0aGUgYmxvY2sgbWFwcGlu ZywgYW5kIHJlcGxhY2UKaXQgd2l0aCBhIHRhYmxlIHRoYXQgZXhjbHVkZXMgdGhlIGRvbmF0ZWQg cGFnZS4gU2luY2UgYSBkZXZpY2UgbWF5IGJlCnNpbXVsdGFuZW91c2x5IHBlcmZvcm1pbmcgRE1B IG9uIG90aGVyIHBhZ2VzIGluIHRoZSByYW5nZSwgdGhpcwpyZXBsYWNlbWVudCBvcGVyYXRpb24g bXVzdCBiZSBhdG9taWMuIE90aGVyd2lzZSBETUEgbWF5IHJlYWNoIHRoZSBTTU1VCmR1cmluZyBh IHNtYWxsIHBlcmlvZCBvZiB0aW1lIHdoZXJlIHRoZSBtYXBwaW5nIGlzIGludmFsaWQsIGFuZCBm YXRhbGx5CmFib3J0LgoKVGhlIEFybSBhcmNoaXRlY3R1cmUgc3VwcG9ydHMgYXRvbWljIHJlcGxh Y2VtZW50IG9mIGJsb2NrIG1hcHBpbmdzIG9ubHkKc2luY2UgdmVyc2lvbiA4LjQgKEZFQVRfQkJN KSwgYW5kIGl0IGlzIG9wdGlvbmFsLiBTbyB0aGlzIHNvbHV0aW9uLCB3aGlsZQp0ZW1wdGluZywg aXMgbm90IHN1ZmZpY2llbnQuCgoyLiBQaW5uaW5nIERNQSBtYXBwaW5ncyBpbiB0aGUgc2hhcmVk IHN0YWdlLTIKCkJ1aWxkaW5nIG9uIHRoZSBmaXJzdCBzb2x1dGlvbiwgd2UgY2FuIGxldCB0aGUg aG9zdCBub3RpZnkgdGhlIGh5cGVydmlzb3IKYWJvdXQgcGFnZXMgdXNlZCBmb3IgRE1BLiBUaGlz IHdheSBibG9jayBtYXBwaW5ncyBhcmUgYnJva2VuIGludG8gdGFibGVzCndoZW4gdGhlIGhvc3Qg c2V0cyB1cCBETUEsIGFuZCBkb25hdGluZyBuZWlnaGJvdXJpbmcgcGFnZXMgdG8gZ3Vlc3RzIHdv bid0CmNhdXNlIGJsb2NrIHJlcGxhY2VtZW50LgoKVGhpcyBzb2x1dGlvbiBhZGRzIHJ1bnRpbWUg b3ZlcmhlYWQgYmVjYXVzZSBjYWxscyB0aGUgRE1BIEFQSSBhcmUgbm93CmZvcndhcmRlZCB0byB0 aGUgaHlwZXJ2aXNvciwgd2hpY2ggbmVlZHMgdG8gdXBkYXRlIHRoZSBzdGFnZS0yIG1hcHBpbmdz LgoKQWxsIGluIGFsbCwgSSBiZWxpZXZlIHRoaXMgaXMgYSBnb29kIHNvbHV0aW9uIGlmIHRoZSBo YXJkd2FyZSBpcyB1cCB0byB0aGUKdGFzay4gQnV0IHNoYXJpbmcgcGFnZSB0YWJsZXMgcmVxdWly ZXMgbWF0Y2hpbmcgY2FwYWJpbGl0aWVzIGJldHdlZW4gdGhlCnN0YWdlLTIgTU1VIGFuZCBTTU1V LCBhbmQgd2UgZG9uJ3QgZXhwZWN0IGFsbCBwbGF0Zm9ybXMgdG8gc3VwcG9ydCB0aGUKcmVxdWly ZWQgZmVhdHVyZXMsIGVzcGVjaWFsbHkgb24gbW9iaWxlIHBsYXRmb3JtcyB3aGVyZSBjaGlwIGFy ZWEgaXMKY29zdGx5LgoKMy4gUHJpdmF0ZSBJL08gcGFnZSB0YWJsZXMKCkEgZmxleGlibGUgYWx0 ZXJuYXRpdmUgdXNlcyBwcml2YXRlIHBhZ2UgdGFibGVzIGluIHRoZSBTTU1VLCBlbnRpcmVseQpk aXNjb25uZWN0ZWQgZnJvbSB0aGUgQ1BVIHBhZ2UgdGFibGVzLiBXaXRoIHRoaXMgdGhlIFNNTVUg Y2FuIGltcGxlbWVudCBhCnJlZHVjZWQgc2V0IG9mIGZlYXR1cmVzLCBldmVuIHNoZWQgYSBzdGFn ZSBvZiB0cmFuc2xhdGlvbi4gVGhpcyBhbHNvCnByb3ZpZGVzIGEgdmlydHVhbCBJL08gYWRkcmVz cyBzcGFjZSB0byB0aGUgaG9zdCwgd2hpY2ggYWxsb3dzIG1vcmUKZWZmaWNpZW50IG1lbW9yeSBh bGxvY2F0aW9uIGZvciBsYXJnZSBidWZmZXJzLCBhbmQgZm9yIGRldmljZXMgd2l0aApsaW1pdGVk IGFkZHJlc3NpbmcgYWJpbGl0aWVzLgoKVGhpcyBpcyB0aGUgc29sdXRpb24gaW1wbGVtZW50ZWQg aW4gdGhpcyBzZXJpZXMuIFRoZSBob3N0IGNyZWF0ZXMKSU9WQS0+SFBBIG1hcHBpbmdzIHdpdGgg dHdvIGh5cGVyY2FsbHMgbWFwX3BhZ2VzKCkgYW5kIHVubWFwX3BhZ2VzKCksIGFuZAp0aGUgaHlw ZXJ2aXNvciBwb3B1bGF0ZXMgdGhlIHBhZ2UgdGFibGVzLiBQYWdlIHRhYmxlcyBhcmUgYWJzdHJh Y3RlZCBpbnRvCklPTU1VIGRvbWFpbnMsIHdoaWNoIGFsbG93IG11bHRpcGxlIGRldmljZXMgdG8g c2hhcmUgdGhlIHNhbWUgYWRkcmVzcwpzcGFjZS4gQW5vdGhlciBmb3VyIGh5cGVyY2FsbHMsIGFs bG9jX2RvbWFpbigpLCBhdHRhY2hfZGV2KCksIGRldGFjaF9kZXYoKQphbmQgZnJlZV9kb21haW4o KSwgbWFuYWdlIHRoZSBkb21haW5zLgoKQWx0aG91Z2ggdGhlIGh5cGVydmlzb3IgYWxyZWFkeSBo YXMgcGd0YWJsZS5jIHRvIHBvcHVsYXRlIENQVSBwYWdlIHRhYmxlcywKd2UgaW1wb3J0IHRoZSBp by1wZ3RhYmxlIGxpYnJhcnkgYmVjYXVzZSBpdCBpcyBtb3JlIHN1aXRlZCB0byBJT01NVSBwYWdl CnRhYmxlcy4gSXQgc3VwcG9ydHMgYXJiaXRyYXJ5IHBhZ2UgYW5kIGFkZHJlc3Mgc2l6ZXMsIG5v bi1jb2hlcmVudCBwYWdlCndhbGtzLCBxdWlya3MgYW5kIGVycmF0YSB3b3JrYXJvdW5kcyBzcGVj aWZpYyB0byBJT01NVSBpbXBsZW1lbnRhdGlvbnMsCmFuZCBhdG9taWNhbGx5IHN3aXRjaGluZyBi ZXR3ZWVuIHRhYmxlcyBhbmQgYmxvY2tzIHdpdGhvdXQgbGF6eSByZW1hcHBpbmcuCgoKUGVyZm9y bWFuY2UKPT09PT09PT09PT0KCkJvdGggc29sdXRpb25zIDIgYW5kIDMgYWRkIG92ZXJoZWFkIHRv IERNQSBtYXBwaW5ncywgYW5kIHNpbmNlIHRoZQpoeXBlcnZpc29yIHJlbGllcyBvbiBnbG9iYWwg bG9ja3MgYXQgdGhlIG1vbWVudCwgdGhleSBzY2FsZSBwb29ybHkuCkludGVyZXN0aW5nbHkgc29s dXRpb24gMyBjYW4gYmUgb3B0aW1pemVkIHRvIHNjYWxlIHJlYWxseSB3ZWxsIG9uIHRoZQptYXAo KSBwYXRoLiBXZSBjYW4gcmVtb3ZlIHRoZSBoeXBlcnZpc29yIElPTU1VIGxvY2sgaW4gbWFwKCkv dW5tYXAoKSBieQpob2xkaW5nIGRvbWFpbiByZWZlcmVuY2VzLCBhbmQgdGhlbiB1c2UgdGhlIGh5 cCB2bWVtbWFwIHRvIHRyYWNrIERNQSBzdGF0ZQpvZiBwYWdlcyBhdG9taWNhbGx5LCB3aXRob3V0 IHVwZGF0aW5nIHRoZSBDUFUgc3RhZ2UtMiB0YWJsZXMuIERvbmF0aW9uIGFuZApzaGFyaW5nIHdv dWxkIHRoZW4gbmVlZCB0byBpbnNwZWN0IHRoZSB2bWVtbWFwLiBPbiB0aGUgdW5tYXAoKSBwYXRo LCB0aGUKc2luZ2xlIGNvbW1hbmQgcXVldWUgZm9yIFRMQiBpbnZhbGlkYXRpb25zIHN0aWxsIHJl cXVpcmVzIGxvY2tpbmcuCgpUbyBnaXZlIGEgcm91Z2ggaWRlYSwgdGhlc2UgYXJlIGRtYV9tYXBf YmVuY2htYXJrIHJlc3VsdHMgb24gYSA5Ni1jb3JlCnNlcnZlciAoNCBOVU1BIG5vZGVzLCBTTU1V IG9uIG5vZGUgMCkuIEknbSBhZGRpbmcgdGhlc2UgYmVjYXVzZSBJIGZvdW5kCnRoZSBtYWduaXR1 ZGVzIGludGVyZXN0aW5nIGJ1dCBkbyB0YWtlIHRoZW0gd2l0aCBhIGdyYWluIG9mIHNhbHQsIG15 Cm1ldGhvZG9sb2d5IHdhc24ndCBwYXJ0aWN1bGFybHkgdGhvcm91Z2ggKGFsdGhvdWdoIHRoZSBu dW1iZXJzIHNlZW0KcmVwZWF0YWJsZSkuIE51bWJlcnMgcmVwcmVzZW50IHRoZSBhdmVyYWdlIHRp bWUgbmVlZGVkIGZvciBvbmUKZG1hX21hcC9kbWFfdW5tYXAgY2FsbCBpbiDOvHMsIGxvd2VyIGlz IGJldHRlci4KCgkJCTEgdGhyZWFkCTE2IHRocmVhZHMgKG5vZGUgMCkJOTYgdGhyZWFkcwpob3N0 IG9ubHkJCTAuMi8wLjcJCTAuNC8zLjUJCQkxLjcvODEKcGt2bSAodGhpcyBzZXJpZXMpCTAuNS8y LjIJCTI4LzUxCQkJMjkxLzU0Mgpwa3ZtICgrb3B0aW1pemF0aW9ucykJMC4zLzEuOQkJMC40LzM4 CQkJMC44LzMwNAoKClsxXSBodHRwczovL2xvcmUua2VybmVsLm9yZy9rdm1hcm0vMjAyMjA1MTkx MzQyMDQuNTM3OS0xLXdpbGxAa2VybmVsLm9yZy8KCgpEYXZpZCBCcmF6ZGlsICgxKToKICBLVk06 IGFybTY0OiBJbnRyb2R1Y2UgSU9NTVUgZHJpdmVyIGluZnJhc3RydWN0dXJlCgpKZWFuLVBoaWxp cHBlIEJydWNrZXIgKDQ0KToKICBpb21tdS9pby1wZ3RhYmxlLWFybTogU3BsaXQgdGhlIHBhZ2Ug dGFibGUgZHJpdmVyCiAgaW9tbXUvaW8tcGd0YWJsZS1hcm06IFNwbGl0IGluaXRpYWxpemF0aW9u CiAgaW9tbXUvaW8tcGd0YWJsZTogTW92ZSBmbXQgaW50byBpb19wZ3RhYmxlX2NmZwogIGlvbW11 L2lvLXBndGFibGU6IEFkZCBjb25maWd1cmUoKSBvcGVyYXRpb24KICBpb21tdS9pby1wZ3RhYmxl OiBTcGxpdCBpb19wZ3RhYmxlIHN0cnVjdHVyZQogIGlvbW11L2lvLXBndGFibGUtYXJtOiBFeHRl bmQgX19hcm1fbHBhZV9mcmVlX3BndGFibGUoKSB0byBvbmx5IGZyZWUKICAgIGNoaWxkIHRhYmxl cwogIGlvbW11L2FybS1zbW11LXYzOiBNb3ZlIHNvbWUgZGVmaW5pdGlvbnMgdG8gYXJtNjQgaW5j bHVkZS8KICBLVk06IGFybTY0OiBwa3ZtOiBBZGQgcGt2bV91ZGVsYXkoKQogIEtWTTogYXJtNjQ6 IHBrdm06IEFkZCBwa3ZtX2NyZWF0ZV9oeXBfZGV2aWNlX21hcHBpbmcoKQogIEtWTTogYXJtNjQ6 IHBrdm06IEV4cG9zZSBwa3ZtX21hcC91bm1hcF9kb25hdGVkX21lbW9yeSgpCiAgS1ZNOiBhcm02 NDogcGt2bTogRXhwb3NlIHBrdm1fYWRtaXRfaG9zdF9wYWdlKCkKICBLVk06IGFybTY0OiBwa3Zt OiBVbmlmeSBwa3ZtX3Brdm1fdGVhcmRvd25fZG9uYXRlZF9tZW1vcnkoKQogIEtWTTogYXJtNjQ6 IHBrdm06IEFkZCBoeXBfcGFnZV9yZWZfaW5jX3JldHVybigpCiAgS1ZNOiBhcm02NDogcGt2bTog UHJldmVudCBob3N0IGRvbmF0aW9uIG9mIGRldmljZSBtZW1vcnkKICBLVk06IGFybTY0OiBwa3Zt OiBBZGQgX19wa3ZtX2hvc3Rfc2hhcmUvdW5zaGFyZV9kbWEoKQogIEtWTTogYXJtNjQ6IHBrdm06 IEFkZCBJT01NVSBoeXBlcmNhbGxzCiAgS1ZNOiBhcm02NDogaW9tbXU6IEFkZCBwZXItY3B1IHBh Z2UgcXVldWUKICBLVk06IGFybTY0OiBpb21tdTogQWRkIGRvbWFpbnMKICBLVk06IGFybTY0OiBp b21tdTogQWRkIG1hcCgpIGFuZCB1bm1hcCgpIG9wZXJhdGlvbnMKICBLVk06IGFybTY0OiBpb21t dTogQWRkIFNNTVV2MyBkcml2ZXIKICBLVk06IGFybTY0OiBzbW11LXYzOiBJbml0aWFsaXplIHJl Z2lzdGVycwogIEtWTTogYXJtNjQ6IHNtbXUtdjM6IFNldHVwIGNvbW1hbmQgcXVldWUKICBLVk06 IGFybTY0OiBzbW11LXYzOiBTZXR1cCBzdHJlYW0gdGFibGUKICBLVk06IGFybTY0OiBzbW11LXYz OiBSZXNldCB0aGUgZGV2aWNlCiAgS1ZNOiBhcm02NDogc21tdS12MzogU3VwcG9ydCBpby1wZ3Rh YmxlCiAgS1ZNOiBhcm02NDogc21tdS12MzogU2V0dXAgZG9tYWlucyBhbmQgcGFnZSB0YWJsZSBj b25maWd1cmF0aW9uCiAgaW9tbXUvYXJtLXNtbXUtdjM6IEV4dHJhY3QgZHJpdmVyLXNwZWNpZmlj IGJpdHMgZnJvbSBwcm9iZSBmdW5jdGlvbgogIGlvbW11L2FybS1zbW11LXYzOiBNb3ZlIHNvbWUg ZnVuY3Rpb25zIHRvIGFybS1zbW11LXYzLWNvbW1vbi5jCiAgaW9tbXUvYXJtLXNtbXUtdjM6IE1v dmUgcXVldWUgYW5kIHRhYmxlIGFsbG9jYXRpb24gdG8KICAgIGFybS1zbW11LXYzLWNvbW1vbi5j CiAgaW9tbXUvYXJtLXNtbXUtdjM6IE1vdmUgZmlybXdhcmUgcHJvYmUgdG8gYXJtLXNtbXUtdjMt Y29tbW9uCiAgaW9tbXUvYXJtLXNtbXUtdjM6IE1vdmUgSU9NTVUgcmVnaXN0cmF0aW9uIHRvIGFy bS1zbW11LXYzLWNvbW1vbi5jCiAgaW9tbXUvYXJtLXNtbXUtdjM6IFVzZSBzaW5nbGUgcGFnZXMg Zm9yIGxldmVsLTIgc3RyZWFtIHRhYmxlcwogIGlvbW11L2FybS1zbW11LXYzOiBBZGQgaG9zdCBk cml2ZXIgZm9yIHBLVk0KICBpb21tdS9hcm0tc21tdS12My1rdm06IFBhc3MgYSBsaXN0IG9mIFNN TVUgZGV2aWNlcyB0byB0aGUgaHlwZXJ2aXNvcgogIGlvbW11L2FybS1zbW11LXYzLWt2bTogVmFs aWRhdGUgZGV2aWNlIGZlYXR1cmVzCiAgaW9tbXUvYXJtLXNtbXUtdjMta3ZtOiBBbGxvY2F0ZSBz dHJ1Y3R1cmVzIGFuZCByZXNldCBkZXZpY2UKICBpb21tdS9hcm0tc21tdS12My1rdm06IEFkZCBw ZXItY3B1IHBhZ2UgcXVldWUKICBpb21tdS9hcm0tc21tdS12My1rdm06IEluaXRpYWxpemUgcGFn ZSB0YWJsZSBjb25maWd1cmF0aW9uCiAgaW9tbXUvYXJtLXNtbXUtdjMta3ZtOiBBZGQgSU9NTVUg b3BzCiAgS1ZNOiBhcm02NDogcGt2bTogQWRkIF9fcGt2bV9ob3N0X2FkZF9yZW1vdmVfcGFnZSgp CiAgS1ZNOiBhcm02NDogcGt2bTogU3VwcG9ydCBTQ01JIHBvd2VyIGRvbWFpbgogIEtWTTogYXJt NjQ6IHNtbXUtdjM6IFN1cHBvcnQgcG93ZXIgbWFuYWdlbWVudAogIGlvbW11L2FybS1zbW11LXYz LWt2bTogU3VwcG9ydCBwb3dlciBtYW5hZ2VtZW50IHdpdGggU0NNSSBTTUMKICBpb21tdS9hcm0t c21tdS12My1rdm06IEVuYWJsZSBydW50aW1lIFBNCgogZHJpdmVycy9pb21tdS9LY29uZmlnICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArCiB2aXJ0L2t2bS9LY29uZmlnICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIGFyY2gvYXJtNjQva3ZtL2h5cC9udmhlL01h a2VmaWxlICAgICAgICAgICAgICB8ICAgIDYgKwogZHJpdmVycy9pb21tdS9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQogZHJpdmVycy9pb21tdS9hcm0vYXJtLXNtbXUt djMvTWFrZWZpbGUgICAgICAgIHwgICAgNiArCiBhcmNoL2FybTY0L2luY2x1ZGUvYXNtL2FybS1z bW11LXYzLXJlZ3MuaCAgICAgfCAgNDc4ICsrKysrKysrCiBhcmNoL2FybTY0L2luY2x1ZGUvYXNt L2t2bV9hc20uaCAgICAgICAgICAgICAgfCAgICA3ICsKIGFyY2gvYXJtNjQvaW5jbHVkZS9hc20v a3ZtX2hvc3QuaCAgICAgICAgICAgICB8ICAgIDUgKwogYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9r dm1faHlwLmggICAgICAgICAgICAgIHwgICAgNCArLQogYXJjaC9hcm02NC9rdm0vaHlwL2luY2x1 ZGUvbnZoZS9pb21tdS5oICAgICAgIHwgIDExNSArKwogYXJjaC9hcm02NC9rdm0vaHlwL2luY2x1 ZGUvbnZoZS9tZW1fcHJvdGVjdC5oIHwgICAxMSArLQogYXJjaC9hcm02NC9rdm0vaHlwL2luY2x1 ZGUvbnZoZS9tZW1vcnkuaCAgICAgIHwgICAxNSArLQogYXJjaC9hcm02NC9rdm0vaHlwL2luY2x1 ZGUvbnZoZS9tbS5oICAgICAgICAgIHwgICAgMiArCiBhcmNoL2FybTY0L2t2bS9oeXAvaW5jbHVk ZS9udmhlL3Brdm0uaCAgICAgICAgfCAgIDI5ICsKIC4uLi9hcm02NC9rdm0vaHlwL2luY2x1ZGUv bnZoZS90cmFwX2hhbmRsZXIuaCB8ICAgIDIgKwogZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3Bh bmZyb3N0X2RldmljZS5oICAgIHwgICAgMiArLQogZHJpdmVycy9pb21tdS9hbWQvYW1kX2lvbW11 X3R5cGVzLmggICAgICAgICAgIHwgICAxNyArLQogZHJpdmVycy9pb21tdS9hcm0vYXJtLXNtbXUt djMvYXJtLXNtbXUtdjMuaCAgIHwgIDUxMCArLS0tLS0tLQogZHJpdmVycy9pb21tdS9hcm0vYXJt LXNtbXUvYXJtLXNtbXUuaCAgICAgICAgIHwgICAgMiArLQogZHJpdmVycy9pb21tdS9pby1wZ3Rh YmxlLWFybS5oICAgICAgICAgICAgICAgIHwgICAzMCAtCiBpbmNsdWRlL2t2bS9hcm1fc21tdV92 My5oICAgICAgICAgICAgICAgICAgICAgfCAgIDYxICsKIGluY2x1ZGUva3ZtL2lvbW11LmggICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgNzQgKysKIGluY2x1ZGUva3ZtL3Bvd2VyX2RvbWFp bi5oICAgICAgICAgICAgICAgICAgICB8ICAgMjIgKwogaW5jbHVkZS9saW51eC9pby1wZ3RhYmxl LWFybS5oICAgICAgICAgICAgICAgIHwgIDE5MCArKysKIGluY2x1ZGUvbGludXgvaW8tcGd0YWJs ZS5oICAgICAgICAgICAgICAgICAgICB8ICAxMTQgKy0KIGFyY2gvYXJtNjQva3ZtL2FybS5jICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDEgKy0KIGFyY2gvYXJtNjQva3ZtL2h5cC9udmhl L2h5cC1tYWluLmMgICAgICAgICAgICB8ICAxMDEgKy0KIGFyY2gvYXJtNjQva3ZtL2h5cC9udmhl L2lvbW11L2FybS1zbW11LXYzLmMgICB8ICA2MjUgKysrKysrKysrKwogLi4uL2FybTY0L2t2bS9o eXAvbnZoZS9pb21tdS9pby1wZ3RhYmxlLWFybS5jIHwgICA5NyArKwogYXJjaC9hcm02NC9rdm0v aHlwL252aGUvaW9tbXUvaW9tbXUuYyAgICAgICAgIHwgIDM5MyArKysrKysKIGFyY2gvYXJtNjQv a3ZtL2h5cC9udmhlL21lbV9wcm90ZWN0LmMgICAgICAgICB8ICAyMDkgKysrLQogYXJjaC9hcm02 NC9rdm0vaHlwL252aGUvbW0uYyAgICAgICAgICAgICAgICAgIHwgICAyNyArLQogYXJjaC9hcm02 NC9rdm0vaHlwL252aGUvcGt2bS5jICAgICAgICAgICAgICAgIHwgICA2NiArLQogYXJjaC9hcm02 NC9rdm0vaHlwL252aGUvcG93ZXIvc2NtaS5jICAgICAgICAgIHwgIDIzMyArKysrCiBhcmNoL2Fy bTY0L2t2bS9oeXAvbnZoZS9zZXR1cC5jICAgICAgICAgICAgICAgfCAgIDQ3ICstCiBhcmNoL2Fy bTY0L2t2bS9oeXAvbnZoZS90aW1lci1zci5jICAgICAgICAgICAgfCAgIDQzICsKIGRyaXZlcnMv Z3B1L2RybS9tc20vbXNtX2lvbW11LmMgICAgICAgICAgICAgICB8ICAgMjIgKy0KIGRyaXZlcnMv Z3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9tbXUuYyAgICAgICB8ICAgMjIgKy0KIGRyaXZlcnMv aW9tbXUvYW1kL2lvX3BndGFibGUuYyAgICAgICAgICAgICAgICB8ICAgMjYgKy0KIGRyaXZlcnMv aW9tbXUvYW1kL2lvX3BndGFibGVfdjIuYyAgICAgICAgICAgICB8ICAgNDMgKy0KIGRyaXZlcnMv aW9tbXUvYW1kL2lvbW11LmMgICAgICAgICAgICAgICAgICAgICB8ICAgMjkgKy0KIGRyaXZlcnMv aW9tbXUvYXBwbGUtZGFydC5jICAgICAgICAgICAgICAgICAgICB8ICAgMzggKy0KIC4uLi9hcm0v YXJtLXNtbXUtdjMvYXJtLXNtbXUtdjMtY29tbW9uLmMgICAgICB8ICA2MzIgKysrKysrKysrKwog Li4uL2lvbW11L2FybS9hcm0tc21tdS12My9hcm0tc21tdS12My1rdm0uYyAgIHwgIDg2NCArKysr KysrKysrKysrCiAuLi4vaW9tbXUvYXJtL2FybS1zbW11LXYzL2FybS1zbW11LXYzLXN2YS5jICAg fCAgICAyICstCiBkcml2ZXJzL2lvbW11L2FybS9hcm0tc21tdS12My9hcm0tc21tdS12My5jICAg fCAgNjc5ICstLS0tLS0tLS0tCiBkcml2ZXJzL2lvbW11L2FybS9hcm0tc21tdS9hcm0tc21tdS1x Y29tLmMgICAgfCAgICA3ICstCiBkcml2ZXJzL2lvbW11L2FybS9hcm0tc21tdS9hcm0tc21tdS5j ICAgICAgICAgfCAgIDQxICstCiBkcml2ZXJzL2lvbW11L2FybS9hcm0tc21tdS9xY29tX2lvbW11 LmMgICAgICAgfCAgIDQxICstCiBkcml2ZXJzL2lvbW11L2lvLXBndGFibGUtYXJtLWNvbW1vbi5j ICAgICAgICAgfCAgNzY2ICsrKysrKysrKysrKwogZHJpdmVycy9pb21tdS9pby1wZ3RhYmxlLWFy bS12N3MuYyAgICAgICAgICAgIHwgIDE5MCArLS0KIGRyaXZlcnMvaW9tbXUvaW8tcGd0YWJsZS1h cm0uYyAgICAgICAgICAgICAgICB8IDEwODIgKystLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvaW9t bXUvaW8tcGd0YWJsZS1kYXJ0LmMgICAgICAgICAgICAgICB8ICAxMDUgKy0KIGRyaXZlcnMvaW9t bXUvaW8tcGd0YWJsZS5jICAgICAgICAgICAgICAgICAgICB8ICAgNTcgKy0KIGRyaXZlcnMvaW9t bXUvaXBtbXUtdm1zYS5jICAgICAgICAgICAgICAgICAgICB8ICAgMjAgKy0KIGRyaXZlcnMvaW9t bXUvbXNtX2lvbW11LmMgICAgICAgICAgICAgICAgICAgICB8ICAgMTggKy0KIGRyaXZlcnMvaW9t bXUvbXRrX2lvbW11LmMgICAgICAgICAgICAgICAgICAgICB8ICAgMTQgKy0KIDU3IGZpbGVzIGNo YW5nZWQsIDU3NDMgaW5zZXJ0aW9ucygrKSwgMjU1NCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBhcmNoL2FybTY0L2luY2x1ZGUvYXNtL2FybS1zbW11LXYzLXJlZ3MuaAogY3JlYXRl IG1vZGUgMTAwNjQ0IGFyY2gvYXJtNjQva3ZtL2h5cC9pbmNsdWRlL252aGUvaW9tbXUuaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvaW9tbXUvaW8tcGd0YWJsZS1hcm0uaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IGluY2x1ZGUva3ZtL2FybV9zbW11X3YzLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBp bmNsdWRlL2t2bS9pb21tdS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9rdm0vcG93ZXJf ZG9tYWluLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2xpbnV4L2lvLXBndGFibGUtYXJt LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybTY0L2t2bS9oeXAvbnZoZS9pb21tdS9hcm0t c21tdS12My5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9hcm02NC9rdm0vaHlwL252aGUvaW9t bXUvaW8tcGd0YWJsZS1hcm0uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtNjQva3ZtL2h5 cC9udmhlL2lvbW11L2lvbW11LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybTY0L2t2bS9o eXAvbnZoZS9wb3dlci9zY21pLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2lvbW11L2Fy bS9hcm0tc21tdS12My9hcm0tc21tdS12My1jb21tb24uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvaW9tbXUvYXJtL2FybS1zbW11LXYzL2FybS1zbW11LXYzLWt2bS5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9pb21tdS9pby1wZ3RhYmxlLWFybS1jb21tb24uYwoKLS0gCjIuMzku MAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4 LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFy bS1rZXJuZWwK