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 415A1C71153 for ; Mon, 28 Aug 2023 20:50:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4F46A280013; Mon, 28 Aug 2023 16:50:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4AED58E001E; Mon, 28 Aug 2023 16:50:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 36CAB280013; Mon, 28 Aug 2023 16:50:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 272A98E001E for ; Mon, 28 Aug 2023 16:50:40 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id C5FBBC059B for ; Mon, 28 Aug 2023 20:50:39 +0000 (UTC) X-FDA: 81174706998.23.DEBA050 Received: from smtp-fw-80008.amazon.com (smtp-fw-80008.amazon.com [99.78.197.219]) by imf26.hostedemail.com (Postfix) with ESMTP id ABCF114000E for ; Mon, 28 Aug 2023 20:50:37 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=amazon.de header.s=amazon201209 header.b=mmqMKAN+; spf=pass (imf26.hostedemail.com: domain of "prvs=5979aed20=graf@amazon.de" designates 99.78.197.219 as permitted sender) smtp.mailfrom="prvs=5979aed20=graf@amazon.de"; dmarc=pass (policy=quarantine) header.from=amazon.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1693255837; 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=ktiOhQrnGvQT2oDKq37JPM9wIGmpIXOUH9d4jIp7pQs=; b=r6UG8vCSZ+WCesjDWOSwSsbmQvKKpXP31Hru20tIxnaXyKZ75/1Q2HnNcoj8Iy4dCzgK8m IjtMdgsrf8Zqy2L0jXocK9nljnHsIrQPKFLnT6MwKiQITM5+opnNH5X+bEhxC9Wq9dhhkN qJ5K8Vx2rU6u6tEFEZLS7hC25YYWlOs= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1693255837; a=rsa-sha256; cv=none; b=JVd1Fjm1D40xCiPFvsOpgGJNHjgi7IsVU1TvzCFfiKbe6GZ4ylTwMkc+tsRms1OhNfNsVb bMjqS3xCSa+Lwou9zLKqiJEfOiO5dlu7A9VUlVTKGL6Ulg+pJruZmfxn+rYmYG9J5vXcib OSg/8bGkJXIGmDyhwifogspc4sjxuJY= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=amazon.de header.s=amazon201209 header.b=mmqMKAN+; spf=pass (imf26.hostedemail.com: domain of "prvs=5979aed20=graf@amazon.de" designates 99.78.197.219 as permitted sender) smtp.mailfrom="prvs=5979aed20=graf@amazon.de"; dmarc=pass (policy=quarantine) header.from=amazon.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.de; i=@amazon.de; q=dns/txt; s=amazon201209; t=1693255837; x=1724791837; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=ktiOhQrnGvQT2oDKq37JPM9wIGmpIXOUH9d4jIp7pQs=; b=mmqMKAN+mMpkv2LAmMthr5+qF0SZ0uS2LeIEgorvAZ46kmF1exM/AMa1 gdCy8LZJ05ew+VKdQu7YQTYLbTz45eu4ycSnwrHqfhauX0H19G2ZkkSBk 8tR8nAyz2oB6S+WHP1yvU6kOZY9r8DWbpUxk9ltT6Iiq3T16OvVffeOv3 s=; X-IronPort-AV: E=Sophos;i="6.02,208,1688428800"; d="scan'208";a="25563562" Received: from pdx4-co-svc-p1-lb2-vlan3.amazon.com (HELO email-inbound-relay-iad-1d-m6i4x-b404fda3.us-east-1.amazon.com) ([10.25.36.214]) by smtp-border-fw-80008.pdx80.corp.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Aug 2023 20:50:32 +0000 Received: from EX19MTAUWB002.ant.amazon.com (iad12-ws-svc-p26-lb9-vlan3.iad.amazon.com [10.40.163.38]) by email-inbound-relay-iad-1d-m6i4x-b404fda3.us-east-1.amazon.com (Postfix) with ESMTPS id D12D7807DA; Mon, 28 Aug 2023 20:50:26 +0000 (UTC) Received: from EX19D020UWC004.ant.amazon.com (10.13.138.149) by EX19MTAUWB002.ant.amazon.com (10.250.64.231) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.30; Mon, 28 Aug 2023 20:50:26 +0000 Received: from [0.0.0.0] (10.253.83.51) by EX19D020UWC004.ant.amazon.com (10.13.138.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.37; Mon, 28 Aug 2023 20:50:21 +0000 Message-ID: Date: Mon, 28 Aug 2023 22:50:19 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH] Introduce persistent memory pool Content-Language: en-GB To: Stanislav Kinsburskii , "Gowans, James" CC: "gregkh@linuxfoundation.org" , "rppt@kernel.org" , "madvenka@linux.microsoft.com" , "anthony.yznaga@oracle.com" , "steven.sistare@oracle.com" , "stanislav.kinsburskii@gmail.com" , "linux-kernel@vger.kernel.org" , "seanjc@google.com" , "pbonzini@redhat.com" , "kys@microsoft.com" , "arnd@arndb.de" , "wei.liu@kernel.org" , "anrayabh@linux.microsoft.com" , "dragan.cvetic@amd.com" , "jinankjain@linux.microsoft.com" , "derek.kiernan@amd.com" , "linux-mm@kvack.org" , "Andrew Morton" , , , kvm References: <64e7cbf7.050a0220.114c7.b70dSMTPIN_ADDED_BROKEN@mx.google.com> <2023082506-enchanted-tripping-d1d5@gregkh> <20230823024500.GA25462@skinsburskii.> From: Alexander Graf In-Reply-To: <20230823024500.GA25462@skinsburskii.> X-Originating-IP: [10.253.83.51] X-ClientProxiedBy: EX19D037UWC003.ant.amazon.com (10.13.139.231) To EX19D020UWC004.ant.amazon.com (10.13.138.149) Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 X-Stat-Signature: m8b4774ouptjawt7xtq33dmjtrraxo4t X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: ABCF114000E X-Rspam-User: X-HE-Tag: 1693255837-359617 X-HE-Meta: U2FsdGVkX18tvO4f6Oh+pzi4cfMB5NLC+VikZJPhwYQGwPsTeabOKFuwg3ZApjdhHcChxkLB68Oc+4DyLwwMbVsWogKxP94TLe8/5tVqK/leeNGFOGhN97G5TpPVt2edme4M3IGHZD0GEGOIZOZXvMcktmDaSA3+NO1yJJzpCxnptZWisCSDnsBnpsbU/zcmKxmOspPqa3+Xy5IlCnmds9QfDjdyn2IXmoekWJhXdIPztaxy+GfcJeTsZIpIooGQhitTXSvSIPBfvl4VTfA/Oj9eciqfggxdtVftgreloo50AE+Mv21XTVhRZy93CpY65l0D60XkaVqWf8s20XQf5SSBjDvU8+vjonVRNl9MNyX6CQawSflk0/9bL1Cbd9eBdE/uUReIB5wlMFHEoquVR0iNnl1c6A+87SD2S/e7iLSWLraZmdmszKzIHKyyXrwJfuv165zT6pqBFkhtfk42Bi9oxDsPpbQgKxA5yzuvmTXEccbs+GUhPVS5eovhZoCbHQ4bHuIFgnNcxjmY0iU2LESu9tZ+NONKTZar7QDXznFxbOrXVRA7NBC4IwhS3rSYt2NHksdpdkJwaF1ndqjbOB0tbbNJXH4wKEINxgUtgnZd+cHfsdpQGUx8KYOFQ3XXL674ddDK+rMSSgVxprdHUm6MmBx4sAHxUyAtS6zG8C+zWWfBz5B3n8apC1PCUSnlAAuazuXbb5rw82+qSLrpp8DNDS3xSBpnNyAWFKC6XGUNv0l9YTAgYBK1ZRtAKenDidqS4ulBr7PICYhc/o9aX/7y770Dum6R6JWPpHWHV3QwjRqsW1xn1DwFrFVL1jn0XYdpk+k1ilNhV5qQnHrkeuzupGcSN1Jpt+iJa3LbcyE2QX0j12PXtROSeQWwahqF42U1FujW1aPtbptVZlcbgFiiJOPatwQVvrJpfUOgiTIFZ6MzUSy4aNQoOkTTFtyG/20mXSrWJXSHl5ZNaS5 7oi+R6Ol GyyRsy0ZNqGtgaLBXVelKW9dN+MPJ3PDZhw1XU5X+sxnsWxhBVrNChMWt8HpOBeK2a1KvCt2pHejzhZVYNvLprNbiFHTUxXd2CQ7S+BJX+i5kBxky7mJbnSJHFjOJCy4xBAjhVRs3eIVQ7uv776ywT2mHFud1aSXsbM1U9ZxEcuNatLd5nE1iUV9osVQGlrRCKvcQ6u1jvbCPDSGSq4Z7yjH7ZtzeInCUvi6LeZBFYMI8JeVz8VTdbzYyKV5rU8wGa106HAv45dhkzb83xQHaKkJKv3uucRIdCgSxqT1Af7mD45qGHKzFirV/KPuq2wKCk4uuRileU3BKIwfTXnc14mEPLnCq4+v3YhJmtwRZs3QuFvfpcK+ByOCMEEB3pZ4C4EhmKtZu3CSYeY44E265mKhrWlwy1IMXB7fyoVYsFH0VUTYb8/xjOsYhx6bpmPDK3z0MKl7qPauIQ4d1g/mcIcU7O3iGBfCZ2zD3qYuN5liDH8qr5+OvPHyx/sXilNheXtYW7zREFCCCLCCFcgCfUpIbZ0wXnBBReGjzYSDz3MPfWNQPg2xMXD5+OHUbOS2l9LadC7EfKn7vKNmww3ZkHNzBvMEJVfe/0L48iF+8uiIDJEiZUsiPibwmex/27VNvx5GUrrnf6FJtwhztYNbFqBldBhrY8bkWaJMkGY2pXJ5WsWF2rLbXSKPX2FO1meNGdoVXfNGw08NlUTGP3wnQCsGQ7I5dEvJDXw4s 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: K2tleGVjLCBpb21tdSwga3ZtCgpPbiAyMy4wOC4yMyAwNDo0NSwgU3RhbmlzbGF2IEtpbnNidXJz a2lpIHdyb3RlOgo+Cj4gK2FrcG0sICtsaW51eC1tbQo+Cj4gT24gRnJpLCBBdWcgMjUsIDIwMjMg YXQgMDE6MzI6NDBQTSArMDAwMCwgR293YW5zLCBKYW1lcyB3cm90ZToKPj4gT24gRnJpLCAyMDIz LTA4LTI1IGF0IDEwOjA1ICswMjAwLCBHcmVnIEtyb2FoLUhhcnRtYW4gd3JvdGU6Cj4+Cj4+IFRo YW5rcyBmb3IgYWRkaW5nIG1lIHRvIHRoaXMgdGhyZWFkIEdyZWchCj4+Cj4+PiBPbiBUdWUsIEF1 ZyAyMiwgMjAyMyBhdCAxMTozNDozNEFNIC0wNzAwLCBTdGFuaXNsYXYgS2luc2J1cnNraWkgd3Jv dGU6Cj4+Pj4gVGhpcyBwYXRjaCBhZGRyZXNzZXMgdGhlIG5lZWQgZm9yIGEgbWVtb3J5IGFsbG9j YXRvciBkZWRpY2F0ZWQgdG8KPj4+PiBwZXJzaXN0ZW50IG1lbW9yeSB3aXRoaW4gdGhlIGtlcm5l bC4gVGhpcyBhbGxvY2F0b3Igd2lsbCBwcmVzZXJ2ZQo+Pj4+IGtlcm5lbC1zcGVjaWZpYyBzdGF0 ZXMgbGlrZSBETUEgcGFzc3Rocm91Z2ggZGV2aWNlIHN0YXRlcywgSU9NTVUgc3RhdGUsIGFuZAo+ Pj4+IG1vcmUgYWNyb3NzIGtleGVjLgo+Pj4+IFRoZSBwcm9wb3NlZCBzb2x1dGlvbiBvZmZlcnMg YSBmb3VuZGF0aW9uYWwgaW1wbGVtZW50YXRpb24gZm9yIHBvdGVudGlhbAo+Pj4+IGN1c3RvbSBz b2x1dGlvbnMgdGhhdCBtaWdodCBmb2xsb3cuIFRob3VnaCB0aGUgaW1wbGVtZW50YXRpb24gaXMK Pj4+PiBpbnRlbnRpb25hbGx5IGtlcHQgY29uY2lzZSBhbmQgc3RyYWlnaHRmb3J3YXJkIHRvIGZv c3RlciBkaXNjdXNzaW9uIGFuZAo+Pj4+IGZlZWRiYWNrLCBpdCdzIGZ1bGx5IGZ1bmN0aW9uYWwg aW4gaXRzIGN1cnJlbnQgc3RhdGUuCj4+IEhpIFN0YW5pc2xhdiwgaXQgbG9va3MgbGlrZSB3ZSdy ZSB3b3JraW5nIG9uIHNpbWlsYXIgdGhpbmdzLiBJJ20gbG9va2luZwo+PiB0byBkZXZlbG9wIGEg bWVjaGFuaXNtIHRvIHN1cHBvcnQgaHlwZXJ2aXNvciBsaXZlIHVwZGF0ZSBmb3Igd2hlbiBLVk0g aXMKPj4gcnVubmluZyBWTXMgd2l0aCBQQ0kgZGV2aWNlIHBhc3N0aHJvdWdoLiBWTXMgd2l0aCBk ZXZpY2UgcGFzc3Rocm91Z2gKPj4gYWxzbyBuZWNlc3NpdGF0ZXMgcGFzc2luZyBhbmQgcmUtaHlk cmF0aW5nIElPTU1VIHN0YXRlIHNvIHRoYXQgRE1BIGNhbgo+PiBjb250aW51ZSBkdXJpbmcgbGl2 ZSB1cGRhdGUuCj4+Cj4+IFBsYW5uaW5nIG9uIGhhdmluZyBhbiBMUEMgc2Vzc2lvbiBvbiB0aGlz IHRvcGljOgo+PiBodHRwczovL2xwYy5ldmVudHMvZXZlbnQvMTcvYWJzdHJhY3RzLzE2MjkvIChj dXJyZW50bHkgaXQncyBvbmx5IGEKPj4gc3VibWl0dGVkIGFic3RyYWN0IHNvIG5vdCBzdXJlIGlm IHZpc2libGUsIGhvcGVmdWxseSBpdCB3aWxsIGJlIHNvb24pLgo+Pgo+PiBXZSBhcmUgbG9va2lu ZyBhdCBpbXBsZW1lbnRpbmcgcGVyc2lzdGVuY2UgYWNyb3NzIGtleGVjIHZpYSBhbiBpbi1tZW1v cnkKPj4gZmlsZXN5c3RlbSBvbiB0b3Agb2YgcmVzZXJ2ZWQgbWVtb3J5LiBUaGlzIHdvdWxkIGhh dmUgZmlsZXMgZm9yIGFueXRoaW5nCj4+IHRoYXQgbmVlZHMgdG8gYmUgcGVyc2lzdGVkLiBUaGF0 IGluY2x1ZGVzIGZpbGVzIGZvciBJT01NVSBwZ3RhYmxlcywgZm9yCj4+IGd1ZXN0IG1lbW9yeSBv ciB1c2Vyc3BhY2UtYWNjZXNzaWJsZSBtZW1vcnkuCj4+Cj4+IEl0IG1heSBiZSBuaWNlIHRvIHNv bHZlIGFsbCBrZXhlYyBwZXJzaXN0ZW5jZSByZXF1aXJlbWVudHMgd2l0aCBvbmUKPj4gc29sdXRp b24sIGJ1dCB3ZSBjYW4gY29uc2lkZXIgSU9NTVUgc2VwYXJhdGVseS4gVGhlcmUgYXJlIGF0IGxl YXN0IHRocmVlCj4+IHdheXMgdGhhdCB0aGlzIGNhbiBiZSBkb25lOgo+PiBhKSBjYXJ2aW5nIG91 dCByZXNlcnZlZCBtZW1vcnkgZm9yIHBndGFibGVzLiBUaGlzIGlzIGRvbmUgYnkgeW91cgo+PiBw cm9wb3NhbCBoZXJlLCBhcyB3ZWxsIGFzIG15IHN1Z2dlc3Rpb24gb2YgYSBmaWxlc3lzdGVtLgo+ PiBiKSBwcmUvcG9zdCBrZXhlYyBob29rcyBmb3IgZHJpdmVycyB0byBzZXJpYWxpc2Ugc3RhdGUg YW5kIHBhc3MgaXQKPj4gYWNyb3NzIGluIGEgc3RydWN0dXJlZCBmb3JtYXQgZnJvbSBvbGQgdG8g bmV3IGtlcm5lbC4KPj4gYykgUmVjb25zdHJ1Y3RpbmcgSU9NTVUgc3RhdGUgaW4gdGhlIG5ldyBr ZXJuZWwgYnkgc3RhcnRpbmcgYXQgdGhlCj4+IGhhcmR3YXJlIHJlZ2lzdGVycyBhbmQgd2Fsa2lu ZyB0aGUgcGFnZSB0YWJsZXMuIE5vIHN0YXRlIHBhc3NpbmcgbmVlZGVkLgo+Pgo+PiBIYXZlIHlv dSBjb25zaWRlcmVkIG9wdGlvbiAoYikgYW5kIChjKSBoZXJlPyBPbmUgb2YgdGhlIGltcGxpY2F0 aW9ucyBvZgo+PiAoYikgYW5kIChjKSBhcmUgdGhhdCB0aGV5IHdvdWxkIG5lZWQgdG8gaG9vayBp bnRvIHRoZSBidWRkeSBhbGxvY2F0b3IKPj4gcmVhbGx5IGVhcmx5IHRvIGJlIGFibGUgdG8gY2Fy dmUgb3V0IHRoZSByZWNvbnN0cnVjdGVkIHBhZ2UgdGFibGVzCj4+IGJlZm9yZSB0aGUgYWxsb2Nh dG9yIGlzIHVzZWQuIFNpbWlsYXIgdG8gaG93IHBrcmFtIFswXSBob29rcyBpbiBlYXJseSB0bwo+ PiBjYXJ2ZSBvdXQgcGFnZXMgdXNlZCBmb3IgaXRzIGZpbGVzeXN0ZW0uCj4+Cj4gSGkgSmFtZXMs Cj4KPiBXZSBhcmUgaW5kZWVkIHdvcmtpbmcgb24gc2ltaWxhciB0aGluZ3MsIHNvIHRoYW5rcyBm b3IgY2hpbWluZyBpbi4KPiBJJ3ZlIHNlZW4gcGtyYW0gcHJvcG9zYWwgYXMgd2VsbCBhcyB5b3Vy IGNvbW1lbnRzIHRoZXJlLgo+Cj4gSSB0aGluayAoYikgd2lsbCBuZWVkIHNvbWUgcGVyc2lzdGVu dC1vdmVyLWtleGVjIG1lbW9yeSB0byBwYXNzIHRoZQo+IHN0YXRlIGFjcm9zcyBrZXhlYyBhcyB3 ZWxsIGFzIHNvbWUga2V5LXZhbHVlIHN0b3JlIHBlcnNpc3RlZCBhcyB3ZWxsLgo+IEFuZCB0aGUg cHJvcG9zZWQgcGVyc2lzdGVudCBtZW1vcnkgcG9vbCBpcyBhaW1lZCBleGFjdGx5IGZvciB0aGlz Cj4gcHVycG9zZS4KPiBPciBkbyB5b3UgaW1wbHkgc29tZSBvdGhlciB3YXkgdG8gcGFzcyBkcml2 ZXIncyBkYXRhIGFjY3Jvc3Mga2V4ZWM/CgoKSWYgSSBoYWQgdG8gYnVpbGQgdGhpcywgSSdkIHBy b2JhYmx5IGRvIGl0IGp1c3QgbGlrZSBkZXZpY2UgdHJlZSBwYXNzaW5nIApvbiBBUk0uIEl0J3Mg YSBzaW5nbGUsIHBoeXNpY2FsbHkgY29udGlndW91cyBibG9iIG9mIGRhdGEgd2hvc2UgZW50cnkg CnBvaW50IHlvdSBwYXNzIHRvIHRoZSB0YXJnZXQga2VybmVsLiBJSVJDIEFDUEkgcGFzc2luZyB3 b3JrcyBzaW1pbGFybHkuIApUaGlzIHdvdWxkIGp1c3QgYmUgb25lIG1vcmUgb3BhcXVlIGRhdGEg c3RydWN0dXJlIHRoYXQgdGhlbiBuZWVkcyB2ZXJ5IApzdHJpY3QgdmVyc2lvbmluZyBhbmQgZm9y d2FyZC9iYWNrd2FyZCBjb21wYXQgZ3VhcmFudGVlcy4KCgo+IEkgZGluZCd0IGNvbnNpZGVyIChj KSB5ZXQsIHRoYW5rcyBmb3IgZm9yIHRoZSBwb2ludGVyLgo+Cj4gSSBoYXZlIGEgcXVlc3Rpb24g aW4gdGhpcyBzY29wZTogaG93IGlzIFBDSSBkZXZpY2VzIHJlZ2lzdGVycyBzdGF0ZSBpcyBwZXJz aXN0ZWQKPiBhY3Jvc3Mga2V4ZWMgd2l0aCB0aGUgZmlsZXMgc3lzdGVtIHlvdSBhcmUgd29ya2lu ZyBvbj8gSS5lLiBob3cgZG9lcwo+IGRyaXZlciBrbm93LCB0aGF0IHRoZSBkZXZpY2Ugc2hvdWxk bid0IG5vdCBiZSByZWluaXRpYWxpemVkPwoKClRoZSBlYXNpZXN0IHdheSB0byBkbyBpdCBpbml0 aWFsbHkgd291bGQgYmUga2VybmVsIGNvbW1hbmQgbGluZSBvcHRpb25zIAp0aGF0IGhhY2sgdXAg dGhlIGRyaXZlcnMuIEJ1dCBJIHN1cHBvc2UgZGVwZW5kaW5nIG9uIHRoZSBvcHRpb24gd2UgZ28g CndpdGgsIHlvdSBjYW4gYWxzbyB1c2UgdGhlIHJlc3BlY3RpdmUgIm5hdHVyYWwiIHBhdGg6Cgoo YSkgQSBzcGVjaWFsIG1ldGFkYXRhIGZpbGUgdGhhdCBleHBsYWlucyB0aGUgc3RhdGUgdG8gdGhl IGRyaXZlcgooYikgQW4gZW50cnkgaW4gdGhlIHN0cnVjdHVyZWQgZmlsZSBmb3JtYXQgdGhhdCBl eHBsYWlucyB0aGUgc3RhdGUgdG8gCnRoZSB0YXJnZXQgZHJpdmVyCihjKSBDb21wYXRpYmxlIHRh cmdldCBkcml2ZXJzIHRyeSB0byBlbnVtZXJhdGUgc3RhdGUgZnJvbSB0aGUgdGFyZ2V0IApkZXZp Y2UncyByZWdpc3RlciBmaWxlCgoKPgo+Pj4+IFBvdGVudGlhbCBhcHBsaWNhdGlvbnMgaW5jbHVk ZToKPj4+Pgo+Pj4+ICAgIDEuIEFsbG93aW5nIHZhcmlvdXMgaW4ta2VybmVsIGVudGl0aWVzIHRv IGFsbG9jYXRlIHBlcnNpc3RlbnQgcGFnZXMgZnJvbQo+Pj4+ICAgICAgIGEgc2luZ3VsYXIgbWVt b3J5IHBvb2wsIGVsaW1pbmF0aW5nIHRoZSBuZWVkIGZvciBtdWx0aXBsZSByZWdpb24KPj4+PiAg ICAgICByZXNlcnZhdGlvbnMuCj4+Pj4KPj4+PiAgICAyLiBGb3IgaW4ta2VybmVsIGNvbXBvbmVu dHMgdGhhdCByZXF1aXJlIHRoZSBhbGxvY2F0aW9uIGFkZHJlc3MgdG8gYmUKPj4+PiAgICAgICBh dmFpbGFibGUgb24ga2VybmVsIGtleGVjLCB0aGlzIGFkZHJlc3MgY2FuIGJlIGV4cG9zZWQgdG8g dXNlciBzcGFjZSBhbmQKPj4+PiAgICAgICB0aGVuIHBhc3NlZCB2aWEgdGhlIGNvbW1hbmQgbGlu ZS4KPj4gRG8geW91IGhhdmUgc3BlY2lmaWMgZXhhbXBsZXMgb2Ygb3RoZXIgc3RhdGUgdGhhdCBu ZWVkcyB0byBiZSBwYXNzZWQKPj4gYWNyb3NzPyBUcnlpbmcgdG8gc2VlIHdoZXRoZXIgdGFpbG9y aW5nIHNwZWNpZmljYWxseSB0byB0aGUgSU9NTVUgY2FzZQo+PiBpcyBva2F5LiBDb25jZXB0dWFs bHkgSU9NTVUgc3RhdGUgY2FuIGJlIHJlY29uc3RydWN0ZWQgc3RhcnRpbmcgd2l0aAo+PiBoYXJk d2FyZSByZWdpc3RlcnMsIG5vdCBuZWVkaW5nIHJlc2VydmVkIG1lbW9yeS4gT3RoZXIgdXNlLWNh c2VzIG1heSBub3QKPj4gaGF2ZSB0aGlzIG9wdGlvbi4KPj4KPiBXZWxsLCBiYXNpY2FsbHkgaXQn cyBJT01NVSBzdGF0ZSBhbmQgUENJIGRldmljZXMgdG8gc2tpcC9hdm9pZAo+IGluaXRpYWxpemlu Zy4KPiBJIGJldCB0aGVyZSBjYW4gYmUgb3RoZXIgbWlzYyAoYW5kIHVucmVsYXRlZCB0aGluZ3Mp IGxpa2UgcGVyc2lzdGVudAo+IGZpbGVzeXN0ZW1zLCBibG9jayBkZXZpY2VzLCBldGMuIEJ1dCBJ IGRvbid0IGhhdmUgYSBzb2xpZCBzZXQgb2YgdXNlCj4gY2FzZXMgdG8gcHJlc2VudC4KCgpXb3Vs ZCBiZSBncmVhdCBpZiB5b3UgY291bGQgdGhpbmsgdGhyb3VnaCB0aGUgcHJvYmxlbSBzcGFjZSB1 bnRpbCBMUEMgc28gCndlIGNhbiBoYXZlIGEgc29saWQgY29udmVyc2F0aW9uIHRoZXJlIDopCgoK Pgo+Pj4gQXMgeW91IGhhdmUgbm8gaW4ta2VybmVsIHVzZXJzIG9mIHRoaXMsIGl0J3Mgbm90IHNv bWV0aGluZyB3ZSBjYW4gZXZlbgo+Pj4gY29uc2lkZXIgYXQgdGhlIG1vbWVudCBmb3Igb2J2aW91 cyByZWFzb25zIChuZWl0aGVyIHdvdWxkIHlvdSB3YW50IHVzCj4+PiB0by4pCj4+Pgo+Pj4gQ2Fu IHlvdSBtYWtlIHRoaXMgcGFydCBvZiBhIHBhdGNoIHNlcmllcyB0aGF0IGFjdHVhbGx5IGFkZHMg YSB1c2VyLAo+Pj4gcHJvYmFibHkgbW9yZSB0aGFuIG9uZSwgc28gdGhhdCB3ZSBjYW4gc2VlIGlm IGFueSBvZiB0aGlzIGV2ZW4gbWFrZXMKPj4+IHNlbnNlPwo+PiBJJ20gdmVyeSBrZWVuIHRvIHNl ZSB0aGlzIGFzIHdlbGwuIFRoZSB3YXkgdGhhdCB0aGUgSU9NTVUgZHJpdmVycyBhcmUKPj4gZW5s aWdodGVuZWQgdG8gaG9vayBpbnRvIHlvdXIgbWVtb3J5IHBvb2wgd2lsbCBsaWtlbHkgYmUgc2lt aWxhciB0byBob3cKPj4gdGhleSB3b3VsZCBob29rIGludG8gbXkgcHJvcG9zYWwgb2YgYW4gaW4t bWVtb3J5IGZpbGVzeXN0ZW0uCj4+IERvIHlvdSBoYXZlIGNvZGUgYXZhaWxhYmxlIHNob3dpbmcg dGhlIElPTU1VIGludGVncmF0aW9uPwo+Pgo+IE5vLCBJIGRvbid0IGhhdmUgc3VjaCBhIGNvZGUg eWV0Lgo+IEJ1dCBJIHdhcyB0aGlua2luZyB0aGF0IHVzaW5nIHN1Y2ggYSBhbGxvY2F0b3IgaW4g dGhlIG1lbXBvb2wgYWxsb3dzCj4gdG8gaGlkZSB0aGlzIGltcGxlbWVudGF0aW9uIHVuZGVyIHRo ZSBob29kIG9mIGFuIGV4aXN0ZW50IGdlbmVyaWMKPiBtZWNoYW5pc20sIHdoaWNoIGlzIHRoZW4g Y2FuIGJlIHVzZWQgdG8gY3JlYXRlIHBlcnNpc3RlbnQgb2JqZWN0cyAoZmlsZQo+IHN5c3RlbSwg Zm9yIGV4YW1wbGUpIG9uIHRvcCBvZiBpdC4KCgpVbmZvcnR1bmF0ZWx5IGl0J3MgcHJhY3RpY2Fs bHkgaW1wb3NzaWJsZSB0byBoYXZlIGEgc29saWQgY29udmVyc2F0aW9uIApvbiBnZW5lcmljIG1l Y2hhbmlzbXMgd2l0aG91dCBhY3R1YWwgdXNlcnMgdG8gc2VlIGhvdyB0aGV5IGZpdCBpbiB3aXRo IAp0aGUgcmVhbCB3b3JsZC4gVGhhdCdzIEdyZWcncyBhbnN3ZXIgdG8geW91ciBwYXRjaCBzZXQg YW5kIEkgdGVuZCB0byAKYWdyZWUuIFdoYXQgaWYgKGIpIG9yIChjKSB0dXJuIG91dCBtdWNoIG1v cmUgdmlhYmxlPyBUaGVuIHdlJ3ZlIHdhc3RlZCBhIApsb3Qgb2YgZWZmb3J0IGluIHNoYXBpbmcg dXAgdGhlIGFsbG9jYXRvciBmb3Igbm8gZ29vZCByZWFzb24uCgoKPgo+Pj4+ICAgZHJpdmVycy9t aXNjL0tjb25maWcgICB8ICAgIDcgKwo+Pj4+ICAgZHJpdmVycy9taXNjL01ha2VmaWxlICB8ICAg IDEKPj4+PiAgIGRyaXZlcnMvbWlzYy9wbXBvb2wuYyAgfCAgMjcwICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+Pj4+ICAgaW5jbHVkZS9saW51eC9wbXBv b2wuaCB8ICAgMjAgKysrKwo+Pj4+ICAgNCBmaWxlcyBjaGFuZ2VkLCAyOTggaW5zZXJ0aW9ucygr KQo+Pj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbWlzYy9wbXBvb2wuYwo+Pj4+ICAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbGludXgvcG1wb29sLmgKPj4+IG1pc2MgaXMgbm90 IGZvciBtZW1vcnkgcG9vbHMsIGFzIHRoaXMgaXMgbm90IGEgZHJpdmVyLiAgcGxlYXNlIHB1dCB0 aGlzCj4+PiBpbiB0aGUgcHJvcGVybHkgbG9jYXRpb24gaW5zdGVhZCBvZiB0cnlpbmcgdG8gaGlk ZSBpdCBmcm9tIHRoZSBtbQo+Pj4gbWFpbnRhaW5lcnMgYW5kIHN1YnN5c3RlbSA6KQo+PiBPbmUg b2YgdGhlIHJlYXNvbnMgSSB0aG91Z2h0IGEgcHJvcGVyIGZpbGVzeXN0ZW0gd291bGQgYmUgYSBi ZXR0ZXIgd2F5Cj4+IG9mIGV4cG9zaW5nIHRoaXMgZnVuY3Rpb25hbGl0eS4KPj4KPiBZZXMsIEkg c2VlIHRoZSBwb2ludCBvZiBoYXZpbmcgYSBmaWxlIHN5c3RlbSBmb3IgdGhlIGdvYWxzIHlvdSBh cmUKPiB0YXJnZXRpbmcuIEl0IGxvb2tzIGxpa2UgdGhlIHJpZ2h0IHdheSBmb3J3YXJkLgo+Cj4g V2hhdCBJJ20gbm90IHN1cmUgYWJvdXQgaXMgdGhhdCBwZXJzaXN0ZW50LW92ZXIta2V4ZWMgbWVt b3J5IG1hbmFnZW1lbnQgYW5kCj4gdGhlIGFjdHVhbCBwcmVzZXJ2YXRpb24gbWVjaGFuaXNtIHNo b3VsZCBiZSBhbiBlbWJlZGRlZCBwYXJ0IG9mIHRoaXMgZmlsZQo+IHN5c3RlbS4KPgo+IFdoYXQg SSdtIHRyeWluZyB0byBwcm9wb3NlIGlzIGEgcGFydCBvZiBhIGdlbmVyaWMgbWVjaGFuaXNtIHRv IHByb3ZpZGUKPiBzdGF0ZSBwZXJzaXN0ZW5jZSBhY3Jvc3Mga2V4ZWMsIHdoaWNoIGNhbiB0aGVu IGJlIHVzZWQgYnkgeW91ciBmaWxlCj4gc3lzdGVtIG9yIHNvbWV0aGluZyBlbHNlLgo+Cj4gV2hh dCBkbyB5b3UgdGhpbmsgYWJvdXQgdGhpcyBhcHByb2FjaD8KCgpJTUhPIHdlIG5lZWQgdG8gYXQg bGVhc3QgcHJvdG90eXBlIGVhY2ggb2YgdGhlIHBhdGhzIG91dGxpbmVkIGFib3ZlIHRvIApiZSBh YmxlIHRvIGNyZWF0ZSBhIHNlbnNlIGZvciB3aGF0IHdvcmtzIHRoZSBiZXN0LiBJIGNhbiBzZWUg cHJvYmxlbXMgCndpdGggYWxsIG9mIHRoZW0gLSBhbmQgSSdtIHBlcnNvbmFsbHkgbm90IGNvbnZp bmNlZCB0aGVyZSB3aWxsIGJlIGEgCm9uZS1zaXplLWZpdHMtYWxsIHNvbHV0aW9uIHlldC4KClRo YXQgc2FpZCwgSSBhbSBoYXBweSB0byBzZWUgeW91IHB1cnN1ZSBzaW1pbGFyIHBhdGhzIHRvIHdo YXQgd2UgaGF2ZSBpbiAKbWluZC4gSXQgbWVhbnMgdGhlcmUgaXMgYSByZWFsIGdhcCBpbiBmdW5j dGlvbmFsaXR5IGluIExpbnV4IGtleGVjIHRoYXQgCndlIG5lZWQgdG8gb3ZlcmNvbWUgc29vbmVy IG9yIGxhdGVyLgoKCkFsZXgKCgoKCgpBbWF6b24gRGV2ZWxvcG1lbnQgQ2VudGVyIEdlcm1hbnkg R21iSApLcmF1c2Vuc3RyLiAzOAoxMDExNyBCZXJsaW4KR2VzY2hhZWZ0c2Z1ZWhydW5nOiBDaHJp c3RpYW4gU2NobGFlZ2VyLCBKb25hdGhhbiBXZWlzcwpFaW5nZXRyYWdlbiBhbSBBbXRzZ2VyaWNo dCBDaGFybG90dGVuYnVyZyB1bnRlciBIUkIgMTQ5MTczIEIKU2l0ejogQmVybGluClVzdC1JRDog REUgMjg5IDIzNyA4NzkKCgo=