From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH RFC 2/8] mm: Place unscrubbed pages at the end of pagelist Date: Sun, 26 Feb 2017 19:22:34 -0500 Message-ID: <1488154960-2826-3-git-send-email-boris.ostrovsky@oracle.com> References: <1488154960-2826-1-git-send-email-boris.ostrovsky@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1488154960-2826-1-git-send-email-boris.ostrovsky@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, jbeulich@suse.com, tim@xen.orgc, Boris Ostrovsky List-Id: xen-devel@lists.xenproject.org LiBzbyB0aGF0IGl0J3MgZWFzeSB0byBmaW5kIHBhZ2VzIHRoYXQgbmVlZCB0byBiZSBzY3J1YmJl ZCAodGhvc2UgcGFnZXMgYXJlCm5vdyBtYXJrZWQgd2l0aCBfUEdDX25lZWRfc2NydWIgYml0KS4K ClNpZ25lZC1vZmYtYnk6IEJvcmlzIE9zdHJvdnNreSA8Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5j b20+Ci0tLQogeGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMgIHwgICA5NyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvbW0uaCB8 ICAgIDQgKysKIDIgZmlsZXMgY2hhbmdlZCwgNzkgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMgYi94ZW4vY29tbW9uL3Bh Z2VfYWxsb2MuYwppbmRleCAzNTJlYmE5Li42NTNiYjkxIDEwMDY0NAotLS0gYS94ZW4vY29tbW9u L3BhZ2VfYWxsb2MuYworKysgYi94ZW4vY29tbW9uL3BhZ2VfYWxsb2MuYwpAQCAtMzg1LDYgKzM4 NSw4IEBAIHR5cGVkZWYgc3RydWN0IHBhZ2VfbGlzdF9oZWFkIGhlYXBfYnlfem9uZV9hbmRfb3Jk ZXJfdFtOUl9aT05FU11bTUFYX09SREVSKzFdOwogc3RhdGljIGhlYXBfYnlfem9uZV9hbmRfb3Jk ZXJfdCAqX2hlYXBbTUFYX05VTU5PREVTXTsKICNkZWZpbmUgaGVhcChub2RlLCB6b25lLCBvcmRl cikgKCgqX2hlYXBbbm9kZV0pW3pvbmVdW29yZGVyXSkKIAorc3RhdGljIHVuc2lnbmVkIG5vZGVf bmVlZF9zY3J1YltNQVhfTlVNTk9ERVNdOworCiBzdGF0aWMgdW5zaWduZWQgbG9uZyAqYXZhaWxb TUFYX05VTU5PREVTXTsKIHN0YXRpYyBsb25nIHRvdGFsX2F2YWlsX3BhZ2VzOwogCkBAIC04MDks NyArODExLDcgQEAgc3RhdGljIHN0cnVjdCBwYWdlX2luZm8gKmFsbG9jX2hlYXBfcGFnZXMoCiAg ICAgd2hpbGUgKCBqICE9IG9yZGVyICkKICAgICB7CiAgICAgICAgIFBGTl9PUkRFUihwZykgPSAt LWo7Ci0gICAgICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChwZywgJmhlYXAobm9kZSwgem9uZSwgaikp OworICAgICAgICBwYWdlX2xpc3RfYWRkKHBnLCAmaGVhcChub2RlLCB6b25lLCBqKSk7CiAgICAg ICAgIHBnICs9IDEgPDwgajsKICAgICB9CiAKQEAgLTgyOSw2ICs4MzEsOCBAQCBzdGF0aWMgc3Ry dWN0IHBhZ2VfaW5mbyAqYWxsb2NfaGVhcF9wYWdlcygKICAgICAgICAgQlVHX09OKHBnW2ldLmNv dW50X2luZm8gIT0gUEdDX3N0YXRlX2ZyZWUpOwogICAgICAgICBwZ1tpXS5jb3VudF9pbmZvID0g UEdDX3N0YXRlX2ludXNlOwogCisgICAgICAgIEJVR19PTih0ZXN0X2JpdChfUEdDX25lZWRfc2Ny dWIsICZwZ1tpXS5jb3VudF9pbmZvKSk7CisKICAgICAgICAgaWYgKCAhKG1lbWZsYWdzICYgTUVN Rl9ub190bGJmbHVzaCkgKQogICAgICAgICAgICAgYWNjdW11bGF0ZV90bGJmbHVzaCgmbmVlZF90 bGJmbHVzaCwgJnBnW2ldLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdGxiZmx1 c2hfdGltZXN0YW1wKTsKQEAgLTg5OSw3ICs5MDMsMTAgQEAgc3RhdGljIGludCByZXNlcnZlX29m ZmxpbmVkX3BhZ2Uoc3RydWN0IHBhZ2VfaW5mbyAqaGVhZCkKICAgICAgICAgICAgIHsKICAgICAg ICAgICAgIG1lcmdlOgogICAgICAgICAgICAgICAgIC8qIFdlIGRvbid0IGNvbnNpZGVyIG1lcmdp bmcgb3V0c2lkZSB0aGUgaGVhZF9vcmRlci4gKi8KLSAgICAgICAgICAgICAgICBwYWdlX2xpc3Rf YWRkX3RhaWwoY3VyX2hlYWQsICZoZWFwKG5vZGUsIHpvbmUsIGN1cl9vcmRlcikpOworICAgICAg ICAgICAgICAgIGlmICggdGVzdF9iaXQoX1BHQ19uZWVkX3NjcnViLCAmY3VyX2hlYWQtPmNvdW50 X2luZm8pICkKKyAgICAgICAgICAgICAgICAgICAgcGFnZV9saXN0X2FkZF90YWlsKGN1cl9oZWFk LCAmaGVhcChub2RlLCB6b25lLCBjdXJfb3JkZXIpKTsKKyAgICAgICAgICAgICAgICBlbHNlCisg ICAgICAgICAgICAgICAgICAgIHBhZ2VfbGlzdF9hZGQoY3VyX2hlYWQsICZoZWFwKG5vZGUsIHpv bmUsIGN1cl9vcmRlcikpOwogICAgICAgICAgICAgICAgIFBGTl9PUkRFUihjdXJfaGVhZCkgPSBj dXJfb3JkZXI7CiAgICAgICAgICAgICAgICAgY3VyX2hlYWQgKz0gKDEgPDwgY3VyX29yZGVyKTsK ICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTkyNyw3ICs5MzQsNyBAQCBzdGF0aWMgaW50IHJl c2VydmVfb2ZmbGluZWRfcGFnZShzdHJ1Y3QgcGFnZV9pbmZvICpoZWFkKQogfQogCiBzdGF0aWMg Ym9vbF90IGNhbl9tZXJnZShzdHJ1Y3QgcGFnZV9pbmZvICpoZWFkLCB1bnNpZ25lZCBpbnQgbm9k ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBvcmRlcikKKyAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBvcmRlciwgYm9vbF90IG5lZWRfc2NydWIpCiB7 CiAgICAgaWYgICggIW1mbl92YWxpZChwYWdlX3RvX21mbihoZWFkKSkgfHwKICAgICAgICAgICAh cGFnZV9zdGF0ZV9pcyhoZWFkLCBmcmVlKSB8fApAQCAtOTM1LDExICs5NDIsMTYgQEAgc3RhdGlj IGJvb2xfdCBjYW5fbWVyZ2Uoc3RydWN0IHBhZ2VfaW5mbyAqaGVhZCwgdW5zaWduZWQgaW50IG5v ZGUsCiAgICAgICAgICAgKHBoeXNfdG9fbmlkKHBhZ2VfdG9fbWFkZHIoaGVhZCkpICE9IG5vZGUp ICkKICAgICAgICAgcmV0dXJuIDA7CiAKKyAgICBpZiAoICEhbmVlZF9zY3J1YiBeCisgICAgICAg ICAhIXRlc3RfYml0KF9QR0NfbmVlZF9zY3J1YiwgJmhlYWQtPmNvdW50X2luZm8pICkKKyAgICAg ICAgcmV0dXJuIDA7CisKICAgICByZXR1cm4gMTsKIH0KIAogc3RhdGljIHZvaWQgbWVyZ2VfY2h1 bmtzKHN0cnVjdCBwYWdlX2luZm8gKnBnLCB1bnNpZ25lZCBpbnQgbm9kZSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgem9uZSwgdW5zaWduZWQgaW50IG9yZGVyKQorICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB6b25lLCB1bnNpZ25lZCBpbnQgb3Jk ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbF90IG5lZWRfc2NydWIpCiB7CiAgICAg QVNTRVJUKHNwaW5faXNfbG9ja2VkKCZoZWFwX2xvY2spKTsKIApAQCAtOTUxLDcgKzk2Myw3IEBA IHN0YXRpYyB2b2lkIG1lcmdlX2NodW5rcyhzdHJ1Y3QgcGFnZV9pbmZvICpwZywgdW5zaWduZWQg aW50IG5vZGUsCiAgICAgICAgIGlmICggKHBhZ2VfdG9fbWZuKHBnKSAmIG1hc2spICkKICAgICAg ICAgewogICAgICAgICAgICAgLyogTWVyZ2Ugd2l0aCBwcmVkZWNlc3NvciBibG9jaz8gKi8KLSAg ICAgICAgICAgIGlmICggIWNhbl9tZXJnZShwZyAtIG1hc2ssIG5vZGUsIG9yZGVyKSApCisgICAg ICAgICAgICBpZiAoICFjYW5fbWVyZ2UocGcgLSBtYXNrLCBub2RlLCBvcmRlciwgbmVlZF9zY3J1 YikgKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBwZyAtPSBtYXNrOwpA QCAtOTYwLDcgKzk3Miw3IEBAIHN0YXRpYyB2b2lkIG1lcmdlX2NodW5rcyhzdHJ1Y3QgcGFnZV9p bmZvICpwZywgdW5zaWduZWQgaW50IG5vZGUsCiAgICAgICAgIGVsc2UKICAgICAgICAgewogICAg ICAgICAgICAgLyogTWVyZ2Ugd2l0aCBzdWNjZXNzb3IgYmxvY2s/ICovCi0gICAgICAgICAgICBp ZiAoICFjYW5fbWVyZ2UocGcgKyBtYXNrLCBub2RlLCBvcmRlcikgKQorICAgICAgICAgICAgaWYg KCAhY2FuX21lcmdlKHBnICsgbWFzaywgbm9kZSwgb3JkZXIsIG5lZWRfc2NydWIpICkKICAgICAg ICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgcGFnZV9saXN0X2RlbChwZyArIG1hc2ss ICZoZWFwKG5vZGUsIHpvbmUsIG9yZGVyKSk7CkBAIC05NzAsMTIgKzk4Miw0OSBAQCBzdGF0aWMg dm9pZCBtZXJnZV9jaHVua3Moc3RydWN0IHBhZ2VfaW5mbyAqcGcsIHVuc2lnbmVkIGludCBub2Rl LAogICAgIH0KIAogICAgIFBGTl9PUkRFUihwZykgPSBvcmRlcjsKLSAgICBwYWdlX2xpc3RfYWRk X3RhaWwocGcsICZoZWFwKG5vZGUsIHpvbmUsIG9yZGVyKSk7CisgICAgaWYgKCBuZWVkX3NjcnVi ICkKKyAgICAgICAgcGFnZV9saXN0X2FkZF90YWlsKHBnLCAmaGVhcChub2RlLCB6b25lLCBvcmRl cikpOworICAgIGVsc2UKKyAgICAgICAgcGFnZV9saXN0X2FkZChwZywgJmhlYXAobm9kZSwgem9u ZSwgb3JkZXIpKTsKK30KKworc3RhdGljIHZvaWQgc2NydWJfZnJlZV9wYWdlcyh1bnNpZ25lZCBp bnQgbm9kZSkKK3sKKyAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsKKyAgICB1bnNpZ25lZCBpbnQg aSwgem9uZTsKKyAgICBpbnQgb3JkZXI7CisKKyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmhl YXBfbG9jaykpOworCisgICAgaWYgKCAhbm9kZV9uZWVkX3NjcnViW25vZGVdICkKKyAgICAgICAg cmV0dXJuOworCisgICAgZm9yICggem9uZSA9IDA7IHpvbmUgPCBOUl9aT05FUzsgem9uZSsrICkK KyAgICB7CisgICAgICAgIGZvciAoIG9yZGVyID0gTUFYX09SREVSOyBvcmRlciA+PSAwOyBvcmRl ci0tICkKKyAgICAgICAgeworICAgICAgICAgICAgd2hpbGUgKCAhcGFnZV9saXN0X2VtcHR5KCZo ZWFwKG5vZGUsIHpvbmUsIG9yZGVyKSkgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg IC8qIFVuc2NydWJiZWQgcGFnZXMgYXJlIGFsd2F5cyBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LiAq LworICAgICAgICAgICAgICAgIHBnID0gcGFnZV9saXN0X2xhc3QoJmhlYXAobm9kZSwgem9uZSwg b3JkZXIpKTsKKyAgICAgICAgICAgICAgICBpZiAoICF0ZXN0X2JpdChfUEdDX25lZWRfc2NydWIs ICZwZ1swXS5jb3VudF9pbmZvKSApCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAg ICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMSA8PCBvcmRlcik7IGkrKykKKyAgICAgICAg ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHNjcnViX29uZV9wYWdlKCZwZ1tpXSk7Cisg ICAgICAgICAgICAgICAgICAgIHBnW2ldLmNvdW50X2luZm8gJj0gflBHQ19uZWVkX3NjcnViOwor ICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIG5vZGVfbmVlZF9zY3J1Yltub2Rl XSAtPSAoMSA8PCBvcmRlcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CiB9CiAK IC8qIEZyZWUgMl5Ab3JkZXIgc2V0IG9mIHBhZ2VzLiAqLwogc3RhdGljIHZvaWQgZnJlZV9oZWFw X3BhZ2VzKAotICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnLCB1bnNpZ25lZCBpbnQgb3JkZXIpCisg ICAgc3RydWN0IHBhZ2VfaW5mbyAqcGcsIHVuc2lnbmVkIGludCBvcmRlciwgYm9vbF90IG5lZWRf c2NydWIpCiB7CiAgICAgdW5zaWduZWQgbG9uZyBtZm4gPSBwYWdlX3RvX21mbihwZyk7CiAgICAg dW5zaWduZWQgaW50IGksIG5vZGUgPSBwaHlzX3RvX25pZChwYWdlX3RvX21hZGRyKHBnKSksIHRh aW50ZWQgPSAwOwpAQCAtMTAyNCwxMSArMTA3MywyMiBAQCBzdGF0aWMgdm9pZCBmcmVlX2hlYXBf cGFnZXMoCiAgICAgICAgIG1pZHNpemVfYWxsb2Nfem9uZV9wYWdlcyA9IG1heCgKICAgICAgICAg ICAgIG1pZHNpemVfYWxsb2Nfem9uZV9wYWdlcywgdG90YWxfYXZhaWxfcGFnZXMgLyBNSURTSVpF X0FMTE9DX0ZSQUMpOwogCi0gICAgbWVyZ2VfY2h1bmtzKHBnLCBub2RlLCB6b25lLCBvcmRlcik7 CisgICAgaWYgKCBuZWVkX3NjcnViICYmICF0YWludGVkICkKKyAgICB7CisgICAgICAgIGZvciAo IGkgPSAwOyBpIDwgKDEgPDwgb3JkZXIpOyBpKysgKQorICAgICAgICAgICAgcGdbaV0uY291bnRf aW5mbyB8PSBQR0NfbmVlZF9zY3J1YjsKKworICAgICAgICBub2RlX25lZWRfc2NydWJbbm9kZV0g Kz0gKDEgPDwgb3JkZXIpOworICAgIH0KKworICAgIG1lcmdlX2NodW5rcyhwZywgbm9kZSwgem9u ZSwgb3JkZXIsIG5lZWRfc2NydWIpOwogCiAgICAgaWYgKCB0YWludGVkICkKICAgICAgICAgcmVz ZXJ2ZV9vZmZsaW5lZF9wYWdlKHBnKTsKIAorICAgIGlmICggbmVlZF9zY3J1YiApCisgICAgICAg IHNjcnViX2ZyZWVfcGFnZXMobm9kZSk7CisKICAgICBzcGluX3VubG9jaygmaGVhcF9sb2NrKTsK IH0KIApAQCAtMTI0OSw3ICsxMzA5LDcgQEAgdW5zaWduZWQgaW50IG9ubGluZV9wYWdlKHVuc2ln bmVkIGxvbmcgbWZuLCB1aW50MzJfdCAqc3RhdHVzKQogICAgIHNwaW5fdW5sb2NrKCZoZWFwX2xv Y2spOwogCiAgICAgaWYgKCAoeSAmIFBHQ19zdGF0ZSkgPT0gUEdDX3N0YXRlX29mZmxpbmVkICkK LSAgICAgICAgZnJlZV9oZWFwX3BhZ2VzKHBnLCAwKTsKKyAgICAgICAgZnJlZV9oZWFwX3BhZ2Vz KHBnLCAwLCAwKTsKIAogICAgIHJldHVybiByZXQ7CiB9CkBAIC0xMzE4LDcgKzEzNzgsNyBAQCBz dGF0aWMgdm9pZCBpbml0X2hlYXBfcGFnZXMoCiAgICAgICAgICAgICBucl9wYWdlcyAtPSBuOwog ICAgICAgICB9CiAKLSAgICAgICAgZnJlZV9oZWFwX3BhZ2VzKHBnK2ksIDApOworICAgICAgICBm cmVlX2hlYXBfcGFnZXMocGcgKyBpLCAwLCAwKTsKICAgICB9CiB9CiAKQEAgLTE2NDUsNyArMTcw NSw3IEBAIHZvaWQgZnJlZV94ZW5oZWFwX3BhZ2VzKHZvaWQgKnYsIHVuc2lnbmVkIGludCBvcmRl cikKIAogICAgIG1lbWd1YXJkX2d1YXJkX3JhbmdlKHYsIDEgPDwgKG9yZGVyICsgUEFHRV9TSElG VCkpOwogCi0gICAgZnJlZV9oZWFwX3BhZ2VzKHZpcnRfdG9fcGFnZSh2KSwgb3JkZXIpOworICAg IGZyZWVfaGVhcF9wYWdlcyh2aXJ0X3RvX3BhZ2UodiksIG9yZGVyLCAwKTsKIH0KIAogI2Vsc2UK QEAgLTE2OTksMTIgKzE3NTksOSBAQCB2b2lkIGZyZWVfeGVuaGVhcF9wYWdlcyh2b2lkICp2LCB1 bnNpZ25lZCBpbnQgb3JkZXIpCiAgICAgcGcgPSB2aXJ0X3RvX3BhZ2Uodik7CiAKICAgICBmb3Ig KCBpID0gMDsgaSA8ICgxdSA8PCBvcmRlcik7IGkrKyApCi0gICAgewotICAgICAgICBzY3J1Yl9v bmVfcGFnZSgmcGdbaV0pOwogICAgICAgICBwZ1tpXS5jb3VudF9pbmZvICY9IH5QR0NfeGVuX2hl YXA7Ci0gICAgfQogCi0gICAgZnJlZV9oZWFwX3BhZ2VzKHBnLCBvcmRlcik7CisgICAgZnJlZV9o ZWFwX3BhZ2VzKHBnLCBvcmRlciwgMSk7CiB9CiAKICNlbmRpZgpAQCAtMTgxMyw3ICsxODcwLDcg QEAgc3RydWN0IHBhZ2VfaW5mbyAqYWxsb2NfZG9taGVhcF9wYWdlcygKICAgICBpZiAoIGQgJiYg IShtZW1mbGFncyAmIE1FTUZfbm9fb3duZXIpICYmCiAgICAgICAgICBhc3NpZ25fcGFnZXMoZCwg cGcsIG9yZGVyLCBtZW1mbGFncykgKQogICAgIHsKLSAgICAgICAgZnJlZV9oZWFwX3BhZ2VzKHBn LCBvcmRlcik7CisgICAgICAgIGZyZWVfaGVhcF9wYWdlcyhwZywgb3JkZXIsIDApOwogICAgICAg ICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgCkBAIC0xODgxLDExICsxOTM4LDcgQEAgdm9pZCBm cmVlX2RvbWhlYXBfcGFnZXMoc3RydWN0IHBhZ2VfaW5mbyAqcGcsIHVuc2lnbmVkIGludCBvcmRl cikKICAgICAgICAgICAgIHNjcnViID0gMTsKICAgICAgICAgfQogCi0gICAgICAgIGlmICggdW5s aWtlbHkoc2NydWIpICkKLSAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDEgPDwgb3JkZXIp OyBpKysgKQotICAgICAgICAgICAgICAgIHNjcnViX29uZV9wYWdlKCZwZ1tpXSk7Ci0KLSAgICAg ICAgZnJlZV9oZWFwX3BhZ2VzKHBnLCBvcmRlcik7CisgICAgICAgIGZyZWVfaGVhcF9wYWdlcyhw Zywgb3JkZXIsIHNjcnViKTsKICAgICB9CiAKICAgICBpZiAoIGRyb3BfZG9tX3JlZiApCmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L21tLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L21t LmgKaW5kZXggYTY2ZDViMS4uYjExMTI0ZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4 Ni9tbS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbW0uaApAQCAtMjMzLDYgKzIzMywxMCBA QCBzdHJ1Y3QgcGFnZV9pbmZvCiAjZGVmaW5lIFBHQ19jb3VudF93aWR0aCAgIFBHX3NoaWZ0KDkp CiAjZGVmaW5lIFBHQ19jb3VudF9tYXNrICAgICgoMVVMPDxQR0NfY291bnRfd2lkdGgpLTEpCiAK Ky8qIFBhZ2UgbmVlZHMgdG8gYmUgc2NydWJiZWQgKi8KKyNkZWZpbmUgX1BHQ19uZWVkX3NjcnVi ICAgUEdfc2hpZnQoMTApCisjZGVmaW5lIFBHQ19uZWVkX3NjcnViICAgIFBHX21hc2soMSwgMTAp CisKIHN0cnVjdCBzcGFnZV9pbmZvCiB7CiAgICAgICAgdW5zaWduZWQgbG9uZyB0eXBlX2luZm87 Ci0tIAoxLjcuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=