From: vasil.dimov Date: July 3 2010 6:17pm Subject: bzr push into mysql-5.1-innodb branch (vasil.dimov:3527 to 3535) Bug#54311 List-Archive: http://lists.mysql.com/commits/112816 X-Bug: 54311 Message-Id: <20100703181751.C3AC42E0AC@mail.v5d.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4931974393419898229==" --===============4931974393419898229== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline IDM1MzUgSmltbXkgWWFuZwkyMDEwLTA2LTMwCiAgICAgIFBvcnQgZml4IGZvciBidWcgIzU0MzEx IGZyb20gbXlzcWwtdHJ1bmstaW5ub2RiIHRvIG15c3FsLTUuMS1pbm5vZGIgY29kZWxpbmUuCiAg ICAgIEJ1ZyAjNTQzMTE6IENyYXNoIG9uIENIRUNLIFBBUlRJVElPTiBhZnRlciBjb25jdXJyZW50 IExPQUQgREFUQQogICAgICBhbmQgYWRhcHRpdmVfaGFzaF9pbmRleD1PRkYKCiAgICBtb2RpZmll ZDoKICAgICAgc3RvcmFnZS9pbm5vZGJfcGx1Z2luL0NoYW5nZUxvZwogICAgICBzdG9yYWdlL2lu bm9kYl9wbHVnaW4vYnRyL2J0cjBzZWEuYwogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vaGEv aGEwaGEuYwogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vaGFuZGxlci9oYV9pbm5vZGIuY2MK ICAgICAgc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2luY2x1ZGUvYnRyMHNlYS5oCiAzNTM0IE1hcmtv IE3DpGtlbMOkCTIwMTAtMDYtMzAKICAgICAgQnVnIzU0MzU4IGZvbGxvdy11cDogQ29ycmVjdCBz b21lIGVycm9yIGhhbmRsaW5nLgoKICAgIG1vZGlmaWVkOgogICAgICBzdG9yYWdlL2lubm9kYl9w bHVnaW4vcm93L3JvdzBzZWwuYwogMzUzMyBNYXJrbyBNw6RrZWzDpAkyMDEwLTA2LTMwCiAgICAg IENvcnJlY3Qgc29tZSBjb21tZW50cyB0aGF0IHdlcmUgYWRkZWQgaW4gdGhlIGZpeCBvZiBCdWcg IzU0MzU4CiAgICAgIChSRUFEIFVOQ09NTUlUVEVEIGFjY2VzcyBmYWlsdXJlIG9mIG9mZi1wYWdl IERZTkFNSUMgb3IgQ09NUFJFU1NFRCBjb2x1bW5zKS4KICAgICAgCiAgICAgIFJlY29yZHMgdGhh dCBsYWNrIGluY29tcGxldGVseSB3cml0dGVuIGV4dGVybmFsbHkgc3RvcmVkIGNvbHVtbnMgbWF5 CiAgICAgIGJlIGFjY2Vzc2VkIGJ5IFJFQUQgVU5DT01NSVRURUQgdHJhbnNhY3Rpb24gZXZlbiB3 aXRob3V0IGludm9sdmluZyBhCiAgICAgIGNyYXNoIGR1cmluZyBhbiBJTlNFUlQgb3IgVVBEQVRF IG9wZXJhdGlvbi4gSSB2ZXJpZmllZCB0aGlzIGFzIGZvbGxvd3MuCiAgICAgIAogICAgICAoMSkg YWRkZWQgYSBkZWxheSBhZnRlciB0aGUgbWluaS10cmFuc2FjdGlvbiBmb3Igd3JpdGluZyB0aGUg Y2x1c3RlcmVkCiAgICAgIGluZGV4ICdzdHViJyByZWNvcmQgd2FzIGNvbW1pdHRlZCAocGF0Y2gg YXR0YWNoZWQpCiAgICAgICgyKSBzdGFydGVkIG15c3FsZCBpbiBnZGIsIHNldHRpbmcgYnJlYWtw b2ludHMgdG8gdGhlIHdoZXJlIHRoZQogICAgICBhc3NlcnRpb25zIGFib3V0IFJFQUQgVU5DT01N SVRURUQgd2VyZSBhZGRlZCBpbiB0aGUgYnVnIGZpeAogICAgICAoMykgaW52b2tlZCBpYnRlc3Qz IC0tY3JlYXRlLW9wdGlvbnM9a2V5X2Jsb2NrX3NpemU9MgogICAgICB0byBjcmVhdGUgQkxPQnMg aW4gYSBDT01QUkVTU0VEIHRhYmxlCiAgICAgICg0KSBpbnZva2VkIHRoZSBmb2xsb3dpbmc6CiAg ICAgIHllcyAnc2V0IHRyYW5zYWN0aW9uIGlzb2xhdGlvbiBsZXZlbCByZWFkIHVuY29tbWl0dGVk OwogICAgICBjaGVja3N1bSB0YWJsZSBibG9idDM7c2VsZWN0IHNsZWVwKDEpOyd8bXlzcWwgLXVy b290IHRlc3QKICAgICAgKDUpIG5vdGVkIHRoYXQgb25lIG9mIHRoZSBicmVha3BvaW50cyB3YXMg dHJpZ2dlcmVkCiAgICAgIChyZXR1cm4oTlVMTCkgaW4gYnRyX3JlY19jb3B5X2V4dGVybmFsbHlf c3RvcmVkX2ZpZWxkKCkpCiAgICAgIAogICAgICA9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9p bm5vZGJfcGx1Z2luL3Jvdy9yb3cwaW5zLmMnCiAgICAgIC0tLSBzdG9yYWdlL2lubm9kYl9wbHVn aW4vcm93L3JvdzBpbnMuYwkyMDEwLTA2LTMwIDA4OjE3OjI1ICswMDAwCiAgICAgICsrKyBzdG9y YWdlL2lubm9kYl9wbHVnaW4vcm93L3JvdzBpbnMuYwkyMDEwLTA2LTMwIDA4OjE3OjI1ICswMDAw CiAgICAgIEBAIC0yMTIwLDYgKzIxMjAsNyBAQCBmdW5jdGlvbl9leGl0OgogICAgICAgCQlyZWNf dCoJcmVjOwogICAgICAgCQl1bGludCoJb2Zmc2V0czsKICAgICAgIAkJbXRyX3N0YXJ0KCZtdHIp OwogICAgICArCQlvc190aHJlYWRfc2xlZXAoNTAwMDAwMCk7CiAgICAgICAKICAgICAgIAkJYnRy X2N1cl9zZWFyY2hfdG9fbnRoX2xldmVsKGluZGV4LCAwLCBlbnRyeSwgUEFHRV9DVVJfTEUsCiAg ICAgICAJCQkJCSAgICBCVFJfTU9ESUZZX1RSRUUsICZjdXJzb3IsIDAsCiAgICAgIAogICAgICA9 PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vZGJfcGx1Z2luL3Jvdy9yb3cwdXBkLmMnCiAg ICAgIC0tLSBzdG9yYWdlL2lubm9kYl9wbHVnaW4vcm93L3JvdzB1cGQuYwkyMDEwLTA2LTMwIDA4 OjExOjU1ICswMDAwCiAgICAgICsrKyBzdG9yYWdlL2lubm9kYl9wbHVnaW4vcm93L3JvdzB1cGQu YwkyMDEwLTA2LTMwIDA4OjExOjU1ICswMDAwCiAgICAgIEBAIC0xNzYzLDYgKzE3NjMsNyBAQCBy b3dfdXBkX2NsdXN0X3JlYygKICAgICAgIAkJcmVjX29mZnNfaW5pdChvZmZzZXRzXyk7CiAgICAg ICAKICAgICAgIAkJbXRyX3N0YXJ0KG10cik7CiAgICAgICsJCW9zX3RocmVhZF9zbGVlcCg1MDAw MDAwKTsKICAgICAgIAogICAgICAgCQl1dF9hKGJ0cl9wY3VyX3Jlc3RvcmVfcG9zaXRpb24oQlRS X01PRElGWV9UUkVFLCBwY3VyLCBtdHIpKTsKICAgICAgIAkJcmVjID0gYnRyX2N1cl9nZXRfcmVj KGJ0cl9jdXIpOwoKICAgIG1vZGlmaWVkOgogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vYnRy L2J0cjBjdXIuYwogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vcm93L3JvdzBzZWwuYwogMzUz MiBNYXJrbyBNw6RrZWzDpAkyMDEwLTA2LTI5CiAgICAgIENoYW5nZUxvZyBlbnRyeSBmb3IgQnVn ICM1NDQwOAoKICAgIG1vZGlmaWVkOgogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vQ2hhbmdl TG9nCiAzNTMxIE1hcmtvIE3DpGtlbMOkCTIwMTAtMDYtMjkKICAgICAgQnVnIzU0NDA4OiB0eG4g cm9sbGJhY2sgYWZ0ZXIgcmVjb3Zlcnk6IHJvdzB1bW9kLmM6NjczCiAgICAgIGRpY3RfdGFibGVf Z2V0X2Zvcm1hdChpbmRleC0+dGFibGUpCiAgICAgIAogICAgICBUaGUgUkVEVU5EQU5UIGFuZCBD T01QQUNUIGZvcm1hdHMgc3RvcmUgYSBsb2NhbCA3NjgtYnl0ZSBwcmVmaXggb2YKICAgICAgZWFj aCBleHRlcm5hbGx5IHN0b3JlZCBjb2x1bW4uIE5vIHJvd19leHQgY2FjaGUgaXMgbmVlZGVkLCBi dXQgd2UKICAgICAgaW5pdGlhbGl6ZWQgb25lIG5ldmVydGhlbGVzcy4gV2hlbiB0aGUgQkxPQiBw b2ludGVyIHdhcyB6ZXJvLCB3ZSB3b3VsZAogICAgICBpZ25vcmUgdGhlIGxvY2FsbHkgc3RvcmVk IHByZWZpeCBhcyB3ZWxsLiBUaGlzIHRyaWdnZXJlZCBhbiBhc3NlcnRpb24KICAgICAgZmFpbHVy ZSBpbiByb3dfdW5kb19tb2RfdXBkX2V4aXN0X3NlYygpLgogICAgICAKICAgICAgcm93X2J1aWxk KCk6IEFsbG93IGV4dD09TlVMTCB3aGVuIGEgUkVEVU5EQU5UIG9yIENPTVBBQ1QgdGFibGUKICAg ICAgY29udGFpbnMgZXh0ZXJuYWxseSBzdG9yZWQgY29sdW1ucy4KICAgICAgCiAgICAgIHJvd191 bmRvX3NlYXJjaF9jbHVzdF90b19wY3VyKCksIHJvd191cGRfc3RvcmVfcm93KCk6IEludm9rZQog ICAgICByb3dfYnVpbGQoKSB3aXRoIGV4dD09TlVMTCBvbiBSRURVTkRBTlQgYW5kIENPTVBBQ1Qg dGFibGVzLgogICAgICAKICAgICAgcmI6Ly8zODIgYXBwcm92ZWQgYnkgSmltbXkgWWFuZwoKICAg IG1vZGlmaWVkOgogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vcm93L3JvdzByb3cuYwogICAg ICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vcm93L3JvdzB1bmRvLmMKICAgICAgc3RvcmFnZS9pbm5v ZGJfcGx1Z2luL3Jvdy9yb3cwdXBkLmMKIDM1MzAgTWFya28gTcOka2Vsw6QJMjAxMC0wNi0yOQog ICAgICBDaGFuZ2VMb2cgZW50cnkgZm9yIEJ1ZyAjNTQzNTgKCiAgICBtb2RpZmllZDoKICAgICAg c3RvcmFnZS9pbm5vZGJfcGx1Z2luL0NoYW5nZUxvZwogMzUyOSBNYXJrbyBNw6RrZWzDpAkyMDEw LTA2LTI5CiAgICAgIEJ1ZyM1NDM1ODogUkVBRCBVTkNPTU1JVFRFRCBhY2Nlc3MgZmFpbHVyZSBv ZiBvZmYtcGFnZSBEWU5BTUlDIG9yIENPTVBSRVNTRUQKICAgICAgY29sdW1ucwogICAgICAKICAg ICAgV2hlbiB0aGUgc2VydmVyIGNyYXNoZXMgYWZ0ZXIgYSByZWNvcmQgc3R1YiBoYXMgYmVlbiBp bnNlcnRlZCBhbmQKICAgICAgYmVmb3JlIGFsbCBpdHMgb2ZmLXBhZ2UgY29sdW1ucyBoYXZlIGJl ZW4gd3JpdHRlbiwgdGhlIHJlY29yZCB3aWxsCiAgICAgIGNvbnRhaW4gaW5jb21wbGV0ZSBvZmYt cGFnZSBjb2x1bW5zIGFmdGVyIGNyYXNoIHJlY292ZXJ5LiBTdWNoIHJlY29yZHMKICAgICAgbWF5 IG9ubHkgYmUgYWNjZXNzZWQgYXQgdGhlIFJFQUQgVU5DT01NSVRURUQgaXNvbGF0aW9uIGxldmVs IG9yIHdoZW4KICAgICAgcm9sbGluZyBiYWNrIGEgcmVjb3ZlcmVkIHRyYW5zYWN0aW9uIGluIHJl Y3ZfcmVjb3Zlcnlfcm9sbGJhY2tfYWN0aXZlKCkuCiAgICAgIFNraXAgdGhlc2UgcmVjb3JkcyBh dCB0aGUgUkVBRCBVTkNPTU1JVFRFRCBpc29sYXRpb24gbGV2ZWwuCiAgICAgIAogICAgICBUT0RP OiBBZGQgYXNzZXJ0aW9ucyBmb3IgY2hlY2tpbmcgdGhlIGFib3ZlIGFzc3VtcHRpb25zIGhvbGQg d2hlbiBhbgogICAgICBpbmNvbXBsZXRlIEJMT0IgaXMgZW5jb3VudGVyZWQuCiAgICAgIAogICAg ICBidHJfcmVjX2NvcHlfZXh0ZXJuYWxseV9zdG9yZWRfZmllbGQoKTogUmV0dXJuIE5VTEwgaWYg dGhlIGZpZWxkIGlzCiAgICAgIGluY29tcGxldGUuCiAgICAgIAogICAgICByb3dfcHJlYnVpbHRf dDo6dGVtcGxfY29udGFpbnNfYmxvYjogQ2xhcmlmeSB3aGF0ICJCTE9CIiBtZWFucyBpbiB0aGlz CiAgICAgIGNvbnRleHQuIEhpbnQ6IE15U1FMIEJMT0JzIGFyZSBub3QgdGhlIHNhbWUgYXMgSW5u b0RCIEJMT0JzLgogICAgICAKICAgICAgcm93X3NlbF9zdG9yZV9teXNxbF9yZWMoKTogUmV0dXJu IEZBTFNFIGlmIG5vdCBhbGwgY29sdW1ucyBjb3VsZCBiZQogICAgICByZXRyaWV2ZWQuIFByZXZp b3VzbHkgdGhpcyBmdW5jdGlvbiBhbHdheXMgcmV0dXJuZWQgVFJVRS4gIEFzc2VydCB0aGF0CiAg ICAgIHRoZSByZWNvcmQgaXMgbm90IGRlbGV0ZS1tYXJrZWQuCiAgICAgIAogICAgICByb3dfc2Vs X3B1c2hfY2FjaGVfcm93X2Zvcl9teXNxbCgpOiBSZXR1cm4gRkFMU0UgaWYgbm90IGFsbCBjb2x1 bW5zCiAgICAgIGNvdWxkIGJlIHJldHJpZXZlZC4KICAgICAgCiAgICAgIHJvd19zZWFyY2hfZm9y X215c3FsKCk6IFNraXAgcmVjb3JkcyBjb250YWluaW5nIGluY29tcGxldGUgb2ZmLXBhZ2UKICAg ICAgY29sdW1ucy4gQXNzZXJ0IHRoYXQgdGhlIHRyYW5zYWN0aW9uIGlzb2xhdGlvbiBsZXZlbCBp cyBSRUFECiAgICAgIFVOQ09NTUlUVEVELgogICAgICAKICAgICAgcmI6Ly8zODAgYXBwcm92ZWQg YnkgSmltbXkgWWFuZwoKICAgIG1vZGlmaWVkOgogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4v YnRyL2J0cjBjdXIuYwogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9idHIwY3Vy LmgKICAgICAgc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2luY2x1ZGUvcm93MG15c3FsLmgKICAgICAg c3RvcmFnZS9pbm5vZGJfcGx1Z2luL3Jvdy9yb3cwbWVyZ2UuYwogICAgICBzdG9yYWdlL2lubm9k Yl9wbHVnaW4vcm93L3JvdzBzZWwuYwogMzUyOCBKaW1teSBZYW5nCTIwMTAtMDYtMjgKICAgICAg Q2hlY2sgaW4gZml4IGZvciBidWcgIzUzNzU2OiAiQUxURVIgVEFCTEUgQUREIFBSSU1BUlkgS0VZ IGFmZmVjdHMKICAgICAgY3Jhc2ggcmVjb3ZlcnkiCiAgICAgIAogICAgICByYjovLzM2OSBhcHBy b3ZlZCBieSBNYXJrbwoKICAgIGFkZGVkOgogICAgICBteXNxbC10ZXN0L3N1aXRlL2lubm9kYi9y L2lubm9kYl9idWc1Mzc1Ni5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9p bm5vZGJfYnVnNTM3NTYudGVzdAogICAgbW9kaWZpZWQ6CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uv ZGljdC9kaWN0MGxvYWQuYwogMzUyNyBTdW5ueSBCYWlucwkyMDEwLTA2LTI1CiAgICAgIEZpeCBi dWcjNTQ1ODMuIFRoaXMgY2hhbmdlIHJldmVyc2VzIHJzdm46MTM1MCBieSBnZXR0aW5nIHJpZCBv ZiBhIGJvZ3VzIGFzc2VydGlvbgogICAgICBhbmQgY2xhcmlmaWVzIHRoZSBpbnZhcmlhbnQgaW4g ZGljdF90YWJsZV9nZXRfb25faWQoKS4KICAgICAgICAgICAgCiAgICAgIEluIE1hciAyMDA3IE1h cmtvIG9ic2VydmVkIGEgY3Jhc2ggZHVyaW5nIHJlY292ZXJ5LCB0aGUgY3Jhc2ggcmVzdWx0ZWQg ZnJvbQogICAgICBhbiBVTkRPIG9wZXJhdGlvbiBvbiBhIHN5c3RlbSB0YWJsZS4gSGlzIHNvbHV0 aW9uIHdhcyB0byBhY3F1aXJlIGFuIFggbG9jayBvbgogICAgICB0aGUgZGF0YSBkaWN0aW9uYXJ5 LCB0aGlzIGluIGhpbmRzaWdodCB3YXMgYW4gb3ZlcmtpbGwuIEl0IGlzIHVuY2xlYXIgd2hhdAog ICAgICBjYXVzZWQgdGhlIGNyYXNoLCBjdXJyZW50IGh5cG90aGVzaXMgaXMgdGhhdCBpdCB3YXMg YSBtZW1vcnkgY29ycnVwdGlvbi4KICAgICAgICAgICAgCiAgICAgIFRoZSBYIGxvY2sgcmVzdWx0 cyBpbiBwZXJmb3JtYW5jZSBpc3N1ZXMgYnkgd2hlbiB1bmRvaW5nIGNoYW5nZXMgZHVlIHRvCiAg ICAgIHJvbGxiYWNrIGR1cmluZyBub3JtYWwgb3BlcmF0aW9uIG9uIHJlZ3VsYXIgdGFibGVzLgog ICAgICAgICAgICAKICAgICAgV2h5IHRoZSBjaGFuZ2UgaXMgc2FmZToKICAgICAgPT09PT09PT09 PT09PT09PT09PT09PQogICAgICBUaGUgSW5ub0RCIGNvZGUgaGFzIGNoYW5nZWQgc2luY2UgdGhl IG9yaWdpbmFsIFggbG9jayBjaGFuZ2Ugd2FzIG1hZGUuIEluIHRoZQogICAgICBuZXcgY29kZSB3 ZSBhbHdheXMgbG9jayB0aGUgZGF0YSBkaWN0aW9uYXJ5IGluIFggbW9kZSBkdXJpbmcgc3RhcnR1 cCB3aGVuCiAgICAgIFVORE9pbmcgb3BlcmF0aW9ucyBvbiB0aGUgc3lzdGVtIHRhYmxlcyAodGhp cyBpcyBhIGdpdmVuKS4gVGhpcyBlbnN1cmVzIHRoYXQKICAgICAgdGhlIGNyYXNoIE1hcmtvIG9i c2VydmVkIGNhbm5vdCBoYXBwZW4gYXMgbG9uZyBhcyBhbGwgdHJhbnNhY3Rpb25zIHRoYXQgdXBk YXRlCiAgICAgIHRoZSBzeXN0ZW0gdGFibGVzIGZvbGxvdyB0aGUgc3RhbmRhcmQgcnVsZXMgYnkg c2V0dGluZyB0aGUgYXBwcm9wcmlhdGUgRElDVF9PUAogICAgICBmbGFnIHdoZW4gd3JpdGluZyB0 aGUgbG9nIHJlY29yZHMgd2hlbiB0aGV5IG1ha2UgdGhlIGNoYW5nZXMuCiAgICAgICAgICAgIAog ICAgICBJZiB0cmFuc2FjdGlvbnMgdmlvbGF0ZSB0aGUgYWJvdmUgbWVudGlvbmVkIHJ1bGUgdGhl biBkdXJpbmcgcmVjb3ZlcnkgKGF0CiAgICAgIHN0YXJ0dXApIHRoZSByb2xsYmFjayBjb2RlIChz ZWUgdHJ4MHJvbGwuYykgd2lsbCBub3QgYWNxdWlyZSB0aGUgWCBsb2NrCiAgICAgIGFuZCB3ZSB3 aWxsIHNlZSB0aGUgY3Jhc2ggYWdhaW4uICBUaGlzIHdpbGwgaG93ZXZlciBiZSBhIGRpZmZlcmVu dCBidWcuCgogICAgbW9kaWZpZWQ6CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvZGljdC9kaWN0MGRp Y3QuYwogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvc3luYzBzeW5jLmgKICAgICAgc3Rv cmFnZS9pbm5vYmFzZS9yb3cvcm93MHVuZG8uYwogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4v ZGljdC9kaWN0MGRpY3QuYwogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9zeW5j MHN5bmMuaAogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vcm93L3JvdzB1bmRvLmMKPT09IGFk ZGVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiX2J1ZzUzNzU2LnJlc3Vs dCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGJfYnVnNTM3NTYucmVzdWx0 CTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIv ci9pbm5vZGJfYnVnNTM3NTYucmVzdWx0CXJldmlkOmppbW15LnlhbmdAb3JhY2xlLmNvbS0yMDEw MDcwMTA1MDYwMS1pNThiM2UxYzFvNzh3OG91CkBAIC0wLDAgKzEsMTE4IEBACitEUk9QIFRBQkxF IElGIEVYSVNUUyBidWdfNTM3NTYgOworQ1JFQVRFIFRBQkxFIGJ1Z181Mzc1NiAocGsgSU5ULCBj MSBJTlQpIEVOR0lORT1Jbm5vREI7CitBTFRFUiBUQUJMRSBidWdfNTM3NTYgQUREIFBSSU1BUlkg S0VZIChwayk7CitJTlNFUlQgSU5UTyBidWdfNTM3NTYgVkFMVUVTKDEsIDExKSwgKDIsIDIyKSwg KDMsIDMzKSwgKDQsIDQ0KTsKKworIyBTZWxlY3QgYSBsZXNzIHJlc3RyaWN0aXZlIGlzb2xhdGlv biBsZXZlbC4KK1NFVCBHTE9CQUwgVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIFJFQUQgQ09N TUlUVEVEOworU0VUIFNFU1NJT04gVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIFJFQUQgQ09N TUlUVEVEOworQ09NTUlUOworCisjIFN0YXJ0IGEgdHJhbnNhY3Rpb24gaW4gdGhlIGRlZmF1bHQg Y29ubmVjdGlvbiBmb3IgaXNvbGF0aW9uLgorU1RBUlQgVFJBTlNBQ1RJT047CitTRUxFQ1QgQEB0 eF9pc29sYXRpb247CitAQHR4X2lzb2xhdGlvbgorUkVBRC1DT01NSVRURUQKK1NFTEVDVCAqIEZS T00gYnVnXzUzNzU2OworcGsJYzEKKzEJMTEKKzIJMjIKKzMJMzMKKzQJNDQKKworIyBjb25uZWN0 aW9uIGNvbjEgZGVsZXRlcyByb3cgMQorU1RBUlQgVFJBTlNBQ1RJT047CitTRUxFQ1QgQEB0eF9p c29sYXRpb247CitAQHR4X2lzb2xhdGlvbgorUkVBRC1DT01NSVRURUQKK0RFTEVURSBGUk9NIGJ1 Z181Mzc1NiBXSEVSRSBwaz0xOworCisjIGNvbm5lY3Rpb24gY29uMiBkZWxldGVzIHJvdyAyCitT VEFSVCBUUkFOU0FDVElPTjsKK1NFTEVDVCBAQHR4X2lzb2xhdGlvbjsKK0BAdHhfaXNvbGF0aW9u CitSRUFELUNPTU1JVFRFRAorREVMRVRFIEZST00gYnVnXzUzNzU2IFdIRVJFIHBrPTI7CisKKyMg Y29ubmVjdGlvbiBjb24zIHVwZGF0ZXMgcm93IDMKK1NUQVJUIFRSQU5TQUNUSU9OOworU0VMRUNU IEBAdHhfaXNvbGF0aW9uOworQEB0eF9pc29sYXRpb24KK1JFQUQtQ09NTUlUVEVECitVUERBVEUg YnVnXzUzNzU2IFNFVCBjMT03NyBXSEVSRSBwaz0zOworCisjIGNvbm5lY3Rpb24gY29uNCB1cGRh dGVzIHJvdyA0CitTVEFSVCBUUkFOU0FDVElPTjsKK1NFTEVDVCBAQHR4X2lzb2xhdGlvbjsKK0BA dHhfaXNvbGF0aW9uCitSRUFELUNPTU1JVFRFRAorVVBEQVRFIGJ1Z181Mzc1NiBTRVQgYzE9ODgg V0hFUkUgcGs9NDsKKworIyBjb25uZWN0aW9uIGNvbjUgaW5zZXJ0cyByb3cgNQorU1RBUlQgVFJB TlNBQ1RJT047CitTRUxFQ1QgQEB0eF9pc29sYXRpb247CitAQHR4X2lzb2xhdGlvbgorUkVBRC1D T01NSVRURUQKK0lOU0VSVCBJTlRPIGJ1Z181Mzc1NiBWQUxVRVMoNSwgNTUpOworCisjIGNvbm5l Y3Rpb24gY29uNiBpbnNlcnRzIHJvdyA2CitTVEFSVCBUUkFOU0FDVElPTjsKK1NFTEVDVCBAQHR4 X2lzb2xhdGlvbjsKK0BAdHhfaXNvbGF0aW9uCitSRUFELUNPTU1JVFRFRAorSU5TRVJUIElOVE8g YnVnXzUzNzU2IFZBTFVFUyg2LCA2Nik7CisKKyMgY29ubmVjdGlvbiBjb24xIGNvbW1pdHMuCitD T01NSVQ7CisKKyMgY29ubmVjdGlvbiBjb24zIGNvbW1pdHMuCitDT01NSVQ7CisKKyMgY29ubmVj dGlvbiBjb240IHJvbGxzIGJhY2suCitST0xMQkFDSzsKKworIyBjb25uZWN0aW9uIGNvbjYgcm9s bHMgYmFjay4KK1JPTExCQUNLOworCisjIFRoZSBjb25uZWN0aW9ucyAyIGFuZCA1IHN0YXkgb3Bl bi4KKworIyBjb25uZWN0aW9uIGRlZmF1bHQgc2VsZWN0cyByZXN1bHRpbmcgZGF0YS4KKyMgRGVs ZXRlIG9mIHJvdyAxIHdhcyBjb21taXR0ZWQuCisjIERwZGF0ZSBvZiByb3cgMyB3YXMgY29tbWl0 dGVkLgorIyBEdWUgdG8gaXNvbGF0aW9uIGxldmVsIHJlYWQgY29tbWl0dGVkLCB0aGVzZSBzaG91 bGQgYmUgaW5jbHVkZWQuCisjIEFsbCBvdGhlciBjaGFuZ2VzIHNob3VsZCBub3QgYmUgaW5jbHVk ZWQuCitTRUxFQ1QgKiBGUk9NIGJ1Z181Mzc1NjsKK3BrCWMxCisyCTIyCiszCTc3Cis0CTQ0CisK KyMgY29ubmVjdGlvbiBkZWZhdWx0CisjCisjIENyYXNoIHNlcnZlci4KK1NUQVJUIFRSQU5TQUNU SU9OOworSU5TRVJUIElOVE8gYnVnXzUzNzU2IFZBTFVFUyAoNjY2LDY2Nik7CitTRVQgU0VTU0lP TiBkZWJ1Zz0iK2QsY3Jhc2hfY29tbWl0X2JlZm9yZSI7CitDT01NSVQ7CitFUlJPUiBIWTAwMDog TG9zdCBjb25uZWN0aW9uIHRvIE15U1FMIHNlcnZlciBkdXJpbmcgcXVlcnkKKworIworIyBkaXNj b25uZWN0IGNvbjEsIGNvbjIsIGNvbjMsIGNvbjQsIGNvbjUsIGNvbjYuCisjCisjIFJlc3RhcnQg c2VydmVyLgorCisjCisjIFNlbGVjdCByZWNvdmVyZWQgZGF0YS4KKyMgRGVsZXRlIG9mIHJvdyAx IHdhcyBjb21taXR0ZWQuCisjIFVwZGF0ZSBvZiByb3cgMyB3YXMgY29tbWl0dGVkLgorIyBUaGVz ZSBzaG91bGQgYmUgaW5jbHVkZWQuCisjIEFsbCBvdGhlciBjaGFuZ2VzIHNob3VsZCBub3QgYmUg aW5jbHVkZWQuCisjIERlbGV0ZSBvZiByb3cgMiBhbmQgaW5zZXJ0IG9mIHJvdyA1IHNob3VsZCBi ZSByb2xsZWQgYmFjaworU0VMRUNUICogRlJPTSBidWdfNTM3NTY7CitwawljMQorMgkyMgorMwk3 NworNAk0NAorCisjIENsZWFuIHVwLgorRFJPUCBUQUJMRSBidWdfNTM3NTY7Cgo9PT0gYWRkZWQg ZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGJfYnVnNTM3NTYudGVzdCcKLS0t IGEvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGJfYnVnNTM3NTYudGVzdAkxOTcwLTAx LTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2Ri X2J1ZzUzNzU2LnRlc3QJcmV2aWQ6amltbXkueWFuZ0BvcmFjbGUuY29tLTIwMTAwNzAxMDUwNjAx LWk1OGIzZTFjMW83OHc4b3UKQEAgLTAsMCArMSwxODQgQEAKKyMgVGhpcyBpcyB0aGUgdGVzdCBj YXNlIGZvciBidWcgIzUzNzU2LiBBbHRlciB0YWJsZSBvcGVyYXRpb24gY291bGQKKyMgbGVhdmUg YSBkZWxldGVkIHJlY29yZCBmb3IgdGhlIHRlbXAgdGFibGUgKGxhdGVyIHJlbmFtZWQgdG8gdGhl IGFsdGVyZWQKKyMgdGFibGUpIGluIHRoZSBTWVNfVEFCTEVTIHNlY29uZGFyeSBpbmRleCwgd2Ug c2hvdWxkIGlnbm9yZSB0aGlzIHJvdyBhbmQKKyMgZmluZCB0aGUgZmlyc3Qgbm9uLWRlbGV0ZWQg cm93IGZvciB0aGUgc3BlY2lmaWVkIHRhYmxlX2lkIHdoZW4gbG9hZCB0YWJsZQorIyBtZXRhZGF0 YSBpbiB0aGUgZnVuY3Rpb24gZGljdF9sb2FkX3RhYmxlX29uX2lkKCkgZHVyaW5nIGNyYXNoIHJl Y292ZXJ5LgorCisjCisjIGlubm9iYWNrdXAgbmVlZHMgdG8gY29ubmVjdCB0byB0aGUgc2VydmVy LiBOb3Qgc3VwcG9ydGVkIGluIGVtYmVkZGVkLgorLS1zb3VyY2UgaW5jbHVkZS9ub3RfZW1iZWRk ZWQuaW5jCisjCisjIFRoaXMgdGVzdCBjYXNlIG5lZWRzIHRvIGNyYXNoIHRoZSBzZXJ2ZXIuIE5l ZWRzIGEgZGVidWcgc2VydmVyLgorLS1zb3VyY2UgaW5jbHVkZS9oYXZlX2RlYnVnLmluYworIwor IyBEb24ndCB0ZXN0IHRoaXMgdW5kZXIgdmFsZ3JpbmQsIG1lbW9yeSBsZWFrcyB3aWxsIG9jY3Vy LgorLS1zb3VyY2UgaW5jbHVkZS9ub3RfdmFsZ3JpbmQuaW5jCisjCisjIFRoaXMgdGVzdCBjYXNl IG5lZWRzIElubm9EQi4KKy0tc291cmNlIGluY2x1ZGUvaGF2ZV9pbm5vZGIuaW5jCisKKyMKKyMg UHJlY2F1dGlvbmFyeSBjbGVhbiB1cC4KKyMKKy0tZGlzYWJsZV93YXJuaW5ncworRFJPUCBUQUJM RSBJRiBFWElTVFMgYnVnXzUzNzU2IDsKKy0tZW5hYmxlX3dhcm5pbmdzCisKKyMKKyMgQ3JlYXRl IHRlc3QgZGF0YS4KKyMKK0NSRUFURSBUQUJMRSBidWdfNTM3NTYgKHBrIElOVCwgYzEgSU5UKSBF TkdJTkU9SW5ub0RCOworQUxURVIgVEFCTEUgYnVnXzUzNzU2IEFERCBQUklNQVJZIEtFWSAocGsp OworSU5TRVJUIElOVE8gYnVnXzUzNzU2IFZBTFVFUygxLCAxMSksICgyLCAyMiksICgzLCAzMyks ICg0LCA0NCk7CisKKy0tZWNobworLS1lY2hvICMgU2VsZWN0IGEgbGVzcyByZXN0cmljdGl2ZSBp c29sYXRpb24gbGV2ZWwuCisjIERvbid0IHVzZSB1c2VyIHZhcmlhYmxlcy4gVGhleSB3b24ndCBz dXJ2aXZlIHNlcnZlciBjcmFzaC4KKy0tbGV0ICRnbG9iYWxfaXNvbGF0aW9uPSBgU0VMRUNUIEBA Z2xvYmFsLnR4X2lzb2xhdGlvbmA7CistLWxldCAkc2Vzc2lvbl9pc29sYXRpb249IGBTRUxFQ1Qg QEBzZXNzaW9uLnR4X2lzb2xhdGlvbmA7CitTRVQgR0xPQkFMIFRSQU5TQUNUSU9OIElTT0xBVElP TiBMRVZFTCBSRUFEIENPTU1JVFRFRDsKK1NFVCBTRVNTSU9OIFRSQU5TQUNUSU9OIElTT0xBVElP TiBMRVZFTCBSRUFEIENPTU1JVFRFRDsKK0NPTU1JVDsKKworLS1lY2hvCistLWVjaG8gIyBTdGFy dCBhIHRyYW5zYWN0aW9uIGluIHRoZSBkZWZhdWx0IGNvbm5lY3Rpb24gZm9yIGlzb2xhdGlvbi4K K1NUQVJUIFRSQU5TQUNUSU9OOworU0VMRUNUIEBAdHhfaXNvbGF0aW9uOworU0VMRUNUICogRlJP TSBidWdfNTM3NTY7CisKKy0tZWNobworLS1lY2hvICMgY29ubmVjdGlvbiBjb24xIGRlbGV0ZXMg cm93IDEKKy0tY29ubmVjdCAoY29uMSxsb2NhbGhvc3Qscm9vdCwsKQorU1RBUlQgVFJBTlNBQ1RJ T047CitTRUxFQ1QgQEB0eF9pc29sYXRpb247CitERUxFVEUgRlJPTSBidWdfNTM3NTYgV0hFUkUg cGs9MTsKKworLS1lY2hvCistLWVjaG8gIyBjb25uZWN0aW9uIGNvbjIgZGVsZXRlcyByb3cgMgor LS1jb25uZWN0IChjb24yLGxvY2FsaG9zdCxyb290LCwpCitTVEFSVCBUUkFOU0FDVElPTjsKK1NF TEVDVCBAQHR4X2lzb2xhdGlvbjsKK0RFTEVURSBGUk9NIGJ1Z181Mzc1NiBXSEVSRSBwaz0yOwor CistLWVjaG8KKy0tZWNobyAjIGNvbm5lY3Rpb24gY29uMyB1cGRhdGVzIHJvdyAzCistLWNvbm5l Y3QgKGNvbjMsbG9jYWxob3N0LHJvb3QsLCkKK1NUQVJUIFRSQU5TQUNUSU9OOworU0VMRUNUIEBA dHhfaXNvbGF0aW9uOworVVBEQVRFIGJ1Z181Mzc1NiBTRVQgYzE9NzcgV0hFUkUgcGs9MzsKKwor LS1lY2hvCistLWVjaG8gIyBjb25uZWN0aW9uIGNvbjQgdXBkYXRlcyByb3cgNAorLS1jb25uZWN0 IChjb240LGxvY2FsaG9zdCxyb290LCwpCitTVEFSVCBUUkFOU0FDVElPTjsKK1NFTEVDVCBAQHR4 X2lzb2xhdGlvbjsKK1VQREFURSBidWdfNTM3NTYgU0VUIGMxPTg4IFdIRVJFIHBrPTQ7CisKKy0t ZWNobworLS1lY2hvICMgY29ubmVjdGlvbiBjb241IGluc2VydHMgcm93IDUKKy0tY29ubmVjdCAo Y29uNSxsb2NhbGhvc3Qscm9vdCwsKQorU1RBUlQgVFJBTlNBQ1RJT047CitTRUxFQ1QgQEB0eF9p c29sYXRpb247CitJTlNFUlQgSU5UTyBidWdfNTM3NTYgVkFMVUVTKDUsIDU1KTsKKworLS1lY2hv CistLWVjaG8gIyBjb25uZWN0aW9uIGNvbjYgaW5zZXJ0cyByb3cgNgorLS1jb25uZWN0IChjb242 LGxvY2FsaG9zdCxyb290LCwpCitTVEFSVCBUUkFOU0FDVElPTjsKK1NFTEVDVCBAQHR4X2lzb2xh dGlvbjsKK0lOU0VSVCBJTlRPIGJ1Z181Mzc1NiBWQUxVRVMoNiwgNjYpOworCistLWVjaG8KKy0t ZWNobyAjIGNvbm5lY3Rpb24gY29uMSBjb21taXRzLgorLS1jb25uZWN0aW9uIGNvbjEKK0NPTU1J VDsKKworLS1lY2hvCistLWVjaG8gIyBjb25uZWN0aW9uIGNvbjMgY29tbWl0cy4KKy0tY29ubmVj dGlvbiBjb24zCitDT01NSVQ7CisKKy0tZWNobworLS1lY2hvICMgY29ubmVjdGlvbiBjb240IHJv bGxzIGJhY2suCistLWNvbm5lY3Rpb24gY29uNAorUk9MTEJBQ0s7CisKKy0tZWNobworLS1lY2hv ICMgY29ubmVjdGlvbiBjb242IHJvbGxzIGJhY2suCistLWNvbm5lY3Rpb24gY29uNgorUk9MTEJB Q0s7CisKKy0tZWNobworLS1lY2hvICMgVGhlIGNvbm5lY3Rpb25zIDIgYW5kIDUgc3RheSBvcGVu LgorCistLWVjaG8KKy0tZWNobyAjIGNvbm5lY3Rpb24gZGVmYXVsdCBzZWxlY3RzIHJlc3VsdGlu ZyBkYXRhLgorLS1lY2hvICMgRGVsZXRlIG9mIHJvdyAxIHdhcyBjb21taXR0ZWQuCistLWVjaG8g IyBEcGRhdGUgb2Ygcm93IDMgd2FzIGNvbW1pdHRlZC4KKy0tZWNobyAjIER1ZSB0byBpc29sYXRp b24gbGV2ZWwgcmVhZCBjb21taXR0ZWQsIHRoZXNlIHNob3VsZCBiZSBpbmNsdWRlZC4KKy0tZWNo byAjIEFsbCBvdGhlciBjaGFuZ2VzIHNob3VsZCBub3QgYmUgaW5jbHVkZWQuCistLWNvbm5lY3Rp b24gZGVmYXVsdAorU0VMRUNUICogRlJPTSBidWdfNTM3NTY7CisKKy0tZWNobworLS1lY2hvICMg Y29ubmVjdGlvbiBkZWZhdWx0CistLWNvbm5lY3Rpb24gZGVmYXVsdAorLS1lY2hvICMKKy0tZWNo byAjIENyYXNoIHNlcnZlci4KKyMKKyMgV3JpdGUgZmlsZSB0byBtYWtlIG15c3FsLXRlc3QtcnVu LnBsIGV4cGVjdCB0aGUgImNyYXNoIiwgYnV0IGRvbid0IHN0YXJ0CisjIGl0IHVudGlsIGl0J3Mg dG9sZCB0bworLS1leGVjIGVjaG8gIndhaXQiID4gJE1ZU1FMVEVTVF9WQVJESVIvdG1wL215c3Fs ZC4xLmV4cGVjdAorIworU1RBUlQgVFJBTlNBQ1RJT047CitJTlNFUlQgSU5UTyBidWdfNTM3NTYg VkFMVUVTICg2NjYsNjY2KTsKKyMKKyMgUmVxdWVzdCBhIGNyYXNoIG9uIG5leHQgZXhlY3V0aW9u IG9mIGNvbW1pdC4KK1NFVCBTRVNTSU9OIGRlYnVnPSIrZCxjcmFzaF9jb21taXRfYmVmb3JlIjsK KyMKKyMgRXhlY3V0ZSB0aGUgc3RhdGVtZW50IHRoYXQgY2F1c2VzIHRoZSBjcmFzaC4KKy0tZXJy b3IgMjAxMworQ09NTUlUOworLS1lY2hvCistLWVjaG8gIworLS1lY2hvICMgZGlzY29ubmVjdCBj b24xLCBjb24yLCBjb24zLCBjb240LCBjb241LCBjb242LgorLS1kaXNjb25uZWN0IGNvbjEKKy0t ZGlzY29ubmVjdCBjb24yCistLWRpc2Nvbm5lY3QgY29uMworLS1kaXNjb25uZWN0IGNvbjQKKy0t ZGlzY29ubmVjdCBjb241CistLWRpc2Nvbm5lY3QgY29uNgorLS1lY2hvICMKKy0tZWNobyAjIFJl c3RhcnQgc2VydmVyLgorIworIyBXcml0ZSBmaWxlIHRvIG1ha2UgbXlzcWwtdGVzdC1ydW4ucGwg c3RhcnQgdXAgdGhlIHNlcnZlciBhZ2FpbgorLS1leGVjIGVjaG8gInJlc3RhcnQiID4gJE1ZU1FM VEVTVF9WQVJESVIvdG1wL215c3FsZC4xLmV4cGVjdAorIworIyBUdXJuIG9uIHJlY29ubmVjdAor LS1lbmFibGVfcmVjb25uZWN0CisjCisjIENhbGwgc2NyaXB0IHRoYXQgd2lsbCBwb2xsIHRoZSBz ZXJ2ZXIgd2FpdGluZyBmb3IgaXQgdG8gYmUgYmFjayBvbmxpbmUgYWdhaW4KKy0tc291cmNlIGlu Y2x1ZGUvd2FpdF91bnRpbF9jb25uZWN0ZWRfYWdhaW4uaW5jCisjCisjIFR1cm4gb2ZmIHJlY29u bmVjdCBhZ2FpbgorLS1kaXNhYmxlX3JlY29ubmVjdAorLS1lY2hvCisKKy0tZWNobyAjCistLWVj aG8gIyBTZWxlY3QgcmVjb3ZlcmVkIGRhdGEuCistLWVjaG8gIyBEZWxldGUgb2Ygcm93IDEgd2Fz IGNvbW1pdHRlZC4KKy0tZWNobyAjIFVwZGF0ZSBvZiByb3cgMyB3YXMgY29tbWl0dGVkLgorLS1l Y2hvICMgVGhlc2Ugc2hvdWxkIGJlIGluY2x1ZGVkLgorLS1lY2hvICMgQWxsIG90aGVyIGNoYW5n ZXMgc2hvdWxkIG5vdCBiZSBpbmNsdWRlZC4KKy0tZWNobyAjIERlbGV0ZSBvZiByb3cgMiBhbmQg aW5zZXJ0IG9mIHJvdyA1IHNob3VsZCBiZSByb2xsZWQgYmFjaworU0VMRUNUICogRlJPTSBidWdf NTM3NTY7CisKKy0tZWNobworLS1lY2hvICMgQ2xlYW4gdXAuCitEUk9QIFRBQkxFIGJ1Z181Mzc1 NjsKKworLS1kaXNhYmxlX3F1ZXJ5X2xvZworZXZhbCBTRVQgR0xPQkFMIHR4X2lzb2xhdGlvbj0g JyRnbG9iYWxfaXNvbGF0aW9uJzsKK2V2YWwgU0VUIFNFU1NJT04gdHhfaXNvbGF0aW9uPSAnJHNl c3Npb25faXNvbGF0aW9uJzsKKy0tZW5hYmxlX3F1ZXJ5X2xvZworCgo9PT0gbW9kaWZpZWQgZmls ZSAnc3RvcmFnZS9pbm5vYmFzZS9kaWN0L2RpY3QwbG9hZC5jJwotLS0gYS9zdG9yYWdlL2lubm9i YXNlL2RpY3QvZGljdDBsb2FkLmMJcmV2aWQ6c3VubnkuYmFpbnNAb3JhY2xlLmNvbS0yMDEwMDYy NTA4MTg0MS1wcHVsbmtqazFxbGF6aDgyCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvZGljdC9kaWN0 MGxvYWQuYwlyZXZpZDpqaW1teS55YW5nQG9yYWNsZS5jb20tMjAxMDA3MDEwNTA2MDEtaTU4YjNl MWMxbzc4dzhvdQpAQCAtOTI3LDYgKzkyNyw4IEBAIGRpY3RfbG9hZF90YWJsZV9vbl9pZCgKIAog CXV0X2FkKG11dGV4X293bigmKGRpY3Rfc3lzLT5tdXRleCkpKTsKIAorCXRhYmxlID0gTlVMTDsK KwogCS8qIE5PVEUgdGhhdCB0aGUgb3BlcmF0aW9uIG9mIHRoaXMgZnVuY3Rpb24gaXMgcHJvdGVj dGVkIGJ5CiAJdGhlIGRpY3Rpb25hcnkgbXV0ZXgsIGFuZCB0aGVyZWZvcmUgbm8gZGVhZGxvY2tz IGNhbiBvY2N1cgogCXdpdGggb3RoZXIgZGljdGlvbmFyeSBvcGVyYXRpb25zLiAqLwpAQCAtOTUz LDE1ICs5NTUsMTcgQEAgZGljdF9sb2FkX3RhYmxlX29uX2lkKAogCQkJCSAgQlRSX1NFQVJDSF9M RUFGLCAmcGN1ciwgJm10cik7CiAJcmVjID0gYnRyX3BjdXJfZ2V0X3JlYygmcGN1cik7CiAKLQlp ZiAoIWJ0cl9wY3VyX2lzX29uX3VzZXJfcmVjKCZwY3VyLCAmbXRyKQotCSAgICB8fCByZWNfZ2V0 X2RlbGV0ZWRfZmxhZyhyZWMsIDApKSB7CisJaWYgKCFidHJfcGN1cl9pc19vbl91c2VyX3JlYygm cGN1ciwgJm10cikpIHsKIAkJLyogTm90IGZvdW5kICovCisJCWdvdG8gZnVuY19leGl0OworCX0K IAotCQlidHJfcGN1cl9jbG9zZSgmcGN1cik7Ci0JCW10cl9jb21taXQoJm10cik7Ci0JCW1lbV9o ZWFwX2ZyZWUoaGVhcCk7Ci0KLQkJcmV0dXJuKE5VTEwpOworCS8qIEZpbmQgdGhlIGZpcnN0IHJl Y29yZCB0aGF0IGlzIG5vdCBkZWxldGUgbWFya2VkICovCisJd2hpbGUgKHJlY19nZXRfZGVsZXRl ZF9mbGFnKHJlYywgMCkpIHsKKwkJaWYgKCFidHJfcGN1cl9tb3ZlX3RvX25leHRfdXNlcl9yZWMo JnBjdXIsICZtdHIpKSB7CisJCQlnb3RvIGZ1bmNfZXhpdDsKKwkJfQorCQlyZWMgPSBidHJfcGN1 cl9nZXRfcmVjKCZwY3VyKTsKIAl9CiAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCkBAIC05NzQsMTkgKzk3OCwxNCBAQCBkaWN0X2xvYWRf dGFibGVfb25faWQoCiAKIAkvKiBDaGVjayBpZiB0aGUgdGFibGUgaWQgaW4gcmVjb3JkIGlzIHRo ZSBvbmUgc2VhcmNoZWQgZm9yICovCiAJaWYgKHV0X2R1bGludF9jbXAodGFibGVfaWQsIG1hY2hf cmVhZF9mcm9tXzgoZmllbGQpKSAhPSAwKSB7Ci0KLQkJYnRyX3BjdXJfY2xvc2UoJnBjdXIpOwot CQltdHJfY29tbWl0KCZtdHIpOwotCQltZW1faGVhcF9mcmVlKGhlYXApOwotCi0JCXJldHVybihO VUxMKTsKKwkJZ290byBmdW5jX2V4aXQ7CiAJfQogCiAJLyogTm93IHdlIGdldCB0aGUgdGFibGUg bmFtZSBmcm9tIHRoZSByZWNvcmQgKi8KIAlmaWVsZCA9IHJlY19nZXRfbnRoX2ZpZWxkX29sZChy ZWMsIDEsICZsZW4pOwogCS8qIExvYWQgdGhlIHRhYmxlIGRlZmluaXRpb24gdG8gbWVtb3J5ICov CiAJdGFibGUgPSBkaWN0X2xvYWRfdGFibGUobWVtX2hlYXBfc3RyZHVwbChoZWFwLCAoY2hhciop IGZpZWxkLCBsZW4pKTsKLQorZnVuY19leGl0OgogCWJ0cl9wY3VyX2Nsb3NlKCZwY3VyKTsKIAlt dHJfY29tbWl0KCZtdHIpOwogCW1lbV9oZWFwX2ZyZWUoaGVhcCk7Cgo9PT0gbW9kaWZpZWQgZmls ZSAnc3RvcmFnZS9pbm5vZGJfcGx1Z2luL0NoYW5nZUxvZycKLS0tIGEvc3RvcmFnZS9pbm5vZGJf cGx1Z2luL0NoYW5nZUxvZwlyZXZpZDpzdW5ueS5iYWluc0BvcmFjbGUuY29tLTIwMTAwNjI1MDgx ODQxLXBwdWxua2prMXFsYXpoODIKKysrIGIvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL0NoYW5nZUxv ZwlyZXZpZDpqaW1teS55YW5nQG9yYWNsZS5jb20tMjAxMDA3MDEwNTA2MDEtaTU4YjNlMWMxbzc4 dzhvdQpAQCAtMSwzICsxLDIxIEBACisyMDEwLTA2LTMwCVRoZSBJbm5vREIgVGVhbQorCisJKiBi dHIvYnRyMHNlYS5jLCBoYS9oYTBoYS5jLCBoYW5kbGVyL2hhX2lubm9kYi5jYywgaW5jbHVkZS9i dHIwc2VhLmg6CisJRml4IEJ1ZyM1NDMxMSBDcmFzaCBvbiBDSEVDSyBQQVJUSVRJT04gYWZ0ZXIg Y29uY3VycmVudCBMT0FEIERBVEEKKwlhbmQgYWRhcHRpdmVfaGFzaF9pbmRleD1PRkYKKworMjAx MC0wNi0yOQlUaGUgSW5ub0RCIFRlYW0KKwkqIHJvdy9yb3cwcm93LmMsIHJvdy9yb3cwdW5kby5j LCByb3cvcm93MHVwZC5jOgorCUZpeCBCdWcjNTQ0MDggdHhuIHJvbGxiYWNrIGFmdGVyIHJlY292 ZXJ5OiByb3cwdW1vZC5jOjY3MworCWRpY3RfdGFibGVfZ2V0X2Zvcm1hdChpbmRleC0+dGFibGUp CisKKzIwMTAtMDYtMjkJVGhlIElubm9EQiBUZWFtCisKKwkqIGJ0ci9idHIwY3VyLmMsIGluY2x1 ZGUvYnRyMGN1ci5oLAorCWluY2x1ZGUvcm93MG15c3FsLmgsIHJvdy9yb3cwbWVyZ2UuYywgcm93 L3JvdzBzZWwuYzoKKwlGaXggQnVnIzU0MzU4IFJFQUQgVU5DT01NSVRURUQgYWNjZXNzIGZhaWx1 cmUgb2Ygb2ZmLXBhZ2UgRFlOQU1JQworCW9yIENPTVBSRVNTRUQgY29sdW1ucworCiAyMDEwLTA2 LTI0CVRoZSBJbm5vREIgVGVhbQogCiAJKiBoYW5kbGVyL2hhX2lubm9kYi5jYzoKCj09PSBtb2Rp ZmllZCBmaWxlICdzdG9yYWdlL2lubm9kYl9wbHVnaW4vYnRyL2J0cjBjdXIuYycKLS0tIGEvc3Rv cmFnZS9pbm5vZGJfcGx1Z2luL2J0ci9idHIwY3VyLmMJcmV2aWQ6c3VubnkuYmFpbnNAb3JhY2xl LmNvbS0yMDEwMDYyNTA4MTg0MS1wcHVsbmtqazFxbGF6aDgyCisrKyBiL3N0b3JhZ2UvaW5ub2Ri X3BsdWdpbi9idHIvYnRyMGN1ci5jCXJldmlkOmppbW15LnlhbmdAb3JhY2xlLmNvbS0yMDEwMDcw MTA1MDYwMS1pNThiM2UxYzFvNzh3OG91CkBAIC00ODE0LDcgKzQ4MTQsNyBAQCBidHJfY29weV9l eHRlcm5hbGx5X3N0b3JlZF9maWVsZCgKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBDb3BpZXMgYW4gZXh0 ZXJuYWxseSBzdG9yZWQgZmllbGQgb2YgYSByZWNvcmQgdG8gbWVtIGhlYXAuCi1AcmV0dXJuCXRo ZSBmaWVsZCBjb3BpZWQgdG8gaGVhcCAqLworQHJldHVybgl0aGUgZmllbGQgY29waWVkIHRvIGhl YXAsIG9yIE5VTEwgaWYgdGhlIGZpZWxkIGlzIGluY29tcGxldGUgKi8KIFVOSVZfSU5URVJOCiBi eXRlKgogYnRyX3JlY19jb3B5X2V4dGVybmFsbHlfc3RvcmVkX2ZpZWxkKApAQCAtNDg0NCw2ICs0 ODQ0LDE4IEBAIGJ0cl9yZWNfY29weV9leHRlcm5hbGx5X3N0b3JlZF9maWVsZCgKIAogCWRhdGEg PSByZWNfZ2V0X250aF9maWVsZChyZWMsIG9mZnNldHMsIG5vLCAmbG9jYWxfbGVuKTsKIAorCXV0 X2EobG9jYWxfbGVuID49IEJUUl9FWFRFUk5fRklFTERfUkVGX1NJWkUpOworCisJaWYgKFVOSVZf VU5MSUtFTFkKKwkgICAgKCFtZW1jbXAoZGF0YSArIGxvY2FsX2xlbiAtIEJUUl9FWFRFUk5fRklF TERfUkVGX1NJWkUsCisJCSAgICAgZmllbGRfcmVmX3plcm8sIEJUUl9FWFRFUk5fRklFTERfUkVG X1NJWkUpKSkgeworCQkvKiBUaGUgZXh0ZXJuYWxseSBzdG9yZWQgZmllbGQgd2FzIG5vdCB3cml0 dGVuIHlldC4KKwkJVGhpcyByZWNvcmQgc2hvdWxkIG9ubHkgYmUgc2VlbiBieQorCQlyZWN2X3Jl Y292ZXJ5X3JvbGxiYWNrX2FjdGl2ZSgpIG9yIGFueQorCQlUUlhfSVNPX1JFQURfVU5DT01NSVRU RUQgdHJhbnNhY3Rpb25zLiAqLworCQlyZXR1cm4oTlVMTCk7CisJfQorCiAJcmV0dXJuKGJ0cl9j b3B5X2V4dGVybmFsbHlfc3RvcmVkX2ZpZWxkKGxlbiwgZGF0YSwKIAkJCQkJCXppcF9zaXplLCBs b2NhbF9sZW4sIGhlYXApKTsKIH0KCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9kYl9w bHVnaW4vYnRyL2J0cjBzZWEuYycKLS0tIGEvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2J0ci9idHIw c2VhLmMJcmV2aWQ6c3VubnkuYmFpbnNAb3JhY2xlLmNvbS0yMDEwMDYyNTA4MTg0MS1wcHVsbmtq azFxbGF6aDgyCisrKyBiL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9idHIvYnRyMHNlYS5jCXJldmlk OmppbW15LnlhbmdAb3JhY2xlLmNvbS0yMDEwMDcwMTA1MDYwMS1pNThiM2UxYzFvNzh3OG91CkBA IC00Niw2ICs0Niw3IEBAIENyZWF0ZWQgMi8xNy8xOTk2IEhlaWtraSBUdXVyaQogLyoqIEZsYWc6 IGhhcyB0aGUgc2VhcmNoIHN5c3RlbSBiZWVuIGVuYWJsZWQ/CiBQcm90ZWN0ZWQgYnkgYnRyX3Nl YXJjaF9sYXRjaCBhbmQgYnRyX3NlYXJjaF9lbmFibGVkX211dGV4LiAqLwogVU5JVl9JTlRFUk4g Y2hhcgkJYnRyX3NlYXJjaF9lbmFibGVkCT0gVFJVRTsKK1VOSVZfSU5URVJOIGlib29sCQlidHJf c2VhcmNoX2Z1bGx5X2Rpc2FibGVkID0gRkFMU0U7CiAKIC8qKiBNdXRleCBwcm90ZWN0aW5nIGJ0 cl9zZWFyY2hfZW5hYmxlZCAqLwogc3RhdGljIG11dGV4X3QJCQlidHJfc2VhcmNoX2VuYWJsZWRf bXV0ZXg7CkBAIC0yMDEsMTIgKzIwMiwxOSBAQCBidHJfc2VhcmNoX2Rpc2FibGUodm9pZCkKIAlt dXRleF9lbnRlcigmYnRyX3NlYXJjaF9lbmFibGVkX211dGV4KTsKIAlyd19sb2NrX3hfbG9jaygm YnRyX3NlYXJjaF9sYXRjaCk7CiAKKwkvKiBEaXNhYmxlIGFjY2VzcyB0byBoYXNoIGluZGV4LCBh bHNvIHRlbGwgaGFfaW5zZXJ0X2Zvcl9mb2xkKCkKKwlzdG9wIGFkZGluZyBuZXcgbm9kZXMgdG8g aGFzaCBpbmRleCwgYnV0IHN0aWxsIGFsbG93IHVwZGF0aW5nCisJZXhpc3Rpbmcgbm9kZXMgKi8K IAlidHJfc2VhcmNoX2VuYWJsZWQgPSBGQUxTRTsKIAogCS8qIENsZWFyIGFsbCBibG9jay0+aXNf aGFzaGVkIGZsYWdzIGFuZCByZW1vdmUgYWxsIGVudHJpZXMKIAlmcm9tIGJ0cl9zZWFyY2hfc3lz LT5oYXNoX2luZGV4LiAqLwogCWJ1Zl9wb29sX2Ryb3BfaGFzaF9pbmRleCgpOwogCisJLyogaGFz aCBpbmRleCBoYXMgYmVlbiBjbGVhbmVkIHVwLCBkaXNhbGxvdyBhbnkgb3BlcmF0aW9uIHRvCisJ dGhlIGhhc2ggaW5kZXggKi8KKwlidHJfc2VhcmNoX2Z1bGx5X2Rpc2FibGVkID0gVFJVRTsKKwog CS8qIGJ0cl9zZWFyY2hfZW5hYmxlZF9tdXRleCBzaG91bGQgZ3VhcmFudGVlIHRoaXMuICovCiAJ dXRfYWQoIWJ0cl9zZWFyY2hfZW5hYmxlZCk7CiAKQEAgLTIyNSw2ICsyMzMsNyBAQCBidHJfc2Vh cmNoX2VuYWJsZSh2b2lkKQogCXJ3X2xvY2tfeF9sb2NrKCZidHJfc2VhcmNoX2xhdGNoKTsKIAog CWJ0cl9zZWFyY2hfZW5hYmxlZCA9IFRSVUU7CisJYnRyX3NlYXJjaF9mdWxseV9kaXNhYmxlZCA9 IEZBTFNFOwogCiAJcndfbG9ja194X3VubG9jaygmYnRyX3NlYXJjaF9sYXRjaCk7CiAJbXV0ZXhf ZXhpdCgmYnRyX3NlYXJjaF9lbmFibGVkX211dGV4KTsKQEAgLTEzNjMsNyArMTM3Miw3IEBAIGJ0 cl9zZWFyY2hfYnVpbGRfcGFnZV9oYXNoX2luZGV4KAogCiAJcndfbG9ja194X2xvY2soJmJ0cl9z ZWFyY2hfbGF0Y2gpOwogCi0JaWYgKFVOSVZfVU5MSUtFTFkoIWJ0cl9zZWFyY2hfZW5hYmxlZCkp IHsKKwlpZiAoVU5JVl9VTkxJS0VMWShidHJfc2VhcmNoX2Z1bGx5X2Rpc2FibGVkKSkgewogCQln b3RvIGV4aXRfZnVuYzsKIAl9CiAKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9kYl9w bHVnaW4vaGEvaGEwaGEuYycKLS0tIGEvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2hhL2hhMGhhLmMJ cmV2aWQ6c3VubnkuYmFpbnNAb3JhY2xlLmNvbS0yMDEwMDYyNTA4MTg0MS1wcHVsbmtqazFxbGF6 aDgyCisrKyBiL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9oYS9oYTBoYS5jCXJldmlkOmppbW15Lnlh bmdAb3JhY2xlLmNvbS0yMDEwMDcwMTA1MDYwMS1pNThiM2UxYzFvNzh3OG91CkBAIC0zMSw5ICsz MSw3IEBAIENyZWF0ZWQgOC8yMi8xOTk0IEhlaWtraSBUdXVyaQogI2lmZGVmIFVOSVZfREVCVUcK ICMgaW5jbHVkZSAiYnVmMGJ1Zi5oIgogI2VuZGlmIC8qIFVOSVZfREVCVUcgKi8KLSNpZmRlZiBV TklWX1NZTkNfREVCVUcKLSMgaW5jbHVkZSAiYnRyMHNlYS5oIgotI2VuZGlmIC8qIFVOSVZfU1lO Q19ERUJVRyAqLworI2luY2x1ZGUgImJ0cjBzZWEuaCIKICNpbmNsdWRlICJwYWdlMHBhZ2UuaCIK IAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovLyoqCkBAIC0xMjcsNyArMTI1LDggQEAgaGFfY2xlYXIoCiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIElu c2VydHMgYW4gZW50cnkgaW50byBhIGhhc2ggdGFibGUuIElmIGFuIGVudHJ5IHdpdGggdGhlIHNh bWUgZm9sZCBudW1iZXIKIGlzIGZvdW5kLCBpdHMgbm9kZSBpcyB1cGRhdGVkIHRvIHBvaW50IHRv IHRoZSBuZXcgZGF0YSwgYW5kIG5vIG5ldyBub2RlCi1pcyBpbnNlcnRlZC4KK2lzIGluc2VydGVk LiBJZiBidHJfc2VhcmNoX2VuYWJsZWQgaXMgc2V0IHRvIEZBTFNFLCB3ZSB3aWxsIG9ubHkgYWxs b3cKK3VwZGF0aW5nIGV4aXN0aW5nIG5vZGVzLCBidXQgbm8gbmV3IG5vZGUgaXMgYWxsb3dlZCB0 byBiZSBhZGRlZC4KIEByZXR1cm4JVFJVRSBpZiBzdWNjZWVkLCBGQUxTRSBpZiBubyBtb3JlIG1l bW9yeSBjb3VsZCBiZSBhbGxvY2F0ZWQgKi8KIFVOSVZfSU5URVJOCiBpYm9vbApAQCAtMTc0LDYg KzE3Myw3IEBAIGhhX2luc2VydF9mb3JfZm9sZF9mdW5jKAogCQkJCXByZXZfYmxvY2stPm5fcG9p bnRlcnMtLTsKIAkJCQlibG9jay0+bl9wb2ludGVycysrOwogCQkJfQorCQkJdXRfYWQoIWJ0cl9z ZWFyY2hfZnVsbHlfZGlzYWJsZWQpOwogIyBlbmRpZiAvKiAhVU5JVl9IT1RCQUNLVVAgKi8KIAog CQkJcHJldl9ub2RlLT5ibG9jayA9IGJsb2NrOwpAQCAtMTg2LDYgKzE4NiwxMyBAQCBoYV9pbnNl cnRfZm9yX2ZvbGRfZnVuYygKIAkJcHJldl9ub2RlID0gcHJldl9ub2RlLT5uZXh0OwogCX0KIAor CS8qIFdlIGFyZSBpbiB0aGUgcHJvY2VzcyBvZiBkaXNhYmxpbmcgaGFzaCBpbmRleCwgZG8gbm90 IGFkZAorCW5ldyBjaGFpbiBub2RlICovCisJaWYgKCFidHJfc2VhcmNoX2VuYWJsZWQpIHsKKwkJ dXRfYWQoIWJ0cl9zZWFyY2hfZnVsbHlfZGlzYWJsZWQpOworCQlyZXR1cm4oVFJVRSk7CisJfQor CiAJLyogV2UgaGF2ZSB0byBhbGxvY2F0ZSBhIG5ldyBjaGFpbiBub2RlICovCiAKIAlub2RlID0g bWVtX2hlYXBfYWxsb2MoaGFzaF9nZXRfaGVhcCh0YWJsZSwgZm9sZCksIHNpemVvZihoYV9ub2Rl X3QpKTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9kYl9wbHVnaW4vaGFuZGxlci9o YV9pbm5vZGIuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9oYW5kbGVyL2hhX2lubm9k Yi5jYwlyZXZpZDpzdW5ueS5iYWluc0BvcmFjbGUuY29tLTIwMTAwNjI1MDgxODQxLXBwdWxua2pr MXFsYXpoODIKKysrIGIvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2hhbmRsZXIvaGFfaW5ub2RiLmNj CXJldmlkOmppbW15LnlhbmdAb3JhY2xlLmNvbS0yMDEwMDcwMTA1MDYwMS1pNThiM2UxYzFvNzh3 OG91CkBAIC0yMjcwLDYgKzIyNzAsNyBAQCBpbm5vYmFzZV9jaGFuZ2VfYnVmZmVyaW5nX2luaXRl ZF9vazoKIAkvKiBHZXQgdGhlIGN1cnJlbnQgaGlnaCB3YXRlciBtYXJrIGZvcm1hdC4gKi8KIAlp bm5vYmFzZV9maWxlX2Zvcm1hdF9jaGVjayA9IChjaGFyKikgdHJ4X3N5c19maWxlX2Zvcm1hdF9t YXhfZ2V0KCk7CiAKKwlidHJfc2VhcmNoX2Z1bGx5X2Rpc2FibGVkID0gKCFidHJfc2VhcmNoX2Vu YWJsZWQpOwogCURCVUdfUkVUVVJOKEZBTFNFKTsKIGVycm9yOgogCURCVUdfUkVUVVJOKFRSVUUp OwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9pbmNsdWRlL2J0cjBj dXIuaCcKLS0tIGEvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2luY2x1ZGUvYnRyMGN1ci5oCXJldmlk OnN1bm55LmJhaW5zQG9yYWNsZS5jb20tMjAxMDA2MjUwODE4NDEtcHB1bG5ramsxcWxhemg4Mgor KysgYi9zdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9idHIwY3VyLmgJcmV2aWQ6amltbXku eWFuZ0BvcmFjbGUuY29tLTIwMTAwNzAxMDUwNjAxLWk1OGIzZTFjMW83OHc4b3UKQEAgLTU3MCw3 ICs1NzAsNyBAQCBidHJfY29weV9leHRlcm5hbGx5X3N0b3JlZF9maWVsZF9wcmVmaXgoCiAJdWxp bnQJCWxvY2FsX2xlbik7LyohPCBpbjogbGVuZ3RoIG9mIGRhdGEsIGluIGJ5dGVzICovCiAvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8vKioKIENvcGllcyBhbiBleHRlcm5hbGx5IHN0b3JlZCBmaWVsZCBvZiBhIHJlY29y ZCB0byBtZW0gaGVhcC4KLUByZXR1cm4JdGhlIGZpZWxkIGNvcGllZCB0byBoZWFwICovCitAcmV0 dXJuCXRoZSBmaWVsZCBjb3BpZWQgdG8gaGVhcCwgb3IgTlVMTCBpZiB0aGUgZmllbGQgaXMgaW5j b21wbGV0ZSAqLwogVU5JVl9JTlRFUk4KIGJ5dGUqCiBidHJfcmVjX2NvcHlfZXh0ZXJuYWxseV9z dG9yZWRfZmllbGQoCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2lu Y2x1ZGUvYnRyMHNlYS5oJwotLS0gYS9zdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9idHIw c2VhLmgJcmV2aWQ6c3VubnkuYmFpbnNAb3JhY2xlLmNvbS0yMDEwMDYyNTA4MTg0MS1wcHVsbmtq azFxbGF6aDgyCisrKyBiL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9pbmNsdWRlL2J0cjBzZWEuaAly ZXZpZDpqaW1teS55YW5nQG9yYWNsZS5jb20tMjAxMDA3MDEwNTA2MDEtaTU4YjNlMWMxbzc4dzhv dQpAQCAtMTkwLDcgKzE5MCwxMyBAQCBidHJfc2VhcmNoX3ZhbGlkYXRlKHZvaWQpOwogCiAvKiog RmxhZzogaGFzIHRoZSBzZWFyY2ggc3lzdGVtIGJlZW4gZW5hYmxlZD8KIFByb3RlY3RlZCBieSBi dHJfc2VhcmNoX2xhdGNoIGFuZCBidHJfc2VhcmNoX2VuYWJsZWRfbXV0ZXguICovCi1leHRlcm4g Y2hhciBidHJfc2VhcmNoX2VuYWJsZWQ7CitleHRlcm4gY2hhcglidHJfc2VhcmNoX2VuYWJsZWQ7 CisKKy8qKiBGbGFnOiB3aGV0aGVyIHRoZSBzZWFyY2ggc3lzdGVtIGhhcyBjb21wbGV0ZWQgaXRz IGRpc2FibGluZyBwcm9jZXNzLAorSXQgaXMgc2V0IHRvIFRSVUUgcmlnaHQgYWZ0ZXIgYnVmX3Bv b2xfZHJvcF9oYXNoX2luZGV4KCkgaW4KK2J0cl9zZWFyY2hfZGlzYWJsZSgpLCBpbmRpY2F0aW5n IGhhc2ggaW5kZXggZW50cmllcyBhcmUgY2xlYW5lZCB1cC4KK1Byb3RlY3RlZCBieSBidHJfc2Vh cmNoX2xhdGNoIGFuZCBidHJfc2VhcmNoX2VuYWJsZWRfbXV0ZXguICovCitleHRlcm4gaWJvb2wJ YnRyX3NlYXJjaF9mdWxseV9kaXNhYmxlZDsKIAogLyoqIFRoZSBzZWFyY2ggaW5mbyBzdHJ1Y3Qg aW4gYW4gaW5kZXggKi8KIHN0cnVjdCBidHJfc2VhcmNoX3N0cnVjdHsKCj09PSBtb2RpZmllZCBm aWxlICdzdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9yb3cwbXlzcWwuaCcKLS0tIGEvc3Rv cmFnZS9pbm5vZGJfcGx1Z2luL2luY2x1ZGUvcm93MG15c3FsLmgJcmV2aWQ6c3VubnkuYmFpbnNA b3JhY2xlLmNvbS0yMDEwMDYyNTA4MTg0MS1wcHVsbmtqazFxbGF6aDgyCisrKyBiL3N0b3JhZ2Uv aW5ub2RiX3BsdWdpbi9pbmNsdWRlL3JvdzBteXNxbC5oCXJldmlkOmppbW15LnlhbmdAb3JhY2xl LmNvbS0yMDEwMDcwMTA1MDYwMS1pNThiM2UxYzFvNzh3OG91CkBAIC02MjIsNyArNjIyLDExIEBA IHN0cnVjdCByb3dfcHJlYnVpbHRfc3RydWN0IHsKIAkJCQkJdGhlIHNlY29uZGFyeSBpbmRleCwg dGhlbiB0aGlzIGlzCiAJCQkJCXNldCB0byBUUlVFICovCiAJdW5zaWduZWQJdGVtcGxfY29udGFp bnNfYmxvYjoxOy8qITwgVFJVRSBpZiB0aGUgdGVtcGxhdGUgY29udGFpbnMKLQkJCQkJQkxPQiBj b2x1bW4ocykgKi8KKwkJCQkJYSBjb2x1bW4gd2l0aCBEQVRBX0JMT0IgPT0KKwkJCQkJZ2V0X2lu bm9iYXNlX3R5cGVfZnJvbV9teXNxbF90eXBlKCk7CisJCQkJCW5vdCB0byBiZSBjb25mdXNlZCB3 aXRoIElubm9EQgorCQkJCQlleHRlcm5hbGx5IHN0b3JlZCBjb2x1bW5zCisJCQkJCShWQVJDSEFS IGNhbiBiZSBvZmYtcGFnZSB0b28pICovCiAJbXlzcWxfcm93X3RlbXBsX3QqIG15c3FsX3RlbXBs YXRlOy8qITwgdGVtcGxhdGUgdXNlZCB0byB0cmFuc2Zvcm0KIAkJCQkJcm93cyBmYXN0IGJldHdl ZW4gTXlTUUwgYW5kIElubm9iYXNlCiAJCQkJCWZvcm1hdHM7IG1lbW9yeSBmb3IgdGhpcyB0ZW1w bGF0ZQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9yb3cvcm93MG1l cmdlLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9yb3cvcm93MG1lcmdlLmMJcmV2aWQ6 c3VubnkuYmFpbnNAb3JhY2xlLmNvbS0yMDEwMDYyNTA4MTg0MS1wcHVsbmtqazFxbGF6aDgyCisr KyBiL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9yb3cvcm93MG1lcmdlLmMJcmV2aWQ6amltbXkueWFu Z0BvcmFjbGUuY29tLTIwMTAwNzAxMDUwNjAxLWk1OGIzZTFjMW83OHc4b3UKQEAgLTE3ODAsNiAr MTc4MCwxMSBAQCByb3dfbWVyZ2VfY29weV9ibG9icygKIAkJKGJlbG93KS4gKi8KIAkJZGF0YSA9 IGJ0cl9yZWNfY29weV9leHRlcm5hbGx5X3N0b3JlZF9maWVsZCgKIAkJCW1yZWMsIG9mZnNldHMs IHppcF9zaXplLCBpLCAmbGVuLCBoZWFwKTsKKwkJLyogQmVjYXVzZSB3ZSBoYXZlIGxvY2tlZCB0 aGUgdGFibGUsIGFueSByZWNvcmRzCisJCXdyaXR0ZW4gYnkgaW5jb21wbGV0ZSB0cmFuc2FjdGlv bnMgbXVzdCBoYXZlIGJlZW4KKwkJcm9sbGVkIGJhY2sgYWxyZWFkeS4gVGhlcmUgbXVzdCBub3Qg YmUgYW55IGluY29tcGxldGUKKwkJQkxPQiBjb2x1bW5zLiAqLworCQl1dF9hKGRhdGEpOwogCiAJ CWRmaWVsZF9zZXRfZGF0YShmaWVsZCwgZGF0YSwgbGVuKTsKIAl9Cgo9PT0gbW9kaWZpZWQgZmls ZSAnc3RvcmFnZS9pbm5vZGJfcGx1Z2luL3Jvdy9yb3cwcm93LmMnCi0tLSBhL3N0b3JhZ2UvaW5u b2RiX3BsdWdpbi9yb3cvcm93MHJvdy5jCXJldmlkOnN1bm55LmJhaW5zQG9yYWNsZS5jb20tMjAx MDA2MjUwODE4NDEtcHB1bG5ramsxcWxhemg4MgorKysgYi9zdG9yYWdlL2lubm9kYl9wbHVnaW4v cm93L3JvdzByb3cuYwlyZXZpZDpqaW1teS55YW5nQG9yYWNsZS5jb20tMjAxMDA3MDEwNTA2MDEt aTU4YjNlMWMxbzc4dzhvdQpAQCAtMjk0LDcgKzI5NCwxMyBAQCByb3dfYnVpbGQoCiAKIAl1dF9h ZChkdHVwbGVfY2hlY2tfdHlwZWQocm93KSk7CiAKLQlpZiAoaikgeworCWlmICghZXh0KSB7CisJ CS8qIFJFRFVOREFOVCBhbmQgQ09NUEFDVCBmb3JtYXRzIHN0b3JlIGEgbG9jYWwKKwkJNzY4LWJ5 dGUgcHJlZml4IG9mIGVhY2ggZXh0ZXJuYWxseSBzdG9yZWQKKwkJY29sdW1uLiBObyBjYWNoZSBp cyBuZWVkZWQuICovCisJCXV0X2FkKGRpY3RfdGFibGVfZ2V0X2Zvcm1hdChpbmRleC0+dGFibGUp CisJCSAgICAgIDwgRElDVF9URl9GT1JNQVRfWklQKTsKKwl9IGVsc2UgaWYgKGopIHsKIAkJKmV4 dCA9IHJvd19leHRfY3JlYXRlKGosIGV4dF9jb2xzLCByb3csCiAJCQkJICAgICAgZGljdF90YWJs ZV96aXBfc2l6ZShpbmRleC0+dGFibGUpLAogCQkJCSAgICAgIGhlYXApOwoKPT09IG1vZGlmaWVk IGZpbGUgJ3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9yb3cvcm93MHNlbC5jJwotLS0gYS9zdG9yYWdl L2lubm9kYl9wbHVnaW4vcm93L3JvdzBzZWwuYwlyZXZpZDpzdW5ueS5iYWluc0BvcmFjbGUuY29t LTIwMTAwNjI1MDgxODQxLXBwdWxua2prMXFsYXpoODIKKysrIGIvc3RvcmFnZS9pbm5vZGJfcGx1 Z2luL3Jvdy9yb3cwc2VsLmMJcmV2aWQ6amltbXkueWFuZ0BvcmFjbGUuY29tLTIwMTAwNzAxMDUw NjAxLWk1OGIzZTFjMW83OHc4b3UKQEAgLTQxNiw3ICs0MTYsNyBAQCByb3dfc2VsX2ZldGNoX2Nv bHVtbnMoCiAJCQkJCQkJICAgICAgZmllbGRfbm8pKSkgewogCiAJCQkJLyogQ29weSBhbiBleHRl cm5hbGx5IHN0b3JlZCBmaWVsZCB0byB0aGUKLQkJCQl0ZW1wb3JhcnkgaGVhcCAqLworCQkJCXRl bXBvcmFyeSBoZWFwLCBpZiBwb3NzaWJsZS4gKi8KIAogCQkJCWhlYXAgPSBtZW1faGVhcF9jcmVh dGUoMSk7CiAKQEAgLTQyNSw2ICs0MjUsMTcgQEAgcm93X3NlbF9mZXRjaF9jb2x1bW5zKAogCQkJ CQlkaWN0X3RhYmxlX3ppcF9zaXplKGluZGV4LT50YWJsZSksCiAJCQkJCWZpZWxkX25vLCAmbGVu LCBoZWFwKTsKIAorCQkJCS8qIGRhdGEgPT0gTlVMTCBtZWFucyB0aGF0IHRoZQorCQkJCWV4dGVy bmFsbHkgc3RvcmVkIGZpZWxkIHdhcyBub3QKKwkJCQl3cml0dGVuIHlldC4gVGhpcyByZWNvcmQK KwkJCQlzaG91bGQgb25seSBiZSBzZWVuIGJ5CisJCQkJcmVjdl9yZWNvdmVyeV9yb2xsYmFja19h Y3RpdmUoKSBvciBhbnkKKwkJCQlUUlhfSVNPX1JFQURfVU5DT01NSVRURUQKKwkJCQl0cmFuc2Fj dGlvbnMuIFRoZSBJbm5vREIgU1FMIHBhcnNlcgorCQkJCSh0aGUgc29sZSBjYWxsZXIgb2YgdGhp cyBmdW5jdGlvbikKKwkJCQlkb2VzIG5vdCBpbXBsZW1lbnQgUkVBRCBVTkNPTU1JVFRFRCwKKwkJ CQlhbmQgaXQgaXMgbm90IGludm9sdmVkIGR1cmluZyByb2xsYmFjay4gKi8KKwkJCQl1dF9hKGRh dGEpOwogCQkJCXV0X2EobGVuICE9IFVOSVZfU1FMX05VTEwpOwogCiAJCQkJbmVlZHNfY29weSA9 IFRSVUU7CkBAIC05MjYsNiArOTM3LDcgQEAgcm93X3NlbF9nZXRfY2x1c3RfcmVjKAogCXdoZW4g cGxhbi0+Y2x1c3RfcGN1ciB3YXMgcG9zaXRpb25lZC4gIFRoZSBsYXRjaCB3aWxsIG5vdCBiZQog CXJlbGVhc2VkIHVudGlsIG10cl9jb21taXQobXRyKS4gKi8KIAorCXV0X2FkKCFyZWNfZ2V0X2Rl bGV0ZWRfZmxhZyhjbHVzdF9yZWMsIHJlY19vZmZzX2NvbXAob2Zmc2V0cykpKTsKIAlyb3dfc2Vs X2ZldGNoX2NvbHVtbnMoaW5kZXgsIGNsdXN0X3JlYywgb2Zmc2V0cywKIAkJCSAgICAgIFVUX0xJ U1RfR0VUX0ZJUlNUKHBsYW4tPmNvbHVtbnMpKTsKIAkqb3V0X3JlYyA9IGNsdXN0X3JlYzsKQEAg LTE2MjgsNiArMTY0MCwxMyBAQCBza2lwX2xvY2s6CiAJCQkJfQogCiAJCQkJaWYgKG9sZF92ZXJz ID09IE5VTEwpIHsKKwkJCQkJLyogVGhlIHJlY29yZCBkb2VzIG5vdCBleGlzdAorCQkJCQlpbiBv dXIgcmVhZCB2aWV3LiBTa2lwIGl0LCBidXQKKwkJCQkJZmlyc3QgYXR0ZW1wdCB0byBkZXRlcm1p bmUKKwkJCQkJd2hldGhlciB0aGUgaW5kZXggc2VnbWVudCB3ZQorCQkJCQlhcmUgc2VhcmNoaW5n IHRocm91Z2ggaGFzIGJlZW4KKwkJCQkJZXhoYXVzdGVkLiAqLworCiAJCQkJCW9mZnNldHMgPSBy ZWNfZ2V0X29mZnNldHMoCiAJCQkJCQlyZWMsIGluZGV4LCBvZmZzZXRzLAogCQkJCQkJVUxJTlRf VU5ERUZJTkVELCAmaGVhcCk7CkBAIC0yNjQ3LDkgKzI2NjYsOCBAQCBDb252ZXJ0IGEgcm93IGlu IHRoZSBJbm5vYmFzZSBmb3JtYXQgdG8gCiBOb3RlIHRoYXQgdGhlIHRlbXBsYXRlIGluIHByZWJ1 aWx0IG1heSBhZHZpc2UgdXMgdG8gY29weSBvbmx5IGEgZmV3CiBjb2x1bW5zIHRvIG15c3FsX3Jl Yywgb3RoZXIgY29sdW1ucyBhcmUgbGVmdCBibGFuay4gQWxsIGNvbHVtbnMgbWF5IG5vdAogYmUg bmVlZGVkIGluIHRoZSBxdWVyeS4KLUByZXR1cm4gVFJVRSBpZiBzdWNjZXNzLCBGQUxTRSBpZiBj b3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciBhIEJMT0IKLSh0aG91Z2ggd2UgbWF5IGFsc28g YXNzZXJ0IGluIHRoYXQgY2FzZSkgKi8KLXN0YXRpYworQHJldHVybiBUUlVFIG9uIHN1Y2Nlc3Ms IEZBTFNFIGlmIG5vdCBhbGwgY29sdW1ucyBjb3VsZCBiZSByZXRyaWV2ZWQgKi8KK3N0YXRpYyBf X2F0dHJpYnV0ZV9fKCh3YXJuX3VudXNlZF9yZXN1bHQpKQogaWJvb2wKIHJvd19zZWxfc3RvcmVf bXlzcWxfcmVjKAogLyo9PT09PT09PT09PT09PT09PT09PSovCkBAIC0yNjcyLDYgKzI2OTAsNyBA QCByb3dfc2VsX3N0b3JlX215c3FsX3JlYygKIAl1dF9hZChwcmVidWlsdC0+bXlzcWxfdGVtcGxh dGUpOwogCXV0X2FkKHByZWJ1aWx0LT5kZWZhdWx0X3JlYyk7CiAJdXRfYWQocmVjX29mZnNfdmFs aWRhdGUocmVjLCBOVUxMLCBvZmZzZXRzKSk7CisJdXRfYWQoIXJlY19nZXRfZGVsZXRlZF9mbGFn KHJlYywgcmVjX29mZnNfY29tcChvZmZzZXRzKSkpOwogCiAJaWYgKFVOSVZfTElLRUxZX05VTEwo cHJlYnVpbHQtPmJsb2JfaGVhcCkpIHsKIAkJbWVtX2hlYXBfZnJlZShwcmVidWlsdC0+YmxvYl9o ZWFwKTsKQEAgLTI3MTksNiArMjczOCwyMSBAQCByb3dfc2VsX3N0b3JlX215c3FsX3JlYygKIAkJ CQlkaWN0X3RhYmxlX3ppcF9zaXplKHByZWJ1aWx0LT50YWJsZSksCiAJCQkJdGVtcGwtPnJlY19m aWVsZF9ubywgJmxlbiwgaGVhcCk7CiAKKwkJCWlmIChVTklWX1VOTElLRUxZKCFkYXRhKSkgewor CQkJCS8qIFRoZSBleHRlcm5hbGx5IHN0b3JlZCBmaWVsZAorCQkJCXdhcyBub3Qgd3JpdHRlbiB5 ZXQuIFRoaXMKKwkJCQlyZWNvcmQgc2hvdWxkIG9ubHkgYmUgc2VlbiBieQorCQkJCXJlY3ZfcmVj b3Zlcnlfcm9sbGJhY2tfYWN0aXZlKCkKKwkJCQlvciBhbnkgVFJYX0lTT19SRUFEX1VOQ09NTUlU VEVECisJCQkJdHJhbnNhY3Rpb25zLiAqLworCisJCQkJaWYgKGV4dGVybl9maWVsZF9oZWFwKSB7 CisJCQkJCW1lbV9oZWFwX2ZyZWUoZXh0ZXJuX2ZpZWxkX2hlYXApOworCQkJCX0KKworCQkJCXJl dHVybihGQUxTRSk7CisJCQl9CisKIAkJCXV0X2EobGVuICE9IFVOSVZfU1FMX05VTEwpOwogCQl9 IGVsc2UgewogCQkJLyogRmllbGQgaXMgc3RvcmVkIGluIHRoZSByb3cuICovCkBAIC0zMTM2LDkg KzMxNzAsMTAgQEAgcm93X3NlbF9wb3BfY2FjaGVkX3Jvd19mb3JfbXlzcWwoCiB9CiAKIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8vKioKLVB1c2hlcyBhIHJvdyBmb3IgTXlTUUwgdG8gdGhlIGZldGNoIGNhY2hlLiAq LwotVU5JVl9JTkxJTkUKLXZvaWQKK1B1c2hlcyBhIHJvdyBmb3IgTXlTUUwgdG8gdGhlIGZldGNo IGNhY2hlLgorQHJldHVybiBUUlVFIG9uIHN1Y2Nlc3MsIEZBTFNFIGlmIHRoZSByZWNvcmQgY29u dGFpbnMgaW5jb21wbGV0ZSBCTE9CcyAqLworVU5JVl9JTkxJTkUgX19hdHRyaWJ1dGVfXygod2Fy bl91bnVzZWRfcmVzdWx0KSkKK2lib29sCiByb3dfc2VsX3B1c2hfY2FjaGVfcm93X2Zvcl9teXNx bCgKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCXJvd19wcmVidWlsdF90Kglw cmVidWlsdCwJLyohPCBpbjogcHJlYnVpbHQgc3RydWN0ICovCkBAIC0zMTgwLDEwICszMjE1LDEx IEBAIHJvd19zZWxfcHVzaF9jYWNoZV9yb3dfZm9yX215c3FsKAogCQkJCSAgcHJlYnVpbHQtPmZl dGNoX2NhY2hlWwogCQkJCQkgIHByZWJ1aWx0LT5uX2ZldGNoX2NhY2hlZF0sCiAJCQkJICBwcmVi dWlsdCwgcmVjLCBvZmZzZXRzKSkpIHsKLQkJdXRfZXJyb3I7CisJCXJldHVybihGQUxTRSk7CiAJ fQogCiAJcHJlYnVpbHQtPm5fZmV0Y2hfY2FjaGVkKys7CisJcmV0dXJuKFRSVUUpOwogfQogCiAv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLy8qKgpAQCAtMzU3OCwxMSArMzYxNCwyMSBAQCByb3dfc2VhcmNoX2Zvcl9t eXNxbCgKIAogCQkJCWlmICghcm93X3NlbF9zdG9yZV9teXNxbF9yZWMoYnVmLCBwcmVidWlsdCwK IAkJCQkJCQkgICAgIHJlYywgb2Zmc2V0cykpIHsKLQkJCQkJZXJyID0gREJfVE9PX0JJR19SRUNP UkQ7CisJCQkJCS8qIE9ubHkgZnJlc2ggaW5zZXJ0cyBtYXkgY29udGFpbgorCQkJCQlpbmNvbXBs ZXRlIGV4dGVybmFsbHkgc3RvcmVkCisJCQkJCWNvbHVtbnMuIFByZXRlbmQgdGhhdCBzdWNoCisJ CQkJCXJlY29yZHMgZG8gbm90IGV4aXN0LiBTdWNoCisJCQkJCXJlY29yZHMgbWF5IG9ubHkgYmUg YWNjZXNzZWQKKwkJCQkJYXQgdGhlIFJFQUQgVU5DT01NSVRURUQKKwkJCQkJaXNvbGF0aW9uIGxl dmVsIG9yIHdoZW4KKwkJCQkJcm9sbGluZyBiYWNrIGEgcmVjb3ZlcmVkCisJCQkJCXRyYW5zYWN0 aW9uLiBSb2xsYmFjayBoYXBwZW5zCisJCQkJCWF0IGEgbG93ZXIgbGV2ZWwsIG5vdCBoZXJlLiAq LworCQkJCQl1dF9hKHRyeC0+aXNvbGF0aW9uX2xldmVsCisJCQkJCSAgICAgPT0gVFJYX0lTT19S RUFEX1VOQ09NTUlUVEVEKTsKIAotCQkJCQkvKiBXZSBsZXQgdGhlIG1haW4gbG9vcCB0byBkbyB0 aGUKLQkJCQkJZXJyb3IgaGFuZGxpbmcgKi8KLQkJCQkJZ290byBzaG9ydGN1dF9mYWlsc190b29f YmlnX3JlYzsKKwkJCQkJLyogUHJvY2VlZCBhcyBpbiBjYXNlIFNFTF9SRVRSWS4gKi8KKwkJCQkJ YnJlYWs7CiAJCQkJfQogCiAJCQkJbXRyX2NvbW1pdCgmbXRyKTsKQEAgLTM2MjIsNyArMzY2OCw3 IEBAIHJlbGVhc2Vfc2VhcmNoX2xhdGNoX2lmX25lZWRlZDoKIAkJCWRlZmF1bHQ6CiAJCQkJdXRf YWQoMCk7CiAJCQl9Ci1zaG9ydGN1dF9mYWlsc190b29fYmlnX3JlYzoKKwogCQkJbXRyX2NvbW1p dCgmbXRyKTsKIAkJCW10cl9zdGFydCgmbXRyKTsKIAkJfQpAQCAtNDM1Nyw5ICs0NDAzLDE4IEBA IHJlcXVpcmVzX2NsdXN0X3JlYzoKIAkJbm90IGNhY2hlIHJvd3MgYmVjYXVzZSB0aGVyZSB0aGUg Y3Vyc29yIGlzIGEgc2Nyb2xsYWJsZQogCQljdXJzb3IuICovCiAKLQkJcm93X3NlbF9wdXNoX2Nh Y2hlX3Jvd19mb3JfbXlzcWwocHJlYnVpbHQsIHJlc3VsdF9yZWMsCi0JCQkJCQkgb2Zmc2V0cyk7 Ci0JCWlmIChwcmVidWlsdC0+bl9mZXRjaF9jYWNoZWQgPT0gTVlTUUxfRkVUQ0hfQ0FDSEVfU0la RSkgeworCQlpZiAoIXJvd19zZWxfcHVzaF9jYWNoZV9yb3dfZm9yX215c3FsKHByZWJ1aWx0LCBy ZXN1bHRfcmVjLAorCQkJCQkJICAgICAgb2Zmc2V0cykpIHsKKwkJCS8qIE9ubHkgZnJlc2ggaW5z ZXJ0cyBtYXkgY29udGFpbiBpbmNvbXBsZXRlCisJCQlleHRlcm5hbGx5IHN0b3JlZCBjb2x1bW5z LiBQcmV0ZW5kIHRoYXQgc3VjaAorCQkJcmVjb3JkcyBkbyBub3QgZXhpc3QuIFN1Y2ggcmVjb3Jk cyBtYXkgb25seSBiZQorCQkJYWNjZXNzZWQgYXQgdGhlIFJFQUQgVU5DT01NSVRURUQgaXNvbGF0 aW9uCisJCQlsZXZlbCBvciB3aGVuIHJvbGxpbmcgYmFjayBhIHJlY292ZXJlZAorCQkJdHJhbnNh Y3Rpb24uIFJvbGxiYWNrIGhhcHBlbnMgYXQgYSBsb3dlcgorCQkJbGV2ZWwsIG5vdCBoZXJlLiAq LworCQkJdXRfYSh0cngtPmlzb2xhdGlvbl9sZXZlbCA9PSBUUlhfSVNPX1JFQURfVU5DT01NSVRU RUQpOworCQl9IGVsc2UgaWYgKHByZWJ1aWx0LT5uX2ZldGNoX2NhY2hlZAorCQkJICAgPT0gTVlT UUxfRkVUQ0hfQ0FDSEVfU0laRSkgewogCiAJCQlnb3RvIGdvdF9yb3c7CiAJCX0KQEAgLTQzNzUs OSArNDQzMCwxNyBAQCByZXF1aXJlc19jbHVzdF9yZWM6CiAJCX0gZWxzZSB7CiAJCQlpZiAoIXJv d19zZWxfc3RvcmVfbXlzcWxfcmVjKGJ1ZiwgcHJlYnVpbHQsCiAJCQkJCQkgICAgIHJlc3VsdF9y ZWMsIG9mZnNldHMpKSB7Ci0JCQkJZXJyID0gREJfVE9PX0JJR19SRUNPUkQ7Ci0KLQkJCQlnb3Rv IGxvY2tfd2FpdF9vcl9lcnJvcjsKKwkJCQkvKiBPbmx5IGZyZXNoIGluc2VydHMgbWF5IGNvbnRh aW4KKwkJCQlpbmNvbXBsZXRlIGV4dGVybmFsbHkgc3RvcmVkCisJCQkJY29sdW1ucy4gUHJldGVu ZCB0aGF0IHN1Y2ggcmVjb3JkcyBkbworCQkJCW5vdCBleGlzdC4gU3VjaCByZWNvcmRzIG1heSBv bmx5IGJlCisJCQkJYWNjZXNzZWQgYXQgdGhlIFJFQUQgVU5DT01NSVRURUQKKwkJCQlpc29sYXRp b24gbGV2ZWwgb3Igd2hlbiByb2xsaW5nIGJhY2sgYQorCQkJCXJlY292ZXJlZCB0cmFuc2FjdGlv bi4gUm9sbGJhY2sKKwkJCQloYXBwZW5zIGF0IGEgbG93ZXIgbGV2ZWwsIG5vdCBoZXJlLiAqLwor CQkJCXV0X2EodHJ4LT5pc29sYXRpb25fbGV2ZWwKKwkJCQkgICAgID09IFRSWF9JU09fUkVBRF9V TkNPTU1JVFRFRCk7CisJCQkJZ290byBuZXh0X3JlYzsKIAkJCX0KIAkJfQogCgo9PT0gbW9kaWZp ZWQgZmlsZSAnc3RvcmFnZS9pbm5vZGJfcGx1Z2luL3Jvdy9yb3cwdW5kby5jJwotLS0gYS9zdG9y YWdlL2lubm9kYl9wbHVnaW4vcm93L3JvdzB1bmRvLmMJcmV2aWQ6c3VubnkuYmFpbnNAb3JhY2xl LmNvbS0yMDEwMDYyNTA4MTg0MS1wcHVsbmtqazFxbGF6aDgyCisrKyBiL3N0b3JhZ2UvaW5ub2Ri X3BsdWdpbi9yb3cvcm93MHVuZG8uYwlyZXZpZDpqaW1teS55YW5nQG9yYWNsZS5jb20tMjAxMDA3 MDEwNTA2MDEtaTU4YjNlMWMxbzc4dzhvdQpAQCAtMTk5LDggKzE5OSwyNCBAQCByb3dfdW5kb19z ZWFyY2hfY2x1c3RfdG9fcGN1cigKIAogCQlyZXQgPSBGQUxTRTsKIAl9IGVsc2UgeworCQlyb3df ZXh0X3QqKglleHQ7CisKKwkJaWYgKGRpY3RfdGFibGVfZ2V0X2Zvcm1hdChub2RlLT50YWJsZSkg Pj0gRElDVF9URl9GT1JNQVRfWklQKSB7CisJCQkvKiBJbiBEWU5BTUlDIG9yIENPTVBSRVNTRUQg Zm9ybWF0LCB0aGVyZSBpcworCQkJbm8gcHJlZml4IG9mIGV4dGVybmFsbHkgc3RvcmVkIGNvbHVt bnMgaW4gdGhlCisJCQljbHVzdGVyZWQgaW5kZXggcmVjb3JkLiBCdWlsZCBhIGNhY2hlIG9mCisJ CQljb2x1bW4gcHJlZml4ZXMuICovCisJCQlleHQgPSAmbm9kZS0+ZXh0OworCQl9IGVsc2Ugewor CQkJLyogUkVEVU5EQU5UIGFuZCBDT01QQUNUIGZvcm1hdHMgc3RvcmUgYSBsb2NhbAorCQkJNzY4 LWJ5dGUgcHJlZml4IG9mIGVhY2ggZXh0ZXJuYWxseSBzdG9yZWQKKwkJCWNvbHVtbi4gTm8gY2Fj aGUgaXMgbmVlZGVkLiAqLworCQkJZXh0ID0gTlVMTDsKKwkJCW5vZGUtPmV4dCA9IE5VTEw7CisJ CX0KKwogCQlub2RlLT5yb3cgPSByb3dfYnVpbGQoUk9XX0NPUFlfREFUQSwgY2x1c3RfaW5kZXgs IHJlYywKLQkJCQkgICAgICBvZmZzZXRzLCBOVUxMLCAmbm9kZS0+ZXh0LCBub2RlLT5oZWFwKTsK KwkJCQkgICAgICBvZmZzZXRzLCBOVUxMLCBleHQsIG5vZGUtPmhlYXApOwogCQlpZiAobm9kZS0+ dXBkYXRlKSB7CiAJCQlub2RlLT51bmRvX3JvdyA9IGR0dXBsZV9jb3B5KG5vZGUtPnJvdywgbm9k ZS0+aGVhcCk7CiAJCQlyb3dfdXBkX3JlcGxhY2Uobm9kZS0+dW5kb19yb3csICZub2RlLT51bmRv X2V4dCwKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9kYl9wbHVnaW4vcm93L3JvdzB1 cGQuYycKLS0tIGEvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL3Jvdy9yb3cwdXBkLmMJcmV2aWQ6c3Vu bnkuYmFpbnNAb3JhY2xlLmNvbS0yMDEwMDYyNTA4MTg0MS1wcHVsbmtqazFxbGF6aDgyCisrKyBi L3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9yb3cvcm93MHVwZC5jCXJldmlkOmppbW15LnlhbmdAb3Jh Y2xlLmNvbS0yMDEwMDcwMTA1MDYwMS1pNThiM2UxYzFvNzh3OG91CkBAIC0xMzk4LDYgKzEzOTgs NyBAQCByb3dfdXBkX3N0b3JlX3JvdygKIAlkaWN0X2luZGV4X3QqCWNsdXN0X2luZGV4OwogCXJl Y190KgkJcmVjOwogCW1lbV9oZWFwX3QqCWhlYXAJCT0gTlVMTDsKKwlyb3dfZXh0X3QqKglleHQ7 CiAJdWxpbnQJCW9mZnNldHNfW1JFQ19PRkZTX05PUk1BTF9TSVpFXTsKIAljb25zdCB1bGludCoJ b2Zmc2V0czsKIAlyZWNfb2Zmc19pbml0KG9mZnNldHNfKTsKQEAgLTE0MTQsOCArMTQxNSwyMiBA QCByb3dfdXBkX3N0b3JlX3JvdygKIAogCW9mZnNldHMgPSByZWNfZ2V0X29mZnNldHMocmVjLCBj bHVzdF9pbmRleCwgb2Zmc2V0c18sCiAJCQkJICBVTElOVF9VTkRFRklORUQsICZoZWFwKTsKKwor CWlmIChkaWN0X3RhYmxlX2dldF9mb3JtYXQobm9kZS0+dGFibGUpID49IERJQ1RfVEZfRk9STUFU X1pJUCkgeworCQkvKiBJbiBEWU5BTUlDIG9yIENPTVBSRVNTRUQgZm9ybWF0LCB0aGVyZSBpcyBu byBwcmVmaXgKKwkJb2YgZXh0ZXJuYWxseSBzdG9yZWQgY29sdW1ucyBpbiB0aGUgY2x1c3RlcmVk IGluZGV4CisJCXJlY29yZC4gQnVpbGQgYSBjYWNoZSBvZiBjb2x1bW4gcHJlZml4ZXMuICovCisJ CWV4dCA9ICZub2RlLT5leHQ7CisJfSBlbHNlIHsKKwkJLyogUkVEVU5EQU5UIGFuZCBDT01QQUNU IGZvcm1hdHMgc3RvcmUgYSBsb2NhbAorCQk3NjgtYnl0ZSBwcmVmaXggb2YgZWFjaCBleHRlcm5h bGx5IHN0b3JlZCBjb2x1bW4uCisJCU5vIGNhY2hlIGlzIG5lZWRlZC4gKi8KKwkJZXh0ID0gTlVM TDsKKwkJbm9kZS0+ZXh0ID0gTlVMTDsKKwl9CisKIAlub2RlLT5yb3cgPSByb3dfYnVpbGQoUk9X X0NPUFlfREFUQSwgY2x1c3RfaW5kZXgsIHJlYywgb2Zmc2V0cywKLQkJCSAgICAgIE5VTEwsICZu b2RlLT5leHQsIG5vZGUtPmhlYXApOworCQkJICAgICAgTlVMTCwgZXh0LCBub2RlLT5oZWFwKTsK IAlpZiAobm9kZS0+aXNfZGVsZXRlKSB7CiAJCW5vZGUtPnVwZF9yb3cgPSBOVUxMOwogCQlub2Rl LT51cGRfZXh0ID0gTlVMTDsKCg== --===============4931974393419898229== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/jimmy.yang@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: jimmy.yang@stripped # target_branch: file:///usr/local/devel/bzrroot/server/mysql-5.1-\ # innodb-pb2/ # testament_sha1: 0a8649aaca3d6d9fe18f5efd4188f4fad99fee71 # timestamp: 2010-07-03 21:17:51 +0300 # base_revision_id: sunny.bains@stripped\ # ppulnkjk1qlazh82 # # Begin bundle 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 cA8dfIhj/gaYbGN/4u5IpwoSAJkrFaA= --===============4931974393419898229==--