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 mm01.cs.columbia.edu (mm01.cs.columbia.edu [128.59.11.253]) by smtp.lore.kernel.org (Postfix) with ESMTP id 00788C43334 for ; Sat, 4 Jun 2022 08:26:22 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 83B5F4B175; Sat, 4 Jun 2022 04:26:22 -0400 (EDT) X-Virus-Scanned: at lists.cs.columbia.edu Authentication-Results: mm01.cs.columbia.edu (amavisd-new); dkim=softfail (fail, message has been altered) header.i=@kernel.org Received: from mm01.cs.columbia.edu ([127.0.0.1]) by localhost (mm01.cs.columbia.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nDPwESyT6U7k; Sat, 4 Jun 2022 04:26:21 -0400 (EDT) Received: from mm01.cs.columbia.edu (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 1464E4B133; Sat, 4 Jun 2022 04:26:21 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 91E574B12E for ; Sat, 4 Jun 2022 04:26:19 -0400 (EDT) X-Virus-Scanned: at lists.cs.columbia.edu Received: from mm01.cs.columbia.edu ([127.0.0.1]) by localhost (mm01.cs.columbia.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uLEBmxVdcpiY for ; Sat, 4 Jun 2022 04:26:18 -0400 (EDT) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by mm01.cs.columbia.edu (Postfix) with ESMTPS id F30E74B105 for ; Sat, 4 Jun 2022 04:26:17 -0400 (EDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 3E5CB60BAA; Sat, 4 Jun 2022 08:26:17 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 80187C385B8; Sat, 4 Jun 2022 08:26:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1654331176; bh=XB9XNCUnz60TeYIewtZ/Z+5jYs1vpZbLifBhN25MVEE=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=BOKrKDdE3n6ydBKz5NZgm9MaI+P7AVSsruHomByISL45xwrgTca665UeLaiELINLR E6r3L6zyIYO/GLBA/4rF1CSwoq1B92Vowh3y7IwK8y6ZyluSueD/CL+AyAbSpc6Pb8 q3B1m4BulIZ8du5AE7QE1El4Bw3xj3qK1dQBBAz5MR6Bv6VZa078wMVrfH11UtTSK/ gcC+wXsBe6QSBJqT5uE6wWd72AX6GDOSrSzkgkv11fn+lMyr3piWK3kv6aMNPJ/Lmq gTGEfj7ey4H5QKR7uVLXLcGS6Qq2rXE/hlavHMA6XOUx0ShGR+ILIWVf5h9Mgc1d8t 14rSqcTJ5v2ug== Received: from host217-45-173-31.in-addr.btopenworld.com ([217.45.173.31] helo=wait-a-minute.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1nxP6s-00FaKq-0z; Sat, 04 Jun 2022 09:26:14 +0100 Date: Sat, 04 Jun 2022 09:26:13 +0100 Message-ID: <87v8tgltqy.wl-maz@kernel.org> From: Marc Zyngier To: Peter Collingbourne Subject: Re: [PATCH 59/89] KVM: arm64: Do not support MTE for protected VMs In-Reply-To: References: <20220519134204.5379-1-will@kernel.org> <20220519134204.5379-60-will@kernel.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/27.1 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") X-SA-Exim-Connect-IP: 217.45.173.31 X-SA-Exim-Rcpt-To: pcc@google.com, tabba@google.com, will@kernel.org, kvmarm@lists.cs.columbia.edu, ardb@kernel.org, seanjc@google.com, alexandru.elisei@arm.com, luto@amacapital.net, catalin.marinas@arm.com, james.morse@arm.com, chao.p.peng@linux.intel.com, qperret@google.com, suzuki.poulose@arm.com, michael.roth@amd.com, mark.rutland@arm.com, oupton@google.com, kernel-team@android.com, kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Cc: kernel-team@android.com, kvm@vger.kernel.org, Will Deacon , Linux ARM , Michael Roth , Catalin Marinas , Chao Peng , Andy Lutomirski , kvmarm@lists.cs.columbia.edu X-BeenThere: kvmarm@lists.cs.columbia.edu X-Mailman-Version: 2.1.14 Precedence: list List-Id: Where KVM/ARM decisions are made List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu T24gRnJpLCAwMyBKdW4gMjAyMiAwNDowMDoyOSArMDEwMCwKUGV0ZXIgQ29sbGluZ2JvdXJuZSA8 cGNjQGdvb2dsZS5jb20+IHdyb3RlOgo+IAo+IEhpIEZ1YWQsCj4gCj4gT24gRnJpLCBNYXkgMjcs IDIwMjIgYXQgMDg6NTU6NDJBTSArMDEwMCwgRnVhZCBUYWJiYSB3cm90ZToKPiA+IEhpIFBldGVy LAo+ID4gCj4gPiBPbiBUaHUsIE1heSAyNiwgMjAyMiBhdCA5OjA4IFBNIFBldGVyIENvbGxpbmdi b3VybmUgPHBjY0Bnb29nbGUuY29tPiB3cm90ZToKPiA+ID4KPiA+ID4gT24gVGh1LCBNYXkgMTks IDIwMjIgYXQgNzo0MCBBTSBXaWxsIERlYWNvbiA8d2lsbEBrZXJuZWwub3JnPiB3cm90ZToKPiA+ ID4gPgo+ID4gPiA+IEZyb206IEZ1YWQgVGFiYmEgPHRhYmJhQGdvb2dsZS5jb20+Cj4gPiA+ID4K PiA+ID4gPiBSZXR1cm4gYW4gZXJyb3IgKC1FSU5WQUwpIGlmIHRyeWluZyB0byBlbmFibGUgTVRF IG9uIGEgcHJvdGVjdGVkCj4gPiA+ID4gdm0uCj4gPiA+Cj4gPiA+IEkgdGhpbmsgdGhpcyBjb21t aXQgbWVzc2FnZSBuZWVkcyBtb3JlIGV4cGxhbmF0aW9uIGFzIHRvIHdoeSBNVEUgaXMKPiA+ID4g bm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgaW4gcHJvdGVjdGVkIFZNcy4KPiA+IAo+ID4gWWVzLCB3 ZSBuZWVkIHRvIGV4cGxhaW4gdGhpcyBtb3JlLiBCYXNpY2FsbHkgdGhpcyBpcyBhbiBleHRlbnNp b24gb2YKPiA+IHJlc3RyaWN0aW5nIGZlYXR1cmVzIGZvciBwcm90ZWN0ZWQgVk1zIGRvbmUgZWFy bGllciBbKl0uCj4gPiAKPiA+IFZhcmlvdXMgVk0gZmVhdHVyZSBjb25maWd1cmF0aW9ucyBhcmUg YWxsb3dlZCBpbiBLVk0vYXJtNjQsIGVhY2ggcmVxdWlyaW5nCj4gPiBzcGVjaWZpYyBoYW5kbGlu ZyBsb2dpYyB0byBkZWFsIHdpdGggdHJhcHMsIGNvbnRleHQtc3dpdGNoaW5nIGFuZCBwb3RlbnRp YWxseQo+ID4gZW11bGF0aW9uLiBBY2hpZXZpbmcgZmVhdHVyZSBwYXJpdHkgaW4gcEtWTSB0aGVy ZWZvcmUgcmVxdWlyZXMgZWl0aGVyIGVsZXZhdGluZwo+ID4gdGhpcyBsb2dpYyB0byBFTDIgKGFu ZCBzdWJzdGFudGlhbGx5IGluY3JlYXNpbmcgdGhlIFRDQikgb3IgY29udGludWluZyB0byB0cnVz dAo+ID4gdGhlIGhvc3QgaGFuZGxlcnMgYXQgRUwxLiBTaW5jZSBuZWl0aGVyIG9mIHRoZXNlIG9w dGlvbnMgYXJlIGVzcGVjaWFsbHkKPiA+IGFwcGVhbGluZywgcEtWTSBpbnN0ZWFkIGxpbWl0cyB0 aGUgQ1BVIGZlYXR1cmVzIGV4cG9zZWQgdG8gYSBndWVzdCB0byBhIGZpeGVkCj4gPiBjb25maWd1 cmF0aW9uIGJhc2VkIG9uIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIGFuZCB3aGljaCBjYW4gbW9z dGx5IGJlIHByb3ZpZGVkCj4gPiBzdHJhaWdodGZvcndhcmRseSBieSBFTDIuCj4gPiAKPiA+IFRo aXMgb2YgY291cnNlIGNhbiBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSBhbmQgd2UgY2FuIHN1cHBvcnQg bW9yZQo+ID4gZmVhdHVyZXMgZm9yIHByb3RlY3RlZCBWTXMgYXMgbmVlZGVkLiBXZSdsbCBleHBh bmQgb24gdGhpcyBjb21taXQKPiA+IG1lc3NhZ2Ugd2hlbiB3ZSByZXNwaW4uCj4gPiAKPiA+IEFs c28gbm90ZSB0aGF0IHRoaXMgb25seSBhcHBsaWVzIHRvIHByb3RlY3RlZCBWTXMuIE5vbi1wcm90 ZWN0ZWQgVk1zCj4gPiBpbiBwcm90ZWN0ZWQgbW9kZSBzdXBwb3J0IE1URS4KPiAKPiBJIHNlZS4g SW4gdGhpcyBjYXNlIHVubGVzcyBJJ20gbWlzc2luZyBzb21ldGhpbmcgdGhlwqBFTDIgc2lkZSBz ZWVtcwo+IHF1aXRlIHRyaXZpYWwgdGhvdWdoIChmbGlwcGluZyBzb21lIGJpdHMgaW4gSENSX0VM MikuIFRoZSBwYXRjaCBiZWxvdwo+IChpbiBwbGFjZSBvZiB0aGlzIG9uZSkgc2VlbXMgdG8gbWFr ZSBNVEUgd29yayBpbiBteSB0ZXN0IGVudmlyb25tZW50Cj4gKHBhdGNoZWQgWzFdIGNyb3N2bSBv biBBbmRyb2lkIGluIE1URS1lbmFibGVkIFFFTVUpLgo+IAo+IFsxXSBodHRwczovL2Nocm9taXVt LXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW1vcy9wbGF0Zm9ybS9jcm9zdm0vKy8z Njg5MDE1Cj4gCj4gRnJvbSBjODc5NjVjZDE0NTE1NTg2ZDQ4Nzg3MjQ4NmU3NjcwODc0MjA5MTEz IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQo+IEZyb206IFBldGVyIENvbGxpbmdib3VybmUgPHBj Y0Bnb29nbGUuY29tPgo+IERhdGU6IFRodSwgMiBKdW4gMjAyMiAxOToxNjowMiAtMDcwMAo+IFN1 YmplY3Q6IFtQQVRDSF0gYXJtNjQ6IHN1cHBvcnQgTVRFIGluIHByb3RlY3RlZCBWTXMKPiAKPiBF bmFibGUgSENSX0VMMi5BVEEgd2hpbGUgcnVubmluZyBhIHZDUFUgd2l0aCBNVEUgZW5hYmxlZC4K PiAKPiBUbyBhdm9pZCBleHBvc2luZyBNVEUgdGFncyBmcm9tIHRoZSBob3N0IHRvIHByb3RlY3Rl ZCBWTXMsIHNhbml0aXplCj4gdGFncyBiZWZvcmUgZG9uYXRpbmcgcGFnZXMuCj4gCj4gU2lnbmVk LW9mZi1ieTogUGV0ZXIgQ29sbGluZ2JvdXJuZSA8cGNjQGdvb2dsZS5jb20+Cj4gLS0tCj4gIGFy Y2gvYXJtNjQvaW5jbHVkZS9hc20va3ZtX3Brdm0uaCB8IDQgKysrLQo+ICBhcmNoL2FybTY0L2t2 bS9oeXAvbnZoZS9wa3ZtLmMgICAgfCA2ICsrKy0tLQo+ICBhcmNoL2FybTY0L2t2bS9tbXUuYyAg ICAgICAgICAgICAgfCA0ICsrKy0KPiAgMyBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyks IDUgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20v a3ZtX3Brdm0uaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20va3ZtX3Brdm0uaAo+IGluZGV4IDk1 MmUzYzNmYTMyZC4uOWNhOTI5NmYyYTI1IDEwMDY0NAo+IC0tLSBhL2FyY2gvYXJtNjQvaW5jbHVk ZS9hc20va3ZtX3Brdm0uaAo+ICsrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20va3ZtX3Brdm0u aAo+IEBAIC03MywxMCArNzMsMTIgQEAgdm9pZCBrdm1fc2hhZG93X2Rlc3Ryb3koc3RydWN0IGt2 bSAqa3ZtKTsKPiAgICogQWxsb3cgZm9yIHByb3RlY3RlZCBWTXM6Cj4gICAqIC0gQnJhbmNoIFRh cmdldCBJZGVudGlmaWNhdGlvbgo+ICAgKiAtIFNwZWN1bGF0aXZlIFN0b3JlIEJ5cGFzc2luZwo+ ICsgKiAtIE1lbW9yeSBUYWdnaW5nIEV4dGVuc2lvbgo+ICAgKi8KPiAgI2RlZmluZSBQVk1fSURf QUE2NFBGUjFfQUxMT1cgKFwKPiAgCUFSTTY0X0ZFQVRVUkVfTUFTSyhJRF9BQTY0UEZSMV9CVCkg fCBcCj4gLQlBUk02NF9GRUFUVVJFX01BU0soSURfQUE2NFBGUjFfU1NCUykgXAo+ICsJQVJNNjRf RkVBVFVSRV9NQVNLKElEX0FBNjRQRlIxX1NTQlMpIHwgXAo+ICsJQVJNNjRfRkVBVFVSRV9NQVNL KElEX0FBNjRQRlIxX01URSkgXAo+ICAJKQo+ICAKPiAgLyoKPiBkaWZmIC0tZ2l0IGEvYXJjaC9h cm02NC9rdm0vaHlwL252aGUvcGt2bS5jIGIvYXJjaC9hcm02NC9rdm0vaHlwL252aGUvcGt2bS5j Cj4gaW5kZXggZTMzYmE5MDY3ZDdiLi40NmRkZDkwOTNhYzcgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9h cm02NC9rdm0vaHlwL252aGUvcGt2bS5jCj4gKysrIGIvYXJjaC9hcm02NC9rdm0vaHlwL252aGUv cGt2bS5jCj4gQEAgLTg4LDcgKzg4LDcgQEAgc3RhdGljIHZvaWQgcHZtX2luaXRfdHJhcHNfYWE2 NHBmcjEoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQo+ICAJLyogTWVtb3J5IFRhZ2dpbmc6IFRyYXAg YW5kIFRyZWF0IGFzIFVudGFnZ2VkIGlmIG5vdCBzdXBwb3J0ZWQuICovCj4gIAlpZiAoIUZJRUxE X0dFVChBUk02NF9GRUFUVVJFX01BU0soSURfQUE2NFBGUjFfTVRFKSwgZmVhdHVyZV9pZHMpKSB7 Cj4gIAkJaGNyX3NldCB8PSBIQ1JfVElENTsKPiAtCQloY3JfY2xlYXIgfD0gSENSX0RDVCB8IEhD Ul9BVEE7Cj4gKwkJaGNyX2NsZWFyIHw9IEhDUl9BVEE7Cj4gIAl9Cj4gIAo+ICAJdmNwdS0+YXJj aC5oY3JfZWwyIHw9IGhjcl9zZXQ7Cj4gQEAgLTE3OSw4ICsxNzksOCBAQCBzdGF0aWMgdm9pZCBw dm1faW5pdF90cmFwX3JlZ3Moc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQo+ICAJICogLSBGZWF0dXJl IGlkIHJlZ2lzdGVyczogdG8gY29udHJvbCBmZWF0dXJlcyBleHBvc2VkIHRvIGd1ZXN0cwo+ICAJ ICogLSBJbXBsZW1lbnRhdGlvbi1kZWZpbmVkIGZlYXR1cmVzCj4gIAkgKi8KPiAtCXZjcHUtPmFy Y2guaGNyX2VsMiA9IEhDUl9HVUVTVF9GTEFHUyB8Cj4gLQkJCSAgICAgSENSX1RJRDMgfCBIQ1Jf VEFDUiB8IEhDUl9USURDUCB8IEhDUl9USUQxOwo+ICsJdmNwdS0+YXJjaC5oY3JfZWwyID0gSENS X0dVRVNUX0ZMQUdTIHwgSENSX1RJRDMgfCBIQ1JfVEFDUiB8IEhDUl9USURDUCB8Cj4gKwkJCSAg ICAgSENSX1RJRDEgfCBIQ1JfQVRBOwo+ICAKPiAgCWlmIChjcHVzX2hhdmVfY29uc3RfY2FwKEFS TTY0X0hBU19SQVNfRVhUTikpIHsKPiAgCQkvKiByb3V0ZSBzeW5jaHJvbm91cyBleHRlcm5hbCBh Ym9ydCBleGNlcHRpb25zIHRvIEVMMiAqLwo+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2t2bS9t bXUuYyBiL2FyY2gvYXJtNjQva3ZtL21tdS5jCj4gaW5kZXggMzkyZmY3YjIzNjJkLi5mNTEzODUy MzU3ZjcgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9hcm02NC9rdm0vbW11LmMKPiArKysgYi9hcmNoL2Fy bTY0L2t2bS9tbXUuYwo+IEBAIC0xMjA2LDggKzEyMDYsMTAgQEAgc3RhdGljIGludCBwa3ZtX21l bV9hYm9ydChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHBoeXNfYWRkcl90IGZhdWx0X2lwYSwKPiAg CQlnb3RvIGRlY19hY2NvdW50Owo+ICAJfQo+ICAKPiAtCXdyaXRlX2xvY2soJmt2bS0+bW11X2xv Y2spOwo+ICAJcGZuID0gcGFnZV90b19wZm4ocGFnZSk7Cj4gKwlzYW5pdGlzZV9tdGVfdGFncyhr dm0sIHBmbiwgUEFHRV9TSVpFKTsKPiArCj4gKwl3cml0ZV9sb2NrKCZrdm0tPm1tdV9sb2NrKTsK CklzIGl0IHJlYWxseSBzYWZlIHRvIHJlbHkgb24gdGhlIGhvc3QgdG8gY2xlYXIgdGhlIHRhZ3M/ IE15IGd1dHMKZmVlbGluZyBzYXlzIHRoYXQgaXQgaXNuJ3QuIElmIGl0IGlzIHJlcXVpcmVkLCB3 ZSBjYW5ub3QgbGVhdmUgdGhpcwpyZXNwb25zaWJpbGl0eSB0byB0aGUgaG9zdCwgYW5kIHRoaXMg bG9naWMgbXVzdCBiZSBtb3ZlZCB0byBFTDIuIEFuZAppZiBpdCBpc24ndCwgdGhlbiB3ZSBzaG91 bGQgZHJvcCBpdC4KCj4gIAlyZXQgPSBwa3ZtX2hvc3RfbWFwX2d1ZXN0KHBmbiwgZmF1bHRfaXBh ID4+IFBBR0VfU0hJRlQpOwo+ICAJaWYgKHJldCkgewo+ICAJCWlmIChyZXQgPT0gLUVBR0FJTikK CkJ1dCB0aGUgYmlnZ2VyIHBpY3R1cmUgaGVyZSBpcyB3aGF0IGVuc3VyZXMgdGhhdCB0aGUgaG9z dCBjYW5ub3QgbWVzcwp3aXRoIHRoZSBndWVzdCB0YWdzPyBJIGRvbid0IHRoaW5rIHdlIGhhdmUg YSBhbnkgbWVjaGFuaXNtIHRvCmd1YXJhbnRlZSB0aGF0LCBzcGVjaWFsbHkgb24gc3lzdGVtcyB3 aGVyZSB0aGUgdGFncyBhcmUgb25seSBhIG1lbW9yeQpjYXJ2ZS1vdXQsIHdoaWNoIHRoZSBob3N0 IGNvdWxkIG1hcCBhbmQgY2hhbmdlIGF0IHdpbGwuCgpJbiBhbnkgY2FzZSwgdGhpcyBpc24ndCB0 aGUgdGltZSB0byBwaWxlIG5ldyBmZWF0dXJlcyBvbiB0b3Agb2YKcEtWTS4gVGhlIGN1cnJlbnQg cGxhbiBpcyB0byBub3Qgc3VwcG9ydCBNVEUgYXQgYWxsLCBhbmQgb25seSBkbyBpdApvbmNlIHdl IGhhdmUgYSBkZWZpbml0aXZlIHN0b3J5IG9uIHBhZ2UgZG9uYXRpb24gKHdoaWNoIGFzIHlvdSBt YXkKaGF2ZSBub3RpY2VkLCBpcyBwcmV0dHkgaGFja3kpLiBJIGRvbid0IHNlZSBhbnkgY29tcGVs bGluZyByZWFzb24gdG8KYWRkIE1URSB0byB0aGUgbWl4IHVudGlsIHRoaXMgaXMgc29sdmVkLgoK VGhhbmtzLAoKCU0uCgotLSAKV2l0aG91dCBkZXZpYXRpb24gZnJvbSB0aGUgbm9ybSwgcHJvZ3Jl c3MgaXMgbm90IHBvc3NpYmxlLgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwprdm1hcm0gbWFpbGluZyBsaXN0Cmt2bWFybUBsaXN0cy5jcy5jb2x1bWJpYS5l ZHUKaHR0cHM6Ly9saXN0cy5jcy5jb2x1bWJpYS5lZHUvbWFpbG1hbi9saXN0aW5mby9rdm1hcm0K