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 5FAACC25B48 for ; Thu, 26 Oct 2023 09:54:03 +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:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=XN2Ufz6b0t7vhquzTZ7EYkYgdETBgyfacToLEQwWiBE=; b=4iodNAocqa/bKl 1E+CifpN1pqftw7jC3NhpuUvj74//Io0ssaR69yZMglXRWN8AW7d3p74efhlE1hEsnfSkz7NuUHz7 +XHCjFbV+YaJWiPhtzum937eG8P/XPcu1uA30I4dmdDiL1HkLQs8LHFkiofa7NXcr2zRdPSozij4K 6A2oBc/S+lFGoLd9T6zHNL/R0YewNu6DLOB8c2woPtZzGC/SSKuoNYehXXdlGU8VjCnIrKhqVA6yn BbTQA61kfEiDIHh0Vxn6FWGSc/KVb7N53dx8IEgRhOWrVyeZH6HP/QwbttcJtwLncGj0JElbZSOMV LQyv6CjAKwXKaeR9UaZw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qvx3W-00E7A6-1K; Thu, 26 Oct 2023 09:53:34 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qvx3S-00E79d-2S for linux-arm-kernel@lists.infradead.org; Thu, 26 Oct 2023 09:53:32 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 31BB42F4; Thu, 26 Oct 2023 02:54:10 -0700 (PDT) Received: from [10.1.36.151] (XHFQ2J9959.cambridge.arm.com [10.1.36.151]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 30DF83F738; Thu, 26 Oct 2023 02:53:26 -0700 (PDT) Message-ID: Date: Thu, 26 Oct 2023 10:53:24 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v6 0/9] variable-order, large folios for anonymous memory Content-Language: en-GB To: Yu Zhao , David Hildenbrand Cc: Andrew Morton , Matthew Wilcox , Yin Fengwei , Catalin Marinas , Anshuman Khandual , Yang Shi , "Huang, Ying" , Zi Yan , Luis Chamberlain , Itaru Kitayama , "Kirill A. Shutemov" , John Hubbard , David Rientjes , Vlastimil Babka , Hugh Dickins , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org References: <20230929114421.3761121-1-ryan.roberts@arm.com> <6d89fdc9-ef55-d44e-bf12-fafff318aef8@redhat.com> From: Ryan Roberts In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231026_025330_901952_09889BD8 X-CRM114-Status: GOOD ( 43.47 ) 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 T24gMjUvMTAvMjAyMyAyMDoxMSwgWXUgWmhhbyB3cm90ZToKPiBPbiBXZWQsIE9jdCAyNSwgMjAy MyBhdCAxMjo0N+KAr1BNIERhdmlkIEhpbGRlbmJyYW5kIDxkYXZpZEByZWRoYXQuY29tPiB3cm90 ZToKPj4KPj4gT24gMjUuMTAuMjMgMTg6MjQsIFJ5YW4gUm9iZXJ0cyB3cm90ZToKPj4+IE9uIDIw LzEwLzIwMjMgMTM6MzMsIFJ5YW4gUm9iZXJ0cyB3cm90ZToKPj4+PiBPbiAwNi8xMC8yMDIzIDIx OjA2LCBEYXZpZCBIaWxkZW5icmFuZCB3cm90ZToKPj4+Pj4gT24gMjkuMDkuMjMgMTM6NDQsIFJ5 YW4gUm9iZXJ0cyB3cm90ZToKPj4+Pj4+IEhpIEFsbCwKPj4+Pj4KPj4+Pgo+Pj4+IFsuLi5dCj4+ Pj4KPj4+Pj4+IE5PVEU6IFRoZXNlIGNoYW5nZXMgc2hvdWxkIG5vdCBiZSBtZXJnZWQgdW50aWwg dGhlIHByZXJlcXVpc2l0ZXMgYXJlIGNvbXBsZXRlLgo+Pj4+Pj4gVGhlc2UgYXJlIGluIHByb2dy ZXNzIGFuZCB0cmFja2VkIGF0IFs3XS4KPj4+Pj4KPj4+Pj4gV2Ugc2hvdWxkIHByb2JhYmx5IGxp c3QgdGhlbSBoZXJlLCBhbmQgY2xhc3NpZnkgd2hpY2ggb25lIHdlIHNlZSBhcyBzdHJpY3QgYQo+ Pj4+PiByZXF1aXJlbWVudCwgd2hpY2ggb25lcyBtaWdodCBiZSBhbiBvcHRpbWl6YXRpb24uCj4+ Pj4+Cj4+Pj4KPj4+PiBCcmluZ2luZyBiYWNrIHRoZSBkaXNjdXNzaW9uIG9mIHByZXJlcXVpc3Rl cyB0byB0aGlzIHRocmVhZCBmb2xsb3dpbmcgdGhlCj4+Pj4gZGlzY3Vzc2lvbiBhdCB0aGUgbW0t YWxpZ25tZW50IG1lZXRpbmcgb24gV2VkbmVzZGF5Lgo+Pj4+Cj4+Pj4gU2xpZGVzLCB1cGRhdGVk IGZvbGxvd2luZyBkaXNjdXNzaW9uIHRvIHJlZmxlY3QgYWxsIHRoZSBhZ3JlZWQgaXRlbXMgdGhh dCBhcmUKPj4+PiBwcmVyZXF1aXNpdGVzIGFuZCBlbmhhbmNlbWVudHMsIGFyZSBhdCBbMV0uCj4+ Pj4KPj4+PiBJJ3ZlIHRha2VuIGEgY2xvc2VyIGxvb2sgYXQgdGhlIHNpdHVhdGlvbiB3aXRoIGto dWdlcGFnZWQsIGFuZCBjYW4gY29uZmlybSB0aGF0Cj4+Pj4gaXQgZG9lcyBjb3JyZWN0bHkgY29s bGFwc2UgYW5vbiBzbWFsbC1zaXplZCBUSFAgaW50byBQTUQtc2l6ZWQgVEhQLiBJIGRpZCBub3Rp Y2UKPj4+PiB0aG91Z2gsIHRoYXQgb25lIG9mIHRoZSBraHVnZXBhZ2VkIHNlbGZ0ZXN0cyAoY29s bGFwc2VfbWF4X3B0ZXNfbm9uZSkgZmFpbHMgd2hlbgo+Pj4+IHNtYWxsLXNpemVkIFRIUCBpcyBl bmFibGVkK2Fsd2F5cy4gU28gSSd2ZSBmaXhlZCB0aGF0IHRlc3QgdXAgYW5kIHdpbGwgYWRkIHRo ZQo+Pj4+IHBhdGNoIHRvIHRoZSBuZXh0IHZlcnNpb24gb2YgbXkgc2VyaWVzLgo+Pj4+Cj4+Pj4g U28gSSBiZWxpZXZlIHRoZSBraHVnZXBhZ2VkIHByZXJlcXVpc2l0ZSBjYW4gYmUgbWFya2VkIGFz IGRvbmUuCj4+Pj4KPj4+PiBbMV0KPj4+PiBodHRwczovL2RyaXZlLmdvb2dsZS5jb20vZmlsZS9k LzFHbmZZRnByN19jMWtBNDFsaVJVVzVZdENiOENqMThVZC92aWV3P3VzcD1zaGFyaW5nJnJlc291 cmNla2V5PTAtVTFNajMtUmhMRDFKVjZFVGhweVB5QQo+Pj4KPj4+IEhpIEFsbCwKPj4KPj4gSGks Cj4+Cj4+IEkgd2FudGVkIHRvIHJlbWluZCBwZW9wbGUgaW4gdGhlIFRIUCBjYWJhbCBtZWV0aW5n LCBidXQgdGhhdCBlaXRoZXIKPj4gZGlkbid0IGhhcHBlbiBvciB6b29tZWQgZGVjaWRlZCB0byBu b3QgbGV0IG1lIGpvaW4gOikKCkkgZGlkbid0IG1ha2UgaXQgeWVzdGVyZGF5IGVpdGhlciAtIHdh cyBoYXZpbmcgdG8ganVnZ2xlIGNoaWxkIGNhcmUuCgo+Pgo+Pj4KPj4+IEl0J3MgYmVlbiBhIHdl ZWsgc2luY2UgdGhlIG1tIGFsaWdubWVudCBtZWV0aW5nIGRpc2N1c3Npb24gd2UgaGFkIGFyb3Vu ZAo+Pj4gcHJlcmVxdWlzaXRlcyBhbmQgdGhlIEFCSS4gSSBoYXZlbid0IGhlYXJkIGFueSBmdXJ0 aGVyIGZlZWRiYWNrIG9uIHRoZSBBQkkKPj4+IHByb3Bvc2FsLCBzbyBJJ20gZ29pbmcgdG8gYmUg b3B0aW1pc3RpYyBhbmQgYXNzdW1lIHRoYXQgbm9ib2R5IGhhcyBmb3VuZCBhbnkKPj4+IGZhdGFs IGZsYXdzIGluIGl0IDopLgo+Pgo+PiBBZnRlciBzYXlpbmcgaW4gdGhlIGNhbGwgcHJvYmFibHkg MTAgdGltZXMgdGhhdCBwZW9wbGUgc2hvdWxkIGNvbW1lbnQKPj4gaGVyZSBpZiB0aGVyZSBhcmUg cmVhc29uYWJsZSBhbHRlcm5hdGl2ZXMgd29ydGggZGlzY3Vzc2luZywgY2FsbCBtZQo+PiAib3B0 aW1pc3RpYyIgYXMgd2VsbDsgYnV0LCBpdCdzIG9ubHkgYmVlbiBhIHdlZWsgYW5kIHBlb3BsZSBt aWdodCBzdGlsbAo+PiBiZSB0aGlua2luZyBhYm91dCB0aGlzLwo+Pgo+PiBUaGVyZSB3ZXJlIHR3 byB0aGluZ3MgZGlzY3Vzc2VkIGluIHRoZSBjYWxsOgo+Pgo+PiAqIFl1IGJyb3VnaHQgdXAgImxp c3RzIiBzbyB3ZSBjYW4gaGF2ZSBwcmlvcml0aWVzLiBBcyBicmllZmx5IGRpc2N1c3NlZAo+PiAg ICBpbiB0aGUgIGNhbGwsIHRoaXMgKGEpIG1pZ2h0IG5vdCBiZSBuZWVkZWQgcmlnaHQgbm93IGlu IGFuIGluaXRpYWwKPj4gICAgdmVyc2lvbjsgIChiKSB0aGUga2VybmVsIG1pZ2h0IGJlIGFibGUg dG8gaGFuZGxlIHRoYXQgKG9yIG1hbnkgY2FzZXMpCj4+ICAgIGF1dG9tYXRpY2FsbHksIFRCRC4g QWRkaW5nIGxpc3RzIG5vdyB3b3VsZCBraW5kLW9mIHNldCB0aGUgc2VtYW50aWNzCj4+ICAgIG9m IHRoYXQgaW50ZXJmYWNlIGluIHN0b25lLiBBcyB5b3UgZGVzY3JpYmUgYmVsb3csIHRoZSBhcHBy b2FjaAo+PiAgICBkaXNjdXNzZWQgaGVyZSBjb3VsZCBlYXNpbHkgYmUgZXh0ZW5kZWQgdG8gY292 ZXIgcHJpb3JpdGllcywgaWYgbmVlZAo+PiAgICBiZS4KPiAKPiBJIHdhbnQgdG8gZXhwYW5kIG9u IHRoaXM6IHRoZSBhcmd1bWVudCB0aGF0ICJpZiB5b3UgY291bGQgYWxsb2NhdGUgYQo+IGhpZ2hl ciBvcmRlciB5b3Ugc2hvdWxkIHVzZSBpdCIgaXMgdG9vIHNpbXBsaXN0aWMuIFRoZXJlIGFyZSBt YW55Cj4gcmVhc29ucyBpbiBhZGRpdGlvbiB0byB0aGUgb25lIGFib3ZlIHRoYXQgd2Ugd2FudCB0 byAiZmFsbCBiYWNrIiB0bwo+IGhpZ2hlciBvcmRlcnMsIGUuZy4sIHRob3NlIGhpZ2hlciBvcmRl cnMgYXJlIG5vdCBvbiBQQ1Agb3IgZnJvbSB0aGUKPiBsb2NhbCBub2RlLiBXaGVuIHdlIGNvbnNp ZGVyIHRoZSBzZXF1ZW5jZSBvZiBvcmRlcnMgdG8gdHJ5LCB1c2VyCj4gcHJlZmVyZW5jZSBpcyBq dXN0IG9uZSBvZiB0aGUgcGFyYW1ldGVycyB0byB0aGUgY29zdCBmdW5jdGlvbi4gVGhlCj4gYm90 dG9tIGxpbmUgaXMgdGhhdCBJIHRoaW5rIHdlIHNob3VsZCBhbGwgYWdyZWUgdGhhdCB0aGVyZSBu ZWVkcyB0byBiZQo+IGEgY29zdCBmdW5jdGlvbiBkb3duIHRoZSByb2FkLCB3aGF0ZXZlciBpdCBs b29rcyBsaWtlLiBPdGhlcndpc2UgSQo+IGRvbid0IGtub3cgaG93IHdlIGNhbiBtYWtlICJhdXRv IiBoYXBwZW4uCgpJIGRvbid0IGRpc3B1dGUgdGhhdCB0aGlzIHNvdW5kcyBsaWtlIGl0IGNvdWxk IGJlIGJlbmVmaWNpYWwsIGJ1dCBJIHNlZSBpdCBhcwpyZXNlYXJjaCB0byBoYXBwZW4gZnVydGhl ciBkb3duIHRoZSByb2FkIChhcyB5b3Ugc2F5KSwgYW5kIHdlIGRvbid0IGtub3cgd2hhdAp0aGF0 IHJlc2VhcmNoIG1pZ2h0IGNvbmNsdWRlLiBBbHNvLCBJIHRoaW5rIHRoZSBzY29wZSBvZiB0aGlz IGlzIGJpZ2dlciB0aGFuCmFub255bW91cyBtZW1vcnkgLSB5b3Ugd291bGQgYWxzbyBsaWtlbHkg d2FudCB0byBsb29rIGF0IHRoZSBwb2xpY3kgZm9yIHBhZ2UKY2FjaGUgZm9saW8gb3JkZXIgdG9v LCBzaW5jZSB0b2RheSB0aGF0J3MgYmFzZWQgc29sZWx5IG9uIHJlYWRhaGVhZC4gU28gSSBzZWUg aXQKYXMgYW4gb3B0aW1pemF0aW9uIHRoYXQgaXMgc29tZXdoYXQgb3J0aG9nb25hbCB0byBzbWFs bC1zaXplZCBUSFAuCgpUaGUgcHJvcG9zZWQgaW50ZXJmYWNlIGRvZXMgbm90IGltcGx5IGFueSBw cmVmZXJlbmNlIG9yZGVyIC0gaXQgb25seSBzdGF0ZXMKd2hpY2ggc2l6ZXMgdGhlIHVzZXIgd2Fu dHMgdGhlIGtlcm5lbCB0byBzZWxlY3QgZnJvbSwgc28gSSB0aGluayB0aGVyZSBpcyBsb3RzCm9m IGZyZWVkb20gdG8gY2hhbmdlIHRoaXMgZG93biB0aGUgdHJhY2sgaWYgdGhlIGtlcm5lbCB3YW50 cyB0byBzdGFydCB1c2luZyB0aGUKYnVkZHkgYWxsb2NhdG9yJ3Mgc3RhdGUgYXMgYSBzaWduYWwg dG8gbWFrZSBpdHMgZGVjaXNpb25zLgoKPiAKPj4gKiBIdWdoIHJhaXNlZCB0aGUgcG9pbnQgdGhh dCAiYml0bWFwIG9mIG9yZGVycyIgY291bGQgYmUgcmVwbGFjZWQgYnkKPj4gICAgImFkZGVkIFRI UCBzaXplcyIsIHdoaWNoIHJlYWxseSBpcyAiYml0bWFwIG9mIG9yZGVycyIgc2hpZnRlZCB0byB0 aGUKPj4gICAgbGVmdC4gVG8gY29uZmlndXJlIDIgTWlCICsgIDY0S2liLCBvbmUgd291bGQgZ2V0 ICIyMDk3MTUyICsgNjU1MzYiID0KPj4gICAgIjIxNjI2ODgiIG9yIGluIEtpQiAiMjExMiIuIEht Lgo+IAo+IEknbSBub3QgYSBiaWcgZmFuIG9mIHRoZSAiYml0bWFwIG9mIG9yZGVycyIgYXBwcm9h Y2gsIGJlY2F1c2UgaXQKPiBkb2Vzbid0IGFkZHJlc3MgbXkgY29uY2VybiBhYm92ZS4KPiAKPj4g Qm90aCBhcHByb2FjaGVzIHdvdWxkIHJlcXVpcmUgc2luZ2xlLW9wdGlvbiBmaWxlcyBsaWtlICJl bmFibGVfYWx3YXlzIiwKPj4gImVuYWJsZV9tYWR2aXNlIiAuLi4gd2hpY2ggSSBkb24ndCBwYXJ0 aWN1bGFybHkgbGlrZSwgYnV0IHdobyBhbSBJIHRvIGp1ZGdlLgo+Pgo+Pgo+Pj4KPj4+IENlcnRh aW5seSwgSSB0aGluayBpdCBoZWxkIHVwIHRvIHRoZSBwb3RlbnRpYWwgZnV0dXJlIHBvbGljaWVz IHRoYXQgWXUgWmhvdQo+Pj4gY2l0ZWQgb24gdGhlIGNhbGwgLSB0aGUgcG9zc2liaWxpdHkgb2Yg cHJlZmVycmluZyBhIHNtYWxsZXIgc2l6ZSBvdmVyIGEgYmlnZ2VyCj4+PiBvbmUsIGlmIHRoZSBz bWFsbGVyIHNpemUgY2FuIGJlIGFsbG9jYXRlZCB3aXRob3V0IHNwbGl0dGluZyBhIGNvbnRpZ3Vv dXMgYmxvY2suCj4+PiBJIHRoaW5rIHRoZSBzdWdnZXN0aW9uIG9mIGFkZGluZyBhIHBlci1zaXpl IHByaW9yaXR5IGZpbGUgd291bGQgc29sdmUgaXQuIEFuZCBpbgo+Pj4gZ2VuZXJhbCBiZWNhdXNl IHdlIGhhdmUgYSBwZXItc2l6ZSBkaXJlY3RvcnksIHRoYXQgZ2l2ZXMgdXMgbG90cyBvZiBmbGV4 aWJpbGl0eQo+Pj4gZm9yIGdyb3d0aC4KPj4KPj4gSnVwLCBzYW1lIG9waW5pb24gaGVyZS4gQnV0 IGFnYWluLCBJJ20gdmVyeSBoYXBweSB0byBoZWFyIG90aGVyCj4+IGFsdGVybmF0aXZlcyBhbmQg d2h5IHRoZXkgYXJlIGJldHRlci4KPiAKPiBJJ20gbm90IGFnYWluc3QgRGF2aWQncyBwcm9wb3Nh bCBidXQgSSB3YW50IHRvIGhlYXIgYSBsb3QgbW9yZSBhYm91dAo+ICJsb3RzIG9mIGZsZXhpYmls aXR5IGZvciBncm93dGgiIGJlZm9yZSBJJ20gZnVsbHkgY29udmluY2VkLiAKCk15IHBvaW50IHdh cyB0aGF0IGluIGFuIGFic3RyYWN0IHNlbnNlLCB0aGVyZSBhcmUgcHJvcGVydGllcyBhIHVzZXIg bWF5IHdpc2ggdG8KYXBwbHkgaW5kaXZpZHVhbGx5IHRvIGEgc2l6ZSwgd2hpY2ggaXMgY2F0ZXJl ZCBmb3IgYnkgaGF2aW5nIGEgcGVyLXNpemUKZGlyZWN0b3J5IGludG8gd2hpY2ggd2UgY2FuIGFk ZCBtb3JlIGZpbGVzIGlmL3doZW4gcmVxdWlyZW1lbnRzIGZvciBuZXcgcGVyLXNpemUKcHJvcGVy dGllcyBhcmlzZS4gVGhlcmUgYXJlIGFsc28gcHJvcGVydGllcyB0aGF0IG1heSBiZSBhcHBsaWVk IGdsb2JhbGx5LCBmb3IKd2hpY2ggd2UgaGF2ZSB0aGUgdG9wLWxldmVsIHRyYW5zcGFyZW50X2h1 Z2VwYWdlIGRpcmVjdG9yeSB3aGVyZSBwcm9wZXJ0aWVzIGNhbgpiZSBleHRlbmRlZCBvciBhZGRl ZC4KCkZvciB5b3VyIGNhc2UgYXJvdW5kIHRpZ2h0ZXIgaW50ZWdyYXRpb24gd2l0aCB0aGUgYnVk ZHkgYWxsb2NhdG9yLCBJIGNvdWxkCmltYWdpbmUgYSBwZXItc2l6ZSBmaWxlIGFsbG93aW5nIHRo ZSB1c2VyIHRvIHNwZWNpZnkgaWYgdGhlIGtlcm5lbCBzaG91bGQgYWxsb3cKc3BsaXR0aW5nIGEg aGlnaGVyIG9yZGVyIHRvIG1ha2UgYSBUSFAgb2YgdGhhdCBzaXplIChJJ20gbm90IHN1Z2dlc3Rp bmcgdGhhdCdzIGEKZ29vZCBpZGVhLCBJJ20ganVzdCBwb2ludGluZyBvdXQgdGhhdCB0aGlzIHNv cnQgb2YgdGhpbmcgaXMgcG9zc2libGUgd2l0aCB0aGUKaW50ZXJmYWNlKS4gQW5kIHdlIGhhdmUg ZGlzY3Vzc2VkIGhvdyB0aGUgZ2xvYmFsIGVuYWJsZWQgcHJwb2VydHkgY291bGQgYmUKZXh0ZW5k ZWQgdG8gc3VwcG9ydCAiYXV0byIgWzFdLgoKQnV0IHBlcmhhcHMgd2hhdCB3ZSByZWFsbHkgbmVl ZCBhcmUgbG90cyBtb3JlIGlkZWFzIGZvciBmdXR1cmUgZGlyZWN0aW9ucyBmb3IKc21hbGwtc2l6 ZWQgVEhQIHRvIGFsbG93IHVzIHRvIGV2YWx1YXRlIHRoaXMgaW50ZXJmYWNlIG1vcmUgd2lkZWx5 LgoKPiBXaHkgZG8gSQo+IG5lZWQgbW9yZSBjb252aW5jaW5nPyBXaGVuIEkgYnJvdWdodCB1cCB0 aGF0IHdlIG5lZWQgdG8gY29uc2lkZXIgdGhlCj4gcHJpb3JpdHkgb2YgZWFjaCBvcmRlciBhbmQg dGhlIHBvdGVudGlhbCBuZWVkIHRvIGZhbGwgYmFjayB0byBoaWdoZXIKPiBvcmRlcnMgZHVyaW5n IHRoZSBtZWV0aW5nLCBJIGdvdCB0aGUgaW1wcmVzc2lvbiBwZW9wbGUgd2VyZSBzdXJwcmlzZWQK PiB3aHkgd2Ugd2FudCB0byBmYWxsIGJhY2sgdG8gaGlnaGVyIG9yZGVycy4gVEJILCBJIHdhcyBz dXJwcmlzZWQgdG9vCj4gdGhhdCB0aGlzIHBvc3NpYmlsaXR5IHdhcyBuZXZlciBjb25zaWRlcmVk LiBJIG1pc3NlZCB0b2RheSdzIFRIUAo+IG1lZXRpbmcgdG9vIGJ1dCBJJ2xsIGpvaW4gbmV4dCB0 aW1lIGFuZCBpZiBhbnlvbmUgaGFzIG1vcmUgaWRlYXMgb24KPiB0aGlzLCB3ZSBjYW4gc3BlbmQg c29tZSB0aW1lIGRpc2N1c3NpbmcgaXQsIGVzcGVjaWFsbHkgb24gaG93IExBRgo+IHNob3VsZCBj b29wZXJhdGUgd2l0aCB0aGUgcGFnZSBhbGxvY2F0b3IgdG8gbWFrZSBiZXR0ZXIgZGVjaXNpb25z LgoKWzFdCmh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LW1tLzk5ZjgyOTRiLWI0ZTUtNDI0 Zi1kNzYxLTI0YTcwYTgyY2MxYUByZWRoYXQuY29tLwoKVGhhbmtzLApSeWFuCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBt YWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=