From: Ole John Aske Date: March 23 2011 1:15pm Subject: bzr push into mysql-5.1-telco-7.0 branch (ole.john.aske:4251 to 4252) Bug#11764737 List-Archive: http://lists.mysql.com/commits/133636 X-Bug: 11764737 Message-Id: <20110323131544.3EA93218@fimafeng09.norway.sun.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDQyNTIgT2xlIEpvaG4gQXNrZQkyMDExLTAzLTIzCiAgICAgIENoZXJyeSBwaWNrZWQgJiBiYWNr cG9ydGVkIGZpeCBmb3IgYnVnIzExNzY0NzM3OgogICAgICAgJ09wdGltaXplciBpcyBvdmVybHkg ZWFnZXIgdG8gcmVxdWVzdCBvcmRlcmVkIGFjY2Vzcy4nCiAgICAgIAogICAgICAgIDEpICBFbnN1 cmUgdGhhdCBKT0lOX1RBQjo6c29ydGVkIGFuZCBRVUlDS19TRUxFQ1RfSTo6c29ydGVkIGlzCiAg ICAgICAgICAgIHJlcXVlc3RlZCBvbmx5IHdoZW4gc3RyaWN0IG9yZGVyaW5nIGlzIHJlcXVpcmVk IGZyb20gdGhlIAogICAgICAgICAgICBoYW5kbGVyIC0gRWl0aGVyIGFzIGEgcmVzdWx0IG9mIHRo ZSBxdWVyeSBzcGVjaWZ5aW5nIAogICAgICAgICAgICBPUkRFUi9HUk9VUCBCWSwgb3IgdGhlIGhh bmRsZXIgYmVpbmcgYSBzb3VyY2UgaW4gYSAKICAgICAgICAgICAgUVVJQ0sgYWNjZXNzIG1ldGhv ZCB3aGljaCByZXF1aXJlIHRoZSBzb3VyY2VzIHRvIGJlIG9yZGVyZWQKICAgICAgICAgICAgCiAg ICAgICAgMmEgQ2FsbCBoYW5kbGVyOjpoYV9pbmRleF9pbml0KGludCBpZHgsIGJvb2wgc29ydGVk KSAKICAgICAgICAgICB3aXRoICdzb3J0ZWQ9PWZhbHNlJyBpbiBhbnkgYWNjZXNzIG1ldGhvZHMg cmVxdWVzdGluZyBhIAogICAgICAgICAgIHNpbmdsZSByb3cgKEhBX1JFQURfS0VZX0VYQUNUKSAo am9pbl9yZWFkX2tleSgpLCAuLi4uLgogICAgICAgICAgICAKICAgICAgICAyYikgRWxzZTogQWx3 YXlzIHVzZSBhYm92ZSAnc29ydGVkJyBhdHRyaWJ1dGVzIGFzIGFyZ3VtZW50cwogICAgICAgICAg ICB0byBoYW5kbGVyOjpoYV9pbmRleF9pbml0KCkgYW5kIG90aGVyIGhhbmRsZXIgbWV0aG9kcyAK ICAgICAgICAgICAgaGF2aW5nIGEgJ2Jvb2wgc29ydGVkJyBhcmd1bWVudCg6OnJlYWRfcmFuZ2Vf Zmlyc3QoKSkKICAgICAgCiAgICAgIEZ1cnRoZXJtb3JlIHRoZSBmdW5jdGlvbiAnZGlzYWJsZV9z b3J0ZWRfYWNjZXNzKEpPSU5fVEFCKiBqb2luX3RhYiknCiAgICAgIGhhcyBiZWVuIGludHJvZHVj ZWQgd2hpY2ggY29sbGVjdCBhbGwgbG9naWMgZm9yIHR1cm5pbmcgb2ZmIHNvcnQgcmVxdWlyZW1l bnQuIAogICAgIEAgbXlzcWwtdGVzdC9yL3BhcnRpdGlvbi5yZXN1bHQKICAgICAgICBBY2NlcHQg Y2hhbmdlZCByZXN1bHQgb3JkZXIgZm9yIHRoaXMgKHVub3JkZXJlZCkgcmVzdWx0IHNldC4KCiAg ICBtb2RpZmllZDoKICAgICAgbXlzcWwtdGVzdC9yL3BhcnRpdGlvbi5yZXN1bHQKICAgICAgc3Fs L2hhX25kYmNsdXN0ZXIuY2MKICAgICAgc3FsL29wdF9yYW5nZS5jYwogICAgICBzcWwvb3B0X3Jh bmdlLmgKICAgICAgc3FsL3NxbF9zZWxlY3QuY2MKIDQyNTEgTWFnbnVzIEJsw6V1ZGQJMjAxMS0w My0yMgogICAgICBCdWcjMTE4OTQ5NjYgLSBzZWNvbmQgbXlzcWxkIGRvZXMgbm90IGhhdmUgdGFi bGUgYWZ0ZXIgbm9uIGRpc3RyaWJ1dGVkIHRhYmxlCiAgICAgIGFsdGVyIHRvIG5kYgogICAgICAg LSBtb3ZlIHRoZSBuZGJfY3JlYXRlX3RhYmxlX2Zyb21fZW5naW5lIGNhbGwgYW5kIHJlbGF0ZWQg Y29kZSBvdXQgb2YKICAgICAgICAgImlmIChuZGJfYmlubG9nX3J1bm5pbmcpIiwgbmRiIHNjaGVt YSBkaXN0cmlidXRpb24gc2hvdWxkIHJ1bgogICAgICAgICBhbHNvIHdoZW4gbXlzcWxkIGlzIG5v dCBjb25maWd1cmVkIHRvIGJpbmxvZyAKCiAgICBtb2RpZmllZDoKICAgICAgbXlzcWwtdGVzdC9z dWl0ZS9uZGIvci9uZGJfbXVsdGkucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvbmRiL3Qv bmRiX211bHRpLnRlc3QKICAgICAgc3FsL2hhX25kYmNsdXN0ZXJfYmlubG9nLmNjCj09PSBtb2Rp ZmllZCBmaWxlICdteXNxbC10ZXN0L3IvcGFydGl0aW9uLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVz dC9yL3BhcnRpdGlvbi5yZXN1bHQJMjAxMC0wMy0yMiAxMjozMDoyNyArMDAwMAorKysgYi9teXNx bC10ZXN0L3IvcGFydGl0aW9uLnJlc3VsdAkyMDExLTAzLTIzIDEzOjE1OjE2ICswMDAwCkBAIC0x NTYzLDggKzE1NjMsOCBAQCBpbnNlcnQgaW50byB0MSB2YWx1ZXMgKDE4NDQ2NzQ0MDczNzA5NTUx CiBzZWxlY3QgKiBmcm9tIHQxOwogYQogMTg0NDY3NDQwNzM3MDk1NTE2MTIKLTE4NDQ2NzQ0MDcz NzA5NTUxNjEzCiAxODQ0Njc0NDA3MzcwOTU1MTYxNAorMTg0NDY3NDQwNzM3MDk1NTE2MTMKIDE4 NDQ2NzQ0MDczNzA5NTUxNjE1CiBzZWxlY3QgKiBmcm9tIHQxIHdoZXJlIGEgPSAxODQ0Njc0NDA3 MzcwOTU1MTYxNTsKIGEKQEAgLTE1NzMsOCArMTU3Myw4IEBAIGRlbGV0ZSBmcm9tIHQxIHdoZXJl IGEgPSAxODQ0Njc0NDA3MzcwOTUKIHNlbGVjdCAqIGZyb20gdDE7CiBhCiAxODQ0Njc0NDA3Mzcw OTU1MTYxMgotMTg0NDY3NDQwNzM3MDk1NTE2MTMKIDE4NDQ2NzQ0MDczNzA5NTUxNjE0CisxODQ0 Njc0NDA3MzcwOTU1MTYxMwogZHJvcCB0YWJsZSB0MTsKIENSRUFURSBUQUJMRSB0MSAoCiBudW0g aW50KDExKSBOT1QgTlVMTCwgY3MgaW50KDExKSBOT1QgTlVMTCkKCj09PSBtb2RpZmllZCBmaWxl ICdzcWwvaGFfbmRiY2x1c3Rlci5jYycKLS0tIGEvc3FsL2hhX25kYmNsdXN0ZXIuY2MJMjAxMS0w My0xNiAwNjo1Mzo0MSArMDAwMAorKysgYi9zcWwvaGFfbmRiY2x1c3Rlci5jYwkyMDExLTAzLTIz IDEzOjE1OjE2ICswMDAwCkBAIC01NTc1LDcgKzU1NzUsMTEgQEAgaW50IGhhX25kYmNsdXN0ZXI6 OmluZGV4X2ZpcnN0KHVjaGFyICpidQogICAvLyBTdGFydCB0aGUgb3JkZXJlZCBpbmRleCBzY2Fu IGFuZCBmZXRjaCB0aGUgZmlyc3Qgcm93CiAKICAgLy8gT25seSBIQV9SRUFEX09SREVSIGluZGV4 ZXMgZ2V0IGNhbGxlZCBieSBpbmRleF9maXJzdAorI2lmZGVmIE1DUF9CVUcxMTc2NDczNwogICBj b25zdCBpbnQgZXJyb3I9IG9yZGVyZWRfaW5kZXhfc2NhbigwLCAwLCBUUlVFLCBGQUxTRSwgYnVm LCBOVUxMKTsKKyNlbHNlCisgIGNvbnN0IGludCBlcnJvcj0gb3JkZXJlZF9pbmRleF9zY2FuKDAs IDAsIG1fc29ydGVkLCBGQUxTRSwgYnVmLCBOVUxMKTsKKyNlbmRpZgogICB0YWJsZS0+c3RhdHVz PWVycm9yID8gU1RBVFVTX05PVF9GT1VORDogMDsKICAgREJVR19SRVRVUk4oZXJyb3IpOwogfQpA QCAtNTU4NSw3ICs1NTg5LDExIEBAIGludCBoYV9uZGJjbHVzdGVyOjppbmRleF9sYXN0KHVjaGFy ICpidWYKIHsKICAgREJVR19FTlRFUigiaGFfbmRiY2x1c3Rlcjo6aW5kZXhfbGFzdCIpOwogICBo YV9zdGF0aXN0aWNfaW5jcmVtZW50KCZTU1Y6OmhhX3JlYWRfbGFzdF9jb3VudCk7CisjaWZkZWYg TUNQX0JVRzExNzY0NzM3CiAgIGNvbnN0IGludCBlcnJvcj0gb3JkZXJlZF9pbmRleF9zY2FuKDAs IDAsIFRSVUUsIFRSVUUsIGJ1ZiwgTlVMTCk7CisjZWxzZQorICBjb25zdCBpbnQgZXJyb3I9IG9y ZGVyZWRfaW5kZXhfc2NhbigwLCAwLCBtX3NvcnRlZCwgVFJVRSwgYnVmLCBOVUxMKTsKKyNlbmRp ZgogICB0YWJsZS0+c3RhdHVzPWVycm9yID8gU1RBVFVTX05PVF9GT1VORDogMDsKICAgREJVR19S RVRVUk4oZXJyb3IpOwogfQoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9vcHRfcmFuZ2UuY2MnCi0t LSBhL3NxbC9vcHRfcmFuZ2UuY2MJMjAxMC0xMC0wNiAxMDowNjo0NyArMDAwMAorKysgYi9zcWwv b3B0X3JhbmdlLmNjCTIwMTEtMDMtMjMgMTM6MTU6MTYgKzAwMDAKQEAgLTEwOTcsNyArMTA5Nywx MiBAQCBTUUxfU0VMRUNUOjp+U1FMX1NFTEVDVCgpCiAjdW5kZWYgaW5kZXgJCQkJCS8vIEZpeCBm b3IgVW5peHdhcmUgNwogCiBRVUlDS19TRUxFQ1RfSTo6UVVJQ0tfU0VMRUNUX0koKQorI2lmZGVm IE1DUF9CVUcxMTc2NDczNwogICA6bWF4X3VzZWRfa2V5X2xlbmd0aCgwKSwKKyNlbHNlCisgIDpz b3J0ZWQoZmFsc2UpLAorICAgbWF4X3VzZWRfa2V5X2xlbmd0aCgwKSwKKyNlbmRpZgogICAgdXNl ZF9rZXlfcGFydHMoMCkKIHt9CiAKQEAgLTExMDksNyArMTExNCw5IEBAIFFVSUNLX1JBTkdFX1NF TEVDVDo6UVVJQ0tfUkFOR0VfU0VMRUNUKFQKICAgREJVR19FTlRFUigiUVVJQ0tfUkFOR0VfU0VM RUNUOjpRVUlDS19SQU5HRV9TRUxFQ1QiKTsKIAogICBpbl9yb3JfbWVyZ2VkX3NjYW49IDA7Cisj aWZkZWYgTUNQX0JVRzExNzY0NzM3CiAgIHNvcnRlZD0gMDsKKyNlbmRpZgogICBpbmRleD0ga2V5 X25yOwogICBoZWFkPSAgdGFibGU7CiAgIGtleV9wYXJ0X2luZm89IGhlYWQtPmtleV9pbmZvW2lu ZGV4XS5rZXlfcGFydDsKQEAgLTQ5ODMsNyArNDk5MCwxMSBAQCBRVUlDS19TRUxFQ1RfSSAqVFJQ X1JPUl9JTlRFUlNFQ1Q6Om1ha2VfCiAgICAgewogICAgICAgaWYgKCEocXVpY2s9IGdldF9xdWlj a19zZWxlY3QocGFyYW0sICgqZmlyc3Rfc2NhbiktPmlkeCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICgqZmlyc3Rfc2NhbiktPnNlbF9hcmcsIGFsbG9jKSkgfHwKKyNpZmRl ZiBNQ1BfQlVHMTE3NjQ3MzcKICAgICAgICAgICBxdWlja19pbnRyc2VjdC0+cHVzaF9xdWlja19i YWNrKHF1aWNrKSkKKyNlbHNlCisgICAgICAgICAgKHF1aWNrLT5zb3J0ZWQ9IDEsIHF1aWNrX2lu dHJzZWN0LT5wdXNoX3F1aWNrX2JhY2socXVpY2spKSkKKyNlbmRpZgogICAgICAgewogICAgICAg ICBkZWxldGUgcXVpY2tfaW50cnNlY3Q7CiAgICAgICAgIERCVUdfUkVUVVJOKE5VTEwpOwpAQCAt NDk5OCw2ICs1MDA5LDkgQEAgUVVJQ0tfU0VMRUNUX0kgKlRSUF9ST1JfSU5URVJTRUNUOjptYWtl XwogICAgICAgICBEQlVHX1JFVFVSTihOVUxMKTsKICAgICAgIH0KICAgICAgIHF1aWNrLT5maWxl PSBOVUxMOyAKKyNpZm5kZWYgTUNQX0JVRzExNzY0NzM3CisgICAgICBxdWljay0+c29ydGVkPSAx OworI2VuZGlmCiAgICAgICBxdWlja19pbnRyc2VjdC0+Y3BrX3F1aWNrPSBxdWljazsKICAgICB9 CiAgICAgcXVpY2tfaW50cnNlY3QtPnJlY29yZHM9IHJlY29yZHM7CkBAIC01MDI0LDcgKzUwMzgs MTEgQEAgUVVJQ0tfU0VMRUNUX0kgKlRSUF9ST1JfVU5JT046Om1ha2VfcXVpYwogICAgIGZvciAo c2Nhbj0gZmlyc3Rfcm9yOyBzY2FuICE9IGxhc3Rfcm9yOyBzY2FuKyspCiAgICAgewogICAgICAg aWYgKCEocXVpY2s9ICgqc2NhbiktPm1ha2VfcXVpY2socGFyYW0sIEZBTFNFLCAmcXVpY2tfcm9y dS0+YWxsb2MpKSB8fAorI2lmZGVmIE1DUF9CVUcxMTc2NDczNwogICAgICAgICAgIHF1aWNrX3Jv cnUtPnB1c2hfcXVpY2tfYmFjayhxdWljaykpCisjZWxzZQorICAgICAgICAgIChxdWljay0+c29y dGVkPSAxLCBxdWlja19yb3J1LT5wdXNoX3F1aWNrX2JhY2socXVpY2spKSkKKyNlbmRpZgogICAg ICAgICBEQlVHX1JFVFVSTihOVUxMKTsKICAgICB9CiAgICAgcXVpY2tfcm9ydS0+cmVjb3Jkcz0g cmVjb3JkczsKQEAgLTg0NTQsNyArODQ3MiwxMSBAQCBpbnQgUVVJQ0tfUkFOR0VfU0VMRUNUOjpy ZXNldCgpCiAgIGluX3JhbmdlPSBGQUxTRTsKICAgY3VyX3JhbmdlPSAoUVVJQ0tfUkFOR0UqKikg cmFuZ2VzLmJ1ZmZlcjsKIAorI2lmZGVmIE1DUF9CVUcxMTc2NDczNwogICBpZiAoZmlsZS0+aW5p dGVkID09IGhhbmRsZXI6Ok5PTkUgJiYgKGVycm9yPSBmaWxlLT5oYV9pbmRleF9pbml0KGluZGV4 LDEpKSkKKyNlbHNlCisgIGlmIChmaWxlLT5pbml0ZWQgPT0gaGFuZGxlcjo6Tk9ORSAmJiAoZXJy b3I9IGZpbGUtPmhhX2luZGV4X2luaXQoaW5kZXgsc29ydGVkKSkpCisjZW5kaWYKICAgICBEQlVH X1JFVFVSTihlcnJvcik7CiAgCiAgIC8qIERvIG5vdCBhbGxvY2F0ZSB0aGUgYnVmZmVycyB0d2lj ZS4gKi8KQEAgLTg2NzEsNyArODY5MywxMSBAQCBpbnQgUVVJQ0tfUkFOR0VfU0VMRUNUOjpnZXRf bmV4dF9wcmVmaXgoCiAgICAgcmVzdWx0PSBmaWxlLT5yZWFkX3JhbmdlX2ZpcnN0KGxhc3RfcmFu Z2UtPm1pbl9rZXlwYXJ0X21hcCA/ICZzdGFydF9rZXkgOiAwLAogCQkJCSAgIGxhc3RfcmFuZ2Ut Pm1heF9rZXlwYXJ0X21hcCA/ICZlbmRfa2V5IDogMCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGVzdChsYXN0X3JhbmdlLT5mbGFnICYgRVFfUkFOR0UpLAorI2lmZGVmIE1D UF9CVUcxMTc2NDczNwogCQkJCSAgIFRSVUUpOworI2Vsc2UKKwkJCQkgICBzb3J0ZWQpOworI2Vu ZGlmCiAgICAgaWYgKGxhc3RfcmFuZ2UtPmZsYWcgPT0gKFVOSVFVRV9SQU5HRSB8IEVRX1JBTkdF KSkKICAgICAgIGxhc3RfcmFuZ2U9IDA7CQkJLy8gU3RvcCBzZWFyY2hpbmcKIApAQCAtODc4NCw2 ICs4ODEwLDEwIEBAIFFVSUNLX1NFTEVDVF9ERVNDOjpRVUlDS19TRUxFQ1RfREVTQyhRVUkKICAg bXVsdGlfcmFuZ2U9IE5VTEw7CiAgIG11bHRpX3JhbmdlX2J1ZmY9IE5VTEw7CiAKKyNpZm5kZWYg TUNQX0JVRzExNzY0NzM3CisgIHNvcnRlZD0gMTsgICAgICAvLyAnc29ydGVkJyBhcyBpbnRlcm5h bHMgdXNlIGluZGV4X2xhc3QvX3ByZXYKKyNlbmRpZgorCiAgIFFVSUNLX1JBTkdFICoqcHI9IChR VUlDS19SQU5HRSoqKXJhbmdlcy5idWZmZXI7CiAgIFFVSUNLX1JBTkdFICoqZW5kX3JhbmdlPSBw ciArIHJhbmdlcy5lbGVtZW50czsKICAgZm9yICg7IHByIT1lbmRfcmFuZ2U7IHByKyspCkBAIC04 ODAyLDYgKzg4MzIsMTYgQEAgUVVJQ0tfU0VMRUNUX0RFU0M6OlFVSUNLX1NFTEVDVF9ERVNDKFFV SQogfQogCiAKKyNpZm5kZWYgTUNQX0JVRzExNzY0NzM3CitpbnQgUVVJQ0tfU0VMRUNUX0RFU0M6 OnJlc2V0KHZvaWQpCit7CisgIHNvcnRlZD0gMTsgLy8gJ3NvcnRlZCcgaW5kZXggYWNjZXNzIGlz IHJlcXVpcmVkIGJ5IGludGVybmFscworICByZXZfaXQucmV3aW5kKCk7CisgIHJldHVybiBRVUlD S19SQU5HRV9TRUxFQ1Q6OnJlc2V0KCk7Cit9CisjZW5kaWYKKworCiBpbnQgUVVJQ0tfU0VMRUNU X0RFU0M6OmdldF9uZXh0KCkKIHsKICAgREJVR19FTlRFUigiUVVJQ0tfU0VMRUNUX0RFU0M6Omdl dF9uZXh0Iik7CkBAIC0xMDIwOCwxMSArMTAyNDgsMjEgQEAgVFJQX0dST1VQX01JTl9NQVg6Om1h a2VfcXVpY2soUEFSQU0gKnBhcgogICAgIGlmIChxdWlja19wcmVmaXhfcmVjb3JkcyA9PSBIQV9Q T1NfRVJST1IpCiAgICAgICBxdWljay0+cXVpY2tfcHJlZml4X3NlbGVjdD0gTlVMTDsgLyogQ2Fu J3QgY29uc3RydWN0IGEgcXVpY2sgc2VsZWN0LiAqLwogICAgIGVsc2UKKyAgICB7CiAgICAgICAv KiBNYWtlIGEgUVVJQ0tfUkFOR0VfU0VMRUNUIHRvIGJlIHVzZWQgZm9yIGdyb3VwIHByZWZpeCBy ZXRyaWV2YWwuICovCiAgICAgICBxdWljay0+cXVpY2tfcHJlZml4X3NlbGVjdD0gZ2V0X3F1aWNr X3NlbGVjdChwYXJhbSwgcGFyYW1faWR4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW5kZXhfdHJlZSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZxdWljay0+YWxsb2MpOwogCisjaWZuZGVmIE1D UF9CVUcxMTc2NDczNworICAgICAgaWYgKCFxdWljay0+cXVpY2tfcHJlZml4X3NlbGVjdCkKKyAg ICAgIHsKKyAgICAgICAgZGVsZXRlIHF1aWNrOworICAgICAgICBEQlVHX1JFVFVSTihOVUxMKTsK KyAgICAgIH0KKyAgICAgIHF1aWNrLT5xdWlja19wcmVmaXhfc2VsZWN0LT5zb3J0ZWQ9IDE7Cisj ZW5kaWYKKyAgICB9CiAgICAgLyoKICAgICAgIEV4dHJhY3QgdGhlIFNFTF9BUkcgc3VidHJlZSB0 aGF0IGNvbnRhaW5zIG9ubHkgcmFuZ2VzIGZvciB0aGUgTUlOL01BWAogICAgICAgYXR0cmlidXRl LCBhbmQgY3JlYXRlIGFuIGFycmF5IG9mIFFVSUNLX1JBTkdFUyB0byBiZSB1c2VkIGJ5IHRoZQpA QCAtMTA2MDMsNiArMTA2NTMsMTAgQEAgaW50IFFVSUNLX0dST1VQX01JTl9NQVhfU0VMRUNUOjpy ZXNldCh2bwogICBEQlVHX0VOVEVSKCJRVUlDS19HUk9VUF9NSU5fTUFYX1NFTEVDVDo6cmVzZXQi KTsKIAogICBoZWFkLT5zZXRfa2V5cmVhZChUUlVFKTsgLyogV2UgbmVlZCBvbmx5IHRoZSBrZXkg YXR0cmlidXRlcyAqLworICAvKgorICAgIFJlcXVlc3Qgb3JkZXJlZCBpbmRleCBhY2Nlc3MgYXMg dXNhZ2Ugb2YgOjppbmRleF9sYXN0KCksIAorICAgIDo6aW5kZXhfZmlyc3QoKSB3aXRoaW4gUVVJ Q0tfR1JPVVBfTUlOX01BWF9TRUxFQ1QgZGVwZW5kcyBvbiBpdC4KKyAgKi8KICAgaWYgKChyZXN1 bHQ9IGZpbGUtPmhhX2luZGV4X2luaXQoaW5kZXgsMSkpKQogICAgIERCVUdfUkVUVVJOKHJlc3Vs dCk7CiAgIGlmIChxdWlja19wcmVmaXhfc2VsZWN0ICYmIHF1aWNrX3ByZWZpeF9zZWxlY3QtPnJl c2V0KCkpCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL29wdF9yYW5nZS5oJwotLS0gYS9zcWwvb3B0 X3JhbmdlLmgJMjAxMC0xMC0wNiAxMDowNjo0NyArMDAwMAorKysgYi9zcWwvb3B0X3JhbmdlLmgJ MjAxMS0wMy0yMyAxMzoxNToxNiArMDAwMApAQCAtNzYyLDcgKzc2MiwxMSBAQCBwdWJsaWM6CiAg IGludCBnZXRfdHlwZSgpIHsgcmV0dXJuIFFTX1RZUEVfUkFOR0VfREVTQzsgfQogcHJpdmF0ZToK ICAgYm9vbCByYW5nZV9yZWFkc19hZnRlcl9rZXkoUVVJQ0tfUkFOR0UgKnJhbmdlKTsKKyNpZmRl ZiBNQ1BfQlVHMTE3NjQ3MzcKICAgaW50IHJlc2V0KHZvaWQpIHsgcmV2X2l0LnJld2luZCgpOyBy ZXR1cm4gUVVJQ0tfUkFOR0VfU0VMRUNUOjpyZXNldCgpOyB9CisjZWxzZQorICBpbnQgcmVzZXQo dm9pZCk7CisjZW5kaWYKICAgTGlzdDxRVUlDS19SQU5HRT4gcmV2X3JhbmdlczsKICAgTGlzdF9p dGVyYXRvcjxRVUlDS19SQU5HRT4gcmV2X2l0OwogICB1aW50IHVzZWRfa2V5X3BhcnRzOwoKPT09 IG1vZGlmaWVkIGZpbGUgJ3NxbC9zcWxfc2VsZWN0LmNjJwotLS0gYS9zcWwvc3FsX3NlbGVjdC5j YwkyMDExLTAyLTIzIDEwOjQyOjE2ICswMDAwCisrKyBiL3NxbC9zcWxfc2VsZWN0LmNjCTIwMTEt MDMtMjMgMTM6MTU6MTYgKzAwMDAKQEAgLTE3NDMsNiArMTc0MywxOSBAQCBKT0lOOjpzYXZlX2pv aW5fdGFiKCkKIH0KIAogCisjaWZuZGVmIE1DUF9CVUcxMTc2NDczNworc3RhdGljIHZvaWQKK2Rp c2FibGVfc29ydGVkX2FjY2VzcyhKT0lOX1RBQiogam9pbl90YWIpCit7CisgIGpvaW5fdGFiLT5z b3J0ZWQ9IDA7CisgIGlmIChqb2luX3RhYi0+c2VsZWN0ICYmIGpvaW5fdGFiLT5zZWxlY3QtPnF1 aWNrKQorICB7CisgICAgam9pbl90YWItPnNlbGVjdC0+cXVpY2stPnNvcnRlZD0gMDsKKyAgfQor fQorI2VuZGlmCisKKwogLyoqCiAgIEV4ZWMgc2VsZWN0LgogCkBAIC0xOTEyLDcgKzE5MjUsMTEg QEAgSk9JTjo6ZXhlYygpCiAgICAgREJVR19QUklOVCgiaW5mbyIsICgiJXMiLCB0aGQtPnByb2Nf aW5mbykpOwogICAgIGlmICghY3Vycl9qb2luLT5zb3J0X2FuZF9ncm91cCAmJgogICAgICAgICBj dXJyX2pvaW4tPmNvbnN0X3RhYmxlcyAhPSBjdXJyX2pvaW4tPnRhYmxlcykKKyNpZmRlZiBNQ1Bf QlVHMTE3NjQ3MzcKICAgICAgIGN1cnJfam9pbi0+am9pbl90YWJbY3Vycl9qb2luLT5jb25zdF90 YWJsZXNdLnNvcnRlZD0gMDsKKyNlbHNlCisgICAgICBkaXNhYmxlX3NvcnRlZF9hY2Nlc3MoJmN1 cnJfam9pbi0+am9pbl90YWJbY3Vycl9qb2luLT5jb25zdF90YWJsZXNdKTsKKyNlbmRpZgogICAg IGlmICgodG1wX2Vycm9yPSBkb19zZWxlY3QoY3Vycl9qb2luLCAoTGlzdDxJdGVtPiAqKSAwLCBj dXJyX3RtcF90YWJsZSwgMCkpKQogICAgIHsKICAgICAgIGVycm9yPSB0bXBfZXJyb3I7CkBAIC0y MDc2LDcgKzIwOTMsMTEgQEAgSk9JTjo6ZXhlYygpCiAgICAgICBjdXJyX2pvaW4tPmdyb3VwX2xp c3Q9IDA7CiAgICAgICBpZiAoIWN1cnJfam9pbi0+c29ydF9hbmRfZ3JvdXAgJiYKICAgICAgICAg ICBjdXJyX2pvaW4tPmNvbnN0X3RhYmxlcyAhPSBjdXJyX2pvaW4tPnRhYmxlcykKKyNpZmRlZiBN Q1BfQlVHMTE3NjQ3MzcKICAgICAgICAgY3Vycl9qb2luLT5qb2luX3RhYltjdXJyX2pvaW4tPmNv bnN0X3RhYmxlc10uc29ydGVkPSAwOworI2Vsc2UKKyAgICAgICAgZGlzYWJsZV9zb3J0ZWRfYWNj ZXNzKCZjdXJyX2pvaW4tPmpvaW5fdGFiW2N1cnJfam9pbi0+Y29uc3RfdGFibGVzXSk7CisjZW5k aWYKICAgICAgIGlmIChzZXR1cF9zdW1fZnVuY3MoY3Vycl9qb2luLT50aGQsIGN1cnJfam9pbi0+ c3VtX2Z1bmNzKSB8fAogCSAgKHRtcF9lcnJvcj0gZG9fc2VsZWN0KGN1cnJfam9pbiwgKExpc3Q8 SXRlbT4gKikgMCwgY3Vycl90bXBfdGFibGUsCiAJCQkJMCkpKQpAQCAtNjg0Niw5ICs2ODY3LDE1 IEBAIG1ha2Vfam9pbl9yZWFkaW5mbyhKT0lOICpqb2luLCB1bG9uZ2xvbmcKICAgdWludCBpOwog ICBib29sIHN0YXRpc3RpY3M9IHRlc3QoIShqb2luLT5zZWxlY3Rfb3B0aW9ucyAmIFNFTEVDVF9E RVNDUklCRSkpOwogICBib29sIG9yZGVyZWRfc2V0PSAwOwotICBib29sIHNvcnRlZD0gMTsKICAg REJVR19FTlRFUigibWFrZV9qb2luX3JlYWRpbmZvIik7CiAKKyNpZmRlZiBNQ1BfQlVHMTE3NjQ3 MzcKKyAgYm9vbCBzb3J0ZWQ9IDE7CisjZWxzZQorICAvKiBGaXJzdCB0YWJsZSBzb3J0ZWQgaWYg T1JERVIgb3IgR1JPVVAgQlkgd2FzIHNwZWNpZmllZCAqLworICBib29sIHNvcnRlZD0gKGpvaW4t Pm9yZGVyIHx8IGpvaW4tPmdyb3VwX2xpc3QpOworI2VuZGlmCisKICAgZm9yIChpPWpvaW4tPmNv bnN0X3RhYmxlcyA7IGkgPCBqb2luLT50YWJsZXMgOyBpKyspCiAgIHsKICAgICBKT0lOX1RBQiAq dGFiPWpvaW4tPmpvaW5fdGFiK2k7CkBAIC0xMjE1Niw3ICsxMjE4MywxMiBAQCBqb2luX3JlYWRf a2V5KEpPSU5fVEFCICp0YWIpCiAKICAgaWYgKCF0YWJsZS0+ZmlsZS0+aW5pdGVkKQogICB7Cisj aWZkZWYgTUNQX0JVRzExNzY0NzM3CisgICAgdGFibGUtPmZpbGUtPmhhX2luZGV4X2luaXQodGFi LT5yZWYua2V5LCAwKTsKKyNlbHNlCisgICAgREJVR19BU1NFUlQoIXRhYi0+c29ydGVkKTsgIC8v IERvbid0IGV4cGVjdCBzb3J0IHJlcS4gZm9yIHNpbmdsZSByb3cuCiAgICAgdGFibGUtPmZpbGUt PmhhX2luZGV4X2luaXQodGFiLT5yZWYua2V5LCB0YWItPnNvcnRlZCk7CisjZW5kaWYKICAgfQog ICBpZiAoY21wX2J1ZmZlcl93aXRoX3JlZih0YWIpIHx8CiAgICAgICAodGFibGUtPnN0YXR1cyAm IChTVEFUVVNfR0FSQkFHRSB8IFNUQVRVU19OT19QQVJFTlQgfCBTVEFUVVNfTlVMTF9ST1cpKSkK QEAgLTEyNDI4LDcgKzEyNDYwLDExIEBAIGpvaW5fcmVhZF9sYXN0KEpPSU5fVEFCICp0YWIpCiAg IHRhYi0+cmVhZF9yZWNvcmQuaW5kZXg9dGFiLT5pbmRleDsKICAgdGFiLT5yZWFkX3JlY29yZC5y ZWNvcmQ9dGFibGUtPnJlY29yZFswXTsKICAgaWYgKCF0YWJsZS0+ZmlsZS0+aW5pdGVkKQorI2lm ZGVmIE1DUF9CVUcxMTc2NDczNwogICAgIHRhYmxlLT5maWxlLT5oYV9pbmRleF9pbml0KHRhYi0+ aW5kZXgsIDEpOworI2Vsc2UKKyAgICB0YWJsZS0+ZmlsZS0+aGFfaW5kZXhfaW5pdCh0YWItPmlu ZGV4LCB0YWItPnNvcnRlZCk7CisjZW5kaWYKICAgaWYgKChlcnJvcj0gdGFiLT50YWJsZS0+Zmls ZS0+aW5kZXhfbGFzdCh0YWItPnRhYmxlLT5yZWNvcmRbMF0pKSkKICAgICByZXR1cm4gcmVwb3J0 X2Vycm9yKHRhYmxlLCBlcnJvcik7CiAgIHJldHVybiAwOwpAQCAtMTI0NTIsNyArMTI0ODgsMTEg QEAgam9pbl9mdF9yZWFkX2ZpcnN0KEpPSU5fVEFCICp0YWIpCiAgIFRBQkxFICp0YWJsZT0gdGFi LT50YWJsZTsKIAogICBpZiAoIXRhYmxlLT5maWxlLT5pbml0ZWQpCisjaWZkZWYgTUNQX0JVRzEx NzY0NzM3CiAgICAgdGFibGUtPmZpbGUtPmhhX2luZGV4X2luaXQodGFiLT5yZWYua2V5LCAxKTsK KyNlbHNlCisgICAgdGFibGUtPmZpbGUtPmhhX2luZGV4X2luaXQodGFiLT5yZWYua2V5LCB0YWIt PnNvcnRlZCk7CisjZW5kaWYKICNpZiBOT1RfVVNFRF9ZRVQKICAgLyogYXMgZnQta2V5IGRvZXNu J3QgdXNlIHN0b3JlX2tleSdzLCBzZWUgYWxzbyBGVF9TRUxFQ1Q6OmluaXQoKSAqLwogICBpZiAo Y3BfYnVmZmVyX2Zyb21fcmVmKHRhYi0+am9pbi0+dGhkLCB0YWJsZSwgJnRhYi0+cmVmKSkKCk5v IGJ1bmRsZSAocmVhc29uOiB1c2VsZXNzIGZvciBwdXNoIGVtYWlscyku