From: marko.makela Date: December 28 2011 10:43am Subject: bzr push into mysql-trunk branch (marko.makela:3692 to 3693) List-Archive: http://lists.mysql.com/commits/142271 Message-Id: <201112281043.pBSAhvmu000432@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM2OTMgTWFya28gTcOka2Vsw6QJMjAxMS0xMi0yOCBbbWVyZ2VdCiAgICAgIE1lcmdlIG15c3Fs LTUuNSB0byBteXNxbC10cnVuay4KCiAgICBtb2RpZmllZDoKICAgICAgc3RvcmFnZS9pbm5vYmFz ZS9idWYvYnVmMGJ1Zi5jYwogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvbWVtMG1lbS5p YwogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdW5pdi5pCiAgICAgIHN0b3JhZ2UvaW5u b2Jhc2UvaW5jbHVkZS91dDBtZW0uaAogICAgICBzdG9yYWdlL2lubm9iYXNlL21lbS9tZW0wcG9v bC5jYwogICAgICBzdG9yYWdlL2lubm9iYXNlL29zL29zMHByb2MuY2MKICAgICAgc3RvcmFnZS9p bm5vYmFzZS91dC91dDBtZW0uY2MKIDM2OTIgQW5uYW1hbGFpIEd1cnVzYW1pCTIwMTEtMTItMjgK ICAgICAgQnVnICMxMzI1NTIyNTogVEhFIFZBTFVFIE9GIElOTk9EQl9VTkRPX0xPR1MgSU4gTVku Q05GIElTIElHTk9SRUQKICAgICAgCiAgICAgIEludHJvZHVjZWQgYSBuZXcgcmVhZCBvbmx5IHN0 YXR1cyB2YXJpYWJsZSBzcnZfYXZhaWxhYmxlX3VuZG9fbG9ncy4gIAogICAgICBEdXJpbmcgc3Rh cnR1cCwgdGhpcyB2YXJpYWJsZSB3aWxsIGJlIHNldCB0byB0aGUgdG90YWwgYXZhaWxhYmxlIAog ICAgICBudW1iZXIgb2Ygcm9sbGJhY2sgc2VnbWVudHMuICBVc2VycyBjYW4gYWNjZXNzIHRoaXMg dmFyaWFibGUgdG8gZmluZAogICAgICBvdXQgdGhlIGF2YWlsYWJsZSBudW1iZXIgb2Ygcm9sbGJh Y2sgc2VnbWVudHMuICBUaGUgaW5ub2RiX3VuZG9fbG9ncwogICAgICB3aWxsIGNvbnRhaW4gdGhl IG51bWJlciBvZiBhY3RpdmUgcm9sbGJhY2sgc2VnbWVudHMuIAogICAgICAKICAgICAgUmV2aWV3 IEJvYXJkIGxpbms6CiAgICAgIGh0dHA6Ly9idXIwMy5uby5vcmFjbGUuY29tL3JiL3IvODYyLwoK ICAgIG1vZGlmaWVkOgogICAgICBzdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFfaW5ub2RiLmNj CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9zcnYwc3J2LmgKICAgICAgc3RvcmFnZS9p bm5vYmFzZS9zcnYvc3J2MHNydi5jYwogICAgICBzdG9yYWdlL2lubm9iYXNlL3Nydi9zcnYwc3Rh cnQuY2MKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1ZjBidWYuY2Mn Ci0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1ZjBidWYuY2MJcmV2aWQ6YW5uYW1hbGFpLmd1 cnVzYW1pQG9yYWNsZS5jb20tMjAxMTEyMjgwODM3MDgteGc3N2RveHR2c3VyYTh0OQorKysgYi9z dG9yYWdlL2lubm9iYXNlL2J1Zi9idWYwYnVmLmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUu Y29tLTIwMTExMjI4MTA0MDU1LTdodGxmcHpsZXo2dGR5czMKQEAgLTEwNDEsMTEgKzEwNDEsOCBA QCBidWZfY2h1bmtfaW5pdCgKIAlmb3IgKGkgPSBjaHVuay0+c2l6ZTsgaS0tOyApIHsKIAogCQli dWZfYmxvY2tfaW5pdChidWZfcG9vbCwgYmxvY2ssIGZyYW1lKTsKKwkJVU5JVl9NRU1fSU5WQUxJ RChibG9jay0+ZnJhbWUsIFVOSVZfUEFHRV9TSVpFKTsKIAotI2lmZGVmIEhBVkVfcHVyaWZ5Ci0J CS8qIFdpcGUgY29udGVudHMgb2YgZnJhbWUgdG8gZWxpbWluYXRlIGEgUHVyaWZ5IHdhcm5pbmcg Ki8KLQkJbWVtc2V0KGJsb2NrLT5mcmFtZSwgJ1wwJywgVU5JVl9QQUdFX1NJWkUpOwotI2VuZGlm CiAJCS8qIEFkZCB0aGUgYmxvY2sgdG8gdGhlIGZyZWUgbGlzdCAqLwogCQlVVF9MSVNUX0FERF9M QVNUKGxpc3QsIGJ1Zl9wb29sLT5mcmVlLCAoJmJsb2NrLT5wYWdlKSk7CiAKCj09PSBtb2RpZmll ZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvbWVtMG1lbS5pYycKLS0tIGEvc3RvcmFn ZS9pbm5vYmFzZS9pbmNsdWRlL21lbTBtZW0uaWMJcmV2aWQ6YW5uYW1hbGFpLmd1cnVzYW1pQG9y YWNsZS5jb20tMjAxMTEyMjgwODM3MDgteGc3N2RveHR2c3VyYTh0OQorKysgYi9zdG9yYWdlL2lu bm9iYXNlL2luY2x1ZGUvbWVtMG1lbS5pYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0y MDExMTIyODEwNDA1NS03aHRsZnB6bGV6NnRkeXMzCkBAIC0yMDksMTAgKzIwOSw2IEBAIG1lbV9o ZWFwX2FsbG9jKAogCWJ1ZiA9IChieXRlKikgYnVmICsgTUVNX0ZJRUxEX0hFQURFUl9TSVpFOwog CiAjZW5kaWYKLSNpZmRlZiBVTklWX1NFVF9NRU1fVE9fWkVSTwotCVVOSVZfTUVNX0FMTE9DKGJ1 Ziwgbik7Ci0JbWVtc2V0KGJ1ZiwgJ1wwJywgbik7Ci0jZW5kaWYKIAlVTklWX01FTV9BTExPQyhi dWYsIG4pOwogCXJldHVybihidWYpOwogfQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5u b2Jhc2UvaW5jbHVkZS91bml2LmknCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS91bml2 LmkJcmV2aWQ6YW5uYW1hbGFpLmd1cnVzYW1pQG9yYWNsZS5jb20tMjAxMTEyMjgwODM3MDgteGc3 N2RveHR2c3VyYTh0OQorKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdW5pdi5pCXJldmlk Om1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTExMjI4MTA0MDU1LTdodGxmcHpsZXo2dGR5czMK QEAgLTE2MSwxNCArMTYxLDYgQEAgYmUgZXhjbHVkZWQgZnJvbSBpbnN0cnVtZW50YXRpb24uICov CiAvKgkJCURFQlVHIFZFUlNJT04gQ09OVFJPTAogCQkJPT09PT09PT09PT09PT09PT09PT09ICov CiAKLS8qIFRoZSBmb2xsb3dpbmcgZmxhZyB3aWxsIG1ha2UgSW5ub0RCIHRvIGluaXRpYWxpemUK LWFsbCBtZW1vcnkgaXQgYWxsb2NhdGVzIHRvIHplcm8uIEl0IGhpZGVzIFB1cmlmeQotd2Fybmlu Z3MgYWJvdXQgcmVhZGluZyB1bmFsbG9jYXRlZCBtZW1vcnkgdW5sZXNzCi1tZW1vcnkgaXMgcmVh ZCBvdXRzaWRlIHRoZSBhbGxvY2F0ZWQgYmxvY2tzLiAqLwotLyoKLSNkZWZpbmUgVU5JVl9JTklU X01FTV9UT19aRVJPCi0qLwotCiAvKiBXaGVuIHRoaXMgbWFjcm8gaXMgZGVmaW5lZCB0aGVuIGFk ZGl0aW9uYWwgdGVzdCBmdW5jdGlvbnMgd2lsbCBiZQogY29tcGlsZWQuIFRoZXNlIGZ1bmN0aW9u cyBsaXZlIGF0IHRoZSBlbmQgb2YgZWFjaCByZWxldmFudCBzb3VyY2UgZmlsZQogYW5kIGhhdmUg InRlc3RfIiBwcmVmaXguIFRoZXNlIGZ1bmN0aW9ucyBhcmUgbm90IGNhbGxlZCBmcm9tIGFueXdo ZXJlIGluCkBAIC0yNDQsMTUgKzIzNiw2IEBAIG9wZXJhdGlvbnMgKHZlcnkgc2xvdyk7IGFsc28g VU5JVl9ERUJVRwogI2RlZmluZSBVTklWX0JUUl9ERUJVRwkJCQkvKiBjaGVjayBCLXRyZWUgbGlu a3MgKi8KICNkZWZpbmUgVU5JVl9MSUdIVF9NRU1fREVCVUcJCQkvKiBsaWdodCBtZW1vcnkgZGVi dWdnaW5nICovCiAKLSNpZmRlZiBIQVZFX3B1cmlmeQotLyogVGhlIGZvbGxvd2luZyBzZXRzIGFs bCBuZXcgYWxsb2NhdGVkIG1lbW9yeSB0byB6ZXJvIGJlZm9yZSB1c2U6Ci10aGlzIGNhbiBiZSB1 c2VkIHRvIGVsaW1pbmF0ZSB1bm5lY2Vzc2FyeSBQdXJpZnkgd2FybmluZ3MsIGJ1dCBub3RlIHRo YXQKLWl0IGFsc28gbWFza3MgbWFueSBidWdzIFB1cmlmeSBjb3VsZCBkZXRlY3QuIEZvciBkZXRh aWxlZCBQdXJpZnkgYW5hbHlzaXMgaXQKLWlzIGJlc3QgdG8gcmVtb3ZlIHRoZSBkZWZpbmUgYmVs b3cgYW5kIGxvb2sgdGhyb3VnaCB0aGUgd2FybmluZ3Mgb25lCi1ieSBvbmUuICovCi0jZGVmaW5l IFVOSVZfU0VUX01FTV9UT19aRVJPCi0jZW5kaWYKLQogLyoKICNkZWZpbmUgVU5JVl9TUUxfREVC VUcKICNkZWZpbmUgVU5JVl9MT0dfREVCVUcKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lu bm9iYXNlL2luY2x1ZGUvdXQwbWVtLmgnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS91 dDBtZW0uaAlyZXZpZDphbm5hbWFsYWkuZ3VydXNhbWlAb3JhY2xlLmNvbS0yMDExMTIyODA4Mzcw OC14Zzc3ZG94dHZzdXJhOHQ5CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS91dDBtZW0u aAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMTIyODEwNDA1NS03aHRsZnB6bGV6 NnRkeXMzCkBAIC03OCw0MCArNzgsMTkgQEAgdXRfbWVtX2luaXQodm9pZCk7CiAvKj09PT09PT09 PT09PT0qLwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKLUFsbG9jYXRlcyBtZW1vcnkuIFNldHMgaXQg YWxzbyB0byB6ZXJvIGlmIFVOSVZfU0VUX01FTV9UT19aRVJPIGlzCi1kZWZpbmVkIGFuZCBzZXRf dG9femVybyBpcyBUUlVFLgorQWxsb2NhdGVzIG1lbW9yeS4KIEByZXR1cm4Jb3duOiBhbGxvY2F0 ZWQgbWVtb3J5ICovCiBVTklWX0lOVEVSTgogdm9pZCoKIHV0X21hbGxvY19sb3coCiAvKj09PT09 PT09PT0qLwogCXVsaW50CW4sCQkJLyohPCBpbjogbnVtYmVyIG9mIGJ5dGVzIHRvIGFsbG9jYXRl ICovCi0JaWJvb2wJc2V0X3RvX3plcm8sCQkvKiE8IGluOiBUUlVFIGlmIGFsbG9jYXRlZCBtZW1v cnkKLQkJCQkJc2hvdWxkIGJlIHNldCB0byB6ZXJvIGlmCi0JCQkJCVVOSVZfU0VUX01FTV9UT19a RVJPIGlzIGRlZmluZWQgKi8KLQlpYm9vbAlhc3NlcnRfb25fZXJyb3IpOwkvKiE8IGluOiBpZiBU UlVFLCB3ZSBjcmFzaCBteXNxbGQgaWYKKwlpYm9vbAlhc3NlcnRfb25fZXJyb3IpCS8qITwgaW46 IGlmIFRSVUUsIHdlIGNyYXNoIG15c3FsZCBpZgogCQkJCQl0aGUgbWVtb3J5IGNhbm5vdCBiZSBh bGxvY2F0ZWQgKi8KKwlfX2F0dHJpYnV0ZV9fKChtYWxsb2MpKTsKIC8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8q KgotQWxsb2NhdGVzIG1lbW9yeS4gU2V0cyBpdCBhbHNvIHRvIHplcm8gaWYgVU5JVl9TRVRfTUVN X1RPX1pFUk8gaXMKLWRlZmluZWQuCi1AcmV0dXJuCW93bjogYWxsb2NhdGVkIG1lbW9yeSAqLwot VU5JVl9JTlRFUk4KLXZvaWQqCi11dF9tYWxsb2MoCi0vKj09PT09PSovCi0JdWxpbnQJbik7CS8q ITwgaW46IG51bWJlciBvZiBieXRlcyB0byBhbGxvY2F0ZSAqLwotI2lmbmRlZiBVTklWX0hPVEJB Q0tVUAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovLyoqCi1UZXN0cyBpZiBtYWxsb2Mgb2YgbiBieXRlcyB3b3Vs ZCBzdWNjZWVkLiB1dF9tYWxsb2MoKSBhc3NlcnRzIGlmIG1lbW9yeSBydW5zCi1vdXQuIEl0IGNh bm5vdCBiZSB1c2VkIGlmIHdlIHdhbnQgdG8gcmV0dXJuIGFuIGVycm9yIG1lc3NhZ2UuIFByaW50 cyB0bwotc3RkZXJyIGEgbWVzc2FnZSBpZiBmYWlscy4KLUByZXR1cm4JVFJVRSBpZiBzdWNjZWVk ZWQgKi8KLVVOSVZfSU5URVJOCi1pYm9vbAotdXRfdGVzdF9tYWxsb2MoCi0vKj09PT09PT09PT09 Ki8KLQl1bGludAluKTsJLyohPCBpbjogdHJ5IHRvIGFsbG9jYXRlIHRoaXMgbWFueSBieXRlcyAq LwotI2VuZGlmIC8qICFVTklWX0hPVEJBQ0tVUCAqLworQWxsb2NhdGVzIG1lbW9yeS4gKi8KKyNk ZWZpbmUgdXRfbWFsbG9jKG4pIHV0X21hbGxvY19sb3cobiwgVFJVRSkKIC8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ly8qKgogRnJlZXMgYSBtZW1vcnkgYmxvY2sgYWxsb2NhdGVkIHdpdGggdXRfbWFsbG9jLiBGcmVl aW5nIGEgTlVMTCBwb2ludGVyIGlzCiBhIG5vcC4gKi8KCj09PSBtb2RpZmllZCBmaWxlICdzdG9y YWdlL2lubm9iYXNlL21lbS9tZW0wcG9vbC5jYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9tZW0v bWVtMHBvb2wuY2MJcmV2aWQ6YW5uYW1hbGFpLmd1cnVzYW1pQG9yYWNsZS5jb20tMjAxMTEyMjgw ODM3MDgteGc3N2RveHR2c3VyYTh0OQorKysgYi9zdG9yYWdlL2lubm9iYXNlL21lbS9tZW0wcG9v bC5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMTIyODEwNDA1NS03aHRsZnB6 bGV6NnRkeXMzCkBAIC0yMjgsMTEgKzIyOCw3IEBAIG1lbV9wb29sX2NyZWF0ZSgKIAogCXBvb2wg PSBzdGF0aWNfY2FzdDxtZW1fcG9vbF90Kj4odXRfbWFsbG9jKHNpemVvZihtZW1fcG9vbF90KSkp OwogCi0JLyogV2UgZG8gbm90IHNldCB0aGUgbWVtb3J5IHRvIHplcm8gKEZBTFNFKSBpbiB0aGUg cG9vbCwKLQlidXQgb25seSB3aGVuIGFsbG9jYXRlZCBhdCBhIGhpZ2hlciBsZXZlbCBpbiBtZW0w bWVtLmNjLgotCVRoaXMgaXMgdG8gYXZvaWQgbWFza2luZyB1c2VmdWwgUHVyaWZ5IHdhcm5pbmdz LiAqLwotCi0JcG9vbC0+YnVmID0gc3RhdGljX2Nhc3Q8Ynl0ZSo+KHV0X21hbGxvY19sb3coc2l6 ZSwgRkFMU0UsIFRSVUUpKTsKKwlwb29sLT5idWYgPSBzdGF0aWNfY2FzdDxieXRlKj4odXRfbWFs bG9jX2xvdyhzaXplLCBUUlVFKSk7CiAJcG9vbC0+c2l6ZSA9IHNpemU7CiAKIAltdXRleF9jcmVh dGUobWVtX3Bvb2xfbXV0ZXhfa2V5LCAmcG9vbC0+bXV0ZXgsIFNZTkNfTUVNX1BPT0wpOwoKPT09 IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uvb3Mvb3MwcHJvYy5jYycKLS0tIGEvc3Rv cmFnZS9pbm5vYmFzZS9vcy9vczBwcm9jLmNjCXJldmlkOmFubmFtYWxhaS5ndXJ1c2FtaUBvcmFj bGUuY29tLTIwMTExMjI4MDgzNzA4LXhnNzdkb3h0dnN1cmE4dDkKKysrIGIvc3RvcmFnZS9pbm5v YmFzZS9vcy9vczBwcm9jLmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTExMjI4 MTA0MDU1LTdodGxmcHpsZXo2dGR5czMKQEAgLTExMSw5ICsxMTEsNiBAQCBvc19tZW1fYWxsb2Nf bGFyZ2UoCiAJCW9zX2Zhc3RfbXV0ZXhfbG9jaygmdXRfbGlzdF9tdXRleCk7CiAJCXV0X3RvdGFs X2FsbG9jYXRlZF9tZW1vcnkgKz0gc2l6ZTsKIAkJb3NfZmFzdF9tdXRleF91bmxvY2soJnV0X2xp c3RfbXV0ZXgpOwotIyBpZmRlZiBVTklWX1NFVF9NRU1fVE9fWkVSTwotCQltZW1zZXQocHRyLCAn XDAnLCBzaXplKTsKLSMgZW5kaWYKIAkJVU5JVl9NRU1fQUxMT0MocHRyLCBzaXplKTsKIAkJcmV0 dXJuKHB0cik7CiAJfQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvdXQvdXQw bWVtLmNjJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3V0L3V0MG1lbS5jYwlyZXZpZDphbm5hbWFs YWkuZ3VydXNhbWlAb3JhY2xlLmNvbS0yMDExMTIyODA4MzcwOC14Zzc3ZG94dHZzdXJhOHQ5Cisr KyBiL3N0b3JhZ2UvaW5ub2Jhc2UvdXQvdXQwbWVtLmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFj bGUuY29tLTIwMTExMjI4MTA0MDU1LTdodGxmcHpsZXo2dGR5czMKQEAgLTg5LDE3ICs4OSwxMyBA QCB1dF9tZW1faW5pdCh2b2lkKQogI2VuZGlmIC8qICFVTklWX0hPVEJBQ0tVUCAqLwogCiAvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8vKioKLUFsbG9jYXRlcyBtZW1vcnkuIFNldHMgaXQgYWxzbyB0byB6ZXJvIGlm IFVOSVZfU0VUX01FTV9UT19aRVJPIGlzCi1kZWZpbmVkIGFuZCBzZXRfdG9femVybyBpcyBUUlVF LgorQWxsb2NhdGVzIG1lbW9yeS4KIEByZXR1cm4Jb3duOiBhbGxvY2F0ZWQgbWVtb3J5ICovCiBV TklWX0lOVEVSTgogdm9pZCoKIHV0X21hbGxvY19sb3coCiAvKj09PT09PT09PT0qLwogCXVsaW50 CW4sCQkvKiE8IGluOiBudW1iZXIgb2YgYnl0ZXMgdG8gYWxsb2NhdGUgKi8KLQlpYm9vbAlzZXRf dG9femVybywJLyohPCBpbjogVFJVRSBpZiBhbGxvY2F0ZWQgbWVtb3J5IHNob3VsZCBiZQotCQkJ CXNldCB0byB6ZXJvIGlmIFVOSVZfU0VUX01FTV9UT19aRVJPIGlzCi0JCQkJZGVmaW5lZCAqLwog CWlib29sCWFzc2VydF9vbl9lcnJvcikvKiE8IGluOiBpZiBUUlVFLCB3ZSBjcmFzaCBteXNxbGQg aWYgdGhlCiAJCQkJbWVtb3J5IGNhbm5vdCBiZSBhbGxvY2F0ZWQgKi8KIHsKQEAgLTExMSwxMiAr MTA3LDYgQEAgdXRfbWFsbG9jX2xvdygKIAkJcmV0ID0gbWFsbG9jKG4pOwogCQl1dF9hKHJldCB8 fCAhYXNzZXJ0X29uX2Vycm9yKTsKIAotI2lmZGVmIFVOSVZfU0VUX01FTV9UT19aRVJPCi0JCWlm IChzZXRfdG9femVybykgewotCQkJbWVtc2V0KHJldCwgJ1wwJywgbik7Ci0JCQlVTklWX01FTV9B TExPQyhyZXQsIG4pOwotCQl9Ci0jZW5kaWYKIAkJcmV0dXJuKHJldCk7CiAJfQogCkBAIC0xOTgs MTIgKzE4OCw2IEBAIHJldHJ5OgogCQl9CiAJfQogCi0JaWYgKHNldF90b196ZXJvKSB7Ci0jaWZk ZWYgVU5JVl9TRVRfTUVNX1RPX1pFUk8KLQkJbWVtc2V0KHJldCwgJ1wwJywgbiArIHNpemVvZih1 dF9tZW1fYmxvY2tfdCkpOwotI2VuZGlmCi0JfQotCiAJVU5JVl9NRU1fQUxMT0MocmV0LCBuICsg c2l6ZW9mKHV0X21lbV9ibG9ja190KSk7CiAKIAkoKHV0X21lbV9ibG9ja190KikgcmV0KS0+c2l6 ZSA9IG4gKyBzaXplb2YodXRfbWVtX2Jsb2NrX3QpOwpAQCAtMjIwLDc2ICsyMDQsMTEgQEAgcmV0 cnk6CiAJdm9pZCoJcmV0ID0gbWFsbG9jKG4pOwogCXV0X2EocmV0IHx8ICFhc3NlcnRfb25fZXJy b3IpOwogCi0jIGlmZGVmIFVOSVZfU0VUX01FTV9UT19aRVJPCi0JaWYgKHNldF90b196ZXJvKSB7 Ci0JCW1lbXNldChyZXQsICdcMCcsIG4pOwotCQlVTklWX01FTV9BTExPQyhyZXQsIG4pOwotCX0K LSMgZW5kaWYKIAlyZXR1cm4ocmV0KTsKICNlbmRpZiAvKiAhVU5JVl9IT1RCQUNLVVAgKi8KIH0K IAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovLyoqCi1BbGxvY2F0ZXMgbWVtb3J5LiBTZXRzIGl0IGFsc28gdG8g emVybyBpZiBVTklWX1NFVF9NRU1fVE9fWkVSTyBpcwotZGVmaW5lZC4KLUByZXR1cm4Jb3duOiBh bGxvY2F0ZWQgbWVtb3J5ICovCi1VTklWX0lOVEVSTgotdm9pZCoKLXV0X21hbGxvYygKLS8qPT09 PT09Ki8KLQl1bGludAluKQkvKiE8IGluOiBudW1iZXIgb2YgYnl0ZXMgdG8gYWxsb2NhdGUgKi8K LXsKLSNpZm5kZWYgVU5JVl9IT1RCQUNLVVAKLQlyZXR1cm4odXRfbWFsbG9jX2xvdyhuLCBUUlVF LCBUUlVFKSk7Ci0jZWxzZSAvKiAhVU5JVl9IT1RCQUNLVVAgKi8KLQlyZXR1cm4obWFsbG9jKG4p KTsKLSNlbmRpZiAvKiAhVU5JVl9IT1RCQUNLVVAgKi8KLX0KLQotI2lmbmRlZiBVTklWX0hPVEJB Q0tVUAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovLyoqCi1UZXN0cyBpZiBtYWxsb2Mgb2YgbiBieXRlcyB3b3Vs ZCBzdWNjZWVkLiB1dF9tYWxsb2MoKSBhc3NlcnRzIGlmIG1lbW9yeSBydW5zCi1vdXQuIEl0IGNh bm5vdCBiZSB1c2VkIGlmIHdlIHdhbnQgdG8gcmV0dXJuIGFuIGVycm9yIG1lc3NhZ2UuIFByaW50 cyB0bwotc3RkZXJyIGEgbWVzc2FnZSBpZiBmYWlscy4KLUByZXR1cm4JVFJVRSBpZiBzdWNjZWVk ZWQgKi8KLVVOSVZfSU5URVJOCi1pYm9vbAotdXRfdGVzdF9tYWxsb2MoCi0vKj09PT09PT09PT09 Ki8KLQl1bGludAluKQkvKiE8IGluOiB0cnkgdG8gYWxsb2NhdGUgdGhpcyBtYW55IGJ5dGVzICov Ci17Ci0Jdm9pZCoJcmV0OwotCi0JcmV0ID0gbWFsbG9jKG4pOwotCi0JaWYgKHJldCA9PSBOVUxM KSB7Ci0JCXV0X3ByaW50X3RpbWVzdGFtcChzdGRlcnIpOwotCQlmcHJpbnRmKHN0ZGVyciwKLQkJ CSIgIElubm9EQjogRXJyb3I6IGNhbm5vdCBhbGxvY2F0ZSIKLQkJCSIgJWx1IGJ5dGVzIG9mIG1l bW9yeSBmb3JcbiIKLQkJCSJJbm5vREI6IGEgQkxPQiB3aXRoIG1hbGxvYyEgVG90YWwgYWxsb2Nh dGVkIG1lbW9yeVxuIgotCQkJIklubm9EQjogYnkgSW5ub0RCICVsdSBieXRlcy4iCi0JCQkiIE9w ZXJhdGluZyBzeXN0ZW0gZXJybm86ICVkXG4iCi0JCQkiSW5ub0RCOiBDaGVjayBpZiB5b3Ugc2hv dWxkIGluY3JlYXNlIgotCQkJIiB0aGUgc3dhcCBmaWxlIG9yXG4iCi0JCQkiSW5ub0RCOiB1bGlt aXRzIG9mIHlvdXIgb3BlcmF0aW5nIHN5c3RlbS5cbiIKLQkJCSJJbm5vREI6IE9uIEZyZWVCU0Qg Y2hlY2sgeW91IGhhdmUiCi0JCQkiIGNvbXBpbGVkIHRoZSBPUyB3aXRoXG4iCi0JCQkiSW5ub0RC OiBhIGJpZyBlbm91Z2ggbWF4aW11bSBwcm9jZXNzIHNpemUuXG4iLAotCQkJKHVsb25nKSBuLAot CQkJKHVsb25nKSB1dF90b3RhbF9hbGxvY2F0ZWRfbWVtb3J5LAotCQkJKGludCkgZXJybm8pOwot CQlyZXR1cm4oRkFMU0UpOwotCX0KLQotCWZyZWUocmV0KTsKLQotCXJldHVybihUUlVFKTsKLX0K LSNlbmRpZiAvKiAhVU5JVl9IT1RCQUNLVVAgKi8KLQotLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBGcmVl cyBhIG1lbW9yeSBibG9jayBhbGxvY2F0ZWQgd2l0aCB1dF9tYWxsb2MuIEZyZWVpbmcgYSBOVUxM IHBvaW50ZXIgaXMKIGEgbm9wLiAqLwogVU5JVl9JTlRFUk4KCk5vIGJ1bmRsZSAocmVhc29uOiB1 c2VsZXNzIGZvciBwdXNoIGVtYWlscyku