From: marko.makela Date: June 5 2012 7:29am Subject: bzr push into mysql-trunk-wl6255 branch (marko.makela:3937 to 3940) WL#6255 List-Archive: http://lists.mysql.com/commits/144095 Message-Id: <201206050729.q557TPkA007030@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM5NDAgTWFya28gTcOka2Vsw6QJMjAxMi0wNi0wNQogICAgICBXTCM2MjU1IERST1AgQ09MVU1O OiBUZXN0IEZPUkVJR04gS0VZIGNoZWNrcy4KCiAgICBtb2RpZmllZDoKICAgICAgbXlzcWwtdGVz dC9zdWl0ZS9pbm5vZGIvci9pbm5vZGItaW5kZXgucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvc3Vp dGUvaW5ub2RiL3QvaW5ub2RiLWluZGV4LnRlc3QKIDM5MzkgTWFya28gTcOka2Vsw6QJMjAxMi0w Ni0wNQogICAgICBXTCM1NTI2IGJ1ZyBmaXggZm9yIGZhaWxlZCBEUk9QIElOREVYCiAgICAgIAog ICAgICBXaGVuIGFuIEFMVEVSIFRBQkxFIHRoYXQgaW52b2x2ZXMgRFJPUCBJTkRFWCBmYWlscywg Y2xlYXIgdGhlCiAgICAgIGluZGV4LT50b19iZV9kcm9wcGVkIGZsYWdzLiBUaGlzIGJ1ZyB3YXMg bW9zdGx5IGFmZmVjdGluZyBmYWlsZWQKICAgICAgdGFibGUgcmVidWlsZCAoYmVmb3JlIFdMIzYy NTUsIEFERCBQUklNQVJZIEtFWSkgdGhhdCBhbHNvIGludm9sdmVkCiAgICAgIGRyb3BwaW5nIGlu ZGV4ZXMuCiAgICAgIAogICAgICBwcmVwYXJlX2lucGxhY2VfYWx0ZXJfdGFibGVfZGljdCgpLAog ICAgICBoYV9pbm5vYmFzZTo6cHJlcGFyZV9pbnBsYWNlX2FsdGVyX3RhYmxlKCk6IE9uIGZhaWx1 cmUsIGNsZWFyIHRoZQogICAgICB0b19iZV9kcm9wcGVkIGZsYWdzLgogICAgICAKICAgICAgcm9s bGJhY2tfaW5wbGFjZV9hbHRlcl90YWJsZSgpOiBBbHdheXMgY2xlYXIgdGhlIHRvX2JlX2Ryb3Bw ZWQgZmxhZ3MuCiAgICAgIEFsbG93IHRoZSBmdW5jdGlvbiB0byBiZSBpbnZva2VkIGluIGV2ZXJ5 IGNhc2UsIG5vdCBvbmx5IHRvIHJvbGwgYmFjawogICAgICBzZWNvbmRhcnkgaW5kZXggY3JlYXRp b24uCiAgICAgIAogICAgICBoYV9pbm5vYmFzZTo6Y29tbWl0X2lucGxhY2VfYWx0ZXJfdGFibGUo KTogQWx3YXlzIGludm9rZQogICAgICByb2xsYmFja19pbnBsYWNlX2FsdGVyX3RhYmxlKCkgdG8g cm9sbCBiYWNrIGNoYW5nZXMuIENsZWFyIHRoZQogICAgICBpbmRleC0+dG9fYmVfZHJvcHBlZCBm bGFncyBvbiB0aGUgb2xkIHRhYmxlIHdoZW4gdGhlIHRhYmxlIHdhcwogICAgICByZWJ1aWx0LiBB c3NlcnQgYXQgdGhlIGVuZCB0aGF0IG5vIGluZGV4LT50b19iZV9kcm9wcGVkIGZsYWcgaXMgc2V0 LgoKICAgIG1vZGlmaWVkOgogICAgICBzdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFuZGxlcjBh bHRlci5jYwogMzkzOCBNYXJrbyBNw6RrZWzDpAkyMDEyLTA2LTA1CiAgICAgIEFkZCBzb21lIGRl YnVnIGFzc2VydGlvbnMuCgogICAgbW9kaWZpZWQ6CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaGFu ZGxlci9oYW5kbGVyMGFsdGVyLmNjCiAzOTM3IE1hcmtvIE3DpGtlbMOkCTIwMTItMDYtMDUKICAg ICAgV0wjNjI1NSBBTFRFUl9DT0xVTU5fT1JERVIgYW5kIERST1BfQ09MVU1OIChEUk9QIENPTFVN TiBhbmQgY29sdW1uIHJlb3JkZXIpCiAgICAgIAogICAgICBoYV9pbm5vYmFzZV9pbnBsYWNlX2N0 eCgpOiBBZGQgY29sX21hcCBmb3IgbWFwcGluZyBvbGQgY29sdW1uIG51bWJlcnMKICAgICAgdG8g bmV3IG9uZXMgd2hlbiByZWJ1aWxkaW5nIGEgdGFibGUuCiAgICAgIAogICAgICBpbm5vYmFzZV9i dWlsZF9jb2xfbWFwKCk6IE1hcCBvbGQgY29sdW1uIG51bWJlcnMgdG8gbmV3IG9uZXMuIERyb3Bw ZWQKICAgICAgY29sdW1ucyBhcmUgaW5kaWNhdGVkIGJ5IFVMSU5UX1VOREVGSU5FRC4KICAgICAg CiAgICAgIHByZXBhcmVfaW5wbGFjZV9hbHRlcl90YWJsZV9kaWN0KCk6IEludm9rZSBpbm5vYmFz ZV9idWlsZF9jb2xfbWFwKCkKICAgICAgd2hlbmV2ZXIgcmVidWlsZGluZyB0aGUgdGFibGUuCiAg ICAgIAogICAgICByb3dfbG9nX3RhYmxlX2FwcGx5KCksIHJvd19tZXJnZV9idWlsZF9pbmRleGVz KCksIHJvd19idWlsZCgpLAogICAgICByb3dfbG9nX3RhYmxlX2FwcGx5X2NvbnZlcnRfbXJlYygp LCByb3dfbG9nX3RhYmxlX2FwcGx5X2luc2VydCgpLAogICAgICByb3dfbG9nX3RhYmxlX2FwcGx5 X3VwZGF0ZSgpLCByb3dfbG9nX3RhYmxlX2FwcGx5X29wKCksCiAgICAgIHJvd19sb2dfdGFibGVf YXBwbHlfb3BzKCksIHJvd19tZXJnZV9idWlsZF9pbmRleGVzKCk6IEFkZCB0aGUKICAgICAgcGFy YW1ldGVyIGNvbF9tYXAuCiAgICAgIAogICAgICByb3dfbWVyZ2VfYnVmX2FkZCgpOiBSZW1vdmUg dGhlIHR3ZWFrcyBmb3IgRlRTX0RPQ19JRC4gVGhleSB3aWxsIG5vdwogICAgICBiZSBoYW5kbGVk IGJ5IHRoZSBjb2xfbWFwLgogICAgICAKICAgICAgcm93X21lcmdlX3JlYWRfY2x1c3RlcmVkX2lu ZGV4KCk6IEFkZCB0aGUgcGFyYW1ldGVyIGNvbF9tYXAuICBSZW1vdmUKICAgICAgdGhlIGFycmF5 IG51bGxhYmxlW10uIE5vIGxvbmdlciB0d2VhayB0aGUgREFUQV9OT1RfTlVMTCBmaWVsZCBvZiB0 aGUKICAgICAgcm93IHR1cGxlLCBiZWNhdXNlIGl0IHdpbGwgaGF2ZSBiZWVuIHNldCB1cCBpbiBy b3dfYnVpbGQoKS4KCiAgICBtb2RpZmllZDoKICAgICAgbXlzcWwtdGVzdC9yL2FsdGVyX3RhYmxl LnJlc3VsdAogICAgICBteXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYi10YWJsZS1vbmxp bmUucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiLXRhYmxlLW9u bGluZS50ZXN0CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYW5kbGVyMGFsdGVyLmNj CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwbG9nLmgKICAgICAgc3RvcmFnZS9p bm5vYmFzZS9pbmNsdWRlL3JvdzBtZXJnZS5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVk ZS9yb3cwcm93LmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MGxvZy5jYwogICAgICBz dG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwbWVyZ2UuY2MKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9y b3cvcm93MHJvdy5jYwogICAgICBzdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwdW5kby5jYwogICAg ICBzdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwdXBkLmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uv cm93L3JvdzB2ZXJzLmNjCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2lubm9k Yi9yL2lubm9kYi1pbmRleC5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3Iv aW5ub2RiLWluZGV4LnJlc3VsdAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYw NDIxNDc0NC0yOXRwYWtwNzVrMmdwMmtwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3Iv aW5ub2RiLWluZGV4LnJlc3VsdAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYw NTA3MjgyOC14eXAxMXE3eW8yem02eHB5CkBAIC00NTQsOCArNDU0LDE4IEBAIGFsdGVyIHRhYmxl IHQyIGRyb3AgaW5kZXggYiwgZHJvcCBpbmRleAogRVJST1IgSFkwMDA6IENhbm5vdCBkcm9wIGlu ZGV4ICdiJzogbmVlZGVkIGluIGEgZm9yZWlnbiBrZXkgY29uc3RyYWludAogYWx0ZXIgdGFibGUg dDIgTU9ESUZZIGIgSU5UIE5PVCBOVUxMLCBBTEdPUklUSE09Q09QWTsKIEVSUk9SIEhZMDAwOiBF cnJvciBvbiByZW5hbWUgb2YgJyNzcWwtdGVtcG9yYXJ5JyB0byAnLi90ZXN0L3QyJyAoZXJybm86 IDE1MCAtIEZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgaXMgaW5jb3JyZWN0bHkgZm9ybWVkKQotYWx0 ZXIgdGFibGUgdDIgTU9ESUZZIGIgSU5UIE5PVCBOVUxMLCBBTEdPUklUSE09SU5QTEFDRTsKK2Fs dGVyIHRhYmxlIHQyIE1PRElGWSBiIElOVCBOT1QgTlVMTDsKIEVSUk9SIEhZMDAwOiBDb2x1bW4g J2InIGNhbm5vdCBiZSBOT1QgTlVMTDogbmVlZGVkIGluIGEgZm9yZWlnbiBrZXkgY29uc3RyYWlu dCAndGVzdC90Ml9pYmZrXzEnIFNFVCBOVUxMCitTRVQgRk9SRUlHTl9LRVlfQ0hFQ0tTPTA7Cith bHRlciB0YWJsZSB0MiBEUk9QIENPTFVNTiBiLCBBTEdPUklUSE09Q09QWTsKK0VSUk9SIEhZMDAw OiBFcnJvciBvbiByZW5hbWUgb2YgJyNzcWwtdGVtcG9yYXJ5JyB0byAnLi90ZXN0L3QyJyAoZXJy bm86IDE1MCAtIEZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgaXMgaW5jb3JyZWN0bHkgZm9ybWVkKQor YWx0ZXIgdGFibGUgdDIgRFJPUCBDT0xVTU4gYjsKK0VSUk9SIEhZMDAwOiBDYW5ub3QgZHJvcCBj b2x1bW4gJ2InOiBuZWVkZWQgaW4gYSBmb3JlaWduIGtleSBjb25zdHJhaW50ICd0ZXN0L3QyX2li ZmtfMScKK2FsdGVyIHRhYmxlIHQxIERST1AgQ09MVU1OIGIsIEFMR09SSVRITT1DT1BZOworRVJS T1IgSFkwMDA6IEVycm9yIG9uIHJlbmFtZSBvZiAnI3NxbC10ZW1wb3JhcnknIHRvICcuL3Rlc3Qv dDEnIChlcnJubzogMTUwIC0gRm9yZWlnbiBrZXkgY29uc3RyYWludCBpcyBpbmNvcnJlY3RseSBm b3JtZWQpCithbHRlciB0YWJsZSB0MSBEUk9QIENPTFVNTiBiOworRVJST1IgSFkwMDA6IENhbm5v dCBkcm9wIGNvbHVtbiAnYic6IG5lZWRlZCBpbiBhIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgJ3Rl c3QvdDJfaWJma18xJyBvZiB0YWJsZSAnInRlc3QiLiJ0MiInCitTRVQgRk9SRUlHTl9LRVlfQ0hF Q0tTPUBPTERfRk9SRUlHTl9LRVlfQ0hFQ0tTOwogY3JlYXRlIHVuaXF1ZSBpbmRleCBkYyBvbiB0 MiAoZCxjKTsKIGFmZmVjdGVkIHJvd3M6IDAKIGluZm86IFJlY29yZHM6IDAgIER1cGxpY2F0ZXM6 IDAgIFdhcm5pbmdzOiAwCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9pbm5v ZGIvdC9pbm5vZGItaW5kZXgudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9p bm5vZGItaW5kZXgudGVzdAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYwNDIx NDc0NC0yOXRwYWtwNzVrMmdwMmtwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5u b2RiLWluZGV4LnRlc3QJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2MDUwNzI4 MjgteHlwMTFxN3lvMnptNnhweQpAQCAtMTc3LDcgKzE3NywyNyBAQCBhbHRlciB0YWJsZSB0MiBk cm9wIGluZGV4IGIsIGRyb3AgaW5kZXgKIC0tZXJyb3IgRVJfRVJST1JfT05fUkVOQU1FCiBhbHRl ciB0YWJsZSB0MiBNT0RJRlkgYiBJTlQgTk9UIE5VTEwsIEFMR09SSVRITT1DT1BZOwogLS1lcnJv ciBFUl9GS19DT0xVTU5fTk9UX05VTEwKLWFsdGVyIHRhYmxlIHQyIE1PRElGWSBiIElOVCBOT1Qg TlVMTCwgQUxHT1JJVEhNPUlOUExBQ0U7CithbHRlciB0YWJsZSB0MiBNT0RJRlkgYiBJTlQgTk9U IE5VTEw7CisKK1NFVCBGT1JFSUdOX0tFWV9DSEVDS1M9MDsKKyMgbXlzcWx0ZXN0IGZpcnN0IGRv ZXMgcmVwbGFjZV9yZWdleCwgdGhlbiByZXBsYWNlX3Jlc3VsdAorLS1yZXBsYWNlX3JlZ2V4IC8n W14nXSp0ZXN0XC8jc3FsLVswLTlhLWZfXSonLycjc3FsLXRlbXBvcmFyeScvCisjIEVtYmVkZGVk IHNlcnZlciBkb2Vzbid0IGNoZGlyIHRvIGRhdGEgZGlyZWN0b3J5CistLXJlcGxhY2VfcmVzdWx0 ICRNWVNRTERfREFUQURJUiAuLyBtYXN0ZXItZGF0YS8gJycKKy0tZXJyb3IgRVJfRVJST1JfT05f UkVOQU1FCithbHRlciB0YWJsZSB0MiBEUk9QIENPTFVNTiBiLCBBTEdPUklUSE09Q09QWTsKKy0t ZXJyb3IgRVJfRktfQ09MVU1OX0NBTk5PVF9EUk9QCithbHRlciB0YWJsZSB0MiBEUk9QIENPTFVN TiBiOworIyBteXNxbHRlc3QgZmlyc3QgZG9lcyByZXBsYWNlX3JlZ2V4LCB0aGVuIHJlcGxhY2Vf cmVzdWx0CistLXJlcGxhY2VfcmVnZXggLydbXiddKnRlc3RcLyNzcWwtWzAtOWEtZl9dKicvJyNz cWwtdGVtcG9yYXJ5Jy8KKyMgRW1iZWRkZWQgc2VydmVyIGRvZXNuJ3QgY2hkaXIgdG8gZGF0YSBk aXJlY3RvcnkKKy0tcmVwbGFjZV9yZXN1bHQgJE1ZU1FMRF9EQVRBRElSIC4vIG1hc3Rlci1kYXRh LyAnJworLS1lcnJvciBFUl9FUlJPUl9PTl9SRU5BTUUKK2FsdGVyIHRhYmxlIHQxIERST1AgQ09M VU1OIGIsIEFMR09SSVRITT1DT1BZOworLS1lcnJvciBFUl9GS19DT0xVTU5fQ0FOTk9UX0RST1Bf Q0hJTEQKK2FsdGVyIHRhYmxlIHQxIERST1AgQ09MVU1OIGI7CitTRVQgRk9SRUlHTl9LRVlfQ0hF Q0tTPUBPTERfRk9SRUlHTl9LRVlfQ0hFQ0tTOworCiAtLWVuYWJsZV9pbmZvCiAjIEFwcGFyZW50 bHksIHRoZSBmb2xsb3dpbmcgbWFrZXMgbXlzcWxfYWx0ZXJfdGFibGUoKSBkcm9wIGluZGV4IGQu CiBjcmVhdGUgdW5pcXVlIGluZGV4IGRjIG9uIHQyIChkLGMpOwoKPT09IG1vZGlmaWVkIGZpbGUg J3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYW5kbGVyMGFsdGVyLmNjJwotLS0gYS9zdG9yYWdl L2lubm9iYXNlL2hhbmRsZXIvaGFuZGxlcjBhbHRlci5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3Jh Y2xlLmNvbS0yMDEyMDYwNDIxNDc0NC0yOXRwYWtwNzVrMmdwMmtwCisrKyBiL3N0b3JhZ2UvaW5u b2Jhc2UvaGFuZGxlci9oYW5kbGVyMGFsdGVyLmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUu Y29tLTIwMTIwNjA1MDcyODI4LXh5cDExcTd5bzJ6bTZ4cHkKQEAgLTI0NzYsMTIgKzI0NzYsNyBA QCBjb2xfZmFpbDoKIAogCQkJb25saW5lX3JldHJ5X2Ryb3BfaW5kZXhlc193aXRoX3RyeCh1c2Vy X3RhYmxlLCB0cngpOwogCi0JCQlyb3dfbXlzcWxfdW5sb2NrX2RhdGFfZGljdGlvbmFyeSh0cngp OwotCQkJbWVtX2hlYXBfZnJlZShoZWFwKTsKLQotCQkJdHJ4X2ZyZWVfZm9yX215c3FsKHRyeCk7 Ci0JCQl0cnhfY29tbWl0X2Zvcl9teXNxbCh1c2VyX3RyeCk7Ci0JCQlEQlVHX1JFVFVSTih0cnVl KTsKKwkJCWdvdG8gZXJyX2V4aXQ7CiAJCX0KIAogCQljb2xfbWFwID0gaW5ub2Jhc2VfYnVpbGRf Y29sX21hcCgKQEAgLTI3MjEsMTEgKzI3MTYsMjIgQEAgZXJyb3JfaGFuZGxlZDoKIAogCXV0X2Qo ZGljdF90YWJsZV9jaGVja19mb3JfZHVwX2luZGV4ZXModXNlcl90YWJsZSwgQ0hFQ0tfQUxMX0NP TVBMRVRFKSk7CiAJdXRfYWQoIXVzZXJfdGFibGUtPmRyb3BfYWJvcnRlZCk7CisKK2Vycl9leGl0 OgorCS8qIENsZWFyIHRoZSB0b19iZV9kcm9wcGVkIGZsYWcgaW4gdGhlIGRhdGEgZGljdGlvbmFy eSBjYWNoZS4gKi8KKwlmb3IgKHVsaW50IGkgPSAwOyBpIDwgbl9kcm9wX2luZGV4OyBpKyspIHsK KwkJREJVR19BU1NFUlQoKmRyb3BfaW5kZXhbaV0tPm5hbWUgIT0gVEVNUF9JTkRFWF9QUkVGSVgp OworCQlEQlVHX0FTU0VSVChkcm9wX2luZGV4W2ldLT50b19iZV9kcm9wcGVkKTsKKwkJZHJvcF9p bmRleFtpXS0+dG9fYmVfZHJvcHBlZCA9IDA7CisJfQorCiAJcm93X215c3FsX3VubG9ja19kYXRh X2RpY3Rpb25hcnkodHJ4KTsKIAogCXRyeF9mcmVlX2Zvcl9teXNxbCh0cngpOwogCW1lbV9oZWFw X2ZyZWUoaGVhcCk7CiAKKwl0cnhfY29tbWl0X2Zvcl9teXNxbCh1c2VyX3RyeCk7CisKIAkvKiBU aGVyZSBtaWdodCBiZSB3b3JrIGZvciB1dGlsaXR5IHRocmVhZHMuKi8KIAlzcnZfYWN0aXZlX3dh a2VfbWFzdGVyX3RocmVhZCgpOwogCkBAIC0yODE5LDcgKzI4MjUsNyBAQCBoYV9pbm5vYmFzZTo6 cHJlcGFyZV9pbnBsYWNlX2FsdGVyX3RhYmxlCiAJCQkgICAgcHJlYnVpbHQtPnRhYmxlLT5zcGFj ZSAhPSAwKSkgewogCQkJbXlfZXJyb3IoRVJfSUxMRUdBTF9IQV9DUkVBVEVfT1BUSU9OLCBNWUYo MCksCiAJCQkJIHRhYmxlX3R5cGUoKSwgaW52YWxpZF9vcHQpOwotCQkJREJVR19SRVRVUk4odHJ1 ZSk7CisJCQlnb3RvIGVycl9leGl0X25vX2hlYXA7CiAJCX0KIAl9CiAKQEAgLTI4MjksNiArMjgz NSw3IEBAIGhhX2lubm9iYXNlOjpwcmVwYXJlX2lucGxhY2VfYWx0ZXJfdGFibGUKIAkJICAgIGhh X2FsdGVyX2luZm8tPmtleV9pbmZvX2J1ZmZlciwKIAkJICAgIGhhX2FsdGVyX2luZm8tPmtleV9j b3VudCkpIHsKIGVycl9leGl0X25vX2hlYXA6CisJCURCVUdfQVNTRVJUKHByZWJ1aWx0LT50cngt PmRpY3Rfb3BlcmF0aW9uX2xvY2tfbW9kZSA9PSAwKTsKIAkJb25saW5lX3JldHJ5X2Ryb3BfaW5k ZXhlcyhwcmVidWlsdC0+dGFibGUsIHVzZXJfdGhkKTsKIAkJREJVR19SRVRVUk4odHJ1ZSk7CiAJ fQpAQCAtMjkyNSw2ICsyOTMyLDcgQEAgY2hlY2tfaWZfb2tfdG9fcmVuYW1lOgogCQl9CiAJfQog CisJbl9kcm9wX2luZGV4ID0gMDsKIAluX2Ryb3BfZmsgPSAwOwogCiAJaWYgKGhhX2FsdGVyX2lu Zm8tPmhhbmRsZXJfZmxhZ3MKQEAgLTI5ODIsOCArMjk5MCw2IEBAIGZvdW5kX2ZrOgogCQloZWFw ID0gTlVMTDsKIAl9CiAKLQluX2Ryb3BfaW5kZXggPSAwOwotCiAJaWYgKGhhX2FsdGVyX2luZm8t PmluZGV4X2Ryb3BfY291bnQpIHsKIAkJREJVR19BU1NFUlQoaGFfYWx0ZXJfaW5mby0+aGFuZGxl cl9mbGFncwogCQkJICAgICYgKEFsdGVyX2lucGxhY2VfaW5mbzo6RFJPUF9JTkRFWApAQCAtMzE4 Niw2ICszMTkyLDcgQEAgaW5kZXhfbmVlZGVkOgogCQl9CiAKIGZ1bmNfZXhpdDoKKwkJREJVR19B U1NFUlQocHJlYnVpbHQtPnRyeC0+ZGljdF9vcGVyYXRpb25fbG9ja19tb2RlID09IDApOwogCQlv bmxpbmVfcmV0cnlfZHJvcF9pbmRleGVzKHByZWJ1aWx0LT50YWJsZSwgdXNlcl90aGQpOwogCQlE QlVHX1JFVFVSTihmYWxzZSk7CiAJfQpAQCAtMzIwOSw2ICszMjE2LDIwIEBAIGZ1bmNfZXhpdDoK IAlpZiAobnVtX2Z0c19pbmRleCA+IDEpIHsKIAkJbXlfZXJyb3IoRVJfSU5OT0RCX0ZUX0xJTUlU LCBNWUYoMCkpOwogZXJyX2V4aXQ6CisJCWlmIChuX2Ryb3BfaW5kZXgpIHsKKwkJCXJvd19teXNx bF9sb2NrX2RhdGFfZGljdGlvbmFyeShwcmVidWlsdC0+dHJ4KTsKKworCQkJLyogQ2xlYXIgdGhl IHRvX2JlX2Ryb3BwZWQgZmxhZ3MsIHdoaWNoIG1pZ2h0CisJCQloYXZlIGJlZW4gc2V0IGF0IHRo aXMgcG9pbnQuICovCisJCQlmb3IgKHVsaW50IGkgPSAwOyBpIDwgbl9kcm9wX2luZGV4OyBpKysp IHsKKwkJCQlEQlVHX0FTU0VSVCgqZHJvcF9pbmRleFtpXS0+bmFtZQorCQkJCQkgICAgIT0gVEVN UF9JTkRFWF9QUkVGSVgpOworCQkJCWRyb3BfaW5kZXhbaV0tPnRvX2JlX2Ryb3BwZWQgPSAwOwor CQkJfQorCisJCQlyb3dfbXlzcWxfdW5sb2NrX2RhdGFfZGljdGlvbmFyeShwcmVidWlsdC0+dHJ4 KTsKKwkJfQorCiAJCWlmIChoZWFwKSB7CiAJCQltZW1faGVhcF9mcmVlKGhlYXApOwogCQl9CkBA IC0zNDUzLDEzICszNDc0LDEwIEBAIHJvbGxiYWNrX2lucGxhY2VfYWx0ZXJfdGFibGUoCiAKIAlp ZiAoIWN0eCB8fCAhY3R4LT50cngpIHsKIAkJLyogSWYgd2UgaGF2ZSBub3Qgc3RhcnRlZCBhIHRy YW5zYWN0aW9uIHlldCwKLQkJbm90aGluZyBoYXMgYmVlbiBvciBuZWVkcyB0byBiZSBkb25lLiAq LworCQkoYWxtb3N0KSBub3RoaW5nIGhhcyBiZWVuIG9yIG5lZWRzIHRvIGJlIGRvbmUuICovCiAJ CWdvdG8gZnVuY19leGl0OwogCX0KIAotCS8qIFJvbGwgYmFjayBpbmRleCBjcmVhdGlvbi4gKi8K LQlEQlVHX0FTU0VSVChoYV9hbHRlcl9pbmZvLT5oYW5kbGVyX2ZsYWdzICYgSU5OT0JBU0VfSU5Q TEFDRV9DUkVBVEUpOwotCiAJcm93X215c3FsX2xvY2tfZGF0YV9kaWN0aW9uYXJ5KGN0eC0+dHJ4 KTsKIAogCWlmIChwcmVidWlsdC0+dGFibGUgIT0gY3R4LT5pbmRleGVkX3RhYmxlKSB7CkBAIC0z NTA3LDE1ICszNTI1LDIxIEBAIGZ1bmNfZXhpdDoKIAkJICAgID09IE9OTElORV9JTkRFWF9DT01Q TEVURSk7CiAjZW5kaWYgLyogIURCVUdfT0ZGICovCiAKLQlpZiAoY3R4ICYmIHByZWJ1aWx0LT50 YWJsZSA9PSBjdHgtPmluZGV4ZWRfdGFibGUpIHsKLQkJLyogQ2xlYXIgdGhlIHRvX2JlX2Ryb3Bw ZWQgZmxhZyBpbiB0aGUgZGF0YSBkaWN0aW9uYXJ5LiAqLwotCQlmb3IgKHVsaW50IGkgPSAwOyBp IDwgY3R4LT5udW1fdG9fZHJvcDsgaSsrKSB7Ci0JCQlkaWN0X2luZGV4X3QqCWluZGV4ID0gY3R4 LT5kcm9wW2ldOwotCQkJREJVR19BU1NFUlQoKmluZGV4LT5uYW1lICE9IFRFTVBfSU5ERVhfUFJF RklYKTsKLQkJCURCVUdfQVNTRVJUKGluZGV4LT50YWJsZSA9PSBwcmVidWlsdC0+dGFibGUpOwot CQkJREJVR19BU1NFUlQoaW5kZXgtPnRvX2JlX2Ryb3BwZWQpOworCWlmIChjdHgpIHsKKwkJaWYg KGN0eC0+bnVtX3RvX2Ryb3ApIHsKKwkJCXJvd19teXNxbF9sb2NrX2RhdGFfZGljdGlvbmFyeShw cmVidWlsdC0+dHJ4KTsKIAotCQkJaW5kZXgtPnRvX2JlX2Ryb3BwZWQgPSAwOworCQkJLyogQ2xl YXIgdGhlIHRvX2JlX2Ryb3BwZWQgZmxhZworCQkJaW4gdGhlIGRhdGEgZGljdGlvbmFyeSBjYWNo ZS4gKi8KKwkJCWZvciAodWxpbnQgaSA9IDA7IGkgPCBjdHgtPm51bV90b19kcm9wOyBpKyspIHsK KwkJCQlkaWN0X2luZGV4X3QqCWluZGV4ID0gY3R4LT5kcm9wW2ldOworCQkJCURCVUdfQVNTRVJU KCppbmRleC0+bmFtZSAhPSBURU1QX0lOREVYX1BSRUZJWCk7CisJCQkJREJVR19BU1NFUlQoaW5k ZXgtPnRvX2JlX2Ryb3BwZWQpOworCisJCQkJaW5kZXgtPnRvX2JlX2Ryb3BwZWQgPSAwOworCQkJ fQorCisJCQlyb3dfbXlzcWxfdW5sb2NrX2RhdGFfZGljdGlvbmFyeShwcmVidWlsdC0+dHJ4KTsK IAkJfQogCX0KIApAQCAtMzg1MSwxNyArMzg3NSw2IEBAIGhhX2lubm9iYXNlOjpjb21taXRfaW5w bGFjZV9hbHRlcl90YWJsZSgKIAogCURCVUdfRU5URVIoImNvbW1pdF9pbnBsYWNlX2FsdGVyX3Rh YmxlIik7CiAKLQlpZiAoIShoYV9hbHRlcl9pbmZvLT5oYW5kbGVyX2ZsYWdzICYgfklOTk9CQVNF X0lOUExBQ0VfSUdOT1JFKSkgewotCQlEQlVHX0FTU0VSVCghY3R4KTsKLQotCQkvKiBOb3RoaW5n IHRvIGRvICovCi0JCWlmICghY29tbWl0KSB7Ci0JCQlnb3RvIHJldDsKLQkJfQotCQkvKiBXZSBt YXkgd2FudCB0byB1cGRhdGUgdGFibGUgYXR0cmlidXRlcy4gKi8KLQkJZ290byBmdW5jX2V4aXQ7 Ci0JfQotCiAJaWYgKCFjb21taXQpIHsKIAkJLyogQSByb2xsYmFjayBpcyBiZWluZyByZXF1ZXN0 ZWQuIFNvIGZhciB3ZSBtYXkgYXQKIAkJbW9zdCBoYXZlIGNyZWF0ZWQgc29tZSBpbmRleGVzLiBJ ZiBhbnkgaW5kZXhlcyB3ZXJlIHRvCkBAIC0zODcxLDYgKzM4ODQsMTIgQEAgaGFfaW5ub2Jhc2U6 OmNvbW1pdF9pbnBsYWNlX2FsdGVyX3RhYmxlKAogCQkJCSAgICBoYV9hbHRlcl9pbmZvLCB0YWJs ZV9zaGFyZSwgcHJlYnVpbHQpKTsKIAl9CiAKKwlpZiAoIShoYV9hbHRlcl9pbmZvLT5oYW5kbGVy X2ZsYWdzICYgfklOTk9CQVNFX0lOUExBQ0VfSUdOT1JFKSkgeworCQlEQlVHX0FTU0VSVCghY3R4 KTsKKwkJLyogV2UgbWF5IHdhbnQgdG8gdXBkYXRlIHRhYmxlIGF0dHJpYnV0ZXMuICovCisJCWdv dG8gZnVuY19leGl0OworCX0KKwogCXRyeF9zdGFydF9pZl9ub3Rfc3RhcnRlZF94YShwcmVidWls dC0+dHJ4KTsKIAogCWlmICghY3R4IHx8ICFjdHgtPnRyeCkgewpAQCAtMzkxMCw2ICszOTI5LDE0 IEBAIGhhX2lubm9iYXNlOjpjb21taXRfaW5wbGFjZV9hbHRlcl90YWJsZSgKIAkJZGJlcnJfdAll cnJvcjsKIAkJY2hhcioJdG1wX25hbWU7CiAKKwkJLyogQ2xlYXIgdGhlIHRvX2JlX2Ryb3BwZWQg ZmxhZyBpbiB0aGUgZGF0YSBkaWN0aW9uYXJ5LiAqLworCQlmb3IgKHVsaW50IGkgPSAwOyBpIDwg Y3R4LT5udW1fdG9fZHJvcDsgaSsrKSB7CisJCQlkaWN0X2luZGV4X3QqCWluZGV4ID0gY3R4LT5k cm9wW2ldOworCQkJREJVR19BU1NFUlQoKmluZGV4LT5uYW1lICE9IFRFTVBfSU5ERVhfUFJFRklY KTsKKwkJCURCVUdfQVNTRVJUKGluZGV4LT50b19iZV9kcm9wcGVkKTsKKwkJCWluZGV4LT50b19i ZV9kcm9wcGVkID0gMDsKKwkJfQorCiAJCS8qIFdlIGNvcGllZCB0aGUgdGFibGUuIEFueSBpbmRl eGVzIHRoYXQgd2VyZQogCQlyZXF1ZXN0ZWQgdG8gYmUgZHJvcHBlZCB3ZXJlIG5vdCBjcmVhdGVk IGluIHRoZSBjb3B5CiAJCW9mIHRoZSB0YWJsZS4gQXBwbHkgYW55IGxhc3QgYml0IG9mIHRoZSBy ZWJ1aWxkIGxvZwpAQCAtNDEzOCw3ICs0MTY1LDggQEAgaGFfaW5ub2Jhc2U6OmNvbW1pdF9pbnBs YWNlX2FsdGVyX3RhYmxlKAogCQkJaWYgKGN0eC0+YWRkX2ZrW2ldLT5yZWZlcmVuY2VkX3RhYmxl KSB7CiAJCQkJVVRfTElTVF9BRERfTEFTVCgKIAkJCQkJcmVmZXJlbmNlZF9saXN0LAotCQkJCQlj dHgtPmFkZF9ma1tpXS0+cmVmZXJlbmNlZF90YWJsZS0+cmVmZXJlbmNlZF9saXN0LAorCQkJCQlj dHgtPmFkZF9ma1tpXS0+cmVmZXJlbmNlZF90YWJsZQorCQkJCQktPnJlZmVyZW5jZWRfbGlzdCwK IAkJCQkJY3R4LT5hZGRfZmtbaV0pOwogCQkJfQogCkBAIC00MjU3LDE0ICs0Mjg1LDYgQEAgdHJ4 X2NvbW1pdDoKIAogCQl1dF9kKGRpY3RfdGFibGVfY2hlY2tfZm9yX2R1cF9pbmRleGVzKAogCQkJ ICAgICBwcmVidWlsdC0+dGFibGUsIENIRUNLX0FMTF9DT01QTEVURSkpOwotI2lmZGVmIFVOSVZf REVCVUcKLQkJZm9yIChkaWN0X2luZGV4X3QqIGluZGV4ID0gZGljdF90YWJsZV9nZXRfZmlyc3Rf aW5kZXgoCi0JCQkgICAgIHByZWJ1aWx0LT50YWJsZSk7Ci0JCSAgICAgaW5kZXg7Ci0JCSAgICAg aW5kZXggPSBkaWN0X3RhYmxlX2dldF9uZXh0X2luZGV4KGluZGV4KSkgewotCQkJdXRfYWQoIWlu ZGV4LT50b19iZV9kcm9wcGVkKTsKLQkJfQotI2VuZGlmIC8qIFVOSVZfREVCVUcgKi8KIAkJREJV R19BU1NFUlQobmV3X2NsdXN0ZXJlZCA9PSAhcHJlYnVpbHQtPnRyeCk7CiAKIAkJaWYgKGFkZF9m dHMpIHsKQEAgLTQzNjgsNyArNDM4OCw2IEBAIGZ1bmNfZXhpdDoKIAkJZGljdF90YWJsZV9hdXRv aW5jX3VubG9jayhwcmVidWlsdC0+dGFibGUpOwogCX0KIAotcmV0OgogI2lmbmRlZiBEQlVHX09G RgogCWRpY3RfaW5kZXhfdCogY2x1c3RfaW5kZXggPSBkaWN0X3RhYmxlX2dldF9maXJzdF9pbmRl eCgKIAkJcHJlYnVpbHQtPnRhYmxlKTsKQEAgLTQzNzcsNiArNDM5NiwxNSBAQCByZXQ6CiAJCSAg ICA9PSBPTkxJTkVfSU5ERVhfQ09NUExFVEUpOwogI2VuZGlmIC8qICFEQlVHX09GRiAqLwogCisj aWZkZWYgVU5JVl9ERUJVRworCWZvciAoZGljdF9pbmRleF90KiBpbmRleCA9IGRpY3RfdGFibGVf Z2V0X2ZpcnN0X2luZGV4KAorCQkgICAgIHByZWJ1aWx0LT50YWJsZSk7CisJICAgICBpbmRleDsK KwkgICAgIGluZGV4ID0gZGljdF90YWJsZV9nZXRfbmV4dF9pbmRleChpbmRleCkpIHsKKwkJdXRf YWQoIWluZGV4LT50b19iZV9kcm9wcGVkKTsKKwl9CisjZW5kaWYgLyogVU5JVl9ERUJVRyAqLwor CiAJaWYgKGVyciA9PSAwKSB7CiAJCU1PTklUT1JfQVRPTUlDX0RFQyhNT05JVE9SX1BFTkRJTkdf QUxURVJfVEFCTEUpOwogCX0KCk5vIGJ1bmRsZSAocmVhc29uOiB1c2VsZXNzIGZvciBwdXNoIGVt YWlscyku