From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH] x86/mm: Swap mfn_valid() to use mfn_t Date: Thu, 16 Feb 2017 20:07:14 +0000 Message-ID: <1487275634-17878-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Stefano Stabellini , George Dunlap , Andrew Cooper , Tim Deegan , Julien Grall , Jan Beulich List-Id: xen-devel@lists.xenproject.org UmVwbGFjZSBvbmUgb3BlbmNvZGVkIG1mbl9lcSgpIGFuZCBzb21lIGNvZGluZyBzdHlsZSBpc3N1 ZXMgb24gYWx0ZXJlZCBsaW5lcy4KU3dhcCBfX21mbl92YWxpZCgpIHRvIGJlaW5nIGJvb2wsIGFs dGhvdWdoIGl0IGNhbid0IGJlIHVwZGF0ZWQgdG8gdGFrZSBtZm5fdApiZWNhdXNlIG9mIGluY2x1 ZGUgZGVwZW5kZW5jaWVzLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBB bmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVs aWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxp bmlAa2VybmVsLm9yZz4KQ0M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CkND OiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KQ0M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5s YXBAZXUuY2l0cml4LmNvbT4KLS0tCiB4ZW4vYXJjaC9hcm0vbWVtX2FjY2Vzcy5jICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL2FybS9tbS5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQogeGVuL2FyY2gvYXJtL3AybS5jICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICA2ICsrKy0tLQogeGVuL2FyY2gvYXJtL3NldHVwLmMgICAgICAgICAgICAgICAgICAgICAg ICB8ICAzICsrLQogeGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNlLmMgICAgICAgICAgICAgICB8 ICAyICstCiB4ZW4vYXJjaC94ODYvY3B1L21jaGVjay92bWNlLmMgICAgICAgICAgICAgIHwgIDIg Ky0KIHhlbi9hcmNoL3g4Ni9jcHUvdnBtdS5jICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQog eGVuL2FyY2gveDg2L2RlYnVnLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4v YXJjaC94ODYvZG9tY3RsLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNo L3g4Ni9odm0vbXRyci5jICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2 L21tLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIwICsrKysrKysrKystLS0tLS0tLS0t CiB4ZW4vYXJjaC94ODYvbW0vaGFwL2d1ZXN0X3dhbGsuYyAgICAgICAgICAgIHwgIDIgKy0KIHhl bi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMgICAgICAgICAgICAgICAgICAgfCAgMiAtLQogeGVuL2Fy Y2gveDg2L21tL2hhcC9uZXN0ZWRfaGFwLmMgICAgICAgICAgICB8ICAyIC0tCiB4ZW4vYXJjaC94 ODYvbW0vbWVtX2FjY2Vzcy5jICAgICAgICAgICAgICAgIHwgIDQgKystLQogeGVuL2FyY2gveDg2 L21tL21lbV9zaGFyaW5nLmMgICAgICAgICAgICAgICB8ICA0ICstLS0KIHhlbi9hcmNoL3g4Ni9t bS9wMm0tZXB0LmMgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiB4ZW4vYXJjaC94ODYvbW0v cDJtLXBvZC5jICAgICAgICAgICAgICAgICAgIHwgIDIgLS0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0t cHQuYyAgICAgICAgICAgICAgICAgICAgfCAgMiAtLQogeGVuL2FyY2gveDg2L21tL3AybS5jICAg ICAgICAgICAgICAgICAgICAgICB8ICAyIC0tCiB4ZW4vYXJjaC94ODYvbW0vcGFnaW5nLmMgICAg ICAgICAgICAgICAgICAgIHwgIDIgLS0KIHhlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvcHJpdmF0ZS5o ICAgICAgICAgICAgfCAgMiAtLQogeGVuL2FyY2gveDg2L3Rib290LmMgICAgICAgICAgICAgICAg ICAgICAgICB8ICA0ICsrLS0KIHhlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYyAgICAgICAgICAgICAg ICAgICAgfCAxNiArKysrKysrKy0tLS0tLS0tCiB4ZW4vYXJjaC94ODYveDg2XzY0L3RyYXBzLmMg ICAgICAgICAgICAgICAgIHwgMTQgKysrKysrKy0tLS0tLS0KIHhlbi9jb21tb24vZ3JhbnRfdGFi bGUuYyAgICAgICAgICAgICAgICAgICAgfCAxMCArKysrKy0tLS0tCiB4ZW4vY29tbW9uL21lbW9y eS5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggKysrKy0tLS0KIHhlbi9jb21tb24vcGFn ZV9hbGxvYy5jICAgICAgICAgICAgICAgICAgICAgfCAxMiArKysrKystLS0tLS0KIHhlbi9jb21t b24vcGR4LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvYW1kL2lvbW11X2d1ZXN0LmMgICB8IDEwICsrKysrLS0tLS0KIHhlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMgfCAgMiArLQogeGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvdnRkL2RtYXIuYyAgICAgICAgICB8ICAyICstCiB4ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC92dGQveDg2L3Z0ZC5jICAgICAgIHwgIDIgKy0KIHhlbi9pbmNsdWRlL2FzbS1hcm0v bW0uaCAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiB4ZW4vaW5jbHVkZS9hc20tYXJtL3Ay bS5oICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgg ICAgICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmggICAg ICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vaW5jbHVkZS94ZW4vcGR4LmggICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIHhlbi9pbmNsdWRlL3hlbi90bWVtX3hlbi5oICAgICAgICAgICAg ICAgICAgfCAgMiArLQogMzkgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKSwgOTIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL21lbV9hY2Nlc3MuYyBiL3hlbi9h cmNoL2FybS9tZW1fYWNjZXNzLmMKaW5kZXggMDNiMjBjNC4uMDRiMTUwNiAxMDA2NDQKLS0tIGEv eGVuL2FyY2gvYXJtL21lbV9hY2Nlc3MuYworKysgYi94ZW4vYXJjaC9hcm0vbWVtX2FjY2Vzcy5j CkBAIC0xNzIsNyArMTcyLDcgQEAgcDJtX21lbV9hY2Nlc3NfY2hlY2tfYW5kX2dldF9wYWdlKHZh ZGRyX3QgZ3ZhLCB1bnNpZ25lZCBsb25nIGZsYWcsCiAgICAgaWYgKCBtZm5fZXEobWZuLCBJTlZB TElEX01GTikgKQogICAgICAgICBnb3RvIGVycjsKIAotICAgIGlmICggIW1mbl92YWxpZChtZm5f eChtZm4pKSApCisgICAgaWYgKCAhbWZuX3ZhbGlkKG1mbikgKQogICAgICAgICBnb3RvIGVycjsK IAogICAgIC8qCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vbW0uYyBiL3hlbi9hcmNoL2FybS9t bS5jCmluZGV4IDJkOTY0MjMuLmYwYTJlZGQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9tbS5j CisrKyBiL3hlbi9hcmNoL2FybS9tbS5jCkBAIC0xMzUwLDcgKzEzNTAsNyBAQCBpbnQgcmVwbGFj ZV9ncmFudF9ob3N0X21hcHBpbmcodW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIG1m biwKIAogYm9vbCBpc19pb21lbV9wYWdlKG1mbl90IG1mbikKIHsKLSAgICByZXR1cm4gIW1mbl92 YWxpZChtZm5feChtZm4pKTsKKyAgICByZXR1cm4gIW1mbl92YWxpZChtZm4pOwogfQogCiB2b2lk IGNsZWFyX2FuZF9jbGVhbl9wYWdlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UpCmRpZmYgLS1naXQg YS94ZW4vYXJjaC9hcm0vcDJtLmMgYi94ZW4vYXJjaC9hcm0vcDJtLmMKaW5kZXggNWU4ZjZjZC4u ZTM2ZDA3NSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3AybS5jCisrKyBiL3hlbi9hcmNoL2Fy bS9wMm0uYwpAQCAtNjQ4LDcgKzY0OCw3IEBAIHN0YXRpYyB2b2lkIHAybV9wdXRfbDNfcGFnZShj b25zdCBscGFlX3QgcHRlKQogICAgIHsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4gPSBwdGUu cDJtLmJhc2U7CiAKLSAgICAgICAgQVNTRVJUKG1mbl92YWxpZChtZm4pKTsKKyAgICAgICAgQVNT RVJUKG1mbl92YWxpZChfbWZuKG1mbikpKTsKICAgICAgICAgcHV0X3BhZ2UobWZuX3RvX3BhZ2Uo bWZuKSk7CiAgICAgfQogfQpAQCAtNjk1LDcgKzY5NSw3IEBAIHN0YXRpYyB2b2lkIHAybV9mcmVl X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWluICpwMm0sCiAgICAgICAgIHAybV9mbHVzaF90bGJfc3lu YyhwMm0pOwogCiAgICAgbWZuID0gX21mbihlbnRyeS5wMm0uYmFzZSk7Ci0gICAgQVNTRVJUKG1m bl92YWxpZChtZm5feChtZm4pKSk7CisgICAgQVNTRVJUKG1mbl92YWxpZChtZm4pKTsKIAogICAg IGZyZWVfZG9taGVhcF9wYWdlKG1mbl90b19wYWdlKG1mbl94KG1mbikpKTsKIH0KQEAgLTE0MTIs NyArMTQxMiw3IEBAIHN0cnVjdCBwYWdlX2luZm8gKmdldF9wYWdlX2Zyb21fZ3ZhKHN0cnVjdCB2 Y3B1ICp2LCB2YWRkcl90IHZhLAogICAgIGlmICggcmMgKQogICAgICAgICBnb3RvIGVycjsKIAot ICAgIGlmICggIW1mbl92YWxpZChtYWRkciA+PiBQQUdFX1NISUZUKSApCisgICAgaWYgKCAhbWZu X3ZhbGlkKF9tZm4obWFkZHIgPj4gUEFHRV9TSElGVCkpICkKICAgICAgICAgZ290byBlcnI7CiAK ICAgICBwYWdlID0gbWZuX3RvX3BhZ2UobWFkZHIgPj4gUEFHRV9TSElGVCk7CmRpZmYgLS1naXQg YS94ZW4vYXJjaC9hcm0vc2V0dXAuYyBiL3hlbi9hcmNoL2FybS9zZXR1cC5jCmluZGV4IDJiZjQz NjMuLmIyNWFkODAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9zZXR1cC5jCisrKyBiL3hlbi9h cmNoL2FybS9zZXR1cC5jCkBAIC0yNjgsNyArMjY4LDggQEAgdm9pZCBfX2luaXQgZGlzY2FyZF9p bml0aWFsX21vZHVsZXModm9pZCkKICAgICAgICAgaWYgKCBtaS0+bW9kdWxlW2ldLmtpbmQgPT0g Qk9PVE1PRF9YRU4gKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKCAhbWZu X3ZhbGlkKHBhZGRyX3RvX3BmbihzKSkgfHwgIW1mbl92YWxpZChwYWRkcl90b19wZm4oZSkpKQor ICAgICAgICBpZiAoICFtZm5fdmFsaWQoX21mbihwYWRkcl90b19wZm4ocykpKSB8fAorICAgICAg ICAgICAgICFtZm5fdmFsaWQoX21mbihwYWRkcl90b19wZm4oZSkpKSkKICAgICAgICAgICAgIGNv bnRpbnVlOwogCiAgICAgICAgIGR0X3VucmVzZXJ2ZWRfcmVnaW9ucyhzLCBlLCBpbml0X2RvbWhl YXBfcGFnZXMsIDApOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNlLmMg Yi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2UuYwppbmRleCA4OTRkYjVjLi44MDYxYzJiIDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2UuYworKysgYi94ZW4vYXJjaC94 ODYvY3B1L21jaGVjay9tY2UuYwpAQCAtMjI2LDcgKzIyNiw3IEBAIHN0YXRpYyB2b2lkIG1jYV9p bml0X2JhbmsoZW51bSBtY2Ffc291cmNlIHdobywKICAgICAgICAgKG1pYi0+bWNfc3RhdHVzICYg TUNpX1NUQVRVU19BRERSVikgJiYKICAgICAgICAgKG1jX2NoZWNrX2FkZHIobWliLT5tY19zdGF0 dXMsIG1pYi0+bWNfbWlzYywgTUNfQUREUl9QSFlTSUNBTCkpICYmCiAgICAgICAgICh3aG8gPT0g TUNBX1BPTExFUiB8fCB3aG8gPT0gTUNBX0NNQ0lfSEFORExFUikgJiYKLSAgICAgICAgKG1mbl92 YWxpZChwYWRkcl90b19wZm4obWliLT5tY19hZGRyKSkpKQorICAgICAgICAobWZuX3ZhbGlkKF9t Zm4ocGFkZHJfdG9fcGZuKG1pYi0+bWNfYWRkcikpKSkpCiAgICAgewogICAgICAgICBzdHJ1Y3Qg ZG9tYWluICpkOwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay92bWNlLmMg Yi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay92bWNlLmMKaW5kZXggNWYwMDJlMy4uZTY5ZWVhYSAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svdm1jZS5jCisrKyBiL3hlbi9hcmNo L3g4Ni9jcHUvbWNoZWNrL3ZtY2UuYwpAQCAtNDM2LDcgKzQzNiw3IEBAIGludCB1bm1tYXBfYnJv a2VuX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgbWZuX3QgbWZuLCB1bnNpZ25lZCBsb25nIGdmbikK ICAgICBpZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihkKSApCiAgICAgICAgIHJldHVybiAwOwogCi0g ICAgaWYgKCFtZm5fdmFsaWQobWZuX3gobWZuKSkpCisgICAgaWYgKCAhbWZuX3ZhbGlkKG1mbikg KQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAogICAgIGlmICggIWhhc19odm1fY29udGFpbmVy X2RvbWFpbihkKSB8fCAhcGFnaW5nX21vZGVfaGFwKGQpICkKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9jcHUvdnBtdS5jIGIveGVuL2FyY2gveDg2L2NwdS92cG11LmMKaW5kZXggYjI3MWMyYy4u Yzg2MTVlOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS92cG11LmMKKysrIGIveGVuL2Fy Y2gveDg2L2NwdS92cG11LmMKQEAgLTYzNCw3ICs2MzQsNyBAQCBzdGF0aWMgdm9pZCBwdnBtdV9m aW5pc2goc3RydWN0IGRvbWFpbiAqZCwgeGVuX3BtdV9wYXJhbXNfdCAqcGFyYW1zKQogICAgIGlm ICggeGVucG11X2RhdGEgKQogICAgIHsKICAgICAgICAgbWZuID0gZG9tYWluX3BhZ2VfbWFwX3Rv X21mbih4ZW5wbXVfZGF0YSk7Ci0gICAgICAgIEFTU0VSVChtZm5fdmFsaWQobWZuKSk7CisgICAg ICAgIEFTU0VSVChtZm5fdmFsaWQoX21mbihtZm4pKSk7CiAgICAgICAgIHVubWFwX2RvbWFpbl9w YWdlX2dsb2JhbCh4ZW5wbXVfZGF0YSk7CiAgICAgICAgIHB1dF9wYWdlX2FuZF90eXBlKG1mbl90 b19wYWdlKG1mbikpOwogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kZWJ1Zy5jIGIv eGVuL2FyY2gveDg2L2RlYnVnLmMKaW5kZXggMTNkNGFkNy4uNDk5NTc0ZSAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L2RlYnVnLmMKKysrIGIveGVuL2FyY2gveDg2L2RlYnVnLmMKQEAgLTE1MCw3 ICsxNTAsNyBAQCBkYmdfcHZfdmEybWZuKGRiZ3ZhX3QgdmFkZHIsIHN0cnVjdCBkb21haW4gKmRw LCB1aW50NjRfdCBwZ2QzdmFsKQogICAgIERCR1AyKCJsMXQ6JXAgbDF0bzolbHggbDFlOiVseCBt Zm46JSMiUFJJX21mbiJcbiIsIGwxdCwgbDFfdGFibGVfb2Zmc2V0KHZhZGRyKSwKICAgICAgICAg ICBsMWUsIG1mbl94KG1mbikpOwogCi0gICAgcmV0dXJuIG1mbl92YWxpZChtZm5feChtZm4pKSA/ IG1mbiA6IElOVkFMSURfTUZOOworICAgIHJldHVybiBtZm5fdmFsaWQobWZuKSA/IG1mbiA6IElO VkFMSURfTUZOOwogfQogCiAvKiBSZXR1cm5zOiBudW1iZXIgb2YgYnl0ZXMgcmVtYWluaW5nIHRv IGJlIGNvcGllZCAqLwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWN0bC5jIGIveGVuL2Fy Y2gveDg2L2RvbWN0bC5jCmluZGV4IDNiNWMzYzkuLjM2NDI4M2UgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9kb21jdGwuYworKysgYi94ZW4vYXJjaC94ODYvZG9tY3RsLmMKQEAgLTEyNTAsNyAr MTI1MCw3IEBAIGxvbmcgYXJjaF9kb19kb21jdGwoCiAgICAgICAgIHVuc2lnbmVkIGxvbmcgcGZu ID0gZG9tY3RsLT51LnNldF9icm9rZW5fcGFnZV9wMm0ucGZuOwogICAgICAgICBtZm5fdCBtZm4g PSBnZXRfZ2ZuX3F1ZXJ5KGQsIHBmbiwgJnB0KTsKIAotICAgICAgICBpZiAoIHVubGlrZWx5KCFt Zm5fdmFsaWQobWZuX3gobWZuKSkpIHx8IHVubGlrZWx5KCFwMm1faXNfcmFtKHB0KSkgKQorICAg ICAgICBpZiAoIHVubGlrZWx5KCFtZm5fdmFsaWQobWZuKSkgfHwgdW5saWtlbHkoIXAybV9pc19y YW0ocHQpKSApCiAgICAgICAgICAgICByZXQgPSAtRUlOVkFMOwogICAgICAgICBlbHNlCiAgICAg ICAgICAgICByZXQgPSBwMm1fY2hhbmdlX3R5cGVfb25lKGQsIHBmbiwgcHQsIHAybV9yYW1fYnJv a2VuKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vbXRyci5jIGIveGVuL2FyY2gveDg2 L2h2bS9tdHJyLmMKaW5kZXggODZjNzFiZS4uYzVjMjdjYiAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2h2bS9tdHJyLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9tdHJyLmMKQEAgLTc5Miw3ICs3 OTIsNyBAQCBpbnQgZXB0ZV9nZXRfZW50cnlfZW10KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk IGxvbmcgZ2ZuLCBtZm5fdCBtZm4sCiAgICAgICAgIHJldHVybiBNVFJSX1RZUEVfV1JCQUNLOwog ICAgIH0KIAotICAgIGlmICggIW1mbl92YWxpZChtZm5feChtZm4pKSApCisgICAgaWYgKCAhbWZu X3ZhbGlkKG1mbikgKQogICAgIHsKICAgICAgICAgKmlwYXQgPSAxOwogICAgICAgICByZXR1cm4g TVRSUl9UWVBFX1VOQ0FDSEFCTEU7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0uYyBiL3hl bi9hcmNoL3g4Ni9tbS5jCmluZGV4IDc1YmRiYzMuLmNmYTg4YjAgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS5jCkBAIC0zNDUsNyArMzQ1LDcgQEAg dm9pZCBfX2luaXQgYXJjaF9pbml0X21lbW9yeSh2b2lkKQogICAgICAgICAvKiBNYXJrIGFzIEkv TyB1cCB0byBuZXh0IFJBTSByZWdpb24uICovCiAgICAgICAgIGZvciAoIDsgcGZuIDwgcnN0YXJ0 X3BmbjsgcGZuKysgKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoICFtZm5fdmFsaWQocGZu KSApCisgICAgICAgICAgICBpZiAoICFtZm5fdmFsaWQoX21mbihwZm4pKSApCiAgICAgICAgICAg ICAgICAgY29udGludWU7CiAgICAgICAgICAgICBzaGFyZV94ZW5fcGFnZV93aXRoX2d1ZXN0KAog ICAgICAgICAgICAgICAgIG1mbl90b19wYWdlKHBmbiksIGRvbV9pbywgWEVOU0hBUkVfd3JpdGFi bGUpOwpAQCAtNjg5LDcgKzY4OSw3IEBAIHN0YXRpYyBpbnQgZ2V0X3BhZ2VfZnJvbV9wYWdlbnIo dW5zaWduZWQgbG9uZyBwYWdlX25yLCBzdHJ1Y3QgZG9tYWluICpkKQogewogICAgIHN0cnVjdCBw YWdlX2luZm8gKnBhZ2UgPSBtZm5fdG9fcGFnZShwYWdlX25yKTsKIAotICAgIGlmICggdW5saWtl bHkoIW1mbl92YWxpZChwYWdlX25yKSkgfHwgdW5saWtlbHkoIWdldF9wYWdlKHBhZ2UsIGQpKSAp CisgICAgaWYgKCB1bmxpa2VseSghbWZuX3ZhbGlkKF9tZm4ocGFnZV9ucikpKSB8fCB1bmxpa2Vs eSghZ2V0X3BhZ2UocGFnZSwgZCkpICkKICAgICB7CiAgICAgICAgIE1FTV9MT0coIkNvdWxkIG5v dCBnZXQgcGFnZSByZWYgZm9yIHBmbiAlbHgiLCBwYWdlX25yKTsKICAgICAgICAgcmV0dXJuIDA7 CkBAIC03OTIsNyArNzkyLDcgQEAgYm9vbCBpc19pb21lbV9wYWdlKG1mbl90IG1mbikKIHsKICAg ICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlOwogCi0gICAgaWYgKCAhbWZuX3ZhbGlkKG1mbl94KG1m bikpICkKKyAgICBpZiAoICFtZm5fdmFsaWQobWZuKSApCiAgICAgICAgIHJldHVybiB0cnVlOwog CiAgICAgLyogQ2FsbGVyIG11c3Qga25vdyB0aGF0IGl0IGlzIGFuIGlvbWVtIHBhZ2UsIG9yIGEg cmVmZXJlbmNlIGlzIGhlbGQuICovCkBAIC04ODAsMTMgKzg4MCwxMyBAQCBnZXRfcGFnZV9mcm9t X2wxZSgKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgfQogCi0gICAgaWYgKCAhbWZuX3Zh bGlkKG1mbikgfHwKKyAgICBpZiAoICFtZm5fdmFsaWQoX21mbihtZm4pKSB8fAogICAgICAgICAg KHJlYWxfcGdfb3duZXIgPSBwYWdlX2dldF9vd25lcl9hbmRfcmVmZXJlbmNlKHBhZ2UpKSA9PSBk b21faW8gKQogICAgIHsKICAgICAgICAgaW50IGZsaXAgPSAwOwogCiAgICAgICAgIC8qIE9ubHkg bmVlZGVkIHRoZSByZWZlcmVuY2UgdG8gY29uZmlybSBkb21faW8gb3duZXJzaGlwLiAqLwotICAg ICAgICBpZiAoIG1mbl92YWxpZChtZm4pICkKKyAgICAgICAgaWYgKCBtZm5fdmFsaWQoX21mbiht Zm4pKSApCiAgICAgICAgICAgICBwdXRfcGFnZShwYWdlKTsKIAogICAgICAgICAvKiBET01JRF9J TyByZXZlcnRzIHRvIGNhbGxlciBmb3IgcHJpdmlsZWdlIGNoZWNrcy4gKi8KQEAgLTI3NjQsNyAr Mjc2NCw3IEBAIGludCBnZXRfc3VwZXJwYWdlKHVuc2lnbmVkIGxvbmcgbWZuLCBzdHJ1Y3QgZG9t YWluICpkKQogCiAgICAgQVNTRVJUKG9wdF9hbGxvd19zdXBlcnBhZ2UpOwogCi0gICAgaWYgKCAh bWZuX3ZhbGlkKG1mbiB8IChMMV9QQUdFVEFCTEVfRU5UUklFUyAtIDEpKSApCisgICAgaWYgKCAh bWZuX3ZhbGlkKF9tZm4obWZuIHwgKEwxX1BBR0VUQUJMRV9FTlRSSUVTIC0gMSkpKSApCiAgICAg ICAgIHJldHVybiAtRUlOVkFMOwogCiAgICAgc3BhZ2UgPSBtZm5fdG9fc3BhZ2UobWZuKTsKQEAg LTM1NzksNyArMzU3OSw3IEBAIGxvbmcgZG9fbW11ZXh0X29wKAogICAgICAgICAgICAgICAgIE1F TV9MT0coIlVuYWxpZ25lZCBzdXBlcnBhZ2UgcmVmZXJlbmNlIG1mbiAlbHgiLCBtZm4pOwogICAg ICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVs c2UgaWYgKCAhbWZuX3ZhbGlkKG1mbiB8IChMMV9QQUdFVEFCTEVfRU5UUklFUyAtIDEpKSApCisg ICAgICAgICAgICBlbHNlIGlmICggIW1mbl92YWxpZChfbWZuKG1mbiB8IChMMV9QQUdFVEFCTEVf RU5UUklFUyAtIDEpKSkgKQogICAgICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKICAgICAgICAg ICAgIGVsc2UgaWYgKCBvcC5jbWQgPT0gTU1VRVhUX01BUktfU1VQRVIgKQogICAgICAgICAgICAg ICAgIHJjID0gbWFya19zdXBlcnBhZ2UobWZuX3RvX3NwYWdlKG1mbiksIGQpOwpAQCAtNDg2NSw3 ICs0ODY1LDcgQEAgaW50IHhlbm1lbV9hZGRfdG9fcGh5c21hcF9vbmUoCiAKICAgICAvKiBSZW1v dmUgcHJldmlvdXNseSBtYXBwZWQgcGFnZSBpZiBpdCB3YXMgcHJlc2VudC4gKi8KICAgICBwcmV2 X21mbiA9IG1mbl94KGdldF9nZm4oZCwgZ2ZuX3goZ3BmbiksICZwMm10KSk7Ci0gICAgaWYgKCBt Zm5fdmFsaWQocHJldl9tZm4pICkKKyAgICBpZiAoIG1mbl92YWxpZChfbWZuKHByZXZfbWZuKSkg KQogICAgIHsKICAgICAgICAgaWYgKCBpc194ZW5faGVhcF9tZm4ocHJldl9tZm4pICkKICAgICAg ICAgICAgIC8qIFhlbiBoZWFwIGZyYW1lcyBhcmUgc2ltcGx5IHVuaG9va2VkIGZyb20gdGhpcyBw aHlzIHNsb3QuICovCkBAIC01MjE1LDcgKzUyMTUsNyBAQCBzdGF0aWMgaW50IHB0d3JfZW11bGF0 ZWRfdXBkYXRlKAogCiAgICAgLyogV2UgYXJlIGxvb2tpbmcgb25seSBmb3IgcmVhZC1vbmx5IG1h cHBpbmdzIG9mIHAudC4gcGFnZXMuICovCiAgICAgQVNTRVJUKChsMWVfZ2V0X2ZsYWdzKHB0ZSkg JiAoX1BBR0VfUld8X1BBR0VfUFJFU0VOVCkpID09IF9QQUdFX1BSRVNFTlQpOwotICAgIEFTU0VS VChtZm5fdmFsaWQobWZuKSk7CisgICAgQVNTRVJUKG1mbl92YWxpZChfbWZuKG1mbikpKTsKICAg ICBBU1NFUlQoKHBhZ2UtPnUuaW51c2UudHlwZV9pbmZvICYgUEdUX3R5cGVfbWFzaykgPT0gUEdU X2wxX3BhZ2VfdGFibGUpOwogICAgIEFTU0VSVCgocGFnZS0+dS5pbnVzZS50eXBlX2luZm8gJiBQ R1RfY291bnRfbWFzaykgIT0gMCk7CiAgICAgQVNTRVJUKHBhZ2VfZ2V0X293bmVyKHBhZ2UpID09 IGQpOwpAQCAtNTUzOSw3ICs1NTM5LDcgQEAgaW50IG1taW9fcm9fZG9fcGFnZV9mYXVsdChzdHJ1 Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyBhZGRyLAogICAgICAgICByZXR1cm4gMDsKIAogICAg IG1mbiA9IGwxZV9nZXRfcGZuKHB0ZSk7Ci0gICAgaWYgKCBtZm5fdmFsaWQobWZuKSApCisgICAg aWYgKCBtZm5fdmFsaWQoX21mbihtZm4pKSApCiAgICAgewogICAgICAgICBzdHJ1Y3QgcGFnZV9p bmZvICpwYWdlID0gbWZuX3RvX3BhZ2UobWZuKTsKICAgICAgICAgc3RydWN0IGRvbWFpbiAqb3du ZXIgPSBwYWdlX2dldF9vd25lcl9hbmRfcmVmZXJlbmNlKHBhZ2UpOwpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L21tL2hhcC9ndWVzdF93YWxrLmMgYi94ZW4vYXJjaC94ODYvbW0vaGFwL2d1ZXN0 X3dhbGsuYwppbmRleCBiMzhiODUxLi41NjlhNDk1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv bW0vaGFwL2d1ZXN0X3dhbGsuYworKysgYi94ZW4vYXJjaC94ODYvbW0vaGFwL2d1ZXN0X3dhbGsu YwpAQCAtODYsNyArODYsNyBAQCB1bnNpZ25lZCBsb25nIGhhcF9wMm1fZ2FfdG9fZ2ZuKEdVRVNU X1BBR0lOR19MRVZFTFMpKAogICAgIHRvcF9tZm4gPSBfbWZuKHBhZ2VfdG9fbWZuKHRvcF9wYWdl KSk7CiAKICAgICAvKiBNYXAgdGhlIHRvcC1sZXZlbCB0YWJsZSBhbmQgY2FsbCB0aGUgdHJlZS13 YWxrZXIgKi8KLSAgICBBU1NFUlQobWZuX3ZhbGlkKG1mbl94KHRvcF9tZm4pKSk7CisgICAgQVNT RVJUKG1mbl92YWxpZCh0b3BfbWZuKSk7CiAgICAgdG9wX21hcCA9IG1hcF9kb21haW5fcGFnZSh0 b3BfbWZuKTsKICNpZiBHVUVTVF9QQUdJTkdfTEVWRUxTID09IDMKICAgICB0b3BfbWFwICs9IChj cjMgJiB+KFBBR0VfTUFTSyB8IDMxKSk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vaGFw L2hhcC5jIGIveGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYwppbmRleCBiNTg3MGJmLi45ZTU4Mzkz IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9tbS9oYXAvaGFwLmMKQEAgLTQ1LDggKzQ1LDYgQEAKIC8qIE92ZXJyaWRlIG1hY3JvcyBmcm9t IGFzbS9wYWdlLmggdG8gbWFrZSB0aGVtIHdvcmsgd2l0aCBtZm5fdCAqLwogI3VuZGVmIG1mbl90 b19wYWdlCiAjZGVmaW5lIG1mbl90b19wYWdlKF9tKSBfX21mbl90b19wYWdlKG1mbl94KF9tKSkK LSN1bmRlZiBtZm5fdmFsaWQKLSNkZWZpbmUgbWZuX3ZhbGlkKF9tZm4pIF9fbWZuX3ZhbGlkKG1m bl94KF9tZm4pKQogI3VuZGVmIHBhZ2VfdG9fbWZuCiAjZGVmaW5lIHBhZ2VfdG9fbWZuKF9wZykg X21mbihfX3BhZ2VfdG9fbWZuKF9wZykpCiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9o YXAvbmVzdGVkX2hhcC5jIGIveGVuL2FyY2gveDg2L21tL2hhcC9uZXN0ZWRfaGFwLmMKaW5kZXgg ZDQxYmIwOS4uMTYyYWZlZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL2hhcC9uZXN0ZWRf aGFwLmMKKysrIGIveGVuL2FyY2gveDg2L21tL2hhcC9uZXN0ZWRfaGFwLmMKQEAgLTcxLDggKzcx LDYgQEAKIC8qICAgICAgICBORVNURUQgVklSVCBQMk0gRlVOQ1RJT05TICAgICAgICAgKi8KIC8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIE92ZXJyaWRl IG1hY3JvcyBmcm9tIGFzbS9wYWdlLmggdG8gbWFrZSB0aGVtIHdvcmsgd2l0aCBtZm5fdCAqLwot I3VuZGVmIG1mbl92YWxpZAotI2RlZmluZSBtZm5fdmFsaWQoX21mbikgX19tZm5fdmFsaWQobWZu X3goX21mbikpCiAjdW5kZWYgcGFnZV90b19tZm4KICNkZWZpbmUgcGFnZV90b19tZm4oX3BnKSBf bWZuKF9fcGFnZV90b19tZm4oX3BnKSkKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL21l bV9hY2Nlc3MuYyBiL3hlbi9hcmNoL3g4Ni9tbS9tZW1fYWNjZXNzLmMKaW5kZXggMzRhOTk0ZC4u M2ViZWI0ZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL21lbV9hY2Nlc3MuYworKysgYi94 ZW4vYXJjaC94ODYvbW0vbWVtX2FjY2Vzcy5jCkBAIC0xOTYsMTQgKzE5NiwxNCBAQCBpbnQgcDJt X3NldF9hbHRwMm1fbWVtX2FjY2VzcyhzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgcDJtX2RvbWFp biAqaHAybSwKICAgICBtZm4gPSBhcDJtLT5nZXRfZW50cnkoYXAybSwgZ2ZuX2wsICZ0LCAmb2xk X2EsIDAsIE5VTEwsIE5VTEwpOwogCiAgICAgLyogQ2hlY2sgaG9zdCBwMm0gaWYgbm8gdmFsaWQg ZW50cnkgaW4gYWx0ZXJuYXRlICovCi0gICAgaWYgKCAhbWZuX3ZhbGlkKG1mbl94KG1mbikpICkK KyAgICBpZiAoICFtZm5fdmFsaWQobWZuKSApCiAgICAgewogCiAgICAgICAgIG1mbiA9IF9fZ2V0 X2dmbl90eXBlX2FjY2VzcyhocDJtLCBnZm5fbCwgJnQsICZvbGRfYSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFAyTV9BTExPQyB8IFAyTV9VTlNIQVJFLCAmcGFnZV9vcmRl ciwgMCk7CiAKICAgICAgICAgcmMgPSAtRVNSQ0g7Ci0gICAgICAgIGlmICggIW1mbl92YWxpZCht Zm5feChtZm4pKSB8fCB0ICE9IHAybV9yYW1fcncgKQorICAgICAgICBpZiAoICFtZm5fdmFsaWQo bWZuKSB8fCB0ICE9IHAybV9yYW1fcncgKQogICAgICAgICAgICAgcmV0dXJuIHJjOwogCiAgICAg ICAgIC8qIElmIHRoaXMgaXMgYSBzdXBlcnBhZ2UsIGNvcHkgdGhhdCBmaXJzdCAqLwpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L21tL21lbV9zaGFyaW5nLmMgYi94ZW4vYXJjaC94ODYvbW0vbWVt X3NoYXJpbmcuYwppbmRleCBkYjdmMzg5Li44NGZjZTE4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvbW0vbWVtX3NoYXJpbmcuYworKysgYi94ZW4vYXJjaC94ODYvbW0vbWVtX3NoYXJpbmcuYwpA QCAtMTU0LDggKzE1NCw2IEBAIHN0YXRpYyBpbmxpbmUgc2hyX2hhbmRsZV90IGdldF9uZXh0X2hh bmRsZSh2b2lkKQogCiAjdW5kZWYgbWZuX3RvX3BhZ2UKICNkZWZpbmUgbWZuX3RvX3BhZ2UoX20p IF9fbWZuX3RvX3BhZ2UobWZuX3goX20pKQotI3VuZGVmIG1mbl92YWxpZAotI2RlZmluZSBtZm5f dmFsaWQoX21mbikgX19tZm5fdmFsaWQobWZuX3goX21mbikpCiAjdW5kZWYgcGFnZV90b19tZm4K ICNkZWZpbmUgcGFnZV90b19tZm4oX3BnKSBfbWZuKF9fcGFnZV90b19tZm4oX3BnKSkKIApAQCAt ODI3LDcgKzgyNSw3IEBAIHN0YXRpYyBpbnQgbm9taW5hdGVfcGFnZShzdHJ1Y3QgZG9tYWluICpk LCBnZm5fdCBnZm4sCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIGFt Zm4gPSBnZXRfZ2ZuX3R5cGVfYWNjZXNzKGFwMm0sIGdmbl94KGdmbiksICZhcDJtdCwgJmFwMm1h LCAwLCBOVUxMKTsKLSAgICAgICAgICAgIGlmICggbWZuX3ZhbGlkKGFtZm4pICYmIChtZm5feChh bWZuKSAhPSBtZm5feChtZm4pIHx8IGFwMm1hICE9IHAybWEpICkKKyAgICAgICAgICAgIGlmICgg bWZuX3ZhbGlkKGFtZm4pICYmICghbWZuX2VxKGFtZm4sIG1mbikgfHwgYXAybWEgIT0gcDJtYSkg KQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGFsdHAybV9saXN0X3VubG9jayhkKTsK ICAgICAgICAgICAgICAgICBnb3RvIG91dDsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9w Mm0tZXB0LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCmluZGV4IGVhNjE0YjAuLjU2ODk0 NGYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKKysrIGIveGVuL2FyY2gv eDg2L21tL3AybS1lcHQuYwpAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMgaW50IGF0b21pY193cml0 ZV9lcHRfZW50cnkoZXB0X2VudHJ5X3QgKmVudHJ5cHRyLCBlcHRfZW50cnlfdCBuZXcsCiAgICAg ICAgIHsKICAgICAgICAgICAgIHN0cnVjdCBkb21haW4gKmZkb207CiAKLSAgICAgICAgICAgIGlm ICggIW1mbl92YWxpZChuZXcubWZuKSApCisgICAgICAgICAgICBpZiAoICFtZm5fdmFsaWQoX21m bihuZXcubWZuKSkgKQogICAgICAgICAgICAgICAgIGdvdG8gb3V0OwogCiAgICAgICAgICAgICBy YyA9IC1FU1JDSDsKQEAgLTc3Niw3ICs3NzYsNyBAQCBlcHRfc2V0X2VudHJ5KHN0cnVjdCBwMm1f ZG9tYWluICpwMm0sIHVuc2lnbmVkIGxvbmcgZ2ZuLCBtZm5fdCBtZm4sCiAgICAgICAgIGVwdF9l bnRyeSA9IHRhYmxlICsgKGdmbl9yZW1haW5kZXIgPj4gKGkgKiBFUFRfVEFCTEVfT1JERVIpKTsK ICAgICB9CiAKLSAgICBpZiAoIG1mbl92YWxpZChtZm5feChtZm4pKSB8fCBwMm1fYWxsb3dzX2lu dmFsaWRfbWZuKHAybXQpICkKKyAgICBpZiAoIG1mbl92YWxpZChtZm4pIHx8IHAybV9hbGxvd3Nf aW52YWxpZF9tZm4ocDJtdCkgKQogICAgIHsKICAgICAgICAgaW50IGVtdCA9IGVwdGVfZ2V0X2Vu dHJ5X2VtdChwMm0tPmRvbWFpbiwgZ2ZuLCBtZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaSAqIEVQVF9UQUJMRV9PUkRFUiwgJmlwYXQsIGRpcmVjdF9tbWlvKTsKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcG9kLmMgYi94ZW4vYXJjaC94ODYvbW0vcDJt LXBvZC5jCmluZGV4IDM2N2VlMDAuLmQ1ZmVhNzIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9t bS9wMm0tcG9kLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1wb2QuYwpAQCAtMzcsOCArMzcs NiBAQAogLyogT3ZlcnJpZGUgbWFjcm9zIGZyb20gYXNtL3BhZ2UuaCB0byBtYWtlIHRoZW0gd29y ayB3aXRoIG1mbl90ICovCiAjdW5kZWYgbWZuX3RvX3BhZ2UKICNkZWZpbmUgbWZuX3RvX3BhZ2Uo X20pIF9fbWZuX3RvX3BhZ2UobWZuX3goX20pKQotI3VuZGVmIG1mbl92YWxpZAotI2RlZmluZSBt Zm5fdmFsaWQoX21mbikgX19tZm5fdmFsaWQobWZuX3goX21mbikpCiAjdW5kZWYgcGFnZV90b19t Zm4KICNkZWZpbmUgcGFnZV90b19tZm4oX3BnKSBfbWZuKF9fcGFnZV90b19tZm4oX3BnKSkKIApk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS1wdC5jIGIveGVuL2FyY2gveDg2L21tL3Ay bS1wdC5jCmluZGV4IGEyM2QwYmQuLmJiZmE1NGUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9t bS9wMm0tcHQuYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMKQEAgLTQyLDggKzQyLDYg QEAKIC8qIE92ZXJyaWRlIG1hY3JvcyBmcm9tIGFzbS9wYWdlLmggdG8gbWFrZSB0aGVtIHdvcmsg d2l0aCBtZm5fdCAqLwogI3VuZGVmIG1mbl90b19wYWdlCiAjZGVmaW5lIG1mbl90b19wYWdlKF9t KSBfX21mbl90b19wYWdlKG1mbl94KF9tKSkKLSN1bmRlZiBtZm5fdmFsaWQKLSNkZWZpbmUgbWZu X3ZhbGlkKF9tZm4pIF9fbWZuX3ZhbGlkKG1mbl94KF9tZm4pKQogI3VuZGVmIHBhZ2VfdG9fbWZu CiAjZGVmaW5lIHBhZ2VfdG9fbWZuKF9wZykgX21mbihfX3BhZ2VfdG9fbWZuKF9wZykpCiAKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwpp bmRleCAwYzE4MjBlLi5iNTNjZWUzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMK KysrIGIveGVuL2FyY2gveDg2L21tL3AybS5jCkBAIC01MCw4ICs1MCw2IEBAIGJvb2xlYW5fcGFy YW0oImhhcF8ybWIiLCBvcHRfaGFwXzJtYik7CiAvKiBPdmVycmlkZSBtYWNyb3MgZnJvbSBhc20v cGFnZS5oIHRvIG1ha2UgdGhlbSB3b3JrIHdpdGggbWZuX3QgKi8KICN1bmRlZiBtZm5fdG9fcGFn ZQogI2RlZmluZSBtZm5fdG9fcGFnZShfbSkgX19tZm5fdG9fcGFnZShtZm5feChfbSkpCi0jdW5k ZWYgbWZuX3ZhbGlkCi0jZGVmaW5lIG1mbl92YWxpZChfbWZuKSBfX21mbl92YWxpZChtZm5feChf bWZuKSkKICN1bmRlZiBwYWdlX3RvX21mbgogI2RlZmluZSBwYWdlX3RvX21mbihfcGcpIF9tZm4o X19wYWdlX3RvX21mbihfcGcpKQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcGFnaW5n LmMgYi94ZW4vYXJjaC94ODYvbW0vcGFnaW5nLmMKaW5kZXggZDk2NGVkNS4uOTdlMjc4MCAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3BhZ2luZy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9w YWdpbmcuYwpAQCAtNTAsOCArNTAsNiBAQCBERUZJTkVfUEVSX0NQVShpbnQsIG1tX2xvY2tfbGV2 ZWwpOwogLyogT3ZlcnJpZGUgbWFjcm9zIGZyb20gYXNtL3BhZ2UuaCB0byBtYWtlIHRoZW0gd29y ayB3aXRoIG1mbl90ICovCiAjdW5kZWYgbWZuX3RvX3BhZ2UKICNkZWZpbmUgbWZuX3RvX3BhZ2Uo X20pIF9fbWZuX3RvX3BhZ2UobWZuX3goX20pKQotI3VuZGVmIG1mbl92YWxpZAotI2RlZmluZSBt Zm5fdmFsaWQoX21mbikgX19tZm5fdmFsaWQobWZuX3goX21mbikpCiAjdW5kZWYgcGFnZV90b19t Zm4KICNkZWZpbmUgcGFnZV90b19tZm4oX3BnKSBfbWZuKF9fcGFnZV90b19tZm4oX3BnKSkKIApk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9wcml2YXRlLmggYi94ZW4vYXJjaC94 ODYvbW0vc2hhZG93L3ByaXZhdGUuaAppbmRleCBmMGIwZWQ0Li40NzI2NzZjIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L3ByaXZhdGUuaAorKysgYi94ZW4vYXJjaC94ODYvbW0v c2hhZG93L3ByaXZhdGUuaApAQCAtNDY5LDggKzQ2OSw2IEBAIHZvaWQgc2hfcmVzZXRfbDNfdXBf cG9pbnRlcnMoc3RydWN0IHZjcHUgKnYpOwogLyogT3ZlcnJpZGUgbWFjcm9zIGZyb20gYXNtL3Bh Z2UuaCB0byBtYWtlIHRoZW0gd29yayB3aXRoIG1mbl90ICovCiAjdW5kZWYgbWZuX3RvX3BhZ2UK ICNkZWZpbmUgbWZuX3RvX3BhZ2UoX20pIF9fbWZuX3RvX3BhZ2UobWZuX3goX20pKQotI3VuZGVm IG1mbl92YWxpZAotI2RlZmluZSBtZm5fdmFsaWQoX21mbikgX19tZm5fdmFsaWQobWZuX3goX21m bikpCiAjdW5kZWYgcGFnZV90b19tZm4KICNkZWZpbmUgcGFnZV90b19tZm4oX3BnKSBfbWZuKF9f cGFnZV90b19tZm4oX3BnKSkKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3Rib290LmMgYi94 ZW4vYXJjaC94ODYvdGJvb3QuYwppbmRleCA0YTU3M2IwLi5lYWMxODJkIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvdGJvb3QuYworKysgYi94ZW4vYXJjaC94ODYvdGJvb3QuYwpAQCAtMTg3LDcg KzE4Nyw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9wYWdldGFibGVfbWFjKHZtYWNfY3R4X3QgKmN0 eCkKICAgICB7CiAgICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UgPSBtZm5fdG9fcGFnZSht Zm4pOwogCi0gICAgICAgIGlmICggIW1mbl92YWxpZChtZm4pICkKKyAgICAgICAgaWYgKCAhbWZu X3ZhbGlkKF9tZm4obWZuKSkgKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmICgg aXNfcGFnZV9pbl91c2UocGFnZSkgJiYgIWlzX3hlbl9oZWFwX3BhZ2UocGFnZSkgKQogICAgICAg ICB7CkBAIC0yNzksNyArMjc5LDcgQEAgc3RhdGljIHZvaWQgdGJvb3RfZ2VuX3hlbmhlYXBfaW50 ZWdyaXR5KGNvbnN0IHVpbnQ4X3Qga2V5W1RCX0tFWV9TSVpFXSwKICAgICB7CiAgICAgICAgIHN0 cnVjdCBwYWdlX2luZm8gKnBhZ2UgPSBfX21mbl90b19wYWdlKG1mbik7CiAKLSAgICAgICAgaWYg KCAhbWZuX3ZhbGlkKG1mbikgKQorICAgICAgICBpZiAoICFtZm5fdmFsaWQoX21mbihtZm4pKSAp CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKCAobWZuIDw8IFBBR0VfU0hJRlQp IDwgX19wYSgmX2VuZCkgKQogICAgICAgICAgICAgY29udGludWU7IC8qIHNraXAgWGVuICovCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMgYi94ZW4vYXJjaC94ODYveDg2XzY0 L21tLmMKaW5kZXggOWVhZDAyZS4uNjhjMmE5ZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4 Nl82NC9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYwpAQCAtNjUsNyArNjUsNyBA QCB2b2lkICpkb19wYWdlX3dhbGsoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGxvbmcgYWRkcikK ICAgICBsM2UgPSBsM3RbbDNfdGFibGVfb2Zmc2V0KGFkZHIpXTsKICAgICB1bm1hcF9kb21haW5f cGFnZShsM3QpOwogICAgIG1mbiA9IGwzZV9nZXRfcGZuKGwzZSk7Ci0gICAgaWYgKCAhKGwzZV9n ZXRfZmxhZ3MobDNlKSAmIF9QQUdFX1BSRVNFTlQpIHx8ICFtZm5fdmFsaWQobWZuKSApCisgICAg aWYgKCAhKGwzZV9nZXRfZmxhZ3MobDNlKSAmIF9QQUdFX1BSRVNFTlQpIHx8ICFtZm5fdmFsaWQo X21mbihtZm4pKSApCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIGlmICggKGwzZV9nZXRfZmxh Z3MobDNlKSAmIF9QQUdFX1BTRSkgKQogICAgIHsKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCAqZG9f cGFnZV93YWxrKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25nIGFkZHIpCiAgICAgbDJlID0g bDJ0W2wyX3RhYmxlX29mZnNldChhZGRyKV07CiAgICAgdW5tYXBfZG9tYWluX3BhZ2UobDJ0KTsK ICAgICBtZm4gPSBsMmVfZ2V0X3BmbihsMmUpOwotICAgIGlmICggIShsMmVfZ2V0X2ZsYWdzKGwy ZSkgJiBfUEFHRV9QUkVTRU5UKSB8fCAhbWZuX3ZhbGlkKG1mbikgKQorICAgIGlmICggIShsMmVf Z2V0X2ZsYWdzKGwyZSkgJiBfUEFHRV9QUkVTRU5UKSB8fCAhbWZuX3ZhbGlkKF9tZm4obWZuKSkg KQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBpZiAoIChsMmVfZ2V0X2ZsYWdzKGwyZSkgJiBf UEFHRV9QU0UpICkKICAgICB7CkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgKmRvX3BhZ2Vfd2Fsayhz dHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyBhZGRyKQogICAgIGwxZSA9IGwxdFtsMV90YWJs ZV9vZmZzZXQoYWRkcildOwogICAgIHVubWFwX2RvbWFpbl9wYWdlKGwxdCk7CiAgICAgbWZuID0g bDFlX2dldF9wZm4obDFlKTsKLSAgICBpZiAoICEobDFlX2dldF9mbGFncyhsMWUpICYgX1BBR0Vf UFJFU0VOVCkgfHwgIW1mbl92YWxpZChtZm4pICkKKyAgICBpZiAoICEobDFlX2dldF9mbGFncyhs MWUpICYgX1BBR0VfUFJFU0VOVCkgfHwgIW1mbl92YWxpZChfbWZuKG1mbikpICkKICAgICAgICAg cmV0dXJuIE5VTEw7CiAKICByZXQ6CkBAIC0zNjYsNyArMzY2LDcgQEAgc3RhdGljIGludCBzZXR1 cF9jb21wYXRfbTJwX3RhYmxlKHN0cnVjdCBtZW1faG90YWRkX2luZm8gKmluZm8pCiAgICAgICAg ICAgICBjb250aW51ZTsKIAogICAgICAgICBmb3IgKCBuID0gMDsgbiA8IENOVDsgKytuKQotICAg ICAgICAgICAgaWYgKCBtZm5fdmFsaWQoaSArIG4gKiBQRFhfR1JPVVBfQ09VTlQpICkKKyAgICAg ICAgICAgIGlmICggbWZuX3ZhbGlkKF9tZm4oaSArIG4gKiBQRFhfR1JPVVBfQ09VTlQpKSApCiAg ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGlmICggbiA9PSBDTlQgKQogICAgICAgICAg ICAgY29udGludWU7CkBAIC00MzYsNyArNDM2LDcgQEAgc3RhdGljIGludCBzZXR1cF9tMnBfdGFi bGUoc3RydWN0IG1lbV9ob3RhZGRfaW5mbyAqaW5mbykKICAgICAgICAgdmEgPSBST19NUFRfVklS VF9TVEFSVCArIGkgKiBzaXplb2YoKm1hY2hpbmVfdG9fcGh5c19tYXBwaW5nKTsKIAogICAgICAg ICBmb3IgKCBuID0gMDsgbiA8IENOVDsgKytuKQotICAgICAgICAgICAgaWYgKCBtZm5fdmFsaWQo aSArIG4gKiBQRFhfR1JPVVBfQ09VTlQpICkKKyAgICAgICAgICAgIGlmICggbWZuX3ZhbGlkKF9t Zm4oaSArIG4gKiBQRFhfR1JPVVBfQ09VTlQpKSApCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg ICAgICAgIGlmICggbiA8IENOVCApCiAgICAgICAgIHsKQEAgLTU1NCw3ICs1NTQsNyBAQCB2b2lk IF9faW5pdCBwYWdpbmdfaW5pdCh2b2lkKQogICAgICAgICAgICAgZm9yICggaG9sZXMgPSBrID0g MDsgayA8IDEgPDwgUEFHRVRBQkxFX09SREVSOyArK2spCiAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgZm9yICggbiA9IDA7IG4gPCBDTlQ7ICsrbikKLSAgICAgICAgICAgICAgICAgICAg aWYgKCBtZm5fdmFsaWQoTUZOKGkgKyBrKSArIG4gKiBQRFhfR1JPVVBfQ09VTlQpICkKKyAgICAg ICAgICAgICAgICAgICAgaWYgKCBtZm5fdmFsaWQoX21mbihNRk4oaSArIGspICsgbiAqIFBEWF9H Uk9VUF9DT1VOVCkpICkKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg ICAgICAgIGlmICggbiA9PSBDTlQgKQogICAgICAgICAgICAgICAgICAgICArK2hvbGVzOwpAQCAt NTg3LDcgKzU4Nyw3IEBAIHZvaWQgX19pbml0IHBhZ2luZ19pbml0KHZvaWQpCiAgICAgICAgIH0K IAogICAgICAgICBmb3IgKCBuID0gMDsgbiA8IENOVDsgKytuKQotICAgICAgICAgICAgaWYgKCBt Zm5fdmFsaWQoTUZOKGkpICsgbiAqIFBEWF9HUk9VUF9DT1VOVCkgKQorICAgICAgICAgICAgaWYg KCBtZm5fdmFsaWQoX21mbihNRk4oaSkgKyBuICogUERYX0dST1VQX0NPVU5UKSkgKQogICAgICAg ICAgICAgICAgIGJyZWFrOwogICAgICAgICBpZiAoIG4gPT0gQ05UICkKICAgICAgICAgICAgIGwx X3BnID0gTlVMTDsKQEAgLTY1Myw3ICs2NTMsNyBAQCB2b2lkIF9faW5pdCBwYWdpbmdfaW5pdCh2 b2lkKQogICAgICAgICBtZW1mbGFncyA9IE1FTUZfbm9kZShwaHlzX3RvX25pZChpIDw8CiAgICAg ICAgICAgICAoTDJfUEFHRVRBQkxFX1NISUZUIC0gMiArIFBBR0VfU0hJRlQpKSk7CiAgICAgICAg IGZvciAoIG4gPSAwOyBuIDwgQ05UOyArK24pCi0gICAgICAgICAgICBpZiAoIG1mbl92YWxpZChN Rk4oaSkgKyBuICogUERYX0dST1VQX0NPVU5UKSApCisgICAgICAgICAgICBpZiAoIG1mbl92YWxp ZChfbWZuKE1GTihpKSArIG4gKiBQRFhfR1JPVVBfQ09VTlQpKSApCiAgICAgICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgIGlmICggbiA9PSBDTlQgKQogICAgICAgICAgICAgY29udGludWU7CmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0L3RyYXBzLmMgYi94ZW4vYXJjaC94ODYveDg2 XzY0L3RyYXBzLmMKaW5kZXggOGQ1ZjkwMS4uZWFiNzc1OCAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L3g4Nl82NC90cmFwcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvdHJhcHMuYwpAQCAt MTc5LDQ3ICsxNzksNDcgQEAgdm9pZCBzaG93X3BhZ2Vfd2Fsayh1bnNpZ25lZCBsb25nIGFkZHIp CiAgICAgbDRlID0gbDR0W2w0X3RhYmxlX29mZnNldChhZGRyKV07CiAgICAgdW5tYXBfZG9tYWlu X3BhZ2UobDR0KTsKICAgICBtZm4gPSBsNGVfZ2V0X3BmbihsNGUpOwotICAgIHBmbiA9IG1mbl92 YWxpZChtZm4pICYmIG1hY2hpbmVfdG9fcGh5c19tYXBwaW5nX3ZhbGlkID8KKyAgICBwZm4gPSBt Zm5fdmFsaWQoX21mbihtZm4pKSAmJiBtYWNoaW5lX3RvX3BoeXNfbWFwcGluZ192YWxpZCA/CiAg ICAgICAgICAgZ2V0X2dwZm5fZnJvbV9tZm4obWZuKSA6IElOVkFMSURfTTJQX0VOVFJZOwogICAg IHByaW50aygiIEw0WzB4JTAzbHhdID0gJSJQUklwdGUiICUwMTZseFxuIiwKICAgICAgICAgICAg bDRfdGFibGVfb2Zmc2V0KGFkZHIpLCBsNGVfZ2V0X2ludHB0ZShsNGUpLCBwZm4pOwogICAgIGlm ICggIShsNGVfZ2V0X2ZsYWdzKGw0ZSkgJiBfUEFHRV9QUkVTRU5UKSB8fAotICAgICAgICAgIW1m bl92YWxpZChtZm4pICkKKyAgICAgICAgICFtZm5fdmFsaWQoX21mbihtZm4pKSApCiAgICAgICAg IHJldHVybjsKIAogICAgIGwzdCA9IG1hcF9kb21haW5fcGFnZShfbWZuKG1mbikpOwogICAgIGwz ZSA9IGwzdFtsM190YWJsZV9vZmZzZXQoYWRkcildOwogICAgIHVubWFwX2RvbWFpbl9wYWdlKGwz dCk7CiAgICAgbWZuID0gbDNlX2dldF9wZm4obDNlKTsKLSAgICBwZm4gPSBtZm5fdmFsaWQobWZu KSAmJiBtYWNoaW5lX3RvX3BoeXNfbWFwcGluZ192YWxpZCA/CisgICAgcGZuID0gbWZuX3ZhbGlk KF9tZm4obWZuKSkgJiYgbWFjaGluZV90b19waHlzX21hcHBpbmdfdmFsaWQgPwogICAgICAgICAg IGdldF9ncGZuX2Zyb21fbWZuKG1mbikgOiBJTlZBTElEX00yUF9FTlRSWTsKICAgICBwcmludGso IiBMM1sweCUwM2x4XSA9ICUiUFJJcHRlIiAlMDE2bHglc1xuIiwKICAgICAgICAgICAgbDNfdGFi bGVfb2Zmc2V0KGFkZHIpLCBsM2VfZ2V0X2ludHB0ZShsM2UpLCBwZm4sCiAgICAgICAgICAgIChs M2VfZ2V0X2ZsYWdzKGwzZSkgJiBfUEFHRV9QU0UpID8gIiAoUFNFKSIgOiAiIik7CiAgICAgaWYg KCAhKGwzZV9nZXRfZmxhZ3MobDNlKSAmIF9QQUdFX1BSRVNFTlQpIHx8CiAgICAgICAgICAobDNl X2dldF9mbGFncyhsM2UpICYgX1BBR0VfUFNFKSB8fAotICAgICAgICAgIW1mbl92YWxpZChtZm4p ICkKKyAgICAgICAgICFtZm5fdmFsaWQoX21mbihtZm4pKSApCiAgICAgICAgIHJldHVybjsKIAog ICAgIGwydCA9IG1hcF9kb21haW5fcGFnZShfbWZuKG1mbikpOwogICAgIGwyZSA9IGwydFtsMl90 YWJsZV9vZmZzZXQoYWRkcildOwogICAgIHVubWFwX2RvbWFpbl9wYWdlKGwydCk7CiAgICAgbWZu ID0gbDJlX2dldF9wZm4obDJlKTsKLSAgICBwZm4gPSBtZm5fdmFsaWQobWZuKSAmJiBtYWNoaW5l X3RvX3BoeXNfbWFwcGluZ192YWxpZCA/CisgICAgcGZuID0gbWZuX3ZhbGlkKF9tZm4obWZuKSkg JiYgbWFjaGluZV90b19waHlzX21hcHBpbmdfdmFsaWQgPwogICAgICAgICAgIGdldF9ncGZuX2Zy b21fbWZuKG1mbikgOiBJTlZBTElEX00yUF9FTlRSWTsKICAgICBwcmludGsoIiBMMlsweCUwM2x4 XSA9ICUiUFJJcHRlIiAlMDE2bHggJXNcbiIsCiAgICAgICAgICAgIGwyX3RhYmxlX29mZnNldChh ZGRyKSwgbDJlX2dldF9pbnRwdGUobDJlKSwgcGZuLAogICAgICAgICAgICAobDJlX2dldF9mbGFn cyhsMmUpICYgX1BBR0VfUFNFKSA/ICIoUFNFKSIgOiAiIik7CiAgICAgaWYgKCAhKGwyZV9nZXRf ZmxhZ3MobDJlKSAmIF9QQUdFX1BSRVNFTlQpIHx8CiAgICAgICAgICAobDJlX2dldF9mbGFncyhs MmUpICYgX1BBR0VfUFNFKSB8fAotICAgICAgICAgIW1mbl92YWxpZChtZm4pICkKKyAgICAgICAg ICFtZm5fdmFsaWQoX21mbihtZm4pKSApCiAgICAgICAgIHJldHVybjsKIAogICAgIGwxdCA9IG1h cF9kb21haW5fcGFnZShfbWZuKG1mbikpOwogICAgIGwxZSA9IGwxdFtsMV90YWJsZV9vZmZzZXQo YWRkcildOwogICAgIHVubWFwX2RvbWFpbl9wYWdlKGwxdCk7CiAgICAgbWZuID0gbDFlX2dldF9w Zm4obDFlKTsKLSAgICBwZm4gPSBtZm5fdmFsaWQobWZuKSAmJiBtYWNoaW5lX3RvX3BoeXNfbWFw cGluZ192YWxpZCA/CisgICAgcGZuID0gbWZuX3ZhbGlkKF9tZm4obWZuKSkgJiYgbWFjaGluZV90 b19waHlzX21hcHBpbmdfdmFsaWQgPwogICAgICAgICAgIGdldF9ncGZuX2Zyb21fbWZuKG1mbikg OiBJTlZBTElEX00yUF9FTlRSWTsKICAgICBwcmludGsoIiBMMVsweCUwM2x4XSA9ICUiUFJJcHRl IiAlMDE2bHhcbiIsCiAgICAgICAgICAgIGwxX3RhYmxlX29mZnNldChhZGRyKSwgbDFlX2dldF9p bnRwdGUobDFlKSwgcGZuKTsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYyBi L3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwppbmRleCBkM2VhODA1Li5iY2UxM2U4IDEwMDY0NAot LS0gYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKKysrIGIveGVuL2NvbW1vbi9ncmFudF90YWJs ZS5jCkBAIC0yNTcsNyArMjU3LDcgQEAgc3RhdGljIGludCBfX2dldF9wYWdlZF9mcmFtZSh1bnNp Z25lZCBsb25nIGdmbiwgdW5zaWduZWQgbG9uZyAqZnJhbWUsIHN0cnVjdCBwYWcKICAgICAqZnJh bWUgPSBwYWdlX3RvX21mbigqcGFnZSk7CiAjZWxzZQogICAgICpmcmFtZSA9IG1mbl94KGdmbl90 b19tZm4ocmQsIF9nZm4oZ2ZuKSkpOwotICAgICpwYWdlID0gbWZuX3ZhbGlkKCpmcmFtZSkgPyBt Zm5fdG9fcGFnZSgqZnJhbWUpIDogTlVMTDsKKyAgICAqcGFnZSA9IG1mbl92YWxpZChfbWZuKCpm cmFtZSkpID8gbWZuX3RvX3BhZ2UoKmZyYW1lKSA6IE5VTEw7CiAgICAgaWYgKCAoISgqcGFnZSkp IHx8ICghZ2V0X3BhZ2UoKnBhZ2UsIHJkKSkgKQogICAgIHsKICAgICAgICAgKmZyYW1lID0gbWZu X3goSU5WQUxJRF9NRk4pOwpAQCAtODc4LDcgKzg3OCw3IEBAIF9fZ250dGFiX21hcF9ncmFudF9y ZWYoCiAgICAgLyogcGcgbWF5IGJlIHNldCwgd2l0aCBhIHJlZmNvdW50IGluY2x1ZGVkLCBmcm9t IF9fZ2V0X3BhZ2VkX2ZyYW1lICovCiAgICAgaWYgKCAhcGcgKQogICAgIHsKLSAgICAgICAgcGcg PSBtZm5fdmFsaWQoZnJhbWUpID8gbWZuX3RvX3BhZ2UoZnJhbWUpIDogTlVMTDsKKyAgICAgICAg cGcgPSBtZm5fdmFsaWQoX21mbihmcmFtZSkpID8gbWZuX3RvX3BhZ2UoZnJhbWUpIDogTlVMTDsK ICAgICAgICAgaWYgKCBwZyApCiAgICAgICAgICAgICBvd25lciA9IHBhZ2VfZ2V0X293bmVyX2Fu ZF9yZWZlcmVuY2UocGcpOwogICAgIH0KQEAgLTE3OTIsNyArMTc5Miw3IEBAIGdudHRhYl90cmFu c2ZlcigKICNlbmRpZgogCiAgICAgICAgIC8qIENoZWNrIHRoZSBwYXNzZWQgcGFnZSBmcmFtZSBm b3IgYmFzaWMgdmFsaWRpdHkuICovCi0gICAgICAgIGlmICggdW5saWtlbHkoIW1mbl92YWxpZCht Zm4pKSApCisgICAgICAgIGlmICggdW5saWtlbHkoIW1mbl92YWxpZChfbWZuKG1mbikpKSApCiAg ICAgICAgIHsgCiAgICAgICAgICAgICBwdXRfZ2ZuKGQsIGdvcC5tZm4pOwogICAgICAgICAgICAg Z2RwcmludGsoWEVOTE9HX0lORk8sICJnbnR0YWJfdHJhbnNmZXI6IG91dC1vZi1yYW5nZSAlbHhc biIsCkBAIC0yMjU2LDcgKzIyNTYsNyBAQCBfX2FjcXVpcmVfZ3JhbnRfZm9yX2NvcHkoCiAgICAg fQogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIEFTU0VSVChtZm5fdmFsaWQoYWN0LT5mcmFtZSkp OworICAgICAgICBBU1NFUlQobWZuX3ZhbGlkKF9tZm4oYWN0LT5mcmFtZSkpKTsKICAgICAgICAg KnBhZ2UgPSBtZm5fdG9fcGFnZShhY3QtPmZyYW1lKTsKICAgICAgICAgdGQgPSBwYWdlX2dldF9v d25lcl9hbmRfcmVmZXJlbmNlKCpwYWdlKTsKICAgICAgICAgLyoKQEAgLTI5MzUsNyArMjkzNSw3 IEBAIHN0YXRpYyBpbnQgX19nbnR0YWJfY2FjaGVfZmx1c2goZ250dGFiX2NhY2hlX2ZsdXNoX3Qg KmNmbHVzaCwKICAgICBkID0gcmN1X2xvY2tfY3VycmVudF9kb21haW4oKTsKICAgICBtZm4gPSBj Zmx1c2gtPmEuZGV2X2J1c19hZGRyID4+IFBBR0VfU0hJRlQ7CiAKLSAgICBpZiAoICFtZm5fdmFs aWQobWZuKSApCisgICAgaWYgKCAhbWZuX3ZhbGlkKF9tZm4obWZuKSkgKQogICAgIHsKICAgICAg ICAgcmN1X3VubG9ja19kb21haW4oZCk7CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwpkaWZmIC0t Z2l0IGEveGVuL2NvbW1vbi9tZW1vcnkuYyBiL3hlbi9jb21tb24vbWVtb3J5LmMKaW5kZXggYWQy OWI3Yi4uYWQwYjMzYyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9tZW1vcnkuYworKysgYi94ZW4v Y29tbW9uL21lbW9yeS5jCkBAIC0xOTEsNyArMTkxLDcgQEAgc3RhdGljIHZvaWQgcG9wdWxhdGVf cGh5c21hcChzdHJ1Y3QgbWVtb3BfYXJncyAqYSkKIAogICAgICAgICAgICAgICAgIGZvciAoIGog PSAwOyBqIDwgKDFVIDw8IGEtPmV4dGVudF9vcmRlcik7IGorKywgbWZuKysgKQogICAgICAgICAg ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCAhbWZuX3ZhbGlkKG1mbikgKQorICAg ICAgICAgICAgICAgICAgICBpZiAoICFtZm5fdmFsaWQoX21mbihtZm4pKSApCiAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19JTkZP LCAiSW52YWxpZCBtZm4gJSMiUFJJX3hlbl9wZm4iXG4iLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbWZuKTsKQEAgLTI3NCw3ICsyNzQsNyBAQCBpbnQgZ3Vlc3RfcmVtb3ZlX3Bh Z2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnbWZuKQogICAgICAgICAgKiBhY3R1 YWwgcGFnZSB0aGF0IG5lZWRzIHRvIGJlIHJlbGVhc2VkLiAqLwogICAgICAgICBpZiAoIHAybXQg PT0gcDJtX3JhbV9wYWdpbmdfb3V0ICkKICAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKG1m bl92YWxpZChtZm5feChtZm4pKSk7CisgICAgICAgICAgICBBU1NFUlQobWZuX3ZhbGlkKG1mbikp OwogICAgICAgICAgICAgcGFnZSA9IG1mbl90b19wYWdlKG1mbl94KG1mbikpOwogICAgICAgICAg ICAgaWYgKCB0ZXN0X2FuZF9jbGVhcl9iaXQoX1BHQ19hbGxvY2F0ZWQsICZwYWdlLT5jb3VudF9p bmZvKSApCiAgICAgICAgICAgICAgICAgcHV0X3BhZ2UocGFnZSk7CkBAIC0yOTEsNyArMjkxLDcg QEAgaW50IGd1ZXN0X3JlbW92ZV9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcg Z21mbikKICNlbHNlCiAgICAgbWZuID0gZ2ZuX3RvX21mbihkLCBfZ2ZuKGdtZm4pKTsKICNlbmRp ZgotICAgIGlmICggdW5saWtlbHkoIW1mbl92YWxpZChtZm5feChtZm4pKSkgKQorICAgIGlmICgg dW5saWtlbHkoIW1mbl92YWxpZChtZm4pKSApCiAgICAgewogICAgICAgICBwdXRfZ2ZuKGQsIGdt Zm4pOwogICAgICAgICBnZHByaW50ayhYRU5MT0dfSU5GTywgIkRvbWFpbiAldSBwYWdlIG51bWJl ciAlbHggaW52YWxpZFxuIiwKQEAgLTUxNSw3ICs1MTUsNyBAQCBzdGF0aWMgbG9uZyBtZW1vcnlf ZXhjaGFuZ2UoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fbWVtb3J5X2V4Y2hhbmdlX3QpIGFy ZykKICNlbHNlIC8qICFDT05GSUdfWDg2ICovCiAgICAgICAgICAgICAgICAgbWZuID0gbWZuX3go Z2ZuX3RvX21mbihkLCBfZ2ZuKGdtZm4gKyBrKSkpOwogI2VuZGlmCi0gICAgICAgICAgICAgICAg aWYgKCB1bmxpa2VseSghbWZuX3ZhbGlkKG1mbikpICkKKyAgICAgICAgICAgICAgICBpZiAoIHVu bGlrZWx5KCFtZm5fdmFsaWQoX21mbihtZm4pKSkgKQogICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgcHV0X2dmbihkLCBnbWZuICsgayk7CiAgICAgICAgICAgICAgICAgICAg IHJjID0gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jIGIveGVu L2NvbW1vbi9wYWdlX2FsbG9jLmMKaW5kZXggYmJkN2JjNi4uNTMwZWRlMSAxMDA2NDQKLS0tIGEv eGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKKysrIGIveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKQEAg LTk4NSw3ICs5ODUsNyBAQCBzdGF0aWMgdm9pZCBmcmVlX2hlYXBfcGFnZXMoCiAgICAgICAgIGlm ICggKHBhZ2VfdG9fbWZuKHBnKSAmIG1hc2spICkKICAgICAgICAgewogICAgICAgICAgICAgLyog TWVyZ2Ugd2l0aCBwcmVkZWNlc3NvciBibG9jaz8gKi8KLSAgICAgICAgICAgIGlmICggIW1mbl92 YWxpZChwYWdlX3RvX21mbihwZy1tYXNrKSkgfHwKKyAgICAgICAgICAgIGlmICggIW1mbl92YWxp ZChfbWZuKHBhZ2VfdG9fbWZuKHBnLW1hc2spKSkgfHwKICAgICAgICAgICAgICAgICAgIXBhZ2Vf c3RhdGVfaXMocGctbWFzaywgZnJlZSkgfHwKICAgICAgICAgICAgICAgICAgKFBGTl9PUkRFUihw Zy1tYXNrKSAhPSBvcmRlcikgfHwKICAgICAgICAgICAgICAgICAgKHBoeXNfdG9fbmlkKHBhZ2Vf dG9fbWFkZHIocGctbWFzaykpICE9IG5vZGUpICkKQEAgLTk5Niw3ICs5OTYsNyBAQCBzdGF0aWMg dm9pZCBmcmVlX2hlYXBfcGFnZXMoCiAgICAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAg ICAgLyogTWVyZ2Ugd2l0aCBzdWNjZXNzb3IgYmxvY2s/ICovCi0gICAgICAgICAgICBpZiAoICFt Zm5fdmFsaWQocGFnZV90b19tZm4ocGcrbWFzaykpIHx8CisgICAgICAgICAgICBpZiAoICFtZm5f dmFsaWQoX21mbihwYWdlX3RvX21mbihwZyttYXNrKSkpIHx8CiAgICAgICAgICAgICAgICAgICFw YWdlX3N0YXRlX2lzKHBnK21hc2ssIGZyZWUpIHx8CiAgICAgICAgICAgICAgICAgIChQRk5fT1JE RVIocGcrbWFzaykgIT0gb3JkZXIpIHx8CiAgICAgICAgICAgICAgICAgIChwaHlzX3RvX25pZChw YWdlX3RvX21hZGRyKHBnK21hc2spKSAhPSBub2RlKSApCkBAIC0xMDgyLDcgKzEwODIsNyBAQCBp bnQgb2ZmbGluZV9wYWdlKHVuc2lnbmVkIGxvbmcgbWZuLCBpbnQgYnJva2VuLCB1aW50MzJfdCAq c3RhdHVzKQogICAgIHN0cnVjdCBkb21haW4gKm93bmVyOwogICAgIHN0cnVjdCBwYWdlX2luZm8g KnBnOwogCi0gICAgaWYgKCAhbWZuX3ZhbGlkKG1mbikgKQorICAgIGlmICggIW1mbl92YWxpZChf bWZuKG1mbikpICkKICAgICB7CiAgICAgICAgIGRwcmludGsoWEVOTE9HX1dBUk5JTkcsCiAgICAg ICAgICAgICAgICAgInRyeSB0byBvZmZsaW5lIHBhZ2Ugb3V0IG9mIHJhbmdlICVseFxuIiwgbWZu KTsKQEAgLTExOTEsNyArMTE5MSw3IEBAIHVuc2lnbmVkIGludCBvbmxpbmVfcGFnZSh1bnNpZ25l ZCBsb25nIG1mbiwgdWludDMyX3QgKnN0YXR1cykKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsK ICAgICBpbnQgcmV0OwogCi0gICAgaWYgKCAhbWZuX3ZhbGlkKG1mbikgKQorICAgIGlmICggIW1m bl92YWxpZChfbWZuKG1mbikpICkKICAgICB7CiAgICAgICAgIGRwcmludGsoWEVOTE9HX1dBUk5J TkcsICJjYWxsIGV4cGFuZF9wYWdlcygpIGZpcnN0XG4iKTsKICAgICAgICAgcmV0dXJuIC1FSU5W QUw7CkBAIC0xMjQyLDcgKzEyNDIsNyBAQCBpbnQgcXVlcnlfcGFnZV9vZmZsaW5lKHVuc2lnbmVk IGxvbmcgbWZuLCB1aW50MzJfdCAqc3RhdHVzKQogewogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBn OwogCi0gICAgaWYgKCAhbWZuX3ZhbGlkKG1mbikgfHwgIXBhZ2VfaXNfcmFtX3R5cGUobWZuLCBS QU1fVFlQRV9DT05WRU5USU9OQUwpICkKKyAgICBpZiAoICFtZm5fdmFsaWQoX21mbihtZm4pKSB8 fCAhcGFnZV9pc19yYW1fdHlwZShtZm4sIFJBTV9UWVBFX0NPTlZFTlRJT05BTCkgKQogICAgIHsK ICAgICAgICAgZHByaW50ayhYRU5MT0dfV0FSTklORywgImNhbGwgZXhwYW5kX3BhZ2VzKCkgZmly c3RcbiIpOwogICAgICAgICByZXR1cm4gLUVJTlZBTDsKQEAgLTE0MTIsNyArMTQxMiw3IEBAIHN0 YXRpYyB2b2lkIF9faW5pdCBzbXBfc2NydWJfaGVhcF9wYWdlcyh2b2lkICpkYXRhKQogICAgICAg ICBwZyA9IG1mbl90b19wYWdlKG1mbik7CiAKICAgICAgICAgLyogQ2hlY2sgdGhlIG1mbiBpcyB2 YWxpZCBhbmQgcGFnZSBpcyBmcmVlLiAqLwotICAgICAgICBpZiAoICFtZm5fdmFsaWQobWZuKSB8 fCAhcGFnZV9zdGF0ZV9pcyhwZywgZnJlZSkgKQorICAgICAgICBpZiAoICFtZm5fdmFsaWQoX21m bihtZm4pKSB8fCAhcGFnZV9zdGF0ZV9pcyhwZywgZnJlZSkgKQogICAgICAgICAgICAgY29udGlu dWU7CiAKICAgICAgICAgc2NydWJfb25lX3BhZ2UocGcpOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1v bi9wZHguYyBiL3hlbi9jb21tb24vcGR4LmMKaW5kZXggNGJhZmZkNC4uYzk5MWEwOSAxMDA2NDQK LS0tIGEveGVuL2NvbW1vbi9wZHguYworKysgYi94ZW4vY29tbW9uL3BkeC5jCkBAIC0zMSw3ICsz MSw3IEBAIHVuc2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IHBmbl9wZHhfaG9sZV9zaGlmdCA9IDA7 CiB1bnNpZ25lZCBsb25nIF9fcmVhZF9tb3N0bHkgcGR4X2dyb3VwX3ZhbGlkW0JJVFNfVE9fTE9O R1MoCiAgICAgKEZSQU1FVEFCTEVfTlIgKyBQRFhfR1JPVVBfQ09VTlQgLSAxKSAvIFBEWF9HUk9V UF9DT1VOVCldID0geyBbMF0gPSAxIH07CiAKLWludCBfX21mbl92YWxpZCh1bnNpZ25lZCBsb25n IG1mbikKK2Jvb2wgX19tZm5fdmFsaWQodW5zaWduZWQgbG9uZyBtZm4pCiB7CiAgICAgcmV0dXJu IGxpa2VseShtZm4gPCBtYXhfcGFnZSkgJiYKICAgICAgICAgICAgbGlrZWx5KCEobWZuICYgcGZu X2hvbGVfbWFzaykpICYmCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQv aW9tbXVfZ3Vlc3QuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9ndWVzdC5j CmluZGV4IGY5NmZiZjQuLjk2MTc1YmIgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2FtZC9pb21tdV9ndWVzdC5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9p b21tdV9ndWVzdC5jCkBAIC0xOTksNyArMTk5LDcgQEAgdm9pZCBndWVzdF9pb21tdV9hZGRfcHBy X2xvZyhzdHJ1Y3QgZG9tYWluICpkLCB1MzIgZW50cnlbXSkKIAogICAgIG1mbiA9IGd1ZXN0X2lv bW11X2dldF90YWJsZV9tZm4oZCwgcmVnX3RvX3U2NChpb21tdS0+cHByX2xvZy5yZWdfYmFzZSks CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YocHByX2VudHJ5X3Qp LCB0YWlsKTsKLSAgICBBU1NFUlQobWZuX3ZhbGlkKG1mbikpOworICAgIEFTU0VSVChtZm5fdmFs aWQoX21mbihtZm4pKSk7CiAKICAgICBsb2dfYmFzZSA9IG1hcF9kb21haW5fcGFnZShfbWZuKG1m bikpOwogICAgIGxvZyA9IGxvZ19iYXNlICsgdGFpbCAlIChQQUdFX1NJWkUgLyBzaXplb2YocHBy X2VudHJ5X3QpKTsKQEAgLTI0OCw3ICsyNDgsNyBAQCB2b2lkIGd1ZXN0X2lvbW11X2FkZF9ldmVu dF9sb2coc3RydWN0IGRvbWFpbiAqZCwgdTMyIGVudHJ5W10pCiAKICAgICBtZm4gPSBndWVzdF9p b21tdV9nZXRfdGFibGVfbWZuKGQsIHJlZ190b191NjQoaW9tbXUtPmV2ZW50X2xvZy5yZWdfYmFz ZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoZXZlbnRfZW50 cnlfdCksIHRhaWwpOwotICAgIEFTU0VSVChtZm5fdmFsaWQobWZuKSk7CisgICAgQVNTRVJUKG1m bl92YWxpZChfbWZuKG1mbikpKTsKIAogICAgIGxvZ19iYXNlID0gbWFwX2RvbWFpbl9wYWdlKF9t Zm4obWZuKSk7CiAgICAgbG9nID0gbG9nX2Jhc2UgKyB0YWlsICUgKFBBR0VfU0laRSAvIHNpemVv ZihldmVudF9lbnRyeV90KSk7CkBAIC00MjAsNyArNDIwLDcgQEAgc3RhdGljIGludCBkb19pbnZh bGlkYXRlX2R0ZShzdHJ1Y3QgZG9tYWluICpkLCBjbWRfZW50cnlfdCAqY21kKQogICAgIGR0ZV9t Zm4gPSBndWVzdF9pb21tdV9nZXRfdGFibGVfbWZuKGQsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVnX3RvX3U2NChnX2lvbW11LT5kZXZfdGFibGUucmVnX2Jhc2Up LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihkZXZfZW50 cnlfdCksIGdiZGYpOwotICAgIEFTU0VSVChtZm5fdmFsaWQoZHRlX21mbikpOworICAgIEFTU0VS VChtZm5fdmFsaWQoX21mbihkdGVfbWZuKSkpOwogCiAgICAgLyogUmVhZCBndWVzdCBkdGUgaW5m b3JtYXRpb24gKi8KICAgICBkdGVfYmFzZSA9IG1hcF9kb21haW5fcGFnZShfbWZuKGR0ZV9tZm4p KTsKQEAgLTQ0MSw3ICs0NDEsNyBAQCBzdGF0aWMgaW50IGRvX2ludmFsaWRhdGVfZHRlKHN0cnVj dCBkb21haW4gKmQsIGNtZF9lbnRyeV90ICpjbWQpCiAgICAgZ2NyM19tZm4gPSBtZm5feChnZXRf Z2ZuKGQsIGdjcjNfZ2ZuLCAmcDJtdCkpOwogICAgIHB1dF9nZm4oZCwgZ2NyM19nZm4pOwogCi0g ICAgQVNTRVJUKG1mbl92YWxpZChnY3IzX21mbikpOworICAgIEFTU0VSVChtZm5fdmFsaWQoX21m bihnY3IzX21mbikpKTsKIAogICAgIGlvbW11ID0gZmluZF9pb21tdV9mb3JfZGV2aWNlKDAsIG1i ZGYpOwogICAgIGlmICggIWlvbW11ICkKQEAgLTUwMiw3ICs1MDIsNyBAQCBzdGF0aWMgdm9pZCBn dWVzdF9pb21tdV9wcm9jZXNzX2NvbW1hbmQodW5zaWduZWQgbG9uZyBfZCkKICAgICAgICAgY21k X21mbiA9IGd1ZXN0X2lvbW11X2dldF90YWJsZV9tZm4oZCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVnX3RvX3U2NChpb21tdS0+Y21kX2J1ZmZlci5yZWdf YmFzZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVv ZihjbWRfZW50cnlfdCksIGhlYWQpOwotICAgICAgICBBU1NFUlQobWZuX3ZhbGlkKGNtZF9tZm4p KTsKKyAgICAgICAgQVNTRVJUKG1mbl92YWxpZChfbWZuKGNtZF9tZm4pKSk7CiAKICAgICAgICAg Y21kX2Jhc2UgPSBtYXBfZG9tYWluX3BhZ2UoX21mbihjbWRfbWZuKSk7CiAgICAgICAgIGNtZCA9 IGNtZF9iYXNlICsgaGVhZCAlIGVudHJpZXNfcGVyX3BhZ2U7CmRpZmYgLS1naXQgYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYwppbmRleCA5NGEyNWE0Li5iMjQyOGY4IDEwMDY0NAot LS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCisrKyBiL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKQEAgLTI5Myw3ICsyOTMs NyBAQCBzdGF0aWMgdm9pZCBfX2h3ZG9tX2luaXQgYW1kX2lvbW11X2h3ZG9tX2luaXQoc3RydWN0 IGRvbWFpbiAqZCkKICAgICAgICAgICAgICAqIFhYWCBTaG91bGQgd2UgcmVhbGx5IG1hcCBhbGwg bm9uLVJBTSAoYWJvdmUgNEcpPyBNaW5pbWFsbHkKICAgICAgICAgICAgICAqIGEgcGZuX3ZhbGlk KCkgY2hlY2sgd291bGQgc2VlbSBkZXNpcmFibGUgaGVyZS4KICAgICAgICAgICAgICAqLwotICAg ICAgICAgICAgaWYgKCBtZm5fdmFsaWQocGZuKSApCisgICAgICAgICAgICBpZiAoIG1mbl92YWxp ZChfbWZuKHBmbikpICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBpbnQgcmV0ID0g YW1kX2lvbW11X21hcF9wYWdlKGQsIHBmbiwgcGZuLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlfElPTU1VRl93cml0YWJsZSk7CmRp ZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZG1hci5jIGIveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvdnRkL2RtYXIuYwppbmRleCA5NDg0ZjNiLi4xNmFlNmY2IDEwMDY0NAot LS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZG1hci5jCisrKyBiL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL3Z0ZC9kbWFyLmMKQEAgLTkzOSw3ICs5MzksNyBAQCBzdGF0aWMgaW50IF9f aW5pdCBhZGRfdXNlcl9ybXJyKHZvaWQpCiAKICAgICAgICAgZG8KICAgICAgICAgewotICAgICAg ICAgICAgaWYgKCAhbWZuX3ZhbGlkKGJhc2UpICkKKyAgICAgICAgICAgIGlmICggIW1mbl92YWxp ZChfbWZuKGJhc2UpKSApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgcHJpbnRrKFhF TkxPR19FUlIgVlREUFJFRklYCiAgICAgICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIHBmbiBp biBSTVJSIHJhbmdlICJFUk1SUlVfRk1UIlxuIiwKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2 L3Z0ZC5jCmluZGV4IDk3NGI1MzcuLjhhODlmMzQgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L3g4Ni92dGQuYwpAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgX19od2RvbV9pbml0IHZ0ZF9zZXRf aHdkb21fbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICB1bnNpZ25lZCBsb25nIHBm biA9IHBkeF90b19wZm4oaSk7CiAKICAgICAgICAgaWYgKCBwZm4gPiAoMHhmZmZmZmZmZlVMID4+ IFBBR0VfU0hJRlQpID8KLSAgICAgICAgICAgICAoIW1mbl92YWxpZChwZm4pIHx8CisgICAgICAg ICAgICAgKCFtZm5fdmFsaWQoX21mbihwZm4pKSB8fAogICAgICAgICAgICAgICAhcGFnZV9pc19y YW1fdHlwZShwZm4sIFJBTV9UWVBFX0NPTlZFTlRJT05BTCkpIDoKICAgICAgICAgICAgICBpb21t dV9pbmNsdXNpdmVfbWFwcGluZyA/CiAgICAgICAgICAgICAgcGFnZV9pc19yYW1fdHlwZShwZm4s IFJBTV9UWVBFX1VOVVNBQkxFKSA6CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL21t LmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL21tLmgKaW5kZXggM2RlOTExYy4uNjBjY2JmMyAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9tbS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1h cm0vbW0uaApAQCAtMTI4LDcgKzEyOCw3IEBAIGV4dGVybiB2YWRkcl90IHhlbmhlYXBfdmlydF9z dGFydDsKICNlbHNlCiAjZGVmaW5lIGlzX3hlbl9oZWFwX3BhZ2UocGFnZSkgKChwYWdlKS0+Y291 bnRfaW5mbyAmIFBHQ194ZW5faGVhcCkKICNkZWZpbmUgaXNfeGVuX2hlYXBfbWZuKG1mbikgXAot ICAgIChtZm5fdmFsaWQobWZuKSAmJiBpc194ZW5faGVhcF9wYWdlKF9fbWZuX3RvX3BhZ2UobWZu KSkpCisgICAgKG1mbl92YWxpZChfbWZuKG1mbikpICYmIGlzX3hlbl9oZWFwX3BhZ2UoX19tZm5f dG9fcGFnZShtZm4pKSkKICNlbmRpZgogCiAjZGVmaW5lIGlzX3hlbl9maXhlZF9tZm4obWZuKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMTk0LDcgKzE5NCw3IEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCBfX2lvbWVtICppb3JlbWFwX3djKHBhZGRyX3Qgc3RhcnQsIHNpemVf dCBsZW4pCiAKIC8qIFhYWCAtLSBhY2NvdW50IGZvciBiYXNlICovCiAjZGVmaW5lIG1mbl92YWxp ZChtZm4pICAgICAgICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCi0gICAgdW5zaWduZWQgbG9uZyBfX21fZl9uID0gKG1mbik7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdW5zaWduZWQgbG9uZyBfX21fZl9u ID0gbWZuX3gobWZuKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg ICAgbGlrZWx5KHBmbl90b19wZHgoX19tX2ZfbikgPj0gZnJhbWV0YWJsZV9iYXNlX3BkeCAmJiBf X21mbl92YWxpZChfX21fZl9uKSk7IFwKIH0pCiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2Fz bS1hcm0vcDJtLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCmluZGV4IDA5MDVhM2YuLjA4 OTk1MjMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmgKKysrIGIveGVuL2lu Y2x1ZGUvYXNtLWFybS9wMm0uaApAQCAtMjkyLDcgKzI5Miw3IEBAIHN0YXRpYyBpbmxpbmUgc3Ry dWN0IHBhZ2VfaW5mbyAqZ2V0X3BhZ2VfZnJvbV9nZm4oCiAgICAgaWYgKCAhcDJtX2lzX2FueV9y YW0ocDJtdCkgKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIGlmICggIW1mbl92YWxpZCht Zm4pICkKKyAgICBpZiAoICFtZm5fdmFsaWQoX21mbihtZm4pKSApCiAgICAgICAgIHJldHVybiBO VUxMOwogICAgIHBhZ2UgPSBtZm5fdG9fcGFnZShtZm4pOwogCmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20teDg2L3AybS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaAppbmRleCA1YjFj NTY2Li40NzBkMjlkIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCisrKyBi L3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKQEAgLTQ2NSw3ICs0NjUsNyBAQCBzdGF0aWMgaW5s aW5lIHN0cnVjdCBwYWdlX2luZm8gKmdldF9wYWdlX2Zyb21fZ2ZuKAogICAgIGlmICh0KQogICAg ICAgICAqdCA9IHAybV9yYW1fcnc7CiAgICAgcGFnZSA9IF9fbWZuX3RvX3BhZ2UoZ2ZuKTsKLSAg ICByZXR1cm4gbWZuX3ZhbGlkKGdmbikgJiYgZ2V0X3BhZ2UocGFnZSwgZCkgPyBwYWdlIDogTlVM TDsKKyAgICByZXR1cm4gbWZuX3ZhbGlkKF9tZm4oZ2ZuKSkgJiYgZ2V0X3BhZ2UocGFnZSwgZCkg PyBwYWdlIDogTlVMTDsKIH0KIAogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3Bh Z2UuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcGFnZS5oCmluZGV4IGFmN2QzZTguLjQ2ZmFmZmMg MTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcGFnZS5oCisrKyBiL3hlbi9pbmNsdWRl L2FzbS14ODYvcGFnZS5oCkBAIC0yNTIsNyArMjUyLDcgQEAgdm9pZCBjb3B5X3BhZ2Vfc3NlMih2 b2lkICosIGNvbnN0IHZvaWQgKik7CiAgKiBXZSBkZWZpbmUgbm9uLXVuZGVyc2NvcmVkIHdyYXBw ZXJzIGZvciBhYm92ZSBjb252ZXJzaW9uIGZ1bmN0aW9ucy4gVGhlc2UgYXJlCiAgKiBvdmVycmlk ZGVuIGluIHZhcmlvdXMgc291cmNlIGZpbGVzIHdoaWxlIHVuZGVyc2NvcmVkIHZlcnNpb25zIHJl bWFpbiBpbnRhY3QuCiAgKi8KLSNkZWZpbmUgbWZuX3ZhbGlkKG1mbikgICAgICBfX21mbl92YWxp ZChtZm4pCisjZGVmaW5lIG1mbl92YWxpZChtZm4pICAgICAgX19tZm5fdmFsaWQobWZuX3gobWZu KSkKICNkZWZpbmUgdmlydF90b19tZm4odmEpICAgICBfX3ZpcnRfdG9fbWZuKHZhKQogI2RlZmlu ZSBtZm5fdG9fdmlydChtZm4pICAgIF9fbWZuX3RvX3ZpcnQobWZuKQogI2RlZmluZSB2aXJ0X3Rv X21hZGRyKHZhKSAgIF9fdmlydF90b19tYWRkcigodW5zaWduZWQgbG9uZykodmEpKQpkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUveGVuL3BkeC5oIGIveGVuL2luY2x1ZGUveGVuL3BkeC5oCmluZGV4 IGM3YzgzN2UuLjRjNTY2NDUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9wZHguaAorKysg Yi94ZW4vaW5jbHVkZS94ZW4vcGR4LmgKQEAgLTIxLDcgKzIxLDcgQEAgZXh0ZXJuIHZvaWQgc2V0 X3BkeF9yYW5nZSh1bnNpZ25lZCBsb25nIHNtZm4sIHVuc2lnbmVkIGxvbmcgZW1mbik7CiAjZGVm aW5lIHBhZ2VfdG9fcGR4KHBnKSAgKChwZykgLSBmcmFtZV90YWJsZSkKICNkZWZpbmUgcGR4X3Rv X3BhZ2UocGR4KSAoZnJhbWVfdGFibGUgKyAocGR4KSkKIAotZXh0ZXJuIGludCBfX21mbl92YWxp ZCh1bnNpZ25lZCBsb25nIG1mbik7Citib29sIF9fbWZuX3ZhbGlkKHVuc2lnbmVkIGxvbmcgbWZu KTsKIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHBmbl90b19wZHgodW5zaWduZWQgbG9u ZyBwZm4pCiB7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vdG1lbV94ZW4uaCBiL3hlbi9p bmNsdWRlL3hlbi90bWVtX3hlbi5oCmluZGV4IDJiMjA1YmYuLmE2Y2FiMDAgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL3hlbi90bWVtX3hlbi5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi90bWVtX3hl bi5oCkBAIC0yNSw3ICsyNSw3IEBACiB0eXBlZGVmIHVpbnQzMl90IHBhZ2VzaXplX3Q7ICAvKiBs aWtlIHNpemVfdCwgbXVzdCBoYW5kbGUgbGFyZ2VzdCBQQUdFX1NJWkUgKi8KIAogI2RlZmluZSBJ U19QQUdFX0FMSUdORUQoYWRkcikgSVNfQUxJR05FRCgodW5zaWduZWQgbG9uZykoYWRkciksIFBB R0VfU0laRSkKLSNkZWZpbmUgSVNfVkFMSURfUEFHRShfcGkpICAoIG1mbl92YWxpZChwYWdlX3Rv X21mbihfcGkpKSApCisjZGVmaW5lIElTX1ZBTElEX1BBR0UoX3BpKSAgICBtZm5fdmFsaWQoX21m bihwYWdlX3RvX21mbihfcGkpKSkKIAogZXh0ZXJuIHN0cnVjdCBwYWdlX2xpc3RfaGVhZCB0bWVt X3BhZ2VfbGlzdDsKIGV4dGVybiBzcGlubG9ja190IHRtZW1fcGFnZV9saXN0X2xvY2s7Ci0tIAoy LjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0 cy54ZW4ub3JnL3hlbi1kZXZlbAo=