From: marko.makela Date: April 7 2011 7:24pm Subject: bzr commit into mysql-5.1-innodb branch (marko.makela:3725) Bug#11760042 List-Archive: http://lists.mysql.com/commits/134985 X-Bug: 11760042 Message-Id: <201104071925.p37JPBHM000370@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1792628837==" --===============1792628837== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline I0F0IGZpbGU6Ly8vaG9tZS9tYXJrby9pbm5vYmFzZS9kZXYvbXlzcWwyYS81LjEtaW5ub2RiLyBi YXNlZCBvbiByZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDQwNzE4MTI1NC1pcTVw dWF6bnpkcnpjcDNhCgogMzcyNSBNYXJrbyBNw6RrZWzDpAkyMDExLTA0LTA3CiAgICAgIEJ1ZyAj MTE3NjAwNDIgLSA1MjQwOTogQXNzZXJ0aW9uIGZhaWx1cmU6IGxvbmcgc2VtYXBob3JlIHdhaXQK ICAgICAgCiAgICAgIEluIGhhX2lubm9iYXNlOjpjcmVhdGUoKSwgd2UgY2hlY2sgc29tZSB0aGlu Z3Mgd2hpbGUgaG9sZGluZyBhbgogICAgICBleGNsdXNpdmUgbG9jayBvbiB0aGUgZGF0YSBkaWN0 aW9uYXJ5LiBEZWZlciB0aGUgbG9ja2luZyBhbmQgdGhlCiAgICAgIGNyZWF0aW9uIG9mIHRyYW5z YWN0aW9ucyB1bnRpbCBhZnRlciB0aGUgY2hlY2tzIGhhdmUgcGFzc2VkLiBUaGUKICAgICAgVEhE VkFSIGNvdWxkIGhhbmcgZHVlIHRvIGEgbXV0ZXggd2FpdCAoc2VlIEJ1ZyAjMTE3NTA1NjkgLSA0 MTE2MzoKICAgICAgZGVhZGxvY2sgaW4gbXlzcWxkOiBMT0NLX2dsb2JhbF9zeXN0ZW1fdmFyaWFi bGVzIGFuZCBMT0NLX29wZW4pLCBhbmQKICAgICAgd2Ugd2FudCB0byBhdm9pZCB3YWl0aW5nIHdo aWxlIGhvbGRpbmcgSW5ub0RCIG11dGV4ZXMuCiAgICAgIAogICAgICBpbm5vYmFzZV9pbmRleF9u YW1lX2lzX3Jlc2VydmVkKCk6IFJlcGxhY2UgdGhlIHBhcmFtZXRlciB0cnhfdCB3aXRoCiAgICAg IFRIRCwgc28gdGhhdCB0aGUgdGVzdCBjYW4gYmUgcGVyZm9ybWVkIGJlZm9yZSBzdGFydGluZyBh biBJbm5vREIKICAgICAgdHJhbnNhY3Rpb24uIFdlIG9ubHkgbmVlZGVkIHRyeC0+bXlzcWxfdGhk LgogICAgICAKICAgICAgaGFfaW5ub2Jhc2U6OmNyZWF0ZSgpOiBDcmVhdGUgdHJhbnNhY3Rpb24g YW5kIGxvY2sgdGhlIGRhdGEgZGljdGlvbmFyeQogICAgICBvbmx5IGFmdGVyIHBhc3NpbmcgdGhl IGJhc2ljIHRlc3RzLgogICAgICAKICAgICAgY3JlYXRlX3RhYmxlX2RlZigpOiBNb3ZlIHRoZSBJ U19NQUdJQ19UQUJMRV9BTkRfVVNFUl9ERU5JRURfQUNDRVNTCiAgICAgIGNoZWNrIHRvIGhhX2lu bm9iYXNlOjpjcmVhdGUoKS4gQXNzaWduIHRvIHNydl9sb3dlcl9jYXNlX3RhYmxlX25hbWVzCiAg ICAgIHdoaWxlIGhvbGRpbmcgZGljdF9zeXMtPm11dGV4LgogICAgICAKICAgICAgaGFfaW5ub2Jh c2U6OmRlbGV0ZV90YWJsZSgpLCBoYV9pbm5vYmFzZTo6cmVuYW1lX3RhYmxlKCksCiAgICAgIGlu bm9iYXNlX3JlbmFtZV90YWJsZSgpOiBBc3NpZ24gc3J2X2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMg YXMgbGF0ZSBhcwogICAgICBwb3NzaWJsZS4gSGVyZSwgdGhlIHZhcmlhYmxlIGlzIG5vdCBuZWNl c3NhcmlseSBwcm90ZWN0ZWQgYnkKICAgICAgZGljdF9zeXMtPm11dGV4LgogICAgICAKICAgICAg aGFfaW5ub2Jhc2U6OmFkZF9pbmRleCgpOiBJbnZva2UgaW5ub2Jhc2VfaW5kZXhfbmFtZV9pc19y ZXNlcnZlZCgpIGFuZAogICAgICBpbm5vYmFzZV9jaGVja19pbmRleF9rZXlzKCkgYmVmb3JlIGFs bG9jYXRpbmcgYW55dGhpbmcuCiAgICAgIAogICAgICByYjo2MTggYXBwcm92ZWQgYnkgSmltbXkg WWFuZwoKICAgIG1vZGlmaWVkOgogICAgICBzdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFfaW5u b2RiLmNjCiAgICAgIHN0b3JhZ2UvaW5ub2RiX3BsdWdpbi9DaGFuZ2VMb2cKICAgICAgc3RvcmFn ZS9pbm5vZGJfcGx1Z2luL2hhbmRsZXIvaGFfaW5ub2RiLmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Ri X3BsdWdpbi9oYW5kbGVyL2hhX2lubm9kYi5oCiAgICAgIHN0b3JhZ2UvaW5ub2RiX3BsdWdpbi9o YW5kbGVyL2hhbmRsZXIwYWx0ZXIuY2MKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jh c2UvaGFuZGxlci9oYV9pbm5vZGIuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9o YV9pbm5vZGIuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA0MDcxODEyNTQt aXE1cHVhem56ZHJ6Y3AzYQorKysgYi9zdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFfaW5ub2Ri LmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwNDA3MTkyNDQ1LXRqY2o2ODZv bjlwYTZhZXEKQEAgLTE4OSw3ICsxODksNyBAQCBpbm5vYmFzZV9pbmRleF9uYW1lX2lzX3Jlc2Vy dmVkKAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIAkJCQkJLyogb3V0OiB0cnVl IGlmIGluZGV4IG5hbWUgbWF0Y2hlcyBhCiAJCQkJCXJlc2VydmVkIG5hbWUgKi8KLQljb25zdCB0 cnhfdCoJdHJ4LAkJLyogaW46IElubm9EQiB0cmFuc2FjdGlvbiBoYW5kbGUgKi8KKwlUSEQqCQl0 aGQsCQkvKiBpbi9vdXQ6IE15U1FMIGNvbm5lY3Rpb24gKi8KIAljb25zdCBUQUJMRSoJZm9ybSwJ CS8qIGluOiBpbmZvcm1hdGlvbiBvbiB0YWJsZQogCQkJCQljb2x1bW5zIGFuZCBpbmRleGVzICov CiAJY29uc3QgY2hhcioJbm9ybV9uYW1lKTsJLyogaW46IHRhYmxlIG5hbWUgKi8KQEAgLTUyODUs MTAgKzUyODUsNiBAQCBjcmVhdGVfdGFibGVfZGVmKAogCURCVUdfUFJJTlQoImVudGVyIiwgKCJ0 YWJsZV9uYW1lOiAlcyIsIHRhYmxlX25hbWUpKTsKIAogCXV0X2EodHJ4LT5teXNxbF90aGQgIT0g TlVMTCk7Ci0JaWYgKElTX01BR0lDX1RBQkxFX0FORF9VU0VSX0RFTklFRF9BQ0NFU1ModGFibGVf bmFtZSwKLQkJCQkJCSAgKFRIRCopIHRyeC0+bXlzcWxfdGhkKSkgewotCQlEQlVHX1JFVFVSTihI QV9FUlJfR0VORVJJQyk7Ci0JfQogCiAJbl9jb2xzID0gZm9ybS0+cy0+ZmllbGRzOwogCkBAIC01 Mzk3LDYgKzUzOTMsOCBAQCBlcnJfY29sOgogCQkJY29sX2xlbik7CiAJfQogCisJc3J2X2xvd2Vy X2Nhc2VfdGFibGVfbmFtZXMgPSBsb3dlcl9jYXNlX3RhYmxlX25hbWVzOworCiAJZXJyb3IgPSBy b3dfY3JlYXRlX3RhYmxlX2Zvcl9teXNxbCh0YWJsZSwgdHJ4KTsKIAogCWlubm9kYl9jaGVja19m b3JfcmVjb3JkX3Rvb19iaWdfZXJyb3IoZmxhZ3MgJiBESUNUX1RGX0NPTVBBQ1QsIGVycm9yKTsK QEAgLTU2NDIsNiArNTY0MCwzNSBAQCBoYV9pbm5vYmFzZTo6Y3JlYXRlKAogCQlEQlVHX1JFVFVS TihIQV9FUlJfVE9fQklHX1JPVyk7CiAJfQogCisJc3RyY3B5KG5hbWUyLCBuYW1lKTsKKworCW5v cm1hbGl6ZV90YWJsZV9uYW1lKG5vcm1fbmFtZSwgbmFtZTIpOworCisJLyogQ3JlYXRlIHRoZSB0 YWJsZSBkZWZpbml0aW9uIGluIElubm9EQiAqLworCisJZmxhZ3MgPSBmb3JtLT5zLT5yb3dfdHlw ZSAhPSBST1dfVFlQRV9SRURVTkRBTlQgPyBESUNUX1RGX0NPTVBBQ1QgOiAwOworCisJLyogTG9v ayBmb3IgYSBwcmltYXJ5IGtleSAqLworCisJcHJpbWFyeV9rZXlfbm89IChmb3JtLT5zLT5wcmlt YXJ5X2tleSAhPSBNQVhfS0VZID8KKwkJCSAoaW50KSBmb3JtLT5zLT5wcmltYXJ5X2tleSA6CisJ CQkgLTEpOworCisJLyogT3VyIGZ1bmN0aW9uIHJvd19nZXRfbXlzcWxfa2V5X251bWJlcl9mb3Jf aW5kZXggYXNzdW1lcworCXRoZSBwcmltYXJ5IGtleSBpcyBhbHdheXMgbnVtYmVyIDAsIGlmIGl0 IGV4aXN0cyAqLworCisJREJVR19BU1NFUlQocHJpbWFyeV9rZXlfbm8gPT0gLTEgfHwgcHJpbWFy eV9rZXlfbm8gPT0gMCk7CisKKwkvKiBDaGVjayBmb3IgbmFtZSBjb25mbGljdHMgKHdpdGggcmVz ZXJ2ZWQgbmFtZSkgZm9yCisJYW55IHVzZXIgaW5kaWNlcyB0byBiZSBjcmVhdGVkLiAqLworCWlm IChpbm5vYmFzZV9pbmRleF9uYW1lX2lzX3Jlc2VydmVkKHRoZCwgZm9ybSwgbm9ybV9uYW1lKSkg eworCQlEQlVHX1JFVFVSTigtMSk7CisJfQorCisJaWYgKElTX01BR0lDX1RBQkxFX0FORF9VU0VS X0RFTklFRF9BQ0NFU1Mobm9ybV9uYW1lLCB0aGQpKSB7CisJCURCVUdfUkVUVVJOKEhBX0VSUl9H RU5FUklDKTsKKwl9CisKIAkvKiBHZXQgdGhlIHRyYW5zYWN0aW9uIGFzc29jaWF0ZWQgd2l0aCB0 aGUgY3VycmVudCB0aGQsIG9yIGNyZWF0ZSBvbmUKIAlpZiBub3QgeWV0IGNyZWF0ZWQgKi8KIApA QCAtNTY2NSw0OCArNTY5MiwxMiBAQCBoYV9pbm5vYmFzZTo6Y3JlYXRlKAogCQl0cngtPmNoZWNr X3VuaXF1ZV9zZWNvbmRhcnkgPSBGQUxTRTsKIAl9CiAKLQlpZiAobG93ZXJfY2FzZV90YWJsZV9u YW1lcykgewotCQlzcnZfbG93ZXJfY2FzZV90YWJsZV9uYW1lcyA9IFRSVUU7Ci0JfSBlbHNlIHsK LQkJc3J2X2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSBGQUxTRTsKLQl9Ci0KLQlzdHJjcHkobmFt ZTIsIG5hbWUpOwotCi0Jbm9ybWFsaXplX3RhYmxlX25hbWUobm9ybV9uYW1lLCBuYW1lMik7Ci0K IAkvKiBMYXRjaCB0aGUgSW5ub0RCIGRhdGEgZGljdGlvbmFyeSBleGNsdXNpdmVseSBzbyB0aGF0 IG5vIGRlYWRsb2NrcwogCW9yIGxvY2sgd2FpdHMgY2FuIGhhcHBlbiBpbiBpdCBkdXJpbmcgYSB0 YWJsZSBjcmVhdGUgb3BlcmF0aW9uLgogCURyb3AgdGFibGUgZXRjLiBkbyB0aGlzIGxhdGNoaW5n IGluIHJvdzBteXNxbC5jLiAqLwogCiAJcm93X215c3FsX2xvY2tfZGF0YV9kaWN0aW9uYXJ5KHRy eCk7CiAKLQkvKiBDcmVhdGUgdGhlIHRhYmxlIGRlZmluaXRpb24gaW4gSW5ub0RCICovCi0KLQlm bGFncyA9IDA7Ci0KLQlpZiAoZm9ybS0+cy0+cm93X3R5cGUgIT0gUk9XX1RZUEVfUkVEVU5EQU5U KSB7Ci0JCWZsYWdzIHw9IERJQ1RfVEZfQ09NUEFDVDsKLQl9Ci0KLQkvKiBMb29rIGZvciBhIHBy aW1hcnkga2V5ICovCi0KLQlwcmltYXJ5X2tleV9ubz0gKGZvcm0tPnMtPnByaW1hcnlfa2V5ICE9 IE1BWF9LRVkgPwotCQkJIChpbnQpIGZvcm0tPnMtPnByaW1hcnlfa2V5IDoKLQkJCSAtMSk7Ci0K LQkvKiBPdXIgZnVuY3Rpb24gcm93X2dldF9teXNxbF9rZXlfbnVtYmVyX2Zvcl9pbmRleCBhc3N1 bWVzCi0JdGhlIHByaW1hcnkga2V5IGlzIGFsd2F5cyBudW1iZXIgMCwgaWYgaXQgZXhpc3RzICov Ci0KLQlEQlVHX0FTU0VSVChwcmltYXJ5X2tleV9ubyA9PSAtMSB8fCBwcmltYXJ5X2tleV9ubyA9 PSAwKTsKLQotCS8qIENoZWNrIGZvciBuYW1lIGNvbmZsaWN0cyAod2l0aCByZXNlcnZlZCBuYW1l KSBmb3IKLQlhbnkgdXNlciBpbmRpY2VzIHRvIGJlIGNyZWF0ZWQuICovCi0JaWYgKGlubm9iYXNl X2luZGV4X25hbWVfaXNfcmVzZXJ2ZWQodHJ4LCBmb3JtLCBub3JtX25hbWUpKSB7Ci0JCWVycm9y ID0gLTE7Ci0JCWdvdG8gY2xlYW51cDsKLQl9Ci0KIAllcnJvciA9IGNyZWF0ZV90YWJsZV9kZWYo dHJ4LCBmb3JtLCBub3JtX25hbWUsCiAJCWNyZWF0ZV9pbmZvLT5vcHRpb25zICYgSEFfTEVYX0NS RUFURV9UTVBfVEFCTEUgPyBuYW1lMiA6IE5VTEwsCiAJCWZsYWdzKTsKQEAgLTU5MzYsMTIgKzU5 MjcsNiBAQCBoYV9pbm5vYmFzZTo6ZGVsZXRlX3RhYmxlKAogCiAJdHJ4X3NlYXJjaF9sYXRjaF9y ZWxlYXNlX2lmX3Jlc2VydmVkKHBhcmVudF90cngpOwogCi0JaWYgKGxvd2VyX2Nhc2VfdGFibGVf bmFtZXMpIHsKLQkJc3J2X2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSBUUlVFOwotCX0gZWxzZSB7 Ci0JCXNydl9sb3dlcl9jYXNlX3RhYmxlX25hbWVzID0gRkFMU0U7Ci0JfQotCiAJdHJ4ID0gdHJ4 X2FsbG9jYXRlX2Zvcl9teXNxbCgpOwogCiAJdHJ4LT5teXNxbF90aGQgPSB0aGQ7CkBAIC01OTYx LDYgKzU5NDYsOCBAQCBoYV9pbm5vYmFzZTo6ZGVsZXRlX3RhYmxlKAogCiAJLyogRHJvcCB0aGUg dGFibGUgaW4gSW5ub0RCICovCiAKKwlzcnZfbG93ZXJfY2FzZV90YWJsZV9uYW1lcyA9IGxvd2Vy X2Nhc2VfdGFibGVfbmFtZXM7CisKIAllcnJvciA9IHJvd19kcm9wX3RhYmxlX2Zvcl9teXNxbChu b3JtX25hbWUsIHRyeCwKIAkJCQkJIHRoZF9zcWxfY29tbWFuZCh0aGQpCiAJCQkJCSA9PSBTUUxD T01fRFJPUF9EQik7CkBAIC02MDg5LDEyICs2MDc2LDYgQEAgaGFfaW5ub2Jhc2U6OnJlbmFtZV90 YWJsZSgKIAogCXRyeF9zZWFyY2hfbGF0Y2hfcmVsZWFzZV9pZl9yZXNlcnZlZChwYXJlbnRfdHJ4 KTsKIAotCWlmIChsb3dlcl9jYXNlX3RhYmxlX25hbWVzKSB7Ci0JCXNydl9sb3dlcl9jYXNlX3Rh YmxlX25hbWVzID0gVFJVRTsKLQl9IGVsc2UgewotCQlzcnZfbG93ZXJfY2FzZV90YWJsZV9uYW1l cyA9IEZBTFNFOwotCX0KLQogCXRyeCA9IHRyeF9hbGxvY2F0ZV9mb3JfbXlzcWwoKTsKIAl0cngt Pm15c3FsX3RoZCA9IHRoZDsKIAlJTk5PQkFTRV9DT1BZX1NUTVQodGhkLCB0cngpOwpAQCAtNjEx NCw2ICs2MDk1LDggQEAgaGFfaW5ub2Jhc2U6OnJlbmFtZV90YWJsZSgKIAogCS8qIFJlbmFtZSB0 aGUgdGFibGUgaW4gSW5ub0RCICovCiAKKwlzcnZfbG93ZXJfY2FzZV90YWJsZV9uYW1lcyA9IGxv d2VyX2Nhc2VfdGFibGVfbmFtZXM7CisKIAllcnJvciA9IHJvd19yZW5hbWVfdGFibGVfZm9yX215 c3FsKG5vcm1fZnJvbSwgbm9ybV90bywgdHJ4KTsKIAogCS8qIEZsdXNoIHRoZSBsb2cgdG8gcmVk dWNlIHByb2JhYmlsaXR5IHRoYXQgdGhlIC5mcm0gZmlsZXMgYW5kCkBAIC04ODI2LDcgKzg4MDks NyBAQCBpbm5vYmFzZV9pbmRleF9uYW1lX2lzX3Jlc2VydmVkKAogLyo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ki8KIAkJCQkJLyogb3V0OiB0cnVlIGlmIGFuIGluZGV4IG5hbWUKIAkJCQkJ bWF0Y2hlcyB0aGUgcmVzZXJ2ZWQgbmFtZSAqLwotCWNvbnN0IHRyeF90Kgl0cngsCQkvKiBpbjog SW5ub0RCIHRyYW5zYWN0aW9uIGhhbmRsZSAqLworCVRIRCoJCXRoZCwJCS8qIGluL291dDogTXlT UUwgY29ubmVjdGlvbiAqLwogCWNvbnN0IFRBQkxFKglmb3JtLAkJLyogaW46IGluZm9ybWF0aW9u IG9uIHRhYmxlCiAJCQkJCWNvbHVtbnMgYW5kIGluZGV4ZXMgKi8KIAljb25zdCBjaGFyKglub3Jt X25hbWUpCS8qIGluOiB0YWJsZSBuYW1lICovCkBAIC04ODQwLDcgKzg4MjMsNyBAQCBpbm5vYmFz ZV9pbmRleF9uYW1lX2lzX3Jlc2VydmVkKAogCQlpZiAoaW5ub2Jhc2Vfc3RyY2FzZWNtcChrZXkt Pm5hbWUsCiAJCQkJCWlubm9iYXNlX2luZGV4X3Jlc2VydmVfbmFtZSkgPT0gMCkgewogCQkJLyog UHVzaCB3YXJuaW5nIHRvIG15c3FsICovCi0JCQlwdXNoX3dhcm5pbmdfcHJpbnRmKChUSEQqKSB0 cngtPm15c3FsX3RoZCwKKwkJCXB1c2hfd2FybmluZ19wcmludGYodGhkLAogCQkJCQkgICAgTVlT UUxfRVJST1I6OldBUk5fTEVWRUxfV0FSTiwKIAkJCQkJICAgIEVSX0NBTlRfQ1JFQVRFX1RBQkxF LAogCQkJCQkgICAgIkNhbm5vdCBDcmVhdGUgSW5kZXggd2l0aCBuYW1lICIKCj09PSBtb2RpZmll ZCBmaWxlICdzdG9yYWdlL2lubm9kYl9wbHVnaW4vQ2hhbmdlTG9nJwotLS0gYS9zdG9yYWdlL2lu bm9kYl9wbHVnaW4vQ2hhbmdlTG9nCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEw NDA3MTgxMjU0LWlxNXB1YXpuemRyemNwM2EKKysrIGIvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL0No YW5nZUxvZwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDQwNzE5MjQ0NS10amNq Njg2b245cGE2YWVxCkBAIC0xLDUgKzEsMTAgQEAKIDIwMTEtMDQtMDcJVGhlIElubm9EQiBUZWFt CiAKKwkqIGhhbmRsZXIvaGFfaW5ub2RiLmNjLCBoYW5kbGVyL2hhX2lubm9kYi5oLCBoYW5kbGVy L2hhbmRsZXIwYWx0ZXIuY2M6CisJRml4IEJ1ZyAjNTI0MDkgQXNzZXJ0aW9uIGZhaWx1cmU6IGxv bmcgc2VtYXBob3JlIHdhaXQKKworMjAxMS0wNC0wNwlUaGUgSW5ub0RCIFRlYW0KKwogCSogaGFu ZGxlci9oYV9pbm5vZGIuY2MsIGluY2x1ZGUvdHJ4MHRyeC5oLCBpbmNsdWRlL3RyeDB1bmRvLmgs CiAJbG9nL2xvZzBsb2cuYywgdHJ4L3RyeDBzeXMuYywgdHJ4L3RyeDB0cnguYywgdHJ4L3RyeDB1 bmRvLmM6CiAJRml4IEJ1ZyAjNTk2NDEgUHJlcGFyZWQgWEEgdHJhbnNhY3Rpb24gaW4gc3lzdGVt IGFmdGVyIGhhcmQgY3Jhc2gKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9kYl9wbHVn aW4vaGFuZGxlci9oYV9pbm5vZGIuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9oYW5k bGVyL2hhX2lubm9kYi5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDQwNzE4 MTI1NC1pcTVwdWF6bnpkcnpjcDNhCisrKyBiL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9oYW5kbGVy L2hhX2lubm9kYi5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDQwNzE5MjQ0 NS10amNqNjg2b245cGE2YWVxCkBAIC02MDIzLDEwICs2MDIzLDYgQEAgY3JlYXRlX3RhYmxlX2Rl ZigKIAlEQlVHX1BSSU5UKCJlbnRlciIsICgidGFibGVfbmFtZTogJXMiLCB0YWJsZV9uYW1lKSk7 CiAKIAl1dF9hKHRyeC0+bXlzcWxfdGhkICE9IE5VTEwpOwotCWlmIChJU19NQUdJQ19UQUJMRV9B TkRfVVNFUl9ERU5JRURfQUNDRVNTKHRhYmxlX25hbWUsCi0JCQkJCQkgIChUSEQqKSB0cngtPm15 c3FsX3RoZCkpIHsKLQkJREJVR19SRVRVUk4oSEFfRVJSX0dFTkVSSUMpOwotCX0KIAogCS8qIE15 U1FMIGRvZXMgdGhlIG5hbWUgbGVuZ3RoIGNoZWNrLiBCdXQgd2UgZG8gYWRkaXRpb25hbCBjaGVj awogCW9uIHRoZSBuYW1lIGxlbmd0aCBoZXJlICovCkBAIC02MTQ2LDYgKzYxNDIsOCBAQCBlcnJf Y29sOgogCQkJY29sX2xlbik7CiAJfQogCisJc3J2X2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSBs b3dlcl9jYXNlX3RhYmxlX25hbWVzOworCiAJZXJyb3IgPSByb3dfY3JlYXRlX3RhYmxlX2Zvcl9t eXNxbCh0YWJsZSwgdHJ4KTsKIAogCWlmIChlcnJvciA9PSBEQl9EVVBMSUNBVEVfS0VZKSB7CkBA IC02NTYyLDQyICs2NTYwLDE3IEBAIGhhX2lubm9iYXNlOjpjcmVhdGUoCiAJCURCVUdfUkVUVVJO KEhBX0VSUl9UT19CSUdfUk9XKTsKIAl9CiAKLQkvKiBHZXQgdGhlIHRyYW5zYWN0aW9uIGFzc29j aWF0ZWQgd2l0aCB0aGUgY3VycmVudCB0aGQsIG9yIGNyZWF0ZSBvbmUKLQlpZiBub3QgeWV0IGNy ZWF0ZWQgKi8KLQotCXBhcmVudF90cnggPSBjaGVja190cnhfZXhpc3RzKHRoZCk7Ci0KLQkvKiBJ biBjYXNlIE15U1FMIGNhbGxzIHRoaXMgaW4gdGhlIG1pZGRsZSBvZiBhIFNFTEVDVCBxdWVyeSwg cmVsZWFzZQotCXBvc3NpYmxlIGFkYXB0aXZlIGhhc2ggbGF0Y2ggdG8gYXZvaWQgZGVhZGxvY2tz IG9mIHRocmVhZHMgKi8KLQotCXRyeF9zZWFyY2hfbGF0Y2hfcmVsZWFzZV9pZl9yZXNlcnZlZChw YXJlbnRfdHJ4KTsKLQotCXRyeCA9IGlubm9iYXNlX3RyeF9hbGxvY2F0ZSh0aGQpOwotCi0JaWYg KGxvd2VyX2Nhc2VfdGFibGVfbmFtZXMpIHsKLQkJc3J2X2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMg PSBUUlVFOwotCX0gZWxzZSB7Ci0JCXNydl9sb3dlcl9jYXNlX3RhYmxlX25hbWVzID0gRkFMU0U7 Ci0JfQotCiAJc3RyY3B5KG5hbWUyLCBuYW1lKTsKIAogCW5vcm1hbGl6ZV90YWJsZV9uYW1lKG5v cm1fbmFtZSwgbmFtZTIpOwogCi0JLyogTGF0Y2ggdGhlIElubm9EQiBkYXRhIGRpY3Rpb25hcnkg ZXhjbHVzaXZlbHkgc28gdGhhdCBubyBkZWFkbG9ja3MKLQlvciBsb2NrIHdhaXRzIGNhbiBoYXBw ZW4gaW4gaXQgZHVyaW5nIGEgdGFibGUgY3JlYXRlIG9wZXJhdGlvbi4KLQlEcm9wIHRhYmxlIGV0 Yy4gZG8gdGhpcyBsYXRjaGluZyBpbiByb3cwbXlzcWwuYy4gKi8KLQotCXJvd19teXNxbF9sb2Nr X2RhdGFfZGljdGlvbmFyeSh0cngpOwotCiAJLyogQ3JlYXRlIHRoZSB0YWJsZSBkZWZpbml0aW9u IGluIElubm9EQiAqLwogCiAJZmxhZ3MgPSAwOwogCiAJLyogVmFsaWRhdGUgY3JlYXRlIG9wdGlv bnMgaWYgaW5ub2RiX3N0cmljdF9tb2RlIGlzIHNldC4gKi8KIAlpZiAoIWNyZWF0ZV9vcHRpb25z X2FyZV92YWxpZCh0aGQsIGZvcm0sIGNyZWF0ZV9pbmZvKSkgewotCQllcnJvciA9IEVSX0lMTEVH QUxfSEFfQ1JFQVRFX09QVElPTjsKLQkJZ290byBjbGVhbnVwOworCQlEQlVHX1JFVFVSTihFUl9J TExFR0FMX0hBX0NSRUFURV9PUFRJT04pOwogCX0KIAogCWlmIChjcmVhdGVfaW5mby0+a2V5X2Js b2NrX3NpemUpIHsKQEAgLTY3MzksMTYgKzY3MTIsMzcgQEAgaGFfaW5ub2Jhc2U6OmNyZWF0ZSgK IAogCS8qIENoZWNrIGZvciBuYW1lIGNvbmZsaWN0cyAod2l0aCByZXNlcnZlZCBuYW1lKSBmb3IK IAlhbnkgdXNlciBpbmRpY2VzIHRvIGJlIGNyZWF0ZWQuICovCi0JaWYgKGlubm9iYXNlX2luZGV4 X25hbWVfaXNfcmVzZXJ2ZWQodHJ4LCBmb3JtLT5rZXlfaW5mbywKKwlpZiAoaW5ub2Jhc2VfaW5k ZXhfbmFtZV9pc19yZXNlcnZlZCh0aGQsIGZvcm0tPmtleV9pbmZvLAogCQkJCQkgICAgZm9ybS0+ cy0+a2V5cykpIHsKLQkJZXJyb3IgPSAtMTsKLQkJZ290byBjbGVhbnVwOworCQlEQlVHX1JFVFVS TigtMSk7CisJfQorCisJaWYgKElTX01BR0lDX1RBQkxFX0FORF9VU0VSX0RFTklFRF9BQ0NFU1Mo bm9ybV9uYW1lLCB0aGQpKSB7CisJCURCVUdfUkVUVVJOKEhBX0VSUl9HRU5FUklDKTsKIAl9CiAK IAlpZiAoY3JlYXRlX2luZm8tPm9wdGlvbnMgJiBIQV9MRVhfQ1JFQVRFX1RNUF9UQUJMRSkgewog CQlmbGFncyB8PSBESUNUX1RGMl9URU1QT1JBUlkgPDwgRElDVF9URjJfU0hJRlQ7CiAJfQogCisJ LyogR2V0IHRoZSB0cmFuc2FjdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgdGhkLCBv ciBjcmVhdGUgb25lCisJaWYgbm90IHlldCBjcmVhdGVkICovCisKKwlwYXJlbnRfdHJ4ID0gY2hl Y2tfdHJ4X2V4aXN0cyh0aGQpOworCisJLyogSW4gY2FzZSBNeVNRTCBjYWxscyB0aGlzIGluIHRo ZSBtaWRkbGUgb2YgYSBTRUxFQ1QgcXVlcnksIHJlbGVhc2UKKwlwb3NzaWJsZSBhZGFwdGl2ZSBo YXNoIGxhdGNoIHRvIGF2b2lkIGRlYWRsb2NrcyBvZiB0aHJlYWRzICovCisKKwl0cnhfc2VhcmNo X2xhdGNoX3JlbGVhc2VfaWZfcmVzZXJ2ZWQocGFyZW50X3RyeCk7CisKKwl0cnggPSBpbm5vYmFz ZV90cnhfYWxsb2NhdGUodGhkKTsKKworCS8qIExhdGNoIHRoZSBJbm5vREIgZGF0YSBkaWN0aW9u YXJ5IGV4Y2x1c2l2ZWx5IHNvIHRoYXQgbm8gZGVhZGxvY2tzCisJb3IgbG9jayB3YWl0cyBjYW4g aGFwcGVuIGluIGl0IGR1cmluZyBhIHRhYmxlIGNyZWF0ZSBvcGVyYXRpb24uCisJRHJvcCB0YWJs ZSBldGMuIGRvIHRoaXMgbGF0Y2hpbmcgaW4gcm93MG15c3FsLmMuICovCisKKwlyb3dfbXlzcWxf bG9ja19kYXRhX2RpY3Rpb25hcnkodHJ4KTsKKwogCWVycm9yID0gY3JlYXRlX3RhYmxlX2RlZih0 cngsIGZvcm0sIG5vcm1fbmFtZSwKIAkJY3JlYXRlX2luZm8tPm9wdGlvbnMgJiBIQV9MRVhfQ1JF QVRFX1RNUF9UQUJMRSA/IG5hbWUyIDogTlVMTCwKIAkJZmxhZ3MpOwpAQCAtNjk5MiwxOCArNjk4 NiwxNCBAQCBoYV9pbm5vYmFzZTo6ZGVsZXRlX3RhYmxlKAogCiAJdHJ4ID0gaW5ub2Jhc2VfdHJ4 X2FsbG9jYXRlKHRoZCk7CiAKLQlpZiAobG93ZXJfY2FzZV90YWJsZV9uYW1lcykgewotCQlzcnZf bG93ZXJfY2FzZV90YWJsZV9uYW1lcyA9IFRSVUU7Ci0JfSBlbHNlIHsKLQkJc3J2X2xvd2VyX2Nh c2VfdGFibGVfbmFtZXMgPSBGQUxTRTsKLQl9Ci0KIAluYW1lX2xlbiA9IHN0cmxlbihuYW1lKTsK IAogCXV0X2EobmFtZV9sZW4gPCAxMDAwKTsKIAogCS8qIERyb3AgdGhlIHRhYmxlIGluIElubm9E QiAqLwogCisJc3J2X2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSBsb3dlcl9jYXNlX3RhYmxlX25h bWVzOworCiAJZXJyb3IgPSByb3dfZHJvcF90YWJsZV9mb3JfbXlzcWwobm9ybV9uYW1lLCB0cngs CiAJCQkJCSB0aGRfc3FsX2NvbW1hbmQodGhkKQogCQkJCQkgPT0gU1FMQ09NX0RST1BfREIpOwpA QCAtNzExOSwxMiArNzEwOSw2IEBAIGlubm9iYXNlX3JlbmFtZV90YWJsZSgKIAljaGFyKglub3Jt X3RvOwogCWNoYXIqCW5vcm1fZnJvbTsKIAotCWlmIChsb3dlcl9jYXNlX3RhYmxlX25hbWVzKSB7 Ci0JCXNydl9sb3dlcl9jYXNlX3RhYmxlX25hbWVzID0gVFJVRTsKLQl9IGVsc2UgewotCQlzcnZf bG93ZXJfY2FzZV90YWJsZV9uYW1lcyA9IEZBTFNFOwotCX0KLQogCS8vIE1hZ2ljIG51bWJlciA2 NCBhcmJpdHJhcnkKIAlub3JtX3RvID0gKGNoYXIqKSBteV9tYWxsb2Moc3RybGVuKHRvKSArIDY0 LCBNWUYoMCkpOwogCW5vcm1fZnJvbSA9IChjaGFyKikgbXlfbWFsbG9jKHN0cmxlbihmcm9tKSAr IDY0LCBNWUYoMCkpOwpAQCAtNzEzOSw2ICs3MTIzLDggQEAgaW5ub2Jhc2VfcmVuYW1lX3RhYmxl KAogCQlyb3dfbXlzcWxfbG9ja19kYXRhX2RpY3Rpb25hcnkodHJ4KTsKIAl9CiAKKwlzcnZfbG93 ZXJfY2FzZV90YWJsZV9uYW1lcyA9IGxvd2VyX2Nhc2VfdGFibGVfbmFtZXM7CisKIAllcnJvciA9 IHJvd19yZW5hbWVfdGFibGVfZm9yX215c3FsKAogCQlub3JtX2Zyb20sIG5vcm1fdG8sIHRyeCwg bG9ja19hbmRfY29tbWl0KTsKIApAQCAtMTA3MDAsMTkgKzEwNjg2LDE5IEBAIHN0YXRpYyBpbnQg c2hvd19pbm5vZGJfdmFycyhUSEQgKnRoZCwgU0gKICAgcmV0dXJuIDA7CiB9CiAKLS8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8vKioKIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGVhY2ggaW5k ZXggbmFtZSBmb3IgYSB0YWJsZSBhZ2FpbnN0IHJlc2VydmVkCi1zeXN0ZW0gZGVmYXVsdCBwcmlt YXJ5IGluZGV4IG5hbWUgJ0dFTl9DTFVTVF9JTkRFWCcuIElmIGEgbmFtZSBtYXRjaGVzLAotdGhp cyBmdW5jdGlvbiBwdXNoZXMgYW4gd2FybmluZyBtZXNzYWdlIHRvIHRoZSBjbGllbnQsIGFuZCBy ZXR1cm5zIHRydWUuICovCitzeXN0ZW0gZGVmYXVsdCBwcmltYXJ5IGluZGV4IG5hbWUgJ0dFTl9D TFVTVF9JTkRFWCcuIElmIGEgbmFtZQorbWF0Y2hlcywgdGhpcyBmdW5jdGlvbiBwdXNoZXMgYW4g d2FybmluZyBtZXNzYWdlIHRvIHRoZSBjbGllbnQsCithbmQgcmV0dXJucyB0cnVlLgorQHJldHVy biB0cnVlIGlmIHRoZSBpbmRleCBuYW1lIG1hdGNoZXMgdGhlIHJlc2VydmVkIG5hbWUgKi8KIGV4 dGVybiAiQyIgVU5JVl9JTlRFUk4KIGJvb2wKIGlubm9iYXNlX2luZGV4X25hbWVfaXNfcmVzZXJ2 ZWQoCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCQkJCQkvKiBvdXQ6IHRydWUg aWYgYW4gaW5kZXggbmFtZQotCQkJCQltYXRjaGVzIHRoZSByZXNlcnZlZCBuYW1lICovCi0JY29u c3QgdHJ4X3QqCXRyeCwJCS8qIGluOiBJbm5vREIgdHJhbnNhY3Rpb24gaGFuZGxlICovCi0JY29u c3QgS0VZKglrZXlfaW5mbywJLyogaW46IEluZGV4ZXMgdG8gYmUgY3JlYXRlZCAqLwotCXVsaW50 CQludW1fb2Zfa2V5cykJLyogaW46IE51bWJlciBvZiBpbmRleGVzIHRvCisJVEhEKgkJdGhkLAkJ LyohPCBpbi9vdXQ6IE15U1FMIGNvbm5lY3Rpb24gKi8KKwljb25zdCBLRVkqCWtleV9pbmZvLAkv KiE8IGluOiBJbmRleGVzIHRvIGJlIGNyZWF0ZWQgKi8KKwl1bGludAkJbnVtX29mX2tleXMpCS8q ITwgaW46IE51bWJlciBvZiBpbmRleGVzIHRvCiAJCQkJCWJlIGNyZWF0ZWQuICovCiB7CiAJY29u c3QgS0VZKglrZXk7CkBAIC0xMDcyNCw3ICsxMDcxMCw3IEBAIGlubm9iYXNlX2luZGV4X25hbWVf aXNfcmVzZXJ2ZWQoCiAJCWlmIChpbm5vYmFzZV9zdHJjYXNlY21wKGtleS0+bmFtZSwKIAkJCQkJ aW5ub2Jhc2VfaW5kZXhfcmVzZXJ2ZV9uYW1lKSA9PSAwKSB7CiAJCQkvKiBQdXNoIHdhcm5pbmcg dG8gbXlzcWwgKi8KLQkJCXB1c2hfd2FybmluZ19wcmludGYoKFRIRCopIHRyeC0+bXlzcWxfdGhk LAorCQkJcHVzaF93YXJuaW5nX3ByaW50Zih0aGQsCiAJCQkJCSAgICBNWVNRTF9FUlJPUjo6V0FS Tl9MRVZFTF9XQVJOLAogCQkJCQkgICAgRVJfV1JPTkdfTkFNRV9GT1JfSU5ERVgsCiAJCQkJCSAg ICAiQ2Fubm90IENyZWF0ZSBJbmRleCB3aXRoIG5hbWUgIgoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0 b3JhZ2UvaW5ub2RiX3BsdWdpbi9oYW5kbGVyL2hhX2lubm9kYi5oJwotLS0gYS9zdG9yYWdlL2lu bm9kYl9wbHVnaW4vaGFuZGxlci9oYV9pbm5vZGIuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xl LmNvbS0yMDExMDQwNzE4MTI1NC1pcTVwdWF6bnpkcnpjcDNhCisrKyBiL3N0b3JhZ2UvaW5ub2Ri X3BsdWdpbi9oYW5kbGVyL2hhX2lubm9kYi5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29t LTIwMTEwNDA3MTkyNDQ1LXRqY2o2ODZvbjlwYTZhZXEKQEAgLTMxNywxNSArMzE3LDE0IEBAIGlu bm9iYXNlX3RyeF9hbGxvY2F0ZSgKIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGVhY2ggaW5kZXggbmFt ZSBmb3IgYSB0YWJsZSBhZ2FpbnN0IHJlc2VydmVkCiBzeXN0ZW0gZGVmYXVsdCBwcmltYXJ5IGlu ZGV4IG5hbWUgJ0dFTl9DTFVTVF9JTkRFWCcuIElmIGEgbmFtZQogbWF0Y2hlcywgdGhpcyBmdW5j dGlvbiBwdXNoZXMgYW4gd2FybmluZyBtZXNzYWdlIHRvIHRoZSBjbGllbnQsCi1hbmQgcmV0dXJu cyB0cnVlLiAqLworYW5kIHJldHVybnMgdHJ1ZS4KK0ByZXR1cm4gdHJ1ZSBpZiB0aGUgaW5kZXgg bmFtZSBtYXRjaGVzIHRoZSByZXNlcnZlZCBuYW1lICovCiBleHRlcm4gIkMiCiBib29sCiBpbm5v YmFzZV9pbmRleF9uYW1lX2lzX3Jlc2VydmVkKAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ki8KLQkJCQkJLyogb3V0OiB0cnVlIGlmIHRoZSBpbmRleCBuYW1lCi0JCQkJCW1hdGNoZXMg dGhlIHJlc2VydmVkIG5hbWUgKi8KLQljb25zdCB0cnhfdCoJdHJ4LAkJLyogaW46IElubm9EQiB0 cmFuc2FjdGlvbiBoYW5kbGUgKi8KLQljb25zdCBLRVkqCWtleV9pbmZvLAkvKiBpbjogSW5kZXhl cyB0byBiZSBjcmVhdGVkICovCi0JdWxpbnQJCW51bV9vZl9rZXlzKTsJLyogaW46IE51bWJlciBv ZiBpbmRleGVzIHRvCisJVEhEKgkJdGhkLAkJLyohPCBpbi9vdXQ6IE15U1FMIGNvbm5lY3Rpb24g Ki8KKwljb25zdCBLRVkqCWtleV9pbmZvLAkvKiE8IGluOiBJbmRleGVzIHRvIGJlIGNyZWF0ZWQg Ki8KKwl1bGludAkJbnVtX29mX2tleXMpOwkvKiE8IGluOiBOdW1iZXIgb2YgaW5kZXhlcyB0bwog CQkJCQliZSBjcmVhdGVkLiAqLwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vZGJf cGx1Z2luL2hhbmRsZXIvaGFuZGxlcjBhbHRlci5jYycKLS0tIGEvc3RvcmFnZS9pbm5vZGJfcGx1 Z2luL2hhbmRsZXIvaGFuZGxlcjBhbHRlci5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNv bS0yMDExMDQwNzE4MTI1NC1pcTVwdWF6bnpkcnpjcDNhCisrKyBiL3N0b3JhZ2UvaW5ub2RiX3Bs dWdpbi9oYW5kbGVyL2hhbmRsZXIwYWx0ZXIuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5j b20tMjAxMTA0MDcxOTI0NDUtdGpjajY4Nm9uOXBhNmFlcQpAQCAtNjQ5LDQ0ICs2NDksMzcgQEAg aGFfaW5ub2Jhc2U6OmFkZF9pbmRleCgKIAogCXVwZGF0ZV90aGQoKTsKIAotCWhlYXAgPSBtZW1f aGVhcF9jcmVhdGUoMTAyNCk7Ci0KIAkvKiBJbiBjYXNlIE15U1FMIGNhbGxzIHRoaXMgaW4gdGhl IG1pZGRsZSBvZiBhIFNFTEVDVCBxdWVyeSwgcmVsZWFzZQogCXBvc3NpYmxlIGFkYXB0aXZlIGhh c2ggbGF0Y2ggdG8gYXZvaWQgZGVhZGxvY2tzIG9mIHRocmVhZHMuICovCiAJdHJ4X3NlYXJjaF9s YXRjaF9yZWxlYXNlX2lmX3Jlc2VydmVkKHByZWJ1aWx0LT50cngpOwotCXRyeF9zdGFydF9pZl9u b3Rfc3RhcnRlZChwcmVidWlsdC0+dHJ4KTsKLQotCS8qIENyZWF0ZSBhIGJhY2tncm91bmQgdHJh bnNhY3Rpb24gZm9yIHRoZSBvcGVyYXRpb25zIG9uCi0JdGhlIGRhdGEgZGljdGlvbmFyeSB0YWJs ZXMuICovCi0JdHJ4ID0gaW5ub2Jhc2VfdHJ4X2FsbG9jYXRlKHVzZXJfdGhkKTsKLQl0cnhfc3Rh cnRfaWZfbm90X3N0YXJ0ZWQodHJ4KTsKIAogCWlubm9kYl90YWJsZSA9IGluZGV4ZWRfdGFibGUK IAkJPSBkaWN0X3RhYmxlX2dldChwcmVidWlsdC0+dGFibGUtPm5hbWUsIEZBTFNFKTsKIAogCWlm IChVTklWX1VOTElLRUxZKCFpbm5vZGJfdGFibGUpKSB7Ci0JCWVycm9yID0gSEFfRVJSX05PX1NV Q0hfVEFCTEU7Ci0JCWdvdG8gZXJyX2V4aXQ7CisJCURCVUdfUkVUVVJOKEhBX0VSUl9OT19TVUNI X1RBQkxFKTsKIAl9CiAKIAkvKiBDaGVjayBpZiB0aGUgaW5kZXggbmFtZSBpcyByZXNlcnZlZC4g Ki8KLQlpZiAoaW5ub2Jhc2VfaW5kZXhfbmFtZV9pc19yZXNlcnZlZCh0cngsIGtleV9pbmZvLCBu dW1fb2Zfa2V5cykpIHsKLQkJZXJyb3IgPSAtMTsKLQl9IGVsc2UgewotCQkvKiBDaGVjayB0aGF0 IGluZGV4IGtleXMgYXJlIHNlbnNpYmxlICovCi0JCWVycm9yID0gaW5ub2Jhc2VfY2hlY2tfaW5k ZXhfa2V5cyhrZXlfaW5mbywgbnVtX29mX2tleXMsCi0JCQkJCQkgIGlubm9kYl90YWJsZSk7CisJ aWYgKGlubm9iYXNlX2luZGV4X25hbWVfaXNfcmVzZXJ2ZWQodXNlcl90aGQsIGtleV9pbmZvLCBu dW1fb2Zfa2V5cykpIHsKKwkJREJVR19SRVRVUk4oLTEpOwogCX0KIAorCS8qIENoZWNrIHRoYXQg aW5kZXgga2V5cyBhcmUgc2Vuc2libGUgKi8KKwllcnJvciA9IGlubm9iYXNlX2NoZWNrX2luZGV4 X2tleXMoa2V5X2luZm8sIG51bV9vZl9rZXlzLCBpbm5vZGJfdGFibGUpOworCiAJaWYgKFVOSVZf VU5MSUtFTFkoZXJyb3IpKSB7Ci1lcnJfZXhpdDoKLQkJbWVtX2hlYXBfZnJlZShoZWFwKTsKLQkJ dHJ4X2dlbmVyYWxfcm9sbGJhY2tfZm9yX215c3FsKHRyeCwgTlVMTCk7Ci0JCXRyeF9mcmVlX2Zv cl9teXNxbCh0cngpOwotCQl0cnhfY29tbWl0X2Zvcl9teXNxbChwcmVidWlsdC0+dHJ4KTsKIAkJ REJVR19SRVRVUk4oZXJyb3IpOwogCX0KIAorCWhlYXAgPSBtZW1faGVhcF9jcmVhdGUoMTAyNCk7 CisJdHJ4X3N0YXJ0X2lmX25vdF9zdGFydGVkKHByZWJ1aWx0LT50cngpOworCisJLyogQ3JlYXRl IGEgYmFja2dyb3VuZCB0cmFuc2FjdGlvbiBmb3IgdGhlIG9wZXJhdGlvbnMgb24KKwl0aGUgZGF0 YSBkaWN0aW9uYXJ5IHRhYmxlcy4gKi8KKwl0cnggPSBpbm5vYmFzZV90cnhfYWxsb2NhdGUodXNl cl90aGQpOworCXRyeF9zdGFydF9pZl9ub3Rfc3RhcnRlZCh0cngpOworCiAJLyogQ3JlYXRlIHRh YmxlIGNvbnRhaW5pbmcgYWxsIGluZGV4ZXMgdG8gYmUgYnVpbHQgaW4gdGhpcwogCWFsdGVyIHRh YmxlIGFkZCBpbmRleCBzbyB0aGF0IHRoZXkgYXJlIGluIHRoZSBjb3JyZWN0IG9yZGVyCiAJaW4g dGhlIHRhYmxlLiAqLwpAQCAtNzU4LDggKzc1MSwxMiBAQCBlcnJfZXhpdDoKIAogCQkJdXRfZChk aWN0X3RhYmxlX2NoZWNrX2Zvcl9kdXBfaW5kZXhlcyhpbm5vZGJfdGFibGUsCiAJCQkJCQkJICAg ICAgRkFMU0UpKTsKKwkJCW1lbV9oZWFwX2ZyZWUoaGVhcCk7CisJCQl0cnhfZ2VuZXJhbF9yb2xs YmFja19mb3JfbXlzcWwodHJ4LCBOVUxMKTsKIAkJCXJvd19teXNxbF91bmxvY2tfZGF0YV9kaWN0 aW9uYXJ5KHRyeCk7Ci0JCQlnb3RvIGVycl9leGl0OworCQkJdHJ4X2ZyZWVfZm9yX215c3FsKHRy eCk7CisJCQl0cnhfY29tbWl0X2Zvcl9teXNxbChwcmVidWlsdC0+dHJ4KTsKKwkJCURCVUdfUkVU VVJOKGVycm9yKTsKIAkJfQogCiAJCXRyeC0+dGFibGVfaWQgPSBpbmRleGVkX3RhYmxlLT5pZDsK Cg== --===============1792628837== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/marko.makela@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: marko.makela@stripped # target_branch: file:///home/marko/innobase/dev/mysql2a/5.1-innodb/ # testament_sha1: 476cced62daa59badca09544af391ed356566d27 # timestamp: 2011-04-07 22:25:04 +0300 # base_revision_id: marko.makela@stripped\ # iq5puaznzdrzcp3a # # Begin bundle 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 --===============1792628837==--