From: marko.makela Date: October 19 2010 10:03am Subject: bzr commit into mysql-trunk-innodb branch (marko.makela:3255) List-Archive: http://lists.mysql.com/commits/121095 Message-Id: <201010191004.o9JA1tX6011887@acsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0347817040==" --===============0347817040== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline I0F0IGZpbGU6Ly8vaG9tZS9tYXJrby9pbm5vYmFzZS9kZXYvbXlzcWwyYS81LjYtaW5ub2RiLyBi YXNlZCBvbiByZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA5NTMyMS1oYmFo dHppeGo3c3BlenN5CgogMzI1NSBNYXJrbyBNw6RrZWzDpAkyMDEwLTEwLTE5IFttZXJnZV0KICAg ICAgTWVyZ2UgZnJvbSBteXNxbC01LjUtaW5ub2RiIHRvIG15c3FsLXRydW5rLWlubm9kYgoKICAg IGFkZGVkOgogICAgICBteXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYl9idWc1NjY4MC5y ZXN1bHQKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGJfYnVnNTY2ODAudGVz dAogICAgbW9kaWZpZWQ6CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0cjBjdXIuYwogICAg ICBzdG9yYWdlL2lubm9iYXNlL2J1Zi9idWYwYnVmLmMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9i dWYvYnVmMGZsdS5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYV9pbm5vZGIuY2MK ICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pYnVmL2lidWYwaWJ1Zi5jCiAgICAgIHN0b3JhZ2UvaW5u b2Jhc2UvaW5jbHVkZS9idHIwY3VyLmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J1 ZjBmbHUuaAogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvaWJ1ZjBpYnVmLmgKICAgICAg c3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JlbTByZWMuaAogICAgICBzdG9yYWdlL2lubm9iYXNl L2luY2x1ZGUvcm93MG15c3FsLmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzB1 cGQuaAogICAgICBzdG9yYWdlL2lubm9iYXNlL3JlbS9yZW0wcmVjLmMKICAgICAgc3RvcmFnZS9p bm5vYmFzZS9yb3cvcm93MG15c3FsLmMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHNl bC5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzB1cGQuYwo9PT0gYWRkZWQgZmlsZSAn bXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGJfYnVnNTY2ODAucmVzdWx0JwotLS0gYS9t eXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYl9idWc1NjY4MC5yZXN1bHQJMTk3MC0wMS0w MSAwMDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYl9i dWc1NjY4MC5yZXN1bHQJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkxMDAz MjUtZHM2MzlybWM3bWZ4eWJrYwpAQCAtMCwwICsxLDEwOSBAQAorU0VUIEdMT0JBTCB0eF9pc29s YXRpb249J1JFUEVBVEFCTEUtUkVBRCc7CitTRVQgR0xPQkFMIGlubm9kYl9maWxlX2Zvcm1hdD1C YXJyYWN1ZGE7CitTRVQgR0xPQkFMIGlubm9kYl9maWxlX3Blcl90YWJsZT1vbjsKK0NSRUFURSBU QUJMRSBidWc1NjY4MCgKK2EgSU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLAorYiBDSEFS KDEpLAorYyBJTlQsCitJTkRFWChiKSkKK0VOR0lORT1Jbm5vREI7CitJTlNFUlQgSU5UTyBidWc1 NjY4MCBWQUxVRVMoMCwneCcsMSk7CitCRUdJTjsKK1NFTEVDVCBiIEZST00gYnVnNTY2ODA7Citi Cit4CitCRUdJTjsKK1VQREFURSBidWc1NjY4MCBTRVQgYj0nWCc7CitTRUxFQ1QgYiBGUk9NIGJ1 ZzU2NjgwOworYgoreAorU0VMRUNUICogRlJPTSBidWc1NjY4MDsKK2EJYgljCisxCXgJMQorUk9M TEJBQ0s7CitTRUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwOworYgoreAorU0VUIEdMT0JBTCB0eF9pc29s YXRpb249J1JFQUQtVU5DT01NSVRURUQnOworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAs YixjIEZST00gYnVnNTY2ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJP TSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2 NjgwOworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitJ TlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJ TlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8gYnVn NTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBT RUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAw LGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZS T00gYnVnNTY2ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1 NjY4MDsKK0JFR0lOOworU0VMRUNUIGIgRlJPTSBidWc1NjY4MCBMSU1JVCAyOworYgoreAoreAor QkVHSU47CitERUxFVEUgRlJPTSBidWc1NjY4MCBXSEVSRSBhPTE7CitJTlNFUlQgSU5UTyBidWc1 NjY4MCBWQUxVRVMoMSwnWCcsMSk7CitTRUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwIExJTUlUIDM7Citi CitYCit4Cit4CitTRUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwIExJTUlUIDI7CitiCit4Cit4CitDSEVD SyBUQUJMRSBidWc1NjY4MDsKK1RhYmxlCU9wCU1zZ190eXBlCU1zZ190ZXh0Cit0ZXN0LmJ1ZzU2 NjgwCWNoZWNrCXN0YXR1cwlPSworUk9MTEJBQ0s7CitTRUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwIExJ TUlUIDI7CitiCit4Cit4CitDSEVDSyBUQUJMRSBidWc1NjY4MDsKK1RhYmxlCU9wCU1zZ190eXBl CU1zZ190ZXh0Cit0ZXN0LmJ1ZzU2NjgwCWNoZWNrCXN0YXR1cwlPSworU0VMRUNUIGIgRlJPTSBi dWc1NjY4MCBMSU1JVCAyOworYgoreAoreAorQ1JFQVRFIFRBQkxFIGJ1ZzU2NjgwXzIoCithIElO VCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwKK2IgVkFSQ0hBUigyKSBDSEFSU0VUIGxhdGlu MSBDT0xMQVRFIGxhdGluMV9nZXJtYW4yX2NpLAorYyBJTlQsCitJTkRFWChiKSkKK0VOR0lORT1J bm5vREI7CitJTlNFUlQgSU5UTyBidWc1NjY4MF8yIFNFTEVDVCAwLF9sYXRpbjEgMHhkZixjIEZS T00gYnVnNTY2ODA7CitCRUdJTjsKK1NFTEVDVCBIRVgoYikgRlJPTSBidWc1NjY4MF8yIExJTUlU IDI7CitIRVgoYikKK0RGCitERgorREVMRVRFIEZST00gYnVnNTY2ODBfMiBXSEVSRSBhPTE7CitJ TlNFUlQgSU5UTyBidWc1NjY4MF8yIFZBTFVFUygxLCdTUycsMSk7CitTRUxFQ1QgSEVYKGIpIEZS T00gYnVnNTY2ODBfMiBMSU1JVCAzOworSEVYKGIpCis1MzUzCitERgorREYKK0NIRUNLIFRBQkxF IGJ1ZzU2NjgwXzI7CitUYWJsZQlPcAlNc2dfdHlwZQlNc2dfdGV4dAordGVzdC5idWc1NjY4MF8y CWNoZWNrCXN0YXR1cwlPSworQUxURVIgVEFCTEUgYnVnNTY2ODBfMiBST1dfRk9STUFUPUNPTVBS RVNTRUQgS0VZX0JMT0NLX1NJWkU9MTsKK1NFTEVDVCBIRVgoYikgRlJPTSBidWc1NjY4MF8yIExJ TUlUIDI7CitIRVgoYikKKzUzNTMKK0RGCitERUxFVEUgRlJPTSBidWc1NjY4MF8yIFdIRVJFIGE9 MTsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwXzIgVkFMVUVTKDEsX2xhdGluMSAweGRmLDEpOworU0VM RUNUIEhFWChiKSBGUk9NIGJ1ZzU2NjgwXzIgTElNSVQgMzsKK0hFWChiKQorREYKK0RGCitERgor Q0hFQ0sgVEFCTEUgYnVnNTY2ODBfMjsKK1RhYmxlCU9wCU1zZ190eXBlCU1zZ190ZXh0Cit0ZXN0 LmJ1ZzU2NjgwXzIJY2hlY2sJc3RhdHVzCU9LCitEUk9QIFRBQkxFIGJ1ZzU2NjgwXzI7CitEUk9Q IFRBQkxFIGJ1ZzU2NjgwOwoKPT09IGFkZGVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvaW5ub2Ri L3QvaW5ub2RiX2J1ZzU2NjgwLnRlc3QnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3Qv aW5ub2RiX2J1ZzU2NjgwLnRlc3QJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9teXNx bC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9kYl9idWc1NjY4MC50ZXN0CXJldmlkOm1hcmtvLm1h a2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MTAwMzI1LWRzNjM5cm1jN21meHlia2MKQEAgLTAsMCAr MSwxNDIgQEAKKyMKKyMgQnVnICM1NjY4MCBJbm5vREIgbWF5IHJldHVybiB3cm9uZyByZXN1bHRz IGZyb20gYSBjYXNlLWluc2Vuc2l0aXZlIGluZGV4CisjCistLSBzb3VyY2UgaW5jbHVkZS9oYXZl X2lubm9kYi5pbmMKKworLS0gZGlzYWJsZV9xdWVyeV9sb2cKK1NFVCBAdHhfaXNvbGF0aW9uX29y aWcgPSBAQHR4X2lzb2xhdGlvbjsKK1NFVCBAaW5ub2RiX2ZpbGVfcGVyX3RhYmxlX29yaWcgPSBA QGlubm9kYl9maWxlX3Blcl90YWJsZTsKK1NFVCBAaW5ub2RiX2ZpbGVfZm9ybWF0X29yaWcgPSBA QGlubm9kYl9maWxlX2Zvcm1hdDsKK1NFVCBAaW5ub2RiX2ZpbGVfZm9ybWF0X21heF9vcmlnID0g QEBpbm5vZGJfZmlsZV9mb3JtYXRfbWF4OworIyBUaGUgZmxhZyBpbm5vZGJfY2hhbmdlX2J1ZmZl cmluZ19kZWJ1ZyBpcyBvbmx5IGF2YWlsYWJsZSBpbiBkZWJ1ZyBidWlsZHMuCisjIEl0IGluc3Ry dWN0cyBJbm5vREIgdG8gdHJ5IHRvIGV2aWN0IHBhZ2VzIGZyb20gdGhlIGJ1ZmZlciBwb29sIHdo ZW4KKyMgY2hhbmdlIGJ1ZmZlcmluZyBpcyBwb3NzaWJsZSwgc28gdGhhdCB0aGUgY2hhbmdlIGJ1 ZmZlciB3aWxsIGJlIHVzZWQKKyMgd2hlbmV2ZXIgcG9zc2libGUuCistLSBlcnJvciAwLEVSX1VO S05PV05fU1lTVEVNX1ZBUklBQkxFCitTRVQgQGlubm9kYl9jaGFuZ2VfYnVmZmVyaW5nX2RlYnVn X29yaWcgPSBAQGlubm9kYl9jaGFuZ2VfYnVmZmVyaW5nX2RlYnVnOworLS0gZXJyb3IgMCxFUl9V TktOT1dOX1NZU1RFTV9WQVJJQUJMRQorU0VUIEdMT0JBTCBpbm5vZGJfY2hhbmdlX2J1ZmZlcmlu Z19kZWJ1ZyA9IDE7CistLSBlbmFibGVfcXVlcnlfbG9nCitTRVQgR0xPQkFMIHR4X2lzb2xhdGlv bj0nUkVQRUFUQUJMRS1SRUFEJzsKK1NFVCBHTE9CQUwgaW5ub2RiX2ZpbGVfZm9ybWF0PUJhcnJh Y3VkYTsKK1NFVCBHTE9CQUwgaW5ub2RiX2ZpbGVfcGVyX3RhYmxlPW9uOworCitDUkVBVEUgVEFC TEUgYnVnNTY2ODAoCisgICAgICAgYSBJTlQgQVVUT19JTkNSRU1FTlQgUFJJTUFSWSBLRVksCisg ICAgICAgYiBDSEFSKDEpLAorICAgICAgIGMgSU5ULAorICAgICAgIElOREVYKGIpKQorRU5HSU5F PUlubm9EQjsKKworSU5TRVJUIElOVE8gYnVnNTY2ODAgVkFMVUVTKDAsJ3gnLDEpOworQkVHSU47 CitTRUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwOworCitjb25uZWN0IChjb24xLGxvY2FsaG9zdCxyb290 LCwpOworY29ubmVjdGlvbiBjb24xOworQkVHSU47CitVUERBVEUgYnVnNTY2ODAgU0VUIGI9J1gn OworCitjb25uZWN0aW9uIGRlZmF1bHQ7CisjIFRoaXMgc2hvdWxkIHJldHVybiB0aGUgbGFzdCBj b21taXR0ZWQgdmFsdWUgJ3gnLCBidXQgd291bGQgcmV0dXJuICdYJworIyBkdWUgdG8gYSBidWcg aW4gcm93X3NlYXJjaF9mb3JfbXlzcWwoKS4KK1NFTEVDVCBiIEZST00gYnVnNTY2ODA7CisjIFRo aXMgd291bGQgYWx3YXlzIHJldHVybiB0aGUgbGFzdCBjb21taXR0ZWQgdmFsdWUgJ3gnLgorU0VM RUNUICogRlJPTSBidWc1NjY4MDsKKworY29ubmVjdGlvbiBjb24xOworUk9MTEJBQ0s7CitkaXNj b25uZWN0IGNvbjE7CisKK2Nvbm5lY3Rpb24gZGVmYXVsdDsKKworU0VMRUNUIGIgRlJPTSBidWc1 NjY4MDsKKworIyBGb3IgdGhlIHJlc3Qgb2YgdGhpcyB0ZXN0LCB1c2UgdGhlIFJFQUQgVU5DT01N SVRURUQgaXNvbGF0aW9uIGxldmVsCisjIHRvIHNlZSB3aGF0IGV4aXN0cyBpbiB0aGUgc2Vjb25k YXJ5IGluZGV4LgorU0VUIEdMT0JBTCB0eF9pc29sYXRpb249J1JFQUQtVU5DT01NSVRURUQnOwor CisjIENyZWF0ZSBlbm91Z2ggcm93cyBmb3IgdGhlIHRhYmxlLCBzbyB0aGF0IHRoZSBpbnNlcnQg YnVmZmVyIHdpbGwgYmUKKyMgdXNlZCBmb3IgbW9kaWZ5aW5nIHRoZSBzZWNvbmRhcnkgaW5kZXgg cGFnZS4gVGhlcmUgbXVzdCBiZSBtdWx0aXBsZQorIyBpbmRleCBwYWdlcywgYmVjYXVzZSBjaGFu Z2VzIHRvIHRoZSByb290IHBhZ2UgYXJlIG5ldmVyIGJ1ZmZlcmVkLgorCitJTlNFUlQgSU5UTyBi dWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2Njgw IFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNU IDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMg RlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1 ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7 CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VS VCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8g YnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4 MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVD VCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworCitCRUdJTjsKK1NFTEVDVCBiIEZST00gYnVnNTY2ODAg TElNSVQgMjsKKworY29ubmVjdCAoY29uMSxsb2NhbGhvc3Qscm9vdCwsKTsKK2Nvbm5lY3Rpb24g Y29uMTsKK0JFR0lOOworREVMRVRFIEZST00gYnVnNTY2ODAgV0hFUkUgYT0xOworIyBUaGlzIHNo b3VsZCBiZSBidWZmZXJlZCwgaWYgaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdfZGVidWcgPSAxIGlz IGluIGVmZmVjdC4KK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFZBTFVFUygxLCdYJywxKTsKKworIyBU aGlzIHNob3VsZCBmb3JjZSBhbiBpbnNlcnQgYnVmZmVyIG1lcmdlLCBhbmQgcmV0dXJuICdYJyBp biB0aGUgZmlyc3Qgcm93LgorU0VMRUNUIGIgRlJPTSBidWc1NjY4MCBMSU1JVCAzOworCitjb25u ZWN0aW9uIGRlZmF1bHQ7CitTRUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwIExJTUlUIDI7CitDSEVDSyBU QUJMRSBidWc1NjY4MDsKKworY29ubmVjdGlvbiBjb24xOworUk9MTEJBQ0s7CitTRUxFQ1QgYiBG Uk9NIGJ1ZzU2NjgwIExJTUlUIDI7CitDSEVDSyBUQUJMRSBidWc1NjY4MDsKKworY29ubmVjdGlv biBkZWZhdWx0OworZGlzY29ubmVjdCBjb24xOworCitTRUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwIExJ TUlUIDI7CisKK0NSRUFURSBUQUJMRSBidWc1NjY4MF8yKAorICAgICAgIGEgSU5UIEFVVE9fSU5D UkVNRU5UIFBSSU1BUlkgS0VZLAorICAgICAgIGIgVkFSQ0hBUigyKSBDSEFSU0VUIGxhdGluMSBD T0xMQVRFIGxhdGluMV9nZXJtYW4yX2NpLAorICAgICAgIGMgSU5ULAorICAgICAgIElOREVYKGIp KQorRU5HSU5FPUlubm9EQjsKKworSU5TRVJUIElOVE8gYnVnNTY2ODBfMiBTRUxFQ1QgMCxfbGF0 aW4xIDB4ZGYsYyBGUk9NIGJ1ZzU2NjgwOworCitCRUdJTjsKK1NFTEVDVCBIRVgoYikgRlJPTSBi dWc1NjY4MF8yIExJTUlUIDI7CitERUxFVEUgRlJPTSBidWc1NjY4MF8yIFdIRVJFIGE9MTsKKyMg VGhpcyBzaG91bGQgYmUgYnVmZmVyZWQsIGlmIGlubm9kYl9jaGFuZ2VfYnVmZmVyaW5nX2RlYnVn ID0gMSBpcyBpbiBlZmZlY3QuCitJTlNFUlQgSU5UTyBidWc1NjY4MF8yIFZBTFVFUygxLCdTUycs MSk7CisKKyMgVGhpcyBzaG91bGQgZm9yY2UgYW4gaW5zZXJ0IGJ1ZmZlciBtZXJnZSwgYW5kIHJl dHVybiAnU1MnIGluIHRoZSBmaXJzdCByb3cuCitTRUxFQ1QgSEVYKGIpIEZST00gYnVnNTY2ODBf MiBMSU1JVCAzOworQ0hFQ0sgVEFCTEUgYnVnNTY2ODBfMjsKKworIyBUZXN0IHRoaXMgd2l0aCBj b21wcmVzc2VkIHRhYmxlcy4KK0FMVEVSIFRBQkxFIGJ1ZzU2NjgwXzIgUk9XX0ZPUk1BVD1DT01Q UkVTU0VEIEtFWV9CTE9DS19TSVpFPTE7CisKK1NFTEVDVCBIRVgoYikgRlJPTSBidWc1NjY4MF8y IExJTUlUIDI7CitERUxFVEUgRlJPTSBidWc1NjY4MF8yIFdIRVJFIGE9MTsKKyMgVGhpcyBzaG91 bGQgYmUgYnVmZmVyZWQsIGlmIGlubm9kYl9jaGFuZ2VfYnVmZmVyaW5nX2RlYnVnID0gMSBpcyBp biBlZmZlY3QuCitJTlNFUlQgSU5UTyBidWc1NjY4MF8yIFZBTFVFUygxLF9sYXRpbjEgMHhkZiwx KTsKKworIyBUaGlzIHNob3VsZCBmb3JjZSBhbiBpbnNlcnQgYnVmZmVyIG1lcmdlLCBhbmQgcmV0 dXJuIDB4ZGYgaW4gdGhlIGZpcnN0IHJvdy4KK1NFTEVDVCBIRVgoYikgRlJPTSBidWc1NjY4MF8y IExJTUlUIDM7CitDSEVDSyBUQUJMRSBidWc1NjY4MF8yOworCitEUk9QIFRBQkxFIGJ1ZzU2Njgw XzI7CitEUk9QIFRBQkxFIGJ1ZzU2NjgwOworCistLSBkaXNhYmxlX3F1ZXJ5X2xvZworU0VUIEdM T0JBTCB0eF9pc29sYXRpb24gPSBAdHhfaXNvbGF0aW9uX29yaWc7CitTRVQgR0xPQkFMIGlubm9k Yl9maWxlX3Blcl90YWJsZSA9IEBpbm5vZGJfZmlsZV9wZXJfdGFibGVfb3JpZzsKK1NFVCBHTE9C QUwgaW5ub2RiX2ZpbGVfZm9ybWF0ID0gQGlubm9kYl9maWxlX2Zvcm1hdF9vcmlnOworU0VUIEdM T0JBTCBpbm5vZGJfZmlsZV9mb3JtYXRfbWF4ID0gQGlubm9kYl9maWxlX2Zvcm1hdF9tYXhfb3Jp ZzsKKy0tIGVycm9yIDAsIEVSX1VOS05PV05fU1lTVEVNX1ZBUklBQkxFCitTRVQgR0xPQkFMIGlu bm9kYl9jaGFuZ2VfYnVmZmVyaW5nX2RlYnVnID0gQGlubm9kYl9jaGFuZ2VfYnVmZmVyaW5nX2Rl YnVnX29yaWc7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMGN1 ci5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwY3VyLmMJcmV2aWQ6bWFya28ubWFr ZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkwOTUzMjEtaGJhaHR6aXhqN3NwZXpzeQorKysgYi9zdG9y YWdlL2lubm9iYXNlL2J0ci9idHIwY3VyLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20t MjAxMDEwMTkxMDAzMjUtZHM2MzlybWM3bWZ4eWJrYwpAQCAtMTc0NCw3ICsxNzQ0LDcgQEAgZnVu Y19leGl0OgogU2VlIGlmIHRoZXJlIGlzIGVub3VnaCBwbGFjZSBpbiB0aGUgcGFnZSBtb2RpZmlj YXRpb24gbG9nIHRvIGxvZwogYW4gdXBkYXRlLWluLXBsYWNlLgogQHJldHVybglUUlVFIGlmIGVu b3VnaCBwbGFjZSAqLwotc3RhdGljCitVTklWX0lOVEVSTgogaWJvb2wKIGJ0cl9jdXJfdXBkYXRl X2FsbG9jX3ppcCgKIC8qPT09PT09PT09PT09PT09PT09PT09Ki8KCj09PSBtb2RpZmllZCBmaWxl ICdzdG9yYWdlL2lubm9iYXNlL2J1Zi9idWYwYnVmLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uv YnVmL2J1ZjBidWYuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA5NTMy MS1oYmFodHppeGo3c3BlenN5CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1ZjBidWYuYwly ZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTEwMDMyNS1kczYzOXJtYzdtZnh5 YmtjCkBAIC0zMDUxLDcgKzMwNTEsNyBAQCB3YWl0X3VudGlsX3VuZml4ZWQ6CiAJCS8qIEFzIHdl IGhhdmUgcmVsZWFzZWQgdGhlIHBhZ2VfaGFzaCBtdXRleCBhbmQgdGhlCiAJCWJsb2NrX211dGV4 IHRvIGFsbG9jYXRlIGFuIHVuY29tcHJlc3NlZCBwYWdlIGl0IGlzCiAJCXBvc3NpYmxlIHRoYXQg cGFnZV9oYXNoIG1pZ2h0IGhhdmUgY2hhbmdlZC4gV2UgZG8KLQkJYW5vdGhlciBsb29rdXAgaGVy ZSB3aGlsZSBob2xkaW5nIHRoZSBidWZfcG9vbCBtdXRleAorCQlhbm90aGVyIGxvb2t1cCBoZXJl IHdoaWxlIGhvbGRpbmcgdGhlIGhhc2hfbXV0ZXgKIAkJdG8gdmVyaWZ5IHRoYXQgYnBhZ2UgaXMg aW5kZWVkIHN0aWxsIGEgcGFydCBvZgogCQlwYWdlX2hhc2guICovCiAJCW11dGV4X2VudGVyKGhh c2hfbXV0ZXgpOwpAQCAtMzE3OCw2ICszMTc4LDczIEBAIHdhaXRfdW50aWxfdW5maXhlZDoKIAli eXRlcy4gKi8KIAlVTklWX01FTV9BU1NFUlRfUlcoJmJsb2NrLT5wYWdlLCBzaXplb2YgYmxvY2st PnBhZ2UpOwogI2VuZGlmCisjaWYgZGVmaW5lZCBVTklWX0RFQlVHIHx8IGRlZmluZWQgVU5JVl9J QlVGX0RFQlVHCisJaWYgKChtb2RlID09IEJVRl9HRVRfSUZfSU5fUE9PTCB8fCBtb2RlID09IEJV Rl9HRVRfSUZfSU5fUE9PTF9PUl9XQVRDSCkKKwkgICAgJiYgaWJ1Zl9kZWJ1ZykgeworCQkvKiBU cnkgdG8gZXZpY3QgdGhlIGJsb2NrIGZyb20gdGhlIGJ1ZmZlciBwb29sLCB0byB1c2UgdGhlCisJ CWluc2VydCBidWZmZXIgKGNoYW5nZSBidWZmZXIpIGFzIG11Y2ggYXMgcG9zc2libGUuICovCisK KwkJLyogVG8gb2JleSB0aGUgbGF0Y2hpbmcgb3JkZXIsIHJlbGVhc2UgdGhlCisJCWJsb2NrLT5t dXRleCBiZWZvcmUgYWNxdWlyaW5nIGJ1Zl9wb29sLT5tdXRleC4gUHJvdGVjdAorCQl0aGUgYmxv Y2sgZnJvbSBjaGFuZ2VzIGJ5IHRlbXBvcmFyaWx5IGJ1ZmZlci1maXhpbmcgaXQKKwkJZm9yIHRo ZSB0aW1lIHdlIGFyZSBub3QgaG9sZGluZyBibG9jay0+bXV0ZXguICovCisJCWJ1Zl9ibG9ja19i dWZfZml4X2luYyhibG9jaywgZmlsZSwgbGluZSk7CisJCW11dGV4X2V4aXQoJmJsb2NrLT5tdXRl eCk7CisJCWJ1Zl9wb29sX211dGV4X2VudGVyKGJ1Zl9wb29sKTsKKwkJbXV0ZXhfZW50ZXIoJmJs b2NrLT5tdXRleCk7CisJCWJ1Zl9ibG9ja19idWZfZml4X2RlYyhibG9jayk7CisJCW11dGV4X2V4 aXQoJmJsb2NrLT5tdXRleCk7CisKKwkJLyogTm93IHdlIGFyZSBvbmx5IGhvbGRpbmcgdGhlIGJ1 Zl9wb29sLT5tdXRleCwKKwkJbm90IGJsb2NrLT5tdXRleCBvciBoYXNoX211dGV4LiBCbG9ja3Mg Y2Fubm90IGJlCisJCXJlbG9jYXRlZCBvciBlbnRlciBvciBleGl0IHRoZSBidWZfcG9vbCB3aGls ZSB3ZQorCQlhcmUgaG9sZGluZyB0aGUgYnVmX3Bvb2wtPm11dGV4LiAqLworCisJCWlmIChidWZf TFJVX2ZyZWVfYmxvY2soJmJsb2NrLT5wYWdlLCBUUlVFLCBOVUxMKQorCQkgICAgPT0gQlVGX0xS VV9GUkVFRCkgeworCQkJYnVmX3Bvb2xfbXV0ZXhfZXhpdChidWZfcG9vbCk7CisJCQltdXRleF9l bnRlcihoYXNoX211dGV4KTsKKworCQkJaWYgKG1vZGUgPT0gQlVGX0dFVF9JRl9JTl9QT09MX09S X1dBVENIKSB7CisJCQkJLyogU2V0IHRoZSB3YXRjaCwgYXMgaXQgd291bGQgaGF2ZQorCQkJCWJl ZW4gc2V0IGlmIHRoZSBwYWdlIHdlcmUgbm90IGluIHRoZQorCQkJCWJ1ZmZlciBwb29sIGluIHRo ZSBmaXJzdCBwbGFjZS4gKi8KKwkJCQlibG9jayA9IChidWZfYmxvY2tfdCopIGJ1Zl9wb29sX3dh dGNoX3NldCgKKwkJCQkJc3BhY2UsIG9mZnNldCwgZm9sZCk7CisJCQl9IGVsc2UgeworCQkJCWJs b2NrID0gKGJ1Zl9ibG9ja190KikgYnVmX3BhZ2VfaGFzaF9nZXRfbG93KAorCQkJCQlidWZfcG9v bCwgc3BhY2UsIG9mZnNldCwgZm9sZCk7CisJCQl9CisKKwkJCWlmIChVTklWX0xJS0VMWV9OVUxM KGJsb2NrKSkgeworCQkJCS8qIFRoZSBwYWdlIGVudGVyZWQgdGhlIGJ1ZmZlcgorCQkJCXBvb2wg Zm9yIHNvbWUgcmVhc29uLiBUcnkgdG8KKwkJCQlldmljdCBpdCBhZ2Fpbi4gKi8KKwkJCQlnb3Rv IGdvdF9ibG9jazsKKwkJCX0KKworCQkJbXV0ZXhfZXhpdChoYXNoX211dGV4KTsKKwkJCWZwcmlu dGYoc3RkZXJyLAorCQkJCSJpbm5vZGJfY2hhbmdlX2J1ZmZlcmluZ19kZWJ1ZyBldmljdCAldSAl dVxuIiwKKwkJCQkodW5zaWduZWQpIHNwYWNlLCAodW5zaWduZWQpIG9mZnNldCk7CisJCQlyZXR1 cm4oTlVMTCk7CisJCX0KKworCQltdXRleF9lbnRlcigmYmxvY2stPm11dGV4KTsKKworCQlpZiAo YnVmX2ZsdXNoX3BhZ2VfdHJ5KGJ1Zl9wb29sLCBibG9jaykpIHsKKwkJCWZwcmludGYoc3RkZXJy LAorCQkJCSJpbm5vZGJfY2hhbmdlX2J1ZmZlcmluZ19kZWJ1ZyBmbHVzaCAldSAldVxuIiwKKwkJ CQkodW5zaWduZWQpIHNwYWNlLCAodW5zaWduZWQpIG9mZnNldCk7CisJCQlndWVzcyA9IGJsb2Nr OworCQkJZ290byBsb29wOworCQl9CisKKwkJLyogRmFpbGVkIHRvIGV2aWN0IHRoZSBwYWdlOyBj aGFuZ2UgaXQgZGlyZWN0bHkgKi8KKworCQlidWZfcG9vbF9tdXRleF9leGl0KGJ1Zl9wb29sKTsK Kwl9CisjZW5kaWYgLyogVU5JVl9ERUJVRyB8fCBVTklWX0lCVUZfREVCVUcgKi8KIAogCWJ1Zl9i bG9ja19idWZfZml4X2luYyhibG9jaywgZmlsZSwgbGluZSk7CiAKCj09PSBtb2RpZmllZCBmaWxl ICdzdG9yYWdlL2lubm9iYXNlL2J1Zi9idWYwZmx1LmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uv YnVmL2J1ZjBmbHUuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA5NTMy MS1oYmFodHppeGo3c3BlenN5CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1ZjBmbHUuYwly ZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTEwMDMyNS1kczYzOXJtYzdtZnh5 YmtjCkBAIC0xMTM3LDYgKzExMzcsODMgQEAgYnVmX2ZsdXNoX3dyaXRlX2Jsb2NrX2xvdygKIAl9 CiB9CiAKKyMgaWYgZGVmaW5lZCBVTklWX0RFQlVHIHx8IGRlZmluZWQgVU5JVl9JQlVGX0RFQlVH CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovLyoqCitXcml0ZXMgYSBmbHVzaGFibGUgcGFnZSBhc3luY2hyb25vdXNs eSBmcm9tIHRoZSBidWZmZXIgcG9vbCB0byBhIGZpbGUuCitOT1RFOiBidWZfcG9vbF9tdXRleCBh bmQgYmxvY2stPm11dGV4IG11c3QgYmUgaGVsZCB1cG9uIGVudGVyaW5nIHRoaXMKK2Z1bmN0aW9u LCBhbmQgdGhleSB3aWxsIGJlIHJlbGVhc2VkIGJ5IHRoaXMgZnVuY3Rpb24gYWZ0ZXIgZmx1c2hp bmcuCitUaGlzIGlzIGxvb3NlbHkgYmFzZWQgb24gYnVmX2ZsdXNoX2JhdGNoKCkgYW5kIGJ1Zl9m bHVzaF9wYWdlKCkuCitAcmV0dXJuIFRSVUUgaWYgdGhlIHBhZ2Ugd2FzIGZsdXNoZWQgYW5kIHRo ZSBtdXRleGVzIHJlbGVhc2VkICovCitVTklWX0lOVEVSTgoraWJvb2wKK2J1Zl9mbHVzaF9wYWdl X3RyeSgKKy8qPT09PT09PT09PT09PT09Ki8KKwlidWZfcG9vbF90KglidWZfcG9vbCwJLyohPCBp bi9vdXQ6IGJ1ZmZlciBwb29sIGluc3RhbmNlICovCisJYnVmX2Jsb2NrX3QqCWJsb2NrKQkJLyoh PCBpbi9vdXQ6IGJ1ZmZlciBjb250cm9sIGJsb2NrICovCit7CisJdXRfYWQoYnVmX3Bvb2xfbXV0 ZXhfb3duKGJ1Zl9wb29sKSk7CisJdXRfYWQoYnVmX2Jsb2NrX2dldF9zdGF0ZShibG9jaykgPT0g QlVGX0JMT0NLX0ZJTEVfUEFHRSk7CisJdXRfYWQobXV0ZXhfb3duKCZibG9jay0+bXV0ZXgpKTsK KworCWlmICghYnVmX2ZsdXNoX3JlYWR5X2Zvcl9mbHVzaCgmYmxvY2stPnBhZ2UsIEJVRl9GTFVT SF9MUlUpKSB7CisJCXJldHVybihGQUxTRSk7CisJfQorCisJaWYgKGJ1Zl9wb29sLT5uX2ZsdXNo W0JVRl9GTFVTSF9MUlVdID4gMAorCSAgICB8fCBidWZfcG9vbC0+aW5pdF9mbHVzaFtCVUZfRkxV U0hfTFJVXSkgeworCQkvKiBUaGVyZSBpcyBhbHJlYWR5IGEgZmx1c2ggYmF0Y2ggb2YgdGhlIHNh bWUgdHlwZSBydW5uaW5nICovCisJCXJldHVybihGQUxTRSk7CisJfQorCisJYnVmX3Bvb2wtPmlu aXRfZmx1c2hbQlVGX0ZMVVNIX0xSVV0gPSBUUlVFOworCisJYnVmX3BhZ2Vfc2V0X2lvX2ZpeCgm YmxvY2stPnBhZ2UsIEJVRl9JT19XUklURSk7CisKKwlidWZfcGFnZV9zZXRfZmx1c2hfdHlwZSgm YmxvY2stPnBhZ2UsIEJVRl9GTFVTSF9MUlUpOworCisJaWYgKGJ1Zl9wb29sLT5uX2ZsdXNoW0JV Rl9GTFVTSF9MUlVdKysgPT0gMCkgeworCisJCW9zX2V2ZW50X3Jlc2V0KGJ1Zl9wb29sLT5ub19m bHVzaFtCVUZfRkxVU0hfTFJVXSk7CisJfQorCisJLyogVkVSWSBJTVBPUlRBTlQ6CisJQmVjYXVz ZSBhbnkgdGhyZWFkIG1heSBjYWxsIHRoZSBMUlUgZmx1c2gsIGV2ZW4gd2hlbiBvd25pbmcKKwls b2NrcyBvbiBwYWdlcywgdG8gYXZvaWQgZGVhZGxvY2tzLCB3ZSBtdXN0IG1ha2Ugc3VyZSB0aGF0 IHRoZQorCXMtbG9jayBpcyBhY3F1aXJlZCBvbiB0aGUgcGFnZSB3aXRob3V0IHdhaXRpbmc6IHRo aXMgaXMKKwlhY2NvbXBsaXNoZWQgYmVjYXVzZSBidWZfZmx1c2hfcmVhZHlfZm9yX2ZsdXNoKCkg bXVzdCBob2xkLAorCWFuZCB0aGF0IHJlcXVpcmVzIHRoZSBwYWdlIG5vdCB0byBiZSBidWZmZXJm aXhlZC4gKi8KKworCXJ3X2xvY2tfc19sb2NrX2dlbigmYmxvY2stPmxvY2ssIEJVRl9JT19XUklU RSk7CisKKwkvKiBOb3RlIHRoYXQgdGhlIHMtbGF0Y2ggaXMgYWNxdWlyZWQgYmVmb3JlIHJlbGVh c2luZyB0aGUKKwlidWZfcG9vbCBtdXRleDogdGhpcyBlbnN1cmVzIHRoYXQgdGhlIGxhdGNoIGlz IGFjcXVpcmVkCisJaW1tZWRpYXRlbHkuICovCisKKwltdXRleF9leGl0KCZibG9jay0+bXV0ZXgp OworCWJ1Zl9wb29sX211dGV4X2V4aXQoYnVmX3Bvb2wpOworCisJLyogRXZlbiB0aG91Z2ggYmxv Y2sgaXMgbm90IHByb3RlY3RlZCBieSBhbnkgbXV0ZXggYXQgdGhpcworCXBvaW50LCBpdCBpcyBz YWZlIHRvIGFjY2VzcyBibG9jaywgYmVjYXVzZSBpdCBpcyBpb19maXhlZCBhbmQKKwlvbGRlc3Rf bW9kaWZpY2F0aW9uICE9IDAuICBUaHVzLCBpdCBjYW5ub3QgYmUgcmVsb2NhdGVkIGluIHRoZQor CWJ1ZmZlciBwb29sIG9yIHJlbW92ZWQgZnJvbSBmbHVzaF9saXN0IG9yIExSVV9saXN0LiAqLwor CisJYnVmX2ZsdXNoX3dyaXRlX2Jsb2NrX2xvdygmYmxvY2stPnBhZ2UpOworCisJYnVmX3Bvb2xf bXV0ZXhfZW50ZXIoYnVmX3Bvb2wpOworCWJ1Zl9wb29sLT5pbml0X2ZsdXNoW0JVRl9GTFVTSF9M UlVdID0gRkFMU0U7CisKKwlpZiAoYnVmX3Bvb2wtPm5fZmx1c2hbQlVGX0ZMVVNIX0xSVV0gPT0g MCkgeworCQkvKiBUaGUgcnVubmluZyBmbHVzaCBiYXRjaCBoYXMgZW5kZWQgKi8KKwkJb3NfZXZl bnRfc2V0KGJ1Zl9wb29sLT5ub19mbHVzaFtCVUZfRkxVU0hfTFJVXSk7CisJfQorCisJYnVmX3Bv b2xfbXV0ZXhfZXhpdChidWZfcG9vbCk7CisJYnVmX2ZsdXNoX2J1ZmZlcmVkX3dyaXRlcygpOwor CisJcmV0dXJuKFRSVUUpOworfQorIyBlbmRpZiAvKiBVTklWX0RFQlVHIHx8IFVOSVZfSUJVRl9E RUJVRyAqLworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBXcml0ZXMgYSBmbHVzaGFibGUgcGFnZSBhc3lu Y2hyb25vdXNseSBmcm9tIHRoZSBidWZmZXIgcG9vbCB0byBhIGZpbGUuCiBOT1RFOiBpbiBzaW11 bGF0ZWQgYWlvIHdlIG11c3QgY2FsbAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jh c2UvaGFuZGxlci9oYV9pbm5vZGIuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9o YV9pbm5vZGIuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkwOTUzMjEt aGJhaHR6aXhqN3NwZXpzeQorKysgYi9zdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFfaW5ub2Ri LmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MTAwMzI1LWRzNjM5cm1j N21meHlia2MKQEAgLTQ2MjksMTcgKzQ2MjksMTggQEAgaW5jbHVkZV9maWVsZDoKIAkJbl9yZXF1 ZXN0ZWRfZmllbGRzKys7CiAKIAkJdGVtcGwtPmNvbF9ubyA9IGk7CisJCXRlbXBsLT5jbHVzdF9y ZWNfZmllbGRfbm8gPSBkaWN0X2NvbF9nZXRfY2x1c3RfcG9zKAorCQkJY29sLCBjbHVzdF9pbmRl eCk7CisJCXV0X2FkKHRlbXBsLT5jbHVzdF9yZWNfZmllbGRfbm8gIT0gVUxJTlRfVU5ERUZJTkVE KTsKIAogCQlpZiAoaW5kZXggPT0gY2x1c3RfaW5kZXgpIHsKLQkJCXRlbXBsLT5yZWNfZmllbGRf bm8gPSBkaWN0X2NvbF9nZXRfY2x1c3RfcG9zKAotCQkJCWNvbCwgaW5kZXgpOworCQkJdGVtcGwt PnJlY19maWVsZF9ubyA9IHRlbXBsLT5jbHVzdF9yZWNfZmllbGRfbm87CiAJCX0gZWxzZSB7CiAJ CQl0ZW1wbC0+cmVjX2ZpZWxkX25vID0gZGljdF9pbmRleF9nZXRfbnRoX2NvbF9wb3MoCiAJCQkJ CQkJCWluZGV4LCBpKTsKLQkJfQotCi0JCWlmICh0ZW1wbC0+cmVjX2ZpZWxkX25vID09IFVMSU5U X1VOREVGSU5FRCkgewotCQkJcHJlYnVpbHQtPm5lZWRfdG9fYWNjZXNzX2NsdXN0ZXJlZCA9IFRS VUU7CisJCQlpZiAodGVtcGwtPnJlY19maWVsZF9ubyA9PSBVTElOVF9VTkRFRklORUQpIHsKKwkJ CQlwcmVidWlsdC0+bmVlZF90b19hY2Nlc3NfY2x1c3RlcmVkID0gVFJVRTsKKwkJCX0KIAkJfQog CiAJCWlmIChmaWVsZC0+bnVsbF9wdHIpIHsKQEAgLTQ2ODksOSArNDY5MCw3IEBAIHNraXBfZmll bGQ6CiAJCWZvciAoaSA9IDA7IGkgPCBuX3JlcXVlc3RlZF9maWVsZHM7IGkrKykgewogCQkJdGVt cGwgPSBwcmVidWlsdC0+bXlzcWxfdGVtcGxhdGUgKyBpOwogCi0JCQl0ZW1wbC0+cmVjX2ZpZWxk X25vID0gZGljdF9jb2xfZ2V0X2NsdXN0X3BvcygKLQkJCQkmaW5kZXgtPnRhYmxlLT5jb2xzW3Rl bXBsLT5jb2xfbm9dLAotCQkJCWNsdXN0X2luZGV4KTsKKwkJCXRlbXBsLT5yZWNfZmllbGRfbm8g PSB0ZW1wbC0+Y2x1c3RfcmVjX2ZpZWxkX25vOwogCQl9CiAJfQogfQpAQCAtMTE0NTAsNiArMTE0 NDksMTMgQEAgc3RhdGljIE1ZU1FMX1NZU1ZBUl9TVFIoY2hhbmdlX2J1ZmZlcmluZwogICBpbm5v ZGJfY2hhbmdlX2J1ZmZlcmluZ192YWxpZGF0ZSwKICAgaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdf dXBkYXRlLCAiYWxsIik7CiAKKyNpZiBkZWZpbmVkIFVOSVZfREVCVUcgfHwgZGVmaW5lZCBVTklW X0lCVUZfREVCVUcKK3N0YXRpYyBNWVNRTF9TWVNWQVJfVUlOVChjaGFuZ2VfYnVmZmVyaW5nX2Rl YnVnLCBpYnVmX2RlYnVnLAorICBQTFVHSU5fVkFSX1JRQ01EQVJHLAorICAiRGVidWcgZmxhZ3Mg Zm9yIElubm9EQiBjaGFuZ2UgYnVmZmVyaW5nICgwPW5vbmUpIiwKKyAgTlVMTCwgTlVMTCwgMCwg MCwgMSwgMCk7CisjZW5kaWYgLyogVU5JVl9ERUJVRyB8fCBVTklWX0lCVUZfREVCVUcgKi8KKwog c3RhdGljIE1ZU1FMX1NZU1ZBUl9VTE9ORyhyZWFkX2FoZWFkX3RocmVzaG9sZCwgc3J2X3JlYWRf YWhlYWRfdGhyZXNob2xkLAogICBQTFVHSU5fVkFSX1JRQ01EQVJHLAogICAiTnVtYmVyIG9mIHBh Z2VzIHRoYXQgbXVzdCBiZSBhY2Nlc3NlZCBzZXF1ZW50aWFsbHkgZm9yIElubm9EQiB0byAiCkBA IC0xMTUzNyw2ICsxMTU0Myw5IEBAIHN0YXRpYyBzdHJ1Y3Qgc3RfbXlzcWxfc3lzX3ZhciogaW5u b2Jhc2UKICAgTVlTUUxfU1lTVkFSKHVzZV9zeXNfbWFsbG9jKSwKICAgTVlTUUxfU1lTVkFSKHVz ZV9uYXRpdmVfYWlvKSwKICAgTVlTUUxfU1lTVkFSKGNoYW5nZV9idWZmZXJpbmcpLAorI2lmIGRl ZmluZWQgVU5JVl9ERUJVRyB8fCBkZWZpbmVkIFVOSVZfSUJVRl9ERUJVRworICBNWVNRTF9TWVNW QVIoY2hhbmdlX2J1ZmZlcmluZ19kZWJ1ZyksCisjZW5kaWYgLyogVU5JVl9ERUJVRyB8fCBVTklW X0lCVUZfREVCVUcgKi8KICAgTVlTUUxfU1lTVkFSKHJlYWRfYWhlYWRfdGhyZXNob2xkKSwKICAg TVlTUUxfU1lTVkFSKGlvX2NhcGFjaXR5KSwKICAgTVlTUUxfU1lTVkFSKGVuYWJsZV9tb25pdG9y X2NvdW50ZXIpLAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaWJ1Zi9pYnVm MGlidWYuYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pYnVmL2lidWYwaWJ1Zi5jCXJldmlkOm1h cmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDk1MzIxLWhiYWh0eml4ajdzcGV6c3kKKysr IGIvc3RvcmFnZS9pbm5vYmFzZS9pYnVmL2lidWYwaWJ1Zi5jCXJldmlkOm1hcmtvLm1ha2VsYUBv cmFjbGUuY29tLTIwMTAxMDE5MTAwMzI1LWRzNjM5cm1jN21meHlia2MKQEAgLTQ5LDYgKzQ5LDcg QEAgQ3JlYXRlZCA3LzE5LzE5OTcgSGVpa2tpIFR1dXJpCiAjaW5jbHVkZSAiYnRyMGN1ci5oIgog I2luY2x1ZGUgImJ0cjBwY3VyLmgiCiAjaW5jbHVkZSAiYnRyMGJ0ci5oIgorI2luY2x1ZGUgInJv dzB1cGQuaCIKICNpbmNsdWRlICJzeW5jMHN5bmMuaCIKICNpbmNsdWRlICJkaWN0MGJvb3QuaCIK ICNpbmNsdWRlICJmdXQwbHN0LmgiCkBAIC0xOTIsNiArMTkzLDExIEBAIGFjY2VzcyBvcmRlciBy dWxlcy4gKi8KIC8qKiBPcGVyYXRpb25zIHRoYXQgY2FuIGN1cnJlbnRseSBiZSBidWZmZXJlZC4g Ki8KIFVOSVZfSU5URVJOIGlidWZfdXNlX3QJaWJ1Zl91c2UJCT0gSUJVRl9VU0VfQUxMOwogCisj aWYgZGVmaW5lZCBVTklWX0RFQlVHIHx8IGRlZmluZWQgVU5JVl9JQlVGX0RFQlVHCisvKiogRmxh ZyB0byBjb250cm9sIGluc2VydCBidWZmZXIgZGVidWdnaW5nLiAqLworVU5JVl9JTlRFUk4gdWlu dAlpYnVmX2RlYnVnOworI2VuZGlmIC8qIFVOSVZfREVCVUcgfHwgVU5JVl9JQlVGX0RFQlVHICov CisKIC8qKiBUaGUgaW5zZXJ0IGJ1ZmZlciBjb250cm9sIHN0cnVjdHVyZSAqLwogVU5JVl9JTlRF Uk4gaWJ1Zl90KglpYnVmCQkJPSBOVUxMOwogCkBAIC0yNzYxLDkgKzI3NjcsOCBAQCBpYnVmX2dl dF92b2x1bWVfYnVmZmVyZWRfY291bnQoCiAKIAlzd2l0Y2ggKGlidWZfb3ApIHsKIAljYXNlIElC VUZfT1BfSU5TRVJUOgotCQkvKiBJbnNlcnRzIGNhbiBiZSBkb25lIGJ5Ci0JCWJ0cl9jdXJfc2V0 X2RlbGV0ZWRfZmxhZ19mb3JfaWJ1ZigpLiAgQmVjYXVzZQotCQlkZWxldGUtbWFyayBhbmQgaW5z ZXJ0IG9wZXJhdGlvbnMgY2FuIGJlIHBvaW50aW5nIHRvCisJCS8qIEluc2VydHMgY2FuIGJlIGRv bmUgYnkgdXBkYXRpbmcgYSBkZWxldGUtbWFya2VkIHJlY29yZC4KKwkJQmVjYXVzZSBkZWxldGUt bWFyayBhbmQgaW5zZXJ0IG9wZXJhdGlvbnMgY2FuIGJlIHBvaW50aW5nIHRvCiAJCXRoZSBzYW1l IHJlY29yZHMsIHdlIG11c3Qgbm90IGNvdW50IGR1cGxpY2F0ZXMuICovCiAJY2FzZSBJQlVGX09Q X0RFTEVURV9NQVJLOgogCQkvKiBUaGVyZSBtdXN0IGJlIGEgcmVjb3JkIHRvIGRlbGV0ZS1tYXJr LgpAQCAtMzc0OSw5ICszNzU0LDgwIEBAIER1cmluZyBtZXJnZSwgaW5zZXJ0cyB0byBhbiBpbmRl eCBwYWdlIGEKIGZyb20gdGhlIGluc2VydCBidWZmZXIuICovCiBzdGF0aWMKIHZvaWQKK2lidWZf aW5zZXJ0X3RvX2luZGV4X3BhZ2VfbG93KAorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PSov CisJY29uc3QgZHR1cGxlX3QqCWVudHJ5LAkvKiE8IGluOiBidWZmZXJlZCBlbnRyeSB0byBpbnNl cnQgKi8KKwlidWZfYmxvY2tfdCoJYmxvY2ssCS8qITwgaW4vb3V0OiBpbmRleCBwYWdlIHdoZXJl IHRoZSBidWZmZXJlZAorCQkJCWVudHJ5IHNob3VsZCBiZSBwbGFjZWQgKi8KKwlkaWN0X2luZGV4 X3QqCWluZGV4LAkvKiE8IGluOiByZWNvcmQgZGVzY3JpcHRvciAqLworCW10cl90KgkJbXRyLAkv KiE8IGluL291dDogbXRyICovCisJcGFnZV9jdXJfdCoJcGFnZV9jdXIpLyohPCBpbi9vdXQ6IGN1 cnNvciBwb3NpdGlvbmVkIG9uIHRoZSByZWNvcmQKKwkJCQlhZnRlciB3aGljaCB0byBpbnNlcnQg dGhlIGJ1ZmZlcmVkIGVudHJ5ICovCit7CisJY29uc3QgcGFnZV90KglwYWdlOworCXVsaW50CQlz cGFjZTsKKwl1bGludAkJcGFnZV9ubzsKKwl1bGludAkJemlwX3NpemU7CisJY29uc3QgcGFnZV90 KgliaXRtYXBfcGFnZTsKKwl1bGludAkJb2xkX2JpdHM7CisKKwlpZiAoVU5JVl9MSUtFTFkKKwkg ICAgKHBhZ2VfY3VyX3R1cGxlX2luc2VydChwYWdlX2N1ciwgZW50cnksIGluZGV4LCAwLCBtdHIp ICE9IE5VTEwpKSB7CisJCXJldHVybjsKKwl9CisKKwkvKiBJZiB0aGUgcmVjb3JkIGRpZCBub3Qg Zml0LCByZW9yZ2FuaXplICovCisKKwlidHJfcGFnZV9yZW9yZ2FuaXplKGJsb2NrLCBpbmRleCwg bXRyKTsKKwlwYWdlX2N1cl9zZWFyY2goYmxvY2ssIGluZGV4LCBlbnRyeSwgUEFHRV9DVVJfTEUs IHBhZ2VfY3VyKTsKKworCS8qIFRoaXMgdGltZSB0aGUgcmVjb3JkIG11c3QgZml0ICovCisKKwlp ZiAoVU5JVl9MSUtFTFkKKwkgICAgKHBhZ2VfY3VyX3R1cGxlX2luc2VydChwYWdlX2N1ciwgZW50 cnksIGluZGV4LCAwLCBtdHIpICE9IE5VTEwpKSB7CisJCXJldHVybjsKKwl9CisKKwlwYWdlID0g YnVmX2Jsb2NrX2dldF9mcmFtZShibG9jayk7CisKKwl1dF9wcmludF90aW1lc3RhbXAoc3RkZXJy KTsKKworCWZwcmludGYoc3RkZXJyLAorCQkiICBJbm5vREI6IEVycm9yOiBJbnNlcnQgYnVmZmVy IGluc2VydCBmYWlsczsiCisJCSIgcGFnZSBmcmVlICVsdSwgZHR1cGxlIHNpemUgJWx1XG4iLAor CQkodWxvbmcpIHBhZ2VfZ2V0X21heF9pbnNlcnRfc2l6ZShwYWdlLCAxKSwKKwkJKHVsb25nKSBy ZWNfZ2V0X2NvbnZlcnRlZF9zaXplKGluZGV4LCBlbnRyeSwgMCkpOworCWZwdXRzKCJJbm5vREI6 IENhbm5vdCBpbnNlcnQgaW5kZXggcmVjb3JkICIsIHN0ZGVycik7CisJZHR1cGxlX3ByaW50KHN0 ZGVyciwgZW50cnkpOworCWZwdXRzKCJcbklubm9EQjogVGhlIHRhYmxlIHdoZXJlIHRoaXMgaW5k ZXggcmVjb3JkIGJlbG9uZ3NcbiIKKwkgICAgICAiSW5ub0RCOiBpcyBub3cgcHJvYmFibHkgY29y cnVwdC4gUGxlYXNlIHJ1biBDSEVDSyBUQUJMRSBvblxuIgorCSAgICAgICJJbm5vREI6IHRoYXQg dGFibGUuXG4iLCBzdGRlcnIpOworCisJc3BhY2UgPSBwYWdlX2dldF9zcGFjZV9pZChwYWdlKTsK Kwl6aXBfc2l6ZSA9IGJ1Zl9ibG9ja19nZXRfemlwX3NpemUoYmxvY2spOworCXBhZ2Vfbm8gPSBw YWdlX2dldF9wYWdlX25vKHBhZ2UpOworCisJYml0bWFwX3BhZ2UgPSBpYnVmX2JpdG1hcF9nZXRf bWFwX3BhZ2Uoc3BhY2UsIHBhZ2Vfbm8sIHppcF9zaXplLCBtdHIpOworCW9sZF9iaXRzID0gaWJ1 Zl9iaXRtYXBfcGFnZV9nZXRfYml0cyhiaXRtYXBfcGFnZSwgcGFnZV9ubywgemlwX3NpemUsCisJ CQkJCSAgICAgSUJVRl9CSVRNQVBfRlJFRSwgbXRyKTsKKworCWZwcmludGYoc3RkZXJyLAorCQki SW5ub0RCOiBzcGFjZSAlbHUsIHBhZ2UgJWx1LCB6aXBfc2l6ZSAlbHUsIGJpdG1hcCBiaXRzICVs dVxuIiwKKwkJKHVsb25nKSBzcGFjZSwgKHVsb25nKSBwYWdlX25vLAorCQkodWxvbmcpIHppcF9z aXplLCAodWxvbmcpIG9sZF9iaXRzKTsKKworCWZwdXRzKCJJbm5vREI6IFN1Ym1pdCBhIGRldGFp bGVkIGJ1ZyByZXBvcnQiCisJICAgICAgIiB0byBodHRwOi8vYnVncy5teXNxbC5jb21cbiIsIHN0 ZGVycik7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKK0R1cmluZyBtZXJnZSwgaW5zZXJ0cyB0byBh biBpbmRleCBwYWdlIGEgc2Vjb25kYXJ5IGluZGV4IGVudHJ5IGV4dHJhY3RlZAorZnJvbSB0aGUg aW5zZXJ0IGJ1ZmZlci4gKi8KK3N0YXRpYwordm9pZAogaWJ1Zl9pbnNlcnRfdG9faW5kZXhfcGFn ZSgKIC8qPT09PT09PT09PT09PT09PT09PT09PSovCi0JZHR1cGxlX3QqCWVudHJ5LAkvKiE8IGlu OiBidWZmZXJlZCBlbnRyeSB0byBpbnNlcnQgKi8KKwljb25zdCBkdHVwbGVfdCoJZW50cnksCS8q ITwgaW46IGJ1ZmZlcmVkIGVudHJ5IHRvIGluc2VydCAqLwogCWJ1Zl9ibG9ja190KglibG9jaywJ LyohPCBpbi9vdXQ6IGluZGV4IHBhZ2Ugd2hlcmUgdGhlIGJ1ZmZlcmVkIGVudHJ5CiAJCQkJc2hv dWxkIGJlIHBsYWNlZCAqLwogCWRpY3RfaW5kZXhfdCoJaW5kZXgsCS8qITwgaW46IHJlY29yZCBk ZXNjcmlwdG9yICovCkBAIC0zNzYxLDExICszODM3LDEwIEBAIGlidWZfaW5zZXJ0X3RvX2luZGV4 X3BhZ2UoCiAJdWxpbnQJCWxvd19tYXRjaDsKIAlwYWdlX3QqCQlwYWdlCQk9IGJ1Zl9ibG9ja19n ZXRfZnJhbWUoYmxvY2spOwogCXJlY190KgkJcmVjOwotCXBhZ2VfdCoJCWJpdG1hcF9wYWdlOwot CXVsaW50CQlvbGRfYml0czsKIAogCXV0X2FkKGlidWZfaW5zaWRlKCkpOwogCXV0X2FkKGR0dXBs ZV9jaGVja190eXBlZChlbnRyeSkpOworCXV0X2FkKCFidWZfYmxvY2tfYWxpZ24ocGFnZSktPmlz X2hhc2hlZCk7CiAKIAlpZiAoVU5JVl9VTkxJS0VMWShkaWN0X3RhYmxlX2lzX2NvbXAoaW5kZXgt PnRhYmxlKQogCQkJICAhPSAoaWJvb2wpISFwYWdlX2lzX2NvbXAocGFnZSkpKSB7CkBAIC0zODEx LDcxICszODg2LDg3IEBAIGR1bXA6CiAJbG93X21hdGNoID0gcGFnZV9jdXJfc2VhcmNoKGJsb2Nr LCBpbmRleCwgZW50cnksCiAJCQkJICAgIFBBR0VfQ1VSX0xFLCAmcGFnZV9jdXIpOwogCi0JaWYg KGxvd19tYXRjaCA9PSBkdHVwbGVfZ2V0X25fZmllbGRzKGVudHJ5KSkgeworCWlmIChVTklWX1VO TElLRUxZKGxvd19tYXRjaCA9PSBkdHVwbGVfZ2V0X25fZmllbGRzKGVudHJ5KSkpIHsKKwkJbWVt X2hlYXBfdCoJaGVhcDsKKwkJdXBkX3QqCQl1cGRhdGU7CisJCXVsaW50KgkJb2Zmc2V0czsKIAkJ cGFnZV96aXBfZGVzX3QqCXBhZ2VfemlwOwogCiAJCXJlYyA9IHBhZ2VfY3VyX2dldF9yZWMoJnBh Z2VfY3VyKTsKLQkJcGFnZV96aXAgPSBidWZfYmxvY2tfZ2V0X3BhZ2VfemlwKGJsb2NrKTsKIAot CQlidHJfY3VyX3NldF9kZWxldGVkX2ZsYWdfZm9yX2lidWYocmVjLCBwYWdlX3ppcCwgRkFMU0Us IG10cik7Ci0JfSBlbHNlIHsKLQkJcmVjID0gcGFnZV9jdXJfdHVwbGVfaW5zZXJ0KCZwYWdlX2N1 ciwgZW50cnksIGluZGV4LCAwLCBtdHIpOworCQkvKiBUaGlzIGlzIGJhc2VkIG9uCisJCXJvd19p bnNfc2VjX2luZGV4X2VudHJ5X2J5X21vZGlmeShCVFJfTU9ESUZZX0xFQUYpLiAqLworCQl1dF9h ZChyZWNfZ2V0X2RlbGV0ZWRfZmxhZyhyZWMsIHBhZ2VfaXNfY29tcChwYWdlKSkpOworCisJCWhl YXAgPSBtZW1faGVhcF9jcmVhdGUoMTAyNCk7CisKKwkJb2Zmc2V0cyA9IHJlY19nZXRfb2Zmc2V0 cyhyZWMsIGluZGV4LCBOVUxMLCBVTElOVF9VTkRFRklORUQsCisJCQkJCSAgJmhlYXApOworCQl1 cGRhdGUgPSByb3dfdXBkX2J1aWxkX3NlY19yZWNfZGlmZmVyZW5jZV9iaW5hcnkoCisJCQlpbmRl eCwgZW50cnksIHJlYywgTlVMTCwgaGVhcCk7CiAKLQkJaWYgKFVOSVZfTElLRUxZKHJlYyAhPSBO VUxMKSkgeworCQlwYWdlX3ppcCA9IGJ1Zl9ibG9ja19nZXRfcGFnZV96aXAoYmxvY2spOworCisJ CWlmICh1cGRhdGUtPm5fZmllbGRzID09IDApIHsKKwkJCS8qIFRoZSByZWNvcmRzIG9ubHkgZGlm ZmVyIGluIHRoZSBkZWxldGUtbWFyay4KKwkJCUNsZWFyIHRoZSBkZWxldGUtbWFyaywgbGlrZSB3 ZSBkaWQgYmVmb3JlCisJCQlCdWcgIzU2NjgwIHdhcyBmaXhlZC4gKi8KKwkJCWJ0cl9jdXJfc2V0 X2RlbGV0ZWRfZmxhZ19mb3JfaWJ1ZigKKwkJCQlyZWMsIHBhZ2VfemlwLCBGQUxTRSwgbXRyKTsK K3VwZGF0ZWRfaW5fcGxhY2U6CisJCQltZW1faGVhcF9mcmVlKGhlYXApOwogCQkJcmV0dXJuOwog CQl9CiAKLQkJLyogSWYgdGhlIHJlY29yZCBkaWQgbm90IGZpdCwgcmVvcmdhbml6ZSAqLworCQkv KiBDb3B5IHRoZSBpbmZvIGJpdHMuIENsZWFyIHRoZSBkZWxldGUtbWFyay4gKi8KKwkJdXBkYXRl LT5pbmZvX2JpdHMgPSByZWNfZ2V0X2luZm9fYml0cyhyZWMsIHBhZ2VfaXNfY29tcChwYWdlKSk7 CisJCXVwZGF0ZS0+aW5mb19iaXRzICY9IH5SRUNfSU5GT19ERUxFVEVEX0ZMQUc7CisKKwkJLyog V2UgY2Fubm90IGludm9rZSBidHJfY3VyX29wdGltaXN0aWNfdXBkYXRlKCkgaGVyZSwKKwkJYmVj YXVzZSB3ZSBkbyBub3QgaGF2ZSBhIGJ0cl9jdXJfdCBvciBxdWVfdGhyX3QsCisJCWFzIHRoZSBp bnNlcnQgYnVmZmVyIG1lcmdlIG9jY3VycyBhdCBhIHZlcnkgbG93IGxldmVsLiAqLworCQlpZiAo IXJvd191cGRfY2hhbmdlc19maWVsZF9zaXplX29yX2V4dGVybmFsKGluZGV4LCBvZmZzZXRzLAor CQkJCQkJCSAgICB1cGRhdGUpCisJCSAgICAmJiAoIXBhZ2VfemlwIHx8IGJ0cl9jdXJfdXBkYXRl X2FsbG9jX3ppcCgKKwkJCQlwYWdlX3ppcCwgYmxvY2ssIGluZGV4LAorCQkJCXJlY19vZmZzX3Np emUob2Zmc2V0cyksIEZBTFNFLCBtdHIpKSkgeworCQkJLyogVGhpcyBpcyB0aGUgZWFzeSBjYXNl LiBEbyBzb21ldGhpbmcgc2ltaWxhcgorCQkJdG8gYnRyX2N1cl91cGRhdGVfaW5fcGxhY2UoKS4g Ki8KKwkJCXJvd191cGRfcmVjX2luX3BsYWNlKHJlYywgaW5kZXgsIG9mZnNldHMsCisJCQkJCSAg ICAgdXBkYXRlLCBwYWdlX3ppcCk7CisJCQlnb3RvIHVwZGF0ZWRfaW5fcGxhY2U7CisJCX0KKwor CQkvKiBBIGNvbGxhdGlvbiBtYXkgaWRlbnRpZnkgdmFsdWVzIHRoYXQgZGlmZmVyIGluCisJCXN0 b3JhZ2UgbGVuZ3RoLgorCQlTb21lIGV4YW1wbGVzICgxIG9yIDIgYnl0ZXMpOgorCQl1dGY4X3R1 cmtpc2hfY2k6IEkgPSBVKzAxMzEgTEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSQorCQl1dGY4 X2dlbmVyYWxfY2k6IFMgPSBVKzAwREYgTEFUSU4gU01BTEwgTEVUVEVSIFNIQVJQIFMKKwkJdXRm OF9nZW5lcmFsX2NpOiBBID0gVSswMEU0IExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRElBRVJF U0lTCisKKwkJbGF0aW4xX2dlcm1hbjJfY2k6IFNTID0gVSswMERGIExBVElOIFNNQUxMIExFVFRF UiBTSEFSUCBTCisKKwkJRXhhbXBsZXMgb2YgYSBjaGFyYWN0ZXIgKDMtYnl0ZSBVVEYtOCBzZXF1 ZW5jZSkKKwkJaWRlbnRpZmllZCB3aXRoIDIgb3IgNCBjaGFyYWN0ZXJzICgxLWJ5dGUgVVRGLTgg c2VxdWVuY2VzKToKKworCQl1dGY4X3VuaWNvZGVfY2k6ICdJSScgPSBVKzIxNzEgU01BTEwgUk9N QU4gTlVNRVJBTCBUV08KKwkJdXRmOF91bmljb2RlX2NpOiAnKDEwKScgPSBVKzI0N0QgUEFSRU5U SEVTSVpFRCBOVU1CRVIgVEVOCisJCSovCiAKLQkJYnRyX3BhZ2VfcmVvcmdhbml6ZShibG9jaywg aW5kZXgsIG10cik7Ci0JCXBhZ2VfY3VyX3NlYXJjaChibG9jaywgaW5kZXgsIGVudHJ5LCBQQUdF X0NVUl9MRSwgJnBhZ2VfY3VyKTsKKwkJLyogRGVsZXRlIHRoZSBkaWZmZXJlbnQtbGVuZ3RoIHJl Y29yZCwgYW5kIGluc2VydCB0aGUKKwkJYnVmZmVyZWQgb25lLiAqLwogCi0JCS8qIFRoaXMgdGlt ZSB0aGUgcmVjb3JkIG11c3QgZml0ICovCi0JCWlmIChVTklWX1VOTElLRUxZCi0JCSAgICAoIXBh Z2VfY3VyX3R1cGxlX2luc2VydCgmcGFnZV9jdXIsIGVudHJ5LCBpbmRleCwKLQkJCQkJICAgIDAs IG10cikpKSB7Ci0JCQl1bGludAlzcGFjZTsKLQkJCXVsaW50CXBhZ2Vfbm87Ci0JCQl1bGludAl6 aXBfc2l6ZTsKLQotCQkJdXRfcHJpbnRfdGltZXN0YW1wKHN0ZGVycik7Ci0KLQkJCWZwcmludGYo c3RkZXJyLAotCQkJCSIgIElubm9EQjogRXJyb3I6IEluc2VydCBidWZmZXIgaW5zZXJ0IgotCQkJ CSIgZmFpbHM7IHBhZ2UgZnJlZSAlbHUsIgotCQkJCSIgZHR1cGxlIHNpemUgJWx1XG4iLAotCQkJ CSh1bG9uZykgcGFnZV9nZXRfbWF4X2luc2VydF9zaXplKAotCQkJCQlwYWdlLCAxKSwKLQkJCQko dWxvbmcpIHJlY19nZXRfY29udmVydGVkX3NpemUoCi0JCQkJCWluZGV4LCBlbnRyeSwgMCkpOwot CQkJZnB1dHMoIklubm9EQjogQ2Fubm90IGluc2VydCBpbmRleCByZWNvcmQgIiwKLQkJCSAgICAg IHN0ZGVycik7Ci0JCQlkdHVwbGVfcHJpbnQoc3RkZXJyLCBlbnRyeSk7Ci0JCQlmcHV0cygiXG5J bm5vREI6IFRoZSB0YWJsZSB3aGVyZSIKLQkJCSAgICAgICIgdGhpcyBpbmRleCByZWNvcmQgYmVs b25nc1xuIgotCQkJICAgICAgIklubm9EQjogaXMgbm93IHByb2JhYmx5IGNvcnJ1cHQuIgotCQkJ ICAgICAgIiBQbGVhc2UgcnVuIENIRUNLIFRBQkxFIG9uXG4iCi0JCQkgICAgICAiSW5ub0RCOiB0 aGF0IHRhYmxlLlxuIiwgc3RkZXJyKTsKLQotCQkJc3BhY2UgPSBwYWdlX2dldF9zcGFjZV9pZChw YWdlKTsKLQkJCXppcF9zaXplID0gYnVmX2Jsb2NrX2dldF96aXBfc2l6ZShibG9jayk7Ci0JCQlw YWdlX25vID0gcGFnZV9nZXRfcGFnZV9ubyhwYWdlKTsKLQotCQkJYml0bWFwX3BhZ2UgPSBpYnVm X2JpdG1hcF9nZXRfbWFwX3BhZ2UoCi0JCQkJc3BhY2UsIHBhZ2Vfbm8sIHppcF9zaXplLCBtdHIp OwotCQkJb2xkX2JpdHMgPSBpYnVmX2JpdG1hcF9wYWdlX2dldF9iaXRzKAotCQkJCWJpdG1hcF9w YWdlLCBwYWdlX25vLCB6aXBfc2l6ZSwKLQkJCQlJQlVGX0JJVE1BUF9GUkVFLCBtdHIpOwotCi0J CQlmcHJpbnRmKHN0ZGVyciwKLQkJCQkiSW5ub0RCOiBzcGFjZSAlbHUsIHBhZ2UgJWx1LCIKLQkJ CQkiIHppcF9zaXplICVsdSwgYml0bWFwIGJpdHMgJWx1XG4iLAotCQkJCSh1bG9uZykgc3BhY2Us ICh1bG9uZykgcGFnZV9ubywKLQkJCQkodWxvbmcpIHppcF9zaXplLCAodWxvbmcpIG9sZF9iaXRz KTsKKwkJbG9ja19yZWNfc3RvcmVfb25fcGFnZV9pbmZpbXVtKGJsb2NrLCByZWMpOworCQlwYWdl X2N1cl9kZWxldGVfcmVjKCZwYWdlX2N1ciwgaW5kZXgsIG9mZnNldHMsIG10cik7CisJCXBhZ2Vf Y3VyX21vdmVfdG9fcHJldigmcGFnZV9jdXIpOworCQltZW1faGVhcF9mcmVlKGhlYXApOwogCi0J CQlmcHV0cygiSW5ub0RCOiBTdWJtaXQgYSBkZXRhaWxlZCBidWcgcmVwb3J0IgotCQkJICAgICAg IiB0byBodHRwOi8vYnVncy5teXNxbC5jb21cbiIsIHN0ZGVycik7Ci0JCX0KKwkJaWJ1Zl9pbnNl cnRfdG9faW5kZXhfcGFnZV9sb3coZW50cnksIGJsb2NrLCBpbmRleCwgbXRyLAorCQkJCQkgICAg ICAmcGFnZV9jdXIpOworCQlsb2NrX3JlY19yZXN0b3JlX2Zyb21fcGFnZV9pbmZpbXVtKGJsb2Nr LCByZWMsIGJsb2NrKTsKKwl9IGVsc2UgeworCQlpYnVmX2luc2VydF90b19pbmRleF9wYWdlX2xv dyhlbnRyeSwgYmxvY2ssIGluZGV4LCBtdHIsCisJCQkJCSAgICAgICZwYWdlX2N1cik7CiAJfQog fQogCkBAIC0zOTA3LDkgKzM5OTgsMzIgQEAgaWJ1Zl9zZXRfZGVsX21hcmsoCiAJCXJlYyA9IHBh Z2VfY3VyX2dldF9yZWMoJnBhZ2VfY3VyKTsKIAkJcGFnZV96aXAgPSBwYWdlX2N1cl9nZXRfcGFn ZV96aXAoJnBhZ2VfY3VyKTsKIAotCQlidHJfY3VyX3NldF9kZWxldGVkX2ZsYWdfZm9yX2lidWYo cmVjLCBwYWdlX3ppcCwgVFJVRSwgbXRyKTsKKwkJLyogRGVsZXRlIG1hcmsgdGhlIG9sZCBpbmRl eCByZWNvcmQuIEFjY29yZGluZyB0byBhCisJCWNvbW1lbnQgaW4gcm93X3VwZF9zZWNfaW5kZXhf ZW50cnkoKSwgaXQgY2FuIGFscmVhZHkKKwkJaGF2ZSBiZWVuIGRlbGV0ZSBtYXJrZWQgaWYgYSBs b2NrIHdhaXQgb2NjdXJyZWQgaW4KKwkJcm93X2luc19pbmRleF9lbnRyeSgpIGluIGEgcHJldmlv dXMgaW52b2NhdGlvbiBvZgorCQlyb3dfdXBkX3NlY19pbmRleF9lbnRyeSgpLiAqLworCisJCWlm IChVTklWX0xJS0VMWQorCQkgICAgKCFyZWNfZ2V0X2RlbGV0ZWRfZmxhZygKKwkJCSAgICByZWMs IGRpY3RfdGFibGVfaXNfY29tcChpbmRleC0+dGFibGUpKSkpIHsKKwkJCWJ0cl9jdXJfc2V0X2Rl bGV0ZWRfZmxhZ19mb3JfaWJ1ZihyZWMsIHBhZ2VfemlwLAorCQkJCQkJCSAgVFJVRSwgbXRyKTsK KwkJfQogCX0gZWxzZSB7Ci0JCS8qIFRoaXMgY2FuIGhhcHBlbiBiZW5pZ25seSBpbiBzb21lIHNp dHVhdGlvbnMuICovCisJCXV0X3ByaW50X3RpbWVzdGFtcChzdGRlcnIpOworCQlmcHV0cygiICBJ bm5vREI6IHVuYWJsZSB0byBmaW5kIGEgcmVjb3JkIHRvIGRlbGV0ZS1tYXJrXG4iLAorCQkgICAg ICBzdGRlcnIpOworCQlmcHV0cygiSW5ub0RCOiB0dXBsZSAiLCBzdGRlcnIpOworCQlkdHVwbGVf cHJpbnQoc3RkZXJyLCBlbnRyeSk7CisJCWZwdXRzKCJcbiIKKwkJICAgICAgIklubm9EQjogcmVj b3JkICIsIHN0ZGVycik7CisJCXJlY19wcmludChzdGRlcnIsIHBhZ2VfY3VyX2dldF9yZWMoJnBh Z2VfY3VyKSwgaW5kZXgpOworCQlwdXRjKCdcbicsIHN0ZGVycik7CisJCWZwdXRzKCJcbiIKKwkJ ICAgICAgIklubm9EQjogU3VibWl0IGEgZGV0YWlsZWQgYnVnIHJlcG9ydCIKKwkJICAgICAgIiB0 byBodHRwOi8vYnVncy5teXNxbC5jb21cbiIsIHN0ZGVycik7CisJCXV0X2FkKDApOwogCX0KIH0K IApAQCAtMzk4NCwxMCArNDA5OCw3IEBAIGlidWZfZGVsZXRlKAogCQkJbWVtX2hlYXBfZnJlZSho ZWFwKTsKIAkJfQogCX0gZWxzZSB7Ci0JCS8qIFRoaXMgY2FuIGhhcHBlbiBiZW5pZ25seSBpbiBz b21lIHNpdHVhdGlvbnM6IGVpdGhlciB3aGVuCi0JCXdlIGNyYXNoZWQgYXQganVzdCB0aGUgcmln aHQgdGltZSwgb3Igb24gZGF0YWJhc2Ugc3RhcnR1cAotCQl3aGVuIHdlIHJlZG8gc29tZSBvbGQg bG9nIGVudHJpZXMgKGR1ZSB0byB3b3JzZSBzdG9yZWQKLQkJcG9zaXRpb24gZ3JhbnVsYXJpdHkg b24gZGlzayB0aGFuIGluIG1lbW9yeSkuICovCisJCS8qIFRoZSByZWNvcmQgbXVzdCBoYXZlIGJl ZW4gcHVyZ2VkIGFscmVhZHkuICovCiAJfQogfQogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFn ZS9pbm5vYmFzZS9pbmNsdWRlL2J0cjBjdXIuaCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNs dWRlL2J0cjBjdXIuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA5NTMy MS1oYmFodHppeGo3c3BlenN5CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIwY3Vy LmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkxMDAzMjUtZHM2MzlybWM3 bWZ4eWJrYwpAQCAtMjQzLDYgKzI0MywyMiBAQCBidHJfY3VyX3Blc3NpbWlzdGljX2luc2VydCgK IAlxdWVfdGhyX3QqCXRociwJLyohPCBpbjogcXVlcnkgdGhyZWFkIG9yIE5VTEwgKi8KIAltdHJf dCoJCW10cik7CS8qITwgaW46IG10ciAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCitTZWUgaWYgdGhlcmUgaXMgZW5v dWdoIHBsYWNlIGluIHRoZSBwYWdlIG1vZGlmaWNhdGlvbiBsb2cgdG8gbG9nCithbiB1cGRhdGUt aW4tcGxhY2UuCitAcmV0dXJuCVRSVUUgaWYgZW5vdWdoIHBsYWNlICovCitVTklWX0lOVEVSTgor aWJvb2wKK2J0cl9jdXJfdXBkYXRlX2FsbG9jX3ppcCgKKy8qPT09PT09PT09PT09PT09PT09PT09 Ki8KKwlwYWdlX3ppcF9kZXNfdCoJcGFnZV96aXAsLyohPCBpbi9vdXQ6IGNvbXByZXNzZWQgcGFn ZSAqLworCWJ1Zl9ibG9ja190KglibG9jaywJLyohPCBpbi9vdXQ6IGJ1ZmZlciBwYWdlICovCisJ ZGljdF9pbmRleF90KglpbmRleCwJLyohPCBpbjogdGhlIGluZGV4IGNvcnJlc3BvbmRpbmcgdG8g dGhlIGJsb2NrICovCisJdWxpbnQJCWxlbmd0aCwJLyohPCBpbjogc2l6ZSBuZWVkZWQgKi8KKwlp Ym9vbAkJY3JlYXRlLAkvKiE8IGluOiBUUlVFPWRlbGV0ZS1hbmQtaW5zZXJ0LAorCQkJCUZBTFNF PXVwZGF0ZS1pbi1wbGFjZSAqLworCW10cl90KgkJbXRyKQkvKiE8IGluOiBtaW5pLXRyYW5zYWN0 aW9uICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgd2Fybl91bnVzZWRfcmVzdWx0KSk7Cisv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8vKioKIFVwZGF0ZXMgYSByZWNvcmQgd2hlbiB0aGUgdXBkYXRlIGNhdXNlcyBubyBzaXpl IGNoYW5nZXMgaW4gaXRzIGZpZWxkcy4KIEByZXR1cm4JREJfU1VDQ0VTUyBvciBlcnJvciBudW1i ZXIgKi8KIFVOSVZfSU5URVJOCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9p bmNsdWRlL2J1ZjBmbHUuaCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J1ZjBmbHUu aAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA5NTMyMS1oYmFodHppeGo3 c3BlenN5CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idWYwZmx1LmgJcmV2aWQ6bWFy a28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkxMDAzMjUtZHM2MzlybWM3bWZ4eWJrYwpAQCAt ODQsNiArODQsMjEgQEAgYnVmX2ZsdXNoX2luaXRfZm9yX3dyaXRpbmcoCiAJaWJfdWludDY0X3QJ bmV3ZXN0X2xzbik7CS8qITwgaW46IG5ld2VzdCBtb2RpZmljYXRpb24gbHNuCiAJCQkJCXRvIHRo ZSBwYWdlICovCiAjaWZuZGVmIFVOSVZfSE9UQkFDS1VQCisjIGlmIGRlZmluZWQgVU5JVl9ERUJV RyB8fCBkZWZpbmVkIFVOSVZfSUJVRl9ERUJVRworLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgorV3JpdGVzIGEg Zmx1c2hhYmxlIHBhZ2UgYXN5bmNocm9ub3VzbHkgZnJvbSB0aGUgYnVmZmVyIHBvb2wgdG8gYSBm aWxlLgorTk9URTogYnVmX3Bvb2xfbXV0ZXggYW5kIGJsb2NrLT5tdXRleCBtdXN0IGJlIGhlbGQg dXBvbiBlbnRlcmluZyB0aGlzCitmdW5jdGlvbiwgYW5kIHRoZXkgd2lsbCBiZSByZWxlYXNlZCBi eSB0aGlzIGZ1bmN0aW9uIGFmdGVyIGZsdXNoaW5nLgorVGhpcyBpcyBsb29zZWx5IGJhc2VkIG9u IGJ1Zl9mbHVzaF9iYXRjaCgpIGFuZCBidWZfZmx1c2hfcGFnZSgpLgorQHJldHVybiBUUlVFIGlm IHRoZSBwYWdlIHdhcyBmbHVzaGVkIGFuZCB0aGUgbXV0ZXhlcyByZWxlYXNlZCAqLworVU5JVl9J TlRFUk4KK2lib29sCitidWZfZmx1c2hfcGFnZV90cnkoCisvKj09PT09PT09PT09PT09PSovCisJ YnVmX3Bvb2xfdCoJYnVmX3Bvb2wsCS8qITwgaW4vb3V0OiBidWZmZXIgcG9vbCBpbnN0YW5jZSAq LworCWJ1Zl9ibG9ja190KglibG9jaykJCS8qITwgaW4vb3V0OiBidWZmZXIgY29udHJvbCBibG9j ayAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOworIyBl bmRpZiAvKiBVTklWX0RFQlVHIHx8IFVOSVZfSUJVRl9ERUJVRyAqLwogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoq CiBUaGlzIHV0aWxpdHkgZmx1c2hlcyBkaXJ0eSBibG9ja3MgZnJvbSB0aGUgZW5kIG9mIHRoZSBM UlUgbGlzdC4KIE5PVEU6IFRoZSBjYWxsaW5nIHRocmVhZCBtYXkgb3duIGxhdGNoZXMgdG8gcGFn ZXM6IHRvIGF2b2lkIGRlYWRsb2NrcywKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9i YXNlL2luY2x1ZGUvaWJ1ZjBpYnVmLmgnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9p YnVmMGlidWYuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA5NTMyMS1o YmFodHppeGo3c3BlenN5CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9pYnVmMGlidWYu aAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTEwMDMyNS1kczYzOXJtYzdt Znh5YmtjCkBAIC02Myw2ICs2MywxMSBAQCB0eXBlZGVmIGVudW0gewogLyoqIE9wZXJhdGlvbnMg dGhhdCBjYW4gY3VycmVudGx5IGJlIGJ1ZmZlcmVkLiAqLwogZXh0ZXJuIGlidWZfdXNlX3QJaWJ1 Zl91c2U7CiAKKyNpZiBkZWZpbmVkIFVOSVZfREVCVUcgfHwgZGVmaW5lZCBVTklWX0lCVUZfREVC VUcKKy8qKiBGbGFnIHRvIGNvbnRyb2wgaW5zZXJ0IGJ1ZmZlciBkZWJ1Z2dpbmcuICovCitleHRl cm4gdWludAkJaWJ1Zl9kZWJ1ZzsKKyNlbmRpZiAvKiBVTklWX0RFQlVHIHx8IFVOSVZfSUJVRl9E RUJVRyAqLworCiAvKiogVGhlIGluc2VydCBidWZmZXIgY29udHJvbCBzdHJ1Y3R1cmUgKi8KIGV4 dGVybiBpYnVmX3QqCQlpYnVmOwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFz ZS9pbmNsdWRlL3JlbTByZWMuaCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JlbTBy ZWMuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA5NTMyMS1oYmFodHpp eGo3c3BlenN5CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yZW0wcmVjLmgJcmV2aWQ6 bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkxMDAzMjUtZHM2MzlybWM3bWZ4eWJrYwpA QCAtODAxLDkgKzgwMSw5IEBAIFVOSVZfSU5URVJOCiB2b2lkCiByZWNfcHJpbnQoCiAvKj09PT09 PSovCi0JRklMRSoJCWZpbGUsCS8qITwgaW46IGZpbGUgd2hlcmUgdG8gcHJpbnQgKi8KLQljb25z dCByZWNfdCoJcmVjLAkvKiE8IGluOiBwaHlzaWNhbCByZWNvcmQgKi8KLQlkaWN0X2luZGV4X3Qq CWluZGV4KTsJLyohPCBpbjogcmVjb3JkIGRlc2NyaXB0b3IgKi8KKwlGSUxFKgkJCWZpbGUsCS8q ITwgaW46IGZpbGUgd2hlcmUgdG8gcHJpbnQgKi8KKwljb25zdCByZWNfdCoJCXJlYywJLyohPCBp bjogcGh5c2ljYWwgcmVjb3JkICovCisJY29uc3QgZGljdF9pbmRleF90KglpbmRleCk7CS8qITwg aW46IHJlY29yZCBkZXNjcmlwdG9yICovCiAjZW5kaWYgLyogVU5JVl9IT1RCQUNLVVAgKi8KIAog LyogTWF4aW11bSBsZW5ndGhzIGZvciB0aGUgZGF0YSBpbiBhIHBoeXNpY2FsIHJlY29yZCBpZiB0 aGUgb2Zmc2V0cwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9y b3cwbXlzcWwuaCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzBteXNxbC5oCXJl dmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDk1MzIxLWhiYWh0eml4ajdzcGV6 c3kKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzBteXNxbC5oCXJldmlkOm1hcmtv Lm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MTAwMzI1LWRzNjM5cm1jN21meHlia2MKQEAgLTUz OCw2ICs1MzgsMTAgQEAgc3RydWN0IG15c3FsX3Jvd190ZW1wbF9zdHJ1Y3QgewogCQkJCQlJbm5v YmFzZSByZWNvcmQgaW4gdGhlIGN1cnJlbnQgaW5kZXg7CiAJCQkJCW5vdCBkZWZpbmVkIGlmIHRl bXBsYXRlX3R5cGUgaXMKIAkJCQkJUk9XX01ZU1FMX1dIT0xFX1JPVyAqLworCXVsaW50CWNsdXN0 X3JlY19maWVsZF9ubzsJLyohPCBmaWVsZCBudW1iZXIgb2YgdGhlIGNvbHVtbiBpbiBhbgorCQkJ CQlJbm5vYmFzZSByZWNvcmQgaW4gdGhlIGNsdXN0ZXJlZCBpbmRleDsKKwkJCQkJbm90IGRlZmlu ZWQgaWYgdGVtcGxhdGVfdHlwZSBpcworCQkJCQlST1dfTVlTUUxfV0hPTEVfUk9XICovCiAJdWxp bnQJbXlzcWxfY29sX29mZnNldDsJLyohPCBvZmZzZXQgb2YgdGhlIGNvbHVtbiBpbiB0aGUgTXlT UUwKIAkJCQkJcm93IGZvcm1hdCAqLwogCXVsaW50CW15c3FsX2NvbF9sZW47CQkvKiE8IGxlbmd0 aCBvZiB0aGUgY29sdW1uIGluIHRoZSBNeVNRTAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2Uv aW5ub2Jhc2UvaW5jbHVkZS9yb3cwdXBkLmgnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVk ZS9yb3cwdXBkLmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkwOTUzMjEt aGJhaHR6aXhqN3NwZXpzeQorKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcm93MHVwZC5o CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MTAwMzI1LWRzNjM5cm1jN21m eHlia2MKQEAgLTE2Nyw4ICsxNjcsMTEgQEAgcm93X3VwZF9jaGFuZ2VzX2ZpZWxkX3NpemVfb3Jf ZXh0ZXJuYWwoCiAJY29uc3QgdXBkX3QqCXVwZGF0ZSk7LyohPCBpbjogdXBkYXRlIHZlY3RvciAq LwogI2VuZGlmIC8qICFVTklWX0hPVEJBQ0tVUCAqLwogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgotUmVwbGFjZXMgdGhlIG5l dyBjb2x1bW4gdmFsdWVzIHN0b3JlZCBpbiB0aGUgdXBkYXRlIHZlY3RvciB0byB0aGUgcmVjb3Jk Ci1naXZlbi4gTm8gZmllbGQgc2l6ZSBjaGFuZ2VzIGFyZSBhbGxvd2VkLiAqLworUmVwbGFjZXMg dGhlIG5ldyBjb2x1bW4gdmFsdWVzIHN0b3JlZCBpbiB0aGUgdXBkYXRlIHZlY3RvciB0byB0aGUK K3JlY29yZCBnaXZlbi4gTm8gZmllbGQgc2l6ZSBjaGFuZ2VzIGFyZSBhbGxvd2VkLiBUaGlzIGZ1 bmN0aW9uIGlzCit1c3VhbGx5IGludm9rZWQgb24gYSBjbHVzdGVyZWQgaW5kZXguIFRoZSBvbmx5 IHVzZSBjYXNlIGZvciBhCitzZWNvbmRhcnkgaW5kZXggaXMgcm93X2luc19zZWNfaW5kZXhfZW50 cnlfYnlfbW9kaWZ5KCkgb3IgaXRzCitjb3VudGVycGFydCBpbiBpYnVmX2luc2VydF90b19pbmRl eF9wYWdlKCkuICovCiBVTklWX0lOVEVSTgogdm9pZAogcm93X3VwZF9yZWNfaW5fcGxhY2UoCgo9 PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9yZW0vcmVtMHJlYy5jJwotLS0gYS9z dG9yYWdlL2lubm9iYXNlL3JlbS9yZW0wcmVjLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5j b20tMjAxMDEwMTkwOTUzMjEtaGJhaHR6aXhqN3NwZXpzeQorKysgYi9zdG9yYWdlL2lubm9iYXNl L3JlbS9yZW0wcmVjLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkxMDAz MjUtZHM2MzlybWM3bWZ4eWJrYwpAQCAtMTc0OSw5ICsxNzQ5LDkgQEAgVU5JVl9JTlRFUk4KIHZv aWQKIHJlY19wcmludCgKIC8qPT09PT09Ki8KLQlGSUxFKgkJZmlsZSwJLyohPCBpbjogZmlsZSB3 aGVyZSB0byBwcmludCAqLwotCWNvbnN0IHJlY190KglyZWMsCS8qITwgaW46IHBoeXNpY2FsIHJl Y29yZCAqLwotCWRpY3RfaW5kZXhfdCoJaW5kZXgpCS8qITwgaW46IHJlY29yZCBkZXNjcmlwdG9y ICovCisJRklMRSoJCQlmaWxlLAkvKiE8IGluOiBmaWxlIHdoZXJlIHRvIHByaW50ICovCisJY29u c3QgcmVjX3QqCQlyZWMsCS8qITwgaW46IHBoeXNpY2FsIHJlY29yZCAqLworCWNvbnN0IGRpY3Rf aW5kZXhfdCoJaW5kZXgpCS8qITwgaW46IHJlY29yZCBkZXNjcmlwdG9yICovCiB7CiAJdXRfYWQo aW5kZXgpOwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MG15 c3FsLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBteXNxbC5jCXJldmlkOm1hcmtv Lm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDk1MzIxLWhiYWh0eml4ajdzcGV6c3kKKysrIGIv c3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MG15c3FsLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNs ZS5jb20tMjAxMDEwMTkxMDAzMjUtZHM2MzlybWM3bWZ4eWJrYwpAQCAtNTAzLDcgKzUwMyw3IEBA IHJvd19teXNxbF9jb252ZXJ0X3Jvd190b19pbm5vYmFzZSgKIAkJCQkJcm93IGlzIHVzZWQsIGFz IHJvdyBtYXkgY29udGFpbgogCQkJCQlwb2ludGVycyB0byB0aGlzIHJlY29yZCEgKi8KIHsKLQlt eXNxbF9yb3dfdGVtcGxfdCoJdGVtcGw7CisJY29uc3QgbXlzcWxfcm93X3RlbXBsX3QqdGVtcGw7 CiAJZGZpZWxkX3QqCQlkZmllbGQ7CiAJdWxpbnQJCQlpOwogCgo9PT0gbW9kaWZpZWQgZmlsZSAn c3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHNlbC5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3Jv dy9yb3cwc2VsLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkwOTUzMjEt aGJhaHR6aXhqN3NwZXpzeQorKysgYi9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwc2VsLmMJcmV2 aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkxMDAzMjUtZHM2MzlybWM3bWZ4eWJr YwpAQCAtMjY3NiwyMSArMjY3NiwyMiBAQCByb3dfc2VsX3N0b3JlX215c3FsX3JlYygKIAlyb3df cHJlYnVpbHRfdCoJcHJlYnVpbHQsCS8qITwgaW46IHByZWJ1aWx0IHN0cnVjdCAqLwogCWNvbnN0 IHJlY190KglyZWMsCQkvKiE8IGluOiBJbm5vYmFzZSByZWNvcmQgaW4gdGhlIGluZGV4CiAJCQkJ CXdoaWNoIHdhcyBkZXNjcmliZWQgaW4gcHJlYnVpbHQncwotCQkJCQl0ZW1wbGF0ZTsgbXVzdCBi ZSBwcm90ZWN0ZWQgYnkKLQkJCQkJYSBwYWdlIGxhdGNoICovCisJCQkJCXRlbXBsYXRlLCBvciBp biB0aGUgY2x1c3RlcmVkIGluZGV4OworCQkJCQltdXN0IGJlIHByb3RlY3RlZCBieSBhIHBhZ2Ug bGF0Y2ggKi8KKwlpYm9vbAkJcmVjX2NsdXN0LAkvKiE8IGluOiBUUlVFIGlmIHJlYyBpcyBpbiB0 aGUKKwkJCQkJY2x1c3RlcmVkIGluZGV4IGluc3RlYWQgb2YKKwkJCQkJcHJlYnVpbHQtPmluZGV4 ICovCiAJY29uc3QgdWxpbnQqCW9mZnNldHMpCS8qITwgaW46IGFycmF5IHJldHVybmVkIGJ5Ci0J CQkJCXJlY19nZXRfb2Zmc2V0cygpICovCisJCQkJCXJlY19nZXRfb2Zmc2V0cyhyZWMpICovCiB7 Ci0JbXlzcWxfcm93X3RlbXBsX3QqCXRlbXBsOwotCW1lbV9oZWFwX3QqCQlleHRlcm5fZmllbGRf aGVhcAk9IE5VTEw7Ci0JbWVtX2hlYXBfdCoJCWhlYXA7Ci0JY29uc3QgYnl0ZSoJCWRhdGE7Ci0J dWxpbnQJCQlsZW47Ci0JdWxpbnQJCQlpOworCW1lbV9oZWFwX3QqCWV4dGVybl9maWVsZF9oZWFw CT0gTlVMTDsKKwltZW1faGVhcF90KgloZWFwOworCXVsaW50CQlpOwogCiAJdXRfYWQocHJlYnVp bHQtPm15c3FsX3RlbXBsYXRlKTsKIAl1dF9hZChwcmVidWlsdC0+ZGVmYXVsdF9yZWMpOwogCXV0 X2FkKHJlY19vZmZzX3ZhbGlkYXRlKHJlYywgTlVMTCwgb2Zmc2V0cykpOworCXV0X2FkKCFyZWNf Z2V0X2RlbGV0ZWRfZmxhZyhyZWMsIHJlY19vZmZzX2NvbXAob2Zmc2V0cykpKTsKIAogCWlmIChV TklWX0xJS0VMWV9OVUxMKHByZWJ1aWx0LT5ibG9iX2hlYXApKSB7CiAJCW1lbV9oZWFwX2ZyZWUo cHJlYnVpbHQtPmJsb2JfaGVhcCk7CkBAIC0yNjk5LDEwICsyNzAwLDE1IEBAIHJvd19zZWxfc3Rv cmVfbXlzcWxfcmVjKAogCiAJZm9yIChpID0gMDsgaSA8IHByZWJ1aWx0LT5uX3RlbXBsYXRlOyBp KyspIHsKIAotCQl0ZW1wbCA9IHByZWJ1aWx0LT5teXNxbF90ZW1wbGF0ZSArIGk7CisJCWNvbnN0 IG15c3FsX3Jvd190ZW1wbF90KnRlbXBsID0gcHJlYnVpbHQtPm15c3FsX3RlbXBsYXRlICsgaTsK KwkJY29uc3QgYnl0ZSoJCWRhdGE7CisJCXVsaW50CQkJbGVuOworCQl1bGludAkJCWZpZWxkX25v OworCisJCWZpZWxkX25vID0gcmVjX2NsdXN0CisJCQk/IHRlbXBsLT5jbHVzdF9yZWNfZmllbGRf bm8gOiB0ZW1wbC0+cmVjX2ZpZWxkX25vOwogCi0JCWlmIChVTklWX1VOTElLRUxZKHJlY19vZmZz X250aF9leHRlcm4ob2Zmc2V0cywKLQkJCQkJCSAgICAgIHRlbXBsLT5yZWNfZmllbGRfbm8pKSkg eworCQlpZiAoVU5JVl9VTkxJS0VMWShyZWNfb2Zmc19udGhfZXh0ZXJuKG9mZnNldHMsIGZpZWxk X25vKSkpIHsKIAogCQkJLyogQ29weSBhbiBleHRlcm5hbGx5IHN0b3JlZCBmaWVsZCB0byB0aGUg dGVtcG9yYXJ5CiAJCQloZWFwICovCkBAIC0yNzMwLDcgKzI3MzYsNyBAQCByb3dfc2VsX3N0b3Jl X215c3FsX3JlYygKIAkJCWRhdGEgPSBidHJfcmVjX2NvcHlfZXh0ZXJuYWxseV9zdG9yZWRfZmll bGQoCiAJCQkJcmVjLCBvZmZzZXRzLAogCQkJCWRpY3RfdGFibGVfemlwX3NpemUocHJlYnVpbHQt PnRhYmxlKSwKLQkJCQl0ZW1wbC0+cmVjX2ZpZWxkX25vLCAmbGVuLCBoZWFwKTsKKwkJCQlmaWVs ZF9ubywgJmxlbiwgaGVhcCk7CiAKIAkJCWlmIChVTklWX1VOTElLRUxZKCFkYXRhKSkgewogCQkJ CS8qIFRoZSBleHRlcm5hbGx5IHN0b3JlZCBmaWVsZApAQCAtMjc1MSw4ICsyNzU3LDcgQEAgcm93 X3NlbF9zdG9yZV9teXNxbF9yZWMoCiAJCX0gZWxzZSB7CiAJCQkvKiBGaWVsZCBpcyBzdG9yZWQg aW4gdGhlIHJvdy4gKi8KIAotCQkJZGF0YSA9IHJlY19nZXRfbnRoX2ZpZWxkKHJlYywgb2Zmc2V0 cywKLQkJCQkJCSB0ZW1wbC0+cmVjX2ZpZWxkX25vLCAmbGVuKTsKKwkJCWRhdGEgPSByZWNfZ2V0 X250aF9maWVsZChyZWMsIG9mZnNldHMsIGZpZWxkX25vLCAmbGVuKTsKIAogCQkJaWYgKFVOSVZf VU5MSUtFTFkodGVtcGwtPnR5cGUgPT0gREFUQV9CTE9CKQogCQkJICAgICYmIGxlbiAhPSBVTklW X1NRTF9OVUxMKSB7CkBAIC0zMTE0LDcgKzMxMTksNyBAQCByb3dfc2VsX3BvcF9jYWNoZWRfcm93 X2Zvcl9teXNxbCgKIAlyb3dfcHJlYnVpbHRfdCoJcHJlYnVpbHQpCS8qITwgaW46IHByZWJ1aWx0 IHN0cnVjdCAqLwogewogCXVsaW50CQkJaTsKLQlteXNxbF9yb3dfdGVtcGxfdCoJdGVtcGw7CisJ Y29uc3QgbXlzcWxfcm93X3RlbXBsX3QqdGVtcGw7CiAJYnl0ZSoJCQljYWNoZWRfcmVjOwogCXV0 X2FkKHByZWJ1aWx0LT5uX2ZldGNoX2NhY2hlZCA+IDApOwogCXV0X2FkKHByZWJ1aWx0LT5teXNx bF9wcmVmaXhfbGVuIDw9IHByZWJ1aWx0LT5teXNxbF9yb3dfbGVuKTsKQEAgLTMxNzEsMTUgKzMx NzYsMjEgQEAgaWJvb2wKIHJvd19zZWxfcHVzaF9jYWNoZV9yb3dfZm9yX215c3FsKAogLyo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAJcm93X3ByZWJ1aWx0X3QqCXByZWJ1aWx0LAkv KiE8IGluOiBwcmVidWlsdCBzdHJ1Y3QgKi8KLQljb25zdCByZWNfdCoJcmVjLAkJLyohPCBpbjog cmVjb3JkIHRvIHB1c2g7IG11c3QKLQkJCQkJYmUgcHJvdGVjdGVkIGJ5IGEgcGFnZSBsYXRjaCAq LwotCWNvbnN0IHVsaW50KglvZmZzZXRzKQkvKiE8IGluOiByZWNfZ2V0X29mZnNldHMoKSAqLwor CWNvbnN0IHJlY190KglyZWMsCQkvKiE8IGluOiByZWNvcmQgdG8gcHVzaCwgaW4gdGhlIGluZGV4 CisJCQkJCXdoaWNoIHdhcyBkZXNjcmliZWQgaW4gcHJlYnVpbHQncworCQkJCQl0ZW1wbGF0ZSwg b3IgaW4gdGhlIGNsdXN0ZXJlZCBpbmRleDsKKwkJCQkJbXVzdCBiZSBwcm90ZWN0ZWQgYnkgYSBw YWdlIGxhdGNoICovCisJaWJvb2wJCXJlY19jbHVzdCwJLyohPCBpbjogVFJVRSBpZiByZWMgaXMg aW4gdGhlCisJCQkJCWNsdXN0ZXJlZCBpbmRleCBpbnN0ZWFkIG9mCisJCQkJCXByZWJ1aWx0LT5p bmRleCAqLworCWNvbnN0IHVsaW50KglvZmZzZXRzKQkvKiE8IGluOiByZWNfZ2V0X29mZnNldHMo cmVjKSAqLwogewogCWJ5dGUqCWJ1ZjsKIAl1bGludAlpOwogCiAJdXRfYWQocHJlYnVpbHQtPm5f ZmV0Y2hfY2FjaGVkIDwgTVlTUUxfRkVUQ0hfQ0FDSEVfU0laRSk7CiAJdXRfYWQocmVjX29mZnNf dmFsaWRhdGUocmVjLCBOVUxMLCBvZmZzZXRzKSk7CisJdXRfYWQoIXJlY19nZXRfZGVsZXRlZF9m bGFnKHJlYywgcmVjX29mZnNfY29tcChvZmZzZXRzKSkpOwogCXV0X2EoIXByZWJ1aWx0LT50ZW1w bF9jb250YWluc19ibG9iKTsKIAogCWlmIChwcmVidWlsdC0+ZmV0Y2hfY2FjaGVbMF0gPT0gTlVM TCkgewpAQCAtMzIwOCw3ICszMjE5LDcgQEAgcm93X3NlbF9wdXNoX2NhY2hlX3Jvd19mb3JfbXlz cWwoCiAJaWYgKFVOSVZfVU5MSUtFTFkoIXJvd19zZWxfc3RvcmVfbXlzcWxfcmVjKAogCQkJCSAg cHJlYnVpbHQtPmZldGNoX2NhY2hlWwogCQkJCQkgIHByZWJ1aWx0LT5uX2ZldGNoX2NhY2hlZF0s Ci0JCQkJICBwcmVidWlsdCwgcmVjLCBvZmZzZXRzKSkpIHsKKwkJCQkgIHByZWJ1aWx0LCByZWMs IHJlY19jbHVzdCwgb2Zmc2V0cykpKSB7CiAJCXJldHVybihGQUxTRSk7CiAJfQogCkBAIC0zNjEy LDcgKzM2MjMsOCBAQCByb3dfc2VhcmNoX2Zvcl9teXNxbCgKIAkJCQl1dF9hZCghcmVjX2dldF9k ZWxldGVkX2ZsYWcocmVjLCBjb21wKSk7CiAKIAkJCQlpZiAoIXJvd19zZWxfc3RvcmVfbXlzcWxf cmVjKGJ1ZiwgcHJlYnVpbHQsCi0JCQkJCQkJICAgICByZWMsIG9mZnNldHMpKSB7CisJCQkJCQkJ ICAgICByZWMsIEZBTFNFLAorCQkJCQkJCSAgICAgb2Zmc2V0cykpIHsKIAkJCQkJLyogT25seSBm cmVzaCBpbnNlcnRzIG1heSBjb250YWluCiAJCQkJCWluY29tcGxldGUgZXh0ZXJuYWxseSBzdG9y ZWQKIAkJCQkJY29sdW1ucy4gUHJldGVuZCB0aGF0IHN1Y2gKQEAgLTQyNDYsNyArNDI1OCw2IEBA IG5vX2dhcF9sb2NrOgogCQkJaXMgbmVjZXNzYXJ5LCBiZWNhdXNlIHdlIGNhbiBvbmx5IGdldCB0 aGUgdW5kbwogCQkJaW5mb3JtYXRpb24gdmlhIHRoZSBjbHVzdGVyZWQgaW5kZXggcmVjb3JkLiAq LwogCi0JCQl1dF9hZChpbmRleCAhPSBjbHVzdF9pbmRleCk7CiAJCQl1dF9hZCghZGljdF9pbmRl eF9pc19jbHVzdChpbmRleCkpOwogCiAJCQlpZiAoIWxvY2tfc2VjX3JlY19jb25zX3JlYWRfc2Vl cygKQEAgLTQzNjIsMjYgKzQzNzMsMTAgQEAgcmVxdWlyZXNfY2x1c3RfcmVjOgogCQkJZ290byBu ZXh0X3JlYzsKIAkJfQogCi0JCWlmIChwcmVidWlsdC0+bmVlZF90b19hY2Nlc3NfY2x1c3RlcmVk KSB7Ci0KLQkJCXJlc3VsdF9yZWMgPSBjbHVzdF9yZWM7Ci0KLQkJCXV0X2FkKHJlY19vZmZzX3Zh bGlkYXRlKHJlc3VsdF9yZWMsIGNsdXN0X2luZGV4LAotCQkJCQkJb2Zmc2V0cykpOwotCQl9IGVs c2UgewotCQkJLyogV2UgdXNlZCAnb2Zmc2V0cycgZm9yIHRoZSBjbHVzdCByZWMsIHJlY2FsY3Vs YXRlCi0JCQl0aGVtIGZvciAncmVjJyAqLwotCQkJb2Zmc2V0cyA9IHJlY19nZXRfb2Zmc2V0cyhy ZWMsIGluZGV4LCBvZmZzZXRzLAotCQkJCQkJICBVTElOVF9VTkRFRklORUQsICZoZWFwKTsKLQkJ CXJlc3VsdF9yZWMgPSByZWM7Ci0JCX0KLQotCQkvKiByZXN1bHRfcmVjIGNhbiBsZWdpdGltYXRl bHkgYmUgZGVsZXRlLW1hcmtlZAotCQlub3cgdGhhdCBpdCBoYXMgYmVlbiBlc3RhYmxpc2hlZCB0 aGF0IGl0IHBvaW50cyB0byBhCi0JCWNsdXN0ZXJlZCBpbmRleCByZWNvcmQgdGhhdCBleGlzdHMg aW4gdGhlIHJlYWQgdmlldy4gKi8KKwkJcmVzdWx0X3JlYyA9IGNsdXN0X3JlYzsKKwkJdXRfYWQo cmVjX29mZnNfdmFsaWRhdGUocmVzdWx0X3JlYywgY2x1c3RfaW5kZXgsIG9mZnNldHMpKTsKIAl9 IGVsc2UgewogCQlyZXN1bHRfcmVjID0gcmVjOwotCQl1dF9hZCghcmVjX2dldF9kZWxldGVkX2Zs YWcocmVjLCBjb21wKSk7CiAJfQogCiAJLyogV2UgZm91bmQgYSBxdWFsaWZ5aW5nIHJlY29yZCAn cmVzdWx0X3JlYycuIEF0IHRoaXMgcG9pbnQsCkBAIC00MzkwLDYgKzQzODUsNyBAQCByZXF1aXJl c19jbHVzdF9yZWM6CiAJdXRfYWQocmVjX29mZnNfdmFsaWRhdGUocmVzdWx0X3JlYywKIAkJCQly ZXN1bHRfcmVjICE9IHJlYyA/IGNsdXN0X2luZGV4IDogaW5kZXgsCiAJCQkJb2Zmc2V0cykpOwor CXV0X2FkKCFyZWNfZ2V0X2RlbGV0ZWRfZmxhZyhyZXN1bHRfcmVjLCBjb21wKSk7CiAKIAkvKiBB dCB0aGlzIHBvaW50LCB0aGUgY2x1c3RlcmVkIGluZGV4IHJlY29yZCBpcyBwcm90ZWN0ZWQKIAli eSBhIHBhZ2UgbGF0Y2ggdGhhdCB3YXMgYWNxdWlyZWQgd2hlbiBwY3VyIHdhcyBwb3NpdGlvbmVk LgpAQCAtNDQxNCw2ICs0NDEwLDcgQEAgcmVxdWlyZXNfY2x1c3RfcmVjOgogCQljdXJzb3IuICov CiAKIAkJaWYgKCFyb3dfc2VsX3B1c2hfY2FjaGVfcm93X2Zvcl9teXNxbChwcmVidWlsdCwgcmVz dWx0X3JlYywKKwkJCQkJCSAgICAgIHJlc3VsdF9yZWMgIT0gcmVjLAogCQkJCQkJICAgICAgb2Zm c2V0cykpIHsKIAkJCS8qIE9ubHkgZnJlc2ggaW5zZXJ0cyBtYXkgY29udGFpbiBpbmNvbXBsZXRl CiAJCQlleHRlcm5hbGx5IHN0b3JlZCBjb2x1bW5zLiBQcmV0ZW5kIHRoYXQgc3VjaApAQCAtNDQz MSwxNSArNDQyOCwzMSBAQCByZXF1aXJlc19jbHVzdF9yZWM6CiAKIAkJZ290byBuZXh0X3JlYzsK IAl9IGVsc2UgewotCQlpZiAocHJlYnVpbHQtPnRlbXBsYXRlX3R5cGUgPT0gUk9XX01ZU1FMX0RV TU1ZX1RFTVBMQVRFKSB7CisJCWlmIChVTklWX1VOTElLRUxZCisJCSAgICAocHJlYnVpbHQtPnRl bXBsYXRlX3R5cGUgPT0gUk9XX01ZU1FMX0RVTU1ZX1RFTVBMQVRFKSkgeworCQkJLyogQ0hFQ0sg VEFCTEU6IGZldGNoIHRoZSByb3cgKi8KKworCQkJaWYgKHJlc3VsdF9yZWMgIT0gcmVjCisJCQkg ICAgJiYgIXByZWJ1aWx0LT5uZWVkX3RvX2FjY2Vzc19jbHVzdGVyZWQpIHsKKwkJCQkvKiBXZSB1 c2VkICdvZmZzZXRzJyBmb3IgdGhlIGNsdXN0CisJCQkJcmVjLCByZWNhbGN1bGF0ZSB0aGVtIGZv ciAncmVjJyAqLworCQkJCW9mZnNldHMgPSByZWNfZ2V0X29mZnNldHMocmVjLCBpbmRleCwgb2Zm c2V0cywKKwkJCQkJCQkgIFVMSU5UX1VOREVGSU5FRCwKKwkJCQkJCQkgICZoZWFwKTsKKwkJCQly ZXN1bHRfcmVjID0gcmVjOworCQkJfQorCiAJCQltZW1jcHkoYnVmICsgNCwgcmVzdWx0X3JlYwog CQkJICAgICAgIC0gcmVjX29mZnNfZXh0cmFfc2l6ZShvZmZzZXRzKSwKIAkJCSAgICAgICByZWNf b2Zmc19zaXplKG9mZnNldHMpKTsKIAkJCW1hY2hfd3JpdGVfdG9fNChidWYsCiAJCQkJCXJlY19v ZmZzX2V4dHJhX3NpemUob2Zmc2V0cykgKyA0KTsKIAkJfSBlbHNlIHsKLQkJCWlmICghcm93X3Nl bF9zdG9yZV9teXNxbF9yZWMoYnVmLCBwcmVidWlsdCwKLQkJCQkJCSAgICAgcmVzdWx0X3JlYywg b2Zmc2V0cykpIHsKKwkJCS8qIFJldHVybmluZyBhIHJvdyB0byBNeVNRTCAqLworCisJCQlpZiAo IXJvd19zZWxfc3RvcmVfbXlzcWxfcmVjKGJ1ZiwgcHJlYnVpbHQsIHJlc3VsdF9yZWMsCisJCQkJ CQkgICAgIHJlc3VsdF9yZWMgIT0gcmVjLAorCQkJCQkJICAgICBvZmZzZXRzKSkgewogCQkJCS8q IE9ubHkgZnJlc2ggaW5zZXJ0cyBtYXkgY29udGFpbgogCQkJCWluY29tcGxldGUgZXh0ZXJuYWxs eSBzdG9yZWQKIAkJCQljb2x1bW5zLiBQcmV0ZW5kIHRoYXQgc3VjaCByZWNvcmRzIGRvCgo9PT0g bW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHVwZC5jJwotLS0gYS9zdG9y YWdlL2lubm9iYXNlL3Jvdy9yb3cwdXBkLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20t MjAxMDEwMTkwOTUzMjEtaGJhaHR6aXhqN3NwZXpzeQorKysgYi9zdG9yYWdlL2lubm9iYXNlL3Jv dy9yb3cwdXBkLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkxMDAzMjUt ZHM2MzlybWM3bWZ4eWJrYwpAQCAtNDY2LDggKzQ2NiwxMSBAQCByb3dfdXBkX2NoYW5nZXNfZmll bGRfc2l6ZV9vcl9leHRlcm5hbCgKICNlbmRpZiAvKiAhVU5JVl9IT1RCQUNLVVAgKi8KIAogLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ly8qKgotUmVwbGFjZXMgdGhlIG5ldyBjb2x1bW4gdmFsdWVzIHN0b3JlZCBpbiB0aGUgdXBkYXRl IHZlY3RvciB0byB0aGUgcmVjb3JkCi1naXZlbi4gTm8gZmllbGQgc2l6ZSBjaGFuZ2VzIGFyZSBh bGxvd2VkLiAqLworUmVwbGFjZXMgdGhlIG5ldyBjb2x1bW4gdmFsdWVzIHN0b3JlZCBpbiB0aGUg dXBkYXRlIHZlY3RvciB0byB0aGUKK3JlY29yZCBnaXZlbi4gTm8gZmllbGQgc2l6ZSBjaGFuZ2Vz IGFyZSBhbGxvd2VkLiBUaGlzIGZ1bmN0aW9uIGlzCit1c3VhbGx5IGludm9rZWQgb24gYSBjbHVz dGVyZWQgaW5kZXguIFRoZSBvbmx5IHVzZSBjYXNlIGZvciBhCitzZWNvbmRhcnkgaW5kZXggaXMg cm93X2luc19zZWNfaW5kZXhfZW50cnlfYnlfbW9kaWZ5KCkgb3IgaXRzCitjb3VudGVycGFydCBp biBpYnVmX2luc2VydF90b19pbmRleF9wYWdlKCkuICovCiBVTklWX0lOVEVSTgogdm9pZAogcm93 X3VwZF9yZWNfaW5fcGxhY2UoCgo= --===============0347817040== 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: dbb3724199218537cda661c0961b1c0474b19f87 # timestamp: 2010-10-19 13:04:25 +0300 # source_branch: file:///home/marko/innobase/dev/mysql2a/5.5-innodb/ # base_revision_id: marko.makela@stripped\ # hbahtzixj7spezsy # # Begin bundle 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 --===============0347817040==--