From: marko.makela Date: March 22 2011 12:35pm Subject: bzr commit into mysql-trunk-innodb branch (marko.makela:3549) List-Archive: http://lists.mysql.com/commits/133513 Message-Id: <201103221235.p2MCZvLK027683@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2032556387==" --===============2032556387== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline I0F0IGZpbGU6Ly8vaG9tZS9tYXJrby9pbm5vYmFzZS9kZXYvbXlzcWwyYS81LjYtaW5ub2RiLyBi YXNlZCBvbiByZXZpZDprZXZpbi5sZXdpc0BvcmFjbGUuY29tLTIwMTEwMzE4MTU0ODE0LWtqeGkw bGtpc3NzeG0ybXcKCiAzNTQ5IE1hcmtvIE3DpGtlbMOkCTIwMTEtMDMtMjIgW21lcmdlXQogICAg ICBNZXJnZSBteXNxbC01LjUtaW5ub2RiIHRvIG15c3FsLXRydW5rLWlubm9kYi4KCiAgICBtb2Rp ZmllZDoKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J0cjBwY3VyLmgKICAgICAgc3Rv cmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J0cjBwY3VyLmljCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uv aW5jbHVkZS9wYWdlMHBhZ2UuaAogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcmVtMHJl Yy5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yZW0wcmVjLmljCiAgICAgIHN0b3Jh Z2UvaW5ub2Jhc2UvaW5jbHVkZS9zcnYwc3J2LmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNs dWRlL3RocjBsb2MuaAogICAgICBzdG9yYWdlL2lubm9iYXNlL3BhZ2UvcGFnZTBwYWdlLmMKICAg ICAgc3RvcmFnZS9pbm5vYmFzZS9zcnYvc3J2MHNydi5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uv dGhyL3RocjBsb2MuYwo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRl L2J0cjBwY3VyLmgnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIwcGN1ci5oCXJl dmlkOmtldmluLmxld2lzQG9yYWNsZS5jb20tMjAxMTAzMTgxNTQ4MTQta2p4aTBsa2lzc3N4bTJt dworKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvYnRyMHBjdXIuaAlyZXZpZDptYXJrby5t YWtlbGFAb3JhY2xlLmNvbS0yMDExMDMyMjEyMzQxNi02NjdqajR3MmswOGk5cGZwCkBAIC0xNTEs NyArMTUxLDcgQEAgVU5JVl9JTkxJTkUKIHVsaW50CiBidHJfcGN1cl9nZXRfdXBfbWF0Y2goCiAv Kj09PT09PT09PT09PT09PT09PSovCi0JYnRyX3BjdXJfdCoJY3Vyc29yKTsgLyohPCBpbjogbWVt b3J5IGJ1ZmZlciBmb3IgcGVyc2lzdGVudCBjdXJzb3IgKi8KKwljb25zdCBidHJfcGN1cl90Kglj dXJzb3IpOyAvKiE8IGluOiBwZXJzaXN0ZW50IGN1cnNvciAqLwogLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogR2V0cyB0 aGUgbG93X21hdGNoIHZhbHVlIGZvciBhIHBjdXIgYWZ0ZXIgYSBzZWFyY2guCiBAcmV0dXJuIG51 bWJlciBvZiBtYXRjaGVkIGZpZWxkcyBhdCB0aGUgY3Vyc29yIG9yIHRvIHRoZSByaWdodCBpZgpA QCAtMTYwLDcgKzE2MCw3IEBAIFVOSVZfSU5MSU5FCiB1bGludAogYnRyX3BjdXJfZ2V0X2xvd19t YXRjaCgKIC8qPT09PT09PT09PT09PT09PT09PSovCi0JYnRyX3BjdXJfdCoJY3Vyc29yKTsgLyoh PCBpbjogbWVtb3J5IGJ1ZmZlciBmb3IgcGVyc2lzdGVudCBjdXJzb3IgKi8KKwljb25zdCBidHJf cGN1cl90KgljdXJzb3IpOyAvKiE8IGluOiBwZXJzaXN0ZW50IGN1cnNvciAqLwogLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8q KgogSWYgbW9kZSBpcyBQQUdFX0NVUl9HIG9yIFBBR0VfQ1VSX0dFLCBvcGVucyBhIHBlcnNpc3Rl bnQgY3Vyc29yIG9uIHRoZSBmaXJzdAogdXNlciByZWNvcmQgc2F0aXNmeWluZyB0aGUgc2VhcmNo IGNvbmRpdGlvbiwgaW4gdGhlIGNhc2UgUEFHRV9DVVJfTCBvcgpAQCAtMjY1LDIyICsyNjUsNiBA QCB1bGludAogYnRyX3BjdXJfZ2V0X3JlbF9wb3MoCiAvKj09PT09PT09PT09PT09PT09Ki8KIAlj b25zdCBidHJfcGN1cl90KgljdXJzb3IpOy8qITwgaW46IHBlcnNpc3RlbnQgY3Vyc29yICovCi0v KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ly8qKgotU2V0cyB0aGUgbXRyIGZpZWxkIGZvciBhIHBjdXIuICovCi1VTklWX0lOTElORQotdm9p ZAotYnRyX3BjdXJfc2V0X210cigKLS8qPT09PT09PT09PT09PSovCi0JYnRyX3BjdXJfdCoJY3Vy c29yLAkvKiE8IGluOiBwZXJzaXN0ZW50IGN1cnNvciAqLwotCW10cl90KgkJbXRyKTsJLyohPCBp biwgb3duOiBtdHIgKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovLyoqCi1HZXRzIHRoZSBtdHIgZmllbGQgZm9yIGEgcGN1ci4KLUBy ZXR1cm4JbXRyICovCi1VTklWX0lOTElORQotbXRyX3QqCi1idHJfcGN1cl9nZXRfbXRyKAotLyo9 PT09PT09PT09PT09Ki8KLQlidHJfcGN1cl90KgljdXJzb3IpOwkvKiE8IGluOiBwZXJzaXN0ZW50 IGN1cnNvciAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLy8qKgogQ29tbWl0cyB0aGUgbXRyIGFuZCBzZXRzIHRoZSBwY3Vy IGxhdGNoIG1vZGUgdG8gQlRSX05PX0xBVENIRVMsCiB0aGF0IGlzLCB0aGUgY3Vyc29yIGJlY29t ZXMgZGV0YWNoZWQuIElmIHRoZXJlIGhhdmUgYmVlbiBtb2RpZmljYXRpb25zCkBAIC0zODgsMTAg KzM3Miw2IEBAIHBhZ2VfY3VyX3QqCiBidHJfcGN1cl9nZXRfcGFnZV9jdXIoCiAvKj09PT09PT09 PT09PT09PT09PSovCiAJY29uc3QgYnRyX3BjdXJfdCoJY3Vyc29yKTsJLyohPCBpbjogcGVyc2lz dGVudCBjdXJzb3IgKi8KLSNlbHNlIC8qIFVOSVZfREVCVUcgKi8KLSMgZGVmaW5lIGJ0cl9wY3Vy X2dldF9idHJfY3VyKGN1cnNvcikgKCYoY3Vyc29yKS0+YnRyX2N1cikKLSMgZGVmaW5lIGJ0cl9w Y3VyX2dldF9wYWdlX2N1cihjdXJzb3IpICgmKGN1cnNvciktPmJ0cl9jdXIucGFnZV9jdXIpCi0j ZW5kaWYgLyogVU5JVl9ERUJVRyAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFJldHVybnMgdGhlIHBhZ2Ugb2YgYSBwZXJz aXN0ZW50IGN1cnNvci4KIEByZXR1cm4JcG9pbnRlciB0byB0aGUgcGFnZSAqLwpAQCAtMzk5LDcg KzM3OSw3IEBAIFVOSVZfSU5MSU5FCiBwYWdlX3QqCiBidHJfcGN1cl9nZXRfcGFnZSgKIC8qPT09 PT09PT09PT09PT0qLwotCWJ0cl9wY3VyX3QqCWN1cnNvcik7LyohPCBpbjogcGVyc2lzdGVudCBj dXJzb3IgKi8KKwljb25zdCBidHJfcGN1cl90KgljdXJzb3IpOy8qITwgaW46IHBlcnNpc3RlbnQg Y3Vyc29yICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLy8qKgogUmV0dXJucyB0aGUgYnVmZmVyIGJsb2NrIG9mIGEgcGVyc2lzdGVu dCBjdXJzb3IuCiBAcmV0dXJuCXBvaW50ZXIgdG8gdGhlIGJsb2NrICovCkBAIC00MDcsNyArMzg3 LDcgQEAgVU5JVl9JTkxJTkUKIGJ1Zl9ibG9ja190KgogYnRyX3BjdXJfZ2V0X2Jsb2NrKAogLyo9 PT09PT09PT09PT09PT0qLwotCWJ0cl9wY3VyX3QqCWN1cnNvcik7LyohPCBpbjogcGVyc2lzdGVu dCBjdXJzb3IgKi8KKwljb25zdCBidHJfcGN1cl90KgljdXJzb3IpOy8qITwgaW46IHBlcnNpc3Rl bnQgY3Vyc29yICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLy8qKgogUmV0dXJucyB0aGUgcmVjb3JkIG9mIGEgcGVyc2lzdGVudCBj dXJzb3IuCiBAcmV0dXJuCXBvaW50ZXIgdG8gdGhlIHJlY29yZCAqLwpAQCAtNDE1LDcgKzM5NSwx NCBAQCBVTklWX0lOTElORQogcmVjX3QqCiBidHJfcGN1cl9nZXRfcmVjKAogLyo9PT09PT09PT09 PT09Ki8KLQlidHJfcGN1cl90KgljdXJzb3IpOy8qITwgaW46IHBlcnNpc3RlbnQgY3Vyc29yICov CisJY29uc3QgYnRyX3BjdXJfdCoJY3Vyc29yKTsvKiE8IGluOiBwZXJzaXN0ZW50IGN1cnNvciAq LworI2Vsc2UgLyogVU5JVl9ERUJVRyAqLworIyBkZWZpbmUgYnRyX3BjdXJfZ2V0X2J0cl9jdXIo Y3Vyc29yKSAoJihjdXJzb3IpLT5idHJfY3VyKQorIyBkZWZpbmUgYnRyX3BjdXJfZ2V0X3BhZ2Vf Y3VyKGN1cnNvcikgKCYoY3Vyc29yKS0+YnRyX2N1ci5wYWdlX2N1cikKKyMgZGVmaW5lIGJ0cl9w Y3VyX2dldF9wYWdlKGN1cnNvcikgKChjdXJzb3IpLT5idHJfY3VyLnBhZ2VfY3VyLmJsb2NrLT5m cmFtZSkKKyMgZGVmaW5lIGJ0cl9wY3VyX2dldF9ibG9jayhjdXJzb3IpICgoY3Vyc29yKS0+YnRy X2N1ci5wYWdlX2N1ci5ibG9jaykKKyMgZGVmaW5lIGJ0cl9wY3VyX2dldF9yZWMoY3Vyc29yKSAo KGN1cnNvciktPmJ0cl9jdXIucGFnZV9jdXIucmVjKQorI2VuZGlmIC8qIFVOSVZfREVCVUcgKi8K IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovLyoqCiBDaGVja3MgaWYgdGhlIHBlcnNpc3RlbnQgY3Vyc29yIGlzIG9uIGEgdXNlciByZWNv cmQuICovCiBVTklWX0lOTElORQpAQCAtNTE4LDkgKzUwNSw2IEBAIHN0cnVjdCBidHJfcGN1cl9z dHJ1Y3R7CiAJLyogTk9URSB0aGF0IHRoZSBmb2xsb3dpbmcgZmllbGRzIG1heSBwb3NzZXNzIGR5 bmFtaWNhbGx5IGFsbG9jYXRlZAogCW1lbW9yeSB3aGljaCBzaG91bGQgYmUgZnJlZWQgaWYgbm90 IG5lZWRlZCBhbnltb3JlISAqLwogCi0JbXRyX3QqCQltdHI7CQkvKiE8IE5VTEwsIG9yIHRoaXMg ZmllbGQgbWF5IGNvbnRhaW4KLQkJCQkJYSBtaW5pLXRyYW5zYWN0aW9uIHdoaWNoIGhvbGRzIHRo ZQotCQkJCQlsYXRjaCBvbiB0aGUgY3Vyc29yIHBhZ2UgKi8KIAlieXRlKgkJb2xkX3JlY19idWY7 CS8qITwgTlVMTCwgb3IgYSBkeW5hbWljYWxseSBhbGxvY2F0ZWQKIAkJCQkJYnVmZmVyIGZvciBv bGRfcmVjICovCiAJdWxpbnQJCWJ1Zl9zaXplOwkvKiE8IG9sZF9yZWNfYnVmIHNpemUgaWYgb2xk X3JlY19idWYKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvYnRy MHBjdXIuaWMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIwcGN1ci5pYwlyZXZp ZDprZXZpbi5sZXdpc0BvcmFjbGUuY29tLTIwMTEwMzE4MTU0ODE0LWtqeGkwbGtpc3NzeG0ybXcK KysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J0cjBwY3VyLmljCXJldmlkOm1hcmtvLm1h a2VsYUBvcmFjbGUuY29tLTIwMTEwMzIyMTIzNDE2LTY2N2pqNHcyazA4aTlwZnAKQEAgLTQyLDM0 ICs0Miw2IEBAIGJ0cl9wY3VyX2dldF9yZWxfcG9zKAogCXJldHVybihjdXJzb3ItPnJlbF9wb3Mp OwogfQogCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLy8qKgotU2V0cyB0aGUgbXRyIGZpZWxkIGZvciBhIHBjdXIuICovCi1VTklWX0lO TElORQotdm9pZAotYnRyX3BjdXJfc2V0X210cigKLS8qPT09PT09PT09PT09PSovCi0JYnRyX3Bj dXJfdCoJY3Vyc29yLAkvKiE8IGluOiBwZXJzaXN0ZW50IGN1cnNvciAqLwotCW10cl90KgkJbXRy KQkvKiE8IGluLCBvd246IG10ciAqLwotewotCXV0X2FkKGN1cnNvcik7Ci0KLQljdXJzb3ItPm10 ciA9IG10cjsKLX0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8vKioKLUdldHMgdGhlIG10ciBmaWVsZCBmb3IgYSBwY3VyLgotQHJl dHVybgltdHIgKi8KLVVOSVZfSU5MSU5FCi1tdHJfdCoKLWJ0cl9wY3VyX2dldF9tdHIoCi0vKj09 PT09PT09PT09PT0qLwotCWJ0cl9wY3VyX3QqCWN1cnNvcikJLyohPCBpbjogcGVyc2lzdGVudCBj dXJzb3IgKi8KLXsKLQl1dF9hZChjdXJzb3IpOwotCi0JcmV0dXJuKGN1cnNvci0+bXRyKTsKLX0K LQogI2lmZGVmIFVOSVZfREVCVUcKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBSZXR1cm5zIHRoZSBidHIgY3Vyc29yIGNvbXBv bmVudCBvZiBhIHBlcnNpc3RlbnQgY3Vyc29yLgpAQCAtOTUsNyArNjcsNyBAQCBidHJfcGN1cl9n ZXRfcGFnZV9jdXIoCiB7CiAJcmV0dXJuKGJ0cl9jdXJfZ2V0X3BhZ2VfY3VyKGJ0cl9wY3VyX2dl dF9idHJfY3VyKGN1cnNvcikpKTsKIH0KLSNlbmRpZiAvKiBVTklWX0RFQlVHICovCisKIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoq CiBSZXR1cm5zIHRoZSBwYWdlIG9mIGEgcGVyc2lzdGVudCBjdXJzb3IuCiBAcmV0dXJuCXBvaW50 ZXIgdG8gdGhlIHBhZ2UgKi8KQEAgLTEwMyw3ICs3NSw3IEBAIFVOSVZfSU5MSU5FCiBwYWdlX3Qq CiBidHJfcGN1cl9nZXRfcGFnZSgKIC8qPT09PT09PT09PT09PT0qLwotCWJ0cl9wY3VyX3QqCWN1 cnNvcikJLyohPCBpbjogcGVyc2lzdGVudCBjdXJzb3IgKi8KKwljb25zdCBidHJfcGN1cl90Kglj dXJzb3IpCS8qITwgaW46IHBlcnNpc3RlbnQgY3Vyc29yICovCiB7CiAJdXRfYWQoY3Vyc29yLT5w b3Nfc3RhdGUgPT0gQlRSX1BDVVJfSVNfUE9TSVRJT05FRCk7CiAKQEAgLTExNyw3ICs4OSw3IEBA IFVOSVZfSU5MSU5FCiBidWZfYmxvY2tfdCoKIGJ0cl9wY3VyX2dldF9ibG9jaygKIC8qPT09PT09 PT09PT09PT09Ki8KLQlidHJfcGN1cl90KgljdXJzb3IpCS8qITwgaW46IHBlcnNpc3RlbnQgY3Vy c29yICovCisJY29uc3QgYnRyX3BjdXJfdCoJY3Vyc29yKQkvKiE8IGluOiBwZXJzaXN0ZW50IGN1 cnNvciAqLwogewogCXV0X2FkKGN1cnNvci0+cG9zX3N0YXRlID09IEJUUl9QQ1VSX0lTX1BPU0lU SU9ORUQpOwogCkBAIC0xMzEsMTMgKzEwMywxNCBAQCBVTklWX0lOTElORQogcmVjX3QqCiBidHJf cGN1cl9nZXRfcmVjKAogLyo9PT09PT09PT09PT09Ki8KLQlidHJfcGN1cl90KgljdXJzb3IpCS8q ITwgaW46IHBlcnNpc3RlbnQgY3Vyc29yICovCisJY29uc3QgYnRyX3BjdXJfdCoJY3Vyc29yKQkv KiE8IGluOiBwZXJzaXN0ZW50IGN1cnNvciAqLwogewogCXV0X2FkKGN1cnNvci0+cG9zX3N0YXRl ID09IEJUUl9QQ1VSX0lTX1BPU0lUSU9ORUQpOwogCXV0X2FkKGN1cnNvci0+bGF0Y2hfbW9kZSAh PSBCVFJfTk9fTEFUQ0hFUyk7CiAKIAlyZXR1cm4oYnRyX2N1cl9nZXRfcmVjKGJ0cl9wY3VyX2dl dF9idHJfY3VyKGN1cnNvcikpKTsKIH0KKyNlbmRpZiAvKiBVTklWX0RFQlVHICovCiAKIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8vKioKIEdldHMgdGhlIHVwX21hdGNoIHZhbHVlIGZvciBhIHBjdXIgYWZ0ZXIgYSBzZWFyY2gu CkBAIC0xNDcsOSArMTIwLDkgQEAgVU5JVl9JTkxJTkUKIHVsaW50CiBidHJfcGN1cl9nZXRfdXBf bWF0Y2goCiAvKj09PT09PT09PT09PT09PT09PSovCi0JYnRyX3BjdXJfdCoJY3Vyc29yKSAvKiE8 IGluOiBtZW1vcnkgYnVmZmVyIGZvciBwZXJzaXN0ZW50IGN1cnNvciAqLworCWNvbnN0IGJ0cl9w Y3VyX3QqCWN1cnNvcikgLyohPCBpbjogcGVyc2lzdGVudCBjdXJzb3IgKi8KIHsKLQlidHJfY3Vy X3QqCWJ0cl9jdXJzb3I7CisJY29uc3QgYnRyX2N1cl90KglidHJfY3Vyc29yOwogCiAJdXRfYWQo KGN1cnNvci0+cG9zX3N0YXRlID09IEJUUl9QQ1VSX1dBU19QT1NJVElPTkVEKQogCSAgICAgIHx8 IChjdXJzb3ItPnBvc19zdGF0ZSA9PSBCVFJfUENVUl9JU19QT1NJVElPTkVEKSk7CkBAIC0xNjks OSArMTQyLDkgQEAgVU5JVl9JTkxJTkUKIHVsaW50CiBidHJfcGN1cl9nZXRfbG93X21hdGNoKAog Lyo9PT09PT09PT09PT09PT09PT09Ki8KLQlidHJfcGN1cl90KgljdXJzb3IpIC8qITwgaW46IG1l bW9yeSBidWZmZXIgZm9yIHBlcnNpc3RlbnQgY3Vyc29yICovCisJY29uc3QgYnRyX3BjdXJfdCoJ Y3Vyc29yKSAvKiE8IGluOiBwZXJzaXN0ZW50IGN1cnNvciAqLwogewotCWJ0cl9jdXJfdCoJYnRy X2N1cnNvcjsKKwljb25zdCBidHJfY3VyX3QqCWJ0cl9jdXJzb3I7CiAKIAl1dF9hZCgoY3Vyc29y LT5wb3Nfc3RhdGUgPT0gQlRSX1BDVVJfV0FTX1BPU0lUSU9ORUQpCiAJICAgICAgfHwgKGN1cnNv ci0+cG9zX3N0YXRlID09IEJUUl9QQ1VSX0lTX1BPU0lUSU9ORUQpKTsKCj09PSBtb2RpZmllZCBm aWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcGFnZTBwYWdlLmgnCi0tLSBhL3N0b3JhZ2Uv aW5ub2Jhc2UvaW5jbHVkZS9wYWdlMHBhZ2UuaAlyZXZpZDprZXZpbi5sZXdpc0BvcmFjbGUuY29t LTIwMTEwMzE4MTU0ODE0LWtqeGkwbGtpc3NzeG0ybXcKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9p bmNsdWRlL3BhZ2UwcGFnZS5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwMzIy MTIzNDE2LTY2N2pqNHcyazA4aTlwZnAKQEAgLTk1Miw3ICs5NTIsNyBAQCBVTklWX0lOVEVSTgog aWJvb2wKIHBhZ2VfcmVjX3ZhbGlkYXRlKAogLyo9PT09PT09PT09PT09PSovCi0JcmVjX3QqCQly ZWMsCS8qITwgaW46IHBoeXNpY2FsIHJlY29yZCAqLworCWNvbnN0IHJlY190KglyZWMsCS8qITwg aW46IHBoeXNpY2FsIHJlY29yZCAqLwogCWNvbnN0IHVsaW50KglvZmZzZXRzKTsvKiE8IGluOiBh cnJheSByZXR1cm5lZCBieSByZWNfZ2V0X29mZnNldHMoKSAqLwogLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIENoZWNr cyB0aGF0IHRoZSBmaXJzdCBkaXJlY3Rvcnkgc2xvdCBwb2ludHMgdG8gdGhlIGluZmltdW0gcmVj b3JkIGFuZApAQCAtOTcyLDcgKzk3Miw3IEBAIFVOSVZfSU5URVJOCiBpYm9vbAogcGFnZV9zaW1w bGVfdmFsaWRhdGVfb2xkKAogLyo9PT09PT09PT09PT09PT09PT09PT0qLwotCXBhZ2VfdCoJcGFn ZSk7CS8qITwgaW46IG9sZC1zdHlsZSBpbmRleCBwYWdlICovCisJY29uc3QgcGFnZV90KglwYWdl KTsJLyohPCBpbjogaW5kZXggcGFnZSBpbiBST1dfRk9STUFUPVJFRFVOREFOVCAqLwogLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8vKioKIFRoaXMgZnVuY3Rpb24gY2hlY2tzIHRoZSBjb25zaXN0ZW5jeSBvZiBhbiBpbmRleCBw YWdlIHdoZW4gd2UgZG8gbm90CiBrbm93IHRoZSBpbmRleC4gVGhpcyBpcyBhbHNvIHJlc2lsaWVu dCBzbyB0aGF0IHRoaXMgc2hvdWxkIG5ldmVyIGNyYXNoCkBAIC05ODIsNyArOTgyLDcgQEAgVU5J Vl9JTlRFUk4KIGlib29sCiBwYWdlX3NpbXBsZV92YWxpZGF0ZV9uZXcoCiAvKj09PT09PT09PT09 PT09PT09PT09PSovCi0JcGFnZV90KglibG9jayk7CS8qITwgaW46IG5ldy1zdHlsZSBpbmRleCBw YWdlICovCisJY29uc3QgcGFnZV90KglwYWdlKTsJLyohPCBpbjogaW5kZXggcGFnZSBpbiBST1df Rk9STUFUIT1SRURVTkRBTlQgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyB0 aGUgY29uc2lzdGVuY3kgb2YgYW4gaW5kZXggcGFnZS4KIEByZXR1cm4JVFJVRSBpZiBvayAqLwpA QCAtOTkwLDcgKzk5MCw3IEBAIFVOSVZfSU5URVJOCiBpYm9vbAogcGFnZV92YWxpZGF0ZSgKIC8q PT09PT09PT09PSovCi0JcGFnZV90KgkJcGFnZSwJLyohPCBpbjogaW5kZXggcGFnZSAqLworCWNv bnN0IHBhZ2VfdCoJcGFnZSwJLyohPCBpbjogaW5kZXggcGFnZSAqLwogCWRpY3RfaW5kZXhfdCoJ aW5kZXgpOwkvKiE8IGluOiBkYXRhIGRpY3Rpb25hcnkgaW5kZXggY29udGFpbmluZwogCQkJCXRo ZSBwYWdlIHJlY29yZCB0eXBlIGRlZmluaXRpb24gKi8KIC8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCgo9PT0gbW9kaWZp ZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JlbTByZWMuaCcKLS0tIGEvc3RvcmFn ZS9pbm5vYmFzZS9pbmNsdWRlL3JlbTByZWMuaAlyZXZpZDprZXZpbi5sZXdpc0BvcmFjbGUuY29t LTIwMTEwMzE4MTU0ODE0LWtqeGkwbGtpc3NzeG0ybXcKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9p bmNsdWRlL3JlbTByZWMuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDMyMjEy MzQxNi02NjdqajR3MmswOGk5cGZwCkBAIC02MDAsNiArNjAwLDcgQEAgdWxpbnQKIHJlY19vZmZz X3NpemUoCiAvKj09PT09PT09PT0qLwogCWNvbnN0IHVsaW50KglvZmZzZXRzKTsvKiE8IGluOiBh cnJheSByZXR1cm5lZCBieSByZWNfZ2V0X29mZnNldHMoKSAqLworI2lmZGVmIFVOSVZfREVCVUcK IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLy8qKgogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIHN0YXJ0IG9mIHRoZSByZWNvcmQuCiBA cmV0dXJuCXBvaW50ZXIgdG8gc3RhcnQgKi8KQEAgLTYwNyw3ICs2MDgsNyBAQCBVTklWX0lOTElO RQogYnl0ZSoKIHJlY19nZXRfc3RhcnQoCiAvKj09PT09PT09PT0qLwotCXJlY190KgkJcmVjLAkv KiE8IGluOiBwb2ludGVyIHRvIHJlY29yZCAqLworCWNvbnN0IHJlY190KglyZWMsCS8qITwgaW46 IHBvaW50ZXIgdG8gcmVjb3JkICovCiAJY29uc3QgdWxpbnQqCW9mZnNldHMpOy8qITwgaW46IGFy cmF5IHJldHVybmVkIGJ5IHJlY19nZXRfb2Zmc2V0cygpICovCiAvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFJldHVybnMgYSBw b2ludGVyIHRvIHRoZSBlbmQgb2YgdGhlIHJlY29yZC4KQEAgLTYxNiw4ICs2MTcsMTIgQEAgVU5J Vl9JTkxJTkUKIGJ5dGUqCiByZWNfZ2V0X2VuZCgKIC8qPT09PT09PT0qLwotCXJlY190KgkJcmVj LAkvKiE8IGluOiBwb2ludGVyIHRvIHJlY29yZCAqLworCWNvbnN0IHJlY190KglyZWMsCS8qITwg aW46IHBvaW50ZXIgdG8gcmVjb3JkICovCiAJY29uc3QgdWxpbnQqCW9mZnNldHMpOy8qITwgaW46 IGFycmF5IHJldHVybmVkIGJ5IHJlY19nZXRfb2Zmc2V0cygpICovCisjZWxzZSAvKiBVTklWX0RF QlVHICovCisjIGRlZmluZSByZWNfZ2V0X3N0YXJ0KHJlYywgb2Zmc2V0cykgKChyZWMpIC0gcmVj X29mZnNfZXh0cmFfc2l6ZShvZmZzZXRzKSkKKyMgZGVmaW5lIHJlY19nZXRfZW5kKHJlYywgb2Zm c2V0cykgKChyZWMpICsgcmVjX29mZnNfZGF0YV9zaXplKG9mZnNldHMpKQorI2VuZGlmIC8qIFVO SVZfREVCVUcgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovLyoqCiBDb3BpZXMgYSBwaHlzaWNhbCByZWNvcmQgdG8gYSBi dWZmZXIuCiBAcmV0dXJuCXBvaW50ZXIgdG8gdGhlIG9yaWdpbiBvZiB0aGUgY29weSAqLwoKPT09 IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yZW0wcmVjLmljJwotLS0g YS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcmVtMHJlYy5pYwlyZXZpZDprZXZpbi5sZXdpc0Bv cmFjbGUuY29tLTIwMTEwMzE4MTU0ODE0LWtqeGkwbGtpc3NzeG0ybXcKKysrIGIvc3RvcmFnZS9p bm5vYmFzZS9pbmNsdWRlL3JlbTByZWMuaWMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20t MjAxMTAzMjIxMjM0MTYtNjY3amo0dzJrMDhpOXBmcApAQCAtMTQ2Miw2ICsxNDYyLDcgQEAgcmVj X29mZnNfc2l6ZSgKIAlyZXR1cm4ocmVjX29mZnNfZGF0YV9zaXplKG9mZnNldHMpICsgcmVjX29m ZnNfZXh0cmFfc2l6ZShvZmZzZXRzKSk7CiB9CiAKKyNpZmRlZiBVTklWX0RFQlVHCiAvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioK IFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBlbmQgb2YgdGhlIHJlY29yZC4KIEByZXR1cm4JcG9p bnRlciB0byBlbmQgKi8KQEAgLTE0NjksMTEgKzE0NzAsMTEgQEAgVU5JVl9JTkxJTkUKIGJ5dGUq CiByZWNfZ2V0X2VuZCgKIC8qPT09PT09PT0qLwotCXJlY190KgkJcmVjLAkvKiE8IGluOiBwb2lu dGVyIHRvIHJlY29yZCAqLworCWNvbnN0IHJlY190KglyZWMsCS8qITwgaW46IHBvaW50ZXIgdG8g cmVjb3JkICovCiAJY29uc3QgdWxpbnQqCW9mZnNldHMpLyohPCBpbjogYXJyYXkgcmV0dXJuZWQg YnkgcmVjX2dldF9vZmZzZXRzKCkgKi8KIHsKIAl1dF9hZChyZWNfb2Zmc192YWxpZGF0ZShyZWMs IE5VTEwsIG9mZnNldHMpKTsKLQlyZXR1cm4ocmVjICsgcmVjX29mZnNfZGF0YV9zaXplKG9mZnNl dHMpKTsKKwlyZXR1cm4oKHJlY190KikgcmVjICsgcmVjX29mZnNfZGF0YV9zaXplKG9mZnNldHMp KTsKIH0KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovLyoqCkBAIC0xNDgzLDEyICsxNDg0LDEzIEBAIFVOSVZfSU5MSU5FCiBieXRl KgogcmVjX2dldF9zdGFydCgKIC8qPT09PT09PT09PSovCi0JcmVjX3QqCQlyZWMsCS8qITwgaW46 IHBvaW50ZXIgdG8gcmVjb3JkICovCisJY29uc3QgcmVjX3QqCXJlYywJLyohPCBpbjogcG9pbnRl ciB0byByZWNvcmQgKi8KIAljb25zdCB1bGludCoJb2Zmc2V0cykvKiE8IGluOiBhcnJheSByZXR1 cm5lZCBieSByZWNfZ2V0X29mZnNldHMoKSAqLwogewogCXV0X2FkKHJlY19vZmZzX3ZhbGlkYXRl KHJlYywgTlVMTCwgb2Zmc2V0cykpOwotCXJldHVybihyZWMgLSByZWNfb2Zmc19leHRyYV9zaXpl KG9mZnNldHMpKTsKKwlyZXR1cm4oKHJlY190KikgcmVjIC0gcmVjX29mZnNfZXh0cmFfc2l6ZShv ZmZzZXRzKSk7CiB9CisjZW5kaWYgLyogVU5JVl9ERUJVRyAqLwogCiAvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogQ29w aWVzIGEgcGh5c2ljYWwgcmVjb3JkIHRvIGEgYnVmZmVyLgoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0 b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9zcnYwc3J2LmgnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uv aW5jbHVkZS9zcnYwc3J2LmgJcmV2aWQ6a2V2aW4ubGV3aXNAb3JhY2xlLmNvbS0yMDExMDMxODE1 NDgxNC1ranhpMGxraXNzc3htMm13CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9zcnYw c3J2LmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTAzMjIxMjM0MTYtNjY3amo0 dzJrMDhpOXBmcApAQCAtNTc1LDI3ICs1NzUsNiBAQCBzcnZfY29uY19leGl0X2lubm9kYigKIC8q PT09PT09PT09PT09PT09PT0qLwogCXRyeF90Kgl0cngpOwkvKiE8IGluOiB0cmFuc2FjdGlvbiBv YmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZQogCQkJdGhyZWFkICovCi0vKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgotUHV0 cyBhIE15U1FMIE9TIHRocmVhZCB0byB3YWl0IGZvciBhIGxvY2sgdG8gYmUgcmVsZWFzZWQuIElm IGFuIGVycm9yCi1vY2N1cnMgZHVyaW5nIHRoZSB3YWl0IHRyeC0+ZXJyb3Jfc3RhdGUgYXNzb2Np YXRlZCB3aXRoIHRociBpcwotIT0gREJfU1VDQ0VTUyB3aGVuIHdlIHJldHVybi4gREJfTE9DS19X QUlUX1RJTUVPVVQgYW5kIERCX0RFQURMT0NLCi1hcmUgcG9zc2libGUgZXJyb3JzLiBEQl9ERUFE TE9DSyBpcyByZXR1cm5lZCBpZiBzZWxlY3RpdmUgZGVhZGxvY2sKLXJlc29sdXRpb24gY2hvc2Ug dGhpcyB0cmFuc2FjdGlvbiBhcyBhIHZpY3RpbS4gKi8KLVVOSVZfSU5URVJOCi12b2lkCi1zcnZf c3VzcGVuZF9teXNxbF90aHJlYWQoCi0vKj09PT09PT09PT09PT09PT09PT09PSovCi0JcXVlX3Ro cl90Kgl0aHIpOwkvKiE8IGluOiBxdWVyeSB0aHJlYWQgYXNzb2NpYXRlZCB3aXRoIHRoZSBNeVNR TAotCQkJCU9TIHRocmVhZCAqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgotUmVsZWFzZXMgYSBNeVNRTCBP UyB0aHJlYWQgd2FpdGluZyBmb3IgYSBsb2NrIHRvIGJlIHJlbGVhc2VkLCBpZiB0aGUKLXRocmVh ZCBpcyBhbHJlYWR5IHN1c3BlbmRlZC4gKi8KLVVOSVZfSU5URVJOCi12b2lkCi1zcnZfcmVsZWFz ZV9teXNxbF90aHJlYWRfaWZfc3VzcGVuZGVkKAotLyo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ki8KLQlxdWVfdGhyX3QqCXRocik7CS8qITwgaW46IHF1ZXJ5IHRocmVhZCBhc3Nv Y2lhdGVkIHdpdGggdGhlCi0JCQkJTXlTUUwgT1MgdGhyZWFkICovCiAvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8q KgogQSB0aHJlYWQgd2hpY2ggcHJpbnRzIHRoZSBpbmZvIG91dHB1dCBieSB2YXJpb3VzIElubm9E QiBtb25pdG9ycy4KIEByZXR1cm4JYSBkdW1teSBwYXJhbWV0ZXIgKi8KCj09PSBtb2RpZmllZCBm aWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdGhyMGxvYy5oJwotLS0gYS9zdG9yYWdlL2lu bm9iYXNlL2luY2x1ZGUvdGhyMGxvYy5oCXJldmlkOmtldmluLmxld2lzQG9yYWNsZS5jb20tMjAx MTAzMTgxNTQ4MTQta2p4aTBsa2lzc3N4bTJtdworKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1 ZGUvdGhyMGxvYy5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwMzIyMTIzNDE2 LTY2N2pqNHcyazA4aTlwZnAKQEAgLTU5LDIyICs1OSw2IEBAIHRocl9sb2NhbF9mcmVlKAogLyo9 PT09PT09PT09PSovCiAJb3NfdGhyZWFkX2lkX3QJaWQpOwkvKiE8IGluOiB0aHJlYWQgaWQgKi8K IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLy8qKgotR2V0cyB0aGUgc2xvdCBudW1iZXIgaW4gdGhlIHRocmVhZCB0YWJs ZSBvZiBhIHRocmVhZC4KLUByZXR1cm4Jc2xvdCBudW1iZXIgKi8KLVVOSVZfSU5URVJOCi11bGlu dAotdGhyX2xvY2FsX2dldF9zbG90X25vKAotLyo9PT09PT09PT09PT09PT09PT0qLwotCW9zX3Ro cmVhZF9pZF90CWlkKTsJLyohPCBpbjogdGhyZWFkIGlkIG9mIHRoZSB0aHJlYWQgKi8KLS8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLy8qKgotU2V0cyBpbiB0aGUgbG9jYWwgc3RvcmFnZSB0aGUgc2xvdCBudW1iZXIgaW4g dGhlIHRocmVhZCB0YWJsZSBvZiBhIHRocmVhZC4gKi8KLVVOSVZfSU5URVJOCi12b2lkCi10aHJf bG9jYWxfc2V0X3Nsb3Rfbm8oCi0vKj09PT09PT09PT09PT09PT09PSovCi0Jb3NfdGhyZWFkX2lk X3QJaWQsCS8qITwgaW46IHRocmVhZCBpZCBvZiB0aGUgdGhyZWFkICovCi0JdWxpbnQJCXNsb3Rf bm8pOy8qITwgaW46IHNsb3QgbnVtYmVyICovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFJldHVybnMgcG9p bnRlciB0byB0aGUgJ2luX2lidWYnIGZpZWxkIHdpdGhpbiB0aGUgY3VycmVudCB0aHJlYWQgbG9j YWwKIHN0b3JhZ2UuCiBAcmV0dXJuCXBvaW50ZXIgdG8gdGhlIGluX2lidWYgZmllbGQgKi8KCj09 PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL3BhZ2UvcGFnZTBwYWdlLmMnCi0tLSBh L3N0b3JhZ2UvaW5ub2Jhc2UvcGFnZS9wYWdlMHBhZ2UuYwlyZXZpZDprZXZpbi5sZXdpc0BvcmFj bGUuY29tLTIwMTEwMzE4MTU0ODE0LWtqeGkwbGtpc3NzeG0ybXcKKysrIGIvc3RvcmFnZS9pbm5v YmFzZS9wYWdlL3BhZ2UwcGFnZS5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEw MzIyMTIzNDE2LTY2N2pqNHcyazA4aTlwZnAKQEAgLTE2NiwxMSArMTY2LDExIEBAIHN0YXRpYwog aWJvb2wKIHBhZ2VfZGlyX3Nsb3RfY2hlY2soCiAvKj09PT09PT09PT09PT09PT0qLwotCXBhZ2Vf ZGlyX3Nsb3RfdCoJc2xvdCkJLyohPCBpbjogc2xvdCAqLworCWNvbnN0IHBhZ2VfZGlyX3Nsb3Rf dCoJc2xvdCkJLyohPCBpbjogc2xvdCAqLwogewotCXBhZ2VfdCoJcGFnZTsKLQl1bGludAluX3Ns b3RzOwotCXVsaW50CW5fb3duZWQ7CisJY29uc3QgcGFnZV90KglwYWdlOworCXVsaW50CQluX3Ns b3RzOworCXVsaW50CQluX293bmVkOwogCiAJdXRfYShzbG90KTsKIApAQCAtMTgwMywxMiArMTgw MywxMiBAQCBVTklWX0lOVEVSTgogaWJvb2wKIHBhZ2VfcmVjX3ZhbGlkYXRlKAogLyo9PT09PT09 PT09PT09PSovCi0JcmVjX3QqCQlyZWMsCS8qITwgaW46IHBoeXNpY2FsIHJlY29yZCAqLworCWNv bnN0IHJlY190KglyZWMsCS8qITwgaW46IHBoeXNpY2FsIHJlY29yZCAqLwogCWNvbnN0IHVsaW50 KglvZmZzZXRzKS8qITwgaW46IGFycmF5IHJldHVybmVkIGJ5IHJlY19nZXRfb2Zmc2V0cygpICov CiB7Ci0JdWxpbnQJbl9vd25lZDsKLQl1bGludAloZWFwX25vOwotCXBhZ2VfdCoJcGFnZTsKKwl1 bGludAkJbl9vd25lZDsKKwl1bGludAkJaGVhcF9ubzsKKwljb25zdCBwYWdlX3QqCXBhZ2U7CiAK IAlwYWdlID0gcGFnZV9hbGlnbihyZWMpOwogCXV0X2EoIXBhZ2VfaXNfY29tcChwYWdlKSA9PSAh cmVjX29mZnNfY29tcChvZmZzZXRzKSk7CkBAIC0xODg5LDE2ICsxODg5LDE2IEBAIFVOSVZfSU5U RVJOCiBpYm9vbAogcGFnZV9zaW1wbGVfdmFsaWRhdGVfb2xkKAogLyo9PT09PT09PT09PT09PT09 PT09PT0qLwotCXBhZ2VfdCoJcGFnZSkJLyohPCBpbjogb2xkLXN0eWxlIGluZGV4IHBhZ2UgKi8K Kwljb25zdCBwYWdlX3QqCXBhZ2UpCS8qITwgaW46IGluZGV4IHBhZ2UgaW4gUk9XX0ZPUk1BVD1S RURVTkRBTlQgKi8KIHsKLQlwYWdlX2Rpcl9zbG90X3QqIHNsb3Q7Ci0JdWxpbnQJCXNsb3Rfbm87 Ci0JdWxpbnQJCW5fc2xvdHM7Ci0JcmVjX3QqCQlyZWM7Ci0JYnl0ZSoJCXJlY19oZWFwX3RvcDsK LQl1bGludAkJY291bnQ7Ci0JdWxpbnQJCW93bl9jb3VudDsKLQlpYm9vbAkJcmV0CT0gRkFMU0U7 CisJY29uc3QgcGFnZV9kaXJfc2xvdF90KglzbG90OworCXVsaW50CQkJc2xvdF9ubzsKKwl1bGlu dAkJCW5fc2xvdHM7CisJY29uc3QgcmVjX3QqCQlyZWM7CisJY29uc3QgYnl0ZSoJCXJlY19oZWFw X3RvcDsKKwl1bGludAkJCWNvdW50OworCXVsaW50CQkJb3duX2NvdW50OworCWlib29sCQkJcmV0 CT0gRkFMU0U7CiAKIAl1dF9hKCFwYWdlX2lzX2NvbXAocGFnZSkpOwogCkBAIC0yMDExLDcgKzIw MTEsNyBAQCBwYWdlX3NpbXBsZV92YWxpZGF0ZV9vbGQoCiAJCQlnb3RvIGZ1bmNfZXhpdDsKIAkJ fQogCi0JCXJlYyA9IHBhZ2VfcmVjX2dldF9uZXh0KHJlYyk7CisJCXJlYyA9IHBhZ2VfcmVjX2dl dF9uZXh0X2NvbnN0KHJlYyk7CiAJCW93bl9jb3VudCsrOwogCX0KIApAQCAtMjA3Miw3ICsyMDcy LDcgQEAgcGFnZV9zaW1wbGVfdmFsaWRhdGVfb2xkKAogCQkJZ290byBmdW5jX2V4aXQ7CiAJCX0K IAotCQlyZWMgPSBwYWdlX3JlY19nZXRfbmV4dChyZWMpOworCQlyZWMgPSBwYWdlX3JlY19nZXRf bmV4dF9jb25zdChyZWMpOwogCX0KIAogCWlmIChVTklWX1VOTElLRUxZKHBhZ2VfZGlyX2dldF9u X2hlYXAocGFnZSkgIT0gY291bnQgKyAxKSkgewpAQCAtMjA5OSwxNiArMjA5OSwxNiBAQCBVTklW X0lOVEVSTgogaWJvb2wKIHBhZ2Vfc2ltcGxlX3ZhbGlkYXRlX25ldygKIC8qPT09PT09PT09PT09 PT09PT09PT09Ki8KLQlwYWdlX3QqCXBhZ2UpCS8qITwgaW46IG5ldy1zdHlsZSBpbmRleCBwYWdl ICovCisJY29uc3QgcGFnZV90KglwYWdlKQkvKiE8IGluOiBpbmRleCBwYWdlIGluIFJPV19GT1JN QVQhPVJFRFVOREFOVCAqLwogewotCXBhZ2VfZGlyX3Nsb3RfdCogc2xvdDsKLQl1bGludAkJc2xv dF9ubzsKLQl1bGludAkJbl9zbG90czsKLQlyZWNfdCoJCXJlYzsKLQlieXRlKgkJcmVjX2hlYXBf dG9wOwotCXVsaW50CQljb3VudDsKLQl1bGludAkJb3duX2NvdW50OwotCWlib29sCQlyZXQJPSBG QUxTRTsKKwljb25zdCBwYWdlX2Rpcl9zbG90X3QqCXNsb3Q7CisJdWxpbnQJCQlzbG90X25vOwor CXVsaW50CQkJbl9zbG90czsKKwljb25zdCByZWNfdCoJCXJlYzsKKwljb25zdCBieXRlKgkJcmVj X2hlYXBfdG9wOworCXVsaW50CQkJY291bnQ7CisJdWxpbnQJCQlvd25fY291bnQ7CisJaWJvb2wJ CQlyZXQJPSBGQUxTRTsKIAogCXV0X2EocGFnZV9pc19jb21wKHBhZ2UpKTsKIApAQCAtMjIyMSw3 ICsyMjIxLDcgQEAgcGFnZV9zaW1wbGVfdmFsaWRhdGVfbmV3KAogCQkJZ290byBmdW5jX2V4aXQ7 CiAJCX0KIAotCQlyZWMgPSBwYWdlX3JlY19nZXRfbmV4dChyZWMpOworCQlyZWMgPSBwYWdlX3Jl Y19nZXRfbmV4dF9jb25zdChyZWMpOwogCQlvd25fY291bnQrKzsKIAl9CiAKQEAgLTIyODMsNyAr MjI4Myw3IEBAIHBhZ2Vfc2ltcGxlX3ZhbGlkYXRlX25ldygKIAkJCWdvdG8gZnVuY19leGl0Owog CQl9CiAKLQkJcmVjID0gcGFnZV9yZWNfZ2V0X25leHQocmVjKTsKKwkJcmVjID0gcGFnZV9yZWNf Z2V0X25leHRfY29uc3QocmVjKTsKIAl9CiAKIAlpZiAoVU5JVl9VTkxJS0VMWShwYWdlX2Rpcl9n ZXRfbl9oZWFwKHBhZ2UpICE9IGNvdW50ICsgMSkpIHsKQEAgLTIzMDgsMjYgKzIzMDgsMjYgQEAg VU5JVl9JTlRFUk4KIGlib29sCiBwYWdlX3ZhbGlkYXRlKAogLyo9PT09PT09PT09Ki8KLQlwYWdl X3QqCQlwYWdlLAkvKiE8IGluOiBpbmRleCBwYWdlICovCisJY29uc3QgcGFnZV90KglwYWdlLAkv KiE8IGluOiBpbmRleCBwYWdlICovCiAJZGljdF9pbmRleF90KglpbmRleCkJLyohPCBpbjogZGF0 YSBkaWN0aW9uYXJ5IGluZGV4IGNvbnRhaW5pbmcKIAkJCQl0aGUgcGFnZSByZWNvcmQgdHlwZSBk ZWZpbml0aW9uICovCiB7Ci0JcGFnZV9kaXJfc2xvdF90KnNsb3Q7Ci0JbWVtX2hlYXBfdCoJaGVh cDsKLQlieXRlKgkJYnVmOwotCXVsaW50CQljb3VudDsKLQl1bGludAkJb3duX2NvdW50OwotCXVs aW50CQlyZWNfb3duX2NvdW50OwotCXVsaW50CQlzbG90X25vOwotCXVsaW50CQlkYXRhX3NpemU7 Ci0JcmVjX3QqCQlyZWM7Ci0JcmVjX3QqCQlvbGRfcmVjCQk9IE5VTEw7Ci0JdWxpbnQJCW9mZnM7 Ci0JdWxpbnQJCW5fc2xvdHM7Ci0JaWJvb2wJCXJldAkJPSBGQUxTRTsKLQl1bGludAkJaTsKLQl1 bGludCoJCW9mZnNldHMJCT0gTlVMTDsKLQl1bGludCoJCW9sZF9vZmZzZXRzCT0gTlVMTDsKKwlj b25zdCBwYWdlX2Rpcl9zbG90X3QqCXNsb3Q7CisJbWVtX2hlYXBfdCoJCWhlYXA7CisJYnl0ZSoJ CQlidWY7CisJdWxpbnQJCQljb3VudDsKKwl1bGludAkJCW93bl9jb3VudDsKKwl1bGludAkJCXJl Y19vd25fY291bnQ7CisJdWxpbnQJCQlzbG90X25vOworCXVsaW50CQkJZGF0YV9zaXplOworCWNv bnN0IHJlY190KgkJcmVjOworCWNvbnN0IHJlY190KgkJb2xkX3JlYwkJPSBOVUxMOworCXVsaW50 CQkJb2ZmczsKKwl1bGludAkJCW5fc2xvdHM7CisJaWJvb2wJCQlyZXQJCT0gRkFMU0U7CisJdWxp bnQJCQlpOworCXVsaW50KgkJCW9mZnNldHMJCT0gTlVMTDsKKwl1bGludCoJCQlvbGRfb2Zmc2V0 cwk9IE5VTEw7CiAKIAlpZiAoVU5JVl9VTkxJS0VMWSgoaWJvb2wpICEhcGFnZV9pc19jb21wKHBh Z2UpCiAJCQkgICE9IGRpY3RfdGFibGVfaXNfY29tcChpbmRleC0+dGFibGUpKSkgewpAQCAtMjQ4 Miw3ICsyNDgyLDcgQEAgcGFnZV92YWxpZGF0ZSgKIAkJY291bnQrKzsKIAkJb3duX2NvdW50Kys7 CiAJCW9sZF9yZWMgPSByZWM7Ci0JCXJlYyA9IHBhZ2VfcmVjX2dldF9uZXh0KHJlYyk7CisJCXJl YyA9IHBhZ2VfcmVjX2dldF9uZXh0X2NvbnN0KHJlYyk7CiAKIAkJLyogc2V0IG9sZF9vZmZzZXRz IHRvIG9mZnNldHM7IHJlY3ljbGUgb2Zmc2V0cyAqLwogCQl7CkBAIC0yNTU2LDcgKzI1NTYsNyBA QCBuX293bmVkX3plcm86CiAJCQlidWZbb2ZmcyArIGldID0gMTsKIAkJfQogCi0JCXJlYyA9IHBh Z2VfcmVjX2dldF9uZXh0KHJlYyk7CisJCXJlYyA9IHBhZ2VfcmVjX2dldF9uZXh0X2NvbnN0KHJl Yyk7CiAJfQogCiAJaWYgKFVOSVZfVU5MSUtFTFkocGFnZV9kaXJfZ2V0X25faGVhcChwYWdlKSAh PSBjb3VudCArIDEpKSB7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9zcnYv c3J2MHNydi5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3Nydi9zcnYwc3J2LmMJcmV2aWQ6a2V2 aW4ubGV3aXNAb3JhY2xlLmNvbS0yMDExMDMxODE1NDgxNC1ranhpMGxraXNzc3htMm13CisrKyBi L3N0b3JhZ2UvaW5ub2Jhc2Uvc3J2L3NydjBzcnYuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xl LmNvbS0yMDExMDMyMjEyMzQxNi02NjdqajR3MmswOGk5cGZwCkBAIC02OTMsNiArNjkzLDcgQEAg c3J2X3RhYmxlX2dldF9udGhfc2xvdCgKIC8qPT09PT09PT09PT09PT09PT09PSovCiAJdWxpbnQJ aW5kZXgpCQkvKiE8IGluOiBpbmRleCBvZiB0aGUgc2xvdCAqLwogeworCXV0X2FkKHNydl9zeXNf bXV0ZXhfb3duKCkpOwogCXV0X2EoaW5kZXggPCBPU19USFJFQURfTUFYX04pOwogCiAJcmV0dXJu KHNydl9zeXMtPnN5c190aHJlYWRzICsgaW5kZXgpOwpAQCAtNzIxLDI4ICs3MjIsNjEgQEAgc3J2 X2dldF9uX3RocmVhZHModm9pZCkKIAlyZXR1cm4obl90aHJlYWRzKTsKIH0KIAorI2lmZGVmIFVO SVZfREVCVUcKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovLyoqCi1SZXNlcnZlcyBhIHNsb3QgaW4gdGhlIHRocmVh ZCB0YWJsZSBmb3IgdGhlIGN1cnJlbnQgdGhyZWFkLiBBbHNvIGNyZWF0ZXMgdGhlCi10aHJlYWQg bG9jYWwgc3RvcmFnZSBzdHJ1Y3QgZm9yIHRoZSBjdXJyZW50IHRocmVhZC4gTk9URSEgVGhlIHNl cnZlciBtdXRleAotaGFzIHRvIGJlIHJlc2VydmVkIGJ5IHRoZSBjYWxsZXIhCi1AcmV0dXJuCXJl c2VydmVkIHNsb3QgaW5kZXggKi8KK1ZhbGlkYXRlcyB0aGUgdHlwZSBvZiBhIHRocmVhZCB0YWJs ZSBzbG90LgorQHJldHVybiBUUlVFIGlmIG9rICovCiBzdGF0aWMKLXVsaW50CitpYm9vbAorc3J2 X3RocmVhZF90eXBlX3ZhbGlkYXRlKAorLyo9PT09PT09PT09PT09PT09PT09PT0qLworCWVudW0g c3J2X3RocmVhZF90eXBlCXR5cGUpCS8qITwgaW46IHRocmVhZCB0eXBlICovCit7CisJc3dpdGNo ICh0eXBlKSB7CisJY2FzZSBTUlZfTk9ORToKKwkJYnJlYWs7CisJY2FzZSBTUlZfV09SS0VSOgor CWNhc2UgU1JWX1BVUkdFOgorCWNhc2UgU1JWX01BU1RFUjoKKwkJcmV0dXJuKFRSVUUpOworCX0K Kwl1dF9lcnJvcjsKKwlyZXR1cm4oRkFMU0UpOworfQorI2VuZGlmIC8qIFVOSVZfREVCVUcgKi8K KworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8vKioKK0dldHMgdGhlIHR5cGUgb2YgYSB0aHJlYWQgdGFibGUgc2xv dC4KK0ByZXR1cm4gdGhyZWFkIHR5cGUgKi8KK3N0YXRpYworZW51bSBzcnZfdGhyZWFkX3R5cGUK K3Nydl9zbG90X2dldF90eXBlKAorLyo9PT09PT09PT09PT09PSovCisJY29uc3Qgc3J2X3Nsb3Rf dCoJc2xvdCkJLyohPCBpbjogdGhyZWFkIHNsb3QgKi8KK3sKKwllbnVtIHNydl90aHJlYWRfdHlw ZQl0eXBlCT0gKGVudW0gc3J2X3RocmVhZF90eXBlKSBzbG90LT50eXBlOworCXV0X2FkKHNydl90 aHJlYWRfdHlwZV92YWxpZGF0ZSh0eXBlKSk7CisJcmV0dXJuKHR5cGUpOworfQorCisvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLy8qKgorUmVzZXJ2ZXMgYSBzbG90IGluIHRoZSB0aHJlYWQgdGFibGUgZm9yIHRoZSBj dXJyZW50IHRocmVhZC4KK05PVEUhIFRoZSBzZXJ2ZXIgbXV0ZXggaGFzIHRvIGJlIHJlc2VydmVk IGJ5IHRoZSBjYWxsZXIhCitAcmV0dXJuCXJlc2VydmVkIHNsb3QgKi8KK3N0YXRpYworc3J2X3Ns b3RfdCoKIHNydl90YWJsZV9yZXNlcnZlX3Nsb3QoCiAvKj09PT09PT09PT09PT09PT09PT0qLwog CWVudW0gc3J2X3RocmVhZF90eXBlCXR5cGUpCS8qITwgaW46IHR5cGUgb2YgdGhlIHRocmVhZCAq LwogewotCXVsaW50CQlpOwogCXNydl9zbG90X3QqCXNsb3Q7CiAKIAl1dF9hZChzcnZfc3lzX211 dGV4X293bigpKTsKIAotCXV0X2EodHlwZSA+IDApOwotCXV0X2EodHlwZSA8PSBTUlZfTUFTVEVS KTsKKwl1dF9hZChzcnZfdGhyZWFkX3R5cGVfdmFsaWRhdGUodHlwZSkpOwogCiAJaWYgKHR5cGUg IT0gU1JWX01BU1RFUikgewotCi0JCWkgPSAxOworCQl1bGludAlpID0gMTsKIAogCQkvKiBGaW5k IGFuIGVtcHR5IHNsb3QuICovCiAJCWZvciAoc2xvdCA9IHNydl90YWJsZV9nZXRfbnRoX3Nsb3Qo aSk7CkBAIC03NTMsNjAgKzc4Nyw0NSBAQCBzcnZfdGFibGVfcmVzZXJ2ZV9zbG90KAogCQl9CiAK IAl9IGVsc2UgewotCQl1dF9hKHR5cGUgIT0gU1JWX05PTkUpOwotCQlpID0gMDsKIAkJc2xvdCA9 IHNydl90YWJsZV9nZXRfbnRoX3Nsb3QoMCk7CiAJfQogCi0JdXRfYShzbG90LT5pbl91c2UgPT0g RkFMU0UpOwotCiAJc2xvdC0+aW5fdXNlID0gVFJVRTsKIAlzbG90LT5zdXNwZW5kZWQgPSBGQUxT RTsKIAlzbG90LT50eXBlID0gdHlwZTsKKwl1dF9hZChzcnZfc2xvdF9nZXRfdHlwZShzbG90KSA9 PSB0eXBlKTsKIAlzbG90LT5pZCA9IG9zX3RocmVhZF9nZXRfY3Vycl9pZCgpOwogCXNsb3QtPmhh bmRsZSA9IG9zX3RocmVhZF9nZXRfY3VycigpOwogCi0JdGhyX2xvY2FsX2NyZWF0ZSgpOwotCi0J dGhyX2xvY2FsX3NldF9zbG90X25vKG9zX3RocmVhZF9nZXRfY3Vycl9pZCgpLCBpKTsKLQotCXJl dHVybihpKTsKKwlyZXR1cm4oc2xvdCk7CiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCi1TdXNwZW5k cyB0aGUgY2FsbGluZyB0aHJlYWQgdG8gd2FpdCBmb3IgdGhlIGV2ZW50IGluIGl0cyB0aHJlYWQg c2xvdC4KLUByZXR1cm4JZXZlbnQgZm9yIHRoZSBjYWxsaW5nIHRocmVhZCB0byB3YWl0ICovCitT dXNwZW5kcyB0aGUgY2FsbGluZyB0aHJlYWQgdG8gd2FpdCBmb3IgdGhlIGV2ZW50IGluIGl0cyB0 aHJlYWQgc2xvdC4gKi8KIHN0YXRpYwotb3NfZXZlbnRfdAotc3J2X3N1c3BlbmRfdGhyZWFkKHZv aWQpCi0vKj09PT09PT09PT09PT09PT09PT09Ki8KK3ZvaWQKK3Nydl9zdXNwZW5kX3RocmVhZCgK Ky8qPT09PT09PT09PT09PT09Ki8KKwlzcnZfc2xvdF90KglzbG90KQkvKiE8IGluL291dDogdGhy ZWFkIHNsb3QgKi8KIHsKLQlzcnZfc2xvdF90KgkJc2xvdDsKLQlvc19ldmVudF90CQlldmVudDsK LQl1bGludAkJCXNsb3Rfbm87CiAJZW51bSBzcnZfdGhyZWFkX3R5cGUJdHlwZTsKIAogCXNydl9z eXNfbXV0ZXhfZW50ZXIoKTsKLQotCXNsb3Rfbm8gPSB0aHJfbG9jYWxfZ2V0X3Nsb3Rfbm8ob3Nf dGhyZWFkX2dldF9jdXJyX2lkKCkpOworCXV0X2FkKHNsb3QtPmluX3VzZSk7CisJdXRfYWQoIXNs b3QtPnN1c3BlbmRlZCk7CisJdXRfYWQoc2xvdC0+aWQgPT0gb3NfdGhyZWFkX2dldF9jdXJyX2lk KCkpOwogCiAJaWYgKHNydl9wcmludF90aHJlYWRfcmVsZWFzZXMpIHsKIAkJZnByaW50ZihzdGRl cnIsCiAJCQkiU3VzcGVuZGluZyB0aHJlYWQgJWx1IHRvIHNsb3QgJWx1XG4iLAotCQkJKHVsb25n KSBvc190aHJlYWRfZ2V0X2N1cnJfaWQoKSwgKHVsb25nKSBzbG90X25vKTsKKwkJCSh1bG9uZykg b3NfdGhyZWFkX2dldF9jdXJyX2lkKCksCisJCQkodWxvbmcpIChzbG90IC0gc3J2X3N5cy0+c3lz X3RocmVhZHMpKTsKIAl9CiAKLQlzbG90ID0gc3J2X3RhYmxlX2dldF9udGhfc2xvdChzbG90X25v KTsKLQotCXR5cGUgPSBzbG90LT50eXBlOwotCi0JdXRfYWQodHlwZSA+PSBTUlZfV09SS0VSKTsK LQl1dF9hZCh0eXBlIDw9IFNSVl9NQVNURVIpOwotCi0JLyogVGhlIG1hc3RlciB0aHJlYWQgYWx3 YXlzIHVzZXMgc2xvdCBudW1iZXIgMC4gKi8KLQl1dF9hKHR5cGUgIT0gU1JWX01BU1RFUiB8fCBz bG90X25vID09IDApOworCXR5cGUgPSBzcnZfc2xvdF9nZXRfdHlwZShzbG90KTsKIAotCWV2ZW50 ID0gc2xvdC0+ZXZlbnQ7CisJLyogVGhlIG1hc3RlciB0aHJlYWQgYWx3YXlzIHVzZXMgdGhlIGZp cnN0IHNsb3QuICovCisJdXRfYSh0eXBlICE9IFNSVl9NQVNURVIgfHwgc2xvdCA9PSBzcnZfc3lz LT5zeXNfdGhyZWFkcyk7CiAKIAlzbG90LT5zdXNwZW5kZWQgPSBUUlVFOwogCkBAIC04MTQsMTEg KzgzMyw5IEBAIHNydl9zdXNwZW5kX3RocmVhZCh2b2lkKQogCiAJc3J2X3N5cy0+bl90aHJlYWRz X2FjdGl2ZVt0eXBlXS0tOwogCi0Jb3NfZXZlbnRfcmVzZXQoZXZlbnQpOworCW9zX2V2ZW50X3Jl c2V0KHNsb3QtPmV2ZW50KTsKIAogCXNydl9zeXNfbXV0ZXhfZXhpdCgpOwotCi0JcmV0dXJuKGV2 ZW50KTsKIH0KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKQEAgLTgzNiw4ICs4NTMsNyBAQCBzcnZfcmVs ZWFzZV90aHJlYWRzKAogCXVsaW50CQlpOwogCXVsaW50CQljb3VudAk9IDA7CiAKLQl1dF9hZCh0 eXBlID49IFNSVl9XT1JLRVIpOwotCXV0X2FkKHR5cGUgPD0gU1JWX01BU1RFUik7CisJdXRfYWQo c3J2X3RocmVhZF90eXBlX3ZhbGlkYXRlKHR5cGUpKTsKIAl1dF9hZChuID4gMCk7CiAKIAlzcnZf c3lzX211dGV4X2VudGVyKCk7CkBAIC04NDcsNyArODYzLDggQEAgc3J2X3JlbGVhc2VfdGhyZWFk cygKIAogCQlzbG90ID0gc3J2X3RhYmxlX2dldF9udGhfc2xvdChpKTsKIAotCQlpZiAoc2xvdC0+ aW5fdXNlICYmIHNsb3QtPnR5cGUgPT0gdHlwZSAmJiBzbG90LT5zdXNwZW5kZWQpIHsKKwkJaWYg KHNsb3QtPmluX3VzZSAmJiBzbG90LT5zdXNwZW5kZWQKKwkJICAgICYmIHNydl9zbG90X2dldF90 eXBlKHNsb3QpID09IHR5cGUpIHsKIAogCQkJc2xvdC0+c3VzcGVuZGVkID0gRkFMU0U7CiAKQEAg LTg5NCw2ICs5MTEsNyBAQCBzcnZfdGhyZWFkX2hhc19yZXNlcnZlZF9zbG90KAogCXVsaW50CQkJ aTsKIAl1bGludAkJCXNsb3Rfbm8gPSBVTElOVF9VTkRFRklORUQ7CiAKKwl1dF9hZChzcnZfdGhy ZWFkX3R5cGVfdmFsaWRhdGUodHlwZSkpOwogCXNydl9zeXNfbXV0ZXhfZW50ZXIoKTsKIAogCWZv ciAoaSA9IDA7IGkgPCBPU19USFJFQURfTUFYX047IGkrKykgewpAQCAtOTAxLDcgKzkxOSw3IEBA IHNydl90aHJlYWRfaGFzX3Jlc2VydmVkX3Nsb3QoCiAKIAkJc2xvdCA9IHNydl90YWJsZV9nZXRf bnRoX3Nsb3QoaSk7CiAKLQkJaWYgKHNsb3QtPmluX3VzZSAmJiBzbG90LT50eXBlID09IHR5cGUp IHsKKwkJaWYgKHNsb3QtPmluX3VzZSAmJiBzcnZfc2xvdF9nZXRfdHlwZShzbG90KSA9PSB0eXBl KSB7CiAJCQlzbG90X25vID0gaTsKIAkJCWJyZWFrOwogCQl9CkBAIC05NDMsNyArOTYxLDcgQEAg c3J2X2luaXQodm9pZCkKIAlmb3IgKGkgPSAwOyBpIDwgT1NfVEhSRUFEX01BWF9OOyBpKyspIHsK IAkJc3J2X3Nsb3RfdCoJc2xvdDsKIAotCQlzbG90ID0gc3J2X3RhYmxlX2dldF9udGhfc2xvdChp KTsKKwkJc2xvdCA9IHNydl9zeXMtPnN5c190aHJlYWRzICsgaTsKIAogCQlzbG90LT5ldmVudCA9 IG9zX2V2ZW50X2NyZWF0ZShOVUxMKTsKIApAQCAtMjAzMiw3ICsyMDUwLDcgQEAgc3J2X2FjdGl2 ZV93YWtlX21hc3Rlcl90aHJlYWQodm9pZCkKIAkJLyogT25seSBpZiB0aGUgbWFzdGVyIHRocmVh ZCBoYXMgYmVlbiBzdGFydGVkLiAqLwogCiAJCWlmIChzbG90LT5pbl91c2UpIHsKLQkJCXV0X2Eo c2xvdC0+dHlwZSA9PSBTUlZfTUFTVEVSKTsKKwkJCXV0X2Eoc3J2X3Nsb3RfZ2V0X3R5cGUoc2xv dCkgPT0gU1JWX01BU1RFUik7CiAKIAkJCWlmIChzbG90LT5zdXNwZW5kZWQpIHsKIApAQCAtMjU1 Miw5ICsyNTcwLDggQEAgc3J2X21hc3Rlcl90aHJlYWQoCiAJCQkvKiE8IGluOiBhIGR1bW15IHBh cmFtZXRlciByZXF1aXJlZCBieQogCQkJb3NfdGhyZWFkX2NyZWF0ZSAqLwogewotCXVsaW50CQlz bG90OworCXNydl9zbG90X3QqCXNsb3Q7CiAJdWxpbnQJCW9sZF9hY3Rpdml0eV9jb3VudCA9IHNy dl9nZXRfYWN0aXZpdHlfY291bnQoKTsKLQlvc19ldmVudF90CWV2ZW50OwogCWliX3RpbWVfdAls YXN0X3ByaW50X3RpbWU7CiAKICNpZmRlZiBVTklWX0RFQlVHX1RIUkVBRF9DUkVBVElPTgpAQCAt MjU3Miw3ICsyNTg5LDcgQEAgc3J2X21hc3Rlcl90aHJlYWQoCiAJc3J2X3N5c19tdXRleF9lbnRl cigpOwogCiAJc2xvdCA9IHNydl90YWJsZV9yZXNlcnZlX3Nsb3QoU1JWX01BU1RFUik7Ci0JdXRf YShzbG90ID09IDApOworCXV0X2Eoc2xvdCA9PSBzcnZfc3lzLT5zeXNfdGhyZWFkcyk7CiAKIAlz cnZfc3lzLT5uX3RocmVhZHNfYWN0aXZlW1NSVl9NQVNURVJdKys7CiAKQEAgLTI2MDcsNyArMjYy NCw3IEBAIGxvb3A6CiBzdXNwZW5kX3RocmVhZDoKIAlzcnZfbWFpbl90aHJlYWRfb3BfaW5mbyA9 ICJzdXNwZW5kaW5nIjsKIAotCWV2ZW50ID0gc3J2X3N1c3BlbmRfdGhyZWFkKCk7CisJc3J2X3N1 c3BlbmRfdGhyZWFkKHNsb3QpOwogCiAJLyogRE8gTk9UIENIQU5HRSBUSElTIFNUUklORy4gaW5u b2Jhc2Vfc3RhcnRfb3JfY3JlYXRlX2Zvcl9teXNxbCgpCiAJd2FpdHMgZm9yIGRhdGFiYXNlIGFj dGl2aXR5IHRvIGRpZSBkb3duIHdoZW4gY29udmVydGluZyA8IDQuMS54CkBAIC0yNjE1LDcgKzI2 MzIsNyBAQCBzdXNwZW5kX3RocmVhZDoKIAltYW51YWwgYWxzbyBtZW50aW9ucyB0aGlzIHN0cmlu ZyBpbiBzZXZlcmFsIHBsYWNlcy4gKi8KIAlzcnZfbWFpbl90aHJlYWRfb3BfaW5mbyA9ICJ3YWl0 aW5nIGZvciBzZXJ2ZXIgYWN0aXZpdHkiOwogCi0Jb3NfZXZlbnRfd2FpdChldmVudCk7CisJb3Nf ZXZlbnRfd2FpdChzbG90LT5ldmVudCk7CiAKIAlpZiAoc3J2X3NodXRkb3duX3N0YXRlID09IFNS Vl9TSFVURE9XTl9FWElUX1RIUkVBRFMpIHsKIAkJLyogVGhpcyBpcyBvbmx5IGV4dHJhIHNhZmV0 eSwgdGhlIHRocmVhZCBzaG91bGQgZXhpdApAQCAtMjYyNiw4ICsyNjQzLDYgQEAgc3VzcGVuZF90 aHJlYWQ6CiAJfQogCiAJZ290byBsb29wOwotCi0JT1NfVEhSRUFEX0RVTU1ZX1JFVFVSTjsJLyog Tm90IHJlYWNoZWQsIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmcgKi8KIH0KIAogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8vKioKQEAgLTI2ODEsNyArMjY5Niw2IEBAIHNydl93b3JrZXJfdGhyZWFkKAogCQkJCQkJcmVx dWlyZWQgYnkgb3NfdGhyZWFkX2NyZWF0ZSAqLwogewogCXNydl9zbG90X3QqCXNsb3Q7Ci0JdWxp bnQJCXNsb3Rfbm8gPSBVTElOVF9VTkRFRklORUQ7CiAKICNpZmRlZiBVTklWX0RFQlVHX1RIUkVB RF9DUkVBVElPTgogCWZwcmludGYoc3RkZXJyLCAiV29ya2VyIHRocmVhZCBzdGFydHMsIGlkICVs dVxuIiwKQEAgLTI2OTAsNyArMjcwNCw3IEBAIHNydl93b3JrZXJfdGhyZWFkKAogCiAJc3J2X3N5 c19tdXRleF9lbnRlcigpOwogCi0Jc2xvdF9ubyA9IHNydl90YWJsZV9yZXNlcnZlX3Nsb3QoU1JW X1dPUktFUik7CisJc2xvdCA9IHNydl90YWJsZV9yZXNlcnZlX3Nsb3QoU1JWX1dPUktFUik7CiAK IAkrK3Nydl9zeXMtPm5fdGhyZWFkc19hY3RpdmVbU1JWX1dPUktFUl07CiAKQEAgLTI3MDEsMTEg KzI3MTUsOSBAQCBzcnZfd29ya2VyX3RocmVhZCgKIAogCXdoaWxlIChzcnZfc2h1dGRvd25fc3Rh dGUgPT0gU1JWX1NIVVRET1dOX05PTkUgJiYgIXNydl9mYXN0X3NodXRkb3duKSB7CiAKLQkJb3Nf ZXZlbnRfdAlldmVudDsKLQotCQlldmVudCA9IHNydl9zdXNwZW5kX3RocmVhZCgpOworCQlzcnZf c3VzcGVuZF90aHJlYWQoc2xvdCk7CiAKLQkJb3NfZXZlbnRfd2FpdChldmVudCk7CisJCW9zX2V2 ZW50X3dhaXQoc2xvdC0+ZXZlbnQpOwogCiAJCXNydl90YXNrX2V4ZWN1dGUoKTsKIApAQCAtMjcx NSwxNSArMjcyNywxMiBAQCBzcnZfd29ya2VyX3RocmVhZCgKIAkJc3J2X3dha2VfcHVyZ2VfdGhy ZWFkX2lmX25vdF9hY3RpdmUoKTsKIAl9CiAKLQlzcnZfc3VzcGVuZF90aHJlYWQoKTsKLQotCS8q IEZyZWUgdGhlIHRocmVhZCBsb2NhbCBtZW1vcnkuICovCi0JdGhyX2xvY2FsX2ZyZWUob3NfdGhy ZWFkX2dldF9jdXJyX2lkKCkpOworCXNydl9zdXNwZW5kX3RocmVhZChzbG90KTsKIAogCXNydl9z eXNfbXV0ZXhfZW50ZXIoKTsKIAogCS8qIEZyZWUgdGhlIHNsb3QgZm9yIHJldXNlLiAqLwotCXNs b3QgPSBzcnZfdGFibGVfZ2V0X250aF9zbG90KHNsb3Rfbm8pOworCXV0X2FkKHNsb3QtPmluX3Vz ZSk7CiAJc2xvdC0+aW5fdXNlID0gRkFMU0U7CiAKIAlzcnZfc3lzX211dGV4X2V4aXQoKTsKQEAg LTI3NTEsNyArMjc2MCw2IEBAIHNydl9wdXJnZV9jb29yZGluYXRvcl90aHJlYWQoCiAJCQkJCQly ZXF1aXJlZCBieSBvc190aHJlYWRfY3JlYXRlICovCiB7CiAJc3J2X3Nsb3RfdCoJc2xvdDsKLQl1 bGludAkJc2xvdF9ubyA9IFVMSU5UX1VOREVGSU5FRDsKIAogCXV0X2Eoc3J2X25fcHVyZ2VfdGhy ZWFkcyA+PSAxKTsKIApAQCAtMjc2OSw3ICsyNzc3LDcgQEAgc3J2X3B1cmdlX2Nvb3JkaW5hdG9y X3RocmVhZCgKIAogCXNydl9zeXNfbXV0ZXhfZW50ZXIoKTsKIAotCXNsb3Rfbm8gPSBzcnZfdGFi bGVfcmVzZXJ2ZV9zbG90KFNSVl9QVVJHRSk7CisJc2xvdCA9IHNydl90YWJsZV9yZXNlcnZlX3Ns b3QoU1JWX1BVUkdFKTsKIAogCSsrc3J2X3N5cy0+bl90aHJlYWRzX2FjdGl2ZVtTUlZfUFVSR0Vd OwogCkBAIC0yOTAwLDE5ICsyOTA4LDE2IEBAIHNydl9wdXJnZV9jb29yZGluYXRvcl90aHJlYWQo CiAJfQogCiAJLyogRGVjcmVtZW50IHRoZSBhY3RpdmUgY291bnQuICovCi0Jc3J2X3N1c3BlbmRf dGhyZWFkKCk7CisJc3J2X3N1c3BlbmRfdGhyZWFkKHNsb3QpOwogCiAJc3J2X3N5c19tdXRleF9l bnRlcigpOwogCiAJLyogRnJlZSB0aGUgc2xvdCBmb3IgcmV1c2UuICovCi0Jc2xvdCA9IHNydl90 YWJsZV9nZXRfbnRoX3Nsb3Qoc2xvdF9ubyk7CisJdXRfYWQoc2xvdC0+aW5fdXNlKTsKIAlzbG90 LT5pbl91c2UgPSBGQUxTRTsKIAogCXNydl9zeXNfbXV0ZXhfZXhpdCgpOwogCi0JLyogRnJlZSB0 aGUgdGhyZWFkIGxvY2FsIG1lbW9yeS4gKi8KLQl0aHJfbG9jYWxfZnJlZShvc190aHJlYWRfZ2V0 X2N1cnJfaWQoKSk7Ci0KICNpZmRlZiBVTklWX0RFQlVHX1RIUkVBRF9DUkVBVElPTgogCWZwcmlu dGYoc3RkZXJyLCAiUHVyZ2UgY29vcmRpbmF0b3IgZXhpdGluZywgaWQgJWx1XG4iLAogCQlvc190 aHJlYWRfcGYob3NfdGhyZWFkX2dldF9jdXJyX2lkKCkpKTsKCj09PSBtb2RpZmllZCBmaWxlICdz dG9yYWdlL2lubm9iYXNlL3Roci90aHIwbG9jLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvdGhy L3RocjBsb2MuYwlyZXZpZDprZXZpbi5sZXdpc0BvcmFjbGUuY29tLTIwMTEwMzE4MTU0ODE0LWtq eGkwbGtpc3NzeG0ybXcKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS90aHIvdGhyMGxvYy5jCXJldmlk Om1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwMzIyMTIzNDE2LTY2N2pqNHcyazA4aTlwZnAK QEAgLTY1LDggKzY1LDYgQEAgZm9yIHRoZSBmaWVsZC4gKi8KIHN0cnVjdCB0aHJfbG9jYWxfc3Ry dWN0ewogCW9zX3RocmVhZF9pZF90CWlkOwkvKiE8IGlkIG9mIHRoZSB0aHJlYWQgd2hpY2ggb3du cyB0aGlzIHN0cnVjdCAqLwogCW9zX3RocmVhZF90CWhhbmRsZTsJLyohPCBvcGVyYXRpbmcgc3lz dGVtIGhhbmRsZSB0byB0aGUgdGhyZWFkICovCi0JdWxpbnQJCXNsb3Rfbm87LyohPCB0aGUgaW5k ZXggb2YgdGhlIHNsb3QgaW4gdGhlIHRocmVhZCB0YWJsZQotCQkJCWZvciB0aGlzIHRocmVhZCAq LwogCWlib29sCQlpbl9pYnVmOy8qITwgVFJVRSBpZiB0aGUgdGhyZWFkIGlzIGRvaW5nIGFuIGli dWYKIAkJCQlvcGVyYXRpb24gKi8KIAloYXNoX25vZGVfdAloYXNoOwkvKiE8IGhhc2ggY2hhaW4g bm9kZSAqLwpAQCAtODcsOCArODUsNiBAQCB0aHJfbG9jYWxfdmFsaWRhdGUoCiAJY29uc3QgdGhy X2xvY2FsX3QqCWxvY2FsKQkvKiE8IGluOiBkYXRhIHRvIHZhbGlkYXRlICovCiB7CiAJdXRfYWQo bG9jYWwtPm1hZ2ljX24gPT0gVEhSX0xPQ0FMX01BR0lDX04pOwotCXV0X2FkKGxvY2FsLT5zbG90 X25vID09IFVMSU5UX1VOREVGSU5FRAotCSAgICAgIHx8IGxvY2FsLT5zbG90X25vIDwgT1NfVEhS RUFEX01BWF9OKTsKIAl1dF9hZChsb2NhbC0+aW5faWJ1ZiA9PSBGQUxTRSB8fCBsb2NhbC0+aW5f aWJ1ZiA9PSBUUlVFKTsKIAlyZXR1cm4oVFJVRSk7CiB9CkBAIC0xMzIsNDkgKzEyOCw2IEBAIHRy eV9hZ2FpbjoKIH0KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCi1HZXRzIHRoZSBzbG90IG51bWJlciBpbiB0 aGUgdGhyZWFkIHRhYmxlIG9mIGEgdGhyZWFkLgotQHJldHVybglzbG90IG51bWJlciAqLwotVU5J Vl9JTlRFUk4KLXVsaW50Ci10aHJfbG9jYWxfZ2V0X3Nsb3Rfbm8oCi0vKj09PT09PT09PT09PT09 PT09PSovCi0Jb3NfdGhyZWFkX2lkX3QJaWQpCS8qITwgaW46IHRocmVhZCBpZCBvZiB0aGUgdGhy ZWFkICovCi17Ci0JdWxpbnQJCXNsb3Rfbm87Ci0JdGhyX2xvY2FsX3QqCWxvY2FsOwotCi0JbXV0 ZXhfZW50ZXIoJnRocl9sb2NhbF9tdXRleCk7Ci0KLQlsb2NhbCA9IHRocl9sb2NhbF9nZXQoaWQp OwotCi0Jc2xvdF9ubyA9IGxvY2FsLT5zbG90X25vOwotCi0JbXV0ZXhfZXhpdCgmdGhyX2xvY2Fs X211dGV4KTsKLQotCXJldHVybihzbG90X25vKTsKLX0KLQotLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCi1TZXRz IHRoZSBzbG90IG51bWJlciBpbiB0aGUgdGhyZWFkIHRhYmxlIG9mIGEgdGhyZWFkLiAqLwotVU5J Vl9JTlRFUk4KLXZvaWQKLXRocl9sb2NhbF9zZXRfc2xvdF9ubygKLS8qPT09PT09PT09PT09PT09 PT09Ki8KLQlvc190aHJlYWRfaWRfdAlpZCwJLyohPCBpbjogdGhyZWFkIGlkIG9mIHRoZSB0aHJl YWQgKi8KLQl1bGludAkJc2xvdF9ubykvKiE8IGluOiBzbG90IG51bWJlciAqLwotewotCXRocl9s b2NhbF90Kglsb2NhbDsKLQotCW11dGV4X2VudGVyKCZ0aHJfbG9jYWxfbXV0ZXgpOwotCi0JbG9j YWwgPSB0aHJfbG9jYWxfZ2V0KGlkKTsKLQotCWxvY2FsLT5zbG90X25vID0gc2xvdF9ubzsKLQot CW11dGV4X2V4aXQoJnRocl9sb2NhbF9tdXRleCk7Ci19Ci0KLS8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogUmV0 dXJucyBwb2ludGVyIHRvIHRoZSAnaW5faWJ1ZicgZmllbGQgd2l0aGluIHRoZSBjdXJyZW50IHRo cmVhZCBsb2NhbAogc3RvcmFnZS4KIEByZXR1cm4JcG9pbnRlciB0byB0aGUgaW5faWJ1ZiBmaWVs ZCAqLwpAQCAtMjEyLDcgKzE2NSw2IEBAIHRocl9sb2NhbF9jcmVhdGUodm9pZCkKIAlsb2NhbC0+ aWQgPSBvc190aHJlYWRfZ2V0X2N1cnJfaWQoKTsKIAlsb2NhbC0+aGFuZGxlID0gb3NfdGhyZWFk X2dldF9jdXJyKCk7CiAJbG9jYWwtPm1hZ2ljX24gPSBUSFJfTE9DQUxfTUFHSUNfTjsKLQlsb2Nh bC0+c2xvdF9ubyA9IFVMSU5UX1VOREVGSU5FRDsKIAlsb2NhbC0+aW5faWJ1ZiA9IEZBTFNFOwog CiAJbXV0ZXhfZW50ZXIoJnRocl9sb2NhbF9tdXRleCk7Cgo= --===============2032556387== 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.6-innodb/ # testament_sha1: aaca1c7e607572a2a15aba352996771a63644171 # timestamp: 2011-03-22 14:35:50 +0200 # source_branch: file:///home/marko/innobase/dev/mysql2a/5.5-innodb/ # base_revision_id: kevin.lewis@stripped\ # kjxi0lkisssxm2mw # # Begin bundle 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 --===============2032556387==--