From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH v4 14/31] x86/mm: move and rename guest_{, un}map_l1e Date: Thu, 17 Aug 2017 15:44:39 +0100 Message-ID: <20170817144456.18989-15-wei.liu2@citrix.com> References: <20170817144456.18989-1-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1diM5A-0002t6-Sn for xen-devel@lists.xenproject.org; Thu, 17 Aug 2017 14:47:36 +0000 In-Reply-To: <20170817144456.18989-1-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: George Dunlap , Andrew Cooper , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org TW92ZSB0aGVtIHRvIHB2L21tLmMgYW5kIHJlbmFtZSB0aGVtIHB2X3ssdW59bWFwX2d1ZXN0X2wx ZS4KClNpZ25lZC1vZmYtYnk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Ci0tLQogeGVu L2FyY2gveDg2L21tLmMgICAgICAgICAgIHwgNjMgKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvcHYvbW0uYyAgICAgICAgfCAzMyArKysr KysrKysrKysrKysrKysrKysrKysKIHhlbi9pbmNsdWRlL2FzbS14ODYvcHYvbW0uaCB8ICA5ICsr KysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNTcgaW5zZXJ0aW9ucygrKSwgNDggZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYwppbmRl eCBkZDhmYTQzZWYzLi5jNDJkZDVmOGY1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0uYwor KysgYi94ZW4vYXJjaC94ODYvbW0uYwpAQCAtNTEyLDM5ICs1MTIsNiBAQCB2b2lkIHVwZGF0ZV9j cjMoc3RydWN0IHZjcHUgKnYpCiAgICAgbWFrZV9jcjModiwgY3IzX21mbik7CiB9CiAKLS8qIEdl dCBhIG1hcHBpbmcgb2YgYSBQViBndWVzdCdzIGwxZSBmb3IgdGhpcyB2aXJ0dWFsIGFkZHJlc3Mu ICovCi1zdGF0aWMgbDFfcGdlbnRyeV90ICpndWVzdF9tYXBfbDFlKHVuc2lnbmVkIGxvbmcgYWRk ciwgdW5zaWduZWQgbG9uZyAqZ2wxbWZuKQotewotICAgIGwyX3BnZW50cnlfdCBsMmU7Ci0KLSAg ICBBU1NFUlQoIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShjdXJyZW50LT5kb21haW4pKTsKLSAgICBB U1NFUlQoIXBhZ2luZ19tb2RlX2V4dGVybmFsKGN1cnJlbnQtPmRvbWFpbikpOwotCi0gICAgaWYg KCB1bmxpa2VseSghX19hZGRyX29rKGFkZHIpKSApCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0g ICAgLyogRmluZCB0aGlzIGwxZSBhbmQgaXRzIGVuY2xvc2luZyBsMW1mbiBpbiB0aGUgbGluZWFy IG1hcC4gKi8KLSAgICBpZiAoIF9fY29weV9mcm9tX3VzZXIoJmwyZSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgJl9fbGluZWFyX2wyX3RhYmxlW2wyX2xpbmVhcl9vZmZzZXQoYWRkcildLAot ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YobDJfcGdlbnRyeV90KSkgKQotICAgICAg ICByZXR1cm4gTlVMTDsKLQotICAgIC8qIENoZWNrIGZsYWdzIHRoYXQgaXQgd2lsbCBiZSBzYWZl IHRvIHJlYWQgdGhlIGwxZS4gKi8KLSAgICBpZiAoIChsMmVfZ2V0X2ZsYWdzKGwyZSkgJiAoX1BB R0VfUFJFU0VOVCB8IF9QQUdFX1BTRSkpICE9IF9QQUdFX1BSRVNFTlQgKQotICAgICAgICByZXR1 cm4gTlVMTDsKLQotICAgICpnbDFtZm4gPSBsMmVfZ2V0X3BmbihsMmUpOwotCi0gICAgcmV0dXJu IChsMV9wZ2VudHJ5X3QgKiltYXBfZG9tYWluX3BhZ2UoX21mbigqZ2wxbWZuKSkgKwotICAgICAg ICAgICBsMV90YWJsZV9vZmZzZXQoYWRkcik7Ci19Ci0KLS8qIFB1bGwgZG93biB0aGUgbWFwcGlu ZyB3ZSBnb3QgZnJvbSBndWVzdF9tYXBfbDFlKCkuICovCi1zdGF0aWMgaW5saW5lIHZvaWQgZ3Vl c3RfdW5tYXBfbDFlKHZvaWQgKnApCi17Ci0gICAgdW5tYXBfZG9tYWluX3BhZ2UocCk7Ci19Ci0K IHN0YXRpYyBpbmxpbmUgdm9pZCBwYWdlX3NldF90bGJmbHVzaF90aW1lc3RhbXAoc3RydWN0IHBh Z2VfaW5mbyAqcGFnZSkKIHsKICAgICAvKgpAQCAtMzc4Niw3ICszNzUzLDcgQEAgc3RhdGljIGlu dCBjcmVhdGVfZ3JhbnRfdmFfbWFwcGluZygKIAogICAgIGFkanVzdF9ndWVzdF9sMWUobmwxZSwg ZCk7CiAKLSAgICBwbDFlID0gZ3Vlc3RfbWFwX2wxZSh2YSwgJmdsMW1mbik7CisgICAgcGwxZSA9 IHB2X21hcF9ndWVzdF9sMWUodmEsICZnbDFtZm4pOwogICAgIGlmICggIXBsMWUgKQogICAgIHsK ICAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsICJDb3VsZCBub3QgZmluZCBMMSBQVEUg Zm9yIGFkZHJlc3MgJWx4XG4iLCB2YSk7CkBAIC0zNzk1LDcgKzM3NjIsNyBAQCBzdGF0aWMgaW50 IGNyZWF0ZV9ncmFudF92YV9tYXBwaW5nKAogCiAgICAgaWYgKCAhZ2V0X3BhZ2VfZnJvbV9tZm4o X21mbihnbDFtZm4pLCBjdXJyZW50LT5kb21haW4pICkKICAgICB7Ci0gICAgICAgIGd1ZXN0X3Vu bWFwX2wxZShwbDFlKTsKKyAgICAgICAgcHZfdW5tYXBfZ3Vlc3RfbDFlKHBsMWUpOwogICAgICAg ICByZXR1cm4gR05UU1RfZ2VuZXJhbF9lcnJvcjsKICAgICB9CiAKQEAgLTM4MDMsNyArMzc3MCw3 IEBAIHN0YXRpYyBpbnQgY3JlYXRlX2dyYW50X3ZhX21hcHBpbmcoCiAgICAgaWYgKCAhcGFnZV9s b2NrKGwxcGcpICkKICAgICB7CiAgICAgICAgIHB1dF9wYWdlKGwxcGcpOwotICAgICAgICBndWVz dF91bm1hcF9sMWUocGwxZSk7CisgICAgICAgIHB2X3VubWFwX2d1ZXN0X2wxZShwbDFlKTsKICAg ICAgICAgcmV0dXJuIEdOVFNUX2dlbmVyYWxfZXJyb3I7CiAgICAgfQogCkBAIC0zODExLDcgKzM3 NzgsNyBAQCBzdGF0aWMgaW50IGNyZWF0ZV9ncmFudF92YV9tYXBwaW5nKAogICAgIHsKICAgICAg ICAgcGFnZV91bmxvY2sobDFwZyk7CiAgICAgICAgIHB1dF9wYWdlKGwxcGcpOwotICAgICAgICBn dWVzdF91bm1hcF9sMWUocGwxZSk7CisgICAgICAgIHB2X3VubWFwX2d1ZXN0X2wxZShwbDFlKTsK ICAgICAgICAgcmV0dXJuIEdOVFNUX2dlbmVyYWxfZXJyb3I7CiAgICAgfQogCkBAIC0zODIwLDcg KzM3ODcsNyBAQCBzdGF0aWMgaW50IGNyZWF0ZV9ncmFudF92YV9tYXBwaW5nKAogCiAgICAgcGFn ZV91bmxvY2sobDFwZyk7CiAgICAgcHV0X3BhZ2UobDFwZyk7Ci0gICAgZ3Vlc3RfdW5tYXBfbDFl KHBsMWUpOworICAgIHB2X3VubWFwX2d1ZXN0X2wxZShwbDFlKTsKIAogICAgIGlmICggb2theSAp CiAgICAgICAgIHB1dF9wYWdlX2Zyb21fbDFlKG9sMWUsIGQpOwpAQCAtMzgzNiw3ICszODAzLDcg QEAgc3RhdGljIGludCByZXBsYWNlX2dyYW50X3ZhX21hcHBpbmcoCiAgICAgc3RydWN0IHBhZ2Vf aW5mbyAqbDFwZzsKICAgICBpbnQgcmMgPSAwOwogCi0gICAgcGwxZSA9IGd1ZXN0X21hcF9sMWUo YWRkciwgJmdsMW1mbik7CisgICAgcGwxZSA9IHB2X21hcF9ndWVzdF9sMWUoYWRkciwgJmdsMW1m bik7CiAgICAgaWYgKCAhcGwxZSApCiAgICAgewogICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FS TklORywgIkNvdWxkIG5vdCBmaW5kIEwxIFBURSBmb3IgYWRkcmVzcyAlbHhcbiIsIGFkZHIpOwpA QCAtMzg4Nyw3ICszODU0LDcgQEAgc3RhdGljIGludCByZXBsYWNlX2dyYW50X3ZhX21hcHBpbmco CiAgICAgcGFnZV91bmxvY2sobDFwZyk7CiAgICAgcHV0X3BhZ2UobDFwZyk7CiAgb3V0OgotICAg IGd1ZXN0X3VubWFwX2wxZShwbDFlKTsKKyAgICBwdl91bm1hcF9ndWVzdF9sMWUocGwxZSk7CiAg ICAgcmV0dXJuIHJjOwogfQogCkBAIC0zOTQ1LDcgKzM5MTIsNyBAQCBpbnQgcmVwbGFjZV9ncmFu dF9wdl9tYXBwaW5nKHVpbnQ2NF90IGFkZHIsIHVuc2lnbmVkIGxvbmcgZnJhbWUsCiAgICAgaWYg KCAhbmV3X2FkZHIgKQogICAgICAgICByZXR1cm4gZGVzdHJveV9ncmFudF92YV9tYXBwaW5nKGFk ZHIsIGZyYW1lLCBjdXJyKTsKIAotICAgIHBsMWUgPSBndWVzdF9tYXBfbDFlKG5ld19hZGRyLCAm Z2wxbWZuKTsKKyAgICBwbDFlID0gcHZfbWFwX2d1ZXN0X2wxZShuZXdfYWRkciwgJmdsMW1mbik7 CiAgICAgaWYgKCAhcGwxZSApCiAgICAgewogICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklO RywKQEAgLTM5NTUsNyArMzkyMiw3IEBAIGludCByZXBsYWNlX2dyYW50X3B2X21hcHBpbmcodWlu dDY0X3QgYWRkciwgdW5zaWduZWQgbG9uZyBmcmFtZSwKIAogICAgIGlmICggIWdldF9wYWdlX2Zy b21fbWZuKF9tZm4oZ2wxbWZuKSwgY3VycmVudC0+ZG9tYWluKSApCiAgICAgewotICAgICAgICBn dWVzdF91bm1hcF9sMWUocGwxZSk7CisgICAgICAgIHB2X3VubWFwX2d1ZXN0X2wxZShwbDFlKTsK ICAgICAgICAgcmV0dXJuIEdOVFNUX2dlbmVyYWxfZXJyb3I7CiAgICAgfQogCkBAIC0zOTYzLDcg KzM5MzAsNyBAQCBpbnQgcmVwbGFjZV9ncmFudF9wdl9tYXBwaW5nKHVpbnQ2NF90IGFkZHIsIHVu c2lnbmVkIGxvbmcgZnJhbWUsCiAgICAgaWYgKCAhcGFnZV9sb2NrKGwxcGcpICkKICAgICB7CiAg ICAgICAgIHB1dF9wYWdlKGwxcGcpOwotICAgICAgICBndWVzdF91bm1hcF9sMWUocGwxZSk7Cisg ICAgICAgIHB2X3VubWFwX2d1ZXN0X2wxZShwbDFlKTsKICAgICAgICAgcmV0dXJuIEdOVFNUX2dl bmVyYWxfZXJyb3I7CiAgICAgfQogCkBAIC0zOTcxLDcgKzM5MzgsNyBAQCBpbnQgcmVwbGFjZV9n cmFudF9wdl9tYXBwaW5nKHVpbnQ2NF90IGFkZHIsIHVuc2lnbmVkIGxvbmcgZnJhbWUsCiAgICAg ewogICAgICAgICBwYWdlX3VubG9jayhsMXBnKTsKICAgICAgICAgcHV0X3BhZ2UobDFwZyk7Ci0g ICAgICAgIGd1ZXN0X3VubWFwX2wxZShwbDFlKTsKKyAgICAgICAgcHZfdW5tYXBfZ3Vlc3RfbDFl KHBsMWUpOwogICAgICAgICByZXR1cm4gR05UU1RfZ2VuZXJhbF9lcnJvcjsKICAgICB9CiAKQEAg LTM5ODMsMTMgKzM5NTAsMTMgQEAgaW50IHJlcGxhY2VfZ3JhbnRfcHZfbWFwcGluZyh1aW50NjRf dCBhZGRyLCB1bnNpZ25lZCBsb25nIGZyYW1lLAogICAgICAgICBwYWdlX3VubG9jayhsMXBnKTsK ICAgICAgICAgcHV0X3BhZ2UobDFwZyk7CiAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5H LCAiQ2Fubm90IGRlbGV0ZSBQVEUgZW50cnkgYXQgJXBcbiIsIHBsMWUpOwotICAgICAgICBndWVz dF91bm1hcF9sMWUocGwxZSk7CisgICAgICAgIHB2X3VubWFwX2d1ZXN0X2wxZShwbDFlKTsKICAg ICAgICAgcmV0dXJuIEdOVFNUX2dlbmVyYWxfZXJyb3I7CiAgICAgfQogCiAgICAgcGFnZV91bmxv Y2sobDFwZyk7CiAgICAgcHV0X3BhZ2UobDFwZyk7Ci0gICAgZ3Vlc3RfdW5tYXBfbDFlKHBsMWUp OworICAgIHB2X3VubWFwX2d1ZXN0X2wxZShwbDFlKTsKIAogICAgIHJjID0gcmVwbGFjZV9ncmFu dF92YV9tYXBwaW5nKGFkZHIsIGZyYW1lLCBvbDFlLCBjdXJyKTsKICAgICBpZiAoIHJjICkKQEAg LTQxMjMsNyArNDA5MCw3IEBAIHN0YXRpYyBpbnQgX19kb191cGRhdGVfdmFfbWFwcGluZygKICAg ICAgICAgcmV0dXJuIHJjOwogCiAgICAgcmMgPSAtRUlOVkFMOwotICAgIHBsMWUgPSBndWVzdF9t YXBfbDFlKHZhLCAmZ2wxbWZuKTsKKyAgICBwbDFlID0gcHZfbWFwX2d1ZXN0X2wxZSh2YSwgJmds MW1mbik7CiAgICAgaWYgKCB1bmxpa2VseSghcGwxZSB8fCAhZ2V0X3BhZ2VfZnJvbV9tZm4oX21m bihnbDFtZm4pLCBkKSkgKQogICAgICAgICBnb3RvIG91dDsKIApAQCAtNDE0OCw3ICs0MTE1LDcg QEAgc3RhdGljIGludCBfX2RvX3VwZGF0ZV92YV9tYXBwaW5nKAogCiAgb3V0OgogICAgIGlmICgg cGwxZSApCi0gICAgICAgIGd1ZXN0X3VubWFwX2wxZShwbDFlKTsKKyAgICAgICAgcHZfdW5tYXBf Z3Vlc3RfbDFlKHBsMWUpOwogCiAgICAgc3dpdGNoICggZmxhZ3MgJiBVVk1GX0ZMVVNIVFlQRV9N QVNLICkKICAgICB7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvbW0uYyBiL3hlbi9hcmNo L3g4Ni9wdi9tbS5jCmluZGV4IDJjYjU5OTVlNjIuLjMyZTczZDU5ZGYgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9wdi9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wdi9tbS5jCkBAIC02Myw2ICs2 MywzOSBAQCB2b2lkIHB2X2dldF9ndWVzdF9lZmZfa2Vybl9sMWUoc3RydWN0IHZjcHUgKnYsIHVu c2lnbmVkIGxvbmcgYWRkciwKICAgICAgICAgdG9nZ2xlX2d1ZXN0X21vZGUodik7CiB9CiAKKy8q IEdldCBhIG1hcHBpbmcgb2YgYSBQViBndWVzdCdzIGwxZSBmb3IgdGhpcyB2aXJ0dWFsIGFkZHJl c3MuICovCitsMV9wZ2VudHJ5X3QgKnB2X21hcF9ndWVzdF9sMWUodW5zaWduZWQgbG9uZyBhZGRy LCB1bnNpZ25lZCBsb25nICpnbDFtZm4pCit7CisgICAgbDJfcGdlbnRyeV90IGwyZTsKKworICAg IEFTU0VSVCghcGFnaW5nX21vZGVfdHJhbnNsYXRlKGN1cnJlbnQtPmRvbWFpbikpOworICAgIEFT U0VSVCghcGFnaW5nX21vZGVfZXh0ZXJuYWwoY3VycmVudC0+ZG9tYWluKSk7CisKKyAgICBpZiAo IHVubGlrZWx5KCFfX2FkZHJfb2soYWRkcikpICkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAg ICAvKiBGaW5kIHRoaXMgbDFlIGFuZCBpdHMgZW5jbG9zaW5nIGwxbWZuIGluIHRoZSBsaW5lYXIg bWFwLiAqLworICAgIGlmICggX19jb3B5X2Zyb21fdXNlcigmbDJlLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAmX19saW5lYXJfbDJfdGFibGVbbDJfbGluZWFyX29mZnNldChhZGRyKV0sCisg ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihsMl9wZ2VudHJ5X3QpKSApCisgICAgICAg IHJldHVybiBOVUxMOworCisgICAgLyogQ2hlY2sgZmxhZ3MgdGhhdCBpdCB3aWxsIGJlIHNhZmUg dG8gcmVhZCB0aGUgbDFlLiAqLworICAgIGlmICggKGwyZV9nZXRfZmxhZ3MobDJlKSAmIChfUEFH RV9QUkVTRU5UIHwgX1BBR0VfUFNFKSkgIT0gX1BBR0VfUFJFU0VOVCApCisgICAgICAgIHJldHVy biBOVUxMOworCisgICAgKmdsMW1mbiA9IGwyZV9nZXRfcGZuKGwyZSk7CisKKyAgICByZXR1cm4g KGwxX3BnZW50cnlfdCAqKW1hcF9kb21haW5fcGFnZShfbWZuKCpnbDFtZm4pKSArCisgICAgICAg ICAgIGwxX3RhYmxlX29mZnNldChhZGRyKTsKK30KKworLyogUHVsbCBkb3duIHRoZSBtYXBwaW5n IHdlIGdvdCBmcm9tIHB2X21hcF9ndWVzdF9sMWUoKS4gKi8KK3ZvaWQgcHZfdW5tYXBfZ3Vlc3Rf bDFlKHZvaWQgKnApCit7CisgICAgdW5tYXBfZG9tYWluX3BhZ2UocCk7Cit9CisKIC8qCiAgKiBI b3cgdG8gd3JpdGUgYW4gZW50cnkgdG8gdGhlIGd1ZXN0IHBhZ2V0YWJsZXMuCiAgKiBSZXR1cm5z IGZhbHNlIGZvciBmYWlsdXJlIChwb2ludGVyIG5vdCB2YWxpZCksIHRydWUgZm9yIHN1Y2Nlc3Mu CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3B2L21tLmggYi94ZW4vaW5jbHVkZS9h c20teDg2L3B2L21tLmgKaW5kZXggYjM4ODc5ODliNi4uMDA2MTU2ZDBlMSAxMDA2NDQKLS0tIGEv eGVuL2luY2x1ZGUvYXNtLXg4Ni9wdi9tbS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcHYv bW0uaApAQCAtODYsNiArODYsOSBAQCBib29sIHB2X3VwZGF0ZV9pbnRwdGUoaW50cHRlX3QgKnAs IGludHB0ZV90IG9sZCwgaW50cHRlX3QgbmV3LAogICAgICAgICAgICAgICAgICAgICAgX3QgIyMg ZV9nZXRfaW50cHRlKF9vKSwgX3QgIyMgZV9nZXRfaW50cHRlKF9uKSwgICBcCiAgICAgICAgICAg ICAgICAgICAgICAoX20pLCAoX3YpLCAoX2FkKSkKIAorbDFfcGdlbnRyeV90ICpwdl9tYXBfZ3Vl c3RfbDFlKHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyAqZ2wxbWZuKTsKK3ZvaWQg cHZfdW5tYXBfZ3Vlc3RfbDFlKHZvaWQgKnApOworCiAjZWxzZQogCiBzdGF0aWMgaW5saW5lIHZv aWQgcHZfZ2V0X2d1ZXN0X2VmZl9sMWUodW5zaWduZWQgbG9uZyBhZGRyLApAQCAtMTAxLDYgKzEw NCwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcHZfdXBkYXRlX2ludHB0ZShpbnRwdGVfdCAqcCwg aW50cHRlX3Qgb2xkLCBpbnRwdGVfdCBuZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgcHJlc2VydmVfYWQpCiB7IHJldHVybiBmYWxzZTsgfQogCitzdGF0aWMgaW5s aW5lIGwxX3BnZW50cnlfdCAqcHZfbWFwX2d1ZXN0X2wxZSh1bnNpZ25lZCBsb25nIGFkZHIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25n ICpnbDFtZm4pOworeyByZXR1cm4gTlVMTDsgfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcHZfdW5t YXBfZ3Vlc3RfbDFlKHZvaWQgKnApIHt9CisKICNlbmRpZgogCiAjZW5kaWYgLyogX19YODZfUFZf TU1fSF9fICovCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4u b3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK