From: marko.makela Date: October 19 2010 6:36am Subject: bzr push into mysql-5.5-innodb branch (marko.makela:3186 to 3187) Bug#56680 List-Archive: http://lists.mysql.com/commits/121054 X-Bug: 56680 Message-Id: <201010190637.o9J6C6a1003909@acsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1197935638==" --===============1197935638== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline IDMxODcgTWFya28gTcOka2Vsw6QJMjAxMC0xMC0xOSBbbWVyZ2VdCiAgICAgIE1lcmdlIEJ1ZyAj NTY2ODAgZnJvbSBteXNxbC01LjEuCiAgICAgIAogICAgICBBZGRpdGlvbmFsIGZpeGVzIGluIDUu NToKICAgICAgCiAgICAgIGlidWZfc2V0X2RlbF9tYXJrKCk6IEFkZCBkaWFnbm9zdGljcyB3aGVu IHNldHRpbmcgYSBidWZmZXJlZCBkZWxldGUtbWFyayBmYWlscy4KICAgICAgCiAgICAgIGlidWZf ZGVsZXRlKCk6IENvcnJlY3QgYSBtaXNsZWFkaW5nIGNvbW1lbnQgYWJvdXQgbm9uLWZvdW5kIHJl Y29yZHMuCiAgICAgIAogICAgICByZWNfcHJpbnQoKTogQWRkIGEgY29uc3QgcXVhbGlmaWVyIHRv IHRoZSBpbmRleCBwYXJhbWV0ZXIuCiAgICAgIAogICAgICBCdWcgIzU2NjgwIHdyb25nIElubm9E QiByZXN1bHRzIGZyb20gYSBjYXNlLWluc2Vuc2l0aXZlIGNvdmVyaW5nIGluZGV4CiAgICAgIAog ICAgICByb3dfc2VhcmNoX2Zvcl9teXNxbCgpOiBXaGVuIGEgc2Vjb25kYXJ5IGluZGV4IHJlY29y ZCBtaWdodCBub3QgYmUKICAgICAgdmlzaWJsZSBpbiB0aGUgY3VycmVudCB0cmFuc2FjdGlvbidz IHJlYWQgdmlldyBhbmQgd2UgY29uc3VsdCB0aGUKICAgICAgY2x1c3RlcmVkIGluZGV4IGFuZCBv cHRpb25hbGx5IHNvbWUgdW5kbyBsb2cgcmVjb3JkcywgcmV0dXJuIHRoZQogICAgICByZWxldmFu dCBjb2x1bW5zIG9mIHRoZSBjbHVzdGVyZWQgaW5kZXggcmVjb3JkIHRvIE15U1FMIGluc3RlYWQg b2YgdGhlCiAgICAgIHNlY29uZGFyeSBpbmRleCByZWNvcmQuCiAgICAgIAogICAgICBpYnVmX2lu c2VydF90b19pbmRleF9wYWdlX2xvdygpOiBOZXcgZnVuY3Rpb24sIHJlZmFjdG9yZWQgZnJvbQog ICAgICBpYnVmX2luc2VydF90b19pbmRleF9wYWdlKCkuCiAgICAgIAogICAgICBpYnVmX2luc2Vy dF90b19pbmRleF9wYWdlKCk6IFdoZW4gd2UgYXJlIGluc2VydGluZyBhIHJlY29yZCBpbiBwbGFj ZQogICAgICBvZiBhIGRlbGV0ZS1tYXJrZWQgcmVjb3JkIGFuZCBzb21lIGZpZWxkcyBvZiB0aGUg cmVjb3JkIGRpZmZlciwgdXBkYXRlCiAgICAgIHRoYXQgcmVjb3JkIGp1c3QgbGlrZSByb3dfaW5z X3NlY19pbmRleF9lbnRyeV9ieV9tb2RpZnkoKSB3b3VsZCBkby4KICAgICAgCiAgICAgIGJ0cl9j dXJfdXBkYXRlX2FsbG9jX3ppcCgpOiBNYWtlIHRoZSBmdW5jdGlvbiBwdWJsaWMuCiAgICAgIAog ICAgICBteXNxbF9yb3dfdGVtcGxfdDogQWRkIGNsdXN0X3JlY19maWVsZF9uby4KICAgICAgCiAg ICAgIHJvd19zZWxfc3RvcmVfbXlzcWxfcmVjKCksIHJvd19zZWxfcHVzaF9jYWNoZV9yb3dfZm9y X215c3FsKCk6IEFkZCB0aGUKICAgICAgZmxhZyByZWNfY2x1c3QsIGZvciByZXR1cm5pbmcgZGF0 YSBhdCBjbHVzdF9yZWNfZmllbGRfbm8gaW5zdGVhZCBvZgogICAgICByZWNfZmllbGRfbm8uIFJl c3VycmVjdCB0aGUgZGVidWcgYXNzZXJ0aW9uIHRoYXQgdGhlIHJlY29yZCBub3QgYmUKICAgICAg bWFya2VkIGZvciBkZWxldGlvbi4gKEJ1ZyAjNTU2MjYpCiAgICAgIAogICAgICBbVU5JVl9ERUJV RyB8fCBVTklWX0lCVUZfREVCVUddIGlidWZfZGVidWcsIGJ1Zl9wYWdlX2dldF9nZW4oKSwKICAg ICAgYnVmX2ZsdXNoX3BhZ2VfdHJ5KCk6CiAgICAgIEltcGxlbWVudCBpbm5vZGJfY2hhbmdlX2J1 ZmZlcmluZ19kZWJ1Zz0xIGZvciBldmljdGluZyBwYWdlcyBmcm9tIHRoZQogICAgICBidWZmZXIg cG9vbCwgc28gdGhhdCBjaGFuZ2UgYnVmZmVyaW5nIHdpbGwgYmUgYXR0ZW1wdGVkIG1vcmUKICAg ICAgZnJlcXVlbnRseS4KCiAgICBhZGRlZDoKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIv ci9pbm5vZGJfYnVnNTY2ODAucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3Qv aW5ub2RiX2J1ZzU2NjgwLnRlc3QKICAgIG1vZGlmaWVkOgogICAgICBzdG9yYWdlL2lubm9iYXNl L2J0ci9idHIwY3VyLmMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9idWYvYnVmMGJ1Zi5jCiAgICAg IHN0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1ZjBmbHUuYwogICAgICBzdG9yYWdlL2lubm9iYXNlL2hh bmRsZXIvaGFfaW5ub2RiLmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaWJ1Zi9pYnVmMGlidWYu YwogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvYnRyMGN1ci5oCiAgICAgIHN0b3JhZ2Uv aW5ub2Jhc2UvaW5jbHVkZS9idWYwZmx1LmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRl L2lidWYwaWJ1Zi5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yZW0wcmVjLmgKICAg ICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzBteXNxbC5oCiAgICAgIHN0b3JhZ2UvaW5u b2Jhc2UvaW5jbHVkZS9yb3cwdXBkLmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9yZW0vcmVtMHJl Yy5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBteXNxbC5jCiAgICAgIHN0b3JhZ2Uv aW5ub2Jhc2Uvcm93L3JvdzBzZWwuYwogICAgICBzdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwdXBk LmMKIDMxODYgVmFzaWwgRGltb3YJMjAxMC0xMC0xOCBbbWVyZ2VdCiAgICAgIE1lcmdlIG15c3Fs LTUuMS1pbm5vZGIgLT4gbXlzcWwtNS41LWlubm9kYgoKICAgIGFkZGVkOgogICAgICBteXNxbC10 ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYl9idWc1NzI1Mi5yZXN1bHQKICAgICAgbXlzcWwtdGVz dC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGJfYnVnNTcyNTIudGVzdAogICAgbW9kaWZpZWQ6CiAgICAg IHN0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYV9pbm5vZGIuY2MKICAgICAgc3RvcmFnZS9pbm5v YmFzZS9oYW5kbGVyL2hhX2lubm9kYi5oCj09PSBhZGRlZCBmaWxlICdteXNxbC10ZXN0L3N1aXRl L2lubm9kYi9yL2lubm9kYl9idWc1NjY4MC5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUv aW5ub2RiL3IvaW5ub2RiX2J1ZzU2NjgwLnJlc3VsdAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAw CisrKyBiL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiX2J1ZzU2NjgwLnJlc3VsdAly ZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA2MzUxNC1rNjNyZHM4NXNqNW8w ZmRkCkBAIC0wLDAgKzEsMTA5IEBACitTRVQgR0xPQkFMIHR4X2lzb2xhdGlvbj0nUkVQRUFUQUJM RS1SRUFEJzsKK1NFVCBHTE9CQUwgaW5ub2RiX2ZpbGVfZm9ybWF0PUJhcnJhY3VkYTsKK1NFVCBH TE9CQUwgaW5ub2RiX2ZpbGVfcGVyX3RhYmxlPW9uOworQ1JFQVRFIFRBQkxFIGJ1ZzU2NjgwKAor YSBJTlQgQVVUT19JTkNSRU1FTlQgUFJJTUFSWSBLRVksCitiIENIQVIoMSksCitjIElOVCwKK0lO REVYKGIpKQorRU5HSU5FPUlubm9EQjsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFZBTFVFUygwLCd4 JywxKTsKK0JFR0lOOworU0VMRUNUIGIgRlJPTSBidWc1NjY4MDsKK2IKK3gKK0JFR0lOOworVVBE QVRFIGJ1ZzU2NjgwIFNFVCBiPSdYJzsKK1NFTEVDVCBiIEZST00gYnVnNTY2ODA7CitiCit4CitT RUxFQ1QgKiBGUk9NIGJ1ZzU2NjgwOworYQliCWMKKzEJeAkxCitST0xMQkFDSzsKK1NFTEVDVCBi IEZST00gYnVnNTY2ODA7CitiCit4CitTRVQgR0xPQkFMIHR4X2lzb2xhdGlvbj0nUkVBRC1VTkNP TU1JVFRFRCc7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4 MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5T RVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNFUlQgSU5U TyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2 NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VM RUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxi LGMgRlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9N IGJ1ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2 ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lO U0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworQkVHSU47CitT RUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwIExJTUlUIDI7CitiCit4Cit4CitCRUdJTjsKK0RFTEVURSBG Uk9NIGJ1ZzU2NjgwIFdIRVJFIGE9MTsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFZBTFVFUygxLCdY JywxKTsKK1NFTEVDVCBiIEZST00gYnVnNTY2ODAgTElNSVQgMzsKK2IKK1gKK3gKK3gKK1NFTEVD VCBiIEZST00gYnVnNTY2ODAgTElNSVQgMjsKK2IKK3gKK3gKK0NIRUNLIFRBQkxFIGJ1ZzU2Njgw OworVGFibGUJT3AJTXNnX3R5cGUJTXNnX3RleHQKK3Rlc3QuYnVnNTY2ODAJY2hlY2sJc3RhdHVz CU9LCitST0xMQkFDSzsKK1NFTEVDVCBiIEZST00gYnVnNTY2ODAgTElNSVQgMjsKK2IKK3gKK3gK K0NIRUNLIFRBQkxFIGJ1ZzU2NjgwOworVGFibGUJT3AJTXNnX3R5cGUJTXNnX3RleHQKK3Rlc3Qu YnVnNTY2ODAJY2hlY2sJc3RhdHVzCU9LCitTRUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwIExJTUlUIDI7 CitiCit4Cit4CitDUkVBVEUgVEFCTEUgYnVnNTY2ODBfMigKK2EgSU5UIEFVVE9fSU5DUkVNRU5U IFBSSU1BUlkgS0VZLAorYiBWQVJDSEFSKDIpIENIQVJTRVQgbGF0aW4xIENPTExBVEUgbGF0aW4x X2dlcm1hbjJfY2ksCitjIElOVCwKK0lOREVYKGIpKQorRU5HSU5FPUlubm9EQjsKK0lOU0VSVCBJ TlRPIGJ1ZzU2NjgwXzIgU0VMRUNUIDAsX2xhdGluMSAweGRmLGMgRlJPTSBidWc1NjY4MDsKK0JF R0lOOworU0VMRUNUIEhFWChiKSBGUk9NIGJ1ZzU2NjgwXzIgTElNSVQgMjsKK0hFWChiKQorREYK K0RGCitERUxFVEUgRlJPTSBidWc1NjY4MF8yIFdIRVJFIGE9MTsKK0lOU0VSVCBJTlRPIGJ1ZzU2 NjgwXzIgVkFMVUVTKDEsJ1NTJywxKTsKK1NFTEVDVCBIRVgoYikgRlJPTSBidWc1NjY4MF8yIExJ TUlUIDM7CitIRVgoYikKKzUzNTMKK0RGCitERgorQ0hFQ0sgVEFCTEUgYnVnNTY2ODBfMjsKK1Rh YmxlCU9wCU1zZ190eXBlCU1zZ190ZXh0Cit0ZXN0LmJ1ZzU2NjgwXzIJY2hlY2sJc3RhdHVzCU9L CitBTFRFUiBUQUJMRSBidWc1NjY4MF8yIFJPV19GT1JNQVQ9Q09NUFJFU1NFRCBLRVlfQkxPQ0tf U0laRT0xOworU0VMRUNUIEhFWChiKSBGUk9NIGJ1ZzU2NjgwXzIgTElNSVQgMjsKK0hFWChiKQor NTM1MworREYKK0RFTEVURSBGUk9NIGJ1ZzU2NjgwXzIgV0hFUkUgYT0xOworSU5TRVJUIElOVE8g YnVnNTY2ODBfMiBWQUxVRVMoMSxfbGF0aW4xIDB4ZGYsMSk7CitTRUxFQ1QgSEVYKGIpIEZST00g YnVnNTY2ODBfMiBMSU1JVCAzOworSEVYKGIpCitERgorREYKK0RGCitDSEVDSyBUQUJMRSBidWc1 NjY4MF8yOworVGFibGUJT3AJTXNnX3R5cGUJTXNnX3RleHQKK3Rlc3QuYnVnNTY2ODBfMgljaGVj awlzdGF0dXMJT0sKK0RST1AgVEFCTEUgYnVnNTY2ODBfMjsKK0RST1AgVEFCTEUgYnVnNTY2ODA7 Cgo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGJfYnVnNTY2 ODAudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGJfYnVnNTY2ODAu dGVzdAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvaW5u b2RiL3QvaW5ub2RiX2J1ZzU2NjgwLnRlc3QJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20t MjAxMDEwMTkwNjM1MTQtazYzcmRzODVzajVvMGZkZApAQCAtMCwwICsxLDE0MiBAQAorIworIyBC dWcgIzU2NjgwIElubm9EQiBtYXkgcmV0dXJuIHdyb25nIHJlc3VsdHMgZnJvbSBhIGNhc2UtaW5z ZW5zaXRpdmUgaW5kZXgKKyMKKy0tIHNvdXJjZSBpbmNsdWRlL2hhdmVfaW5ub2RiLmluYworCist LSBkaXNhYmxlX3F1ZXJ5X2xvZworU0VUIEB0eF9pc29sYXRpb25fb3JpZyA9IEBAdHhfaXNvbGF0 aW9uOworU0VUIEBpbm5vZGJfZmlsZV9wZXJfdGFibGVfb3JpZyA9IEBAaW5ub2RiX2ZpbGVfcGVy X3RhYmxlOworU0VUIEBpbm5vZGJfZmlsZV9mb3JtYXRfb3JpZyA9IEBAaW5ub2RiX2ZpbGVfZm9y bWF0OworU0VUIEBpbm5vZGJfZmlsZV9mb3JtYXRfbWF4X29yaWcgPSBAQGlubm9kYl9maWxlX2Zv cm1hdF9tYXg7CisjIFRoZSBmbGFnIGlubm9kYl9jaGFuZ2VfYnVmZmVyaW5nX2RlYnVnIGlzIG9u bHkgYXZhaWxhYmxlIGluIGRlYnVnIGJ1aWxkcy4KKyMgSXQgaW5zdHJ1Y3RzIElubm9EQiB0byB0 cnkgdG8gZXZpY3QgcGFnZXMgZnJvbSB0aGUgYnVmZmVyIHBvb2wgd2hlbgorIyBjaGFuZ2UgYnVm ZmVyaW5nIGlzIHBvc3NpYmxlLCBzbyB0aGF0IHRoZSBjaGFuZ2UgYnVmZmVyIHdpbGwgYmUgdXNl ZAorIyB3aGVuZXZlciBwb3NzaWJsZS4KKy0tIGVycm9yIDAsRVJfVU5LTk9XTl9TWVNURU1fVkFS SUFCTEUKK1NFVCBAaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdfZGVidWdfb3JpZyA9IEBAaW5ub2Ri X2NoYW5nZV9idWZmZXJpbmdfZGVidWc7CistLSBlcnJvciAwLEVSX1VOS05PV05fU1lTVEVNX1ZB UklBQkxFCitTRVQgR0xPQkFMIGlubm9kYl9jaGFuZ2VfYnVmZmVyaW5nX2RlYnVnID0gMTsKKy0t IGVuYWJsZV9xdWVyeV9sb2cKK1NFVCBHTE9CQUwgdHhfaXNvbGF0aW9uPSdSRVBFQVRBQkxFLVJF QUQnOworU0VUIEdMT0JBTCBpbm5vZGJfZmlsZV9mb3JtYXQ9QmFycmFjdWRhOworU0VUIEdMT0JB TCBpbm5vZGJfZmlsZV9wZXJfdGFibGU9b247CisKK0NSRUFURSBUQUJMRSBidWc1NjY4MCgKKyAg ICAgICBhIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwKKyAgICAgICBiIENIQVIoMSks CisgICAgICAgYyBJTlQsCisgICAgICAgSU5ERVgoYikpCitFTkdJTkU9SW5ub0RCOworCitJTlNF UlQgSU5UTyBidWc1NjY4MCBWQUxVRVMoMCwneCcsMSk7CitCRUdJTjsKK1NFTEVDVCBiIEZST00g YnVnNTY2ODA7CisKK2Nvbm5lY3QgKGNvbjEsbG9jYWxob3N0LHJvb3QsLCk7Citjb25uZWN0aW9u IGNvbjE7CitCRUdJTjsKK1VQREFURSBidWc1NjY4MCBTRVQgYj0nWCc7CisKK2Nvbm5lY3Rpb24g ZGVmYXVsdDsKKyMgVGhpcyBzaG91bGQgcmV0dXJuIHRoZSBsYXN0IGNvbW1pdHRlZCB2YWx1ZSAn eCcsIGJ1dCB3b3VsZCByZXR1cm4gJ1gnCisjIGR1ZSB0byBhIGJ1ZyBpbiByb3dfc2VhcmNoX2Zv cl9teXNxbCgpLgorU0VMRUNUIGIgRlJPTSBidWc1NjY4MDsKKyMgVGhpcyB3b3VsZCBhbHdheXMg cmV0dXJuIHRoZSBsYXN0IGNvbW1pdHRlZCB2YWx1ZSAneCcuCitTRUxFQ1QgKiBGUk9NIGJ1ZzU2 NjgwOworCitjb25uZWN0aW9uIGNvbjE7CitST0xMQkFDSzsKK2Rpc2Nvbm5lY3QgY29uMTsKKwor Y29ubmVjdGlvbiBkZWZhdWx0OworCitTRUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwOworCisjIEZvciB0 aGUgcmVzdCBvZiB0aGlzIHRlc3QsIHVzZSB0aGUgUkVBRCBVTkNPTU1JVFRFRCBpc29sYXRpb24g bGV2ZWwKKyMgdG8gc2VlIHdoYXQgZXhpc3RzIGluIHRoZSBzZWNvbmRhcnkgaW5kZXguCitTRVQg R0xPQkFMIHR4X2lzb2xhdGlvbj0nUkVBRC1VTkNPTU1JVFRFRCc7CisKKyMgQ3JlYXRlIGVub3Vn aCByb3dzIGZvciB0aGUgdGFibGUsIHNvIHRoYXQgdGhlIGluc2VydCBidWZmZXIgd2lsbCBiZQor IyB1c2VkIGZvciBtb2RpZnlpbmcgdGhlIHNlY29uZGFyeSBpbmRleCBwYWdlLiBUaGVyZSBtdXN0 IGJlIG11bHRpcGxlCisjIGluZGV4IHBhZ2VzLCBiZWNhdXNlIGNoYW5nZXMgdG8gdGhlIHJvb3Qg cGFnZSBhcmUgbmV2ZXIgYnVmZmVyZWQuCisKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAw LGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZS T00gYnVnNTY2ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1 NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOwor SU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNFUlQg SU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1 ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2ODAg U0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1Qg MCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBG Uk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVn NTY2ODA7CisKK0JFR0lOOworU0VMRUNUIGIgRlJPTSBidWc1NjY4MCBMSU1JVCAyOworCitjb25u ZWN0IChjb24xLGxvY2FsaG9zdCxyb290LCwpOworY29ubmVjdGlvbiBjb24xOworQkVHSU47CitE RUxFVEUgRlJPTSBidWc1NjY4MCBXSEVSRSBhPTE7CisjIFRoaXMgc2hvdWxkIGJlIGJ1ZmZlcmVk LCBpZiBpbm5vZGJfY2hhbmdlX2J1ZmZlcmluZ19kZWJ1ZyA9IDEgaXMgaW4gZWZmZWN0LgorSU5T RVJUIElOVE8gYnVnNTY2ODAgVkFMVUVTKDEsJ1gnLDEpOworCisjIFRoaXMgc2hvdWxkIGZvcmNl IGFuIGluc2VydCBidWZmZXIgbWVyZ2UsIGFuZCByZXR1cm4gJ1gnIGluIHRoZSBmaXJzdCByb3cu CitTRUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwIExJTUlUIDM7CisKK2Nvbm5lY3Rpb24gZGVmYXVsdDsK K1NFTEVDVCBiIEZST00gYnVnNTY2ODAgTElNSVQgMjsKK0NIRUNLIFRBQkxFIGJ1ZzU2NjgwOwor Citjb25uZWN0aW9uIGNvbjE7CitST0xMQkFDSzsKK1NFTEVDVCBiIEZST00gYnVnNTY2ODAgTElN SVQgMjsKK0NIRUNLIFRBQkxFIGJ1ZzU2NjgwOworCitjb25uZWN0aW9uIGRlZmF1bHQ7CitkaXNj b25uZWN0IGNvbjE7CisKK1NFTEVDVCBiIEZST00gYnVnNTY2ODAgTElNSVQgMjsKKworQ1JFQVRF IFRBQkxFIGJ1ZzU2NjgwXzIoCisgICAgICAgYSBJTlQgQVVUT19JTkNSRU1FTlQgUFJJTUFSWSBL RVksCisgICAgICAgYiBWQVJDSEFSKDIpIENIQVJTRVQgbGF0aW4xIENPTExBVEUgbGF0aW4xX2dl cm1hbjJfY2ksCisgICAgICAgYyBJTlQsCisgICAgICAgSU5ERVgoYikpCitFTkdJTkU9SW5ub0RC OworCitJTlNFUlQgSU5UTyBidWc1NjY4MF8yIFNFTEVDVCAwLF9sYXRpbjEgMHhkZixjIEZST00g YnVnNTY2ODA7CisKK0JFR0lOOworU0VMRUNUIEhFWChiKSBGUk9NIGJ1ZzU2NjgwXzIgTElNSVQg MjsKK0RFTEVURSBGUk9NIGJ1ZzU2NjgwXzIgV0hFUkUgYT0xOworIyBUaGlzIHNob3VsZCBiZSBi dWZmZXJlZCwgaWYgaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdfZGVidWcgPSAxIGlzIGluIGVmZmVj dC4KK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwXzIgVkFMVUVTKDEsJ1NTJywxKTsKKworIyBUaGlzIHNo b3VsZCBmb3JjZSBhbiBpbnNlcnQgYnVmZmVyIG1lcmdlLCBhbmQgcmV0dXJuICdTUycgaW4gdGhl IGZpcnN0IHJvdy4KK1NFTEVDVCBIRVgoYikgRlJPTSBidWc1NjY4MF8yIExJTUlUIDM7CitDSEVD SyBUQUJMRSBidWc1NjY4MF8yOworCisjIFRlc3QgdGhpcyB3aXRoIGNvbXByZXNzZWQgdGFibGVz LgorQUxURVIgVEFCTEUgYnVnNTY2ODBfMiBST1dfRk9STUFUPUNPTVBSRVNTRUQgS0VZX0JMT0NL X1NJWkU9MTsKKworU0VMRUNUIEhFWChiKSBGUk9NIGJ1ZzU2NjgwXzIgTElNSVQgMjsKK0RFTEVU RSBGUk9NIGJ1ZzU2NjgwXzIgV0hFUkUgYT0xOworIyBUaGlzIHNob3VsZCBiZSBidWZmZXJlZCwg aWYgaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdfZGVidWcgPSAxIGlzIGluIGVmZmVjdC4KK0lOU0VS VCBJTlRPIGJ1ZzU2NjgwXzIgVkFMVUVTKDEsX2xhdGluMSAweGRmLDEpOworCisjIFRoaXMgc2hv dWxkIGZvcmNlIGFuIGluc2VydCBidWZmZXIgbWVyZ2UsIGFuZCByZXR1cm4gMHhkZiBpbiB0aGUg Zmlyc3Qgcm93LgorU0VMRUNUIEhFWChiKSBGUk9NIGJ1ZzU2NjgwXzIgTElNSVQgMzsKK0NIRUNL IFRBQkxFIGJ1ZzU2NjgwXzI7CisKK0RST1AgVEFCTEUgYnVnNTY2ODBfMjsKK0RST1AgVEFCTEUg YnVnNTY2ODA7CisKKy0tIGRpc2FibGVfcXVlcnlfbG9nCitTRVQgR0xPQkFMIHR4X2lzb2xhdGlv biA9IEB0eF9pc29sYXRpb25fb3JpZzsKK1NFVCBHTE9CQUwgaW5ub2RiX2ZpbGVfcGVyX3RhYmxl ID0gQGlubm9kYl9maWxlX3Blcl90YWJsZV9vcmlnOworU0VUIEdMT0JBTCBpbm5vZGJfZmlsZV9m b3JtYXQgPSBAaW5ub2RiX2ZpbGVfZm9ybWF0X29yaWc7CitTRVQgR0xPQkFMIGlubm9kYl9maWxl X2Zvcm1hdF9tYXggPSBAaW5ub2RiX2ZpbGVfZm9ybWF0X21heF9vcmlnOworLS0gZXJyb3IgMCwg RVJfVU5LTk9XTl9TWVNURU1fVkFSSUFCTEUKK1NFVCBHTE9CQUwgaW5ub2RiX2NoYW5nZV9idWZm ZXJpbmdfZGVidWcgPSBAaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdfZGVidWdfb3JpZzsKCj09PSBt b2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwY3VyLmMnCi0tLSBhL3N0b3Jh Z2UvaW5ub2Jhc2UvYnRyL2J0cjBjdXIuYwlyZXZpZDp2YXNpbC5kaW1vdkBvcmFjbGUuY29tLTIw MTAxMDE4MTIxNjIzLTIycmhraXZoY2Z3eW45MGIKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9idHIv YnRyMGN1ci5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDYzNTE0LWs2 M3Jkczg1c2o1bzBmZGQKQEAgLTE3NDQsNyArMTc0NCw3IEBAIGZ1bmNfZXhpdDoKIFNlZSBpZiB0 aGVyZSBpcyBlbm91Z2ggcGxhY2UgaW4gdGhlIHBhZ2UgbW9kaWZpY2F0aW9uIGxvZyB0byBsb2cK IGFuIHVwZGF0ZS1pbi1wbGFjZS4KIEByZXR1cm4JVFJVRSBpZiBlbm91Z2ggcGxhY2UgKi8KLXN0 YXRpYworVU5JVl9JTlRFUk4KIGlib29sCiBidHJfY3VyX3VwZGF0ZV9hbGxvY196aXAoCiAvKj09 PT09PT09PT09PT09PT09PT09PSovCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFz ZS9idWYvYnVmMGJ1Zi5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2J1Zi9idWYwYnVmLmMJcmV2 aWQ6dmFzaWwuZGltb3ZAb3JhY2xlLmNvbS0yMDEwMTAxODEyMTYyMy0yMnJoa2l2aGNmd3luOTBi CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1ZjBidWYuYwlyZXZpZDptYXJrby5tYWtlbGFA b3JhY2xlLmNvbS0yMDEwMTAxOTA2MzUxNC1rNjNyZHM4NXNqNW8wZmRkCkBAIC0zMDA4LDYgKzMw MDgsNDYgQEAgd2FpdF91bnRpbF91bmZpeGVkOgogCWJ5dGVzLiAqLwogCVVOSVZfTUVNX0FTU0VS VF9SVygmYmxvY2stPnBhZ2UsIHNpemVvZiBibG9jay0+cGFnZSk7CiAjZW5kaWYKKyNpZiBkZWZp bmVkIFVOSVZfREVCVUcgfHwgZGVmaW5lZCBVTklWX0lCVUZfREVCVUcKKwlpZiAoKG1vZGUgPT0g QlVGX0dFVF9JRl9JTl9QT09MIHx8IG1vZGUgPT0gQlVGX0dFVF9JRl9JTl9QT09MX09SX1dBVENI KQorCSAgICAmJiBpYnVmX2RlYnVnKSB7CisJCS8qIFRyeSB0byBldmljdCB0aGUgYmxvY2sgZnJv bSB0aGUgYnVmZmVyIHBvb2wsIHRvIHVzZSB0aGUKKwkJaW5zZXJ0IGJ1ZmZlciAoY2hhbmdlIGJ1 ZmZlcikgYXMgbXVjaCBhcyBwb3NzaWJsZS4gKi8KKworCQlpZiAoYnVmX0xSVV9mcmVlX2Jsb2Nr KCZibG9jay0+cGFnZSwgVFJVRSwgTlVMTCkKKwkJICAgID09IEJVRl9MUlVfRlJFRUQpIHsKKwkJ CW11dGV4X2V4aXQoJmJsb2NrLT5tdXRleCk7CisJCQlpZiAobW9kZSA9PSBCVUZfR0VUX0lGX0lO X1BPT0xfT1JfV0FUQ0gpIHsKKwkJCQkvKiBTZXQgdGhlIHdhdGNoLCBhcyBpdCB3b3VsZCBoYXZl CisJCQkJYmVlbiBzZXQgaWYgdGhlIHBhZ2Ugd2VyZSBub3QgaW4gdGhlCisJCQkJYnVmZmVyIHBv b2wgaW4gdGhlIGZpcnN0IHBsYWNlLiAqLworCQkJCWJsb2NrID0gKGJ1Zl9ibG9ja190KikgYnVm X3Bvb2xfd2F0Y2hfc2V0KAorCQkJCQlzcGFjZSwgb2Zmc2V0LCBmb2xkKTsKKworCQkJCWlmIChV TklWX0xJS0VMWV9OVUxMKGJsb2NrKSkgeworCisJCQkJCS8qIFRoZSBwYWdlIGVudGVyZWQgdGhl IGJ1ZmZlcgorCQkJCQlwb29sIGZvciBzb21lIHJlYXNvbi4gVHJ5IHRvCisJCQkJCWV2aWN0IGl0 IGFnYWluLiAqLworCQkJCQlnb3RvIGdvdF9ibG9jazsKKwkJCQl9CisJCQl9CisJCQlidWZfcG9v bF9tdXRleF9leGl0KGJ1Zl9wb29sKTsKKwkJCWZwcmludGYoc3RkZXJyLAorCQkJCSJpbm5vZGJf Y2hhbmdlX2J1ZmZlcmluZ19kZWJ1ZyBldmljdCAldSAldVxuIiwKKwkJCQkodW5zaWduZWQpIHNw YWNlLCAodW5zaWduZWQpIG9mZnNldCk7CisJCQlyZXR1cm4oTlVMTCk7CisJCX0gZWxzZSBpZiAo YnVmX2ZsdXNoX3BhZ2VfdHJ5KGJ1Zl9wb29sLCBibG9jaykpIHsKKwkJCWZwcmludGYoc3RkZXJy LAorCQkJCSJpbm5vZGJfY2hhbmdlX2J1ZmZlcmluZ19kZWJ1ZyBmbHVzaCAldSAldVxuIiwKKwkJ CQkodW5zaWduZWQpIHNwYWNlLCAodW5zaWduZWQpIG9mZnNldCk7CisJCQlndWVzcyA9IGJsb2Nr OworCQkJZ290byBsb29wOworCQl9CisKKwkJLyogRmFpbGVkIHRvIGV2aWN0IHRoZSBwYWdlOyBj aGFuZ2UgaXQgZGlyZWN0bHkgKi8KKwl9CisjZW5kaWYgLyogVU5JVl9ERUJVRyB8fCBVTklWX0lC VUZfREVCVUcgKi8KIAogCWJ1Zl9ibG9ja19idWZfZml4X2luYyhibG9jaywgZmlsZSwgbGluZSk7 CiAKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2J1Zi9idWYwZmx1LmMnCi0t LSBhL3N0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1ZjBmbHUuYwlyZXZpZDp2YXNpbC5kaW1vdkBvcmFj bGUuY29tLTIwMTAxMDE4MTIxNjIzLTIycmhraXZoY2Z3eW45MGIKKysrIGIvc3RvcmFnZS9pbm5v YmFzZS9idWYvYnVmMGZsdS5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5 MDYzNTE0LWs2M3Jkczg1c2o1bzBmZGQKQEAgLTExMzIsNiArMTEzMiw4MyBAQCBidWZfZmx1c2hf d3JpdGVfYmxvY2tfbG93KAogCX0KIH0KIAorIyBpZiBkZWZpbmVkIFVOSVZfREVCVUcgfHwgZGVm aW5lZCBVTklWX0lCVUZfREVCVUcKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKK1dyaXRlcyBhIGZsdXNoYWJs ZSBwYWdlIGFzeW5jaHJvbm91c2x5IGZyb20gdGhlIGJ1ZmZlciBwb29sIHRvIGEgZmlsZS4KK05P VEU6IGJ1Zl9wb29sX211dGV4IGFuZCBibG9jay0+bXV0ZXggbXVzdCBiZSBoZWxkIHVwb24gZW50 ZXJpbmcgdGhpcworZnVuY3Rpb24sIGFuZCB0aGV5IHdpbGwgYmUgcmVsZWFzZWQgYnkgdGhpcyBm dW5jdGlvbiBhZnRlciBmbHVzaGluZy4KK1RoaXMgaXMgbG9vc2VseSBiYXNlZCBvbiBidWZfZmx1 c2hfYmF0Y2goKSBhbmQgYnVmX2ZsdXNoX3BhZ2UoKS4KK0ByZXR1cm4gVFJVRSBpZiB0aGUgcGFn ZSB3YXMgZmx1c2hlZCBhbmQgdGhlIG11dGV4ZXMgcmVsZWFzZWQgKi8KK1VOSVZfSU5URVJOCitp Ym9vbAorYnVmX2ZsdXNoX3BhZ2VfdHJ5KAorLyo9PT09PT09PT09PT09PT0qLworCWJ1Zl9wb29s X3QqCWJ1Zl9wb29sLAkvKiE8IGluL291dDogYnVmZmVyIHBvb2wgaW5zdGFuY2UgKi8KKwlidWZf YmxvY2tfdCoJYmxvY2spCQkvKiE8IGluL291dDogYnVmZmVyIGNvbnRyb2wgYmxvY2sgKi8KK3sK Kwl1dF9hZChidWZfcG9vbF9tdXRleF9vd24oYnVmX3Bvb2wpKTsKKwl1dF9hZChidWZfYmxvY2tf Z2V0X3N0YXRlKGJsb2NrKSA9PSBCVUZfQkxPQ0tfRklMRV9QQUdFKTsKKwl1dF9hZChtdXRleF9v d24oJmJsb2NrLT5tdXRleCkpOworCisJaWYgKCFidWZfZmx1c2hfcmVhZHlfZm9yX2ZsdXNoKCZi bG9jay0+cGFnZSwgQlVGX0ZMVVNIX0xSVSkpIHsKKwkJcmV0dXJuKEZBTFNFKTsKKwl9CisKKwlp ZiAoYnVmX3Bvb2wtPm5fZmx1c2hbQlVGX0ZMVVNIX0xSVV0gPiAwCisJICAgIHx8IGJ1Zl9wb29s LT5pbml0X2ZsdXNoW0JVRl9GTFVTSF9MUlVdKSB7CisJCS8qIFRoZXJlIGlzIGFscmVhZHkgYSBm bHVzaCBiYXRjaCBvZiB0aGUgc2FtZSB0eXBlIHJ1bm5pbmcgKi8KKwkJcmV0dXJuKEZBTFNFKTsK Kwl9CisKKwlidWZfcG9vbC0+aW5pdF9mbHVzaFtCVUZfRkxVU0hfTFJVXSA9IFRSVUU7CisKKwli dWZfcGFnZV9zZXRfaW9fZml4KCZibG9jay0+cGFnZSwgQlVGX0lPX1dSSVRFKTsKKworCWJ1Zl9w YWdlX3NldF9mbHVzaF90eXBlKCZibG9jay0+cGFnZSwgQlVGX0ZMVVNIX0xSVSk7CisKKwlpZiAo YnVmX3Bvb2wtPm5fZmx1c2hbQlVGX0ZMVVNIX0xSVV0rKyA9PSAwKSB7CisKKwkJb3NfZXZlbnRf cmVzZXQoYnVmX3Bvb2wtPm5vX2ZsdXNoW0JVRl9GTFVTSF9MUlVdKTsKKwl9CisKKwkvKiBWRVJZ IElNUE9SVEFOVDoKKwlCZWNhdXNlIGFueSB0aHJlYWQgbWF5IGNhbGwgdGhlIExSVSBmbHVzaCwg ZXZlbiB3aGVuIG93bmluZworCWxvY2tzIG9uIHBhZ2VzLCB0byBhdm9pZCBkZWFkbG9ja3MsIHdl IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhlCisJcy1sb2NrIGlzIGFjcXVpcmVkIG9uIHRoZSBwYWdl IHdpdGhvdXQgd2FpdGluZzogdGhpcyBpcworCWFjY29tcGxpc2hlZCBiZWNhdXNlIGJ1Zl9mbHVz aF9yZWFkeV9mb3JfZmx1c2goKSBtdXN0IGhvbGQsCisJYW5kIHRoYXQgcmVxdWlyZXMgdGhlIHBh Z2Ugbm90IHRvIGJlIGJ1ZmZlcmZpeGVkLiAqLworCisJcndfbG9ja19zX2xvY2tfZ2VuKCZibG9j ay0+bG9jaywgQlVGX0lPX1dSSVRFKTsKKworCS8qIE5vdGUgdGhhdCB0aGUgcy1sYXRjaCBpcyBh Y3F1aXJlZCBiZWZvcmUgcmVsZWFzaW5nIHRoZQorCWJ1Zl9wb29sIG11dGV4OiB0aGlzIGVuc3Vy ZXMgdGhhdCB0aGUgbGF0Y2ggaXMgYWNxdWlyZWQKKwlpbW1lZGlhdGVseS4gKi8KKworCW11dGV4 X2V4aXQoJmJsb2NrLT5tdXRleCk7CisJYnVmX3Bvb2xfbXV0ZXhfZXhpdChidWZfcG9vbCk7CisK KwkvKiBFdmVuIHRob3VnaCBibG9jayBpcyBub3QgcHJvdGVjdGVkIGJ5IGFueSBtdXRleCBhdCB0 aGlzCisJcG9pbnQsIGl0IGlzIHNhZmUgdG8gYWNjZXNzIGJsb2NrLCBiZWNhdXNlIGl0IGlzIGlv X2ZpeGVkIGFuZAorCW9sZGVzdF9tb2RpZmljYXRpb24gIT0gMC4gIFRodXMsIGl0IGNhbm5vdCBi ZSByZWxvY2F0ZWQgaW4gdGhlCisJYnVmZmVyIHBvb2wgb3IgcmVtb3ZlZCBmcm9tIGZsdXNoX2xp c3Qgb3IgTFJVX2xpc3QuICovCisKKwlidWZfZmx1c2hfd3JpdGVfYmxvY2tfbG93KCZibG9jay0+ cGFnZSk7CisKKwlidWZfcG9vbF9tdXRleF9lbnRlcihidWZfcG9vbCk7CisJYnVmX3Bvb2wtPmlu aXRfZmx1c2hbQlVGX0ZMVVNIX0xSVV0gPSBGQUxTRTsKKworCWlmIChidWZfcG9vbC0+bl9mbHVz aFtCVUZfRkxVU0hfTFJVXSA9PSAwKSB7CisJCS8qIFRoZSBydW5uaW5nIGZsdXNoIGJhdGNoIGhh cyBlbmRlZCAqLworCQlvc19ldmVudF9zZXQoYnVmX3Bvb2wtPm5vX2ZsdXNoW0JVRl9GTFVTSF9M UlVdKTsKKwl9CisKKwlidWZfcG9vbF9tdXRleF9leGl0KGJ1Zl9wb29sKTsKKwlidWZfZmx1c2hf YnVmZmVyZWRfd3JpdGVzKCk7CisKKwlyZXR1cm4oVFJVRSk7Cit9CisjIGVuZGlmIC8qIFVOSVZf REVCVUcgfHwgVU5JVl9JQlVGX0RFQlVHICovCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFdyaXRlcyBh IGZsdXNoYWJsZSBwYWdlIGFzeW5jaHJvbm91c2x5IGZyb20gdGhlIGJ1ZmZlciBwb29sIHRvIGEg ZmlsZS4KIE5PVEU6IGluIHNpbXVsYXRlZCBhaW8gd2UgbXVzdCBjYWxsCgo9PT0gbW9kaWZpZWQg ZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9kYi5jYycKLS0tIGEvc3RvcmFn ZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9kYi5jYwlyZXZpZDp2YXNpbC5kaW1vdkBvcmFjbGUu Y29tLTIwMTAxMDE4MTIxNjIzLTIycmhraXZoY2Z3eW45MGIKKysrIGIvc3RvcmFnZS9pbm5vYmFz ZS9oYW5kbGVyL2hhX2lubm9kYi5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEw MTAxOTA2MzUxNC1rNjNyZHM4NXNqNW8wZmRkCkBAIC00NjE1LDE3ICs0NjE1LDE4IEBAIGluY2x1 ZGVfZmllbGQ6CiAJCW5fcmVxdWVzdGVkX2ZpZWxkcysrOwogCiAJCXRlbXBsLT5jb2xfbm8gPSBp OworCQl0ZW1wbC0+Y2x1c3RfcmVjX2ZpZWxkX25vID0gZGljdF9jb2xfZ2V0X2NsdXN0X3BvcygK KwkJCWNvbCwgY2x1c3RfaW5kZXgpOworCQl1dF9hZCh0ZW1wbC0+Y2x1c3RfcmVjX2ZpZWxkX25v ICE9IFVMSU5UX1VOREVGSU5FRCk7CiAKIAkJaWYgKGluZGV4ID09IGNsdXN0X2luZGV4KSB7Ci0J CQl0ZW1wbC0+cmVjX2ZpZWxkX25vID0gZGljdF9jb2xfZ2V0X2NsdXN0X3BvcygKLQkJCQljb2ws IGluZGV4KTsKKwkJCXRlbXBsLT5yZWNfZmllbGRfbm8gPSB0ZW1wbC0+Y2x1c3RfcmVjX2ZpZWxk X25vOwogCQl9IGVsc2UgewogCQkJdGVtcGwtPnJlY19maWVsZF9ubyA9IGRpY3RfaW5kZXhfZ2V0 X250aF9jb2xfcG9zKAogCQkJCQkJCQlpbmRleCwgaSk7Ci0JCX0KLQotCQlpZiAodGVtcGwtPnJl Y19maWVsZF9ubyA9PSBVTElOVF9VTkRFRklORUQpIHsKLQkJCXByZWJ1aWx0LT5uZWVkX3RvX2Fj Y2Vzc19jbHVzdGVyZWQgPSBUUlVFOworCQkJaWYgKHRlbXBsLT5yZWNfZmllbGRfbm8gPT0gVUxJ TlRfVU5ERUZJTkVEKSB7CisJCQkJcHJlYnVpbHQtPm5lZWRfdG9fYWNjZXNzX2NsdXN0ZXJlZCA9 IFRSVUU7CisJCQl9CiAJCX0KIAogCQlpZiAoZmllbGQtPm51bGxfcHRyKSB7CkBAIC00Njc1LDkg KzQ2NzYsNyBAQCBza2lwX2ZpZWxkOgogCQlmb3IgKGkgPSAwOyBpIDwgbl9yZXF1ZXN0ZWRfZmll bGRzOyBpKyspIHsKIAkJCXRlbXBsID0gcHJlYnVpbHQtPm15c3FsX3RlbXBsYXRlICsgaTsKIAot CQkJdGVtcGwtPnJlY19maWVsZF9ubyA9IGRpY3RfY29sX2dldF9jbHVzdF9wb3MoCi0JCQkJJmlu ZGV4LT50YWJsZS0+Y29sc1t0ZW1wbC0+Y29sX25vXSwKLQkJCQljbHVzdF9pbmRleCk7CisJCQl0 ZW1wbC0+cmVjX2ZpZWxkX25vID0gdGVtcGwtPmNsdXN0X3JlY19maWVsZF9ubzsKIAkJfQogCX0K IH0KQEAgLTExMTYyLDYgKzExMTYxLDEzIEBAIHN0YXRpYyBNWVNRTF9TWVNWQVJfU1RSKGNoYW5n ZV9idWZmZXJpbmcKICAgaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdfdmFsaWRhdGUsCiAgIGlubm9k Yl9jaGFuZ2VfYnVmZmVyaW5nX3VwZGF0ZSwgImFsbCIpOwogCisjaWYgZGVmaW5lZCBVTklWX0RF QlVHIHx8IGRlZmluZWQgVU5JVl9JQlVGX0RFQlVHCitzdGF0aWMgTVlTUUxfU1lTVkFSX1VJTlQo Y2hhbmdlX2J1ZmZlcmluZ19kZWJ1ZywgaWJ1Zl9kZWJ1ZywKKyAgUExVR0lOX1ZBUl9SUUNNREFS RywKKyAgIkRlYnVnIGZsYWdzIGZvciBJbm5vREIgY2hhbmdlIGJ1ZmZlcmluZyAoMD1ub25lKSIs CisgIE5VTEwsIE5VTEwsIDAsIDAsIDEsIDApOworI2VuZGlmIC8qIFVOSVZfREVCVUcgfHwgVU5J Vl9JQlVGX0RFQlVHICovCisKIHN0YXRpYyBNWVNRTF9TWVNWQVJfVUxPTkcocmVhZF9haGVhZF90 aHJlc2hvbGQsIHNydl9yZWFkX2FoZWFkX3RocmVzaG9sZCwKICAgUExVR0lOX1ZBUl9SUUNNREFS RywKICAgIk51bWJlciBvZiBwYWdlcyB0aGF0IG11c3QgYmUgYWNjZXNzZWQgc2VxdWVudGlhbGx5 IGZvciBJbm5vREIgdG8gIgpAQCAtMTEyMjUsNiArMTEyMzEsOSBAQCBzdGF0aWMgc3RydWN0IHN0 X215c3FsX3N5c192YXIqIGlubm9iYXNlCiAgIE1ZU1FMX1NZU1ZBUih1c2Vfc3lzX21hbGxvYyks CiAgIE1ZU1FMX1NZU1ZBUih1c2VfbmF0aXZlX2FpbyksCiAgIE1ZU1FMX1NZU1ZBUihjaGFuZ2Vf YnVmZmVyaW5nKSwKKyNpZiBkZWZpbmVkIFVOSVZfREVCVUcgfHwgZGVmaW5lZCBVTklWX0lCVUZf REVCVUcKKyAgTVlTUUxfU1lTVkFSKGNoYW5nZV9idWZmZXJpbmdfZGVidWcpLAorI2VuZGlmIC8q IFVOSVZfREVCVUcgfHwgVU5JVl9JQlVGX0RFQlVHICovCiAgIE1ZU1FMX1NZU1ZBUihyZWFkX2Fo ZWFkX3RocmVzaG9sZCksCiAgIE1ZU1FMX1NZU1ZBUihpb19jYXBhY2l0eSksCiAgIE1ZU1FMX1NZ U1ZBUihwdXJnZV90aHJlYWRzKSwKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNl L2lidWYvaWJ1ZjBpYnVmLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaWJ1Zi9pYnVmMGlidWYu YwlyZXZpZDp2YXNpbC5kaW1vdkBvcmFjbGUuY29tLTIwMTAxMDE4MTIxNjIzLTIycmhraXZoY2Z3 eW45MGIKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pYnVmL2lidWYwaWJ1Zi5jCXJldmlkOm1hcmtv Lm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDYzNTE0LWs2M3Jkczg1c2o1bzBmZGQKQEAgLTQ5 LDYgKzQ5LDcgQEAgQ3JlYXRlZCA3LzE5LzE5OTcgSGVpa2tpIFR1dXJpCiAjaW5jbHVkZSAiYnRy MGN1ci5oIgogI2luY2x1ZGUgImJ0cjBwY3VyLmgiCiAjaW5jbHVkZSAiYnRyMGJ0ci5oIgorI2lu Y2x1ZGUgInJvdzB1cGQuaCIKICNpbmNsdWRlICJzeW5jMHN5bmMuaCIKICNpbmNsdWRlICJkaWN0 MGJvb3QuaCIKICNpbmNsdWRlICJmdXQwbHN0LmgiCkBAIC0xOTIsNiArMTkzLDExIEBAIGFjY2Vz cyBvcmRlciBydWxlcy4gKi8KIC8qKiBPcGVyYXRpb25zIHRoYXQgY2FuIGN1cnJlbnRseSBiZSBi dWZmZXJlZC4gKi8KIFVOSVZfSU5URVJOIGlidWZfdXNlX3QJaWJ1Zl91c2UJCT0gSUJVRl9VU0Vf QUxMOwogCisjaWYgZGVmaW5lZCBVTklWX0RFQlVHIHx8IGRlZmluZWQgVU5JVl9JQlVGX0RFQlVH CisvKiogRmxhZyB0byBjb250cm9sIGluc2VydCBidWZmZXIgZGVidWdnaW5nLiAqLworVU5JVl9J TlRFUk4gdWludAlpYnVmX2RlYnVnOworI2VuZGlmIC8qIFVOSVZfREVCVUcgfHwgVU5JVl9JQlVG X0RFQlVHICovCisKIC8qKiBUaGUgaW5zZXJ0IGJ1ZmZlciBjb250cm9sIHN0cnVjdHVyZSAqLwog VU5JVl9JTlRFUk4gaWJ1Zl90KglpYnVmCQkJPSBOVUxMOwogCkBAIC0yNzYxLDkgKzI3NjcsOCBA QCBpYnVmX2dldF92b2x1bWVfYnVmZmVyZWRfY291bnQoCiAKIAlzd2l0Y2ggKGlidWZfb3ApIHsK IAljYXNlIElCVUZfT1BfSU5TRVJUOgotCQkvKiBJbnNlcnRzIGNhbiBiZSBkb25lIGJ5Ci0JCWJ0 cl9jdXJfc2V0X2RlbGV0ZWRfZmxhZ19mb3JfaWJ1ZigpLiAgQmVjYXVzZQotCQlkZWxldGUtbWFy ayBhbmQgaW5zZXJ0IG9wZXJhdGlvbnMgY2FuIGJlIHBvaW50aW5nIHRvCisJCS8qIEluc2VydHMg Y2FuIGJlIGRvbmUgYnkgdXBkYXRpbmcgYSBkZWxldGUtbWFya2VkIHJlY29yZC4KKwkJQmVjYXVz ZSBkZWxldGUtbWFyayBhbmQgaW5zZXJ0IG9wZXJhdGlvbnMgY2FuIGJlIHBvaW50aW5nIHRvCiAJ CXRoZSBzYW1lIHJlY29yZHMsIHdlIG11c3Qgbm90IGNvdW50IGR1cGxpY2F0ZXMuICovCiAJY2Fz ZSBJQlVGX09QX0RFTEVURV9NQVJLOgogCQkvKiBUaGVyZSBtdXN0IGJlIGEgcmVjb3JkIHRvIGRl bGV0ZS1tYXJrLgpAQCAtMzc0OCw5ICszNzUzLDgwIEBAIER1cmluZyBtZXJnZSwgaW5zZXJ0cyB0 byBhbiBpbmRleCBwYWdlIGEKIGZyb20gdGhlIGluc2VydCBidWZmZXIuICovCiBzdGF0aWMKIHZv aWQKK2lidWZfaW5zZXJ0X3RvX2luZGV4X3BhZ2VfbG93KAorLyo9PT09PT09PT09PT09PT09PT09 PT09PT09PSovCisJY29uc3QgZHR1cGxlX3QqCWVudHJ5LAkvKiE8IGluOiBidWZmZXJlZCBlbnRy eSB0byBpbnNlcnQgKi8KKwlidWZfYmxvY2tfdCoJYmxvY2ssCS8qITwgaW4vb3V0OiBpbmRleCBw YWdlIHdoZXJlIHRoZSBidWZmZXJlZAorCQkJCWVudHJ5IHNob3VsZCBiZSBwbGFjZWQgKi8KKwlk aWN0X2luZGV4X3QqCWluZGV4LAkvKiE8IGluOiByZWNvcmQgZGVzY3JpcHRvciAqLworCW10cl90 KgkJbXRyLAkvKiE8IGluL291dDogbXRyICovCisJcGFnZV9jdXJfdCoJcGFnZV9jdXIpLyohPCBp bi9vdXQ6IGN1cnNvciBwb3NpdGlvbmVkIG9uIHRoZSByZWNvcmQKKwkJCQlhZnRlciB3aGljaCB0 byBpbnNlcnQgdGhlIGJ1ZmZlcmVkIGVudHJ5ICovCit7CisJY29uc3QgcGFnZV90KglwYWdlOwor CXVsaW50CQlzcGFjZTsKKwl1bGludAkJcGFnZV9ubzsKKwl1bGludAkJemlwX3NpemU7CisJY29u c3QgcGFnZV90KgliaXRtYXBfcGFnZTsKKwl1bGludAkJb2xkX2JpdHM7CisKKwlpZiAoVU5JVl9M SUtFTFkKKwkgICAgKHBhZ2VfY3VyX3R1cGxlX2luc2VydChwYWdlX2N1ciwgZW50cnksIGluZGV4 LCAwLCBtdHIpICE9IE5VTEwpKSB7CisJCXJldHVybjsKKwl9CisKKwkvKiBJZiB0aGUgcmVjb3Jk IGRpZCBub3QgZml0LCByZW9yZ2FuaXplICovCisKKwlidHJfcGFnZV9yZW9yZ2FuaXplKGJsb2Nr LCBpbmRleCwgbXRyKTsKKwlwYWdlX2N1cl9zZWFyY2goYmxvY2ssIGluZGV4LCBlbnRyeSwgUEFH RV9DVVJfTEUsIHBhZ2VfY3VyKTsKKworCS8qIFRoaXMgdGltZSB0aGUgcmVjb3JkIG11c3QgZml0 ICovCisKKwlpZiAoVU5JVl9MSUtFTFkKKwkgICAgKHBhZ2VfY3VyX3R1cGxlX2luc2VydChwYWdl X2N1ciwgZW50cnksIGluZGV4LCAwLCBtdHIpICE9IE5VTEwpKSB7CisJCXJldHVybjsKKwl9CisK KwlwYWdlID0gYnVmX2Jsb2NrX2dldF9mcmFtZShibG9jayk7CisKKwl1dF9wcmludF90aW1lc3Rh bXAoc3RkZXJyKTsKKworCWZwcmludGYoc3RkZXJyLAorCQkiICBJbm5vREI6IEVycm9yOiBJbnNl cnQgYnVmZmVyIGluc2VydCBmYWlsczsiCisJCSIgcGFnZSBmcmVlICVsdSwgZHR1cGxlIHNpemUg JWx1XG4iLAorCQkodWxvbmcpIHBhZ2VfZ2V0X21heF9pbnNlcnRfc2l6ZShwYWdlLCAxKSwKKwkJ KHVsb25nKSByZWNfZ2V0X2NvbnZlcnRlZF9zaXplKGluZGV4LCBlbnRyeSwgMCkpOworCWZwdXRz KCJJbm5vREI6IENhbm5vdCBpbnNlcnQgaW5kZXggcmVjb3JkICIsIHN0ZGVycik7CisJZHR1cGxl X3ByaW50KHN0ZGVyciwgZW50cnkpOworCWZwdXRzKCJcbklubm9EQjogVGhlIHRhYmxlIHdoZXJl IHRoaXMgaW5kZXggcmVjb3JkIGJlbG9uZ3NcbiIKKwkgICAgICAiSW5ub0RCOiBpcyBub3cgcHJv YmFibHkgY29ycnVwdC4gUGxlYXNlIHJ1biBDSEVDSyBUQUJMRSBvblxuIgorCSAgICAgICJJbm5v REI6IHRoYXQgdGFibGUuXG4iLCBzdGRlcnIpOworCisJc3BhY2UgPSBwYWdlX2dldF9zcGFjZV9p ZChwYWdlKTsKKwl6aXBfc2l6ZSA9IGJ1Zl9ibG9ja19nZXRfemlwX3NpemUoYmxvY2spOworCXBh Z2Vfbm8gPSBwYWdlX2dldF9wYWdlX25vKHBhZ2UpOworCisJYml0bWFwX3BhZ2UgPSBpYnVmX2Jp dG1hcF9nZXRfbWFwX3BhZ2Uoc3BhY2UsIHBhZ2Vfbm8sIHppcF9zaXplLCBtdHIpOworCW9sZF9i aXRzID0gaWJ1Zl9iaXRtYXBfcGFnZV9nZXRfYml0cyhiaXRtYXBfcGFnZSwgcGFnZV9ubywgemlw X3NpemUsCisJCQkJCSAgICAgSUJVRl9CSVRNQVBfRlJFRSwgbXRyKTsKKworCWZwcmludGYoc3Rk ZXJyLAorCQkiSW5ub0RCOiBzcGFjZSAlbHUsIHBhZ2UgJWx1LCB6aXBfc2l6ZSAlbHUsIGJpdG1h cCBiaXRzICVsdVxuIiwKKwkJKHVsb25nKSBzcGFjZSwgKHVsb25nKSBwYWdlX25vLAorCQkodWxv bmcpIHppcF9zaXplLCAodWxvbmcpIG9sZF9iaXRzKTsKKworCWZwdXRzKCJJbm5vREI6IFN1Ym1p dCBhIGRldGFpbGVkIGJ1ZyByZXBvcnQiCisJICAgICAgIiB0byBodHRwOi8vYnVncy5teXNxbC5j b21cbiIsIHN0ZGVycik7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKK0R1cmluZyBtZXJnZSwgaW5z ZXJ0cyB0byBhbiBpbmRleCBwYWdlIGEgc2Vjb25kYXJ5IGluZGV4IGVudHJ5IGV4dHJhY3RlZAor ZnJvbSB0aGUgaW5zZXJ0IGJ1ZmZlci4gKi8KK3N0YXRpYwordm9pZAogaWJ1Zl9pbnNlcnRfdG9f aW5kZXhfcGFnZSgKIC8qPT09PT09PT09PT09PT09PT09PT09PSovCi0JZHR1cGxlX3QqCWVudHJ5 LAkvKiE8IGluOiBidWZmZXJlZCBlbnRyeSB0byBpbnNlcnQgKi8KKwljb25zdCBkdHVwbGVfdCoJ ZW50cnksCS8qITwgaW46IGJ1ZmZlcmVkIGVudHJ5IHRvIGluc2VydCAqLwogCWJ1Zl9ibG9ja190 KglibG9jaywJLyohPCBpbi9vdXQ6IGluZGV4IHBhZ2Ugd2hlcmUgdGhlIGJ1ZmZlcmVkIGVudHJ5 CiAJCQkJc2hvdWxkIGJlIHBsYWNlZCAqLwogCWRpY3RfaW5kZXhfdCoJaW5kZXgsCS8qITwgaW46 IHJlY29yZCBkZXNjcmlwdG9yICovCkBAIC0zNzYwLDExICszODM2LDEwIEBAIGlidWZfaW5zZXJ0 X3RvX2luZGV4X3BhZ2UoCiAJdWxpbnQJCWxvd19tYXRjaDsKIAlwYWdlX3QqCQlwYWdlCQk9IGJ1 Zl9ibG9ja19nZXRfZnJhbWUoYmxvY2spOwogCXJlY190KgkJcmVjOwotCXBhZ2VfdCoJCWJpdG1h cF9wYWdlOwotCXVsaW50CQlvbGRfYml0czsKIAogCXV0X2FkKGlidWZfaW5zaWRlKCkpOwogCXV0 X2FkKGR0dXBsZV9jaGVja190eXBlZChlbnRyeSkpOworCXV0X2FkKCFidWZfYmxvY2tfYWxpZ24o cGFnZSktPmlzX2hhc2hlZCk7CiAKIAlpZiAoVU5JVl9VTkxJS0VMWShkaWN0X3RhYmxlX2lzX2Nv bXAoaW5kZXgtPnRhYmxlKQogCQkJICAhPSAoaWJvb2wpISFwYWdlX2lzX2NvbXAocGFnZSkpKSB7 CkBAIC0zODEwLDcxICszODg1LDg3IEBAIGR1bXA6CiAJbG93X21hdGNoID0gcGFnZV9jdXJfc2Vh cmNoKGJsb2NrLCBpbmRleCwgZW50cnksCiAJCQkJICAgIFBBR0VfQ1VSX0xFLCAmcGFnZV9jdXIp OwogCi0JaWYgKGxvd19tYXRjaCA9PSBkdHVwbGVfZ2V0X25fZmllbGRzKGVudHJ5KSkgeworCWlm IChVTklWX1VOTElLRUxZKGxvd19tYXRjaCA9PSBkdHVwbGVfZ2V0X25fZmllbGRzKGVudHJ5KSkp IHsKKwkJbWVtX2hlYXBfdCoJaGVhcDsKKwkJdXBkX3QqCQl1cGRhdGU7CisJCXVsaW50KgkJb2Zm c2V0czsKIAkJcGFnZV96aXBfZGVzX3QqCXBhZ2VfemlwOwogCiAJCXJlYyA9IHBhZ2VfY3VyX2dl dF9yZWMoJnBhZ2VfY3VyKTsKLQkJcGFnZV96aXAgPSBidWZfYmxvY2tfZ2V0X3BhZ2VfemlwKGJs b2NrKTsKIAotCQlidHJfY3VyX3NldF9kZWxldGVkX2ZsYWdfZm9yX2lidWYocmVjLCBwYWdlX3pp cCwgRkFMU0UsIG10cik7Ci0JfSBlbHNlIHsKLQkJcmVjID0gcGFnZV9jdXJfdHVwbGVfaW5zZXJ0 KCZwYWdlX2N1ciwgZW50cnksIGluZGV4LCAwLCBtdHIpOworCQkvKiBUaGlzIGlzIGJhc2VkIG9u CisJCXJvd19pbnNfc2VjX2luZGV4X2VudHJ5X2J5X21vZGlmeShCVFJfTU9ESUZZX0xFQUYpLiAq LworCQl1dF9hZChyZWNfZ2V0X2RlbGV0ZWRfZmxhZyhyZWMsIHBhZ2VfaXNfY29tcChwYWdlKSkp OworCisJCWhlYXAgPSBtZW1faGVhcF9jcmVhdGUoMTAyNCk7CisKKwkJb2Zmc2V0cyA9IHJlY19n ZXRfb2Zmc2V0cyhyZWMsIGluZGV4LCBOVUxMLCBVTElOVF9VTkRFRklORUQsCisJCQkJCSAgJmhl YXApOworCQl1cGRhdGUgPSByb3dfdXBkX2J1aWxkX3NlY19yZWNfZGlmZmVyZW5jZV9iaW5hcnko CisJCQlpbmRleCwgZW50cnksIHJlYywgTlVMTCwgaGVhcCk7CiAKLQkJaWYgKFVOSVZfTElLRUxZ KHJlYyAhPSBOVUxMKSkgeworCQlwYWdlX3ppcCA9IGJ1Zl9ibG9ja19nZXRfcGFnZV96aXAoYmxv Y2spOworCisJCWlmICh1cGRhdGUtPm5fZmllbGRzID09IDApIHsKKwkJCS8qIFRoZSByZWNvcmRz IG9ubHkgZGlmZmVyIGluIHRoZSBkZWxldGUtbWFyay4KKwkJCUNsZWFyIHRoZSBkZWxldGUtbWFy aywgbGlrZSB3ZSBkaWQgYmVmb3JlCisJCQlCdWcgIzU2NjgwIHdhcyBmaXhlZC4gKi8KKwkJCWJ0 cl9jdXJfc2V0X2RlbGV0ZWRfZmxhZ19mb3JfaWJ1ZigKKwkJCQlyZWMsIHBhZ2VfemlwLCBGQUxT RSwgbXRyKTsKK3VwZGF0ZWRfaW5fcGxhY2U6CisJCQltZW1faGVhcF9mcmVlKGhlYXApOwogCQkJ cmV0dXJuOwogCQl9CiAKLQkJLyogSWYgdGhlIHJlY29yZCBkaWQgbm90IGZpdCwgcmVvcmdhbml6 ZSAqLworCQkvKiBDb3B5IHRoZSBpbmZvIGJpdHMuIENsZWFyIHRoZSBkZWxldGUtbWFyay4gKi8K KwkJdXBkYXRlLT5pbmZvX2JpdHMgPSByZWNfZ2V0X2luZm9fYml0cyhyZWMsIHBhZ2VfaXNfY29t cChwYWdlKSk7CisJCXVwZGF0ZS0+aW5mb19iaXRzICY9IH5SRUNfSU5GT19ERUxFVEVEX0ZMQUc7 CisKKwkJLyogV2UgY2Fubm90IGludm9rZSBidHJfY3VyX29wdGltaXN0aWNfdXBkYXRlKCkgaGVy ZSwKKwkJYmVjYXVzZSB3ZSBkbyBub3QgaGF2ZSBhIGJ0cl9jdXJfdCBvciBxdWVfdGhyX3QsCisJ CWFzIHRoZSBpbnNlcnQgYnVmZmVyIG1lcmdlIG9jY3VycyBhdCBhIHZlcnkgbG93IGxldmVsLiAq LworCQlpZiAoIXJvd191cGRfY2hhbmdlc19maWVsZF9zaXplX29yX2V4dGVybmFsKGluZGV4LCBv ZmZzZXRzLAorCQkJCQkJCSAgICB1cGRhdGUpCisJCSAgICAmJiAoIXBhZ2VfemlwIHx8IGJ0cl9j dXJfdXBkYXRlX2FsbG9jX3ppcCgKKwkJCQlwYWdlX3ppcCwgYmxvY2ssIGluZGV4LAorCQkJCXJl Y19vZmZzX3NpemUob2Zmc2V0cyksIEZBTFNFLCBtdHIpKSkgeworCQkJLyogVGhpcyBpcyB0aGUg ZWFzeSBjYXNlLiBEbyBzb21ldGhpbmcgc2ltaWxhcgorCQkJdG8gYnRyX2N1cl91cGRhdGVfaW5f cGxhY2UoKS4gKi8KKwkJCXJvd191cGRfcmVjX2luX3BsYWNlKHJlYywgaW5kZXgsIG9mZnNldHMs CisJCQkJCSAgICAgdXBkYXRlLCBwYWdlX3ppcCk7CisJCQlnb3RvIHVwZGF0ZWRfaW5fcGxhY2U7 CisJCX0KKworCQkvKiBBIGNvbGxhdGlvbiBtYXkgaWRlbnRpZnkgdmFsdWVzIHRoYXQgZGlmZmVy IGluCisJCXN0b3JhZ2UgbGVuZ3RoLgorCQlTb21lIGV4YW1wbGVzICgxIG9yIDIgYnl0ZXMpOgor CQl1dGY4X3R1cmtpc2hfY2k6IEkgPSBVKzAxMzEgTEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1Mg SQorCQl1dGY4X2dlbmVyYWxfY2k6IFMgPSBVKzAwREYgTEFUSU4gU01BTEwgTEVUVEVSIFNIQVJQ IFMKKwkJdXRmOF9nZW5lcmFsX2NpOiBBID0gVSswMEU0IExBVElOIFNNQUxMIExFVFRFUiBBIFdJ VEggRElBRVJFU0lTCisKKwkJbGF0aW4xX2dlcm1hbjJfY2k6IFNTID0gVSswMERGIExBVElOIFNN QUxMIExFVFRFUiBTSEFSUCBTCisKKwkJRXhhbXBsZXMgb2YgYSBjaGFyYWN0ZXIgKDMtYnl0ZSBV VEYtOCBzZXF1ZW5jZSkKKwkJaWRlbnRpZmllZCB3aXRoIDIgb3IgNCBjaGFyYWN0ZXJzICgxLWJ5 dGUgVVRGLTggc2VxdWVuY2VzKToKKworCQl1dGY4X3VuaWNvZGVfY2k6ICdJSScgPSBVKzIxNzEg U01BTEwgUk9NQU4gTlVNRVJBTCBUV08KKwkJdXRmOF91bmljb2RlX2NpOiAnKDEwKScgPSBVKzI0 N0QgUEFSRU5USEVTSVpFRCBOVU1CRVIgVEVOCisJCSovCiAKLQkJYnRyX3BhZ2VfcmVvcmdhbml6 ZShibG9jaywgaW5kZXgsIG10cik7Ci0JCXBhZ2VfY3VyX3NlYXJjaChibG9jaywgaW5kZXgsIGVu dHJ5LCBQQUdFX0NVUl9MRSwgJnBhZ2VfY3VyKTsKLQotCQkvKiBUaGlzIHRpbWUgdGhlIHJlY29y ZCBtdXN0IGZpdCAqLwotCQlpZiAoVU5JVl9VTkxJS0VMWQotCQkgICAgKCFwYWdlX2N1cl90dXBs ZV9pbnNlcnQoJnBhZ2VfY3VyLCBlbnRyeSwgaW5kZXgsCi0JCQkJCSAgICAwLCBtdHIpKSkgewot CQkJdWxpbnQJc3BhY2U7Ci0JCQl1bGludAlwYWdlX25vOwotCQkJdWxpbnQJemlwX3NpemU7CisJ CS8qIERlbGV0ZSB0aGUgZGlmZmVyZW50LWxlbmd0aCByZWNvcmQsIGFuZCBpbnNlcnQgdGhlCisJ CWJ1ZmZlcmVkIG9uZS4gKi8KIAotCQkJdXRfcHJpbnRfdGltZXN0YW1wKHN0ZGVycik7Ci0KLQkJ CWZwcmludGYoc3RkZXJyLAotCQkJCSIgIElubm9EQjogRXJyb3I6IEluc2VydCBidWZmZXIgaW5z ZXJ0IgotCQkJCSIgZmFpbHM7IHBhZ2UgZnJlZSAlbHUsIgotCQkJCSIgZHR1cGxlIHNpemUgJWx1 XG4iLAotCQkJCSh1bG9uZykgcGFnZV9nZXRfbWF4X2luc2VydF9zaXplKAotCQkJCQlwYWdlLCAx KSwKLQkJCQkodWxvbmcpIHJlY19nZXRfY29udmVydGVkX3NpemUoCi0JCQkJCWluZGV4LCBlbnRy eSwgMCkpOwotCQkJZnB1dHMoIklubm9EQjogQ2Fubm90IGluc2VydCBpbmRleCByZWNvcmQgIiwK LQkJCSAgICAgIHN0ZGVycik7Ci0JCQlkdHVwbGVfcHJpbnQoc3RkZXJyLCBlbnRyeSk7Ci0JCQlm cHV0cygiXG5Jbm5vREI6IFRoZSB0YWJsZSB3aGVyZSIKLQkJCSAgICAgICIgdGhpcyBpbmRleCBy ZWNvcmQgYmVsb25nc1xuIgotCQkJICAgICAgIklubm9EQjogaXMgbm93IHByb2JhYmx5IGNvcnJ1 cHQuIgotCQkJICAgICAgIiBQbGVhc2UgcnVuIENIRUNLIFRBQkxFIG9uXG4iCi0JCQkgICAgICAi SW5ub0RCOiB0aGF0IHRhYmxlLlxuIiwgc3RkZXJyKTsKLQotCQkJc3BhY2UgPSBwYWdlX2dldF9z cGFjZV9pZChwYWdlKTsKLQkJCXppcF9zaXplID0gYnVmX2Jsb2NrX2dldF96aXBfc2l6ZShibG9j ayk7Ci0JCQlwYWdlX25vID0gcGFnZV9nZXRfcGFnZV9ubyhwYWdlKTsKLQotCQkJYml0bWFwX3Bh Z2UgPSBpYnVmX2JpdG1hcF9nZXRfbWFwX3BhZ2UoCi0JCQkJc3BhY2UsIHBhZ2Vfbm8sIHppcF9z aXplLCBtdHIpOwotCQkJb2xkX2JpdHMgPSBpYnVmX2JpdG1hcF9wYWdlX2dldF9iaXRzKAotCQkJ CWJpdG1hcF9wYWdlLCBwYWdlX25vLCB6aXBfc2l6ZSwKLQkJCQlJQlVGX0JJVE1BUF9GUkVFLCBt dHIpOwotCi0JCQlmcHJpbnRmKHN0ZGVyciwKLQkJCQkiSW5ub0RCOiBzcGFjZSAlbHUsIHBhZ2Ug JWx1LCIKLQkJCQkiIHppcF9zaXplICVsdSwgYml0bWFwIGJpdHMgJWx1XG4iLAotCQkJCSh1bG9u Zykgc3BhY2UsICh1bG9uZykgcGFnZV9ubywKLQkJCQkodWxvbmcpIHppcF9zaXplLCAodWxvbmcp IG9sZF9iaXRzKTsKKwkJbG9ja19yZWNfc3RvcmVfb25fcGFnZV9pbmZpbXVtKGJsb2NrLCByZWMp OworCQlwYWdlX2N1cl9kZWxldGVfcmVjKCZwYWdlX2N1ciwgaW5kZXgsIG9mZnNldHMsIG10cik7 CisJCXBhZ2VfY3VyX21vdmVfdG9fcHJldigmcGFnZV9jdXIpOworCQltZW1faGVhcF9mcmVlKGhl YXApOwogCi0JCQlmcHV0cygiSW5ub0RCOiBTdWJtaXQgYSBkZXRhaWxlZCBidWcgcmVwb3J0Igot CQkJICAgICAgIiB0byBodHRwOi8vYnVncy5teXNxbC5jb21cbiIsIHN0ZGVycik7Ci0JCX0KKwkJ aWJ1Zl9pbnNlcnRfdG9faW5kZXhfcGFnZV9sb3coZW50cnksIGJsb2NrLCBpbmRleCwgbXRyLAor CQkJCQkgICAgICAmcGFnZV9jdXIpOworCQlsb2NrX3JlY19yZXN0b3JlX2Zyb21fcGFnZV9pbmZp bXVtKGJsb2NrLCByZWMsIGJsb2NrKTsKKwl9IGVsc2UgeworCQlpYnVmX2luc2VydF90b19pbmRl eF9wYWdlX2xvdyhlbnRyeSwgYmxvY2ssIGluZGV4LCBtdHIsCisJCQkJCSAgICAgICZwYWdlX2N1 cik7CiAJfQogfQogCkBAIC0zOTA2LDkgKzM5OTcsMzEgQEAgaWJ1Zl9zZXRfZGVsX21hcmsoCiAJ CXJlYyA9IHBhZ2VfY3VyX2dldF9yZWMoJnBhZ2VfY3VyKTsKIAkJcGFnZV96aXAgPSBwYWdlX2N1 cl9nZXRfcGFnZV96aXAoJnBhZ2VfY3VyKTsKIAorCQlpZiAoVU5JVl9VTkxJS0VMWQorCQkgICAg KHJlY19nZXRfZGVsZXRlZF9mbGFnKAorCQkJICAgIHJlYywgZGljdF90YWJsZV9pc19jb21wKGlu ZGV4LT50YWJsZSkpKSkgeworCQkJdXRfcHJpbnRfdGltZXN0YW1wKHN0ZGVycik7CisJCQlmcHV0 cygiICBJbm5vREI6IHJlY29yZCBpcyBhbHJlYWR5IGRlbGV0ZS1tYXJrZWRcbiIsCisJCQkgICAg ICBzdGRlcnIpOworCQkJZ290byBmYWlsdXJlOworCQl9CisKIAkJYnRyX2N1cl9zZXRfZGVsZXRl ZF9mbGFnX2Zvcl9pYnVmKHJlYywgcGFnZV96aXAsIFRSVUUsIG10cik7CiAJfSBlbHNlIHsKLQkJ LyogVGhpcyBjYW4gaGFwcGVuIGJlbmlnbmx5IGluIHNvbWUgc2l0dWF0aW9ucy4gKi8KKwkJdXRf cHJpbnRfdGltZXN0YW1wKHN0ZGVycik7CisJCWZwdXRzKCIgIElubm9EQjogdW5hYmxlIHRvIGZp bmQgYSByZWNvcmQgdG8gZGVsZXRlLW1hcmtcbiIsCisJCSAgICAgIHN0ZGVycik7CitmYWlsdXJl OgorCQlmcHV0cygiSW5ub0RCOiB0dXBsZSAiLCBzdGRlcnIpOworCQlkdHVwbGVfcHJpbnQoc3Rk ZXJyLCBlbnRyeSk7CisJCWZwdXRzKCJcbiIKKwkJICAgICAgIklubm9EQjogcmVjb3JkICIsIHN0 ZGVycik7CisJCXJlY19wcmludChzdGRlcnIsIHBhZ2VfY3VyX2dldF9yZWMoJnBhZ2VfY3VyKSwg aW5kZXgpOworCQlwdXRjKCdcbicsIHN0ZGVycik7CisJCWZwdXRzKCJcbiIKKwkJICAgICAgIklu bm9EQjogU3VibWl0IGEgZGV0YWlsZWQgYnVnIHJlcG9ydCIKKwkJICAgICAgIiB0byBodHRwOi8v YnVncy5teXNxbC5jb21cbiIsIHN0ZGVycik7CisJCXV0X2FkKDApOwogCX0KIH0KIApAQCAtMzk4 MywxMCArNDA5Niw3IEBAIGlidWZfZGVsZXRlKAogCQkJbWVtX2hlYXBfZnJlZShoZWFwKTsKIAkJ fQogCX0gZWxzZSB7Ci0JCS8qIFRoaXMgY2FuIGhhcHBlbiBiZW5pZ25seSBpbiBzb21lIHNpdHVh dGlvbnM6IGVpdGhlciB3aGVuCi0JCXdlIGNyYXNoZWQgYXQganVzdCB0aGUgcmlnaHQgdGltZSwg b3Igb24gZGF0YWJhc2Ugc3RhcnR1cAotCQl3aGVuIHdlIHJlZG8gc29tZSBvbGQgbG9nIGVudHJp ZXMgKGR1ZSB0byB3b3JzZSBzdG9yZWQKLQkJcG9zaXRpb24gZ3JhbnVsYXJpdHkgb24gZGlzayB0 aGFuIGluIG1lbW9yeSkuICovCisJCS8qIFRoZSByZWNvcmQgbXVzdCBoYXZlIGJlZW4gcHVyZ2Vk IGFscmVhZHkuICovCiAJfQogfQogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFz ZS9pbmNsdWRlL2J0cjBjdXIuaCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J0cjBj dXIuaAlyZXZpZDp2YXNpbC5kaW1vdkBvcmFjbGUuY29tLTIwMTAxMDE4MTIxNjIzLTIycmhraXZo Y2Z3eW45MGIKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J0cjBjdXIuaAlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA2MzUxNC1rNjNyZHM4NXNqNW8wZmRkCkBA IC0yNDMsNiArMjQzLDIyIEBAIGJ0cl9jdXJfcGVzc2ltaXN0aWNfaW5zZXJ0KAogCXF1ZV90aHJf dCoJdGhyLAkvKiE8IGluOiBxdWVyeSB0aHJlYWQgb3IgTlVMTCAqLwogCW10cl90KgkJbXRyKTsJ LyohPCBpbjogbXRyICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8vKioKK1NlZSBpZiB0aGVyZSBpcyBlbm91Z2ggcGxhY2Ug aW4gdGhlIHBhZ2UgbW9kaWZpY2F0aW9uIGxvZyB0byBsb2cKK2FuIHVwZGF0ZS1pbi1wbGFjZS4K K0ByZXR1cm4JVFJVRSBpZiBlbm91Z2ggcGxhY2UgKi8KK1VOSVZfSU5URVJOCitpYm9vbAorYnRy X2N1cl91cGRhdGVfYWxsb2NfemlwKAorLyo9PT09PT09PT09PT09PT09PT09PT0qLworCXBhZ2Vf emlwX2Rlc190KglwYWdlX3ppcCwvKiE8IGluL291dDogY29tcHJlc3NlZCBwYWdlICovCisJYnVm X2Jsb2NrX3QqCWJsb2NrLAkvKiE8IGluL291dDogYnVmZmVyIHBhZ2UgKi8KKwlkaWN0X2luZGV4 X3QqCWluZGV4LAkvKiE8IGluOiB0aGUgaW5kZXggY29ycmVzcG9uZGluZyB0byB0aGUgYmxvY2sg Ki8KKwl1bGludAkJbGVuZ3RoLAkvKiE8IGluOiBzaXplIG5lZWRlZCAqLworCWlib29sCQljcmVh dGUsCS8qITwgaW46IFRSVUU9ZGVsZXRlLWFuZC1pbnNlcnQsCisJCQkJRkFMU0U9dXBkYXRlLWlu LXBsYWNlICovCisJbXRyX3QqCQltdHIpCS8qITwgaW46IG1pbmktdHJhbnNhY3Rpb24gKi8KKwlf X2F0dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3VudXNlZF9yZXN1bHQpKTsKKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgog VXBkYXRlcyBhIHJlY29yZCB3aGVuIHRoZSB1cGRhdGUgY2F1c2VzIG5vIHNpemUgY2hhbmdlcyBp biBpdHMgZmllbGRzLgogQHJldHVybglEQl9TVUNDRVNTIG9yIGVycm9yIG51bWJlciAqLwogVU5J Vl9JTlRFUk4KCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvYnVm MGZsdS5oJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvYnVmMGZsdS5oCXJldmlkOnZh c2lsLmRpbW92QG9yYWNsZS5jb20tMjAxMDEwMTgxMjE2MjMtMjJyaGtpdmhjZnd5bjkwYgorKysg Yi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvYnVmMGZsdS5oCXJldmlkOm1hcmtvLm1ha2VsYUBv cmFjbGUuY29tLTIwMTAxMDE5MDYzNTE0LWs2M3Jkczg1c2o1bzBmZGQKQEAgLTg0LDYgKzg0LDIx IEBAIGJ1Zl9mbHVzaF9pbml0X2Zvcl93cml0aW5nKAogCWliX3VpbnQ2NF90CW5ld2VzdF9sc24p OwkvKiE8IGluOiBuZXdlc3QgbW9kaWZpY2F0aW9uIGxzbgogCQkJCQl0byB0aGUgcGFnZSAqLwog I2lmbmRlZiBVTklWX0hPVEJBQ0tVUAorIyBpZiBkZWZpbmVkIFVOSVZfREVCVUcgfHwgZGVmaW5l ZCBVTklWX0lCVUZfREVCVUcKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKK1dyaXRlcyBhIGZsdXNoYWJsZSBw YWdlIGFzeW5jaHJvbm91c2x5IGZyb20gdGhlIGJ1ZmZlciBwb29sIHRvIGEgZmlsZS4KK05PVEU6 IGJ1Zl9wb29sX211dGV4IGFuZCBibG9jay0+bXV0ZXggbXVzdCBiZSBoZWxkIHVwb24gZW50ZXJp bmcgdGhpcworZnVuY3Rpb24sIGFuZCB0aGV5IHdpbGwgYmUgcmVsZWFzZWQgYnkgdGhpcyBmdW5j dGlvbiBhZnRlciBmbHVzaGluZy4KK1RoaXMgaXMgbG9vc2VseSBiYXNlZCBvbiBidWZfZmx1c2hf YmF0Y2goKSBhbmQgYnVmX2ZsdXNoX3BhZ2UoKS4KK0ByZXR1cm4gVFJVRSBpZiB0aGUgcGFnZSB3 YXMgZmx1c2hlZCBhbmQgdGhlIG11dGV4ZXMgcmVsZWFzZWQgKi8KK1VOSVZfSU5URVJOCitpYm9v bAorYnVmX2ZsdXNoX3BhZ2VfdHJ5KAorLyo9PT09PT09PT09PT09PT0qLworCWJ1Zl9wb29sX3Qq CWJ1Zl9wb29sLAkvKiE8IGluL291dDogYnVmZmVyIHBvb2wgaW5zdGFuY2UgKi8KKwlidWZfYmxv Y2tfdCoJYmxvY2spCQkvKiE8IGluL291dDogYnVmZmVyIGNvbnRyb2wgYmxvY2sgKi8KKwlfX2F0 dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3VudXNlZF9yZXN1bHQpKTsKKyMgZW5kaWYgLyogVU5J Vl9ERUJVRyB8fCBVTklWX0lCVUZfREVCVUcgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogVGhpcyB1dGls aXR5IGZsdXNoZXMgZGlydHkgYmxvY2tzIGZyb20gdGhlIGVuZCBvZiB0aGUgTFJVIGxpc3QuCiBO T1RFOiBUaGUgY2FsbGluZyB0aHJlYWQgbWF5IG93biBsYXRjaGVzIHRvIHBhZ2VzOiB0byBhdm9p ZCBkZWFkbG9ja3MsCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRl L2lidWYwaWJ1Zi5oJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvaWJ1ZjBpYnVmLmgJ cmV2aWQ6dmFzaWwuZGltb3ZAb3JhY2xlLmNvbS0yMDEwMTAxODEyMTYyMy0yMnJoa2l2aGNmd3lu OTBiCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9pYnVmMGlidWYuaAlyZXZpZDptYXJr by5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA2MzUxNC1rNjNyZHM4NXNqNW8wZmRkCkBAIC02 Myw2ICs2MywxMSBAQCB0eXBlZGVmIGVudW0gewogLyoqIE9wZXJhdGlvbnMgdGhhdCBjYW4gY3Vy cmVudGx5IGJlIGJ1ZmZlcmVkLiAqLwogZXh0ZXJuIGlidWZfdXNlX3QJaWJ1Zl91c2U7CiAKKyNp ZiBkZWZpbmVkIFVOSVZfREVCVUcgfHwgZGVmaW5lZCBVTklWX0lCVUZfREVCVUcKKy8qKiBGbGFn IHRvIGNvbnRyb2wgaW5zZXJ0IGJ1ZmZlciBkZWJ1Z2dpbmcuICovCitleHRlcm4gdWludAkJaWJ1 Zl9kZWJ1ZzsKKyNlbmRpZiAvKiBVTklWX0RFQlVHIHx8IFVOSVZfSUJVRl9ERUJVRyAqLworCiAv KiogVGhlIGluc2VydCBidWZmZXIgY29udHJvbCBzdHJ1Y3R1cmUgKi8KIGV4dGVybiBpYnVmX3Qq CQlpYnVmOwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3Jl bTByZWMuaCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JlbTByZWMuaAlyZXZpZDp2 YXNpbC5kaW1vdkBvcmFjbGUuY29tLTIwMTAxMDE4MTIxNjIzLTIycmhraXZoY2Z3eW45MGIKKysr IGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JlbTByZWMuaAlyZXZpZDptYXJrby5tYWtlbGFA b3JhY2xlLmNvbS0yMDEwMTAxOTA2MzUxNC1rNjNyZHM4NXNqNW8wZmRkCkBAIC04MDEsOSArODAx LDkgQEAgVU5JVl9JTlRFUk4KIHZvaWQKIHJlY19wcmludCgKIC8qPT09PT09Ki8KLQlGSUxFKgkJ ZmlsZSwJLyohPCBpbjogZmlsZSB3aGVyZSB0byBwcmludCAqLwotCWNvbnN0IHJlY190KglyZWMs CS8qITwgaW46IHBoeXNpY2FsIHJlY29yZCAqLwotCWRpY3RfaW5kZXhfdCoJaW5kZXgpOwkvKiE8 IGluOiByZWNvcmQgZGVzY3JpcHRvciAqLworCUZJTEUqCQkJZmlsZSwJLyohPCBpbjogZmlsZSB3 aGVyZSB0byBwcmludCAqLworCWNvbnN0IHJlY190KgkJcmVjLAkvKiE8IGluOiBwaHlzaWNhbCBy ZWNvcmQgKi8KKwljb25zdCBkaWN0X2luZGV4X3QqCWluZGV4KTsJLyohPCBpbjogcmVjb3JkIGRl c2NyaXB0b3IgKi8KICNlbmRpZiAvKiBVTklWX0hPVEJBQ0tVUCAqLwogCiAvKiBNYXhpbXVtIGxl bmd0aHMgZm9yIHRoZSBkYXRhIGluIGEgcGh5c2ljYWwgcmVjb3JkIGlmIHRoZSBvZmZzZXRzCgo9 PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzBteXNxbC5oJwot LS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcm93MG15c3FsLmgJcmV2aWQ6dmFzaWwuZGlt b3ZAb3JhY2xlLmNvbS0yMDEwMTAxODEyMTYyMy0yMnJoa2l2aGNmd3luOTBiCisrKyBiL3N0b3Jh Z2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwbXlzcWwuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xl LmNvbS0yMDEwMTAxOTA2MzUxNC1rNjNyZHM4NXNqNW8wZmRkCkBAIC01MzgsNiArNTM4LDEwIEBA IHN0cnVjdCBteXNxbF9yb3dfdGVtcGxfc3RydWN0IHsKIAkJCQkJSW5ub2Jhc2UgcmVjb3JkIGlu IHRoZSBjdXJyZW50IGluZGV4OwogCQkJCQlub3QgZGVmaW5lZCBpZiB0ZW1wbGF0ZV90eXBlIGlz CiAJCQkJCVJPV19NWVNRTF9XSE9MRV9ST1cgKi8KKwl1bGludAljbHVzdF9yZWNfZmllbGRfbm87 CS8qITwgZmllbGQgbnVtYmVyIG9mIHRoZSBjb2x1bW4gaW4gYW4KKwkJCQkJSW5ub2Jhc2UgcmVj b3JkIGluIHRoZSBjbHVzdGVyZWQgaW5kZXg7CisJCQkJCW5vdCBkZWZpbmVkIGlmIHRlbXBsYXRl X3R5cGUgaXMKKwkJCQkJUk9XX01ZU1FMX1dIT0xFX1JPVyAqLwogCXVsaW50CW15c3FsX2NvbF9v ZmZzZXQ7CS8qITwgb2Zmc2V0IG9mIHRoZSBjb2x1bW4gaW4gdGhlIE15U1FMCiAJCQkJCXJvdyBm b3JtYXQgKi8KIAl1bGludAlteXNxbF9jb2xfbGVuOwkJLyohPCBsZW5ndGggb2YgdGhlIGNvbHVt biBpbiB0aGUgTXlTUUwKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1 ZGUvcm93MHVwZC5oJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcm93MHVwZC5oCXJl dmlkOnZhc2lsLmRpbW92QG9yYWNsZS5jb20tMjAxMDEwMTgxMjE2MjMtMjJyaGtpdmhjZnd5bjkw YgorKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcm93MHVwZC5oCXJldmlkOm1hcmtvLm1h a2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDYzNTE0LWs2M3Jkczg1c2o1bzBmZGQKQEAgLTE2Nyw4 ICsxNjcsMTEgQEAgcm93X3VwZF9jaGFuZ2VzX2ZpZWxkX3NpemVfb3JfZXh0ZXJuYWwoCiAJY29u c3QgdXBkX3QqCXVwZGF0ZSk7LyohPCBpbjogdXBkYXRlIHZlY3RvciAqLwogI2VuZGlmIC8qICFV TklWX0hPVEJBQ0tVUCAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLy8qKgotUmVwbGFjZXMgdGhlIG5ldyBjb2x1bW4gdmFsdWVz IHN0b3JlZCBpbiB0aGUgdXBkYXRlIHZlY3RvciB0byB0aGUgcmVjb3JkCi1naXZlbi4gTm8gZmll bGQgc2l6ZSBjaGFuZ2VzIGFyZSBhbGxvd2VkLiAqLworUmVwbGFjZXMgdGhlIG5ldyBjb2x1bW4g dmFsdWVzIHN0b3JlZCBpbiB0aGUgdXBkYXRlIHZlY3RvciB0byB0aGUKK3JlY29yZCBnaXZlbi4g Tm8gZmllbGQgc2l6ZSBjaGFuZ2VzIGFyZSBhbGxvd2VkLiBUaGlzIGZ1bmN0aW9uIGlzCit1c3Vh bGx5IGludm9rZWQgb24gYSBjbHVzdGVyZWQgaW5kZXguIFRoZSBvbmx5IHVzZSBjYXNlIGZvciBh CitzZWNvbmRhcnkgaW5kZXggaXMgcm93X2luc19zZWNfaW5kZXhfZW50cnlfYnlfbW9kaWZ5KCkg b3IgaXRzCitjb3VudGVycGFydCBpbiBpYnVmX2luc2VydF90b19pbmRleF9wYWdlKCkuICovCiBV TklWX0lOVEVSTgogdm9pZAogcm93X3VwZF9yZWNfaW5fcGxhY2UoCgo9PT0gbW9kaWZpZWQgZmls ZSAnc3RvcmFnZS9pbm5vYmFzZS9yZW0vcmVtMHJlYy5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNl L3JlbS9yZW0wcmVjLmMJcmV2aWQ6dmFzaWwuZGltb3ZAb3JhY2xlLmNvbS0yMDEwMTAxODEyMTYy My0yMnJoa2l2aGNmd3luOTBiCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvcmVtL3JlbTByZWMuYwly ZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA2MzUxNC1rNjNyZHM4NXNqNW8w ZmRkCkBAIC0xNzQ5LDkgKzE3NDksOSBAQCBVTklWX0lOVEVSTgogdm9pZAogcmVjX3ByaW50KAog Lyo9PT09PT0qLwotCUZJTEUqCQlmaWxlLAkvKiE8IGluOiBmaWxlIHdoZXJlIHRvIHByaW50ICov Ci0JY29uc3QgcmVjX3QqCXJlYywJLyohPCBpbjogcGh5c2ljYWwgcmVjb3JkICovCi0JZGljdF9p bmRleF90KglpbmRleCkJLyohPCBpbjogcmVjb3JkIGRlc2NyaXB0b3IgKi8KKwlGSUxFKgkJCWZp bGUsCS8qITwgaW46IGZpbGUgd2hlcmUgdG8gcHJpbnQgKi8KKwljb25zdCByZWNfdCoJCXJlYywJ LyohPCBpbjogcGh5c2ljYWwgcmVjb3JkICovCisJY29uc3QgZGljdF9pbmRleF90KglpbmRleCkJ LyohPCBpbjogcmVjb3JkIGRlc2NyaXB0b3IgKi8KIHsKIAl1dF9hZChpbmRleCk7CiAKCj09PSBt b2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwbXlzcWwuYycKLS0tIGEvc3Rv cmFnZS9pbm5vYmFzZS9yb3cvcm93MG15c3FsLmMJcmV2aWQ6dmFzaWwuZGltb3ZAb3JhY2xlLmNv bS0yMDEwMTAxODEyMTYyMy0yMnJoa2l2aGNmd3luOTBiCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uv cm93L3JvdzBteXNxbC5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDYz NTE0LWs2M3Jkczg1c2o1bzBmZGQKQEAgLTUwMyw3ICs1MDMsNyBAQCByb3dfbXlzcWxfY29udmVy dF9yb3dfdG9faW5ub2Jhc2UoCiAJCQkJCXJvdyBpcyB1c2VkLCBhcyByb3cgbWF5IGNvbnRhaW4K IAkJCQkJcG9pbnRlcnMgdG8gdGhpcyByZWNvcmQhICovCiB7Ci0JbXlzcWxfcm93X3RlbXBsX3Qq CXRlbXBsOworCWNvbnN0IG15c3FsX3Jvd190ZW1wbF90KnRlbXBsOwogCWRmaWVsZF90KgkJZGZp ZWxkOwogCXVsaW50CQkJaTsKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uv cm93L3JvdzBzZWwuYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHNlbC5jCXJldmlk OnZhc2lsLmRpbW92QG9yYWNsZS5jb20tMjAxMDEwMTgxMjE2MjMtMjJyaGtpdmhjZnd5bjkwYgor KysgYi9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwc2VsLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9y YWNsZS5jb20tMjAxMDEwMTkwNjM1MTQtazYzcmRzODVzajVvMGZkZApAQCAtMjY2NywyMSArMjY2 NywyMiBAQCByb3dfc2VsX3N0b3JlX215c3FsX3JlYygKIAlyb3dfcHJlYnVpbHRfdCoJcHJlYnVp bHQsCS8qITwgaW46IHByZWJ1aWx0IHN0cnVjdCAqLwogCWNvbnN0IHJlY190KglyZWMsCQkvKiE8 IGluOiBJbm5vYmFzZSByZWNvcmQgaW4gdGhlIGluZGV4CiAJCQkJCXdoaWNoIHdhcyBkZXNjcmli ZWQgaW4gcHJlYnVpbHQncwotCQkJCQl0ZW1wbGF0ZTsgbXVzdCBiZSBwcm90ZWN0ZWQgYnkKLQkJ CQkJYSBwYWdlIGxhdGNoICovCisJCQkJCXRlbXBsYXRlLCBvciBpbiB0aGUgY2x1c3RlcmVkIGlu ZGV4OworCQkJCQltdXN0IGJlIHByb3RlY3RlZCBieSBhIHBhZ2UgbGF0Y2ggKi8KKwlpYm9vbAkJ cmVjX2NsdXN0LAkvKiE8IGluOiBUUlVFIGlmIHJlYyBpcyBpbiB0aGUKKwkJCQkJY2x1c3RlcmVk IGluZGV4IGluc3RlYWQgb2YKKwkJCQkJcHJlYnVpbHQtPmluZGV4ICovCiAJY29uc3QgdWxpbnQq CW9mZnNldHMpCS8qITwgaW46IGFycmF5IHJldHVybmVkIGJ5Ci0JCQkJCXJlY19nZXRfb2Zmc2V0 cygpICovCisJCQkJCXJlY19nZXRfb2Zmc2V0cyhyZWMpICovCiB7Ci0JbXlzcWxfcm93X3RlbXBs X3QqCXRlbXBsOwotCW1lbV9oZWFwX3QqCQlleHRlcm5fZmllbGRfaGVhcAk9IE5VTEw7Ci0JbWVt X2hlYXBfdCoJCWhlYXA7Ci0JY29uc3QgYnl0ZSoJCWRhdGE7Ci0JdWxpbnQJCQlsZW47Ci0JdWxp bnQJCQlpOworCW1lbV9oZWFwX3QqCWV4dGVybl9maWVsZF9oZWFwCT0gTlVMTDsKKwltZW1faGVh cF90KgloZWFwOworCXVsaW50CQlpOwogCiAJdXRfYWQocHJlYnVpbHQtPm15c3FsX3RlbXBsYXRl KTsKIAl1dF9hZChwcmVidWlsdC0+ZGVmYXVsdF9yZWMpOwogCXV0X2FkKHJlY19vZmZzX3ZhbGlk YXRlKHJlYywgTlVMTCwgb2Zmc2V0cykpOworCXV0X2FkKCFyZWNfZ2V0X2RlbGV0ZWRfZmxhZyhy ZWMsIHJlY19vZmZzX2NvbXAob2Zmc2V0cykpKTsKIAogCWlmIChVTklWX0xJS0VMWV9OVUxMKHBy ZWJ1aWx0LT5ibG9iX2hlYXApKSB7CiAJCW1lbV9oZWFwX2ZyZWUocHJlYnVpbHQtPmJsb2JfaGVh cCk7CkBAIC0yNjkwLDEwICsyNjkxLDE1IEBAIHJvd19zZWxfc3RvcmVfbXlzcWxfcmVjKAogCiAJ Zm9yIChpID0gMDsgaSA8IHByZWJ1aWx0LT5uX3RlbXBsYXRlOyBpKyspIHsKIAotCQl0ZW1wbCA9 IHByZWJ1aWx0LT5teXNxbF90ZW1wbGF0ZSArIGk7CisJCWNvbnN0IG15c3FsX3Jvd190ZW1wbF90 KnRlbXBsID0gcHJlYnVpbHQtPm15c3FsX3RlbXBsYXRlICsgaTsKKwkJY29uc3QgYnl0ZSoJCWRh dGE7CisJCXVsaW50CQkJbGVuOworCQl1bGludAkJCWZpZWxkX25vOworCisJCWZpZWxkX25vID0g cmVjX2NsdXN0CisJCQk/IHRlbXBsLT5jbHVzdF9yZWNfZmllbGRfbm8gOiB0ZW1wbC0+cmVjX2Zp ZWxkX25vOwogCi0JCWlmIChVTklWX1VOTElLRUxZKHJlY19vZmZzX250aF9leHRlcm4ob2Zmc2V0 cywKLQkJCQkJCSAgICAgIHRlbXBsLT5yZWNfZmllbGRfbm8pKSkgeworCQlpZiAoVU5JVl9VTkxJ S0VMWShyZWNfb2Zmc19udGhfZXh0ZXJuKG9mZnNldHMsIGZpZWxkX25vKSkpIHsKIAogCQkJLyog Q29weSBhbiBleHRlcm5hbGx5IHN0b3JlZCBmaWVsZCB0byB0aGUgdGVtcG9yYXJ5CiAJCQloZWFw ICovCkBAIC0yNzIxLDcgKzI3MjcsNyBAQCByb3dfc2VsX3N0b3JlX215c3FsX3JlYygKIAkJCWRh dGEgPSBidHJfcmVjX2NvcHlfZXh0ZXJuYWxseV9zdG9yZWRfZmllbGQoCiAJCQkJcmVjLCBvZmZz ZXRzLAogCQkJCWRpY3RfdGFibGVfemlwX3NpemUocHJlYnVpbHQtPnRhYmxlKSwKLQkJCQl0ZW1w bC0+cmVjX2ZpZWxkX25vLCAmbGVuLCBoZWFwKTsKKwkJCQlmaWVsZF9ubywgJmxlbiwgaGVhcCk7 CiAKIAkJCWlmIChVTklWX1VOTElLRUxZKCFkYXRhKSkgewogCQkJCS8qIFRoZSBleHRlcm5hbGx5 IHN0b3JlZCBmaWVsZApAQCAtMjc0Miw4ICsyNzQ4LDcgQEAgcm93X3NlbF9zdG9yZV9teXNxbF9y ZWMoCiAJCX0gZWxzZSB7CiAJCQkvKiBGaWVsZCBpcyBzdG9yZWQgaW4gdGhlIHJvdy4gKi8KIAot CQkJZGF0YSA9IHJlY19nZXRfbnRoX2ZpZWxkKHJlYywgb2Zmc2V0cywKLQkJCQkJCSB0ZW1wbC0+ cmVjX2ZpZWxkX25vLCAmbGVuKTsKKwkJCWRhdGEgPSByZWNfZ2V0X250aF9maWVsZChyZWMsIG9m ZnNldHMsIGZpZWxkX25vLCAmbGVuKTsKIAogCQkJaWYgKFVOSVZfVU5MSUtFTFkodGVtcGwtPnR5 cGUgPT0gREFUQV9CTE9CKQogCQkJICAgICYmIGxlbiAhPSBVTklWX1NRTF9OVUxMKSB7CkBAIC0z MTA1LDcgKzMxMTAsNyBAQCByb3dfc2VsX3BvcF9jYWNoZWRfcm93X2Zvcl9teXNxbCgKIAlyb3df cHJlYnVpbHRfdCoJcHJlYnVpbHQpCS8qITwgaW46IHByZWJ1aWx0IHN0cnVjdCAqLwogewogCXVs aW50CQkJaTsKLQlteXNxbF9yb3dfdGVtcGxfdCoJdGVtcGw7CisJY29uc3QgbXlzcWxfcm93X3Rl bXBsX3QqdGVtcGw7CiAJYnl0ZSoJCQljYWNoZWRfcmVjOwogCXV0X2FkKHByZWJ1aWx0LT5uX2Zl dGNoX2NhY2hlZCA+IDApOwogCXV0X2FkKHByZWJ1aWx0LT5teXNxbF9wcmVmaXhfbGVuIDw9IHBy ZWJ1aWx0LT5teXNxbF9yb3dfbGVuKTsKQEAgLTMxNjIsMTUgKzMxNjcsMjEgQEAgaWJvb2wKIHJv d19zZWxfcHVzaF9jYWNoZV9yb3dfZm9yX215c3FsKAogLyo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PSovCiAJcm93X3ByZWJ1aWx0X3QqCXByZWJ1aWx0LAkvKiE8IGluOiBwcmVidWlsdCBz dHJ1Y3QgKi8KLQljb25zdCByZWNfdCoJcmVjLAkJLyohPCBpbjogcmVjb3JkIHRvIHB1c2g7IG11 c3QKLQkJCQkJYmUgcHJvdGVjdGVkIGJ5IGEgcGFnZSBsYXRjaCAqLwotCWNvbnN0IHVsaW50Kglv ZmZzZXRzKQkvKiE8IGluOiByZWNfZ2V0X29mZnNldHMoKSAqLworCWNvbnN0IHJlY190KglyZWMs CQkvKiE8IGluOiByZWNvcmQgdG8gcHVzaCwgaW4gdGhlIGluZGV4CisJCQkJCXdoaWNoIHdhcyBk ZXNjcmliZWQgaW4gcHJlYnVpbHQncworCQkJCQl0ZW1wbGF0ZSwgb3IgaW4gdGhlIGNsdXN0ZXJl ZCBpbmRleDsKKwkJCQkJbXVzdCBiZSBwcm90ZWN0ZWQgYnkgYSBwYWdlIGxhdGNoICovCisJaWJv b2wJCXJlY19jbHVzdCwJLyohPCBpbjogVFJVRSBpZiByZWMgaXMgaW4gdGhlCisJCQkJCWNsdXN0 ZXJlZCBpbmRleCBpbnN0ZWFkIG9mCisJCQkJCXByZWJ1aWx0LT5pbmRleCAqLworCWNvbnN0IHVs aW50KglvZmZzZXRzKQkvKiE8IGluOiByZWNfZ2V0X29mZnNldHMocmVjKSAqLwogewogCWJ5dGUq CWJ1ZjsKIAl1bGludAlpOwogCiAJdXRfYWQocHJlYnVpbHQtPm5fZmV0Y2hfY2FjaGVkIDwgTVlT UUxfRkVUQ0hfQ0FDSEVfU0laRSk7CiAJdXRfYWQocmVjX29mZnNfdmFsaWRhdGUocmVjLCBOVUxM LCBvZmZzZXRzKSk7CisJdXRfYWQoIXJlY19nZXRfZGVsZXRlZF9mbGFnKHJlYywgcmVjX29mZnNf Y29tcChvZmZzZXRzKSkpOwogCXV0X2EoIXByZWJ1aWx0LT50ZW1wbF9jb250YWluc19ibG9iKTsK IAogCWlmIChwcmVidWlsdC0+ZmV0Y2hfY2FjaGVbMF0gPT0gTlVMTCkgewpAQCAtMzE5OSw3ICsz MjEwLDcgQEAgcm93X3NlbF9wdXNoX2NhY2hlX3Jvd19mb3JfbXlzcWwoCiAJaWYgKFVOSVZfVU5M SUtFTFkoIXJvd19zZWxfc3RvcmVfbXlzcWxfcmVjKAogCQkJCSAgcHJlYnVpbHQtPmZldGNoX2Nh Y2hlWwogCQkJCQkgIHByZWJ1aWx0LT5uX2ZldGNoX2NhY2hlZF0sCi0JCQkJICBwcmVidWlsdCwg cmVjLCBvZmZzZXRzKSkpIHsKKwkJCQkgIHByZWJ1aWx0LCByZWMsIHJlY19jbHVzdCwgb2Zmc2V0 cykpKSB7CiAJCXJldHVybihGQUxTRSk7CiAJfQogCkBAIC0zNjAwLDcgKzM2MTEsOCBAQCByb3df c2VhcmNoX2Zvcl9teXNxbCgKIAkJCQl1dF9hZCghcmVjX2dldF9kZWxldGVkX2ZsYWcocmVjLCBj b21wKSk7CiAKIAkJCQlpZiAoIXJvd19zZWxfc3RvcmVfbXlzcWxfcmVjKGJ1ZiwgcHJlYnVpbHQs Ci0JCQkJCQkJICAgICByZWMsIG9mZnNldHMpKSB7CisJCQkJCQkJICAgICByZWMsIEZBTFNFLAor CQkJCQkJCSAgICAgb2Zmc2V0cykpIHsKIAkJCQkJLyogT25seSBmcmVzaCBpbnNlcnRzIG1heSBj b250YWluCiAJCQkJCWluY29tcGxldGUgZXh0ZXJuYWxseSBzdG9yZWQKIAkJCQkJY29sdW1ucy4g UHJldGVuZCB0aGF0IHN1Y2gKQEAgLTQyMzQsNyArNDI0Niw2IEBAIG5vX2dhcF9sb2NrOgogCQkJ aXMgbmVjZXNzYXJ5LCBiZWNhdXNlIHdlIGNhbiBvbmx5IGdldCB0aGUgdW5kbwogCQkJaW5mb3Jt YXRpb24gdmlhIHRoZSBjbHVzdGVyZWQgaW5kZXggcmVjb3JkLiAqLwogCi0JCQl1dF9hZChpbmRl eCAhPSBjbHVzdF9pbmRleCk7CiAJCQl1dF9hZCghZGljdF9pbmRleF9pc19jbHVzdChpbmRleCkp OwogCiAJCQlpZiAoIWxvY2tfc2VjX3JlY19jb25zX3JlYWRfc2VlcygKQEAgLTQzNTAsMjYgKzQz NjEsMTAgQEAgcmVxdWlyZXNfY2x1c3RfcmVjOgogCQkJZ290byBuZXh0X3JlYzsKIAkJfQogCi0J CWlmIChwcmVidWlsdC0+bmVlZF90b19hY2Nlc3NfY2x1c3RlcmVkKSB7Ci0KLQkJCXJlc3VsdF9y ZWMgPSBjbHVzdF9yZWM7Ci0KLQkJCXV0X2FkKHJlY19vZmZzX3ZhbGlkYXRlKHJlc3VsdF9yZWMs IGNsdXN0X2luZGV4LAotCQkJCQkJb2Zmc2V0cykpOwotCQl9IGVsc2UgewotCQkJLyogV2UgdXNl ZCAnb2Zmc2V0cycgZm9yIHRoZSBjbHVzdCByZWMsIHJlY2FsY3VsYXRlCi0JCQl0aGVtIGZvciAn cmVjJyAqLwotCQkJb2Zmc2V0cyA9IHJlY19nZXRfb2Zmc2V0cyhyZWMsIGluZGV4LCBvZmZzZXRz LAotCQkJCQkJICBVTElOVF9VTkRFRklORUQsICZoZWFwKTsKLQkJCXJlc3VsdF9yZWMgPSByZWM7 Ci0JCX0KLQotCQkvKiByZXN1bHRfcmVjIGNhbiBsZWdpdGltYXRlbHkgYmUgZGVsZXRlLW1hcmtl ZAotCQlub3cgdGhhdCBpdCBoYXMgYmVlbiBlc3RhYmxpc2hlZCB0aGF0IGl0IHBvaW50cyB0byBh Ci0JCWNsdXN0ZXJlZCBpbmRleCByZWNvcmQgdGhhdCBleGlzdHMgaW4gdGhlIHJlYWQgdmlldy4g Ki8KKwkJcmVzdWx0X3JlYyA9IGNsdXN0X3JlYzsKKwkJdXRfYWQocmVjX29mZnNfdmFsaWRhdGUo cmVzdWx0X3JlYywgY2x1c3RfaW5kZXgsIG9mZnNldHMpKTsKIAl9IGVsc2UgewogCQlyZXN1bHRf cmVjID0gcmVjOwotCQl1dF9hZCghcmVjX2dldF9kZWxldGVkX2ZsYWcocmVjLCBjb21wKSk7CiAJ fQogCiAJLyogV2UgZm91bmQgYSBxdWFsaWZ5aW5nIHJlY29yZCAncmVzdWx0X3JlYycuIEF0IHRo aXMgcG9pbnQsCkBAIC00Mzc4LDYgKzQzNzMsNyBAQCByZXF1aXJlc19jbHVzdF9yZWM6CiAJdXRf YWQocmVjX29mZnNfdmFsaWRhdGUocmVzdWx0X3JlYywKIAkJCQlyZXN1bHRfcmVjICE9IHJlYyA/ IGNsdXN0X2luZGV4IDogaW5kZXgsCiAJCQkJb2Zmc2V0cykpOworCXV0X2FkKCFyZWNfZ2V0X2Rl bGV0ZWRfZmxhZyhyZXN1bHRfcmVjLCBjb21wKSk7CiAKIAkvKiBBdCB0aGlzIHBvaW50LCB0aGUg Y2x1c3RlcmVkIGluZGV4IHJlY29yZCBpcyBwcm90ZWN0ZWQKIAlieSBhIHBhZ2UgbGF0Y2ggdGhh dCB3YXMgYWNxdWlyZWQgd2hlbiBwY3VyIHdhcyBwb3NpdGlvbmVkLgpAQCAtNDQwMiw2ICs0Mzk4 LDcgQEAgcmVxdWlyZXNfY2x1c3RfcmVjOgogCQljdXJzb3IuICovCiAKIAkJaWYgKCFyb3dfc2Vs X3B1c2hfY2FjaGVfcm93X2Zvcl9teXNxbChwcmVidWlsdCwgcmVzdWx0X3JlYywKKwkJCQkJCSAg ICAgIHJlc3VsdF9yZWMgIT0gcmVjLAogCQkJCQkJICAgICAgb2Zmc2V0cykpIHsKIAkJCS8qIE9u bHkgZnJlc2ggaW5zZXJ0cyBtYXkgY29udGFpbiBpbmNvbXBsZXRlCiAJCQlleHRlcm5hbGx5IHN0 b3JlZCBjb2x1bW5zLiBQcmV0ZW5kIHRoYXQgc3VjaApAQCAtNDQxOSwxNSArNDQxNiwzMSBAQCBy ZXF1aXJlc19jbHVzdF9yZWM6CiAKIAkJZ290byBuZXh0X3JlYzsKIAl9IGVsc2UgewotCQlpZiAo cHJlYnVpbHQtPnRlbXBsYXRlX3R5cGUgPT0gUk9XX01ZU1FMX0RVTU1ZX1RFTVBMQVRFKSB7CisJ CWlmIChVTklWX1VOTElLRUxZCisJCSAgICAocHJlYnVpbHQtPnRlbXBsYXRlX3R5cGUgPT0gUk9X X01ZU1FMX0RVTU1ZX1RFTVBMQVRFKSkgeworCQkJLyogQ0hFQ0sgVEFCTEU6IGZldGNoIHRoZSBy b3cgKi8KKworCQkJaWYgKHJlc3VsdF9yZWMgIT0gcmVjCisJCQkgICAgJiYgIXByZWJ1aWx0LT5u ZWVkX3RvX2FjY2Vzc19jbHVzdGVyZWQpIHsKKwkJCQkvKiBXZSB1c2VkICdvZmZzZXRzJyBmb3Ig dGhlIGNsdXN0CisJCQkJcmVjLCByZWNhbGN1bGF0ZSB0aGVtIGZvciAncmVjJyAqLworCQkJCW9m ZnNldHMgPSByZWNfZ2V0X29mZnNldHMocmVjLCBpbmRleCwgb2Zmc2V0cywKKwkJCQkJCQkgIFVM SU5UX1VOREVGSU5FRCwKKwkJCQkJCQkgICZoZWFwKTsKKwkJCQlyZXN1bHRfcmVjID0gcmVjOwor CQkJfQorCiAJCQltZW1jcHkoYnVmICsgNCwgcmVzdWx0X3JlYwogCQkJICAgICAgIC0gcmVjX29m ZnNfZXh0cmFfc2l6ZShvZmZzZXRzKSwKIAkJCSAgICAgICByZWNfb2Zmc19zaXplKG9mZnNldHMp KTsKIAkJCW1hY2hfd3JpdGVfdG9fNChidWYsCiAJCQkJCXJlY19vZmZzX2V4dHJhX3NpemUob2Zm c2V0cykgKyA0KTsKIAkJfSBlbHNlIHsKLQkJCWlmICghcm93X3NlbF9zdG9yZV9teXNxbF9yZWMo YnVmLCBwcmVidWlsdCwKLQkJCQkJCSAgICAgcmVzdWx0X3JlYywgb2Zmc2V0cykpIHsKKwkJCS8q IFJldHVybmluZyBhIHJvdyB0byBNeVNRTCAqLworCisJCQlpZiAoIXJvd19zZWxfc3RvcmVfbXlz cWxfcmVjKGJ1ZiwgcHJlYnVpbHQsIHJlc3VsdF9yZWMsCisJCQkJCQkgICAgIHJlc3VsdF9yZWMg IT0gcmVjLAorCQkJCQkJICAgICBvZmZzZXRzKSkgewogCQkJCS8qIE9ubHkgZnJlc2ggaW5zZXJ0 cyBtYXkgY29udGFpbgogCQkJCWluY29tcGxldGUgZXh0ZXJuYWxseSBzdG9yZWQKIAkJCQljb2x1 bW5zLiBQcmV0ZW5kIHRoYXQgc3VjaCByZWNvcmRzIGRvCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3Rv cmFnZS9pbm5vYmFzZS9yb3cvcm93MHVwZC5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3Jvdy9y b3cwdXBkLmMJcmV2aWQ6dmFzaWwuZGltb3ZAb3JhY2xlLmNvbS0yMDEwMTAxODEyMTYyMy0yMnJo a2l2aGNmd3luOTBiCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzB1cGQuYwlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA2MzUxNC1rNjNyZHM4NXNqNW8wZmRkCkBA IC00NjYsOCArNDY2LDExIEBAIHJvd191cGRfY2hhbmdlc19maWVsZF9zaXplX29yX2V4dGVybmFs KAogI2VuZGlmIC8qICFVTklWX0hPVEJBQ0tVUCAqLwogCiAvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCi1SZXBsYWNlcyB0aGUg bmV3IGNvbHVtbiB2YWx1ZXMgc3RvcmVkIGluIHRoZSB1cGRhdGUgdmVjdG9yIHRvIHRoZSByZWNv cmQKLWdpdmVuLiBObyBmaWVsZCBzaXplIGNoYW5nZXMgYXJlIGFsbG93ZWQuICovCitSZXBsYWNl cyB0aGUgbmV3IGNvbHVtbiB2YWx1ZXMgc3RvcmVkIGluIHRoZSB1cGRhdGUgdmVjdG9yIHRvIHRo ZQorcmVjb3JkIGdpdmVuLiBObyBmaWVsZCBzaXplIGNoYW5nZXMgYXJlIGFsbG93ZWQuIFRoaXMg ZnVuY3Rpb24gaXMKK3VzdWFsbHkgaW52b2tlZCBvbiBhIGNsdXN0ZXJlZCBpbmRleC4gVGhlIG9u bHkgdXNlIGNhc2UgZm9yIGEKK3NlY29uZGFyeSBpbmRleCBpcyByb3dfaW5zX3NlY19pbmRleF9l bnRyeV9ieV9tb2RpZnkoKSBvciBpdHMKK2NvdW50ZXJwYXJ0IGluIGlidWZfaW5zZXJ0X3RvX2lu ZGV4X3BhZ2UoKS4gKi8KIFVOSVZfSU5URVJOCiB2b2lkCiByb3dfdXBkX3JlY19pbl9wbGFjZSgK Cg== --===============1197935638== 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.5-innodb/ # testament_sha1: 3d2e4872e543111b807fe4ddc29eeefeb5c2115b # timestamp: 2010-10-19 09:37:01 +0300 # source_branch: file:///home/marko/innobase/dev/mysql2a/5.1-innodb/ # base_revision_id: vasil.dimov@stripped\ # 22rhkivhcfwyn90b # # Begin bundle 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 cT504JhT3aL5e5ixsZZOCnBoxU3mcNTJk+dRjGhhODWfCFN9ypxM3uktpHUYqAU4Yw4ugmKR4mPa /K7jTqYLFCxaW33e5ufQpapy5/gKl5EIFEqpC0IG0Cf2xo4Rj++N5BXDBa3L5XsYtJRS+3vnTRZR l51Xu835x0aS0y33mhUQ/ziojkAyCHBrIpI1cEUYgjuicKFvcYutTgZzsyyqOQWFHdMXgwP6jCqK pr1k0XX+saeouTAzs4cFj19NyVuMNnwgVb+czNvmZZTE7NNGuFpzDDdbEmtX4jg74Q1wnQInc/3C eoYypAfZCpuF0If4HDEIRAfZLSn2S9CVA45QgOg/UbPOeYH0HB57+PZ4dyr5MclM2f01kf3Gd/fn 5ZHk2F3eus2Y5WWKeKmmrF6Wu6qr7E+pNk/1n9ja+ZgyTJLJlN0bZOnsfK9ztYrO6ylWnFr8O/Ro xatMFOqofA7O+b39Lx137VnbPynmywjNx8pUopubo8hTo4NHSBWVPHXJA3bjMqiumxmDQx6UPThV 7cndphgqu7bcw1WXqKlKudVt7NvuYxT7W++S2xiOssb5flO2aJ5eFDJg3S2kus4c3UPEfYOQ8tQ9 DEIxwHEYAhZ+djFVsOI/0RP7ET6BRxEU3f24yVt/Pu1/2ijM9ejRsWtKf78H5pG5gpSxIlllkhka t35PypoiR34fif2kkckievFHpWTeWLpfzUcYJmjZs0OBBoYCPW6PWPuHxoLPZuIl3a4JE7jmiRge 42zYzaWk8NJIHpMSGeAvi9RnymoxDWFyr14tq5vtyR2X0YJs7XHc79/pwOXvVjLsvkY41KnQyWdY XPdP0hjPKfMd7xd00rgzbfN0XZG9sZsFqYYLNZzVsYtTJxm8wmpsy+b/T0nKpPDx2PJznAnXe7vh 771a25HkM1GE4E8bHh4OOCjjjio1staeHhX+4QwJ0oICDgJhaFlqWeC7vEw48EAyQSkpMvMCvEzC tEqPMyhe65Q8iCAeifh0I+4QfgT5lD9tv9rh+EkowVJ5UYLmIfd3ih+F6Ant/0PqfIfCRURFUVRE k61eCbRBv29ZNTam0CscqqufbggVVAFVSBSPjU9OoPeOs9vq4eq3q9/5aLV34Xl7JlAwL5Rxvpx1 12Kidd9NKG4Tpo6adyHEvEBxB0keznjR1kOYAyDiFpDshPdId7jDCZTOZ2otEEzg6YYRKxEAM8ct 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 BsbCJ/hZVlX/F3JFOFCQw08U7g== --===============1197935638==--