From: marko.makela Date: September 17 2012 11:55am Subject: bzr push into mysql-trunk branch (marko.makela:4490 to 4491) List-Archive: http://lists.mysql.com/commits/144802 Message-Id: <20120917115521.9630.86492.4491@x220> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDQ0OTEgTWFya28gTcOka2Vsw6QJMjAxMi0wOS0xNyBbbWVyZ2VdCiAgICAgIE1lcmdlIG15c3Fs LTUuNiB0byBteXNxbC10cnVuay4KCiAgICBtb2RpZmllZDoKICAgICAgc3RvcmFnZS9pbm5vYmFz ZS9idHIvYnRyMGJ0ci5jYwogICAgICBzdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwY3VyLmNjCiAg ICAgIHN0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1ZjBscnUuY2MKICAgICAgc3RvcmFnZS9pbm5vYmFz ZS9pYnVmL2lidWYwaWJ1Zi5jYwogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcGFnZTB6 aXAuaAogICAgICBzdG9yYWdlL2lubm9iYXNlL2xvZy9sb2cwcmVjdi5jYwogICAgICBzdG9yYWdl L2lubm9iYXNlL3BhZ2UvcGFnZTBjdXIuY2MKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9wYWdlL3Bh Z2UwcGFnZS5jYwogICAgICBzdG9yYWdlL2lubm9iYXNlL3BhZ2UvcGFnZTB6aXAuY2MKICAgICAg c3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MGltcG9ydC5jYwogNDQ5MCBIYXJpbiBWYWRvZGFyaWEJ MjAxMi0wOS0xNyBbbWVyZ2VdCiAgICAgIEJ1ZyMxMTc1Mzc3OTogTUFYX0NPTk5FQ1RfRVJST1JT IFdPUktTIE9OTFkgV0hFTiAxU1QKICAgICAgICAgICAgICAgICAgICBJTkNfSE9TVF9FUlJPUlMo KSBJUyBDQUxMRUQuCiAgICAgIAogICAgICBEZXNjcmlwdGlvbjogTnVsbCBtZXJnZSBmcm9tIG15 c3FsLTUuNiB0byBteXNxbC10cnVuawoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jh c2UvYnRyL2J0cjBidHIuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0cjBidHIuY2MJ cmV2aWQ6aGFyaW4udmFkb2RhcmlhQG9yYWNsZS5jb20tMjAxMjA5MTcxMTQyMjItenVhN3dpdGEw bzltdWxhNworKysgYi9zdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwYnRyLmNjCXJldmlkOm1hcmtv Lm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwOTE3MTE1MzM3LTBxb281dDlkZ21iOTloemoKQEAgLTE3 NjIsNyArMTc2Miw3IEBAIGJ0cl9wYWdlX3Jlb3JnYW5pemVfbG93KAogCXV0X2FkKG10cl9tZW1v X2NvbnRhaW5zKG10ciwgYmxvY2ssIE1UUl9NRU1PX1BBR0VfWF9GSVgpKTsKIAlidHJfYXNzZXJ0 X25vdF9jb3JydXB0ZWQoYmxvY2ssIGluZGV4KTsKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCXV0 X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlKSk7CisJdXRf YSghcGFnZV96aXAgfHwgcGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UsIGluZGV4KSk7 CiAjZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8KIAlkYXRhX3NpemUxID0gcGFnZV9nZXRfZGF0 YV9zaXplKHBhZ2UpOwogCW1heF9pbnNfc2l6ZTEgPSBwYWdlX2dldF9tYXhfaW5zZXJ0X3NpemVf YWZ0ZXJfcmVvcmdhbml6ZShwYWdlLCAxKTsKQEAgLTE4OTUsNyArMTg5NSw3IEBAIGJ0cl9wYWdl X3Jlb3JnYW5pemVfbG93KAogCiBmdW5jX2V4aXQ6CiAjaWZkZWYgVU5JVl9aSVBfREVCVUcKLQl1 dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkpOworCXV0 X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlLCBpbmRleCkp OwogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICovCiAjaWZuZGVmIFVOSVZfSE9UQkFDS1VQCiAJ YnVmX2Jsb2NrX2ZyZWUodGVtcF9ibG9jayk7CkBAIC0xOTg1LDcgKzE5ODUsNyBAQCBidHJfcGFn ZV9lbXB0eSgKIAl1dF9hZChtdHJfbWVtb19jb250YWlucyhtdHIsIGJsb2NrLCBNVFJfTUVNT19Q QUdFX1hfRklYKSk7CiAJdXRfYWQocGFnZV96aXAgPT0gYnVmX2Jsb2NrX2dldF9wYWdlX3ppcChi bG9jaykpOwogI2lmZGVmIFVOSVZfWklQX0RFQlVHCi0JdXRfYSghcGFnZV96aXAgfHwgcGFnZV96 aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UpKTsKKwl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3pp cF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSwgaW5kZXgpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9E RUJVRyAqLwogCiAJYnRyX3NlYXJjaF9kcm9wX3BhZ2VfaGFzaF9pbmRleChibG9jayk7CkBAIC0y MDQ0LDEwICsyMDQ0LDEwIEBAIGJ0cl9yb290X3JhaXNlX2FuZF9pbnNlcnQoCiAJcm9vdF9ibG9j ayA9IGJ0cl9jdXJfZ2V0X2Jsb2NrKGN1cnNvcik7CiAJcm9vdF9wYWdlX3ppcCA9IGJ1Zl9ibG9j a19nZXRfcGFnZV96aXAocm9vdF9ibG9jayk7CiAJdXRfYWQocGFnZV9nZXRfbl9yZWNzKHJvb3Qp ID4gMCk7CisJaW5kZXggPSBidHJfY3VyX2dldF9pbmRleChjdXJzb3IpOwogI2lmZGVmIFVOSVZf WklQX0RFQlVHCi0JdXRfYSghcm9vdF9wYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShyb290 X3BhZ2VfemlwLCByb290KSk7CisJdXRfYSghcm9vdF9wYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxp ZGF0ZShyb290X3BhZ2VfemlwLCByb290LCBpbmRleCkpOwogI2VuZGlmIC8qIFVOSVZfWklQX0RF QlVHICovCi0JaW5kZXggPSBidHJfY3VyX2dldF9pbmRleChjdXJzb3IpOwogI2lmZGVmIFVOSVZf QlRSX0RFQlVHCiAJaWYgKCFkaWN0X2luZGV4X2lzX2lidWYoaW5kZXgpKSB7CiAJCXVsaW50CXNw YWNlID0gZGljdF9pbmRleF9nZXRfc3BhY2UoaW5kZXgpOwpAQCAtMjk4OCw4ICsyOTg4LDggQEAg aW5zZXJ0X2VtcHR5OgogCiAjaWZkZWYgVU5JVl9aSVBfREVCVUcKIAlpZiAocGFnZV96aXApIHsK LQkJdXRfYShwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkpOwotCQl1dF9hKHBhZ2Vf emlwX3ZhbGlkYXRlKG5ld19wYWdlX3ppcCwgbmV3X3BhZ2UpKTsKKwkJdXRfYShwYWdlX3ppcF92 YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSwgY3Vyc29yLT5pbmRleCkpOworCQl1dF9hKHBhZ2Vfemlw X3ZhbGlkYXRlKG5ld19wYWdlX3ppcCwgbmV3X3BhZ2UsIGN1cnNvci0+aW5kZXgpKTsKIAl9CiAj ZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8KIApAQCAtMzAyMyw3ICszMDIzLDggQEAgaW5zZXJ0 X2VtcHR5OgogCQkJPSBidWZfYmxvY2tfZ2V0X3BhZ2VfemlwKGluc2VydF9ibG9jayk7CiAKIAkJ dXRfYSghaW5zZXJ0X3BhZ2VfemlwCi0JCSAgICAgfHwgcGFnZV96aXBfdmFsaWRhdGUoaW5zZXJ0 X3BhZ2VfemlwLCBpbnNlcnRfcGFnZSkpOworCQkgICAgIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKGlu c2VydF9wYWdlX3ppcCwgaW5zZXJ0X3BhZ2UsCisJCQkJCSAgY3Vyc29yLT5pbmRleCkpOwogCX0K ICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCkBAIC0zMzg3LDcgKzMzODgsNyBAQCBidHJf bGlmdF9wYWdlX3VwKAogCiAJCWJ0cl9wYWdlX3NldF9sZXZlbChwYWdlLCBwYWdlX3ppcCwgcGFn ZV9sZXZlbCwgbXRyKTsKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCQl1dF9hKCFwYWdlX3ppcCB8 fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkpOworCQl1dF9hKCFwYWdlX3ppcCB8 fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSwgaW5kZXgpKTsKICNlbmRpZiAvKiBV TklWX1pJUF9ERUJVRyAqLwogCX0KIApAQCAtMzU3Miw4ICszNTczLDggQEAgZXJyX2V4aXQ6CiAJ CWNvbnN0IHBhZ2VfemlwX2Rlc190KglwYWdlX3ppcAogCQkJPSBidWZfYmxvY2tfZ2V0X3BhZ2Vf emlwKGJsb2NrKTsKIAkJdXRfYShwYWdlX3ppcCk7Ci0JCXV0X2EocGFnZV96aXBfdmFsaWRhdGUo bWVyZ2VfcGFnZV96aXAsIG1lcmdlX3BhZ2UpKTsKLQkJdXRfYShwYWdlX3ppcF92YWxpZGF0ZShw YWdlX3ppcCwgcGFnZSkpOworCQl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKG1lcmdlX3BhZ2Vfemlw LCBtZXJnZV9wYWdlLCBpbmRleCkpOworCQl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2Vfemlw LCBwYWdlLCBpbmRleCkpOwogCX0KICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCkBAIC0z NzA2LDcgKzM3MDcsOCBAQCBlcnJfZXhpdDoKIAogCXV0X2FkKHBhZ2VfdmFsaWRhdGUobWVyZ2Vf cGFnZSwgaW5kZXgpKTsKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCXV0X2EoIW1lcmdlX3BhZ2Vf emlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKG1lcmdlX3BhZ2VfemlwLCBtZXJnZV9wYWdlKSk7CisJ dXRfYSghbWVyZ2VfcGFnZV96aXAgfHwgcGFnZV96aXBfdmFsaWRhdGUobWVyZ2VfcGFnZV96aXAs IG1lcmdlX3BhZ2UsCisJCQkJCQkgIGluZGV4KSk7CiAjZW5kaWYgLyogVU5JVl9aSVBfREVCVUcg Ki8KIAogCS8qIEZyZWUgdGhlIGZpbGUgcGFnZSAqLwpAQCAtMzg4OSw3ICszODkxLDcgQEAgYnRy X2Rpc2NhcmRfcGFnZSgKIAkJcGFnZV96aXBfZGVzX3QqCW1lcmdlX3BhZ2VfemlwCiAJCQk9IGJ1 Zl9ibG9ja19nZXRfcGFnZV96aXAobWVyZ2VfYmxvY2spOwogCQl1dF9hKCFtZXJnZV9wYWdlX3pp cAotCQkgICAgIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKG1lcmdlX3BhZ2VfemlwLCBtZXJnZV9wYWdl KSk7CisJCSAgICAgfHwgcGFnZV96aXBfdmFsaWRhdGUobWVyZ2VfcGFnZV96aXAsIG1lcmdlX3Bh Z2UsIGluZGV4KSk7CiAJfQogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICovCiAKQEAgLTQzOTEs NyArNDM5Myw3IEBAIGJ0cl92YWxpZGF0ZV9sZXZlbCgKIAkJdXRfYShzcGFjZSA9PSBwYWdlX2dl dF9zcGFjZV9pZChwYWdlKSk7CiAjaWZkZWYgVU5JVl9aSVBfREVCVUcKIAkJcGFnZV96aXAgPSBi dWZfYmxvY2tfZ2V0X3BhZ2VfemlwKGJsb2NrKTsKLQkJdXRfYSghcGFnZV96aXAgfHwgcGFnZV96 aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UpKTsKKwkJdXRfYSghcGFnZV96aXAgfHwgcGFnZV96 aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UsIGluZGV4KSk7CiAjZW5kaWYgLyogVU5JVl9aSVBf REVCVUcgKi8KIAkJdXRfYSghcGFnZV9pc19sZWFmKHBhZ2UpKTsKIApAQCAtNDQyMCw3ICs0NDIy LDcgQEAgbG9vcDoKIAogI2lmZGVmIFVOSVZfWklQX0RFQlVHCiAJcGFnZV96aXAgPSBidWZfYmxv Y2tfZ2V0X3BhZ2VfemlwKGJsb2NrKTsKLQl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxp ZGF0ZShwYWdlX3ppcCwgcGFnZSkpOworCXV0X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlk YXRlKHBhZ2VfemlwLCBwYWdlLCBpbmRleCkpOwogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICov CiAKIAl1dF9hKGJsb2NrLT5wYWdlLnNwYWNlID09IHNwYWNlKTsKCj09PSBtb2RpZmllZCBmaWxl ICdzdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwY3VyLmNjJwotLS0gYS9zdG9yYWdlL2lubm9iYXNl L2J0ci9idHIwY3VyLmNjCXJldmlkOmhhcmluLnZhZG9kYXJpYUBvcmFjbGUuY29tLTIwMTIwOTE3 MTE0MjIyLXp1YTd3aXRhMG85bXVsYTcKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMGN1 ci5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDkxNzExNTMzNy0wcW9vNXQ5 ZGdtYjk5aHpqCkBAIC02OTMsNyArNjkzLDcgQEAgcmV0cnlfcGFnZV9nZXQ6CiAjaWZkZWYgVU5J Vl9aSVBfREVCVUcKIAkJY29uc3QgcGFnZV96aXBfZGVzX3QqCXBhZ2VfemlwCiAJCQk9IGJ1Zl9i bG9ja19nZXRfcGFnZV96aXAoYmxvY2spOwotCQl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92 YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkpOworCQl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92 YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSwgaW5kZXgpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJV RyAqLwogCiAJCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKApAQCAtMjEzMSw3ICsyMTMxLDcgQEAg YW55X2V4dGVybjoKIAogCXBhZ2VfemlwID0gYnVmX2Jsb2NrX2dldF9wYWdlX3ppcChibG9jayk7 CiAjaWZkZWYgVU5JVl9aSVBfREVCVUcKLQl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxp ZGF0ZShwYWdlX3ppcCwgcGFnZSkpOworCXV0X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlk YXRlKHBhZ2VfemlwLCBwYWdlLCBpbmRleCkpOwogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICov CiAKIAlpZiAocGFnZV96aXAKQEAgLTIzMzUsNyArMjMzNSw3IEBAIGJ0cl9jdXJfcGVzc2ltaXN0 aWNfdXBkYXRlKAogCQkJCU1UUl9NRU1PX1hfTE9DSykpOwogCXV0X2FkKG10cl9tZW1vX2NvbnRh aW5zKG10ciwgYmxvY2ssIE1UUl9NRU1PX1BBR0VfWF9GSVgpKTsKICNpZmRlZiBVTklWX1pJUF9E RUJVRwotCXV0X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdl KSk7CisJdXRfYSghcGFnZV96aXAgfHwgcGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2Us IGluZGV4KSk7CiAjZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8KIAkvKiBUaGUgaW5zZXJ0IGJ1 ZmZlciB0cmVlIHNob3VsZCBuZXZlciBiZSB1cGRhdGVkIGluIHBsYWNlLiAqLwogCXV0X2FkKCFk aWN0X2luZGV4X2lzX2lidWYoaW5kZXgpKTsKQEAgLTI0NzMsNyArMjQ3Myw3IEBAIG1ha2VfZXh0 ZXJuYWw6CiAJYnRyX3NlYXJjaF91cGRhdGVfaGFzaF9vbl9kZWxldGUoY3Vyc29yKTsKIAogI2lm ZGVmIFVOSVZfWklQX0RFQlVHCi0JdXRfYSghcGFnZV96aXAgfHwgcGFnZV96aXBfdmFsaWRhdGUo cGFnZV96aXAsIHBhZ2UpKTsKKwl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShw YWdlX3ppcCwgcGFnZSwgaW5kZXgpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCXBh Z2VfY3Vyc29yID0gYnRyX2N1cl9nZXRfcGFnZV9jdXIoY3Vyc29yKTsKIApAQCAtMjU4MSw3ICsy NTgxLDcgQEAgbWFrZV9leHRlcm5hbDoKIAkJYnVmX2Jsb2NrX3QqCXJlY19ibG9jayA9IGJ0cl9j dXJfZ2V0X2Jsb2NrKGN1cnNvcik7CiAKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCQl1dF9hKCFw YWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkpOworCQl1dF9hKCFw YWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSwgaW5kZXgpKTsKIAkJ cGFnZSA9IGJ1Zl9ibG9ja19nZXRfZnJhbWUocmVjX2Jsb2NrKTsKICNlbmRpZiAvKiBVTklWX1pJ UF9ERUJVRyAqLwogCQlwYWdlX3ppcCA9IGJ1Zl9ibG9ja19nZXRfcGFnZV96aXAocmVjX2Jsb2Nr KTsKQEAgLTI2MDUsNyArMjYwNSw3IEBAIG1ha2VfZXh0ZXJuYWw6CiAKIHJldHVybl9hZnRlcl9y ZXNlcnZhdGlvbnM6CiAjaWZkZWYgVU5JVl9aSVBfREVCVUcKLQl1dF9hKCFwYWdlX3ppcCB8fCBw YWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkpOworCXV0X2EoIXBhZ2VfemlwIHx8IHBh Z2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlLCBpbmRleCkpOwogI2VuZGlmIC8qIFVOSVZf WklQX0RFQlVHICovCiAKIAlpZiAobl9leHRlbnRzID4gMCkgewpAQCAtMzA3MCwxMiArMzA3MCwx NCBAQCBidHJfY3VyX29wdGltaXN0aWNfZGVsZXRlX2Z1bmMoCiAJCQkJcGFnZSwgMSk7CiAJCX0K ICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCQl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxp ZGF0ZShwYWdlX3ppcCwgcGFnZSkpOworCQl1dF9hKCFwYWdlX3ppcAorCQkgICAgIHx8IHBhZ2Vf emlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlLCBjdXJzb3ItPmluZGV4KSk7CiAjZW5kaWYgLyog VU5JVl9aSVBfREVCVUcgKi8KIAkJcGFnZV9jdXJfZGVsZXRlX3JlYyhidHJfY3VyX2dldF9wYWdl X2N1cihjdXJzb3IpLAogCQkJCSAgICBjdXJzb3ItPmluZGV4LCBvZmZzZXRzLCBtdHIpOwogI2lm ZGVmIFVOSVZfWklQX0RFQlVHCi0JCXV0X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRl KHBhZ2VfemlwLCBwYWdlKSk7CisJCXV0X2EoIXBhZ2VfemlwCisJCSAgICAgfHwgcGFnZV96aXBf dmFsaWRhdGUocGFnZV96aXAsIHBhZ2UsIGN1cnNvci0+aW5kZXgpKTsKICNlbmRpZiAvKiBVTklW X1pJUF9ERUJVRyAqLwogCiAJCWlmIChkaWN0X2luZGV4X2lzX2NsdXN0KGN1cnNvci0+aW5kZXgp CkBAIC0zMTc0LDcgKzMxNzYsNyBAQCBidHJfY3VyX3Blc3NpbWlzdGljX2RlbGV0ZSgKIAlyZWMg PSBidHJfY3VyX2dldF9yZWMoY3Vyc29yKTsKIAlwYWdlX3ppcCA9IGJ1Zl9ibG9ja19nZXRfcGFn ZV96aXAoYmxvY2spOwogI2lmZGVmIFVOSVZfWklQX0RFQlVHCi0JdXRfYSghcGFnZV96aXAgfHwg cGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UpKTsKKwl1dF9hKCFwYWdlX3ppcCB8fCBw YWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSwgaW5kZXgpKTsKICNlbmRpZiAvKiBVTklW X1pJUF9ERUJVRyAqLwogCiAJb2Zmc2V0cyA9IHJlY19nZXRfb2Zmc2V0cyhyZWMsIGluZGV4LCBO VUxMLCBVTElOVF9VTkRFRklORUQsICZoZWFwKTsKQEAgLTMxODQsNyArMzE4Niw3IEBAIGJ0cl9j dXJfcGVzc2ltaXN0aWNfZGVsZXRlKAogCQkJCQkJICAgICAgcmVjLCBvZmZzZXRzLCBwYWdlX3pp cCwKIAkJCQkJCSAgICAgIHJiX2N0eCwgbXRyKTsKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCQl1 dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkpOworCQl1 dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSwgaW5kZXgp KTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCX0KIApAQCAtMzI0Nyw3ICszMjQ5LDcg QEAgYnRyX2N1cl9wZXNzaW1pc3RpY19kZWxldGUoCiAKIAlwYWdlX2N1cl9kZWxldGVfcmVjKGJ0 cl9jdXJfZ2V0X3BhZ2VfY3VyKGN1cnNvciksIGluZGV4LCBvZmZzZXRzLCBtdHIpOwogI2lmZGVm IFVOSVZfWklQX0RFQlVHCi0JdXRfYSghcGFnZV96aXAgfHwgcGFnZV96aXBfdmFsaWRhdGUocGFn ZV96aXAsIHBhZ2UpKTsKKwl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdl X3ppcCwgcGFnZSwgaW5kZXgpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCiAJdXRf YWQoYnRyX2NoZWNrX25vZGVfcHRyKGluZGV4LCBibG9jaywgbXRyKSk7Cgo9PT0gbW9kaWZpZWQg ZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9idWYvYnVmMGxydS5jYycKLS0tIGEvc3RvcmFnZS9pbm5v YmFzZS9idWYvYnVmMGxydS5jYwlyZXZpZDpoYXJpbi52YWRvZGFyaWFAb3JhY2xlLmNvbS0yMDEy MDkxNzExNDIyMi16dWE3d2l0YTBvOW11bGE3CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1 ZjBscnUuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA5MTcxMTUzMzctMHFv bzV0OWRnbWI5OWh6agpAQCAtMjE5MSw3ICsyMTkxLDkgQEAgYnVmX0xSVV9ibG9ja19yZW1vdmVf aGFzaGVkX3BhZ2UoCiAJCQkJYnJlYWs7CiAJCQljYXNlIEZJTF9QQUdFX0lOREVYOgogI2lmZGVm IFVOSVZfWklQX0RFQlVHCi0JCQkJdXRfYShwYWdlX3ppcF92YWxpZGF0ZSgmYnBhZ2UtPnppcCwg cGFnZSkpOworCQkJCXV0X2EocGFnZV96aXBfdmFsaWRhdGUoCisJCQkJCSAgICAgJmJwYWdlLT56 aXAsIHBhZ2UsCisJCQkJCSAgICAgKChidWZfYmxvY2tfdCopIGJwYWdlKS0+aW5kZXgpKTsKICNl bmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKCj09PSBt b2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2lidWYvaWJ1ZjBpYnVmLmNjJwotLS0gYS9z dG9yYWdlL2lubm9iYXNlL2lidWYvaWJ1ZjBpYnVmLmNjCXJldmlkOmhhcmluLnZhZG9kYXJpYUBv cmFjbGUuY29tLTIwMTIwOTE3MTE0MjIyLXp1YTd3aXRhMG85bXVsYTcKKysrIGIvc3RvcmFnZS9p bm5vYmFzZS9pYnVmL2lidWYwaWJ1Zi5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0y MDEyMDkxNzExNTMzNy0wcW9vNXQ5ZGdtYjk5aHpqCkBAIC00MjgzLDExICs0MjgzLDExIEBAIGli dWZfZGVsZXRlKAogCQkJCQlwYWdlLCAxKTsKIAkJfQogI2lmZGVmIFVOSVZfWklQX0RFQlVHCi0J CXV0X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlKSk7CisJ CXV0X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlLCBpbmRl eCkpOwogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICovCiAJCXBhZ2VfY3VyX2RlbGV0ZV9yZWMo JnBhZ2VfY3VyLCBpbmRleCwgb2Zmc2V0cywgbXRyKTsKICNpZmRlZiBVTklWX1pJUF9ERUJVRwot CQl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkpOwor CQl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSwgaW5k ZXgpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCiAJCWlmIChwYWdlX3ppcCkgewoK PT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9wYWdlMHppcC5oJwot LS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcGFnZTB6aXAuaAlyZXZpZDpoYXJpbi52YWRv ZGFyaWFAb3JhY2xlLmNvbS0yMDEyMDkxNzExNDIyMi16dWE3d2l0YTBvOW11bGE3CisrKyBiL3N0 b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9wYWdlMHppcC5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFj bGUuY29tLTIwMTIwOTE3MTE1MzM3LTBxb281dDlkZ21iOTloemoKQEAgLTE2OSw5ICsxNjksMTAg QEAgcGFnZV96aXBfdmFsaWRhdGVfbG93KAogLyo9PT09PT09PT09PT09PT09PT0qLwogCWNvbnN0 IHBhZ2VfemlwX2Rlc190KglwYWdlX3ppcCwvKiE8IGluOiBjb21wcmVzc2VkIHBhZ2UgKi8KIAlj b25zdCBwYWdlX3QqCQlwYWdlLAkvKiE8IGluOiB1bmNvbXByZXNzZWQgcGFnZSAqLworCWNvbnN0 IGRpY3RfaW5kZXhfdCoJaW5kZXgsCS8qITwgaW46IGluZGV4IG9mIHRoZSBwYWdlLCBpZiBrbm93 biAqLwogCWlib29sCQkJc2xvcHB5KQkvKiE8IGluOiBGQUxTRT1zdHJpY3QsCiAJCQkJCVRSVUU9 aWdub3JlIHRoZSBNSU5fUkVDX0ZMQUcgKi8KLQlfX2F0dHJpYnV0ZV9fKChub25udWxsKSk7CisJ X19hdHRyaWJ1dGVfXygobm9ubnVsbCgxLDIpKSk7CiAvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIENoZWNr IHRoYXQgdGhlIGNvbXByZXNzZWQgYW5kIGRlY29tcHJlc3NlZCBwYWdlcyBtYXRjaC4gKi8KIFVO SVZfSU5URVJOCkBAIC0xNzksOCArMTgwLDkgQEAgaWJvb2wKIHBhZ2VfemlwX3ZhbGlkYXRlKAog Lyo9PT09PT09PT09PT09PSovCiAJY29uc3QgcGFnZV96aXBfZGVzX3QqCXBhZ2VfemlwLC8qITwg aW46IGNvbXByZXNzZWQgcGFnZSAqLwotCWNvbnN0IHBhZ2VfdCoJCXBhZ2UpCS8qITwgaW46IHVu Y29tcHJlc3NlZCBwYWdlICovCi0JX19hdHRyaWJ1dGVfXygobm9ubnVsbCkpOworCWNvbnN0IHBh Z2VfdCoJCXBhZ2UsCS8qITwgaW46IHVuY29tcHJlc3NlZCBwYWdlICovCisJY29uc3QgZGljdF9p bmRleF90KglpbmRleCkJLyohPCBpbjogaW5kZXggb2YgdGhlIHBhZ2UsIGlmIGtub3duICovCisJ X19hdHRyaWJ1dGVfXygobm9ubnVsbCgxLDIpKSk7CiAjZW5kaWYgLyogVU5JVl9aSVBfREVCVUcg Ki8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovLyoqCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5v YmFzZS9sb2cvbG9nMHJlY3YuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvbG9nL2xvZzByZWN2 LmNjCXJldmlkOmhhcmluLnZhZG9kYXJpYUBvcmFjbGUuY29tLTIwMTIwOTE3MTE0MjIyLXp1YTd3 aXRhMG85bXVsYTcKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9sb2cvbG9nMHJlY3YuY2MJcmV2aWQ6 bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA5MTcxMTUzMzctMHFvbzV0OWRnbWI5OWh6agpA QCAtMTY0OSw5ICsxNjQ5LDggQEAgcmVjdl9yZWNvdmVyX3BhZ2VfZnVuYygKIAlpZiAoZmlsX3Bh Z2VfZ2V0X3R5cGUocGFnZSkgPT0gRklMX1BBR0VfSU5ERVgpIHsKIAkJcGFnZV96aXBfZGVzX3Qq CXBhZ2VfemlwID0gYnVmX2Jsb2NrX2dldF9wYWdlX3ppcChibG9jayk7CiAKLQkJaWYgKHBhZ2Vf emlwKSB7Ci0JCQl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlX2xvdyhwYWdlX3ppcCwgcGFnZSwgRkFM U0UpKTsKLQkJfQorCQl1dF9hKCFwYWdlX3ppcAorCQkgICAgIHx8IHBhZ2VfemlwX3ZhbGlkYXRl X2xvdyhwYWdlX3ppcCwgcGFnZSwgTlVMTCwgRkFMU0UpKTsKIAl9CiAjZW5kaWYgLyogVU5JVl9a SVBfREVCVUcgKi8KIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvcGFnZS9w YWdlMGN1ci5jYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9wYWdlL3BhZ2UwY3VyLmNjCXJldmlk OmhhcmluLnZhZG9kYXJpYUBvcmFjbGUuY29tLTIwMTIwOTE3MTE0MjIyLXp1YTd3aXRhMG85bXVs YTcKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9wYWdlL3BhZ2UwY3VyLmNjCXJldmlkOm1hcmtvLm1h a2VsYUBvcmFjbGUuY29tLTIwMTIwOTE3MTE1MzM3LTBxb281dDlkZ21iOTloemoKQEAgLTMxMSw3 ICszMTEsNyBAQCBwYWdlX2N1cl9zZWFyY2hfd2l0aF9tYXRjaCgKICNlbmRpZiAvKiBVTklWX0RF QlVHICovCiAJcGFnZSA9IGJ1Zl9ibG9ja19nZXRfZnJhbWUoYmxvY2spOwogI2lmZGVmIFVOSVZf WklQX0RFQlVHCi0JdXRfYSghcGFnZV96aXAgfHwgcGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAs IHBhZ2UpKTsKKwl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwg cGFnZSwgaW5kZXgpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCiAJcGFnZV9jaGVj a19kaXIocGFnZSk7CkBAIC0xMjY5LDcgKzEyNjksNyBAQCBwYWdlX2N1cl9pbnNlcnRfcmVjX3pp cCgKIAogCXV0X2FkKCFwYWdlX3JlY19pc19zdXByZW11bSgqY3VycmVudF9yZWMpKTsKICNpZmRl ZiBVTklWX1pJUF9ERUJVRwotCXV0X2EocGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2Up KTsKKwl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlLCBpbmRleCkpOwogI2Vu ZGlmIC8qIFVOSVZfWklQX0RFQlVHICovCiAKIAkvKiAxLiBHZXQgdGhlIHNpemUgb2YgdGhlIHBo eXNpY2FsIHJlY29yZCBpbiB0aGUgcGFnZSAqLwpAQCAtMjAyMCw3ICsyMDIwLDcgQEAgcGFnZV9j dXJfZGVsZXRlX3JlYygKIAl9CiAKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCXV0X2EoIXBhZ2Vf emlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlKSk7CisJdXRfYSghcGFnZV96 aXAgfHwgcGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UsIGluZGV4KSk7CiAjZW5kaWYg LyogVU5JVl9aSVBfREVCVUcgKi8KIH0KIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5u b2Jhc2UvcGFnZS9wYWdlMHBhZ2UuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvcGFnZS9wYWdl MHBhZ2UuY2MJcmV2aWQ6aGFyaW4udmFkb2RhcmlhQG9yYWNsZS5jb20tMjAxMjA5MTcxMTQyMjIt enVhN3dpdGEwbzltdWxhNworKysgYi9zdG9yYWdlL2lubm9iYXNlL3BhZ2UvcGFnZTBwYWdlLmNj CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwOTE3MTE1MzM3LTBxb281dDlkZ21i OTloemoKQEAgLTYyOCw3ICs2MjgsNyBAQCBwYWdlX2NvcHlfcmVjX2xpc3RfZW5kKAogCQlGdXJ0 aGVybW9yZSwgYnRyX2NvbXByZXNzKCkgbWF5IHNldCBGSUxfUEFHRV9QUkVWIHRvCiAJCUZJTF9O VUxMIG9uIG5ld19wYWdlIHdoaWxlIGxlYXZpbmcgaXQgaW50YWN0IG9uCiAJCW5ld19wYWdlX3pp cC4gIFNvLCB3ZSBjYW5ub3QgdmFsaWRhdGUgbmV3X3BhZ2VfemlwLiAqLwotCQl1dF9hKHBhZ2Vf emlwX3ZhbGlkYXRlX2xvdyhwYWdlX3ppcCwgcGFnZSwgVFJVRSkpOworCQl1dF9hKHBhZ2Vfemlw X3ZhbGlkYXRlX2xvdyhwYWdlX3ppcCwgcGFnZSwgaW5kZXgsIFRSVUUpKTsKIAl9CiAjZW5kaWYg LyogVU5JVl9aSVBfREVCVUcgKi8KIAl1dF9hZChidWZfYmxvY2tfZ2V0X2ZyYW1lKGJsb2NrKSA9 PSBwYWdlKTsKQEAgLTk0OSw3ICs5NDksNyBAQCBwYWdlX2RlbGV0ZV9yZWNfbGlzdF9lbmQoCiAJ dXRfYWQoc2l6ZSA9PSBVTElOVF9VTkRFRklORUQgfHwgc2l6ZSA8IFVOSVZfUEFHRV9TSVpFKTsK IAl1dF9hZCghcGFnZV96aXAgfHwgcGFnZV9yZWNfaXNfY29tcChyZWMpKTsKICNpZmRlZiBVTklW X1pJUF9ERUJVRwotCXV0X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2Vfemlw LCBwYWdlKSk7CisJdXRfYSghcGFnZV96aXAgfHwgcGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAs IHBhZ2UsIGluZGV4KSk7CiAjZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8KIAogCWlmIChwYWdl X3JlY19pc19pbmZpbXVtKHJlYykpIHsKQEAgLTk5MSw3ICs5OTEsNyBAQCBwYWdlX2RlbGV0ZV9y ZWNfbGlzdF9lbmQoCiAJCQkJCQkgIFVMSU5UX1VOREVGSU5FRCwgJmhlYXApOwogCQkJcmVjID0g cmVjX2dldF9uZXh0X3B0cihyZWMsIFRSVUUpOwogI2lmZGVmIFVOSVZfWklQX0RFQlVHCi0JCQl1 dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlKSk7CisJCQl1dF9hKHBhZ2Vfemlw X3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlLCBpbmRleCkpOwogI2VuZGlmIC8qIFVOSVZfWklQX0RF QlVHICovCiAJCQlwYWdlX2N1cl9kZWxldGVfcmVjKCZjdXIsIGluZGV4LCBvZmZzZXRzLCBtdHIp OwogCQl9IHdoaWxlIChwYWdlX29mZnNldChyZWMpICE9IFBBR0VfTkVXX1NVUFJFTVVNKTsKQEAg LTExMzEsNyArMTEzMSw4IEBAIHBhZ2VfZGVsZXRlX3JlY19saXN0X3N0YXJ0KAogCQliZXR3ZWVu IGJ0cl9hdHRhY2hfaGFsZl9wYWdlcygpIGFuZCBpbnNlcnRfcGFnZSA9IC4uLgogCQl3aGVuIGJ0 cl9wYWdlX2dldF9zcGxpdF9yZWNfdG9fbGVmdCgpIGhvbGRzCiAJCShkaXJlY3Rpb24gPT0gRlNQ X0RPV04pLiAqLwotCQl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZV9sb3cocGFn ZV96aXAsIHBhZ2UsIFRSVUUpKTsKKwkJdXRfYSghcGFnZV96aXAKKwkJICAgICB8fCBwYWdlX3pp cF92YWxpZGF0ZV9sb3cocGFnZV96aXAsIHBhZ2UsIGluZGV4LCBUUlVFKSk7CiAJfQogI2VuZGlm IC8qIFVOSVZfWklQX0RFQlVHICovCiAKQEAgLTEyMDIsOSArMTIwMywxMCBAQCBwYWdlX21vdmVf cmVjX2xpc3RfZW5kKAogCQkJPSBidWZfYmxvY2tfZ2V0X3BhZ2VfemlwKGJsb2NrKTsKIAkJdXRf YSghbmV3X3BhZ2VfemlwID09ICFwYWdlX3ppcCk7CiAJCXV0X2EoIW5ld19wYWdlX3ppcAotCQkg ICAgIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKG5ld19wYWdlX3ppcCwgbmV3X3BhZ2UpKTsKKwkJICAg ICB8fCBwYWdlX3ppcF92YWxpZGF0ZShuZXdfcGFnZV96aXAsIG5ld19wYWdlLCBpbmRleCkpOwog CQl1dF9hKCFwYWdlX3ppcAotCQkgICAgIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBw YWdlX2FsaWduKHNwbGl0X3JlYykpKTsKKwkJICAgICB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdl X3ppcCwgcGFnZV9hbGlnbihzcGxpdF9yZWMpLAorCQkJCQkgIGluZGV4KSk7CiAJfQogI2VuZGlm IC8qIFVOSVZfWklQX0RFQlVHICovCiAKQEAgLTI2NTYsMTMgKzI2NTgsMTMgQEAgcGFnZV9kZWxl dGVfcmVjKAogCiAJaWYgKG5vX2NvbXByZXNzX25lZWRlZCkgewogI2lmZGVmIFVOSVZfWklQX0RF QlVHCi0JCXV0X2EocGFnZV96aXAgPT0gMCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwg cGFnZSkpOworCQl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwg cGFnZSwgaW5kZXgpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCiAJCXBhZ2VfY3Vy X2RlbGV0ZV9yZWMocGN1ciwgaW5kZXgsIG9mZnNldHMsIDApOwogCiAjaWZkZWYgVU5JVl9aSVBf REVCVUcKLQkJdXRfYShwYWdlX3ppcCA9PSAwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2Vfemlw LCBwYWdlKSk7CisJCXV0X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2Vfemlw LCBwYWdlLCBpbmRleCkpOwogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICovCiAJfQogCgo9PT0g bW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9wYWdlL3BhZ2UwemlwLmNjJwotLS0gYS9z dG9yYWdlL2lubm9iYXNlL3BhZ2UvcGFnZTB6aXAuY2MJcmV2aWQ6aGFyaW4udmFkb2RhcmlhQG9y YWNsZS5jb20tMjAxMjA5MTcxMTQyMjItenVhN3dpdGEwbzltdWxhNworKysgYi9zdG9yYWdlL2lu bm9iYXNlL3BhZ2UvcGFnZTB6aXAuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAx MjA5MTcxMTUzMzctMHFvbzV0OWRnbWI5OWh6agpAQCAtMTQ4Niw3ICsxNDg2LDcgQEAgZXJyX2V4 aXQ6CiAJICAgICAgIHBhZ2VfemlwX2dldF9zaXplKHBhZ2VfemlwKSAtIFBBR0VfREFUQSk7CiAJ bWVtX2hlYXBfZnJlZShoZWFwKTsKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCXV0X2EocGFnZV96 aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UpKTsKKwl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKHBh Z2VfemlwLCBwYWdlLCBpbmRleCkpOwogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICovCiAKIAlp ZiAobXRyKSB7CkBAIC0zMTkzLDYgKzMxOTMsNyBAQCBwYWdlX3ppcF92YWxpZGF0ZV9sb3coCiAv Kj09PT09PT09PT09PT09PT09PSovCiAJY29uc3QgcGFnZV96aXBfZGVzX3QqCXBhZ2VfemlwLC8q ITwgaW46IGNvbXByZXNzZWQgcGFnZSAqLwogCWNvbnN0IHBhZ2VfdCoJCXBhZ2UsCS8qITwgaW46 IHVuY29tcHJlc3NlZCBwYWdlICovCisJY29uc3QgZGljdF9pbmRleF90KglpbmRleCwJLyohPCBp bjogaW5kZXggb2YgdGhlIHBhZ2UsIGlmIGtub3duICovCiAJaWJvb2wJCQlzbG9wcHkpCS8qITwg aW46IEZBTFNFPXN0cmljdCwKIAkJCQkJVFJVRT1pZ25vcmUgdGhlIE1JTl9SRUNfRkxBRyAqLwog ewpAQCAtMzIyOSw3ICszMjMwLDcgQEAgcGFnZV96aXBfdmFsaWRhdGVfbG93KAogCVVOSVZfTUVN X0FTU0VSVF9SVygpIGNoZWNrcyBmYWlsLiAgVGhlIHYtYml0cyBvZiBwYWdlW10sCiAJcGFnZV96 aXAtPmRhdGFbXSBvciBwYWdlX3ppcCBjb3VsZCBiZSB2aWV3ZWQgYXQgdGVtcF9wYWdlW10gb3IK IAl0ZW1wX3BhZ2VfemlwIGluIGEgZGVidWdnZXIgd2hlbiBydW5uaW5nIHZhbGdyaW5kIC0tZGIt YXR0YWNoLiAqLwotCVZBTEdSSU5EX0dFVF9WQklUUyhwYWdlLCB0ZW1wX3BhZ2UsIFVOSVZfUEFH RV9TSVpFKTsKKwkodm9pZCkgVkFMR1JJTkRfR0VUX1ZCSVRTKHBhZ2UsIHRlbXBfcGFnZSwgVU5J Vl9QQUdFX1NJWkUpOwogCVVOSVZfTUVNX0FTU0VSVF9SVyhwYWdlLCBVTklWX1BBR0VfU0laRSk7 CiAjIGlmIFVOSVZfV09SRF9TSVpFID09IDQKIAlWQUxHUklORF9HRVRfVkJJVFMocGFnZV96aXAs ICZ0ZW1wX3BhZ2VfemlwLCBzaXplb2YgdGVtcF9wYWdlX3ppcCk7CkBAIC0zMjM4LDggKzMyMzks OCBAQCBwYWdlX3ppcF92YWxpZGF0ZV9sb3coCiAJcGFkIGJ5dGVzLiAqLwogCVVOSVZfTUVNX0FT U0VSVF9SVyhwYWdlX3ppcCwgc2l6ZW9mICpwYWdlX3ppcCk7CiAjIGVuZGlmCi0JVkFMR1JJTkRf R0VUX1ZCSVRTKHBhZ2VfemlwLT5kYXRhLCB0ZW1wX3BhZ2UsCi0JCQkgICBwYWdlX3ppcF9nZXRf c2l6ZShwYWdlX3ppcCkpOworCSh2b2lkKSBWQUxHUklORF9HRVRfVkJJVFMocGFnZV96aXAtPmRh dGEsIHRlbXBfcGFnZSwKKwkJCQkgIHBhZ2VfemlwX2dldF9zaXplKHBhZ2VfemlwKSk7CiAJVU5J Vl9NRU1fQVNTRVJUX1JXKHBhZ2VfemlwLT5kYXRhLCBwYWdlX3ppcF9nZXRfc2l6ZShwYWdlX3pp cCkpOwogI2VuZGlmIC8qIFVOSVZfREVCVUdfVkFMR1JJTkQgKi8KIApAQCAtMzI4MCwzOSArMzI4 MSwxMDIgQEAgcGFnZV96aXBfdmFsaWRhdGVfbG93KAogCQljb21taXR0ZWQuICBMZXQgdXMgdG9s ZXJhdGUgdGhhdCBkaWZmZXJlbmNlIHdoZW4gd2UKIAkJYXJlIHBlcmZvcm1pbmcgYSBzbG9wcHkg dmFsaWRhdGlvbi4gKi8KIAotCQlpZiAoc2xvcHB5KSB7Ci0JCQlieXRlCWluZm9fYml0c19kaWZm OwotCQkJdWxpbnQJb2Zmc2V0Ci0JCQkJPSByZWNfZ2V0X25leHRfb2ZmcyhwYWdlICsgUEFHRV9O RVdfSU5GSU1VTSwKLQkJCQkJCSAgICBUUlVFKTsKLQkJCXV0X2Eob2Zmc2V0ID49IFBBR0VfTkVX X1NVUFJFTVVNKTsKLQkJCW9mZnNldCAtPSA1IC8qIFJFQ19ORVdfSU5GT19CSVRTICovOwotCi0J CQlpbmZvX2JpdHNfZGlmZiA9IHBhZ2Vbb2Zmc2V0XSBeIHRlbXBfcGFnZVtvZmZzZXRdOwotCi0J CQlpZiAoaW5mb19iaXRzX2RpZmYgPT0gUkVDX0lORk9fTUlOX1JFQ19GTEFHKSB7Ci0JCQkJdGVt cF9wYWdlW29mZnNldF0gPSBwYWdlW29mZnNldF07Ci0KLQkJCQlpZiAoIW1lbWNtcChwYWdlICsg UEFHRV9IRUFERVIsCi0JCQkJCSAgICB0ZW1wX3BhZ2UgKyBQQUdFX0hFQURFUiwKLQkJCQkJICAg IFVOSVZfUEFHRV9TSVpFIC0gUEFHRV9IRUFERVIKLQkJCQkJICAgIC0gRklMX1BBR0VfREFUQV9F TkQpKSB7Ci0KLQkJCQkJLyogT25seSB0aGUgbWluaW11bSByZWNvcmQgZmxhZwotCQkJCQlkaWZm ZXJlZC4gIExldCB1cyBpZ25vcmUgaXQuICovCi0JCQkJCXBhZ2VfemlwX2ZhaWwoKCJwYWdlX3pp cF92YWxpZGF0ZTogIgotCQkJCQkJICAgICAgICJtaW5fcmVjX2ZsYWcgIgotCQkJCQkJICAgICAg ICIoaWdub3JlZCwgIgotCQkJCQkJICAgICAgICIlbHUsJWx1LDB4JTAybHgpXG4iLAotCQkJCQkJ ICAgICAgIHBhZ2VfZ2V0X3NwYWNlX2lkKHBhZ2UpLAotCQkJCQkJICAgICAgIHBhZ2VfZ2V0X3Bh Z2Vfbm8ocGFnZSksCi0JCQkJCQkgICAgICAgKHVsb25nKSBwYWdlW29mZnNldF0pKTsKLQkJCQkJ Z290byBmdW5jX2V4aXQ7CisJCXVsaW50KgkJb2Zmc2V0czsKKwkJbWVtX2hlYXBfdCoJaGVhcDsK KwkJY29uc3QgcmVjX3QqCXJlYzsKKwkJY29uc3QgcmVjX3QqCXRyZWM7CisJCWJ5dGUJCWluZm9f Yml0c19kaWZmOworCQl1bGludAkJb2Zmc2V0CisJCQk9IHJlY19nZXRfbmV4dF9vZmZzKHBhZ2Ug KyBQQUdFX05FV19JTkZJTVVNLCBUUlVFKTsKKwkJdXRfYShvZmZzZXQgPj0gUEFHRV9ORVdfU1VQ UkVNVU0pOworCQlvZmZzZXQgLT0gNS8qUkVDX05FV19JTkZPX0JJVFMqLzsKKworCQlpbmZvX2Jp dHNfZGlmZiA9IHBhZ2Vbb2Zmc2V0XSBeIHRlbXBfcGFnZVtvZmZzZXRdOworCisJCWlmIChpbmZv X2JpdHNfZGlmZiA9PSBSRUNfSU5GT19NSU5fUkVDX0ZMQUcpIHsKKwkJCXRlbXBfcGFnZVtvZmZz ZXRdID0gcGFnZVtvZmZzZXRdOworCisJCQlpZiAoIW1lbWNtcChwYWdlICsgUEFHRV9IRUFERVIs CisJCQkJICAgIHRlbXBfcGFnZSArIFBBR0VfSEVBREVSLAorCQkJCSAgICBVTklWX1BBR0VfU0la RSAtIFBBR0VfSEVBREVSCisJCQkJICAgIC0gRklMX1BBR0VfREFUQV9FTkQpKSB7CisKKwkJCQkv KiBPbmx5IHRoZSBtaW5pbXVtIHJlY29yZCBmbGFnCisJCQkJZGlmZmVyZWQuICBMZXQgdXMgaWdu b3JlIGl0LiAqLworCQkJCXBhZ2VfemlwX2ZhaWwoKCJwYWdlX3ppcF92YWxpZGF0ZTogIgorCQkJ CQkgICAgICAgIm1pbl9yZWNfZmxhZyAiCisJCQkJCSAgICAgICAiKCVzIgorCQkJCQkgICAgICAg IiVsdSwlbHUsMHglMDJseClcbiIsCisJCQkJCSAgICAgICBzbG9wcHkgPyAiaWdub3JlZCwgIiA6 ICIiLAorCQkJCQkgICAgICAgcGFnZV9nZXRfc3BhY2VfaWQocGFnZSksCisJCQkJCSAgICAgICBw YWdlX2dldF9wYWdlX25vKHBhZ2UpLAorCQkJCQkgICAgICAgKHVsb25nKSBwYWdlW29mZnNldF0p KTsKKwkJCQl2YWxpZCA9IHNsb3BweTsKKwkJCQlnb3RvIGZ1bmNfZXhpdDsKKwkJCX0KKwkJfQor CisJCS8qIENvbXBhcmUgdGhlIHBvaW50ZXJzIGluIHRoZSBQQUdFX0ZSRUUgbGlzdC4gKi8KKwkJ cmVjID0gcGFnZV9oZWFkZXJfZ2V0X3B0cihwYWdlLCBQQUdFX0ZSRUUpOworCQl0cmVjID0gcGFn ZV9oZWFkZXJfZ2V0X3B0cih0ZW1wX3BhZ2UsIFBBR0VfRlJFRSk7CisKKwkJd2hpbGUgKHJlYyB8 fCB0cmVjKSB7CisJCQlpZiAocGFnZV9vZmZzZXQocmVjKSAhPSBwYWdlX29mZnNldCh0cmVjKSkg eworCQkJCXBhZ2VfemlwX2ZhaWwoKCJwYWdlX3ppcF92YWxpZGF0ZTogIgorCQkJCQkgICAgICAg IlBBR0VfRlJFRSBsaXN0OiAldSE9JXVcbiIsCisJCQkJCSAgICAgICAodW5zaWduZWQpIHBhZ2Vf b2Zmc2V0KHJlYyksCisJCQkJCSAgICAgICAodW5zaWduZWQpIHBhZ2Vfb2Zmc2V0KHRyZWMpKSk7 CisJCQkJdmFsaWQgPSBGQUxTRTsKKwkJCQlnb3RvIGZ1bmNfZXhpdDsKKwkJCX0KKworCQkJcmVj ID0gcGFnZV9yZWNfZ2V0X25leHRfbG93KHJlYywgVFJVRSk7CisJCQl0cmVjID0gcGFnZV9yZWNf Z2V0X25leHRfbG93KHRyZWMsIFRSVUUpOworCQl9CisKKwkJLyogQ29tcGFyZSB0aGUgcmVjb3Jk cy4gKi8KKwkJaGVhcCA9IE5VTEw7CisJCW9mZnNldHMgPSBOVUxMOworCQlyZWMgPSBwYWdlX3Jl Y19nZXRfbmV4dF9sb3coCisJCQlwYWdlICsgUEFHRV9ORVdfSU5GSU1VTSwgVFJVRSk7CisJCXRy ZWMgPSBwYWdlX3JlY19nZXRfbmV4dF9sb3coCisJCQl0ZW1wX3BhZ2UgKyBQQUdFX05FV19JTkZJ TVVNLCBUUlVFKTsKKworCQlkbyB7CisJCQlpZiAocGFnZV9vZmZzZXQocmVjKSAhPSBwYWdlX29m ZnNldCh0cmVjKSkgeworCQkJCXBhZ2VfemlwX2ZhaWwoKCJwYWdlX3ppcF92YWxpZGF0ZTogIgor CQkJCQkgICAgICAgInJlY29yZCBsaXN0OiAweCUwMnghPTB4JTAyeFxuIiwKKwkJCQkJICAgICAg ICh1bnNpZ25lZCkgcGFnZV9vZmZzZXQocmVjKSwKKwkJCQkJICAgICAgICh1bnNpZ25lZCkgcGFn ZV9vZmZzZXQodHJlYykpKTsKKwkJCQl2YWxpZCA9IEZBTFNFOworCQkJCWJyZWFrOworCQkJfQor CisJCQlpZiAoaW5kZXgpIHsKKwkJCQkvKiBDb21wYXJlIHRoZSBkYXRhLiAqLworCQkJCW9mZnNl dHMgPSByZWNfZ2V0X29mZnNldHMoCisJCQkJCXJlYywgaW5kZXgsIG9mZnNldHMsCisJCQkJCVVM SU5UX1VOREVGSU5FRCwgJmhlYXApOworCisJCQkJaWYgKG1lbWNtcChyZWMgLSByZWNfb2Zmc19l eHRyYV9zaXplKG9mZnNldHMpLAorCQkJCQkgICB0cmVjIC0gcmVjX29mZnNfZXh0cmFfc2l6ZShv ZmZzZXRzKSwKKwkJCQkJICAgcmVjX29mZnNfc2l6ZShvZmZzZXRzKSkpIHsKKwkJCQkJcGFnZV96 aXBfZmFpbCgKKwkJCQkJCSgicGFnZV96aXBfdmFsaWRhdGU6ICIKKwkJCQkJCSAicmVjb3JkIGNv bnRlbnQ6IDB4JTAyeCIsCisJCQkJCQkgKHVuc2lnbmVkKSBwYWdlX29mZnNldChyZWMpKSk7CisJ CQkJCXZhbGlkID0gRkFMU0U7CisJCQkJCWJyZWFrOwogCQkJCX0KIAkJCX0KKworCQkJcmVjID0g cGFnZV9yZWNfZ2V0X25leHRfbG93KHJlYywgVFJVRSk7CisJCQl0cmVjID0gcGFnZV9yZWNfZ2V0 X25leHRfbG93KHRyZWMsIFRSVUUpOworCQl9IHdoaWxlIChyZWMgfHwgdHJlYyk7CisKKwkJaWYg KGhlYXApIHsKKwkJCW1lbV9oZWFwX2ZyZWUoaGVhcCk7CiAJCX0KLQkJcGFnZV96aXBfZmFpbCgo InBhZ2VfemlwX3ZhbGlkYXRlOiBjb250ZW50XG4iKSk7Ci0JCXZhbGlkID0gRkFMU0U7CiAJfQog CiBmdW5jX2V4aXQ6CkBAIC0zMzM0LDkgKzMzOTgsMTAgQEAgaWJvb2wKIHBhZ2VfemlwX3ZhbGlk YXRlKAogLyo9PT09PT09PT09PT09PSovCiAJY29uc3QgcGFnZV96aXBfZGVzX3QqCXBhZ2Vfemlw LC8qITwgaW46IGNvbXByZXNzZWQgcGFnZSAqLwotCWNvbnN0IHBhZ2VfdCoJCXBhZ2UpCS8qITwg aW46IHVuY29tcHJlc3NlZCBwYWdlICovCisJY29uc3QgcGFnZV90KgkJcGFnZSwJLyohPCBpbjog dW5jb21wcmVzc2VkIHBhZ2UgKi8KKwljb25zdCBkaWN0X2luZGV4X3QqCWluZGV4KQkvKiE8IGlu OiBpbmRleCBvZiB0aGUgcGFnZSwgaWYga25vd24gKi8KIHsKLQlyZXR1cm4ocGFnZV96aXBfdmFs aWRhdGVfbG93KHBhZ2VfemlwLCBwYWdlLAorCXJldHVybihwYWdlX3ppcF92YWxpZGF0ZV9sb3co cGFnZV96aXAsIHBhZ2UsIGluZGV4LAogCQkJCSAgICAgcmVjdl9yZWNvdmVyeV9pc19vbigpKSk7 CiB9CiAjZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8KQEAgLTM2NjcsNyArMzczMiw3IEBAIHBh Z2VfemlwX3dyaXRlX3JlYygKIAlwYWdlX3ppcC0+bV9ub25lbXB0eSA9IFRSVUU7CiAKICNpZmRl ZiBVTklWX1pJUF9ERUJVRwotCXV0X2EocGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2Vf YWxpZ24ocmVjKSkpOworCXV0X2EocGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2VfYWxp Z24ocmVjKSwgaW5kZXgpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogfQogCkBAIC0z NzE0LDcgKzM3NzksNyBAQCBjb3JydXB0OgogCQl9CiAKICNpZmRlZiBVTklWX1pJUF9ERUJVRwot CQl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlKSk7CisJCXV0X2EocGFnZV96 aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UsIE5VTEwpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9E RUJVRyAqLwogCiAJCW1lbWNweShwYWdlICsgb2Zmc2V0LApAQCAtMzcyMyw3ICszNzg4LDcgQEAg Y29ycnVwdDoKIAkJICAgICAgIHB0ciArIDQsIEJUUl9FWFRFUk5fRklFTERfUkVGX1NJWkUpOwog CiAjaWZkZWYgVU5JVl9aSVBfREVCVUcKLQkJdXRfYShwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3pp cCwgcGFnZSkpOworCQl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlLCBOVUxM KSk7CiAjZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8KIAl9CiAKQEAgLTM3OTAsNyArMzg1NSw3 IEBAIHBhZ2VfemlwX3dyaXRlX2Jsb2JfcHRyKAogCW1lbWNweShleHRlcm5zLCBmaWVsZCwgQlRS X0VYVEVSTl9GSUVMRF9SRUZfU0laRSk7CiAKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCXV0X2Eo cGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UpKTsKKwl1dF9hKHBhZ2VfemlwX3ZhbGlk YXRlKHBhZ2VfemlwLCBwYWdlLCBpbmRleCkpOwogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICov CiAKIAlpZiAobXRyKSB7CkBAIC0zODYxLDcgKzM5MjYsNyBAQCBjb3JydXB0OgogCQl9CiAKICNp ZmRlZiBVTklWX1pJUF9ERUJVRwotCQl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBw YWdlKSk7CisJCXV0X2EocGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UsIE5VTEwpKTsK ICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCiAJCWZpZWxkID0gcGFnZSArIG9mZnNldDsK QEAgLTM4ODIsNyArMzk0Nyw3IEBAIGNvcnJ1cHQ6CiAJCW1lbWNweShzdG9yYWdlLCBwdHIgKyA0 LCBSRUNfTk9ERV9QVFJfU0laRSk7CiAKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCQl1dF9hKHBh Z2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlKSk7CisJCXV0X2EocGFnZV96aXBfdmFsaWRh dGUocGFnZV96aXAsIHBhZ2UsIE5VTEwpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwog CX0KIApAQCAtNDExMCw3ICs0MTc1LDcgQEAgcGFnZV96aXBfY2xlYXJfcmVjKAogCX0KIAogI2lm ZGVmIFVOSVZfWklQX0RFQlVHCi0JdXRfYShwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFn ZSkpOworCXV0X2EocGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UsIGluZGV4KSk7CiAj ZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8KIH0KIApAQCAtNDEzNCw3ICs0MTk5LDcgQEAgcGFn ZV96aXBfcmVjX3NldF9kZWxldGVkKAogCQkqc2xvdCAmPSB+KFBBR0VfWklQX0RJUl9TTE9UX0RF TCA+PiA4KTsKIAl9CiAjaWZkZWYgVU5JVl9aSVBfREVCVUcKLQl1dF9hKHBhZ2VfemlwX3ZhbGlk YXRlKHBhZ2VfemlwLCBwYWdlX2FsaWduKHJlYykpKTsKKwl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRl KHBhZ2VfemlwLCBwYWdlX2FsaWduKHJlYyksIE5VTEwpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9E RUJVRyAqLwogfQogCkBAIC00NDM2LDE0ICs0NTAxLDE0IEBAIGNvcnJ1cHQ6CiAJCQlnb3RvIGNv cnJ1cHQ7CiAJCX0KICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCQl1dF9hKHBhZ2VfemlwX3ZhbGlk YXRlKHBhZ2VfemlwLCBwYWdlKSk7CisJCXV0X2EocGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAs IHBhZ2UsIE5VTEwpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCiAJCW1lbWNweShw YWdlICsgb2Zmc2V0LCBwdHIsIGxlbik7CiAJCW1lbWNweShwYWdlX3ppcC0+ZGF0YSArIG9mZnNl dCwgcHRyLCBsZW4pOwogCiAjaWZkZWYgVU5JVl9aSVBfREVCVUcKLQkJdXRfYShwYWdlX3ppcF92 YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkpOworCQl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2Vf emlwLCBwYWdlLCBOVUxMKSk7CiAjZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8KIAl9CiAKQEAg LTQ1MjEsNyArNDU4Niw3IEBAIHBhZ2VfemlwX3Jlb3JnYW5pemUoCiAJdXRfYWQobXRyX21lbW9f Y29udGFpbnMobXRyLCBibG9jaywgTVRSX01FTU9fUEFHRV9YX0ZJWCkpOwogCXV0X2FkKHBhZ2Vf aXNfY29tcChwYWdlKSk7CiAJdXRfYWQoIWRpY3RfaW5kZXhfaXNfaWJ1ZihpbmRleCkpOwotCS8q IE5vdGUgdGhhdCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkgbWF5IGZhaWwgaGVy ZS4gKi8KKwkvKiBOb3RlIHRoYXQgcGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UsIGlu ZGV4KSBtYXkgZmFpbCBoZXJlLiAqLwogCVVOSVZfTUVNX0FTU0VSVF9SVyhwYWdlLCBVTklWX1BB R0VfU0laRSk7CiAJVU5JVl9NRU1fQVNTRVJUX1JXKHBhZ2VfemlwLT5kYXRhLCBwYWdlX3ppcF9n ZXRfc2l6ZShwYWdlX3ppcCkpOwogCkBAIC00NjA5LDcgKzQ2NzQsNyBAQCBwYWdlX3ppcF9jb3B5 X3JlY3MoCiAJRklMX1BBR0VfUFJFViBvciBQQUdFX0xFVkVMLCBjYXVzaW5nIGEgdGVtcG9yYXJ5 IG1pbl9yZWNfZmxhZwogCW1pc21hdGNoLiAgQSBzdHJpY3QgcGFnZV96aXBfdmFsaWRhdGUoKSB3 aWxsIGJlIGV4ZWN1dGVkIGxhdGVyCiAJZHVyaW5nIHRoZSBCLXRyZWUgb3BlcmF0aW9ucy4gKi8K LQl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlX2xvdyhzcmNfemlwLCBzcmMsIFRSVUUpKTsKKwl1dF9h KHBhZ2VfemlwX3ZhbGlkYXRlX2xvdyhzcmNfemlwLCBzcmMsIGluZGV4LCBUUlVFKSk7CiAjZW5k aWYgLyogVU5JVl9aSVBfREVCVUcgKi8KIAl1dF9hKHBhZ2VfemlwX2dldF9zaXplKHBhZ2Vfemlw KSA9PSBwYWdlX3ppcF9nZXRfc2l6ZShzcmNfemlwKSk7CiAJaWYgKFVOSVZfVU5MSUtFTFkoc3Jj X3ppcC0+bl9ibG9icykpIHsKQEAgLTQ2NzAsNyArNDczNSw3IEBAIHBhZ2VfemlwX2NvcHlfcmVj cygKIAl9CiAKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCXV0X2EocGFnZV96aXBfdmFsaWRhdGUo cGFnZV96aXAsIHBhZ2UpKTsKKwl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdl LCBpbmRleCkpOwogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICovCiAJYnRyX2Jsb2JfZGJnX2Fk ZChwYWdlLCBpbmRleCwgInBhZ2VfemlwX2NvcHlfcmVjcyIpOwogCgo9PT0gbW9kaWZpZWQgZmls ZSAnc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MGltcG9ydC5jYycKLS0tIGEvc3RvcmFnZS9pbm5v YmFzZS9yb3cvcm93MGltcG9ydC5jYwlyZXZpZDpoYXJpbi52YWRvZGFyaWFAb3JhY2xlLmNvbS0y MDEyMDkxNzExNDIyMi16dWE3d2l0YTBvOW11bGE3CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93 L3JvdzBpbXBvcnQuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA5MTcxMTUz MzctMHFvbzV0OWRnbWI5OWh6agpAQCAtMTQ2MCwxMCArMTQ2MCw2IEBAIFBhZ2VDb252ZXJ0ZXI6 OnVwZGF0ZV9pbmRleF9wYWdlKAogCWluZGV4X2lkX3QJaWQ7CiAJYnVmX2ZyYW1lX3QqCXBhZ2Ug PSBibG9jay0+ZnJhbWU7CiAKLSNpZmRlZiBVTklWX1pJUF9ERUJVRwotCXV0X2EoIWlzX2NvbXBy ZXNzZWRfdGFibGUoKSB8fCBwYWdlX3ppcF92YWxpZGF0ZShtX3BhZ2VfemlwX3B0ciwgcGFnZSkp OwotI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICovCi0KIAlpZiAoKGlkID0gYnRyX3BhZ2VfZ2V0 X2luZGV4X2lkKHBhZ2UpKSAhPSBtX2luZGV4LT5tX2lkKSB7CiAKIAkJcm93X2luZGV4X3QqCWlu ZGV4ID0gZmluZF9pbmRleChpZCk7CkBAIC0xNDgwLDYgKzE0NzYsMTEgQEAgUGFnZUNvbnZlcnRl cjo6dXBkYXRlX2luZGV4X3BhZ2UoCiAJCW1faW5kZXggPSBpbmRleDsKIAl9CiAKKyNpZmRlZiBV TklWX1pJUF9ERUJVRworCXV0X2EoIWlzX2NvbXByZXNzZWRfdGFibGUoKQorCSAgICAgfHwgcGFn ZV96aXBfdmFsaWRhdGUobV9wYWdlX3ppcF9wdHIsIHBhZ2UsIG1faW5kZXgtPm1fc3J2X2luZGV4 KSk7CisjZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8KKwogCS8qIFRoaXMgaGFzIHRvIGJlIHdy aXR0ZW4gdG8gdW5jb21wcmVzc2VkIGluZGV4IGhlYWRlci4gU2V0IGl0IHRvCiAJdGhlIGN1cnJl bnQgaW5kZXggaWQuICovCiAJYnRyX3BhZ2Vfc2V0X2luZGV4X2lkKAoKTm8gYnVuZGxlIChyZWFz b246IHVzZWxlc3MgZm9yIHB1c2ggZW1haWxzKS4=