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 EE78DD0D79F for ; Fri, 11 Oct 2024 14:27:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 890346B00A3; Fri, 11 Oct 2024 10:27:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 840946B00A5; Fri, 11 Oct 2024 10:27:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 72F7D6B00A7; Fri, 11 Oct 2024 10:27:51 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 549056B00A3 for ; Fri, 11 Oct 2024 10:27:51 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id E00DE41393 for ; Fri, 11 Oct 2024 14:27:47 +0000 (UTC) X-FDA: 82661550258.21.7633A5A Received: from smtp-fw-80007.amazon.com (smtp-fw-80007.amazon.com [99.78.197.218]) by imf24.hostedemail.com (Postfix) with ESMTP id A22FC18001D for ; Fri, 11 Oct 2024 14:27:47 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=amazon.de header.s=amazon201209 header.b=pYnlQvBC; spf=pass (imf24.hostedemail.com: domain of "prvs=0074450d2=faresx@amazon.de" designates 99.78.197.218 as permitted sender) smtp.mailfrom="prvs=0074450d2=faresx@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=1728656685; 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=utOywkSlZeudj2omzz1rHeyvK9mALpbZrH/q/yvHmyU=; b=4qS2MaJkFDuZSkaMC4HQ9qPAikKnzltG8K+kbpAM8bE7PfI2oMpNYOMvWuNyZE4+OEMQr4 C40QXelrMAHaaqqHxSXc+hpDHUtQo6/TPkFZPK+CFemqlxFIICk+rRoJjP6aaupg0+PmrP B/0U7ajysB3wH/84vjm2EkfiGwoM1zc= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=amazon.de header.s=amazon201209 header.b=pYnlQvBC; spf=pass (imf24.hostedemail.com: domain of "prvs=0074450d2=faresx@amazon.de" designates 99.78.197.218 as permitted sender) smtp.mailfrom="prvs=0074450d2=faresx@amazon.de"; dmarc=pass (policy=quarantine) header.from=amazon.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1728656685; a=rsa-sha256; cv=none; b=qS9JttL7NNAsoXTv8u/iAlOBj0fydc19zRg3gmGRDDBRxHaCa7ToKdnri5WY+ierfrG9Ch nS1Pc32t+FpGZIKm6RbORH0icNRy6q2nAmSu5DYbk9cfVi467S/ZlyqP/Zbf67KB2sVXcY CsVcxXlFVtftBOW8Ykwi/Op+nxOSjC0= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.de; i=@amazon.de; q=dns/txt; s=amazon201209; t=1728656869; x=1760192869; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=utOywkSlZeudj2omzz1rHeyvK9mALpbZrH/q/yvHmyU=; b=pYnlQvBCU4oSLuZVNmj0CmwNoJKtk16qp2hA0y8rS6i+VeBSlmwsNwVS /bRiQPLW3zv/nwNln0LmCtHr6+x6+t5e07zQY+Eh8FGfuHNDOZZs3fy1r eR2dL3teuxhvONAsUBZboOYzd2+uf9MLg/trGg5dV1F4Gy5zijhoyS5zW Q=; X-IronPort-AV: E=Sophos;i="6.11,196,1725321600"; d="scan'208";a="342255001" Received: from pdx4-co-svc-p1-lb2-vlan2.amazon.com (HELO smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.25.36.210]) by smtp-border-fw-80007.pdx80.corp.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Oct 2024 14:27:36 +0000 Received: from EX19MTAEUA002.ant.amazon.com [10.0.17.79:49039] by smtpin.naws.eu-west-1.prod.farcaster.email.amazon.dev [10.0.15.145:2525] with esmtp (Farcaster) id 7e5c6f2e-a3de-46ea-a743-f0f972a76431; Fri, 11 Oct 2024 14:27:34 +0000 (UTC) X-Farcaster-Flow-ID: 7e5c6f2e-a3de-46ea-a743-f0f972a76431 Received: from EX19D007EUB003.ant.amazon.com (10.252.51.43) by EX19MTAEUA002.ant.amazon.com (10.252.50.126) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34; Fri, 11 Oct 2024 14:27:32 +0000 Received: from EX19MTAUWB001.ant.amazon.com (10.250.64.248) by EX19D007EUB003.ant.amazon.com (10.252.51.43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.35; Fri, 11 Oct 2024 14:27:32 +0000 Received: from email-imr-corp-prod-pdx-all-2c-619df93b.us-west-2.amazon.com (10.25.36.214) by mail-relay.amazon.com (10.250.64.254) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34 via Frontend Transport; Fri, 11 Oct 2024 14:27:31 +0000 Received: from dev-dsk-faresx-1b-27755bf1.eu-west-1.amazon.com (dev-dsk-faresx-1b-27755bf1.eu-west-1.amazon.com [10.253.79.181]) by email-imr-corp-prod-pdx-all-2c-619df93b.us-west-2.amazon.com (Postfix) with ESMTPS id EC4BE40499; Fri, 11 Oct 2024 14:27:27 +0000 (UTC) From: Fares Mehanna To: CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: Re: [RFC PATCH 0/7] support for mm-local memory allocations and use it Date: Fri, 11 Oct 2024 14:25:47 +0000 Message-ID: <20241011142547.24447-1-faresx@amazon.de> X-Mailer: git-send-email 2.40.1 In-Reply-To: <63d112d8-62d0-4e95-81f0-3031f990abc4@redhat.com> References: <63d112d8-62d0-4e95-81f0-3031f990abc4@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: A22FC18001D X-Stat-Signature: rtsyk11h1ccwmen1gkuafc4878sqow4a X-Rspam-User: X-HE-Tag: 1728656867-854445 X-HE-Meta: U2FsdGVkX1/iogzmV57x/U+ya/VMUVMbNZMBxnSP4SE/5Fq/Fo257gn0aWD3fNgFPRh8XBgUBKOLwvMmhKbIVGEmc+N66H6Ld/fBaCXzMmJbu3EfAohY3rDqGZTJX0zykJRraxEv1599YFXdilRGYaWpzrs2KDeL1U0uhHPW3BgAypBeabDGu22rXt+sQSQZrfnxdgcVsJxkwiu2xVtYwRJ4EMxoCTjwTT9v3dgYJPAWXBKOu/XRBY7AZHHr2gJyfKiWO4tjHULzz7jHleFwjPFkjzYrHBoMlcs9wtVCTRyPTfc6TgJGSApqKrHrAcJqULlC3dEwAYEltRdIqs8Uibder3m8OX/kaRz0LxgkbHzSHYEuPnxbOKmMf4XCd8n7VZB7Sf3vPIdVxXohBKVNynqU/NsIs+KrY/6Is9Fsb+i7R1SpSg5dz2ScbGBK++Ti+uI+0cDkSFIdD/OjlEhnv0S9x+xhmUsORYNhtvz6Za120CGWduOFwE9mrXd4yUTDWNKhcGDh4Vf15y+WEQsxETHx27Yl8vWGmAULdKk2ReQx+5u7qg15m0olsJtaP6RIh8bLBsqQyRjR84+GWx94zb25bZioh+c1EpRMuq6OcTu1RpjfACLd3dUwSoeKsTRO/UhydZ1MDjylaR7z1vnO4Jmviq4JqlbmGxOXTSpt5rrBzHyI4l9oVqX/X9Ak0JETF/mhCDe4ooIiHtLpBUOp/qgGar5ZyE2YJ/NE0bHnFPGkNJXfbFx8FxQULsdkiK4c5k7sXCpwssskR5ea0EtNCmxxqvMubsTUGElQjKOGgs5dr2pAdoc1mpzjnxy3yNLQm9NECue7lmHh1hYhErz3VXGRWimC7/NQ8fK12YzI8/IZmGPqvybka6kUUtlVhyQBf30TRI24P6eZgGkcDnL/zFZVxLsFbeMy/+k+z/9tB3p7pd+3sPWM0TqQ2R2aQjqz73CbSQGj7LPsIA70h6m 90KBFVj8 efdlO/ixTlrdV+J4jjoIi46Q8G68eFFOUm99CTUUfaFQfDhAENetBCcaoAc9t6B3uiZ45RDDtwP9c9outMvEJSwBIEiXSSMo7rHa+vEDsO9EqCLW5bGK/sQbc8vrSyw333KkAEbrRQzak7/saUuyLGc78PSGJtpTSO8JSDh088YqQbFATcc0Yskxysa8qIvEy+5m8NVntgw1/r7+o2yPj61NXu+bPu+hE8UEzNis8flzOjd8jgXuzT+t9kAhD0p9fKddsVIcmiorinkNoh9jSkPSwEUhgXZcTUPxyci1lZc+1D65urcEsALNiC88oLHxrnHxzFpMMZ1YJtHJeXSyFIIpxJFPe/WimhKx/T/szY3+LRQAZvx016seUXNsC8tobIJiivXq6FX7toeMPczjACHT6JunhoOR2cAkZrmMUQuD6ssH5kqh7OzVyNKgyMAL2zyHkxXrW0EJ93mE= 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: List-Subscribe: List-Unsubscribe: Pj4gCj4+IAo+Pj4gT24gMTEuIE9jdCAyMDI0LCBhdCAxNDozNiwgTWVkaW91bmksIE1vaGFtZWQg PG1lZGlvdUBhbWF6b24uZGU+IHdyb3RlOgo+Pj4KPj4+Cj4+Pgo+Pj4+IE9uIDExLiBPY3QgMjAy NCwgYXQgMTQ6MDQsIERhdmlkIEhpbGRlbmJyYW5kIDxkYXZpZEByZWRoYXQuY29tPiB3cm90ZToK Pj4+Pgo+Pj4+IE9uIDEwLjEwLjI0IDE3OjUyLCBGYXJlcyBNZWhhbm5hIHdyb3RlOgo+Pj4+Pj4+ IEluIGEgc2VyaWVzIHBvc3RlZCBhIGZldyB5ZWFycyBhZ28gWzFdLCBhIHByb3Bvc2FsIHdhcyBw dXQgZm9yd2FyZCB0byBhbGxvdyB0aGUKPj4+Pj4+PiBrZXJuZWwgdG8gYWxsb2NhdGUgbWVtb3J5 IGxvY2FsIHRvIGEgbW0gYW5kIHRodXMgcHVzaCBpdCBvdXQgb2YgcmVhY2ggZm9yCj4+Pj4+Pj4g Y3VycmVudCBhbmQgZnV0dXJlIHNwZWN1bGF0aW9uLWJhc2VkIGNyb3NzLXByb2Nlc3MgYXR0YWNr cy4gIFdlIHN0aWxsIGJlbGlldmUKPj4+Pj4+PiB0aGlzIGlzIGEgbmljZSB0aGluZyB0byBoYXZl Lgo+Pj4+Pj4+Cj4+Pj4+Pj4gSG93ZXZlciwgaW4gdGhlIHRpbWUgcGFzc2VkIHNpbmNlIHRoYXQg cG9zdCBMaW51eCBtbSBoYXMgZ3Jvd24gcXVpdGUgYSBmZXcgbmV3Cj4+Pj4+Pj4gZ29vZGllcywg c28gd2UnZCBsaWtlIHRvIGV4cGxvcmUgcG9zc2liaWxpdGllcyB0byBpbXBsZW1lbnQgdGhpcyBm dW5jdGlvbmFsaXR5Cj4+Pj4+Pj4gd2l0aCBsZXNzIGVmZm9ydCBhbmQgY2h1cm4gbGV2ZXJhZ2lu ZyB0aGUgbm93IGF2YWlsYWJsZSBmYWNpbGl0aWVzLgo+Pj4+Pj4+Cj4+Pj4+Pj4gQW4gUkZDIHdh cyBwb3N0ZWQgZmV3IG1vbnRocyBiYWNrIFsyXSB0byBzaG93IHRoZSBwcm9vZiBvZiBjb25jZXB0 IGFuZCBhIHNpbXBsZQo+Pj4+Pj4+IHRlc3QgZHJpdmVyLgo+Pj4+Pj4+Cj4+Pj4+Pj4gSW4gdGhp cyBSRkMsIHdlJ3JlIHVzaW5nIHRoZSBzYW1lIGFwcHJvYWNoIG9mIGltcGxlbWVudGluZyBtbS1s b2NhbCBhbGxvY2F0aW9ucwo+Pj4+Pj4+IHBpZ2d5LWJhY2tpbmcgb24gbWVtZmRfc2VjcmV0KCks IHVzaW5nIHJlZ3VsYXIgdXNlciBhZGRyZXNzZXMgYnV0IHBpbm5pbmcgdGhlCj4+Pj4+Pj4gcGFn ZXMgYW5kIGZsaXBwaW5nIHRoZSB1c2VyL3N1cGVydmlzb3IgZmxhZyBvbiB0aGUgcmVzcGVjdGl2 ZSBQVEVzIHRvIG1ha2UgdGhlbQo+Pj4+Pj4+IGRpcmVjdGx5IGFjY2Vzc2libGUgZnJvbSBrZXJu ZWwuCj4+Pj4+Pj4gSW4gYWRkaXRpb24gdG8gdGhhdCB3ZSBhcmUgc3VibWl0dGluZyA1IHBhdGNo ZXMgdG8gdXNlIHRoZSBzZWNyZXQgbWVtb3J5IHRvIGhpZGUKPj4+Pj4+PiB0aGUgdkNQVSBncC1y ZWdzIGFuZCBmcC1yZWdzIG9uIGFybTY0IFZIRSBzeXN0ZW1zLgo+Pj4+Pj4KPj4+Pj4+IEknbSBh IGJpdCBsb3N0IG9uIHdoYXQgZXhhY3RseSB3ZSB3YW50IHRvIGFjaGlldmUuIFRoZSBwb2ludCB3 aGVyZSB3ZQo+Pj4+Pj4gc3RhcnQgZmxpcHBpbmcgdXNlci9zdXBlcnZpc29yIGZsYWdzIGNvbmZ1 c2VzIG1lIDopCj4+Pj4+Pgo+Pj4+Pj4gV2l0aCBzZWNyZXRtZW0sIHlvdSdkIGdldCBtZW1vcnkg YWxsb2NhdGVkIHRoYXQKPj4+Pj4+IChhKSBJcyBhY2Nlc3NpYmxlIGJ5IHVzZXIgc3BhY2UgLS0g bWFwcGVkIGludG8gdXNlciBzcGFjZS4KPj4+Pj4+IChiKSBJcyBpbmFjY2Vzc2libGUgYnkga2Vy bmVsIHNwYWNlIC0tIG5vdCBtYXBwZWQgaW50byB0aGUgZGlyZWN0IG1hcAo+Pj4+Pj4gKGMpIEdV UCB3aWxsIGZhaWwsIGJ1dCBjb3B5X2Zyb20gLyBjb3B5X3RvIHVzZXIgd2lsbCB3b3JrLgo+Pj4+ Pj4KPj4+Pj4+Cj4+Pj4+PiBBbm90aGVyIHdheSwgd2l0aG91dCBzZWNyZXRtZW0sIHdvdWxkIGJl IHRvIGNvbnNpZGVyIHRoZXNlICJzZWNyZXRzIgo+Pj4+Pj4ga2VybmVsIGFsbG9jYXRpb25zIHRo YXQgY2FuIGJlIG1hcHBlZCBpbnRvIHVzZXIgc3BhY2UgdXNpbmcgbW1hcCgpIG9mIGEKPj4+Pj4+ IHNwZWNpYWwgZmQuIFRoYXQgaXMsIHRoZXkgd291bGRuJ3QgaGF2ZSB0aGVpciBvcmlnaW4gaW4g c2VjcmV0bWVtLCBidXQKPj4+Pj4+IGluIEtWTSBhcyBhIGtlcm5lbCBhbGxvY2F0aW9uLiBJdCBj b3VsZCBiZSBhY2hpZXZlZCBieSB1c2luZyBWTV9NSVhFRE1BUAo+Pj4+Pj4gd2l0aCB2bV9pbnNl cnRfcGFnZXMoKSwgbWFudWFsbHkgcmVtb3ZpbmcgdGhlbSBmcm9tIHRoZSBkaXJlY3RtYXAuCj4+ Pj4+Pgo+Pj4+Pj4gQnV0LCBJIGFtIG5vdCBzdXJlIHdobyBpcyBzdXBwb3NlZCB0byBhY2Nlc3Mg d2hhdC4gTGV0J3MgZXhwbG9yZSB0aGUKPj4+Pj4+IHJlcXVpcmVtZW50cy4gSSBhc3N1bWUgd2Ug d2FudDoKPj4+Pj4+Cj4+Pj4+PiAoYSkgUGFnZXMgYWNjZXNzaWJsZSBieSB1c2VyIHNwYWNlIC0t IG1hcHBlZCBpbnRvIHVzZXIgc3BhY2UuCj4+Pj4+PiAoYikgUGFnZXMgaW5hY2Nlc3NpYmxlIGJ5 IGtlcm5lbCBzcGFjZSAtLSBub3QgbWFwcGVkIGludG8gdGhlIGRpcmVjdCBtYXAKPj4+Pj4+IChj KSBHVVAgdG8gZmFpbCAobm8gZGlyZWN0IG1hcCkuCj4+Pj4+PiAoZCkgY29weV9mcm9tIC8gY29w eV90byB1c2VyIHRvIGZhaWw/Cj4+Pj4+Pgo+Pj4+Pj4gQW5kIG9uIHRvcCBvZiB0aGF0LCBzb21l IHdheSB0byBhY2Nlc3MgdGhlc2UgcGFnZXMgb24gZGVtYW5kIGZyb20ga2VybmVsCj4+Pj4+PiBz cGFjZT8gKHRlbXBvcmFyeSBDUFUtbG9jYWwgbWFwcGluZz8pCj4+Pj4+Pgo+Pj4+Pj4gT3IgaG93 IHdvdWxkIHRoZSBrZXJuZWwgbWFrZSB1c2Ugb2YgdGhlc2UgYWxsb2NhdGlvbnM/Cj4+Pj4+Pgo+ Pj4+Pj4gLS0gCj4+Pj4+PiBDaGVlcnMsCj4+Pj4+Pgo+Pj4+Pj4gRGF2aWQgLyBkaGlsZGVuYgo+ Pj4+PiBIaSBEYXZpZCwKPj4+Pgo+Pj4+IEhpIEZhcmVzIQo+Pj4+Cj4+Pj4+IFRoYW5rcyBmb3Ig dGFraW5nIGEgbG9vayBhdCB0aGUgcGF0Y2hlcyEKPj4+Pj4gV2UncmUgdHJ5aW5nIHRvIGFsbG9j YXRlIGEga2VybmVsIG1lbW9yeSB0aGF0IGlzIGFjY2Vzc2libGUgdG8gdGhlIGtlcm5lbCBidXQK Pj4+Pj4gb25seSB3aGVuIHRoZSBjb250ZXh0IG9mIHRoZSBwcm9jZXNzIGlzIGxvYWRlZC4KPj4+ Pj4gU28gdGhpcyBpcyBhIGtlcm5lbCBtZW1vcnkgdGhhdCBpcyBub3QgbmVlZGVkIHRvIG9wZXJh dGUgdGhlIGtlcm5lbCBpdHNlbGYsIGl0Cj4+Pj4+IGlzIHRvIHN0b3JlICYgcHJvY2VzcyBkYXRh IG9uIGJlaGFsZiBvZiBhIHByb2Nlc3MuIFRoZSByZXF1aXJlbWVudCBmb3IgdGhpcwo+Pj4+PiBt ZW1vcnkgaXMgdGhhdCBpdCB3b3VsZCBuZXZlciBiZSB0b3VjaGVkIHVubGVzcyB0aGUgcHJvY2Vz cyBpcyBzY2hlZHVsZWQgb24gdGhpcwo+Pj4+PiBjb3JlLiBvdGhlcndpc2UgYW55IG90aGVyIGFj Y2VzcyB3aWxsIGNyYXNoIHRoZSBrZXJuZWwuCj4+Pj4+IFNvIHRoaXMgbWVtb3J5IHNob3VsZCBv bmx5IGJlIGRpcmVjdGx5IHJlYWRhYmxlIGFuZCB3cml0YWJsZSBieSB0aGUga2VybmVsLCBidXQK Pj4+Pj4gb25seSB3aGVuIHRoZSBwcm9jZXNzIGNvbnRleHQgaXMgbG9hZGVkLiBUaGUgbWVtb3J5 IHNob3VsZG4ndCBiZSByZWFkYWJsZSBvcgo+Pj4+PiB3cml0YWJsZSBieSB0aGUgb3duZXIgcHJv Y2VzcyBhdCBhbGwuCj4+Pj4+IFRoaXMgaXMgYmFzaWNhbGx5IGRvbmUgYnkgcmVtb3ZpbmcgdGhv c2UgcGFnZXMgZnJvbSBrZXJuZWwgbGluZWFyIGFkZHJlc3MgYW5kCj4+Pj4+IGF0dGFjaGluZyB0 aGVtIG9ubHkgaW4gdGhlIHByb2Nlc3MgbW1fc3RydWN0LiBTbyBkdXJpbmcgY29udGV4dCBzd2l0 Y2hpbmcgdGhlCj4+Pj4+IGtlcm5lbCBsb3NlcyBhY2Nlc3MgdG8gdGhlIHNlY3JldCBtZW1vcnkg c2NoZWR1bGVkIG91dCBhbmQgZ2FpbiBhY2Nlc3MgdG8gdGhlCj4+Pj4+IG5ldyBwcm9jZXNzIHNl Y3JldCBtZW1vcnkuCj4+Pj4+IFRoaXMgZ2VuZXJhbGx5IHByb3RlY3RzIGFnYWluc3Qgc3BlY3Vs YXRpb24gYXR0YWNrcywgYW5kIGlmIG90aGVyIHByb2Nlc3MgbWFuYWdlZAo+Pj4+PiB0byB0cmlj ayB0aGUga2VybmVsIHRvIGxlYWsgZGF0YSBmcm9tIG1lbW9yeS4gSW4gdGhpcyBjYXNlIHRoZSBr ZXJuZWwgd2lsbCBjcmFzaAo+Pj4+PiBpZiBpdCB0cmllcyB0byBhY2Nlc3Mgb3RoZXIgcHJvY2Vz c2VzIHNlY3JldCBtZW1vcnkuCj4+Pj4+IFNpbmNlIHRoaXMgbWVtb3J5IGlzIHNwZWNpYWwgaW4g dGhlIHNlbnNlIHRoYXQgaXQgaXMga2VybmVsIG1lbW9yeSBidXQgb25seSBtYWtlCj4+Pj4+IHNl bnNlIGluIHRoZSB0ZXJtIG9mIHRoZSBvd25lciBwcm9jZXNzLCBJIHRyaWVkIGluIHRoaXMgcGF0 Y2ggc2VyaWVzIHRvIGV4cGxvcmUKPj4+Pj4gdGhlIHBvc3NpYmlsaXR5IG9mIHJldXNpbmcgbWVt ZmRfc2VjcmV0KCkgdG8gYWxsb2NhdGUgdGhpcyBtZW1vcnkgaW4gdXNlciB2aXJ0dWFsCj4+Pj4+ IGFkZHJlc3Mgc3BhY2UsIG1hbmFnZSBpdCBpbiBhIFZNQSwgZmxpcHBpbmcgdGhlIHBlcm1pc3Np b25zIHdoaWxlIGtlZXBpbmcgdGhlCj4+Pj4+IGNvbnRyb2wgb2YgdGhlIG1hcHBpbmcgZXhjbHVz aXZlbHkgd2l0aCB0aGUga2VybmVsLgo+Pj4+PiBSaWdodCBub3cgaXQgaXM6Cj4+Pj4+IChhKSBQ YWdlcyBub3QgYWNjZXNzaWJsZSBieSB1c2VyIHNwYWNlIC0tIGV2ZW4gdGhvdWdoIHRoZXkgYXJl IG1hcHBlZCBpbnRvIHVzZXIKPj4+Pj4gICAgIHNwYWNlLCB0aGUgUFRFcyBhcmUgbWFya2VkIGZv ciBrZXJuZWwgdXNhZ2UuCj4+Pj4KPj4+PiBBaCwgdGhhdCBpcyB0aGUgZGV0YWlsIEkgd2FzIG1p c3NpbmcsIG5vdyBJIHNlZSB3aGF0IHlvdSBhcmUgdHJ5aW5nIHRvIGFjaGlldmUsIHRoYW5rcyEK Pj4+Pgo+Pj4+IEl0IGlzIGEgYml0IGFyY2hpdGVjdHVyZSBzcGVjaWZpYywgYmVjYXVzZSAuLi4g aW1hZ2luZSBhcmNoaXRlY3R1cmVzIHRoYXQgaGF2ZSBzZXBhcmF0ZSBrZXJuZWwrdXNlciBzcGFj ZSBwYWdlIHRhYmxlIGhpZXJhcmNoaWVzLCBhbmQgbm90IGEgc2ltcGxlIFBURSBmbGFnIAo+IHRv IGNoYW5nZSBhY2Nlc3MgcGVybWlzc2lvbnMgYmV0d2VlbiBrZXJuZWwvdXNlciBzcGFjZS4KPj4+ Pgo+Pj4+IElJUkMgczM5MCBpcyBvbmUgc3VjaCBhcmNoaXRlY3R1cmUgdGhhdCB1c2VzIHNlcGFy YXRlIHBhZ2UgdGFibGVzIGZvciB0aGUgdXNlci1zcGFjZSArIGtlcm5lbC1zcGFjZSBwb3J0aW9u cy4KPj4+Pgo+Pj4+PiAoYikgUGFnZXMgYWNjZXNzaWJsZSBieSBrZXJuZWwgc3BhY2UgLS0gZXZl biB0aG91Z2ggdGhleSBhcmUgbm90IG1hcHBlZCBpbnRvIHRoZQo+Pj4+PiAgICAgZGlyZWN0IG1h cCwgdGhlIFBURXMgaW4gdXZhZGRyIGFyZSBtYXJrZWQgZm9yIGtlcm5lbCB1c2FnZS4KPj4+Pj4g KGMpIGNvcHlfZnJvbSAvIGNvcHlfdG8gdXNlciB3b24ndCBmYWlsIC0tIGJlY2F1c2UgaXQgaXMg aW4gdGhlIHVzZXIgcmFuZ2UsIGJ1dAo+Pj4+PiAgICAgdGhpcyBjYW4gYmUgZml4ZWQgYnkgYWxs b2NhdGluZyBzcGVjaWZpYyByYW5nZSBpbiB1c2VyIHZhZGRyIHRvIHRoaXMgZmVhdHVyZQo+Pj4+ PiAgICAgYW5kIGNoZWNrIGFnYWluc3QgdGhpcyByYW5nZSB0aGVyZS4KPj4+Pj4gKGQpIFRoZSBz ZWNyZXQgbWVtb3J5IHZhZGRyIGlzIGd1ZXNzYWJsZSBieSB0aGUgb3duZXIgcHJvY2VzcyAtLSB0 aGF0IGNhbiBhbHNvCj4+Pj4+ICAgICBiZSBmaXhlZCBieSBhbGxvY2F0aW5nIGJpZ2dlciBjaHVu ayBvZiB1c2VyIHZhZGRyIGZvciB0aGlzIGZlYXR1cmUgYW5kCj4+Pj4+ICAgICByYW5kb21seSBw bGFjaW5nIHRoZSBzZWNyZXQgbWVtb3J5IHRoZXJlLgo+Pj4+PiAoZSkgTWFwcGluZyBpcyBvZmYt bGltaXRzIHRvIHRoZSBvd25lciBwcm9jZXNzIGJ5IG1hcmtpbmcgdGhlIFZNQSBhcyBsb2NrZWQs Cj4+Pj4+ICAgICBzZWFsZWQgYW5kIHNwZWNpYWwuCj4+Pj4KPj4+PiBPa2F5LCBzbyBpbiB0aGlz IFJGQyB5b3UgYXJlIGp1bXBpbmcgdGhyb3VnaCBxdWl0ZSBzb21lIGhvb3BzIHRvIGhhdmUgYSBr ZXJuZWwgYWxsb2NhdGlvbiB1bm1hcHBlZCBmcm9tIHRoZSBkaXJlY3QgbWFwIGJ1dCBtYXBwZWQg aW50byBhIHBlci1wcm9jZXNzIHBhZ2UgCj4gdGFibGUgb25seSBhY2Nlc3NpYmxlIGJ5IGtlcm5l bCBzcGFjZS4gOikKPj4+Pgo+Pj4+IFNvIHlvdSByZWFsbHkgZG9uJ3Qgd2FudCB0aGlzIG1hcHBl ZCBpbnRvIHVzZXIgc3BhY2UgYXQgYWxsIChjb25zZXF1ZW50bHksIG5vIEdVUCwgbm8gYWNjZXNz LCBubyBjb3B5X2Zyb21fdXNlciAuLi4pLiBJbiB0aGlzIFJGQyBpdCdzIG1hcHBlZCBidXQgdHVy bmVkIAo+IGluYWNjZXNzaWJsZSBieSBmbGlwcGluZyB0aGUgImtlcm5lbCB2cy4gdXNlciIgc3dp dGNoLgo+Pj4+Cj4+Pj4+IE90aGVyIGFsdGVybmF0aXZlICh0aGF0IHdhcyBpbXBsZW1lbnRlZCBp biB0aGUgZmlyc3Qgc3VibWlzc2lvbikgaXMgdG8gdHJhY2sgdGhvc2UKPj4+Pj4gYWxsb2NhdGlv bnMgaW4gYSBub24tc2hhcmVkIGtlcm5lbCBQR0QgcGVyIHByb2Nlc3MsIHRoZW4gaGFuZGxlIGNy ZWF0aW5nLCBmb3JraW5nCj4+Pj4+IGFuZCBjb250ZXh0LXN3aXRjaGluZyB0aGlzIFBHRC4KPj4+ Pgo+Pj4+IFRoYXQgc291bmRzIGxpa2UgYSBiZXR0ZXIgYXBwcm9hY2guIFNvIHdlIHdvdWxkIHJl bW92ZSB0aGUgcGFnZXMgZnJvbSB0aGUgc2hhcmVkIGtlcm5lbCBkaXJlY3QgbWFwIGFuZCBtYXAg dGhlbSBpbnRvIGEgc2VwYXJhdGUga2VybmVsLXBvcnRpb24gaW4gdGhlIHBlci1NTSAKPiBwYWdl IHRhYmxlcz8KPj4+Pgo+Pj4+IENhbiB5b3UgZW52aXNpb24gdGhhdCB3b3VsZCBhbHNvIHdvcmsg d2l0aCBhcmNoaXRlY3R1cmVzIGxpa2UgczM5MHg/IEkgYXNzdW1lIHdlIHdvdWxkIG5vdCBvbmx5 IG5lZWQgdGhlIHBlci1NTSB1c2VyIHNwYWNlIHBhZ2UgdGFibGUgaGllcmFyY2h5LCBidXQgYWxz byBhIAo+IHBlci1NTSBrZXJuZWwgc3BhY2UgcGFnZSB0YWJsZSBoaWVyYXJjaHksIGludG8gd2hp Y2ggd2UgYWxzbyBtYXAgdGhlIGNvbW1vbi9zaGFyZWQtYW1vbmctYWxsLXByb2Nlc3NlcyBrZXJu ZWwgc3BhY2UgcGFnZSB0YWJsZXMgKGUuZy4sIGRpcmVjdG1hcCkuCj4+PiBZZXMsIHRoYXTigJlz IGFsc28gYXBwbGljYWJsZSB0byBhcm02NC4gVGhlcmXigJlzIGN1cnJlbnRseSBubyBzZXBhcmF0 ZSBwZXItbW0gdXNlciBzcGFjZSBwYWdlIGhpZXJhcmNoeSB0aGVyZS4KPj4gdHlwbywgcmVhZCBr ZXJuZWwKPiAKPiAKPiBPa2F5LCB0aGFua3MuIFNvIGdvaW5nIGludG8gdGhhdCBkaXJlY3Rpb24g bWFrZXMgbW9yZSBzZW5zZS4KPiAKPiBJIGRvIHdvbmRlciBpZiB3ZSByZWFsbHkgaGF2ZSB0byBk ZWFsIHdpdGggZm9yaygpIC4uLiBpZiB0aGUgcHJpbWFyeSAKPiB1c2VycyBkb24ndCByZWFsbHkg aGF2ZSBtZWFuaW5nIGluIHRoZSBmb3JrZWQgY2hpbGQgKGUuZy4sIGp1c3QgbGlrZSAKPiBmb3Jr KCkgd2l0aCBLVk0gSUlSQykgd2UgbWlnaHQganVzdCBnZXQgYXdheSBieSAibG9zaW5nIiB0aGVz ZSAKPiBhbGxvY2F0aW9ucyBpbiB0aGUgY2hpbGQgcHJvY2Vzcy4KPiAKPiBIYXBweSB0byBsZWFy biB3aHkgZm9yaygpIG11c3QgYmUgc3VwcG9ydGVkLgoKSXQgcmVhbGx5IGRlcGVuZHMgb24gdGhl IHVzZSBjYXNlcyBvZiB0aGUga2VybmVsIHNlY3JldCBhbGxvY2F0aW9uLCBidXQgaW4gbXkKbWlu ZCBhIHRyb3VibGluZyBzY2VuYXJpbzoKMS4gUHJvY2VzcyBBIGhhZCBhIHJlc291cmNlIFguCjIu IEtlcm5lbCBkZWNpZGVkIHRvIGtlZXAgc29tZSBkYXRhIHJlbGF0ZWQgdG8gcmVzb3VyY2UgWCBp biBwcm9jZXNzIEEgc2VjcmV0CiAgIG1lbW9yeS4KMy4gUHJvY2VzcyBBIGRlY2lkZWQgdG8gZm9y aywgbm93IHByb2Nlc3MgQiBzaGFyZSB0aGUgcmVzb3VyY2UgWC4KNC4gUHJvY2VzcyBCIHN0YXJ0 ZWQgdXNpbmcgcmVzb3VyY2UgWC4gPC0tIFRoaXMgd2lsbCBjcmFzaCB0aGUga2VybmVsIGFzIHRo ZQogICB1c2VkIGtlcm5lbCBwYWdlIHRhYmxlIG9uIHByb2Nlc3MgQiBoYXMgbm8gbWFwcGluZyBm b3IgdGhlIHNlY3JldCBtZW1vcnkgdXNlZAogICBpbiByZXNvdXJjZSBYLgoKSSBoYXZlbid0IHRy aWVkIHRvIHRyaWdnZXIgdGhpcyBjcmFzaCBteXNlbGYgdGhvdWdoLgoKSSBkaWRuJ3QgdGhpbmsg aW4gZGVwdGggYWJvdXQgdGhpcyBpc3N1ZSB5ZXQsIGJ1dCBJIG5lZWQgdG8gYmVjYXVzZSBkdXBs aWNhdGluZwp0aGUgc2VjcmV0IG1lbW9yeSBtYXBwaW5ncyBpbiB0aGUgbmV3IGZvcmtlZCBwcm9j ZXNzIGlzIGVhc3kgKFRvIGdpdmUga2VybmVsCmFjY2VzcyBvbiB0aGUgc2VjcmV0IG1lbW9yeSks IGJ1dCB0ZWFyaW5nIHRoZW0gZG93biBhY3Jvc3MgYWxsIGZvcmtlZCBwcm9jZXNzZXMKaXMgYSBi aXQgY29tcGxpY2F0ZWQgKFRvIGNsZWFuIHN0YWxlIG1hcHBpbmdzIG9uIHBhcmVudC9jaGlsZCBw cm9jZXNzZXMpLiBSaWdodApub3cgdGVhcmluZyBkb3duIHRoZSBtYXBwaW5nIHdpbGwgb25seSBo YXBwZW4gb24gbW1fc3RydWN0IHdoaWNoIGFsbG9jYXRlZCB0aGUKc2VjcmV0IG1lbW9yeS4KClRo YW5rcyEKRmFyZXMuCgoKCkFtYXpvbiBXZWIgU2VydmljZXMgRGV2ZWxvcG1lbnQgQ2VudGVyIEdl cm1hbnkgR21iSApLcmF1c2Vuc3RyLiAzOAoxMDExNyBCZXJsaW4KR2VzY2hhZWZ0c2Z1ZWhydW5n OiBDaHJpc3RpYW4gU2NobGFlZ2VyLCBKb25hdGhhbiBXZWlzcwpFaW5nZXRyYWdlbiBhbSBBbXRz Z2VyaWNodCBDaGFybG90dGVuYnVyZyB1bnRlciBIUkIgMjU3NzY0IEIKU2l0ejogQmVybGluClVz dC1JRDogREUgMzY1IDUzOCA1OTcK