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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 15676C636CC for ; Tue, 31 Jan 2023 21:27:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5F3C26B0071; Tue, 31 Jan 2023 16:27:12 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5A38E6B0072; Tue, 31 Jan 2023 16:27:12 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 46B386B0074; Tue, 31 Jan 2023 16:27:12 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 37A8D6B0071 for ; Tue, 31 Jan 2023 16:27:12 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id E810AA0C74 for ; Tue, 31 Jan 2023 21:27:11 +0000 (UTC) X-FDA: 80416379862.07.E8A92BD Received: from smtp-fw-6002.amazon.com (smtp-fw-6002.amazon.com [52.95.49.90]) by imf25.hostedemail.com (Postfix) with ESMTP id B257EA000C for ; Tue, 31 Jan 2023 21:27:09 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=amazon.com header.s=amazon201209 header.b=ToAL2Opx; spf=pass (imf25.hostedemail.com: domain of "prvs=3888ee558=graf@amazon.de" designates 52.95.49.90 as permitted sender) smtp.mailfrom="prvs=3888ee558=graf@amazon.de"; dmarc=pass (policy=quarantine) header.from=amazon.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1675200430; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=vYK2NpO+ExFxzqnG6ZjWnmzVegQDyJD3/VETJklLIPY=; b=aWfUJSM2V/PXQEiL79jRQmD7R7ziYLjWZnU87+NiCejS/GiWDyY5F/UVsCdvyrHxVnwBkw UvGhGiKTSxNzQD8eMWlqcsTx7qqsGgmMro85UkvccDEh6RDht0RHL+9Vq0Aie8Hs4u7N67 d+o1Nq4ISYOCUdclIuOYAxjf9LX6qoA= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=amazon.com header.s=amazon201209 header.b=ToAL2Opx; spf=pass (imf25.hostedemail.com: domain of "prvs=3888ee558=graf@amazon.de" designates 52.95.49.90 as permitted sender) smtp.mailfrom="prvs=3888ee558=graf@amazon.de"; dmarc=pass (policy=quarantine) header.from=amazon.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1675200430; a=rsa-sha256; cv=none; b=4lSn02EHKoCboLU10GOAuR9yeew1oBUMmmFY0upGgU6wC2mII9Qh5HQ9WeUulCSLogf/h1 b1TPa92G5JmzB/Y8Fwc+vXMklwdzDe0JkwZwB8vnk2u+YsBUu8qlnHv6VITiybRCpnndgc pOaoYTl3sFOGDx+qEsL73RYYq9Gz5pQ= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1675200430; x=1706736430; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=vYK2NpO+ExFxzqnG6ZjWnmzVegQDyJD3/VETJklLIPY=; b=ToAL2OpxBpaKO1hS1naao+rciqrR7U/L1Kba98v8q0nYCp9Xe2s5XXHM RUSzwlLwG9R137TvGAvBLigxMeNMvTAnqCK7FYdDNaq8O32e6ak413P/0 psaCQ1+wTj5jGtYNmgmXkWPwfB7Reh92H66asezm/cyx0XwU4JGk4+WaF M=; X-IronPort-AV: E=Sophos;i="5.97,261,1669075200"; d="scan'208";a="292221146" Received: from iad12-co-svc-p1-lb1-vlan3.amazon.com (HELO email-inbound-relay-pdx-2b-m6i4x-32fb4f1a.us-west-2.amazon.com) ([10.43.8.6]) by smtp-border-fw-6002.iad6.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jan 2023 21:27:04 +0000 Received: from EX13MTAUWC002.ant.amazon.com (pdx1-ws-svc-p6-lb9-vlan2.pdx.amazon.com [10.236.137.194]) by email-inbound-relay-pdx-2b-m6i4x-32fb4f1a.us-west-2.amazon.com (Postfix) with ESMTPS id CE22BC3759; Tue, 31 Jan 2023 21:27:00 +0000 (UTC) Received: from EX19D020UWC004.ant.amazon.com (10.13.138.149) by EX13MTAUWC002.ant.amazon.com (10.43.162.240) with Microsoft SMTP Server (TLS) id 15.0.1497.45; Tue, 31 Jan 2023 21:26:58 +0000 Received: from [0.0.0.0] (10.43.162.56) by EX19D020UWC004.ant.amazon.com (10.13.138.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.2.1118.24; Tue, 31 Jan 2023 21:26:50 +0000 Message-ID: <854a0caf-6940-8381-1e20-0ddb5ed94858@amazon.com> Date: Tue, 31 Jan 2023 22:26:47 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: [PATCH RFC v7 16/64] x86/sev: Add helper functions for RMPUPDATE and PSMASH instruction Content-Language: en-US To: Michael Roth , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Brijesh Singh , "Rapan, Sabin" References: <20221214194056.161492-1-michael.roth@amd.com> <20221214194056.161492-17-michael.roth@amd.com> From: Alexander Graf In-Reply-To: <20221214194056.161492-17-michael.roth@amd.com> X-Originating-IP: [10.43.162.56] X-ClientProxiedBy: EX13D31UWA004.ant.amazon.com (10.43.160.217) To EX19D020UWC004.ant.amazon.com (10.13.138.149) Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: B257EA000C X-Rspam-User: X-Stat-Signature: 71zjbuzmabd3fin4niue7w45zqyw16ff X-HE-Tag: 1675200429-722956 X-HE-Meta: U2FsdGVkX18i3LGYGuhemTX+JHp3erwPu+SmFnHrqLLQZ91z2oLccu0IHtAObFK8cNUpaL1WVimiecg0+fzJbQ0hKt70vCqveLO1sfYdPyggwTNf/qgDoSDX0POAA2+Bww5A6l1QDbSYhVXfdt2sXjO7x9lBOl7FrFlZ01MhFqaW2pjqOgIY6/XTKh9PekxleAx0c35nhwb6xxIq2LW8BG0O9oiUtq0PzYo2gxlZCepNebQhlXPOyFSOQFkf1OM+DjC23rN54/mXvpgyBPDj1ksaDDuSQeRWFKBhNi3/bDVvr1CMzvtUzgbgWZKBnMjNI7BJc9PtcOcn5S4nwe/Uz0Ay5957WQvIP1HtcnAz93j4Zx0Su7P/UyH/Tn3eM2mmivpz27qszEytlyM8Ha4UOro4YOLGXkydHYDRwrd8+VRLaImG/VppAVuH5uaGXaxy8xZZOhFkGeVG3fhQJW7yO+NoeUqaD7cnqcaZ9fKpqVPhjLgbdMW2fk2i8riCY1qhHf2sfPk9PSq9GbSePd8ff9SzUBOHfTjv4gIMRClbVVzYt4EquGuvD9COQYwkoOgo2lshfCj3hsUVc6mj82II5WmhN2jfaeA6DxKZw7hbKywVvl3lYYCDPVd7PpIWQXY/wXDs47IgDEFaulgaQ/LfhGk5bqe7+OaZQ2N2ZSpW16wA8KnJmcuBdawZ/OkG/wEzf0ZfCyau8IGt8ef+HqpziE6nzUbpf9PVrIJ7M+nP1CrjDxyLXD68ta+dmIQMzc3D8mEK8hxN//EMZ0UIyuMpsExIPKycrvdiWnD8W0hsMRVqsrMPNO6c6O1nbW4jNGcLiCu1KkmwBkPi3Dd2YXNOlod38UjGbquOENP4WULzBzPEe4bY6SzHllgAxlGe5n/KCUu0ZB6019Vmm0BJyA5aMFHsyIvV8V6cjH5I5G77H7+0uK1nXiulSbLMKR0RD3rcYpus87nXJTcqVLyCdJO h1T3ienk 7MRm7+yumNpXpiYsLjt24Xps+a/qTaO9QxM30F1EkHfN6XacLl+PWbnG/sY1w4ZGg1BUgXy0B514iie16z7ty3vOlv6pQAiDhsor0BzAAHrEaaVdanYvO8AwF9Ku3zFfw3wlVTH0lyaa0vNlVomZ5w5wf9toRZTVRqurh22i9NjGopfuRiNZNtvDpuWzfEzwVbY2N7cqda0OLhQmMK/j5Vy3APVOwzv5LfqVa8tD1xOXysBiyWULj40DuAQOsL4wTwXmRdgumNVDuRLRc27X1q0CFJQV72sMFJMVUV0XUx+W/SfcWWnSbi+0NNENq+2uNpIFWCfFasFL6jM7kFsbN5ewJcAuXl/9ZcHOcMud//ZFE3Ze65L/KFk47KbyfJS0vjXnbsULt89gnCfUT0s+c5p4taS5eGK10MZTM78ZiRHJzo42M4zs3OeGXEsE8lTv32dzdWQy+bH+Ico/1yuTk7NpjFYLs2Oyn8KyRIf9vL+i8rwL1JVsaK1FsQ5jWl/to6oZeGm2cWormlwQFfyj4FCXGKra6FmeMR0oeTOYni0kzszLHNWazlyfJAZzzT6HLzq8UAO/h/tETFks1Tlvp3Xu5FWSY4//Y/twNKXOc2m4rRi/wOCdH9RLJu6Omf0Ex7cLOMlC1qRWlwsQ= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Ck9uIDE0LjEyLjIyIDIwOjQwLCBNaWNoYWVsIFJvdGggd3JvdGU6Cj4gRnJvbTogQnJpamVzaCBT aW5naCA8YnJpamVzaC5zaW5naEBhbWQuY29tPgo+Cj4gVGhlIFJNUFVQREFURSBpbnN0cnVjdGlv biB3cml0ZXMgYSBuZXcgUk1QIGVudHJ5IGluIHRoZSBSTVAgVGFibGUuIFRoZQo+IGh5cGVydmlz b3Igd2lsbCB1c2UgdGhlIGluc3RydWN0aW9uIHRvIGFkZCBwYWdlcyB0byB0aGUgUk1QIHRhYmxl LiBTZWUKPiBBUE0zIGZvciBkZXRhaWxzIG9uIHRoZSBpbnN0cnVjdGlvbiBvcGVyYXRpb25zLgo+ Cj4gVGhlIFBTTUFTSCBpbnN0cnVjdGlvbiBleHBhbmRzIGEgMk1CIFJNUCBlbnRyeSBpbnRvIGEg Y29ycmVzcG9uZGluZyBzZXQKPiBvZiBjb250aWd1b3VzIDRLQi1QYWdlIFJNUCBlbnRyaWVzLiBU aGUgaHlwZXJ2aXNvciB3aWxsIHVzZSB0aGlzCj4gaW5zdHJ1Y3Rpb24gdG8gYWRqdXN0IHRoZSBS TVAgZW50cnkgd2l0aG91dCBpbnZhbGlkYXRpbmcgdGhlIHByZXZpb3VzCj4gUk1QIGVudHJ5Lgo+ Cj4gQWRkIHRoZSBmb2xsb3dpbmcgZXh0ZXJuYWwgaW50ZXJmYWNlIEFQSSBmdW5jdGlvbnM6Cj4K PiBpbnQgcHNtYXNoKHU2NCBwZm4pOwo+IHBzbWFzaCBpcyB1c2VkIHRvIHNtYXNoIGEgMk1CIGFs aWduZWQgcGFnZSBpbnRvIDRLCj4gcGFnZXMgd2hpbGUgcHJlc2VydmluZyB0aGUgVmFsaWRhdGVk IGJpdCBpbiB0aGUgUk1QLgo+Cj4gaW50IHJtcF9tYWtlX3ByaXZhdGUodTY0IHBmbiwgdTY0IGdw YSwgZW51bSBwZ19sZXZlbCBsZXZlbCwgaW50IGFzaWQsIGJvb2wgaW1tdXRhYmxlKTsKPiBVc2Vk IHRvIGFzc2lnbiBhIHBhZ2UgdG8gZ3Vlc3QgdXNpbmcgdGhlIFJNUFVQREFURSBpbnN0cnVjdGlv bi4KPgo+IGludCBybXBfbWFrZV9zaGFyZWQodTY0IHBmbiwgZW51bSBwZ19sZXZlbCBsZXZlbCk7 Cj4gVXNlZCB0byB0cmFuc2l0aW9uIGEgcGFnZSB0byBoeXBlcnZpc29yL3NoYXJlZCBzdGF0ZSB1 c2luZyB0aGUgUk1QVVBEQVRFIGluc3RydWN0aW9uLgo+Cj4gU2lnbmVkLW9mZi1ieTogQXNoaXNo IEthbHJhIDxhc2hpc2gua2FscmFAYW1kLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBCcmlqZXNoIFNp bmdoIDxicmlqZXNoLnNpbmdoQGFtZC5jb20+Cj4gW21kcjogYWRkIFJNUFVQREFURSByZXRyeSBs b2dpYyBmb3IgdHJhbnNpZW50IEZBSUxfT1ZFUkxBUCBlcnJvcnNdCj4gU2lnbmVkLW9mZi1ieTog TWljaGFlbCBSb3RoIDxtaWNoYWVsLnJvdGhAYW1kLmNvbT4KPiAtLS0KPiAgIGFyY2gveDg2L2lu Y2x1ZGUvYXNtL3Nldi5oIHwgMjQgKysrKysrKysrKwo+ICAgYXJjaC94ODYva2VybmVsL3Nldi5j ICAgICAgfCA5NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAgMiBm aWxlcyBjaGFuZ2VkLCAxMTkgaW5zZXJ0aW9ucygrKQo+Cj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2luY2x1ZGUvYXNtL3Nldi5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vc2V2LmgKPiBpbmRleCA4 ZDNjZTJhZDI3ZGEuLjRlZWVkY2FjYTU5MyAxMDA2NDQKPiAtLS0gYS9hcmNoL3g4Ni9pbmNsdWRl L2FzbS9zZXYuaAo+ICsrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Nldi5oCj4gQEAgLTgwLDEw ICs4MCwxNSBAQCBleHRlcm4gYm9vbCBoYW5kbGVfdmNfYm9vdF9naGNiKHN0cnVjdCBwdF9yZWdz ICpyZWdzKTsKPgo+ICAgLyogU29mdHdhcmUgZGVmaW5lZCAod2hlbiByRmxhZ3MuQ0YgPSAxKSAq Lwo+ICAgI2RlZmluZSBQVkFMSURBVEVfRkFJTF9OT1VQREFURSAgICAgICAgICAgICAgICAyNTUK PiArLyogUk1VUERBVEUgZGV0ZWN0ZWQgNEsgcGFnZSBhbmQgMk1CIHBhZ2Ugb3ZlcmxhcC4gKi8K PiArI2RlZmluZSBSTVBVUERBVEVfRkFJTF9PVkVSTEFQICAgICAgICAgNwo+Cj4gICAvKiBSTVAg cGFnZSBzaXplICovCj4gICAjZGVmaW5lIFJNUF9QR19TSVpFXzRLICAgICAgICAgICAgICAgICAw Cj4gKyNkZWZpbmUgUk1QX1BHX1NJWkVfMk0gICAgICAgICAgICAgICAgIDEKPiAgICNkZWZpbmUg Uk1QX1RPX1g4Nl9QR19MRVZFTChsZXZlbCkgICAgICgoKGxldmVsKSA9PSBSTVBfUEdfU0laRV80 SykgPyBQR19MRVZFTF80SyA6IFBHX0xFVkVMXzJNKQo+ICsjZGVmaW5lIFg4Nl9UT19STVBfUEdf TEVWRUwobGV2ZWwpICAgICAoKChsZXZlbCkgPT0gUEdfTEVWRUxfNEspID8gUk1QX1BHX1NJWkVf NEsgOiBSTVBfUEdfU0laRV8yTSkKPiArCj4gICAjZGVmaW5lIFJNUEFESlVTVF9WTVNBX1BBR0Vf QklUICAgICAgICAgICAgICAgIEJJVCgxNikKPgo+ICAgLyogU05QIEd1ZXN0IG1lc3NhZ2UgcmVx dWVzdCAqLwo+IEBAIC0xMzMsNiArMTM4LDE1IEBAIHN0cnVjdCBzbnBfc2VjcmV0c19wYWdlX2xh eW91dCB7Cj4gICAgICAgICAgdTggcnN2ZDNbMzg0MF07Cj4gICB9IF9fcGFja2VkOwo+Cj4gK3N0 cnVjdCBybXBfc3RhdGUgewo+ICsgICAgICAgdTY0IGdwYTsKPiArICAgICAgIHU4IGFzc2lnbmVk Owo+ICsgICAgICAgdTggcGFnZXNpemU7Cj4gKyAgICAgICB1OCBpbW11dGFibGU7Cj4gKyAgICAg ICB1OCByc3ZkOwo+ICsgICAgICAgdTMyIGFzaWQ7Cj4gK30gX19wYWNrZWQ7Cj4gKwo+ICAgI2lm ZGVmIENPTkZJR19BTURfTUVNX0VOQ1JZUFQKPiAgIGV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tleV9m YWxzZSBzZXZfZXNfZW5hYmxlX2tleTsKPiAgIGV4dGVybiB2b2lkIF9fc2V2X2VzX2lzdF9lbnRl cihzdHJ1Y3QgcHRfcmVncyAqcmVncyk7Cj4gQEAgLTE5OCw2ICsyMTIsOSBAQCBib29sIHNucF9p bml0KHN0cnVjdCBib290X3BhcmFtcyAqYnApOwo+ICAgdm9pZCBfX2luaXQgX19ub3JldHVybiBz bnBfYWJvcnQodm9pZCk7Cj4gICBpbnQgc25wX2lzc3VlX2d1ZXN0X3JlcXVlc3QodTY0IGV4aXRf Y29kZSwgc3RydWN0IHNucF9yZXFfZGF0YSAqaW5wdXQsIHVuc2lnbmVkIGxvbmcgKmZ3X2Vycik7 Cj4gICBpbnQgc25wX2xvb2t1cF9ybXBlbnRyeSh1NjQgcGZuLCBpbnQgKmxldmVsKTsKPiAraW50 IHBzbWFzaCh1NjQgcGZuKTsKPiAraW50IHJtcF9tYWtlX3ByaXZhdGUodTY0IHBmbiwgdTY0IGdw YSwgZW51bSBwZ19sZXZlbCBsZXZlbCwgaW50IGFzaWQsIGJvb2wgaW1tdXRhYmxlKTsKPiAraW50 IHJtcF9tYWtlX3NoYXJlZCh1NjQgcGZuLCBlbnVtIHBnX2xldmVsIGxldmVsKTsKPiAgICNlbHNl Cj4gICBzdGF0aWMgaW5saW5lIHZvaWQgc2V2X2VzX2lzdF9lbnRlcihzdHJ1Y3QgcHRfcmVncyAq cmVncykgeyB9Cj4gICBzdGF0aWMgaW5saW5lIHZvaWQgc2V2X2VzX2lzdF9leGl0KHZvaWQpIHsg fQo+IEBAIC0yMjMsNiArMjQwLDEzIEBAIHN0YXRpYyBpbmxpbmUgaW50IHNucF9pc3N1ZV9ndWVz dF9yZXF1ZXN0KHU2NCBleGl0X2NvZGUsIHN0cnVjdCBzbnBfcmVxX2RhdGEgKmluCj4gICAgICAg ICAgcmV0dXJuIC1FTk9UVFk7Cj4gICB9Cj4gICBzdGF0aWMgaW5saW5lIGludCBzbnBfbG9va3Vw X3JtcGVudHJ5KHU2NCBwZm4sIGludCAqbGV2ZWwpIHsgcmV0dXJuIDA7IH0KPiArc3RhdGljIGlu bGluZSBpbnQgcHNtYXNoKHU2NCBwZm4pIHsgcmV0dXJuIC1FTlhJTzsgfQo+ICtzdGF0aWMgaW5s aW5lIGludCBybXBfbWFrZV9wcml2YXRlKHU2NCBwZm4sIHU2NCBncGEsIGVudW0gcGdfbGV2ZWwg bGV2ZWwsIGludCBhc2lkLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v bCBpbW11dGFibGUpCj4gK3sKPiArICAgICAgIHJldHVybiAtRU5PREVWOwo+ICt9Cj4gK3N0YXRp YyBpbmxpbmUgaW50IHJtcF9tYWtlX3NoYXJlZCh1NjQgcGZuLCBlbnVtIHBnX2xldmVsIGxldmVs KSB7IHJldHVybiAtRU5PREVWOyB9Cj4gICAjZW5kaWYKPgo+ICAgI2VuZGlmCj4gZGlmZiAtLWdp dCBhL2FyY2gveDg2L2tlcm5lbC9zZXYuYyBiL2FyY2gveDg2L2tlcm5lbC9zZXYuYwo+IGluZGV4 IDcwNjY3NTU2MWY0OS4uNjcwMzVkMzRhZGFkIDEwMDY0NAo+IC0tLSBhL2FyY2gveDg2L2tlcm5l bC9zZXYuYwo+ICsrKyBiL2FyY2gveDg2L2tlcm5lbC9zZXYuYwo+IEBAIC0yNTIzLDMgKzI1MjMs OTggQEAgaW50IHNucF9sb29rdXBfcm1wZW50cnkodTY0IHBmbiwgaW50ICpsZXZlbCkKPiAgICAg ICAgICByZXR1cm4gISFybXBlbnRyeV9hc3NpZ25lZChlKTsKPiAgIH0KPiAgIEVYUE9SVF9TWU1C T0xfR1BMKHNucF9sb29rdXBfcm1wZW50cnkpOwo+ICsKPiArLyoKPiArICogcHNtYXNoIGlzIHVz ZWQgdG8gc21hc2ggYSAyTUIgYWxpZ25lZCBwYWdlIGludG8gNEsKPiArICogcGFnZXMgd2hpbGUg cHJlc2VydmluZyB0aGUgVmFsaWRhdGVkIGJpdCBpbiB0aGUgUk1QLgo+ICsgKi8KPiAraW50IHBz bWFzaCh1NjQgcGZuKQo+ICt7Cj4gKyAgICAgICB1bnNpZ25lZCBsb25nIHBhZGRyID0gcGZuIDw8 IFBBR0VfU0hJRlQ7Cj4gKyAgICAgICBpbnQgcmV0Owo+ICsKPiArICAgICAgIGlmICghcGZuX3Zh bGlkKHBmbikpCj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwoKCldlIChhbmQgbWFu eSBvdGhlciBjbG91ZHMpIHVzZSBhIG5lYXQgdHJpY2sgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2Yg CnN0cnVjdCBwYWdlcyBMaW51eCBhbGxvY2F0ZXMgZm9yIGd1ZXN0IG1lbW9yeTogSW4gaXRzIHNp bXBsZXN0IGZvcm0sIGFkZCAKbWVtPSB0byB0aGUga2VybmVsIGNtZGxpbmUgYW5kIG1tYXAoKSAv ZGV2L21lbSB0byBhY2Nlc3MgdGhlIHJlc2VydmVkIAptZW1vcnkgaW5zdGVhZC4KClRoaXMgbWVh bnMgdGhhdCB0aGUgc3lzdGVtIGNvdmVycyBtb3JlIFJBTSB0aGFuIExpbnV4IGNvbnRhaW5zLCB3 aGljaCAKbWVhbnMgcGZuX3ZhbGlkKCkgaXMgbm8gbG9uZ2VyIGEgZ29vZCBpbmRpY2F0aW9uIHdo ZXRoZXIgYSBwYWdlIGlzIAppbmRlZWQgdmFsaWQuIEtWTSBoYW5kbGVzIHRoaXMgY2FzZSBmaW5l LCBidXQgdGhpcyBjb2RlIGRvZXMgbm90LgoKSXMgdGhlcmUgYW55IHBhcnRpY3VsYXIgcmVhc29u IHdoeSB3ZSBuZWVkIHRoaXMgY2hlY2sgKGFuZCBzaW1pbGFyIG9uZXMgCmJlbG93IGFuZCBpbiBv dGhlciBSTVAgcmVsYXRlZCBwYXRjaGVzKSBpbiB0aGUgZmlyc3QgcGxhY2U/IEkgd291bGQgCmV4 cGVjdCB0aGF0IFBTTUFTSCBhbmQgZnJpZW5kcyByZXR1cm4gZmFpbHVyZSBjb2RlcyBmb3IgaW52 YWxpZCBwZm5zLgoKCkFsZXgKCgoKCgpBbWF6b24gRGV2ZWxvcG1lbnQgQ2VudGVyIEdlcm1hbnkg R21iSApLcmF1c2Vuc3RyLiAzOAoxMDExNyBCZXJsaW4KR2VzY2hhZWZ0c2Z1ZWhydW5nOiBDaHJp c3RpYW4gU2NobGFlZ2VyLCBKb25hdGhhbiBXZWlzcwpFaW5nZXRyYWdlbiBhbSBBbXRzZ2VyaWNo dCBDaGFybG90dGVuYnVyZyB1bnRlciBIUkIgMTQ5MTczIEIKU2l0ejogQmVybGluClVzdC1JRDog REUgMjg5IDIzNyA4NzkKCgo=