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 C713EE95A91 for ; Mon, 9 Oct 2023 11:29:27 +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=diDgQG48TUCv7zkkOC6UVsi8RfbrEoUUz1RdH+HC+sk=; b=Yw02WYWOlgZVre XY2vxjyJbskMmCGg4s2lZu8MRU3QeaQDZOgP4lXqQiGl8KfE7wCoI3BApNnDYBGQjzx3f+OX7lRj+ pw4zNeZZWB6y89QuoIAELIP9sq+AZotosGjishGgsimSTu3H/VpeEns8fwqYOvIkf8cD2Z6N6Wsi8 T5+OzlHpnTwYVYZLC4MzzSVVMaF0s9zu2pqGVSYLID4YH6rxgu+kYWgWUuUrxUZndcAjFhIsYQ0NL rifa3LZXJcTFSSkk/MCZu9O92Pcc9vdp+eRa3J9xBej98euG5YV2UTeqNzj1UqF/Qh1VoDtGQ5Vui dGlaWhVSO+oMNIJ/UBvA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qpoRa-00ASo6-2k; Mon, 09 Oct 2023 11:29:02 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qpoRW-00ASmE-2l for linux-arm-kernel@lists.infradead.org; Mon, 09 Oct 2023 11:29:01 +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 B0DE41FB; Mon, 9 Oct 2023 04:29:36 -0700 (PDT) Received: from [10.57.66.97] (unknown [10.57.66.97]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id EB4F03F762; Mon, 9 Oct 2023 04:28:52 -0700 (PDT) Message-ID: Date: Mon, 9 Oct 2023 12:28:51 +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: David Hildenbrand , Andrew Morton , Matthew Wilcox , Yin Fengwei , Yu Zhao , 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 Cc: 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: <6d89fdc9-ef55-d44e-bf12-fafff318aef8@redhat.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231009_042858_993558_D53BC43B X-CRM114-Status: GOOD ( 76.08 ) 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 T24gMDYvMTAvMjAyMyAyMTowNiwgRGF2aWQgSGlsZGVuYnJhbmQgd3JvdGU6Cj4gT24gMjkuMDku MjMgMTM6NDQsIFJ5YW4gUm9iZXJ0cyB3cm90ZToKPj4gSGkgQWxsLAo+IAo+IExldCBtZSBoaWdo bGlnaHQgc29tZSBjb3JlIGRlY2lzaW9ucyBvbiB0aGUgdGhpbmdzIGRpc2N1c3NlZCBpbiB0aGUg cHJldmlvdXMKPiBhbGlnbm1lbnQgbWVldGluZ3MsIGFuZCBjb21tZW50IG9uIHRoZW0uCj4gCj4+ Cj4+IFRoaXMgaXMgdjYgb2YgYSBzZXJpZXMgdG8gaW1wbGVtZW50IHZhcmlhYmxlIG9yZGVyLCBs YXJnZSBmb2xpb3MgZm9yIGFub255bW91cwo+PiBtZW1vcnkuIChwcmV2aW91c2x5IGNhbGxlZCAi QU5PTl9MQVJHRV9GT0xJTyIsICJMQVJHRV9BTk9OX0ZPTElPIiwKPj4gIkZMRVhJQkxFX1RIUCIs IGJ1dCBub3cgZXhwb3NlZCBhcyBhbiBleHRlbnNpb24gdG8gVEhQOyAic21hbGwtb3JkZXIgVEhQ IikuIFRoZQo+PiBvYmplY3RpdmUgb2YgdGhpcyBpcyB0byBpbXByb3ZlIHBlcmZvcm1hbmNlIGJ5 IGFsbG9jYXRpbmcgbGFyZ2VyIGNodW5rcyBvZgo+PiBtZW1vcnkgZHVyaW5nIGFub255bW91cyBw YWdlIGZhdWx0czoKPiAKPiBDaGFuZ2UgbnVtYmVyIDE6IExldCdzIGNhbGwgdGhlc2UgdGhpbmdz IFRIUC4KPiAKPiBGaW5lIHdpdGggbWU7IEkgcHJldmlvdXNseSByb290ZWQgZm9yIHRoYXQgYnV0 IHdhcyB0b2xkIHRoYXQgZW5kIHVzZXJzIGNvdWxkIGJlCj4gY29uZnVzZWQuIEkgdGhpbmsgdGhl IGltcG9ydGFudCBiaXQgaXMgdGhhdCB3ZSBkb24ndCBtZXNzIHVwIHRoZSBzdGF0cywgYW5kIHdo ZW4KPiB3ZSB0YWxrIGFib3V0IFRIUCB3ZSBkZWZhdWx0IHRvICJQTUQtc2l6ZWQgVEhQIiwgdW5s ZXNzIHdlIGV4cGxpY2l0bHkgaW5jbHVkZQo+IHRoZSBvdGhlciBvbmVzLgo+IAo+IAo+IEkgZGlz bGlrZSBleHBvc2luZyAib3JkZXJzIiB0byB0aGUgdXNlcnMsIEknbSBoYXBweSB0byBiZSBjb252 aW5jZWQgd2h5IEkgYW0KPiB3cm9uZyBhbmQgaXQgaXMgYSBnb29kIGlkZWEuCj4gCj4gU28gbWF5 YmUgIlNtYWxsIFRIUCIvIlNtYWxsLXNpemVkIFRIUCIgaXMgYmV0dGVyLiBPciAiTWVkaXVtLXNp emVkIFRIUCIgLS0gYXMKPiBzYWlkLCBJIHRoaW5rIEZyZWVCU0QgdGVuZHMgdG8gY2FsbCBpdCAi TWVkaXVtLXNpemVkIHN1cGVycGFnZXMiLiBCdXQgd2hhdCdzCj4gc21hbGwvbWVkaXVtL2xhcmdl IGlzIGRlYmF0YWJsZS4gIlNtYWxsIiBpbXBsaWVzIGF0IGxlYXN0IHRoYXQgaXQncyBzbWFsbGVy IHRoYW4KPiB3aGF0IHdlIHVzZWQgdG8ga25vdywgd2hpY2ggaXMgYSBmYWN0Lgo+IAo+IENhbiB3 ZSBhbHNvIG5vdyB1c2UgdGhlIHRlcm1pbm9sb2d5IGNvbnNpc3RlbnRseT8gKGUuZy4sICJ2YXJp YWJsZS1vcmRlciwgbGFyZ2UKPiBmb2xpb3MgZm9yIGFub255bW91cyBtZW1vcnkiIC0+ICJTbWFs bC1zaXplZCBhbm9ueW1vdXMgVEhQIiwgeW91IGNhbiBqdXN0IHBvaW50Cj4gYXQgdGhlIHByZXZp b3VzIHBhdGNoIHNldCBuYW1lIGluIHRoZSBjb3ZlciBsZXR0ZXIpCgpZZXMgYWJzb2x1dGVseS4g RldJVywgSSB3YXMgZGVsaWJlcmF0ZWx5IG5vdCBjaGFuZ2luZyB0aGUgdGl0bGUgb2YgdGhlIHBh dGNoc2V0CnNvIHBlb3BsZSBjb3VsZCBlYXNpbHkgc2VlIGl0IHdhcyBhbiBldm9sdXRpb24gb2Yg c29tZXRoaW5nIHBvc3RlZCBiZWZvcmUuIEJ1dAppZiBpdCdzIHRoZSBub3JtIHRvIGNoYW5nZSB0 aGUgdGl0bGUgYXMgdGhlIHBhdGNoc2V0IGV2b2x2ZXMsIEknbSB2ZXJ5IGhhcHB5IHRvCmRvIHRo YXQuIEFuZCB0aGVyZSBhcmUgb3RoZXIgcGxhY2VzIHRvbywgaW4gY29tbWl0IGxvZ3MgdGhhdCBJ IGNhbiB0aWR5IHVwLiBJCndpbGwgYXNzdW1lICJQTUQtc2l6ZWQgVEhQIiwgInNtYWxsLXNpemVk IFRIUCIgYW5kICJhbm9ueW1vdXMgc21hbGwtc2l6ZWQgVEhQIgoodGhhdCBsYXN0IG9uZSBzbGln aHRseSBkaWZmZXJlbnQgZnJvbSB3aGF0IERhdmlkIHN1Z2dlc3RlZCBhYm92ZSAtIGl0IG1lYW5z CiJzbWFsbC1zaXplZCBUSFAiIGNhbiBzdGlsbCBiZSBncmVwcGVkKSB1bmxlc3Mgb3RoZXJzIG9i amVjdC4KCj4gCj4+Cj4+IDEpIFNpbmNlIFNXICh0aGUga2VybmVsKSBpcyBkZWFsaW5nIHdpdGgg bGFyZ2VyIGNodW5rcyBvZiBtZW1vcnkgdGhhbiBiYXNlCj4+IMKgwqDCoCBwYWdlcywgdGhlcmUg YXJlIGVmZmljaWVuY3kgc2F2aW5ncyB0byBiZSBoYWQ7IGZld2VyIHBhZ2UgZmF1bHRzLCBiYXRj aGVkIFBURQo+PiDCoMKgwqAgYW5kIFJNQVAgbWFuaXB1bGF0aW9uLCByZWR1Y2VkIGxydSBsaXN0 LCBldGMuIEluIHNob3J0LCB3ZSByZWR1Y2Uga2VybmVsCj4+IMKgwqDCoCBvdmVyaGVhZC4gVGhp cyBzaG91bGQgYmVuZWZpdCBhbGwgYXJjaGl0ZWN0dXJlcy4KPj4gMikgU2luY2Ugd2UgYXJlIG5v dyBtYXBwaW5nIHBoeXNpY2FsbHkgY29udGlndW91cyBjaHVua3Mgb2YgbWVtb3J5LCB3ZSBjYW4g dGFrZQo+PiDCoMKgwqAgYWR2YW50YWdlIG9mIEhXIFRMQiBjb21wcmVzc2lvbiB0ZWNobmlxdWVz LiBBIHJlZHVjdGlvbiBpbiBUTEIgcHJlc3N1cmUKPj4gwqDCoMKgIHNwZWVkcyB1cCBrZXJuZWwg YW5kIHVzZXIgc3BhY2UuIGFybTY0IHN5c3RlbXMgaGF2ZSAyIG1lY2hhbmlzbXMgdG8gY29hbGVz Y2UKPj4gwqDCoMKgIFRMQiBlbnRyaWVzOyAidGhlIGNvbnRpZ3VvdXMgYml0IiAoYXJjaGl0ZWN0 dXJhbCkgYW5kIEhQQSAodWFyY2gpLgo+Pgo+PiBUaGUgbWFqb3IgY2hhbmdlIGluIHRoaXMgcmV2 aXNpb24gaXMgdGhlIGFkZGl0aW9uIG9mIHN5c2ZzIGNvbnRyb2xzIHRvIGFsbG93Cj4+IHRoaXMg InNtYWxsLW9yZGVyIFRIUCIgdG8gYmUgZW5hYmxlZC9kaXNhYmxlZC9jb25maWd1cmVkIGluZGVw ZW5kZW50bHkgb2YKPj4gUE1ELW9yZGVyIFRIUC4gVGhlIGFwcHJvYWNoIEkndmUgdGFrZW4gZGlm ZmVycyBhIGJpdCBmcm9tIHByZXZpb3VzIGRpc2N1c3Npb25zOwo+PiBpbnN0ZWFkIG9mIGNyZWF0 aW5nIGEgd2hvbGUgbmV3IGludGVyZmFjZSAoImxhcmdlX2ZvbGlvIiksIEknbSBleHRlbmRpbmcg VEhQLiBJCj4+IHBlcnNvbmFsbHkgdGhpbmsgdGhpcyBtYWtlcyB0aGluZ3MgY2xlYXJlciBhbmQg bW9yZSBleHRlbnNpYmxlLiBTZWUgWzZdIGZvcgo+PiBkZXRhaWxlZCByYXRpb25hbGUuCj4gCj4g Q2hhbmdlIDI6IHN5c2ZzIGludGVyZmFjZS4KPiAKPiBJZiB3ZSBjYWxsIGl0IFRIUCwgaXQgc2hh bGwgZ28gdW5kZXIgIi9zeXMva2VybmVsL21tL3RyYW5zcGFyZW50X2h1Z2VwYWdlLyIsIEkKPiBh Z3JlZS4KPiAKPiBXaGF0IHdlIGV4cG9zZSB0aGVyZSBhbmQgaG93LCBpcyBUQkQuIEFnYWluLCBu b3QgYSBmcmllbmQgb2YgIm9yZGVycyIgYW5kCj4gYml0bWFwcyBhdCBhbGwuIFdlIGNhbiBkbyBi ZXR0ZXIgaWYgd2Ugd2FudCB0byBnbyBkb3duIHRoYXQgcGF0aC4KPiAKPiBNYXliZSB3ZSBzaG91 bGQgdGFrZSBhIGxvb2sgYXQgaHVnZXRsYiwgYW5kIGhvdyB0aGV5IGFkZGVkIHN1cHBvcnQgZm9y IG11bHRpcGxlCj4gc2l6ZXMuIFdoYXQgKm1pZ2h0KiBtYWtlIHNlbnNlIGNvdWxkIGJlIChkZXBl bmRpbmcgb24gd2hpY2ggdmFsdWVzIHdlIGFjdHVhbGx5Cj4gc3VwcG9ydCEpCj4gCj4gCj4gL3N5 cy9rZXJuZWwvbW0vdHJhbnNwYXJlbnRfaHVnZXBhZ2UvaHVnZXBhZ2VzLTY0a0IvCj4gL3N5cy9r ZXJuZWwvbW0vdHJhbnNwYXJlbnRfaHVnZXBhZ2UvaHVnZXBhZ2VzLTEyOGtCLwo+IC9zeXMva2Vy bmVsL21tL3RyYW5zcGFyZW50X2h1Z2VwYWdlL2h1Z2VwYWdlcy0yNTZrQi8KPiAvc3lzL2tlcm5l bC9tbS90cmFuc3BhcmVudF9odWdlcGFnZS9odWdlcGFnZXMtNTEya0IvCj4gL3N5cy9rZXJuZWwv bW0vdHJhbnNwYXJlbnRfaHVnZXBhZ2UvaHVnZXBhZ2VzLTEwMjRrQi8KPiAvc3lzL2tlcm5lbC9t bS90cmFuc3BhcmVudF9odWdlcGFnZS9odWdlcGFnZXMtMjA0OGtCLwo+IAo+IEVhY2ggb25lIHdv dWxkIGNvbnRhaW4gYW4gImVuYWJsZWQiIGFuZCAiZGVmcmFnIiBmaWxlLiBXZSB3YW50IHNvbWV0 aGluZyBtaW5pbWFsCj4gZmlyc3Q/IFN0YXJ0IHdpdGggdGhlICJlbmFibGVkIiBvcHRpb24uCj4g Cj4gCj4gZW5hYmxlZDogYWx3YXlzIFtnbG9iYWxdIG1hZHZpc2UgbmV2ZXIKPiAKPiBJbml0aWFs bHksIHdlIHdvdWxkIHNldCBpdCBmb3IgUE1ELXNpemVkIFRIUCB0byAiZ2xvYmFsIiBhbmQgZm9y IGV2ZXJ5dGhpbmcgZWxzZQo+IHRvICJuZXZlciIuCgpNeSBvbmx5IHJlc2VydmF0aW9uIGFib3V0 IHRoaXMgYXBwcm9hY2ggaXMgdGhlIHBvdGVudGlhbCBmb3IgYSBmdXR1cmUgbmVlZCBmb3IgYQoi b25lIHNldHRpbmcgYXBwbGllZCBhY3Jvc3MgYWxsIHNpemVzIiBjbGFzcyBvZiBjb250cm9sIChl LmcuICJhdXRvIikuIEkgdGhpbmsKd2UgYWdyZWVkIGluIHRoZSBwcmV2aW91cyBtZWV0aW5ncyB0 aGF0IGNoYXNpbmcgYSBzb2x1dGlvbiBmb3IgImF1dG8iIHdhcyBhIGdvb2QKYXNwaXJhdGlvbiB0 byBoYXZlLCBzbyBpdCB3b3VsZCBiZSBnb29kIHRvIGhhdmUgYSBwbGFjZSB3ZSB3ZSBjYW4gaW5z ZXJ0IHRoYXQgaW4KZnV0dXJlLiBUaGUgbWFpbiByZWFzb24gd2h5IEkgY2hvc2UgdG8gZXhwb3Nl IHRoZSAiYW5vbl9vcmRlcnMiIGNvbnRyb2wgaXMKYmVjYXVzZSBpdCBpcyBwb3NzaWJsZSB0byBi b3RoIGVuYWJsZS9kaXNhYmxlIHRoZSB2YXJpb3VzIHNpemVzIGFzIHdlbGwgYXMKc3BlY2lmaWN5 IChlLmcuKSAiYXV0byIsIHdpdGhvdXQgY3JlYXRpbmcgcmVkdW5kYW5jeS4gQnV0IEkgYWdyZWUg dGhhdCBpZGVhbGx5CndlIHdvdWxkbid0IGV4cG9zZSBvcmRlcnMgdG8gdGhlIHVzZXI7IEkgd2Fz IGF0dGVtcHRpbmcgYSBjb21wcm9taXNlIHRvIHNpbXBsaWZ5CnRoZSAiYXV0byIgY2FzZS4KCkEg cG90ZW50aWFsICh0aG91Z2ggZmVlbHMgcXVpdGUgY29tcGxleCkgc29sdXRpb24gdG8gbWFrZSBh dXRvIHdvcmsgd2l0aCB5b3VyCnByb3Bvc2FsOiBBZGQgImF1dG8iIGFzIGFuIG9wdGlvbiB0byB0 aGUgZXhpc3RpbmcgZ2xvYmFsIGVuYWJsZWQgZmlsZSwgYW5kIHRvCmFsbCBvZiB5b3VyIHByb3Bv c2VkIG5ldyBlbmFibGVkIGZpbGVzLiBCdXQgaXRzIG9ubHkgcG9zc2libGUgdG8gKnNldCogYXV0 bwp0aHJvdWdoIHRoZSBnbG9iYWwgZmlsZS4gQW5kIHdoZW4gaXQgaXMgc2V0LCBhbGwgb2YgdGhl IHNpemUtc3BlY2lmaWMgZW5hYmxlZApmaWxlcyByZWFkLWJhY2sgImF1dG8iIHRvby4gQW55IGFu eSB3cml0ZXMgdG8gdGhlIHNpemUtc3BlY2lmaWMgZW5hYmxlZCBmaWxlcwphcmUgaWdub3JlZCAo b3IgcmVtZW1iZXJlZCBidXQgbm90IGVuYWN0ZWQpIHVudGlsIHRoZSBnbG9iYWwgZW5hYmxlZCBm aWxlIGlzCmNoYW5nZWQgYXdheSBmcm9tIGF1dG8uCgpCdXQgSSdtIG5vdCBzdXJlIGlmIGFkZGlu ZyBhIG5ldyBvcHRpb24gdG8gdGhlIGdsb2JhbCBlbmFibGVkIGZpbGUgbWlnaHQgYnJlYWsKY29t cGF0PwoKPiAKPiAKPiAKPiBUaGF0IHNvdW5kcyByZWFzb25hYmxlIGF0IGxlYXN0IHRvIG1lLCBh bmQgd2Ugd291bGQgYmUgdXNpbmcgd2hhdCB3ZSBsZWFybmVkCj4gZnJvbSBUSFAgKGFzIEpvaG4g c3VnZ2VzdGVkKS7CoCBUaGF0IHN0aWxsIGdpdmVzIHJlYXNvbmFibGUgZmxleGliaWxpdHkgd2l0 aG91dAo+IGdvaW5nIHRvbyB3aWxkLCBhbmQgYSBiZXR0ZXIgSU1ITyBpbnRlcmZhY2UuCj4gCj4g SSB1bmRlcnN0YW5kIFl1J3MgcG9pbnQgYWJvdXQgQUJJIGRpc2N1c3Npb25zIGFuZCAiMCBrbm9i cyIuIEknbSBoYXBweSBhcyBsb25nCj4gYXMgd2UgY2FuIGhhdmUgc29tZXRoaW5nIHRoYXQgd29u J3QgaHVydCB1cyBsYXRlciBhbmQgc3RpbGwgYmUgYWJsZSB0byB1c2UgdGhpcwo+IGluIGRpc3Ry aWJ1dGlvbnMgd2l0aGluIGEgcmVhc29uYWJsZSB0aW1lZnJhbWUuIEVuYWJsaW5nL2Rpc2FibGlu ZyBpbmRpdmlkdWFsCj4gc2l6ZXMgZG9lcyBub3Qgc291bmQgdG9vIHJlc3RyaWN0aXZlIHRvIG1l LiBBbmQgd2UgY291bGQgYWx3YXlzIGFkZCBhbiAiYXV0byIKPiBzZXR0aW5nIGxhdGVyIGFuZCBk ZWZhdWx0IHRvIHRoYXQgd2l0aCBhIG5ldyBrY29uZmlnIGtub2IuCj4gCj4gSWYgc29tZW9uZSB3 YW50cyB0byBjb25maWd1cmUgaXQsIHdoeSBub3QuIExldCdzIGp1c3QgcHJlcGFyZSBhIHdheSB0 byB0byBoYW5kbGUKPiB0aGlzICJiZXR0ZXIiIGF1dG9tYXRpY2FsbHkgaW4gdGhlIGZ1dHVyZSAo aWYgZXZlciAuLi4pLgo+IAo+IAo+IENoYW5nZSAzOiBTdGF0cwo+IAo+PiAvcHJvYy9tZW1pbmZv Ogo+PsKgwqAgSW50cm9kdWNlIG5ldyAiQW5vbkh1Z2VQdGVNYXAiIGZpZWxkLCB3aGljaCByZXBv cnRzIHRoZSBhbW91bnQgb2YKPj7CoMKgIG1lbW9yeSAoaW4gS2lCKSBtYXBwZWQgZnJvbSBsYXJn ZSBmb2xpb3MgZ2xvYmFsbHkgKHNpbWlsYXIgdG8KPj7CoMKgIEFub25IdWdlUGFnZXMgZmllbGQp Lgo+IAo+IEFub25IdWdlUGFnZXMgaXMgYW5kIHJlbWFpbnMgIlBNRC1zaXplZCBUSFAgdGhhdCBp cyBtYXBwZWQgdXNpbmcgYSBQTUQiLCBJIHRoaW5rCj4gd2UgYWxsIGFncmVlIG9uIHRoYXQuIEl0 IHNob3VsZCBoYXZlIGJlZW4gbmFtZWQgIkFub25QbWRNYXBwZWQiIG9yCj4gIkFub25IdWdlUG1k TWFwcGVkIiwgdG9vIGJhZCwgd2UgY2FuJ3QgY2hhbmdlIHRoYXQuCgpZZXMgYWdyZWVkLiBJIGRp ZCBjb25zaWRlciByZWRlZmluaW5nICJBbm9uSHVnZVBhZ2VzIiB0byBjb3ZlciBQTUQtIGFuZApQ VEUtbWFwcGVkIG1lbW9yeSwgdGhlbiBpbnRyb2R1Y2UgYm90aCBhbiAiQW5vbkh1Z2VQbWRNYXBw ZWQiIGFuZAoiQW5vbkh1Z2VQdGVNYXBwZWQiLCBidXQgSSB0aGluayB0aGF0IHdvdWxkIGxpa2Vs eSBicmVhayB0aGluZ3MuIEl0cyBmdXJ0aGVyCmNvbXBsaWNhdGVkIGJlY2F1c2Ugdm1zdGF0cyBw cmludHMgaXQgaW4gUE1ELXNpemUgdW5pdHMsIHNvIGNhbid0IHJlcHJlc2VudApQVEUtbWFwcGVk IG1lbW9yeSBpbiB0aGF0IGNvdW50ZXIuCgo+IAo+ICJBbm9uSHVnZVB0ZU1hcCIgYmV0dGVyIGJl ICJBbm9uSHVnZVB0ZU1hcHBlZCIuCgpJIGFncmVlLCBidXQgSSB3ZW50IHdpdGggdGhlIHNob3J0 ZXIgb25lIGJlY2F1c2UgYW55IGxvbmdlciBhbmQgaXQgd291bGQgdW5hbGlnbgp0aGUgdmFsdWUg ZS5nOgoKICAgIEFub25IdWdlUGFnZXM6ICAgICAgICAgMCBrQgogICAgQW5vbkh1Z2VQdGVNYXBw ZWQ6ICAgICAgICAwIGtCCiAgICBTaG1lbVBtZE1hcHBlZDogICAgICAgIDAga0IKICAgIFNoYXJl ZF9IdWdldGxiOiAgICAgICAgMCBrQgoKU28gd291bGQgbmVlZCB0byBkZWNpZGUgd2hpY2ggaXMg cHJlZmVyYWJsZSwgb3IgY29tZSB1cCB3aXRoIGEgc2hvcnRlciBuYW1lLgoKPiAKPiBCdXQsIEkg d29uZGVyIGlmIHdlIHdhbnQgdG8gZXhwb3NlIHRoaXMgIlB0ZU1hcHBlZCIgdG8gdXNlciBzcGFj ZSAqYXQgYWxsKi4gV2h5Cj4gc2hvdWxkIHRoZXkgY2FyZSBpZiBpdCdzIFBURSBtYXBwZWQ/IEZv ciBQTUQtc2l6ZWQgVEhQIGl0IG1ha2VzIGEgYml0IG9mIHNlbnNlLAo+IGJlY2F1c2UgIVBNRCBp bXBsaWVkICFwZXJmb3JtYW5jZSwgYW5kIG9uZSBtaWdodCBoYXZlIGJlZW4gYWJsZSB0byB0cm91 Ymxlc2hvb3QKPiB0aGF0IHNvbWVob3cuIEZvciBQVEUtbWFwcGVkLCBpdCBkb2Vzbid0IG1ha2Ug bXVjaCBzZW5zZSByZWFsbHksIHRoZXkgYXJlIGFsd2F5cwo+IFBURS1tYXBwZWQuCgpJIGRpc2Fn cmVlOyBJJ3ZlIGJlZW4gdXNpbmcgaXQgYSBsb3QgdG8gZGVidWcgcGVyZm9ybWFuY2UgaXNzdWVz LiBJdCB0ZWxscyB5b3UKaG93IG11Y2ggb2YgeW91ciBhbm9uIG1lbW9yeSBpcyBhbGxvY2F0ZWQg d2l0aCBsYXJnZSBmb2xpb3MuIEFuZCBtYWtpbmcgdGhhdApwZXJjZW50YWdlIGJpZ2dlciBpbXBy b3ZlcyBwZXJmb3JtYW5jZTsgZmV3ZXIgcGFnZSBmYXVsdHMsIGFuZCB3aXRoIGEgc2VwYXJhdGUK Y29udHB0ZSBzZXJpZXMgb24gYXJtNjQsIGJldHRlciB1c2Ugb2YgdGhlIFRMQi4gUmVhc29ucyBt aWdodCBpbmNsdWRlOyBwb29ybHkKYWxpZ25lZC90b28gc21hbGwgVk1BcywgbWVtb3J5IGZyYWdt ZW50YXRpb24gcHJldmVudGluZyBhbGxvY2F0aW9uLCBDb1csIGV0Yy4KCkkgd291bGQgYWN0dWFs bHkgYXJndWUgZm9yIGFkZGluZyBzaW1pbGFyIGNvdW50ZXJzIGZvciBmaWxlLWJhY2tlZCBtZW1v cnkgdG9vCmZvciB0aGUgc2FtZSByZWFzb25zLiAoSSBhY3R1YWxseSBwb3N0ZWQgYW4gaW5kZXBl bmRlbnQgcGF0Y2ggYSB3aGlsZSBiYWNrIHRoYXQKZGlkIHRoaXMgZm9yIGZpbGUtIGFuZCBhbm9u LSBtZW1vcnksIGJ1Y2tldHRlZCBieSBzaXplLiBCdXQgSSB0aGluayB0aGUgaWRlYSBvZgp0aGUg YnVja2V0dGluZyB3YXMgTkFLZWQuCgo+IAo+IFRoYXQgYWxzbyByYWlzZXMgdGhlIHF1ZXN0aW9u IGhvdyB5b3Ugd291bGQgYWNjb3VudCBhIFBURS1tYXBwZWQgVEhQLiBUaGUgaG9sZQo+IHRoaW5n PyBPbmx5IHRoZSBwYXJ0cyB0aGF0IGFyZSBtYXBwZWQ/IExldCdzIGJldHRlciBub3QgZ28gZG93 biB0aGF0IHBhdGguCgpUaGUgYXBwcm9hY2ggSSd2ZSB0YWtlbiBpbiB0aGlzIHNlcmllcyBpcyB0 aGUgc2ltcGxlIG9uZSAtIGFjY291bnQgZXZlcnkgcGFnZQp0aGF0IGJlbG9uZ3MgdG8gYSBsYXJn ZSBmb2xpbyBmcm9tIHdoZW4gaXQgaXMgZmlyc3QgbWFwcGVkIHRvIGxhc3QgdW5tYXBwZWQuClll cywgaW4gdGhpcyBjYXNlLCB5b3UgbWlnaHQgbm90IGFjdHVhbGx5IGJlIG1hcHBpbmcgdGhlIGZ1 bGwgdGhpbmcKY29udGlnaW91c2x5LiBCdXQgaXQgZ2l2ZXMgYSBnb29kIGluZGljYXRpb24uCgpJ IGFsc28gY29uc2lkZXJlZCBhY2NvdW50aW5nIHRoZSB3aG9sZSBmb2xpbyBvbmx5IHdoZW4gYWxs IG9mIGl0cyBwYWdlcyBiZWNvbWUKbWFwcGVkIChhbHRob3VnaCBub3Qgd29ycnlpbmcgYWJvdXQg dGhlbSBhbGwgYmVpbmcgY29udGlndW91cykuIFRoYXQncyBzdGlsbApzaW1wbGUgdG8gaW1wbGVt ZW50IGZvciBhbGwgY291bnRlcnMgZXhjZXB0IHNtYXBzLiBTbyB3ZW50IHdpdGggdGhlIHNpbXBs ZXN0CmFwcHJvYWNoIHdpdGggdGhlIHZpZXcgdGhhdCBpdHMgImdvb2QgZW5vdWdoIi4KCj4gCj4g VGhhdCBsZWF2ZXMgdGhlIHF1ZXN0aW9uIHdoeSB3ZSB3b3VsZCB3YW50IHRvIGluY2x1ZGUgdGhl bSBoZXJlIGF0IGFsbCBpbiBhCj4gc3BlY2lhbCBQVEUtbWFwcGVkIHdheT8KPiAKPiAKPiBBZ2Fp biwgbGV0J3MgbG9vayBhdCBodWdldGxiOiBJIHByZXBhcmVkIDEgR2lCIGFuZCBvbmUgMiBNaUIg cGFnZS4KPiAKPiBIdWdlUGFnZXNfVG90YWw6wqDCoMKgwqDCoMKgIDEKPiBIdWdlUGFnZXNfRnJl ZTrCoMKgwqDCoMKgwqDCoCAxCj4gSHVnZVBhZ2VzX1JzdmQ6wqDCoMKgwqDCoMKgwqAgMAo+IEh1 Z2VQYWdlc19TdXJwOsKgwqDCoMKgwqDCoMKgIDAKPiBIdWdlcGFnZXNpemU6wqDCoMKgwqDCoMKg IDIwNDgga0IKPiBIdWdldGxiOsKgwqDCoMKgwqDCoMKgwqAgMTA1MDYyNCBrQgo+IAo+IC0+IE9u bHkgdGhlIGxhc3Qgb25lIGdpdmVzIHRoZSBzdW0sIHRoZSBvdGhlciBzdGF0cyBkb24ndCBldmVu IG1lbnRpb24gdGhlIG90aGVyCj4gb25lcy4gW2hvdyBkbyB3ZSBnZXQgdGhlaXIgc3RhdHMsIGlm IGF0IGFsbD9dCgpUaGVyZSBhcmUgc29tZSBmaWxlcyBpbiAvc3lzL2tlcm5lbC9tbS9odWdlcGFn ZXMvaHVnZXBhZ2VzLVhYa0IgYW5kCi9zeXMvZGV2aWNlcy9zeXN0ZW0vbm9kZS9ub2RlKi9odWdl cGFnZXMvOyBucl9odWdlcGFnZXMsIGZyZWVfaHVnZXBhZ2VzLApzdXJwbHVzX2h1Z2VwYWdlcy4g QnV0IHRoaXMgaW50ZXJmYWNlIGFsc28gY29uc3RpdHV0ZXMgdGhlIGFsbG9jYXRvciwgbm90IGp1 c3QKc3RhdHMsIEkgdGhpbmsuCgo+IAo+IFNvIG1heWJlLCB3ZSBvbmx5IHdhbnQgYSBzdW1tYXJ5 IG9mIGhvdyBtYW55IGFub24gaHVnZSBwYWdlcyBvZiBhbnkgc2l6ZSBhcmUKPiBhbGxvY2F0ZWQg KGluZGVwZW5kZW50IG9mIHRoZSBQVEUgdnMuIFBNRCBtYXBwaW5nKSwgCgpBcmUgeW91IHByb3Bv c2luZyAoQW5vbkh1Z2VQYWdlcyArIEFub25IdWdlUHRlTWFwcGVkKSBoZXJlIG9yIHNvbWV0aGlu ZyBlbHNlPyBJZgp0aGUgZm9ybWVyLCB0aGVuIEkgZG9uJ3QgcmVhbGx5IHNlZSB0aGUgZGlmZmVy ZW5jZS4gV2UgaGF2ZSB0byBjb250aW51ZSB0bwpleHBvc2UgUE1ELXNpemUgKEFub25IdWdlUGFn ZXMpLiBTbyBlaXRoZXIgYWRkIFBURS1vbmx5IGNvdW50ZXIsIGFuZCBkZXJpdmUgdGhlCnRvdGFs LCBvciBhZGQgYSB0b3RhbCBjb3VudGVyIGFuZCBkZXJpdmUgUFRFLW9ubHkuIEkgc3VzcGVjdCBJ J3ZlIG1pc3VuZGVyc3Rvb2QKeW91ciBwb2ludC4KCj4gYW5kIHNvbWUgb3RoZXIgc291cmNlIHRv Cj4gZXZlbnR1YWxseSBpbnNwZWN0IGhvdyB0aGUgZGlmZmVyZW50IHNpemVzIGJlaGF2ZS4KPiAK PiBCdXQgbm90ZSB0aGF0IGZvciBub24tUE1ELXNpemVkIGZpbGUgVEhQIHdlIGRvbid0IGV2ZW4g aGF2ZSBzcGVjaWFsIGNvdW50ZXJzIQo+IC4uLiBzbyBtYXliZSB3ZSBzaG91bGQgYWxzbyBkZWZl ciBhbnkgc3VjaCBzdGF0cyBhbmQgY29tZSB1cCB3aXRoIHNvbWV0aGluZwo+IHVuaWZvcm0gZm9y IGFsbCB0eXBlcyBvZiBub24tUE1ELXNpemVkIFRIUC4KCkluZGVlZCwgSSBjYW4gc2VlIGJlbmVm aXQgaW4gYWRkaW5nIHRoZXNlIGZvciBmaWxlIFRIUCAtIGluIGZhY3QgSSBoYXZlIGEgcGF0Y2gK dGhhdCBkb2VzIGV4YWN0bHkgdGhhdCB0byBoZWxwIG15IGRldmVsb3BtZW50IHdvcmsuIEkgaGFk IGVudmlzYWdlZCB0aGF0IHdlCmNvdWxkIGFkZCBzb21ldGhpbmcgbGlrZSBGaWxlSHVnZVB0ZU1h cHBlZCwgU2htZW1IdWdlUHRlTWFwcGVkIHRoYXQgd291bGQgZm9sbG93CnRoZSBzYW1lIHNlbWFu dGljcyBhcyBBbm9uSHVnZVB0ZU1hcHBlZC4KCj4gCj4gCj4gU2FuZSBkaXNjdXNzaW9uIGFwcGxp ZXMgdG8gYWxsIG90aGVyIHN0YXRzLgo+IAo+IAo+Pgo+PiBCZWNhdXNlIHdlIG5vdyBoYXZlIHJ1 bnRpbWUgZW5hYmxlL2Rpc2FibGUgY29udHJvbCwgSSd2ZSByZW1vdmVkIHRoZSBjb21waWxlCj4+ IHRpbWUgS2NvbmZpZyBzd2l0Y2guIEl0IHN0aWxsIGRlZmF1bHRzIHRvIHJ1bnRpbWUtZGlzYWJs ZWQuCj4+Cj4+IE5PVEU6IFRoZXNlIGNoYW5nZXMgc2hvdWxkIG5vdCBiZSBtZXJnZWQgdW50aWwg dGhlIHByZXJlcXVpc2l0ZXMgYXJlIGNvbXBsZXRlLgo+PiBUaGVzZSBhcmUgaW4gcHJvZ3Jlc3Mg YW5kIHRyYWNrZWQgYXQgWzddLgo+IAo+IFdlIHNob3VsZCBwcm9iYWJseSBsaXN0IHRoZW0gaGVy ZSwgYW5kIGNsYXNzaWZ5IHdoaWNoIG9uZSB3ZSBzZWUgYXMgc3RyaWN0IGEKPiByZXF1aXJlbWVu dCwgd2hpY2ggb25lcyBtaWdodCBiZSBhbiBvcHRpbWl6YXRpb24uCgoKSSdsbCBuZWVkIHNvbWUg aGVscCB3aXRoIGNsYXNpZnlpbmcgdGhlbSwgc28gc2hvd2luZyBteSB3b3JraW5nLiBGaW5hbCBs aXN0IHRoYXQKSSB3b3VsZCBwcm9wb3NlIGFzIHN0cmljdCByZXF1aXJlbWVudHMgYXQgYm90dG9t LgoKVGhpcyBpcyBteSBsaXN0IHdpdGggc3RhdHVzLCBhcyBwZXIgcmVzcG9uc2UgdG8gWXUgaW4g b3RoZXIgdGhyZWFkOgoKICAtIERhdmlkIGlzIHdvcmtpbmcgb24gInNoYXJlZCB2cyBleGNsdXNp dmUgbWFwcGluZ3MiCiAgLSBaaSBZYW4gaGFzIHBvc3RlZCBhbiBSRkMgZm9yIGNvbXBhY3Rpb24K ICAtIFlpbiBGZW5nd2VpJ3MgbWxvY2sgc2VyaWVzIGlzIG5vdyBpbiBtbS1zdGFibGUKICAtIFlp biBGZW5nd2VpJ3MgbWFkdmlzZSBzZXJpZXMgaXMgaW4gNi42CiAgLSBJJ3ZlIHJld29ya2VkIGFu ZCBwb3N0ZWQgYSBzZXJpZXMgZm9yIGRlZmVycmVkX3NwbGl0X2ZvbGlvOyBhbHRob3VnaCBJJ3Zl CiAgICBkZXByaW9yaXRpZWQgaXQgYmVjYXVzZSBZdSBzYWlkIGl0IHdhc24ndCByZWFsbHkgYSBw cmUtcmVxdWlzaXRlLgogIC0gbnVtYSBiYWxhbmNpbmcgZGVwZW5kcyBvbiBEYXZpZCdzICJzaGFy ZWQgdnMgZXhjbHVzaXZlIG1hcHBpbmdzIiB3b3JrCiAgLSBJJ3ZlIHN0YXJ0ZWQgbG9va2luZyBh dCAibGFyZ2UgZm9saW9zIGluIHN3YXAgY2FjaGUiIGluIHRoZSBiYWNrZ3JvdW5kLAogICAgYmVj YXVzZSBJJ20gc2VlaW5nIHNvbWUgc2xvdyBkb3duIHdpdGggbGFyZ2UgZm9saW9zLCBidXQgd2Ug YWxzbyBhZ3JlZWQgdGhhdAogICAgd2Fzbid0IGEgcHJlcmVxdWlzaXRlCgpBbHRob3VnaCwgc2lu Y2Ugc2VuZGluZyB0aGF0LCBJJ3ZlIGRldGVybWluZWQgdGhhdCB3aGVuIHJ1bm5pbmcga2VybmVs CmNvbXBpbGF0aW9uIGFjcm9zcyBoaWdoIG51bWJlciBvZiBjb3JlcyBvbiBhcm02NCwgdGhlIGNv c3Qgb2Ygc3BsaXR0aW5nIHRoZQpmb2xpb3MgZ2V0cyBsYXJnZSBkdWUgdG8gbmVlZGluZyB0byBi cm9hZGNhc3QgdGhlIGV4dHJhIFRMQklzLiBTbyBJIHRoaW5rIHRoZQpsYXN0IHBvaW50IG9uIHRo YXQgbGlzdCBtYXkgYmUgYSBwcmVyZXF1aXNpdGUgYWZ0ZXIgYWxsLiAoSSd2ZSBiZWVuIGFibGUg dG8gZml4CnRoaXMgYnkgYWRkaW5nIHN1cHBvcnQgZm9yIGFsbG9jYXRpbmcgbGFyZ2UgZm9saW9z IGluIHRoZSBzd2FwIGZpbGUsIGFuZAphdm9pZGluZyB0aGUgc3BsaXQgLSBwbGFubmluZyB0byBz ZW5kIFJGQyB0aGlzIHdlZWspLgoKVGhlcmUgaXMgYWxzbyB0aGlzIHNldCBvZiB0aGluZ3MgdGhh dCB5b3UgbWVudGlvbmVkIGFnYWluc3QgInNoYXJlZCB2cyBleGNsdXNpdmUKbWFwcGluZ3MiLCB3 aGljaCBJJ20gbm90IHN1cmUgaWYgeW91IGFyZSBwbGFubmluZyB0byBjb3ZlciBhcyBwYXJ0IG9m IHlvdXIgd29yawpvciBpZiB0aGV5IGFyZSBmb2xsb3cgb24gdGhpbmdzIHRoYXQgd2lsbCBuZWVk IHRvIGJlIGRvbmU6CgooMSkgRGV0ZWN0aW5nIHNoYXJlZCBmb2xpb3MsIHRvIG5vdCBtZXNzIHdp dGggdGhlbSB3aGlsZSB0aGV5IGFyZSBzaGFyZWQuCiAgICBNQURWX1BBR0VPVVQsIHVzZXItdHJp Z2dlcmVkIHBhZ2UgbWlncmF0aW9uLCBOVU1BIGhpbnRpbmcsIGtodWdlcGFnZWQgLi4uCiAgICBy ZXBsYWNlIGNhc2VzIHdoZXJlIGZvbGlvX2VzdGltYXRlZF9zaGFyZXJzKCkgPT0gMSB3b3VsZCBj dXJyZW50bHkgYmUgdGhlCiAgICBiZXN0IHdlIGNhbiBkbyAoYW5kIGluIHNvbWUgY2FzZXMsIHBh Z2VfbWFwY291bnQoKSA9PSAxKS4KCkFuZCBJIHJlY2VudGx5IGRpc2NvdmVyZWQgdGhhdCBraHVn ZXBhZ2VkIGRvZXNuJ3QgY29sbGFwc2UgZmlsZS1iYWNrZWQgcGFnZXMgdG8KYSBQTUQtc2l6ZSBU SFAgaWYgdGhleSBiZWxvbmcgdG8gYSBsYXJnZSBmb2xpbywgc28gSSdtIGd1ZXNzaW5nIGl0IG1h eSBhbHNvCnN1ZmZlciB0aGUgc2FtZSBiZWhhdmlvdXIgZm9yIGFub24gbWVtb3J5LiBJJ20gbm90 IHN1cmUgaWYgdGhhdCdzIHdoYXQgeW91cgoia2h1Z2VwYWdlZCAuLi4iIGNvbW1lbnQgcmVmZXJz IHRvPwoKU28gdGFraW5nIGFsbCB0aGF0IGFuZCB0cnlpbmcgdG8gcHV0IHRvZ2V0aGVyIGEgY29t cGxldGUgb3V0c3RhbmRpbmcgbGlzdCBmb3IKc3RyaWN0IHJlcXVpcmVtZW50czoKCiAgLSBTaGFy ZWQgdnMgRXhjbHVzaXZlIE1hcHBpbmdzIChEYXZpZEgpCiAgICAgIC0gdXNlci10cmlnZ2VyZWQg cGFnZSBtaWdyYXRpb24KICAgICAgLSBOVU1BIGhpbnRpbmcvYmFsYW5jaW5nCiAgICAgIC0gRW5o YW5jZSBraHVnZXBhZ2VkIHRvIGNvbGxhcHNlIHRvIFBNRC1zaXplIGZyb20gUFRFLW1hcHBlZCBs YXJnZSBmb2xpb3MKICAtIENvbXBhY3Rpb24gb2YgTGFyZ2UgRm9saW9zIChaaSBZYW4pCiAgLSBT d2FwIG91dCBzbWFsbC1zaXplIFRIUCB3aXRob3V0IFNwbGl0IChSeWFuIFJvYmVydHMpCgoKPiAK PiAKPiBOb3csIHRoZXNlIGFyZSBqdXN0IG15IHRob3VnaHRzLCBhbmQgSSdtIGhhcHB5IGFib3V0 IG90aGVyIHRob3VnaHRzLgoKQXMgYWx3YXlzLCB0aGFua3MgZm9yIHRha2luZyB0aGUgdGltZSAt IEkgcmVhbGx5IGFwcHJlY2lhdGUgaXQuCgpUaGFua3MsClJ5YW4KCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5n IGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5p bmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=