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 X-Spam-Level: X-Spam-Status: No, score=-0.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E68DEC2D0DB for ; Mon, 20 Jan 2020 15:37:33 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 8CC5721D7E for ; Mon, 20 Jan 2020 15:37:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="m/DdDf3z" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8CC5721D7E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 26CFB6B0676; Mon, 20 Jan 2020 10:37:33 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 242676B0677; Mon, 20 Jan 2020 10:37:33 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 15BB56B0678; Mon, 20 Jan 2020 10:37:33 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0135.hostedemail.com [216.40.44.135]) by kanga.kvack.org (Postfix) with ESMTP id F42326B0676 for ; Mon, 20 Jan 2020 10:37:32 -0500 (EST) Received: from smtpin07.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with SMTP id B17B334A3 for ; Mon, 20 Jan 2020 15:37:32 +0000 (UTC) X-FDA: 76398417144.07.eye71_5edfef8418a51 X-HE-Tag: eye71_5edfef8418a51 X-Filterd-Recvd-Size: 11570 Received: from mail-lf1-f65.google.com (mail-lf1-f65.google.com [209.85.167.65]) by imf31.hostedemail.com (Postfix) with ESMTP for ; Mon, 20 Jan 2020 15:37:31 +0000 (UTC) Received: by mail-lf1-f65.google.com with SMTP id i23so24399576lfo.7 for ; Mon, 20 Jan 2020 07:37:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:references:mime-version:message-id :content-transfer-encoding; bh=rTO0T2wOTY5x8+Z4HmrOZIKzHscvdzOKE6Y1lmiT1AQ=; b=m/DdDf3zspDQ5IRBwDg/XN3bVl6jR5UpSY1nw8uWKb0hoC4nqXYVsBhZKq7/frNtxl cYBfzIP0f0N/OHpnkE92+X6l5mIWr8xy+HhsSyvXVB6AasBqA5hlGNxktRDJ6C4eAVvx J27/VcvMuT6W4+niRTtnXoADo3Y7twyuPV1KZ48xwl9vfHUgxvSjt+F85QMDI62O0PTm JgTuFNzyaue0gmYAeTyU6+HrJvGZf5OnSBXleoARUewgEFWkyEKd3fBMKO9BLDTWqh0w 9hF3MYcBQOiPzsg9MPd2p90eBxe04+Jvf66/pHV8CmER6oXJRQtC49ijp4cOl5sAUE0G kdDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:references:mime-version :message-id:content-transfer-encoding; bh=rTO0T2wOTY5x8+Z4HmrOZIKzHscvdzOKE6Y1lmiT1AQ=; b=Ezgqf4U69i6sfE1KSL/VnuxrBzSNK+leEDOvF5l89/rPC77u+E510qH5RtEp9mIh7w z9iX9jDoNvSbH0lKsO1B3NynmYOcwMxw2nv6aUToxqruPw7w7M5IclJBcjh3AjSsnW3j KE3cEmQzpsp6/pdX9u92YjiqPpmONr+kzRKuQok9nxYdLQeSNic+QFBp2fZxKNWqbGZw dLQRINRavxuds71h1zO6h4BYPpDu1UIl79Wh6Vy6WqjEdhIc3h2RpLC2y+a8reWmbdyH QODCf+L6Vq3Pm7gwaXqNk/QcGvdSK+OSakbdtq6ro3DBmov5g1aLwzbArn7TifWnIF5g EhDg== X-Gm-Message-State: APjAAAUxnJY5q8be/q6Buy852YMxweRFza9dWSqO6w0z2FTjvMnpq6wb BA08VCW7FyzH7zZMlnhec1+WLToY X-Google-Smtp-Source: APXvYqwSccz/P+n0jvOhs/xUfqd0uh46fLASU+7C8CshWkgKMlQOBHdqeRwQlvkvfaC+TlTLiQWnKg== X-Received: by 2002:a19:c648:: with SMTP id w69mr13334666lff.44.1579534650301; Mon, 20 Jan 2020 07:37:30 -0800 (PST) Received: from N-20L6PF1KTYA2 ([131.228.2.21]) by smtp.gmail.com with ESMTPSA id b6sm17004996lfq.11.2020.01.20.07.37.25 (version=TLS1_2 cipher=AES128-GCM-SHA256 bits=128/128); Mon, 20 Jan 2020 07:37:29 -0800 (PST) Date: Mon, 20 Jan 2020 23:37:25 +0800 From: "Li Xinhai" To: "Michal Hocko" , anshuman.khandual , n-horiguchi Cc: "linux-mm@kvack.org" , akpm , torvalds , "linux-kernel@vger.kernel.org" , "Mike Kravetz" Subject: Re: [PATCH v4] mm/mempolicy,hugetlb: Checking hstate for hugetlbfs page in vma_migratable References: <1579147885-23511-1-git-send-email-lixinhai.lxh@gmail.com>, <20200116095614.GO19428@dhcp22.suse.cz>, <20200116215032206994102@gmail.com>, <20200116151803.GV19428@dhcp22.suse.cz>, <20200116233817972969139@gmail.com>, <20200117111629898234212@gmail.com>, <20200118111121432688303@gmail.com>, <20200120101202.GU18451@dhcp22.suse.cz> X-Priority: 3 X-GUID: 7E412CC2-DA2F-4C6A-BBB1-6CC1BA2163A7 X-Has-Attach: no X-Mailer: Foxmail 7.2.13.365[cn] Mime-Version: 1.0 Message-ID: <20200120233723466954346@gmail.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 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: T24gMjAyMC0wMS0yMMKgYXQgMTg6MTLCoE1pY2hhbCBIb2Nrb8Kgd3JvdGU6Cj5PbiBTYXQgMTgt MDEtMjAgMTE6MTE6MjMsIExpIFhpbmhhaSB3cm90ZToKPj4gT24gMjAyMC0wMS0xN8KgYXQgMTE6 MTbCoExpIFhpbmhhacKgd3JvdGU6Cj4+ID5PbiAyMDIwLTAxLTE2wqBhdCAyMzozOMKgTGkgWGlu aGFpwqB3cm90ZToKPj4gPj5PbiAyMDIwLTAxLTE2wqBhdCAyMzoxOMKgTWljaGFsIEhvY2tvwqB3 cm90ZToKPj4gPj4+T24gVGh1IDE2LTAxLTIwIDIxOjUwOjM0LCBMaSBYaW5oYWkgd3JvdGU6Cj4+ ID4+Pj4gT24gMjAyMC0wMS0xNsKgYXQgMTc6NTbCoE1pY2hhbCBIb2Nrb8Kgd3JvdGU6Cj4+ID4+ Pj4gPk9uIFRodSAxNi0wMS0yMCAwNDoxMToyNSwgTGkgWGluaGFpIHdyb3RlOgo+PiA+Pj4+ID4+ IENoZWNraW5nIGhzdGF0ZSBhdCBlYXJseSBwaGFzZSB3aGVuIGlzb2xhdGluZyBwYWdlLCBpbnN0 ZWFkIG9mIGR1cmluZwo+PiA+Pj4+ID4+IHVubWFwIGFuZCBtb3ZlIHBoYXNlLCB0byBhdm9pZCB1 c2VsZXNzIGlzb2xhdGlvbi4KPj4gPj4+PiA+Cj4+ID4+Pj4gPkNvdWxkIHlvdSBiZSBtb3JlIHNw ZWNpZmljIHdoYXQgeW91IG1lYW4gYnkgaXNvbGF0aW9uIGFuZCB3aHkgZG9lcyBpdAo+PiA+Pj4+ ID5tYXR0ZXI/IFRoZSBwYXRjaCBkZXNjcmlwdGlvbiBzaG91bGQgcmVhbGx5IGV4cGxhaW4gX3do eV8gdGhlIGNoYW5nZSBpcwo+PiA+Pj4+ID5uZWVkZWQgb3IgZGVzaXJhYmxlLgo+PiA+Pj4+Cj4+ ID4+Pj4gVGhlIGNoYW5nZWxvZyBjYW4gYmUgaW1wcm92ZWQ6Cj4+ID4+Pj4KPj4gPj4+PiB2bWFf bWlncmF0YWJsZSgpIGlzIGNhbGxlZCB0byBjaGVjayBpZiBwYWdlcyBpbiB2bWEgY2FuIGJlIG1p Z3JhdGVkCj4+ID4+Pj4gYmVmb3JlIGdvIGFoZWFkIHRvIGlzb2xhdGUsIHVubWFwIGFuZCBtb3Zl IHBhZ2VzLiBGb3IgaHVnZXRsYiBwYWdlcywKPj4gPj4+PiBodWdlcGFnZV9taWdyYXRpb25fc3Vw cG9ydGVkKHN0cnVjdCBoc3RhdGUgKmgpIGlzIG9uZSBmYWN0b3Igd2hpY2gKPj4gPj4+PiBkZWNp ZGUgaWYgbWlncmF0aW9uIGlzIHN1cHBvcnRlZC4gSW4gY3VycmVudCBjb2RlLCB0aGlzIGZ1bmN0 aW9uIGlzIGNhbGxlZAo+PiA+Pj4+IGZyb23CoHVubWFwX2FuZF9tb3ZlX2h1Z2VfcGFnZSgpLCBh ZnRlciBpc29sYXRpbmcgcGFnZSBoYXMKPj4gPj4+PiBjb21wbGV0ZWQuCj4+ID4+Pj4gVGhpcyBw YXRjaCBjaGVja3MgaHN0YXRlIGZyb20gdm1hX21pZ3JhdGFibGUoKSBhbmQgYXZvaWRzIGlzb2xh dGluZyBwYWdlcwo+PiA+Pj4+IHdoaWNoIGFyZSBub3Qgc3VwcG9ydGVkLgo+PiA+Pj4KPj4gPj4+ VGhpcyBzdGlsbCBleHBsYWlucyB3aGF0IGJ1dCBub3Qgd2h5IHRoaXMgaXMgcmVsZXZhbnQuIElm IGJ5IGlzb2xhdGluZwo+PiA+Pj5wYWdlcyB5b3UgbWVhbiBpc29sYXRlX2xydV9wYWdlIHRoZW4g dGhpcyByZWFsbHkgYSBub29wIGZvciBodWdldGxiCj4+ID4+PnBhZ2VzLiBPciBkbyBJIHN0aWxs IG1pc3JlYWQgeW91ciBjaGFuZ2Vsb2c/Cj4+ID4+Cj4+ID4+SSBtZWFuwqBpc29sYXRlX2h1Z2Vf cGFnZSB3aWxsIHF1ZXVlIHBhZ2VzIGZvciBtb3ZpbmcsIGFuZAo+PiA+PnVubWFwX2FuZF9tb3Zl X2h1Z2VfcGFnZSB3aWxsIGNhbGwKPj4gPj5odWdlcGFnZV9taWdyYXRpb25fc3VwcG9ydGVkIHRo ZW4gcmVmdXNlIG1vdmluZy4KPj4gPj4KPj4gPgo+PiA+Rm9yZ290IHRvIG1lbnRpb24gdGhhdCB0 aGlzIHBhdGNoIGhhcyBubyByZWxldmFudCB3aXRoIHRoaXMgb25lCj4+ID5odHRwczovL3BhdGNo d29yay5rZXJuZWwub3JnL3BhdGNoLzExMzMxNjM5LyzCoAo+PiA+Cj4+ID5Db2RlIGNoYW5nZSBh dCBoZXJlIGlzIGNvbW1vbiBmb3IgYXZvaWRzIHdhbGtpbmcgcGFnZSB0YWJsZSBhbmQKPj4gPmlz b2xhdGUgaHVnZXBhZ2UgaW4gY2FzZSBhcmNoaXRlY3R1cmUgb3IgcGFnZSBzaXplIGFyZSBub3Qg c3VwcG9ydGVkCj4+ID5mb3IgbWlncmF0aW9uLiBDb21tZW50cyBmcm9tIGNvZGUgYXJlIGNvcGll ZCBoZXJlOgo+PiA+Cj4+ID5zdGF0aWMgaW50IHVubWFwX2FuZF9tb3ZlX2h1Z2VfcGFnZSguLi4p Cj4+ID57Cj4+ID4JLyoKPj4gPgkqIE1pZ3JhdGFiaWxpdHkgb2YgaHVnZXBhZ2VzIGRlcGVuZHMg b24gYXJjaGl0ZWN0dXJlcyBhbmQgdGhlaXIgc2l6ZS4KPj4gPgkqIFRoaXMgY2hlY2sgaXMgbmVj ZXNzYXJ5IGJlY2F1c2Ugc29tZSBjYWxsZXJzIG9mIGh1Z2VwYWdlIG1pZ3JhdGlvbgo+PiA+CSog bGlrZSBzb2Z0IG9mZmxpbmUgYW5kIG1lbW9yeSBob3RyZW1vdmUgZG9uJ3Qgd2FsayB0aHJvdWdo IHBhZ2UKPj4gPgkqIHRhYmxlcyBvciBjaGVjayB3aGV0aGVyIHRoZSBodWdlcGFnZSBpcyBwbWQt YmFzZWQgb3Igbm90IGJlZm9yZQo+PiA+CSoga2lja2luZyBtaWdyYXRpb24uCj4+ID4JKi8KPj4g PglpZiAoIWh1Z2VwYWdlX21pZ3JhdGlvbl9zdXBwb3J0ZWQocGFnZV9oc3RhdGUoaHBhZ2UpKSkg ewo+PiA+CXB1dGJhY2tfYWN0aXZlX2h1Z2VwYWdlKGhwYWdlKTsKPj4gPglyZXR1cm4gLUVOT1NZ UzsKPj4gPgl9Cj4+ID59Cj4+ID4KPj4gPkZvciBjdXJyZW50IGNvZGUgY2hhbmdlLCB3ZSBhcmUg YWJsZSB0byBrbm93IHRoZSAnaHN0YXRlJyBiZWNhdXNlIHdlIGhhdmUgJ3ZtYScsIHNvCj4+ID5k byBlYXJseSBjaGVjayBpbnN0ZWFkIG9mIGxhdGVyLgo+PiA+Cj4+Cj4+IGh0dHBzOi8vbG9yZS5r ZXJuZWwub3JnL2xpbnV4LW1tLzIwMjAwMTE3MTExNjI5ODk4MjM0MjEyQGdtYWlsLmNvbS8KPj4K Pj4gUmV2aXNlIHdpdGggbW9yZSBkZXRhaWxzIG9uIGNoYW5nZWxvZyBmb3IgcmVhc29uIHdoeSB0 aGlzIHBhdGNoCj4+IGlzIG5lZWQuIFRoYW5rcyBmb3IgeW91ciBjb21tZW50cy4KPj4KPj4gLS0t Cj4+IHZtYV9taWdyYXRhYmxlKCkgaXMgY2FsbGVkIHRvIGNoZWNrIGlmIHBhZ2VzIGluIHZtYSBj YW4gYmUgbWlncmF0ZWQKPj4gYmVmb3JlIGdvIGFoZWFkIHRvIGZ1cnRoZXIgYWN0aW9ucy4gQ3Vy cmVudGx5IGl0IGlzIHVzZWQgaW4gYmVsb3cgY29kZQo+PiBwYXRoOgo+PiAtIHRhc2tfbnVtYV93 b3JrIChrZXJuZWxcc2NoZWRcZmFpci5jKQo+PiAtIG1iaW5kIChtbVxtZW1wb2xpY3kuYykKPj4g LSBtb3ZlX3BhZ2VzIChtbVxtaWdyYXRlLmMpCj4+Cj4+IEZvciBodWdldGxiIG1hcHBpbmcsIHZt YSBpcyBtaWdyYXRhYmxlIG9yIG5vdCBpcyBkZXRlcm1pbmVkIGJ5Ogo+PiAtIENPTkZJR19BUkNI X0VOQUJMRV9IVUdFUEFHRV9NSUdSQVRJT04KPj4gLSBhcmNoX2h1Z2V0bGJfbWlncmF0aW9uX3N1 cHBvcnRlZAo+Pgo+PiBJc3N1ZTogY3VycmVudCBjb2RlIG9ubHkgY2hlY2tzIGZvciBDT05GSUdf QVJDSF9FTkFCTEVfSFVHRVBBR0VfTUlHUkFUSU9OLgo+Cj5FeHBsYWluIHdoeSB0aGlzIGlzIGFu IGlzc3VlLiBCZWNhdXNlIGFzIHRoaW5ncyBzdGFuZCBub3cgdGhpcyBkb2Vzbid0Cj5jYXVzZSBh bnkgcHJvYmxlbXMgYXQgYWxsLiBBbGwgYXJjaGl0ZWN0dXJlcyBzaW1wbHkgc3VwcG9ydCBtaWdy YXRpbmcKPmFsbCBodWdldGxiIHNpemVzIEFGQUlLLiBJZiB0aGlzIGlzIG5vdCB0aGUgY2FzZSB0 aGVuIG1lbnRpb24gd2hpY2ggb2YKPnRoZW0gYXJlIG5vdC4KPiAKQ3VycmVudGx5LCBtaXNzaW5n IGNoZWNrIHN1cHBvcnRlZCBodWd0bGIgc2l6ZSBkb24ndCBjYXVzZSB2aXNpYmxlCmZhaWx1cmUs IGJlY2F1c2XCoHVubWFwX2FuZF9tb3ZlX2h1Z2VfcGFnZSgpIHdpbGwgY2hlY2sgaXQgd2hlbiB0 cnkKbW92aW5nIHBhZ2UuClRoaXMgcGFydCBvZiBjaGFuZ2Vsb2cgd2lsbCBiZSB1cGRhdGVkLgoK Pj4gVGhpcyBwYXRjaCBjaGVja3MgdGhlIHR3byBmYWN0b3JzIHRvIGltcG92ZSBjb2RlIGxvZ2lj LiBCZXNpZGVzLCBjYWxsZXIKPj4gb2Ygdm1hX21pZ3JhdGFibGUgY2FuIHRha2UgYWN0aW9uIHBy b3Blcmx5IGluIGNhc2UgYXJjaGl0ZWN0dXJlIGRvbid0Cj4+IHN1cHBvcnQgbWlncmF0aW9uLCBl LmcuLCBtYmluZCBkb24ndCBnbyBmdXJ0aGVyIHRvIHRyeSBpc29sYXRpbmcvbW92aW5nCj4+IHBh Z2VzLCBidXQgY3VycmVudGx5IGl0IGRvIGNvbnRpbnVlIGJlY2F1c2Ugdm1hX21pZ3JhdGFibGUg c2F5IHllcy4KPgo+SSBkbyBub3QgZm9sbG93LiBXaGF0IGFyZSB5b3UgdHJ5aW5nIHRvIHNheSBo ZXJlPwo+Cj5UaGUgY2hhbmdlbG9nIHNob3VsZCBiZSBleHBsaWNpdCBpdCBkb2Vzbid0IHJlYWxs eSBmaXggYW55IGV4aXN0aW5nCj5wcm9ibGVtLiBBbmQgdGhlIHdob2xlIHB1cnBvc2UgaXMgYSBj b2RlIHJvYnVzdG5lc3MgY2xlYW51cC4gU2hvdWxkIHdlCj5ldmVyIGhhdmUgYW4gYXJjaGl0ZWN0 dXJlIHRoYXQgZG9lc24ndCBzdXBwb3J0IGFsbCBodWdldGxiIHNpemVzIHRoZW4KPndlIHdvdWxk IHNhZmUgcG9pbnRsZXNzIGh1Z2UgcGFnZSBpc29sYXRpb24gZm9yIGEgcGFnZSB0aGF0IGNhbm5v dCBiZQo+bWlncmF0ZWQgaW4gdGhlIGZpcnN0IHBsYWNlLiAKWWVzLCB0aGlzIGlzwqBhIGNvZGUg cm9idXN0bmVzcyBjbGVhbnVwLCBhbmQgZm9yIG1vcmUgYWNjdXJhdGUgc2VtYW50aWNzLgoKPgo+ U2VlIGhvdyB0aGUgYWJvdmUgYWN0dWFsbHkgZXhwbGFpbnMgX3doeV8geW91IHdhbnQgdG8gbWFr ZSB0aGUgY2hhbmdlPyAKPgo+PiBObyBhZGRpbmcgZm9yIEZpeCB0YWcsIHNpbmNlIHZtYV9taWdy YXRhYmxlIHdhcyBpbXBsZW1lbnRlZCBiZWZvcmUKPj4gYXJjaF9odWdldGxiX21pZ3JhdGlvbl9z dXBwb3J0ZWQsIGl0IGlzIHVwIHRvIHRoZSBjYWxsZXIgdG8gdXNlIGl0Lgo+Cj5UaGlzIGlzIGFs c28gb2Ygbm8gcmVsZXZhbmNlLiAKSXQgc2VlbXMgbm8gbmVlZCB0byBtZXRpb24gdGhpcyBwYXJ0 LgoKCkNoYW5nZWxvZyBpcyB1cGRhdGVkIGFzIGJlbG93LCB0aGFua3MgZm9yIGNvbW1lbnRzOgot LS0KbW0vbWVtcG9saWN5OiBDaGVja2luZyBodWdlcGFnZSBtaWdyYXRpb24gaXMgc3VwcG9ydGVk IGJ5IGFyY2ggaW4gdm1hX21pZ3JhdGFibGUKCnZtYV9taWdyYXRhYmxlKCkgaXMgY2FsbGVkIHRv IGNoZWNrIGlmIHBhZ2VzIGluIHZtYSBjYW4gYmUgbWlncmF0ZWQKYmVmb3JlIGdvIGFoZWFkIHRv IGZ1cnRoZXIgYWN0aW9ucy4gQ3VycmVudGx5IGl0IGlzIHVzZWQgaW4gYmVsb3cgY29kZQpwYXRo OgotIHRhc2tfbnVtYV93b3JrCi0gbWJpbmQKLSBtb3ZlX3BhZ2VzCgpGb3IgaHVnZXRsYiBtYXBw aW5nLCB3aGV0aGVyIHZtYSBpcyBtaWdyYXRhYmxlIG9yIG5vdCBpcyBkZXRlcm1pbmVkIGJ5Ogot IENPTkZJR19BUkNIX0VOQUJMRV9IVUdFUEFHRV9NSUdSQVRJT04KLSBhcmNoX2h1Z2V0bGJfbWln cmF0aW9uX3N1cHBvcnRlZAoKSXNzdWU6IGN1cnJlbnQgY29kZSBvbmx5IGNoZWNrcyBmb3IgQ09O RklHX0FSQ0hfRU5BQkxFX0hVR0VQQUdFX01JR1JBVElPTiwKd2hpY2ggZXhwcmVzcyBsZXNzIGFj Y3VyYXRlIHNlbWFudGljcyBvZiB2bWFfbWlncmF0YWJsZSgpLiAobm90ZSB0aGF0CmN1cnJlbnQg Y29kZSBpbiB2bWFfbWlncmF0YWJsZSBkb24ndCBjYXVzZSBmYWlsdXJlIG9yIGJ1ZyBiZWNhdXNl CnVubWFwX2FuZF9tb3ZlX2h1Z2VfcGFnZSgpIHdpbGwgY2F0Y2ggdW5zdXBwb3J0ZWQgaHVnZXBh Z2UgYW5kIGhhbmRsZSBpdApwcm9wZXJseSkKClRoaXMgcGF0Y2ggY2hlY2tzIHRoZSB0d28gZmFj dG9ycyBmb3IgaW1wb3ZlaW5nIGNvZGUgbG9naWMgYW5kCnJvYnVzdG5lc3MuIEl0IHdpbGwgZW5h YmxlIGVhcmx5IGJhaWwgb3V0IG9mIGh1Z2VwYWdlIG1pZ3JhdGlvbiBwcm9jZWR1cmUsCmJ1dCBi ZWNhdXNlIGN1cnJlbnRseSBhbGwgYXJjaGl0ZWN0dXJlIHN1cHBvcnRpbmcgaHVnZXBhZ2UgbWln cmF0aW9uIGlzIGFibGUKdG8gc3VwcG9ydCBhbGwgcGFnZSBzaXplLCB3ZSB3b3VsZCBub3Qgc2Vl IHBlcmZvcm1hbmNlIGdhaW4gd2l0aCB0aGlzIHBhdGNoCmFwcGxpZWQuCi0tLQoKPi0tCj5NaWNo YWwgSG9ja28KPlNVU0UgTGFicw==