From: marko.makela Date: August 15 2011 9:43am Subject: bzr push into mysql-trunk branch (marko.makela:3366 to 3367) List-Archive: http://lists.mysql.com/commits/140636 Message-Id: <201108150943.p7F9hZ6h023298@acsmt358.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDMzNjcgTWFya28gTcOka2Vsw6QJMjAxMS0wOC0xNSBbbWVyZ2VdCiAgICAgIE1lcmdlIG15c3Fs LTUuNSB0byBteXNxbC10cnVuay4KCiAgICBhZGRlZDoKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9p bm5vZGIvci9pbm5vZGJfYnVnNTk3MzMucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvaW5u b2RiL3QvaW5ub2RiX2J1ZzU5NzMzLnRlc3QKICAgIG1vZGlmaWVkOgogICAgICBzdG9yYWdlL2lu bm9iYXNlL2J0ci9idHIwYnRyLmMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMGN1ci5j CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0cjBwY3VyLmMKICAgICAgc3RvcmFnZS9pbm5v YmFzZS9idHIvYnRyMHNlYS5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvZGljdC9kaWN0MGNyZWEu YwogICAgICBzdG9yYWdlL2lubm9iYXNlL2RpY3QvZGljdDBkaWN0LmMKICAgICAgc3RvcmFnZS9p bm5vYmFzZS9pYnVmL2lidWYwaWJ1Zi5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9i dHIwYnRyLmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J0cjBidHIuaWMKICAgICAg c3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3N5bmMwc3luYy5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jh c2Uvc3luYy9zeW5jMHN5bmMuYwogMzM2NiBKb3JnZW4gTG9sYW5kCTIwMTEtMDgtMTUgW21lcmdl XQogICAgICBBdXRvbWVyZ2Ugb3B0LXRlYW0gLT4gdHJ1bmsKCiAgICBtb2RpZmllZDoKICAgICAg bXlzcWwtdGVzdC9pbmNsdWRlL2pvaW5fY2FjaGUuaW5jCiAgICAgIG15c3FsLXRlc3QvaW5jbHVk ZS9yYW5nZS5pbmMKICAgICAgbXlzcWwtdGVzdC9yL2lubm9kYl9pY3BfYWxsLnJlc3VsdAogICAg ICBteXNxbC10ZXN0L3IvaW5ub2RiX21ycl9hbGwucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvci9p bm5vZGJfbXJyX2Nvc3RfYWxsLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3Ivam9pbl9jYWNoZV9q Y2wwLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3Ivam9pbl9jYWNoZV9qY2wxLnJlc3VsdAogICAg ICBteXNxbC10ZXN0L3Ivam9pbl9jYWNoZV9qY2wyLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3Iv am9pbl9jYWNoZV9qY2wzLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3Ivam9pbl9jYWNoZV9qY2w0 LnJlc3VsdAogICAgICBteXNxbC10ZXN0L3Ivam9pbl9jYWNoZV9qY2w1LnJlc3VsdAogICAgICBt eXNxbC10ZXN0L3Ivam9pbl9jYWNoZV9qY2w2LnJlc3VsdAogICAgICBteXNxbC10ZXN0L3Ivam9p bl9jYWNoZV9qY2w3LnJlc3VsdAogICAgICBteXNxbC10ZXN0L3Ivam9pbl9jYWNoZV9qY2w4LnJl c3VsdAogICAgICBteXNxbC10ZXN0L3IvbXlpc2FtX2ljcF9hbGwucmVzdWx0CiAgICAgIG15c3Fs LXRlc3Qvci9teWlzYW1fbXJyX2FsbC5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9yL215aXNhbV9t cnJfY29zdF9hbGwucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvci9yYW5nZV9hbGwucmVzdWx0CiAg ICAgIG15c3FsLXRlc3Qvci9yYW5nZV9pY3AucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvci9yYW5n ZV9pY3BfbXJyLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3IvcmFuZ2VfbXJyLnJlc3VsdAogICAg ICBteXNxbC10ZXN0L3IvcmFuZ2VfbXJyX2Nvc3QucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvci9y YW5nZV9ub25lLnJlc3VsdAogICAgICBzcWwvZmllbGQuaAogICAgICBzcWwvb3B0X3JhbmdlLmNj CiAgICAgIHNxbC9zcWxfam9pbl9jYWNoZS5jYwogICAgICBzcWwvc3FsX3NlbGVjdC5oCj09PSBh ZGRlZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYl9idWc1OTczMy5yZXN1 bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiX2J1ZzU5NzMzLnJlc3Vs dAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvaW5ub2Ri L3IvaW5ub2RiX2J1ZzU5NzMzLnJlc3VsdAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0y MDExMDgxNTA5MzQzOS1mZHBja3VkcnhpbndwaGN3CkBAIC0wLDAgKzEsMTggQEAKK0NSRUFURSBU QUJMRSBidWc1OTczMyhhIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSxiIENIQVIoMSkp RU5HSU5FPUlubm9EQjsKK0lOU0VSVCBJTlRPIGJ1ZzU5NzMzIFZBTFVFUygwLCd4Jyk7CitJTlNF UlQgSU5UTyBidWc1OTczMyBTRUxFQ1QgMCxiIEZST00gYnVnNTk3MzM7CitJTlNFUlQgSU5UTyBi dWc1OTczMyBTRUxFQ1QgMCxiIEZST00gYnVnNTk3MzM7CitJTlNFUlQgSU5UTyBidWc1OTczMyBT RUxFQ1QgMCxiIEZST00gYnVnNTk3MzM7CitJTlNFUlQgSU5UTyBidWc1OTczMyBTRUxFQ1QgMCxi IEZST00gYnVnNTk3MzM7CitJTlNFUlQgSU5UTyBidWc1OTczMyBTRUxFQ1QgMCxiIEZST00gYnVn NTk3MzM7CitJTlNFUlQgSU5UTyBidWc1OTczMyBTRUxFQ1QgMCxiIEZST00gYnVnNTk3MzM7CitJ TlNFUlQgSU5UTyBidWc1OTczMyBTRUxFQ1QgMCxiIEZST00gYnVnNTk3MzM7CitJTlNFUlQgSU5U TyBidWc1OTczMyBTRUxFQ1QgMCxiIEZST00gYnVnNTk3MzM7CitJTlNFUlQgSU5UTyBidWc1OTcz MyBTRUxFQ1QgMCxiIEZST00gYnVnNTk3MzM7CitJTlNFUlQgSU5UTyBidWc1OTczMyBTRUxFQ1Qg MCxiIEZST00gYnVnNTk3MzM7CitJTlNFUlQgSU5UTyBidWc1OTczMyBTRUxFQ1QgMCxiIEZST00g YnVnNTk3MzM7CitDUkVBVEUgSU5ERVggYiBPTiBidWc1OTczMyAoYik7CitERUxFVEUgRlJPTSBi dWc1OTczMyBXSEVSRSAoYSUxMDApPTA7CitEUk9QIElOREVYIGIgT04gYnVnNTk3MzM7CitDUkVB VEUgSU5ERVggYiBPTiBidWc1OTczMyAoYik7CitEUk9QIFRBQkxFIGJ1ZzU5NzMzOwoKPT09IGFk ZGVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiX2J1ZzU5NzMzLnRlc3Qn Ci0tLSBhL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiX2J1ZzU5NzMzLnRlc3QJMTk3 MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lu bm9kYl9idWc1OTczMy50ZXN0CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwODE1 MDkzNDM5LWZkcGNrdWRyeGlud3BoY3cKQEAgLTAsMCArMSw1MyBAQAorIworIyBCdWcgIzU5NzMz IFBvc3NpYmxlIGRlYWRsb2NrIHdoZW4gYnVmZmVyZWQgY2hhbmdlcyBhcmUgdG8gYmUgZGlzY2Fy ZGVkCisjIGluIGJ1Zl9wYWdlX2NyZWF0ZQorIworLS0gc291cmNlIGluY2x1ZGUvaGF2ZV9pbm5v ZGIuaW5jCisKKy0tIGRpc2FibGVfcXVlcnlfbG9nCisjIFRoZSBmbGFnIGlubm9kYl9jaGFuZ2Vf YnVmZmVyaW5nX2RlYnVnIGlzIG9ubHkgYXZhaWxhYmxlIGluIGRlYnVnIGJ1aWxkcy4KKyMgSXQg aW5zdHJ1Y3RzIElubm9EQiB0byB0cnkgdG8gZXZpY3QgcGFnZXMgZnJvbSB0aGUgYnVmZmVyIHBv b2wgd2hlbgorIyBjaGFuZ2UgYnVmZmVyaW5nIGlzIHBvc3NpYmxlLCBzbyB0aGF0IHRoZSBjaGFu Z2UgYnVmZmVyIHdpbGwgYmUgdXNlZAorIyB3aGVuZXZlciBwb3NzaWJsZS4KKy0tIGVycm9yIDAs RVJfVU5LTk9XTl9TWVNURU1fVkFSSUFCTEUKK1NFVCBAaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdf ZGVidWdfb3JpZyA9IEBAaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdfZGVidWc7CistLSBlcnJvciAw LEVSX1VOS05PV05fU1lTVEVNX1ZBUklBQkxFCitTRVQgR0xPQkFMIGlubm9kYl9jaGFuZ2VfYnVm ZmVyaW5nX2RlYnVnID0gMTsKKy0tIGVuYWJsZV9xdWVyeV9sb2cKKworQ1JFQVRFIFRBQkxFIGJ1 ZzU5NzMzKGEgSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLGIgQ0hBUigxKSlFTkdJTkU9 SW5ub0RCOworCisjIENyZWF0ZSBlbm91Z2ggcm93cyBmb3IgdGhlIHRhYmxlLCBzbyB0aGF0IHRo ZSBpbnNlcnQgYnVmZmVyIHdpbGwgYmUKKyMgdXNlZC4gVGhlcmUgbXVzdCBiZSBtdWx0aXBsZSBp bmRleCBwYWdlcywgYmVjYXVzZSBjaGFuZ2VzIHRvIHRoZQorIyByb290IHBhZ2UgYXJlIG5ldmVy IGJ1ZmZlcmVkLgorCitJTlNFUlQgSU5UTyBidWc1OTczMyBWQUxVRVMoMCwneCcpOworSU5TRVJU IElOVE8gYnVnNTk3MzMgU0VMRUNUIDAsYiBGUk9NIGJ1ZzU5NzMzOworSU5TRVJUIElOVE8gYnVn NTk3MzMgU0VMRUNUIDAsYiBGUk9NIGJ1ZzU5NzMzOworSU5TRVJUIElOVE8gYnVnNTk3MzMgU0VM RUNUIDAsYiBGUk9NIGJ1ZzU5NzMzOworSU5TRVJUIElOVE8gYnVnNTk3MzMgU0VMRUNUIDAsYiBG Uk9NIGJ1ZzU5NzMzOworSU5TRVJUIElOVE8gYnVnNTk3MzMgU0VMRUNUIDAsYiBGUk9NIGJ1ZzU5 NzMzOworSU5TRVJUIElOVE8gYnVnNTk3MzMgU0VMRUNUIDAsYiBGUk9NIGJ1ZzU5NzMzOworSU5T RVJUIElOVE8gYnVnNTk3MzMgU0VMRUNUIDAsYiBGUk9NIGJ1ZzU5NzMzOworSU5TRVJUIElOVE8g YnVnNTk3MzMgU0VMRUNUIDAsYiBGUk9NIGJ1ZzU5NzMzOworSU5TRVJUIElOVE8gYnVnNTk3MzMg U0VMRUNUIDAsYiBGUk9NIGJ1ZzU5NzMzOworSU5TRVJUIElOVE8gYnVnNTk3MzMgU0VMRUNUIDAs YiBGUk9NIGJ1ZzU5NzMzOworSU5TRVJUIElOVE8gYnVnNTk3MzMgU0VMRUNUIDAsYiBGUk9NIGJ1 ZzU5NzMzOworCisjIENyZWF0ZSB0aGUgc2Vjb25kYXJ5IGluZGV4IGZvciB3aGljaCBjaGFuZ2Vz IHdpbGwgYmUgYnVmZmVyZWQuCitDUkVBVEUgSU5ERVggYiBPTiBidWc1OTczMyAoYik7CisKKyMg VGhpcyBzaG91bGQgYmUgYnVmZmVyZWQsIGlmIGlubm9kYl9jaGFuZ2VfYnVmZmVyaW5nX2RlYnVn ID0gMSBpcyBpbiBlZmZlY3QuCitERUxFVEUgRlJPTSBidWc1OTczMyBXSEVSRSAoYSUxMDApPTA7 CisKKyMgRHJvcCB0aGUgaW5kZXggaW4gb3JkZXIgdG8gZ2V0IGZyZWUgcGFnZXMgd2l0aCBvcnBo YW5lZCBidWZmZXJlZCBjaGFuZ2VzLgorRFJPUCBJTkRFWCBiIE9OIGJ1ZzU5NzMzOworCisjIENy ZWF0ZSB0aGUgaW5kZXggYW5kIGF0dGVtcHQgdG8gcmV1c2UgcGFnZXMgZm9yIHdoaWNoIGJ1ZmZl cmVkIGNoYW5nZXMgZXhpc3QuCitDUkVBVEUgSU5ERVggYiBPTiBidWc1OTczMyAoYik7CisKK0RS T1AgVEFCTEUgYnVnNTk3MzM7CisKKy0tIGRpc2FibGVfcXVlcnlfbG9nCistLSBlcnJvciAwLCBF Ul9VTktOT1dOX1NZU1RFTV9WQVJJQUJMRQorU0VUIEdMT0JBTCBpbm5vZGJfY2hhbmdlX2J1ZmZl cmluZ19kZWJ1ZyA9IEBpbm5vZGJfY2hhbmdlX2J1ZmZlcmluZ19kZWJ1Z19vcmlnOwoKPT09IG1v ZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0cjBidHIuYycKLS0tIGEvc3RvcmFn ZS9pbm5vYmFzZS9idHIvYnRyMGJ0ci5jCXJldmlkOmpvcmdlbi5sb2xhbmRAb3JhY2xlLmNvbS0y MDExMDgxNTA4NTgwNS03aWk4ejYxOXlqOGF5Y2ZsCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvYnRy L2J0cjBidHIuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDgxNTA5MzQzOS1m ZHBja3VkcnhpbndwaGN3CkBAIC02OTEsNyArNjkxLDggQEAgYnRyX3Jvb3RfYmxvY2tfZ2V0KAog CXppcF9zaXplID0gZGljdF90YWJsZV96aXBfc2l6ZShpbmRleC0+dGFibGUpOwogCXJvb3RfcGFn ZV9ubyA9IGRpY3RfaW5kZXhfZ2V0X3BhZ2UoaW5kZXgpOwogCi0JYmxvY2sgPSBidHJfYmxvY2tf Z2V0KHNwYWNlLCB6aXBfc2l6ZSwgcm9vdF9wYWdlX25vLCBSV19YX0xBVENILCBtdHIpOworCWJs b2NrID0gYnRyX2Jsb2NrX2dldChzcGFjZSwgemlwX3NpemUsIHJvb3RfcGFnZV9ubywgUldfWF9M QVRDSCwKKwkJCSAgICAgIGluZGV4LCBtdHIpOwogCXV0X2EoKGlib29sKSEhcGFnZV9pc19jb21w KGJ1Zl9ibG9ja19nZXRfZnJhbWUoYmxvY2spKQogCSAgICAgPT0gZGljdF90YWJsZV9pc19jb21w KGluZGV4LT50YWJsZSkpOwogI2lmZGVmIFVOSVZfQlRSX0RFQlVHCkBAIC04OTIsNyArODkzLDcg QEAgYnRyX3BhZ2VfYWxsb2NfZm9yX2lidWYoCiAJCQkJIGRpY3RfdGFibGVfemlwX3NpemUoaW5k ZXgtPnRhYmxlKSwKIAkJCQkgbm9kZV9hZGRyLnBhZ2UsIFJXX1hfTEFUQ0gsIG10cik7CiAJbmV3 X3BhZ2UgPSBidWZfYmxvY2tfZ2V0X2ZyYW1lKG5ld19ibG9jayk7Ci0JYnVmX2Jsb2NrX2RiZ19h ZGRfbGV2ZWwobmV3X2Jsb2NrLCBTWU5DX1RSRUVfTk9ERV9ORVcpOworCWJ1Zl9ibG9ja19kYmdf YWRkX2xldmVsKG5ld19ibG9jaywgU1lOQ19JQlVGX1RSRUVfTk9ERV9ORVcpOwogCiAJZmxzdF9y ZW1vdmUocm9vdCArIFBBR0VfSEVBREVSICsgUEFHRV9CVFJfSUJVRl9GUkVFX0xJU1QsCiAJCSAg ICBuZXdfcGFnZSArIFBBR0VfSEVBREVSICsgUEFHRV9CVFJfSUJVRl9GUkVFX0xJU1RfTk9ERSwK QEAgLTExNDAsNyArMTE0MSw3IEBAIGJ0cl9ub2RlX3B0cl9nZXRfY2hpbGQoCiAJcGFnZV9ubyA9 IGJ0cl9ub2RlX3B0cl9nZXRfY2hpbGRfcGFnZV9ubyhub2RlX3B0ciwgb2Zmc2V0cyk7CiAKIAly ZXR1cm4oYnRyX2Jsb2NrX2dldChzcGFjZSwgZGljdF90YWJsZV96aXBfc2l6ZShpbmRleC0+dGFi bGUpLAotCQkJICAgICBwYWdlX25vLCBSV19YX0xBVENILCBtdHIpKTsKKwkJCSAgICAgcGFnZV9u bywgUldfWF9MQVRDSCwgaW5kZXgsIG10cikpOwogfQogCiAvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgpAQCAtMTMxMyw3ICsx MzE0LDggQEAgYnRyX2NyZWF0ZSgKIAkJCXNwYWNlLCAwLAogCQkJSUJVRl9IRUFERVIgKyBJQlVG X1RSRUVfU0VHX0hFQURFUiwgbXRyKTsKIAotCQlidWZfYmxvY2tfZGJnX2FkZF9sZXZlbChpYnVm X2hkcl9ibG9jaywgU1lOQ19UUkVFX05PREVfTkVXKTsKKwkJYnVmX2Jsb2NrX2RiZ19hZGRfbGV2 ZWwoCisJCQlpYnVmX2hkcl9ibG9jaywgU1lOQ19JQlVGX1RSRUVfTk9ERV9ORVcpOwogCiAJCXV0 X2FkKGJ1Zl9ibG9ja19nZXRfcGFnZV9ubyhpYnVmX2hkcl9ibG9jaykKIAkJICAgICAgPT0gSUJV Rl9IRUFERVJfUEFHRV9OTyk7CkBAIC0xMzUxLDEwICsxMzUzLDkgQEAgYnRyX2NyZWF0ZSgKIAlw YWdlX25vID0gYnVmX2Jsb2NrX2dldF9wYWdlX25vKGJsb2NrKTsKIAlmcmFtZSA9IGJ1Zl9ibG9j a19nZXRfZnJhbWUoYmxvY2spOwogCi0JYnVmX2Jsb2NrX2RiZ19hZGRfbGV2ZWwoYmxvY2ssIFNZ TkNfVFJFRV9OT0RFX05FVyk7Ci0KIAlpZiAodHlwZSAmIERJQ1RfSUJVRikgewogCQkvKiBJdCBp cyBhbiBpbnNlcnQgYnVmZmVyIHRyZWU6IGluaXRpYWxpemUgdGhlIGZyZWUgbGlzdCAqLworCQli dWZfYmxvY2tfZGJnX2FkZF9sZXZlbChibG9jaywgU1lOQ19JQlVGX1RSRUVfTk9ERV9ORVcpOwog CiAJCXV0X2FkKHBhZ2Vfbm8gPT0gSUJVRl9UUkVFX1JPT1RfUEFHRV9OTyk7CiAKQEAgLTEzNjIs NiArMTM2Myw4IEBAIGJ0cl9jcmVhdGUoCiAJfSBlbHNlIHsKIAkJLyogSXQgaXMgYSBub24taWJ1 ZiB0cmVlOiBjcmVhdGUgYSBmaWxlIHNlZ21lbnQgZm9yIGxlYWYKIAkJcGFnZXMgKi8KKwkJYnVm X2Jsb2NrX2RiZ19hZGRfbGV2ZWwoYmxvY2ssIFNZTkNfVFJFRV9OT0RFX05FVyk7CisKIAkJaWYg KCFmc2VnX2NyZWF0ZShzcGFjZSwgcGFnZV9ubywKIAkJCQkgUEFHRV9IRUFERVIgKyBQQUdFX0JU Ul9TRUdfTEVBRiwgbXRyKSkgewogCQkJLyogTm90IGVub3VnaCBzcGFjZSBmb3IgbmV3IHNlZ21l bnQsIGZyZWUgcm9vdApAQCAtMTQzMyw3ICsxNDM2LDggQEAgYnRyX2ZyZWVfYnV0X25vdF9yb290 KAogbGVhZl9sb29wOgogCW10cl9zdGFydCgmbXRyKTsKIAotCXJvb3QgPSBidHJfcGFnZV9nZXQo c3BhY2UsIHppcF9zaXplLCByb290X3BhZ2Vfbm8sIFJXX1hfTEFUQ0gsICZtdHIpOworCXJvb3Qg PSBidHJfcGFnZV9nZXQoc3BhY2UsIHppcF9zaXplLCByb290X3BhZ2Vfbm8sIFJXX1hfTEFUQ0gs CisJCQkgICAgTlVMTCwgJm10cik7CiAjaWZkZWYgVU5JVl9CVFJfREVCVUcKIAl1dF9hKGJ0cl9y b290X2ZzZWdfdmFsaWRhdGUoRklMX1BBR0VfREFUQSArIFBBR0VfQlRSX1NFR19MRUFGCiAJCQkJ ICAgICsgcm9vdCwgc3BhY2UpKTsKQEAgLTE0NTUsNyArMTQ1OSw4IEBAIGxlYWZfbG9vcDoKIHRv cF9sb29wOgogCW10cl9zdGFydCgmbXRyKTsKIAotCXJvb3QgPSBidHJfcGFnZV9nZXQoc3BhY2Us IHppcF9zaXplLCByb290X3BhZ2Vfbm8sIFJXX1hfTEFUQ0gsICZtdHIpOworCXJvb3QgPSBidHJf cGFnZV9nZXQoc3BhY2UsIHppcF9zaXplLCByb290X3BhZ2Vfbm8sIFJXX1hfTEFUQ0gsCisJCQkg ICAgTlVMTCwgJm10cik7CiAjaWZkZWYgVU5JVl9CVFJfREVCVUcKIAl1dF9hKGJ0cl9yb290X2Zz ZWdfdmFsaWRhdGUoRklMX1BBR0VfREFUQSArIFBBR0VfQlRSX1NFR19UT1AKIAkJCQkgICAgKyBy b290LCBzcGFjZSkpOwpAQCAtMTQ4MSwxMyArMTQ4NiwxMyBAQCBidHJfZnJlZV9yb290KAogCXVs aW50CXppcF9zaXplLAkvKiE8IGluOiBjb21wcmVzc2VkIHBhZ2Ugc2l6ZSBpbiBieXRlcwogCQkJ CW9yIDAgZm9yIHVuY29tcHJlc3NlZCBwYWdlcyAqLwogCXVsaW50CXJvb3RfcGFnZV9ubywJLyoh PCBpbjogcm9vdCBwYWdlIG51bWJlciAqLwotCW10cl90KgltdHIpCQkvKiE8IGluOiBhIG1pbmkt dHJhbnNhY3Rpb24gd2hpY2ggaGFzIGFscmVhZHkKLQkJCQliZWVuIHN0YXJ0ZWQgKi8KKwltdHJf dCoJbXRyKQkJLyohPCBpbi9vdXQ6IG1pbmktdHJhbnNhY3Rpb24gKi8KIHsKIAlidWZfYmxvY2tf dCoJYmxvY2s7CiAJZnNlZ19oZWFkZXJfdCoJaGVhZGVyOwogCi0JYmxvY2sgPSBidHJfYmxvY2tf Z2V0KHNwYWNlLCB6aXBfc2l6ZSwgcm9vdF9wYWdlX25vLCBSV19YX0xBVENILCBtdHIpOworCWJs b2NrID0gYnRyX2Jsb2NrX2dldChzcGFjZSwgemlwX3NpemUsIHJvb3RfcGFnZV9ubywgUldfWF9M QVRDSCwKKwkJCSAgICAgIE5VTEwsIG10cik7CiAKIAlidHJfc2VhcmNoX2Ryb3BfcGFnZV9oYXNo X2luZGV4KGJsb2NrKTsKIApAQCAtMjM2OCw5ICsyMzczLDggQEAgYnRyX2F0dGFjaF9oYWxmX3Bh Z2VzKAogCS8qIFVwZGF0ZSBwYWdlIGxpbmtzIG9mIHRoZSBsZXZlbCAqLwogCiAJaWYgKHByZXZf cGFnZV9ubyAhPSBGSUxfTlVMTCkgewotCQlidWZfYmxvY2tfdCoJcHJldl9ibG9jayA9IGJ0cl9i bG9ja19nZXQoc3BhY2UsIHppcF9zaXplLAotCQkJCQkJCSAgIHByZXZfcGFnZV9ubywKLQkJCQkJ CQkgICBSV19YX0xBVENILCBtdHIpOworCQlidWZfYmxvY2tfdCoJcHJldl9ibG9jayA9IGJ0cl9i bG9ja19nZXQoCisJCQlzcGFjZSwgemlwX3NpemUsIHByZXZfcGFnZV9ubywgUldfWF9MQVRDSCwg aW5kZXgsIG10cik7CiAjaWZkZWYgVU5JVl9CVFJfREVCVUcKIAkJdXRfYShwYWdlX2lzX2NvbXAo cHJldl9ibG9jay0+ZnJhbWUpID09IHBhZ2VfaXNfY29tcChwYWdlKSk7CiAJCXV0X2EoYnRyX3Bh Z2VfZ2V0X25leHQocHJldl9ibG9jay0+ZnJhbWUsIG10cikKQEAgLTIzODMsOSArMjM4Nyw4IEBA IGJ0cl9hdHRhY2hfaGFsZl9wYWdlcygKIAl9CiAKIAlpZiAobmV4dF9wYWdlX25vICE9IEZJTF9O VUxMKSB7Ci0JCWJ1Zl9ibG9ja190KgluZXh0X2Jsb2NrID0gYnRyX2Jsb2NrX2dldChzcGFjZSwg emlwX3NpemUsCi0JCQkJCQkJICAgbmV4dF9wYWdlX25vLAotCQkJCQkJCSAgIFJXX1hfTEFUQ0gs IG10cik7CisJCWJ1Zl9ibG9ja190KgluZXh0X2Jsb2NrID0gYnRyX2Jsb2NrX2dldCgKKwkJCXNw YWNlLCB6aXBfc2l6ZSwgbmV4dF9wYWdlX25vLCBSV19YX0xBVENILCBpbmRleCwgbXRyKTsKICNp ZmRlZiBVTklWX0JUUl9ERUJVRwogCQl1dF9hKHBhZ2VfaXNfY29tcChuZXh0X2Jsb2NrLT5mcmFt ZSkgPT0gcGFnZV9pc19jb21wKHBhZ2UpKTsKIAkJdXRfYShidHJfcGFnZV9nZXRfcHJldihuZXh0 X2Jsb2NrLT5mcmFtZSwgbXRyKQpAQCAtMjgwOCwxNyArMjgxMSw0MiBAQCBmdW5jX2V4aXQ6CiAJ cmV0dXJuKHJlYyk7CiB9CiAKKyNpZmRlZiBVTklWX1NZTkNfREVCVUcKKy8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgorUmVt b3ZlcyBhIHBhZ2UgZnJvbSB0aGUgbGV2ZWwgbGlzdCBvZiBwYWdlcy4KK0BwYXJhbSBzcGFjZQlp bjogc3BhY2Ugd2hlcmUgcmVtb3ZlZAorQHBhcmFtIHppcF9zaXplCWluOiBjb21wcmVzc2VkIHBh Z2Ugc2l6ZSBpbiBieXRlcywgb3IgMCBmb3IgdW5jb21wcmVzc2VkCitAcGFyYW0gcGFnZQlpbi9v dXQ6IHBhZ2UgdG8gcmVtb3ZlCitAcGFyYW0gaW5kZXgJaW46IGluZGV4IHRyZWUKK0BwYXJhbSBt dHIJaW4vb3V0OiBtaW5pLXRyYW5zYWN0aW9uICovCisjIGRlZmluZSBidHJfbGV2ZWxfbGlzdF9y ZW1vdmUoc3BhY2UsemlwX3NpemUscGFnZSxpbmRleCxtdHIpCQlcCisJYnRyX2xldmVsX2xpc3Rf cmVtb3ZlX2Z1bmMoc3BhY2UsemlwX3NpemUscGFnZSxpbmRleCxtdHIpCisjZWxzZSAvKiBVTklW X1NZTkNfREVCVUcgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLy8qKgorUmVtb3ZlcyBhIHBhZ2UgZnJvbSB0aGUgbGV2ZWwg bGlzdCBvZiBwYWdlcy4KK0BwYXJhbSBzcGFjZQlpbjogc3BhY2Ugd2hlcmUgcmVtb3ZlZAorQHBh cmFtIHppcF9zaXplCWluOiBjb21wcmVzc2VkIHBhZ2Ugc2l6ZSBpbiBieXRlcywgb3IgMCBmb3Ig dW5jb21wcmVzc2VkCitAcGFyYW0gcGFnZQlpbi9vdXQ6IHBhZ2UgdG8gcmVtb3ZlCitAcGFyYW0g aW5kZXgJaW46IGluZGV4IHRyZWUKK0BwYXJhbSBtdHIJaW4vb3V0OiBtaW5pLXRyYW5zYWN0aW9u ICovCisjIGRlZmluZSBidHJfbGV2ZWxfbGlzdF9yZW1vdmUoc3BhY2UsemlwX3NpemUscGFnZSxp bmRleCxtdHIpCQlcCisJYnRyX2xldmVsX2xpc3RfcmVtb3ZlX2Z1bmMoc3BhY2UsemlwX3NpemUs cGFnZSxtdHIpCisjZW5kaWYgLyogVU5JVl9TWU5DX0RFQlVHICovCisKIC8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogUmVt b3ZlcyBhIHBhZ2UgZnJvbSB0aGUgbGV2ZWwgbGlzdCBvZiBwYWdlcy4gKi8KLXN0YXRpYworc3Rh dGljIF9fYXR0cmlidXRlX18oKG5vbm51bGwpKQogdm9pZAotYnRyX2xldmVsX2xpc3RfcmVtb3Zl KAotLyo9PT09PT09PT09PT09PT09PT0qLwotCXVsaW50CQlzcGFjZSwJLyohPCBpbjogc3BhY2Ug d2hlcmUgcmVtb3ZlZCAqLwotCXVsaW50CQl6aXBfc2l6ZSwvKiE8IGluOiBjb21wcmVzc2VkIHBh Z2Ugc2l6ZSBpbiBieXRlcwotCQkJCW9yIDAgZm9yIHVuY29tcHJlc3NlZCBwYWdlcyAqLwotCXBh Z2VfdCoJCXBhZ2UsCS8qITwgaW46IHBhZ2UgdG8gcmVtb3ZlICovCi0JbXRyX3QqCQltdHIpCS8q ITwgaW46IG10ciAqLworYnRyX2xldmVsX2xpc3RfcmVtb3ZlX2Z1bmMoCisvKj09PT09PT09PT09 PT09PT09PT09PT09Ki8KKwl1bGludAkJCXNwYWNlLAkvKiE8IGluOiBzcGFjZSB3aGVyZSByZW1v dmVkICovCisJdWxpbnQJCQl6aXBfc2l6ZSwvKiE8IGluOiBjb21wcmVzc2VkIHBhZ2Ugc2l6ZSBp biBieXRlcworCQkJCQlvciAwIGZvciB1bmNvbXByZXNzZWQgcGFnZXMgKi8KKwlwYWdlX3QqCQkJ cGFnZSwJLyohPCBpbi9vdXQ6IHBhZ2UgdG8gcmVtb3ZlICovCisjaWZkZWYgVU5JVl9TWU5DX0RF QlVHCisJY29uc3QgZGljdF9pbmRleF90KglpbmRleCwJLyohPCBpbjogaW5kZXggdHJlZSAqLwor I2VuZGlmIC8qIFVOSVZfU1lOQ19ERUJVRyAqLworCW10cl90KgkJCW10cikJLyohPCBpbi9vdXQ6 IG1pbmktdHJhbnNhY3Rpb24gKi8KIHsKIAl1bGludAlwcmV2X3BhZ2Vfbm87CiAJdWxpbnQJbmV4 dF9wYWdlX25vOwpAQCAtMjgzNiw3ICsyODY0LDcgQEAgYnRyX2xldmVsX2xpc3RfcmVtb3ZlKAog CWlmIChwcmV2X3BhZ2Vfbm8gIT0gRklMX05VTEwpIHsKIAkJYnVmX2Jsb2NrX3QqCXByZXZfYmxv Y2sKIAkJCT0gYnRyX2Jsb2NrX2dldChzcGFjZSwgemlwX3NpemUsIHByZXZfcGFnZV9ubywKLQkJ CQkJUldfWF9MQVRDSCwgbXRyKTsKKwkJCQkJUldfWF9MQVRDSCwgaW5kZXgsIG10cik7CiAJCXBh Z2VfdCoJCXByZXZfcGFnZQogCQkJPSBidWZfYmxvY2tfZ2V0X2ZyYW1lKHByZXZfYmxvY2spOwog I2lmZGVmIFVOSVZfQlRSX0RFQlVHCkBAIC0yODUzLDcgKzI4ODEsNyBAQCBidHJfbGV2ZWxfbGlz dF9yZW1vdmUoCiAJaWYgKG5leHRfcGFnZV9ubyAhPSBGSUxfTlVMTCkgewogCQlidWZfYmxvY2tf dCoJbmV4dF9ibG9jawogCQkJPSBidHJfYmxvY2tfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwgbmV4dF9w YWdlX25vLAotCQkJCQlSV19YX0xBVENILCBtdHIpOworCQkJCQlSV19YX0xBVENILCBpbmRleCwg bXRyKTsKIAkJcGFnZV90KgkJbmV4dF9wYWdlCiAJCQk9IGJ1Zl9ibG9ja19nZXRfZnJhbWUobmV4 dF9ibG9jayk7CiAjaWZkZWYgVU5JVl9CVFJfREVCVUcKQEAgLTMxNzksNyArMzIwNyw3IEBAIGJ0 cl9jb21wcmVzcygKIAlpZiAoaXNfbGVmdCkgewogCiAJCW1lcmdlX2Jsb2NrID0gYnRyX2Jsb2Nr X2dldChzcGFjZSwgemlwX3NpemUsIGxlZnRfcGFnZV9ubywKLQkJCQkJICAgIFJXX1hfTEFUQ0gs IG10cik7CisJCQkJCSAgICBSV19YX0xBVENILCBpbmRleCwgbXRyKTsKIAkJbWVyZ2VfcGFnZSA9 IGJ1Zl9ibG9ja19nZXRfZnJhbWUobWVyZ2VfYmxvY2spOwogI2lmZGVmIFVOSVZfQlRSX0RFQlVH CiAJCXV0X2EoYnRyX3BhZ2VfZ2V0X25leHQobWVyZ2VfcGFnZSwgbXRyKQpAQCAtMzE4OCw3ICsz MjE2LDcgQEAgYnRyX2NvbXByZXNzKAogCX0gZWxzZSBpZiAocmlnaHRfcGFnZV9ubyAhPSBGSUxf TlVMTCkgewogCiAJCW1lcmdlX2Jsb2NrID0gYnRyX2Jsb2NrX2dldChzcGFjZSwgemlwX3NpemUs IHJpZ2h0X3BhZ2Vfbm8sCi0JCQkJCSAgICBSV19YX0xBVENILCBtdHIpOworCQkJCQkgICAgUldf WF9MQVRDSCwgaW5kZXgsIG10cik7CiAJCW1lcmdlX3BhZ2UgPSBidWZfYmxvY2tfZ2V0X2ZyYW1l KG1lcmdlX2Jsb2NrKTsKICNpZmRlZiBVTklWX0JUUl9ERUJVRwogCQl1dF9hKGJ0cl9wYWdlX2dl dF9wcmV2KG1lcmdlX3BhZ2UsIG10cikKQEAgLTMyNzcsNyArMzMwNSw3IEBAIGVycl9leGl0Ogog CQlidHJfc2VhcmNoX2Ryb3BfcGFnZV9oYXNoX2luZGV4KGJsb2NrKTsKIAogCQkvKiBSZW1vdmUg dGhlIHBhZ2UgZnJvbSB0aGUgbGV2ZWwgbGlzdCAqLwotCQlidHJfbGV2ZWxfbGlzdF9yZW1vdmUo c3BhY2UsIHppcF9zaXplLCBwYWdlLCBtdHIpOworCQlidHJfbGV2ZWxfbGlzdF9yZW1vdmUoc3Bh Y2UsIHppcF9zaXplLCBwYWdlLCBpbmRleCwgbXRyKTsKIAogCQlidHJfbm9kZV9wdHJfZGVsZXRl KGluZGV4LCBibG9jaywgbXRyKTsKIAkJbG9ja191cGRhdGVfbWVyZ2VfbGVmdChtZXJnZV9ibG9j aywgb3JpZ19wcmVkLCBibG9jayk7CkBAIC0zMzM0LDcgKzMzNjIsNyBAQCBlcnJfZXhpdDoKICNl bmRpZiAvKiBVTklWX0JUUl9ERUJVRyAqLwogCiAJCS8qIFJlbW92ZSB0aGUgcGFnZSBmcm9tIHRo ZSBsZXZlbCBsaXN0ICovCi0JCWJ0cl9sZXZlbF9saXN0X3JlbW92ZShzcGFjZSwgemlwX3NpemUs IHBhZ2UsIG10cik7CisJCWJ0cl9sZXZlbF9saXN0X3JlbW92ZShzcGFjZSwgemlwX3NpemUsIHBh Z2UsIGluZGV4LCBtdHIpOwogCiAJCS8qIFJlcGxhY2UgdGhlIGFkZHJlc3Mgb2YgdGhlIG9sZCBj aGlsZCBub2RlICg9IHBhZ2UpIHdpdGggdGhlCiAJCWFkZHJlc3Mgb2YgdGhlIG1lcmdlIHBhZ2Ug dG8gdGhlIHJpZ2h0ICovCkBAIC0zNTI2LDcgKzM1NTQsNyBAQCBidHJfZGlzY2FyZF9wYWdlKAog CiAJaWYgKGxlZnRfcGFnZV9ubyAhPSBGSUxfTlVMTCkgewogCQltZXJnZV9ibG9jayA9IGJ0cl9i bG9ja19nZXQoc3BhY2UsIHppcF9zaXplLCBsZWZ0X3BhZ2Vfbm8sCi0JCQkJCSAgICBSV19YX0xB VENILCBtdHIpOworCQkJCQkgICAgUldfWF9MQVRDSCwgaW5kZXgsIG10cik7CiAJCW1lcmdlX3Bh Z2UgPSBidWZfYmxvY2tfZ2V0X2ZyYW1lKG1lcmdlX2Jsb2NrKTsKICNpZmRlZiBVTklWX0JUUl9E RUJVRwogCQl1dF9hKGJ0cl9wYWdlX2dldF9uZXh0KG1lcmdlX3BhZ2UsIG10cikKQEAgLTM1MzQs NyArMzU2Miw3IEBAIGJ0cl9kaXNjYXJkX3BhZ2UoCiAjZW5kaWYgLyogVU5JVl9CVFJfREVCVUcg Ki8KIAl9IGVsc2UgaWYgKHJpZ2h0X3BhZ2Vfbm8gIT0gRklMX05VTEwpIHsKIAkJbWVyZ2VfYmxv Y2sgPSBidHJfYmxvY2tfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwgcmlnaHRfcGFnZV9ubywKLQkJCQkJ ICAgIFJXX1hfTEFUQ0gsIG10cik7CisJCQkJCSAgICBSV19YX0xBVENILCBpbmRleCwgbXRyKTsK IAkJbWVyZ2VfcGFnZSA9IGJ1Zl9ibG9ja19nZXRfZnJhbWUobWVyZ2VfYmxvY2spOwogI2lmZGVm IFVOSVZfQlRSX0RFQlVHCiAJCXV0X2EoYnRyX3BhZ2VfZ2V0X3ByZXYobWVyZ2VfcGFnZSwgbXRy KQpAQCAtMzU2OSw3ICszNTk3LDcgQEAgYnRyX2Rpc2NhcmRfcGFnZSgKIAlidHJfbm9kZV9wdHJf ZGVsZXRlKGluZGV4LCBibG9jaywgbXRyKTsKIAogCS8qIFJlbW92ZSB0aGUgcGFnZSBmcm9tIHRo ZSBsZXZlbCBsaXN0ICovCi0JYnRyX2xldmVsX2xpc3RfcmVtb3ZlKHNwYWNlLCB6aXBfc2l6ZSwg cGFnZSwgbXRyKTsKKwlidHJfbGV2ZWxfbGlzdF9yZW1vdmUoc3BhY2UsIHppcF9zaXplLCBwYWdl LCBpbmRleCwgbXRyKTsKICNpZmRlZiBVTklWX1pJUF9ERUJVRwogCXsKIAkJcGFnZV96aXBfZGVz X3QqCW1lcmdlX3BhZ2VfemlwCkBAIC00MDg3LDcgKzQxMTUsNyBAQCBsb29wOgogCWlmIChyaWdo dF9wYWdlX25vICE9IEZJTF9OVUxMKSB7CiAJCWNvbnN0IHJlY190KglyaWdodF9yZWM7CiAJCXJp Z2h0X2Jsb2NrID0gYnRyX2Jsb2NrX2dldChzcGFjZSwgemlwX3NpemUsIHJpZ2h0X3BhZ2Vfbm8s Ci0JCQkJCSAgICBSV19YX0xBVENILCAmbXRyKTsKKwkJCQkJICAgIFJXX1hfTEFUQ0gsIGluZGV4 LCAmbXRyKTsKIAkJcmlnaHRfcGFnZSA9IGJ1Zl9ibG9ja19nZXRfZnJhbWUocmlnaHRfYmxvY2sp OwogCQlpZiAoVU5JVl9VTkxJS0VMWShidHJfcGFnZV9nZXRfcHJldihyaWdodF9wYWdlLCAmbXRy KQogCQkJCSAgIT0gcGFnZV9nZXRfcGFnZV9ubyhwYWdlKSkpIHsKQEAgLTQzMTMsNyArNDM0MSw3 IEBAIG5vZGVfcHRyX2ZhaWxzOgogCQltdHJfc3RhcnQoJm10cik7CiAKIAkJYmxvY2sgPSBidHJf YmxvY2tfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwgcmlnaHRfcGFnZV9ubywKLQkJCQkgICAgICBSV19Y X0xBVENILCAmbXRyKTsKKwkJCQkgICAgICBSV19YX0xBVENILCBpbmRleCwgJm10cik7CiAJCXBh Z2UgPSBidWZfYmxvY2tfZ2V0X2ZyYW1lKGJsb2NrKTsKIAogCQlnb3RvIGxvb3A7Cgo9PT0gbW9k aWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMGN1ci5jJwotLS0gYS9zdG9yYWdl L2lubm9iYXNlL2J0ci9idHIwY3VyLmMJcmV2aWQ6am9yZ2VuLmxvbGFuZEBvcmFjbGUuY29tLTIw MTEwODE1MDg1ODA1LTdpaTh6NjE5eWo4YXljZmwKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9idHIv YnRyMGN1ci5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwODE1MDkzNDM5LWZk cGNrdWRyeGlud3BoY3cKQEAgLTI0OSw3ICsyNDksOCBAQCBidHJfY3VyX2xhdGNoX2xlYXZlcygK IAljYXNlIEJUUl9TRUFSQ0hfTEVBRjoKIAljYXNlIEJUUl9NT0RJRllfTEVBRjoKIAkJbW9kZSA9 IGxhdGNoX21vZGUgPT0gQlRSX1NFQVJDSF9MRUFGID8gUldfU19MQVRDSCA6IFJXX1hfTEFUQ0g7 Ci0JCWdldF9ibG9jayA9IGJ0cl9ibG9ja19nZXQoc3BhY2UsIHppcF9zaXplLCBwYWdlX25vLCBt b2RlLCBtdHIpOworCQlnZXRfYmxvY2sgPSBidHJfYmxvY2tfZ2V0KAorCQkJc3BhY2UsIHppcF9z aXplLCBwYWdlX25vLCBtb2RlLCBjdXJzb3ItPmluZGV4LCBtdHIpOwogI2lmZGVmIFVOSVZfQlRS X0RFQlVHCiAJCXV0X2EocGFnZV9pc19jb21wKGdldF9ibG9jay0+ZnJhbWUpID09IHBhZ2VfaXNf Y29tcChwYWdlKSk7CiAjZW5kaWYgLyogVU5JVl9CVFJfREVCVUcgKi8KQEAgLTI2MCw5ICsyNjEs OSBAQCBidHJfY3VyX2xhdGNoX2xlYXZlcygKIAkJbGVmdF9wYWdlX25vID0gYnRyX3BhZ2VfZ2V0 X3ByZXYocGFnZSwgbXRyKTsKIAogCQlpZiAobGVmdF9wYWdlX25vICE9IEZJTF9OVUxMKSB7Ci0J CQlnZXRfYmxvY2sgPSBidHJfYmxvY2tfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwKLQkJCQkJCSAgbGVm dF9wYWdlX25vLAotCQkJCQkJICBSV19YX0xBVENILCBtdHIpOworCQkJZ2V0X2Jsb2NrID0gYnRy X2Jsb2NrX2dldCgKKwkJCQlzcGFjZSwgemlwX3NpemUsIGxlZnRfcGFnZV9ubywKKwkJCQlSV19Y X0xBVENILCBjdXJzb3ItPmluZGV4LCBtdHIpOwogI2lmZGVmIFVOSVZfQlRSX0RFQlVHCiAJCQl1 dF9hKHBhZ2VfaXNfY29tcChnZXRfYmxvY2stPmZyYW1lKQogCQkJICAgICA9PSBwYWdlX2lzX2Nv bXAocGFnZSkpOwpAQCAtMjcyLDggKzI3Myw5IEBAIGJ0cl9jdXJfbGF0Y2hfbGVhdmVzKAogCQkJ Z2V0X2Jsb2NrLT5jaGVja19pbmRleF9wYWdlX2F0X2ZsdXNoID0gVFJVRTsKIAkJfQogCi0JCWdl dF9ibG9jayA9IGJ0cl9ibG9ja19nZXQoc3BhY2UsIHppcF9zaXplLCBwYWdlX25vLAotCQkJCQkg IFJXX1hfTEFUQ0gsIG10cik7CisJCWdldF9ibG9jayA9IGJ0cl9ibG9ja19nZXQoCisJCQlzcGFj ZSwgemlwX3NpemUsIHBhZ2Vfbm8sCisJCQlSV19YX0xBVENILCBjdXJzb3ItPmluZGV4LCBtdHIp OwogI2lmZGVmIFVOSVZfQlRSX0RFQlVHCiAJCXV0X2EocGFnZV9pc19jb21wKGdldF9ibG9jay0+ ZnJhbWUpID09IHBhZ2VfaXNfY29tcChwYWdlKSk7CiAjZW5kaWYgLyogVU5JVl9CVFJfREVCVUcg Ki8KQEAgLTI4Miw5ICsyODQsOSBAQCBidHJfY3VyX2xhdGNoX2xlYXZlcygKIAkJcmlnaHRfcGFn ZV9ubyA9IGJ0cl9wYWdlX2dldF9uZXh0KHBhZ2UsIG10cik7CiAKIAkJaWYgKHJpZ2h0X3BhZ2Vf bm8gIT0gRklMX05VTEwpIHsKLQkJCWdldF9ibG9jayA9IGJ0cl9ibG9ja19nZXQoc3BhY2UsIHpp cF9zaXplLAotCQkJCQkJICByaWdodF9wYWdlX25vLAotCQkJCQkJICBSV19YX0xBVENILCBtdHIp OworCQkJZ2V0X2Jsb2NrID0gYnRyX2Jsb2NrX2dldCgKKwkJCQlzcGFjZSwgemlwX3NpemUsIHJp Z2h0X3BhZ2Vfbm8sCisJCQkJUldfWF9MQVRDSCwgY3Vyc29yLT5pbmRleCwgbXRyKTsKICNpZmRl ZiBVTklWX0JUUl9ERUJVRwogCQkJdXRfYShwYWdlX2lzX2NvbXAoZ2V0X2Jsb2NrLT5mcmFtZSkK IAkJCSAgICAgPT0gcGFnZV9pc19jb21wKHBhZ2UpKTsKQEAgLTMwMyw4ICszMDUsOSBAQCBidHJf Y3VyX2xhdGNoX2xlYXZlcygKIAkJbGVmdF9wYWdlX25vID0gYnRyX3BhZ2VfZ2V0X3ByZXYocGFn ZSwgbXRyKTsKIAogCQlpZiAobGVmdF9wYWdlX25vICE9IEZJTF9OVUxMKSB7Ci0JCQlnZXRfYmxv Y2sgPSBidHJfYmxvY2tfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwKLQkJCQkJCSAgbGVmdF9wYWdlX25v LCBtb2RlLCBtdHIpOworCQkJZ2V0X2Jsb2NrID0gYnRyX2Jsb2NrX2dldCgKKwkJCQlzcGFjZSwg emlwX3NpemUsCisJCQkJbGVmdF9wYWdlX25vLCBtb2RlLCBjdXJzb3ItPmluZGV4LCBtdHIpOwog CQkJY3Vyc29yLT5sZWZ0X2Jsb2NrID0gZ2V0X2Jsb2NrOwogI2lmZGVmIFVOSVZfQlRSX0RFQlVH CiAJCQl1dF9hKHBhZ2VfaXNfY29tcChnZXRfYmxvY2stPmZyYW1lKQpAQCAtMzE1LDcgKzMxOCw4 IEBAIGJ0cl9jdXJfbGF0Y2hfbGVhdmVzKAogCQkJZ2V0X2Jsb2NrLT5jaGVja19pbmRleF9wYWdl X2F0X2ZsdXNoID0gVFJVRTsKIAkJfQogCi0JCWdldF9ibG9jayA9IGJ0cl9ibG9ja19nZXQoc3Bh Y2UsIHppcF9zaXplLCBwYWdlX25vLCBtb2RlLCBtdHIpOworCQlnZXRfYmxvY2sgPSBidHJfYmxv Y2tfZ2V0KAorCQkJc3BhY2UsIHppcF9zaXplLCBwYWdlX25vLCBtb2RlLCBjdXJzb3ItPmluZGV4 LCBtdHIpOwogI2lmZGVmIFVOSVZfQlRSX0RFQlVHCiAJCXV0X2EocGFnZV9pc19jb21wKGdldF9i bG9jay0+ZnJhbWUpID09IHBhZ2VfaXNfY29tcChwYWdlKSk7CiAjZW5kaWYgLyogVU5JVl9CVFJf REVCVUcgKi8KQEAgLTY2OSw3ICs2NzMsOSBAQCByZXRyeV9wYWdlX2dldDoKIAkJdXRfYSghcGFn ZV96aXAgfHwgcGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UpKTsKICNlbmRpZiAvKiBV TklWX1pJUF9ERUJVRyAqLwogCi0JCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2NrLCBTWU5D X1RSRUVfTk9ERSk7CisJCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKAorCQkJYmxvY2ssIGRpY3Rf aW5kZXhfaXNfaWJ1ZihpbmRleCkKKwkJCT8gU1lOQ19JQlVGX1RSRUVfTk9ERSA6IFNZTkNfVFJF RV9OT0RFKTsKIAl9CiAKIAl1dF9hZChpbmRleC0+aWQgPT0gYnRyX3BhZ2VfZ2V0X2luZGV4X2lk KHBhZ2UpKTsKQEAgLTc2Nyw3ICs3NzMsNyBAQCByZXRyeV9wYWdlX2dldDoKIAlpZiAobGV2ZWwg IT0gMCkgewogCQkvKiB4LWxhdGNoIHRoZSBwYWdlICovCiAJCXBhZ2UgPSBidHJfcGFnZV9nZXQo Ci0JCQlzcGFjZSwgemlwX3NpemUsIHBhZ2Vfbm8sIFJXX1hfTEFUQ0gsIG10cik7CisJCQlzcGFj ZSwgemlwX3NpemUsIHBhZ2Vfbm8sIFJXX1hfTEFUQ0gsIGluZGV4LCBtdHIpOwogCiAJCXV0X2Eo KGlib29sKSEhcGFnZV9pc19jb21wKHBhZ2UpCiAJCSAgICAgPT0gZGljdF90YWJsZV9pc19jb21w KGluZGV4LT50YWJsZSkpOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvYnRy L2J0cjBwY3VyLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0cjBwY3VyLmMJcmV2aWQ6 am9yZ2VuLmxvbGFuZEBvcmFjbGUuY29tLTIwMTEwODE1MDg1ODA1LTdpaTh6NjE5eWo4YXljZmwK KysrIGIvc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMHBjdXIuYwlyZXZpZDptYXJrby5tYWtlbGFA b3JhY2xlLmNvbS0yMDExMDgxNTA5MzQzOS1mZHBja3VkcnhpbndwaGN3CkBAIC0xLDYgKzEsNiBA QAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCiAKLUNvcHlyaWdodCAoYykgMTk5NiwgMjAxMCwgSW5u b2Jhc2UgT3kuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitDb3B5cmlnaHQgKGMpIDE5OTYsIDIwMTEs IE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAKIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5IGl0IHVuZGVyCiB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQpAQCAtMjY2LDggKzI2Niwx MCBAQCBidHJfcGN1cl9yZXN0b3JlX3Bvc2l0aW9uX2Z1bmMoCiAJCQkJCWZpbGUsIGxpbmUsIG10 cikpKSB7CiAJCQljdXJzb3ItPnBvc19zdGF0ZSA9IEJUUl9QQ1VSX0lTX1BPU0lUSU9ORUQ7CiAK LQkJCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJ0cl9wY3VyX2dldF9ibG9jayhjdXJzb3IpLAot CQkJCQkJU1lOQ19UUkVFX05PREUpOworCQkJYnVmX2Jsb2NrX2RiZ19hZGRfbGV2ZWwoCisJCQkJ YnRyX3BjdXJfZ2V0X2Jsb2NrKGN1cnNvciksCisJCQkJZGljdF9pbmRleF9pc19pYnVmKGluZGV4 KQorCQkJCT8gU1lOQ19JQlVGX1RSRUVfTk9ERSA6IFNZTkNfVFJFRV9OT0RFKTsKIAogCQkJaWYg KGN1cnNvci0+cmVsX3BvcyA9PSBCVFJfUENVUl9PTikgewogI2lmZGVmIFVOSVZfREVCVUcKQEAg LTQxNyw3ICs0MTksOCBAQCBidHJfcGN1cl9tb3ZlX3RvX25leHRfcGFnZSgKIAl1dF9hZChuZXh0 X3BhZ2Vfbm8gIT0gRklMX05VTEwpOwogCiAJbmV4dF9ibG9jayA9IGJ0cl9ibG9ja19nZXQoc3Bh Y2UsIHppcF9zaXplLCBuZXh0X3BhZ2Vfbm8sCi0JCQkJICAgY3Vyc29yLT5sYXRjaF9tb2RlLCBt dHIpOworCQkJCSAgIGN1cnNvci0+bGF0Y2hfbW9kZSwKKwkJCQkgICBidHJfcGN1cl9nZXRfYnRy X2N1cihjdXJzb3IpLT5pbmRleCwgbXRyKTsKIAluZXh0X3BhZ2UgPSBidWZfYmxvY2tfZ2V0X2Zy YW1lKG5leHRfYmxvY2spOwogI2lmZGVmIFVOSVZfQlRSX0RFQlVHCiAJdXRfYShwYWdlX2lzX2Nv bXAobmV4dF9wYWdlKSA9PSBwYWdlX2lzX2NvbXAocGFnZSkpOwoKPT09IG1vZGlmaWVkIGZpbGUg J3N0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0cjBzZWEuYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9i dHIvYnRyMHNlYS5jCXJldmlkOmpvcmdlbi5sb2xhbmRAb3JhY2xlLmNvbS0yMDExMDgxNTA4NTgw NS03aWk4ejYxOXlqOGF5Y2ZsCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0cjBzZWEuYwly ZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDgxNTA5MzQzOS1mZHBja3Vkcnhpbndw aGN3CkBAIC04NTIsNiArODUyLDcgQEAgYnRyX3NlYXJjaF9ndWVzc19vbl9oYXNoKAogCWJ0cl9w Y3VyX3QJcGN1cjsKICNlbmRpZgogCXV0X2FkKGluZGV4ICYmIGluZm8gJiYgdHVwbGUgJiYgY3Vy c29yICYmIG10cik7CisJdXRfYWQoIWRpY3RfaW5kZXhfaXNfaWJ1ZihpbmRleCkpOwogCXV0X2Fk KChsYXRjaF9tb2RlID09IEJUUl9TRUFSQ0hfTEVBRikKIAkgICAgICB8fCAobGF0Y2hfbW9kZSA9 PSBCVFJfTU9ESUZZX0xFQUYpKTsKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jh c2UvZGljdC9kaWN0MGNyZWEuYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9kaWN0L2RpY3QwY3Jl YS5jCXJldmlkOmpvcmdlbi5sb2xhbmRAb3JhY2xlLmNvbS0yMDExMDgxNTA4NTgwNS03aWk4ejYx OXlqOGF5Y2ZsCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvZGljdC9kaWN0MGNyZWEuYwlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDgxNTA5MzQzOS1mZHBja3VkcnhpbndwaGN3CkBA IC04NDUsNyArODQ1LDcgQEAgZGljdF90cnVuY2F0ZV9pbmRleF90cmVlKAogCWFwcHJvcHJpYXRl IGZpZWxkIGluIHRoZSBTWVNfSU5ERVhFUyByZWNvcmQ6IHRoaXMgbWluaS10cmFuc2FjdGlvbgog CW1hcmtzIHRoZSBCLXRyZWUgdG90YWxseSB0cnVuY2F0ZWQgKi8KIAotCWJ0cl9ibG9ja19nZXQo c3BhY2UsIHppcF9zaXplLCByb290X3BhZ2Vfbm8sIFJXX1hfTEFUQ0gsIG10cik7CisJYnRyX2Js b2NrX2dldChzcGFjZSwgemlwX3NpemUsIHJvb3RfcGFnZV9ubywgUldfWF9MQVRDSCwgTlVMTCwg bXRyKTsKIAogCWJ0cl9mcmVlX3Jvb3Qoc3BhY2UsIHppcF9zaXplLCByb290X3BhZ2Vfbm8sIG10 cik7CiBjcmVhdGU6Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9kaWN0L2Rp Y3QwZGljdC5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2RpY3QvZGljdDBkaWN0LmMJcmV2aWQ6 am9yZ2VuLmxvbGFuZEBvcmFjbGUuY29tLTIwMTEwODE1MDg1ODA1LTdpaTh6NjE5eWo4YXljZmwK KysrIGIvc3RvcmFnZS9pbm5vYmFzZS9kaWN0L2RpY3QwZGljdC5jCXJldmlkOm1hcmtvLm1ha2Vs YUBvcmFjbGUuY29tLTIwMTEwODE1MDkzNDM5LWZkcGNrdWRyeGlud3BoY3cKQEAgLTIwOTcsNyAr MjA5Nyw4IEBAIHVuZG9fc2l6ZV9vazoKIAogCW5ld19pbmRleC0+cGFnZSA9IHBhZ2Vfbm87CiAJ cndfbG9ja19jcmVhdGUoaW5kZXhfdHJlZV9yd19sb2NrX2tleSwgJm5ld19pbmRleC0+bG9jaywK LQkJICAgICAgIFNZTkNfSU5ERVhfVFJFRSk7CisJCSAgICAgICBkaWN0X2luZGV4X2lzX2lidWYo aW5kZXgpCisJCSAgICAgICA/IFNZTkNfSUJVRl9JTkRFWF9UUkVFIDogU1lOQ19JTkRFWF9UUkVF KTsKIAogCWlmICghVU5JVl9VTkxJS0VMWShuZXdfaW5kZXgtPnR5cGUgJiBESUNUX1VOSVZFUlNB TCkpIHsKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaWJ1Zi9pYnVmMGli dWYuYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pYnVmL2lidWYwaWJ1Zi5jCXJldmlkOmpvcmdl bi5sb2xhbmRAb3JhY2xlLmNvbS0yMDExMDgxNTA4NTgwNS03aWk4ejYxOXlqOGF5Y2ZsCisrKyBi L3N0b3JhZ2UvaW5ub2Jhc2UvaWJ1Zi9pYnVmMGlidWYuYwlyZXZpZDptYXJrby5tYWtlbGFAb3Jh Y2xlLmNvbS0yMDExMDgxNTA5MzQzOS1mZHBja3VkcnhpbndwaGN3CkBAIC0zOTYsNyArMzk2LDcg QEAgaWJ1Zl90cmVlX3Jvb3RfZ2V0KAogCWJsb2NrID0gYnVmX3BhZ2VfZ2V0KAogCQlJQlVGX1NQ QUNFX0lELCAwLCBGU1BfSUJVRl9UUkVFX1JPT1RfUEFHRV9OTywgUldfWF9MQVRDSCwgbXRyKTsK IAotCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2NrLCBTWU5DX1RSRUVfTk9ERSk7CisJYnVm X2Jsb2NrX2RiZ19hZGRfbGV2ZWwoYmxvY2ssIFNZTkNfSUJVRl9UUkVFX05PREVfTkVXKTsKIAog CXJvb3QgPSBidWZfYmxvY2tfZ2V0X2ZyYW1lKGJsb2NrKTsKIApAQCAtNTQ0LDcgKzU0NCw3IEBA IGlidWZfaW5pdF9hdF9kYl9zdGFydCh2b2lkKQogCQlibG9jayA9IGJ1Zl9wYWdlX2dldCgKIAkJ CUlCVUZfU1BBQ0VfSUQsIDAsIEZTUF9JQlVGX1RSRUVfUk9PVF9QQUdFX05PLAogCQkJUldfWF9M QVRDSCwgJm10cik7Ci0JCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2NrLCBTWU5DX1RSRUVf Tk9ERSk7CisJCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2NrLCBTWU5DX0lCVUZfVFJFRV9O T0RFKTsKIAogCQlyb290ID0gYnVmX2Jsb2NrX2dldF9mcmFtZShibG9jayk7CiAJfQpAQCAtMjIy Miw3ICsyMjIyLDggQEAgaWJ1Zl9hZGRfZnJlZV9wYWdlKHZvaWQpCiAJfSBlbHNlIHsKIAkJYnVm X2Jsb2NrX3QqCWJsb2NrID0gYnVmX3BhZ2VfZ2V0KAogCQkJSUJVRl9TUEFDRV9JRCwgMCwgcGFn ZV9ubywgUldfWF9MQVRDSCwgJm10cik7Ci0JCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2Nr LCBTWU5DX1RSRUVfTk9ERV9ORVcpOworCisJCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2Nr LCBTWU5DX0lCVUZfVFJFRV9OT0RFX05FVyk7CiAKIAkJcGFnZSA9IGJ1Zl9ibG9ja19nZXRfZnJh bWUoYmxvY2spOwogCX0KQEAgLTIzNDUsOCArMjM0Niw3IEBAIGlidWZfcmVtb3ZlX2ZyZWVfcGFn ZSh2b2lkKQogCQlibG9jayA9IGJ1Zl9wYWdlX2dldCgKIAkJCUlCVUZfU1BBQ0VfSUQsIDAsIHBh Z2Vfbm8sIFJXX1hfTEFUQ0gsICZtdHIpOwogCi0JCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJs b2NrLCBTWU5DX1RSRUVfTk9ERSk7Ci0KKwkJYnVmX2Jsb2NrX2RiZ19hZGRfbGV2ZWwoYmxvY2ss IFNZTkNfSUJVRl9UUkVFX05PREUpOwogCiAJCXBhZ2UgPSBidWZfYmxvY2tfZ2V0X2ZyYW1lKGJs b2NrKTsKIAl9CkBAIC0zMDU1LDcgKzMwNTUsNyBAQCBpYnVmX2dldF92b2x1bWVfYnVmZmVyZWQo CiAJCQlJQlVGX1NQQUNFX0lELCAwLCBwcmV2X3BhZ2Vfbm8sIFJXX1hfTEFUQ0gsCiAJCQltdHIp OwogCi0JCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2NrLCBTWU5DX1RSRUVfTk9ERSk7CisJ CWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2NrLCBTWU5DX0lCVUZfVFJFRV9OT0RFKTsKIAog CiAJCXByZXZfcGFnZSA9IGJ1Zl9ibG9ja19nZXRfZnJhbWUoYmxvY2spOwpAQCAtMzEyOCw3ICsz MTI4LDcgQEAgY291bnRfbGF0ZXI6CiAJCQlJQlVGX1NQQUNFX0lELCAwLCBuZXh0X3BhZ2Vfbm8s IFJXX1hfTEFUQ0gsCiAJCQltdHIpOwogCi0JCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2Nr LCBTWU5DX1RSRUVfTk9ERSk7CisJCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2NrLCBTWU5D X0lCVUZfVFJFRV9OT0RFKTsKIAogCiAJCW5leHRfcGFnZSA9IGJ1Zl9ibG9ja19nZXRfZnJhbWUo YmxvY2spOwpAQCAtMzM2Niw3ICszMzY2LDcgQEAgaWJ1Zl9zZXRfZW50cnlfY291bnRlcigKIAkJ CQlJQlVGX1NQQUNFX0lELCAwLCBwcmV2X3BhZ2Vfbm8sCiAJCQkJUldfWF9MQVRDSCwgbXRyKTsK IAotCQkJYnVmX2Jsb2NrX2RiZ19hZGRfbGV2ZWwoYmxvY2ssIFNZTkNfVFJFRV9OT0RFKTsKKwkJ CWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2NrLCBTWU5DX0lCVUZfVFJFRV9OT0RFKTsKIAog CQkJcHJldl9wYWdlID0gYnVmX2Jsb2NrX2dldF9mcmFtZShibG9jayk7CiAKQEAgLTQ0NTAsNiAr NDQ1MCw3IEBAIGlidWZfbWVyZ2Vfb3JfZGVsZXRlX2Zvcl9wYWdlKAogCXV0X2FkKCFibG9jayB8 fCBidWZfYmxvY2tfZ2V0X3NwYWNlKGJsb2NrKSA9PSBzcGFjZSk7CiAJdXRfYWQoIWJsb2NrIHx8 IGJ1Zl9ibG9ja19nZXRfcGFnZV9ubyhibG9jaykgPT0gcGFnZV9ubyk7CiAJdXRfYWQoIWJsb2Nr IHx8IGJ1Zl9ibG9ja19nZXRfemlwX3NpemUoYmxvY2spID09IHppcF9zaXplKTsKKwl1dF9hZCgh YmxvY2sgfHwgYnVmX2Jsb2NrX2dldF9pb19maXgoYmxvY2spID09IEJVRl9JT19SRUFEKTsKIAog CWlmIChzcnZfZm9yY2VfcmVjb3ZlcnkgPj0gU1JWX0ZPUkNFX05PX0lCVUZfTUVSR0UKIAkgICAg fHwgdHJ4X3N5c19oZHJfcGFnZShzcGFjZSwgcGFnZV9ubykpIHsKQEAgLTQ2MDIsNyArNDYwMywx MyBAQCBsb29wOgogCiAJCXV0X2Eoc3VjY2Vzcyk7CiAKLQkJYnVmX2Jsb2NrX2RiZ19hZGRfbGV2 ZWwoYmxvY2ssIFNZTkNfVFJFRV9OT0RFKTsKKwkJLyogVGhpcyBpcyBhIHVzZXIgcGFnZSAoc2Vj b25kYXJ5IGluZGV4IGxlYWYgcGFnZSksCisJCWJ1dCB3ZSBwcmV0ZW5kIHRoYXQgaXQgaXMgYSBj aGFuZ2UgYnVmZmVyIHBhZ2UgaW4KKwkJb3JkZXIgdG8gb2JleSB0aGUgbGF0Y2hpbmcgb3JkZXIu IFRoaXMgc2hvdWxkIGJlIE9LLAorCQliZWNhdXNlIGJ1ZmZlcmVkIGNoYW5nZXMgYXJlIGFwcGxp ZWQgaW1tZWRpYXRlbHkgd2hpbGUKKwkJdGhlIGJsb2NrIGlzIGlvLWZpeGVkLiBPdGhlciB0aHJl YWRzIG11c3Qgbm90IHRyeSB0bworCQlsYXRjaCBhbiBpby1maXhlZCBibG9jay4gKi8KKwkJYnVm X2Jsb2NrX2RiZ19hZGRfbGV2ZWwoYmxvY2ssIFNZTkNfSUJVRl9UUkVFX05PREUpOwogCX0KIAog CS8qIFBvc2l0aW9uIHBjdXIgaW4gdGhlIGluc2VydCBidWZmZXIgYXQgdGhlIGZpcnN0IGVudHJ5 IGZvciB0aGlzCkBAIC00NzA2LDcgKzQ3MTMsMTIgQEAgbG9vcDoKIAkJCQkJX19GSUxFX18sIF9f TElORV9fLCAmbXRyKTsKIAkJCQl1dF9hKHN1Y2Nlc3MpOwogCi0JCQkJYnVmX2Jsb2NrX2RiZ19h ZGRfbGV2ZWwoYmxvY2ssIFNZTkNfVFJFRV9OT0RFKTsKKwkJCQkvKiBUaGlzIGlzIGEgdXNlciBw YWdlIChzZWNvbmRhcnkKKwkJCQlpbmRleCBsZWFmIHBhZ2UpLCBidXQgaXQgc2hvdWxkIGJlIE9L CisJCQkJdG8gdXNlIHRvbyBsb3cgbGF0Y2hpbmcgb3JkZXIgZm9yIGl0LAorCQkJCWFzIHRoZSBi bG9jayBpcyBpby1maXhlZC4gKi8KKwkJCQlidWZfYmxvY2tfZGJnX2FkZF9sZXZlbCgKKwkJCQkJ YmxvY2ssIFNZTkNfSUJVRl9UUkVFX05PREUpOwogCiAJCQkJaWYgKCFpYnVmX3Jlc3RvcmVfcG9z KHNwYWNlLCBwYWdlX25vLAogCQkJCQkJICAgICAgc2VhcmNoX3R1cGxlLAoKPT09IG1vZGlmaWVk IGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIwYnRyLmgnCi0tLSBhL3N0b3JhZ2Uv aW5ub2Jhc2UvaW5jbHVkZS9idHIwYnRyLmgJcmV2aWQ6am9yZ2VuLmxvbGFuZEBvcmFjbGUuY29t LTIwMTEwODE1MDg1ODA1LTdpaTh6NjE5eWo4YXljZmwKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9p bmNsdWRlL2J0cjBidHIuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDgxNTA5 MzQzOS1mZHBja3VkcnhpbndwaGN3CkBAIC0xOTksMjYgKzE5OSw0NSBAQCBidHJfYmxvY2tfZ2V0 X2Z1bmMoCiAJdWxpbnQJCW1vZGUsCQkvKiE8IGluOiBsYXRjaCBtb2RlICovCiAJY29uc3QgY2hh cioJZmlsZSwJCS8qITwgaW46IGZpbGUgbmFtZSAqLwogCXVsaW50CQlsaW5lLAkJLyohPCBpbjog bGluZSB3aGVyZSBjYWxsZWQgKi8KLQltdHJfdCoJCW10cikJCS8qITwgaW4vb3V0OiBtdHIgKi8K LQlfX2F0dHJpYnV0ZV9fKChub25udWxsKSk7CisjIGlmZGVmIFVOSVZfU1lOQ19ERUJVRworCWNv bnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgsCS8qITwgaW46IGluZGV4IHRyZWUsIG1heSBiZSBOVUxM CisJCQkJCWlmIGl0IGlzIG5vdCBhbiBpbnNlcnQgYnVmZmVyIHRyZWUgKi8KKyMgZW5kaWYgLyog VU5JVl9TWU5DX0RFQlVHICovCisJbXRyX3QqCQltdHIpOwkJLyohPCBpbi9vdXQ6IG1pbmktdHJh bnNhY3Rpb24gKi8KKyMgaWZkZWYgVU5JVl9TWU5DX0RFQlVHCiAvKiogR2V0cyBhIGJ1ZmZlciBw YWdlIGFuZCBkZWNsYXJlcyBpdHMgbGF0Y2hpbmcgb3JkZXIgbGV2ZWwuCiBAcGFyYW0gc3BhY2UJ dGFibGVzcGFjZSBpZGVudGlmaWVyCiBAcGFyYW0gemlwX3NpemUJY29tcHJlc3NlZCBwYWdlIHNp emUgaW4gYnl0ZXMgb3IgMCBmb3IgdW5jb21wcmVzc2VkIHBhZ2VzCiBAcGFyYW0gcGFnZV9ubwlw YWdlIG51bWJlcgogQHBhcmFtIG1vZGUJbGF0Y2ggbW9kZQorQHBhcmFtIGluZGV4CWluZGV4IHRy ZWUsIG1heSBiZSBOVUxMIGlmIG5vdCB0aGUgaW5zZXJ0IGJ1ZmZlciB0cmVlCiBAcGFyYW0gbXRy CW1pbmktdHJhbnNhY3Rpb24gaGFuZGxlCiBAcmV0dXJuIHRoZSBibG9jayBkZXNjcmlwdG9yICov Ci0jIGRlZmluZSBidHJfYmxvY2tfZ2V0KHNwYWNlLHppcF9zaXplLHBhZ2Vfbm8sbW9kZSxtdHIp IFwKKyMgIGRlZmluZSBidHJfYmxvY2tfZ2V0KHNwYWNlLHppcF9zaXplLHBhZ2Vfbm8sbW9kZSxp bmRleCxtdHIpCVwKKwlidHJfYmxvY2tfZ2V0X2Z1bmMoc3BhY2UsemlwX3NpemUscGFnZV9ubyxt b2RlLAkJXAorCQkJICAgX19GSUxFX18sX19MSU5FX18saW5kZXgsbXRyKQorIyBlbHNlIC8qIFVO SVZfU1lOQ19ERUJVRyAqLworLyoqIEdldHMgYSBidWZmZXIgcGFnZSBhbmQgZGVjbGFyZXMgaXRz IGxhdGNoaW5nIG9yZGVyIGxldmVsLgorQHBhcmFtIHNwYWNlCXRhYmxlc3BhY2UgaWRlbnRpZmll cgorQHBhcmFtIHppcF9zaXplCWNvbXByZXNzZWQgcGFnZSBzaXplIGluIGJ5dGVzIG9yIDAgZm9y IHVuY29tcHJlc3NlZCBwYWdlcworQHBhcmFtIHBhZ2Vfbm8JcGFnZSBudW1iZXIKK0BwYXJhbSBt b2RlCWxhdGNoIG1vZGUKK0BwYXJhbSBpZHgJaW5kZXggdHJlZSwgbWF5IGJlIE5VTEwgaWYgbm90 IHRoZSBpbnNlcnQgYnVmZmVyIHRyZWUKK0BwYXJhbSBtdHIJbWluaS10cmFuc2FjdGlvbiBoYW5k bGUKK0ByZXR1cm4gdGhlIGJsb2NrIGRlc2NyaXB0b3IgKi8KKyMgIGRlZmluZSBidHJfYmxvY2tf Z2V0KHNwYWNlLHppcF9zaXplLHBhZ2Vfbm8sbW9kZSxpZHgsbXRyKQkJXAogCWJ0cl9ibG9ja19n ZXRfZnVuYyhzcGFjZSx6aXBfc2l6ZSxwYWdlX25vLG1vZGUsX19GSUxFX18sX19MSU5FX18sbXRy KQorIyBlbmRpZiAvKiBVTklWX1NZTkNfREVCVUcgKi8KIC8qKiBHZXRzIGEgYnVmZmVyIHBhZ2Ug YW5kIGRlY2xhcmVzIGl0cyBsYXRjaGluZyBvcmRlciBsZXZlbC4KIEBwYXJhbSBzcGFjZQl0YWJs ZXNwYWNlIGlkZW50aWZpZXIKIEBwYXJhbSB6aXBfc2l6ZQljb21wcmVzc2VkIHBhZ2Ugc2l6ZSBp biBieXRlcyBvciAwIGZvciB1bmNvbXByZXNzZWQgcGFnZXMKIEBwYXJhbSBwYWdlX25vCXBhZ2Ug bnVtYmVyCiBAcGFyYW0gbW9kZQlsYXRjaCBtb2RlCitAcGFyYW0gaWR4CWluZGV4IHRyZWUsIG1h eSBiZSBOVUxMIGlmIG5vdCB0aGUgaW5zZXJ0IGJ1ZmZlciB0cmVlCiBAcGFyYW0gbXRyCW1pbmkt dHJhbnNhY3Rpb24gaGFuZGxlCiBAcmV0dXJuIHRoZSB1bmNvbXByZXNzZWQgcGFnZSBmcmFtZSAq LwotIyBkZWZpbmUgYnRyX3BhZ2VfZ2V0KHNwYWNlLHppcF9zaXplLHBhZ2Vfbm8sbW9kZSxtdHIp IFwKLQlidWZfYmxvY2tfZ2V0X2ZyYW1lKGJ0cl9ibG9ja19nZXQoc3BhY2UsemlwX3NpemUscGFn ZV9ubyxtb2RlLG10cikpCisjIGRlZmluZSBidHJfcGFnZV9nZXQoc3BhY2UsemlwX3NpemUscGFn ZV9ubyxtb2RlLGlkeCxtdHIpCQlcCisJYnVmX2Jsb2NrX2dldF9mcmFtZShidHJfYmxvY2tfZ2V0 KHNwYWNlLHppcF9zaXplLHBhZ2Vfbm8sbW9kZSxpZHgsbXRyKSkKICNlbmRpZiAvKiAhVU5JVl9I T1RCQUNLVVAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8vKioKIEdldHMgdGhlIGluZGV4IGlkIGZpZWxkIG9mIGEgcGFn ZS4KQEAgLTM0NCw4ICszNjMsNyBAQCBidHJfZnJlZV9yb290KAogCXVsaW50CXppcF9zaXplLAkv KiE8IGluOiBjb21wcmVzc2VkIHBhZ2Ugc2l6ZSBpbiBieXRlcwogCQkJCW9yIDAgZm9yIHVuY29t cHJlc3NlZCBwYWdlcyAqLwogCXVsaW50CXJvb3RfcGFnZV9ubywJLyohPCBpbjogcm9vdCBwYWdl IG51bWJlciAqLwotCW10cl90KgltdHIpOwkJLyohPCBpbjogYSBtaW5pLXRyYW5zYWN0aW9uIHdo aWNoIGhhcyBhbHJlYWR5Ci0JCQkJYmVlbiBzdGFydGVkICovCisJbXRyX3QqCW10cik7CQkvKiE8 IGluL291dDogbWluaS10cmFuc2FjdGlvbiAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBNYWtlcyB0cmVlIG9uZSBs ZXZlbCBoaWdoZXIgYnkgc3BsaXR0aW5nIHRoZSByb290LCBhbmQgaW5zZXJ0cwogdGhlIHR1cGxl LiBJdCBpcyBhc3N1bWVkIHRoYXQgbXRyIGNvbnRhaW5zIGFuIHgtbGF0Y2ggb24gdGhlIHRyZWUu Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J0cjBidHIuaWMn Ci0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIwYnRyLmljCXJldmlkOmpvcmdlbi5s b2xhbmRAb3JhY2xlLmNvbS0yMDExMDgxNTA4NTgwNS03aWk4ejYxOXlqOGF5Y2ZsCisrKyBiL3N0 b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIwYnRyLmljCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFj bGUuY29tLTIwMTEwODE1MDkzNDM5LWZkcGNrdWRyeGlud3BoY3cKQEAgLTEsNiArMSw2IEBACiAv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKIAotQ29weXJpZ2h0IChjKSAxOTk0LCAyMDEwLCBJbm5vYmFz ZSBPeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0NvcHlyaWdodCAoYykgMTk5NCwgMjAxMSwgT3Jh Y2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KIAogVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkgaXQgdW5kZXIKIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCkBAIC00OCw2ICs0OCwxMCBAQCBi dHJfYmxvY2tfZ2V0X2Z1bmMoCiAJdWxpbnQJCW1vZGUsCQkvKiE8IGluOiBsYXRjaCBtb2RlICov CiAJY29uc3QgY2hhcioJZmlsZSwJCS8qITwgaW46IGZpbGUgbmFtZSAqLwogCXVsaW50CQlsaW5l LAkJLyohPCBpbjogbGluZSB3aGVyZSBjYWxsZWQgKi8KKyNpZmRlZiBVTklWX1NZTkNfREVCVUcK Kwljb25zdCBkaWN0X2luZGV4X3QqCWluZGV4LAkvKiE8IGluOiBpbmRleCB0cmVlLCBtYXkgYmUg TlVMTAorCQkJCQlpZiBpdCBpcyBub3QgYW4gaW5zZXJ0IGJ1ZmZlciB0cmVlICovCisjZW5kaWYg LyogVU5JVl9TWU5DX0RFQlVHICovCiAJbXRyX3QqCQltdHIpCQkvKiE8IGluL291dDogbXRyICov CiB7CiAJYnVmX2Jsb2NrX3QqCWJsb2NrOwpAQCAtNTcsNyArNjEsOSBAQCBidHJfYmxvY2tfZ2V0 X2Z1bmMoCiAKIAlpZiAobW9kZSAhPSBSV19OT19MQVRDSCkgewogCi0JCWJ1Zl9ibG9ja19kYmdf YWRkX2xldmVsKGJsb2NrLCBTWU5DX1RSRUVfTk9ERSk7CisJCWJ1Zl9ibG9ja19kYmdfYWRkX2xl dmVsKAorCQkJYmxvY2ssIGluZGV4ICE9IE5VTEwgJiYgZGljdF9pbmRleF9pc19pYnVmKGluZGV4 KQorCQkJPyBTWU5DX0lCVUZfVFJFRV9OT0RFIDogU1lOQ19UUkVFX05PREUpOwogCX0KIAogCXJl dHVybihibG9jayk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRl L3N5bmMwc3luYy5oJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvc3luYzBzeW5jLmgJ cmV2aWQ6am9yZ2VuLmxvbGFuZEBvcmFjbGUuY29tLTIwMTEwODE1MDg1ODA1LTdpaTh6NjE5eWo4 YXljZmwKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3N5bmMwc3luYy5oCXJldmlkOm1h cmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwODE1MDkzNDM5LWZkcGNrdWRyeGlud3BoY3cKQEAg LTY1OCwxMCArNjU4LDYgQEAgb3Igcm93IGxvY2shICovCiAjZGVmaW5lIFNZTkNfRElDVF9IRUFE RVIJOTk1CiAjZGVmaW5lIFNZTkNfSUJVRl9IRUFERVIJOTE0CiAjZGVmaW5lIFNZTkNfSUJVRl9Q RVNTX0lOU0VSVF9NVVRFWCA5MTIKLSNkZWZpbmUgU1lOQ19JQlVGX01VVEVYCQk5MTAJLyogaWJ1 ZiBtdXRleCBpcyByZWFsbHkgYmVsb3cKLQkJCQkJU1lOQ19GU1BfUEFHRTogd2UgYXNzaWduIGEg dmFsdWUgdGhpcwotCQkJCQloaWdoIG9ubHkgdG8gbWFrZSB0aGUgcHJvZ3JhbSB0byBwYXNzCi0J CQkJCXRoZSBkZWJ1ZyBjaGVja3MgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSovCiAjZGVmaW5lCVNZTkNfSU5ERVhfVFJFRQkJOTAwCiAjZGVmaW5lIFNZTkNfVFJFRV9OT0RF X05FVwk4OTIKQEAgLTY3Nyw4ICs2NzMsMTEgQEAgb3Igcm93IGxvY2shICovCiAjZGVmaW5lCVNZ TkNfRlNQCQk0MDAKICNkZWZpbmUJU1lOQ19GU1BfUEFHRQkJMzk1CiAvKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gSW5zZXJ0IGJ1ZmZlciBoZWFkZXJzICovCi0vKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gaWJ1Zl9tdXRleCAqLworI2RlZmluZSBT WU5DX0lCVUZfTVVURVgJCTM3MAkvKiBpYnVmX211dGV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gSW5zZXJ0IGJ1ZmZlciB0cmVlICovCisjZGVmaW5lIFNZTkNf SUJVRl9JTkRFWF9UUkVFCTM2MAorI2RlZmluZSBTWU5DX0lCVUZfVFJFRV9OT0RFX05FVwkzNTkK KyNkZWZpbmUgU1lOQ19JQlVGX1RSRUVfTk9ERQkzNTgKICNkZWZpbmUJU1lOQ19JQlVGX0JJVE1B UF9NVVRFWAkzNTEKICNkZWZpbmUJU1lOQ19JQlVGX0JJVE1BUAkzNTAKIC8qLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBNeVNRTCBxdWVyeSBjYWNoZSBtdXRleCAqLwoKPT09 IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uvc3luYy9zeW5jMHN5bmMuYycKLS0tIGEv c3RvcmFnZS9pbm5vYmFzZS9zeW5jL3N5bmMwc3luYy5jCXJldmlkOmpvcmdlbi5sb2xhbmRAb3Jh Y2xlLmNvbS0yMDExMDgxNTA4NTgwNS03aWk4ejYxOXlqOGF5Y2ZsCisrKyBiL3N0b3JhZ2UvaW5u b2Jhc2Uvc3luYy9zeW5jMHN5bmMuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEx MDgxNTA5MzQzOS1mZHBja3VkcnhpbndwaGN3CkBAIC0xMjM0LDYgKzEyMzQsNyBAQCBzeW5jX3Ro cmVhZF9hZGRfbGV2ZWwoCiAJY2FzZSBTWU5DX0RJQ1RfSEVBREVSOgogCWNhc2UgU1lOQ19UUlhf SV9TX1JXTE9DSzoKIAljYXNlIFNZTkNfVFJYX0lfU19MQVNUX1JFQUQ6CisJY2FzZSBTWU5DX0lC VUZfTVVURVg6CiAJCWlmICghc3luY190aHJlYWRfbGV2ZWxzX2coYXJyYXksIGxldmVsLCBUUlVF KSkgewogCQkJZnByaW50ZihzdGRlcnIsCiAJCQkJIklubm9EQjogc3luY190aHJlYWRfbGV2ZWxz X2coYXJyYXksICVsdSkiCkBAIC0xMzMzLDIyICsxMzM0LDI4IEBAIHN5bmNfdGhyZWFkX2FkZF9s ZXZlbCgKIAkJICAgICB8fCBzeW5jX3RocmVhZF9sZXZlbHNfZyhhcnJheSwgU1lOQ19UUkVFX05P REUgLSAxLCBUUlVFKSk7CiAJCWJyZWFrOwogCWNhc2UgU1lOQ19UUkVFX05PREVfTkVXOgotCQl1 dF9hKHN5bmNfdGhyZWFkX2xldmVsc19jb250YWluKGFycmF5LCBTWU5DX0ZTUF9QQUdFKQotCQkg ICAgIHx8IHN5bmNfdGhyZWFkX2xldmVsc19jb250YWluKGFycmF5LCBTWU5DX0lCVUZfTVVURVgp KTsKKwkJdXRfYShzeW5jX3RocmVhZF9sZXZlbHNfY29udGFpbihhcnJheSwgU1lOQ19GU1BfUEFH RSkpOwogCQlicmVhazsKIAljYXNlIFNZTkNfSU5ERVhfVFJFRToKLQkJaWYgKHN5bmNfdGhyZWFk X2xldmVsc19jb250YWluKGFycmF5LCBTWU5DX0lCVUZfTVVURVgpCi0JCSAgICAmJiBzeW5jX3Ro cmVhZF9sZXZlbHNfY29udGFpbihhcnJheSwgU1lOQ19GU1ApKSB7Ci0JCQl1dF9hKHN5bmNfdGhy ZWFkX2xldmVsc19nKGFycmF5LCBTWU5DX0ZTUF9QQUdFIC0gMSwKLQkJCQkJCSAgVFJVRSkpOwor CQl1dF9hKHN5bmNfdGhyZWFkX2xldmVsc19nKGFycmF5LCBTWU5DX1RSRUVfTk9ERSAtIDEsIFRS VUUpKTsKKwkJYnJlYWs7CisJY2FzZSBTWU5DX0lCVUZfVFJFRV9OT0RFOgorCQl1dF9hKHN5bmNf dGhyZWFkX2xldmVsc19jb250YWluKGFycmF5LCBTWU5DX0lCVUZfSU5ERVhfVFJFRSkKKwkJICAg ICB8fCBzeW5jX3RocmVhZF9sZXZlbHNfZyhhcnJheSwgU1lOQ19JQlVGX1RSRUVfTk9ERSAtIDEs CisJCQkJCSAgICAgVFJVRSkpOworCQlicmVhazsKKwljYXNlIFNZTkNfSUJVRl9UUkVFX05PREVf TkVXOgorCQl1dF9hKHN5bmNfdGhyZWFkX2xldmVsc19jb250YWluKGFycmF5LCBTWU5DX0lCVUZf TVVURVgpKTsKKwkJYnJlYWs7CisJY2FzZSBTWU5DX0lCVUZfSU5ERVhfVFJFRToKKwkJaWYgKHN5 bmNfdGhyZWFkX2xldmVsc19jb250YWluKGFycmF5LCBTWU5DX0ZTUCkpIHsKKwkJCXV0X2Eoc3lu Y190aHJlYWRfbGV2ZWxzX2coCisJCQkJICAgICBhcnJheSwgU1lOQ19GU1BfUEFHRSAtIDEsIFRS VUUpKTsKIAkJfSBlbHNlIHsKLQkJCXV0X2Eoc3luY190aHJlYWRfbGV2ZWxzX2coYXJyYXksIFNZ TkNfVFJFRV9OT0RFIC0gMSwKLQkJCQkJCSAgVFJVRSkpOworCQkJdXRfYShzeW5jX3RocmVhZF9s ZXZlbHNfZygKKwkJCQkgICAgIGFycmF5LCBTWU5DX0lCVUZfVFJFRV9OT0RFIC0gMSwgVFJVRSkp OwogCQl9CiAJCWJyZWFrOwotCWNhc2UgU1lOQ19JQlVGX01VVEVYOgotCQl1dF9hKHN5bmNfdGhy ZWFkX2xldmVsc19nKGFycmF5LCBTWU5DX0ZTUF9QQUdFIC0gMSwgVFJVRSkpOwotCQlicmVhazsK IAljYXNlIFNZTkNfSUJVRl9QRVNTX0lOU0VSVF9NVVRFWDoKIAkJdXRfYShzeW5jX3RocmVhZF9s ZXZlbHNfZyhhcnJheSwgU1lOQ19GU1AgLSAxLCBUUlVFKSk7CiAJCXV0X2EoIXN5bmNfdGhyZWFk X2xldmVsc19jb250YWluKGFycmF5LCBTWU5DX0lCVUZfTVVURVgpKTsKCk5vIGJ1bmRsZSAocmVh c29uOiB1c2VsZXNzIGZvciBwdXNoIGVtYWlscyku