From: Bjorn Munch Date: March 8 2011 5:53pm Subject: bzr commit into mysql-5.1-mtr branch (bjorn.munch:2985) List-Archive: http://lists.mysql.com/commits/132623 Message-Id: <201103081753.p28Hr4Vh006901@khepri15.norway.sun.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 I0F0IGZpbGU6Ly8vaG9tZS9ibTEzNjgwMS9teS9tZXJnZS01MS8gYmFzZWQgb24gcmV2aWQ6Ympv cm4ubXVuY2hAb3JhY2xlLmNvbS0yMDExMDIyODE1MTAzNS1mbTd6ajdycTEyamtqZ3hsCgogMjk4 NSBCam9ybiBNdW5jaAkyMDExLTAzLTA4IFttZXJnZV0KICAgICAgbWVyZ2UgZnJvbSA1LjEgbWFp bgoKICAgIGFkZGVkOgogICAgICBteXNxbC10ZXN0L3IvZnVuY19lbmNyeXB0X3VjczIucmVzdWx0 CiAgICAgIG15c3FsLXRlc3QvdC9mdW5jX2VuY3J5cHRfdWNzMi50ZXN0CiAgICBtb2RpZmllZDoK ICAgICAgbXlzcWwtdGVzdC9yL2N0eXBlX3NqaXMucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvci9j dHlwZV91Y3MucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvci94bWwucmVzdWx0CiAgICAgIG15c3Fs LXRlc3Qvc3VpdGUvZW5naW5lcy9pdWRzL3IvaW5zZXJ0X3llYXIucmVzdWx0CiAgICAgIG15c3Fs LXRlc3QvdC9jdHlwZV9zamlzLnRlc3QKICAgICAgbXlzcWwtdGVzdC90L2N0eXBlX3Vjcy50ZXN0 CiAgICAgIG15c3FsLXRlc3QvdC94bWwudGVzdAogICAgICBzcWwvaXRlbV9mdW5jLmNjCiAgICAg IHNxbC9pdGVtX3N0cmZ1bmMuY2MKICAgICAgc3FsL2l0ZW1fc3RyZnVuYy5oCiAgICAgIHNxbC9z cWxfcGFyc2UuY2MKICAgICAgc3RyaW5ncy94bWwuYwo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwt dGVzdC9yL2N0eXBlX3NqaXMucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3IvY3R5cGVfc2ppcy5y ZXN1bHQJMjAwOS0wNS0wNSAwNjo1NToyMiArMDAwMAorKysgYi9teXNxbC10ZXN0L3IvY3R5cGVf c2ppcy5yZXN1bHQJMjAxMS0wMy0wMyAxNTozOToyNiArMDAwMApAQCAtMjE4LDQgKzIxOCwxMCBA QCBoZXgoYSkJaGV4KGxvd2VyKGEpKQloZXgodXBwZXIoYSkpCiA4MzUyODM1RQk4MzUyODM1RQk4 MzUyODM1RQogODM3MjgzNUUJODM3MjgzNUUJODM3MjgzNUUKIERST1AgVEFCTEUgdDE7CisjCisj IEJ1ZyMxMTc2NjUxOSAtIEJ1ZyM1OTY0ODogTVlfU1RSVE9MTDEwX01CMjogQVNTRVJUSU9OIGAo KkVORFBUUiAtIFMpICUgMiA9PSAwJyBGQUlMRUQuCisjCitTRUxFQ1QgUVVPVEUoJ++/vVwnKTsK K1FVT1RFKCfvv71cJykKKyfvv71cJwogIyBFbmQgb2YgNS4xIHRlc3RzCgo9PT0gbW9kaWZpZWQg ZmlsZSAnbXlzcWwtdGVzdC9yL2N0eXBlX3Vjcy5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvci9j dHlwZV91Y3MucmVzdWx0CTIwMTAtMDQtMDYgMDc6MjY6NTkgKzAwMDAKKysrIGIvbXlzcWwtdGVz dC9yL2N0eXBlX3Vjcy5yZXN1bHQJMjAxMS0wMy0wMyAxNTozOToyNiArMDAwMApAQCAtOTkwLDgg Kzk5MCw4IEBAIG9sZF9wYXNzd29yZChuYW1lKQogPz8/Pz8/Pz8KIHNlbGVjdCBxdW90ZShuYW1l KSBmcm9tIGJ1ZzIwNTM2OwogcXVvdGUobmFtZSkKLT8/Pz8/Pz8/Ci0/Pz8/Pz8/Pz8/Pz8/Pz8/ CisndGVzdDEnCisnXCd0ZXN0XFxfMlwnJwogZHJvcCB0YWJsZSBidWcyMDUzNjsKIHNldCBuYW1l cyB1Y3MyOwogRVJST1IgNDIwMDA6IFZhcmlhYmxlICdjaGFyYWN0ZXJfc2V0X2NsaWVudCcgY2Fu J3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSBvZiAndWNzMicKQEAgLTEyMzgsNCArMTIzOCwxNSBAQCBD UkVBVEUgVklFVyB2MSBBUyBTRUxFQ1QgMSBmcm9tIHQxCiBXSEVSRSB0MS5iIDw9PiAoU0VMRUNU IGEgRlJPTSB0MSBXSEVSRSBhIDwgU09NRShTRUxFQ1QgJzEnKSk7CiBEUk9QIFZJRVcgdjE7CiBE Uk9QIFRBQkxFIHQxOworIworIyBCdWcjNTk2NDggbXlfc3RydG9sbDEwX21iMjogQXNzZXJ0aW9u IGAoKmVuZHB0ciAtIHMpICUgMiA9PSAwJyBmYWlsZWQuCisjCitTRUxFQ1QgSEVYKENIQVIoQ09B TEVTQ0UoTlVMTCwgQ0hBUihDT1VOVCgnJXMnKSBVU0lORyB1Y3MyKSwgMSwgQEBnbG9iYWwubGlj ZW5zZSwgTlVMTCkgVVNJTkcgY3A4NTApKTsKK0hFWChDSEFSKENPQUxFU0NFKE5VTEwsIENIQVIo Q09VTlQoJyVzJykgVVNJTkcgdWNzMiksIDEsIEBAZ2xvYmFsLmxpY2Vuc2UsIE5VTEwpIFVTSU5H IGNwODUwKSkKKzAwCitTRUxFQ1QgQ09OVkVSVChRVU9URShDSEFSKDB4ZjUgdXNpbmcgdWNzMikp LCBTSUdORUQpOworQ09OVkVSVChRVU9URShDSEFSKDB4ZjUgdXNpbmcgdWNzMikpLCBTSUdORUQp CiswCitXYXJuaW5nczoKK1dhcm5pbmcJMTI5MglUcnVuY2F0ZWQgaW5jb3JyZWN0IElOVEVHRVIg dmFsdWU6ICcnCiBFbmQgb2YgNS4wIHRlc3RzCgo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9y L2Z1bmNfZW5jcnlwdF91Y3MyLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL2Z1bmNfZW5jcnlw dF91Y3MyLnJlc3VsdAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215c3FsLXRlc3Qv ci9mdW5jX2VuY3J5cHRfdWNzMi5yZXN1bHQJMjAxMS0wMy0wMyAxMjowNDowNCArMDAwMApAQCAt MCwwICsxLDE5IEBACisjCisjIEJ1ZyM1OTY0OCBteV9zdHJ0b2xsMTBfbWIyOiBBc3NlcnRpb24g YCgqZW5kcHRyIC0gcykgJSAyID09IDAnIGZhaWxlZC4KKyMKK1NFTEVDVCBDSEFSX0xFTkdUSChE RVNfRU5DUllQVCgwLCBDSEFSKCcxJyBVU0lORyB1Y3MyKSkpOworQ0hBUl9MRU5HVEgoREVTX0VO Q1JZUFQoMCwgQ0hBUignMScgVVNJTkcgdWNzMikpKQorOQorU0VMRUNUIENPTlZFUlQoREVTX0VO Q1JZUFQoMCwgQ0hBUignMScgVVNJTkcgdWNzMikpLFVOU0lHTkVEKTsKK0NPTlZFUlQoREVTX0VO Q1JZUFQoMCwgQ0hBUignMScgVVNJTkcgdWNzMikpLFVOU0lHTkVEKQorMAorV2FybmluZ3M6CitX YXJuaW5nCTEyOTIJVHJ1bmNhdGVkIGluY29ycmVjdCBJTlRFR0VSIHZhbHVlOiAnP1Q/aUs/aj8/ JworU0VMRUNUIENIQVJfTEVOR1RIKERFU19ERUNSWVBUKDB4RkYwREM5RkM5NTM3Q0E3NUY0LCBD SEFSKCcxJyBVU0lORyB1Y3MyKSkpOworQ0hBUl9MRU5HVEgoREVTX0RFQ1JZUFQoMHhGRjBEQzlG Qzk1MzdDQTc1RjQsIENIQVIoJzEnIFVTSU5HIHVjczIpKSkKKzQKK1NFTEVDVCBDT05WRVJUKERF U19ERUNSWVBUKDB4RkYwREM5RkM5NTM3Q0E3NUY0LCBDSEFSKCcxJyB1c2luZyB1Y3MyKSksIFVO U0lHTkVEKTsKK0NPTlZFUlQoREVTX0RFQ1JZUFQoMHhGRjBEQzlGQzk1MzdDQTc1RjQsIENIQVIo JzEnIHVzaW5nIHVjczIpKSwgVU5TSUdORUQpCiswCitXYXJuaW5nczoKK1dhcm5pbmcJMTI5MglU cnVuY2F0ZWQgaW5jb3JyZWN0IElOVEVHRVIgdmFsdWU6ICd0ZXN0JwoKPT09IG1vZGlmaWVkIGZp bGUgJ215c3FsLXRlc3Qvci94bWwucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3IveG1sLnJlc3Vs dAkyMDExLTAxLTE4IDA2OjM4OjQxICswMDAwCisrKyBiL215c3FsLXRlc3Qvci94bWwucmVzdWx0 CTIwMTEtMDMtMDEgMTI6MzA6MTggKzAwMDAKQEAgLTExMjQsNCArMTEyNCwxMiBAQCBXYXJuaW5n CTE1MjUJSW5jb3JyZWN0IFhNTCB2YWx1ZTogJ3BhcnNlCiBTRUxFQ1QgVVBEQVRFWE1MKENPTlZF UlQoX2xhdGluMSc8IS0tJyBVU0lORyB1dGY4KSwnMScsJzEnKTsKIFVQREFURVhNTChDT05WRVJU KF9sYXRpbjEnPCEtLScgVVNJTkcgdXRmOCksJzEnLCcxJykKIE5VTEwKKyMKKyMgQnVnIzExNzY2 NzI1IChidWcjNTk5MDEpOiBFWFRSQUNUVkFMVUUgU1RJTEwgQlJPS0VOIEFGVEVSIEZJWCBGT1Ig QlVHICM0NDMzMgorIworU0VMRUNUIEV4dHJhY3RWYWx1ZShDT05WRVJUKCc8XCInLCBCSU5BUlko MTApKSwgMSk7CitFeHRyYWN0VmFsdWUoQ09OVkVSVCgnPFwiJywgQklOQVJZKDEwKSksIDEpCitO VUxMCitXYXJuaW5nczoKK1dhcm5pbmcJMTUyNQlJbmNvcnJlY3QgWE1MIHZhbHVlOiAncGFyc2Ug ZXJyb3IgYXQgbGluZSAxIHBvcyAxMTogU1RSSU5HIHVuZXhwZWN0ZWQgKGlkZW50IG9yICcvJyB3 YW50ZWQpJwogRW5kIG9mIDUuMSB0ZXN0cwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qv c3VpdGUvZW5naW5lcy9pdWRzL3IvaW5zZXJ0X3llYXIucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0 L3N1aXRlL2VuZ2luZXMvaXVkcy9yL2luc2VydF95ZWFyLnJlc3VsdAkyMDEwLTA0LTA2IDE4OjA2 OjM0ICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvZW5naW5lcy9pdWRzL3IvaW5zZXJ0X3ll YXIucmVzdWx0CTIwMTEtMDMtMDEgMTU6NTY6MjQgKzAwMDAKQEAgLTI0MzEsNyArMjQzMSw3IEBA IGMxCWMyCWMzCWM0CiAyMTU1CTIxNTUJMTk5OC0xMi0yNgkxOTk4LTEyLTI2IDExOjMwOjQ1CiBT RUxFQ1QgY291bnQoKikgYXMgdG90YWxfcm93cywgbWluKGMyKSBhcyBtaW5fdmFsdWUsIG1heChj MikgRlJPTSB0MzsKIHRvdGFsX3Jvd3MJbWluX3ZhbHVlCW1heChjMikKLTIxCTE5MDEJMjE1NQor MjEJMAkyMTU1CiBTRUxFQ1QgKiBGUk9NIHQzIFdIRVJFIGMzID0gJzE5OTgtMTItMTEnOwogYzEJ YzIJYzMJYzQKIDE5OTAJMTk5MAkxOTk4LTEyLTExCTE5OTgtMTItMTEgMTE6MzA6NDUKQEAgLTI4 MzgsNyArMjgzOCw3IEBAIGMxCWMyCWMzCWM0CiAyMTU1CTIxNTUJMTk5OC0xMi0yNgkxOTk4LTEy LTI2IDExOjMwOjQ1CiBTRUxFQ1QgY291bnQoKikgYXMgdG90YWxfcm93cywgbWluKGMyKSBhcyBt aW5fdmFsdWUsIG1heChjMikgRlJPTSB0MzsKIHRvdGFsX3Jvd3MJbWluX3ZhbHVlCW1heChjMikK LTIxCTE5MDEJMjE1NQorMjEJMAkyMTU1CiBTRUxFQ1QgKiBGUk9NIHQzIFdIRVJFIGMzID0gJzE5 OTgtMTItMTEnOwogYzEJYzIJYzMJYzQKIDE5OTAJMTk5MAkxOTk4LTEyLTExCTE5OTgtMTItMTEg MTE6MzA6NDUKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3QvY3R5cGVfc2ppcy50ZXN0 JwotLS0gYS9teXNxbC10ZXN0L3QvY3R5cGVfc2ppcy50ZXN0CTIwMDktMDUtMDUgMDY6NTU6MjIg KzAwMDAKKysrIGIvbXlzcWwtdGVzdC90L2N0eXBlX3NqaXMudGVzdAkyMDExLTAzLTAzIDE1OjM5 OjI2ICswMDAwCkBAIC05Miw0ICs5MiwxMiBAQCBJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKDB4ODM3 MjgzNUUpLCgweDgzCiBTRUxFQ1QgaGV4KGEpLCBoZXgobG93ZXIoYSkpLCBoZXgodXBwZXIoYSkp IEZST00gdDEgT1JERVIgQlkgYmluYXJ5KGEpOwogRFJPUCBUQUJMRSB0MTsKIAorLS1lY2hvICMK Ky0tZWNobyAjIEJ1ZyMxMTc2NjUxOSAtIEJ1ZyM1OTY0ODogTVlfU1RSVE9MTDEwX01CMjogQVNT RVJUSU9OIGAoKkVORFBUUiAtIFMpICUgMiA9PSAwJyBGQUlMRUQuCistLWVjaG8gIworIyBJbiB0 aGUgYmVsb3cgc3RyaW5nIGJhY2tzbGFzaCAoMHg1QykgaXMgYSBwYXJ0IG9mIGEgbXVsdGktYnl0 ZQorIyBjaGFyYWN0ZXIsIHNvIGl0IHNob3VsZCBub3QgYmUgcXVvdGVkLgorU0VMRUNUIFFVT1RF KCfvv71cJyk7CisKKwogLS1lY2hvICMgRW5kIG9mIDUuMSB0ZXN0cwoKPT09IG1vZGlmaWVkIGZp bGUgJ215c3FsLXRlc3QvdC9jdHlwZV91Y3MudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC90L2N0eXBl X3Vjcy50ZXN0CTIwMTAtMDQtMDYgMDc6MjY6NTkgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC90L2N0 eXBlX3Vjcy50ZXN0CTIwMTEtMDMtMDMgMTU6Mzk6MjYgKzAwMDAKQEAgLTc0MSw0ICs3NDEsMTAg QEAgV0hFUkUgdDEuYiA8PT4gKFNFTEVDVCBhIEZST00gdDEgV0hFUkUgYQogRFJPUCBWSUVXIHYx OwogRFJPUCBUQUJMRSB0MTsKIAorLS1lY2hvICMKKy0tZWNobyAjIEJ1ZyM1OTY0OCBteV9zdHJ0 b2xsMTBfbWIyOiBBc3NlcnRpb24gYCgqZW5kcHRyIC0gcykgJSAyID09IDAnIGZhaWxlZC4KKy0t ZWNobyAjCitTRUxFQ1QgSEVYKENIQVIoQ09BTEVTQ0UoTlVMTCwgQ0hBUihDT1VOVCgnJXMnKSBV U0lORyB1Y3MyKSwgMSwgQEBnbG9iYWwubGljZW5zZSwgTlVMTCkgVVNJTkcgY3A4NTApKTsKK1NF TEVDVCBDT05WRVJUKFFVT1RFKENIQVIoMHhmNSB1c2luZyB1Y3MyKSksIFNJR05FRCk7CisKIC0t ZWNobyBFbmQgb2YgNS4wIHRlc3RzCgo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC90L2Z1bmNf ZW5jcnlwdF91Y3MyLnRlc3QnCi0tLSBhL215c3FsLXRlc3QvdC9mdW5jX2VuY3J5cHRfdWNzMi50 ZXN0CTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC90L2Z1bmNfZW5j cnlwdF91Y3MyLnRlc3QJMjAxMS0wMy0wMyAxMjowNDowNCArMDAwMApAQCAtMCwwICsxLDEyIEBA CistLSBzb3VyY2UgaW5jbHVkZS9oYXZlX3NzbC5pbmMKKy0tIHNvdXJjZSBpbmNsdWRlL2hhdmVf dWNzMi5pbmMKKworLS1lY2hvICMKKy0tZWNobyAjIEJ1ZyM1OTY0OCBteV9zdHJ0b2xsMTBfbWIy OiBBc3NlcnRpb24gYCgqZW5kcHRyIC0gcykgJSAyID09IDAnIGZhaWxlZC4KKy0tZWNobyAjCisK K1NFTEVDVCBDSEFSX0xFTkdUSChERVNfRU5DUllQVCgwLCBDSEFSKCcxJyBVU0lORyB1Y3MyKSkp OworU0VMRUNUIENPTlZFUlQoREVTX0VOQ1JZUFQoMCwgQ0hBUignMScgVVNJTkcgdWNzMikpLFVO U0lHTkVEKTsKKworU0VMRUNUIENIQVJfTEVOR1RIKERFU19ERUNSWVBUKDB4RkYwREM5RkM5NTM3 Q0E3NUY0LCBDSEFSKCcxJyBVU0lORyB1Y3MyKSkpOworU0VMRUNUIENPTlZFUlQoREVTX0RFQ1JZ UFQoMHhGRjBEQzlGQzk1MzdDQTc1RjQsIENIQVIoJzEnIHVzaW5nIHVjczIpKSwgVU5TSUdORUQp OwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvdC94bWwudGVzdCcKLS0tIGEvbXlzcWwt dGVzdC90L3htbC50ZXN0CTIwMTEtMDEtMTggMDY6Mzg6NDEgKzAwMDAKKysrIGIvbXlzcWwtdGVz dC90L3htbC50ZXN0CTIwMTEtMDMtMDEgMTI6MzA6MTggKzAwMDAKQEAgLTY0Niw0ICs2NDYsOSBA QCBTRUxFQ1QgRVhUUkFDVFZBTFVFKCcnLCBMUEFEKDAuMTExMUUtMTUsCiBTRUxFQ1QgVVBEQVRF WE1MKENPTlZFUlQoX2xhdGluMSc8JyBVU0lORyB1dGY4KSwnMScsJzEnKTsKIFNFTEVDVCBVUERB VEVYTUwoQ09OVkVSVChfbGF0aW4xJzwhLS0nIFVTSU5HIHV0ZjgpLCcxJywnMScpOwogCistLWVj aG8gIworLS1lY2hvICMgQnVnIzExNzY2NzI1IChidWcjNTk5MDEpOiBFWFRSQUNUVkFMVUUgU1RJ TEwgQlJPS0VOIEFGVEVSIEZJWCBGT1IgQlVHICM0NDMzMgorLS1lY2hvICMKK1NFTEVDVCBFeHRy YWN0VmFsdWUoQ09OVkVSVCgnPFwiJywgQklOQVJZKDEwKSksIDEpOworCiAtLWVjaG8gRW5kIG9m IDUuMSB0ZXN0cwoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9pdGVtX2Z1bmMuY2MnCi0tLSBhL3Nx bC9pdGVtX2Z1bmMuY2MJMjAxMS0wMi0yMiAyMTowMzozMiArMDAwMAorKysgYi9zcWwvaXRlbV9m dW5jLmNjCTIwMTEtMDMtMDMgMTI6MDQ6MDQgKzAwMDAKQEAgLTg0MCw3ICs4NDAsNyBAQCBsb25n bG9uZyBJdGVtX2Z1bmNfbnVtaHlicmlkOjp2YWxfaW50KCkKICAgICAgIHJldHVybiAwOwogCiAg ICAgY2hhciAqZW5kPSAoY2hhciopIHJlcy0+cHRyKCkgKyByZXMtPmxlbmd0aCgpOwotICAgIENI QVJTRVRfSU5GTyAqY3M9IHN0cl92YWx1ZS5jaGFyc2V0KCk7CisgICAgQ0hBUlNFVF9JTkZPICpj cz0gcmVzLT5jaGFyc2V0KCk7CiAgICAgcmV0dXJuICgqKGNzLT5jc2V0LT5zdHJ0b2xsMTApKShj cywgcmVzLT5wdHIoKSwgJmVuZCwgJmVycl9ub3RfdXNlZCk7CiAgIH0KICAgZGVmYXVsdDoKCj09 PSBtb2RpZmllZCBmaWxlICdzcWwvaXRlbV9zdHJmdW5jLmNjJwotLS0gYS9zcWwvaXRlbV9zdHJm dW5jLmNjCTIwMTEtMDEtMTcgMTI6MTE6MzMgKzAwMDAKKysrIGIvc3FsL2l0ZW1fc3RyZnVuYy5j YwkyMDExLTAzLTAzIDE1OjM5OjI2ICswMDAwCkBAIC01MTksNiArNTE5LDcgQEAgU3RyaW5nICpJ dGVtX2Z1bmNfZGVzX2VuY3J5cHQ6OnZhbF9zdHIoUwogICB0bXBfYXJnW3Jlc19sZW5ndGgtMV09 dGFpbDsgICAgICAgICAgICAgICAgICAgLy8gc2F2ZSBleHRyYSBsZW5ndGgKICAgdG1wX3ZhbHVl LnJlYWxsb2MocmVzX2xlbmd0aCsxKTsKICAgdG1wX3ZhbHVlLmxlbmd0aChyZXNfbGVuZ3RoKzEp OworICB0bXBfdmFsdWUuc2V0X2NoYXJzZXQoJm15X2NoYXJzZXRfYmluKTsKICAgdG1wX3ZhbHVl WzBdPShjaGFyKSAoMTI4IHwga2V5X251bWJlcik7CiAgIC8vIFJlYWwgZW5jcnlwdGlvbgogICBi emVybygoY2hhciopICZpdmVjLHNpemVvZihpdmVjKSk7CkBAIC02MDYsNiArNjA3LDcgQEAgU3Ry aW5nICpJdGVtX2Z1bmNfZGVzX2RlY3J5cHQ6OnZhbF9zdHIoUwogICBpZiAoKHRhaWw9KHVpbnQp ICh1Y2hhcikgdG1wX3ZhbHVlW2xlbmd0aC0yXSkgPiA4KQogICAgIGdvdG8gd3Jvbmdfa2V5OwkJ CQkgICAgIC8vIFdyb25nIGtleQogICB0bXBfdmFsdWUubGVuZ3RoKGxlbmd0aC0xLXRhaWwpOwor ICB0bXBfdmFsdWUuc2V0X2NoYXJzZXQoJm15X2NoYXJzZXRfYmluKTsKICAgcmV0dXJuICZ0bXBf dmFsdWU7CiAKIGVycm9yOgpAQCAtMzIxMiwxNCArMzIxNCw2OCBAQCBTdHJpbmcgKkl0ZW1fZnVu Y19xdW90ZTo6dmFsX3N0cihTdHJpbmcKICAgfQogCiAgIGFyZ19sZW5ndGg9IGFyZy0+bGVuZ3Ro KCk7Ci0gIG5ld19sZW5ndGg9IGFyZ19sZW5ndGgrMjsgLyogZm9yIGJlZ2lubmluZyBhbmQgZW5k aW5nICcgc2lnbnMgKi8KIAotICBmb3IgKGZyb209IChjaGFyKikgYXJnLT5wdHIoKSwgZW5kPSBm cm9tICsgYXJnX2xlbmd0aDsgZnJvbSA8IGVuZDsgZnJvbSsrKQotICAgIG5ld19sZW5ndGgrPSBn ZXRfZXNjX2JpdChlc2NtYXNrLCAodWNoYXIpICpmcm9tKTsKKyAgaWYgKGNvbGxhdGlvbi5jb2xs YXRpb24tPm1ibWF4bGVuID09IDEpCisgIHsKKyAgICBuZXdfbGVuZ3RoPSBhcmdfbGVuZ3RoICsg MjsgLyogZm9yIGJlZ2lubmluZyBhbmQgZW5kaW5nICcgc2lnbnMgKi8KKyAgICBmb3IgKGZyb209 IChjaGFyKikgYXJnLT5wdHIoKSwgZW5kPSBmcm9tICsgYXJnX2xlbmd0aDsgZnJvbSA8IGVuZDsg ZnJvbSsrKQorICAgICAgbmV3X2xlbmd0aCs9IGdldF9lc2NfYml0KGVzY21hc2ssICh1Y2hhcikg KmZyb20pOworICB9CisgIGVsc2UKKyAgeworICAgIG5ld19sZW5ndGg9IChhcmdfbGVuZ3RoICog MikgKyAgLyogRm9yIHN0cmluZyBjaGFyYWN0ZXJzICovCisgICAgICAgICAgICAgICAgKDIgKiBj b2xsYXRpb24uY29sbGF0aW9uLT5tYm1heGxlbik7IC8qIEZvciBxdW90ZXMgKi8KKyAgfQogCiAg IGlmICh0bXBfdmFsdWUuYWxsb2MobmV3X2xlbmd0aCkpCiAgICAgZ290byBudWxsOwogCisgIGlm IChjb2xsYXRpb24uY29sbGF0aW9uLT5tYm1heGxlbiA+IDEpCisgIHsKKyAgICBDSEFSU0VUX0lO Rk8gKmNzPSBjb2xsYXRpb24uY29sbGF0aW9uOworICAgIGludCBtYmxlbjsKKyAgICB1Y2hhciAq dG9fZW5kOworICAgIHRvPSAoY2hhciopIHRtcF92YWx1ZS5wdHIoKTsKKyAgICB0b19lbmQ9ICh1 Y2hhciopIHRvICsgbmV3X2xlbmd0aDsKKworICAgIC8qIFB1dCBsZWFkaW5nIHF1b3RlICovCisg ICAgaWYgKChtYmxlbj0gY3MtPmNzZXQtPndjX21iKGNzLCAnXCcnLCAodWNoYXIgKikgdG8sIHRv X2VuZCkpIDw9IDApCisgICAgICBnb3RvIG51bGw7CisgICAgdG8rPSBtYmxlbjsKKworICAgIGZv ciAoc3RhcnQ9IChjaGFyKikgYXJnLT5wdHIoKSwgZW5kPSBzdGFydCArIGFyZ19sZW5ndGg7IHN0 YXJ0IDwgZW5kOyApCisgICAgeworICAgICAgbXlfd2NfdCB3YzsKKyAgICAgIGJvb2wgZXNjYXBl OworICAgICAgaWYgKChtYmxlbj0gY3MtPmNzZXQtPm1iX3djKGNzLCAmd2MsICh1Y2hhciopIHN0 YXJ0LCAodWNoYXIqKSBlbmQpKSA8PSAwKQorICAgICAgICBnb3RvIG51bGw7CisgICAgICBzdGFy dCs9IG1ibGVuOworICAgICAgc3dpdGNoICh3YykgeworICAgICAgICBjYXNlIDA6ICAgICAgZXNj YXBlPSAxOyB3Yz0gJzAnOyBicmVhazsKKyAgICAgICAgY2FzZSAnXDAzMic6IGVzY2FwZT0gMTsg d2M9ICdaJzsgYnJlYWs7CisgICAgICAgIGNhc2UgJ1wnJzogICBlc2NhcGU9IDE7IGJyZWFrOwor ICAgICAgICBjYXNlICdcXCc6ICAgZXNjYXBlPSAxOyBicmVhazsKKyAgICAgICAgZGVmYXVsdDog ICAgIGVzY2FwZT0gMDsgYnJlYWs7CisgICAgICB9CisgICAgICBpZiAoZXNjYXBlKQorICAgICAg eworICAgICAgICBpZiAoKG1ibGVuPSBjcy0+Y3NldC0+d2NfbWIoY3MsICdcXCcsICh1Y2hhciop IHRvLCB0b19lbmQpKSA8PSAwKQorICAgICAgICAgIGdvdG8gbnVsbDsKKyAgICAgICAgdG8rPSBt YmxlbjsKKyAgICAgIH0KKyAgICAgIGlmICgobWJsZW49IGNzLT5jc2V0LT53Y19tYihjcywgd2Ms ICh1Y2hhciopIHRvLCB0b19lbmQpKSA8PSAwKQorICAgICAgICBnb3RvIG51bGw7CisgICAgICB0 bys9IG1ibGVuOworICAgIH0KKworICAgIC8qIFB1dCB0cmFpbGluZyBxdW90ZSAqLworICAgIGlm ICgobWJsZW49IGNzLT5jc2V0LT53Y19tYihjcywgJ1wnJywgKHVjaGFyICopIHRvLCB0b19lbmQp KSA8PSAwKQorICAgICAgZ290byBudWxsOworICAgIHRvKz0gbWJsZW47CisgICAgbmV3X2xlbmd0 aD0gdG8gLSB0bXBfdmFsdWUucHRyKCk7CisgICAgZ290byByZXQ7CisgIH0KKwogICAvKgogICAg IFdlIHJlcGxhY2UgY2hhcmFjdGVycyBmcm9tIHRoZSBlbmQgdG8gdGhlIGJlZ2lubmluZwogICAq LwpAQCAtMzI1MSw2ICszMzA3LDggQEAgU3RyaW5nICpJdGVtX2Z1bmNfcXVvdGU6OnZhbF9zdHIo U3RyaW5nCiAgICAgfQogICB9CiAgICp0bz0gJ1wnJzsKKworcmV0OgogICB0bXBfdmFsdWUubGVu Z3RoKG5ld19sZW5ndGgpOwogICB0bXBfdmFsdWUuc2V0X2NoYXJzZXQoY29sbGF0aW9uLmNvbGxh dGlvbik7CiAgIG51bGxfdmFsdWU9IDA7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL2l0ZW1fc3Ry ZnVuYy5oJwotLS0gYS9zcWwvaXRlbV9zdHJmdW5jLmgJMjAxMS0wMS0xNyAxMjoxMTozMyArMDAw MAorKysgYi9zcWwvaXRlbV9zdHJmdW5jLmgJMjAxMS0wMy0wMyAxNTozOToyNiArMDAwMApAQCAt NzA0LDkgKzcwNCwxMCBAQCBwdWJsaWM6CiAgIFN0cmluZyAqdmFsX3N0cihTdHJpbmcgKik7CiAg IHZvaWQgZml4X2xlbmd0aF9hbmRfZGVjKCkKICAgewotICAgIHVsb25nbG9uZyBtYXhfcmVzdWx0 X2xlbmd0aD0gKHVsb25nbG9uZykgYXJnc1swXS0+bWF4X2xlbmd0aCAqIDIgKyAyOwotICAgIG1h eF9sZW5ndGg9ICh1aW50MzIpIG1pbihtYXhfcmVzdWx0X2xlbmd0aCwgTUFYX0JMT0JfV0lEVEgp OwogICAgIGNvbGxhdGlvbi5zZXQoYXJnc1swXS0+Y29sbGF0aW9uKTsKKyAgICB1bG9uZ2xvbmcg bWF4X3Jlc3VsdF9sZW5ndGg9ICh1bG9uZ2xvbmcpIGFyZ3NbMF0tPm1heF9sZW5ndGggKiAyICsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyICogY29sbGF0aW9uLmNvbGxhdGlv bi0+bWJtYXhsZW47CisgICAgbWF4X2xlbmd0aD0gKHVpbnQzMikgbWluKG1heF9yZXN1bHRfbGVu Z3RoLCBNQVhfQkxPQl9XSURUSCk7CiAgIH0KIH07CiAKCj09PSBtb2RpZmllZCBmaWxlICdzcWwv c3FsX3BhcnNlLmNjJwotLS0gYS9zcWwvc3FsX3BhcnNlLmNjCTIwMTEtMDItMjIgMjE6MDM6MzIg KzAwMDAKKysrIGIvc3FsL3NxbF9wYXJzZS5jYwkyMDExLTAzLTAzIDA4OjI1OjM3ICswMDAwCkBA IC0xMjE4LDcgKzEyMTgsOCBAQCBib29sIGRpc3BhdGNoX2NvbW1hbmQoZW51bSBlbnVtX3NlcnZl cl9jCiAgICAgICAgICAgV2UgaGF2ZSBjaGVja2VkIGNoYXJzZXQgZWFybGllciwKICAgICAgICAg ICBzbyB0aGRfaW5pdF9jbGllbnRfY2hhcnNldCBjYW5ub3QgZmFpbC4KICAgICAgICAgKi8KLSAg ICAgICAgREJVR19BU1NFUlQoIXRoZF9pbml0X2NsaWVudF9jaGFyc2V0KHRoZCwgY3NfbnVtYmVy KSk7CisgICAgICAgIGlmICh0aGRfaW5pdF9jbGllbnRfY2hhcnNldCh0aGQsIGNzX251bWJlcikp CisgICAgICAgICAgREJVR19BU1NFUlQoMCk7CiAgICAgICAgIHRoZC0+dXBkYXRlX2NoYXJzZXQo KTsKICAgICAgIH0KICAgICB9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RyaW5ncy94bWwuYycKLS0t IGEvc3RyaW5ncy94bWwuYwkyMDExLTAxLTE5IDEzOjE3OjUyICswMDAwCisrKyBiL3N0cmluZ3Mv eG1sLmMJMjAxMS0wMy0wMSAxMjozMDoxOCArMDAwMApAQCAtMTY1LDExICsxNjUsMTYgQEAgc3Rh dGljIGludCBteV94bWxfc2NhbihNWV9YTUxfUEFSU0VSICpwLAogICB9CiAgIGVsc2UgaWYgKCAo cC0+Y3VyWzBdID09ICciJykgfHwgKHAtPmN1clswXSA9PSAnXCcnKSApCiAgIHsKKyAgICAvKgor ICAgICAgInN0cmluZyIgb3IgJ3N0cmluZycgZm91bmQuCisgICAgICBTY2FuIHVudGlsIHRoZSBj bG9zaW5nIHF1b3RlL2RvdWJsZXF1b3RlLCBvciB1bnRpbCB0aGUgRU5ELU9GLUlOUFVULgorICAg ICovCiAgICAgcC0+Y3VyKys7CiAgICAgZm9yICg7ICggcC0+Y3VyIDwgcC0+ZW5kICkgJiYgKHAt PmN1clswXSAhPSBhLT5iZWdbMF0pOyBwLT5jdXIrKykKICAgICB7fQogICAgIGEtPmVuZD1wLT5j dXI7Ci0gICAgaWYgKGEtPmJlZ1swXSA9PSBwLT5jdXJbMF0pcC0+Y3VyKys7CisgICAgaWYgKHAt PmN1ciA8IHAtPmVuZCkgLyogQ2xvc2luZyBxdW90ZSBvciBkb3VibGVxdW90ZSBoYXMgYmVlbiBm b3VuZCAqLworICAgICAgcC0+Y3VyKys7CiAgICAgYS0+YmVnKys7CiAgICAgaWYgKCEocC0+Zmxh Z3MgJiBNWV9YTUxfRkxBR19TS0lQX1RFWFRfTk9STUFMSVpBVElPTikpCiAgICAgICBteV94bWxf bm9ybV90ZXh0KGEpOwoKTm8gYnVuZGxlIChyZWFzb246IHJldmlzaW9uIGlzIGEgbWVyZ2UpLg==