From: marko.makela Date: December 10 2012 8:35am Subject: bzr push into mysql-5.6 branch (marko.makela:4739 to 4740) Bug#15925768 List-Archive: http://lists.mysql.com/commits/145459 X-Bug: 15925768 Message-Id: <20121210083506.11331.39040.4740@x220> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDQ3NDAgTWFya28gTcOka2Vsw6QJMjAxMi0xMi0xMAogICAgICBCdWcjMTU5MjU3NjggUEVSRk9S TUFOQ0UgUkVHUkVTU0lPTiBJTiBQVVJHRSwgUk9MTEJBQ0ssIFVQREFURQogICAgICAKICAgICAg VGhlIGZpeCBvZiB0aGUgcmFjZSBjb25kaXRpb24gQnVnIzE0NzU2OTYzIGludHJvZHVjZWQgYSBw ZXJmb3JtYW5jZQogICAgICByZWdyZXNzaW9uLiBXaGVuIGEgc2Vjb25kYXJ5IGluZGV4IGlzIGJl aW5nIGNyZWF0ZWQgb25saW5lLCBpdCBtYXkKICAgICAgdHJhbnNpdGlvbiBmcm9tIE9OTElORV9J TkRFWF9DT01QTEVURSB0byBPTkxJTkVfSU5ERVhfQUJPUlRFRCBvcgogICAgICBPTkxJTkVfSU5E RVhfQUJPUlRFRF9EUk9QUEVEIHdoZW4gdGhlIEFMVEVSIFRBQkxFIG9wZXJhdGlvbiBpcyByb2xs ZWQKICAgICAgYmFjayBsYXRlci4KICAgICAgCiAgICAgIEJldHdlZW4gcHJlcGFyZV9pbnBsYWNl X2FsdGVyX3RhYmxlIGFuZCBjb21taXRfaW5wbGFjZV9hbHRlcl90YWJsZSwKICAgICAgdGhlIHNl Y29uZGFyeSBpbmRleCBuYW1lIHdpbGwgc3RhcnQgd2l0aCBURU1QX0lOREVYX1BSRUZJWC4gVGh1 cywgdGhlCiAgICAgIGluZGV4LT5vbmxpbmVfc3RhdHVzIG11c3QgYWx3YXlzIGJlIE9OTElORV9J TkRFWF9DT01QTEVURSBmb3IKICAgICAgc2Vjb25kYXJ5IGluZGV4ZXMgd2hvc2UgbmFtZSBkb2Vz IG5vdCBzdGFydCB3aXRoIFRFTVBfSU5ERVhfUFJFRklYLgogICAgICAKICAgICAgKEZvciBjbHVz dGVyZWQgaW5kZXgsIG9ubGluZV9zdGF0dXMhPU9OTElORV9JTkRFWF9DT01QTEVURSB3b3VsZAog ICAgICBpbmRpY2F0ZSB0aGUgZXhpc3RlbmNlIG9mIGEgdGFibGUgbW9kaWZpY2F0aW9uIGxvZy4p CiAgICAgIAogICAgICByb3dfcHVyZ2VfcmVtb3ZlX3NlY19pZl9wb3NzX3RyZWUoKSwKICAgICAg cm93X3B1cmdlX3JlbW92ZV9zZWNfaWZfcG9zc19sZWFmKCksCiAgICAgIHJvd191bmRvX2luc19y ZW1vdmVfc2VjX2xvdygpLAogICAgICByb3dfdW5kb19tb2RfZGVsX21hcmtfb3JfcmVtb3ZlX3Nl Y19sb3coKSwKICAgICAgcm93X3VuZG9fbW9kX2RlbF91bm1hcmtfc2VjX2FuZF91bmRvX3VwZGF0 ZSgpLAogICAgICByb3dfdXBkX3NlY19pbmRleF9lbnRyeSgpOgogICAgICBEbyBub3QgY2hlY2sg aW5kZXgtPm9ubGluZV9zdGF0dXMgdW5sZXNzIGluZGV4LT5uYW1lIHN0YXJ0cyB3aXRoCiAgICAg IFRFTVBfSU5ERVhfUFJFRklYLiBUaGlzIHNob3VsZCByZW1vdmUgdGhlIHBlcmZvcm1hbmNlIHJl Z3Jlc3Npb24KICAgICAgd2l0aG91dCBhIHJpc2sgb2YgcmVpbnRyb2R1Y2luZyBhbnkgcmFjZSBj b25kaXRpb24uCiAgICAgIAogICAgICByYjoxNjgyIGFwcHJvdmVkIGJ5IEppbW15IFlhbmcKCiAg ICBtb2RpZmllZDoKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHB1cmdlLmNjCiAgICAg IHN0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzB1bW9kLmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uv cm93L3JvdzB1cGQuY2MKIDQ3MzkgU2hpdmppIEt1bWFyIEpoYQkyMDEyLTEyLTA5IFttZXJnZV0K ICAgICAgQlVHIzEyMzU5OTQyIC0gUkVQTElDQVRJT04gVEVTVCBGUk9NIEVOR0lORSBTVUlURSAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlBMX1JPV19VTlRJTCBUSU1FUyBPVVQK ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgcGF0Y2ggdG8gZml4IHBvc3Qg cHVzaCBmYWx1cmVzIGluIHBiMgogICAgICAgICAgICAgICAgICAgCiAgICAgIEJVRyMxNTg3MjUw NCAtIFJFTU9WRSBNWVNRTC1URVNUL0lOQ0xVREUvR0VUX0JJTkxPR19EVU1QX1RIUkVBRF9JRC5J TkMKICAgICAgICAgICAgICAgICAgIGJ6ciBtZXJnZSA1LjUtPjUuNiAgIAoKICAgIHJlbW92ZWQ6 CiAgICAgIG15c3FsLXRlc3QvaW5jbHVkZS9nZXRfYmlubG9nX2R1bXBfdGhyZWFkX2lkLmluYwog ICAgbW9kaWZpZWQ6CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvZW5naW5lcy9mdW5jcy9yL3JwbF9y b3dfdW50aWwucmVzdWx0Cj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL3Jvdy9y b3cwcHVyZ2UuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBwdXJnZS5jYwlyZXZp ZDpzaGl2amkuamhhQG9yYWNsZS5jb20tMjAxMjEyMDkxMjAyMDYtNTJtZDdzZDV5MXp0Nms2egor KysgYi9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwcHVyZ2UuY2MJcmV2aWQ6bWFya28ubWFrZWxh QG9yYWNsZS5jb20tMjAxMjEyMTAwODE0NDEtOGV4bjBsdG42eWtiNnNjZwpAQCAtMzAzLDE0ICsz MDMsMjYgQEAgcm93X3B1cmdlX3JlbW92ZV9zZWNfaWZfcG9zc190cmVlKAogCWxvZ19mcmVlX2No ZWNrKCk7CiAJbXRyX3N0YXJ0KCZtdHIpOwogCi0JbXRyX3hfbG9jayhkaWN0X2luZGV4X2dldF9s b2NrKGluZGV4KSwgJm10cik7Ci0KLQlpZiAoZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKGluZGV4 KSkgewotCQkvKiBPbmxpbmUgc2Vjb25kYXJ5IGluZGV4IGNyZWF0aW9uIHdpbGwgbm90IGNvcHkg YW55Ci0JCWRlbGV0ZS1tYXJrZWQgcmVjb3Jkcy4gVGhlcmVmb3JlIHRoZXJlIGlzIG5vdGhpbmcg dG8KLQkJYmUgcHVyZ2VkLiBXZSBtdXN0IGFsc28gc2tpcCB0aGUgcHVyZ2Ugd2hlbiBhIGNvbXBs ZXRlZAotCQlpbmRleCBpcyBkcm9wcGVkIGJ5IHJvbGxiYWNrX2lucGxhY2VfYWx0ZXJfdGFibGUo KS4gKi8KLQkJZ290byBmdW5jX2V4aXRfbm9fcGN1cjsKKwlpZiAoKmluZGV4LT5uYW1lID09IFRF TVBfSU5ERVhfUFJFRklYKSB7CisJCS8qIFRoZSBpbmRleC0+b25saW5lX3N0YXR1cyBtYXkgY2hh bmdlIGlmIHRoZQorCQlpbmRleC0+bmFtZSBzdGFydHMgd2l0aCBURU1QX0lOREVYX1BSRUZJWCAo bWVhbmluZworCQl0aGF0IHRoZSBpbmRleCBpcyBvciB3YXMgYmVpbmcgY3JlYXRlZCBvbmxpbmUp LiBJdCBpcworCQlwcm90ZWN0ZWQgYnkgaW5kZXgtPmxvY2suICovCisJCW10cl94X2xvY2soZGlj dF9pbmRleF9nZXRfbG9jayhpbmRleCksICZtdHIpOworCisJCWlmIChkaWN0X2luZGV4X2lzX29u bGluZV9kZGwoaW5kZXgpKSB7CisJCQkvKiBPbmxpbmUgc2Vjb25kYXJ5IGluZGV4IGNyZWF0aW9u IHdpbGwgbm90CisJCQljb3B5IGFueSBkZWxldGUtbWFya2VkIHJlY29yZHMuIFRoZXJlZm9yZQor CQkJdGhlcmUgaXMgbm90aGluZyB0byBiZSBwdXJnZWQuIFdlIG11c3QgYWxzbworCQkJc2tpcCB0 aGUgcHVyZ2Ugd2hlbiBhIGNvbXBsZXRlZCBpbmRleCBpcworCQkJZHJvcHBlZCBieSByb2xsYmFj a19pbnBsYWNlX2FsdGVyX3RhYmxlKCkuICovCisJCQlnb3RvIGZ1bmNfZXhpdF9ub19wY3VyOwor CQl9CisJfSBlbHNlIHsKKwkJLyogRm9yIHNlY29uZGFyeSBpbmRleGVzLAorCQlpbmRleC0+b25s aW5lX3N0YXR1cz09T05MSU5FX0lOREVYX0NSRUFUSU9OIHVubGVzcworCQlpbmRleC0+bmFtZSBz dGFydHMgd2l0aCBURU1QX0lOREVYX1BSRUZJWC4gKi8KKwkJdXRfYWQoIWRpY3RfaW5kZXhfaXNf b25saW5lX2RkbChpbmRleCkpOwogCX0KIAogCXNlYXJjaF9yZXN1bHQgPSByb3dfc2VhcmNoX2lu ZGV4X2VudHJ5KGluZGV4LCBlbnRyeSwgQlRSX01PRElGWV9UUkVFLApAQCAtMzkwLDIwICs0MDIs MzggQEAgcm93X3B1cmdlX3JlbW92ZV9zZWNfaWZfcG9zc19sZWFmKAogewogCW10cl90CQkJbXRy OwogCWJ0cl9wY3VyX3QJCXBjdXI7CisJdWxpbnQJCQltb2RlOwogCWVudW0gcm93X3NlYXJjaF9y ZXN1bHQJc2VhcmNoX3Jlc3VsdDsKIAlib29sCQkJc3VjY2Vzcwk9IHRydWU7CiAKIAlsb2dfZnJl ZV9jaGVjaygpOwogCiAJbXRyX3N0YXJ0KCZtdHIpOwotCW10cl9zX2xvY2soZGljdF9pbmRleF9n ZXRfbG9jayhpbmRleCksICZtdHIpOwogCi0JaWYgKGRpY3RfaW5kZXhfaXNfb25saW5lX2RkbChp bmRleCkpIHsKLQkJLyogT25saW5lIHNlY29uZGFyeSBpbmRleCBjcmVhdGlvbiB3aWxsIG5vdCBj b3B5IGFueQotCQlkZWxldGUtbWFya2VkIHJlY29yZHMuIFRoZXJlZm9yZSB0aGVyZSBpcyBub3Ro aW5nIHRvCi0JCWJlIHB1cmdlZC4gV2UgbXVzdCBhbHNvIHNraXAgdGhlIHB1cmdlIHdoZW4gYSBj b21wbGV0ZWQKLQkJaW5kZXggaXMgZHJvcHBlZCBieSByb2xsYmFja19pbnBsYWNlX2FsdGVyX3Rh YmxlKCkuICovCi0JCWdvdG8gZnVuY19leGl0X25vX3BjdXI7CisJaWYgKCppbmRleC0+bmFtZSA9 PSBURU1QX0lOREVYX1BSRUZJWCkgeworCQkvKiBUaGUgaW5kZXgtPm9ubGluZV9zdGF0dXMgbWF5 IGNoYW5nZSBpZiB0aGUKKwkJaW5kZXgtPm5hbWUgc3RhcnRzIHdpdGggVEVNUF9JTkRFWF9QUkVG SVggKG1lYW5pbmcKKwkJdGhhdCB0aGUgaW5kZXggaXMgb3Igd2FzIGJlaW5nIGNyZWF0ZWQgb25s aW5lKS4gSXQgaXMKKwkJcHJvdGVjdGVkIGJ5IGluZGV4LT5sb2NrLiAqLworCQltdHJfc19sb2Nr KGRpY3RfaW5kZXhfZ2V0X2xvY2soaW5kZXgpLCAmbXRyKTsKKworCQlpZiAoZGljdF9pbmRleF9p c19vbmxpbmVfZGRsKGluZGV4KSkgeworCQkJLyogT25saW5lIHNlY29uZGFyeSBpbmRleCBjcmVh dGlvbiB3aWxsIG5vdAorCQkJY29weSBhbnkgZGVsZXRlLW1hcmtlZCByZWNvcmRzLiBUaGVyZWZv cmUKKwkJCXRoZXJlIGlzIG5vdGhpbmcgdG8gYmUgcHVyZ2VkLiBXZSBtdXN0IGFsc28KKwkJCXNr aXAgdGhlIHB1cmdlIHdoZW4gYSBjb21wbGV0ZWQgaW5kZXggaXMKKwkJCWRyb3BwZWQgYnkgcm9s bGJhY2tfaW5wbGFjZV9hbHRlcl90YWJsZSgpLiAqLworCQkJZ290byBmdW5jX2V4aXRfbm9fcGN1 cjsKKwkJfQorCisJCW1vZGUgPSBCVFJfTU9ESUZZX0xFQUYgfCBCVFJfQUxSRUFEWV9TX0xBVENI RUQgfCBCVFJfREVMRVRFOworCX0gZWxzZSB7CisJCS8qIEZvciBzZWNvbmRhcnkgaW5kZXhlcywK KwkJaW5kZXgtPm9ubGluZV9zdGF0dXM9PU9OTElORV9JTkRFWF9DUkVBVElPTiB1bmxlc3MKKwkJ aW5kZXgtPm5hbWUgc3RhcnRzIHdpdGggVEVNUF9JTkRFWF9QUkVGSVguICovCisJCXV0X2FkKCFk aWN0X2luZGV4X2lzX29ubGluZV9kZGwoaW5kZXgpKTsKKworCQltb2RlID0gQlRSX01PRElGWV9M RUFGIHwgQlRSX0RFTEVURTsKIAl9CiAKIAkvKiBTZXQgdGhlIHB1cmdlIG5vZGUgZm9yIHRoZSBj YWxsIHRvIHJvd19wdXJnZV9wb3NzX3NlYygpLiAqLwpAQCAtNDEzLDkgKzQ0Myw3IEBAIHJvd19w dXJnZV9yZW1vdmVfc2VjX2lmX3Bvc3NfbGVhZigKIAlwY3VyLmJ0cl9jdXIudGhyID0gc3RhdGlj X2Nhc3Q8cXVlX3Rocl90Kj4ocXVlX25vZGVfZ2V0X3BhcmVudChub2RlKSk7CiAKIAlzZWFyY2hf cmVzdWx0ID0gcm93X3NlYXJjaF9pbmRleF9lbnRyeSgKLQkJaW5kZXgsIGVudHJ5LAotCQlCVFJf TU9ESUZZX0xFQUYgfCBCVFJfQUxSRUFEWV9TX0xBVENIRUQgfCBCVFJfREVMRVRFLAotCQkmcGN1 ciwgJm10cik7CisJCWluZGV4LCBlbnRyeSwgbW9kZSwgJnBjdXIsICZtdHIpOwogCiAJc3dpdGNo IChzZWFyY2hfcmVzdWx0KSB7CiAJY2FzZSBST1dfRk9VTkQ6Cgo9PT0gbW9kaWZpZWQgZmlsZSAn c3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHVtb2QuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uv cm93L3JvdzB1bW9kLmNjCXJldmlkOnNoaXZqaS5qaGFAb3JhY2xlLmNvbS0yMDEyMTIwOTEyMDIw Ni01Mm1kN3NkNXkxenQ2azZ6CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzB1bW9kLmNj CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIxMjEwMDgxNDQxLThleG4wbHRuNnlr YjZzY2cKQEAgLTM2NywxNiArMzY3LDI3IEBAIHJvd191bmRvX21vZF9kZWxfbWFya19vcl9yZW1v dmVfc2VjX2xvdygKIAlsb2dfZnJlZV9jaGVjaygpOwogCW10cl9zdGFydCgmbXRyKTsKIAotCWlm IChtb2RlID09IEJUUl9NT0RJRllfTEVBRikgewotCQltb2RlID0gQlRSX01PRElGWV9MRUFGIHwg QlRSX0FMUkVBRFlfU19MQVRDSEVEOwotCQltdHJfc19sb2NrKGRpY3RfaW5kZXhfZ2V0X2xvY2so aW5kZXgpLCAmbXRyKTsKLQl9IGVsc2UgewotCQl1dF9hZChtb2RlID09IEJUUl9NT0RJRllfVFJF RSk7Ci0JCW10cl94X2xvY2soZGljdF9pbmRleF9nZXRfbG9jayhpbmRleCksICZtdHIpOwotCX0K KwlpZiAoKmluZGV4LT5uYW1lID09IFRFTVBfSU5ERVhfUFJFRklYKSB7CisJCS8qIFRoZSBpbmRl eC0+b25saW5lX3N0YXR1cyBtYXkgY2hhbmdlIGlmIHRoZQorCQlpbmRleC0+bmFtZSBzdGFydHMg d2l0aCBURU1QX0lOREVYX1BSRUZJWCAobWVhbmluZworCQl0aGF0IHRoZSBpbmRleCBpcyBvciB3 YXMgYmVpbmcgY3JlYXRlZCBvbmxpbmUpLiBJdCBpcworCQlwcm90ZWN0ZWQgYnkgaW5kZXgtPmxv Y2suICovCisJCWlmIChtb2RlID09IEJUUl9NT0RJRllfTEVBRikgeworCQkJbW9kZSA9IEJUUl9N T0RJRllfTEVBRiB8IEJUUl9BTFJFQURZX1NfTEFUQ0hFRDsKKwkJCW10cl9zX2xvY2soZGljdF9p bmRleF9nZXRfbG9jayhpbmRleCksICZtdHIpOworCQl9IGVsc2UgeworCQkJdXRfYWQobW9kZSA9 PSBCVFJfTU9ESUZZX1RSRUUpOworCQkJbXRyX3hfbG9jayhkaWN0X2luZGV4X2dldF9sb2NrKGlu ZGV4KSwgJm10cik7CisJCX0KIAotCWlmIChyb3dfbG9nX29ubGluZV9vcF90cnkoaW5kZXgsIGVu dHJ5LCAwKSkgewotCQlnb3RvIGZ1bmNfZXhpdF9ub19wY3VyOworCQlpZiAocm93X2xvZ19vbmxp bmVfb3BfdHJ5KGluZGV4LCBlbnRyeSwgMCkpIHsKKwkJCWdvdG8gZnVuY19leGl0X25vX3BjdXI7 CisJCX0KKwl9IGVsc2UgeworCQkvKiBGb3Igc2Vjb25kYXJ5IGluZGV4ZXMsCisJCWluZGV4LT5v bmxpbmVfc3RhdHVzPT1PTkxJTkVfSU5ERVhfQ1JFQVRJT04gdW5sZXNzCisJCWluZGV4LT5uYW1l IHN0YXJ0cyB3aXRoIFRFTVBfSU5ERVhfUFJFRklYLiAqLworCQl1dF9hZCghZGljdF9pbmRleF9p c19vbmxpbmVfZGRsKGluZGV4KSk7CiAJfQogCiAJYnRyX2N1ciA9IGJ0cl9wY3VyX2dldF9idHJf Y3VyKCZwY3VyKTsKQEAgLTUyOCwxNiArNTM5LDI3IEBAIHJvd191bmRvX21vZF9kZWxfdW5tYXJr X3NlY19hbmRfdW5kb191cGQKIAlsb2dfZnJlZV9jaGVjaygpOwogCW10cl9zdGFydCgmbXRyKTsK IAotCWlmIChtb2RlID09IEJUUl9NT0RJRllfTEVBRikgewotCQltb2RlID0gQlRSX01PRElGWV9M RUFGIHwgQlRSX0FMUkVBRFlfU19MQVRDSEVEOwotCQltdHJfc19sb2NrKGRpY3RfaW5kZXhfZ2V0 X2xvY2soaW5kZXgpLCAmbXRyKTsKLQl9IGVsc2UgewotCQl1dF9hZChtb2RlID09IEJUUl9NT0RJ RllfVFJFRSk7Ci0JCW10cl94X2xvY2soZGljdF9pbmRleF9nZXRfbG9jayhpbmRleCksICZtdHIp OwotCX0KKwlpZiAoKmluZGV4LT5uYW1lID09IFRFTVBfSU5ERVhfUFJFRklYKSB7CisJCS8qIFRo ZSBpbmRleC0+b25saW5lX3N0YXR1cyBtYXkgY2hhbmdlIGlmIHRoZQorCQlpbmRleC0+bmFtZSBz dGFydHMgd2l0aCBURU1QX0lOREVYX1BSRUZJWCAobWVhbmluZworCQl0aGF0IHRoZSBpbmRleCBp cyBvciB3YXMgYmVpbmcgY3JlYXRlZCBvbmxpbmUpLiBJdCBpcworCQlwcm90ZWN0ZWQgYnkgaW5k ZXgtPmxvY2suICovCisJCWlmIChtb2RlID09IEJUUl9NT0RJRllfTEVBRikgeworCQkJbW9kZSA9 IEJUUl9NT0RJRllfTEVBRiB8IEJUUl9BTFJFQURZX1NfTEFUQ0hFRDsKKwkJCW10cl9zX2xvY2so ZGljdF9pbmRleF9nZXRfbG9jayhpbmRleCksICZtdHIpOworCQl9IGVsc2UgeworCQkJdXRfYWQo bW9kZSA9PSBCVFJfTU9ESUZZX1RSRUUpOworCQkJbXRyX3hfbG9jayhkaWN0X2luZGV4X2dldF9s b2NrKGluZGV4KSwgJm10cik7CisJCX0KIAotCWlmIChyb3dfbG9nX29ubGluZV9vcF90cnkoaW5k ZXgsIGVudHJ5LCB0cngtPmlkKSkgewotCQlnb3RvIGZ1bmNfZXhpdF9ub19wY3VyOworCQlpZiAo cm93X2xvZ19vbmxpbmVfb3BfdHJ5KGluZGV4LCBlbnRyeSwgdHJ4LT5pZCkpIHsKKwkJCWdvdG8g ZnVuY19leGl0X25vX3BjdXI7CisJCX0KKwl9IGVsc2UgeworCQkvKiBGb3Igc2Vjb25kYXJ5IGlu ZGV4ZXMsCisJCWluZGV4LT5vbmxpbmVfc3RhdHVzPT1PTkxJTkVfSU5ERVhfQ1JFQVRJT04gdW5s ZXNzCisJCWluZGV4LT5uYW1lIHN0YXJ0cyB3aXRoIFRFTVBfSU5ERVhfUFJFRklYLiAqLworCQl1 dF9hZCghZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKGluZGV4KSk7CiAJfQogCiAJc2VhcmNoX3Jl c3VsdCA9IHJvd19zZWFyY2hfaW5kZXhfZW50cnkoaW5kZXgsIGVudHJ5LCBtb2RlLAoKPT09IG1v ZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzB1cGQuY2MnCi0tLSBhL3N0b3Jh Z2UvaW5ub2Jhc2Uvcm93L3JvdzB1cGQuY2MJcmV2aWQ6c2hpdmppLmpoYUBvcmFjbGUuY29tLTIw MTIxMjA5MTIwMjA2LTUybWQ3c2Q1eTF6dDZrNnoKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9yb3cv cm93MHVwZC5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMTIxMDA4MTQ0MS04 ZXhuMGx0bjZ5a2I2c2NnCkBAIC0xNjkyLDQ1ICsxNjkyLDYyIEBAIHJvd191cGRfc2VjX2luZGV4 X2VudHJ5KAogI2VuZGlmIC8qIFVOSVZfREVCVUcgKi8KIAogCW10cl9zdGFydCgmbXRyKTsKLQlt dHJfc19sb2NrKGRpY3RfaW5kZXhfZ2V0X2xvY2soaW5kZXgpLCAmbXRyKTsKIAotCXN3aXRjaCAo ZGljdF9pbmRleF9nZXRfb25saW5lX3N0YXR1cyhpbmRleCkpIHsKLQljYXNlIE9OTElORV9JTkRF WF9DT01QTEVURToKLQkJLyogVGhpcyBpcyBhIG5vcm1hbCBpbmRleC4gRG8gbm90IGxvZyBhbnl0 aGluZy4KLQkJUGVyZm9ybSB0aGUgdXBkYXRlIG9uIHRoZSBpbmRleCB0cmVlIGRpcmVjdGx5LiAq LwotCQlicmVhazsKLQljYXNlIE9OTElORV9JTkRFWF9DUkVBVElPTjoKLQkJLyogTG9nIGEgREVM RVRFIGFuZCBvcHRpb25hbGx5IElOU0VSVC4gKi8KLQkJcm93X2xvZ19vbmxpbmVfb3AoaW5kZXgs IGVudHJ5LCAwKTsKLQotCQlpZiAoIW5vZGUtPmlzX2RlbGV0ZSkgewotCQkJbWVtX2hlYXBfZW1w dHkoaGVhcCk7Ci0JCQllbnRyeSA9IHJvd19idWlsZF9pbmRleF9lbnRyeSgKLQkJCQlub2RlLT51 cGRfcm93LCBub2RlLT51cGRfZXh0LCBpbmRleCwgaGVhcCk7Ci0JCQl1dF9hKGVudHJ5KTsKLQkJ CXJvd19sb2dfb25saW5lX29wKGluZGV4LCBlbnRyeSwgdHJ4LT5pZCk7CisJaWYgKCppbmRleC0+ bmFtZSA9PSBURU1QX0lOREVYX1BSRUZJWCkgeworCQkvKiBUaGUgaW5kZXgtPm9ubGluZV9zdGF0 dXMgbWF5IGNoYW5nZSBpZiB0aGUKKwkJaW5kZXgtPm5hbWUgc3RhcnRzIHdpdGggVEVNUF9JTkRF WF9QUkVGSVggKG1lYW5pbmcKKwkJdGhhdCB0aGUgaW5kZXggaXMgb3Igd2FzIGJlaW5nIGNyZWF0 ZWQgb25saW5lKS4gSXQgaXMKKwkJcHJvdGVjdGVkIGJ5IGluZGV4LT5sb2NrLiAqLworCisJCW10 cl9zX2xvY2soZGljdF9pbmRleF9nZXRfbG9jayhpbmRleCksICZtdHIpOworCisJCXN3aXRjaCAo ZGljdF9pbmRleF9nZXRfb25saW5lX3N0YXR1cyhpbmRleCkpIHsKKwkJY2FzZSBPTkxJTkVfSU5E RVhfQ09NUExFVEU6CisJCQkvKiBUaGlzIGlzIGEgbm9ybWFsIGluZGV4LiBEbyBub3QgbG9nIGFu eXRoaW5nLgorCQkJUGVyZm9ybSB0aGUgdXBkYXRlIG9uIHRoZSBpbmRleCB0cmVlIGRpcmVjdGx5 LiAqLworCQkJYnJlYWs7CisJCWNhc2UgT05MSU5FX0lOREVYX0NSRUFUSU9OOgorCQkJLyogTG9n IGEgREVMRVRFIGFuZCBvcHRpb25hbGx5IElOU0VSVC4gKi8KKwkJCXJvd19sb2dfb25saW5lX29w KGluZGV4LCBlbnRyeSwgMCk7CisKKwkJCWlmICghbm9kZS0+aXNfZGVsZXRlKSB7CisJCQkJbWVt X2hlYXBfZW1wdHkoaGVhcCk7CisJCQkJZW50cnkgPSByb3dfYnVpbGRfaW5kZXhfZW50cnkoCisJ CQkJCW5vZGUtPnVwZF9yb3csIG5vZGUtPnVwZF9leHQsCisJCQkJCWluZGV4LCBoZWFwKTsKKwkJ CQl1dF9hKGVudHJ5KTsKKwkJCQlyb3dfbG9nX29ubGluZV9vcChpbmRleCwgZW50cnksIHRyeC0+ aWQpOworCQkJfQorCQkJLyogZmFsbCB0aHJvdWdoICovCisJCWNhc2UgT05MSU5FX0lOREVYX0FC T1JURUQ6CisJCWNhc2UgT05MSU5FX0lOREVYX0FCT1JURURfRFJPUFBFRDoKKwkJCW10cl9jb21t aXQoJm10cik7CisJCQlnb3RvIGZ1bmNfZXhpdDsKIAkJfQotCQkvKiBmYWxsIHRocm91Z2ggKi8K LQljYXNlIE9OTElORV9JTkRFWF9BQk9SVEVEOgotCWNhc2UgT05MSU5FX0lOREVYX0FCT1JURURf RFJPUFBFRDoKLQkJbXRyX2NvbW1pdCgmbXRyKTsKLQkJZ290byBmdW5jX2V4aXQ7CisKKwkJLyog V2UgY2FuIG9ubHkgYnVmZmVyIGRlbGV0ZS1tYXJrIG9wZXJhdGlvbnMgaWYgdGhlcmUKKwkJYXJl IG5vIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnRzIHJlZmVycmluZyB0byB0aGUgaW5kZXguICovCisJ CW1vZGUgPSByZWZlcmVuY2VkCisJCQk/IEJUUl9NT0RJRllfTEVBRiB8IEJUUl9BTFJFQURZX1Nf TEFUQ0hFRAorCQkJOiBCVFJfTU9ESUZZX0xFQUYgfCBCVFJfQUxSRUFEWV9TX0xBVENIRUQKKwkJ CXwgQlRSX0RFTEVURV9NQVJLOworCX0gZWxzZSB7CisJCS8qIEZvciBzZWNvbmRhcnkgaW5kZXhl cywKKwkJaW5kZXgtPm9ubGluZV9zdGF0dXM9PU9OTElORV9JTkRFWF9DUkVBVElPTiB1bmxlc3MK KwkJaW5kZXgtPm5hbWUgc3RhcnRzIHdpdGggVEVNUF9JTkRFWF9QUkVGSVguICovCisJCXV0X2Fk KCFkaWN0X2luZGV4X2lzX29ubGluZV9kZGwoaW5kZXgpKTsKKworCQkvKiBXZSBjYW4gb25seSBi dWZmZXIgZGVsZXRlLW1hcmsgb3BlcmF0aW9ucyBpZiB0aGVyZQorCQlhcmUgbm8gZm9yZWlnbiBr ZXkgY29uc3RyYWludHMgcmVmZXJyaW5nIHRvIHRoZSBpbmRleC4gKi8KKwkJbW9kZSA9IHJlZmVy ZW5jZWQKKwkJCT8gQlRSX01PRElGWV9MRUFGCisJCQk6IEJUUl9NT0RJRllfTEVBRiB8IEJUUl9E RUxFVEVfTUFSSzsKIAl9CiAKIAkvKiBTZXQgdGhlIHF1ZXJ5IHRocmVhZCwgc28gdGhhdCBpYnVm X2luc2VydF9sb3coKSB3aWxsIGJlCiAJYWJsZSB0byBpbnZva2UgdGhkX2dldF90cngoKS4gKi8K IAlidHJfcGN1cl9nZXRfYnRyX2N1cigmcGN1ciktPnRociA9IHRocjsKIAotCS8qIFdlIGNhbiBv bmx5IHRyeSB0byB1c2UgdGhlIGluc2VydC9kZWxldGUgYnVmZmVyIHRvIGJ1ZmZlcgotCWRlbGV0 ZS1tYXJrIG9wZXJhdGlvbnMgaWYgdGhlIGluZGV4IHdlJ3JlIG1vZGlmeWluZyBoYXMgbm8gZm9y ZWlnbgotCWtleSBjb25zdHJhaW50cyByZWZlcnJpbmcgdG8gaXQuICovCi0JaWYgKHJlZmVyZW5j ZWQpIHsKLQkJbW9kZSA9IEJUUl9NT0RJRllfTEVBRiB8IEJUUl9BTFJFQURZX1NfTEFUQ0hFRDsK LQl9IGVsc2UgewotCQltb2RlID0gQlRSX01PRElGWV9MRUFGIHwgQlRSX0FMUkVBRFlfU19MQVRD SEVECi0JCQl8IEJUUl9ERUxFVEVfTUFSSzsKLQl9Ci0KIAlzZWFyY2hfcmVzdWx0ID0gcm93X3Nl YXJjaF9pbmRleF9lbnRyeShpbmRleCwgZW50cnksIG1vZGUsCiAJCQkJCSAgICAgICAmcGN1ciwg Jm10cik7CiAKCk5vIGJ1bmRsZSAocmVhc29uOiB1c2VsZXNzIGZvciBwdXNoIGVtYWlscyku